03588601382283327674427291609935966418888565478063812326547047321317666392558262297934383091115928140284249648983783250658736168961016309669190344648770910058278800389642949877581073514823776463586378786998250339796660916315128383768713015546151421541884484588317047631268790942281169791956872383178492242897472036724304926241604980687459313487097885157545058504845500600471676804908636184830635356210679246797921966078288032568689424740818779909340728147069236184508661887194898536731913063509963070497798545666982897771191601166006446530041161492058011349342518748139021118777440580725852083603173633390192746220348064206078193468813215809004203274377281698575708898263291794238956735382707505020117940874141291013795391423822914909357710609737741521787699057690489140192875287712083287484939457668219598189412345155264438553621477893457384339701625461882866832157955669001665814061282961308237335474127958160056218274740132358348105405989643150201666963323236331513378253412135877024922231943298131147876863207215082137164474662519907203507297538676255635879328389692516658096982540299155492333809673694500833193347312076710420548837430005525340519038475161885225227034251044590798248844219255721731282981331932430640696858403996520111387998362067772335784880049246975247238920539837247882098303767996048517031539063667275423237881972240449137847597135413816767480904592094111867963339489512968812981987329504569615863131449757141430784678054505715458430744878736698057250846167788223746956983235734896739922474908252159599036647855621791926756552642296252897525191500907551965356330345853331306563001393199530265473526842461378737120002207602643427215639476302789808241697920562666903735511217327569741237042485355341184324173087146262812812045970672384382713562245830074403316602908748354979115649214580248570173526210822646438421333226390904493312309635966636379810320251061328090102104349230615531781750880021796731122447733560251888005430978421051255566445904366717145824818811440060374443071747438936421562478469782054247552322591952995729442101645681803387818479671138794048758895044809245507233922849957866973614461881233263492992537626538054930186388836239695381119839705488630100636324986445817974026567359277292295052847727431900339892723910325753996589585177194509061757339425822973069042646944462116216083613027817178853560890428432685720086224993060052004372822615567782195257740431307338704149333282178850155176212597636145952815231500770773140324810437730972718999859065937005158556253823208071691334611577275281108356591262092765086662778900940819541484265698509329374558806716709130901805994210405143470053677707447683783344815989948722209852213709834879429203943606250360078064500904763576582458378040521664052548261224972163390642768885687710510011405090166156240181835308442030125500561680247016596270790530914248576400682230453613318164786069533586698744626953098614640942336914481962581675719960519631378267115343900308137608009556188483866216227362189362527841193143464584209453007445606287031077711638160252897343441789689927432840875443467139897988882197796965269507189990020361039591079699519613762276215694011856990546575457725831191218333467235049448046335716982203646579469227260243325436042828892545121922804735380295628420815681582807568208461262665939836707223439753614967370562860810433758829385199996637555310867228168803220721807238056960840025014374331509539359718441078391557535427831323305872166289054749803731484470289328512295466294438601221581389032787749719257053590272711510802281079355723665003037099658723973147541502598222975754074605815187874338243320061986522275582180880657329814008245164595823068477704190849809614398038516405620570181566341842043627112430809757342126120080265406205965822606159613125232954187808671311352838918701952356692830435731395269766563961092489303505950234094790935719719650878672760333279496945026214056241982109542451703169222057642671852593789359246861102822136545564523395411049741976326138738605001526230030549283113799702973790395205769595759766918710472490923517254539616073046760125232139324914757025200396672461798254240036232140312534278573067664633095154617289100794538450124879775342851972544225167381663721358241863301331078866316245130285482398632483625077149004248957173938586014905927718742240899814981446696240147629411261569928197292164880032389672405855908513716717150930651976614009204255171769356971606677256763206394022829168153330727399360895028349034684388871005552154751162805605187036969744833231301059702171593620190229417851212898975796400075960324834480082830212703839051508985564715125890538579339203145911371999986865143205542210802240242069657536440243312620878124814558662303240889363031903963797331318610958648642911028424121256069592218525186801963786372057008448640812686654457982007878021207848254340981352649450837192892512082538264543634247853599777903888412259452564400236136641745404530981320122643185295646612078800632575966174860991719888935619441393371062466231576851807346924446006265374505704127595185047159380615390981077663972139519849051193049560633699891533285988632799746173133574628080225127262163735000174972594747052487738662722774199163549950585025729173043388135815668045674573734015492997269407152959023161039409834078702285880483821086871262227694496381421175660473884141247845197472847433006813255629309300416561006849493930407998302440768050707260716287363681557295221627328153282768719834738509413966234230876529513402324042588908664104805689800429264101403005417986924137296387976324705884649428986363315059632505809037976198106659300468497888918121889701720325016524700701682753520708267161175380050016380309128453610888499686009650173371662454889046974227480274563453278494232671139284431315260635557647779416194452694666425322013117193161616894276848285175897633905975684126325293354770193279554910002877966745190014989535439662964381957721581967659569796150321687024042008463215498875913137295477278390242434613400316718088146675983236980213025346470001905013562318934647709512682336180636668513914529105998985374590476269370260268283595585613377945976813609493809239095874790833607983292322786801476049983193703288904874895773119173264451535875167487004362109934853616149601051856842562894682591568658808685112395821673585738905782573120088205898792845238592181922579736056788273007854817065052515917892407606319709008659441646127370567111569292318987455825160937042706071104301397562418440704401787578286044594650975411054858997652152980128146134331260909569711030107166525547632807199643266574207792642045694490967978258623692184119368808591574453812770240215816017792963961653140997485906955624026460192636126240055824408558680875884398687029689144400691055823554791833081210037804655507729818443216584506053370830886464449025554256967234740124241147512080360945148205520400736012997967792433460099432717329824055139000278856789303060450932801750262280839100619708051828475570435148436018134154069956843155523436740772322302133607451164836801420490800059751010397149386621123871257824689862480236681623721450832396639222207169793711875463903117296173430466696480225785016418100962576857211145018516041864399444463692236509771856904169596274691534452698253601276020639255933473361273106932315190829247437036607923079623936821084628675226531267427811624046210958855304097206671056889994019213050759106308923992108432542377976709406555443375960787766524830762945534526397348049171211842529325642534089116970564464656097912850080702316381598268148097307563058818799489681780606947464114979075706561225748963242167960422569092113601703418453434086306309619326176918866889150912672836531918068793151097562332857238076879425232584856177193285061886189250446786807577549934808804898026873325974417668450168618493745944095772267520596685150292147536303998796071332923631024482176140373284529867015981941932018992364353381526475847100670876216081541431493223124440769458358690943828688454823021575999017306628826435807201443949083797987994234400618243108747970393738152691439835163369762042328081806580594010161943714093898543851743058572423597911708180159288430625143447932096280940229024820753662141204238476314600646138113426824579251683944584622762947892636894069373908548132116617340732532746574976728145223412969770932057945235399807590873763035064005383167503707707476937361815947240715247709975485823217518994880783371658522900870689580970943169090779878583165561254800870698863923600448478233594825678070432309383932287253791838279567836584721705809292936545949087862119286490138430961644698968082439496782450715183588690851934719427334781523605288825774809303106300821198808456239538399218180265770202399662697322105964465946246412385972244835352226214178881597156377879083427036805311175645190220711671893572423001736660032790503541306603660048389825823076903945920728710592326936572313829377297519511593125802502047393803720745350259282045537489854672740825646020412457619677698093062209652227592249946021247658480070424397242141776802131757776493814146574885871804153421143355972785378379110107186879570573814071479403670106004933132522764691869054432022833327240107437367854539887484045742517186215361153064970343518491600415889366705427893352084354698110197105529721599838932864569766442002135022134366576080662864318746847963553199352027096446222690842904541757704586360185471806837350001333726831351975911997799368077556626434503444945492748337696101920193778753680370263908381813225816059038942299340194516075113613319125542589756035566353185882129574141852256996863280823720544878662132824646686514380928985305612489517551444680373205805461903386189408560205657154677277689598131323739472477333541536170161557313221584031471516918301350546109340612819799155364841099065328002056752969351936826250323280928094303802647322668453112893149208894828090677811742917085054020535953462966538826737741883199826441259002934753488224285684842288509870203898956727943408707649543101002025294949031539184644402163593899211707737789485527803078827502234221565768660239055540614223327400847276717148380942558045971887621865654811533384982473994337746394686102420268531042261108283443151964974093083935991131134820353292807129835989578341672263230853143227638864430165175907896059550349455084222887903442069488602564345516587996572647040240645776791781883341314299218158438961997680103503928074417510546746317407027827471192376488496891831530918624294650880924205473956066333628410888977563889707297852504347557246302180626011038479881674646995708427657580875762292304553801776850362255259772104424167825859408160806580895358265079189345810824786804705976873113711947002358585218083362672591833342677832275527571485348824956734715248604210556525497853290436314667613809132645110498432678568324730993182139324952830664001108689205024321695276134287992646108706225030267287720918234308889429158818707813583308722256467221116785638652193698762689523203159324751249335415343414278335817548698114096558185991298961865103017445743229337290404332924429708408191136797042253478170158796732458718561467608776188579889788432772186432785093744482559743714635543914383715979532434938910854489200192906539692512606234377960449257272141718900234124925699843686219337287864991271784789714452707140954031561089578766915600264747208692785764043100752343397747493104015217248587174734734582626975200453082422723501601924160177647769683554732117449272268219415460993388735728749460423405246712374964473881556344533468215181269686194864205429434558667446161895637150548770730224366482728115582123833605637772761514360096817743812471238446754212279321969428517764402767602491388515900517457212561121742797620048422688445025009285919925960058652149989741149256887534502536146429544362732202611577620361403474251043846997768909770077505605396063749903904733486235962795794956107844952681350580685087980077704104790696554378276069530738336544677560245167777824137393653534698697115233715832700450049390451539748132265688585201385673370953935274762785251864829893211980883643974210652043098942462268503183288259189949282479917281668986930163319050608981379983887857077146924171102104356552506273511821008506852409724254436011460590343686163213112044749238658805947372597125832871237414487406312111738349930136277458004691865678420612773429000682928953827980494962591794340774340831702707491841090560639254354412437762141797215103146279424638588580796186721370832784124710533898525589433702413815351654757879667407682023428763379504299207591328812908824419936084716724790874758667540138579180856929078396435090058869927579152044490137249089371017377886979363748751636329631341969658259047681039465166977034772099996246904793061653717692940951497807258353294520502895822656341790837661900127482531974333925103288163515409967946267382669504603361768743096084020461968949248767055030925300679986898218049469723472437215758662398486451825744219076467871857343980764618799254109775240673521715886558706140693970415894370882432095901429297448867370990190949950358870041917182848901389578436397730632279874102066029235218251652090451326040590469006600413838444351913274095560125110618610725241341805932609481872140484301724460942333646369369473665925696514460323805895189941433129717456109251158369979115673362408004296406355608490014683958094410884795791915104624525784842186304037010007602649034475850595085461423881222371976282678667954226381507931991723967463330474709495160462907427886473017030040196971050046392420098791850829588604674604743390782057725208200611854664593260421438215562822716638309914552923270759023482328655229998460008063220301077544665105354131366088262258874468388906375163333799604381612360387998096830885400806889287647737179713113898571651809545689650494481883474467314627767449311037303625271372081669371752484175279031236012892438489187303995278818461420039069710231135239552749697960620161685886190864745133629926072668217280610588749503222160653229431329138286178489802433662567010100197744124674680040606798136628917509960385552245349641090287615616185724190628938977087856643687718173531320143892506543826165030751979820888651040262524610900593410846729803004870022468585302668605410312841313541138307684620401789820451735213491769365898671113931140761888198181929831014357749566495598558746523254998043140751847479385602237082245881757962252905704021551153884955315077426334875832774178002719835851279870076847096183834444210960961786404954740197437452494602709536766661212310293835557972394781695102502725113423733397489164792174707485095000439446062276242957088577788519749923877764820619926794379194500006659301304952474959203173201360865241365264473434277451296047228677891180250780951273620167896173101726538365808392442409509391942321416918095882727711807525761974869488719816889656634204635961289764087284718265000251492553290945409306555908327963272763284975847537276010226043569357657763197585011017121432114637461735811162508557969539649277280221569669926938737121284826040455396350259522758390593105174849664740161292303735811766336885978003570776195405645906909438141888994950145526903111810622044082193614575767856444176042235438087808820321149293753948297696895328400114513934441580047839726770296063854772168334271104264625662088129841803928773530165148277144341842720859095659016516441948173345289728673450945536687713139549674406484914990262647082680980827582416755063727333118943511621102395164713689739065041311177471343168728890725031830801004956266754155943258572893290478249096402508404194068421907558641915167792897354705853610407180968823682246346872869855003638273397586947777549866647048863792875294112449774570488541553090734531440750987978103481768463503337744403650904963403021518694839682742475061512384213205480258453691501330105210558992494603442703753327495743140783928732852410037083325239620500147609794655660215634011267262454916978220747842140990606493492073034199053694511823244645971086349114141822443221571724661336303378976041915650871785872190813132263218364580020470991604029841586789597506442442965665434925175452540456527396170053572575713002791732012201438331124941994398665597541254124039306295316981428429969475671061190719158192092442794901507944017710511852438833258141172853541269979136752639701977573067747682343763562453404610471195824307549462395443408250021794221594636601704623047481967005322553234413681971024923086043297002898102058743935511078434200472023511300210660543105951666477780872056739350390335900293314821193482325138621827163407577296027049705902746294151824454277226872672438094004322435627209221770344339860744012681795847492949483992069042544901885391373175112218118265309676066618247506147271336466801677161652045123801243913709665981465610386088020371941317700920093789585144950106356890442524540383628312474884970021669997462351159135395633980806786559370957082474720209664600809427753311346274803377598521826229137266299608621831351329903844033621119808764882385010742418911089083992823004466303361852759221899160923031333782999493820947074716555245225102389403959315323766142325834448732320910483531036233732355937163533878399307277192074442005042968931131766581616508986836349747056337160887537622632241360644758725136781421351670513756818552435971709039272177087669560804349340730403511786337046208771463992263101682560753924135577202935583518752454636984016897430420234437631274639677379917641044575341530476131407219711512207761773597193003350824628913664252574910191264737112456277881652576448679111473810896825560131851109774959460047261155352944871659970787637671611768426013461910532984545904281715864882519320160978523150473332831127315248389370963481270458505246619774607530082378040165835353142133775961612665322707226339719755082789779082911823953788517334571574505760059727661090602620263319778017112002484997990896858856746118513377823880297497368921985717571939436103213502819516260413257504805730599935330942426036754127770769473361173605041306815332977080418373754614533461875824034969236964958871560410789519837288535350813687894179602994826960978062342817630191993995908230756072794930816210735305282500434050346944468685549419296596318927167875273799173981488110055017519341933331482595095082948649653437201155072538365399674219646768235827437366817892127574339966892171420777354641376606824785178615908782805382667161831864518712609746239308515164388233693321317678474813643016692080028089488968125022598709468860333892862046040205180477286134779489622500584345158926609997894325669684804891165723878568734272722152632416025764377893822659569833698379732353780976265680381618886890421633956215516908165765147167850451185341496587164421994531807739908130707986980063585317018415948121816620147290630211768849622187576058463914257732669753441247314346701557829763208140336619792894696133872532517508367931889782084363145703990871139776300677972833118756080391577426866189041737157406052906081168396167341166286073263371283923014732054217831099875086439223864720433969584338764560035185026798151546755244497940035381279202582022897970807665539840484025863381656960139224022051872567095905924391370865450501905610081840617285859199109417630779052598885935281460593244727112143224204639305011701878617361016196555614153625690062242984623282756302196084435861280420646501094155965475926764079207267224533425942075608714455354996190002697665754459972632313466075116010352405447892110187879701065349223711995036634706356879717002595230359334168298434818795300880182979709390805169682221145087467466013553811370155851384445101672115858226024378021276445857922983835013228337058694230834642807339699694425751868376126158582859906536469901789182325334943788946515255144387652708566223195209469626055215044891101074100017929461561439838130466327093822766180449678238609308563213736409412091668480337247733720205289011962141573514611932513294810089828110037667945525662555305229424602688610386871423506376107656410692054200384570278129068798798185169011211823470312327663262224901928118578021016998831761648689224897482937077406298007489875937487087562066783266582804560748406044583980044260631240165677731467334800762275317086792852295275350080920310967511720683034444893831872447410121039537755285910570456361976930028948859218470947672656962047236387303862126915461217854913286324246653933550827389303843777042907540397878798679780761900870826336285868799112769559151681406354288994185777408495249283747840098440721610371746932958769979750538647117945028233599776898967911080668277139882227431849473427454032197982001540199120865727275861601706374408154504587252679337223525624749587165573985026514224765590564999574983348748465310800848964459071343221182757754819554203123433996144637067790471202890903320656293919542463757838918139068941779634124967772811796779849316403193723447317987172524023340918263187551460079649451738369996230885858729291738730200121416082301452686637160811542405837139212744708983900479551152616095450826686380174983120704158338524970061782350721247892790428111314612897102672495023963628267032931844950225611073257872411563225649813248301051913301342175649009885713541507806343255803656822385153675831818799336229249748577259225270175177938327124693821338998586292486003971136586176076149408080855312945777951767853713212619409104766109874028142831511964610470594481421696903343723704827517974005395606039602753824795648190133904533278604820516877618874752376183540852833148116536948442339747744131282654738068702046807948493264106005338370393930146035173849415048011026768814872428723202316071646237413772254370935686687734710151691340653096601832625291848340630493810187131812044954179248028622173540313189198257022900550434021338978778573282678272060203586701797773479006064308775693586292472357847107337948318970537585774636218949541593363280290092564811205588882569617868345550765354515352547837644838471925362303130443525694264457280829405216809335385122132670635607833811411318213527878947152675957485512891388576792429056388666797565534461293333590027860059774380062151741019290978541898947015028781462910921317551074765069373336819900745567851682207768006310697642299556836775198792150166002063888210256618158361368584695989250830153892288882744062520748865836731428029415333736936548752471509246121434476510203457671710391876974564994417381495612152263050661201322081377765114362661368113157417586799201506351624582222886653106469261649813020121623334214174576870806076531756292932367316189782775933078267055475394315932590407266573043181623486220844820366871891441498461863291062623576358607502660986786864536018611929158404654181494022325984193194365310427878007269905888512934899473832853878103425128641430840674933731806241194351672763675172959427477981682949682674552991926566139675577036626200415369093147338014231732683610016779958811493387534823289410071720019825107918769310201578554118335549534714402599826342395754657746080095956626911598986224781701410027355890730912954249242816688651088652765463670746541438590498420810965359717428528412875593168413903986056280757077789088724688572319385064392169964618290098604943539597779248421816200524988212325311796134320661629651458358627814431219495108046274724085652128237769433971474586411297992648651919466984180954246993206246769743623561550620510139877044396282889899111060763966454759042347585342598454499389931360463564609896314256702551815276324790784587047766665076562620381466507867180571112166806882538397412332798849933478055821898057908087599925111795340128969772026981341538920365784472659333811861316763657038982059501808069925192535081080430416545829206641337605835715121184388128000326453545314097784378030578813335814378965041530866287324926021743762909949521758332865141821313084023591226064228551234591147824405191919096814908338222606440754647189261794582322932522335895976143714687759154075355543554460317479718283765973406430677642502459796392261281838248042636352988865392787638199129415417873688697576341440148427844513992526728471081081555889084750279607340165432741033258083406752115377967974013825461980429212448505666339376476728549305099366831521628095566538370738150188504815952903920171851647099868184625769744390267922227663757180111285768674005912957445282217437893718684761504761018736170425844107896678913321091296389011139217866964282974996212281653424430779513354801967523224554163392356969681793910159815241652403606489604138642125598820131363864835066485222312453256697456711649047564268355964471665425952423910277153632779200563871845917580282767806160146690054075926628332335800311898582818581374013739399505984830801911561105704959431582520643755606330665687615905770047660525020424434496477208972532205193523069224392208539032450919223995355200308022783265572322190889877903045713493537246806397691783031091445019098014637835608786599612161048497244497439693084723768482612357399448076442736918492558538599764828414992293796382017398031341569033334767433337205629910273402946472416635788081752915474442361641833897599093168072735925411391472180607509929984974378194028032863522815619373654425583058277531955590705095001061184731531369427142628541953559092765211367126485147431443948068158669488291599117500963313838891903500011366564256182098270738354263249602320487081323544268750107275461870499766657489616772609685532193689629128258752742246090885111959467019816865943042381271185372837708001833392743636195217128843120828710571206207204528878366103979990860128954387426629847861798798803065696000898350387666862791214454685370439815772561456106594916518805146803047387736692437928645107776162433203281112590741117909732420488726687285956594268291667132223818085352973484534017201503241794125963804040085936367458378650553467034098138889448833650513811278328212407683425358419150545222711444425576535708892760756009898039536328878004044814593192835908995590603808858923843656990092746994664950400817068249036233371040451674261722988701208763954008822887516867374300860393862347281286942201511104521121651954860682187890720576244904207582458226342756356532852309985371853310054229686854480112778244806463286085845570634420390085560397938778130713275887719417383953970970259297308886311243194050453655165256876802443396796794113746908768367509361561157164761029332865564505958064564979571052556628785689497498725477190048539122589938173082981554174817392041098771525892965912851241721291929737536481283510651026637399701467231467458876090908765179012338327847135361825522269008585337001959925772329288797057350810236319317684582100213050653980309661213298297631360237238770132308332595983312423446004172159100436407760464900700626969955272947660193196474146787659091553982492625537510866317702682822006966635510715094056476902416326478941441174486835859437052409156861797037515968638567271518518431537739991459700519150881427015812638547335109109956638651704474647083737904747749472355342472696914390483303324971430694116903445922217619530083209618183907039852936063098001640248600920842514662147361145640514832235476219605512283176463767298357090035567116878759608215729768829767653129174475117409063414101630719844064051014097933797208801414237534495075050908665792267580562977829527215754002955687042132221188059388278568638124840705100876228376462055116944040994276752744715281407667359012536114751061442021837774330781113662241359217860701509163818358333990051242925617755594768925735207400652368900210618643675384644409171874903775760239090994231798785338662341758999163002090016722311321739501859189379553926394075601950208212222433935044299514120909182449923358592641444405796380716108206355716484867571997317512153101052695019911896797053969088709881934811799216199648661616734970806495655219377081162479262761938085732218673399668864757928299233687614412640200981358907973523868856664074771836015806774824825698245941555675768090639057741831204452678869539767973252001595249943800535449769066513141400072744672232582804107345587975764487180399695017368532815257809924229336632816840092153330897505356666660434221932329750167961170467138778900666205086620451265611375123570424150874024297427383238387692642719387802872573715214327861407218546217859383131548058121049149784385586590219749726833370093059244701212715042020077389580273549725645818273589431621625176085700564640745924464515581746239692567866490858799062638383816013211635430968740828223003775012700067297281523514871374101824576109329660557361545701623948418713638256853135969799778163077411569898979090355726171429572265400949197529097574813792293166570123526710196648241649419834050502123951806081383262488991063080830073307413928508616761134617085138358686975321387515470048390912455396824306505671143320137485962100324294677763525946506244433813710429858910916210243742594262187896077940920838152223085020045165623429593471756608529106605194846121945170345125119364533341022816294713989557522623247501681400767851551849318400104247814095061692529444947635699847126214563299734703490996332476137504305382466231920547295860038231496725883283795080509378147647674411061502148943773620723672196124896409389785661466908018865208321213542882904563719672797349463203922345488323956894994664947919438289130058623861824550429130030593775361737051350973162827801729221235002203399728126608791766170394171866069814580493626823692439425653421338990696951184704002157100888594806586999888097788164014910342829181424492078080279738239008327575398112987291585669903425180886148338792678052878316999758840762978865548811925137457145299372328319850955347230373892189768668950295629517220028984673503094660854352694604331986332479208398756185385277599101028866929180843689211592311214282729746352495333935079437340088885967497967928819950032879108390860243004277290664208307769664553848995971230810948499782722211532059278279770669431648351292782278193564180250507291686963276988194405786686353634904855602861820082211315683256434007182753359943048434758494890028071110823400999192617512148065667739228017047778466125175546597098732241179052682282994139350521716319839902095271513211801805104742556114485983753830339873999587065387789892880336204273347213191990186710636020304426515070548351110933336209455692075509784626761397934552420156282924273128144558920812989357008998742083644112622960027163668314302745019179650972774116335448669527040457032676669879423449179544520569205212272519551380987912760028526598553118885034891108685631861161081521279593763674096483273263662165733589977086519991719162910618227500337250681302895020359502170595651461974667161108559781624698043799260750184106921134894478789125707155933776391257446571640181912832191149148878833408306889651078474139636643563302234711743152040146152401582771107084535999212507242122668807458607762749458491627005802812031919765663346463336862840084057189030449463850262326646140470704470257566900346991238358722209129095420368700315828565528169546025945041968841575935090765450831391282955205269242236190158210154719205179296503108508735615076921118013347781136211202867737065685876079851731105851315401798820801688961044368673900822139805074064275184931021628403881760331394864584207253285352419985429717453164472111817346705249498970228604559836870141515990471711657970847385385509927513974656764835256310791489250529364586216665683507515997599735993356254235026422581071730864295322750156555060485494101691307015810710259399312806004657700364838842634542673817066019203593042624726533669957405123216084894993153969848208453786839968773495618934266286236437630729916115508066421122406639802784859448613608826019443607655684037377169018759607131818063206035731286823856691183681147385447447613805917976872864450479266766229279553956220666984373823631336710033570057563706337782895138624147921062050272388906359124202606982592192259282649747803286709307833951412484176596603635296669946746090324580077091993135998771688946841095480928049427780556279988739812657498702661090478982813670072970235667452224612247866268666975294293138293134582221810586224389726043793286049620571367453872073948097448092020652185525518902502329846927738501251251768181980752771232453914303339494413517836235045314452340279222171253958016432049692721117476870946576925320607649216027928588769675824094350981782173729899338395984027180955193197555034012323704913466087027602928083505756925054365964254365274754290387525143730098649730045502736048301571711691687756550796186417610258172163137252759028837463947143556487000146195704455013453532883231460433561066567936620494746285109113114072668684301276625811344022152642802438300587669841645199625742218634902478530882679981940200097101242339676966080144852552974578332578809543564354479300269508072739617642392003272751213553445919916571492135567577551993766956682541474086807164072017825131644385034165283668007985417981876084697889374012854086976095827475533570810176547190701954387803866423012945570987709603800048583799450994458803133167050903735810764753993057084979028382986645776625128258805618994694005653662840351951459911821028067667132935100903270663017941623005070406514347312683384061026350636185844793631502954104984591258467697444765090690361569338090344250173097804980953395687673336068456752012801880025733304148115177945533865373258818716229293880874545183684296424127063977967848982705140247429885890158838909556555929776525350777945031914081724296138020568180716360373757389786025542678166506680996841843761237497295518661203195478099560286296585005097314093935395686839476166684633601813161594868264540967619237702564956172158648796324267634741196047433093787089079525374200645418341083137561311307102962256148665342149445863393942164869528566584846267295516687210989310548621090230654956613818247727128695645108276003534861989530655028773377559537390555077433155014100774712002454573216454144865549363324674516957645844894293754673725425430713195724329418444895829336046798948461928595102623098041817495250747317571739490632265312966076606581051286268455431445977413150266138547811986064527437814490600763323353928007569441595057112500687291575136785096525334392700738905654852312252707086012390362202159098943958927094210296220425201516658525541070843461173587482347282368312479182179222876557769699081471602528992330557919041020735811698297493932524605999129351938571539696804643247404180414587963614755051119893002400637778841102069681900593261709692119660496563926123762763338750074913873518394479036261539608483802615095190008180578767131468280564600475458474904407103260841767316491471082991397077152386702649676533789481672512392498430708480152740134649941683064255407022273601332070531253803980199966362504849455211582712502694473182588881815082159191513039379789980550094858470342684350563114759686885997838576904708688876319709066740921928434866468172731772671362115507781674775670539534620034635413194776389917471572654028300224424813748066879132655363335336500428921364295213267084981294774652727736086163393949455497330187582291291929748076464626986194276111242111283665130295092090316307476816048665787800225661346613991027665755015416171296030983256762346899241816051584458552027362126516506731093964517613291428413732833380435499506858270249642458834128512544483081935488353313494252778892268773296220955087807721714966774129221205250676120039911842894677647257059183303325448947218219224232122157718100006974635445685797443730353678931935648570328677919117396763897478626021041396545524662324814371324612763129335821607205082435914547324009857511414936894298751997000556117170472874540143872361413855893404489804931949197767817639152110529084587511021460412226624300059460938490371048197708247965063344705662079040067805067577463339820912354417907421263084719092316129723829043597776151952194546840369281661477271558596109257432802537818676392435550476778084538268251124974487526977098146623249409843270555250020754322541132569225495896610342323604076566493393120475339105537531731603891596859198284669221354061247446709775192185590609083635743820332879928513951791203569355953215825059441943413804561419666306792843924372584117748005839945292689976273368301378136418239826338445467233266833565121261584808720594228156886311818244488397291695214182323636039770665731157596569497346515306975308251868390661992118011793521730440140693101065172484587574775474070306522207287168847901696949278108379970518409439457944447941846303861401330128260574931137426088465752032824130655045304674034360569502222254725432123690921810352262194811417715068172233050140073661396067817862389519739502241817270721383382276666640323220988118122176910920297127498799654159659907908437600135556400195482938128705008479422184673470216178205006395448857851091401087060476893239232837978377847043194062171642468798314721433572644928209016760437402049606938541224038643484081405189796915771242047531481639767317958573455232342374866199965988816134385965443372725396001790257999809073254217884634896606527988585330484761550518756385720446451555370871507131077834178908050491316385067161804285841215626416706092042228869356723858008328104109537946722631806118384458999034568910128282110919260911042857306505553407695285248550972449224475878887014569283194828674258590222410319466611734967160089561963257466790446493263103487457606224712416574942437662824542230365064821242564153199797706531810415658438806531599840469284407170862551208362086475381464592968561961307605126968867582158838731073194646460455621291069915051589112567807824539598050230839879393110391869428632996724192709985150930811291606068190924890922975372275449748517588416097126565076495564829388462384844332646980602934892521984724747851674991315141983569101246362289314366639800573202039224390298491073382890862125342088046131316290963602228229112589567242900595476050193581131538726277596452402696433142434845520176236585900909157211118082921031267411029682846662148945101307054683747777246907209400639187901853928852888807886595465420809793319639738779595400330776717044997317758246073617610222578601057756242374629303944341360630578764185855798858055046609191371450489067064914817367327025128732287243616255653406385035422508252219074544572035889288065870529472942821388153543934597705282484641191987449461652483272817043331288926673841782552708300079260255063113244814474462754274061606726746799090038728367022278351635660469669722798007546789877518338396775084355804036171114960549254578838002126072495347031543820553854607930431399172805844366346543611056266332638566868820333316892528192844206429610283362245797412840499593345723960173217657549564961906125758142911054901010507090017460036650156390001882295631111560025275838897818544499262905872504791267361393723210423573582012204269853008025764482277744231849657452851165272075345503905370329925989954564965345071528602370853127693982252050067852761229639962354997430524890339880366443131504584601257422063529951656883226593181976411145705151046059287620636254232257166920319546872232077419278287158827631813827482901838577390706180956433386983034608097697018410139143760157728614626667945813263052257281766582850314867010613455184325510454186831248198763595484199431733859088862442332331119607564919791139380621927910882646415019920070279078063021104753590445316055984653502855062418767018858911489881160411976700647753617861987957833061282766365603909956953142961395273095974454791526329637413651512205170294243928925588919896507592680570190601302784182227457377815629095656136827995619115166032613039547134074234899045139734128188258730918618485515892638858549656612625777284304409851008182087960789983793524108050991011770663874744534928854657356840779872721402881983571189063855600681018538202177858512459382493588359855945239218653885870324464776592676649578546353672620854119939933224125993224501501167116074105019093149142638797237705745948986153947045343774995975407664618291576355249950484638005664389501665215333568726269238576869124540923789044654050745500927954469935523633457624211303210308215151711412991363666868260608362945330380155417844572360990061265451164160047712396796944010064917866185831254889746363696682698795569175213408681319011155723202457348356982745973356294937260574041308476537239655293184208237499484167388175230206591185176398652278927232785425956390298527175334415863230708821665520529396341593088221855031056900503465875739891188840736765404154757183773463729966731177088841405727047558258199906850322407233937082231527261353761638121261065058405775422188202156214797153992357747173014517415507618188524180073063643787957313655302005490989962627070992380378575711549285167142971732805261375385194964541907566401952208212011716186006589783391405746477859275169661346740873151997925103196059015001747066334031992853817914689684724783691479839180328714706874339175731689442094977902048950849424016401146162921993906602230621916474953437914283734974052036187182509411177034286688583202889261287255851128657513716668220503110837613457812239855233526471794735586890344921351002255947061798935019744193382158492245761497114842199569172269910128757225220148010281856761431780016516941610835797178553386004015417851902503071969415213918432137318363910468851367567445568494231693301930768530223040900780222696236887993588790701930228749028529346078825552821820658822283413762579728136113861977891704157522247418614387906446387468701549191758088365785665947410241095024057046513708194293914311977459899702341768877977911998428474832241207665010994917214496248285162991573688160452660180843353459670710928904348892887058209906941166460658811798081605535433443466470373798992412720709330239025782362040057178071561336165711984981656664853397484830671408971018653229369788524149600958528906412090053852384156155933008998766639327157916378950439402955958402336411979820295283480741770002900302764871233858527336129279908239614054532262746871217684379975221595055879322276320497012036923079941855582863415117588196184541015628382928169599194800294947170184443999426694259051839548105089683597950296270342255757516713691923269128206790465465397008336752770623620548953905373128370544770182637284013386966203445742631674099894098329668487671544153889662431683089757004361964873297361555391613910419118550122700672939123346205505310220634184063321196840704859763137718868239774267182908341836131666205653531768247865458800520186843309270287725541510407358401508501139192167116041140020218925364784296253065883701986347661039805239506990942133580566144165738478916057635428342696099982153761215790110458047282354866932784407641404815390608052539064553233366711944502772360036492638533680056757390131406702679247911508890913276879839640983058806508483826233837069473935409949390005338514624850706956170469479994805180830356396283107509303907825879766076245617648773266474477465983501940694322146585541598566832359287533486178866642319527832470556081401995342979961421845920656519615556779368594785401714065803677227692585703753979749166757639815834815178842371120498255377486096006147230277603242385999513744265187252103655772103201533127000093850983251527741949490425303696064700771717726618567342409886379275101914741989667779400026891148028644637473667441035088654061496896300892860444411994071809087688415505050687731228232050829116108805256680098683928128888238198122333345761314604541612257738519752664121024450607731613174991340744098110629301251719033332127248778081528866687838042125563682591627788406879062322242413330850745979042087318433604297525268841103765271539782414809662583883397215622386150699025821179909373335490698339413495375104804270343037736820134120613312312956291857758363711441104463522726642489297048700812694289999429303048295339506745265679052259853417228444144764211409813447168707695869693512413115995315120682030710248420151712102516522836881457643758023569912691815696019427470296060449861141541318296130212221822328627824504880669840197617353637599884126762138045179618654802960272163269010341025849349383682458212924986496251579500307698413542291975639380893967380046578642706224534966071746897749458668224822338032750239000283741176508270785017809539333117797461893267055942176580900162563426782157701471716358704357264855355433296555457170613784514601732254626633570706764798818509566553134700211700974887420841893176179209704806659675610437776542404822190030075326828530533402409844176174784771301254566639805450167313775312035157314448139197116698299088714851382562979460859875002277641672633909331582752380066068326104550300817460144543611530991075527998584035025584502562712156835395582396203669543277879714456110442018500554840374936129625276031979611881991702152890380455307444294974287390501752859053987991462801759426348016648595981234516741647849398597544003986265369787164754298395980541518659533599031306067789201033025887920709900195943617609171509149883429855715403485745184900460728701364458903540343257009738035071862375656693154400553670321104377234488452435837926342904632048177056946038440706570987058262804205001307481369631730580220601236832658571131710616781346146681694304534337159604740012565561428088240998557182746987973459952197754344853906733635921972929253757792547026031749716478309866680463949720479396348973800980891032940486266390346829548659893990190038479290726625329932498461037280712190279691257350225958880944867745999817500637251502003955806766314419637609909385980493731993969430534233137123994052034790501975451307908542322004279433027405731890346987288804499540768926769802631403090532946183264235360622987616389729231668192975922464281361484087063157168509093606241063212472347088618882747065104010159012149317363757957568534416232763218108026644284808976459502771605732273093240052626684088404022990754484645123897365906639896633629736959868275785622954429901684311102011949834570709002793458624170328182530976276285776237435236325558647307647519319544870073257105558434207023062768202023476781465050983527298635608279205085200779394573268241466686665798426422058202026105720705881984951354782640320639281853890675277355944424995912494274645088063999536120837734995874513735964894325718599247295003658202326360125307695532619120756031438697453790566499705517974850716185739654928775404931875908591461959513676072979549768894482779181659255823197295262381690752336427833570809339558435367779575278556171032063717082278208484398548792775574011557723590153336486241827085670325992597662895082198190290609065730684123271806088502995875831449517442334314053645440643175241975734437009529393283274322579666188155024477939952597836384139415829110449506986074427396686725434495536739830523984664956536487680797211142631805383410268406711800832146577984285823176429560285108371637413198555793623155266265330637997310364108773555673582715522475200758624925716445143661994022861597421899869554857871641243237377473301071057163680002319501231859737787156749818715166245771923069728587371259272545934560847075353226103864698935572312579450730397750396913196085937259203809677133000330911252150756292505084971293490918183727628906047070732453404640619099458690854794740944011625734558189706672633400183645487027884134608648388188170545071087542134680499841428731170801462737081779593576212291448369507472477746648046662455016435251306726354748175591286239208583596173830268194417766468028543819695388119590092757683778908367057043282301587137750599743089480771383346395287669433998392915948132270948447713102552517630079716770569139197919726175463175576406000944472785625073186701118063224762424561162631591440836304407514419202346714576242820132535672445379139607297550271681370308433344949657310889669277578719060527818347864278175474235986181822146679733851991228492550496608132054124260441706841732879464869337533101886864931797851617692920718128455759318134250633113313989319062964637825535903749427626757492219409841168152697832685538485902127480903195688773008114498628990312557929049020903162171551359582278798798300903917361239281892888362902076810968282989713004034814936612058792580108549965469673184707260571622960088053055875297711798543682700777718247192065656343500366352063042327784820171413678403495026193341729823188486438054057056325321907400718805984680375994164755621978689260808600062387427069567892896465974779101367345594572758275212831191467429165721675817656470506496742070936368999764922473736449889638955838133824988403079112252920783774046854379236613615756406875924851463319318601232623210889223865141074710431191393419210289265415241152065103318830484539999533146459334463854690110022588594951420285070244789177997178264875310773842068676303482485128146084901083666828605419371535014572527447375477306612585927122815164489717014248829854769998951115763207954879858312491934394211576959051074858307563704743291717913828043125500774709831466250640478005275227092779153981489857296291764945944380611545730332606019745756132180194227148763629816729037125130030313483404928726628161904857366908969992012318765054372998313298322485764281440882219846861106103719958953647129498387109833068726383968509336600007750625118162143954916671051692322631548158054183718443022429802612109764957168334321539455357195737592521432462297186539154556283039289981763721496213814216859271420445127532058719460405219285970121467660149570598301694413803360539580122016146564803287429669724654173010764754537494672605056724479161096635174962877686868027240667400352148662899979142323470907586296637749505354623192601571160517920309739554751282487676479896000510930824892277011118784106989888798175676372033279199936206973177468417386474545821324284481685719214107599330968475804620780279943341162611993130951993930522505252140926250258961730571399978641279845292285321512224910573204384461941604488952699276693188516229706497470777390631503073642445548244554290772694273219649700338131409992893571305789397879725977104858311391697701667928626072143563903613005874201742583000758866401106476532979085263249760877626756650612638770978867777304502638744925853902752363514558537081354257013941065116133577316971352997309810613654052519076291451842630008649041910354388305885498833283955439842357457124898534213907071665930048284470617758583433344702802653999514267645686962526908383943740498113914549032006008088964481051963362165253323436891185578918963186911595580987463542380438140706664455918671011783042252643122082668522881473638469521843092817617333097153812744623730149159078911803650529512550899983920908450958865322044924404261166979139940459441007226522469374878998970967852916602011603472051826041321701952238761736847133047727293017554772920748133563147320477535435647601833097698684914986559910756094732654555378572112123427767368473882459087592746639745414089214832443562148173427507491315499653049819541760056950655323292482941701251250520345203686357333624284633566386207581673883528343308588756093315966699692309278375604462222741014338961410359290145645210606900405261777540784258827110987656291591611439891155203436165580582349426483487305287311447628622307754691595388882160300847922234992638870895078491377977872029670780943962010953492344682661030513280069946830184597287328423979433616004114840413711695242249316657624714241981621520510291057025662071784009279641891308198241997211956810006847534955751812932115748845806834508376755751394873845366019972276052906140748670253000354896709004086297973233464571972276488247733593950192330101072128438865130926941048722226283490542499850138811966744371729766742188316692659086875266547570396831086986558150968683775660390975631435280917177948689526581632948210807388811146326643558123859790094593740567672933769308464651879331649305510159346952848865194645089892313111930088312047555417822924024277424447497434587845111186537077667338177696027229528676311252139944912753425310405742537973285584315229060970868607766719442895949400081239462478212769835693653989533017271789568785667038559413262478793730087894855194513400806634475020466085055104335997741045660453852910818926167127225289314672897539093310031496577141172439285667734410520275892966477325802230991633575132824567140463297816265273767864301625269235871417686374946549771263127866495778938198368137497768465818303133131261755994767880912336429842259706615902257820054666806934961581367585186945290503054661073442133486072368899335603707816204917302097138178303702360595833834030733997698604247461751872834069006084648440965779888723594930754449086420692497104260256695335111321726545106251924024960791222676983489260929107830189875831931585197669841124413007599921934953223921306207872521568035674901519555302253654694435694095631754950650558521072820043823665741637472213466596544829378886778760367275487960143290998463738123832237696075332795134906170483957775731601943361195312110487411072085257153502784762873764191488743631238476868947945779890060481685515789892461929090869875612754378236200946480077615768747759026950571084931933178124373239621344927611473765477850316358382141010764711273424013427553404356625062018863481350616006417843306583960746901796530348667261914113176329244626212594031828417493848878305824375271993996148688487804993469907777017975025098560153148163424065460936567087894180393822238069008602166243564596972759764248718449007984837272094699814899446468755340180575596568205959009369405472822111997270870959180658468502582392688850992255576694082713143545076963483171152625780559735472992392888940685083471486777345307224540253716367619437741426119485329176442655678077644626716539402906925665470057504910574502259225289310133712512569656865667957459955640478763103573631054475232475078850849812415598949234192451957470411254897274042587329716269410925404439360251439943262706287715781361892199221333115487595423444914816397973869507774297056777525864822863201858005545907586035007935231604944964983222632120454003568484673204133919833322057412776088327824706164020841750934037759741476217226120235208545255734289957730703026712534395575877713691136165849044211538059981818693891249331908426625527229209943023017094172590029505903906027579563494174998904736754873938223788093080537267550028491155327065240262266534082247411998043216176808257456696043888105625544479791315110132644976915525288557838246942907710209060156998258830076006176993837607548142763107558023811593429768944438084392060255314086291425231156461944884016294884178180232264285301734172097909824327817523300661584323315946887054576419247118096825981289025953396281430316827449073270487149441861764141652370598937606233214018577519936308226204765079640053241100612905194516237168101220463134685689979796250291445430712595379617478283771377827634711617964489576739511887706513919283122724288025552695709840684080307238759708135317875629148435735562195813766239900885694385200969125401578465162964061217488852599790728432091017280718422769981339983350913132109073193348902642197467776432538078849642854224340225820862537550137792375207089933872644076964357551326314144820837054219844818430763426250150359265119560218283194780987026450483009533937817064532741186642844123284073950794552596877625555869094873128048477081185345885331975011428117246089295083674351712628632860193041927215060575645450160251040263186069659897125493837516463865495194603453528855201024401495373263296325645454787433679260869365321313401420677386382564401092407921687027146879892783540524283254101561867855947374913789985469643235077408918246841164082734826288906223750024946075260788755354224009198703531628361393459175052737694438766185991193845220520318162834788047140681011566069601622417682465314371254923568840757521998651408436035507189424537257090723182076154974755555933051440464686836002031881232736735684721659805503120545036011468481679701923734343742729371253120012093068163049298950009650464964740190341754994691018483596737757994602180242900785975968026010295663579260848103362315741214930927375584526658115142242381239932023903811172126672616430413486084674254179718546220475212733865772738330065994086887919723669701662833187594668050242145965609500043862074591247793920432451750726425202525648981367225705924614336320266171776730331202060412359976617539828907750556454919842746975889427161698904665704806533863410004380437726366259329469711992718701609903220208928117859781906094705073184372560800048614033008032896693133996920108407324444298667659404072259033775309739499917786200104713921193075697850766777451588237242190150980496472174608468269945558261414295145342750826968242971163268844291830297986922155486903039780839647012990731083605261822081511295706286088669275339253871868032286550587933692159999786837459584580027326245082201929218710181871874283263021653083323267007381278840981025717715391583321632136014473605918097395926618214089482487300620048611720481834774611165141386947799863273438331648075971351794844069984995339047904204438787519582380330467449121461508947818603179674357734481290265482322240138064556845515089404843348787508677009108803576633066067294640738206723169785810669791594449571022645379105927798583490645647321132853839669018032263568022644018361671997409561343970818839118016365205393762243479238642545680514417730878273879703686222641231841551355921330809843139212560077275510687063270243799154117771917580502510946544076822590130854956124826223197462429798312609306513535415021722484066999820660732012970422705771662005541975838385897909086696217569088812120264676406156838740058377021233468878586904496805821445302738039019869596794888155891073946393634577452725618672455558496281488113284439415590492688005029991062716983536724932224742171078932941084135104787507508110590750649844874640583778755702251114578651463640691411303113317923698983631443895427600079371157502678223156673299002959814991144661468704644742865749248528364227903225286263475022204216737505108588830140235128321536539929118166172060466905851270782836559358688886788633853796217999398600050665224293356675807271631291636326457508477151204369791258964537884535716554682980449094076029862113091059411165194459346050054413023989390090315764243688957001654206722305265795117859626699345917743548172698286722971506103004256850219023130375830534721023946051030781671254333690998492741851141064601961447087818464920062531319636254367348825393531048413531188164020334748276524940295434537112210756640496880893513756329304421640676094897868917978639685288094747575700013944029731205845842969065115929511169679427149433300919089478699380507499935104368716050276243146004410721890371322887414888933888548811372622251012007795887119366378364652756006597768874368510924619532115527106317684747113555436885266046855544770791716666360575099641652577861476606196234360502846144371467096872057943152576039400298665365863273967255336900768811516244432418588653575741533818687704469321899250668238723426670907654756479063359461136962989532384766906054341108365921312282990498573386537958878918148321880079544483898274772861650367882592563939288482321637765457414310415395926944621091668760441360559825835537257805199186910578349795736861663559941633682591789684711836069180603170561114246261190949164000706663799918174264904178651266373629389232794280992513451717852979928040627938090148781141383560094252024750827160969537823680852500027450005716364169233192454251745793453715289920068585172952195612526900257976592863302067064797139010390576487903959554148460175740700191654483780480537201371451348339389555831817013494678488184527646359175857068835196566760534433499480321925838055110506209957703575950153623111630529818682088163829055671868695625721175144682799594634936616115293770501974694169728309271802163612380391634897157421631366926036446830144289656733572213585468128635242661111100310944668555074697577815822630093454054078513788363398298559610863286690569442502045126399083425076483467057491871409782249649689961956520240694971840396739169053975608844620448294072198501506594628089577171845750318284420797723912685160021386549692016034688817779759522047325277347434292882076562407420326464322092403897592857491091647423570767696129722017682586248107657776429288962886882185953155114737308325309484464101012286596648448916405246986696524413565378665501109139673117509867071684918146540181180573314522165151472966718108685912622005697907782312789413855759542985193765600276415374720829552409712141928102341551437472637326686750522502487966268205330881261348517729197481668390824194703503536835283782586095900054182313017208389806995002241041714815661066377350437031250150420372188244675489260112332513516662927689567305924848253732689361837535663960394352386778966684496001158860355038180947828067261869239314874982924525235714355767675873961902778966989891067667537075333317034093719540930294486462731498825050879216045940340852420378999721871865340266303302851084310450542517801659034739054149096928754395330312321260935824933128925896042637395606270220266332621474912140696555513006147040663702848600167426803356565159720924538679333168411924971713383438572005483733916299379623620896325243450256963708073149182019886941983681451704000755020141142026043812490196464366197199598664471441231568258951030997457340427696282033360175006324099859902482199127450387596428487484746729610185142482841709455725270103913765287892996337708747564602399297762370179470929624939161253732358621586865352122010986634488953040418014104489896655989452322113758333645911579239467952826736108142340520597364704140109908504036669551359683715772183764048149877183973413077218245194399300398088644949037898868507761209801600022156294588361881387501550309894457706990839713769780141433173560538006706598336115010712425610476650752348278401801671210975231775382115098127573818469101315208603250096288790927923831103521272567380963276465854304190375152553956403560706455485736895552828849346692109136334255235456572285776566954718997091324242868036305853770283506271617399139393840679433777264175445477167044677026804886960104737734825336256661072498152050655955097086176765497914889767503847881349499936116256456975902078343771275645421624288561840977428691038878491746405219864178896918778024174598461326043661974314688740665740955827496890851045234536656805305272460866111235588611915542200524277653335221999266849273616714535649707818877315648608084245955069890809625338163530889140626728876535326407159574780423651765742854353084566205010915724015362448466930629189999472145328947880725043491414689269956780576506316767043230429290744988397160303811266317200068259707111645625067611655972775421901112276183488963907218411739592891985500882464458871929587481782704734794704942219170912929239678669699790847282520831249896889678997718212943308581387719179509785532427345764291726161557146897452992903968560146339173902140725488755266817750024168046814776933549181205309026207681123985612581660602382334070526785679529808180822401585986303830774688752560567049105896560748403082200616698389963119325478968344127744678283659045949285491237044078432097370105469150254621603795448834305180420302310956334317844080921947302091853546114808668379484073892800789164016275736021961583846718129900604478058487844376299295974570311223897618546488144529745567980613227586660826824978852446330474663119752184076887232449111250192290684155767342147081188535287425690824123464931572373878842344271328889042325130919624885023189133874975340388765111955661322905830500826222704871845676758244333965495843230548594173831004013078713259551294717849023963780176985514772060215551571033864216321794455009679798814792208467997707474943661214282223524184826254764929243995970535286103816492357303474161460957420383925472416388222051897033310254382979465761319298923212335029128963212578629931900198544465959078059882022056313384034723272949790904561930715548641708209794540388292607465903944518136522197440356962390022369070945636122266564750149940113198231142636574319362614384601748922085199699961195620662567237251708779870750303589822914080459600046737204211786315316208117394249514543365834857281764422377230007044574144019116310475634984148771980803878442061774654516943020770722844373351358330159208215090876944724946785696681772455612092655977928755108539325875948119803376778947013048173500809587891421994958708530604750349212933446063709399222541440633328841278738471154841117660555017405927615652657312306682197699016728925020562110173423696623506247293148817650077395133042174812894432221367762642492950363349134021914952190359544704933848936954314046251638259992103515737379749478623019814185000685622342044121567595347761215398451401295039661695459533095829595307808322107643308758664364681417954482392000156759234772794442632867670529884730959273171749544520972577714948790719855188360680761544639255801217288699430161061838214335468342218231143122213358676037599752632058224675886403693899582424747378166616214546885147897449764769019089540700752578459574656097758772859669555568335916200104738139414845404167064968472317207695746079856103981459043890893525741327669298827620113239627630980218281100905952381684311472023934929577548379902142059970556359369466073893896333175649624377346008618308736539850780990984698856809205030309144541347424510840170247835206456511965453054234857244578256618119120067333662334775759800327073048981882648971389099819781376428199856238846716397704788542656383906112740244394496348073523261011228614451687258130466554690370461784396585201688246419278093371279764996350594131630249437817260111680650486497894484127795616443417124110125286865240320842408938749501233832207995182445647416378480488033561593257682940950364260292240315217708383959845195495971041600192996738328277362952345844244717057806146977764072242568793449300127340169936086153112653348744324483728147098384949515214628668346583851275493072898363431533998362727219576731753310375995108919275375863502809272230143443811315884670524496114829593584324449553966560120329325394598324514183174911292006539740510555373225606799872432460368671099477158572795119871143971553709247657101170800362604942037840331787851041489455077166532596005230390892050078702456425758255138076880124820490100742458181757224107494584642390276068135637020638361353456776192871510807499974903166014488172110356993806909354648233093614587477218503474970085696637782236722416892341869610970977375395790819194127692958816641012523375563492648688969929805711414707475327066166412557371884000064221570021653529656453096369830950075632789451480509330647987823824901467232842196880206701826527476716741917931993898013464183806536447369238451157830070444809361456834855362036146805368224739028406136364889294202804906823987213255443047027045379829870085150659799158036848742769655495734497831418460825095390982727282317716147631239273750871257178805333195100576247906296688589926327643060033551446147807380621731359262377892916519191872899484586111848518018493554404257857087799627482910778903774121501978712635017513212548129729191852455470624813653368936303940199741504376584026693282189843410698778053389689528597059307030002681120176951414535265889024962522068502847570550131541180843931615153136982671898612747047635296567604797487085180041966402752304919128368380372850809676177660562233131246262380128882667553548815022856630069721086800933349158306710079058305574170307500806618742484829091416898836866876049410817835290415098016304037066483234702177150412775753142060912996521654104698010742035799384042702031202600998718107840821174214822105094664363536781711901641649266430446626050983999600085375561567483359112194895830606359667193372437294457866138483774358688203145874977321694480413866532734231805495884955871609677697407224073091197436586791563235543542721912688054186208521356031384605697767632797004001583431814041234507467945746331046438910705933000728973165725601077364749686071443683529583108807259478263030461740848018181761661717323640553891613226348631840450144334385712071347398534434757782538779850600973603724345154573251106873821134329360514101108767768193744858333064533382597533375405863881250912773620648692609280521221522785427871331742793403753859304210279410584576696127271643996065394342583146515974145768651151963650593234806411093077178024943116038889654528784819264233142510677583326479018901165117648880513845794488703355429001758515343291974464114222887068971156400023845781851443887586249161139845678327659588433462508315419690043138604911118231865015670779341237142273915081104521397049971548966657233828408980335045005786615600849337324056916356970147320634960786936010112031205257142341472634366144383168085000940924777516575496835148691188422540975262562350060564733498235028596270867319602132780984733638172303526074230659204263387436479652251388156988610700757650127946872077361420209892895964248887373016386267962670590309260197182958184432438214163364893872952326000654701946982435188439766810822181696025112031113495631292084884848068478322354246776970337068805569071108705681641562062950650071876147669270953816020030887951061056781182963406620641537381267360398659151374303325685851060483260831260567794390972944944014360178039748794935231617736731948618810360648805794374488766378916099634841871127209009785677581055147756811737740855379165831603155184907883112741278051758472632509986929830829763195403014851670598720834314259409351440089684823977880649359083594922392889670056910953865061597196710483238244357519551996873116772337145504148018831498005734245199795490585981650490877318158653697599037536569020667122604337098624335899117441532558262748727255240101314082673026978027594745421430786851274826771070971605551551100080870676591112280566493046103706947353372676711401488039881255792405186980932960955071421419145658720253263233459008340366761966734332911998717157737147984618389628889377620400082350891387274755646940352831491070890528459228647961747127051167948202424607944157834643237772470039838003967754375869371263244240001209362980721617478499002392549119856962414078153555793267761582527973579196551458121426137829778752742790641963497828968623135568065179895767194291584180032845236253323724251929903834032925232449410041688800926475785382299021644488905118375146681818651956589429696829698614393674781956978690547181385760479611268637424867134397599987104288400856221754030345130780531115103249773809029454298402355433788755653295713985050874073064117865934911987798616714293667751002927104895640664666409680820144923294306236946947050534412993522757378432699811615078154829199439424138694129016992202594506249035742992124227367312005625553874985271043150753057768945947521490910964230900439787181728046621148510071006268076827507920743366784108708023442044032399447243848915433132574686335844133193715096266102984054827621979612655602920134634620077595789709541216334429317556333160441882186288921661770795113599713508165494596875003994255541379406036986583364974128811941718758459649209986339019748361834469307965013066928983980818251628498207693159446493819266750741396806661385433866659025303885943942364905845526539764275085224738114040641246639559844199035122533855043899715954104072220181900269644046159428880308270495648141416329701907414451066284043948161692794836051522597450845525593652785933642368204008592187424263522103581262178210254280100287533809970110926427456757391211558435135553199867068141448191784714072508400128220239210304379691849515153981027601031241570673949903597890581737496027569296967993968630384607026636880258528759782579371250116765626185614695318260874013798098051893585129376566511395561285633175022820815603922908725494268487209328356482941244529104074132151453257358779947010045468164819983908473337804665766563369727452993732989678553435653923173130108570586004674764607425774238279197057754355732675152013341426441070626795106086979984022867344319345238095073862581731139598294634819776587045550529174881404094677941441560074999469382727211477473006453471227440311762424438651885006624377962347395854248606268790644107267992892067241731800283936217850387823047144347166309248544768296207959124787210260506591145431300364506174745561554082778742266569001107802369025487451576791964500957458642572419754749648627057481510022204980923115266569338095041653020708606680807911548950988138761353056637073703890311692688431081101910796154537608851379210490827881709859720389220932404842839799009385017590892397075219089969329309785276469797165551756835082454260847544568555424976374883288093773102764913542874514820190096469218639115260843592849383389324715064260989449207164741472501483015495220073394481956214337424751619139380029898704351158417090759478516410706535324059814953614955766694528469221059439172841739135298684552057197471630365119272112217686077733191616659018009634410993717264770148355228725461930784986082840683391994418339457516283644547891493411570642417508204045554220002225813180752187799433753393358580442590462375561970890596788259371299028342954386704018191834274136168869264386132625069892073887450165536473647899014330770610946815772689287274091046794833282422994972846731084976864931365499906466510686243134832961435018948977443928906474696814770798926233534489049321742850972445689161436746726483606297281455512247231018324532418342387840427346604865886413801250122010819142726398626502182707309801161446302794431117318343656063059016669355060934135217121603039710225860048548319177852029185311818156381106477797880242186529556732402095156967468990868191978353202431240593206920585481519544997401165442304177582830572232602999103207072088689507627384028288771752950220631314818740518972456684686369215374330413526314628087216376979414794184228387543830963134498052898543025429925084483939356561579186179525643445650930956036844099106990004435997362615130219575143345512089790954635848382551075876343446787192012858078199951927473054835546229433980749590565432953615081395003452894230435289158791789886256003296242337405848633354954389358943934486199910342149315519471252021431303387749115009813549068248131862956340137526207786427776489024031325890225014815552925482552280366368697221974278025704808249964687050284518816107098909874153462073219844226203548993572728893616460638468793602947059607506464434343791489363637160598587582512255515198635280337825970259664103940558940970276938980258534279304045990936276284732972320701612041691393965329520878987268930625738950949561574023095752635447644398621161047874391192236220500533318211639060570378604878778400162334925692441072420456451120656370540207305641765430557361830250141439337577811743016786978801196922249079674525259222817611113232573224673166240433314785918665479700407626431492151475438579694092456523801862093340518577730301565743247649305738831718195971767589533389542409779173001266054768289951642802241441439852970048060607759781318127707344211429729814771424563425606282990150206814511582067347262589613286481608174356681796731078992421186930276555885123783996206842676650505843881332226933824030716169801106343581516752659506900050934729714243972734696483518296523745710524063293507086317709651291091671719292380792067349710743677126910766522850358033085600363016819888656085296114756268472524111574283289335819412349596955914396908028938005428470462204348820155161630967787893461923521732951116700282214957107770087747508333973895104959364861151409779371068482882609425453951326141763750144959330434797088019387343527148581656983189696885263562772790613213264083922509871931136995915227576583247040249095408783169351467307263746886712046442010831441746745518819732849240398492270378348649183385802112545317392274700770296943207594193088951906573904791232554007285755056536741444918764549603969614863363530205514890161353111168495175491392991190081228986725383255171835913848567691079179700609613766738497365634955833722702104775708126554973615740167453209432749393227432088302792579359319339944796361155796244656909271267494557278109894600653607267719722605179217553468570802608874562551232921545260638933004008507510787024070541502799016743135983583858727540663428588130024441017924164313361028300285957269795120185796455708370682925756853151066911428748214571823054428102917868698835279888256590416692520991465540785020094972447932177769956333177850367044326072950250597017146076353430688529287451255544694916768118764044280958632622552334403920411562822444093635598444091617540258054271789761629646418124130545011202494892392579852713522198479119763853059657570142879006548868391162807744152950192078186265267394597169854972604561743128702653341564027230640155482709664126168326397373441338568693570070072843413740096770088086049942112545961114547171568544486732685055557131014857352038936197531610322053512794485578638065012124524419979403286445298788899337224980276233284947838176343749198088962531703544232042638802890125209182631392485001414936351885256889916031718963596692991236691117120026196730040902154759231100173399419018421416794677974106634201690240516524297303725491692034752730854605792451667976980034420927859340035204423361831736998080264887683269773535863003560444887265809826569215217692007177870755556486068244706324840519456449303874070804983180220070456717856061111183077134575693811194502041255053218717098224866764928848072828453951511073276069971067913772946114399085953458183349297465271756322311367057363103174425227161290836826065084660824142961778476013560203236298150543706344813108377375544194002930350179006641216587600687929248884905964954844327082166774248481319497737726048022652721142452491705797061033552023112812909465420094021193031128294696508207218584980028581649621829812142657000001742502176056869821852344064827698458869615725591651837002455694565335910745315336319141811138301523145170545763830010173142947017178349303747369235955699618851943164724213590041974271834740770836406850943845898019937616388907849592512945665423384674384075011819993626107428640747576534624510823158419781962166769039438802322019463786145651903251289194101081901857167182876194113985539798995035124128518758848483384929897382721523700506483793664684028908063809020070865832304982685937635502605612888994389255360062641194887519994641608316311315448488450213168004097251309010407184031505488954737655057242015642288879349638905097150437446347389240476264993484988067844029114813593904568000157694135494470297455955083228728456878304488433637579185033868506942720286160417166428724249681293885225787010392653939909086868829649237810413109991470925078156638603430737664772923063657139852391555107644695331113389828450868498362900607734699201472022342456946865506750925929427369985291512178061027117990134184775153321007333495156526755377732674380789897480980745559085925290708644171173730001139677358338602161023644604398111630597370339694556493535420390839697526632525204711594474994834274594724281425070916912672477205494516545130374277781425596781041696293254893259301053545137554461054303042932791651540356149124914008363196570868765050164695624726210122891249845750924642812457558725816980148661745266293663326253331835423517170134985052283398012026042782098347471075902611499130673354902822508582354754792743741930762026574306254480949616559411164935617407615671928834678508641655567002148467697303984574420904992027879417727691528255229671191296378529104646039599403652171107941171789866382033003999412735555249781141831662235504139649991672541783838755501632311772704609060279616219025671215540549897949681218332845608852978027203241851273385786349271146300555490276360040576775023009617742945024834073540718473451203130169775866891896836994297513966841087644698683268955690299052513023278801860646171334220753285453026232416865533672640248320319793287136104290877675671725716336449285393718639993284585755713875104842714834021763173885993909599670613986493442971725789659077425661854847323552645126167998479729217313112966773222565823689873852679564986250572245603233049771493861466737073088977218572542368169458351437534105900332807273524731906503505728788141835369850023344430711569809889212750251382963962752304372634204419558661712487846428124875550241054107066743321673872528472582538257465731389510867036552259611415274738138203207328519962530575384077101650082792633488971487623995171292185486319772193079981647185196721505846648938567991888978488707307072775810123270778664948560945674598894018056641584050749033618149750391117956762112312111001716902438153859180219033617533661890294829520040090739567871334699313584989606378331840717302520295102945120041391094158308926098183869103591384657332158246593570059696502961467810135395867152886646402943633159971214418014847639653954874821752377557213675688773866302313911684330771477727655817266947866110712652277778626572632000933348653002733096180261434445263279026434490423409288790116727686976713830911562641564612575901260090769569521061729471771454159079737060179583102007750561898537135125199317043443556196594421412342254005037434672343051349561749911111937578544920005746518099968353135407878712953818280916374082391320127115937252105468524954449142081779437962652280512211895262048923832441288129932197542451017881725495975116618009137908510000933606091795169649246688800967783303756646235935718621847875163700616440855191874641952291715307460649936031952156310555600337802866572447553705805171111551803199301120242706723136549561775157141313769816344970767163809543832398224745504998579959992820152191201892718102786725518222813394478460977834017296227230839177585898628488244967323530501691638218267340652930846790570902703394271019797544881282222540430669950036714682056998750536695523587777765375318391980383214331572850103266022216862652470893814149800342770159017149934901516825244663952501615997568191197017483113881023131782347785860452023890761809876004660079869583013920246061869207571195539810220040721720002824354162018587434868657831731697053585586119355739100160759684487967174499949291060825377628662886308170134585908905092441482896294054692366547506713579332163717047792911959189552691217593340828228224168267962067144975169410695987303293233093361146558369030594148655311152148135494108238973019217420835451619323853564281166061133292607003366956442139731628498996508174129786963236194015720155862003098410546052595720896658997322791412224065324106799412277099479479402271158134992192319747721010443024071188102747046771585552239604582983284992769537214983583000458660065506185047759249533594640230414725740495488787221153298697597812520956903049056256961935609326279705096064632430013426330603459889639598554780079783744141241917092552935312493182331372567166114533491033823077367633543560663546867074014438086514527026005649254528590541280655629855251708705263287813402378212912938892806598308184074756949502980206186352205928350439445791422025935382310284652038278284622851759871710070810016031717160818505709528624526179984989694624697506205450066273200703247719469626769295506050024525053634410269981997004725086322484493449397295616256766014368938195006763161616149521598842610479157526171579640684634658142631222352186439326581547657551396251892428098595870247443783151724754017597104729096015841886578116648628523569253891090643799760035097009182882600528336215828369661223689196782330158695092544556897183671839448938406628539906752031427002000577510438098170011112646684022605330000595705561332436415280871239798184317637702566071034263984388550477854609893462053872296863792346496940139445900105601835539950355164011854433898982978572431364431646415374506644342168365860471162909495636546897324511449155215920314108418459280601813067007246627275011800537741872690606080328418631652806317771910171177130329338245375092565359843336775208211252190580085258781915178803800534860302982094786162237197837030386845785150163379168439021697982754600795636932622199434432716906778029543851351722877450125569097480441468363327054190813559407028646287149052816818513332820671107454822909285945253238972918500748036371010969947081208749957275061137529658955169613731562754441150709301018655356655296933259576895002649783259308539075848093410543774905290964329474671744517339287634779889368854119339728990476491490138194661188357580194967044711370988777284064161373802284994236385909231249326101415311210668472087974074381355997671963478869371253006131674114269371317107599794979099480030564416092343367277406875389330176961816582188976593312558071180569579497110464563342980097581100266953581378058496147516252208374045508870806530571096006876861594620797452711896652804378015283759531507924870194618626712449336002179155321716445134600243963552068253767888728206671093052822718231509497404408702104070619623975088241514446738141339405089140955094626062229423739327926847655601059918167401891904435110543385833297708563678375093109954722994983958117779671672963626833047626530086872873945631473230986856151953756067968022062177711980327853230955401860206612608992935031194721512256050839070119113555339342400782147110620637902535651343957271646459085422701077346964050609568110081501354722413466178112882159572000683186204690589714487871152920685273807832918735230293394678159151544956894844450952014012602371665670419877299725249015507934317740752574518815820097399281335633134011543901197271178815971626314100124252621369194497256396151018905066668792712299041443564506965206804650054925544893533961443394225208519764280862203882110192653639965011486465999952245195134912326904780107528092696782626988060600904252708582473482582605216557630036738625504241688428676308612107917410987122463923771930677926781804896022103393310977168004128370682270249107868310168049278928197586774149688029498348323328699328044092530194443706390753233109387116483271316295214821104132672134221815272702550751101281428216920546940972802560975578774300875788701306755560561993211503126294140501415443251643761151392350911334321690404952596150756130715608063359783071025652772449730435077234115981582506838290574552057508261535985144579726034714357476448262656898314820586598741379617323238280988348686583926527866538074640095169491102173328092245686601854181973487125892624435786458775956687151028405148509971248290720582485590041187769069378712101113580576055259749188185431094487040650596347581055043142847372974942835331719403389329009909002942275962915914002245970251040963761062784980137799873075535615667857968245299427869110698968984337728004027062092891885911995830352085101747570682335769792601259430743524762229447976829592118952901266963626950299401035700419779265020342034458487942422179368653519681471116655044267516407087660325442155001265546904554846589330492437539177151161619801863241942675482292758324590132211868423441039865559405856077247076684189813640089190532494151510007661650360294357296681314070954552735199667003611904118849592086166212687685989585605888779546838585212449548165651751870323309454046261458383128256212281231517133374765330639292119918476039202467093743893027767391939689516121568303307947733978073945235399536903999134176868490067582659342035758358641041504607060593424293772425615083911155836222436481344006995992979017986082104236106719649359680009240316441018254275743329803240080252317993838068883085073250889416502001985214334900651107173766493169324844463079626036089956201978624084336749191381433129288289032559357035083743097319586166520328967127889925282820157791087865043686299763731997107212457327439801002443196588826979137010298468437139649589047401538304555170268692548240712033202017681507490642270084956930047512377656927998940745698111842435079800725487448791302567050580237460064349173175125421785808565116993052169247806465847417635272034070048395529100337605253340543307187011157905238456405995619422824039747420395148614824474789251748721866663372525684494348406602994085138907525369917487980615883291965615717374932034303290823680118941729500826413435928529658580512025516828095120033371845960208807726814782644950572149724492973594424663154699975884346543599541993614694565539247050321433148057382689587460128216270599422334159744880279747444024219722149293865865366469304375543552436209130663729443081286133950674681010643564004364489183985887549122619644388498362876949461454573606774493495068572666688753365697776532003118329833805872950335122522404655784017565067127483916136226127217575548447577024720180296428333935213607479158731968304720849310656634745744943020062633510586825244814007130350471355245677004129612146016978761966573085831296798444754225443908501556288763922999050078305368793370194448896141681151108018811667140543377699745532970373594534199354342229632680939179777369047421891899524633758606309300854846316526363016647279444346698743385120618056779814084603993235018964085849903405539796047743338421133327433012312263559796388917078965156084567561288173714211147585187452036009134327471732854878683433691024499187396373430306813784287916533079518050976914411510798371808328095748117393711845443462582531531292181519462480267785796369610043831590652425018358197053159696501660164379796656262752032130431345370372588368922713036818987162954138879918032776081912826886188318310008770318700692834455058530614685097088836491797877840345549262025142296181339259783278961126263619857043412429566360537114407127613708976711149608671158172911353818866631559418788447243671019180257982070432153120563158416279591962241530747901527017587764768544566853977028836289711043744305150499157417434582262038277405127853110298591025173290993155207709941639564508361654797962846104817450838439447556529231633816166764450719386535878117795507046774417196931889351374761468930224410117258434520574665281176284661580301871381177876986615636126009533247298680116880506052859957660827701655182675685155200281752844357987677435796210094470467011711974828661816930672264707971815603346857118622280130545440168143364962404009292948035233854957133324997624358310226386014236272365501517211567923486004281419015976564187082297539535145376216669653021667431063803332731676147584441350931506154132330321373412888943338821391398606261419592897813111497337250193507307650597000452378823123625975862727791216723829154553545657358473510753074516966429652684970757339112237113733175187585285599102167364879548280074836100318341316087076124855873670027090641321029542019236846806329503074691730681543563978776674563679697635479158170638250954164775324166363497435213824687451405080374949847320717196696921567901803801756356153500529601335657113057795939829215587654891815668855356408162505677124353265354876316253669693471970512842103428126645194785699670438184748149091290235613857907336167460378442944834135529008867069713056933351010057345166085807517826259170348871546596320955267854903120295310758457230695283548007865182425485357787047782349252930306940978212807586555309832794706704538067765424449303478187301344770376839685621079220575199019652882088323401695480328550629357475812225898553002640434695232851349578780624988789118947218315426829050859312186243921224352042922208785795871025423799682106310754779539767127561294534021230650855538163630631445537208128616861275877292312496583543105970530772421306374017968324618393457412153109124628334286655886391114041115878316499856843026318918912083939276728802931005403756262812997753316592724509492005566161835519235883833557902861806898577540300076463644398731392428768602114135074538413952724314820995738162096522776550310398473361648821160348600032461807364014269666640485676451705487666459414927795172340907988798538066441895524133355491495989943314204415015070910464694185736496753566029366352657913482672998773311524473970110766989203813328969115566882111655994160689945058981563911029301419376183814524499917113832221100732071530292464451634528906099705320489160588046546358302945998646329180053446196158039079754142537496807963964988146942190374178309961134822230290965312549604595705749820099159985979924380467410506295050467337245901415520331774129575799236107256114885258874452880341629191755136142021272562722968835330010587877700167913053211189729385046444032130993771327491869251160286824663181474784939462496617275342625398772788795164305355278101280256920945998184436453949130383616227540963512027615184505442124073156825973147393225796254171978937953470599280561061821651795199828319357551486469846306848209299243034487504021361046774592312614315444418667520360246736972288906654551224034176774255552791112391971099207164284455736921292114510869579454122749559320698023114807108123029151497798690430843061151091121423313980205257538368234631467680925318408839736612333775999100471058724427507495595949208999316230209779586158537991224980424457829627720471022650830649044833302748665246963859530183053021589367857436512882503194605906593823114882280342948746108704919256450252070740059993940978494736242946428721314335631591680398517490518302118115378333339793760835033690855229361480390567567653428409363189862890402864796721309161921066819444745952503814469751697044234955175604611268525900718049905282519417522314897841374587601679078633657770979468743352537684497937574593678353753463727538412153737048072118710733933436786651705182294215831249476476035665289428482595887228934781191319063147042144006641353780575652568846544142755791854966385067102521393366212907456717975714356669988486213144683306136107912606373170015550995996662773466772987198147037324467324772555961493517468210933401692066512597181323607688974896323097518330346872789310158300622154326599226999875332310213481054483067935718450897177320189855375888236534399236916467873407060443240687483505945091258692128715709960334370341062676466471822648582234820593721307830297393385915524959536279829476819892360956075853578647117784082793528761128570808537285890171318774810017296955787439666364844928133992864669256512654932955188324275885107422872661959172912729604142699448647285281840904608032105271077581588477869483479611405665019027568689578846958435615632960136334720605130282289986526528557598701566515613401068100157382122495205351696946023271191208706336299869846806516095339459489534236521643361956438240290085937032387642449807047350441086744346552885003936088955186680626023219613523615601227343159116402544359956255182096967046614481558136558351980150729282262893131633754384573278645319476633445896444984105133743766678628154779069488668916486822120114430950823616206320179890110120463115761336563495616397481238042657605716400146115447616961897915460176412285157446557727572409319777206136652889657084201073571954277804405185874295151499226307167724649721289812151610634544484020667559965264426556888022544351825674260184425243573285020528907755404852782896811133267257239056218739169052295620220464320508229566336326220565952119145629836889036059890408926276766010010705569226277918858537084943794085684323316232010797897547887257348332853115663403890788041448017538205391299219721838248287123145212969664156936514177574741229116772675549748732354561219367889771948257949657123900128099327927820172000043577728642271636670399721552769211670713860369091201212557644363849247468587009333640742566247073585110286670629234233132508343752074220336996181687597823940587938845222357309221472691948898301794752435050857552694885985391165424129184600921483292236872847685867572964961319569552108080154524095247865120608641592625441463930965793466139465857698710410273134236834267871719119572135486903755444509148524610446619137441988932482849781565328402819951043105513211819634886194726105795073013930742050291876575820784418748302725730251404042219119135252601620284588760934033574143142826693175596289103372549577502992599464446717291428233858243948263456376852587091370767024531209532834963513822275989310135215177977930826801718263038862163421172782941813052458673932745526265201287078649552754907163875606550847123340765779755373423030986488174101777534285812098320041407655516617912231328341553628731210178391366438548541210173947400897869046157738032316901363983185443847560932723622529494744401114932838028997289941226643190380438785309054326034616226678419884369352595748004896533976509168968252246293046035289242983795951112129465224984401616095037204744847949572788875371216047898274846029895011225807816267606701087821643575408876501742828264785576816917032780729322671260563464602722313349355317963107193722905248217343149776662121181203621224301236040360788250800037860275942976279346087168325905446690599836529547422910068280046720596274453267324793079035168061593790217346989941743135655740625473920564504008043072831822280745154627398792729968166944218721342598488119385999418742594910076617596887674280187160741658659935937997284810985698225442003641969009236558387786178451497342539848232536248345571430567289199597494322578675365639468948596549377997231348250064832737358791452357334442080165562435347418790775320302948553763053524296016273204402537102012475338537009318369163055819677064785417596857797432696931904393539974979267933573180327072518000139846902876236300449624436244074320047062268902005455672855302718019282239442800411918331962908389390610615114490901678601770079580814350610137186388014114579680566661962353996177100876496901362508363749870353169019160812402000682762587612010417499213434529585057427811355556766208369655504517800419634228189309488082356746786393267024071839801222089108323673387713684709265155933089524510306341385822991720784472802695715482018876290810332094820212897138519745963754200186104811782756289344752633856721975583017895240364484334061441320855082895214764190937922454834563684314058331614725238232545350212358014120822261309430194051865315748216490901607412055788192456474006111009560789244820357401573374065218019216377730734640497011718238472336649816515573203099979196270021249695704239006738594524892856323398884495679225189145193760900733292889318850412860459870705860185257955994081486010251871555012133982551804251865128918388938089686566074044498875091780946127474880428316060094826337079195476239291951206587940741825559553000459854154243944137922118230255358251166944072847512042792715890016451944751092077106676488693147823206443581532967513520194973923355499496756104382603198989930391785606360552117438168948525502640464923792006971721637709646898535407482999363480758318439395112277253697493741363743529357451843109934676312192080306029895763883278980522305845459813499115848607273451873187676752516333519595426232151539256608556307171174182205674374790927348537089846324885374763696770309872926959010295687455402213758656569403789862801728277681106403698594367610154658484062841307357666357298302402489958532529077984998576877920844202262046404532323306720071182380684033260095513076682661285729571069695788302049407446346918943443568871634000825411689696045764999406643846840858311756242358076485782357574898293904891240446909856528148635611873904864428882765157121086421116690473761862021802207705206675738635281876659587141015817870873289221261414046937432198534671721946564058619867532939480463405881869978868303849892404450166847537073749003223456021999353580659763517941480865386563983695945635106124156863113599535426269275977950993342466677595637236918591471357695578097309279664107301397118013176295905605845967405176556717873332815552795919028658679093872233928003820751425901950820460317519138201486312691432268398702685520599354552374648502670102148928504212861212329342624957112226544708136613779334177069308951488705873619436149257169212036155020345867394186657657917156680058928585966064773191514135392710480093960004647780437541864624935245836058866628794401672780702458182732014187480128094281411236161593115373376921297781118694820931037217069061397442030267672166837566209371120105599746578655793085939436405168380518750116317144093242149399621595304159313369276661186328752142833472428736890597423255592859098126003941393653527151767980641020743879629152502406400335773372779767831580113908631983692266724052530341967955389393779831020717356359110737523599947478800646286155684991547214356046179591610477562554783430414173862644679733111300931753411326330843839656490846562859280204893803800745561278322635579093317061489767720886226603705222389707087559893662115432258807652547290467755850871192662082335993291528786445650588158170376759508929419790129980423694631208923374781020257494330587635774370418169315209570887064349415177931211842264017785360163494695821925466477387517937153837347648008583787999832805752668756416271901266533262653974747863871946710857336024242893814755426082416386538924119521658943825805914163371044270970213905529607224576754613556944085424927590602793297483147362805950349077822331888401618933451323146468845760097802202802716214282838138041101213304136393549389001509241364068619913632277655233494774382238721407166839537656942115793901603588955819162706381313192932300970748324361741289540790239423702985392898468646541418018594544862871951760381889626857711288636669961714517887883897175232167576770269712637961824788155667286051413502680474794082597059150550544209102116111199232234515799157092915469648729444904003678477485962750586472756726138764301911514227860608027342402902920987897006699701601473295164031184737134099783446087530529433084672079675109220942536126910541135451400185143281539721961121856560338827488796887492495487540022241624909365228678427634893347268014591446132315347899050726376045675712897907134441235487796268016985010300999610635631001986481708437411697167428245769258152622923050015030302470282491903072372342428749214721273159809493692375370648076466049939266371682129961650266174308672491437638463480458192739785443705314616735960829322811046126277488294722250974949824435852391798306090051179892123592963267400990722185892025424651220846605922849697216464634928591922732744929712407062184613264697540879704798291873400070768075963755541060284473153000038980992055250996967614995226701301204539960894364679528529154787700806346730597883780939065979774058775210612794486576880627303526049187790797163467169197398024928479667945190380576061856388179563470226597155626849276464196532026572079297401640011409779448775712280163985140870581735599744844184263031055421798836153296957412631063731503521300369085492842245260407306924020194997450563272802217357507698947705016273346627804853379645280406847936137240267950658497472275755654092039162200212997289598694071221138028266370761405599404670655439611611525451274611356771292109947020626998596846220716265277067620705499073228649620276715402940654530217956252060269797359306538231143379869645124397466785561472732078518087247279552591390222242238407332400343098071488389778300264470220428085774847641335021957807332449203322313728277312098557169542899692720507452914281068582337573347900828589219957237807932365419369300484229942661802464703065958180929492008294370572344754909406750086415012826475727384965928579123472821350023967990410606812392899445645583302308555380743290914053832136529438655059343924324284939541779739237072405405936555265187406071820028203073838452481903871565050859984990142759688221358147542265984786081872469916742781168889329780564779431949786744031089140555879302110687048407156389501006187563492560340635583657603109117623958426516060736406789944201552583163343196197768574035317359801048207720298894996268488074222131388556794279286982406542263939733601642131579665581777348952811345618648784056131657948098911106950885502665905030827120730189357374355417115263993383438370188284276345443347878879273122381031049887199241266081552454006902125893630729486250895530296674356664405514516511756529984399131040467956450520544647128084292652128747559334527610280028333194209464783406444578705774266519414889054559056692330542022786011855035262802303622373006993522258266971092049147488361740539629472629615066049924197401190212849269682038885266005181753160904694534643664375869071862825737477516751281591636707245699066273496916770563907273375097052691565288333901010160912176547757868609553141064890029964332034438406180697504706106311803799637017384175909422079171533914061830316726628465123219684156392668038646559550582537849093283263671669451666068472545886084886023997002894475059585436076382547948826155814426512043838865650861731085820496920715630478443272270883089630620695609211639066009526255823259921138914021440980101929306236183090582484697148029372515494839902517356932054083080353015260268568798600300147605420644261352004518542794789985379449137195840597227509477617893851211179273050199973596646067050384315733473473178045886408781467896488149531590285248723863588529553608990655080160895908695389486064438966666614636002411823513373278175218091284747884511038059091116864621474414884656819994475450427365980332975536930662147459851336900211732842848328953480191785559896275768391961202975103319425139695686898966272931641229937187808784287011229365104004712469856829300236232448742457649284317110088807890018734277205009171579486322817247244938834897414052990642329500984747028479855735669426898831655823289238229330200988773542167551125831304778895840356825790620879415646677541351883162211585617061944894494799835421650143786268154264758155559819307054172121457773805756783386373608219119244215573736085173419194467927108301137766115452284683752213309107618581599525891059994336298216835219879835273953921295807719465761022399942973405102697387927931668699238461707852780133736865899016886419143141023295574439444348201588982970986518924545892604889917057683274159655878616613708647617122399685420326760487224306027220737417096519114724399839187196045189883961390356629794833574946420504632632656948722371467471957889339049842648438020382864951126947630100344117655752719840448507593486974630336932710129076741474827814115166198088825027642819932580841405901787868098477670488367834104787535398865049410417596599113301627783715514503562806844478445103945648413865661036657435429465634291185948951690144927823549064616856016614670544623967213866317258181161292028629747750106558103183611099309722672213038526323921977875233565763200330301148814261066176322399372807001768316909167385367713232577882918211015994330616935107655502363753267862269685969261303398766529775805335124010363210591680745590368844741336176720685358439422841504928209710545842023495186833672760048401740410199870692486351817084097866375641273349342494618527937701330799481989307394769928188926223336992219808448341082968215319860342456123892373541967348423279821080624217080774775147570768679663187599935672099617662908207485750050937234333283804210809509654308931885140784264764993490702651810300142114092321282013487202347337796811823205345557806564612756268066146509931168594363371416016528846193000529296935882543750834293036740902823324148247103746882283440497700120085073114958829865728804737279791240026529904663302672644464866632104139301462188712839996500171770557692290567657333377831403471195625459556254190110033850561147407258982705673088956118274752993419659773876794251515288598147748828491145302976873687133080930788858021239336237676601961579201173342502416251870731576902414474295907565420451056688107696041378461056375318220563799061791776013622460958813406834537639408978137011420824786042213587976487482372320366766795677016666302180643519408711456129193491126202004665163383047024530872799835779369534132913144287839140947575799364915772612655909531609493601618306110036550518454727042275438774207345126877735844300304209301871919441684610625790808505399701531454865384229945394454952720193555360296392405718655127599224296228191952122151648346953948628202048753080820952354600669872238230523517698725431229771158741986665437815417888327900748285799688367013785061037889852551350750517160361854308731640680482417455661225203359262728810363766954081082083067823091378033650430074463280526621199201307241275057285284092566548270121361554061873524535886759657692717573218408666692478549573837062263353114361963955482925411126561662734452335504978641383092321143940063678480442871440474512406917673745192657266408004193377032670517997552137329037995302631350372324213715455646062559991088724211269369234084976296585690455669308224058318733222174975434538746648818090624966184973891203543458027641681738967070340760344968192575380176212816448243511232649839151546413742008062716912997214309114248666456393224423645970627725073333291250941177528116419736987633184077350662469396470362488174145017325481144190885511127468966288786865068763025956207451773071756779368051156631566858389033363622144882075870203769081015335928083865240841732323689115348885986646741210046370973846284003529427885184580507120289543055885179869544866475191158688212191624833284226135031745348075295979705499371880990845409037802421150523988177981696960415773348439351593535045734878185857211591752516663546557013460417391360412755984907208940460520889320761233606985193359489338437293754633011697988798660768470138653510489062817439851921176676955393391320072920451720851636155330426969969809425142933637317920001903330339227599786611558830275927439011528228412159682457648223023917153402261660115215200244365899693749834008050410838934902299184086160090086339075495838910452720224308508673282635151124818265632507525810562153620475142765649690787732978062104695971034712637718747425647889885620943096103278100623852193608796230352695968749584930346423295238093871673012837653843437043694908097381076364856116811645084501518386372795513878164558385457230875656273234914614858986687509389862075722811196802738209437140324260499603770238770419034379471588403447344470304506683292283962155259003483559774573886278515403118937200182561059111754657904431676934101205280957148054602308839702084089858143771654867695784822533060712646372531138263251173610330632903595570974821563495705258365825693033744340039621879294868971724709406275502237051793653898813770986641673685967621139715368229166995554767020998492530729224997756839819588650623970891061535946725153736535331542649941150882540300040421105982459138526154749747060425056495134086557676562476127799243911158108042874932813336297223652002137483514118535426184350382158575647641371561992153161535298527813684531268035295744800746967593180473702921826821695754545592231897693705683598111145355289984885247550380797490204452425146991672189784536687906552145323470912548850921476903241098645878985539489269216206499023821843076092381729422447985989944396626890375414508816045868031121727811743847245134003442145720247421778924898285863796023479088653539306735141859236656021659771515037396193078576937869357674016736600338370590913466549738535394233371069297525362706654137764323326198856349823810122982565631811642438189262253033079872157085706171616008885782666129036001677906019075056288447580704997406139551449592230555248229836281164237607139724897430046699478262858961410238501654046551443176647925530989974992169551562933701140199001976042400464033416657644589923005756127295646892930048476882168337447963176717243469775738141106326218493826771969159622882305685349094226431716189254548556599093374308224045233972939893035502005762219951620063419608721629668251558043844992448399310417276550933355648143209042545681867201490816406119312085584127046632947054621907967497363167543229490356147648566003424392599227702034088117562258125124598994004009245718776499272397454711811728228443553039369207703868360013834737516968658589180515993307881408717511538920543265277694249686814969995887596780405033880194926953149212794716806950193243133040295584482545684163753031626583592145216122604518387834521501692536169814370825378649985983496753989323831286377315687049169897009115026102414453657464531603490509382142303007872728653282768816243412856204279956542994286790550920939805199896752376710119956542140727482707367539685589381997918256685970713120876468794626259388771566730827399851853424399251274499634573011167361543332871341595982443114213452496195336645414993408459173926826775675719122689196499409568391720368776246721036597217806025376777690577550740422693733606822540751775222720788354953661381101541703141539424002764621634856099194442923909185202536489041318870483589798907236168707629108877601170260035866696373683865621775323140298415833669527501476917088225362032805691993084222178212749781758790417019810790503924196701807961794687017500793675853335272614090216905808581219461372977173114558284398812097759868654465662393681628957352257771600042252831315208256715457138898804367585572583692428184138629769504940786492896505287283872092168268361938245620493737310585431115991980090947468787844775672588625142492463094490754778090270733257008866773061764424089012860547286536077993944372170057262967969217067334335283135691033140862395028886853269716241391340846079545442407098242520444715401077199210244862823381406617019850439632776792506823570594510940605064050491057489757753814331117478329803051824569139815219752675923272732479243334547257687981395901450712739741799278881189708917025564953683077056753485985365252980202935339466283238495690994416791328667781467237444577734460673262161416553044882797657848963276363363254876787682325766146811765488297373473862290734138333522274603215793331671053018743475972070488052508578426660112552184951087949821632816502747495395991046470577430882868694796674631592162615359741237105842008606098040301881308724120308963336010081595391581192504790936728066855320884935137204916883137485662168510731014081212469984739772631886249153565316266418363846981780886081364773183908319722634120930595066849624264905920633093843134606440572262817338506084167945120720678181281438266668024391794647628772997285340668739193454364926071585432850953370039335362730464157929824463461047169674693421418763859400912298610653860550439897747818244889398021554620844805385360359311504508184625527797168215491337626825007843989490930487840705373510287797981835941138220710735714181892304738507492585097799569032780226062736217630590681620065474231326431940857408729630929371291071315236368727255006954942449871005869693838305795420533196785001667084450757916000715329545322710058395013228359205327591865146844938739958087977651623708172553778592127997894551683956519882128338811151379454473338911738619303662058063943121887728789264997057949373221779260660528807092054701170796214699902342861427264054364833587265061179435797197136093807766080565562484477626287271232212854593364776694450232582749118008592676414368038468427393339388017284353018584510958043686834002556410308415887090271567885559049377003569368480818931847997898605936010181908413028684566915616564490679094970701081232419466377374367819616358471282697669789457351511409682040723256777020652264088345865104849601362665883863247023533871238082981236133851551466114846685175196881193860376777299105171448321834244783705215045384623774893829870093062605307435110937027625681664196472141721273175015253949449823146732912286187692103724412405145302662008695365805906586804579078057067279891535885082203408126513622566342497772373041586493000950400650824664907364053002844029995272790937004897015753624446912410648211531551490528081584964045723186608920289228616189936144977740468130706550042275646066093152935034084626408631768016015887831617199019034312420338847241934716366179321962011945340316995104755352787482212121701179972370236941685736365537780393960598012168796828873046186622120198070293782231433980988852211434959815572922228144556162898279666475597073584368732025814093083002109688887701949454102745119638524966628683661661812329075681370025317764859561300838901331452351444434446934704246515323778289062718545938588350650908724967120823250421780050391574844404769197976327101547074759503340441284246897399714503021223937821275657252519561275127570345449632746835739567042816794896254746503064090875345502771601488763685988337855419094890254867717673068456530073768632605848632405113916608855527826995401994567614537565580114350648960250571872979115538638487903143229033373547778017717487798182579184749613727610918493565147467734223142504779113045936036282459257925645326527702624985091633504342056392702858302919858400365995466913236118446859614489020306747901247446888308587558009516254736181896080411366747564289299745019136596642214594325414288996060694741783070848860810235678941285563275225847227614744082481360560506869944827694239977279618592131052458228629952054134443295785452591546648174381094621700460017191572175849080220334079545873442095842105548660614957397573142049320481685328609269320607178468688113275969090027115416023291045537730103474251993720295985969184797981199229629308018119548280111010734536732455570720200334358548077474633532502326180718137546672090588679633003096276734495254357391820574430134006389547438845135871479356694238998266663833791507731911903888761494834006253776184611069366188111427541656034798880935999692939217429812794802793855344850848117560812887452996541164707074989325312140174390590982537971583635900815491100909990076134695082117083276307328795080444588102745261291117391337546917234363898215707017271823254024926926455414036974680367764826512650973925271528022828023622357622405574624545910971432127047391039672264101168643014372101842921182072696784894913553322401503267238477914182424005207323153273441901071036556463022391540356598450746343178533403621055178111883793557381070678417925310571646283410157540981057143453179832250913485193172388436035763520273226350603690926865573081534625475253190238634270498799899758075966037941667616234490466810859998366317954847523421523982664097500293534219072508906213549046236579148028710018977523007143645293264047491516854514700201458482707492638791654051249860108702268056162341578575919382180105652785228617670846602344071157110042606697167813472187864483199448547348008692538946159740790482292214730374233436052842198652294254697838521715458182482625228434191505385653339471510748995684654708316449513468255495560316593788877452993841575934173666383709696835360435637795025869783922579815841073044633364137961687291731759225754950793493575306513382218082805425371216316535447637934722807751209554444637133775708293245236562043790532020917414570566246193679485336909381541278684402109968379725425419793678726233278281013478328578260678334406734122258852889192943394760225030842701135276177026100784474403716337242482398762051423998286837788387304757087268361325776642699852154024668790798536311047321216153247736262302085207180691698417616567595692503776011034440282538964928808823277748913272326137163075161438156427207092994402432788073473477847574937856693101524168360386760527615797394375188265095314760327813852374687987247418826667571140955562640057138598607769152760014885644657971960070909804290207700585930686058706744172576077959329738812627839591105824578215673694598818330827739453995483884607034399838067843378099483230364529432861496033718422733404229320654085778905633585471256219144886570521198914317641560560972411961251329233725610034118767908828839951179076095208436508398361897927302648882317098163509236176741733144392857653219192241330606983247322181297012647961389886281412412398080146769187460794513101329929724730122921538226725495611055387304244081842759274007745125877731396055938476093879068994119403811920609961008944063404365865579039492180289417622621831082619502004649404440687778814983928322122500327907343227620607733201045521413710360371512791861531040676516796697869082487820016971192477960855458341782876238091294276110731085034259397805936114547867751426009626999656419967268156072093469088446590003295412084470224677110850326458943717279497793193491808925592375622272663716902260758789076863028003213419599908624346198332486660083011341454462079496293250292700216634152375709499720772337058662098996098042817978471564273460305286703566661788922996656084521318919493187441629913871429383527338381635315074048416729943809873603011892111023600623355606636068634467014191447683793617846216538155536153335985995997248326482525783428341951675438107213020570775287086658192582117090244000338682643589812185803713781487197271006622920073477495433008217674430215546684550814623729649231770671837361290066071711482570766645949301544408482569666252469481853087807161993540378875020813184408694659933046542707043576666054982709862078676320528756352094537705006039999527998169550601992209281514342660685721385784494129669285069467408283484903026741334886588048360645782545518868906632836865687148637035388748714698454613450961166857254311624593053614989148750189227408714353282369395665627831055116814355765181301434112816858704411351076073019603832115840632172715263172994734363587420702298536554806067771965243815145593919932184121934909873964981928954263939219907153814679580297781892149882802833271215967804083340327738073035225344135176966582013776794357882865620382363532797972994081439864929416870527258637365830288593605945946444359840875877319241760151056770693864827839031506758013889079754801758233582871385250412120907193386700257524448962456373663970101642501265915025157970891095044328379076237789708273122579788023594825441560063618803720300233056279803293455270558001969963223125028928493179370321323992180965505208600937880436791665507960236546851734264586053850220620483667988210013907981003684634101887848771330583767816853662835388049260082229456942337257135020468193014441971450580901157322724455944043037856748667934343292202040802239456105217313151633490183891683683174106290332109164471032658172439256292950490908109659217521571857436844716612917333080901219286742918892943468853875463080664972440128715190073156789372893965017675220034756752712228231472588032862052708864398414365273548111102971584988090255961658352711427302439073577149699786943161162138892714480617649888227068561882727379001393610108732071315651519348765693840811938394091130453919797549876624616811603337950407527300845389740739445843194711731331623065153765737654707769455663887436418935526532297005795570317283757049008210582331519776056431494913037798697309261283011010185938931190577515102139515712364124126921921628190868424708011527399560898293746748453685386521190707065527530986198548991050650977195264623480550578308312613531127581062176614777052617145260094075960806437867137477447123923438537666658921575479190376627856211002133580547405822015086461968391832876485067406745181371799493490092762384697403269725359212853995675748835940476180726602737939512536408473612561430413772081786086019242313735126066029460881083516002444132719529117401508637264119347704294419599398684064118501880196453478031106559031724505815126437877803496150615288153544407242464354842660664428524062509308410305752394995992362269117728580258676603900178487972043742315735684967509013409896795062076263458019146025287654817685635751494179954817948559657858064331197504831498063630171884219040836218181917634139365006057018051349108473821728670311954523036886541659407053466269845278589656380435368857935734379929799847789038672625045148584554195306876948098283789546106613885156440388007283916279498332942649458942275689342913593672992762708418519337851868105089804151401500077528061787001363511722633863552781392039828275811081586825373655225355207231292270089356261038432754810000715882119555479457674374484067243194331475076108567420742047766699959337422382813831514588808662641021227110796902034897092217987657206683629947092850089248853562368093223043889758018194232249226217703061887671982102409463225837200970439670109710906168345411825851862669412234886522889687333900186444653692363709023484012907042323698705187966855798577635660058447286325821995346714760446080329494954059033178143139254229843891992157400057098178351106428763875386950142226595618968090780424427295046036937561421653846575531788941452464529313547092845351652899886129499820100447039429228413021193549470626918630621437231538650291756375620315034204865638302487470461615155190345405273746981282095282856098459934378956593165756593488218453578113152579264384212955791045669153905335315535638637568442297549536695508065331379790822458256645006046009085611480540281716921044469749016973270845184715931866021733206149816480798317950430620535397951166635148246676036549103120322834661133069060926025238683258954586397000760353112619214621449083324429139678488094741352453799668443023290636376866400238392524039582400366679987470479692240163067576366673217810869700141695918248824504183927025798743228166958024701367293923051277722901350084682609684553826236772766602021978536930135709907322032679008891827562774200761153433979914933698479066891186960890287137272537058242832450952734611003336086765276582135986385656402882202937338944829962297924207372775536422615913380101162872792861690990208689018301635890890991711861269736690405277339315749441904098096615661255515780679329554537066472392050304410014929659590618780700057729078227548713976335774556730291983329083604804509859925386815401943512959374512853623059890217360839612162096337373470790129868630503741623937900862152852865332580116819157131681011807121452813155409025829018171982288404620968415663396398567291488683711075485447456520388376655282270326087484510744375576769561180724776880091300957461800295600803660893052509516781002225110026852843574954164605108863777133211318674289955922772471845579672558236148950495641506768379870934296064998899282394956043950039356348179769204184458271167756629227931488557914237031868820143093623694723635302506439501433545962662870460506200255204973426993117113531767536327033098033419784020794832146696946581647628100753336921891993743149812399819329302450779859184563551652898985706631352534071857117671409180154884705781197577200723022460241812545601883930649571931796475963737770501050324613853794960975125682210324685663996532626940576818376443590373530045236582775682526954855435785110949906677509621187394528635044269925114154776509066509361364771324638601479338538026973784025437281161130657786491048128652899217163562158592732059484222027863943371213936524937397512111454597177896192841998911861360122013413851815328097752686622568528177684191682809218644860719176394965723625839991097948342295912383826069492167278902335494177621639751708879302879986037219140610226838938749433102648789636403224326847165446831641962186513508003449927759807660234710426966152912350181768572588380533860930088948591779830241705278712588502917568269488679154073557024215068400052807146008702098363021608835263064376360438477885858981321860071073744581499828433752853552211932311401656133398951313616880271737961276879601151265524533142538368586668932048213064974055080255543954946687000608824597770629197982140705747249496654695431975283508625375817284738843885219003879118338289318513638386155398574308913244937108099240805582377054944362776640638385215293617484060833853826983873059470139167747238836583284623939287245415051454206323214761834673929510873800155533048043257040079029023146523270970460851813666724618151386296175443787746638020396380347473232161926210511895381777083716991307183665075223477464856752315868476837533021748358526101402775441082676099510537390180087664939301060778292399244421549638237999453032033098090003620808764935875365172729451740866076723184443221202487412328796458132117175960752200690237837334399403591026737012886934241193327899456474767193584058867127992408085210683566455410021987745854373983049768012332884773175195956402439739517360096096286812584120149474958277660619197670508306538264047656688627840867031313393493355963723444206376336901308921651708024915966641060601065518461007309311550664768761340595799401900823654118102350577521705394831732762665635103966986272960562367103172996280692331520759225746841391333841713713725966566967882703311439191639001171790305654686053236018943096260377975273637657345439830213959088459231882393849411755832057533739197740914557102202135761004018108565352748347061266948354338894560164530670538743590114950814825435879423974635463939051160314242905478845135375089334771078776693132125466433185297886491061364912538684861456566794961312447982385888483322599914193840796569761161757238162414804049756687787159971449117745511282888919803680596603385210222032702930888077767026507845782025501852714182403307933738606547579834642547816244584719889437342801564571515725063061804612894340109897137565828805495603773632122979230980170079900291136493680622738790678369739986089685761764902882224890722766610686832049626393063180083996910311123334707880923204616794767730507460978005218887719428303291275902356852248868416673454544448857065416454599680135548356709884866410654393782781378519146527865812273959186959295329818811153397991995906452249171625275201780537982573171771942191540887741914656832325380819366417167719641624387089578744150388502279018727621210745262313876245504661170787618119385437366058712851274531328581083186012792775991034961553759540392748448742941821110610537493108473912446162990037403054349006638365493554047823695823046942224515006613992012044204030328533346469099833552812923220887665688433458335970852807396559906899978972340224955072032105141876229113918663160698219186802467493988649559739453534415357301500682194059350045603389552745293722764761512419097588358849840692151689210852052456998461368473604770360548266558490248586284878797554864066258567298060072329530494817847970587855170930085438078301606993484096082009129929282673981153222637756958489521406049530832994677925714969846614007055960338756565222075483102096159487061636375258431016258430515229722322632469809271530117842968124599506685088064251971201086567037302315206790617591862341032330913397772066991546705537766293277045350024068296506602936981587781131627606448131400896042164215046920864814123551904484102300873929369538870141842351533886329582596090723485124499456722566153799513811153682905718940117848656311478082682722741654703826180399983146773857662608114894024444933849722609101893800847372330210717431560976566967963142118814720088984812209193842075376737368041168204622126733715278879502020617014360882038517054179354662537171250405797219941037827806749496081761032525148932595343939375806047326977339558987017974338700659251109204964050163149967322206745454538230599441081237563499111940543383789644372435685710148106473781633774518568290712208912940787412130610930280443188949185387102218467354873421548133855373850107682943984122990219331861126588016322337426949722221337067134156540875274992077203125463588956209896984020857872958683932646638307137346733223340339575542193694573095467117077489853021897107413190213299674625731231017094476789719618195006019029487737270384800969332953858524823731353010892778286568053857561776100452756663947121416680517904486252018983287832732146141149210580144219528298662705484155683187065396464236247701994272303519879281198083165393685428771098231007716162937153117248602451748053866243338504013752259492043808564452849235803017931570808276312606566633609992255251360586136476911602509715620200927292592671020733708615233131502339551528809377058174888449231633478623799276754336500135391672023342016447658105139556833333425529975374202410413421577845804207526664402131368686868029311366725346082981676999489384750279226516344026349180014707675654388616120408226702312396576006899857163315912726470610103793387104657833523056009741500305356666402340461267623542697824284036417569023051125296300808352854725146939899340404639377181642670163443079988096544903590914047652878592613919868307915503700429573622634740246251113161902713173909600688162929347959398696599435281836153613607668597250804487691766464725045407222003900591855797496492349805318916019792018535263126171080545984163872307406864281801344029368797826532037751510360289943264835721407803408865326387558318051414584927692092360698790924472360495797353832242091977493653044494493708330071884082617968901211119566444516080480628608551673163065221639171981668577271704329476761701619901580297527723607501242928965265522510841985723380678310795101763029987890067869691834654387520322805900739588747264984972126483665756258134526002653266566720637261576974029099096727819950268026921019581689636415287026200172828336834821029281704256960434984063916652923240670338234213256180114670525914644210293562777590477640952830101063792343064609583660141924285602979791542744610357635268629576572069506351354006489625891128420169819919988794009659720690915158217927611623982965756853192842648141716590312488883438705058931499687852226501885778635948306350505346886726201869351673465155644553787243716626449826144143585560210103393318841513494496353237908473180692273118198980082502097565564665160968462753510352296098424025251375929664673276238602130603839031034808092407925960869573282517850002720718797188668859925650516964273794473497322951785727455769274597372747255594164919873004403907850250723194747115838025693664467140973430242166426667353480451085138568467303228947824258468538382176269906571045717423526508945073003092705462504413027859365007314155605297699365641489781954984175300936034865995297905335043932537974499246438226168902838382237129513198393760262044026538902437800893829828690118181398034159174717463872138411127485907945526636749660979833306361593399732772635668876730039378649439613289414772721983182916610729322077932659679874299773111271316076832535544218248376653048817726939796286108899785764229937446704541231880965920892726471669871850321475968919212302918296349715384496766666800881417001368249521688028622524055858498246706901140601977969654270112533469321095112288684079165479905931783601201705068173778279509176003055477540246533933672704955282182432204536563212794679446531019517812895704547256821039228607534223768730662314064433020517049125834278561362775350743034053147494862290222538899904163893827578232485551098678503773714021677603724115329526764563214635014324241637708401716481098118188008808534382062678674952338638135580124508329648379793966828422291954099155990532060947977745068141400450481640944995790588349049912608137227323429779899562676455997137929019888050980452703977160418855895812640708616816970670861264124765225500815028744653699737808900860828768418384457849670519868074509309416493404474137404010934865687727694661581302520870211672267526509830624598672131816290913233609081990132543860761553396099002634379159157404025784300028289197415981779158020692742528750352454428904840593613236036043919475078257656357381525266938774130784754083211149167475400009346949445283637926414482393020518539931237251718077401805747161450910577994054578019669538890019332090269454428052343776850973519010328701135140466508484915759283883952949616206895924369408664575567657418177212148700597353954372935177984154231642815401369714933684496706703237996546125503335978749588109553712448677743189762738084372525066667946324315442121851912635671908776123969767235714665945043087421574718618165942702590508931089519619466389644430314077992720148911247393663693350282870572186756616410855656000371846500383607547054513043169880093438541536153138228768722568419037554520952710567439696634130955412853225115406831089417113432786287300843518684844314404435045386904062279456683136005928952632144815216132136550191760176970050922289684155818760990595351668268764673299604985441858615099155882488648605875240546249737037566185658178805970758079454250481259298524166674674556802592748792282120272686665767064834100713193533156261815857010982395357193926308729391582907760429632273645764446306378417690933097698833364621488520378584852887859230872664154598766597661693746792009495490446498021152116147324494421152232721877980300669292994822737017453511004062920025187201001007423251275505772228407970953448143089483368523964855180111868675198979359988079009816232168605291760622466429487539633696051435436821534987744790232186370934022993718394093415424907689622398007940982015457395535101585930268693723983106823528253005838407386113346809642210831029722897981755626589359482840066671535061131480574583345942389641726807512778574478582140019234302865388855509845771672945373912781849764003924611895811043083525552561034264989299303234619005302901771295779884817515788180376436315164628166043991626539427815620724814891019586603159255983313949829362461500269537231786935982235808338579728538182787009161716710206078107247057654892436618157958429363008537349294639029843781570725034212778194225783401573724703408519978923167527094383332435093405699020247391133072954893317619048658632116305100703326081888601350634139583334945022427622304998530130651094744286900384487558924317981017454453942250299635011172944929194663609128739795114573520518416689107349378795536011575026169828095758013203880730209293863456598550511805759799544830032299343478779924706431818335347404110493988211912893986282117232743859811768938686221490156761277694268095607650379387767622477490337140010545798848794505947432704759422284594263490276551719028435305625446281276106322157457066420742207755105594224650209339653274910642940541504002809493963620774171370941103722424153134329487193915024326140430414757677985928482972554685601358916827884818076169893209458965324811835216606302312273754052524421496318494974721134962781714294737273735768411155734796557534208566324379313682324573859651790505298693180909274251174569381003477989792255460061570133461792367111254694492648031248570156649509534610483244375985860765299151961723340123289474573615567320963715408613834766281512093971253872989423946514757494840456645799879218803986118168169506538393561876924609970762630678930649312097275902390396761774300847961597390981750596351378096730473099962993882437468132061424570928285985972783268583328375868964216963189253150833237942870724655454369638903735045521518892371914540635420789347395487533405447382681633975877039419987663488994575332465897686418022615838213417076361482863104050367658880903040443886586977917067013324608010053584841772215374403277944918223563136884991622344246237300760811685337837266928813887042807457480879235660311930144180732745824707415966094224398238071083802484746137898707555380696903737376424317361669527963208234882939299524717193462588010041638620439759815406716277340760799263476952830631505416307009012516545962070539078649814033722985367987910105805199715664334685339580071067830794019270054172178425721338150303318279879643493813957537760954878491155924494903033919952998014451650951304388657534535194150647624798194576176774978848469327990211340364335771637198907048255055776010211586568029141380938772458508128847114285161110293184946235704922482336237688568285770042001590214471633350121591434793574532473760763320744172104622009476358807347789497751709065528190038321816454284086667784888952426307347713629528945221888840391308373588895611001946874005770146347594431322727019382273199753667881766824733181914245865730671807550300934308683638767050799289612310396217921437951288101336876374185163886651501877261786943680236056196285334846957149739482507379470492313838680703336044972172292083889223078865268448675684271413716706506366570322067668763706124335582989432340972714355909292536568740748863679377419972793991942761005022095874290764610990551019414535091176604926212666025507708178744253236468646932553231826490129037882005292620543231402685094878824586348308459492950925054664460041610265200589291542849237101218944294489652777361725031083350411014734860464091234368459657237226396364538424325550074555255834532631567462984593784251674426186481870437126704877300592686933737304473506282885103953786458728469927803943821055284501661366401360805300374873097678372198117401070797955428101403327199819984793895821212416264647256375053133421725989012991308358450870420926012691535572663243353630360883226851655776297664297175545886147819815104602737360115938285693510360057731685900709049670610914577725926066358860047664074599729087943949907476330244508003637723302957767244079029677336477270311219710824071852781012578569078054950539102329453507113443067944238129517949623527723700745965330422825608225081481330342141025612493002522312326935133894686098245503438536141168494788278093948109248110566466459283718754651278868302789146958967334771436942494432822182044301163307823421755198814035552272975061240235612791987890104404998923562967288069047913102800769658127207613247382473974975965429280506188859088085847605443004920988788293685796185531565595055190297646750177105916596580509944017751307947358255068020359207445041086817317687670666347261844188674909584890297014070248311462151114900423985456177815379382674974860870076243371222117241025463719233303163691344005592675544660810478916794187131171953155319315655217706483637648499925596533612188302058860226928111250039588616589907209503563813660138298109466350029705895387464367739709505566459317277589210392051792921789674779615169582398870474738032215071276793329507491146107903468047648930269034863909939810025214835024264297864285927701987342803220503781682575095947253550174791090511889423512496543807234724360822254582267728950550523809749135868463843416676312035031935272834232265927482130307958374988169456132649145714314782337756707836196031223283969854898262021981392607819096677292910561207106781909880664881290515939137762844886009786900199471999927962617584912588366129984371250412995055651811466656372857735252679672324890838134230401109473488336620108761816481963050172878382988247684178772057871019301467983028236447101685535305907141453820551671209332204770015508165500355493169877032966499611119036446220715615654104428241234492716596368169494513968845663043598099089476401203816890729297639994383811165555892495723186869669331648388741472178272657309546109233783737097194264404563073540920766477037783962270945309786650883349984102656163904133949164517788504900732078176762876458806774694490976077315143905129940136741014005037047707781096455812935532845752305182032725528443388838056254004531029749724884805941315359355013755225804434502003408263763841507909627982266496042206296053399621737941094095119185553263943171195142431569418432971511078450058594018436215657458407844241497770278562407080531439483232334785776899360406990382665860452245328404138952194166133585759291818770976643166548551709049274897711364779122419838622122151719315782729143226633722741292536020527583769274627030696896937813005884351616497398054867690228328540862348883976801524247533714754183994549832935352708918757647938589392185841154548108118933147646279957801708558487756239597870797613459386077277149264930070187633107541198913225919748378786086781419080658905588512589574579875417895052669218908266026163125268470865348848672863233346862048673796294149758456250405797954143013101117906140380556625033245678119804268592333970522881865686047040419568596621564528966708502257001224668446034391114155310488044591374086506924447868872482902161591822959988147052398545784517255298079866418149734116260048313170242564195290945051713618842187129898411870659749272468987489239829041635060661399751552983142522645811383573749969982559779866497395114874887742395668848065980427710914820513069005558754878092336208798550103530006004210813664899142701222595425287115846462494665172551117499809456671578484739621309435708912893898551317098095487128458394530099307524884494185300464874816002218032857771832809717240495109552200012815235005937798788651146947530772347633079611458355913978914198957129644247678005213597774606896297680791690267100120777386024763045177459674583387116475248711030340017715303889607944352494945012246517001696257163958329910415459004099789762735921579202238209228227409395478702951340206964901125177815352362274324337679853513137670172780549061566251925584847813105894844563730094001871084087298134169300106559444080747403877756848733847411996406449693384923532511590079057357769433314357181849364487021509765207230182613219678252237286520490782883412835323431097959622640775840093858125894168783286513917783679047060579681236430976231418970948101422047622984322092591961029349371981043022712828249803261675943342902587786292368931259878311296032634810020843131966026472114211256235406809994795223637929368048103919790043217882740469907127865124695263117128475269690785900017838709507392565930395621648631584936852705030142378888460797006571694700002175521883584940717533295788211081640041057951408046303119588638333221881255297413656054597091504170590515026114106037005093035228851598216553722628697045858103613775194194525839439166271057373315170752401780275666988548885440400543154247473190650799455814049489409680669952583612028472274035457231463375799369681917758415448621288137220389561015858994849389885559683500059258740138565800931412393235911408018758600836102174200686498983015645809386760387654010231000557824067209562614699669158624829419475567009931171333540175017456075025664958643521543725286823682058892836106842157293664737606849202149355380686239867950894074341288299481839380701075151839974043636072294299187234406841985351004647935083439353002377527235912853119195609427881108006194108948680564140420409337575307069840591717386722904062758999043934343288795144581124660807732577410551380522213809094996280000471940816521492755500735208937398598591947401657366665604946591137141014289364545511859135843654472843930612473532642990900478009352821995727563281885452884464601225818164353472186908651056835751828951218811120394653981013102830323113088542427844604127472362878558505584304602381835809840952910546137949345253635655828957615176593303345440056578859693952672468678561013997227385140810328861973215174483710389426714036078404135648516850755941326267945830723176614691501539511877231868228670037378277885227277745520053687890651217998897995469275737320664818628000326325246623094016173863894137975974360471821298780744272970539328350827175221513257793444898605912527306928526799335083192387463849173374992591080992203688700066571315223329872121381663147522666349669922665030880511489082420340664769282526810756440329051257205051786393534902351942131582125664001540501725684882555788899020869912512093054392413201600604206601540036521265019410660887023299821157765871802521857924708101643555953605369042864310291814342931032062910377536904994569983447663072274087817839034680710717896029201105382033249368132344845688490058864867617299691251418528637869236787212681650652733655007247200385235201433196893426217705417379291422381542293756407583081893794574672068366969483836752217929011491957358909039813746493139427315939251454856351826110064093525465937180556218556798651566167118601251373693973016018343814589677210673493271604407183821481706643576547413116928214484428922467039770750516947298605450427056375741033362336715787451457304744078306248369617039302903670399045610597472516389904068261197501892337465717465565851013500345318105262217755946067885630812147594706738198003088128373618973963161294504665414414685440399370680945091576167381660101352413482919693876753537566425057923283017678158286762470787150065363293085770230681473124718146265204465181464211440391116318692392107593411074861309331288256412391803875757696078885074077227456338244152736389339836132521662862295102334066718710148591939501899614314219609390518960677159289098794395435393360183796952795637393793955497090596312688888140797291012555048359212937058507376637002967788253828729518735954366377281003549852439655566514557440860007205428883558002908459957513605122933032641516333509419178656407078825307581353164132438341178821393055172235501829987231075963271635032179604962113325802902991496637905156615999150600940156330305575578391076551865466794821217501975161922606323392435674894245828569436292085410809549322739812016723268793720934149121315920732054165700090391157243555765861782529029201113124748924619427218721498354262067541404687432881890280978048344423994264541035327850130853166972497455084443554316086709158224975897898582608815893024690560162068803832915954148071721188868402640208743205697002734552064645186870059795529670366207075094126595721957051628539323258170234225020797946283351636075903349162109128272913745802514875994911451411378327407907763736106052023175085015590923534802816617819708643675052997200297432676703218215062980170159642665029140960281473627315214347147007315667511375927091739908721899491579743561090852345555238415209403834794827086571222372344767828335771947692685349305424376843634691786373784219502810774727264056084669531235544691859053790006335519735627393972810881832449500607890568413261221054404473948893214191777865070199419720021923537733032123957447570777578635536472771564877172005489825517866790772940022441585487359869240538184566041896087937616856415890516025524923507471191198979056383901461997956652593599405716412257507689805834620519126150712294113910634383844442468387710187750525342983028916161308206459386605860468149343331472714000480360793662366289050904359393036790867502415379179294374300178287761872059745444339447935097363785342504202269212836697128570397298064909704680028369252442861331061407503000071997924301294141210112888583340562165240194175879340069881154396350731337887221062903150348701897017891214269939646463423274425920448360879124978181379432573469458355764502673018250993303126171104409974315720881111172639038340207767596091850666769571283963586163414030526500978857984331753698038281232801346833105217229717360131634453749992415369280951814463916937432553279295622188424554372372857129893743754191745335575934189559497689456326538601880838263692257450864997967807356142670544538635781678717350342649110983214635166687745474182567625662867499817670210318714442433870772541278843292566001174619334400478231219216158771908327608029467367872907753481054932135014958585367371079974785722757499073616359326383513041214892270532754431050797607649553434159898941316685644207851818212006830174493562795542499202418455609484940831938900559005916177928530483749450828732237605935088288318533366505341427430810918503707544733116945158682036386663549347508140067101655648393812171573800364595208812168004599307458039049619430396134803590605265045028507169230114622291162885902383702359401489766752558952501848062948830019147349707207658650732477279953874418267825797592127397768615277685072060448881531102843283866483272219809681153055892889354822094092031497074321314443083069571579065823483194215221167206419167479299476124924719198002554412911411195431448207386330947184031541320944021613674152055568361425836302011868755358786262851740479749093283806041051218176471870341549683621969411628743098668971052697281241156916640660627937296119203102315806570891443986526044691499773656309211733021559899475862489827789525791034494674492425010708868848016743969190414983000078579028732214554438667072422073522205372630302592506819777662018931918455836485866036550475617285873475590432930424880166090109408252773925955672967995402173907137713198600162602426019098470818382322594111559772305668306628211413549617925971334910907608381573471542796150646635609534666662785276942761388030014157908120285711935316289743991715412748393823579857373126958148591137843588742255942542407991658878190185356652554863077666990148675436026871303671291981549336027275652260002912063259458208385008474584390642467719938746563243286720064146356013598801753953338117109171417623565673859641908119846266644591822014357872111944784382985422713375232232331309634364115499619128889270351916537457765998345499036837247380808991175280849235830422988716645047721902527310312969110313160541700617564767795832877894692169196605803657186145253921833137959394051832973185841450240004059486396980887883048106366366210444227254281837564408671004838306773896464448040704095368434758384441908528229996089904124801228231050445591489373158476941475608084386126254737257137955189732763723843125264560427877136505659544090714801272403523270345761460143858597595615521431800444690274414122655635954903191556520898827452241808948263543675034514451057821661962034934261322399846527260497717962328199933318971876250938009864645428357251337209439927811949397717850466618359903458469323206231272761157099404175688442675279651716536095814763971255108642207158869333893175494810372670396206234959002467081868145412453649167414860451151891840173388865696315306056862588068270024386100661364035602925283331348084049877846306617348212386939744492628166284674519665453157675981312188436381937471517951223913670462335584939310876443114808990228830390754184901447122755525363467673645390185666535097145552842420959575656291188216241759688422304523249214034741552182913045549342202770474672430450049810237128612927255296133662587180435929351231285540762209746046095448682449661108819507881693580078166995254347378153400513124639700334097087962904583265752384331363720442768184961926799146186459121570436808644126255601892620888901922257647866729709478100373159214278251244264150494025133317045474275471254107556265879450716118040819333880481658854960359230220226300880114966883768327910918528188989518454861474746063885095185222811382099421533234105344149252433028146889676102472691032675106416211345836586051308757042771366109299978152976893681032071792932576688696348766071252393839156156465236223607769509771070085651788527820639383716165638513975438234954132781919560639104110797050313607666598239400047449201850881819151663582215983472282289830507595278368410481766169545412526595426537496359932419060365242106078609979945973215855654472782240461216037715256470417749464123021959581648344945999277625443176313402255358880363064328946386207405224027878810118334217589357695508459832859743105799992623602563896648107208281135634114256925437202596873688378763917241384463194329844441697484621617695399784093012263007454912903756146578439375417986719286455071710548490383418987331080501818060873996785378536979258121871499096089002199629834846888411451709358900525466846212738223725179769145466427492557413395704289116590522348090675609157609353150452338082909192651504522629591250739157090512448095544334251770279785665018090895820162116870739296766897036116974388722403231378225810675172558307681268235031760517253145127967862630466778093304317770479999457206349882467881470267705932429459467550550572055272464062314994236504944744733992948065117033213305702997170704804780896167138715041282221575306181111186218778225468070337398743842643233787126159681848902416739671779604783806714270931680603605009306037046912518270655267733317625654048585947385438366294817717951112413268804327060732639902988327532309434381769454237299693365707792017133530231558528285489626989472975298269753166086873677899064334376506794506304505909026486495461869907307495658973949144110764472114446981105964981083340422854336893071097346647115833170998994085890842556923500576583043840404605009797016958600118290201467718718378088997999243469632847380687874359043052169015952679880333913786783265264871716988268889161601254869986398580134829840970234821889812264108046815928149899973201858786141060597949324490832967263284404859951800040157662679458175228435444482984287875971914075796002026262416759613532552149537173897884500841220910036673497261577796996569124409550054758368596696898718301721958510930596215893747608218300416895720695880023131683271522533603182904305119521499493997159346403059440420573055112678334446947197257399031444868509917356060681741491882313583387655611476581357473559504972678205841412945221403829977473376523124645288651179450232265156239885850373960280873949065896254580269540740645167214361308712778896630495614726060003905241541139051043554804574700973546093106750563586101037545700803625042039261662512341096887267386361900032248288059089747111212797596475755006070127830340934779249050627927894913757720496489411633018435505137548159969987297519468455076101398267120666902804535478751304051498550572645349414702787444554722615531343641417255860815638080572504223162989095317810751485636680531341224268511197524134371622582539401258611611209808433331437400183517305058362303067458708953505635569416067790642115622724802197262412413552683053325169178086213585662155750776458299719520816696475022007155319472006688043256020695794371967669011150384178747633648653836926630586656333266024380087504506114092903291302567099186728336904838097964721892418459086867166665236453037718282103978950753122148267864429627536729875494309940268425738695650874286314126891247470001492791621969201218901191848416154335238151660696397150009878107639357546814586833917033534389116611917644788688245906345037078461125290076084866176965404520481847818477927283854254631293134254140464055622076800670850945121482771206576712670077078306572367611437935640862275041559789339949760619041776598694898409782128780794730779616807227577181247045500031276318968899489512343048442339807067284406516550853279049235292061413787246378915849268155082258352473118671621740487986065405953057592055928745345762692226557568078128892571936145554846760442545554677403133820475219413974426924565176782399526161330844637933613070431551901593214696406155152478250976025781118601653150455383873277017760305834404352578269428299882202791285463965770400910881940715050625368877796017009548417440363603390272857609259998277025180388271956956992952848455684322931885556400102442798130761778680225460883360084927964657830807363723363214500824140873137800633374989521095781853297457248980476082407079338866033079048955375273680077698760243339075800958023127432824469347146106302519963102064091918628927734634906290906145359606533465382873910200934354728245326574380181205004072547331148924288707505917827455967434643990968588996532199125217073804057528424225754938444716306646563093747670087568906775154828542382843742017651440724522088576661994382865097534207078333534446112090493289537154210985331785198135420127349152947241451105734388289363591525453863066905589202104634947764706246366633096161178945366768631663847455286606538107944888920532802590323630832576582729303092194370098915411258014969635796231264438266717875601952815265119564574141863361998259842676975393756777850959694592395975149336181007191347395441370190017693026340917213200132415588241426298570329067001414472772825797676111993444553400161062355997228612537941024783245218524682752646075322382088834390440813014962341377278124128590042254000364595389553645101503335890426047539621804505906870394843512742672825601003365197183451510140076032249080772374521740025668948275149215774877925693964329990007059069993478412147714111905134757505664752776883438678953269966741431967986534000201450107787126895551573805900511956305188580745088604768564400433790597703798092195911995656412309683323198898186602605035105879029945843364667684029782528634132312946694338644738356057035839902396268707275692196650824320342816602067625805650304078252314589530350017299501909701159907965187688384313772241081191480410360532838346933701968051425575244475631607797178300286174949606599914738311722669353236898584115876001592192373909628399535570141396127281656212016975600873608650614745295622797850790854505688188190144388709620671335048620636440021973509472478870721398716490879654058758282599730049610903926383507624310511852904553525381942856405423574385928185495395424032108742406660316489485653863181442645887745271635711074271156801336460606644088589939032183200892834780591009842563652262402164723070139248993204650692217075361288396575199276529370194772438738597181035635551989488926651570070540408131544049744118791000833141174691382155187468069781734273071436590858096653011597374626436432675100574296553255680016167868533524592009009474946270827474025070032268572086858729690255314938954963242136703739511707768102157645643625766108451180726341199058530503022924635259165030807679639904398076692184666045505752495874583813455654579704087877407009730119632196050386539422522766049936445815958752568241836815886653051154860110709124988036456639070522164191695946330388508131754291215337239138426079063979067802880221129055830335028986281345830658749169260873213390817263981569656437967857273438631691782263845533478855825428733430974246270817236271617172970698283955937405113505021876288314506395372903127481753615072903312251086494213524020580420310409699071234128658227087888375886331836735926840096583337545786131462394504952015963169749653453253399039902807513467328944894988935573813814419223315136504047502275326256724186395719122464138374305912216034803927264130401719705086516191407543781919280311714004506639998021296933169860455677442454074656987770401321991320928563214503943058238375117873899876410526603858923570958719473716019475313962085108374195608990683280562245385862138539533530933904887948402898464648182305079743439921607773933435330586365420526601448823514103663062846836103475227662358489474200955086486049445579113204836588296021996100541491793352735653393293196982576090990739018827710472924277101868954503147227135932465575479821076911635150623970745530545553916051564212020166346656952211120894926861727149214474241883926410689589277140115782630152979305317505083276614873894486069184491391276799449872215774400827838409659560493272864817498158118950331580382615867381154761475340323823382978555967249140499432406966097911657994436799173195422064894388516632609057276047991332614270866204143640561033035041394340488114735948919226841648272684167681407513910478486459021370755374291360821848681011939105766616881467548020473385535772563377168320479912969709253860843961806361278591137725388473648663174733108264135850249772187195222167838459040952762787811070420625913888284246907246848718719490167707581164508389206562479252436367657905461167083750080351530059151371852076662901607420986106880222631246613801410097338802738003618113174617507866826161625498571568198366883789802748585296385392354833134096886552181673683096375109164642677396721482659787260532063228455491317302710836297504007753498759884032430466006763464148385777260789012190642984279368908820516328661775587619858286410521826901071744792177564765931614566969536987449280123070884182700168876981002273891844813566984422273523270252888373242406854853730706574430393116435104785775298263306167295546438766837935840407938554536086735550813622296989536458539104685067400631455835784491902698980183770024584146095209269711160753215350284801684895401878273422465498147130105945948360955681486782192268389242613061868123099409706078648937050850725738993683346642137371916251619502062460652600810533447632824643383363636777796752356912745476948333705757261940429835929016257576013746148460290509788090564717463952015377134291508507537871523549887614687652979014725046562969863889829747444840727457304002884980176381575443881140001851887046779099607233470986421311738777097601519412410853782957433133495080180206073020692166494367365537854369311048998737487082869115124598907773340576100094698655661114619261309328008608327171547365955517327037265515935556883425817179847346933410225090474641659813967924783043182103742713983598557014836375342615557696193930225181662239221865857489521596491901762171106228908877899079427115568784712762293290066143379146347070626190286697655295029887332524793974877924258371101742033583182278090038592555871368363972390637160398846054730296951128234003318621553387267565292949652206351098249105938370652893181611878010470884510650879277512389561175688321413250211338023148810059092869131061114017933109623667043636681175854670763982565692227343078331678651681188829310560300130076215677139310381615787073074101792573228154941482651308517142966205810131401377552739517583704389847942598032535553665823199078661190011860684422523486398693865288380926833435906622878266217193163916483915798796944062093666872429114765446887821979077186798027569759931463976745157493973221012735824399062670173983886183867511775526821754192844589782687947186304758001908471035200780819764913231166624622517148005165221055512719883554707823010346075015799887006504071914817107767916518906783017950824960422409665150546788355770299824323121713414446121776836110211835145983018323082785533187714635710950817014707968228790865662794932495230010110274870060946723743826805990275191331901146511685013709404900307338276350103035521237565547365476733302487732541554441415087829360040785970005612958693026020622382658793433720134631700510221185638705619084710798840320327887406735306477588544308493698068831639739668550271577592849751048325891081084465036303275835567926584504943698531985298622059808614189528631878626491729670650756498213828688479178748201870220029400825494062575549341453172190868831282562266422692287674071252916974716077155469404918891308202353572114830211010301943998278989612798320667209547211285065903777614509834412533530690637956408617549036671249059990239301758935936261067464289155069003650705599574287891601627002234305898998223941870841695893182490821244557971999217114364956856869884121551836214619006233602831615853153133913805221793199035514719352230005800519777304072751259858560605922437425430975800319768561430006782043970128878696124066851879003045802688058572849750948033863618834090428695227216828798815059622628310754312218274115466601130869257417587191639737609369042807691251985292625105301670809142754793416032667748666793261310402938378606689670481304717371339374376222577661370164220652545438287236389903145823291893077863347901619444102759610315569350654729567320995389668151609770660077834325997781831449028122105822123459057239164519237969919718045651859510428061379412889187247508630922572335165299794233440518436579626880609890265584151545597326801767252635924783196946782722302039014875311141146115155979266636036199671996625750717743779109655631660038196689032199230315957970286117678776255336703762513463394302489879272638047859878866030694852801494433849782329118101730564564243988880348525501413186924476555462468280270689655345794448804318951718114229194123584207637658940321407922495103113921936312355384690811755632282282831342788453440938500906393999135516408900238537670431755346093690751246053085517628013897557043829067319406471497430471685559871642010190548764562728894886637670269133775782462503409863514182812411418534272666037224645595925232642743870974052302252274204331665676810711645360515511938792008204466487696173542938003792314111520789949225614690088225684480651026632070305223660113894469012980179912612627043421112738506918037454189782545786873339965498085785322783153139819379204183290158669640150902076077341422900213172753060745468502859502796251585158836397405724840047534674119863266333164485625518536774346790876662029918800465141484196491906951954451039969438728623711985814138235137981848348968169469323142469657809687501866812117746252806380380937006611157215776602926480004914799413267662407573341332899249217009144435222915852332140190718128712052889005096744468264424161198416026197157987405469744241039676188084367803938984744891027474593235938864719111744592904731720524463508733895365301255484330934045346516492919970563546006441055165418402469605482019162966423102912669159831392405889670511806823906449355682220170197701220811385167354088465079002894496119269439870710121140081433162687052890668635472098723127128087547814473351035277157101298128871756436263680107983329220072015557018470021558439361199761538570191806786352270629363523730477433486557311663311408128001094881140230039817201484322855131660202849756215770471832583999034811839116883824419393772878159437341407003461285881004507859213089178410750593956621608482958236650216972612835072293041171906909276983408714321978309136373196046681745983130595832666662410261637260399217668904614313919646842782612128592004429400240629095320566127961090825871218296935775587546741866335917573049208983131415568573659523418364360397067528401701592118689532194621851679803054617351401401570252226677840839198728020157099209843771490916420861241262575548261182012591891821305145656320562879396505412791928524696870704650205747736764592009915297147402937538029108922659254328296926201564255928411860832089461420494444104945900934880926995429464872887354145951290334725974885849916737322832712565999025336619134758086876064902027563878720144866007110784687238011189575323562710873908504727226537165126037107962875603942322827237551051002574699799135808420000219574141789460676303880215943345891995747662155304201247112407207270197301278421131234754920655271146408484959482714800707511306655796033493620687828198198261992629616868296293237551093449912057196488385690915154564317280386115016993997216544878091871008965572750764526009578159369125865869447504040051498047232879181746471378411648716866544156802571247831711991543290535949386576289182507637701668595454796003599495033073942436789462963824076040445930535658685649942686348878517938774497271537757404034874233619782398945319913855578569293267530283352236527203002702489427818724897723677063861010459021561926022976318486179457871522794459700186611875425850980957436817432605711270203044946188928248692513066617104028372582390688578121875179539089997360292622393408673677626591482766654128884508868385509109429438138780594716388491642511618848609821579391439101545423807732802455670574404178604884761252561116133878035842089454665506409264851199366845202524381804204296079000576351652625632268551689057226929052641794243628741057178693486650199826049754943802946384318427987464181638417676148734635873798592543146062184499883249419875650260138578993946847005435582703433232161175066239838497350218617127922536095420299360080083412861129122535833280789766764591184697301905516867077434762152744644748058530680374376944738177284572882503425333725291369730455329678003044918971412438878884677488980693979076477131346741287050848883053659025876233037940566629477642832719493781534803485533313390008719920425710273348562676144782896403400930288170376655276392247667771194080145017154558271973936224544764016201547598159813676340250148204985490087284604188649153851602526509439116850348434386391652201860442565167601472486787215558848131737577794067580322450517030126146096174455559300970442403817473517411445920925413241442975322021704740920599118743998200469472751291039607485441701660732877388043947138512532397184280913069914895394795988577324786631326151462105278680148239648585581961858442471605613983963036156611067644607902998285303047005579073607682395512879387406896586530265379661928187698337504191701567616723734775366790959107969590410998607575217952865426484047277466334161858853409790805211925512841095261386344623526525331685921722843403629842953432230962825143238706341265352015412760221738727238992111595729694824119632455075326668886462926931626821650414080324497734694411284315866775684782664053960839645699401418858655971543809414901075427263838842319479059081491604216277408606355767563878304526172351071825645024221574508002155906479531934636043213380958920276671641668053084096310347114804440237961544712568982186904369746325676824857434598573706508437395937397071987564150118853554647471914371679489600353178724513737705721836663685883367155509812498465322246533628223017909523053278479966185266895542013965826615736905684108494759664448993877699515767682192894959128016647590979144892915421787180492260567978046561755705108874837317475914167224446473501060195749512018561510041781879248155949570874801556577955284702660835745203858626799915867798278594251748977320763036643075260339893228709244683678561408036650495056281026027604398134760379739975268439836056662053668115464250934075536865201271410134920615992413908974664928848843124533059893323592045822719054513099228351226465964276399991815796309296542054035582667283068140691037750796939281741646546209014764636420223891543449479913531724940350367687538628809801285306304138297704935358823310757861381864968147710943484634070912097884076906972793486994871355443441599222753840256558025679747715495976488675888534995790911512163093042716149207960812071723972116880391146930981182946963333947794067947071258427208814549373924591156431884375455066257158346261537735116068856788438294183175740257455205881522906718495211019788799537914250519503812263325866878953374171490979979610200892380787549198758536426908626297084764394282501340922224023894189928452459622718408809898724661459788696128257081972669449399255632463099306480989451880254189543775068601742447989389399792610396418417743681584868373176172866186798885317562293312354713563382834258026766361103598922205250109508629974660360570562790475799806643338807545986920164192043886202134455440011070454590633365748542652224092333426760604474187346584868696074854409089149166521744316497628883406372328233469240041762026814232634631374363681565143092794405447777622482443220988172565706699122415038237651816286373829620865453120553048848628458394222694364757048713987821933644950386439563873831730260136529051351242223354726063542758164403583679156592648807476127022205655670955173875227215245603558344831768340261639369564173135416487164584209680591777764383429147833898780479413290967773727793850334212704606033769448616228314045452407917938577535638845046226005829212722008802132215903373694788687029584798427949765672011635303343533826817278156681126363092874797584323820849240524511899461567068339256327950070767822287157992614453303482779582119745126024353974883400837394927546465160738976012884910344349435298993616232082682614029040762116263341087026811682266215234578943380812902683382840460263863767002678270624646251827009914981444874604620214470008870881498492409526483813992977958401810135655575841984277066486439585829288204711622196779593337738150881649242456601066377971240481061328072157508706069017108231457057411627290043512640248768610653602709886974453556973372265251883319388559331722302572418676504163459744536087272349757559250468426656221323794417894707636817107670946793950582699375659717044642803186921782763766711305410368264215395593598307388839693759824475888533035343671008650060648006209446097466204967085508633596665738949304485600827533955886980685842139286303814757686355657720605914841670707166294355841019281028648571728129215065486796642827174663134249386023071169064135607399941512657163765902709123181343812371384699725232033373578867551870072030883663037558199685528660181297334193172833577795537012495361027224813255717114645389422132631788483643350980801953577553695437738092046201143673368003143798631091848921486609012103501122333991755693005022061659092021368848280640973084786596229223379488408894989057989203591385085054694814381444179983618852597371500335220899986123264523437860428533744596051187524206936193842975244115400804603929363697128277838440814491776514658650657594536572136928748547920947627485743233957340122964604797081113109446034491654555379492908528071804276748011157745299409212492199849831920106304759121383181328781049134041723139804478736604600000541183939470318317688045290181171128521664280118671594473444049681213570722353157738792450058932603633908408377545073754690856076714335574642817756587205041886613817190797092798312854964531558085781408783481699724200473759023135192215090495059611967998277871507022127287438453651199520460165662070956798947635010069578651136338688521756597181889469343334671930564554786829892697159535452609295855233943597527715439537977459417726521703192086287317550509522305554732945672830594598779246804599626564213187277476990107855190044781755748525018811269569624759164933984225993811476035594719617865460500885067395390918682649039269938526824720115527056405725035084332291664516044574917088626996182534378665977439195835364091373042019706601620339832900742748640834400273398979547164388711294713044012857934783609470295488794037802239202599829814268837019295584659835650240157719376133586494572128819659731745666179800005208897951387868011583401565489119552743192337940152948332131004952054629698733042508831803686802551495884709103688573122729913567198767935447623653788446013900781536663496426021230067348045038070705934205928425139298602687006600420938929779621297958439114240941689469011233450115613244036291273829663894063280212975357930862576252089932358979580973671099963417525456936007038791548719789134555922448806732488787951863746942700292941918281926779334319773553290255791800784459170334910703414158565510792818852882206309389363255194417917463409610414903947194328545791278917807004681734057864704022547002510065562236820363418303568925489477049081829291891386492251257869958245830881158443884298579852297400694613319930765255534186326101468827539782314490340303017184142846541619122358944229734147828474998070889482991387896821102888616596162341150032263993074651774530987345272101356173668026236578704919645106749722420704404420980554929319782328980532103868643707415262819888243082430498765797690438586418859433678146121811923020525729018276469040489212995988909354721666471045179133310486650409863729790429045971206153698802708256788639014980897203991787475167017758562009433142903449087353390256298255078437922959200546953008427712125083980490088800557368297814932607792123865357774755804366116315088480132309468183007939352284577755187346242488084429801536154809276927252280292081673976747029456870382515345689277704766939878155331614367209637680609484562908724740026602797567226870190223236180536102038667213497673110769084395681234431999024114739725834354798160707548008023906558492553622997197476755547607032376495930990492692601202229826224536517049524626077385308673081107339210197489725842761897865857198962642613920255309670991331938133367447492669559767223031045771518652307045044313205065404520181449566027654809204791175652952211960324940822459173345848365073571458549763962300260877810778448923913407813456152169352154539521316352915397754017709328771749622345929046952753583488511451638796483353828441127854915661415539567986209746369689880489919893578453982526851789339417963689698999547651705023790134063237703164140205280055913349159985237232810504583467750355300784454892274305561797292016008170144441851092373187096409210743391579485554895569034281453886419023188574124660172701289182903266631319473194295026561168637375454108568003577191159169200830768228056367883956781460730656180452621961313785575960416476186649033587616726776564592859078504698865582055828142425090401863963708274679995982170854293176763626004337780162229168046501411518834849966386728207396922908214431196071493489581961627934078608274939748017899929695174759237541807006142970318767078785945471258785037335888948250988061578110432943759596238764544682109430426009293295513187110876949969030945100892837057617475307676490779351475295718536798660517888823604728618361218937182560145724931300358705717502638088846993496935428520451534344465653713886422803680105366366307373829697497679127451253597068296878208414770215740000584630590727753064025896256021227019466331283218673551424679504667131280486243986325744481656961486903154728827087951383651606174409727538423284940414694105079710252022563310151730254357110489980298129595243991083223309278145941843294966644167749753891075293757962123526452728744767601413643602743817004367194901348499578384843647183089511503201112281103992114134290842348909735228234824374164425380900586938800026820112984290153820880493187950623271941200364857997333752617568374871050962338682916429000241963471124464484103630460411650874728100320500107336927003134657011511687939116980630783341798177726165643789789368825413244728107719486346065851643980356505104916374675566145067451978761254267869925157355445437268851697268469853091700657707784701981236827306977684493562652597557743080273813451757415620672019936957971016002105218037276805612275096479963790473313580266324440813029077557868723779905069779273881819844486791438314248930350643516466174355667819028702901289626798109674717166079551432391495442479544504758890552333288657530612646100672541779269089420168927397548869212789429022546961923073205747017697727941661164243119469556051914446589095721879354134978461477190413207156254178376297005080648567714354884596770078202654804492048439880707340232490859164476820846367285035925629468714160774310038558531128488309609727575124440720720749744791709007151999603064799344965810480125091629692560144321466653156122213257339135060591212599761627784112005966651684159707235731226368045674188983578039385749044900870876999893017893102328485921722311030992954380814380336425884415852685918714240906239267356137260209014254429905145812940684525061404695919227345442419408744125471487996173870320680803206506600161518667994393610091651532962183302814901026847933015886148415561642972419816683594726302394363286153841706002450024072247964581790242559295032504612998002165713116359075674737600488857138450798375440409551895351428656684772436709977619031400425053823603860861647268330601675093795615742283353069683065807139394782183038905614577056299435855120610697403705418013477292739824556675354193697481841093943810388040220192111576906715872301525928558573833705318877018748363927848959970303001609712556888443238769298682778387313215219681780901958029852469867436110127330516643716382661493287678411026333503955628786367190087858483407975832407553938416615619645316626028571006154126982426242019913213074962618231273108508297836655897031122787212356478990590376363113436755315125801323431845914703564334912532125351707181799650684885305697720238163508745442400157474266151536748212785789536666739372067910042830136267878987420682778770680675464995414110056787584053290730073696741549715935949670345313655398216280058104092795389762457703848236460649083470942587357253031015350556981057442744915786476584239257735668875646069516980730392163865925584269111226657515831358635124170415657738444975133942365384562710629707322182238618328504700423772974046747288454973706198315519607066665380103211176639898816101993785693246049763166809848853492920349377799649618239467578841941367876806511005323680254152802164285388568778389055425498918252796570423673322065215607526238426866996941492202697063037277572613881227395427927428624402196911398835233685684282167129421478830613386399448028925270789910635828257554678008919090643155678709311784589907037517771998941779943646519787155234011402922844972124513008809592754037662505856901273655297635468873366953455103771453491971511163381887458956157846181265454844263269583298953563720525633934699804514803654504575949795415398145486709931183821001708489410582936754369298661444601432887387804382626651391730723014001293098495991303795154158987925905278682773653767083938235617011231157711119147151027472186166380354175742628608175648750926035412082793037890022902413223316199047018355334055843240062845510139652960663584068454332921823309346028995873085994117423448243054670747188756677499357345231049362485647521206501563531894804378493318337884772997661107231575064849798877772013506377636043221807990935459526138024489536321887402671086052621967976969663463560055615023418187160405488474047598856144600892390110313064997221109896399502000857032279567435132958964296309669338626645654340109975719825079674471923106802205597089476451126643490129838309135278290939694847369129297052115936299018762907925712279286530070342904922711925663625481321802404242576190926449659150016544350222678526480167526018741775608352557011390250147630717424519048179976282406641064906903662827115296169214032886293928250800714126360030284965772825167695510064637291026199832571541631068290913997932615072778459827651527973165483070255238810047860860490236880294888541525465117878751600514523499606114042849013397111943586456955825062280681108494199320866192726270757883120264812694471797557697044958615925206720379897046898647184636676869769114398528774365715715831618865454714001999196739154918047157004006402419433969615867783029784796215229009348313796750582220357396056929699678087394368236710278695132865189544504805792087099496526866092673637544520477327605626581263545198607489359573200615778401492532298420417333919004440716977922288166728985077250928757120576319905468856696711816671361750711062825835140750135576101970375957717615727108284560219571662734772891721992459968814161375050573687808656850188436025274290628915344791954830805380105388585946323054200018768687886388737825927885897085830143057911383583391733500082798281893767529718581912630623087342098143618694674095203994263089850867247559461616652818579710672734684277289021632919887925329346383736584491833134751605540158779600850113073778689546537536001748808553431798069081335739156849235704519548383878185062009295759070937905775966291524817319182396555460168022602684130557338814538222650950996891752123688938957977813457122317763982811465234363659689291356849064232433204692700831340249342465094893325372743293572428897339978120739248160254171282641799998573007153298872685722290642499394681615557031474874580456284637950453069002160508803446320768823426503574596880179495782325734090920112986838901207310079579444674638213929310834288529148787063566038762672226453610625925126822101643161190509987354459390046875471944154363320729523694330538490435776520490481957217858698201627817321559049216344654559144351765230667241925441085778185778717132872666952471649429528873556466695665224327937443538841972851443821174741365282014978986999688256668213348854603525609544646503051333914622317871224303398979601137102404161193187052066436257439556433967701177052538423963653889847163636214417614152979287844540797173822945817735175933194999011598484318165442893080349806543726573542629266615006365681210519770941369861333693768534847620693325420254558025031261641626481999341539940160436578443813594824618624807816899118343708965137258732311527133044652426138590979340381676873048421772695386143050124014878920389070747372307491954628700520679854407508802570901787949693391230718710606347158552959601844695727108952533528146330463122271683095628172412575118773059805894362857733669807731600037075900920584306135212446187754375599627014641852235409350817816647490387363216442587265367688150247466319224399131022081935703579330718769890107630670090034499427864005070362314389036427835227514192240661269783865349600351560852506436985964128845848160969813164722377408370034646599613538008635604790673830321470612585669194573377187754395994690904225687042268200506567100154213744974594765080033506303409296334146988076297204346130291632447133798870239549303133389815898724807867386392471056655789470015179053121135569228326848004014367319817241821705648177846427008445689437002507139603018319641869364050891114053473323601927568242801668900775416218125030148678189159001732695289416558061911146791331211787010825243475293083895731134737892975450377548816618945421366788165746019203533277121105172366696600370036032612668992323148774030966489946555886371122303853262872242394272029329496305477169000557971904792826757253544624175075553899882073264859699590806449556239448155162672674030817962246856884008376437138364678974951040128224624094168420081554301328103767487404275939031617230605422521027237417100442771316645902385374252408497086716343681706317095872702134204991976353680227967002400354803881388946762509114178328681450435081125434798881337094949580315597263101365803375996673936129963481166535135328253681508883751521339547064438507353440352265009752522936741543463101307831244410177935763576893797611983042094581899716441913900335967289574805012398995973352417318016664454081539519141267811127270475789963328237210494249640795400913459908986515247174030257534148448761189064248356968825444981377582271715322922226055414537159257489638067659960784816946730898520273479862194826639010267952227213154473495707639648765807740253933385136546503459710460812988353199293960576669001485464597735664477441176321019793987614437117639375261996232385518904898427487567173367895551512841696274178152130747181158691799002715270271633876958064392776880196010221720083514588305929098935195733504114749775890091691801497349950395680282367144736448375199096896997910419602095823418785402832904949138569792166344518812006353971773977281039657352036193886674319593285501361711106778294145033056431336799169653769138171924445546075781989911878148937724386728971436295818923679441046430375249801968490276697104309363645977271022210310043786970860952413864205634177036250645065025951231445055107003132008319853327609110491871075505036128628458493359414450309631092999624847458402224365040738395821410557436715154164924239120498790985583915118729018059068843539784418433512434047988930051772641151989694138001408599564050358735969081783447023140010665737026247381167517755847169602439774620548716775585228712771428449606968064537289670004389710089441672057779213025257492992152419875221823761172519126959176218011618943562927604804273205053197897221286126560623162855872245448838934217612545756376097469936837624201599906153993891567833873264718221885835565398206949198446287561834231327080623702402569438191680127956984878163325048904031408990410616010565494499762898165077015318213419175042120628145507352652226858426740757816453325650466111719714681249417379177440499904667267614903931256114379241994519304735093851706352985284571154683679327141548273802133056427707254036431482333285537867816861181827440121496024078772256965402750915412502268493555533383291340318606331646923049185012108648583537418315894697112394921908191466257287943788187228697796458125583923728358975046766828010898207577987979914901366357218540927120917966406866361154138991096019361121222245042627806287546053630407077087152809134416889553117657901626540012716808651844490709690137940512860894049921628495497956717142346837814407174436936957139551067180920236539068829593354868743627407654953564390879073059516126114183041833205622086732917132173616269731708907804514527117385965950493410230680923595409884131249497591025472478058004201135574699369901489366177150301675159804890217153353025946426463866554069906503821377273800395832948758473774164457593987262737429251570141988169781382822033600747619786263614857502634574632890436908401436525980871844330705791274542902525684266828614867216260857065068886184620932613868142808279533188072335108185945462359579216354464326481435856803400984958859896554743804964992884808694248683069312811685916957618340715970942592093381084403834816474455042251558332844205518124242136735666700546382169313201249385409567337574202492515307484007621487588959780534009517766076575207164949526267077734815401547240821046229689843650020349671613413173839188880622139806175810415977261850659055915271701704025433502778960499502623228404972347669183191416377413667688748996630392174492555905973599304994336405244089505946382339759146557676491234857214411951002754336813053746976842800454312885710558228634850339768079845711284546942491809338427700383994172799050835799644886120009719402212520254506803118609737154000496488235251922306599113474090974351535278847924424582048548559397761579140926275173818862557445714149006186894353598746135063301120022224324890033609780731800682037111222208586921034913143275810112185536053441603011663018128583458108098620359875144419570002179867381490081387915428612375281478442561314598981487992560716831607866926940554839065073440522355874780212603528125269440706068577833655428626292225986375416409577800042229982121989181171833376880653432658135753165859264660817317594495320708795822715507492722409874392169326241417196674398762266148118799034437039609042765494471638414960730091871854299548591240418638745663049836441397910420627528629987377945069560689295211898604114465703194817366607845852712635980096604390830632482191447234753550622836313540707529616201422128536729562143865909892638542236104141611533394168947084657326138861948786510779134909292372456405797221667604278175059814668896666099815062507997202873730683103064459143631859573805882469030718908339464052297191317887605368631241471787412104333100162826974847133791693473181216036417916161281527573882990762253929002422374872984680377890319821576313071621145854705679200283823359618110630402297246257063327388676068542787469841031539726854226069934629330865974457499089359403583751925768472483998388871581598209044437134920633799984010746229557063835322327938309770331486425634114219913710152372392392739673078358158230651826043524737274201654566165081242615265600790714145428791036901620295982501589799658506679806197034652322525364359700488404155556351023720872160052207484357057790947821552037108837558895931815837696029013598548814456955215811923057404749718276727872577467516833579784179971641168724129647753331271639205064330178346230330379480018831542938097420149569465138702512299914146250462821384207535010103146775556077750599520252110611579111855573134466715205348950036986538240068172973764426173388198395147477814564949019943938686882042736532969124451064139075093453985546399426921576949701189401832250849203194121483871614444525581041687393056297453358820850116952637709200690039119888444213930266301485070047414455502908537424566244114798973103635711618401025707604241474251261239129382520972346846980798376389525787761563269183106898296025279541661287292817839391935070768271484022048030331231051034704508144574621749638861444191216169494314109664816125064961549525038108891504616657208641983557346262909559645866803637341716359375973996031820320108847078078279004624355656234631450522137240664774002176960102861713410091718871056335171914451536672903411198674515959142296794644135497535726399184289479318927269121464466720592031779550901715118516339023550698840346665106883985965793590218899400650818324895223283749726068142664833910971713770494244396317514079026296171558510066127465263361632035816789514925412062010020922625838049653047329775408457766721221178780115956740306923178991738533243063179636105402783222212567788195022530999752419639059139411740750204959571433790626667937797151249187043541508762715165568608133676182290510355779814066046910722224563869740356169435027183462784822243856857203854667927193553256449716212783855286535798633190263613473847553718794821966497217635269545879985716750419994535687429008248391539022165458873825162282199170468516033982578258939278350852390673252369397081154998235679306299205731217786738696449865901790207836111699440200130578517569763504136310093576098862398335623454562286313094898651462160817926976663182447957566024408068077942798711984124874797731676924690950468374243787976142987027428491494724709447324843768393318552118160439986292205242852587441849649342281773547594625401067208073588652753854966007248705006809877260791247189124500854692784691796400918362779403211551647584243805456767029100602550356064592304203746568856737239902371432773554242704276140295404243826749546277770275539119636271445454042085412564315023167427166559836942551756480660750543336932979497707427706011364941778085028283767378526742492373919049030079703467888244952678681870518412118089913280180384011523169764953415050662634995943503446627373092813697167502108582802722469453499038016500072309744035691358716912115888173314469503243319371900190396496247983585057948106750708790018303454943112287614897401029765140532195778275808444039555884815699378245456587400694727760160352538182121831979757540154236457003289616923233418895653572289356285024872459305058666697188538772281437164257482805204840985404072681070424660495867343493386922480237708301774293398963374534770329890974743848397143747029010122671585081261060028622913194950071050887937340175797049385394244265625345106679444251733315985608818653773950161301522304600584823472037641845458743259042361505207230554310991311320869703593724476824206298223517457956654035298101487292138798655211217095075703576141390845234137969674640974248530042691228534990176965237802237353664572493841600665436655451960208528797436330440154376429732387463975052279712196920374941974447015851715541880675465583510508728952484346556415388668814554578068465580253886694402411792579611313245772700271609358152204309750804213252379620133499817357606644929242092612752323605687136664288236318333920508018234601676981846645813467112071487635202544999695611846734371861173654025760451558264552769096057995988920601294244727221467612419724032230294473295708840146707064192157223052740452469506963850939962773230143629195275653183144677876555243612193848657495152425906784333270576642101840131711412840964267863140920461466800382951083703997792927869055264816311629089776150204543890657399485787435196708934666014157511588420287045686312291966974776423842200861492915622329519977924940732569271870850892617634317328503739627540635033869235244081687287376208089066144191928021046378422189591437517011568154266961797760484897438826962758409767973197899746029209286575398171986763622186428528338824047079823025553662541783544555696652617090303110288028633113599925268665330748904822666364115557983934234922675687304055732509679340069079006030673647014841476644591126200282306529986062979847982928390649566187558337810401137610033766515753986451528442170274122388086359621567787239190728514116018031539419000821697156340753087534359386433488380330228380634925364343145932473479306634153737993552451151486783269205570381553895898131286480391308502239649437323229228409742418479152977204141567443720154355292990531311532459306750204083477890514547614372212557739429354872788192187211726647191747263188923152287989221604748315926933366235741529463613944578570692861915827709623077750055609273836790230248822203352964510486794528062605176320112823616211814365031180532049091940187733357633635510478099180493680181660217543097731135063687669982590127367583949340164466136268330458529405543554560291775942488162936700455077449907225849203722493588934558394148090531568347374460709639493950390971038453454367754962136312692018055542827560519922380767959670367488763315078644005868283757247513483785017506072500224082728360318821916889518692011962182210989023948624856722633014926203265241921815363554470330530980340010077213636003284419797149146822049208093557527137240511003447815471958818613224964835846302672104344963585670773258024912169035397519332293214490728727125899716990438196701226720841362111348019128111483146965132306292356254453691931858090917236802763424793333305926932857774370801286215483989659149563053798609901077096014743460915408948271090329077926237973506463584613292293091020006526449991296253045920868426978090815428455665611493437218987147200191859196863615930002703727549458951816896711416918377982233641425006066770596711815145616604071183621959189862358592852488855668904331374826984021281480145481988934749763533978066529213196927715772149405522913699887188704314509593113780501555542277106816556458486741614969217261594636304401759041853098409050079047076065295982553358828566382091847932969277276971892547294959284615191354535109883893771918012976362494668409864217513042325856902967684090291654619770167796986545145561814806070334793134557370648595121970375958815805440889677813647472639834777707758939277172926923183502000902847850822083895564672139259656971165802225697867365379721760072244703761389229918430477704185903153280890531131883353862255505611204577442086525944985836814390525086163869263344913994742444974522739946716801414188417332006036545850194941544049952624345383404722668452679323093528896284524187777699126712140809503006399075258789106377319741927710716344751501133657662274446441616557016256842503115097513002043651960222459109128539469119608796725653506134246965896166852936816825059540251322852892478019247738119545827499110850293968144202966302399312068282214203793078595613835981512789124366556418906679714992901622657537041674880777166046059219614989130203068141263655347658248880885463943027993434769676535702457247093963113742175332600028502385788531040445508779226963074352252725091496385824957764172850973036296879784110044996458553703593738829273010222501769577882066190564254367832813776735951983395941394508046876291251334268646447176669360290532400343701993970071380492188874900105844984876460218093526825517386014481174745403899782384183005700221872654962452180469177329013702952951406147152696275364192378772118709906426282182139449629273401923826713636183445626757369537797336844056630857621162690067579365955600705274308163547631093208430325064878385383653686545143555343823536000315975406432642655842811395517753214769017640008197357358753832627048782604252459646150721471523612695222929368888428468643688114333262410157187241649588174105802753644504534121220465329704013918459570067570068925039475278732609239912111551202332120857525571785723975140195922165846627748295510827157815260221304720437499023206177076429855223251141624181674136935300920282830015301565514433532394218586691248639167317711632471422216596048644679615102164235592213311206089573072655079621797404231481224490577213817893690019349013186060518292884129268233845070207975394477654706000547136102457929136422937630375999915313314218396060886752801274410965030439378857814949274911223606730024211572391890724256507179199869312809365897072596648632127426303893583700278986724371087746891451249966327419897049597799078792786451241679252822194358759512069964314646409198429037127004108307921512889229405757862313026292714224948299899280132894830103232107509020351538600310859693052398487411351356818108899528207135512071216706904352418698139751540925090991387586100102988286692782226057395299283020747872553593899852151178299999293838669411436181551464541604546232148913733644753451596925359235539151175927801721572558536086548573721281101386618077396045302652069923204520623082332838665642923189443551461927842940069404789876001626632047219137427144950438510285421048362758459359619273020662177539687944192985633588856309599177269670435004343201048316218824256424543942795967030360791982746537036601550655200496199863188925407450353573266321685966465141127171890863254825007493673167045641648549808850526262140889040298615741417391113315093666764703719961253384958689060943955989231666346151439097611482751597272498124012212956230108457688380846592670001743085876673121382885641110602678457177877435087666410999778584137800924229252231128863494532509452720331233974765438487208893932430887167024944855727767078904631346611969445295657503947875374366059850901855902010035926914486267165487098846446119230933723909850308508434779609966099482036982497355220452827947468115810056745579766494380740623418221965113562992227580846271964157193287798360796160856114652037145541340679604690111622181983162580310094175405756008003964085379391900460983881691733598167616488959564446859605787721242643763985127461938156020346452390223316259185288659204691776006985029912720402822999076022142507043742634409083402878045299717382560489737480036979899071167885646985441815196521220948801087131949416382255783448631471628777587485455520347935416695927377823773576855217434001764319790538612362001745012606805061424957194631694966878247018801541392277757277653210479567757236383958185050993179852104536800442049914307076407936291139903149853465235563365352862891008102856648792665219702583457585171070705849042066002421240026166928777914387894404708575609010248756759454600849866198429545759599878411778730850858956601294985777818448069108859587027318771714394573428985503930032275128484671238034820212362296024775851796079435764206846274208355599280503214580022122973052438743082192864204082250197509195460608026430271847621460888464995665743115015645533788044705286455949461085917742502231676794516304967463505425497197608677058906105489298872366562610741676868584861801661967499010018818146143156176564853479997012752421216394950854676844847984938012262551655641913443731475388528595021878967893713438122674100271751459804043707939155543359228825045102496593275476468634290374580993868078362143816709814814746304131572155121812948418377393828452516140551538243889330730282470696263546656448669331346822885601943946963944648354785378984202263773735564268676598888796409266683274216756226307145443090448951066275897002340317208736822857678582387756346898478304092020797549125631828832640223418378136996395715455227178978298712699778000547504907829230167354041303956997059797473402584900878115028052923125918877875484497983794246916623403113163047426883332050644802419894940709682714348800059791958769342366589273497639290880956093277818157641096817156521238921592953837617256546067891258837691618524556401144390307850076265831268320444073647825381440167608500748271068394072381775600982961237360660645023765541071173675952833625423537309536431393409211955757339928777198099134022908785230120491797765227000267381072019450444223066151601868665935007736924413934682972692475491196832637247318524806010535221298441556107927883787820946241749915965825745204850181658269810664482415821341984146521937775566925349385354523196940518710294961837427277921267650838671487266599117888323442237051653233163291812870817421841947551913826138853009206522545549817764729144257786524587405577470365654870611258341183483427026270721914347840775191336963914898865524327613815018062825183046024169225671571589257558879366219390589655264190465101545342252853787826830020435147681899356946619139690902722102446349518756260600748712668309954408300222899257453503222934484346949223308571798529218429014324115635638184457582830316894501839365621692288418159705572258351217378555252486928504372018630972471924078055868487072323646722156690707204411564681986112311875460645170756315848515082023097236356692303241067114016394644051286964283593246111309591365613559874843748959374105112131031295007432346726702554513444790257399557465632951846898032059683148706769078603542863454217498345554374280042219162118894642464907662922203325393906354833810191985430882686116432117721420257046692347227130916859054935178094070528511343874661729304042431957180882576579380153746817529362474457781254661935816986466150721393374952316780314588837105475004817700669508151809012184553591932330789181698920973781326412780612470487629775556503404617108185217213297157296042449129377156727446441015944538606881970301894719220234961639105225881712146042473660214787828024662844095754351792132381384825805049522738369054886422806053342489410021487050952001465087730136578887501751909323582577622880603482846266962703494375986976399881002376186418935631239290179282469729296054682158681212215871366413340088615530225366331930981454951119554125242791596977531431420472317338157606538333086457166534621447067508627875060924333486518705103542321719140301401538477173864799050191655505081500146013798257657177179705646198071819469904313716625109332179181165015587549121900585668834447560637385543670364755612117976041291869720583553936224689464142584883503148690689237144218909216183791355607682923333291598241108457137905580963702304569997661513630842808852233711044548866190444088532906071596189078829738421551736750638963780956468772427843512557863186143918913163180256749398627563525034041149072477919611308982559255856969716547058159506055462031669846151734773374903400353094379397027441810003973413777985077866764813390510798579403350127824192893153517371156518033677390284107214100363167631663464746396933844533869809774538608578722684600883270096705090967286880309277774844321100687696367968160626416475630413570515747312263935792721822490153799748296746129837253163473379701218469031335699965719640495015550689426842550287733071546134292632611771878903718555089195082680861296298225537363386847033478346305126641958290153901351285692421144153035419724364090564586132495628578149304560988041039682362348826123849115909322663956013777417150442518985462831736933957482267798856881850928913441155169606331275035709993941815582835358480265282129616981766052840730521053011169826775953959729700645094035077048976548031426556700045001429234774479240371661915558622562508903601545100214512496014649747889904110760548685138763661033360930273501205877273418791696121479520792200542096664871568388970315313218680574321709817338970471780124932876797359295962863785025512541044309803353708364795690974153139784426373885263526962606770166535866116327486997352158370851489767069905520593899325409074867898201423936617182678549456902839013814920229249064651462835459984173131619580273499116776514800018061333640039139799698638803559890213541719155367703889311801312518525600740524173660832508731718921719468281101130664988443399544562409657423102900710956145207893471069721442568532403050156899284201993283926190773500193110532053821193684642360817444167826899614172942110775344937532145515579762532597997566233829486265820009063494527821478561699613784625399132531031288267732743251955156273465041478482354231631898836068717414689784672844128221946239228217302355465502540503674705642630264535464869319622378673848926291353258114375993778254955212655659025144391388312539760659053849388664770104545956038774203944153758501211524969789060269859952077915755571774236513432484356456008067312861678667240403189691425086165252779906396235142686415749221147934509020550426739791721214616415288586470708921196345039062809164565926603767922690833364522063100190625895129131578950331499783703582768415255939139060155875464928987277300758777689407759278014794976833108076367972457644442109417715677592356614750757168891986769802515132512649595674824296561271769317172699545867899185365970644771287315924108360910698813303751151866666169693943816856509762997271627711273009621668035646595652580448365740204040642644732537333448636694868417275155808797640709557249933749817786972760379721474485047949075077698003358544317412958689718633042859823166483955146218475812284002122519085531527558069364476174769254798050321823630447470596241733759689949346082806106321090798836213623110648268761670656987919054877684620541310130244602380055917836334605764938989460296499696391934641606400260620737358301606256153332872989827985348744225848652229676117430996940120430258967130447888930232080809537148263797059242267098619826087456995145073648249573972237555244524754125796135747272422373211597935051452821297991536467390072937840452367659432272668770158718596867418796534450636310291984776514833000831419693126868284795140053023719947909953204566355861936494138098182112158647787017760373184610363474121081317750375861208237891549652129026297132189901345631871542116339484710479204709783173439816828373489945690396897813367809205402404545479189823625850508823343731688195740757938816829445058802024490928980440483194746168588408643023579384970782370124774345147165639707247268394344033318869026724359876873944741181877289429443418169630706210412694801558370954628553959524462074903721042005986891479445970516701568060287941586843014197493270504842122099831051222753564021228494661170326121261622439864957568338116896762845996575276003064048936344890168109429136921217872425703521262925564586985873283228908277185147540467156287512811258695944576788956884962064463105725454742834808757191222569408365907594489251039678500374172505933840970976185711050191064068660514535721828534092739802394182049143338595036671463793124625528815166405156949056599110262872869745449749198416040699367918944357873528167297441166770352933376486372103356394669274412637588184011391162930583009285191502110295387630208704312068048405921301191549307066819927519420780603589558784649110740546726323853124729540358514805738817415218560462188255583026795866840307462557241830113288381745408945553965992104831655312238285532971619267932896167914081804406466445037476519126844900009252740602862449330403075565321684885955786348696861726705279910083492026899372179031527269072508149407978520626701071460507179543215945488957929162609178188432533115431481550707412857431029066955685442615039994559714332285707115018299421824365614112974995009250634556311896548861469059921084696059675547260606856400159907979209539185555432834246269119528764525290639200780477846050973269103394808754366087367920882923823665987144797678892561809464246290432342457630872199928884517276385747489790287300966891542821589136489882293618366773437972950579707197272372759829819743330002353497402682002084930471251874873844303204727628119558248243716317435336607582226359147945325662039451979291976061661576882674297623564610877053832479365691233403004988692368152489739430051382466665888561081410147585431897066162414604121320543338606159280766390444912848079444254118198947577479233188547604014624519138887506887158987161957111699752457876103805256788509502963843239352187127620907360152177946644415932396134495420783495414916549238606631367503032066760320984528719156551326292853210876278815227276860759797025922747863523962244349027312688611258506843555902060193906996931491176815684253271818697911308613763759235245570436141960107864738159293965781203531668248579748772277195086207494441417783538878572404703968249846210049140487198046367049301737682453674805327642095246042011335093133881218569576031758575883280514195450868278310911868324628567060521989653088155872960381062641447609418038853655769089550678283063108231845879238771694592668969967782173533664958497705779607795927325746817325937104971493471719782021655029739534921295482682274313338585257987329185810859958652585622016500749176872083196576119795495235152921032245513167839627348054285337511036939533691333342179464445847381587011464295880026824340735318440018597764010121311749700096344310008692740548632797845433383131752714134609482122202986111254108673634951101082152905155267835645484793932176832371586293601013554947523664507058669673255836943914338685105260293158454997455304858614454034375438251888970359272866114104263270681241750172487619065952932498414884730431327472876014922838392282953564909420671437084893932158521084614671350773713677465765164809224110334385638789880007570371693508753656007675561682365433474682827900877834970975443549541580771123409651717884702764707197409123425581061456945105883357924024000353309261634721256381833525768424905696930770499002575712354788781458352073736207282879200342950527307561375726531876337767802174494709193514364792873402322265564752091925189905461601708433114777756950587237487068665879684000053192226368038952403112025897950224427786356840336422874987487391249639879370901280261506245120691912693885734381793522396947118300992470192678029947789131597073762007103430449742010447929770994999821602871240160277154469032874037916198808020317431246947346958131318659478223028422394506143120083453990531477959331290630891886212448785626064123594217833555571832983651837848256810664192326327179662944854142745891990176993397646043105621313358176699225753415656424596970815417257783932084310745923625087043360767318580776884627978889315973078467186604468718758423087540115971271582046686853347027408373409431297538511625223172119116422430184535010082834681463112381450871037742861950575137993898678958362906213141230423576427501786966606539228736573207714767267136601036541109136559373323302247167950110518148366219034495772978857123204748769478468349380734355806254363329710680188730710229671299319552337759323539480807973001497199718469067850880373409493349319358586177149299981191604920950930357611556675246431327163489424203604748398003900081296857085099501588728418244932902491830109226448689229558030388522390485183087154297270648512438827263382809736602099671954560946063201256699899817499451925651719723863877909171646429398238665722299098841103518597977516185154994411087711566527045778379700811150178334407619719207981625103056777512366656521843336142647040989191910036644717891330769699325820887238112232620861930200635294332584381256315237413520519426331605325788024094629370260899167886137444266785257320970984617102581097066507623875824918811042915694989733181314297826393572890985864915406556304766198224758647032879903733862452432923107071516124435205955218550692622264345730548203154085532579033743017841345943065903194145979112284616868092306366512405763357170940613883946832376351843043211656638996961901581258722190557134091189149006890056762645407371315053374169761980904955907841938057706035035916880799883656532155750910251294097207230934337033609278235151465456841001123534571827131351898644991100342041355617213210089302955465030250160683643313734874723455653477440358711287133055478451952559863992338543471251662216311827061376297776410014956907007265746626850658577689587405895603390045484836414213282911370267035617948189715053430477057375376052395461300674074203322151176684840816910306117806470088191347480962453844171666028014656683668100363509165352444633286351244535861245133967312286252589661934496133298870728660403298757963755962280385963377886176738601184291636418719964686807265463514963238062410049817208797489501255793949555258243927600708523574975405194792010985566244154262899696091036851962937092037523344565271010134527306165845863348128238682801337446772102743258924246323200098293459938813497347608726892494036468541332300467067402596216080009265693824521146624787339505442622280705238598173505539793593778441720792502678790303938677179014261976334132240129206675753840019972084600240488774586209032177680975692125857591821535178932291552943653508542304712636891790244278067990800397286738434519393203376298732937670245795004173846103185896025791448713713638797825981605655491912536901213275844622391660846919929244866619810930824178196583550288921040504078775996333237450023947337181017818073378025015470077369744866750537934094943174569366912044626165299851940694389334055469118896955150518347651176295365630232710292602556390951300466721587118221010783352700367754695695195476564798138308833899230373099651903509956598135949328155307317240156285005735522775806176089146761324251088574947995485221982973251763495438403169875675484145908433255685922209847616171587304347393240763193723392394422178127461406866870605897149119825822048791263314159023199657683723430091814406002815127870143079773545914920942963399467403359908832865684407064914431631300698150160435497415591728505584338725837391731628442774223988685779071129949213217597927250401801361103146155508792141799838750870538091477244082631757128587541285046049420499783508204431510233798085915558769777495674095214202866259145635960183865155595889390940898348980100245193380629586361904188219023119513316170449864428950708757178879786838847006842412546369102034978266712125687211784476146455183689378774748024730285879996344538931397964988234788870225370921680110758164641655539289751191324805071214996820094939494177692615513848043561122201952027828435288998721351518213446346182188486919448749161200718956760320309577628876119150058819156903865546260707796132733146241501382826021462038242909030742427367964062383475670251867072342925669947878186582198992931464076887765809712799273630597306608503143859583551458371672288631579638933363429415702228853596152206524095395677995301310260927694859649504429112133947940101768339705311489095649720711930235243016560978789730451691688717911639050263492175445319083016168951870877185825933404110693500994877085392197881728416825498900232016117137835130264288835254895998138023959415177155828518119650713395261415468043611248385138439262584985316416598318186686198751186460756273601244267881107959698052509685428763022969138346371385830291450702906356189146326429822643449042773735560234727234480544021951350505526177693877533977557208978466504176534990058914323054099657422385813902487680112459752602219940086735561848131310384512920718330245542741803655100811198792054983584471960357816648231341102307577513038633837147975965494709926094824283354603281241462026850416843815675785309790496999428356841630200895526834172392952095410156413903314291630774474203676023712370647443480987135637811383033731437032504775231599002215266178671558296705087563497091524886174100789539955942955589298121377738414144086571316377287502553731477286390519324110085452135937777561385911866504611821718937791373877037162703334415166678461011445358436118754224217371456819185254217555715114714575033007894222897302918470810797978357217027207521749417951761653676750727557914639501586908681768133802605406406083564975268760494149700174184889333311049567739466072106186720580002998303861779136224728095236060540991310734543528429741685951764408776583283963809963043326088487613122130702481045306482417606599126602651639585636700617453231103022388658794755934435230324113109450679318762096990469740657182423706357780632045341491925435105670977932412451016291539793529036330443104756812560571328376326361995002698637439001497497951725377828321424451480626181100386857004597721697147536301952057228589187346489080499592019581453391526733574319963872317061580828653780493002604799624615012882494073432646699262391745813068625314094491716693145530865348406163986111246842980787386939655388738570640840704138343222390806377255059322263415753645775628283713703623428488119891899923823581735608517478858059398477400941250771992002299753192074368875014962218331957724918939589174532116092691946760291795420654145151913018657503946540372899059742589622936113397682150271572734856019498317166172346957561232059001660853512767791250184192226430114651351230027946553336925442156744016659569642920752214610574869363738187734095579872214486592804328846958461794753230407208015367731584609241912541596304995747356398003766019322639496949700650758238364226179721483928289265827372832518685684287000143326393428409020333485777507912020541910227575698665810873178107630380364152868826513746672445625710946508359652727745736250081940597426867402661741873425140963979278215381334069128253781376506807674902686662746384777584622898649030755000350626665634196902872756949426113106668715352640110252690728801171943151795755704060935547822085771576302279296498240283560985049147520543314728387513952691054032447009176424796093075394657261418874122227752630748617157744859133058994799001314759607033206163063294910588943390171392703667300846981856033051520883736410067864835819491931687691885559189266047422016995207360128772706516919174432741206075655981060091919096802036737918531280438624583981492091079896966361103571678011307397693202611995646951579128059083284028017556390102393121356765639965170123880781949502022389380365025966502338086041872400478595065258756947909206777482646105963440950064507139517627384100981055688841180882485487402370661661929009866785152648418321433850140524256633652582878899418239509079618112528190490465163160115222572497385191126145535627930450711823848076125265735954063194499235360640589132093701098090509971588018250569506875230121509011482878866441829250450038601724350460684500699809929573586529651261119917278679352796616200147976002807265557800903473660149411675661272139889012087132971650242523800357950710771865885060380576755020013429478847568170661319035374929545117419973247735531373628999211420842360408695287778389470559339645746915257160359806863796282803437365235099243146867879847585773612920823464808466664623945188476860404234533520420601420095530261740511580450552121994150566923905485577631286963777506407829463673875118333737929073453113614523168001668382829726194003105364545093175029567047129617070590879365276697410878864713755532269907566744699608148760277562363120027850125007291509792546696243370724277286718808105967670592430743564179749664356161589634119973788311110360737466578269823986995402504601529559811928511442224439866550661987287568134523813535130662319133332315912911054474980448138239454883064224078585645727467124983217526030203923183720851008563591012544063528528457938557056765802229993592341115903971637822737016600692567753746487543876118572075632612888264899367041224548694063306314513517810108109835629895421745002050143501442832709108863091490574564420753027804586914099900440342044156002358525693697157073198393716767621213687720383805461184527830487849811514794619965553526199114122471030280512399097804030195526078092812595786829652932682287162874941298247742711841894071295162154705791974029293604436532403659595573213587457091389974079348669106653578364672168835376645888396362145279416935342781860431615944486461687497713387789081989594263536082418362542129381702303582626436436154227548602062379008695113706617999158830761957872831609924345712924130096755129114448148349476770032063475764091527935921627543751903463363724451485684882585260641218280962574898797667670620331837421709984671759765068787814522031637357760010645365137540854283754864563012275760413687718341779402075261224890207972408320409088711974354493188024781967261794234021482958774395223638435957059077723824849179306193656614524301274777753301599289009570819268199197701043932930338825455223513284401138445126592671173895791800723128528993869946269304571413096346494430928882285777374189924253470800994794287633329552047319300140645389120358085221234569199455249262953385585453820646215005965882725175067236302157042859053506683085387868393898660395470778256509742024813029030143072343898974348815385296819555093866534327233868902662614874424338096214317658618348536996749139560806112730766601607075125798554190300655644389190586913552315335239877305398537702167813986397815168893285309939788984373086301310431874902490706407197638190788114529844838092195859144108749381341321185530152985824216823502209596479989327644929626777861805594929876421974682495632118889289947232629712221501895691902943294605321074361506641585875287973385801883900269090775935306612639823617096316202823562438434356426663429099934280118566298050208454254272837791103795368798477068488362672539676674540776845739511509947225113190038177624532456439641029855474680981623390304597135846464130032976235081552420279046195413316631341572823923449129988546661445484751201349377962226773357213426502763684933932419482274785785716155895854995015526236854853394701772134931769713035239630535379159538204785226270644655952361583607039222932102642951179073358185157484816502932715164742514878358748043131781495274442604708709911106376876559914076427107311634937842898389864391799292125822367307216549579743200222138176306443911088437942554958138892551657499184865864512673173853423175522288489061539156489543131985448310166634209250536902071266756122719211863318653169885679184069430710305818186356913292864039109769726645725631706042433730271093593185433417626586318918868795434550464300299353698934513943615958706347116574266287453604439036842012687497201972065057660334418960519287141095565762374260030612496422925021098339398221398366371203730457995760736548189762479894545780327976932796909512656033505163287461640003873724352191107426684251057227523455402878586171292370936333268241763088919798454592057101405859345280764633316356857804429847558837330047258061419959919244190357166837921420881785898467433027511636484664813256173988073727377600432465998224410545367197072441256396896656658912252562885295340016818435845450905396797346059355039590759264277355725159749024565047213704917550440658467919112904340678758958049902626235835526789427296291528171927935991060333638270858803061940010272678729334770775597614475201752652636350553381429627617714734117124626074839932130184475440269876324572101019410675131438753182968105573563282320823708913039377970895764302890577691568497737534392292286958530386835172263450745605382947410705040072251250379974615041413682443158492668911997643719233740369641408918475697549294154699897416515727684941368882721888119467255600313594036106202184631244730418390602186534983493283719184200251105829107725414395787232113545456624231284808817310598207261780896251110320198637102216759704186372505973995876890661021367352950616204589722197962604056267461548284357030165492745422862571222722542137417453224151950379265407201368391918664647220908595023516030632872961189970805105077525421003208729639107299402793770665575341856344132774867527313323371890722368793126258070697438567568309233060358444707475697841765703574071154621344479642946712668642993505698079865169233248678236342762037037286027983607877314256533835478210147019746669826266253908285813767457593188458685926617119371488256927215297771854092063453667647637838871073737635166556699969513900788314626469719571598502631182230439132110271952929054387936409504708156307076074037558977174456016245790291641804359611978133084021196711965809855896830181002119978854692188267725377294795590620975149432214652983404499730752826910648406191420922355846359354516373089610258433194981193114741470141132054736741110461543827960199957131515950648496562297576287715207449555186968548641005693270382857132898401112784937674084786676432470848815585177382145348026282061587744115825836313652762779987677746343531052012521448261010775540857802524616046333532457330560326843865324377824525411892000537373997927574329746764952988711362079809302671239474720367523445417804608131004989539419231548479904281305266960859607646347168452548545682839215206363844564592244174642635427706574891068666763715556862639634919920331244288959898073766554790449845786783462516134781768506512411395154996992253816161980782337348691550446586272840635857730368391597876574501951618044468811948050385481698438297327172394530727363319649161711546641886453989280571886394156500781251039216697268140966646540162969277586436252551272148625945950043098763770476735580317137289184099059046628490705738039569071961932388979264946272139179764946601487699309709633599984309897370971020193843388113549359408461438917363662582912328406473988622110191769693791923276865385481342493019502928284818440560789367664959716782564311324914464541139238871384708464596092567724832736205400558773593221285828424125060901510115206442127562066758069198662354130265897709666308941230662459430719063598809583925277693738036154229739264201992858355029713291549280457724868066212952925856657912678065619565598031180569436967131801802324447598509373593037984979208024620648819028559647263304367166791883336480264690742786631395223373177436031076209048780342953766689800655447359867639915835604832965721711041853046206867033882800815463864694022818523462546453957697384007019120628911542294772056379254537757438663498572213511527130012322537745018306849123718389767452109187407601442713482539554501999591789607164538121462637044986520827049403432892988854308711656731905863311473626913458315488401626078993998525046120608329322615150440101757535655789009397229958937345043767459008645298339147226309651480445032234918391964229338745534312466011527018461720652539773212990518171581348606303108784007637461183216301521115323090633559455086601315597966468999104179214806902164656067308401077901893310131807661348860973559909557559795258697050085553610677148589355984985023569688654298964273658638804259653134970925968232413905932517900103686525443885368100501074667020432902770306957381978085467630917425985419135216645935447571978349987789178979886008298149002613621486799227293926209502751394355829311727772849591917071131984210000451548572621992622975060205203888763390041490571972646107629802202038741847963781871066785188220793795001981541935016847482734326288463715313167774174469243117401130883735655406715600211483855994007978657879343215301593528124886317890760927729304101272222491991962893876124237602434582970682686821070495574911435730349822615595769267612772773762624520853573806759354886258682453987394482087635037651338726110267588928056968921271170061546412501252925546010993543053112231841334537942976145162986518691000802159633306877375035164519777064406433949071518021056691620384409812354271914246191516916830616249391249373108401478696596218360467463156993726101344384202136553173225090056659756676865091698338665341673312112409808211320388922033316229433882932535201774538888286019919571136859479993945929822015784351877688043001045048528715022419932865118363194728446495658397143556370305332953547629858051491402716856081364899795944254137308867995838356704432207125155713103845009637273123746662447240346364242608072209467935558948968794468121790626164163297011714977588341687733798572157207012122711317938013128496943451891974289053110864936449797540965936724984549514266606682588754293088349936586894551015481788971207711691688357647925474452060915077422224937950632563897787568054824457089563709959892881524858306178226284715866920687025978538756586423779448788889085874951513705785780552210742652389252682565460355405514188010492283432339908107983345725899225327168152486606764416909934393465251459822636177732016421684516553919896326288715001756981464642854989634402023935457663878540252585834411876308747892118602812925463131736331011959304640987713691834652180300581861132548930007250860146952279258553065262747109221992020529043606087854406316822961359399884749358128262497851354567527863342354966535683764657147184827778380567770428009392600542425736618412436904721417357992929258147346691642436174914043519183901987299871214327095879906640054123666114640276228390406061573619499779124420633966110189820910993363147036849382200833822157930369970355637763581449092317829127611755971575079016645452622607134439676459756122908916919738684408921647046217125764729416423104713438731702726456720000769021138676211694811018948151587289557135095604044425508480990695051689136542610034244125588028831860683805480777492365095173077701167103571915855573265551210527333376168408348944985614076146839914747418699773129309244039059828826185344193536469146440867503115569448092899170511095910169687520356618229771239703951935264292116677737513549729650336848057564635169805530107915287229575115101208285038533110730984273297893436531898298471794633832456307532859365043787603673343037952848491948116630812989953778528356253367313199713835303468086241965939304409630743955042812235083220806393001253216097804088950547576159904845235054562940799528421015412625168417901497810381426395603394006858602179775417075375051188949912159853256954307748774006822283766885081476148458972333274716890536670472831796635287398815459683802861888482678870752003332324494317675373954606209552533412357444200217478083621588152617028236835131165411362670431522886115844009307437902608930345432368876796034480731540931900852787529566434148678586598939360263872329880834680685075202799686913491056653324468676459266858792354152690938028732504254034679402349328912703856766624884215830778594933255266105626947179074633639062635537729549107769672615661401342461983071096646500261897632668135561815480708175221101056631552693347643401311127122188771980411639548431230368564731077622427730004540931887386947227189698375551690094526576486621507635245173534167599327090663923608052825779406341019360375074378661738129654456997745938983878545745682384913292947492417780911701226157919840334698410895977417711389448658575917444068268134741976222055958399509871237628328607853316266747482823474222409882217765581612296970119855258978542110910066726259652766499750386757569700133868546718710057375677759815966501143808491581873942261907019820687501928626455096912274128761325808175228836073784076511621464631915353263282712135727686160944714071921016166831558073928342805298215555792413818073438029170589109424740178287268046379441196619093575877173909618582760951602311577810250652029600047489826352504152690438520848742589585114173111457224433976729066166674487321998118646663538462544364086285992329601901321269064426023983792508493035222661113592388361058145633933525774871770415676424858341489423782440664708239015299435957147491748563444015962358986370820244000322277076613710404564394524208031048471101716138103183969114842602097445871848883213913697644498456964438890022998622589425189514600991884954384389248014068394989719905005700592441430643022369552867151759640978878198846835558779474696597789608600078545327850627030571506257989218062801838964284660684213880690133898998957244653573544823666841836558962329286907321987438544138443212913030925449660554086133359828054091547730947023642665656730612826620780161905882951511091658914731774267840989451931150910033882699530893754205373713307858894745171345798361247297207691882215517138119920987164823634555403056214802200007549459301380236718143961962021374338586799177961898958038311714282352273029632851280882938695183922694383522883489977578496434175252427472571338754514437059938914353810049584644696744390683265394884248911608475893246648840773973982295244802627861288867029567910031699617978709459532150004939452376790738385024890889209865315166921562668469569144978904358796247638856789214813009249938423754474025310105724255279865459563524243443144205513512087222786120411793731199735596824858898957200750935636081021020766517511899021207766274173026357904124729980344949240721573401363713034880038604142388988111587736819942755473974393139235624013072496247112047345548784537380105799932944162460181687616273346633591046171937517978778217974200715253571344581269172159452611237044082201343502924389966334388272545732574013101543204879012473666057472619508547399493631856588485109370638168854214528667399667951847347123965373927255491385867197897003380955972385397488831039651137678589037620613893852598586839975320221948489280938468409012015112233248755604940886772828461628588289475520459933367646008466804771394649315290808616121802296355378191432041862629578004095089102367334208899673460915852258803931061566515764435390751647034502198774394373267516239988701194419152932928701282420524435822940892390713483369755102405892516577779029684932825411395373628231513886583644559475508190967070617094095784644565850530423024530657814676062506921198183119094774663788400028149715837862974971674682626149398482897189427543258661178724006129157504015517858218967995922287617532016456786743656705855348144918094694871021801728034044731867493061110839293195141882934359440838844594053108502251207741148649069856629605140312645356570076209596930626323722777860167366447515454613534429452181309038405291785686543877550472933144674432633208450370109475975780495121291104271120102057048657589404389709948868449586371108161310311997256721173245143287524540719280133832818206172046909888881224142781331554764647474813345965243743562309088813008940554796583119904438197787519669117874499561343826375418348844832539432172755548514367644184125796700216502114291314353740212359482488543818098310455025752713278528787215869743745279207732335908538555055145977204398990505941815189794921289905717400703158103869721522888164870665317216933867665344673910160055195286028693740049107988974110608847736947046793069192951379338123867852347098506666903773940498656131728232628916734542058535829132409918723415545958680474762434522558319659858936449968424274701111457534196485813089292320284682635326837100919363532228095160494985559890367551300036799260545750564190383930015942398732294239842118530957974976530856894955941422846227400305951066814532904015899171849537340668955930917330712466885990542613562304668762293833865875758569575067257835358750151018749055832650691575307979259900060509349613856604365585907752910913143681494570297682953189284107423042039748908734567517794233572858792090960115915946814141605517711433322187194758727123428591865167617326466295333441024867232822045750738711142842333559101354145154593041857368037627389446909350319193559883463549466807432364023735717106635147006593775658441269327486987467546269955383674929388547495717870747282225897848848464251716629109492371675930565501928686202994746396322793360495628022569139849916978827126910712269194026111322167151488153958598733415554943927441775448703426854888013801903094953163344505500760564500302728112687139903827332602926264207651101197223133515834880924315392657931706112654358182038686450497432047862615198301224363609251646429191803568472970348733266612051391763113203852607811631104347670495037159113402574588746793046300846914077065792382706442996499719454760180146132258402706136166609961170839050398770285072748842157346492487276522637434191731603337575318455858848407853792119482859165155645661883885409896568207493848726275617226828459612631868179989074306771043861414128015629327103977681036995659290687975683738060673431429619301028897408907313795186896273160145055276604778178822775900898287461238266445720994604047770847273913143413258073953081930075644632785026666950185697437787643756255126014955213817484650329330690568419042949572494925366099877421933133826260244783217608994121396272849612866883076961293489269962832888341086912741673410859370737024313790704142163296694703370150398995065067823460301498296390762104182168776190341934556760381023938409099494689356789858779399136989810154999446443805077038478890901834559493429075203181491043017066390316098508226414320072454795371786743256785551399666851069008649423210099552679243166855985462166453375168050321125302503438687510417602402342196100768386003275380306665011361852145286873082390368625987983793397320637288228192061480214268868193469111675084617217355190356928712707599888950629936184949842374693972409782521753291910924024279534526790578624055964280617110683259906982407837871793061859901258624294123214185943644609461426567528438590890956546741170456746821683506764699149825755003849422580823252934099439445743055128618953562399223823433759447181693712338714909332552893345259234890112838388878836110980900767061265885034794907786922888374682909836352027001318504518280916712776824606703693752742784758813487606828013656365966876819613214574412019368085094359665213938162186744155260883281992853023055933278144259324255720946143404873368689596651736589058923111938004219366231272186399269034581258929587761459814622378008009546884450634388090730439232413380763123414126844757301083387089324378284293813273723254712823650555314138089294457640837016729447623665528214835266844151230725328912927401102800898246188798538277021522273830767705523979846435320676711016285302480575810147775799455127145689299772736018948836341720640908318173544206705697820362644048309894248988336455617825316208395122007252787315698021054840314999425899165485471702994024921300184325048048688208325063806742866128934073911604930468330983646799337264612227348620429280199424466448417363702805208854363277993290864490305385043029674228865993852789896165303770181661139671915536720083703526189761614946297881315107385682861718595452167463431381919826424168123193339320861399414648909975041779932742246034979952773073125229121606745883522714558982410815070422982183902515706377286674236450673048538727456955854120589024391226738373123154446493345687909476810814059583571409653552912690326981912377040590668484567071393862337833310349828764429274221632811625877230630248452125680863482243362701759733442112269830737658726361256140135607976589269294413198781239623306261746701230348806687067781093943922323585399131671617495626733842955216233758921296931077045575651858369334036762016103248059068700261899380155832055956795815270077214081562512907796902302303521838607659995069360099077206648049170200150475231170092918818475229552087534159323077941405256371512757319257153752790728489942688587725796565911160142706461759927712867009576367689142760640873707286264365407249937779075911722202868886865004766345789833134535300489848392353446539751516406845978238973191513674505964803123697724318216013059952150672729058292054171601756467498499132666121357986738006415505831986496908909266168556704370986519998804690140469793767647050403200274578907290222387077586421516861051297532330088415665147200428660314242524218465996914507828293249974472537558910163212574365912360554319559287120954755936137239831136849610074901021633595747995036278175641496771718801654555755724130887993346750541451951527505801016509327292614257047981347054608477750623727966082895792314048587356096129811078349094889167011955070403263665177864795455094340298606607702981799704504914444518370081555606234877783050724496250750035874141089041410579093666334550190829287797352553218174376827070131732861451216787137908676538301682524732119133168974002151136331102260154485409553469048352151875371240469036754817684912451843557066719475224507613497883509365394522204906799660240924843696850469923184476457656290027791133316566473678668457161771727614236626035320194560573109950636619452814899413822417033575251240393763297905023067703241623435093050305647820127834320608380777961339922598487242575063090861640355326470394965479476217924597181754173911908609196951877315168649812061405933001085700183780851471634729750642539661450653994568709796190582610757547109106472214939316088000998140070512725186178354383285716788013920421661951857901384931010900275241662847204759461736396571932319545130963984163413101943814269574693469934807511352943243811537185935484801093214729294105057891111752095501634405045709592906927291102417910541060767673485098883306163264884397961054387140299639881977675144051139217910727171763717474719451679034722314917413072188139596848344608783726974501870167970582849303490150877954343369163137312282073928063212606079617416129670846372609540950186584460363781739636880875009731483021861469510249820290914694526964143364368403433498618632180072534899673717369697404974855835620565406435377440266305739247311911267714600620089691260540160759869874173969650464440123027230533126440248679223697110023115056866812355713093632783632625825908211059576402615621769033681180060634024302814997702035238013633759399246081566202423511862495179254905609548274978666360740465411525959313007343121707787346232219850661173615795757366723475072096614393212814488953058307935801420282318416295053950893499766685781626907462815578291640325072447656485049686778376903848665100587417336899595350172989803191825384733858508217194683010006865691016888679014269414386454595154037542186255763021788200817501501696876129688138829564705508793804909510040026238097666324857495036385671846258996370341477552202447695496120349767160763425728029095367086977788028933331761788221385165922222079212902414689624116061090819899616743091831905487812438942228200908936483107848084451201290349244884608344437594104726897871977464440443465082484475221090928028938383381516663546076864372286505045197872900086881119030362603244709427696079743426516917226902691513537103264965916728166643371426155558824512137278501498238782425243812035450266720634793663724682568519385824180947466675874588794061669546731608182224345512411136235385287253766904340570247210769308121051607144821581542077509110980735275388569927418633356244540646424667774443098204677150475456602613116077593769011566857080550192872726769568313839542975667707814625125928225605937759162440746876214354890507161254765542520248646110121832026051082655186796806986525657992447588893388487278946311096134757449614382518201436217726197204679236153039465517074937138249526131407101801576424248915831532514979666693270870812056286357327166730747154938560980334816546173630107673923323946594377768098055318178677808201462579316285450732679101240070455299843839935995025936917692459620235021640831649493232164063992201884182231721756616430934472463251949343952932718650861364941661278177087483581155673441036812351865206794224115674616210330569155643170714607208450869700040590252058106006290770643711660329859662275955807208001149300569219946630473895083513467370739068962830952585539067314579095573192475302997038922105013422362263191048643977486570323390608365915150682536801347775455910351671993339410964656854703786302882896735228157415678604733710393967168981583408777482349809283154686645750468040893154681571286838759821108325227669400555494269919899612548222283594248730442389791094368372138020154545308814527343935626997749993964610092167583359335289400508275001124793013426234136342006604506892964702374339305872938015683809314363334396707815026783376590210094201044472669225570756876432352464102615852086681204977394340732504749220021339760271402473810661042578661905599371962025780817293918439950676386681539129624269995977438684169465260999977606963176744781636522535464739234670941132851313110259345677132209021114019676669855646306505769295716057274067810822855823950318028719111860046987084237724247464103509865707798124734720085469224690159998768163284770130045284551031285399123870131620304866381768415471584354768992814026407589856329298984484576260304243816199581661748423879665935454538527016758720061772675341694524083585378716198733862747650102238442465884698621094307766243045470845926182535017720126999218839012269122960847060197878248974290706103699124725720914402915423187211740120390592151979777088763801039362534487950278486410838539557433069869807889666228858340028587766110352485826962330990153355885788262162230305916276945550385877014946867171004733484383276320106129941706415086733002295028255430106011629669870478061667451610123789351626005499447898558024194851708975451355868096349414461549175836737379032996124605476219226556213114713022465037971445337952459742367725950111488036068560216486857480731377726044378301573015834538530927624436798844335528568784623748817685378673846334683559646141396625817602938042054755970490351672745714348954826450406683649784662030961786993485010874444769959527767348171496317965389406321500101215880366364858954401606924725266954785572935512038724363529007925918539728616484380544065909027871076532755204335725155287474539510077245348838514316678775657414389323869025049472247591939761121758310659238493677458250211285306433461270317752977427256688691791423349500579438621626203130107915222779501193159422767832992563837282767164397249552491822941973988355143387011711261348052169666936116412196172048999026258185389854142295546828841837716674198436061489768236047567108516190697399804546530815793948395407110933542832440234764018901280012633532080860746442240845385817043819323506840141107303805265465439763580349639580188935994280931185822818258396709159319916057865573566140118052073223182393144311764839831568981866107288266353059583347338930206335432452963227324799769489257887321901560471374200294814925183907860120506893516253559042693021095628271006343336714112570934107494952521623559075848845419827106091542721386528261386734733469574284857629325473514421273086578316778364214810456408276143673436589167231695672609260420254683885950087543897016728073651759513675475706044181027416749588746676574778664729803943296848787950818852441433070034674323094711327631085973511272103966974299656715709828829914012329217137590536897947223654636066367121399414490032620762754035355018611890243570525019729240800438745898726182932357526621346620980660555324196056691975578353540697308796546651393647921567707426701031815038246897338500912606829495873599956809180220363735195212298170359310062624823178876038401038036824420420400130991081016669046532685710862899131731445876034347646476419299999605233748833926957596897077107368168512099035300849051377887935176393456175821968587107481823824912390742339320094371660057317477374174539476496472755744110351404501724954627279910964995990965088058787729793527992777750634737802683228777806185925296497732407248622148817119141194104507338208802388975243801793609457571085278631715962229669814000606758036249303397608962990645881250595086677545517351337850966826086779021718935422708632101859080596898055637024322150805737906926366499423390936827951109949613500822115930850445864077620946714286650624462354689150966231659875779046411497550090155679592354682456330740241759757170304893433502537997105808714459501361659711045831581823115098998358830147518409875656864889023134998954859391651821904547264402496625590713930955221730846750801875270997558680055204504916382893892494799479299333386803415002973530358085599198082070702304997922487465086690822136337087015506105900535478550209531656126072471906699185209217552616616269646380532849238582587150202338993665581305057671889584454797895260457366403749305643577094680459725220506253558770868016004615078412738017862848396820755945871960517849866227743695776422390100803689899180408625035841168886532757408781387474955313014050732320900946765706510941087288737006619629942020514938773352568043496728214619590848031407978057575142313526004867123549228866892388344611735351862649795690916186784305600024242267217626593212887397965363106071744073328162132165512617755519849207970488377656337682917605767847741557669831629551384100213182325915431323922072618938591253616370081445804590943449983847562600740066352573658991159139605926694014744944847891805606475131130453619738522744442840046010817810503200529265479452593807303376697382947077114579674383094931464520743892997546252124108265794930913237911272133103702981776848690957306804850673608643653773520592426676360121656281675391907433352494191280831307739376720938454469963863326238080142889030351658543422415853259904564595072277155333460922612115611197638665158597527416749023352989726302677285417844784831898671119443993780832595168714195546833416391675325420193924765129835710819199150816751499955026549187073833915858932424775183046100699919961132361647089787659835532485425090485013246942873638675989258600288184564060817150907252568196052648120077182589066489580050483907007057933713025221229152713777653461091257736251345187529107547062264306324657402450598777340072095170095757173207125501864160370628820257911152192670495460447301263912535979404972428138059735856804530321514539475659401145850030245555801642480016791138508505445435147934602479774052019185164388039778499729403986981479398205998972386560473722503117343953005535593865457337847707493570067128117219794889639268268811066349572442950449494415909874254790663479421178461988200923886851546641741888688625850687782571342724636366302787885205781030874206081042433117562226928245900070813388360277439712046977066375165039852341975381890446283696265481791578527995350280144063240309481891796808277834707035321392518693700537672891691557807400550143235948008345494598946654362123224283564571583933475448214744092374349432791370912550539200044909795071941548727587108510220831932313350030057738939161304860413053782005819733457604419313807590248582752386152619780360037793908938171430655822894558087094461340132741758563103795202213254426222546708108307240552098484881500449036248963753267362588067471555769993357284477978403201719312359373160522177300920477568395132502000170344639149739845352651107918646970535292822100248057536555852315409501913676662811073585401833979338829941292834273764398545278211134811135718748779620749229368459720462525397544294063968578274194171789842596295247956140638380300456889477643103065393177734809859928138452371773726480942852858774711891114262207663065926614265862287867715889391182580045438027063013654612143917225810528885707687260946718537644678519889774783421013202029899292348191502618219041896134140420076105944633809955725569442253998874960991159277827899687634697924102260942797295739596691004628574268264473434890075032907734932558973253269534330451985351720876996781852386584542895294617000820765867328999855617899671937723413719185544007406144283443923499556225320757970545148834645521522579925742192828303191484301214346600686759255080659321531800358615832945603945363398842041410467880812894184847745958241640205597916612470139249608580440869369256388599172427752582339486505310745887705756409558420782615463731503960090083068181962318878478752970019167939666915883188791677761101775116899630972764734759790933998203181316413413328147866418637726781902800944695806066669395555309674871425414798138092029792812792149311314457729990326994563116250668756590521241366634500042122886677438840582168457879875310521980503696507625818996539548432425086733538323487640497122969465617891297986877161248002487204781010795497847198610285484699149155138905944545295492502203382801618858479640630325874579296641533220511373807866082701102489100376243637560641350294853203468788422560122335048236340864082606509570831067734737798552255068980731908079131749486551603232757408414487613808383539800606880227192243807395413233135711061089771030378782717281515433769674703503890981550573430175641160646050953118081181385277466382704422550107548395136348538244550441973604109161448214574823316070714342766757955279421125147029319867072653740986507233002861796800771849582985703032632273644246192223372627575729455725817651170413808911464440994490812537250450089432946786359685529744411832142324145569765251129484138970675689972635674476851391002932486966138516326229039723757187312680268789142359851860124778083227403293006414873097911974337893483819709476828640280246832481482366635315057728170559354683895455375659479911996084994673487031676470094213352554498960756645781357661346798085189435847289483323163916932393117189546053435703760160473067265141651305755144330770252299923934251216997807835589541971034275242313810059670454900349601114621868463160966277827220437590910310918426989335749458163808689670089541818310613445282915592573095049968508369639713812031785302161221459780621170447584061786201647806102662331697359425459403539616765902556150378638530485404819661197149123278268756904634030387844792177181403479333666440942020547468836146556489628650507643046760940396531486427686810327863725959535058456221932046927329627742655120906880329315366774514072386355834944975498720992885544221318091791077044294215317376193928261326345929654128638394804038458142422733725144247446047349380269649046924627957587172844363514014340568360535633491081272571285990195879636084053635855606321274939255844033782469029699352873849336674163694071381092357340297648352294788664237772185619372452178305956641592090274168568830495168321011300557828556333907799924698660198177369671848804912049321517633806860138446404102825780671536438339982402438558602768782584784509399869745094514577223629086635842648699087094122364463473849656106106278049852202133015012294548904235666286907487092310941231384867391044654087826617444292330955228171839430825538984730650798686803535684158369860343765595911006414459023598748528137348082844757652106207460615048807779027079727993826326051636041494481549527284061870031775797147983410403788948916986362179254422974095423214618556423970647348511577764091356851776148073312429169179478120962600960795472760610583453850500747363267691255150634006703272520125811942591404001914460011829215430577665300853845135682777617806218127178910844987292668044768607985217552450705649846998593668725380191884834550175028612630723243686519080380035348236809323880279231028873765556287396812504877404914634612162455345221696992480567548298572444887627823272755911469047510544081135371853338158277558944134102521616197551069107584840833097726714038941935059465871019279512038228839787007613451590081616036394130496985222129613573376874178588939105040233122573150287072105254965550696141320824497861873655688740447514579310366969984723788745787382621758735462396486764678317224498549723052011725472840624692345113833254810371527618797030333527179153228029360196842153180829968113188911190784694797522879117258240117690666976235844077295399363160793034981890850057787835776594998561602166989406418357746249806709550239177592192807673769761011430623764472889173794433762431208586788171440763503814705277567471817243442507867149556601539390879391656100017216570221554492861389794618253685108420705351665257690569525779452353918629357175421753761685457484189993127957648215526533322607272631338520204928255549051418858550893246220957624088860906641173995934939439356298524799572783321783324896914224362949221548382728439054837511738705269063862454626764108362634988911271415505043080148559558079485137214805321327535703697539958391387490669924204424343067996625417037980681195943378486077482641486975477555869022129769495259824441202839240884141311238708644731461557211981531248546471232000054487423989783815692697335823383283193565428760274182094996322057832236663593337408543133210946359263567146505385972183703447973964196891364922788974170387464266679575150911027416920179481903469794128941188649282289798438424395240060011391065107875405577394847011435310671636007428064170056746638556081672985414683245538415305236584207068070064727562753900456976908560279568681155864328426392665552724683334757186329891663204778442571580492602672401977245860983402001582502287780720704660136418661107418737357570043372173561505532507780512826996681551759753906861088215209275215431165880885215844662933240555890799919680981245704985966428807705178740302025190453936883297743851420595374400145390464185674477638526469463508298486287518134322880307756878969340287637801077581325196248581108245688384127350788143445145982998141515019285802900652473656568835115654342109444987504904080062698562049284278417528647263949423192875455190404201338679758663141378992500146275112627564671792668652905829612519049899037353211991176170035875751433449560463634313226615667818532053863896138806254790315898595667275634064213513730063491303855596472654806228706741053280368233032269420749844243056936451594350116036009304664321171322337505605117134516634231859889204018344329130222798221501747341547557619366570993854744168638491287803086033956633170227703020782959712192023815191697853980388594956211337804191638309313009300324775973929110779000893568197661315917494608201113891871622657820735089068163134326964644420661339800019584547458152222547136509356258995489914486189830925481273543025490359998643183799990989666786621975281962427697097017687667140874923966586370449654076086611806048543602200721710811680753917696540282192440783108347474649301850181113658445809259316552900207508480095936332034470607154060875942751605762377362159020597892525174724782878030109101023288914660827836607197189277772814728645950471520328710640236775749702290337327147932354016968795478834298023056453903139305759370965435328825328201646606763280045211821357012392145575326465498739712112731665202667845230043874040435698123974067897836520842376383244501454731566411645225470230668162964379766228606699816388205575050242004802679340427255738257688987219827341446083554203506440392820614912918626723189018818963326252523386066015163337649009942104343823541946255767823486856529931053061490208874033723687021236980520656400990280227759018212637395331564576049434820332321307490926128286400946789638867960434438456465449613840004930348697238160904375824278569782207101529299880769420968478127828122256649980291109619052242800956039107665775512610851908846339521485460684132470691157746093658403442740078419158255945974539688924176399313726332043173105119222741458575834018092774957804977990847487411482551687150768893960188386849496715039111427101598716546662563733319077697439246650335262229073104028606579000120013573648622024232715442716068570046646843868448329663947847504758902016542248206254190694916606904446782762806742269680675842921678799078533108410785672344871315701544782364925992288131591114157490508616391653176812035210374102385013325791304587439320418877629976443628990705699310928031856135497528432402815622837930182304321890210705862338055965496211410595029568910325197751004374028841609194523603629009906392455504606080389874411424833101058141968693364798935493786329459689432754139128063725549947845026532942167125903716922150292704520381232428235100874280948662859879950691817613278351933728678339732128722799202982672851968186558100959616447379904964448745253997804396225119055303371656973603800616681860913583854116242159591262645374714036884969218748097281081819166530952286209446331593185310495949297018682092430044034241147478335516288396324979852320405034583484279002875461534892955170675139991954893551083119273498249699964934362919407689508535100606061347299323547839122864781375182031162432939501890883056298199789959067733615114753442381787283043880195348456319259135352326167129149879689870848794749521690680024580456894466870174842207867229462216674503397188059608883368291091279774378768548115474110612045573447091283681121942929800993934330518497271919557618039931764177058597606774573478095016857784596133778495350897833755712850908844397290801567744755684781562080594934821822146961900048953334581996535377152850144155768843085636104875096009271447975900098668598728668081769085725472881088982844680012606105930171105050603760657903697881000074189002503117088466043396705750382219147408655794580592445017404651819982738274283552918411840987356459840211025729640192472328369480200568505622806953743660647939198907279088948110294031400734450975343183128517823611579668416409785920383045934916611681389631191803131760722811816984445232561047395323312237133825849018683359599630965197515820676048363925894659370542556260958250643862648235323086747219566441159642715602997386835297797573804556633820142006720729117046298796032534743972918859890311454295893262041390507681028352928933865484634296428751518369144394763238591630269894514558618027783792134640669194544949082667272203666992071201142939653014229307131991901023620430291873327349888187809485084326820567527197316746681635069739203865839126840275316078730027101516366046930510523369101607352080926609695855340055642596906315332490242159991793792754655985255372399024005397472072382549557730115485697763732685654238764454121904544454586737314016881465427931839007535430233998463663514385239720772950471365892283281809554722926391647781693071225917692536469509865415173355858733712302693123800552318697006228308700784729674442811178895407134835353515756220599958674310961212290487759398315374295328936797471955527334979357562918360391801379535749037850953976751819188352847719669422580361097095182239806043068547588981702840323350347680578077617819135650039795536202263944856642734745272336060093979195815587033945209146953652500510621314620316204063088053650946958388253469993401662721143397497111619968286883045810939771941430954015868129268052345844452416878886254486090433694212848538803429094476224972074744713689889059809708277011082411579082217215703016879420415982289245573629274540254658566980715754876078406595656730113837301935679199980279515966804427277376468703354659074282357111945012180025507850614070693817926920441653714851109921253104021790645015869947774412856898600246017535814356740917338013735902006027707712038806023784418049933934873548424808933525702269256378282891723090179317012720277740517330670723997203856961143557716684365923759355134756800733815103233181992989981981722149970345109151847029108948827605407088248894732524320200769963590917896603432467920969762296082315398094238512793571589360502485679413360396117926671544169025150069928834500412045353863002952023190511787102625895473469706623665284439916263498365861314666885678450854777284128630444517721285534805097417920007374893127011115199983613711673453116042833529364029591419718582657115839123980188697009816507051761153330486812734921676606961447813324927679343881182327699368499159069516814747530778191709235803291361052874563848271084982929516591694703361042994668887939071789724175586209961868575740216236483045915470542683752594858454483844452843614634900383290786763720732921369206278584881132092683058965691704165764218904792653587245530336057258677569792913796180004769316326636600374390446954851365604994516642235312922302572094939815637328697197588405301132014764433702207700043338435674808733839000394600175411800171033578395236489120046227701724115221322748938628646797540667796647977496993618856943870495185441111972342293601689219580320642336568484927296753534285934960025403442366715969973067843714599307552486897241583828782431406727035246947094759684724054491884031403573466971324035783548923267266884786465811997783089260206399764626864970078002334190292501959388759410817782823960031695401847054667146557821736884616514172378903196322867024693793145922209638743193188056558372786352255886731054725672040882145694715790366708412645665809050268088487779376342605984095609135143502946314689431004982357652292692349986761658639478372980030208841676449328888680701588491811688122321594371282612677721402043237769010017239367724982855106687844871377492341407876281570867257339923851200331284205568696450566923841751717637367996352095933449454315621899814590082730213651672299353450584640244682462505630332756554975471948066144776256156713828174681193976872910326368248702260490274140390029711706241847244278593066505195758213283330649666964710103944855676892813581688682347988572153672050828596756606578734751755928238363672876372207850160036634318520501247971726763169772828154990869600383621555459774008832019910823927368499405512787849781721477261904737985112637103538187781379953026452512532266040994363595987098875586707014921871309758684052135004619289337460352761083491982702488837224912076133597424999426151663665352839838506356658919950203782353777653892170037748029881466390302702612290944243891208961255619924526708300798675355561522147023407662529305927489905954422656937396365453490476472463840367462324344508395203610686301229734600113020382745742425420524633102772440435279761082449966038583186109167151245328218446092649321778777522156920948312361776081574642859757687024920295357655792816554727041703476299225278923402797542458386220767251511866356707308622395440434766877851973233597402535379959372287386254903245565448772152405743408142693881173296643154217141052432773686917372608561262237281162190007877207995136184215407115631191242295275937033964996597729537510676032793796815339433398803761155075317318069106106049053020930305580542629071932847947074229484530474991526537455093296724227370378824991941618907812506892517365908956647833172427326221370756817321847199362261568112100666531676843434509220057270226846020383007390637639556590642528956894525547357802846725732002664174248275044928756443958063781756420273211201048618940482691913589775514038683712244937130581858500477815605800134600827126759438278735082311073635588790101778482743692765188001790916291817618135429671737011393957135072339786507151901388337601584176873251668078949628837978013492251876418384381191614697691655979629511490765148055634807846978993869939011204843328591667252204171826064606352404141128797214766162700343324747557480597826901781287148545439775684674540658344588596020779980463444307537372032560891796363367994257159635387135347994490550881386296379268628160849819389099406382340850628307599922496496931080407321878776228978339938456311068272738371780338103751329953555354569307790964488689004393676518961982566225194699257707744950501647567963091789249223691718596763369845791429278082327498187160336356078119163739292263740517205074359183822913017644981570477921759934352798547914654743697978347584853261614173459131620064098289788619475492718194128672803430654963096762295767946292214999932570303109378639652089683857981751405156382598479770083254948671077540502626315958856939483520496273922182825591741910602373542243480266665205715087691314654811491709346238862582690245556503760262946299688399493956695032764370718281682553439616998317020915874423032396635713446691902812734080725883498228816356956960532561852529387827316795026957279693300644863475539682036041557328392034873740141746799963105334226190372887340420661938147568889429026403690443927525537984942571926230773117743898869802332699355443736925248479188561289942706076704560384402278910424998433801493517921296348448959270308281099875953221728257101640403939292269654738570801679454773340049359509336288281083988126239114676741714541969373803668382262687133381004982656710561139382225035379883107996311212434976844392562594603135360373099689026776649756744852519466293310411728743356014364389457620976644969040536116837818513981292545559520818063339435615444322492590671137996903607296067510148437847495479498290831984591634880630184250068325500320984200325812233394382955555965945421919518385387677328191486177473160985345785367763744718459085527061652904311264213900642725049844679476139912564653863091707189720282557321326274627284422470009766744817228762481838917189336237912890011589477476969101659585057853851112272393727291274868728168452917525217975254976487270874175027072965603711303047824706356546579595599338882861931100280791062304635771840461119323456285982031187018600441228464029448080262770550300358317985279582871162748838230772175044310500385370671614889474171873727131069804394852394775799623045279919032704401196915180695596314431196540749025779667260938702703594619786581342187623995400003353295586727397349489676849867377454364392064894356348781017501907915081261717123860913006226663223748155507990630672758812285205506087342982814263013761834261932213003128413333473579929458779829579324192448580522277550453359536327725624252033939435921612144645442445326705049599604854188239016607705736103952547414385090190042035970644481141772156217704339216273883883809419123324922235270812959068989685967670608593792094181585779005553346601337698233698315518440297035137459649652899156626336782515840346560657371656374010845648755162714233348918008161565372662992860961583574798372765739650270559553008894454450702893523593631786557704307686662005478271409015887564858234982890695473887686064420535296605035429642491916500693524903133846382022898821490153425004990732691414519164609389715693431336124260781026740124799701131868892393151950935161365639676308691461744642229521958639998556440268273489215317954149693670474696607244682747042920350137729199356932283527005455548591979337583973990143922706329129760247140609873350515628051764573529586011454979069949650112279596411102746266521775155115669708537568480822072012066786543633166585521735678173135325219869545144438546813802015416880239438207726291813832388786860270643824762367365589787520231508199991364338626313077146453945198836919740779069215226798889007400555596288790901304387307205787334195654156198849029131151549111273539374957423001484955218281971861282173380456514192071059137065697357469143573662551455542146872657407000573748312775081028858185822466930999047289640012436879882501603076830560470202472820283548294908768665274488305015310173624277529462855133839139343445862292705098638383199436199359195244575725329875867381936571230515736037195502706149517128457557993784220232544815997060121131065451760919241258485166885220796224561553516699759475383185109780987630674734449777272485142017527693409991361702639036527827606711810784266470783676148659235146948372232007356416529301158165364548993143874698308290850320736733855187251480853499292437810949803607801517318251287313438576204515527300789615061431878593175172255654989286024010805815064829560479652717611042264227562423552412639423445690832687978218549675788949302582593244827426352325841588186386881550829298388664931048649533616111358656356018642399642581111578380452600645605913825158091238511585692390319417226059828801500031998280386005909237290063233637262001519046204687724711938643175748444701020048572245894850990575615843184255350644573866588960873928140111580855505893992502640048255850058015220791920461471322133052372818866310167014951495278968968822804959333803738662876702654295506807405351306960770844262963024080415947984682332128157388467897637620206231169318275830646304874961695709677888164662557410557634301361296140688778336713392838075085687996575338120972016036745945708375935827073649523813499156163424566794459119514534889099238666411136656304120835767992169582305385719328945817686634861974116276780255190367176037370324460299110298161155992868469259360425013379722901382834996217407589766672760667385711340365753919475065618019088520756523535881554267968286905915346202551236364044167283661596879162261113767392783514361091399406321689082825401906593673773938337175583383409830364245761748419948911009213362502115830395651446175787889079329627525218389391656192370216432760439044967050514496364943360529291091600291249426353659721196398162618868297542751779700872538362350459813540942986708798670532510793627697584026307133859306893248799920468453347371627226495231473045907471423956234635005444289976330823255200146681785092139229424189686657539077759586976535128760055723343795269420384352190789590683751921937689955507133798657377811495670286381055086638191789205929081789528074468412650183736409379020573955587783619557679578983405404282092700407273679181076624311702987554713577528206719138005633171619249351612909536757930000367177937589703225065101947051312758291412776012074363023444703597792282235618041631259051206078210116577698447816922034576175532983098780173470277212199500522738988403050090505389056843385043004949113119642429203040596647169461530966730717522189660767674712702843498804101161010996026686466062725958543130212181610207720287963615269800556925600543153504466748727654516871256508320215811770573715050308883926594918424453130065003478447244152123798395793369685397364180621037341669141072734836102984525853441258386223516807929866825585333525338514902654953544598631831707310622560900025009227731369540214053467080486413227266328432393421208874371537782645616811583238185603174878764389869452480004626865912900278399171975937025340245158099354384972309598953623221604507980827389113554587484088600015431074705489971727818579914616970462300617748931930377392922824467842978314932744241127858458143459716555001367415144351905217330140961838471069127121368674315320022152687476926731467285481337489595187397160426221615683618854885105047263363454523901534516984065871360164911135959605965743066519376304014962620963545001476698281920592877995492227345770170289727794654544037132535007279575156848243201222198429321228040508365035767553798028706561929889753202956326159521174079833548617921931896364015164287579478386334782560454400039831426278266703847521522528757834346434251099245870616627931497063931068025591810694032598739454683188075632598188050514467784554689410847987539331964710859522761738886399247797906481850487931806661041921504585673983535258502798935241900055260204240574092699622776884489598968660758266073902479883970794747131443975428924955673293582999215248770842030241110299993785411830846509553031944683014814134140381444353988561315114591304051144609829864354156189004697883736474422657892639745310330591657499215834413434436679594742622210766505927795893509716969266673705364284263030633735151728839344352667556467529430415376969886139109714375745749334537676483879388074932945627789781581762642542331648189850743458999123338299902796073915571321232427949204983985354722584102369317857783065942978398677126474697649221778990244594400671436487478189304693682171417535252874300412934311984703049369304635087176764541220031512246874288699647046800126439401972896591352125109918116375040409645183058981438569460297819343067030229655553479218654388704908635270678617336940023679113049511352387193673057070630059304907101424517149296246021631540154416735685904260990417420934097185937816503228775277410299722785167368109637349180604108296202555905531543616515889130651315898703304252243208299429124557996403939334977372781097773691413551121122373693796959947259008835722865619298170076441697852285546596273314763811605561148810668016924996045095511618177506405952468779840767926932086535543218040434632379467897926278024553919648060464709856377078510939918463283858874516111231658589053803895642222891193007025889311129915551066996901552769091662075890682696262739462761616419579083730555853337053719221316596558394368026491239135025295314852639265479604782134728137357530304719984986318019886901467602772147483369060731919942809858306651863181193447501503228996876830919386876967306255774974830420069354838281667310612645095663475044510248137370599532665401357849472904069270089462132245846841862898769747188164326139562085867407666061143708615463103783652195237467288245722447900312313277254247548198038508409331714763392058484849902904621353676730377212141819609666399868648764169426173189875498279347806253717036105953938556816343778358947621138113491101355463716615347006481570631017262204374241037560030936871981879305381719585034106999434797656824222543290273143284311512946313308401166380162709450763526427579430033315559825727440588910108893988184029516478595758179040501303262328198111965456185301556797506107138722606791437212602408470138083542336522556878867027734843920461622227552023734731083821311557561479940045778703915743202716407256683322005292796433865426551645263521241249731962009100561789562824227986290384794872901870206613833783103036982390028160256152662804175663670731758212665583025468283105613175433984459278391762290711465934629185875174617723728001723961039517993742224300903722165059040773624341627906404272569931951506309427358632677478987593702142996523652801136965094978441676897846588360720614351471188618613859254516733125082239858159710818889472093923655507169536825185410548028529908251474824084331239632397325904072770468212863085963193684326798380057102663486920205695292157084115476273205456681195786932563475002736469017760899770411897846748907163963191120922070016027254674194125552064995000447491322330115786291424214080831545365521875384270785036165134215846713096432777357158714224800759082382935586692752601976558417916830287119790749654149020513771155461855085005063305536223205066755540396966584933682465793773173360266127164151645524070053783079228257002978399359562643567197463165516249851152361006305697769484234622404150179741640487184253667512145250410050887620382618879091906347817975319905002495588248814059231800184590250815279877201678437586499255165241809855030650700656575163983491250854478121329095572060160277317655458316046058314526745464678006038336868296910227604473308061713888882727047185975531603206782610262663678190753333563207426105020008278209273909344097360882536552954929007493484816709031078858185430239169476379031463002718293117694089747960768929544287781926615981719017068887371551796536169883683785364258751338848335341823747502924001513903418225162311023522676528409835925625889717113682295556733841043032753268341761810833429371584492818037655086508853446368110242121739568668496726283038379329031817014307205939348916429908581916580412242192976253604252336395350562959893040928469585939772233773751374381832812543848971836433577919630264420130151436109327379641039677509894147838101592192473954292513511043444978634424864600443447358407022489258416486512173890645505167907490594766703169689875762460745771766495030484172027839040043030315239496148321432821509693851029052932374892974275294568887375232833254476210446923833778906099495401490906429919034840596199572066891048119397790991131934426302873598987426664676894620487898686119325355512992751039090497299356434675031676001466996130924856941573658362495750610409071922241884392996509504258104153159910891374965313197315799902275278861410000874234488617459520143286056310557392587383779003332858863710222687367479580366535446024428402647000540282788862663625444515330732354585343466883529073547964532802727335130990014526789819447241396117359328452240199311321551777283784600125022739416980401131015138174291076979213056270423994021472392067433862983532683200834045066030053236352406194354021536475742681527211074140552495194860149432605284969097718600651855317666737566042564210941981456200913191014948838895774731359306788419864202980408890099891201512902904317669272566948113912742953737735156299123803618337322233451772777019325156038950269424511185240000401965414891083783148587882247070494459090301727553428726449324578945213525704292855261015723134441568462787887053007278514921370361760073442987407606711985803158462679878010499068430318441363287602756175511420314239330832065731772054579958979926521169150948405031618478629165551207813668242596609905125996297896326692020980641722637826522637636835760780342339490104876309336235143035220184943260231785544277635405290998617258565001996311062591169992253409296209503150530655173772190235270838140617505347002593037160973678981822806827542997167928641271563004983769410204737995346580790653461091787300602565581888632758221440426685882029642622129079624227585365806283493654692931535460937143128934670281184397342498309219626874688305606184857435656626772974824290904860343489731425329363593979656865238526170738679060022388743771660679939157364803029657890641450659554448102591046663163313559609133060036140647465086478946597170641067991847301861732836718277414040835115361070835140057758853066077774373802216224160088003872038375937159444475446629701650900060937577296890465752426499467876908099959754562739515292745395995047427901577993382637967908454611179900940650170237843541108532198799907767322289726967423403623910111664783700071744568153215492429705044251832277294592840344600024384085241454219357501650716979827302832508013827224756414750595377974761211562146084131220938530181095028424289555537809457039943154301408067105110131625287091466746115638227816765313911373934243212989218019987697499312848328761377319259821538060860847424278111824570468514443666140187619362104058595546249481340944430898955807427705853809367826442651053630732333901396082491474600351385619389557720638258320191759321464258526542162734410165626409916688622810512278299708465806826955621368215468402998910738978198218443249911595576034942854531922283745124146946881640350148248305220200508453732257686673928325081644100308115867018983852229690646750312970121717064455804297805735562376717506858203924618884386508143335639597195077280353433015084799325328841857962613822865051708335854696944727445343952344652103670015279983167887859423193058167594514961780698076922337080369996681552412749341086871734418879958653267369220053543491050700962843326404301673226395166104896509638059781264652426367722006484444939518986307190940197720892945403295025836375621561882026254259959883149226007471048699353381880577451511546332598482948100640247186612768563390981004153683418238200293966145405701823525809628500624857486029184815064689961299506295570273162488982471672542122294729650046547522887669239825078040069822496805061266307711819985644243158225267402720556232877211317268728831464579876757570574972330539522214327372843727990802527690522951435042313612683242780704880923073820995414201085344338282414900799129919415100540549593177569582735450972668913583602414609665127557803480087183778728060477935559372996393653013702788736467583351312282889505180376968845291038350601962044813469026469930033804132342515313818106181985311193316863630565139232164177286646058537525868048941305272106671347224513287965335709735634398099900928412526539435035369718777374118732441541562209838259952817392420425538469669713635398213144360251052257639273886995794457821135409696266970528954728855319078367680523560167690691696495555035894256338564556572388450610621246063328375990314254596461748123788835327740550937899786774935042174179526896971812179950475993569049219914963095499108730444117717983287524547513000626121018441830172791840132879812959360928996602625850233223258958501497651553548512412743834117937636309702669789399269559149503160557052086681344826462262207997092844260888933052561869137258177030950374450169302645136407326706371323006105936028707720514416698252236582885530703051276369845539511057468876757125101012003898163595549673353960236597026228391053039995737573333018278300741993065055698555276171477114139796208918556827794810263917779016406879464772901253633946280954259255102593369745208379098330511382153937162531664907810326009592854383893038255465871791483592369149270700949545897138443769644904018630660191885426881860325563129038293562763427598211890597304391438933793903836731530283550166096700729735503506322561677895349963832420928586152720732859995977327131300095715820032364843242466895185605802227747092151543019169228466595636222927186945230960357967023323410253771865313675959285554251939523631175376565968882947573296060037792382265375933549123459599941914516130810004785223047943664816796041973208324467225160992901445162549710603610530136023926444892800976441368033499220377014224987630220286833444407971067799859797599024266291467567655420212021868743577928684418038850126168189467252175467695204449728518245614614270310764384071283210411824789624697912749357749773462706871913194986067233018518665399761845370387373355889588954783771035319018981672315424751708460390077405427827097629806432179918005745394847574094308984748936642666814932063452331796015739100730622040493941738287647973039235476492598477165192194795503071488917324551225573899249800913791834344139655583388094039493689041568706686749635438757109434700487736964305221336891991528075206855122164125037726272305546165555340151783140226357078126384023334196163250738216847098619497919880696730152978796225563085186355512124252361610084473797926782131100297147130384167925131594522221810153465727903610062175273858203452501725059095146435067452153505271047347002140291757060789763878968261086665108236899191625395796634894218256360328863649119119064167027951238451967505463820211142373500671601848943944040519445246993356920470011735117192721769503360683233669180562120031212188908336107163318757274695313552204996397700243403861209172788821914127901757459091261199588878443019009500438482999524228385885519982776254909550822145895384865780985780960160347867453924769316438245754985514137119410427541231033808729383954609167785433128016972764023873842359680088788367156923582179781462440329815792263883187895874165230779447732993239362976868655110593205041519885989157728179935394129367332978844504054059105871274652078681587631116975209630125855415948542895120755159981870227035207792884648025260270678133857895322391831557208653856795066192108053329366446679681188373139047605390438967953432943902697620561225458994094709490007072394908294774871191911536623397339604964991363360105372934797114281703053977668099030075080345451625451480175384702073028153566216627449833957378822682577921786011429919399091937349068766393114164607208746960071844219841399232800476056962511953335208327343211413969362892193770143098882483252855335182329843686877513635766997740015095793018144607525443989424447270116175901498449723582513683479305467317807804382803972057382097661471470035179953475937732001635143030581943737949341048122158209091135829057650290775903655851725973394207628628038271422985770076476555977084314729762720379637554455151703288161728810221142150215182413250024108328009433766701886549769917378567566832611335677687796840323284656522515407931618107375430016274898845455273233358089138083019889915621238528855651158407701810052141640301758346904122135059648475779559732315808848531104549835867260081280856811084830842512059953471084563533533703463291064667102907725753458192754602514985458849236473062247616223168030107753545700602473777293014173182847675869019909092296958908287922552670847691051981850688998018324580600411995256542917270540673937323381250841110721721798327156439352134003078055971374004630678198064273234331130436127605785813544147453504994120486261236574288643155462237252319799406600764955509913525550442077647679575191066641155619006357449056989219135420477610808389665180118564758323358253296644488730516852955890398494289863845848386578689092845976674037311793741517369238403320873442846832805200407083951992171303472366371608914953932058323776168167611620448079529894866346163427335395100031864189795598343743826924417777285888603100277684799765007682844794536693821636979104580813012466930726759443803275694887580422568496272380048453290719549462079630919207918263087589067985967532679347066901605732874211419121940947187736230379725413015793841769704208537173184856238841675723917118160380546968161663425771738234644512993818175187892250508961413404399199241443964026972664306596195647135430086240772582796101256646710599483581451368944168669383023478259470174157733505018822147939032269509535578663040150973094600044310575276617464701667567630426753285877790336417114480126673183419048023950755192784804597241510760521442613127278313233742428202912601318149028782262776710639482645830221944203057441149398888157235094570453843122204467335109587810461257928506652482956560235219090884389380961773299488733862899929288124061209009577820981771771149322884030947352139464230918428750557029576404451282527116254289824041831230894725134210456578995297448755157275914462166205544262102860874097630118825357408155230177900495323558071163695036427706464982670626319186803416482179711918138563521348550547624848073897602706946720825400208538605625866766472775344930390173663140516655016348709283894141835860450237313636512257267989739204268872948932771391555178566940820208278502441980307711016389809511998568068469782191143882494761062590612340260396001844226247733834581208321073379687550674031963082828682799899653924332534613151031554393795924190990844886076924978536334323591682634601236780567290532006121005383349866573887518957947766793017563753189692159527970105900626545830156560369847509068747778696245048827476005219272976775933017892446820731575876176023684199407197117090467821885002705743676509472845179607247933122757436904377161252374851504424841921338428421802898826150541805015741882010604353620680712829212555519138586270555764047025745676221004147581949840770506745582617899045656004337032739905399974759412857761249015571665501382568168126798221539288343832387088779029695072364485720565277384465793497350399210834794032848540108100674808395254774761427425077970151830828797739490052185671183505426355130179120216294818310001972070329733971604518801033285767397793486884146122377178013189243974436605538487028526967571600212311871397592726773568484529531950381546096581741684088894588668731402209648338282225002045732321608992938202855367134149009422043747188253215485813793958875484430900872865060035708561155301730169477060416520059288743916048694639247364005192954884878391002598893380961661171135507753851614143506735157924628406284437824128925761023218559607986333184834221092701845168638608273837813123210327359103299420256988097762890236586951327067640874063557692650492314195832752894729192259722463637154517355204044818784731737592379025313081651187511052434312151190392473357555495120926751103188906419091843678834355584387070211971073226090008479952235525359029264681805871357556300581505819062044427077489855717401472338905669887347387122209045833450936957508612915625371740818682706079993404148265370204159997845565259352555191853961631559931882284631922369961132647429174614380179673059263451769351574493065196183212707102763693924787296639711844872436893598782347201767068275264743216071585469339077441551828972667291359453173382187253316922554298967298926759046488738523146413386304445286282698442286071666712337263813105791573979819917467686226952686036830891339750715408394109203556846368688984095217916899810610139486876010083201998208295824958061981684332072855573021476279440575438472547868560799539494793569600777674802253674323167066949539284014921549872796867410894569877836640013286490886249687316252563684818703340813101933844971908413835435437492607741052987316459604104633316934604159517510009095350668658206367900554915764899416059736563208956066361931949987673436818743995746292383938397810320759506714925688252685085436210950521891379175859873177551443049283774907995783336594335267018912159345606001963581182625729776461372951770239359650485982798620528962932793667133620384769942371891562596919909397257182714526575824663453027990370803551997797551853148984354255082255611335805810544894650332658435304639938367093637814652044760426697244591330581081121854405961972472303363663890635636400557393397576473647914764697170963304578052009597923267476552934725761058263976067129237210680857862594458065548934559079313911622495893728047248569372481522998583424525894363615151239541364779730977977743311462264644484220969135324276327171693388942514357980168490138401986340226786247079244561704620890622400300673262756685879177964837481724502756833773937426992943411012463503659329750931424576947896958442725370731167497665294423627823100239060394758250371396717901594281159348051220778004368101883896550567024298918379896856956199826581674192272248089287923037424662691825693309561910366958246236875215958703496002603237208501989631208862904883744270236049725665309187683079409570203835344305166298943141830647683865309610481029294368117783011417077627950636523783843152707635679280416085299550633162166072093317123273664964407588125780849090355089837101942176517672792916531409613018270557696637980557177801775275647413143571324169707590329687211592124215071898578296851740297420250783660637282693571284287127256930141997087825088708751139980480503721617708921404849566089025938549612139930612202061545269841846912767746968832841720839219143944091314641782458150604000212347916813421016549169035972233762674526763975895003296998414712024551093259874245495891591615533770746873684899044822941219496617008612051949014342562717523722140660627157741955578366876602351899140978394291189176162006239450531209836818410096304484420273853625800387173328362001219214528556145118999036667908047981213251295506307379938070719717600592250649680447976481349781835682976005636114835853059565872843088554986867443335957006311687890888996097209414434426298317952021106606279310192383929156556286205638634633246350432360201746151443020129475682298957323144362307544437707916668052203314355142491921553113031474280784146891446797662635991680124406322657889978588686643947218950456608358264560255387790583706057034013709162961731601145668395796703409511547012380767197832010375276889351407127124287640487863755802095935870886958107643541420843733165548541908065113826480526324174340990096174474685097259077734520188589106170123090177361463635414549965929035766290848902675995216047064547696755796626699232335942643985213577247491351190278339558243135895013685397344303883068080060298672183682374670155222477922789863905185116692256889506846162492009632689826365861302813037411249268868377658949871753454838868897289463291201683337793283890429118433613691487669851735437453802884015836879636738885787123478698443805731028035184167992636856819070785167384768996995000084132599452764011131547164284802513937464305950187049583709718789687089455570342997662903880934388307892245936639700051270245934402774060779929366736023921056847933435208530660467561696673423875749380414786663319142168294199174399908593658083722031189472685955187148510624465052775062724142532188011507971420544623679356401136544916620251906922162807346696621977666033806523803018096085472692146309700170017056240779263721589746499375651212312023259465427504109763442982720640247248241068829398658693570449975516212433361457006619383312282535258075752078645768661876188078969457715830902797753739281312158278904652285223930836061446299583575423601628091123310893384443728735666185011184620445810419557648916662384373001687799782805324970940492792068308915057116672683093316135475468811292973222393944162109256492910832135673316611248989406952370418960780434884298457272922864931441054346032095152257563292882361114943509960101977443592676552823933490644398384738302997635827678903514569960897218640044478600108891199345784486761511889900772538023726107727534617530804185285892401577507977466515826019876988555684796362613775715962535296150555050547060966326095685682862366672011587448618859942037397826224265525883215343063593259024590796184625724970970160256980072660259661483730364054559139685877992356833461904872462344162562435218060999500173467976925915516921249343978043360554415103484119248329151620444194693966315765843773658665754191000139354118375440243702800613235059705573602647254889225657653310310997297035145608861400272017501630165287928767225552476379771490102903804354472889467994352188185889199567478450615954546156090523800355497844512406744300579248720101545372206270859735250672994477327845962091118519652834018435426935869682112675053630288725336461248156318876166634243375062135909303829912078473417698755075004328658187412192550954538239305557506339763776239836487035824971121939689024565127566479622626478003490655456076870657210895361709466347840089228860281325021369674395988407406176147481722914110853984373364843751099659515213733317697601565911032902211798142729553888398111706616515749370926772120803251516473388135659872639222281411503839986561696450130991948957253692426402744574499807951903991602135245731771102137634870628612301051128653848624164688160909130486024407998774551870573830405185958902756431722167125377713843709067521620537437226700437719211296190726492503778025234921460056554970029964747390834573416405862118012738337365776909533206878757774111382099413773093505431281733970448547212185779490012341446315778685569099064243062670719742325936240815930624157117238045400598127167170350908644521785587210142092985394025796155742737595933245710179983765072500761429127229020024921975863107009257380015555357994509183362911495983566770459924412977286881866205463213828392394557989944862640189575721695012960028334202763618996651390240573294189709010762942922758180353371304029463652560684748994488537516339236836424422274562347263268897484684124538255176125447526617749130499556916549506464706140941975416221171908954638614153362129603072251260596170660846479747957092020102927485366039529170355971855979834802410178594722956907401738020147251849619796687515472292328934660685520925954539453814694613430484602682170335704516919609235305655967631562610601785890824146660155411013796977356681367272404791095165804417606074417232555448538275745807676498620520481255486238361144242736472743448665598803669941482434830829645369508963428563768642998954617032904637280856384304894510786729722101855812144281450040527607044969566419957971032742297596712468187075542612011982979467339253854012817825769752656665231757726811194047783081092631316567122563005228330249002153320347467602504661365455993217779538038003600941241594953323327048463007977011932221587245431690859619961316850685149101978420686192578420410001432432978066060992545237349610768767728138415274065816750300782252443760065055091150899417564523569899681102201031567840048953603794025310749421763293336607379127275235760773651026572400631986000648744155112775194969412387891470078673030860043089804302373266607869645798851615661714055725933724442764332598513981513025672882054657084880118485316672387242364872705031499592016885744283115396971702445010670041845805107458373492506834462552535944896246281786910733980037234115503241705443121269887556006887497505492711322493755141120332051158873088387966979113139052632612962534564494215315558167818898061432400631881626475504761721363323657732402822998796826642387966768664383453582147094114165662837499243298018027958170641611384397135155062029344485678517533571625779444497659227016189019413551547771818434062304634919528472228793463627835191923453453798705897229116810039841267301994573134305487905755131467945699760550501898342353035973484428143719120921060165532717853490581477658342431354493119053401274941688127706666878443261766631392369722149380087399533144014564780778071571354869182740746780256037559016324285879812817778383736838571984154458616061652101618393801194507737469667488804480950350053584182492522134686268777850045085792829848210966034337845881434393515597902815964498320279165312500425585688383425674346264899133283785115648498031863599651395187136340934131640089708377065218510050785587533378115850830210211367010087640291042138561508910413875503315674319562926324857219307624322856013559654098347213992846437381093508417697486137919298294251538965217591692136933750992299382021521276367463729697529444691964384305192052759289775851275238040694315543208342662205208373054994923600299004035783812663013794620339094939453205905364902505393182270316463171068384756475789312773117508899261921576161032332262416030537455178674983580965494946918671263183997172836914963929085413662431053095573838230118267738656350271474502282205416568237657235087980303949773486056449246134802793465967294088369590164353619375228649495341083738140184972355078541035128719712077973363352848435530910686329457462099150391898208009774439447372616601414507209722318295887138575658795521152090071824648036187118543962174877490051407830839988542591358302550656571737627599231357400564164465955988847816206556789118280438003279547164873924687764955338677989907603409832828714227857801655278877507129524541325726266837039718012647662638086165548363628511086993130997350893436580877387980148746814798109465906941993896507072494148067216285910074510302324318533944626859565660109236367169645163306433279804557424306205269523371310468305354723782640033876541212624046279221618854677326593765257495764776047134276675901206379311819326997820914471709880714033706617557230328049279892865680063455625399782312190227833679990034528899668801835378864757676858930460540762472503480677768506986576609090304273645637447007907415082955652978814948413068561760566110671687334972308632044981696399587866608447464189975602157813091207459854390206166229723300404186242038948486164509185083775155503981823689024742038495993574333490708678777553797756515622047371386934525562191766980904626968283135742728186616959727274578991120043308298467826084898713822159548380205118113910426360462798953756353518420920692667810681416389104227759799217055805424780415893808194401548503270493894317335874533597552471789683669248834012640488630120660780139685759750102441983846626673227894027258666202120830094247697501174053625354064276237969349370523379780448507091932085801715576023431231735829187083089610718358859446614564697876811169094169774834660510417425219948127522737318647216124004342189773146793210939984747132470435161643456460984918600174044863426133444110672176177052777594834896361963847024432248352416760915313105317309521646025000001035776292423219221139652984624703662400891416739825018729115957749692759921828707253500247777609923340601218239349555468901864954982424061521916271938148946959849811650834073938177876722362191955826349319954789731612577476218237470152417594052256517890706607199660195566444510926084707190984554905813468044179691369571222569705534356921305791017778674864558865131364331682930413846573030237674634393204412003266281616924704918895790193788784799368367074901095301466410759296269073256654893953799528978725887101450679783704733358816374055278107349401673885836711098459228591878384083727249508034270248523482087768839729202782731676119902332747838082307659456636758567019116120304535475843036075350108660946461213344121674552925921384998775140860611226499544089334160387366462630258544646159100589045715137670838574962257931056967109111297202997038850267297963754578006686797265593492503439345950838419345365988526615708659749060490499764193999053350265971058402538433470023287593739733598303225504212366872499173225848482860619662354875585101700031793109487566304480498788577603078127275547124221404754599454449326210620705688043853723018214455821418136439983675807334403597798186720361390306753624948405048907543579905378758652631346059303099316843092186796163873702561159799675517258916936817845316509726249400112316265822466694885287928873491583786737814430716378381682331554154073200822302932559952565546950206255789026284802431112686306986722691386355819569187312209272621206156174033356858500735613658180424342348961322780087643603083497537577590611677908493900278346322454492673289266133811319266468134403890441266318417557318743017314494066257910243718890047839771996641565579504223876120512755619726986456910304557480334494115894719222520483854893077256031528041130714534867554173018938524690018823811234391407278904472947522488911882333561148996545725072833275358181484059304272469236033609835253168761380772239867485963977799294589675890674193996062925478028511193193504910473921691497553176224463614626323233923075821796606080709210404585525107833271299441960122776417473090642742556191039756364533386460304548912281187323238458101775778619923950130900929285407274348208948850138400941204540235175185688379312125752528316894111473862650668999798926402278397324277383729606077964443069668945073531018673426285180341811514888859350555254350992399130848990707157067224696701292646794644952877248848558430611383770600043471618795686362068657310516279838948534988413929173384875017246481463570561962135364870748020843789041725629640053736660714402573776770845401833596588809325080321218328395680956851045764578178981841329381208987676523763976854989426841717261208764999826243347690693673659224644038225933368934365041867143682461180721594543385418548551671122870480535501765442011681427805332932813400096676310025297626271437853847945686111563135751400241155358688144602127811164947325930661702770794110397211967836139560606573693028061199877320188001125575074474080307620832268296954950458745029777272400828375850303784012445579359302591583805751860052196806673587819164773780404169529169168255099443894573394732494336515696124395195330904101017710053876293327967691084515284094990340637174188123302582511646203692990262073674225663490314026177419288724601838601053846660867567153573415264082602843366433374686688230114020231002266826065258395316591281674668518334559206726429768303909380912526825022718875617303029331126325037529925639222080476434194277427822840559936963288208890208939280860622235071833544672592913293261025757252981901509208941726655698895347686129356874309521006728052473944713158634700960658037486910600427359951204993099944902056430073333290295930579049037937393519047109563708377232987643720534083666789603656341787460092416345915167649099236539373604251364351745297235246590904881672838256549083786165682946630747455586398640885743603223927033062814680108491261709026365233827067909328604004621155417723633901010835937999064483452932302348485482803453900645873729350758842874826236936870901836170379302355658655843532280504301697763234312941882091711223572263076512067951063326246150899664371209046255556645705124925467347323484510997390511124830350571571701074382468311880013835291621088511228948758963883067920160546485589863674116015225272869472272369719157331194842601525971034997274172596173624186446559018175099511618851333563218319279807858134863687580784681384109876489732697690166145852165705304421296849889523748719673409883703593251832583191176710356429918765074965493645546545383585762873090696310596194443481603640292977780110915498336560868917979557472987044020660310996645328412117848749348303403404913299418084364890705958642869699913610634309726329643293151590729567351159300390297826651938265428617291094277092503606955755351030585429026473908454552566576866476190797784917961439249931119970170242606137666091282371321086850937131968541946613155091925543839421899477789427381760101640811456969768734561506937615912565428084338581365881756361054234467441730583540586683693494950227173408114510718542445025620998114917508650640064197477501060846300232480049490338605867190353016795989247709029907905567836637179647534646038497262256279283835688473491501270875349164033699479833969426804817770215567010900559358737603432739652945082494709258135779252356884616360662188008848107389399463695990595589049972318709477275794981026673098937335474976577953026412566152901481440098385351856082123441491441834158116161430006136165518126488196874098865556901616877486923352323216349184443664107369674025684519178652753080383991319365814575977889898228087195038059909879163089264626313097392786628773895613958377959297375684744083764423531868030910403315156220454469639515706451685666972412850047343408976373050163561203767972990640452501908549871387223481651711072777988414367571059357064240181758440170820845361785398217799443087553691322868553993737245964507049093643906477698126211850453500712829283528907815482839038794174762111480145487551737732288690846156504858584867252022192150861715324473977119148570937191968736312342798828745582935830904303988637053392076026279874585730118016039751636782349421110126616903936514393652742422287342031770834624060274352345510304454016019971087638140185290317978016195964290121456021384043608558328518665976519151404278343286918925329872560175952836204771229404507582597215789290289054235689955879816314241912221930487082221188213477801986977771206384113500309785282069468531889475646619162559940759570032088182512942486452171767171455246815332310646825635455843726080775778076321784750508721393764731355722558255499014454080875710166537065723241140035630080876335433906540009266883163482980335380655569453000775665037019254018555568371992657756081964882683444106786859286390542472853970984852374217919338321452673283290135513757491212886814260430358319888899375510385631020247048880439734395535724476725059311851387152720321212012887989863832573459029063413322458930789929421273654717802695466560574937518602175978144873976646008004717885509566149043571030343658993748948291467230428926450056225853022333646091404422546152221538738653320062811894888164565659769951966137708387590662383142416472020208647479431091042302177582332740934819490028046419211729366106798461378098927614744495709589860735643866673510747018322019575120399031891571146280266881375186847814090343583366482934727158852652042473259804566281463090133384256987198082744080751187294029244930321448510250140223929332114598588661060182282219546468744072786498340709870223728996305486568917690428799837264979842924280091029339072118764671452386794159325162465884753400358418440326741545698882672617255079793451081072815528854750348696211745144929086852688128138261920139235961084919675578349689643370165211053191380578976243374140995764446730532267839906373194274311693886253395907145905980126990686081503418151939984705595073530503559401639324193579866128231350018799114694745504502361249462770437147303833521942750623692259220131470783780013760579519005885576242251126735401839180828536959239296150307743264532493660194924150065718926971016570388110473753183251687369715979710656718772681207723481860038765675823633292340677653804933914237055058311592123446558382460719756709112242470869326371351062977531108139914449173909267204173132159180825296303238517247536728813215541179525314249304523322952068310637863205797769202545468941720703213377254571434530995412795245169053281903057677243764790356883861566912464697810032854554720968357915273641300896905691533395540902132464290696651534627384781452211351669935222411179961580232315618409020348966217872525579408624236539604517097837846724119832227427025547510311010374587563672179998505999553935934918775035512662151969042586419316740848814899451649301361126591425892502601049613102891358297790117823897230074075223961808066955065056190085647970775737695219272544626431013878591320727796252303058889989038530900533158912609324160433444550494144611077329204475815569818155020244767317418249379736756615516727598485273924014358533370813992724620218711687412403575687571938725839162764066870433146090774210031438574465968782053449531372114866892242827638617524926172499657429995468386337278991187168365242193691083524002587439236771646867015684903478557551832590906084517277517124633421925372068233396493134891029873001166907145172826313899251568666598182615232538234353004248946713954128725134235127459333181658942353726751771842148731209389046794224997825884235274280634369447917727484549051841681253652452553762032862509540213568599055039995597984880849508407893447596523662150433419794685490982584276935545659557735365867682120910052430617863589883915984939902729101420508943323263744016567270820424944285691682969764402145308887745195735853583670301887897131552705983344208669080886894182894155138850580744725343795353802882038981688094077105279889984326870839363894977479486727303879850744892303634747925104613414974443350035086934932282606138931363431420951099160183160714321841877463877066542460204528336115137149870712786795791557102155771662070288419136703407649441769635328845774451478037365117397045966163062066998908841929842265112705922721020615345955016562094111541365585640293644472843357010199130327186166443317988561635195653943465405644446735074025977129521877403870321440190039442088520620151433176934663590179944286804357091866387111801914871475770801306974456608491265191842851005193257722663444891328291337114911406158351466178532620859346609217052049778814790486772497954983039563786569837923017594790900095681532419197458923473455016822693613414130628158463519845574360471391005351093357965133800791410361331722416765232047721882987746763470434640212937573511353520313939048666550128411249619490568276395854409934306178203028218132354593269631753807476855379450772106492234587883768948367717145437722264370182358673165483175991447317521957189118904206330481168205564915522529927554879458334589952687289763339425331344758703965450200995793335389874207936720306962863144990219117450618561308149073423818171537262572509887599943648906715348499714721136423744778945062623740685907137217747470995953928674431419206391617780649674011423304676068922106642397313709459999406819965098040056719897736391268299530484616022967814996219203076551591508232169814722126330865509280474210161741261931112727038402750155430099951361569662128552098451698754829231161768046512534883364209639071380848820468995745278897725205254984170009463981265396668026558547738819223863270130235846051747336314064379808202684459585717212928787004766629857546557667846844320485064720490889852830324143845258315488814785145445022847929334572799712822334716633068211589685875586719452935719000042155308452204076252512149336796256544891511710119686512260218449556121768823950039978312506874626939657395085807509014763669234124367351657729716622220500570975736412450660615683459457504454895012363870578188638345185748990550920752543736354993603753079570129486913358966443842172592275839804581308473034526928280049709299681222031330157358325328521195677612778390603610658918925796196974567343146600150861264225299092953401041454759225539534312170034761039871451768291803348734978341403335047447514841467311216017799495508783982578576466283287314079435763753309324602227752307293458793377534399622496747458809933574956802636320384457785584783118154495380560562409419559291083228573645909305105511299017490612178729903577050509348109246627677610209003954585808413507547551206827102749310175891216951718489985566276768477646702661496614919004681866050405630440700822604367110701954964603397579222942289570895136899684888152575715990023912655670781124659554995167519609641130353544115962847262169790351222901130987492490093629626676269879814031227447008534865666245232200263916135438674815265178230132282474401275531661748532039381933794283902992118106196901859453274138932882585857738343397155675662535334928097964639816939555967366751091035572771716434708332284103289832383256838241372927595047757339389511048782947979577967339398710921853430920349555045928063825157247018526300009447117098563913957711397875757241245585979695372409270422721912043387778156278066790899057173378708140231794059016923467848149035093298150387107946772271090396887905804308855747780217902190060491527462332725478771818486567533156355924669995225465950691819854879968794754160062668292378162127420522997079350142725611042776865547184085296575615252723136002046509841314256524414650328033815317727703412753635909989671613494970373647696542439494283435091368141805006279476451881454965620893714391327893994220499441269289851259824994275707200372281765948798166367617851803488100922206922110156018006215871320030363143934878192371129785429232313598850567951599411234973031543572053066646102294711347004791394302275947893860326752108258717431343312374320022942315259549313667561462772305996990801256138719951975259355987212046174290417008866819351758338420467072725532252244266234103271315613390596497856754631280349583439018458292347333136793595940658085903200068445064598401756232311056286311044295862126944297177852262208754062402294056669823320299355468846500751502647336371817683986430629382544994422622556480570949497161257090802305067013164415069315784655928811938668798968335695295812979775644221113615006166338354502221283069207500565640009257734541865030806856830108264316350310709562240776635090658845152942430744137876270265832328408755631049316019797904934107822846912274631630874909752351725715133884085593925926419430015362734364885089347102592927235533947716638465864690212765261842053748318780461618925698348463115391477760944307711124160992754101446999164105201258592474767471492408852889639404145637657769845557696520301050713356686728751955580546867942606979073749645401503978177286184452749986229777254669266293989515251716958622849675355802396531071849968536340635620396397702409876309952569801446902850820306366035829683445304343449611127857098840603193295084934772748927323007849277269837388215334239952915235433256632082936628353747785332005083537699814421670728187582988561894454195324374177367066958331082140849095891561112174645250323792942593848512799044012156276742099782445442884922860599708774376219934925442154048830208171929875547213685068593245582305631963185184246814335358176984007307460470438993298192176827460907236442245637808124711243308708138301127639208217301544640865257970095992822101691471742760195377069168385671984677526850450430828599365346405352208117508845338278930442144989382964186486489589053971110003405911216298997378232281327968915163904007079619153083917583248574116184387801766462273862694097236828153895999599365285469521605004937904648250640671964133481249246404435861214834440522965519843448263743552797044269865143630536970003742832724209239022939787530851253476464909057528055460268606960934472556079057662022323424167813160998629298049075528495089776951851766093879615823842673123790804032394118083563376799064592291709413491091022709248249027632180155482738636252230227387703808184381708563923025150828738445273176551856472149395401977527211677668615791158864431487989158034600499638470374638207975465706036465393463581450920366600750144890906612562735342734025553377641699651571264243011643615339284444327158061745423881742861714620123785141976617124396762577878601565382249788511572630790924054410739226925267518584392462259628869593354786475603080771617702509396631855783886842125333145435337707995169354373349109576215567635991804391805583533813264591334751230425733354894942370882268768439483786816477554837001444814101997328636469745874998546573575643896355166024570719654755545887934748503896094300497670486978384991123902613155750456233461604095371100222822330637174919248379299184583823355714569400477101188091332946802452984118625615292180355253533101052860491970465479587540050499586993088193497060225020451657913147129861633695673812613724023666196726086163370257700669308742439283316599752365336658497640666667594883204771071245258223965596799696458937257606099324371852861209396276460008664356772757221246990995953823059511867254195025151665942275958628193581912614044510675757057750641339019993257099382462057263590385784193629109192554743108753780312853162888184570727274106218008115643734583794169581947389086858481080063174347767910150109805197741107929293882567184069674816120913030289588086115468927694426162196562789026723794887186401294301435461514015547670190529145383036063355194934238092949118924837443140666515585238215898870897158028631287237862753863107271498747640047879811382090674704744278178754910116507675917426041490340932233631709114227207323376133028594054221819223689178058380921046475211685329318747160258099272226799126659293404026855797073106941521852577208986415301849821496345966249964176163810319683747203495755070918860206351420257854892013453770299680905105576001907697493341196749532948728459141410317581247696192003757037403733983413293589315307421454533862693020903905167409935171373634268479266212543876481103448824587854094263713995757288316673296629229019282682912788244637351362046753072681479312664162975464444695540523428445241467503950263142685758900644946735751609555625949168397137614982344435221054228887913994497951709445984129635695393069485294750278708994254632635853649660293618807314432177314215201732407580577824542923349471004755031323833594570331259108396363270152069112315208339916606807836109896019782435517837316446243035718448718441612410174267629833245252900218527671886223344915049637638579131752388413948781517001032423835831586861557618953728564262727703601465762133822903983420762257782579545741610556990166718696636742336371312098961590659216126194651352568704286164713533394131668420158384208098443644286294528778157932505384491307248587502951340415989880321119938711741833402698591337239394319499557465475525016125415143349460210763582601017854799434454104136927513372092796877806066515344202791442285727861681261534109137945206900828794736455895578926196048111889805620448228934185069773482186577331939398240620356280621675879347879010116482053937398086242568609752698704300316222430121123500045859317040279911828139393232578710159433602441720575519763119060393243429382774784026983613080423520826289458986347424347439643424703226103290225323915274935522531052931690334970632436915104348175723749871464042722392901812691723749476163845910327557099520994002752297271284231771074489938761051595614468356436511072224204140350406207946073792758526798489500115360057656561241704089568677766330274554633314394327325896106477454064470361657331660169409466471313474658948516696110908297453121656000578932221426211118638559632598283651955327467380488641971595206621851017515140555519945456250611293776798571874410823267233977098381929120968871864346625824450403629645555543632548176842855881922176701477087276080279804182766601207800364291034929273451812433173410631016147019526727960413784588440911027030185095406338666823557320679739521073412861831335237547781069623270498299592874904490620894965310080015699458362083469433932260649165818975545986576496207202802873101930921163969952580994529585578336767168765217240647358380182366810833550701381709475319407546622991652773026244361880735769814607411549665779163060902318957457910986180079687970408604005998317371259054286489992853819130970606399305092891876230352796702452133512949296968017699061427787653151029111352219885746441615414272640144750680090967517536110429140135587921169779928191740993682196422204528292612994605705202681691923977378070566998229946726364295449062606169495966450014756948090477969210971527635553266708009368466808742827318260004131831835463068804072458469778783165340451669210733784207971023381133042636171192170816786508820166353962828994517436270131368989841349490328221027596376654111062437680525663877116819305611482134797524550495077768600752226591279670589145008362331349510877791101994124859575645633144767753146338120591906638462529387196323594602599514008485007932954603692290983375020124570497378663952292475436540940097628887617321027400950337984198423449061905301312369625517946635568765663414710095265298905162560167104608947645690260777008157615280875371603435914773864653236340085660944580495030179561748046206406785306078013313640391174857204203508517318053400486942817886490188418491537844211816850431061633031599911624576383140701822953624336855941065769361497596053060740218411467006114173032976881002823466807077918715085995960310624925572950084250943199326086436560740139828921125643748189210441129154981409535521275651953735090009999121119081875454081963248123621500278774229613753580057342697757452667827059903859749400151934915646033530912614756163227901440230443724387794111826456831092667032618638525453768706770619785936476040049734414455955011427743896342053293271999924876939434953697598308430186616431717235633948300272220908287349355342926255857430561113095159809797631380780955923040348368260745808363946862642392823694879915449704036995449595129254473231175161163614265240416740731374412417864941369350111312356847318684394087761443724805991038652890643747516803174256691901803858146926903353342872130233645859517971426351251560008430375484192491810437050565883332179259972344135438154941870206596383360468386797050040562316738157799343360014342468444538490419953144872430142445092665212753966233212961160126003856918931168412502738770770116637040900703944525895158407681090279071994646646984307293920317132206416094846595169521029621486040076968248498291866958163680807728053401897776558652585380583338772157853089515201411280791856115092420300678130414731401360580758613191003684734195873798762219905653400346676874600416057418583067810913631471841119188041663982924152735108204388477713094534700841277977024456507950254862236302534498811874911209011221298827870224337397224233337507504684593430190583785750603837863064516532291982492337175960640565610946305827405240731396258184568048358304563488232454622167133794906304963950768220843674354475141070800726331560242373241940468698098955541559615940747658231442968647200627061444733882796100541199908616024444492925915582842760313570511574243626385058499126576962044901141433764028291925393594762856225982308379904954345466418448663881623892101185337862765787083981850836588893145250465240638911950528835505701156938367539458723541287577775623900924430841925245801723659574544971852139349460519388956978520179664195980995747906708669242486844605027897102565962128880094265784643258490859740803921364376988291536918293040098939372571783822334179967774521435609883140640445232087675274530807106749189365618677143343394831614516918721197250822877606534171448053050454853653070296523594884700599577848833150897990285362803954364177771591668746794769856653888057578158405112333783351444514160013631362843524338398935086635342094502626451548891869007008095960332169821635346093482289191450067385864496642173292599081249740663463059575417753832092223950278396393015322947637146438161826077696745854246361652889958088778069374792580736523534803285345959013247753321119259318019098207630271985273714401618961207876942138853259352165004401406688245493517213066470560754346609742529087457174357857341152684081613368444010398683774742747576816497544160126458940088657198497156729500288879820050812605278789490785093674400479969368095670056596863206353785186140151938959546008279900555351381254828665351228530274163747822339721444647831623378268239336280992978401156143671195557017162972731301994331042300855344092775170861835938280276533503543521079962719092794753620065816204024640327940124102292049229830437489161467321600031925329633653148828105477324344768462054580512998004336590225151241960491946971041210437866852826573313503259118494167977963255460759209367885397672383620640942310732344246541008369571110608331278186574097354805193242431692130331981814635735353949976887597559441210207645405681169895050153305502280927291653032781798820366984412647345610483507972707048082554378572793571213416667839969668378140458519524062281595747273573317289161595013313203765448789850029847416276857904215156162435655004906454174789522245299112546282699578290621481263800682729863396079370361185274051545112039396173439056649995321040806517944363372090446310326462016428832312660283460547615494814891315955199883220862999565224489771793431397629131986761484445706783640480874968107877004633479178801140602292318462169012274154207274224896591079899955259052733144166875472713238092925363895287098268508673632834724215284391851536489471996068758722132315841353837187570288128467483205043634370657321951004058018299717219544833285560416182847716864586125354518749726253587225744335197067379726340031197451274061258361095557128068532640153978652666678017806515081965184965243470956112045824296236294760149956273445881412968773009916427951052792200697607598550996864192644857052140260406663252465734345376447179020195175701587927415896054206966129106633958180908314918222920233057275983831467048554359630147625611643328849069474670466493427074005967423571202097307999091991024460808454220085145819836676666379587695103999333474085334488597709784838415679133677083817089875110375260175013029284245647251289992248000102181605782432385777413882664343703404192424890744535815489264787117475509498830953742716981469267413395378420720927053783797938371415392842310213612165184339869242710144574177977224596563519866429628188136781276105752922612633918682838397818884863100700825715562323377915756083522400094729988990812577026412675036680660171561483699230935197090602828276689868970487774717844558243610691974553553736603191221695471959259556139111569999209281792012135706187523637587489877800082846763420503693553906163021767679094902434557277794385061588588357058729677973522472124175575694167434709893178039719992208096180951288139752220896816341040280424648038976476495853258990332797196491678179898111802063339527821684461538477214547754935581466753479528273036347645337014267411148881716472336673677548642389830436252324020068349741592394633916344935342211510802563300819561686926747080733821909040922527989969779292295517742803725466228241801865105386747083448985835214973565691596874054774024032648713207543445126841960018677525079174481342244643820529644923796604531968755590468139047678248191727999160548692501815665575232294768936978689816364887461555854981559241202071214419155383286005594807463341431979020111826321114350875176740431356812912861234087666809969730985110713756934315349189611906749379916975664253610474220650943021069104320841718372124526852311018865630851086711741896261340450893469026776487392662325763744128410862419031356763274760653890865794479153615414585611449590694967517693215650801377377601213043533198588708771392576062332939868615139389046906652115233110172893813152656040355252921340004141330153249525003825849847957133784907215174228204021175043332406448287765440741073192174339843805270518121608090563856357920080883687293671013416148340874642722290573040918786246487787513272519136677633573603076457449109460943940159770653644282472479421290882275022176026690601125667447952549180576917564783491620484424381745664734204401347698193995184551914006150495168230499421010297629276707344677344665858105898379411903039888233630710182566702186293000089049614141988494707392628817195860151405559549016186294822441224847670390053901778272163767835890270711629564995794224014504175108694880616053107248053719328732950127069137804792079918350794085150482088475156051162958233841341044793493688851347795078643224165141089037319162924969442463301789798947028886443029560670275643967801174675489076771773614381419503670565976456260433612356748820819018703746178079868459068305632364258970184157841767753400052418835342098270578496484322260138483438081205670106232159983912577015142499681126416712201219405696511225100546030500362267184912472230058827904684638655837343705218183804849360163956056173102325709874287229944585537221305660255617809965440080427373952332320188088847411357598177241223768979030168601154046170773133889508107705725412419337272165444458844747657648809206741156406087013775079758631783882659349270437593348342384026782833905851410532599104268290934988581911590298823655073379961961419130795233386809649620705546374248765627848866234926942231802459991242146737494317268079404805635867863924388176042488535500191148285032758868973989856224363543694812924142995651384052173202587166161134935353952866423001383702032644890435458526284944793177957336333217525203603361436583735019561467023907225508266012687688115097444080509240211857998997141976137110091512152577464633338314742003413822831202043301521520032211888167729085712784404927945516695215232793090661648900000319934849263511810503538841035588034223573781535747269985310504677469846610871013113039477362803138740213002686779133881287513158151916774566708038369603813763175938660351352349339662489462931999177235966885901190141258487156967848971374708334103950942956032851878917770587513918791151636753889600500075162476904898709156632210308383550495700974601809335550897920621132781146650177298966193215211657824739118476867016850016635783132863451214177617069208718422238296015442169505693943151339305875821923917057155765806193015280252055120985786568718827817127391707117575603352120286009953376952516125597667774152079838739754243636788416299941774210566745288468492649279661649663186875751293126621105770548776705204367207576295707220901251068891762679119005794085757003425449215472152430984392422129878879013882093531236958334525008581890250793840261010985876320293866624579390385428554765912937006357951740559469570165284456336724913562986620148491267159707427653605719106018791744065446527836958112473228950446298780077044913977916052272110933276651556197028518835419452301099263137454309082847850799408600053819518063225536809857827654430298381275929467820569127320821864310128405086887202461480370902064049757588831391440509567860964819394587367750119552430506282762832423007962114874483158269581346998452751134062955482915657915167814571527842854495772453165306043595951821284785059868042346033267270555305588083856562536110361604919114691379809991172693195953922744352348977741685058000485011775455363432403726505738248446776676679585186022411624551609112637054614157473179863205318252455857439024415409916808787157914837439664726801136434406396693802197297502720153075985524313595052192201910720294676256961997284718014136247652985228884790254614759787753926107755672635098109879494189555292318200796361729663688684839221808550743646772456230391439317888547334367289223583786562524945363329527426562547748703529514249744241422873020842949106527474367805588333075906856948159132705046722696732460462704702611846580197979196362130425218161074083773773904107250257799166692983115949813865821545461970039241467922401659110996990302109709214164661249892960663869568017617388341734198628732769124324166499266809957172764721590021905377079167386637116835424736942986513382039621613874303931472607041378352345560850549213127052218098440250116164781906017810767233219024519982934641126020037031231504386127021659467934669192304749274463678170581776312761288645475981467602246687152652822445474249616283725610125430026861589825635693637610174656490592026479846064485613109709341997056879754056940365301120628808071678948998585500565747802196255754217673358152054546000580050803325253261594602987781794211673774763436790317571387247823932233057636574443381542378513825332164489751051241801774915963923858400766050894761295868638183450495459992907090239986609979300269532232988395111975079977671336617493874429926499617902871664364465792784609777678286332763562597080726168639402254508169165183364998543345167900799338470926171215878807550803901830440226032405103986870284480996409147712123027396235407583990689742718511503500860047732330426891315680951763402450782056429435445014985548336606912689969268294065641583422207656731542263317485527447382759640060730647365952446770386823520154112187647378412918737058205984086367486227328467657217588016228370787987019375953260522788395791545686133937982308188851864717474571418214721094116847947311568115968312657115082966805512628481479586934522630896541746496301504018167512382910087096039855357552910740263831093066332944949932993490361457899771898632003630803512061405045512462734803908020199389906009851244471221402387324989173692351465009487725709853204169617281836488362206473958258917896130383220218456328247434028528136041081417534299575696825035583259394617866129110962161644805828683828528770991409938921470043847778095542372254394139932539349982313250058618525218221082196234465878832633047547157186614813128094152911919237744813416323754838529309658218629393175603183792134965940716802473689279718305174513741165202942599377046179088847311581159055282530503441896826163787322661871290646773777656090697312977246976584588183059380630467992583708383737071369538881441703125879853611905387582630156472792197329140608967991605590583639269592269279795849730547636602633065174261915431229671815048994256175452216612079791836434807794335962000124719576618690487939315630135355334394961834481965464848502733696314257482423034865383075762684136914488058874307032223946443146902727621817093023577370794411603928337680342130319082623905655744364125927791003590305274061235741864897150867060092904954815035799981989105234248738913176943822206779428494299699713820832122896779422703042175165866640153549920521433005590600133041739680265510718939934596530207938399089236389875419735958988068058273372007395558996784874358417234095783683370267381716295662435697358597233891354249359944063082398389621482534631851462021153004215389624274475535380053406728755327171221375415135887313890675392580288387966848528725411454008628901628116514122374520876265073093627900970081579477166790845513776343520352408237220402549798335165441595892167716657951817533752252564721255796840622646589278837093936580741852735765156792478899714323581972099297245947549998309463808716534080135403005505339944386613461605580244706455001982056989383255099767206794311349817987099669666272816912792898845959849507214685326702546451074391548967594862532825675232167500041527654734390971051198958861085685681432413569433821082091222584903527621272053986280352150394356199529272037835060864289096546262576054315885476282460425914066486786795778114165082458592454963280105910745207188359151299126847299582249967582355158104592877264493136150641868425794426509065624518664829396939822781959700326269821434118680978974561032565615695187152475495435974757273070671802443066746196646729845662343828812717244374108616497782399267455663073796304390685165988373946084314120996704505460528823563678249544930843584382720753357334804341843568377535856553962813351735279426293076673163277999613455833443051164707869121838270613454208765966124791617967575060869264833101362180300429179760664432563187677048373865257869787341947226415905031301345430762105042150794598264045547391309914830120363443030866966960379645589176566207044140932236578148521298652704929528656301316634386895569551369009859266095182500219982082845621644418061407584302876510011888561750469810936259540342119090916792599090886593161528808144231258630002990654706824405958402397785976473786086447191847878486403150670585028568585874107745108364387660690877436369206551213365873529220285205583221591322588972188450443360777777580627296543860469618628552504960180237011083375052732910512171533347084995293313037340294291066736942175788358368558404900775786805044915809186808468824774088406824813967010464893219685648336298463968934031849313624303144309668833602144815568336910835042881155037102624462443629495994885768203459803734082678001084321252631493277360291024306990890408339396151361021145388714835998942617876439580711234312515005470744685281139042630212445514684673901106686514778295114324219162836575436682616419996594137832552139595299615603070650979113075144082347881986389881078163509105382800839981775500386733245086139732767298337709654811939374252059562301531530322136777131497567139214621766616263121131340040437898682623602011329626859777881765614674416244747286691344660519714858576088401969874220222356371114432000224895233043012099298354759617580528446629210885704350326383664064679343176096805324775553286706251478239568647031448212904299885830517511469463401608361977289378024434398768875800070305650913536821572462402575103673346680693927525085407836925948058771900142969027096450518002051378689370237801976120014213426371735632266382822064557363902675205433940729442579733162366478670815665489347714843296046569924319615775276339403940792462465597306116990459951107181970469421942221336960397894142453057617635165405420589783478639683706119817421799201157696680299174210273872086818540106158256856132183615006024669127270819759212906512563370461465061585296147391640296260469707840439427807226658962417233038250073456009626654140689938762962671203294084495849519122153988222865411654781956708016012887639810558942431433053299658838771390520222367653672370715580666332969145676486335328120955742028189469832332206577232493642232068440487688508386241723324276019865177876093945037387601746344843456385535308600407574609188616825769578327869960505252097811119731957367663425185342280473149865821736053014457944572891002130123590321427739986833596765662707041496763780746024899432721712105075287397885127925705348810115991903248120976133732278929922508499002680373730620526458341298065582003092483054281479228122562696098012374914806779863664014895167945082572945184635095475824596868781689768182710701162659932919310151760638206554823307176657044544746086243142682696841453671025715888757199193440250826624379316279172147813935419838794639955065769850412151800439408333708930809650090222134033936673281359414477043947231294283834589946744450937448100806674779055242191664687810776061149304967409116902692815378672648761530207926748929580896037860190217443617545811460454317106170126121620686544954220647919475396542485398178623282057053177043844150097248441179344190623619332868661452145389010816815669590722140634758969516168599024179182109031886741270417269595970388614804984607010232851281375137836636018474773867219065497480237625166918034190069641944585491935963976487095007369408890443385037131605064579071358658635212623451773923983508567141389157792948089296987451588413563808611345115361990781351527735858963353379234256284188375857620974774348284447138435792729306121111020040218171520350403987194499024099440619216510635876560144016604206731266314651307025920112271483512073800696588053625587437329618985807246405322510765170817684000521379582390891181658453315798813449102538446518025201633990609506497786658712658894761942233606949995353195427670128460249405458137636306801296903446095063882638003850812770897853070465191396559138843421491685155655828414215739194590403568966260275320543470902945635898589306868542470226451894432546873071671255483148795617484264053847946371403266613713722105346749501957224108420655365031655168899747947077777462695966209953559607857365697887042348242327251095454747546260346225217205208633208633072031991946798130285570672941148287883735986570063323839107070188725836361277289866373928385853226430928942450145902191035798242344488155118615789165219471974044829737238452325191035769582133550954227216521595314210941694861725057299203837624654087504281674299576815315347805441244755935758602120498324793354644795800651166927551208591725014072494497424767883692279166895634395442111752550492865000093939234286885454570184426700508468288580186056275517896652989229806758253641995793294395335472759001696831029506456709965943384790919067605832801725919950942895166280544626366996667911369195959162754207202045878475422170274879148651227721259204283880962597788286723538869130703069349512007484725102114107389553045067678730061183461178194464583075278921016461499897581278820029858020368308060184402006356814734568221701539901641695372540402075794184747973772734831636827020813065873704787102331494586468882488133710096033887861838696448127569092022198700141630358593382000750734888899433231482120168594384112120988179206654749176960410913496607102952859987599162893762322647645300451571469197661046176551772417356525977009044554932638147937024609946270147296993771960450905735922360794629603354118106509425713683426772739480189441958134199688970737538796655870634968293670941082549342785038278394290696807672830962677413728506208771176191268181279806180137718257048243469455408495139116517637693139936912866951659911068330267468210772911230486358260700297033049970403718945105488459369859570530048067080415320864301681633877358490828450115203149215906960775131600001024833539998881169565707590961790293942614775741307357435970931810557883573199011589542916468143551517764396747078501305861827156842781969794486273142804480797350863715629684034700880268138774087493154668204238146652163101880595702764902076440562406513174538424167482530429330775079548513315921309168448077264659140400469420000179234299223503475217839877844804799737123906817304073514422684958656892728805220541462098705176611987029040435473820751996643449630990533838096755307653982788961259286198465287184675288434101372923200717228692857821193010943878328382126254151842924837087718299574923596498751077015414888352801427609857808810682534698882449543611473108967022209119606165852738145438251545732375532757418982887314084258063477178261373546011361830749914508329324131677228648244852131014376518613031895034041387372880677939000991880720574465477177448287141903823563919014522853337047905303978797956197446830282583619974449848124043843881564503448667878412730789006034039328789773928453548924530078406594950548820638006250338180069631281098024487931911512094252521152843241535353697878935849158989718949712524610658647137827439270202697563564094391921326495731740695410851017627420050027576759211171622911674402239666531448682057324321419578898880357988266875627122153094476775223505665655868590153988680654332715346038471785116742041360614962980073355190324560704910249501712867445176849279083194688403556470430880424820547056715077938375592036407091600074008968143447583259624667831053359695646827930574566326986960307993576248547469347494982746154682847198618346463967060348483048890665654942554548405725741515045513037449006126672730922137215886788109060413823449977633165054749562104173343158901502204549546702046962511252056730300318753046704794234225591843186620404479889155186911874409658784483296453077197358488598248315441454904912278787861479181518181710967602828142828305464728210130704265305281116585097402876671001345825920059153034465322391514466891949774430982200410918952679368427686966700538708177117102219210947895049111259209539060703821271408565433720687712380885105540996689811344356486196609709133873851784768052665486224948702247827809277984591950795022255566915574942223956391096621965708846832341179212956973785617415154557210835496359191173669502344158437318463674570930944561097006980894785262053139527737911375607104925729812160410910776157715114112069579959965448713527080088784338951083824325976635603003511159268275076752339727451477331039969592552178460388304086514295531141405270305792014974293892481590591694407309710511142161043121781190119733539223007332221065518667254858757523692992747570089387302651356186673866724052535229140819696991947028455460955869237752054706088984883668439226257250203185187871375436342017325780853704736643272679729739902967557608139582316486825387401493673008213692256666833610851363378220129164697220588965838942800021896770599023330942641041219983784012536057353010401251072769430265793969036983900482580598586243877759308742720546454913335685157985001017392921075873786339396984039472502743305924530111039732342180433939934403718820036383686870099775210974318637337275190420700955499908739666179467926739183371729315326148792355926263057376849884826723239575382036430178989843862402314627961993659862317504644873197565908842008564041587755436395775004480157917645627289980866400510704313111484603840276735828942930542252132189984965919501093670138754057027210505011721902811308974758955122191683389619167582562558370903633167037921970430760777392073865949758950514162229387326593940990534737019742425914046965870953090396555830254844298717774835698448368617737239243696326421268495447030584605910631109884188486156346432650590371939452254992830468672086205687590216931333120028910091171391094478851466450213536562717975911835214474805995564413857569546808057860103230955035696309402730635013833950295140506614510972338592916127701860201995517955630059752760150170433822615390969854849963131148960766668136771294888688958901938039119264240179055140619544552964327818548637018350093900617091293451345848894800944650372626798178969586384477438596461996690913183377123691026302589796949354449667171193484857450284832208639638482686070773280244857615817927548546893869431388354020716353585195537552657248723240188720405669908447903916356973733657008398718636357113572325921791409434899611310038586163572162006822238995138076253022805992026445162166170825022588415451608604819597400657044673600810360055211720124155588048432782515502039094845220271526861913913110289010206271855854917942917510015032427400470718321384501062162309745224178879228211106788897039625829442871097762374475475791988771783720149614145270071746035083651809389391980326401685943187039323201048588221390225878388755247513609589758322468510210172854570415813668531392023341425749084083450098736063710720183052251039959692841359851705891900853904363030762007440119063163136712565014526239307685255328544843741326013415580132330964483114036729145898205282239502715198871834837025875190385242794423930076483018556742887934492869479865356355815365652904868583343052048749070170800103741559796602201899555834710662368085840046851809994599860257108203488430475067587697892217864273133569035431969580441033763004429172901661016351738105797016985136796623464964607378206187513106264653386407386683441470410347055173583071840187627647416123624439508421623300794417137028376231754485713699888566563569703618327971865606468393276335537740923978313226960209896202769170414019464307181639789065215782063659479867778477068068371687752648552642170998174794466621017187286973892393149235040537293721084338452310195290575115214788990781925540595355765869919253225441807931166312374520217585969639220813923291969508074051216319800736451051697161315193784669264812911671907080915367978716056912303417179470735660968469665880066299743638751490517095967511772485977236317053148089318289933758125736157179212436417093706272733606512950273470242734987403739755256513362916345838436474101561778031267918165268889587260259111071412463386437053158664220820893202762459872142148577447823830588938010010013069457271455176229481778904685068478472780163094096295491330647540208849482047945746972767477167884426668501569853602525554757536587322172514972549962785887115088336739550400545417775395507689334455593969455406520829819002794659717110096935070849392118808023559226749307848266582946342528117068404800587989319715425439794580094147798113934919305419146070180110133598408453788588329257451219234741662892288224151776938232451113368386509854010387930880333785677694592056871359978185382220162727407862646860812514423275020202055193347025089560751098615302198081930033359061072294250898679697344060246349046553462408316324445358995923018489080073174493866456869079741233089785883095577661067922376780760454439336893395038876283959169631302107871224849279799702647141115628178883872546959735923911233927878946743248516108939760709135981267530097131107220516177269884478646698471015183688745183189043513527730254749327031527877667786555685710954655732434716197909454478986327467610650661452989520384872715511744715233583618544974513305777796162342715788810249756006188948886516979274317686766798137672952075862356165884225096963001792673718190525648550648749661911120844439744592275577294911111183919696588179421286352148254847419735393655155683048524252587921106591429767655367663128873386460786171667808854354230568928564598729633588883230886258939359575544694964285414925363932667223786604012713690684055014666173384220807513802195109971293169430241847072123509256645663300021776484474244131121032018663531326190036785234793801951422967079539578663862591606996766342898593695553854363112765863196268566935795203037364239371010430095813914248386438794049975439231647820124974181867313632163270581275149936334213066910400314957215836969720766419290431353089912678178698162759629208515485639978468457457982165742810324960530302731299766283724480768712801821892052105862254967655544214443453542253462388683016038511683778145115629059908769885684051801008942400481384207404346977568601958095418486231300659620649185703219835342659490553625467962079477570099025457142351086679201997449826787971020788525605942839281478877771873421311990846583180864075712751548677874774338627401095821008234420170343735619366118997444808784634550491641609238831950696723636139157523569032583619806074389937888952686426899397539306105116635247997579467872099756712648335405295356701452288651270793720387665471000592630949068424894360875053726922044992908717841481319609393324339179300408644014642836294502540023540646472287907189008305529108901174071370638486806825933807086122299303480530398622619034691421071530225200311425793951528897367984855894701854118670325474107857971666017279444249316213907555894013011416678445691505873213222058407513000790328659324784264896023212771963782539043735182020924646656112905772656509532908447715392734986810371313227406236988067296904335524770796397044495085154831199923491488191591346670279724050724983047744779737484062123088923918986936857188797510043204375834940853894320871421155807749752046443123650457717876175429184463278779204589970742576975572988532515623784958336021287276260869510789262446261874243900670318890286807458347702464389122681246352741028009287950540947073236628991499343179416946745909061071327016493987905468448434414758638422038370815450463859965184104402247671434159974770345679035994775777350445158463004839866108500533386113905212401737496772727335515232584837307732750629342082298395958864116810693768870185735345821927036968982102113405598936684494002173669608113600334146551399956302032776008006000209599293719478309617574399209313721536740146911340122653171291273932396097185692598887052015609387654578811700212840741558306505185003056308888138818601005317795402768410617265841410239699845308235945919718343503833950016916577979885495933096275415474037390908178149083691922468876778812201631227720527695913029162229717547252554921796528524484254543505936002808051903898662460930449267299487695573364115428969618063713275413532181638689702636929643432079601204517502952910034487953388958883404432495882548366880985431475250197007241780974958311078924511223679362291948523461130991260422486760989542930190847366248399875077017941111779437663754345016960652157557623942370216434388645026056421494142468006084268384672316395236999149992398026910065266977458575202241431282588875351688902610363192618089440949353180503582516710677738034925095555857107078378630665585122446998771485513726342728523920503252098728309703083432753099557593797841466442855709223612379007985802763223251810080269383070706370142899805744147790271806288928329604339345665052941138246349246490045699737655160325597415356062991610658695765256471859231872508157102291936810263397501908638701320658411992360088911205723705506873973362235937830280579155760109744552849776329421084559794759961043646713614764938585687414647373087290913887209875484544956513040557323053667020706449793779467581246233744561356207071297930512453811729663721771639180313107289913284800229052347197653103025703269091650838597832163844875623598878985905794616080877118365055997961775005265669435416723147336818095891042014720102738759188635745092765855732991407194063393436472162625412650563301512367682763588122944268719736642560260677203510592567500209568058039463540794289660266022640317010098936113998720807541588177835464809949679239475876355177447636393950983225721645793104028046396146390764078402120110296812486710396259046490024672514382268457784436879009720923349905853984655237834483098515868038304961562100736281389738082376725081424835047440972135696283677573942584002116474647950670319118159303570748010487958756571905592117089273123394019730889627257166526158038484910773205439426423339280480423439097715144732027992230584687984020574732540625304590075013978807799203028271287568166043815113573075475824267295850364533785173069139162490636633835468748108381036419938822931305271149505954761352613940360988141546034246594546861645055153225162562005050477574470013355868793774460209707531085461329932896718084858432484177739732849012513448589098546141803493937865294317178058460287525489793798411849080652529942192439776864573372509624566383318701866502027393126668941500360718486794232491684369309286713827468625611499975852887369559680194654894106516136259803759773934325983953627622473655822223975300454909229678590839672535305346900520779610170791976410163422894231524442462083256104108717991918949626415815155576504649904612002945625930741053089719499559342022078545172709625301799657151250106810179260735633257490991325740309553026415308672381786193817322430781581221981473732225766518809463141855757277507853461474054605365899738116005544102013687686831573225622252336806357975528548984983965394175825374139195952319672342336800629197609006364652272033799819534702160041675550475594318488496036333054246952744695729242985539600661951830209333530709758081256240674786246662895525614341258192057737070017258004856044108156963706972099840804020283369386922827973463117056526536137092904102343787148744703799870712493526722834252541994720404418172904186794397701460550227708368962457745239468390920372531239836229210657472831857465258895093004409619622829524743668221007513199374947379654948523242065344698252848749723751508840943905159254889216920032321199910318512834009166724191109040724833518950487524566468734201246169666746735950896717223455108865939505527119643663396510210804822313705696372590340379178423926894699462164524855824997261475565159167568275560855835609023120131597511502868184501860704240338753357612691934029843418547222740484251156965667247881622920811018554465478786056853878649129354795482172212656622993494530987950882482872246384463993995112780633747245618274363215511259263588444230175709121005306955736789735160844353218444909666940315339744974851096226081956650960664203462506083160471189044966327180200889334076067010389479422567775798536882534765700791445824013043395729331929476135089885064738737731814331526012897307348481536126050133040677748919291768154766159268135883286855270691050333109991827933966095961949557345579032006792622607581532129425264705288192410514408835510112752977922581923304727416772327834016896374234038815723003587469734591951594295006626926010580177893449812835996233248044432733951407647285491783992066504083213435914992022288764189136461146378048246517361618160567527471022116641782019246369671985777089919944280387738006190308624179369480645098530342706686726189468483506642399502646816576950061535266181641992384954220660221266481160718450926925231862137991839868566436760337534338682136327886367098461474223174167305009626249699586541595560357102048592785928962673789167825993320051566775854581953754537984307538325968305362146846423574723237495829353513565049226061854540395084902203068290715715041908325728534043956203971807873349845736624506767304084679555261212194506780071229968723490097926668831462549527703171690336599250260829323213463767834402762909604068817143434898868877476155183650075122903251794260071202162606499475545927580711099736106793339681022614464338593608140791583966130981978260370693565405802212765426218400800274797352655535995101490903915164606830114187874616013068975926062549976593642898115358606774399011321120450329036246433273000630853004222442638612459095705949404900327128255375445806635764518220181803416795605677647615322892491702107772279607958470271286346825863458856166635742786314109383443372557616371810154617103482136975083456247500226338616061391042459033738048782052159857371342796257054180467588595646690767733199403481580011452330584905290073548829821113748247347157748512029850813623383326171683911010516316687842003180759094497647424175204624019156531328283098763699204886579484045229647466501969244258656006290714646771058883440139260935619724959947316068932345465559929572256588528046717849928031745967378738454539767240536834218529757990788972001946868675640115521598082225511895654761628339812182423674063553265374061647680351807997883314852886737441982182750677221955993669394089881739862979961844223618463671327913419181432736378126625134218687404173773946456235475144061258952258737807323437252633827502991765207050796401096174829924307276921123363126577168895371353607322387143263989148759435251268394258673202725228275287303021861765533361597989521033796003176747566114612328653129446561122436853890179808637662898596826054424602649793012773773903816046751369265933785576279844534627453508182779975150645939426424161547096651899365786257300808518457957832895796250958683259794361780420124207899164961063840725175404589406820123473879556829175380252206523846572901922576019871879415235472547060674136513139676807157588801119957907149178816815673906899515223515162756290214676825926708035855870739959881452141985735916911117271292917579666338641048382596041970842893594804351059506043862336335061883448845400149659185458172209484513439204461797282939322266152307643850349873914218134043879258238096249248004528487028034717469356175182792609903793862766221291768937501314628114379987407573214348395665120494799418370821198782505989024169734895085944285065277897103848771156432424279510504298481451382828410822504604640766967998125794228652757276542171157937925866881933664557510320354758204689705278314189334262251465570866608167431821048959999138823406978717762760522185333657793069940867674107696857708595464817762621957690240344426738387118003548859378728465896492214962629375183279420600790399129054597497403322175287163493263897839345295502848602871165695826986653632338921997593495434872948296861216356681161941772266278511291957424169221448696030631503682380006760075673211887992480265464194575845069196805400408811080098062858670951719228107252593362165495947883297118542288272831236881374291628194575648298284258708854115334698987021469085669011393964857823812250343884767461164875276645572825076678306928729478795270528550755775003615043957587060074104545663238057530669514662668609307230511609385464844444645888467122703011188271450564685395540181374173518296805925176317023176185206964381826304587208950805729631921645153594743089324547466488759094797660424001875548756892958621361734482382461464838448872312263240645505511144180334340937075965579166955411596211121925189368423812048862466690147193615150340793540201208364461810307898956818199894173315576028335656387166820903150760683183189954909293661652746992503087108976231465886484127157879967978977048330578870100542227711160014474454106018483399662696540835417520160201191336624916142161971421109520455054050110602451431811989097244328173896291930928788167756302061739206628745480651219713061283492675027912860869277154632507622908423166152625548675959333924726039702926320546823844892038643018097104110466569572554094911195425736709179021142975381331780983205296885419167002775403057723011114548951656521067583390503172297118672338171931831986202746253560605642514596022365845781480930670299544358913679818416570413205367479379122172140884955689050998184885096945084663073765674985358092402142508094333518637282001649592956037573333910164043668577180648762480233515017005005624072733978313999208274623684188488256192626186516299909583208597578775355418850833405962343977980660731101315941020991407573274843436267279352653078216015129438682457184844802255970583893873290826463310337019587285487683069015274971990040029611774835348361254630866967414693657016932811730731250668583978782502596514325661241626144099874618568732186158659944013615886146263877256938743893446086688498193715595605118045596630982416548780701149145524905932051011684245657498594437399953999154794500785171363941243797966004816132241486076611317392105592123519431954420989774010988537297514987543309581961909587362901608158916588697299747670287664072191075857793169039343616364638273768342380087637418859610499981021093241339349150824323999269266428573998846659618321210896004618341403203623084238956186678070299267532296099584946896897791323482820281632195501057755825425398763361768036221180784935040423528657430823081519838523586006170860412548895792301804174164879369611318019821991289445036481604396831892527216165935875052938849694410993640142940504385117023438161659811849401440916897997098986339922184184990912415168859542577962138162167985035711133590915885689933827254272953431036050411439746574733725859327745084375215403902479717028938187414264368539746751986029399413838884601302650831216206282316713102044147127767139278592947659329366379865207535656982089733093969980864142249244183719936750395449922064280966246967844437998379498561977799275460759803873725893695994769840685481246589136025590479345969558645073965917629959584644990994810850916924130453335777127938562742693255353735921861524579384123967618056240543004284120158555093344772672099853204543440177381271592297950570128297622138859558113730453901702582939388932384074684047079098680560728493157885228939296633346736471240048939078756610724873799628318223562271729347624421797113377221662381036185961970436194744215000716149433708156199821205966075938521497158378314110663563331936112312751662940608899398055325475038521811634933151814967665614702827215789490666472802857305598940204096155558383474403693175482396420848157879896033170792825071464966515960723489785473036896742100408568045086420059577261157391024777311634998184376342060863573988858799168391782526271895140774182058847309482644701597871629854417326098130456577146134262878036861216387862769197115693305339289618142625084088213019631523157891135493657837496247582605413123380932315546170175078389652201793897635627383157708417756254219989618774657702638655436202381193641595072762247915702737006199596477730650533605248386842486586917717809098469335878842379746028761725284810171921474502735292516236684664319707020415832946775550754472773986606026926529841853088964816645648859318325604572636427231107471098366058650738460160162003379823938730972056783071919067028069453014897468924826639010798228877684036969732674912093450254468438817625439004551181644167815271162778751385019145689970687223533676507123295026292594506923478968677221197503987941785016008442099560762680240481150887315776933918808640976244503224025523766542391679820975622487002673160273183740407908119195171397906200872610842231286269381485397761980899136863828361224450875994092402452390194323213446796496735289135824758340576700256563319855632230832430082776661565064431876142456194684093228180248981165969917190326904209542565384093322760554728348813823212470411512960050843601431740406863943144900359985088312961153167479216416810251113541526806947161783144609543840410607267567028217669243169837558696131882427774096368838065127064006805984393197526078462198486568655464448575639184496306423019964575578973272531246243324109255821873297495082648753544751447892287071931392597904671543802068191488932438029154592036483362554509458653686546568443870952187915187069120545908666737226926638856556470535001207561854127055115051608830782950741894607261713932854257425294695300844483210215416494158271006137739382804502384193784635058909185297325891569365356561758681098709847356570937151967275558275445654236350340764403302331531231334145896645677144010696671306074436808512073248157346739454907228153499081429143480033458002348968366832207729241145650979624015994258104104581297976061625938472897249802558926343466661763675109211023474174938658800936672331663771195377363441693172245166019245628516153926155613534093386201285132698689650690265686098395661605617995505276647334152036456685327390559195706064603438520008653474266231892338402059933679256863080828638636893790048487270066811238571067541708684439294273979223744501200813727490730906937371582465457633285590781758745452870491602462548928222479841677928762562938986960229189648761874589675090093507317966770131746930678381744449200572749120141138154911908032702458525516255508775623402569537765834951122628966300237808424703823313334454031394110463720810529990139185753145969338431839566595411402036659301499044721992672044812112289443244948429581958907050060145106416929879205423805311761441950586400461134491170090972375230082857045927391939984214272985600262258409781998226128908924876990228413889810470967572340720981628816956185281550358321603441370101206183268259667312214622016177437256478641870922045631120096305517817843404965901242637548515398736587630608458209672754406888533545110025812654850362178210150048139478967571502013623400592321203513514647150732876754184081172201473205336150117766593133740779893164660100060606352349095817666434989197507361400280886767621991385240293853585847748862264413195595146212343628763330423602278258804889946227087918944906622732283631682136488918727088161784242995866917614297551556374341140073990245381727454670619083750123835800038777649206225507463043331079088151866855775305237979314273915391107074547189295080896922418128740052400122491377092932477749596518235994340915678493811493794414529653022405940251578497694653773564056235614194954814316316059272694052767525958038993192583812565073271132622419866429626189430239910275071988817914203588614647956771051080484541599493946365934866631332416914933515075389135601264270458898365725696987582714557231334436800700666666531831961405786641206501140922709995813137171506879358696649016959608137668849723280271431525324827178015419691368431476426698417951964756211354617875793494665066169429680005053261309391380878006699701616893008974924750063753717485814618923145813015745796981084634845655178891091562685704503078785413736625663404724116245794340640283262955258886190629731194259788822197594760133471720960563267075531693952798686363702845095373283003369656691208503579228628011004011207834860397616148031172972012261387296949942799591035582909346126228882974472117559875477203576894850554051788143730449954884110098035810020038927359084195208662087120444651215356298203982442859086894992746448582237209983400231724843214599368313054089851012086751545173410608887445914970500091230484278432091584418613594831449278024698780207717269150251943704987445191178395266647696919291709751790032602194620501762398475442537256617516456217653619816441866869054819270972787331144177723093487690735116867836636626000790020978187624471861772002674993052983754280349598842908739840289398555365271502565992642415362879755022510336488839111927007318237591136662590088396559271852006028796439646078460409297921789319957149867827314856029506049735083850295995219463542041677267497783560945886310093441716735793269051135131496580086426988305977755862040431697598979841696903144811224770652440728278701432300345778835392184397850928881329043918246146895552504399499981553043078638644751169881704583939150508677158025230503137313149993953180618365996533470467420052077670471358014127444989969177503579737445077405475023618388032113941226441423145594771073241616747862436464701934808845917224980005306942937799081598265467053155789900693707569613243741730682567141405114507967013666143792278390096536840099025946108399001004739063691667200524603871394458752170222857831520891202543818957087975804914891617763216170544057231570744003650702180249619334907626429369456046874986866555342559091121122108270744420609588073893813775704396719447900320432424638107443620608072475124851517399385568005526233367621859967427092829752461937683192119460427088649407591691068617468764570585237254768035798785449143980888603095828240471926635863585078353604704974668485577130735066393134877052178803686651825326475385396132130018885406445878617426293874085725900711206908366999894990668612294619946661286778594722547080685401359504849030780442257612304452483687754570498930583325889071131652080465574332734297006522015990911635321931043470945615972630637601238000564822391897649127967281950784114886221340192212166643751662495313057509439302040696718243466183726052004082716075130841451262957169452026326797215843061340517411936587519520342555871128417451613173990787166795135329401281036817428523593730467815077371214125875086465256145823297185223046231392769831721354150065048323123287141724545954617960009705585639253915274360834772587315615046657910866519983806495340345814733915748305181224764436871095518427105157348724490919369836811497507001661376501403714058816364315941846827524797040880839274871994265831500137154610369931885278019734132857895604606393738200376959209859256117230957630149063763763676694808746870087694030799156809278701115966211329340975868600433241435681288786641690205344469204363320059728776878043753432745637781008748864478353293320028490727502534941317546984263884262891139771655720635411801828366624407371403674709970865846657603947773319725177776785043006695038793178726089461553531345690526243005131071327342700960945464565335805734690358751573566197650184398341651105777347256340540269437038977597057264874529874823173486028628271877296676137871253496723173877346353162509156543665137220463473485779494829021484524488269520939720535607839465156142465571253699839989067603462946796363623582838083296039272151648880411636927474406719798925372522542303122691022434398984465632754290294695708622072164118192554052829320055022821195672278081978100453650601182601987070452076391485010841887305844088967242578431412039722668036094334166580261182708005020125370377066143479311353563577882144342635491637767439473062345609641776324198622336077564516262327169002310876522260642397296595934011940063149652129769392560477286881279817354355945688625886678905838839433281457297587565149129826953358994226921539718090286996704360989337610615538746862092724451127188958662490745910535955226063426835428817549875017665002785068828532786750031567238413746975348755809465421727642366628853289958802979733059481749070525331118540180577452716479758253081200364532193523005169132096632190014021302541128000261374322240228823061988363183711222551540266051092648514666028267515791740531014117582108810746606137349850303021207285944105023097817454873473779878352987954622078340866395311151444699494289337575048032248378375936396079365166670451364369456053184912963102026430994297487320469057274094690691297034178975562860289446184679348443823087000783332375170302642249999301979193199605202999678435730605480072897269921518471863482091897335097916421902985396471501820908562191105723575989511193537964799111860059087310825235830386766386219833384289529207574222841824604978211442564296584708965090118278331595142510355839596744457775861759213109854653800910373559135871159359102117544724872781996979882207240970473905594253078526469726108438345795099894968912603937345473247703288897501754025861961156936257285349303751731003859238989970338459007318210437830931982843794023674945696056076677034061281199380783530993439293585552627145343700707226262219840270749397290329895462694508179920938141585942412455473232873284611419550848116376465654669724884351302999013570099927496357488399600650901837309909047020018647269729184281745104755645571904109591201707824524990648611578805037859569518141417498748057739066945773453044208508737512655318197613291423586514995569507036521575473962530099269810170327596256469737180853974496911584580265455668134755540958694613984859676926162006536479300249967889074682923450850823160769063584058221352683647482721837447997559266118823853874657592322041121938915344789413267968239564089106600034602638876663253697042338010372498748349918350616487602783549859427765609284594093780244351749268139403960574619233739351348213124196409915866593517818680048253583802195281801044738869021463483971242107343866760851723893004283794658633999662698903089169372053762024386903570327719936861961961925210783838921066187184178385340334350479883513635988233110662795749829337847992542403443454453091889354779697805493833175271247862510471668459748274143115954278826185953242195880457131552030028218863084527017603064591770234144918417310126913266250976364206439386470366449724565980340250368156411762128733556107745503888916030740296760321398350472917884520316062699085540193994787782807569601640857593675031795086714229987748574983024480956109215244340083085315049322660764128074345127712172314775904675408120251307827063280004210118285419567490188009336132968130145481569948567621655859114353302204021220716173598612520828592892333003898081998927147366724920854995707990059628621682689598615918908563929779825009584676590434837130026793552550859372971539625639102971140610982839226552146360848949970980809628885295106337767515572392624436557741678711880658224595083774893764146718751204508283494409487796602620277411214520529248249736122476628264006571777740774249813613930168315906876559577443299913589454753567119774727360827280054789997438639769860844123154179400164370954446618514948531801657194660043521590889465579406170748165484748749639198257611568359167408034608444205126508719455771570028241067129718249254264067444214363009398226967818797349939906096269957108404204946554296326609626444188711957112959829310158807830543853215485822392493549383351745311880525984731843751945796059856382859908973931405139859408970873857574279280957221608540197982525734515113828347872748903476205577603998916687951473118751778259570997867187216857862908852986664586774098174620351379893898435347769352484275520387952414080900855344044182476302892376507841213134679510284121418948900572353764537167611429420489801607724261861319749817244506245151690882692322590369528360998022774096131272887309596305199578808213229336525581299686404257269384607142613766601908258078986694127117342585294570481583029986123747344639539668245075104356384646803934222982328633904530939459851143932054447809485930776766504619893069564637369070681062742020150613906111516853683845153072876072558029570597752825344444972044757982111230473245222381447983977160317392248919055553928175818507486121643761316856511436812829501938166579140366864242171583619140297674839199685984518842250604594359529355295352853070007979677660774897476617440834537210137642342141846064238365896013404008671033486509802918015331399134784761980386741864961509245346000880556827602631039328339561733562691326069171932454905757251658341526823251669128858982244774721230819672360250263532755712881293671436206575348461116571049241548201408476633584149509597906335966260144477926759688752800265328488106757587291063909258943537079155453143210340755887918717081768013013948979800377308275141273003485185255425757270592592414917111030902029187586171190143488427085879904299319004589999138626131664008986614813087492515772950848347013560886476734976466792395113622927999610498215698666957291004332665179922814989107937019400180339225591318383734663872370525012867707571663786377689408468166797558711700593373158225145553973973643918651863163008599787743366115373325205146047325908575255282600845943898801456560828371662911277306728307828516874612233291351526439553701705770182422080935161271048689961609794614998495374093661947870464586681250531932209332817048993200357256354103891851233302037106360053211859082614099742875724078670240234867977510044711638866759400742736568988170429786913435445482477694714477095192880070453798366928805949916741520823962029895837679923989330207672573949582582901863301006960330900603343892426260456772499205864610557984725144044916819560000667316294520716043438460396671284151762169123611740887150891890774213861213748726453213952313427391462983949569773976027854947743154364451381987417953784724282769751841408916661500513572159445024521894648052019663018520446906851973846179759504204897193467213224298253936189920795015776907550543041385464124785157673920173181290639700859618797899645176057972657548538485823398735298756433253428034722075701988754979871787116330785382065100669656913238546738748984842138024122787746452200230428072409913553228440718946597030580584860754962646520130353743144891081106489246349112685076041281717455992135242548269545608695121122304380162840003639412843662816873535999496713851554398382007792643378866803145517100972113726694062829675725239168687266562045570285036605987748293968750955569017592539014198656188141154010702024343390791917103380881390794452999105524685274019344095929759577362108940457945838964723623983052549555282838663353776746496497904658364456123817155671518272583118943771145123773726527443209503567972645737693322133669525959117473156000562346478634012708343268730995713775186177006071486783212861502388534393851704545281111809211480760563755398914292209207477534600922891380765572753347225755862818569734997230905755438010050539136889102572518057347640694364383912193650907475836710497154683187490893338217835579782607092487192818316021540315249008908824906745858733112871848262861810503485922877007016178494879610868749997523987189415184959314310775526886019840314637555931729435643665396687485058023853895254451876164214257756909602541109325693108232631229565764262456774949065515482197087814302405848187957933360110681963263680948142712960508346328733437048953157802576777866204351435746471237189777596623854974614312508164995557107129197828566704697737492433539457622263983528010321311751743563285930511379915284923048442023775129339028833534081432615678092680313128246228812682683018789150666592028538855534614593282703667980813484372852553164587438327185806886134830947258205050850839715869679871422270390880111653241981201263708715240809269340665244580166810580189457894651958622828275483632308292890344373991764124025103666948632594171224635819744728909901152705945586424132580503800918929448308331024554140403200504813504820578221576445583864021421911991794980963934227318364875968550794821659343107537983648582737941300394754406579194406579209377182943569143346225849830631627954429517648844381392539309705446454403171376652501348729702859415154380951808963920343046404513437910696976753420364780391041059179254259055002869435606239907507270501563715068989403361005598979787420344235115161346066212157468674452365499268476377200709721343557673435165284799391024824516183060903595823819205273788667325639132082053148593225678474074844714955480548667653932393438101622311935755110080266915280930915953313817836567763296096801680900282255368245213506326723723843798006110812246119316649438204646419253920294978900881432607273114522215239992721008296106231988001739294589854125626275039987129071026319062705721498677424114894515059174714969685555531256370212373366707476135595512494564395536095614913984654102917910013931666248794758306625331095926309437306855982728300610341340656044279163522877783734218508093138092528478842240078597906270499326986290368097061042874961958085843088865704915315078055596696306345214406861208512465851192754657062025115367809905509652377128389434454242497787111203519695293069436599019820339658968182291779304567806027979868035611406387658525685132200581291280886335819515514530015447015093944793446468043540872614359670753922159761584276762831475529829662146614596395111256405581365631653801454108969216434083309777079763479341186538324421187134684412289468496276138833007464246349026176140897180659413354467659876146495179284908519055965717852101391707702767112343235600919901180498500258937165674916208496508888015320434764755835267676426722103435307596790495651921934589131955055714710012552134396710562140873230428602928018873850056466692829867747602037448485657765133748672319325583968330503987804734250147746493949782255449001304031315378434580334124704842990595534603632313072472886438480742110148685198715378831568638757878827639088333676324003273394779215186811691547083121968911771300989692334941317657901534444721403045977771002212791137856860555454918266194169188418483679030639661002549020833125700513148535044217298842109102045278904037443865071552123794334470988787702981083771324544186188795266290668501351535594668415247368250175207657226938288074033692972625097606536170192197120072167687469363222800139433781392658834716323424124611680814320893444692560695456265712160363162054117895284969746303979507811405638496238138125062912260006236877577882315590735470783897767322853536885469739889831513672751712116395216658649435153586781896103467707986588852369183156000338115064940160426874464778025974888586769680299852239546658309810309424921354210501693944984503223812412356895693508353509566035536877103436574896390093526294667846141421179742715106369018876509185450231324446902133424517842266644892831660439151785799206124211608914001629324193687256639213010366093206612801817924459721890169939895894710481636860684098471714096397910805877116193803085892224800503299936883984145307436018105504901438024487814165013485478979979923958417004386550037201429085146267238168002238891659077249021577919632294195030568377916002767755851508232568677960969447410871882387096048669290036317126991877659803117306434101096379612080955089745762063311267993303197385794226492073615189355642693038862959487087617468370908067401581601010213788390754735023408481531586303213604417273256215780668303725545824849400595668301917849529731826248847462022901884835497560951226049933582496621986624523098822435089628726084259801124129667050300956870449311699983091786626483814841739211584841041298103363347394921607182925637036424523497446374962359715974650911378654982285295063035506709509497437960907160430930067337118577246090087954704974676475031523441928345282055002386626886048652784986001743677403624378655639430244011930072916416219912728731789567761756088306816238628417915658554335476630776988639421984143110929817998242940791367193413625131668550175587395010195061628028870090494256253563856242140973409424591807813121759105886522209923288479694565878947998142256834858901922647997807686031666732759538679977483380534264296467341120717031330105214690867575376728334987249710023388009658792787435376032223770727860686353278309574329880636834380813910918678514746805317669304923868668518398757617541454629285931075552673872763339452126825752875523714464195209326888134153637014060187198904640712156622333206474815398597262639698968624321310824354523633165755861547323729616671017300714157729032392770738987624318488645493476385214301581196082770602678150011485023939912665386340173508902848639302096422072869925427971700002215973565299714109480649711623765382889093812304951206470405153609470265161956504858496806542437900630089264094895885562090855636185841885765658102164679741592274271901539177329462135695448374067205823615389391923555856982266692382692455880461284430759914706120378852446547808178406198905408654337655178826941871779073175286923149986288991371666609216857273558931249037246590085528332150990976060855546545827724563809874132558058423367850051014176913444331972797621710536386229832574023754095216337596676578363620079584400409467800000068909100019790531936350314081680515652649450368657019158812844019190357767617987090027598745007136873657021932563906743330617856290446858698007883829378813714847081489203253523535459448016084141074162832026466217994461503336407107401483856506585227762618905682242204208537263430011675582181951178990141947596357845072460182818141837366815203616920094803195349179353461211712552627296896451846919692243095142240504648420430542874690815493693707298951721209745341379654862821033966568045173882780205190179029061926494065262362377197496258535531468458809484130128242279386325210317094566759762021621994639765099594292500173819653402568117224512879161162054894513991516895395508437291273322801917980400412186484526698956474612113317876976930142972091959560539494207918725103017582430559936973111607736342553114894010975280603738199678352940526759243751997411534652328966705645961752595635929168243849388892927974805572256768764275999745518826183925113757159167884519999883196130469926347394919054322341325779516153135393781038076947101536789204661435357020753033431013011730851277917641752360191379529069160176250694439055981750102253814620801242510208780247971615693459435678179451251157265336592397900829322303493203033421334746825539046365844459785645471377165777970725178741550846560034315878227056081801279947971382696370939089525369656407993814288675522816442320652414585906825117852513001711343992027405022322292491197619157276666808312755356540231120859915927982382542458570069787328921591580187546703407415763395662084049334316512361694910180910981320511538850531348169719740131077059861021931840622785961273946308750763818655994436543937587788803415426850872262337780620978888971359587182915362535386132738586327297953401093792287565005210844140687047263880294711878877773961128394495257452378683279583338358108611083409390941087339562095105824957748242423414306587533060954901592703550386426934940249107776285566679312364735414712876473989264290165234985006910584459843461241687195220306738668218747147854850064288990857787970327658803877768210044426915203361045954720765088363599183291014839661927193758936491032166261812148005788807025003829038968584128473082655439994742111187063573471306622475426279590061665915139108576490986331929579758336207425526400210092321449802973473063944369828472312837258927075257463174717394036868552228229732851123162094645171052126335307000409278260626702047730323626943123915735967712083329248145827847034990215520245264217053915806309159902840286332355950358941902289084640069392538145923539541743563966683533736361835271948032528388500277421586752789394135147213481263499376672145838768647097182616336480708596313540325716654490439538367800382435747856081301054173158627859660096493139836426625558587337891997320617446264046222182805616841139165103020711659352759561068142491496164881074125518131411512209462550043247060696130926365674915307344543727192816280751088766480742690620690931285958451814091653906624987731217749298752587358696794902215095016371511224971842629766981770978796564546739463740763828739304090828020221556641503319012262100136614504015037916903817331041168115103166437707397185265901200349877947450591633425530590133230548457813377256672417567670928239185358039626350701030536269085039986268599174577514414978974999438586116578686864611495052261373884084741899734411477162992429489871828548271784547929123630978042107101138516775222103039277205005537994730294872002268974206287006217561622487733181497527546988087686840657777566492148988151198240501052182601694844994006400630419363191312785263118706900417939430924964497136232487837519378006217151116626699026464434998423021512584129416008815655775159310386833793861135549426535148383353657599480614876592913491440350713111478169301073498334997790398934797477358262620751837251381820922559348766484441312912372116222916755900003746673435633299878967833569082238181365129085700055632869213369744887608432474333739582633211582379850254050463655685919640172878348473406550151046903603234373520837567256418558633885180805454056741996890793500585519292837388731721754998246448967143454402164648239007631342103794329509992010442289178354100365702365631965888157680127626980883004798225677802450523581752487644536328632690163735987764570740498356918551402180030297019365496453902611562281475019776432937340263347908089589107564984230038410299483236704315625376125213072727447334287624535410710261603437634666497242238911787489724756113983077375216206765640401269317576643864262142033632952987985349200592499245296100304460077067384390846778965084228089085975781809287567617323430633265082689171247974514417477056202335008646590021890163736771022697587639035023330693903623136532845258480874533369571018477947473138975992640631125799679722144923073714761653804020718827081872405059337741531660894337240111602681448302932880892471085015587621078879045738189191842088750436905856001505657852809511454767140625217143802779389020263070581080357795157454783887111474318978178268331903473020173881542390009470751637924898878118310389635746167745840160263676733179952665762061388369518161328034636679911307030595823142677672133405594498887462399665552111257521725218430166515361362864897057116230096349175990651203595060795252653511795144097927746888882599979609565526670100838535455670930866905813824913857179688253742119314153049593751619002890715954484185732364291125294965824505262180423773078006926161387099221561126304977643505863806309256728657652907438110275921016652394780223097946572302214713857278209360391743605980816574091610192787984145943501795150217050168790803358727528044388416939393696357787526403616502094945422972533237857972101464599060135422633087002771408839566217757087410269027023687446792221717973243407262464092200700207531117578016238818824095860663948528906009356178434312096588284082646519284796042974990992559322304393379189843976804346499627784785122105328907227122704330308202788708332333708975787782288814254733422094773994855070283406217987376258046533036180031636221789139280715235199709002274619491623017133778562566289731521552011283152733235500762711852041270744813690248756097773724952150986180566496308052679394755803964195702648911158100530005820025865170100489533463912874120702646899076339905543992299126113636202440358289760645872397803473698623588645262829879757334514401208787677840218058504322158723868558351541517411158174919152948954187466947094455488766100134519292357914024964817688071707413553977299103731295368889774961878166065032970892989448853434192487351449251900649760336801145837741421598202859849426102410142330708187575510792410405629736159056984188957516722342347635357530792621069458790428625119497810011804397064581540291638051828794878172604287931859162427902400524076298118112164322735216635123378038946760295518988828543340553715546840594330559763983380968012543852593538391394462226086356677189448223607945134917029891599864501883792894220070544929467868822660862169397080674885641549633745939850557424116412411305201102112510281059835729023730550049538829887742564517086477274623594163022153491340593247911141562086742002129340798187813099605497858741122876925852157059902984373066495931549917543788685887173381547366911721026684851631145149284440142332708196243313498562002990588757888494240787315504596053444826342440491324075062463639451985879370784611298018079329491462714225680834657332232062596368909474267108069185796722616913903195074890030919369973588687386742779279647736013532588496327839683900996732840693850115907644849263977784334340908492684112611208110127418344463118843213211497192314677147466190958469005881756803974407303137436160617136511387518208251929484231349271087014685176757451496601101609288458784282247866570982082329838951046828003707454418377071585078036693938605045948335669082958778291571080027545547060043968188831047480722975682222318953394452635876782120416405811273610253266366837954061284959304397178404883248826819907310291495835131022137359946246584342958903157214271595593752646950747196868339269341551446950973776418633630626664554886721243474768475491299745054663209662544358146585875242525484487093177175421384347897777919738544077098175152416604234228852188252384890318521361156635746716480566639375528827663096206149525140852101497603478121484669982023073227532101520187877667973215274725020381346139229454927819973143806904649050899811180204219582122831789116443793273389920571211802679247342351108527905427162292823700111178213963036906939238562099261546644100817271948597148793514327340081889001058325751979205905295406466393265988783860007208423012326852265480031702332360624520541509294345459820549618314633193635941436778842338632937800414011468621246799565945629505472210654608418166321023404143849351660426434569949475642596091830694472051282199458991875053676174571407382112858211534699379233966301813472853888419500064399012653847564672580954425472013160798404034635246595599090796669633943424037102905455080582618120774252392916319601631572181666164323838558303866742720136516790358186962611107654667647345186826640970618721967221856629951273501227526750237930781454504579042086651854965286875117565125655899063085783097992587660403217646046202093333195181477896318978304087825481978582943038467067736143686590425990645489784625988873985124243596835462144063351978233855824232821048045204431436708072792069941278053732885406798867063834349390623021322269370833442006945023472401174662728719003405903982985373964051596223423952888156740269645925379768470774451971219268750351239375230744033528322901112271190591026735552195636921296333984719400919263463016939595483708054720284695600955376830004303728854802559175722205293318141349877114596823955570384053387042866732801166975921506634842587022582046310733021396497105396909482593423941768239017305084649430241287232152492611386528603432055825699742488706140092566831723535409241137693484794617867295582865156898579969160734686241119611495378655515941393242312420502841158912742459668638946591027299424681552520648491699219796281116939270042766689468555785640408786705873449168366983086676123936754233889517380190643010356113624478507703833235212651005983816554422726359855340732515296265321297994484987846266131828505327822047787509344491890973309192357951488022571596140755810218807460443242023276459954927163032444433173402593538706681514824368539016183141376478224760201057325781774443440675432228306400719076383192008598191957135363746180654173607066889808166182389900682799829345165337323921354401687762437420167225561929058323964699311564366476249144021020424080817124598418196103262422438158532905320051782558055258821747719076293005166366726552954267926168633740544459582617711076394309496958108928162511644278373521978300166555918366932294926679797278611616579678817952008268898389685948781901754411238907241881258060287631945210140205490283137572442805997243449015286711670194076356421008729375218301039343396329324896379749223409672877895782217446464923997277560198293299889204547977050939116838920178603847692718514300270088632798412339096519938172315381054279723391671242467976206625481113229486176057539861823917309430938335035477096967712988660921409461297243582891228591613099511336158276128874345680078136963422195070891982617243775583957238295460889438873864428611989376674196977280755638660702347270220803745683947243182152840743816617383560757063406147519224330834273927100904547350426884265327934882099046744485486413980065897126888036214082741755397387222766914880901083867942840062146912074915553951403522045416123715000560229581536134459080322253993150997273278595114585102403633637190773186957097965025320042915435283465276039686655644824704149410336309263690686174631699707296796804479759175316291151678254096122336464977206099408888387565421447031851272426117334842476144851531024639775199141667139561523871438204375402408123445981167866879154144657597708987769809667796237474997381661571231652492670406238954996719189622554776703827675062218047677949431309122319690410894398025535579666511263042417371503602811977305500086295830790510081198124962647909195008003272844425262170046635443233180247245966318733282895085395135394964451336061421096132157427813046533108695618617929503412256435742138442072684982298586606722480677085361525842469416581616336466606011823211535500936524734005948658041125329852595894518091459506545276138846753687016553826347325491538987882058945974319700849107449708063116783154185295289544625105724645600356034371422377929211606002015921575006695473371294464472682848765039131581303426829684575160481316005140100119591848007742143870859236531403234854570737529028709748221086811464425767015318572131735988779526936726070929059246452383650964027198657255447735670159813642722283267798485609383179566085364200533828533014161396948541919103594219604247157845327115782209098124714266755919840611501959996429780084365120527063050017475447939643591320144017869554136505980650034143980049777638707648331091725940328474732283856230465333473103790947376115501401183892671847917157202549497856775966101339510778884192849289531338278418368399225220917287185119148859892707144667289833608271677578014839736356388381503674223301335074790137429924191176087427230451013803435427425790141358981830108176675885069887478071606271158731347305026006709598169034595241061823628308814551142071480555514566509270472886510893170794418353004802447064205366859752088923079294860943354863792270397368804928638819421383628071253381930897754735299677744131841193895079438223120898600792228166134822805980755112788140710369554897723183299048145984373855877625828337955664063516430963705873645957971173448320507037157316147775694202477951108682275161429311542178730864567895183785588793415624960909438757009984757318611475549107757186234912615763154464796131078366358915138903590651812577907562649583721188560172721639396135458642566887062482479304995664420624942685367985890954474498873436981194935095721554746991761479793862290725869503238581436748957713655047470256228057359600529896377833342502221733096281820809543663659488912225612461097407608879342765014816960462262983461288032973896796793576507012544502708132018240191971726589980252887474445152323016832858992059725677718905172084733782278629418122778889157500763594685201844114944565416623301474667193800351376152947617163914512607039721047402511226699282685609307471368600857383884783129400013577188792941298132217407647961689316829441832989631736812636277916582135395719253997512765178495581550982918484179692875017115928666427684186864841387410315460078793470135831057478081970775669009502504583795708836183735307243181115762200416991408759664617656378641354659232455972232506735452802580992474101241752137149698096026562279234238994262599055037994799944704146296893975320695996747574569260299237877222464030744992436780321349786276017004065516690011654404735471748253641408838054408483143793676207271629827113270476244752039935832747219691904276316061656635341451270542306458505213140562916260279313925174332373193147258863754100135827624052820228833016469845297386653758215903239664764021653215799921412901846842819002866269159922782779740437428636270785749470505783193789472709927951564545733738112468237102533051324058597832041858825214613422758560148528765139286099463708938435201238479563873669914544226079063477656567503003402165105762465265990802901869547194940144943183515349064974818647641823263941256269473220974526843457870566524670563616411728993337606797177209605783311642778569925814901286996619064298770343254916146426429944335849127300112570103077017367633127142611652188400556932762876654876058040984377769048731007636249226826097815475503340778526006513447661039971957002414766530574584602181912458696991559468906341298665312741076986717703169655991173845413757743388093306792031404189647762890625706062902538378840085161233078220488421960157725072803431557057917453425126195556810423517152554576752217468360334269817455112932225226058655858047843396413208117182266249728370501697576751374826298481977680244279388087332757647037110363255976523982843587129607360579026007927846890967573464961254160255004572619000763464321742554992419740297778577969844465383729759076545196557528045636905706078998241896811275848478895668274050343376266992215894472388237070013888845065840611006112508816167334986643222016858482741019317291841642009714500941861070178585073489467278548081186891128726856251161767298912304136808594851287286150950414085204314683687697225127144540588764824345329684406134784840658996547928378964242412674987556557983163358838141599888891577824096183225546982249499424465112446324336961038160877947310714977776302859868598295446839510085448987834108482426821968000998394151637571264772590199614060906798651470158034600555475824920579181265824784924533656150564166779139983167890187818912689039726675378860228862318288625941377221312614451506647339683742311192005556191865147037248091793165331696398149583245882037200451018652481937854197701023984871324663879000603273598362064920764245829908485552502433968075265829496778364699785939474144897032708576307966255512890459375260294226212573240193516525221907465961428820458211639759497480796172585018779613517585391586050873409665180389052726795470658173903854568524086895422938157186268786137984294236480943760760778237752326842954953089454275159764270248533716672059995678035637190817473516527902805736661522492461494063604437712504123984413229996524340107622073691725431285822482384589703859218798520906833793101699807581546170959283301036781780888896988746925416233718137982338392455143039121865551298564333409986632998317786810531271734146924220427289683551179955728496874742874480703675272246686525589701632941966623552045460022054878706491424898677683753559459892199765155650308610089134580729304933155160537672507195992599415679549559419447125468948079707852104657036265734879057927930613934251752246807009056915445013224228585087092999947600797059341047077214185904278504486698056266143051906174719655265408772154193870617061233970642055049213281953282639351177054438678006433018994119265153846789335897884272197968813254032580317830797404758054562370704575711889364774737399584523056010901674929522607828263028495504714830298150339410282981294691572257612082564938029888915738601466040734948665847746080351595181285936583113722274427412283949358616810659819350542032927611572913339330442662282294375650986239443099506897872790557658399901562630245257881934679973068350180935106250122151321907329969598317104244565377225157379526492492151317933529009053155381572175665569428640151280168489785057155733327427160369826570209496031669425990793551807103441646976856628654732079924346798859688669983131358672517645702206801626839650475907318760812914967272703696886905348356377788881376351107259745543016516756541284073994755849058318119386628656044789025315199642194209132917647933883162987366111709254855201887996628789657510615733548376076799277843619180408552992525390304470516287069789904011076946300056469093031967193203200300008077245013565151666071800700301218515351789835876937134106013407421522020736225821492563690525780066293574297654087085186552244354740902011576963208339362975756398329759895128027335239387811066107429514385849016120842220085592577607309953608494627484847038515787708767979754564934696122888889147687003891681965327452725402248655459012471092957214775729274859977204664927944871138632271283410921056259028539769303673498403377970974373212790729273205611456094860560826711639425681550969649592971476849601600294743163178308002102353327021618274928400901386873879413099794441202567608531601099151826082827612135558531527876847169430601917689452919454706039659910565006174576778424266416525340116706018185101885659876023926030489039882789777847401731300335385663634629813059684926702258513224165103801822670308944981804665733234486619599901005700474673623160475561112974760955445453896962611838113921571848206790157944699165410307089984319417782244092703587377434398431571160127164073214565375491277395427464762407351280592015731517681376334940565262276415553910542629943497580152368339733933208253912101356244685062127356512523553810378154945739779440509207965056605241098315277998058937957786257601264689930257729217412256888787007213209159659197605224955867061307757840319642559344197237910759969585733231594907726015333382188028638993899634917749171628260761384272954244043793671848359861976826796510705889297582130946435291623870450130897001824621843157604086499331293386959494681339525015575232187169409695753264802013125865851635108199670272653284944395450999167498545773241601774919372309347281011432052563579085935184703350886491048212907560543293757312869495029938769116634153741106576676892218680686027674645357397784259400180809033042524905073913995260389613017493856240810837374320956591212124063367631390869662417380030848746796858690231706601741135447114807620289255686310265176709452335882694535768835799711239833252846548993574842339478260567122021359847291168193368585940145811745643926938864517985149144398779718792684618664749863255671505697444219560247871818034466554192261075459345284249151129399031726080614960349393087977936563161365683910695367316116948250657587612336656076213747576522911357609667257478496455550140889507246627651588205619404496487559727760238319016316917336751255348578188764006997731079609316451591527802453218372751193122827037540132843705750904196394099514019186216394829695663055866225679756695461822891217031710075297288105341273667087476472303292853030981701583953901763305263448399581247136978511878600477245068696740441165559521913749099576187492821397999761312236597058624637952128244067847187320353484871226632657086245583806499152245882604806344627371080672684783865590210998365279381151884947191357040781832461439181455306176612160075317369329095153103525562859908498386642541028298748383462283524717173451308051718374469876905363330985807163104026921349293403504168092555159916591024649773067291010510835344208443249159615408403844752266373109940554502104568088081813040210773718956139459291351486853586423980564993849125399774460367351686314257499021281482165808762620070939852410234139605163938290128050676730378326267707774969881315718285873874323637173351937989303619314462201891866450280666974662684480390242686329386429867487290370043518192413887320086530635761750340512771605498142916940813751720283341109913346323067061264490133222017869470975675213305514509233530267624090885490847903586523945220373946263950996479463575216310761732394486819540825414658078220952484789382668404013692050907819764084101156505721578316360742240056858347747045946141064388470528403372586358849268187637102264984986546574216341864393797638786900263874701141085772996367047570749976146903933597327342132001603734986408011026807666764412816685157342854164878062398182813423206781358246286519954870699676101420778291939737512575456526445596047143018314336257305177836095137508084010478979962662602439421216704596158530253032481585628742110090768745723912283170785576910701783108534001379567210576186199427098608848751555354148649657165238690274191665375573015139918244891059531600464796822405714286591545708951365695055585852020809808691331970587184968410782405286645937634097910652275857118396482299051079413462957375036813414563991611041448914376318548109691680555803320200996901936892671705935520916553611210141540758857477859316473395022098279173509617039539311512238290961617767728223530205443620972168840662056877659623055997876256795470209739872406011723814350614342376594667950264734447841926362403346416304564334381624452931629235539539908472633492463934529949516999198530013516672516740842355946439911464236494611595666861697682530420482917490474858340207169897753803094110346257451942972893599139510508120533240832329925751912142228897663813576394028688111365759060901230452673438275747853538246166777913488538405448566991691542319535141789527365200717032278469799593100512005211428726528343790855690032061069891421687341072443903377761846435951854958131837427828308693142430250799671713481292811491007474478032318450662841112958144142275521720501934642651949688677885494962397068793824352052724654107274601591294219213589841467046387211040875572249763859100610235583593575964504977816457657385482954188427550991243932029321992896648729045192220897523091150280992217522579718170022560263155228334183115414831049632020356362982066981391084532344839540560692764621056149242399583987867091285108275697179162433277728648078991541176230731830998468336179843501123963015611443794534576049790322207556063319710462449184079491517583178910332091566543626673736258442900073033912859845256695725290026852638696471251630922797756339760113385889741013162669678680747337500962400957937279634850240270095993357494727314174994365352513612360911148414316650935919370882708775422151192262469072926641511453612621133648248015521155417865802356353616473201204694709177377736796697544594859387547250995102297930567115453192102559963989388528921131680537690182323998371457164018820909460333916381711005725544562430978925392138086053541401422576316444983607530644818259353930528535225670914176661881346272049318424954563322430633064663845306250356838501010116469254280054223629969481677189109561755336498594084744963078826951122406819697862235372091574155777169609604230410178950581774021149930059846182289546005137394171964125708805380666208979823137555423024579279309054035440963569541550098690561579050335727315293476814985280494809438387558678601796139773575095388854871611011210118769525430012512969228026002761096142960352895843743521429741672559931341801546595375476650135728824555685267017791529310357434862667856116652278286375313016511812281705868317814290834423426059624547163793394133996108213238250099869902517080968318147991662326332246512233585053526376846127752039305413194959936447290451175111297928004892858404061913221466763021192835070161083066086551172299791876823410806426432896919201616887753415072157055858562588642763087427245867920781638706116233175423449676616290436358740023248527146454280104354309916416255011794512195412540058525427323055918085842174375618822735013598590604599858474770365948538445010975895100901058515137090517438393841944218446069635063195861782328798283803050892170312041356508115570925738347127434796878371618799438124596885444728092400571368407169929434696922335152134646844258497788740271896696202077016051599477305082328991746933573345522488832409689134704342786256443394728353767198879542970497139475570152736844099452182093680922129046936680476666008159958432345238925577698870513513333338101172242215954957809789764539661589092082232589859866649841071144796804013978964713460667719253230183441937366930835694909560552948943156659318459089604771606540621141855100567577856901521987375659223815834879713867795993327628478404379101547318862564792008342839428090373029629928561571401306017184757835749877424178475247445512061126431935469682091043965950242827329859530721863872345036873414943879435110530935947868475025555107746253539215339237712392345221194438559776452900506787273398663096421840404675455079239782167891985787523997448385437727094667484437022028683782879662330381608152917599265590956091397785934295690615681301888595646847045506485814458308107160763350384134580691484920596400011016817540461407339735754832373183334132296423712385632205993410932827422113216078819748748334727980029590296338941171521353441769147328821821199373272315743819470663852399885343666707862251077832971317459158412184688677114158452082744747702458251301452644052291037554051971768227474275019518091770243197593688040565577228214054129099493653001350033380635932665886243244617551398751477385886143784598985489363943614586297871186219903057910300674322991347531488976634277555853980207944831953517215773087255808582395803831466468027725247377419112389808990067401061518005038920291116168054530525710999226082481950359128994373218783305373284226635673548918012010553523506700186565105532406382998384370689368134922491333626072129408985386657771507241223450127237625765165402083675699644382969050338544577224867317764242462657120738487681532414985547211152042663752842361735191535775611628557167335531985382914495333628689898302576013559404228601422005708270493915019543780291127562155233910193599226198567235669017914729764117816674151859883916087227447522066053749960154165938653298258852785007426552401355400931547164500705604510137967121699027128572844024942047612196909495223270547722944031657708754920663769326488082070917178963469698062118035450601540618147852726441658964405444496879255061950338905110624254872125320466073213615754818433162627185875752834830392806273807441500170187642576533259693847224282127279258475943203937977277045259903257340213595435693730148377503255122922127023270007261884993896848688520566327657170618115707720706707150046497625954116319160468654440149583664630069830663782346944788426936978440041289071715814642863638144034105874469579370902139575833132888337362744331072415513557425970651056635161224309007674643080614911736692289599226454638042422597694747510086670781745397334103596411406802316187600980797729455071233672297310212437638458883832574202763367258113597983859444875062216415571824307991738205858775010331524891022200884175958785971427785545179395481995453121580166663541918705807278023946426471211345500530300631702721445107622402735279291249158209561587560707169108256109124224576327357044902785013499406270555730820683007061710309684193072226856380186641924301795905662508237625965798668099839196482611150674935127327698033362030552397979204433643507264793825847548553749516142196978240073107028289614425830232426217903233583895071396751179183084227409419770863718908385687937389852959770852208968282563161856648996658242680188053570311651392381568602177811842491725681218280783839304081081185756742953814890637137147853108023020466245313911001456139307043507292337233058903496128516518554348871070441629093613440227972181120552293200317408441393337563082557433404036671840950050166312107978738860689294260998367400706451301489120247258805260141895433786600376913777611445188937587033783078618697642181251631145001300308122041867641926381822653692095947000304120773651373175552702224338233957815931431908495676800109512417633120073087576604616637422406196211521315233775042717406517046329513340128745227304836509776709922698155379440188296495136694116585381888182222845759369454959404364036585293823242106076194657529120831235326233149461568832563302633373613672383503639364756724604959951938298046473815496898769011989243286550438389964582966080328085180740615389475540189663835314570989172787732953438536168164982568091063503035950050153314867397891895317184015979165990285042662581931943134812066507994096061115229191060239319282321311834117522147189983423112058085780267489110041376748979075351969291921477191993510694909016619192375904325113564195645328105113819720432992852283398275019448226389041284141015469107767677302867434973328338572408914878660955969019823286894249428943574823411850899891518375586964574971908572084676770820556201263205096037064401816227965241685639800792074197808074736133945374096196054500205502354032480436831627201164403082160464522263139675398927821560632613429143334958462352758440481231429251891203442854020783382674860698500889208317686966002240673339498369977173692438596758209458351536005014421475115880632705269712351847101841791899697525962840365290566205786146620793129467720283527883630010339393971663510493171837191892071358733339915681068818513301504161584088298947698837450425322401692810871526572599163230478286798295224887169834424370538496141035883922983683858935527275762761293797974869389429272964350857430514465185797550019731144026664136184316277653099550586651514436920365143170189977426832189316384300511104261069211439812042919053012185360659923785377979392192994331508721079053700533725603111764906731226212935014888348418313802467986485764095345959516282967201024973364341501378989644721717985310917095454858963868327264125424795952286183169020741483183108466902856610680453051321465682389325505035646706780859543489887210715892127365635283611933499958236749831082181315205902880403968833699903932025786880841082442213779053846500527995645290889893426828102486057151166697587134018045757539618029700386447932646260912343162047938883084721120199159938127401831781308393299189041781633689716160389234986437357764937206501566449508573418607758371905237110943521035921832602636219943701633434258728344885183177734453179761042638729243835371916660472707469054139669443170833157785903919484600107636199516189522665052288042296751231817009043413934042527160120807646164410334978430196100844928079904980555714563789240572589912035618493545910541881395940423009131420671505019707391732909835411752778714406782522756421955141378912849550202367867664371410820932362393651473531216674245609179906599725936384384667703143090608591706980160290435255390097137521081732571059331981447458858538715486224360025216830810626350617448948280413380819024635266617957261186899179531707995365300480835320483746924237417910221518515448966573276257102873600072854675939335598293179160782442966825315092881338140584202920108607000120819546098627668534163526407125176468703114595012977116755254697874619979448680377233813660784033695907621158322484551251017229506366124478055925365597696629461336776927922767217246520149598604017015073320181412016318753180378946979591345238216395668190653424156961738293343246146459172296040620368456730333152976277496864350861226563816301498884609997377175933143229086391787751336398890399922107498758665601788381911600999536763193216691983048381404442107170474012097466847380266026869773940935343965488015368257203804602286466033241180014846389374250548632857643062293273223148749177301815306004118403595701098287996220707155649729887056037713033376983710429242359384283974464787722748223608102294598964847641949068557707907238976500595176968856472788380476370971875210986709500949231018388794334443283429323097626290102509558223236890185471551554786519237125492752382792137459659341499115481351258560453005263506864107833910434438016800887674369125017764926055585041215125167864729985502908586277701461479717042843047299328385251151696069611866994508358147655441770625537873423620696945164202440624678445588996724382609519737220019696328674570661265182033344568526319312255151561231662721328546353423636858447168345286524970242579955056660169198589074712070441910445314428436652222026744163484460208050026801488809306720129188562690163403802188158239749791526732595975323633891397684375830618714215029340824149601944681609641701049682958418028467926391549439882125880552005371773202925419410753470639230920555810783664568678868588217947724421697723525863443330107023128288253064780983416553938018170465479058089545250283729953976608555280132339461974006714331556772206304117745180500486453790017664283122658103350412064227756984623156479811216441654170223566713889491184110436406320837493117133959079506365208091046572137760579785509284968408528223005257644644922560686464514508314942319923287136127885892610302235711280887765392942768979049637021622808582369942714140173722169598746576704703654765349725967822581728773795082998902599726566586362766891343298675314446467655236840184356539306676685462290859752074966173446066795938613836526048388517132101857805733109301335854064786087971027823122311870794278233508601803753243703549093094009195623941906765165267884742441685234854268917188936820572466892189575134175804021769972851511211512740071009608940715120581458472728820169594505412850544694180564966457249517006334977143488637232918351487762495442613310769483828839972732098166330628298381850573830035574018168630012344973500569685529143893595592612691224006281924830868412472617194603223093859458806691945806901468977364417575819590138748326881370595017226568652980806986365688277993532298253962055437422119783448168408228537699521034944220816665524244947665901653984109337119283028897987435428656524719649160115896930732306031888782949755722328985951076968512023313757817315437737416275772894744153739575061532215811052918123513596366685150515185337568866503474566408389401900309575909112648582511581362187336967545931122902309415290323221549708282200961476311961701358959781638701658466737703678469748697504965328326156364208992346719457884735079749588588751012369223503273433577602047318155838453216968062874747991146221721803535496355616841501575332913940179971924612009846498996955221731989713531873614209286451258833960260303842000008060110038687442412403200468784881207083182133655188771914905173105289066084153939365156652812536288004268759023044004580158703654891052350894581585243140212130883758881913932085288095852729022149430431167691742709234447517574405476151373978786405847329340897049441561014502338023691404942173884037785279413860301755578810912293845880867371463424565914073778203871945767867377553113607397781935227128764969737787809445177161830535189154781282847600233858203755411658068577931380660339972753643288910211912204735439293766816991363482193570700128145181074794769488922890825200608519694446063881405027558440260290064288125810863228712845942593891275343960403659534063380476867885817132819328181326628409319267672187589226800932969189461088900130253198794702537588141619806839050585827162367818007928819689478586638796802889447157586277626580923247953732343709711278764083774551272896436122686056515057110198010041483416059388712572897610143347725841042914203105523954223348877570021244892235421015508079433958983829918122271987906447206358939599581021034634889553115385513001620334010442130865307661309624189553399173136951975034942721951436666220451019649312757974189228419787925363118834555553000560817492270873541333787105800611490024149095177688452337409728531763092036911048720432422862225068039216076920288151245495385791798778401261956732442532346277406143763419322642039466629296241685151527332247113104660848475601953224295513298820153885474134305235821096457084960879151570371212263954783279503767327634733930422751585438811088988550699461380657519204936724498179190490442520897518808659278636001256312494696675446736649660946668827689713171226842572652239346640615442526345479181753259076103125369761488849143570921760063227577154516664878262309552275071753546900381076615318257214644940605221456075376095848255173120803549756131037472500254332218817917223885001843313088669585145999395875411873541611734071911350606332328963565945859558129847580935839636363965161691841768956963350198274530526380586269960619961785958206651838745828646678350737663548374581138279889469792731117843383004618331195866728026369137741333527075568438704894044977280543703801478683305201604610439152221063946495633352729660329965756587399362109896735946329005370547884552041977507766426742521567325930697395066500382022678062896034896958725093603871431494584304948770280077758876742655268519143983968210102771466875035715889260585344717028300617602129485678642076500713994747593112155545233785218661730904811142500065491519300117788642710953292153431993496718288813261350282305432261068439295367169004596952933811501476673886759150765249143364226726564897893112687033819581007230587661961687367451305864976041165031887606904571469124008636445892065557861812174671330257029083859892052944551053702844894729077162042878636671424469481043952581659130910857104376263646156531244005957409442842545113167447621241170986437741894980529645518039755148249759397091620191090317162682431284350243614496286127430445244274227878185540595942944809992688651647627654861399037949012953280927577778414089708911987980032683081048238936174975253799590886763748801697525058614963749833284441631004471454627299383867349201131704945850017218222030980315563485924985603463307032272270509247745764922377459200604939116537498188767206615905802639964626157464419245682696908727570419594132721952357404671475230060894358709826355023365549664878573405229303425480554111875471632937962594391754028146238031202198640326840462491642225410833528795709633801924822797889453833723301868256063110501496501680148838608225344672914086977818267512503317357314330872002296972771396657399068486968176757565085955280029470232424375223125197702513003408270210095761202914981654210542456005911744065237892430500634973142274904823394132793569661929492740645583924886156577643331643373480746855738208327364319061942541770462651785390595002750091849012592030065704899402203105040214956778111721682336741063338264052742508798515479785308027840123486512880028405658687961567677947163290251848749644811913331443265959906144445423720221595606345702087629521381986399860775888227198818574572719195775611718727761089380783520875390359541931079338534063622716415468043269643079846801550435107298669623398746464908892298102723726478607316740104824775675834335660201011354525212950002406746163571214236031499806375342351768560916246693241466245770020944056449198912423298709389058445831591471050137099726240005541429518240123163706007984602433917883909132849643149433647054948477746570922745311679211554150084783015573534165141053370529841341957862036111755466215052387203940435695211618280829761379496987980400377517017329348125460647797907531108380819022683602590778420018908391618478340576138321052953182204156936704323094069518261718390392241167525871845139703412091564351489646690532592849098972888427939893567208987733580673724151297446444423661905447047687574044824687596175283690362076337447512905539731530707109292078055706711513846176531720052972185072752173589301722952124598218310319959503037181840054024452370018559028258762725160760869165936789066293136997126794455489153823545754676071747274003881398039331374774436103269074215200502929431010549743974782525387903181397006357305789084401352558140700993465955361144877297609989607590227494382665304438585277706171561798026934695784208628554326691506116593398302882624770981956460388115444775427090450809753973822855572978667766025254710285239337574546592124429612918989594808187158567153484391792537968675984650434220630022276385026138182957367383042697290182874939494422127867679858559000417925995768548567360343860979688872591432658814448278911892399525644057372797309673290156275616927112968239082820108478229448137420500281387297291777818988453313015198775047549684615350381402716298090032379828539148918412089412798058064590405130881792342221853598508474909042084240511849947429061425566430364537580846324234504276299920894216672742059234959254685197965677139035498622662958028225872272841882538786104418051732499398952752220148160335325169015631122015505514934714472509142747357016344512595124446247023554483218882100340899428461254216246166024607802901910244233968025855378144993404944977099611282070610178224513471804876767862700579095001335872344170680839656520422636334826376006286141449041691454752349498233818490217624651287557072674035011178990541371227990734793914571762393850758003629787637687615462808135195458115973345676764155941626864364034964572071370741818804811684315988960124079167302516821917587166004309887880128368290225878495857224260657784594553305776488760543548741158690098759969316096992613720554513703512183698970971038735544318360378289977536177865882062565842121847923181977185871606597333229514400504314945120494217844893722907694059696799207880094829271320680039056001325757203220346789007030850870863355404889366376292053232228123664117734245358320669041676219478492175165354865832468483762711033962381931427890527742683428874359917914840491500137014196720194180540689769662860757347573380796076781322556484583524815214813706221820809377009192706350851931897692260278876693691911763011668655483874368685651725004881250626597741224974320952951400668489881025177305539796975826311376077762547774971558396201803001670554294286844098308422867218808143290414266891545133217808194239657004350802732969700672465179375912829703134744001862821919776506870268812045931044845585293899897661845974378363782466513515106634832849245976009801536742344785961811727081753637312314414012659909940531360262172109401879068973844089806976127109763282265798701779610210069789655277889537215113436000362532076639136209673591780437308447453984730818206008258077957982892195715413758332005694248175608122186902153295183090656770962600332537077715155936804497931404655861805163282223836685959367954199241558220961389508788339985984963397361762073957175649771191581080782415190899196872995689714958153868547921204396807809807333479092094634665004821427455600458631958687968170045507349036393929123869410876733969737516321273202832173101568672057554309134454459540250249845735979424031844391934663055907522694151041620348859051071846811939266630629350689207316361964451024332563304915572859432029721227404026090660644137444808185979203761428692301266564315544361344213025860998059868940887053282970710815376597493579394668002266685891618169118186824843592357147813987657537715790066187582693851533961183903619242821553063417078285286093777614840470435259755028453609143597469927891391596783648109318471543835411965240368811830807846237435765918113926343614528004777081922709408368189735955677364134986598501166720247196557364418141206937922663757953219892281929501269432363657317297051386190545972096058132516885361486072102497230519740722108989679403864021105793758242569470533565332170067005048911719762897395237912078909863970511003744228232848332973004941056853915497736461141226969911584781159860471836488888489777649284685590511107736509543673830400154363180857165951712640677581874108880982934856730325949390390260285852240134838838232931687670052982639683265530501594522188817137250634625686843253068789370327430235056951497180431244343005599587662443863190144596816161198854528977370158571809058004599217868922456596211629229151543356546916171798879629371291852123796723918952083485729801341086658353316802088971325346495461346496172073372631901645312738145482761763939577929546619968264437503416521417232258725494653973767685727073868044348397730019209591952790115697756204791334190615202746283425913704645826091165110571876333258783007287875426852056691353465130901061291630682409638290443893663217003391439432653283993746418427135948805186993683899383671660900234153965569515713740520885915218269070928230389490628614842829668402533664974168031068678841963114448016258256733965493700538606056020825559709913019206910185970426989416562039656708092991422582477421627154211895879402936752432529476404196549274232742234350084539219385816608111049373747653430247954073404974985240329246771041428249365485501818489620299729345833295638001811795091975161642892502821125548178364834397231433873318150788724263584236873450563179534701271703749663290018033772653063657728573168733145859334910271648343530601103522352821209558851629510586306456628182414407486118477217344828259303174701373949908223244382018712672062122554725236724978128860727652433688906270814948383839464882224323180535643325752658809874711966608561431600939273024093254950566898056535077431754182228031364971084123502530933743145369707856065598463487718903877356716147319157363993175182504703394947896295221612776825672976757988349198938488553186949419755300132507237883212004541766808265746569666251459265879067793352216682691872360663111375393052049968048805528923787998696956771772129917758259547825427202314073085888921825327265291996766728358717273651034444797058055706649344951736892955712582352043996767425072338455774689464288332259146333087894353452971133907495776558954001623039136980061070060800984772871086585167520183162023090167174852491773751208554748337050813640303255553069818213855179644834699375128483934908677829331796290321020590099646486185176328412829773253431417960636954855628961143176443108983520563235719913258275450002098789303884617407688712067411787608679609129032135703253276479787774252444462159073507753386419274743733753121647551829913136696632538647545861703544264095112745888225934016750798443691915900450570235941193162536616916146961754931216670254471834370183372860574030517105717952016743339735110247424334794750927443871524185084621237076768079458066086333595927437622289441141308286475150143275229886098015583549325139667825766509879418630473974033721538582106327745081265227303911110495720711358153309713755082936361275007595661536552170159161735123479908424335396928123650129940237932016684325460347569995417334160228126728125230197455269047100846518412542450078454708791716934391819703519017009843829020739322831294317665513081845503913498315278131837642474384560823917032653083204923855184468993818677996426992035954755551880630649739197733447115001832872092482261723374852264466057008891221468775249028520903634340841890675192523588680643774087168929156353937523003298118696242439996747280099201021133299733312828088405083916655501792039790154761626634827684555305336929973765114975444458349009952436479614302374572169072113679328956881892204790222110317621396616541581833551216292372065571964722046459362219158609798711944131988498298876006901158130213742017054921170244364552990790881210155368033815394774704534630354132682488221395633325682867097561576068421263332079868522862782131005768108844708535754367179699377037966068353656533747555629684907479843727118718699663686361569950343956482729677360992416697043309623738054694706860580856186924551953752183470349719822666002103710783234883814853686989896408199463155914625431233523322933753088485058721609433336803375149319829857689714321654111385391825596305044198743589474800269448243351323259691962681764942999998315363220796027761892969257115172150608395048364274464619252726695292338146920329899221569319998874509031769115048536001145046330016275979864379778409032333858246777073384430997378107665516432547881041805076238141677146908219577574588589088324921226410811416426467615430942060643280633950557745218239089713810135970688330184454493263726326426017615673791631926171726244342543581934537868599321819122687200234545810933276791403360304025542256473893002627529313609988384974375515845413691945122365619504523942592004535681971526804100333465204490375040478494609027796864080858281749466532695840713261973423640951533855027662287048880547344940598679740880842535025177163746085768072684400472560381385617636665198369050234134753641943608772493951097117784645473328984356668914096282668984994775173360155464665677112976617117762657234297667111900358355887872437697941875035092309866413118124235389136018975751102264035367142195450457729003544777414977285804106534073306629796423583178241687682249194103039564751771977035012634122972573225153551430003246835086925705104327421784469741868390298203630275814240295772953175532140263553088894583198747356373476573918215909597455351175252785874864282587219953048669956849449227232096131243930479077135976352171834549882659296290666523413821064763936880534773798391165685602405967597423164791878040301450287326846799658363590264614788660928637312606096045951105333547314816802662960914146542218723725594509094871778130535398879396874756496005593042783316761661763642168647668488926168196639280985221791020423676049836490271897253168384730959949500374852388998854331840711140541443632233463030273759523043343647967584289103208669360269407540664002397351062326526052379851877808688681420673056772956950295510680557373441765662171525235688542615228093501400149256694118842341443382621384139455883192071277522247994724642190471931640101144251961039054638089751234377352503523202224028221322553428123947709586665831217153189492368569692980976320388413837945573523751787738935407729191840252078089837576528659142392485224091688013039270598077627704913902652823163789325476442437152855878600246633644498035020003854805500467570794696234791650082904992105260877931224671517173660299216925904650435174635197707451178293418867338715309234644640366096447111289406630537504361926394757798015692904297757230065692050581090987116767675788182345119476197312206287364195523955681931802208490325264176704647185609157855335796306512674585534037520587894716135107082494464921641076194703324153090405811203265577948342341290095046446416502769925659233435041080379130471963685642166576010410751996193445145070244311414151690964447390612668132179990768207065337651520182924024714593421994841298084486716003307684125011260307939976099764877047796242262499925528518819798936607862174869873305373527322557619837579287549640657566171910295255572330501100867397784319534031860204082452115062175569230130520792364694243086920061060972118018451390178601176333876944204433768484314360440486590949054780336673751970227126084698339122020769022325290187760253578228921660118751209066613608024433982590278220910911366860090780298314413176474025786351143451320239101323418830369461750447140668766681290725204247869914056438529580219403888065226110204176133784334319694812957830684177695415053950900708468475880414033190876932957316638341488173113151478987874980777046451759351846694510319125262815830595676716544383539650809351574167355468508488905033315430248542787256890151231132448175977371590626117627262435366085418355747842296564126606271154669676405979135077692357806771817630891732838211189501992987614657735541501228047955193780690546637694671827761968719343972391668092412430655630553794274372576589817973186645300541967319532940392414723890013094486544027861487010074583686328510864794784563141974175825029385921354490228046242823776606318831009013280451476580033614526734727758544750611157783790732222174669384654794685794741673540724718441964908387495235090277063739537963561046373943108753899881725067201896237882242829242076326789048336587029109705086190395748118212712540125398767378331314561681456613133023823436835002741748179534124158354317602716271742288271111177452964349874035871690432383214174817456395625536869444009015164203635592778971003001327810526233563171484402745083578745341822227070311937211482078125256139807481687958803731864805896482743663142746707512850235478848113947811977608989378958912090832996435049793516879534655512493574101549339915225125488849499587883069026373399518032261773407874090049723995189857941302943595499739872648038637758199198219958378927879279816145886422885863281703264189411443431314425476764452830960704822879757004595260365682210635139222946073438207984869819381900877164123690769279784728533354404461448397423637642989526158209779935548642780187254774125250181002579354120667830834719965848405586749667353887418142197196178017586294018943551977385231248266270246937707759988057810030549991270797143577557391719828108162201721445163434465150767732209324241073912665226078047400364632923595801816266902988464346639730720926821786310703183783180013637652342719556395194316132190003238209764654249271855928608570046818592522899222598757223207155818569381257347759227249812603849129277499220344046492749784627847384993434233744039764344457339271364464838756453834601827409085249381425548324388200364870788031930112227281702053804902050791305515731671949865248020196084218042054369459661509094793942313740684117883440981524729134122731692618840539888800484203852723773710046999923324659857902573339604370802863094549102342333223495254957502287537415606134112630624326397150662920972260483522018786929665749655882079148185931018230426087253259874556032938003664382905975520288160662710542218605261956486533325540479415883022121800714090300946780823351733337244450426961483124888347603523225224342773466248728266549722656516699281243749378523570496053106992955195370034436780941830837202026948012810797313075356922889309117260212475380944942633628795304772632795209009494796971947527162428068612654716141244742495696780661156975397193620984008440985205395718900411070221253132775153634823711689263646749806720533904257682577291221554598741554373150585881489545463612196009888210054913067093158170654555768938750557977501651103198944947535548407610220423697451124183673494418811616342734844341431409143736592776005451055588198465293209439073258267845170248013577889857729688786907446138758424914275918495331354963154729169608906244733074761206699107376211140848394770656214907710531920129185361476017292803620027752343153809258068132571004024786741162098519659875066055949389619914934685879817004541404404757650665217407152918580591503132874111887671803153073603201232581687693524698991887929798196678503026398764620073870674455434693921746253614110091263350698339415563139469213682691883507748604137191033389315005532114933787030054550239044577094711235971346701395370673191987910022971359958498600635581911800350600089980877432612460029292432804894754761446454495273718011327488329124146089446349731124889965674123409747475532924557993234195898824708570319428832499889768134472925324270102667448989191250518292808978484762256727922318426606474328209181392315008849254720698371593195303151074048332588943469232978951109188826451864392672001168962297235904174614178580221331989864663590086907823578852652570220410298219741168445497639868354288296567102284382585988604200796323049151639637423729126322959115008672979710286892645738661685105585687131628358732740423893718953887622854563477164726208475818796251930597128695142490689743938301738473084265352330472123797603182615360599472197156279689841715383418182055212176331267215983825654512375994004775223625538648461453697258646368704742484864443553972964541184890055023246982481777796706663385370469132335288458354190271685390277324609220305391009488366013323694209170266146982406984221084202203686277501163614983193375816960917082524655110796613892268941759344455199762763682116485552908943334166940536871935221054076944538510402665673330047028177088569615840857843394933087538745302129594059751887799829496408889746983762705107386097844764272217564446687421267693052316235536688095611902006592637823403474103334872697093695887294659856063727170846060222372473783437666036193537037433219148394254130790013079688340624042978991627172766784254437986672514107080455981375592377010894555079748641483221610328313343214811223705473556135894832619224075305032288464899637088602771422074384259350833499391499133698528715649734390728900914693105268902169363267060016601431883165506254289931291689463992092021366769945184156828460941448982875706739054215153600943277604808311555948278090554294172914217409272658397074863822155174821688983623691063167424819298717553437609239680174739981535182439431833842379097831110590849135205910043663647994538821416974633428391162455691867514386587088668876415214606906681172096150910968077601976869663926715760546945836574593934737275476498947256825213362296221106331204354735973507250436030875575650434719319454963775382524813537170752321230111393984541687829543757797624542960365393079343802670483113348683768504909498991165231868406772996566447078491262765760165579460749095193036094907311077638825976181798403973504401929362627380603658434909029760646532390097081084910083435823417690263082956192750961601210552527579652799806132675338839571985892556813995004472440260538027125230286898448074889062246696133248622051111595186616771653742344321461908353100310293555350628384738954207758630939898647524746084381277943479743995036118122306315253791578812796219862402727076844746578401247530113103649400343795676871328621376483183429652595866714785990196920349031644458716887107768801262155287302054305226765521950613827132889918825403274802235430393424593638950974242100950405650266056172006592507876440743044314582472063927091776549091534561941438992688055860821003152399865233100443233862748053321795090518765952542651179342957366928892137718610498005610566804407863601047233725641562739656864344784626432898706816931161421945240805530908321660011433795744504788696839812434187134676695997444274318071461196223038373639256919210660977198285243124259213755763361291889082255329899918805470605369912848843520905135382850843023867310339947251733662606686171003923632949195508341993068218520639766921259326128620311321360622958281739276757367307319129251321464516049182591623000382792071359704720810750112905271601587573622081272253603465213416665668638428272330879739225202903648349183742111747601730578701370760656460555341126472775796938845837336018674785104633608969743662041229342071420805005436115221976131154707760702847910024324614111764442337331976580675092698981365642587003599013421473596825101777678453870935721013847100654047455522874476504827820243224127925198191325791052779922484754451982848223234725092066830550639237832022537633040798743634385834881709635593606375479817635888541170342341745008912821200440021458770762119239132328045718698721555273430127066165718827139610313828131315209548858213507214496773587961472506097669431164729164549360308031803007948330384564318793686854134534984619156429930436249933072408989278737780731578010803457971083069707752373487956037847103048123336386771512747252340286376543430944207021662003418667688936875590503801105556226820518123617126237740844415905378524568324362623862028177968817745224660328947209433122221694962978870369136158982857412215372195898113387308092425122125478105912757017298458360658687684784244272783725994004359991912004564663934694307069640150873343539743953773647992736777929027324721224823417951348641734426506398520147874494093440363563105295299319613559964019035622958016533001985695737616260590516665815329659523128895470267836860973127390618803927098967751297073171809361054837033226468764313597302505351068788180309949288073003368097501636683854739491033194399897870046822185172665058408119564269003328808811401208597668352488796484338140442896937221958514208866056602558868045746249923862236838307929243148488305850530388274088386711947687675321651678249688286052836448429779446115412618746211100881608480156069334236702709604302191362801699722292679833381585893184889553419417333310749045216468487796921718422249248187360808368597014444900169532506900647853436054930603201957399412260371570390696319719556704235792034958674180309637409822116311037770747137281187885968494180032337336947537457080334221990532139686104437300689452101035452382380656877679090853326890629179806028239234343915280148077978278278326847722295581368797972592126116430485915798792814378533182648621506863148385097015971802123216556862193873007272852779986999746637260887517393785076716684573264696989400952884446303210576502151582272590663437379897742900749092347909733246091436637032832864886348592453518973769382467964495229088228572207070471967533337147987484104325169526593448053125795022815633741144230838526104447016092581949659225758077443656964487839992362736586642845782593499469263801199146367727284735157440146508098245719740715640987159379174927219048364688307636904614455432562279257712668383594986493543446039685211398766089746860466963100556919328580817441280617082475865967198747363264971296982682021019848778903284979541276913971342942206390192718345816427887846762519586888469929378821787710047930464618758862387828257184984805955345028209991615597897976656651213024949805367082946065157445706337791726521307979846138303100180066942939762001478755119191758701714668127501292846937470334493566248458686073645125793600212018624213278927855581137304385035718858130079407276945392872361135140194185019458133114809052844284452303630305900003031331748543316452269130737099631763123508290429799347792617896850667693094370641046375663626820796178960215821638937308395708259540888897674198976984049013518302293105937126848783811889788887816457982428324828829735967676070484306592087730151709372053165382120851005137861100336247064042623213567116475957342042174600457584867870852957192379947241229489697928423188337965850032535271155496541261570643023922374168494616621610195936174991732481215754844232564953850625533677814720333474179170760560464247498632243266210004932829721489311108178162402267307720892591829297978262849475391938462623306214704457974954194160313193041530620554874176062190928936898458963596252155024169959660796854903583812387373885298593341092073515127178165692655923916348463624233441502855205021057822341670757432172153109720900770207661984839868840740510726304947274199601123565091426410156228745599402000197258692198279334112980389697949293142067239751101317585078840638143226915390023523225705865803580620604514042284184840673288986489417428817929330754147280292904112218607914953068277211662806104633256451790066789260792618487690131547103329366970660437345079854300193941120533432294524007899407504404593554396327192775848774313152468064836113797125817578571728094108654411755950778103465451685407227851215356365206839641553092915760542532280311783197027941821341637621695090888935475864145655093353554428201135679265109053623549376379707211148485461072039309751219707758679345193277838813240795180845578766743178940703657465716033238064262173767444713489597306937904030412643621102749230875632711331722819696104012487030102744862114258011678182415674121264570154679533197227005333531987733397215464936665860346911935831997116451094752754790544285738728731295055655141140690646941018397104693520727346243481953270699831226083700049340089770001050318861041838529421173694153505381611378511017611292996729863149924237214463930403646199504209417992714677952547107125045543521452937293371981653349810184742793121086551047756126278561117762090562121720760059486084300040865480470188558811221777355784365948280795169943306621990638532760826321429835231495125527932271502411789252563809887144369445764649794114125206264380951509035244274755909433870827581246805925753942863307496023843712541875296721112185082341660074344149414387388241639737747102174933105322658219989055395756693217426597316762998343628391057610061519570861572161774985160127423075964979987423962956848816232232006319251753415963675630385637034937664155886996453859138698106237151627969878632440172545548164654392860264893365577082088707026750895787181348389288993417565608610786746282791696100344345750063304485746969589184881695085368521675517753527995707109450729823052971026707010081645359115389270352094212435216531436344544246438351847617580336373369207416865179655515087601041936847733460666927071941331386672786936085259623913762587374459730154485909765465557728387164179957259801078130274375879407257340102827606953793243571474426126797528429973881237415531753790996039335532266873570079486311674366730221358691151015421275422382198712782914469503598626569834531613314691360685897750654089620517575010342713477266053143946292123806776710671053107515424435491985832682634905501458277262847310712281949175448144040093183207233584447767504487691766980183181082583464887907069185523134475603498365642252133019699330149493110344034551638966428588994963971503862747976857040808750022769300357271119829385767304222491809187365135240615196609892745054829977562142050167293737017381228192156588063690278096860101101739400326734140805077516561185492032834742859752678820816977962848831277146760202310466747356132832973099265575094911476272333462148094657113271525866892551949812043283570043648235913081307030458034217419346622927604219054289794335326047512350651983463530658871162406081444561153093174364979642381488479488353510892348465753250059733838889250812593140918360533715186354628740331149765482559738171338223837456276249929961199554044569039783617124420168616364746973603597411677432144813715292729167885201156399555875061101009354824532066903850585412221774263817758609846407076704678752146297458624598497061005167599376296971182161877508286201079556631420598300698537347087395682639479209217966977827218248973484618092959418474036519632100706011093872407289345773435691600936827779078341327804300585229880226182768337479756077411960011097420356617307613925261957813192898520507888962433439634466752567185459643552785962290830284481193756219928081048244316949358447814211431957084444346865201415535749899902010483316425613419666833521535236240817784011464501460410432147569365497848001219915648190252359194030683488890352484139890674195822962287157773484613259093435920889164696734928217684404857179278770149240265466694451576382806954537851673913282014086379448658476003391988706353041231983416267603284264496187340757889271807903071666649778025371658519964067446951293854957776981465420083229007986834377637449770187470223063056879510706311485720956401070405927849457274094953103327005289507019747543735892502688527590351289284439286831668419494772858216477517648653977134969235560686908054829436140015726170884054269740889301099963075190478977985021933860672633594058447324103026418655428545768864543254012705777849840119053997737058387638369274230931963903154088056881840140970557431554777342044294893823294136075013718027339880635624178473087219126129242117361715259579255695360269982584616906997821530908226442617797490174838317079465468338509174440274232325475498851888540404294601488568058954567632016750807103930245141551760940063190232453090900648770590406832934733399656077512790726837640226938022454995300366982217087747843097089876144975960130763568766288025210573741258874151179987031162738662297172610563990965989379003578297757159832318841825895229077844940722094117066099211384713032842054736816450209230340608787107831289957209614952498479170901754575028027469286169282004822025219021752508633274425062715295215487058462022072445291709855060318133115651768755596305831844411861967297209581929716882245818712446066226276239486043810871500614793403322415021607579132146031233846455571938223760660474030596966404059823781163302702767416093117867790265685625772865591320013235041363417079419422714061619402278092642151936515669591733142797122202315384724661885224436214399256197054181947371579416304392408861842052216354948934646317022602043103453992601528436977147604087739858758469922471245431520120457787166742143611736069093545173873012650078097344636649599537202548770956876713894401038942281137166063178249590002099622636720215866556554106551395638792255753833181304438402564611845772582174168943706282225513696436711471056112564469693900079887048541107609127898974077621572630291044815276459278305401424893781140664151437281165679163622609910622337413391966713566202107473933816260791682332441471148038844487615943656437811199829808240060309456005398906985984960822466942177381806031886242176634086412626144503152186511870316088352885271093633571722583400336982949524873279967895667207387150014176773980542773419586693647774801627219207494515082775746808940902779507299052483512393066997055613675128771466276952037825407895077734134394802691074467435921038325986113663704926936001877533981015626528052728025455095128650245841693649893246560831591133286968423059212415209115310275972348547136922410056611628554387230800655579299800916973440334961509147028543632001857545329039593799703393090798511834004162876235567315874428865602055568563391684654137825931947888795040086716362932269335486551046007467417861955951344929686814959666859689951129490906293529354144867738500100417622945795944640152646463465770590129167502036735032133149900760491279019695944539421492501675653849847887827151839996535133498110958841214759723670261439330428207603262436535619139784422195203368478541332978455660542492293735179795681122541785401737178100994945855293773706019451827153431521762445584280219523454802783321534510671907372781741349851038910614395301306988051796897350546570157171052225878368907884811976761799616884578535205996418214109531310263552043888808911764273739762610657311587853941418910953924271966997381479371027858637648176374272630603438037153275512754649445582049236106319790504093440235078697534073694571448980625763599737881115029382511927259851601555497047217116436465722014746412043098914004880191377319336668367991321039854946926274939028425699356681918048690334439937624905032749620453911345854692330044193961522125106875729907054654681617788624711879176083608142492312196088662935644452810201264570301216465044067633126745332069783633216473066994926310461806239671795427230131573571359786434036599802390559624431867364577177108868868885549485424016506595523123451665188646710348052015638164819014231887815344278081066125964295745385377892871189972142146817380204234804085895019725959947975748596316420991997126888458770829923751014841152827904900469861960297323063514052009074936145774533004671390100470925802651831164710318161734201294897281372448360425125998641662296456845049717328540090163631384780777798682419793817324043478986109448330519750641886288604144987021824171840364996423317572664110446971775795335981616305401418201365782079718037999306394754835894862979371055239683272439201999586251727164692958311784502683492729344410061761625006623345443327428212544869553471674985689745243611865550570884267327729290010441012166179882053897503370428892901670413833518600305102693229652526514046962631118826994905896555687724451672417924998750034235986983453294457557634580284226418576858357712783785709705088719926849777121379906445654060495050330023102561458584606789321411848788694454599203598122414041456784174520697427625763547413979098336947715679402142592355063768479838885539413632156977106108702271930983498484878725686658971233208160892839483175371110570615282412063084317521610927126237009247120802336597056078079865685768045491203526858025204920372275105465539975452972147439656415675297768498167707108454939620143616934667964015776344066701725144308910235636487130741030058116116136835057559104044303137282126997932993364786799812921557760308443812425707566123678748624499993792144595526879975676416854565829903315888467728899217347048785295535775677124186869451263968644641676274929952818768117934242374297231979946724795629904321868845925976012549051475183283688241371419876838764829783198778994950489158513339674719081645903753401632327972234334267735636261700976759602121526994236714060089358463104933465461214242546539440248758087639882241267277255011018081595710656972661637440793322610337152913051846365646829346783099934726696627112343226305034635336885209701475353235753288304042297519921614788382461522207897634580018562265413899811427149017326433914349083742573423206430197759104981737926217683357870937845023394298845111090261740660149439329117267731856347475873910361538721158912957671236880387188835809024991812001250584336066905235751118362437583077762557012933983077767820396545989484598407641723846949472179370858171853754406393224047850129950399034172715314877039389131298653948357343917310196476142800531347811445465749370620086864146860372828717164395642353227984220128398129875015186512280479135877400795171745145009893526332976692482377748567126112492963405144392763531013100193481368818802847856791442076324091019814045416252622291409439773323684320656725547344598652825437782941084925019777661997495527040645746554447120153398604075668826937419621281379120265978632442451982167041009768182661986598646518083457772745116522204185414838126346154262381422334375676271228227665511049395766701155691154704868990906928205690425156564377504237100882746511490129564465181862961328987999669394623590813650895683441344509208498635104215698357658564557496510115707657435355258485003701186314343267130887170154332870677863178218062127755075185266607120942557799793539086223733371191938385610464535259588850601755072630613844072956239442005458218708318270609198716731859510899062812803193461433030929405929645497382563072137036827893169340215288787577050015223336381375173792717071189524218513984113248732414582592459236589903826846015138006361909729613562865480540819225227196278390768520104039413083549648821199155787834780325504365080667885106727970830847617335451711191879418982639900354768780519753526538530564485568916515502856776884985305858233585904527346569234334816370709465642344394317778768547423995707225212806080315774504135092566788933655568726813616908548264155384166027112221795619937638176358970215496252798309656657814086858081042591662943976679304817810186990643956032338633922092770299341828141086966178914652878370689949685064399281418987336341980275531974568880365093353504873500234186415711633254175477611553721284565434861765595173071260972098938817298026578508998952887150451682312154234329885249793200661836451623697192051466262935534910970796719277864232840205138811505378466009111713369742757135173081682276290774683204753967548380550724131873308525194251653379008112560715776450591611934320133193323781984842283188309535749120216176020255198743944202100420437468897394798834230436648785242017355406346047105166152793506982720187405899271691288399370609657401150777980432300913423311214354120993121950033367257977415739063460026298761621541628638594392212098744697521125980492861830108259458578093862211466544258824509196073852875673251852033430400893683779974321310497491730584613108909617152678440257315360197217045070431639673477366880521700866623942047167343787142705798864864030311829369301625785397420728820439391718301373704914396635141659362375090834158808590823440728052367625830099161810097552699966163545480011395824098461443653752697353804464551690759823758081560025009330179423691757404347219225364861315060708520181178433052717006657262662688671771889534489924841392347330125873996410423468065780783235060870897670371621374902406599783431909727322322535071317711152644308116004768288475911831687491503602044775327459418827752660941277181297450134552500224593082334267317992988119822058554160277086625005019453059426457026399545390291423952426987926538105944675351975797445132080293237948017916456735449188122973028058903239239066876289226985941983630832115478840866455224459122290366322448106102760801602627886034143740899978544269017547034881946032143986823022104164717815340420681278502887562392851819577226928357198964975670529709480849084007807038741885021861784323100136001500027520330256262263328996104698955020038836192206778657451310233331640992424549721911886698821712244726636295846476033802222177961464314789558468929236655364096732941448940120478246991797423149009552125850114639116799415040199112282259248111343006969453078771361473671652827780363577425488164360932450375899624201861839232392772384271825036028700400701938408493130191051127410908674167264943500468647861801500180150766441122031515799931583066078286914406035629124013515649527709925307985063258377853705207786105576447500715071463989866345732653974066218257615540380254521068780555641573674784372235700288341557468318787547331276750209381590014519144070755600458959078161685172030862330698242754599076337501906768038175483416203266804674945139423630980700768975888533443991011710131984356255228749636610688356937496228754389302967943258639077918550546645646728210924735694590392017927786408060171386172650320395769695774178042627685527472864371061012731434577620788481387857833349052626282152189838965115478131794027386506129777712557743457103830797811582697910794842574998933177666243200455637052219398794043946569883467956390438590135265226388345637911992960007771005771513925331583365168177825606798243078856693065770950056973213449325241172139748080210404501426445757375526149257489626314914499284215424812069344530947525419584431594279167706675646273829788914506829494838413433790316870272304842989791079737654129793506304947534044703703792049899166016044336818700373678269517912653388081571013017262355862662579487729265769600328700090012243782810886456032023268662179893503610261088937391724263486261587054817512596514655836291461690201262320939866028916262181951297901785621531289923277025510528509981785036030674676210009595188384413351400892188157145567440813576723153947981935868375310194454896008199928385177572004703812436949839274007357914364799429636333036106005316671770534199101540649918269181936496619004193584176338829812202065567772124977444010306546160968975452825122798821430387131581658495979478313848242555294612768307502127716328568686962751647050501187972010070289394745335201587296533444198369522506096160715843502440613402730792368870277304784193123734998632645165608961086038003742813374525318218199248924491066805073580730208540353648974924894581622197193801364171165085127412207007881747241362389934548655287832632480601287986812456704491651265701957245424566644608905121032231495334804371930843314651638182237218795607937623400127461722024944565634637021983374231432471989740470496915860547817462480969683680303016935745824810212907145113525805696627948152040815555177334768053768996563126484799212402376903494513738092988268758839643170552302852800467834348552228552669291096451110958385293164088310468696513241549489684196167690557519245481509372958377452284214156904381544522226217524821800807126249638145862157421488355055354666255790836075028741269724435679125429932013862176986058103550711371779936514126637694806850025098636203842974868662505383559477989328793542225970294060019006750104417442094248151041175458581358640036393215445114131923141924219632871434677400685923825096777214913526596094469840893084969754928221803058511176593907893224637031326331039810888037119171257813498280894325236920733042310361543426253330097339042482003367958624561747371625795106274738185719184373515922355751380872714495669865258284823842563484067725190713892300653643427388183235158576096107599404426381795689328415713048230707950999672458928516495200089958653945461792657216209166556788520318369078793045169198770765111562026646625825319137179872345088156983510532355862370110989112586881375133716523643634242573175705959655405689920335052112552361585426420076580434509177850743816753573437287686179081721927563039741831988327488088005604459414414652539280087834289152743119254414317384856084891790550856489910485215117151042045596208730444475280358886076800453450230882715415131501712146677345783218575356449900177265417879102516057274096067539207074838852537313641549177368142807108832730741461845537687846442479065901749075203291600560443345447128877263031507123567382255508858469838723789889550830075956670943574569036041565115189015024815145789626934185913603067363989633258342740579346402008282982412763226913726892406923848611581700482649514280743130776940668836443637387022128406082718063851478741691805356698894600186599718432245803355887064471648194082372664342140105098231450430399743038996136253127438367260173200098563916282261375944538885036800084304894883286433853769555795110914467417524654630572859079357174588339252112999612835602537762924726540193321492091946928022274226720855819853439719165823597046624649595344478111525985419601060264865048763206883856460054923060974544323221264620227891680319806515970107672695849282468766285472557150328829177938755499024411405749079847853288313452244807267113874672349328732699590558240197626483988808106084525609380611397387443868625707174965883758770230101159674817307333751257734788801370280101339267435356364746256252861598158926699777414205569439139396863636568743385406195771404573554712196295955172322442551122197892619528266764778013187692997704351310109381428366041933836881635680205147141620449570367359795335073125012231667980127571652715401362006401020207153339690506110375281927570719176402731172416552330219619216613103887421000714612521723430465920128900379795494938125467000872502729129506108651078080815641328415209352364094809395309386399456346705559521970159906002887294262343017724425507577698215263797870249470622871256640291432134339014347234575128374657080813176707739396960407937471714217930575156672218478033158871376163519963582598706715088583799234553513138524931814843821733039388739909174069973026686768073024566230992217132113851561817947751815724344258267134616431287509120045618422855312246552437065145452510235265650198404750300528200259045837820941198694471154108456790884075893147061580797610417506211626273540037756365663613890982663363285135813623852481946308392115440117853953163669799043151016652133500867134844116791463579029472661255920438480958398186714362516754111263900322746531016027336970516394203984880208166471528752863442403807980979872727705504543738700896476975627434660239118559095943710581894721767263061561198932518981621287165852616859273368742567511946323202619567710176400221144239346130256439413374412084325016599960004383455262581280077946495965715338476357728369992159679471058916560254289279355897697612153654774918478297758889487619019086240243448917251552399839239396930834336390742511304520516242886563894034598897083756613491727955923112350485418688141269755250559968966062451292452186851682753872832388320699455718054282488555590973712458173933711478803296658203203577381477555203872334264359115574131235217427602766956190739623838769135418135236353544356023379576394389606731870647318661632581424317662177811383658516587826467686770863920635054191043687052102088990299661148160201809104797459806014542492675982707174789797577780745232812810283046811275883326868528470178953406609544264470587408134663271975883610521276180803396601786785818781513370655921252533532203486812012719977568448725000067922002030583876230570556182681365796625493948498938150637383380125329670405993483257491277833535631676280603976819034530978284121105813760797308726208217392733947309599410549118271368146258958333640465305758062105937260089301703602895302696215547355577928434166566661217614054002268963205967416528334500933540765350559920230055824202541197352226239675894926430592153353282683713403939316108341209288654382768441410078078022346622873334291860689454377233394167161457842135196007393718425295255234079669399985262047643695144748203124176273674032717908817049993102159115474164505805944311029122878662153288489669575025434988241895231970324595146050183128639595642239636638270719183416120193386358663850898297381843448378025080443780858465767140944436949593037464986183508022271364140445919182632944407532904000384175917552267337131989326461796945806020212054184996068699392589654204785733591252880248617760322613743089343800995909382575778666136265051187732494758309223568617500590106174996024247209183712859836782559058908017484611978800090882449371554195050771901379861408290827768339903265619024376776768671259485678164349061075872087036134993424318993271025437012388920917043856572616679772473920334128341587948442311559115714604273739441940650835178734175791415690434963638792861171861476669155349060951034045570344760334739275892746327205314602888091015228414641836946767736518216000405656910366024946393591080005253651880752570848938650050795713584373442094496217312414710062816384454219441061259147960504070401059515111431062969067807645957002945412454648327648609417519673322790105137501504764968825675371511152274767249731176368225933853921692570144933351649863100007956186736507033354498352664151533955322627575078531104245668642275552747014352854645233444543735876299110406586418529508589971277712094775667226074993876225483069691857023993926758134502270540634261334104935133447198137248214744524256449996483462817598801550478613264592996477991954885097829037869561251112301817209852045024148490246932132539553526914939968897694151996600806775395917598792148910583420800468149682370584123711711179200476050133543297762491743812851102180877861626126297130101650430832407563538366605244570881873939518926814194004404893105783608647102153387114117170931586631357711849660428169861123303205821141185215537627027268171460952789049541239912039991937739076998330209810923700973561754442179689836608911710858278154718506132291529114417156314251765004992466240856859555984861228101766704463221687519583837741021191207358960577299308939559346616444051348557594178392812825615802628868502725068497921836476550769314452447362427683535513396295246145517746482782410328117861605015365683620548833823748691977433533668282355915058930727125548271792096504718475439233596106718093428526256972763078185645554280660810187078465728118312515570907360907109402832666596605437387415650586338685577278867806679027196447959521158697244286069567206391368859481618357953749486554158796859013993012358747858891948552452186694616750592172095916997287950117906179691267140055715765763643383555023113441758165653022962478568192054423858155692378580404316752570279315512503802415293362498138077388012230049242080661066925141351412807356751162270290708279423583654567580253042522878333820035107717716522957792205977331766122005948407039416067830284275793108259209824774941782122443436777039373309677805309877345208951783000469575872992609781064551265910114438906575813904438051526495723380628415651009422001635963089209124974511075663403667040987453856977364380944010042840111027738047415786517118234726368648993014331352289194921519932015994234476094329565130566108106198513262503552330513052180357825459303630772648357621794516620284474359365973573361744359715560454147231255368053479157552538344206919690447121017326331760562651784693582302323813034732032243704528172642127914464109542365449123553245121281835346974052217314487925616373744188494365513577073098946845904546202607151782309737338126897759511459922358448117623456134420500034228621213752963809060022831126479125091354810787416426215425807732292979596261921118580820022818632569585220110299774514182353011340735615523845078644213275324799655675072159888372671352593480880460750841712896331795217545843264993590824780014908785154612336614684182015835595545700154656180412525503427395102177733916612629992122303273796827054527474855878430116940412537493814189065405924113584570762714996918473798476193076758736600743664601018708635055173006608291740185004888111558935891713155334595924415199424087795369424552785379225287605022209519027735100766212708700865554416612951697522594353280335633921106575423232465486550695597483796418259393299700912572676217382151931066619891692338507563675672617679224802030935483535643807584101994779202085503618818681340991084478708153872579369946605865873772814285988090851425588822384911293918134776681628569558231386312194196197955289094749056857618119735765472357481665197316567529482679478193780712062888030083320393968528768381728173547960451515458450266716243774634154770689391467988608889342668779706544795889327401299755929952976402608072226609131247479635686280834975409560539784389376926135950692123213826621102780138371682951848977828064466198314526273644183049133851068769163921875355949274131229547979327511019759539843281315151903277040634478304050563011730072113575151007993782689324095959865080843241965776403359363541686522747282419035442318024894581066272041546525967729156764825507534216570360271945883264016694876032704464339282497912502898163859684359309809189775024220467221227922908225548007822782886646707280765137331529692221062719591748081566782146217245621098831683843359552656289472407883978215697529443245130968677070709113602690420572802574540372591542426115726439611806233435689173392443559951748112996744717186841259360603894738304931985398688741450207290963548302341302558114321115277173106006252768960208856861914507452618074103303979068631745306493859495687487607024268205978450055878152441571274131668780441310444126706448494237612009423414080279333323133846645126381629411754956929712682146909378044491163015540158603675626440450122673046112945199153726743500249278202753484810080130452453238017428707594975038080168095686181139687131717875530308288298424345226411646418295524026046052900808849878789138278892193179918986016712714780880669240726558098219177118693284833688677829164095775298947483623699262947456709849257554855786508494881662164215218571794073845953036889629405458437960583780367452465797751190507948465955133790435646659612875978904332628813122110550979091182723658818786227434483066009784492368971539008778601580290143591207454026272752866440187816754825238483601253801223134547622329251156916430763667696068149768840131806097682988474030730062200283397660811803133014791019387811389209070387292987111307432275927766485948986698204886022194855708273867638378926554621219616420076292181719909725295167090399920200803762917185552815649806031161830443029210152672360834708567805277087643573559182147242077310213527936670877819909689784863453565272358344993299085220311288350271998279320111130493816843258895216535864937385432241789571091726632903024270356607035995950712045985099386477848930343982169188208941040742923579038058082940805049998431437845705336843206531498212447755899279044976135018970413915434949842666296989073202258926055164369494655484601779101276792603882811455675349998816838227269167840190814068298671848448197764563542036559490736231762421029471154308115041695561803240743185763125089927283446331237760616264978573784609291255145407961931219912177450400462461913595112450592265176052214498735841393440491555805924698928072850180426619722012294084504556015911203569953245117912326731329717767029891219597497352674613303167243685501877766526634357223905475399573438779858847869251822518694693381547839010434833733165832987549484949479165781800357443245038354106063976265470097449153632698515884617843391672941956191656426873247774239698539933666069833979620804205603884130110987331241811645087127920888007859195592441581279401279536243566027611805790552363048479953442898380901568560691493754953476125300774251248888531484106284969776901331840997106715216803699384153476100065153737804283983476212428531566944998117318810829181905720430736320141662889297193335308400262777853886275109427884454582010134003328552848745775295833077841092516927768518497903497488921423966198552813190497917462286447990329779266912649560461826110125707910532169104387514833103787023563921887838012587468757271218384387979683210411126678819370792628110900048856707757208513928130399589531051823266875922753012810998232649162474970464640867698135679989716837583632651462086958088467167236387959868313688675489807425583549860757617789742638880063251304918677448257694694751584342866445147948920726839834356688050183871630161762129847945753025395525610760647240267218017148323878146901050287730372029853659293647511578625372537226536481884442905002789916228933948384011376403217971393627796500294819786835852101273877760813191721506741161633370225678053007817528126599738187883284170593138480023416077543977276517202528201206624627925963517975193450238489379667906509581406055788890583447369612038848764757670614282465536557871747981784513330657351457273370350385908467853521762894160633313264577779297361037290410699404401998573427911197638884513886965908724024451859060571742597094057641896295580407996474676067004054235180708319924298848325355646600888845826797531079648662687071167248768905449671510176493352573557668519784430183841999926487988342357245589916087563809342904157390819133130073844971395336222799080226873321762024323948473906183498888712757328691769504703614780128785438684027877983761959034776311545525092493464604347464187725481494441437239999144688201470141197050095764257498350969456729306169782800772829917025750535876714998926712808640642882143504270842231302969310226226104458087112885604459368261769183863395552443584564189779886185996316065240474959469884562055389841923292271857157581323095057288150143443213735904629457716576722447888341950808769641964225692341805844003694449714951173473205556022283304882507884962662293317977557802374195796979698850093450997635644342451427623302997521128654965392924002292124768489349749197469539449581748781914535437065395864518055344638126756065413841990943125812777062759883056589743046247961915357883717506553997988005679127997104487109726957569939003897373118325481214308535283950337543506951205659052694749299909229723987319302963985522692631495290940901493280827142903034887288283249885788443928869149642681250426913772621243540838123075665484089400331864461400815378554732676184179323367994714149584913727294169741794851523439796453347067358071222072262387063540715967978670476513097579971893722717130294142441487877812391040496670968042128747439178877690796563478551786314363383469365171574021435445111061569720082662063326399928971475219134084383954109371468549397156662294148092909431834361643435872844289102018803716537424267045118561353470369714334806015041879708372290641119919595592478193482370603540047527263119934408024564079961348220395911986001210780407182111229914345433587215103123790583020864451600273114594621840832334785412610183898562672215104194878628927832316064835085898742369643349037267911503477964803562963669819973939670350617091676658304822098063160060507702027530173396632933595659050538301576380566432556555889719594067901670336286115423206390221441652999752393078706193860448286219557570400345548978182292998440950419701693322423378485928782043568378101200742655842640495379524221705723761145752034934189524586894507323272484583717564728274618534387982700411604569266565409857494078649699181742071108103216208216591478321250228026295039560478456394871287989996327793661133812722975909762977684127023718984819349345824078940038341397660050346176380085729238130578719007064061345188191448621762223536146093972903347877617490756197710001091092561003573595477166461813257063783997662953704811228462294114649612048005515925931961723889807070371873668062405430094514574149234922466918230582184801360139730741431155237412896828155176026957979678347842794000365727507924285386587572115488396488138280406713010680062624911641801962228790719423198709375865476402261172367224411724875744970215010738676385535045553114554870258196666772716543145268167368781354732225830473117789448669760294167205187495063755844274954319338889038417392299490140119376927557790245076608022738734668182161543121019837833462382370826125246798730463384479645867988839637837160406758173910938233551347304544718483573084828295526312667662242432792952461833099011657248832710784269570476950994870010258696145021167811669838534157863842850795663312383609560337682765550659574602901801276271807892806645672336435612879457128141606574089394265325003185464367625161192594504257354266289569572580276217567039646875731723742389959384869675278649476129704664009219051476489374445576593347147394045663769185213872265547080322456585677808450257094424182446319735136664164796072777162674480394153819033191264855208248622960408665984693792016121956387594861466965372527326002827856549379388238956963208304562409467327930627962565955468051043897762072112466106550914980605084090397932436645552832339937607885646531405161254950315043643921505881437403564792736821056204065492040917837308789819182087364530773621294106123146536825212239938712960697718856247842506326031347552434805657198499582063702016969180308135867170842498955929427274953142127668940418204082620189910918601959892216220091238061813157034463508816281567505429699868570335311607088447903716389455571753656847365902695403136509771775111257730217326006083021851830802861466135819168621959826776370137342044288091281579050749043947555096632034607524513586651650791921906229136332591713044143949852005704963742628190983347545203100764348818002056941268243407560336843292236121833388368747253904357962845689625726848757066586924564733330716569625675808223984086375215311485244061668270016883568238518891874267235644859348998272341734445539441191223313717087990416425596162242526475572367039658157957708772487585680762127376668723752156619213686198537289034103029982215143331174276094605979539737485709723726813009167974179243889463885191125712622266996728296509414990260673677649001141383938159767463016269623561542495675765248311006410262146918520609386546513979115352012513391174467394115060131276296424816395251362430368631316180971596207074289707596349337483548058570570671158363869197749553663061559042474049889741303427348839421856419488979858373192571103565310226565192712184366891540375211553044223266844558826905833496171145480844439118480778559248324404428428769471580417765861899850934122982952047107154003703870287799930873696702569874058750427024931096157488915394598328839966145448273918677205435965310720725456322763709239080954931803178753458357569254006541765383753522315012913631332796058109939235174922281100044002852056244046796066254803225764442566461608824360589662138094643925394350332705646577599971624535732238374974135849515190168850605507051219178083869365440330082339403645245981240291223263445117182246828458533302544545375890064169056756533844754467686571565655035942780953674552354846752353141671043767780634328484020592549197648267995104032098157252732574071156345210442823320103913366463852847331410903350805479115250913045413347886563060583589615746600204404043795672515690661948340107696590355060029320065239852775650471271163468883086688613695664703415857339508912911397645485333490295136447067699098368731555171814520942844461125288267552700602089720235048487638843783631684532546744840351738761068514268019851509088195786165836918101490201817227299428124000834118812934659479719162459615469156753539839266253117986653327030772706451588464575617005137978788537952971216193179306782030942987824664732072604980152898206018960842243512538101092349759049721275924945168715348901180004987566043423859720874366153364717995634755298674935605819546901407285250848579479841189292672948134224538983907973635837805550972159061876986748968076523143772071647523966401491822545277507324439505111347650422096419637823140983878741631229217278015402325004874770929727313246018931839433066260076304347657966453988647478534276389079742177770559363851245676744828893472599721348280472719211826985314689314680443643047598111918473450227583796270463426407647861474394545784896331054403940738398312243985364211341026471324027469419251731133396232646840475714597866937547654880904224907895979667233507305741521684217124098045741933364335393232492579212552914077317974704842778694751304145295547851101797330620762079750084885871695730144408397171850613826737711693494492654766045321237030408717173656711207599907032346034932897030522045924820388314437259909883214174210576205401564066581150752836634774749596587858050863586663482795276574736356430251364648168251027918073036840308927068976922202288647632979905843165188549749564469360751030980188912638941274346211917782876127574238829974201862879751550107820033162765745499493944190332462379268613452665638375061488520576402572212412048590342503479885710868306853291875738156501236016199435828369777327742220507412736187201059016263876634272946921903901638804393900346677515144423329266564372317065971090191102986160285146745701520095495145666897476144126694157278730572077897890764353916865719281115067880538838272598843137731445913586695663083136451406317783661798651621525739219544600701766914098340284369042008820821534147204777423182500334750863849829139219501509356943981669831985242935803279840294584564347218417785265182455523882010655336246421051717484852669194251441268201768637813035735171816943136898410173851304592335017257176319308173064131605604105664742859140632362998867474239517910856101868184719210753004350293419186074902647642055712114153620130099436854829205812831668478283184425802084325206584750335295734184127732943199502972988074812656990819953055180854251858463312622207710808672850780281657413405356265356382450902139876745835392479485928378321939793744421652157156085568403358874801030603822052534167822942634342805169753189598839465291166198065401356933416699311230559578036065901274869869249991349326373725710021363658083931748341628686858269123029962329778259714856266073118704651265494864412079232591207182623925024715257350629112105896960568058672737678423634177204573252056716565398147621964082617764084192143563031083312721469664344150929249281841507192877606400993045161762685497423803865657414705075122299211828604745681095345497360576385571199535880349762179257777526260833131497579784453373115152702715972636363586348896648542216728728671791875931477657284444815285142753625340593419670817690270787696685039080347612779045084647339663613048904576854396599437317144992232870180057303477514525306302600753938239165996493090694681676747010598966440064208087465936651790444152627315013593425151243922152350449212136010898527726449669556173648620187219044537402158027469347302624849472027771575777578628618346869656191869324820946766554699427857206192492897251443657130401987663259827384863873654292700306687038029048994793607393732818587804997516103497873431997343881573838131611452755412847564122791634240486131245962830795314898667964650347093634259553288500018402469815198292682890128973674568513784401405084108274080607348866287562195809720369965374731365440510527823414795667145332527758234803680072306133542795730562247401739933308039138460952656459544819318290990669128553579576776480897096556554198174143215764394883784709287969144394589250435333887905733093785306174032277234971922056705639155930841416729102451695942680617112212432475325087527239453677972218698300000447821637575943024920943758735062278966599338329404535508777375715206298149922666661882673325497858643521794571777957434716103214968498511988515842243648385118930159035537316283458870230385773976599310356064800376314104670666283821854329908177447928552948797912986254512176816000691876114148000376505578905822154136899004813286449954011208888784770078442746160492456186117603855764090794390695870113834745608574756344978916760133755224994646442610487112293342212729962357761461749783154100915583457452124086899755431818038360233548916848286750107919772017762292648579711833117812160617630603711918153008210310157585881397892917542298023725541526673962612531289855555279537296980855207329598856619633174464008264911438693547371179304533180533782880248764054581186218581684548021275791053122854648381710220087900141578210329578512222097511876055967338991266743358291338294208005617253262934996777821989054254914292467752528936042783078400570189049649549340982382451253841775939844674682059571242501383541474902728055334427826006445222800810833312630809356651823238567059922238599424236002951630562902961584318676457237982950586172169746962753877481356728374638798919966226384066583908602702731428132971781119231942173445694572089269674921746866399226735342990117645969311993216863764268815293834717210461406532762176172384488130567335377455769592394688492146111751094085366232579967583196699762575004154334112848889938562157084284167077953670501629393614231273910167540087658283205055878211476974054297025664522709070116893317962779181136920129435595723385482731555601687528933295288059478058918385026882112696798566321683650520392811516193757036350544013908076693607724371908476324733690836420631540731240430359363774653209926300846285359125925023306731664182170973294511630821847325054789049003169246509192297206091968840840978964071081231932775603619496305794285584783816545496525550673232637139031351111786888515469203758080500211033942061982498404238570839125532271081173134635195617667635469747557668844527417166506994221998733074895305829994968867170671919748934224183280054046261484637834709583512603742347143603889704356849788991887741413046614294281932423514316998115125607102010479412091302585039493955709059334354972905763397218085396076430831942125122282845387530881972688259963502143709250021782759855552654380109687523562865560143454112927342091180631857937503287019578319182809089162157428562323666115309983740834189559696411777171907536601410179493205808768679321098781076842740947881787008154869778977212368659293492808167590338001363445517504516228040183591026612928908310931770307671572836854374027900310507279567273110157985988902916023928379846859059124444343292954212679979877643323620623311122042599541549959347559114635872078632776222427955249611621331311461504870825506825949883359558734716439391457216660838489572253348579832953256056219199383258524610825328361580897516291347304236321721307165042281263780861023126470707623374588907701858888112915134061624226810468377785563500296118325990026438228867460946634808762804004072281815522773191400601803121705554867787679393566497792274884618047867579028056641355062703635398628762918028769805737678468079705895727107152636685010947639120783715803245727887483016061708050597084355052031938148133327602787242634609823035666492439967564025050147135644251103967025751450514823381270783767401491460094777960160433755017387112290591225171615762784512218429318215403371941891812703157404988380266624717586375951140963306495272310348705314734308245652078280191000385443488628407849493721512131582764212648591525220132543840977340902605947031720106537106730469520597010865001075948136975027892653081416889679774124018841479761084909875846037174367772983405611084812519764583543583875895859521775687452088479718986874897806786781994942470175844786395615952625654928658075608515524148070676908017298981456176077125776876907266725630251639048606723676255132023037806554415047157240663261190707887864942542826770384929410002821855467949832498195330959449988317408692180688606916880717666491146035121719748479961635453010203136579156194270318414736361548295360484358949696343891235967261054940520646909962736323202526780521754514239069912144427407146956006754623052355790748271126507907948350934751226230128861232968104754006762093638352933138457350841051578747801780918562280229231853126156347103496535527944785105194486533275745470699648146996082386255187688784366668754011395144064283718179341110580880637082617158566498847695564269166917651259568040094615297525716064408212153966238925197032732586374162898441127547830288154836474497067635427441552270789523092217765394583281907216766291058702841193564069135657833909298049985960757913994707945787446604615081065324950996789707627575118792824002083429114152152283064753037953802790257867918427208037239749037118124074173468606758360540623593838455435191142690535192841596650506342454094230637216361253289971026692953087558566848787151360664933691180454713446381615568718134667557046662092292068002019763649102728106800659105038802879022919635827867929627097805050033339516929862613264568018015388448631400870907306483939025958338265950159950186483498499286669809255940740361905146676791418622514716072789981686840875707066506467553901544047801471203887684071818635913554035393592068384602159702090791532521341817135812259250515788266554699355667957592994700554075317572163483254029869661771971981818963105001007165426424852148254289429173076869892637259620856881742219254967856064674803995311753579927063772608716418230172607421530529656158496538573372254624875996937406469031864768868345061050411504297604344522393072186821689252850171538425640940576270614164665824957213974671390972141506232503375795969089828332438093307476224932698645862402763000167694537843486856019243762448833500000140920212014007634277843620992165268940407055449944427849443940492443949277470610214239643832694094025551304350252407655360052691140145934025513313625465066462011429494906065136823772552368730748073396933148976169248740815438643461443440329068382221498152041910829793744355381440862994024201585655571901510424390092763211859414789043398463070373157168902319750835111520985757588513020918824314380579310180822259035104086429827900852941141696943768000608600288736588069137547829922209831366334073444408862206437537724693489718952253197365011605891841079270141427046591236149514310899840794972351898269377673344919670563864271081572124906972817742184545866540545290715534351708919718793190292355873388947659460543989538930428887052199448022709735308761035155241401155696199422183211955513859689583520397146917239018449726961073136099662059146449062083009441462891486262287811148046413068136801375014841243474935174742327723927207581938925873380574329538494449979574164042540526475422740206758277035813865923138362862803813680589686034937847305434769114299897822382352087102998866375974810339598232159714567100986764914226294998718676872284116539429518991654359588547296237290984743061427530218672414501709639163512030660685603368957469917335951814237685525372726883691803852575843458424768799932688140982384657645653640211500704710679801219966228175846608815606162585566617848010630225696795203852001218352796233480987225306843736310496055966038688440634656936161911858210127672930905666199360160050647029959987306639706809471211212121973035402509434422790726567345662217107467101112726469674654259968641470734934217228454791621550242659377286360124736348337737560344820376166412247825741425838139134098838813643796060505870842984789868748008492034785088194698827187247167429418694286035096007069513359777315428339864836252369391793857659807070510413686236894988926959495731763987611521692621236505030799759627619241664294909721668255431163549860894442836822336373334677438424797844575616348548266326944478730174974794035394296827205437553503640400973611466712067879788741375951950772296922044231303760196101683575050425339667886611918823866812162427211250905244766782956749451059363595092540799454199446019809205882199332255506828555535038756084741213261068372245108719613654768543167286209099334529607705951228311643935077353887017690984089434140201598074557514205639884187678314572819394320317813892011479062180000399368380759041708543541055309275288380181514950921538143736384157124392538419904018866194072130695162847431800391664866722975997786240327603551622925941563589844113526489605158523429441385135343237532321167750922008831927314797577730728855378910231106826601079965565785557352757866269386428681802953818167247401833713900261848139685268304812469262059408952013083591648335241488445984866451576685461808410952424609392205627214767631853039109143780236974324829273111061206034488007286175907107023765223946833302613219475379028406833250952407687398013180509460609598780121560196938538049098118634963139058488954513464126465779605810916826905639552446265592597167735366264898035124382706651464285337085672900043160729805800950742829391255057007276969902053716869896814703425095260303967542162031716999878540610858081072782922966430498823571980832654501803933856752800888885895768183561459602661705987909030985870727552208940059762773188288832117667324924379175884790399273258654922197399083587262541880242248644586357943658886789461410238158593563535286092650815504860825638704232597469293993372727497560383449114494964041622459242250548368343189783223205781967649835454546135228293980613028858235570644823078978085745488131309603412901710428173125596461742892852341529982575174006975555993060889724747695763605062796355203021526815861690144861280532104597239697108326475696496223825284298197183409353081494774604271964604881209858421282743067455091013450607634295803756422511604754313578447022552085677980625655552460967395109804493370217385657653210538959549248763225141381120890902005330884361949498730436915777133610512192618961712908806889933573428408902466650441910636810659007433508785194459231582342600070470682759978919422328129411837532625142581794744383897654760279797244677085367089680430162301465052742691965557767245918335959718721504006082656589760914575933677935968878048009361064719845720880697170833453589811713488264482507055639629766109375709640597077312444057929606293490297446075782017224640891567156983329633992771882652242568592785555632751138129090355202155696856791632560496682875525377569747244277150645923718779972261655283650917966995104453282904073490856636941011314260344441525278713144250699294719088999372191921347999027688503933376922594308619316398428084962366804088772310711017622569802068825972253734283441324087022121249234717217480311054337475311100403174995156262748794470975116853771769828900971902376684848052976722121340956922458160251628908240006381835940733277309055668308856398504385218805741458226450572615924414642684192023822816373273705428941553660413319108146033491867931237881326220451609147168907236646065517996168828782449657014183121516273766407322415232804314089726882239998202461057487572992542856431951308985835606554883263360790663648341465121768090505613888090895244572834094085549257845089230015428424540065221616274243100065325361106204024783106024757505232600971915102521013849522212536350641249283950763007415871942752674901635476551897848640672312068931405545242218851617680832466643716445126108635021155241710577363328158415208228910562034593109739411876589614144842533680290777780984971939442508627215748717962789544649505178624705160954268462288974887217563174648423218767074328514516934010845950437355175251969371950512677960121209030670041812829157419680337267263105779388471697469436063017711859885867247874502538960465819054709220314337994185966176646485177947312006180535304321604725904919425403929212747596666012170254740622481871812594084808173385120883877191957734964472666604161815319741728801251602811086552387526081423171263637878196031007595956096267762421443876998546957654901712563139525508619368489204877703140792932744700928554514988372510227150405857279916091242425714411142078124104676792994433418029323851147080093273889730017320323916947488203731444596579532788934776611059584440921484753543509248442120442187028551206699099325498330229556414443207232947641732895618327642638015677262230064502222749621390261026484911595272741946778014894861241822585513267038703429333421240284722523711716254183839024537655461216664277329987281878079014326966233299922038526444869570440983848146474072053848761392169296526897600048648549180519921152012209375640933894898980447536258609494353260359674329621190866562114763922628060072013330786842621157370330673932868459452702016831905418378847376487667702453398624767930974486442039462766935002246562133349588063719582468204828442729800406937303914070477906425737427101257352450041626503905839875898349319893361057867603040050586854019929952755049139500949551211505010829314138335168365800015797129755327049151895560831614948784612789329466727658446430976494840540724910676329011614743819209137866748611056103329139028861418373759742180050779927137271672743940756525510780975317375586396796968986460933918590627384625380872928153239070950183056316238262578309826550505131950741385537779740904184749474924395020253857069291726433886181912587684435031641953692399153603999886192835338618819225742049212252146131668436935587550323787347378851729038275176010476261462469015717968200542505630838891314485653186436127670649836159910028260145351413559176726861230253928896233423413633822707976033482429705107676989142992199313254622845194780490376164493575218214007941190836147043472650780968656574150297616838713111067547090391676684598445023636931058415929029314320971772461038627372146740266443754505990488126189497810301610069973739525890331886607663388254987854958781390655061107023084194857366821309307021967157646855959002364815835744224102518284382030888528146460577775231973829038970897345747789625066949498752424555219666807597576943814828754618992609353242304387363108412672849617554478104472258861252458081404993498989236942994851845734313635211238888405999936315693439184860700690422970864238125826884077111273298945840616856247643431378907392486440296658756593774971763145231119025602606067906869466369217786942021312343668240593092309032206982073856887591628228618274814798353578513225230053365644018304338404302700003442408318794675203626925461857943899040907708779067760336515128650261566825432611036254017600831991285831781815574119801707913466002678389388770567954991320384789023165439578635413167222889469492810001892572465468739169698247023299417668252906098945841990633253377428205309976043095985315378987854169517142727344056153783379278023130572761894137449684269263019414594536011278633369017353795084796149496648919004925420491648566923361171140495008217630918773127664722088653546285848686922758582243674882789406622580496397743932419400878340783823449714703101575495438528846750252314135987001491931308214246456162338088407211577859023421986671508512664042868313628204977158896288171821695421323697240878882276047876173960107753109334396153118595632646589112163747616837239778666219549172306334876976529260087473661614383705564224917665463672154178077266376333032616215617088752772844082977114339234152167258490408782700916547678747082085983631235395102166748191043720483544237769098701927376156764235490132178206032987203512514615114281750410344827664320978816833041999833495280886057052762099771213676686279907003211498448629522270714568661640458205452538883374602336712804093491080660592622383057225807516617465960485929852191354791021766624793523643874626982683649009936585911739010519664807572246556020432103640024295938000258555125980257228126957196295664775411070424618775177234248875649545598946439923081124681899847943445362696213891305889252862750549758430195765839184999864747088773666550178146072989085621947179385305678044081207239478022581944770387755615652807323132975134447141441958818895183266654155497792651546715266563859176426691998122482670864931189153294836624485539581907735830111502575167660196250731497044417191812865895819626927565847922931540867803482627853967068120496611884516981658518905860629026450515064500256318979227156038377937987380500284000782967112133570597644866391993342970696806202011517546221077711434274790049483599642825640980102185118797005394728006095528822982960674233464282309358143266154352883969058497422683194450488821605075315882938763423259960985917755748235540776248294649575751705720725940540964012430148331664113817967686154891871509407101479144750034186609513810603947169829297626964258421122041898189721529560529761232276067670370749167652992264171511608186725996309588724795216742962593681424384144096650345792364760910748760044475129003029537532182591257941908298550950473987323144866953921798527131228458545999455093927629018285202479637066589795070896501949527509609072096876110768690200428667509743627871751628434778112209601446722457931017871037464673702031987259355381380744992058606151542626616879008698371859656198142983619550067901560607131693256223706991234863260664831426359485263034207016020669135748404832318521007541978903758249620506638575343634528755386987600215998811183608255051443296774122406997039387116034863776836871427213543421192081847057072370639677302542364051712194200098816774947190130625905392464515776736516007540260407149791384624366046905381674521524579021033054175238840694264475604857657649857749590053072267288956142732634221296554881995235744022682760959887599497797635790119042660798679367309590733051672318151137939032993131579123631144819551401408449608752193031468326434821559180130411969671998464355258335250376589402569363862805701362735120953093386423082639366092083728527254876409682200263033251473538152278225380883449451444642025296705003325898851980469321978287092987093470160279362074889906998092089843146955929777039621155278556682735142795858535415761956806960001013717283947501753168051825408822545972904999688371179166531124784969722260906436607862843889199159371401148237403243239727891162281469416018806882860095538110426930669837754649274666667114562630633786325465133175163154419838236933302020047965399169062802817210785022781465338942640095542636280913733766904128681082965514436460145745935388790562571501023974977510424366265451074602140035063060135466796393133953255147887296066941558188554908475711833984693287728332032528713130105299332074000609868736936310900268137467764061576645016775656338878717997419332480815838426503416715602301975809690568282206733212319460736822388415137887609513229043526204807177270307219179080327933918324446257433471748085115962023143392787384876954485220306831403897801250729245537070694080049371195530634170976347778453470264666539628953287690959986883692885244134659099093473378365530556640617000971694338854977595810718012889211965948115997287156336076772566916531254716298887961354400699536097467250172776949935556487019390263555568051784474793979156639674029227591326845360195432220017551621154540302950227386275587235778256213412191030306737890928565620210415072083754700682618954868121967241226679041926672418156924986930634109440847436141600605220452073360025977353776845313483093995005672128167012418801994354610978097677623929414839660718360670871365399788562018441335920510967875703212620371683244448758958014999165513371709414068100491310388293793613542430225169435338393049720938251646532978331294459297791346480702642550574992128429023166074585706613626413019707692524002050522371405225436982452581028045708412963510868209404191100622036265374744588238420527450277421589230740029160803370328035637999707623174817720952226186223582442069099736131980774192174803566320209597639699059319913052172511277841792026626663476039594010379536287342986734965126873637738958536853213826399922987173520371397009125303103977536350322996220078589853247168971804304855463078905782862482916696793792189960968101170348147530235702436072228745169703965836659821544158007035604216524729709649448494671555979533615013541220084456016647745223929351825423184314690001852951473911490501032588534283581089405755739016381355205077486420538824942823896548924305126135280131678273296345779712761028678683894322917379625046072922025295320570452092158657449494773117183423300012048376001201556916772328108027439471213941933985816275053736250631573048946556522911668414981835484178641880087182184697262134959295255539430531554852999926328303542298490817586235897250740670740991850982134744162831180892823937112386110511909060478899908102619343236904674404651274968406419623435518059062855539937000623848323589966664663743538845664293719546190160830908058968580172203070564169000787198652706847332522573649615166194965319604675239638293596655696044294056548900976398011668774849680426875904561929832707768786450060078021787304884148934803398896197332649558622555978346750243472997529081190360613124982218557699013833714913608992230151119058168249038548578383339353670289659018312227332182366389312190764436621941344174023842103033207677107821730248514270267757848562381088620734001045016039732170441948902270862493610931048905410554946005605712717082896982006071306199435365927438156241198462630323597828467985078713672120007132817761684787420449927470072305814430582000807154892621251990328946108283210166950718566724920629694720573393475408231993146949676307245669661012338219386942739471545490667548802787131415865156097959329789999647323361143532693387746035635047396481972711622709985164315579936306198962162425666116566485402449586533336167383526441767132834569873458004130082887919808710063882356471626101968879325765648642499573270711417131373027670155101655087880286641676485841874402425434217930543885592771906437299123244812609023255888341889057310189537845886759589895630183078905147284702384828865242676014508795691597115486735857825334875449984080653158344670031339191628588092390851773267113821079101134568485938126842545326184332166800449258471798113328046618327327942715325570534598028601091287704428396432189230547054310380843896709873235481435183232165628491436985626415592273595138720465774230308703595910896176567962620215826930496327447789325162014634323677609694100702011091919588385143581407830201332349683751612093897033652169251160837720685451571234358461809405849954918140549937285421272019647350242599100522934197993922265261364669460365953187907979525687248415954959733166097877211330294227074316063935300190234167328996051365548670431979560611453103294212869504897919345012359779317468445759276048714929088815776977802786698953123092715950177077244293616851945543223913758999114425024973271917468381940602804667484235908625616864045243568214615983523541656220781623495462239323011557974613248791794759701539023202530168381839797441157326203649193094497098877766600334461868094291029978934076223074852823913765218233016539117012638250520635255187241053480331279400845769206037217624586076163189084777607839902605204725055376653414896698734895709853754905607075588797088850047878850932114231244071212380078293491189496408373389245343211017658588082792206631485906290102414699827538421015313666317778401598530883714148806300749507664921478572944677296611457073728472027523239264437088216080320521384772617764414592505935326485001867190451781258272264250509289322194234689238516306930513589419931119916024944807531384143050130847400211673916396167968690597590621955735779859523867813186378605467543681793809363985845877218983383167818302849297453702909060143983821383126841583962663865914421535591542759664538772420340535529721612015086833333495288519232065132771756054700428839032446986236130800999589384803376065937538776434105987483379940577528320771619793998792408291200991502692963305945164215259765402485905334870490690224495735076476832803123644189617548644723638925840805236880946626791925120143403472783129337645535116723882840234160647224128565426519229958438822444355262949691345206818003158705330532564362486889644881519063961303284385858760848507334311073572252269881171834887168481044933039843632689609455090637344710684460089602868282543278107740005783030935849781899255358526399940400787485471429022509059068449302230176653745876322524752662548296569083650282699811145534669805102526160818004325166926731265066947705501277916586224147480031397182686757759602135540013879410740439870493848863013512155941291040687571689473787246158481182220243473201574061167598414945081665858110462960832785389646888956275388274008555716920987440583094971408196019834650118767867403274371882989191855662343486789321604828000165357648299612714121174948417561154036459562353779734358355368450638229852292291125399540218670782806426127350091680458815122192780446782445246092852086866587220521415604802804395564757787240168271755299619393383801565765155233611578784330702076381302016802084590005298328226912227397209697282416743013954000957454587370061744479456078838357151335211919035948674821911656087439997576957509691886846939385291988262491156966842230466157135268652707377825607910382544610234001133887409406619668545076671681904472600277401990592843016203740285054175993405851110823957349720582083365853078949122594257248191501433849906700164923764474961997477917078551377947888215101208662195109547535138739191496267168009806163779447332805767092227461637116562184085916099975084255506492752487470619213294797006348281088754435515962228115502981147282981655823899389399923377547332807959048094303310783690801877245988049022103429473457376534722938961025010321154225636822831930629149803521159230698631232797156402050369859348525460557502977680628336233896894805397988558225838837006878786328075559532763575249741433694002461226540121294786267505954175890430541478260857546167605902006422364646492004939746439244819534669398910084390129582051079613297113058646030694456081452817096561040172254107426673738055749630156686220750345257109539221463569863452910655558758378052816881203579567014985147621009628458728802737202028384119795612688393121824240005263181998901157700115722953615311398002312794753604734976524828379899556272682812724818717957994448519911531304229284855439866813676629009777682500921102888047505713153003945597819362148027968218645992829976859825491845095845112743869755713432112152866805433788893806921302800754173668281860749587936726151290818844700026351175952933399665795306513966777293060795251100249668445788333224203182236666384245368225199907402988469737198911755611752177418117977003604407322883848173572618900272199818533828057948905582671688213198562489437444468988498633521068619417168192738384885026014902106040605933170533794532074162737602243930313000877483025858090219340419552079043773492527227948883051081358234468383958613844802954682152355844963900967613676364172358077187375941358560421324177935283463891601444267888579267758332144481694641551382774183014856201168525664332296268578035493151635688884054643467432754384478832436923134276139742710510130221586059810604431334788072557633713352732889522947984923584537171871140430638748951437382132559526744730771362060411955382295190734642544046768341472522546921807217365050765598768767699195997572338826278572102873292005984441982360345342679340781259091802016251012703668757515777110995699997029931052694729730880584386055767111904753246029592535544323401138564916946420746021633227256043784493651397421431700623728351265038795598907324467719776800286231477436554692369124141483929096815270234881509280241689639814595386048131112139149136533536306665760686609577533505115304197238204716254657936320512725373075150512308217963122498898789429202512699313766915756182764575508620072603704200757631973041141462080484230969189993822818082338827417802482573647081629573349556423839675969822471781645625469917866302234898002470993830719669676806772543502221845992536639795051903920898591124424060647979232323261460736356980921817262547981618867996332749670606291389605203566427133461343792081673901571401962073794217220448581284920470444769902772539282359530825924897278972220086635171777487125446666912965004971807470774134286225518994093810262392704997531545006983393879902273778824010204001083710588963560812575345847414899071972821480713206434923854467215621109709072587972781853294219179782201131351394546326310454598370810124623457495826470111956808743521152189223557038087617375325387795587516715500081799405150981520032461310455246422034736534615744522450659021662637737748093292925992969095905807752593505711197869064121022658134890889849497274232546091343336839541978715497816255764935793411781490389322123061605044894502266123383936298262912704581450163080372045312127130819186491025342898214767212120781564294014321223291008387851253162661450373052603650280011754810146545353372719979612427184168294820022111306129934263488922794696357626290981334080932918199707376318329088536522920457277340842832673965468673732757634611594879086056960045228076508070557149893944945487765369806436309855467079383174365288147666913577330322756767049529045316514800097712529439372417688389165139919601404589922805785006409757129321367280457701547728142563855238094980411615688654126630918623962290863777088059138667583598274130500843359651480910074880236216193256535856668109703945802035377180725125444643238205623417609246844156092697812157362953471687494570793248088907615364787583251491403391994091024157893199426289479347142921110183947614511071174206851218238879057898676636559598921518431090307454692279964202559002611285188633843124391449689379520577257869890202632975444820338511556278012101809606251185619759360246274605175132269361166535125568668705254598213707679120662229101067591457748794452589561997529776880862083778972159200437416314102861596711714496138802845370360330111783160255829934311267901102777556298370698051169654685419350860175454681737363928110578210261327457641531283684121719291189214922386656706105946889141995619804917685173817312956220543017381206063314912265449244773643144383236727908531995713143086086613166434397845767965391456491551459229857985423650715857030493187038973186924312441729717418924804431097504713105974556856371768635586374500901887370632085471596827900121943628015880452496706341876447628394052580396481910270922440195272851785910226748464776741191115396954750263136924861452878587127407812001387664175313885920955098832646859816930132014109476965305856853721594432778303693044288850523050456300308377754106891816036246228497941928189405595865273745872928202057317185638312265436493050018619789652496439049594304730284750933329044309306050567423650765530260406144484985112926781842759990320263762650666876915629217959068858587938427477781478831985613229463900402723604871692382353492108519796452666424157636992215746187053248684375040533889496021674076602048590653358775330594398352743586240241915209504118670428200025395624254833211351952562147227865361874696132539829834170045625093308160761581878059316355855724533015855891397315932736815064315782999646245914746141542214570394658862389993599203099793976696587855903087418847429180155359866358791395703149137920347930485644939130961180564393540261359196403063740115873073129735719850524797393105480093838638539767564478102241444371355053041747233945407138566115095406335336923593089675620675977697639802670579085208509500709816320582614222981013305722706454502768005110534996149939133220003068455894530853731973201492422716201355276085530696687018575853940880887060790575207755837155434912201683847723782282823178942659258128069882982254273154464270696293880494198476641686395789956957321126314878001265898949917036716826846507216521907019523116428819779948259331813388821438998135267512216263691192001617805585838308255023752662526129613509646397039400950998626320350194589697609165843393037275869351061460260223177161762042933741857525892766294717963078169903959315487567935090574051299767292143585808661888191320512054271509779855260567882140984802677793311367980549477271461926322798998887092855081357185485806168288344580555957689323659927166752982809110600277509471352389216463562898566644399744197031291824593854901974328826579771511882703636960562523857417532498239781015026120720046163967893903936905796194936737095489159331215105810982758055007188844140466879999168405526283564805242107042470523393143068951293885998212397353359680060336861957266205154671631668478306821115817844307135781586739835265930252850245702787479389031632630678826252636074565515642880681367380625400767107822342778443124512448438015458767612179594021252096859433551933884319375855515924278528705508848222543122389317765873313047292863957006791739578696169844265639647943666196750898633726303655014846834255312496728630191409726978851688538538781759250213609863184003659230593153883690317391253253955417956410627462591756418879900684944403815587143216044454957883455969022181298513996868402543358202680185760940927486447399545324244703817652436650715989336285866386536413372628262012592320392624913719098881670248010986072465639439945586530983602593757996190381523762220182267429545898269403487041571724840703393351849858373976297110418233399624203827185270210875615204964552577593955777349223648526473144844300299143872181283948175712361712313718574754425806972053890707933400748095664936153120258142522539157644927124265862573381117991910387050548179415351852736306967528045030606200902136290695293346707122197068398997663393232474154584166901054227097889499813022496806445586806841915621377843395897501649387286423414104732544102916390345718723426113806373581224463906901326502350044090560761668133753070855817406222296310148185926499620212963458675953103990533363261490522080742109258796013233095340626295575890002195259699192349212070568888374832489843553807518791381479780260160362601826676587618183114591486005838352574402055370552592180881265838626622683195171355981330943378242680868838152206122425693824717536229993659786164123787365753453374326409624650467571595165265912711166520055256003563528982453940995049490434785343520437527801140084691429326684819103406278806418996186049515833120978118779846162388215632892357650616610980406511337314614314515180304140405534769688302213376941421174903669988728554585638999082085639408444999594128778525443714500711155444291976202315754941947833071332807408302984534107793329553056481597190122452903664689834957342803719839001999326768901171071082639117936266892094183829446567889529436328030803969275782989702472424010911717552276024768155666309286394381069278107316336455277961982511284910539796684694926239544651352396828703202439287824663717902341112749217494742417898713655874729176013550923844307971383104004464774510062237612286474812191329346773739110238579944035650190932252860052029164513857952670291083356196617664563402757882048165901835835787562424186482961259459711605891750465053141869907720100112406292156489095825746565851525662005392617120102266612052628543138411500464047272133073677303125328864303721679778302417077118603137803240342251056824062650609295613452889310489212921326820546301733629217359837750285508812650334317296159342254204000457482369536410479429816323116611611210212899285741700613534075302661774376328347203656170078308278283418818879799597474369064488579020456873467389045858715814134520696671231579478472809730795194066623759077744369698230577043798113168879750747095340480333703865734824105106509172191483704570942885522926421340709144747585908151436261995373737471599810476374253866401457151010120279033297723388087491994802669666849835767157853202405780666660128730403015241648292770091322451375822535919572549172937764517954528727920761122907730712754437649259749601907023362487625948936422267890430974283081548846919228126823334819409353370633684656239686443505945017229404457029914266399466145144195373427017504431977404419288507544433774589596594640619176701655234428135226671425933210981263108643871179001831645692541200467170919826980465076157258692470253106698606112923486835642738363817020855848597228952808928535177754504476761245949033812798172885749963755435783434137984216101827692735114250506497291761520434925935404351389002958824243680168277371247992789126614337077453028009160305611518866183535128035513553667835877975058232570389998024014497941794829277530207942238274888346415221142676828995719488810251683627191085218175918620476884111627401288968335750689921781338443913474674483591104971682080947528058728524035378465720918307467704689514542626433411979803241785976651074647233289431041563705852720210211658440807822341542563940914027821557161999430429743307299340171813571786551639041755614984805180895764947594979675866061634872180540524873084262382862996120363175481533509636133060659450541414120977352071544914407957124447010755708943360693432622365382246220460015014727123718700435078303869551614480726015353177744777836454538675808101133113893968197328088189669431240515709143470385815361692238188607424825407903253680840261242443580422942593786382683283442436351856041357214609333822714585152443158455181719153253278648467562228138397748353197371833351484806487048155856365207664268025857347206203919201836528875872910966996452578899521562639014822956733612092047678129310898034500630805998024438925450215831217226255326545526714224002274882386056347413115691891043161388041300834952454895239151441717203934394214095794286466646860131687856458390029489028106889250827491246589833906470424382953421261368028161706156579809975553091044039764776124290987990342635301743041556452752172939325510873682127476255215928422797623546904286357713478905804496510615624481516111466051651987160821104789390556205682629376355874413776780430170360715811464101591659898355837499074819651050634448921197912600099934248857688865536007865800910784928825005153579805770959558550289291634652316100312795116559567693022900748493669462229531925004137534819668375505849758574555282892710187618312295455948477042204454665364650402392923253321377488762935687585763701544524530864347281734859554077511311676046107802846884436151877200041092522236026400886436304592740091675236576585678472995087822649143692906284373133546939219914964290156604464426588284753852626340913751741934892360262615837889693544691147834706859193988193175072568320478013861227049544424374429591146316785978685283981184028255127379714719112314332814657917526390917994534367627805114266845765015545958969090984091509978122283281063064123722410133383107940674727692691514918181490819858091626402601931937349334902298110581812271137637305414855780235384096127704193783260575294442904997126216035981728392297095776865541846971746957713600275724962088192136495844126035494223915434569102378850609593116806997727729633832069225903282114814241173604608462005908587614532154968499705550734327836923609371521144111957722224800132881109690366673520404577019084747229798584574022419987139719164552872497083016218851832891828762328690354379204553098747579688437327318000640928746964392208572677111456606683083522152562819252916443169348674276599556294355970720093485280823770966038910279599225848302561982224099456740739253247151001169900647122620360356641976904055330282995513121644004501483837732327491276980343788264330270378727201404200546454094497407583833237038416235194332876350825760228486843371487342629164602269974645304399565946275598471179718528156955388823959799291543721248397974687112652941519384944392461075218755853623497722098419826315425379860093065160857855593242007285438268082390748883512593018041052564674014061508010563950723971973377230718091116639392019041276401455036622421482960477206632757482805734972396177817867372948879049751980374276223093698693806743473632448940477591158397443183363252673875471440171611870248380209691485487477371131846280298888409987450557053066750745605229068216318234767206391817130102465256582896049459392721268515785297088938006314347150544790547669295110043579345364320841982214564416957233963340673953373130990595481653011023728621551131981354977319961916840254225805194735049183522040986357860919354225159001015820239301369156559755706695874849896163282769656531289322143789636343299855135073442721891954264657604254630552931048481004045708689193167313407886213490247924256633267034952281547109963315053397007839414416091313058658390127335418198619873524894310904067979687609021359715149343290135109906387037081645624945660367111816748949110193276442477311034585977779465070236076057704725725534479284072181705152334353151813434161648561825983693321718123647341809540950902268011402590376865866397936814484303060514789127625522520052229025659800213542462277904879020320944288987782802868000474727216389606285954729420016790190830325262004343365583385086523913381658531935016745635313043807660983601614390286942810955756237402467445492462827314802305409412183607671313749711394482940337865382357040113055126833723926800545781454932588928755233449652137791793660960675606722148354011479021478406159431492279455576433188961766859671292948000915095675927205823567752880859530588374161243373088602662553558090919908804528051414164560118591690688434009242971512349425541772936177454590722932312136310640640576776303837692157751700104124118937000993351944448430014678748229437929159321512642957749762307101705461488964201423747150684724353819438975590655420255190982969624461308632529058395563927048290654585074654273173882231854005706184048571695336188690755838664459541382582266056584000193721594523310164732231294873832830289565469982714855454275251269991661412171959226747106160979477032817929257270490335769519619107676627572652738096574960115682327803188195741268552714269673577051093664608427598941021556141989880237740039274787764760589218730426195631270219133656679976650349833244685318948920542849930475980696446068560606281653012694108984968789247178771832520547705723009984074014947342807611720030985520045765216174084074012513004042167774992257334721374196858934673304852042440737510909300205470770787951018113773085562437374312116904951372176266148246111300153006232435184927933559382174044097488003961558103820734449506590031963106945066766316600764205335963091655622197736489468827483330692024489171485112205921086293219926828464823145463607249013228327158106760951580461328944125220741001565975507146354876031962796880630833783196653656971030468199279851029129194409232112140936523833618804958613839244573902730666807575404187205159611126395417670823256811210440902688823817122284544007123153275846589329307691516781311799976034359457448000851101098646279149770373535515580229615028648363681730189570148574373037873384086706805117097543491274059504036503058333830901388189821321283632348464279832433331176002983161506054287490571613224317884878466889116095845973890021523178157083547379960077596359074320498297053454879679547784576720493791788662142679745149157125427826413373098097498480517466643404281193777811432691396407724396856200085878218864642498467052569094309380902637548830819428646184359651024425457684903476934819329272353233646388557683185713548018277329475206926577202121660403950333439309199308923378085876450920701789068060927721060205205026716839239289479350661600228837191786962583012851315337214109752407332292908875589640586466955463340326431116490331348619577876364952471345811683193025563285652909115895289298268075205931465071538137996927322312854985418679589506905801104585231544639370182219697097518357601288888225707305728198047990063720129167990895762729456755491262224970653097129642104341429621488769977484607988044408276615689932606124190946407534372745731170599285408694648614415984833293920997745727730722474151813524448500646990701149352516616200652055242436011116732054664378597518235678636962569269333923856027888467125765487097679956962687320842905836581075088391204130029171891995587632598746308751932276279553709745450927989856803271439887059044585778948796843211789147226470587522063024237135118324636263832352419535358612584830110272358780310706407844103870913438794728440571875062215994771157525305195680592032666189740811525936093232493556423986391346302088797888065666914994084133600996437215450422719779685311827843336643163485688350698980142450975826794600155639367518310262346778108993985767178474656950641943774927338388520447382012718062266731565307889012999889676668848088287749290611663058317575552219361342615187196945550973738863433507812988808013332365548552960449116590338901647999137952007267477661189426196651751520024611846908326689788612740055430565059758343450695549023907146442989643365809225411801401925497693307573191954590776906086017305816302658892879749763679719524408338463882082017369872901605117633761847376154953457518675406456802683045219129116538018878127528852178239250750143450947525143229242942787851416675508556860029152931015843704813794763776013623504610840541604529816397367123837336280550729238830085343904512569595335419181772744966351950649631488605672697289601274802921871770065515724318783724385154660537696656540812456360147243364458078876323234115334208583285699538971612358126722617327171060258973101443117391085193432987141358367136725131840879815034002748755685362345482287729032023909071953793868723687167799121537013803836026586735695487737460504823789793142009049576460314987428789296039869412115015466381467426480412482565571524083285075361664875498402049813036712770178507530956119150637807635196142253879326338010274825659530371373635128704540791357259704384442443169142854658629480418523282335576957225168214551618921601387084955667862880254696750317156373855368491104683503232744932622504793590049611579119401887536188980597823000496787820857980347832957592247017324933334327764401415115840912006480622135534377965381983050172532899707366342247497989303771100966436778686882384237207903018816015638432673072386276583790272372533709197140403596168935423005708941530748845871557028710065216353476035933451475097204571886896161125653213014978449158221032692083197153909479112376796018340286729568672007719841966971301546540895768569020413593302683521805493304446505445831330462961811134849899911751498391752123958282008723041926423689489708175567289742034712254100634820786648479998829497383891822932047931730666320180721590292227645456232801640463438478691849295424326261693119760638946958623324436977922067544172677465377750831832708820869363260579718722935772962052287031639647435804101347421957832197448482885735763791350649460644327801848431495870469310560084721901378946780599608465028641858728823419291198763552404284387998377427387266245458035274888234371483676817239871211413892150464102909539634967865289010590760848036308217559129213094028340022927338728510700235847990541080449591251700401849252526002845094027861496419339668771626984041135159832270268783910200645588195803679465471227573386024951189902382320940954221498597226038852494407187642942355125757563034553754238156523727832488678216616742004057047667873264618370985183742370215091669229784975737874841098809705990664022740259062312480565271717696107252754156787174061916280208464452200935586575000103847614041124792682915522030733877588942523244418744503706488127049535966774662545654243652937632708687373487796626223744014820218481906710907251129264679108695482791564193447022406274184980028970081998194974290308754932830705796167133179581877329244275763065263691933593170121147001905998178507860892631995128013291252297002393569591340504922188870140069833002378433310810770600521069713497396851626473550276838539496892062037909180195276636384510166503419513732815538906884128568892209104981071556150881370925107283472253970970767136835509266809514999442543108810224873320984560098397330983982901891732845617678550091442271361959179523511787895785363487717965029014073694417706888652351056591094271437566210911041536602418037876714946001167938358034158627369812299223305170194114736323711658421841441066643166174359043935266515326323446861927646030442845232406520282554750876505384515428636687075056270519211087448352533450851278607664287966834548105378634317198032575870434957660904041942259614046379415790961440428623190586039755038848201902661754765138813429854188114907836312074781393366633211338929106316207637002287979790444810281589920391888347373411645449053012383443367467446422966403264112850014355822395755555453564936288816127193133397522670511142860849325325368392056094876207831032519230366194649850592462726824719378434778625219311653640427461957289572965207610241477585722863687997812314237257305048081254917430703061675416955654549980829255701347183360433454733614088760776197704351133843316151226309836097112562444588895690960289100966069759961553468166314699209657386965666003823312675377698897962591789701191603768281073329595712713384174595972526432090360986767216560936817492561738927772573362329262433522592197704952621118619321062762648170515035272652132266611225705320591157981646247959396865195944907888677949957817322098557658633768170257995815543370592998535813305254866400795753140404548083056722375475638675641664070156913859052361824365473944728993682596710692146462385959408272214622053033809930027167192897818409385434212246916089962722007463957164738700271300255246236630349373496910163055109528635110819193305502808143135361949940108355508123812892828069274392927989154634205778198584038420518384496769451344750671216521887321504736139512511490398064150576145935323261034374356112122127496654108530757160264222597853478151087744224563842021572723939108771348770134611754248422624996862048100849218761500580167767507276598886048806280924332166730965943950217634000588744786268426282041778462674487545725720358995622248679498993642962642202705265548144613808463131412391148623559686711872919304207677555102917640927908043390188461235706757781809225409326375374374029148161641758349481056948013247123344650622769299664873182991609722764871372846708981285922492586424556647556762327719931886160334617610496683586278440573400637964478929899469268510042499165181831532686919196169591956404756209012920959199503021159809316480648728142777073863889809200673156540017960493546329420616204580003339440538349867045844572043044190895884530510867235972721970241590191194556822286293619200404542211316826041814783559917282828098090199935605168455372872335908686759047607356230650282222336013703965950689176290830252211824838932481197148169453025018239103921905432058922788409076192984956707281003308701267356187506623173822432314189526384050205244332784994065655336487800093058861369196058370951456831207830843792268989720519225517098383853804280040437840327438392989369734153510941848490425921448389271411345848337619782837271056167963327763946421245195206621262532185115621129728659867605635810366675121409669948201499664086000071045172272992025514994171005690279767410437642759898063053139996863083426180326451602569283482981594798848875542765210186512964269854474210700685368666372830372729642000021989009991710834577526122815159930994729886631016292591428981884108718721531158410293759418694157626034179800601289940864622967441259903921707942446378845070282365854265389983825336435009093347277232142195407100080179163352028923721799774420292191061662834167015283482664749020472824754519290188885724589408692968653575423668451266596225477519415504209507018689480647332993466481961804694956501591001239079937352026828311652762778004858455087414443018760191914508273374712299192033637348712636176049263135023935302241259291546635623919644516653147342767373150133165561457340182581294017372702831119037585242987872888954017609075292752402325963861913571829276194756325775578072791790876490834978955355158446722083793950880374701886639940269584364164534645678734050537327928107063794933410705559809216133205374749317352374515539361295471756893042936957950575874219816471164654003225241827509606654494167788167455689339169688585894624252079743495710532690007748062419724762136371028589935140187545010130870910133974911556906426148273626065302142124267434726855855049902951276547041892798005089106349679035403135982429586115441979770299362973891028101226302456667392348286074669693373928526066069049079782558279439273131771635807362476226321335164558539143877186052935468979342013105864802704699223173199363323549827793744626665123030691985776659510281496147835926394603348228769638637106604157101292547857237379287065189317236708550447500530484978677155897755403164330309803044500290453362136834290190902265008855453407791166948738049832045166094405426522154030718023248870204223731655563338969891202809739789385985885182061765339872722032150916012586652414389097942264247035380706941829950723850783462451508749995237696249592771419740517984950793440591840993683462351271612958980272571959015680309873436122097029233245184261499743198610276832945255074976595103106536193014754989924438774424361427096086940549863093101667007720624193376320748017760939023150142366495421399855562931056242207025323306794537392824411263038555876542312958180631301899605061350820411061754901494460237702354343561562991858525568166770876981398726287212239443201099327828627275419011766020113788383439970584457883759647208868544583923222197338820667004120461558144153614651146553907235622168729872557370208199315072707603929250936304358014180804841370670334588287255853207748803043951576261017885722541487217694680079823343873232840161221700376025020594011622098598161546419753654213874658825723028587919673008184325827588171418243528190939024714466614764780847710656888791086269666598938699543321695202376572669134466745656807931310425986711745870011908724142027254522152683452424908213431962570543184086139245075169172733667980661753661579687455331848251013831226025536406064448589228496605040407479478194962414072602641184662961761580177613472395921638129710235772156510471036075789045798804651643475318958532159162947401502455399135185438229974574103311571266873104574222854304359536590648684281882988817078431197936966497492564278707630892240486358949698796335281115608160265114901329205604236503734978870744724961469310040748518673511473456444256288707094285688174479767190045770267762145123919550132094339730403789197078299779650109253968969174422673940002999878778776668999305406863587412114408783959513361762718343296831119138402747439472629890277681800685595146037513128534212732855308973203227301783599107782230996182173793662408452615162606815595779792234901979777055484966645310377130841877973569596897125900359202326089087599288989495753971538958287810306722784179418726438470395458366725140416178859193416943339760729078472807651110519271211015647332840517705692708250730332252695601656786812252836983505149171239939405263369030140193090419283507531902409654984436785583775103693174699663626937433311268756570446052449689208094264614682551695841553380477670147149799152306103928911737210707830163035008124754633429241833415605634318658519607176066526145245730756678250123605450386790239725235726991291674563755433124709059322194645897396259146245202070063211110894854864146009135558302890917160520297018845214546162713331293203326314704253169409637859174581677829936739690202532943429500451308567224185861551969883372602493335540324839374925099295094578243580423016638509502441940075181070063680902715117673336204127688184006407090124178411691643255947809037532922049308498231954896838241813868429862985153527284073932771060576775956933117318586647669839895428392755608505532989031040410970109047370183551523419898441278957984310887145499035261395971550461899861188619748557284705656710449552823412455736357937270317575207133323535855165422354576524486662081599835795168469920720078863347928445873032425257657272067107675037277750953342249751694782261511478721908109248305569977782921699615013466922986203852621428832998341910883695832221324796806178199459120140994081197482485973931495455358237457647485570794341644235554034896002277900745367537398721549293981137777140629613553561635650186304293697153394277595621158742732957004163032304541951438271391930048789622376649349366811214771708561984134081550284090077167072320083490800782917334001631542253594832095240431442652234346318635785179207990863108980966124512848796508545683927327061354102187723453727186922873969243656411721684424125831507660292984340207185951535245994317128570356226813117457357871759372395689988554953739335210910006641107171623280371163596461643787985391745697945839544474010170889983390369094281638499475751055882545083523527824852589455820292611632811860397799147369122500249753956217227016672232354878833346091191955212693014539269085122114692028464138263335099888760345769029049945077877199043459404518368881019218639133086566489843605555955525374045020586413752367529949528880738226102049311269189032079925994770397890659221174905240679540025538673825541552980276106178504317216968191499644939565808915070931478048562788861991814530413000805593873236081853753108492588572683547929008076302813028884089071540115527344114977852548648696153707845629536431028347660972726118452170953236671291681707346577870748860422403804533602098085065156696125796004927196128360823578205366890145739475418463356225098793581894322488184012444043968821689588890386323870330901973394662348966492993315595383285245825096596568084180828665758396140842343607739586702422769039233704170212624475084838224265322413181141499482753373769040029899155622210152751090702985374877886185209071082512076694027338307700148707371298088297838027376013569620585804499362310651724739260260561469338384898886919186507464824054222267302992713435925850396958811550653358640061350905673430105886045799882987291297747327036430506653811743389866639392266893451705811824524670588826574754225096741339010876111624362626693179143223453537597741754302503312437896199207043349159688253429733152358709019823245730702979771959756072310798364513507242106405417538154238451541322339772341304899287520159649396690913304073350238326014206178704130082501635724223916042861766796060618899900483506139988874371422666116868668802317607119443612343544779187890112339613142403110771326132426101947735312803056094379011688094041897504400107514150711643960615917906227162154094078610355214744095279194891045411080221935052646159962314260490612233838948678108124470091923994565616300178978642561786886998100379298752088737939851748758420879891519674336336005115963376746463252731733053465801902132489686730211883228347843882823924565886056399779588099551183350094997401644152547715595695878213138341356756336835353691795469165353886851124748235499466395656181953819955544535891734788997354189744221201442706662183705823089630234121136664865051789520480267664660827109918061903265409182398296688193354827029350762536430706296441237981742935915699639668836112644141986271863093623492403113264910013829955011244934611068897759444265073781518643697351575413157790045901138990702929553013508711510126173486734521049355599743281199400679003592837247641825048344926280547216791937576747463569488199788498737311101697808228540018015930633319304927912730122730595706407607230254605377612603435273927804351141933147296837690169333597448814008064614355953170810812690749978159968559661138647379803369949189240121115433202258297795086265588388702447879439177337421446218796168786850452768102204859546157971567539265395626680826055993745264278501237130792163538147668143801574596798132366191921395351605124250999951140050021346562618546542085316748232557346433596322758097059615304529321141520840480979958782900994905063093992127224530539786779172342660935943174550810661288484587010787165033909709440855266748560276531797810429414168277503605146529925408530095092996215641146714284116853642137506854468914132296911203181263167308323769338030259606895677276764219106084242123928867697260875719035738413919410192040084496368515654642378462856744933732955666259148775372595429525689673306503399387056475441466248548985281619931040213189724388288930554871784316042497099275657191501747206998471919877819379609286676617596576937916119970262036623314267216337540587027374940909079341820902569338577541484984155078506289858613449293454279663744027417645434156547062243849350268425022742730617943492892311259530702016974610283936567229545679367356268878491559108869551234274680161655134285085200888582761635819595563484098857391566740201122000866598170805641240307532052086962357184914871928649792661706462458897481783452839057575472038887511245467567891081653825414243571704790911304213091939622029119307727112214203447913848086899390481817606588404811171227203537228376669364236221824399112927004701601150425457348131318210868220594671351471714469966367344811529841941448417358019656336109703271261708843163465530835984609790213473816880483776045582742821372412436605566559944869714918409421955624920236535629690926063077727441427199628571397872530412101441505873284532460654320863166440183221478889558183321448821465493376304415895866286986476438469809026467961003780710871601038465628086785729890221030546912245611227957032171020978010862292201821663821415655917920509475791542928168059830749276002153707147086881163250028709226817219700973157707589432361693195334436444144576220553875988830223542478432014398610780116969580732868474647039578298256147824778144068897150864534500569267776948734204480076725364408961257279169075342382268332378615075192569106521446548318789290632167539894274666920756933356479453538003930764677573914215728232967098762561276078795392144304669502219245218680476137728627690071066199669586720275972415537044219558352988896121818010215251094123492665692205892978332113238789183731258110073314138188728951739222021764084844693059945215656294257539977150058278025980875550153676209275422658868974972103081983578305964531607133657243796477881535133121669751082642332539292097013506585294104089744988898129691095372914065639256531231589021589070244959964441885084155273365682457570414466167154795583795339783906501706928336396601818311616575402751738523354343688280860970480869218683123080033671846688649746565756021214792214988981288338183046621515778288389544877917439250554357468932774105793093427706661453005259487181124568672951603291258591500935686084377253909309459561980578381600813061973008503123957382460014736148353747565572112274231596546406778140435122548715332469424069471341808648327515660387841668820775779146184064224331644344291328197070098282642746950872335955714180357225468573892156273809064609782389341474059298528777756791511636094875177225018265574230922795521788122808510530811295683937657016819918855958596030250488044174046130636268497235399507284063041343981818866991208721463044156353767021693179883215488936853492608651165380850463324071923771422127075035099570488399970335910396844455664812605139803368760621793168943622584292370024536607939420158954208218766048776511275981139162106201948899276796964114580926942950709411885478856254090142244169892863223852907946784826360206136555005958161567464996779726793566924635914623350551939020898657833630330376819085644392953493447790664411591044045680504591260139945493043936333813655034308061684521342599220251600936864942831323717726098970677353494078670605021969965171777813826679598887700766556901032103679179072561538210662597599773964122293794576320637357991308959118251207118425256857155262584494213140853630319337650251141822645953365321693766549945224689269289947185640985641998242265165679241510358113209036717309650933172818681777329254297119773547789559275204767118754815780855732421797433012652258820662251217113835880157235486288225446678231597949287469028549499875544805362025566229169881747148930373661919596108981852025895117251821413720163266663417799072233122804816528003963283634537475990252428841518874723392213809960510935698150705973777917398709495717678157796570601443561396753525548557540594169010993857050351228305996749344303865493703473243767104188029232147332269386537350439358448163832375245031887193685605480688233840095635834900882680079737505321773761148366571897785228664549200664647328802537212556180553254118099299587551964920283617679363384791639599854633416193015413452042631631040829430122556702311879277431102401068191715196114193808546529446451287221450623103188015053382100308004581983088351399129311836400846787187477303798647820918326772506316320342642228353792660474571523709992445162591728629600496397493141476938153980032728911774328611169558708331052572240047269356425942080682697279144835116353464257724826565344114534592173955830844882529435011500487099321247474847985346750962822818002403299248582988647535281714930878007053961253055688526239240078927295502928681515989087159026674100389933704132287475810947907180483304926003311580482422881459161998383730327314868992937682512430418902733753757792520831692750722431260680787155439671960793145305795268327349752053219658580729568382310681762897100501163398576213956925769575038087970909163179331090839510763758773217471291047318864523469702700224747399742856255058728026460390425003059238151090023361634828256919300649498687352534744334864358990722373649004204443432113506897801534558622547296955797483221016131079607566628404705541089386039504235365989017150474717254867748666896387823536637737581684574277887527063596538542365700789398966955632364798054625292380913701899048571919087512557857355854911335904156980727138686829676750660631636776095960358637095268378970151825483790484250462052679858541209828776268740085836720679415810790183986981134031772401207291133457608751035044462316777520197158381528868271685971969790706064238220419569145250835286128839138889422903061063999272811433935319319948922465630353372715890852452136551566081501400588539847950778824518402362473783886485751184579876495863108179065069336680339256316317254611015131314381180494416771663609056417191608050800711156853242291883731528652746977072401583475792236375808214654122029125025103404459821722812976425215555283256517238170827014071996931588381398557887952241830953013943548112273698849805815401317508482768543258569343492754182842652266435702532104563473341309723586260633349067637358266654660592090107818882307487894465155674849444403969810370778684135031264478141978529889005681446353769645486087115724983979439883109236905377820266732558511740878577761164939923580212049599266661114136397278280275102638318148775485574740170354170857361648956736365432391294412311760018557880789056781015636986673177663727253561288248195633123580533941450372670902505613835611393580024648814627173764150671645387350852697299199947964665893095912083356859538571843652029602494005457663240128352417339730352558494544647700903431517249809779012924116498444013753898184072039756099433163526085913113029231919958458101238775755807879594056909091098688926871748105520164021852279859456905178471232937542038721850774299825383693855897270824703542402696756094081239754534688133409553344650605951063339363058424977331502209890373422061565588101308398506210561000022285214413061651228197103753901494603308125507619086522747590653019404786765472522429252523264486645412795076025748624232703460883266013685387975683037284858759775668016298150283451199464059097111936805635781716284491776520805269207125709865245913150167659000347228075007867495577208533904668200621759207304201548608037978999427674938075696969912509194760482248017028054172725237023668391038839951453323234254095017288593961177899992683714314632372206315714355718295922731681805385212295303206706541754160636272767729843324946349842155770502961335962302465037001733647495279666295223183576625078861370510635546669470669183676174565559160445771826063755491774902983464157996613945788093566714801313113324673686370606740597621897869630694737897764893473409003358796713861084980748916532112676874375394288104423389946398051055976918132885579609401536216924869840767640148924786883081276160963615287199589100925341452658604684990905341286040086239247449087137930161581279421837531965358668688095175932409853867017364788832506702956737750542275396301391636305147298248694645570158149587949944900565186949325751157572268376052537255127011066007772293712108596278810098657296520624185812222977451882163457813608844920638967157418941950820650976322901159579751329767372604580130783033556575866420996556207964371990092081864564000312826706417162072392115103802204721082002340318505685990136970526191457583315852216036328427646424891270429891573142972901342821659373077624575337118873180544763894045329115289849069877904214121829424414878221613396052373655266711430942495143519501907677773991214156759149483178671298362598228921862923756105909446097464844067078110682317098145842881569039086337994020463378865312329478559752147537830361733467116046368620832142905116017684536331136938843549654560636028049503956900835540444306650325451330458607942325698167201781026883508958314203036045736011124688806590464761952093715843658716841261282436555809297961603056717523421209005732718627072796671537850616964376367130177700951285316220440628970930947843050257348293737739475049093236949604971549706929508363474108240695708867208138834019086553489553160330419676960430088687017216642824495468316004484544151079192088568078517869804053626030040352448556533731898873791203283114441869337535382211831708150125850730386424837318441549055940978173376912721016704468984805439624044446553544036670751059439014895435619758739179851555666915748668505636944332035347533397710030153355055597096905977235725929854797642683659067218187239548937794814981610419007764989143499311464342752708530396961875681257034087065112871878392698135625783859502695951287681051962372050250279232989254803249634216245878904397624231748830960455513873127499953054752759134069424786974657356359646494809194598034803974354655830269913074911018116785496287874796709429911127374036699731839357819972746498644839989655800888929544978206651772448214387081726640524881152123461678843031068180051915340892015317125004409950713321174210092836434591457220184621797789250913693336527779883304458656242132051468312984257663681727707122851170218559119296178022858410442688988285874076917711994485939334083494258644500905786056142242967626868578072619348821085519641902914783781222770194726946393592451120626374442319132291669023856789709841224932575276697944305482531058318015312100153784909870615029153375936810000198957204527187957604612127722896267293763505756480602100162664217541807897851061586281529709889299080304410478087176821609403374721884574465145278062546255688923293777789940133045052879091775167199232503348906035604633595340932279360843698435047708779402205030512332571444811531818319321959986338970881073234187836539027192080772833155811579708346831630780786127165222983531887394516012198863838157590453605728416511499006289461451713098123472229778426068634153424703996160036492342818824448175664811473847725727284337156142396515113086050607213716808851032781530881598953730589175282315427080802994365980012541387306624575334753450124968831565069329833817409319027858676551134747930546323776935804562215834481245557221527465356336764288190164455269442925233830206425513114273384272855818478472330287739568753748983474873126445730012389096945097946807534941703428956066122685983605581730119297987412340741334589094564042914066851078512900220312057763352619321769024129434484432882007089699346305037136153356913671471281200074716155642152441746246240421400736434582873748999343153008089945928782908114753794666215672551935045422527775749887751689876981424825594908299039527002844113085764344747880909362563765531175990658716303290348135079214524738744635010543955660442662187976428922553052456227379197299308914543510084073554112688623784111021239006839376633608189010785748765789196965965835737387206539932193793056862950513504403101995935666281701927976245845017870831384604766670857719631655912372183895613162630258555921339093746007944569838120411883490887853970762876377060119921420771193428100984841352032749096012911344307711861706740586398533769958642745593666445983184801335398281539207984127167133928920120181715660019758696498028782994161065202692824866334913172574032134491721567530089991614893967292988561151468944792800348982073073051880479297190919412681572657353356899899870979690162122193189323663734955334609854653921580752086497172801616060887945914426820577060855142893325444585376868640611152235677523174371699966808407567063579468458633478741425007575449588781133245763269061108481280431277886967636003195804589834754197202623984831790003678931686560866987507303905427722333943957804779910329352330371335178346590172276380466001628836551465711667298255413858229258873104977529869608105140001052138362421770479653136199932848653916139505020747200041002159125136762702359010624256982299619175980513048248337424362437408732950975212270700477807192481911623600886266345320330071474321586141231129791697370758870668714410760520623687511721648144267925482788304338293182207973122218064298829485005935976944097344715666468956409603328678393025555232095057766582740243853670582486673092927829134655325389985457007614394746901006625950720577785400017048293191940495000064433518536273130992226980833449232706597004038487536722389438224256745294870840206087161172385494250824604058538989668574727487440088874705703429485176025225184796332811332718933328676628621396517217404031957027529870394726441240803930488024861907398049102158198020320421248285900318679822249575860664514156373274697778327953855905033471151477251138078085750526910292780696592634347996002644182948711563168381412279278745287364494871580063554635125416277032647949291289611484053396274705931426087419352086695839285647191370369810933739110635898511976423293011996015083820352609418533309828965208601349003069788377089573984754207946744817729635060572186687170475969486526452979702134873280152131459923136016619927259689375540480048452710042957036680630369325255965763460904401235792838062263882303780962453036904611716405895244312187474386599215023391501013710372360766119715488065493003459737962831925209498301857758109614855639124920115442442197810507700525734060504821480288563722737042695686971961863871415946488839340655945035317109078115108407630808969934001872517876493674527664837232537004542327424281931618987958431667911916378669949515990171590626020414968242496415180599358049917864981396594579117015876296876232487109499637009090199167972901008894565851120467976586760321004699143701747364731194318266042525357565736197500005699994867810622449402804746440365519719087622373019942116102594123673677473732764188333598961944545558645473641405473548549698876057471132233515961515309869678992860946353493396582991317987407452395607454165512109629249610092691510416990992259278884583721805099021173347310326992994733720741709246168689450948861657845549187921629871181036632544805604508184779289077650425250945815141042910210842838845055009032183938513773900670122311066617866619233680801686580402263189933923772339886245536051852094035185802238496553913675197900423138133518272556095606218620880204486295227168124473468056827649680212726739438139400332349370253687367570875967875935821145806087978840324665740901249637450525689389904969063880678501067860818794176325545072541944607865515109721776239443256072625287299170262535023957947430274725139307707602538081426047338696991896551322200818521393230307886207922927987966745862465800914473568185158836839525480250514789996853201760148555480155178243081396869837783929776527806232917397164200073062630254357565925792325813418706291751723651634190232426633313062494465345894942055133581364309288325431502797733577006574603242571851319256363228059034929260358564037579898496246015853592511114865000026459586099304450801583170498893494030114242815095697597480467427273548319175038847911312359113637346979649297792875295269659027300453022848329854686522771456923622234920629834787953272799126860210765517681426951382893611123107288911121931704086503372087658819968023586102799350683562241797972694336786674086234768672779359024058690724102745013180706398818268873993548491725421417244670961588057260271504633458218084345057670107768012402086485008057810037609139896955155157216795402263515393914137420679928928934195129060488461594853965715785096971259509207049255923174262682056692833152588064798674783561883567551060999499905723726051281978762196134827660445768237677965733229009721091593844097951981645747355750988469662292814266509748721381531943096771998622610646063910611367650658993069027022779747672793270368265869132539549038040764268015522829760531417398037885498111591100570522441516359913869129453817539964067228228177559241382968035776862821454594576601589315678865646278463646932004479345779543111194679278681107738648478215500493515005933149854325505580184111522988164913589226531029546018214919985937795770352292748000307083141527917185055012571855363326680801879745997861494969317301445271750477329627544546877588106573905155849788932038133333231161828484436308295725743653439065700141463517518740157651705432668280172664891676184517848269078160839908090923913148542373859276596298670794140981133950923037013343887259708009699016539657912523794103277741226986113003832590445269799402786601820536620396319350910395671393664953883628567536210797165908354063104927912045571646358686212067074518678288270500586133296515513617636420585304566784729967640211571469817618372030789946908944254205046905171478529290377308976573186457302843404408102623574446932555537093594624804808063366815572285768492394574024892065643824333597669976328425250984214709848659768593433999076708517725968211994852378325320611066649070552610437300926397478979424550973070837687874647944433206144351897040914442807803582496460097468053183371414678374925102952904021104506202476547936404274761044954811262354652297250398167061446139361877330995746238822421519665822669557018829483665975861820668554128100618959751192308642275287911252279319764866325424999040955919549518116805648365445650347994133509109771519102138648513223231223808972184197166540561909376512513625501377441325514356683143468728603024322319069530654365632192493778780070782954586153428804500505925302960584348565867452700504588170931762764540907945967444217035935297236346655285091818630006693274837784028187596624207762926148878494002931428079802051982787215143531452239676048459203352413586077938596207818331483214813686913078055773601692493410896204611030613221903460927184638469039662223136612102510540241282191152382280451213512705826209041515549956764537201455370341207884519869162551557331389337727077708555347278252158115333454447577104618445433569989454508428750287879596870723248827632016226400210136651790759268110496251936892215773542135350653963161839805429965001895561150181036940920035687897746064720627833939805965713437186821314422375778605641838552766635829264885581240654483761209299148388257525161813235121463859153543739360112412453388715446629876964336646694156865400767148679591592988555598686775479526537117555028915534205879850926024535504277335618497320983053580272115882772083357421625315695229809190762757097516083147628554058834061318867909339031812858427160157350932909153172524423671943198290845722358291504089591483384321696138103074120500106998078615568447599874380797022338880197112756044386852652208624650300952613547515170630901200090899316312341337826836449317194093193017345753811771195350520969437215733734561862648417336766600022830849228798769756978098496841775511188907532931693541736374144102032307127737954934105322374399925080859121334066984549371039353775320138446236119155730669749732877193164651413874001078157031137562557016543350940764655548034111668866929409502442759424630854116122178190107027076380192250941542391855826563782273389584112775568055292414633932382606431022889695740657070713611378783499434730513216890564022130961442034484423542166426094608779366008475887433502913185905296111527903956502191402730335771874640640846776380593098232118601245403431062445813198561017818442661980553808599748691181731499505759334009071438093887769053821283098232739661614594045879222921709860296596673567699510415543412464220482095474594400917185849922791833499138636097955618726784453891342380214753563940854902515362687604193561466991409247553688814037658733659749941458917980382393300884825855597922005471755483985863846065559958853007931689284472050493772005569569451223468396654665501566138862454423975334931406787618443277354486284180074839835612378131305216328874656027053848006051533639731111178507799048623490807311268524969151920215463029849610205631423982864099637808639738991360890106816740661516663810045935313151499769235748058924373734274912684398650546297089199054465793176415944591371439798652371587829735567117677031399182563782446638973989710190816786781227419925966584112493601443891362848825816909393313526863199680089986494607449236833895104368122620182462455721744506575517785516232968545087666494794610374727052862499722505970752070696063992466503682977475824821501164545245202742812120788585221110905880739044837107436397406752275200403126353472507155008193705356946079019801027909043772967506019142072575264507041765768320458445099853252430617727109687265960552774265714867038513254899101185530050899344516040463368787698395280392321951761570730293717098816754226199885286826186321974426364967972375418055186261507161675626146690513835017699417964729311095066387788512111024216156572910483041216481504824181268929690144535113006504133710552675478278225601301822478539267622797524722265475614208205681914598225594981266809528398831791167272121423005928809011321892454264177795956715810064364456748731359669812618924272390509775813641875110415617690281395169524967443242275327803672544821310381749327494218799271942098380874455743606166609180483849861446797875274652170672400676703183511747117950119773062420878395732433482357301694258371395596731664081545744054931501920433627684956366339610206478974470713834626158862376536073988763194317118761950208488378689336065731701234676042590631605279404667999596159161827471792894523243753804727448955717333123282219840700498706591235452841655330201400671360160280257827874710066603282264006137636487087966696208788220413331296825310333731626579765027561566006711186979554644294767783803652251888185713500310870595051329635495521209245253584364526333652176033723636589295921167210746549059080074431329750424433605196832124450438108748323496618399876181144246008232414372463315155154251234461075670692656161726515153088180673793504978027604973950972796058090725867053466012880493966119853628570979315331034864126327101734557357651881397176180693664882873891617630394628520872472457038319489203712818959594126563604324916036592731117966451021700094313395856333387468283354597104310805221866611270636705421096309775807658943701606664336837095198004582761257403917333751265944231537805559478017602820201344626819270537612639884349177441937856925408224093831102498166351361131502828139337855877681772524963383423158983131491442202419133383470056042741996441665817618022811571209068846367125597476060804970990176362815332076058077832476686076314634709524382738901641977267218412667666512534791499981604403932989977568193385309244914369598888746737610372592904364608774672922548678966674767926830750216123028973269810083293387639356607232087963054145229732462285890309979502066825814883479708061688432955838095328866600001714770854084775333550053202171802072410320738743036740457028804696372172261638646449769194992936765098057097646240510161978636091614515202608161565500971274632413633132165539497287941436389383481246974458250471220788528320527100006073794957154372343140126306054078049069021488728250535499273472025065325909995319369683337276857281264599004825693844317785759946513166705349446057287629796808463782259943803721058808640343847460294956889147009892471734512675713965448623424784579106004965446624392516650747617173745607297191962502536299442149505723984183772466432058894298985671362734626152301410809176916575229286767622349224030657265550285602195021887882835232411438747272332994761681175930066793079385956893158886511411699488762537358623316243864894643634537234838629576729816989636547735857196054497155460690954751348959207833651167191111411017045839374152824170286300094404067873022695228064682020073294683450850311666654904610163662384621616671920936338737171624188906735360201850508872103103786289225706743172407180012805942997120740583334964741470912305788410196365584379707285728673997803758238582556718985973755661574225859023348457809498441638237985771931851652705021971622123767069249256761449989254043741615933623524854153555017762743271494257173950284177504418916707665511275290288382396405284220282953614568128277933228029187353109622019691669353779464942036544537326980821453566413017496433716426081645796146917262567331493225951278670227865046698505270369386199073800987642669302258046832964284903045665033097216166441783229153803420892781649107282973974981990632790607676505629646972968725725293112417112162315538054046875932255410908707967264298596365433596383125297852086215883761721637984804438835878780771441061272201120227134595095444969746064497706529694235757586348785358321472711328047684191112252224142236463850414167638425208083118505199982029597432839066450331631039015912534587119143357288155349771480283210463458977541023393727061610261560537497524583736892121951084764304955726241735289391454972221646435971794196640497853562646476194429099078980026280876737114652111907402684697433960999140806302413746318529915715797312920743856424855351660114934902985833047839406371106610719187865120467017084868932688043135968607134755377114446148248851626222527102155474290792500785693920613147108066154269849939811576441961091343766049872752312147059792354765204297395554050222299482739006203203321486147957685028442834232166371125502564725849087063237204012983065043130828602150638793392042821215261949141361891481277958441800885554167212063997623818851952385898192868591349315819143707168309944508808913531606737007247331162493055259484593334894646128979810083429813808333172436247977922149857476240312650025625395189195042050558828745754392736598105205715276456107196719462763856164258963148381817070529762287147645743194885754852417650127734463467831695724354142679040142483715585089562909016464068333776009185393810141529884188876023892924676203748870089072471978716497509105251266925983174068032153609592707005219170666976134675957973823971315875458423608698182343060546983612572389654845086780811455254313628898516465839591992512475595673786201720664230749968545969747095026426326040317528438586384732002390286419421845251585267976921012104166447488973592188083918565831282468939604781401038674764686661175550349749130155788451617533547121878048882524534264169177340571709069311586107520122371237159986471010397046082192885516601813506149050170462615964372187052817687274116257010144921386529616077627074564739790733156015031964087064679684841785927578313497827046346167671344423995175732502017523465478611414194541015493220190327385598250250881622331533517020375371097961468082357680248552205286646483114848913679165044798571520477212489437516235776345266823542775973424844771975957624282539266134229610358917498140793511230945117484035830110331486222649759984540037450967697135111528660363125426459729842473445099225892992201852558270085634786711389103020802969949407012518640639878613050998314343108258561360796579562215529664311587518905404210786972369870569937007162551836460227056427030898630829860637288752277390271718227819543935605830696655625663054447374735550305247709374863258617017730202674081470452524118697264443886684485363772993232406287308935961685513025275126292938737280654528409438891497345475662853203184112520472504122503465025531376201550650683344428427498636383466010067972947483808014764034334717728318728219236170209213779054071587163964083500209401127762704513236072242985061902155364720760116093000888948122661741084138632148229234261877478459010118133548153864472896041669140684878764169832394857058457043069307346065523534530577070461726321897175776479845046665025014264718232351482092527651606484544121798786380487550608113725176432685515430466458778532659933748615133075536952910737701534564877184327247662332516491914711831712807817788054475994803969241237076006696904173809248166044232841130646236996956163087592049357428243315685868995104619695735767813214519469326004823196762113922034502861532697904174330349990160655581942695258935114038900888803752706807169907203608817160094909894881035052506626872873747101638254401459973860827483787748059803953830059306285583316852523842757277011775471775301552840993847931457924965694218549523073588669306827654995430246371325844522591882356059054922033258798374102900612919255715040304119251358124913337699252043097535114787620758887029929579202743257882052418621973990263535730380999861736675157316534645326992645709518397662972944605607059117842807942148662780774932747199484122769336136381056248036699175364389859317960504414732343125492578273365398992211760345956874367370232182705079457590415001860555918107875957145151068498102530357765230514888737444901742829982195593130568732122556564743282457790758848359145343702196979201805931538921581605265566736966608805985848415923297743644132095245724500568463773527080388922035866516331289473466766855210048356151101121975220605872440526210287953203625069065729811035778434784724914003195961286387683802336953374207708711363714891097726439690155303703862563106100892585549938943454143300712139365045501680961315022546715038269591391199942957596383149933515633924866929024943426123159109359213718739657974377862713595385025351573983041613727976094324261121584875285899140102848705380899726660027365106328013318706375191923919035073529699219477826612768442242862070193462692318630091595780959572137340150180976568873795027437457968737769419627331240257129768510785230682611476494840499125983526321853739084323336469936698590656084994543860440990990874712825579469610538263395492262823532344838082650635940380923109330353706429264099109112279547372551320475628698211247515999647667106399727657615554881522235045201533956855097483465095634894749858781066805582190973137965704909638310253817496584867174954434439113131374047147451075197982865704740069659673314957184885129297891192390350738922058533802227140612073305243264655724084082626960243249647117550235124905949027204055831636160869952450673590372756616628692066443447281675272230584166647895140188867289752904456037421243606180683802756392082665341310827463472269007185238030062412599009474241903218425888949852582587717869645920048181132493940958385399141489762275240638194870705334570872086008542728863350387880121455594026927247701878732596272002222895975759805523410362073120427579769281645080090505165264375228413167846372559812824241029359812531352835375290416059260934441489892550383453933001767734009736200279614471839684877460789458432414750086941434620791105453980001576524917235166072014864847768344559180981582200301004228479950634388109289489954111270572365347058266396321738877005108310329754016407920977325952186366770893853152608342781668573866019836904438846243088982922153567885951846391970523549248248077223270362187143468455887504653040939800354784736175329575253999580676494188871485372837175130914254233224040916009953384697986212400431539269565583960444169057840338819391184877726466839013818892294490181267698482885058939251392907447335806499997903477148198959805958467304535362595632341299346744778304147683738080462766213581293790973667008362789641281805374475188490626721272032988929452783220026421856761423148738605128387308967356087421665152346003654692362614330755137782153659085132638921920463539785170266861741255362059996007816272804589484292595575384405465514050158551719572399067098968989379803417333296071359712765520570612146514104267995215311874368558698893196794374763498437253045442664913919057046576702253724790352690317752423876624825967859503704133281908437911790104274250891618350131029381535537652435269280840302412666155994478553964218459183111382318227143990785201757528871848424247874161559987188871430830724478185020349861444399287590375481961788012932346259073541625590770530015709218123795187717570350456379772935941655630191564737345374027083211493281674745385600631289537017512650100592548256403678929170500400461641735694792166790907550225132445881489079788477374018071658220705846554189735600655497185818559480108863376584847496289477680083774522550301918110809863884303064744388817025569577837519288850918426608049909164273822780240192689041876293517065327973790621716094736123243953990402125611272567146086001418005470613062628368852457258243911136395685041044672815896533446941571545046409963070965745775020861325713502148830557976340986639501345286552600319202672345132189624392039517169269139119318286961895209387056542312751841183897152779209012164259582292962095227222269472375001168401885328369028705036895006148637012421253975589830003347030250031108318131642010481000575098464596414154502200191846307469833934743378228661519901776351515731618763265406140669689894792578087036294682948703978348293366479392013265272977349454271153468712458592317146599648349153286262331328310209115593534493236362905225306059622056780062071564703234093454873519449592846994316871118390360515684187444456485289113211790005677349119122771417751058259813110312672130685975698605746349970123697346319805656623639549481993681324283085856823043893441402987106152888554167894958444165948364852365132448852476848549006605299396611890844713835318679440870154894338632357763936061384215727399641247270880984606254895329949990368040368650186650770123267099289433883482111008847754107909805989150521131279728109043062179860994362708439817311861667141708365728668520029831935814624916601875631830784472988150662264801266683292303628060896152969526384436850484812733216488938312203222240305897346333339634055241022643398541809413123385212922666291484298985196371497106737497316804274462290992397198727475771751687936198858480020237059729225176265965619671341360014125066821398579103550694968957300084813894177444293826848835414214080476366146293600291511703728703955980770987678082339182568874621551104605088638252838546588250380983916004820277709375409044228922184043914177064247663132979160200797782218589449539553482897217366876396646006063746613712442470632539326678384670264392532763880405292446914028770105307981135208958499369421377225778569168010921021792792428572116507657966837592908101534013445600816903575077197036134950575601274648607995890746914159647964507727777333275362112299070658342528239171609522209130965924119874919489570955234756113627933652002001796482828970402039466572122217086442697986340502930982644479614814168995538715554131789513183193142057085468798725803625245789329364244283982889557395545944921344594322966922131503202042917261773485235820247372918449840743555068746754961255057394350022497998667942259184878360135248563708845109191546796749690405589245819117705825833528967140627212092153200776669911924637998302999924366028002387234869141798459415523184758535157381921397587830724879439412062199125936066610269654205566923775556932392100298740085785999548990039928332349919816527450843426387693528132195999035313526353959610749677413191865232291895600319936829899105570876982125225386819001557057692798265761768717926397632914106191927481910885388840337213096031638665387332590909583445669879114910090153527307878172043645485069462588522623173297328953775500247130422232865675913189734566256822793429046645140042133615426507475948936423722743390982363181658445152672555248623762548473393057792284715855270018649748527004080135736792602006281985209458386149088037465328344074158289923647905665766354483132710642664808271649985637229417159111012043146694646863122649351945504650857226937697718158424702922134806294839919818701837539506356287536013474721253276516845480154234223577963365244508146419677034157986177740288371765804590118221616213808461975388589723896425959198028394250409274184449171149516275645958265339585938845882182570244569682850437583894778456409389316199902235260088482327516161679376699836942425879582453224446194088615688782243144320033637008863232550626321827077367634457851026557840483895907798152216685313514523926283613161637832163468847290358011795334074275007671933413633316445325885888506581072343946243294495050554884971210784987120867647045154182797421012002611690168468296171007723438960682823156769446564515887625891754713103917823020989299737741358886595435813523533163853744812313424951391727713271976637287446112083320342761397184578112588597089200035848913139034883450730569299048447581592156077811315064392756341496462968553341412434456309715690240954735861707542457494591905370076805737756364937150512024247220339052383579896864215282194741652751179999965651701525732105545402291443579840364688921911320139364442613154611797268664763268761668380646118597988042217246409346961432950198154011197742181121091374278366191458117495815563511031448045217912782398202396593074546847368465015299459901862409234911318719322683920331432894956491096832964775146202131368194665467390945307816758634079943515986977050962384145001092873373757122017526504969571108650043452814161702411872908676717662094249491169871970178806385067025861063737602355559320013100898600495234062246687919622990232933172969518460487605467410143818360253331527395130037634179079893905901976453972886759475644571821166987754809910148696191401627087297181195551584908129983843463712150453779329518809633487657368969319468888483009716151829054766393886343984211988781540440207658336699332254189995289508994846377105956287287898970759021541695604515529960745681877751692703713194433328779891729315834094407394603143283958556704927508741767433810239844070874046271262248362351842903243886823172744389126290271755424726508721511557243014095803889787456342777469199545912784050244175419686974114625302286970661728990903744363609662040115063335916655211488020346368393687619741359606150061518072382708154550715894023750302610026315940198397903569001350714486894236696516400345433721178913380341659166371747267664402242071771894579945140059509251451728986246497912027274166833782001935582525683082123646842040157844678491402761637773537133737957215420226660574999667652634609778403201545092199967122017799888307586417664916960280512490718791841675894633568101375683088267580138019371191718070109279312070165007110085627670619517002525834006675373310477197617468351884842057376454667152596728158211698290027956354237409143090368287423893597588780477550053866209617996376381685196930744213942109447510051639847960060503423729112055386891454614584184418461022901197346360375598435624850269409547218903352043627209242892900582105941835322346918907065673490710412969457817247409224780612327842359467470543044576321611306479039611593278624396349981735295156441157303179586874983778589565696285651510565650843427771713425757462781167519797500511592572336144962260322078558218943050166794160011622477170973913051638588722471731926256194909610314559882907408371411328918306395156278905494602433949982169958438825650476837588319410840792446381998917703818856538904985913580347983832299286032411711827233563566306639989172964935653781717619742857444749920180364295970247172780649105976950068511638424141608894609015553303203395349918094788097459892694205730054018286019837293905381047532552086952436878635017327168116772171665892728877370567806329426768526698404418454220316958266767756702632974581028020779824959755263740135788864110819358234746874933260179224917954085188498341027250299169214924574646681611177520913929898054338175656533345409341336657543317852925766661144790840149479237457323358513611895381842083741870441965636278890647775698733774525686457641200949756181147290972686442500509412605639706304750473624630849873467400435010825817566857731970997876704313288695149458741634266537648847471512035411013058622373308493155472688794532036762822343304482302398672833803853378123384445113709483624481520347767157203342682561848113481768644376625597187824558185134239155971701452274633848247037586551739728946552894265008771896419726156855267264804276362540913764089809262645612846370174610603925076415676064251255702149920067277363625471666908165488774150730513276433866890443345406648910710207084161257366241907583700012766039254837134678580596013060093423950807639531452785645067799331169586063182625904320806483822239468153974795063379232078330292134620959450009592817972248995809184588425516157235395395555460053544092377870096357314481941774418532237754380946024937824780394189239556613851834382725569742977785106423694597427803529521988158601934796526675326319929348023920439343955177652210214170963048107095466626869542921809775985929032339587411626629712033548474610596103695429021786529709263976233629940313457991092225307976857694142766651306160485195866938561234879962573566755753810282564531446726270603191236422564865579746737790298754582839766376966297547912830794681212324864678185767302071964961463586577433431389940524156960708940220410600201532162712277468653458080514472470919622243741026528076668733246603293810804877553426514620693723553903604718342776387717113060148647347257912213362593034170721087931764826138655922233171407065223531545346078498129969325153134012123630821210673852162991851845449793738337397147598361315087529191145078319610619066048339850172407773362176438569851745177740566987885566558253752477500541712281631231244954819476598955097725927501955613730076949885507584853938437302311231404222600829796098523269987668002882862093143348020013219420890916843725480323617196514167402452090558654624239125132394337521710300044804253565229812959585242332886155298684657567556214438987810225434978756678220549742414947517171311304381524740700045634865939429334754004314114585500671748239720406240523454720841623333478261668675852019721018503867937648887059829350949386226372213715780598103426510863436231246838284291265438582609763776456771927047839736076235024916584839524260897994902887750748053574131439061096316159175061801994494430453988012064565000631485006883758780297786039466993151707858005825463589707183431919337890214416830447853643888153468487111941475851559530490265927406791455381042805212538740921071977707395255277653502422855879952398116965636613868872637060124394435822320959828549129313748177825187965673142529505351217520295491872633611456361256383594800103105466223936454017506309423428756058971947807275613064410834182702745256296163986547685295881644503933215470348219694954541795213270104332181801648911820727304622428323595659293230156711557682969233592878730823350676968581351159139947518637603400982680716040263538324685464867557985420354498555155512681077413523770557579177921975785873539164520066758243163866334660219788047901464511707242200586649948183481763592254890079039962811161361782531536882554979798713649019375925803349015824617784964544075103221279351255584955842763864253816278579223049055620905431155559029580121677506979677859243455401444856026196138635503142230649780187568558399156529240269309877933625659409996161038304044456272144561835100287717505032514673368437483501878477542264302196515110925736769387866524834173191115438572100263725631467311621932447973848627019179202217338900184881961576914961524940646375512008836599721660664407127347195215303909345172416143748524257525794176967193378939841891044430925289065459220239405989120947899522531779957857154089240064299849840112347308102866372518852718223281576221791652160412132313015921159217632180904864341652789494604625499634968082786129995554902699132493267875670058318902039624894801540470378857455823805367400369897237640354354115880135597504254913102814284122444642459376894592223429163784355336981941254561701278524673846006573577910854491514604847410689961901036197116687544487598765574353021871925189938600924625437941129977877829872205594895845492282900775358815324866927662269050200801128634225228857196224060275468328913063503071407777434185179532538518757077769728641275077106347047378142112097561805687989466368125881791223591609895949455587515567640786325145987936557266192314777482128288201419513416331706719226858600941391878363086884767893247278133034817088005885835048343100364163020069674234160208545506921510245411379588453329401046544623880966918482317984874393069695394334920382483353967155507850320938539773715190043565124791312119083394862614055919166523503288730325378934566140481306425667824403406183703522499534131056952431572140161085075917411920493504405533457278314364951928050113429309410432151975381667325816967620370178900601902456327485846572486329262692623124021335223619566728265657202403230115289734109956591608798688793187256947254983009610268050503466051220310371279938758046169658966557280064433272799412376164825083652609521096293543233587401509841001494682433591689897431353165189816307190274139701102098517747999709900764863461250372595628993710046731510005400735687795475074420026537249724913931070841283566885305654347897942449915019794952083707066995590748237193555296322818852755452361352230406922048510220772961004780757129392026438433188124587661956878346891068413121444431325303853410322999098088663271090308369217825347363111894415096723205171629138311847449710390802532792427391750525466648202184101116619186062656414253597697145797044566624315647839078430377980125779045514536451522913036226794070486994446151054380269096250397606450625058266093057063181389825486952880195834512684025910943504719045003101223031476799422021320885519678528372291760268223199759164238201613007346164556247358919336513553726928550449033194698261583658638414598080744831143936833215994746726602249288604954702434122729573615320662554483448819293750182975971500419574488961527740140401928151271079170854425364138819078888374469320191528893112252869527107714093164068642866042753362025365221093756090662548268916691001510946983395283686011986157734961153303437411296221471531676310429116132145706806049470776775569114768511525654438966590887006762969295328704997137992967883271711568074249749109845448851177474772458751253619410762832639251643913567611608984277033872480883531384571019291864076269046592805249678256397300961115352503603066022696269759214288216698047750578771847434226894423059481391999419312846766883425373464894585031325662565196161547503222885198803047867720275834181077339634561409369253895240971921694400872132898141085335128819268498767017576478613766005521721300818086092403403270467742971583137654938800195600693015462548138318658779469648062452445483500574771762765956017911417991806881341524530909124590444440680513001677744488652627171344051598562415937510363372824095767051262655997419787464704900161031789775428814415319205308333381217193732596544379101552811361220552448303797902718784619418330055870819785228601552478974704271680803520396818528032836795270578099334828900859688496769625000729100823791812744770296610055345849717088532940883649229706402054820729714687921513914229720351887371719411733096368758903718561849693068449313569862510102083879966338165157951138447055845467091492105363281178506327982981083515575619308408442804488979275332376004725951824574552653391282963037422689531979700681954176021803493778141872019232767741483242781085652707531609086426195122527336932263491407137939050525898453321919609912280202263448499058269358134395168483845599453368494710545277306390672796991757482071471219843950639871466799049797877700416958194828988454587324238277740141219080776012793706816705282818129749284929091186496539913415165004808768079841521764765627046189283374421186977445423704555432137949479605324922583418603879808298918572917856601633603884545872366377344367020932877890796684881273788021431819892476554726585188426020195901238706046637438520789242678206685124280593881861474614791591298669870045262250000893870037890947497672208701512636480090225890562824571598511029113395737950073880690085587454394313648366623892887562094406122262455242268266169672961497944344396719810894101220460684394877170575597300628621578740499418726934205895150385957105355894280115259630250795936469634177666138747533385914978153391829041782710572078382856242937859501743334501130271047119051585008041185847343972573043418137107355439684570879877062537176753742103463579143484293493597840942416903262771031677865892057347479118622873955126971674676459683689306444313025328505786577074267540457567374772820717222715117586304944861844704982822364842838935189750065611662390734587921505981271165694028486771204345918522370107140880251711211602128425046838894741283078472838063025569291102112084767637704095422101175580630844849448246150275154702214378365613589520052205665097505034421184140522031623044912598402322221922637740685964589543658417181477711674307467983942713748326320473852895965306729846536110320805911856957875738969296398472269381289737024248816032039068143140946073062892969667945002924535455107974245093027997733509972746138604508030029705656549834548223875545629695032717063254676063854057301599182528052959005398003965968328569682563831383740904344728462971785983499186011394234645673040129888585552946217522647656088170070361963158022925413781277451917503110317855310670164674708780127256773911662388314290717669183315521805715418834677422347488656371693655021768972999715837611265345266784951234756719390217037475147647038153579475785252004615983543552114193915688729170177942261565735223643412226606092347824096413695529826404111730407930252119255822031600544128521395716290623973084358473599468279098394335144307786150178033854170943469948711431251560834332521479233185130894641094707257005320050403760944371555096022951863228205542720270527167303482576984179286119486155824342477478263589115050752690091777229966449388802141412362532218829291418141530084618316307601464550683009261130668087353768301441132167151029010089241420183495640206558217262203731932865529541207699420225194777132470092322557378813847859065493565675664189635234981618426411926047225452301989667129714736134718141847974884737736274645532713697983267837563236022464709540087576575999640114019516210958258159132350225881777017043562248772197936975776116129681930419470794083597157387718075025255001224663976597616308873711903690405637696797571233012820673240812411617777972293283631480821520733699085462110429549403286085841552621914177220183122906311952082587834255875095855546972162452060504916858690036110449643855002407718629861669920821465518503756068708701582876397112962299664822628900125430040401669632601761159001115882808066685657870501388802398741218019721183356759187398540275128797723517749949257863083013405373557887338466547169072919116127214220325253222408845549686348254796657751837938135740237842150406261623790592870720297632461134279639457279150304431046197282462794860671901910195823074732517310589307590310554333266978058967976620158344707178632386065548764005232804950560180120254846451070330056932028665230065472003168283886428326495783972230333602456652085430133503004380921452965866798535021160044253128847490964724034626165204672445035667305027012384669551751605166908712807469533443071228181848526320477683602357667404675108520457304431445776461265599841564151868807830355235525641052874938983914908056280857414158842587536032470133771118348339145902834124390501594148759028292585572374828723502921027301765336626602492649892698772415739801220732980587429682561949405396981449899349341408764576634062351295973215850343237971208524414722532860686187779748242635450995412501675336615331117428633463740199260818891632153388927342716150444318072161901426400684547526286445978759568167345601829060933151721307442898461998850810066967550430033677187117204080665003465227235286968790902844847866601287591003265889641283851657669477494249327028263017050846920348064225231234646029401699063541626500020177189962790885609410928364914229638100638505471013610388401889734284071771278822772876179868589897862328081726768677323717169281263853210947896666993744594910902710206107048289301642350887710508784260578540724059704937361049081156667125935840133871835479425786754654859891635097436566143817361185306439243279895011970567122513755775770226730377956960967029506669390851599505753285712456499141435708041051160983962945172360635303014106045291618577363177796682215772106604455612022921716231321232192073708814068516507306035847709665229228629647467378949157390727467600430627707455886951344487822993784316581293568771731311031310871512991213095280015885859232115107066249789733659499836771803909201997283983357626590716447896661340761902442432561288472152861361712874059751919032133367162053651370433508678337930494171815801242349649920379055856694390300772927584120294208395175755631215755368990088764861808442909928022255365525675273067627128815104642556212979987313355730556585133952848009165561572143654475153178617147746907454165612903631402341569223218868686522088091047686163215759478092790015162843688942333087411152470914678556652383756029571548338938304111497042989076808269766288427115546218044526629930764799696076572334365586828213102656357363843822517778008593480597192651540264536797295305866963133753361825504030779304127648162646740763805416947609649913948625844875268917155323628208359711243995775816548179835647838934478255858193288182464077094237887817810542544081431673112412925979878916954428107548447868143803492956890569283201240217776940904191323709006010199729851448158918215360950286645560031461529033945509361300122361389542834923856886184881137536788605895818635673117196597325426361210426281351091019660112378615458388431828745097494031881367995881511625426329629419482559604610706424192425569273041663964443455868953188090124722276655081575568616696389698962676886729804311719350263289538741787164106731902945046402302295934345960870135730295128247721864647650646517262198006260404900822483110483179149495952852539293697278913876649086417695680772617402021032049079590705053876727803760637043281599085131177096038958815030596172694706696364672917064952579001813308582552765679698657667160956176603960112275575410868141027788962738249145445391152041977983161220234068235440521336300427453339206827331906735031261171916961117178947662716902646191229190335969583196162861081295933586365369881242273076456654929854775054516612213177597801960097259924948776681481024071796258516122227514125761533697426017349227694534287620947467401583464775516693335979602251703816591321061517135984859293982705661538791183585026826985270027170933132353084059716094148113308918161921874822329646179930055684615993091805178863197392504164224537299260280903461499010133689129982207430624962097075278872662704992926446174084540869128069248355946971339434100618260524160084061684157837605470164102608326342418466700820282725319770439068394500186687789496717997360972481080264685335338343297213825445364579396040968297880623933527904589100554551285871726516940259109010802795920727280900096916407856025459611512910277928216194507921701430430302849685815322564350616006541484476196090787543588276192813049625794893395705734529571868014541637018266052877060091179854815678707074810198522973846013867505249106890010442184260007454711981305648750545864535911613584967028240332555017087552934297548436778387373309548279081214908413783826380727909225024005302404079794419786494139753034623265177052618441074977591480585644655448233262817018887563810363631062474824272138015955532992753016771553237125210381232652149404891119258391189146032802836899800624765362039629792779660354711942649815886300684303325822492567685971898446531172921511873908846476293729131050423794315400413633464997311419410248059119856890878992104203480135140798285748601921124581242323859338525593290030639298966330573697823856510176953388056495301061939681389020794021596071735118328051314747500686181838559744438267863298912961857453811626675910792650091720293891291035418423957835395183903495922924210086449921245702072256866542579235846284048817087549227723845086714205503683586225350382673556725335211390825087239165329799597737670644341167333178251078541316292107240514684429198016171964222260164943671574764865999835940875969868449842151048641488639670191601012949534340823350889489733965370952098276032012149605454886980296035898860439634891901064197250923950931996762856988148993015634761085285951148504344289384171925648660596625757581339195592845407633963971017478342373860534483384893908720851681157870464872136033414547182887863223709969350066625315097806419881833296900145154588155144052405659004037960049365169721092309695628261837743654599769567608452707319198913525544733263931839657607868647572264010634318713352883533925669067841240611566607206060311978001005913705870557791441709250421916719438429954568354414271015399881583508108167329133922842658313474714245725555139312736303951245820226682452719169944669650190223510309376076084418897205589816827786610696297129289237391248205207268789243645863700487448806699501525075907510516841355657911664295621095974304999664377793055842290293773852455024233645478322602533639487921745549332232774124201083672751153635587904944805549757790309276772533664922168882940598998357038520955681655291793183309120591427812601820051713582138213429000875041613988198361489316248709580663383409829167808133661225452535055897394327969031701832369043039140562696814520434609290146702497579283622607490281998787401357335394211487211051326486654560064073313606108011112139641939918789173716753750482736524682606093161521424670442130217138544519580243367309391423266914630061169383386382375491306396808601698076047170992491448401152667933988181886882413781332285951893679624491300976091413906571911188813492251656796138793534587379334469846610537270945295689184867228987619803883986652932289460247573238937414917874717800547078584194835309557140173834661554179988294319998501603911259694850511343305143856765351271586451031773874604080977718119852458894063536717321922853865346139424606119082336152862219144443817487849803317651367220450089876450636087595387858883924449703333067460480024121948204315092730520857038238041929191912642421951863841508000424795595906639174834424378035211993598784119673152483724924775622091319282329818015763704943781102566116315372397758581198314973710394146981020490899990473609512744525528041943783518341051156801996409394838813935989236925966537325129109134011245471026746376540825194803134748329897944708818736902949458664365145475422576430622384844774413317440413734689795208658188188155078095427602078460298897009332393545029796825536045260797658353219102901692755162222438284434930169985683056173972358112562655909644528958015188506992679866713392387925381421002481327506857229514511846874830558327418172752114118858919497086587992380951506594191635585240884772084008624685692229826283268162787196687006897434542740797877747961220199168377050112046080264595572086407841460510451687639529228654247469859558331861389841841515959502542310881605601536563908981179457874090781184012875578923489134907297330026405324889033866388884064064676003672637645381372361034839981191913398050519563465403597587975823358750344537069698903057151497923253059902807721875415052075072097933863425177173338892101158809750191934016843309974403520173281617743550045026129002663612781068309989085749326668992244418353516498396928524231504211640894623842982765316942074037942552136438050258388147055988365807204216005477126821494824952703102467274124094047376451805654513108694418654957357167743707024294214792272386756497661918018238707244320267128844993725916587103981013332478681211243300890965187342776431015959529760722417210567172156949283422546575966212059888401426928378218250186384163396219345095616443761266564426199837890611330755290606114343678025908988509806667648690242338934532685836684102865318162840072285032226233096521764433402699923306565100684553306632943173136017497862499255166691290004933593335719584911462188837138968795642339354576064356333126419127079168163463910918307310485001650933320216049408625249704415796163331576867316610835459705003477109215466389331260626912025719121646241359497323144524361135584086947052968402405102097545394255963598946835389291648272658803310354943653628797084798710144952163005650573722944319510152963726732892599027178829901224005721230052619933217232811750735094012131909159162052133928657685615175449343190613307224558399948513065647534442920408148347185540845558623080230200610523064673954233761603657497340455550116038850932674685364490284268872300818608835730516742792378718988559553020576640534090171021847427521046263082991149016863852856417467279028727416941888876821107860844336494832600197480486388394025942458230169287030586373544377799309290589766182406788080526099987411759946555249952328386062475663335351897291259127611187989871425051934817917795693508440199267560850672412546841300410891942544365907090067240363885012929475401933673559619950002262473716168029882224036024373186403365372343477103917711191230622078767250543796437367549232346106829844286666339167915601668828834986870402361621571765354712628144191855334142520848919612869273604558970635725211500902121070024367598979663079597608629216593021240401469373208630045413731097074709637281900703315126060679628952865791308311401705342523043158615726976429308753042133464366817334123527530858620217238179181797704638715278753870026334142200639423686014294290438837539718081092132464842068511266636857862031312500276102287027292721637167146445873140551862045511445495702296078587092567276214356279113739756841942298022416139346104881512129429639334124903881815725438508848955859787929107249130439486389789391282785640319558685480455583355393959263556472097066061344201203331438017849625332241145233130134878006226303279393426430078273798333197838724886464783084287502271904528769932185577861331146973523867892044871152967401051445116808532438193354544587172534936610307820684124310428222192475172282516685574947994899929505297543469880298615956408751960725221337798807761622238084537087554768196084879502605807437255329623732990002980269390818206379221940458390023225024644770661430241707743286725799796343966632951442406765123381900372596890093597359887817406106115038028006762802975492104480140264626108680306960246497235908076787769468938165636518594190599797694506759778086034366191193397324828201538916028733695222196672005676270535664565397728889809084129101772833471421658334883494178527822286474808336633949579579079662009306987167487164786198785334361537582748370920044836277912268025177928421971520583966215789412343787374273776350884239855501715706269894065130899147979997370798593903869026241396921675432011378487407419885955778360231411548879095640528071538142893014561497008287492568800205073959936004204165665731455254957850532868948574096373424191246208401769730897201379355992781157497678246329968289672943188846149820173387567581956432242107770056417783030989189139359268247953078936671615610143782931740527341151123499390605608171317507422307931913218212134632100990992649113065176176132749829731388556360549873689103393155935774082801525567323983889652135812948170274869732365816199199175246792993838370731716827769226928993704519281226643194101776391483887009232649667274505027757769462078419503019223720904822812334389278597462487061326374838131481983084293557755282825031292093994232369905627284882187557435147063869720167608161106822596935118648837634868169292003886782401343040263482553367342624875439555968537398823708654447901102771799764362299831762253665229225872342528736210124071752899240884819353236744707300591567504780678737426436912308607951406194690778409727789156521534159720129311865868080006647781416347379367155813973604193772151335184218301577861255457081237687454664462966342633155008145808842615087460973807987218487295748399653415370490747468181800059254881557866074874224464299472389809735447216338477851037824030673061108029516453875080118932825518842632826644777933275874598283041090798326862619428592935166226395353824349548930207100685579161515046877139589582468346323219647088159490524824597830139288990391353435086788950302437148369314128304610871955423695834094972004888554235408640832010489551609896804805216407640151868917916846244323747614515513307707522420192798421704144433018168501806205199190644229818603693425099073039356938766409142377746664394559248581513898746133864616459210284818465364479369850780665372316695763638145947690368317864804621232915272597223978461915867479094405275745167853606183634932769191312038956970720441084045750490578723231704913376665434347878060472212763118061829338589196940417590094334736057474174883243431989174048740894231540406636785148131175662251156025489455258185655611244153084070944356984322650481009801592972157907433030277178426204268041804047492628827999737092680497666105382892605800842479563412683607956284149735308094704024502916589921981523583169196395162738250553789994044163418694157922414442337936239690102999099480879022896210225155779355433053078413292545900218283668110607590589669246027371745342915764788331464622894878048419758181475035804260287260295178431051718436715745741102884820077528650434688984501072881776932398929492701050700397668166709286328236988078761657957091460644201836840509732024796995163823974837218803266884539571276599641326962191558397530224846802909542071623201047373040460199186180596459948089962914125369790648576412472347681044864469742568002577036176288674338927357671616130256410617965749294371879459168341455683723782449656598739615080758643959830145178129115965672504965768059431256180382040188687093791841863517201466216110293078825845854344411599008029605793566862573956669036479787219850059804475803699391585301507154586318826769396309926399488684782691145226816974147212553152690170366719518249839485328656524815579537543551878183556324413180550985158628357312590965210737443191417851297759651068270587209398255054109436517257211773238533519099805135265899908694849556788034912363967646425381168632347676043200169453884155315578011493431767012488472754791405687702208075723719557467179244935410181466293248422509651842659782942162435334154121469350080485774371144932615006019579124830431211518441194648012014755400858527245042684950494622771477573127171047592023194655206306907537803241625337857838988413266562478219687504940782166543827783153032245549877254003805482810470515972372645395548394234115886887376026931950931220821892314407112866371644763921365042374955430420402513761301173101036044630646587648413685056560341640434767287843505165380758207048541847472256171629520715211912485003702635082527851818200321040795990582602933504701880298164024104671192383339158389553819868466215654794324299456817887684355233240101397688987032382890302460108416639979400525605376513333767926583419382931694333353263436399819517314143421673851260360006102463558867193503469926130694180449715991043619964281650180046038885401993078244989244249724056075221099893211532270129491881094499229418418741766209933927998490097769272109266059102894963287162330038331553438422697977440224682141905607021823985820851684792079863413001514716640772369516016534216133115671760154697605286569991315813738951349915474124084680938160727570692877337471458176340489063931717010099682711857658851874752752309270877766054333899010328426450203748311954129801756396343500547337794018720928310134426341123626699472308993216338289673105889726584925208066642301996057804282465540494951688025947270171580142777474757987502038367989836795060892125238507364998331521919128303857564723208803467088158161481948284230360766741216899882422260124360913709754198445328060535264212232563542562767896511705798032316362834391034717104368844924477917665798414881705942901396473091403768802587927571059319340972140336742970179765801139383983225514665919444317640773381897854822597857963818754099202977399783681634141655924820344589600669433187372448148705494745269951797022345917686314161776616947706017988277261620853939505159782343428694842229559887614749661275384351608790094480081116133483948716146166249320178576689656315961747177101569633557086397879364514298782198729984247949229180176016993294951845071440124515009770563076738679114677347496380261216418121933074576363096622914738746890541435617807116898984805812326647613440226874611603127228956546537859342162401640658587844873956419127976323057599390944028496071771461602739310140312460050545727206558139407297007402165006336839217414183753551013085765932437879787145695920015717031813046642255720681172642552391396780733070408079940325936373005463938100472383929457627555216199300929784755076615175375205604165878037738752574314402876125873287649728369234357485155419078407270714548088632670974034092717738673143965312406821132974321973803058348696097802574190215045077427190714659846247738933508355343967065087356688873227312570833018929414919875266338380918454287422050870198680452653891578971592967879947377336618591405469731585152277537046749762716128808910423021907974024661967995578991470180335939183328954764021310437461573127551770858542115210411950311334801143780698158154111295971211867782755876801344398534996173704493304147273818164787881174339386185872529269011950365575038515634552672366781458657379119714825351932643496770111715393731875563466490349833074464454114479563288066400925665566171001628120972774234562956641597497445477489935802041933577783308947855992228714553323469620995958017170128000021745706972012247966078064566962647422364138187858672102132165041497969458457145315349514422027012606387292110617332391074460977025237699521349080300794956048151969283949870614239098077125194231108207206607690728478813854837146961670649532795239745578450869663248482944299289479734324848618790620000833599539417811171781614380876509033688475762402972692675239541589535562378508300132935199134365590773324390512165842935672133659250454903801806949761611762084789840901835437466462247553969327053480467184058015153014300795766500512892081906074192640817912081185337823981970928886994509494845573240015934079306581900584080718971396780543494420072622493550059380525422919569856564834241310260382132057871963612127969097527863302713400590247370661537808166698135835736977896770603837585987853468316232496590808573455414711791811076145320307750936341853816053455840349438426842413182700790820630861634333840131864470980199555597143406027465319635340411960619723815467843599514751220823809180382512472624662240904060382066977619810786449240490043232232235380332007075837202187213330348752091931968650207681227967425011719575631793476675547992393283437239551483289951705484281662419688720702772301960547184137963190260987196813905607476258361367517209934415271838445596519407685063139925178581352821576944209546516590996274060838782715317283768847600400800026236524131886948839123321828099341104306356167282451278414030027822482885106128470674958523229840381182931422624643404798108660209429641358802381225378769269347367362087085947361272720066647430151512871013461486758863129838597520230599173756290513493797762972916812733360141312209182426096342792127944607996035955314097738878660233789706601712954707801649081619915213548530546068087761008409026036911711490039767872748779211804597255043822420569168952369288769898545781850253550299136480519884980111580189128016281219700774052726366711661222295801404836483874651855200420554720459982811750567700734111737470918856827754817673056022504068178992044277985775879236433492497756446255591002633990933582454340183863165518986830803071808472150486850467348250390882455549137725678209315300149548306459424734887466795040542011768383532346288432794898580458009590504853174019881396700458043122273467851027471906174572738731595293160869561598190974640081809372069607905279018593035606505749145477145886206310790437767943774460225193607116412434887581498619218848199089837817852833114668799150727016687181311847924961491781079680431704541853729239246822036033937562822882970816611677386938024459381098759948938383796836590083316918855577290826458997936409481268452518966446317012026081414450544619202929204818874110587925779234402763615517263170405453286172719777307425840554208107069926317997310647672393434373501525178621926448560002928994443857767807056961929519947842779534830280681477784418031116056256774400405128205072798639422480587234993548291206514667064532509877184667765489922080036168676284457736622017634011775181637125894748795031453434249749712173111285079019123393013368699971537825320342633626546791746794807689586003062382025822218790638576023774676901561761183946961467106793615182633786489772882602622726631568085872147624460546832920830603750903910878025362858751366787006880087943321104788018399743838118352500728218631199250302822789224191719122458196129013112592063005041718331509688295980369244621326423422426634994719424954716179893565036046632861595775206215848154026576918797027133753875002485013064129367289076139696833355130252617728840633139780085730650077075528427971034228503394863753506197076494820974595143605496329432152752596453403843224071688365633141456867243888148992069544212350759712216771505998638885735650580983766639456292992714214453083298124272329517687895748450967102248608204136183192022531100271406766288032536659521787200564639776865610509411424751016336478495286891286012539377280923667827192166901546628602199446394659650627051919328501464210616875515761615793049528153608152993610296559601351570460252452655048540417727262214772164912259224898598402522601067321168945255750535741903520483662903908431395745799877056143872746374407367476344526038323992128151704278589276048931470138595432400774886200125683029057864196057567479018675359603939333134698211540894569701608898663770431793313339927714758123935844881242725568509584264379431169335640835387065429526862372262841279770829336144003480103859450536820595317792118364186729079146854099514580076772042779409752208578790574104116822276862951503563971959027227681113038565834609652181546904372154647813870501365145033462485533253170554723097721916613959931982935034089203547606657700774387072152744085400237588487592825151770991166700507977347574380246446891816667620349010006295869025671470586945381636883729623943991855019657130214977332953358728300270789294273622298693575348573509772421780337052235625890260385314859876901409196731397694143416275619580700578633546230558119831658975771763451368085626281753137362112037538824374123453611485558489129495802460968684339060779222342576832487872743753678335941748783152139308058833902068265519280882268258230047390855827574243858003395575733686274464576438557629830616501581278092505895864573950262130974848636671632255713476372200921131379433442213090678721127782147753824356739472480211125042647749572595036298615944542119655682690971906399087598447726119740324407972515080234675596231620841231448240058246887195695415848616508777514595604178084862926827436273490588557841985982720521832903585950700265263179265519554396823185744949624739386279257518507119733448773334003679927060456367286856436827092944122687837187067716212097621087331900353810396129105680516945827099104842980972408084012364226880496168337121197624085725356270312127264705697326313484946715637281387652851686946672417039899946654532015639571102072273281271699594496901153636205532696447701315573751425091756405212910681923693628426583067635699031898974420725474726838415841638849359737235265819029086789286471941288187734873191736096619191216416880122815596425908055816681713636108490032454107314312723310152174768778975300796203489147727884934965109141027890741314640361777271474360619375481072769061366557841949362914385297879277559163749248372582948828245812716860903051821715011942580737943161358080446904755177653320316197721412754346453724623338530094632162906356177027342194490404163245727354335086964568424724703124085368183475557931763802899400462229725275645067311841514809215103867786575338123026544745410483570220059027883735033303837146941229253068543250493344978306509990396018351929400724550526654604220673134425039176977952458733920625010251661332852909725415909041285468503985045550285292501153732239760916459664602876157800747638116724855825245618290203419927104088501607387285952967086246295337412163158715881853262669638937063548150687299239150646499978656211229663165691153170198849805767262916037402925867052904259424191662454652720366520862409227184139466483037289403523632499567513643413888460202979742469292094847988636347199946900197604006243610787385877966766299021483541550344336640294783887324933670191005612016917010558364410933086064259670286286051735975700317946611332934317706894143271656438462695734517838876916336563675358755250255263824070826205229102879617302439449534888575751339002209694285720550986724687067622016998827838759606029869271577364882045710630260405442084649610082453247312708352455658988741868211139785120908714168198400396606662402680309049759114787364000073297896415374990897582467656967830912638211871911016605633112821243636853628441661948310992364560408116236399658710707934803512716330941557608530184914578493276586911413795176780376762305765889020932043534877518607881992118278696140524439214080606647668751577208251071516917844372534360576330998466454648472676997586076243331026787266586184246199451957714523272466233386260633447105116908864955467130216750873154869044566671135173896662063751332674099446170895774352384264556386939427535355197882580620398514298074020839213199637027123807776061061732004691121861142098951739115078430362104462371880081829806404758846872009290906017604810565945508347570820017254705361158719133127039732845392504570465218408631784204335052851916132725308237781354447915563666816835503467129986880267893348621747579725120673585235973991970402494287113580453268665921387463139664277662370142747164583979371122629508451973509387160217145146121597201774345526632037730204500942015502118075551224525518818842360996564520524393577013829386663303199070490213112397901069959088116392899153758813670203100785561779249528734582393380977828455306658976716008702796844249993965683618734738852242006435811744078349801545204246848739694621425811989167530298261320015350150436018460513783283487018928005046361483934214334703985434515425340048895319909028900656200035972332187171630988637513406465291708841573085888477954165962856481615711291353858907202394063532084027619255215113385706125587380093766288061300142206465868446902895050181787777443776190509893692946957523448735455063238188302886730032629843135514210043902376894620846877652378867133117103223905054057728326887615128560685466390747415251550407207853854365897105645233198937476761282588087495403183500825375938022162749018079261114361329635896419404969536924736816475222915776765941707243148569771468620946432418767899252436991633718326556339805592173828049816559643205918273491760545071326161031737504682087498873513202558488279739070856765639254038701190106247430904042651249160701743370257541577315711307829766598679231798015566297324246731759988281512794423075058528346925006256267690483613656896190437410874808613188740498750035520493919489104756095364647791047303305977461925124869105627947204944820907239662755700957408065014420852448688535217026914671348809357417764404900397589363718618781094597792424870914494634099712305744901383207838940475605741540797338474844820664915195135213944763680996309220236622876280995921606798293464267081064595679094233709092207257611648859142142157161749438910040126678736454646224002829967976872733296160210259112277085814928340191262348023595098767226542336028554050720022054439962023787931002477861000014381423522367532196058552123629343075494581396754835593324572778124360957398374557783084211190638250646459616047957046437422866401523513708561073294326362726998289164294379974444751049504407573488283723516504775169998528023106469419917582967114411949031125088127714621858400256024601023134965602495820521868746256741430194035912410278653972674833888694326492147211117015810617618014111288145760940815130052705080730289912452924013157568963084524513380410962462040004814223607248329902751923005769740354136237488868095381381000100570052782863565242529050471901682464864749717817091283080456904838558117784660058730455347059376532031601255938047784690306637910817615141902466631802267783976902740078194873728690116994247354785402677523134254853710230930418660889412104849456922168821639058348647363026306944561138830567659362170145330797708270071452266494875008286500411321884564004682631936444351181164695896300409778568588901293128052716333872375369603954909520130652690476712135463420806878705209779306208433246704481685849112684644817154778564277934173503752177650368977311188196107432909668460432256844307352479430394710556166183413139196307318718942402863388743255213277031116835225717116751462331929911360801404278720590656261370034977370838506869270414569388907583176570630039407468137963032046707755195997666512001614107340087265639373830962027188259776017691644659022181292292714288885592566203107566591410789593838941787680682941666611217776179249788891214868772665207825840833196161666384611432936722343987464388047473827092219900138505957425587220526914143774778109471122257272688900555482074674736539961709583648412561487705193641601189439230922922998727044600190004670858510026329850531714044674009425853176993822437001552108137302779490787651243050808517285036010524780952550732760330202549706917388597377152599212261914292579568489455769308515951965759297426886808674803584755861798883884039480042408867577174505545207259386659978208674921308771898049191135308796255136377708237527468690067287489101644702669649795679747096444907920841379319709643171719425257472142945287503415737152386110585977676504288046267975103793445133868484360714986796487492421309600863186973501823384236690477686040267204665216188046592328698635927939522885633086094628121777259138963937866934805993852493924108558719537134693593446663512567320972212797528318650536751441990270711318202195397518190263269936242077274375363017331415414706643845497704600132714234897229710953179415774319029047006741727434453371178269274264428251632629311759009912586014086862827170193902835804497323997325029070938579124069076946877995934923363791885120736228135603182217514158701636805790858874620901053620676646774716658899354600154594855697499366012141635426156608715122781572818116471805880264190600721603521200663076571740433940007945651620201791907482664129153010876313444248230487587603619082800482547882378392012159770278123548518655221844527857312067791997953368613922339893777993692087455220193675253609207374156917802951124776684848748351019958631845218314609071088974399449547926379437678345702928378870029910340133290151028757238464962195966450006308036674966730279486360680137179550836278340484946916699780591164471391451520019302017686893700271209203897463282839112570611679242683390472628893174368410690044192936883053455917956119238973302408076641832021344401453588217140901778414636501964357776662680368122265723938668385825664920307640994593435824445877213140878135399201130118176285190918092278711517942679163215616677744064343054170206419697662833445511612667878756002056061133556959513455175089429752723800557942160215730614458871362570606361566693907092191308696228985744703368962181618963201657185175615749426059693631661088217434156295166478722604601417231412136946279417093585935803007268814396304190314797327742949360049300865671855591361980059901765943358389248723337583774803398129899097726207093076135982555514697245589881313688273998203356542764737520517125998275057451976894570089035283221151073305783247844022010856710738437275156630800799438263686661745109185334138995838168004574977320074694820146286991356413859662555787263841108102281598573140985617434317082779103166371484457709508833758215140928067603330142932541564372235623374566844312351407098365458276576324763670057823230811797971903588639065628282928702652844194639028823230701294930731602405966608893922269497315961020391100600976908377133154396457838606740956163983894483465261931659180571873191235715524903038592327108764830114554306469417221106124523118174867513358802100414528099477779672063227966304501804892243516121997653212827593436636179462727829471339578975614415705397347015529299701670541013094908996828303742092659644910759917282954261261270605229489764653206956191232344053353288020380326713930007454095767624372867329566012729728158430369008681438241958619474237952287127433418446244891948284007924158124176631859349838170579138279843153883901116542862069287152354882715801415069469125660570036911563609816043213194810215894935100622326250342566018830563913838291068754531084718691111661264588399596152394892572627953316274764012644711659331484422137539834753568641709323976219060512040332424736214290404999042359851559918483542882795738815325520973808334089806641091723888603454423991479416631403275159901790993395044515772085408707008039086464123864060339032874939376954249581163148210144282980815800651792828170932761559295688745194069454888271681240250853246222205781008050223153729483475154704408134098319522345960632105790176952044622155987868472972605280063031701679768974168031550711188733380604751804978376491031982145242293129790989293102724930880863622430516523570788050959447620669187699529710079961989653616646417613056550887067661018248766113476432621229918428770078509500952777043581258824020065087061847380828881542400284790934689479946643761916147599192276251583296029988055935032922676193774581156341309731484823669188560444957482104080938160178937296624771161957253992024242011561666975430077715970276872408458241041450977265788250177455922908794190280615941894182732672139550669656360537760957885930644745900683616501159232489859872863929181018636693137031902179906599530762517590448127010308222809596340495052866325350811525490726255604263266467619191555450893412950678838814403871870225532449834010263218407715074566808631277356024970643078671895635982231435295110795069630803593609225738475889644970804864490671805375204505904355798270769069361674804281573275305924152403342134797186061885459040654268402020583368822909035021217465371744774648631015585628699634546711880072600472115451930118038243661811451454156451776254068805179492365409618911508082099057699877897832096006063987371299911896227187693007344492425110008995041064483105496057543315750644678023670703923829839162319508153006623115653191895888013198750378914207628054495748206541414268528397326050318113857310476725322993344432203965039676001188530687313901083225391210237507265985697671070489629815654344082143570389582346337133332309429000462167447144978212966932634268791069486674498307199645225576472963470834414108790624495001919689987050616740929300358645687631314051646759255519781062528047800973455536202627752148299497226318476207729200658966549677508561736708811624909807838064549061829504008848562336665657757988180393391616879593556826124889259751823415735905606304931427857605578776153504654275743548830892026444190943081722153877620692493401419995282634609114790963137542851504431375272039281145798895140095938294329187812960392564940605148167122598636218120622469579854919259967466244553333199927351125021759958550649543716538880607467494132945034110594484641540785247213451705524640961643592029182030767534405743261557682134671372595105157124963263374155272457439011306151507159809886920343447844412773626017597780868135544431461938425553772501424871626247962086407840522797846428240973705803646990803621042722766651576595037813049494037244043102039912078113492661407853668839190302799507370469186195006918593609161913915002192255612026459077868571161631393286194756153734834817960216018131284735671797463907725652958852794557047831351111594930470416923391516468057927933938335410975476225285746582911563715297980068162553102363813554033971389377391343084606977588572792304031463785227512608604441296639525769841265869244083164541510359423690742541416647280569588890231560160539512032731125032416634002824423198013693520230129310884765621452875468747234586803136218221534078913360318400250682580635894148738265678452264289541815124608888526085576585358053454450385749494590987982900142553508449223397349889304409626459436218430057457113775013191267773815893102049431920916410721426117682667513532112415783355255896553002999740934049762038904197280193655627780929690500759119565416511988741966760124804074646636019435276642011073098708953057200976700486816978291360938815098834034686870874344361420614342589304647164885293972758174405293870934187901265178252524726590178446965096019265099958933672127615383518562377507688360575603340920688079996119889707442485568284669592064781134537897228328099509562269372088203563065140851106477497194239219153612997018549845951706482404002769857254579713563521207231649422540856280637334948789521791277524042458097589301552042523678719480514127095392065184465784624888756961898540354125951604723998650464068539767543490779076733088361298108361519858338074378061656793099766094435079858566428481738857163608043883716889414678746583170455408525010074165650010504416434171331801590343204261052110588305234079883141376078906407467558724959165281141411868551749195869995771267144466570604594854027502751156183198264377493019302679676489908115555162358655980733554964453694581750478463909204949298029766293296472270678272683494414909876504242071763380651065485843450840280581333814367160868630487182048207999307888120324019578498174428572831308322549361592574269051854119505560235025839995481146156773099300311569026152323319761252903507803981414576355597671999363731414230870883185165763567262538027279015290793991526193194014236084050144930666893886193020182345746440142129466281199331887495905616819203864176609901655896731603535258077291540590927928548400143420172400391765023113671158642218106056841742035400035475792350623181782667404197260516620566732817536942940269541079957981486381362108660942898027490636079821181128748989227680247429215020845077709329012207343478563984427154182148980934332297552747259156471717789127470971779304388924559539673065997725118604572231491957354343042512196869743805528304886473712307470270663585213002709442544089459743109729935277665503858227317595300604176760995970930206359992919802172350296123233201596487819948466803974167241948597072406175250437117422652541987857356710829623309765389982676879376380928630365861589616277841910247289309858641098534093568467873717534839528085609048664407873122907808053397370506367355262130611368807703440890292444261346527021308019311479323938652407649686635580117543451266672867136575697744138913878429771750408280626382343736659966160707553382570124648123854101845162272535831063304405846293205101253460388468830626096727800526714848407143320094029120762180892588283041217551590139985550358344191746139178294869763847279892079944085341843658333682356063507268602946794044468448518102616683219307130539781292455735172599188493524151590699610073154005373214822593999679578278494395726888384557363058543532458214710944991129139996250850060903563726507279857821743857773346902489809124091096967965075102827173954900392260178759594300719297337266527308423656470465863125131459317932465637966055917560133755830401836335362461932292570848248758862380989611088947053714857572131933147873162550433295430998116639278658979296933422360535761018916369382961589666086541449857893917747517569026690528283615789889411525806443510895243232470716577286619601651998527052335129106110338622455318853976016864932132739911460398203024642042431701632935904269538911836468542294889467833872034068678197050657284848581991966516940202229727604973852679564656102367329496195791546449207042408251241336814494473367453540924925389503625144575812323082484205839147367063745869721582315427636968527827877147178471255335686865732090098967314681456821526439712263021445734155872091551828769508405985019487216204882746171467503716828561066097495562510754418589267687628773804759830038741398939982357612920218435454336854025099904194934486023469157133803223228501151046793205365745290177695187179711685506724619675736794167511403381917964732644293380005794009189985829260085699597076152152441249016370741197423134521951574478704097310483130339134092578705061904944645698974811872334418764183722229786127059090516182129099655038711483632442551345061931486629023565969289721653100141297241462370041066687144329575862450023446463791119709002172825364253555022722472514084545797887465906501417188900908903175219570558566623037396720319705149776992517359138855090797344382898284352620097649206899716580240855383559595845968269192200221753133668766843173231941793141231158709772429469131343683330168596701262293881275881606161013872669343624060484522192863427586389117195749023116638216058276325486699132911845028293323891351109637819883554948626560882502239738304191350478564987254886446813564951840354064554890110658145480743232344260654386553648660413938139932983541835668469818689227396635547615988608523962730642891733315571329317336101945418678969377773922153548813988298041783386214335318996237730646640231794869863334464490041032666844452294097551369322843064776170793599859682428262399886119664744256704424005700291851474909264339345617508824802752714919098038657980990111926443576863026520371190759490138372917976596980615828733452911269386067410624601125072922712942467680527782282558546384384816041286327545041661820455764920350055226866635223098386280628444565856270351589183154102488564400820769787668138506820410716062527585630370283501453087574943562831011590948195739761724999277433587447851090378612903486651922971108818830127076354738039941940703591645935924142551779948307628632201333307807598770498514001965483533915101764909206039385149500196598063833423678305718687282170995677315072428878635191252351713409248217969375818325536641393276349814966949600376266993252984989268961670246855557939348833132174935330067282329364750448344477082157924816347219837363356166651966373475527531455995025142710590227136618537110946652019651644395613072201439494050476088658173802632489557602162602416225872317637161167622257838545606881266340996725600133362781368304025549083868819683034651670346768692399925705477992337378054466617166802754162404598197705666363619497678587373837111737294132183409923921341850769516353941709754309973383627151618845295301839873081507762537619041842466585326060614437697644666639818542275166224496743472337014852113096428346393901091074828325239815458319479089189282957323759820493256099833310372858612423948744118129343189327988159608074813941248076410472827739000883177316509226066584597893341807500057183352725503217531390384963022053847060044458977865243485502300806301711519315369959099017580441951689190954645095508974294386374866267667355940751784291017618731313664839893927446171484376140414672098365961433500161794265178555828796890726910682561622733085132735746658294624502605745289234994329893627923722296680180865782940837498499305184245401271928829011060783414039953780519213072618157703913696260086712478996047303037299857421717465974280338441356444989222400631880030524460293982750818931114017752745920418936398953308710212387177223566180908625977583866403341492054788857043080430764842593901051756661284625875273786733871836293173314162991629549225273195532916104518738414548724135532722667128670254576390230715330418280226677721172972409801795518219181835609189577598783316275179371911021871074179100306216001123595736661316626123316659957678525918879560801361424002476909903658783608422331988863195924769054720204397260639771733179542157714587736064544066999780363196579410541889171960069390726418380893837595174711531666710009124746707024105886526109107778861752595634267391202071696614916302388946612491913315055813273319038600959142305365396974720876711909779502543462717425069909754618053385791448854303513930476437273577249968150285452599696669589898953694593524700380123263224006742346351440673258880758489069959896911533071245578754927033143267400515184908145434904176134214701513045140511004580720841976081722639115090764436349237985753022696046368891119603665879355631714276055981951502093017991601528111113942773563501153528637759293213553832310076182179307897555344967217183258275014456841171506710734217229379843121421195732018022907771848375803113406304663177060597536974634587535276011113735266076148610112170273855852153267280991617021923056129977113911468905187259178038250801146471422529771196144852383256351638568821235726589337330240508598284603462117375381226989968904799766421200783489219581936642251024532138316033074469056896344617089429237759824036869294239182694962741495419556391338201890012900989836828711668921644629387911983477813071180114251596127044770432620004248189375912449338236938962927624935077015308715508158185077787525416477267159378434770212601038428423983061239339702997865280933850764252436301043685805193971496542381209074672322329025656571750057409995465191788726043002745700487140540994237683083126842273253830785894777963152183904833015088325643303066045819985546088534405692182164364171961240370378599437228611101241480856731302602800429449559710409905252845025606005977319399355333116464764103217260064402856186615272598474084829581249248740589100253089005591924843725530389994049966076141506943158830446404819684766443205550414721772524098725422326594679751921280846470994886643182754637750812662400998452541671183546574656843605343194798486890632725866909966893041489545483737225352532866754802058317960877087747144708208216389303992136377848196513588930132886300644401403594450343346085065989410415154529657142748195840645269248841464016902676433517804366672970340025312887559151004765326628799578374238289514766273026783232992773772544044696212593072578806984445983326159653255117671292574449238687363049653257939565095305285814371159743363787157649921084801258106882242263513300902103716658453691394919000365813287047584318348158239305749803577559201091430959285207242240856453149656898290429082321659441691496932327771591801818788846006561087823703355020052541208293094818415130178437375226233410690964433837548056361796366371692165868800475856304298797584385814641241028258582607829225092889758196937119483832345780410041137661927053787550087557344608971739198355320050389028970917066432468138491382287831408261712187061163348459634574412699738456252018808661072352261618412762827451103625195877903826766055404507342066524044675651622943599509014357868175553752164893417410599207348603411548427734284105625101816690257239782040626400632772791774239068929932517284623894629934266402212000441936266827164973541619493912474809455257153645039398506540576192552167344722692808514189775868825356207347196364263438762766713077059130755343096812659805201800151054519853909948290940303491749690894479780707438470261304741174028436112068198843006392505458068618456903282185559794456689764326391435011825226239458533557259494060787234956458976466679722811584589919751806663110127329934496727610299299031559911898958398113628620766731697575944086634026107049651885842480892982658393997366886450598285108359536948199744665776032024878165895592491581182201159927487339561758079269417591744618450166341610487526809505982078410730209410856277081523147197999386108159300918739056778526267466192777349020320570986889997754710640763335664366832705124171384866476838431296467256294863342896144723414942226931277764016543204403876715969549318909796137401392879227343846746908858309685166624147654646414989622770646984417235895727195827694610392410298540232145258016283537458686571727565869131300043057122414795122105483774961714111292026309684355068210188274053701645846233617363727671896557653239636075479451156653399422492391490388943352161932438590560609105945523863513883641289252859342031010067066573779837976598184815221202856761651506754917977381679008985263100113681663947244129266228325892927643909195226412703475722208705743352434519131116366597967601912933984292345220180291539004037429230519942156142554980614964678875503736498687133145883121696744655531335965968135994134087532183207768641697016050211230854704845709581398340352322696150857475854004263686390298614634881181669233142278124060824121809371686786098810457884008378007394828370406634286274632597967356001794791801382804741594132575898309167357657114685406850550603219047069759918644556959081905692949349676345221870332020294737395065366911343109991862925369557167713141826476394824135963972309225469389648328599278589160822051574527367818838307678443786649019653631447729154338565196404478466095015786998176569536850547642059667375879148107577507136052979140950187115703749418302005360314714916086629997400102159175833196504945776815004812606066116656902352357744792982801046064062495931397990291993865758013069327957876359073901908871885703810823953743938187722220063678528115045690409398969489657119441160929119124547901935449635146966934676129583613155854031479044882115811222324752258955749076237670672949436941523146272743326474652499912357618956958123373692637445230737217574998995061553296829235973883461666066070089439604999846733316403664861486265064574426515984904844580369919976105487917571599367330650443135226819248402100140194468941944435754481067676820529533885670928741247400315782302862383736532276284021782424225456608709571087715889860989565900189453158545846275703291562719371304745089988972592364745057229784231776546071542629905220658019342135939634099634125442177319588326872902173409369536582637985484444756522359647526708621309182742512756991429607927576759971567644134077011796682518605805169615352429277718617675828420858867441064467078016485316673500362851920701636296469592756820297195491165589437995412710550554850633123371561729823331195402308996571357497216189167137584435556188410477676659608970630729664853933067529393328297982160939265566282998458480251972874689823039479082281171175386830899055492884534439776742597923786311122232562785844370826244645999935526986581307123432865062232478115493503906136172395821254189515151941704644418257129726282140882214665270396973206910238792858816529130763889076828882390030791195669723773485579423301192473735499557178591636623343888530362581268820366998677911285040390692884878453233850901887747337088756827812043232307465611800188345230106472211174524495173383397553423059557091478761769096555134768281327780296483458590586482867996661592945569102990116255169257130938167391795524230411276700495934163752560182633811386651081229127760130344852462513754818319256900545788414266035807412134017760167523678605134709712577223016544719389772014822282758552712093390751593622778447938721313920451462508851203145115143684322125707022345238795849060424290298217343112885110323052802822974531682055964625166186964712039156813895607300940468564003855604831489412961365424624631199150596775903693104788074835434886026945533555364945502386689949866763707003694902979472414185498312577459890163970498258184234730699988180385418529719570048543066989046934637460250663077561988731511953216642150459353689493198989129366273535058540082248884630034065131042993012868260164914393975704053948080067070187944554665763993520619701962739977861655672904644963976643479887715455379274858140191873868438766497727016812350285856426150078848918323247553675357397341331833400215006511791407761363872404897500527029229292609778375741350947529165430362179185541194748963997903689006833273098738884545967493050798927208449096658687775257014856777866545228030000148402335541366615256470839870099307424220996186982239913629538164537601510564521175605304673847699760763493983956618744529279054874844109089826377409876110794974857946421244763924543737578084991258690441669316078298170607351160505493573873558764497196101369824919292276668622652790452103761420798761928777126266966294026709740269622639092436674060467315039061261140165101242340343861056401318243302013957549957846232457142718959999126325557029885423448901198570770472149347907852885014663235781014808856969417872452017098524105064995843163659836916070581431975162810963679082167338166021048396082659520552315923338819356788089057633307387988815499206718623765528074505666785554006315885847686132905241779054211098200734225963961635800057079705311444688288925923765195604018180677681187358981086091510818838994978088285154154706133498756102443801612792964135782157045425268087846329749723291767414439438649938462405267588800421636827745908288674014928656989845579647293749827614455416031794164764627354638519054975804802342213200711665486747198053884745773074258418249549596913362699061852690884850902802341377634289498160375177044908254032668486822400472496682688603568945885260722857316775929985728759449398734186307749551670628199692373241718927233983018078706182892435970972155037729226635702919924174934587960691633895283170114448453884697649201823486089782201696281188834208428239376119164432354885058926229085676704290466645610581165293939815171647446575790324893156130791060693134559101121719279122361280234266874585772790525195891454597186509395984445614773823178058464279781784565693968822320083555837604035348561109135969987804732966516317692551874732438476379488147051856750786492258418873674228146601478522664073737553776653429635531529325912099940574190338453103076699261292372158421105562672745923393355035156080488373561161562248516142260860090592454550711501236951255730508120758062426460322221903989490970242206096999885188144534168698393474624984858380732743826623608017666829452707773342401931689952255796167617764686035177230006448603810981270452473030409851117512043860616109413956489391498067294519558612792344225982771673019818487815067325817607107734827617724173196196138264317125498995284624017954172439485311482084374696851441514296155814980465381620467417239436286988322331482942145923666883951826386283076813116949883358950952670236473852268793000519867722624432662881553858300169511067315732345007688668106379668719258890802064835212276780090477129098977470516364401464415778597351437157232524587760720945116496886567380741106911658039279363057776894967240636259072576483261701406220457600276339007522726409934128223013500463974424913895888121896362262403928207768958958837541837552692326729028541438831697641371954395294090667760748983711831087131267860801847011968017520201141337125522342090526534232220387139664689875892734541955563403834900068194049964748053101988676173895911759915637488136221669508865772517269052196522486922503571428925691540182865414749182626836821864537391421620222517398222025414430995182549950959086486061691536320677205668649219201124892798426268988919571201613670116983378383774999791727823364866778056672335077355494249200599297069743454796526810338607686632491260895848384229267226325127791264223079505845800659614760865015845234072219635592594906064836493367960204050222429658131128849795663950098632251765363356893555481206456404787029575518868383955186260436437370067053149787754418965638129971187249207707038685410388177911964136534505703459324289193547185763908573863192092473709635474429655889836144494706760391106566666362833668187364506691695894348918443079379857885050133852825340005031821930085892875634668511492163123082196378431656203858805452978259521706458299167340749825481518803508369850250194336661226578496937480162047205027352701170427767040942584129602217397967981203249123163746715292409054929075909204458112979568857327111870367347189695566581973067511837303877729922090179424491360057108419776073432680052349545348541083032801468025333980673934416302505552934713060439206105114215267223765845950175734104590806219429025647609820463337450439052899862394215965893403008503936134009913236124315209648019510359239206587458007024466868892244896788710082341277638741845882718209450850779363227500520265215064664173188067769144679647861697418736450827878668877077272522126161748817440466470849574492437603863186438455570031930593265367462398409844969370576050506301981906239272317977751556446594259098198056214158775178133754761556001912307987999996447130963875990096304824349989000099529840837150617170932760816816810225992679267047536911137377360784203482505806924638722121131108881038161528732499700499286828921155126656281480575559102509795510883023213771828531914432007001752850361795675928259356245775091531230321122224712159699447121356329451341361071135652050399529288055529347855128009602413878363990925259322353625391067838029486636765032860215536281433325700446448907742580849733680761027994666481842302962538104942117608809406022573657539152244985134707840121349705338447155877820476174785034058951420816653099864684642484981055351835246900275891867284243954174719075673055304595563365399596845719263713937634335017726801301351022553320670555349209088518175465997094258826099983780817959018138057605750821354841464627535518812350183328397299599370729007169858581787559936758009585947025958909057768857287711620148847787959060576504769077672662948336753169180100806671498266653098149324111076258405552017729855640509597631143729403431923771205766977210868387708730517587032851234924504771434708096745133783924311317613849364553235178556983202971868272230113470829903786829601034841123624931060113579455703425179639892500202321215376880007266514171336209820701264266755617949938566517666814233240523755448684635584163062647865507732786675710740004773973106646473788147626768424171952568141443101282272310871690358917700904489965766172814072507921180405529784986019448067143557717085372979934104515909210595517553662343038878080571529668578877773522546741875213993068889764922280014002460388093370677866023713760455167872335139348960579205698519582072006880231946132638001953091184968577537002922691681278947434372947235996769563196449073368049072996359778938043658775300223285766879727906591198900526345881368937067575689205414409687113766278818712555913008656074294610624401530559726653360200084600962879970750162879452931869480415707853444691092101906190770577291338843984200654501896521737606593905747701874283903263965633786760212005578874938272594961020226401440193171169406019935591022776012382122369765312740667226240204690249566104384571200596835869673915837355500675419330667183186677380857813410051851359356370422278892144979049338178002475015985140585410845058309504710795795413926714416377795095244562225113203126877228732874637159654633771209252313883103384316744477744894402820674013007553798347293738868288362251061109645035410619003853019047150827137513964428755871485803411889118883758823195504250029640484598853679512161414959066278071826252405135646453632077076054540447882203227948872546036368021633519568962025262178450346188333764830451950566680845524483702738440393759905633315351933573193153988300580173431378616465896886854480268769688449783298273592236345865309557172890465174269655798002250023386684571291056978407205552169250323111465720647706196072236381347529854368550326230154788783610171743461571425877473356865055056704889041942103850586697456862801242139432580434726227853841501574711572310583183837215634461203474976528593894337277384734524175197824057614062379998459829709803933456114738212540368655433048607060429499904236858558136895283181747717443370543890055669424676032891289629911947572803293154965517230809451711396164503346179064962805633637811917160733331574536938320208431392093222449392184251741090844449066273542515934175429362054599688388981672604151158508088500281548177920895787440487062464811618165440985294051693506238101147967304356743434919827441408179941357583967299046213271616487972785389644890401823363168417050347429605690058426292231978039907017191891697569369223602720240869172411098604345322261077090548587680202358389678486164834051590453633713757596130677375263704018068676257011103365047909880782564837676078602913574587183454916654123157286870474176927140371758856597673022604874295057510280195957451140523022980114637879316656738725380945196611527226576160706571960908424713464164613780967979298187283742430391088411036476825591440084751633308216905897323641566124385879109625169729100719624722775018434057409965742231342377839785726040895628755848310448702296725706720587022392352635002987054752927146547200649422884550750484418969712636846750314944834727788522335815293365428917571597417445500570879974462285083334207876470452018835528024869950966614614950883946761614175819929587046455557460190459553582369339781972508510718818218693572389837531008000993042974983863937732021094377139971999015570934210947350985926486502890897870966956498451398589614021912539975993978693757813205034532328660573386163112056256052464713511073895723924125666438071181020724977721937255059679573743787462909068384342034001740724184243739370764256694054411843824863924768382742599099504440253737068756130213064475904805194186882672161064797201557383170464138396229534019353744761111365673468341781849639631404952397625764598450139563248371598828692978825313299629963157801139311725151569274216275778948926839787675116024239250317057767054233251373374757677776721666734585137152083309306810664114827696579350092368958244397908282797092211309849343443457005245676118528532884694591427299689693261792277860666937582132951980572817940151263335600078540166307279032437323154162742418912859781053141445514090629717353962417089531861857881293352131124565554620990966535406622983031283274225665816812125107061818971267395943912376988263762924597345183798417869933739541890769242656489678624531872149564806700411601990049746917120524944812730500832698366090344026656944867141926957368461091165748301691293723017826772801301328507013550605047760043476265585933941919434462099819951506789877954653966555305121254309481171322206169811429911308843773916448309667917556175800629419469001385092534113953966560928813793866220017500204074454724909747471320044614212172708377563305679375261745063101707086866913021646146899991925301054490836693018784516553218402077109669239060422927718286604706669232373719787412305637961402269829606597999717179038265317936432935090612317951265949397969916972029589736165599894109391975652978503959259045193634003938179608911900632003048175713390915549222088042158148288820435289949515311949201282807460805028456722103437782138400328700968051302972887783145272678958164722839334535753344665369669339977497497405170328414930308919411816141508975051675850866792715950936943911508195743288698891954698108314610548206516940550155368329783951472281608445163460695011569875001318142495574560326915338820018663477617940335271895676828938398570928810548444974228388600249580977892725046813934957326319336198576261587846100325005669128621090314217591260412665651253317141231662255562807475429171322196999005207881340317035777784572194675635558930488693323837327082911391407976257622693196536305926984594552259688107726943768595971937266651338106938582532729468451408183975843608717590183499421931372136855906179080614893265296072444827182862756586029018949486519546723985664414397740879897099703614080081131138359816612271529828419946161898788513835310812226889413267904332889904890834492201756600635634729208070828548961365479361591345364074100792170223398700489463382191971778573754529157050592073177518346444794907896861061052843023277237791758874143748231994124754719063454520690294394094092432220279224452231319840104079361541691865391786937147797680986087026941442337655282489601634553034312973208772393230711901520098059777200601388800397407940303321719506751452598115942926027698877526624496884256376901673416488034273868923272064368291332869546006216042468873832615378247714836452344999239097696035387624350674046710023894351589337899306526174869513037151371619957663281113518963938989602361645382162657690659261200672839297291922255913002439071463511265186950879112383824330808628866275418387829436820440539080597448707152963265134929644761979297414513979415788734738691823160700302691057256646887266077291063648990745769294928129469252304445435714248811543995245156408306297697846319145567836611729577702403601988590119348950363282294725294139359781464499744930585717880442435040635355009055259470538738883904212588244078731007731092378510909113748705992825733624515239772728734976258658743335862506694785527630485196680370570591792512753905197369479382502795021915673284665818295341115202518457093606638355026773863307883347231398970331995987327067517012469440857516615783970132718415098999589097234955276853311250541027781118940738182879053237068654422737072286429622867161163850401964640488724316594952785727670307288022382952548305007670706786843263548526952453895997745606074774025233064230770534366002609296028540087710059126413896397768531115676048694177503731406473739582501225622373625065920113987662018938542413905187499744445949507970936309359191302996116341225245307007355732060544648768433609289105068029303381784295499113308331906763361670508816904031128108032139117797343544078420227722090737298505094282980704164295197923245847742494831287677803764255099642774343142635283803932303910574479386928303458153069233276391840342487243750131478127008688881517413528360091012929027178275760766959229540793390427153917337793850271561319751310656984520074781701094939045895038713894993278838001686995516558376263748778046926497007272237311224406345505644958742231206012377213715028325284029037907754873170651185301212592148092175179427087195103576857521983604125547142985132424434754544804719715907208959381851869239086585307662589430655031398564675474015789822005669200457289798539664254959446196271133400413314776594676420744484103416964116587778921794228962492055910479352093312640715826739970114205248858131265777623403072003162849230650360031466190016584301207870239564607512030554381997176452880460090526371875565589758914898837645763792461043831323629723349653390317695220810937856799760198640920876343955271842980585734234110378200814513455644057738469025394651547640989320358352721186189807532945247253871368205698406158909597223932214446811777106756504947332501421045286901764040771845189661142819563864066546772700666742280237485381614672052280472129379487499375549125812731850712615780519047151337708175231002696135722539328095346272246486304196677644235338734858733334567026312219383837610463873858846012422780118260742269678406633272491322744658729195515581807326789505889991853588325056123741816649488829461870177694911593973713904917629263617101166765509885881438088771268177972607530957666470400918930925585491524844401520532403957466786810026753090574161767635231935327810707252041853597872468544078169492190375181430506609949862639389567485655624951370775465276493216704378031962560361893162092095396863543742186369056685443789697627740798263858103448166435829178598208280534643245583287204895343154820282106562960978766210042121972653803288127502893699138088835302539931212715006983898099192058108141394095473650981293658579952828524747504492275142204775980422476842941675603557780155132777069804027284059255551253841199043015729363221289890573429192836607513301687689941922336683364671892383039302109374469980803892310220577610390823644171509919795392680718878334009539292154334925641548057487011979493871350758001797726108519865868677924433130687877945165161892009681449647710004225269077801324713717135308580601766757069244156937556789847144717660202002009494703789506564005634037807132179933246804474200465508668296276936649761262756236609540037510927145681025551846385880666683417345662876806244322998223820161358808617854148942685453897172364890121798875761653827385166539045326584013669737607101721834329650414081406260880661929251366264585786480357157399929323049319230033696013486526476350175337852556324881062906345346517131875557152836924847231297962970297135704305940882062799528650188209695673555870980616372099462818589618927743609739790854141782153243725384115320434591832175134027078190290452370815136594481484069911881515656575241041478935936591730211912964688095201767477191797706364500494997031958231278742252981132859129050241815126938895520076499439305131250863305355294314527898858324217736969124731938419731085126214589357036278880652468605051198096419313173055978304504466229471228113162609670774691635034904842983331204514956783363152384421833943677289972855352363847165262129016158390182332559114763870749339110312761987143952880863250383779515700318643627751291390678297389375811105317809364726480208842935160514762194101962765249486903756470633699744198875140157927143516020532702931271184529779422649697520837605430179550275158336952075450392112561274894139747548402646727379085197585753181263834304713224118919334411667360902610763336946755212960382376993093793429662237138746277318388977989893356315711765407000011431541015347165731539569466945741101491054153979964781731415517886307193209505382485749453100490715052393175325673496064116753670088358799850897495716461010815173400633662497820986353843481212447084890818857291149680228379677761990075058266200755486533579233990099403871279836592458761895811767608420583915708035427908857787842915255698614761071276364471268241521198682580644443306202465943683773276614683245764987536660086489973792753883729434834244957056350293919622600687338351575985943501396675489688795076292609620662812130090792937979272577255819571980284642545038249715931931792124627024830802309444483717861776534307505394228630962611387960861325532130637132418352325822677446313642114855410868985410635626132105262354540797868080664467644628265371278617618362398197741308368348653069640179068706967876482081237300992537172039078878751275495870406694508281418921523259874189053693361686919689759677852701526115031583691519003263250121547243154206672345381982542629153607566635762156922229582934146654905818197404170401347486357408792890282917320100018820246687559868281722368806863057617254040884578712755009319006794165963871463294901668370561136869604925521768630745089132857795047463976907122205809654260777075790427289479008214412034715471509078734891828969204097192491046432587678366535196117849671566852312015431145477223864164900112829859937928428469938351652126241818651465678787103066177543557602741891092013083702208916250034808371366932922222972328981849048399784365291675304643768294657336846962752977487834384171896953325848335828716692014769460101495311164223679028531193029702841394301549431841432005205403677953846973688606103888532833048257994486730524782810511781152823184643359280558359453494962066788737771671851582284512170463544179460649966753389029510806223322749383828730990291816932503768857165415273715087511957554539253269084934686088704238224963961717818619425938413010653091205625413570786081273070821620292108089371588447104425910638890879860282999360520334702277324507823231293019488552794102313278118097534698566276510542986418847990995618722598758806535469179711378743017565441574034304745715440853157086673903495701852978488334599571739317785469381797853741180775362496836354549550012203135609839541113562162483910859057154771646229951291310771428371301567253537237023157265711314258233500204203196456054861681849138310271539464896475632195278638821984501018801360036106322135991107022345276611354258577868518338138666148672769028162952145508893904385751150634683057826812033683511996564431865688415906036384880584125767284347343289004417965604691699216067505426804569216157089778831354004263678392004451976386399722562948498507913294429440987646193651969398701545664261104110972341527829388309335333095053944270275152822298711465005381888354942295021832331753923699584351744676418678803114785873749318593540277152149270255841926204125962412245528780988761554298695256387406574649134094184731085436436156804863967505957803907734342393787112121732358219179769959653009191961396518650929753543291578609247412028021731776726455298871280707489435253007199075700675697208786175823732496739972884539733784010031319394376404141525939426937173789576519442111366626867349520797578847758059912460347154785651588586002700308700721243835028815385555793784095945168841837778660600048066030393619291995651451485037516951766147162644671511237927737558400729037443511700346406440385548258715456900628956263981572517764309510163826246205764536921462421396790764799994246559211968396640268523412364571126518137618944434248309738858887792179902234943229979265315691611208110680776216520339823261913889998776861040400523405486344615748168689345364420081670476283249894770410530984786535547452367698996232406986854289576033521707077162573469686670549727303694087493395167829720010867685310315945614811066680467626432598870188075284862527067723706501556066208349616685999434857181259219049718928509215460444616984849421245671200571583254828906725420496474146664112805966759288348549745919927401155757765249295026296559710590684420361292558269154823022348276402602969502688977146527969550523672882567477655992349281464455306708008847534899349611148121041609755409533298047354293598931086890318261169811864686012048518437359578528200687704159494412336719442082121991539052877273861736792647528744914007914752381809836397761276731660486421596843259047177795512613361079464673104914150601958019232053735765235287252572625587871021658933801506221512909388067733043937633355727352802238765496971216670515020721580506446120874993198099848694820727397331918860835880641704741992574726258648554008970714056218737163718017346957920054632377844965755381962966933828977334871040151493089044617412122341183483734999063023887836682228160926337217370596384358461995852317466390784161771054271700793042217003377243685232406590405146750185703223294148416345834699257487333686323859295349299956676971432422728592676745644257544733696535764462232164982801688020918429624772029053939084267438441273485108313240398093000784256570359168044315680044454165434877176827240346857302728880256500903997987898220043020164037352233804350798788183298427658618663358386096117880105343418873088251210951039827511513871808645587715097979694234696322531292800832825742834741351182590125725114376786747655970564478274842852226304353836764639777226810421635480705503130480664507623634767534782563991526047555828381142920025368106466049089422019756811616268285334968492425265657100349703300119722975817343727075259443388762393304668741490190605703364291262021852493278878809669967736742087246369580944201845451264494270068929545660547356923724967724853105445735982323235197468120610661349413295918563570381289301721998799502983233399985691437757804868657165821763957407015342472152352095409073661320558153737013589933422910968592145618168281884435834400334757479641667963549699001123403533260319934353722279481375833374991457957922148839167401049565510677776016318208003265069345184328941376161702674845299928448321308878842743083567390593695127801120336791804808156498180735175108698955448930681905569199509227569865207808624540654567101222989375716540385644514851044212977607205239033847525002329221768313316040234135224932087142525642919013639199988130812800739617141399132906275651437370574603645118752199966611711815680868828340796222731832798436829405894477993105974397055958254234254446115910858555169945242230006401919065555977384331434689378126217665418512958492541230935899201333796047672282943743002963533516845128070268835855524252744673821729275353340619050007146726644873397877123624831247468908326545144221959913680588575141675705721184341165043637686347625616709549679333561969647404294416209397115449056624255977908257883684687386118034775989433497602911817441237440872230748757892663780543193180073243591200923992178781435716150450564557246266011512602734342207384536763779343513090554016472858583147525033301793762161032323045214266804175774311461237486527123071681721667302516002899321495786056632734428302385208780562312015153925938741038374911561570241649006787103896629113770175678887705196013818651999404443646548241632459020735163005070230527158020879177209311370487307320765303382427069774642259625691054116519301490431853042561256439607226061335308979963955615176675214060192903380143417001335893225368857182381436536927824816535569603556329645051630801582159579918123715037754860018400612310383596448624933100670033641599464438154790299296888487365543670467485310647353024122788186578688464535303820463374479222801540372260562039576625822106647546626088443978107596416744102157387855439024449543001835119176660409070328353615368048044860734464480872775367528838317497575706440470464085345383578333238399554952182104129940466485326263091843739845446197984162198098495335088580164948798141653244953079708696666240841777245574774147632809098358053135151031900382399771613196801976801288792584984048134596114536301611050100430168171079073715515244169095192408845814337775074624139420655320811848854519289160348511018765550458461677781396675518431919546961805853432948735383363846375642804920903136999853190298967193694372354259772328096963835351240231857400331508161909465660570514642055022093685925943474876856807390823328521919462189896800644823012209356934183211167726295242692415930697010238490475665852916435938218373938299783811374506793203827582915466763356437907793095988721631070400431487875058312252824205148385133145099157443895446770626870239297821848817978623900253796284024115140542836588015372530731328600783400935482540014655453467011141972805660983532693179232003898538794713819789247548230351003170178464582139414830916022410912617068636177288051029580896307985865204559741746757688308048169922512235882031672630634057759956584457469828733917831605729258866723840399883007713836609950379728004751653302056701072355784979520446220239756527255470139069086958689550619004645525468846712898490729813364954477269145131483456728276358467199610453561121043181564591661054315718685011667805454285535471056602122280423760793279000690393078656176413803545192932186468488804067595907341714331485186042932437608434266811651489778673772199705792468073931842966747897152762309199727414131743058284002058102450292974534110938494762194126276365956656926142008389016595143720391308505210713629294258071857053991986954245129728541872527155417095498492410290074320744154227830254532426429157196760150549636593734611488752192688779347439707505490610205916743938686048619567056139792207900935097704293241085325579850296260652546796558504798929038146736403041780326968860986212407646287271489989393583187620970969492292404706028948012200413008060120287357932430716920889059195215624336671925978774704652593814319996927490891998458970366270578624783795304562851946777158302741999484228739397717180584795781871313335243788759166875548163474361988885827164052383578640614876351993065522831224675188329437685025730845160735037614641499971625855716458668875004688981728781256889607553145731523145593750925861301320418839814565478833439365440414007831921273444610054372205859754778774944120326911398891787426022722807049788901534525054623159615943433973060346615621335916658091440119941147914029028147925347527719994668606681845314735809500358500472446989753022843727029216174007449271442281147090316800772480120065899671255446635381634040423047944465616725152722850579551612762960287207270537020572887275797619570143211704430058674752472113476772486256692629050399121180842309724739949206782120738662329818371077611303335610590238606124647707710849515263822055648231702002654000867084236256056036675255790520469544312533871497804684443325681069304672022607433938195290246883313052920435639227956042250006785506533792120250417796280374903798301483573637020699540315840008295009298486810620975902258333549902265975544315542079902478667579847637068239554222245440002299787404124968279200010770605963319362185781028788280986277722725929908040435380364183111840413102174256870432178430851615410554666242550717634679375305389896982261982521969646464316003871380673794176242556242782637959816483274797099642974361096923717717636085166497163516088972475603858096802104652664594277348733395411776468606721880269655482212775370221992923911207096407223277117494073534214063374673832375000980860708962469526089989101297825772578483396948927453091477535416071203826081754941388815030953677241154203674920264644787866338358184858654365907030239611444321353626130831314701746952305147454405618489409645033844104286976649753532322882597122626586946291054628389275184336745126301589442306103317996416990209370729220145831352689354098948528135454583902719742263245801338898987171960378187738841099733740794756047780916827040905874950101004153104498713925161816988214553493201975891080105203461818884525696758436625526574954516736919246586074298373306951416483808787707773259391463736550570833876519722725092163878965954131281633977048043470174253047689840223447808660898953218512640877972117004092580783294051025387097953973018643322891640457808631616735701135229664083156546580195797442135675363459774864565507175603410947159110742184985517900697679013123344112271728541525573561343380281636177536289034033991743271346542497441492784296863828010694411312256690835032844837553656386935025194284627781301134590658936816754850915190578571768121872436239835920480481432773879791238503785557463161683346201673276085066288185102043590216163745075769257440640822090221609843795254750554909310560477898731957316808907674506891234204591386269754841152541203416202342858993238012014042689120589748652312378030676583048780088371114785547631961708745869560424936072995410009787738997362364474203568302246565440481182832891237932281898375740310545004509804048218066996330204650682095141516556547947690144752897620070504962754256327635740122590822632132674746922149209119070617895572773909419684109726728036879466399826899533307382378214546604348941249931841894836888817577587225124627781472735065781443266773529878712636372096574040059763664865928684943125276728479776830468323065898574563947363417606203363153291020302875886355767452941064817159842393550509233450321295538226995010723391568849141110470365846407595987115321936169863448014404295886302660883934769499218080925623308617756411883318959810792822329396727142902223029197990049166437565376502008779925348845778215731172674628525331888488921576442759754571337501459791740445615710501162183774571220791042358709390237493001714707291839351992185331943661428556643145166520467851928086096218752600793273365923662019432260988221340974803109736600019006862364498185134805851985500465751977697817340222733156488381122850527956636670039088262986711214927870975243473507927354031223902057962669528802510345440051612353489669818096858582740376159818971464312553331003256594150394230613955671501568743487609889163424520971241079187330283785063622845202908841358738184754603494820009568612735552134397940527840132810245334115362679549856593229325836095376966051944200540436748614348923898950146536021562856371170713283258314407254909246346248171392108079361447391365656832181257956455798680469635718458140560351264233344836043973743016356486974772517515367092968024642306567118246341651405703289025807652469937452509835466717518664748441609670982594129589241697952023619941158079652592686630840120276415542107135537274579972310698842297484807765783275158317082894444721317456892238434627770636969824862752165245898780230367686114385910773581750710131290552235833435321974261739614251533757174574677905653181274126144523944611048068452229637310994990277440216322394118081537028509958033560044590972848589324238629743920194941505405153366885361696386686234631447918359256632198301072688530703534429019599096728887775737310653817748028587729384547000414549263233894867717190361438649813953804569004145806908850492208826540027806865271718520447280513501959800597739407076927745729900815233054939291933988910179400168326548628161767838261913321215650159048438724442121447695735373454131634265689833344619205574756472118324314416167551484369346793458243899009922828086380117703738527318954752754605175369085545073506715494482711138486500816684638687204871240790413380841890725166505142083993769287890958452256208593988679237828720562312485368081353708212495677556417067627143176431506422685495922628748965904743595944904625495924076519567794145693055513375714735350383537189730954858878614912176065030955870163086659697480367778384670679903470698282192116433710312950002065894602961001058895297750962931999634919426314777402819215597297400161665277633338810222580933790168114147421646147449595884079113268753355182125014499330930505091565153439060453753363455315721527461049446769327686706868026383335829079801859735400006736529045510798506536713775478976132255502929120462095047254046882297344958450589107981967324937154273033378549030225160510300787660825273079400531930322372416481850132651969332198424120339448691551799115748002376424836223891043314620443850889914884942849198137647905023575426085885004024559792084938502157970718819645673942043336090855933335257266900603527330397793586313495621020854042531181420399907926466397045620021208081613221593045645802046653564253223517847580110151102831578480417560272411705773375885268887790056750404121144268208469100046706453694684546089884500887373296889175717193845171576988969373336074121735576184571672971939555589292147375037337850845129459165229985899070901457054852817681279504829789121030764125832581113492116289622683270549547341960726437477258951253976682635074956913649021504460641827370268849749417056574132086852309003886330890339012052608114558509255364780573390894042462863604659280524725204435561725722830216107609694366760989975234433319153688063230089807736595768467976821698464274055952176834454602471763400497401541950249851127980916444528758963531330229208836917811237125853578156965496560357822401005537569314393910014395128510949914571454363934730150796593672725061121315231700966910175504680320548520670774620468031190374655922425928953714581249055518272194517280038711426588433398642559150931428770065681050690975716615195879546235718816303850799569656666732267086579989978723655745467327911958946804601247490271828543571014821869924397384822028177308268839543949897905025089264103813048043240724883370635641400881452597997837681948238195528459648609415158924930365046093729205879700547114039896483752268583110137888617334065239464394358193503473169472560513976362987423794501073991560148036895649551623620266028367145195012350461565209673793061735467572562184558421703908633873784978797199363467588744027498611058535582819647460017421265599920718836177393334157964423666127560441799136129898225678953730110412596303369043883969045375883203586211001321354202874722576188660162589979818790436722001233848994902631563005022745223618768278910313299950385402896696623078445568497497054244276544074645949071489667434558859839075107583265168121579731404847023938721550220866373989057261712981517393451462390694574732110523374759922792128263754376517665749557503437201028741678853471646615561427920614986264960035672224305212051630131898100416933848706538057283623051566992991013907235202329248604421753650922711530552384338494639740481195049054582542741747408998000730140421569003514587462530761320093102272036558745573691475797993552248258259589271457737473388849987042323638337202040115173904134894677016482400290894047089484477941689543902691675751771411587606668707071509103494736159428629062761026600876837350089385202685804184156335798424107297713328979089020234831722289818821526612961001154559014491560116175075060972046974791780311542182924749051264344445543936133155481688704615649175707818715240543922906168204830612770843486292627570005229061918535049782126457675530605289857636870116790632585740184391780507194630808354654072634648788888859770767347240478558055625534189128502801431164347891565083967855173841999212199250711134133417518252335354200534621664220789523374108954388342654446766778047464086689606706755526126277465837777001288030318281868622620049727829901807270752663345613717999450966907517232208361596293302421310469296449212452550359859274335766305986626043391347804848045022953369887873894253281824684901885175028828979178640223978667591848710230051156317817094886328448429074189270577610808557487253887295731765639778735636157937706135371342631091628183209043391680729957195457960334017317764167917833492528454758607965458683303793620725474738035946120081970119024123728458992808944863457490211410933098773175019207384710035921993846950084090036888888400248621784435034864761265069578116670795082141747443367621681927560020918933696065298731267538943807076585622243458382474923130663381789297663983195570079496551686364967712415960722835562815614723080864651298800698183902874141368336851773919535684501764383397035052899242022391046052888829660680645937039432595251389159310571915732591360505366605080331982825237999162054484306346211601041397928650535431987913507795202310516809929545613724770386591073245120673492790054302776773274803002712649736686442567445331799776175944057070210995720106044560291143397179579774451281536239533930195663573376774220023820302358351214959420394580169734155585911101432744684346150355425976483860283917033154582358370614262451127650209792376151830164291491111622197911744290112047384592811627480299653398701508865709954230996208089649189727695466664946208740737570384856016871834970690465290285501497152316038285387057327689021478264529219550417146556644794317948811397463036505670697223089206169317846607830503267446416529480955261848179348225598301644786332985810649175684120350385893658485492999948197065788171748295470142581071707775338956132611530250916377790068225608425020066852329003918724238554064869952555717885440525473907372458473613833031001075684142599787555387749928918543219272126856162535756708680953539895267505463892761921747000618675136583273936621885182138703596917087984819861025861950225025213421202583864330289539307859757313648586552064366384537815348298676812440575393839842784959577769124015971419188573215855634696092470141190070234392244794823290797419861277151878789622434249301951344270275492851412282937768149131682130254873182722241985680823303265417639147154178255977103109755806503029486413433763118401622760546257701608512064634602512629232238967176757771844865064841567362379906111238406001102686973405352001088597521510004594930830961881866702888527237064534885289487472495902670437437609861617838325686930907996695191207601288247372644844356959495557461163315387818843332866576788069182860803344964105725459450066870352761446176225356911063707563807668486876113664884335555637214382220259216195747568135325178797588510459395972648559093460925134965011772227900633286678340781029960140366417072124334074175067731322440734482650600064797390413998798337296089777819310974478474535877552917477323722372067837039314373092745366374877368560530691796646005483018510521547600838098968670373664334521370278230969506673647060476515341146075743524862683168171517930212807330602303050484722299292855188513567641864590121067285233666338505471392280718816885971381977589709753562222925032443360017981917255611347103466777789543406400830398944954574518959650267576232903065176346936075431150218130372104258335075447902476585242535447977592953531456633903501170767251655627220069804941910477972701167554758729086000341655766832893375735432686247500306858378186111170058927524503163473730846791294479111003804871560779597822588681554050822850153519890385087021438096473682331806134858120764515858944082497116219940907479629368510665960141644003951856141059955809687294874075561185564966236838762216651104084377936751132885844600513795979921370674143907539086840766337745227833212575465548041151084459534893442514287030081535098521485599266126825900333421164003751733519724873564303220988647612050731057254183271025890132240130573352307246197736106665943722765100708507254396372775300152584521407409961378575877851091068434572978762617908582421303672886399872056269773935148233458458238610007265270541479839321639487718852044993003487518359995762489591053778993947136448747019507120459281614000131534481324949245162501202039725117365531130472364591722717418038052909836324153430730752881346608949239183228396334380351872570212254251735761575670866599047334637594561286244248775288314253857860494181842958952233544491136019221574806531696281846086943361224822822789486322270877501329771730335838695309261872910677742041664914546996201601021228770198567812139112951364258160744132701504758324372667343619368227253292045324250346350299776446008648158089566286334127598957815040782389681964142736482445826503634756697957748216284603634528303109289226470394546207051502129970921632227457391308552130611150283983512316127497765739764852942370618981903897091100498284208341233634801934778672805071075378944018920239952423020647988849279705607894372495808823465291887845930219611988906687656086019245112777665629612960886277046176849771246207234452993640172096009353216380760056094915458133855113670321367129149764462480274041213343460350930521283239070861241497278401666992159271048701112334635768675415918035334849713027222730886008209346615900848907639481293547968619140837175412135512401800855577550507467622382289129484897171527846396784428164703040277935359989001281582257509469229449056603568831581037425878289988112835269588625243638990148308395926599180379695387107740807583113379814547483346293417587761460650229649574043130270485469428672156859683472804531734334622730165830035181869628380906036893852959466873737312785236846927732150804256061145600503717553259953514395405475944457651185220008751027627984781805244666519107558293803208484951886021425853413325316678419562504671931672807256981421274838401646696841358751483077965010695196916959206136404465026322456413447660869265225686050912981832072838190402503491488198026560856534574329174166433188494889016558898238995862007695508363344600262683970726851302161727139918480064579628827378022900068032322403222392240856510274693825708165275759391064320584577590742823929993010277041453328478705430336351479537363939132817619327181418652832989011517330645671999055092344376279100866380250882198095358767191675664188399984621067348725268585915086100620657267428449211625848383747153593854296923786757421129619998247943136384821075447192340867373376747258014077005188614998423832361221383985503123174674458367648331521710088926266281183113884549848507421616299325768018036199552396328972788619285777189721482284184370110190139344670721558223953106895996031420847984597373500602794906134504233608215754607387126679083146582848422033011363504675159777138022924047225129894104545316543263219206662187747117150750705759651322634094658386885971893156924913095985242351323677868552533934852279198436528972946911102027530065791965348465130890321526528426394045559946411388861246413803857626548796864815436979355680866807381599544372741526782804051136442242770423274754096324695193951814287390146255656071326173895113092972354214069510738804320261869467704948688551300856787802970201450243327031891970360779119081793501147022455514149757828078368238385709581694374351761248599593966105198493758903698028726149018952059091605434030979834106790833838703925258349941794470961172758500676443906752718223591977753402966244449779518652751731070572377288979123522105933650978185239461215854524699059304200912100128020760066564043355480922715006855988269639249871058839613043213582635658027089123093728218476281569366733649576249062101775544660040619058007605534780974058842862143503047756536170236467118153333368374953806269120321779777261793135325201659327489813939579528914462415301970915403886498337763693948517311698757527150378147178710233166593436208554181394787994426642543355914216527009746711537769086323832550113542342236400892003376733307950384697662905601480218742922527767279359809075408422968889787452642118933562935055939913433448423737851970904574115412406858302260432957967918329851505465074669871150870697325025163756842190937147703973911176965966827274209930901047966467389079227267511656703598600809429615976341051137305796082027422684435608761113079790795856518626980096094819735618136100849231855183746023593894733037656759774489231055297232100391160732242786897363459065216382744259912904769142789233293891410261035135848123705529515339005231682064568007461180791044464564042300301912062764893838773695127471414784729088998630020961729303635314254717467281911512100909078590215833386993601012581259774272737290002802664034799090890615026496680536301001997709227787303112588887234501669113774260230588666820406730667664172823256833039927489271321572266982005467426511416787098242164081254686138552265391466338625761502108854868579094823916532571774989133936294027299188088284933369333823258095966917779899402950552013686832420179069664534258000426251333902857315705128730567762202097321461553683220112313303510415621162742727336710029783515400499765990267420349864913171214726556097369606282506106617468882864679461100691427285525936703241072548753304709602130546185820178300766209783276885020805097006616999029788791436844987903930309523725280845079555745230144370698902622392326795468046206853180855819412578808200852006162250646920783234008248929915311205491352393572704229159695963616369398995257419875927342265035148357769794083717193877018720502528531005913004303015472024068177208504639068509076079144970579109268254789209683080258307611335735447671003070077761889062781499453596070632702981728807419556156533020969196785965841530901230372498629893351499884160313705397562944710352115532741545426713904678367815383199909274598774598438109421546497020715615605528908980767725465144208001648954155462529026332967885904480532265345663893611446489844973104693447477981263803402894234817862446917375251798398011229233806677193234371511343644012024524731357680463644358821987151799149178959089320177977118653960422134661677082825429513206399672594108094582970096634398479046106128268048345806667359693406591245698681068584905014201296976141272667758990059637427781421070458136027280854187676069526026077977874313903477146481269280615385229533063623906889287285611991093095854272231318125484129577514708940863516910253928980467414296359173914172924764321110342963042104314073488898319137091771458819073942627728502000829678864519569916480060592366092333980718894755368983458709262361148104311251764159958845787053773577242422693490447385062881621338536858898774448640877610127563865995599635091550554427764374889438080872610773087823620943413141789221427684333816827288806588948100266078011672720672481512163392319309954157432553526339036297498244323547263222581669286893648656591116036883475521146146789574227602885479465781010530688192836038842304005490919322827133617844941044387992822828120187396296384540859467332058417557130968434735269598610461611032032402321447333051187242473940069739906540156902917620250678393772399447618116771762813362778396080900475301702627723945126243713981440450593795066767886149269227578611002911458142974212130846339441604281361003089510198980841349016960949475555524858304184584823983096263351408790014011771737028607846556854901946291748445557515329053397385555362378196870158317996424603779906110494730118688933187189754720196480954581572941337073401542247592029416254396631972920609840992919305160871981591048968089712475138081742820865086551093403078433763883615141761894082614981584744460767002260929884598658007677747918949924355185495128849818000414442357131455136123721263627847527574531966003474668410739778538891463863467957236519455596718312001535073263574485208825552663565194468466595518202113337696468725630758868743770675228192885132562657692483827123950084611059218988458367323597063412263251178893219625118356938445145335751240548487456026911843046730113001025640264150835648132821114801993095709326300676524297748645121468822042952919479935639332220043903877284081481729754729129886240242562888532523919718336984585912986929677725838547618933387978035923608762619431177952348162372477690135965154283432248979244423666748402561672562866233846397274905720028749883413429195787877743896187312476250001361918505367217577937504424400900716430846773112437397874148395979842526670710193677629946288675387417226949318150596036971476738736285602774467755882582950318428495153659831165887698221038417861529029898297643759915759838096574839543592793504966699949761813901582783102225375520749369137645756746667122166060843301119479918733646360114505952058181461243577731423322540649368862332980769160766480866503257014351077968030219696328661376671920985376919837758773341508663106893424463690211697382807498276782417894096394461610221687449736582367280248041059899546836313998186377273695299332513507197161858407896504719045674767642042699294050124508008786880521536375732835539158258734433121696221863848119766156761819447540264465741184933064721995706942012998108348164718575426861850128924860867654931190685180481225588084807988905166050903509329423135096782228439888943903042919745151438145938524393239040953404310737236450085876276765420058691221385080860860725170693341600111574131640450780431864788880315572109401134511583881566237442155777786489793375399760872595982482203441893737872283585598980028916390887098203257099415084020865056503901251137371685443586612416303575310214429379634249087920083989633395395579144019057444239736821817463442455813325958412606931725810762707131146068996712857941357366005434006612241381974436367590096970423629485562444306686823389024692608964664492684248418064486242286492536222024485351007333396584037425525659698100104142713769313586175625004871591837392427454256811872811821322323522691502940815078471261201520402053703043762585379847384571845671489141947050133871681673835274752899937452050879153300088982498346448174413811874881533827374470037341025542560185505163672990063485981539212631313440143840540070319567893410364113357511508810608935939068324171886335856165040537829340977130574101852200137870495494015273001673320263534948130909574921423821008164062687380364868235181732593661603773657913037354665651337582214185437956543183695393388876354428396163377087310292248367575502663197089496237988926239032407511256790607029387075981878398173446941761888584888744820410421682885281852956911979149010264587365775758519631591006552768478101869951911755028436652345636968851637660903168706830545988165285758593186512213221162357405467234676251759500397479280277198159344948000342942141000526513523281451001712097966055968517504598791162525657338474956876791329924033272339779201626771766492609306219288412523027000331626826555423727899293963393427340887116748846867564781492576002741445241251972319502234284908930780325040439355553093060363390869487138374723482996559792431862075403553550347700034328111066911681832059439530816549142244002677689783207929729419356523858992691468109953422979888495178140724267375590101683399213747213356944076550665441007334575500966237085727986748252145118333911106811911995890430161452252138349129703484799493456214582903934157871602817125913831594216810021687377702411158141979938803977847057226486031167669692179210613444560885764699900368559309650810574232041957456784873084570641161196095921568001049107228014296597173570256738933083966703900458849752847972537452399065580428613882259620977852181573260028143010611141965236962515599181167891209418107385466329589441580301659368641734148171573435958045488831451975148044316579458360751932757327869069204437019263071906527957115658576753105470571537435919270355604517501165301487472160830276298408068825159500599214174419707980791413363675938195498789992320761685962675620261876028454256257177485622709639368201716469623588457773916959447616206385028776770608320616091742194312732994739166285335858831887446833099646258301577547002194034884167790149913448484578451045617521361493324559326827648074753940736239500378918817403756832742904926527087219706295670175104281845825607412011373409835807591249047519398357417339168010803493210220748483541664881599787468379089539437264729035443405642445125091230042501660392070693453551187999232548155726972647858014715985714498580037981285052000598739190564740397930099138873749942431824756576600476841430307090849186688705266159051093509977595150164612044575623968033018692671890982791045261915382805234473095771655036828831803020795485365099132958870704714474956253810597384097706238391240288501058923398313198265661800976383489050847146321917283404757653727469597777875360910670473479068217660221775058467610236216238746104265911050024137689525862374078413201494389506240846687538651435410424674831227470920183349436156586757578441551601986071405583916554360159280107582031515916019086313723298261742693182786594316211736624189265932363600777409378467237253861080213670833484355562309142104465660771155791297986326842862031137329386406563111837144495749878753652311219571403824597250334027315148296436813098846591392929349107900154849683085991213704970399909162135822899866899396676967150595160873713188529234077626084250398611659341297128345514640336946532218285429827293108632624186276438906281147667949472787970945339357186217453764322920253682960276925437709083977692450307236268288441773453284516760822737976299984823925165751902090161299353143335859148818894052686681067342071405365817806450197334649559085647139683109288459080094548506475653183753855274251629551087178099903857217691954929375180316305165337963298858966803092326383374918950734274484319375481226412165641669711306512643415438802878094781890656144078585760412261854759175612632527474079890365523986025634327880193428009157030975724943584551373224409527450475802619460318702874782669081168942517360329501247102668414587326523796212831139790448738211407591379473195190980671952581347891363890681332940573742659115983126922184526470070182586629266545317016050374627470397996969367945107612500199966283236402022931385459692722799955916521150309389342045443344400707488401410366271742238118845602424026361966852065233124665485933683386959254632945287620150612811530223668492739714971144918660284019168955250600704931368106270539029911631472186973838168176557017049573558227282262452591252261947581110509355397118396240853429941204474144169343674670996448632444668495414273206310216380976051398870387691639472321332081383174039043028978619366008328933149343471604631081523772933778001037556166295280002219704335960706172960578567034396753784582490376495374650388314338485137446776174342683108594024536218670914241834330343960497712097586279835736655836706505576054672155951499852270343686327087340326055535075938284572360280163445814300490284853023011959914891483890138846586516965142793359802396324071381915472572976245206199818904497862664932390962899394063711060237679984727422637138642138394531403525882403780292377360221931912918953802091463876296954335321897654212937853041840748324759959760015315741081780669629379406484000486306126257434366510055740754010806811497846049663134355129474776168734209536192907796657985822963641155540280836889385396058237016783687117366334075045629617936961621325025428446956185472104592073075090733435452626521462062932500031308742896096424744855911321774483019699470487583970651904646684271148962885875461179033430021606447157451350412889213740890193965609887410519845008612446662765753777810232594603975817583180600848665124193359642087140293142297757694746062630416160559259925401501085788995635679552024858925956000372298717689658702771545673462519420175547238621623653165521924121943144253084808979205562808571865521403629649321587340651469709743893891964992345488236271175007664336436742970033846123356883742906658776868203180942836626568298813392568294143136643191803465370943250051894618953060902994370565067038726491440552678307451474531256924776790286524552118108141336482808687588306468728308745390020734628833101558382024700995366918398218729069542281900350184105816302679774760653350120313869487144900854341603859263396251955993648762331827291680633530074728184896423591685342016736059563436997798144216658989059260440928081336316253326063826067263185600760793887853738272669164462993630233050414954032825005440025586192909318107860438975441052938823521392462559927891180976252169296612825289855356516395126849869009929790836758813351918287014462117936393387739966899903123876892461350517736629691643993688052734446849597271415649393924752003952248745044379718424118298265667532504789879402569269431590619460612302063636978229349263566952336389748724220912537332506617359937845135584978237818432721852123150767182627117467771939362620703519086852417127990006689988349273183529475093751802749427386806869375899100151081416674270102354468789958048647576612031402423773177136188509384679446962016598338449773177459857218070419392731908590408401658869740157686626125564067754739315015656013060335511401694965729868903395431526376801744853012142606095862321805011418189546697960268438566294414569366822678137159288877312885995431569600805339922829525981541189460222332006940689938162922219852069983180858018474084246920865597121398959510719113284515268265090848483825389813006061067156942163658695431474170291209867962103458159773774679339038567463150348718184255497269459250946253116986072839934450105355044632707993715253463506374357911552207771266445479418189983138508373722855790549855767684225056906173306279264149494878965380761937793564675971463752398403494908640393020205448144634681224632618067975193223341207186660821206751132690120002714475994716476988991305094131545845316289701906686167550886765016805325994758171088535925633241210496123576222425554899603384740996842715543403528325186402004352948728207027582329856085341943897551397695987866762040995945306652611661247731581033105406224173375788376551092936499189047435894403297072757218520201576008970925467036916172507188271699113012832082586806624087655138516669443646960918789687134540428616842810784328204784605755464662436341403931589850359880609923439290562452165644372833102127898409924682650890883604073991771712203127226646007464449431132876043783464257488966425916183715998843044342367159012914395454113102385246604357006864846714474276464508400128633858859886367027360594407333228082053886301747619166924188609854996671765035384900654477183907373278751130702208651129419991425587743078243670151059640516440751468988469900840387100772496365805231942187431880258122001354041104333964401412933270146895172209195618543342045662377405856682926871721257906390021053300532438519176861551880118019580187802061751065984579862102929115415850023574785770168183746915062009207439961731417885537577181983607297768909812785974768651908229769108302223189173804901173136005516770864147850552751639823058932838837906789740514236969957829124438851719116623296890686109308219245475874550444368505119797125324492838716268632733060193357393663804815032475740262082954960355209423713304779609589869055839366240650614691888869584520922839776518026846445885035088241594580830409764937419993979348105190990583403636163193996602081498831418676779590569191617650687668753435203205135691389564453320999402969868636950923570899136005061342465641076082628704961393588893893553662861906492259271364252562415062549425872557153677006855351175726811173575720517338845837293000775250696621589302223568681346225553982515074222603597634384324553898346635827936357482524033373751891922763410230278572488087163523221526566931091352127545806980420774240270632706917729293193680369633248112324180858528046530098057708823195457191915995061172878094330604317255228417740835686772674184601560243587809060485084480782133133611943636660288783595166883941037230621540185829949250775165424221426262559212987880184644348232689165345965026826097279891894406740339316831780739380765562287537215653738752329083921774169013461078525463162066941802112132539438183545605077303782216687287890869675490398399232673939291406654267437689807175415599539202250393861504493445108223018372832251814512860346219349642806420344700254205524347906807510408869253256283650974436294233382519062134884764609636608498798063963908746733881031424951040619481941052927171942879554866252206557688232001010706242885439336714993006450029484572282340134418944666930960966446521417172124511832359427379660886834164984382644702300593465456118908894640632263740861706197486122551469152024108564742305604093444194200067856026936943859619442642452562378788505928621098395473637464047052627208601843625970196080599086116015767772023899381963787867738648323107220961223371909648431179629311429475622509799355582617046012215445805717097880540411386461074604654102954796623118810547077659285098396869289491745731414394387087523948278435313000490244436467173107836414839318109407002364700875907132684021938761460207646754473227024548152449566979393791895160623813394767245904869294573252328709113188554312314403420384054718756430154972048511208083204577785688106313346607177765772150658221832399300798693114197794643463417660713157359998837137850442757186246075198717630349328733348463166294994429141163121221571470958818040115147019105061174396368744856053080452561524151800964095453163167216467642463087578930473572381710168567168238538286372126849657590740947208392674752811141338146710311460921149167972124332316698725145280651417297316809917024038469231334044006836210506061618730449018190928077218187308746477505368669044741564120062728698747107031508019890036016237842184216720354673162787463650183642913012658866175511507445022793308557193751318486012296290445618554361207656558917373706629151785376289162778409903786211475591404668572909914826256528741190423095975123401737982722759465554784001840098358182854823208022564517272616176715456044894499946634104006720585428362076214573688957368051712034436994475367876853265123450448240549142727682673235018690382834812711583573050366967777194944329710744775140502318334582585754653013349796196336837443870723840600549270612156492804744584670901710035685427447853638092767520054030395649139938680723301115613556645151550813443551132616289700220808730574682732305092049640342630700870792833888303321598578938467290245963092409550620343739700037287035420495892000572663099817275505403792337012787191985075215610364516446314672528494453412626828722964063358862047628975284616812330589079852328926390525664464989921711715688272344920111493226973602168491848590884150015675370285573094168670049786158372209554656400179939701826630803868612538226136162293617156459621833824692098301355186089032438325060811746180483054952493814701237059041344188588607257755290945024071411647289059085119170433860892269569874480072935405813295410553078796961084731005300509620065099038870378565302795821917406165440404725923547217237691390662361794398059073029330378873331936389103886695004095529421008944608248447582376851349290435400263599747712470748109104526268217742896048988069669541600251955633572802872623057006522808011533141835877020666478491102185792596624774912336141390011331827507313300766619318835502203280721741682249204559269350292818022351295438404736292197716846870609922708049157054188019294457362161724943976979063687712640878912010616997011296501195814567089430087801991541323074342551887524134546961604254537100284431215410455679290225412288982477041099499988882551279528958363328810333047744168905791070164227993150910308230617169038434457673871379666906603375855415520716081336890021985078386230653052074803190308682309963157164193425004891674017516218764944099543794042031500802657498438031140783620370391759111415777626333542197126455477178857779493250357252604030229817344014984582779886399852800719316850831640543621070094785236019407104863961739518680248776698628132135408281489053473264494024052091448569311480222895867820307951570502844496250268340731841592933176999829096805771571412494223880155766394899475967074475788017109515115565678634742809404238434622991551616887981561709732361769461300792278734303232009049488195045874323289550417886529456821865339488025758504436299746505428680405694190568300591253407765640253663994146587877394680022789278786355772393120877503963125033687448280441589489745213312161853400849785913405428648472530442008736147619093482059658207762179262266808009260412698157374895757239307234286512485610026381850454321900145123577445340840568119740917937091521315956320187405958955236352016174476704858246950288261264601923276121332441896539969653772093585359365434286763234220543752671078725405153918624299476494202285289529062388683345741860207619845585394904038675129966853452038782030838151431883426905217650644990063245828872208221913318693857369356225504203676694395304058954361779964179294742188957464024317763107877176797369791941422790653774003821578335986063480898243211270257512822508898338341847976131233951878062785250079508113974193094732022487042078069843369536981018914735961378850158365724045695853404583391290336494311452602739390612559899090992147577623234618802433738965051831820273714459714026190325364952245300749351146977963835855258255975290453393439041212509895834448197211686321776313619096880219179049907699151641800549295492468259091767539476769290124882221334645692318934838239316039569822160136081523690839642166281662729703939756023156486217811744436855751699395843618481980734486180970358762703977102872103445653558382558472639417975577647914871696353062405887967497121785758503354036802789120067953576368011916491465136860390052261108728531428866601650246198005678028599792180850235319249132855200180809446416851855096085482841812388093917690646696770176627171790363439976052272166949536777555857056587063924748567537562826190637336901205773717864087782448795875683909999290765425646925106606623245141352838107597088118909264353314043856831547722112797403796041961438323535476763614805124673611661983235356130822106152523533405447554379213864771995387943857130509417233323143922886101678330975131971533027174140396401426183495153673731896976315718618032865481944621063261292725188449763320713802894550179666945236393400338080123731470205675149045516804551551384724001104975639943478096032367566400401642663638175890283062369969155674658156655344682152360050056223534654721670744856723085046772120532682213557357306768869508505094944379955992849138253733331630006043286240211254130794395072718339908884861017920570417174465878113539768954272239436156912487286162941665465934050381738694134195274759779627619276044829351857513574772615290257245423011133302002098640200342366880558771843775896569184854516371385713829679213903727989013132499790397285825112949697993962725743212591931537711858874868315826797315250588817599958866947689447653501691352547619298905718150196736961114245566988955214595462692481542499153269695694577924943188981294771999281547013563526996329735297427327267888692079376390543415220068445344364275394989901660458429969223048745836300104197429834701117460160597270977240273130660634952740827030057847215241392509412999796113952135823377055178829658983085173543044123769347076886779361388368865188676642101522756528032971908478094116039805376452315470023037281680907359462931964346970450833428022234942123111121809420628541857757461112046378652834148940751513524479438858172526163765008351722325256085359298146109337199312755729234501374402924794107306421976400720151132082428399142688998157792672899889150631455777206199181103955259621204266402223694803620283482169802185579642157271317488597002507238327069553673901233012115735925448389269250803406178300070804172728516399065996393054182618462591141229600464344390773635874888036310911447014127659898732022783585836450928287265223057170068716087388518180367436504663537164583672400552064198990849124649466053833918313032654785730615871754976128609747999576563079535774933335427100115250778041426125488541892441527096342738596235330206140466014997556687760336975120455085493341567386345931795630626739817046322019082497965968262060044928675804231427923644659203659173501331443885984233538559319333060324422175678326544833557462116839186554783736250069657321791574308366937906101016383734621046199917152754094604181630310682105467023262411544006331753264945581968874239573195008470166589455863533578504117993809841263299202278765533347152799323878821462220351684883768156293248997818397306907983941445146004290030466442506785939430130324200579697314384640237285274977730663354676105889965641461931990415306064317862257161386588953582842913119216335894038867649849864398934947845933850646274947266632177866823017275616376440812484953294455361078150965417235967512712666496519642275357713468763838249099369133096382864250328512502327088042371630499743006073229340610822694707627641002240870747506717081335153310883068389035910921898424951175493505662292243372096819872588501565781047984542385678905277200696726463684360903310880639536755385677002877664347180183064795476807886062828141073171491466266341365275881498591863238574328035650516115826214996482387316183358138904969409842552391588625128287891001928940028852326288864753002293601529842430795397183467799757581721030778816975763942814358862041601312205975052984859125625375568929975424021162720567543168331028735349364521495775645848003865240715614358958882898322125359012205512988090943496048851561277990809858745671315596473751613501550246618239946995832200927097992092340042904069283236239198187575674417013595135285535673804821239806148009683856317343813244608800970353117641309535500809276392356445832648776559647754351482567120968926594623158942423487336623908260029528268199699334711748393485806250608961253730957096124861217381249242100366814690839749028704593607088122243591961383474543100043038302620121891402674514620064245047781192413704405107167229308943603543698827864098888103113200643536567518545770695332978283435744640940832499065887272511673169801975356306091898271221531049758212713718829281744799822595358350327385650174063721886534856934571403610598439541668878996412445185080282552583442086961577649879429406650259288198782754044333926219163632575142444096558303157068340084933167264047134751736675290970957969753998668521231228682374315556121257862512157151804879658954791303895314685586737215275083542341486259291374782127604572229395718975918687079511346279161180800232257526784949898278275838255955099218084169554752354150998733041508924066856875671268502254899025314565147109735878811038713297026489139195348637956330985091970155430896758171709614395041369455375577427983313809526879176656760524192221140710524304673572206748197783777876184481593603676352618428344582443432760325023973504350457839911252549742049261975461769507464860806046269537735650623039939313051544365476389617898728716282958438855338586410588886986152111973191522495245013225019673232348664323140467891578066797925081986883137635814393835508391744550140983194472308406637824960725614911439461826476874831073639307269621616948105783271916864054729971649347759942650274535831792785464896630856422321697470948705848414165867232375201709239563894916268292001759421967631888262237752269947602859295129972117661988579951890497877721672617082672174894024582123962943170966521397797219932766742638686250042633662185652781673353813489642937249608195827051566397179458627544998526609681202207786293610255098520557191099367960977425752871230862852245666099890470910633994369403804125333030470681390709097566929972497963632824021958577938067676180015090887034149713755899230919520447754633964059599821597015114410265711633250336543045578841516897844914633384125086371157883452098553551464354404559358672366443258488047752901011749170074278749691682298934763251929408456494441397221230449524435518187756369519230071471525039803926727580779051710183921470145811518068542979916451329282946071612889661117490333508130045647607814922746165356641371474097333424452566812202798918189862375522814757946981644593338227236243922126236121448030100149742707250895085437508793164872502029337925515188151465144262099075692964455493707435489396994711019732702312246192894424737920839105048111385869359243668740323161756973477726487735857472858735590599206899568328084343239828846388556668580102848693797654498285160045430967080885206419411950515619387510396951066510223875892171362739827835716452418219148847878339897641086752456378748720478140503474414226383840459317643127938900474552101136609882329738522822021867069898051014347637230105699182293567163967559593134921141852613760161589330248292801046416963353139365723821046666968594615052010778379793089811767261640338591799877113777644942043603386071227082644145560325692932460769066410751107444526033322852842938924308395933427129836323394349996522947379117485349596900983757544737468101737842932504927424011202067375896587430411273580951971771734027210666054313426219603427627176685584391138023810843508983221550463174463146928238505652155634330993076616868238101724780935752020301498385857160331402858652299095916819873781559406624958564021762197671931144629841935311609252506227022596834059325717036997268275057615715604893333421972423371515518172590361984330541866305391322571870231216799167723220823382258436152941164213002489051827432868328156860016576410740040810609732783076314759390465766958310765910485196286922279915954136081789068305922947208498385241255920645667351519657804668343860918993455818031851978274271747515668419739820487371555573146102184308156319390784081248958989598954316987653451813830768684828796511247577891630617935949576193820319516037334364016352020148297265790688543237688443173662781747231440957863434070021661250527387236833788020982988071746069660409521187502106355166281235534232372369231271330069440848762388187958694424363551466797893254481215784559199833051397958693077177673904664745658813989542165385275891783806678505728508626787318156984325042211351663975373530714901216833420608883957537527872088777529543058467773504366146871362143370714151727868458429657256713674436039458833728428356381679601598119704238580915159281832146082013623911760582377059847403003967675347019117858368577820311402212693050817584175111584947224454596415058828514473481029140066181431481457145493821366425986177581471357296202906819435098966734300802280636629468149558881699445510660016182847213759172488935791078708953443176229896456133564724607905432736941203987486573707747596192929696921043335210466026432129673542578912633474802766422556754865658630329147859710341754951742905517565236801683962888221348777891596910315588074107933337766380204663578141681824566746171200801832354936627040652195427139422467647631475118230615491168260347451239381459206381623555247980650745924962500988657355689446546074535994764993523075351759579012154398028523064253033637438692658715069784056840498160408926781347039694833866020966176913425145857005936824350109411438000414981027042778500486201197941543514173519682217666879759077390745509768512089176982346854754142625937752914627066458615019881495349797986050877149903963614115619143960446582792206130374189333306135591118154764992626804294659948014734551580815560915993634045869197476708257591118854237215521573893252147408648970220972494052885391151577431389206379089364625397005375359675675797750742877863541767384584804875725009123499892800002798026168827720126852730099618219903882652003736640381651158637952878569681459103182748190523803369719765689766487372391355137991064663706996341301443213902309739569033749517524823032225939906676187105522457867193502879883146185395692655407101066164853053884317392186747096899597235601075875873248390772963792994761822533011051387123211730024973308133478268953261867815835384615737357097872189076899219329201207598937752365709064835339730554143753110034059827491948139076213819915632877357214478399935456650638192062012735827167358684714562337753363395319792712423487228418455228024177584011436950797291815629516420541822385369238843816003656536247978648857265749919842562529522126682545517995882991960508762728130119910632021326485997988760543804900050415185447347255700163128061643660604303649229510469783722120705357221425712424756804441220804360426134931171555879309652003174455280537334648550091485991358391010129493877148657211435906554148625073807400552859902699301864102572611309159050422090003813450951887243705536517148924376348653739422002281842408249333117970322440284305940776833177811552538348843099765377925395594169144723964013004300273538379593161418589545145025423875477305456106792190537002063177967842607462466285949451778648715408561326967892636011251068688397729570546495620641059704722841320859242291693791604943571483356449655729750086293433908276786416715920326503344132874437463098351501407552214695207383542803558368711232745229509022609476818748961975376027124630904908283267163220057583198781334885237847387187087993925945194377681658640840531957123975807474045403997517273280372980048017500838634486067602024415903071072384975636805649885306088715496468113913316655652371059705096889003318309865581590268106627922297676583554071465936556745304829013843632140255510345723301347300268716877952398515616581348385104956275037546415047953698080018520560675045777715006246778659312901453471634021201474199802842683343025601203086253017890375051722628199833387241429427306506120461314962095578312355197408129525007160071843333099698556399894169631012961641426103231742741021049468935514367462403855805999646302076803816299789921876898188153745100046035261668688995355951543739423330224670722950206274559152293799392690591388657659418149244504672357429399889418621521308002943726481643961655147988747921998639538079045420611631979911334133575649612153737772286988468405109488658647263785005916441692785794176129415291418417604482398211208351250245720979109007575705063464165651702777963089888292334848450053635106847730375680868858338609592103455362361778857741231840366438647442357944997311314029936684658428405337536385157938370302429142453156463564884388457438474950319244601631408585053055027472973096607160123263350057202466057998304102997805348611771772202548163896456632234670148216548583091455022693724143109185237007574250747201082517440504447513137734232330872307375864251513149267443874502988519628264607143232814253211740154412397420644728357493213612313615811180725767625455968456238921924525291544321468978461926078492830235390621996331511972714561137693435549976937895065297028243476858506040015019075742990554488534623783440289833352615410291796060286992712973855277841858479688109913278053033359037130319840177449510143385899250700800748847441616174673043635444572364082921704516096080685335888602817330378785107305770131747870910579732241838574282607100895331376268935209330803502383657276097237290826731691492864405901437207672688240639927630566609048041836247379403456351725146125006745787523172506357058422029355355274226432795264064579097513181508071472827637756739242934088090654546742071977173735051093173028645995443686946467490054306966057519356172124147325295135770553674347602664194368518970723045842781344588790860931018467654391886853149882706274269603667512644908796015905884470841195403237362638978446060658608302826061379369421074850666988292725930808189919754882589742280517112450972500021286737080399270976862762378209445021809703071159017804509988206178646397365429703485146932870064805444925308996439137463740386277370059504103938018895690139403128789950818759144670914598769526685245013877662067525700102578499407431437868593717720502780614076034807778988581548715219127084368777195790838878604447523298483572845405987345597865973409944939656657763785907969523709372114716051503220080096771997467692677274923441852219325182231858709412162863213540478312992091301712105490963865883612064539025072160214140351417430500106349848577915551711146735218909990216460977131623355686464909285219263595022211552860091553309602905916925727134794491993197816423446742365237958976678074022320938197327721017955346080241740428868756790604058798325113639533552576559932818309829321016688147270185416524653261684607791431266475287607572021952108765199146385067534848045825105546044414145305700482549877476850234117233827686719733460577834891312606626818010140937079635924429712145652148143746232398760909674415333428183607602274837884774594086746733636997080514125150663280406088150041116251113216589283367896964077518265378881108070546457181593286744964590424875907679126372400470151948785608961017421187277316417678015102528142053398309212886577074286437670122678420672277857358049539854217192240218909922488100873502217685297507029274182488204955050098598976516653597014628369349182355575435685470684453862459007531629822377385419832769447087323104674188131846102810582527805526349942367488111197882560609099939416945347659094275072614948787642791524569972268012906916131851509975977856805779637334346611839333250477956728991190570082883583350932693485570681845418354140110259202963727623716580648177299866355211343631251354119285771890606942117964970850486126022187811009661568833618330803829672430047430576240978681292121928757439862973827519634693652919611695629577317657039009476232195841968821771700135227253754889651075882785780902282041940766474916959662622026185362531391030854288755415539840871492194911290316891000481210973632880903407668810411839753126976218939229242170256366647203289639766981776093247841800061230702392118321005539442364920645668994192594840313294265000289734226266772323109720602460948695593299069730213507064373389547093437853480502391452837633018982251440546150565836643090343315709610214155224045630227125353826660157521556555093211939195866180068684266474077665219766554035982155482791525648478937876141254762863190012490054863872102707561077244221082045491988052293566034595519100473797606442168169015514962907663861267718712608863869759492382993170548087423123063312089651195960566355857354452336761887000357406954957502385882759241333353932666055947770271876402329123065903449627002926413965795701105918549297359936705335063032372777098679972099627069235246916994933837033266880481259384253999292819212028258544367659187873272430296875459277393992331118819840972766576085684465417205899012813846524785419426867805961554379292188485225750441030390650862563955348431612476434400900261790358965765377183627864029749537030478403757991950941696974285137284042278628966782206713520140327912068804121891281647950280148496011357715342126724202626534286600414138096451369899590136339521867332533600534528460948723300191411084549714008397918233633736304867218566333967839209623633157843623004577534394578843914554116967346481535513285697950189984281506640556882792000150917724826541876227559710179118973592875319631057913638996285345609811634460182735906634251103627444896728625942048981601394216679394807359814587633555008189062353332223835451642549789522626620328620563846801529839210077656281080876248033721578746971891450975310246257167566580468983767662261811203018600771773818185068282212129285433265574511027018701641776501584455709482864121289635505451183766482863892156461572641087667069014208686104616539515528246040389559816864083016880760442182061940760733202743520995455259126300932004345549927608055610950526460244085805373311739620760160239268636946451931221589765152541022148313582661319882263319406058859096928154134717868790170558008973122492566435973823177031429864168733923776446118544179136852793283216995212422379689408062603265106339001648985784876448347464747714628876741553369479923137406904247838123100468794698935286404968707639231773427401441378947137369417664553255352781818755892138169329474413943059278581197847918866959189333558550627191004779470378902671156883980075128569295455162101197476920465656608739942651725845516921054749830299029425494868410654251562322304285269280239554744672361419718142956788971902287434402119879958597892251689602391535461109791867484642502983956410444516298047674336641841595519683532217640828829371938380386066652941950141984033917638393448668182415334771065042466172257853001899371217792221883312096231138443789585781593380929749781900934880302893241643472177486066884587490063932797527434712072397486618964071447811998060850173815890754087470609032083052804778919659989116363562096104209585680421207785193337832409666036757387208091498733522414440694818746509384291838088284510442579875564616073067145898514961835124811593538106275993663882114828092693089404839326004329903161879896827321141296845657701636555503331852086094759204740019456889468727843928021007013423852089769716023783481070504394524861866565837356035209588874971898695817860611065629773776479454554308222214207617543272006648911537928701124682499180188530807952183919604025135550367171627569589544403827931640636626520057211012347886360803332098499315171264842850932350196707603586724296550793690789479666339409683206765658032078225325100656268737200601558084805098710081075197522461000771020183223570217128195826118234371535802051216948558746289162913491591730098428066700823392547272927778651233896142555047054463407144415185269006852449492139962791970971772555319559850405730613078686365034744387458492457230399806749936021650397102282433600121008408243776024750945126491381951080687196128972941357014078849028729553106608904233099068938229493079174964921151497886322867739712563441639145590682030027694145701956894223715358537380516264118042316321178732859718435193157800664423699723133779546961076720986575348118591303677213259455191798955641686717461777947970978578821780051164920838901201666809913374085706624497255100250128364712910126961425263339086848596628708094721896213753555441624153513307295942097842004107013836164976445668978083320965185685542450595848268445462936187395066422054144689313044241652083714694572259265274999911141377706898776261243648037817104067748729364670679334136990765179761569261203855616252937910431741051810020024763417281576228164934494063708029876556198139761955193481823694907896548544573631337440224738625140683781434245224550392876044949773592837271134465432191554532550732188805626173232153566869841597581504121417578296124977276513688885720901821601878522453641108410137479091915218690662909951173263664383498818878368277738024649615187553559228677753465477851766671437442738119773222232426492716613752865231305713268093455451596214640872975747688048797226944529976980519034616111168105149458916177839250062420004180659150873014435696732691652797163860694392651553904301508352756288831525587177267943656002801980781376965905776128653521244959502062277499085213524995846801942846019982827069533127356352437863244311107200387689234623709520515343960403607971065713620143220601925545732230307212991371621901056705793196801358305843383042395168179921570238961343337490585032966056750077810987830043555792886137572857256142317613436494286789822112133319216853161927780559886471193844786808947925290624651603458479697716068672876526266372389478202765972440742551607086395541792806270479425869121040522746039727325074142280051351695062820226504421724493188869013143536114967700827741328480177390530726766048449020269942810680659774838104162846648317021104376170065904782518020481689423477121583806405880197104623751628607636253746445131698389688928784274725531060957032399360369308770191349957918486145465136968047958016383210010073443150836066621600027435790742502762053103693130156830562571818013330986611998028125819176638179600524846377113047240780477999786314269010968965276599741591885099506679245756103966225605576799451705223257003256728733943714147784449644894796066766592318034205570681029348917720637091237700672863102546808153836291698527253104787323813212959105746664972823049862569370090745812932414874425971379062133090186934229770116977523834891994795808632840326178964745120108774733153279566317110399568461772591788303285489158213701300798279588876385239700646757880584573926586353576546709255331317633567256035589486256628743019973543714809485764191837472647995126465318837257021935922154185093985451022618688931964730675518232020508494519524367223488364041630424230626101503402070044568383870968123853037687696455592336764299977847887630203651006752040907376510323753823462697784541163334715280187960091175884651752861433200339894845675979112695225663161900563557038257547258618804640963907077615497671333460332235321022042119046235837894038217237651424016702026156989658835054840906922209533659685603532286162564830041769649726619307439983485340978937774175841726437123064675021267524460562940890237612505134114815880682381618006176968476216930180645012682452042822469282381192771332145763295537777173259776200026822322889879747403587957369131942082648354546797371966819227826023345531042827244155902336629209676458327631228984108515649379200800174441307554172578926295717052197725461368543317524916721571983128046095033107355962577454262249024858064674004594451333930054040750148088734450740843013078800586289453976095313656744798491831077639668047525891299549825461825978196003954087944706653237980375847544388699585363058328008775833221299025507021693394662024526452916463182221509314740043549257821597603532499179525320096806045979782237085385793777505898968121444342064997888112513481427004464308252215622347142181898465968769540260902786372038117541309854324563699173648701198920340674222102524061159865564511588080852438659521248854671224599570650465961371349820927271182427692414747586413535696035906672642304666736004470236628731148754522060995401612666905629472727398615701676932093537054962534804467609564500333982953248699840005228062069740419710648652678895056008508748510399748386961492296712221075656520472093262703565055912463251890453554052072970372905038526889114237529468224830904771418875155792346395242735981402990264666967473677532027912365030251358768866724126596615242721204909056932569164936505662545321715723609636518513863447137037833950867950897072829525156302696008793803066685058073524000852534295324223782176085546554474958187040671499627919699926155784153969086679269156629711585354291901817489325021415924996697307150354488901865977668125885979292581729148471482746245132168951500510976488543783035150093012204566261064360803342026947234973012895876003170507903497678156257741475363864685753776557352145346237440553827591465247762246463410114182682445226515122623304988668759041122226553475758141532160536282932093655847004540965364372494035113722074521457190373949683261468946507465451738595040968306162828924293608088063939053204990882560221194296122718882805420104662924087062004030454997639765958734669127912730313985669098820364891428798871431731561384464848560698458487250672114808674549764135332098315387088396546956437705589408371946586993015229894253727734326865367695953163921863992471358705102324632212680994259557440181866910929202475052692882920071542712405679509342333364878215469095110660864787692086612523811120015050404024356963429547781891470386174732999889303498151471483338707538476321708070169715298245316304200043936410875167353012392789709781779858433009012476650514001113434917220839169573303541864830517119567019418526897009071332916818912221265288344752314608044360549123179548274211119190695239649579065925635693102539116713501223408298354630267306918865119319223623591320244299313549012638868813760437744500995973380574085178757417421586838606925154794094380801746329973492979423905839534378809911823264702494350495384055659760468457949125816011707985322421878214546002803732711279347536593377931535238484313542902193406349167754253971618348373919030693590059053240757083234265554857812133446085583564339076593501372002180550326746027171842588926767675960746939394751715509765079278913259923222415329055476511247807306031836425511618837574269378579924356365388312207902066183488349340519861540927783481107714999421197643965866220001356642118095606858960639483687460313963296448733669186457622802456719323694404827559355415711540702867017409772150230842644137244047658348849341196411140377612935112841752515716531169869245268209158365603767602392602621172967124882976030877601568083152353311945206266528207398594263260807397042113159659557042761891547048455894890706610096497378021046252015208365643752596134271343886764272914700207884680767885604320949197505071829877917187333322748844624733795099398997383721476248498997135850758680377289009617989895789642311073797069071511304782092930127000658068994226775405779626617651811702086405096430679692799470749506180762322108009034695817359836060379514728305024235478934009001718227015274941134873485276262340995857137230407390522102456425883393159515299127290434767647742293466925290523908621160421347601590851148845398784010570453188739706931846135515537525632352741719561906894703685540337516161026324726157374328937609028892951856825045355650843118512557841570642689264121771781147086635952251870584577185062983681891345142223462352180834981444870853246229554147875528465855513922993367941324953807823302463529273795623018621747873771433514488738383221426601176589116337429735697133782663568685093824768186507568128310565704255792610109742298375289372057532831585844669619898335253291361615476639010235042630757721677987129994840826393241175116647410143640508753252525973818275432390186341056473449985335704863280828761350936265716532720607556049326394901756854302648459191964980117746702852920416664128929113877469131455074252010947851604717556329389034112190455798761480732214213555399115722921220638839612223008992854376261899719473222644353950180162720793537330909526249827412071340608912650556730470602619633527850367905968851819475451495936333973581924488549037633481866931057190839327567111463529473731057259408115756454610976676355978649587761056081181491709802182747314779672261942164095175402755609762521132077840970942750928667147510820060983391411981170320156926030404542155385348337228992548960620213932832224289364377730288622236976108045362957777694113324384005601071855854224290732701555194402787992093811001104622275152199869302813429430916694833148285130377591103298240645816702792033292055777209464470918993050830467754756752976338607893047992699354665172171665895319401846697538409738931603611564286010070700428693818157507421526069798329820646032212317144853974715105323395735299159166129669403845562816085977752710316735255990813730579823306432386431156893027303085535969509280792897300748672009993387339686163175151672857345468966625930563300820918496534403589476250149173720368470171534390192769528700821372471770463859427496361858648049068472918099675322908211683713826266820356670016509223978780334480417168762362306541929195282778756590740806917058285990536815560239769128007823473774525419326679376440961169116230181535586075782056683684317798403100583239021252453816489254897763163314342368008589708506146807561010218457807786542342529260625822851208856071844920488622405274448421009880571034932907620867696708344718772410323898085213795271847540098571248110739078607756640508911196208893527921941772155587202459268718519845398091076698810338597636378003554938478896832912368449345314174996310200781159280236865041874613158681173320501527481867420905885472838207146343999193233975552256791933421602119708720807364768400976589961930194130320355695642379559224481845637102991386020950316055835799556451678582012583737561173644065360631749340328885210740874401691942844603325368177742524451116935604949037349402332728681059139834534909083661945515319524837232090160037384914975776002724168962647050730560699163977495153442352538239808555304591154699755758887102017503114562900659745135487346702911254690088625105675922973158322231669926043544204967190105312956992109238902563086711800633690065261005337242734502497280917082316892307175718035767882345230536204115102962484300791415767592665020233278527109591547393079580511166498011827547379406170291753949516373863989090124405735438332665369943168745823499825280992656169702567382151313843488396642689194148608432012660682000855348086174522358158138958581354651406830111560202159377475308678301337476891896413040944339716580645147740224629714058352334134363475351904950485794874826788959823948889391032470931532337138730334361534343652770687945703838663896171770015883486433436009899538862299323142021129797811140343116527041347361296455265541053572050725631878777021920606734239155866797482456748121525482273977697800174785171422301652477181626937444775397348639866432063320086105466491696592239152470413688150680508471151155157276838298355149771668317923678827270066533110183488316085533795395631231900069747298926110100706185301463278680745242895010980118139104633095000051453693847968034066981740159541737904646352220995678681198505319740334648648756975924281019955314356966334813873471460059610813611564010873488735945793416871067169392942959248926230948906006018768684302570693256632641690863421348987420162815960108390310441217341845980172013321659075583530869628274001176040033391225065956537428841093497823242803955263833518173144380244815465454614863452311333411368136591949524295255906375253763596378003841947111091999757579105292579650886157199782076727962973737357659367877166154548991246179236914258997216367398758978251055141547433282790061828862850916591338949229752349267792791718586001813807068323056317567499493028140158592772701521024440331169065398382168148124950895503083421455464856802788413946304409021837506488471540286352524386640016578386191058705736526438822057505208842303175567476047274035679690678396295931490762075837322983692994194594080578809884793586737682681053418591805426619491240491381526814532008346258798436018197399087075509362042896176598742958147059781036525527829216425468584773825774301588399008100367904002423702913003455065374642062440909992319492685640623886770464586614678346385572626618600752679019732416079314529492284035337553000986391691892804645226681176860338703253726965333208712233180582382569064038852837835900085700601765998849249242291351226237690423490785575712858290329016451295774776729575033000421153196849583763667445987791638779222153543086225441887702514739038770542221408632966961860058165144669842921730232793166870134277415085494669574017498736089120113559913334100548091485927061815934884532966717698245350933626909974853616028741539962048072681554847130413419426137829828321491766323694926385753484782043425753422118862271859111516309976548416366011054815221702383796801261396233204388280460583610376060481322585112520216890953670284907329842681670869133222891502843491630835878815746499487392894535020084454058834217218181475481922556569810966969185238187189970863701669422326280976270833947481341775387394961117065658071426048832304821084621803740406837208554782311686335951510830201214073386571248184120094736021842834783954083683600613130275685955519981659747206712706857516490251650797614477783376390395700122750072840461273117202661380287737059700922834068711065143850693391596857931941224589728396509441853162651870717988375029108581567574982279306918104081919980162078317027044398320519917370906793950365590990243989981823456407079467753075067918089936601554021081429242749144964636534246820629764063165805786353391311842371056669772383515246431642107790983443589143794952345875949585452203017163744583578592233848775758733763543394697585015857838129590359518995401419065658570339690115422724518249240924293185736406584836556848339685532160124882723714674396113733848646422517874276466305621686127722517684101667824819310555092406394129918267382585440446435663516933686126289686613373732505656241215816821818796680003346465150172019006711841145171361043577944444831141676128663074971808702858528074707651199555279392787253574288984825157492148081303192414347972906099551393443129811155396956481864527515943213889225303934270334506399437206793853768564996937230201737727555918638542413030332469053218450700689995779661664517110207424936058829923823883677382417943321669364393346667217532113507193401747952971172386066318697397600238450327746064632359022892972254273231079839337656962518870103530286461578093859838693960288708864606622769219507114206439897134453296733098673279281810719970433059856194039077073835283521105077189243838466669552599374841628270737040537289105969208713292721330626282686998681034210151789975003024662637030863417404149426376838016805138860929524516066712233649661205332029135295644059593696711225067193855039159140241598894313814404920645810913017946409054667365967069639155811129973748406838288875248572729373118530835323908247852009048748253444023866201611970728244135903986119728011225234008438549193765748691601705018693227664192791482532309792150323072837153275696442067034813935092495977037723480689864696425834753922478700867057336541633626903497671870718864335312463736958481607720080629528227526511314312905966419473006592110542459978910007097220188583628568076685054080805864025283214106807523629435197840985746149526487651937334479647545603926817613212630010803474461270519678584223219163485746830143753753595541132855939286289714894469766185510736923025359623330726905288474605553527025185139075701894128922467312246670782258513836861219337206853626256971803444045672258420614286820836112396488583317240833485620123253905663457956203767569203235686517430649604714757256231742702820202319415011281821566268756544024603819212823752216976908445991600320014271684423363234980511364994476757498713572178172792995870934332085006744346966543392055980417703235229008748634462228164614676365587195936579652675998544750658737613178107950680326719516963672232004251269586806860606129166366901914718262314628600975825483830957633991211788075429366471794475646392437791204218803639146478571322122084020194718657300253819206119219973071258277591599528375654241518515178958940877154237286654324573608328849416404703544712721909580781661132029521780164091296486755823896004310109122177122051395478070357780212370025932255692510321062427794190360624981909067724143100952342906615993943432405758295591604102908974676880755701612439453988625193823725604076674607825588725734858890800203317738513754830486337384153742521730994418928982885102923752048264911540126544798368248198719559996019329141747447533652314092982033562256062189286192995612772987789427764065793069476061964267036521942734990718238093938076839481206687944271736534239992743621655168046752334343741305815421991930322351160204994490960902873993196752210231337313184133383173052038384287164599473102332230753976325173949500236118219962745956935881718021178956010578394805240804993123003212483224194537383480538031780181138012752891057875464538101504635353478351667881149307704904041708207660293220296947153239130300022767385296897790742954129248314869000408181180390142954478803865014218360779051908538874735922168461523333305425741787715487802644674259852949789688844259120049825324026755444282249688831487593331544512382700894179509701421912476197985241535035945787816794899645467966795179125475067967617602283551905921259188266657357549941418720759582754196576153941674100704927888711875153102185945621407629525648992954419947204355898338156238070384102424251401523881851961463664333404738494616659698010386609480887326615153745626443379338782884070660272749260011092622047176647029522352299450285089586276930556131815310711962924160569373732748758888686794567188331255702557048794849676331801386929074005675778254550081670684863175674413946003952323930065514728160212715647666696995481276131908395427563525523700693441122827772628086615320966996527591213188724633853395712670706926101397392664330491251282809644494927169250133576025812989643450101969921583124158873700344764033139357277872054307066280198133510061922511406244994485212693950421804135673913670386546189716754772393999646312656991739528629488101505667995350726314622281582028729507495745558069605372516053734903688127272694978265452284077899835698519915393428721998800220142441982773462114496235646300405992172213167103394633157321154732460955949662004471309323766060711280032911359700003120750724075823919416802132257945152879068394548821486114511353804728309375428901984952545227842433934790782899606550442423987210640959594575249856984541836938297587574718518731980344167396697037186206689366231826712554208658445859712323027952565610410330878993027361846081207718602813501911458431186305505038658923337132878633214344911837652093949588179251717809491257693717351090322496544796141921656131726936627234932202493741836849985646536541161896538606227782235342368517132220785805948777759717730139260644256314887290929350780917131324563837703410131262033088003272097953301210418986802030205657128146951537167629344831733689752916032412830398990486132920792545250712016912086154994120073530967880389929347191142756144028633222816691560995033662045119297142535854800490269700688910539649609687068557785214457253847882048926509717177201399235592763684135523078439047657252543892443361563669044462742837757100609884079478766146411490494967932723386417466138579593359741230779861602560328473835860906423744858939749192968074360002723298877018981866469107360742466832828184589861736892673565789358484462930777224161864023700864995975483174404720037736812325850666516722243642430773955126927569521223038122049909823930716194128170257892423120451658064652224501626080679330912951154925862775496574324157846170663091540190316287130926857062615432508320356807131555790734127469861203014531195327442726166419028682071632723896900417436841163877115934160386631849383462129222963145455588028688073388069036210659102762065335157528411275008307999778376208980438849940906953571074219626673488651457298329687674794106952126721549487371305065887724714033913981799958236083954809071318416072102023036933919094950995660263390725004863976564682266932518649859212575156729150418993549953647796751040295823746270046060585141746027308822469895323879970897735707256496850217096955646547480343856817616863697877976097092637424171486683407346630253503908828225835470892040402713951483001551512348568902228602267855133975772232939697486081945401118029055349005010307801708682128535276643563818459508500330500548519829807921263778397101592808513761717929822749999846551325084449829028747280225809502186562364340290408192177462204141074110057922995727407040437505443537159179777837936045392413362882793743475001056870885964688120551619242531457548725044693023666628974329151983243541897421817506825293330960547171199406861378854708542199294998271118246470646396337987350928694742742305143848846745978556593762471449166628266841843286434644709936998332306632645317120064736802663420632537664855975538166781319719697298967358955463385116258299812359694700051691508683345467334987309136039521817702934857133095254300108635622037518010826140763719965040180990100650533068546901832916874945671477047467514166483512599570672932963306032582354452981559219554395681383720010604788280608799684140796707507512745933273520328144173595813452916678378299704516835726748394640756916382529226624216779409589543818545306009552475873757257931415594406049411594143226285502264028324964203059601378849577626330968954186085865282298078994227265506376473089144081814810362959426631126464839107275103800718396425679519183249635175119721339207709060286566192013633130390710541847964191445619458282349627774178578757053053332934255150665968060987074668654375538336396675081690654107607273083319302940761057647593344576996605706655605833990981581208559754209648442264519479478078605845673364149283785586675162477995516151595958640352621842308041254053414107005251692595239687736036556064411798157368555010443326632145918730720015147725292024293829077157383855215107572658078248152846272823190286266175927731561129463886078031666581128171133560680858186899336327239644892379264194798644854363401471087447762993923845718826762856652966044805371646309948450566543943911036810875879532662053034741791797787152452741726044274298273699487298964738176277046422507020674412077816765896750963078649560882529203733896256593979742876340373801527526909881631836033941273475292562117048441445733908544044497635079314964496551648189321808169692339642652212852750939939097488987517936591510798909960109678183857010704316627848084550018281632724669740323670135448028369140804915160988140274063704857945263115839085099849066029599259958749372273847885622323984966269919459773459521890649927293324126893446724829928499992593454814101579680904497891281503900344143829407720605401343049665237109702992404596321545389938240284328813988926066171753161537129434851479446239547342877537322010136103105434232749189585170797543995492174695457069920060846198709159963754907329701519597147036809460397807461163066204104744511997233647834118289767785377147143228063403280161430595445460680426843638746681711521463753739397984861914655755820859813277032405237816022208829948255478335535172311576579944136006976487042925001876387981179133194279275368042485624617138058850305350023426782670241634674262192197876135752857786276896586735221872088776507155364242377344530160430012790759797363717755294484285177897908230682640282438356504710735857788085943356568270059570732118437223040598635225610496882262373292091322037234166140323857245292167440661288237533725553271336334451323116607685806243517537231333847376224763036970377893655680132946638270036476775849415229204990442616790513828599151036395852750955703547823710876176775129503208259007739540224262179354552021752341788967166159292374574666157518554385999159227674328239702386270648804122943710383842881135643187201132152986745624283466775989422809688518794756301441560700232435531702045399371029821288002265554385677605673916133021916481502531333083128905588336377989937879864457660214443876075529166679658974759677941941881244363334396731763822368661786922899521216275478236025303086510973696864172075418613938971811517832216205276911812382728476376291295749962482022357739231184578509832682884566101022318771762920121226671842519279938950853951299731724975027351435922681528269575421128329992792234170471283023949941232146607562212956934562706001196150720313837744364850740870275223155130782410283535736785075119509071774788752344520807312050394206399010417805095831407109296310807453740779287610509536910081244910680082809371044537852007586237744108841300203228715303281759379241784040536402419418699511447712824355089512515929214376455518303607303287042057748847962306657220306773204695595125053127234059252790399823912707620638698395475594747657086669697217293320548175409079934454756838332206387728414293931924084748504139201563960145145721406712269900638200433016705527934978676223943039711228181188952834791392695219050574707130103739605943826601272905667756435682813717497984016547233895249765122872038846461721168403969741935430577288141108342014317823744242231233821648138813498390311402721690104180175879385840378408888437773161853088461959085636417278975242109886513055133978558797265461119963891645341662605961141744304568322835910600310564138172101010562496824070390587605473308616360488043625654469840485968516905729810977853537083520948714244000050881906612679540252262123696050446550156385812963127044525410498910415623255392211027454750677352414432255460385380000510009720516212144985263104887267791132316080801838987266115529373775016437307544012604985112689096124576458837770820874450933442724022928067614086283154237701216338690577089139111726965431487432227695328508484705001539878983033095661461127372697430450952743965601344313886214019506600710966022235459792723752140702141135939576288645356946626165393017432075375887859648979644792642787149161243448633069711293949436479981137010274506965892205557478299174394090076766259299276554496896689319071169265997137209699940707405363380988537775363346424100825348567060147584431568116645507665911318482598827398227196905741860965963788784390105768421316285668548461377352172624663892445413134741392245667994469699994441357452221137710446799230708998762666072632821270975318120220506624711916955230082730680043176033410834237592634789618852615289330968538830742343573363318126166589975553365833809757965259463180353477131544376612277873150436918349336128555173249325481927566752649743979111491475264885390255517377327823066914774130078666950980498263776779193694128264113873323399015785081013894634253155337688795220092569551370638407554807457541887329391183104414597178069231407644579504169476589309286786063339923833669076730342616553094585627827966418758422981961657652424185133778083111251849084218179648679581810742875278729158218536365965887361294729510914329096203795115373167212437255820655065392855825869672197149463305493641442092240015603978126678003628029027565070381443479726374376690099733704425425535964102656725263154690519488873712793250051368143371538404323183033613792420697565509430594664095627901869667901261043430595578061919748004095797575061077312220703013638685225973877786878299063257771869057927652437262819440718985660089021414241998600726664729825297760179931895850444854391564658336318534507478724449956984419039809679818996414442103176788337405884957223449057988960018543587893622291488189356040754741001184037614809514854617505365790428845289057028589205885830473955227700182437572488728425859303957715266575581606251257636560716714363483464386573125299664008434024225373193648559092986399559047486235926790185659649211006107510578953876354556976509544290738815441476920043915157664132393299144630202178031400256525249340016058264378107851984988408534264935646090393637837023739825537865847606211419619128835333392037597654194263805072722263523837339196449430872587180785890948394756163422598620006409182297174907660479084769100260320403447572641319317839735697933426003990039662522613845596957960290094916195442454410541351803039935662324055045606315210582016287063304346234497172534174582637238794425896823401305731302810111262713431191283741893460786779065060322785217746828627856581694303056344989488296816152010032817606441860227115729509050159398531887256526407312619615888714058100919957309142588314010852451988190688870542611878594248086909063060742749148727199773849254194412296368079547674742214388382604507210962170630686796887599156971052954730584765867575825950486357486122362931876104666326846141130371309501581920116821099135651348473565438577274999212053311193510870952129314594312940055554034699050934913723808847275210125607392371891952597962658314275636508062393671306323398171592141289834904608159053407105450410817246852498347107698140155402636214123511315363095601251816206790520315253996946898705222146413958705752683605153985832950459861865545336482294610179210070762573135964315944311531679197809260859777355739241013403098554533967085600778580303937915738650797192844132977856066990384930005827548627833817898641840203979048333354605079377665204313594587277658095854743275204720566893173869828402728118950654436998800096649767895995280068178008901354559730098196059587545629356694156132932368113948202571050602434040984725438525828151302371605742952905877025912508624510022106020040827941617999189831568792284104836331111969507766658672501100289316951831713658141079148593941200540801143357753241112898957460687908002148599931025435100764743833174662529993642217831137720673705817467278283457991526314283061133880348290119848101008138002903976996084620892743264417632357971309443839215458985622034448333311678198305845646234300806507735821617512880345496914338670384921945904503816250088078648277968554169317311421774938381548658734865628690171071301995494171922501217701591721622537322472913053453774025508917959151536127872731979715780715285863252467661112719187372661028391718217920629449387129821195748936518492378460466098839885190161605702605420473297877803586944825113366708738863059532983828934127124917551525352056822750464430624545306766375911101467618209757159241261815584356857410456894517224947956211890333323275869621736976994869292699112543879796957021161140460031012207801897382727633008468828046702129484792067622390270716371386768941644556815531515864760939084933767112851087987543083597753198795095368815220496249867715868512399818504783836607528885649622397916969831649059483448481837563004684460894929874764617371110248293638300864027487549360042030104049309248437026479194118480850208759044773810743633970391547444774981789128312643387401619669239622394287409958428551047289261748210225379773905209465500614225050409513515859054480210377333451521733935784161665240908097912434564486533807462712655844795595800323759684129037130589184708735142337743351003532879442114619721970199803511326021225207243963847533389681056667065319654161431612891742170934697069931696226271413064116345552850028300085013374166705575366146945195799220919917443468797094157633248565389335483597215865423845283957635908135785325360357884518479855899052213571116266271426575624462233539751657218085383724041317474533456639898789427381489666134057531954932474807791941685668473857244285401930774036601389661059774979892436978936600754617606838654850665481083242364473089248205381559060934558772809768490910292779550413105777922911336024089411981573129307727480925832929352647893316798031811714064648776667527631849296385413317895832874228012907760515556757775723402163575232696829670840341283689479857833173624612553101884290463792694037353100817705393407221600429913423001381323661241804760524233747108646305481892986601986694326147373599391801257720163893909093342839012109688549748382389740720776264383507075155769383157502220335972352412461825581365616208194511618172701531114554384114232501436477548130078936964900332532876466691896056471014825290756431156728574221287073121191205729476551180719214020796017765755883918834947950643379344533692035012045744482707791456867806427723498807527561647020102518704045096684776664735839238426299068318526552044124012244658809153010805671078059163872630148640488779561358957055836202512052472306676424227054475294352052149193895912139969517753531043495762478562065517994852460169105502715835515551215358241092234038774254220197326297796430544699341065391233618051742831640399325275511035155766008669298990754153619030851246188759130145849584929943860550371973646017489710702146801897723544033330172856886518985701503265052799159520518239282480596043213114223555033234984291485961457826374504422588235882625993324175743767253417619874271100095962825607000382259897982804249876103813413847214583764208120986549595225927186345600160031817113720662825568774591137820396707842656793538379509861795989175032340284747392916363310978954948918249927023967770251774021371429266739308994464355875342951099875711884764761435071642293006256680851357397945544004134827239739310925862287638281621451138298277362251184911500987193886164536520669567279817341495235717238887695720548586853549435634563097041971487281359825028807337073344859154095749651537268628891893436898988987334471688315141751243599945960166176177234291439983922901068620621219379381884969016607232708139376771244170164239764774016191913501051582514049571698167221586989879216807136121032624177793908234737392395247973097410404816486722666294917278111769480705700404291517651766426986525658257410651280404929870911092103264669690151061353532214597158939736842574648320658785592129953880139443107986775542690675479374046179404103648704203844141980804506374947627300908962602951791235456496145745906389017372791230280007607884725056769308588068200959565098971448225762749727612671156736268296521455250726165053793306745910309347733650088537999075006208443427884553731558104885552652617406207591759077076439562457172163469709329208587939226127152670518821241982285363644139383502140319886901015367535915911030478733714398794036398200918238400790224994220145501354718240728700919289025776151693358284793710054099870863519270649551850888638099662174115227464621899703645995011585912405375359120718877370153040027713501729688423610465210619123755153157629241638541850349708434451939754889012254623374048290636053537760404010380381563646865337005515718571483413180794132043640755547943729583517033377436297806291834380340669067643763086980451700704934029154297753002184442766437320949940529525999137881432277146251474433984666761077458019948821885131951705285137739936415921870782810335179556669593348445416537759572358285606629591130120610873042659798364752854194770657700288905822216142080912126473564835244673621510527574882190548512337219526959162384237543655046064939456902107141420269422892790510087635330936064265546314520742685317227875675575169844170159979421042221868236663667018771785712178844080024620846394577219060652637957812307358317236882427346080929726706344073724543679311869579640998594873627608312705397716239230783495461489869202215776496045619022686683534869987536110172068876254086774140849082580021080778331140376054766591866657527655617071721832977975968262639904025360841154543937825609912310197674785192361510055881413521741686830175083328529154367271565200509174853126839155453937600983526076245950320678305230011736380970474928950301148160555380660820976415595848996935700040643432840626271304391141715666165788635082020299777873645052720202652247122693196925448735857495054967725285499659334385537066919584166582074095059452866378133595109262137312585750135182472974270335378873780286992428896809467334578601098966645512911497344404938745424295373614760659873944027834104645086180807545546218930975818348409414077452979346797936608971468343267740235089465885865097405357224404163442323193688888497125948958238991833607555471436467304151436142478966241863737084378808976566538656827371922516155994590968117083110143026598442412946088454340029170853370302346352919521816366530030153871737913096050004572280777899794331596041969516948978650500009009251296928760360825587251355223131011346431769985916653938107128747015536175903263899770380871378969165080969723848787001876477738447920619046027406743120986652941238852907121913592250207577029740954474578601018183848253793983875922834153369064226714288770849574687529545337354809534214276953167170782839633485645617755939468032557744794549769567319414637629243198975422488214542349848268971706309258447980795538025568369241301567508315036632156559808965957642420667475735897049494276890557914558430811323153970200543363980965812137600213539750202912151623163624696049251364675347884671341249325431722017556113399225071415954349506157975768500989460225051294661098325540781630797327262694890913137793274530041282373626253870113342173965400846716614221111146612525271591070738844771084754010249435060834562252268720341001104874343955836018141949848161470408941647864101941059321090237304748343585884175899612703013256202805513934883450354756947462169602649082254979452988636580227469601029588391377226911427335171690946104097320634499305151417316533719865040405746590654101893106408859024276317048888564397922713422681506810100779307932808678453064446838536052948924601993815725431182793596271758393411286272787178195647102067654236364257363708454582054268655177137265108178918775435709740662485449752038821112625917402066549133692831477509261747804305348547146000540215008683604909216558318541820429126003424670507919736699125262812113330262182797093366371750296975735638580981552632713054683996013992602793551151142025031080948083834950136419370912765173683960667008685512798128737199481639986194946030020244982367886673444939081518303765124733171403515787567120008510353101618295740042347795726705698866739822436003738385063420359081365897257749757554004185300292224570196699753009759408637352588352458364561037395257403702616152188658709535600221570559150615711962408026874699918795390893710688107255170587029160539830363599448054925271939085918268339925887792612219851770017034495019376100820201376679835827572538434655242600594483287719411948844371634580719338777384848894159917599239820014152294287965667804655299001657733409531461490248579296923588355372788463472980511279076373876657094068909135776818327310353900931882439031073706560243570279013091710377110398372795173349589411346797042159301910007153450586100995726935582174284307149164814302498057026604866543326733311940064688305394006103611118222337011941763971812011834939142875244287651554763568368560689434281918868328064631742388013531909197654049824244754428656444727142914304899499161821191201709596645185437844173046486516580736057206497288799640107079621007758166409034621164401221133461293783187219291576357057029621298606756714996492403158742646411027355520326176649870769664960598448286459931659177828361777776755979450260539667119164445213890743571088861437747636032147159183476318457736179178833074446883992472348848167737197914856923428035949555017714257126091161448192028752150935056018650981946964350525561429455487875471767522290574235247739612707845471157934309702444262931138285982929922790415261412819388441166615391788831528420718967860338183243854183173191050109063366774828155884850886646854374375585857309706638133224870879651415913595108702714507660705617040175483965101076325284297660736879135215697134812578374475815858042146906368565512059668838700542923771312145973518702130654403163779191823771895933327969018820015706296647117097290165004326732079044064861934824547891885772572163136801642883777158556424863388611932149214710682373723081379731243027178094446975141923016343800343620471276752359955496890600239686358383147554362290118878004920230673377661838288587410587313735095149793010318047226448108834783985396177099889246207350096213225003893475267859387521133872303968340055372634583090576740040296627780889299180695986487877262643768558138903759446153303471157692050924458158390173559603260624918331556714332657716340720996634772370405148687381566195353275562737397090886876724704748910650148932854982306266331498382323911970146174203638505662513381062693441808216091867881152101535841153130768039821020803085883491084376840064100347940411903239715555962392712443889953218535255784067824696896634304923739023293398920172229648944580469699756566924283665383676247538685562783271946876536507129354501874555119388096630860087993267025932922134481908482370127161220667005049046930373502600998517140322990264055057950693377584322947895465015201408361317970985358150395048893196511868061791288832629529747957319019154600252278165877648642585481062943953607265616939559372526316245768135375573152707093180591051299189795488405226291322335489260285683882576087042610190656673729231427856611677740809132030412703522542224554786330282676188093908100463961756271585708658253398870041877893878946335244638411049232680364464299973631082750489513319451522792660758260160149090390536083933613874305546850192750180318567703544795054315879434152091869260624440816132343633134887637451616534141320249024035261593833571721666806708068644210476232894788831005125131290527410583200959301922846253356171138071411817384174361477176177639554171209085226658931415889592375167301480733137426713207283240520621400247026820666434099375103546924113512357334293109435052583834802921186171252310646689024638084596608065731190946551245984178011157716227297553115409253666902143329800352236943095790171846023182028933826181093602646047949197965360931734143127577576387143096406273438824958020499725574939615226674617168622032620812737091918899701726662738140828109204174157550381508933865753924783156550174517399529632743633685355018906644873340709654687704656670226131510850760676032361755252912258704969549545367516502483157461782425545808728910216029273708634759125436279301728292183897704583623122016356243100274905593934865715541587300182408782456971727825382973265167105002543281096808249886293794699924913333201452297553693173461713979441036753292108307005149655050156373902083625160593948151337770998452067864727825217744883853555188236739428056253219426663481780085867813565140585357380046648218001381565227035932868356945638106793639820151303115857465324672785791787860286031744663454165965212327098356700242401403185052957137765350643118120226008573773894081637669950542950954309119511474488587609095072825955696937952688667086610174986296627512518951646824281713937623143241567683307161009533645590995313958504649106801723469028066144121395362833852088486448582948694151799452709837446884475831638347300449978405700601148866166738043491689316070571859095693467768062080346108408152798988537286657381895325336141618519730432868450623371501249269931945450000579861432025983346023708563694911135867654733958453584295827101431427692544889566059545710936282938842146378115730340018988640183727234833638613617920312104756158437677297445505123274018699477764285499388083335537229618504827264845537920467328488129291835298260204168356235598229947449981046566700959051865928075638992441111524861924023863024971199425882227494111455764162119481620755434978695425508845469847190976790783618077391912403844219987165656310562490958187900153188750000056160527164288673951378816656763340667172938416588979646104707079825517794526298169893712165969369387349148159730232164088852124660603090616802424443058394771599828326352538693162656890987832113587643973012216854400136260800889672781610964501683516924020793338567932616325962244524759273617122584131322561114823423255665585837479056541887782520729602498491767747200448597970193414731205740780710810960846645101498149914791777047462922752601948747729282714197238608164544510456022115260251996027742978860324832831318159721426440561255443910921534513063798407575289540087823213575946349082649364729246803147754304455544898944223485545710244266811520474118275258045846267713835560887414762335067004979254441360347181026596636547573306129449379560628502653024216184526403312688944177754815011011092376318983649580845763059842413681752878625480111303681071165843199674378883150056246899936436822423849903465979409416816377949792001138537392525134123470596299488981145863570730117135973645446069859468932265654106896642573468975431670646349910396485299813728101440350502581692170489398852836861977228010683256031484781896270740603253793150782060247056144979780873656872576496896651100164274419002834060034006912722975746322885697506919808088438077460841989787944188837571390056575883602514363647960425970406542690720056501204843490751124303996890217573988649370942642665489115503355641516016383760934742574437698745792034379288627864162542236535249102254211978314167637412841769231241879493336395277529163930374796299066897486563982656144771821750848770154185700514335938422152638518539903033165308075210561643035703430346783696339791035429061336863714061794190584640367616966490461300354489801196385148191049902487154168485242609225607885624884457300781359044696213420167420897980319705492167296956830231277803377735967156564514892021373270300339077958471572468208376777061108673184974186895458005100759690896530468526381738192465972723510718496267555136060785281516362857634911011405786301873535654752366657302766227870633672178153389451502992343274254696279325273505422361033043431105318121477300197528719434652626637885926267499142249174579624436699235726562811647696858078666205733178521400477582869080558509846777526659051247047946503241567379825095489339662446896190101080143785946019921992688063021763841041521770795223381733000282826524527558830948720285437719542661633725765982443187592820003331706256518633035460123376130113696355359441811470383602545274610222948608827995555309462090607944621583060024745638536391339050909144005283879953666447492320059865950047046579884228329249660918448657932294651546083772759265572955434757570094261401752593626988487210695937057307944649210379485288844660041364491247587999007455045469668960672229821442469054967245683594940086903866636882726444230582709136735284812950774078146830162955929477924098509711181129657487174993312830012392128103741652925349379647249068034524406844627676776430444870668283954877973882397830131775796203086432814447396266055879242974846841600475974954500140482421453968793920491331381883559609499262782317201567912617084323914759357240895392751997872775254243664166456134545347658874073203308448087775714604880151289426259061983719536337347887672237569430130262312330806788043424755871685819339922094240740688207392548140115443145186653431965673267916084015541087760724760856071602443068734434821737050815633123544016288820010394249426239136490265808217548104271502427571943132049225042298927366895047106514535299642842044994690213206789522771482564503209202701619738997291245531552017356241663622588315976407045544334310623385243715770870377390774428428964800054880492650119896846011864137852622586537546869266481519321284371156770180570402812905214985195954216462695295469932067498382375475176225784166630850959276890177338875172865165849349787621272624180299209048416356765499113210400137286512339735514328313653245652421790676347563215927074915990268719469623375518412815925915647042675968018001662897256469963761710496942396462223496258123164145638617111492971046913362537244250076258396097429341100234765934522733409659503762212356688488805636441866915526340466710269118128122232153344274443805835241977114520673915372079884539000848254951903989041041004303397746338246657012503314983032458291309119549256049333033170186397423506514416795073663635018068212964034334236530508806740234330185060967535231599920343245938238112629506095336113775281829738202333688401522449338715059844758573458112529732974131632905421523910360234668440421401751326841492026230498243074232828266697600292481693305777904687899482002639269301217042359127567446286517945431435107867112016389303910201181464446401200285062638580620564413098268712771134680835254064642272088406565261320725776677074661317890973599894976646956955524031343087079958653413322667385760639370892764837363253751883083733921555294707201755142971392932705833815030455390645090729911699194219650149362980164716947274826401499806994131943298756621490095645193529280007628130470839387513490930173961144997438963673664433523484386256279583789602157063050106226600123805552800872787849500669907417242411784012763195092390863470985568029627480794800449854521259494622809186698302310497516420051264667004081966914252169928010924319889238543988768132699691931543295490103662144643301649246661384478199960297699806278939870780915925417402691818235559387618731472012833117471495964382567339229034308041281730313318468280736846978177863918790712208650707627376074418358241550865419612136637787488384134751972005807498707359699038269190982436211987133808594785451602203391152360929405253704864809106369485935626079461015461439152472785052476043559577549742956842311057606526313637612306866596981469931526746081913893642882454903077894588102294032654441419350144919422082304875205177272914389320036789973153203304314646490839002364035743363100544271086309828293865339194247955649759724374582453089666632641746918118935225386364173792691990123243550119962033377626300384679194841479034006811305794222879238648481585579568250745397168550280181969358852928894754344191589490720926303506828958481397745764568308462509680660647395535993996524845000917011744550555285437610659869060003562264011338191605349936786341161835432234705750318044835872461560930694794249170250348681328724656745665136124915604218869948262687559721580875718646725367317074412594045830944564654954074402532145090642267195052588173505123933353347387913721410618771687957725120797119614291679972574341065351492886976133414671267677797290806735297602656926208545081595281848578964425539017938164384775384834318045739261664196377936840481432231169034592198911889914905603136793112268133498960933302051927488163547942483428043418119646197559430582762186237471798450216369069841194149615598902901278662885291792757048297840063576046675391327897367475807803208594847932791819491569432492887129412217137764596917808833815133728004247664719786283084108803034266554911313438497695726221903305739974963569024044977880129538921960741536442973238913885135114425347644704345260771049838269655193198741538487285934380944588661707194683914425308795031808498633774263842812311320917064671247212819456389537119630509533958629155639330215508673190403644456489416663768500644355903964450652022558127272823366488125248322960709462076715877126527352813163749787826480909376244394058739710914519548971552774005890824488728996461184959097666044455315229508838533155107036834138798360697472820211746812550171488586806387932711365130830241599017754905297700288460709819788899356649331131122175806798788403339996745171662556920086638348116586696817500464776633966095189802553871597373503924163660744561948189218093067657175970881824268664439829800313840035592650625573755410077037129964331359642035144055169105922567908196640897350864274006286832624127760622590396777671800427781530313332751110918816839328529158629191017884238845282109969490147737247226377205826727695388358106510683998327967067012983624917844589193217081533117793354000355485389797754055025056525638663523824285463354662044020316993789206416437521106779832822822007722942562831027544616560390188367274200705669471362441112411223619732230317854151028047239142779789884571276222907485745079996053724671096015846993496456362963072255106556231922534198180871798902883565302370865588298348899679798587923205526488340564865939097592610924577962558170460930837688788773295916476716983716391150653292188135866290565271076620530333273556013821215232742746483292421874102566610969564814747715870036038230463759688544752276654024483595412732000110842914343452705993216390552360993495742410534595756968778835010760993851626078990620783760895936843551328028213656584144792372285761247739955237771957853602805001476845820745676078616996985815915477515156801448465001071978890573971669103380578753818608831385204507902062663471409024063263022368934733002277398472471038295714850185413545736652937622872361137480363967215751614012992735383955070766753299136539205653919187657940794793425160253169542830759068707795801044539010733821639439302842167354840868479850780985630624100147083142086670045211739282590015570939054268794802066350747747085489603145544644345479188737272428358868462850330536993631595998807088540148282023077033816552902527807488811187941252888207669999548168953859420846245199875164606990712524811508326627987611207739081882093776112836927017524987049300279910058139345812267194353781089956953999242021191449377354036809483054512477620556394154344924137123011706096026565444857938121687169089593599843260279388829774546475301998676572696993121070445636117531997664262530534728018880194410393931468495335242525499892830799582965351706795269010632715857108830196123659668939008918349143276667801203093955113723793787592720465933288226893187919539343403447504244600496434108979926678553435543105149512315266670600950357992667672834879418851204626463061326361866439140955414031847026615583304154184009122791795880049492814984346055908144284457557302057946109254555667081340584581905363272654593537995016099147787441986732533856603478478145684248326015725446140926249367958732650145130806715159443005638050772745490837637860659613191275454321870659619566893195930767587607606606995411687985945889802078109511514596875085477511824105223332304631398073987398749400379305057420927884047795340772062309878447780438910986356349358032983542966446423215508617532935516152736348613255426830947623376371114740021238085692453273677892275789962267844294642542428523761726281066645433824079218762099637915303739959895450615467555993959583686135756741131089414940148896930391395214069555434867980761172639491450416423381387434912206271264507143906794327173283720465360998455988948633047092430588712412336765037431728675012899045393250730296623329269260352624565437521925288440389402029474313658757558852948363697869970773892329217305317640714840539339687816345701781171130647326112495089433817257345999529221859063027573747167649557166336908569151015012792692974604965034183441898455361736914703648824979104848104434432822232649517364644501548684278573636940246091229114110652191019419651444271000900771974545150991075372059696064294692629644405874898005520458708953966176793665763242599974809390663822479318921346106940844939198820716539833158888704066323294607450655193011938148955832356685956279048268598438056039740454493937907399330528026139540045269820771510604121088085436463008942190882605755270022033673374207691577430813547572092739198601702724650266953270009588830450536456561722108334303454386369358522888540712882849712589795955161252913599108083303242522491630727299122879310620306423960690613833961745283143158429544198780086754745813197995953698491038691880613819442768690019265625043731767777355238327311199225164478124413305107932469304700859316599050508325362506344971260488052427792335163584894087153479429328670707960301314515686888649261878542567581410344044558933376176942633946018485298256486581462605994538117873183575429684143468672128645790786652897235218736474655371244828659786622402314235037344293092446659563120888629433611255091015144913260442029194912418448815110446539916672438614175882414380478864927353449410565291788534929565477685778180010389284811264248964673103353803077415006234736764819581690217180052761443314191557283593434521233270473374835511318188216006866651354893381588628251409855864797084447378497880941124813930991000367703880786340550902411721290753505421739038482468474025862859822100091961285557329490894091220988384751660253437525202006925185663683247204658942372076510603428963517032332612621440065439446063374996512181897405536213660195173662496461278135841994976471311871958411115019707669341889020584704863602907914712090317479966923910614168138504315888611008697524470986676751379541777963176255699660607706569862991719316593262061398545600237942043005792080154259454048525710911503245813206761947494732444102919956635619673954142744409119169724883870608751542701925141102087347680543336318446613522812266947553773760574911097466577437320501365927207428908940664987888433069873006456859231442194131240668621633610897642636095785391379599646429772832005710230820054216080226914233446528845688824496054228822480613676589050661220633375230037754393024744042423321172673463220166258196004115427759115556085449023277050016985512447655804963066127488799905823543385854066319932347492588786050087913398022797910031763792000401600418991721727291859241165929684377460001254488584902306336744142229647543717317668274237426559689265640083125996343753696317390185948538781789860448163290492398011524023199816458146063540560709777295583015977302081907226570777985969958252718076119841817943212941898826433213912825336360914860797935489783718130347215408450862330909445140437257713501974769798554474591241836738190908735669436803108681690419958569268476546210156148988014552848694943003800943838801831760324878602203446346414569784478486368321034164757543150873442309738920535089195112879751845096676529992610981347608775336437561299290782686330691182236328643725517069239366206396896801441541691122171653730138688999889846372261697790402624489287991140721408559761373896203106769579349295173305239225274074589974884573961581652654544393885280816365571880723682626332071754260902891182327692478625677221960031697523426104597973098003910267992175304555116794144993738278066453815359004580332944239836440849842649864587538440206440842385892294218609154921110006047130831228284808997576848170007158122018288804687109130587219989888512353222576968379482297138429970168044728184042535416136688262598289204090309784285625431762453227688090760160369690208677532315658229128445976179696848495420041625558943654012142179560370727434358436059873905247773233638095737925939375272215704021011940863347290084272503353272922679568541413017493312459403844839253821815863215399747530161623574893182684016703978999458831901887589371862463428230435785990444458816459197703925589596570686759128551136187477526294343250334394916288588051530544718518809533833689104394423407193577067544078422032898140141006267631457957204051462141843598727138365204243161487571814226102901200557258776190833279789307984731474631529605377222068188614461901302830776574843691381697985804445242750829744153298090552511231671579035533135521619003094292663855338616463339472863019469688454757886398813864680476592398787428060649641534738708563801434920677358383371436274843373692187426691916909904638968467143762759291178553592361845489279152728096137404856618541173826761261115992313269711673595425625352937964759637862755834046673765018401652516502007556692971224039922799715394492426014094760032352068929418664365613098785595356954400177851393327108936568664343854356672284339458018207504706745287229809924391028213627278661448714734219313591900605201795373616168823421474896905523627611772187549067730167789876132887368363642952312085868302203788644932883151828148883664555141659530976675005892056083075724424624649680461595063754582129052978742952344312640444801372261205095786792865237256732176800223526221325928953202829124409049915273290222452678670834342307829282041922490902474702425980315048725178218564883264800850323965791170863671498004524669973540711811187254327506963040836807908653363690677317537477442569836061206795735300534864587354641015024562697152137077478093562202621504397751461327687716931450059067962077822171140086422346406769775442796796147952806682507636791654324421905869123255250347256135924968311059453478018504788851813207089723236665656834918440996273102176779403575535940972976303807268539848796676179913482432583543757953480202182013580009337064276397426130481719387682263703643296933701550767924886905607549033417477860054672655278387472474891368332915812009274665803657165647167613096096081929730257846267814284033022335721600343336708153288645667090150705711226708048585532527202709673830983150914841939629377340107319770072217047913042631814186639671594988387250419682554648097288858033056724320398628253093016767670245477531860730208431392106864437628237191055342710743515235483062856541776361720643215021106254719373030595654894255855758309690770381671181149571361011186862074869502639147050039071981466972814682099663985982801266177483689288908891958802072957742423202823894444079565196642984647353760705678894770061731449992164427171244791139186546418844570734456962733464530521354540724019732920168367842737177392284661269653386676292467274207723929432571455039481817750905370750383556336995228264434304073499584588497695637538043623897712980889919476042006546795239802960456446765132417895644879496681730063675662280423695005533136117850663620545528980463582520272709327369541871707516895303227685325366889285560319524723110273545263195568821386543844019997416172033506953737261228602488248011604443909742633699612632490381928729301879275586723148921390255738610525402571055129595004977373750210950782391012062903331536814693749717953181830880806601216676776882551877365119025039570327934937135872478729407807044022155567027756977769537172815651634486949981766270713432956990794127480661270022178958505293100782698953408174161165687086882537765839864783060218224758521870015379867880139740499521289891639358346847552613895644179953338429280894391495440507185352267515605099572976399237387979721405188028819120845655230573887907991142148353706926228436327813448068870498308647735912159614106366262413080467068872310952507265567195636211421049882318068795795468078694505287821123059608853014548506782118764183934905539132466412756182544279422738363445374055793684627954783666069208225775543835289754384752533608096433449967327853260783578087815881559388280777323975400488697973900711168499551360317489831223735944641735014288385562884180328803993325555712347960288373291473285022686973884688400977522556845824173632414170200922878947966453618825264378186293417602432821385450089688999406110035365166736642528468680840221868367562305317618209155646637338842473065338940000458422024112601967730695496745178793147113735798535088275618876954553635521586699324843593490127600900421972612295762200094462231413264645318218093065279480953967687432343307173230361058793478491158428411148478667826824963316204782101859772545372968663147551132740610053699421438829929683880355811477227182067263960027608360325307499843249397540876651676051716005049599442795628515456610075774818985086716425828648857230719989561624983528494508993158041837163470625859353620076454161259320388456289424158498157900193861648470650015599738322377583060413169359444501094060192279293633182829844359690208976669647849793965933356961136777066344214799336750942868437577300409619109082197327632574350782603868933435040864810259646383703557797881404260624866770536995717927825145653502137897219334885422940258854447659344675909610202017134784458419208642293338721520252782812699073538814485050744553915054418842354336801590554530966887918397188603250394824696842105633543020315129724422752075258580897104046049224880814379553272087166831388731592602348368283016978002561826914789891186755943588996654443805295892799491839243138927044976263712833505754085367263599406292901730246668461784264145235559192171215060997236097618341817679015937817683554621853209236367020920425906789397365745965208144558559715086513625304785621701925586902689345698892805868612370768862837801348572148591844067837707547714470643462389298384436006114144924132906662691190166739216497485350372834159958505397038695310335426572248209555082545972010525301185467932809259428782518747470342035288683075691919882541956027663457033795498047819180709386818397820079928301059150421953761076849691082853315340651459265188040549260871865508009555773273453399820868670971880640404885750137424118419754534307645633728210904846511727490410131588852131750660187198491308413000398619824584194479702803589546525991351489293284681572904056312986572324125675280479999333890866563891094614348114448353661932498210795573631557578344818232612146308209685631945103452760766114635900669735597634585034671335801873334620764886589577882501511320045887863405754224397211228235389590597522863511329327990826352352282392879796694637956589908587732761658814912885843163461234197578072272381608624679573675209459261966182754558945712812970136288486574310628446225242674471380396722853267384462349672110244441528976187713934624285007274510366431073086168029652234871950022467175805140773618628419131960624385135863260217267553185505595210689333337827273026597706593572007394210666152864622884442775041318865993312789368337130352839904922138724831719467756622371099547128573416732918442292075606662970967735561738203491662225258930306916013978949947679753323587141273198477399415457919388423358347763084553967359995494617783729413575885141341391144190612295868960988029177118745229970876783018549615516320779486142317532964974583000162281283542093847408728565826797861386216322134472723939009833366329335521797852466155193082178982776262480489316196281571042003314282151318939056949390776696009205655855960275301954640031256652800525704722607785083567399096892889990458153621735695118541849250868086849705268446356781938859197140894213497623053041213495280431284577670657134350804030242911921941320859622402221309053996291295004499213687239369914799544026926448190847050992182336893740102208714810876579375257832108292905586793729702624451247945358066558896231155061923740481951428035897494896300372235639500527347261062135278231393442141165594213953403549879005689141274092936635631054788699550615935168706873393066734847241625425587942720130311852284396354754484875343104840677999808166266713750379535633229192507277880001043229019631552649585333243882018753065287836109934034655150870899820193149202266295886887227512437768883945797821965414032748737457734091017984815660685893871856164428724620668305334676101465493333867772242968813599035098948317762773419072347316527886822970028108269669433249903795160898716860600076335068004408238390230369641261471108453260571456041678319147803648218278722542447141296193039852545173246907318323363660161409991554147938190891254486873216334013742940703560323412538999588710097797751149680205445224687566957339047277993049941586153082389827128499001542950999149156211068494729309628650558893553643668580956091231610764922578793270045327167764554515624350085443125341935765105033558804066815416450481762674868434261489724138456618992975001633748885122882559111548455870092112820337299876035249302769780422454610620896071636796211367835827107196107243024244841548705022500221693373889019787703417618683372675354391063261653961028754813031951875169749083999035887031419846885099512060280978731084085843303383755755620021328109809586458315741936273575016159662434890316362528308180552546858362568068028148106400906394157004445473381937733238656331014718402606802690862644118519990606281823151641318275120174134673247542643578261926820830019915240754016730548530867938151283786480461001149325967121893041040598101378311704466682981906688695833895670339933439340337441592079690952119087674663097677836038533044411136869104508419787247942370234908558812976285816059623185173553096933951412765711315134480784462451302096789020155515736509332658589883601878868214010354629003046309414015773563022959814470270242268909497697895890319276994069568514799713055095265562262662994055871590546689506538485810408664926185185905970422071647678716923643212302265364759056649585996975917722633999947463599954359611789927980245485136442155816386994017158584181481965093581447848462085112182279683355122649443765486009844798003293848627976421992876345813169863646422508199951935634492032571412004196068807180090944159124355024983518716329308956954603372970149604915226941442216956461281292149067169841521043837239924422420543792110407067809809819078592485359888360245379282154255953713399390440884846325405553226961490405481412351482622357107383747144295834626615031425909412025727172179638629731101892027399047363865897918111282501859131177652797755567684577110974466840045645289935055780187923560097556205675781250486593838996735812578425922898298581829189435725355417211350762617294242986454521555920738197309339483321870680415478416536634855235911950278611210202367577284669119821669517288128493544628901918814653634957876615982078051131912999106501152988638120138248826669573028237098958363261378263754171763541118316609763562360571421741595403454801922051191162011696407926099624121977000099687900615830768432095894686431669670152518692586970392079859939178497132848200548122839024663564527481857415152964191178818263588188189793099396671823252991108002461077275478655899830301038960990571666326999106595229788279859270093031956807298010081787398187220247601914512026586816219996952489724818236018110834257664687696026055347365304561775125806662561801501676319927676488690445431181027347696424179506343168108343627851783818661195179669184854284187696003075025609425277935476545624225751259442116964075191388902877897943839740325755849350498888511374496791164227172376053099775854040230849751264325218749953111782488153723199016701977577952589719066590567184702098273726188306383507718997541582211757310070738322220777562453065587121990260179319716326687441851908805379413655947976925354150876813393104061142014270363419079782588692785595162996939326832838871585596233356908624796710945585777740305327387240978577451194135279847248366291030330927158261719122661640485340175730790394614805039301129075278527017702165055680971721264909366713394288935800300678623219287683477533641601259470875999465591907278467447549745434713124739587580295086930100869006461852628445066191041467480430821280776248503217350215696373643319150742355757008897358352779973594696994030278830530689169104996118161055833673927467639318041659769589066780751795603088817511304340813339382611002319232542465317504286683779406573429010694743272442261881243416447173588072633670579799221383090449760666573303447251265078411487698751913982528582312683121989823718237075352043891287134470537715530643416868240718140475238030712810814430517039396960730161264914389900540126808002286738734936467451575381898595054584368090668001720825432470622925284990091104700350590911403758415866759714005225653630499690825819488707971089892610612634157854911964656637457960230619287404412544838310321066383741634055950554222627332811234065659458925372766313422229785688932475569642693062523440553425352578030041543996283831600677291646025766831105478379852609667777382164808063015685195662842934733149419238105049830914522371266282501072455395653213386509395808302589890663086480274489314321373151215775320901775549438699522646391622915546848206493515951900790915396652429310781458622463292572122040221093464703463550359631043538129301234472293206991882239218553647099219519797910647474669257101039796190861116771679911392411783268142880619573090469571452859133155650957142482069500485338164016020901554830730496415827061430050204205809198171325033285708028979414244043157465240744535510000412155506912537152582554297845458637906387358588582944403279133394429286773571028880590846442131623967538056175586760309461755163729260585393501820684330690461659279301211099949441768153886826203046627096364011929742422429088809005755919526822168654492995590069835690099165581657896927438665105972648416961983527514596968469604136962012705976466105733362607427590527102292840858571413060318020396687650858180235321446149263232410013432145856766551575885011013190262897254885996185887220874533144161787541785216505418729822315532025807321986797520301377929320200107568367357435686430172880527096017314694640145286641571255770675567424368290448444853236566000415532576163806054325503501309298105888316603987416468062428423943532422149126258690529677491489250745642760823239552518084915960460702573539858532925173122767274638851108307751711472280819727327843221874145353653965050762917465543023713848205134654110455572902780234189320566218585925325427448282521152763133242872548513501816522146380109770778787525924407519019732049715371248942803225062881755519938757330623445091846491815544982557755156313352618347255705841653500363444272317945216639575613984432625966117480307793372633758705531404890567069573723961804570422064010711970432200674811883420493265073440985080924937284082587187472210261009178394010230146237282857369749470988297393510767205622692181727480097155858224798984582844676005786390025502669212511817464504863082113018063925536194439664040182530227026225369504685449027842970983922399643697635700650049437728991447816140394533970839134129617993553129442088421895546832371464302488949577215175815398824856204759442842551905361186424380048669350326113976565580567738604757582296680979985714599926548909694198524285388778304415114743035869513539317080658644084008574017163605590435736610734638448724131050325050417805774079464704983308024448796225774239107697916184002137868567469945403063570904771618070188693760801843579045604352734300126376945713626994017998490621123128701309990351393549636576949752663086768002769883297069699505068498460370995962816398384423053872300018413780259034913097512894410483811324825063500989763922489723708487243398802158160778454232160900982741503402989141666866148427333789947289364757720881789805821668790914011356079262711387929844796574738381444112494519122633291784133716956188185750341372982222815251951246941792436626565849204563277712333382638342543432677188527873306484319233061477802177763786554165939017073644437552075317785888588920351808201633947627947522078379144365426314271053646574792083963949906181943867471107070601838711475703804979944136826302947010339032994039042205281514594310212131419377389720286088802263815721886885753937365504804949671838003480886111898650695069657996383756204294629897468633748174190503182312834591338451770765615018440605896390908196755786627497975975621549033059907018810266719725905811071243240243663152584390720587520780862513984009336802979994943544676592107932282272112173208889827329585572836654996403052528480749160710413913964730749416973166460566705639941619888950246754237690671778774539638302257247719665969547020251913464840008881235548059979254815048031516414579890389522770734740690248460296980652328701522312425707605738790885824464315914229223560799900930546861198551646114387100143984119173629312963589013012586710086565636042727705439662563581703172439342740644459942509033619553720919466370776762463722924466865453946147800901457290949368592232281523377287302734684410609120167134169912138676060904694014078669938805267290083096605486716384153964215607150787169161327532415372537157005534517673085611617247423465261997313711731307609645884270140798352001321631071056601709349044748142321556669923328326902165563663884155803093793086564213241055278400945902695166408750075338361710875570702431668680251990097354446488180336818397337623770441274401158929560529618089380102445740118880720089505112015911791094771489749030359419025817969651376722572819551613486383159620499720563807868808824522668024749439869030109476256404751913099423785477415381536573831031604867365085989692976934844874878489449754819426385020873458884452891767758645111089717586863699850105104703749220003183488192689352615447092958045656688119218538418666534928900594050091497102730304644727677469580590347468604491171802186754649743663160694393428642273612688983588025700456793484670351645737766310741266462459453501006963875887316630340538179323982045935327760451398048112519224643437838138016359628561017521314851832353090702374470215418580641115960999120518740437461506220569790806274575772845808977982957167483115125323846425803743865802233828573606621536835689202521905220474437080685063556043200346567152355386696640384762099716907025232741184883189080352396087063496442771352384710246754728024994651483991321022497776214538284936101804857310275606047728895929732669006037044051675325480451584191458406145226123491262277249279869604067803042206291145105074300222415062188196255365729980033869416357134088948165840888486189071862531942274058305760351301338511724457744250759715886375717081735534246388158788263407287059225714747820202449820778556980237900243412966320706918561041904808792363632892170884891130207057128055922380825360546574157894395390963838071491040750764873708427564965681610983658004170024340687511631602156111822667032634811849197447183027192913101183196623934244952112359966063363228332710948899426729234199568860609952403050006270593516090037957870232858909655765276394714250286021715205998644292234368152735592479910807774048356527912185137782215032723091983730505234275580058157579411001593923598832663074832211569156625464897531277306014865029284253447673290754444421183124728947001673922924324964971697247932890612686329069162207791834416062557000037855882500211552593809290628519739606885646686595563342994381424682823123119623756854448955522115552779797362695488365365901959149311901051849670192365613626477703481957620565225072647229086746202593426111195879043186641590100553129496973013170380146212694671447992028612888025154623547291448843280217809489644063100814666083695037888838942305684366478644669324525876590758448749720303165202130228850796116721671550420647018993028495023457431220244232539727483332680729233909614819480414130284213157279456591094959265794677998895474000597392383494117811480166476656697449639867600822448296954952915185525709337645763010190582602719867025711604969218188015697927306919641241022340134062798636210416043908008306534879161034057088261243422991772264234309682530340981150488719631727071115579404943697583828420008184031042127596167748450792776785777015807936042997451711980461727105476425336563508779753710477086033660510151549758844012550717763953511288311456150539024822593295724958661370500176332091043168542703229535480278077533622708920349387651794543578722811290622303069403274364527766506422760437875326499565424909526492216254919966643204454698857334513113538078460255170923638170246880117637183443139787944994709929743369180520202275626266934880873289595261964370635839618351300846671171518916775633998237412325751279437154177973100289503528761951651650850308179155130904952261595604615279152404015216561320103891657460940897629601353142538277495758190605335134825700218567064242977146910506019340236974960211458098944065644102991919213334517465307224923709040866434321818455715049584921649345131269617725277716147226762655462981043374681995906546935323223802192692215478369702748744465379036469873207050439907190491534026875636010732625325403264416782683949422271302151790517048172344508593826735139561114818976703898462018781845577313041656803854837164795389712439025270126789663713133817336521914487374052836407933821546728492088520580484807871559132646029448073136624365281797495218858719398356237703798218959326929482952252284513770300287497321955575410264304211859873343642596597650275491284427318879601410858744156825435530528720988916279307724718985852936113552498004757518683178751416510947389412048874610731759082241938318688803975643241954726775474520825899984762201430773691086969286212278293273698686276306531814530751411250182255745109098813361681989121363625767446194956401046131477905796371197539352728822169421885534610810059448130766360384087995532750701886299855162308053955550943241364064645842944979127341513287865078955424673964484007110944271871453380788716663091251162895994581051759115513179892867456736946504930294908334654885919910204855629134658998340102591495559747566172112155780910054908266309865338939540396542466000268852472918890643779575361724932558825311942155588046626807173784814724490419332358165368383500015325329154519821076705560940456255609962536246586700773189593174756948846392803617382929808566714069334322038935681450466681841128594460207176790812225674633711464078823555039163329965984465161100650304192047081566527341397625305875789399213356387342762680555802777151632009187287967025480722040304667645579098566094216723289868696590664633370897593162909198197715844859824867925873195705976595537798371614755908390020185285916766243162933312353762611283902584197963721276910896854477108560405634408694706529456226283261230501215809155291709835670675075033941711184666209865772215651464681110822044810366853499682847267417286675613387601304095640949646172001336533830932014021596499489780095357903839763167993817501103720561786927779707700390379044798197797337455154006402726703127421018536699605601878647848753860718979386363569196576430647169640336647668096794800761192385588233170065312394386886443636901598109911118679632533626656323376578753362412986234005836268803882164559356468459149396489802767181964169134096135424943057629075400437798804402358428639486128384528758265324327112018963824073560068414641832673736753323205434542199067411582726670350102716518492487463365144064858803755821858006531571307673966106337852739009477487062132236375009678092543076349239105824387572621993168939965628206180116714047792662786194710490288130503859625765560528644812293123398926424335131739807629577174514591948334558171617933449434123921316569614259218880898499575544253550520897848495130182748772435907550849798256810816524832433999208979223072876072420222298986106132699361764283338177524830221804882953599636131055065269492583048285944671417556251444093521407376977837018147944308678119744927192931710066685432614763377432794699140046206478658083752397632409515595996530090998871883295282976829979515816622801552461367609414266547222171949705287710769282364256790968639764152668924608003028485285315293127391560138072421636554504071143586158809236911806871510492337845556141138583973548823899989519840252796927616171626341975014395327228765423673593941440996094711949081885865218229847175705125058231662388957827595131151395919651611429088851890142066226090518746728912325052405402855005255227606409778501332610418209333887099389096472305305359337921017822464728109734055874131803159533442090130632061014884420095308530232718734184392653775104822517198011943243937073690028367934039511239411113278638053988750830709393963272928362770012499123184229645110734011104269905946238432655331886520346881008487057152877367046813742658480353676176487957949406172516565546915752353977912371814366125116086299009850475485517658690993692706719595999946963841245996319040433287875887361905926550555650136446232531907975558048369167945058878778579908498092478276648108954938708852373835506502998305852203071099040121272282020564425591179043641350151062488119158673345420961951486964376116360485532679762549161353610228431182274857752525612803039752819003069756019437303787426452173204301608466687316242810520597635283126160578542854955519321173303486110665244900180878545700652954756437722843815234260981611936453967810158451755910520970291527150089313743484231120754452317186934544249618905855392797424231564877608693304718144647699411050636390211765327143550947593398531013041879212378487752599020396540509940622067307635218631404071272832688907788740341266812369019875895650066132544194142058009702967256904554323383933583488743344658960035340970002152430937512919139507285027653692088764266226548225306782884589206355165176638734619911258600474210683114361734795242737368058571860616272602949492018507314232811164207966653686470112616573009998968360613170480567623586092143075488891928154787900000442253317314822346266728530944522245624035065388356761788145335406845482471742332883813896061693073842958034246262902679310197365687061712121314862301058394857995396522535935502580040813593212122122278219051183774741296647507231481491426302773324433805333103069742594775270964836284661698476924943344712700565767312628366522711140956692714112788410564547326077941593973611523653430477049929511207076456666216694937912627487062456452976452711660540651338156044027375429829307598956006819815556199317899300837483000403003622524074173104879174414905325583601140772884287365279046698803197222644056723784155828718742615155461259071473833705060828770753783427421428165034864329225191118897467464447497554227477633356539265152236124077355490616649380399279762703810091100480197912534994031649280051966809489481370852008991121675310363007381294526792293912334615347584373432707782088122806199594994849412665563182840866144211483507607741781933805479647245979592819099863129477088278291489255433043050220434502260881369730479277256867628546948315365631830410510093809503340990706461815336960967288722742005300717297148233381115475702855673011414641705246719090010217613231184800091747298260175188874512177811555441974206433553255045423982914587782347315633027743093015366736359190701729481031912488679776679978341971949465339410858418988641587374633741445903653617482041236608257010319722792059392099058219879961770496115602046616633290074576847989533236309631427428477897021994707645640101888881257808560436566254486223781345291282878666840749598681131317719946258224517157763582002287027403123553972373255003055988158375732264721896979288943207463193956832564462632941937094209210379171346428524892268187996791772084707075274196554783881119635999129128797665427122016017795424722539588912422886706947295752386226423171573819075722795190069003131088897445251261545395259113534743408681790763829609570609737125571611057950720917023704680401360818263203546200688299836929375734373910641534340661650017404613493385116257047344555868782145018597834317040551032672126438693672886123127223676904810716210341876723562124706813981183221906090766179155885356986066075089542611503775944770562350113456750438727188384623725823558191468609051031994826731041308251615283571215170849809585836511472847542564077974723349806907932797210477790747115690395486961210846051324739431529499558791809088040871981434490684791785451520385624200564419659522575301404924481128823840749855874645273244029471129319775491114696666780786216116782770530066312357423297741927119570642667363424859867625225671568675791132692162532774361620529583201814511805836952876370199137265013170795029419385016606256421232755338357379451328627275851746428009005458298479261135917512406290393678255688918767637118670897716206593485394778571955544489564834878155175929399127831148317560084228390186272874204584260143497742606777834036733125372917659052925249263310701267521129827121189458236805329502267182889658747558035536431149543635327665919914038977435778506188414784238993336326906182248075290016300114798302244540517864067270179142541303189605622732227054629986499967306366021578498276863596694031442628785586132548729515048099353783586346581053640018743792621210367787588742874900442530080071544106888957280408213538509406028391826447007786370459300281030548050940615397589547016145764831845214310955336810408646889996957506695467457893500213413036946253738073923805760968211071798076417429192918840805514955657862694393499970316067592014008233425020866827149346636373462865261887946037429067482407909948714626647827135443524803233473220185436821156594730374440048332872357095793982973039911133911151799664110511469132251615376815547711937257398637160261711349289033976488974364325995201266831323607469114841713567491572466600134070168018742986655204574105134486965308344857778008635133372917980179812983407707271880785591716428680310147873468768251349694891919973156363869943130375173303195429574921866052588828758563306402203603694904030906714215834839745239497872043832163859594468241902955449482251366890757888992806874134363011796500507001358726880801407263787491943037949307920423164595381777489851882848283788719556999917802793185135419646396828588950957900289841081155928610048010232183657176567777669595546745147248807470640263498986233560667898646257993289875859963746213143518206593888808841189048672448509769780305983848614557749559925456246116571216396686592683840327011175561734153380318300192223640915784447693310210260110809526857099322376516153753512512999686440228655801908073409997819013535789255262129792346386208994045305075701163812292990701533435747826084812238959079550857104157461627718694004238076458572238247369626426440523702054878851986044723217407866584011277723949357735457214753402776372651393964895700594703084254819111307904967749907034154474560647630110461441653946817328716072384370204030003280658031278372606457507325240898796786620898346186524119085582113757420143307143337173674788645480399147138034438570862952403539161435248276293979827762247884472021123595804292867523994180996260416870232638387853387563745404665093287578713668061810781072182907836525796114798420021104328959472886407660719874307586012774207175268146893524058999133464388425880268336808025634331855637696699189856396767543869250344558763008503127017761117116865796911296224441913179315360422408240217287663416116409862490480462618437326659351004793839069929176492501093565070879451933523772088067288287437947623865183644466488216251471007939368753065626666721496892871718969108308267304695677015620408526447693521733343936693608305266866849077800568759761268998797158240642603976545315693401652925652522947141771024631172797705437393256047269318877686299324471963670745786717827634916686122973337362861059419662081486974198754806920248979197881679400732445385387624034466080839062296887372333395626136129244261419012052978734144453458484160685379863614423777690219219510496827648055857218849515051825046498410841277390460849379871349399080314186181276589757016525531804623974925649699925982379984619709912309310115145842773881950811978679678676538247034938818355279909532767151266597414303713577717190572095771785125823146912962086621195789912362081468990687286028802375687601839093049910456674056894618412152919966265474678584676616995746588993924938415486012329487987825461169590144752031922991278719741861248083084987859665402079558861053581487688089978612205048919826393557530397414043723121653985562189999901586976357105723413026625609399063856373719564015011247234133449130128595889825304705409797943951997947711382027798667608250145028673328363513145097466475565723912112711387083683946925104835606842715150478813118763206471811617486583885361656672436668114841486521328591778520707185415836652034587136037513903196821491359580295635194001758581338545526245121132415992437831352753806412300191920521425838479565135365697597661960137543375892320969139412538989917640017581458855329625761576567272111506290953892285392410949076979389494700099453899606168972368180468622004457038014143432606388507595436781360256334605316492569056030198468522909191582953621490484707641001779965410225296235966743245664507798874480883864635786656434906860191790270127356598835749637804565519634793818122893469509974625283730966956461029906486968831395965345339335142461178156471478797470063477308714233982100976552610267037755438006903519924314783428210243296669936713413545937055952313744874503630770291208876138265624408423527027948165168497052249070618709823246539991056848341954088914504579624990355993975477780201844202365921606039160470751530271179079368723955977907930658167524820593197444284025783089272414504317108420066042054844912340011946084335991376403133575720562230265095307293206750885894950941798341157407028166908014043605722361038883726215301159376422126164513316869266281012493801950590519448195358249881792492356000875483087558462251727932503482901025291759010592512450064414844028396943570832393992135298786460114164733434121555775967894804717860322156638209145127974426249785380313099559679335165504478475161877573126207680941677897412584056853381801753713809503728868531067260550199362043554988203728189072964306477683291898928852799924128950906257950086459697261971448996990573018050725726619993821350759182418462370393499417829220535909777486170159514309520387880068470945697759892258620886213629152451781441054054637695376315870454633899003205641738278098673877235830546280651397734286279874171297122752399634889313923686323616529054580425695429632527134528899600412639766413096696010560487930739593600875528949580186914908616477667277837857491428504615568234083124090226992815823217847176669033591862458166941851265893619429964644389686215814026861142425174926857570342376100174679789364706438354124568339848141364250661265774561289149187572112328116970052394111308572722884058040700283808602719926931455092758214324306848006443245630071895213112387432829065880705204400203845701635446219848466796575149621777969167626001953862932268196718280077759659853549171757242501460758384706993633017960674940201483826789626404531886029244451178970549497711338552223438401272269287303993362664410008742088301040127614225665056591703018592963229139923855338012175382399497196180681225229147445421088791255463064337395286740001625723850849169329805513968854652091110822441721631809052679236809005842952433827534044465561162505984555060650542658956197697022319034894088992812628622963200410837661901881631585844678760996605017096290469912319215977720402252347063087195334225019024437924997498876304789833544599913902715590836895472969268425911881648659658135612103824125506684611259380589855838043063273258897372686416995144497826293749088323088464382174380261288595652321579818562135705813668556052152615621690188236216081300631545855923599954086824023250819811195404642045290285252983629743772139182633276656530693163231390663037178333098558112614664347477038275555893790229068561458016206734422832171863377487398012208664067171339410639720486386089381533143751887316553782363211713651220806820947766657386542054291377604098350906013838432354361393030264735821622039539126158810266801006263387359295899399315863540699730482413417572209198891612803477076312188085311311101118977055075975230874149556921990384178047898654137921226164382549919395424159145762260838532231240132606431507885079265863695886841146002972318618078894423657840891200808259383887593612257120918914849151889969825383869190867668531150482000596523981306785169326126040181472821188102370572448301397596124612650414692285160013367075209124024484299448218856946866057830387086810263098744266689060403127469365290815464920609001058842524711475699299230851188908076984071538542562520532465311051844077393791847109268912480581964285127948854723745287166980850004999960001102266605622015338648850153687589233920003073560557453675448509818204031640807801106684058978997690526375434164149360202874332044337725480111419244331800654081094138183217283563349476857847915165864316708688406934914708578683594421506172096660275634100547064243957251474371920010251130549203861880267450666850696220039902440320492716521685761714217291464038862856197465854752039414184118265826686091592129173814197988915835048672165007252237901391449389718878028349557636661629910775576790511964383391760093304874145225392978236667938664193703812826794382979825742648811429371335075148869015111920602143208155964548714730967732689350288829321622694334163662039025552832341853947919434155044963459821347428574715838935775533052619409116376856260076289018586964235900303279791828515641436364642927413560810790854039511440022972167634752425549375715895584253023072882073826122844682615617667526952081194962502101958027505675343490281583978754517987062717980614866359160206474814973423994794211660700272501712433588462722799161850642666930303009700451789810684265832555411108803533077535173066626286014003342486006582439947973784632678425655502259822614383840791781175777426850285832225282103406235803135389607261041572821471247282535729348076439908963328457521334950309678145149538448687904242312360588017588342255637924190815701059935753007066211489041302573725604009072650486253581064315849676672321086934508544526822846046967238624025641831549068278921423535946253026208978322644674801985648094304870454795066391973579099340277038481186401575637653556556075618100328436362024556870158401718566035816895273064615574289959582312085252554963644703810870910046414331451563684150634369068756767403720755883903926360286161888342359440433358297102760825689275463625262327868658247686714311728749682249761509109120700760240741404768988897563824668520592917206871625295082252673982626474117872424465238586278427055822505255461526597754691466188896825964779590803890254719472720964765931648716636205687324888152085619360931567868623858714004116831709537389661566746189370789036172496677416288329859627051130776926621605573878695650291561345823027009917497058895803884605679521715898215573179052340705271704365011355493962919121408441615858648556938168804403207810703185858819022758074025020634847275048839729985236241330023099313005172435691899031233888731737559968585404971982331633764017690549608191750098445182767253114230462309223058792934309856951967898209770970936370412466407633047293725544531910972081640614782823764685979490023695280047862031455563158158682376219262326735449289029469251625080654259436693258922844054124426512087257318218212947203911718756091804263439704892284121260050115211967794870949416172024788678128416186310075550078521308387686711682990644291815098621914698350225151793641085700608636226429670101518932833200063812574733259448177850869619619393468084277857018033580070752285247008184714797525220673978379752701474065276740187073784412104918141642922902559190936800173995110519948499588156933531709047385599647198669451669162241561568862629971999076502169096100787638637721768244045563842112184031554511354138428961695879831843258788212309426330629275620026147713473840825226132061797531166943764510760535806093546957689060778893071692198168431670201749680988567506223679870656123467786602488579469188237410327432916717898945192622994680744577971237971731957018705924815707311904610224007380051937037402774899896661020726554689031062414916854399254618374822787417286508480000814610148467797657241302021189307048587788799390157619766752057194561848250249225547509460791635058638584782060799301898985814144063386892182203210381948178360826494157087652528197234435584717937849836558376174573465005763726604284433748940406906640111629497905008523308715875469753531185750058182040829004442316304100711547628218146549602492406353904263326072208127818807961375199452490549774339673856058025827656517042909297875655400334245188594350096141049389517590052759400113169112709033492429689743844638445018870897231830992516571027072107184547686003355653312471353963915149648613812781957358656538865257569236241587511353432459755744426024292977896951355393178601412123850747762971852659448156604248294751885607419972391494169788164885210667556246188487547984897975689742565489086439684439872768293209492752206782922666916844508493207541108208926116257769841196257786912550450971553552116024590033995748940221202798757491951711148423504507753275951788519689930172246404643279214371780498138772516372362871706942828910171600765284289152477531904882488090693447552077946146750900772280482572758577039993604318911248094598150665147573232947654644228116627708162327754315271518725814679062469649152241725439214913697794549300969795524076656477022775888910014850907975591278395969274873046449491752355414342028229425657938991095725364814920450986973417072969355905531343204387148699345066063447235828820434800098275797942453877835043818276983410314462040330101345106531569937543797803618370532402102613097230665384279272156102274973251946156984001555465424613127734139210496659910771024949174347238740328437660448633731949272271422534838882912553446498013013188876780943192744019890960469592961256242344927438994194038894118046706043112471909384293047656083087386848505986578033156527015293096043105042114500098506224522574144256161249086422407062657404056804006102803612049234679581340327277197398985462726146545685377400251287230240973716150127649191495441889632795665694001046967579228818274062380197152236549821069047779638418922344915322977589801693557645044367510307334584434764642343552806214401081178798582810611864398540808234446982801548925437164360852429010400971786144152299131573955574986746227413821469538434165878074602054035168234947508379286832663990208071990834368943621866695193548662698769017033677672922714195545810450562881061840110706882520317500580557315705183345721852206325212274133895644455693557582852946547196044802111661429457838922511171615150835493231636629059737381381386865834931589873134272843555187492575890500840907374681415007504311934282989353827316724435363387986028545076408845623913887469048664248838363549603403509196159003296711600953031242632600088957576351889306469812350789728754286990527347359234676487630618305588390780764791490183455441100588724690559263637790245631490257048401683435074769617347444081448773749309460848653150318980277342143278504339291510761169140245205247579244719632001450186790465489531573335938587689242848260269876072015924273502157654648424757590283327132445899504520768795571081633068726219026674669982696284472738460092995459365818328760786835735447012782487647714744758272325235887038916822193087939265295766328263733165871191071046476196429743959495068214324033647961051604732717356330514063465065004806702755910841345218346244201930228384340288442067678411906169180430811273804187187064088941945458118989453399750302398046258304409234076827547677947266932832883869029619660860348135011080954118466330457097308171456267833020540962403116462668931762714857906657082028805025261827962072470429354287026315573175205045474489805710259708687185372205116566861947621531204918095242468085022774494278347173227458084526249160709817838552843360436874234751505943019461633188061695476475173236904403536920502027200346211579261985740755536526951890772119394899049134991291407083018049186562213522641274255246066895799652940058524451834878785806258172024610652248912113198164858451736370294897690454783734593073253309143403138969898013786702383215818517676862484450218631895742330373328098480103330483553037324272982445710589813465769718148339622379595210572225297162472817654458881622358652987764474776963014053937841485345647340338921880474640526509389132219364165476969869545657571217757702479548877542581653296514275227943654863481438061699595617188269582788477866527437579110667438156714044859973926420685226240852711887735935124007287079000709241550193749327521150552208547487728012326731881437443078582494403892978860876424741020407799726957256183968873709307069516847082710388497751503032845897306180559763284267638037852837184024519956526402967700823535006521190892340821089137874518093784854197736301426354153472772905873361837568349480007230053026621441764828452625521487672772188287448717121971327416870500409259280294213279743006768971188930733441606301014258869350231681663997676902638763138572890399677847357687870293655815149659637976879547327479972979587537231648433397060443635415781200417190910019169782018586353834438247760933321512214260131852713785916379555227023183619213128926799995622732106858660628537607216781601942259807804103960475575693938473335343260347067609764590943863146154023457211196015465985318204490244546172867101432389007328456841879538167976772416551435686588433403378961777816160645752718402320824831762231882474562060857565836679895188659217523342780793198374005465540094342583682639341698700604127468148767857096955771002190328555439751331542513202555221395737583650871015474611486897072791530815764649518471704480075609075793545451968720258480184014387150738079606334057756312345432710743172611055990852870470321810705967565207769774170190046691581597017599285838500666733812735864086189443244629879367959439926097961143527860796644365879600630331296233486162161107260485138329759946024477236721480717586299094561791721142824246565677746706711931483954919695669419099320858308595387543700356780550856419768430811951414564502694155066050376079549741203843607661616778869886937537890171927953585725098692317259983662438007842371307921130165408024248194382931298736193923127616539473090767720958653150202105429315937715577562148251297554038981053149897738066522300347824871780573059807241094851721309789133568246765492982952715282119433039977913336714990789990936906749344679757402790006102758346906643162302769454728900103084741193010734393899171442068883756052306684787199675940995903198600067371511393712996182890230078372236320149052345011721639041715935105503989569898302460269450961483039662642377426784837311485145390896030182431228396913233788890443497264211774789634266415018017636408215233568691474205521747853416649897838836392018128627015676207605104379373818187860159273325030552418608355982850130067152381786536287390665266524236593072331631344572934863713149623850017503976040483050483306164952954994443063964481037936137144259208487280221789229357263367362192486168573286146292996496871181201427928706891669378765353923226986731284839999585086890927178357427221221542880332205942803922451822206562889210106921165531122762079730187501101545658264349250049259408335536170723768131874963149172632094953765647086875510102265148037398762199674772074054689475442838461579283764180211495753753203836594219837151243014710921206325305863614787807989702643356639307298016405399925794445756036384977176492581192279889832642009114911195062869517312866275909055022784230683611665789472588511301548460972593332469981961476724325540208110975854688421890387270007811898705992786191793220883127144989162487761565622063531532069107202789218300880250051507172658872307758035455421139201917813008675628375529157103783100947257073506570126541813204756622272967311426570277448134675114536557683557849208959572644637988235057731880645837684038935205471126605558874439352976445759817559473355061438705707033436021488651061427278466194281809031231759434099322492360547367203925839677366056091147434691156986062744749431708134251587320275046176646836890380860221598496745811580841426931886115079555827971880893309153638806195357921709467367345136125600910455478360015255832881441903379549376554437540327379141784635370132435311988767049043456765035360315549623110363483310442689959169928225105401773884864459988273410241874389347494414669491193973417744628456930977448485673192560120096811056524700897138182882810541596090975260212915608416099551850388075893592823718531354428765173073152839683598242215244442980691868536266523266401953310898350667487053352935290783753816004058100741073068949340792452013251854931538089114780689507098858753367922620071410253011686909814089644888181643057084177451065537064611218910631003086960247958510405504902070821292533634028062992042422770910682212448225189464337015246385053885574389458589844123411535388832500008166540530032878291937573380833400577653310969528679864474633918467101984767129772636030210920110285199324063510772351334191388796143437370480372863161707813797226918381860047050990603426861319957562883397580650532300096661436122968329828047359696805527363793879975039852467135514198508611313019671160554793068322273917689177157949811351869418826974061860834323570621931086007461345439249234704519022644685379006276420592344864712037502899472230863939076240769790592794214232846814192102544429453618389519457012688718619161107307516484683830060017740143564535599319293610294971586092405971819525235866940284953315208360224194940799595941418766124870620276034247528948937449030952254219840617670467360194969539844044724862372952898265973936027332484856259835611291821888770705094626354955354903237721411760478679295469556571658331337565940939648024849418375862593996394897564837421493249896713216391677602121420605889875473246411715405751339800907161080312517769527647756927441804670738434858302640255805422161245827745650328834988062343092392490964271159130711043740278816856860298756288982530286068569126154606920530872823730726972199982238060215113982377941877208356787053551296132222880129184734554098022786535442251573804988033006294552698106359324638237076993912287197854412968912805005550216466952295440197490676392917608607488957357916643353807310332796585021330731378297716140400240751372809584077493662324490728278786506685538001201012008538247567912541622551045621321074065816601210949428993909822681742041248918802504432243100959052772417599405718587682916872164268460183435551692743009105618211361418559318007093774954276166685150929962701463588028044361878192650132243680888566911973262215421141367363520751878194750096013084666103830645215173958156346170096993983070167956980973314833082237556986185408806330399665876557516393508386460400941866863893855869238593395059122088821799077345926682295220090408549443362413281570490398274076047454546742384456380052410836474766136161030808386821413033289799726911152868327911271030899774106096065717259431000590501679396755079066686312842405572873015810866126141096921018142452683330785733619769842504700802567830612882002225281054748121559833068041786766024260235200055608887488633428338309950203665213716350072853894224586779987101914254595972341967585875940846449873038147851427910692450421651947855095410255218277347474010134128775633795810521102171133467965094560348924207940741166567551237031727576194777513878295639966284302756608889779449527719875234758047796585427541455238607967383528451591485731675000080679539323770927083447374567615704733816566576792597701624214276702148065872117774075598792721837012869942832091418642428864388328653976978780585134438044710314300240698101875079552207415142346209997329797154573082663687442005549167728872895369886300280812981225442309328423871848565617498920367410501479889380001973150539846247536256307738037934610122939573025924099483023015655308753983089444643615153017817137992062370773665402664102999553631697773450342653109131537093324812089956213874248687647544424141705900215673837329387571814138607975139482519187392319103801899292644439158905351361000251655181604660052404710864100091720875561315907848693465295509388562747120281954279768819872227293493869817069225776398968526169853562621853461255574347718114016272601819712202469130938982311475617373131242541996405561431880178235146944758996107292969307136011635884499589711850792626039239766881061776599571640404804968502066075925602187214175380201339208963655248025841010671179582612557390871560763239809070151124874468870058726312626044187325753245037966810220694426133864631012193639487051553275086521325261040622617800773708640108310751105133519663879858340168730556032589848623855269038506453031087434305231631025730003562033840710337557124981863643920771357766187989604066675302103369577955526698240994410944053955721180133991095036643420479499745368648972669735485019567189026429401716622322997248857578826909113204174410897159963313356294555096717133829372348163202729660184630656446067959698701005122299843212415343541115154418778678094503110420912061279999520609281223065298431233216768469639395957490743604077822506219386542749479375865822939588841936502961145196567522279017639757563367430393319846170151017507103406119442629098569404529077628274300736967988053344775700966396989933318307291214390640367271870767121433087833622589655574874995099633171980629390903428208584442745219814513293131658258248834473699673823329860027904292405252379956783184830582190971458291578503515492526796688007026172798398356013927758009989296346061653770952124583009563503879448248900724699782731834949235393711579197260026701060803298501774447977450194696489718435982861229920836595502233502445071237270806537481179384923219496768406776052908315407019248131175150532245755183643373131223733101212264911761615730239166331365097104854953408378973043783998709138188948093247460663509316354473752043526648405946844244380758664643368410670069723496314746425663993753159609661273016362091952044254692013861383854889321047820799567926708732078097769767305046055556530786479540879315219671743257020875396442086942039643197118488613670788413981496506565399071833262485625696760890280954045492399015530522303690931985857043617462968177763192792010852807166298709977994368570771132691968363169068995490687020406923292690807695893503844603065545108942257687240519540385886997042185716558413160275288517556938135758792574445399159805192690172612324522444697141487096190768665905919288320703817831963074548223247543673176799319371998458171603943672554578990062134747162435718211242822042598061296024194667759101206753916019548222367883209112528985504124926345282545004990528986796556819392942603897034901492148698521892146155089148240207277394238012000989934734915768270281442893980380739781545453456255825855974905939878056684655167501214589338727260445050493246316860495470440250548677765139905259744401104830564810671540434079856567910479215152834805008010643099836267497454076974699915897143032952067514925666492061969310802065054359583481877711188146083836433298955662297860077395815544758382482264954136741992713544524963261877713030045581675213474038741036218064901883000175134844033741551860778765515329685673938808734681130781356958488439872785711636235140243747019864144676422059788447431709408033190079663779924730727647111757041722135419169817307435676049879696177569977479209577207959836834836210681112683556310200871096936520754407027480277348506779772079389711292846858723307757169712778314665641615532283352194526513484264221409022176878254694894133508698063076024577348598640104142926470192292307747192862797202234200452908584443104626054852551946702756788512458978432509673910150828609938800393574829438730005119162030816540708218996472208469369674322678400632335377327823901340969959542117850231441985004666592161541788008498307475950008615550750407780859502630449284449896939080384166581814643817586782358981294394634707924318699946291356989692741980053515595283773016194560291591170191385921974265090466504632021339932007746724172837287907149337281962656021825893974220082397186119838231986659989547443526048329778888385060556743662042949169461928154330164850286767743831215394886302483387253044902133916665705540484569852725221502376625826826667743474581760896784375425195975579921971538461381759971352346267791916656890753746238614262087204571203810686781692791488954398264579046682305393436366366472445133009771849727480786363895703584611094983913313376982036141362533097993895918575877773743737297210358047100100575547932641637445717065374813484092786090975831355318856819943355396322718688285660903349026457283741982077091655045783136317594552689103496378251697910422641394744367879685584730242199126099543623443185150357368574701267255831970354202920419554165157714193461263260178081517362063676883864448247169139653828417787175288983690120109737096173751205921226665869018260051374039889251106530508098669760520706986102131599384649368240970837263794461766711392605173790794045604661058876689165982526385493207391911629110018939819125008393289998215088869136831931267328063606853846320529538818271815777384734718747741480338637454472310132639104310861306764923554365742665848914151314265760122511161165597712675215518026603261995766231158728398213523747385020048068053390406831905873046677119705967195474961487271186907524123978650882182932281796302080864849404412346523473360876220398918808574069041065936608882201824965778284924950589781950353146231592617930717311511140368023395617294302732526321969838965876103304937534092717596926215746879828390352491128178247406788041401430049657185442476489112693487290464750995394288062379666458908263474643062898243618185545344251648007282930718663528629844210730684552600214735570449464684572161633362063861862185140901915673474465027589267940112254205173967025345524211168485842618797983928344313211618336362240721647778568382966938365188708328889489397453778526929351796371039744475784191530146130573449141022025855664579166439566222590833919443547239623535343858984459527049999117996687381995309736724167779681879087937388711230091142975625948773602131986308063025898454864819633462682932382076226176410344503714482251521066661801009297237212068603513830950182059170117939370726555300624298903601414951646148481316424055514435368369515484280568899452385138497776131030155633408644090893379907209982632488718217984810613481716825185623006973545771958134657805087151314222686333310662530452757072613596635121978090327242885546136376582695662716212891595836355632217819923149388152629237641211142117620161520047962989049421780332133953921962816776697600046909487835050227970358110242857225322359637610799301340502683303778819971396855914716874606521626192041244244030587842467563550539458647856536821475017035198136981218829377359815487568893979867224083263231629762392207493616641134061690089409196254991071874305081587162602782374305947175391656234804850928860745950745715918583136723702180900499005754371054889136927810192747143222709201948372328016811300053845273088486588235044538876111196657396250355600914703451228783257777596137107444342778916304194443945344592976989022539679752946174511636906467980166799887257713737878409904911679661151377256778867528578237493006871141176406592266271841118025076647368285411618872715759853383429672092050546096768555186297842437589221982930781441605976427881455910293467897936864369475772422366693687674543511603700488995795710364486652406880123623742283630563890950761323794672403648042529548510510341894184119592502679986619011779054225959844449346552250417200881384378251239907954042730399947991753111606676644999728841757845379539231682371494377548133585827780705696026661619511373630744908827855392004847677942814731042706587672225932986431617346710935201278847734272718596546889644168242295028394428802911679913969266084485908359862031889909261397165230266431535167457457725792007954043031375155356179338258329766887122835096352707113884027590492774730268591435964624002927582011898700687172307679974230912429189102327917105874167230409379108358793910720294690044004548730440691111143231968092076946878008593923836088966075093803231042452648986320130650297351097978112346192564396559489266257159026156709521445936577472534844141104700470630164576825151211770095715715012300647616717728334972471287551310182283437640413363401060247212543908131294553856810299646013896293953365305040737493627954760598373659342278614965126120980197098340856462232280090137604619220707368921266314510328376819935878461824447463834323448953009815823603930266315912610930809603758761878088975763221338150422173919446389239015580027153673377946253354717300135455207532498216472438877102061906806108227590124420397249078014914348636216280121480666657660494377648739503195215938653895653540299568255243785853390378131170136834557247344884781021633053626890298868724696244635280589727864883369055584761386078993654809913839778184140075935759703302568867345467335572540463460155839224190579117770501164012733613743989452436127322372934399031120561658924948021286649418596872821525901245413093949273939743550634887361858186853498913204934456530542910813107635326841068581983591013838378810459127666433532413632815849562060036236673773087528551061828205437867068615992119783899875192720402149140943249881327177071745911756020992188025502469181147113238737444790029358839180408494137845323959179192831720312109211238195473059394821016090380415517433118293518959454736376505414646823152782719683058734613873939140184429732357291867436197254193475163264181237052149999209753152985989164824433104148736935332517775317862575451421319430906189538537956732738603920462595641993543629951440352888583096418719034001801990431502589846244944249499778308481861905561078304798540508867484430471496085013354937092642920729050388958737201311536409495034764219255243592916976357746303737993298682361936579226109694642356215618691492577193011175421615741259105875160843013998069871862415467992274682450409361345183534442976589310706847554844182093276020589927570784514655243720139511127323999920146051522455350508671132807580062559799979929670802492067648420583432963187352333444300528509968763742009655172321464561111335963171041884052534071544794059594228211900891259848540544453143051678131212199615136909228994159748290917121640135829433131226488599583165156261074691425722172209441279931923671923180392133916034002777016951464353165081569609209914615735728188209790052444639263611887629515184441926809517558618282548001311773813310189682074356307948689362028657001267277377808438793390423483371028366012215687722880966625410769752965655530915179253281894178979136795970908991544262464942102620394150854893045949263202144177761931876389260979686374094838705053722139505806322284160447762366792471256405956945087522608258392659860186631633469014639677014771537435893347482865878360708590681388668396683240774160179972039057514670946824821097575684718064884430947956582153429169908715860612576331741670287899489326733590944894523134007990526704469279503487815252190909462306258814550488416690055215638185016453639358429338447718179408836528815189076699853596685087560626274501963733987985503304324350121942211802909623253344961070299399707706653613530807104210662150003614637227348449716992859047238306119672115198953137879256487180088417669797929616770156903523353269842088410970798255630450755853583011188296594673375525688470463781737632204528123133100535821090243331938884401530379975895988476387724882157352369716576662787056204272478922782813840045672846896337035056092243349862374081831932397346869319186524880026839335754025518502510945013302656626872662178182054096127244698590287219361987909059423234096715282169521019610353424263751817195451097656003410506461654453731247290105292312712925913858436501938259859146320053682808879637858225113496957540681904175730459596507537226079270551585359436528354687429571143460953870421996495101140130472367009697663861211143820596707833442194228889858501583660160092200196219269462777117030396005037914810346000842425249174709106030133759961759942819164440955899401272925491100715905796491600030806857657875250948524643718005755008256638899984227052464287833289336100004626039107802607456936535304187260507744599624040029063944848893557924890800963837806739228578060897110229979807232351047253642580342687243623149302665635488124958980180747329007640368654887405597251258254326702226354603057621576514684310032992395729999230024820372908661130735415472494405014892903027915583623256391529973710055553380596107640850518546841472248924089028305542550967867550414956166222361813847028372550112444076732976810571594261223102189962793573500042409560394564704393688039356526203189617134330670400674199126248548870113970197781141206673488006645608503804924870838121574784161482000456825885717664544863506855734429957464368381757029575103791629320615645874925586943205447689597316950578049119431836481167047726410438862216284089918915284679165093064092635484681851382643401435019069822557193358535021625493685346777190517963654557017128382963675701301408529933993634151280410561426544950034403811178336537549163627046737174475538107064425336277871699915013518800414092117585185173608531813920744895284705835494637308640473977136873868585551298531076223273212271368284339824478680123749758209994669387075367303467601143700587914311615409222371036693693483797153418621845462122489989847003373555547186546612960596387058750704060163417900570000673469462025059503958708188921300140527475923902797705843600342493729057925757474660929106262420054001929756763547218028839605484112989256283866005969279658563032491401866200435247763283808246218047910735299117456366430234611466952989731813781945873741454369229572209920860470228136983417094209865943746207141871431933706496168192656111096669926070868867992563819936744039643955204813706536804847712608100673158432041934895979026640084627101910847276935570174813994067230132560347306447278419109444952962007506690132385476897908374258410027536781780226887701779672306361603010620858913731307211696427515041159328599670755680141492042095885565643234843499105096566094388992084572301400928979048171101978021359791477681990259817769916331847620217402237203951192533781557970512608562082951272575139021275976145948571236616257487941643478682404026073554880878267829554224289271069529410766507818096353250482718025057360247373829210647071303782457687224667465421194311446805903034081393155262106331207002634759535236080442518803508585379175484034406832928919467592924454818437842670351772220201085842359741390163546621695000137936226171648623297303628296662884347262629085905320891700618828081693956929006154917200327266509929942452213758240892407649334395774245213631893235911517122711701543798055487280594636110966364656078329411049255031538042104088697116179393114123607380928121254351174448612844968254441874974534662683268887811585481198997774105555565988914969885179680955969104684159316229258951197027062406555935277509909068530628210718622796867110216418691843340958530460244451484668157308656641316464750943123608550510018741729328994639347001974010959406990444852414983331887300896894093522671487579435961350950762201911912350568358013659861434676248682948436572864843273236255057748741376706388114910421221470468610029706701051337620263083850716010659480048520869829795398404909749927648180801649127325493251978310896748881008167621327992669681329591635317882722678161916328469199809964149663635789660369804288685574202729108361200172391559274394294268480312850087912221400255975887109023498144007753155400114781068670089073717303719643824042939811456712137131689639983459918609799899618529668640357898450422584777168447863646075944351951354599647640680835028165113222644709750156609235096055981332377943269353929685185760003591971249128458312487190277989328120890035353933894306144579748769154094322438621902826109901113830739245706517352046784992359198464737143566874548758369568419467824888197035465953523316688965413829888521893996477040154108817130758119758674388364591435831620567551403250085949356493925642999493487475089214641251307621832138183989828727153323277305342599455787210359761742783525794818633720135906564165265858003356002801330254677248883986468886994238549040576948903568084775916143516398417861269205774073587121492335583975377329192864922535295440694177244080586181359059974028397136675712226241396850682243257782252964462557094789692749701699811455385639631822591852129990645077302559085279260505556972047253671817708556935719432304459643277599486664389880800027807563320247914650453987640824820095094399165774616322578757148037591662556259144195086039081210438129959277880304305659079625961548509910836831407628552598454588402246984803498191914196454772409820299579320552901890638768888047688041089557775687428726858577291049047657356552758144216990970410676217528336309599789427642779160189005269165599425509776942576584568575784325807361632404744639052539352738035490954558956151661944164333478573103076149446341233620175212878388846355586015693249114015648168430381422946444579196725672173528117261306213525428980606001874003159571122826216810432094796958698002835321734810456569747953562078996638690029902941308920919594262123590349120202077418819786213865989355195800205699114352172018913417465171633950158872099807916034041587963956400646056246334042391580220563136537516820106533388941214374719301812814643938529513455922321167692042326251488046518204906988224801977534383120312505045139764063169349101494644353962629343563261684868816536151589037227606517143028324237763145746322024825316022772416248337437098773503676321255097020285281808516399883436180558770631907334065059024677547480099328393981743596393290399843429523320630395333274481730873826310196237989028505423393167527684085556487292160265154348192896216420705557291150563560180925419958498770252973352574405990989273667103863991963235573658315354401608809337307802649443032867897757714779639477411480910041789227756826978843556904180752410868087856456144815588416846712062259961274851173675642076477337459235796288851476455507709787306014432472060257107145768596350601371623320531856104811590500202096694762182081206334740117601834800999979638844647972176449437992131070965555019083730194827373277602107676276608539908381330121442234118767631684687907091470363460242325272936480033239061086863919478091761356596413009592477932648619407583851137511697355359257645171891609359134154976662691848639789424993279204628842042708827168475676188220189151958084655183150560303551728584567010082017050175682073051682010445373637001203260655764970565565393379766249639804148855496728263079035491086498354023881260495113816273031619543643392701936255187507806538881834490214927760280479540005505725982023411466653029305292765376275962834363914375933898476971835033560980754563252625175653686544644061669149814466602098979023415349448360224710800558273228764698883974325441712932534579282278526798148296169748199370455998268610634050538063852337052848837382480124243950177235062561059502562827379805400044427044848299267700378868747564788746077249487311110396877204204283615294031109213523780509590229951994948464617318064170188171849153533791513050581284994075784318604181586245898269734543795962074082026958956090723617787873188644728043756720746342087956576811923825087292681659431219858073390604846625503395369829779598009821211443162453872110392886105411482229371326628248901341203593263848113383592488417215771591819594212671879332730614654331044086741349788517806715829392929158038018665855794233466636876268261139661705088181444754713369405640774882049669762840632374416709408925124222588451157818182109121807338556867222741697744032526514164560348783510532217176814906495675859493267095426197743339266295620323188629138770320092917567507426785557239104307646126027122404903032440427852506916345851196165158050681419226131121486267889075759891108680434094571895124971001787655425085355211774665875761127426132425952622449396266399202694025493039097739219303627928660343073179576902065578051814443698933544704087092268953575311500283791560527997773349508309494660970238638483402776715047469834994092790130376507829816130150908109886200639716290856379788821665235927670679215180803305263714518470382478665379201145141699491127628103364756527238034670551120480609087660479821123610391284015217460996194530292935213635755344217876323065723267076948164803931835578560600008576804781300239024441958056235228011266601371419372096913386051365362086714426549644978403520999791862734948507683655788326069288430827795397395833297421653666121669813623266288321940294187067721536817753056326472922409694090464692648377837498434864073194194939748702194093020617561952797647966156729516185988206481404298741574569019201384356803583340253989929447810746722162927751929461547128800590286334984962856133567253161871916424391982239167203592100016516059658249937189960151780101678457547919117950964501891620353992360470832505519210928937573754185243900195762842558160048092156349685348894981799137587289215915558395402391795455701318745785419938169027404372819034512566771302034719379057615125893076028252141660647164742186362992298499987255543099549591877962034300176078697525546828728183592834067866274681717642881965723200225145845685969758053305783905368796382553430489154309469301494377715913995462785158304470812455653889820301796347499541782695095212327023475875472566912380266226021344489762880689940168555062623098524026512824338482801498383015371731273559401033856986708019238712636354965964544992552880632229025785720573691589211684449770223232340771739469822275825757644146026276875457033493347098462868637768705848949173330248715801151754880140956284000456745920518883545661619529571815636367859697506039351564346396526827887617854631362978892657387242097804207873038460264547493122688538720418605735468571104873084152879806994716643840744544743796985821700772665754499320131580039369548167429719354838872113267260627187710063905958375784073394784420883150626047050850816680171625164355188386723394656186278619079829220236144999268832936132645960284273964273616396114576651752303931901315031916474978238160701927515127465045840359599221648169399274350236874395301085678939888203747205122426243207050597396278036877445776765265001994467216205954396023848983990900722558311225158010393974602279237332926900548160386211285987865565035277565478520083811666894231001110107063845381116454651573459977523489405409425697276773824592599608578829491994551096686848535345166639135280196736431293319623863820250183979483719110874063095589507698172629782786697230616671626014769033390588510221502793768645709138339282674426750596801306935555084749659374853360535807949917330707193135652597082733438757003274152387164200079565861218094825215065181555882685871838808244004527213429833609738794275848740877601772286281326128641427151330314897226649062420737637110066297655314888990253773706786253527732694894962034135082637716952039043438044235774829960332034168017276308342051141337060461833316035147290060898958012313019537171567819714775498631710098905432397863252234495512484067251481120337893150784140518948280875945812675908327344483959005488127233722357922156375034713659360670447987597982678408394457156499193598885181132309793163330515224110005253647802452582240526636166405934250422441095322054143851005576233149556831399585982987108742706595568464035744383997135704982829129977894780789058438186717464384737142301455611803498618326036649618917679132424965223799788368403905975268070813039518351359739664869653459104004255541974947587639579805210503321639773814314262381889864066559977093112804606956213240898686099303771070622099095668719662781469592501340922838729034132533871497950509888599067244031872392287655263944406877663009799545912726602461362960184299980507251962425535164357136876233826365172963546206802137085627520922450315718282922824209304334598375253488664633252989821598076112859650051724375917087494253275935777874018894870989343013325799009430819309611705531368870324483013097896764442708899788526425634553975157064074925517665238802300626635569184213488097464413322037008323474857676725040821216718944842645984381478735283079580027075186630580698465666144601547906275548521013750796424879234407618111595205322699848507378503828637208445878573814407074348724623649950605328035943023450991940934243855937703933909132020254179146386095544708929827493311201932909150046623260206576602662771431433895192438060413462993100596915595519056999698533208948623866587565889197150270220868956586042123579353159266302177624033924411834068033776691997157729430384857553438122187451278623194562523708128545683579488042325326127444880809610287698941339173845578568376148151906256650539333864846646941724243738042692443278685490602096071105994029173895439626268625091750593574039341712184153629410017349541932140258584044887546988669590368707632361883781689069846293613705990379341368898042048413585859532004205251680072142394020193364160847696617412794839881922673139741584871817021814370068016529874059240256854664379604463386157103012611167048220348265398033917737266082119853002531232935335198344949704720248583257465907401711107233792361523169764684094859480496599543034871388882528391358231580890469853091392571489953649139628622866146943375688713597230631865738208958188113861363111202933023401851264332761014084531444000580690118943470797715741339817441346746314598163181422086104534366956518509793182166931442297692282138057747521084890396778419094442580461394396306353856313770324776356788016179923177369193713360789632864057063119280123801850687324212943776752373433672753296271847716750780961533854641339833480574209265001018955282984535326290251384692511232651169033943959055858946794080173723618706998157267095472114339610833311536187179512159744826157746538810468334311201609136204036664357071726123969204054747247002429755642760487116281998070338338827224844212346157190970595874480127275602750277651004890055535770215451688565244099967641891351868924914495039698448089792099358197360846637509423448293189400944756096440242856003089087048650397878654720923349531104148540959992084364765168160351390131089278327719296144423428854829617076360619219171050177753097969517114499907319123867074843349654243653768617297579060103212069730499797226189548054101685121900263661173960071778204698864609903528951000839716911385871636943741746276597042671087426815381676060097720404645533594414445370344664559124141083709297998592126846726967727106580097657670184953785102618207488173188700286753306841319584745263540968661361222253462594075778480321272492839278925881668163404445250045038943469275550821879508058828420730835084886730674881131163848509962402412334938827996721996062642868167397298876410077888177322143454357718283340132070572204287268816977642289971288077577921424337643608345175088653981529492699447317998214029394171688726627462453156056360141324266690322264347433166407511109914564700396936618199174112658695437587090147449614380631282480583495989932891718756276666989825274743157081236463571084027986377336300266114636566018240993772103780536908078151642737263274752212784854984649387095961313345272186758833379191544655921600856463139700229707491241838361877853139064453932885448584225240885239567001426472882159000880263350158945395705413374169061357753097321926245942590989008750986066360150978912237064060224528484876139311563605595396583028777244986694837685401698441014368732779803056009766006529616738624723996284306730358245734473794604009906188012022051049334513930232082363477838937047571677514776551015813061177814245424560457328176211232559987865204108858476378424697136378133262173388410367595655188942192475200927922224454330230014746471653205835566447600841807340888028533166156014517524901005353511231747373239629823550153697992222870320861086746330414259228750578242726650154600815266921951302786103356442584520870615897843446695747695841143741115019192242036383143775651687389994934572071381625993753591228134116695855886416094262925649521647957537708469004109746226894176683883412880051157250850181200720210422660891701532737344440164221090420460372745609510041826154630155646916829586090474422893829625156057146459902482725125499311474045143559778573960756358596691032823058607182907335835945307689211431136162263850040874069461803795524271717650883633203320354920441280090219574477442074458299460522248600222574949243284690980997618740730632256811624216915858057081256320301875584540846623165806509580371444009348489909789422101953278349663237577383375019773757464649501668701012683103605110808185087216493092956315842860545154969508707791509808287208585762725046620278287907766979292715880052128595931414324711926167936445584906487606186376547856659265493116462197502885546546245724553658806280886181543537749136190432715918206565753892665968006361439596772344163093772004104287970615140900441449268550715648942396495342957507643415077482429171810678601362062438183147414272948215608017592529294066890768170711948880909707298285569567757461372069440623832056361543492712304657461030944817617336541049188346338380837523333610375289927632534928323960063678341779219898082382860421320859253572829112335977739744924247599906695757982636935964589009175540534894958718610493899708701323920754575538833683266886373468939774240236343977327929813739112657720483129044771767008910919886840194464198031640970046606484277210634221913205606143398472884211554081033853356792065815743738463417010126872376536750824007196501640194300581853841856589171967965043140549207619905361466810954442980900806184030137244188479339969041096590479606157084280420247594500119790118802654580260247720590573678000909987891075798173556834546911184202779746033302388625664200483268652361637047419311375184903628741133697945254994150761313687740173403539267001498676818967027958497505627605258337025792756401543912554103464152977899791747501730353218100463764799706806661970631994986518017370510343334883441275200636819600741385443554961574724484924583269684633483257435477820482592966457375595740103551958001856007542679420311363784306115935724965167649470787790143760640585358175230030297761877020082642022021801922681932556436031310290095987402539814183748335086754648224638641730660298610945811626608224395814416045921082712520350951332551230383056051374856893083291355796615515921077600227105399153347650840898997044338814810595272783175457286403611377285754156313026132557458950091873421397273780474290569567481696906111013187140412710348824949463262788114590934564673886745354804335627641086242499551031114810063305041532457571811470432940454625315949567068199799634508902792853628576120505911039194210678978063530451651354960008229602806724645142733419013597678930974539710678780891009757979826600746550440796551073319298128942482727484897659913244888698031877808540495228790887471037611623540592631126297148019733381596170644752822511601845284324560652611955857760123827604987370736109500874216479125350168631523833480413103690299535964807958554993087925580006597546659343136483637079467414453851300974732572650409798307762517719866637243862440513146394194777268152543808165744974505017899697353018209581107021907408856328056151055771631908527367200833781149472471652695572306259068711296715605866104516597990943169955848331372630125708142831762622495513761221971781645156674197127018535627099719049397006156378774821249769577960736131280508666415924208481198835511403513519204208502757167907232541709842209842823584562573253281429495886283337583557841608278961369191786283381770650478499498274821086770398952980021531932702134798934267458090970688455093108232697415698444790916413158755919084658216224610612225894072671154138442640948165537587377732866160002143381128245380521985501797278468629799780414472516573547368920798584136686897410471767324329962478938458283244057154253474362653377475457901232399326339840884022763523013494520224424526120074425512045248412751425882639178723799007629098583041391568050586498856389776173011082761754846900131714208429676936847460206571375909797284244371611853022600384124595501901568956280496639862631792624407495841666617728356824692790325273589599108019098557321089111307770576537944946992771425750940675929616414157461658351843393108546303082430871663809238631930636277092642603883523837855625726378451455151047883145403265916222844886161698857371168169934120873405701786741672950192699891667187593191216950735308613741529082335879566084495768261839289414713223824189445249565546484059836297746048763497205014167558442390781868654763180799754607283131076227425778314102308121550957050408504745318795660060704630301892419568092384812651653377415036883111591120316106312015303819663122266341792056220892597182715720391319717110371018840137926253261886458116708030191731720059205896689954946265363317390349076610621800324565798369449852496606087126671980186023408497539737200113501353221332929904615400788576896597517563902068378285923733208377459806983013229530280083944475000998494993995995840258712108111673281212576741601339253220533308171420309655558427659751261708890883835499890499788023461115105285778615942068227390387867238165967163156739345439611821252450960969542046598291965593070802066562729747796503399437043284741672496010027270805995589752322297467949354321418693832721257895128638714130566588551135056872714124685446970152844986209373297827383544752600760853357025990818425913741379628482174912837119364447614575620924471052763369373865529391549330580314144444974683540418811614055383872618566606661936882993867117847734159745718369887218519000511665930623224903921659935944175987940189721903079302732677724306341982160682193584038865914149085242177727167543748109171284816284019130859092228239813452974460442926080969925197435735276465543037990226701917155812487193300166904644338108070062012222997968474006175088617066283807179100025060328271138735493561306987220661186330883582800274663336290084470152955809017810207322481841945545037988770866562326510262579586564587330985251688431700776039520411239619723362585344602994024160521067177732510835006209966212435379092735711508390236256990297003106711330870283635471865259730507719820013683552342346474832923651474589343523304716118156795975000005883828605976940854496476891550307351812133899901706594388395967967584696239706907839061433617199677457027957565647308656167038187426579607323665592661350852814252844591449196649659695586425525860957060745022542854733148341823753093173423990223347575910017694098827809466492929495244669744649289983305050315535621405221979789142956113891626485948694961688440868827999429360310367552349530504117979763475759546230600713741249606980733576040678008746025276722144900075688985129665414962647184600547371311956691833711163913099611994392345849649129548150717301462385910745871009026113673677155163402938871390305761673341289728172769665168335629342011134225202623583666519421932211380142890402905624419770302529269887216219492631790918879795361571091231948634675487998445593012200302128649034065776366620438118032438990787848125456624593333602148884748560633424224377466989760872321503749021308164193147911480477107358714246540495389698679877403543285400925787176796726347052914390167987921826000687212046753925783291704726071854190678193465878213604751677124222984728223357422953275005445120704234357702173296509337104813572447667180139551780840699661128198448505000056857551310305712058683790620475549022637004575643817858719940268577737799693759902500677875041578990411549312041272840097538613819451044559710881270383774599782675235278294099780257273214529345883859064134256068577176857948496017828357297554442898026884690170421972503506158210059986085751502653991699625588408553169193838099214632628722818090463440877163290295567884396221475189267826939169974618246291131410994238913487230124624648691196394838015845806413844133908318946135550072008276343570919927869345093271331730031753985560886432982638938030802118253914721348819268687903466713826407770160655404241524687436260565384241636656951489523605591805670121233222461873890580397071433720806467064859033633346830689869032834890823680473096119193593406914510079991313642841670379184986872100863101946169473034145139475661149508202330059573693506377204497208569773736163496850219034320910742564798402581579009095687664728569462994050410664845517473150997480024007199299490197893726498210732284433645698074622340609960331644985246662106847151065091105938313583687616413703914616907947412240726415627711006375588274727241366368161170456523073772561735711189823206856694354792561832309118334661066247853017904918500734943857718759929992406578550727751647129165151689948329037646670402624151591186327544064021241917416632968487770128536701667472815968113653412394424479956904283694849386813064611283420855699146590544302043478355009609373335231962006805431885999711953636894097310884692082437030921088178500696970567898961493263146121731152509161784949566816891888830899337106408889264746766058725051190941402827901323461833028775853549741383581481871788805051966752715791905587853230565329770147455424101567680639156156546819548585437792526016508692373924362530356244936236101639372755600133600678112492007500803395573999746204028583350723525463718049360355837241094386585906067023356088031876038271124537480583097158958646810618570323760717251573516236931188047102014652465705095758177337196007949184311955413250316746510013868891323546583351311568361949561481057450616964758370847891481835154768453369598460084463845909228915333406146349888407312025995910445425664083913793050624549622864816254585220703006338927404327490180117674048619267238151582264838036790099679776074806464102100293748224576021507195280157608092825495377555637425737149886785818949353922513662983511843112776253247880488413913893603154875437230131368037610833942954230002887021293088125630599820869220969953159866675431366272473929782638203278491002404328056655497043104392091509074240452340299036835267356069490275186612472385031836923800487411121095496208350595166530013324626823715974305991563985727212854010641938893156026264435733243767834492871730954821621834258186338895922017490881123766867580051832070804130658059066771753767357656540642969014794041232081055250820878482138429310521638191868461873714065314596505910070165391922127383647259724277902283409697136252479596838032709284363617708457927117100470723264029487092749091770497449102850675323556278870297427587718791255625622916882513731751854549914768856826986191396111124176941171146422008079105303471893970956637100870722567222454969084135588008211226017750221093943172974897160886674695908537189263214267590781098530898274325942554040236816063700065009305992607612750286435806044376341093414791673433997550843906635194734439965454466098512273286104859234963082247277951198156487936280898323875459996249935200393204714882607164058047032020401584562037630513279205403191509160189762202435953256631972118396802437997489326959455302795800037976491286613846938423248055534882613651245216687052863543151953019943979300050866118857692455115903389524163919152087474041178104622872348988889921726471036156526642174210709253840235154143671538877497456704117075135981626233467535446443238494162205671487691290297759331629212530604645790408827446620780113442028020376676122649837388074414034513506962150550954727208832913165406362185837691255810089884068031941931007675803744495137869920078502857334675770827902267426596726053920285841665192003707335252576406767787700324151334035014503434530706584859476208589221677123539226236276612490116074004565912691051365327159639024258317775543307057951260193426238361634773427894912675197438531199605281936464400238380391370293980731628194254406202289961961876108693896555005439361082728766465678734291942565708071982231688275233242098781932604833861679062042809971545453478157424764762032529858585510536450885142573954311621450210323919720618332132284064883716236183039231788427055580265625112109867452060787862247609225253600229497533281093321723230110216034154315887704454013743895177607958322856191391498856856836421674868711132509158311129950178767469846206397620452417845440430732791744452937306394416831944100073165969394953153690803548775384897836938099359027670262346732435417487768154190754902770219814091218459493064710809806714987720893464361493005345166528232314295369330568532854389234534522579800185653958444234098651704446880058379499814781178373936985392483448772094731969461034769445039602028942523113496940309111527823835507298598291342090518922029273213140780864245267489356645488920807142140584812659704190024304159427122894243293803551885746847146406787599562667680528781234305301923121085306485818290628394063166369964181749630820937164347463250817025956312875948520332965824607353198658632289187123506509062719123510109001101317608888045202263442843739792265576271054026107039089388651832927836264630951355859735327600319042569819597774289801344316574416661538339452210911633749683681074882360762289455943630451072937234726862259006495261714695711646937961897979675216386535991589845793465039423940680638413351422853187991720518188250881771497150036339561852857030401525262636520095079194564576255876742903070646681057259833461564102448770886672023527160812091550725201672607667027708641728055226379677580334495590129096682291643559032398692921289322871197379009686341446322538551436765826510618906019408178813676454266030739804245915864268364403667046136566779777107252398807141092874982778887708023148966487730414268948204369705927781742284197745875492712883780855411981624975973431505690245437203461332167203687153277715664227955367670165619088935484257042458669098295669537179763981924994707214765812833654231962780567238902323352918668323479346345772170212101639556106847189083919547442672012910161512221098307710887245891628618542430602113720117536755006755259494666776149883739390008323898971803374880288819964832925241497437451488595846961534595091563229892318598510710724399837966743343638116112273132226700411398226929581699439367936122948147586484159097414695702947571058012688296315897328059300279058024287589375362059626094041313175860787269406063894407852350445003241503742035707582293714489247883005179243969155615014485403013149318650651888392295321292467537293905103589479707243579596079769930078496138813466810818540174006754351679448189104426196241208012779389951744271000994576410041764246087156861672003815214993869511644289180580503210541217450990604561416075140413668023959020133406846191726638601797717415181909004380000720721220349836539969860069688494161158763237205603733271071676059771614651308750056300235446923582756165333435596236152212345723208302601473983267926372343123924257829228817111985807588340221730530226760925483508924908996232554566987108441910230937497670257777980882523305235867700639011300227277955403417336107020171292421767660153773059269392793773278831321939582361834880002499045811860840316449378094947811638871542287483336660036831820390539683298446056021874997644651542375766388308952822125824939339978476511304629505881932218762839037534458171437690682714468184624052817382583733971744246671115561718259297885242143540116572312874691095895093754687644601669886951328055584329970146456153904245267941964577762198044530944311066527570301163189364272974445869131208359689474718504331863365544891377945496952576918369659739770656689752845953276819113405883261234955125529782096001087789524500153169832524629761237507640611328995871776698208295273339005735229190149400797913244114175399740597666499135484010709807761675624626559892623711779804359029515042368371159380278709402636653984272773246357209855062407115308755556779012080624484997554014226687735589964435192017315247560581184824298302697665103527832348903740375768783016785380556382492535493585939347712593509108673341126215201442741520878656834155891029433598017414185158133577504450863926285979948855937763440213741799520329244589426246816071089127862551616968147533442682810410706529199149188050779614163450694449589889914839121734770607019392810587208634981135274738154002754800155482095323946205673671328748274900880953270210197914605904503404112052936775401539203032738153435003736980505668900038625608041157984162377400780141639797149247499948173250011889943707096009649379095661637379270064413255765112721190287175207971823063423902041487374825866019787497381141174490219440039772229814701247959113266430298115816410668074671412540646536950620374586692561369688833648186398716316101849411924931220569616473862422833953821016580366227398817478344219247102672417896360786146922097712814078369842728023399761818196655769733897484172751511282057819979079478163793779002765720832627886027632025468027639454288886556573254125075608102167059457352338188106475952404016373072553435679874829054775394819874024361027074447250860721521124436522316885016782869110146836368344116181272751324565001066921450396125823527717335642812010367846314074594330711711568958183254710070541373405657953822163160203664542814157269680457515832749369046516592028125785715731502440798284586692381435090896562692370112328990644946524698673816412520486408683464797875234142799930293975532412521744460893081984920174137988298161490506028778755863027349342176196202702457908800980622980832307973480514364868527060060866210113687718721796504740786206734813693842671100274093297663427778886244527574322720581838903863828392295267600215272234845784309255774208696651342645016570746883150880369612381659116544334655204483370695431695788487663047779760621502046551013051114913259677217588415155258950559953642424438780124757246884859616829842823559002642610593158357315573787105995765198493579428122750984549526896807933374372568631144792180644550278667730769315904809090493860024190913641334602249115915399065327792085521622257938593859937680431923769993859297383551017767259708873203716009436759010989368042910674504173712786453364968393962023689236464754067992755853369222845526084535601781373688749180186073656322727410659474783833146765790663432400013870045676978664821353514189905187744362538499787732430022472777484034665237953674933734545999749770051883929487301013234693534360894734357565095134490251710822904868349012219650863376077261430411467584994506971395186500508645458299178800317880874287964397172400022273833850306002063788532934433731401125223403066427222936070763892542179075334702894220755192546169787438293074006980555376271671760814705529512390341714361687224867405278141581230939362102695468235924770400903382715051815491809337070636581307327289916733073514114825722700694352620156888576717778295055617075628868793228780387615580285291374108220473448100262575648822026041112883884091147131311046375761774197705579724254438810195381160794854317852828487808684624033101494662875227457072317742885354508674783993719473068735077541195786456941757689937298486857311316046759569894410291342848422180312696407384968653718668282594322015601826970271081103548496146287363619772698643314750507152749420253313883154966152738884642616538216910459017668552131789516084903986710953886059380382245768523830972398104288512407276905774980542553554095121752090621911087754409314739091577798951987493995464031942012540610264282851434843331865171204573111272199087279905850758012072027891621737716354933316414152993520008672458778499062697298046870284610647885905516515115486722954995998231003647018887485700669998970747545431967652095807006124847981033684562994477881076522246446271271880789631356800352967412482771345283263685003126327873844742624669745139362205303797882762610912358356593654499089449261455419551993525222444082075767010599592596245979953755393867592349971257284704613330715784723850885522754433557740738102633982632538483283627700095082665464835867545451466156835206054116365920069905442590618623759025476891368813039622794227010801759558411103055866696256377041560345639822965439330675070067912838932810130038200241709726988024497186904956417388484928131711419294243647186712116327454161215015872023313998534690702276459542885797145821682139387031439356098322798621152897858109792745568496615203707998910134215558000757114935965146095801819934885850317800739241718700742455343930650799122236287275955245174296828163025655208792883210745098351318843572617615171819803096200378720742075820609310524710398909989749973065657277477922767801318875454585497954920507415335395609927608926086616424421795278752745218238303167367764743575125070738864177419788717254166636170903211629312174738173992090931469198815756748283842979987558317025780051799242941203698163227270450715952549670019913628124100809634203394001213537173545003455974121815907362461426574623037985177037124896315895698944042389375420303252625106469272885600342242146658208802413033734817035021886312882622289321317070772886271770230824652888148637460897826302569120139609603711297504998081341429234017289121695228889943932842164162305148227937149496903420969121341946504076101187102702318641413251240037747665152123613159025703118703055168761814618385938603386503675429326024069555144883845911948382009716011685296987627416928873605691260719424524401074645286143080297265694650655928079291356460471491911568783257158819488722423321271774668323896726593281477565566820818631179752949941251580156416506483356808907557537276983100402032303500560486754560897912904281492655822190587681369818483057211429509731246946286978460857375563024093249954454375711208452577083561210687982125953486920130229639210285478802338120158751332206815922179439199560232548874085123472916056949608435399751840819896901442401269690451833651916737436918380155595059163478819663306308467462740711673553987663156585335117824851747432181834058307703391254618784861377308755896774306907196848125122473894910763184871035714008478757345824031653325602303205322359294950922748673317890824711123673234864905846582136634684281400827979718708080587189509483141146161448550200190091969359109700370233452787256106633542863190648872510869770749457278209751708939386937540515424972534109881586027421964720067885061988817177599364670295540843670332582218513302080276745976838716483083103816395076314531346205904419309457709857968908509756400200884795773059331479678042540599975642501747521857398837352998992649196850779779910458679998360912829749013843393243454308128147921807065549277398573349967682184009049732451440934995475302180254220011926737145316666782992703174962447549923063851009386444799621758313590638390792855576141516514374325987302800908545527107051951288965322273076772590596536039019271000358116142601969191751790966435133295309488761180052330908814909201438211445597957784578713062640157288182965740535024126816229460045981899389642220531879822535530257137189614962900142222142287676130111007531222898015002673118731400423028136391262992468975423079945198976738915433245244957723907684135516932361662073845428890573920090996424750511227066889496622109528373569490198545729654057810731800290472654872194481840575243579358082421978352220228076678720380584591616827974699034026398273131254385395881691273484838737109447968460494998845521430366290877246910202395821025475980259052371307256604384669592137694992050612069551220935292198217540315559689711048875443590522941419984327080520350616204363145404037934312426432315480998146116895507134511116461712847910608122758031181925087914780861844716382739464946697175420499364837232483118879457349474383435537872241763865160966283028451580103012219682167107769996155692673008304860087169505071586838297340348204671884843612318391703473446974186194997173847635626118779830282189368925030395859527393378459963383802934417958343132256100108688320845707173167690822490941697004766180289291588580427473159242362491715641515885886696310784799757850166845369280190745418180874817846944866970057349790417152355948653865931805031804391926394113854948512582750958029218935824663067756389468962906408698433928603453133981496572504620132021286898833653447894246161307397878661809582815127961654554718663489671345024468479331850157332029789952414891086455898991390634209292640128579660212294757118418112618351751513897804279470613326825255408171548530652442012535143241733070876969574872117399716935604414305193643607409761058337128391834452192945655027216042049768500760729509846187918624937780567992274489584988262566563468548893174947488155293892102251058077811569389897583856305651988952485920469151918195529780685469691312294661520094600650389689907156338953081890303131436009773613669911687557620686920857428542169968591482293194550789191221579889518132927569370533398878986201409489354231714813648151896920682270510556900409360645030820063037534956565568289146205149025817676483587600881791423967483954616970814198806237045632151779202148217250919079904815323521750404846261001027444030088340546676203049022597983843140614023370807247853142645138926539376710882646758790346719767443013086274212914013075746479815274031879952762801076942556526202251551074087799937392203471776337206463392154551828502624111534609406241992640001251475261423228652141314494602395170746813178546119168042850977059509077947122645638199913135108234952917234216624785779098737273804899218962829756883931667810105124251447321204915042648200773827126502152074906887759233144033482738046451240693683781915133397107325578943210293800696055564283017178890004688486248073813329923036690554851011368103122638673579817693838390248278625317179491578765107550777017387603622032905682974098088290638402560664482046164531444740699271541820113178374674153590754770540848401231229418716582208541083449565895250211921560876605821102099164318630495603586192840109895565707180730079329971128256823387718623671169081199067504788673491371025844326352718407841901141035511893565787914048420512858301677491993223415175538292885918755052255062623535319721473699599013488034027504890594802616974009310442398306875660057505315337759700932213932484538997032727285960808185222357396033730937412006751565110086652668623461166317131320284617197096624092271299572911575755985677342898699515146482971070259813476470284547628260161079038446872966703721613446319149333628400873799167094130094578496516914096517580570535875085599083749732030293829015850960881171569795271233692547629928347888077426389166088167699947300498802079073255698528309468268048139971497068460287593309615484105752924797100244248535822312560573112039638848545374188151362759062769915240203357772961309095877762134553605823090399903239107686568264500275239280672052205821169809683341712790570420854310368157342368945622629524216641712664039918130977235736404265433939046614597018551205421529709005592028172338076438120155182173398120000940449135505991995139602294190254800692342837908144061068585431245246418602085087943920846985995975385228797349717189285703091953872788756706940107473003717561144583313043304683768079427239657812488195864432936591551021577128041906740286400980483283110964724950284183619324460496513098587255821444944829898105715968542792073223809320205152985693017223311116264200395087647967345883776074961917270385234025675167223313812282171044160435724647111246481412858349649979657374042426739826730222977707848788855925907456060817015926242582883954390006988143948400200982557318957880598445236089259854177425313685449163618929497027749104783318252565508104583739108051393660079248518497097637128415552495725480383607991669824906303939198579081291283847745383519126791482815830470174053741064940583166579510320219016750128051668311460813091086796345553192337232545844106690505597951025273574358575455002962910436542228361156816723725375616141494656635511087483332387244884057903345537243401748268565058094454630423781916231381205491857057323568560029103076146826278174672376025118259888796514832175018780364331490430013035733791773532575242851445850189978332570179891605188815151114379102114959506995060738681745380800413815745901314096124892975655338191193181433848040303202468516712278197619994325742511429834175560115755283165117272506444885223751000696036849756263842366702089862437121283308711535673559613322835386972779309594454190892926805281516422182629724730831070095884950892587104033134143584050358205527104808013097621726005761672920060675464234868101682890403234420472936067157730632067909975918698149347995040880458105755593497466293978192255265340923596360912657904605686610253310478743302738002685422612475399851967190946256037042665300703223100857069153023042185747949019528236668309134227686983664173651903573143452654870880809256815001514278732681238460534207263215592708976065204930949207366074951865383977723556183977438727583212310404375786369571325206269390752628655127133057435894804435809179433375408558205889776230310293781123756714125131412536768679055103539894141838718270357591834871056324336957754206837458254675767434885711056904850562789796878538144529696432150075385667137314909542754690591729282440303270530414810032881735607306936006350815648459711726368610953113200178227461514751850061699233081986509883180618124703790448958778546691920440351127747225198278640285012409164506352607113524149165072958554228474938917158831682932890271173043363564572431244783651540371960475086982979697109349963691804712082625453538653767397846259307920118212822486517597509143637603704446328814108876038235208808357971354123136734498916927368960831442734063881694654640719257989587152239245216218239549574753848790458573969199267746646432334171514156890360586538408563038608677513229250580008540467538400843633788209733024612543499202757864083906590918471917171709771489356453521296339563847025417402051596858678023151984561410112174036427734498701552407346994532327389283270837781615242862832451213511400608383105675002223476226449222514540778255243615857251700269731401502259630571581775868451040349919938351950435596228529417119167057278623014763012673057845191494932905101117871293013119769517012086695701776425234243711922163384946992471084064049825466336096302976589183565413195776578819394418175417088505304987975859218954004082217948323210163388874877146465754176558855029248190752204351079032039489048705110027973673163147327944732606780987343588360671623914238621856472236100310176858340289522072255310710763415605136683960734925755728288842300309802867667198950906372049260453843097850618572335355364892109348740354282915603900528396126277209127104036192813656117416024248106700564147482424947574958861708384142830461727249002477854212075218730410407796203172058071131124595332166843740019698474958135053784675582366738351718958955811504922825184596318479498605370467474134558039419981569345456713535613578280579407630453016597909886672073507286294698801667613570962871266139026433112442721878880831293973638770331641289325778835799410331988515553207169864633964383715051057508503922068736659146828885982632540428096690433194493326467732640776529587230046580921457402450057072531713584299577288627445751815950346960077601809516676828116070580802845340846314215229864695332874354622429178404697028750810764615786580816962166194308261401031904512313261599891918213251339563169598097775405164838141131983005700909587570468151242874564063505115448481807995216778037105756108862478882856876217047666610165244669700506425701271333178212615794201824517961219579733003980259127579378095701493157320043377842346737121794503511795687587927788580060444936282571510475293615138740969332940764373300352239388468019994537433496165181639706109724090336319156515620964658038257848246319457735793307608806895015636933855468748692326342823907985045098366827725768704214309040458281277444188424415004978031132947267199158491589377802051235741737370124381174718993847711984272705461601638716356635175289908098313306882927563445659068187804379569605863749266586219607389958775020664379610911294722754406043205989220178476744094242695742760832389229910699660854374404112726879670513596795550387997724155597377741446633362795496206815210594608645228959464331757479889130272001437788399337040917395713285395534329011903796667464891532099760135363361450326047706545954158713871128428178164741590823116852357000905014488201590117479672240675682031645448482541000499273355120254181980411530327367024852488904564218996209928660623736624682279839644919318854515570574161417894853256804478577002172452522564753837197426533278333283015330828050576385269701473055975176098366086241600014984318302253436045450297225230261536113154936859673775254591437522015129260585835378492976544618146059534847755384572016720631958817393070541321257058706370242297692625408594738490887935911718509735927115830356097478271553353388703497968689974169234716823799980892558331590776996024377639236413568852216834640491168541458974710935241295623543878301393721999578838588576288219130843276486745362838680609547453322380557095403416473303610502889650731957962284593010786306682401269899914755516932895239796626614096007030805577601010923296223738023588489010358562136344734124681561930030775768720896714436099609821759179182345822280756333382706257610313019122549867820518132440583768890541612208099477291073015673264383401489064932797264923903768086547069805823118037446537948051893689083219268178953760066266930319554575721161368698782295502339976548322446128347884963686470971461114307138927373277682005238912302433083328004328838304351049600299800039769776956249559144778697528791272539604054495477996647551478646197065430468305627038146970921592975677345041876017568351867557011890854242684685548671895641092359443342185581960736531826319348784277642346770004059403452516458405957350993553600436700132513225330043955151515824488779486922870686062307317240344728307763041214898552694300366588589580081537576171128375455051718954830112900265022633653647324351945620997386396003802779097951426800642517549345155108809655621421103463694584829259399039216856919019046290856422704062665542145073096738182937829378934639582749282300640350318792396366499372745801768249404675723028309698606197462010190074765547872758000889413885711600047542179494460518661075084959731000440868974671727147306230669205991955842233179736958609242558023922030020175249243199308091871492075420418762207689343485122259561553449983747568850969165279020256970796538363427138731369042342442582785664262051261241124374922252128532546402495105959048346117615563393302051262813432526546335336384091651612594344902527669143859113090816958754430695353368479928483292688997688704773140222547647884928155122036493894844219444229378211001992713091962440455491401605286862986879251464957212912793098577960025587036945500651426628323182218083772522415582111248715572390101646960891316586338748514358059239338262745281547946535193712585299343875744480358572797234627311921356708125842208354509707343935868140885216600124945610315176005075830266239171705494595519937411805626942032680310423082856363198300915938148068184704328577431819560824428177605192566313036914116569375386798973344781657237209431051609069764231344276612157379748056878302860921493954949276503974719535310927172760085616764763793533481304081114448841457081937593130058558357339140753598981685648560877523412842033603341687325156242921346815457658017757883438713856638862405373526811738006519108173356246016948421548983688272586033773587051067773907200352157127130086956355938035033867428719552438414518740340805118469661818862273005299878968694894945377943396998868135736655070110636688296460413229954733900957438403084956615348880663582763668032265091571155723058390239996549853284328608118877893784757506517187978922903746561456652990662874630305806246489283031685654538101282761144085426975521984908591063852729221236050201879747229097121534910459066633108840968649778937018104800667044420982462818813483923412147191613783332755171877525727211924339053020763625736757085504755518620449135694567328282906053927781984615612688247999745512440068355387156312762321902846686446674008888625746077312333245892192626365655861154655643768342041487830197230541958316278397362915921170486535102416962537740071434951515273432643090210020003241614190182352031704824296188141416975694613048972021762614943596882643430722546337996525581265704606766547284597412889224236235415446967615851318693758024332189650277428124105056462154452942793087130352526274428882042025134346464544328676997186228414809749105795854499780380734341556650378042098684973789783359232460636089266556831471183774543531758310307445651243646523317947321030491210755357858459030998926590186688689271193297277864410086049908648535938398518947129523131094444447054339762668174004130871524497547861908234994264879000741169619706561421304631358610691926886324285564941456356384610160440526125840766138269178267290368177177931813879445610713418656526182486259873205070207392012511807899006608262977195923962889034983070170514553172401571774833333707582442681297451007858465317341712632686366444430953704221527011057417089498071521127855102277754992810355337349351368110519413183483619382319610843759224881900325903612409220939672945763163412723321038482241915751325607754931018648874736424943802273909367263780380147030611544298956810620680959735021051483124682149488971988526083743027593732645690020218916367890722433143404465645818681521931374066135398942554697360089059039924955090329018534445694019073070923660297972096325171653323401775523201214319519399414547168107930348919823728697157695385720484209102041465580346465958923521484652262658222345767246521114660153324551995936328444350962688024200620521671481176352064475036345331628441247358442672868947408390036247252768849348603891714735370794171654711218267454784181798619910238521974014430145249951545042801759801739022540502388718648271654925373675423037894052339522690611731454004779393235174458526512245181163913531982739259030233438381567194816135531209686643371959178381336549348244291068268269470270371282431446954660456964787231870411006341918679228166541311887583737454327514110977611014874893788630862920690270546400547009150362532716415261002822046550406367123509915355701604101180419502335857113317085311085148142158740748911019079191821012746314395023269863432566884585697887377353893990917226632127804126482506183087813355137971584909271550754741122352017146954735248868214104130198953053805645608497425238543398316934485615941351519420881737002052764074326120720360212836483428004141513178499565038697814691428364653531751892041081769036462887083774826046967861384320132548686981974359301029654613550037654811594783350705096619302099444416720892612113836456402343063084537914873361223773446403118676466205446649483307360098550215959084416795288889462782502944370551095071757258813574829713420532457878370341494198014409753201741660047065181307480694032053762015166040350584903440678113512288379758180090376412496805290836946462832090927792440050144584912222792768272968736603095980683146214701719647904518986087582341378686992148162426730029861253731121452228810590027992745757168728020609063052553581986465515515872599993376510598588350478759076180948361127950906010611091441577485107293637726026289329305233530334120127959427116125120324960435874613406285311415659037777375426102948069722700652433542667012028318687166166733193234666640226324229296029364482913385481060745961376711392664312594559205228503446285435454891306961216397432327187676493002436298853580884168826651691597357155725742417333472666440185260962597599286963144418679890967189057507759033143126094167522123045096391071918769401173347684759453845252338266703776657536568447237459904976305765117604619470965105831280441788100201022301957831971058105937050288512979625807999130739579219001192056480198955265377286973575379752245142885380114517128644184068834315988492387522157213783786956845092079914592093412875500852769131164125355203028982431557980335324416084078375956111316295838262059955290847189722304088012442228464753784437845756132700459160534208120438558660791015961498029273797210450413390076238133628866376094510120290105980768816925506651690490592626031415411812138222016583878968566603360505515949452349920154287742459675472570319153059257906273260346653896272877757809181634031908520594084984529503277109644713939993394436667633387012441393657907679667516287597442568462951530737742946833837910934450323647817981877088287198794549014727829053755961194623990286570262878802168904982898731994508270029214450798006829127983356308402174783572170847438152442198112331893636047509807722613478593420194528625582359879650534757911381317288983345013700280634774780243290676438882797624433159509384308471949135491700960008028671794112572917988416857284887082107806438535589827227607549983888652815994117052261248698695928997167978484324515479224092615683418123731440960140640910392645272900452109494726423966937210978063598392700955829015544325409046465822740528973380592679991309329748910883544829778782674476676500876944628037894133754811943288950255648584191887726196519366610603855808110129628611372187038596240914373023064963874447812938844488711354210283910840051513119391760579203652206496142180082452388387254208620603035135223537885923046920601804873061292302187647158050465130193172070315983747713994880704230090084587897901810514610210926720590161555539328931656001732381201103994528956987478519292595763060390362416650521504805927355970934094946195617585379489284915826426200468018333483581701280572087708708419342047168088721551178670577804296128430132246695697906200745584688979376192868203067790352374490778476566876815330307277569589253655908446392159518013077721690187443489811884320013231189948635518272572477627827719895513266992390248802253123010649184938540513604061357580883352269900786411407210682429671143532197170437329230474665779550331122106112903249711353956847008546444117710293114569180831153071217116459503879488667986583330833503330026080450367873272817967163885239855063650391874957391455586062209258081130228756463725338357724467477393937259348311346614835891408992459473345262121425134037257768005792448253813666477495586758530649482076157086653920588592142534671072762733207067484073164292817095018814721571474940977770685294067398890427333710035582524912381909727037817749283136445168963629789382133137431316880695434958738087833098405009491800263803766760221085643590168008787373294385501404596434573009801940554641036868608434998428057957347419046298299195429794128203574230222159847748340565498091095279881159619054627862489822646005501542361742127506621273244565896334466378038687845516618567374593503528459673085832506417449602301355968671091621616636456990198180165437790668170944144085805950152626860914293519194802680222592802198299753477854753358544117771003942248709040074695503021145791835685124899761413958159639950548149678296164884969839412647702717830448359335390645828271912280651061269557705486667010845230858306077333267505055306067377140065233169623311920243148198719797615611685766482073426318953584611790846495848456699985349991850079534355649114855817430928585690643180511481576865518453683391273365541066314659095577960664067919262151256432433635983235273507794619300414093337714653828729195918767436380217917275990014378833455199354369087535596958709212470527105815836747572018226634854383317496615154244109332114617533841714484399837832169417039460509824068392419142066193046597115550149725554602426908103959854600625266458337512962607351016495737666324672285237046434070587185915076235989694784097096314897782941566505363836309698774340472236928600963755095552007578325292711455870411804122291778760187393061160850848024436382346313004475791047829742150455898878312381220439026259105172075711688946027984602777472396803881499852191403485626806965412085650958632381320683961672718229080473107603808057082842355089042499235948748867909218137063781736948886231041522236674066676156874886709754588313028381043839376765172503088676200088071240181535278756741640020581827924685079330619670840747846312085944884997871408631309175304992291796916078406128238821798837451991524988448694456365743757536764445197491422146280655162312515649033319590418908096999356419490616342068584077981625106986132938446186152874974349090774919701469895788096424090372061314865260874361955126384233135931579560725694856637282331120217279521628369919461672070723529364698620621977586583789369817334882762549847777788250321508388779130183900564721453807244236742341431129024611257133643024607771975494458073016854193810008714403952999209358943668173203455629865253538205057123608185546434935132631170119448895579788140101363384957483241922799569558345046786073748645857105923951539817236575802872129780184071194117620663633422190396088652597122120371335826624949420338348372249435069708528588531965533714250767497413561052131942557602401728172893798605671997409987371256929981733942505875684446315097733168359221081141302023716163915017565454436600160662048925354107863169356614097116463286437282054123687043712077744011699073454515442592966739975485012883505083167863079857916511853924925440565400177560649139023504952683225363330846381061835889980800900548399322740537306607884656345103793032637001121543088392256367990456294006055695684652627105583915506262963546451329614871142503725235913173982825999553008096245007967905152572531332753339913201822517266067349820936341433649566104748587957965366191167630588152394076794276822037698607198316999643283101168782217888578652577060594579481792668435684670115186153264390181694082679603000295293014955268342706128918926633712332332413762484908395037851770372077420560013573229284291546724685148648001337305067975539630279656477122971991015632234261999835803015527951858065859324251481411437846343646387425544532939855729391378170405005040591577481728806961463866519558546277366954377965743627735113316904206677614654109321107461323325445985205514368811051783795284027240325506562404448373298445900135397041974796647491851790380069371453959838011893762336361011359168947636054424654793587216114140091430597491913137161415984200548247993535168365163298191463773346699869155445059057659722025975703041437684358089161102693262829191241158577226320348235812111778069482707816288260739196441417253227455137007858444698230358832110422669974830285998179426824889191395537423672406989228746887758017964383305044679383969804016859102452933603874359322000469781802719359331773710484507897146046709802480668066279218139731199955100483936981867100535964466538185915516100075151664060933858088248912305715111784026849708292554140461731368865868033901003389694278039198624698626254112174569945312351295285239586889402143978909563681766677349559769318714994900630913761304409393326175882729825626440197649467088129450153087671186824722908317316265220200888894724009363800702898668897845442559204114161271032786507046312356261870569707099418958891588655724561013044710121905798305954965509690112448057923463852625236827245007414641361147971054967703990370330907040619354298197089507289373768656995181149705693216147992842835188042643933896831815055852538187920980926253686734809648728447522948747874602784558209086758055075647408981146666376879730035065971179150481477310073266022793968369212436044459170163218984692034837725400318147991951880441431066359633260091722523496802370171204104756156051854609159672323405872755715792316825374667766334559562191097290922122704353903581701429992914098571698995786832656506993414574383419065751259466923896051160578435243650447448611677842666312435490292055080348939044502213508887828596816442868650714290491919117876582147824432048293835430398015095843472196536256419740052838838075832746983084715525741694826035279839072257334243070930578037833295440417328034301778444057796663246447061492418352643600495225179055205721538152353988346072341422939338694969456592224568128004263300091427600668689493456538995160617668571741546813943501041261374654643002211325572103113942498615671940759146650064030576146494166604808999079703497382883395809088021891617946242671743061234919300156241463173951387826015685117184568773785708425828598046496546792949549873838911757879320728795843044398987377318295853942988414222350091873995256385875499826424699097039108858578490264677528402280505153932414228912080891757417397333658562646219582946205743211260027969826136175144841239658051203388919158053373707440596250745267066251976470976377216196943377651007317914601977422416119789539961184629100802398767793905609182229025928625389722304389709543464811497648337234173975353196942022223191662550472470821866512642955150508091819817193340372053955545406869612516040529648250643892530947164290455070891295397042764423340090206877350158961777092229589171525567638445785186273532595689483057224723671281805199701046380459745670654511504057992824130091664614153515555784608306972920057174744864094734713037201063523271759328945935119796397513853830903788895735953252446068905478166887265828748316083730259974175407033549102079820361149909940004203882731790253861636926413782889616033214002598257477584461405022502122421955255877167258660001830351485039386169191272546200647858974370673219316185272530683814526904720860362608036975360793018088545982743076942133126393959982965202457161618073770207909355475019152146099544250289505626581528362577989588571837997756924241013188630335295382940437259329408379035148112883124289705861890668877064380591260533248369886499048319618469135227600732478165198975961708965935440628894609597168271987279521930566718718834970799649533192746717355789400320599212387566206543573912455271965278124201651701758440158663543153120052976247792702183599715157887450552552526617850797631900943971631274150904098847163738144535813565740064092822896490662764350395762665133861020634508948560603605995355721574119183674916412251470458965585262945931094172848000833868107223901961810124000676460895270242007466333342916874503229041952973219535479734279075562923910749993352298303968942916070553881357232121390715264164980771754059706923684979155525459460528897156681113269429495686837241423821339904124468106354363568908838966540964806307947899873078271318957045274627396424832483939563688218558209221005115074654984889101146616047773564757618132727595897935483198977844929456709198642018207063336998371681406555391190642134017590969416440133169845613296413304636054322993711212943242470078941828011558903022157247242901506419777708253717841546293608783448744162351823433752608730701379445343419419243147283024633299289635212431548039251019566138386790746407445457509518204312602219700364242625980935183101731791396507142022904688894381360045982648394805634840490998383507541969680167385615571063309589658227960543147114431515291617793230547180128758193472628445716792017748572386950407792240267912366876759283697446933509022925446322065607084346778500084357142498733391843590674102938675841007432396269570093825650388938801334080932871058210175832803802679825411411105618005596759761295857814003772110050891321762483697560982521690136694620600334297398182795425489908592540702916779251641743087822865656926614541737540421504185400503577430513390696705230872155345097061084759880608756920156401269970125653906451968010452939863986121354148503160697189033660356798762216322335718924867378575397016953712909748717228636315942458973703613138044062013746606249600309932922074921534743036279215192245218717992266103040542515124869009910726728718838235340349275637274936379896600958120793980385801360659185695380965223416199494069622440995969101182818353575797483866687570080865721000827155000508408959696088862791166831963620268571529044495055161858458221164889401651370193511573719684925952455039866463462142399986913355433090167309680374067899003076273809764351740456911153978630451406846852180918214277025665520805963995447416943386420967477399024815753387522529361806947394499428771346758895257844430349352178602195059142565018134139739993464135416590465544635024282017775716949791615019670416292502418747419897223943708050697308130983608714523746187017776755632842984276521535371488978456218745223143105898917896693822501343288118844301399909538425716774821220211941111726550931608459252939267819726552484654837828499221843120254617451540894030355161139137049982677850328680517420005027236851521705373408204831770057479660744360458997549652946318218787442826263276986101485178158386351485616993936719365646312490787429847084557423785196612083825407457054849047046766814183148547944497287942199904087612627430438051960322469299693325090836021408980229175167026773728335283088225578386472108168133016913184970889875233308006198405697502697002766253951386008990275444765208613200688243012376603008548640654659332748093815530155111627202791895528047707105815470974157002106621191663269830730019489855564629728136388156887395466260162047288579006477089047322986986162156734380906296484710767323044686968781315502985696078236570800754887572255396950716735600457861978330780976215659670889226276761303588409099492297243017314565178300295174176478974808651210674586112829015338751569004313944330417469233173703608708976699240019339447303664065587496457330568360713871026642824745699379819179588440334556126727064365653244355718764486115426277821695881845735377163868217570999563833044390847867060700323965600588924023208909196195740835625080987483856937184045410323727592213163793171707981019818625781310329715925423027820245355845239166714388956117204663734074137930972090760275276927092526480574253335051572031473055311229594931977750991945256340305337367242993450879785487451973266809575275048763263370161481953491639780156919746265204898080996037154310740391830707731991648882003530702822355468191679550584643894544645567389897728590563522371318759236167820631414240592062850182936267023152189368107263177908251367609520962340126985954746519818840396612151378481930557800866351186748368543106575918241340337211047998982258562749560034217538197542240902995087991008575854345386230081959115424679795813589396338332009651190066745799241639165210652396228750363003801619008011963710742414708593489707357283168538319214542286764702699038862003026597620236135130646428608008508426993244265743549837653031907321451220182885637814455696226973668914311541185138268213421383969295698473802173593505140364616850400106877038999184827789794302917357794116897117448936731227810503516425655665946290248387240957049078171245693603473068432018458869977497483058860994219844092941591004684971534582935408584397208600028138932946166855300731743078674423032636567952288192675645708941053850518772357061291301738460137380406127492564028952092425383046891987384160345640861819805460077808969484729479352457028694948094916312791996367516328369446166937465096021680990270921188211736531500318033350248264665664636083732940480970415410533760921587007540150734428371887208091228149079481565364622771731557879771774161537169365421748229601246255853075893323556778037457986068604452153490232266190659337371389049249664229542345228390326552989460044814505107598911300988246599100738915068331121724389386041676154734664073981937229886538176812907172641357852011715256268812655348750136737384731004742438785518650012223014080878329323938298660227518603742050429739629733688431052145185933720735347382724191740017544476919469435827390315396154970475828754498990294243659890417090217687362743440627791726099982224901428627909826931951081699389508548651020657861410119075305310647642583657580222271660350713583690212821838513041927307304498537103432506664761644066061870580327232531066853527639671619945442928019015211557244969000435499252608136407748807943674304785021308758951631069567260947540798364907969369451292910605582837912164596171383773210602385951736234843896946841506250809773555271029132839718592550026936472228130714822452868527973077361931784930466273278214903252311924089111444396501505501306949470788254843274238915380057062256031825745304303595517950167299575113673340182648403785995610123870535490281743408464525572807528314809766501283623378858156141428291357236066662341428963480784865946568766451498043059525339391816003019544391991282683134678879712793721220699421288242563853324530265694069287089742300311275817589238289741038153139192847185214576049134006232930959066142266870267974034240288502836637282324804224788996833737549770421823334942985790718073051544138149258914146933771901058787172695402292053917472863709486162858209740984579328519093652476262942091382543576243832866776494730367220840509230389401971199625142211476787709633789882280408537714589260364335355756159169980586293282970601369120579965716514382108061222192037671545499338571154043767507698947327890687088479244233191694073162493599494594524089799999279435375331405695452921869119561222470858779452152788592673499680433958604286448893737715921231695591923689884556123984042470199220272648282155820486932052196847552330060262371588742849060155853783175186200316483000064287205422097355108396916761720265824579862081511450951571370597471086503578596910477130210027453738546061944904806911380879392673622806667320266135235988736256904040600841791891968363159654892106655323169886187619765402806177775534725325738137191290760094519259111975860356041264725729259179187143823999277545771693757784955502792502611398706578805926215342841544244057923739255023851764845345638640869173810160818040501820875776150070800744339081496001187975587753417281408642512737939285594078782994892721536251157298132260352729263491375013629178932969971597748000876391689548886411690124230777360484631535238429152659801473950803642633998909968890978734508780449095534202598354868159102878435493175718124429893720967795125861885183525627482436312316573129635658984950058895213021955470873605599977318629257594174111362824918836921542040524405715073392371263278079945099175829763314850111156780544056544176979669552230185983351077031811560243904309810805824082042420338643572673143617780442854695469936350349823689884602406850234592138756372062427314432434766643410098770915568554408688779076002992297212571576465675648290461086831814690407240258621831332826881212247639969942893920035977647932807599634835748397082804106510793828841459306114826167908763437199078252205592860873351058553787935246956227147778455739526112727784102702531339244031228583078882161874747006263610182572615303726267787492612272096745616570294367554627641354464922355692250499378266411080750890259525435719222217739789381954557296553884788810094879051007946587772009880404559217522981996743065345397153517416486316829376520918625037121975050118537859023225360058082971416516662837041318215971837989055742203542379862710713049699331806520433203936232492608053107725232434006641497269395750546608740344993560828058914341713066428288535617114060800420110354290187103733885879203672991180942728242234182215402480284459768272089730965648897947841034163120375466763853192322232384581718848935412918455373443206639107020023960889525634732243285099517899230144592395922958752996284668336435230246006916339871268912018798985539920349023466383185862509137639208138957564350928100327304809889975745649522071407817570259523005156997552082717036688468355300246910837672133288093091470283776720899371342503100365058019768784710416102421142492525453366326878649902514155883514344667994081883276228454980164228385451908084264771731014250502579093743913706853590572729117866924176100475143568547704465097557635658585547958380371315910250680972823686897266347355368974791203490380790449543991223444397136167612578837285322284101839870054793946667667140237568111274573774643535373549561105086848521802948927779834126983737009443670487735824191633987253597946450668576014150293174774003087096973570757018025618843699389772398970147761406012488724742370917373300291378185235463422023539036130817778496239624369352966324358265718350418364990337859783609639017295376141067197196283095119575058009050850457499390694915356595634201299229349272909111607340333489861372519051786631990828358836279788229666851849340681454172130346970961341084514777061277669880506693743014990370163912503402941929777414811082437121467351122229696446066675471964194895989454088555976548630794028064645620901311858254853748251508422407724271705000624409282921517494043099938926315256630637369255020503455603792050167092248922399844354614133906822532883002679012630027684908951597156398272853701485228587378499411112653542123342099426234664628485320719985670634097092979385409295834633563440567292940120082983731082520270441799607069707632799718708952770798744372464154200345360681697162853412592070983009693277290106875631892047034380886356766920030705242106921171273179290161886203994378805684122621430039492062614566026248856948840227902039041724016684922157860907791954871992755136780941065472212504587312280249919953050026643136612672702664716543701440504784645741000191065130251256235012508429034936857142150707704957984167319183266749894932538699760877547561886158574356478066970403028735018940694585426751963621286518627584538668745226375640163017774172345798693853449513417366365077356750123582091044680370102577973008806596226868636947901459363562068539197670839850612779553815387185974749989161334098250723678009151555157479311471423495665317256673969054486573401251173778267157964109367259563843936677142666284769228431027480641425967115277425819017827763525122876509906251594650009480367835177221664044959819395615143307274203864760260573918245124697802172128735273132123801373076812367689520981424239931106828510757817352661313595555144824580481872297634438037723885705188809265287775424296764129722014987249042030021344540394914167412297707475083995963534325552606240462016111859069034210908994625811562813454918988914128825795863429215757041057986880505277287521614014758469152709935057409146102500411939698367732078263726074873537529194433920214541089273995884810692758537093795037772648550888863115691768335841553063049465680806266276107589917384913066544278201463263540497404042770698477414768672089617026173610327023159084262276538827040415919741809116633699134365009756927445534149805863456416692003699766402380660512836046896610380430368584688736489524568510579676842031134078082823508012864431232893223000928573063944943603513715302757479529811595388104326803320281137068198687783027815997246598142656053203541622342865056594709325079609274674105672205912401474621125482932642454304737320493015170949693349044532908529225395750238512692229392174090451575728852974602174985057950381326664143283509372341928510209323135259873715291079541360287868532478312191200639771117910500345729574262178088164546844924851800680302168589340828418667976103268243165313397377561863376038358352227734839483157375030465452248114805871898580264310776505670515294071620574946946818127169206898199358177519007366548817971445372942782627386605327848514593704260439757431868440554535893167495028411299536014007801107512423228617833373226617460891365290204908122096639203979844683784801708455464765316478250379010844584878745679001215107244066996835790659605548071319959305741575856765290459375516527338658751042748371729335102059058904958113445859966387064171444224457206050878322962100626128457497445637198103344960799564407505796910389328527352389560156170571939757561771543462282685485933004430855125159226122167383960575827719498621071960899960303067317728227820139617936236922259240742644765749477291407491097585759962701281796854483021695561990736441476736002633380462255318964094694634839648621482792310078716629109713593942799323954205839488442190460434918852028290022521053015712756890465865530141386589040811306854581108080861084912793643909514408153009055699406131992807129167280678372853958865297549278987091144131381621931022781340437733802827923759811991301941776496010569044065668545281490149758300351400821508251550020002365963297378233334353062335869100310634501416943246923874090378454230006750842812713881612459051117043978744877889734235781930760981669189139884375631511793145629824893951722482963996754304489286289274878361194448048189492861099952185371037991821730401549909888746743300060947644081682648727153423490166363286078595892623194932401680939332839376076597160274969204667522873512102316106310664117963536997146201006792651470443326412147316971691031070839672815466679370687874640460212317026963890843628728730966254421943812094142360701797577242210371104856104260370351321471395410661434449064490664998068704104895808749837903353989060612101139494430652924422233483817992035949781687217874167963877157482326157083856321929759948506997859499840374768789964059077304487523650213099229447656453335078969879461723015868112090579318253103142158527997282534559752946437081368793359314444593881776449628723826842691908789928558164559483970404156253451346359280248598487262416473619942915172624331693013708069086442268714982887544165506632120468749519739332366965614848817580698164555792183521178263105280835103891553693735500983919226974777332138913776743329033214387305667851733431318803021373634297746868877160389213683702293633307132920056512238210152444517283855045770804005992923943563280478865537383883110660190152016060096091649422236112645214191094283351090080779149693731580598600459997569552881615269402620049228156149330467421080997054622997893884557018816257586029369138957076708037624474822921092749495561929756520501082585409594809997949665938946195081344772989937396539224756347940894535065826571519328651563448719034772856148295705293590984311554330459857771782752127806407468792512211832926393282183036245167655484300515403688053153034351303242622061358088968481647576549981077289959636379087615300548385332886659833097218751785997515467197672302152232044306872394318937405421674845829357467634449479787657991076531657022952842263871793615041683640687617411925702245821648414379834489377697630798273727210584939203752778834378958300949011285501829095127476473972087959516012864053233394917344437950428412998517739267779885365796276005365733109913462690370763767403709428238634108879034068247798277156254386584109239365846295002475839062988684997149084874962008509054395472478720254204391726611503633679381571882701774895768568588042989790605834893045165727541455931324564988879755839412858842565383977707482759072609758175467735420207980898803309123259903567054663167631970284001393808326527747767650311067999346738706585074604084978621989044942122344674719894731529429471853102898805969436444444857182968569649198688021234611908449404948555404698536374199848834793461690532733599214511240881008933484112311683617734438590398683628818103280438500729862207264331338141377605288054748925992518742773962259796525354280953225059104201399359087033702263803518186314394769360500483373646839012617093867762491005522949164827389843456766011973562888212449752699526697958952336505392720242643058435313555174210402052082044607818197466471815674079646362242028658301456242418640549179237534879489336582961505186109414730220282992295803585751773352874079751553869060640954343237148668550141885177631296286016229339295027718374734245132180355390559671746271071046550409272377378038281162304290224945599821169539561437087257534456841811542998613056068712614052829416334453871969517505654361110383819573649959825876779591939898275527855758529610813426813496065211752441818299306330515574478027242508108277433204518613323974765947145039081006857596737668396737754828975067785405734877891858864634391731797775483135390211837204482856622897090065185010138471641638432047617621746868732492729791529399745927537779339723315541870496718258350144189453377416251115141883489335340950194624411528816829632577846042386102628983084571702135200144525078221942614162492692114819779016122498625680357046912128431451995193226235850455487790170597226871472852723831222527570531935628912870534619074713056205185278487824643599610770752797125999834003861302314224168050074550816432420637957670941239100921442536837036310581826346425850541304849601339081684714412563424040357141679755490123167520923922088724121334591910404533972805258364467958831248830628147795203342860650678720853403897914450600989540031804530559415119412294988456196886234352575567482284032108724024508977671896046592717082106103578315885102912178869230742455046363998708821560519248217058855918842288779231432111830355350743152273743887704687487858844989747348230127220784794507142187039646056643788039425468813049483829661256889744210360586577552331136066948911520441365167860640781508937892499720552034259231896439668165487927993172877724342431939190030499711395442222797662668850796124792745020664134362188700473253894061419471995332811369028505555554501994687375341271182127219429554871436008453160018447812469728951611276369317475842116680549206033425613521342209152302248207572785528631701945814953388571470426499943454493981394794782848117908756356670473409477757001527492960457638606568255532370196143708082766337858263095740864560292448213215200065401471876522866375958157638123410750777799931450032300520818682299216966718548681330348446275017892739444698109331919018454009399826169391988855570272109623781935522507923520314702716469851293309653122104738164580205989504698540537536087119913190978415564725410403147230492914222616520242353426018919053866536690933086235939257348230069973914312076858738681191773762937188444524267598907571178544452728173823817203317956872438756448133979624415899486289336857067447673140607518446984404944546646470527103255558498246474345499444474008159066784433382843654578165647271098933535490848912278433465213062959335764562679791161471637051037787164704296270581400901575306891019175581352003777053450198213632551731794765800744194369350427990789312780987834940416947199804822671405467592585161723686921261177532448662314386507099114854208318245969507337944572058996406761795853722924162271187419620905367258823624290006455055011910103548063498666283686886941218009154537417926800870895104260297795331157717036961414957543944513281118325926588224277487833080747798260872300762527889711744964185784548915979648929192942426332829309838741939534524021133875481958274970570333742120896411491342044656015396099982198933865782977957008552976761335836906525790959232250643238551735869519372717236462203803861326205841357238172031515605935220320030932170092380917893666758477246126894841456926571057178751335793839402103678238306147492442151213426287469914606242972327736057401154969664153844319838788250527037368087028689185673963957598439699928981576279078198257980505634738589002586533297120802466368249274339125354016825043638480316650820136615926573620194345647901523503967834007490141263618580483543440520324299422564097723527900473357518891316777742137667285324859185941078290865909371677308758328594940939292595560395783602039382653027742993411431235626470507260127936686776688372966343094957737178902020844133766870175136380538740722199208526254360666032006168146818523358194820010168240880086164562953401288374604639938819425138644146456295038690942894770977145432708573316194866825201645698165766542662604265710212179399310162735020591658289262742961579966328880164474409298060730114668992608050836128721636644409017366699536027344969641428483100073830418691219155196981123104637267955728541954097993167772016822927226005605542859983609098849836194718390868762270691116549741604202150135713861056430523320865763035845005124754227299433725905944041951289045204595072249949918581624295151594077799521887437912724823390652509601552822302564719738690991544266994323754944812784615723216161926032774762245300961099506145624438797228659464704478871848786286399126990268717607509464171890603766354397052904159872194103684249943238141614414178244604598587205096026317648656579681928858684619860236140457350017803359707492965000191776674031332190643845762452529711531388449391793149838391832364791881789818647965970880406522200929158426979523217064488001717235907098670632261699707190087365427550717033801745092550377520091269058794111531667533720602383377820119406462741454727415346034875586691371051263756550639018248579972476972618745244333257557879470295439643256241331629501247462826183388154939365640562765548055196373512363875632203471440371372918572788615158768680435344813894196287952703270837194069680971479882491991104110984408976214518120433333976488456243240499502843921535036935148533121413047715177620851821347316922231418720075735577612384639677361785920026488865062397278588940477597003835707342568486864379473489561339374057293228968738648766361048248614414438527432978442160960026128149693999563570934073320774132228419541825908664532443196356201693425928072795045098952029888097673247752391422982479282671582001929811975148104367175651845783197995965858281263885284942332617532715538485029444423280184832029094029866941563488172005565231548598851984611500158912209582852749408209491440284492467983639385591059795603914055918934756414745546340731087677796066856119826313474570795984879608937432213749601841029787114746442041447910486120037932512998242059626807204619790301192281508466112961905794408327631083406843582059278989868882699462550465832673087463972642413650542782118654383638159711291866571797873627381865114099758715940049533343398747252278110407516050377470143266258368451838865029614292068019996908211874101040303691474669919571094312172864853831414015441390028000406239539057656976924365506379082811094106934770334150417526977755727267340163480680469167085139519703467316406331226695925494888492396843352850432221555479697543000615463201734239738221158047637840524949482382823428073278123163207875469587797990950963137618214273808658477213179035789046424973015836528657322930837659941039294380145562428004547465152743065365467942557647709494345211320302465757471147952566100088644783675759103044782299535484242882191374135895405285315182913519019916554383827676413245825726143042008099955213951953512565578832803006231978183241274420560679437061912757487767359534570492460985921225966421591572819805270416681634344730667622282252891613093735553777577768587453148651284572163880263087932251122273776494471532560614708471918734756869397052086456163270045916905856686546437180162137046378710199488439031582900181071125592208234518647821083039214392509194395221353293114935675750558376573209912208240571616102312421549468104787730050520748491364501040231737447111461290057454649981619426534389206668166024885827897549075979663252765514115743451184950835750353263474449798984899158915609063628957975662341928664163261361256309306519764870978191147552181543204900937772274687077655885074068610400064406572081096298970391978296658582292645400101454924226799960124033670758774258313260200273873869889155184556077537311347665391313292338637682874001629754016267934146544633272016624429233638134261461426910161211997409625845600717865528670421890090382722860252923665111461471222352618171248971385307077814995749134317653916401951178398355924928002725426715124731772396696065914934414717280695225803817794075026566448013648462477616581554808755954889315687163067246966012760189182101051035639622334577662840249235521433126187545001386509767507340843850523623364567083933443602362596850077993189662625467996993235051277881692480543600752170337331925777614603682909867676021066615698651871282902964151456044205724685816368125674584740907292638890878540686402547876283534125708590340991659655017091496931754971805576967080040439183920500296814381380737950936546271196946474757017389200932351751541956719283452655684091217036588286012647685088515698468381401130654770266485665283787443908200192672554153124728410565523447690052147620245697561023993008841074312833742113124787685538210786020065160166095229858701167259578305102881796218547691395655821031956866390402540496421084161860561420228196644708047647850051381190026611354345795906445693854074520299952221570502458221533730566296833637858454452465967022617063829516523960884973088909769061337627386601625039265821118404427310437901021062918246322185060281876532546066837519812379173562315818116838064229387389354543032256107821369424143883556669047101053768869573458174260801507252837195167885834696321019133910281788084894832440917825102881839587221682132096366424420153067751916398828217812184442095210815682110595375697185373821315715240737422115889457290135079292514765685048308416400170002541689203025110463940741804198443537040431861695812642518109430768372973699245098586383860962414665123367479160112430897512517301918435044540131705905114220316363639315084543442690954549527122496200456522630781515014821071553825253898021824390590390047544596429187705920662759926432357644029006101201788212796727396917614379579462960096987912863049054280488921724837353266769330017401034193103293637793852371507014813660405874381972860953819211798957191479846345564727506180263932927272175812953632469655770274777077688203299823319062159600801303983781015961385012107537852170061488695964056796083940260793617705127085971902136138981708185796896583114173438239425030842560821004124732212841895383721582377082449019223102723666082484274062696766748466926029085351709081080589724802694241503301542287449667421840963501704177928148381749426002773743039296243007503612608255299655558824220865133128848338071443982921035561813599553509827210167775288882067648196343409816095380139950420554499395344896566288027168285425658010731908161744464045730014739724084582114218567354995614285683478308073600462156585889136822421708491224579247471164457956156649858529727977171724021512967447906067379284344373552261606851764688917611227376601316583746985958135345079368447176785881652996758655541538270299379072078975824481644932907671808905975223860542241835796452900366933235176731879599894741696256997336589244216713839847526682896779982611246945907643236845535850862332449038855507132615316494662677792408540352269036441480500458363300190636409739311876881935901055922595866727206603232970394118277316919143556728321383350312946096206930217875887058935063266182048478540953058805894343603124423719784220184688961401547856389987098398371102799658103258941683508318824526312931847444851151498782627325899824105668386929935265105303864332561845352040974744345280315432475840913663233727470578832683784387941823244426693672363867996219787506971495680641380896605443702829132110287438886261015780738976468126361628177833599411100624999689293712769414887731046885419977857494564248198332621362380437933025872221264598495071840803582500022443025779214689124968924248043103293290399849264556295591175922966007655602754050402586514296339330285992673112224997956116232185201336779935025122493654343098933704061353577991473711966191450610298421539007239883504612104298877415427762982281268162630476447855479261888585605652173272201117003504060565986262420108690496094502035761699286772285967871122451777306252116841639227637327148853060744954155492317256750783314172839977164581046798484795555934195198672348502871104965338758046994736170120805705372902359785509998382164660111832127732463577479876435445427516951671283466759308112548925487259310005136824225959185356995992284313460805538692986066984747469338081819820982578299006345540491086707893671151796020610678893739492750756542142100586855429111132707441061272299030626580412312272813689406747934346482847633952464132556608619002153999582085930746523092697521546737216857718721741728062468457941859736759003142941098668645559600004507152382753308567724994935161610261594381777852484799348305031243952343953236473088260505860238389948092907080512016403980431608319479627840479882547813849880086393429485880093757278190496559486965389139528995568327875865359355430773171370329849792517571771134122127275432113903883933867977085138895526473275989089757081583146689470909758474998706644421710895535454823823544063988804486799520510007164380309443896084423748185344213169355065911564279778173038276616567235640597713842868596615289130801932591635467743095271583590782665140351430325129105033707558669971123554832013829808898673422750703444325910934475545261465026286347327662179978242477819725991136220606533417416358325128414142340967817719645496870959016486913785423776941329564605306023627383111190002931966656132612942443088567744271633987428725834666744760102818199165768957292301725217281869694401184353554298995969239450221492525621155877432529759522968439898717157212802743064909742361798521226877150749809889973920854849675088423059042714359243452276037755161571975028488592388592680547740047322761418973323475893094205844323284846575334997958618090700973890175795914573619367573926376739958230128088780259801529905592793381602712105333838994112237521380106280186055558337631009846521389690958053203104731263811577674373247260125975129952156746043393358736934597946704768001197018053911098396334589361222053183792943841335095175102794700028572857156901539092818537335048801347107762707705660802219088282253775566622189906890373959922897635371627974414115925818437333984247760465571315098881696981601014871628542253148420907460076996872692725669198922333918850633861213323069587889474310127746358475057014307352503011949844382345444134647362403564412574508851252028576698899656890365633252379487882799218941742640173727419280956633957196713729617350577090555593639010255679963690271772759690727514251664840531285640941181069751673506548907227512530071716800652715262870339027279523999055903081424348013157840727505770082332641929653790635003796377184413340129127590281867726366599109009997631796784841253700203757127353255361209458793075054143972560572837366186902122959951652929411740974991150026472141371131673243274199970689722746143124897561206441333777322467206719162728426871298892488708760144626298540797330698296372681535172897877050677636718844402500553058368710194953582784158949463469393794151052254748619811007275287582607233648700222084712273838901441262335479130535221889325588766401377522090806858444925152734396419506654348556122074763539413794090871316174242688116348439929388965196716912117043673066941920724181238100736258138162455192237649180392409488865453473217482607457108374182517304827880821120490049001624106571389898853241272570272517847787785643316775213278652589468098727373164972761896666286736866360857143732383121276602044341318467887136007557741875388615341880912717514767455488980039089916468383806348777333597168978318812398208849620862614405364823880884074412969949012206763593355280440350730931263282528281610800623020866287418556587271292406892758705950237603021654860662071319366865674914566202306327275216652890813162435055120614131285115865282019588364917063232315314982825279871643963034512667966909355035102906256527846266139602057362776997977855010866471927160534375520346821025713150682829443684541697297053369653215431161005891996035300525413249757069449501502286375077496807380468182875639304470663552047085741177150864927797234838594046336485347455048549432677072403689022080244082177212029813462274884588942256833724183720393376700267478278042573387749381886634717705742266531856966886130166248350082153689350404351517813962423305465231251695442990357411255649967381644650105794481434046911016378521457702009946060909500399562358402528344773631240467012284911399685331169595525413392510586010827476476598172523365687276264148543454918570963920964672172320210661490735368573835597903732433116285414585794271967284347263025190906851991370517941846491870069773603286631483886232909689112388612760750824417584096340817173656609464542520535890446575766428290417932728859250723477048216985039575819637907872590789516572479772952832511530629459515907817127265428973816805632531394257243597670258942999816613047630513174814622712343366098674321634283492388489377305486548839868222531285729914042598015446563591927227077916729064600728009759273820128821408489629285652782867944235908786676345257804805878930870688102441504438456198807734128765232943449243965694467245899503938253056329111090243499469940223993970401232597949204738481692978345113709708186718830501368266090829247689593787015084184342875468762930556885144960173654874008682007418060811285048369409346530469000864794236128552214216638155496432161694672854570337850972879667530421871398518672930591177007843802120671914583998805425942294354295095534758948240354205046905514234705969072161822581713271115700016014913976520244728688580917341162231479538953107956708882421645617237566820960762960072358997689496927110991239659066496063909733497019342971863568830019353741266065541418706336896190252480270604557104035540617310145195008481254358263509913526811785351091074500907455793768980453709134146290154211200815367185025943538328265313271829481111091129068541828184575613677536757942543950896948715930122975041611341626025043929001664866209371203038970784143362165090327992277560922042772685546391629732304257906817396771822032224355162750428163630483936382362690255482060810779296219508889947001899195550089665722060329015686554962863172789697143662859879625672376983924686286476880884654841308869931506171099834685357565185460452273397908487500825164907076651802641626952764314880171327584798054601474036342012070177151554671165186722377091106684564437185732959366999014424874038461075113661960372795574358931614975321209470690147780545796658593622998190158093536871658333848431340784370580539330453633956400712413816743415314576942663345663998916908127678332882160466952705265407351651698019128072096370190781498323559997799223750385785858023939357835575003394575715235648607787420731388959851918519678815262270303557192606960737136279863233910053240525977531118605561145278833267486056818203032112070106607929237989892915550202283019511536832499980577787185300123337639274555978635345720741074767952445989291530662856931815280489997925221439017696477697853491678073076054418048262430699685708455147860108518999695436151916047745652745666310481660823255765992889367562700162984989017381902686770224649223466799982201589967927496823898010330221968186847502594615827344822311341801175671365186135889202503388305585913996641974941903507617208074186852308083216731080143123374188504800735302543781529746645095965850161488891856603975250015693836866968024035085151250395232845083540500557384760843405728710321821345598505318007067820900086720323716320208959036146478982072803487671883798093043405620409088923844824917576146272301728862421824397909320257362920755373804964192916242716848525167703401637216661517031273624005154981447617470896304364539404244285784452692460717161264580068555839789278958214689576930327154789400118778276377307522820679194763583169009551674139744772245727615008830711899593442622118764042306587723983272889468470404204661130301728400326635249941874077782933918778778825513873697082356405096006929176520880953389030153629807995876509375460670781952856746332605818613808610251321824463432832499970172571891567288342529350948790832358529831195275932542456305839099779358105097480789872262187714435327317137790502646411007317063314245553384590764535770292433424882093222756565580186766015192208803803065313871755517642972753802627294676542609621831382475207988706847035725511994209459274525668638287950588266465661312978689593748242138760345799832320366373035729138736042265746379969519283288892383589873661053976269863912932398417859098525929799693778492863867481931709470112554061660745302381726740874377036922921651224882000661415528817831465530509148221634050299827875062222923781212370855111788964371084479544472807422238563633494462675567368611795482398914777385008864140399707788833629969016176412194292556552366921365231592213840987766732061131986700947648979907653172822496198984966596052432420123208976908649034501263528677006100704116987700121087527367355221951194707394759200379423666055659057787197979052260317458952785004674793014876402582189651097395588088331062841572948574867355320392785477681603732587287772344551953211622342113263539679922238417170111726143039697988864768314801372778852803932780756804438908937380893819097216542904551917322088341016363407228144923082918999742248633173689759161987619290852517162558962914001451722602578511632990628390235175675746906128036083773622461938273075217655806662584391357501338709695944874940649533532499263445364522768172124181444710404936173025421752654088535973921983244097761939079716888861677229150023491397491882029409504864469843109907796096107443664140018328622158036935412128855869683824422207915830394158561882653755045007347051226817803436649185115066436479690134903389534303583249047346965820924560906602286976905659854237549635568577940291799498021468793563518468215565745997539554229403109082886456177483100007676522798373393143285228961769397516445540601497465442428924315852138581150535313961744784049167707664327888969722349538974518057717388387898066948915414874094422568131888245814823213960959327192409955546099376870814842597401627489023496968775786908949039338132500595148240824119567139580251726725847616607352822587727828070034161950618970153472449490295856718234325903561637005042986141308545096033850024855108002832767907912823514506759848270333168876687605123838398447759171419944895579695733772046286053854956361534629323885175885841992384681745003707762464724641335493175687320536639442607123884535641159600716124990742195773395568672741516839538428807715706264191475573916042132525261876793801121108140170703383350285963900102542298844607085660837945205052226181637513529391869257699993501854814078331391931217295621728512442151671612598915855282861315430111792485831158773269327846491034360185582332495124245246122302607480972339433981700276678318414728291290793666316208391511398009214612440056232040950597473001975779247019770164249555061480534664866721864407609770347425123673990411858401710003327179305087217761066971856443041137526576483772922328694922792855196039921672910413562944320361309239793936954945863779361118035029434637451562787743194414330289298050481769672387110973124113999012672969597341919453475330834032301477871038499536908460177637707435728667997731691280348670028119371426076910570718475179882367455494863549468468557892784428517668632960701591579820280049959312553808240336183071280497926329889016091370776122337303560995106013012616749279532122135434410995760545254987096737754382539417258328845879474823514637344693261424410088008869608151413749245483185591118724589869664250679421409134364294834359438551197491852147416414692932046680643382228511748877316717642478809251525744348999582767818173478501755549076724617400435438558910487640284034510526823654792052913486159775471492791822151113870606460245273928693859526909555617854988721724921142079058537632219137216933711618802624952146148918352911664684202272087707516821621404415178907334818855543929414187351616079630354945668008603595883753080951920694879886400691437575371984875819487923941260842768243126074954849212162939482138263729992939382121843421158369433737224639105162229880319365992117629804174787449728054862144402708011608516187804809009237471114330881868615085227040372314075371928403755865058962373454965777444753989070335425579735243944138778760608133386360814000711386550966752933217857441742685955056836162054616867199835435760713565783694001349479329900245040532893127724961758601483769809321251331219515016120124858528763088127959382026746543438462426521336690156991388436620035854818137871026893941850200784374017182369865947764253182620106062096996974919940505746134230491614098906493801295240814363181088214483374606418234263340669549621332641082025602676380763807409679173483470025002152227550213432246482228954135863217305965602720037389222750456090431798719018557541349601921144381189099588973218879777362530320259334016254729835358663616610962896710553434946916123922493684294863059611114112124626335437547953390144977264600578936761616732005479075568409139836434606906931088991256548970009572420798107405362128890698522314799842310443699609667202887321395999081043574669427217591058723799432183972389291505826454526948109168198775008224108303317200000150874072149779991967323256536537249988939932478753931076214725087731171862954963103578233880163094832081095191681937892362000945563995796351084433631506905648415812042472380964270408694226889978457922376603117091950692867922545590829779252706225608339301264016579510345211887262780130810412156685345865771487916350987422575878979771638139222993195749197454839385362120427477856654213386544080694048771393611754330017775451484301763288236032751216839376201537216276654598712891906814804134494148391471551105796041621140777090959260986968873405338159192537888808133993023740457544210587834345451481151425860830672038204666057504795629696921536370028775087919499418868397601408779220288746688652086601691942535602408030294444010699482061235036768728490939169537390375671741991308793029740868225625721043632862261429828561851692299489693730943621480796234605738297043334928030404681726025019030055727989573950821741766284777902942241200926552424071418002601396036180745800285254976596740253146616319075624922932776794074965517204190370149067682026811880059184485006441816108103450163992655006327953271889558471961117939067475715404734356932044197267057407757451921245271147550943397257783043265156137307389885105244598851592328159486469518769696360860532421362194931363665034380314749720864276620811793251693693626322339550036363702103364858125543684727925665111151554217564543935815652726472109205214527231019838803251483389219832583646081588179998878035345585264411826823638746630741146141327347647949954398345076609096048219450227542614456235724065179043182269417107409017052528929665311848662681688133397199933048545169739926628936315553075397059094113291097479870581907578779569685527137750000447463146328968301543552617511460215150823421485471609650341801331243374169527852196983237023974308182603955877705618593336710331172197322879849467860180534811239895000841492383659980534765931216222426570956914688723132677011704379024634447402773076231240776948049847995361132709595088964608701293568300449355650420337277020996151140512991991127281479769843467421861161444736839764676309454936631609083003467700442445747135311193499453297826441430531069412943560529079135542487677571376602377056992401055958151288013374349934274294489884025129733599781120705489439629476565552425494524733728511212452406744543135136200832085283695797399496201540077539228774720066438900648007065480441818685827357680406044974914937759920789760073000124990901792207945774865048937539748902858842448928870826991180970935196287058606148929165859552326668186439693675446484762090534159368702506571476601285912134137729717058968504843362054126955647407749883684271656195407245855784523573290538775717139811103053195517888060202114403363008052346297348715629667945075539788012687643004808927167479101601790908857259194472103410665130480503886826975969698327049585771633833857238430249248736338978502382581671014095544969602200701874925239589858577416408626435080822309632655867072548577853732349596776453062269826437712736692962030107720334638110735866480631582372830659865485652729277721513010940352815740176186373539587498262521775355716162738890330341871762015772264276274450985692949872640030381463949724812927692018411638028953977326227244070006715597854519936825555096067245595101227494498440667427507093106912441774073759938901431973475926531242994955639133384992491256127976694696158930974877969487346661154152900037703847038352827281327915553679083412026184382595536369910220294712526724411332671787631660971237965473080553404301064125757361197609272643767296271535039815424803652930761105300194936329120578189684385323092436030296263250756850851929060892509032056835189305623201884830300970600569851771088688568979917051423830665553656325257570589143758604427671888152889071328791497251776212214718001260171950771498705379453236285264439169135789974504258933219863782645694392284192765107488196365360802778430363236976032125878423566862149465446386101398778511256261568950261475864952470089945543456895810399238907299555632861658547997962674208100034528626195180106491571944603220788127018705814384797185988548155926966457849957481020897019712124404980167816317775729257792755467961255093379169304830359923965195752719805189600415422042995324199590451736658960422282964243079183891357157554508721831670703852763904401732845430829056992647800562960289667559845016601712045742206434707819564458556846587048007152295582152026962573880623565614616043285388165362508392460056772901507805317311695527605325512524883061282285278875051839280524434874989183077502012040707517185135194762249830041566275162289381190922103120155864377451566656397683981966405932771553139888678151155850962124790300458418763729569576820313893473003474755493140378092569782208063946874329294524467950464659235550746919281214310830787518677723477328235547786687189781999175424641865161985098365795511581748885100600001820077204511497273291422033806705006919544260327010367257181781403950877156874625389688635394090155765058183526931310796698795116982127047440261882144756748195518998579124405510719196776440949516161463862125509947121442718575285407096508853741374971636346810571576833109279989251238671956199668746603519854280586105789297700699157556259991278931264437176805210072344461089472898627817706628793674480971591557625021646879307175601676170847919868583658609686259968093210863610691606562800061402323889343587624899074655983416175831213980051069916963838001949348938284061323274832722994282411868745961066513409808416540573733458024571812960543405537954826152205169402192563100399983299890474440561136482581960003129801771776351580174540585999156409667767054639869999394479877431892789675878197886642054915345732044498712993952555186716957877180325178382449172128217615282958240306933660244625922754656678182088057184919926377251692547105709159778117757352242538286210428804552728904151225673036047312044130991193520535520806995933122046146189315562396205694549892373741374152843304406778835383480625789681395800142563454052271903224873980311970984233152585680318824525798313725999896493012891661009400450347585857796665493180624773457352063065238114652534817392261123330203315373239095044212352567279954369814623349780183381886672432313506415088187154543750916270668167393588990886215759033324228678038803349035306051608882968370629273382668220139663126088891020786350182711234654917406889591324354968324586564865243144270447884114587290403095098932381326743226517129525359451628052994282268359685154274673172024182326533841653235463595849576630726510653439078735022905051993564574984738853559734075862982771737682229516186255880123058623258797823306435683030636740478123527219868227341534678524300649912352520386400723498612340091270933240538198352578117676411168497928125138909001055768708160225081241943080233648626508990959602225970084200927972657120327986549970692705213163546142245854724568851882162612457003543331079728581644488608771751179625500870515788047914203397243366079212792419543998527086576298332230762962533091837169466438692856144270156660690961504453592667883020279466653706398208823188988973975222004222182483925998541028926364717214933616513183036613403021007414643116200405535070945055023356147675962741964225284514988432577472832888438844225166816657298937708753086419618456336121966398264503360916696082214480239330396130257145393844235262948571736990558228347788253385028792443794128093456009006254309917772777871174793216244897495409490382969140513901719656181931327007442434895929149904931929839514732650242827884264508632077741773036129863019399106559903929582339768466668865333754411570883274163755297765751115725971897995257378496119433220282271512926292964015693607583580876207904417287708364290106247812533385753501090880758797112963628590825584740814425571198318781312025374978981310818482711945426425953898052297981873180392075177613535927022809891615687661524772187018220017348937934706048334713456470932774136477238900498355912422127083175122983780858651562954700121900706149292538018805131650579702594213524552593511897707656051503046898806687281368241899974398166897520769877654609315237240040523584688062553612571400035802967557415669341514870204509505337247854322836318277397385236235718916423640953128585532400872948487461551284815109207738868476880095551909419955851670411760376531295058064987037739702100386070874607574517155283262781582281876046136193863035149401455567137954015552918686713263421054770002162281985985907025196471244626938556757951253971990874631073010532633762844578820494885606646223501227998683747585030969892875973889455043522844632304173407118338794456328497880871431691197031971984383498854898257530708267952768420342850075705978548094777947054069238412193386671153133231108898483243790750502678057461546133323905226607192795923551779923351036005653786744610358242236639001028214432978127619976497357310196145085165467602552516630335834787173673136096259384523044263990308229787837972433443688588205188437631782464642659037989599909491196030298222283999262704118612500757324269305704793689731842096165650531095930332518766692733919092534322722615955277176254830046311228826733066942866176358320320639933873587578327578936851706327133705628488256849777822325509875451252139063530175158262834279730160318344447473939998644046683264118124603276122533081224671032207864031866358456059523031915211049723012754525749379391575014968608179940734158041882241918402227801850766496373114249033381401638438027211013774104658785850742363222576148875322116834551376092734600933880593344061738324882817324336051555079484808382407084144332318426547026329815415816388335517023601384397384145344894598278956831634143391393311793288959694607892707461389501936827463874287483503548502897214371684120035759600250321651106381765388704920369970720303572409575821810402403917073085849633241633291393496790527339310039453594591658859089217826400083247227897104622463033286759202640113360393503305831714141565652397235960647642675327342114987044989083363693195452433408923730058000038618671638686596295996825857974373618051920623057068015688970884779944301194361859502382639547069868213182428594863905601839742796739045225842007840116651182286286609926496988806732834664508119668952662241872778443767591596463768367413362401789413290485841451821442318674099671151724988003015801206475036454227001285935737247397278965096766311217249429917747764146182172135656581043277787536651921214824417912558632014369076871901359281365390844095730714420473139087522929452459752539191333717294945181644532365426976026858613010593912969932582512932380005211042659435767013626950266967812198777406899425323135661500470858989940152332279046963675649855374087374317471383332548764048675297117164608643394526608563550054595555725014683661490617265201894244030215131597454256201898987366454847444284749418163641326276686672770798392827638554856731923530793886677819449670650158553706789984237490804256008390825527317451351512037322369128029239284089919214197671590271528303906032113095783061411975041140296176804785806262296185871066740108970716946502763476605065235491117768822391290971675648305323225943901132215522547398133711885247531418472397467286825639272171075243717657209527833246087216665866544125783492804950267732334070278104159505022564976911439276773847035151653664040180736587942587817840560487250548461878007965881853092350332478613011216293223495722247392636594432768619010325031405500496984166127215886850989415903229041023550366992439404582684463366682194665348406713012310817592209583160917027801167329131503572967410032696557450872083421001481295084880626362236256542287443697702498633201782180999293320873214712774102283331512176880150330041313206637013195814012460261787833626135356832141149609682221428187538256391448691217734214695115816671208784663047743111342623830815797947232113781198819791169879440946949846061656628403384041940308976924236537591221490365039009769944089827171452263780126429641069078618278072250496089442000149892615182664032886446792418028697915583323301099008142041401368018790895211793140928088231747330808183011997906906837817816499500742882561267209373544226100308296155757540969729638701432745879096242421186016823659140901044531807007406162331644647635364966180157838557069986735666737823873845205078651226329967437179261965941138287709637773382138140467893254995106323374533076523021944345588731933046650545235640801310621156974756140745480214027847380373952660824374907121704914100676897156215830217692827430766380068649663154537611951568462973120331285463140201290068770942080142668276203583233452311897197636847486139418278664450011320532735988069212443907586948796983783630586269785740098311413320925571817206158065775857386608019009112032993203699086133409046901420895733608177875824762030831952861761819790381425513486215651489225811562905948502714348486745904555644836049327376766878815484678050246983501086269047746712774646967677128180579719412873563827253969091630171351017080149548559018182501023032032017207019248360778303545856645093839585193355496095338361631685698941835726756902278389388277852873717418762566524198776426528444302536212444275545139778198481472249441198531661282858737176360211822842156262749201567017359439288861730908367664127179659111931218236341488657132907837502898610053552400606371692379886854672198236181133968103742283093498183387959338215927475568871055560505128182450160411658707823964164362878475246233633371982650691953124057125508084832515810412255119146051673557727603409785153638780427628096479900768196864078146404199174089050152710606428751024766815979084078703072883384082540827971179824802137185543937842972134961247150395396546873473441916863060884952371009745441956995577921363573975700712514085345570542010388029649263706160548488755712215967428105839731013083049905938429491579815347116228378063439312274056238436448403411555078227384328241578667137986462790379264714295390647331074626265003368175408250974198921442112763846248976000438221904722414791933229348326430863672553130246114505090117731861468634334867422611250622558760760046094652013357380910911101672461803411095973223065552858619628718200633188231511766832639330688593930713027846474246024176509100513244748422541793509535252170030196019324687132913001266395156905190968902444244245927951309941473764555116321358762051962449895282476093900713198952370047688254681886122768053877657283964803538412810642664967382469892244954303046722532044199330577582721415896691334328820551000014874566875585929522285174765204600068491284048825660459704987780761612244924402874103805997258792996165108490970919425322361962204897518996665097138497206508636758845044654116239996428818232906345126639629212679050197806712444457799571214899173070539632638143984541043842479281196125441987150860843535045360534542014453126159189704574337629911287502898563068943606432707363803348148740802110360265072545205378275049964999083478915073265704931480263040375325474950921752559964964383586231258362832000327551993463790612764685349245569553012660268504006373131176466633984737779182557029009844168304489416448063982457638542198003901552220329520723556206954422409100083412215271972925501271510065472213319061309543617636194960384145045368993965280113923049664517026276922774594803015072875012166041431571936034173121975915574019666861897128258293340273782173993523943357284652218551162145690561170663988822830074503341924801406611634132521407716371006824643034394941245671026231646834503514955505609863070020000471588286505325240295625531269796550150104709537968886368473584300946123572555396694347255670965618902777781794539612401581071455113266264556288869535332321855606898357063960509972578418010740499540474663843233219529824794760289115234456772956913374812982571194085695479599018886767849538157330071285355908658694448656476807136010870157072614426785267086707739379738947487765696584816822559355978734062622903466861568973428672561910384827795817938436256868372362001999451177507984529217141536191083190504617184563560408471539612809613326429115892150992755248291997662097317260021598191754935159199138710519288520669205879528037362308257367427145899237433898428111394103312913771904977111283502711266597121931844951721377956079775660105722613651273006955344441097322204125220685372915683945522173152880682124226131171356912376750812289351441503699468202650313893748185279520293749338276271860838433084259832948557916937852263316388545487785089714920921712554391107615883180133250387841705209353546331559307227964159026070774739629993615361733092826836234634481215096616900850558828352721763266308987301795471286617031283642693573125830621914277743848018084412407065935355143437654191742561677462993551367215910543861426482063755009589664088303880674732122270484618914113598288143478116073066621131033559445138784025038439068497545455850482038646833989147304710048508035562802526571369278323004434651457505003814864557317090550885017361341326104669891017563449956888551214045403084703950316621536256405247708991454456443263980279177136396347872698604759357657342556239653726244398650304417524123610777175164893429540838120175767338924493786223589744020285798450201342891007647113564167071160198027411710731730045079971481479364369419265972174101276360783585892010009932176891182978088277254116380519890511118521540439396798678316702644675258078723450945207010622969281206068871197856293926923425100985800140232360035193548207783922557522824706163305227786887021972980809442484766326918201998801815375331177356966431268147008192265721092726017525058058813767309625501001276129685464427959466643687399403598899329075594302979586782843253537328043741236992332950098977389954303074050024326554906498218839887848475493453268235395608696185207598520160294898458368163436977969913510609517282494653269824231993596657366217915893712534904078137557888276856946244383007116357459258552396477327764443969298106046947448304049213724868889555130517693413040059038759804832347932875589717649673010680153472867623694348377264543312516788872968840984910089102257910346851066696636108772168985533751150365327322574530481072887650640046456814582631374410845073052100449264430691386911040079412655192266845319857738129823188390664989800426435478084580051820018928513796689098764231708179074573172741887364352500767970879214270019394977070243348844277201702188304829274527919556606617837521896223745900522823741580802218035502415339598330425557876222887479984107989840490103557064755392296062808111004394664513623841241978647778609700637824219758370025539449108761510323225806434279866091847027040514077722473965145198626499800658344415312363667975713711413052405988520746613380623926918204556124631619892964606003147911219317900489283235108817720797817329267098397375853418198336130623036381104056515073341714969982555040024127163297664552185758486889785379948429878890270550704930082152833169634762128702114520918525763321538351921633983943152986593149338990556407270744280142839218758737443736289781891137384559987830691721273101250755972853966225944951634706363979481469483314382840883520562025398635498449669828882606403322562612947028722157501556216938619220832893145626904343157871327617632664953369310491177513237938307764171543323557379917920769584443979151646858702195401433560766009439733378942915316270749066608673894866341348637685084763891028163606581831694748862399126680780387637071412032727064849640579354578355068028102711968361522165952413684453050797100312257468285543051209429413298241303236614718052408427432826828376362094082751599957685809440400297264169068749883786054967942959567750118111984236571232425334597009374199361249603363581464090322612413942379576174906341835714589958174657198255330346685244586367502459279801156812070089372655953349812360741143715863096871269867302916429256913068188818455112151144654679321918927368482287956145499162727128296620867129133783816744142184013358383110111119508190654845620907077380343433633071643391720980664340812923550009979065183792427563642249086511591881684843542613435106137475709263115259102202925877317755061164691218947591972107431693957560154218518209835026695222215030913436138141117824378222498476945586101807300697305606555893854919010480483522890640797307504877937507585766221798415940316646357805971147152899389609126981556914064054150506432515664415150314678967151269318801798701155595297761237795814574325743439157452384127982957292396468913797366123506389323188369398462755388427400627169778778267358684923298961302166410706976840547834590463476487145814474264591596764994368789779265687006427069546235333000723612164685237288669516206679837500895623520633147555096288315652598592385365068494184039900567941244148949581753869130783176352819503559843314529305931754030402539165111488406952574073276279412119275355153715248415254871960021275540459679122740322173779920808908102394874876287843255566008941244595527564972726740188311131968170107568255026847997734267894732049808679892130669149437855182670705071666140224670303904511430556617813759774762249968953221160075137344215588620918660132765377478299843838148858216410187814740818314109142753210345018233176450876925884864887151573910200242352140821549904630719053411043376471338033656708528957208839871116153233354638736759253623853814893902893881127607605191087638083640783561134970857093384667759835726628806666589418632551677181706359723066227733957630962820797884267566355922227377783345678754137342121552207403888209343672009435077915363789702902600933973222566981923303079300838066732704213870180315434366225431470919953698849067427845569480836362855371978266325841565736077320542666392633886991340246724501578397256111792062661816210852989058092771244932296685147883687032758559897823402071538290542868110846872443600064574656850718716345091563830972065497745603668519882655694607951194318275259500154559688453414281057077926051465416377194912502697705021882063748497044654653617028643777001401032576740377260883073915926546643994249046490556323059438725231942440614916447544157850907852886751876727208221301355729824492747556139869537651496553135978600960812832110609986130825422529144706275769832592389557564089235362251338886289123651321807529034145135354939173215330417761571614557684836817019521408195770260001338703333596042065891675691740339924337199340689059543395823064748041210755635569638866670215289457560163204024747246984840899309519765758182398120590984497870911811647010788186888208932209603977073209782377106378208244963308965744218319951624697874125752947771189800073612790524971224960357036981255244604589861556490192637958233062049113204417937397632218385721714701323521763336871255889546439607543169454835545920057801987432123044812343963979252196202531839894556673215923685358509983894622470489838806551138442361019587425840343739555686093050365965202069813965803687890002290440928763081021169741552274564215576824255089386704993462840750964888592242264682381723375177783315689487895726959529614762796877129931855391859368740123359189637834759341049003887867037991432868867861611406534282220171367232179931689067754913897723444635712441109695290685623473044979139547717178897714709329173922740952021847511164087408080359486816313277326102296292664965527046687960285236380655050330576544400896317742330377739467995784811234521433367118292886852468344194935807769704559100787131898276360919580395491292739812315841681937171201192353782136763173595381138430596371607842433689686384532980693833583969242529711780522148794831922403336744879997326640583120525521103010540061814964765019741060214919446729162554550773904124597212439358232627818164312617294621693698207813975799850984500740327678607519372751604802760298541981524873348042328704286580623244042723277186154207870316001614618125010464187599627754102318159776179430351967491262236966457087917808664642801625228935210011801827814609902938578863328866309232479698986216776610785058056611958727155790631655738914906180989753999418466150385708790535935152870193412376631948204996601437754044288006488254670764004860705136820936908911989197245780064638708836195533948131998199793281111598691765553566316303284407151536139604833508709514073330917495723641286243838745266545219528748809096227312298115921417371006116480955650190321936336438143364884339030554437035476322297346411006878333924281613236554324928653373980170859768957517945093109332753788965974283378460904226571859266225423079743190726483710194687640980880697300110997572348141131650296861314319177531537140629826049303879708597676441622767579023448381279612292741621020684000655918769553297042766709331349154470770288781122542231439119143532576608621675643971218610967441400126020404418218869624311695151158209748210062124605950630274153423699553889966566809137126684959505888292436778415311886483444539150265570706298085957161046090440826715520913033539329575017822386192659317872303246784916127379920487048100659301825762031676175442422994691766394993915624527257706550611007588426993016540687010595549573363470779874218533518139458049959348024300432020588413556604475894342412504742525630904193519662298537320974690866715400236206065374226846069253675731665759064133379490144170271557660055010743676269376625131986636961275169576591328576161754072726564095566284023006337830009446451305620076496485815102843990277670170579066344424710839970431489187174477957760713306899366477011929861627150603428677543489872083346152139703529151891943399148626156657882767712138022637282751443749991130980464828778023662156223270479512651853152301041819449964812725440793393492350938820560472802500182461050740352976598633785128465094179179831654059360617102051246516467674844815713996810888621398661309810953528494493591859373991118532606536460557011477891149196167173086487128374021509620999917029167528549131389373590423580586329273433485228059934492278304199337080587113339178439550071449451055164175430872735802452645088655825754771819906833833836399868463474145453268124994619491184634818614628508550134335220824926373805863129602571132247676203196689145260504158035793638362867087329778243993573597554726842350255798001280673210775705657945535708567897668626259061359217264820218724315214326821956498602595262706329502061127915878204620829635666185332217480089210970761673505924386511217933523732626874367797157482256777427741657831359122716549740679896284030791366843793055773633132666602275032866845397844043345793744077862429182495264152848802956043369401711215731602370584885006310179929214807836946543358761649820117951632106289340632297364400035338888223225053133211246874618672531070742346904652050730274163393269489359100004526001038628567835147126656437044921218988851650090945072152757334059692235413363785009695507477296440996343862150830686621770641015613723008164506890250582159291943353483521595657708709603927412409665703595762819396311236902260093210550403373904702907909664081116800435454518020458603797573906965741710945963829415276843609076119318248609667271744276177874168641668507694831189676137524912904477985910617291514202772734534558694719200809379816388531823191433856760978432440106981126649802820108924582101900395185856628502648126396465676349004053063176858308705004246940410785634181809225827849130039632760372448103350536371045038564175774687793933154048650846558783534141333938124237664944491908406230700842859375581663414058597444456880130929113233497950594292793475673276233888150417248427957896384809230570978583651066186686600219162900789180022991915628012891150782715091394056991681124764309882409310706392993056401907212200536511701411755027001356289956656950497890380160519797777739818403154071245691543473292207416567592292646594739796464891302496179699922602030796043216182625123534738284290024825486058151491929545827421407290206876566560959933238788189292076099990692701712603912242256672207904453786417400111406101503604799462830800872329209418029043390688357740250933396188570686339771700782962999224876938332759040326751624954862553451348309602038602701776214076081634466460075816831120726288346107791762754106208879653810795815893341931273958596101161878842596147579791631390782679552615408027301608341717054960137109849448151021460953667765325577237171464237902411945969394445520809695771634775198858105839310191358446263782275161090625578300792440420617864121569478310979143547435956587506382411720776649886203466333047108184024604628604652625441904868734864148271715712942588922207957467386696240073241187395311585105131308056096462726502580582115180227409817680577530566034332711130419513482566557622556341912862869072274884364400390070792333982950168204077145000643962311420913047614794279451978888574608016391493013850383454143624310463662462215149156837706888653906025114215604426600305730178640231473063885187069956987950907305394184027826153506294480972712364489553596993559547709706581661702609317776628312148575088939317336775144648160056516673357251246342342828595618250360397188212721724698583474705904630160959513730202501501182124663441364042134938985142110967751198317438615722055174420475776444916144460563235363820518348455693135103285212046227666155481571265876437521029325536568044311253431054121173688426521198614491067423600249277053688795022223023297416298475446313022449235944774033989307091758459672438800196741305467364219653820531107772931375288138365870769155790803851446880822845994572058588907375865122927198819016554117806173239832941860847785786204400835402607527713405209051001084864611386327501577858327625746467839130360787787710324428840716286273135738663165533042500261097486493448999545975074434146141957914895030933156569048911223501967742754536148022002068205697395364656387288370531068239319555745609557312087486586822252214205283158635328513213531085215620371796617089236875783959563244312251638377623975940233212413712496806501217247815896194234782040083032699494448825871855869558310517093425426654531262232765714426057540028499191408952853906949003141474775900904039751016315986935148404899867432586861781214632982036813658921343113129526664204106259301635520657596717691602522293296336153077165028441467469247508499977514130598376297566932994679683900359072287966404635467963113525399067577803274249968898047724583325919387130281162133244102685576573063639839284962175176844915098786251917107757068317708678023370384741703609718887304696123195498921218969674588511684617421125655067209511382127689044569416362449350142754890971611829125631808510127897645125597660895231691314800090647276133746514250029676041896736734815189232089605395820672669192964557092386482194850684466297733021364707282339504958380120318671139396658053067543936737702201268677046228827949796742947963540662245751729298012857131775894333045969880750892427144050589817149782500695504602589883739827610051041714583449706644543750498398055040108617515960124838016169119434517765963551952742114648056152307675304075626766172567464292415743175614583419226847891426518900679708159540532252593239809013954367592620802417111731911141367371962524712273111242051371697242175498548190025751173219339918293266476973617688399155371292836506633573468141704677696813912225514383639552359881313821559868526351608704765853318478170791366888958469249516573094763956875253485293773627413987442122218814636783211801760016510430068760922939840439982879753202280459665276713898154717272075133286649847287734291632406869488233655613638641587144606741096888542093886767411623786972707762066867002117995066872906714152099240088087979790323247873693290899378136035122923520531918971571746799463063852424891008916009630026869724639254679620429450813642707602350844149112734575399363440779875926261130882484472100047561288391783516698671249989562062714678635642438302749737152328816646365823355615442115906710988504180406442177613811881835307836511837279627929999825205796901710919001666197674887868028270894593190096844540085697360377198671641890930101924807965626843341595213581578748223114341225754033369086711527279793643933043479557621747472224501439141424194656943753990890464407240277445797685634381908816700794253268666416593111362870630131449875628423417910387973158125614302362530473880854226584237274852340302741612413185475156902861879450514350609918201307334829949996217488358666429002599480172199822745172610369258659540938302566349353779185085937664779165426270085307227660631753664749341968437671422286725589717069993730520657842685801752990762359468944086609756655293601399159678534074440555598310488039152392279817907127960330721991845003016738051621601445258699983482033429406579009171933791130787839679977825092403428307974503547775427826002341626684228657635687653027203973236042710199721237881170496426221924391698817612744260585457025511614097687198245163871393331411352903424309402624980416493944730526947665811285103521309505226544479596800416237074928483673821528143973438404630460198804182428423676643618490820825977374033218110611789289453687348309877051562212894777366322123137786083768665948888330336620932678658940730993918588712063239503515707340582379677002012143722586190126707496999163022681975734068575234839754297558817827019757715041918491285892644639772957190290963170572233666339213392178613997275143688547418832576038712781814477450305661673123838036487657509186347098542026377889262891778504068101708458609918298884578779386229668748190977745673227640435776064033065533578635246536138024426871403502958203348922570988866873723729665699584953600219550450774805934725399553288886050134319502147289715674925480383662571535548206243873856718398322916665235344961419828371488464797688708534249937555687769788492722341537973475381843410680275210455739125799921532127217768272602543932458495699605359196215918207023028761763443795342656785630875363685651165117623961897771323236682804984586201275351579853832468889861081139272982299840003354535625647347923732372625373504324444021510825156690974791883912165015947612621698103670268166035831556333905913533534105348428958917878773191390753873274353736320842782613275559362817984043122200242315815953516741246421022700705702058329816305131311379924476413277027615229488749711931839834478153120606858637569831177882047004597985215685306053217016632929379372539878332670270847599445193938644380158801390016619067259417359476544313401930109962923867797258523175578165908196536809913093089766556331845606962133821104749210549557760563322055033466902907605678031745506147927345379300434307778376118912947823449116276768087835386795100423481399032578162547969249607427014745199569224237496849009114288417162994131170525868722222771807160839697294846941382915855593237949181255916297638939991646969420411457497934502312609079926521072144494922538329904220669024188123721030791831012974580190131965691772666033531051382084587814406427475284301770958059494070553175108026895592318591523819194537361432536615611566491802474372716593662417666243112511846254586305962409726512591852307159031887007245487482707187766991215499659399077795542091808525288302952893738183671342470084340815449220730302800573153702306871546191447260438970207345427780051687644620231097947142990835417215675123289173425414965441928945789925051837262833766078267533364433038242816664957208658476419263728719107853347848806686288518888074475405364197626951043014412179298013497702995020205067890084475114662184726645556743859364291132412806222692113847033910725995391350068268833647512877367486117380691273602706429116343311207159890797342306258006504806853085109586219841256387185054786487237112339217415718943654893278044547263514863005818776366764105425294818986710407016606771849992588482280906265260622322785879190576416272441132104274982581951314598604154369883650568822253110021498971214131772625791730077294195067548318722573318565979749473615563523617088056826680062433544071669012351222557040473021431926444536971194253553099109128558115749138933472458289256770352270946044444747166969263389344211121153768704465709852270968406487767980442235315236438139073269611016703620867683262201978385013364458169370157747613204225219498644348507238672264525081607023356758399314518387418315481841722870227144695752488686666115572506971427601984840252187385490735516850635926896136468734302571535468644597961689400519292353592499304008660112604556452641244914921050833612332692648954858511492998892382678977604593295957760296202585372149574372771272470951776237225916892547672039927146373588816730349507753410864281066614197377990905018228979049773710518643562803459273585754406101783281388230099188115097091917031687945882324268476394030379289191597890415760246966571878919897981862371336787820398261834893651554559153887794358793204935801327808949748132368257754900546267008468636777292344806662889531591487343541239401001302100060103701065973225351804406028158720070455245894459339421488347176655696064087543681175492941516543549574817505430003117591390334017286878277051315105345680269570353115258315640232802913852951342444718038471722913239792110939072027490364000326335804162916801851080498601193254702054690395195742623110483101608386866623697152256633353384546251579118288098964897011008598570172056435698578558357101157958895223869646862382875325540215444538561884851972277283560704959950832217865837927491462865323277290104489252497038942591695201138014277772043972343788259088712691396264642820721999094377510404905910034433805267512235333910790138502583054232036001447128359212419096357570069263373969803677906910440387251201979996966389803177060174498752501333533140032323475260830753820575013818221567296852411792866117214091335384608872402834048382402631384431165516281778737556792337732377836380666075347092856068067231420042330806620124092943692631971248884152840032947500110166261478723164260655194932364788358414234308931828702368537633683749578148988497696274717149378808998095285034532997695093659510978823847886319062495382209001827681838327546383132905763062510594343415725810625492003808712679776473295837709957649371359183656567391231573495975391834691818670798337490883264326373548937049395875218936047784466153901209061394646927698419944217792216583077640007382538013338734567663996943702270379727904245047647931908458816214757081153908105445313118274663286372024191632247338699013321378755425857034741030296050937913550536628059674042720012310827586377593231916246245975908621319121605070937323641318613133612682333846230312217729164873373819499439231282472561450026088296068186007306603642379958104847453689612117794612851260568347714961358354757053483518029715306265420599529979688494697866647975781623490275453759989516296959954840810533749959335297578013528528259816618900346416491373865708845552618766568595310615170365268330885590283799135319370080560276656008099512205368391697162050417854135252004864422181213731814750173025564358327519600868384143301916623158366160512932743268962354726648882485023855782819415861772693240272876186522027780044286924054854192208452542544028936205202623923477230417426921630531186832103897061547168214282494630836663531380366033257054087441160190614758480410196228821296427695221251247078772846716128707473014718569827544311726980922416230629157097136248500631119884969466279627842054558922212192827969994256024024415822899134183408926670484365932911295354328205193478064089437609220545417772607884547612465122147541404111193666379417392927077817762484783587810576558055137704400343626165603051249898525104778920101552537287518215811327495940391856803715712929160240824877674124699718832632333328938100870425394629752011863633583098333256113532191316172676098107317948252005625305191855551361919268105092126346140086725926937874071005739559851211295039714724587991310475206730288372167103341290063520225984454797549929335479627254366042130590343989010548442322586133044674030884701483535552637989121602726596486377812212588448343113023761684366415403189506903439072560781998000638251541825662783964134750472670294963524441645846391660473423140138814939421535115276665615228982931190165169859313821581913892029534779299721920080415029160693630944527739185399164252545599021449443358403567027892678764983992287831633805824068145610936367586982926467085562376884885934198311013949391124703786194666701141627206007115847124715680258795816878632429802671756690347168518741590358105860301842183491332317231601725474902572841358966826502099922763545913453080621794158128641800644532389265312220889672025409280900763325644616828644455522230065921415042580111434844081576425376544942138395128378558049472493027561208493562144181039146360049046354366268556978399204502621441472704547852505066824907866866116340047218158303188363584653311739432322513605860304558833880518982181798271073540619872458308907440299825152302619706206272779441923950879683985548887334184386431417528367643172434949402231151987614197084513018289658264728638811246069874892177772571337326184745149172387092426804760682822505241039682303932785673759734422462183615250351030691791404870575767459292700265698208623821165971562790096341391572774781207863304559046079335978221133934556217456086979559069092474916392400813544976526862355617842527766575245296241146851467765861246910070875038641586663626797816460377358089666746139558823168165889429700275234178827102277056505099719899331207917590293223350723171090819330275075046451757009145856785110087487002823369248472597129791332487494074606415685577863282293961441088830596579075518480813567290977383735242492430811619734836158178885887706783194034709975610014194787774907987596706897658500315055799378596951057652009352666830451252830885083810290785877511858774769582785543005581525172539853314546805757155376571074638418815793187922599765711791243036687978188929284031303007654364126480372892142639392782904611139496054915698125220871056591037632118269912621266674406563416352750592686550644271604647088378167666234052807067925579048418625052427355280790487208636787495229103037228495429940747112843809041424947295476648848629547279783904896270797152031369335259027970212263977789772840927182286248923432845541223110622327321198114511516984384394817873073675556573505297590021931303507377023322071427198725694806719912822953843395783401042533857973343868822824936126698408259625853424808444381080728219984098552874418542554361541133897929990080930575532644177067311422530511422621166339195865051666124669235218962012898976857771162114340474963033394615303586123895992569832306195029328079699549860542379157862508418712284063098112418152771510079817030645487184716915369032949973928400559776845327416079696063954571615114881214042407792825780135452790418825234208843487221319139149506069454540179160023400368321230862077568240590173304144179877322078941577698931956417142094052081961327795776395404934736467621188488156762364691504440397478184942649842824331425956545723645454098505919308334503733775103863647082051967288822071426563135302175635089748732604629410886620000908426741982690229728888164886609740259634313481187591439497247277300844892612959093813491276078193777559348978226518237920946545707337939975250046610227033469876898740223176303755455682744771108187923750747862843854240316330957260992390357076759145434847081939103251085696042334459697283300163593027036585439389957122047909401822574773604800231109067938135590995126089332311470431450783352718649024452245678688565206634925225953525064747143020512048706368419019372232797735021493016806168401882127858181159386781073079205084349361367149453249614670640614168720748867973457326373835974522891371193035991829122336076596952439988177524921863244136808834751014601545079890451359695837639838386070884221243444064794635069668813636640139792925874569783529343101139507754158439765017952992475331542383423563495764763026707922326676756630714394759450780431775238219480798026775892761058726029372789534988581944558995210104145115963627504693749572857361827268023062166591077204579504862489542756358956323025322800690330012708866810739750361434548934880507207682416593466149912474570134536468988615049689950621331486976381503008819190312785564561541119206200355712304393579145289382096302131777087045342192957158368387457892073826461252533656981116844880404767403834193444918756656220927143132605470128867769783727165178348405135616710958469970668508100913201871050396121550109536473142187714750062943896204615450332302347705550544449207028199244523238794264393599812392157084484211431656442108895334673995070391978255704776435056404855334529742984138901905200550028414747356162382155891438999774980317071392111581695689449590849748872744773854770676345427349359695096018565186508579453637906596166202976707363506845005747533051882904456032477418856381340150764895045254468470965155909470465865906468415498659116789207657760466434372790246566557375691200917123030164831015952968255429172891182308545213890284326848210324804184181909592941200690430573018393244680830411966358294019565849563480783405403363819045424506588015542649165426378517182546905387709711417975038236179738926738745403472832318203554026766633605283725596856581192350994504638489835420884503358932233593223782315983771659021383419275221054648346289356693143008486745772111477297353533069097484228401709795644972175687325758294394598016786263951223997794019004385633168282629764546918905371758551510994463957616034436302435684006199084773292789350290806374384387713828298912526332781204581234618163171662008738817091109786793898707061906781234666305370581785329229042515724210951916330096207849685312870919675467586654633137053848642957592736747844940076323577895079091953877282332044973539601846417880308796768998017161625545013533550257117867811709778449607379411369604601623490703170048827515913029492376117991130109059746611046878705310658775746198711524269080964916233274079257614042880038173461983334593442767205977166750372261927377531686117902082392316965564284004068425607182422556003506462974310560402047740792781227873509166410117393646646525324956269747655159532751892732656901919090880151855415037327409423989582100407737318648952129038027951150351705207140884681397135842395909002943445053909643577687891009805745159969370725090053730777847560115399561277596385949417135379046637701260998297823854585883172576185347190432312255586110940995397529593719460358797044090364655366908168069458245862314410839396497503984299027149165656663587665496578441257706096224047778196418554586490969199657122564911755712845006393642790281118290955560325973220464375213871678345958349045354258225772670712238175621325851591828007189867182106178225413394090152335949056417537449009995479192186292734171997218310890587699565004636978739098932077044297305788597639321644676679643106278271197951810851205855640950303311685042167752796281003061049185162650688257442704572051426674290408006359093776804311789477283375822713877572042377070584756122453265701323429872416600231414737767730095447739063334251515823482201646139653688511908645431394173356068780195253516159894702764520520200426241852592353027701581094682114685568665462400172767066653476045631003208910432054903357119003762745174616698098370561434703750240351538664939960385231136412911543556421968963698466885466666741293544281990441359707508518292106142145798949723058837930375722014357067726480793830601183979516637164634729522810925672202369609011824320523170433790884585688359820386982051825405589114710907573484553748418979267380477044214347543515332783912954162129972133625426183670887535844404129808786670349675882726184529189984335432689174483838060704885968140057215658730409160906381456408516067373161156485521672234664893157478000556527526139152266733114106648492201213511228954609382059796012362793869431174478851736804067266982023586641220406592686264411023512929777152903193452935337234135850229094765790444842167136141531930334933601435206790748873761442472969404588085979268901096753063078592919743248006264037790794640735235654509034300788420977807075159710750854448219085326734113419393194740730055692315317513631238263018901586502615548899236158818061809726686440592441087932424627059649770261404403618459538872926916951000705312825503563102453576799824114922466647287093203980980552875690495578233118428572431303483822955268518842047593808186660565638405961178000387502322715369076439471766501275066067401445699639445788859845537029716590037578168506781687845865353351901351858266258113390517478327494256798394437732128996438539752701105835097443252440022623813827621114745457978581399399646012550722922978335488375924942540656979528548138044113400052347280320584981684055161100331448166277699125924316294016332211395162372078730100838874223321457870149290682129629004874645244265151097943143789680048357004702619477762398538638736993335658929478866619033151043039639032740500835021171809890994731533111577572804782976532465763646405405392512888003423409788478978159226065136159960541776695577125545966804285448510861127942957279080756312936174137500001438535700585426025829224280119771369061543286659867301744058832661772860504540396431570108265900978534910098794719108589036852302521094005744534768418959009171673165974883521006240772184083795963253635582506616293444351331454942351504955590064379387118205198202129648248439219622073801657814632586028188494650382596366889409706679335551461296587626253118684276787937485062533312097389651308181145090052175705710378847077434646930962238361759525383426119307907217141435339266987585136029237661061174655332943238545059373168380398024531129427524328547343259727177427574093845500656799187551040965517660465139825322073010347822964235097076229803280407268981319929976797693378014740792252218087724083812115040796343401412602543221368707355019772480475493327693876249034986296399299993186622604530879643928598702323474299656738873081424596286689895522270137269813579343772351284431924042990706468129534127625888841972583442048697334662535659335864195666175150440804837941033566004085204304311311524491969802431911011237238581129978956748199498094726037346947032763504869529641321329839411542494092230099162481630066145928085919227130288155512543419200551520317039135882613895307966165376176828963313498196359145273191955412007008778711986577922174230233644327714912946466560568174644673864820465143619440061236686297548175460066487285847090391752040757846199521102812066771580717157068985264449431961223839848506226755376105746969852261921361893236764088601802326372128661183008687612940789341732939110953329767688916184365322672623295608099445932541222242299240420870174673694187136143065751122179704770423517662412787100463717515333369282977797067302133872181905851412001610620801904524149130597327811295258861751291051673008059781931414225716656085828719465213042136175090149979420093922346654917916161854741349683238464545924566174012482561876981783220893167222065854219321274219197915376952380904065775532840682335971226799484679763412838123581637869433920045701753279140144804904337090687332175590499478044583744401258548599742036915822080070429496096803344875267162277928894842778550318322831396651879020523876415406328916450797274943561637737438113978376819149770818073130166490966819252555221193190513511329605750910494166473225519276078945283495413630605575725482952079498496145910773942286614488354580131495057897520284878291673072059186697015494742535297357406955177678104175480932091392492719540707688440820771416243548083431995145519825974221045083202282232741974402196233918580691715713233337663504228956329982456963569123169984285633341937237675825028134863082956686210879507424250384520856253501586335381102889481556703168489689957796361813858068387690600603343683501570030260049786935794455687524424728187265897523830207131079122276096616035533748160797137278446906766497910943623863600066834384191596251278846125548263028500185230016402241131653553624950346093586205182829847844257773529827478800287006031714329512596925263602595544269370757337898724774242442695058141016647786699849164734257431945497213762764178622325868546657970827649104673405324320236140829928863595111813273208247529144795829895279349767704918370720288536861335830187888011401535370194419238966321370346417116883017727873063676745803114261633734589435759041791411998476148194030368475872218495237195175842947446728799714101524449542651346339665021223197868004724649736508050629232712829664442254336425007916072533057854365312922434560587788110992838689534041358336603395101196980076349773868042580772974214620879110218496613067785838324276904803648308150026637679116199309118187861954842402494214172989815843298493643268768165999832579844125572554366752308626194990081755837733489631529896643255330512117805003434933269104743840177969603658630814097372277657992319836961071113685577301009653633320178617481496485016749969688685101313574960901253432351916451759103132986339901013773332854671501695746698650011935430214331399313240742215949932229708034152823629901608689963693449329761820493295811217910767765017351456554079421646124357117819169408322008151218593410616286199911798392112351817148102001522286702964994634415266915849882656644713994210073418785092452520456326782446464229036267270468856640997068679282459669323535468397190842767102622080613208131782166969335180435091591365636015407589221731144409081772265582941231688375074988842058258791957546505789819679602715640311640801947819227463687248645500271842039251257627436447766535957921438353061075893812040074323281305856237565505091595924676598745008374822604316652368756354799353025373991293144048855223569003247834854369227519876816503696727344711982055726276635462388640674343277589516435432643012705033728450063899869117930471050643726247182305562728669306941923313222295215337310523186899195624229958192970741534379564994820108955876500101546102369667693023313202047348560633324818135581037996617666734391490793057018654660021134991374102082108493440375759234532870418276318788418717431531160717016506733949478772655107995433348180173620239211786952300511910201356221141669691129450247107395356601060520092528121868878483542013748703454419976419457235962649817841204880247907124587940439904523398308916943370550568294741123131357500019650929671192552286181264592060818034687098269924849884914352556895465851893771429058279344748287815137819312166444610040303919845744909303290659598250061043295829927231986144505094845556454632724494684215916491651803576256588345011614395583298375705661321578623787095901309735087561957869001989026744809809308150632991342506926533359503906387826574037934571527964272691777834114722388868557067688597324198584054149015845600298645115819778255199880143444660700252230659983235636995585953570805627619383927428171035194659872066744417274523215473402307920564999157562258108248126327935395919256697956714949606617930047898763653870220054854381765996264860431438424327875210933907342733019602810008810511501673827323182188862116723196281793393317929750769340243816067604078078349615608910049338985787373429881659655859185058078852185975717063055080705036975751099463259078382887683180523927350735531617779084509957181558185933168422969420114271082400916608387258519953456767696164906119454541166330785026821674451516817395998111828647160048343038722093348629771481220113213784402305025989547349826214067538027880810304768622015144637636941809197426956307544638864372396734805637857306763186706149051845438644423569613496141425037933936881208586707387419762926680420577611219011902047739223956937710808691326431325089737915620158960713521786539705478182945129619082325747348712561704073465452431567846254462132002489699130216530801235836841838496641808207815554552100107030214109830674230035237889759290428656835026495407058864989362921131255944636855593490990624511247265558895918495402010675662460657412138986131633393126315639023505685395720556566713647804140100449605083998362816374941878245754309702932173030335236907555746870171726181208581743029938509955473399231740253444748373853470734425779542519946774481476491919852138387979548074118789452313262556895234407080618040147302916026478518122377348328469383716351905648066569232608294483818372517798733403998952243344446516352705989813456615009238377270189067378506228628917733747807264175254865301754140812225653199461810539474607104929756171170718036591512956901855196247884516272183807801178782317312207416340399654657730205810656592694720982805469593627465290849855890976810246223253244706228715644121067741996324872791912666304176824369762566291601426372686229905583115922679801220963887240944165215269727649056907431172590380954671669863991690786658358301095677506508422720695141346788278453810646331059483965892428663064295522798725078271202029949457129749292813891610028044982490670792376749481566292359376660919325422155613384570915476292888046650443306946592894212937432913147953535516005749225940714086823565681040793829400401477245783222362973018614679725285420999867324129685955043240079675483343345591627134906349970497269286390155952376631063569038576327232740791187437432728007922736208579727414712928326843119616433785102372424013533348938394274780415597549851105927496505279850519427594583651148539432213809650628209912218552991232251554480439573712761709844457332690748554093599896393577639645295547657895820541276432513449217822354388164616612543211761867023377263128999120489787860401981558612181364904733286682068307101417214870186100288445558585339855484932432878005825263084184742739867316940713437119381067647504396335912896596854404505699233764905507894946873985363114454493612770898737866622439383912979061850601691357318695957824875193327139697788424922897129172852036200404973608065347674971117305313322577212689023945696770067746705614115740216575233798157401261442930944281966233190991690029217457743246702632615898937366274292742697884897345347261066329988705617151350257113199952145369122920082002732242876061913436495440325460492016974599668238862553617907899754668944171153914947097405441189938382123441317849362016828317788507687686088360719415825280068025294688432240581375479996710238328894230555339085122207940242702963485366271365479432879614988938319320046943717785932853854737064408186867372681533273196974272182640886037715397803126181065143304761757125907099611349452406098428393803061664203252347126431054628127887509627610872712174831103766414956447069057928564125313844351657221415619453130137221197577651597246368866669996405667394307684702312549397762940695618629915226654162729106872159625686395811895151308437922680158032799249589516963512502809045797296976231185021384588641514245031766879691413479574775360948481225392729159985179723420443538629127603996372495549457487066200833757913974701400257505302832741434707834472107721535496713401605825848400202126999252105165734771155529475540433058658372138288799654030501325059914191760487998634835446556277270268000554941942944101051750628332915095057242991090629123024016269652071010000421268206776222927974548885849048596732267628972205417606933296628160916577500249231716532590130259800060880072593342506817212915019228964172924229728308430945177344791472966172610329617325284600489940434221368039379361229278509210110852756338436111484427517164899946388689069761086523001722642409897058274057951618759604486105258184821547517321269717207875968614353635605640405117174411572846066468099053409932738859054746562669639684291263366518258416371172536825447495761092061433841846781341578600300710673588383802887163787741600557119618749575769160624877691007947288441179001573471158158690707836666019220786295383331183536978251437397200807063093635527460986434850676103207475621212413119607746363106759536832510400867290689882922571070970579237211213380203705827045069738338835457270754854043974213487768548188371435494269818612156559417632946302408388391221411920920372735498153407506560025831810852363565877414581062303080119606915158310506025080401642218028626895937116496567700283513745275205917014339320489972308923590964403577056843107820505012528541646663647918222377595539076768521771742550412418703613801855788158471609843570173675884791399198376265654324670585287478686904816936462388842085317505038653237526912550674740888378757744908719005816603453398273908421366210765727236247789468505447451535165797585103916280459956328530347983191110822234297308699536609153692937006922418931463048235624267560304246019220809856529638904132853754050577234876266711930377166457212224219730290288364559725837080385827349106382214024815586405584829977345729266049528112258350625770283794974643637749384171980701821875027962329712448862903018210392871123569489769880720604672484251606568787593096374060616339456297746220146992665116070415554263836329401592641024272264174821918537103242851572326956864574633333071300309090178841228816590817129633770752234267189776974512040794477998648211853687399071282529023923712550534735915071513415281508437015468768068785550200832365850067998591018213102645486144279382775076023874063281364455281550327652209228949734022765173252338476417051787170423400089955097005206460408701412560771087178423841347865293343609062622883690472164478948909324023206897365538138454558690546414948217221307854728662238667820527473596976471826361739012839613339513102198038445769701160392908604894327807483375519741529430676634701713280352158112471061196775681780975707416322863587762234094696841378217429472966330898905823762968028870184883075807976761481521665240237555168993990449025331329796697999791260185680057615666580621140505499994458017243906021688480959562393995975350130465750152696799521427357361253273491089861933131752831929806119258968154901484051186451835529103456617575688856430539165368060539842909525543445986333337348451455799660317760794381915451826874904252094473667279192229744738637932424810014122809832245657398292483208351499754702880442548209436779086707303881403175349858678129318306030066048494237727091404858248114082860619155667685877364760301514392357481908261706875403935923350029718905212039678954925625460380142417192926258618004613348363662826538874410634791933593135015118009411375471844357782260735875844613514722093269589520572742166297636130566726526713238316363538897007378432990351052842115710117989641583037269133578487956555857533030977534302126778877763928687689971088301478755739763345371139084384258792066594187996882116022004351949358951401779203474161476708390878395835144491833046226507015309112510971663668516895400449608220983310235236328503791474435922819000104358864319192403820917206475774128821186936994523317441948971631031565155280432166762997396899076466441987775810601002321482000072853665886963811650599383964004021800027487031059874133015374152599040478794496382988158119123439727368187242202957958438821982539112383153512237673795526146577322713150593460167083624347627000814900142342292013348006238948505135965920651455854533712988192615867313478722729654047246937839289736307163141168198611929481322928676624908553844477491922102872588469029699187122611369308001106670826546717439161901390286542077417429671933312892723583424670566627983804817531767773696362138643641944260465242365532139560965219709160442261450517813974887755700058992337454925085455290923019316287432288903528776736516950837084625755759243702919822150939382645146430600598235775869695989659278991602704220594908183526638261679033259020160521498870821379629371292532143324197745690506571038399332323657925526087855552856264727945300520363336100607875227680577097561780258573631903114410918750364418609671238607751730616024098270434079478831526871216979441412872906860805114784024532311198792557326087284014594559739047956892549308751692817415703820044253970582308206947381270167513402620747961451199856425983707383099624030827463382339138623313990236613888243269221282794236251344185700217686157530854316904034985816381320630970425601159717215975217983756865492424801164792407203169258478829174266193688918643808475211703987392292961133275960090766945737192232967999041825970762892525653644611149488047135325985011214458145436477402871489386252073332227426944067317756211516579000972994318309926342929030734198478397987599674948131558022670062890893854632476886205394232594237849881532791282588041662774305202048192697309302470234850559638924109097427306185811448742869203340432453452303621790384925925488799932214089484018965830042754621024335267727986524034907234214442917353591819709751904993607720107381321282782970437597104228739023018057791139894247374290966818649437583969840096962583021536755092545219261068033918335843080212294174741805569258811211948077983490336265472793346627448996866646219223801017137604966786987848054940300604543774309840547734292931325702865786322052313355197358587825494037903888478844136102049532101397703131739020294283490226455042250891490870389233318505347156363714050475517699217506224605584202076250241007654183335625094920050909148387453195253772927218949234457181053592217860814042354371814609617867996676970017514601007774684807861791634907217716742392190034550988901094599436966504676314916984060339590451231778038681860898321162895203521780358513614634516970746740303848212164311142633533770958807936921231251571288537939582877706650155422442189895948603785394562332671390287537954806222609962723899702782635227895099110957877748795931471900267987922066001038911128952155289839198329460554526248533958118443440020388520408171498332159204454878230192363980187878835710751573086136259850945662063707566914430191236863837110960459373963437461199468862951949378097686206469313805091560308972643772886685049501578206779915526280665618230553085719539856158428743187670934140985949323185474118141033752970481215769109590553487662305474681690862060259711990455285328594429056325059614380337543074813514696362645807143964841628605791743709350112190798105847689545398848530907467372542829608104879405326087935838234898960209767807511432257378971492528907193953183331782334507727934945898682527225166051549380372310726413193038220175690760567796031482165287031649836627977030550245528508186660891963452770931566790783949077654489870318529781838093131871343255104119368883914982632776816373533331938018383876640121252842358724010171194115239884547261338990987855501340214196782019003798579679980159556433894927713571140820846466411401182763428572196296026379304392763927709840811155473827292938486649302321719480256821291815476588414995015008723637581285794701496316271165858129027749244260172375748569185229237691493608534637388903538760698955010680575833031777938338305972502988243356401586040745809308799471343634825976142619497580023773983038886893751168950465261297337876811353193275186474236922688465080092145866429610880479490837250017336297419708007213044813484260649208033655429739773973529086370620050333268293474135670027280112989547674373912182245576532716673489267507129507604682351394743584581512066932007700953726961650737938203658313575103252804743115288991416660835605180116894637158677774938640853291400624005062713181709900859457658066965426937825099404202850411058469690900188561707073518938050138054231397952718637071313208613864388660614979799121621540043347522819879348312397832220991142454584576754262391366891496172978279838188000464680388923310604943038252161802145961412312723828064155958141031821157228158241317224543953939527794600188552186230464499429821526743560190122240981323761640505515834236313175533302913814412344529383048770537130538990329104963833768247521670132500414167859230283985478532863699807138693791066788684356544860505335086412401912240973253131703196156207421659243635801963447486622598168209307457778820659090146980208411989832028138767242278867315711728668188387376475921475906408816850706207862838597364955489505729658256753434873385936144144305960249776699349676630170109491765417095237472718235777944522978870253029059336325401234159547023965594794445706305213825550213554655606780636887184488486319248300003792675387130485151502353974218714205118085000091028463379323910950602410703562659546192648710188340918960208697654086163532276633201851882306177428789328138612665578014232130433040548518137726120444989389517102436939286510426911695771631564112046816364293945403264954169182745327960542084140586737810038414712232735773079999722335507174430274343846375835592380670267518608048693420912493441270448154424953796213396251281811576053618699127162023133970683433259214690084235055188004385174019446415629877347265659184572518034094566082148271932451221550616122486672872510209800493919063443915965796208686350761420178851704724574709899396861679647179638217436086353572842822130160884819311711255817854669452690816524469091467667108070024519392420351113786399023571067548356613480511246587351200806170259230146827228086338830641058487980793935701206115870745733411717940053514273298319233802327655210487447708606736732794343969159338444445666507560353800127877078151216090148976121831613960595597949557297363310248699165213656840078739604096525776160291001820562916948303661313445841818852377128902251189092416790192208447701769741942844393943337130989356715612082005853327083155142360515337415644669637290260586577203995554566880691757810672961908787257605089722752545790488540032706338689634863297783362160974894733200192019287146086343147343364523147747523125948794476548797080985060991983701181750147336757055061220048939719817501494152864243178195339062685620936362524848002729458605538794363797870046331440534032946505940796352306983673029187025813991543373208629621625758574351414256398570177644359129014600321681226712204857613811538924794994101630396897531888490260315016198688339283378200321933640155277176250996337005718840778144531999499653533123483000364643084616698751935324382202293270480194631510621438033996040138826267554949804989890371379698520479131446879169804532664849795712973725060526643872678658440127470099509148054800382262835796120551142998709699438824702619259225532417192069723984824780779688165991704978224413331487811090475691226244193282075572835132779220982896466400181646563996663798366414415715931062038673421314115841647812576273133746899694714337832235516708668246135388788565464351493799111661768270720985119527594444108607035373629583970653799058047583154943035870589600611912476304370600722440050783908443217328121613854835096815812665664992412896113369943971320058070635303625872111249597291448302112757876272811883420950560108065794244701770087488627252412677288459389018577056212927367982769039740669541420722733297698634559659102067382729208516211604726616209574418998922474195700638832266097372502086215848081708233609679842938342024229452579461467519725579299517838042586710337383603359870850831725798793002979337395491730084823602291528329707362493279290198453832228270493421652123921286884846943429442981179290789498700938378780922201249674925220992399160219001272675506521854468098297624608483217539475179296000780079449197937312421594477974910118040848722794362399382203015314606391745879194016523715687398064820399101520298515322868736379688600278602056734972234817963440498437642250886203741111598439344249598564644497882776011711151725559917127971333442665086770887469395915513759767011146667972700591060453307454922265153820746294463090552876612944745261343483852912224069480440076148128196193899057655640051985545091521174684736865175401853058763153151852055374726712601429642229195515967494212012097512170703035155648983189671459119685994746448845827783422314341679428349554248749050896129654183195987663780333351953849026347949565618015592122972578991544191991938863085218891975288717351863953722107547849586155349522457459186609597110648715836312142288384341284747879152997770622677801183826199516779350176656425375858840587789554689825548450114380937219068698413368509175616960402941736607798223895836568018338565775353135280065538923387015603441348419040981905587841834206209379168267945761594381221420247561843059775437520808188399050251277428453999276994205729341939179217725214168875388069071517594506220752771485899613963799588292695653040098080982382890443463171113286724927064920109759416026124757192154003141116213824347936490355633783170046410390914533185238634625636697113337442348493907718100487304238045989602136705670877050590008512930690233378180193409846934947933571695955192105950950303696082449030134697847443744560881585450235557411660389795873269576356727495495465627034802722004033538239568726838715622971236757759940835926432470662446536765137975772916752251728252271423783397934598664142870798935733271671869372041904943025241159619233225421279366033063085684462006457484697533363047645504119492600280983909348127572218972297917848514129428876539884552145844116859047978273861497695449019986111889144184891519520406810687093507401304225977757570614279489170549135492600244303939005250756772605464716859332293362432393736222774549556878939558471297217990236071161892231933448680379332464602111241295566487557756288382972682012905285772226550816512090270140148052041401537233471275985079036289964263131374954379954637195949825351284534361719008326323427488852068116546148514326638937220059106209509908956575208932297006907420385444529542324163830451540418385891313328659825969604479183770439654861916917713530630108550172169712790187490080200672478108870649760178545052198621640650638614655245138354259575238717304328208878949079049728524376934853409221020948060650106014130079595874977871451356831053423965664209798337376419997448503482266145920515664816302861246504812642119183123299789407506133346732899601286363703657642983620009554309662421871552495239581472118507467421167555525190026581734604676127305481275831697537897130195810589872281307495661713469777545633928029854366261835908822312441582602449041098103751479723849352384509799850457353169539801787544096157520366134391234551573156871447136650911466547386952377728731853069922319915052911741669773217790959860166348795196917064503620820101539470676763293726418690489010093658316269632098639432556520546098748905840771339756583499483533943616968676058298759258047465882564645144044652886701507187465095772524701879661950790259791882703094114428509730011677448818159203494948478005419415417387395115719855894255830716677514925630000779904422944068688810015740423263674178225806355799055376118858530351129502529168113469538487162436760445197373653571978907068090625635676980806414238515507132210079566417704058818344374189985373262061510771926975994414475952851580220306690177552371706071212704195357206791698271622174886154777246758626933768222036966379270557648306788734674819028106830655703031667015596593174096432193355512607029303430601886109523923971320907990092566120493768741326549689033459407937639815578110654826199547300615708315981335060580397376624182541532567579649561672394145234559679576251247759465619562871625836237887146320976759458577724869075530291194124347014599768138516153383804489177273455279641937307082689276527636206592207822865485190336219279235616156536709731999954516774955117882965636175077208797834037064704535724597106270022497036649972218520791330045945872622916108293466835349882163065725193161252331715332599238798460101582184524237238782882646212393693744037106640919306445178312535993960100695412778730860272584285732868379864032280198557639428246716422890899143297090604209197644187790112103861322556793326065113234015003613322676209604218411489318458948583871733074698409456330148011198158325977464738097304939550475213139262841013474263487619414235314291157006027359128432413172535609138286470117022406284045942264966832998200639374835997434727574451873462227122151483515607870155065129020444184402347840824779112007050177019617967532251563218590587141585780937927706991135020070785587899382584364111498733909959209516760698356620331627567212231837584008453468114755975349703427020856013526013824071618237245607046744340056428952024780013407805910530415343887527642145708597569241022283978561677962841178914998433775239155348176354176325389246257037854111390134222560873447867599850287502392803046945014099443614518354715971224778475209079935973914424150425241588147037642050453800094293760770315374567463124625032135487364264227731945641806628338634280774350440038349967776477436597977792763153843391674295703722211661947033423443639603628859039412661417664256353120952605813176433530560990899601456532177208856060011802520297325746917603875426842973538983060431258231388399645027158983854718863661389165313945177577298055778676489469054598675959152274628347844972984046717371502049406695177355138856267217513919306563418960835934302413851483567432331333112026263908556947307574802960114950546483957265181386731162532325854985768226178519537888208968388651303635181851780832793469110362627928606695507980077975387209649480543533118648803302824137366233780268380600724542397700243016273751795176473572817461202723120784829637188006841116794459779537233318720045763959852169084942778086118082398237913550876673867109030322973451941539313386418474776333000473758901516220210823710756460706436050219343090729630199665037094438893177331246050201211896099471253429684998459306833025632663966727042825833961531362264693410596591943813649394638572734638599621135810373261803023628042832117253651566996233015017785903265974719452449340045851702896658027344403944735274439865948576144606089155611658566835750517217292655951759940813596152773394779741921559127596819878106545129128552069491484380187260554929930007298786808461071488495767362225699905269980316705542392119178344680528946578755789066056750275514485401055557716825065808507298011959896686103171587660369690934957822267499540805893067589696159932414268715103261150256505500518104433455514078477543403779131699193904123469260493316396020568258119585649181164955833048615109867772330642010212042376546288193495689267618618441514074614343651195035632903940467873675303453127101884717506647330771595983636084135837995069585097677510932994845703871308786580495726452328548706544977947798190276661034823385071040195976492134538246424817456166058369938222323357320122512170703744141634131335698859760182966288528808741990591163467140887861400370226292438838015306218027066664386518448438503827098171870249425424356873526499020191422611100298212103229730089521921838814628938388936309470010686106112830620678930268443740820772678593579682674455027923303351703339408315336730712008266896840456245072766443736043518090904015944445256820184535475066100587089917210684503948484834309022418447462851314867372610894088932563519672297534012128999445042664636833982925954378527113799655551055503356031203996807050703064362932884787213615164259083099472932378476669593749921579355912402843889925162008169064522271184960415235920265498765783354678744646223844414871630752066890108422028112370869119594541922442916405699460176684618084876271746313739701632757984849922198362661757451249916031050223110992955983977546396597425190165246369137621158998177707232059277417170139098466929675382843419899146947826495099556595183379033879733161337227519440305030651088547599614465288729081042922878725682660127495173036592441042641399118123966289969293608655513625560933171820781926121439641973021557743961290542606895756395378264170492972795327749051488414508766433736297970219108305737423276905591529620447702650610723778753612869526551940669763403572042023209961368372670135951352137381159177237339570383781179751538843768307897758882664781481111781843772405137369851187078766802292570026942733988373539357528061010144646843771613474342633883867645033895101477100918037843054665420631361760625308125196790152077007545530807146979840324372434991981838541651264246770220294815958464866133613098137127852013508554919755928023013464108123005152209802761091696282226536241507462839080884193875472607477452322675300713323009867763520533502393237430301669585334327036340425511797585354823080603734087390082313086096230500613039254557474938160683563984274145439270299589597661415183844580179314810013598849064324329981312204648635625804122135601908940053074081531716360356012800571878403496260225573946136146864914726421080899723113114138905294123483846603875343064344706075292540784844182164111995716590298207982182692937999573904535977159559001537794199183685815264027177771472486333423105050387355103878053912482074946127270136577544188416894367273242148127211762506740941860602849999820002441511334439271997332780089804085902735098780718321369848590724145606098364710131998511783798411014013139509281587692795209639973589045389004513194946991103064757038173593334131779215755990768799881163546518601061403518949110660360973766231827578935849052533670758287297224295529702871858460028956589694537616252568864349665563859828953139938254060361908762714386642610424494485934232033603407205262879602988922985227173689178698301339616368302138122345149303922335776423277347928015323115853494096505096152490380358712325785539515325307440055780857279777466981821009163948033910023574700365863944010212840877272309000984076409951102546550924692553183802366379663426461978916046401757476012788118960249237736856787346056037715103923175611609517596968644845485201273110822313850321425626747627930277812022413004881048009564609415559796703814023644783984106327315625845026186993776929229123687892219096062051408571530799519953248745572233505231196926084894563452412401160337452019684557803995250959127589942467167142395824057978299492350443412074804533383237769138337207683996820158301040673483898845166337462958303229222965593156258570530233106917684958707883217869812833235019932128804887401236447662095372035470256642869020848035557569275925781574119266906839335284042687714684845573879545076297645157396937017760344296278544636224951852727506265719257226481232902365270488597196696981241986179297951619592540979333312089938695971262374412456745308692969977584308579263099310098795539655680951586377998425416120378131561328630502053873627606677510285124291885321413555932275724636828191128993717067785108238151249420129138991236889261193515873981516786445810667985707235473884734730896747290914064413453486234167836907670894554072126692730855690818917906574054083368801029409683348329706060841805103749349301019522392266691891697417281614272227125715561969295090383306692752919626932902694181536248180734409250640561430143030088366738573596084676151715093233611561320299970794893289888119181175525473999580984598797019881509764018611221527458867579046308834707197490120155495525150747570320857640258975539386130012884856515153942039733505409065127541205653705351719691659697916368763625178616618929518639429841766857286455198761372168797837606041092890438642885151181312948896905226461014515015286698637514040381002693495866210632142192654989747685461914102227155537434395193605997491269390760454351891827044994980963916911378501511170935705752294295586250589790666487335696089804893853645224346328104533242673539975524259397890754528173483831330808268708446527789726721155520455206161589420421495162280918740629935816140832722618821934262700529367810428355631475965009669143404427472125444676337615402077504834299971651425264803325443818526264372860417995241488895833597319654971113853545553393915441833098871799816311621504548103082544156502292562715929541096712767686712166644439142542675121625285334737484017525513096915221440184608576298473753546425333861599003033801197164538900298795534032994657339750242425081929381259469937767478001188210868458152005285525635205275017573519580728576636030216187041917765710933296191286490466385425835317231532822300081584827366249020080131860202825020101216038598106662543843908695521359442654267672342715108452335897394217669809132274733048859749248704271324606454556535486290955138976657320095845804438778432111284010381552440841936374991461028340225376512643364300215954431841187256900866472428571199285607971049425511470033394822959006325011018093757391852971546340963760206763887652690438825306767006639839776840475409574865991167377219206632547671778073252223801319311372055978536572390904502990913001792184893585105310774732775820373859177011261800394255037773430971603515850936008517255994441061907169388408035947440278584934344021689605634597364498743425734345675643355098363137648312390319273121910771514021180488851885178370668766997971562778511538936348476810092021390277028016637880428817117616185308159637338425442131547000410824767249325955151717259569928690724840824813651179587577747567435730098340069235013177410773155474978915813751329527817236466199999703139315318415693641880996518041785858007452047941743101920657770160427487338390651508919972749824409731395515113290493097968163423359693613697485470935988860145149907907941516189289964772438999728509630459390093573710568455120988501874312650519745446112041607341333596592606723250298306980293347400550697956908542152094831057905110688086468448082876866268988135720934769832638401481822173209127724515520554636212037225646736390846841783793483919026326155423418080981513277785701281057923819083062149859137028489237263571809308947848729919682498212776305740671705327542670671977062564562435602380683505694317044021733098904901081152528907387463150081063229809155912298366118396006177138531920495498085060893360259412658729953410023808993997942875150691083379223419888534192225513489548782322045739367533433486780396166125767218613066290487574309009838997186271966630498407945437098228366234237126025644790805945448777523609076071688405093755390345534674429808355038211302609592829619192090589803516140430209356397193658373701686350873419746439316457912386015273384686534879784404820468994876170006320111343844220906035131580942470621578634707384111223941290092876174451302610001861273098609979537320806379005551991426981787843586263950851621403111946866796549003401632310641460308708708954961679814127170082703958139070549087037891938707465329799362252603888110642122018601593889790564706266211416525816744936164426715692188237346844837569059709042678098161249022386103296699420739989024586897101684251947886867545826861830341316578815540589234802822776272568356262248140245962744411778597287070347094168805915595161694433263852096685186276285948762046899773416443491731959450381053280153342346667215374628325011151247483634226400489523764787321013540396388437495765990846879296958407455287798440590278483538919051353987360747503949023049374261228644473909099741426418957963133246780980356212975376555681315249144724602864147879871748894107403818759679688829507717365801319148291816565985547277736765472905581652501005739199414831231028804030350104579704059831125221699976886204619729857879518578006191572717024729093623992755796897640151921846664883743696127955174191356001470881417184075843024454490007559869508867506083344552746206663249205158716035931580921175523137881329183422703825072993039549617847998219278771331020838115670210535363420337993083445747015954389352716214080135588055021936880863491652804124345545526974881400123078734345751783092408465516025057906420720802197620712966915970228156573154646474422255100655147529180373237814688863701151139328461347164549400229494160160380282338803574687762841254644735730382266722906815765013938464600386586670980922960245076732098949072536952655293848853422524224380313603455306403742363304278041904835601768053044770140404478818735803945843335495174968822440368227948547184854686343698510312327950099938225355549922659468561986806921069909008137206026533922845480381174315588139466776173408452692668745473998547436023974672162834399468340840781932156470420998627588823187591814182744704124409669237336146155171426365712446866182215476786570052724208752371125854292276868131938022157508187188221885927133299295218274175448069636010924763429577250708373820860012534571515628019013309725530560563777583047878231679998376691990488569708133292707179686831532231159118274126868651193164506382390549205408920792009923176282336563196730345575899220010239236608273502329075961163334839821233342412844672116125902553421744509017568368693954928958522528042436081072056525000599869029075572899194716821151864210718688562906965759315561369814153752967826120068955729078881717310705058560374012800680401589976137711477443678812449540760253748412461041401567953668209881862336124538110112681302202432275263947565049965549090486671234136452855375367920695830624575484096528723289863102586375451932207931010285220235775150278742821940356211873051759135216113799602173191939664468447020773550908734743271002421646234735970377361864421363418354249834083249890742565543213691545049242686549664613137684048449844079191151760950043416725657470817799271074541443052769598612896423975675551268373090224605419412807303812209680281513522123633669185891997297160990247719208055136582945442230614629812372063011253953957227708503075864344915775010604407093903480584759865679642471773983187156440078465163724571416024409460318462849686667505076364800312145541834209395067755327333689247842261712112237213134699100536356395230017034172441852438548429265649708059048420280100680285181459554431242858722869214914667170214611612132441723498349276667498593768850798166523574887592721952665516727476280121942831198701435807102537295866484597591658737928549040207731467214069741810084255373668176193510084903638843883108201675746756260349656676419645229971718936132164559916276548136550756915292415132637472603838896652734655443018658729232561912130082709003785455298891083730422735666898720027328604667455656042674636962265868178885212417729960134208056377860838501813890830921674109433380124700965945124754615127619015267204248458153593002527913328103288804927817899521081584734122233158296049877918986645514957014037951976734991648784971061609012679988818525237880672410484943329276195750114857313251976844345850251275227503477896091658503113898767211761949337760086316412400326091692967372209065594054536574423732091207367329606250655272453483316658169339801880484123792913742107563473157023177418958054937166079704706508946784038771953394057996546230281341600541681027867297430003280911018799055818211982853703225809770192141113089952643130724694983954131442679908468249783916953758363147274106186990061677996150382752601632564213796410066627148612702816589755471595079773766145142398374217558312726536903284254484783804728551517101752278237052828309345804975111965157191081427689617100806701971859019398183203879830170237869287984200979360209766579649208482105058410170208477893261403459400892367467205628436811528605776118223349999678963345382224783089995199541355705425015290715827139989157291614397491669496911147711242673423214550972011687578166445531618729619391487358086045165459563975590951652154663879887931817777052990883289469633369530151649304518525918498878472767792804556397904131451326585582080111290247589126581107363593184474717757020253004059048700377704062157304777754875422538405829069485740374201235721514324498432485948599063423643846677220212556161272239669194024924682010488110191845890688054533980060327940031576324985305695734821790783186655190071569838616664035205359366072327257111053689016958921989063628645543876384648234627270245673196639840040689623754049072049729512047389442439519892730107116777260474367719311108979877424812815501167198102441527965683740738201100778549120723329930200310153552120214713650220947116814119911189330115013562463722531725180965828352151763705058923327257781877522354918214947947018608779941977908096171675672871166730464420036573611906448773259974269632544519264430719807969710386003259397983277856634607148714648843447778705588900431291759795229212669725640504053850100807677346910355362890481824885787705918325495755467451935051355770408649067362286012886462969701475720214088871051033359063454203041611052235408178041030686174278037635920364850733265134761893021099429379218631267719314939604545001084185401306423328876402553640935073771877873051740461167771810930855124519944426386527284266170903942711554247197831150389683684776518861737300998461553659939441809202133073099347803371400417112757627726596578475193620817742175961497328522911099826290247686302713105581936626975187575032979033895113106425851655226065004458601838318089561679904087800812003195533048599471305474518986024119345472028504434274052115430570979865923812555373782175349917660692257027877033176285622987939386762892298796964964368886676801590175947477370456706188117156778680237458450052962436779009036644917297070395644341167286901648990514636225735347009937461686644962812947165732058952870192656102539473386732219965278668152381314576241212127946823889580878629646986371696289352269402033111190446233698364364457892649640918326444887258972373116228872923031714629950891695393506796777555295312338349033463447636130067536705075271369231778948052457133953972630238975397417033481048792265352892918656892963241851915488828225368405252423113402312697214376265268850606027944326645216425562419357392333780466981094641205705947858908183820837353490597214177264062308071152706012887113430764213084227842241617376711441079959558527959480128542625202482809800253171365964348717758000348359153592450475048169169737379105239138729680716153714541947147859662937059326181511872422981211736297804670595971978310248970949714554923304495108036351451754986342630906816342521902262688338405590970076356113602991095757302963343144217094420308909722603916869331320214925541285561007425525802554464444165976564961343759412357437040715772942623874361168106839771435999306618098008628613513915069654793432011873221241959155718922116770809112018855505707666555917713505751358296186663822023881153473187276840422079528282749268964864272457654642416457826868073983906422592206642282670075200535667033222533716886268246763139636656095416711577190399814184312715189546371157936865256651911956015073886628457032171556002052214080402416246493236838283300937683342158599439488580037786991707836841332342527017403418525067476134363749105751193119915242771790788971114966769129797884130113139026323716538397277670942568180099304691715824823427346538980057038709262984500758609421061745272221318366249850728306304486244236553976677310475823450789407235495928997093958114138580310687087719641225518263108943684154644430464850810421256339116393748300687978095090075886139559464121120768061551973967527340394473463975391018544245852586048772109553871926336886445161134288187521928976135096798886973826531043006903106977071464264078214952785460449597432298765455463342179537129509617990913965499101256455404460998875399130842895821383171692574895284148251403139153673432236283291449241278510087462288551433533509185747896767429067159537596047559457799556845013117538911251469876333012278275919312211824549006126833513204923491081459628097448854120911941730629758304767015795755646215961383250268076790104860672562459655145105627833931309242577349771585773599758226215905451614289233183587780443813170760391302834058032858742589612395250201341158272455840073451504712269837123581573585146403100836986845965654577241935700851243232498022867928751256488348967408832342408259964286007592367446527012891698293768464773159225046958804355372134966127217881415542906159076445072820959500732780603805916783167969426345006781386054648068776692017830362400745206309347177394336475525515364429716109260308783017445295394480750314927275783274685790298091696864130614999858675872749369851720060371613721067110294608623389296729117411003699987949818632365470952694117321020133897493087434506296134179910896156359086070145512050781555394321825423327962242562130662236099324927659505477523452768011050604778386796969980542957945146083200606222213987661361257013503036781499265249861445412877102905691124940637287691305533950083290324099531427490025208387768787128615162823759804791348697329527287999599470767663584995855087168722111204236570628861914752005179028231717461324338606434360751544315043511787210460218561083451274542443101140121740039229609351315735832363619615098763179465069285526912996675884090734337573112594178696713329949380570124309483680582927414362005682945776000659284084583623525775804598804899866634825551195663541516593819868899217078932274373802588337524596703681030708706018029384539357344610088750831325280627015155086522948533334138590094587079953875678491007397561410401336597042253368270282606219163430731969505614713531518206742406861527075688922805490817708649001754061580335072503402697088562412760577177832773579196466415263363050714272355776865431961722389366547677546239640356211176075336299294533695801495224719190288985015404111510111514150948436047014921207877933819110400251132520580716856765451691138045986388164437668226196318602933635211248468254927774619609846902764249313901235478248642250134069794860587105144803069887228974768917096445461894661771464304840540354033535128070894424471588602347153898834575588008815179462956559632373308703995679608934444974591498118195669663087087344081758119888672058561645225844382376211529608585607825128540649470436264078420476906693634701187686048463112205459470116439459843725178747549770889520049442123356197828795160019658440463138531280324652616834303880242310533757092887478808189417223801726049686037761426223004440378824664568639130278184653886612297702877111485040772585402242406374980987862189883981163082322044381616830112264579200024407671330487508172452827614361096714285827515552545967319713882951224168721715775317802561693633203847697924398374787044129560546086563418106726370074629843390052089521584050677129558174373879872821790770906680122774426117247891365067179315727581990011768685629484579640225207254415444742394177239685943252097083469544272223906358442312106299937752032999823033126392506982847210618437519282282271570199450608226904869475215604249842639071081618490287641679041365601217807086467265298465748154565626303322098419842147410089317008745430149919262408000938724373456533012111488443494167113988916012969073552485938666802815719344583957233308073546497999559714650735596829648961342874805241701843644861071286797203311460506427038113228067468006924202375704240928262823245109701353151210502858493513167731608140054401640992673423512126240486846600219346636406651531966523180200881617625957128211136177034194413001454286425771298363847716515687068693529950991289603295917504372523825758342563040625003201864196826372272659088754427158474347513113094021526468606730173594453441603770956363534987249254769248447709104418171098974406161329620467466525877860035937511399295674648842849104204075509953985528376239345684803910937222847525547983395391262511309763781434430487294952191855291341526152012171524640073010009228075983918086496168434608491657620865493723306245490588334548986369359005562489998691063212489238445413965052645226194702781086473772056861055343419241122837282711849425924078796122040996514672242909876630131722269484838872564911873575435529434709625323410691738458597877097915958425723387272044350156655945786319014553803289277059219384797917017667756461960041556626923934660143522206423527336980419864201591819247563411766580608955974421114021943811254207160291780139277049199723693467952404390925551408363467900887192133021025635314062937734908630426473068454869472928505036021015341614258662066934511666975240361443357227386705355262122779052157619589664019788254423562658537708882418545606964691513499168751546625467922921780519758408059345858184526241641234997030315299535825915201949805060938654809245509862115187458021283265729572429748245967217559660681500984645395508283267639658702095720931687251664073790003611335427737080009585194144832608808628007133890230510305301644427386935640472545573351769348896627735244146792265637601549177954722907442700962441185810887407534297405639374662249719683810325055023007307981322886986502669624694012297022200778151747007796728856182046561189307690890795249757401357119300629848996113509902146713270284675444298800147468318463861284475409780585029145083630916964319177737252700450827258065077136477588057874849789386834105355850134665456251239849665018795544051488596646831904608969521483692502664522615197835352749399171343675749951864303849136334860548835611573003336158375851483095414210664361245736479243005340128196521842270905046473520463907356467464280197398441331780545663027577932889155422315435313749126310049267677234741163536516196031258948639426902277425591181790256223111779180686752248853874125866003985018050669943154659686429494010169221370087347909973843804826471957787092546287356607863408915812291452859535637775382685605937795899342931156288623227424970184808486123085848210879182135012573554624097652861192681888923765703474023785382141257370120908939408186924214956792400455214516480975265433811809468194210404228855910053136955077528478332613189247190987962728274449345472288192002016322674052970624915260191511326497168194293323795677186892482253073971222160876810595739675122935914960389649913999630898217606973009190274828956176947574120116344035311819801432566572656269040647953466317047733793045862155125392542694056088317484801219121123871045911995110206940253954814396856346140386581300974132968240627614416717489872722255657209663349552916826044598597261716240202989386778240136749574506941344263020166728704828334806370967236977002643403067989935335095963967672566739192380529691041356144094670657894553927124870031308332234072517223288975437476960492439163377602685141665550751646423209824701246986582273700723452066877216071345911206270475868401033482052791181278533296171799578735550477593656121270703946979477489998235328757765424219603504394798433560189619942868243731632259274705862186496557039468405287425914602732817294265524270890014413192238725999133480211886577483135347186085431204966481780977817295559941172115960702354477654167177351673398996016509751801779488216922789127247302300784412786904558400594571157441210331335695919392189438852253467252721226178804967769257300826140865173305474188504567807116255094186693706580175338419600463737181102179093232326188224285764646434108583684236904793977809476183678315288182394641441087138978242080429495047727728771191103252402829260604561735287950898721615592727887378763260269114019495770407899780454418585183854055237993073342753535166393874117680848748729568946232826831297482505960538506483496091406878233070353013745395767450778948165194528725595905114573914918187861067450532131005400514641704128636461151608674825400190586555964812376399025831715744470393056072847123013978489547880020968271807884997459460577513814009861755147999333084004487518408992361933681621661821204176244755781931689419288708969057898960157220577747237755206023172118083052967503098028305987105594511617702353145738330416227346642222235444479972722744525980144094071132271317456943990752005308759862436864859070045688116257548471625015466844520770371155399345728968731013849132960361303705534164828507173631896556218520553449216324202520949680422471809109431192140941580098788604368167265039895364262790934709564455800004184600641212401683339573986712082146316137514775004885665401044436319715569576740124039288507078013240916322862137849600174076912352813289322121930310106396430402240622939238717316436644518831851403941689541502545631278100456000168075008500176502326831300911681298293699292770536822566595921859229073357111405174818699559584163642210944203528795332855714597848918315535792206152622719238388617808655957782562338216767504048379145062533339065516519235115043520659570844324572485537493814054656019760396027978837055366047207902457582955539669989754191770828153607952949564968549577419184137542756137191089632737850790644642620326001607587419477939654524272829554015723277647861181763089067464881599118101924480747929055737264706906370778046901201053282540719714799813387982650478383190400594393224904271559753578375582542965270566623903083344158327264115697344001158770724158160705062121368938534993005673399102420556124993725708383686771035535256843261616051343198882556054883338994911941217755557632827110965468844399777638257118041002074948421969698486147560048233975771091089224680522935594666609844991687899676977263086773082217981210318316945917585979057232783036997281796145640763434069734206955635224125560980452550227076820722199126868656228467666743943513826805066891857338937552194521516401094480958080681900835617383978189581561656929056476669780525497613301653774961501064297914737387216373037782615630849334216870887713333598322759743058998199023061856683326671750899538338770495795789017553534605390741548160144985234568963013956944987191318248411002052521777365595997405756052183581491072484623079662317394892249033120576803471343374366991060319040896739032574703093006291253460617535204956175497154292724714959910089631450288182965719307053911330152704076755545062518314520125550871147975826660152687884477170530595083631888667022822585745418859136841077767196518221494695691556810763114901911470931732380588003591375392685039845664241488166724396512986158019672887951678299550767498754870231419178202501518703421446623369008683568254630109356699267949639770925966091808499055162686998500656041575095255314925189274269090256825027729265922709251424769943866584787657117281773025486344346288824706576611758500129193068000533336275428533749713602088178022615537849338695616089663286667726297576072041048394391309314555842915523531097581617347106340891300336813214205026032639122954660023427309686963752940639904236514104430304059196066580934874564101143476297624083287106498126126683249137485015301068556350892241098563761574306157137804196504581869144915647049727295156117098837951293912706478710050037156378895557059365661795690656052442175209751430572576548315627498883600172949000679864596014879478075492799541324510493064885362241139495771914334446885188787898401131271560646716552361913601620041794370534427272615934274241217566621530697989979152418679223419845976299476108454185340278988508156232343343523356143029063844524356802180280799396561574365762626674921504151875516826059322681710389933929728362251682177873563919475493395069835111365623845375986426169015671063054258313641486036513214926040868383129312264305311512310828965123343877311258134465388609237733360557173748274309077912784565398576255438808902775456402178940299630729837822127073211825381424953537049901464573262883774375371180523960727639701139583173956702935871190094206197732250204422275969574585540149261391026888729630892519519808416956165442785478780852970613311440291239979902619513373284979455598484647763286391191722887758711041757629175379465296670390615821237332248004609963409019403449438145690119919820674084736232466388201349192382089587834713408949394463832951549689720946390593846517780644804448120151950831221181995540286040614450102210478046837527133295903532402638075245582246707972221333072955996301208108330996356569525625347861731647694045697549766913319443281837827996730963443162309933247464746753100893527160131422323398143821377510398343152063674404936856832792737112642619383977333465395088782924049905083684309278170113636890785083193808238724879912274242372576826487478543280508177549489467683244300444284757366091906316653329275134291443189572536583960596241396769651266384171500706664570381437841972911950040977079183784936481529736566325992611341680876257863264277682690607656043676450496605022429953984866190844102622007098032738991913461874711138399036969047511793811915671647304349323584109394938646893721855880187404110105507259011519455642531964085845332104834780024373668313540944616290031600027050446878575089600475127389123409095875411800977885499624733584217941137563662571198806996073119504285111296457196526185415911005591820440122723617862436384101688656784377617050212010516402978841368662679084484814388080602151655592117337015482323907378393934348935998367653031648011492793096924239026957170971296820209675305205833173036952541075253071209036307131865671855568658417459304865073425676999685362428513245418637263135925380534358011135807330348176698649144876100082543065256212985749284361472431846193959354230354168238970320311457576116509030115818305291706035417285581926617662662714770997296570943319492645983147872222923722369099363520408221083649360067518651717383165091484356574488639096340349442332162379054930140548163965049263314443439680507767450089398487892128413543037678004610801648988611506633884104279422901748808048329965016476205916194689420312454897543403342893834267790925422686267795137466462037471367842508847338808723334346709435266337994365609377791869424165889755671739630173687012294516273462706149297305645743906768812745515002739340934552126223654946962265236295446597065390580317512832324451455403693772112095567379046757630693553966963129675151606635885763470475850510405743821176403786991700090738058945209769290718737513602181330513112994691168308788010898137402935011779199595734905011122948575311376638563473180122063116250016631711069313208385683642088617880866775155760558351204505266812228264648556629798173175168332255080579515390933918583982489591508465696405960815615699420762860914836246541030749290103680861488392527358211474260697780795773823185179398969088249319384397771416870214694771208254032880069095133060071277925790683376205577063220271593188878972803738948483393024787989539028940581224603821522349519518204366571000682284752069397746813417440340877266366051246409473563295484195930426392148973707676486268222923888421390665002561761955904126305297353507729186469539383709424730307718203172223273135987839255074372047594894887025163850809665672061102215323309194077162570066619102861962653791411236255008557669204033374080608540457178896459475799616651485864708645786777439616032621976282094567893226782353855109853011029013479220370294193503468721689902841497602954222119399181633723935028674061061939674927569485558124322645706620754871842711695223042320593480799200791132677488053998423893138655127070126374309178326636409541023727590611161466579839311922366498492601085166786130271459954189076991957085461891731080000126585954703772205317978728154656817038568003051174058616955476532746679114415302538494226269025597529586878056565009191436485149608071720381130251234693091861719145264310021345251734214297699690377873506254565649238156827666875610527779795839210630073442129579223139683199245362639863024263844805732030747877974114435172684638685266893669551382411386680788034190226553951403595829369629848091627182031442564777999888121233747253765434404604842233518895820423434084113947978353302092797139378530407342148654473947495626537055590675165835186851021180689138556338390262155611526076759802835357066749049153524265496733783390844939418475240859750501399055641365972803916944703516859533190109302970175543407530900599542249429598499337267916233474968059445277691838693715226222565491583216534482836996796904523473471827835229419391269876995485887955584158043944983651575725535525165833957742933378576842571644483003952358376480890319767864448627140463922007210099165344974528414489784224415397738362757243464442421560276189682709817364973641325762499668806447175190582171017004468453667254019357155092890778018980283434766607008401821080992446503989972203034357987507419408823114473246898588159327595287155613095342422830282085174209725704424792668244767922051989460365172699953500974491599411872353724992722824885549535261231285532837193808485062442670635786492424391860109311173322898018836876544833334247249141279601292115998509436916825482640317368801345012748939610611637470339457699753466612445827553430400878821965058607845223331690793724627773178971962162841801922906596743551988830937913007000466517967760373448178767106952844987710875901135781261090747598846737635571956746209338214548898745747833592241202900396561929088856217951829933233707899189224893279858213406849561791286660674062875763856241468337967352702575162066496932851384951549449488769453114750301202475662803040545831999267435573298066215358469530442628270918572696507814217736106400294891827493258439219961046499984022961165606322444069707743984219925062269466005656369765965463896795835126861093095491999630832256436754195962708890606666906828668704376071476972232387098113652476891327773016817644417513999347542082505692331845224858943601275374489436059474664669385616750016502372036464209219527676650119872572679189177562382371438064483187217541029957354511533059421614525240256423110735126464028463953792893087607243768135304980620542773178726331489225137929503907396052765450203968991586272976623687084021335056528330861701376460171509669425112434293686052488773196195469252420950480915341048617661173149455731554543311886252142817134769123443719055153606125803803104389368245753935564119237399830803204816424016850980885660633575780460634856638535251726401642050611134652729518981228230155578666901490272142729694610314936404034481719717427196351687913792714133812024233273756283855424413288135205194592523360789765182954995967710094941934883850677214540340389099720571327094833492465944312314277079537469453598735379891955103288386942619222612571001548449788594494330181909098149256437962179612024758612257203997484367261167748524933936054425932200525478045681356000065811709261919695401276065684612038062447620997822781413749051000893473104473235270790214968901476839110669347513363408339000067882929815544635888591351856119962864878059268633472893350894087662511952311313279445776769817706077101519620269381959298777249192837203025447337639195920087782699610409233300177135631665934381631783718526764690220375186129943139230821290782695964298119380325425152263900013642568027384544113023519886834591086190198961722153028286021214265476329365664123577050882137790262733369151573835869781472794677145853871078916931275269201101829665974886740522297931366473975250715774109764383684677706974715603730617847999965830433761107618850725496318927052531263468790019688336051719191384991334123378329064025897150702671851516714362654374443369506497553444178676130965779160582467980499687323895482605147308038909571943675694880202873790862978197546577060817410819150042456961524777950835406478383392342035130158321181308953422037659472001329922162536945032796090446114166915471479114089215265976131343252086990617361840766780745416750887412190772405851002204887477336188482997016189107912439706673569187579230225214774248243826946524251191876130563391241740424641107438664178003316212813237970330704517864780069348492909002391023461905499920021271969560251862550378928105685998751519137640452959970210855416778285797404149985280094692207134227555565073209786939791116726417642522691226786262885214616493520741511397561967860147879973954900018191470475675266998565731514554210040449629954674566484677343388326887204764095211439812999587279323314821893161056015034484524034095796303597713290993469326542644201655289212578543912121053420816146910302557666980677759576254532852850771903793586702997548834868580102077975206654291317758801525302887530255121912682622607831204006120403378981912574939459047373338410429600559213552123378189226064801484533042301582256181099049705589682474584516147583340794735013399479770496012018834133408861948157861855289631468314348546568169702655364323216868415456202708576629792673947670196852447746535373486396077960539218670958650520161259315644173494896038463321951648364001102761516683268941761925304493163634151749355081214871268626732295963418865086665708359766707636573261375289093328632545066385135551602606439765390663299985318514523668993228978024731681119315736429902223978390281199040261262489659166860246044467459856366922120728797862267050661929552467767714191430400045361453278565296344995000851848985668885637150346054474876907098383776693170587038408334760161995703207736110546073085170279190774267003929384413213391827604484815212946092994396415952407412001068146721163365748087903705222367560299310752903922865252168142437599320272583694825682408376365670774645029820529962104279230465364212911151020606031240303839522547660964637536733114371558241332683792808608337044359981227930163181620370657016451134822702389123184047416696465203179794926783781051423775396345215663728936826125214146732967503802895475288949036560440576080393684600965724948091455769558941671211847785185058181635048710120532171456175515939581552486664422640372859866004464619434907618467646814962207708579088915652560673793897513803156586626460321159114941652387258379492724854997066735119439128572264933081519306534632202953825174690947234823911355099952637821558010776601439540171594243214135291643112761625750349171401202236021830597701264464333033788968086000819145700881112085057953429413878374505057805922956174034930036973116563711509657093267355781467513076472303434374607123204275614740796390867759423214295263457543714790367662660280509665973664326584664040057748788667683925374779016855493398750176425647886710097295219461266638567888404349112104182958924109415616589424626442702593182564238144658750092472428177899610306461015348273280881978001146182100210986558085931831467982252220275781589499227699585563377304853290621563773400483079567124988732231060287902565385210968523138375098736770525916865890184279747212504342021946558732847655936456596124635582685901827034243330708702098360054390626337194527881064738902988031702756743865324634137096020868427649938149904814691380796380764533606039511906226915945496485103627997378948281687662316839978299106939834972101355502706783395760627348952509612148064448854670141738721350487490425137617601504368792019882833505580242837920571541631258077760637917652656589330120395356344274592231967727491625106897206220448963456658162418778842753291287939770450037632069887699105999139112594360371102651142552103792775832852945222316689500575851571100087452380584151329733153240045125153670699818139859217717696624828068049715769812110170102185455233241777552184380094210098835260275627283928761387967915256027956369232206973957209235656861756860724195759730038269752009950360868693447790315353281995422736986575660757525086490420634820844918383927266987219815490020417882551274449521863841301503841668737369904576079563218697008460454724567912440575054119287974502076123698201813443656754884264717337313600417349835211945885022278487445235226888865313597155528945348946931041670745123481902672808552011517495103326664211487516351072208206983948879176224520867692462711142344228128373514608323842515342623466842717028720012377050890224054903255209847411055122817738164909949047215131077601076342759593327583822346428667121562202442245261183043806712396988518719037657274253983276643167185726191050121558538015246170585223752686457292466594340657981303466943403281024553800678950710237347960779483708347587816828934767997100784118887696274060009607713636815949868315467207462809400293338887720735346802490191053087355127282779601365436145525979860191846061929603061787981412784216517578859340844174388645313871636954651146457824931911844501717166874740629604791010374602101130133299635715159669287106859512924269216016046276284363847241758697886184504208159753699816248265131676337500861700473630005798085851098518171518712468065781994909283569504995234204125328937708070610496465714166442280567435100995129296695256598126514393763232556376343077635809790386814965938400066521364673991781050315784650011610707861450717901515336711651766667021787384070637191361162361625239233167343532561472450431688805913240299032036780893582852345471225329501299339564578285065517907951968785391951935787743269660075748579375440188463364130452742026229666551074516437288364566882139539885183305383096482017736647367680117418360465335861937991792926150419499534269111201649368104915468444476091387609589098770607582128815895280435286076795245868179688409284947538517354597704294570187750514033341045424531199725304563464853889236278348899892278287407388717351967219472084845455552313626712358237821526930476599076237369719774174523968695849444251665055884290378588754780677382478968626629758686882843842038009539409328703844317215628682171842333878567127049882344914821210847685364197031568066707865340279488745225036818688218302132541006682542998399951862506467617138951060774214955977997567177190763385409516202403486427673863699675412059939570114179538077668521730321668490085514327420783446199119331759861509665790690076742707009423623408678371059226577692142687093937646226532604884531388289729721080755248813499065722028676119291503806797537698612880167093774610561227695151221691948874034078357432585545652498438703363334787378174560362984385545696291484620445875412691633621362980480882238341207158327668016753348512464561763163095224140712716766852318964314566959888442589927588681212406372685550941438069642979641575147980271548871345855139856696968624959364499931754548764065305612872482522652671699683665102055307764998827501710577854740902641362845602473125829412027605061011409831538692580562737803606530845873417024792393788808668083330002962126594662098602238788151112763149464067822727762580895125903871870964759920602156933540937674734407074506640719765525106968893337119117760039729493807724549304173688715471859809496111489438530188699166351871052213496983735339333422518682142214618319125721174215652525177578750516568208116469496784080239750243561524369093702445836025599727317725349866586300487730829139463831176039738480382210305109338646634617845649902862262557289188028237516496726410580899044296841964883047751993845326637915366697483079122583828530696278950752535384584005150469845848073786067748821979956319086546401643093802397747856276666468131648392406747698099695427172177164185803557009172555685289743862467313060259605795726413356028878017646967560909498800971539878182644730879423999891710083703875428327934690783376931307686779206489426400592770308053405830108392092388286409989766582194259954567612378160213227071772610210885156931818609933002075254617185564150886450987154801362849861348020613619599242724538201312114481074186443132903328054431109135654236537583651040202692856058616453620981598507578821338993104906330400993075317432492224578090507869006566682072379604974676237866602315731235251328547121256619872701326367360765269122585974694810019628665147832366358316656749379639700687276184134778975182168028833133482921781941563977362715226208843705074281622510306594091195337670409408472913412319815758638624588997190194368110681464897561649650564741830925218466155552244419606121386340024648871031530823581425021778623916646018757263656539902204261871916685470941906612461285239964390424061669164129933235615339817296912983961430975194564504478688338101957311485534637089831320557780000212720642759802023917885796193963106361672999239730163343791913236888023263720822839216449942427454126959535902262169597448597409611089126960065686264098823374492848969116691365813222227682084794247299442257046942187949609778791660652575437798097993985566372398705353037464416608387040590463850077137120792883807139260178676984074230034224702361600741418646843080498334176495401786485419366915627628959065441464541767459738307668650781792041664532800763513183040798211550105155279267746799431310679726624000698018789037716339569726187251355318174953273168599925978471899703563576969623254455277115955746422199157586739830332094505573777630745856463796207923916317491657569279815389046426882206522228242424956330122853726063857379324258817753722931995865083213541693105053049163176124567442769612414884248496745523508712282650418788976779624882571541030034143655193445618172717175199838437766637648567834913352646480913329920534388573863397058738180038085108816936156758684546031903414413851273581630453919917766184881344648501464413763921718133419888723314416092470275153055157598277492846441795968515345759701242856622835683109042682582517983347534492725573933200043727351816833203848767930760658609908957155634738072050409697495130851996365897593853675631106683948996985938585229131364030663018280798478487616229371666759082406892868780461692229104263448800548148880284756299558249192490357806851088839884438393077109916772168750837133442528422966721814671524963231247938733028185194159741644581978259925563908291965939065751798674834200544252124886028940574939030479236969439470228064459554677205392814117971935106048175181198149517456207632552494193545009411638384769017658605527428208320472242035644860399401476693918697521820453879039554611398226944851884056509137599596586156835873072501076108565239662950449406701380562220835128849295431654465619179950786435516840716946856551739743959879094370856983314382692000051892857807356901230173859928647698208592270031460249338393482819473875932020624084737166671553413540396218048974710448213698160306492610385270802749575270300126188379941448047353066376843108932183211199757684968045740455096902612322551909893454867071608776665726879621558908246689381732502501089965785076456844288502748678741834847460045444599880508471335389544905735315549606749695099843156575416679938348300504223953465385110843045222495006740210662969005176177928276530419010694346170116679505182482810216384300667375214565290392719102303889002318857403879218180062666047244691434613863736775940952093684027963927589413493941189796746990644598105830570216580392534503301429577383009381208896703135528538440693005142517477133318863081878787152470494496595329118195789304328963876248673549469850899447898445424670546452034993572417683911202917691638231697671458579199721229321448136814953111824039109441459951705162664155906416793181263106194582130490280297257178180703032426262161181182913247280260975179980184446376547163999653787607374366132676007553798670027913657038770627107339927128772183161565205460794580877186837160671105812751824266477110092981025475832990650960646657002661028313085431484958050991444828734796943132993688728109053820422152581340512846417582694748888676380348006916270605763686203793475302733953836675533310893364092189691158349064796861850653850910156521675038316942627291661225326842001571207201876815772460686579398118866783515620075828205060154988503902230853728390670811549613333431031626722701889501863378444779675347246455469400722189533951774478893015438454632464728950678074615737119682582343891341147942409030284867642595252912103687902711931396656487711873122065070423451408325954683642148147612863251098040865211506272495225097589896689331626305674185968019604999056818640366050507289196099285971483616074183155371248721119327762979786268245790280381577295969568516587622155531637581131222516466066537501941007715808965691656225786095543626301650575556218310574104538542571454824400422735159868453691975893583316633764196955525893010412076526195289877175268635661432574692459133947489574944435148078482564327865329843014201790475939052673431988499896469766443242708862835889615262856207268372287350996365898282307067838384528817128258284661196208301231917277747401467116596710225910056280386804866887786577851531567343059198726814241932201777536563247450424061525476615511739558263808700742895365191726485743185085555696670999217188172991590890602454718723075088756622431872996379327340991479086921779097344876461493059069743188589116050778532500214286940114296811934183125321384113588999462182118463573841061618629197075491125383826607786101120921039516164190418447193226730946598987703307958467157667098206510340933144156164804927108827592483924355857537451766532775875633553499268962198259611463274505941918882023208980044701741569374891919953552375365745362515699975326772630084447415835425606365109263943169772166972458073617089474606252689452733182262212918930813549618980017176627765423021094189644845354046534645927998058444814126353506160756728312625555898499269390106292769409890953323614449566502222386816587610650822968146871567748271342062276686772077242696534671995731222714045889556097116510010091990634573534181546365283835117206619468243727388837865140213433235074636783170616952587117879161119803266413844412594324162149209627612630715582641072280419873260628380541792850130385843929876610624687140466496322614387505954559816082559441625840641084463968309957748472431987149660572087077311286583072455590853915333389365486795482461618766456682814312935142782891370404116504352766212133053509050334403642210644031398018775865431944330058870359394649507044872634184851763661316909960543590556523905275099178259203635102065956122320178042798243975576352502611705489574858665991359509912326336769818179881196758220423369522599499968196553313287179558496295193250653397555885227851474562428434205249904168776201033279266112134284232883850895673263356626076356768196696747243936726643333980767352752693165525467839015143062098317604478589568417737360648959687548458377425988204893755214200785886717854474742377053123275920782091175865498010725391169422960245556682205599155049757682006277090285100478274685402014122651493291932707177090484821786572717432807688665129028411551839225294013219288719809828806663699970103825667839308540796377687293543070497192720146283075050550481638654745807782695241107520569277022214474447298171623973475448373978590846710193691362559378630883217103662440011489168560152199998418714329817195915191415516144462500264748002203949212579323324690323965608525235475615717039145904525104272279962573810836911447127206472430205969521491235706944495301320104578559923705153785702264125530851017313799709828630509617951878416098956548197247947237363881955422992827592548870851992294270500178550194744611115199109729481626881903290358282761391708164629973397237302042446813545648932041248613308786096326542498978428305280872127382869187232576225275711482797005362956443946692259410033376179845843385485203159041320839887243397942049693318257242526151805724510924614830213390907462882431644629948760715918461828029373501473281249602040741879664847068311893115489130560764451262467376669583273908572072223236054006692676407667003916443054779891336239684515903229925081490734993386311790293829789949006628892462254132111720722118037620552464985690150276702090387523933706869443581479699227802578264696431881064062370642428699548246423804393031811126034261154805749501263132122893433488021266295446354581893689805112736246381218343333640382292383100913345178343810890453494385233413651496151302975296136525715774813453999541928445255036603829510915390219130760433185268910501046009561649943108042547835521364967911253222083925896778683932585839528880346072953240616652123405279532474605571257133587044045802436392207945037768182140695020487076190001223053820237492650900139606186797518552709416799304864386174478825280175273336164413101224967344711941109178472026554979294150841346946759335881925251071950604105111347737514899034025026203818617624583369452418819384874721092764010988080364741413140425731998231544865048359126144229139281695707736290618050556810302387927256328212439714708571854732136681196298476719970097067318445473700690589604520284760729319307429969578682968624984328140692794392696871724839805950767501133918858190234907511771019924172198502875872126654361278654089675574964354318531207515391015549735503413656624984885119860179591621584073120408510169882008399741495294421919122264762802842737094756733659603466362291302182200279254904269969230365719546084751464179839315475098866663905926715589957164003035628182335453254234691642241935002688869111818723866214508947411771954394585415040905036180083039951607224377633838563349091579875637414168977739521793261084624489307933197338675827754712048127856158899676524953102279194569014006851568780561536630584819329192372929568894132437601451823471850128490812057236435921621059882993215060686296301835351618163779436852976771458709913531616760401160807153332301673692501079577609052581477385893880318394426445290448579042720057899534454475875596187184571643250787580898946002180538160922038250573948338661138628779446358694524350864005270089384240982616581843487940860238075305277630892083559777275830273453157958639678279718515688848892774407190737594526934311596474298259494905770186600545391885490906443922176369113741681828749473694356134737974641847407580966975938343767715509658815514206793678430420272408281750710467283916364826295522816484009946635588155533145728612497936033014295560904018653692938452042730789853185050675139995577546398891404966805230318961167535232186775192062852332187712548831623792181423119009520410848921799279358959624085398303900908272860943199491596785344722498965253658391369955380927410742567385774041483276195697507231725958971394865600354557230558381930061421320202426628540198692966115781009027425562528676588847377232369042946447696972237129554577122940313491744362151609784081044524335805822464143550542988856736276211709666501962646869663305296626505068236116882129602320515226965140398563047764123888191372055370815871049787699455887506681411424823086662779331804272576548596606535966862925912020126149717761885011676986726120869975295579296755262754737696533524536258671192948478034935000255081928798073840135926539850396898092488624935052476486186018851823060152335813521956871111467137886797113041586847008492743442323241592173430051804207383118947169336086055102220849874225699004353356206418560451169639660016036157961513218239666034662309108051404540669233720208668904007119302680793688882401566324442122765750610120712499880608807579338071610899505954324548414658474097019634714434596190598275446194640063326302276771789913838150015288368465124697897616289473349399844821061699760585910586079081093762486141420488222321989120246602418077538721088171111688266400134819592542915714653136734584451748874099061431048943736274797712841813630105434825360973309453657472500764813479041678116535480409083173382207720085991461085430120257637573193356454755086923501638315584366530196960767649805857882837481361591487249972962000582400644437476742980885001573361132519945819695703485640654193673892590319893229397646595111887768398680089000971132792063438907387424597667632527526092511884381774130217155148869001377973136995772689767800790916290521768082875960609814216479115534054238051935278935961051273509335664700385750109426829998772685346896492250303759220680168255060600623980445972308866232945319757148808632023811804970748353785241186554358698286118278179194004205153465214233935633872019357521252290788283365382129211105937486964525449403665124042190044890769337197697260152051291326943674820991945686493461354789727965997871061493418172951667962452562871164109699048633034725802765360113297454114579060331640290623608891675071721026420988209218272421868447727095384142287656277364829730857788048647001803710133465655619230450672913960121080747029802026624196508667403099206479107239800918267411127048001954496405825115171391106714472877415054443142479803403706310550615508194426084163066113656334982679129936725711565605973469021565136999565295124333025438200772104901481562631060008269249120890691036731729267143486486019528159473978015153796222968973738485464629162480676868568095446359919826908795298927899347273739376780793409169759273585811427120990377854383131200983706686919442821143615801895019607010482158606795104245654211765821962054292892669005064949164611771717810986793183213456203039113688026619134334549619068068774088432483606490646600221611417764316144285606778090131374446111817467528343984228522793906750871619553976845857174540528270676555262624890354214851119276968784066681520802283375423293579437170844315996327632916965754183177998432215218297951137662908021851589218029059411860552167190910947039161468282330241074404446040548234244556124952295461277349243394517488845879928986891012584891596199687810392804666913955010725275409839351686350536181991731946279630519529689164746696923920014929532552342313727619871143418177364987652314123141822010144721069638972639839227166552491734363985034643053182240209173324306182386193378471180210308991100290521222207051529772073239742476144906488431360078769355418700587391582152387030168788820932907974711030916736717912218136019781622121470758432419100398232758566849765146616934665240630239544059497622594552818186052856672806468981872204448150898211079505615986045561880900239755531961252851863793048614070418572889339451445822215255470746553209962213762091019296486511831302188622050286339088062810630534341981185909757647022389412905710886805968938696530031679466518558764446471115942105169773349637768624005397268027776967373910676411132104928818189686252622185477111320130465501926494557870342960369914965137499265523253260489399579014989953656904203943450247547735416690078386808750026561193537829220986536990909428567595626604007042648866012060758792709212362816880194758707211130154414987510541986592132988749129628729597549779460674168302187233458253583693295351199059709412683330506070431728262946908603489378105063690906991696857730929309810025084682090617459599128892882801213147376962399095171285764296097788756033108925509888167654966073687799797628893186992445703011028597638530966243155544473513017156516117894824820494620484387343469016149043207656474998275671154540678211343401568657012272412484687474374633535777151022059816643051657311587336839113026649747189915571549206089417294785130316302415463163143591003975745229907830663356196816816894399871121920258023455917742830642698918077147773762116171542977009640495289156265766644955954661783706568713641774379916405613573591404512739514654771892159230356290736895970525600797710356987052410189987883386173272549832907877594391236920405952085498652410084464145269446799404979304905153495908641867783369629465486510011701632585513460096591343670081268495591400464757875270144205170800397627802391328462419016321304530638175829673809583966853167491367681195131032350524811457614504208229898103304779954952104578796986510736979956150289586377596792737234587762656849691395385701259353258600471982994350720288661879097140841129806998854896305553018110418350503232814543471595224943123051940052326574293160717607158883103581173150146000924568549450418380873461679402362794196838181179497889208597977687886661315095763760170621402425181187753768247627168216440311015498911577213120291574301863193805824828343500813311399008817575003198682470663571673341679075833049900661123838181336159141607438738761426156704900884870509334145119609097153771409119549566442649050255178959747809898388278303994957204558580608482059861517001521355192506024235896537498844589623629220429636075184381735499796598436102358676054675312972732113557088530532738070487785257724195940649105621201006111883838288590759204274176022388966092307936231030353884579732377355952694000898933858250268586196925151642218623930944908855303797047390805167126583000058528925494360994988531858771954191281400271374821842085187004580209133885363032389755510298261097258245399751729138886074629553169843136637645540523512896206667157803358233873938584535517582380902632470912961032866317516769309343719094768186141543841133932662171173029299253648667729415812239248437363750015868850259652690650762031583049525233120952524587372690716601417180944291858361646898802976127840822190804191626022274109017184693165502939713530920902507168230341041258318075220817165075163126203744969664798569138266428828494844385391711519848103470943490082290192247735983339122926918818702377381128087197861833210934763661793590835448988768364541582672708885396205945028511443235941884105956502263623867709363667034015551620844640078616397819344354718938164637749552317941105950380883056420205490118691899686171337046621852568770474594406161139665054050797731719910926293143932439107809346137507870725657601998784672908139066630222151882546094964888934578581895504469102586387690912029234313939768328354085332089817114869436094150706434574972406700883599316594995246598341166565654926523635590815932526052961729621100300576198335613596038865101929121773205628085568681634114778262133697090941750046907055842185487488265883670378595846869904711513218186235525930817999340335122137526287384440556291620821093167303284736328389076914078455612427932361609868031183073953631724368036308216465565454823017029148338713188492625322302992756763123889625318792492862638878501657305280904334541308892881275332388779866855500464988636938181709163205734409404705836196405744603019415307915123623763513882884605998656670746256862833097656696846058967412954329518285640745048137197828865109427574723615544024344556029198211797870205000157519153295302257269739878964102070441793374094948670144158653947004638092187408708266936372002567361242158698035095873911923153568840973134958444482922432466805957252746351538759886129445897130993959973033959944024759618969497168324102086780760461025607715700931839006544961035187434917199839568957393922207518308551936845067556388543515658562808370948263595100810549821699600640046431192981623641732477955461888678794786558105917322142187009719738111446016031762851478720314017440976650490974474427115612514521330466031831083020434917856051587786328910806571683799117580691082832150520567858583440471419609783046143825702875624759159377646022524686077340713685732213700036881868341049608989430900051850821328063167355859144272768268247700198060413986679169415296188786835935110168590453234967756846092982239886849454402217385200169046727881680706060406675585154292344394960583715460202313837391793296179075752526290364832330819696625040348731443408151607113922081618560489062887134813815203369334509047204085719614920960954739406675202149237835554568621321951284909871430345368768852661742731166908935708424663598372535525446473916971898709083061415607228202117401325899955843999400596777664817216262218124416620039862727773139024145598141535130599287228707715091564487730451055318484734227255088818719110754148447736132664532698809704304485925105003091375439715405906424609707319636848067446980693646470156739152908475561716098931661550775476659627114823836879101905601112876614728003627920531255666793464278498741313563836775588850321560087642097573804964812244421819322915291193162453839981676729236715851694364581320782018394329159648290868540812244052395022200574893204646522883351944294014375056616878006668425923327692822385912760629291967766816305024837026890609522669849975653131787976400184526756736252322394629939150469639979498251427308998305184668193762085298774173329360376827834001686120114586126197102622722011768319273149613114444907760747261954212264772438188864080977448763268386943596234041443770282419048078863480385828582912610577706364925841811717299831503196887229860477236275522958171448840781527441754380356933269699307864785869442748101714710147910616156317328903030865346371711411972014349283733461811976049167658908816161618808703307271661395699228397331527916844221609151870420628261059603564157607983545817741877762862118154173661767192819425286849314434304460243246951359416651352557472279864059203510162321805625717942684338329173363428364555491398932529338151953169734515918021928043193970212195540410155619118405167766166026510366876914594088924062777661904622203664824354057587742581994533684586923982507457232223602209033477065910589036757564941754035834574151808568409943954524055428471082138470795352947448632550998191111447357361925133272668136263017868091596543939164739245385418720195060775720117804396324677898876465947193876916410446304822751795415592840880197728594098148767701581701010171844053041693431059723030616078595331098279243574249803364740664890973505947782737085533481589224493372810829263857432938901471036724455257626979358157833219414546268736840274553542073646876599135404060512783076091887537367705746213032277133838085743015507758800230017037396760660793276242999725263740768227384382083635963981761599187472520812780896920045968890148000524065948840657257745071088956249491863990975783998509149204858855305586910018257448154952727015505563596393955440282954819230506879689922674049863261091935080224147235530258207398146950884691579669527919516660718743160988942480889961509287011223181279412459381714188369648808351211983542308547830861626711061343824437002591240023007076751071859550495145881957992006714266042285603011520004455212375077525797024621684717640837847962186178504334028458914618500951998407649527822661286013990948766439974811894906739824294946827815813028071515230171212657379426785028465037742200870583512239171915292263512335288090634993008646825426644639765498881176632709094332728023971305630308992122605713412451913426399393887093423697857166928841220737653813529144010005029816136485617487219150498706590243374567133095268250755912382817869275551265041112568137108529459673542002057004608317724070812810296443719631597831201937032133891856088609289705149451020405940575440858782135993746901432662974560090923734341050026619116919116772045032095478357134373023945030948844987412288847973919286945841097144669242134547738006765029975936693757114459639005678765077691862197328556257744922050768498815381112740511652080835624899501421347114363541650623781071089804454703112867581898118306410468154599290012584540556848760260558208167341159820284161368178634942895650219180080929139778892115424558686103211068346733367339172310689471374153569804898430554452085762737229566023860947635182756138041107664834457752478285569682580307681353318458237604297152538680699405884381653328109644181541373242657511623079142322621512855359629822083690281935101264830584234026282586382105393929289978956457567175930897347195653054887305846965000209606528736851743953881502433206751763314089775932225640971810711185790755679554419766285274760899543806391992732911108852887827194028544734188145024005280820452514081386185928865893067111460424289558602497435011094296419349262573044291871490160009514973257857168182996012327780290906895953104090934376278398686203042196076445098278364025252126788433569176036321477518167353712206462635774282301608570280409345351089919739852650613688232199797878149836338799254845258457383790310567328042525059988862312605817219372140444951772016800502696027486966330513589769603152181790093339196276815197163244477593830114663975090128829296699829975240972063020714219114207977952112614807479282667121977511227215530034638658514499969852431318321265559497928708040397032902476679764061517236529382069272134025310324734287338652202043366123177414509958060414176174494185098642020952914334869758661155821237141565064982805057252898113304160461246204055301371484781609725417967971028554455457264570533031634699380878078610757778631179407357438924653287518325843023280603621699795673739484546201455010372421609863520240745810523132090229476591593557829923536650102047163649609788937421625872971492938294060685729777652315101766460103430515358291238325535462976829561136613763309972875503049236584653425234275459873776809400785804771656088171922921302496398300359831017745650774091498901905639218240638031751476713384251280302171958890528875818665225297362517159393636591622322376987600546098253500639313122121494571527971522588590363479907668671060430362179272323683116787891408153048476188278862358307020064872785939808385734732634629469259418785312640372418004973516901630329763293589666440019865593611867547936069680767179488038093681475158559813018878537545901079667603837507141097475712464226936893664722403420438877747534346379639650308390622924058447476864257892782234399198067321058902894575882571222036079041157903952872950624135340864897346387143052707128013571594924939725781216168838425155368220344136147637605425604379690360821301992875593971060348402883859992340627053107718501389907975666867064174474298931346236785508580754098996473515594469443817507971986462113863978084132315091458007237888151049306409826442314460676593082430319664116246401929058937721169059168281251850187180395858812722973113754699761364461291339584377031062911297105329086921359900676279312892311153947247972642021215481904780672019762691967226987115230461532428497115641506754061287137660619905929577784337379376705746188222864394116847900888915364805413267747860973867426447188355721204636425644994917411472785649422935627360871817057377192722189190249509876938223564567788081921498866145211008754894844622861998319175818243770524724006258529245021005113463219651451302213942607873592123367831309537170197360433896359645236426852262283943920045330067274816438686259679506298942444782230444857853920066780831011356362801418148871779980027317891175095451348242648776764880198807780630366384012352658764127922380224920911543422271556594933372316325794508933214591502247978732994150083800107840371055394208892664690606545637239657318608119655603299147035755162424821887038077274041479689131273884858048004809056486570281469563043731416816706928029295977736122948150909058032373061392581280984247623851986125358496659404714853386629769425259202382439135294986763846533020669259676498530254027357920799418702480035874603793470274197910959244877101360582247093700716719512864174184290498910400570245401795757916535477117991351022826124092507064471159041397512761382583479304270754998774701427604918625697547118837320607987876709067485005932472971826244547079518934014601562445903479389969313246263302878963838685518991159155261427954700560048959179270790563216648348511877857052222078274699490049345236613107482338895680401243358414482914893684380635797731901248775707573693349660183400631661566521346368995968956506891046259622143764440099336415697495247400729821403960193781092527934104627779199997799165289435212636602953276322372890325331366217656055139964384748343835971245360316319802878692548226115775708325134511960599944457206952786562510916210134259464941858799542751345913073412461328030395843643118293191292885216958489339989649591757816713457143941836435183137468616379030705230080689571082843441511330059350905030835889861018263315626707794099033174461781789955819086280068737929985596359382548107888243818274113680435654932746273189695986158439124940369383125342722188623922314736889229197030318139805348049934103727686094555095708619384028273468421778676740281134398490307945629635851636697204326918937959380064154179486796696193387792609371819002187845489743636855691280736189176755409394565806843723172696112790864095593498572703854078675766808156041951053851626586902638395643709777379024039202189448341425828195371043581361043839703962368142685525433200178319760648264044603253984029176530319899157206283272420031976137659281945542560599320130891365504338804198303421568581376213771231418022485111021761623445826460594793980892126263329891337940873866728614728787239102791642479146660257487163225874657920109977310217780118334809469865158259706387277435713238629569381437523853120267772435654047669499134624038348863321755822250162989955118786306464547540350352438323733375421380225648369548218905538317614269267312292566277360551043387298742999463880531720106802545799427544965069565666345657997090924787915375924438742819598790654944536144631648106457891909940232803678194744526095287774042276626321364728849319729603958519897919931840974510753500443173097375294520124861714306518128515335237517319516031584539729241187641348693277351738162500785463301056988299742727549960850832717103962441942251286637558435231961141082120052574649650108784573300995413241755532140632175845873333302686413352095666979753825383540596563414503658993725058621063398799520382841874102516355241044560013768875617756856100314016920666584138586742415907260820573158920370611723722978819696896335833230118738225597579773639963869518686966606821154616950880926822544898489881542238212775110465728505195427689409814736917505501206218362856156083306928223606646979284845996444307595738159253590187743745979350931413980739987447956111595652139096518919226337066130280626354519719684197818280548591498972061097161393381667573384049310747106844474947780356008539861216873040066822646054764102980328607804126852344106278544252148531079312792122885963204589611907716384881224613540224996690473038251878437212838104479433536775976639779509161891372187112184631274066953830832092301212688439529824221672933076155442564377144656881949768758820501420612227275824554312571287185050107457387637009301891430246891910133540676302048782466085460793786659097901687453308360012984664918012966484551564857910215595026741717926525769024518626302605335577773060573790034242242257083974407420206576522302239259019783682776815941989257218725377724526626404563765687964940381006763151516566719346089423254361415936662270772456289255131969103974728266114258585843206280928734533785590905100569007002511670444181309884603616571014962054965173609223467862216484923695452774585565160325937939484018856081467653241000107241581058029831978851613620612932850372620824963656453684311827238581849625396047679377063992836150213945638879282951563331201882059465462946241425764665330360300341557150840385405693598737758388567220175023705677478423372446027434694064895203058020625093022312993799497517270166188781077782867998859164692171955663435864335289202058059007981141465152271336202477589753014021239006806368877347061642580906731606921787394507198045628369214856576145553006220905720005682793173960184186160608379263921502005642717446320104593294918333193272649064759246691675999933975530364783425358609501897653404901454629774549167053493997375947290448368726929956350959370757947938888125744703146256478484949968632962074572380234711497482119359175541801742836307710338607744658919328363851911586413620446633561661499997687529306575455852143334489580747497885738350618679094404410201835613973360983325685854715023538380899188543947945136204807901616114882769683625980618432984067581113874108150287950047690518557137937849542779381772410556964116041638918854322957797916695848016096404129158801588894534140098131618960818826239779471515438423064184060420445259029375042238715006991949384864568824797202530463826798453017586325633000475051186147337330065576284984813667296182877660238049350980461999658483707720275693334691841006563087202705392583911989755848458964319638993869388337259179326324304283081488716329654485102243577922140946206087377221101234556378529954364530116142919784824054728049113738321130191328881395781278781774598930655220332715114127683965297200764797686226648111036972875337783578569962699166061672170552849509429802397483747679024545185882496316225841177453215686972541737642103648556858797864295751024903157430684637192163766584756114998879152611106871531448064194007968951634782083123731492552876115941711943155201670678685254203192178652244743743894319188292822464721120967326437024508722162796862896243158067286067028031856257129808882554589513612525012479801268799313695052910546196457397522514112953585331820397279177327198606515422831896059290831745921026342184894841421201184557364203455257398308622760931464442237764090923865646081386792367772241683916135268470939824162593481795549322697225963489944597637676083294011299145608639189495569007830033943953916809960555033749939967806424891609953500441311310198536995922118099579698110888427239541822408351540404381489601156762569826284403169276764544523689735845164746459375222914560315225278676661179493889671214038545837374526488857562283679303732957764068669680695254505124317629667940122217086022709483851634994704624065469285862828429288237553364294777456397154884676306598212541150648460456451442154231196065385490277058659369717490628169154726795829387563688916140659124751733209009120251342211835164485110695300881121323454660058543641699462336850594600388665353943627146154525171943904916245385605766805665252849141676746539593469687898426853959674936415204966941573058989545157423846442467421610367449875746875731537311402899817394053499006165328505323552405070244322203758498527677282206557256691371971606582271212876855179253400093045460147467803299467868161915010632694030822999225167956286736256208281581254267120561957263831097895625297709007768808998046898830105686639949294742675096673600478348871119811677864408921318144723378183954413413896367351547640071365253955695968851271092658804352410461907016922553611689113641533259276265488930860304560766503763512394312490675578736642881049124653904338025568006670032191067158778524625111847276074760556934413438953123688656773831962029395178371661257919666069531614390676869222115748143469099338108476695730261668449112428419872578662820240376304978286761343844170757650153090228702206246731984870070154439768934080655350498318767008076140331978526775351256054983920203906362041524052470068635279468380586677054640131615290805147067526990696480285647731268704212026351154011907827365380900067659052315562770488061387833197083553331070853861742277261668889378305686219868769900361188628307156351581655635910457262534673473872940205262788172064487526055390937477957524308284540188374230544711036524316063772815139124677938440520912650039084025146259528165571020638848780116552165709624620052006272255532194386484718475174225924845734721278797195855226604478743779597111668797811702811551685714129715530749514588083955543209384350021458628465405490354885028653225560687423172557629657678684963074245482239944744566776773761104121270352162124572309507602601305101582715794526498985701472298906126019354238925776264815170770284179631263127644591091482445575199477060272024030518148540346060322114224046547729347679823438009117722817311826327342853409593228266084408985360747072786577994288663417865405044036969801623635184087122284836670504009712825948606320683364442757792956683566822077222682121075994526657597667918719770777817760800804990886954266793085934796198487912182670785822654890216569577509634550430443695864715190952419578608455914800738591257938166582247547623205016033056979825717299122303905403759124494118715111341430893845881926543958939955855814987434004471258877074485377648036218469024235172426812935494578435315427755598358438191106736784582820299190699999406520280890419562331894303511979862648453514923050348981112088625789197006563628783057661650643825040130520244661760012618058561081960457197905798832905605392847615633305377926270629756452304873324807465146836735105774146941021015731534455349534160540759775549675932275896631096263252762253814200873040304405481693816234207187373463377131888176427911567368193427855012031828564001151873052520525650158721013536766584358045440948651404689706643111305405029048849623163259925466049367540090975085592328671908039494011676117788884176440713466480388387146517823727966668392423832128918406459320761924707375272401132702225995171969631529130922745422301642334826085118755684843740800923733073309639899779880273660359878643078082653177939543845907792772593084774729433963768710645016673948814702714522452723409179412948893705248297083554807814511589753361937605318110785938094020821194320914488694102920128024004289020497876416930817222405921431048125110866967319795628400415935327147472739556726531759382734629192031764003602806878782975487403135565405622320539554952848033758455802380017774605995351703422773590194108856975806900281303870358623217975641428453531571281795151670529050110100872951221714807358856952308657666408469131756143183057776562944344382981800628738998925760056743083247412028313575954361359615391705305249850328258957379464233496049881715165258869356713269220763209904283907360771221648768381506839338249272182770483702642104857761153821564415752929591466234850330675471955214291365164900033168213381585285249768930151706848090874041442097195243999890788361901531977707010813527546790743324924251658027397018126362530452690017022308480818991025794342611253709190544672069621085871709686617395656575527467834063142954779136977578488858324837859480494403399035199915298168426704444964403895939194891608554460110540578157218563115655448824463120784333031461236716398269098528347548724946624845096421172160985051481681542433285519494868224444763974403762677970789661815027318456482758265071458319129446156414752749627689433422472598044525946877551080163699944235276710426193474730513589837598666947590444048147901855747554855795361420143578788567612503463388517430691205435918208210926899715286238759208066971161887857043810734794599399118440913994767257195462797850791044200360243256071362046468686928366931770858116598453534693300421111194346640065671730368913634415871338084330253899437739598286254222380022704471245355071434247383744490886267249932772358207491283567795545897599520451118699718837644300548586726833713324358467487947767117448898546330306005485767313742530361064639153740810312768700743432461292551659104121893886740728275069182295337344600165977434054525114313537555222385451422150718551458621013407407602610416734473698859393322021924974132115947378393796969908629350080579542985148890264039786551999338162316249103601712262078168619513331212877895896366078256782753494110724074644362191101371089608717829722145520154970515144247612822154834629176876035732119265757171380034398922040181813954811043209856349047286773566248709751196324858654797400244453876397967941924394487631060012332112064139530947346939033155216878454588919234753751429364657012367162989459873785224559452312916401792925099148540128889753213110693638279645411380382174251864406880691687380223340020460138996727479133103128362519820331036238842677770251334375412283334615236898170140047196757644779412816435866578168370678572724102492754174704523521691743877580803020552702158278381186542638974329454887044690416527522022967971143658993635426417730660015830148040229096440614758736149399285276534952731716844911549602264332921124865341325616217153614592696739680413126088295117304966245361427608319001431094393299826803659410315186652084963131641860373581408353124032032182488681109902280540925143919216782540678633882262615316431845970320047141915501402787797818715423271645262748169462127192881768738650452164964548405759709268650980061253923930555042460042658061543742108878506868898797354175748645532976825278388670584073667922979606779195328840199862784814397437952695720677581454301005256201127480841906930122237769808352143359001620527123744792813645613636975144880798383319275865480633223581796501353825300750744352063081706540540158979056020342495378328954438528144045151256090499984343973705420090066611337116260328445875474296271305626956322250972187200984441428976790032626342266766334697986335808083920206715711981847689982166966949841438130053317210081458684648565174422350395339977229376415780071246689839831672538557120420451676832090629787043888019387366745002631073080603552307704552983448574331907274516630091961655475443132926705043551236883550861934669244076538522699900936478369714851667275956388211748472517349635187049454738671091271633462661451936557278439088796432915773251777878583508932822761772438505955996428649725253123562396302104090150315070155598842918338785182165216342120524513457650691543195569890966059846586985331449341868580745363298891399171422521107803412917184881206022550725462835637812894997529520379557827244303275951969160356780136933105647165830267222493545839470387017311403183523103851675899311896668575623450569846253259053988147769377454392866169077625039734362575236425178503511775172121074828442202040079192507137875352648785028564000394180451173388879876221656955271947703704420253969481405719106596302353652084236211857073095203896815786586732568634049728707025610521766304362287011541380129089770333927879223245035334775742960134849437635946149858323385874268254334556145655749686568775018724695173393311862168272487278384196332802222160283395972605042344651051400513291280848071452122273215258719689260961523162080449223385785930939465555946285696976853715611792309416490415665924915641538508115775172527934549201497787617686021024793755306844558335050433464866753788333633962289854819446579364458605896451242732048668201571278686772210605403029242583724523373933769270906864143966615515232814844277647340742945269530579498290482550059950634699008168221003040846262993535962526276727163241883182750379316076064122079672513127510520572895805647759834978285796637905238779385462036777340019702053432059074893125686421431225759773473364282041268101125222117477312981732973389648766217290192879377750056704927051452822177035471193225551748694428488543928683224546441199056282299451621930997188038581930393837240678487601048420551856499429966556716974927274252077056355633428377496587698004842275100124413047715046140434663723230650269551764752033877643725589503386793114018275526377529812439632316682981886244850854054091408604682916459216728969664247891017337822042509688573515564669600156562393876884058670751433853123789426105313124940168401929665229370470869578920246186982163891338571791602806115805075247827012489840535868187457064932313617640660567768299669614712341463215437469713597818402798128375927284438410048765669561857803558771282363440864232498154285820443957085448995003629636839876373358720694728503348214255714973246427495307824811078211905902810982521662793021948743922665707980455643709109927878864970852148791235410066003140338277586524711584256714695728619034209898615102220074931748571016795975654335297767427229999780378814785533460618575498172617161627143480849595428586826763849368330397209586437164947132780063429016029635607257864194908608296734753406435990876724529026499758167277261227726808545817168935223530287770464094611323302500915011430023754565334354236729796826583650229585207400841749235859685747064115702875341821204402000283210983939123434153842668818117080979702139752819564964657934945636336377810042860625141144633084038593447210857393944136501046668842965837306232665368187476036857263503254452269971474437939764408925726371963742640745302515539194580227507016810558967079624019090166427218581365332560923629390437093698066229454336751999727707703769887571537619172222766963374403525178166600694051156646334697050762382453404082836210220963522055038307180855086450587359951289613034031723655867813406999304048478064491375257174690459694342068695677087390743362415755151726492076688127332219826618584767113676158392644696673107820453214749400080294010399251123606512853469879471654281010110216898255379005689288634813479833844040754093782482799571860231944042936308209735154102220766120744634126924830858025070038246395463101354793773386049194300868827777979009135618514464896242240287384339499941883352032980145341497609635618874425512932404602405398309653294916849578374819552902670321890165792168978440273046231031808863607720363889886688083574467812055657282717937859113867421158733633685288769387942361708998141761757746450488804892637129737139175840295585234627440467955027030545681200504314908280785226445495949710944487085657732262695782446497556231695022050933967535468180932633725956860834836310682127128509645818322204804884099825648409004140421529653944484640519524283493236508553567190527560757864145364230279649015861794314616008072913076506938437360239273627568344520751484080590312978980444937724377667823106350959446917057472787235286851425676633014085815450675192392590179549480169312413462264197598997056040206910058555173351471655790902825159432432911009928100777274024604931566888755657571649578599015229411178876983273871533391538203044708801435384118768573684269152827396182078566221450919595094647871341024430909694331143669481403493392731479640995071787945831163527804293599572771674371235186811049366820587713736460379469720368552367353767567662945555466724808519465461778410777047984444130101760568050193539245963943515578565217824654061775043565935720964413857406048381181569599828528484603848614392582609100040372886736189147451457858431801785211795722426851629440580661962019757118684808330336271560583220448851156896808454849509528881671127369535696067741764860542274296009446829358848339412241594207173124795360970337884222211492230743150048677533422980738749214964313310955482794988030900168760973204781220465248173952015883447777893070278012212802013890902230478735090670819096163374778681654126669534134900724489321727389630124144844894625079083132232265089740880518045194038033341970580093491564308738841394425879568226750776615076935347712248667355603658491311847545034265384571005602456949502787642410088401743750262407529267096708311752936758152356286829324672561766756614157761200900957333177130931368858176646509752870551730082596838447812769374046462092038160271064095180088293272603550641382114259805157798981847556356506881779395614262922182039156682740654130003272491230996582350925994836915808620276714521038157059662830248609185619976177298563421908581409354793279374633896468207535642124933859650779253992627097508724228147698424836840521786918950734215208748905272787580314466719658896239496910460871081566460458927832603362613395341110530320664310947142785198042338187991961039204510039731698520093386951329807446188403016083286902820460116029066812569138335622302688781539137936098556756140385830536690017439648675946757825204371268231541688726825773363619154125445907355580139767251521630566952164481815561800216607053934586147777251512148972676970722959393679594003512023591590626003758724168042991406460039575607336687603590867440181372700201978144508175505690998489243093922427027708235563257419948184250410179847058975063066976850075970709137780390477116033638564517178432108966668179720884515086800359630604489093975152485145538315115236364042005807663933166650033443907616553828343159617677164620773730246578466163699420762553308072457421286640542065873823826777241192894838231689066359860679487265942697764867613265304211865104402449001436352244693050482714741831014811844305489509442105735761910225121314049776557592821371604253492948859590553655266548886034822591609531924625013262082046396581546998821059298824933486382907048279776893834510592713147914244345208848607757244939349959438083878258828852247199836292594243288320745163107005896981032709910567300005010344991955538686719372419380630064588378518317767586423806620110502516231271060370767877551738039799449163079363440510007981636537773397726030733177444236509933366831104850780199537393319153938950402521102142438610057516498069258475400481309986389064905186974004976258279388908199573727651433238904692181945071188678937424848583960539135680842563085318566819458126482047555012728192263945936807850385351029089755599027577133550736377037512285996219545006533180382146478370756503028572357433191577346616407448616532728424811056515546230977362799186001102851953414376143374061914832871134968000516359647807646523241880259930526238645440219963761928295754176444862679269336248351311454930165667284655484830233812126540014079796685595679884414129338193314089788738807651885763535533684844797618846248745879040400327072825937506208545222246701161258751447394917243124397713959049835432017496806987022180984415425116174062114727984249671639516342308165697639611504701108853282654219381309144780115710841849529509705395520114335246607809474024681157656564866118292508246440532684932292327201012393864846366022745376954382673201457500035781472637854731110713285744140820120572184354508011970568745396083921594370222844288840348299563659270184662892952282753955029115731512324164342851412294386349852678268520460979094052979273641234693715157740036194800562252741146696133816069598657437496990813759019105091714606512983692377090103174604726820445642937027226528029380735732234112298862403592866452056915956807893980309873604207191812360807211226185028676226468672862723153443869615807826504291400253968928001624105716119959895199935564712643872947333673461335639727402692069788033952791566069396670545620286687160182045081276812976052137296315788113943869706952155844193958733966717064752408397081877387809710355061797501415472106090318744248287055190334261646975302663558106045572853025173424832472702772213582859564416512643448337722205873973868302367840322193992751113250861208001284141241491687528597328590432003365320814304261103171259712611525521596347608399413966142153056258904092057519250193966345615944861646734047226556857125053937312484453356065427335327629937729162452248693881155488022089059659630492631642978604244164754542566645984544156237088565215272761738939786513986790902674940286729743071706403278558952938011648828980345079678319245331496055579953709626726131382884555160527158276227029383447949218309947237632304527681578726819032013965266007890163148553482332229005899710448940621399109940860672680318837922425313587276971578038243272892446107977156257938884685566634408401259446737307234881741960601439891614945840846085071438369071385520093275805530318696472913571585871946615122793060935139092088220890001096782219181628992347806308159409538252218108736502150173647081313534845886159528751334075786801325808113086319780253670457517330344239118350354739721839741921057845124309160810172589587695813223271392535319851480044598269251048569536932777705071030436179691443354076195744074455819451094873882347538584697471774751329922908774886902414692324749623881132619013110843766530606768624435276095262110148651014418734440220517613728378814392441245647285312915368998450053184021721150542851549808259479588405309665656531800876567983439852798753226263674643589759883472828299173505177530706970450583960620632509756468566409359376839176187783054270384730417743383273595549431779786389780156167826540998139491228483616171705546577250413543852614789583977506988260338503410865798564561030387434510741702842720103394702727858645006114138863861485083946704257077768238047506917647818771684042497963233366803451761018261201307038247105580079599458973594639115166860323072036064260182848336338115637215208108155168506163179387942503269891266909552069189973543228031459581425827736277429986808706514348509640905122992515074797140802720592025543865116626798020823918392888051373628671484828377314852103548046409202128973408522516270379659408939190867005628011423821519553391861798311763375941731584259233491479111369950392268109348227194117441251891218960139099901337937346603180855865453231963362992719513196569908602774393234196680068057663730467831123201844636662519710379068800371116199201787054439586445861695021295378171008341381865092512869707917087790516491512777195272062997147437725107251109379605654956191931186623259864372896631597784183078618546944618433423812666160899559298847244699055526990617857374263770817777902812603233590676073023004024711830433835764854679958259459074078374457757760213175825178224718058870308683230360534968534949881576497450409144773364388103204198195182923402659765032006774025476634598388253317320717083517457899562127490092532460263508590898914850059484844966714207655684662145898001282099549262230945235139945605445871943263077665151827523478746116200229623675889459661193232180004805493680601594320323917698662281893203546606762128812908136771879748443737401917379045643868800902859876699803486753495951864493105160626726588458979523963310484894152355186670275287869332647357701441714843254448401156360663362328117408123808691318345769876543577034384897937252740132027385851295425358639884268041972894302919370892018138209192854505927820309738954472746403256426734744545759843905243469371063793276765013285904532115777168155044546642360807670916780416418505722051792653462397385063800291984707510922299336532085796987833387803352862219191613112009920565219360417044431415954189234994544139351380659382409044254042921931205183568519545764092363242552671976766217654721667052241481066322292039309190823541908204265261032275304299409798559534210588480050953292686868264057860252446874277857797316706351042668820310463247503765207683946510061959181307546000654542997008964101063947609995486222288093396814356213399285917714067371507979172172879926375282812559328875165958772146077178101421204747579855440669486840584728252227645913609135595743812621026192324028250034521218521885376202319871239283908202354555084315816268193803135749917779200253196298055844110175195659265734639251020273358364752724596615172703378690857901257588377642137068546360698536416562397941703010841759213691754441071290264289634154999808257229932370187880840889794032453787718208669733824557240611813720474058927650483087145966803613398531322838000165150201283177395570765192503105175950958763889547243837602604346490618829280222975429059242467929458588831614828839829395332876243968305970568823103332402052099756769759795623003550159037667987241247892881994713434865261574115042733560431119731601223322936914017848306479840464802673591811390430297576864563077808595534937952867431874215630586168887976078469413904974137667131410912121376695152886746272113224427043902151455168374179034450701030344446881748852201088884834121064781708160050208628331791602119273281395769692418378049797944104448723395263067286923327794506534333416219307687635665662438439456251711438755608393491448865258222214930515027657880909071409870231959743622155469528813084980811462910072356727305931296197642257210302789383012521969607205923088847043669157892806279599437827482492193630518132610895233508285426571220050599551934093290739462526435329542556828284678332985937944008364074837451871000973806752702938591443232643291103918469354563976031489528032088108221343229219890168383009824019549415618238097016222479057369213935853337888454542749082745558273314037389332958073945217330954754846962531277004824046638836946423956315150575737038328325361445995393536022316501467511407505534689435491025761393724445178268252751701394748129607853194734262713673577422222735802739990283114820036593270201420808436044422878269644269543965095468465473306044975766775841251589678713934514945957812842658583913960901678019087866063934359889701207826570236080355312692700222013671997914152160678210286952344707914675199149663056895981600441328576107535336631948279747785760914024421523936259044869924249474051234530511060458236813091420074680597476966000816492889654487865152340239970979051576831190141209686263139863170318182727360542127237601048570754627831424214212198663672155280235620697101963075353113952537548985063395908430808217222167717604039512906189176419720317966033606852136201878671787347218744908630038588300649728483297668003144504058336130198293554016329131715072445635447559665672246252007241170360267133854008957269491770552144781190263487173507128766809695584117719990795510553204380945299432995652845565908503965787846137874750863049775777211936438781063163224850767285909281366960272027766751579630761458244173419186680096040069445061683522801128998834054040010161213526635742339830980023712371238871960489493376865431196243905428202923631653805419707320489881310489911576609401734866371144299730818921094806568355943480094810017016697451308109846017498250425743669771320066495797256004713816836800774953992933264916493244956664547133085006111975156422090477194518406741529975323510113926477586208998240957549579827009656270359101809315919032571954429899430992174071509925317899497967179383173995707577022198005351469116813999570521550620580451752847416928604093289833809132241055656939982584929136669335283029283403421249632864180579040181928506723622609706291167988703043366909589898571781080526782403094262868763169447549454179203938060383895268155114157134891649614204166328097839474306150749758974964242273042087374187700758293378889987742304979590607949067762443654353735237610607126374148633558659149685912416022226006339851700478793900659942512348460737502722855953302586625525877310022748443334743902495186897908792414045282560871985157975965231134130097550617071373803852236330829694063244398180631209442613114194041121193446038491644214096672028858420021889303885115525540860129600745223681423042644920596002538259823737024578829627499422327904852303063596092454913626142767087924302410989958686745945866220047986441227073549038486779789741709603632562493301366570442487278999534415545247567632825691894266002551616721929468888584179905665755378159846584009412786819083161651490339178188102770095658071422501165256191597365530142275912149407750605482815644486697690481319800997414608652170760080800068408164944762613969050389782594664569567126394204017705726503632400044235718248838291499552447664360161116729263523558646064997350765017733435668999929124826521871676916112101674346647668484934549527856684468736364951503042004005217437745671826436207551169661224001631030869353393131836107500073802884674935722039122871417034571173284301539774263326281916988008429238087908261538372258117019669124820409300001621198180999509161263605425446222664322027183355996198071099909880294442806110036578051039963372450081899494359876531877145993910358870044846655439198372104941444077413519789522794117486127771977907924140480803906236992938672632642307992353592326309815403490197491398035736788065918506600592065004482535041007492673735346872241754728730468851444821416287777341717186254258765447751815991376921207647605554170856013738211564102422684167812580587892830871518923953031101223971630310111124189020212081267424116701096968321370511652207099648488190361017255486785210870954284646615680129602974707746386613917643528905510307264001483300491124286391781805655965494963385757846973702477896379753232568032175570818918061662408509617354858004534020226705106507400677861397389346759734516408871344366594799799047406652546788453579258031710155504003344285587616479302261549557018273154013758982452782349131368990197176750932798931218555561018940680828937790885531909529737042897917798000885788950903997675243805047407379421605632745620443827372473322653213495786651795010897485825989794569009291472336660164633662294906642680118573466605720166409760984418925424753235555897906781896553926679844735026491752639687181267998003012123632696897869972554571251079612822502669688477811260311405659535809809625145788773412987243091720523492525735715821141862483946252974849896088918173901676595034551654973503510563884540226278165118792005555976455204051717197450264289102721171983810750400749043538251004873150937068312535771332704635824176360323424720759980880311244801097029251842039258690446753755782488129510800740626932968427476322243937266544120570982663600451071392795848238528836833043246020628005796256860438579605758109042261272361927691681202838402598152460425562456654140354796627089335710681062385459013474785488937101084029712174463366526160024864926177127776567346410462371844339260491452474878645225478484913055245430291820130221059421092254285056482007045764535268112215203786506184392475410008670119305552939327870342111752090048902575740811109350920417652376184214914147492881015002431218649462249634626054619189748421897525578415891895026994461817062779387503983815021615906308265444761752937570348958091030574657458831604658824884431735736708170601192338901311413726827125040009299852564091707711421635177027557502345847192056803561218647070041752949706593824276008868326188475395256767049314925610883621171113401302128067830807663947170049256331297754759084839417159374423650566520393856052091337179611162683515362239366465943295444713937636502238402642535593431330651923484315568362385403641945270996081726318097246665674509242486922140696479037779149316346989556073028399058066765428421825659399217627408195414765065279502001771023321380421554920246840132474199640520745548774945136857311134008448697253366911168083379166429004650270636094071614572711732770651123360734213275062760491993761987187354959569805934828098403318785402257566384289561686874063344818902290823800669779443363463387964425324187340522404342589547942860625482836656236215447091487724757989601442305626036715954051910198563933554119781043528682277686583314672431854527910194978910068280736506180163611660327723456219429234493861225803321910318609286372210670264718266847816804519394584793850180435324297147296248041714518693836642606164072123891170398313225734198563921685821446647047566806164090074641228252870846154771409369595457189727172364014508921680779068122436036367635366605846662220061580059487634463964521465729136302488275647966665946600808784120104088444571392075567873100089477058969869443038092098411371456129808626672332393422535120977429937682999638358523125640375038577163211178186963736815184043676401907621801017391218339157493267865885310167714519590415842425231290045297236585898820481899678635167444865686177077095873472311848109344824626320217480538164776627564188522867804840350919733369600874899714896925434941978416158222184950605610958272937257606301615244790993760007968853980210136315608519053438435867504865931575337777745943879658869589742152009670946732744943584826193157932613111355856103245091057586105644314066029925302775393655178876720559464328489361240928397041848475545466275877269373209471112518370622394965084953127222790851755977257403136307256277798533353102659382509420183309994561867432952034999465681388169092100135279836504416209068880618029600414330408008676519806130850670135310262315067264531758357654578545555671453219869522762220044129424232233924819623632729785497167063338087100151490935835116556377819616126673088938929440426959438737565995219367087488615056831299364340540490759063979619768006925486468250328137213338755197540125312115369989491084271319572062432116983456414334918822610187236750506041135429898372063099723322115663275444894814298775169061351519445544231789949828439466462470539763238214310721272292902355579352493132746755065015940984923310693689999459342206639185111478263463366009989501581536287674871273314625791629055085017841878007186061938765559748532304245423432636410262132015424281196855693540081748683891343423399581054868171290433678924505873349361162131886186815827790277031659214275461483665383732706906579015896251735265984212299268233108388926105641285808539263695385477406895230457714769070382531498562049963825182635749204668298433904336796782487587543603005847803612458987612311773274390869975843185286177413734670954027325886190604781482850380314112953568693757914432276091359676105834013808323976355941243280784522786437434908669250971755375986114022983124654908252108139939670008083054154009047753103336973864509876833193584238184316838096917729440972386373924914558868578624949323910555087355496031800875273393237792693828058805533755848179246977133892171535639753581666544870959857361103713901576269134658623067313657057618221630588068664672692726656571016097728053488210713432651836609561673530330502189319164568972643345206429199366917905727254008552328202028800061535141561971676574810645224771562926799072913594809297091858231438171478986895012673278268216932089698979069494140036395401945708452141452684768444218813072806979062014924136270915172567208518760788193284016205382129797699485785688690446565335704668930528832245500543745627577854484956033971843759977635511189736797088913254773510469981820049517249823272071960871405756423329913406043159290063372290614464911669477391512507402362521046329241072550646336440685505180923486563681552475823953647094643748554630954395852658989809010476975871249058419188859526781727615368726670277128441661788932005816880004485312510687185403513375048540491816098642891343866035045401410100850016360087483865314944005168581888969807184769352174802014069667778921997203348637830043308741991582981803812105151581702670560840617216271524394850600971207552951827402890209719961816416081351462345477978743970151066135398379509682885822142155735207524520521713792992614814257273293020172700880151804277910658742370531076227510217371437153441576664883399356365907456567890237375360887121473905341101604577785058175170728109045071328919184192957299965038956368793802294034920202586084286818971050000682852791432190830039527172188787354573884244037656680288248723667841344052254016783711377555653996259580411743968683316472241878032618072964640006574744535818008429260677197276040824539680513313379296209265890509719167984148461727125055662175475800181241351099564766982729299401316496690599116247773831448820608249258643972101760934737248474263167607749149165491004783826105904899718106952605546308558794249890326609516181397333261216292062236318928277191221981620157962397959163267419479544310369052117660040615840640802575739480500075137271993710963591145034570175617881543315134723771707286154259120772057142536559620702457291468405439944229627618531231783338653111544331886283758225443934791743435665856498292737234114682214109344937048585653879886052969765509808818606870021598094745180300996922260597274349858218641153492894852515149130698751456886267097741992935554154987993284959581874370811494411881330978428020974368822857427634145494731235053765281380600845119891909797009680726571855403131403392489387284921935012361241583505606279678582750037957913276507582697004163731778393867490923991325679437528838340549175537356962151284019026481726677120582806929381492360669311745742652957890296969661277114404084484176852088748600237512385558986801143342080669159831838658516543660755210502771508829580824342586428446391388871921606928478374114278110311017446560905388177045259184435472753504164235989840722969409726762874221838073009532479630452913265032941243173249644918803497085884914684683907876250522029751338841270374119916857384254439724951826417612656888810318198212201878322351916789231972815775857671011671412608091548968073707897143874377095701918801914097517632829324835925617454287588862956278679756087967649629585078322351260710539677639763317874608882444541168672055940699792620499518500908805248256270438398320641292829365580585844854964413155989085771938984435825165750057745251946773830799885145048078398157766052548655064632659859589237349835570592689711471577599175821055870782106587493360709974873478540040333817047917113342733696617412083300271679691777566841907560547156105008130590470986993007446569878829011749640830963235670226529754687938200149704221827279919876061054227090854078250670535321348955275078965126187536572543253236455190589134260608334964786904865876339609445033260675560387087637035736737589705473476104192159350639450225358998725526310571204667068676339970861433574761220297865401382033441452471739344381893235000744067631881528993266009988538321398412556318061717164146790450983729886170309381229919448941851521050985055067293610567084770814216722258126580148473189582685790769424439067630323575838316706991333759208649156237959658139137781219345805128875714735405946296550365101097989983019526781046600588698264515925909812227029398738051233963098186539633221970041988017274385792922255832666952420800815205312896788546356484530104713913915595406841188720419680786246032169101751039439629557673382084569322778557942931402122265359840653808699159645435999686409295717666083285505905774218877606930020550451336001003563889900550086282235673983701586485382154568960991589484600942261522617814706101899763722179510674262203956667952200477136413466627392564670411229986997913941419833185819177238426935539781833410855125986146301224173344919896861393775287762505312773064489179602853029867634783472198584636233859248201213550563776375508571697756770336224552359776705608855234032689218955549887012322273567694258745506939886965017553872117953505015811352206897611340197076808424735467585888051952536579817545082800260160499132591175788178205057167687814897139864756568264849516329814612101731602525216564107954333228053767533200717571916544556456055756901743491288817231059027809346553733245818904048991624368247691728534126127511652896868470192567597085126470976994379649163213388151752907308656266944236605692782671632348426739380785569411346907818379067350840662143969704752423450027764988687917946490107694488992203682752911107985012753366571149348644956490860715090684718643468445384045444156772837531673263933469182385978724120820209843160002080745021566713081410388072482785591044425808956445600842251083971361804154746406938514943314442377231676328407103024316806087713800867302722924277815903759339461367284617599695570452613304349122268152036861506359039584918273589262192047348227167327281951532008534784917362663610349933433056303997756335534746211606600244623928428318432103484328989636482703520972146845335265397983029839806904841494523015566425261921694273117083111297646694997430702898066664270821200906427090555303730324593160593522926357746251863220723329759002768756009186680441762180538473879480210475471829607195151534099374457371603775910853350370147614282382704981378051665816589897247361804521883621017841665194763904329671967896621723454091062095210698137091791848017248210272099173953561662212712528201117451159560219780390698111434583651478631711447527043389401179827938518632448361727477137333352025198262829599149896429106861550342779865878547675515022980909644902754771719486313489401755349948633478698737168523951752891115215812982059698674504494656325766464310391780172829522148035321529432212031967912093557999077296299201770386260216262495199153617342387281746026936556863552160276217176113859658371864696137022778086382653087997557330054720175664424130757754833455631461883929568469484900982196442255973353296941085013686166242298291632010119263742170191583970810946389381516953965404980832784415601995051931914797978961549145503557540593004615106606831640214511238433032379056156395312758245173106533252609669264506308192858177001089552161746609800226327021325133819175796534631242032340203989569545011188225416465282764863288600578653042707185062569615479404891743756227739135758337988445713460196636338277200999499550122709595518147140307933628164599106277907792053583304693015992258172814583430334195114163983834340631144247819368041358505137342834544736506026577507689469338672047117967823720018357861497204990148238948373141553631053004625446808889052475470774386106011277262397206476672248809815808002698732509231156296668915581253627993178920560222874125457943819806182543296069181639151785363893502728973270776798404787473880231964629210625501158907205685899193049690312813771303679785921285961001949424733575666239833455709803706808241506363539243926912028841674409763851677259522795664007796605631006539024727383382525842211404794834863447195957869759030088155938408730952977223569324446515367007797278434534667789787236099009696402432516936774910462330736545489069502236586535224854438474427829308968204110595661439572678710236022572425495509515460708038289184906854113021742975665641657741307203088590323091888280206460898294163404900590164926711666955526609258335293583648636276643000154080641085853268181324620783384328261987022308264753323094882668404790097190619547333599479371015194793042063678968758820178460576690068353367846049570876014954301468742147928866868303665179141580110440804233021047590460242006445521328862457898954799148772358718431507481242889462455883002686622077312937549610856133190799840118732621970070994766157126970973878036445148950878530752329754906333800189560545352775534557953443853921645617048106901371452021969709581197931234146333171919186077431909415955137827154119770105564509299769473223469368659935047282089631484382755168002312584670756810598224111586291326759977883668605154568494656944683619734693739064604487532181720712126635414017025195988836342402121604348346263482166044460958164837780593440424040095113404045739507582229787019323406716080837429347465317318443172032736566783082344264290035221976987006886065472123073463652102078593319945725650937059522266677800459845106305648719553535952200969815551201790504553105222370910703976546600359175917611846688242186020655792449098696958724516315339626465785009733900662160922755469031712988965728224315363842758832447714417363961818237759669917405380100319153724002996053947983685490568445879088016901407815617545155740518596386562278190993851335928512384717210560213616665988809883907168035983655901518855086763071891276972924987597275328949673955131352057911536316296694226420211417772769781409841611359102319392192774325875670925326414144908822859631633673370895535967334187823023693085192682160986915338361471078360389098088431447624800648029024137427602852287785138396810164383139893201721746696359027503020033319452435248842068658856356293709710882559574011239253107806804218594727849264471728787759019537602632488630043436774912996741989303482415794113920313744053214926998806066889773364533962286238283565492028164439207380963294421170014733071841666096807275710632907880102044528996116566484031773877344768907324319444037170499617226854427448514847915333062866121925948464744265581786566958210466143065541960690415546294658466172467522365350744100516297062845443331294709895452785826867235305886069104447771370100791839103982681802723933534432364767238901875905190048281984428976757566891029893721282475519623431304003907456623478039048728576683562458658135692218717983817732504465208031111821586579736584720341499865619520842928594855588688007900376409223077289681350304231398934530396993257957439098628121865266873131079080848527742969716852228696293628537399373445894421590619762513899238089309371126675361521745054247884266262725987993976165920354408951088719966890904706080781265433737803545503932168833664836138906909025971150486470523150449483438295538327826098323947056866941777439328070874765783442964227813241494034893028269510262785730381028829974647173712487182001358754904841013482565010197592721820937849119419069527636539145172451988483698880186770176836085784987251107168772624253440595572833828012458114657286592271091572368308431414188117853662157572657587183248466042066421742082579035129378395539156243879267592945451239851417455774224915137295769138275969798187638137009501527551241023549809288694049149601562379269619799933208296032862110055573531270673498577092744488552382376573826076073168341060237628529388549361663488771657994469321015433477707294655146379432964340056856502975850761265689245821505812676929870329592870891161676343146924489737660000239788286316264520148143988356029156999148816263989177237882649149918749540878704846593827035943353142302936614960319711605554515163280522684973107260062299807715565739443667765200043356982932763314723472183384548157121120845719638365131140571862300859561776900822489414284576214526911832968183768703476364541104153202265007462714324796662416017733824609371494814237709334385332862387847748990739760684838814416452390583226299871780630174064407345736999406150977261806533385853311786703682848165636646004703078084312688751039477990329189327725865737475023414338765534073526044850384266022264343674377105046123123091650714849494281490285213587791089187389470736172211442681741149214042273533719683616216550273142893246278894929566687711748858146147337264950155507303585829640594116383053539288946538087796749337632491642750280150337714259364030743579328353931936400006100384815466600687947938737147960885661939641740258103738156996532521712951568502582918013362136821848698111286454811126905599635671869903444727178856519015356703034794476840592234252683036435355476921749440831309319380642750377774672713893982783693877370739889079964140432379703102392252577944282385756582659196627087949950535229275096782335746885803539093574160782524071910443225844800262413852478485297125941204708274265079015483228260558276417440798763364760369948204979170555941292586509562799665609461130287602826872973013695031155582939077440000026902961162763614414907440221342575465573978405637949142888666547889795987944375019584825273523872700368451161957696447715005285906955446748577567352387424257647601397758016508912957746504302819391409971132389405921954888460440845126564878118992443040095790286009491193616790835900940791983603258661704876693272780253893449020010664267657673312281195103384188684256305725955872580468212029461794140888526475475995866658989248568865012266614573115682674836645205696146097556572726486441306101383481601872353142017566163841754426087132041872049078266649009141971922060863217052260768623571088898304780157308294382371288930588151901503783747861367136064023153049395379384357576202626697559322982755619444811407268966462909536711004178112968435398826785912814852484459376206910806288735222008786759965343793106655940382951311061089001279891989718033331372667218792060995228958508212804418997729619063944488765511651200737157611345083090804056141889625138571164700196121550850917821054601146667736909425752189059344887816623507450389203762023057912939503416876269000157125914726588111197991769195601248048843762617471307079062391416720261871173452493486843246507208805152369082010406420411644429961141771226946871898749066967240377709997644076918783050900298939686649550981212664672033668699479826132585500668949802724663302238141593604670682632474248583772022340830535793073890228866636536120518283928153370700876796324071629852714068221178248625446800010993566319739050737323711037844050913818806711607369619801168672203219518243144863236865948088422044259776607967216648731925588874910594944867492746580540654873793332763912677391634819777136790456606659780070821947650117384772595767513082144774703331763664855375527442412983465083270288846633932700202831464421731175637655220727227973935809946522294309231094053800966666925569322136329938449557860560658459854802951671985789301371832073244052556020583761810482335014509609848316939496365147492907342069690501980398653420630245509775201466124701554553391697056847294921400598565821796837546773096000810269316749445660872584365349702504317262162348785580711709805511114243695427592076969104109607139005320946315610153598961877114107152860043163683751422982233811061077783632793550818589758986442206782915514323681405789090058856142999018621319998803419919592067012239978039509370864500536310096255774472917355305125529686307518647874223369523128484234808301962380854891123086806227090257981423141626425154823346019483472611858201146058524997457453079466615352564707814532950110141843722862080391087464735773868256810220528228511050175809292372521364260199384860843238417414444580539466664619403192366519668025281815000125345797952753177747478420906985132796211428627290065075615864036816172575006573667002038186184293981396682378585902502144632499649471038454878894381337548816696476215694137744864469572589126668046303424655479539945380680374015914553555592055026395568307286831642666441711641847483475830639374089706199728305728088478236663855471282917124592407257728302118387600373759359839479068774704145267848477622407201510684643385745706710964819973360860611778175931383039298744538826230227734058653141071348005487167432166673731151205608167923934030611415204353667500256198640078350643422601387866370082131224812721369264002222208148896101999850718995512824846112242771568276526657496827855382488518990949603023800179432076527113181751498377450178061377929134597544906908936118580130675539244004629856821218825695053416321331353374418126638457258580975334202219539281890018589067570674639472224592055906441604988444688288277100412634397246283824437287873761532420236648105406461505637786981920753058325048295851667885232674618432551889683458766002988403640531076105190134036583771226270023109100054792390887130654745447490248453233698420325514165967755247099055486084864597004723955637047413598573445701440479407875775951285813068593928315527469339738975887626241674506849078944268029908840083721330317676492568045815148142899316206932627420057014827978882986601653307319181542093441325907645613208695887907680276635356277611512607340060477990301563705201733594720073650478253396686547695615721373554960396957352382490542170141588186925860436306125858717738652684979713047970564546116377214396951212388617991695745471178220226176586616745340168944522275543410219785415530258206675990929681757548334028829390650414403806336356490645259558049535480058925826251246544439935930370843287605489021552853529381045287172953480300007368578796618967406143125026707586099947713816929967333142969024528870008405745063684235499212228244628686847904003956115305069131359902721435922642759204117023743994632871977113252152199300962448838589081492713394117376100109239294158800768863268834537010725286325277986117718753953109416437435798596239148977702816141776739884208467910950199290267870589992471247722212627868694890522227110665050680940657608284068767044976552068549539660563982790651157578511407120930957170934584219518263924807834203623429208750400354442582420148661950654012203040791923254534317409123862932874382090413842499187263796034319162723040795888258582131502348115682039975862145919893520374269158408003431004416564837537177773585045483569164271080198817273140781543211569381191940908653506425453419687908202693234755221754653705815892055351345062904739084176696005553548463392878997674264597615901995649856957370746394352903202255777467958182511044375396808296856212730422250853323620681924156645582671136623697908675135044285789069997600504103545771524130862522654330482649791062935151741593373969526062959775210262853636119556426249502818631277784393794324779517828868568052170185871638551586156464684411745771791814641948926459015735743045733428507313619739942060300216744422740644852982316364532407425539683220565406561324565965339028260802934080369127827802321174397311390862811870264853068296711326761316484694224614081435594023475143588883687125830432404653427237431514790412763717825944087065602039935264506692711666889070933153304814058641200788229090533660251488334427033847101166483874416598478320753412199151735491141003780149864162074493865050065581557386430713812069134982392292084794446535049449569279776526417169837676829696061674247907879733882928424514801370956020699604218150494897586376803998903780010152705445501459751789084967436686474927567371450250892834940038744184777654808862362125835045266291651666275516105753698021172372661216909835276297072048873712120542193456843016640686987623313048570534515675257399287057170136561466574612077496369252418551963227500272647686192889051427060298387214778988654537823983261232476940091227788035205647512978085047995591058080817307380952924133397476307980782314988335228696687864247827013123385919257477402489285165694795914987133392324091229082508976633317729437366689384617547851197972143442600946097589145077495898306458787273468410151415934455751948746224254058686765047895933511760269360175393309076756412645642818045795637024169916846194685583816457303084250926204071839415077380090580093634418350608056678518315509800644382653199075662292247188981922728486317935112434524645114072715275685900672780614172370678635807874374844698033216288196045167796566218372512867357661708112027732809566697454089044258955135739734211542081384615601056834555678147184981910239201629829105430895113117794663308737647508575640762804801869155778992531236474744917241851233445368315764472002871528084787621289155690770532272821782974902803958032914194457343088373808240994069954908519620525718058325153302978725233291987610551450079730118134914595702303682432558759561716325651196645612911277559850625175783311916712462952712344085857080831421388745926524709318011502987633910166528319708986895167483514132168749202143128541539962894775193381495945872123743011396477761767359739384725991315145952422397102648714951733057461423131738593751580351919193314118039348612448317588502750467620978916208331919162325365945103768996601421292607534327997734083028424198290384779550253116954274212331959364471976307936806325586718760465587376164420784384493862042252276724339323019080333921313870870160607261594502172976836534183899911121406419168997113899799929202094153046392919839709055602548419215991530235899837451091224212069691014960731827122804525885023600899764353852213701102699986289875850239698732077234474442258038828397677953564837995197123318925947075518453493395538270237404676081558170355849230366636559662376166858266077758077720478379961293654382348352540333805057404950028473698498657892158839440834880452611206350825091043410887060715994872070431462833762689404777128639777439704237668394194542212872042548689930686939963848085012779725111148425015967592065841325656073594838854598780016682655162566823556551840524988487987473606853616033125051574478489669829429813924659102346808423037598166694895393035995868989158311907835356276464769011389296416470178307878558631733342487737856910177022389554017742551166297298132829136295375388265322012440578580975929317079728535225351356445000983323413848158790293561925815857189059406179342547893827402285040236435332650687075864040615862109614350801392429478172273060142801112858976345245296297965250374251465754554763054355835698598093025492921557195883064236875753951100166582279211136714770829302976678147607395876897683955536087184637720794205281336975815474764002154314911213316821247243128528714665971669665808071303504366354622680068778034578069890842156720678653008565540853705022733938261243122937967877622942678252534392612086052136126501959132136031177581212190139349118049638506857141965407861916568943210414903638326990561715764503802739392654560333969235482086061906075091499308079560776790818071584245116532854926135800447460869119678589918003744614143748542092003988527556472849736768885049023545761571725944706813953318943103120332670673171443591474628983030916189992862825653216050743693594356179362090143395564900047264415344566395259287819577537297557714038051085609167496238782401551642285397881229690972823068704317521658034959270454782794335201971978687946560669840043679785733555148444193609399989242130007864916190592604436560132538895734983731816172380990698857772223884408167974142949842209176683104454735439347932504296225402028351029708096313445898395735924152631628929518174599227676487598498217055810461729860124532964421827201344880794140033858360877587641605745464040592064688491149651591614535858018976904559736714035912256673364594749903258235931704002549302129322249040823658875822493692041226882382368685185249549867420563472762364886570185472605724893423638807480790305101076600967137864858405738282597793491410092754067982011028368588145756355079505709689128044208799528188457650462875340518083826975924823404485272323509062716367009538893778447659507272486461669502201075308881669576336305554129490944742302594516040933482907836743272079387473793629178848619164251777342713173207099447368239049698135854233028476563530333095341050194093000339350851757673826791358374587529901975695016253845961787830925197659333366718242199603139255443522579735097619735325019353110845963605229603375296582633386694889631098791068388254168198214570913835524485966974752336433737855581813441885992896938349725507984664448116195515850481563388930915760878485298470498911075817707097771432416547697009708859222606557357374381516553130057941211506399791140148586643129166059799514046142227166519272377617680045235045434595986744318299514690306381582372561837110557220139748186765606272907602128787639214740376895580381627418398630764770365266212535598011139514421590870461979856787859420146588162190859241630522839963307884114132522837627288554698189471190136936310081664103966154713640098439212643162382060478068393285575930677122794748804623671863620477730807456612029883886945759518220499528484081859293671565113300372210684036377061049662748288955525165597366627618089092183424344129427473707548801012568841768840636053306928271421376949287567726408695304088801684946187573717693716645863711698478491671141550773540911680234314549125535037152217709529641213258871976665202224850907038838157549951739657779228986641720742588206140548049931007577256912453865068916449805898749075193902194218104785071679113904809219045486496167140012338348015643153606817438365128773853899266632266899717508551160223965985783410352517247865155909132965255257393490563049031576005848661198102540793382421824776448346523663606395854423764598678483830715555924197803820232141551441742169085276748738175099249314959851124134270700570383290917148291085479770938879807058847887847927430004156155077678119161243715958155703023201464373091825008124451537908309428670453857014025990566336326362918717633456011118558572925635311998167342484633781501038673375704616085274231844398518041212554233321771225197833626979226510597883809111078219231453988068851332789555337497665403943249334703769321912087368079129619964359294099843341316361370533037105728219811886620513750488443052794164324911843593501566644763921008977088998760834792258752649632603813549038206507828073948623013546677234246136318262465603301705154262821225409727646236667782335031507877628308938539056138693259557605286737488806230939387155294117810582386735848201405974400059166341634398442553978119594508032783000552419856151828954545366206651266978132391106253710655571453487990559558443651096068249614187715262330499150933896089596717902172684377369542265276110718883371668012522864981785883886198103105664066516927383260868671215519430969585793040509099308921211549224250545782217344406225752981774153129526289761029460018256330679128500316368874133008944028004276441892051608342456668270919726987406651805912303045354567166613692663009689637624622370653896481044401031859576664422301515888006495084293784627274819266672500354763676517891911495263189283879090431139292222418312297985889031272838051986058907216426585429148152440103944410778064833128458822271585708706680699357077374338182890173640590305728510176287104468336391655860360221251623627725686640512556906207099825654596785266093414948788397053931647319956893489883074441535676849921361736639084665767902189320908310719139640787408298366297640238415308207630950041314453550409111304153572657282046478172244005072115134324103049079085481657445252643414750178426248563413495361375979570549889961782817270933997352267220155665193080166007825814880603880560243918747161423645703281579730765443108950400133699348532573942246043363694241729285803112949875785217359314129444905919858134681535008719988979514473012201726544834793617438228224858268159122527376493989678588612929565939488361851596420801485966219904100075747704566248719137378364778066448462184608352518311833634073210884429284819922848123535410976092751849640445394614497453686839885173169049657043454772915281557476677573838959228175047046710522850021923196810798939296998946585056843963997695807478032999106190225559801428553105207234608639971534166729993190670084370102675991663019283743909731078819933578142058204409029377480335160396600212745689842119382723133622033060855886328185139594645345822065438330590249281266922151993237010789226816465887628461887157672694109222697712512092399689290301549860365562354600552307122201110808883551231515038694185105868894109520990613592293811272909996532817355501679272166949696051075698232066147411452587047110794150307925993093778771045550262505480647151838038626348412394778420257687936227687733691375525490133391734084002588140180699123130178833175518084946243962257285593770522367690696567502472519281836653622860384149210150260682403277400504783125311260198368762734160651317000650067099212791278771404165486147894670873220508023986003975358246450405342351624564838955645168965430937500935243738326123645917294017109233759167904901876960005348232416860122321890969840830206758166628719977683301177450277156031324651670358951291147215276598444120509412106593980842337788040021989868567354451027520284612644984998922580941445157995968894158156032320807293814492077129095538182255454195628778491395100945589944993283988497952476340333717819319535920283294585334597076003605424927205613390827920745115467319815949312594201221878493557567304746103768108637491627139986829011791784340408552452615175828065219527360406369081010201174448737072042522404164923680124569836572457232812619982859291085293766928177287893274672010821665904172852010898601689128054754878623792995841487200697264565959204118099267580493295337221267924152150982041279734518087204407200917450794845431983384457601967423048686840611486764678566141798555925969819015734164766351645039380003486711447880549681218077207324168392707485839844865528319165778066922442719362596233278687949199059400549132415888112681746730306677164910589039491281206029238398321700569014245921606703911079195814687928468596267438869002449905259479517175101260819790340684477023002494243518770401005646984692169589585163292796141934038069460792217676868392849883350093827013211418366707758522308398105024099838761499546991275084933023052632548955994768234955761398949161203700515860164490549882347122622485125725906784606299445730944802989949171282383811542306873296877312707931104297239954717603000835342827310263053479233676040078009240464777830610388685613617685756390260853576601721845914604455198764180165237964485379465427778918056473490830958172279647229387449432180788074860973630509562542067142614842090930141222895784490151308117748377456995602136474448231665688542096749946619502398230552965039082977779577943101218782684119430940241438069766575669278807709704957153445133356082997036043410967251182925782847288931326423535540654128299569908188831272055795642221983922266235909304561156003635982575931047473819019193974243780097795312028530948838969310101923624351600054549322377804688624591997557759441385051358664946200812141315458106315257369761128726851391595893053389947793534218882860288402651291311443679263157025587594891709913739046820375032316001911783213428037853835819361706047999925090322884968342674434416142530978204030179732395405488086832932614081963880553545636465018975897323118702740532804213499150691792842238965087350844828251323835343285629803920297130428664878728372889558856335601537595806586500375867110760970964505505192501137768926515888227977581351736053274749850941551596992711636140557428720995831163473546157194171588123587561799326771267359819037152463143186308334212099983241373184157267251070111055243524169293826390276954263569712884934502652304470257559467352845188782629087648485468873059649374338431626740732888897884592846585171826347508193651454081816764596397893383218791953352461572395785281981374140408505495991794512074591841295559067408538930118835100581878230680021116119551996439167803612735319897021700854293035364390423922452721477205574480137443422942571169803177612877649345009754551305097106404765578307895853647144270186461353758379722807530106268228080229015917954885287133732732035717664743548907921861538260801136686690754562360888169291485898889012031316562731466795039164374549070630176667976860236557760439413061119998703915570756103737531105312360482383306059622443390854305642493495627762184280969291681117531682019310452062753138320931157360288945017800182104798309895899586279497496621429231689303402948598436893830433358844873567866275339058722428617730525429914890369920093373017965369001347464651301908174808608700340760234988935089118554917973978016621775128412745539320856445752988529484729621718469775196467018182919972894461630052132053651789959030605557261930254699380330689252320427057417586336644237618552024445508830538308789954645927399626943480858189825744970156428715105729661101466136623156060033444351676904028537676069332891378085269429661120274716686988426860033317452563852527517110149787361578160793384693295821281208062024666330768946147063020098861919479577518127967455380780805926596983419799441917559237443167720689529777046903295265194137528999905438387934325358567598384029997823152181859283566877120797122529869468270543658978114864783328107364757565815807813755723186517469617214236681919523933701359925869460242726401259681538173144459945702400100619383935854574122358783787557599420834067069068089816499146130462402843259346323856112585019262545803496358559378429152031745011233351786168997934595149489287114049299209289981867884602145340223310113171717082745314896145078451741239853100920501389560164084820956802854860634080387477317171674675724425406845195952943109083391479028005651266786809722066886751880207334250083188601434797378582233670670972069495908315993796045821485347264586436541832715854869073154190941932923743356918694028959449534303919616514758483420112348480433362841155644173732775956865287833988063586246758911865993586471373783312042671497414928941456581741349691090030424635042499840932884943367896774879354401523248562024795466281286714051616974026971477384040150300578215024099630178647513030795552275879673797987504538756728036729666293933496797924020813353613170995562880454930475507429332168398717408408846643330423278628479819499606999287265370708790589533748065592432673241060733002430154238157122735729231863545047734382338360649008429524970179674415791877200436575127193265579096878444251665756386908167465015693204401074921243092965256794048709373140984300444824783911593073964005426965064701344690989968387282675629767847569883114359739613188579211440050309977795550453633043431516199145609810682613465943031535198114420375003073636376353721742412299234900240795456046036699179744559804753962003070410027118489008267703935408285792677286778186014147528925727423541364593667012519621688287204277972729590484082503435772037783534843570766499967660206003861155327939364669086054779888915649405368261309471283276116276874048607146956355399111681701919229375902275095007814221014386376083901261266158833327261247267996328906407433222241995700691708259946804566017160222739928757245450443370779060514864903674379144657202357007472027107216625904492015199134738423090257381738913122519334313916535515662253159069422646151171879173719621260657741511053401009607365733343044262629322793030320800784681075721758569221478055596180938237175000158134340195591383281187858829919035579084338121018637864951540305885730627619798210176101225831075891168747257254559137195575467711855103476820977514274089906894863389831700141766224843711157452302150433367690913219556214055705161393598048136398325878285685161126446446433851182315091021303012120708957458242575577261827101177849779133489701337100394617337575919923554959611829526090488516654688281342369566777473411219231513055728383812193341006669043769508527210753668785417051865694349989842087236175796285619727110277635866828451795084896987615505547747785787536652256380833367375978562043539221257616908024021957330228143312625331853310617220488458788138625490771510506439116646769190306988304787412270173739204093369346149034560469603657945137681504219256808924425153776314548085653846602092579440721588465653611348030549809650780461609403312382402558314686757306472077599817816639336528617143083250515449994766114929610378478084044339115954848671808936224411957590350687771109671357402733404617416913101690148677108791270000889882088716240378441632444439131525682809592173302485818290409014537121530565127477678672091167097269192501954106839844972123505143262116955240505407914916240003774359941916677076128787691529402672096206739040623251738441076595890196524242086582839304176129771578796827299053645765697564514928501308297206841765644056372175493628490052516505803579387996998412621425764782686475233591714319693243659293411157126440786062694645431250355413453425961443258194132113072524861572282967934322092586478323551853354311699522517563575581166781832364584783782788648712400866381271792540747644524085384768746629541582935524997255511330549033164586474297012613748681949255425572316434535910710624883268045563227749503659827774926724284098368129107863577159175453761302003904307537031743459049390837363632094462126848405084033765027625560540388441105300392560424618577843312295084268361004923125041526704445312724012818561826018294604857258284944782091772607600845646391898096409274297662225403377386295249585941035730959787880150466492028506972909802296368752323606175048723796832887410835544848964515601897666770090182145521735143030220669795554738329572448475851280083775386545795052662791197263276478374877000608178604089149673013995062391792317555785397642535249876208053265527572157273527350450493106295281792593734200908471439302035223978376429873474399079066092086407962191032994459790064676092510415483714047689546305827117146977221108109320546280573424595162968259527271748906284720973500473301432976596922524343791115984199713199382845416412929995800190892353761127008320695263109239169234420769443815917835209002567111711002387218550671613288161750317906004813074719339501148868270397967457645711139551425045777904693982540501740467677867045026285388954597615878098446763107684858176045996728444209180269265785310415806009610429961691251765370636065250642426774581817817502953311756200988097072759087627984026614111596654715723204769052341190895929089985656997638445186117206033885836643155760738723011736040143719636927521879694006531497904215003972486704168656402840589503194917654261912379881464163797425797354213856696439366531108676912898509434034095087361085772928677435130506933144807006783619773413520725709734522258253010679192396602364491129913308443236954786871981704711797414303744264928159917533984873080759563841516040241541553598558383357381363762442809159654271346969609371779438259132650297220426369714121116853425497729659682223969834224220325962029658870869335747751612708391906777147813221363281354902669745667459359451133731692324569850320253464459061605765377838972893079148971482249952373945946016701389620884823793717419476364329747540909739253430314156876713392554010386099781662257161931175375823514291710721013201741601990213637351294660530691942405870548033778897080443866390206174700463238626291203821657546111493074039158095379391443276115910531167060724665789989318353629495577053997344426747621226414740728053323518663530184292493045793551588256918789096757129494399385498094113082562250720849104389618903823880971231900938045996676929358530798885087313655255987165226869060205356371110652500986467163730637262388807734772746013252990771742145351730252502662942330149122804496897250295704755182752171011784994969744156303871867157120772670161501467442414610575594461398088121954517394738494133695449456637109052653731443431290565971882198807864764254237846536323581525574149262415310869565476866336683111633155245090552093512036373507249226567305155972902892238566410537493398968610757010568924926566987478203903333928418674604417374154628951786558027911724378624257424189222857595592125280510678309836801891296996687775410945746538771117442642144043990522548642434232323626038692890936505124349277454435334001053973331874429163097596501525875755830106327320270240244559161358126853156704200401497449758081939891323440825640233888506912618944148829145520494060878511958547573257099745310362087782440587936683856576746688039597673416192483186801289356925041223483867500950333941942765060744570280255287955588428292073178236056949529288160500492292208412103109219464760469789088878584098160594437400129456036500785089914943754837828335749377605674189207800272193568506678772840492596426836231604923165273993328584309197665007453033437264550122976328102119287959989416262566896214990214968638426834571062008449129548685406611181338941210628897996935364226072228820955894175065271291255205224013799612208577504908335672697205349022799337398519558423720978398961335263868956926921580564845983021876501667465937601101396400165722046381091703970294457823216443977789259020576037892465853938737727358030368142910361539849717248038519959605788838680192333087405917065253426857291567195273083489536725745909216147739601411425753546904717088809397021894498234506278494483488520376017991777960275293663019359104922108825975245842497974564453560158497181608384382061325276839847167142484232745597662126848606127638944671535116404222479620384713001654366837428964750530589359577325683763431376433616112076208594032016800219108670417733409021873767117864994514785212021909115119384021765775931344720412035166036011245733272770405020405555785719642334095278418469789515841193421912974847390046869279490107674618183152747429333843821365130418356660098925152053711445965084947036102357396682131417200582250579031354076444862945479067913821750167484852200129938224054303359161379286648041595916247403642409315360361614956860535651089043207793106196062766880928114441562037969942085474817001862371936550718964237562315629562918522755038497859916929365705718835595736621388517527847113921937427389517572454864273244477307721053860207703691636594424394678058069197434663449221738612680830646004990107271873461459266656557465041078925165198667405843261594648438041320796615409669000797394927576315824587745417344989865607486022445141772407155888088360468600295587425838007478161511789102809301804838897899266095559997709178608508866160738960135757106725696062259461099182613836961986875675357815378539864327106439775299016802915659242337004773077367598240792080413685122293268295666572266324095855857388371432100989766451322055775219397916862796698675279522444717943789610994602273023453604505873158905798946165633385681482479322241064553053721864365327642974110569329767821750266140818148276810439405149501307472153541522235586731174977537216706799265775325570853119231465172739674729614531885641796401607193744727964480505343927210428711077490637185899442920117106008934494591034880413050818875285451662051275354369336187050981503259569019255698282131850453453334511999570142657897059998548853272891441423985106389610986781208525577626747095280881463879997769554378223473103628147573645542573982025617697704283520481407696082128488087544099698949260052991409215462881957290441528861161557689831214723973075350717787906712485378639194613482145139996943996983498138131638264982325610719285916113123954999131704061639126573256751826977532828643448036095991497120978616209448022555938881701175292787443919754195695548753715462804740357277608343360854774590319537792437121146899691989809577952536464229756589865790215339355838923358653442807700610667621604000716307062574996178229541343191765488127191154233806750414194474276704876165440763816403532061636877708352726396033038090569304608184807018298674734267618784758746278331853725340898610919275967440992485078944358921756728013171029046624450188496923725745339342264488860354183459162527602298834208885678703963036312719308897632246324624149687402894444634899957670081734306379610233041370299838568430696367591756193839215064145770403998361595373717971029719405705509710480973984268866290921988357475604188689567011540678948699674263759687783400891842053150845355910035005473072369396039846507355698616515245152041222921662497409580246006147219263523452564544834662631128895879643266585631127310474438583071612476150808047106678366109964851019497043760956129012212896625230646622535378551960263614709824448302134623537732060708547821960081695738187896086513996662980993971612047807432379491151922748427399965543398747029772603763037149754032218062393266510871576787734627125055259605991131690252010963812551293247122938393713510900774021442937021708855825876208687440609815611838725699867170812743043056018570913044340555864119608400029659301105562781955548770994392379910118814581707221579528649808864439270874807204236426939799692215228568002335578449267499804401312323913319812388587232417399492622300604393260797962929642694078042339453875113804206985290327886989272157012655899009639929162997948961048099963905608674012503421741626697109303383682934719928152677822967937665058307558358291572296114050804047083211570537136586164338701091573795541442805531294768145811671344163261145263867183918100177023239538131565401701659052383358249401967141581442012948612538133342403445184772153275088512464974711203927772827453596633743679164519619700779031843441582589457548414978880162745941092854371168623048211055929229432870849864208915530987702184934382714405660123803137412521653634937734419799523279589029961311775313652523400105500765017945255137766999962295937280149476041156059998444846139545064631349161999314392034718987689230300091764337891565225570537898635649960965286760289822551688113757579992667061779190553691604684663409671158367097267769648512765261310081565576711110966730550967996763775561646649423159191337629945390748645854487072833227424267656134872614412538059684314384138749057936976309957004579869742987918899617976121692860513054010338544221364289632045185935117520874289667278558541961899501061370082054271295186907424890004497758342537659940256667306852400242744185629241686229496419547089718863378566214108714402586997407909703443280661024322894579171037739243338000943425179982983493168079997914660257490222799327985251879856821451599919302827059305122378300918609956545851033793094891469238007452296160751471266871121648330538220142592214191689417899037316303401675698965500589666620355302996709104432369474297406194650280395868121188680590077553748491363997933686659020194987744672577792531801517307991306587102075294824526753247467812948942482897619782582587781445544475828028408338664701418248333987875978151378959512472776072941540013453461315770045871438050501110987295361730868300190339274063261145157944601468235842330828168977060039840897612126821307817463451149561771577941712753419700750321430090412052457615603951682810034218987837599166320854579170337867504953161057861499688743476696475246615926168067813558551436805710297075910974603100490021767478111891448703485225656002054911662274080952947441066893750544440364983883234906570038331399953264213419994118669106983523954384888099238689724876249082948406170954753013953109486658144113937746423319883338864078045627539919936645789586444295471944986119621093084837172920410249952632311792972543627852933894432705582905801773424165038699490880875529869213730661596082326182070402872981964703529397433948558412596537157268918043690323333828192335826054206887522579915339570534340742256796846308998067036966826173067831043844821300494175227954755537156889330380279123303027675469891488594840344421712254903192338376793326585050569833129582662576513109441974841427307302756127728392343050517906973090804547282239247339346070368218184248055295230120987287067113015647671180201822096331981422471291158735369362646622672221538280087118955283416820079569904461037515434732277821021511865598334431625627380672204302621256711619343366602196822617623479661444971206723548112296488602237525888473800921134414795229103753109709818733627230851677236295679760713802144286434355384831770054139761396945826746469840030071138087569813516529635135300849437325177883739213250767603813247969142479541211042016141243614391792464173111215989520131331567146185432004283856193566562894713077691078813389057991782704933383082279425358017915507915886375349194658269676144018932175359126465231884777488789114916209163920358186399689103552349010739423779456208579816435173869785027879736288999227331754754203605960991566357934071431710838058431420430891952754089426748072220803577545145526023285487474648188623966676362127994365685134699091957900313309708782054758490435179757662994173917314858383994338443114093352695865130319472542076582662386026501557616005482576255817741031901237509847686554373705383176206726143399596577768103411973599245188765147119126750978248498933371618242896436465040219694251432757375989608693932125876750020655754281361050244494159115723605714601415900292372544428404169790640023124697842933905899073647456653038180265509501629482288591219750347807252632363355777958153570786605216273669456812796906878028291040716967074134165378043346594929016437695030098475011936573280451677769196056898122139731391110370509526426851903922149662246981383537641952236031123149149051583942687102766930727431364193053417286255503498312216280696964934191550615366818319662285591292654492046593850812599636222042112993647777404341584150884497747977983192254456369586129423830339486157918173043719756851986404322039429479433972186415004704266005346009204255801613258835767805933259795740146129685440580052285600523352049267164741072246776186550753386508041767492503543384624004158455900971190428757592309708559255014328311305026036153570661989343320597317468338509469739541196199607319176603596177685218965218902881277314770089426175326649503344124904914230075721547245938412147845648430417402195825918351315287479201511238629154127011357669009552840023925023660642131359099472178959122269219898006420655864876607980101653122802662050964794412567578391858828038678029369087231243141702843280279731510326838153638510360610666594390518884884523915700244037781426813926609791165538142673998740559878600946502161983722088654508367569120631491716089440933558449823649077383723748183243608663341071502247846697492226401847001307484853973697462252968226964664849932530757601708309200050720487820014693132663828683621849811618726768999313348959368617684866674783366035453259995304897035038187477338999638279000307482274642698375795127188598025830674065773896922885923822165488822765619345928178665870942366388820287657228869597603357876595624242002488061222255825690597549533231047971921172674142922501876802827561723283465280186532234384378220918867312827236812604000551814423977942718074588437666996801980692633039298281372175062071835555569319370195627642039172448722878060440291978778921120428891131663518924748269715955297740555582693701226463262312201926438106086267501840566743439763613794958089899349166041447275136622720698238031502137495836319210512541515706022525379205403061328755368743683583817752634709910971398308720422737585237111593782833015539120975127596444538926157310318657875403507833897588117690789845730206969729512191603877734309137864706594480684020490905110195333075666555049222380595576303185157881802820990713286474780749062020058092054075690987840944863107138697218186519470029512540768284813987439979847210408005452899789724720223224555640387572776493332985832981073557689305318133735837854771392914499545603394012884181998857044062556640829045263644656442230721099013550975347796428871081296360721679921396562154748619678367714751402903911942007655373760043471251454058835833105887640792355911949540559921073316296345077050256150660990631895080395449442285215687446315062299164228907470241953058149657723721980391154783832020121813041624630549821435773687623116394941505405550556753778055637274873522070003595859441343480527720861510464785522242794535750139962612966057231142707473329728795648266274784141550364233589085761608000419619386306594132427054568055852342265738685508856971171971818248096381418531979258841395753420568340894972417649966919088831235241860215869604731074174454992455578281028596732615084349045789815446492205842541191055162771906998033613882758733611281419044672273305367945773294336038699598510771529877292753306064137476557507771929994652895045880526464424138129553147156729538747592742827479903463810308559559510406693545585671006290813812976288036294628254980073052758749614296413669448166755235539366581006738012872156864402013286564356151426467870851220543672333803098798103396266383239986808923343126745607009838990611699305567406667403473315630340823951947074453024236142180494970139288373134025057067982925665016718010613561478562939600248480205788216700945493915866236883856794974279875527153418124905628610531913006073712839087734648588131656082084867649165302714900841266725733241324332960209344435901173070387804836451262089680477647398938382477982593557722846159632784674597944300121912732990283982095478421813677130470174006815740456198477375116417309757509455500651803586421082074064995989710898427062638257319336986050999426192828157627718897938214603218076833718852904688172054013065057049072529605074990360336269261824073413856402637530787543295489116353661342487692840229996076279624271549639452345194390843560686427338069171974399040789209410397139829578731760601596396935023606094907544998171279629927466759033482321914641557768403221374174758861026009759872662574121050179777522416670029212363501530123403058074269477928236662293006078595829210627947681879707250551913763211319109460111172870889282215932823606871087220894109273306100581953866953231703552052911670914465762718763838336098143680639519167552977864438327339081401974024018030067111975182233937969082644937227420627873945172255667919229112520926623941651765705727676212740807159276390340953276438742830892107901790036663785592223507249039636505090723459286199854818193603746936758601744953395209822810538036146384884821309184959192864750470512230075646425553869443431961498087463968419847281080520154719480043971789375650142052135072280745727902931541677850518522480413837839022737414517112062211003510644971541337979244048559051604342793177749807573494456151983709990160110040215717892809054707132518116744420464316020698377295912176511365522166753108548081158734569914728747613635952790961800412429228348177671773535282244767900767023529717950657841730303665936889259220675669465096693269676953795357728184330631325025073439388691286955407781873615939317467096481808805720651338715362769129614866776330830031372836932607898360590491284063114478923432417571410169940112906955826783622505864988031752453021147134264676634239322776510806829055883134061629638790222116721992999090508001928650502171621630247417015280253968532153127440035807259498165331407248944359596768483700470991676980610733347094144484601793176621540708872541709579867652587763686535877253930855054919178034742337075279418708146091268429458153702134925751235918891922648415929691849447586036116721921136733353496069031814149632109300313261061672360995931650358169959642183622045454987202577111359998941227180397626101204800025880009858285007364979132920102014899227294236114239976602443050037346697157415173664959886053563540318557287963114851641275359744867524350687729044804647066216767061085350503671114324487300082721916215687851521849515605867904921421315799754916656180383310016490907205631209131772994581538696800414188770940539654102053501864044715465160524239856896665620425691532672148691521932049498434162707528977718747570269236662308134946489154800580907129904183961518870260501802886708155748885193746360336825011605039357403701341936426517179049102324704724737581815833286533834477034105109941436576387570684748691249700821936462269456109653182993045470472340170873610208859713808394314244180705323571476818671980792072592259087860314756238379625167731990779003839055406999276610932372568058318523517160808652869015741192691354755639967930824171272964849600247767877547363640118997769724606158342882392792013235382274979079682196902859667737718109850261161649722239894232086528340047441050776939487401913482642475204627809281307898438013778425829758757659627795123818343674428062699626674113235778730319617066726713442927648457494697168561397731001057420718018360201073674506645770146723550323929341136656822003646188984308437660401143594317346648955853289034277204574658858840732163962174347638925370719546261140242142184846480488282603295622441557739651997176709458323245219566966467129592274406419653650097092192710532866407552599586913980527309531925888826419006988989729305878625727849793413541175637400177225467975029611242055048014152449675979776838952108620889947175702170371152336250240888768900256684878736436651361187454020034012910433447641455565682316822478055693851867010558964201291013197509179377473050968288338981768054542456222478546735448691396266701042643468139503851660704308731870326079637282344718303828946738088757006698063897676277225021808630394624609462662600103896667570100451401358039618634303981691242054456464595591194375235697021856097924295966211841826075200077234532467653954865730359653458841112529185127014466775637429721019513659745234642734503992562079112362136047354728060668933779187362241525478046483733112477027382277169700429896118094961143638916926785306694332123387888327455024135197205687537503204019470047514215676806674563330077913018259409967908579486798445662376324230289885965822176677421736733863148346753100436776355116047248394945672227025140221105746139571149213052852774669834942798596501771845602768707832545380818335499761397637278935128044653801457089479501514137696700470689389853650144199681622284494072219159939882753266498540728303101412695657819777288974847983346652331989259507102834510147814922817502451661159798071594832620734347766769071193290918139180845219701674863695388606613491495587182505248462771104591289994207675245820669566311894888299021258982200786983118119824646947819629010345019333817094256255233859785788169704996373612535886549950287091218636131306270245813356624045196345509748840682833703159255814677215383704739523057699779385686102939572873068017200811233110404763371455079367882347160471153682410574896687046935574508398448374371958526724153709383764801073089015266199346409746308601641165624327053027807709439943855591628622988680036001343271626057690321447094176990471750923256318019657059831671177772366787549495202594304650436932918542814656687868940274371968700309211051795807390024119791255291467747153854731101003571197055412071090235934261292096555762610626673740295213881077171739554662925024404295046607906353738585687599674957760283329882770406842812204484032827666136794871735844907187978584296436725587415345398678691689879614077043446957982784107231579868763433013889586691269049893186804619068271990205315582231557784546896896225088581304063912488770414390294610119513769988810546707946162298525726926746006303297363567307501295740214987162752150392738121565606303601213774520957661127033371990342619814010931727319721983659594087524459220424386979377812144975915349314778851711025109220848482143413633707860862616981371696920073331036173604931308338050620750284527672395321151902317769375806273403821669616902133697306898128062440757926938664057494062659489858816260642896242842763000415500533328517533322759314966158452926931842236220914960596655774236354600687579755755427632075809787555501317523311089693729132485221225191679317241403752199067803958569794094242139871653152786070375696807859688290978296101187128316735042914091700225183724145553441608856385587814689848960338854749786296800545992031926270043043089098693462273416743682343916118719220700855135572686176480220175301185222129978281617570774495753342610023408753659048380365488038612514064400819668300212208788849736719102039260893778208495711491548813060864782115831927962993416887782432778037490358150078714243070296599990397019225090519725693753338942598219058611655503714523310649957094580892125851524889229878273367434755177485511814986532386950172377473769622023064048435758640757697937267024520806153870421532205830001710901806880957255814125763912748026566303491350538935146268466650961069970877109324994776081165708551961195908395586335429077206365102823360972499692574809797243726860440181108802077143138994616757514023572833493438524687424281386293509469497937483334758024070839009717505099440046769194393660961309235252479927181158787244318460215607622213902616051999596674795951731044349642305772798909288384535367626612440024520530960721245233103997450678582800767933533071668434462150834782975373604877796236112018771104352746214480204712201989385532093952313818470462498947191883634493985154751835776026477753926635318187507987937622650010337774689643340630403326179576869411087616967002357733773447538026517851683151844358613481127545085501550044685804171007373809568855207326587357982150307304702111767834674872721371046014169461542589548771864784308297016940403931445300152380005392201832563033150767351780226926519082761999231455337580578404660033209150616598319734130297247505444891481875923982119559915033944863822545103562589278499226155142560011413824256282386802294272173903743000931020119794278632619429288044434801895861863395841581446396995358968674032951232117950516423973783876769272958900356332482615485877778995116971545490143318154776538774291571512429741287674843638348102378274453649827053982146973050364951808058239131263658093494177240379208284871945756553625906733492860325233505662374303180307331902575381136912465951538787700919427104284058609413038218395995427729337815683869490273926419287522173507133896804828306688898210103155619152599751138973675342660374611299328638107663528543835123647062810195032016837342142015388344044147159663520584339935513415334702687428064202064374863570548985915711374545411762069371079876341903161705348635214661469367847838961684192934617412908299926659483869071509502772050498711201880671360736529160406167205592131264229412497272684446042944870693850350649947184179525392527460463336683920953251862778262526008711350827692374699766333600055148691403435930365582987653307263056589603371962495987368449329152951132384016270482779004092607710781591549519466757670029800094863709377703296338858131923175397552764746188203826376583924963336081601014525199411496906295878389973630339979701799902083426356058126709673067590737723674941513451531928842103394594637086502182432334993363334826415962156135684320392902521819849708980028663150160444434163573851203465765783717276965714336560446409718848432442174265837753286357104034807564465265307221746910848670736533621424298461492071758819566820773399140647806234702057523396371375113426621061137440452438875987600701096756831341882734101119106289299625613002172025052308398638338291990180482866137512710437081277117989272246223889955233422156401151561031604134008296240191872898090837021153202329286715125460622209325124235222822413632046297472696602468527712277591780045732832957337996063121824779202358805168124177854962680930550228570390138557908126492990725379426256502116764147211519215828943526012750489191559043056556883926225444091048859423943600694408193724310059617484208048695895979733987682010215470543024826246928413304921314671664435036029526715633809503875804868739207408844886589907951744042735133208440529093833458473301258886186902642843376147101047809763244055491440519409637003505040546557532483768923823828111453900396840354920561340343131876397980611556762106399325410099121186639495238150318601906196156180376356504962044693888667044724263765180020707282268669251994297215107788326070470536308892413084470124053651719536358773574570555995598111441994409719390302937318289156364058401688768491617581276868741362109189624201512235964293875883345935849596362194187653238300297888550289037198298286563937975672383696885825279195804753024719753188539856449615374364947186406726428478314492633356327006908538776748187234554181950909192599449448865863208159126772260736344942641123666548731069999605115968781460365071740957572688398363903673689918711014880460170263713033771921095405738230460591123309007605176208446934881589931803294140970001051749347332981166632789767854443812368601913787920318781520637905545082895050767404871946540710676103747917606772438043922994054761815785962529736460792440440683548300521116669336079602905909513410010767109873415259150040066934577232753059225396330500350115462664220980933649839187962351210456929235210669560565930192709956137059979240493924400431573501840209478337666321637764944854954240846352060157984694628792988645957440226886547276355049421624901419088822237012987991007757881321075724007785442964299192361005872353045699478178829757849361089497768683797021331558893882208924124999537785460126035100334239603037428054419613607501120281827086606283476958858944204599959972564076204514393904405120857794554440683847051906065117284690935760786027389824261933919825937942942060337392939267584467761469670940966081759172555100889499893963286967726005887833953585117643801345714270928246596956077551358751340826061108745870796727528419127633004261831726659514404786255174388930569903385652912351842435961291255023713127924789156968843664519964167989558646095979088125240780571492241501378061121119767447161831446479873046381927547066849493507547989739234265941199436663579380110732495558592130293358440423148174877058553378659402510029413018462727722400401592955691246505415923930950086750126072653944683662690805487614403976504667036734810759873877353308740376759315263408196112582186102010921261276969012424897803569764716860738291878973182610014864790975339178862118480363203006111572443069912025471712469947516016583410235848407871212121419812190235636143832940181882931831652116212310965961450465467297172882074877554543279538629118083596879794935392164422529821660429693364925185790878674568691202178653112113443526417076156729537130207480716207977927012757689085299616180038417332551717107203677125492908899220962032052721373060875454620249838731251978169620922198663326473300413881401222444342666344571615057012462421455141148590798625721868989746728470774698716671789865737964100141529146589406995971329897240028559586768625571014469804088240185570380828209040279368174180071974391771024187675850578632966994983559429166653622483445193096115187950484382033342772123741079013295906502862539906982496953471232020381231728429801633353062296235534766505451128464215329846669315995011185997495769115921137306090245575280774236387288203112519103577138565048040379691719096960671510831728888363115964943988323229270006738466921046943917734823262320493093059505222036391314015589716598656970602478072320248017750210976809266415996046741943448183088191222685543228871944870202223625075606845788796932773305397832221518564462441561848171023488350047791799310438210120787968022064003165918068303028667489208645248414410687098717016571294840939457001072111268571060945576234269399847529567111640080102667620566649338034686565760412605359015641828143954169112519821535347593633147113495913998335403639828963563960872450944626196907324822930405279583220818576414375888545334554056434701044806520813261844723818741805204504855270749439395956701105605561581018552748625203200937804333441990267279348170873627701391690245166161837044733258948606493416595062183374039171079684273969905562858207002443327882450391175348069158148064335137148474696811428194983935095352949205080215571279569175817570971071924331377059396019971283618643364665090421382788402856283562435869415740915266854803586321972349582044245686428303948652251073149873486736526148556748397990999012023957930524717665997137802630245156023350399910114855071853284634562873797966015426148126622586321890569951628313366766177795676805157104853734335269192274204063104984228187858639542082309400666142933912344547270317600249278590921248438504969507370591040893259703367247980839823735264790476505049397442665477662651412623900755344639218208376981521579873997880053682958940253740364699841830621871075033911054887923533073350762280716104069354959157795869861505334583587979974335164027875883759814383578107978705851902953271670464124138251935387407470545719823938978627552190284797277746518042713625084612110650577527280897990262474261506068091740455768327098467134262228585050171496477566240029884170741906910316019755527983690506164636892214661085708308953277181831787945227089776255150121335672323855053210550572389952489205029584161575171549844454671806687584382186759603103998405179730797383870098043319271898089378866620985116862710146373740882022846589840178860581192263345655091738501000908637689213589125768634982814641176599022322394236471921724938000007087953819182231961709573181708433749211743509932081061920734834973692636689649623795485774882200125962168705927772044974736723542125421062248550105943687606365840959659859011991479138714949601289003431377011301839994008799375674367599779310354941571955961656961321522042404053704038128048999793384774003142851035502983660316187081627577787322347590239294819558593016857687220541125898051979651663925500622732068760288934607616439492758981501879290124823607556248105440645842180372945357639279682688620475829517311595516923706654076477304121296880017364528185189112709558802501340775638297334383578589810682091097620350408875264531336375266006789019652966188925457305476753293222125885878021968667277333967830614215403628770577255328878748556669560638600649269826981257242799009681096807464286129460726379538925182515284313595740240713365771849111265342651155646795031095832755734883945518166354791692885899799272188377804864691174018504044551020057113998861463473515720399639957963811176838504004878625805627129483779940200693700815840641438982824710937293647596468494314979860131647524189744653892190222115238356667323312026223534577059032604617566159282115861795718462064676663402713991352087387330398378402263136663137061128681418855450356228634504369059872367832203092342229002104278028436188442544635022133798845501248941106266874844091749768166927054064887251598281653734257690044568624948779091336445421196503599498489430239270963485865111525262662529044391649531893512706004870823770467974055192891317935550715819786070478907914630434031029856515918293664319655841259577920230598435100094617830436186729347681322359276133577453371303590741283072750613785335289790670759100950178645335751924888245950610578474401500028093737567155254096012257169528990643831583771917780523082201991428565371912440337142908548759515564862985507398759513945088570394309936714580300503768488510283754081014972726019165918459759462330170343615145924784221623372097641400221505453021306255337144467127630370387302564034934265408886855270081219414903947940615657206275539410686816201090402118041301509032717940125880839896411192069964367643792907838089027227370662272665937107079821417059252533197476360417138077696233949263483207223369916640541105419775627120795437720881144560293374009852321382713925748267085558018429817437542073563972042423656728156277326682007112437362369224170631563499707396305417762789829400454799000131315871128575715865169665418045619562034776308309374517332570226529948476257973941832483965744424313001118089970665674757443147787010768677143396294686189123446060136475832990440513055628013521873377121104826376613834969604684958278510445819764522310847094015007904630083855026176413202343416717340697294861653300738921898510615339461944631950475593974293276473175839534890900972394052581630816823796525050582250451232806124682465731770560407795368820492954431555639915111752582128315550026720890742667859140037012709958339008711769362087054984041359343751464617450454459268206363645473338623776232519854150368277270816916302277862671282831500447863621696709987447207237077295331276522905022398940372985717767283673298002755565729499403746117161509648798318836219579174125584483106716689046612426327182695628947624005008112922085023089571141618961111986952355718912378231905869304505526796334324944901929468552891212357688373042523799256984319016874500935558237888940348634516905672449834979864517115323243799326102004770493379065587143890885820465318924316559693062043222712204524696712870199871007458150962583577024862104588901241225818349822338560104224178277769151529500206334286993944052988131755468542935550148722874162805897633127911886545919122149135913009092019059784567050218065243092633407326407384521084154946951104557267764211196107652493837399177648002356058763459337958653096660298031576040441369245461394643043329803788129200741305202081119667687719593211232684904322495218319582096886905650561563246367219121140183424780173732254317803226973454588941215771491281014325568283614513629173455442639087216629208769328590182653964259257331300429310730594067639126127511502580951865231332929280625534428877938064152849090930511067056818311010233004961393308728748715294744305831417560866477392702748636457465603365477304668233400462939447722411130965788981736578210516408546001211657076936946712569145810957400910086363618235666698747506361625044999897945612820919455993810380413971102383038169923351870237947354922727242288045983381169074248548877711274422059932908227573068851089806967075254969807980940543127774729510014920996259776484652059570280013756013579328132469872853652520724032416814254030119577964922638615090627015080698790317154506652334227977089312094019999670239480424127454084841438044797831390277666246935236271976087480565616547736202178123150783860090193914485875848484710370060234751068166622982226927844480801994390087522242541517147512840910193319638032814784755589784322266634870120694630372120759638191692979288863542733305619321108439871633114666163075671248770060774491711570682483569159587561798400498781656405256264493774533146491247448920546511774828894037776248343140010498047030383304304595392088365113279975171741108249597440108728661801463387916463710965379716410558793152685994936983534178300993376840778393878235279741459681724383652017897308969606670704216796252589884527693562763997718432886189628913435922447124621391697767343792329929265367402295052168433532853123572484989963419629923693899588244730371697579775632396471151315692201305235303270552092068433565809565119206914855226258798506207278796863311607816277403945832503658051005610086039706739561707333270382859756163666473025044645114862775525612446962312511084374550877477500974559100174783451926842583882934287649613820522590563680704712987820204653722271292589131072107396753255846203206137680851606611347905567167180562620562959747985179895760436157937048896039871885973498996744177887868330697809283132446456247587822472740608345370711086034433513649786536453989512390871339475798691121875913641791274008443292590829394816454973520344681692384391337731631730023475997943925347871872674412598153272109793088672137735191110842709739902067045068877734643067965998910251436103578552454542164612494539956298879668872439956781707747813989160372591371945388248875753533940374798527749101791894698035368446386655825109794699777605202230618371542336408879400941187874840640846183127499826853160148248605983465273906766876361804962422478172343962000438650797977291203943321853221121424343877510938357223491273153338959337684438477823493792270612030714291889377825948804072363895731992319447325282440496220148841313600807358653309950070091338571993932445671238914242896985706599918938508654930971243786051030511682231243852295427769182714248550297326752470471280896590787613401004315979427485529648660796583102394080520612017044951798727008378334951044349234779398341021588542587434757842187922160395664525801654274697256919512313433482159566749646325699649351448124129761171164586558112180779866548454846466034202210787131306999904847859948250560812057847120360463503348149466559266199894124106525354585134589125043683124478036385581522433127905504227016018212370282062249408661210457225115757295870937372019541558561447706943203471827158940904029668587679250012085130883948079026270132065032017319248850862796727744100761388603978128136316610796912413217220346525678386132862163156860191832403647959478227599684217743186408744844241260727688248851526069305641321608304285638044369376824085449151355350203134766763907870760169515626888642722793206668521678013171987738880341214196486204900642135770684781761602088689867955766649544005241650004584844786900646645319083701728476128365636569979703127556492155896842691974639339275471007380090087403025097115022074514556988263490544677854548314853579669453608603544710888081129603079415487606830841079132925583386854953588753604076714742134462251708744318347620222043774583699945632130911613634345577934297867012773529559729500653212747850707668095086023058680646805047442590465198992797239750469917777785538942366525348825275412265132722266695771967910850297924172184407966833860966173440281110286617244108686355184852764433992092446105547579725110242865841947371925443707135694979584204003190941599102087543658596649016658198200659052250170269921256748771699146502370413018786309777409245393383021023470726209125257281412017753605487278356073295993460863549754153777414149863979228712983480747031159657497121956553318100610172587780668188687224129341102417467227214210955344390081053905225242335225484824276581405537406964709554991264878739202745084838951410381987519610914996937511964215014994737139580081030803204515030994584225498317704230434645300888293249445727140100773023059839317990136863369325788412663480250361990280311349327770504668818424194955029817314211192759933513357130558962280493124365335955229268523571593488960702770611987641085414298163280603758656698474980252057126876164300811334621012913990640494560501420057415174077206997134422607530181934711254402829772209297719164890883910061200275665776077454132389588599197514129249482645115646986465541393015511666818559563781485468204022861669805577278835891244599789602077110650756051690340006857272707760223222632718079829930595171587052687806031299030216173427041053593685613469512832806833891051561998947492190487239964921180162943212306159351956150628281316220018998633321621006361104619538803437894058751128781037080810650668909230608255882189830995305606890814337321735869089511755177856719696573042219792053422921361693794581701593683470000366988528050364419340086991666542634003103601470701246106419068833362239351707546568395912754898189831644386791346917818224784638671838262690259871303986085514342644702276910282853859759400317250806607011115265769629553276480422700124931759667293139363612145889038843953430543118652446484571535078867163785438907034552192792531081903059257213381406586231317535568603497538806885254093453214368018126950975867048897840293733095613455239499473629656505255830095145577410683133258569665068514543790506161868034910653260593304222872439404377087904209800799241571993952290539791362802831317310781483046780249130841208835683312517092917151701033994407662942368087432230116266871109060213324776916320922600432015681042893965113813935330836975682544740760259537089630255786253185595123158441953010385945167468452247448248267769419950360968382579136796680768385145940318688862028008113526576651524776932396755924925234537893264585778079215891903194874679455044367236840866047530669230362081690833183924358435483953662780681208929418701033790104014620481066935599230493130328750479132624712311916191441035916155588051214597469609392419144811222238690492432910199091672488031919023847360690029193409850888152407769418290710527648544094060567288213454783949255371261011999742588836787538952211504601439827341147002495755717798473707472443669993409305781217834030319394544524948830209278042808850559341720323199791407935469983536683667590902081664433806544134334017776837942034553548347752949218514025984857251060596812203464933288742810902790209557299575374665512509290478801260991151103289270805652126607035317968960925001099556196498945000231637794327186741154435547485777366952370498885704762665383777775577598495374878530605566011008451109412311293214907135688773190091588665192867474251643818502682048747159253494225522654150083531179203745442991638122984282482109557756995318949516706222813839649056675886433421849971764604113193779978453928666251288086241780521651180700322238576785961319998292369248405003206024901306218390576968267790936514343109361555925574759338055333685035089645339269183287267151935105230736493686984036011381380599265333485861032910619210378902975668898786985664473576960549536245598496894310956346267855063600737203718407056765758491826421151917609101259347283514511980959285347310862540613560373897949347259192440124136442279779060828389530239230404246159249774950117143326146582936763498098913217380909955552482250179839724748002744755891255436182208026128782002561559663379648450263024668073182957040522112230113351501415730318852814912800872590284967877328662664130634117408637553477788411502607824697354749766839071140163130693082780500843111567104359638321219571822033847654247430509529237961121517186409101619598694145735896349846747799229740087610499280712826397392469007312729848092635022405795663439497905866924295997112129113034649965749119831854780152596595488201996529348034642264590917174502448232779199751702933999466278665312918529652363997620791965174847632903573328329227376953064217653515766316706694122011779508641843806860166586964564921669612294274824906514595096944219071480073620506695528515599504384240424810029600172218390007108278958188693806899117803375562753075480927561457141972021204543378083734302276135813873996489628338102673765711811460765098395075751829277927693459745502170939035547567840848133702696758962955772971003614124573871155509726970763613444152029560517247144801118195899002167575502732820333656903845466710699728468964200326100983265245871677510034282256553145666643225346664077354577562018007116679010591765199318793034449661626123923123755744424542717031767125568571539219567696048308643496907290801572009636566647955091897514288028083742833250025533346784622467897769034440568979682390247490515449080840162546305764371005716593631677838778450741799413034237225838145506370778091497069616376643372139257191355242490307808381563056450105435432773867006342441143461018328167190703703407984437169696395249409311343818136067184901897581917101567401917625996366539091034902785830443212101390162086088351424515816146540086783470055221493495688076223686016525203490199362643621738760091816524377098995294232044111427731331224705049766343960773881481455028062599407378131021643359838689152651733164967885872818833929828755224410017676475697651805496679154452811341340507488529112602538992660054864348818924948217840434173859223039402590644223415678780654912379726465094067862722334367454694990396205983430014013307704880140534465470788095172139006336242478091540010969164997633209747270435789278500561593201492439676962127304068334464789153124819155428796268368763375947484953926753619850254340257971388575694470641303230848081116985837077185208551180492732049270642512172581751381569725066943777131878836122716163280186630439351259916658816181215835497554483045277135584206632436046878110376231096001502194142529471365136323444087766161954916862357364750513065020805751262447332922402642507222922571177737278908660865666844267006152761220189964355117916957611643567638421920600493467625139812013998186043324620490272903535988361986517433251770514795220677376338231053484432116607076877890888424860463247497509096104437493590478752069055506146874403693548359648338074681496425357232669328405977578948279389490273734052649712740644195714404240573399821146074700084452259915654624796442838474981796403322674384076507095477868039419624738062682914024700275119512383385731180823233837838491073147033743316815953102809636561508037256564432238429286969242938974684427228339955197349731511537448053266737997399562603412028071188471574383343480898560802704372355243110626783202726955154505662211472670665703156556646072111835558184070777556913657090364890196373735964717488037620315622551609946774260060218914266700442569675671814984141452048353994571874939917808286861297133481602095929046502129707793054675880998272141028492502648621135005334164011739974290436910325110564330530322625125230988034108411947938956942221779839258856094539045330197678768741490056929828997623811253605186393223582829183928324639493460722638228050076437960279053802099016632324448221906796674634091058730855094924584679061631697707868604865139500711069220032404142688379639141655648833727472999336363378585655384151269780153355364129617489209700520203464680747966278190566657773787915130167324319544861172216824505346940594132281770277589310659889205380366612234942862430614952622659925024851596449921883412330901262022539523103242129869909414567320806803361409014985442079209421405964769316628159390672761727717231284717424194201075579981140425590264511715303598040269647557903572760270140557589174902291127298748588745578975974219658830358245781432815692199707199378005914817305724791920830797513259951998340646910115916775392688812862303889699050663256610960344294152899483126697697079423020499675424719924639667741836509023555243390944165565847160775702542834815724029440904357727211648077743724847260895316744493240781818202078096856665444814976109350325247722436930061857270259876071767524859358148253288764053803376078129484485580031043471347647666662274845658288767764845048862230301308612599978385990381064555885633794151595553683029551532129721821327376635055335299731229413276424125901855680529528040765673416560904328597220155746185133311989123305662557359052993746165222337353908854473822362273543856269950283379064442629848355082296063885691573729511093408165559688206308607739683573947742585284467171405909513695795820387181079862606386546536744344501083453800994652476986038956410077718786984656871229388193945700585795542183451034762581429783925906823664958311502027432766564377519535723433431278150432601560106586213085292709366018595329006307319411916682313548283213594697510116774120817338307887854248600143987471985643987791239129164758238326630795381731050651743475934720524033022734453070216351107430380175367802232625819385661739541088070528740283788228438566615682108838535035357128241146994985300343182312100513195320247139524248179397558139830040770801609804710086305409755882005778832785175716497358960866263536318839306201228419879065089144229390327342131822684625147923893454571612033430533772486984404117363179262847833968944154996013780812848226815867097363280760828685992609677735186883369340285355632331165396739334683714898578550482635690646142479189246395860019539198742336624837708192677533472827735416625889738372965851976045029616556199223525279364649462082730937043752524451972185874971524944447933825461757740303483562459889779945395822186489378585781256519197537893483098091369579130259950362692243706186995606261656019042164952901012169605033355661450411761382139832597829278744915839699625110526918073397604276311415844538539070396698846700019107323107887052098247866326476874190632916881145527481709194114324133935745673512740186746175361853119822215634672625616464789193118198645689191464931212795764224313257715985351763188642739565613177601168904845717210782438276694891481899507688028203224152699803761084691217676804754077624329237929968678330026380832059172387880580568531047265738592328403036749506516678128130430072588196193934479724043020210360942052172639759671267178944959922874732093507922193739431513057278065856172382758170953159348787947222188854889142674183361814189748419457329897766487235469757787980278044094551032067357892047687616243754275659134527634827707591204934903306473156517747618596731514804538367982680502595226596698202609313805335141378452718236955496320413814874085404733886843990327855213782801251803186543561580911606682085810485936907676798743761111243522977732623289602057524997430247044315312583745179344906957462169786173849130310784386601918940756091712540989499171655170228039540333176119840714820049103627152567540777517850218257040148486364104845463223199985491335664497752522472089876312187166760930189620336389791179468846378104110849285954241077811815679904246367054090013024076640292348128778645582538886870868654443616433527157403273610045251953695179751669027384625557326130692774534566745244941721123671700868364145341444991355542945622111424759626640921469065931709881443726383045679326906203969410098908687762813511785819024869278143360475001278011621176195238029363748335821099320502026121207025592876873343277692251168164607489343125472537712533293456235585611151849308162229148812835104165198225692005903906547511853140715522248151901530238223952902684985954652772394972102287490462083907314157243386617568368349078037086126434449228473827854658171372228160255255881820005003412061981923319309031122333667577148076892492445419014562032648407889548770975533708006397778460031050092739479924452373217304707542596571348527047011029847043768434701086824670977160256938721826042572928407264132325345697088811062381345870826653119581580787006502946022221642529756657081464984297074910061849898578951799900515415805953807352127690469934038941126761917680214455857896148703219645541927850005973597291096868920945053481642665160020421961477781879940737569281117766609648801206404823934793813647809063550827774983993461826352063981693866014741905468944278401382998122623748098570236745762914585624988875642744307934894521732811506025206234954387094372924679452459952950434091603346079194841850968646119775463843248861730520044401458566706812313821468681239755685977343530712678167084472000420490229285658938026595852207787086807488604810770702318543723293720824774707509936001929151423595076847606792376956741049641226554298505632824416382074574605401026767090934398975877217970917650137300681701770142293947515810859222645921422555972181451125836650911440341956938081737514454897927762538073064238827997457293070906961972891735668925819505771572857784017742758801979481391349787490262242097231878479726755684959319146495865250436043865792416090221475967399304597622401042851524350432700280182134298235671919760692084350493757242933657889633084627242636476498912855930469240553854835618842467452787198122971633518668755554687132721351305146157459047571491052703555064370546832612862330683568807926174899543115623017409208757167651458162049983453999461129989300900520029635046117901318845298650942832509300871984297968492619776324995739051350477097825101388764989110843037810651933023596700311023262052182928306720143620140268756061456797590037815900289094436540243503506547838850625087977717051742687427136845594606134993931970927963089049599091727615287878338746481396263922203685716050866350463130267639096307055489433524219291123980008411944456306862420756639383882255672721067712308995737152346122277973102166503841741235056054085004672760450532573417815360882267643511107128502291041365129623244668575263024921745777865082808937699034567767033576092097363752909186656834439269415138441738998140997802202398224036346119420535149417670831769637345297161036240893207451883679686183504270873535862494783008475082964902061697369399951489452347747237134365501760665648835417864011109657352537821529378988751702984747905081312427226492610462487404692819840134545817793087122712507543311587142728704295151480482632527038246895502317514954360943372328283521127629980425281684262646149634506744048402610629699465233314824796625931530024451034325236232725281089679003050491103660471439585305689134098812489693261002762652478092358899465436568168800207939581985639493991274619655618653220040169348026647829986650849930333054311548715881256171396822704693948172432861962213273205666927163988705950275850582194313478562624579902052845452406679042662997171747823831478726571464525159746487585995666287986807572234943310894915402179350992285820687180618035861540767612461882015748679477805428917565405005666388802224444319898407564810747840221276040769979591373753124255567456425585982777469164588567779304537515497087808355543968890910932758241863061724954170790806140562293876254723630708132667113539410385515170595975525217168098272217524809086114279799451870289338842515909252556662169593055084175816034839037029300394012845887509467961109372363194131396618389763433656453361380727820812939650270136425340168082083824484153622524174658021591858682590517005941104766867399600435430087229486644269171302239870187062927820557066588566901725834983708738735710457821596985789890842492192954970078817455848302132000310343096250072042297507229637840253124910291702998256690792670907493987055933907267406775835356467128528544099381423740317699690472417084959042261941183794018480731695886452208049933549167033282928232372077726310850840924115208944683542738042008654630660912012533988970385544242541259737417148433466110268706626216782352258784154144135739078871936015433213081705320536646287587407873644554263506302770955671931153770776326084761695978923926999602945057821141300526194255752776506153087270277048577602170095101086245888314425165464045105549041014108548005671517966001095942687286175839508484108971031856952551335968232317143087418273905302732400888593223838297147397211524635070962789273932248956784325244499457040741318634565050756709724391017109625817157167875180309622092198052669973790049086080402180837068387495198834093894001076794314462929299786851818007081161099056324742264276519207085124312308948037169730909114337360885546454875288766616816398957530626952772234971928629121867678921009651375918564835270451936605913227252342452551729810917666692990604501662416830444328322100730909750817363182674645948065987972375345323896714328669241850184527783282319227015744724958160239291494840783070982121385410348889489831846643389189945448998702987161771539946762050378439812829670446338191144532762900831720873502157348701645154635824069384760870025154132972158786729297067115086370874306092259836406851381042766167339732397348844344381672749818131275864464840467427866841628191672437170739086195214299228529774734957150475185412913623227607467354972564943992490101235442854211122155853763241497466271666275035714800558579635295286318832142346207893674890631449815824720825949998163356681417777759215780426655690605421710781777420375332503349542295086932431702346431581647658172208591252006250839779657585473384617454743529613774542475778687362357089913618793620499776482455771212117415773347840968853622778204153982033045868739705901641570814076851307131844387564186643397558051056055866074170991273018351473865312864633671730610998048788000068338917927452695193921001538517843073936875724025804939717888538546600817327301736134814403095103153594206320214717140791417769508252588873444399672808155868178377637225626037087309686134357101849968843549128488351028941067642514516833361871760996133380923066925813536641738607270108513406308056688075809306625354225802018094500594540246181018968352661000569433770986373314856484089755140877310241350252445679559640860815887801142794555910298281707053876120680959986561616281012069723095074479707374870575164343612600704076933458518850432642302971698152963535139921178225485034399841376272503890318506072850140815181080024400986529404519393857517909305704026784972750316036239634653525940923313403939827680680255065469720845199753725351755986669194517881125254207661198220410236641913611632576148322920625458311612483349922289333409270359585208025778825022458910812002315215582072656887154848154481390194470569457103091743306248744959621911431354001703448928588316637375239850557507297687336198408947119298601984072843606798023512913017196934915683981047921309272421301202090492762048288144616432344025024383607682592941835728203720997577599533023323975327248876438655627514297727532565404151767209645127884581689528036634685980053853086482270549944139589781407765088167847602059955223002832546160177935930093661889296905066114782084463350598692673887097855140853922744707219125184261262523761825913962186832593510772897684312391169656504609168620571767447003356524685631151865752040564717579374994066574578219484697382370897357398161854648381472626326855852731236884950114512859511989889862041324931477156784301887088944484608211967517100487325565208481133994207360057069678803637905851280437255284102845136219198021631246786355261059813528278523218560276022441409927036450150352184842485305115404104321881998554766898849739899418563584888092414385779173030007507445016205399338930281394951670344551359139002841803109906079059202725968780029353264380351815541942956809855263164511298157850574499325384201460753277923889185866246845276713224207468974566331745300741659744152543202976781542459355062266722984064893744427861131635134090253722479439262189041172320293511195712809676152872553584648725130765954678526409349575345528260317592025994273828415401167082267258956906933317496753907703814454868077201998228673260038879919781801421292412225844936830881783880938735733693536755024231218126879077593352212932266912023231703621405997658044333869651247047932806598102654862387856037908545026920402733996225055624124010223539188006977402155051813390679885949502487065034142702678255371130135536113149887119198051182480285830560119687693737671378995379827915147381411808931220804069734038638527732502219921302973307728526224648722641728565312293992618469457246894214064799855289730134714384662945713476200726110266627502284341468300012551423049914613452055774273271397916080164536797079707535717462895820128101610972910173189124219044531632914137341002751655576823486804259008261961341073674968936462741224573915208679240700159592810066093484114718750505233552124288392551799301080706214991602794163825188750954161329378366346549682252958327083776869041808344724909687341903697715536236088988858333141341721362215568551702206630450140292280294600157424504395055467278547911192559782967087083839772809095284377944182999810793627890844430602118812792769225335462130347927122968098189952508114707794136345017306162620745073379239823348608463996952074965049090714956060936777183291862297359772957714969835082533315613358332120867222011971244395686725892423000929069520321474840445414266630906240246619477729577291372541176321954964286689193899543177412169035356754743721534472908121096081760671328691854156087221912447476942249900870134643957289477515846060513581198664317299877810388433831172603664295670594006229417897274225654485519141836047424141537876310956883172475466561641670573840988932187719844101484487140811482047419185347343727586749371994814473579700138583062080540991203508412397045952942657798297926669133562294490035030090363658609026782868452808569149071102872307402996309748570848863207972802980328204475792722404066064587244026828249237237106626952666740865823675999462168699632563567065718781770144789634012911619406878953888317847757638652526371162584014926282093545941067887509042677067713068129649203657514813332191160764060877066458174792664573710319803686364432830269309457637661134227698010010022708723405458988193113290468548292759567277315617241104012883336719505156241681114880691777474324844128881109939277111383633566652635417972331591387788374096535187338121886463395424045630056934766237905435977199634386602674805382841440392895256705134454829572112828529703095564792644236326614588559307134136098596847460820408000615578641548356235482047677104679726193334100980341799812326276137185120254292516552220524451865657381029150252639074451022353028722628652943730692141950135503770749980443353432862296283786158079074974598046084742761647893559201517939974489442937432023587091082856727706135860121471673294730870967353493438395119346836566565762650463268748652838787675497370091164333575383118389020360128683217703816856028559978492350510369250397020772068402998640830200450971236884679884578895956979959711562175448165866450549061684031021501097924749492437349304804877350398068767369772461816306439291607830763086710739307589737398750291710626819267834147260832366649940325195479597749333140953461291506191845471972151317850211582791975351377845383879109471477276767062609387229238165100743397139163533694373433749805006680981743532952661326329734302189983985768286159890421929656406396937145884580078742302861321106356053912743444544923654709730359063454108054091638984116635368581124995806579142501407113410064766977771701760910725565031810706384439635647668152439405250487157878214887459209556829384567130691009293078755653606512786157292230742286022442652021006830425660658626219064095983992911146479994777637115091575126146270987988035582541774433905473493541058615961221205282744841353546781740070038684406379428282964223935305752056211535132019168007419689535091521738912512270566159282408148265709805761179312464233056955688114667332010571365821569390785088824203780607261978070123935646631209323950373782372952202482114879047983882937231620329433411121287929490338853281131138992349412595026272078831557457950915400829480563078906880709723497939412666682051413930461021042608735362505367859875504919237098991090903483016699070811485047697864956642210693020918820644857903639037927871425918949104998691812017810010060057317356489536037875908622185944986589025639416518886409119644910282588641628053995283654311552073508767327234135987172762131290517876716741789477531692451158418399270242195711395143840375422824212955599228122121981423239197864659468557633712371256167407958532037050591800322522904208474119483894912861776380488123669816486417789963725214029032835709844628718904549742975358645276029730583864269138969061448627915763585446317758547088590216240827486631486332991395381438752504650714090924749267667601728509710382207667560091995251979657797745526046316471387146585365139347293419077371793922843018093165873012048299274009226656428377975834957670103953623306723341575659233594500743479076920483461378855452974550623140895939509814338348506626345163898403358620376457634237869814605933188071681953273205253833637931041001843904771325408226104753643563759812840716082899002904738386293605082685587713567529485105012007003065243809813664080181398670786932172909462602054705087420181787022604036170049659492080223779943595206198525770388344555789827930245741367779359550923636431093693039406205540459018048119151140045552205401117436143138967791140114979592375311161523425854807040674460028355869034051220982845828021110332109974862311744733293149288855123493456742969982397588951699641879439017090684198281899571954765173583676365661355465787129960741639578146510940440836657090776703970335022535807488130108934995922525840754729466108356443474591485674088245301202222351056907702939945605670315555376004305766242445996137090762430682813229544342049618968144914796381825044141556546946220620023946687010400753934721418261050008855279977582764474490617380937935570131985595205905904142345123181930655352043145242455680730604652225310905888324827872115438814146426003030943802955460945322170403596491382896667706084616842276119475947633930739974871913445284888531116673859966436233982116459496365510359971478709932372484627407840865285992092323860057207311715069061502183375534625289671963955077084298477012254617336898606888037042707373970614902081082767690851298899210224375580063156924978973061875593207666944155937282397043821012773922436403557847409907152410479582115811273519202384013045513811182938737575584462426207947284888575672234339278260563089336444589831003036864369531045491227819628202601260416759871169541758172515221931739319363769271474405177060730131999297012019611168229818187358546326979041312678929654803577366023416099663983752854154046562360348930993461279315477560021631563371592194620757932880088614857227350055741334794510011387479706170715746625299465750639590529348028537989275089428600262820242409532922373448451562378965889443132555762588417300906116816793397313931043391350262532310545694541173827187263165612541198011318343079542379592568379496124992845983051182141803385930425902303320643491423646949048000712803668462804782865838650365746959367015389688191459610733567234839654586541449979126956060311723519902600448887839277370498260962994410822527747046479211411350938582368190660741784800857521548597134996267028243661873812143761699302622751848247390378221185085319652043726557367774849838819233243043042350400873532568247162441980804789699006046190177223665983644977989046471807773408972304265753232646822328998868665952276716567704089495842242700764438505192995947226149634557627479379954098114584092995561591767754995123759008583313197911593496657302649304787537149366746949469918004658188410657554382843804232818589864720757225965587242199312565929687771708867399347008561828184966144808748242972391274075551588841699159940823445953978538040516522808685990957509253127763284325840740841194776359517317056802886747371661837549507055251255701061805398861564315784257818693331905681701056414038469410187602845811046283260948064103954668787516697333712438416321561527882508694483444961910345248344963122498968716978379591463195184327772867653016345095719890563367232376967701066838852663222987073850382845767457189801607571530710544854483779586241869243756584872282372709680161217508893809862599690275534032584670889250444481622864520617974590278293327487401001383766174424501172096236072976548898754977919576897511659442336633691271192382053103164491097553281872972383211498997806604492846191540681917337697240085968605067133648889571902093317514727263294616636536713466708344508993403760890352022997484465859303293851788291420655487726977824259574326234202662163098387398578586785998722498857449358415365242421363126322616063044225052657739512872554170342746039766622081719188092107928657041325229627619320427220052989954156436799019410324721177845551475689731500372146001621094013468046315364407191302177198899245062891147578828370283054081882871211853374887615961515533735271963011333748313223297868390645400536066847935698386314416315894361576507118716060106736938956435046989291702559057233473722674486730673428155253867922533832140122787243241180420260904859884385985560980030992194391639667476996434075334161827844708697118039372453655249703073857784414942926170794652443677827153900392481801982860064309209601011949871984638622684983713146205146940208333943380795650125564625547290171028965974149754963799956322192953277270743216353456205979491136843195541288330935381307493905007479557307513415901462493346650372721617757913892478318511451031392245497655108644915526660898228281771467713146574045066197136134169370859741938958943371618539917228106065293297718065836394621137311512572496499479443576876168202133625239072635909490013351392050283058537377840605051201725613719391307032459900094972893740485828980859472436989995346725583478132102400769546367645638770819900939108575218671266235174581288981966811762043076937165046544483900918675772826917954748274648050422148554379921424847117216697018252766746293039307247618405339561497954962771481685041058850219819740954110655046631465607852959476162400891007417800925741097835205407809460180936020458482513280908174427179331889689313522681208111634818194187991850506565492159048301309273243185009318318701266174140050969151755457810947610691631073517654553960726949053405062037762083848808664984534554873745706023864126959347243282813275050719533444370017239158602218825973626391692270746013086575605604363391195230501684912395496089220794086514500338007629661755603788828137885908635948382181279264624406101723439361344737052986887098049885719276453159404677433249815255921856874771779359194720734943205641757159991973897280722407568652917526527773074845339626769533749823448105698417518559487711844812497188366059611517167664478685969025693741838586303898268708570437540827499165436129488249559542560859769609896358984185152831580559259068835722511820736590367789463576754488203086356111622975062555245665571863581852756183328750625013143586292558418858311586408509598999875526346792091863500581129454488281142039381840310890691699963858441136865564508333367442559188914913218349163457065395567761025763653042004854264694640772482863994144353389348704307493749569436738502501166400558694495234060476998882405223342555200814125385266847851502530430146012979476617741798940925271090480257925361156385745204197149605354496769475417231254740897658144120840090711493005205405306647751362299673911645830288472667794097444713030049537839642213179450014842814077179583707596507307435278044552772565901394643052075998706642188261005911498127011105539323245512648072381403505814109844166279281215160815641551029947698982195563707798039850314105421916712881677614366094308528401939552241361877837514657206660004995316199395882551334247441642417313273331356793812170406489193286716558149155801776782277707894547752788425812636532328079090887832204478159342357921174775397115024516045064709691355677812465289741930603183865454707335535713310954818924693559636065703016727715674588424297730715780952350965176385249502064196131886828387956112127914081014888743514436953117314743081226070308913003741578485768758719829461838986620035457961723325221695154975133821172717924301967120597462028450013733957135690616259875101505367663840835263344133287959700888709493641334494704104145092074072069944926502221855377473243346541640588895288208186609642521836817417448974779374443519633911274433362312076294672933354103304863239420581455505535464956948523223205954588653453374908242147842264203627068706343434022918445950369049357328214835422264160612659566495044092794071515367567129509262419120950071024659296536145717714776657330269871180586721273900412558675149357754716632237101360224860536257434580370963638073990222414667718426647779969324659294881342454507722819092906252368287740742779192610578988921147906262554186269263833384752116016148944003674153902326817971735387928814610429485596984637085957862659475345127146474476845234111791194671257324081606495453140810282194493969468079062063122842278829593114015881189086839760023120290784027253603614965975994456949680755810212554811665357661043997198427610276127866685700569884049674018276071576457947156715423870220533153286018386678444591624420614253239217966510470385708961745257258830206819013557707700248784642946536410472398810839942857714030077785944407643720989240813616591036914522242222250720581989680414594876383378077246842524343217785575668713190382527605167990658731582814853899496386820611160451327288031245789270646168187167143488723958855708602813682847008676906747240481767911130946225481367936509830050237996222090330067325636142600999230802378957301792928741155877055655342932690533833359290513546500838452017786098500731743535052990835964934226726834205044231240502919398453958966524622034740962024489182138302974927034359579269734963003946088803831473528270909199410810467571078301142690865978515746753224689264577922572439751052449461064102371339820792206964602484891730512753749106232670100307594436323406841940026400521663709824034800985195864537040509234614596372182474590555388654796586013757945252665071326831604885082731194491918475812151923860357552901425504882452169091760745958398769198474076983067257555587057725156282250424890399979377915018909329394482026961022418528943170448614337754911016074328729847226276739453741094246164820610983192646758686493503236604551637220259985232204760090826637648592151411061720492550275233909796221845054769294646819204976351625238680243903730594975669838802796457476584844404534983875905605134237873630450844104802375119230491193467592642866619099412931604888974581228095289074774059324412969916911582303931864426384573326933232380200591215895999957616133666689595046610152235227568073310938919889817758410997053679217272613447028607337014209187255880930449647802084554518577940641397297151100211419388178147842172284435545803081771402119362747234609157525416630905141549558542933822619092489038498707427375124724477486056412088253825090204684078810518036200625041795315143966380144657596148567198216173630707804480755575244091692625533400872527671704600340196822715080932213707598806231750234507233917615122484018516191608725336528765737659297624383091556509361712208922414227946451234497571738830701937398076572962946067486127772265968150568042082721707210078752564454647682103011817801779767818305945028773944263572533642523034455471948598518616648172932077637775769639851214459630489160010055893202071880941390226436710582964981799688691603906626857761700662355416193762669838818537930245495682485269223249930587731432554663466475333242037899636859563550377022366610086356513629417055563314572318294126819292947154691181835810909675005061357656329751887777481059117349066477950282269689741477522805243143490108941343717145267220415076566578414995548916595978127030763705310968579538529704637490271372218265865283541638214180293633985790160970930832212747297778772714864999377944455503501986874916078061707913325612670263295670318767989774463672653849760373512239110229804565929077215562871286124392692636386343469943750312709196307167184880839658504153481581245617332996969625797540495507672662673519293960459755966365421121979661825184017253206029680293606324171249819266798572984895724627373093562412215164915833208983663872506100016444250007119442428751995249858647937020002390385294722551061401781805837155936727746824576742355829281425849465267949801489481767726590243188981038835342786657370197374916031552861726305383929036926649976369751428545616783118924829236351287293738440061475363164487643127708822645471116563286450533765757029065595111772808270994197914270641812069161125111729605907605058206546519377388861404610002643289794718283899915320208261914662171645922478803945232401712917489179853069208587987657140436609315958446900441255709860676542066638021078143401988462620656946783833131790613658688690053978813804712288821878649451802107216282499527582325865474043218681185320966567404221535293278915652294367043668631551689816833619934963540774337750116203193729350097914261416970794092736580557842791319888986013922647509132751620793660845415789570227800268808423779732701563725146146718310881590326639484132602342214314364620644731734008305565544151370704740725481209211033449348228286636754555466522136195364694503959454082149991992156960483519692154864978781342627624942778936133255450407787429151259728863858502066820924600497061414158789765111262473617526584921685015539931318584643488461828442612210893956375950318157290165284824484567901702008630300924847764784219512408162048744825558736935652823088311715975431361367602990091569177897590744950919854655312070000774776509745785216097819516539529058891307295895981790135274702168608120318866529075632720103280105709373588209534300095414940983168870763684537439207083237345157865419897081948516727874940326129615383119729899734417160741525747057750352197942140981138584884233523546519616884292850527219125721302152979328900146150467863091113324016835557036957021257580583582807418711194362990911616472136054601036776156536955825836965459330470030144229266772905374857592715648132667233118238469966051215077742724792836500720134757151421693115834597495479642158121232232319395842619876323493478569994647958510885873810414414658915772040318740422401268822010059439456163949108140862870364384827001907857668404000768678737678064995174329743609044165119285557733002136753371313309737238764159720638337829628567724030457617561833511746978131303470161302807228889083781469632347750477625927422861245349003623184272180338882290287322779181850813565595916330192036472228272852360179207996100276554494758620574933989010901703416894106429542918189540694781399186001844567732870384079663930163893570845618307736148435493626741414169716739006793184510415773421722401467738275870151899755866605693188849535927478060051547205789715718934938454364667477766141390597088115369114274944428956832718700408471257171727421451443823557244283968821478580302301962031879309641736549144306100383299903288314600566125942772294883033353890787201543272702651227021300789366058273499693932624231175513450776543813780879405667487435431595840760182243946179102903955367074764262660886810119606572932716147061105051873621487408331286404456386281731298716384664577682934703018278622817811592528003201399412706678694640214552825441729378526086622860425458344551975073957892903025570497848234427289870426892131511537608702196175401688328157413447204379195762827179968741159757406774482239762512678062261497120298005470472188119407248211968790121451564866281740795662780698784688301057688743390803565447707254605921340375101564018037971669062484263317411957469129095807072296314101269930940773621795034532350251054615166325613485299994259569477785432141665358633610369576418565485206782489438854852712755395708733937291416430227229656850800591647736817571897348530553572596743175745107431916756433441181956590339215784730213188210501574484833991908403690049701439804592630136099677350992566573664114782981819143523928352904381613695461884687794576472007926137613469072374031408102416260762744130968444865701537691538920865263297688472348355881638800153099417035109345943626528747864059516246227551910328058812201333717342131070996001863762728208579842566468208994202649305211036394455070443755098978239286327703172259399805334476187950639927891090429873501644846538225256219537790685571716190364632487448750805198372208026583054551587190504155475222377129306859187287871002189254995047575203802414483149967958912997027065286910724275308585290308786182779026951029807422004108542934115224178914695587595305134285680118387072403002079877951085789565159797739421021479051782538959197885299146498058062901861971681734897416321878171094788636620768633159851408842312970680999039387589044174549735994810582918516562675188704573727019776140013854591719751754763794412244457812898743653301537064020973144995792025189324282805242992143360704962165689380774276487069602606476158623163675464080240317064075398784155994131773861898600681590130649195444086546953459093434001587414942282255237223233796253591988785432262637385627669129582624469069734928671783976623117436360422771665057938794279819795418825602504897775565718016164006906612553694216035643733670285120120973420280643634989778064278934766314050201154225926773026338391335080473194826688083405053440901318643019947760273105607271857674687645456813473907302479677546558000455311402878941745290732631904763700479751345255981352058831619526385571023251636539453739048395068535713827389627362271560173350326846725625723162324440467142349933921638781185106522014957581557332347334195351528026310785110173684084489398024362780715541842232484570721085818238633987139594364511705769800638693913468860952879043150375683288427281138086172239320057559079286878677673713491883101569963371615047313137523113199279256142118817282686191226561875734207078764763954118291756419538710230873676281028240362207774436769413763060306555146872507200625091904248278364919167960411600726966307523214471450501336326574589740880617456199456963042959211160722019964092948107347244490314428702670596759239781592788646868039979315798203229162671396746973091809938515047456779495486314044591596410805630683540016524657036581883578454096540137078517769474490194719120486975007897157711290358085223343617500580505456191266031762114998448270690904615312578004554093246676965039842970174674801281408451568626138899982753498555758481854830412794027195801641908628475669523986925612977693746613537655852111244874139767649463950789636508971189765327045805060853142702085270917156821932928621627359231581188007207025687954293851160341644805088063284792354464786129367375278755423388491694043154464172008855386475486247666035402273440187315868307739205342081427745274509468393746092251339115335733633030285684644690584523022485389608772620992080866042359614004056217720220728826016096341081406789854635574932983835084292238279578428994239903863304609251067448714866208967218153594268584401609409305018131148083651279933475744616256131679280733894393481999599161741173352615049032423659509764576446596406061613240953624315076082681901473639147623359097036965289474680091683781607142146129828908230701094060928169666903190109200481759662623065654078037627535113404779994104146413263377658035356170774844438812539885036210716847241118633998553587717550674078870228858863474863970060817510980576553425235265919200187987370447752536145065726255485381314666683430929016904838698186361233917692397486788890754454577812232223624168653678694461384612323963985375636451784554953054088232123903359537388110543208290132853066563186027460280384653216875722457768207148596223886700355940251594976117284846293336589929257926130644476877455642597384144877641927875012808025237946690403513360045827451821052005923840552245477756566196535669483980455180580967454641349982622339516745358755352184889819367842281245647690189997359094541651778989113234039395132870451890580308968607701415360107507674049515857782070250543622939070977843298708711246641982333089889738419724580224657179098300400946381169500076190680813021589018676911592210954205709668316233557419894666078457671233857414682628390746892739299614943720570618515181459971150489294166421857233625373195846764234270649888101935935353058942982614121697420226210706517453820615630540512386306904550006846050133414953958777246411489679048743357178813951234035229308481557141072356597984030179343191046943412404434209471573655334600463317157142552864224938437770752618612288436554488383614506045884655351637475262163065560569537449999791288413897177466525695982442560867184711827982871611148474228436642363074084769388133522320222809164723953596859072083944454666880419654523810957509831099239732460536895116863875879790537525434767812126957603885415128030296383443213113444486764539915663630109309888409610569890188531589672119905444257502181882961449505015029852054221385845280116481766419133638395773058351378960593890199531381667696473081899639246314504557835272241135380404764811820548916761531527357191036424902478914241877479205922707679993554790361529012893842265150519956931147428343218221549098679779321787657479050720762292154949323581606688254413871602401282468707845244205557703368447653925013028136756127048756408613158154369284345175193242936035331710879506217344132124624092026210859814132014094053740048707916683972950127999591146422713826047922044220637797318873183837605790524091807245187319953680554773999390386516556446958194572124202484218170691262918090862538514110609242386400084081307739422439389510987395772906828708578428320899102844640867262674431936235314345972788867358512667563792251651327007814912674419730895921491963347598168509612545757046681895933028131885128675610367486054981172762736440984241263912043056128550808882537627295209308643402616773789697074607932456913629212263301598445344730681744759337529282175896411938740443499815702446531110106487302288153621605391245475488318022577897868268704830140837944456383304406195418719279878559950246770420760600256864053098835779512282594795190947566857007879806538534615564815307757762564809220735628601342741110185548616871635927470832805606278918780177579896870721146217808172741616051186099628233276334423073484273637136437508406272946007636302926373595992595302532055612663137536981208079397610837378071085875747396808937372496078894545982257271925537787464259870374904493392766690832156922159057423852513686386489354365062673286209853998170290634804317881436977549132485890156063160073860699092029414290379709140623925255164497721878169153918345364756678461715961144413270092298331734608841745741122348196897621093724223902520277184133112510460707290925754256325048877572439672307488774408167238831839080285326695201034515675696967080080108362164995277684828612157957663145615608487249286435949829800628409295435967286142276607730905923084305974422874006422469109639018754964757851244860140856215384174373433396400386295260075728542685571986810341516869122617828207001224671012428880827418936514955357758776293821064615899327717994134213055089587756351005575799791224411104669572407830896733082351659304953556094841229978064679847675800213379161216062525983260153753002812835282698625183924456758900496023477694190066233233225102625281317590307596319945649672496665913806004555926965666403773660559172227484361232606057500416473074727914584735645808613267981442290188984813038399796179015513841338820593353810589143137021530623745614205586345462834768714345435027628201776656710750839068781358966464776045010252524042399966254621181887582743242603194510081113590065337016092598824918523027622899882630940454904410008140055719876596809055162785913347588296516717565931363388105743064912795310978614011385412764700160384002134768442181559370027133419019661722893181161013045969299157857164149754629657407827772587889276461294826126141605747786763776777213423431307451362688586191470241509913363040026453415783773079043930492108670625732459749381892268249134292367893275165615278530301124917133465298809305714105510951356034917870841974962945569476240502971152458060597764221551036703682665466209918291730793822076662492172878500343774690284038315652310279062585902591319871207190964331748314096688422772623903488818801812832407952346581501762264597615207319366529640547896012180914773682655044542543635253891171682473107665491457313400956508058964740139109127354177560394599481483155576098099242701430375406515040212650689282177944743848154733069010157540359108080667912933107592048890125928558068606419719084281206975456982967577642258029027945057666088736204696350823686121517560141977112204941072983288073717903548116749960602823117861708302534508572923885866713622798800207178341563077715029589748824659548274586870134453544709941008122707612296781637052318585439441227826924114805090212393834261398015638037915301323316813393913385455357747481323736099244744865907904215672922882847256531016339714298334316090281391142535374884520164646193658324386644876412205072910169135907210840486554605889384239116036336844443379440950670841160908133673936009794895092864747946481916133789533667025573688594651247050733363137337252227339103432177313304634820487938394931978234667323171264733920425392574933167106804432422139910939949318548046141800092720989050479196487115830781415241517117619092795205582493617292418270499946546240134212143954180144086767620458984542697240247317702663502852520115972304631663973913628855453685581100173235929194622021540103449567967082468509265527039768927308474444936465963435659679152937951331570990371798211303407934543190276230888951033903669224728105113630246100113741684278300994484821714643728696583013554450841853741017748885950545962527903635029567270059861290459925117379594289277632436376413745845102801382565915280639510703038855001976058892286097057618222634863175986998285784109825574448022944968904202885957076585346504136451270160267902049961078413750185909396788182939591489194120213304177188065443071615256533348454521032032483767644258627902350469924068993432681815033328456190566267230079616803122075954405197068123878825860824635012520810782462601378048865476104499613875898882996974335818992699799339574699552736383548939869322575331191581236346441027957362812067406526472488405068989536730159024524331891295816268504380976862882703192109121909785036225810032804796518584951543082164104418313959865971554841387631708469980594363194112234258626826561922673500304638837990363454452973193265278616919325728866330728380467343081934646822472039802057939672768723659347146473016485329555008023875450806535569282796319606568321934697855999609366220755114518156991265704024006516102720373357410974551104729338118569719107726806462877463032307616064602880099170613319865591022553324700288264725907931262807391016726108877300395441315757555167428164486626277122418539416875788919616948912351884421669875697216184777695447491195341455743553352521411764410048587473931217225562987335791966199736644081854946633220208662711701276856486713515131934210285824788089952275771366383984879081068735875597924408754572479185865600019938548174274124311109251221567353771743210627955300304536132843694097187172176282584268966223457223911021800032977649927438035315328796196346238468702102173516814103336182627979698532681686354636710831336548959085473484294749119577842009696941701725621395097798660286652099250444928255899549291829398568903069821692653881398858583826107750883710195749189795746460587280001302400275260254275194090722165671203224970130336821363762420915683301948847457902960199895707450647344522407188365834306538406484144638042588664403777022435221563887054063684707603656275867706487953715594859396142806801230769787378891326978906452542440998633106011573445990958130911213077321162005002185728940123979913784954098686900504487361752096249623725694646727012595881808483195176651080680273870631537058132614049593796147716645669115518542935394190612389196894467562023358679336260728664967650390114673202050846453530311094243769124775128142754200814755938346938135835676597945159122597223768209881314324968295314219339757468549026484170245502195743181829423021729926413862338030094995753110808731687250248167664132108022982154587839082868654456212853149633809100855002472903621288889426616181811306303126412636082344300026737516462630563740877919262780556748934564788880429107297690963621675527186239283640129083924550489404150819379470821659182569647072373939672169481033832186729061250134407052972837699341449760547133435422501920183713273343407320274040931022697889077093607078971898424930054466156421818705428970489150426423909960433711215397278460534063941230412032528018955001020251603663452186862336854252952860519861703341573368086234781143814547217933996746428683953538821299247962814042116216456980119191143488806912578776240074916143508697811423277511229403411987940314128402069867574914168521433533784113582391201959431072743649171461362014111045689281183344580511445031525199565869646240953295753527706925394124704308306623240642648893822138441688060146941067789499054093637578007803226864266547216791526599479048483162329196989800633395406435433822922426686733652811923722263588804395696747881005817046484653828207014486383177055978957605085251188112031680436653785903025932656314171801925232050839441494512632276075671031635267007506413807384861985952110674244804975847441587780121816591741884749730195700019298973789385213788300773516127797950066651429427700987872981621165142866738581043596975261719379426019129126158146286007909600036215604545065787912624253521322906930762077823446640681717673382563981510581408943422232698385432098138097484768694502662142218986366511324679361208553569586261678067329099807578261363369583172016847642393605947332215004657937064961949335471298649610745764127150387509888856830689280107337201759312114714871675075532786795179135324087491471817336299710008839422878668681546352392165236850518648613922635033216601523454262773583446263409943321593242386464603856518843510154378635787042785779831458599814783375808280353716069057534233703336177315241787785263410293999980464864455575870765326410122682618238499383362603526187848709491347365502146781693935613575108906379533266049366365752647184788611592640064727920793629616631815116356235676184411724942288138716390686206946967391390916556508630389418159765856436088055900158641610096555811054920770200526858039185025639725571329228989837551692497861501884029277349839014275295839141802761146558124618814890111207836749600294238893339522458776694008280819083919388289647837389032264988101157507750084129351664258280770339908738294968174867531827607452236388032197999386884334155133823606238121958923546314749505889277250130695567313956581281380154555975506051470269425014006002293489680066325545825642906998310298617617824499292231252645014899204252723836117873548117905480644499949959433679138089599113106089387537207341538203963535761489416900283308556982495705527820956281916173656719858416076892927355192030153795769813226350203259998772671579082407852896313482200432638475233881308057485896896159020512066679731287898282827167553368779635012573756189623388292368700125168876581772313942751247465358197443352900476258438838634013484941515164091241670519717545854861025410370290483857659919660441134867734049465483168997934427215635382760144524610824069136194593673683305560642415746883263409073512855637691127161700720156829186313996896214025870575590075477300032248368875423184649816917076067985416065144033493247127358483322043544058756520120921239992548184387926589962727174951297865109785797015913693475093833250922213031304023031422128941350476664989674814613791387401100824324316966388677799054426059859645975193339912662142553041649535356707651168150469774985554285043210624828924728680578120315073258496369790496564983754988742563550939523818202451329963633118929257451775069182147713432995022208788488444221767997081444321613883947976366593694323049941800468713849174344640820253562029897596536629995720454796955570660676336893633237541583352062099331312534760665216801594335975213481979144464568228243886957197474258545219973993175815533838765440337108689727509927929113529383397629185334875452260103526244092575303707515899808777102129116304086695843564492014577047860067626955950458921306816194852045204323733843272872078182981078645570103514979575874401523944636637904686258567500193877411262608943294071247453393348135345107096634585597239980014405366237374046785594997657585745744346376760223196514248441596686035400715990938030894244014375443835093340562037896112586469503507374463908068689603624606416598722311394598369439489819832088033122543011591113840605879418230378386905872854104166810056749603709067143987135139139213107734655393511627834430393191854771926429632981089437218181698057748049554686748387515766128224150818776449491271544170204975906890997734158500901492755242179449701475097085264525575360413041750554965536621203365371624996739797197874545055077245046729464101514435230327064601680440486591046101373254658722810664069427959055600086493066430126312013517805608826254003186137737961629354741329452568834708258106032981346807798648723678159891615679227571355971828520274513552280533890352676590220190096251415355367500964426768522288124143510864137407231983910067096302255979941765551931497775196798307691453852899372425316280509802852903699998066059659692748596797756523043129150223584397729059953651043194885561533471704848967803547615694149431646307419125347205196088848988866034815773759190739127940389172352750832347402342147662574805786200162777075517206049989584012475563030041064062352362574981527535419386038590857408718238052505821127910645034772005354909395949404815330158192489815471194784828251068674696176179345529090634771041140777548699159310236376334912668358891510241486871267613131004454689446117803045403734408550544277981159295683161638056605998095267197604631640643659599614520905012250064252422579655254426336062200776025742072286892012033272413826114522330131611002462605847419681231690601915500537467984308517339216732210078530503544493722310452686635826083746769965769359806994409076726508219702892543940052490891447007444647276267055437319407002441962658907889378363420294550489207015687548908835446501034805354170604393509878489972593897979750621459949115841465995419750896826156710245044360031525601410675118288044952912157688724262147206935793968383763520013123005015398196436855940267219076955613606214736418861211802062409777695805579945700685098346290791250415857229497577804801853906833857787641605020804516075164208311968963319273339477264471485955512167982916611738410082638574173106708608273879008851387927961068046662240669339465335956342312677940872154483211350833894703447576898777133612374766466952344694927384051764839031879288110390293462385615445853586915270488736005266754986693333872254982578974567545324068733180357740114708388776186033690505023229271653930537833615245239201120671809859583967767581694097890823116784586719388807578521197195213027554389944288458240044672830828959874237920852622928974054978653786804265162055920898152588606427998903922697269978800865329508319292222212927035458558175930784657116946948025695647204145045410705106069685596354043112360347846213552276595462002803521610416639988635357098629486185897481988753495687736822548228696530489670695985104477913498918323832647536459622066140832012126901560530875973622226552161701978080272683268210890931823367026587851769745226485016686379015285725985988229781303375010587032746428848806928776252835650289583367059680160484284323948941659750803216865782057092182370976449089031716880718389699552510890405399404042096955087897262391234466668987795329330133117509665300326385639461183610284327156003804577067003669397528999464311512192969260813093575122257514127074917472384288197036368785836299970095509742720675127735715820045142135178364884793446828015797961367487091592355761510345575226091387275114203156321200198461999267839196849278154323835404364591750552011342414586437648459463693207156488568762724632337443550133442791049042862648508437338614307738399652212418303419720463314879619701443087543122402775106888685683073258207985651505474049715969535059235709718861012636553357890496977444439689196749537995301313559261456999185000330787583705693950636936637672931620971752025176307192629630514489554150028557961469334703649359901677171767314414258322897988732765630590145434631609330401958179870295503255298025556884615977482559991724925047690034254295923865279831443664522347265760667676282703451689360495746558180905070808904454971024087846753611198913410935717486772003343098037203883847199675704121984492277111485170105307379374403803495327608669297372443402445411745116219394271309157043979562687477580428243173472133433664286339391250341779167461955890305093134034691254637237152148281600969006361721837345292781256368824165272511769063229403112755067922574898818226690249288601654920630178463924035651942040223264024593287701347014678881676169592025304194071609900146824759204371070520288010389423729421884958110525449385765149392861429119728059796687015793606812731629983128363572885223357637767506706862696262546755368476093553911567033697275771674598208980649903653856542213516401937515028438475997835104899417692310244357893730835049170905030227978851028124078724649271637416790156631725278353937922686190173403635550829199889903418511418092324507273928790535938082598413130958308606208891043680225995560939028512298273646265924192432129311893609486324029129273812599078764978045618435222030584278130878297758790568583856423965853197468179299909275465400538060407191189311318274523617126351242795701294185447410383316094129617768285090653856138471645700980561696440408914506892175271047464063931838704583747985740017934478456452943836441526680725289493329886908219527024679157324588876623513329304744113110734434820144918438864962725539228197056797075359531484251838763893042036455721044886251953216991479383056203258338348815322457454943876836444544670154721507203769500292567750407730255597906194186741214712856519136601371128348986405166997841547069374500420562390621913728143910035340486197642606882069738646773532062446162926433774634923525633781663249110247060997354645382334048401963312298105047693136872057795237638389408211967574159829911741597929392995622036897525954151566634487283014419846887762447265435952829687399517510334296829355594330602640309669350865006238229156466197236039832559143879445961375045905248841712581307844943811699799700611507972876440917098095915183377806342345394615225814682619441718616552355576758272828438341047374201375411331724337538913952690806484406441280138987249287503314439353231961003463955486001973862297746659814442396568036924546403314213495812520884836926030130738532187083228845881987513450575675928485966069092780467777907668885016913874904214955801481215866134420049999821787904104838765496114306500438948730244060587690127454631643449505947313744624615652246992978680544628360874031597683834616815221508861640512539197224599587023333294883426424998410485891822907238803011527567840738003776812548793573451263896107448348328296258419867080017256007965412774065859764984667962769856308820384139440205845411413313686186756290328661132689666792687950131176170802242391242610959607184170200482931783312839885656758495438331304468090517431012162308549813216278079678715705433327736300837797571219325680517522847599553275830549926219299780790583319380899296483172010497541237161216051744482354507261728651091472482588202133803756885052291514781203372883128046542575023876414452449448144658540084001209608078320768819620351356186700703395093265134858366848818975846381300080351451515142971958040552873173976454819592399654954672161586786777791960105397533822708412664153957075228733169063591945648891555913859912146601265888058016019334706358799225446852695622629831485279052729321370697620976721513636618187911711238106248529358872464893079088769614637997397564431963097080995049693736855168881933914630274086801441495109499563277159188789563439074939194343348108674870011268931122427707058812744863088230889623954977914717997130636259192819713365626828728264271028233559285837457533265991754351752090041365584177881145006503895568898920085576975225279324735524748411270896028920031499569121020068791064186504301252239290724708553526848276364027783954754262522965313230515903745615474773010978719482384446389628514535494012253523756664146475247953898749645178370284792583253845282494925768093574097470779726345023674612969560034512140832854117319244463906676091984216297815262330473621929399150114297281580853471400295256871891704724731399470817034469964847190648804599929664505543372038556801199893012049465564035148047949795869600015484559073679610272471019630566171193320032506013838625078165077877269617016333963500019225286916406485960063057227867528223262466384423266818201254911325400837333033958380964152131974132798527116821317111178275462205105909904859952130113161947146519188928383681973089995201243908172687541786912774399524659147913169798322317262090773913173630496671111259536320657060573380622277272242714275456875906859474123890307046823981224956390142805617907518031277701729324052432283439374681156298480219189452805674415940132902868675136184442529245930347784242298726365168156664934016844094411147139800490259527919835211078857434620088652493494001421964617734282668571129843124181837655539758805308712215279881450112111005299314160347259387895748327270880782157929444251466497267061440457024092478774179441452650183152352934588498611440310754767601724496440940422366299577572428192308934744984551493754994293433875519842923497562789250920718014430181076810313632704375860481087330496518982679435729692280707729261504624095102409953205223774942748151435476297192009129673689092007590762213589901278266932081878733467809588227888109660010751272011401660938455719128355509153999559489046195993442820702149892788860231237580750754497269360654917110784491801623974347547901434401081384957378064928695682180261183103484004588872276135933017714792519178713148873228378388972440159898796495145152611130319708797275345264976245403423024023142391043694175215989271745974963978543406443092581352158724728743375953617978373519451386718442682382348919926769055050050808313323606579813752732204562457636607236745313946767464360319635887159672463383902762724347635681582192811297909742413184240874436607580540412418336332006660822534002333295815399088993796583886745822455685390184028713960800055736994157177342648881056976952136302964620650675719984312437434229403399058466920622118840574583112066517512085331444735336844245125277157811831994568864021279792518649161131073786623552300474199746822774403048965098434472956492945462290479388848612564196371970670013944560759791610216467531842705711428783305234001705439918456986344362467815588284151735669810555756709754170485480805942542155503235521174282080843625143865111791372399243955656725285919022776796672323479063240010297732409832243970218155452837098990885020050228629729388882522495681118001041164266946944138512535995414355083687752730956222998296265595615986426643682688448199677237590403028957729876487924483037324008141641743368462154061842512076552507139473718282810646530926609538872372406238916429675990059019002597764041357364188567890671515000524384764700220456190192960165269825708258327096244852009654800558859084622997354391725289226990433942370590233570776017937038054942691794157776499016029557630689992410971873486946136824995319422134308443637226376273205170335955803483277307123133254877421539365922006270432108513951571613608375061971078553781400927130475071570460802838703791783829242933508976006623564946097661802218192900424996422227091677935827197793498818364014646971781604787490073537524226752293747543991123975921862131594732440990045171366577903336902466747131793551829162922978298222081816396472980892776435063943678789574190169396447087615560828115762700118133920773186036653999394389558192746509996095671008316571689380338017064757911809295008369093311004788951763928147376857081304616039889383523311386919722976260751119978004415166594202694140818433788182079272782133590700874259181326366037058960045978793476048253375613254553078116543404218286314859737418661573902040361909982503288264645437605517688737948321666804328028567558337299409082120690158272144823126635751045688808212928537770801408661942405196261792893887556643680851896627418796545194262790655101183707085952998594813795918710786273542334402736475680066580598327806420377308294574038549042812322527743470085098227226888625039410500392411788573619210518734374886899606686513462291197242877228191470299198467544477504776503073122300227353082475055508584216908092122842556478077746573711264503667809745399076740510540923173430615225308100903860812213207657304280945942705078049464561194631049769746353399408358656835229302816347410949348343437047909646350935718677221977876000974381195051038108094026373101884466727232659413460616042394939463828608111287748047919705736004491309587006454156570751138160027268477460233796884082892455989635269815979341433472669843001558121672459693132943812441736239170894851987270006210557963056654069542691803008260987733470272183584498629543138259772815262711208870269842496387079290307177724239854993451531100872116749996205457049346853147629983078116786562822171814692290866464748767308517105146705671021352939500115331194144814172029717061434013740769332196648576346317418605868336650438545905878309950580413893248957873818974291860991505631472816280490505801139939104400802009815231169635096774729005914630896248531480249607156317138071324385772735776876816982609338309578654904257171789056708623370391237664176514223311107311697834685360663267434558024779940819812971668153377257721162115753844395119345414380205375359021401585802610501154523097974877656225377850841568481375882731608066514270668565671367089245596883333629967384117989881436456032480595156352407607049153551361313195843474569387074324863094340579527316550639851460971289406105964833038136083674912904107642043085283386064059212676092898796661751196105096832250313360927255212702554798773894432147048797777557772275540071653079802841073445027329421046243841712277810703377311681798567554470423062270317100724705575374196913696368268959239639018233903284888875499975405925453620668586125236233500634550863537186314026991026446706320400858145211966118069549313726900280892929550958949699587660490063558173702853647206386259570360525019977404331964754934420443458512447436353113060381270208033922282986957058626967966681659368193943011202561006007656980391002760062718325410877623743553613191811523040165474959796350341292683526859456864079839678363524166238925589032103739890613670503553806300462311915400915370716043270141696868173291105273334237400655355044279240218759613293315734346183744269453841356265888537199047098913166834066778960029353999597268982364421370185325544880643584947127172086712394764638405520954501782500603428251248651009922143207959811560764174096438410590649130599598488778577697639120541825854438169881038192637595383369847585058558840593826152187830824918504341559204837827017945151099105483958195143242027966872527909551437402085402304686502329017260393549109094253089588902583051234985602111390830527358248161089546920563270490090656211916886616651913604160139388887416497781078883769481671707148280346659886930332819797119614640752543407848774416406795287087842312229009592296394414968457245672301053279984244633848786910749676255494344060123272591758075908473514673132317973900718109704951275461459824192747126146230314428281000420926499624766443583162482749770412530335992587642920767033240475076375471874147123041405595285730434338890609261392338467739709683763863197017040244513190517230325898523021623939011761047014817902482265786813652728309388902215266499593309893577770863316058842701797174151751002140699032463114389277300703703788249954652963654479739202911924298182262263386446650296958256524294556741639618316428710389318407177465738373614592259348493068886444492423856868350704292664182873679391510179360097837613587184904177314243041735930497044587162377408151038682969674550058981364207697772308393217273646517996463321025775873107311896485950475530354100349684547731555067777504250079278718920611486271005838659713807542045679933571707418265483580225350026224668407061719486983819823743771734849987603192037202082508775706506666745871847496366772374814068965295616295463910777267108559784155462268868966759095933104581752698629384912216479884533612102883800937892355958708289643694603210904893270953338526867906153583173944755072743372599699259354912312150390902293717419672974345838018863822809278673074389859057023586591119524812874772776426252984543988305905450355776381412759440305366589955058638982105418422927528085727063615483441457794189736565599939445001098948431085625469037994285751123424243633410510574898302661042320875968925481842322153028962248285078155851599686399101518485538565707755381621215131857811947604204497387476843234549000650970926677541037891890602106034768706937512014612904627907752445504996002760712082741709476658730607979259605898477135136960421028178614944441951039552143929580160667558021917094983706161019719421880718707283033837347179005645699568622559311293119890955566273891019664522960113191014904271277737626221076490166767952608651036879934954760518655756028303730233247251489728926222641975366530775020585829052576142009185033193848692210528040699759507501254696659973207118144387288826052512626346552182654193896562487982110342766752886368909386402676341208296756752253762117004755581542833905814101437266264851836666166230549406813365477851642867411461249477767647078254433685464658982821567422158867691541224923611518884049880114722234274618207550525976610309260816611778197654973039831979697678547025989646701064567998571101666137115235484066249467318470041049128639690754641197726607864627813347194245432956430515164985105742324996103343163968809602141294769779752702679451045448027105608609114317196363207977876269494599783013632669841280563280749515392511989119666896104963278413132261064120414003530670576048744402021118930979290947454126431071134901062722814256420635606001403524047410622155007960624231985965263605628849755485075181279725075714273136828128507923187311963681278788916442151569103243314188269129636383582346874469983689097904744325296539226972831865923566214247917817786013130785704381079776168444296029550994758177851373270766125650836450410914690887211923002807954397229677627791614914487986364933212026054139822358041077192168436605025782254907685140821090317536509848495743649431163617943810878307582624523766579058693154074815862992657993778389729499184515523289630927331662388969933103919909061586353888173001230261382706806630601767685073217460889140204111465438603119679958769900888406134814141419999180124593501192702877389386997409569688147679755368940531163324280447689270594248095873160591143850925819351728373426701965488103157991610570045338212228310009642188824519874614801418094380599890582636386704698939837710688387136098996923119090555329787775190832015772136124834625267096458664630849965343556859084665721382136777760217551469436368994046011629113434054100463699649986041249087778245824459259582215742292985598159778109400476065860236111879969703612822617786224865588117286642248533293274697571988832994523508538317035719763556777264378679424701689528352192802851818656214553722577098189721543405328154184494782767716988865195430207696739721353134579473224332290925559698220835551081461461950028163145013787187028104667133217799271145439608832843053301897724772851943563775256803260729442432772478881406866345891890811358059077588565356494730687562942789149920197551803995772929482283104361051849241229695948025581666934850406268874142540233831535533782047135233638088604753818671012892495971295808589170705368862605760376617712874373705893012406803668142312362342861882198207510081049839750227934093523629582203066491333969665564275522741755961885293003379326431037121732628804144948306457623260243268682059718432954850873848969420553930544055266517281489305973246004220983502674889858881925891476361678915400077890336300211005889683203452978188080554473970273960285512592173945182950403767495275623690523592661053806269432311987823966516242475690015086830201201004390011856241045286374546226568076234158406367866171995592832835284285674945924176051909247261050421453528583827450951839708361223974262591604236693348208715045023562513866462407815198683213123407386427810871843431854720261371461916534958757650568692068989408350572477634970286179208874003056912001492530747592455713233117444290793057211777851702531771912738133049759167261395065827631553366334814554337180188075716044157316766758168346723377406284506035975110821375804259615968344811009520853368036909246618367579584483399165830230246154013704938174051906475986538802881904373657157688350151527784856967411489147464765143838782233834013165280770524222998639935441577066923419022620983098464420680553732173480271057692198725496753516218076076655807854502715934835190054052246748378377494587555099700066811598684509370418896812561215623513647936097723554723160785390323159080452183687672076967808963035006498045717807404590700192275023324628449548075894110118909591386683844423510088968069816464599894306513884611254266686232156901197799830918208217303250772838065465635872758725841873549470629117877925136487276068662294787793586905255917169734524876763527118684924688782249406371731665724974731413709606276916383636314231965473323560466956902242830943079436371093714706823628842123634624526071039819061297368175859700130568455756293999830066808657248909326273186100141421107801098763503836282856542302146178701725346722672151978437911418871656717486702479974334298521905376863810349446177166304836486679678621792238203858553730243359873769091603827790315330608816955984133705828537938635364035934256733464762652136764543122800670094366358330135597637487453396603690050991052158728931078715353297808863710712386981941214583668005726716174757580021571482879901884268963314448628354696544385490030079858416792943960983777492189089436184774484157444949441995705661198648016586337741263908485401603385121543587696920452591186311585400001006469442244781505273807127704301067386058544894575470034355644802046522034360909041092362860834011285297657190754599105217437378969076541367098229835823632311048485018254491577798692037433345933820789184894535555973592931022244486209868636538294033531091682429939542522689053491810478458070184015909792854706155707600051782138984739714557757267876707551245440573723983215624270134019098139003289038507317007838941358039117677880429713461827901254720322314546042581978823682311750594117090430307777948104501523692893588226853808609801008478559181187179157939741003959572443171627991725930026129653663307518293607583270184791488306353848656361827746393099399938163054733260694022316094303594614942203997242577356388006734392697610884207384039195882442800490287500550169800268231503672238322960697073594540295574713319801835503601795494499451145512573458411775857018605369327185046812024971183866680781137278932611165276071028808573967801590886213784054701372987157225306519786518763487827940971268322768646287501415807622484524481334295760030640105295231269737376411287532745570868821958614938640368005046542566442252912575519407760413195680925964930712226764755036468781170187269704661249290559660159499051885732321038345090273391745105608641827520184501164006906516230641661264088477224895330060267340533290832306676774219692151758490744431455053655434321231747118550301590645711669314794674849820014741836063466347619245404078985859071697449435533433702936863542790339130742475397151748325645627961906781739075368782707512528962714936097906352052608981438023414666902821994200511484813771238435595390822146218492424562176880919654831717929114354476777133949396497699238459802551391090830985915333617107487277269179751434664772564451225768642129884320808333104749946975266765931290091088449584686733956356381419564084818444463013987550492423889994217174252329790836052801596755999583808763089798910697325994158524772992746579626818250032803015226504405501700653658663358441046621357994415548653783305903483019280422414481902687568706499948634909750446799418085880069289141334888790786308146511646400198651150512183602523172683883764675134639447443236918144675555634219282128986732826772973529301284096162711771638690650712205372648504950939467862692002817535254328229083571107781018337672770081885708491360975101575249136294477664767873428771511308297237509317252142233822283957417367421582589041297071733898298742479672954223564555135057825419520198529632080257936908677079771749071076839202011419506401171630982073344138927102562821840458887126435751578700892514677963796163744150803637422582510896000756760427081599295030076195888331803476047884848845600423345060446445386206528846792950267852593352091489402755711498103466668339727266038825401932167136153188818552660929425011849838039609536807162786462124891495489867286318079402259178889124815143560772268579964060812335671253680443963971894248040064173762594609835456313307850468374536969720145767006204564711743410290741159430738938619970147949883878318377873705622449752446376499050767118726186681264620780011569283415927180233423547081398362799211551158480015287895281544488731523736119321975352476320322920486830186243043532963302828370525145178953049629831400565277726407838456217987352655340724117475604324786379650234136145199087994094999595148478267713119911860245026013925141797574118358307735139718280474768831653172897368494801040296917665098850426212612252663701838851613858703157876733910385081595312946995626469707782248716234902352909910417429025729666609509968505621132617403685437133416432725920854970002865356293632763664299083487989942521947873642018474234254418081530184879091816842615088035332595853174323213544923165244632398662180216911954578297425476764828552058002414188204398047376484832490527571957763968139987042083099428352772454565253554220478091426021230759769097107193378693475003365924702380982429642574931244317973627393853358261456798037489061614652131954573166686265468102906781738854780289807475759152597757373752592447389773508808519085106287321219504663585518988878683627038019219701326777300915817192433657229564070190882093255594449879547730932196488464664619205942010997211758334413680677346535407896576308857696558828331931818215460799029842075368262311290143223510943065879186239511490104136585574122452045435356643088280786668101373485080679849236310572546516201877173185515584367448547417889595493623628571989435599242931881640145101281495938193673923012981255831247162637528955541244871713376921722451693944587878228078918593148741343205469025791514766336609920030402377096763572035050938773222222145359075379078827322439710009613868688054762557551974321533898942943587767548159602730364012328617369577331889646862451759665830982863947306469432338816110581889641931917861905922283030515858179777900530940702487293790078700047754051571017161870568285560006161626632266574269830312649190225748627738503264978586409092513300394848000248164639398094077041133571789605393671749654375360164114461239558868666392534596110891914064532426691058368463177845377748729870196817102257285071770864393393867910773464203482807475737300843695023914667777600628539455615394884392711261804835852985807334879844398793009523525821278989962596530673390402426692867306392151984051310385700152498586915401123287063901526406017223933943693340197231487261223555463996653011484253831292364709194987976415372498414120300668528663655338436083052887525014386191038089395701612148471443587007542248692712925551717292283249575633613351678053961509691218051498552138716925785672745388127168662874426724771270169141230365653783183896177716256825778151273705148912516646884794328067438410379588828855348774305207764055757742142689077079291512189084091868169346099988778545625872211118687911038098808246502239587257179980692439391767434249902780462950903585842346361478281919594623243208184368302009891575408811471093289433220618475632562942637026297435036049074976619418341847508381232073168502031833351418461883793117138205678867106499757111366971942818263474510099958952598463403696308785002043621516488906580440607065451220245024341269266877016865783414800493313759406172877738203062761368309035720527467207074081779885288801802441020692399884261221549587712532899541274672430035429853109898156917659107092038403208638314548024030883159532103195277050896447668076461118389402199130911217993712692711082646846367810436780685425898850569975394663528788346030144648958043109368541086429133459140272951163524693006507231749735085209256275725374097737531349487235254916363794458419803125933819814964687444854828114927224802402510165114802719940066751085199219165369458042502242489399497408519948561821579563877582983637544004075901124205617340057580563334433802969480596606415964666655261035978106851934809903615959588502892278960071948926959989390132986052855510158594872910956688413000747401495037795325779828512245073071025984792515987980682060626648084678682484306026569393974690207501143591989531369465391811614920935830303521208931091800257586288470133179907395558700423024128663500013138932497598175382762160399154743576048432438208260313882007863093049227880004481222838943889630892609323615582921330166218476766046777274063645974019725330430196383273653807062277499547640842143059910672552863150249864069556110270991151066303224664326003166926824342505438880737212072371322603481590708689653178240659571308551410135221665304126011278119041348010982204515209243501981919536658911352332233739675475473153595131108267722431202193494995094247207426192590104492820268419641139059981510008736445719554891748116506111542778004372597821927299724888670616490552787145300795839968971229498873409001073426881429511894422771925023328271323987070961209717554332897635413379386218064956959819045897185672659343146807456870197081817195393913616208968922102050800856536667949773658108932997499403174789424170515575792562072311865692103174007287185446218694484403962883191700749465361356056434581395776113926300453897153959869668437330299650490523792710761714259269967465375206276946900416212814695355813670767563461117094180383252034370368181831556602431119774578525027717440155926086757421938369088597694671261385103595913272347124902282380762220223165721260731636334613287861133011075163398260819605892737906579875615079066836548894113771579496454063057479845416411043635347820568866758972345542785518869710702902692774939081348439112135148281703717046463150877678567468329958384831667670437313145244266325845391482550489714333818479832895581201414696030150986567987839039472326160998090535641467137208450855716942080023932331704666401770645295421480175458581429099528090944581222080266596370617139535849730398918897236174379277212636935025178469384823585325385537364528087658602236172894684025574251224442354061940260758817402798118445086046966914970705561249364959148330511996062775942357592490772728197829571077628130160515376625863173893799627957786729314358635010618101830825155836222244336168185657133538591067316678361298282308005190868529351401140005901637089355999601152450145158948328650840555042712959142019313958882438643197035551291102086329491637230474662246838111682279278704485917981254766547720378913688297368178254092191708414620974837215930542382848011818274521294139692298914811416830845370776624942094917783029974376682325760245947939744923370596211382374162833700733522969410108326075792361516650203693545936857543646848856198563501807994732393148443323703951276389372624116745045026631757546378298649844448048149546601116175416114302026374834034276539802763252280653652254076166323958104037346940491979079203091377446156456845480077950831701992211111778622492124792340958895897335443759294262660448784168853365902528160463863463521415991312878435401123761982363127761936404333639770563956954899760477761369577112244748789309619988994937964438018472913865285685057036122125415581614142027083649198177972500444059910101838873124715494706720421122170882578248549052353523032565427542532679297176393436470197079050866209318968871034916073367974224149775877581580133962989959733077846188939285451281443080430271382925070329600742906411724963356928701510923635922955742951501691913063097013087896079729010879367111985783545075525875643501412280872071584103895556581546088487571557901616579501409518876015176132769168777348924373467916038263654398228931671546952484322581664730231987301770513757043669742259100845064991319484990326742431044849108215123986734765434587177233855048385574215922245200883376086664692284947036754895085724151144364111052336154060045366588968795963896959199871091856845531018215423627316839158513049832490426850924544832755995985217291344909273282291195068947833194616402325502910958465505271892251538534174413263296495463573253497362651933436163926861125160695682104966924809355859417048650205625125441601817528742477442865602410072799267953523749078309645778535164476013549189157903431672800018310527019980568017799639436018772587238291496014769364047955878616505120698956563059595482886560438307220835798161809148811054009974497488805181466750180820574477506915559484785908446497253930728718487442464415367963726773717645385324088403877835893826578759497648373760345472611060225917466150097498357032880677994515773987072720941125037930962349862809415335013532057522343845696834386828720398289610666412686648763517547365772267301752254860032014843504329463829829491708116166600918536926044192668088722635692450048385730602721708063854118352326148033748676802349401056273401475327762136095753751974924333698104912516631787922139672580128926233840834701440246036945936938106499745093529537806512171488594530961287948938803603070934179674364205058247052906871406588975385392177290622615236297738970317889176132226235431840180524393340831196417173229746507562584050048719263992950228485816376624469467467664657479929298956357750171113013508195070192411467898458954915468849307429521210065842949758594135534125437207742545297752884006485142443012799796967305170498382438692053844012795552369117491998179638058039439755431575095365299876864401082542985539452440094308600438984963358390042443473028084439859815213505431690633058359117840748139422144015912996619805068854596802326881285367503750066041062873361488789295111108160819816032167359160618485365315208977978108187470654380101840675687577156734422831979899330180084455254837260054601405494898705771644429050541866916300210604253365688443291411201424530978528765933572174221783990181777927848901435316022466107430686190659191993326472992270722543087986729566549487967106424953047002165400031922957377756440420040326911862901393451927491909485429854002631319544783482364884890093639876536252181680915989565877849853889033523013527198796324488354642570337783333008996900386575068791181095487901561892112936427226859307384188407496249548212898331331522267551268774608321849503043208932054483057817740599299546758315882260248431889922525928803731396933826573515630171866852563734020409489735042307513726379127061326358827101273704920026386206885268194323001889094395557850082746736662853089618253916026877747404964094661225911730065590129270373483461357268288077595494966702694696786955190490072960249441752034054422292810028406333658365502808588630977757091091800328946979142499212464364208588758373641873047054669831939591285856608183924984992814830771136746257646083254923250662503464255959618961935459420837670927267017510199189013859395119825290735536084530651790402964207573692956130110885584226426695587136816597761207831303272210062961977763130650968041389673977337602499898357196081699785898608467776446712270790825789886179234730067567887072495737691325914329181707010979548547424652852651673332899251733176302786819196950631741555907979483814391013299355254334227852936310648749097763196436265647300067581390810753754686801799586398146281119665481243417174359183477056963273509274959776503550475473988863694791593986919271414628601781076485252101393479224075543383039238509740187463048104399031569477144199291477771830797385451575072925049838709966518700720699846839838760533387757643789849391948137422554465363789246814442224095848183001460296848975396811401045086943974160571057902440145053305982590148458796591618301838247727870361334275775080988337333975508936937423298466962872614016491862225971774050630862401345101039355867166258291221155674648566247451252229535170082805582929238394882524411305921307335628396765629207915988294798880558720199502630737797984812315340142320428495441377793348164334180317560059848532481399390183757709477152670544286624582776343236309069363173900769223254101471738587348975925887843958703897234814209107039823512905214298143419729161525605780955758443894210246734644865588639598184975362980312685242072330012767915670121111338573553453162218272351084336791256860759818140923893642721422152744707959921772601728266843552942037931018230275094338357828065150467338208884313327788144517705749275943732820792008708104273032040224708593826515425584428424301651053131991057714253141485810575740791774456100199292480287025453856521651204115409548000758790756109171239803207663036428051324888213527211539778959757907555808218314978005912342031990932240791137011186776573145179077192555695896607745637546503355567177275986824282317404610088558609019323175496892853963170207640114307816156785502328299941434880040840813272682250789047300696291445659162786624801776916193900287758473384273424757856332301552188677756798967788776892918074174410633160418701503838578535503525172823929156090642327177658564278016481430280257979331809453642105695691598692359865050781189139252631298701136903532205152542760586387918093892825514393426768505028832313707757354454825413770502189690346377425484472963283550187360607845244698393837141802868432626212214071325761244365600203630399959213184000822758824111076453462419067852215014860199652382966306822338909694427945059957049724046469379176027497782600799513508334782799898824927369959205160958283128404186887834528649375141101959664820523860482458144409854399044189190361521052792346768911615198671358696145111973768799407422571888009638247215046360476746503688283740485079571766571014809652425601321114915078357648209732844753593133195413295451440546993512395430265243004016224975152253587500884948720082483833125850159899979597660580136613108972313395781930666796801589051181825718584548215431743838845121226132447011135724517076741012907441879296341433979724168059130315249262220189820630410351984097100520720432429843601116161895789523777168247079490553433082637870260506160286220140181611199005953972566230379795856422951054009033171212199337936125870721968397725535403387933260530996429547429056664210885331717283912564984597762718682627233458022612033944519440789738207715405782132528358755199084102320406560813271315312135910785291169645609194424466430202328113042746766322933874339649566256277075278094699145196374956940885089500590327554485849651490378542605056940468764556954070382538059360900657206975283110144665275135830859942156490765042724801684860978647576204610823212084340922333406542990648477313314814527765890016341609220388199847761333538090665588602369407078291936537328974578541504955659549292591197397552436281542260636764254499170940078960220148560394643130297539478461127793968061748903079054754126247475990434740576843165863837929638347214721920285246439148459203181215195404156774920205569079256632166488744594931064760458762062300567664909026038204634472384085416825469075289729309009281794160250372628306130336768230006423165345158258084965378890337308568545307468893196419682792328874202386920066460746065709049524524777083472850560459248024623161922026294216106366307071894167990839286697270087208506900803502627228485087628256325687791381898900529975298639977776066540953058218351699864314809158148886389868278646014962392617900658876452149618575174584577798768642997978440955552752516553607717166271563859342128752533351850560986976576957213488684474796464868013147236529506727650788350908779293033204220905510766252688626840453962179346242852900014251907105236487449663036869704351783996657459249225425945547356490960816657051430863565526509815587663107949016117125493705802580725960150241982029686211307245729384479789784487653469032740570434450143412632893929449582260744857923371741288363736947824718855525081431317797450044725033951924077325807470812406929295484802265223552833515411915225902510673675911603883567978955753323040523383322360251043812401145483929499063679227288831574005148098916662750319798724720592486429892852893382749867995153810268914168444878854464731003097607553491657144538300932394226254624678386024501514996486294312027505187346736652395384743122604750724803777430729884181484886577128380110559529975551193717957610518897615581459682568923601800224403482118645985979021658798176579948701446541749144237119909844049364027769408029759293732459050657540823572104212773752309360517421319725121187255382868049387448661040108155745150371205757632840991805091349473293374425747236987955259907956946117490593036093782903170983527004195791523495062126907153438930737032832240364448202219045871294353052083518991968248192457509311163588657898509163205574799556459177708047094325625267400022938776060724158994294201310184267530750923561923146152679429832389750898530444692784382521731301296268739593894415095742155629016067956866679306742238365927793392349005420462567898469209942340952276346851039896553310990313016658548853370992067214823952331120395938892573689297465589262254405503239037054318056707693656107182097096109790684072399357977229428350577262284793856085312785519484854253568870984601227577754400338679985905684710099964616161509670812369105330153165970285601143114071794598724671044322498456469512787054098759171093181841536284775154244876716621118127676190372882259533514581855952907642363885614235352788653979451497287749277551992490116996182296019022944784117896710616526043587566279444240143868913005422492225949628988766354411393990082254821183945555960912452296771221023457551537660518973131683211413517583713610845613621848931614937367680290367368907787620348935637486304542613376557462262181714111905462624040555559129629503374319713427138581954772200051104501112754804923909408417243624044305499469756991273104506719572664949301995519856104284269709107556184308969624577468063284387331371712401363018618211556295048897277830554218440625915753174904056823512929204031014933338943847014147766737320966032380055073869867669703945865364180561611439576219431570719907464155638336515916140205139099647951898323401055985797463359662027930442409888715301548289174255210278688463298730011070372620470643528678363546734462633498404150495958185996619016720667400991442984212097008552662346529774148621805955429212582656955354570259606200731196619449323595481857549051739712079427885162688300197579397858597773721278354872995226934949566550299204286489777491233726002993796763374568695084562488677751049593064667066466827726237059868262342110024314962602114078919996351869471278514317797231953265269843896242125073422910423677623707776764713036412511592444647452327020423267989200717917596828606558555458610128364584503064528560574452262228819271855912780326222474834409122322381677881945988989906087455019893808260700260492623021520945754858379629073975331179791369919484434207596662047336881469102294499937883108108919745491945341005124700526128370592852644235756779664845020561740388074599934736813755695129251931403892544269694905911734291893305360034680948639993501511315133270263898194656439440544958444664256942129240491251887182124955922674796080688281200719404137623056556098858310609265720384595749898969870828274474667912198128302051483312251235545551633680510017614314859697317304979079204039446266714881088847520787086183196944150240761381424135599473303663381494839947550588592011088962246787126716626253723305668706990929146526867651093584903619427738860665865374365652144922006024149537767140242000512311326756059782915898035464587780995805481279197695978266767192866466164724508800024484607833978166623374641326270904265530718168396842968178403533781718400839069877180081239945957959357040131108244498149281779461211073845742887431785867854640171643191690198692407209776448353898836519389387917791153748242672912941261823140797338548909698676392182190965867634305971592914192803489529288158058198418719237065181165382975961955638152483725771964738953950300289006323259812256978501301927188488094763157805516229449876546366088973417857408094197343526014618273084541508257070053275469438493504002698083555707013396141479822190552078654735900591758640117065930817562383098700590421297500162933099295158560290457227531755437329738936154314831113483992672949216848126483543853192303280794453186439918730591095299548175039030879631888409506718115527118840650191390394912484360957125078409963707424463704209281805527390881369753774426637653963191443018313832512535028186928794908844042270166657017174089370468763281872375157696997491042525733736084189146722745319786381973967909643231499031342336696615378635462833027821352911590158450385241353936576008314859754849576670374894722542773520485155397525501421607431426703217442669582975113024754067335558602679014137261216109511549593699552080427488934119079997306064776274877794924474219779928160545677737712268091533530389275567152782055174138639828865777509783758460340494004879303342182149430092447807417284555507844586260588810270431799154003541446515553319289090736615202757197153927365836610052582832975117461963259624279468288967670910610131097035166618177175862818623215516630114167447848419609891891365391632924895855054374465510683349750675906629421430144162641379028822089335870400271445460452019707101878528373125497317476645087904699429961162644978353238325522019009136087455227824403127423516543830293554654577182770773817297736241741645864582861983545239291244283391969805077058419504941003228317289141738246916328149153363604560902106015580096728004834624962304573649470018677277329101771425291178125079874228268281866724443130935009051253212831314170830900215542930300860070537243333469191920113184124565106483756520844151404363415764482033160465754438897303417895809406083316319952284132446581530947573798989758682591037564529073205533809514531711862782577270053723312671104700753821335858483478148015543934610801359026801223558431826489280938915098896900800065836274565576166768904328315981059667327660460154683681010749723269368900160745692216613494218497437873988282973653904368252037007262051533079339013552888815598094640858242349052738872878157389298971235232692849479432566826020458190749971714953834198252031587008295390695130753914800199802782132464277247948893554548955746132957535164149194926614238512130488146704422630002171067403387544248565536611569107619846604504494543882675895169052180975752166990630183216561036465869428921124355571578498027153280671087024912405157598296912817602134301395007290834955000987271651357582892842099657763493370387063878107656392827710163799259353721011552262707788289610867875189021033930063579829183253732756235384204010033143818367247664905453154555370388008595318434733447177719790402946701055257169061949233208174500175862768681596412108978813210970674991619560426679011377131879824980109746242211833176848996054036461172773253577133226486731032167004824736191352486973216826379710630522049458194768996610521749771249847281225182834374116894022403197210803257153089547128993409491858498517167010856981931730766612598748712392879944954788252565073390511211748405061959159219124312469286572212027214316408263680961491004787616529098640812441914314806442041314456214456752887692185709164948043761592684136962332960081177646502154471591416709186336763860491939141237617011701167259934336586737472230790641231042470056901543738991952271558080021136075909378798014432705422902519916646270623015564655614253967595242178009816707580127384819377872439584908257070851066045971273231455437755533018643311815844333443302928296726884927672308297274859157666599442863384779727657565648133135533154380929317434058235776603083717297265554228063903552808504050995021149522819543080339743551782897376163563584386849056993955146316516102463310628064089333205280690164060946217060709730865386292014298885187377782906655611055793422881619325640159682139403570798626806487577057258122718460462712139027489564638024674758797080854370813506055417466487791237464572898881374840205944297637869879356911354515940209888060824618071732145600297515965176529665082103912562567890114933569194063418305522816244509862519411885671162007505867748535452994542023589154723484117628051560084659588840416446368581780292053474141951756417469020159862597022722712486209013756102411045897144400977931889767833207606546931676513276343481107047150159590931303558120493561841780918773062376579679290871296321432659370228275007500167670062775777364090807836484179628226273104810013544721230929505206316101584910648058786773959812686771773679570924471063744091954448969236088915594443261233523023187622014861716792414812454841844000335186494037521428759979615063676288914999946754336908195501119659602754078357736739233304632760392702021338212400103450822902668649740628196279397986157923955111926169597301690200479051743363736016736458538037783263502426727048930370522179282938271267502603768075137632133678345921308645153971403249415062789960869732673838013820233024652354173832613787611661437424804390154952228104771884183940600540346053491163892487164333892447079996007706110078406333017063711124169592544809482191564841553349606818063801163820768237649138777136132166667730748065045686982076833264991665867736193353656244744534942698997622696634029058065427241988554376097415017803439539921874411287193046684974329632063597123811004437447821906279699069952434651974169008704306790580567110109744978807702686086984098106902657431220917900487278796828135339939490505213069063789290896167060382788561754770226401948913618058576005369727357234893815990671066112174604566362942881592210762802209061110717795814243318617962365526306968599954746252880852188763549496836680145879736594063998116123532034877942614074666002257970834152168680283277910264246929368839659169311471437131728605101186622184363846589298961276583377814186665319149002602464906837933872162581778080537909174313210260430687252635952793864358530465918370117186262146035651071229388629211768758172538922271257307157660676093240231772038706861872278590773563169625737510264622543267911194321002657432738340150255557189211883712655385842219029339027059894330094651577783979434624990006464874202543060700048374653827504345974331968467109689494351045593307966427469410714582897826524830012762761247726811297786215741775447340832885962241433112996487244484713470717253119242755641385077150835194846371437119179771324013686720778001255889837289237819102315621695601792151654130092984031280458068684063902167445020169025487858276574733813207022154854360396555238693782957063381470229451141714754380121152803650386161168891984225472610919965168621118357573317178938672651026086060182624336564904388750553689252968285804590626357741288788681393536158258058134519470709831621917181472322361151603249735070950311763918118551013759227895662530318355375805770018306788483152318933775376222236505113105958898965230918183426276357446943933157877848460682617539403480497280651604758896108727835557505824747618592565647067310438836924672444056663095587705574004424868204607041818072098264735746945643060949664944335870953258721768949474093985959516606619000819716494335371855503569717054416555487305500960563774758410788723338377052512531056967601917634358177029774923362968623719788644320539779490402518004959759088453722530473595896887262981615006709865375225330125445314649500065865901595203673389148270600426996474093926653741359455542715027856160653386264502506207782633933927368835171821376168248485972291524248633173297560163045155381803173031651759260642155360792242524790668962717510112988184041752518364177193059223109279057205546627481559605874287232818039726868005673454287576233782116412608023685292454982876576483779671691517714999236966420268482042299356587059839830754981144982064996174174219399721297548501201620615023149146476447496797037920802954252191774558763524534090787455748918889548271986757775630252048751788352227678017463681889535762330479575293610106413737304046650207941519984973499249196125301636600197081561305721422964125290020208976662824191139664588923832587065490162196442884156594250956189890767177956434563813402697916472711997273611833764512138064940496030684239318385585076857684211702597826131270247226209833444541553202483604183271633661139687329652240028058846618060436905475831319165050958398379521676732915851474429767304059167144356378133476259027403121991541143647059414301404255558312271917120116962884763124016545430147169021541413623241896678550353556746481149851550613734874714489265574140369621108646320589627584495749442660546517605168035130301933058297147412493754283695389667268032602717145618363092951330841665351237607385255678139035166166134467295969952201841747358632594095617221782094838835707711320705867813773519365208238305256922900226787200561635400976262163766981125824946071294129512676828140936372839769344957409324679625863488930496983967364885900628037929611093023044366625230506153732111851039644540555866539219602694246141869481502371244842987061191537412285522561421060564574844333541577678940215944626591914692151700331322140302049555865914351397038511987786066861698807257918219899834759509574398946043267148317309193588344214077341678924276020148384664235612927341089237615356300479827054836080519074730383713684116591307982239472533906061227973035501936217324349049843881261763767087769006416446904885767325875964108401095689933150447293448133854036029037963366528548275417388781030401429556031165594791574949959524796021959073325341609193114777028462743428125003453631497910414477766194323511453946526118817854617081471428512001131472550576634365215597423465245084012107413497360219720627768359284253392406915483201911349262447284639839969239529695686234646800088850766369439986964394064468874230572857870043008371573313359670016814743489067774771106944096286340941186893458869648026744573294024123436999774772366298350363628224027932499851210552199271786153603421495627772683958651158969183285848825564342573250004582336305762899334754221197131549631459238390918938032367770532618142970520739162071099081104236290332392682209551930663242079069745571853782198336784896043956673255915866077067210041714549052563825781406322374727089403357724207292370763654023471759274575740820270324520089463645927885176031811337846652691062450093768167364780088590803459351353369897939820391798833824932181154315794006871461602886815472865260729870855154347213382867139413113495237935498454513172561558938135831918557323713100551319066517409794682833844725879136992218482441004591563865696763069409944927401916205663811775775598470357363128541429853084355332808948233956461078944351917474283341175697864531585326409410939331904691666906620423679266006967290522326358349567441119000591168037220744070866777446653969599108920485704937050146785421659689828946001220214277956541303584434145569227010841678651118884552522351949628756480117657414710283634740605776654436551890649217973955098307915277661893232652485199281423757879755739713273692935349895372866905934993502540774723262786963890572917989786881930797254935978528211301885774475306694740366863727813309562843679692442316914736974071534090756347826817493061766900680121370519728669488040795031468503936530158382668592823706166394524909003650142688118112981250480539908937989135589377313553578592250950169537796226276687060644761530207725805935113288167865045054763954315960497059700318477222772016807566160174731861829755619938675090228010732289134460162433373319849977238689235098332371349895236480827153009769593744053211661573931310527436258476191070274961287639240146097633264327318054934669738952470589662236750379957907184082332147405667870054696385494479045590324335785605325126670056324264547846785845709089376451291599458046637796612656950780217101982712859504365376431178113614910685754210453850052773029705669976402067487126496427466628751853357502921608995929616452661560149840470518169773347052722201301457957071442001700825084965636563024243473421710482755120294407068435302385781476362484310414142459851205091418052578305786937511034251091993019104207309852057930278883332719749378248844551712153130518165249649771241494649317763554516118685019276167755062496336661793700857446635378249536879178200206876539569781035361130750541996434425774448145089607714247954573174976816293069054788792246901006512108964619651615505254938805425378884476753233540029246000215599574589769011719634341928612795908854100777346161044889800453709642118612951912000114822869605650351188825699376251737758762529931504636795428519823326580352483714886723555658878200496899506886143085403331560024581134566102952037667161361831375773408803817374216876008807247592110447412459353018534828574852347599785817713014771590867591898705540131284624810616994118413563538691882251637575625758988561967147269386868572337693431333887442978905195788122287340510538473513615394497508394058008834067224989437978620608424402596940980474389385871184557851365472379628665564095408739471089156957655814892255427190484254261741538222823790116185394057421566394180670084190754723025641650384668626202208460431422692547857287102692880916952332603549679522812757925246427251225434203517109986841494752335969022359476773182749824540102338722145319624807813492822720627199914161397944730135804445045765023559477682837609680612320446305889305067639976295560772111413691598110772216911247495461781425048546739540025767395395969493906565780687747269338656245032826048820756322793672524790896015394826378165718570574132691731579911314172183184524258754421987347880290671102211716030984788306012182865094223540673179976675304608039906949806133701728634206556004610138964376594113839687948588353701637288927033152421049784649233770182930970351162716561652526358995775754762480060200472227527212134443180352972711997955735631982527233939101264242259379932139379110301909569347085946902345963322798562118109055189384094538740297506725389524983948783345759674112419246927579234400451390262539170618689162008545484537591644966638644106238424791949430325908415834031535725383480949228508981908260845763716968892102519222275274300998219697362771396836502960198656823248888434534572071831409513318978284996262585503665148716744549671371531267805109990331800275124709891143940023928313201027506756627629831814792000161459749570742048940174807301833160513564502536305531376117011247553476621674137313684413079852213771095146637912467113525971185916326848029090564203027241434396408338865429233604639878737752156274801001660144176068092362683187703710928378163540711756798283733255270298075796958661354011877524730509102778115327065436133394647284618965407197683222731989525858699062077150027352302225456067898490755275556344203857057376112972501196389673795939716178226327130445936608674912172131249911680106131454803277401114754937807844310769529324397553431010810967953144027814351629431693120560390847074286241701222341458536264708128976897921889256895210148896378179907451009998241224206308210043684159469122009303102124243956305875820533431751452538907183690339098164014999216934411863827282548104266592195377736455052319279655841466017253787776833706181296602692196460402548667523871973046804950579043409181617192145635378018064220150737223185719699483254174924114690792394428579162890539802845531648117432156106369521700164281332749556048833788565290023514616625611431119170179513824739531014011501052111418552961369944739561828345496127447723608266733788974399717692080707795948411344632494461026029609674255064845395755624939250185509511229139664871026686739197116952803486008089517827860716258680549496552983750263257453709311496056438063376331247586751760915091719091390846200234604099498793356390716592879511206064873569748036285694520316297105227474042281897211590413361715586705212723195024156572391840843053703543450673979614202002608276555123211864715351417294797135939259426954226191548497855381184832139472619120720494379081543457554482368194906625991596931237725976503500170578915979241174670828098859395364721489013120282994005190558310096756194735942361338158769413267398042160096788720590817226324103510767030017507779611166788752654842551759217296495394346757956591904996594742616828808970676439524178757092480253367705120733261618807504848290257947403462105322464872963516407630618606857083620902840578818661878758780975420524702383444887815926508499843506640284852887059288040184314408655035327111081333648464059314038381835089561398918675457816260236891295910738808953121017978969112950634152550606101061396240350184393320053054958826363436697571195826769877615419116355951241614516188492717334422188400667136423019123218758509003482014701690133367305538881665938806511194384060392135731315362534382959055447180944251169423166425467564783761634969221268135049866232210256337521907241541217001093444668346311913114259852943467793319148998068893740888704960636010515255186946710185573391477875179402019628048169707599867309721233009234939762675079936577233894320069362228626566655889287694688677971135072838202426038349659925039703624431482664335198609396464292444513912623342184798542353506576154101130180616338990952733635759825428302325227652928690873405785259687553645855671894431355860808018876995032968882193083954663320415580872729819550360179107331073653883962694427629563898830166247300790318847750719873842844295465356627522794081986284795442636987728716421845436852208393497838716480696567776662976440656980553787952323565350547552069807096184857691512575119450624511725024629143306699800710633631370174856107310935415400739126718933854041457716513923090795536895952189926656224281287055022432696873027764150563121755522159432935615988748146297278349362459576251602070895313609063997087536251492628305272228210338416454239583788085530927505028473845756356311175908003076529699367972386531023738629465351299303770772127408278514658913357486181450421917061246409479576679750039700453786525470786396349216107420122948461952438031171609635395464011141190887404447505724970146394730574921411824064817288095753855542336092676083839424799360449072016186327621848334856880997932473069622686293187735884184033009318038182466338380036245524153543366664774528022095858179342519632061605851882890618654793320054831568371492549256859783821285908431662736926237089904149316201287702339514546446519625746621180202151436437591235796764449786092199686248480821641516924089151296628265750870053428041026140551440783462328495860943174815493680667317895818373059597115868259969650662528348673475640633015931563002345483890440936664261738984857762913038351423778601681784351896772483598783791475950843197295112887508748550334765469146573831714163039658388242906959454866433090286812482960613608650390535103672915946220415370593909480599397435207949190324807123319770960348497546883725532496652411221597012299001982858629260180406668856855774357388958694589389237717708797076188900308843638609049853340796653434596673886415445441485664564673282641803196532492542026149556093711624307045365137397478509908337045891177174779941010970566466619965000485200485285966451417199264449986443809684395787329866713786468674240905492971677825942147549430969526140433249177995756441800165100458184365923390316708375163599841616845622352103657556867515829489958358291138810100462743021855618387472006660377335123957511361724233960049086616655547735351146219365158112144721387489622944283599024825176877831590410551736040683593802248960132661313651063031897762160053379665666210903135275612222143933737652916836784082000800133153546725946916638747471749473876043060003824250150932397878195966455444196854807164783364081406968542536282533492238579169075630179775261532160345527885922979703317087137046311260912380383863565680487206122902609810758171592552851186192742048112874925164708621248211121810628786663840989401536104318754505099429080056733236638973021252211421626299042157282460600577560849270704496263958492342177135199808280640361247511856792360548019801500650881985343205152486804559903150637745805746870542756317118578656234339375269031497755677303882247628130438010698643016528170258732804318509935962440079458259339556452158596195078218251492731302773344996622306682406251694490532623428788209877195317662428472767140740483454863492482367760121583764200965905274543315490824393409603432196242474792636870017146328601348367792408467872648471858553881115847251942682976980349451624511202906976305440737554938407844040276972264677444699666132711760226613519657313157047342670027728395900159901128388604800085126266421813254390043415604897478320256136928643136899489693387293804386113120247436141737360717744453330516998558104495985453563204969814813379522208778411003731460426957140304696656446817784906226208691059672884531739228800802820003465009475774466353867286861848593197724043811512891264509768281043571084822210074367735110303821424209336521898044475732520398284935081900267121217815342742803070718784263186604192567001688195313225821383246610155033793766151869031017761443090600668306850793240356475318155418855999157513919498531847136266670712037726495428938853374295352769999896162174345197618044904087764762479733146401981575672696602811391403798256229106493223013477197535633587253025422829112691326490071960306562229442230474960235903073791156391405436468884665292121167664752488618681649524473634331720323112344179688060025353323380925373981676684468513279692338547447398936888420142807398751411544304876657691712927790464680250561127878089507276952061171506529323579391867893949599649508196424669906185485240249431545793313273478637681896952668205431795345461678253301469853656897904924359938960670506167075993298137736403592047030204949363485866261455169305571705086864816683875540812685837735268996832897186118879501078615334156595063406336115047188674841322163827649517173800367091030408427563260431125691027067600355468250149272445293605493955355236012098107008520207315400342264036114028497555666363865388263254652856401438410377679162093045299459529026839942738163442586265248496345957024182820234111461329716352464848692819400616042686306371999402004258406909485842719907224700433301172744443331394927379068586195210090660074716209517543128198981812857442499792643003430080439456674398301996282398751556271341207161830468187228436067515508354475451189431220744492203233092626736102685544491552225438443531169215875652033772941538895377044711522229013544812828930362453091744197494572642450035860222155281970855497463606417569866042390711348684261932910221480068626615552920184057304017528471409369070057503438927427559279397100999527358402158366499823891977167141181391345496517451308253436555592801308548718531482844413986603048740498994681164041350327161781859577879620238058302213376660043724643166244688980106332705681433383003461663494727321178068355134983807389619801604896013050299921960046893033935336894981089696371195119481900496161985116651466032735842889529384332105619988477926250132180291120533159318606225667001714569000985031114998082446167459280420970906262840124088045928985694563691889552586954225409752622051597942816578713316117621903805304672290856792260237039735589063683255895337119032512742396519681522200687414203451261943175865200688010437401048062841836346432223837577762426332627669267939721575324837096584324378232455792327798951315565003015338382976976610781748879957207303029729899867096414133056389744863077618575576603189789183798616651645779852973424077974439554722228464978523057303503469200813875109968196262667182619700838602704797452432731087065857056007422648941527544267741251441363490064236557747476872319906259261009485367999710378660139303657539681561061968513152426891016815084555336575094703785428530321061808450597734204501808122696333455550446621314766067281953729524278497542486908347251285014581164858197718172860473713697318953408384990617433794672735561312024253636539739413435012103690965753073460136031206000998662730652182385501371769889019873064125522809642836640112414484973873588397050000197928859755275015695818900441795505729753275285931775377615185951686118448108286602283500071992051296625967714292563450885761082135297195747198733816768795231926895412156823663607261253756654394660938800786993259718199237036911292460615900092606263512974943635377679199439614421147590770922919271547941347914113770972939809434732477912430383659100189328526642072074917390531106079701306055439007833867627486012502448376402782132881116775574973932713356412001644447692614774274094812001461358961523193662745995232376458005119063587911860136399045450107826882145976842345434411565245034266879171075328627672989280178285898478464756213971792925110725609821022253582424359359623781381589530696333111110795500225697633603791430800277092880342032871538990919155875456476135627797649992384688858524026501351769321722852695504705505906191980371406414946658437065733811581791163197894189563447290833339462473073706121371978225663206968344312114049862759053244630050687674300431368663647337471316331964835689289529251204183528571697918816708192367290965214115619819650361679450464123198870743090824728917745613163277421561039619827404662332761741303639805688671386890542685629943328551903736074883914593669856488068873088797766739783637086100750433985379345495344317549473201889057031494583555073348978656396333770996188700920692878403635457285072864950119278924262112625982459311612871996230309873928147461670853450368819222191530564989363963319868174122085917233800650411112005800394116354503713651290118476900401320083132569776753609571434147235345047019236030662169090307115333345737595452949112392247723117627475612850008395383423291312826926654082147139670660343471144516967866139563107378058502857674553967355792510628607669919591377377284191620061463396835331399887248207452881332361306665786255910781402341055959978351801057091904968354892917184653732724882415287499113279268926077832294330191399050270545591474190896223811207156415347433383921569167863560896078233201811742354908054835747341095504250796296629920837569162636593622332823733868229074399826916398766100953525447161874383582405676142358168210383886430113955402372195624784003955228282142120124414887596282980328275458761667233989218176985141654501407781687145514520424240407149950799907144844834112978096396432294881896957449069112375640660221514850344388382074029232934871657777140444862900053667029675758878061615039982648504931400509136560655679822380519362152663133876621109043590305231517297099663350880105723197019298695603045924359637576688222054657803886746303510180749333543986225094753993405323803920482064936112952335903818984898635020432334392831696391317208560005842037340081617185126153419810470911224257332147284323010988435283362732721632610907963779463161898403196265738247535041388138284435791726922015698313156921946501513642524830250302488913727325024303636373067684970299574772352745797860705316962806996964835693037436559414639762194680106255899258776442589119886109407739796365883808425022940842007199037149785121013687093547803080355919453274943997273061955578204111794795713671545760175453245773845405581607903322634439152659277489843094492950291924464364163629463118090056344873477554277635843979236991394129854389569852872240520873050600093237429126649210439503217314985919957209491730469466288051799755351749704146301236241252715942031773707713396792718142490904663578082930962617026351178587425370919104920683825236007691471255793246880707725410229951345871388565372764049335905875011008186931326111547328644871106937204449655263413428814171735130074831585916360249503989520323071830848243642264698814897296684991532764778794541445079357231864899868525081457713442994602485761416802665923475525330102667935262375665035591642806292191843540903191443292719477697809567446669225689646051841023614744160106471875769691624526687791446962146714586904898418580470059890897408782335616593347997345035708010715832473920724415703711303189597642025617353620111452111091324700447640667548999499221880834139533532710669502165426621304788350865145961463636910037704241512397159423463641926239507183784512255578514831425148984839386665144427096137549691196908397650280369286555639991425456001602587183888565977301936087025201188247242951719779072003800785152237132232249377655017287156454864271737040486334226798998793467289392069298928072043762735007514413474532625978411463964227609666776031622262893533822475132433609311809444300313354450692475006902284408509185965879587743574573368927527150334881937588728988105924316361725321121256883875069299913126078808421594033981334168467247174736304569846277753277097744003796301928120290297966741575626670521471046075514775420643845521664312323710920352075846065624886137422282506005753123720994965943904472824392819468151576727062668821267866762291695240609978076592556506263572595014262819053546146805158276268750219443115409362654436450348740034826940414822895530113743271725845275722173967920615983316070969434563484110825690964255901676980591486637242227969658121295307261456681130257105329605141105354584731451673088595305981171606202758741550653250621470808899927648591416590370599273838070751999762760765776142114944340425595809932796961679114799470040831120073075983990177444785658353080755755234246562379345756640661611816674037584772425347241618890701122010593805909835152370532003877477747613706224859916744165188862601210011131844347650135987462754015048956140389578231933868481362320120356430843900120777643373659865284749263859081919345153363988648689778543461580675924515050758977109438595549381170230930105525464569258951943099038514909981616788439618159468582082615458272163576379475440301444423974282762410250911920057510987029762999327175399596532207194831640769888175459735078172998225666240929863588503812287018845944768465203394333240224165875967508525877431038883632576377185265377209792944952846122837036618875083977634880141322944951751135108289265067229120821322852733781671970621652919443111825334676376249764436750665915849899186779890892292911686873597542895207302915676682689985938343282891822003917969809609468413353513077850263030581980370210092474333991166251593108372716089665341997144957772877083381533791789811352455014722378710804732987891022908705384158403254855239801479054680274857198341118286926445589132633574264193446345514685503666397749537297627516533657474070461897046843363240189331458591464131184516306411054570419858928190131118824252512502268270306340877671188477254187801876967319493140183051889294345143005365633523721635290959298096380829366442382728510468414459078330793029367213694686988379731965792988902476977415449470989983132915227014375203262552369999194161868679414694984165812778204356523172938350221078402481220655328928291085893262915909122151895218905482533603928959319908795830082955959284849811813445640957241764765430654963728737535194944142854290562893335496436909771317068046591645046418378149007202042755437922379931362390868779962018153322305964288615023986912200876686729858178183157692834271862103752183574867285733120214290952896325242577794018744212708867843456630509063260802555971581700393757700705731660594552396322049324439171576194309567117906381691419591248510464192766611760121763400750707344648408975089863388620416764035078943967936964688164473820545090154503227218979614585357483311267582894011131538020908817072280502643000346710574500371080278638581073961303992332377673780190223533622839772758670318868233067517025368029957476655734445736895832031433881004557552460220152994425755618322292147427275270997927267793472085021730692022006366913065446518812554544199986975576959681861507461917469943446252708130880310519522484759157539229407602199288146430460876783672285694651443259139377218388348084380571185702129022165500403327293621530749773831980671636128439004469565564308809805260219902542228604282694897985588019117722114377543649271200249697879383208368454238186025025185917357389129367544347769646291519963418862160454563333889872566061354263212102625104001013082550801354920556802531962114303753379658799357809720554956190601645855019641997607192742106417713495000434861291664827310622158698138076698187803761631165629530602393027671819860835499751052129309189057866145719668907758870955418909735358932398891600553143486929662190913806303626258692129374302528061550415528213450620875579950475163676605953344215962024055557918196864558623872674565003813565618768216912882553084588192702612117347847955829246587790787910640610298521534503352310813250837340376785993063111103912286977011125514706542111312699896364354572463563736035850234648057569527143281727328780100116764914009362116302781469603986742751825920965856919225639939566652135994775174632904135374001418345984742547422666929334733909795626942118720784873235850715838367194736731807437244125571396451006954484532609916778011918111803612859779359475682839211483616438219310648185462115561232534926184783319596952222272340735539394560948757994451786021468321071263843685025733135904879908244335800425853647454451763666028493864833079402127179582040176260206438440150175581802662035517882555541223969908497010557871262889890407480564750748349273148288741580460864296428205886916440562763266903773717587295057398576069340280045594992485888400742070840397094487558354787313527430986488899055912612150321033094191005196101324353596598018441410302746751914725302852398948363949315026924738390389408738122295667565697676263584330099550575251829237821011087271574236774570907868801514526367255405436410165539455657371315090292743681120140377789924094641932228825914619307371818182223561520444212717530506280108041493942322289936036720227646587711610334066281182407881965397497185170754399619512964724695151130777830314463129478882818232613091161396058344766312419518905785720187667850407074415395934075652731836434422655929437618552059772029218369150804177360852041761195768711660376904215274929438615300885812112780241274319956282639446631687574957059175665273457833313004145001755696243481782902616679228563227332157650707539715489977679524180084795748428914075270164926826703663647654556670639099574334547935014099126164549769603348230453708918469271931997468249198433867550105138974149061384398694794578808713634506311490490212994309677373116466791763770015819466919655805942304152874372539931624372263882239664333808308303359287458101908686907656815559693504159249633225552620249501127069658754919928110570274471912496272086286770380401112763864497746719862408273435334328619945841737304120973588224177832600954779468869236085871265303154633863525074858545348959551022418946751022676407927343001231164807245213293067363759341259552482632325476887246783195755285680246755521127934740116931053783288862411900805667722585660666801862828955835792840437084510342133934156542692211803586280579259512816474935592315707538887724420364035188868477041795612593424166017439329160942664602212714236694742585977360084635002162374741401339852243347778407419058701309124708116811090350790841522338758904216094606668555842577117920049713729050571550929809776681681619401288525507745265386484632585915197481143984406677782700648663030619302740983960803806464514029658601443311140201214886878434391431942173725790821910030008216094528432304989467146722318811272725683725298179061037325480036765739434416081718254124520400923266441555690321795004738366098649715219754302274869139452520558308978904164639111585263256475237510777712381975980443422597305134350980142806026555915286774514179428977767276429362270217350675441616800901731978858190938949329565848083497788546794480890734162250791185097826174206894858984578570752175185305699224960920626635408497674002615549931497841055323840692567888495003037950849214333102216795735406885808670579314767148369803444480989273079187135663910094663457188491741245935996046105442899882659142231490457554863977905730074083157637799345436021738661030114282759474371347103625240312060396138744181649517577168507498391280060336216594641354722399579671070993927025602287775366661651501013045164507835437992643363444699810766423557856653704189045765748004029231969423996508852900210116011235530690924120460339437776225454416044296671345410511317428671395267484435053295917786275955320742662175884611499752796108696773855964971818168747816648267066196387364369787916930081051767407738148131534598931509444449707700254965332715832432486917325178043991150010351290995630244253282230821094885728853213619385753550011370743106325568996966935608580164238368948709770463774206170601355746032485275732801516779780475446068246909875793333599834569787231284301670189406628948478149013058278091861933268941220849990965750916328100893130794309725641546754996156866742163819643614127799512108628442765487477403148505130096279269098352750052858738377259911455697001885749572816944251668292450525680341758092003077501856692218995339018994480679770519046825748987935238967217683179035895896204902780779333051446210365707532019760719091681886940233680191531203119075332214459817299675425412329344003141875100754686626236799885862046908144255052677456873228778907711536086832256972664420362681633795952400941765695339999538847162136306317759584196692550748945799182918495604851542397297157351629670816726068978169608454154800809152392681469509508561171877555065770414827625458642692372448037282156209727042644616983373273554490411249287631407510656441772174824457947166786545941969334898211405078260336998509644158324816700143169589997160017678817025700433474166309072582858597435635017275923009262098797075298198815683799021620145669045769497313174526280494303967558501094860536494078408723101942180605789253856703323083954094099322205150942212762105802912032509682201687205484012832461529985735870639061294940131415591531168031921035745140093251280854137799934847970295465542585102170203902502293932954481969879932291232545829709638181154139552011723000455560185005471716846173743118593850321352637909295967009922468761606667721312189975384690658155707680818790529871640859303940864920680889264634137287711118314437515934232990260396626574498102843763230251347080000679589480601229614209259140356378211291184900746638221817661670133674578102607582712478559296032606431233927464473027909780463390661164817767934700708790796848526537682309872929757135444605793458000343619349454192626537282157335060418159525389959548127753186373128598841349523236367379471381374403611715537501323935472189403544853581558125962836481697412187748250781887961558771761120817324910067306832015401165483127552604677505001748676790017046270130002032488424745719874040338786546710652889872124122198427882131504252775071671308247931304610627833273427019477035644567505590933988646531471933397211209684500634828724000071915147299527327982171856909508069257716416088198380126622645989463608677792888109229942500323794563389575130220829780745791169612900647801441070372164496057823686231976716415812337187562504303271917032290153074807259227568065864184433397575024135542837080047062908264749323416510807577897768838250130652704679701624179408324648885673999531811946559910922953579933722523444928469179464406385267757301387870778170312475618862408813831736185065016848084943602192308338649384956159344914810819312074479990557272287628005330937091515444783336469342199745565122610557963657233623024713980456947074443235404951151758079486228198287567467980681913981783551974780978535972647534439727190373255605474164970010848948612930230069721123355253607236335905664005219237657758498205059460728328059170934458646628368843018755646526046547727615817535841565364469935903984698742148619757920712720628057487787654052368505813324164497735084062604490918175813496744035418857471991356014217287183889584036540544987635241568908307320583413309540245273243913211534663197431775753610197117319401431774676676735324495239408447844328743826448149870498684070255421845112536834948024222203700939085752582082485458344413960420078672380626960859145285634172520745381800940778927190817531393870870454878161514081124515435432030137834360149521469548570157406838489544697529015128718851222449512589810591943482231594999528138459292110581271079460586615677451763164530303925448582197150141351510030077732912911781486245503398520981531752189043193545208041613952570076212325753212277668802188682458567190256019543914759554327869361831062102515281902499366150895880419401452759075194636096567295691356489223343407298563332123864556296488055705235479723795578335391972869627904681478652428554660834423374328145278515132615266080617467391277530908620762581131697701429311316228197407694335748223316170460969630639477292623280721666051530158232129322135968100104617908989728572451866210909738364688574043478691105885525715206762068925271098867304931292039002239945074774888373646532950454854289389900422188299236099577289228157707171758134387444278378704258183466482418191908114277165004087303755383595872172906061859054293124910908013384860428281063312672867759510321998032826145523732241835520712121499844125449456797564721599319100212178299604614840257584308465100724124183929179181919867393532199562046944809305415910017528928409010920430722976755986081002509901466864586350251356848405085439255958732570508296596012555240270885230883090998119445546766114138255957936046389048976450333534096774796332093920373522672007308667980980585396760434615057286921885094961602616723461967207207941876146690236522329957029178088572149004191980284519769695354249284350032033796083063663664538220380949592462421785590458241942099445088847952674806462611854892200477223734843796286172128850430159203697969603145467006411940283651154608353928842951763122909714113440822452671213525924731008143033078065234263781902874209419991459527353843904839408821151688280343337658471771716658805440428709510742581638228892845950786269228458883662622088212993097574703623433557901893558004410445451487838870745410931256902540615937068832086649716989175373391637451508229402374505367335543604164855369599166126829538955353144202695022440952121738768097367771245556811669087970440807957462966577122036045492938474179475399358508380586902880629302363726840059897010265320894383658871358826460157054514319704890115632869459537365602748663675332192905892347624101801094859802029483463622758620299705226552374641989373161471179746264630140895985919154167639173136954974716461302277092172238447177261195564643150766873873093899175945567842705807178611703157873835853113783561850997555949566523351965257008064509123869415689963175788048607640996390721353757448449104990115304226732866392954594184325487583857520404760770913531397003284008613934380288635653427612724347763699258052050720330722639686126680042098622114881999009893074824025923806602121850347982699268297317398518064929714693991697246617819803136626464095469693695337922355297097084211900798914959483151338613833726527105505561534857864512037638947675247395336090855605089748239402290240188134470930185689662665827595475718462378709313133680870516611215212785646336437237727752220671838442237455289887182601599917682205558450460413122484364949490791897766244887897494481337478668443428276204171058330668979157473173988435462632501950407254623844152118912937991669209677540634600758428876852305112554111120562497130548124733312041317707431298640423207709437750376792121672004765036410014804442747406973148934265944799280609422278703336980715270302443975767976279564561134597217311447420865431809177651777966430172076890117844527428178724135977671627639196824152694039603101051825186741510168079393998173822605193059537139539105744562128164820333007295178299097265294743029236137053043752490070272114136473491536770540178800030590246268355744905410082632536051833868843540314311532817720204202660716964325227172394694334895851536034322505623152462422321640622295430485485325419759386229151831074553799218392089740262410631588856959241815542257316871740056468881546969439349954859779362943210463460361572660099511725135784920428715073654453708482516164086115501808435850907251668973217557015451993770386173879164192767106319686907503700880024146430897014885906952303430145690105053021575211087718845871523313084289628820643700758050261081351798585559780633723446749717980120967637356436656618289812790419078626537870501693103055522686768191658745961181422683108752231709555092607234545535306805676955538116960008467374582273497025328796383702367580035902957771062017053748984813897495391878208488141290207883093951325860166713142137755187097792652740703053518449451805398280793761940570778565216329153924583986716517118926288423596235827560079506860111197862607861977099692448140954946553505582664805088588051510876299879506899211336054826335361563668098370300877763211637656902021354555611290185004720946065982114425097813308447622023173297635383780902793675555071646032595012484266587604192967167731076506325416129906975259218595598927785198332397618235965141938193502733927619434885888042653556357958841752032266229756651206751616052800121805908177387766737958077502357871085676595780358608293326186129774758149903279560118580987723168472865423560987568047871593882527528276167160045373363979271388607858508822345621766315524237521696609923532602863311348730703224702572667945536584101030877720036745958095465859660985171468857700402432614248178583653908270960377631255879088981060991676070625989082487181054651711941072936235819934041314764283299431784751741977890794486880469193724730187031851189667539012366199047602313415927885926242497624753408789007274938905725890383526150800426523212733628402750873498339277064771968626762460889395436493010691410855601245110789911302124915973626793962059651318127699455737848849131773390018159361195237130587379728500998890009901051618430993082078275840322029882592094256194486517941826080678463039223577981067659678696032926820332742193049574666361683460626915872611463121398286455011271498183514002021657130880381268822195684550633046188700541138859553408838600450002011654661178946546392691708071352454771953651918052451873461472930045621538150178897991336348169590555937498851688547299391572855988789262739321281952710349568904566611044855697105850389316195043988042281198478430073745639277729754456409438770238538908199951477328846525429964960617711695351561126737638230494754747851465910984685506873589897377831977061677432824158021422815449034541752868386455776253563307920782989018151282510199819969187553941008985099930874606925058563811225899881602770640580372366875680259233350459816381339960551935006163416467067026218780298047470597018337378534560345349293986015743059375643573313878602264762035035594091749075792964507208074761211386558854131921340145359873446129959538234698942305191960916888682597913534606314047552965038487086150029673646183041488405620512098949715401600087710780862113454895559259610494228133368439052852709091740431585348878610742642204993827186838960520233976794595746242338444580214052622112443196340028185208538865873945906026018118092028938993063464122558859010497788294759174954080441468087588955374841776436139608216074096083883577796737821473568541428977464567753762957957550144639883314809605030416909163620961372777706255229530590758710655029222955835045217438404750628977407326822219732029241263981277752056670313642093708568832879767239306221160401355186666344716870994947572561051860220669291071460418590599164133965527915550973765979349873930796198692676530503226378551919399250757846306638922722677934306636500789241539843553340742570156147939153913055731546266503201066005483304268154608830742344271001501397377117649758319588081501734340281850501556207626483556327458187078867507065853187434133956848178625099058686579955872674432833824125929041051132549662585521366983404680714262520283674619591890296017418617529349918171498044943773371633040492750439861571440545271020674588547168299314107341437351202223163030192029460505388539570750392840540639372409752472621234788789307394975658496594206591575080266948646896033299265565181907518139102869690692600493303714194823673886338419367992126378719028611369276608966466397171942104369213602841899230752158308550778440452233285163871378262446610924587175618087757388291899155370730763083470186483888344587982302628736385745323087465772959516701124299261100745208428275999129618643961375602334377541813258732917350166132661817210540362648095473818047044553681630922396267481516647874049281668873253733460683287899083551399163123106120079098052406096600423957529075082073968918558048506008651735009573871432045110943553841711801817712478470567270578253727692490134380921185805798761574076777508825154778284230651984955117142289006309281862063097185946231220291454298610333214255387922571088649660567271706964657878313644957346127504329097445598050344737798200013848665545104675931601306391683267916922186488875576588171755045835943608329395586797744083082540826220851938615348421445238817487404507153488973076241164297123992306839279416218555014363397616765965792627761362430927045668015974810776732977859807859639951160373690273435852810860674467387868127611170755633518766547335029669304338061643589590819007617760778275827928461532309033818812885150484733983724905029370069925893374630608602624572045222773166780373927032279560326842021303805740765532821135638533993429387620495900611935289436440153865063325273313309480710553716669275455283467486487863019761653563959806165840199809385454893123027818005525126925911265845763014210128797479759110352309006624342977105928364361081393044639327828760641105604519813946273633307205251555707967216593500132388874261149884446410044137716845056843364224352357255678345693266905879204517680599915312463886808299137129247427640996361326170120030633826921005906654340036175457395704752437564238636318750670648276255854824352167982331361528054168135593593089875530437026991079859219234180245598322834735458731687686581454460464595337742437551982081703060789403537673962032712853549799470310854350762639161246070558140587370320146439950943783908175201116123601197258954919076529464569832623337495491619639794599081354106159159226848523365472395483904314607358102098598982824623726578339463967429106753641664177099328484347452838124735602407889342263391227024075773296250843250768077877386577540601329901202367115768459640022575624768422467142764460141346208957368046409325520110701381741442401271731215919326398321581193067451132123621508655375744027947413883440674980335186611772501179421466810855085208745339068003022640337527848135462399774514549092864533869571505402277818845780462292277065754550998612935858696487919406522767745566361493981973257814011884207332279040276428733294549714285425709300415313222988358824837179770688727608429397434984638445031428941418727870083101499316558151249471539695215856669137281568282144236250581000082881884017753816400169164618008606863254557143540044854930902560658301335214494453672562442689072281065198369103780445532995623670426486465479707325019560324422583943248246974604624896661663918206354295269508311436648999764736670747308081580399017606420952521288590359684468591970042538977835762945252872306376927082374284599808880601966359847805337853693806654546003271258203417721306888554972885282549064393860898505787283623549129026540578543984663914340123667023387095012076539087691775013227388930537578073595347234460074351664146330461008355290444977127065727742762438475961430306448904697831967999558517897750502634533295940457719849252726056671798751395890686384657770440947797258422414752490785168793651676521667531333994972166692396379483934792424753750512021104778449689200424703647934441365170129226940817664829328442312801602633722118821668491100502387132243846017987830364732151946385711906516435496567827639700721388252384908330755295316773621514691663251684671648853551321090747586847786492651492799690250403951149748545667237801858034708704461076762621491173071075868440180655612681463816759986707074901906837708340755286372316013322659140801987588901308326037975804830037675436870687242807963319493772641286368497625297574011770989127229982347084298530778740646567593065976399179307501813400716221471372472033616591570020697048956276129224756179194490842786486302628491429682529171719754966017699409339539766943544530430288064224760298845245534914736530372387876930858954534818008559592243133049384762046601929238366885254960766579578259063967249742396446987815416491111267213486758624550205340238781620316713198106212054926862559189972280988944815371843926094238249921122561933961744176574069856896142663859498843579747819991131165074753190635418387412854384651106702550231621041920729557862306411468076219842249274303483030893508150457070970839566206140280390026943475269074862640811229794022442578263198114229133909902940333539125431111882404413143496083444742942864047120513986322445009256280582608958809018974865006099494155042494632055473885389502551773420881857439909004919309821050995451236371999828702743670802879645293008067183649851902589936003417001359126798854677880475595849812857985387299198387645120448021722565852572215607385439972843522256058613165969401575852264127521218982479338836496792150840514528493007897273215496582414475616032286497872799954051042252894663990903365178200526019561290918073876872583014931533793258451278631530481458392030342158269345006544646214529716349947259905631015526731320683424818411909323089481407471657234924133526563158250896966648421923596831785589018149488093766461157280343591692576394291945765977988355468168793058686677304147020655236676049974857688828663473808665256626793306989552469521013695118723771984348901083063499571565576765859865304889562240820751981317041347098477578137846150737357310372019294609246645215833782269323626400231630493050908999092109642875094180153030837940145235266945821662460208216781759798195415315048307569035885858636107623594304043147701762905156366090670325769049541394522450932297002890043760776195549637257796943199377554311046207885890804141098769108098975129281304507805949301279453439557288509920370599055715285003691030096427507221480768147798345075948939538920430885813882340386853999810353528144536033430715503449630149033428172035637301708574046843624626466105308683287675339650424394105949099615094181936091043858051735965796226363382337706679055634880969891081535409965097911504905736198582400177997236228535803284627516469220186820059706715288598300713909633168085926986299835654127863621792320317004099799196436038439310692983492853495869783727728913717199062919858526922418853666829765959642202017834121675816976955032599659773507730834273713549253156621997837938095023443614872481714920438813942502871683365097794072275568419293848571019401565166307893213651647228145383793260942470859677528183333303004047648377369669544848116634338380369742192735162838177519670597936698704420421583721154018975071050919849473140507206521985303521620825728203038305918753347723429383254386879917021566010449688607205409114317837274228770256917859924048944457442885562557495259961507328901639994546889874626290237264070990582941364879507544511108427442295249446539825572677496516424379013725185287457415465255846285857009693240361295744739954175136003554310421077290653307839620013965221583443263744709163393991353656948612534826611154283059977995988591236033218886790366291008325492502813947876064142280638308360207089574819241320901562888441866715476895337638693220202316835101439872386761039869022120026425273475066341405924143703574793066570732841985379578006011751459484535309968285931117422537680705278810348191954216944938515762901913691473340669615532654230690842039962266122567972795450674747033196016905232402599753103275732991786300533769446428284420149492721811184988628123609361542861185575722921482904799023545463436602260303543172091784740163569983281346143600709891030604026545328868506050837435554957163018076952277814440750166159189081012791502084747456614532839535652230509561694892548506404895057524078256874099341132399332063249119225556352161326472580967819569582318893533488346431211591985363864148604947928313768688435176228292842333376714625954845517970400055253677716033210917989740575840623279687351386042811754235394190212277371368776416877778066411220647917034264761287238422670512466319532828765199790059591036450394231253367670404099752334020284889838525700796445240934963375069641851069215810192964909332994690523219123066160275711139806055692550116794493614930571564162436988717570239241267006707748431642534673005529663136822267568274317751270988392611648822243365584798409024820174800404696621818279456539525121385936146275681780040080814656010097108839906718503695745951566854667057989540727527359839104856292657771258164986715479372069175608738847720328663614193057764632716252111795289862246729367592475655294729043231739274546866249250308558515302125941045876924102870484848755341961485323786519396616560587060090030976758525443079208576322029822599218922586167479103287490670035237796063912868116903085433217919149096357889551870212886733422081061016435789148887848637328870316873829632603183219848281176319046748535276029994055949235562728949131646980853727852506873494820479555511444780401853090308361928623678757512910368951920796012504429060063015063695944735444255195069318782581949629749650879921796854076931904408533472980499560545960117034311771363614340121730829730947458468172455873813013425838465172013878982975659928281071178131224227520527696459359091422168339832762304463498218819641497243374395478181368055741488733305251207874602806494967143159123772850973974041252288756722896470241917406279016755326142164221780806434379317352979797180224348030092947690405427507695694908886394655759927318408812174455839808584083325387904299540167440594877451044411333360090627704793947642701259543428080807159860430643300346824147800320518109418181598599622298297174223839754190921754218928251108079529271714258506412048902976033147148146237021591931754594627977486704452328819663784419687815029521373184690819995376561572188046349191392777755229519386056387002839520108959143271429563904685038273082355839197021179336440627491040461250009566550459065750883985044503520444103945534761822095383581065425657663560721240516061413713063573648392594805074531379315343661344617595113708348776564194061534073471741176681804774917911101072060186023678553900060492128334324798687885487697174829131455626933624011705719207805013384198572388234391280624918881096129956613721657339124830269723007090713130256878132561483446229996290953773535040227641360032078687967825900476862615637301910927833755285860034685628897461179863846885462475931444913216233913557639904834267262716175685576879958963393157068269810588543910396833997413455459866532126126715162170145691930841013417100928061344315923451166155989877576647138295925531936593407874519171127610806508743588456054059142455629055228639694469523673330561122008120772786306187084383597332291680497998921091032982105523659574613253647864387371363412640626529450766356911640920154838741081003551425662957279893960330855225763781949765269181248825400783617651145557315946974290394845521462759872684731932826912639008803279367223673120703612122113431707200464832850056605055491898582427433192545605236335103358332511185349168220801686041057270608544935006003746860842426142662291161804372814195773670021069367871491727952033832468888249358478579535507759273207789334499238136663004108402298870253415012335844643482151029535142803646083891632983388434972109616017760612177655932205928396230481264965268813954583621476948235067763016410451439406062509485643499137929072835401387050162392822349607236881771667887812777879566305174412935718077959147072372865662665055281107012704819841362365269768345047010327386315046076952799341725158791976757961154415336221248115580708098901474863421785842556054641087929275745603600695696168455852007653828139301167321204714473618948235448003150388109134101454872160955422573695780460796264373394444409607180818921227544819158551979743005592295549140132654501553668018294282183993439471065324469430872171394722581718224547174713617756365590220768489495185900820504126817318550000720504736467552771094018060716031543125563638881034201342160033012945452749487126195113848126464462776714309003848472330084430939037678132138642656416631037934917524848179415333014189305251521521703844784027337306255676364129073361345657364023228604000226780024788405646368781263390101273776975562784123469534678885615099126307497910828475476203800755778634477043866916826627873902024636120145946275583508739819198921445832751552322281423776746441783283572647851325072351730705658298105827103932928371876600789982015269569547525703997759736744308890721661287951507870715141010427867294081488149449070658788566437952644930227898316043447270028694390773191403720169931864769866575696146241171024027780853532418213450247832893721019619879898087767543271446173590546413850557677728154044215131780030893079491862063330146757363355713241777825400522855810325608805582732579848424542920104354414173011195547017851371777622794198401430613807995391169957093866741720523970036501824292386265089795982733799088375478719448147110069544892992057794783288645921276520192999268787870152768472431572510717098347996266104448270562430958728100748952467991063446958247749122503377779766078829868110736436151124054275026423576518291437501465643763944799831511874351280477636449467392104311458634431442338408161835380146778362663747566492077586089501583007522584047630632149067682326307324862695393813190052655098928249389946286332904724755295795455276089483470860985881792370044843321593564556674902261813132377207640523559020043167220922090944704886946369907773968440760507178704261066578308520457441932299449293384475604150464415401575565763073179850462361270821014385070019828824732288388091916088731677731602969067565681099994700396877854447439243995542556650607442540808812692357752199407302088139513664430033328959542218327617803570545967600148423325785745813848973026548530820871303017690474079887713710552385235107801719312406125508671032112395203561391046726790637787369838344100242676756769826830012185630522833555450107017254422701687593961265549870658949212836683704213503066497931911704025716908510656319329371425894524915837955321097375358867667503301833810283215385433237378330475137841053150983869171126360745768825631791200388854559005424218536826531076576507925759001954316971437323765170982493504824370357480318350866250482510385831992903928473314701062533063127834064938988726431484939731218735694066313039112660441083001927133684184757721703834036196903316093483611011458538175521106138760174058541256259540845062509401413486996743027294778058319028852990924915313139845067011247077717916088543411837704219687596263989875620587141178820370744966538126971956295243638736579610671879007831386614211103116902839972231197905097440239026651329057300840054416461537918843301563434581430350490974012225167622934821941198552001567355604663479334431394401157809642667668608541247027263675584067628462047651147401612556021857960781438955252928010341559881302172772742757169950204967846165485690987308360508761591629959057056606313716524365841463449663498975296230709437974093467606703861927079331786342120750286208026900203644441066601901003581161829228544896209299434482060071548882327905903909034936902557513446352796582625098950477324561721104422181388284487701550648630838502879213280344859244630882354935529974580623225462175057680786542161461859386100472190416490344754182232945628300354493046033176758863173467681240594951930006920033803306770362894677055978736771171511598292009670795659616656405932276409068752302763540442237701863180588460018591430549958288846290868462303450850241532509745624550467441114646122949872422522904376313525689272288800258610611946755777976543966931329078834577636311463697833864235455888742312712832562918129311530295610484067609461100541559306174957306115588099068383025629728433452200410706783695039759017972908362481080978381770426500460986726061424492957056654616432734827931397069583684023688032338637403939995330983265538549683138204537095053607757177036642630614694724816716632123507815169411294195226344387824282179293050217838451166096377289670421709962197633324652106126993301261144960866310285358771967018704573311912710114474570181495025284381250013238651637237037115376175554171362602467932582393131674498520582943488478045679148621214923489768261620955644697294033446528784859944325710966395912275545701711251956297253745783629863595356127977961800695512983472525639524062090503240598174585862663500158088425301769002414800575418533376085720987152898585465356133208591018484775650487860227408769899775934677950030875180295226750446888581222120975093733317533743181327936907467747430374645237107266763387575592096923733912887913335410897480962250785626722106088161513209183264441664792528331941044676953752999819082271758907325633250174909217769043394652673172375967008460541671187073415415855905598001221285226002059562421231672120661243169982871402050463994854397861339934311437843928540756497928664339114008157263907928555929935472618901445616901240908416129158024155832173905031713522175425561802983601060129732110709573303779564992416695024184771693810119875990680727653426762498096675475570975291695531124378832036581340958304868039276945259738352940972357635010457748481429073468879533017403823630434000104905025276773089315256649541388213781822433501371498507573043177490199566686909105964853467398514231205246197332389771508479749146063329077298557368558112792982295104416930210077048141815258075332921291025986504270419014637466931602693927467616268386489099426683454468738323973944229727393362493251633502597034943649112593386707734521683275914091289546725578006584989611723800179369693528149682046113702381506536128347136711834623962448771670069205230888608251683244026901721865841320360375049403290780782236401851088326067119576685086402248064329572444467958342074840949184669764116301378933492247267940665439066808967797573422589149467093021600296762514073913221361688082955294962486793032859522681034313248293065242530655025376643816189992761586459770931066031583739832391300818752199878684647235640721184490876456182175205498740799678459699367637999495850569049591717802819016964893707434217146828945336600860283388397434857727357877513548221156498278646747711910537371803059188721172707737247082000612978700410725643486904055549534631539465709202025125856840566060292040857357698539128318504595284182531666905862076369079416963411141582436076772561003574315648228055644474076491094077492588229828067566905616975472707180170965793567122659044669727261484735025911020871774140155011786691689206787220085756647114059478862084256655655184007019101447953743729546435558187822444223030073902972277638867554002916927194345168970795255375705234916769276257953842300279555940133373213400854915201281705670042115565265492656024302390986088271083757360069159053453511184766323911953290449174643151212686305482789006894596102716087838967186559083510337212978909665714412768747603344934704232928030353176016268497080108210437706709311787472693379555065078178530241038529351244790967469981992012977783474062100854007445078732478319197129265720827547906587527669267415717556739648564611420101659806915822899352858163112369731147293577644622820497517092688825649048632948852494421582506575989947119352753329484044475868464136920080980042008157168755900077184966302416447584309107144260514277000207283596076653004118275081159327830184107821647135343198656578670886353775125014677316873208305742530293694026117646575078104915582680969011905935245922986373301345063611135685033146167595478394525308775182791812505325090241119541914654713402233338848910982451440098280604485291512152157071902787088276906551748400663419415559560177466661618709140334981387285164767669032583261376793327000193153543234321161975569512903521111163037942990608862832224404311210614206632378997623828419489287090635000810370036352002395174876077549054500382764336240149808275204119450907641891514647417290536206163403452421952182592733876072784563320451358374927805280835888908010407711571219461391177079873827216873396982157223765796748063432179532431846767560815059566339784281464462847313282876197898174593434559596397106419257027004003179247588378666937592644590044050618496361915135919464427625695206218165478953624650447667891985100809452471272376424284339211946656937639178101619350478635686036002604958282234149882531486461187135464065626160029683432599704687155276367774657753645089047209225989051726438794880089996368482843094140619278078946306189494256596260882071913008006699336547996769818164540859280368762417662014409833316537016922884368430977728451792757659668608087221922902313183100372253354235431105980357599157868806058867162729387614995765316127401070509599200659334762693594156322748663698618921324633911960898477733390307182731611607946269925516312141686139725137040328612056614168899302137018049801555297162657256502746610044371625739243193743971076153626892905638499349618066192840508599775644646847220347549887932115512546622798765072353288770431839215076771736408764777549587027359403613142036180210557720406448977546978467397476401910111004028377044226630726393100851678894142542277646004870655293220278127185313246879270250196772817696698266101440088545106895939431828231032211468285411250554145861811278146383013350061347175194395735603371737437982800691222311813989279464431708490211219386073777318188286673348472544813710525343872227015564655367433562834994880626285211055489755119765364750324012569958605528643184099652518010594149592600501692828768295599556587690266379204136849752941649943111583651901569716789428481131400148486759920406586669164959408745574614587038780229602899268855273119388319812058199623476156995323381055568127622774647955004376772033729165547713663659719801751369001954321271715925426434017843216664475937052185738768066211768223707802213801870680052456988484262922561542862279143432697126059965236563830879011153395025822143111545085265183880074958080977503350379375125636148812499199447055459481528926714345192679608650551326384601521685030223754556346871291126883861925405158036986027602587917752700675680853090879511240066608566585444749786024552060307947239130283181613828060926010028104776773075934056828364603534666468866497434129861016604308813662980202336666640259068402923154211918197171667410717858229492593146667572654640555501078438147232192020384679955553232160867610898266422021651043492260016467224660842372417600928186543330060012610418316884342823362555692945863453551730392137631807524998591854213003588670556146612728787552408199677680780132621421435709032345655896550705769479422640514495468645866343634559258611621539026952743396123895200964130214368235072511584215098585284162034915673230835746637158882198655263355170064168592880425987202414199818102937815740867477152721253265613462667577111569867645366672955690905662824722840643674772822540192500747762502892515381616093824397275311084229809450009966289006952519556755656115167009368367022203622812087101169928904820007648733626048976105589131572070008950894814046193111132202296566853339553813264694127236709420341528454013926752521814988045417473431313013799658289006295436305257266145592580705737651953231447066350049198496692554145744275015619945459464670900648296082939668328961069620497196202332073067107970843395507747371670630313075249358251368781481425398015501862161264245160428390111366343458903280344106029324577233370966487880419150291955062686057513564842662707751719978669834731171279840244383110005873713273968802776694981418477260210515491476630156242838718186177606180489192402785423025002920177790791876279727911931770329167069884055454277350140668872287698499781576181606565984482764381134020760516687111363159298990007879392725890021851329950887931099781044911111951872048833893184233133961102944730800199539155774358681958436393240350008908320353594478872726219500787795372947141644914402146187948182488851191124689510053053191508615558317599913006155712386618773422562145669040800233734955228514819197023638138809501046617279394422522567384020208837324970502578968022361293500977599080105905605081756775527573975004112033107825848676322349473733779585485340836606940364339221082149298527914378001374861951222752898973725361928728219309386371663197265723089458680906047340771386997042191551910169640831386996909304223757197304102652263101856839079276002055894618087248377594575884077004948498097824924614331238028812227413375955293348152292389131062681150635881703360038824800139540087376646130594229017526352850318024941128692720744211098072468281056257847322358056348033661747909628398186322232683394545323341622402744393757672526914695820029096592196658191068886233538717314167672658755529368687166348624328350831495134040036766212787266400541463242365828821731949523999369409210818421605522403192347808310556051138254891638381205219354632703817489076440149268487398004699282586899261071775334449632537785510597960685838605679842433405514200527036579475690360128782629445668822572363140389657410117880078269805936683434840080319971260253506799898272058975307823283211772478082589200253095672009485123328331670903189779780679776542814934138011437405508482101613729128132709636184226937369235468125296145139485263238105927691342143313691827150931187461574150756486677977983516606565021746631621386357267258613524906409013236050263158125058902416882017268604509910557088952571344551776066198549445431290665438937816139837140969236335467591347267363128772456800466826881536184931651874893217541185784230736283441635676782630441939285912758387607705098464136596245580063816682715469203423494566510470376796294074429602736768870437554539445887257250144835076591204253484760595882893377334530304156773351520069907788345436671706156055633740383812212677009496994523165953176441954701887908070755164603213669534214461681081911394866667508368288948383343754817474227520497791560547510241398170637113714217861872747774214061403246255096044948332629881599555930549641430388578087242944755717715600273900901383916105264987779498632513386020721959403029774189571579519604279070037290821027666541011403386306703644984125869656929463392992874819128309592933931487194168614233930309547715556967822422394533128837505329605293036226289527466288398824243513243021931410664420396032232134432327293824535455672820334246404151969991824187045230251408882127687694306047263989648378071322517165190469401753606057279403968423079662812649384311490946474612431503499377002656517589077313789374380281028408804677564557467300235460863239806238820720516259410273373134865733473540871535023455791801775007144779855081592806225605334439093922740558646506528811224547614468543237924818100313381756260141710801856052574364715997864635332835862632764164078656059343947141396507578409676362161253181689393210537587641896217928999304456028513943210494151689684240798536507039338458200143030816853654897101707894109094295297997737679547495022134266355656077675712491387456650130432465796929989391682615547915574224648453962813847730689341156949217132259800787781238231744266098241474624722000673031445086994872331470622971212827084922372549368018675968943207747978399950810022158266694529647494261725635642606458334545636628310185502754874142718103338832084080923547458280110679822631305543151690454943616610679876602806034760458183042827354197380631385140353128997065656464231205666323657532988524290281456936506418211405242825300491329662086984361506726503704169916702649021297747119349504024518821245715909014619934667306816639169896798887644771654242757689545460388735853287256365291605654671158573513943308342263059939397235059214974515797639873673771691236417637208928574464921487194813875337530206196384097973404206710832680714711058561757489462719591837096447375956138169683417060915139409105961779784619760339618214504006027396896853815287014877956739474102730544950464415319908605796792707310624279291798848471575039190692740029715593978109910024841099497434309380247288511586717050661388458300569559610717482870059189526168174054108334777566588812804458020481140455867092341796297405728780707455315858588612277537120378423575021758070729460925349954335630143010666317075862207500559098636165379352119708356145740050617402811500135047619818366795078143426433061396953759560971912501668300972831650951254108322625183730823460834972985692623370887627067432597552729220342379177232603993664163452042184473473682521493518855454685881450488956130711582847887545464294419538482019546944969877750183023245719031384658494915329442395444919864219605520432067058374645517828142653706096005291420048425732664303022723851430345217665202374718729216727034575046222471867064043532732101088029659593430226790654008461005744245511379160830080947112850373257123182092239402178025474998194789238372030262619180261656682652657049787804701478800255067662333122635693421830339693854613975169211660787327683106593974932947087084746163663405123057088104171391741254875370569863617967349429858437453802148130044604199210911148872527161245089880116878933967110620777646661881433572256200314284919422544491603901693805174259841708256196105168068434747255264932995095416608839052829073185300601926171114748808799110072596888158939288966965169725325279339121592631271886460398666456965593639838718599675301125451694689672233666190538353971614737419538898265773787765955429806681047307727381746928551985827515020228006579517581987372666349767771012371404499661636523688450804013471719806723155019323408258909731861262815173097218837732141115364221678422271474154395121498313085298014067484427282174664050291342359239073119042521975680755356529630130186567190495804525896278860794385222610126725772363280131797800413978584996351475627848188817028059172403703504017342436375946566611568351036412409612697362120963643026660755343763544756553267960704642879055127448349603430975335178152955863638914515076835300406111576226443849635073764596403958116966375890785830548404193817548077241152137860681508913205148343662470660405900722143312522585051869255058918755864903244728722975665671751511279714257635900343905334956406793647047515310479437030556020469978717456655992722963140667536470058325152849306437721605069076931526203951432110352004428644010203290367174514617719392535553613638995128244905578514689415868256247850230991858563501501852743055028473734132425441949495557882589037862980297881684015018690622874710384234569585822022532022599504495461823327739658488677267187895367395766332998424091949092127575797060490438701944316183319253129346399086275948641437625916309932610016642908110315314021513586642901114888384770839541553293392654050844986434613827434660221331592751330487498023587370987001066868657261984455000123828608232936030372322299391885763493207199268474716345232303876708833663604995986289449606868694880937267263812851773673129496328216057015010797899653915827413988665969983776765009874331209972040816563480719889544395299354114395203573691806127621771461204191804124562823469866573142247589225332570216128400122322393891746447231615782575487356310277568666103585012234502656165429973480495499157778976375940320606632180450676285966660151052192709527582525269168787867810040546089897025407779010621991671716882860166029687226508062241105314723262783337953686042544944723838617603445574316078627442449663909477176253170961069204530189720802862957891298118188026548577203025792461504688893546344919260455389586837330095961458462006555902154412735138062342114073992452929227604928068445095349621672668433483260578370052631850799085027827213484474026663441492995911895801321182345085342739370879171919296527280236975000389154128667458214993244746379347325554371497283639826388232344584748340866610418389114547612515428953265663374724349093865230733293806007322961781727726490695135648739518056887156264536463226033176277235494125047096589303224107312637803136316018034190360791124821245938564233460137107246434161866839986300987330175680484741467876924594577779554815405343301022961981003505828073988872567629952154353813434592219594988484980932555404537592238006783589730066909225975082354763656492808675645783705230049597690168825503374176254355200828749983537425714291565528940612659396001883327708079949412157882278193086519798634781993650315241028716522271509274943107955540296931522284431576352707787949123964803769367620909395623081047781874837544893135132642648068867398600293944569464857402928385184979993161579156195932238920844955378963580868213416885951428336689660569883563529689040343901074674754432415330709170429533969265168891127820655040786437638245618222429684643045871060589506746692123838024549903150751989094170259418369783674214824368901750328828681628187499540783881942805202857395297339446029991255365664132292231120846234819963843636694426399028385166935457431281129804198028663385814558737215528065024412430052122886681258760343797142071496797191561339607930127272899317784923779511822698077266382351009442770890339762610260110757605259974204608781097868030693550724554651487373547686432170985692963371502405561658309506781087044151241932707953964520031275282904574594839595327879891069442516038784524095894558437352322344453496966787712703732427381211054542232872721489087847645472109505780022634358977976089647271961819358211929114064939635347302452945000298799099022537129864454762969172364357970698414890727120097445679956417565884025480767634999380757515105826330068295485530554488570372403815910901007282271009923151940319458593314600163504434769418447550128829611407995971711297174633191613414036311982818052602552377951495031942822094439060301289594594501138563193065098880092829859052429612695549937171483523221191875126382825382525615128730370625723501674200799263084529981064209424170252796739420803519987046304496771366084246812112056272215053662490604943824099693797523544485841032309959215787496268785767193830036144377773981226852343164909512385696574459046692849216198774928998208184965290445208852182963071952844879586378253029140141492667620243747708532973166302329244551449648851634113417818429164824233657837679352993942441555413865885341009734137039834092512873405907330033548307345756084498407107437571008636006374665766145315420603042466230060525714545799010824849651901278930670373542418201407124489078633060874442852444719736152002731266348216617097970816442046390084766270913853974119014386025679875982097637993976146270581435328252216812954982724007697941350379746738750449997196580575282544171204698809630152319261708372514995144321981927947378566295933179138007675596945481034714209045136064548476919696525559467751746873181268565120007167024314590249492133717221253081180239271126397733406923628323274944463162929455062143196745679200274553715789495499276151322969509077208784075516890912455651339836666868198925193522345843958575207843960291024895982176791128432781356673315081894394577198222645165740672581586774671672910245199683677047846748983093283892751836406212052745070267212282227583171689921207365300055057043439734407469378311515424776332097256760919652764770713848118809716702750375745901861660460497351968739139285833071151105834618349727087001647967043180734536736300573949385688244228272662530913812867249738891135681254925216299739965453848811452749095132116311205583590197206013162253879171435379021251658087741061228174648683192182742213216392609061603968824122701006182290553936717071924469406766138499347693655358665237937910076194636416190075630069899622448926655803446073085055878957975431453863409920888087955049894091713966656454100356920256608765943142170609992144806478485499605725484143116962957203526653874897466374363629854029781131754174034270989602266924671970958842860585602953130419907309300525612131498853635316997942336806805004105080965518999021885294916114516114148541275635603796079471750186308391949213853116763723862454551154053838751304518117291117890081003903523546233703562894813922123224094372001705024032532114035761328758232497998142924746653834333384526966224048506033167254368294989461398608676617866488798855966504047426227964587413897655336511536810048371071032672120044584728940477536223298890256989212034357836116297487600051789582967008618954714892365196076697512743730957758913977973893266876416007416446740745217620323681660810319054076133700564024755188042358930010870312618011246575982486673958440405831287842073397108166431646163805700985814009243776589960714398414885283727179210618044551196486605590690605245768953744792568749891234196511146831475953292744706428089798209976326714627452377340698128175718010363123138443145761220925588255683980901523909909260878867167074088580444999222273058407901498951850486614764176775623579715277516992838303732252720893316418662767526596587260740716750412953354260879917121299084722365967025821070344104682972081443424378269733927703545559833139033312313253564639123676627026687203597299766840847821866201301266623458661553599959912315203095155765194249757322251815662642585450324577127525940545060876023334657129617982610655153532802150321129374829686896770653815454163356356954724507733086186650291532366727689228823375339389718674536722114815438221836894826136352698725480076988095884611795123843422446065925011904886202269454597767721269549078415636458154840124645470377465060151554345441581157120128335735442637312179005775739489795878001133287503792022223821826486872785349496344167037926091208305851089607674504498173660219021640964145277786041154553120832982045922950268605317085846583093299167066777310309927321204740102926497817508242447143687048196697025866137732940262766579968334465674824526012911456760084782497651434941572863254794816119289866465624974340716287684054818275936391514377824947251936500849367727432906259328446669425646031943623278160941066183337531892362521045193803822530215453455922326738894863999604394098860889563204151325131504964819287450509059267743056631508178431317852204990223777765728030081375532603791823140385412354806044245567076253116756794839366209986784699219858182323974653603848631456896898979524530411348249046347469867203270475099621262455890367321953782879459613212735925407611593672789034424448604098566501508469433288315458728923064225144547164881445183694471103079279116105353729892998585322591548197496026583195227001085137491245094755057883548958655986600115060619003072116480907625488199150995093707588116130882150453067240386295231723824673587624668155478855777852909176904539284565264630399252914304735546849631560245394021529933592113745218120154593082043769762665053871389429535657874487006542795987772516726461932223901060923463782198337916693848499369746550390642883337274002576058617472144227863218344748562905753574752681621606718370697781041270867563493461038956638461331255074128103338912536188995740510797148820316096273753214286832333652674674772842389300857424070238837693664213905964316976316655666048198487023833079284806558650876096695476077624017782909814771556504510552599067835742622000846349035136717501391568332920707429497839310914730959545900697307472831060742130863760504980005183677355186704657314976336865849361867102276946221175468163004783603316133930256248720363690892881467641834344086899048552275084737717252068030863090991363714443720165154770166390812128805624585500628305159520188000217686752711581948740220012756897043594693524593555983013056105624025919723647671414260790320068583433739057585356156306882028540104874636383523029720652195560231284248683908264035876283136853324769916601767039398181932577357132397212362303634758097012619156482693776430980549707077335638730461910020434734807816101469588512629866548090112950551342964658419407831349194110066250794663227679848927444776132172648882142345071697557507484265978461569083432503964685219711878926813810784236105224671967135257087238411916330699993957860713024694181977959428213351075610570550811166065084233221415774801954600179497386204808045493871633173495943456464539369963739686468877146772323150463053688419257260448095677819323058375346266544953616562622052979154707338743927390305682059626471686630945484876029770060835759743296663300994477587627497910146925965146897751391704978962337375966756348707132511986292424366808074678762749014389565143537944963845332634021023861514574928302759835722201572054156821097628739863301350976630831177195983012058357713721690942300360729747392189518873310090875938144468350603433193656452775908348209016449694645995464832923641810050892229426902253166495583330901008984587789477868896331361828153028556840941496049819567197164014560625579523686370702890143735862299160662227305300381130176743231073434152796335965919838081313943673100732010053800904860653548728648998890358966651065860269103289777116573297962141945175744485432314317314873294821940122603279194501515908382175160596700491912247913367615503484212779169576941533195763572467814130576801460742609310584265473358747341345515075151649888795846753413099338567475676531800240187839504965495734502394016969658413764475026651828256165137532196593248194196765600038551118158221877317290229985319755682653398263594711663572548843395710295353863859676333014395664135019186707052509925900469935692733372052990106737427058779433596978895483521830408266703238587588428715934844180586972024894149929057283880267484320483041777194399629188356964190276863067890417853107504819587714874079917408181934293274613188413039016764002756292456416742642458071482335913154733297970411086497951956596969844243542151871062673010184131085765196921379864820045090172285188696069210299003115178217880028312135545259741821444705582756399465297290981944700655334907028374242756390157099752408854759576920743041275958667868280845285789102273685516133044909145406032100504794618183649886820150210403813976656612585732789605663420713618669675323548375635864891868634896394578059426543647806207827098346431219175645564001216814029322612788293344554749401432335840033727064832422771523088275354500494034775467533522676273789003199200880546279158111310565612249982719049180052078871437931935215247306189895962109670266285946495685263539703028198111263506771367906034702074561177294437238838647211204772878258861232344954322053306057757646043902060214215933629912671709952180810851502131183362048764172515329016119292461953218770300903040706126931422732980085665240153546526078376929049571801619024043331630623884458821603772658304649832683518623173449245269843512614134306878253926806032846654483214715148483023393950610515062294637203239673063442178134628925433697389460429823660284677274104774721143726532136752561862967088447003058063760583511220870094563611414620038709963241528187413305204839326137669906544109430999287792389615527949983948079165041855835672721153175521684853283730975280380008186394800719192524357152906745843801496289066553109965954419355833398653135352447679720794386991903454147511368713639907104470080987249376255844255818293973141899677743085272216526451925225224706078000948714718122641298874388970029244116352163106247573712151237337823922528862503272156831480819897244849324301516058414793657247992965032170622472795495217497672114795185738301605977766652034841362753088584007102304178398032924017123802742331920270899716305615658849085634548648565470974837323255517790971822335510822398593787921242872416755838292516244114271359326737428662276197491229165805851822875637083790243093138396329626342639041627839261545091795864783049048916590078614762808952515348785617852672830040773537497224687480915140102248213778458469681727236451328049242068311573512795504435267059354769482788599819990682029712981204794425502865463441366096815609395823979430453222225535761917987667703563806360158226099872793979424490448440849986168369256311587175926419019287855835730540182144430146178338300604756217205838141554747223938216771537167291052576410987368498938495841647816141503912176057588428805307749912333426455811555564782829136103565705426957781177410405855295528210362760423360998191486585293852863049740801378865857385072373435402128232199062319837724242842328491856843553038559763067897080882711892947335717646083638307825583065652426177237206672728705280247386396133459856544296916895124849899156797897479986051463807424384803200378815397566490881867703530147848413896882818655521292642652413040762648513947591497215332679778682957778658691293921809049855515517245800226888255157779464666020945435782751893291116732225012223212459617200659391411705753213820904849777319656863547926411511159859056687731993467577959773581271918371678371478943136898033921906455901267414140882200051939842839882029612048845290232675760288053797667338555750021560665959942655206194861164107389679470100184007443109389007250609119787852218197714909708763075933909672005045177551565071503314126526345898942958948289166067443497298569197592844231451090107653992109881064264543381833704058684530901583038473944960080657407580889196053538938556499335051662424018809452721192142235901788502013992260756320008087606767889993626533056708193436582783467832432740075658851566467167769223489552814028881803244429975627553143792794223211469616507298828107762858189814918649930376423312399708599366027661413023189767647751104927960858994810313947139464622797480840907078370620445962404907021078327614539361917726998554040713680178596064384554585638732307457886535689662230319782952304306829509105875122445241276683695278689075700308250061975746523369717221387260775193565424609923623131008568159272881405495924580877455308141240982266594152451380283736742162271566704276250064299245513129264128344990967959377294025748718733503378608738727003723217279727149666482708207352231871185838773914947926893895654143056943458067022411485109045666605632205939699699152237462583201229431257813711791797394458920178241324231038151601015444151866782401008878159725794893432937999640101360024512959199412560731121328811728695348482055086691540024166342937429024271391148874494063982885700853449415370573838348361879798073022943356204857030820259051275978858394868424990977279755270185953244417026340456740447432814332373909399505206334001290914240324894201675348511774078895041568627055330614215500255859626854230336388270088553643533382481416024456828647877177989079072750009857573555339574841731923672284814876398740569054583269032853971120146672497840861587687630477149208023318679983524008221747414651624076764647488835688114393964391102456322950525318182125017623474503025163917156907529030235025435142469810025317361072443305156674479826023768437684500291596428292124723370226411147546737262995132344597423561150191999026955584135817254633403417843329799263299965141712886760695307612320450960924911996807280932334875276530587960944738809836182398220864598099434488769802670416817795879955330615572969835331806574357235544566036702248872112246973578188132164248356721746152273037427230051831855335369694922728349663588484647203210793575108174615212716426107946323647566809408198461550545501353237098112567194752463309605480673009002447304786672801705902587079951745902195784197078998107044875688737570296884924938954594451295444295225730753571170052948110277733553883765770692864826342817474348261867852198215579148685223312261808531699143798282559355984617487589771653337942291855587753191793839821920748347827667372779525160919957964420481300504964449283079456578291419276330167076507486085078344495552910557404327568803094092008180609788274248803242176803358639116656322402481672591866576384123099232883043824206417324287064566441754238116979676478350027614763113698811948832917613389041252275682796061672237805981932013887635458159198878006784902168632826639094966173801363180191393365441975806929813368145658634184068766319903095424323269019610739870500205137897505711678937299542449851052456213889947523250852443399105640328492829352777028476379149263437845823514249736348931362289089929377635476352737045641552616656939955049215632863024617431754288674190838647034121273983614351233111942185757168719339311693321406379982274359352781612001108273826181964001829444797593878849134676133725501423986708045455866794786663820483335663382422553483333847957978383911434268399951446326236047974113762942520572327532189449516783007062710234144716645993971024511964952709206901693415808463440574422526055406240768951284808528729235122223434772731617656783402822430090574090409362010186134113890156953497847144483666967931192104815408261057629919970353341369222491181431193518469406096105169544459163195722613451260664680210417395529997466470858109170130327380574743597338860478621596399354897721339466437656315566315728843219674442888996528514117067299829986011743625781924896973508920586645175441266036624739667416048088343467431991858281391812813943082437661973021467844999903885595495656477710284891007181954511591161520774566861702693164443534543415549910259424607160139901819864987857319772971282744373722606808703906811499568244097457717058197011934448656749988304507853280820217297294215250629330491867359064447279879939467104947755364019640959953965297187136423559983893965038995069874261001634029097594123764492231383310726211834238324512059429049968827389726182424981759241870179603580563514003561121570840196504102839462232287840561582176633763807536284711912179681400490116302947018758448284427115651758663037738395435864671112808713343919761424956293367812046778657095300096268525233270196859478319014923730131747396916149118443469819766436111535462532568911408188313518198869998283856593891966793600352834538759248063645292295985823570750550426821732901713544442747764619858254306870221215709651647444421642594164987121374564716292440451678052556941798071379905542103264860283064326514904367155647553370294806853962764813605454892018870216020482147844047403704285787063937004409336118153776150553978251747352824671550443045589045007572589526403616729443243740638472584259705058558574158877710609914436802349136316210299377974740198867702549178783761381931244954977859011784639375715676449770342539520102663230036328146964693432335357788310754037427313243040689552297756788988691207571910439014224129686440818802093683410400141610927061435396921958070004657566187089176217355550526261758512993966948606334167656873033153458212035769856719906498404087271885057633496146456648731661463051168388610477286089910836422277184708342733502424098871520986837452078780847454026412155283337184915046589446389669633042025023742412773234015912822816083757204713584251706325657767903521707962437691189861437920230309510586652078751486068314916412662329431536612929100400629590655475087376716263771803226784471539933381526565983131743011555378470700189376814244802876199648998510823984414961857339369956458398090626880588718027139687859000213133899737914184897322585168305225293256644686319600983586381685196278290899576092849809745479011686132785692071534914296154316737802613974348783646025274410074556105159501717574598199853271162672814320970279265873688811623908414540677474002262129063735353945905980954123695352221562776415019966166669952280603987770639720882346799521240484554603009601263226921321867497911347084141823195312978406289962452796490292800100279699946371762032215917940980139070352619935304965080161226525674650446760754304181317609344938951693281125595875969878307572067444039742486563577936889077473695468462117625454545671164852374241137513049638608328645656671356731741165234010164715287146279755504276839603945601475514017821687925161662061112391603785118951550011486917050888776565154692495541909374644506418951575218814383927786608025658258462834881872734602884398229900056321148952395024558000781466006618145967828286406365510704254363686913479905200214685858134155309709145618292186625524380782455952876084351989879726966410548202062727369595645351153908230474215975742112377904062211388361116306521144885297345734271184965419440271720864234843043096255235512424343982162927114174208779192078714333513114308107595304037992993968692469153768314395817814714012763344446557349058630805746609580895218116418569931342701964136048360501617536163907419093398099750634064511346503784258458946542303027751252080286730329671965659529160652936281163122042746041838419875168869443091187576003813005936410180711063952795180918202756081631684070291247361109794492030642955533028322731456914112896898471898830195083826876836300726426592704776957322649367213133435065663354706052642674699103815966313415079942073614380815995393429110428216676022892771392454045557079700856462061327481023707071838348521443383942092561032638660163609162796417700932927167625327528611216817991281076507329550439534379323622742394070266025422797725073803337282560086803447721756051884810905113751341355624481189827808406969011547572589336217625945793215771391021053579096283601635725095776746834332781063872184455402407749258208574067963503635148963932237678354121750290052648737915224240661585867223805738165156396893583894242893632875750494051708416456177688231960074169787751703230288010798132100806750172866779471800981613518481796375497739332869266619589619176766197581855416799530543822642417468634128768161980320290517745687482982650896017310240805422590999697309746149092728465767919676591096589462427943176835647838439138495706885063849688831272394395993122565681074196149718938284552779018449174076807094883337546398384733494006112643295047382690149552676227586398898204422363665943261753860103020451975114843275066601325243022837954027191554441490911249872660089100019619476578795514632974879633588920511061193955888594440530749357847204963069671269358864397140165633419009486138857908791217292886601607822731713183747740790769095442172725987271235067252468474725911713554734467003505073894732591131767904236457676623760763261137168828518667853512818257958852412670690745714917984369723746504993074260263033581267135021174676358246424730411353427419853321144077638452862574751005909554136322771060770003011612943044819276170842000096442742335537499787986157912100249419124991610129544717854644043063694711482411678904743007925573436803742220864017146634722120003405132802969396174246131228135929069254641035365347866848734426023286912815722609128076580555828239886502694619691768522205262742999522862904369452969289820907002150219326956118086664648907039193266437443253649549235931941955258492442020739323772701712279126868130816206861829210033797054172316995896717312769197142941425249423511381413697916243634725832142742923762795027931228336019840543869539306723627105065285166565996135044674080324849652754888362873918542091423768526149886776785855989561395041905459318299948849431834078330308018294349900370514070494215447510921459049446181908321747698570967142020032044767545757025882360123716819177584751031685878281430423781545556906194427970744786974879374423982282886761643777353811469611134502446695680006191080202714710190901976876150390291395582167104383702752380051252206097002533124605972939042329654227520949565307839568205668817329387441771726839829463503013616503100932246315397920508686287023433545154628703515230982201746978982015360229304154620607464307380718911765593957361521442939156638925839482998181429700612650755271600154677354934905266241088973456399764595256938070369935122882237780753970291205646704138020635586475206354546935475482632241782541702846853127717923265592634202431138802769619963131176075890228776199123003357304304117489833619278346364217671115552738585129146660832969094705633113296225142516580716429947451375402889671536874746149177442388802567937653147795054982546045635787545945220801094092278173057945556046556774032902010450575770887712103354661807025630973282776206372375898813188132707005994192197671585081657734448254094992314564902083366758106399484674234489155337285870410800121189439060084865575511082881892857151626406310633253999801878477453134369694842865761900460573638191215352215554597544188908803278081654120827296392438541468591850383799689195239538762027025330307619498735096143497708417896421960466208440500934764548542512755993498230661844745251683508319893814014854034520654274325967220211293979549878051346971286318162795886629151664168539428552681301446015543898236210883571043941689401039590293686066829874929392335999792040377727343043065972380131285730548199372209652653479861968421123146296879726983249597431424825885549744562653976549928904213660321984044319458895694862731060831130908923987692810111075228108917534503441090358960984532701532016186280770326918334617095863380422107535289002520464939005820107994245364682205440309068350490240649125428673474642340382701271154645202133881430433054543313730626221070688796688394447922260540482191446871081938477569668982979640872285784819080790795583948233868474648493921243597538080283532899838121845248380696224801770259608944567108117317304108604490957637957642195855838210991014799331147233275533672799743593362068729094382825441688937300697164619370844542478138466484984809000884254751395986254648392618683244919097112569861998014588395848412309630623232808441948172057396303595679099105694847123732148174928214548136605915248486792955639312260187343758788000216241066852863509015594081965686006505829392901596818697514843958738119296552160332679931108066942127382604941315022225453320491350300422057142670396121229630787476450081764121080015385135651642820101045634489796651290250222576947856346748363557545044524519479272300064875463099641193537938960312691769643984912591255859377990563669820061252352531846978071732161646884448234016155033469615095319352524811387812111308045892858925675358416146747004955531087478827267969749396189304870967938804705085491617517208010954369808274363212693654696514291867622807888569152352548206915072503824291433861278858924784450721076155304774267555484758250743716422551622731825397743927265516400065445617761225381777967183783112004804625180553424837230977510749819350990239263576940412926397176693333767281704717459528340611453783939584091715209233206823111888467283949705770110432701522864208058282505422539854126152826833011131550852618341843491645389164576284667818990959731834343657566912702454626283651504513422362202726883062061253677522925155991563743731266399572515963350618554558387978420724895971024176321900440492299515376408580996529543161563883562486139052853681307181549574546098337715064022246176152563239771934649101172570217654542140003176876472291489749491749907861972527342401247584999413708784320104935668172769104209524296361948570274860340464211050913598841453775549311234381673727462468216908273395603583560816048447280580497019579471028104047539038234110133976873585561412334485001935066981281026439599605489326732219953779070119882612394240188780986908505034868318003980585455801283522445694646991087563658666725937901494746547726253227690863688792750786246658001993277979225793805626898909291736696785416711114404740413289511676902625816891914220271396517019305221122499651540657111897655931181182179387697778137443501519815120032528807214825337738212278766686221299918024145393559351369645866436903234613825292383130536291791967833417595543663654207450281626202158422282051967814938118187487184087901228667599235663719854284417882422661294650468822826530705564488126491912518567995564477967295649683807166156625696761846184720556856983799400908371657565860443147640694110170890619624095887024453074584943547554016710887572438479287601387860725015231986383228074678386626111104730928352570509456638730947542667203801355559747971051230480315748104009019589965564661339346333169092861081015682782457572311041376361801726396411950452625595295263234762888418941966924662364554132369174268753952451143502626650787153373853241434344343317075819498032615802284614357110404423518930838567865599992722885295110310156754450894547893577457587201411038846453470317638866499449012864375724027811049355502621653241342912730566145139166083780180275509798114890004126692979566492968962350856577382735937295791184456958693940547050280083553053565750930969980073404746836427429900979441974922511977447816408380746773739548569600947327278954207466358447623736180036525546343327912786223587556817099181112949963832454659709615339019056781146484834116248196918669019923054131717312059483674139651851588628878305005881395904847823628342793064579320398540542120568085405876797119487596797257881098103592375206410671820998016602168766014373425131103190323205435587190241859370963609529989546612600873965030233546058144289817447761243582353423469238837295165192195218030022293482442164331619646627857058817814688365969073459784774825981085392825034223972085544246703162888824478935147147873766405865737255268847905888408430560550517910286998071698110374445470942149403075775387569326381889905739416243418000604350918811977309945161724367737336729146729563250553197760931976107455065610235542342862308006026190152637802797594255920610242466824212200578896187559316195747285297067899772795470791694969062711000791168331745543292503299950327489244735822076983947806763233178745845759674456147123273491100252912510574310356083676959652003218250288029655322540331487509813357637201334907472400164312649098557655493279457420216940100964940866104088094569792985832616856655709939190589058788336209667505889811623161359069070368133891708354278622432588524207069692336249060902799598576634354964011238936476016929234084872782986812604966558154214382294617734350712875269922715256159921928532831975962390242268195462248990964952525936492931380152119036442049580849413154160893934144952801626167624635346494855022646278220670825539382853239560469862933772018332730053125371022524325419024070393017476729004947700710564431566978670282057741567292072176239003803268339502375732405044004537272388162428685510181196130650389866287596097280863656508837929325642068996748434870768044768223761925390270807847209902558349634677438895813699819694799381439043531942290562269903806205984561520266260915048194647742457574552014763107434221520255517674382668474142655051339386571560537799355461012509142743676870590934024963509212577611676672348207935965423788263520917187984361000378353744955111819978795271534607425065810305788268022199325479286978775935600594474976149435925509686673421680442278772380256294511451988754701625002108368712941246778717355178527879564950957310704210317589252619039414406485311332607973399353489695022759224193239663956105097086582460696716409521258679816037045232196449130665018849424866129505329203884211546189423435113689549246014860587141432112614693308176281609373798506954838477744366114115199676837603613048874375878949954459222185261603980891766249930384039392716603209452908109173549130960274886897734820298970536242340126813992491008823310281171764399410585933524264849840015744712341288378153814550094583619832001572472791256898315061494770201781306275897402039552073856814917081453852766290458825095805361288990955864616997587751682421652795185925660387531374432037761247914043680020734965359328103420032617665839612311076815282651539895088690457961868411047783504963031414192853155477960812541140951894435870429653575104499211448371308520533616880197443583512112638725364471040734574699159379215300862274272345845353379749432638827937797131660022050389090313731084315964728292920237451833655116403143967951609791533340102553980675293593922482913691663683732949385546091111899018110383174785209054413554907223428347746256506073217425612288509432905850904684275291090188766738614414281562849918451290293466464091336967955868805479119420967130545858689564809328349798599792081529399380614295268645395844973745210331996600195661297886585251065006849069840021296728687697524845183044967959604890398721841125423768330798557292952552131722714776329385870281461694304586204970934156703591016889714088533292132051078946792127892945045623926898866850974790561621952727775348021771664157416860965571597038845064013757926147133114917280076793844559592403655006112935144128506005863477273950335793724461359175299610668527436455774166404989815679456707411655706985676537734385742775316454551511043890241935685715220409818048555824462656774397888323386516295493684680032794568074063001937360036165177614204194621755689447105933522864067810034099310711303455718984764562182847670085190581097896621817059026727592606115232616206752615346892282098190155790517162827739335029701560044708891601428884802765529030183732540683127085299578642780311573034793380706151016832778803616730437793791958861102936501696424427694831424286535428248318401200905888439720634947397285297849441326456050265776153095916404577831698632536839410339191481824512626183702108301005187376055417748498670632863654848058576386767283183616324611005411162276468114061948403134438679060437944263936535609021272439986437094292980435921187334692096901315408860658684431515625038502103407696065156459488715231607917572632126125433359404107335897856158271922083241285586124911758560564447884818949608201866696828335572831890860493967516104141161536420248393234414412518933978721393774020945341789875398384647257547812866395814080245224581673084134355025278182389021181556958224280545286249076051015086834640895871329953839116745008359644497845603721952371895653256881035612910011377386224790880328963957236133312061095398232566528255385580720463704067899203679469658175796697157385630217736524569434928707432287961030886647352047421166159533398018921131615051427579072581078270981600223990215910512076804014595967930800034425769360475959504673835333531247381639304084940983241162015931847680643331977685338964617714954724503343832503584347868378153846603180456603912149526562345456535326393797448666049362606096565377805593720324898920721451534186337180898284864724623293907378284704181022093798118511776941832754941236665017615195675944332852667749356996970678304884649779450034466091308881087964310843451816917763985070622555410616249090892379373464501515050060373504423838061234324835661294713806328981597946744818931489547124658495936138058343662820031984262348771285005439383940366655837054492703698250650627034748186619401167758523240186419474521378858117900989377394077130202107512003813732852789454724480468487820873854892786927814285600439929558060771001250697757362950897302455686291708546368379697058240591744799695664855665173686972374532513985329418169177744714505767563314797142622349652888825467819649733640289383756235109039104476207213466536442701570841167026959698093378760693298560725167044429422564214783178348733477519252087123234868360950088253358791318838028069758681380861688624644230291013154240952152784013205409108217695773788512747417922332240395074931451749659898366814987575608018384048008553884477925620562934330925569244602087206223988521355184785903714551998715391454638139453428370972569585997363883496378949846286459320021021064861633921836609386508638973940178738872294863804280829801654609496645232159960712647387619547654213666626790209914024841421693575433736155469610239341847848085519956702839863556590573357739323588763162728766591816134844810874312729907274946783159007661980512883059827295297294663257800410254202312039600326329445589862207790841900146269922411144506921305590895264793068213624483953696576855352735748797375679703489778804061344781246522482508412029244225009872697674110891462619791209234278454145418887659022849225841411729170215440408074727716099395224732540253255792395730208599287836793179866251630067815758802166059745545074347034496866987209274915913075901282623262735902905510846286576558600699941096584300392976699378282816987518020938151670581563491160201807319127676816442937990992516224771216089762898081964257467398736872736938793428587644065490373429986925569606732573699268792825854059267858120852990519972052549947834547800199533177602745807903742238358756256884289990062363117752536933778386943114330942686028179820851614552934507969409616098900937069350091817363349625095153230483355272228100595438564658649377590767249117059392532848606036748979465133721526618163467283802502061642519976931149000326359465113340426518836303122358571628791277686685091149181752334950070648085182132523387876805100160920936811545363691207737430180791653293695767055578776476047341696275114550535392252100318379242413238179088521094853319997563327916657528535841820734404775041062569505962527727954504263175858543491409460006474778153557441674753114214282253816260801853723804442638401150753512504808803781601636247598058531822041025942489251472619561298481773793789370654056019286522881744772537515818702463869763267968736744181306611073820926553555884944412016890424143996020266601129021412465351921220378386255881908629017512533067083160885004429197372318761672990395668539180892348930474367093379299668227209009772710763825013743390286559662745635882379579419057122711733579673923352238899365759493259638275617295407736237145064304344143763557232829802110217440773013408966114402656654167785728068324435316072312780530647609951649276402769988934113802209551580155120770981204528527309221240817491143516942540606301705457886311960429360727718686556077239384053931729139795320488498751613030123535952839616733634792561214606421212122659468715910300785637605719545008687948963238509015009408365601352914832824086012146025082764374898832999630427596494507185709248268058793538083307209454916337057722552212687519072197964841537012944153175864409195194565696180332582641912352475180963829415358297971514570777040851816956237382577332016790712175035685357680529296343432673686457715408427984251764658523645309735737998018437209129661768821391655211848776463605907752069902707084156369608904374208839675949554100647792539854951606589094853514058959690431716727759319292029443835155884620953563318487086705871557592330187408168014525520816738807954962462748418035547618240994961877053424202932932457650775466949277840329488962747608155540217467218744122813550677569331952437778701945238593741039307428618687502077414576164737456254715647555900147468220536585375208736370172786677645885703496753225375854785971030323326129856755385197422670185339285476068773956882321091242613520617476825651449117914073163763658194982454466727446390099240387143669876841260798641034738345127746090777956005860030143703535959237733534146949061578711781288549978469257522031513715330581286378188314798423980185744781212144977065296771488226534650437532873174223928040337650741141743566641288520446061531002640611600582518045913928307576112945574018034969541616943196905108908280841736736773539904733795767000049437171674794098827328637163072978992241230490221494408965997058748267930225439416616905569761108744921024564010399780681888221665094200424887167635684403058536903694907246693077961996631856509377006463724559759389420971392253216664146920356527867613829334801717345968915725332375620830977655448580196329051084645194609027196137507164874332000249144434407553543089807226316587395414491082483412892895558586121629591569713342657391048526870311898155217315403214636275164273312298204508516555291110389399947814879229299975221118580407526269015461526965484004031248660622425301329086528200590770775927254241688425991990994201151815178110648896186150419997806962358040115733348405823791803372849374841322525265938698228267832178482612981187648467917237158470803347809738424440432932367156545832986612712796629037323617672079687570110810088478171437345952731793033285561551576644259698206879229605607489715606802729041971259620226663587742919918243481743132669490023436590139218282820105603117659493456816042395869675975421538590792367257298576380328530746918881068073368468809506603337411436609699434733006721108065599852103816180559069727725278728249464241745252303479786512569239055771916880311115063344185067390153018505430730097160115184542384695737352266326196469213879350140408948932775311283064053510042364467787978053648724423804849620240719795298254868139240889064462992064884294952662552095274977572718677026797564850248325974995538138590419128244628117340267380641415075477613213143394976016937149509243588120782862262926662975857089722828951072833957371415131942640663633220257525687170953506670923005268287139312146249170366070100177025989393613728396947219025806292982097011590657637259183017496592467409495922005860176093156701832780325966230132300756499786651597064131462335791762100637429446685757130979768075809392623375215720198009506690158934528587878699125526085140536771129714651046229209758121870896319823569020207998000380639276706906149279623399379470049042704298076535552458483020143108810939890335118471124325576386872570072921909596880637047955080963666957394859742966145253260452858531707003865459449466469363891398614196586798283647193854295100489028106789225097483026781833704779981648263375188567912736899630127253527702278657787204138876565307260385633220394750849284861838509646915730098047997805035528828038467879611908922261413231240914809271281392859138141825026094943367898967687188065971962310709213449181394823903471389000564470995694832948626691531807985961840524365598095901488458519756648626054155615244385458334685776367074425280735887841688907385726941767067765445462246860730514499244853337831920733611912344887404508289368635085340245018616963624512802348465192969072533127349749307943897872529870704920330124786553341241000032537484470267006809006672199401863244703092391831100992477940533848158873647213587828896117631028994999789212974680853648086035780677953053939332818045730772225251275821863550804675099970556662050896169650886041379261747581831759439262836461001543965146144724538279304927002711114811148216170392409833347381242762550035604385411364995773979668639310081850085421699346953613092629938595681587243141051908612312734862339855685831936231330002185360553299095243814938040497157807426114323449885794993403177734373484091183090848780072323883038955164193963567521072579270428117218505689015866112423454867819213700686276441359181938457110078484296696458481177880750311508322948681715692598875651405097537998263738880066946295386566480104515187244079393893465156486577550936865510614399097213917624413467933956776804083889360857699132037705366884156287785053542711700722665208265260439283288650695910043221850116638357633446797363400687270300829574411816784211074537247179630190418668710135330285769893410488502920653119929691935283662503970502407292998865521594735892875200263492670557414364716483208395992070035700097549257376597836330784571879817345400161719577567397655793505080474298750495039076600301672387628891260105427017034163033887855970166293304355845833835946577080877149862197334872334004485927677669594303238982502146621440671718501586541103726776809279343642373168022449052088697558023480931122531073594939360235415426072683745261427640363043347110855698258794818141051653794844187038765232242277552541748715432567620144075989809490420520016019402887454327603472080328351955131669575483268455120351748142562052297311462234385117520988675391623756462747946107599291680646977842841837793747347371265226679751580497639145090705792391221441397658614973739847056857260847703432040772625146697934490573540696884412688111123370589087278259600500126882024276647755171221264322219133905574747879297355751844659176522688211204607988702364891926548461607965897867777944249324940640083720857354830733711290593611290937429534333321975990713901789195791179484983125456208488012038071427542248912956678954887351637826429785725292672479541964079250406961214405471473894027708827826313304905786938498321888626445245157897416599749623118691581444790103802539033668675406223286625824488535171391218314692758603471180442536948381558609427703201957103655501957591714274931147196427751200103742823514063405604868936660706026109566228176308939655587591322119164168334875039381431418433819045334528179759934447825505799127904845606034601103480637161694101729414238784241835939561644146820077497063220904878354269876104784376086955625567191141802847095990412271271314169414113746295213161129155861185670471530860334494115861465007653887516774898386221079760101472127222512116682657439176180115876233016695935013551007632646062389495894151526784313134473435604214722990379382322674336418787692137461795052240612539577913510590365568903370669647771137258614579558031336742798823299471296997011372837260058664135385037657268865024093592610158841849146016322091502381110037250915671276082108139483827199789849884798823489760520182043264579424127716156112154290688869864175893988470032073079185138855100762652331847510076950894620770293750871129738299264921767289595579301857001655237649953756080192455536722027912795818977978331648839574594639697888466162047548715535458751206152682759915581940658060468626900339338656772446604645063650666930550371356280026014037769444190418448994146429411519772938266166202457351878705054116991207500049390786678387449337699772908833863294571636445776647255811452896008853606942841852975748977078446022525310254660422446494077223404633400997906173260496589144884902604491974035945652808108211087939074904901913501865845443123912086944711188213210859677927103247739802831217249622033250677634602356384928927517189333101866598005289548459102186645926691859026894647995691137976200923137753365858480033068692961498571352405503721269488675019174386356589976179330110654152052994219463099605806896466856967346791901535136220315002981819665827961314365870617019052026921861420077333388472189876234085358031765731138522254653454943428790771854548541270426832233842686177498128716395712187465035216670277998745306808634149432328618467472361815973286699783527416503128233157577998014283429977179206474240583352847767984954715864890995463058448310128089587286924494885734872216280887420331871698139589814000513568137979165135837108186104987475122161497780431058241570291851350209557600919206079726204122102472376642332228036021989553363925042639930161966753946856756519292427442699050918133383703958420143099607905828337539074325310924730006539872191857076974697377675806987443417090337991842318058129947926009544214891311252206837901883957118351604076027255223314703551646565837138268647658041988612768715985542497443425931806107493064917178193696986059838279422218086107321426139503494050044566002669549555896616478162690855241812981176615709682709259773035687392639064170257139505290695899267229588013382235137768362550451705305096295016966141969900775399029599099691438407390789013604403838404646357941016933073210155937419340446782494305195542363717187344238164554278745636471094232854315256792084348001085328013306636012763652455055118697535816786089494291062815235279768363992704948669904445235661190900862994737945050452805692061409839382926119031632230432181971740738880904917736208209058196234814112214742944697484988280188066389185194994934089322593404087394099741730142157382543339483661854712418696674309674183672157765573803214378279276543913658181024589579957753612124989356258283026429169902694132257221550078287649694367499609823562377914502057022795058976045290218225830374106167563192201597153827280519499721955028506205988875389546411408104757323531871341088876340426250627520677126245798655170809346872272085990402825196867400260828653443555334649536095552895476853273520632639217519563665395762242990005045087088112386457240061936478259686231010834556841722517837279030172499681198924328851332594618890884389758902433661140642870092912580494246178363386579819345293005327933945037182184122577305413045378469625372498641735450795384244455646586103025249758538802862110784277708623778204182030603847972714069946495448994793502931505456277110561453019169129290040419059231280262264743667057851594388368955305152280118001673938381098194164954038020406797463460675007449451070052477558530620806957418068727844721097538638976288333601675763969965652172065808784890108241221544631941326911612664619755720670712396367862403722987588982597272957462085709125267516655958804823383694998935023515725812285059532957859661460283344251905502969108454966008034235809217513396508936813155547244531180526159175041334148876211716031606149096171542120488263582970981515568242487019176829643934331747003394409753448852465751268948536579211052313685994363001353147078994227197028807393849893909564951390193393234924992779501382412585988479413213906575286539538614865825377135834367426904633359027927225233840130611690961492218803817783120891590029439182153251012665500572532292036938702553634091264392337505149768912917698008736115830264733032617818044640601385369077857994783098979046503364802248217783545728356748004476262151951295080052013349025240659040811812505771315031845096032087048699221862037051816101457187049501836032216793986115576171807387470757547654948240754536113877457171804656424179929763632388938675993052972653404836541859154343632543139625829060219807512127658891427084701997749171258177466119712337767093714814231501124585371400314290996697170838267353498394244046906095480918171071487785800268119249217884542973183413753908897387122857417198335260489775912255470391182775970644171981395690654405071479373049165134455312663940418316851216753748773212117295895592446091315100802124522751384343620242110879165822098664183998319427764732863738966613321708935929886987564739252911687457988308793116036011905560287680271595398704929004560291656079466258483007493264706973180963455354347126408964921901083995835277901739243559331867112123095573116098700564152077045121348006483981030241998151871830893318392727977918203232987234581621334222833174600207529358467197355070965945566463650617795583010609524410061678111483396508425763319158991219786939238619114473143631108991199425181798975597754532642866241533738507781773375909380461972434563149311244910302635295870129408268913889539925059909182886785660278267493706824031013242237856902471104335307448008640380833467414155749530334169691295944650057407351361477679303684312229731269612919420313720237824037345082577458392683288831818965883239109121708217909591173868790146319500061280641565247942955193441835247753339247362413859675780029726742282921816800004764622370683139702411177110455547310782310241745386624322782573964385076045817575199863087569422298832983503078609883148389017034909914503156798422835661280684090663471453828769626530399830863332732626056636096278839706518738720513122877499844641684409746127587292827472883279759838766069704537689184023817480359863897344663558660022947169865241443727793492573646902386957551330058733968436049003220676469695300040028623073040786369452499040940302027797541579415086363804795209756292020693539890401243535875599324724710329162795655922788807143927473491958694451800356569151585285911931023315018248310221519380566183157231914658705224545090821040940231592638849961364995453152126421724908258772859383823699731954433522972505099280279323869038223148733731001740761576061190909080697853473860516303260559452670723729732062884943572142658558169892441434651992443252044822533570942714672464948571798181836301839276968506384689672626910373952350520635586678937944894498833180081951374417767416660291113724220976842469687993117179698080936078566966038770522303360123147883554119067657530275637621563947665767526966290297011632748962093412033278826175296405397016503372269883658224801490374529041027783766286835983547626905188976829988521388743797667841475546431633117464369154164605080625503423269223860746237381888120396040520581784417937433493377518492277731423176238206102953279186889286069271991291338219072812526990721435769644243011194352738011407070844103167723242627930098448221534052818761371051857710995643350671073698703931063563653712592208182904499723991055354947946268111774077011920463848061098619040252873280805975626360800346466689790243321571714261963834977616143078119178749335574875203046248159428676376677035861475585852077045131439916626555110538313205658606508154834365916746339212532368689144026909414534625677858070522031191063287293092991158046378863885301874018511172516858682336946720545711455622495100737968303385815311414332283506937457593805899739506572000739317689726695445598091859930490473599229483098186271092993430393060984915580575818622449210965191729244860573692089047581570893964282785183014454847574302861764476354630776921377336173541194477956015477874816524220858620177850647322167789945819260930971008700406062020672239550891881709231467207810705641475251590909260660262664395808425069318433483748634387361166914968403855032882982529148716836998921334873077591779844756218108228912468066402927684067163227499147410424567625296771885494004848530002435234689851943726175657892921620546017034079048783975547378192595629674483491989535605735426905510344984315707172839256175160857399874706896521019480654788975345227680237565641966864565367254936783146173980838400475525488187098010664437319101836760312992418747713337520976520945991656335225451462967663256431509297042054549293366881995183664263349713037376919068240339871775909865282554215930602357101199022684808794539025113852901005845047767991153255284388306800729918991428035524157158177441707073070423026184320542803969393412772915581015285136807131704379787880208020834220914394005125277418522321192331126117777443846305543480798174000890506340626068144240337681728682420477776793611565541085209338165550688429485205871186988979390673150953267833408731842301035357551207241531301803288032663659157222758817666264051038172988273553027312770496697478853279016530925524884991356725365811195647274224145207427233850201335785717444184738821337994364462875499839792551457086084715395423903199851949344803745499332879393769019406906714913710765793398081402804878095855637312486983503234398048795913571513985004296762146654097441754877473681594741130274842442618480112653844272858140322716077690984095015649967069033200250555118580584465495828327320851447820498173464983020732144171824048172699084827142995755129313087083070815573820937132263070598529587392133658906037112226405032787000377909603276141565264924484031381902862764339856778897746093184948343809450508861337382412147433623166533471463437224984095870364637814815877898565678281351085037523145986445921549439071970033343327265717881085771371412117620686275920676486662143714738336426520940876444667436009082284668264479689882197644906647955306157479913928500538931728365204059076324294953601092783702552395768194603618985660837566372023898066109660189648154752241527907711099741451658697760719397843167733343475016153234631572583485746169045288765946724916163434096173430205864713765316835775796538805116559518476462418528275634766877852557185933064543518659381212953129050930845077078853541181795045670919316058155868121058414209089781876481099084999184472771870413349410131452486585697454363165927140729946860522258443822654050578685290611131880146726362068384746918858322030050414810642888485837425377253889966168843462381497406236454676717211524850032328588672945179507641918009292786129080992172779562142750302661250528644802308732911682215267379510515411215429368671575159159033167174229700158859449381641843912683455236945968652111557802879816558384421922708996136898510265375779970758885699118341141616523373773349684256295700893185513010732163277953848760726048583748396814876235081781516017995393268168197465082301692665246674584380426965266688124630724257389088052902326371548991647658422816801202416352773096285272726620492203124005289875027397576563628488189671759682084475523970851322684960535693313119894583924572078508425428417995219177714070226674620430594699440427604473049123831410247713253641580966892763132132924033785184628283643766200916041311657278461405893254727299086141026784210036496330696368790461779870855792597998595672116796454953928814074680099873812108021346095679130507532768608433996550070281750729279556875039150677420651586369759926676932305003647030224924607008680620761039596746027254935113198891560870018123706828483282452557666103643121652075955176378245108362561137144791785423833511592252450410051166908328106151217881903029253485121365070884091694978839579817612358162260778249688171933648348788986157011884109427035810541256276521256831851615848888374714767717959888340188030664132776456208286733420111146202415750685311906783261043673284303698108731268126987195034296404928700406288616912177672047362767496526494929707248295357985843991121444848325516964057497671826860314205199863323898557822797472665373977401779478985173460793039249491481958698728170623726763954424639251543346891073838739920337961892373526407135890020768127806871365441516385186824283572072371821224617716636199737334116110073922851700846783189999646844986030900910382654503820781832024665560621253230257266484724264967802575302356357944514586782015408016043366475924396847376056424148358586763355662908539099779514844544390992415761234189600552831156755614707921234657981012543439482813942389359607022429397105390650832576514996566086521534042072861183787141220207943769166359833511425891874230720121480253528473999200768474760790837691924433194809244816268710091714372663236405060791602697990756560917169848413447843783589008215608351304147921066890457039378342733056755289480329810995906359554382802378365922166033536400829914109672125879447871428645026965935511283306037365523741275274134579479035789984275544355779824720621753043265191417261036280888100774301360599854656368946640804208028076461493212259245048776159771841486877161620637940016859029294793514194959529577306590930407438401541335866002032131673818913591892695827958137277291837241202451437623016255428248234539410544097600620783524549360681870187320473865398440651005508519478544144756098411415406893734835049169004765561625978005781920687507188849270437906402771510407328139548709014244825414313677266962331661355043425515611702651705995549253060825049571081873662518838542999213375655929043166721990885476080710951834435420212144799711457750674380548692567967096661259169306142743354814909206825529410758700193252965929490964673811783893107608340271587495777331843114865466443967555204036582756524947488854112251764082727300265572014630098078803609545400459352691802035496067014952249566259794070478249462275733943673411539908120263763084390235359034080919943891712340082155790928389306197807177676060314001708991299649204583722159159978039702593795334553473777394372981410502528768453195842574650202783574928246655454075115060726931684993704348275377029460748098379997679588097050118534214894889127094648667976136927404013183833374158687578911387028237721285413404621786818925328599773022053752811873686347029617734900862708178426970432348265625377216937972193764025221407195736761140098091518058148982263228460930690586326388312634269408619901272558099672469217772099722102652112828871629445103190638252037664792747089010544618326949209805719476327546488980841240006453468022389856228222573353806260775383647129724998934032326709251218419297990889410017180788832246654031100301307761011552327311047914887416278166073733692657870751061200575341000159675369093140288080805971552927942432640481770553444357503616100151291019374847614958973007647729694077595352921620607608675668193583061362602535614595060204313691196873170317150915596173331401135836528579972448310804169723686263028316191144987324653714610547037490363730120533775198292110635410848715671816468003019879091581348513853727387353563978980952593387605009936356184046769561144686577326919146399238562445390979649438900256951269887305236420172252894098656215630271650686580070433469546759346379096396301887747447816956580748778859485345397144301946854130334156106859304244727053994864794997814342949642805195781829455646159997658069855526920661747547995344865498788942437928710856229462022017236880974384497585063445702442562378479608950408821901784889157637281571024025282016266756536396357040912813174190696785069734677947086069668856876891371097185301355446688945861739611340429825707366087803277680843917135935910943271280860085907545781493863782546322681644044247398074140785924487909179313514715360293704208356235869573409611478248978299662569652619623377550812610165061516214498843217342728752624711692214535403806523288169294124092878941007540211896323721481220413106104070560172667810336964804855729459160464666474195351342470781394290960886389884565682636585081941907814589528107718025555059846115533091885181112896408819199601557396484774325109413682153918337712819794332879023925499047608976999577735228154772435558187373612357640226689508988183026674211058032322584392777008006389282891490425467274050416260480925450089229089512174188576567144154292468856680337204025117315473061936582818955075851663865950524798821380253552058524253708863228885658348162956019145632400749065799003283402642325607156259819343945767107799846446546300362933288562871729064979793475577623063832465926609734338773785783606515560086482837012215472606582843565996267106877522753033937990511759504172082514186099454191027370608103295951901678279927128745917534474490718060114258009074915785066118861506140553499859776557756516704223837725459186703172651204542637607172847238094149387125866605455758447177268649475425768144274043293626609688644431740696387647214665486897965021418959603156929720751237742638700789542698998558870237700109331129077092993079899019995737828129804762003789114461628624862260115045854376941235912484703074937144504037387654558100275991630545089070599150883079206429612512081855199997390493074283048172762561768515790182389912830908086953769642237002461526400696837718519518884985510946994801460439939129944872578220620802315845913448130769694037240437414697208185688579586609927071428793349207142248475995957735022308383266258607982704011492951916452789026379111306319329873186942639972659763149532535414984292080960815675733778177049049052443733425420548402009772911214883872209210929113053845648560472367073617854026731198488475231063403224914384140202134499396547491175925944445923329066768432190451625529502029165006629627502731406921738908137614603168857125422683237212524173019554551485095096082313936919135348139220840128329490712686826124850249932268934632534905358933310224249865630503175040659571299430678615819183315004369580647272478864671691716892913011449904042189673627964375639796014117639082456735988688163940021848090530474001654321519308129558206825628491436715355425456792826146045403257292539856116908399404941510824051515497594529477110894295987710862756415780808613770970990967941578288361431429526566151279695916887431196545225755752797276527421339051225019385909508786828469922964066897597652550868840249146747026436645184656094964263358481179740811531385852071869382965307031745491704248788517511419748734933647151615549087791378174555244364726187114683985053500685365974916119164787585854716813634268155510387477761090929019214058056694144422958072794013816926023390920659102799814284970398520221845112744953412194470302119480425404062946963415831712149264267619145766815377053554973429986898505878798264956350630178228447080694036008523521959892902477725216791525549960665059207728186352568676304609190861120802679675754997195705125482521770629352639666189742405230409702380587435090530572033391407562500156830031849071511648130038853853770734750130633749975842256549237606979840517920660781519605426677620885630517065190495182832318164210963601602715876400631436766275917582350200455025067520765954920421906932891802906428221524093109385115947498366697571870421268488386293050598817600252084668217766663839594067382318336122035333548321982270451279442890566740753860375459367288065290600544727963594418428581473712215862423375936309724734625891828543925901639304299171018146893939829044532019426930640492213417648859822384587577887244301560620088992999595261508931156754119157535313418797830543615597782752996630023203792869576304576430312689480231818991464212461081102525911131783341002524730413497042224616773780460065715937338097714448164569540686534252086030926408686419827387531340833809907634648145554092690571518193333688611806496326312200354080361410104537706167906511288761235295882056954919897536119256525132562364423312865921892169603607976284083050416416771073305353287818248664715645518759921488476167683269266228119177700759866563119703850483394306413998975128469743456253819718578600229802343995170699456212575789576319535962091975771413526711197960508035290528385956112236720328935897471164361538266654172561594712152105318178425072644266008883067891853617436833782387583268421169197107726097285807344781059412147257816838043965621956347779744843397190203206893570887968649951620733138004163712636307956590405572097277451170655190257200710170607017583329789640568898213909621599200350463094601941074946181025120216337582808655939350050891942144047950885405407261444348654696762688497396183520930957984170268492149788417681237626825114121094730820002664923033631637814880866916213352286780805430530929371565728110072501273304698539426442789594962316655108547876010627005222518844283699483790160252693890966671579423536985469709715388560494174515503490366987097832265100518755126393894882810195003618966624698138123335152668268277174641212319793178079157239376404795979288426255837760640186003893449409597100523632004258264234397706866999298477914856918451837273918733856263365475780188885188458574519674503325667781598422249547999575994734081702211088149234688508408327107687420108254521153724880381228345595459321408545431863095632038932737652273272265671548904868842649271294688342090761218549018105504679262942229847323188323442479932149747346597009229871210740413641903382774736683447623589719613803285470080046638208473170812533073380319080497848827184005166907656729166111753350254074666125806536171269544262297887488206797637291192971787104467514487680144165814058579067349696976917281106998479087015595313024754203355526519191630679840893273848522210986305109099796952346168179831570868360845162695646827106356795433146082645133026035710793541871161150615166660352048257751362898604925180581893638896382489943310509029839162644190956129432264932452042322068289822036011067402836794817162898932014806869631244705695707240896684962313951248998808393363147983867882994665171646565435612888417415014282808891783220186853545553703029042302599006065726953460021091041665558682361174310087152867386957165979603127540729764069266680412683816899520339696167182396124155386920769319677112083414249787322326230886572270679127185365251925707098743439113644597810447333257931280333292730655046174514757536457611370960345552461011508610713106342651163457101320488633834250366706639735327146145003813005295922188687875421570974930320627631323979002915176501151440358903839393708621934061384119743430101616419523330067140706397807871894061483839054252394351289247297155013899970280246424736041235947313978412009748188801080111355339033777642962193749249182495172417223193395843602714993238220564870420873009656032532751655243125672509671463362767996182834287950982839623940255778978985003358814704308730062979251835174318005444999484672745302971160890384020371845359974866614922664876188652102362734720440488128140815657242456923613255285601750369668979267657932565468745905683918845924553330150613699567201311642795538834707113573008833700171826545704640089906233069065615649531796335483738652711279017207660419853535792659238343553265331983100226119273558339205402829865741062148178813762830387189466557222503928660892367732640835201907553034246453224794853173628619829847726015309346332256919395007970106543738058058645599707956582065274148808688691605215418526776604229649815948559173539655046514003399781650168301913669886574025187939309332011351933231982524765692441795564605253990671440101232811894354320033373079166703162387883480193418666965955765054876706968561328859626424136628964140108284407629709648374539373495010656617522116619315550207311593912740137854311016663854783558562124244848634257868855241837540096934744867041553524988473361479014504871513183869208055880359656275688415652877951406202381774082504480514735874449121685477704990201350246604214202814408711624077670874713391807988989219453396099468320843873734579832749283598484230716993456868181494674344572251555809952725019348742146573022198505122567609356895389985612110824861303887137542891907176634134077911725716557571173776874987381238370720574839968351240423851491397019587202514076405095072377564607442591491247145563992562107065366322285356378384697950689579059347200715205294805699449750683568680085011870318643735825623436835573299253651794485032316412982123982982640073164648269556164633375433683455553612910205999382357387062864459226637068191551161580759396442066564909932042703231542866532000794788256618167542825668195178985770209419339646750751576405051632572890465422780407323879603690437968899369176202965779124600764068427031929231789044035672671019592343741788788295875982196901904307442832004791405092230634951809906887391575232037209900538573704177100875349958458833238494921388615644113799855675916009540478476296120956988095650772299981778995466054457066578806365547980869800207589667048832792048680576184398357411046585532536240305734503637512940559035516703693366946549030207063415176880108570619220933478776868962367688371660412427608315963002122437814096695238577270413622128148105237171668224888351141316722801380841311994765055744593999041383373770231526865052316422375365542601028736775899241853329737042231048354640437125963183933052340786824778567356078136057217990569451837466528035814673009006842953770395334095653346627872315372769452085925255619946866931698790461120994202703698952766317787231276294874930677226702519745678001859317245067066159137183740461608640208029154745121384021776067128970770736007581928953304293125093912166729201232056510115043498046305381143903876830999010266043778889199337657135236655594312144238257223815100883894767796598032784798951015460940826576784309200389176433720803476383480507519281207590678884542493092850324373108900676834667070109352449005907833896946734706070587009197058572483223746616814298209341057692531289334114144381012198387815812179564487526793100224531008433053977169106040747272990741842287538276834193565681662690578562315889672474272913789462596009826822752381378879583828366120910246109396271476592321932341766055257701367337564242034084735103129878357862241437406400564698076747653264521343792564375915462727253227646206849558524108476497318632942270816433018124004655712433162436893270602469941018972378631143570056360108064511283931723034684502464982370788453769627449701396232339290432975224495919220852255827826303077365210757599027355403959298108987480930826469312107068953029783764658711990904755210765301298988926927310672084433746309100927185374250739339156657451588334039348071529682851078023515523057120495132482418353798169961794430667217723927374883488726180045105853952311987988564677200984474446070810310692781623239069109235755863045691506837201402404059519337010260229680439347109559093927237592588346108266758531961948816338135533779170422185371869256420014568910012250410055273226456671224139147484176706798074603018369192385205943682856144204179451618631943726881002607326126834454782386938698394740776743967219219360761507243519594319151065825490442934090095583208642908541524608156203648172861643954283527052869920673002998950407127123668342832821796976991537392998764405653468870880435173170848140384744879002744227383349076307368650737153176055469115066792989671901527110070504557851570446941705777177811157872901929989448063252976824815395255890248613923238006714694868268194928566506318632709621284726055033711692344280834834687541835287932007748142466336963926684178281326932067702362454126607860598481483418793284474151563934823458378862273105452052529713227187837383974349565508389708929974060165301277100867374725303223498597071487812544412893509287080503179713269060148123044707371593563409290359195295133449908813549735944601171209339725385197480778998781853153297359487524325676224534218364123141541894370000685962316837532024967725303679122384183637993543883835708919833971472243954949079846979412045810585376217163441863765200792445391220993067678406996910342086853750552036828919763755812965174600535842363539256437547920227863117872935435582318380290816292446804082467681864082466444038964036384970527218154009688821822944556978830059088718223993358042667115940628890644443165654046947710601433876642779495955906977429096438406578625048641471984321599319497576146437175974299769130145014438350035745885118965067814767282213063321046066012625757894882467848110668461830446014609619582698039998490842224219623416181002972362780098717509607602059491527768322948171198424885838513316945379247282544703933125665499080293616172824125247474850370555868263692725613005422890707059350269822206165818433713598189604703608132650976161856918190328993413341497682541423233126213328521286850492793048292523579408667863436815414402629592084791054459033055820149076844871393225706756735797078755616515869150304728901399321408543542987287084317344525837604447526308130763071713704906923695555048673766859800173749097620964305023538076222871145686253257002837314767300957131193757731467204650087259748098155762444417725802358338834406957819106783668470292110038232807599039388939495118430721194479144870432412307239517838871547581432665410233363182114211601937317530935085151291487336348689640619285621181321418608720444807345530260417005522863154202799333951825609882925369315445690067602932033264401392487629906907091350342766749085310084960480865813892820820293373272899897288042362106694631361307511009949137889437942725746442938956242004603677258362208456552532868950320125435213865368146613165878872564919710392089496971021151446041869225509143389712665770263173414709043033823991477401331851804952514074562069515253365273298367312401142159038903754816825666485658873115418852309842175935621622196786328495865249411610577473484128811640250506604333693462959095114978696490356675713977872741323144244723489838375673230451529780971400647104374791018741351553976441068774309812320411315677826600469423950405456735327449629621483525366955263890409237252100526351335853731786518318207492979906549548269697187723548980122667383900019542883680072081453861374843678121074829653496718682718491855388555948963687204894260028963690962135979803392228397311745909374338303359202619960334078561550107714175893333662877358592089969062091856652009022635973575135255933589194598488344548401512206059545289907842336329020382986769886831576220940826254522029036999280864252550324287640216201082876572792345595791522290694148718390758521730649918857206388040220500032788825913909548779607349257872810498084659011732381659736304206239749693544613151461892795994972367202683386289471000395118702678504099990450847764806248868959435638285606755080431212503463010704922631450315647070540502330262994102143393266296643211123163960570336934284028241391036095988811496257990951381923369512347159748208798015381420191908661889558870081217316070820344071710495489206364154700351101180158545478272907381513930982730749458420435514316672063819990460299274824427541267148717400960808212700071893119268772357968423035256657218001660045434238199710949207198593704822643916766109089136394152893380819153503500272426653900847103647382923755212455548306620242576676752827324889915109773766442611715418241512024078030406774813867449626689540379294828432450274550961982622626264030060926123746927457287781785227818346818308376952467385279647774108347255399455011053261793749440791709207699391789818530432746801384739489206941332017957916481373903944261131048965572216388143657921661239299711508482167323168396646615958234669928599721895088097317554641479913935753967581295809876305634605129875236684968751375729849387727959839641166627457470899012129412895052467536247504593486528667691615785621855360864530015032774110531585465052413802609730588866389472204392953414649450762444320361498983515061783489134925935584513916145121032667709717465055078459648611930080797050581602056590779960106567238931752040764426064455109012390303845877382126868681988854624101191677435203858797642006039453091535218151409149966092491987590232878825291652739158462444483001573721978876143844322597879464244136212235488218025951714868601148724162578876756110145796007382508482351227721561567122089501766433472954715294861670324940841422603744318850514108896955362446576185006772118873943306340774968090195772645093511119298917493091387241200754484746698343957287745336919176696448604415389179116375541656384680723712374276695661149254657183553332198345369372803608288447134970405399920006339006901099040244953748134804850043033003869199615031319095403843367256520970033019002719617138888342940805447552080109749500597920882582400695868028422865958916960915891517363368015583205725646199811145825709080006016337068015287919553798626785579948245077954390807399907588343030844493727042597955830327206341965163424179827325588734081581657739865002359237314020087146675409879325749377801042420541940494707677068153505789796817499478567136394417381010707991881018177014720529655755957979615530806835120572597928495869618379797680960329450104136693175941881041328948582850510196642062098000217273026553076738998353515354457086079836452943067915218133264988776232637452697617124955758384096220153144994517728502137293320155050403728960373994637168490661923275929787863883279159809546504705712665476006515074916905181717043790505841120133650439791119455916268591516126316830137057975361721018687333693368826688262143905192120819707670299890644416771739403122579350756214019598139453135606628303479519226816439151404866972635515817229362046996490218587860223064825857731333225781746965020924758503149737269108769113610037982453390621294686962169935711639894123519523562360106725814610703240506944486114242080207728933216984532970978040440554237878909466455869101563718875097777315237359683458654053676003504327028256794513255167610635001566092982761424658062133890229399803465591089588162133006854985605793800145479153353275355447037530879751213687582339130210964516263720334664494200537951895911318762294565726097044985771473110071842250291446094514016105745223494428052111193735448714543081492953350882753539464453310330118602354451494315871828098206386024640009120818064307032592064103787520767625422318030420948546516873958076767091033921805393207264985921940696113167689466956350819140629837689066347025504910858810380485737632444237054092560830519647035320238704607184515779478236097868030726334987098799942360446338901167678697331356498242644989746168993532356658893807622999678072129614768368634540462689695753345116144253845335761421550909856867987523629020604969771109659235500464163954626842452850411397135934623810269636364229688612900768811948081256729913767593861967187170445231447159616956288406137694989540062753110369162057322599111448730073550194868439080325280689077120325351775198949787752493279804181948062215595118290052147075114472029305202486531446972399107962146144669368070703697184562852432974775171252325247820149105298713539202499453485494878116204659440470935816317307572584577115666266354357121937052452140628809556469367410010580783674963068470735656389185656104709300363905888049076716343979258538663520612323838249000995691731629468297566836584978636349834279557686092865081246223866559371924636460677162062957691897872914535612237895517042182387988117940019003721302864637252418266578035267475723113200575804236657425758426191222710601807937889253613803567982101047854172640959365187317145257891324390625141809059671810106189015580549284449303647233319812778317351416296115497965797416602175353023927048149567003779211811541023030594021413400315437239941804318264145123213048237219010336625187962709940633285805287763202614387137391616427543109593423855575953417145399536261337790513027963764033880195081756076481269881858471156168159412189050089621175549318669980516790607473686377974072041768989309448350961022913640198651120525353905681894464746750609875807492882868258875441281819411455327408366380234346701967113387527759668973874442062070156771292030089432129255752570635210739488285501478213411180334060879505344838908818830542200661025999902693205752815452279464800997853917874696079083899120966194819849897692277713720937209066425543713756415443533774875846003765031993122396134827551621686234113715624071901303587499915704193504495273310630760818121750905460560908507959732817674559040658200111041233251170647384024777863216896740210529348458073637815237642018954765649897637532850561265781847086449288307015874389941920858094855942283563276097264963849062287967112900471362651479547170799076541379994797620830050740964553142133215208911650253690460983308070475862166580973326722000314303704031998711463719668521291186785145835791935017411608035166716859989200117075041556641727538242698195794891971538983291667141259188888733413131469319876025159852850593870231079680129859368156867797737777543864747656655478076851768369252273191910724932782130637742193394039854812835284412599849558382760885283975169791412770752955243642625465247290727706338539570537874450494382075368098901695502789606216325205912275647590021298744070436411499040150726707014317107453004023667324909436849556344183977418579097876705380266804388705244830901248520049000723933754973547140324237186712670794360092083661951235501438796876449520788684945413465646529803819431527293611536315001126946370097470471730299401560448724014070721512761409641437299772504167628419368297538442534142800897668920931643830676765918023475958656316735985580419571019552138826709617322598630139806614805468843509673870174621571505921382788358394268350563329738356915347292262557373773432681139984407368248471902322837747100475091924620846088639657440156759529797082615647195526943568965782188727974811391067384654134323341732731062266457592894214350913685603938598620350848256139099223744540654009863322274176893722552877086835614531102361707252483985264733320543921482861081825331150937482110440054614949660633044683812808903156803444918626122015158488917911084749065575626470580202211179043882007829230531868879594279558839042345103162376337590959710637811602436770130764980557033339431512331971546806728140707049385575953781496500342523639993574438589659868684209814564716886456538511151007218582341100595970529240600110583646770237055573206699812430011646529911804883575283201748967534928312873176173109560283067951811856756760094461327458578611254789375458584358215906005467109739949070031627261827569132341919787849451017628012987811691578007527016707476938611774074042306393618308775261749088865565119678460687012672765682863567399133307011089625586619335442507431593718662502431363138540821357311146779119870273084071031781662191378274974334175441418061957147100386635834406053027081104555202295732353244945085366667263471675572303892988970723270253615819418971522368329028896348807554301318078518981576451552605806454576611578536132705994482644699691850780754474247516719908793914777342984903308859644097583822706128960711190138970095568611949754987167551792592684521370339469048660127423373745027726890836729321659907161807991691242038639607114273218310462512713998578381358931022446909624581731886904780788619981382246775572246483551102495025453794933283241460368261672762348736477364830671862350068430896154924383234000883559565706461142890698328029381848261158182369960251700585528660372176525937571782316759980250043427882894599826698127383509456938036744478171593347784724976727659939334301029569382663172227263217867946872012841618756681279240575081914402767329326870556120996190556121377266978999257109576052821929027494991418640995315184085114573230706665798942677647228405154090290333268990511785359655118801344416895384895090965583627457041099254886044568684780514528547210570967099516923839118658256368815602395190309087698260415539094384895232224341552694344401413843679113180848055700256302632027513643329896241398836033292640099833939046413971868269222317008197135741159137390678335347561987927740215835798850345879350941570168699703271079907748745835611755148526297740343997377609630680824004486372847478532088620623397385048939619183086288343019821142201834196979834434746380546998193309241198459319114791510476404867574105818560957595210239738476966851452503412564839686480131725932486556907025943465412963663803559259557946868773129341972377266587495416397360237632311892639113553771301902018837560028122618535954733101171025690881257710687468566040463715820034059099752017518478691639625504311172446977510716401611963310275266516551768401734518091039144562875921607109960756700733799262001180954824164706931826704008940138705560387079196891083996148680621281989113342046500282044249969636480519066092681203255305293678966749429606988220213564249871744465095706363331917714943093373963901431973435199137159747434835365973717562323530161350684361814496831824419506083213708469353879811431645606190529691591982773050359952761138503117630624858131884982937766125702986521094800861204412527356123978565115347175946394675845742891726960080884134251923964422825110655024731368586123664268856709100172529487415886475256501031389194897268340553985865761990010122162940971893501396492999460489049162707217732397379223187191299567486218743377112569779586059515322510264080439685902211643824522630431914452669056647791090039714936505012799008037462521794456678039390023016074094078869881393557217881515440319299223269443968539658819642818799476550274532978241397405482961344772482181110609757011607449371268932158554661867173712971468789332915144867313089532428556703483563516459990044100225201360712629846832832498186579414500076137140394245718456444075783679386730371608911208995623909317741274175593742630231964854812545555026629975379352288808507797279304793520080735314627086395504494839169592953911361311717517285064720798552529602700772638422132275026981293495107733234890385147276242648555950457341722146957702166255505083029613516377316342992052116869872062153441624048096347956007788256705747269397780012116308183269361383605822352427737495498195763784137485680977067118850260622849695867496642222931754832577999568173352974660550579316831852241715302806399179785510601293372471161392334019138867169397991927653105135758410330869571788106445546002583436045544971391492871414455437928800561894513148267432193199763931759493365683992320898792187289564904810015407323382218853322596083229590183804101336067605212961179013266852916101391843700610255838921101118410720909833886223418351828690748271204885743556762780684757388029435249561957806822718803384302301827848885931057594517250207285469921271152062492900643597533888804652193357614319882676949520533649814730744685233170886917314173063757507521671696950757881291723432134241441212442282624486207301776276084753237463181487820833615052007035852900753129134736551407212755572052070373492195693086705346289995280622997043246098542620994893662493753129813835393569583010574533769541748015025436968614822419721161202565016150323341828771617263365862060067817550430454218875215600912870914600232239004781770206747306174584771788718373210359867677560304171275690445595472448110781798039597649460678019749060111104318393516743244365640609071713268527920961003705476440925598310566997995594786725784341616363303361725879414513463071350360327447217893708701691167192351538305111133565285168127016555455403503535403104599055870542325505790994738399617680683310647748226354352825990977618718013605595149995802774051351881601090499819925014890313060345098877107569657685313772869733650583238336851465356742537647999983094298752378422486305913318990922160861875376298530892096741852363334231296464456617544687907643194636199259458414763226235161669758952047198251739896108675057273637918634635463242118979615015400518814809801214610024360187544544308381595054728128898408782510415667352666339088039117732125243124840760635959920776615570912752597483083975737312323406169608282132769124538693549178699309312457661114104227041867618416550618941591206834178560938390524731191480192505330583453067940684213575583476458029889060978844954317936716910052811166049212344102405495994330380670303113688415806655004016586309849547105873197839564447967000255113998698788129547528032396165161975101100056535737689994513632743994665946275640560677151302516559530436722836662133958616224737025826272662874040902642446593052853258131982607871443048419614790947153494401777510775484111762314572910580032444739044831571680388051990928666896856918868534874564081415210045337758341911820225135697879677934031394154003726685159855802965159822690258206877168237158560283676335535445879091324570279676798975998115036581112870061486287848864595635697032050831844015184802392990188450968897078500651387895211143526169525213674673962593303644614952560244517674493626655430277678301865619504287374978175485375472898024763392910006540294252228774347568127205282504003114530454582334506259876899354845189767545649901697751818617292398181938596024112546949861487550686362152513579165493248729722827841737552163382062932366833261732375474601899880786049246238397959029273417603187219426092327462081849636394826962648090725904774464965377780048083893850949322731103681604477411459852701065284409881461437708177768649012459105094583662619413284479267834782664951252941432261992869282432060155622722639319001288897318721287015828560530018619780066868661478802665975994726205352009778936296922017675014414094719999528359013039453455390433762709417490448947624388466161206272339366330303685136743676147555440199299852843045246706773820059692640641358217858888401472922596782489737101164245680827894852698733518537738927364305813728533369633716110416619366692602183623537637517346904575173500416318794619416043599703253843150669125608099213936799621070016746050307021014470254169817682826261160890333408495698190583515392723333805173088017920910648479616120939887156089844483398412455915455587075526209047350707406366428301345274584537016146877754460114324946076584209230161651530835739384283798495633050120358996783171438448235793217167940922038548284753925328329941265043435537908291026605870193872131010530522787026501247362186454672202014709551600746855561031318636066253749852042355822315498277236904397194014662999162682091953452492772538442228948066040844157625282873658641587091024410035955653427412644924060498427296643184721940644996530010679185490856641427882228469564761414200051087637830849889297047946871477884380366930124334293894192152181423726372560379234954674615406777051009020371654644141807681211781515536824472886005677592433562710387102201236391010441914058245117994394285744852238222115509526857208550278150657176879539202845038330997822198896563508105364623592931454013626171347405026855135672693126667376485792314215811504298820992913526532879546082609549971159849728139794929173466173278841450044928909373283882053782455841436383311002418268370999559859295312810637570067710669446786520375463098974802895118321027569322589623573921360788974730631420309601105800276070274146028766624581461385491717172850048319583319815482024535779682525267804612033488417265585863592065237491001068307249019993300182862984970315375543932300272627464582941199288183389483547193805608233890823154421162066563530475891328501539814021236613199750038179561895392719121700873922537859615102441621873826674433282015057531940803676506012370152838110500428423664381124009379805585925845598519963529519079218134607712347306239320015455897219596070231183697506057529294296386607842710958429719158031692455350570524422631467803970039116314280501441801923056457988449069837984953290378456591076931485579209570932106453882528072107009917096276263946100803831964266556005293680099470581214956576143608544109451962304224612873867223832774696853211234969901346602064053165993527300146827312827431018991858146282004166402736234674378689729682177139574978705931882038796636998326079395658740238228075178537649121828823522212186176880715696954012080049318752639094015564344466064626064518957501425359542594287967263710084754221063475505635867280688989163037192712060057988606992801338337396348504225438260193050146955675635058482161517399683827212942631742565183171239329301767357902279069449716717685520228115178244860839107744296201212660931793218279633009623606568337263670267759991181948697082794585831939483321245518802482289012205425432102589356359740502250499004677225967308154091303556128227203782105642056121578245280978547226022006554601137363795088202778679458591626726290523552116894835820357967369096039726360645088331171609304253551970288179075344394221283433269852266783325182682248820289724895205325754737573790476609070690141442151707458189105186136191958463863949301798800202840843504732072671106834670854241187086345423472751551643721375228973852022835161914754465059165385771629428842740428817767679182706570498112565044901784466691303759825156139286709846575317326217300359077331196386248749864748844644667094482686638437284326390725661533514004540332765735304031574769580594731072293502564576779316281001968011345076254812186132381636816539498687585698152729691939320258576689502173589162044005638928730150914211782224184983368226863186296558391105203929004586758678084338287812581419462341186555678800724730255389611524681945866354646566409950821500495369701450941414542186033955135623069045641404521929575377658581037761349621447618662852495548322331509078819757010567421946215862324988256807245700282807075450773883901299981021853275671533390355374697851699651673706688883490716883810128898126981338230396165335788583932438481004653126670931497453279586848000196690686850544558992595824115479718581290150222775909386600176274983643872936979880482650965861388454232244455909274309505093792805434209347716632103505214613060324090745671883997637306045838104902389902169648575781187411448248345910185963637809767679443835829050996297727169110155447910129214959463827915537489659564971962622146812458266967587070534672489058241983010510670708499793428611920548657383890783470696502566870094955548736983900498309986078887151544499436644661480071063835951538836266564323228276981944954168530797204914567514125291209852797560006351499285531475984003103220409397514360454590799042548150160692001096553466742257496705466994831079653969973370350547624187879023180629438774538347854443662808929360046974279221194465373680065235867536940058538140147188437956003736494044671077095968029204308122681407158803661080528033566146357412510890464258136493742388025318375882855145034805159473073264452434498678031378691681749660335636799716094154259065819439907365967273057804510580938593972464168103385231470435867865083451270905624773893008242387186839504148793960437109482977485650848538343910494951167874974854286807587750600598589420238210272064164897565327999934879065712078869256419665456760879064792769047591596820130811541827805269171121238154138659502855567645881604162465674646021410925275893761241149146434132148492981936190769636564123531152377524597855915016264995286700584997924566058329574306437102593496856749884504281850475768712493628391943502901121023061538593336376142151501528438643369590063418116860397580449532801759347042987314235089753134324006833305255590501717245448118516131303130797393249419432807818321455158097633001226980083232006138955594794906362516443795061021744566708368146791831417862996340740835867492094281824857784284314217051640701385909080471406467916258593756742624783780365358283602132589192336964388004537020273038742152082207194820087577054796857627582459121144156879001571777508429235111252588247137830648975120763166001531070228197301823485037464205431522977595851296522877484014586977988703576408181829420997480683016448756655684742447526995985230742226630269052868237012302291567740413499797082641839631342018839448850697814778203770927699124015730606542941992586889388412213586825748577671191728185439043772945826216059997983315947663603129229347297098571180110998062167288625340780925860420177994816059897271475602521576994759149407021756921214354596657955788544827185327215222701303620136076193243529651937841712089894947910542278333685207934744091200774248169447600648166111823271765440778093869153055727707623035668684808448693462655049641457800323245456041320290359623493773670096246025982502529035616203382918943234654890042474037966925947312882732670219584293959396097161953020004253299908009501331491526989853901231871478762978927670792158933387674362187325634338458475542325405577632125770979660918330586907227782904124720039047490135045860206004075147394536878674486851618099892013046448163031012511281299387371238218860014766268277146503712551379621150543506039355909668041010216939179441494441720207647670609820014682769863487663172369914302406256533922639604225042514833465745685802152052909896614426956977372522536880127913050733459845331024017835227968088740865185716244499098201238317478599505364204067951591589280880588944936790031193826787366125112652958025896899373153937296023345548914556727618720106219024911348543486426572233562465378542633718371675381087467850277232538491356156043097555968677775514522587107820355043694686122535030236580760820609956483640102735863362886783600370959389355511408841206894718177690382871827519522222815730864697147416699647172063735056284033119471977809908667110420839077308173097510055598272478526366742493888417041088921421987617350827202993591423004675311958215166199116149209233738275281904064605870717401479799105990896003951511436574775926617970746388798140258531826504910848979043679394143698764546694391136787189546800286145777107803043963006656397648470278022318410774355123104658540986565777825527661814327294012186809107042298545193157447567317591370397726377058050899622083287907071960751229338309616643589559201199019819883475216282602503242706720212945104089230839106162307221472999360588154267418930001432508294478156758371369749523528218044048302907159040508856847229627533290667361327103480761355477834531514529841469355342223175905843935054436913367623884121571932963945693941687020164068126331130277324407347153060835504375658955654075286995370365970710681060631115823849765332097194827032354852369056454287188533871462638865309987744207270475315191244952398679206457885212645953972842282558009777228949874044946655774138412679607968109389365687644600499675771048390766748961360561697295178989833686193309391256696970220702888609586236395040021812580194076500305971333313517679289971459565274022678251576204825835840786634538952046681869359484053738005067345966495990716425631208920738099582060330025481817338279238655123210961892012821992169443909817886688231782961424611819936970586542377948774653892525651806896804786053105453505835754110496887941686346416856810231865298389528678824014428100060719000875599260172692475422846379424308452676448313285324353388103000388608122382066780270604382180371505797521635522882800191425188245221979175008366982915013417109290062694439214923885051127585459706228188865304388685110059357776060578026957247674861156634944773316705446715142725708842593869148762531201841906874496458334988129580845823176864803078880782631962850011503850616412019730255368817991984624200352780293942499064844713986689416428242451636181359318505325539390306496219089605351376205199138528693301954976591355612476182031824366171196614108013423908912877202393208012918149164546520483591661526433506308192559509748731820228155820702300929393909351943625568854124934774174873798785008456181111153725197819092043550117823418618087338920556325177729697871178830611982339562199017482505135984279075681069181731093387646228936783480472671629472905770435882687274989999378047947489416751483935221095811848520585142961556563569155793554829160030332812254118546496088792582603438406228112666961391145297558451640301239206564707309734301102627213615149006251378511445726339277943648717299343953042349745682134310163945659256153306489813350591369862284917439386717089435582522905683666957918200634499143955749586681488526172323673390761278287868947402127490400187427974958089003610266666341331908766419304238432160631504849337396197925894984019430154935298933834123948153242977827220893959025843859585737276313946179096127858141567019231891087091881794742806141400389831837476109881474433996509839909633563755440363949021033517708710162931641511382204672547277883217185128864498340448065811127361219254918767486625911781711511317928853100507638489931468083277806138171896351828535024121620808960517584314379056065883310448776307063468793434248128339810976540415591265409373901836143081965174639684860997560207963071363439780286666734978161243306897775323577894551372496751345554864610283551226050621734966054226446398319382577437266813973234410932954304168184881556391809791373222853717314629460057700645257950253876494754704904554147492430419975826528169742514823141535999670901224521573921396111439879167958168396615740089145489121352571732944186579484990620625045807806690018565686835470704049949140533596626775465461272185207148025873167009449845625432030621689883788000257684494471072099953027489716360110368351718680935650416965547026840775746358864844528030972417764948794543158677659149383326179170343449231761266050420663530270745080844792694034189631057778406987058847285626156787870216926536823449156135652384870805672794187230550078901328991669056650197025721720908606221283468188733453949645742418348380573193316813430551662090702630830283481046308148789398753808533310620123849375563437528164778931929400855749323816203326252051450938888054454000052852763974873418896082265537701740921659903028123033474237758297398994769009513347836438013624441903809231011653392181013824749680976703851681796242692172993191801817189753552259069855073298928220488515851452704527504755789097095560648452992358260885396221122802443163945625563334624074537403404348506218586914635513019096307095750350235766485259381883512515852192964251178214755562814012841655346324914890259863318419720432236818215181878390171924230443596008806807634801262649954612717291167904033146772398161861034561821540785643081104997148500339210128690585901679819845597971655287981219428805513898204026529480815641025138140057654012924981786243568178270295924288856856614092164832618399630729306346358525278302144329235297109080883500805216533999903406424371452189163072635424800812690911757708376438768718800831209957267810731239999490937733338038988785325214462123291639079326527270733453804638608927616918589843149923889165550936961022409944383182770367102266752000982619646686578953543873284985108871623536214832581489619624523202575899581424371890686505680075454231880168982365396286452663847412612042740145990136374657292380262629868012061224131677964651782461502621908775863911312743690636941387844084111409235085988752252382660655642453029746216231054542283532953444791517871816658547018456676853059720433027215713136577623586775054591622073921285447972497059308011121470397651367788807003622503116862844229192897225059429126529570747498083556136858347958386326632714387132524346091410626885466140660577467837061728287530107538005616986863660010872824836042541214974598929983249947045697663028007817660785302565001855607971210354390229222123411283495364853375609237262366351731331145804073076420318996056293968584248967054182884934011654547168947932704327535548915456845668647230391488067296267737574623165218646068972586910493810900595622578360320924096769842968953028194694438397519214073517211014374426878206076255532646235336640309557374769885946300625240408088170177019794315007999624446296711401470770851001977422665561107084671048541458966966430779518792665752127173962335052699773561665733348453580043703590622429516754142769419077170807075111289950768824886774644246259631162387606362099144190610662934138755738462050458559345209586781304419487454152659179678729650742851486750435886440123408271693965832690522880356616440997988792762449489879042185620745797457960140950375720808437162445250518577194444534541476831270895600499352498559574391801207604550710685261933541931256856852003139325513014556949113399417880717513972497133320071596569967219797587802019509551439020388108547794220761910829415837541229259364860928112403830895011187936762111418417329051935532158425353237516055723426385887842496142852516963639505167121409393019077034871947954824909194076392767559742762388050651836840646869677049923956998127377650448844157926202826672413679869182540235945098531522579748454147062147169842316817715775038072789178400529433986451557083577078869745936301834719025356535737621743832607392574205274452399066879946221592068974093725133018953672914144749336302881843990427246386500574393590307915990632952475579198603991694561363861208380545778516240048124372442268193297600382133856255681349553440560087490812966160033974646746803035323560683699222828837232790602941806619198395306632417580604520318951279724716076165846290329667542821517861606293641797644522722929456697693185648769325553152978023195742060633305455223717939810585757461477674414363348970433687205418646099027801681929210521492286672219536109025826349351656831565831755831196049796972374107770865723494732882629292261657579773602245036989820875336474386873733782349580876304525434604092133579801432494253748052970347289377608725588565417103824698594786857587845918670105560899404785494539186640491202576501279487720199032148982052986536177496844875358090588202731852649669064697961532182085367228429922476539391948861923015953199752579143252390812693330331919307976323187792583019608809319288627726200422308629965738880499570816566003916027564342675030276136767185050488526896012894258762366866876780675504169447107516683391628654968881270409319646045312104363116731178347167548140388893724603453288438295992299494775674403890206342451734303391055422300833628391568728471633259773845218366072873124973934638638953835593266322770985350226986878560118274844133895326431107372593715136778253442682482223966936159534122889104654107659767920313556329445022566483111454345593385982967467435273533461859332160567206215992133576287203751756891675052927442616675387856026274680021124896717682313604180835795433245548020208243979385744688346852510637304690320913442861991875105808750327367085838354410320107602345425590014750133346837092051923019035071258944425947829492580631592174562841375476760003997167401640397290381159565744083893379523016739796616026230391561360729503308400543170791025739216596868056658832460366548783336466526102501020924964926419394370252709486440680720537187345555465455963709877944834232779558615988394125564437215690452290515161844344991255124919189085827818666477730234212060140128410658796484560235028755569408026145725952249536083776724959680229713999241360858174778513413392093087601927672450218693822542702578961651721693195867534100765937541361580720401010668420945955590477962415045969077533733224175369660208968298460791176008927637937185405790925726203317121903487923892936515075318394654012132599821407278795890307543635694965403052115370590839626516087194892295862902025031187571025626235015830957029213713908972506638085936942548703075914668687061180267511474337296417502391721226095538928183141806351387025177136242355043566557521895382190768284140465761217457895695990069117820346533150365859412331194004365431263003460079880731782724414289879286236330870918790020076115386554056948006818964646775843554151673043558281345816357419740970431914447244586743380465392066217095240711016809283786491957890376428255840569219360697815081098845732180211752950872171480613735643731946750596288774419381278438277468529881587455848252677817630734603927904974832775486999279066789166256481991837847570656676570162760811992396004880894828007651646482694593235645130935823403605813732236185605261848814304553764955572362980477969160139488044425451958066386396905221068042680555245137094149912100850820776386070035784843249949029165171273172171202669423981330216471517149470486462896384772493562494693240008561903851993296120155498692645440937911315156126211337315896928557533737440065021523516242455857526543003972916886696780027503514237876903756692452959783628411432840553502418423284901467226643688762761241033947904772854721304690016705718533632183443295539126495082287211451681068231362808398579006398061644331188487632826032379125971632463198321986673997038474366020160323441854242093256188392854590781249613732720335000155978221199613814128083065221930550474840901052244043804303059135780031348538969044364009530409861068854358248405254216587338933709404650571589265050268955861774287373964430592284604141922511522146141675510104971755106307402178799649315702725824529893361289403166235954654169642733814836366586613116989082342102159523028453080126410957285837101875217821998997898401042852202154817989430682467055361176031001435955695239256745605686068375190244504514472557546122701335319847344053330676108241185443185821342208520618412934014584280462729441781254262112407450749280700164286760994061764120809157040999930182192116309599218126662017604324151310611204661819059048342114260296956252546036987487471819761893671295321344554068543438632748229230322528052312037616042973877954550105058945603904282070674423223961695559330824844184529149181860950887004100597682901851674499641127311819967185123392427481896557515056326302476377789809203983783478115283984161315854567409666367330047712230857205591026530542521139384709482185110582038497023555836562066064614410627611380211883892240399701255108175686980035779539460214173561148511012096026066696200003811605397724061946901019293588152658750186586647278799982104548761319039928413330792999146819613974363563896337679007715359703377644289409282941596490908007725425004755995898848041754867643764223941639538696233168880619676056974217270359248110150400695410935616851861989507575422142446350312854989609526062656135796146779704433787158974743854817018229230791277373034812090279416078795091940818002955821004325373548228801097693361873456423707076198809386875511848361591055978555923254822437993126642237821695164800303842672741449333403983747668921061819997220033840738473231446897603592033500251313588193023009269488369565817899892787700455158298629585445318564384810197449946653283869206491861269482985698676621293863711593245291163671974090626329727830659316437770534695943577621448256669170778562798847594619490310629645349565053720934286006170372651642118012030481348659702935876696795450710349555174792705079011000739833597993597801157625866650529220131939259502836997680277493586700867006982093240188635029847415926364113229343425511221420577484987791930121574772315921567080330526125215762846527997267206674490732129029891532583176436731402917976196405915876431351276822441111430074941440646512357207631692833298156743549386534303815525731399903060323336957981460143709464116470600476672812989301746091085831550640722471327489559876548503647384320860072544195073819799297456779473525691236642530693520474263471371807553154717808542566228841676288557110989812091451679774585835255180858743359946348453540702290518064458832741316687778488834436281563693506335126728168952297898908936580358420073511034262400375884450396397890507982982881267588920789219151854160903336360886704590790763539918676360181051338940115479828308337643014632753024709270174013553642215192414070918570862299788046412089635732542917905024004096741026106257624627081425022950594335931187375194694653178842823713398461757326684932448027738047711405997805149248402934664946758203858579389163488002344042241442122981235701299153867627714119359149299413008472329585935246621074740079881006609075919008760417202941218374879253440225457572539433876522610607348677097340581564496379237817996539001018193324957728548396937030210578918504671804471795683377972869481832525267035213108625043687627867160520218935388340758041204836305141006799792713409565032485921880315316805330590670574134557689150582204841956834084028523068313475291695004443335357861670114243278807713889279946466166605282036237583425983558389681766074459823322473616830587939582312378194715569395650956270468951955921640123612428442114914315253425140329485531661667278263025188199664278979905509978605742548264964121259431302119026116440149695097325308576937522222553801272791795638316885212019143855330971245073047660038376911712789904793399233442123606079905224951958385437070338440335069846074339153294475814814047957605039980433844250901054963414273958123647939821903743250684152133821660837559361212749145526761051509977562860368753991024796275964309380134884699382736249301767510911194603494235251712212963504966040580660484686942221691281923514784848243239016305463630362730633099055801562575998124179063493389486644872726448522678962695793040988932661992704593201941125407725632659470984087620459383978998108534300519605561106191554827516439349853183587933480385664189766543178691156347929096734675055507572581543986720507907738585320308300342598164195608918429886411398079178033738895941992353840633013426911824877118959125078413316029371311564175544652813304299918363800809673056995576418071021810509124755942555301570473812482536917103682899541692508444024082014805538936162503348848041010248493275779379049412138486590068806064825212953245564241272364374706472332284834620132281309415967684370034541121219429419977597471108984841856008517547846206643939405459197074567785561461146573732542440761801599697640421837344267756932989127270229730738407419870181960746919599599547030112404612335369466197079242909523452290073118325498935508665920194056823042261124678302120403166310149673314029072356481143418599305734872258214011701751460761945977553339151998838653993491027950586273878533940315600524705001881715131121750652355254449794139358906311472058222294841250286091842732881861442791630019329571279408797585426558465186291538427814994361307577277932019698414940389411211424697903004169731929521100245852943164497384618494730425480560798141026852466091056367442452182393669088803419365038211871033506436569356222279322050874107001546813400779174886719123808927260436416824251398028338785789504511245629780202668470514009824262840019658641858323831787309249887863135074347215346667723905942108728649320750855938050392673858776867455603416528711759927876869640785377714470503615621827091533944057799637738834991643012856527847946919223919904002844157624033387066756171171927922592048445864136085965619648066295740352967114102196215107135247706468913975040339247337070565883211351025593536758599760208405291391492318765234911735624561410253214505551735912776991585106735802801052153055979360651791034970513536387100949590704104903664789304504867294003286388808454649896029360213217730405123089138368109937380681692415965954072381268996992104371196097108494871317734822589988032201098536546435799318522704138600036390225171557665928754975197616433229975278858060626541426790743780612424709115975704306355236651116863188206556276209675306710214668977675996451542220636567192357341031076050540983158604019487527785577585140131179837467253522840192157889304914376434333830716658791412576022934160104946512171890730642336467053203944277181567084834092521616265362769703384350021348225683104610927532009224587500426309353908391704541087576064533239293807823904203706913305050387812678165820979572653416273015835526709652134704686108684464019653715419427864098143024747235233278811853071494246370643433264520151131987157458381506285564514677515564315865074843049955479659394786432004886584612242542146915594154689831024012364441596997566841131069506400172142218102620876495185213618045570431984056685668951476434041634680674480417651888750339580792195652870074250833650399541499485359696402227145189237517137721815029706510995971362866407962115171478934401683207210286973096510669469208833592724159297791745656152799464060749206012786951490184625414462307736479951201325368513415113775092756018546122613847692321584773683984982733717730548414655146318766960759981051665653044299197550578767768999507769330725409290413648631734500646151436806850347118169860706457859945317417034019061433765817825669489303019784334670041959565405151085910036163253676915111593276195892548605809655972239788636344120632215410955188610928212228245941804548694415664827568889705811398942924220779427555058454802459328516992596922984007220385156895554459154245238838280203659988225894327304674378823331829780274514516407402912494611234373651113286063853568014016273603772134353339949480401760528026066362450364096905920928800504567466389121774870243177909300433785617073662270025303233781086083994280299398095085783886148700182325478500088486543732892087161198967592270733968706873666706813487401867640843818836960658113199577020728303441205061635128947517301272401454541996882842206482260187977406644019191674535830556540300034151238030599962661657896672378611600425148978702025395766055179911631227202070730209011341385488807268328958156174081455589948054536406816117918945725154170695701085000310691637512033000842506862759458370424268869250135735190474282085953113217034063997208100297131309048019169531198445795014218603310835029270876637911946664773626489398663448400413869482264101644958097693396149124514305247222189787902863899239733045712817066611132289210558147990294183873754875026241131291562978357452254266051990971412291080565546776722942556159718759379147688818114155987656476765022983176597748327259882696478611362429800928880139933039876136240007134385335070196192270474526501068449286604233609511230734529551180356871243537959684742106514179278178109371707171225468304132545270546618064744968745949226993727216979219550525765621212274906663503124199945452351861317624907636807322743777637098284138056067520117641794221047138879140120402207447404943025040188539713547902566768884899300980208837629037749177836047740391952927317274569450072277162323261385439406516116489703886596098295824186773637837278390380751116552227218988933209639214721083138773874210851274380931044445815099754212644926802145563407883741581446747238574943813626278024238743310002195375669646754465472220457694362528071991247411313482708123154668682929289587662919643163815623761114345327704852539011227800772128365618545882228681665678232000417116621588276377987421967822114826333941545435566384052015034030945794925132583426679627741885133232508231678145394978372421040217413957745982682562112823872246332790551556079235687775869841292352922941207915037250758538834541802028817866054094939135546803794968418321789456657964281821879424043802832478897898748722816058821284568132270066438071283911693464047605385723237924996420141847919225496901797921380101791713534768373591168406203244272178042573322269517222437865937369923728208781836449148791097517124840678017431444911335910367937608970494659416528020299333230957827835494027960492296918950599989648263495110602601269271484701012841052823238134420150895530496998334541619819071805580922726182222879951076030050765821190394768496051890435178744943794949130503169658685012057807295001949972824991866503639129177433828862107554370090723104764240864204464360804294010883004611449005209294099309293469442801253174001644265467239136785327659203361559614461230074108880590569122067740960524638739130000309622434526669417039812456964607994302940674891875834077694688895741159909911037837142982799150330680367594992812349378293782678910988061495720380236782135146707837760510878654935414869074643970779111660416479689167770768794510479280094707749142684434620069109880017386826753222287965800753501206709004809951184038683258986436226154298254326589519146262639592939303550624678874775992092216897366699904147130485715492040898657654518861068058222935092725549268382531490063059079950492009307027750538565580433618297173557501115854766937099096101512048733892561018298145683498184147330585797197815629617222010985279289570629893965975583012344125471233114243990017560506838360199915560307314750457650799915689319764529514357942766065849980715805137222523789864949143907578620901703353450590083528356256148127108360107433373304439569566208968050420287062547735731333378739190929875830514937063952560736249895327135026808875412762122094410680760366676166730380484967902818380675781565883674837563397391886036159776648803882363423683788451350203008211155216642054683131577262405721205701086102198745896922899637072876681031066930129973012942208049944501796175580760448879432398560366402948436243564291599046597938685999009270070080323069923234243994866578856679168723774055729827968958517099373826218710709302685961532692294649720334711410569718484947170001905962967579829674439198223789533939034296528985060212648475390768898915327100422700065269528936040325566115005880373099777743603277976595138963170792282253634671182572084081179874510017280367033650741399405386475989828258705356207788486375815037997837346102982835124634022137133952518261992076568772144462766919942340712843666881903018945802782564131189669518619348204422482630078775176433935702090221523379336260567230222940889189514467328714111454997692929305950696886781241303041966957328270146134327783058742307839190022843365466539765143038788704180503786269617810315295765655291044133843147478001416863321564261342732315173031049581435262787596427699699968248458331899132146251150102002368745829591562611797120313919117075668194263934789079330740877593736311433270599302744140758062584723417636175081843647514316372595923198619924593137401469875435189832906031654983124117737249513440856119414859344037147407404687862924985850086638579211217192782973333033499217925555697955319244241962757272948996856500296082801920651894942337207045609333881254001891400777789902214274101397670846031320373490163348691626211262630385312046455571949519190115740147771249660065232615299658572990824833368043996483818861022573080781761867047632291830832541301818280813615747382537220993436324520304776432303517386859192999847316292410721992741860764071962958174031432311019320449301342341863230866988663638047517471351051481320323000663275992135502018531774918113851188755241824541857593924753933571932569426758638827099747169625162673116903679967039376823320516114815924350646752060817981350229211446189132304124709131599035264794063330973549270105783371917350693433819605050172378054136751801943139323367265110255359570215689760154119935155952509741644587830983461190690360782091908382570882125273857282552060329608811950415543187421051517863937284704643445802485410683693967603004263837170850364484091734510546351703996114078956921618760022378116946254436616103474927789502716998798701765117372603559532344892448700157766450276178766610348219667286952816506026582584915830770502462656006796077691430931850126740900010195784734796364345579308747989197770507787433959721133080264660889389431699470158645671172398844468517641818012066720918222783880453005256343013407221113160031643986925677598498614419597588459996537394563173771928328033879449881561646722925183362356056119715257211142719183004151422473397674833053383817141597595581465433211050928026647156773477591459374072044844933012636913601759223438949129841995168774454237014178335363765621671946896779364168838196883336103307832024070949680247529301574213755817199081135315867218315333286465776092775035044673507583541561543680981098572424686449774582872101936734168795203511255904649669906634387385236445383743942140118521622517997130906936082706385478963444551987422123274162218795417222680315089926474643342946643412072939164599165075923627989048497843990933824765550576710664120316776745414239265491741895687790358635135045863704512398386183677830647774776679287132899340195239294185362921169795462777798913985902306547944188682614552907494570900518266296760106787156524405585727276202726143030889286514274671594824489826298690525983046547594989539044424770550719758797327132324972729993363325364170038521601385665493751512007517943629755544580547222849216391318005411857436538790243128438866844788545506756942695036954313981638546021551939435969808028477557824233284257460746063341201384257706857575692611805802450136541580449808829092997528292942523259845832070800202105935999183225097297695873151405219719483668275635027022733954850510366062238166797057892953017621234745724546045949803449202307645693916997952176017527204122615949072903576269926708394043603118930547552203206568596938242673229770918228109769738590476512562461814552220508447917259343494148790103220911129316355267934382770819731192504238168456043158641697862120110187619859717128347706869705054882026517275894435797283327485188911677122770158475926964549662607190764292182205366077955361824139068261439363360498171287217084782467651138239053644155000298911351646349339658204974490440109841641069595764243224259354684684183163728465999391294911334734513668220282512212490794964354799032381391893584859501314686775426062333928890553724557853969248798157478718184044095633533111239851844008852206403930200929108299178675013681462417236725920595139926128957658775505633279235199068910868379706886105105445465062250119029620946034818661168226368399520605028772599048473600480743693487873257893463577513047720344837340415702467352382058571744012369674292398953671493755617610064065923630338069982794824942048487652914145329209583756826034650901002454705481890853058970751038910399979799965929023708365375134150136062902696858551060573020903354825265907776123945900087267876737551226821931896646356794772302665841486892902304395559774928441844264895899651810775540108196082459463001262053813094213818092615676623542524151476332155527248794501909786122144960606925408961126997961192117142770523290036315171117638886361640823146589539151622376890002692138438224329742448502092349555257166132674971081482086501942324848737641470325959563482387294244547827610952856739319742324737786985661860825670007956673652291916871733984122400350642875713766615440318021858002440407359254731928671427692724254341104559513316334383066254367568056192826338516886910218587708403465550139939230606899735524209568881680582982908834364368820156387808227161456777844715892472122186202154591683452705346874499674373641064374251592968301707858953343834393541664087447565426557867012256300691782611895573957279392685582888491471565106690669674349744715213771146127290788989297399550844155988176300124650244200357160418776192007690958662898205461441920615618405628811887854896376504659779284086603507673565198797336064780251539308320108905705657248930136094923220078296539353617328067534813044237598228590167051365974187984740280504652079455767120558092710861149748248530141106817145285460389619863356034426641198687888993391900081729521673174009736184523754050772541152794912830022189687753469195446439281688966253070391063595970530441062107888110508535022578546075508695136849473947136384783887032402935974150586495134690139752074804273219141176379272970423783889172920370664097498031964772632086044526443422440133558985226167359101540438355384390753820975604962000535097823294994699437299513625789458322893193120382663318973441871694717487187188439908032888370392198641042765675344466669900740596812474441124882518168742037588793066547730070181424785246416667741252473144309590421626712883134800369631683130346195828495322062154688227520249847411523564285192154887024502002542058064892136179073815144486657861362452061737743282708030767651163290642186814919533097878138690339246677650605695833213967374958492651039177284929590076931762293011845841415888550118705379285584263674261410818637860907496841256318863337056208262229882575743547121002627308971951644672132114351534972402887472458997917932931096306428443453399518389802065958181333058474237657827531207995401218387704454922833265863021181768181895869664956965360988291934157742675451094274389239290946989182158552293196608941625445659029748201703957652358966206668450429149880581032128960273080585974302487220935913909523964309024439552968216892501499200792213462348966879839114358954048018169616999805966965447980551074675268793207542023163211190522181042137694601560773587942746660055966931911617442303036250398803338789825278179727397627658251904646938187551104714226810159794212042343417187774072609837448299239672824975859544341668399096880230303103417783664221795370989612216038174727354677234577809063841975951510769501836220741617300726671188961032386993060770384926723335242465970495144716940627590793543108757329144090701240873618487429733196474451476958060505446568487115916344560837689993916958638142642386840962658042580149074021322737800761579338043727156630634420795412637013618880571880376472419405822519054048710918959506213227916306933242665218841434519935253417636972358926963772049656264248309441537508772877592347014645471454416658207567140190923149156529894542985206168957786824763206743890192035487812974677417035936794153850629885682724289713200008450436569571844289973838317829894221981491750736260859185616968043308857995311172154222468159000558139347402910738398977108471576018439525155657583288208191511767721399107398713518114720378024061675341738242422685675034667556190472508338098085424962064102464479480251498779482505442973214208711678065183810075121770796579011337826498584555186629387904302118496096260445841283578776858659776636412990351705639065817646449734696065887740287392772492495666648379979226493698344510304881910894718241337287610748034321605715248490310985490929401365606392786447802353995117692537031769886863115407243781708774922557449504596527783391038157003593904813435569106456296597994642113058049272930671099750353413869652637903548187646178916702089716252475642649138774465509002722846892043193683738157438142104980337475916301168026686424186080482325976807585772587047393425301932688597536068238969273319333221995080159613674047496386568514257321403448401867169974296388135233233699417498817999068565132808866931687975868372479942174344483826928484069535684366343587176335470477656211027029510301168541001011375198640617941299101274078456048148935833837984928976757786057087922392393237006096140295161275265025015824166844453600788525565073604821348661938866404280412373466877003531513593501349187618183861764777978853382407322858077468811982712397625467442742435510003730837437954959207699408982965470769354536979662297437029283917325099763122814796291435151364489084165956684073057657600167343363183329010175719692090050221011512944913793431296819209662748213716582202511135392702610330076494900570154674807890157505905330215750480156445717452317820188664970616637291801109954792395752446664915948672324679009036211478007705141937459421351713696563820424496551497359663097913242678052100250895145079628937334574261648073485676367537651630459032306472810613617120456656208787528061215975138530774082959851568956051976138530622924950000077004925846049145844181782498825945293035059253095372739906137648776165049275107353261794448003916375505043822461668354120544557055705209089375125231014042040110885263749848277742749732832713000680941806796107654314922889880592645526046627525453894754973429709237606302419532968311678710688744005177848797730998852956063515021249004825398775187957979489931016291078924283313054518038845120842242271982095359343681446088652528615711137155847984336636753875044034492055146522780780063694364939911338127394897115415953242147522921041991171084618939700084440942158143145367005217501710775260389221542083117768400109018753061200300189763287646628735116573798952024517827728936896192590851322446237631027402440420039035979904418709125058937760572344522279462834624335977466188385072987624225342830390132528716647810872546745847165482949770834216267299886281573301919073376045764777901197077867672210350029951345321477187894277612198655214065974772608445334881489972280562348321118168894452692625988830273569022410803783099764541753959723112556064680342017724614131142379867631441942151090811748973469190954099377514160374850861159825077390722796058359910482822134982680484132042299525106613665964912399451036725063472389307343831989115532717721552679583636876289486143209772899578900445374655371673448370345333991644240176865784146411680444480897353920310648690157181536959954371690039814583836820956127784569088894622257751788581226554860684777183426016136535317318037634759360330413396383107418241490046434732077577469417017004522147100271127895686976519005356467404657397549658323042835373084739940644564113468912006644101017874364247525936427446156910478968974208979112114292352799741178155867920264508759698508553318721896549474758137876980425241044369348853885155728429084064175270875440748739504439542332000224170180815612658724333641448221706912487835949969203090775771834678000327922403424837561611868096351775518948400528036843429625357899293085260305148813955705666902272373047465007850429324479140678231940857547233910461507533555347241929500570105301221943730678244065840003675152948737288995153826889866273765931615115347667556830877731521271514301301044668865743954983237820294842676876497487544592460654772196863872505950811811069642115879647506887468546131635968783198769727973238849714444751498280353779620448444785735358087882931919184197500923843639156515188326676337338248207414149650323870274123537529817200438772992240941401694895023741948378089544341173906656749352692233337809297040311238609821085934545905239666873182735438079526158709110217585874077712752930432273542460543564359277121039741868567228867514165277658062071920354561192019312618925442752344558209947108397794159563055553275061466933216598700339384716566282124591561022517536233539812181296515335747054515728016564580287239949283578975219135780268249534637350624815873294990588499745150495245995877616720000102020162350340454419941930089625991186830621131947129146100155465528423476504452539590369747329771770821062893039488992812009421234640304000132799309049559162835142679221100243514340213528483750544191932111021587341050032202616371880950257152495670598917044646157640954271489965130464351312926932438947534898027749081090850311024626933386356288768367218665150560894975315466191814523611063211273746123678411875297657665410550135890848023336367831976859213531653455989022238990324622966522565194549008053101487959753330864936811556729482934114313781769839553256985291075033911042038082680838131292394865614634115278552368980725470603289477419404023740072296714969198774649592598055829500656964662710303580352933485031765352490964656168224251597904072399097309201837179757750783453933973497804440965687256178242726780734463030306459448102742293420455916711701963449107519453094937138053161772155454521076663225388650182275813860997692356129598759562524346463686059502828279791541145649310878312333610904992881373054005254345114849823022686066274974733713807565357207932841509366536475652588393646978828378776691101642443284006353819564315223121495634864931534956217289321127373631444649889680882563466194335266024745233956443603172954676702464346338727983738685260450630639282445475449160140372784999079470739998693548220880990351280745554668895490335711355927623708873037325655472028228476214985500685166946990862149818824739071034185590520493244407924530227744844949637098911552304971684282784664966347791960343974051405144675885915168345964408639780026424882637120661302796391911572020183814228543783906203029943596833243113679876459175403669632757804703498877570587444989377604042826231046146399635929438145696373644586016564524321179698369529577992579925028576364901795755413411014383667625851401285672584837940562854962757900629719997586541194484837045398109312295367784825798873397132271365777186511730026943762572233868607902715745400825840887780028190953093304601224067238785540265426254472988515724872304413486654699243761445685965529119026322490050115650291889468358147887993925302112217077928251869982228303824143710598313811773378804799197344509658194145533006373706945069220392848417005512523031376595333546548444397001343382351578137142809809346966520413459466944431489911985060726648406820519972636566776911235685070442143715681270234471538266134937018573275421507343807915456748847887408778870315007674787121718962907377210272877824936730744136102989995042351004967902119289354940004127497701526262106273370356490910209326847293338797952153670885738235906476388431238658173350201988832810847459727884009875210034894598296783988834724646135975872520923322153871047434217712593731250765262336053777403850504993054648288430248562882674552857333612894839004974484109932371641134181733998120686497793188533011713902172953659904220238096030087391072441135422105102913230046118860922370338580337015620458046579094077972759032026396450694163206001077545243916235149406498244589265514815900259938451328965768842024800578223886732414973135099935323433943694417457568678523867620324552701177482409620708944564533161859252436135678296011528478813885826611835121269520626278571824386494725190607760873283244868240610378545624057205566037876095807197914022222848466664641883176100891300251069631202020476325776988364720510321805402365776949122958123159889994984539225051682973827508601411656240546013874193391401704010133562175469109215069622634805385550531781583223173457912089728895278125618233363580785794662097950973431623140718468166093168769891943123235277487132692540619800420408885993852013925811937948036694345634418501922319398387216102365282414407142139959463368745719786672086204286987146646491888087190772701357554598739853166301299895296087503973205924414485013529255305204117794343610274485965241796122416177096725343595495936186486281218492853955268074186550410793318700169717323284404172309629805932008323808123855904829996555789008015230286970085534210490288049267933818480910609844131766467553086563467237968261202093072530965028197741834160016239440510110205328139125593916516764628167369300271908996138462706140629918781916522663584542503942308523426280601320832055223721467990654469827508229149166590832650428581745689268234766073919621018438603009914230566353520984944287036415502094231599826046170000665665085785289958450039211052070962926801369461808097629420237349177972028817586248951298597403576575573193150248683535558465817703823248735310886898953126930142666799549624668921786095104430920611176697176457731354632120171204404114514179115034945602259687636532840729368427217157762425699867848720882681722633256115378216123209443117434173693723270693768796675159273183658285503072062363741117362825553818986796521937129459897215639745730387129942778091345536484294255405885753560482891506183714092355622339137183864640877786800150031039764408415459941709597630745861493867699457166435768426886424352888930731831985565266884266107622447039850114398542131555715663325421427610666281078808613310818804033912976000291068671642792130768701093485025909945633479472138441800527704320185182110499253651617371713612404548970294476386379143095685862051726133682687417721073393998793810972118754971027711845415885082799126987535656016058675097483979310230998565893786660957357647881253237675613593648087869065441086682215023439554818611074244693335524393121323308265940760529380934556080780639846244510390330204847760409310384931808376702472138431616665669140067401754023566803891370678031726835391510816615532818426592181328405417773723315272086358333557074238373285875369256526376985189187555937841859379660306124287461015438460554100812670245591221045553303151031881008173427807571226213630637540121586522151383288743378584891475655084646084508881561577937834248316597874193135971879713940750604316896487711016550890679550702089405166235711645970745876429931442694180682163592864068505211939072508230873146328503987608139179572234592084167469862749981567947399333671780189914932179866539713608800156229131156670993923136790509544351020726933429731858593384294809113046985014474692603176267209928607013975582449280307192371216260161995846572429284592525169300443325402773979461738647924498782204625546011770515970831640801872932550501258826484734347602268135812237592162875426560769921089002152428660786504830980160474835369450508987129388381151899062662620081096552537266676304306716011408240034840177959650982558277873927562062268502920381223858189567344451116461883779054563336414951707263876576571963716879141019916362334421095338144773657886739391295003545787673035675341917165647775957577275222487406118569469991622691477727149927381862655005457147597342048486121419523589966798722528151750892779795308801155103426920767712858528674617434354816344712246808414831059792743904101849349148586981353974743422149503740915470735114390003048363367159930326587326714402000279717059090278027583791133348841488400008329199203339744217155402990520458626447628152921812246212286497767435271979804470824729568711253062042225176644248634489382678670192194951520894339620004150429090971128493369551992513533118656785274358214208975055974130234956914461603556524579489874845319836418120792386932367617725498938496185342390307572616414239468194728602252601825974677766930005364692271044109112405192717861450736187847448047262223307871543447643276502163387505539972236664425597900687816071139470611766771556834661966419396956412432533016772954428702786419430587037589683218740027973670910396246569563274021793050787688295843157581939861675441966017584246009223117378830987317750676096560787293004488668829937762486209242526922905733020380163026642163199409667817934828973437120593851837813438478509683478585974222471661468845696560368781838693509130489109270998816614311568439519135119534270469012594163437396667501114135178728808099625490050399412288430457849936540800004527009054181594548053842697379815550308618597368965330588184764613681648478258674752649494340508902783528907608264481025137601510154493228577644312474064230018173737915836557194338925045108989860675787080077461603185813588780878176323303726842667445541400142230390211389024600499500211576037194224308912149771742346109325906491796105543029865701868554665590069371122288635927419521165359798042613689181652144177985105612683339786005267480035235358131796844913789798960569512746591783672585417007626233620414543778799016117674609819505419148993710359476345757963536296947033348390356507840823029065758722828064994901274279442974049893605670340170276070373666581971903955261817440908583324246301386122228519214976770330084414308352107404553756154117418202660375249011354643290424188157095360290471204738786029807626645515366622465429832077488395023837121473554574602742572008791897294233294517064446058262388949402276133007562846180271787542204412730596745822485418033455613519544593433435073498400671544104797818614955700948191986273976987487403662202608810526610331834949778671472711585725018716459038025834134798761655174981507408618962952753000573223339635487350583541906519983374843231027581624002761499162568781487506782263288440891763588696893969250077421067401439627915254670483282806006383879466112906414595025330391613306869040705348788084095555058423475563289949314209047465200606350163350509996662888555546936659619661862644377296115106792658172059569691935598235496379172184294768748926789827506622377274749403372628894008467918012462292125708418079200638439782210515783933556634618138379197389214012879405850137733318098905994215173797680473559957284895570485582025760846491920927809218044621454682162674572639729922896770474411668730046882259432363491741611057941303949219806467083522483212512494127538205123059665743347481176012205284918399496010114581109798216979787509618477942539870132293468451535375565072844992595933705067730020383339482390250755431711027545166928110378182238835858070184830258719499744804141251820246851317634204506770283081599711001264214487871366620593848013072312045653028213599679836321371780481302046213068491209032998827474556022897424571172495949499717948089126920988000408805336818686469279677846453036153858158430688783343041076150283737425759591566345687308203482888890627489332712576242492157785187387890755221789850874598626579258964402929552140698758098815134724373393841001254865356633407589721440007730519792813255256771622982090109194535087893962549563391234664396794931843231676025536586766721314129946994469465601585344989594837426689354867808191153720044964597377470921337473372818135464300723350209494564217677357745825363192671684802186082084106987842275438053055992293465673038605882109217267406739350020823778094711282091906988487249900287243389432993674398245598919746205278592793092981627142827386248484918652003678861958444108400483391828401530081879910101300261362034671236059281126447903633853575184284964448500519886466280770607671997337843448280914500390410524726430105612257478197336569708001439324771186258526441136892320163730838262042055459422321059757284626354471202544233248747681285124603223495792362876613654128542932239276372448151136717767144280196184507964189457079596671468200426508001051743928932892630902053527079596708854990346367577896478398494387798006604687592004366239764609383912049806583177910483298978059646079529969833496830352682055942878250889690933484350806200389943544213529677845437655459354827714845066969321963708847291784621714484856031546429821258047818359730801941198500693269001478293992112579128764155271689664617811686509916187648036686144824996440235642269035742971952915802427538920599523852737710391805412475609963989736573038720214693354321040461742749300255121083456855599932117963871084395937316818777985709771406501311838520030639674816998376310636185537747643500305356156040183858053190508503583290484706499611843333781929500477340319649565872928541448664546427967477360427840397256878202550353589988740647763452839175102810785844094337734475143573329106283775497636982832408577048081743487192887843562391209310544156966827381522560301928612005098426118087637059548679036719922617874830794860290944486203436750107630603522098527741686967556231520453727685278066864883085506082101018288471330818184031263021059873147344686809965158520519536101923524506640570484031287379941640592593103450326125647305912510881901768214675110696639360088474276132869261059513883894005903478893550647649470903557832351753757966740467792120978517697036225447060768087848961567214421931396248718149286676795316902846782845090670049947420793351283470080141344596692392546551356401834121268881189550785795475577139374533054947948400346662905833654643514645405458938191762606349479434446014830301567251478973484818159694860606030264274036610359215072685823282496051471491044116555481486348349014343040787529182149105327694158782389340899062799088357756633799530103667804841437473257706597585251725210546884640949872474069420789664118858991167092802396911660970744252826783855348822113567100653400884156901824913745400646501693797146040349823489946758001863793109808267637428615345735277799743839172889267099635735248651899659907236063307629503438907940410928630130989489625156108487350308096095890827018393748177893470043148069591726571833792787195116071764125656804002875757556895917022490707943320135640457642117021181537899162971834634735450191033727489165133030982989336343043055990037703899284660245965659720830528897308409249419551554085934332342508121550410035929995983456784991876362563486180554542539881779074573286739413263715537746839370443540411109285806033602519846872262079238718015987256065051203643277398897384600545219341000212763097090237083083890715312496127098524041536119664700916539794178678656423690456444470297034504887873941501623403909048186395224474497879134988482043563759529787734380735559428811207900073331641646676714759361755824446671761691841649135747278644498804573034734584530163034473814565283103966029730421933275138201001794911725121210901919069063236409231526993795547384172920923829248409545717399921789708957379210785782857106014500400526362643327434952502996623278153602088929649629327497961191620420108769886199861396478099432334620749460840306574509372497474991971135063913373606440824614880869078112437670319020770418728366865498564995498238013973463666235647516814645802109960255539801067257151371924432398104257910565324977643815245641565485265325206480016460880946560035209125995554494193473835156974085437998161809455095498212650365168870767701924486830847189721174509292324556886629774162183924863954747030505028877909576237545892029355838447452910266278135880419801178257414148971795816568684017209112355128482189115059541852126782889145882916573184370920264048830044874304524999046628495132515246851195757818330752630190158290459803580364774610114108368537769584785440136924696855190077589383305967653713334183194192948237319566708535134941433716852906467422937067502250579778830553188933854409561312272920918498058358636928235757885130291089442632601372948798516773868871094906578581476517059659948722137550356902131943325107952001583983083364866631277997371294425943588394494882706222704951277527851973730526927498082069232263266679011087886043750832798625653868905488609492687636153452093843400830924706096789448834118328736393803352534807833335269426414573251535550789512866332124849238823303777305187355804821894942903358421646625344826906232904675330393779432311246000755632189924227649323124138158873695090159511621898034172569289708895344314836865743289566131789519156403608882029813864474020331133127852285992777536802173538493140547807677874446993537890666624619391433757616981274136594371823614603341094722063666969748797623073581318945421129206955451318881078183877791043446466438196011527714459637462391528834567540563970587224164403029289800476533207011774011177715704982920431058855253211217820189803836417331894276997023431652948112520658972035876248989759854017618025557840060215258838562106763349563605488574419563662174336119005071065426435472391061727527222618556450930883172776391991976385248072458823384429229605986269977604330971640405930218266499199198910274076772024171120402776444385823130250401813963885817183066061114474569357103102662267422345437726195946976398051570731038054341485267727559020036646789623457233331764339610566897735051465883326668562763695653083612357082945775155776690245447961692397165497050976331131707588715016268684667135895413438504701444698110366152530323465037096055078451095414983273397573060150764181589021026093186286351133762940585158387332991984901807360957847305459902903676249892497366733101924812515312189966375475012222364874275964055516747084989326586052705499170821839595992103023122201808217280648401812085495131789746219145931427074416335361230769873191251071653501295785306218214548220577388678352374885649038197019709635102929692396427582304050137899088305162911084421047938030574163856125282204087183736219973120739528832932802331443998195101985488531893273773328204716541273839975743980183613444300870583558291809671148237720155013771477583253559826336199624429382140921828458344504744156941659319806694376452858093531371151861536896900676728737547541920513622330154251941677346363196330623902662219927792108655425716083526755127228641658231317559976874284875701238762607277703393074775007736019103869063126310826151340623639678763986937012316475013380762840174215306882762783914393946867206594010165113874200320449316255121547423317627110220347603554440534282715229745686499338402791181876361694993752343523693310544809173387828507867060008934934425064574478678962017804226642504289445554511685780392193391580685363372538214110487848817788138246709488542167883643646515931565006565165128326080795905193055599764853140986634242827852562653625128671583731084442371707791541722146363155310618838765131188302415899951086410839862349590296815888560793768365298294761671704431255068384912546839124160499996407848254671997272869866747707566075123038213285446053453106320572548611162665881152341101937539263890650619825131127663473905773014839619113066548268304782976857165531050813915296138459344037917042445634760304896314241050332913288829492265253548284085501088960229026135023148460197592312683169722344578752803784081546370126531428075895154163718706153726753775219492026813172536599602494653378312132683992205157523877577997272639751237039627354922839777952170766817943922306480095536537152377877310604207796850499058522023755834244124784238627062137202835873512142204738139313384218298742524732448527626189837472940753680426147953899876312897590537226211050030540816617909319068797975799479909212039892674507061559238844087324003981125500707386913781823675277687711390889202687603792180851970967941333582635999178880003146328335626813134923963174805771502603693156561676972451152174934512422411381697692469051476327248908672769618794667206635122004547574899887285410727577206947110395405855027164869792582060954918266127802304351280776152883111455354217126335205329125168532172857244482537797960955924582744833462795461141945021788627378504214439023963810917650281688491602722131250327505927854644656776138575111468158096581052639211814340999632996924997651818054146838386677200335302791092606522712503419345395275136192601627602744694372393479274749386799341622706815355965462513372849482762829799015923984270394950579856546334514903786250045151237854012465209662553668089171552030868005435081735165031346268893217187642598802524782025463411300059138361803522954368775259446085718777334383537619635607704935781581230777942078640652639434293408854358629024451080846399536807199915383510635857853273448844153401247500974965331700221521035806576311403631889665333791288802160764687425310241986951111292199950075177879554319822993337916623561672059756221800251997832140723996306201383120827049806729571202554597499289327510045806399093570664639700922087339824143453744341234359071401690709499968346709886809220481465262190473899089585697808908429927770752791594623352834247450087205114954854111018775834116986358613697937621507871470054050570062305339549996474376580886350363421898276286459822000101374384514989134161979406361309536246459745972292575225911225542293080201913888025158711137955023334765536834370880639350010362319623592793704920448389394554392280340097093353929155655698823150012061981635848741605928834872968866029316226901045387271656974383641436626125243568946236111372262937680150826753280520386663834500991671634231134001425899689035563158645451737645736154520145806879785502296198523324577626550669071490598040656031076416518878679953247017083432140424488504093439803509666703042845234981585549455048742850243158002760057458053728338039293062606371133990777927077969168541044101423726405223441606995722492041398098210352960161476613904108970981788836508676304681251834328041091248240254243807063693266697279328178726479196540006143223544044656131258739688900042600177363380458345454870226096724365995823687350857876625424131771724630023246876603435628288561474583723129297868382251011930896197934770275214233289110091960228507222349440810213527382016198698600997793296667574490371563344722838611661282085237159485286275567566380603449861038094509155470396871567988062417197921112658838651948280701640066964771267682868327678916459919440083629793918032343656369314418570653926318835324800454015078234457046755566377419148184929772197259958616559514823808313868303631195384084476692354739004269251987925090886322840997037232571092477857818041382965182436850152411558056457193435048302977781839234676684206282153558056779218444868522133033794460774159204361042343384381450990552797395831574018004119528863336285362681112954624462054546037481007728257355910341129268514479346326079898711099256145899856369065660562009184560662680906494007493269899043918814967295863146811580339764388171032806480764232027894735019101882581070056613680815960532855803057429952488620768488883946270294024407810971047260008361168616695255696646332143448458546095548888194646532008325382953583205251192635605151314790585291935056535755541227932499442536767288049324965575582091610500106144752348978358927812409093121162237741236277081608007663869392287402485960787133872592500002231088484934063084890685427828747827611682494526891606168669124070957012418108022213850693897521951075882846078463202691198250411743595695595843145007793532294979182489232129754099509536283184813888558133840827254933351713245028532667983498304671569916804888875342377879709684858049380140136623111880087648800831504027433139120871099705617004143068471338784023698775382015495525241802961115676909000710968911705569206097487456150901356637752705546526615609551847034523018934635570918061759763420516720783740887035270509532709390859352894561569378710716008799795556106864172866285548960020520143165591824478595795088323516847317715738077968305556626029885199212373003090400075106662198383206009011804156793357263202006698720289625490502081102213070368031170993133275197327911749754818114655914283726218564885529550443740352010798443799573930682382236379576059799480769275488203764118864335781783592292538068439040438202067685248996588989191700579112738773747956275458076903341812495548167395773639821612106216269973391611110094309308157480342432520081613778148235143866634412050196405599369093400013475785009812598295706214258479560414452207879974877691947753248804782908795183605636945765848252301470448461637616188847883798169316048634566823390844500004335698559150863487509674705754784444343566883100992944850500153523907311545955711353667969407949894460762842977752051265186142108536953131214553350229105814345029807916983777459043512998164040377576180370444051142943136869421729165194628662950173458400683152102961923955232832842341082204615179936107890820850764712043514688431291005151214909359106716551527925229273359595913864016747926792971227990331472556376056790502528160268939933394285119390232754523093788643650892559038239553927934166024644536827753121628851275217689349498647721641946338772688885230720510301295210690223817517578092365374042372864795807883209044769796274588058500757312866859391207895497751072094284638197896789452131377217928696108831291992161547396076393980914738799664144999145422918514774194359609472634729964940379787982768101469561950469900235233352550187212717703496079154811796592244465735735746128024704451917489632036239256761244626235557173588441138903614129529397411774639424609870257964778114066123565134483303598941228170949530489366887630641727934916212654150555996515666943780627107027685747518238350785558077892215476746819216131884607623928129870905946516453430234797552349262526262084760248285318093771616414831712947696819754962139497469351920421888627665810666663832375519296264885733715454836459838278577128638599328623608902996341931729822318181178762996507225385247096635070740023085631130180447990438936450734558101916310747126449460980047841884772126185598944606639710086089387693262151825511053187816402494383885738101840296471891172263957896349212418870035567343550489298187522632337028274336992333373422655487418061946007070343203995887809071477007164259213997012707504799373982468471145709062414240530843173227610665847666713766717809144397411001215402255939157814407336082908949439786661906107108715400674093544586717986423831511520372213211300725737196037304109247335524752515874688383032684933219654813618634271205188755799673988327936869183081103999040385865804424350131972250715743024276897305741409877554096853979330473914379759886919538436367331519296399573806178880292469192733712004683443546932934893681081921376374158858479843691559809078609965270379895085636880660398386055693209646066665736331240063480635573506033858108218847856081381000847638983431319119787644644520832923688280038721720346493726917124828759734387661989821584188939692142172185482979635826482177166401303571346865647022662884418787789756317187586238030440561188476340826313799227632993479452460746913634977035112312736684235709165795504917919773865602516454501202289020992889282743005574875113210141149264726285265504524952249026577080769416293295570613276199530906764643353884570429070408675773505419010020012706159890727034838474993997010326359508028910023448263819704663892862145722829239942930270086182444644563808151593239249523625693572144293958127361752709464814394306481620998392916590191516688585194234699377386073053371701831920598975502746829981047388105285229418040825502271978892417697490076944914651737081864355267682141653596250225951459418390219442521868343090978658412352224657331677302550394460590471517344669301113730859856683798271956184977930626263401760341486124939793697553720622283474564141698813334168071505241262720401291123902368796719860153330791628792314490854970870169660261504597828635714835699534259780099645044622745800565902833294784805410677384012612440480333824934723904446660677223564796291665658806909170006747526659114119408348783319149233741293860134840883646577089138380073805537609427045318117044615623290236288313412194692014657691699522660356870823355018199102612402268839768347826739519369859996236978361570438331944548449295647906179436727308132038969470201543747910004747572534215605675439496494558527971095829996737373445601274031033756287552508336430672788352110706306671858375949797942269151200747750645906622378407830185855880391874673820059934248755943277862069371320811048725787273138020408283990095398305928857647524855119976064607782347327764814312904327645031572998429180023165255670029590919212194128433611461954730447482680410432651265476336137621543345851544905072768331777420966143186074400484068640482561692388265182848911795285017797931307787795169915852602204044744551248383364746082767164033509519611868195534165142179631205605255158461894929293930653269305104613589232226531605717354417540215547528902164529924162114712082076531339476196008564679824602328549370898396160897464609010525776922364196379845652490669785999673567060700962688471447414969859309304784244183620521112917587998753465048211440072345371157959299105054466931824244331348836139608237527745132436213350551312597081643113355018795008913600481622056403461148679249440864516743963437762356624403995433976393944377647260890833468801803199081814611471942317720758422668602694627239291225248693376168537351791904128872052627384051759856648722250488788763963919174158048221270830136958354691852902601926589712596264918496208150500637362042369412698320777784721999092579657218146509014396189034392762474046907202678258350065363936798274393705229034747254056934017139889242915442479103629123967662440951254311998879457768648076664727768196001009085172266634163443948266333700323186166265790584155195606644893587733888426691445142729822562448710697063159154023775877340700269635094609768289254791925200434263479994028398144644804229907539898458414776395790185656432543085368002607937451112834915606918834559550503672513370282189156639894726739731248951762462783025054582601027796864281489866085216155605607467692295366646929612560013425244948452931139849570989975989062345998269899738511794660801601520542377603885804895602326391595841942576260750462898223320519798414377017601337321278469736978392818472463322852454432137001805229129142292146710914979423944263418642710734853040400806979700540173792042472611837766807609450021436174424384551651651995184647323877417833598492645718800041648707370422035643631022808643943528315017332963602828850790587226835463370257197347260944189663189575213974211348865094906755248693110135283369439557308690631239416728265857272573548095600571082544259633441860182669982326197421273276180366082918417987907450838412400579513092557769490412237430922930764523064167143956904934183354497896542662955578292612115691425560590891554049810671177540626296222877224221150100325193158673197349982989338291513915763246851676733072304374176207887352762553688815484193812015150069252908529620178293953333982093619849076677247795321463930236961106683372439271149688582701550922008044456234625166410948507009451697117571250423083734031883442765094656100031136774220505066203709333912326216782226998262381015283325121244788196170366309240523748241953678736915154540702049599209874187998343990407571792763125337693034385546789065117883804832958116424223489431201319229422488502511386654856537183959366349725347233495755322085131000233759131143744168659221589826964814328918089174219020201157653364598696621478084207951035649674416356407846391972845145809327732777573120877455164118464266680158301021379762999172698816322188789215897509073341422069985708815997871417483653049956427977160538091922232739346787009742014404908314979247731759633812709502394757496358287056081642438805063645228188529445795959210839733945781664269408594772332653136220384952806524871036664811853616651828925336735565026554606590618877827085241968096580761666056501143091387221091536018394298021373029425681004536150987246422019460382552549265761058389625306056269373228835548805553423332002971823524512125529561198137219565453482994921203873864650214177265676989628538131418773158386981211585724211558756192374551733830258272284528808044445885152954731007224338399695797101161119060208440650931908786123884021083932185872765262501197038866090027417257797844951584105631431807992045771169296789201763709074935775576062427777645955589141678784451068536790009872377199173156964765745096676496405842413094941393239649425170831064440923002423452838921935274074546617531513662951523731297239166203508438029992492563634983678185818639595464306754092840652740380426429095991821299873764989054568659457263616376060469572298432557781586918344024131523147245697200215499510751596092859498126239930931958823443861181097077358034697909934444979239699846399503251119161638623529713861883846058697244548378770980680117647106078161796814568394607624209887675607605103924084520575837162922496928549399205613641969095319451519763648621748855088668733591357471974187321001814970464298502123404415906594375187415856760093757892568946916027800370891742678958591086226480482303209330542273092048272682487871961151343628427977523429722065247468402953717371735774063301772385447912532347658665086814906171290989976493668725765577072456185690483783785889076546836530745764411440295474619677592055522259332879446314311452414845964773510647181843105884453127532443299064024352227970217805237920447595726355087380545314577738223851068191058222363676996111048874725410098059930280186550704155181714221764588345447354196567669353860535404059352388144153646742258733207603458583365990924874092259095722605055677918803668541323990770196984485196042062256861273522655537566615674234679880268988683154830080177279409472046750266756335752150026074879269500713715427464682337759121047207720304303257468253021800471442817221250791333317678106600348544943583110368078670168698306412443122730728354731647537222076606771853536951010587379476724069340909672912246452279699590368798594790066076707357522169501846485459923467158382421757918114664481224542713135157231730991639400847087277545025739548701685047138668836551525994138135431408817992839566168800046496443433051019619916668330942751286091721742390783346662180041269035282001194928437513387328596157417567110429802718680083072120732517477936431379732185358387725888004848308952955496826645993342348369018381394211457154904973910296156824356293390025361215421206467605671473377316707477595633610076461284828228264095073120386478064856739308390477258290692169093111681235582708280126134669360042075889216205121225240573717618172018659836052360518916049496149788443251291879918193793697966791012412990870678317866394257646775281805670728088627864437370455985132251664346241930951280985637134784657198016464191031918512481101980238263746875970020876940733772172516121674240666233621152621959724757217237596444803555600336211566353972004006592415990873975167823694325277354773256265602319581116445239872804514427811760296931956743085149492154110340661822833326442927334720407864837559793098566162549224144475871740612090622610577770345878762346329966346372881708603997717890054607513983198381286859150191419576937179889096215690801420601113346255346303824712067859632784731561472341864551342297237153270480050142443171890654106346671490462367200617097618699647723809668073776346231127745491172277884872060009976723611729117426023159990621274022420052450646884703695563991022329917643074628452505932004120848002061681666285551916706018827834203663811779221030376942942183162650146362550823674076643466232056323914391547449341183604547178294015230046227606811388424720178910112759377923947242714822391167026795178300663829818771156803145327969008117141692414223607701022607256751679759213020793339543073167635595843843457583618093335714447442598724192183991206209938579582052414928796808872080791311401464963522044450306835354570651212217686897939466926891771096025365490274584555101898934686604730808431572454350375647311152158863626370096885446726411885477133043072687567593323933715246089104247667838072708345036236615747587088549767659957357509220720833080030298754991795402038221309220705966881298880188413964822581020589123771839926039342391662451714280753280694656915246398334284809295678620600411020089292678541292493890280650066340168436177680730115776550295433817038245637148785058554735267589721625961009490783256116650506636446111475990808364188712587734647975631850441166178652656425656191450067259385733001992661217780065423093131314747779513879854981438899151578360101879566464064208108273494522850852560676998587926883814202012661371231366881527551362480872504895555466039522805261889912999095495495948089043076380876101613378532145469250557658500136472963779079886937101458328928317449885210228230798880363788937153219509128555030981204054580306117426150084479188971323150911489444452354198598599853199203737265256420439516202721918984522752365453689705749166798871971644355897194780731738246192528170682245131104999738484403344909616313436397937082330450931793016012497901725591111213218177245234711646106897755978541275682662475760276323396447782073209904807630209586689688204525374918652731524583614529552991888541935788529964226977407313460437905955173969194005209868110489820778785940632189530969831340034862293193973116121031882082089493800751102488551141907180299981871274204969321823215013215716929343690774623886602491807064322571766969561317330333406659145074701261715892856766511705811654704498078498491478331570346280753191136833624100657870124510316072649801145258360033098851033669297358776393802520681916143147951363346765779145796302764408456286804001822250036524243413388309038555981399122352177450000145081525183343811537192284636550462930660783318530193037091292111934506698815335021283560270733233683680658339288316575316672274410413065007990961997991514124266380643622880535735727117791081558664236356663312738805607097656760965698509376888345591313639717172284042431683075856043314922598782955608745820189412493036098366368498685557655980593553006652077121661256328930473980834322903892217681316978601046680576451486541641123220542004232728669146932909609185601306789972840095145170643081527944807235896328039625638386755481718730313040768758822890516544271711672507646406992283076968484127394854595732612115337989914589681361854347116799779466431877048135703922522018059737006958387668662261694258784229530573223523185500668816189718278032767906855630402736817157110007498855593884262820183319673993763292265423815046552428742598670928692458030105390493648004130936346996845316329793492474757963672142602806180656819630591986616035623796536905613362970966248789916729477801752793083924823218549434801567538312628285446983745447487350390034480107445719882749947544380812356028494452684302907359303665006701355973661322625156481065377983881715904906176836054841874547784231680767893900462564619540296787264937610963994096379413233862236053909646808469116979187425927852910351923621381604417131962210782272601226723461044349121520742471348520301212655610860916482550924800622416573844508499114073216902638826914537308079722353307977901129099878936732622452436084042028802892320190796471669547442508668088335823838944772496654908749289490343125588801096842706160143089461457558017169713372290824470432465198951519600501825650735811863134001948390911830900219501199579454812033008552968211452599306649860594790043426620953435694098200445253403511809982724243727490192477483260160488357306168422447951244457282883640220755911403259458317570541175333581485439620999265849341290930176582654828555035105006334928815856500285758414328147953758967681503741472734435190130233204189860308328100400199908648069225477017470809650015119368605465800489376805110628084192076393482931462086738102255741828205193798977336307658275632088172264240267508513391868047371565135928886323739279547782523647578726968512810344837028855049905395712564963701472005919528047834002801670139467453586766773636717445690839303928560029486222135543442252779787071989634470089854367847382177631498619623362949904169024663309757462284571060067185095579371755775758394586152400450975887283720779051693526801649094083019905917506849219931142130032747478266087417942342706523974735497107456565527864438999818129912606398400726220193503598185215951932363984132799559295096977678197379546470264998649125568535367840175021477160881830002111314309224009883529845461164705462407811706875829945073146750022301928052892610629900930109796482152871449397154721574300358052859082482587113409672415280178061575182983768839296800429861070596597825402483220053660000658503801352521638718429880599327289620504498075366855987834824864895762055741639914404647167182937879219029665045049329928929660836066001787821355096677054864799639558617715129978253215194038245352916131408363102316282990487455286215078184433629909803770043526999501127187945550493474757466072359759807498606574712456737536939593789561476753701294752086793059918863858359373491450868761089550089131379627910219471238998982668168647259181680090373616788122437424169577047074139739650698535208986688573847376567897386088918610607904564145040826957718911714150631979885292859844043474024111652908867620780350822528043727518411630881760957658780139359441975495371704800245710791549488007432702971707891325965892223065952404149035480318459311687990910839016925677410347358394348673600594090092647482534243460581747254153013999555516063762160816482129745074318144951389054811657758682111552099470150691678088810495491273042855751857479092028728228802747223949488796799937216722606075127319397283370765526240113276101206400081914895428063372821927215032789444821460232723315247505034872271058982663947944007652576443018508292384822076847281752614553370416766771077569394730736273464637636936692821551921667885773011933401384543509594413769736029747032304767215658578742510475275237885395189159319928981414958084094401921805106618192312436341321717899361514313282962037379553621521386054642043285305508835812188960295859734353423831671176273556250629532993989422744998547076847386187380625306812912857135072219334045490406957253182081578381264539115934934090278241651833673441403435962855676591396003066062781763114753621874397799638951981203030983967804068748558091028589750381163361527723512008535117178516799341364700580906242267969801865118267568939517631106133360687095352074640648871611457358011237621509734482434849211179177130440041562511288941499125327431989669954184423893129666021039008117543314233452289954542843767065376968303447973007101643455481442274549753754154746712168374731800696858673117298731649713105936753355547924256303865495750208840486266638818912297213190175011104251192065423416437735210370007281740087589662212836338013071613284465088567069220009858085878252385679625092796021257948107452163777574966500641099238179643394095622720831827480454397154809790212952934305109365273785801435916962683411988037748418504901415914150060741255862398694544934929464385049551407499293248041800917782755348799257893184067457338838712482993812570206432648052222240418130519276072853850719953327673448427656630532843582753297885501983683916238867209732210674973782806971403679805895221936373436481133034421094575546873936356559548691948701947164869740400825039150648670520585894071490809460427868894453172856292203632643526167223970844438564936267235630865807729122349631367259087962551044377878435310378755764062876243335687825942611380866580386636046056074620056017587176999352054166139382540655622449169674377818806054569037336166413036830007474587640102335941653853084381922441040209344018867661068891525308868341736652829886365221653510663024544822279992931159323981230421136048513404793487950616194688760050511836502691060404325311611688384586540607954483090907514304876411716046450304641092337070280970838515596355415152481633721837235778207236077433711441406986166582144712352396356661336267761718810814101193677735976785306425576982455755273593402293018911778122870223136959698386746585146099788461324279712834573775220243208862092703505070838535777904008336530329100592661424472243562242150382172477664999185730445682368792925710984871050929448695900082134963442301715333093632315039345263033066327874033166768954333914929731589702775089655849455236332977219384702068772892125675227522063556722085908699842491439555176175302228118254799970251974975396902842381444240180041430865378054547162488022487879332949105218555155733985609967488845990899498672316312350816224167624854105116896889361842958405083874881542151039755063329673782843433603900356923117315775466931207199848956655949784608354377905674207037464812961745703788820087523889353320528795601013663373027330391799811368824525806978161363796136837893321101601001657243881414627562461332575700930139706819911735735715575830528644542735849886711831865996400154362391439580218973494080301590778702287147868083182100088090624959232099344519132607632783583046593166562588688603237892370393146291402176291743440299875468308209670512905586802601004906977557147329671658113989117299660415665248431350399034035985727047974265581472994663939335120351861238349081112511353628874986959786675126946518937355256404015396740947337142369694369856648550082172258091637612245789289701225733188183779168209919963563245474875359760554453999636976013322039894294639839828104491281464765617892619109334196007897435434570954459714747564308198128461606336264685521987388183183024700156448356636976321142811004644812987745951518011215832499562510823614434989842003696717672434997040177241185663681334569578702821622248957287973351318681114928351445329472208603739496378159063726830128619538541013188631037840408961982292466847257534709545928503203951921621855934822810867583837621741718715245749653887537842692748229005562012617310590806342254855662984423182849265650354715511316016654479663292310304586089641599688319152788394502384691057669229305777250058852351149765231869637888750267281685573955370385797176590223177071444383105794943048132052504991045159328406018003218037062342237527028904866949873572878363608821148353139601584841739363248220491693441241662615031947756517544916535088314552626038473346538241082391506087037120487065612995217074295183089490232947362408112203566539505532466060966588617927298628281667906592090735501827178285876197259829898954221366869829189538732228695033374316361254074521475919011496509857226885331353918657713127270779133469364775569743995887748499948432614007627983900426330640499256767326946583278029758140867437805207117126791488683781384873319120073075038724767949305998887555140352646016408655257354688624142235794868393069057302500927936748175749144004520438330627934068596125231986327214671054975105512177170362577339182485353197165501289399404322526292204157325983692162289418901239376711640293682126041393847165950714628123243845814502732705030782629656942862691406705163394755245602040350793068845244909233261528784613650189752709346753565354510605566686047802000224158510640503807830467762650322073670780627162954632805957670688511233330913585409111172436554608717139750580482638485995324289840295075480401281860560705755117445460469553515136277938125089486100928881699997656696249483113275081160618209792006071687063384895733470656404198181674473102130803166296400235825317374305434473298056931429298720859635637585941499953960294830687692219080095649649759272209387849834311222087617227210837527780615653710365728914058400298492174343206881664055444596747636556974722807707336849916940163815064523164380433853323802500883495539426017229267465750107208561850978495208011054663665408301577398448723452662298605273614408044373661561896355130779043884409647926402634209000609596393245416460765552561504841222701984827722196686277514649670492788458477136197967206680810244334495613410812084541528511595163111980590593442597262907395862633716682315348171626936605545555815141616556541982717545034490146700909953960756545699631665305251930234971054703286299157494867012226935612313851913143238650018591075805539021961185773911083966844542510253291811624458078321587569823623008530767631667786283567226920024860194331054522354183517090973492386456925835423630384200272774638692694383129988562578064038868963558189695505116628653102913308247230718431871747736921960167131884911313381174660805689529782308253414211728749851046003168505387711010679544347849875845403389066153080371615751879272776927740438697065640728385921466520610334310494027868555623429156336727664475924692101957973313294451385109534012556131697269158394189816438150281529041789591702195151804848175868011794217598124131270850981074397003811990068654715020248830629480510283340196081267290641779718931399059072623825882564355352008994603175720124130912517714915304330002223475091715486339005675337756028258415527737016525911241803523984484427246706951978297223678090314559301924754732133745713755222322949872345705643913020306360694065056896890937190936734922830943897202565427721329407792022821576534486623159282443317566487531289286417296890979619329550811697563369632788237015269849558855722882192113771247996572683063714123348526434594730863533857108486537329000543393800386681183322147223192244143480360499719818880425120157128343201899383980174038780681165686656782806363588689838435989858672083786642360372211323975155946147197474192354018117170928323775133635601412119438528876566986756081418864450988360652993914509894695627637365040319099458827431426035539783370039625278987365867433774935236709788671123362731922922056512432005652727921134672540652852736366639452500009356748508211128215629668150741840379597281743253197520985671769071515606821238407080473497343525161150439834637088052200590985557563263335477741895296020804997932633190061124035720236180545005524989774217713833946155477390159561161435303263952229921738272814641774024211634073438508313183567674125553218087736842722107792233251112509537710203420189742422049073712375312291550640811975264104344179301145302402629449655276361559309713419366546489757538811403916646966617381997430448572782525331650883185295375545656830198708891103964945673692237459370437535145666397807914142741258056260481772246543294605987594999744661625325608436551919456026004528656254198899025209212036030949285160170286869760300351871983975099328738267923957277994087912234854409674521211250195860844526527581545299448933988416688842921065305105033979053800644538170593259377230149680560241126426451677384710765712607015759003880722990566752327786340946595138411090219529925231169201389621953188394716130117251369905171651055196782893464986878554461293909862441523268433275842457776995912983385010138059529797220049831527280005786596065205403407271344250529571516256605989761808524200120041827954474297777360964381157212269629283834728272986547732234685954652583709975149447469649324766016174153814247280440972349734199234637365701805920149879331422514671601153522617382954676723227935646816212428800688257255631402296744113802797668771675082343097764890240979776361711172711001417304676057313118054028029926765257309161692737417099810060439413416192399576386033507888225955354774233755604923186083003489249571673205855160925253860530931873257312585314998850667586437456316021074712369596329817976615909851488423410204428638530725447425676251615745082128689257017323621530401057433314814089726164621045889644498231010861931514712832435048661097438705336701933981360366908968232945301725254628129805422420711985032118074515141414195556175440379129638056558007191272502743767027521289749091822395775943186005681989026598686575923196270548840130162290539694748230805846789994975171105393504215005787290274320681760999253548727523452056923671313414580774663567267824847753314789887736251762383498877297904943314038719469153352310806943205112956964736754731888751011667454481322812375561638592031103951579775044498886958009084399877297650448306082058193181056074306477891235447401569755542330307690033712621845898134603926328368696955704002299687912433475031047611427238241160305965508127353065020788241942750717485093431653310636394148307381391897566693715607492200949672628668616411144187634137286150259017089267273464497581069294801322619282995677942626157473137969105066875482624636041600097243285141233158651987365573108053721329084509710156870865398584384033818009093745236186765143235019716141937449546343383828773306654510458053452928480987062031189265270371479094102297539871603001342291080186926406439168274594795440630531115308610063892219403609364236795241155616267392168988582763024233044568654736096956524128265459317912304397966963737186727625207915743483265791468751583512390064466106804864565905505493977985989729149660115813803145483644404176524883427325428486670652779948202709765698297116661178439060649378773009805511096051291252146227866978892813242634227280518463089507401298730265796910433953844184197943666243626016987889569153864867331441267447832788390647393018683878337937574003515363223995286205037530701827014178228014348569737161911727632296998018472051076252140060240880492391512012866602249280170133303858715171036820379280433609554378713957129724378864274865527951915622737735587794454285559476115477322413039915843220577181120366708049020232234969908683046717531564070354913982338475667073643297391451279044138930461743505416894723318513805064742788425397249530177427178019249783443948299004152090772275367362392725369910199426045456839973402268659185907508789359335101972319839602441383668830190818525799469186035084996448416080548634148388575030608711200304306698311828528342402238231578562130709886080124827166180735882115944625513629756799498653266614177851966963348909727406068449711799407864885038827546177056155620996959413824724334212713744386305905514345078992171850795891067108453897934039703658052081494857574347952785423159191494359453435814697006557939707757872440296974184118760798689611374817739745866007125149299668206839934584850707900473184813654413350407722710179196861163834927492714910243902989584139099786297503926515007125616604914476378646701709232843011846797824831745973228485218590415616109587177744649537489071057549529100092349165398524400436500215103816000815769591014624053725503269564052832893884013636375130293665943648351108202148680365357578406594510801029489409281824201581426004023317865049080160995141445969404957098821328302862056333652947792848386199188171654868126530090958413797739795314151745127193520719220860561688694298779548498231678655759299347785620201114490569189174170022366549739019841512247789070285697744461589470914068429734313290393688872973968355608002494448969725718451841440703981092047316676184007319069781112169729618394265250932257530396701007396436864115088613560197506666889545854154438942028365069784935929466452938090160883516266251875252202375453644404731441903275097397046819038137190793804708608016082854218917862190291237759138858825679112608334282196235571414116619867226558937018833851320293250882169400535067610724848944674255450111740417471928211129917002377522349648892751373239871881077093537199140159382878560063694808031606541400194930120323618961174033246649869804372102510796065198547276490216793719718802337751412520221670663624247558815299372044226897038965378367021900914222470750224974118405735646257329635230209792235255623282019404994892284504588246047182987226341535891071952417117338382612920465466323701837184601509227609691337714150693051393938380954442526403256478701810835450615210389473073328572530713232779935206537353639673158371798633892902428321487628338059852597994841876880480392963420104509316366931539404846830621892513923992462924387471705677454984910407807973544362375147293522515772716384233991939820123687748752562570687418349439755081511866067308514124145737375201167930139231649460590303194060780904801082137755647802880304321280226602854547378380528576476173057763013621573019677508315018132464594171680580412577053556664551664388057055328903394803629176439695739328139354105653764194293758919932063574198489823523079127587971282358460335720770901223332240009781677635853599591401307979857797835638803981928670326168125964627239404104059883944532689503684934358024412813819218293484395492538814892941002922010976453209702893225475655860100923753016725647855434250456165868868112757976117695333531489159513393843112584652579990905783286911750629248798167138930808739227681002030287147885270733040452814113052863839307149825996584397408653689640829004063225370781617111118754327972278273465542429494350623476886449222126887181815970155469201114592301004094136820206604773586645735668140061786007689563750506080684223921878063882264584121304540185091998783826027717021973603710074313106146569832305951215736829203506506812036837667333036359644498620675414266403040000138254632812811287658880375419796546034332647499021120112763135278288851657522348252557347705885937728302753629477067526620088666466112889661852281469871492645362764543045865924431898360790254920408962044482607045976095588566389212389004288368505426447080671210152506317953187156393734410230497874142718532039901434838942581988422527921440216680409134054339260022040326411747696805798588888477817067458024351042655340910578483591353344518417958162725869361373401451981467863067583211781613370411500079885502812318569092151926038770253076691883000818632283068287204513612870023913384001281139734166647803306202415377189335761090987028750218676902229465058588775131517124232955583170350521774512664413964033791785740006431484226100374131612776248575925350153424478550104482234545897723804169088161999934228793217263318327441956371181231447999129674635234794384480442431711251297024301050810679100074878630348047712476313578305419667231851733390571343467064345681271119196072981687462821996216117002606782622304388332950166930718850714004568964940552090069885416242865836951859444934855467969766243709973426292151320844855613730383038765353723744719270056705301614327021408930122553283827354045867993357607724184229571884039684612624255046231538319544374143031184259488332055119752430261993178530069729841419592053105257003591472705252506666130002187588665841080390207796797827661083337093355275833590353573752595524141469546986828211203808766473104543718086852026276183196115105709543508487880815975848472008465118026022525581768475447737088118979937225593180076936775245719703142954411893762800133665825345446634794911333582938107655344458382834851034983360133794420452761470447711295355555248876514732307766089921026934081015102097184935891973989625420496475844166903642853602157366790156902489570724714038274243402095682824631904340765502659463905138127807171477855357000516707689743468586428214875778988042156318645443455664663384590846242294294124432927202411043275291139203735444691123473600042178128520482322382421319688308542173224925087133616220175528822746289221204632692850207437776610464194486635345290855617003306215889996103227321136392990160541458113862362044284057068080595972939409267284707193958829489017720853673563001741567977672729321421301844799919336916767941526465335907042850844228528557532434485242161761576437341487765941639575292582466335657148465223511599942999729009854783660048062347195903617032456620721699620517383605392558480282622015583797096991366556017257676737655763376289701975028570359052076019926128565583528477722781655587748261985542005681169586712840056503132458401456557129042263069475199348993544524217679553541648254615729130924004623926710090552934988072986682154179639182640325829266596557521510516608125008172426204397708131900161779621290090522264332689876951524105935500701098555461204177271767195335816019822731980871249867709721851766046232571507104988120904301285446440202400001840344723278641048553199135880904442867096896978850866783699398496237266198960310256886537105217028854371512855111667119301213480828679761274764326057848756073892170941337237540988689363150286108944869699266189659040695249767254791034806562002108058313627347469360760905529658053401673831221113442981063291364819851100127390110562220873642153633186921047481111554323976885427886918330548425769134725464137207635210338635003369959061624897121540502435248377457737489521551303674258974998750367669786058248985661259303864383875964319267363579967952726899826600681764729767011507662623469655136678712095886990751855446899921698829630160367517244942336734846940341799547094536735225803263090186823738115597048145261859363582805651725598783881586498221847023964777937111455860268017741670105641050498356596977571134069650491201971937817634583777155803314809275532038107713213015698835340080457462539820912830036224494481604677299728447481554738331292891497492743800649067179353692938551478148031234949587923799129676949327323567531835657085267440736757772931193002262822728838503627283176276688449320830654967345350034386143434942946465576848274457745747793518597943239722207402946403245729968107434012522825384123052775776814500216371218233334655403042409767942331272555135244877971195575108948757057885094495631770543375035945388845176313121522861707165266360672164436322276223471109765068714365492210766645013213744198821926074238255184939108379349986340536279986186220093921880287256504324018954004564143983266924060345023449425060526709529607382902198561790361452057404802206130321795452584346721021264114660923263507462575909747783010796442364950772981810827164873697092972805598704677875942423448479883063725093318973217475206732636962583545889768324134472506643634188482607902102958025160187899707319304082702505607752506211199049003682620129163180902716136305342032708868679169389865508409407489996937531274133744643332990178488467662935792263790682268035827368109763839593132181355709065002137850527260109862402412629510766780405131661465586473484768929935630130951834725336972202019547630403539581831915166684636963485289980231023520067941797834070016220505211757734597662617759888536521997973625581410454142490540544337195881564977641308529815393026742120341110660119919541732107176315557707971886712217803292846607831560233715378655015586874070776014107836666188949900522984797566316771503751981625273820924830326385579014164705370629466224511632667472944980530068781572634213030908034620452592698277503824158949843941851372833822664416785892996839149803444165628625058923402785636771946036263948604138736952474256712688667411316792629487971384433899578745134567771427888629471857859947261713420946708038045315076484551039155641123740805759252948974769696543664138890407863430093181567472494366173139332454718030386356055253542252573089482713697106714595249229747394978975361369825695646524930185356057927634771868162332163449432169901294702506052982484796707071827527397830792599255089987599340484116467443932964209118301074401344345635247986327476271996885274844296906037242654107376964016698107551845834720269844536395010591318037501220975845051982643245458319970746779295911733715467761987941670564833124535834995161867083131810431471092053866359815621248392593713813519216968778922856994634019651710976845326468179350552303708902138699576722348522335632647151705589124323966191892974416028144041945054996354612714794747980370991961491164046840442740499220464428643008522034892885439880350152938723017582610105146366001264505407607310842593197037307809782343078428152416135180245865474467213143030724374852881327487670948872844531300476842171248977959075659142789409717969180898709069812529009707594169133720742530780942071365745242774653225297247552349589903993866435548723078189487514305528626397899690222894998301389974043714289797583628673774879091599257110426590774139580718761359920141388033892152298911920357517853572352947156949476006226634170589182296125431846085315313762404303972371435353919357147016920136636209955550330342083020555692611547198799749972228798359894740616315863307496971919083309936500498631305455346122161473213607175930324311317976291476304938721073547074380748669935892705924382937368743499596561936999680659844966583119165359214903099338470402896810229440257529724334513201654904059350225630698628683439790841564335725153118755817623832202861421144228429786719416764717083108962694645890588738264869164284031080277994919241056965790741921866966905981689140781138648180620876196679680619285335465800795666270266873054655010496576606517169892244378151715813680300392069894027156315764842052177395296449446077311081615951923710984623845641951347276556852174677328145056489491383881120495922086484060176785431718719280097123584832900710181312693232587490580680250396629487303832915455796852660756857964113120343339472826618637538110831630731541814982148175068541048809483864652384297794924898053976278278742462638684002686321159427128586005063845321208626774792705237726095744247909423557805264965230145434850206319686909966450869056451154269507146102455077244185663383471973554597233496551491168168775014749107409836271688338912305323228666616270320683446552476619091277410692807484878895336726984242974104818437264746059814844664547710330157311414815391226476252424121916255199978702485588647981193098766482706758129707242085968367310999169308216780295367303337592946083474069554808826833168099233712433783416588195501042770740063527864568429957077833961351138819938873908552634294299721957293983715629970743930645843991817165613188955110630209313017648586515216788636878641273779285749157342514662562092341070688753654095604726909534529345855236596931952530622329592386555031976840331808120598300181298962719617926696101161527325826671157770966617921289892933266472103191361345572598566516817474299536017757974176998351128593510613042285468992911376582051526792161316586899452079040556985766877104265027918298036403783915940733130578435349253709744264794280227957755517374754662800465396093636992891691920727956238365015446789693368940006207234376612677223147011025542046726103727978380158509942772770192702682637694172841049873265473027868881856349388156411389818180515843966109417757498602405055651452317268850685001422623412870946585843529331457257157077130769483952796148133291179369005384199497694413259939166181153988179526995147824628137672053759561247651363644603971793624116120185691290266130225382656674939653597986628630007009227939071408947092541080178219852442334314448690100426170531379864005073111789751880068967824585932631300500962434408858296509469440479173944927645207416218501112251311684366609602478701288090792264725877550466286011922587870798545432122630984415763543687063331554321025562572073376903764836743661897346644392028688879436454648589238262318795731415943131978166358909892413999683087016939622669091464052166604740138098151921832076338582354706842102941901487366260947609210361795677289167585845729601062448301185323961819938821305219707352951923505570179769271304447908778986871739891607373462816023829178564106198171260644945718178686787131451267851079503544760483959353646063240936037839597637280293697954207159575668684845039361718931705522563341044413122744986211998727398778332645863122188028651477238009622287463443340570163502254457626274139449392371248007447194539529341510224748085191574806544280075379482734144730276300513034750783883201525925289197588181652326588148733421371998616333493726396310149502847656341291781119152580119754464128960653745913752138120064043568696208896929720950559395519179117151846430317494263914464324075240847720759378073087117780028597720351473639439088296427309429457616441475255034428213569120873823014262075151212292238803179333217103965480932300130484490252445840669493223498193839127885356972556413335015244145065136132052815600610036879701490905525806962229968825307845051415908619597665156184368523020856078187884778237221602242012997614924277376758019710997883527527658414913860786883747259743589475110865038470165095249547954263150566076151298449819028831837675686230749376280774733907880462837118192746657824049610804242390575263038202945650894690882683908282363245522154944985142620043582142543606367159393255406328487448138101256243026388425015359110037578955777935951199764472847564194122755096001445749299532809500389026777667623033585542130940403676298828438786603717163757342117249462109875666855879365875373140602473333129015513055209802038485577460560482482623519071826902577252628827517798090286275690810124223602838036267194517032167639899493895878632895535809114408819142662954713218730135442726420466301944411145823208987905526442828110890985174198985059445144290364068514944483370966680031192809715781055511182043239976436604356761057737724869526372009818209318352541612306399683480440988709370497168363045870071958377153749346110154238655224698577189174307567952735591844467611402730541791737241189233240301320884414367724718749057243936123256625279836927326422870587662254207675344862328018716894460526446236986792022220853150075316401995919531277954795089659140425839209269013460247207501150357785964723948195133573941307181935125196591342306138582224155274322874087398842346719439022019784129577176797536859004898543885128551042406317688889491920516265015658142618801976465294801301940242652172971033588123984794777405548273042379781830344391124890276255689852724939180880457168995242129052503102664265818807641656458518471522148791591113817743743088288686206796203373796178718280490648668900539125100625831918141093776963061818168914098746102874217606291772345810782784246962531741309309890843725246830404736973281398394571876152783046733327270360413530447926653859589462691937254273618862043392556111563344814890199100362160146718074724667097498425201190017564216277697524292679608966871292404306983385252946068690007480456738945054261080716326902538023136340491052438942446490220542221897139552801349431447380025257702525844632682266240459395850153259348291387179040816540920644608226081182095407918950447425821033994335676339474306281476402655065331421125612707085602013034050199197633793499590664080343483985347675073619194002573031258306429175848511433972369591656195796795620387699552732146814878269354172242912689704852960694084798720703745444384231837518608109189152655754165767120609243035062626796163816471191062466353422283666598393840377965648730957338383118766766501309319818842547126880105358065655330948570487764802354800515894891250247381773775192777481304252224010217437486513010926651214351029381917225424897200278927876102766244869869252604801279829956017141899411794224336293004146684565742728416718574408040362904702374731931487582226757821144170110359727091875346113498017500952823302623042793090435089139699853368557981902654330295362268989459636454737679720966057699913410386599720958772191598661218803104539873082411724501634545604171637813022629572626534729913526058848615261494624633425170447571797771267773433010307271635793818914724779673597260184256868276654172197149286660325539890860232529022188602470943235877041645182469676237026500826938451604976740477301323676972344545331767037549760005076685033141834921938069063486947765507691693277537787300857016964395495598445855725013657118802762830654402961456700186242120752583514285491725437025210782998207387119476150202462282625440024867465120526680175109576404404319768037832832926835861418569821685983780566671602722732695486820139848482606090762573013474807582994819446250472300392639140509496528566895933642401214104149789762821185310016315346789657697031777352162010741889852391582562617215272401223183524541931610330191324190567848994696620951910777550955993954967441328492339202316663454562392794316845104355755128076200543388017216349494171136543623387271712043667684533877593730028011730616558374921182101513824416314402260172431524500375797943750616125190296398007820449729653236699186065882085691795558184785767653417302751108068484244467546196122673449435410597926281107131787446027845763016726212328317362885736301227624396371043460758625581750052826695337397755120198295288736205235902956403384700512803756394537418672647848622155215945112001506335179528355891013636473732823413885925199747240290097025063155058459230034494656266636116636015738360703934987042210346065427804104308100224774647706992076334010161981007717521319740023578278808123733196755265561269182309466008451692615336743645215715500806452835835969445786303731222153938432341734940121422460618790237310810000995683797747634874142555040064324211906926542802690345716312496368867117613596304405500452005618072765762094136433932723926502695241095789247524039805890760701620804668370110928725123005145643390889320554761676111332462914314399931892120301763313370653182123050494085291737822690401653388110247270193587663347759548773562769299170781794387707628571138254304153615717648334163056199545043585747052453802380602689225101623883042174702849584064644722915340507137387563118275930223145148401537182501536777834067531292938993399800037346806385573563863670215737376412540538397424673301291614063915895713227861372464755387186018090147604394808521090000343359214389704276103192494030249220800347399456546513200930924418982187451352275717292310389923012607102569873763107996025203161855370413531643081519341139884859985635583349379153221708426602151615105498709077805886523473743244759183135534257112171517599595664005920583802525393938803758981554549277429153183363615404225904851017932526473078109376179612539854884202323950242761638448065446969438542416769237242303339225072706227119708068671765796252438592326576718506825071957661724061317339305820822201352780484071176718439757367893776924443369853506779723496303881101996870516766508607457905876946059044743942867870609819090542257137363362569949724136692626115035989440417821306370786389060009592910593181034628676327549072826144736045927854053879368677935977777172304147021054062852125795148575029273792226385731676648507497908063184416807527950560277994910341139135515634577655012230303147232645714455881451724105783579456378797784084272978903102097332297091118114775425387548583484858450619733563014473841876313949234365769579640949291191571733925302791811276513476415734491635462206101248492950258224015937481713689151977800839172512797982744153877217963659017735439814612047747204441826369672055832538990473345862272277737237677565157167678230479803453282382546809830809457568034858841700866886061595376129691524378611896490270677198161721057588230982013173656811099016549231208313155035690635115319929102337993459466897929191572872650465272162921815397700785467316099889249881165184791480269593731506640967305609286464373414800333706244772757159117267259754465730348018944236487182472674763035330189397889198351066459326122057891886712190811355937950508317612312134477264872546885745944685613666499604850745471349102006945672191934576372058822356787933978656360927909036830388310053224337934790698147758017167891883202362158519680979114974471719467845159760014789229759235871820613134524686181002891263572661079270448611386477434242250677885354118030067012408209547334468311039794410404015469388013470550012554476302043634735272372378507494162090238383022072534056295511296584533376843143674738825186594953709181307480538948832582905781042216935432208797763612098061468026086439508978521628339915136966016347165723419727341481759710190574795309543036571537538430116107262855253886377628386443980244365770903949072498187423411405997452568998514382777506709164931568486442610254468289269382302189663375494575066570479071683657377147864115482353146066562472378506091577957720422633534365580156645098911813926354365078928648464631380960833016752961858685190698124090416906487982900058204451490964561876489391044899218383145249496335798679472493202234799781357731616368848709070943971469327826501699489521990187043150876605788194680288175047877871199339290565834424478255026008621086401722399972358393438664994662943376972463211678596274878077145590398277949844990446135222295769998399828740811711215926976666814881471654464070448217859154946052302973192015842155559048381739980359241214472146746590132406526105462925346051344702771617141159153149689598936678248860617635294157451447447917935700338434540173425716625683765196133116798580450807738820774959079307347211943047563369886949988940138335872348731962037496708652260867865509213249779903301928217212514344756986330006564430364365463056433747711224581717263060964846180190531347218604917121248828874431723846502281103724107067992070034494021747318523910873021932480692774294012666655751028658143945261126314773474617417394908473628677299890459805775410006938323705271294241788174400722288457455302864402832797322831166102134254736869189406499075029970652828174812571683399532496514224989306733416440666464631291262041156423398605425201079760783658817251637627435755043290953986065265463714424094590212623917818572047875639554413829632827017915378475100500467771916671184159302649138151072263374607845362968004548206424365042010831675051957424005221604310436445148060824937860849586257861745335434221476345969276505304536185772264171127380209312159320317533396592313629750376122786308854646207206092237587048329986523051463131464147673236924760179092238164887002713709058536382148132086733630567659946503566695170951722054504413204956079375792501412307582851101908626579191533632084609667608660923225912799392490739054589269513423165174604659227815140780972223261235024756855757094902331400984807347139118722863431937487604886035978775473052163707329241088027354077483235625338771781798100939259053022679665387999304183143715992392763058527694530035152869883774966663491204151973695220855242042386922943089647077646833349533127136192710608794230784713587703478619823705580966241532066402624027740739151622100074577888205123851361960378167797093399193203423901801998858347941892798857557224097103988125759260527971328181046476988888321702447345798242820170720369251666060571263071294235825032455340709824290413292451618573100493593649051821722470555423910770262558328803806529002691830861175121628941335556763804563671614812074531113456622568798300436489621424523016108308811558334933992141549880256488110890758160281465136823098931442801625759332385516105363237409426847923815119486744381160754137045915180625295874361176824403298210494517883290186719407095406124777104518898849882911935920350084847905212883420503440132079364294070379743670841901527265080688982547841804205231146419769761714028255930994743174734831951626011002799265011898081637775573612472260880099859192116274109528647819068681812235573571743977742977405317122364661644148907792793688342189798830696650601053536270997824527578448781840020211461580507201095770648764185516291242574659704394382615139461533404180882816680003459114028974550613126386570609470685749346775787299345768088974680665348210318922870648727876902749892126742798144857366007321450571196398313186915564327749585444454722200721921304933279885862789181517420720721653027099876378140695324947531990447998963654273146417691735762216600400642269771221767943766314943376867183804439709607302306008110176548773070664647290338824469524236066453136013883365388309756262082483111020925785588268047351159983563010907733026903741960456918823535908363644754966049424646086004996913619789955909593120201898092388766469738878093217361177692784460865135109244566880372272888034215729394308786776233146948917600223421974444459846527834772164884863358660568659636638737531259946192752712479722247219513227523341778805533073091826359892688266986215772754485574449412108061148906702175695362250884503097281438984754278894795600597718177446788990249519761004517934062225478640603654301745668681370316262524739655816560009366918112010862016547422305230464222637486333865669097516511652625557753408842566920502057702370454201061326451158384251484654861762496905422491011471797255522218745925413688010077038821406359579269717145946975181488083465127038148967765855767479134507259626404043175486580188178668170089528114899678118156743981084861462824521371176858050418237110726691501331208317558660199275053432569733042939123124873373637838493290180895412249563754790750847990950951788752951530982303615704550817733082009963742478036789140012567247002844310109676050838750812850281263880683664006509943426041945963107149975828785166708501742112566967067653667111096745825519273481985075043284254154750145363883765531897510976424434051193552910398456490438250724625261309189074142016289389990962438718487718241356543963852865085206201452292593046059231088560631227286082415725810900853991409189504125417106268841622510435741314699427368926241362309027799093255514044254789555393604545564360069067162264446660439942008889677535580777424656441556540480207042211718754876446042091912731356322494499429119419986892903153458983326359512149944300600001900044901120013248176513839304701207740943396888815800714345977938747732847473306814938943191864130832894724436755470843002735003761353790123885241453292785760365062723558132943132410585810935717319141156197298716804287100084488526862852504816985864629163457464708674197012877324976341117356783776397076920722927380020776572059365453528336872967847869260850925646454445694528567722780109108445550770690138329077774588426477486389898637178081154974878043384206979430147466397335124547194401474559900073528870586398556549538977344323891213687947284211985612644301138079283737365629505824436509199462995768946220097807778940712834808991486662608292217306315067470755657528966075488001726826290838711324542671901795686693443867525047763474584203817162912119855509334249390371810028058283083748583729348300902169182036163068196846198967522468163771931874272339238152632641168559282641698038086159939899983938305780399207005670069873575829728346400457343549623273908023741016111609055596172245728104923486011212398787368137327829821190601745631996789101598296355420320307355373111077728185197520308421142253629624348532922658259765516457333258913284836015520583649334837412096975859433397472854693063098024986832321551347760696449934564190089638624226074556873734780598827533937130945372154889108839214354296102379215311055444281600401155894328697295334893048688549760652912107373087006133623318069384571083250205433307833181951397404255836062381032182852746360908042282957169948805817470319574789351181701722986760361183746233072358201775769190436707089255740401992288945709931403672827772711654990032418867548426784578419629649433259790911855170853595103769293162153228575536715067793478386257661121126971556754168240058431695027284307593551326026717013221358719423535817117278449588035466241321259381701279903002156894375704853013062131021787039537302588428507259431268824234488611020268432156731300244391456175890629353058882943249028066492199467370522483911174172863769953311251362999330543391665735890498972778766184810718589627216239646832826894864717227229131814358202505169990095487193210908782955951957050388776243138567127943779521599856116391737614261216275154260713355138802460249594590539434359717546869304649654927135994507228589585851996563122245680472565195596962163266055447990516904347866979101001758189479924740437640624336539474086538252057620164014036531705233837956252170158684175009548926948050253197339250736129217690327878090949450205871674480928714709146661081370080171627777781423633803613979648766202700530729126541056027594363914226980672267806032983987745775572226398175507791212241877494836795420066884105703026088106935293635694905201984095873538212065264693791584216455845384856686869927269662422183067509602777807919364855289004847784194732015337223124231693015505902530344047972036848227970599171155024105758440411028209016877394027884101545715847102501398806200961572869034708518464971872419450509791169790251795614587227209824797454737402453171630868630025525492398831280081267301707906011095579995381481745045059195741472990797814790323042473848885662807504261136717076578300205729078998366652361383466722314597311792909263563419437864724139879761812229738650270150993348571030067480873365167484073355105297252942161594258232119182115904296526227396298148675915745686925477010078400372105746307163967575102218851416211397853404810752881912616294739735215953005798659296683057803395568383978537969699232734826332393216964180902155355399909924902946944473647574719243100013665967111077483014836200011642377608721120309713753327223276023841758173992615685025320750434470737998590392832334918083722518270767092748462695744784292112012694727781964439699641737854278229313657456867629016965178944153309233604212354088817628154024178701003563999890641698736062897784740964147759196998221248118705788634957926019570022638345418204199457019148383829999367966085317076732688972911935376658855986164862825303229788002986461388153415885913559545295792137728239658639318008930555221432133333098713758949693509799278966150281955703161054052324677276499017133453064013229638365212539465209306831372998599377752767806992914662451881439478773806839121170563028192323535292244841039480680884556702218957287869434748076859561782109517000964756829344026355567296211796505597816622220812149784425323849366139497032465746102140856553279414708893033975779452926393329637922480233506004173148516602230153394158959146598932293055667332134955312810205817163463958086569762368564841206977696030217005783896739799376661546889453237150223114646318169532373080480451849772448345525469809012647949005885947509621442696557758193896725476564499568759357847181150024623231303274669010862261406390567011752104244021672522645262311533330059935590344184432994572481217226076920524685933438155556998992177194035458620428855428055767618817269129584748132291579269891972875958546834092865789535401202299242290408160660280427302867809797698127674126401002898889146915745309047847646550173075832796690366532998519392079925076172951307402898863571709191226298362892730960230459477626854667012698019649927995602365070619757291570956278731126066784755801395786282660250699683324004009434071914718400639433190091999902285472901752011015268915970426677290600652062507515550449067267926402766772312386609786200276718694090814247872372445102408302707835559230248338328030838987717540578861427937451613076512116946406005669289737582414492354521088837740248786487264908547815800781246803671275094620039140968694871201103053821006536552646711470176689808200663810998288321689338596015405664328389118258851377454450992363062381887566187890692217668790591812732733292609737662296140446305466559201160561769848689838709961729867827600446638192213672308703170119092273938118211465134349698185888187862628768561970095129965648969913796161726556261870664270226459995419774639277514737655338713742641391066397118307452187029939629276378824524700901347985096451357383424520292254891794379940724115568410076199252960622701013654471730538807100856724915553918918542772612661089042485468916919479874697923775401984509591670679295397056526536115680874114762553065677814461447314765191275760968805445266786969876219634960234636355733632503110906585756840012018762229289447053014626217062799933957135402255618757621022833190495856567588076382519196434692413263930726823233216448088406527094035740741111997205560489350896174355733418983000861627287719670164661816069208546526773217466503503370697628841600445038133066256397474981513920335336031980835870282156991736198103459501255276550395472884137319218500296761970723064285197982314368133722014892076137853676472708405508581285396057531510616927237534955873062756623490804931373885206106537546149348183583591544807510984884590049649027102605827351046797034984666528940174159863549187872663366945516174270633982742486414212857678619858889624389746476109881483951710542364832780055612824505007839122405897629583097681907509832483078770628536131920970946600253521003600472499594467715084002857542966224935779989295488319162507946465294341683236597397535712730555794227745456482673308672404018366096568187735640240027937017377867363533050890810154037973985158170793086693606741843048165254106360016911555450732080654731009725030078396664265190702053932803547657441014778349161795808107562762494708879514110021854584631679218231261791138495753940926314689533731888090671140266625235637621254987278244012454934679782051623545800665887464904554557675334195859905537653466071612584725715367050629575246499240127435132090034775814911472944150093756792160920983921258242797847054597729722177773915962189453499566732188884849732197012281788870449863691843534915043875209712335121612840301805588131459597313428160561968089420598845426902099577736542222332629124106268752801054441823773709763597985022579095239894285793735851166491195331537150179694349976516655864333828696526686818010490964016807018858786624105601438870194519830078385898995978936855937139582758471414234188976016271062440289788629049823768863933836285445696980196277038626219697855007983872451762945513759712041722695251830812369326125495953368290651696893978543289754630109132165788961129195352329302398377982102164294706873941797681786891917406689852176102492364457556124524723824917064661035005085695379610277679013473436251691184293324464219444775778104798536259685265750495927667988190992400987210904570368733905996005432829264134648288065454047776892723013889240812270951906233535842818944393681810960923397792103790177646912466053020521640451959952387586022591740416600260308590511480640350583519796714491753398370494548718350155617873320129916041501072178546985873480823548530898876373709333268509856681109551183917283199773397859413804671259382027883752635858847246866136488868683252790415845716116237141753690983014241545644340991475048768795923271003776413845295636729934247675626062075295318334258312790518478051220499642330971717256851894159455033041392746752656931157419981392003767063845939346081405345102237960316854457496292981759734824241118595509366390169245564222591468875256302943916036124165253874714257978589705437362308618019402578454478771101348607144349124945775967018192790638227629435876850888682884171825978769018209369647502265513611712986885975581308312352998140975135541346105798829019469843834875540770476701336198816164129055048280706828894489597700304325316163080423160653000652104882489759941326451403962610081714077667095588377205845502489644004806638086302781976278237023981005690713592429459936404376700290527498330417991832413048244742497390782962673578662531087885710026903208806201459128908551312313998533468795705087574528581153896647733546568982293903839577865345186517058055353944856733257810095964265663138754987805159193604653496226336015599448150644577851625906086982334124608716590537814094125202056785336081962013886198405598839283705661362164088302594483611334127407710225788935732813548421565095736618710359550183653720667080981021280815908900944654705118551480400629341399226431415441742171003010136058536830022183977344747416332670770097413748136822113122131914424691099187808678056786371134307942613492418784854703011822460142557777363445937535793057924443427159126606482171572833349094116559685328967694417709645636427412110851255705539884633350370603048645932501476322253155220866693497131533659017799717360702274586995104320903427761419315588963844746608256176548880529407747288587354061568695448834676540287252593915381885330119087348952613778106948735802917156797095670781138234842509523453502636433079728767864953540940201812878076552524143230641602958211072751968637375045335531946813784690563629646378026112621296951236447140707286724522228511048077683314876627884161551171290871328316637235300165025485359535775394616206378527348938916613198851922615941363871129384719636785090853605318847717715646195108314970952388304584037874847901675747983936382259757232481693627945756046423837955226500889684320711590670591870015863264627709231720240959644610710996129759842545474523726280982699960451592435443813045971897678139793179262559333133955932671786804926316331581425969449292253969447799266732879092207088521853914320772955446274642564602366815850043136579275772996380251497541430535370497884735549171017365575137701574976008879750972110930924414843322288776005520883807770552609401464174942318846584527639328721385278582251671757499261111912952103888476732430540266616444239178922246813404339522322287698093349888189676307138080955858759310025939559516709828508665709522167260229943764169182171041805257518283631743288901263765541375484965021745650345358739538724164125560128464773738232974599272109432760328754609277461847833052598372753493168820601859597187497437072727933045130637845215138564752672793479138847166533608288067884863554563421852721161103234214142052770180892941719896496503974125166805946116904174055699372518803835899872794846892395712302035080691219439879472839009289038712725378864844290337421849421401508216488591755688187460176866101163158113134717443013690593240706772376735960900714979822230307431917373874295809986806066023050154470665199678290113305804908833763213956041807902065433987378120281393774907065737018820579564243698153545955434459679989130195200365715396416014069672865644747903082912859749740080180124964935593245070105689071481863462873204134562920187606470062928117415633417521131545270542885421637423506800023580959015068220279725364268575415149460196582295638423417059333475038813424901111206138008564620331820246763157752497828612077300606576042592066469652806673036796778139985763334439351301694410706970296773977086600910866890814950388763789682912651103728911077598492206870511349447902285734385550481707215615849184251830387427428067294225783059112703526255557807179115656053042282624275016345810503577758694092844710614013881017424546193077694513177108492797747801167307054165335622468722722308330649782375384098619793698350551642424054925622043425858472874248771937090019060561369442057754385904448079098880017723871037847622358233409353097947973166643985661489094260032786665878680283323161776258305531149364422741841856915120563319643663588343749424445390953227262472060779854884876738315698960780355906897471900837991660106042660471344427861551279177263894748136301716670872378484018762586999918373460139526557064838881000195614067096880775590259585247392926968588862399740859621165236218992543010903213424586640859875995007747978533500923379169650657865713154979225155766461952518795972376799617546047681483803488026672521670799080971384374301439180710014476116111151553806498710847323177914662843294968320507063338779512832916625539179284655900862107470592577785795929390345390539265118622261980849228722927440207273656683063344134974772855523484597932231201283230308116382427713392308912147790858980609806316501598259360141416833953579853031158020614885749387876145860934185366811339508796328720632208754182247282524738603015199353248316438989502391162333363292762837355346035196481064168471594454980936897399832728447189924673985724894212835113538770183621424962540967973815366648617765280461468416304468502624517682008163178408156448979351327158643719325865441380570630961530878647771272179426425620688545399510905001693375401744798043750616806459053326722036073444884183555577949041851733296207848979291907051686784907153971677690643402187522024409737817135422089661905111113207475097112799895011204124463439454795330003723561851078656832897484438423659457414351275012024498074198482319669728902068105638184451737899008142657549432456293381418655516755467519857979727698908818877066356784990682797942812701234461093575157106463576157269025025334113600996283449609943380137938290013231332607394516952203892510922173663267835204874214672884294344583599869153418085358446726593737039098781629554045127746670102315136295303929684345545080778561085989416263119759612882459085203469094214707775137473536592974164301744325840917983115347478672491778614356090868942686925987951696851439618157730579865243978968926940828689151820585607409595247425690557871147793604509719846117237483131861640366980533147466357283518749999136225166317616246575889129375980546479048261116330465992739490689207821850787951201731515176139268151952195068232094586879571974490681236046684588590944847047188377331814654481279235914209149304277376768519038063634112937330775408264841262678276711366117576431760448953894495071722417283714831087225007394595570367400796220959456729251816105765558755481069919295755150974129691157666252433006569583954534269405057685099984652923707181523676423896069658731288697966043618873412262957926716141304967695502511164802196802110793959951750723837648029969207573622989213727304408526864246060372917307130969815665256660557409281487863185784281634684063149362464334075285361015798982719002648478335753152748213436164075375726010727078625428713400324253183389149031810162936491990702655965243161553223857928011648943821611843071091082314544070060386759960077467665629980668865101187864587590748912609832660962969058323675456410345759377886577965879213676832533376574406424984338868968237797319513616190700893171408772419741464365990777625992271434269972208053852154917633564112372005136823166805152474739544898240860665938299055653755789112269177546940194639712700347488487793069943749316567137168694911623661311863662683326588478349685453630418135326602090481976954724053133843680620554632188038689781929952739293021882563610669711280334414591178597842501599299281506996396701989188578054250279301518958659478564001246903597328261559027259638220824177062293469902713221721503132353012350066348921041765963601151305091905624617305203442631760049268912870513000234666392278438699765354940722590613160279627174891618135412122765840195847700602785959408863146281943288806955918170088921160977160493156641500763292560321607034965026971959200686640016119339293142482283341910713122537673293193833627394772788834397489497678537471619964745801260932091880803780982729794608500134138099549143051656744887093864141116815593057823468133203332426048575301450736551133485991796949746579101412659557187380871578674840963673346898112087325812696049482049282353294326789907928901064161255221755157522852358807718855051733111108238600108567760960341730927728297899569912920517142445316785254337652891871125006716703932850507112162605377016663176655407860854743813694887494074033184518905781728576519707293903494886499557396421617843596071926321271657658221749325524385780874672135274998666821857360303188054394549395711849464082886457592214713445890101975271127811236729829233476364357281245691271951868810849183533337630205723023476799747975150167938700538321143821025972672197423842594569323237449632551075199970553835863472363545005145187526346558065501175682653061723224886276265808305487267624885620208348702591902966324650746729673497241020950925831850992419615750922198336200434866036741055789673091821908971759489592549878249170050767513120367880618105271306081056946311090174058267264847376806640559218502366353414897510267359978155684141433970453062149163578805502104707518921373233815147230302186596302203901330882939409088548825949413928152466160460576812242909394917471368852890444343816945701292940539225543178800426146792006353187934005822070409975713996934656545032988635966835488087384164770077011998743462409108193677524292573274234931048047014183805399017951106575698799023536540168506244877561020483507052753695033822072163267822395166646627031552946452176019231296358431098974500550141336043901004428894921370080663341348257829519801263224017772333869800691619422636909819452292129107969629371945081975510908590174028785174976407700449374712675348396536567826304207647649210660481660604776625356484185960543928730554242040414082027123000008537519251422063324573322789027672250707441183831905534679095392981656343625488610557634841712421412383758037943656102500994062848077889784384732768791926595591648735761302637530932577964090011133862352609810462813342797619191088001156324552859406963907655873117428262529005018452953692637944169536033711056966320477831651058541450840987678160147359934876481680984340676784618782970581795518873983774061326210712188698069720656053988044536557084630493279307729389061926638165061787525368908229502067675951465319766838897314084751166004854688272987499689202877335668150141435944785435923367199788174304305413309415111771401010420265448285101228160747973633127145868869896879668524509967731722940324364007141762990220246895381117647150226792850986916360043958501486357610046211733585335923417170526909708869672634968670234548354703400939089669511113781890837736376923474772504438965753883658333303926042917747855741007289838192061254696020156246173920647789275364520426452976702041766626756913327348878247247899319758198824820708776530644854855417726351508999081915517197186716946562080598593066396834585996105213070629104396448028452101615536994439304801166426406770818831514234983002096486419343335147645068991467424524965379942876443395416670318312289382298791558374799531736588615871252556311545984156026937035113171029991270303815904235095306186245260213338260934102926782592154636223011654296738764944895547860247379642726651596355417280012911265908121562770692302699558969453623186474352642414653979685292024115387721865888919406828557576163840768048387922110306417003304460724851670746441083582308005751607899495800746797961544801850237752342147442698465060043786293411202061596452349575204470008674074362518792845463885145910240452584799065830431556383369834417348072417109078500158917295922176861291929661367850460048611825826992648722324325142191252328385272217836106914025696673194383214268163248339235185073671874400201132227779767156833663894252649897848050089373180111607625408368822203311681097608426440617362556523229419138578753645710992747309161645808347984001886369254753266031021223054666277054899965641884463631750272633743996782955686392134799979053344228018022205543235286791024511509262640028351584939319740566231964674690178393385839437711337212736935408877742305650460290617325769839678250381272434891272654277871156576844761237813933700655257417738346808052301118528342534725506251790003592020750833469323325997279845318869385556788687101772696691997821336367641904110070044647475953258710063720095453683213715781548957012860629506396365847598772681083561112980181811240992976353621105029657221716973372544957016920801581927635067097020138124814792559477042018941233917608229411582495810040891670422447381555292989531718496671612457680503177873695357205726413029019245030562469027428254580930765333717302444085823998796331757620693785809385521116673478006704764385018415852299116387436061046084639470548714588710181463040366363086898477036056954615735304552757568610099718040386106098879500549264473099457607296708102360976083921522535114408642538141267074468134932944294234242933490250263025246013404635792247684766166615096828022701738788635394650529877420165510923617768557790600797813374299864244360212236760990248457819778103762955658014104317885382695410563447104828850981875732186951759730543427487887009091779025737278257803183998905251820030464196116507680307439112779617349386356056761718151015846040609281843820258232376697567131370165782348063519053586783165549056464998020630925920744574653522573801373099059219074854364045475212340735504697719011530411671742096556205762052647417661414892426129622334440772382650725324352545714056432857535911053356390286114570890843208647737683279489709487736572583912877282043730109123231099529150674007488052280968271228103875441626027698220752515135226674971084780779800648490372655057757060851938228674850002852461641361225875982935734545959332646076506311307044380436204219228378778011164228166473078240192739185854991120589345584418614964473922302346109545095988219940754845434712386733342186498266519407425590027430829771360321665377583683383167602992279403076218628568593140604065636904222694992516938719741159865637726583529592399615431025989864307336413653314134570859749062201799284928579442361271637140630934882473494019047684917385935413706067436993561862976323269368205422697334308520556881492071007783048975121728191053679038799478690141817561816124114154900775389516924206143579614626130336032055179837614141028166831942776255078032890505464296932165511162476254149587267602370374116643709011010838169844131599511461304201932071773462174570046383956837850534717117755681932034349399399505793320303557819749500215780522148418225217166820952541700455217944023763155938860772785861761770112822941384657302478354991241015115502551260878627873474364426405968961020339547458088375203608776163005276965807777624757928185490068566404834486526677238884705110408847101724506452182468099989957712207294821848169741734208919946422348322840869059487299429792953519210472039106819219144623948255310168505112635090411211921432853240415917501788388633563806675223563406306443821414801465546683715652077389713718385170583859885954426019256542731507963836955029034171513633191703436484737529450285029187425350045222711870140073191444636068464423690490188275358675089775690825762472963258522240886049475910934978324576280339363758730756110868756064008620452085695975565394846958699235002271364306117994062717627965057607511587649634522360825732759727251182453639566996680419749446944203187630732508712695847037825897653834787206611007130045144935645438888829778328882221124968371936288125514556927833405411928797720584523568713238490302371421836641452983081943777983996654806216779509487787489117735274455330490442750123226758093397441036509761112130233479764708015871567101282239344918016379323255679523479032258109385342289917402433296562392510388934123489915171116963236758613815051907280858613992959685180326415177153326104881514489801522956735151814450584949949697922853154188968522822504688040377458472824809370976939266660311132163769276660387469026580113566847855503139635232003633978216371937395761433292214905427891464041185172483903052680858936735714946499805648209357053247619776525614794996508457974996456905610880167384887247485673833918822832200006802617872931622210620733989966017470798537693082670823443366749962683696913915403728161582127045747351609886458110090589695533663059828854451324806651831144860485238578878379443020953473434899083150865518315941744679704625800236164019522447562255894194624897430929376751725896734856556421056299742143685562679077704726465435374302777424258528611990095362056879980431013651637738285120801887460933244230129898032355426579668749178245424516597526076842279313964288470273984116608650568583454541607096546381019139199331806605166534988737522258735129801694527051140672519853836976854708008160035665381462546092866409293432989187231191924055548416415604283370698241113221165204164952277934896691642090635141296751350800815289777069658236768149323967141183749399944929139067700921204116932845223175304266935530799151383312439949683617854348383684666962116409045859836830167062435462250750973720223712392735942124044505349063653020834198844469497277933926402763517156846120446838685280148129759349758618863576013347612460331328703780495158925425310159945766760094421206565510686274826155988641014441104341188189781818766771313684025300571284871358726548243084572935148413829017195491335959388745561001114971139028114032384669655265931511435533622291727727346340151917576097206523180149809757332217354069873614707585828049382458918753729129791801359805360581045937148426673124369579754594552576151748704754599822833282727147691941558316712280719060777054365934943639923458152085984788060760549885718001081915803213675847000162474763856358758481841700377307842085972406337970160348684530962906756890573927911409773829865306456322336785014869972306349070701258739381787334195919488865736719585701865515794335124009306478725284557553383153106476789798297213757960852722905709366106312287614416574314444912072385286613147110511994894945138964527221503831612899545975392472025155286952767058521890343239177046580072770871896202204666336435180567614103338941648831247276075487086979582770653289907012068086343968790174998910710287366608399642426287722771700902080788959880958544322787076323515048896728086932756612251763615781970563623607886235537193547112793667692435954370024802271228286878397811917495221881683896313927962924932262862475907017709954911930402462895021508060685920097020108138173725552658246962302331318770419815704336233050152637730544489614150334837833546589650577818591429392848378615965348743185056480807111742534426554680525551885589210606848390522899215405117844437257595723198846502657248756196258148779308295697720556060216750207786894064068136993226606441645808605714471619011704234512693156798966976307998784354604545550987679809339829692701414690849440280694216045402000004340357518881874784287846945670309502371651268522573129753598756743602262909804928856005112607093133412643263996803791828265407359044592691493611141819257382791429908309034607753037856767267624289760672903586042285499064261538086962709705251608244477136094827075139095110432457229649862744727553700004962867206100907328958874075163499630542589142167958941694332319632138259461412264889739744537454085952787501593571858315948203783653264366272590405413501578551273148983876480250426890446077676409533759248668313562757014500912503098596691733424935519079484385317871356349629914549576383746820135114504667896918878310439831311065509430039161080044300910544908928385319877371768791053438268763018024895387726142002662163155434268594088272653074015232831336570517211826914433374913952281411561841735704854394521991564036762513287285661745240819109905669889961122216780561202627386629609609366079752121830834258472980983775378693579134150732438328864108216469524633576430883178450121641498083871128053584737067095576211519950940459671863849277705831931585754318211557194993859248421467135172731673174633205326984108473202099118055052222201590989243495374254314083824562277294474610541349762588522237494815928843030141287901002429683134075575627973013563077112973135074436947572492094631358032497891220579561170394323633826049459586216448136729013417673266139543667060192217135561438513855850870960429398606519097577898152056493425522434724504301047034424836026736978272557034711772603877195603201919090649615395375886235744155858761554529436995701568068012719705552560150094911711668843241398262386308938109485259809207129447273241209878706384774674709628574422113829460454943626995840228753936287490996992799929457695939515643253817381676361549584227577930453849239882892229610657219691925560875583859836877826289936782688711603043758298557026241345314511777853658989014586457359313076337666332247414819376568792572260157305963334245710593946112581840278869770201283513970985169273490451133804759227989810053218241133957600169976218192955173549781888695785931299055744272226334051048472836355100402165028421238662067541689132120763847182222966703604952805558238574414007175720696571962164170769233119269071117680940163406498926761564417252441135351983721498300555622690834640533794050041715830828507485891077450071265215718323642025372407229219138848919454858934159528833690517107892463919723475069228757787456907506513481856642164070005027808203189681853499430622518517702964392098567986204511243232815151182193420531098961322377455058211303462656668727862698255562616951115343923286788737890641219729184331438405003551015590951961886676988379189586591360175671370514599394749654139590781766512272786660150649617198837225976597861498210646119172844101396442971318576513803055268042382171445526622445533689211693991948589940614895665211684079340186853194216189848626001677965467885522327438743599525742642029827678586792841851484391586908926824811765298680796455583233065254552291908312065688807041509377614828297585768669773620793773547306643849459438210579896542333649140013831724981859380614054252836065566994641972490051787370518629920899921279604230249019774944390579404273561941055630787738076256896731666218420769745333477799437696064349527370245885219373955573183558657899587865891214416996010902009661120241248710101234561364311825518132168533304232250616798539719779463203113067621832385547070943369867514490386079660999035372191225750071718586253105600314810571333868826550882638994835997616209085696943569202698252335629665752240678346333656388711763742562648030419517886286902168460786859985224106290399466181327189249500002769808389968632821640347751046060636364727232310938060331210016431862171053231214865765345158342197553474365830023839009019656945389219143087699240981570297940879608739027075447981805217464307330380970350706967729425091650250203860736895911543793084214733237378056800687700495349147242362688739048620765884718002316317077259752542202195518918681887639459378411994169648355366042985175040675442270357389377898865552243557770573482778574405576246251035233357511745261244738586602909186144296848552227199575966919777812307593965959711090320534656126953629658419160222537821639349362563792734970293267192919162124262044782370425283237337167664930780560013881844575435796368756043977920975658185057927101103718476420777623189404419167052955062346841738171843364870348794467690698376004102877333871415827672753251695280864158678208238697241840785563048141857661325156509071683770977645863431964067059778297219722900629182106939605228321483102675600917561816291557509488094525167791569330243098590187102155547932571476117457271104405384853330281941805033639274499811442737368300754122737700976609443978415635823994846790749728345828677142767513647122127993574351538729645101688424878997324405862503991947599827948572591248031222192584095858064916177944202174226307232871665163670701937318263986912854023678676797465288218166863426268070945030595497577677558400955404082428543623090789273244163500817297953918124014830636505604260093961724152118955884871255582600137651366159089599066759505575535445170316996994801957108957708670303797503438778845758857880390789392077001358265687641393344907603169819539848756812336995508832569205122631335724216661425328791357616128420670848447472166858503589565848190552806221691748132175670523962177476816641803783925170218852454449410241529936928247031861850497668147174000958216354864177103740885843071413483988595794247248137409952718261725341648773908245103362300716618610935632171464656635129796018843002963418484233669511233307287034515742117608285179461891222690279905991764312562081426040330365447405617502894411603568800607222070434633605220686036345308784566699843810470299864789578347899636490071546666394931630649607559348320273480910995597879101202159995772105851360308705606248467701918310602651710088760317442575329614800455830602537340430605123711764770454503972955392371455485929728380561122116166883093122612126058682713522240785979617140482968892082982372346984424442658143122261427061287237603605460141917482155140312553431897264405124482664827627880680899467267899133812336068456292371929222672076340105562328893748645556245451568117383586364383086220013880533691678321308462319406781908542104024012156913172413338780527938362917265258277994981727359592144843455721354886696695984366477266141679170115545242684207589928022756299527905351351631716679151813180164182021396815832349935946948704617587912345477782242177955513298744570654517355858991135448644464575854755542929081071445717763991620278721553881344096561610416122554387692416172242623424678309549330015608173162155391353140018834435029920411574164003982185875996112288704637074730266041506933705977984245244689584560578405422737344561298143226378439197191499434984754056969573505516998439025282218716718102606082838190732751879363143772912427083359766945039430323319458256540625211083316084442479659025968080428013972311841569260460149319935391510865413748411889293193725441216273261801777636801095763649344292478723471440438512764374945171319385346482066578912598934949826885069777877509215424656752597101102606665381943030808551739773487913651451022102851132470670692159313323631890289895948631062940259398833714611188646641728528007214485529476157873501193179021232476800048811660695847421272909528499651336653508875624472915793084426735618458527504343338260034619715849986689862930173243822497422167940590325144346061550019299173148795688244868555203254583063054878066466230750777959927827382735855737101522021155411502760105050994518601529700615443771898400722248483870504536106252037584848321138397662435609025997793381041914716107975961643798708139891122679441005577219407006806967722863222763532736475898810364921196258877707185578096047561394218232155337886268921947222549044004067071945097872111752339133953630517386500176470040916360222029142238995823861933312856545701097185722260660178629562308519655107363153118882209976194759487085605751103327518502082382984559026135857886346715404659140231363996718225837095550696494776954585530994203081631232371015743335400378006738037068507657472955564495259378088755926243108489447291134654690808744321903074568277140750101057397222602921474691231919663686964489396470989246078247962144134713037707981264264296367082089729621820249485627573987173671869518472433953054635178043734706163961556327431312523905806974473077300303366047397482735052150977706398806311143322942815743147713465315963136990835131790299979564755215510187707874433078826398100700061827104129024174564461816954275657343536804638717182708944187077618100408300580954306129090872394739030950776427643317339950793626801441968180266374404972636511394206017923687335844764679565065339801227976114245103950876187547304120044926655006704166336210752273475395700091179501643616970683879246861267671567175075488621615104879448868362978623791641186939257856438607505325175566680079531996613333590038223849354598731520709457230506614629961490177161139798217614928294195680514766726648379045262668868801491542011608831643683896446379238658792931958559280662304930431830289868921857831377596274346360950832520203968104537745301732769352765085423218885816480260488586043322807731844152740536083155963481915344278085060684852299033806318514506672971564297005829820813583366863943540685074849308286644208759822397210821946917339437450389594145061090264309454912698720324107437600812093394218902301478845543795870048935474391885954498716775986308758520318249765352201212630976476831944625917408239587906268167239094170272419050450850429661756156931385212582451570485685438688641759041272122511584914350771335769917826311974033869018674481027784525867325131111326768716056966059935819712765460213171658030441613170600770748324056622204163469334292165119451564329597921173614564173576575173884175968958266130236399564475515775264211278346742620409244118778810647765428297410864006380170518244943783703104228064382581571846110389762379866984126572289524855734083559806740312808035306686536368908676111631982625813909453210076939994535091537197785076802906786443760902976662150233549836987257472658278989853092460264074090319437776527917509226600650692225993070547888288396252330414776306980637647969303852045055240127940685424911023596003595725483283535942480903550616455209435797539771977264831699111010350821836986954889786359885729578129099322045827296858719663407449187842210750591693840653868448769893475800927813380692639571415878746820346191077277706996574916898475870976798155958595307026428845004654394165476972949800518316301312426337658065283251483513509699238058969139643281560339363991198230354486090378921845652098591344672132394125865737781805085218925421148880043460630255376743987259017847608465023150122259980388394969379088906370064776333028708639045919217294563648767694850665768313958830356637215815408665821746041972964186106088720878882689325019246732667657636828866092171537225169678892091878445063729688106343720181407743412185545166108531491895747122660727746466407270895093836708094838769332626684727102606529701077240467772983158901397752439852307982623934485998968658407890399840779775524323744913947481437273465811289011282894731315858712055541975962356602693056547984369792442915405755386721774001585453427407163407553057481917639213984202086162257837274758104395449350754792146625837817887349256576399404061743761422574823068667433091795437553698083718984640036168323893384107733283218947986970415998474842204462812859316337913994996226434927388758513622760998555101676815642640047111737180894128476275845378830227845482419223091082871616469174890578655359581253594308161502887398913989669114441002820839606710320485962854301038891096058641813895064537830039080043245858754554528598406292472899637312486474833765650788242708161495919421427575359083842257089312493747844706454428369803764785505877356538962182442846248795738771765975780928950359564070175182161285886070855653536630878630465796313407897478163871685230954288248540835941203315528771704563006132882590155668023067938705350909100600946788345760559032840372944704103949302328161308507942709316492242485264765925076784717569030814505060388186161579895849656375689278055739672636809446675939958647978426998240148080169814559009914414537854078985183801604575319659886851315973268996453115933005038936735614651466996038250299873440673352109116681714614441904467100409558516959984273805813324225979577240634836596148903968053867293515780347209323701070234663842171438071297960869981594548336215868916467468158177789693831757285960180201932357162507621240158534868148036220732448856383934688695995360616863496411895753824561186679100516791683629791409201687296530379002647530686858440678393601217609419868447440940657263495723486854059787677966325692176062815802852587644298581532391378253196430508317054053597013987012992192765107625993933751497225770530559098021048979751875195195842356127777642525699698445308200292237619887714360630308118773270510244003374529621040051589251339272825280010441786838751504800386588777361248537439719258850903573458370358777817261671283481363361354120514917836378124338798139706083752055504976166163007377059839818430287559113800832741552761875366502370401836774497351271071714495657477575180207843847498556738442118182657150352076850367367047650548489093940335492261159851908770347901091797975339776633625879161840623390536639801841120627927636448113340804079035464739593161584741595677193982489336775415295343961297486841590887578555951112474480120339149901455477552265522321890044332054186120503409820283628160258334716168104189952324808347625567922967717455386304252252547270271937434932612951735749517052829798104846529944999863045897235989096592449893751214071397274437175439346675731015109578238855003442850628091481929455799256071962550183068562921328539402646845833809195784268397968639627676670174705356506279724894168380588563867357271579563839320197280370211804482829547594847475395571261068899832771828318616838789937042997917041541753203047687906659076831552437770482203784184221749891460659580247752658108061575583703667627820544474980046238583067018181647711306035562274804211863820856174314604512860006096463008845118017619009613521848496298604277460974292740245556428589133178220187997055005348586708494875244607537162064732969873921498904059641907946466867779603376260131145046908353661839449144388083178955603634817469638944509137124089434973749336446767257933722720287055212740003497857803241753837384561972579911842752455237512038141561596327513763714300322571777055716857304322782690274376277794288285424062599227987599916432613322103190460440613002206370987549708382938818724025342044678109430546722029700357780368332659231274796073449347622160995216243214311237978551411972652906443311411884765864245538583740277684399168668065757257364756499651496415911855151405776842682181395344168852907151113403362785841374484255456202780475461911240839831992375374647243672363317731692035037053966834429160524561709779588116413006801556050345585026973423923449316494264001513441859105618498820861001415708476049332972827745853045153637515617967609581236483481842288032185930571662913812352480114187791852665732010175085821211950518887954531803299603644209628444049269847971240429140031940099370348356610306091416153250139024886172469938077249823325587728394766227533654440774322903427783460898077380315780656578197874065405736384624885902756345444298286146211402514188170110090409097924176428145618813067800905653292809953355288622263065632417308837064429732633242192967588507144994308138626877169484446329328275591285916368876573211838203167329421610340646160395669971565246324675002421129518444165334222108950341298777082700128625536353906680035776089158117540208364745784674435838649875241414346534540949929997645051345231372814735497359916087235525592762322252164219891781937358350475305980447098140189816847435272753831047373065436647703990386190044674713475032766008671092357821630471426926579262750761966443992634347978046579846507269295299354800497797660074988458817697839719591087256590897747076798563392214803342104668258560743630723444791076087234829521216627500242991413578565745149821184391980529732653726682050831368533846649836956665120430869461139284726722028114203889768959685845827123895902510487403680820212028598554215401630352178220772843233938522556657431871363961895238476299465259695610720536803233259435948946529094384734364245239828331204536297282630135934681850404206129080937805618580766773359064138980135578986314931499558121403569901508812873180127434200057508123668800813920364725888372458748208407849910482688199411618795568644289347166989884730700145791884344782990281013310143194463448137374404290783445324504304395811984998873333802551449038234781751807932662467781979133513996743285081848843104528724788291246960414151980138965694020380185207118188331593484871738958755667450113108362673850099078674865134794149106855774221481095046242139713954890754377651792900365235628748368239239275944816659132068968793057003343007286125877845513673998320543393802779149524953793555300462342557433235557430589797059889212508993040137102163375238586079300452511581299772463643966127212712412745500492691506214883911713108383412358656678948182769446964712675186097022577259199746612912448031542677299261825667488453443670208330999565255206877550027769628679984408324881685456217341412001023160380053159886205113142540284964111078996184370321258172481301623812774470376959598924924335145962068432229555599120323414542131651557347636135369374958471918213800337404381175038479894301629287125958450042044420767366974316377532828685599970506992086603735415588441299702640318579040025406911856786909263570096965574613110323440650759587911999612452451854977364851522665096313840547560282973397465347122802236425333927148921487081917817091098380020005859810027383379536156264758081218225912537426831007021998302131542640298494905497176248665682569089968840756359613495952529007484502428446609829381029528603111358881880926108193417956477272500097937177900695352245177631726806546962088218379369118576968671108266512452850271756067137499781032281391591223958826868692879778544995269345232832426133875771614416967151374471695190809621763037222297567605515307491245171570393370634580914271878305510374298602309356775712158603939727093961642612056541621503547043645332110179678472911581064618719531856068343092573559323746722358248497417731060934137518456425497743515015188370874237148940613439527410995067677773306217092210467558434812267267621859707631217390149632799746800311212765022448269896899502823812334388832878337306156954935884798001880672684461800067949337882532969764446005061647392103499534480386113758375364590026461762435109902877805818154231443561729143181077946165276438363768511172801747194522729076078787136002650229190493111319472535592512842797782711810881092636907252978928016232151613262975289340001059776439466130568548435119431730477327165517742693872416508738002016424043320481303751638612822600016768699899162532375249603577933402958702299178534435525941124890929183503243961217796969817459802529613597171558737739339990650165391302335647465256937663583870979292077204513791189805767628683575679989061121943785693042776995196660723205394328394532292461141571925424907843352394046504816477861032127418917283408776824717770417562093408357254003071621584175257653756169125369593759345117075499783510685914452798137432482749037208653836164692253917817583396911995288404130909035680401316709706380678747077366950335256664580358192470408525260687801465462441543421623604615071742130315377874909123018622591208162171238597101193501396677828628939789721710721323516340169497129059862573291592545705601948506060675487858511186524950949226364155844066926982186026173261038609508003149254547194586701303197425047137908713148740521146146602793931709086574528129674082516651564044767414711778632159135680464909273707130660521848193048234846437682297066686298292608283144743656887023235904398280804280971420255029448461000440953660926015766263286587675133471471174466469541951245420397247690905796685680280688308304636200650286361653092777137051317580645786185610570351781598926103809281156802732972621071362822532952386370159973845412401622820963094950086976591439721727153192482022600264198957354312008101011483865535740754247187815098217736307140819489371926501382452261524570118316096521587612953721481219256725205076630644969741236761766591911062428852055376219284011689788585936966737314317646267378765194075229917075442948901438691324657353747435631542848039601070670024584857706516055417095085999030754357607244074951983834938520106621128475383138772964532249931474752836602353440026038012013943936486605167027287923537357987025514940237030527234808222687430939538160958354117589674903808461155170678050767432461323944197069390479791875637149141846617560783683675012224224834669098456102462361979329766193764134589032782917225982079478910993485583336903332380778460551395846998163905278611217106902573309818550990055370425354601752392070275716692248502169643467337575251799234197508369511345189233748640276690561533471404542786921120917919747642136598499211511583411177575877136528009648320621885642741917186162332450039017292068130795534284694127270792769663531968866162196737650276468812099737272260114674648852006246151965931482380768438885856974186267785684569114963039003940286345304254780907127341529645483166217261324547210010368857652849108398966506646255033750959170883906731342491102155030590154322160801252431711734894175305578078563020292497035625588759491322198501337637327021175172724562464866698540144111415917076012229876916102677879339738283792090994591913060181440817269016890177771696954569664797666721549870189775835452101414562171067001120108907821199607454566046014745586610922919145305573244387278295641272971395040022385631236844340169432801253487243742871115749290130473575680819843378686250343843867750095553967394852473879755549607222128934590859592330240338948103444321120356886378801745872841871928875131066596443892529608881601564162970598406553487816818518796140796395071183589761727724181801990520393092200225106640836262540097668900197526570145024846021778245201808223741976740621993842341820090873248986094410373357528543810975034735105909989080421230684879264047349073840008755006983851393212014622276168622769611896143148865488999808121016634069418558590986237810928371224686454168693779676619671393599174461361939552343433568558392852877543136889392842464456086008038182295468542540168076590074657154497112285680875909151123784722785511368003061953118605575267923659203380635372136130145421783747451126826876642804957701166714395499325957369469157007524399914427109731950590060354179793384235165809035646805448174050747698584807979159414453777254826471518472960164943794301454968360683172585732195323245209526399468707865281159366758853582396468869011950930069545398473716891739456141913538551644574013144336329099688656061657747315394327372038342513883729115592729571928199504045183895891312407092920166162884902762781628328288737172743291367164319798614101184900482591344035063737025564286832175782627733025335650228582066931583679080335673184949320300535274199215140888834620410512342888677428262351399409229196980466528558558671208200259231298222923979246145496598007287276205570351182836493416404250606261567643469883652309734209778256733054729812532753819188443666982120191270678411182307603576177136544762904466924932479906913356860436012514336378927563736703266274545334341914000757240901834968400083169672701593595702501760051191658988629518773712259142175239233033848871212454381043790515428643745034974809343632095372892468657345196503667364422223782803183773492115509171136290490109991046161085022003509279007224455727480066827852589560185320368438827667173989772075856644069420780237161616349292111050398890649317494467658531283009676882257440490465495658482039634554616907949329554292814151985966531500261826746605352120538125589419157896442089285855628201199152970743425610687718227804742663824222143443082468110199667397230731612404304478906325447501637747416653212345814182966206264204260800375256728535225818760870490740038247346822256874604576974012306795727337883380911062022435778760076893538032366200074580927894953535784036827918377804421719313951293188467160659873947250796139750425062738913925038219488309795245920622008157603825858903819042203090391065468997606122182334786534737352267742546596672430063269405803407359454966660421031882153980190349301505897090727297272927816392303965714872611825807610936662122007372986331661075490288140844977037204141309049696748390642717972799235457889718659693041114302183763068280408019764831078271483628378736091178600193625909332042751921352317563743650792687515922296904516711081938322024713243922902645125122126964649718317786064263672588493157485416213396564251028289459158161733969956126939680544456846916351958267016860943599465167134654059093226416216102372348116880461705345474302362022118568969482795700548633449032497490388778097845204987102982449831948053823297974022155756148721451549084155313294974236723031789353342522051160912934523732046035116329297251035872224261516861435882943719643078846487332216631243457500657558991156658314153663865806895841404662477843733840462451179105065723027371481938903003175766700221687683176914556430004335379572675745880156145050653273082736350000234534992545377396537966604183518277157975923692690502110874050600169378263418477834150719803129439109669052030981902156949586788164928371445870380925913950631725035474085103243725341802320953216305964747152572583493399313143579390025102595906522395551132423906381330275481651338524081618054309232611241556320718157656712904619262003184104531526944246454553507148380829714533931807903330436139784135399305642660423594117270216423943603228609228027323318137890553622821012738373829981423467480491638038409821275331856286584454564120323721545379494188529374067820650654719852294127262148411291018972810966245524314316251570744901944136302638727909102353044368092493008434891155749359984601794133873648353305844524228406694733099221156283405465147174425152714837406535650470001271211602343417987862781537322998001404749495521743794232960175612200008902057770277521620453030052281359692929284592787306400232145517311636626582557324102451355400586114704345542754524785389315422993490873863288059545851939743395524699469783481586390180000840770678147471976110824199356032202118183441652167216546968703288574742233567871730721807651945066843193802538687507696152152916810324637846409386727882520823611906811064521745089378824596824071093772218030089244686672227633573856562026495344893963105002039905785454319441688742107715872714752734460590353502488306966980590595691601706855731101481750126663356116462638348921826707189966341529552592523015322807698679461267635425431248426155476027595506102268705888628544861344479446707849348571517800266606105057447878519153498516615204360293116267178421466806724200817505938665101731697870754501439370446632409632785921399396855883720441405764768157281340347761883673531879431648926832064484969635246384716437370738895161114647234581482914425998273898264801365630091279339086813513473393825081692253969579272677956150804651583886106659458649899625970124521345390877105673151514712297479375380558643761991816526009160126912138020249612321473144040654989966211449364157448495364686803593824035039646476422677288884383398978943847241462268503900519945567344386308866639322389667789744512691795692489848888716726603901528564461418275773679382657010657787283411471594479322524952030290504744079986765954431806733707571242558179124698402809041861963192884058647908808697172024177244688909128215044941804032215639735647478732671861616932881495832387744893447526582780451621190485332840169257100912508964586476075273705512044660162817482741330868896002619422357933768697511733112197310120398361053987938754936831589043727518276244520875914799787177278729552218962859585450670946959483295669286299780269084013343760934488688206596403644526015519991530809562315348617672434972624605462640613363470175984693495756868049968144180759734135189829162798632475688384245899768525402973101247009347741929377848826976419149671428761690301611632073820333210553367578293793072387454920662589272189847096226170333772237670872422315096899461008084334268539466346517940549728972282535275245931359096602169014148032795317784265754923470092880368005037855190225161485046216990445651947035191698333232334268595580355431467710381575902501228145844892604767905920228175010331885988011040061219528428453230178186695595657586085486947348227825180354442206838160894053001441929371590677028725312062143166563217210069335199477624653808356524086486372939822014740003403088935084268448416747571675414037488130762541969097470831450164617991305276726903837005419622575028972742572646616557615190534935540194039157639769450453999941706441252535671119079744232867073742303027015618091107632346466360536419652139671508523219527656681200648832121101374548834712829776096914271490438912473117818905286709299746328548433784769249847849692951184591584945707693125684894956244422142390262508968860543777716851410567717193228215365616426180344193774809625852789234057199109077691570335347253434129818003027570337412014185342856549590599901520145717446392759887927913225224020514707055540243180188736011169931649090754720528047444142211355047234435578443335189853803273048440457454662917746743680454754289852686650237223774521798350396243343949350821262022943494088578834362613580431713914141399344639266294109606312739548453323337268018759971040473171875320945500819435293605219814202953299040436970609188960311600427592890853886793604031996214020168632539325774119507304441797174353883857170804303135244025481539479648345060475829639334654621059108523186700760822131308536382520152781978731806717187807544570816870653961941421042077368604326300133839956633896605378665206112728285281250386029089415435396894610639643624734379698697307729030056317905841199088021745817671215031499714235189041870118887570026645025251444957361510636241507745243700101825098457780084080451677104412839469051519809263289580709865588936377198939665727799514487944437695309520513173392830354798806133757458485829588100983865768918758061339213045076024399761593811644670454050186949184112790004018316534693866362676331166104394000008500713420898313764458170315910194181525386765688558011770834139098240626601152162107606846298452368275057134389236888898911149801452915874038025239083668760558423249095221822986257358817331522457370757435704544587851865875870255173852067360060394424227927998111505700849794934174403638655802182593160361186120105727076510317031005469053901783982637010405184435123005064196027316126677737493669776433603212228515952431246559988573380285725475098193661711595971671306724338791996946352809468268705698534298252107620990333599499844773241357504165310346416690343693783259121409086801971406551627056031498868348516585780639333476214057488011596284968787832039102779971376336349833353811265716179897720020202716532716112782093071456832855210177288513245643795407997148463068986549214287022319191194430400332378975625202240573044374308550097291618427782126349472452301682109332324639103837320841529589743976829792813191978491855690900650581357523273306317661535719563782392329901887422090539981264402351342733094164906144078822972387284782550839634151470924134701632208922606984543960667717825224563150951874260160468266997853832665118768254178779766123172195024303817659212295918478748029747791518851161693448826824548561162898836381252051397916586985736450569860233411381500666502210660784371018947357806185933788464697401084702739871162403314548089797750527970338890201207548794721790567498765755681782535138350230314446091677853325147123026976205623754688434105091048823122466018868078020468438901656510231163934151344223507545357588815469497702518768578165149672958899667739752508826115824255713479698906434963125248369034746779135823995850343623072619259074501268237692799323396063847500382666009260766285254298324411023087848554910956212092140020297900033212775946487981400097014714388291119362877200397880066813309942657654331146277448196986317704205528567050878197104724706616897617252431840224452131816587397184645550119146754179007339791581054081216764903781238010135823749326177977997301103602234598349994173092167697970995134887657265244493133538507626057595407007960399948228162042621123611147114149057353836146566981874495911339303049218803217202769447976912993550520257012368265791976405703082177926897751181395045670993825280712578999751917402766055884388859782654523113000698836830651400419124110384960474600835882042246802325599000153408147688969861694813342289843703452351102900404603921241128273316372241699494798674482734974983484497544159595087812125876335483316667323788901756343687862392240382613292118503882848303344753259271083393808551426939823447539946206101835996848869904095805287555917892821341126004916317720839701629880817316698345715857907695117228159845647050840036339026130268864502206902183818795571177938871693553035055752673367782211697377174251383724993406234970532735368246867234168725737545044012020631617424133732041777531512746117442721935346788377965879723278294142249462736146222268002064520061484746352129441585434953999928524870182293477794089374208111692483124980945669392011630848753748921380335627289199289555835520282235609167233779091734617183317970650282683417189868398959174083651771739929904835227135281128814915420987295670307497625317651518020437029730926095204054482145514409566701491607866750928511186087015973854753576167755496343873826907765664704319227026285699101113255822901845967626008287739658909781014218793277069502923106595744824675503032975232404661954420686220608703663076211984793218447368361270621314114824083260166910256073681022325150984258636698107837420745665194744240099480545807355054320441572748755217402726768529073540249086792255076380151646803662192911633776158598447924924962283265883193151194425386373092886302085593655781622789429195705448337967294213835435861289334167947807197547556742852218114702837540709262588146553073499092503782854682216578782438410066712942070441770291618597398415609481151989758308784396013118387706541331408668518602278060639224137760057407110618602451148070590507384009882571213370554495317393721833184057507830351138960700986673754488583734752815658271839469036848277209640411285487125915870354067164140186384693174257884949371097417366516966865626384939591865174556654808456244292799996271188155933204831453520291191815046735405622351194952720807848910801849163529529842408828004603083406161147978799328820802069792153952613651269107486209292098984750223222209865488896685748439139227201661227144408752600915533186381730210641284929982935588074323916836778288364120083682524866939869292636045768575605640479351330336582001147701359114847656591647317698734286457989744917419260869405670422138091248759250223736423870380318402121247243537339966256789546433369261997182813512331194110066675605709962829103457770567248946022618448175129824006656199402831941887013687286121800739766290568866755884108889759826150343722782086086324554079543574489115635046637311949212049172865006754647637212127898745931422539142344125138965434215971888786038477245171857989590611798596212984695268590992930237843692732022493583079897693325271136604969336169326868010021769411940309561521946633592078516563847101944891836691189233509832636811328913423480025345419460939617278858248309907850087880575604466906392062428921997951103191424067537650812957467767247372339540740477537607400653230173960481001868705583831437341060066508149891331036847555232613356803406810116353470867446431465399559457729262643209797633217174970415038291329172570473022720730573999182207343747879993762277190635717631184634205560093412848117754344790109246113580056672921884840459797422601270631762669596592740663336651022541658794428689455027775749524741729905381761293629038072191566534032355507320243182889042538047491315391531251881137075346313304028323596571309173502702499381495065021539353858790446617185197163389040622210973331866048617102448399751639767481191533806187316524252317944293933527122195763900872184200710622957075429581478949037702963913187100290685722124602406771988425389275993399849322872324780014537226052857156629461359343853951293161015315613939303159272009897914327805540973864256847259601790255962516705103262290256198730809032993013825280864789185546205777894425331284088704520288044157566658196403784523468599306449829266551926123193256649075334736318365661076052261161957968560449184142483260341637755047805541822968034515324072139646785332795236955994545813318552588465421023477211939643410685280210738187111762898074673300612285816667752708982230357067773111651620544892405590956478178377709468488426510300833568295357068183163521741793840136164054297621293693433517021358376970813179725781373678944226492107940213838381863668559200217182743759569098732572841013047284057311946894154239861070811660018569371045274844272551568397319180786056298147576131616977168815749152346333168023672443426891109195121177943110288487050848776617503676668610006836870864617089458554600555388235632021803060381318337729453196476216935686209132254660824010032560014677164006477328453755724465241108823598647043575150124525413075851637591313914228712379587748480101647152057436621490877758074135748521090019957708630921902875718762943750922412641228974919603503389300055450271835517075003081241833982245777208205679267145939641085153747731930311791431984506377099879181450788031235963934404117140272940500080112223990681264490226346226632660277014669522654820829164898390438791542799706696908610083368749983763505984684175816520542037233216337589983823271116106542192247025464500579252644465435779167480677881195221664653103625292962124410187707299995783536685673000260404271700333181962115801034933113325774459645909109543833678849062342409944578268783128761272237575358479749796875219673922057873919161988133170122585684133337527122558823382282457916375665827024874141089319485158274177654314584588409965046796836018767613087434098120370906449570182458236409742008745454015800082595985592038066760397667536085462375179464292551621430690366015876134156564321450258005774254007581467551412079483329814336331697527347081464677897454169751431638602701692453925405500118805151134286904115552653683237333484131064768331070548999950620020856829987003417774282480070836239134579065297185441437156079462912487434229074844179877483876053627603854193550596465423026934872279468843304759225223445217825140472592754830382020774757008545545015921684073615924653432886573039984183473160451288618038379740635665260802303585987810567904465108057046644921236637447585745772367663580472446013902940489861435384323274679648481687394978693131142633186608945724475174876954174183993144756839823986170592755241107875687012473209266411124939617435493562248661834016023484940436729940051836428081587396560893373622838007855415152857944740165650206421041949743939636555139318437222368293595720667054935904933983795123382215658627368247898678455750264837952811845788158400421753593636659199757227611699894274941565228495553340727591638602454602270946596717828483928015118280114980831382212343134527196016746848020287741785540334661079645680250568765239272152996084687512962760394760256708335140410837247334824357651674993482271480141871699217565024144626310714668946955138786708323307873000542680379173254936817395344677727708327065832697461134298599728248178329555012783441298989656824616812331034954748506083933914134313262686578615230457977843958802660013184328863512515239044231429477488676022245924579098321654172753707738140398991909586812435218174680139070470637373137141061993733919237647039886579797661712954290962651745892190932746290492365789425091399837991518989361491181167250317534106363437926970168295014342988637845560081558384396078575034197463944360135424182140790784824208434011455937113311949347815727983308388189196334080898177414928587922070174425767281477626206463339491626506592362777689592554856583288925023128117976391098302237549029062108034020635015726727299908560990974848152450094601218106556770236406310145515214247974849902112732711641316235276943882991255860449106751745108465058167877201669748771668297315366417139119219290509476250417134238649111462657818652899663002206332115507605382026370594202593420673775936480236092887501316948986865380287816314709830415898163658870419703990788890476489904259445084392084063341467917885584253851540484108404357635834765521176356703511130713337726901731462323752988533702732258044922645077932284354667809213053237558645136362079239608371177944789515121630964037443043001767099091544902993000878572040234202934721070766314393415052084735307270052735934995550180725580691191444031744398646774076518898411252461410909271779747591731213325320578757937894696060966283676315244992472817982700473823460075387528881549060452154478948565870953125718772158780951588771431915032690675631638412752258176300535951145972449651962959016624585524884326162706271935105355209803146643112140645192572732226981058771118141163691130112475093505303986075395816491081972050772216784052271530857753755553726608642091221133782866288164042152778818709835879299395481770407845282155571542439342775167639669788381693843262896400113947700197110290888961116169840745703412328828666613955447650110944410498483297539168664002199311383394439691443348212256650534517665998695550450270955493668156325714149948634022391052254201123872949871012362528373691560342003338160333770585548857899806605094887121874690494981536339165026230299942905792104052476338217934764196936949527492841190677079283348250083540737033097368007799425986656538635559405106226968295219136375082783754525265110448587216473051944596421505351983100759748810918049193075488184546889607148588424791105168730142687716008744451590539844777462712250957718446537767771600276364068434917794393941089219151370655579709182344701340124614522156948713598714321933785074002729107214338659896283589289235336780089861307724955261209684449348621200809564880912058135639834463941077469080659931673236034050404525854906933936160187000229764419256262826795679032505331126639985253428533008643757306151353943438014512437067725891477433715639789808530005034856093555506897310485389392402022127485811996267704388201690191705558987270200438501684870026404878267177007209835053784387048619340007281862076682954010338549304426852777309344551649301499891466001610578941525966410422601382054815846885802779764660043445588137662049587135798638709802556258188349887678749881824784753108093000884319961554088813542193952630581975994976878908960570717353626921899813880449233993211256227596604025715991100858294693662785363309866027536036938973268590313348860988289328495806738795948189025584253461698738876026481481924762685310828062527444740868582078000098503692723013120575935361726949978879624970531036857641936730397789006277096544835887748561436339228278037779575408118662628166810670689043908389918824416107039094047981227134471792538434167288737740190498987020375985308402484939596018836662316616415547910142455772066395332296137519570620960918418123476912920858076588689948484373445153781049774064053335375559177137618133057344566366975381834416948939061635796832348683309679430803134968099156901968441708685810250393483501678096011766156267771847015179575341257849258791764923807411170037700409801786343763505274582407456719010994303826391085923926534150917704917560692278471721336847418697477805959101855619743134573475525619388429503948946751022783657027581746902096778689764047308744997070427317450051722755725826809589609227279104155273266701583969283241787376523786856057139199184691004613780389304740194637471645477894497410384926555936333977567721875007434141176536847438449714278916562562939423786361235060708347404069643216570871405401151259187930437190339790977433100261934844963947217848556056168614771121613595461602490391742529758121026820693878876139029803721863721886869926226078105817496308439919225320318144310628199600457325566636857558777797105482554904068037147633812254477322891928305524072521891250946727108868887807113172459967574377795942748927334034646155223684067263726169749143180848263078223920079154433395369872463317239982967824595441486085989933767703529285684436424783976106130373747058233711681931251721666916078935936244702064567077489689735007622562359015244357096216834507176059586159777121827141197559781406634851713392186392823015179344222652865445646648175623660443918770183748641628487186009530793948505184941204627831110523437470538790712427562101670521117529503126021780666847235821302713334174389653332293996554528040814025132233058433907820860909365326234793712293894876455074980407829793074326622679453110742907605905723248294361202087890255375056271852925967657652506600501992798852945177716012390688465607627853880837247769082488816206425879941550025323600210567442058925823541975721049066411514978297948230227909772994932739205651168061056703033055551391622107125713329515808833724500549899668792935398602004619331824733534025986597062078153392796906180388941061074031819795923171945906910781228533266434656549716592322658966061268970353621115780828584069957528046737009092633258715376311975753572648372950886202506999098274162678163607794701106713867835559451818946691713228327832720329947617353179734011425331461830533922917215530944931331744051787480586224579743536669967258114616505206769636329014658316122481524428202780412516140323784864075300022530957097164994105267645252178908418288046794187401087723188346819843785499354030629425087589258896694521553012507251042119733322639808976620916844511539400529885365832563263615465112566900127210448101203988628268395165664690184721592666669480758665386376684467972059599315075365070114280735828187621397023980963386645370276229219938528179476183309131873587946523836794995913378699640544650547675821527107268103089613890401193115185151009964304285720995771506890891857626337966940225780778637071107225777726587417173511746363125091088200909128375676408774764293444786710885975622250732014712120560660047425348991949797114688712145866280560621071298358596251997255195150764342709633632678707597372173313365692681893474996918897910813487767870212518491413605533549834068300819911197566759184790593677538508187440112690813243085458121248424288874677915091597683375955298109958559031658604212704309567190301069054596529715695046966476909713257117241682040218400282912975724295420432865311460089181224423860174555189667792690016960874043412108048473435064770584816555372724483131674085191941317828304275003504463936535618898736780416231767816210266571763153749367651639031041351711985568102053502229527632638999006385880233960281679493897747810001741735731311270206219239228778520637399965893451124909523358759140303765317728465987018611612052461893263536318412729875959315647021017041525947849592672226621359655008488405547826336236643385008499379242840632847570874343717084772378014166099297598632322636335784099688943409385151051280154633222896302165736559488896349629264208354956998907173161844806944274938082866634030307209326964536436108697259383358691138082063234145640288471424771055033313349041367245555238833924616949281092693610289516987719523342813478979341062227943462593705641598683269115035253799731180541719287779980016514441022621541472935513774618383648487329752898433395507464721122580771003620446638803823956910158217132278945959947571254769819578044112202142114751793057565695415919094123019940970523667429382243278140853644152904892989737663011992565146992118049990544618434478313229031988032544418153430116734817006840295848604863599321763513527008761735415404100635865584475157718347160984640970608378144322681823764522767443942163534702706440138490601901800243848888783845747325157419841557147446953980337369207276740119347519706678003030843503884491908507321310177350826127582099294431506650511872877021375232163784142455380564661861956303072656302347203800289105666636934040980818356781652473552832775142672946842295999420128320111657508540461857831536930264358873520465348369385320906545636311569858387634504546327570767597376476423565813290649321404321200266109336367872380092906182425907478028907582756082986682210291731888613317904421771406381005049982073087232489251331834098086263258058792986348086392330482999200786797412001761281395991258508905661580801053581480757677802006734152431737838290866126243860621300339108161564577629684668966162692267742961203443341985873677718092935191943218505744191093387411840782627444922708966499813677251779561226563239989357931961433074252064391243212850075793805327691635124522067378535417324502566781347575534311650334140213734147183140771044014541302424944907337030218776463294539909383347133055962638626854636750149827998222975509219703199681122748608950656712168777383771927518271211095276461099980189593161787287606878621171186313259637916089467405464377931640104154583266016495209318183672300602608938317674652120871261407700726175233483050685042686078475478721532317708248513440114142529745829592468766584045286748080187995990327205596516986321011397650556635187873379352527825520418373224979029911496809289144394913980284282596541974823359753034752249591119718339352884224483139516765340058788221531603439154154204337527269234458674449306625556337517681691870315148741342020911827052170779814629436253298866151506385438722381939111107116367118198903944661178740128747991312012791290056532525264331160921419247643548608818656548327515315474238347842820857900512062800572054495177558219948187754057231392977417700648729817058790740390561134584138835331388079248351995856710616571528807459161130907503516510404851947913690249109405117677232336869237927902979005436589296241221698878473366594536870601552720067261884987985902203537982119131452163910469226670852506136234814647872052782397373562220022467677655206198563288637703262575050749465490932443098728899447041771765420608890739332576045667324314217129777223467780039793133358731668556608762884424983303367971320361945056952355705466907348439460407329495866976796912586850110010717768400498687570074929145708029731536940862573199939181749340839522916291502004155578522326511005867944368783720514648584117376642104116003619377498413451012946021999029824629724628530628357187181826772506403055029107039462132561268218330534217010178658741730079056958652320917926530576526867605828444119052093862986154150097518582500963173041059387942474284284635878985579672180159839487426900659313376581381307773345545974473760161084677938999346650553401333470377120416909902599241365389132869138046886366614705676330009870611437253594673625823486745843351388344394510502719499211577028043328286279382283745244900543990105029561129871498591144202192847853160382537232252691407442001954556059102071589493921835699699179695868993479823073901889799669452031644997262648544696125490851221569357865153360595947180272044065252543277783803931425249811499785220160519216871202976974906020505716765215793928072209037542418353727838959093962165898021396620119469776729721364476975022922628861863125217873317691572527846653393124719528046221836999457215388573494498608212754633415614732594092431369834116209967034311965855962126806903933738663255829276775065014067745803087359071434492303441823926036544313680730700107924334567325126072941885208399347596049385008562821673541307528095475891458775960145437326741771763388122911627271974258348746415912336488944684945038198470068686002178171795475141410692322474220773280176459644614520816949163971532148014562664541149316730668558470370101099636416473497163456264662892624131853139499632982174828971522131179521764051757831757516442250023070869951813351635413976349058007577587890871307371650603173403799512985664908681020529028393238694714294085832145601863928089900771603450761799662231963321836844501345797484463942770339981871133544878973748036189381818507731610876988158955348117366613599277073318587161882446465991266387420888193073334422522781462330643859971964453805504771575998541233836211184939528042744742880301977045059935823527544446270529038174796407917553584204066339671239994137477818787231252852102703405738730079518189379072385915195296779729800834916148222253783382254056230338276033064278962886973901860302704337801416990743213709900406053634394087950475952710665828079787804561226610538004080329861283733219193022176408844208007973377998797296496943266890495257851013831739963735607509322461859392188959567916767837909853176245581141861820346293724122929595635449099884798208374048869672114022440602850211703652769797011677690423644912395281278418521807946032372014105537785281869717420403393387291035054619921616632633756326053138437431964631610075849377502796069822170161269236710831508350007069818138836110246477535389305302662234267708449352209962937053256607635515396582320057771044744705253720636283241311393407720331358315572653296061819825321644071708559955014020734495336176754309719399038831384557906946602354014765476656462445328749978907581847211501563443519911538940418366460431534862889559801284484331501522578453697515437224941590210732553684140134648555664016059823914386750577142453085421165709765870801839007877579319974812174990451539883487510369791544477329687322095114265994556075061298881255200563395556851808111000759783825102000255412687394081193331154398106889254782702026765351932738503858905838973964019600586050814138773876684421526255980839657106574135413376054307046658956405860156270651004286104840830247343915110889880320528828056970231978821714935380080388903925707750062266082811313694663436372369014786588139410455116265417017131880258678570533774061217858459575314213072393209584660921452367773732462149196266112006669978002378245214431029724054347537223407051425662168424856735836398139495324783050140073733931913227080075940227996523948787056901133872378888880978680734170411320088932533703271121828064760715637093126085244183575012778916199911967950730729036017233192808735397180413978950046007324440658362371651605891932117657042708795613954805568651418664947229754783875397807027079861648390803704282704218445448784437804086446841038544281770832238255768399793692646655422970294444986966308368440553420880685206593899700916615730921558979623649206543275354557118017573469977155717025854905521212312441461131318804588680861284117188244870604319503095026233880970361667608521667483881322257029851149742264545045757039340582711888581945939548783347493530834428734440818884745729101966828876377409146315396326899845769565477041778889909914100012033717221571598113733027209797441301455966605859440521677181101082361104224910162012197879903461473389199712387734579483011065945423215169916717375929635065309428561216094851057409079855455477741088419999399245811782942953345941039374917781769021404311052525416339998789496098983941203975230112751849861407563070167524133753433360185387331142588265062360913905941501962574086276219455569076469241792428265740613689920826831160961455461745062154819731102921340914996013842134622714218639110457186137979751516366433880218682080762794776553662221994543120382570657876062469858028279905088011872211577846717072164085991680354466831078990770501575529540584322376627110458798052118341498398452151584320395303959307037303083818265703368881058784231710143031828801188307151204347497587731663967314132523031144551985983008130640652273053955468357031146285227203056036038358992786579515729980605343854167031409084151704486639827998412816420586385875172627042054195559423508138503528215998228446024499748091167472928803405303223955165227778851524199812124390955710362021840241199352523762320269742916881349311551670500695721850893487166811024854111347473985498119038353309659370811461275310906238672511416125696822979035549427960158698562909921566470083560251550342605119783679246437240180091963857472558888709919423706892718036744551270081085957858092688604015565958797850365503614434007171138306094129495181076829096520779110305954042511984371338260501162308505558996340101425478738975733099768123946321523073443039963697758946906841614191363592935741296943945090196616932877257248064315321791655286826316571163108581668099976067234798247444439070191215012400126003470959479348744635237070070244100969224284639964493171440401413765707108031621325629641837934544028255601216328667801355922244186667712021749385624350954866676818363919541592396859764365253173371444126685987056743203703654864225008151233635550441159047738568082826739590400048752221921157918882614644922075087703296537525455718975026882585591728074886963361256133507979357937775462325878589063451476190071139971920669690693033980284631931827096387026895963935775836859498981880360228156489517223798241634679594688924894207847814097331377581185105968524219331712338025402296058468344276672150192711182961272864241140413565943778439090447051364237448993446431804755708361479861526876180575147051420499022121083809365314994977504365034518867378327115853108438110565443905239067598145588222220092461660302331294658673168681985632940985435902895006259415878887707170840198491201568560775931929138955291439978019604415216858879459265523403948148742977986070128191169709496426956417454599734839145422219047602013955983141517049910959829904456247667837128145458193879301756545947593845386543018661312033091220801899098321585930996605204536626647107219073907995722641990948604644340729953080109474164140744885322204623414245291315492820805583922185098858864667825839961520514257224138201775994330611182851522305077457120994145896983013477910193789041689996209448270977230971759636998370302188554122320622841442852661424176981849302990503639982070550499254849604072968406924676187190746049126560658100948912535824966734238188600900375358715082259215779976028392964333037881529013663594765568887511412466613429955830527775374649988811449436152952617781744209059512775708806993443005218500069157068980687968836899999063520787638103779259668684168365372176652920849322070090649033029402467041139031209713239413046744387748424911825377997159527044524467438322006118998240163359681235125399772200435677226190263659770190789552444850041361165041447071063458981180844313585463712364786049201433612187148830411241987502942159840049551943754860334112252644087230671134082223816731998900986710547642744611604364549513374643562657594239712157020349938042758497309365435027003399725003660889946469635667411981648784824291101173564489766330438831086312384734500404579934957006741675014787798993716113681109340921852257415209130876819516255430301217301770397043478627465825727067516370495835471762931717535250134948227373401493830046425701770413408353206595252840170779126224817356586858714405608674594602408147115752925798584673844705923296050215954146033430313717519584205951022243917376577187097458559739814706493845782213617861049273656246011917735368028983832820650453765095789701083504974211408092185954351485573493160464192117180049707852796102593356728566083193731912577750791941950339278639203432570837052105106838888436656619121684208733552015697776837074841895890033666713626443207987506127158352962606966857364967846898669010257136536183335405594106867807087813285956274516716838290739660321454634941156011515999752719965709385826422998959412062354043430319942838706467093218284678208734663585747031748764022661514930998635507525200312215386536686318973539661131596821246222556896662204638577575758205324789998181165381776649473269508437372322801847957938140166804856153327419737276153532042983863378213252185818393639611024435757058734989977383527777062658334096009934887440463222388017011389252645200367375623894382700299690622298322789870051737771463345953863923496537896347573270652320809644877595182483218623093774842843422135750790521474120311665973811252578327056191887085794054271760418852304280147424924909680954963873647952367387415132753071442518279440963702232652641846051404689840481276660828576400109718065220584774482893356859990906208162464212273012251076388344344603095187805605827803277997638158883351893735219615565700235637868579651569152444469480350160288142820888718549232800997353994950061735126683489773208239756749316028717072265262030190418177208526129382268314646940835550563600856229333998366961909816579126909383001818929623203607800196587270406087668795712719663828175879432312228753760572783047550212371433111113850799904146307308859126268795503840174611886812004269782087113200524062955345368736447796635608471025504854335980772674677594723439259377462354357731321827039398962385709050095631528359387079857946948238033884055548981203192469636290160087033112057312783045016567760478997860939156982996034042540442133412841843417034888888218654784476449189451147175366830611946328930417499785121793474203042149057792198396739980757277507055322086285338183857550885258240966221759643008689868621086575235421740720829202714408292515231757085263320891424841423222797728169473486595643181515695880756817426910937474616354794337652850536151649283541893281484770023263839513116989280641982280917372938301236369134741390150945820199620215032122792691835919254896785114755880795595554506448671621693760853819248650009713968966677445249802932595534425543697966318872970228343772657622748506468849189673252275925050652113145586810046823729955997163256898606006370818438944855530468106322413980789513231041977454492856228237752563575020982056052280913887783435272095620129546050382390503823345824639468421990972777289754013247198383070223976916751632395957930757921739803859562181445707572691740790724325624024612458676000978816663439463835139827406229414811057313047576195440867817616173305420659279195501098603633373170261148644066119746126486182025824473376970623362289888362778846734106175366093341666443600725950713695516202331939281170937191806196723335363971639117934176267508373379150490302341472305259144884746638712355346161058706797852095073888164592283714224233188241752143053508926907888233357253640019762184006205195621131127049347513875513082091130062482113073136389184862574176327444079894913211256407900096115169003706295196328234883007965859133185501479083821229245844932060299705920953383466779583413932937885491396972410854008958510141256699043900388620306218630896019249135356199339051110277708269301755214498596815669654470131385320301646455943173894771511087900862292311356092147741276132458790929749358824939037339881204345004127925157010114530806980464837065388583734371186731443770480808364523893252228528956053712374112778399752345636545987700373666968472869521502804547741716811421143682353998847216271597596355034202027737617204306284895910084743377532982437919246016968296616663822661178863537586909032914861833327181973706083926069986328080867005918515975493568947190205749402244994522181169814750963038527901595467605668303372877184318175990203966000716095052898341532247378108225629931389952379111765959407371713096928428304720801158323849433373595187666285787344826150994964570576440354146201664717249728941659817875671712600902398229527195583725248043435269702649839690319154462517140608719606398958640763422104907787221979138161350425532337550956790365832265523601185432221134196722393523628258598639846660591544115264765103142080212447982257585673739566950941246640967690411491229918445195360676597384836571766114550377971440648028024947795254424767760777437916663942935172458876978022915927014983621585503948962412912315975443862645385170745845787667248009901618593397525552424556832290062581552675476701762587839249332848383535281951362638797910983585469374476025172799751521992061433705005297593950753087993551073710849611291387809475762574600747121994260895919136931092073541404848964312433343524671114777875148528083643683531940109743992388029077669195652412491470272061106693584853787377723411808649576259581164556760430619569575429363264053582696158238066870692095515966976902989738669372677311765277769844310540922359767945450904708766159066287369561411926560840605161288096369480264304262470773485385287350517075608369887900313089419189074698405508732901763471563135539175763623860359650110230599264805789001766876440639035136635507416653244967988194838501805392884100527496129546475156374033904552428143306891013841231004786066818195115705398550139964303736508319194894268092333828776260535609142897585909445198450109211984805269669820343608564258430171087688969566651196813527712774171521108250397684054199337913469392067941166551094328776519581758515483269361101977832608930409640500428091747231672183904952858735943792181976608456120215493746395976906686671449451893357153986522756878722409958589879569679407627219435594626998005889686484955376295599060332741683348904570142941343016284802864295331889366347480464316346482544091760432949480320524630877451275941147785781925592017166921514836681746560031408588762204600633982189785777347171283835667087777448346506678347026994932794604154293723724052040830970583994605426626550662893756002086257294809730966696020603245892909064454721966257255257896764126879796692411499644148401668381949356668674965772186170875730420438987116898719533096884312495192527498149489453693244746637865982151088025276689799857477071456049355837480507529697293992048668708460666198716354396303690455324447115511941730964207057745044376500900231321659094435016764067330291286477697771423116800639523508884746232322397338122081319496536886657540135871885614546431138796077186110179748457471169190727001273023580673818027223379270613917275660840834585918367760580390326601520260861343384375698413317527645453390681818075122200892213335886511133564505863422361827993103756851912332435979474133607636708548134760713586898367157866666480331360919123936831040127832929020866616235256512685838150588155782589817731363046416597409748279769675390326292522048756270055171569748949647827511451478590035252992427835875475430485752909858003907778903257851976337454533681881874610088963376186561539968661300353405785812295709292016101803430325748199448399554208576822942014808106116462653597183163346623021292847966162884440135871268429937753623799812557789358249949540376477236999640520274863530600859411923515765537919378897975978507261738001334947590539460683610910823117312164701745532661830931795725701269015064619646568439742070082419600928279093887924837848023547265827234936938072611236653165346612157678319888544501422331224135508341100400538511836871659779817603136318826330151231835274978353968233672002158197340869539678129705873712715084456624188439599681608053552639774866922040345331728934243903364101716459848894335772899165053052220396889015276385765719770837741828526156128485364000341988780307650139563434538568938261753778093922608208260788172099439058561484334519768616235724370656288500781278591250312193991125507074250752918965759733156871466618065824066954720053270085843787299980817095098202541532284462466141030398129829016458110726088980442594472007182271358310237742099253677894646466496377874569164334798467601970732854419434922270795920058533716845665856179984388101427253633626185141535771446018402040356396840099221612387928128512739202690563774714903346046837228796254468326926709281969146017823621683606466619806569208531977221448226853174864794831659267497703771891371170541750935685491360743809139634897813481930361843818048633705838836352306895458316769239383959016976990829571405044573814462810671856980651692527067815311038867013625446418914649819238691705044298643283803316515312869845165603578119597098178217225868046335771805375739337726147490909265374035507062186151583146537402032771307611471647648416301252962233736531225916751915383311038471257596096302903128973555055971614177080351925421196561826109040225279200164494507144047045547552041899729363263349207714854362286346872969916023601876366293323296899386041114820389803879161495749973051862014638651743276807288907147868607226345564801289464954145588068484771310266641828756661321181634457085484687344800354010470598418727166578520465927315572709457752232851199568293574174133514106472131028597573615302452894615775804932436764255195235126802368266588812644802833458768826043954074240656420891422124402097615025864056252193367720086780916903233495548991089585038088092179489441066170039016549696350194793353684228594735074391513667390651934340524305513467690839454705751889708180989529125107527516501425886851713911582307815681646587536844179720074192201983835907012571344159373286826973459160841765005048631861741120359317713879442762407564589764615677032250327145766792226322373310562625094794712120931903417624473402586270273550462346567412825268346819314612782750784240694917619114816547231067037109375750173846608817801635395324273192957631302378306005016909327360524684508747313814460136973348323715943467656425491908792673055853593405453787132534053739690467920922374495980085915798584923654460042662684015308907677993232162937578891777914555498644834327295253166525199528407518007345051095254356568643144791040377867682413051466091830111285274991678327893711016876175322565335111374343013119617997808896151771151305432872465461042383738764708276995897797007209719515352341251532407847491294447111144865497662965865156270158033039389742257078153118485077979660232424381223028528383613237025514465491149271722094438087780800435228962715085098439714306254714586446485028168419677573619930619959364980802205039676027678830766566011200682233985073922982834273410433130974638858831545133195740553379731185884090060201541489090290822131720126693736752091286635226010660412655929450576326164971886996743959698751538431464831199076024803986742998127079778345741958497771219070378382149354937542518911454751597086447870872984717660688134636820881803646143919695295504785917350122842113950251947600122346302275305324931207977277987990353846331620404929467199923325836122930738002780128652404452660476554544754779709134580093225034107331530510687997837052543550174690638490307038564451805341634891252611251415855413433710177656629443186834845392819104456164404889686474379033917672867090353249247317904843592770072796519982386407797742526203776827969821917517617245018864436851672990045948477872015881294325468025653021817436583015894056915132540733025496397308688700131062153589391662245588461970389615868458738117485424268910215009545682043666531521618212382508122340586264995697243850360403788902240480965134375096581170527883143262039927487422250795533406895905363274437515154378623889696652427537216042199337052578006293627060771348235434315771832721539555593371562516426551172829782241009726413945616593395276369553648732101937430100895010034476703924275885179325099098773640321093893497666200382296217474775028094133704008752531620145747397632114461711574817497832395758445255415647804664989621418368314314299933970655141624725687308469539364846720377279307979556726624883737809581776616090520627423794030727665323284838618073986698423566215926548490377204706296760743037700939526496848814765697855367900831239591816531907050027403069961568778713804534975888153627069761783598336877481889798072362582351632797180145366017957893179508067724120213416586948206924635296738466152730671362640704428310644836913440201524951085672501155107005556031128699801020175116739356962332050285266634605549528394085954036490889909390412663943200554676573086004798011067578675168289435942085205642191709833828246020551209283728309553465204143308287730653360481439605084427885340352968087870813545617596651988224344020196377874902710134916215873945311586811759385478310276406540149558345289814118669448071258013603235843817677661082994448516752378797571196760241734812370645508433929993136737383038752021781114185223281350936945348855166060895374448966264280413158396086086999552510259376180296214716837133252185151220740547584757154481467361680333547541157093619040959503847326328486025291529097647177854504205437272678782811671058885878818076094735706251850386810862885681185745146439623714116720521854500267132096255578525742767890441766260137649294492015682827253349054070271981158171601388678619929042803425402245564710201026869498036881172691016045456577730615103888935982186389538393227334455659192660889282222390549663140202026260986715505505522373113732872880678167100746768003813248491803896501075791325501222281898216527213032148027810070906999996466264102122437773559548665041202934278201308221727246615664767646374255076222406526032844628707021509151011316271140644824589571732700112025490249941774118322732013568998112488400329231384434247271641464866900488734956062597691947829508876318607630229560650923881047007638689542245610409206207635883859989198104603752074969778284472792795050913828850139759388510262959269024376204134320802988422743489459771896966632591987834124818762632260058909095398946741158964030266946578444653279137881524511150955071242296209607638466787627575871944672854230043021834187282378162998641818085020600082874118369471165564813922389481085210803597476218887536434402935837822972806803256954850296704566029833177745581307768768162063137923507109700663346255397063156776968744609287642717486063036614217021014293497293403271042930215335396925970656626104252002644903371682002818597754355079602117839629580762518094891731332960238476566528320222000092090522979844307518078099141425032695588301802607026007373809089759146975715932126054549731853571149401092831152011870267817495414738837755188556930802813032523584965366406130313004115732994443717251226358534100268107247359573535459774518534929120929142068165307567110369361447566474120251366780077556683939366810958295378603812864641931779506472971521261647788782291665270711202901203016375725747668079998382929880796239011449419039558554949179522746272586006227547174466019317890264787243674272554727855026599236237127500037116262982644741406541740348553590643234586388307983740406813023760002967826071461451273283514535435882138596133364666665629441954124311086516507313125354853769969012370997428267909706709110432656095937776853138036832467584069126565148068182115833155129823990214434792904151979520051289402988813919441473728004741992967031098304177434485118678677236086688311201221971589891781133216354298681118542410042546478140218564703844766403394268980330431040107399292608025246851989321624063075615350885285107020973272493817054394021789287921781866898739867592471676254366518868710087525433520523347612245516075079921264121157211549729058953224031778753070653921182994419327282086922868302137308190297492884576212545903952628967542165954082711930825363172476603611586439801542550934014586102188841390034707041381157605461495752056132293254853101652018803365432486979327050323711556736704412362455127796609842900197763037537836859844239365800050488896917027885060063309342920151122796230972783383085835213995199328759219835408908648509405811434918385178280052806085466836788615609695275261116702752390090901572937425098804153819386930616303606799287886637805138686049799947188899089014845410746517086489956946680128957809721078018227650378483096101060559771490309964705656071831599176310898978261684140656176452233659540839350416695397979862982581262310708503153648137431408362126514137055525015310494114570941104482457770892481447940922601689478151347007918681007787747463921126460008345287342997927168389730664717459917296063325856143959256359788032881455080841438428445265424573126972005993501913702680172660667803922175545029945407946424644835885585299649761365859617666451633489144203740002931036314358984464236890029993826831369728883741217013617947624111130358013437832965742240296257556571911604294995073777827900188779318370555834952915409455112131567637533206642319893696761666907060285545604584465246011401388893408526664367394739479029414280093879311413202533048563755172960650988383927033567760078643875911893356551844783656024093832032279264151758192907649597644171173820081766479808118217020322262112268637453025316919997351758448565677153098322251461058428358933786979591075622516808192276388287903919029882937454830983192413881364026543157278537575435538177415983825499008928406597133737639093938051564002396877962527699971378803509482004045674700756937108117100324408816934308011371401251524403072181732904353119858557849911729770616115846802299426786660098259223501057307473616229734420464471718581694084184800457124660814456737746333556537507110256719902020089968636175783963454412936189068775863526825469582832583423782178351661275336284363294801400826253955832093070292132997249407041595305693511738795173666765829532333236796637667473259740201610046229760413002221764600019516912121480315131520683356407167393872055437830332783348863087524822902563768509655554393028067692355996217559843080410760101995179391149777986296112905091335915908130264337903940129002237181768758692424267292166312816966979836173067340671984566994170190752631747944506461487385849385755454504853144418388842419055655307666694017704217359844720512083251728435386010209709736280968590518985239824094584404460911835583806149042402525287937773226102845563574533969381070262668910767699200531694967966645300624132221116775819488323341174530202539539644905680927882958204082323867298310886204056145512918051661916415809890899682862983609923537960056108186554759200620814907930157892437157146570571835009398951455932555135214696969749491868580697993118895661190821901986841528353007622314907000108581884316928061340566267999072140695472717395584881352695805384593338085039661122800156617037810864695001522651363479280326519173679489776790504558082929851749872383390621687699120095695640926612787657293764568762630721748648572332642699753234178776588807565878168729369278832912574248245309865143206403342034259279667494001446988434565927862533972240701114632744909512288127014039847071808141553334516345188583693015953819722303148759324221417127130011256469807376482049937468914635515206864962710613978393184594842172100025015168906579534259456545780939072213524527954190076045273390679032455151034564632545560879852897954070680732357745645949787635740791557769432457195739059537784769771024610328400218094309648585903795795674925689142460895197836212508003607568742232074500534888871218818639702376352713054261126839835936928818478617548057615310276881157875552092918420941410892082390688508247427564914610195324389782239527731979661869725973282819876244343391789734655141455311153672732938769848855565919418132219188594311086065378778025061103292835542063063222791611285514856465898571300132465722364949455943898151391484879070384172021520014669702524674991482741814670665156581389947896071809756684991286742997597899923599128037279851926899625164049320702888690982416061271540561116026003210656895535152601755644327886689871544947859986654753062290577079210042403854889811475740673646300937786773766470539422604482072435400645773838346827860522104103752482467577087493400995084888225939797507708454294365264284404104479732056582019808685323958724088568582239793194352538152322823043653859498135649287190592634607335642030718256542357978425321380888681541626627869107511905558739783455416227829740833398682078729238034760296237952916919811138678619523163696793388843336884086284341632823600204886850770309816793669342298723734607164142881569910139092246578954218800483544738928932405202497542303684958755265463820680699537222154733308213976212132064469923288845138745899643129958560150316029668782708285062005945058194523450321285135282630107630523499215155517556572481763169426961860310965870489703702652766269829339036870601607907694908995106694501338320799668092711629001132079066365622363940132520957860148061064286478040232744407496747289545358279130482745873228831844720828622953735321579545813575807188285514791162259762511040936142692195817112091089235667772278950322030715972108216093371524227851025756768931959601740839481900568783076846357249180441854573379927981195935674789417966159184756830503613213855919713632371689294760427753602870100328968123096365379346011603556025206579500258219252125898664723020176020781447390449977997774451518913773025868417335920920869591372911063221192456806122740455305378053061006126994141285908132912088122000201634458087950793507757918061827478354181004571974675923340342114959682631870981099931277411066842013813377086914766735652952500123545905421969996461030907810867127137925012986269804515555241664943314966046741001076443047488940685603470527303004423865005141598084482649032256651804308439270814729975845422617355409889490443024234105222845333468390664506184973806191218190679192860415050486909421063763782645155148189714457576296542347530482119704839906214343783786539817258909759675152223267290205221892129805740591729917922834180032185688674635912398847089223362226148015236434828128250013306660965903192377025254329303492255292199049159418721975821352453329187287852085913065585641248201833208165915835387697813437469370656216541704820990312075780848664078731051083005874996054716549298908965966996514200632254600129425966061777225236704419173815164135068983352708214085022512698795294805983083918205084918457705589474906936206397317415923479372165504833459465591832692158109923655735958073103830735184420572872212409158193171788500697880993228473921350055872344382744951076192305509556502048637357458380558474209277441660329820984613439014228793691146663465391093098758315854123353825308608857134800749060561724404942128509409301443052428809046093545914972397185181028273525016655163058444091479780755474897652320893332433320173486104899110947759322619180035813651286130821786235479414293885716986385360911707118802332211038216354460240101343716871110233840306079344462797806274425337935844663260419470614661797165151416527296549416108797971936261910313742242424930462895707185852162010005846142207637077106830439596465154007698310519193183229278079956477789762145717094443102246322027541921253054209283838403929073251055423575468803973066360959519374275024290926837222962966153170220879953486020904531432892453436422440860421767837516745804649626996380776707420902189346337156859757410350686732831305469515454670398909536299893510614508764536129858772292457506365946835501236370705768136735053910701455882024456094885455649467178036690230942763919000568435281464153736728498144147317077018757835084261763760643960602981523553993858052594630639132455578730737986447684027846668892019450805595750490095986122960361128519982317459972301819440733580695686394416523898523062906375997043759286730601392484567384310344825039494525557433188798853652467248464530591529928299363714378413111284026010044503233703256852820029222574928508071032566190958870906324481679512482170668901619405122422577550337542650272506033025627227573407020950751171592867148735931521458115047789734821867745658397152025891368963929560660918452981820991240333745651412910289552446859144354311897163677619978820600137081073959082068268173669174441532873376923067073128466600179430965585646943752853491433550693480256722209386073289570057185783874919849590489967483419170408588869291206096645168201809066743689032535092054171322525603621113554765901969771101005889329130532514526358434041455456010533334035064171085078848843797498488718146577438858263984763363783968272830521593250133950156390168972894981560222596949626298942143681683338853954499438343716227029476201316439258010680670885260234334964448881306329072898966215575037808268067643243619956303393229237477153177602780450432586693627322284851303544689583999635249770411040883208023893070076252148609280255146064011544020491787504911542952928952756925569769224888773053500750925995556543273985570932365012643866554871655776710787135258840337929028065443761579518613721011093055894023169238095404526932311633158793711521936559590650680383718986378290715606090396998034182453057344667222330639295253954454493519455456179864627210110713660034096845921347851452893073196569356670066097463907920725262392232916482874032727273110051545345191070073623867610249099576225101149158434653769204201829711817662227044400871650769223873030724421125391415799209355293971454311951398435931765770258414632372477979870249145066114031297091990232169820527341084033224038881566233763298101573984591638317706435720621238731886356925637910185339240233811475515043119883853532360160653970439905416836423987452541696945410601835171835706428636609558613275549735795789505951509483297610604910091551700369486493762744226689719436665190918288969994546013376069674848749803761455241916273948770072214182191895281484904578909142613419986915668477916504455676197898716083647719206663286291536763498380245916504665953085259893685333277828458420357803148650633249504586489111827771216642257561867166513633344814798441725085223278587533395974524150986467109497028828296492567268336018060158246249385666904136135493419083421278817955689957488024652979813649232017661346567257152526646162567842137509192131922130596905204723837525202166616583201478649882387256421978011087358218017994332546263049251000398612516470818997420149789925474281772251627944809319674995713762143605043389149711761538566180131428955132154033831090275046844007435250190837060218706159827469486475280763487625276271201911562827028602982713724706561874537704338504063678449029667295473494096020418407470457247492676552714549925229535056101127513758166552265526890875195958548596196076728308414830977416803765368926658028157409533936364300961928686195868979153481784105180754600610028892525737754304346670385837472129065135248652795307417567838311423646934589647690387140908469270352838256196980116339163641709008158381616853516956782705648232651646433001458796126032025345101787911830009781016770748554621706936664365537777577674823542294167200015553945080291651309240421298930472405508221015453005470417047892946767199944104570426643238557587986962397550208434587155818501106115500179573904154216655086390446309401970398879846394528415104351355135292210303674080894062526745419830671426772998621290293209953592650448921363170225179048182835897353541597280772233972133123262715998850645700815822798000946310094215564609428506607961976217147092170539727984354765070930076636049667310149561308370289557110991556477981632293345370113456466239426776811527722019164028454611307025887994880796275777677985862019470348574413918831607909978445273395006899255885088474468428403232287327014668722067570107984545848188228955961358739440635300273462065489613531297420043208795722885030181760259266751632623147040996808097793688025005641936693558105212491164213554750097578949462599003852260802558687551315464374825728459599097475773449797434556372014008979700367838926331482173876677000428819476716235544447267164965790761045671241449351526210175461087857296714573725272500117318392428186917264853775133074425693383705470592462433807146489788192757292722388927094711658453929372676344088396093052617698681404889792124967143730901421664729444373259651753711209175834007540479502659892773231811933684778967412887471978914238996579879532953227120813924319512855739044417841609672218929718292478218948239905417965505342795554541516561253781713980036577736011042144387812522871380586998372740856687329206921098357123410297898468597670826412041970774748031501127307636592518404055281963305493362594540747607193202594652336626616801585186050854172469918155847985504613162085570950111508997941672221755590347988545166406216154835617852932378883306174574921387440593683930656821401160705682604598375232159345020430845355481072449420453595944457764665957877318022919497504644695464264753985676276091212193570916387965650478695038826885027505858394735350477315682284451503214538029799194029831031978334377725293099243984135768362481927099694962418836704629491836707453396415089594339817102082111162527636699362912086205785293573853102535818137099324297290154652306551173075715750851911243469869366406941318886130895201743646831234680810353456946533033919538460510016012685647410565062423698175164172639309098482660216675774605674276405138146256551726604735948734377857243661187429084039166741049695270268055875916420897222756579200322206653256501315100585093708896878096455857620519669802027750089662273321785643648876171856454238360955495740831564634053965825439952707369998910539124763540643633323172741262055052295368264847021427302919082069585833850175539667544661737212163545935240629207396224777158620515476384596556173573344411714946185003684472809903860942787487854839344364680424519295373617150683652312158610157423334762181495405598316110625826839277710657300630450229655209516298154046040189704082036017399987875190886775831552959316835153762454158935101290663879736679481085729294658428729623874829245551116344708826479775379261437720120879553772792491670086247688632634428639371667983445910823663468621218487894954448734667505168318232155591772338236587350591721267425130985523777764793351969445221757564532365802004217331220447644751255877720288725571492192114699902807889119866929710446771163825497810601571787560696275007809732069503520415961361371596701001030984932874578918831862423561282456067622613852897092292959114137805423726044591856542136427841238391867331005195249791893057147108823295790108619099887237994905950022575644662033028591816157265828118228403555636935049812190731108908192309683831255967505830320039974725078706085505666730535271565161773251068356187294496468747819452475203338408590409714062829974708029918224928143747435150217157487079625960202010199337767692670887535262129096374541534629648800863429975613088977578541666127413994573404206913354954622110732689157308568455339062712185291432340340272559244057064212314078438573475250154607542975470951163520744806968161382658565281286788099138836706407969664748524221333027518845508872124205057057149428014296972813450128934406560384086967435878275570621008007052360158240747025791149436145361559794688642179415858813337327530701746935069082211244636209254062699931652684954183272068343881345160912583402291946384944891689260957773781376325785657325114550410350062219426119945329654949531314377123385278851208104828050263075846240226779283000128173739012323003148898776889616170579800537720831320858664719838606270056091204029889498153212813655195410301103328731271844307756308637042944733767278378472992771700380673834571880183801871889532758899473651213558750329200988257038814657082369993982125849324149429596826732530055861223046937796066530532164377174643869551384429138213534658594123843364533160479994907483933862384654399650388223590003829242863349099778593784444069812414590526914229662286803480752139231190612426043420583186344897834233256291694559038893358158487651166132229294411451728321755384721410361448000755653256761186244893680669650334614053171059505831812719066674821658207316260676810240438709870628826699464230112612898675401038554358431634048583401305428778522970645475410090999531106084765351343074027032802333154907225301375857736024445137969483309462811291081502536560886529672418552934376719107991651916630476680544590551487359805996742365083877863445834330008639235737134836951687626723803762982268625865047954157472755973173674257601354531155678345705790475222780537934625867945248639552651442093687497315871484969153971036392256895747411090614473430388249130390030338887237762028218390135907569918799942675479525213248813699986652410849206869144942003188598736666765386845487125415031682802197983281252965263670163496987823358753326117086515306421068082033637173318781329012374166349792728970966871494907507512876823225405803149574426344685266674680067065357828684730895851433619349474536513634773102554106025561157195352424277436832449300339432237633136505094343398545370049632356585163529512572837649347659534861586804896154669428225699145692994314945282388269963450712695320414408344324522547607634030126201925389302870294515158416134132985266846540872092649166258616379853560371170017717089179213281454562033077010100400549325250363677133762380724759616199184160431834272342627027692734702807326499928607855755777049307381402782100867313599164146583097872428501489836303904207289098759238341886933150613184213714986691832197620959988431936036529147150414007867446401643577507244435466034183460274966403926936760936213213774715426288477995508935253281579268700126172768130481627857182300478262219963297960473131388255690788203156673063426174219563763340282540997051729941320149072319474184286936988732384465445126253824965870186256748805224935942876413137295779181172854807224536787643983456395685973764852470678492535917836864485132108917029740713450791191830322067961956505659475039995311306150793480799973764496328555227903047792962878215773526915733885023228604605340102472212911838434583279630806955760327653130771803710084687803502677522968730239560149397024106946765466919029232373567364465421173945009344045558302967497846184541632272458007264246602317073995936385012948172256922617741724244237474116070306341284539269857298558135005567106623829505398697225822798381453942511920024810977558853951478280460165130002418797225012029907850828782921175822309013202738486151930615243785865426016310760670538958015639112592364334240792329481901875160846784955952137001588815902287759873002718597882390328368985202139701550209409113449032986279017724198723937399725224364982986316405578967733561674373627742915663827463893332613856473829773718843441793093841243472860710165003893191188086643888351218576730107190416678957890631314322816334148398287397567914818970679644029242623993668280339566095504003915115501882030550828860049744614023101866770302184904280752042416434986985898873749818530031302680162404958712801231998655432890963079055208180600367500294988934728542145990721518772814950776420570086545083982262569609297319106798322180107738755354938177635416213395934381520237371748729929299094639012102762723482757143213723330900818747056815867658435882161384319020874379993085766354005391852362146687712099799972256132118983214363361200301585395246669605224368329687900223962009128677985170321430448154999166549239621899377858026165486065924709486003212847587589418230607355266997478002249232994707111378363712787119484525028025031383703507015626569883143225823547398209646653898672786710575963028697095146521578287605497442712445937100457484486279991637706413141893480823427335260301210106843691075848078715891602080147835029014255880910178803477476226135615477011098606788845921131044098028748032124042855807843864430357112774282210666842778949072333245646886984254497822544906727868514180720658472758121241417994018454899447692327708829447049189670770149884293441258298045800074193216755185232134200212476960047490622224752952283250346913256022216048937652592071550158542914863266155743590336814738078039165762861222647698321863403242184648134867432335820700276993980181981709853671163524633824553425125697866231045389615694121413099769647093940541417113930869731011909026962937294793355539705065372289435708946033491486196898867803892131994344284620899013512168910763838302709079508034181904613957358271635067872656884346252925964306225688861949199611820683643227756042520380317500589490817379194279780904645595715186676532062478522957988620261509884799501925588470174002421332648367463440492932098361086781120925837205657702256362317491495540573636633723339803383766107610585496576734354376549670556243981689672045253470748934671402347082423314278212163293529261003822045890640247317093761378833834780112888971290379357973099926448551602731191252843481645871142542623024691082391916191922219187423890452764341257363331010806796265582325073604192331846024009179688118956771711351908192011419254585273370131663708382913374956619503902487299493182769191829364456852946776469884213122214784476288576109618117590749243860842052932747887920347305577859881453474723366684177952679621653434732215070881125308464837776888710883312871564891517529206868994329122233813739056282454399782163434848933504523029346272079090727112234598889810208096539330583683405965975723876110475538068129081386518972256942695478142795133044378883674076022557848650724632326205054451325051151103566341806023801995030010143574015881303505246541384022130336893730497087138983731110203312398332373049525158134599094765994934895613989747101020489940949247964723675640341386228216279670052925423717342109817650920206430436516075746770309687240847568863900138693729510775685558923847104976028274086324359293472201178400699777959008273517356893825074638717151680342981538256102197439559815668631793836827733485875722897128619118094134753233093766001938705934807563152854168607908920958102339878036618243491856720498121409421687677595572177455974982878530986109131795102479783300658404374598820610119920193827329669019527628734618174464210972740792799812631270336714671996431602724815032894552121534947934191038370854398011805502796166977466781892133619271772507147209573817926018703717336067784333103327410209873392420955267719833372967398289188525373750030991984769070367272851129651869681428732215719248270920667345393634000391334406099971091469263670615251133805067098395366318863184630035865615918994616914431534737975493183123625250575151409878258384719077345207028363155219741537449991996064992067026427086765570193951155637060394356437356268903741212836498542272108388745351052400519375767031616633669427298763364304718154159057550322388860382660484645828139746478901820267441624547523358010326975312811182488442330789814400788001408605471095441606176699158832421460224559917395426767975458276152432046715642938088669475160581305425940479459441063318710467353890013983012577246908217704191625419129094457631249298105994831432277119226239538508531248585769006681169214318231142616457944586137433135857199031761683091836916521593849411195565553909642413617673519047693257032288002603837598153763046261182912266752133964867341745094293613373771615705201444214571847438892492883960129027597108106543612664892827735873091469588960313673525842600396675266051510084995267407979652248068871612710485525236187975841381331264956587386392004872225896101900765646437779471194803866350096107707587923198710670392369805219955052759337628728778219476799852903540622566481709177865306421367305496022531728929933329327166190192136306061715794883390541719834263078379773958468576555382138665888989809454572748164386636396687455997573725514233414473600559205758386943920376261033126381510047579401087043737910466635685296414476337101192484475198706283339281028453178500318411981052955817082654393833446842139621280452937441096082128002656406206431194955551132094887088340029255778252186889256992961835102926290067969577273701529906468706362824585956298436015801779647557984966246675165934262007084412072678960229044557291469473457042568899351955238810670042314732126630411486439251008918398608320670161472180925732640106575078689113452426834675341821631519796303219702407585288723863564427038553305947533995131916206272063320097584280330842269671593436951778261301618573218143376451814108598789647449986797863021344124130544414611521605731612086376789541795633750487859078272354044355502542423351074036575246716403260677547967252298698885294216994133572795830750030861015631217945095795844952874575232571192818483089884117224035196137906042057835012531547419445699581515708762379636094652958984645349212119783430033190096028091493828736112674655552752047229396157852939907959966165332945087076821705728843513499232168976819691846044239050063245164543040592705343835481643203663373521962162120027849292567617434981528741727697210541219071460654709060393328613171622979463283923493023491033211780540373350411788995901523718230255644693989503840383120237298390388200556137743892760964812422858159850498288190692540660190417398901237552927730393540127258620704167292061665516504373157819703475043352705228982501129334765469934265509749529295130520503811129844291705288734363170177095026037378534971359856688851743084564261382992389140760743197926474138006178956182840793760811576382966921022075438430896583413264810919691095970470590542905914803904027440595979696017744350035927783693432781161651254884451816150440490764808922980789285832793813807481364755159697467504401334147867759456107244848631239055347681356317125324934296679312651546044878134146227578049829370761428284531297195187116879942740114830518340707122519098197542627578303883901113280848368690608097247781187478179883195890820575996093566930209489369003978026260113321303118178250986602461206045860066849923361694578431916481237648701167271593938868424329669695514624928075114156019052671036018011374441754959513298683678640041497645779836844342677160551374432787491722557499350305562680556774632188404337220774826751579518721383535688073426896592923831271264278659014030210907885545775447233100290135853786836766358358042907564748120746234044741814400492798999183047166739247416694159306591438879271443099639978266471562924178653131424142933856980737244754115622273904055158601167663859010651749039403815709884139627168523718155586730712747722730151382100323844091899955805636077962534375447276965487236811008389639437640160852317242161552120032049403109767462860042505950082837460272917388453200409626687472915642888561321792559908912803675121017269905029089236520579045170392857976431022624834760247050521886720024877278199591174131631287251264805087904291245085470515930146444518008936320982360605689656206426002847963133471136366751031284069175761427461200407190813146068244519964494569222500075346256530591429075269936464082378157600667086982118993359858837089517665828351315175198726234968841430285544859325951882234432427260454007139515396931303842379850865018430150704576233881817014386512232302016870533331329882374075124539368230086109920432915189631061951836123505244659573373178081174659059913190981355335974850804197911117804662137029426358936030974112662270846317879137180802522888542578329998454760944808981802595777157347843383939398844918446723297203302315761633259472068171351084826174587685252503243409731362722305611466966515039007299029383057159716969892329878218353464223969370202859973467069308964252232034526542297847551694959922495509268006055186452856341428230323079599896025062314722443186750804408098565796173631789636595649016594267469142880575980471744878892027451035097591205801023719096360644684741209467543473700315532714150755583741853985224487538366085606331799857942909792854283739540728539293679928685377294644973033670519723897950384812121166891735587138110594835976299332155542715284753780600213740001515059147118574275023767344616997533744564548682854759100138886903289859479249710202919987470909816164467675001760948177541553397831634469604533577396952662715864510526771744833284086659566195977467892989370664698462940585898558150234495379840400357058980666166940893590901956939451208026316817177123739136584759423975300717176410768437201878977307759334210027245142017926039473998760488022473903420481565384684355523836740207911317631676132104078468526464263722237691117610697010051513822767372359834041409809030158071516825876001655897362801334515276081219583782035396872218035512641326668597431853425555719494451243926434363778050336040669583465321199005368957998760832609723054306155501801025072676025224207137892818057784788695188594990573444300504176997887483795450739504538147177451248229467474042923745617806077692615058874903228649426434749244727284997473481667382851572462452981030724331067718174643666821874279491463082339446374032346478524764163398920626952244332381171795852058630319986590695391624567285055659307359442344051572677249274435890498118205421778721924072414829020369156873883728830674829960715093082236930280418784615732761925167614089281701727603640654972331210887361263255231123604692038485109697411735467338298148079993758646879919583377798749231750465004163231266104375648689324952715026131605395111137819390843664942056076175135166331022214375727397190960411367613372976440820956599654829896103532841671675663883517018945616875956885210243101671867769798748051451009439374576031185529729992854048574881686068165204899411612427355728939058764939506676332255407956611044142633375854617242504157640589136437441581912650531668989220858252308937275465995411077782890312731269325044162788020341454510561872832178832262531134765896051027495984951488283412098590468537174306442064042712832444390043905426608146153425511487606358661933006315617016954078517010961620458024680712162263443749082381259270936357069680533271969199592285243972290831288902039846782020120504516182080062855208457272189256259900108799248186250649416550633236443255797448762441993953189416979688553577581743368942207004915486544393909371635030795769414390160702709654911055077943722669827946236645528578554974064517696115794519970082116021189200305602738294628081233878506239689338196605632564924061574031254393695519705323981031823609318409214208611491100064038968275581028333102346021084352336180572007767451911408958801425355321415803814870110169596646983776027143385461880379383120683109989791499113436653944452553977375671218991805006911846324949640869725952159305983912313744373214514587347889188895544545006227766705705939998322987792709181940858356760766618159552267192207181805568971586566877761925988988289223152908606940843288340789638289383246673405207767931189886998129213562297135627311814833591440052377062026056801400474739001866480739323404808746010382712424779529888667951710644607644788455123641942979935650658177111524244246470776984598014816686256620019613276931011356458710634979173671327107478888113596351342973499571484425491982674720528004290570765167785830742304013096447184060888595316645155965263781904978331970296152079386503381587792575462700075994961783485197810413035894173145938773230315054208529271150780690491437271402220749065732725813459403754736250306084275332406022837073624713764975926005806336675843240671639012322709836600944519020685867063397254802730040067589215431660861588525132150080633976500766228096525456699358482060834771760963363843135341713280872672146566178145898230222806658603679646022412594759635566201508846754199440798870005364518516373027079679686366494761706086029282717888202817547166010957793817404091214440414746865798101602278149891842027487599137635665319532019919892036032490548255600213777956333841006524079815016388383282646300024524483170080610055533284878561161082358882227237906938175676765712657411495902569978268333320654348463792041298115694306733474422125986922770302936629720651305163100356311637028255431627902245010019907310802027248231234023976091972565384799615863180399818619240215953260933303768522558404023525662286610182444853880612621568752165699895178152241516055711171178275208853182510576059175891872043820770923949298133676062894681599227228375908019265388686357401180886147086874797820471198517435010473254734139873685989775724626287116090592347144452351038153485830587733274595954518899492502981910593286736800079635901667822817292466327940442882682347153816558918464614656221901623212653948500467949388797939056951712392948933082858455317029490049301187202065760196053390957229621513894290439205614293494255971539862943094859788714688783372281563469569373021853276715940110068042361533853108681888001478593193293031811603619733753991399855703909257873725170695845989706843761424773740278092899810933607687826594376931516450107114081109650767876368230301975255818707909096834035376732351825484416793281066027150345768327898888196948156936123675141732926163667479405036843217708011363614864143711204378650810484962245111043353408290049030518155883886313874152060032354244889561014799068994271777673212808770915367582575996344935357511892368144070066175043663894480847809944860717076975439612857104945815092481142575120898031786158350825622942862006964597456358927636058336702159304119053399600722821061621153955491520938571375388671397714919049962279284094940175890766815245131922647171834514178904423919419086804900419630571749335138042417699917673563411310771837749987083811045324977542022991366425924235635553419365035574435103317764578381581572932971334941275411578175605917358381433625503512483012746963808135182982500837382497876926044445338718794959533316157379688729925986049863575057215981445964555366319524076145171109403664580597535230523916543859843446035639180054344773455924696861068478880407250337957079280538522291018791864283406380490990856791185951363356546097761982975421069959382863712786700229205942756132295070551280073410590154243467813752085096657189514733998113842025928144958899029636062619114913198974664229380389142820957894488255836029471553456814219104803526663505054597209950351250260139036792526138673729700501056523703984518430389894264500519677847219673861418941870363973492111733157984462656978462090790425814484652358874584005061296714744677931986075430291427626645735077603799741172902669505321408161126063036980875294792857204244618687630361997490403394074957748512577730053498042169617963533706099885539499535320149440280563736122391666430706154101418288680346561159420795377695568096394614473328202170442894380298811978413618047026455202280931432404083875356042381304205821056021463173264883312960695506906040365006286436678735977691123561830096581330437118089594931224061212514772811357999318737825201348669402563205292043674549189229410009306157703718213309622921064465390055387755456342345353795606286694776970013694597377868212126498131202258578632832119768364508827795728715696663092266345304052447465153094237212999459252276564273656395899267679993752485220172639373232760082287334499584671846335003571408614025706589992915602506668370297366355259485554592606054334028349184396960805632700119086429146455406428668358936407406023128284306456996617326340353355887990482296396622416742750103152884515416577974104799377033800817568800174924488274075789589101209631726749881451110810884810887505566146525725818314210328025261303758208311951589027165373761625352972245910928002469332370273610666539124935147685573889638980397181245868744245183123244927532110217274282297252326386959789960809876298028784589875806130730754021701950072889094252669594469905601507645577763723873374087239118400151091459209362188668523317752753135147559810512113424351461001047389111260442152057293773964978481120473515556977635070395284119334696654378339799661272029571684302758945608183649078828557818460749662510984855687222198523203988332591715791757242257679954033909208482930983513866753329757970371410559758938583940468861772562932186593607042725623661185119011483768720575785714575598658275740228796097760665696870665671420601440604483702085950682304171426979203049845551267677033163382225377517159558489702473215586107833675529028582436416842238645356675619917836668520213953965836093575231911710593594893771524984577656616076077242720438599555002979900560991177727311820240796999744422466258980796885949234265096689947673409381660959347198071714321388014595677698286749472280726152333352144587858321727337078297559263209958063241037549160823953001441074684302823025772820938577862582978531291659004846493852053529760427206226468856782840312025765295733410312228610996486134408778045307733043186334686713225607238923021008582919082518582889123851426364742443464183627106843678477582627643278750320382216307951893736306748434065145406267862042041933375428773046284220610276231735761974958193770870277945535426203077414326310557243699868618724405816801458089052631860798468657635226566584086707771574317795174212538408684727292122915672378168544947236301705812457241164920015744583866052583038714764220117453860948843353116606307959589827156934106871126561548727287001118941482640116385129769281477048195456055084328296786966130008571516027676584112731590737206474271878961145579861885992511790844134136678681311141709365669809717569562545101708402812171512153273965726467887169930076231193093493689095979001328942381594432228296559942101186428151937998530621471965209093603350037704552336522236213059046361993425365584384992363579180506162260619615930053706657547249774461810518713714429158662227704740939419202433865851578737562073873199160348359933306108966679360982060173332326596945188586107913348283694188045583466003864633450732473642585674985505734900795331758033796397935591108619377031806028888558787999580180245828384497840216525613370338011747231091349637780455436238359647636781649988209368208446052010570214791495526391974238620707999561227397007860667300848660791825147530077213915697805769222853859974129146551979828580429902255258603853110470337068613386872117513661854434211185058760069009846377017943548372602733253727765749675186757999754002676229829468064872820732396066508858899459956764075652608964695958590835601889763407017006076670252596663441049879058054133131385544921319987896259681284986243804275280021818820146465926793522353787085621397006396557491887595618985732291715910407637379853110464995417990473647198411233355716876774786723359692705277868969087070093247345771457851963370271451027511447872192366041998377813961994890294563907665171243768860993133640171045173775258711680287117076458890387039056178639277695859237006772450163285099206430900312558302299186771857934190995691872796182441824993448215757485055246005502136367963822717399767066262356881353815512362035690522664696792789654018143058886863622610969602653008071416286493305795079239031638910024182439112110038890097621817033101627158884510850784726180285205625679364879065203224587996886204600713350357164351008102559683847636129461606054506055166038786412612704041950497920796649511322867746422858672679774582407457520806312489960023816568198097452924262844102266976367938663276646136908629716857209175987570686824889143180635762085072677968569691953641225277929942026138037508277893988635147096339827384719801726884446342615572134333591256544451570321982481893359618272131494786130452408513539035789419263545418379464736592327444204378336156915860722806414486326555531036138315944968655157569751331860495488835092492173820713446519901444322448790749103411953716778664733205369497697257404596803116723310829351596505213614528048873927629343752963103714915539698487081716947915011426647178292536922331126284974163558941452655152814839087213875827714665741008069594425631012466407292683770556722584323070935166517357766094457290898344180729853189754285290912270981493966918329149033853131148327722473009299718677620205621133685108694709412850663485295580552195792416769544843144599483070271834921901245949097272572999534265090942233298598433113321869017587951891710413500748836010114689201854358675683956182803730895124200155833077855099943340420931308107651197866195630450526240025284437233351998784270749259048168597848665094446242462203726273254798168228136759203957338184676239306651532502874842818454416529840018028312262461930046228536148546794235358386233744059787919751218988385674146575071253253028290885987530772536528451738682676475720933059405245704434536629218318858994272087935839638647005932609960366731655981949560532255387995613722030860591473974082499524955430319673403418162012276702531287148234231403461970874008552909205040829829293325363736595692570047677485755487181391237106139710059193984783997472176611532357774406671546139482130413852447783321423791016336430440098580120449815385987728820106364243437354989228167979549326864547269904618802509907198976099956580824140643751962714232603184118770954603241555518504785920651669402241808050945109945768063316274492110144210772412209950007639848566015126855371015917401204073168164948374843564840021359655166106626043702651388966615371687462982928238642528727916686303096893865577481026557852942733935505991399068921159400873937647462332496464357216639453409918345543920393148501151274377339292371619669500822738069149597836018904533856462213786363771069713228510469512691997621273297797910617333010537696306252745240838577548896729135590306994903186936162375119674337631055915374148380815009363112285916550954224802042938531238630274174752269888923094634205055823337826077254531095415314208556769372228606267120482946513453519429962451003783635943883229991878398101974278415929729078181207556164347947869513132655809398456904469876257532008766325961319789984910621827384846082131171353633979666465968954345240811147959006544399703578763947721618429341434153411584000250809072807516548160515207042810494834238000759592479868000366008334801092225414126627823219244411678487797759913740811524330473944406361156029726009732405659016253432627339067591499806591617017482571804395995560562880855283893616903834571677466309991843553842855975664337351076212862860825749253143118582879874537440870569517021533552966684867115336752040970156851900238618393853794768828494935483115688179831825680218389635952355827261072555278883320908756600934897679403264033723947347874413480722984703858572393773964386391399748859585604904610965888270019901943361466312932322313324964246454521454775588124749879353494207531446064729213467865644413003858231423180054084985997413326867241013291223025253918623583787130821750923325995000948480413983691873477149426427885657662034817179755113389628938507745126393557242706690172880304645474006395863486820422427784797142305966364444448651072925616855484173576905708756159374009802103563292274560212481436231604781225028812910207922413348866373505262867380948408991581844735961392948911302074866427487739564270563182160213270590535008500115193857701150821223884999197054774780691948929218715550506319110339563126398984779763794580594890482782930619264045611308512380901219107063031304221388095182360192679199159276136455216242324334854563358627474712981668480853325055345455772568760636981847225460902646486133567480213495191469393004149003672620476141165911084521207873000462354450021956880032864140589384452135256444351171688762137612899889272747295862964149754004599165229542684376441878181171211945264672363340915343768732960426538140912339070446901280229011434605315925084586514026524102351521353246448157888840994916985637578716082014176626550596458249523601871714222598731159443308317581099829500182492773199180049004633839766410509743219951103194334780571535075847092912176923630177732363113256976421417891322958987682196346096313225409708893570538323913452850513453253810352812667878623073324906631167740873011462321404438676228514835329351835910486312368367985421816009377967124402424358956104139666576469076363178175499784209152974416720092252594428166990608728009538987742051667610050474985299931056343484319502867544338467508407337436915148945211662806185753594117059251264022160767877630878441176914851591764708937418935947859327998589120324409044974205628135033988852706763072035415331704793934980271535240188844161246870822421677168626118720694417815668423579492283085963032216387616089769313234931338386220291008121536219021809061399189858555867223115117476069643798761670842332713416386923805057820765007082696561339027783075620693844279702221821964761724346866784845889212173004137766811900307629423091031519368024804832904987840426037249734133756578237178306855882214415764149470647090176301375091591642828371980675460684453702911807572942234056065957960830816001601437941726429202749544913012552154539971769559963195390526454488605016498380699384927859682976952953104710325965201206249535383299477422373455325034380932732423003472612070830486088789754936960579586531059073722922050256540756866162937265288273737426104829385321324023511681624541142671008672597990483874498229817414931845812308465368550908516793828060334407973299923544575436188311354179999948542354482985431858976652225175060970902741034064533643543286972006623877339589810403739754074677799069291195788837500639727226492408056632055394318321489753795866819263098547425040452218741613042106712405859012595185134938184811610806076635298207476072720714337210149987278270434252293857864998107551390058169251872181006084257016966267638495373272968990290194089283762119860446605415357065533364581912257562873201721464233029991525567891449702279936409269599931473823203895219008835633665762486989420768492211737468380244695153418768880369563910341991687145672655007072626927139470599144038909933201569980244688087001921148622457878801373168574766211107807762698083763500366523539589380487363188029848266126670888426419078162776989114996819943458720862151618174037462732699383031824801249931061719033888269483201400739148124269880557805113869263456190072505816860463532491179733842217570124613713098751883491314162563463669587756120246639048228017242540441719331412551230649183372651263156027266809086894249212279790907929434517114793566732012102131651888616700963967324347897876519543721799697735332637222680278976322213887731590470549040371663897964784964837638453831815391375776966573051532968424676740041640919057851014458364486406481465366294060349158762964439300759457772195986049540321960136257356003452227827252742254672185016963935019228548269599462730393858059681900565890716518481700107499095955162851167325564375509882225095163890166168164635315080859258599660910996089306169870993779764615454457081120973135490706858038299104357271679146503505435964033381562466124180942024391932928113964318877411498663769128579025340101459820358665186985390965667429983133466948142706384959332428765423311376975024296588683712564540429844131977519717279796872703360406473372367695660863682665768893453305693290379324068208757835913629509107921208738716703986860779296459227898083033561196933721581970679438642475934832793002181146336378197664757165787214302523215529434731389642246439107966095072135872131750558250786326000395761346276855671808350811648570965042780739741947076980380843284957998961078799010923238723520242848873219998087682668659451802262111090046547340484932679988235268345983797232038557165017909419462669184199307392616371741209801913777219101740870241096841683857229114231852507922954624831839215475432329504587523547210642787956063460951582734100383815186170437499262062941640653727445019698809170151689756980249981490439627078241572905409379264125897180744188476483246030490518532525552162889254186124757800762929919511789863941711157272012776032395382283361188156674628135776474381211670583638739721240416826717102762482310626402471596961535235000546689940352198730944957947147086201891746004656948574575947441560146933499587785196737665812080652447995124604577248785794266779609859381111163730784269202086826700064599677501087867974300776032383633531043631605598201094515890146758244186085481527498739670794225307782332625333214429901146214738105967982463437215865343027696865165738340675520036921860814865950282660757546533592195085463856453684494888143729103853225937574489256372941701916932554695664584987335783655375271770903078647584534663735777670321863491813639237579717216444529361748921643212968197321713996014279991023150359462916562242823885003145009166969282811987074461945967275087086088792293631503012958654182993104792458799697052939063433787850875715981498674185159327932062466851150225942096619576916240351995432716689643289595712267252780595531465557813040241846508583160019749979018698389464560552889161092354778373568287449781967984377843286146213866478595414554444908668300743082129102701903807830621728873717464323468848634681582541928087346647047526695214845185286074782258675007368973444997238235683833306455646391639828877689204372166139214387767565613397893888547116363223970978633208101262864285647602382925079050446535834452110166619476336254382587846515999133831824203698167412771134994725814563180906316535534049787419931225711934367905359926404337103123779707411584585105920396886398030434438856375477601397667748268754145221806597317388141683198205340496155341100593133306050911041485004610267977840140382093285163321461832697831390226800156319901488703969162105344272836531525507693772092978834316807147076677515054192344526376919155807762520270233887433519439738130674560051593871674069312146639160531381307783435555611344020212970924044288129359567745505863645381443456235740431078468646602323758213924801045913866301688957669740722227970873626241602003835254861084044398336468239052976920326377655112762016478937225044714159059787853973253906639964651153242235814225417673830510092362554451579497979175933501655903498524010989872526593524204340147094044007578645573378509988021664748705272657112614821054663892193433258224466098231125762197035792971705153915520034244012117418382403848306068817162894045648875152117612999054682466153041547075641795386047211067522130328237349756142436364579969729457818859073733725154874756284188171725221061849836296385626244762572160684268687858747699293380123514793752776748434070260369636422295753597662735175654004621381218517734865148802391518239964470335485551154132204767991280734491352647243417311395245311959044053170327006518840748556580879785251405170464965812434843554632093028420551767499507865278935985952144044984453369090964329429563816935429180145081620355230870424360801973978867091749172013139686802214695136044191584901280941022590287616666389423871672047429571057136944369842536432851053452029512850839401228298511411547023756112151586752448947343926425379805992627192061175497640440670145291403925301080445711531263951153541720165024916349463331774621310936882107725478997479643436869996043619263170196363016884610661889169513627464366468346668069530928757157097758625301573599803307316813013923147518152366475114648462487405991801101443044472747835645735698668674723200031482396970093472578570405415177190649947835758131207308041458561468643209029099545492548034514776751276736808432721871770887965509098251282570232359533947060398953485814368583706555298915713939203283336451657951179269407744900187818929486427963140957238470110608358302623004345571424954205805803782623698234236252319079355145050656176144989950626106113774569410807539211552729026653114618340682311194578817429602037220674784662341782784322009543004775359033150590153088563639820179690621103392887100052634858042243759567173095799656734320287901121115399937907542984189912188403453429963052260007879223680659152879972239369106000400617704900878119894072720150805307570347450857372716305741667697495612265722905528611776999129733067688386811923196822378823551879867142124862951702479463230221873110761906018174869920563521101948414431118963980048370404519353827083767618829518647828093401730256428699103854609625455585253145982050604847277705515847189762466567987210019957431079456697136480897721747452136502635272678530852593009276117869204490237343283806705685854436743013785412901303818587398282800497904020008696521786612748689251100374272750903527767993089768959168153336539089443473110944342937319632132299021204125144831488418873900974737878626072216727758585732108279979493235828042297152212364959539759961266318223699011521027320087744069675462097865268215760256183258360981119431857898685196253538016382957461127547648700167593613461623652355031832873310261350682321874080055957240449031573170237210814697144895736029560826865438946609598974711492501709805946884434390753708911661264471772982698950891547363226039837939527967039427860787283744706701098380094242929504472970929489535581992699710718242631279013113654478716750954749790229021302248070589818169386480813609669305953430276289789141848239565918400611983781255517667169014014312292864383651357999337377678170513696938553134697376250140759629759890816608120589597621632860839096087559480738367083379484404891187382713208961096561714636725609003004651390634439176792407417666552433063285621549208335766520563855482220310054960137034851022155774530307637971150124437353987003489283020553987243523878242427719677694630680339862492155964739249575617336637564718001626099836982952103831635342204370051723068191115300601717816793654936283225398835726677315142723224798858384098711687132674637044790234804272887014949074431843155136206534180395239204561479688757797981626009671929115540541614594204637857232101125840382820573383748487333745180289099608921378001714447916031120864372371577074773422288307470714529210303112091434598769135425543274581028439008206981644980805172648328209113798030087354917378992942451429390938487133908734479511872607142559101735960363133974150580750490096713070410252841692374207350645558459674771104785916565151606655950838574143121207271288923771469003907784345267536115307437122134947142930694294587730823882302816767613802231244148170188761879660351282967899138143072716470067411295908036464881888081713532133707628797847379785200965280268701871855970937283917841205017511526395359456616881880954136110369054754603409509397938468816429702562118708909861398920218338403742146222728279464115345912446282012763072569720860800767369160033314089265347670313249612959714240064594744344048642307919048873987220628247579429197246128325836867633721046388726697248383433023796502948414265733994710811725015283975589411775430173646680879503405321588561444324861771171043798435448694599431489503347586578511719778322971297474472127194231902764280359331444527002478996692168760246434342093990624026420230422505619729623196833249372047808178248712829084810278813766484574797619193778212405333343888943245470730888649238535772598388813080028033844413056676786708836312466702301986850333366502210088650487632163306959297270631206338876982418706807893782864927520724917872243132400026278960848756088256962830471520038805969369498163208068184882510965329888876628931085527480614729334803519085854429226131557032474614013584740998684599407646635732596496041598706700138405906198223583313917473397882704336365809564349227901747429926391018225328589778389343747814300072813939663137407723520659677472739820076419249507464328583280856969225412119388499080505049219585895630901095528140561390460932797289912839940325659759530883267238709957842733071677271414687879916096031909952451383501610550347596855024786632388583707927473214463737375261833698111760211297836608037159124649867616296054409948137073028319282853826930685510768517246678254159575430743429903834182656090778490688816322652393654103352438583349502354015473934609198228619290441073926220259657936371496241187527564291777630938813957242992633500234777395187633094194796657314434830284408281543520709480072748882072016917073943961464033425841043549716270926420089992020667206665050793980071638209904962906558075485512650975707740783770499764187129193374362256982375323495446144374289300819759375365048930148843648258222553189127973658137843150227621544272870138906020862348030779026618967307727757043161174114044380500515014688043181567038426149105318353330948117680269640107626792016895742705049813245149673425803880611734343480702292594444738921821010651610574642659706898676933072097239629543627787512198990289206868862005832019570143554178049451354803739127795684597017670895504116418834221960395798874253540865923565787291695025735314595112665209940612081072214368476019979172565241139973910637589574961637014095309643160470076511512683877105838934266811145929778173351643756303196746605352699081763115275644603299464728766253656839301557285945520265728815443460536824059197884003733036979725586313852901952125075155323499788844031671717402092327350503132195211002385789327230701825260285688895240763625797654232235925999048546842804534978699286579624088493321605777658242909847858987267156419931301036423534008252589892860767113600323924787446447682428437896782296855334209161910123403797272515665921233814286758118986003871385966578618470898638058221296019547107060709888337735161737945636148607898734881854100228631795808637132611567784702596589234263411382876667978781200974659112653039666452214222501378853356524799361033328538009588338788678755335665524889298950730227327094949652879950906962217250217752107011465531931920460765842794847353122128062682417122732183616841727753970829721741704738993256721732276855373613100648802969266763393427325257670745273936155539666655758314627967316068627316381010176399227401700748823477902368890008865477933076463369377329554910761730178042401292288119462495826828966163985606625533556211593474682337599368301152023183440889254200070238997467159733245968488719495588563288969143726660816491154547963676582275058555144773284403471017371246435093791326108749683207926497283243537694228063647388029026595605501636243140184142869673855852208950218042658654380490149532752506025716645417360827999397633890682943823040152991050723785986776993514910677149501630476924831904858896951380194357530696722227241355728581736036978762914422286583135178279676076647631744177105007353708443024623735510826873787576350445069762007208473443895627950765310784556496278081575848975787994407961076400399180013226875475336667721039762743484089668910615941996383552688603744909631620018491330611226689137563376113931566032210558646484458563305761830932532819785704544103014224251394611119474972891914083523161616210977683559842787497841824343156836668577905009039962670891759210740743697401575547846175021579933757240091938437285090814966437815430691678208174361588805086793067806223587616109982312656838613277882517996533090103746856439280379591475859543517128798261514721791320714180789314500696880637723139546345842852874765565578297807063783301733251940441123574976474139772372956440258815147533077969905780145844342210806942270665655362119762739376067626486277989461208414221250755014296504952271649011418321585982716459660728020114070982042685200284333711913248180066833566910656736928948834355021432907160888181363683912861196935650460724702346219101337892503791717819489504922513255921871864237548234114323989051661198818808797030295861083119895996328962317106184777915419830091877863247890556827110950939978590115158572265781569431741793799475536254547119654521839782315517092538040223189897115283765404442591138145709150797095166349510671230235787736633018242742465503464321368113345746794407381717526563022010543070387156417247334832365241502076541372014355899832775532163902632250321534282498428083770105799860617356457519753516639384400915470191149413764725818790045896960688068072784448114863638445341137382870193087316687133679874120801662662370249542291472408612355149958517352571438431100634032770416202963486158031313639748195936854114152700005779343819459504952374954066161909445587890489542394292423770639864570235359746415179923196638055766608559710797426971005912234371490641439382881948849788336684837381502138205692689863351692781075532615875994926106343202989224742089704957398462524556241073067125912297348466642851409110257873256730507709537530397344230523880607988957128851357928963738718718786064476459226029244699984104404790317109193222996838066219329522536016577461809066624715110106926586406271938481813614659173152995574353343650810641629767501969599951020380051464668036304332300911583953676100041680536405041969221262693367357473766105678598537993755760972324542206570486725749274418750652761742112158361076209068428825964815087353518084886887884322539045920384843374490905599955824646022186107358056718369822293302859229504325092365484388242908250744008185080612529337913245059847152643742829835757739306300570391677987514001757581001117978361779593245092985334735821982222229941507932938076644140036178346011537118063027480798423179850219874429956806783347846689740454343365551538436227067978004267987199032694842502536308693376223051007052240042431767353899982367108942485488521866346213958027407208268698005858442620968174530634949623161879830347052458146895111138313550270605065987074787226743697235181302441241363462282992140581322847397572374586075644122830715408383381272673564404492060884674753413589228520848209286234203323067240586356543722982595586060992464241949574757416755601607915896170452217557349014291008555549039688692255749268219172046275757009700618691284331431241648448865175508730156855833616287191066501071450304268714298494703281225191179871274147815743442100174948867432489411237078324374879525065957604766164893007607226180023437029273972384195185950933685585643384374628536800239206466226667328621326100136932376371118083008852724145055698210749776397951058859905547006731857265389865662620091684214241534826794291742069310400167329864759935258101572033292781585690596558804555479812681412096114486735736715093168228694203487988567896780264828154040445455677866841107031316546948744063870916082119676516180801088130529421671846241138244763653402339127994128106580270695608422009622926743462747608422765292987930984163725040110820956303370228862074974311489271751385024740103422354068282162744549424279756521493666079441865795445514120193983757030633832468504373310490319869198967018415651797543486477850053206647530266261665420095777748777301159582310262669268369609943708620542300194071381727779929196799957311011451476096265504689316857080454790329762939048331858958261490355146364540017106934352960321811283896575311566845398546288038944963053716789616368955313803974952535157021379353043495478270964316655873978882070636811829680861962371826132481623870153467125991034040559373508644843381336030878976938159752052495022523820542373211145572513839890503630397235518063265207096498694988918869287176804683920237069388705928046169353407879298342303491949905468106054220281492450059630842141570000997565386195876109375002062511881378311733225907802026510205916756356629780886100602612017367807020890360628531748912423717715860656375480344540218915339356850801685669542131741830144746996100435277290514799377641189854419328421478531405644996368188721053887295723736432224055979316130705459591991456312074341616209965320996366087773475206985207435023019914969641419384964839523827402541395272341135204546511251609466368937754919052745433111730898968737162190706296762944741962446689337237674099544049423383935405879702771027541935683148137816188106867568804586336311427080191912435481048015217479566542876079152934353701246135533278851369704166392528175935198396754511421277040763811298316659994043522792280320878371456544710389777061536653886686533722686451355684311190686713688427910681470974958702983481334490405185615959468345767228024461597408957512091860446576019859322297646858439927221695395530609007600150011918152106208637912019953770566820701489262331861382545125050088833563825926150632198597298677268284772982638094921976409361047956390858701172155437296523189148473980293710286420353347598742626571581404712845814329432283868470961048992243297631526357280228383392655776429401908717254152899439019770107834144800697573612265490946917619424057583976526958796084532203460002247011256078584025028976443933784006598023609821478659485220604898785593722476446668521807173934693559157407896239063428127448485056461565346026708272617890335303534244228720397448173707021487357143663602002090382071878236677729656201115290156862842598757054471068398418269041368137237156627658509122169156529969298631843312306495396011277500351295061015292065085995064567013535780475290475134556966284232656946094756119373622494209635336556002916941000975437057921059197428914820785255878256710123909164077364124907944331482850844459182087691199041976807441212723949125427266131071909560041455996451419615321518640205120506271328983991121274299045339591184687361555978321977450435301921622444239553675470788512565846732962408249684581791415662015080424529228385080902844314372002561544292227080471079643762080149244825928068676480003679211657312102453407859302603799178426651014349117917226277721503880501161575292134421397799986672105353243755943662926317903875301066180657131968869096165945468635403910804254645771218850432199494435755645382610105298730981537824890916423369993350935100525335811570057154400795548765813644227891482309211197708293484112921043913921445718030630220242049559347959116587431104840362082242262209797798996722737212748718969919140677321055869586340480504259350613607355875233738036071705133851513215126408405850849977859664364278744094714083652872192456019947574171240638973854290419798489472345264433861157522154840065062502789781407291816909354189646760556834466860607649543696968420019626383374946614481555539877546287026103549411145328056095467179954734408155817055768919644835956215350432040832149576690237146644537752525536109171095419288851583205262418157301456867321962518564410307068540625708346422016490366297435352467145559223061346670151122768652289589584243765736052205660541088521264271823051842383092210202638235831906904859352990432460645704695567814175739021657949608259439293967373494958419627368211792548275069650105327905076736121788850503529644377114181583411931132418160670306458924420470782798180903707113177414315122448914963065789131381180124372446227376197655814896186461723890725465885456694475788060180491104582937913597896666368884501796235201595648261104054656691496830899806455903909296165323633618847701280670703021547912660787377294749682724403496987653703375355268643568885678165569982436380450453872728647474299807107046464683661472489760667858978237220631155025475474765935736810402374910298268082342324173007894723605356269288168247805954747813568516247119964486327282519168165655951636755849691467413332221702518778179968151501489969055756094174836944413133381668836668122037488121399675866119822296211038012891459637644502954922059467470388078992902068751292402296113937829724798824162137809912718201091472974201430920268670121967891771539023674755200796520688931829804405864657530242443466980264341576736376828523259249901451825956072904826168120851580349339397779795142113431734608563183433569357714818769214206274641407752897998771182832148850460997714521113169477015066842940812044364046509128489450007715468388261840230793000713415110258509088298330592513812122070445644979462288339796631495091226399832537914629942178170880329597610690260796517082758083633613510730857977063761614505059051959131546117422084092420063116986643013747207720858344225382382899893104217429522431288258429273915952457257724384875406731305398993403598634487996326290093010785371116112634295243183537635563021813245653270954801486751444737599523346277769707353678063940594380295517839018098102312314276286307933168405927402786359296269258066152497890175038166024692839292860804493167515158367379899399979233448962011329525358812718238910628677752423300340701949117546815552685257086562549013013350253630475910907935366472960406170033659412861719903529737725472880430529018506982997530081227998285322807185716283133220746500321210032269559419202377593345421274190227089732113792251635695559049594634045932251055007673155598073267520638059904280893129290370212824903134708900794441506220648253110081012191906179597901445411989709324113855059852996908826045731842551773316275483992705116043762462135465525956360960503171531295294496416670989678816038292129768766455882665335828537546548908379172164715307030724190923282606223091979551277012403026479977749532615478045458008286038532975590741069897230947356205765734551385547397394283785862948866200405032473301106744361745385789383952310259086353011251362154558085038773205568240674836997521388677579434593768757872420500352535075521964836842356151334568046912124095023835632104546136036682052522076433285485818123977816514139748526585802682582208818233720823666587995368131375124109932715405063893587772134614512994056416956169743319805220957918086098272104807825329304751679392704239605541707561326658033833049723292498122819229449783793684893879217770938053624798910601652410889425644503006866016789278428280343867948418946125554217573995799856442578068309670706657193280720896657020242392829852734018749944909410901887963231888606811981511348075400399006910795766289970596157510095271087827953021987135365286669605805386343374127088947835730899772784335586503877067094385278197937317773810849605297350920224016636676585694456545794129226987364386832613312676919119433668755761003783518316688607974832213858794904743631089643517791428600779557177410577940606639081939054325674888257203408768682545337336109165226422960179940270769611066477600968118688486595904783766666581642659696970114634723585481711067285514414233122152253193018516717404942921455829346738353538861728881310757869060555776346204602274885413119167989122114033541067308856581617105283076876406605983546190599520623838310229065354847793044942887642408953028413826268358310440979646706352522488000550323438116440877452307936114840781017310218533527469623890341339788700916644029814887164041939411842052266432837781835169377563781749511155055129819762076186631236171707012081591797974179939628342312700656841575249132205778479244926461821304324494788173363593624522883704036587568467263796723317669999203023047009920001942945137342697947471103447984060183874041452987981447500105980502051860070251672668688753470815016777283903816559221099769365305625336440342340815589917039273434505787595104866248758747230627754937735300987292065949176756825422908146250477808926615762650978268003089215160417497361297413618984051982738300463507027379329178019690176549137442138763085483986132691619792381480987892939949343519790997750482585874938738042632439981362286902402158408364759125448591655210233637042635470731019369286435277708284881144187749534460893772063400580589249508004987945510407044448622000688863679840437012669292822277111155040808857740773509102583899010241611963890294379035848864760990614864124463028172373320069823305909299816531009764902025222119979097545333735229690527284036000957842347994759755402546326383882350617486145745224500603865534943117710979096546858163817612057162301416705897410276912306611447831953744048884629306056302328923689303205442003828967624166326223120342377430310930380711807598988481262537429633213511828885437686359781618541124667690301670728248560616111054535855323192566627533138949865247335691249289378005390609647206636508116279768423986543727922690752016246022250946270504145330799437236350321232679236037262520981327946827274736555621079306329747821710550593838008410740290168511446219004167022099486814082098902437065145735339974659940336775694850826291006388224553629475746758642535115277051706807873381735175194969064338460282547466070487229107541532510824334891617257336126901572804695436193228294650082188620614665306585260514122696651159267636980844857105434184937805785331958889308781344474536024074828005589871228001091857792894421923832799953854496231328546097851329576787235636370043624471815357748383756327758621101559512177130768958057777726044098859591935265695702322264114967322878387712855411474495548331727094019025944027720200490963360181958004113770124197918896459638294271933369960561056856013506515640615898370599848623294187151749995422295895300097578860619296230762540332184197345788871766551785135368839024502594453527539788003959797159753969131221327846484962262060646793780797065330113842642415603477942256953150988528084186590550808427867166630882294443446410011110681563557841599804027930386469226772914808239776487508451249168401632385878008174214359313800495057187736985115530758259672729917470837113658155371767058018232136482744592445306776040854465994064328425665218176861777409778522132881389842032669615726555360654782410561406183078348436944875530779804509335313085120044928749246536384072792128996024977865777417908045160208461626494213228844912365104492537664485839254545694351928292980559249003844729447577446219792259478730798032752196225422731632156412967709602099415418103099242453795981016196972211684400990650481237963059022668207053095436229816342539403482848978512167982225274335405461617770818736818692724557826620132429846670153228862803130056845347597461894177349580828964765648977517907724471039878506903092973171188157798541370671624345330477195146280642015837233259265542849058770682284615999759120944840506074873612996345532680530533681408413356593376533843517254906757095466505481415337581436874964463640528473402540987110177083903326923442495931562322401655756002117367983688482010936197714109875445411641077123271675038574205261133973939135586734210303374053795617961765288374109182676737916655967501332298152535097715172456332593854854992102103157181323800844776740260546594250025353776800724553788276604340511927343690674369546604185170964337164101333210328103087850047088667272702483433174410274175811933262463396084320593723890471617286730907557905439099702281989707141889499079296378848956113107094794540091676152896270600426901032274783711262654499563003634236428833089677930813086767077527855840093783567957958288031577057568151026525037868869364992228775040281051657031784617748628876713923834282804904626679379815845688887944342581559692192267203565165409723730826438555613098553748026193274712700743941099009570930329775114906465621362293358261226133893169095561957834432509604180900898353882003682213885106878022853117783427808081480199828032368313652832933803251954642580120740443861181655285400021400616390802156126250517607389263690039080076241386511376836056066825703410589827705397975441560445715559335365487691674693471118776433719025794244269900805795488468354106078357761682067172569024177856739793764455260873448375846105845699298026630558444433938068397917099669922479904446016077782893137774441370596367555542533637957630130417247431484408691808953194559832687897193519360857740030134120167374608217155319606191134973174670142614290521525415529000082366753956838359095381962769485121809920772104536738075951050226802392436810039204719103460002627677979913452741947018286442333161563111959235440766149906128273778649999305192670950301961739165598987471470062350458333561984572525105033759781533305960359928357041721215675657432429783048443365895947103183195110563996441715152892037569259839812830472229247920108297143495564634390569148651548479072545842025330790807313572762703651449874760682218260164677692448504096114557447722408925475891319811792692367979247877992586122594091970209579842626557106637416494805026309896797033952646917149026485270122641271351291673719793959882821056077490946247296387963728455815180303479837473096340827763965556236860395885373849088704776935082909283462796949452694609769794372159749695477698056805315988335409846099576537246080417885510521090530826528750930025909202337759072472002209211421918291276254067748421957150473253480048541277777393744868378302534487459610487440503973552786784049600731196538919815629287772953465917958449415987440779368197701544376914943071546755351017845883335066128572176263154934799929709899749910827604439382916638752440438232773938711600364795634503411702473446812728636226468620176616284093748615484848886550013065092950536531184363940339710808834322673756778077912833939492097552226663465302534783950466507746079843734693991735861182714933344008379281408591355073512499936700963112504985076755684342099393175236280259339377817332239410002793365066823322873346030962446721066482105374314611221822521306650389170451933953850574781876678754829155058506344017577310918902070945772734613734884200765434922879360304324231972105240885259721359628103472504952008313490025796119890512505517350658652979590399045716215277232840220412689722951294701146905364845051212416422081781716752271052006226492658684668848002195069459451696769962573375701811280112042079355000127833826280975694554112195874901649189970594139024321361409385321058253528163050171302938538608971771168700188149090643082112939849900430886690158842005248931218851427499725956758712250097086113889780998934579997878937165094677179259747423098369206849990430452161226623763676755151911992269109852581011755775311723570775429205550921743669879083653184741079188073051361530981355343228104598045220236512268919908336783096470380530400809329758645579648123673494654824526499290568128269444283763828498792435981273996199333287625573649708038273873450785494121319875068388449576689067261383341974136200288942320284921474590423813119930140666413121320403470071147561672204647776219474531347019797621431946363420713798429534316572409906671628424027263573470681387093249929890707558896242196633520802578741517333608041300135212249104033253240535283492859774346248191502642817137493238604025006896202873000351886959639219291648185316725817496065442422041772461103214487966077780073219581100452718228451108594654973024169131657155761431881934156075691638394890065991120715576833608509549924700674430280392343208570985991163220546607763814735520676854925882329370103956603752661911007494365640030539685419627401969196709023484068401700784928388523506719289906334058776677613671924877388143014492426207024415940582858151419087509150582600127044854410820695810871605951848803362370573977431363275317900986227741319830885072657825074352423600431363900918522364744058627382034554634308197853065272383671816813767755566408977395190094195004635213952280946000080500683495358135609780855720276487241020643889056673076600863536784984755517829192545438408086707020403526444234208934688663307533581875713842359682929755593656104987992449847200449614081690530680403979154008970117434407446547861878968269158513233294451900410954761886875920424547629588339102908168462536874918524039151219731117424853309790107832234484410969802778264029480744877517378833145933711548583844862585408531373788131523064812583176554374902812370065330223736579664247671960800561798517904832232426762371501832222693291819186569258901472202981421542461325029377073731178366633541913888293630528918002764067915638036413906954951989934199786886270142483938915800306981692012816877466514893164729639682720416925433001815032091986621768116871667079361032637088561540139441854449076113554918301450410852386335366149280162810132932586660831061724986192807340852172331452915917208550128606730553754283621211615508562662060757362239559206634388894097006316299142443074681447672281182882955919378688815128090837861022808919882773324980693414612546833331844916791270833473419630260098314835501687325260521095738687349944096557496599892100711856380449181542880966178628535819125103499246030320084205013763749489065992488891775182977503222197492362062190971590269282530512577899344505403606323296122978419371959569502918692500264292091891995267798940498685343547405164916718218399806036445022399876534800599437360135082623836089600168220405249373580160737376002423494655703664993221779786682506679386250312532739681997999429975734371804892449168599720632511231132972591257361531042982580563299601943809241132053388394351848287658647489976344447267928680028706320658211372575176544725232506423499639553423646456970385189801393154841632843880512579943056926797831987513984374733666373495930860158169919737532573871585305374942176183564397103382211961630746333296038318752856987311012729612910424219796502738962877599473964068073938686551544055465421906493511570188380640890689676035094244654075349034931307673167336386159699469823918545754158930278484413761157070300542580335605363460649539324306377274246961625846005224985702825625381509285056558266243206019565645135437196949927293804241599215109669638180931861661943455984665971146768898084971711259911667664087220481546132995265419394925553061859698949115485964293002501146902425501563721490387313246172095156022274962654858030084716063954107787649092911182767897118531116859673223372059683753017437759196157341864462157024627309314037774402891752440420204073676601128496117245913997054564586241527023025203020726521122431510054750013961560279276329951221110356516744092623721234884464655183809915607560515919231697203079133529396815257913417414853682396373609600249791404603636405127836080278613770791473124353026260762558246259346194632961861095464848214419588308582950046444538008806175494250182571380495350953056271888839354185080948356565539030507855433993761069787519699798237062227351934367103197991611083240351463561376120243039285852064155235878856640736368153605578543867056783514342531606609585363461976003795332278477881643758862823154877174561570556419987770356651256774786670385242111055167489157781834023144713637743599895806347447686743386801272558443410135296722529960701092933123272315137815380688457096894758991334377391939706546417192390264447447963826180826848215317874550005499843594531810637942261999107883802573530788776568628876952918093343943885089781601128298149348207833846252147009609227935341794234390858310348390157085881793729051830921039032608687091092838043417033353203547354868107059582138502731187162227816331138647223387420269523606162569521206793169362469091750212671776792184514996915929446361778623604653541315657999221908735029477872003551089691751627128324016945776916470520418375086722065870402780229117574369117882055359911561597891835336402204580788587390799611956436213453596284249863919389252488009842574573868793005960978154343955184058718588843528023457672358530600522056692928037398689868382592946973205016289192158546824189263261291597632758643862893755078996534936718315924785416654035096609560595928336095943427502437624257895372781118468349728884574648950859755605289766882071109906611951382679237288574596193820953739722829699585182599400849920166412982455479968599769488644213009397250045520276000112213904142139889002125438068430980125771038900006290757204724200474778583918899235143972578348328578569355102255722306928419938915478565184475042630146425572472664355374785983198148386656060594467745171137446799992076312891606997891943139934608876635758528544913082701860042689906094998218990454518974633339243730815272038042519506411928024406702356378979640921057068461852157298443478486398073814876181229055407298096694627174691999660773114044181132919708469345357083693265347039999970544135866156915938163725003526645910576584242431911154061480546771909449258682050757104965453011394130223237708130657133319689952746278279911071068557442559441337030586349335645441310900374856809688904054916612211860550779957421212347844963891310636224752737686931173912393400115336510739329573853568512515646574580711149888849505876149890664085892992434766819772270006119619295999336573711561047997357349838960796292496781152655579425147255789459032637173902698910356190775562328949419540985388387331883369522381175721820533722255391732174732876641984186011767210538516078613382877210283377738205050897950355093348985223584771325062306425916843968978083973543053795686662247065399989260359636316481135255186858418024799393141324310517077500176158206059117795126129874013211978084728752107952873750224272688162053314702444024877357840441564236692562760710219478766741171608767771133393286186000180925707782701761674908587336082913590850406692846473160565335166028493738979076938847738961590685254155732851097744042702561318194471621953885290079328706889353343897029762582983037500560349761131556373939965558127857371571078080741576135716316374443337806639883946785204940812650187027762857269480794089322009014365282009575114783056335293804161855007776756511296976854137195030303084122033342588609900682539284388029230657006779498208503641234747325620008521338420028146810604137449885565778487936702000795023444073229488945377625589515229708805176418239973807449271725958743667609631325374702934336827452253652488949780782034307743566969520185710461274255358620147623448510125186553911837203007576653774840796093470770120925700739580488558683663864074150639040575663209324606454658803187403285065516060683723201543323173915533985665107790008233497780279828996196235628138588787430379497350855905658712632042055373871373881574675532327899769873845960706552865049875550720061951677859979854705009120644651737595776068734496516163281501096270046302565193975185410776305753414944826886957896239199515880195109809642965635759869124173845992799678028278032413424101349074263391547040123652619600413460819200477246380445698881530406022682654763872949472898932858658698071502236810881558170059609719285053428388237814289628336042344910857678621245017528474148415594891350504507936434006100973309991205556713440794241333918953449491033452199481542517519460716037923494959184766136199590458634692347542330451308401593659791242152224045530593577208180959628622081881237222287950355848067825323294617349164248380724397655212673739579346732247968955052818979745498480784454300594668276115641414444963732372944903838716580935589804214790104932371423527521465960980764401788089312226630329222349042394680387127834500926071548775720427209211022814813967985989446031156920430924389804087600488412450965515644193077151165710384396663420468217107731738785236574104116931076718888802781512659566488398550419351650255770707070242262161923039038698259274003069302512783776632326375840110173183811656772650816649772467721515884486684638004337263224180003278360933353075551112607437332561326241617885497430241041436075940639120361386936982243877370540483016394114480607750256736087773112818402383017536295356306471562312998191480369566401536115500925664352829282345071019053557531413028136499740823193387136198791596821677680512965968336842372963530477094694283663360470084050642041809423623650544769979680466400078139011064380431779711670864139064860445049595513554986439810631857205983302210113459863438476327734621494018593742491431612710901230349294378474724264141495167103657105927071080476282138629177943708561393836633205691259079033797538774967212946543919451852047054643924838557928711493537595178204665850438510890280040432297941554877072217977380147374833000097045620754490316449910423957043933158325017935918781717809261523412685031167668825903382732728014685947566388391125779791713707994883074940409714681965391293275114434774378733209389535572103858601429918973731437673826636016690897398991312684611286005096737000003484636182562212204880478186994996965846518538465691070584343049645468803448463479331639831108561275366669390998782786522161136335889173812853510945499379374719588948424260527906600495042157903516025402659966067922876284558772477759606239638329677352744620409456361743987342216291979882144210450742942289876062812147452997139371920776933493815931271135458237019597060506077893172740475234084443163331543870713528425397109089642771733363300638845100474453340372936625759689440883121154277672298797428623948445191768293728270430535893986136851085717366722439151089131212312587174529544844973637586338018198639372203193997334657160556911599978640345788298117713021346151713703114846063936237933338399256180436340784660047080830855583571246981682927442335489412478787757517159311496127721249454743492207840870166782806035545527937415810843674816826472543805657455138402013481019799250019635427587997227339295076921607789225206109075034092632075192547085661453693249671741090117377703411666882497630609842251165038388913142677932131171555749532789801441698912672001787001214369660610229004331533685818478306307126851527275473085172320551236199044628578853077657232372711854323111215375445414263548339673066169906996562613931601894867982868661070001164099595625751122860418179149023148916537050277609136013634649803273064001578710537039817515348078167347255060942727872931256409893980531368929573976431089025130296808673449532213236240073145191341171395679902662269589019470934122906105599371735281454744469481439488981688661935431744271694797451701986905706321117210808580295902740769828118465418260019262897475720255478860408429586203045922119432232827791138166346926682722348857755557125477366901956549591739960960065135993325986646943662688608998801089953239770581787003227617491846569215741478485237201211621471342461853286520118242109825352272652270051779734051469173308889497256143961269834574874582360273636645891957708671641313045131084514847016525014039129221068259719847213521164515836298760890774396532779572967138088989845578994245337181095187444836328970793948682725964727530083851823034798909396371616901413851320484784578144486389637751990307263435448142945880979220747254417971941859840482760552151779273116879523174904431338331465732607055934030782450368004005370579561360928077767971719682653001546100502191806683097530778784694836227206385818677669988328685584114234763329094628670715762985186898867502967412401376593664015405270356539442764756357969319823595256040696402068837987530258081236010524586263600866405489753438360134055390812468298737576671520757678490682300382483276428960433909304260869808909364092732590111019751880196618975274300586382933390049314894638091303639439951523022843594054305291487882419706995479748666835404743441243026930287860201301380006596389912517779134391328433101329809282828109429094317872771976598435876141815398287901684453382234008799266066286865499981948042233756634740133454846444491140131495266969161621745538623575806651700331175664524360985005907591334544497357740408420566088468232147464731831329707692106843333522639168995763049480583256604850062094307383671923125651345350322444125248465447912102406983405455872984032278877209313292304971705529775940380835855923894014669584934936429756029245404124737267219654107063984406145079692153664847445790792949601121615151812126028870030403428199041122788338901333229980768637370834823848799957340470964343485954517261980370628941797184577889759105093175713097986260459442568876786813488798221145088308422507525440238955695133341739319632547978945829273651856087575076645733211342101308829191995506451440571055429113127066332823016706240764828752856371642675773108248391167625378231410530939615468410896329520174287258784598984873083278119217457439321337837815225693380274550939930663014965824287363921112854663675547534826959021759973928152188713437176506626433495155729072514587993633175281181655846916729752525902108602164784066634841548858116506467305587082453625076823418778747339665538892669580545834706772441533994194183326944835000885906659946806106904724686431510009753295606873302253095673077870665566403284849554773855814206328705632983882763941555446168568531487694392962971111904186804718913763227809716054296230891151040300032698807286058740485527443273437636625651505078901297399074396252696406543931177088876317974556628251184434290206874187931082171947092391059903583482508496218951281068516138224793350988042984790629815264686051831721949522067369695540239947857411234497855212165831263691886665903441156491380107757517244810694457385211616610849963075423726224840386935841125458810542357287830207677520497044708232633002173242472964062896558894188428383701494315039549183650505434263591823885327151403554220061085432556491317497074222899097953669046291427773809493419132039223635067409735001199475645628376348646786191403102422394468349840855826519742990494540852968420545980605793127198449313969706764072418499078403687602159420636106951934210810328241846884729338687761019865683792177427795788889287671578099500669445207953377080159089648520745489102349766371822771127406200357169851901792959745974430505505718499950295824888955540630509477706693126929275477402175689533021984190514264917444285162341660120647543539607394354622476005753256190696005547740999401407327893273152794623487947487461575378797455214094966622746232451649215100763985533674658272560470428934667138963864797585171984048378122764377141410348754685900407376043660205925711573899352371776357882772077143599423403473195886473440242287344114897339235276205744431043674030244727739720878998924369043835859822087493735455909188364475573595943134236313806858349983097647183118808769186898360947035340864823136477489591371646321001388863645780498820688862564476126341613353021808077920760213780965134176242896252479143843556974960371668340707501895428692391001441633893509240890031440649376195888100072634364137182679301411262946933427573132174289792989159627175189742346940866049107451838294778759045880172312954070607491540181560535842917838942412705223862403307319334965018581103859774035235620702534442236923116690394804365709675457453426835908257301332551474849222809178868286610424899871414110110802221702138098242537980776457247318565451924572387221991991951042441832969334951900527146869101076057184152087414140503077603379719026496934464803102846553050515212523985058672382370032655822654412525471072720009338266052585442993336403481916715456661358697117235804317020945810125494364522031502827831213048152335741258792532963808104185943774707333070514941222235611717763827884303463230213453631871657372331325625874798268144601089781049941483053029036827218948947891304738639621294152760617334220079718319286991567242023959194363187809056915604625470643703182606338989652306719793409674842333783401010406399620295302111783561344314618981096754195421202864289099755165570022823432638770243445011591418115997885484297574196637245206051776033937477973871982810716809369285323700545208502549013703349972047716387361867996371872170008547520079901231053992564518690614213554059933651321443618191587212602329640586236309856955733409489312952684780227456006171043060270760835284532067538801616320697531214570257177864833473872389303888181869032982058134539891947337873751852230478006864886911919152707439692857990654351093168504449257620971351485833758124876826130469339566706197104286443489794525458572221737146735816185119748565407447168662388941194527855600239921035013905513931196809971526680660024571388157096184402004977256760327149447345719034903774252260903212734442790977964419114332458702768896042291922885578860571986263265176011632088457181073603440391352168228417468508347854830835025338055669435604565690716784001087759230974632724640631859766671408626467246974522932358643111027576360762759278206233914910475896187797281507058402167406323543586202034312677797238682547181002333449312374541731162071159127344541745486651453424426029164384879487671011997652498797347931242610813405342950402641430417026308552076173279606845277242904796017608796561463696682247499638001585836352680724217793636665785389467868705685209192235522857504486699706661641073661079372337667175544760979143684608991191900273546139966049968457461433808527945049854277828297129748113198545673939749349789582054912164738256522231942293522307444944334418045542021826761537640123858950206263209678969853267135319549693199035341047050112301430323375689178281485552508069140560393882505465179083664626829706501956075943539311610453609171855834665967001936854230251522862793278330556841551325874425914076960056798999011851442793490268171712568371737698051920159881746227040251476896331712239090544590218455981488962297543173234802469743655112351663062138517624529489006549528635151457702573868285735448648568199583314427473698890303169246928548933199990018781774134694416049408564338005838864848558629804551561182467159827505261726151357115520205414809088177975544425673214478193978257329636890092496508084890440652256791730398350437450145048618580136446636580699846380766521352447646746238066047600143193110332906700452805562160296063297152183838791352662846404675867357094337206311808251532664965313646284293054816615502545840786047169018880326487214046537978717733697921781731234190513297960227305321527827527396343348025130178981231065883090273472450299411972514555565115725896381663098725691263440139402298508667272136032300511892214786230369192029712607735459747568916051786527761765453247417791806981412549445873754392645738635295626125464840364792634598772649677652530421988544492155988100775246687332292897961877527291573841977845005470840308134248881087386393689623540912118299989463115426616729720203592039849978101527968999636384675667678808164308188324544683034249905021553658609676847802891304360925097485747693566964697812053128587351133418459450126357549146346997464765838043282438482690536961986567626199163970785013678493974499303881119176543251801753520098307593943258027109920700855457533030367672808625237027965739515701038717103998109240371509294278162904650362779847946483380965498356905015388113976015735688167698188012744432208251373172979786889520812321454707042081461488905785659601552131861950438703968714774783834974451273299902441218013644168450042414761334125500710994177210741602067313895117130630184462947025352665703467442103508041478800568551767876597603383369391083134622613006903670514419712142124768782807286573844300324360331735973289715158929375016289104693337784022304146488409007610457030473788038957322124616345392993332490002097558856607784239827691476924849441025549982415753205396499964000553197633673735533381723839706242832987883332097977080093197113480140224284211871923325171254895689311339920674663878307358097792449686631807475417581073985295926941197226929773331341510350617075533426350196039155171875662358009982132560568285815048400870821325956685283858944722763247555838138249944783894171231144200076719645239283093968532417978340369098872990209381672363995395910001899789054464589633893756634502949249471676237811788186205212692868095134011298861076796822940258961311601225206762090765100192072170065113675200812252524135935092175439593485323007927614926229141091818319592491369692469767539921884107160555567218500174676921585613405339953676557973655756376336024988896393046701730612413422797010090086017260221808541514966466161362079512015538551381219967684285374739320626865369131466647151128492826604268801951749207250058428210728700852950583081982854698243442225681165755981272503403930174013733837129292441252858794065468706111734842727882197279543736439329350713210457754485743051515679939335097928782876660313705270296629220559161991945837016062816863503249067206786615234269882577632649614274695848923583802387801189346427632112521644378568573639578598036755402056032051837468778564262564384818587600972170513548885183121355910917142065949981727942073123528912789259993561045695865836786194757382449474829282545655047602675545858103771512393357952545183900941717500195960717450324808107564202657805018090988243720853798350148712631370122091801930215478335283769261809528993694786941129267698170976316816419042807346834913881450687839994401364343175403458184138318099425514718250785787036429138558498155120326761972200360917220097456590772646480644358172667586145784530190914667912013204100752327641119436585157942441646452274747182464046385622719202431314931645703495962534142349616995081763358502157622168629621958463068665128997194758237573517812100880280669897424668104982445685515686948181339402306773504819654575745406958954547103648878409421524479538064104646712571212933575668936378567787665683898741744817055295176925016895414588415412956719627059547211728186269198977652684849609706362815376521260793397938027783541244532789229659769083456654298309983873805538129852752807207259920297968805210653081960889288187638884762230570705608199446490797891266078275033123237562310571328829696451795451677833018323428101161107311176863445198655272108038453349363883707170633692056519823777404907590737243733389073970278688503098561173588443088182305017055058533047475748086076844291455020191391695794616876291654753353186742200448265917189785085796092859961723496854442066296626293139449275397408613299842484991385865178266431914391241971697427378148596921778738063139877563022065749973362153823792089930513138515387533518780608965679696327788862552226139865100007666528931227705534967487112515382316625937589784403166704083101959858156436989922499102012909890412128134344352382040237574967736424282003591947536613180214069464125732636880895785557670661370220905055204858219415619476685429633129679850324423761574342163319869794144123843493463601985543047795700449020214260405729336827000290074071754575365156398036454501119544434124278390422628995593440774370778656672924725361931522096108921104298637615217133342339252344593135947170273356585591221692988817754720383963453379326091663258825980544714512186347482797953004997319792325281985861016450282515597984534783482911528174332946319942766172177925551604290168511382481497477003226115196032823015839673389121971319961407676411699761414877624898498523080440014793130882925976282582804051676577184792987826948951449369666692364162408915324767249458460671137187125145806937588624155747107207200457525569268653953350383399415360771765406912543529541708943498608793360564576505715378995479652613206232304397388754673684564066044338782077064428516943792879180171439593278001072896409183031894325102574843961032165758321085512681612074073938956510441687359124875668717092920634401577158240757007982107872878785397303836260234982601530325538320520874032146137703190381755234586215492042185174173816601476532951767370160644538587600945093183797474480491909540974468060805673860957378188977819996580053281214224592788446338811570106205251835887433289076178622722921090845647938952505751755059196526330500286520136272062315133330322371645697352225933834680565394941151926186177375649184611144764424743974436557564757339481624336924214130107947522934596245404688536566341575076127949781421758167305546078648934721241958110037761615091279896892197474985105816364662402998443627902890414616787357684632983560006025587550335878820812498328085927634986155950583257228444176340986482026806642768888158353332572633727973637088916355548850912538082871849173509072477804626603453231364283457194945684892743941745789389170909988425833258188760052602087605652382105169416490916817598020723756898046921784587202182027511857772613163157483298931726779557276494792881185697478409773665609154659223165336497489214073510254559879730624267240524747263958522523973101306812764247566330475521196582983841703012584994519777339475727588161402677468778430348903046809036023161067481128279084291352823164461172195560088511587806427663159311309841036760974730022298478808825638632302557262160454832309621981444738571377394167342162977505358588081658513327988559297511531097142052597947366701005223135965741026326385587510372345875090057531828179259301778536581610127149407570471982530937562322575590733569184501334743515192810729905528964432562781055626260082692275931068617300100002348034701142766541600230327215513849103067316393580913155459454194235939431443072341223445993721121117290760136969660245714539809483552401068437254315763062917982384594537925368944091837414302237134630012764387735577478932084479862507087588748300253786326673639356553615509672106730699936322425273023016258299855935538480243283049870785545756707520464636966787290041068961521981300104547219737973199745830339979137433537396393061207008531770722243312750902350640781995529556287383443678775603661712287289744450327093350358389208012283659443125074735609901816268757425982075490421926148835064409196606622067550858318580271023423073285239361034440063376068951212860525512759340774489453546014152554919492682024365169023761790258834195039632257863728760155463951852535367301679958481032283082144907541713181907150171943914130592895510054751051427814516429051319243071240471378322150996699964383974402483296198821579740800151236797490946975161386600610601828667331371142416356323124814343406613103233096474735912755108542986297719179401260990281501712131260866640124961138681769309525301503598544881090734098072718774736093680339770798037518705783657524211228266766369264381570893910813428800752516831262633971137385924349225782899052448582296134043464769471263978910026264949458837287868272742625808136051006801896692176892484208577757112071775247765477695573518771371956180963145167562404865765868496677434500109381859279341123351624801965249999577437804682089193938121506368859656511999868343760823693494748482096866780617662958336414550801206281184742908031107863965540424258742094592821611625036970277546008112667819021655239082331725181879196785653533478507367632352016542569570144016863718155978201249849204710662335393031101224377447162528688039169675628389179275771200747060653198048686666727469171592884645367857126187092025107132094572572181022488163105133452520147263798508957144882593528983518834481497442258244933002986823531069811548731346309349552535800289845986425564475020584888951840279996959137833329418483543889376157888274804237332072642997386651584891297886297262931455231229498183989208486832807807427018454331346791741227898264104693548315602166375491914646926162464429484638964252088617875992983259979231275840624337718855411400392089877033351217801138995212548731583667904557683671212500990023318886358951577012039826158185315671718480662821832191624376851900073205866461983337602787816312903422198490262779128544546039055715232236955742651468783690843880589011459385487781448078728669184840491865046273120240007235469334954344541736010395502784713313889318849593067065650838716432111501014710840038490702171823641389576811013228861628712994354069146831314039361387335070138087751864438073293086519998722773832663961366542573298407275097548196842073233150117380847897458383414035109210432461391737426713839803573916014711993326965044578755390292487693689454294142449315464035992637890983781658009831958775362186241328203552334341243605831189240817617781657350804937105098547719049958338035679212410829411677079962079354714920952055472328281844827462815435257429768645386281433419607982946817746321021359065325886953117132743127786260819289876920110683931499999306357541272167729903201676379736216519475630755736817806011350799894879124904626979796157431737015618957343548371499270196139470249207142735486737521968215083258513743045731143677123231570734800150488922847618504756021253076614261805224193579885818329267320410417961982337773438052223154549624657085855963951300372574430137716596265246746917315679161348547936564169932735065760824642254387401565285899228425968572627768461414344344397928925233758819982240933011347708199792028684885599892077785308192926022299506435276946191056313389705714906831187751875107841090354092728539752708905588054984168749255046322425229278608293321962015582056167598488475006860998509421909961511204724550654924536868434644424109718336976804904266967113314556424595362566957337755695773988498090429289215462804020253130794176070717241859614687745529445566597078508423657704073198681543342010176210934466904469466769476706165664652607994290875937670750611594185234259022100694011918174167467497646718451721511616698914146824569261958754408135941494952825896491402764955418007102596942637028667967673677821573386848480444148752694279698662574254501751493564658167537383151492929716885475503228256340641796603754299291310496642501523234468188564551599734116298285491987329959943020974156555268219260585918327636420450112006286266601235649866977915188901199407077065248723206035862979798701027926542894555988287593266796591428937241739604640559699474699617225661756179912280796244817515927846510421893333274528392172236800471814078093647965697219308747864794131107992199055301396820930791947466466429692715686191748259816712660945490719448133314520143771557335203372774221703245321272558553140210373628364065465831277554812239694201006570081815269431873701763525687305707160694846215158128891948101794394640669871692882206190700862831029189319397737019610580480457145968604166492895433901057043953890419513031736504905702977890482019946281632323209494809390759815581651042436473966331401109887843833566350780885779062903512614383481759063568106267325706005570018887378089580291910004946613865536455846346520037762630625322176004405762705802869911828873153119742490719050915660732292361333939056779756104685569427057126478067612309046384890095726399322890230653081103704523079777311871822127454601211306062686159604071627938023446560837437726074246561505179575856907053833204517833446111824955049712587775519423025200932450321202761748716630741739205180803736986965062427748205634462493746046712895059083713011807106128180835450570405456868999393823796921178878379908372171353665626940926863762437776014313028944159929032494822223839166748147977934627962221512795951818662133748036753893659254646052911667164003119522642651374740867307069950757881461951371420790549037529368457949790771873333033919377989427265937140727293718745805117944671795159963612883443974893056098619518819396789253633860558839265195343699030597428377667816448054089582605546081457379804308668375884085092907300847274492027356666193765876202914160459679566625782715541189088425416517198650498654492567423123598124407890966372180085046260186674495448656755257653929482826317493802408257152691078814578946383360871805617638764543376855785858705599927660532857146770096907577918949336644180519463768014013328052034174468342136692988033301725778467370988856103199192696746186542574358808097920041112114518180962005958841307104445734399787803177891423003593315699689099344353247587954257088584518394900807662051086544843201581681898343876619114883421091400074905165351277147580623445724465803594345331184080211232069410755707605538408904997319042310406616972540845585869583313267505239047043886179671868740415027065856823322687023609521166513644790610068205366500634141959236623916102904856333956534779360068819815849282278776999372202384491838480457693389330881104690963891745097231583362089816673122291383469384723930593696518773745076557724350920380536609200992399418835017543188799862861347591618859055803434753757524924921236039033323576089239700672412458890310664840487963078761123525202843551847682427449925437094242995235203300241745815503340994512295823097379728419683029838505747857131463463933774471571207582719618102521745089259539655537586852342039421851472443142654131305633503704785282301931409005948061575370800011576670671077976251577121298139320000065577256154542304444053064194155785484602558574694394792901403722849228053041136838562942006576804848223345413189989507612331555394612317548954425388601635039647343942042660007601463084929925941193590460653875694195576791763027923525005290945191980540724631475452157483450811714401403516768075090217293719750773573700101198226392435302905105121863696166574505323410429771032193266139329236810986009853403722676936039340035179155477762721428107289569467318604428869358405152169276435632204659827225664464126470996457213858794348695256436572957557051601880871059017660904897294255779662069833336260394782282408742918828169168577889589451808172748130587570323783328010976456221382605916443614646339959356973570549130220386857644615858006198186615777831990740950259144334183112396086280237725192911700622542925149665062917527502695837034483916170239158618680778101029689700910946741584622971053924466536269319838716122108524445472063674456385664221016237284227487963352194567195299296350315172810940796720963039935174111903771737500756044175094206548865295127198820507948850586628158579112412745639660104186928951026157047317777316904327658200890087932268150780898946211360257073623228584833848191127941453386123405069476264428154647581584265499956524922220140415141589541668415648090947768994717387320317912985522719695430595512260605211935924664238392634210354420458429664553264680473780820105557649922981328189638947263169016342460702836294072833627208849124715003889219057684850974243476368325388293077616052401790436631313218649219446472757409245768479718891561900289082698147485041822900919060120117590352848776996309776180617779077749734610327579421239554809398371570778971472832084968424500697981126186118402006800843343490742592478473833481277187825580866620424273045422622810227476370158498097597631016929016272571242825706564227915900898896213980580859172414843814067229525624338664584567175395407811214117388354567174768085320511099781444322045877403746408097506056261313362521450847277688686163605184606548749415738052912066183580259371986138967198214240866318167241119910408427701209331892594137521610616908523318277780380424576138989845173486136439232155795657566948200041673798624056887098463338899299775072597369028805716917553244587511456448947075012073055395197973398506525480099854089434638646832776793743680334716137662157879896872735986205396011015044387108816790716272052939946406202816711440343686231442233976079539651506999336514023706960401096027882101642964166722990225449722967228479212592427603552269452316983632460386763860677950916447584334409573195957682180104817753339624603050685971264014437744843941721717526047905938668781671181766785473450857561452143874567218123215149797986469199574431199412745570840231806630790006141238660239435069707685032895903224361634490711338292415917752759355019654347568231691091046484231165996891291239264652426520061871307987966104550550034454859760291488331109790232564231910240969524547246588502245563878320544534882381930059849325505295187558177360588897246108823942464539904414300890920527138440673339572989658121862252758873995716181103262897033830876367564141969028230124187562396016226222917029237813773593192628637609693908004321564533461615811408417598291541618791093037525372835403121466907444038400940890779006050986110165779989792686583794396250437605587906062479394616173201344489787876972526682674617446069383159567081519781851853530912415492586942779832298446470642162268232366986639177464538717277196283915056538681912847678783826671019068450411034530202898107627487444487100674348158901029082084691029422111187708524853401337591663746773063342824950949579470403820629955118249923879385579745415147544502032376552626307230000920842345739007676090185087815060516497950399153764358964167824482162874588552133845741054698727357944379119760632952180022513696808947128828074583222977662433421272319538310154919901249097714388141745934143549681353531015930773148434090471200779970659444944510428455294068010046424054338619686457409593469821472014649483473455701087618429537539338816373081562857251665640371536784674218525163057944974175381766823865538243315145438712097866422060735890149289337657705546277480483206410838942052477164223397799177985729354450086078504393208470535466236425335739004160069523810425561695792346610683658935317853634025063064329446887187907107071300335654231646911143994055709110308379717376126065749869339828328403168996371662880773965204310404431653437065819383550514349674603853600600457255092362533094509193512615060363227130518642762353559181385620257898147473686551398805238408919405674194079253735764059740094569671145037640105093984140853997395796933470749766202266773646940119953640411414995813428522070899404379876148252686630205713526362696325843348222610751860183283490449587537525236545904381456832996483196762114926454729851679792086495028187010182155099912505162985851466819528893000957008907736731648635233370983055135260720596006148991882455245196622387379567050718390437557190384848558045679827956423573376032199584931729413447503809483132925609457094148145025211320764609309789426893722902737550647096111520046896841377404750984970049714430416737210982470837152116251099464382101667556747423599053281352023747256892187038043545050461492117034877215721823159023093271292098070562382108832048439935657640979251006621388822498869645164637475075521648218351805538634935658340789858190659537496778045200708324251035610718217688367781815694018926885161943978494816469509839832655567750344732900104306163656286717010844644310747271698310784417360966650840886581740307949699689174201788371873789872224977067264642388075932821910373274745156606032954392527859075905653822206320632003079092423471391759732516143149730917602055058278480520797818656671814023972946332967878087012731268406517794343692971168405980656907161420615025996408410146540989684424781609365258382373318980311938231786629359356631228416104396630220055415431798574404344367731126546492527313704464831060192529477544859222263553496246673287511417907783268422296391259706021563632292186051457911399903273108609398431875732832493141845927878242468211161640016832687515361986622558453360241667723127274072300138597630871060303458222359810308289268773968703312056208424328490125645512581848963607805667563628818114536772642986789685272139330360398192075467123124198425429406883251259107155891903798621581601735511984929493893815210065410499908319186367165496715462565063338446763728247064865761833807697564046542871361513459121468725574699441373719413023134748058071134870738421037941163076859813281055421594054035176912787002751317184399680912024517250135529068665550486653022645746341957518901189676166336040832123943641271484298951843385716411808845551976391981266192427502227669127647650716683941472902521153585558671587703014602464927964871153327190097813318816103483187396573355099831898376450257056831983070989046526408621623780546406142408709976670022547782147179134886015339790278174273603274505997249159116812451248355843913750100288365040700632314913669558610077740111698395316086339238226643931663321430573440318915626056458206028350899705429480440970629870299565479050789136717758278115987168511684066842065071642898008347842390455999666258526691555754369940473977142401559351279564035662544238306965050533839348910962634155604846382315097742229864320388580489489777498479410307470325286086912172943607361484845134288280028690078382244613311572408626981500690489303879428914199112363245603912508103030109044271323191573548758228357906287402968458034099943996912857690456474968284774497722401579926585660654151447380542410685380636462475968982129119803469489722467712825238906540954555413506052469768977380890328109900932611996334768252842040299722765263371606249541397891773353070289952963773292331923199877035099335101469525121580741999990444105305024489312757880805874071386277395671997687678461665792721583439089417150287961316706010279002857373019361149980959662998612175687992451379510225507533950368740772610212609535264053440016506442085035448972019796564947747794194298069111054782525705399152251398036756980893596218036848333124782906824888601053114666744258936959376677209274433507891800599477440946642883372981826713535874645602419749369193305989276237331942044501757837951374372284350822449846196835908309047065233061214326145003738285012365604995935626239489534987129647966245227630958964080217852932295077148428006077183062318899348994932415828065557406080344712518258058970837323194231935865332492726177466418256363900924216537947764587265483215764885100300817718096960195296872383817378594536953704357951162570195948578275663762950139746501854786340978662098121938894590229458291318084507809855524305768903845851565863946331324050340507384445821566589593862844030571718042021201251153679348365801736484563852346339435196760666125026685004678089161508797680426151972352816531860615178643026212357783050785154266916964953781743415187728377804485512305504941198786256975035889088806635605129303035491250297550992723424967338616356382196244851396433723728095534074081470695716808137692147485273977284212194298654944048497687545281389792469736163341549115432105428483060854009545401828943007482826330688192335543152904982017807338931703068468742903197456799017147762686272246679749943953081169464112832734485769717239147264650567383236632730098679483732396355435550798223549049189691207456047943233430909049819076222453580589340650354370452659799324042325071320123220588689751750279180469202280096147101589147703296069593885509626150168976689810793404433558601353787615646050526898983538055111158126938980368150996208701287064161511572888129730902499616260125035590461985973864078565254192057775893851876536657260234624951545904937343675057938948792247451038701776371932915869282859400559189034364525612771350349952712263085187044019247584624224532591374797371307464654871103842091399522596999711432901347683186184717363904117555882893142835322200715647954448810270543296858837328567895731672630525044905254739993253710047405872219432988741040209848229851459371559397374399202310505801774657450876954175981430415450809793802310730901786889580592162130442142075256297023685650135036637561528864976675007715037351182824513066528353240352846944824745774572470137520783274076747659345330234714834112736801567725247446324153334199492156261855785582568257818093880883101345890310121562253836687685875694696227510442398397653393870358160641403080014658211620673981373349092235025332513129336435209420476297695030140797272397079962973609853108140619105190984072531655991691440130795576609188527417147417480699173566273657158215530372432926285016526420774945588687547825850831685245714881591361717123631476933597462002067299106033503988738394472604247791421397314276419850420732060135566709085752752666920453217062178339397171937826838697357432922991136365211763745886172810657867312268186282586179665545267607650256156789905286019018884755798015675349013156750698395636053224068673298546321947808922766189294719655957475418991996539695774725661824558944452952937212131399686034118716779728441033288917525789416012059139110402158956195817565095898172043272650705155550736621304559212819827676849190666663987207155578703342058519346877871658481139820187566620356214911811667476322016294723608011210038909659772287361693126173984805409960166844784533189345490034283403786889841353257676344847383405839422138830409690198605762513024317680472586529488676454377379853399389199360845131193764392767748520419357441528225603390928651381463215453518207345568179078481464597075484142546686917085748123262381276625411179392698011313571595416347516014492287715466277235340848341993823353544952453728405301304269055689580296736785291058748909460022818728017524842591758022305822171749375371096054427564411179331326543167245225109052190082500877307867643527441930759123928616554011831839890312155623335195326454007248155190950946911534322804111827433799792495913773884686849060795457594279769975623769192902094253956474565798803746086041144195841502097846065444175840931370339515610572570401699344343543350629030800244012397103923631083821674327163577707787889314351152203724490153024556705325710329722417213953093346763548711914753223402214673985640964094172198004829149502890921452345228616446866452786726920804602102419202537778236114345135954934558586921329758820641939273869445124535291521114415918237085707005039147039417726325081817949028880700961968295221687151616733444009619363558417018091539495761043939572277171192895042561266544477670758090240825692852892778920390637676758058683625895718659029065132199507964471567087587371305527827057368170313371139139351777277326394099525987963461782159785305643677722937811244467288366108889745509344327931416086163545755709621298503532757203861134023724573779014356616551406432333736878734188162851314360598691002759698954140497633443863744153966673711580235340636939478648534244497329277437794828209501075190717835431356415296245698833486857022000021493756984680198796105965898564475555382307524981732164658099710694635084991098752027245477643357574558731244291113807253363125084340311434570593516361696691328399405995787103084159607537488768362757290834698153456646805005208545934857759906118381141632001400046506094910088110495277630158557252790343039223290691453181087154913338860278933348058401161592478320970045921519091257345670268940349445691645473571381059388298321535050679715378655503490822577804982470069805108801717274548974146988875226203611521227741393821465249786401391048875992398708388113233676382592725809572071516936775189511813281394558734821743812439183538080723524770452434752801883058862533342434235112965392871293089024489428959631885098822221197618198841988883212940962165229253610296567228216604101983843625090488110607718676185441983875972937851757334707498425544035349739046050335215865145078814625181346028997862937641357273181408865783842921058596521545031810394360502982609561413214091904873386790544332859678368023695657476691058339828457025215850027299866357941348124765667410736145666533976070513467308566186885202155613855549741395688427609504712484238041519464291421687642568341986538178858010499986572656710150852232398697203279791618834791447703235374774749393055235737980190409470410621650806224371070855311545310372578756908662832854000793296511426168040016252163303160119471765579860491242948377577762765664569030857804566465642967216495471126235960488987684076259085364193665958286142371468884808283771655639850017344835158167278354241988157714446068512124045619994231481099156952299929949985199888267597139068105608443424055744029533937851334530872964698278783446223924776680616660423189331867300535793085934151402033412477447389737135579364497720202043451049439734664895934553408832737734856186779604363905187336258689856133793754256567727935104042459468138818159486845681659582886088207628468870019782467373777824195603565708515914467822487122262832584588454738728342593499617593010554615207644639663126131634844176315433633316883542066465832940858515817486304005106181156691861528670647058831628355064694612171345864877040562741663773744290136514725837398015850270730134277229987737993938764610409974046238823835348280803185295530264734045925665955005501120979795056327931071954739687844793472141768223533042108098092448951834615359808182114048910451703555244076091618152431057843550602100916857005279932970514801649930071358264984854909185992086395232283872324680050462156552241172078398352255582502196108633288462964837069193009858955216625976716088069311622370308236913700712898172847045498746555397272145841829912514406212790716104731338598357012490569618231286444608107718504337481027037655509099718303623007242846165239007766809005662619599509007218644769010350201187465981542479583011706817038569100257022427307154331555840942619176356148733619964909306190115350504660921209773100135235350389883875286985246682658893028704975010245340064015459856142461148919790930283852487781857177193502797396105866934760600716937754636196893254530522803478142021008343425403476859138107323288199135673836082640937845643925487436213506114108474507967108210744245430527325377732359923496701017237066016847915144490589132285170915892994149851238653636653780571870193145880836706790113413961642662137021183034283554594085561887165683477434734314677014471494924841188727816758340170828915493435108095856792710687313253453525926753922240476863704378984141622995198221209488174923002975128590063938223606232572816719089159989629714275439825151416976471572329258921240108034006799563106867385695815597035303721440006778395764215897142915126127763009467265973967000182060380710217033986604865668250547439729107831263212420889794912849247158869890533170857846018147368105621021555931862505059449343172983068086204464183713576923276981728305168332357426033795164237282723031332244927071876393096758860028845622021835869341762836290568373353023663845119487563597507670664362114629808013993070633117521273575168840186660434176668680791304777492181654746793445948836027773668917697158205399824119475958397773184774856601818269355333013199302650076832508757738099803116707040259159017036693712927041266423942623120537538408526095419224494114216213199118376051729318967351813140844318165243996845978891591016949334554189163575139564871590278643122000349496595431322045135746593535475695596861505792464858116608317784937112610301794388085093089675611565474310880192265289167233700350567849057015824184801337523711886515946101532504481739763585521660038701447262914733718792365094967275585770167233047601459480804043766907536358055175020031455423408498235951095595013451984305786772768912430261758337624477661427385460802326331918839813079131278092381467726637443932798294134179412041192866828675356628005016415510529011039440942529561022505536070163918019797417451790736335889946294775658267426774676341959958580156178449852163592753573209115168800802156729238111288456286722691778889756303685272038012964104345905367598573056221320491549800075658947950697291797159275066302136398473892656683499333069265972316554436366267764680745172127218393206212305670649846127974780433630722062361929390015578209121374026669278167727156329559327902236229759667963589677955977497149861078722069791080125440166249303608901935201074534524363231378864094495239140587967977745064941389178140373966610746104984887685729836061059095304269596522330111430051085230053792732049628802586877123536894053378530453625098748265042371484078108905627850998389015626096904506430407398532778880111988948751929976928689208172123720343327050340667454209649501962289385370268911525948135323825909094237883500281581093886321592771020771884564118512028386462275094042654549195679777024302317594609507480021199220818306077340042081027924185820177920977681033433748804544316751711160324685460507249796138392731810652082166754336058110969495096720684607253340721238927412383796606722460940722125467562715953529787495187514019011229163831763455688697231923879334940125912387722998950575416246138252802516865195194996110783800044686801411187497240773379592947263142218010122940699160757160451193085354423095286081217171960082662205920931871920736457979681588898202611111195525055380326678558488810760618725388815257983595508850821373582897852478850373755012895581054304410695857193459542064804577445841254381893930058074362271276336390465742049059727179904739828110265809502758254936075748953825395108255581992162687597012923378754278484269616904068076214132274710825335325461766981994890986900082144639050940091492696002521172968565226721724403014912580445500708563169257191810364144766036945524834270345537075073700880860288558556845535698534173562095292338050684560510694282981702988553344432035982154100331887343008233315121609975050986061852054713685947682515940536324258273826414357190156301451934194593204823660159449459765669074867274231808774791604644423598499911521073860213400324396324592612776710190872648837043823551377740439070079728698875734161678704419988099688920103509657987183782904553199279449718350751019196348643087217147266255675861711240495936113780406580744656282168369627741186515676699337686067072789029766044897794629543350874837318639785289975885774446036162595776207726328289607938524312429952274944257892177092227845180572724351725167549268530075190015454030247721127528347307119862968137500301946331473611607217836430721184363117338279475441591245470461543945869517817804534226238124017253507872441311128641009926819785651867810744654796587281285261640266075913941236659796805878990161859069889458129995570951297152146930946771998920011322642840435582341868475870192705284294858078687818621527238100591604016453452428848443789393133973251960139950826439881301505589912953508798127266271815131328175686000859488959831263605510102070987526364421274347485093116038529857315583707346808890460441522127673627686966542979614117988797004036186786574092570086660404456623569670246246990582433141625560701975005813970416675811053427340706967740968044007065738413121973698588091970903938742771862159997892946324170562277288855048608247119930640719051739615114518772359703088874984506057535898345858188200418666638677788272639395802126712901190639594435008272411658202985776869277822856705566683646601147525528894248188349587179016748660549666275653252086182314620124596264480056621940934408426791623949994557246536648217379634610246941775876336272810769099893166408258271679253245540313989966111154840360705892333554987066038429119904673555397818093683346976677843222013975638665510169889683323174147735096100684222059233152978942713644611163343842540206744634954471539383247619176359063444395157370025850810457698530569205840937125906613395546646231635013066382112948602472551818959692811590844508692080199434627758750402419965252811197714650065508215994593023530868615905617657815256833404933706224026785431065540570662996421517006328989950403618615898498721478165347739808603991319818393237165867239762619163950662271425301399773372409997288053827605817225174106404613577645905159600286731103014038424668745503782826534119339321168215573946079577423528106094199801683793484650612608342231847828950568740357414150058247081866652942348214228465318251993525047347573502995478315147312888392434011095421404164224731404917757308179390918464719286321043447376259948696262518572637003998046961183212764464160331405780745254792692741666788900191366366769599265596818633540986850478634427175003683992141792647055455621074690442188609726633677978559806682356329184201260845351740056996726675438889841364408085248559723164828698930613738589566366817855312644571409090234757784227929972490708913977703358150977802207486593342622403617238428052987880423075995402458045680622570491575550835376032855748178639503022213899948556753255699744642661200739503396730923365477146068049811450569682148219430998882862790022551827276616537280134291478829645355850957657597057102883068841355279567201116961754895003973574088700711020350412833432228690322201450166023852888896289443762646644655160362343775527621032830556524299268653062349121824054456044017119050312631846778293333141327663120929021023527878846584669013245460141184806115031927177934223648844487871784792022570149089028771565251061228106085512559775148436219403236946167175079158226127777301251554670705726577862721783272745418726331314491577026063301552672278440747048106727125353063613316726002272591782189656848486523644382258187570193459185552822106086289667812051313707795086819963926114441600610113457175360181755013206031038567000283336476375444686936843342278359545847331940574956281071972280512485546928953796022066302952480969526280208956544254493533227930517118370298650037523096376187455760171885702483238258057561231140440876491147828133888631760594098481076133656085443196181273599224590311077882904192557165328395572381824015705722679269891069827280319968176931307832756071380073097898066031913333266940898194754901036258737844318197549008716261754278239634703029989699664563083786451053965668727898751386563678160398093168812788146229959474073748759041815795871966474729668969652898281895679098916331995162248622338490031495934713166526513398208158225026752803024079245709789748790517387263916456878093808290276972414329085864240176191040264959768912852739197425540042702166389678683116778770076823774120993526173828563793732668905365898312357021071935331044694358232122916370240410170539423272425626473988854185358738158992475792429942755627022421821452135566030195799636878593901066911816018162872496844468455920840792905937030249012049768924245608897036979368757838822339953183471602923870637950052978845909759080938321642971489337857323491236936996906483916760433961380909433880529155008871242193458487478469984625330939990595728035411528462864878587276884050031479169348760580917408770727015019607922159575604279138937717594247329036786039933046479880508405498348721050430806948423823457644619063344115429225622877022513236216708399831723313009309937372557049717085748382356762221953888810692367827413409862544272593054384245700559868501258202322547070958355847295541335155566362847076146751660952148726615375847773913565459535146491402450910422726759465188152122232600725066750467956943152676230420594016032870438678634433369854255734162160980480330238697398869550749050140816156480854324812291214145553029228592188938579796069509915734478991819412019502794620306070023988205616346533995592999985499629270244867747404667455377499645494991288129978515222503391536598488292417753965264165001686475625817403009825835907721358272599228978169403477273642083179093532130053044548476359540085119256007638265265466071884871600557478418542063499967691127261466906037812006844313356222851246340616634072296686993983966903129103288065677465170097508735594753454663761935685302952325007558444235139811374003465722427166679800785182134327893385058863728386296988537508765500436444863972021694586279627830427485988920650020807899293397392251937141451634782144343552867267876075489135974388256493357178644453552055261635651605102288566565600460794867675506210865847150251994986679408417428241763942406207973832194973446478262661031340384861252512863789434579252561811872152911202131374895267747429971111170213441163876768273168407895147025472824773263117254333667012585086264922210076274676303944098230674885210315416489365174174922496160180264512841247127264457015615027717758855041910160951962066601698689812528377426199838068765642317094917063880418421422393200891243933543288018905093645330976024512044851254082438941638278360558152633493522911808401622046281643608208448873461178040220405264378510748155930736520429344828520510928470864302278300529107303391407892052148221976349088422561615309384937876283937431596513167551852458113121166723243572338030129225304632136615742788649214461758536170497101287063341292537373066151548705964646144816263464519203356564208860966498710998800719566143574125077141513211362059345315570522838770052958545546668620166765014332177994731535359368491793966193945908444292716367884680211237109524744861866813431229972509985092347724632453308754573856679616381666683759172112391220674807518719170899796925890516555372756624759110061298650100105744245648148229632153766170439864389378050381390154840049226449063045224803814001718987772092403547081742312800170446397989787151006790763600779217909431039336832074571876190885020093070191091773874520064362770041424943451590125522549856281346790633946977910627665847467666301254439318418345581778367149688723286049337525471210735834724974332371208695126047715206394849326824743795569374501432002884873899711217056168629614926559267527519206526170819196712869873216102970253114663633061862395321489508763474601950899504176296333978107371280065971244037519800933124003090981086515890492315171430071852809869823798966648258634391046831370012189171446379654179713622950943290402389773252600317668959338374619963667240209732045607988124209996016265915964930891878830232221926528022410804605252242640043890915461578365109506319286672693197436759136540822629352069507751281167456897650707897004870688747554186515914876702083476718411674496451553238958769648726396488355407122930069686146592019991872457682577650180397050816381810433566774040658961194582179356522509006401573957503066783764670636082818561190436679614201771095649403065053135410887917924091406503005634038510344791179619755739201185356686883346021823265142976968780674071812890679453716581433263581722524159172430624768278882262749512004262420546148425845371655565091449641991452422127098259197383858413839607103760757669572985903934013405395067187271209873205674649139322019024102402664186048018909379522042616018638212970505757152040008380209376903144496924849247659183716553084625363547214858169856386720633374997563028102123803924954570242906015517495288885934538985034555275095760820928568148939702712482119114621487574684899676490857634870472154336847106314733955910210342681571193137270654646410152142151696318122214901368616864909549130622551880611235251240652702028979326104361993504932345393875716921260870333748822762649559401321898280471915794986002108017381298503541793850742470377346142118774682720845470432575557410136733346891077789967423359671396941854797673216505631406542967484470976081876594321339744084722382502875108982892266163592768490988440105628963109645234691184399499291890895758771375586691080989949371845257723286577688700916813520186408233537162965896655813297956912863497240302361159313587323954453744779522112215579245118257074486101008553323301687679584220150570118544609011235465878899294945429206422747301842536148294943024500453458628718553716597158555238303154064891592878640241108269784243528693481611081384486638023552231758697531756432819548003440624843821794757879955544571786638024699924924634715125071481133001162456669876286725955413130367589637166704929184733435218041475938150895398910873869272537012046117993660890402773714229158213083210003569491126427256491182376532506499489782915762921432380496671903724344393776005061526547758267834230939590278781109660914910766422494321679032200965938029646618318035607170641346411473836553621056431792700594746441682528050506426880697775863331833401748522141898484047082921470728036237923155113555539551978079105539844385328273968233163057495223832840634871102915867645377210127328463941541195012324154708546332577664936157064126661698894679425160540973212586678627001085867449774715321333254190811181683136927191219271288757544451728126127080776580023315058528283599251026517983584795731036929093237981206561318218776712471949865368035554326886116380902211976954785849370203798015137557633796501806435215179803210857211863396644645365957617607154023095382621439359004324378201434807755139932919511640081330026438155473257665099548807753937928939030323592465301134862291527596906786361276205138959979172817379387655485083039774139173757875956882249539506533993005366884163688968575050127626262500618303865397898139089111641765053395047693429901752707419952052111360391665807670975574423912972144458627614887704366360810221081035524841536588588261888779942243510394223273870075451832871256125016158738725720509942867122158845216527510507301469202330463557710077318189494409536399713194026224921213892230946826729184181803963095598075891017679598268735154570244953353955728308824540133453863124580563687237410309084595365653878188899806033068919977609500911972704294894144903392959564978315403909949634038540175077169245949135553398139977512333611216802071260703612506169826188728017287923912872019457880147911415598099672111534858778080272601371135689649576277838469437311781110914782120363475229495209227369539534874032538219647251229838125114309447805133292631796734210334868592863023222536994870968844756334337395313603839513071331188378259889538880206432800766744423656384035105569296114548406906283344194221798646870683015070420205065589476123977270740440457330042158944432583010194942607940464488640151843535010159235170989446376725650604385501437135800661681630984106605598789619066289443592555118219442360648658925135035387758284125736666199337387200990071605397597889772523274215495460582479755963410193393078084441274633012312470129775904506599487035609155686261814854604976085786004276621107941194509614333251841883058900965687800985391416557034873395632078404445061292740334599218954950084830447835135470317714441099887630691004742692752112666104464756572449317169807383468817724239426922010360448695012919767510211260728605670668777628771870340388947476501404507611534079016594019704546241500463488434808361299704689975680705959205521334366297393186283566492689247325808593181806035908604410252712416376458254607377028309339958173677771808094518135109281676813098363353054423202291878211934937161102032339786054409107489577568716797496758998229292233224751830986000421368713891057474227103835724755626505491811044455598843673023816983296506269345748724197549894407354406069628802388631879264607418403593003259640165129594519095554223539571283606125794735987245528968224206306897196855563528108206194588259112409882888486991059299807080116117518719311437706784072662628941998003989599048315718935713968496389224764199487577898701312399150881884533952766684806838508959118645213999078963504474751977676865427572141425683425264602854392924663325871459621420581495585583601883478358984157470844345613769233849245865067731035195530842186997545252080662105207570336031554088712981967909257672781531492685487879281957890600820050037647355519449499261813600633678116198402180457646960707055380016441459245881744311552145388757329597861086397045731882527094901169485673908934606894149755919103339628235670460665467375410861561941901131703083961211941745871307329032182242908613608374853986099084012341065767751694826911633176777954919911599083997158935617484791792390583704909079287770649329188636090724726885872800848864912735075950544884840032859722787751539593722739017451610342630885163733991036028122064240058183202361481367475841254362891363882646498730854087556351394304328077225075628344730612365992066823724099123028648666025827753538044482937518271071500494019475059061734199613820140290042658039819818540702862382659564402760275002079287747081799798150995448349363023223899520019532197566880363988337676737897082978507505522935117862238224390037868220019720416173035448721946580659209798322509781056393458470607887332111105029524677311813058205896034178650258937587855250956734936738093287874527454883401975336229367672278140564806933438118257461966073398191128095847354280409026959018691760399320028452619367182995074962320959836412140812048238279565702256011467436149313994853503128454427269286589468020917448827464751044866758076329617770714090829315423500531899417501330441101297038907755520763390424466188324756156904612287049276107728819201836008061536700965374045284829888671057305699095012867174642812966545525682089309218681128427816945962849798996733445580000005326806954374014100137577179821802689800772580349082683688371261163683688303788401998456043179523196713106273341963040392118552256860889493922530413828460174825777675864601453838917339758970913551250114494924340996202814727032366973799017038093656109388241858969065051874437986354237145754467644834759803581654664639192976334695941002319237247018813159470100280426319841342508268079383114472288013108570050856561389042793244906820971134338622805525196302953365829852512206654141131786237856478981797983518151578532572576930798645492732538743365109660030175316608478530085863807332881595132552147353288124843315138065447772039689997610920881423308791290253912248552217378237361727421615793164677059537572188458709306850982998177073198778948369538627987462005135272796740681665260816424959996688482199298435164249227252147691940399457889442627301325379841684576963209455528488113146462775116455135995935717018828878412707490292877422541173244984259124017131972641411658967783867075314831371874531818782713640194033907535584369476862666735154873990334567356630605313285289957688464288656646205932448741390938490228491763063566909528592547581368933548899992455734112684596283315437847162957213955845362960104871854507209438999895648228137135679581663957093061283101574656652167456719299389818860457133663888216034360233634258061904553678741123800308637923491583373224970425558279126562916054767523105467769073939060346892570110005078190425252048273873423621610411655817127874680176629908434840651868022137482215066336320148998058862192450753190439989938552224223481710635356939253970396601963349850974224022491070137689807846207219497457746119142094390246924375123554980036578685915841037334310575886572158773510002552385967491924039498924586515695699047834786131542736541653947701707061330345810688028463167772193400863538693203193630324339685606799950194258971545476864142060848293647322184663822270231084586901224872063524461796692697626952852755881757068734180368846700399941858388324935967774673497344152981138422305972252757049997427642794018718336122351930428578420433060942607084071087626840155479675576243001918339338128062565986652892966969573845671528620425392979815212946803886528310703929686690980377855893412049994698212092903655992884208558070387000763859711774328983276527235330998199415781700397446837463209203868923075269851594273342796028841679335934485048470591992924834755557617345269149960964837841449748445534854372268946211755462284891259442858676270971907965520592581418606316221550114187413588837678783642701257352308060319647943019776629591925802655113740853406206193090600298360042811325889617847143670624708619217548989544544198460220266754481661680256323186758820792552057866970214878220032460510863934142187388991838201126397309896256971861020931392829019576902202994008174263094863168830350896837903032441855197679518413885357653672007093261593248394155399934847846249805804205660474507982971691078500415495954919192189320185406247704503411790912364382150240070146748610237236178157743833669555357685218063706617340711098290350190606646441189554203225583027466215851896648323163504375642700188508954843904349866627554849896502081844491440087981535099065862776958895395407941622070140362298742478128615604396681466839246002528007415356235364626895529326207523827688841212369246196972961548432391163957732587457649182913127136001922661260825160935431113271833153081686898470304121954414073949976609345263219785480002595384947821165209802261995540118392968069591141647000440589692562810330652863008009117198415075949150752020089208511753757379643901202959014943503587664722442104716926718257993179252794386735795895025573967148581062707633067648681523451466796384932568904683568749977607765122431083919681266317978456415830832698436841448771366406200576491767456727663228967218162485030419596050100992001826270472265986098303846630116296858360369109955307706604761944427433378751745995287220489704809029220829516426362480441812552123843229173672851358483318145015497571552888551949728628262319245914538527057463682946007484845515436618165724643970767488689436694275391877450474040935848218456729085791399000710645536310092389582719266099918303626266325724714744027431969167901764753444296405353951521278504139703259288536927660832330907570836072726354913285935824021567097048424418129381864932068910813563673124928353324987667446441462630270504098419739300434640135376138604029437242373233259814616751353694037767514134258883754703781065758248639024219736264075274286065320384919004685349273594984090124322804071555568083038828228810279116217503140890964175983047234212833355352776543486847424866040581559176449518361703018825429058240257157264118899026620231474263528257142119359130864228420505178252049077534365709879042610000888098779537791415284644119130190574928271188663540271537410067208762929223168121968295725086775307455721285811353927084965746513215776525548352747858189638007575042410278117227847747624763889025859389630003005313064840202724968019889576503768046400860935721369038119047727926150075153029430402714930247253188182923886118682900275664512391767702657163607211588502226866141457437274509524700394429074708737186542810931829651470744217445436795170123207260284536538950565083819544430449346281455024444861199290958828098676397694785413862398484067628746570637330267475977224915080147964158107079012189180797513858434115117373725840426954733987963282137513170111447220622544953430286450038143541700761366402430079641766678605739456070394056389228338000272667333425118074217730126743812916412470255073225638221522157032280049047243153452795611085601903653702032373139835495473656666124305352249716370762173682091135681627067739228034051304040991852443194805318062544293474559716964996767647771802055925471444442170303400313947571777549388051983503434480863411913984279730560677113578359922152105557686812386555080336682991010779029327285648281213375779781204677649278200372400289464322286119915951183878791892273867861004283820043144381265266470410851109827116295233280025929012627467313403098636348628711612485778581752534709987689005338495081264942551697080594776714971682942576262100481791029127209903028238161469617980614896645000748078510039799910774353026139632521791242242598049900064604748030608523978928937682954327958758645261144400024735977287968312909233752722781736691442079433914796465626455683180703066240103932408289453780379402463758394444577140689752367333570897918708331677346869574362222768194831808321087181644109720985843979062259265832168973254104002196909628482865659688720432446255397022916006137072928171506581659812944694293741363015962131892375258367736203345760558369439084363787122481062221794678530722801376372549317723012408396628400855310757315536246510076319108574061827115273356412120474693775330479301637498363963974392490118165850976410769187392317795371951326103539453098329975293580577613698618205662829800397087206486676774084146413383237494808808278842493584111621269722748952099754037296962898572383142678816458842799599895498945381805665585201220394745694621451330269896962431481460945752860501032318643579087240895883217990286004132747524690411996081375250306062593607926511095095211222393038013879814652703596289212406878495852041645593100592946064010086501459552735765553543276970930696970104882525316523756322108494474180722651170160740239067387200434732554631121632986066801571783751820117143650254619638429523439339763311432243065838015975381942568111112929643443153942345911370594153864413686346081171764043625439920127918720173637178197680442062673028985719464448859402184543007182917914132943840624418885019319139973702539408070031930758986921663821062128824804618393019353114993781841521059997056308635533734865248368662845898198395259229360202161637009499960100424319035748016101737596865207681261980583381178527000578267797329554972247163206296694118880347662275749961858092104296595642489696394109194535280973632979192834773951438123888894351271646106034558223305010717090030150774268889593674727953333006121021693093571386831540962081963595835215820514268145210569732652287932012326966637111026178806623111052903761248481468232732846020322531535014920124806436908344034973885438777483207581703074631018511076915622330654837715634519647195326800135250314316900405444659378976873400427972020087702875871813095883613851228242485958539878073865144327962290348434992359971529407109280397878087987090528258870668482814255905210995981469474549156232371839043813959044600674842893879492356414128403774488622223495832698683073052619318940776984310336525215687002561114567909194221007449803890775122325747575156291489533828263131666779433836117111538540626989005056566948483635629333346034904920644402988892402604347279435035029691342378290152815236052101069068274216126129739817642395708658108464717913978394352297697695240636272135655965454013607401293635274068129423770162028435052402341262859639903023029440588332819554824103255159803422850864867469405590947405509817743833842232364879811476136120249189101544289444246081488050757663663613825699472106525074267363820707987559354649298107933695658165407378734627232353598598706519450624291072109824258480530684565839528136120163774473530836068644596012194830697841078497631210742770366363387298471820288013551967080971358230022882097165190155753468715053316736646199681946751525841340972190330405294419956892626199520448784789086838089703327949504618982553620199982318153705546253619239272765877182882659328917106595163849962231524430567662113683769926017100094852904655277166801265017331495700136800382350666109827347584593725760062525809331219340722642944355367508320922809207172341547664285649183212179271253352241034232768450085516402379747163520409497061867210663812545194699105777576815695993285902828766338039716563670624430229948106209126539520451674825679242847067803979567857167255314967671446247889488644543315276118891918038085859355558005289431638817063912777689515548530294380744825492812860140158631382453838844784649941761855610931766242102363481549360459513249724184126336970380840291766892452234893903200962930757842874422822807066719407546470148005743734026284373842723558663879340939167699951229130690943552970832567395231565085691123514756108684492663655834055749510540417393262920449243984923695909224757145951933079541539685543443736212859260803595621909117893860374193171495935469204717814957770821345146066395306928279813376180464074487615318768756371515873315408443389282726765969880822230069493044401268448865247624488373013712383362931005414637736119908874240987269866632373583738940592561803227937861107847449169825472440838808608801180230119148600236693644576272358113851652769601017454257522961061148018521267169143444944390727394318900303841740353330824858284471548752265161742109672731040120995660643640695438898590488617080462469089661638867247578438381802470941212194292265198491556181765976714813735849240309539791091527952973422675572283115379564680249302143884853036980571013303396436461923153992801600288726571219744670219886071574737391199677410177903398661970304700565224656859943605598634136338180216123060705763052623578405833030663883743735514361792034211229265782879711708009687494171182941193292122173955756248393869866329767999272252747701648484633372305593179495071023230652869084685405658451449431254607318399176948417611882195553497772513313679452946429252901572802489343103054350269143980598718981230762951608627321178897283704807903797394130567568884316248238643845682390146208583087068572383360274841649749269486394957949307867210975548674354592404696064167898790217457249246995718784351238821373241938034188463008841311373273380896144285182076506851454130773598620606185190905304597619177201336698848412414883957550401401384483796000593187230047908260809526521629407764301113678591654096900482668835963808000929896077364928320394031786190876221784121368916156856923561701854713872177552097048000473076128199562757733134279274982031919517719459040006424983048238684830061298201352784769867480790218254248693371123162173197535184738947086659472318187546532600622075779005382159802855588019055224613788130538647341097120295009653919730494603210616581247716489054479756956814441793609665013808035152252002714537191517798548447919686510568996295547578468613585409568153034451117223790389118951149133257560619675973593528722378525412633490996502957754567529099994213608203977565861583307385414612093573543947265149039752788416163520424486234668492017279379604716359291485250634908374188228837492560169227156374067909465923689132656632150510122871846126661507205857711467788861454728136815847719808593329830453359951544747405351524927575695219108543739601084738883054567446112151101206328824095638971769114695719863801497699824471313059004685734706386601694236659008656740157525554771592080770014569646688484207301226990401449051767188454921179518815525348644006520569404842980784623211740201699541295858418545030595779979301114465829396911183991513183731622895731658857516409809832666269683089454829850995905917171738257157085677030396447426928912262713027671659014185753932427630230104479618358844406150425335483606476988228795808298078897793637264319015021341795755594764368880177486403318952824924799732606279377362843752575285382718183587857803645788239554953980914876483017388599086699881213472983875164837466942793757182074000852725306884295829526540761740849014738492576117885983698988332590349925772635009861943653128818170209039437193139965272294172955375515978377579165837183167028206861216103373874248156043538655303833505369750335548052777422501879094306354491880137195818023065271053898382449676030702168731537529537835251353772191429686983215422013173672166503117643359408711567056223434258885790964485903590654024729608354187311530073115516034009805156474709475291640518769820436849388152229360045603430489798168768723263223651025378453569183131141698029236140431134885191947238700230622248526020938681283842470574182444027424428686704351733603292478467031494043975659436993789028861806218316158660544703908939272320211977017684819777215465937020180989539644591582636427038388315758768573723046307428160111518141892312505940045612273614561238653466479596570885360307525117007457675753831670159719000440830012086290300337894895763632169105319688166616801710819829711643320558569313159488983118859632223459001992638090920703551858801564524459296538566714879498275464510665562048168152391710816133883834538186433783499334210006944493808621041362935517514670860460358758418101296364797315815130064340134847493721174438141272888128942642380695789358525335461686257305755110590180009923523697673770977015798104302151834760518567157060931437506932071456472274843041803733762159723289728075861820667085097158342287156522330584895913233984204136441775838283612967954877710680343724516575523874268381055228247838645848424522391268102040434926258434038906061519539822980947502751623518387514699230063314198914418690185169702984900171371098593819212100839435849248655451458343682897325858179555554761273270297584268989285936297263645411372477516533558562040639969986294562601789276575595050816072457353392681515855934578445930686468246762088418669679012041303551252744315595829694494326923805048295783534982408108739705140568039971485740224742180589284157220223144046692744078536527358339588454420253937947690873181228920408108505777766826561205339689237195684979733846071054735161520654922275752482702515944027456378066003357551998319161773179377340952779525976871967483403431504317209004358180109291491581887317262499786136746044995332584946697822302549957249996574296695005264090960080361290811639608271182412342292187916559642879256945630393948337352915453414075307441326339887268624699455944096216616590694528973896940033697942765705290518077781908335210004951032648027323102671261056866542034942870145225432310901836022644550753543147999275698458473163463130512147908030311758583827429730900927309572845223886559631501988421978687878087061095385205708104044799408384724324151758128494691479188822985911092221093942589196556185855564797204054384502845851218848427748699468308880977023484967915959648962902181807257642170995092353624673517819338100002005193294478332681887886593668871519412954409246916078408544526383613416278264553572909172187898311749026541618521850311782530827025096253327896074933797657091695825398636904416622256852204225967582503039632715955477217958415383024260550540987525083750524512909109529758372177290248370832823345078637326056857647827284023084406145916888257093329738441178338552420382392717509549281317213348289482423187456549887883712273250722454809151070451668144651025508089858991180943243482478312032604296204568105066700353020209105198181526745347800701991929328213588036472342161940942372961068936187104228384549855122212369800512394964718405652136526069246265697398127919186108386514098549119324481199360878492845608398937402940735253003243768008899844832098355765368867571706093851072087724509308087111251939452998491521840973663416303756797514608951153030411291655626527147872485877787994251303513790889803545481324950680939984859975803787106361722055033451463148680464611443550865710344724348013353322059112199122278845387506390309101017111114917285185517299394154263810077867533314305488161359589358710324984715906828918440628717353786035033053810892448420154221464500417427457873117717718090099666352140279791412324071237564530927241591800612840592027224015074588679516349872849806810972702179591211225694012733474591118273107381178007376633721865503576912545413942250422332974282002584821042028702884331690277150845218728184231392595557342149220922837601953015168661239481226643432935186858841731354584984627917381450178464689560433710837233332379585730494447140909569411340928855072767340845286473913578291020676208957506328275225104818039359691417608898265421886431040969549677583147768818719723069058482415194273892683503828220707891487180614457706154053860233847858101786421531690577082618157017959932038813311743810298826171417301430739127490387804907623303266614396326230718341419837924477994443769742336646488377646276484488584119083340731896465307246527803602499944214425653026667975725569333788308046879901377549454473953118219632386033775695336469893677027622880046247010270049026038200848041869499110770405950289706721127724577207447456854001152503164863937498122728879199233452964156793216963544222296237745871649616392615088166916437041420146371094587156629546023420270656222617445842912614318370075474940034814471990707492971486168560847121310846775644430164993640636230908732509103078576931424948904900729573455234757499740862206389784358453787814406521804030665332580659483077283720938771157223955950545734179168100822614199523928521313149768996093820707969531347408590188772429719401286878456020937917737956730493820193745774706964476213606636183819238257745790204462341586268320435524172071005825671063733574566028237763371682975781383344397316501580571639504400936390036558355263161634834058545941635597328263201097906012872915887785924041275476219110922256890817040053313359548365335838973999280065445716979402420972616312021683459715554995611725227776375707240459229542950422179276126008315136723107734155655408654512701025619390982538252235594495838617801283697010041578393904580150430693735088103220081413631101689757693694482798434038303111604266125957980159740293350817761726084187842772117655349533100009224904051378196090340395615240074282232384239079695107432068861307200793898628523384458749810782160574587310395280430325632544899540039673670532730266668942487062541644860360434539691387587392274018052222347970597834577296612827548024315405866301169100111080849832062566041808131149229778977939215001745962161451503198310457568932704195031014279349049690661029101931473852018678078097933049310059989720875317666816133656299845019809121498423022846727849853684732560797970047675873176415334999865607035302212817003340178726227404108096633673856294320581985513060838481397230122318729060192551322735364957258380068679894028896344460619998583318620276833509173063393683850473721732517879199674466699950952713554348458708015442721290718891109218886116565875183306356386021943051818678299825804610666119464918337300041762945952775723557419491352062454780458787456273822251301304077836760782641885832032432955034403229079899750233779490128569125267997161422581685933589233933230642560758171349865777175987541553209607594149979215477994597643526282624620097123887862824924819281075153293802248876220287980554920736042280545246652915617849772638180178429872808102366267032588564368972100583024767173600229375568167281864971723697096388929060134922734956857122008856335851922426841343953159006429773342310212969681326009525464562072412129288422607371648914571226391001917740519059108105569988932601123425386512747226266594367295328281553476208807446209701641322421808322047152414554296253874170006934755911693320279277245434095203073679996776467006009130176087941664320330392028201498269489270024818907558954669318131983115165726232165212528294260821976736657290715498326112370874756288203518450678825041648469287456382573621345966426436142555085915236337030958900864180571472648226317761171385161796526541198022081917975686678677328905981807729037229848899629361817066085230137730180983895981334697418857273818484057139034752181315983620440739754029414027108346676651872525983430474349073004523213275428990258321072378208026369574232674526197324840431209559523450847798584177555850090431584907793209550810099840265419860546987039820704889388230268573074353889948425082088323328434755542897529743101624938090330818318474242208149700579352792274309903636898238560514479171727429436054030680785323084783321720279907512993901369557377165806588843425396111800832588206864210428236157830122192344844562550250625463987699217996606900686587628448089931837495063788090437553194362965748352723057825066958213255025508020466351903209625119116078961484695390368435117459771508061982432672616316188132679536601462401128031449628794513360617979300832683152957345626931698451066860479015096600847410943136226567177873331519646685391798924094535794873809559134360949370900330119718415960270751210915201189896783490518917041742118834003805553481982962316031505295814263558326253744200259509928710216836051384811142431957342226120148104535440292359418208300791622418881678897307120158033995911258958359698681426258210899908094040361149097158997165206481050013714567179390616912690812540700222932071707894787642397730991477635569091245049651049693560841258402566129668942381563690274731965424155525272286568368839307251897435796974097857056336968309807407096602795215643614578088171977674527217296893472310160436565355164338513322710759691725783656473895495471502129743622181897466941253549404463906966094054743091288918232161619585483670782336159521158114797438450170128351949167611256562377024339051210155349626171670833985007275335708096987407872071474559475685748728073065686966315186127857708058255311233505529870709763258058814137463368334180934461902107692923337314865501106328404461189902862556392224239037867724199774276922508457957017434015372501643953074880047078827593454238257472254298864641012861889953905861009037856479637551275612457363123164381303854993882560231244418045822122701047227057765778261475508374957643805574502666423481029416830698040006382362403751534915882849020111848378145807385010545986458816541046958581395902331399339073626955486553477902492744578241811456420013891190061624188715462633006587453037868294354975799252773223977254054992208009407596597524531711241558936743438000718519046090216426647801309996978514152332039319528833935539363784400239372349814551625166307987956179489717066340706108548369024488729200796942207156286374099501910233059294735322612954709019574736447033247543904195765713550690699653046507079926082605893095400549457069923238368338600205764450009361446521420485922962662588790251841497317262033641742884849070517974478336375231717351485240657519208193248536226089145347821191170223253381968150286143728684198358237479397205101029500669927608398522197358512329399086474834231923004330491663373514567102538543063584550060442392243239628955264748938255772996556483889108044296353325850046568973866927454431086484542296501622719848113895292718326070679546476037962070502932037681155322930262392727872884217786136117929298440157935050126609572524140395453199568546882788173686872255692116282173489421581364619794797940780504415454050654357911619344823449900546814024916419690791517188529092632584478779822423875747601027945268626355369769610364301535358333959768204197999651493336807855239939644736984958244685637807088097274413861956372666884959607824438258212421201076161929541883235421213400867686187893307575658557371116133356081827005346732416132409089045347553836823673608531508373099582859472566288299515461392648007010538258076790536233056840071753574272832132965572020399366785513515415745542239210158938488696009166160037701076783910305512680449440434827721938694262326579658641987213967132607237613235569948406661803946948247001024141828484291189440237317766103625175171057456997094490468075513560895887068605404422056791821127083517024591908311036047504558087090644364973928252549970012545496953912520186324181179533363305411680927311941678354537232323517377240092517350667661840161611130028207882945231657315763085531164596388587192250263041869036223509106628813780637691262203705386160594742196342258967732533708481258956241528873798960274345903500591743570397772878512768965674637680754841539535646236633822899634819361767689516051077617020725997836062991774868037499214259309501221919042052157127325478573123700326090749097506860586558654876048366045328822604410016740059044470000211444709209895695605489839647984674392839648657360112096952448708027121592355309482658337220816282490954653469101946960062999723238721154027437958842134650838198070281396566126322377724767684972563986720601904236570915915128424182646557164051003390282113868212800892229154403178933652858213209439722926622441570176693546220306966617597150023001360047355208575571931461867488309811659160608818853216419907631255039990127441931242748619943725049096687415511160910236836818868851345151540341943325226187303583117806256057870492053224866946228144474534172697998466806171969269407685221873190682585038517553153560639123675163544067938528500207896890115270004385915809331029202330147145110173016782520339429417394115852518492729833589124831369055123894417580153921127680604691675767712938572046200562879275113353448748183562447212879328347678085447385409345956330402739624742576223560483804064460735906778543658113956926716137831540425904814487787068147361453379969589320016755558937128752258928368466143696101684099147540686850139868131713556780215863659163050365171593201593240396344993675232082928214117227022401316565000142385172327184505859815279656352461908940596545883995327989640955387083606647797351888081183423851825140070642868536341935460096578866212654852588056328756410181373754909421072465886120164629136086120424978157845903999165867399773659973407487429193202303177368731009270157957115000204715904947596767001845389259080962817511069531047179114241481434017504338610704459874297217552325978061495506875559232713525388607966581243648559893071834742678958673930168312034500588247445556697019957285855558465466324216402982220629252292469678053092449026735486587044111947244011481058528502717566622641001665009054682506133774260087900915879515059206099552748514652174923237761428488699623262794795048935782264516166605843983548375581170436376615084045763288790343815940321529733706626747924124248917608894851311286373652074091253432313724218299279518900073934232413978793979177102092911656527107318701992859815115799647341031254254524905102567072597866414744623424038527437620647060603719459939330215466083785801041230938186058228751193445046654391385725564292121959503603897521304036707869175170296261851827090651141927132706944795626648754588854863237510678599263919642347706724056080874124169917265642327238667981879683565051555136558018863796770952322583428407491791915369019340620712659269812608593361626147165643148885363884805628032101603886541643358243518288880226162057169454864511566825504156234809215851375451985725923414139238143413727229110658612035634784104586686117959497831944779394972591083309312856814885672223856993000811837787796467829406340813137073741722103324187153731948819370811713093695695452642281785215040427804911855067335713682715154110041166573572530184862702249155579691519694924751320668429408647166994631538152340461214280934668689348879077664964915978602741675603424864145410108364890063693174465058213322170310430273233289263722672704861316643192672193523372210221594046846584708258359297413932323681182248626236100016675302961075110529269956094957172864952923984485124295776554805084385595680156212289985999625464625761872540179411197418381362488550868867968668274081961469203651530172917531746007602586328715014247064108097943976683879668764133491755070117663199185016323746577939914260468891413386110074721227617026685472315537276914299568603603278957240583182814522669684922376415087987141525852147404764574219439715591390369078383544338059831178916295226360780155503268844189378310480118419734088728440448571041203125709178678478009157675438552884195783564074222908055376651410912591416024312191804701488347417717236988506677783138425682202536506175899141162468898448319500789810165616738903317781252325568899313941181244896082417778604857733533749092674615903386595440194492962790858761817158330520113464837542648137517110573778826412627845937442658154476496804975315870088164956904736118782176171767216134430786407144750168866086084796555328217616855092405120362674247824775277130867437440823369503784205681495091585389432330797494736135662252867633082116905097489034192691429791980776504187397233525535044991149731043644412374135534745351420172798897851049202831323605843381806558053329413570750474430817562140378853352060911880081526572026738741848882605922054349956212147717603655202306299629804376910362154591468275544694826084860242729523906149187878079106119894853027132451514683422220902629013479006771399272959072634204948038466285992730698467949709776608027520052735745087143709251628027809523239664606985406416782058500613518838864949149124044100758586469440092053837980793055411396960000424935282900288644739769143208753088637119672593216614433630755995945528314742982086215318936347202137489580117383119979956416083582410379217606288562226861536979554140980470713444693087574953098179561337564225069701506979560275964322655734124973944299382882600849773054387509417634380143865264103530126015512194083170520348872101132275136302375197072330269039212628378490721653312220330673107853804291752127454141041807735249861845128671482070195653811228106335274082544947903994256767446637066722634829116197731768991302808335918526401369328351826285362460176603619760973990417940098065325450968626030893256229604109360596371141770791465658816360013385444595921352996377465165108005446097195687107886892249728312490096663304072628512823876042682963697459940525458734570326360564767945778393852664825245561712318005711183278388817013551638886325532865994604134978266139866519126794125907680263414503235245371066517380195882610576040760383539323072013861751395311506086897885448743686823761725088214852081330793972665986598466742061074850967067465075024344448960280016687232102423649434195402108370322717460828251732384648076934796905356620532827334629016225557555295389308954085563436429131522375186201266387601844147104381683905417116628572535910460998799359319041724707289299282307871984066282299591041002835586551794671661484138006388693366794198524953059373917242222147500576748321584351219968593375586614777593475618003276883411816205506968267633425460988812931780470393480131991142230205033653715046894701117335615392446008989883900815427725659764689998550398542429023086059881015229716383752082232203518534985291453110019818031398726015644891289927154414714322619481036092876472834002266236617982837816980751319633923257758372796546617634064685808896396627792009696990274194195151402708611072948259287722336434856605068181392984086844932664947536339595815246149579619490267499502477900802499130663283755962112466405126303180465496603380020083245334337063164510488674606999103064693176823847150571071251100201126768318350948990490789782769043249146081020341895267473883380272048201651079665633430081538968115990827076532396128875830362641202896336007683525465987777501253539294830233272023842074179547234610817604827780759520852515462573078261917301864423754802686117504030013172607655133188799370725667912410814446154208653967671116899335075237857089658782212413114850930215324935246696948459837130127964797477894185388113181752807587982613281919073706009769766412017968716805558997739575881022250267663631921610989420671071398300387428810855262570566357606047295921686072203432175712340101797437331827841864980404286091897285799935587666132967071632250900696922314353041277053239347149133684184038389229007017128551458017507491166891011972779080222900548756613834293929186426230784746564353195338915635308528728263920330614527782729887896809238266768326589230018280431461955473690499749339301029828189644579551945589395045273765054647781093302126779678454584997071647036928399987696571300929649468617482276019308729927055496023128944819214905772985370188482997722928845110858009066766474785931064590949511438743092634550485396199743103924578108819343033520876641215454118755521748791608536849345997106107168792088212592455429089724102543172478299735472290966996233253177219631885837300965399948557619182529873722800432266582321577330595309615209402266999098370013522980745948704405559864287925090837183135464392595895014306157618943557030881924772105578482542654443730317189981029142274398134237052845185798608925377663448972687954499278144350577731191268704413657577754817497058206927573134882711072810449046515216399996371572362706278051189137755694222067018593893456377705232576776494837652763823976355101482207159291141393575034947513940216398167004066969993754379440210038339336218973243336674510871646784554276992235870163568370027840801382792173291861110562377987421008440499916162804289700019674233648210635475384039175781036685545447618262717259235426847139989655328263945928306378043748258059802925326267896627589292093200268871677768374750699503770056258658184872231493401875570996748732312951968045223557631467820188652649914965214300071362328746453763020227590822012674779674888880896543530326543722934793231162951680861616820168310306854416132360445737988573439393220443743930551598457663907803937167386438877777759647963763070576585563759282043722361637720656238332863860416455946206027499191304801810844865344426253876374832809443169469035359272934590010446257577059543551115351455104308838499132954995527385877651753418837209960021197091855451672288028868413757695322808743732198039728198396284721328150963909016571498568123636078672386514536254622332444381106231309691452146718764544219302066531001952467945151255478710732716155457374272530233213782444385789973289666819956152306924639108315054423601289479109930861678598648671557580166706605488711087630369682607220523441498679732545193954306220124721825384537801476882102219123270810991307039406405205468155213432817486491936198805246988066668546814687707819484796175720958096230226169078531716476315298866543594280546245254694317867038114142950204011087886039857192344622610337025364443454019555132844260461319808698889861745948849482007233970118228191248739526969058308718010300599037369155929778614210678077873617221747752976112182823549795078236796525316524825589641661442541389184314765474720135715185066694603050493150632539921993932256564070357657966956833271204128395907874096291530803306143248607562614832361321299949642885724833618752978045764075216266648725163161287355161690981281782183507913379457534692839818684784242521965454773724670805667758732471088512519811900957822548144759012664022682991724747442279369030631853944450451798770004931727452761543410102364116981717302940849249807207070590889339562019436646759029288215481338045418908628471943620683168449688639580215078357413603172312302036675317070388617757528719904565887226968584488458323942128879607307082967332287605684964619391309612379972635908833176291597245332119503736869501944428964997607035639190487243902620500068877255871368911816015054934506697568222933839726256080608670631043871748136736324439755841419883996681733981451296668564309887859607837750632896436175985482028883579806180497482826881994018120096655151494416031000253599041289056553187754971269364808994152669628996727500466133177493513731605912479087870286854484673687155540393550582630696820015359552241661434288629465835412207502160301974788109983416230829840399958895247315098763084199363256622966199907820077740710894236802107439768596585166057414824800478093044679872877466540397448495269383331689878893831544064784356797374309404134121657944734853897106239251944509047027242764224408387673863901411358709107543682092323876776079662770634567708088689208679473921448849735791153331980780953823206227646328344616485081518547286171332785357376998332164521429200806814014317052537030989474764174816836225425945789640078978775883845004184558997669275274187141316731451894425258948749110323753229754946687472409109411476123080010388906933282737720734267851509125615366291923236732142526794943291284047117081657429369018683642817708887867877171785268384629409464023547093950387230434088529995608278062657049116355648942277823361381485238518002989896189705427410479294250383400099575227031962931753441829961041265524655274529583886266112524965914415579593640565181462915778104596568332740006795682238512529783899901108672137207585043550869168571470530520812920252079532797247442622171631535024784332798714478768608580405736060203671232365272337234441961044967039166367472994863525962686715798199556470848307400429007611126290211012272490971188366682822316491686487559371752736034351973044043861734694501342768047978316501412601142509257000750899559621546283920412429024659393975126364280727952847190026091432802295256513614732227724622228565119273105369686191409529937210975603485744710351408756474923418697281084950372835459279367240282600823424513886017206730086591368155177043574256418777989264746568131434385593292034551017848133989174318386396001658418778934380719796662201353709045552563902010152210972312175061648518210297818786156885994312614633899891501817123128394100590503351335930844011768430340787097317719745173646734188455720000311404705119785135053143271467437842889430490942109228937827665689230935960127769870997675889403459492622835679011409299260001959619784318394941707872801414635820849543027658524865306647119361550600592221334138705600754477505911909608046121804403579989830798048966749422757986315634807297705643364143379597063390109159320544715252510666446222888422131918541272524535323462688326805511139447311365069846873770560578329483901450229739560611019433009829683154313582295065145263781727126055059099930095419443429630094791641605401441457231670468777527459497601649355008777919117379750810661304278321659290985737854599353609512569493427600686697659930870118287808895326208386421148425429173723861356874559852346686412219362290129761760569942570882787384261836045509832877842565932933102322475414632810051469545097487805836017543969148152953613406013773523852347613646314110969934744401462047873977386440435940895651058237415994315986700927993769007140379075187566023970289720582374966123543213144881450352092039545770415291723642135443960550540485049978896030416403839657946165091615573874672492998035937484981545814611449958146987474077042876384172488696285629922685776945812267358737764088119519371816141976767374415894008852637266560623198112150329459662807305179912096039172922008681023263454308868216528022112730629358895015271015655191592727297366109052776194356461764732689020300116548291151099041263009704394283253085194513212423648475177207588123099168236324677303855730851763317852322887356523036289189706554370153287301997348856290061422224523170598169173856671520965098865131248529005993023634588581484007642963408710527241193086307667703493200555933970227866138674534368776768140745219563295832714687134265051186439514053368580008415435358455469053047706205076206708069555118502198205183943049217036833941392454839376612437907137183569239680661968579073073492408369688012666928740660629197047001168664691338163656430456919287799871681838204641709369165830606841300349379010173966169012084392383600090325108975811311801398609045253054670418683318772976583009780896846226104433761155100808739862347492320093553149722851390600197352196959169028957714766624644754241561627307739370176411822904986785076390694364821632530310866896406490339938694432314537373992062304309664235930451864920358365859067806933145092416520592429199487241368530535194669970197778548802151825896127827388992871548534123509302556630809622874946403805713740146432511026992373602727638990784222337024038060920408558779180390964156456145268622820981884166019158351012355826668745376716535261665575039133041405547594743272917482678096681169977639300013205044872529467680037253881420502215201959498094916526586918718751377704756198108659437822667511483557666892499567828818488396234279320313342327002066265094299205790386685532962203948819892490898558259375000644807614981433340489903628532072901664015326497576079356633612135702999480131793149745230284725939911513784471478393164239733417443062440024131987105740672157177131503896031343854046913318586757127787700821134931448524345200960306341108009184013520509986296928479884025742307869973811045975885914665926004704953979681047399370372181357550989841221975944733122157762326538227267029996234565885924533030083598450603712255500361453365517075112783183076644355056351553447112622298424092230304171270083753723914500135716380837486169368492178252724420702335534973243795972885813252535870541074823117988248779501861822733189404081238494272289468719180925290699865666461423181734540952096720396931009248100543121641883444296163996637505454024758728782655147798353793092509291979448621564417496279200173270949282355977372158144879772400539879318791966678317969095099798920319803367724796269649302324287912452139551679174768887027283651834676374725860503660110174888645073958602953772849687256893199146748811588045878893933828761220458769154483528182526382335953798676330824328110993084858122049395849023635446420644455912084848786849568885348300627592004839216699179017018827859464395809375144877237271918034303054186031339547588158935875219116436119883691672942541241033298893951975874798073445700742109184198675473889562149417962874117377701118341313876234513414823413021995225128749215035585061979933632667182568766622404537219503190826714323733302237387945290756039032191682245228415686437941686181074036674952469673632358238185906268043468854520170583735745347752834498169102643674384732417691894406665784811204441669593119665081436501646319456071871145192927602879778454371582699326396870245436149489245650687515884516257510273975154304555678008922561465662945512671295018847691455525576013536325906426270544371049057249553482187673369458785771320044139046601541547258728867383591170244291952168738846415820697866830756992526176609608038150399684716518606137945040899903683305305548776444091457398677029128777790610778614382198358462938456412360593388635286410366312472457374779674564711042429463136066180237890299777403367926510489720458454776428447535384362636644721857977797505587163499234903672262802747325833517614855815579768331060312690865760049277452508999280966029389135273399893733888476981501164723079409515661640722436647337439552495630935353651625653105953890820555362285025678737079293389229558742939879270957068263828013450063349630939269742421792753944120237185566024625172357604723833041551707956998158059473859768611790522890885645526116636077956492783157953747241620884359675501812100216973984172405002610721845609730181278708746644270641653783561595200728482401342127802148261172672942135540039047290851882347984676422174683410568652503648245707060353257927420969249224098824253526417014485476113650576683120004216306296296618756629398301952224417663171700565979166327807167269187571386358028307060860308004144783770015639589675385206071240726497793073446187449453285591140349823421113927065508550385720086516138809377349140558424224872065151848157767756340334709224451271483581383629576873149073787655988535897143170873572873339925173732888317041310655464655485640944193024177965770018660208805066300398980325303168072592127111391871680944788518560189761241121700531751683923157320190152244713914177486104626910071194602985121106356446839034757835811369177886578808092441327753084335803812098119321340509708740036920904177881986654007013147396413283638506040903054918615128722007783150260249202880106381934126541091544765220652205677100278467430863605657456018314724203350220405285020802876550105930742800493091258031431015654815678634974423911900404342065880247050362377685854573982325355651834616540585419101933024524371112882990596858836111042127514584648346565567477630089602388805897368654579209496285133976187018780457415021395274880857557691241079075132561614065332193822794687552805403503647501096647706896337929752839287714629525690248548275660645736469380553265263724744215231962679204773104090666071582663013519325634231610219529298377153096794726879355730902374686930139720308608390630728143534830336487467920900389210855821427218140395730370628153666235191802150589522828960369148126624779604657574510026686469731760091334232529595942696421137247578924138207631835701287972281180633383073165356763213346366909140100350100014143039982068334387014264237599224501967438151054945215052137715876618727928218521704331243433735383094497983792683361899177397121641039058969312299454710473703083073432577362460768761727675729198228558208404252588912387403985264534266906202559631217221623382878146420709186800730805839179557925018987760438689075051835755350979158061866355440850507465130829809627473055541713632558922845875791504994294687919844535616396928986200458507634975939774568678432608979824661602887664438189542750163796007034378478256311085344873463517468301782082305558014218940655361439366166568310105823622677225695065570435473348144477967551512123822108620995962236190685442816719573342468588729335254679919985819487334643275218664709866202216885484803004839744575275336344396150733657360149227157331218165284664844394137157351733048910806426941399421987975898111526728742530206095199894679732103602004054031109899344921069592936220662177640217372345287250170057146097374763953612699143700601181554448059371321818925721493044320004016530910181754986103437743466978864844779123482491446521342604802800379253462226830630156229294835653923055839791799980325962198624169694681995412878906141380821139894097399073170208507553835273225282826158374820290204253966412731369633964805740966583537289914636818505081559550871770431944902354496553001878426140014387672080625444977760400851551007527789399360330210776510751354010884355586580033552792741311867857926011557915218478362308345374086411586507780557658985858759116484747185274944094744000284648696754218267873084213457623806884875920730773255957826915846191268125775947500792344417744914429138504184505359934278456967952333630654189030241467399648952015732940052931476803567858312033737845579610153128201191681386556904905861713856306428904117175904069911260178001445694603252580308652008241597214894646550997791006836883376330681519177632742390980041811626484149595003129835325841242693626084403054011189354285701024076158704090807948743558134100709761601236711534902005353116165188394902718679370378043181149870543059324338831835830201718512571605824919542897913501518230397568532671973118319468473064515475665142707291310189794119997157867402453856493859881981455638573651655118230697606124660184085508333104517383904406423805505169238471555407291177118094467907787319025618621145062790826485142074439656827819107352429152915801554348014497618178352328195129955180966666265629231018140700016590213655624787359975159184190282955045100991951376216855513131808142216162599398040768840050493544663777036801603054758451860525352143486289643508573326932904533831425067795612162331430865711546268080258987109343459462626824859096191162411741751679930987310006534230076424183427515410558108202820678907109337516598567896222624149187168795485063145085990074176704584284881239927427668144509965393026607720425299782075461779866362258886094946310218776376866215469502247577198175789966340933410123346264144062865126181390610446315922730043226694833644307455316752541712786337857877667891492354941588819977127644673166838599814541168363687801499824714612453718267578482420796765815600625780512863986798984940448340104516230711457633381552508076784157068914588891727409363515675009528500612830132946816263256175463678646253634783934052957367870809913253534645031129185183169267445433726443212164876794990663056524273416296673962430251424142344227437921560745629128138329380774449409629215841059744754495883551265317620908305842235373729134768934780023256229141956820292352017346311769161501581113569755715119227231445544090619050815766537389395188910318810285552728748616914245132110758182356378855063509339543069506101123039774376141181534620347694235109044249430977342630481379030605123510974290246849885851906640628189956135237782536825467738181248874036954174240762792343260641088146213050975924515006134599014031437620133624822919814414207745218857188330659858927818990533116141952187980679547388615508072145930471533143263975397706789543352151820330629982631512899250633064477606701131518919352327216151919317930453845177689905993322137012706952786006581987702564801491230016268992395757413747963057711692575613091436622457947572793079798320149148427779504426968447621687178137454335134473527992064429855079210491258494667101197689091311434758895241979676386622565811521256129361023300466849331647770960977772092626384218132511718838715854345789504298406149277183395167781485611122316501224305650158194150263215754598970639602939383865283926487315088798772103453644836774753983271939372182291478651581421755925727102395478692783702763693904092544219096800974836978295815807862364452490007779203538553505285098436979260894780994304329275734021643358114507416676880788193494422289554844975031252629975869059592129393621174782716124944829941828828451999551755332257377387053836923240024048637242165284389593317105188701653306800459887723078516245211587347374022391118028670155489153566794922047486692564525966649908847478957424965058168377031934066780369048322601995581637050983058504264356303510355998523812606696394337895715557799043351509397919200484859314836401530287911858259147862312875600704736186940316617706652191201826907855461331860794988390677893751007256039702775347368430751556286464903855173836902840424288902318282520991247149704654956048090059053770001924665498085458514638911850337325772278551712641964517786105530618743375190913591875860564781305830269786080975938473467653855045268200780751548082700161140126710997846215303781420161949087920759295351545880851611565047926311259587335587947598316218500177403034300884778919683091608045641527680043104632492827280020542647668533963207203093349553264575964129725403109285677711825088199844166596177951486221236570613115041584146958923357380270905875537402794311072689608278754116560169950399954816358136704011773264162416789712640602825812470495038523203895589484675477724732730240028664290351275144135375719572603190567180190478926682144196666354711351240825645982992625184018082930333155850645382768456676284134448489973716656996618792343574044391014884365446580818107944444697834423305742346142860046980193786038583247347227930936103915013929486590548503286303094028858193576151931907521852034553559690549771464442288137589519298127888307502802773428909204732453504552682254045654896861460966264183609132807269090826320081339231399716853103213689301689735631205111274561390710994725352957332510050836690489620756709649824547856148804037649030193399324664043596922256332223798597535796665067609921210901634646113505041238513143106655307605227478399950811727059129906798274927824525544096432652891339712867285253948915130506091788370724226054953460903621917925896982732857750797062137753986546891167205214177945486246346056263308874679205355660861975117798405101964843289028814463747001880150159827546704290336157780060770492010396996265890433021952546725957605113076823632910192886462007308668076574040131378581051945920816393818437146390710842321876379398353289150734644556142679596229111627765380132827371806267445965667194992022697743462285736658393867213318519373799092375576513620278094228733913730358756617597224790035678183555207985399538210053612261161745020842860241168390255521102103566605572256276295282823478428969449725655290223132265548808483192308109745941820048586215338612854984145648815074247587190076155593422948030108476751163694363201897796839740284171955480841326811099844009096434517744769725152573710826213259556035610245626217080418167606189753782980517404726589649308036466470728382676001381022310039317899855077364167902299303690983043512725358977711114544244680488826483643114649757465024206739367296091138981188996084547993329652514802223201057955225740160653505488102200362440791105981129146645730889510503383708343305196745042874062110255232217629508796412771013171742066516780340743854146947287448223325928278072524394064486260029177479501148360645181575834449857465531567932725848650464447771576321540676220255403511333041165642427526731642087617346112827334677764926019165216392394388542145966372955434063197916441765303605018545466272584214241250875496794611462992537469806021412188337182471618108216906677131502302515448651038175226203200022613972405983622803422814476136039754211717308673018441599091249924450452780660736253404508789652777263443410807228355002908114761308905993825140714963241003358625162080639475888213285881157712943153920271301251460984752386916206424056842281530745265933587609851650848707565498145445653945800430754329300899731534950701243590735773105976971021071939684044963634803332260179338732531355436470397253092115375863326292162216473984884532489898010992953682824635815558770408435740944868664442031799203868660349319257945061553626110311692099941999890649379629512387287893016579877977855209704326098244181206456556042072339888102689385563579876961540387771675284326862439444575772452816600296719350888955251815797311910522141752034756663718982761490864206410151960305533265705523900944005228358798261184129858569686994516450539207147611159966658662380234958540016097950974499165143971765085935757912708633531652884378956404904344665631892559669454088639260610477345060564115867563771585198568696634092830548463868528066319704560693810601648295160623530420149858122534876016805914291099562225406508935155431356733768947874627363871561112444486235056697809208764695790514615568181078505951339411408807626772864365401168534235937398832191889270728079928165598446730785566596985465255357744344124446825432217180741503847013777100329786021803074660701407867265192570551249553508334766515455379584254482438127453336789525032996258786865754421884522360483332235318800546599740919214580565815797302094159284815915178867571995447352883297584443077804926936545030676090410802654986375391550185095637761673406180323788164208293308328434025009380746626372382622749143586791841001297171986800826759161657417584172167520778266398293958103089523581686390143674156982133487100506074832236274006516217437935384897811268142996390797881480759264733748562490151496281316905368077127453226907692406798588129503665210545717497211391197497754989670957239473080926419972354542996123364387332860171373409250950441778866886115751050566320557787561964717310988289135387873897575612682832059099922400477588792723809552423971234549165351278614415351487264796776381830187532597567120337128090559431298545074161516143455042546547494061326987532316775235392415498986399483948980841054599246487818410267455898723168535391187194698634626486276087180699769357731299697454215807412619420744544008485801784342193106486696480053217545402826672416459072743025992191067286807938021907375386550457928049804448430826248434712363129332483826762605417072341045083158005852472127954457080006667294925733560660571375389500557483505206106390652505440296266321619795346556304517520917227723180876681318270750757017421391015541280772048935542135333517948437836746631909285221893136908507422716894048217616066572760106391808145243973756870546958959566848319076512955400002486712053678282278697858669463830665585135729148994536165932988737426905846969227291765526326835072909971122530981403539980294695569737395981149138000009747388592077801116291329320752613537210922966585925754164761016323809235749314428448022523717797401271498747346322774025768344003348654242075765561677035739397958976136958895163101840796200506433482992304117462551525918573807625989952064428090581893601116454483971172127065789679813412056826969748917892282033562524876469375317194296160453635706095276550377161292687042012088752224146686761793297350018808097461776481969429949929092380643586702982963865868753860769813421478431106335933711244324657444648996206386194539228924571858402524793163159132136018383933656566849096818437657785799278234028661197595756410785480337509995221484802012421958159035014717424191441105579751902044690135774255575958166522522938200261240137655432145473969706715614386065776682459761722582216567409296660153802395304366988023430058834827031182774634188059822611504441180245256969395393805629748818833511071764473645761574438985943369948683572376257223569445581784448519772746520972379200947367881745664721263914794738358066095327060043938158781836954771935826534097272053983622170682536842215032323769828124545160240865839143860888146514596565978473730258843309337042520744742436240733772472298183599445095802629457956428127078115825763949847894602953048526365188109553558757562841591453691083692273173409729436212390163983790991203792400044134303615391271453913242862851305413042137933406299321648390929726504049545741054938338517437082769727963250857368983747671324982349498167193263863930246207947722576031581243777439257573211440259147448914937772914733769255979786669147329977100482790310110553162996747080862242109010379027962823553914045135748521954639121229341799343369214544784614655169099363311794602399797835331200228817113208266357379140200414149344434648509064342267175290422618084970417296586042833068506024500625297732819653258981426488175355688593961058857970278083413575208231429797152645570643702825612837878509184239462050418546082100038654988794388356997380314584880049620701599361022271271713481126819966799518749631578584588581626739231106440260275640375566846404030820869622736214329678747551449935086938329524486867114554786297243014293338729955706453146111707435768354242316305149099728693393149494859497980721527068240022304633450716820489933435272978868488709200147421959884401767650214981913035679791311478952065389584606870484795402948200757628777040364204422795169472201874129801175281406342886347722974342766018911806382815875790665895138092578132283619570269454777251730169128339231048901867551459486083578866154839311533806192655417595439199565107614007845893736308498314476342457274280135491458489753737713706591169033852445956213792594301979309309356230455225369317280278426315797143664148238575024674349604059255824623187714840579375043058167038999368896524603892553920114127452692740862708698646526446169821224638106105201851362502049041651829279821446326499420701154698498813368878958344811845132303397472188611522734169236201164922014980909089064837791548042715638619778079370334270149859545505092817527964363502180570811131855590271864155304754012800963166980942939866086017774616896208860691123118312539781533815791438613209432538541863120074886911774330287760677041078133853750888388031100316516068363614807654092505540001597544339123175783570954149755721206188406266851308157847919842007689115895326437025617007326458516302788472653055407432311530756545067547919863851728727447704317924530323537970310991955360886961655865731993152058957081740615073591180274059575193877699939660751385328142375487084654529188141737925216205880931755576485713615174075882897790006384282461990204867881745255841084189160897964494860272576028836670772031395549351289889370678217890864747202399525286947734923437637408173593148816665068911145048671424569531470588916437399948743713526804946557446271595279113710756350809358974538838452921025224828526578437205375748676549453274750152038614387186138635949453565541948619701743491374823045989136377877897076007654613485572185171908893987282785504745386899030388602970678245238063550317716666350811623016808768349980760859828533381642968152069962141088648512915123946410132865366357295908110008085266083907243924870678171181006360394465851295896918053113268123546138527168837248376018485140407810224097533520497587413842130156633665187395479764142302937989791307332723909599097806642853969015616373399481408945992069325290118633302182765804553335720619046247730011607178134715733673798547771067739720548611677974014045307111204042094341187196237118847365610788606894100055133737489361132930750250816951974107435111894223613142996731063830918818523054482592091600055161919764317086771131298287146501127491448655206671140870349671149063838461285900072461786684703409029069887165148523589983215237862581955888056531770417789564177434029029691745414201754575829582072531008795358532436996432052372103913251238179977216536759131055074498966763855317871224406009208159851305619529434691540031678627532886951783825174558730571081683894397516955442501802522932815698415874298304114064745510585786489387357235021061906344239044140315194543961443272902995802661660348091090499425103367304467432059059912085268501222154695923515410244068424450714882289854813002349083390690143865227756931720723627166913709996349932191155599279673968523134489906319239902460000006141478402637787766224129524398479787934820810788222720663544504673788239859154692917269591630350766279432665113732494176023966199807822153682825439471324424644466793113035263057573723438547885545405307907708724888625336531785408101868929913597061955337441698331355928672103824140648815113003120009076502579117578066665238115053761965269489814459964607368643800164161618381434790080488147219225677768307858258020953996324187062097041919762649222440946086522881404114491897821362851765279585656738308615064942737226493367023556362125864141908209017688126044385768556550774400409445126181901198148026934576763612180187440986024183300849912859368465787002301681211871788375593222452390056936786777546970171945490614099228784886938746673419999260843406865483010983662526218490030630249864265982807621271234170022401646588194738435960608961564414158194100266383425751662202874962832223302505195150858469729273282299414148602621019644008253853651899400396850705364803880985368410198316102576762413526515377258644160546325863435134502885769553950294262920323368342851618603038694455826213914140522397751744946881981054207539005284859257226053294190591889285318547653169895393666441829918444782405860096215406191895204049259430773580025167564221716734310819484056360553786589824786499763922208606857459409731526264740624997114739456793502462713968776448428845839387784009248535265876597987366715627010115606733331349842415489501137480759570481545118583800000478280498239077473420831093771424162678373094610046522903125674485963477278335842633511003802170709292963382273302195804596288250078615283702244637470318653630916872753444971315217925777324743624365727887044407030578112676883538346003714283429213283156293138881137262023048073925254818340684636821856109566853881808300195472210620581274135417731369505825439287850526044057652306989922394536381100392963408997745267261774469110334471296461064833391110812664983221182589219140999693906167002458621611452821608077606522485809832418934728117244478242281232077299244961636549698260764168123102162695263845261191596003169422545916101863017908148376093883815902556307443183871507768020545861645675375571178180594018271576262804703735510805020549733049430548381009794005966951337587298554796335648612885432319277576168627214608463435030399909959967032237662795588039372595454674435065926666988736572930803145949169917787748430231280005991044263776982970284620018437242968087737510849171504855479035786624297069203759246322545985918805976848654203298939776121513169294130097632011021184811949144623648984637159084087625091266057974156701013822458971005252878743369194140444404494337333638150722004832765402872139439635376549603597223436357800736535548017034351485141757471215292948844474589757988841539305715028446132043121204305281007983256778777737531666773939141178456893439405239511721696338396964372766020048270271817621303547234418095153778451567081560008735429330710387743901015532447447946775140724769431681604480232744023833903148655361087536640636665019787333755364282553374690502608038633400370437610612485138890685992222440557918033991869691353228638201942367654453230174654474946298386825796558737813491545888398213634806299337307746103231508963229523694551910112411282635480129151804235257777925483524192593044275182177163467796327893618969343142351707759898249899155967541520424825628536999030821839307212877413500217555863139576496587932220109009297394473945470921510457034241242201326245117160599935848577118617268785507952479176606408409498292159120580722506479422163950665319136585712602745297053627740834716665171331390352966839810971219931696627507612300201188193245607795133825326104827981668276081819369576835736409761099873925377798940344335564645040554302239029288255407926813772337723833821820497025828274083888011823151658470019621069949509151829560245851578483861226194150537537464075197103606600975996440996269685678552711742473346409442687636920293064686036388212502728482150002709113162140099322081592441437575070827864051644995051345170373359203385316117474510464365050626560332008236496244583688409693880987699212357856234948642528719555591980579878639097581776215402038168630259283518894070618717247731293829344677166284877868591292559329639119476650050857522121904982427480158345224458699501550989460106922825645408865272180263565059717677867821630024038836262362802353092644028533336320174272844003426202319352275909171855332089003980847693841887366588331109794455301693676589687668387490117539539808577071804082713849544932303737264498555885917337566128882798754796319903484085119901197330075328049066097188663214702882397938098926242004782821350647437339830398040031461835291258124827660885376600250029044094186619225722178166457141320964798358262453831002685212514635089290535575671904631518401483185974247577997132541180800914523025237183926877028529607070961868303430988091350682085851054343110995861004125271388094427111175571247727506386884037742727941269665425464392655689292517647390210557370754508864930005192203727053657523423757559759754004881861202207654426144386982437654574208311625895067453688813757744930353605615993640375731185709401040793313562042698731677859974750840547630356170154233074377521675940715419050259925148458159903797839823383187156443654285757148914509007497737946679281789461414749596801622534207916295067945556253317271173934993443699890564522560048062465156226156490336460273881821984154409178404417056466217265920266877302046729590269849476900339505702223742197177293841854543820123744557555557864015632077218589116993813329811593094145384026476817136941387634299163079432794309777594160270956374883638366743907532945602579746843696713975592508952263430025373794366330528523212928924074127450035390816923192497894274464133173791878783710531905534157701866839505162779212314687687710850693133926262709661930379352867613943018045698302314416893713062467935015017430709280894730241810849623168294031382577664627319373386499087073289285621706871949665132928452785394802656947205041954669316485143845699393081526545560975184517781274631270390077552819362548090653554410330375464779539574376362177013919948709664730709247190965613929669894939374259302113063464915270023185573766889855575011702189841801883302017821997034205577529283578494734541166334713588126784055935021376468649772789156690350413557693472810152433928531768971468245732038737123388105336582495288936171260044331262383946343590157167581913514338721566890394660615183622423019731657869092215609538007550614004049022388371860674390635818797449634385497125391297537503060766849808615411533097189464645346024562849659025811274452811559919968665539006141772894884873920517665415735361657198535765832678532036979354328463283159484971794843155791830206883295216885156216362713086520197505432290797477460140069992313768623683032400359770012377984084125555797161315090253578431928943725226334726118097997686861211558601180733665132911001680930774125594019554150894587935282762633734257354694321602712316210181850001793180267971519751348336524134078867107126556661602670584583801540469597699115773716974718127148454148867111229445272728491450976728910049033913980817629730860520416218097030790090953012823147519066110738154917983128970105287595128945526807744345875171364900671987342360391198851087287875659888042971401371932126047742705857540287770917034571328569274501945627305232130032365801930093665995869291091475302087298997458762941664568042888448702447272908036351316041389498741795920158887262453262959687732377947217869998735259857043355990169180556294534946211815933697696486451073381840555371076962331255384684994435019920953484271772023913327143218275791460057016122400157457999104500802663077148872925219531170417744769811177986974822213543762222267094591826356501738632568228464375967616057422024507828610203955267184359379642505471683133676712467624552302253783117857042899997989691296838342894362818218849819813366606822749427739757630460096286559210710792426984077110416168980103374995023729676936079310911981510121089195989760459717441949699180654086554241590423312885345951725711234131854061291726153756515669032595454863668971626375817335308905565685414297001085911962128519597870768137846366546004070039759333330717170757293591819807381093320956930154764830680369241379163649932942806114148624802355831124464030596498276899282225184666622419455750238416221910041233016857845987390687786156176221730266547259250393561310324173317044847964010498976582853427844286340577248909491909009757590033508892164646072870826612136982268155109690828911409973644899937758144544701469674523455068627354236382750300125243562687676404939229728189355529190184151246261030717336288729660840596609013605152149563880925726432179488750803927974375626176233443201593094666436629649727420492495413511126376313583964658381022813935254368498689356361283626408824983820384850334712567962985500558307597815069336769413657321195269096541132193266706510813680603637718902318961048132878721241460789100922498668680526182376448359776760735075507445241625237904560860093677166379260817283455909021339584835000286425203928172762774869276897903085617606475558228028746177987180889399656113760365417021373494658221314881476658850511848402322950682774660195011001161991643980336603845964240878893798716295907636624009188527817719063707352275653765803069941298203103992522992393768609066377709006865357681609833217239435764705534435943496033006629517888343227804788473095023597744503808428630557403938038839753321858484002332117044017804208060269285545783757133366380671636009999881151227239442564909430466708060206674939275645091350067409298775329109873409330357701249948544348431808248898728310234423867847333827932062057077722837270031179270660273723594369951117373182916516424499517139796625067618080169553100627080001800508276765704781335399234492790376607492354551739691395247167790053961673402792381718165172493623003158374374438806606001186037559334636822478693520794167564725868874054368649621401597138796625255638524303005039409383666277627147006620376923659526271000330514136654008865019377497713475390987592106248591473316343790361510677211844738790833643022213785447605222001770396528728534213874248750520251062445731116767028434787002767575295410301980027887768268848454638891105721443887708261634684134151762827343390784953166328938985764657584004103089416285264276174402652319439068495272423710008585157045624109000250396726115036547875227455602809291502155981219533287254556738734546910063461046472913082133547638239018247295811097030526770844950910990623635197154874832921252639974361687031233141676807958182818524578043096652661021587443129696487651131314108589139335456056925458654802929815194773544543873389231672612927058779894123238716466924805495242828715271663446205993355478947517055084752515398939157270912006249295938087682133387913931971037412551257945274180980102833448360934656786611068265987351665317195270816239895493779911345101429801280995868490284736053161313290676714713402900333417411001025976063685482816220025838786238110929502053140096041150070244435821428488769076999282422952271025447858978336345749271774183154241905801857071578966733284354965496924200600158539768925855810322909227871788748604769994982430668016474497801179731599892696275937760472870943967708622518933500489201224255059650541957146923473864778564091234482409225995270185802303606843043056761592768168721075071540552215407808947017205696263737335337131764789493859245372458822160949925849724271534241189110313887910672650374867177949631593402203263663989561159378638450259162877714974705915975881050234727845746481458376600730210089079900340955175605077513891403894840034493919394249982678848801528919143245095272651753984893216505967867802346801861043463223832255451218373131632307407454833430870961390871586699311736176580137405315916999681731241140655705279955806051468810097525255651072045529898520132394711660448834985822324871904139797212798082718522634455798611984347689371606114307202030651099639614975596657300987943460445557880008516444081383562416041821599277441735066297111653033900187143976514346028148784440920895252831674085090327538594470500765668003999602437283591513205275510194888550906603780161546451476247641138585119349549557374339617851512095882913265404119465965987848198083146236025690762104110177332723547792871523728623804505144745208331987314169064390411616454172702535734001205854218445308575130853271371100914399032880716669141752853780666034795937714367018132876286153351746331068705213105945837056226653106583928257044816984916005042792783810089811777399029389562893088076011069573361008376374349866575209003912107120105529093806866504597820215328304760453835019954120854963585839085624574401579311182205876320911878139578801895443979711701312316040864676082166699235197711444422994661052686076302986485159739665638509390910564761091123630503241166575783562171019037797048329552715830474197536362661901184834148326048344895662049373673184572023252909903150617660332379494953512313052652244289234223196795337810932991929636556311789580158587323667809070183216529814485699352464832466106495201803743177835023083171977692756972289903686920556404551242233237864544489325497808463910533811126532847276073335249442334549508698568325664319887738582556814702455609574599403526822714876456145661230020411343957295633492227872915542014108756241438893513448280388194962100028974086246097418811555402425686397329230576626629054825574983722907670798702963896606679759390882775819624857333054915077930105777626591486531070225458933952627615907835481984550145872498279440958319670201326190267339755103557791732297293559517469068606924264808354881974690796816189839180907729204812913248564256166020403492994393360107269135508286821485888300906409057660138293780491482522266163994979842151681658062737491633839738297180302280054112728160860610051018195977272773384811105874590420290435942333846046096823232890677645996094674368082251521651540789803710390319998574697176701035232005166501405259174528848023590655426405157003211353786812254544872464308313730500487382747245787776290970161189307098012681006031051188548893207857640031193311293223548048955937898764318089233625429816120788924743466204907002303754948429421876509383141889482879908246888862564959717136828447784964638931930276325461179558233919086851028198558883348590894239410889635029945729063346428667624193957537170535085562725059351278456141336603279087559104683319971750580052186007708497624378625716735046038793660999517714139439071645127510523789279529527564533894908415989686012598937362747828325756117141969387239576893341415477566774431927644112295084268031243473037015400457641595982706582356141631299321251033668358147569389366621104655495572663763809723668359792474988867603996153833828618042028648919138557400423540825339599290124571099865521653615693572612367790107294770555524306014103753526185537930438160123579914286329660172112255644357215984310460462506705095478137843123284101128393138623602264666210843749743167624853141669107249285764446767312727469383082273852990599564067313571485796195825534292025389746890723286143504111559158173679036792875818986430654430727159889247043330082069515154876339111015341690751505426073845847279553318301302212521852373530609484790914467134759950511418133244773751710212617340643471459270859042454480641857450718850145409809378815096866025126782860067228183745836117021526900937258578574034537382207226755314707507662804013630512024992601511857748146563032352639182087228263725920390590458695774593464588890117408341702262707379632318065551365295094826275231864076839521910354746455958099445885297442960916692473698028566273977414653827331025431718323525678498661136553500500553823881775313916800245605005686776740287135159015535418184937990728389755130056790677929420502776141715045294455037136430458951093088193767690333531107326895240489266311254640097620726921777664544667329759534804583619210261952449472742654110405954069113137732329611278374690288095335989649980619073908515968554553066118037992639674364375577678577369329798476260889326022923038248012864309902615390452759231292771104025996403194230992215684947040429164680137133800661350782249904707628131110560883533626225067199318873825703917764350393492367398830448884842154552188907545503700245157206793455716158460064387199132534034672623861408247393435262052846036009610673987735378516377479284290506806038208578942283396645172110026038648518005293601497518839359388642438923226617361101841626195386379785932778432537187905152821911384752668368067755302849152888622392736156569443765744535410553303237594382413121082588179798931739715922702626954941207789805668969737266023873155742926795983737627491254416132826190946486445885935078726863582151503076386643819481758056927805310812889052432525233027748929632941820058263269178787415008686114096257695910557532920169422185493388088213872020542752133088064139620421800340588297018257292698349697340168574093416485083501533202646866474470814041577694254261581334686271976790083111286196360002023516861595497218962283041974977238681170447068530869466203336099192666722112201119448968224815124047307761509008946432572442111501400319603636788100607936532263772437569873397293401792057671333718501790248529592343096551196143145533497471205666144789732054455854451249700381186891785953266332908530578642148139645644672823988390571210852264448340011914812671581913160297243173473133213226801385104825011455084466969853063289764114793046035494276349769016323193817445909489118226308417124792346500731897950832029521692856081344395551518049183568731275791862410612716863353312222918625638551080842026018881851985471046910775920656075594292193877635077217621880156136293292718255490952316583656294071917764443646820823487259480541488053721370735176642685102504055415345136712793901285095567165479825875697021526321534989453734182981724620849894341343247322540337239840113372424901058356459456439510753162338922529621658754046801950876264725836986436112708778457831048580929561914332005954121820872475818906439190691227835040449337072833056421035834247104201733526356331353155228663784785753845163113833040452980938277176843042459729407899002140615466083970891909129019984798313137156017239327390551314247096409960842140156507019270188676266932917252374047983521073772279570985010822918040587390036571098708893490267913497643375977967274939977262807690260047902341044743062655522545585216601214664423419302730146651676482657095262361814774431905722773962394685050521901042447485378590274252974476608537858456100134528341921502159705461955866810429369544565115102314829959702068249002993030252754732066303737387312955234084846525095459494219087273304209005468231911110464355341160890312704407900023831458941900525190209094153994213433892512205926200438863337537321608931892304094546097060943760710304474464643007521476410192783909854872978922801062579596844349913741402665634533398803584665698285755571050387963891823845346826372279624384572769585112064204698828697676503747298144685912934522412749480332885866311848748857178920643417452740849501944672798169800211473008812141856300738236210679215098200031089085027980550692343585994478944356982610604000377393339856266216846650249742540455295997364588129484151691837347090018929921982476206338779737899455164775857740011261642591979633697260215761240664858777495583543984866405815889246464993042109128134010736252475275894171899511793656139008384358460516440524620288971201679403874066163142657428508515090149344214295547644326198057128193437670381354607649969178704539904985361825376553631442203300526456498629845037432222076146885243383412699151029468500995528729172727042568258471133045420388304359633024608513115628581882710338956565871976118413938511044261060429284375269263264603078468021754520137512432141623686762592155041592957466780802488127782754085839174885314439663574471106542861477193408668257069461793146398980489588483270367385693603285422223942898196518979119343493176569691449803651285735914034534631772344854872585675269888814738148602305096265878159223985727495063888427395261967327174234898007828704924679964149130564463958179561801251778912835714377095499462576535184333452096876472447685812003348543830065298830812295844427765174320302441830867543603548139950520543752473326826773014436678626805177051731006168824939325962836871528171028198760929849111837507315441991986826215118217986276075392367164251846808608925783339928994321884657127484398957351184406793539722959725174380794049128848743452441048662120216790455052244174883427087282011365213849110984182933008097883943677235630265804072543985522996899549010249759678926585843025661646429450785780408882443693149619174819058435497360022410141146075237001423195421594241547566992849371455588408511489196119571039278689015537871006484059906184844806431788310838955931990530264476344260749504771239162616532012843563402558045235970436504868288682243039356607923994135309137090513189362347412427011296008629737948926222176634639864052664378127297508927287909406308610050399269814043359591408558306044024501448925410117096510160943377948716740453519873291510868348075019098972746710153040436202044507460083299666312888591154063243239226968288437346088243095491749054897089401827050261550038138903523295036914240830209416789574225191696697964099323467916593024296342642483843678618270711464345773035638751847556180635905727835839203978489783006953468546340610730162801404747042727630571639630714134067086521766033274824207740480740228699002081907794599041873581640885498953990527549524054734874704058512747368635439788926391523377681619439017943081805076645693391751869175691439812823581769615764829465525387809143783154513242667070715816623078280415941597854057942038708161596182207847313624119845218665460160556188293599673198155260855247693291244132862219332639279186504992918683365367735231373947741150089593515134198913623239975083751490522910671948225777425425954736805917994721599291711412538994689415258725088818745471970518251261557645483829037670883515007163805806199318181954881932162879387678719269315612628145156364003495200101437442586485522145987900189403969321146651732312734911475739030095106991444118168958268488059810602254569261881409834747505847606211410344943742977444568711895966076533788983596224955608108602001381645774981797711379055902473304441309743383184469466379962818714494854837818671407032908274446874418630217417881639645081529588337013157994981926076654224967009395318204249171509306083882858631059247946140397450678626696363580814884001033855625485931702182860729735475078280632196900019938635849391256325825696095863201339780902504206501771359108307692002874982654377712427161516466241396249482320144449342251023062694601851435641251652952833521553217011084226185376781454548173296443548842809348368088381533109833726688378905709786153582633943743344117571743561017988554993236698689738693069822670316514251945866234757817999269325076999076415294816568203249730115473886426486600874267101695144478076327688942817132473323064906525079144539717770734868150894892074287038755953390715178789699422965267325718473742850136478776125255526032455406590528678428838833381276134130862449418739941080375304727819460778684253962481785468917085660780090869746576563425550753897227195770283093066960871517922870204362424626518123004017874879097323097178591482153667800751328474502685662069105580636216415602259351551806154424090879479586140266123588911231462974094962039891244568680029682522146123750489973381144902199735714929641373008732670027392723745423216056726441755883901664326204079854419226010426291957551076595443785108637265896395770469663687732639097598909823922951002673221022265068880042717606537624897449871958893011802613075730869833258437704872489852665296118472603134511214747853739372974805136840162015266172573367295570376177436267602033579208680980751822586840143842479289278481910408343144230811026768135730219581414841314766754443371636324922486331874214437352998199736537588669408637216046953355351913881741836161184953294208257500797092070734559104298804766860669349953959614092150455125314031144067248956711484883139526865878594680241694011000444808499006961368887574478674014625478287389965318560614723032655934147216193121215746847461538580588925803495280810029165859780237817465512687822749400922837761377183419081042122954605904363406819557648119079524399852827217604596406682335909701850404649736546379157100286724751315539896413623130587509812576865474565611772030938023478279605019674523451354625447247999051501380024627902843784655586979419252755297592941573234279065705101904403870256087262267211134964536719697422378646427213290491024905667016453917365397410955866247444345133453723175878725123120263449333681261040887494854857930814144006913743763663768038832969380502426097531942735527898744849720057901742099661385677408436036539565265002008211538186411458632657702593064191907695197981498443610268315973638306044883186871270575765365772479746533033615659663108054628752245174900742007902784628502858740275649398285762604154441183203314174459204701426761584371408761387497070870031379113278444478858133781281711317056820776156391477218895331524878518077937591537822670422891525493347095322984026430495674390015871930262902751091632194343932328314213638965225165463954601715064868985521942502738308303403937140966946621806053065934605150566604464420503645608995753847157421300292484625233254293970159291894619192724207603474529579872747425367895383309064906233387951595472064812562488737144615065320151266068902423864204139220565671427682893575582289514296029773669447852779878458760354421169872468838596534509965576677351785321155189707644995611242963848506332975625226822298435885349918324805332321929077361308325568622132846616413594092326658750882082646589655310511552814848603430264860837082855137130217261656792171094396169985071736273448490355387823439502714570004715406568194212452083108462809642326077988714600308095273458527424807446119262230561981729242022996606285910988040351397403680429383468277810022216331657173298960299651501863208034974309283873834499044053540872409178951028768923485894265324990915049460921833047202695578274348535701457212970713791609262417670073201906308326866889357682272222179484308643115728657769681311396596083130282228454524348516933233754681612643891636332873986743764515113100176063459774641660665408748952942940987599933737303745772079409962178164817512957728455884223400209405070929898646975733489283519460649345469370231920837294193377080021954850378332298689773391675206809470815033293208726069690446000233048753470085589871899589859748213039033391422189778420796907983816303676154807815877170781382190034177050470186617974030118459658585232486533841610411434681399832205375879515600624085116736228310756355627754711985871317655707843569761201442130941955316656383992422115262455732291549033213518626600314608736169615122967937208869010622758802507899914212217440257776077445020096999410448380099241687267443107894411779720763747837651320014500796909801917960126077172336807846664526215900892333106348142443409477948058765778719214449277903016024764489784278472721976394627885417226475863582289118219334365569555763942617446008781931463728655496130284130962729154856286098537773379232658931052126387701372016638629827056595079403997485350443530816555225242843384922304990852399667119526552325365511923194235718263828021352618669106887378325167655682445975962534230277001804015286898035563811185462026796121407556551403957084194476334711661906188243448877611643768214281818029936980284984821965310793803892657987462735882682862059835834950270503668263956182092476588185366014924794809166425435222664895837848350743670216795166608466767185666570853144655467808937476010699893262459035522032772203473551970535754553378818206379686544687926955652891403721086563505158206896157098096822730230426181150222430483439990852084338596820264220002864392388888123802451982713595905391607175717403884531131907777776608138251035637462319061996742897933741429816445649185512745757457284625314754856537272108927656379804119128352624189185982606273922322681390708365848621010676993433925561278163288462586583214568387437446243790275056806632278040272656333654629842532649405539269878385936535911956629349408159915218831370689982923101482922646315926217144963451534841924320914204645025681832354428899702388253135483235499600897402053223643017558469782244639510057117475001702279220077811491486037048997165891561630510189287251513518913382856382225029259107628963145786322969525360134906499632230148058630482142064580035602660522226694363602229316773534032364087533424437482013152689262475458318939567906948878256356238877307361262746270824413038823228786061348387973734094097756458417504841311893240844686891000880215508846916907212094696699373363829722635394125333407892943861319629293410020089874884291414948455463687107799423186925847216274578266923545966845160295240776936860199604530024525008515468561003631147984986644665639205498882456712570141327414201335864750585430282973257652194238819980042864274629849475038253778874542368481147657541412434045213259255353431652131800104526443029018006893630396161953405651473828223674556725931064697047883275992195278704151376200513858312068379495516421766276864497596349000383892244412518959481370369464213138751719185455306082806161294686188748238166967285124027665668226416153989548933479950761152477201305372677878443674113356476660609264610959077470910573686781997612573046139158485474189538851210563559644640184736414912799193012697503492334334893518609986924563219316305637504747969064682794839827752609189040228916432988566000006873422243130583970636009876343487466899517520686547681420018640077698739978561885554880271831068701033236578784726239779315880968227136081751886777708646310604745683304862239166108686531226457849675411108020995884556325881169907967944145951368540846777489061784320892405997164947648693232483231811287243053792297219201907756291674056904328355410579479951744363378766948051659852316934587924288813424887139037767822890034774918934158402022185177064804544938385278945780707383553119154013336412144883873519187341702623972311334849147163622480822238885066403574641300746809742679022126972464793424771709207362122601180002286632644266899724230291515307738292838218313498644503473248467469595783748394020434216812270454470881951488675935838575960901586353691118885650212848347340103532974360746806290723465920935693865321300144060407716413939038153081696718113701491585279881242211360754655200961458622452175358394887828368976068108503884348424067114946609463114563862739956070146256115414268659887760254331831368809685611707367557283282738516335040946306837400304537803628569646630978042420092375576819060603121233036732114893000826378094411919921102395377261994836272122485175069047672912176528248955024493634278871397127488071282602675050288013153665710744350835227098738105732894258545764210432831698755073110253873594580000082202975435219718861864703730751156663110349476467121706467571369849926381232710137583312704348997033890863843961322282865171768419626545389182352866867462718225790869520732982726994511219434277766470591111999662107188579919481597428610072624477946633742633041392558728018392958842735301159666846663903370120353625947588334330933694373954602569522374371697075666316631405967617052372698015520354360040769274595189668497887125026492450615174633930153290510377064682199312720077054827547554188700623017854656703376608190059609543899932239475605324250188424183826000795399353763438904831798789776972969065095580628453269900040755531060780529156565558254953718699677523022190796060609055610754533106262774021094040722726743466981021641182035039598954932567574456008543266571427879248531563523996242323164045474247680021358220397063003354775572450881501090733981459084331297300084111843623611780410214165636622278307449752072160971856965219175896773140050807639313269735190382169918687450206225587588292697535157975214533812515462521939857429795743520627446429275761717157671238834242813467192719257911236087475555760158276452065585426514506964353735641631496363365453796228867163903033638894309476834142901578624676269848152680779722889267406498463005413956439518858398447655734122768842911726423433336593947248413567805856987965617280661976585817808280233406565701769877202058988104667210669056824628853945309652812533609155937693840813991362001286652399247258536287567438710764027898084478434311114319713127075961472663738514154685476236849581460714251623464743900245043232889760495210612037076728583671167811638499667406976322771469355660380915575032800854688911051987867131041800708157278508468746937465314368024459591094214736326618689604266616178420844549067074371630730512081826115691905286431866319629664397454456350956736741121302344407047661980079085730791687635189575034668884017999840268116759549990617628777886473923273833000098876470934025825623962840458169949620282354389616806144931783035974435603147757391746081902852153313319869158289495345356797434653068632777768737795433521332993342934232796366931080618050495295791742403137348352924389459918831156823859505850441756055144619660442763887736482350331336984795578054866867796660856593706371926145362581271396417904111252685051292978501240360600154785815068448684967134879634573118000330319496390297010888353805746145232984407969334763691844430203621922919483104380811765480463665769772953331218062230191793100165688359728944534165737492067449391240827563698171577838260436841739020141388240264890646469581307101534843274253821841212275422572052283123163355863831565512820870623821338181312418506122914604559929279498049448423415899163120118797887494538134571252889730736709965267554702829430553779863241739486825625997985595618120965826787740864487835540992559670583024543172000047230757760420781172207768047734857957821783449592578084200438993228601333383834859063388455346088147221964892983138962776621034610831505350761573672078935165323624317564005916598953282105598725234937544257959872434996563028045744701953296441297792068606153613198806617352864110146899754597398755359157846202329965603082476574029861144833261415357572939509458395948419949062946596875070300812082148500253001420106191697876302185251050007744137742767442628861676363818535338779724249197597018558044902509656590142408047779856196272834880138674095426973609848275665524559776980494102249818987400889313736076691557241779197279154602916235952274400768306743816314084212560298150996607671352199707067926359670916793092190750694232725398717175469920995151113125157993273375172437998513659893660546840783542212086314270170461021181304588544676367765041000795186684117287145436108223899744548348355361856496031774455239447376654464519007504638513602423353490012467147302122075848709707004487610367442077019600314921170078098483699916515481689169553859220407676287553244887224165151469298063477234461214489786741791925889941190580236488712584079563379987951820738461105357823198110538676667532624003013271493139189970619567211241917478581774106826183076171006312192117155135466215666148010629167878040134971758635783877644033478793781854256584491052987794265265776541666786329119890457362502239939268818518420148090311418389466673732755262936407081214102448783000353413183577327176977415253925736338959753491730209094423992235474945141699426974826182024997536721278213625497260919333831494098371072726956622504816781156499646473767105855451758084088297262468842533532875002807083690068826752487464567835332597786020101617517371846237802565221894817048920300894606038550420345355113438264258585645344044273553671801718638566650486287192950751782013052813011081057275552302621095587098042117332040684805090954048516562962478777632223865785574911783133620319273106792837778146535325305150901477156927296422528057558266689832384458511159686811393374538984730828855571617359856791264881665589214252406776223546628052674054895799324172694448754070639104638665740596369546133821180985081317480351444171071987577172389399146128869683999527597079949922002872551945136119466811087526162936766939546545808880918170139488967825055414844834888697537224649809674816888559680094204934643261107564692376225138140984131750716197169583947861184992348037140927946578574215764480553151285037676640713631161486494515978924841420946024642428180448575353980226547886819581082527237540844087303759414256811352881380152077890259084126966181599061153719311291875496256750576431008277124772402200874323739558789705295227021870479318124165597165691313897341767604366890543799132365570978027948274896144381809885000699519453383733184943563842749508409044968043349631310437254067229370120942583181953115802032337735159927449780440550469077193749746792828671750243482422496466513887494911634335875154535230774702613749288866321537975182353491241179999314662512849731382791082576038391771346776268228030906265098611060223136523134623983506077909529756817878709439690765223585852425981104948290423638492451372838782983772162344533764686246282568211245714081357005185145677718660619570829133666127807070848555466568200166547572354441783512436159550038320110148967226291847619350017482794393161856887133317239214327427617695347370644298597399194243376145804817184514254044070297654624412422758871575901249835658803263198885401300342502779941660069091876144206873405954531254915888830561688304309998061246225953113115158009186181056196084860157263905806971775492631197903090311122076128433955888283837945841221857951691774027015225381462756464717974822043856249152013543276796366882777548246148404395525531024112897564485554743233286114352020254269434263418575923701261944590912238070235918927198318052073093145155227638611295260798038652484094035022135607379290804373689055509158933986754540997343827801559222549554070357038690582510325023968409893529985191394348692845690103485593653342285371903136382934855179350489697568130530283469701265808132315481304641159743538482921946289597570222185820959788684198631574555056226392803036454551410525858517375523604497665621091498185172830050855203013800939790101250816278319034989780102896381373706279902678910760157015153419949059457202678835344854742736651726166634595764150793391878189043687111099019569090310172545649327152770000423289061011324153869674431776057032406099648307499625752631863098874147826173105342769101856838984228501102000255280299092255062273166666657250929393070901216776557120671400174134137971562047193667024174810767298132891363991717276912384940076535228243948008748322602466558058395779821369384758734942625678934759558751821755026590526737820532020278507513838270650404204704140948159075687289457773640617511286941831444269410963538833519343339768269437641297135863124661629548762593365668131326822939895204385630758955330758339233783749008459395583524468253292154354734452057295018200792915649440356182391220996370131451381560142314594496284665876730390723839261862596511574607283665715598806548924658818582078016433988893717281291393852869123589951123015522813093230870539838996157505905145911577016662087357125763126429607304646642851619249416306956721364887609020798652725417773564051922657248295335494393177973239232547391231858101674032611295980774594279985823856894217158704447982395937035959068200252526549459442125352703545175133864324470010068633756465812271231896821895597793213692199880967201770444227505765006367215683330831734387762059118627027551579732748950288725334840313039935333583268212444255015350557523731366004052779031301585557253127599590601985540769929232751169321201260120703292431105213986002203922037476986130196550215131995106277046009012108617253747618195361622636072584421508061959485181754551560895207179663985707947492259986346022207330213100492693525435432023333744279992375538448470258172131680027367344182324437810149287629145692362511173613622217941690810319051407306101479059851318286285158318138387671590305070620438456480575519630584914262896723844693774899508513376712554565264003395124502650206173559796831839956605587860480656850681886550311543690198892687269552260311515178378269615479412652501709956067077600456525730529284170643298663396057189764640006028633204093424988516843960193216393829564034807942331162261463113797013233390935415921708373327650650277287208706228638190693355667737578749159670312278572547524914551993622939394505243798690064760666050727141914581002700584391439091282242634371073140022121255336807007385776551470376444374953777611898086960839915198365602010989892660788568898506755573280945342475454395142391340631218575201493549465039908897133478669951396952109064497068431263171419809758498406360654432877061047476593016214681137896502544290008898469817702885613239661547582639345334414648661120805410934071396632336848332417226679676374419131176969806236891001116990629751987458626559663962718824391562499029210592255849773537635889004264596830748405915689432061651727181277668639519280631842548621327854828232679159456219990924931880711897246808705812984045800636090341989341810320930571791500433324571523769243704841484237851201465366770706424130206099421377191894130001421498812239892045094660114850525202583576586279520854039263987172493616633256793634969472517114084462267875801318429476249004560493090248899441677792355169690265034679820815158474603069879855217483231509089910168745362775057568812614295369482995816704189126069000170899852340628775815019385782064220388251196626718911351299115399409661175947830725402463725377028493949158561048425086994720922023821536791569315644329968883716409689646123792301395219774837847761396791697700829544951243206483510766531004291401213516577340699137092744188855906473959672668258205574865860805929899353887060595917239563911273985961370098347981776817758754547397629925067855386784036429072653540727504760923369174872679661736310988662535374222521978912588990796094014624429461064579685741780770730007082216054026041356849868417531799443961860753824391170804609377187142634041015290255401257290383199567659517194874473000703336571554071815733940498057145935069983140492859930494118475883457611161396041936269305380434340981578221120211679113747730962941526773026692703073290194219910270389960771060818071625599929423777626130084773532288262614313297036442108500443650264032259491127495132098920304239772293894178595357842404842330157559816274933140235407664166861082746421237936083758579329534385506193764386632318340918408092216957614645271694999295999814460612811569500078809736316420702169655848614299582965798292388165094177955318505301848033886344935343627212902856271246612785451583966279116761486295755670569120244620186855350180114023368941243697401691969871195316314181011248477190337752439862537735960444503503201798931434044189144303221214370448738199088547694502518202849502757642884742277855339034896205927992254675781646404193077150307187560373403853116425386531580086795352951993307737645681424605527314671500345966415842506750420434143484287781017785667134253179818214560156385424421708868704899334474717066823153789854342306646339736017737550892312682380577092966248242405739744728585561687066983218793648850181048329760307356379308818245143621858667807081316059675175055261531034286304901708157859822569675065677115635657742543437219061466933799360016418334620360343678976657581328263280688250240999427246071187089732991453274309577072562809535858218228893233907082774337457258088093035013272441020414515313757107659788426397387102450665829323891012185686600648320220997992413894806893786726602592934269572526305640678103307381374536214209141576399022323745712868938514012841968354671411187022255488422052846757580037463417738900808104916878605448292141477682203676679453152548382970236491639824237765476958401410735946186598782604310944482972156629712037617661729414085637255246228955482190543638139155460157771996110499303277533114535477945230322961458812393489820235191086121781029835192767062774523087027636015787776163030229096972604439847090976184015378142963658108021699740073745990926225466020338965732943584986379148269199655816408486936328071330865094592986849013997185019099019499326966073485416544500603792901503237028233013233121139953429645232233849944300738004956193428647514480698314073870255810139684091024229344893425835759447224775157967808020437595946750865208404312061141352894363671828015741753544769909818588747788923455450873355770934170450230986485451934089555915874170158659885444446990596528407388888776942804837850817265501739653294674558786075207816127771788866520629558256162663007653982405367715565695805348235383903851875414882637155829092575712976941071865844139765278661997624492174486527995433977080582577630235427035223185283890960140826573696152658393520614541919552079224759892892995279333755045534736813320775438710430086425023843900741349520591158297252023849831670543469510943599426150315265010802550138466285608299657991139614517370273197087198542797336971596210397344687395937240232703789109430473590405817999400994315526753068530613856511356722545599767576423075756469706709534899998747333786586720174900077725932417715555768274359084939113903526894052155007363104958610573323650169986421391150784976746153485636065637380955921480193608611386047794972182032752571310880548385910209324545524152560423915923453855755440651101706499413689653788447346919396933481847981930219518805323767167236929449831193696421616662756938042237436079834941579564992113123411834880755750847626320300514600444684568910222751723092347623079233986163427653817910298019211302800418831865785362777248234741014768783103454340038104110449781794258055123023311022396743777827026458923837571015355295764184963291647167933882817394058624179469327674392314917800451928640696357960148840407596853227909632385282926865227142967467468507838747621468695438332164618416657287348296796155141334163772240400016801036703448190388779889936274704069377115348172741886967016103692524281114516407352137815845878496566655896922250593722022403587112719948605660153916820659451737024075833972713876107215696050328142485729670020419180626241612241007467571496602985152077230495629954126510083459078220403621037370411090771742288575963993758403848879560612654936685572869040890189519755621635006946118671222432461431359065467954426849839379781609067907936414435950320984480587307389051051642129749113297369207621727319884257190012963090305286056301039110788158504796985354548918834777962027387004971620212379800469464937351068915112930297591253786738671032399051813539787010027199769247044350937024976339930168592729957437442974833724806025457276438537056350245787594451678625412774863835313170717180571580173747471587107957128275364156386684466049748124599127470235560237133655641110626758739277015662644779028888903481012310289385332692733209095395291707618753548952877750501058015083383329160643786634442111622558985895607181536711500777811763389123248479504006865955213940227327845164523221548229528871672776162954030298404437023990033684204897037025618896108066283356854398636290791803591802176628556166606137877013006530530455297301647152957075377611438134810045433902466341089913613657966811664421838355460686100235861488977079366318693742374217646737663683572866387739865898730617256114486027851338871498235418125579182311238809523917429600144017916031849059138799267880270625423565011684614325558514005972858819176316028188954402172179257577436366270922951171529435262821218206251217834137655498407158980214534213148311583251318158098467575135126935165943184799411475026326328986323749837975137853554829394852316980654494877739770505358562662890496463613674258013558146670046254215657536459429013963775709744521520917755159337534446584878292428973437190357441437701421583287049114242387826562121888021202318082715825527903617108315573611058749106635061396055023483989931400465873374451054163153945810543504933893455586540463799386186307043733135495987958277293969437968331671696962715276562869839890504167572669641278205999902430082312409390461485088501436208173666421986937635410081203851932732905723285660156010510214889300391545836119130093598541036242540970928508657447909721520293740341495274396515603643095873188721614743671366603383078131734913315923130132923667543909541937593396672860631739179134888032896557064138341518423846393235178112948435486291785999424590653329917535762241491787858103890552178282614700430843718956021200821466796341516217717017043539881026759793192382996342061653002395554900333036969411432080528665693951785207571812276153884557897903606411887976086719894645249921274927092374974228768240900880315398917750850282208483122889131802311239369766188954183639638504911769489089132442918926486913694589323610164857041567078519188392497057548341333734377669085130650841976399351289150762800911872691527219547588495830816678355394867812940056211829799707602174798806218068780115851235289792158263882362856352245617885150296031759414101505832240751769403090631417936011409474964234795340026915991933278410136532017628432319303153080171639883646819241692039310727993929614732559460415249400650546954397115047379529855432282379205434803256808560651035756139080362794094899603827396996011349098910950084177259485130285614309462522719150193167589938021900300189463037532086531327088088862888636897614863097386500888332603181966172384960377451128768258023896609142042588495675321422334387081738026079983963301924673418858676519247230924765841742319174546919119233726026145106848944154030038584161454920532161265754446766232681645431516987524208836628460476311300717160590462841423028179988780745401922514962372413055681751675962242074424877077626835902103776918873329532278249956558046913350331569577413964910177595256168128460126848228006526238555330493581054517212233659230331226620240945651968671121489602494678065334318230420950530030752721417285032324479597310351271991282966299881822833874536363232323916865869732305707703130821421109080591945932695944228788305212388525580434578526171145061967620693746418066354851963753544409465423295254603873007383627191762798653316046415483235135173383036991750959035782167093076599556912007926815239393818818143156856925493474748785761139662931260847374206303510027506856800489461877901528246398000857749618777964566743864062415059425575855388907372279336318760641189886687182586232423956049310501708131871038365297905917392451575393691056744268526324218611568760045802278324188891025637027093503152567906421012976072449171658338846814775391450898923470156686615667105752369329557810228674578629937323389633650035897624831167498934904995799340117156205651724725992403690929150229038464171414110900292674969329420538470011323852885227307497226247977998468846676183493862431613218502996342413075759389978171355732920053520602792283526260500608807245364608378778076020539008572337004700589426503727421224116788720840283152348170659997364074524612797232401453388704376396176134925385484508948385461043192728707515885630019526755838867253272464844311368331416457537623880258337876352104721050871171580835144747056754494607240914485068570438926023391698832669620353061164542527146175620277664274967869803704430634376983606796976755404202375932097756145006546276363459642414224286729855991466481287723524776658023735906193153517584327974449516673467749638044439730179926750858546171527385843548613705866372792489152789505359472703901472885761033994689141130815398335643969744509572142733579249972271259086801336259279686700943587197738840495008369868485117028537683498861885732007482658694583317113700372284487969023335451134918048877523174731747524638337650954929533424500637513946647163151651552629176401816903271353871749204189859007145410780343685490332650170765017410066213868385064312714981831021481628679049278754663969676192487804083644462508906844808580974567369285766886107219869079027764635743080788736112474984459193643366599309442392744737460966328585324223573269684496582738434639636094897944048067167115965638262317730628796796429335088196974866489698958919990639948030688125677003375974882573490957678572679259445395547466282827737201568870855991170535146677868500361274606373644761055709809100549941817053459538977138842939766499211624816083226734755012969284326098728912050455067315952543001634037024365185609550723647023692476073025013686512128042193153225008818184333690715448316265401373339317346806358239715919038924712427350260503297244777409929877988346943126541545654752294111389567697700160400561817740781229823382918531310916914921677702138026633508266236162841463212984067043592461320863876603809726153880476438875005752390301823268562972477950922393294646977082029894613421000615800681510417207968960989595848389812282489907602991735744780375938344047799024723523920355736179054348186836709853868788855363539652611085406643482711420102809044454184925966962398031721271175914685719854253663441854062770072917988073823948021712854197014432543704112378991822226168975835556353181449176034858558870970302502806661584072941124941546313468955123750082375855917374958032695996423048369886748282708807521174699852201313546294820601184124485997578428335942202530137574853699378794406920673876636630114688280093385555315322662875526404021937854315025983389795840565578715249319723037560635136369753228709091053744133721547534478753861474159103322933974702691721609620726761661609974092695662951790128325900379395867243343145858620868498117342868340686871314087521997258815122404719228173526484004453905588134080933360265113596910668992363434336289284858426533830664958698350524048093700237958009032012640255955660151791333375755953705240576580793936353373497834466900869813706972112815497397550577567411530671939485627359643128700146475353946072859717763980065974343616307329049069762207879939328082032922445657250309568812973936279809454976913458098497101591242702703154314408540878020357799988875557684596149083168886820496801747191044144737969877890894355589292550858889852075733853948155776425418632447106656575998249644220096146556911328283899149251528738738313219514034479494236739760059831677086732742356337411449398341452199377480660968706303030867984172437876799275665126757949295545775059818971237518284472547917276283498821998519175724969200507141622214091855076017093861891962782385540465231110728039836243813825915232709967810127758904690971726484163701443449107255540890622011762028418784211045489529680498883630935989056500348964544494184199463869937570187778992853059428044930005205547337256448283988625404054225121277603637305862024522399178703149712560317460156589139672664577335785501922823265309073450443285523299118595515033437040076801892633648949220472519629572488184582272102100936884268723875625371512890978026026444440596606593580848549870012680209072091477698255414478353777278160591599384049604967413290055917379248245532009354695446095631011536646397415355667872744991151544138305377312387186763449025183151065963770284036905142229913853842846206657588345912093333413127348197232705401850890056696309831263939393142121927135366478530815083450513822248923070549198983986181991783899517677511469305130455128566202329478153491735919279936920585006734832581539193262941025714597398705733006052263527083553800805433442509541917284700338251551344252346162863736869699065105193030336422084508688201813162367312252460566459969099437761985288734887346192777607870130595396341099186093285864166704023384224479859037178681397149874709576408405295792542459046736156909206842502705239064809539745940236733009752018429122388917756893762334200016593490095454220545801008756633241084148243729993915574954426389759495971151666164143968990137739688481996249236696147987098145023965699686972424945859899125514060257153629409758390382788529634851973630750169962629372754794572153852278319633455923168475842842752383655659303744553514483181008419309244591049552118350683231308219285823675953035425864814335027470362471381399682659137536863082052734964710995178929613283641743961053443110595802072279104236938359219825737777945236634041920684289921992670656041618308453343932113493206508252035467588656374996616064545964429502124891293788956774752627421215806251164343234827886941962146116827027966431351395512892496546575808272824925715373695273001144179240723005215988559313460613759702504114961846753565498924169445307997544406927496912987685724592685482247472782240423580070983611601060354701291483635788766355806144930560147796030464770302671608203459501505946738990443430675432109119489524427789398788824030176573813203449462608482710057163484840973270721718733632401764123922621893360455294628812489523500890202048659585960203325516143352915470220326448458641297102332068649145113344717766898429798845272442127850917608455950394971395447075868178881141562573071909450692145152917672600747884142579286845492197162627670160508307649065278762146343310302598751974830436784502832714766479622863806058107940579137352404300863796914308094843259971669229329765276750450692951387134359798004519111478594038246902063824908587389265129890678139380686341639624423585736860561008234931616234909029265669503171594894610725858950902286474380813110792647143457378379830355974167104197397282767329514921343239048983014174802406052812309407413921094394303046233680166145960886064197315495727629685068853558822248373581160475154704743450396994767200940050140547795819744324114098866111575231361730808138978917215115491104423652587401046981446947912038227271815701429365509302411002509337305586410488254976889913517623118860152319814972879464459769178888788725198890377949216456026294687681584771011647187062214630141165242160619783937838300057209573042813952291994507099606815188620554033828947981325957669404362836025341943361737678998281040584136598388775630353047235960388214334758381908334313868534272972005334117194093247439950712366648646642240724613694575530965292972710432064182680400646545597822056032548342761846706176322553171321084919809126972763729628248723819616117913030447676210788704991959027869990514255070737221820157489925883465266460377768635715202687449531908169063085944791914806950674120840145141815335582664776984105509865935649111859088489099031619356773398561271087115879159941348219234515520975664063095690694755792597787192062324741693215221385416475543269558601780872590980338339367244214807033048617872043051651834942106000096750227825008400726465039788157792792107594975168112836639865336759238313151552890189748404205781540304248245677066861539405008384630582739146592014818834839331635988375573105850872994057079795033418325074878303260261255515638386745974857357506604414584262535467166723916330428130878211618709393443594308845797436339101880935101659894752295166110962434238610054606587865395812683089540686162594711535006850495531669314393421119968789031169099253267657652142003857191697515354923408407578931301830284842508305269263921462888920912174162710030057236232209159777468575002776029112726928161164582779526635725672426384639093399296187987954790712485032717066763848805192320064168073014725148515994550090696043283932102498466717294394521079923061251545895536963725643007919513440373701626188012061168726584094931218447169248098795016541456060760934776589352313355573406580506852354472730023105117484393665416776255146668043076270749327418823357553027044631728841821048955532128996547997098360813002416743221041168309895912335150369292796914792141582331831882093489506267163682862215931083615476619477814792007992256987745555234556164609456040461262447697083699087123090591011473047585383885075581717903790837569513646311033389113670505216969778396999680629304276372215708463474080715439706645082402380233242111882010268159265229057799962701148296028907778584469872548583109305242011813178008465059765468096743812115604164806797629324554721657045074519906417315524358859617947381441383911110713525241176443325210534244291778177745599475509261874553836907934331075494726583143808222742010869440362798392983844270995247014033391713906284481148156537168977482959390635594141169577969628767476548811921059490260715231553329954163455684169387964268429975077472522638298478468304456547401438730094082364782737666437375240943455171069723893611207898236155495893918357473594121021947163335570870820458411694826190535054921304650879458557900219172575837461661902741560259332754851416261373971215610167374348882379243046816570512008263317431637383946270389626525327140677814542554338849972724357329443925016788779248176720808743369996027047286881174309042349578638705772059402231472083904923522301495122408201096827110252325721949640432505636162452734766446758739564889110884750075386195492120675126143684089007533951103617949655829288426240665925768095916793055986128957832896897049817123394743180235049308216717532708190639680976186621959552442403768236258699313295358147929023840286288303273319672418488634107056442304278276713057775587649003288779431843616529611968886330283419292587675581778444659542442363115066571831232218865896933446927695823328476094973758893555608529283362477480379131947203666795057926265373465087924714420900323615277259302217561987905264301003955986837912727006205353674217113472586435391226504910603545779678012724663605735288973712015937818727696231195906280813074750925189921321366979334520932513762032496159092347615125117841195424856327968038096735004122194476756438038371453026224951395548709456623638031617994425347262012433727786199112092336863570121329042043808668122151411983928104751708706145180145870561361520941764572269814423130681585164814218077945062796925712701027662210595445600628779661668678423863346416442313969704789041743135859562470629497956072099397443235979894662057451134264609460859994980613705423995032828435255507807033399798338976105898359428948981802761722333590783993286293897022859326533987283151314909526303038312172081018076333456262142910727581269964959124519642993859636938193438567077859885555501384925631677840847468303290501330948680682445982022644377959832793961405540453560806157693256950024902662137440244343176339657419359926277705406310391186697673379713069133032536796727169075764278487961159224663266160107774503160323762072562311182858611241939707007025673795535988063086906119101174940382567652630298768460460570252714160533071444942189700090222941920439516302821523650293395103579209994785630441196689081735683926946100770330196893198183137971621004954124065417650391302547822375820112348104132575732725181758873650684512279053201251445927875127092978391955650373687048971572194257677794560254065200770797038534573342798389223967040427056028149882710072472080250981975837760107853989913473783948837173859482760016539845699495786629438918262623171601435309525137294608739358724091105665342560447393046971488827474863120579759437912038517450525370901164562701356003928257013208340783586709869727468836200660436818192229119786746017942546420452155488101332917280786039832897018559961150832398929986256271935049178491820591343792580509366966210857879737420862392934827993001646067071799578831296285111950937091445626680062490517578458841986841256732189976835783722668492165071734937924190827774184617797009520345816758783507464965897945392602226781307889463434121417469532677038376181681296915662536572678240776128573651429825010882918076249096232841539000638809790317450297263294063359883691678274078092418594015905077709532870968740661104888605733161649820017421988493223794920011251858332416176611255821823432868592038934898937142471501852778684020789411418351372956359376403987504983703104443812563742224838891265150445035146830762302175006876225418467436023374628113324453963432193046917974407543099310533758675670680958970535514738713558160338911152246865930466225172980549348160471519925899948247241093085294045769449576660517177960316605219596394362772549722841895549066465899950380166685312980983569902876445807871984454320026401913301663608842835953857952855495304988499920049978820469820058867595743881494690743916717441752960922585005537014273700778916150174183009594851377379450687911013318137914167588195654872995693880558084124050301042887397287031817051225690126199030055766251061518058945350609464073190285683412860729208672095949097334523163036067037429433014085519529852196623042444252765225305149279595804312400553088384290042734207409010591878828408864440223648415729181232257309941010612342007943766465721498883872473816469399042489894423865320411943750610010666557377236549685920242422792230004827341495911839555431636354022310654730064369106593609102594496733374228250215168733634585964583647590760426998162642519949029634088626157546106866308498004967863653688712243810646436174491284282768001958790795235100191497833431136446765506903788335549007315822537697728928316173880462614846530367384668580310534136718710452537333370925613380655105282981004523802633142847795621408273270817875704420300347809914501166884837971893294627524322955259259252576172604121239235830412075545237800496235485363206067921326711804577036579748278348214774014982035324313807213986842190922839392325269926849070777593780605435623881440031489481343198967460562085988408212388009368467792919455205589907422484762914348338449328407105618209722578131058582068991525124279058773613197702529543972998792082576490286256035517141499042774048908462205879884532153287132133631762681681554283407521855438167712169494925567040810907972201850237860153194868942175400906576200629783677358061056518560604156503366609248802238479767055554664218083610690166299010744983652461501092724543328454103342392616462723480789965617884320704884351320137642880508935616296916260506949037119582337259784568871108374579616502463474912564166810973479667594266941585649923131805494542774687714857197416887772993831536423110076734977755460031955731936910974155131770841608599519622009064040772564887798640770246071187501702053397762854962708212031449630338219346866277755795968631786543175585059368709548856612419435025879384843811615807963029958837522006213992233137056202441707012148247049104242731266165402850335346061395387930973185193952581572414161677024334541073001556689684336698607424030558543070007592374433682777494364684537985325513678183807549642892593356934377173047490789108660605401840055331068416821036253145029596829393324640355110192878799738537738234192113647568779203111236890931365323442713264352879262958215523761718572114271042710588460784507005485541591546721346106257282919144559890945781231416209777458838157178286463364705731952140573230334302101977414998900746561803043638650033123122602027680805895634539450496783441158454601260966531666895280545620663837775822487377494784984880604531736691023139799137191204091599804298216271510249937124944210818213365220435695489485543398876010774564859059729548737847052542929419521502261828228263596725784801993843213478500242848187644435331382989762637724773473740676562892323951353502687107160151631404669342197314573816710742248454171683610152865095696777069930936618850939987095989633239586170207440421703667273013242284863293489440094190740370816260286880112239384417381961896613949608794864345600676762017840916865376664788297792895478468941572050189325010212085085893169473370787506908141582921940212398891213640218958539393244234531336255753623122240684246751184410382914206646309586969181267701120963088401766989802698012818892747304731799821706940555784050537812446234352939036508367653052284654163511154800297626192507658330500389990828006949091423416333469476823021774911333560643050559375858331803419855456383785626666195160554488093254762736885646425456568177028961587689193427971736239573659725973738634498101408988949673388111803762533169012025326050368177420900395702103690762256251486882424677102348596708873981694946057023853163980943968838177513685711974728727918372082497384887131577070913541027792196918494944527467149615304889099728674952557067279708594132276623101732972206405473856281329113603648786118019007074909920961653015922128495804981860799675166928593140990864216156628903957154177886002265622842693142223636588874042540674119264259742079357320906512986489028497884616624835124099828161299183748233250264923759854286631475589482845489795227083115417736741710834644571072919242595388331948055681534929144565090064983754782588938561045956851063317173175614798251500317395997918788003885836360712911578285741271332893243109075762337529514363424397630377089193866914481632930086373554564377408926259276510843035066221444905372988894905179371329719614868261564334133202786861332547422638634027721206466130750759080738806925988033672903987795724032676120188280110602441076470641643946528632989024495315817204735795764393232951144045598264004677864822029666285340868890664622998319964961878948275181777477776414234631081980408112872377204645371438190738404044161641914132072978609640161285096708564140842796436434445487704809824757585163905924302913481096471286678283331944851887907764785346419654552646333497907754687272375778770065828233856604452677698816973430203979896640504432624296651736149412510951625923593794709036279217572352613908605385412631395163132093553029910350735539542970963856464030203560199327044756215429666902608759680896368020577124370179966179433487973408733325306461892743955630368123715989287055673372723890340502542011543255392428906833999387269867978449192659634135496950093281120780927862849789497114931134128773913497185117335169566808013196685865461239201989053059043408649389222801750986095561601084621718713480664858380969420477073713390809231833994192163154702796769293842053922965239607138373234511500750371608632320759844306088918942449281022033743666180245702272996207025258488456286411443209936003168655053047751910199856939287225748167542303006779032089034430887858183413592347681456304618852374303222365560857952212369476605507340148728721762456347702564437367321248665042798797822140086457696227097148733799201152742464531825415203289330295020031805636715911646799512202561810024733138147227479601536841443126672786120979757284715262007239274071089660179821350114745185752858791895670322321550879219448625516451993197370688897627464130345104309852176128597856294447663148013648695376175456078654597065481689131831061684831100301123510511643032222661119588960442611246240539387430101148925853915340341352752603642867446321743692885298884685233200690040617329493103869887290294534522011074443964310366865439375770006932381892409581033050573972256602813206434060118584098053511658521123512567633805850146779446904999582495578969863316149342775798382050596000208542966488399052723565362712765004367486643904227221514251358784118335279815654687758922390917036700344101191492835434554257983586954805005500889753121694617686353120965053740969549225482866648090956481819956740094990024179557119433340012038743175513068447992731286699715037006350767900376276110651710574620601255628900254690220693764734080480572381854467219119727756346552029513739700623708244519813895508647015120978458162656726634426641205938666449996469845916525326039908789942224014114771443363108013529691539450075342311140755154279428041310965286231467275872303713553863596398921677437171533957842690948582380859145465324592823810430720350959140894848644696610513749648764771279140759072158848950777041010037968579604836853750867585746524831307248224605681879280451219899393023706372034887234744135900609810120897383962701402450297122178705492683656194985187882102592575764159791243531867378401393996986847689016706981565274462336935969050911824746417625441309313214853430159982380021439813742799801527896417768971853636510053992013462125673114363911215794627897867835226610514863872235959702006407435366790789920677095954063750059726943918064519230670512852564825572296219553406345060415528784126291243850881474851371998339691714592033813867011777445584756724635066364559232628342823591484280744203782994978284280834631745138607933301816541150138078589814740521825371522136578831010917136120608427025483295496057114972541526675422664455895101501755530867577213802719702842892190286335937655884135344998298628614984524710487616103645573203183433591638740293205955883482101045964935994761968483035389177930969332753487183651054446332509909673935503030339969968984573550260021133115154825949875660474430702281872632683955861441718556346719966991620347874914881530766246146529488272546154599770411501125758266750416504608813862006049510811855363554916477331850473805971345362188881008630401141889795002475951031249361144882885918882225301729170360958160363226413363998619955707650703926486648210500562089298281308270097022987827656658690768823465708753965651567696652120299692448242546098070040617983733506269840931599652965194120256156289726296534404569040293918908090254284397177758452808357862914706109237424143800711708450762139940177996171805578020889108502213662259969983593573072982858237427720012101889268685879783573483110798199374498604943001236226934543665105192301091341913826609376042202066908318318457215061274652839801847850677439081181888920153036182638043709206026709107180340068754682283760585371073874636526947034529603701232306505448776069634481975953903195681573565643950698625311264668754204719604568313688209604201788297916642759496875795351142508867631976232791391847067069346647305172017229968075643700195079782614927128230255267068228218977139718918780051750269928443543793406317907234598434793660435133178462536247033005579102115010592674082611868512660417173384667762838455071004949465176238923399000411722190019530024645283716519637112875456407381005790143780514377097885257359160659337719045973529911014998473738511605536574426136564211706316955232293255231593698787817035997907518026930583508990044553903889599058511240796037786601813260207770301955249496658527972216737036507485021462422993359584206236756083041773846276284576671306808766160008880117606870644080777221214626948487886139061691715865696547693416937673906618210457279738332758107133197029017267461932476402068138013369909029365631636132754133643610453508488664508826544592996243763953190437847411334978902079084667913807874128395857372085225658080976633296460394330020739944213055797536578841682473501259996369521136059910271803207508788775507770608054285861492701828626842289341705975228710837605487160288882751461277647892057073618600712378705347339853521342572646715283795793495832678556894003024889894000902272422091165735407250739626810488944256740312640505049104344324550293309153881294721472120309681521354331482955272254535733669844659370796294745854294745679699328671451090628468981787367642104247627763390902076897561785413307879766791074141224665570408480108270599511844596775757525991195013980497594542344281653685375173355698686501421180531592931121181888687976271674947382490844423278594422930514774136083656145675172675094709752589463976049526852996390510590902623923305100058100486877093756278361043470281037070984266243578270811923712911625829956317585127425265089502416921760660469967428966929427594343302684663297451206532610343080298736062891363158651823428740244217031742501299717037081506976978614866950615128121763329694308291657242852206783312032916747565609529964791196164555475734526410234956480005745737208745026375129013683650598459723531896737611821984635535986233784482362399076919313898973941441104030909973043175045869382055073532876951479572246643197210979507895560245357401707431602357994741780115585518972587929368212477941395021328355312247941604638344754373255776209866547063433830787062143561555033319353111961339489936022963339535650185103288172938794014642848871626817637708952982412005333509065562242709785244912864826415849501738506465908505387173130315913864102540093566786381586235515102976050115717958015879500108490365416430627768753689243311702333033321175243519305563754221936895082700041717335701760889402499223395658254121265388791021281502416823717177049948551035389215657848480672728488539219188403343692883017138783293188241745883818351569682380097568702529045240617056745649810681823171098250681214822196378370215319308951985846597931278998166543633667793358002813231523923782266974805208188725993467746314703168241986751713158028060858665139288280890855971489974170828532571188363914760081735798500804922704673932924527286352481536894986712536240493787967047774254190524682158773990537290175654605022081238649104767970961704364301014886650093824884052111388183020525975929616153498892960643251913369307356274143846369231329133669499691483828451766935799814332772374313008592582275284912846587206318426511211540323505915545777994740077523019364672127910680219261041163370332164519320445875973539346068058708651858937215253223636484796145311542730311015041071706745889675943497694490705525564069632260793446343832854321478657851154204193335119624057230550563381776171170771107145235481297681061291600582623318161946474188085294928918956690163068478504363514332860912343519548012423907726118268048210397068927324409823694963610785000554101731327807288800359588612216349587219276052916609708691138776960453424683086711012392779155743660576951865295787513887492442017019693203279615319101817945442954722841816468999280774828530322422484837553628406764147493748937740315178122953692571821662707191042199151933512744225489738753835131922602834203581539612896027247462070393134974486971539307524455637160120453204726246943205202415103565725680575578210336629957100855235714734859180869232002251490950258981124109704472936280202614835774983378614560521766469685137741065389815402519836877253691114012259926394539553646426207341302923826019460132302906673352689315115112099294124752152965870642949101741494504533060107987246772633481881295583625434978298374045933128311740796783179661601500856396781713875315833369573909357739405287889945089433899975246283070088893947927584111342381039136707679832974034134058162435690385527437467489790699927730395507245114726475036604569606887338242131074517843512360861888970842404639374740857422978764918175139567119113108469311461104075903666602261005215031641536448685026114656280698082259511653673643130576295336663493366251670365998003276128707120237787457324080028815665463856585061761510673547490114654420137297572591963009766644768334288643164019458960859156038937180959187378728242307821732950090109445696094076385847661999434095407810825726183530768895475156121697086835231787411851902361377387829251146895842665601359201636026897059787844744807256982414310937313632665799277148034938527010256008788699286960606385111951462216118686064782628652089649136604409521731197267919790257297494539657153996675837721641026763479776190912916636776631457786078171634159827316802654190676215763532547683960871427120349670095747832883222611763483993697255902427972409988679758244132110325159630051324171563854398400306340945675563617195739222817637116530254053474353012520796483957598234051862877881956569673072100486833622268027631135342654701178959783941976934396783502535358144458426619780947629967926666010175477361071491218595461227569616934990321012616942163046025329953288337375875332638765982011271910646869703189762736026325125949980553082429306722444176178457851852000039263409534658166328276570596854754834047270643788324563568125485575726897868491906508919423035014976878653039872887737457901399316148534425917682299788622186510557248769959261297434508963667099956673679462887101561029467955512907161984300789100415774581777001049422425280434175571672238128167658827110798785036509439650350881244370510821955376888964486019622643418781768086244524259050266136282541024505381248097289036212151352197911221434106832497022929690435370022598049108702402910421718615831079876128464699665750522482349526426073199418894539687009607348098535914647340433936057370711426973663764508746740199768479316081215391712567252381140872934164798529239611177838343248983031013105612731173403370518091437997312924499069746236656504140006564570750315326768431173114874155251261040427471809284357592558567704086349924756417948437161050729767250137666829694731191448085544524399661452544048220866635259826575189472978463442560641296274599030800323569716146521699893546220871105469035494727276894171796508096005305406143924795818184036155995550761289676444960924824133474969167988456689963110879213739598580785566775048392172118367609334599136546032763353271376084349019981668376357723340356995344693627756956859851715701737756967585348917161317676550305201251785618636316224925423006095842822124186731341803627757865928278043967591380757478131611858774315834968083328260255916158709723427710997726026195498350112733119481270395170531344467897778084296912240777404182542892278604571724783237801517412364964772803723230859418244766351257585803645992272574008543986986228830629683187462517385203212382221096161601362530081945088762192664936900638593170114567742474019026184558650673776388960812038046826055623286619366833621040709694249344572778823682670814374008482724568439967252909557066778659660478503097361107931658762759337915700736970147616695180411130827719958948556592012289843504569287346443729240531993989080441403502408161456073804286402849069561386543742812770458739104408349946430253660278081252944808890552616931303131038847180555480626768487843873296818613441022985655815340828302727056571199103696242400491435147157943254762978195879975091740530000307632092089786208281387380760601987357338624506273292724119450455710798297335031708517527619891995238301497689621935200591462411472409685804411008677807955518017611800216054934692405540173060582406713585371974063812195622392937123348669301918169331227864298869933364008982752484281060537685462302936111459606628997864784431675330325551192605916747432575745043252479849053724268479619770707261321307963332619514030982681658956054752916487903779125389565121846922382508311986280584015795749095678735628148749248204438206097565905758500173704746648977159677868124593705067661416218018701268780537343769593001830389741584305750423222393230660519250677695198887324145507617758648912616581218580106002981005740423546233003707749994062265052535776578446119859181001474675997152200045790471242220267073301977298784926066842508381246264008453325749358861300951774418246488817854606172889831412526530643078995686071743157503680108348488623003780846583390296780238190307512274886069454917791918658909948229364484144094161704032610863432208209107410004318641145919172836058649451315367542615495899623468848103314271319791822330502307071981512294472288267796603902399951256190607508534290596155521525305894834622723926817648815817370172156585995047927236726037168966271122542908294392453774267525477082821674177127412411412480889813174770476733981225304446353893158680488384345114063817080682721569849425191900162357003096327541529153661201096504152344615503072503424516891118787451897123748393573296647964870387663845859007702847277593675741904106081602674194321046312966476327979534003911862050632182804599464674984617802852752331210955715374681028475351666207469982180906394315264141088485358082687810735723341688983360425883353266980571842464516999788385560619609282048326723126978317656762287583964303712214406832423751972416066205784438709034167563273283881292089629073670380106489564118689482875988221621146542993078516269762794138946720861927533642974779964895401106605667325604052026245429428014031038514933652804222040208410417227783317959993318270405563079665153245137310736850749825883295246351226461355977723107450179880178482455288524372150798408216542087788245551094802030118975506452937729151322046643173756408272783822703463034402645454023158577672556325136255455317012228390868592100991383953072046923989931793819463162521163883198598760553283044970689546890956278427797000586560887427561223059565725698458816171551241700731930521335157879151580516448013188536181950692617983267941654932543667689517649004630233622255313519860628273032018691639240635364470289555826339106696156758407754421365134399563583366688467017196310071112967054982661253108872942194112652808560929589005598910878843222731737859373138757737491272406195865183897767814924145068944180085414971843612236486022998063693952896945751402276523677650946719694872681367001604805749706256510521960091044415547746134183178117784560146839371847969491493331495822689339541667862764817030971044993958729673646388084638872487052682584685017796519300858052877835312207616338153747132753282953365065417082332091677354064824880159757740750718574817098677242855315244902820349274322780222235570496558752263259048110656813592171343204658744700700109541627169442074608790710646958308768869479818829917352961242703381698284516948743973057058489993172538603013919894485635547664273525180052457741680492820938356079196348003362418137134142892015187413183757573100509492422680327555006547533484404622032676092466025226522732036877040539336807425380513384981149833889538662787591135928223507256794357413798719783052791470019302143264135360491750808356711589388642288528056157758143017615196079474177461870342875490507709260329937552759827578165391404913785074846625491098321564293262203196459609614150007280872186955852279612296981413141027087083752840531598726336584465831729799537662623527685353386289160016602791166235468166512898167297501992211003026440703118961179278447312761154756713199050386201919573159366511407955611753945358362295909584631583020639210128395581559598566061355992097769905444189255214879357335655346962795931590849080519376670190050716208640914336312373739478760144039489196813164691980184063691068797487803610369503145386231134804364490336350811983611677541063130371666509584819697467279975718714549754617855025015791930152269884303818847811700911530842723208942201716796515800422495142754561606873611712246862445790525682632236296077828757652445073288390889967918184078626566576920601607863689273405321897191018348686544979440620787057343740104927607864001812710688598595368420566406026983040513113565382004103959534736840956983016250856335474239738114174785917733613571522292164264361331535061772328241054784622557120767787880794735311134187465508410192224027882070123644398543741030944785595617932135156710535633780942850189236339111595683831862084398582457441500336762890664203287474355878362288705411246268350803664431691148642030183433601717253647142270136353433945418637923448613176767992632383564002374728677254723321628831759888480176530067528044619229773524533691666720211328948591582149780744989022953411340056971271555355901864714040189627135362806460036594169896433974177153899473783548800300332062772501430740934366592076148676406983954706516973719848585520122399923627712719580971007392845778066907825210121096059778673219989117680022186935372432132608657090150357622558083979375314974600187127848070490046042827428189351196377948626824139744300884271519763910908442581858923299217145694268533542180500322313027605340742857059709284133488990816423903174405166151889849792536611214744868828447082895363884451132921552871325941526942019039183851183400944841611706600167879836986820263512532744257602665649430201725331650312697141946582922747069605839858634945814408855365431410413916727947474125509697078614992113826670425721034350447026349573928975287758323799173760008379113903685959982080275804280793745372455566717141945554574074057760627971620151449211779763034378766296890839776970227332482863467497482554969397204299816389013476533825172754836216550879324006774743306085008184201209970368651428328551853807053049357238409030331936079730512750899532504036355975766764918957529620550363706590995504341730611207193261029084022668735064149530391639210982278159426524469136411619409666384387702857552190345853171470542668546746348584545266867844441494264148757590948401543732118973699927489491695911542115140861718354501354216526482302820097405675071785335154776777481302051096282856804409928543555545192814317874171751247586096032720684035859064463104391801910831906639361187031848747266479416369076177136184620671278971215145270040105995106183766527064561764419638968340058337553879467335437225972033338257861471719835339353428940646733823162146634074307584283485169763885743728864434956733869070324136193932044959410708480700633948956291785488545085052754255368271533185523967842023884178319549615635479451055923018112912481825246073266635890626532488577037497505341222049423536194699333302563232804316293761052068466292228503753892966816499602532951810035678423058038181631273282103151294346088165012517939644664007408734420988141622557381507526446235042428362932717988282360042404843418232173757302481969830868241197569588754893367186344534897924807065202493762576468131546266918072940653725009348771954603405431856591499673788510377843022619010440972443451455088134915400943787436407839424924766247279257500689994275414219788276885510421366183673778466770045357986760071167831356705116712127910049968623859108376864488737938744362424703266377197946660505789645995107836456413850522203410926640695904121734524668878810598391027389525670599675489797828837746883082599918458776969060524913802837640175573507021458871366818999072502801140885787407986556169604951479981719478481366112677162555814236293116299561844697168773042567604979753515193816197927153794621865680738388363259705546507078418033803125782740002079683117168279748832472078409621525853284914202221896837822769969406125175705109242308834329051096841370892695756396005218281126769241705388238769411163753603476472331181303604897608949928253498948897309670364445770578759205988275351746016809899583620486996950500291808823448651616991588918729943211572203752754858924941562555230327938235621180896189937997249290962965991711364416331331987402120353852812182276249259676421074359927913764217942042935141203498601869421742908716437002480947478001511620735448997176485671961893006560700545036236046062733817158887477801439574742745917788489415285502323574433260068962416823891500918780053962054649238360913354790325391639296492345787551299424969412055965925535857509091567912095705568968874749431689759739324139502338787877739117580864780271598398398064774071814565474685713747541642579794708696895831348755693336608976039474295275958301441624709275426071063810861685912182480700432902227607206372721674572516444101823761912610003783905556939346166257591364183900626045501793540727291258829885406068207994119056503378329245961243614578043344229327222551996011005763730624151138083297725362734219300620510708039539982945187236977599597573284798636717870928025648105740703957986395891947715600547037763651051389715395675284685892649577337683599566353739747106532076171304835029977498754400104663424963042191112254529735743186342232010222516250965806018637923105724454861912790538748864732525156268388587913279751847589677738342976940980120814255731658975055157833903084686214978243270199359526575084204203373236713373878312174694055558874542587302825765583781030512565932209075267806384175190527831520120274714657205005975363487102744996593487972307506356866960698825327925758232170409730114988685138159364230382174980942585334449528776085252439723377526238730462990086467589620945168381926748094910507966231973796103008976182333292170210457397569424075070806839006706684193469935403604359096762652267844195064422736056481574595116747815863571792088743945665074556655492075752066729123843351351038901815115777845509123075953840991320815768071744143653437511083862585174763529389861140594488962440549216922997002806598153981451325850149911442740239850310948988481102507182847902967048235184901727286583298403865407530858149820609498403156680328002894810966279982802771123090641449663689446252090661537838919212374099221332917864952360651183889497590127125132658854829367309795977234597034329517098086056292394495124296912412103167817435010444018954316599932368414897488535531254486607995451671346759353527162594185676101268072008707694267276152262894236532148990431495918324214164878886007428856044191016881847208308350257143660748279228007696497393250799389777875678619826843741929245703471592175438344198176065688872595751152429829373149486498508549491198567061156043827974093945573987324864283592017335337876611308491179423063773735115085729635716949132455217530412662207108881089609834124020440730214813547729466549933131679285790341908203789259370686909744644183448241391000171008250123341756115545775448371490303307323401842532547719470463638523437316940850211075577373456942353597763333177907109365050663992534663898615912749159295209427318052648437920399843378874661253078680150798258031360352867768798187103800773116952985086336060938838987772815956237545159150705457520808425992298409201341505365033691559937202639701411397187457797625340675470013320545560316013633817154540615236895269572616717734470403639247919221727170092930364668537237304855502746660102863822037674515617258897299347001368526747230884962272080639766077039881093234807278416028461274774769295751951490145418083778912570076702395230919024314916544055907347723315381021141827460801771265793357484935770101514009678596807014941500054657501616702092475412987209110316870996192455268324744949142502501223905145582065808086038440890272768855771481454236879376603218460195516161430450145207651077238655973387710889793934814313010424374354397168250416811461993432424697048095797195634450920628151959709316030075616454347874498147871086896139167393392756178557286866995675948527532758387534945241601140628050570359487123580486064745247256932207542337239333926799690492440103012751619997694798924216885075225792036029399015248254868215858676202737440760476642965778968224114741813856856293263971156621361377458259013485941509375278395004506278403599552789503314993644591386668892436759815067030739317664402577432050228612134189006766598539503297029259078563065527643400444435489365614257536532042862077571754804819540634742987630545977433325090184173129124094671472733347039726900513843414061116334703143777792744406205013359162891791375062076125641894637045953588028262694354362475067974250671493959792784754999561943108177766241796628934816192724040213732591302567355001376382043177958248832754434854653465184712105569529779350701237481567635418962100406456113969262472550684654270641173794406901362353600485154968215649510033409137527426666882053048228380282573931806241229638899787269274989653519333634138913621423172178837601121219633828921135276555988837295329883298215292287742359828816957729511822878825030056206852512505436864354050330976015348361018551337225645151969655101808028264912561511654176405408959783148402272886195545854099610401203881859010706968253913243997977153261020696096448528349835046211214614834182081880641583523826312216655539121861583329468604666645842580213294612134535888964480520570996494874334629831664651961918738219784609770967593809253304879682300685475462936304404994883524540365927359535996502670576893405493087093071677776683305590507873340772855544556377795493607849726021121263942826432665608290176003767474631197221042892477436605460856349824962353439401653927110742387910712875871513407695675433884630507383824058276145624069405024073606905483336578500059093941600986108023472133163180335106602950145403186576440747420638750230223550927143496709979552711556688683939094358159554178568139844563878676422476499429418146825853683970210880118559671457131407601223363073761696427812225804532554633671606666162946547577841283702568224407916632181726769010285639401475565579842596473548652090182653246637147405297970025328946773303536946845588026446946170255291293212409550240140278940435561749704235922008483011368698908046365564093301406786328521817351514697115055723282904588241377451200847373650238117097273595821934348851940041634737469950736980097330871943001291057190261143766986112789586511872685167401107790931133171955906885240190521209144128879683214715632293811812330645639520454556644449569227714322522919445478628717988931558668602536502564849147643517756971697452012777763614827536656580511488703851540590340319773351239036175434966942919217222073263784614855051071941427413098651483718053413882764790823028048757901501380546007073342597070320485079833347505048741587367410965884331179673506397859056697914896129696042399471988995322066633956358229253575935382827502627352955718407648639509289471906733998809442116036848518553047992191426878431758622537788655634030507024239411192938769454677293481186677501665280115553727636459899978252116399765395824318098462508873780123737278074965109570515751742305035644075553698394942395789645473376804921766593125596950740845900133876076011493799641071848395375820603312886921128552576172538290987891611947947227087521209189443679486772675406418773589836798531779180370843712489626243104632335189935142018030143978665425224293647653606719343057022585279130020388370896604343957365143773332058090276843751417318680049344037479775352491595967019217335490764787636783947977307117165508547831532586947718599631594885965732943145691258160104771256307937626943274915711702153247043339764030474774788303759726961881983553688973931878787571933432983918303236929290168716945255199491728559825687153296886636533807035331840240478312125908081814803674205177849577959424721850176582656493974230925803665406395275748768739071276881467306263349012649861611965960419911745176865835330407768003259964650789064904177263916826190082445152251911778089846425428711692899370633543226212162877909373366971375273713792722279068418440363453753847191803411101775863870748087265162423246016417446314382713608720138847449071147839865156621595454090660992209758352759844194733363396131046256797400998989130454280026701545157310363896909997702201851049307952311397611289429460153220120348654889618197127646143968459588125660057281447741042651245602708742998065275185117141646292767656944415998655504535857960272352522898070111953743876695336914723677218372410695471269952250522039676392763344301753321811098791986794066789152601902696430415599944403038863179307393203200669771017639663984298926564325930133712377751732362927549558318923899597069405957072234357591668227700380992673265331668159275505613174939771860536863671359011005504015771044042175718791972947803325117268117657269818022669361020242004696848001923959558645565688248547797238244476293756379190410303271252594101921360024716069069913050928271683649308305080705995875695575972621122288400104264185223183510733885885379268049963102950848760499401185261958413188649564626332145627011661408939398384130768751713328433833886483011834565426696832457357145569026542240058769163868938866165564549649048483288803603380847743254453247768653493898804820356356874576708759771809010493270496345813332471458115182754388004402969502992060515267148812129760091731126815628014671690877415911186109076458357774430218030549941888146195205773914061504898122876521760735593900132151437968114142331459858396034408633262834654299326123969838678330263858063580713916997349023438746389460938434866109537156423209462797321677355370309005022511040807060059762813611554226633291952219251356406715472358816767786842096617466876405203173787125635219891044768115245049434948091547665797842946239442846676492760401147210489378891886445430297982481586133933427874613561494174192095309081788882852975906886321723841938107259736882477094335993428762538717980836538149091060376489687487045872234441765012038839203696391815111320946654026077957535997791065338089948545779343613400999697567129729939515966012710012031925462821952489959978170430355509873015000013530538464133969130236532947549026063110251043677582833455122394777480633381499407731667910927178031487516149008225191905054803994106275997346100844537912667831100995141603200477856537695047677929724024978033157753948179235470571923682404043443122156692346094627756184935321711505170249803719082411385994731154888609156233187390473375975840501631506683710866734830079844680890055662360672331658294432042751891487255312652721784963005201478538543465123936443969137985538849491666971565320501626327827577740554286649520595841722200726784593632034564611824921145178980330610673501572421515958177641738830084088670509238810815048614857751602074269936245257166943593152803449147026728312034297003006112755903811749386735213497958547554064231305122429907730785141203788175436112739013364459557408155488068402984699538614322254747700696523321506808785804919647933620638791317832516262512103702418966607660616518613436198605729000997753383688693072067667030330595392338563940075882111197566893813680565780406556851731746909173056040816519149043604044076582862870817553360945243661991733187425522488477858128586100813030097118457492000686954708762841382955483759927169681114418677879976455657599245501511092099778586900623526728048045403024128097264053209602089520978240872356191605545104649183618375041998862996098070977382209715691147217363924194166442449944108395446631911432888685293291182521272875262674573511983609903679999654367598749881643789547171385115969740679757588442883504741335179543822717630294392262237015684864633178074761226485638700046905108398735695467792654119419236495522873971334469748892027615412472556146212296296710171187821403911545092896416506691795341288587097319998710019195988963646684764371101462275968611088314767888939596054466420797560256451393020512439749126806575179405700230280366371840957729534497154418459474267502235595822124868060291419546306870927941076663597835326095987180512674391855378843315081275381862430878848640970911593846444631332302332617245690215492104215911712797106774035428361548502070663450506449439383521724938547150545797354734096882718342671216901068708417248512970446541668395162185693484898152654356764136166437491492600927757418636241313561356307232748309998303314529687291470278806737126110791517361287355398736810803689567286009310548410448765445256603011713216930171934006781032433589667664558124599356281676950232093626538692382618495006715373709474514700667189383707355978897905166063569929808242127094002687730871063859210629199566241561828780157067083665914251774218716628159419958459600783891431406963031336014209584678051735483961691423603930506879244928810860522200934814768653022665858213906279277575019052199035413623354009200029075778210607273918336901678335135384279660807914283804325099368183204786643186995386103466249805920180605329932466396531270595812146407534043591610947845182727721092860932807044279717244101265563377273005436569853419336040477912156044104383386920385701138799425920948140464391324644679501299397542041500805140510351349717837055137431728026584629689296443428321460426320029503509732585976882314586417428630642824772103771023072865331847437095925141318816505357964300451856509215119644637489951426235272374957677241765225947802274175472955441756186718120166036263838139153631281498352823874030188731581832341790256398462676889023298580196297217302080142089097326393017179967311241720504167008329780161218106580363016421869747109078211101383186573347749222118894641772004634758291285023200599511961203936438833166536697177019291787821958421267055184246456464397075745402044741470667116936507797768981091311666483069858276551288892153973778244281945056186363783753212400885370521003279351201372967596868602348043484790963037511837786430484214116605102749887350525563698021835088851535155578298458296178018084383534433231009669150683045537202306044610633926215326401453564416347216965257565103754137970289059383023453378969752434021056136737757522117126849954613950861366340274692470981137730910475924552159149066396959964615928912651639347570374341874516798838961163575970703742502873357081794800558383202744092936868908699102038437886767358322763957490571109960767648815978285554936444438227506576033032510956628370434408006082795899536656943373399904253270955529781815819936953985506632206165671961719636428846182454401805538617771437232817818798123803535647754050104456313399205041926142554507539716243642682907076082466875673444429756443663148060232522158701963439699834296279910871696024952747173834215929240930690919468255018900216555257341098964010236462301361105108131665463971228484954609415033420514009488741742918010791565549072228665698283811854880882423578438958754713162911642443852807570811568140805151133080995600708883499009432442521470959119077625365360350701550086812009473081656642802174099151491467409038443161198376766862852181012854721088513766653965247046970719076540692818312751829034674545195386473285746424890952005399139499880558244428111052536594727300010885174742640482312908498527427830376343261413451685663632291245638240910578435973568968106507934477153303596026353710118184010520719530503447694195329949740673861252025651138748409197838507174203117185241621042899835005342527677357517178760283929696044016944410829835693068387439953920263510889939180826446805964458409862431568122204883107348626003108766153760441948140417751744250254923975985382704664255890431839604670891083297483241394265219095576456913171357310519426335679950934751746941524520492961844928286599173820350638894620631543797512223280714849004171071941798650626455509794618846298302568913591153506646798206369385874338315754142144064815510655854614904597926721010889761934104183449246830010328137641559950920265571439573759522322920967930356991897473506638325937762924714675895276937552728384985042065233086470593652132901756592308803452047117405978353680766901544179134443440539136208941738721054194409800228496646066626125833847635949762908248885797983766700195744321574056209083459596651075740243744343956677778513622643680624700899156346936070652316514220974728335728687018335352817027481283527231606318305074905671314543652138064355766012164510870760570908912997114192983316954167391803204544832631103388654948033806910861878913508301296404358334838562620926641870972693173931682730991913041924591694307196596709092261532147340907575114926740889600028441270187924402532633766235661423043330957704786144807191836917123474438862489796038729316388977888491424635722979307944149063908665510478704430782879614892031228268890869050300236067374310448997947663168742261588774010303475157549709534040489104815969439150267543523669422553873474672058434325393392205623365419960618871525062496652749517269063697954428946711370994721352188199091968866452801128817916532049270032622411677365984907400916661993092535706234081411299274528075580269377986855715679381133938459610271798531304602943485027674865775498894054580518700919194997433070160707974587942205233574635427278593554133334236893476924852469256330427395514126145447543726724033322280046171682657973083990482990619930946896055909740725341157507528421734968101988664159066033605674056689593352135131979282055884976546830799077872277768382278085231009951608637209566707231216718773590417994012746033179787293288707172043396493854874289494884062923480389290510577704394512024371489568251660316797981874216153649669295429397843356028060203566605347667831379127147768485032756656358087821710396290357224400017062136472879856949925694278323645915755827687933287912378396325562165758453583622531515157131765924210323368228130402603288982209172304911204723928007729192087821769201256622876653815276995332772717059626033110166676464992591522263666356887524179631902803562311849112607812880600628689684632709729675063674463499380632321926954666632627019139190992686108799255911852397838857045296693519553698346938926803530524070786180058106566792538903168180671544097502249947596316374658353019848071168543256504174965917481630904571657408909950758236317412339343185086689258504390700034064896338020407485315165415590141718209044479366571677003805272793509139020409617097094152272774669850750340838741859662080436130970244333363752602553065395328736656618486600986008227025408972136252952232758696129569099009721524384794454989529612123596448344879002263898868412208273982131650400637269861537809372351770797866672699473468543650372197995668874118386552151788371197615736077796515487060250149577369688612920446829678078580173108409197972581379517472164067309418559565656856753160937592015268431901720274933249207733009236834146722982163737326730213117922509341223844414683825885330463801336546161574861891221639726214920601289809405369135975473226365145704697256175681918779420600919234165731775654046008039396480209546219053131492632196700265760291265305730405666876273702932245721312783642248695444302752202259919710496575408845178350168830103304306873322804904883832589709527939250232892199761576230411300128175401965221506317579463749629513269099994024293985042907358090224806047290526989748753290187990524524926804026424174130649678221565461424727188532455508931629993725459652989106449590202064389949751051709922960728826286561378293615992217997941263118954193613372374045879281330831403927649260920999782754312318501496107545653604901142655729148147592609972798247916013541745192777130808463801061462465022422072719851882706005646042915683319604807771682092300873496308151614164341965632371202943100312616345883834298730646530324264893632092984926116941849508969276561024851811036096750479229274164589169687959605388502303656197383893945750095753339609075251876696288449095291466425907147702428259868985819870482083193247894643753082473251777519881072274868326602105161299228214412707462789777388468887745916976397882096708792247922559090080585421991763260108019136378526991517322734287280652765592020986886987520122724323296760291975219530681381011070773389634375727993582163557979693117175849417566912919346536814898965308442406527327039334113292364770906282337366992390151526072380676019606414886866411793715622342224454441630249952633871938986149091067515752256582333613358467045165761840940322039821937728167617582353649449355571522923153943140934115862584140919433489871193818636418961212688380137693223164273332995457490586106779518968416218490131708377925719468847359748963831220104715006379905625023252031269352834102005642544230973060764189692312347054255170457378003852008733224175901750143642085613102510127677691176834584370332197682190727343237067729481919303425369207823880112546965163651934670657739361974763640315547921839557655310908944403348566137834558700424851745027132371332747644761759513103285463941390896175259400251311540578987302191014335290583491132401619498806501058832234317804794579865934280571372554733940486193846569351626121878356732678623725099051060660155759290558498862208466380644901876830046789227533110874369763395687064414045520353169602166059115759688369287974235989291630046223104533577354107008823862926007874115530809839395828833442952107867666576683860420726554259303652917291538585261836201237941847345861598595761526257795028214252445442699735470374011186823842554611267864452222961703254387216581821156010193920610919039992986947515994022558120847239534875003162662557235981228632836603689053351469119014016309163192217142504761756836081785154432827717048364162041945692460337014919228191042710455786170989047646129671520543179257999522078210307557323908758959301051881829856135855564718428881502983631839835709393735141404172384964601358535921760962985068659860699245478766705522271073385785735079906704550620501398551264322401423823192199041915687583686144702281258487997600394760678960964240146477363144338765245112668729274432892375116460784921352510322852951383602543581098109285572425548855571092119821129126935465771505905725127609453968107793558828936823903616168296003632137533116187572989277329152793539138191660647851200443064665241120650444691293149546647410143136981455003426965992213853480666563871939623999711853623513186869554395415780391801193923348509576863873195255540336070936495251150487491778289249011481905637525869649187714481234556923976345381660423750147108587869590813262089986599045486904196427712459033640029098919543450054100096816584580936731471801187893133662970601688493649157425198351651295516963124662551028094252939418094156399412326576685543368690853603909173971551061289608926198358160452698974638592931651893921907295740487207404840497114101384973965897458029822826759813619008997903029542809346733492651064112811702062824907488147091373940758788849988709570030769949160976626841943634756592348381602697766036522752689937566675730128662824314312835053342550818474030410371765357440288326373958690912236479878258113225023319943862396456936511021542474542793165846630389478085334282421785213755950366294781742988288984411170910879368571853097141464397985023967990876203530363159406182711011922076494955900659898398408098098724798179626357652179853446487187750045327525508775469746173953526579824469652286146152814077424763045718684520095576915595023947255581898359062542176138925881423149304771334328687376997662156146794459547423491217892781808254017032343081712729115031232617716315904075787007125265004450583940281885759218467371311206340429594125392693832445117817503890845487989221442686381136834405522555188155879464815330254378018460835393776421688640450160233420772392991166851296364914085922395678731168754165562093746879594223418172901305900639652716603668116421760957994038828115065100251810158270565707936152184112755748307006478210459686210450666317823345795951751352288772449173283184917005653116726975882774673439743088342336974891703074379645924799777894462082414781480158417124559171609676850802961978618320674852796969075970854210215982408473575144870089145092718412012619845096459967036656960597615418262366789264508447577184934381860184458637638650970659095798177198064252534688777175775032839895286640510190500883066317266701383159283324794853632401615920955913352940627632080362545807529175341181263926758441921110946420092208890267442577798749612868151360799005462870578614894258372718068472914722991109795756075604987622770507792264135482268416116135596203964721870777755270525232779187890282296904719907899817761792981733917639199325272776426831081948525994909491664828054414467168665147087065850471867566096034390349374082527968618393745449836819356728966808652991228498856549072973564670697363619029177296067191794143646916383884302316472211689713868947942616188526538087329324476063792174140233393624071739925978120248938316725914229729128711493514000904863547722308128639095357961967790632682453756439237179657483263008139316222630883698900059165145276345631445772514377370797234160002923243281734186569003460598600518030650036729600672662810219095545615626469609183251234314028354688137456799930136447840837054268226075975685781933905798122804951521437598416573861197314074211821013060543450521206204950986348741124950309303040454968454755880256096624021987804791088348206434614732293170464994458505086490942367893200003793935949756016513595776496775476214417706016780187225206906694698201730333237246689107932144991467727632929458567020039674310836939911230217846148558841520114249458134734778803806701588440195580367030782783382685106969430309320524235617149473350809509297594428038303780927788938629551382800605253775700387827326981607947607363681005899600873148387484825459971428499435044049810473724673060618019862030145583104532494623748768283151054194280699644986918935927891960371920983140913527654782837472750715873461200948112754809087202713084107919718411371700923867378555285099291777270192135827943179489044344472667083602632350755944420231245250832143188902336553505673040487884862020524800875971989055350729744108283457018894743647641182090912176861340318428847478828331958097245072269034482070862645433933772674478480153036001018204864230646198274120194733182887283778001947686314453143304174310446231071540766823954488972298190090434007444606465933140827595107192747998459745284071108518999092672816399481000558443739351409166720449709536011549896478454199770122142152949838017926076543915437438335465254976797345278560267824759602849114369401588426398631152976713729364830091860620326931746481319278910140712975344402779648348394564094986066453507823189885752862482615399046753565891264171435585407711962757483627923751838683689711948548106637410946780510974359194047190021363854338233462076911789319863798998563556514683307668257166194166545081515529929825084195770062963476415342643360092928989651694301962781822903112859893150237118440090905418548104371152546975035240789850093514044228907760408467861438245435561184025419280660065807019480764337839039723871737696999565532147372259058293066708009952758046905241672023324745636996550452794053539994766238455681551280676725632389213788507399273376633024307333173166457657785006719957055911973942274644210842583839657559768672079566001357258177948706609896186579343857003091792283387681020701873648928247833114559676556512458736584878651991934611612395224183394230541866878858189426092353621411555854948149710497664887477957910343863845386533881889813654136264983484377940443630518653222283001796852140117816989688871955983674296789232958724426365174410225816526849622863593023128065602596946761290515015671239430234584103216018166572081985616298611228275079377659659064351739689828982166720424155240507094760118153513023564879452788496550120308094225132860148888284293200627216210635026684663492065126713910410997020792821323670738479904197240900328895673534052060396342126579182568827394732121009649118035601013762679713935622822345412173327071714776004991380480056047204287341271738527902871388322854248159430255766519311480310192103683609279454559772147775195322988994539028459591681622724702020887050689381276412816669999623021885608860469670869509564645861100847217472411947967295765857091935166587995448239558381919463356240501733799282376376383160030367321213976572019155289070196701234668224224692864585197681115964790465068401727407997487238773487499406469697308166161339368990913989009182625173797296395420032809523661670126617497514374317791032357924391675063509514376226863976394708913794390172376768616097068432062139457339722908285421623572199958354664543303917791517900223898089261680466137708976571602737819680295517749748144161793366987808986886859073236169756559402569050826735899774882354791296642605088354138017114619927104385118318969068045857235438410639458144344971699419303662067653687249360871837162921722261157175369764312309566050337715965201579753954391171917947263097995199582304091151407845898808258395731933255919384579236552133977056185897824727194624068324908509820946504771489776406436017638636472680250437654105887184419663231247802136102469679837661011431538659105388320055030807475553116290996950406404795340046466290728853805379368282057052386365209964544184290812749451952325246796569458787765935801030360913410369680430494652286429736209724717537522902735493554484701220135997729563795353581430527289589659372623547652532608747870300700742938789896932650184042600904733744138073821126914347380313262869805947244116031423910487356959620174164213232056713470525336752880471981992662698777217634066928801285368791257114346963148648982484829858871293890538024496988916355342902241859391581511787378340521699311659518320621775896766434158262485366817049409435190931686011771490517122391026671688644937447074445392985305013785739453384447567622509278817795507062807248944395254603563118250778668610207596380674586153347300434291273261147766266258071767709714908406786963029863255406828506864902689507714486758024219085747072017319352261263165466355457873966756458965024338577947072449227412864479964025084672666300534958157703322255057866961716268942486895061707758074433996470923514984100746598874279618280574642943254648258584917522253831296209738747041532579725516104672064770775677397620735878555865514877237656403301589461158311748958881419741938430872204638739983708842601396874396809546488608087078088608821993385444761052843266053266912940833562019403338941369052910045267257996115217410635831423692471971419026789090569665644085721492017120216103906972967644395153209504464717344393928679554734373019942403307244522264587922464793345325538077123352591893034243546420097186067876880381250457812706076447115930453086976852374610922116547083069925953959415158901441349621225583197010165121113937394770773702572432059329129240902012670166705840111901240925910438025250833859219896083386537185228168757790917703610492899743837244933097980406355466898877929429477926697223395140018305590175903947136842041757606600935817652380188442433097911334931477853873865258380708106007780074926333305009606115322153460912242748343090993109253365613905398768345270440702195881329676075690506543787051188170321579653418048344661102230365844749487265505388360854083735938816598544954393289369735192354108543530193191363561357226750136119143829932688969792297641577513467849444175887960057515367721304974228228498882592122136080768936094253475233640983881997536263085123186550819846852868261794154122861712872854756487876406865474974459653751210192243298705305246826334309009307738860548181195824285638181763440795929837538096523474490920301813097163877447205175488029079486244513366081086658447641030340343765544792394521021599204763303666212676864436648756025574511515220583947814214629887755249065194421709533817241962441750460392628159464654879571368679613651702084030640696358345300526780209832887550199045905864993971228674946512734923354954921631122528118782837350324683099923703382638528120276686106900250651376608027630530374516994871019000392347405383608013599951673530262949525706674720479265302347037505665420630686059184907349931656472175412615001784438226169254978524001256777793030420038761665473284446150801698212289795055633347555913383946547946312349581122904153678399619451554869769734812343297714379782305041428650400304905495862728740583859855926767637924239996052392379429674412939680945082840631108414980201659853762699795569194907744537174173453146109781942926137996827883649542185252870779636635142007684048133681940135949155891820767596134050079668081845489195376229485282693184150115433930177418171688961250374336527704561005062513256504055863630496594516387448516805857192915188311196892708849164866808362663217098848656349449164922848914622230136643916692958174220832610243879384984685812020480619999132115103068408521821608504880954762238285055516571992964973353244631450788063979203154414241094365804437418222080260678431228031621837982616940369122229546743801703014555654856806744778795378773729640081159778413288764187993508029168311174786901357586889397574254826896673840223218801582771513888519369996292356670947342639356660092395532848813463765116496262550713019484126111079495468404621295684117030130463620917777699122396338910373955443039616855695784736964589242566147094494676095585453025241333283138653896188256633775098682729951705464460973633811580658668038283134003833986919045947891665973324964345210313854844984092112865765858644475589383645219694822490068829797143384658121204777435931330733782813469613405414104427110666428871599695646904101354447054575429966672242098547399931548617178116080637999366685797844821394281152286199801547674391251149574592829082549117900983723357647890571244643632312337860715348547552479174467605450654202064712025914689082033414224170524457137835984397480620210372893436561654489329589613156075722191526453301470637674859088353862260481136295766516928540078646292656387979939987418643888823145773088791223986935722386634379349433878184850585088908916131273741717898759523248552877786398445072076427333046714832690170027613229704490657381905290506884178656626546364618344337769277394503553880558574464886487577230230560989838381436633334223061608575919372240457162444999193785031208259041865475426970891362142684672155194115738594685838852249251378540516528836121684350119398858339582051520250240518076550241086535780506033369663716413413463624111681617401827993485240372095311140778837857963878588971816315787003287558470156841685415538095767951865095643597587487002260645228710143004072116565208959979994236282311210416330180376678924411331996269707058393912711979367458837248418733032196121970393562473796009454819324720162173213275761076717738467604137172384562444826185740610038772721828563184949206073550709733335001281255672499463532894782869807579167124965329715060244905627430985912115492971289167032586799392119217569498484700954503382037946148353917558179828871839758219857089769935830706991279854086287433792827272676225898534882062199595491251283485141174724966274798298465303707144064538963766616157643201046100086972390939594050037802968460216635851615222625531960133038152326317354586782931609572600774550690265592566895127633199832775261620482596856731956590098426986047355361417617256683851954567880002395965317064322327782016640693550610368750102103092450580492552890225695275031527159020183230519905668335322297343746436591975805645767171064143220484386910699456108397628558224010614276041173347622581904332092610115272182625309084986664505190584363049176225544159282371187607425590271973644478071991787394696248481698626191260354935557574887424899694532304719307521361502402738439492481776435563493491603010063595602418547509091028405445937224834031876166994632153484425852885031834566303263952894825654518222274890936738658197769322013574554695121321491912357178338922592387321106832113364875384070982271230830316869141914797858269909078789703389117215609903719946241368340077264454669827135741532827488114773334321054172150955377106559431978356145428234893891628711349059051449598891060523874414956101007627687972515443586612781346885695470969099401692653378486544037082362756820390164511581428414967376405415972164528934493808360988944786603583619638005225728055936060125907535039307483570445915679407550926240872215455698336420949626901018540751289064637760980834606161026717552728776476591514742020254557545234378257025001874877297575055395232781731861898133890485067861094985455059077253478010711510184650766102449529195942691672087228494393495315780685902337125451630586225682467960889055519513590103264039699111342349614864899723660341136113785973272134901666861909235102140288724060160653930742330178035848980134193205857459666863867534669219888951095058892543503152768230724181915881608271939368417953831890425963487047207371728145938089366444618673718970338279443136567652620893018240157202113027132138409223054872044736020228114317725033849728250935210034141703017183851074269148727031610286607728946997248787211477893427632206306349448836201872941228873180846563926195820456781901482946613244098479171524294857042869531374374302709659866537613809534518677943170116857887925382723451190377715682225885515314233307931258111041073364673371573955594254074650664981021974294525272470445054534209949071110872030351732576292517636453634259694697901324527160941749860846833340589558703148766651920895626063598064572000069284375225510284331810628280496110006192780724926162545581129950424664984300532546569139180888319680068226066009864542195160583778507314121136929625601228964787004695720624869248135587917436315214495072938673315766863583388759727291945810838655740544809202846738135383938481426906127505549260973887307553013977348986467818025013301824111323892424671055404940161244295185436698104737867809361033590968315299140585318909706547630227511657733958059107396169320197003212909129225668735079099837918510914114221685331584922164456346858103428963657190899281713418654319740511543310664795304245034841791571378968016606611681893610344694183368995449783095476816163363616971225748925894677166134964659154609473577448536100551694685846393726776258324344835429822174013702805167493684721130218504375385986563493214912392721473322485864066960973903124571604723341472817598363089354791579171797445803032871174350716367761751052025267792249081466792548705954620086225888359928701608249811519086741811541190766459006011119789487226072068701708018395853017036645728936700109924921162415140472598365413520496696537010254084128606652964226818539214473567267862812445104944511243697599398752572514083525427603264483078357539784008785600390915047168590624119295332640752038782084859857781514900740868215415256529959629023466414757172253429978128947283231248535358766803867163426225543893963513049667524502167522792257800656677156772597466795937629624327045590691107488024166054223685706550035317093200337716851050498317633378392643163689139812866727197836471914769111076770395992453658535527062904788586298030116882364833124723241762457484474159716037039047812672614649391751776369884357737320606414442541072043365458410943672781954875003835613607413988438374237854838525298611978530843630711475811214972374154901773758535793396653582878673999967999641971613929988601213581689431693215247037652165271633171751983502904819625632323521424024157366533595466767183438071972032821942163568032799385181749527863670988378455661753363914420389931082010253119647325429809925687067006470061909134639727826038609005890566407519023608915325325066671087967188408155765966721245348050140234672921831096613220518358302635782475110042301990942972032973023279689405608406776101687462093228247184489585830010202553368072232948842879409631337745096511993741354247945956304282736347779015462714265979549614400558824396476175945542125018102086791826106745308965883123189493771931629236842856528103358300239768955980877715328677620908297138693514650902169971816688705260942083102004533067363171972260076277943485097674467946628796669223645495118887971125745603262044999937777177114802092092011664970180223512684888026241813188417070702613932718632181113496577595976951364493265666912313617203704294417260711143851579739112520762677989627554194193711785135082441041895168180863635842815226217435901037238713028972493982752334379018329180868045140150447997327801580112875485070648891439590072641363087588621743774273349613872525177725484742482170659987877056426546578047632056741790231090529510243476828058376387867003712624403724901283332408777804530237288335793004874239034503715815857121194187026812101750666398391535222698649378872468920382274485990224603970834531360248223662428196140881508811323238065027938346907138163712452006489774981523242423695391843890572881460684350199557852401526284702702105773228773608112601124932477544110812390765762223538793697028024740939402391205442472815980773059224067321678175186816617039024723461954444463394915658024474664781632933579487474040691167939977811916627741585025804435221365523661375661686687094226298770069293286768871085753314230982351711908981799123263695448618186595008688159825425419524914199223885215338130734930966588925770377247126878154925473099531316726134846659738148667892344764248267068823794992871518134161837038750069345417001449967198235549046038757521686245289010460760919002587289744657623924380542717037904878411427738689960160204906951588939416573028075003875417155488808031517019508004424749676962352251865530665247571858786463320060359059236592764162819980318197580806148297665588758591328027282083720763613734864266241535502424820506131257100564459525379220526651635521249580932255393690829139158780107243051433295264533747858629685942841591340057600400553744216628920659136319375797468323744730193944491799270341271876706674394726036356491985631044844397791058653162511038483422191025185358487719663114145351410194907105882577840649619801669999941144405641880151966783291917992522457051527675549358943410051471182281736189965938027219485104843084333771954658094801315015963180805160909297107444338212686432058135406190951249694675777554044256006065806067305803247963825813000140000748218718058657641113934078352493866633736730224544953126809839278919053318992987086260740279485708478264400585757009141506606997155382914991104688247698633671588305263610977126589561831088412559830814571481644266405959976295280694447335966785959251898582957279737426704192176903124040742053718987286048143012646269839666612408679068295320720628695324297605763418471222762568525434777137365606620122910704727701879337145503648056779851731645913755365892879440722373283521129994171276747034008880012712506682265019363473886082636754735182550418112930472064786449279189061652281198444550585603894740794876471896462811476994296973510064444532428580379863423905645354994996819027795730638384407398590460881077430647640567194942919109276327462795612808523781358871993269449317157238659675472233080057237690654325819120516553585295748574578815151013968493896957414110587927556898553906161287763957851200318016455994484279358679264102341459986442492676280297772247236806471229553385893383858599924822045676344986114129096832935574626805212687026399005726942121827729981183541570233484637437035273648590617847710457782467920640242523553859439463170300281515866853149629152839983485274053531623383874559909653421553520417183370275884819044047798739934212153254873204930464633670498832366166965203842032376514399532984752806461364600755490010206190569798010193438527805832822733070108414462993669808294070984761571140143421115112421813846350052301832226727295581844408170691287557365188026066912180758507027111600981026240211632240141721666365171261566255174678467716478518943804257831573574272137280814897401532959566351409112677241698349801067396553603538518333169591472412268565918324371054374953213510557535899852587601054093945105076561082220105865616442828538604819436447802870340184600822908562652541042147499217560569589556195906500909314127327528345712059990034629641266717399335504437026042113407547265912674446712567252707119927066528996285433114817376305690018364067755564809624353181465214653657419385949688850167160106680173366384510297410243088067025629877024273385155053287756884614456434791085024154682926751145833490354478442190281841963720123821494192565895237327548308649889351030773821654797947017750264632510710014822927060119221896755457200266377811671499830759142593721130370075982331684711980752569711673675146357390309421667733340356288610201325047503295493026609560927850526293975351012435565026155131807698072463768461795695742675199785485566766179031343289373244600281456033910827177190168957183560997524026721302692825976446956597937973196896502335299085220576051848341950886138266023677965466345038156570456975560166923289750848825370625168979191308991734462964935913864160086925883734512477405054644905474445317476984232920739341026555359927602964524549311202776020623245112777385865689377228782001141035971078951280760107696047163924705692199267690082877554344230110956418706415885391415495457740863445808922166993790295860665268679031227442018415600459540926065769919235866274766875286427143150936670479602565283475879972174184962910254972945861218155006482710532436691131553699578588633532035405286178401377724436610550315136410007690530432715730682613409486817846993340865836619728341894399115239926577512259877705417270764390653224085243283808849011673366036785297939016622793433301561136095141768572917590723511456980469035504883227762972523402921228098524569240573987701317852966718402567234246910050275492619182924583073307846407005698369928508454563615384192705903520795457245313201084160547795020603749196952090299682272289935566915678109245432593448516573345025411011175140478872123562877589888359569504311610452164898211837468865348050588242965792865360038183794971321552883421167196773324772488597554254999103494069230237198130355945080590462711416995061478722746684069791095733247466070616900731979326291941463157856065306275398225119382868441827098372860577651254753212167719354166131885078983401389739791973586511367509556053124059962210637822534792225605722862480722612024115333433486766404467275699330188358771194124351958955740438757642066039300086147735193008641534955659330281633919534529219868921172844111626690462028289629207608705828974298898068282609027057274333653440634019117971240114206454876052732720490020390454054343096716413526888686888659606894047955301345344383636031435745833499381926087681183526897100818973902257769115244171419156785650058767368657498548651704056644331536671224376500463305490560965870733266638365927316479664703540896142075369333451245199077823635079060987596541037726839645813781113267825876051731805036137425296963764104781127048761804428070093654672869078590623316808691005098732623198887545368449223842217741067878511691516584796630483784278611036571676313710653008751557396390956278972348315838287363402218985409639422891722970295923486615547139972097478380992563995790720980633897624168569346872845748766062752968253203352634054708131282107291429397543139043931776695003238809311661868119843787167649690061855536533554004573211157097303748816387996466584580363399820886227427956193987789502137671448978950806904318074955428345854482652686859917235933338288280303225577161008964654073843843353893598147469226176114333430523082253375485515619969885533883377419410574850281377103270068020554203703700397172129944565834329767429217711539859711362902134878912549000271039152979130308148127229561509457527043603032655658491534576302168368073283682745767912489231981916475948887985528207339894316366091894285168819584218536925210117110855007107539634312767548958814332328366960092236583177073389829770576101755889393228590065327192015017240303566153173307459887445271880162295549325222325649249092203385396634568453727928188862969462217640071787607195537540054447424496432524771246158064393145803065295883513864617280563972611008007451883074652754943881794990784360531757589878489770871233093441276280462693066677664913251960806033831003663862048688861485768687982984348226881176536410299626501910275460235224708995061491733315923621786957061590266519480398669829070284187548363819252893045419097715237439168580373695525457509069749510699757365118890854950796307033163433100348923873887419511798665369730106964211894777190052858511015463599016962110769205636052029558715159390885887266876548446729547549074222589236097630200785465965888128971932537455310217888901984462733893009870461755289682200560863085528080233257296362919600174534672486373731432528960764930418432894625418744388362864504537153774633805415130615665026719476698493255360561880141520701067909103498450228352715301813748889075452788973960516801833606961648557375644827879332902699049815511445295721948867113375041287738251247845869292246531518175130909478803259597972207499033767178610757529555690089478772125385436335393380593850384596104531099932136822673780358048429160085600425274190190766381985797903558019703882575017516718800906111082584601020692584467014251590077151191091984517401143881425345253555668051809576084963569368288411951608870454905189994223291685846728754081269467069074308365443541502744528968768190383121862582184770717716884374545057954322786929802568828967476834117023716562225720292990320811799584836044658700575397791151064486478666431690837395637448438216837422503824616034412308378294080607410535947084084878433289755785106720556093775694392354007467696649243707272533602116464103768168552345018300640359140073888242239738623106734336666931103129097013022338343495778478503780998000395650370384110429593114795391480351245837038239803997756570423026126151436906066454982001999841834923256360180288499972438350139875266806381657580767026653242143723872007955970384408525731362297907936332945141264993845559616334588170632369053224436496980092777102278018087312626118703102118730084018217101901733638825031064971436513461969485324077246495176714212556857698426834044809278630221131398625244706135288444741072713155870427486227038867109070563332519629649525448739270056874791971757171647904743296452977727508872808672282622511018157758414110515424269614727667007549218572331555050302612241736166992462829529433286474728845525431502694076778876941994484125816709414192298611390224070280029538832099816105854118616323530283654592585443502650364379442188963922793187679471910699683660701683270211424358859492715446235903908744095325806398725707208342566308932834341077958192976586126140892099046846541347025817024533171153029853278620140460522797102291047534972721562996799249441124919523139342156927033400395911911370559921377161408222421711438111300033610661574427917413565028965758268706859439298056183049954855248741466034046768049201125338158418801553264733317422280701373288657989009481886800939390064593817885698854709264082065443533846263292878910350934729371074961724968781939718159943693159091231561933105023733064969461938199008656755547573059365218119462822151635893411564635752752252461573645978839092475029555992239475092576753653068165135664682343339592034064854104547260044808961697931100106925767347516871107246395554112584170559771371006603481650394865586250798677565016729695268122829127026436467454090740495864840138410762645197535472549083976420596975194313604160648455126714649541743471680557576428619347155980052800059998563752257714649001968795477443824824201562183805216549349869258239391769894566152727090509650917444946451878293452498205645227276525833729122693095559403385053657936092704218759424842905833470394763047980873400695474341228547703749682710387257490963075677618621560576654038806750296252884206412679902645370045816785039070009109178731855389178449316530482264036427431394748574047545033159111199829195876165779419208565536962031285591519666855511041175610490763027049264886921005285078442935525598327556909876751898604108332313484821879699503786345349611253963665096497590783651915359448304190658507840507821743437636613541477086839735119883710543241107006956755942253257010434235603938525854195251210088709964832157605221403688033368688313425053065290007989534271152660330253052345841421950102585396660708135472583885752277702738193873259951863568880659399830039036189167306413654903059415669422398193147717399139636642690341753724742929536222307658326785841860180710135884635705108464896392499309436348571906814295330623567105310650995313949543931419194585700321186671741159918853922205166868435658712455883519789603689962422269695938703180253328455654554011109381753390308603708188050952778841407533683244828435591405877118344227742084023220086775689357416307788278599904516916403661336261459212227612332448749110301752160591552688252708721980404523288984408353686764987570522341485945328474033345860424314521441952985081161621880769114008546702182873689715856784315467052229528732720417877101689871920411403836340891186709471345600210545529578688204077929169833291799656205930499368680535041731507658027831591988758712446421600704052246449713206118551266426139862657575851931940070694310141621766351248166869297839482006593778310104876530754395914577015760557181950792812736514997120886858083148071710531413125697127999684372331645412138081697842042871206694673902158592378716406251396242712326225330654485493288554948245233241032291377567104147382215306269077765024767121193507836151730004425630629900702982484462039909475267460757425380482283173650753619072391066445389460388971241637477893559086567979911212609190049380727084662035894634061477992668668231612332185635573488939950514232508561734206039383121354246933262614641483733138953073683371831949348282439571132045634792486822150842468252522926578809383384985202904744109958070526551106704805911505718513489932065955560069451658785325379740945007622660221187659537267423403975466948005667169738382694660033744088927332837159933651814048979814936333673196758283474797536514063457477330455956729344099426687337615454715702857684213750498350990444657000036193927646194904175808258735751869878968414642608529188440105819097773593480800908614454768298083351143868843551523689232247075980078306559767812373857809931753934660149829193925803421661363228597732603699988140581162823104183663075699486212419192140258730512356958360869209383357689535540104938398608109021254264113060373070252172122099715582012352720095092308520333723864094564630135197413319364406074314018796811586698517032727113688222533406133315935396572825135235032037670108208919846404574517525867608939835292890238934744526395422260364830257245015096448080804912445042448906704309477741587718897743827113395383887662522049628564381080772226060192649283642391024470804123474163323119966628339824299829843574220836153709508961665965225710350532405274031551646309394724470125482026104836157168837033800555828260128096766713103771616944478251339369880318444329865527898542509379908957963057986903928122982016878507852873847126829701584084517126431661074972068537315253017161333561124953689700791125091838950203047097730722937061499824705501918671705039377797901497986694746304328294095712889798054138418773154892604565001036043176861564064483920579351688573011184834057778704160898148503482731257806263139482561155636447356586344457451097300956573418214851748799131057227427474032733719494773838818510144181273145908171601780605951216818299819596738552665543572899365353323566117711335157261586731327092332157832166959624895702240183218970519043815524267531379097429152363771582697465644413599781213833909377137087745520728202092689948798239580937480845628373412135805416120639253816776531868572562215651226746844204324095830643118463431492572194656046129417643862953760344842949077391226828042391548325652155121490400363310094241077715016910483759996307070204274938176598707935232832412932113258184098427385719380133485595207114236141828209686482144890271119398968520227823437997264894544817640937284268417547852426462278995605170553186559979588315269260268422022698550956150512152778111315415617914669989154189561481324465973893973828692139004383286908016076289623927212964697510245521917746585934857462946074890405996419178966347960482465192467449862821213826601197715633066412580949982573202965217048873530276023896282158304863674724951935426814944710327354577144846194207629324773770181965407510368619498604551059985855220073170589889027350190095894180352876024298548562229036864310085635930304446306023683799834290562915203931589361500877987764699020202912915611567863206435602129383241288116810618246161928725262787235475609707462967679710259091164581357578321550072463969468159727702491811389411334745885091022551206908795315803430716009691746627247711497533664386937101509139834011558598984641242974923414980437572376472941035121205045573262753066112142643564534116125574209450583767557604087702092078720944908931022037929219723228442434637535219174631953070679351213921794180579701338263332913906913373725029981719791680798149874601094188847604688737522807385660237983732026059787420706518971001331671011217251779480263814503367475473397196131460011809979302711254099434806991347397941584549269119631858246618662039610005371485719192109122960094560061500053520869328171630215978262817539677304102223175605512741249608558508264079980469227577529765052764575639367425493667499379763483944799981041307054657571522463541056986935442509116371811389914058193611725338981095479583974822014708802315033810230801570461738970334039058619892670847781961076467568026362316251227042426896834991438719529867259377347386824330457741429353730770571037805865968199409022317191002366310898563337504163593874229315184521116965563791355553911202885322054897943127990276852445267426518270409304216462182614399507413733326324199145060340628099214186172545428381586820984710633502157420804986957279541869541258579085528630511395635303960077170124489393582872632377657927720916355339459818380533883357667516845360286891975731603203280714628424249553852359967592753800772969956887026700838371741777159111834218517332212380327453430249675711283855745643787701300444901605608287060445855764392231654155068641383274322546789184966134115214917623360765895914752885281616615787587348912855805926915703999713981222355539127248209483649272702335066899633081629780226882681688548698902677364368907422762142613349782454645129983576742368894802779065817430078419313222424675478270463032093738356387858982337633819243698251361137251234228906426215524001983332345090006387302134537128677538547107046303260275631069897184816833199357368730514528106919792935711189753776620728408105208398881013358842564458202114650888744980179052749458727933639496192660619943610014756753182257741636048577290143272852474047685911701073478399991977974486853705558240880012286993274506675032632350142573830455754192200715067791383466256237044091300694089647832834445647851437081767148501988070170238209568887840048072583448681348559686796172340683779486018375958859078958799698615562978668037909887247958353227110354472915696563726604939950747308657687174988781653607015645872322071687668108538198917283453599964227121293606074459385905601413311382030705624552391986565123830166313434065513033257185818325729386499629138130386742368120603401030469298194400009282191071098174722830599489699251342723772884502373973802971895833120523402804391084784116698483935359715084090783795085438503421456873774120322788469200846847883867700181454085140393291654551598504918288799239791634654505492045426930105898741413901229126254543691804503095922043454191009180464170584982886190087367220621631218377263695665897979534609603157454986504916960702897470946875337756575834539827585474647782740114969303007959219604560023987065997487417584710604129666592273643933941871291196401935669235917493247322567245657851484594040585421841071373603373220508981846415319077044911356715291247279618213626486951979486796288202178009231560513968098159942187282494255830308287368957062798027732173734201244848325017354881865189459884272754403476746145651297455564883950051883463275914244586936050190315674007963540521838014124425437289020086904756726598576263072838476459768612241860033265723605000315512605911821738080050320742579795735679188278763329678922794240054779016970226591245542712735917019868569387832207826010368580835239563816377155755923098640424010231526457903334245854560179066374537165128815357283640292515347740396509038696013882848370560410840376121736997498768757730188761851938159480724346535496803703624459409191399040945804862956192459250097949211279201823230851749564421780255615810998399686135777544575943580972056929880951126231063223108585846340643335422521856507970813458074243700676906413776420160254684295061473814419562283877363728731900403911606303595625748199086613406756003451303849658637618177735245079122565039429854009385900471502248730323262357591401175481066326865430396734401595580940923515944299832611162529365814441933993130079798421515518982610588384308717343200542623631039767673958750902811920264849703482934197399661866505983473778243367101460725908558302011908129955563357445037828448530756909474971571881624129547307336280142870893257965811514649910439257628332931183551884757314070144081721116841076109074779822555161707559372653873721706283122023135451448188092919768439254428819314033539993152096013619401223841653161897225822941755367506320163836047784279352017268970190651799731022586778437145752838418225820606114940236084440637860240120947793003965218364395485304876343648962231853743514710309216118215767987730032259287126723705577223089355491669851053949938958993461832504818831542135475520073842300251533837306559662470894363316220415444200316297296422406095906917600858656169021279476652326176641003503849225389741929991430044252139769642686089181600822485543315514152303291143524760602263551422501558055759881862189183342802065368251419255978200265888614286252172098870260797949076996932796391948941470258455284935912232058916926600027360638467090854515399271715563521311823908017873730331167266735568945756239590788354960823754969977897520122826421325902150021681929539162318976731338543351717897127685994758647515616163930701412383937470624478630548544855539055415792127493852327150324070883876176900745327924024653239652031301808712818881778577427514626161700704789403704390760348647738889072571431464554791422619334009158895617190227177395585904142603868592405061001298012717068452703466007183975603696049061086840125266391131262131231502579118417772455864134539694338770962751818753873985843268739900390713561649875881885234199938713508631520373492658597624777959815758072806397195621440616081796225913396147698873641681135538974775604962953218981400872311991198795299903119881748317169797586447453927527494453950315860097898591505544728498855586797307875755398758875889269207903075480672540684887143127307099987206739294825781332100040203884259464293979484030639786696965669074109777070175914713480528708622444135822788615490742302348225998925116689163204210117400845174532906928679385988179307072710150804329890504404537027617071682448699903117315887670881160511376575089713354562980466492059201747572507592942509876149058673646095611589729172555575283912773812451083432877728886870248875325110277661135198473553897818332400186227149934137928091106747540311052534047807061171290096431448537426384275520568167705296128751674715962968855036935260166451614737990843026687695536354246358725656438636080905603731924488433628297518623820340978631854721278948925093470500215086728271328578871473766338386742330404115876809769899403940633884670694209241241080245608198758906316350105231656540059528145358998421944957837290532980090891940738241454055029827987407305375565346883597273199337692468472462260225838546517218666044178761209949538818380372225922244002218168682684348524631680328829389261672126563450331043598596122551822168042972323970205563278663320742400347463334425224955051532375999053868435235900156427233471149515198361657718400963941296936766068262714599006195628955828351320772168259606545170881088047480361669616424140446762729583649947819049052465786661587072866415762863763740132654743563216176027400976832118887751393834754439092567201478011094700366047239077033572494085481790074429686361254804837294902050767360406760201092242333936519102250061377926639668794809822091521578315742063212279129234677746178588101767412215252365417206973245919364022731706686619012754935898861029207026900729789909005227811195844020656295285084475271163175123946140431074429026812284941541979179131037068265832120414093895743797911024395116650691062199233091822658757563224895288860428057138475698921045686775011281174213839659720891769873175407823853907046826931220188262110747184846169871835669077127179418133626007058082296858625616233176417684707428823442091681595170356942296783809835452869549356246855438055082788552213821860410662482872850332967119550354507851946373145338967570717543692998747888442854478304765045745438333751400744726720948222132663540795373197573280752085163920967072175143272675145923264384127441473056363042801167173025275457212355015507597992709985128020658071048400138635002573933584012704431237462136363100679680279202781792215704935234198688516674805025025937160732608471020421244484682739273752235905125728997563010872180243523133882797469433289983662463469591700907296991586324388385889538336483237251433042846863502276004431827844431812485676494667405232850111985049880931266859249818098299922786308560749937278045875035018609256317329254174408078679922770675274771862425581484991637143517640714807541058191359421007330915203017277155446455391506284979236228846454633453995424833021890297823097488949183984666326927026019283621330857331792208734431051307125995522063682521429833880381692963752852835075352821407918680650725861749640006074253483978967850785149534623208608087496854292093745358007260445170663547866969660526279214615519731118170434373875807624441078552706918024990980544248805316667494469603919021119723769405884283587611020667597251112075073879892766153228288014627245293161411209791513338803490606430819565386249546817846647726252263054086322343554676428182685116624520955758401870502864148301840968436238336433449806000688114560156127345837600500233674483249679670296948036172677449259125790569538540944862210331248085474563521355346632923654907278067733361014682360590590777044374352472122492319102295962946802176947109414852307983360022550648651625505536667558545474927327041636625328101675418886448027775864521237637922548362047470561325982208268827797684760585544746294724445229325421145467412175237842747704240437011934487872853620766887587171728931100519399532538317294845401100404140340551828915907713765720788216070013164521061029063815198723948991838004758608725251824120859855082731150970929217204455503281808910556866226022966245768591974269126331237383865010379189484560324685266865246543530399848261179733678258474009232081201861029942532255983634818305497502426178535498872560755120744917918402716828264039230559524619686091671410012652489038268879204667509298991727795100247168339305189960619354251523206760654876137084629500060254150479729456202747365774947812731903951556215670310148107864824505502377725246851180314073847689846029767672341553451171398416230055038428635572410202067802548067304189053312190036963330923628677885189787937450979764600979668092078121467645446190234643720063245065171158643288736596206005471277852222621293086012971897781521603222114184996103087191641344129496692076326207844405768364479861956732771229982788316891572251843356459209067042698835412615664622905922310885207940076609736704872498732325856158540539043633565283914978462129305987406493094066864941758513238137944392696043979979041359661434380177710494720323248743902790703925522332210545998891650458819480893661045860475753053799325123217661826681299249038656403185514317127752907480288193498490987398438814134014356288245847360540865900659985545443967809339336410314576345589039298092884035581867180060242863695071176919099912715261653805295985732501096652490815742875354912105672127808253481223382632866124919858712547524986886888746439586544311371682099493523214766403096599112348218993864570813939844372560644422898555228169102754714954310545994337366729438182472734134226842253462517118135213473649470616022644613116008801034345642020166393503920273086825991646742200565465920751489846132569660199676939526873126104442398573878799781996653459463771991617568659265228966837226945151422699746493947086648084158152147428463045640495037172266752570519809274615986400525405106883069298960536531656101081898597874898192157245783538845997555009008572169613695977836094550950677573790419836662772223683106648019851404105936293294491630576475584259841231167503758398637333572561328150101090461554166823194193341055704229796945090865873876618341265290609310907820939022321004276089508673669620579563130800993252395387847643235775063294941363054200685651905592376031511567005508079868836523615545515914689516189224346383320522160428378280632639173867838370146148350015201505124010532700695164668851229718665558233707530521541103607753356729263476689081027521323632388140323073783569505101867005446084529706496897390338419394836147382786544591712707325348344692079960131550122072001783171632018005820568468946158600186950095747092063603553643405529652353364557090374462815668636900911990640340070797014175497438999231061771762651707843687273937418268931732318404163782545251965704672144841852066927972125029215638158199562994656093834954502926060855588138637549611621956541224772418757953637994325181225232007178460005431965900903876354245681817754398591370500255822817475700002454541887587442624884985762860438111357143007755828151199847707290804995718234886356969413661034991962499975157993031871965600281724464648507612189080083288882697584251920040769439580058474024289917688700714671449849152898399001782914542129420318037933092575114706863231000719157562036634638698812684310649843846376342126018748609219248646893988305656108255544106412396295318821272117073533280937420620454681465735033567570651287864516485766666385973769501619196014394955436308063113969259596106890037518400416049794877012143670528476466935406790313560162832212643213706954160758147984575130305401670580095834295620392419843203964394861148049819527693565246520051359874286154719039524307906110965558442608697121285703189921772559591983606304866764068695660566076375808821463775449685284385685424116611452155466229161799141589341194282863706435315182169809946240478931641380715845136389230408336577579361599453698386002805879010809622359917694304192797872331474283020525840480197559078100778005689356204955992588663671818481744916274380988574013286742417865252039683800347443448743545536915123677240386992059062360675764291192802117653938745570835234695983965974604078427547688736254350498591182721749624852302419341119266084052661354600036043464565584299157430527978039299595195700212027850989474732569923833327393709384812439652735131856306437053800561098093312023300026612625268151971459953069621438764491921464906652143407430364583698811366160579409395887785589166423167748397052334440654655227993150768029454108680001755760079537452378139533670139916873562547116950162368200683602477307736643731965884908513444490741353228963981831376147025616793553907583042615842659733539742997627860933316473515486496709586841864569847627132488267050718670588060716264119809998802071799893429541126756714421538631645556110742734333210382866632801630556550507185169006302477722090475406939984223701425523444025509840147908624148406573380102653748234827771068401239210770670995107888465681877482935549817609165906568527905572794472005710194095927227348731465830923751597851430048705049442697130427660961823033883371680562492847803219188807968135682058123349753375988382382051531066547934411336214797781342649738847530237282624738328007839488038024611295908412880840952993169662024859075931993390587612303938816253297617558714352012717102910762181824191397111396810486745499854894776420570022272374047271110602145981485461914617102269303761485718343186717403670464174590391727594180047222628816820370823922288846149654596524257308326449367061040776890642821638416082744910091596783864275232040364639260957167071399490116728719086876696472101568237698841173840258590019465356847881094341815951726944126907494142036482199177473984259468204615282471741400314823925245478415487558126242741240935854959922096222402797230413724414641340534082759407758826655592855414680630896989065754648075541100249362298321445255613340119289814831192015060836957178944781717944754335148754856432203743481649628709828368749452076544445886552711798914433341466888593070120225803922944149601784757212107584587253570775615220664329351449972859560551887797386496643674931444476572982057467678287076480042625708558793695889593699570336254379729950328153129932075576592590215042446038918457852737854943082199830871498497791688692803904263471041056074299995384420152126788763990223205096727334312301441375966391206514018434054648396613511028630700787008823985983085892731517376967115634228112773565124098866219038817137253300822972752578226288403867618629858539725229562438244936115673555775123405974032723907928415279342059181869420185453367496608759598289574916377385097922830119182993813427990712132616048502569124630016207892479915559909015820486341679488329445174851549837281315322943852755362986699501437959673552978158076429893851821859125118315770525328404025176478520908017760760529965149447707508655549314910711791843533287360044500755249832293033970311904560130822960072412212379848362968817297647419320211195756617597769571650835114944934044773918996852419555483508368269287123243759697918047670988330494763723214504412693663243338501092708615153925443772914344963476251677265260081560064705490698183685850588143751839636125584084024229165116452230249840734245975353941559945839235225993562567545659686803175647888640685968051433095733189695827659505293388488295002439715537568212489816507351289730720673381059107529401392350033370217430019041673133949604380906975136286283384337845218251804334319407560661597857057164822904389826320581678178774985470628018431273365850935370882301442707650525323891055593523469429223945147770097108839995686189949500065616004316657158615091165626496603427511810792492964220417603418035117686921647782675365962890099073495576060391331547854126464414324569767047654463243131670666403620466398818723269819337844306392821293884407923615684173005075229254109429099678817529373458960475305546117651992052530404863331249680874222655388390475486631016304581267938552354622413848347068641467391156748940408650060720928905767185265221624131846374611242834945840533693660010862161907723184215132767382672987571040338432711272138238293240185699519504774611273240311587651908085205663821011763088944650228648371696108431812144534695577917333121048398313551451391425439149973578645514001324292369513677068678624825079708403221349719056473382165415123655590378964471818841391730951536022806758839124252738376792238894636584269092699167902800246869386905511557626586793929729452553677821607829285390439107271856546793808539734483987600073364459468624060319859194826538582925145435505543644441427626513306807949354711670212063744959034515748365680621769046501631974716658932250573861898805298229284431842398726538478887715398303202806682065451330156989321338724317512314453799599468888155362208272391270597088549033774705308630830228744478642529476432805591528793078045623849889158320855934187707328430002747371747426609604745482001193416900902494476405034226529300703610427599033321793458015749350296279627734813149372338725749428366137701651079719258956150047815429162210483504741441986851851302395315263211451201299301018985453840907266603763799930603023721132934217576046473424728288856387133792517981114852387557386219578419131253633454945656554422282939060578462139721876271795005141104798084316693961638574801048545550896282046274804828289121375055735549740598222104782889547474312813019693843352997234697873966678379121742683193798223397931114485764460076532301194231843635645800178468323624680599163531304715857329718311407610742149418612046389886699229162086126746356320115347958792389161009508707838410960213022097609052008952352334916729814099315004927851562819142298687632349928153934062990349577224860422561239775314173653431269070062461196086897698180272980638299913695405206633974878184234467127498462339941778439713707705269510520108125013876760458733834084052593294611709601076054353066354909288086039794961032417931585786197038174087903510554798423789708752433064332022895180892536988283522486234876144591907384188460684272612480924466095455962807252900146654312879249382929088918637083857780689974681912393557147354193686050899630777370323624175238207882451067870436534794310143132189706400211778986081381220693993015060417280246392546858504981785352972516550616840126268943535494132438752000059934405448804611690492087582776313052951784465999534651685054979348545569847909737878009180858929057624930880045644771150828386466882551185465316287947614338976871813561565792194322015491778168214576732272908046571328812564802424155091838240310624538610707920082193617926236473790371939284444933277173913011421156160697527656484390074601908116387588578291510087834005942340236245992375902186535760188322623930224183814857630726772930821504521327829254290988366975659228014764139057776772545087976942244441011499582260289559950654111987165056215915633574538142125431740397213159921485353994214733923330385494665023268107719763252013714083183256529767387467178240925501064352845322568266697013769504661846878294659804689357771626256507590668773260097722542897953123610572659340203312748001851612805642727233020594067746767477478589738353562705528223802646035574589936216493038494248912007205450338006271710255805622248693911128165180554664664221117636819446122886340205152732037286613150636094715431772121181629033004048269494567677084952397203003994401810366002643130602682053018340867253764844809894113344231502383395341272593604835602343027798636138509055952297919583274470924373871406686504596515322351519768913767357605340418346887881262395359089479715525077667143469905169698994245056269656947739672225551562973826404523365608040983123142252093664656331908699068203767582130098691062519298922671877469385409449907837253507339056500145435585038958220440063391789122684957357854990731090130551095236751483889206346350675117600802371551751019919128106129867828874807056733174056614797862820194471135044687811723706952188890112407350903790375355362794421556931369504835656655106976476005095188020227937690769763643684995208606819841014426572788597677347572419537994562505188697787666479084509735649582183920660475207217713155461793840826379085811278173139763351963211737977626883226695597828576390595055809935047235950889924371702957911147022757917337989560357835239266364431276028700599005155005986887424005306515739454745343301116812928946879139856451280160893424857212737890618312422084285836742997812021105518824659933298005815270724393507167793904943212681870103854764530168649004336332821037505690988222764396341383859226549730801455177955646358216060825448182747105581172773693965808730354555555666848596030414841759175958069829288002214870248999336875794272825473713539479208097320505633218230639432038538985471171885305630222450712069650453481962843223553419648687812028119150698098575672077548575246896858293950394927342273962419449590220212542195811203098964670267511736011567485476554198611203372132739457712197546677369383467586119617042367075976157413715570851312273390299151501461869500099158517656244869952345422788437369157704135625510215286045046639317446792049158885884067580122587495440342278057033091430718051723059034877528889611968339003482391877002314036329993439574235822704941232304347913244002986777897250206019018045253736502682352994294892379574362082076814512611870753687415813092484288607585631791473067333650465314944183070642646711507186615533977717663809376440106790177289039989321346830361005982518372950363248347863729966021826680906400142394642526305881697695252332872284804043142235761085618807830110320978464301373027128374239296557728210716958334383888435531873590570360996208296831496737102939504186833533886613759311321734462666330783410459808246495789904811771590342825095266718849894416546097735621734759607908073636893944445292173793461074508717222077826184799296747024083344728541086261125960917613576925150871562942314771372747571836298973163554076558043898055034739349622129870292992373096914194509200213803701101320943001025176022565503917997936471665344078404453294886812209974281339545364040237461108731022431282916108108280299495927524121093247495798614601223152050097341755231979080743442007391591455207258795590183455957150317352805676739677182632905571609633347199033537195683374712171122962456463669316606000611202026116544387923739929984646417070916566036243536133635439308705347711116974331326228320971859539403157119195996397304571381281665584585288786497820482753480040072142800637982649722088901970560376653028857827464737886178842662030459627701172912005180930155755478940803670406945982107969595800544050461242675546711191988341196247043361012638969416456297107802288518321295838282674122599841421144604249494812753549331183914391091147539028560520192152338847425005943369947016790344732136075275643039485163785814536730445800031188275646210088883948466011552674246517679653554303456747814609793207319222413747825221462462358385943020499746519614604721307626374934950729089800062659626827054561376094895549136627967779149485981209240805608453711195087816278881516629397406209760537841259336697630733375840225319585074189825080529707460881944276846551880168720779891538342411858995374171095334102836647548887027930480618191448280081722812454250293505748750900844516825318498845709072395899920122373068355864170823388937595617825835193972817758447386668650983157268034638898470631667904925239617471228167565431131118651163429103668066898001274997786952831476682379306516220477371625528935744197756362355466671446501529195534507391718383700345447220304019493218036724307224736357625663064962565013506569325622591416481443496969126334198807848243846273289847146466018555272650019022121840243198653036833716357490309417244199483432232653566005945629828249105730348886190053657117149515362741928520331472360684086224385960805327887466910027945409287165256205205251342532273944370873144369530783428442339548425191102362329682398460398404106193865908346567057152626692648399818056971326375979865080440491095716395560393251429896805492555951251076438744572251260821118803646712888381945427879445609437398348565333667597609590780832429775694783777491896101113542948146399577071449971308693635743259188261154212735939293657811025066510358836384106316953831933997709511803812084239260972113453356588129479078254470294601165950086789035072387121515957273943395263082186436781509719919709861825762231135967332482669885392844209779319650468153198182947630814124136674242949459885812866550609345488885693129923261599579927325388356305599911415657944728465342971859934585176496845464658903358622559940819816969923734180363629552535032532348427941070758162852666967801936337330882940286486135080067485688053188590333792688056827686681377031992880278881829482086395197420833402203450927234667031503432104059571017158292176584549253798927031815251615037332758743998278718415415014143763484429415573469439619361593994750798668277002563716592684985142290310532953459902260056013848317988944942752216207763435774080102155965241326683994408479203927755650220003638485238411322051021085868149008633943260656944425277342696806159573583452888363254585366763633041594713044740810893268597027268626436348958900846689734644442233707807297125527778208555894068880414033353609333819292988947345521375776964119284137011505262785250204473633503553295132128443320704538579597748522667178230731335480506829213258894479798636143753935542413611376869503731333317465928734257686290456601602111524407750310866015622783483024516662975287908168526391771286639370622850061241325093370109318194726029230694775285717619078016987146177035501985550734256468401323841625320765017377631488623947780170678550595157519342091901911139882306211866824110047698380330740562217958602747477384035237913404385014985025655534512159103848623306421906561238775612662993681043838727455328344776917776175674081295364580293856623625855688322044288842298276521338240074855688814451539609980430671572036133570907800352456138529241627745651139169088781937158288577796571217427554534959541223956911526426486902420754415695087367980244732021620087564534269329127010653915294084822634144555040469357701346705688785411216146192210264761784608003401378401321780560113496630528562453317841684842559265959537931459226626319590439306415246621779610713522911916197793190485017448245896814481705783331236418022041613358868173239741462211573674598468513150153690298364058002542258199666594685674006320176132342810343403362894408319863476645529378847980964931243092800850540009867469404353033558474180484301092740974614821176140165693031395127794272946992300505532821811349714147946207305122282470664242267657481455980901689848580667863845478030444841054071730301719150279517316842078915464295285090088139536080269894276716394232600580329192858274412658993631280750221876398781253105190167813474693903275887122460147096560713570643302076733327008012000280117266264883626917233136982181005530558682522120333831476279101362082532085607349816336120568390058510642195662819125482356117058268723552314133424603100480802288685610386559798581302642841230042456759847397605677790179550123677754327587557414509056064714841437736831315411000094502105718115565989535810226308755042235850503581729312402650089684939736276758139002425006391098773637511758835488923798538567368387091816434869448315787940844825786920437286177605026379341452790379386103870190365015134414694175772814641172041472632159006265660923439131313332273200690528647590032962940597357301301675127862516684592359122853586444095561693116340013795012669669300292429431795008553647173619294729918771471898961856537879724679858745235418048977282996301267888644906187411339942492891313339716645695818652600312340907221324557769105692011324372647191912527446683528544324689935500389980029451777530368856104432096998797002740756259025352207043079340423486327281227917891128159263034732408844711047621260729887804556774223926367643679616717790190209175917615028603456193526478084700940618544944728995971455139111682102203181783211074559815926170687808503995424427387270563000506910143131818749116869085745718406708129930247218881899864658184698709290817269508861160771384469601137970916093551211991658534986558190535680178406167733405468659920699561945716597760366882039959269715334028627286403110450927923848918801807134137721306968964428946012288555034013915648867724128826163720221207986130215657523024682428379948492846995601279373047296686285369060106835740842503210122857244661059629118903826599455751402143700297620862386976442814851394646397877984180745886772758220636367558291459962204413299118539562500540678330698075707038905464917663363705391713580402919985042660274457838342194413100070971323362145245673031019586563235878403227254557293519690185472233406945143069149985101792132833177785787725351193495851551455072117524114489101230333933850024426323342943787990463321697831578104283819409789929126233840185119101401209401238389054528456196428533511119780124724126582063746702993184826278096132766026652977281652434392254676297004481965541908397349934353006777207524173759982643178570778500863647955004186626808156747601584806644804404188702553729569586450774569854334566826135518047676029881346244098458019656798999984797358919669477783646881212141834246561969671466975998846255172581123939029708316115966043920327894495773653644079843400776936500484022112265719332698758240228574767830586187756538365369238513656619511871529959706660334874055345826453895985596462962889657396093533169648709331585469232910031727449132415923063937194879861306014125979418420305691369395278220285834504918689032886554261899697221137491610880974073307741103877381280299118751477233552479850377784994165953725505112867256770670540833384804032774102993786706890216560321762589174403772677927280487895821044511291959237549311658497408928195917528136782985616588304746184065984649377528281248023271284474551674312807480032637472073675189222920943660596422547671960840804947219106625397716275110823915853301473875870529690385435531553486011036596715387761469254098859735569847586588532208474541068478486055643401767952999642058047297850322824809886776821347814203679469491875232085866128446944783746952082228749654464575108638151815458391430939547204231300847756891552626679952906022649419396268820060198259405625270568819694658477370368049580663504100503457274503553840326246021951848025136524271543398195141400148705788643487983160242786307919043380608823511584488789362629631292525756711885223164048243554140946813356578064120593154876437769072835123789449187892477840291909405793645400085054887673807299113148646199791273859259612187629126652993803988422163877180063222583154053933116215084866008385815466303507186568707544705062069690376625737804301752649838426057835875419292340392572228210608317560913697349446329120501642854224660075480717411119697863435152949972119403720362654704835262655919817110999997919854057823057026408878643721387049138012400769957384463423171983889404277340099670220474452994039260309307207608041208156298991065219870284931769814434385007783654349777367052541651290986416969321114222644551771102376805541042634267752245869642210219834480497939636320447091886082420240902381616430347548753432114445329122771524042518421823631592774151281869340123581629981159012880626552521481211582090021646552310781238005462024116550636902120188882870221456542580237393904448544473936142815683054797914439122389444784285257780001840510026033499851089337678409728393027877893002390984610567311531796932377010259048481483286342812339730450315489890817539341248103135282349476665830400180333528422682528075811671957391983674527980150657689267342940260393693494385534159050118265862226101920910995065355872479540074461479192096862337983079291024168100440294316820997567322392373136922839905057952415610931060647686749326350036103549064298802268932081302572986402340394532572395254439232232882552146922151168584043323090057277447036409688344578004070586781898184820548751790569531623158479325821964639086678475942036862347622686933219940102159724026210688082144918590258804037183441426791698428366019080772000056190647670053028781376759557053538924473350293050397927268013111361062177972944605234957765539151548890379498429991993366528882885256517974989628367468373859759284057610403355984961279487527734929735106049948489575070440961067343667579938677174400841818653024767310944521608853414561583595973667443847324155682789823610451723579728647852786856902223652939813559593865089840793238483784490727057801210768501244750394637308170020202856301670092805435649187115379509201657563828107854737361890041208818145236392933288728924619982934189542302274474358122655106490829773230626026522246055087634647181241243518595353868275555791651635893703435589862901084062612566101068018895257304508832675210829457618405399633875906526264400164991878075046365336818206145881208137110607607573391417853213921106038359007008529195515346277576817070627660208224053005345701589616730097418915124640971507204760451168926587741142216268810453641677360808306275095395732341048697724717272051504227391863804746669606815982200717017227865541791320013596398928066107269943277965542607599357741113937132673243283062355202499410205651709790100452636260559232706693249636925335851359125518496914119821712678401328463502248590094502248908755394898158912379822345473439314769773191044947522250839947670683893343740165962964225216347950189422327884096018416514220054432457521918742818346143225949752907370034622309692515038929301765932530304976742432918251755641104602374396341685307904488254830876252077977412544747855113523578316731011897417276970702090104662670702859586427572957522458768959830411431420162341741439377289194735905121048969553230334529840713289600890577563533609507381026426616535886570751708134700188528241935555936694137596749769528543535872920884639233887694237448605462080537662366129988019625488471553782879290354225032358967301602778867730495023264532780063248351700056684724171710231804720882607224439990635478687686193220142714789730476761070298347427515045966726811184811468633049734013574970194821530362830522942225365504976376331386347983101845625981356514607672918606673822360991824583411665712908602692837506762613447947089734668465012741938508990157253844682380729218992929910838514623632077606580868015786110597048262934832616171452204075526368359282366541599280043690301745178120874453194069730256637190058418213557453613254462561129508764244899322897087086580636002211420197526183271033311500325702833169740592818105043870434999067600884070139160172780187358888776264436853441104375526490392600094999754521833207692176890335820650714892955871195842470652187278850210109095474048072526512862151685870753241373777910579894512619931851270711331200990432575648813686171474695702302227142200624457358450636187234364230300447819931581539480964605489492798482080171392877418615371527347608547190020578526499351801082314898152063227580405973243092624737042311218630652382670988399812749250497572462330985129251117192120922914463386923477887513713423611351635007616515686565486823697773014231329252810974684708614175030598423357781315176330887327163949358500787783757435025776481555366799490838900822289433657801049270962718887778882450871876962118140545109226454059769273139259000999206798122213277988270454413163306077973770278782031883404817076939903088382269025262879985356382484555564750593532743892292145572286956385157737036230135886202118060228671337014509226091350655512228796609391870033099350255621805023840841623981393158380184400708145763186907153552075654461957894846066933854097820696305285210526144270266908307399771300765754078908109354576755450834901941727080791938587665845543507687349480612727571585387595283555846408698818113315462677502924415104594512526005197816084338357477081426672746681478290330237164812361695472790422604700365933135203313664618364864224921739858415513235970374617186420269466521470109978280497902942770049131845792557642089422823358229244239623780464348456249703608248523105959150112903702864277412835817001782640255735154251809489383233517310402235740630103864845793266373159047992609443531152005721008760411453488438410537023348319363956627908288627069981916619198064724597749599254628845261414236924069539611542055795113364013356998487041442430353599747072719444795529699701894708092459678353211255292411149367391443850448812207094861808502063359005939461784720066936052145368319279629918174489972465502834173207937081460803613410220068761158884552703786173429256324228143185187565831664440888521309929059465903639889782893407359068686176594535198184370977877893969199284649159082546080620935599514897436681815502729732955958888012842605435680091749139664811770424946528337081002224071115948438042410501072286963715330138895527634696605707250574271512129463569382818621307725933340378370490931232756873367012831178188757582168490780186261230101969235992777909501614503638845728207658608982140295550324506176491321269792417671098362820730344618390803904520099527957351507476066765721894713283388491857119632225304351562591661895176826553817337119837548964485877707744587531933490017235567042940919497791898340090471719928893245132711022333023231080814428463816942363112896092300682576867687187935535270035661974384638026172279805160705377989011872392038784140865956985104428884820385907306808446181827645204442096444532274938149835160268926061173036265968764563738237543439461491850760550246086248109556773663327647150272607654777649128861271345967769827784972826565143569432886186033585103221482440851457444474438260246793861451539364267133308281157153297989302679328434256349411838711296777556062127492854310362029377311377523000111364378109008767024598665780135118246792958944893220239409717574716043548254597191330153024686701030703907918601718862422144886306099494068239661326724899412548354570956446585158590619624742846695034032651539503223978936316559534135192961163775608908320815945396410817121586727569754401500054704995252242895179586493380265058715928760935676910465899737718315835947453324827497757710229789127464828461629214908501158075825710514568173362146589052099280130950084785700197881234492588252409337368204772118772794764051271495888888135270045755432484843253889364060437722871708078178371798205165233676218725074489140210736198609971717024390730998433280746054278933259140055298714871776614521277016318812856202673887547578860249189926399905833165841626557405131948212387029854991391692268021314359895458545951779150712053262251419758799298844712576357604125497471379590687947502556771968291027095840372712129409334808924277641882130208705482342772445638518101582762730283591031075157815987888937628511031777010164437366767154076088035481418598329978132580992306752300875617276915695099169407813918443245853738775889828941394701501251098778447296069878171869138757704428109171148450950946713189385299673219327619831064132542628632835794099713250116474994946610994469934615882196677906973119862983638509915630154272131392712088456968207853269922818553772021578544045540760660396986916679186060495579874962772209526224910843240879792464690324331784268665776646272198890875256929801248938730572807602126966147421420412002318619648689184015478413470344244916895112072253820756090471389474932700916375387085405636950856818924807377379533350618311801278105144510747095994393177914241577400651878240429782235310837190078588126266382922747838589176583511637831149093308473154665556567300190705890765411181858193369947083979015869282978673101388272603273208484129065343015446165411704709351463433074513831569640783817408022197499228298795687772218855126721668069396885886458785538612776021052032036832200807501349476916996168073096142047702716681590028100969103519043233041971086203486016034988095767551129071755929285003640047526737328844323036303113905451368235396847895001716822623912972962771901071325020910763754791658090326855819687391944865145085139331284971982100550034636764103912686040472101897533017174959270031104837537988653575158732053276616503174506563635142085274434057364322263073679423783404328984308784115172262762253862761953264095127563563994802299102926055100007627494149813359186371082505813715773886479035093212336515588262209337699856783274110442984659279435123254751507561329997876985371748010675460047474573722579270875072859892328085677780619632661527408224045116913291329477033752599110385710976064581044023672184880404448180101737110117759512326217393006556179671751336236833963643394123273989752292122931076269418230124398635614399669613739904477981571602787345378438481774091809515425577748869618771417018642678916407603746001047160569508406751027492029844102475245517390747469314791175878325995925501827655682160986295165121625079193372416921129541136756161646933161335699054792652144624886354957877421872762355201791213157132144304167800503357980687976202715291578133311720248243185709218549873039065552407627562970191085966794127898794366068736876129949976835629097141963494702677918508599269896056675104416279958667417681365223595603795951424832322823820198144848590373063685829958621222356269883273149313517331287991193800810410775755545985072941365048063127575645110513723400757046371730939287768715210482825526882697158708256585635194983685114012484818317434469542136563724527137149691338085394977647416125630088322047833483155608278949657736214307328005659896467158882221771430938746810990258496114747515323045283170508080220010593891941012059412359014277173535448462408938266314017093732345368317444040025963947768626363467762354484393603199514988215989036680105114778716923798197375309244752381229362066625110718081916542639597551034480717719215659242623249005415863749518673219840312447718173560241460943676531609275926767018667391794878537375476659789077755823140100560472935485043195057536513728520292654347084081477566991625637729800823344051394208743094485181226533204102159355219715147226346648996366801843267851178678953079701958491705138656615879017100687825005542485400418899915349307683624165937555041078874222516599928151372425300536973554358560169311207169895599659850703554493403369844078913436234460551027451436208943482216368794829914578322269922855184695887755671035248260123515624074151327544345458272301845220657962615736255556541734550663650868147607278627778262879765751384987964275785975655555276368452524069755441682728063668536098803831814654677667860451645971031223857331804053569854666917161166286869019165723108896782491595884657957491249457557175416119685784967795579246355078302308560146558333959766277776786603023878143621081743536197010036693940106429237232772282006174903667221196798105293960822516519919036316957961306286128447041026074252068414112208939688771581548774371575479135960238382038555234189032136721284603613176705427563020575412437452059616226379397441708908632766783017047875433026064944367800071606968235363771003681306587869427543229429482793200489779188393534304484624393133656630342461362287474947973155451758425410500107727113642698225222354659528273715978283030574540072038675800197703544461129762299187200281477051211611530703727900316220771111785221286884641893731971580913960073267530492583289641506812665419798609129769290636110998949845801773772404411313087200046239076359328661785222194214341729125129821381847703171810955121172924099621241750121204864941117108107919611984503365319197086785550373899905031409308837449414495135747561669512239255493077648679366784648372229190440070346380803550203578991730487634035628591741328532048157774169637030249005514907283354721778167323993180003791010626119557478313013853922998016557006695810131913646314246774285315214215516562209637458899975618548875230615781088639914974568812254596175501724028505704493352618332731369511762118313556194351155861425090701099842616257019674805483298773503361233688669366037330456518392850551038784641712701989305468030327176817213751011867869270508530274739383080838327405533015605731963003834662870070542909650087704012182676995611009961920972928568559769403191222081234343707036447825112858959491447164494424553985210435301765052482570015347758040011881691964593118582115765091803660674851077978135105930990291585417494534156981858233546282907565798463813330742801020808827068162327601995014323479274618356825018545768161756300565095047874353397447855665628401518416387044148874417506304147050131257121364923180012151421759793746859023953592721179233599212427860292532571215827614771186997591883197345465097960729907874934480762518377524350092644124922502859356108099469476389573235389173655597434981556836769382337324889846902728268804724942947737881854365432092008784253678319179211293424973552049610710779302695342128670889327018870874506791797866074706565570183997377295756131939300664652057412472435405990593096679557104584542892151248400157125098273327164622812676104877034235270876455475206449682289762014392487404892562520884952752441964592515895526283879112284645492887555678801782074648073995240738344059540954068309095693504056107561902122229762753950706431247007072205825209706945762414263969561302293347330505621487876746475444210368345613187968086125531103162007488318636149673904486987833914162959374564681397395388480306328949715580244337854471482610190108341339384297660342051846953449686086306971465652327380334370239762715552247924219349580491757688682293316377347798753847586183771644567933736373599507939489419995646205610962054996528614281204117644076082580480237279590601801569469072119123276994960848859675124883450417652806772582392053022318909271914962609023186373963113904602821263561529172133780050062259034377396085838795181265721215952640784793109173885456284865075140615828331340894546112795253154882376541518627734114826064834546400447438668102180496190377045517424825863236226888944480421227442579488208144520214645140909521673320889475292893521954701636941144828431136486902436257501061325492753569121446968534420508428876606160304760879872359987396594309884477707907124610989583530561864846304122156036229404409762176248770365368754378122388703146340168320629649259247631282375541465220289498720779029837397939166145294155900693896056795812248893671793134359683230148637554211522326406309833505544243141920288461953144758645438093828232705639723802573362925182956763339038191127675609164659268815322506305487375092957576908171694615528145894912400630626195232859263029727598716097348043766737483609140078421221280347996009210598330381021018936045730839804105595600850646215772479642258756118327569186045445196235006285889133073566815907530449293109003554961652994566807331252014151332240938395146348604700515787361800635569433171886160410196379473309043636747012504629579086619886164430288722728154491835171966719808413762236056792801685805053914578462693377334681641714541157883975532611380168187214238644290887371366962954312192206188845309329080211057042053522347431159663501611786627724462585790215138768279798389370271790683457820598847434839975788877252666376635298232583598262408380969515514741995587933636157056523662753412313213130753272448341785404471626780513637278693804721608080585192888447635039345332920781667951098514326652212767250710383571024119273099816594644137940930918685356179495548610435533975520485796931294203058884175834268369870520187997538092420040649277898242904439482121442019336940934462285960849753914286033661682199205920058437883981791885774322585371265376820083173473470588806406286429435461324179981840407462980003677764778460468784189030678598129780648602579041936004147571847738472898425536134731001746281116452990727497400331866868222628242053195871779699810832836991704530258075879029052051995663619201474790271083376158555248750763051981727156208382519991491646267481922058796879275168203373946801650405358231257985414660713254128426017306664275694603665600591411835186765702960496018493963509740125781757437936988236815848291062730651194510831878852499416351711298148479549111410620719259627416621798009146308112158082827038364585008460432588616395627267453251170956675955424123859924213959494708590748377166840454504978184186516439403076250315050037450313030440444945917009831219434259219809274009031549595528022295170352196674656617642406401652943942518274198067285541624951871044874652022249601976211319068795603575408248091475264830596836909527639984421884287021058035181952982233262361120605510143372066047939556804485814863355285911973227361664573006350848172669292444821080291742797503812025030730276121259335295161112292139608211549982439553796667281493888923213094859523299203845817670442090587238080279824662925629018327221008811481720995116670581610684931626230997654759466794041853739988595419063591956461308669952452693862509133762351566547756146498707215982693158387444259408548213307841772814513355338984069924756073962420127081551728087547771396478715427798897336826033027305934270547094580741602305792924895048210348677009742663134949495592352894831052337772720864394999540815904164395433911003109694959786512351461938862570755037906271583651605761302988791406857662096913683303411308275509236280226536542861501709328487471556246043818187220971671678007252353427495008724055063699340017459919171627670885524207777741701417743654489951363167610891848327051047958931703199613906015977749599120422891978575076542858542434882716183402910439950903075891391363925941396493244308035290193172719172311427971618821890879113567651532556583081700870773329617690280004179069994468935459504204712902938414516224390965998969262229550061954840509156817972686614289885805433443889398660521289015273483607184501128750321291871302731809137849728754464720995098119128367191005347392512863234743567558748404006826349504808333018601361583235863807990314586988945991368573274449361329032884493221838267658988277570642479817088690386183673275766037261108187774782938380666350381579149303859838554547221321775147460150224655099306508268013038881901322227582023636656213144380018296911926093979746434169599050049486141806282757915317783906680403144852234380528642357250281954448229642516027631292381313383602989250002201906175640133588077549868660597432086109469562558380009838953124004167025873482972864031564809779440621255759236227722757537327198407333338622243930901430037330079798535059741828155141369269777030567382900706599903589155030758741505917589614868550712756336842422990654019518866222998167447462537311706819750020865396639534010711207262807143828598255109828931642158531177775166905860665382072345286541034461042813968970720787488501723662173477741266992128667579961805701857570919272293524531977395860359545641553855926976290531498636831178670034831282704073648886715034454873266466038030030566948453464648335357067676271762634217733561368069002887741577385959223990227720356975869853154253980173247452282210275487443037055797343321495077705763979423564721402926510414693044973847460839915506058659040520517367335842741660480269230697587106503134645364983094468216681136112402474898333167815188776892332876485879228778707229744562287885042907053420484186980859150701949496981413029384048696015201219643614492207702112225072999801216244426733451295067890506104690998760541132254041183691226496449107686391949338113835315904911953388235176900780684789500708607252511384482393636917073649028079586178026418023113912799181741014360597515475977797244293230522329381605016032654637849080069899395155442694192316436862767377200246547332074234828429845267453791425248804958995767388645746292023361663841646932223986801334650461220587027583966338829423950716063513202285991726930287872672953157888303200108495611029462912318595444498457498511773735611655284915285562068909697795577263878988616539079012545473856056306355815513550575044205092691517859054299501850379032641308193304335585698858275575442774008491655218769292992573409224578362607477727018892432977592478657911601324490794450886528518301984002799173542219034051100413756752315046035364992296199001573988470451035094377231763415964972246125290233951596430923126410933423792440328391602910796192513353464650848050834657630140896999789269362928671432553439707724143119501398243917739685486015511766068365501463407510659605080100201531201843980642786590318283365940464129126410709090412767874267125194298907493392447593968756113544988511522191459765097466066905931859919022224674532525333093286862382629800270440919033489549490702160434614143949559257941496042161423342633691601907040667017346160458440715810237402342152099238654606384578657548429528566372894557606541863014946383179624430362653610267662876582831792808247071721367319277389640022163151532885459222652525790586507107565444903434422284110332122149143382925564561027230345641273688801593595731086064614636897695252222314786174634801934542251895208952399892919543000178911030384834472113271074415993243089682145640236537932401601068733343393938052169747296291471474308822713530806692559214329520823555184263280872848970107186368358769841553371843163798483524366362543211665849895885611133677455035230243167668176045438428474985542606532142618542243681802462857511179265527154537319605146599949312711718716645021892132629358075736383018169633487380529352111499986769718417319174836050892084392361830415679169974856798973648439401295602266094321600909920946326121579369598028287087993401454343223963048619811724638872886187831213030314816282361115880876055594313864561173345064882207249503044383989892045178512060074144794878010722797702177308135202202027798308054260847727722192304608020667598579192885831799830987011828806577116176865746100961380014800632790457095223908701519741836360373744238001032047059267305038274167620483101822216587719666602973433050601498173673714569586111939301598446470866572784870221513837650360710598594862776132451001311938706770910742888798504922406080060230933101069782344988670466559369933824534330507087170768924363810678241186363644008978066158195886326144168224855070157594168024825383048572530800565422522030840294300658229201617773548416773760951030419280794741952487930592384512396368288771649856979188215628950410076893925542678720091186403297661792977863118547102885461692741484654025310949594033602351445759022693559207970556656258347544794732877651762371250864263788561927901625266380425451942178870968351381719878994904592545097308259657803023610246584640577938194564702598389983815046119853187273596394830566508903073359258057951274260525639028319916259984106027820803525053934173670757420345899649164888070565168430486476895443587108491799041333007231931932917156296384571861763453603202517594632309379461194938835552137163759283651176035145781949445014133096050951396297345695268382727909433478585819961253482118634058022260607789239820641754470965654329368304538590698741555885932061520219684813647457356732519121089987786912400721839947054563303005437532661224108723790557214221880600497067194960658177368680887163610100485413844755215292509032613511397205042080414729425800927199845087673719264807265914201657986844016223004892467923408185486889337469281741962205449903654199623331497339909601218648771447865865325352724475688922992984374261909351711123181345604952255864023613544193601782481925104788902095396132460957434945058811119724002955060267947287737782650276380020529212936323668784683969175449797364110125486116582153706437860742073814124695733695701163527761559301311617642074343416989605661247926492620376534824685333197204428104976349332476955941467020082108772228552740970658332555203809838910124677685232126860517683720400791368345035228206751179649264616434579968899924162387662271227118353076292274978890387149318952906860287924631082547461782629233538562462444560005497154477800015526571256015989575908405270167690218000924048180400495102466260556917010935411815632531585302060196488229909527737068327599192423101168949242799951138575781010311607422496648745444628222938748205725275206138977716029047967420309615583600533687778112253882440250987048810528246166490060984507663337905784413216748572902735384338829543135559611362256750719824953663556216347063974408595180235407113488859902443679621598899610953839567426238347721381056164679878466993353330234431974696783006864942868187050481281307395383408501955981580349678002599120619071537958464524316669905576100842466802906173502112909693280558750422938500264113467996571107982404204618168280748670727066822013220940263181591303051510461332866780366699632971860119257724534543706786785651080883350965717022499879471081431567610434689365659736313840045964910593888649464929582367161836553198534430604391240889846497811686532624355287300727574962584557660238050642658865547161144854480516603015199407690068259023601665560675702311596309417676219727500199891428727398901142618588244876140244296675436193239650825708070004994227379786801932311595020670577510178469182182840960600408606725277746514931162336318309595363484206632107446195492756074920956913371033980048007458969403486941315744068640229814568037150342872538545014072731380983386422417526420344353236068123403884363685797825120279535707590062827350650736277508401552253739448694520021697491618203386905455245123015793124709391037077845802568344539149125540628430423977881201694415071956174120140216198782853811296677022822223419850066210632396093446505982025407670153810817638020723852519817750218069734554571403859595751844549236164069041518162284021555929087954387262611180072366461377644596458081208671292681410751615199226102435837806775065948974116450128286883371639607229730152888211698483861894951715045037869046773175155220652966672727331930356970754980497105853876184688309995526669836593251178675832180194205290293345407021216918306575089907691812070260908653430582946494178780217937726301539475575795717191059266776530312297024947951321781355704599577884169510533659051292613844559972364403546771212375232168810155492706120588368189480972989935703211324543541466285555544600365758181610274050454401443519895629799936367931106227044541229556590778229031916918807306716632507522181587146580214669027338333638353821275282859707117350067639564150342164074188125186555165683133142530302229536230593669036183713307519781798982208005779788367006542695395687445040746090332162249651700192201856097906090555647844372865645613047579929049804662785909808813185621611065232569259903489587705150825888478303745845226791893015966038111487385066623129968339243774681128723031252817122433811454669238662216743901977144405943041267587222259187252095858413527983971776489462245401834352686995722979501619334014393934432140150026906939537837360020666705893902040455344833847551768612284964915177920815471593302263947723589428878527981133667888360335039808688459013597208454329448831243268821074246258451275220553709018852781575734596412594493168644262018090416112275948556959359616204798927618678956327427441810163140810504174630131733871440786064113525568207554785709860829892278021819986635557539666585940770680790582669102866156996957821044380703578064680679261553673578453250838862808243810044374501903107202997804734762145010400935390222098928124486609845657424987069305406987871284771428625491351864153969582150821064508795863427464856382207987492005659844846427631620948157358653614147421352027729556515903859341204713443592160070120964913491688133630556284801806186832042806260702295505035978851661644952265445436393670420789861592336658526341262702239244374478447637892288357454347739437473580851373853879048306922741757475125307409801190395605219740380617387644789064026432349535053047183306656420846630163971516341171765860132848390883440290190296758835847756093084514499227880957098997840641232956311152199766996678097571164614628478566091847709480430284279377493950593675991412883664090846384177265755038764189867312502392384407462067996030897245907093940801294648308243644703708730484468614106704149285676985954943204810185488562633606390038830308972516091113472977587705939285223015365586230510775303443988609264495575849689920207022353070175453251086173030892213257057095125422927109464636098898296708610870951179874298489290821218985518940017412696224796354088100740085262414185520080154843760752494399324044805045411554407177167163768560949737144669684133423568296947716533783531368796180125153850518121255832558474336835519099139390614013940731740547301268972670814258991421320171815849563757829077520267227269587330134193498580032590566142672491604298322147967626164362561704133556530880121376222514765170079230847524129974615411115240283154917100948415969690168207084961193701362688293997723745224020810552158222902403649170750923715640728008399110578829861339666886156656838605833289316118144503464619174018051857796440441036806690193177605164362272443146663213057336776723977707693347231348719172021326155098588083811351507611640164341175503428419476056851123723537898684006557194958685684987305175921691409160682666053221961291092539489304968748606277107902280117901388645672687243317550221072350805275345047503727639680809359052052993169123320607521306570740981116094563433139604622920339304569844281626837433326056150177335573912628437338122238973039014186665388427815154201612284872732223809668001680861043518995389137283034163513952262185623793919176135264275470796216980100870309347972443592192681424207803729806136894770546120271753492967297344340484393826562429116112940157675890221782014189008302562723727657768412858505039742361729268566631375207963196561624394798171583203360686797197584786703941944772177224905113544632129843725539240715369337848304223479478862061273141426915377053549666601470101451159037697956843233701335459797684602826546869149645803248332394525107877196716712897188063676439994243858383283359967709439121378846071937837570073901482189393821420171512623708188671966614864632524463840587274557875015748037507657257365478819029340500344769641346912567333221552594514863304019416055609142670673198569462247976120481102112773751620974087187939153986409352100383340239113263015907356378912655575447060700272139388824994072247622744849780009952507611500613595288365005158224344128651694732588911926137463720759066998163073585041247930897538680409087489616692413188594959256414419190989867569288158106375409800649606976852411427779716419372312591325768360805804977803815457457630094345720786823272441802158488193431817879898154735087003147186438671569505297382019784073938798227131787062925988489738255929346418973976108461729236199469806094451092133103137635064411582886301567345078548611650479442545239114785491323696420975859817171109656142006753370163980150171126616040498776435103125292273424739249936502004615446233226529740757536681277997375509923717283925516617978300020898925051736260826530803287550672673845852625199504739542750003535332894914572110572022348257269073165208756993395599411902988895484074074597930761757058199235519221076027104946833835246318252518391433327029359837467713416224042565112388683279750026311303013656608771197572073902303120956182439275922311380650476882117131145024393622193611851308897836594149599401844640224464021078867237291162449986320687071556174258520935701250247432476618638747130687558960781834279614967241453101213514527558373562008359030977939344718966523395902877054323000842841934297227286487189371886285193663283193901253159024791436610041159319760738731406901281865515094441381411259128774794384537383023005810615739230984417444642350237606797921725702119856286476203049870862018613171109318891156515383320115115876340856270616665270905511114011755723241389602584281312393790273562490440155726506628604440725627230013519404811792173254206469495579710073581103837827362980403690166149844713686486201100071217595130656410087490874101830504729206568299837617546654385414452357395321469022332949605181439966851169806433895182860127394222827054989811373883407026360274146562586673543857694153907718678127779663692942845189553977360999428751141384096418698585735559117155403882071550930068886338664129590096722744621197251057975243600737133150991949749816460433859972339108236399509288855016773570269381161328100169453786979681253982441669267335154234661838054901301688422107425387632734565653521878757832171240245454360594402094051778867291424084308148392693936104631093752381020709419307140388809827265304729683850982573715334379462916614251737755426974419538505195832846566666922644087400283242046861141824128968854090068227018708188199915426129999428220320985568573877147832603138041647460890402987246395066915537497479555920373640731447714170233106256870370750084769047311401487337254482707524174595954972630395984440478796057295355498888194117835285504836371929366026371924580130083690969987590238288096746436030949396301956686466761909265964379622606905634576682117016993028862888261148352138803790457120453822987813753007453620128217705324957324198541264231990498566800489284570741847357543194205643427470434337688137510160570869823103040580982031224584590680501072259906241868821250813260332911142231385291972021692731659945949729320839696574550269446268102334151453557110569790890217915463970416299422609196108170162714047636826759310950624547376932339188649804668370877597914644123352494102091833433624058547811561286550720924630315083500389165925263537906303990355058598242559620645123511199946557953876370007788580465816730732024643473099153040131178610404163063013307272580011966431982734905736557092114440605173260101643309635065199887513431851374647047562363509091251163983663823614475776811117966649668624892195149118989263318196316282595293550678397547398192646017999667889836739996700887943642525762551093344026611078971962331596478073718233638944326922392342762717180361720040465881624292264418021052829243311598658325937264860088856217147625898996159003599029241151647993315773881235750370911117464924057959727100387377872451040534822432212397543166916578019133268086435160324144339814702512780286781897453277498973968727454951059308013769594055328166407178571943699666658066331871091846284410780557478253271226616549091880045050693432538805595129232853491159859835935433884018523238036953258003123831964909952925332329064008973821503018074069638059042412760354009149228995304101251579613410008264038054181558353843400765248320807890221749834628413940885427827679296139677709695857979153580631950088810493552294663682074550149954424844873183677056140378915127800188074978616590683996667016080369637954770053497457680738460840491347659619834130271302354288329321759866200997328537315968237868884305740283592117310646248790547771685768275555086254015350307930458411846497040047327264151693983085059211783462373230024930229225471393150545609369560291206400239713630441656317916662335213553211785087546352408961637469821820482764444746251143770101080780367560838193712731717955371500834487931724578436864459759486775017143384683382004325359295096767166699404826272722668126377768502985420463975436658185505996470038565809827362436590415029693274457024728530360722752909919094947579977481884392563853089825148253050656929657663408425441938632889861152955172737404767458759109629579716345792005426355799474289110984522947902450475236056419619270213427715788570783074080269816162648772319648301823849525691633674610871606509507771990893047373554809825268913057473764956990743651238573247186725660071009884759922825802944391297169942963703325485470589521482423576464833806798045184353208467277735281036390199088437697249333418382785114332446201809483134456335669623457859236247650023603142482191179171922510206938720557292173149469454221808618490228454922890181627142956770255572177657468095363534440923752379538837976949981382789086661048737989716216166206836745958830792670582655102867996477478886013998542196923036746003447640189437635726701749914712643657299438308256632934671654927231069971774573529157381490727510181862379785677393460519920086557938088555200628016903261012913813864921465920097872626422869322052476362793606369746243373267627159306563147189063617202397697840962549584492785090055723616908257597084099324768223790819880201108067121791605591549347357270925470093450887648649085864803979092203073465559379040788193454877484871826215479132062324622421731256040532998846562419978983394080018221328492110905011393310435486508811520181171977627804790289733570201515043188254601062292304876418294619012330590215008974890906322001706124567591704562513025628702048423822301928034208032465694296057559625760418212272014001707805990132077687025581556317423407627768529287772043796963951138478528500082785307883008170110279397244355588849727797816418550466188851440136174698180871486298881019842052277046963013200018492112995941695875470992002462859563851359229985436763349926826700235605575697303441590606858775541502321145081482024302791353662998277019014535324402124381507162542275188692002798354248020770400395068814792740466552203943214200762003963842980228142514244364841488331247718581005893387958633139341716235528611397832383812785805482805815867749549422595049988903280000309818483024313342193408145098665466135959480256965318556074781014753500033541688277938798687306903150477013747549499585347018483402312491308061575746347061392071361289723136282188980541139176565373589477266009926286198374629545260801693714190700627412346767374147446508275614441534373980753138990189264822203491530386474544185683903235419524596186633607104546954894685759765012550277634139990349305641795779568272018551123026841599736956875791700849342141350038752487689956333771678105382603855786810892205763950710916459181320788118323611869459705880228691297687396014749410184565530574151729967772271661204330983970362781473372706561047345187224295361701103236081898534863730066487731628634585389327157503258287192793936160120246598038822502895147804339790225240792393763662695954577366605389883225438573743643250045085760825472155845612990500152699166766116527174639272227082232019428084570712930852150430524068603210085438122241136932031046316740812533706998556998637202714267152219508443579586019322410506985667986679124957845045191444820307735087560462559611731052617683985330488759570802030757373446128328054783658787290848940245165056202175078133172080701764863711934239787226086036918827158158204576943830380219719141169464323083398267456155135220792652803342114908827558375723367011693006094176867132322285889496344350178086980038806041183803871691783325207988096905203297647880697246648586304992759337801801768074281727478350018781311093824868762792410828529271886010734571476597514025823210001456713858023428985515666086007239461049203782410024253488058975516246321169381133609218426363840089421146659229988185118342172250995066054541051208215547558752492108680297708944550333150342851963000208857049800798762218699162136693064792101559789172996882361522579502085874875340834370971089161457269238215785744204213169516492358565029104785745277130400374214352392085472506523142881004798217375918791279739615548915162699939673415672941570818014363141764099295849879484444451730842867068837454896872802374795697258020568635498092518807993420365246092063715264458617467607672215185235107095204369537885488080413775582115210093591356058693939701341570998754112967133399107497639477743695117384734329902632942676880671353972628051315528247252190154412738052424637065542098225671264539077325652371788439503560096042837494311999382325148451898630781616465399823730767009516209271656113786282884988827255754385298376270734251337625580301631057600716133495691360922863895990738794522113544390779562554505853094642265243236096864920009171981559937868996121118072374793094814433544229565194121330633404192957927272836481889542409894947349463206856272386462178123687157188769674601226177190971579204034154543570813057286300234368259319416043408019266064938395725601754354749513184156332835413028849811150553914213098561630196805085909006648343188280289839098004473914261968819419851012651692295708513736124897434890528579301346329108868047616702207326273128570566780505808387994625304435561661689098027200958131332713561878739756095616996517741206212607085487959641097961631237829477531533738921086617210122833065117116632578408610995985116462281874514668574355792059087630417445468423842757801822721273914534502716557197192963256100921284066072513545657651314764291817761114612234518123289845800641844978071326717686626344161650847110594287497050960164331191383883135736814343174339130348462465649205261764142306861844384427038252773729428742538414538488516930444144125750507550359682204991773110396442323532097725724607524049762628530630204743317840499918734056714117568424101291944581425597838036771210177372833439084620624974447036511858350854924673161925372652760281258631806719476983297903035845249642206610938404484024402835696345409500532798230081386625719629779075439257928130859218853519601749837668758338315743581719314116074540704458990090117452113398474011365405808221956582012464356939352717180694885281312557848039789332960950427861775374981759527598602653391565942071324054979445213390396053999917467377542267680942333780415698399260261123884528448498213790583973148206030557409735633010664853719205649825001472554886199721842443234624318717775123405760110041031563664820106873659730912201007712749332631588508667215069470815554310781706717852428742292718411487760322022358069234618372209974151629389961422468873866251876256619114829583434883131533561777692508265177669999432684633637154521910464854300785594850240038913134559532679515423075398612509456946994240066909623751789712057945901277049361246518145154250579811361720046413761982761841096734647432567127437655303147102968701430220615672815966412448011673581627146707570417478399742900608361794843761279461924403862565971609560781135145551328745411439421662596299523569461907421183703413731245349819586495253997782807995499506438560835306382921231657513640604849403125689098872509754747927264956106538186803534394614030445939341012655108796261643186354276308952234195463074845506287630573584715034420074290322260520165854201825123429792793679225448932641443888017994178735145964220052145599410715321978595584190424019782788535267833727736110079244760698274534115211330762354222127509041737082693736599147970087170497562720807211149119132367361709587296876328370382935748531948428448162488194988776458393122363668185480674241585047177479988755370245887098657206213438342332101041935515754819006005075019904849168480307308801294152902468136651259322058779369849889463513480874785636738436821711323059999321774705444615678283647317658228773018338259162400015661816508589446660989043875953294456464697513833372154786016929784448731763148418251458937374260904452759197023953393610075327230364324116216258898365505300234470844673661713836840652615263599644860419401862083708753231958297318779446384406979029129943170232159141586575678330686929052167394371488053875712700052699862970297355872728798490820487522816828666680785807481721461762320442906918935249576531001713254482728211625876040740086855746210571011796366159819412308395909953181175841340707578506613300605120185732931888881360183161166098874059376299803956735199419508481643116527293436922093873295952885790639685131259154666381891703817338957933475187734705112643403094564504605792309411251872370278761123376302577247284767874077541522014038727793516461236716144057830566091922762773336227315747289046441647484359158491707998100755160919247573650816545500543666683087185047097012614539985324892308161932128201438447143155213474927060013123874105387256253179243876646348206939889650640038652084916307593489344154537692698708933149232355885355052856812847591821760824067372065454585675316984560198117956815805285903833356410655684601302468146945371582939111128934365077195161821997422782735591224043937674770588441554376706364687376728408580427162678969158858804765929215922788851612852138611846137503483259110579278869889349952631214482758372806664779510931222412201802244704338558730842221795458720974428610843951141406355691166532241025095726800024073174914235650548984689918323074439760021986509013954493913683931685693006020421610830300803136814481972296248536204693485832507783339042374920075142400071567791012109887508797710533182532143210311612368487881930988356044106852816567020636052406400462336786315204703732725265254075423546707871107141303309089687450829545208842721127778785493580418582893486543200702237051492906969426818646250830064473416605589633446323473503241244398846541962051761666772787802047965496350704005674085373798582915543619963512720768185945633465806266965787228570675861331588398527134703365756954408162092850427785699295999892420193699838872115190451031747602151648691465073663532262817333111023846046498636186915938189825624312363165507386902286715087132987991100446259741540413392356957949253776934628800859666569576894792937551493235215312377680228761439351441489150071814969628703550016864875781314313380579687413600403407332719894195336508184876934342211498535389482928072619268287034438105737872773333593608235941324021130838757711794497655223327027091928484750907988155407829032190420792971414750665979725947229465576950318215127231623928055012769241179145791204875970806897808816497558779001410629128195513069365242748933394436995649566714501842152874542028715702450762575329334267759297880368751082153369989380035024364284845742058236304259873342559805998133557579801194812841102883072135433576045317105096745607726242701689569040722155661931309906946518470907980038057251521119933355123257165506162866553856109080034271071299581624784641703466569492687986653066030093457624612912332049082346592730428879888458302827747561127353846733594890123770640045355685055780855374640340862343434987198810381448649141544997382046722238964097079487289253464115610985581818210134525020270379783837454398099944611772533960328809758499627600532447001901780145246771506290996268853092320313738127209745675294549089323599405714603731299885744842451913580609688474429641789774887346176657660234261613302486334286703282565289976009915749396898258779886930420453450325084836825447438604332821878542977258552091359890967300131707237682931589939582204465641810738463995230404329968332962674831677682276548013487079334208563763252434604994249935561323334264898753272888213425355797852191390969053009885393425032511787204955451928568731494187889855616106473129398705767227277198564305684623641737120250711874049355147224905087857118589015195860172519812115550479390340594451812436950868654444899517673755666021838626157046546916412781951420769909279722052216773736831670011964477664843441598437981956984284969368244743196839860790861274655678092543483661615125869020477891221427124694479942513860922590140459967970996563319797785278703043967095565749250182719816829959193673348868641023811899016143181143020223195624101747815618251639615048432194810416759612922586805183503463867140239487085069946292817623692851861614548537931928967889783440404927154042282930938599814220759213262917781553775873057860384035275599004047418743409645416512905857584219019828124887653459037159099701321451828215894776050660171549751356071477109513528017003062161418163380286403591285368358408164429028938431163010086753284722271804863623581984743942871776721560968730910639958939297453177873560297424207248765560767816678418638468682686461386780934523929353791338924634341595144149251095053967336900433896576834861969627346108959279011667845864958569540638073904988346508425266245809811469446136494108747722780584558587748167981845252121772015706854175827618496496947479408476213523776975628217907956030050038263165160354370740897267756657225621325672599408243492404411603298341477651349004007775637909143586153445887683538730794515602986411302511878020318013071846389107701830908103778386609160814923679665920414207291168757073156837821785619713729931249321232908011817037242486853414954647743930402532645340071375999105618078701188616068378332624761721893762717060557217396974482508099825479898010965187433286399195141527931161150386368511292231365046095106496142715514467088025145610645372307316074354384723807958144145794373881147485541566044009908536266554359179975404048941350640468120195269775654709440364516387452312367066671479409819944815972578396580262059330815237134494017041215027394250801272581695551824440315200695319468890215416856232718032270006613464845970014358155022665136340273583420351525808744910371547650651812016940817138248595824540985424142450040131431554546704373902709315658029931386935250835847497109478537769940803513396117136240220409592714205471552316297716087165070370234948681368647523190544959900648101835061541566487660362994062032167015161448979200280191004705779407998830550309298070750772550377631311784450044533708482738523669313853543379380941382694922132607461728784306399222293628149422615846425509361289758670056584574303354021677312580672656421857533390454507838151078805054296105156133523376097508448200444252213228568910863171039967085100321675006835394977307669945048181858394570772325913254969382662256893752683197916113516355509613523606778967550588707802323748883874921674793637176085204475665477379591337478340311673988462130469875588736989217926050571699951201656269320230501686673660711311192214809683972436250775164049826763330698021035418961051294672339934724486841191124019757864459328058121263373857721852967326623807208921128255847818511767092985703939831477711697994160283941878629713647925490297857953353802570735556650694776149944922595423947334514929870108149650082235476614491917695227276281184841419842417447406734177142144422797906596428383300619626427259106365308891592907624727011825996004169009826885054769705434631592803576431482668988148349625453584197553992411811620385744387441663804768493763763769934090745425593132973243121114906610390844086472222152207414796896679026057453371628974851072484633108046432574400059636452566673828855513040174462509368965996096417732601538628150189407473808333628263022000435930856676773196841475754294210800362368842949370356498730674339859791444577576669256751992318197637485479659472170063238392672014425841970313548300658104791589441281995761536835249207071617140889522598233125306759883045974816354186643933973899792872027096032595865735315059697303362436365952779489382736694876487466070149680976866692119692369218421836414642386642481398860014082695234493115082771980129415330551220996324085617437054450086574719656969910844147363788768804260212437481984483871384380264292270754523883719639444783182234381970113425442585506041941984772796392138023691745675465164277146597119164197382022708312109214594933989906851010967115890974881829197288956752990605418442527231376376908632039939668756343566166086794084228630241401846513851349305345186340155920612096496659509300501772115226616200290970498097214981594643391059779906823654110038567541487199407395057093907412200771323557785381354787302340266464297053759369564469890526363234059652605098194384946296612835637535128319411238069564067286258533867230019119370846951322088216664087321762716660765971887265547250501974605640192175812110359250484899901631265167168855814056764037493517480987944087402545535589692853341968234667242105077436795729464988002661474359118689279700849498657306689270175565470097941639044864604381949152819714150378880758407836429581057182211866536781125265571846083415680143400244737001156683231110479935145722705893522297532855706233635495249104795930827048131832632139991241160450820114077264684168382359346179307157815373845577699990317954408504656001677424582900807659096446486812261966781744312073235435809058937794491473468598210869568531978060739162779820278843718131977421381755501715791947930158861747222348554959274572140811929675908581109740755104747591884636214648236102245986851353674846185564716839643352447380770734905181597105567813386871325660010912795926859417397337633552484641728809420876842044939852102155727069658890838208007727942773645132874052962455518970251322133908504640100010956744149886912169969159529412777622519347714673083708087175582667117273741034983265384643664167762808327712672997560570377318322741291396209031517612674458474610796491181816376881549353064229760442813179171926355504094415123675341952594315127136268468536868744075347747418677669449074700682566969933584865625915956640296922469622095245066031084297406635154803159533075249570973403236795160313509383472725119301955384096843631086793681515413919030033383610550574620846745022540448471547961434191449018252922597771045499068282345803209345902152817733689351213974594585576114130812076694993197898815377847722716189893143427467216150493340736134665725953370135340286395358206523686428553662959269063956456007860517453000945846137806877793212415446664820579959536895458168696788875658021448455442018979248488330351961805792077240407807848117342415735898224412667552561764722759216267044405116961925967764198026450895568765049039313181864691420123439088611511212793403512073660887600339010622863941575286281077201733207285546320136699589888768896071178417598743251591493234630146567950861657349982996062714899019176157932323248191761482250090186353118161416318667935891384282357955368634373499248049750405962189322653332266069357886564230118598165277230721418914389281978197679446107413579444593926331619188676196639027855905164317451482324783564509439335012027434987711708693182912507147058814823033332736498450930324003937245732648867722015463628698690147606549302129367113929207069092709529570786350816943180734028013643562229218461789483863107475316367218896522133453116157981623948804760267335686748464220081799375348930435561594392587387423797347065864478954577675561152163951110542325089273132475703636334862418669521759382421917704214767200813152225068913683575479728705337379526138335265989410172726818273416575722776430456871662424499178363428228185114176935125651499393833332916332568942791312580911817486981745316379062749535411697604213995704350734345602025725774204999759836486839155156373496022537205168043402413257025145328136762560505461790787092545300034586354984113486996558246584517019156113676322764963256781325736723194565078874636674637381877619293491852860908561247580484136839782101716214003527033445354095967652531575769243402767334258912665445093448592994609402618887121734371084038629796247159851982385390835097864414664057862210958775778155471472288179829235125846960049688559236669333101716887626443084142307986277080955402204842064687245788567654595652645727718065750501133749056583433803717838161159139142707529244197433951197590800764188585417672248829202382367117642059013342517269634286119422421297681673108512270792308141096035518748705241459151833456369357491105672172791473859131456622839394876613888675761809049162679382914084098194049859684981886710344250783891409289008461621921765178121681867151838489508558488189325822665548479143863254657837956237157979538679221918580996416418806878895508224136640065377635552347502069538162173663990140151877497701706023715140639797629628991609901645621163312594432909430728103682533211643477310668124942238087256300447007753138373869825321085995147720450545567192810926840225691697142822869349438210864153479049369711556025840712553979654413226703509448681308186530571842050593050972465310587017315818016512072558405136175966377689274083450221609194817738958316763253301271354118369679701567046672516817812194325673703375110773900964566400185275599142114978788540304614654571513000215058807582197758786147120450809272040526361436225592096514510017990772334233230276664394434070529190731446622794309429574077618686796176881405897978785976421171107845429022413379278751859835985351558047588206415824397206785413265498528934071543218796109770582054321749556444447546163953460101970935318050786814400115840339644962485365855845331888418032075236254042968406346549274977336472498839755975113391192580817267765678701326441241745610399105347464688703002690768527586101321523612459735851699374001904668575290800110990874380464003819323731856331728314178507894658291052091010808846862731447389398815777473869850307394960511946629134418820761852577122766427448709532836468074696342402776340825643846642690540928762022692871198567517597311361562227435274314765597307761706118704603319462292120107800043832914091740066923748821995675854855655590664972951336258346782019360250250793111396437868118214108169543081550743284821982602046691031091556397299922858220114194282492810018224426433439414626159055000833053968612608279138596820024381059062184708782332036834885309396078475488290214441200969673823724694046082458678176738736389548102668470832683319550258651896433528272871573481044898852127775660637123871395285283556653646424364660605687519587887283089994176207064321399364949340584478217127891996412329476767084402454236585088090803859601545172619151306193077674062995916107398651938252648967673574791049392243994391836528026379499541845895350562286089203438527559599975257785729808362745368672080096314808970091746180877573485981843740151434449624499743793158082066176192075670434433152747258925868651560458925597487486887841711084376371676306376341157679722106005608130760952829760632470876931583496241553886474110336820833724879490317671873220448185922879515932261411549315421267602459026279378535215639821624314793225513892171673520025258899642093426907988894594120949706419269648080403131246154849769361469106130631013580500016758830682469035433762625406185467028890496735030384697202496833258195508803739095838380590179095645901922253514042810112380228396456381484143485890047487612328017431848630928282442328929421937524479458608973055803155524401100844235011289886495306485399472739796080453581445840785325275229868446297906669162644989164734519701122687887539192755336735171254409701850140739945994153018257817356572023373831770633230069979710217213650341871594694392152966649705424875453772365087897545488592634381282793260533138204075681075211216788657928613975915984291909513665615775951904695322594251688726813709576102276294692457836351031249581649304074854021641529434420755967205505367366084354009754159177496673672221815954040113348536493791892028797796875294640176818065422151415472564514363996068173855290068300323377055323173765412937904357366967171725110410187756010636635460457842535167414317430989209472753069675717401918437190032998130055465488001283277203062757680919160022563806555591592805024793857295158219579519861815532071821650273357394966896879976847351652767919459424420435164174700846226058667816824669303469991043739060482458287258301385437340170532277756337606773544335812468551032593904055608834144471477010099185850598010018325632387075392802498379341500608039114908878082305662887421835923315949873003854802602437276568687167331371048822156703387796375948811107595600789226299619284153288573492103805715962204694284499342342423599891438163432242447963471414983734698745721555688311877505447231466733399155781720347970575776599478594074510048114003265149747118665049850686349970760724307283016603407834881075611162448659677326909237539646926547999969915280075651813006763349726909427740933198396809871341436597647644578502160828416398053123559211575675669078774853425144685942756757667440065443822959262529502678080297238622508093689910764778471336953796977858710854603680592549019262024130292503741159629676368593093443839655659059369576497101742199205182237638807993757097183692207401303142585742322485249805345269444632679852874404632773994034245341308092321547110137540358981613315763931697802412491588255734453773537108887186665689642769176127111072849756687168588161161838240223730892045892468810782612874623508101280628368815089920003199942537735370669586875967025694414402523000296131719140710628819162046908234275896497519793967484735670491187887175065539430478178732377997222103252576926362315855433440965237452719242722019909658711491715378974138579226393133819226302981067169401257779990269566168868670713876891954581322727341639504548119005954043231353426192643030516069798901266914634142775294819193338218367012402934677208074721231398888067378821390319968348321357045179580245864455495252496730757815635981866794247100795412860616221395168409705143366799352664651140594060409831436359886417173388537282210056516316610879944410257985179719308068135725710333950012090900261688339298543204527556425525777807925290726567901432698118198648865757752444771292967419175488743295721432128697028070990817614159773274274523289571643943636500724918425189480809181177563263520951379766955283205860379210624401686971209918879803468656819544288759843968943346643654723201558735943566900021641631034710084549750877367383238828814759684941943581325867526885046430213661723123052391807616813791703809124116907748311868432148085407401957290417789617028156590523346855280134059988140162996671135067160172236427498610421361192313928069727000723042717865751319519824740119441356544949331030519499782847123349314595134013467338177833801497089825683549163846003829638494653803528711645100769372655218680753844487794127017265846813873966461954000237359540949939751880711711668581051881046469437775129082940412410448798201402938995641004120545742056322875651479500214224445617104281341925339840122941267280659733110680568030137375812794235765470998011709863252834150320459592471300497220176594042328691700343307727892179865190844002066562440907484956731857927168432094343557142968963241469823881721528664546801582474289995948492221173551199050243600077941304389628911230601658122897343893499581756446247915267991143133015688724570898887948406436757051399458916525756281355255225108528987389919922895192582574815173453423655285367009914712457656330366810979532401491501448297201591276585595476547214604952244021378296678647873810466115929583515054708954445259086655500566709424158538342858363822493742716874771764739122991994697623461131773802123603074145205486800093341664406309348656673742004770404399935566557369352870366939215761147480282845353829006770240385832071357941707864056308893648204223433466304576755496424350647549127723170820464173827817223976145522619721281839143746768996360427439719525610281010565433344837988965253559610209759778436292267218539821404791676680946399922901123326776354798322279320964874655096548043989577393810913781857450658413985262042490055592667773726380310424330477474794112546370378975270497012072522026205857998495479300504544365466997361762256136105954399368483647218706094482529813217225649220012854758484970046020085175358019820595217957354752476250823394462429483896351619996921974184892582957075582146943661844272208459616867340296207642900857464865840975339041348154817918042285195128126382449453486516805533172698430899747207842030122125709076429014708518810597899987935933936661948621747474515606165573269104573227243650036322100408728971287442614858544286318706354771629611608495657548695059893007094517329454214998493334173912731582652567506685952942353856325702999100954760123956559392997751114601754670702617958968423479200945531812863976241122751927428206014926372598681421859472029627846877994111754099353599388017834098114832686629948381623895113107784392476467988458379393043133247312295183090795443719690257105228306973157812952154335759620447983014137782201051938955444452311172506613428411063820900924287989279051222231722201741670118109453158284587880566760998593483615492014087135783757620068754062502206750553281365985152713320705918206462631306118780731902128293639441961440130379714403792980608528718417842092477166985792727653108527893661630837108151748745838898811080809982017540059621893681584245147331912714137518894863643570733572242310519582939982669555760027485905492535770652306694239101458775512006540601934367833576092022472824537474625179038230238175315927672439497019340270842891967643383801267801241129742524122076807625237421634672918305592944653757550116260183808693084455996902971704472545936312190240586632257992029511080432323321901982777843722387478866603276296729298032837724149538482396083750135872229326088222969745902773146601757890416883732736581707700322998195461948568871908301366148469201862890929510634701800305623620065212849438378336438874339948420404851985370079241151670666792061863189634507563807232456350704784942194449800823672594182256849131525840706345118109057874773768875239928222995279860240750453355276444592633500461401809599093777031191871139164103581980785210686692084647789039583881805806562256190307861347191510273857629377644116306142577656180891035603323913587368600500171611357021947017458792798181333853204937571712106384461543155040782578728322987329356565548793573234429015959615883438244446445065418110840119385570840417256808283043977774663819242665676447751521749467702303161329315514532390082406815600893552755208443324316090643822651360133470634813966482469186488241701295857012054790227898837655491197982977715146957035737304585535679121423343263387320016318572632518915727371082900094962167032531032025703673255217836963127542041904937103683604416819682451067352680691115539831203504430255911083803191198432343921876435133065606728331611235762912343540645586064858786780861183859199574339511990269924142409846205366201136504582791080910693368228294789053544491832626304339509163259534750186260344726193907150573496004374386778878920195322569461637409978660767900945022884926600924517913561390542777104643398894148432706378801430686726238151010943708673291046179647406263216827120143662634035636447353994050400456334769296763295497217147048813196192451352029612213334978246539188868528519361375997812761279406682246385059581665861962892017328407570334613503089546400192340145663046494929378532450137826220775156952702191631105667293748080520850446502411465219593912113328079964514730679740591985526243033941048470710884153700828647572244323907817755187081469637200452053143262652677189784139232906110307425305233265855374777369688476242880425411755029800132114439268535344238402887895091722979445984470836173664628286059478043555621021398325407907074778430927997538967350793061990673723993227951275446367373013524923462090032273924281182867595518582624761944579896626516286397188219889871468326383873031342368817299850944657496678482601140442116122944623785919824818893218240758336368902474462389719788922403053461904053592386727624702609439343008271465437047161312936972659570690653870087470620985069672524391903845268749548638604491324269474945918380892114782661597070264805807058102464414621179506995806479688014832199282620383408372626692779058746964595651682631237298488320041314455718470478102291714805724764616716843125416770077922862072573472346219014440320689944577869509526460350909158805819693480023953005949081651352675504312866898659908685461446803471995398552478018837244004253128278826931215135017304754838584003620434255601737687490405536127148820341925351831433910410119749945623679977162093421820807074118821852730576088898467842873054145089878545828987199637698682751584155404956311927886219095357123269664250788361981657679904926428640432862100841260779635280618728131941349711503583403576909551645156862100697892894613151532223041181521050544150800471769962513465590606953713262714353322919540687956182573315097586933095631904312850165510679987952031698090187643549412227127513667159402739839983952882472958813908202795676006735649582312140268387170554971337194492319485679827839954055651586270694663088136177442927225489492294949784865610094144246912073778929334250131669845077220044494674335742391011026727299727266544194658213543672128801304788035027670028646972235715623536229610981248562360006928469157545028186693460448694477673091794142794673210526262129516192186013997313327295060441292228000834377090096784648761812037615657527075425670388518632011030818680522559658363530593473572860789722586402098961334651998633092222131960463015466807844931915822381579311608786184305245267300111971633320981563962161845462514169223210356385014779144775470356736720731084034128775302040259727262137017325240079252359995545693902346896541685983272492018458800423975272823610779003255610452736620975100183321589549720228910558584966237725251481409067914268239500582909379956747731596141691306186000508381590343254181338715517253990674357007778804675788012439548202316545046019516006990321886703685868585610607280027908832584349438296109475165813318690378916247851601050716341350124206734931656434588758446536755758783588774312954271065593471578532225613396653122934773750247098961931507690674000647454805372397794204952275887525167874564074841061880654661038811942375945975863237421134282209811922701233732251037176817351982554007120172693845468852029159889777381889838088947999555359660288947848493378316557454263708753760209111507427473319474919347154039505942508944071656207806780885637691838776613129859753264320004775272716631669343776535288771885687320218320799644656178420807632217906252561422723407447477997087595804313829698685716255282550828918307415382162650705391680444146506546182141865509975436404346300259480422080802409314548656874631049276461587651162464748191884798469366018648167563809583645910812953435351739826343378262589257797190145500141118397968039813581340713771679869820963201965126934546849788102516377848132477125505796528734436629816009088406425603574640138547255598037931933793983628433373961721252977723634213717154376703361844857152608495410808517567293944137408064438666816337163451735011148785495281691550136230220622226068926779082562581054784221493151450706514092392680813013117774630286143092539115323799133731171222788050299407980435805752206591294067823868243525041257794226840692080595949250868312953906854180033169690782624241037505706999530706199469138924345916437980780947664884691273706948994122941810566517068328010575932143356443324052138478199984990471789934599674701119761321886873519994601254314646481167042573519493612821711191973546453688954070149477671352403517420100532597746110345201955211612664582111446303221259802915870188549246667325528138954818765650848749437234089557331564327303122526171069476489151705934394756824688812714715479896329508721428641691940644186165687755900931427290537562247385396622819712301830902163929575110216616076066276669908874958449740321372366505490986912183420616986941778833010776867935657930049493569393065706840415127292704092665909038520070254585514971826244717438248688084500202992142230772902973455269409947113252413560350072219891155741705501882441140210822506466218224442501926410785127839763879688561690069252266050007883395981493074102980177643730387713054713430772807402850591225475448137620410888724006873817960134731735078779133780915437130488535044118700619931278253201766788756578598517726783695748526097463636659015438579233192860659409422583539236002854190115095979690011442594784955048780928136902841753142999674942894802952283632716783068218156555672689516929681431532533765752171959424074657687285038449734705324856070305458180701709413621845174584243770601133691481578238002220405959947452859608006949047980836199921650036336911280574037596281135741715864742292899434488551356710334630313450425955630364799300563981306278320317190455429291379470637649750654686585667669693345572215598764559339510434187829213294726333520715331297230400725693194878520784590260595690016186239470844210167169441769189031241597274048845233524821548497359504465176892841014745433984327265816981803132141963601570534283615186444400991574229335807618381527894133280039853037936257171928658060576905661263350721545116286074765048600853716734046684400890170636241060226398358031435683635357387045477735111902671383246462507814522812604176306661381083657838136860879457973708384500140280469792173114440394259242319680437230230295557654097245829322946694394469500687561052154030794092075686302304067865381456042536458820807178041475581911007423960984809787970615833543444069210583886086366473021799814970891684266176062857223760629607700901580209288443337020599974832443034663191477083009238039152128273509074344039256959159415778807086418473767975598612584961390864613393977439211137313643654303366791499826128784613669750076331446489255563740731670162135594593603353971024636416530112914464555032787930769164638395334629404861250535853037134216527751423442119241880386636024047051478384574900612383747159588965336001379783334787695996295364021165891703361622731359659884646327281102152966641582942253441602361070774767078198186461000669703421192456810557305105686843552098108729799383882156854264196771042977541233419306999933871816034557882748022282201372161836818200511912035552315437493749712214600115496428805728256821419166400696742238655093017319745114217541203984465177644564020787948261685913163621233749668356129761820288899096015338444822002871811749502405070519664386162723168963774862425737252124561902464286334161273286217040763621743311199202245137253003728602027055869601280556659608405606990003008325307849073416567647508919883885984806201187547358697571637929391125098430346000882077273794622861616700705300646002696801596713883879919161647539746237593925313528975339758401300827659007698406247709025734417716787295070558514961750900190766351489738976024020070264288503558265454894699973336105369199835035772999776297248165358713684878877905890845350977285521619714682122425620478020763675058726350782542840279393852227460884938247902162780279623213792335572512035984937082822752776916250424100345405822088297229069969616072182917838957951807250662718867699487772050834172176456586705506568044796840153538744443059185665314829645780021925803257178072147410315252619493324696965774413302864904659203199290807465310753382361186144218529834371905277669636347684983437009552449370190259101727708936346066207483975465139859269014463120882235883820660644184352072908795168023653709669273846160852252189536321813241872946524623820789735792836461501546189282084551929948348986927797315230044426992269729914475111088696078137079891089662572637127154007974178540302107683640071272522131591944749086350605614188620961003035074757780278181042349719160381729493807222458372194973556207319082820339750230434579572788573310682301668062400978408349486788180919050731894122466704515344511144696047361988966432019686038228806827353120602625695985741948216863563053346187549882694913938088767560350406745288772672088003919625786131937350758130626686297424294234749697631547347578359523511806691514719411306914892794058403816517133080040290260566758204890984133623064347420160332160975971823824667863591253262361274273042669686832344847233868270113452627241303017856121500708117668664910647411430888577022387969385545172129809297368661409598344716784303291878150806710706403510980524675886313442507519643330581613074593321079498607302837038457512375438600648193429105173956744222239457452356652978788726218885080106612191830027570099779690513179014134396872883547928960984272641420884283845268372294454305260144753667220937669658445937890326430840260157807083827366148605126527875363799462845104812632059628670133618914551191384545263428541757625089853414457212603343161716587572494881174614707244974602410503187620447734063704384066004063342198103927985771689176763537303646379540077352496851502231424764004727726625705332843533343480979164103072595636098203537266786343123340488831881020722572767511883214319429065158383860638360358192526907893355102798830644252911519632229543795021435686384005261040974407251915605255608840828221623541385740210359642394628649708333321608368061860394616823120549421054819363984858238965354340974141629388566363925720506955620010010140628275276953560055383662973619332306136671708858881961681639029827066095051421443416029031608208318828734216084380127512722418384213584754957468633302409607696123377326649831178576366149956258630258979217998467376213792700873910894874433368770987787932890930106448578761262770911875287741512431973233426086304430539962716275018544595679318093331439459746707259015033445533853361437639345012099622595749775853340539453423611645506977012245367200329542855546938161922279043614407575337297067917704377937515863851572300833923773385463761576915179503225592629001503965726575485568798909848631394747979311081128558352154868510182975860933190392135271495140567051031218674363636619436996741193096574493189084914556973594666995406583455942969976233443243421819048243540694124202311246825559784397003299228386224484652865539211640325063274618756542543560157525964573228862278325835735752728101484468255638660362558233590556733448715002843692083128978523709291997156753800814795328757231051854054391880813399171985962157387345507264484810864311075558225776073178535863461518011864064767940015390891629732078965688821356625724877979613338788137860197769068959411935556839564585565886640660122406411447693515212223413062243943237765482860279118844367620452112387560231280176671195684682455143042169906042419978713650047569560077308865402789492476979883365285041693998269486807839379102829929278459400299395054102345144799494560190846577031201742534644779756038377453693825032065785452920093126130614118507206190127675261872593650760433342755894715365449867951249339011458820957064588847761487003499154857819092822595300976062706305882906165892855645618404090333481639118721621589922429327115592385733397471651737972504867362365503679624974371570340745876547370002691279778529819045318471435169444763781662453236139595164468668539775828867380929076849947750975770306454789252122738611738060569613932881526517346517838308927230779356716374217182895128757522751551174010458001289896430150963603553210625253751373695501380169137542417037793690267572408242208706621553126098561148668926659726340293479535893206591338924703346304509601525219236167931209421262152174217544397757586942835403190599656030463019618779120990226642619477205681441944159942851950465032462377989666150829220947590901808776160609375778900778798978294717252003998199933275738685778173354322951938791078370208217474206777948041861093659778632182764618401726826369013951710020003050961878264767807235238729342138842697757528216677002414697999669188644652236804083999391818671979165738305879270304302685121937614736536386404871267197939720358464582220000354304041374094271894765962374151550327353164317158352794349892602117686495149943342381849037741779626549911576941167296715564482434841139458181190794353527684714328630339465519338744473896007728778556471368183611466734986575565262493067091633716676631530536997488242843968208691562116335941618679226104805155318512725137448417009529536653835063966253642813138522970505375010590768443701050873626352306437277476927726637063710760775583873320509338988925769556752194348005975538589444762603114894183971850817646028932802683574414191187793723531132011877078980245927200478512991916077251739335293693469088775136388488006157126611680172815641860910002198405621489113442820691211876006738939041513293180680201520212136318956743732491684965212993077184871625548266065218390249761562960061681869296027160606075562564042044474319216210933917013664282670201057285563282093470397706047439471952810941665280371554458055413391293396261724402285504001560803670851159975059409839841755552493063589323267402551826899272673506295533975280045942843900126916525082543333393363000979988941769137159801356584606005206921535781036881263605494695423956440836789438004105675196443946439449596115390924839229498853430999316433015489320168340594076495386337541828065504381248653463730923457079153366468265867852166279721560450051672237800905961875064099949850655893036754009153517115627440012215556971036666721522190346396672657389017527168234580174031154977297567426514926064514112357374970165775032657341117973529514666857554647547105917914610386345157956795200301214633042725073786578425655104853549880931010469867060244104592247603131429666162751918774234650419816495896235387112811046842537934395154001666328833495654958324724619158219191545210336529548914695316701916475584101408937865651279146762397617892160098661127622657916098034652264357350326342737472071052646479199169691041609107584100730859203024274316043746942621739917696822653914674968901779295995165153474244562697195457681437525603683780590256164370575705936744858517004225111233570796476409836357416757447275440595391999895845932813959738377867698901062592123709180150030609472201001234742767699607911848076880606952741010088225387448272659187910826020538588451635603187823717664088704400297833057439931686178964042799062441687084368132722768957475701094889998626348177778619529373055324837573832838228990452566502963141134327960646093640462328849245724619418005815229151957507051298816136939582052472280750081122697176728240590751722935257635524742070944602630831858155952445011788216288908290296869025147368755281901124649043632756347323703144016854390192990124123981631196079171564551007130764230446065405602627901613658915416250012161940646227167368761269930308667340472832790578236329493421607706001662842393673127950138699258455161802384207187449255234746240242339832913775857588943466806009916444468429576277238611664274749030666414982874315816369877939161249294685222884941584681144334045008691659421145595035058676529058465713452373832680383625184526974536793365624272989782788352033755139151844723384982492819090927444689077700869790877504391486913819555715554532326861249523622361342474687364406600212499662809943165496501085604861964614814964642430289510183041962704807833948670563798235296784968412724028414168409032118248454800540243503372535981150226372280449725311517646011733402147952981197005609188972069729429777245199794173039454304853453211031089329895070409886901402151308361647683651473477714574572904584365675713646528103934251979504778991149092936972182193686199610295827588238478159999333123294462186645739978929335858388091948821906581345168134118009003170134790877083107942402412764130766451075079955528324433595971147462877250679786337047688883381357497920858816206810876207948911368827972014499249175853218824337677714036392561668071033199520455696354542769885282776811710338435806718459308618422759720806991849699630663356371562160168556872467955573883882487192869270138620569470898212157381923376615764921026244530806709690813363720149613102429616284648133540862473758521305109513171926899310826090133701403939075488696500819938518040344993442430907587083286048011385036666465716560741363081653559052739762908515162762377668450578524421963679028473364927645003963417570055989219822958224922934159706456126807158888334095755608639082298507974958510578980165535046728947326022329725924680970016820509028806461901892829974882905455746522810025949564086900834957001705990733686400364978247261470953309830048244856519638607808136212387483274005388629990911549697556766111773436855011838571284285641264934628178813474314414120291238095508488517887391254513510757391268664127388757265286537261181353588145327072835611386733478219818093935104341288197443775339491767206808002266755380858107987152684488563630497442262706782946761884680429494934653017141491895829633821083503562427429795255350952984304852190532622384060077009945712619206583081389643961059692608600179863817061780605090173086567042366996203924543121437944422648658655993923857735746279500061911413092646181970086556645982598542308344159585006812531230595532882620548829216628648025916522283726058713987178395809093607311965571006246211352118203851321357590879575596224379581787123975922966739389419183990996303943873722873501954543384157305284568986278236181165616212235496813492308468212893395729179960202694189176889767478251894411305127600765765494372940473770360937464208103610024666525884908568558686910227407509432244428682132279942789327635389381310347276390112154994835158629694766732088592677783452180096364888457898669602480646409782575185764659374705577034538665529505977608856801076277046442270052335947099066070262826717325595145857303274955282434199173537341508854308095360819022512214020393210248767274910180695773910673872299439736192537593571934959153599547393608340227390619720394788459060182619609300578026264160365765152361676088449995628127334378966377102743867171630887781600167952572765881617406494690401381122316765628067891469159516128364414260941720351840270539938088193412723494239689706650770282955569558294474774150566502547276313354739820309770993539260673626335557798379561132033076675946512984978377740558600181800060867311274307878557039075698869687778487846646622985258067107507412614180498101621681970601326736891525835920762472518375901031888838571170245968895012005282442111644877814296553003581753579882609418481380231516342452058476863011434039122065436850820654325826145285924818727161324908205799270393991796131915300390389586668323844173939233119647139775008558366917405450107247020955407966613773717329844550296278457957965131494614791597555365409528087689238482776919728258576779446862047650646590435676342524006268234283253906216099203755290582675061891899440139430468047361735131257126756475701629159395035165221346349824825615176291409084071193808343486746455240578827256954144596120582526228764110459763149141278553442296778878413726636502582873623026622502453829636762212040817434192861370477572251681893858538126978385833541711889511446328090478325331039423075620586371453092546231879738341828220050802738107751941143968974860503417455726076799505112607350285222841343340931821416899336035394200006398964869879751538714043299014324284235011734473295602111632670386568734288619587234317025086008771461610246377882218043653044281043964349228910305054217638993012654736647680400060056732580710211731819103174979658389588065873982555362290983977172497942589622781878931374776647264233768288694873897864518262118607673240983946877692778707004870335855588644215739207897828571577145062936918845683546734703342044661321659063329553769275190242042915530325203338266619762678415613158552353484891678171004540312983962143361494938611055405128285070652649979622628478917049592644419166787502899308120289267295465518545329624178964217306854375176731292221542676198370114805002099432598416992617532647788323992765922064938695741425424205959870498068051616814766528563767451043559875050815505982643958935502203971398649762289149938797709558364514179021398396738076740052132911322258737097561569523077628392596937405579270733948524078779378359280154494992317248403135401552891841338595800619307205414913715095194059296946034529345801951474527856597259495191648307059206937520177890580747644122305953785978158881644200555285603317757652869729367173964117743018529396486847537233983911392005226820627585274219406459380218862175865807645004305186035382930999923549332348048889845291369914157973252060566877742129690617289666978911364832345786518329175999285151051634726435914981204656773001972138325480729867956704249803289187760187071865244862314873982399360892590615804964470751325001562126305050272066738911278847622812942496957917797087270294511146866079832886362634087740610845862062538604973970002026713757991553625205577216119070625738956826467544854908654962393767165525432165253626767424500015858752752541812748701729880762295977972716009853889410079749421410130968617291812283906067351387018036120345078330083306333938958809987707259276573648979920868351269996637980958761252312673337219494711794153684777228217699834640348518313296446114920253445255102907252168188421102686612191282907978002941076864144353463690893741197716314749553726291311088632197284686412370044404026746941335386959129508780031727218094696678452676965537169426488120117579779269055840445162016854238950282555785140767229014563736464039076558418899565148360748138715963622192404422215671868382115991594050211671051339224389594263742100805661415576029308115217981482531035624474360707915110957955165406248235226403328673013601420542136721921087872622555791854855293822662170290179003180916724401412362348512100576268008384143579199395734859840547878469001713362775210549214358851355121711096630790774522838273154988857626723422204539862331953537344744286719343027642520378950666218383522583163231240717373248735216143935067311346804382980260810431643283273390058279231743585831659106181054390506457264474280534244317257372485495933540230143891680102154026125670075734060643844094738990826374932351863816511931953114158952031842143108372802607860174571939778539060114527613588628973680766061323328005704360635698312248789761568109843218857369250620333982104470503500483419650937969589531949391626560449883449530073579976478131516551601128098256817972776334384668031715630158210131138996419515732407796254833723532784983416227252954636599736573027754212224737638727364291432990692838393839468947755204581050940051685682092922848661275395031558344373732399125831532190662527681815781825710851714084674305215666327212002776865899627666723484626249671109413080942151323253376731124520497446439136352002991600893770143722361893939215962939907051271453198795406339509405252749473112434610172540792762286041362904973399935508590105540387582060486735198907541360759293748034864491762149131928449284839437173451656348617112959649081993559572022155355905351620296489860802841958749058310086139061236125640092048236366809425954584868769918120606371235897742646029251588997245022176305901779392538938087342083178964688567142418511294159266231972731259409780533925566982233974828470760970148664562832629319327895441986650692061443247643496645267678218275697972219193522098023298740636161156204117601564936949860368861466370754407648006911266966460812309297947152946176903980278651847120280482791486264601040051211491344913027229742252186287450303479783526688982045871303337943197179764237188518278287721118334223278418752820676177504749998554314114688171212829816582418462772513311148593425549611893826800842036258776498283380379398273229697296767771323344357407480622646779971675160313914588571774239262913488231519724342214131985028435318770241916272180521746193315701977741627848855071297337073154413415070853871572832680587925251837342605151149747040548030615222678579963201715642769671468090747881204709691041309024042332267822083531181222679285642584312382898140170545443696857404411970385371021569491753172035826014951319239836917008492309955098775304613719193828366964283206418906597681449340013642199695338190371534688018765016847871012483410406434446972879306602211475965809892743916649357781124068670618798808810636853372560617002276290341719454794757951451520547044470747593624340092914582706808206746706655342721482378906746294261300505172376951516653430570680941153343123673021700168255697814857216368764084960544767687417871772847793990878715870949329186513566595301661487661118993332952752085464903885030177114370106895635288063068340159253936179854139540113776369172914066041366074565705424335626558885347265063827116363158594983074481585699679373947959830701612830567519771270216420969320162355406185831566283892229691099958621416980220806495648738974109271115417192915005905543933161951594619539795183861591862672259171883050210410547675545332160172553038864377085908332488588484341663719790035414488770199398006769465506786773160517764584244962210628765843403335184366642871111635173357989968367468999826100291935267161779297755406465768507521183418637589877330309808807250630513341659615948819806962523934924046469344035982804451855742485385458819057336232244866967715913932409079809864625235712313897608400051986461869116732029092417196032633948379191577483202954091146461388715182500022464567085893571690718443629120599535712455934278209536541806245670947548028913025116477205167513129710257005640654441536021120433127819879858329639271117943282432582447471681345738706402095275794898102800244503685042791108170208349576002920024835550180925383454404366743226264927246135881340592062269230913611361400923472670685687236491771023457439912405895246348203837961092221375818977603209026818977847882997954112762508544971424684075428378158722800538383823820206164309431053545635657021861023458984236031934648397874009376189057294521852330326876498515774094592831508148569897451241076873021029742032903888105338152936645117389184585673958344655198576634413334584521295723139469112926692723272021954926565795504934404422528147838609935308873826843487685267801814063194679679163018602112725907294804492696125118361499710520740976420788065375500666232696090787890218032554487863047257373546916639860327913712290011766902574405613684622518349903522214499137642880567263337861124898303871767266075705470854192068833205796425835922433872460465946085619762168614117955479999696309887591726444262418560113363835441744863153687748867748157253971376819233834035595234018193756054758729781715476231069646036294301077829521520686723332985243030515467804049656856819036197511701419284306279558729885704227428807323736584414188989780558842319499891262740059991281214221772570244166902896667817928749334603522137377431069781315694562634796266671567512823371111531697616842536999091670556327941937994641140982183390335172792008733611139566278998338032637612644786100031711009381049230770734356173902124410405324920909778560324006229254434515745662794791222603301431373400374069261428696229388062100007100808284918873622502076336202213272655143227015177580505404250213256818927482263890634606826050679603572197548299434190325877896752293273803548163153975722506765215916135746524124757571924706938902100254896180145395869693689822962865500402175540922371513682099486177734449569380538274210634097551717468513655584959621586077748479012995568068809707126763278084274279019181853925927599071312367949972935545549529932064254350738419320008934975319211947509748082853201306583358269877808490177014769248749859959436735057954587322513400862808685841917483075636801255783944022685800840212741057373314387665023058779388250266078161598459256048281032413570251662893745635868277512829997274312284063697730236269756068554299511644484344314176013857532176123577068357307707233360946740314608608888890667328684817773151418589879240135269856950676959418570170898355459974017378198722012185731157871231223981970897327468790130865572153650845558696901989989326459706923804579800633525125100196785065558985379077532989081672367126388792489609615781892225884363188707082024928472627082624576024096908944477378428287649934284143086174289851094190915720571906563783103180056315528649702222778900896840857760499302225466839292732866299145586657750672866795120900034288634735765281107220151571212951366088117762789071503817700221766300560576232513145572695977635344595348559672172797613413628561981038079462185198973615766080937175342923262095457413944023648623430297659349040223454111458541281921416112384251012428621166673399456547926908438674957590533489871577498041240569290799421784524606167855912861433921986240934952998381449245275370144790877287024382220662265607173458258836613562266027289082589306255788329344369401172675623605167573856564206047234627314605381787680170120971876295702884796228318573968114848877382706721519730993086378533791033677566948545541106672959176210869831830952761592422659427274503023795302088607190187905692340261843780648660218349718022819811708132737456024391859590980758739515271513858054992023583110866554797337229312041599703207182065142537164795115196078626131849412232443906189119169574792606216185206419843477604593388939814764923991063854590216362514599416391776826570118964470012115953156566213407847209562418664214359993046814464982436153745771565240364599404130694769700866636553152972745650993852824031613670340228802835449480351049322058009262972199361782362777067505745368257308065379142633484286818828773320041864270240110271985387043061690398446040643076680176210784972683726087570837373214363618892922713222676194839001758074937358801306136132332106968183828654527272351124687421543421049644702837733012894095759024790405740612321313435515048973719317722909462035465703002268654015860345887534429172570996598519443402713633164086375280646355131462636169821315253751692449017671796667632484775353725337127810445906553663691916227365490766797842049661306032669001410609436110389949077050833454789013777144910976109020770096602086915783431611152558707560015086149216824273439281945867418692970702401886055512247990401949713950519233704313979900672637498717304420990986933413076159788646579968944874774839979377018615450610890060803738646008856908178956540053420644795869433325921075220679197736475801660805483028235741209697792594247717240127469453832916005794369658511427304204407037865080100993642699087384187864616140072614161159905604902190017398783486914059865622660085470302028832703159226147191344750541513631629715851804521354222575631394727933561216416662573260016077475354279851522960459832512638488297003314580815075009669994157752621359923956244067149542741535227705551440492779155055531947204468538673090341215852079230912502118781479655257509592968601101213003519930371059486364797883801773881016759930132030152977939510041713043832881879742846904184723468574487471103943812574754569879495199290853998285454993223964217461685711738320666914023413640914842871969112276755771126726201769602765063383801679924205614581860081564816247996032477284304363521072244884723049587474426096987044276791818237027940839304040054498533027624730748026064015866443292714909582366477929604618667403325043574168698339797546228198137628325934595587831254691029867558402945423584689935724878689334338476615304596123963415794223295319416618747911771174060397816574633217364150922554147140469713362632192395675085892181934930069019362121878770629074335875118887323000149789546192505840577698067725207686243567930473106535681482491809280446518409660160755200975545321800046730791146723828998721569833822311775760237418623677684015989249025661799288911278554821342678376803300117583201636990426690270638742075818220870397888034559107280741592977334282694125294059588343594178248518861076477305673700231863234082414345890025009549338268823988787531981778503741070423921771825886384527212692770963520318690821199291048496360319710573227981272192959480995299899779820029450062647004045258849019252887124015569501674314744906853644923669020675549481057124366784045927153302438455806903324817990059550171426967504317461293566784769398956233469226435922002536508677079586648261256264309098058472424167038909738839950511298513248544130077352774419343127044527277879155415783774240917509290977434042116933910901332290187667564683081971750423348036758449742165520110759035830184396648593276428985171463497587730130010982010664905186064418932015403359493005355427441448130253689327848631842311830066249273416611181578417274678754531407195234013116970628468931977084582310476146165586508109640102213456805430058112018780791809347538776897031108843874614439212345070465569513639041869775796371183755856554983350760314842973275816891023477283195457265816367616664581118881705557897690140021820897398224695298250505183776613233240211539943296549281996148638627647471289410959704406260657205593442744447254283371321772777234668883447680719716545485007356427885675281004200202187762938162595355766827697910350626325149221311458418962035390140053770312398628823997749312906393147404063481351230415461551826741454289402238013404398822888433668786800416390989000039982817787795021622530851473982692125646604104219381919810399424279252677653992951186002114397281831302574000020337022290523017355895746286405025597441628014673494204878949888205433093679408413818316867381719251072841881993088082872901147477506679361498686032397392251310900081543169712853037151019303027485735072605217097177527714042421700833952703091102100812021252047186543744906910866395065303999328803075891559045392392180245504908226868891346202784284357786158285783748961372569007629118479956811527714229649632399268627596771815476519065207790814909689671007067319017951433975221617089654098460976353670200189917115588106580070928138328561678919990400236613442877692045144244824999901833984185504483592889787082663015651625364706585866010170424442856602282762891017790109736375228662192341854279931992913527600014726079124588104303692950831134819130511934962096383336662011985637173761997786317331830592927264909097488703393289977091171023769527857452964407032692235871815311599503654841264910471726080516908138087948248826278887446098407792884148726704368073736839810463042023216089735192749676650804871852714171658776555468859954991899815670986462915213434344230302846707521504962482571753801237493368962971422406450403462663320398948211493656596311528243923109498349633306889829428414037860566740653055314530161992053050987122016387336329064539289121490795788128667850481445826176377056990142121066536955211023561049506695847950077205492655366191410488315741633382678911523708764449244256755207338658833341364311916582476947294490403505753389484320167626205066493555081977391762366639066359547082769929190132039776741146655498644137721235334774348122404964995544520048381957095723902139177901960497878008431671895155652785909424450608925727301257046035314886786733535809479624030742424702196981249266502464898012922195881389724406937154357850316179526659883558648988162979580754032845945485485578821623706073944209827612213901266523841561212189851351751520004764121903652485922283723978991124841084056812030913068608104556865167676967987392510146914677401411019438874320826668522805999606737924579543841991449573235633395305705321656248571232465348123306800303376665894017237802373668587563529565137699847432698659796041391778888531501199622704734992955273808245939131867037408390513701786354600793281663229637145396404537284502209120298259073339253510295698229721097312888515365650753497921089711586719159734310997246712614946594448038719603016073121904044110502191175683287026646463438753950950577035911393117238730204094331991748298490753870896471797560670481370831873078176163737837468179218027437016148972009772682280950516737113398724915511341971875420432398077375423288129781697426685139898830891104847970446286582705731167506393521116494884609018087938297848639243423829345005001889785027548184403793154299043191985631414092630520574470477012660705830974621826685245768550331102915251218477109498898321004389908267812554550296008172634829917787141163729137766733237766218377391794510352242135943042340301053520576485165865486185366072964270326426656085265886989662471146552611949278938301738423523518123509074249277225114724316013177240170174872544350604148319360879102088649771888976660126787338107444945433997151714501347904590692599689691569725525471301101676106998957180187965027079965413093174557695299068605515202306214565325086270204280206185917946568030300095770242358713688893343046524246068956672496452660944093572037526114699593648870976501737403835665522995004001117854824863898913349864573342558123136286223641506739518607765805442445065512062257321445104662624300432537550879106389667381240815721537910764099842513468193899204850180859111588760886233619849624920741531924361340591245400953005621793984019163437949994264944527352830531860187497857014716253050775590849519475310125736668225135208491898274787906070922983903813337476518962048894847850230726050804227636418564083070090798277048184266057697837475856851039568416210160094893922881573276339250061464483877538773643800843841192842384176778637281988383879736742633244241145016413255339793665770864018223655951589642805845182762185940365797214152149936814489468344828599641265210785202527132464447125613269974299691761085078906383613299218780976934693529146501039620242123330751800924538597423214641295509753354274832667495130712539819406829503777843768862085299440608842102468608418246298690768689075126208611599214952940990234443630960029028563797943019021325169988777863164380432248973349962096852393627306679264749448584525102685946429823717660615883752615955261033537487419195972134288215707442635369583780598346633605863292618684327551337210792842172005204870989474986913962699973319468015423375569182279318612251452921825025677544606022222576136480301338296814161725183289235251067057990367591872700522963145339270701553186469920467237657199539897212270643106886567403077520579462896117184215365906938283309515529561673355851430766776444417454112655922469110939425057295712050806659866623567828722935575986808297208866721898109362432096628338303068150524995089693572601709926626807632498383167721495114224721024621953408111702872597003806376662004713672646996887006563166310379440410509587186798835864591418599921583572910659641269261261770537371060254030088876011216585498934346427884724242971676858403189742723931698381559110087712609639824531682618357431572078599495730773469314704217358948030457544477627278774244575986848888668698376740799912871887128766345772240768779058155667763811758893376185455521759035405535525815907894209193489444865509774790656361580552889916266273445184168895784332219908886709353761700259019165297661249397103397466345281880491409008270059381380442992247910121343082640332642847847123681839442762498184054571710215517675575486758556999982112119743650659303847634432678129798496548010781020156645753118556682257595156182136537945941013808544804216419896972888844953328605609604433082553593967362298330020868636113262520168233298726173050465852250788133426530928186037910958390821821381616604030125335673790604469834170112170749786485871138252077985564972132101194535565041929947539661818815473456973901638156256199939039333243523340794104883550777915951053191888590883275626130232806780299197190788611897657843026649565995500823972059848560828349363683148620965400480244168169940673429538615192246624544888952292371695326144380206009311628833313730482710285591016692381920202534597263052321714499972535010441730424449509966171291057536905264765513916238712258118623858883809163222448060355499098256343338562163575751159876578828326276464425864200478553827385779143747234970064316937949392942422322175359779861083800346480675186851273507232299215656938160731358376426781775790955245922563327642128574611345012535961526814157401895717608821347975193235189282571114359798080748246035131986786792266884455834163933377147588857396981147067777770726915291069058585483683186840537215068149592727677094969162631679634565979594420717731355139177458311644229592877353661255070648973323677017296749861399005116206001108387171684027389294827698353749444398065966006632235817321242127899173253662101534553444556915972785672471272593239800731739948980775246678534999135302785135083668610624581466024897933608407979547854203515367527225286658331449110306724310938677618459646463902985090402005056758731620455566008999728417395273752370466447772315745713360400911256372348098991891266288302733452960811855800390769817977395215054354499042897377395459779518656581850039986449621699440701723108035354969966014157145795215457718080852685623514051926406920244326492373401548026227335505370022975653476840768131262958439984336226009138196595367430686339074399545947176231944140943859993808023052554669588247897832131459707746326749105627674444399928477562983870190726255912311292550517617824525949546654974450918448667275974532143835871767739342673709284235622485580800268387939926745289600698989882191573326218799378981788960845868175507309727167926064964085135777323555953527770152386659913769984470977237475129843460642185687987701661867081828379256048855579462218317088077222304199383590638563008947643303179079422114092658752343577781268015955101287602127461410997461054900700743975269717966658144765867149928336664664487181719573419905029908700776491633020418568606538907491479246035211493851672895993579368881021483935206819098841525781611213069019539789400345528483740569638025268968246946427065520130578096763585454111650083236867533758236816892276655190996069686448644641834580981132828154806979789508249184640923670909976729660955267235934655176224066785847663743061358306832015673998972772614575197963745656430496067252099036286758460003686573531256497152055639286450433799976548242488973000628404615533806609074591441138546056410192511508233182888718581613212667848157336130119657374323015247231840029770036421213665064464173684643082090946426251423693877588655823268983496106385426186287959620849533384168025595045349616273197911263236991319208474269368658376775698119830321394609614058846928972127312091567936424135025667200132604403838751764515242050898917323488667719255629510116196636313744320205986809672633199690282236667862693872113120463884367768134705041048902532686857866059223393407850786934573418054008246333259074845884405552222140646902317652919155071902733597743086489107006665717819933842667744777930468423940126017820966288438575982553907397200377592855478141825565006333071431220910486621712753117137079291149272632936792377804624905252124141717820962457606457156464632045302767184097184779449239169048563752800180627259209313910352000488645534530978756697155127499223886350885846213863572587317877834187161317538417790695827363888524852212815271565018054013372583062004287560067678387519398032487080253207041240150655566293902900929004361114774895669357938705140356409480519987319679750476442663702529776770128328561741537970307070608859502078681227673868163794435802563183667416957855183376073978702201217908052605930972185070977249943446219321756828639058773145487537893279400544206172057191752530767556981630791616679674171021731903202605658334501231456118551079547521096241392338036544117283601903339864081417327697410583256823797836779362511538244669144195699125397486772283165636229927495475483130978465265698586652126822694006225885732764276712627782489501301647237726098637555723591702938220426544284434179152507444954084376944718226637766061460146723089549018133015350558272866991606116036673689020525495593518604013220535960641681394794927375697533062253593009917800695607894666124640896337350603416826850120600164695840165474133085529656395714979203299949261555824311797762403932017741259868792155095571264400923244353770796826159521467233909178373741481001640515566289615248579093253895980033955310804343050899983485179268436719917692498601587405623906624384110597818960687161541441126383300234647014778000124906848826190101765409745512685948721354529755273625056424967607481282759173355444618383479886906041851457308703103690369429022386486003530236431386481530617482556936084902447096188392898917693277410494533554719410330831530113407922033381791749874032002838324196461536861906981758995963646000780133333616914817925260604956771241478170461587789735425499424732717211153433102723892887295934431202469970100209639797942903455267858044272586003957284157455430630577152561382635578200956889686819432526033319830028300745772892189389074227867834787345287869922911482540916816043644963627157492020085971949280225782577035987427291589928220776701243960359454973302075855281461579503853999200129993506038012144133277299759844230533341033910671569335229351821869421885507094245251305377944140857029230862147770179585768702096959603310755114026677569649558989614028715324534292740469377205627890430327764094437921017528649377617610250629149750833944101619007034594173004556938098151073086198391690843372701385203845470033553391484910265556097172358752110796490002006124855223138993251589517309007842766459080048373115710663657835019437924963139461713387876081316523024391317919848618932341717112153488441029111432919635908296841732216191441335496487675376253394627935699050601046497203436956871585437794735489635089372413121810756417469310776320649222225747162007373090396698269572816474323806750559051787608451773695158309966114849253214920863223802523851067829734193479304915042347364018702111790406233945659223585630306331327585585080301626114684489528369017281559386205711634239685209819142200683298945893656507090107168409706694090434021289593554098768152305497358417437802380764913713118554906190235243567029392405592657472482002390713456417411175805535857072150109770067865001113981537514957724155139266610060942511765013024412596335411660383344536997429184186147140632714857672441479699642389599314139296838275705161561574450788478985916939854619771217109058792085991914752009524561399416647088352865802268916507201600090066842435192241119034217811851241658089193192953849582961132514909961870872711180849092382320390757895250600565688052939853325601914529503918455899625718069662290666817824174177078741371135339327846872767932693654052353602263567455864161300495035082332447787210385675821539237680123605691153908447548608691091283744651605112476627984222650370945146642284339258345053722918480051437141797273559799902955585316741227473016746164539957331187833507681112363367715326442782246151132921144825016729001410528239491163689542588009350262289309109000560157040815404973059064375586568778853399174631064513131463129019305466870463406428459863704594361692994279663896232073339520579666675925877886271240116771445391183391382192301616034668020961845439639522784586700086938307343812218063511548765471458440697092593928781729016695418642479479391364544812078978681341979963183795783855285237122688682751427976929849383445653280388177692675096510295327261112638136253080468741870267086047466509049697022762956714732510936966846178514792461885044587835439763006847224560212481018851911857282433947864578003994364641745928674738799632535018679600468618915141798043812426055078794554178642455914219497233320415843775949155026361263426968348886662593278164503798824516758272032378040423392130165424803987276671011257413304454793111705784050959020612822333375864775991879494236786042623653960243860386169982371168885466900823702955410315048109609421325458368421594286191667059896915724147784628826143047299528151975768654876216877968011012636099269210360342096202006028924946046774403708558320554815513424253229954202736469578386849657081450822329641985628093154589997746406484140271364442145381490894246455471775239042697076374294824799425625387711608270259735981518822438508927885083936126503973552590911566148061334983681131883750563991202797927378678742356662016870989982401090948541315995286598939077826758392468398192135285360347158651806808895351913008520918835160953946096582675272773747597061708132548778301018850813111438198469699913985602767511254227243796468958017834356246774245044579595497345208346589504480900226981342455198464577993822544953153125599729756812907639441895907574524003365155266958197624252512909467264132676949173310550401434190258783787063146001157072333830364564413026474626681350120985688215248295430550815919892189017801910177069909630812579512133043574639867044470543389290001302546194941289573629822464302743042660607684886573057121732690799415299043568016957763695473434200723074177884172978307493210314315999403046314552850318430777879879636072226873137016290088258121338276398801878563298511651851554040606852119273896215383376077467521122974795953924439565681683640721842009764193465608898203007460289495223264531608988079447888448774546013534560269147165032084412313100986707339318677219527174854310797873741301309894528518913044061270457178206437000700526955660652068875293954198986857500593852868593811426596933658614389181065137864704863614031166972107453478478861518681345158473460218446805851711096464347879858510067979817934921519629243706685445154086788170485673669330814439562361195376042889081143169144592591455602827037340002819303618834798818440399260596252809180222615705377785171045488063198667561717714777162630863196185908644342909198545704041583487041723394596667728245400829740702272422671817375743022580315991891667374100144275461492992190347165151643383569612202035476359688974062722869444917198365733722734537356647968084095744989932816261600355088612726405601210130953233965804151309578745512800722536571521742483394512927106241835586824842760885203647695906587072468450771712306700368293194081726209105491401290889681244173012241731015968693110743271915719775620457567517918198222304720614641162032957967062791425183342781779782783740801710171337282463930108161013815848349001046674491318458831767227047575965276340568049847733051196460269869235784539838635764465906545566487871017880418953488129958718000401111906516536523701671274035088198032509027564103694306658689437416067850283174031819764019141532947371361070804833070278548759726451431222352048150840803172007798580513310046621474438050287591738875626052213317776764160317962101092830679965236312078688816571150049589782836405529086705244127114259115303795058613305627787181452445579994317826439586046331541986078705907032611025658143734093107822206748291610401133227161358127460068853200271597285255217285428378417571796861780218044399849214183109715724257391886111446561142381374261659677842814563727166646576032915010179553110200982878873580624700341374164118703077314358666478726758343105523482093471683953946369942616210629884301554116673089534799885237700893242224402476127241372585298090035416248930612036729352923335135019578906374269843968753634756234036943871655426681077169316441074262353579751716640548292636913606899615303210308372177606790180404320013715292358752302902977543220074704358929759624096597858855451112102169163335662329470629658473008391389726082654841175836990505066251493516767766603716590894120965901970678478223254571633747838028824693808396010852416077288441238665904072336627370686050949443865877071329087124275818877586625366545453923157115111461117649019250121282747485171239540733367399349143162817858921014031467359547247700325491660384680225956053520756121859494222834871155969415410124633783002750955539161257847990294911010681843130414498489063286521679112731558097183498656676827219030967398348659762053939718954388784684303656759533494982294901356202541455487798619436356526100012601388818769683759062205589907201368094532107654119085200140553431733391525795158754412873407381948561049675359740404062681329844834478008293557106350436114313984176256254439405171875710943643968355409082285776708733843266735315299838600104031670807751325170652866290671888562615431981799828063790543933516205289790005381424330495179404140899570014288234951866642527855951982354728179833599439335164020029349587074335086628696547658942077247971804109898355832592468439543749968608900985176923910628568181229154971766264540430219869529558637264780741671523899686450686814248290566282410606309724938940116578250615396419379787436210164522827652659363654615479894036269492420308383702599413252992153163992710558996386264047366272567681102850944831832777229485076430927932010866674166409241995649131591392709630807175529265701487581629634063649563822064445207580216285115910819032051841055017641428069007597732973519629576591695827958724715689840690710029240815481628932597778793485569945939542919291517206457853259535891951337382750718087916059592261639069813164600767993754866516494231364983920080892916267799900395690155532145347945298162691900717788179156075896557008003232427052205622919121528681185477540158304692143186395238222655406431468786810401401418589906603118936455999534548738327446432639476215031181264945136827436848206980688867728944112470140818113886386435962161813482496951180833048432273408478341795991466328684143307443252972863280204785480133420113268129083667900445792512735139744418085278739446432475689154583485876468499288811954591201851242363593665068501616896955647379771126703357190824363351823625957721619856054616697681426379982453142624254095738176675105633805974554855198606073419298254364455171199324338935380087989747056241030671863779013342364683200597327083539189219692311064664031081126122836782048235517064296960896056854154600885342532314651965068737117193047371086192495796354363050160638176035467137797541388377648127033996659161836578630577164414773135851864055859515467957539053142865795760964424301225401396956661390085949926115169732109479361233986439840518823211504554608146162823677766981660926370366312571181570129249201503403380251167063478382928711189944085641993534976767619117460714348499379414705374544947900481975776915211302702160349430458299354959372111420505516112100464146771529896350624321080782033020374725324206973943993887038746498253331748372360933513067978235986540761193264234323282306422191955374091179750102209405397857372927353400699848189405695655532121654856572780315918672551189315906056536858621687566512039789286333170007556889845575168200624165978777793827303572962579640827804260383155270656435041001776443247406402661889478898483986833938647241826640011557964694320136364376060223085708807325622903930137805431939916103176968242415891778574678758295509672711141803122352976546567013870441472738039882442677489479390532019907769332447314778717888094481400477172248018368391861277672060745154073864331663385940140787033878171073760780496928495626491162803172308002229022556545575356026991892251794699315855239745250719098663558666333106493566070683097788780782332391781470984280106085279141074766641636755733684895356074572614013850514076425211083427631544571337308930763854170477216845208582632391024192205717204742129993849208304851353862888940543973413192256377131043884764553343600030323122994924687341262883558512102621590309890560669731379923156763785574190710706027142490387465998522402462312353995534353588329664065732715050788688364101544595382066329446151835422051310343853406310430477810785344450418026439615294948938625047352529087650557298358466787488762841907308060886490305404892694576528047842900317252700010507055138114167199550308348953996248547816772547895270806676638996523566947859320803627794818091881165728059649858559639168474127731415576665862626595497965983368185721598216113338811852826070877680259047963168250430642192346222877735091336429246634053158116346673728754012656150271352847864330979490770993638933903940458266021166531427855542135137370711299076341615265760300864166172107346744507485482233301439985598758160462878824515442456737026336635274396100179201095051281507211307891032089037138123055792573635807943326358205810258698083043490227023091938898634516334947511959065407298549051332176668564620053548052989080030070412874941840432663438576272215354439419354683612708673504191518384741531360809618116523554859583051046290982074209481616188171312739659143074641938573343928967974829187769581742885593937869216018785799083301514326876044887706724351958019517967199574717149060254542322363154330873984200939152035534407609090136079877976676784576528274463315915872278775218544722960356203749977123454722258575676815458587300652414038139095117274596365340084918587479133170733668407546968818118257433079400034931241395169171943085107291462020213954657221569471329255820546487237699108667917828305574254116142954081680561430253681633067714784519637234448971839564975040081146481607160512656679045748787010637465231229400702158766595599897417331110456004552691904170454208245624397119998080101580441619445344415568525978058971126466695475890111464192931299574882727178477696324189169156448571438949123277671310073923155004501828038016109817986427350580268798038146738657788869090133640657022122677513107625345460303370634341985333902821320575118615495341122010673039241021136835247070349534836112717870119201865744112059874674404641451562117380891231842739083620806452009482663984057253564028579055232396186280486166964016634791732684719671456170466289519364326166072532459351356605422307853742326017855866647689023331401184464779870659279837900353229677952305794190102016243684027750762407192653209475455217254821068858876647355612317341133275570335061356103970318247569268314720880282591055374449610031938578604605365340774547437463125282879195657923112246164612637042691365115354130336050321896243573119969861510690834732782680498288406652925689557756674587368143047404142970899347770298617354396595983610401826829115212384335615775049128686691832887457485454451106556540036343469275139087432653501889152658139624919271349505312653227145790730340374066885438122068809987202749859726886772794964311489804900917065867512878259420850565495923004840244283386373377217423754373004555324572429932331075856623846835279695440515875363921204538572702427633424648601508738257178607288115816701499303319385812329309982074778543721192016455633986885555628150858210663118603341413407340781832366330811882514370851598811808145902123916256984897960017383555982718951868144237988746678713946451503706794020299986586775468480857764104306883239675574696527049140150046322695572245364765938841007989625759273608188581192517295263487291827120318209048439975726721268810070922867898338614937952469624177482516667884687784235599872676453096020309442833341835522416288667127776185711329110830718139092851218667096266739611644426768639885133789645945853771611627356593597597244630760777369700202511700355206571931911752023074609848612244247189437718281734272458010317216399873623643286567977801555635585691103172809660459873338683844729470970717828548522196503898641656273386054174999883368650521106970398769216222905893623020722483890200882833880065093544920894890776176279489195681637056221373842429581000075088024448838672838779739419182606713596441508082132012876586299016368979084271680901046407118956345929086176863352949915814880281264250065501717124787123398237165571817380314903434167618286492790053060443631445126648407594783180167059784645681331276127404422637642581485958508941277210745727211695948809640903866184943938973257152362316156666780888688210551756664432970771209579251946544069153889105336851625081286623669078819257963818753183322081778467047125776412000747405869162910749156902125466059904445348434446989152674948672392209653074431399181811242391672341167838287115622542306057549788953443414228277580815541276894168239818511035511128145886499675279658500667222323561618719654595697150628823491056243891620674777316250753376331714880897910388052442081591709105568022839567381741928572421074929407639756302922138117633652428867218411639501203586487651657634334956418482423549513371099742438730842440503936435454682030530104956051261622585400634635314308617043924977923662790574018330445529569306864470486107417868505926621929053538230726630848383077927131277149260466627658389370070122097929743702358247481295575005647174118479208357623109202303301712532448477364070295251163379849663884099967052656219278264438490024438417760123034743327700489688476346184883442350082178710427495694538809591143227404659185550792379088083455363699767821480777544390015960541546124573931193638165438595908465310276561483618768225749735642377693339386025207974941379606774597964166280459795227991856755695474723178515280594112678260726452421065124873319663125093692263967458731996430456098549430885618876492344907304426845627148814310239603212445056956141299456418225085845383035022674852264959101218939260999710162736139651689434843221063509701517474399451846764551041569678363689542374384584483868307579593760913677689358646464466929751694611017334813897515155680829971217143242010945146912859860576307370961765631494698441511450447707997960376358012563637641853747993508135009346439845128118887663678067211285692077106944265133984112942002098340344059185145177290091965908556389767201350477826714698782265276722763256794961549310413921817349092607676603270989702183731611650237202115064698845433334832843214548770249268161160934006423827798419747109138411322003192137603432110093218170744299199236991821939849096297426002458290477991072595121513224720588492283000550193299833809492822386994104554536736845710141292342382202445628485764973085453803267213114947215704268065742483674216251552269720669646545660436739818348219894731412866639991200800516893175645872519435185562376857673605311866019876682699219530344575435069874651985003284139212163411919100901384266785711066227947582316790770813296911920147185200073408215299937142601138401738642753334306989862393900104993029126419975319821550817383261243725280625794000263541537409941215287541668500317850483924332627795690621590892101974625893398037485444039481279621653671333392071276390504755039080310406783679700139217459345008267924973959088020705114464482927963215675575452255586738875696798457717508385656831460278855774551202295120005704290654155571668031459044064115873968575432299704184919865595836695642800984402744983192494909437423075442012336731648249184108488452889114553237697302057562958500471016128800363321279985823929220746989031254055595305544278766813519449198832013706365703440957576357886951968384679877858333436145514067239656977944906792479420362848503560747542861041709038923968941756317473577250827531833211938055659274401526528876068138772423315417980447745671869590649091068385290444356093977852212908830134512800035121530893637416862175555200847057350823695821972767336594095937239834764613134153255282000237322857211517390687979062551535013476211653086523086789417624419164476698973345945540872347360637181573019555599622084415744336601523904334640762451909227991439916599955623413781211486450858059526570094157299414866215791417427175666289055898472234556897392481709425174510564305535852719683224209475386971975731771526001300382569440946847525112368125760505948801104605015147790210240928574414146463509103060105675541272149544677060783676065433094528712281671156168569829094623970204858597704336862650566327919573257673621859582829144874750255534564434318804675192666376197398410255095861995611569782176955908269476535536782418838558698145674834040276774474264525267250509763255534860735485820526256620325255139094021968721168908753961283826776545895466979880437428581368884725530086733040917106422870961236947364861494634627915830554436030646541163832753033380934483031310612886120828101836497100991534040068056111138553380677342033358042916873235585589040654572471019385509117762111994386548325707133738245597441352057671557944087726629149207735832242617971565914548660214025970475942943981273253329871964915225946914792623618596571132075581544710264981462911065503343339317992871836380132432029769138877626890581967559250080514844889073867270456039172705791917272808157689955145613198700475786572350590403968638963039723019468445742190483518541274216963978836730028326131333509359878018125712874225793509010324140990508969136054572847955983618167616394513253358523033700665718636905555845086628638109608017178165575172448602914641395882779020654466220023800431706490874927397658920238295884177458963609727871844979519490715220074620251503437011584468257881274588725196890918189373536313592943144411049608119739930677923233257609147038155580460245798508278399259990975894667966285849928457505264013248134349070071127191718355666014110154249415214684590138994267712319245339024834121811401168751172512448176850575407982880172624436224846692188893516193043252121660100765386316860772409821236470900718118332554987862951703839388394687802262890144208835621093848613203739465132671595365703242454192118984914251481788971869727054660333086713390567538709675084296581902183119224226406142870602265742918853113810659980668306397264388407350427683978496255982400266740093097431427844453419411207032429968634064020726580319651207931658354738021225145976132298778295400045530536111295125784933340584483003641000969424421439721326642407553038711983333771205459915404924327419260222348038251677155304845709808649986094808135729026890230025120698216648950670345812789139801867451778953042975774989436286382897294821972313817998305749094206152825022013288810890997580481185264434641044457834186250184777988506029035791228249424159863082395399403825442611796528004189908215275852854101042360975320539662298452263873598156057704240716472083297134053807019434202209061147409309573877611026696357607597910508229400106577776736679857718169351751005072959166367694813339191443903897937453120076335532455184594340901179255928765628541868510545706342192194736358334777741398951974063736178591286211446653640230514131221908255671081070029622378850539989951537700748056579679029893084771520018078843626709266532359801897529536958714934405199424313576248914363294643825659104961069946386959739359955179930981059770069507931235852938266273885091950801286230584715097397230458096272645680717854600151435690954840691631630568269513290314613036890365422231303723663352406078876209806034564876353140377385374184164827798446220193305183318681387712387007572865820017801479442435368312412925976685968239999017899143801737677883148001587132729929354919689854060432599499624231745240105736479389019505340002767594698479235806234779333644164622407108739942100790778919239781573777527600604794524627520620878918544115429683393420024277293820272412636510504645600400175938854534691086889839389373509534364487965149043201397624377789073429525510537660214168183663090716835221228886276754661731475993577681840422842255576189241186675948707457073218313551643662721595858718468463791603487443364406212947069743786154420063824275962885977757562979457943180761679225396204815449871444014661234848628866560608985190947288009977466100683857141192642452256538731096562760749125732465938231751875844349434897289827171700978926566869946578826951786672752770159895304611849402539039232342884142826185693120904655107659626014656712419318097081598337158853558239764590180946444543354221303965214771834195536991721637606263815296481803244933547806143416749783979316177242123200023495066272757836023081910989347127188636656992027450774361323679776859022553648266316333400277602456346948559195723358285723215108587239515219611070630204838529700355313593083464439073498378105710545210601380570129211324030830171207096953269000186728234755157905910209264744918805932979013459697794225082191269560180020962203753814643065918180661072489896696210215140477924664882734335063738643860763514920831125427937792898186913092624450180041670967020728837510701175684430108024959888251831684489180046154790212271876597975015373835543295115338465306167035534409927037728923675558463788641007632053554931784331028872961110808304838205871126981095067198857149706244783072303206570021918423017193255594747346910836623073189983747652734276162607098105981530168762763553300992314295832848435645634317087335148362630164032165949524780415902578573996100943916959832640641445184467458640372529048433105833020631170930191473940449564696678400241904365393256498045258556398793013415334079650930805652562894948538051481151642310721519832062792329178197216776817497280088432528375682156607581536181964737621587119899479166123530077461381450981231915426379175567212516030151861336549650681980037977977196421309486123327662357588460975747199603367067898846657333701102275084595743095214974553680553869239169490593498062643193990039327916000995906470914433312023723845509459714930245401037687624577090555562405767872227545895176844180522589782761033259317756147712750674037374886727694972466483764904995393885280801103439428156655224794014429670731588393465247492784671842999002039518960834874047012200338752754889441704582062886320456163854192005192538694825086620318995316681372598143933483078846972194355955511030048178331481191628671556205945464072497838353869826033773112141039830212805752541076157364568874896879108338579242679400165113675351563078746228513292893543362497848748170114488911379107698638701040556832931927787923629888538228386599549328512741718995041601274588341004282545090942977230795111941787136145111347399217183202125108183962173706764763913322486863973090904593795810572973537390886501763984632761023943518340133926425837376510027302249572896377149954774112726164464925983645699659482700416370931431696205793960152896419559681408582095380784916746761972679927941715708294343608453220120139904584383150725105422757601802646342107957001786064244871095868547137383713791604293971177156090510150291573796153001578582968806567458216497754486012726832412406477772807467348500474077294822308914069542628719093382047165560993168591466321857810383635623311378670201860580830214174956528240981890237953770392103512908759874557211330735101143412886481236349179606812088547114439785925256009314380498881971290770972192562969816897694132808608628460350443995606291107563308208894056626698040618872296150144488127018434245623931016270466023489895845833441481356175178847591565420429590714517552275896515769897045646990523481761236548410718921802785128290244399290902384496259568353442348693809948136140302660566736886530261723906172523131257352891664158037915156067642591101609230453375424274090359904668703276420548807730246564999409609596667593935373950842742772955866533771008470925576971912745841804921349887876948299610314208394199189146648536515559327050918961594278200068976279028715888060578251663918636543584302040157235772961070080850452818127840734888383929325380505852251707101784670160453285681607234960667021010902376338713265886963358658728454770251367097014007125924681892463079129125556913109209902293779421687489532714468993488799430294303390371804168780946327791946090274497688295021300795122257404888902685782643985315972142759564319305148396668656657395329198514007121897318595666677935860189861944068160104165798154582224432833480177337990450037100441108541838547419150429876183828686818910108417170938600409185287180307153865260221434212929797453332098838235062101786100574904380344536685470135687176879976378278292135598181452170772921095314532160898997894825113307591436657515504106757868496533014092525824255881656880683445352499593818290306355293415928016430699520444271282572266222497756809731990311582642266438858046956998429378015969315943179795432332800832134405002298592054344496272304825311022336759709466029532464939287897082230048669325415041183938428971958623932669534899211819622128132470345688067625337867365721014442356551252320500223627777377193593006165986294762864607352399219618529819115243005519095436255984017435348931714430139445827587046094880700907143900753269301022202378000457554961265742761396566969163416839721793672750653995492244302132973377663994833074129076361962405368330568943425376208295220933271244537438977196774021077126069183842844851316966052632572992329383022069071975194557897382404157719943402863711670861080133752085016882114541266691843166421451211557566709525015897467872379098182098805706057565139790196814065519201882656952257866859451197462603920000056568064049256983173713345264530753440349396297968939098839078499653315059524205998836306767764176800438576494176189842889232475610095268211359647688045032076958738058554202111432696144648973598423737200130560692134459296590192285325036583295326112615881113388375935766121566338692889378517064824518880426790496551882633825524842222678835524135967321249441809266485116904605511658224901103085510688786360019559233772532222875659600673300235565205412384313785434211786940134815460461528493435106366390298129726124081535936490236659566427581607539586858651495245500680080101046213436841641923600610029867819662895619509093464494618836738680917142703200542127555996015045890212530577056640376092360295664540456490295914578310127742455998994308382442705348961878462297354787029101014689319761081337666964975252849056745881078516097841265363066411974953339884803542493134131134995613289059873886276642674683644957734052360287264248515669703859437549289592606428006849953608439284727854196101737872115680656323455950945227272730315626817258955606996012238146024959220521557444764949824349376975194159097108163297310093602574732221957653778323332677586561388225449785554269083794588023326836154186440629436466994171176645356499347030465855070490182526551006837305424405495192390349025287163999182789673635437324126374741535655526584977860989046427579156250393492613752188030480678843432634401231361471198088941348618093957204973815954523821789184222135947718941031248042952355387120386399166735373860505350049552316437042019526659824997251070353569832179693202778895055891405160081173863481279657408548183263496413648135578805620074894421706015893251921919485297695437932900707624185009771549857198713340864245731704634835179321046953575765353625882712814094789690749874879924636485669189916544339712622067145782104270148490029126758489879177702342185832381636586291161607889248705228906772063525986447525189567665993509546907447344747195201901340086555664924621977845999070054096048643407258935114399210009637829054689418805499876772966736370967495202414994646221749987570171117210818269696123438823534791906193434435961703392426974339828090834592391541581612388603474196642305900046355197071513122856321008885228611506405289602645514627006349657941603552722713464957192584454252265722087566703755119789729244137284961108563375859146322988909142174911422944148726159817386389998677334071458196086978586797905660115098151700280743890798689748624868009355718807519477221962393261630805695204372267379624285295673281648004770572920683559562314975087253971560239670271049296719691540513269050863962498989923280855423078078162612517713606270292005303086212310452512294466006806633135787920610517434902986101572631927302922593242604757074238685756974758420541869732700041414595258834142280146948093288721578491805992583550246953767716866300703074662183723461242229369328846288153402518111184530106288636348787795500130731524089505184899804478717365335862599525835089142358445482348051843788856637348306896431605361078975803829435523055751131259570691751051171223979289004115012645242842456582137867852145905446227626620470198989090199298048147032104682743027598492627446411946881770563100158006702086265950553447560869043555346825351363499203892036660060813476941791173853126058027548182093617464563257727482999092861680499190190151538425453076153098638815602841164307438797148045057222260482710920785887112325651041828909722900142768986703792551221205126536410447588178670203162336120789404328728167592040754839955272968897727652195940106483010448600179163426658049755435792022308236185249185424462612471239834544874863779913105797086502173113590154742589158112157488201837426048252014156006638584522230868956725000602352876795682631734974046732047227792864741120202133988378592135610532314843284291821790539110057575202410610232586634530253184496939666728900982692766634434739257611192943070907322937237680831359068685506885495253744949514305800189007886432695051970237555746188533308980138482045524817905615615098000332777735349546041147055284884153823175418614701504883221614074704058275336589764498082131580269439408051447409447610021270536540299750975908820416085815596634845746968295001099085539927719846633707721650969418265725964540895817245604256074063208359618370176439772872744418856031085689002789567721251811227111157640471899314381954217023042503136103562055098169948084277054000398390715576504620982302763950433162876732814191576222156422203536161085816187151442770185771730825191539148604158388084745014696223013505154055714334110869520721782953909041517736242228175744821688519627865012029089456944510108287545541547155272750367689766103535848315343767865083324731235572111370852280745483015368804618434142337034552930405816892249636447177593662961806257528512349155445235264161441511167185962144133189019736324815845176586741135194164898655572423927702378057136192564009291020627467230007079386252770803007687723505986846585910491685568948063110582971034114939459731849118033618895752312402423174039090363870262576916051122400414609683150213813060910663739375630330465650127675442395476578779353121701569791370798233333953924505003277245822394651175830606041309909467330295015716373919109569671326737603147852519410187839187917156877383492520379335799800872413891561164612149782639055422681604224474198176056796151294250003337043579356851935463281519360072470688044954651516200920279931291480961630784926855085561703113849813326266370888850846947365738008801363339746110509976648752469735729733755130088659383332945649404939241239820833171323864655421327966744469707441855239736052034209497966903730071223898489113560279063981052218720639125566133091199699156094365946603855331347502942698928926941525052753818581195077600365565456139645871219650158049197194263776338701451530850898938467692042277185062265758110228056661697923889947491364351828579193659341052208311693602101612864640347247250812636257777091120902319201746721914250998599897444235283912137357958569733711814125105226419071967489326493706226165834396240221873764684177192712594297892827022734543096917042442721999346691820737427586866371336369290566849811383333928940383799603917210064907137590540185551509376874861521480272624214042594871665724445289985010581759324030927360984761029495748409903428252500055040871699320204423048089387570690870830037296317184573231802648974922872946549077529313993782500249225907539938771142367445316471535547363314999020928281005252705304955942465975238440008080991792979753843667001677298315518343743264515791733180320791643002779064629335631624124780196370828495618885071715992414402627595817650414872812600348081865177726594607452648248351614325361879542709786449256560486917344474664995073850232657003623045566233929770290241052488135895798216351588065974505044859173028667804876226912701979217972949522600764975382714494062513640050850942059857133195733723846485520098913907024395945460113666694985909456820317878824463913770737083233337643719732271447738772672866680103433376587902151801773486583515095472824524416413062304053611567014326507202570842042758517248004305276356647738132018954603570693056052734139853030735272115483036095833381762775268644331113554779620160659148496087771964861945766451382057875154686445816257798456772753210155938605129097503161378786394196824196769048351243694515931111498487192160230684444049702727229817299665998238195849085953469719899650308871331282770643664743449429386841238882643159674003081267843432104446968259879886002455786846679166408562516689380283630068526301364362824147695063241980704749016527983594434208876714255997360204508642577625957755679901585041256689638889940909393045987978601314554183005567644218872963494186971314682049552252974257377277226664209083147829956570043140757474114959649268629918009185071821315998413701117214345162578295029891293826316546487725617937696580799557593224836274688548551099876073646995512879282282760695097431691525688794999871534789807494970269816925775034602693660204252648612124226816193609083808278038614934538588331924817888387114703025883503795508238636099123672990394529909354970794529824520227881922769212611118342694271530873431505823786699615411382005048133340962333451156829199531397581313353304885484342221264371871418957760852886304669704249108926921668818791988831342031066716743350771884422312123646334834941898252484404663321156852896085678800064777257821832111446650124378542213382633548118666036325056400775573873511235172242459310740279224149059126270663157635929176883391950300062365035469944783125875596316151759762337500867982721001582204838252364280936757567894361900866122466288867879020260220402883938337298472725686677261894901511388839719776491765269418097045326829210221888511305427636204467222652823086443777178111638985545874656013172317140821857360246725086209382775440382846887675217275297145798935089924814786681027880090093792393042075409151368326882594990775490908713958546998892990572007141334296475814727238669418011421147656581449590450647833038254293025492756998162238206666311576481767696607613701915005138141345353272885499778783293101291562362219608732769923720727107910162937975338349786513708824570714480441342945000486879813202851990975777155405554943892352078853706529115593964065260290575892635564890857095217983318304343031223061759787934456847320235001026130858790982235363052555454050257402632264838528906862544351539528010335103246700827911168679934115592484976894267573976460865314484797752319489386920671968382059240977099443006381108300064673131383456456261458744461980327963538160845395658615260245211172588262998887663493618840846029990157356802244108202161149007592915490763621786014292651327558727011020239808501649357015652597625865298715106236671640764312791332581698648416457446188408709539343336040357343761548273326277652903299665806899802401102782423195575861625079340248880981866998184969471921470889948964646242052157406758624972914970490655019428838708163830431737216927783619723321949042012462250208662942170365263843467261366338070486128096911398621890167352634041765242130074124702347143284194592503630801825276361187045426661628519728500164948343755247476004178972688198964982170572411914931879173088916455272952956772024004421765916114438998658781194674700195116636018428847616951306216152592356869848463003582242248952238805141097735469891518942648180724345290261120466861750779956474780530471886915792472853847346661372355180460278041048701651230368867794557397651231085494241114466951893166086331677485495072035281007072964766209192353278880593817736504761092070112971646328981136406456342168605002957848999477897271521263654917436486671357619627921739129635076824933269659013224865869211080033736120847686624909914317545697944593859008396809135394202011297359751373880210845183669602045678896462814457138185873969279401490998474492778427470989097844856427190062353472330215557618258267876879821536429283930293579370355193862345598351192856851952025370635615471907121395824629038612471713399611508213185499387825948017782037280552759486993628745465797342749190576313934232044012247348108694303824742873278730102966019159790076545247064058653611471385414365541355495685900039113849233298248434014750184889417815170173818397952124239097453387598294119865715615243041203195602883608128548915426462501243503300440417086770915703836389476994196891418982294634244781143714637550298532525839312839131264827473665294090410808703086223403583710021740357179531350468144596416418793218068216766792088308134280993082783719324244006941263843270401817902159013968846213314509226527989990979837390286316216393462650531023081390527725083593085978392416453527450080367911207523693393710767976653899756415283917580335546246974229184778696679926885031264609605034672851805157048309119220201366844291268615429118328478386415685232249287943752879205617999991370757770667282871279746824890076438335879159392060862363154614471203780966946495636295572682376308162315707773256218938953473394539230759321507807261978630966050956173534911046665585751064450882194894862710559297607830971441018565066532913243130989690860399158561439330303179308628621956737937346900087169814821824847762566406461695645547626603065594959148516725805822365727333697082803805691198277568584705017388063656244261013964293782316836433866645422355150558945941837091057018010073858204317372055509116821795677020768510627394606935629559723619624189611378878514215593375680301672985952930755285167821615686986606482446105572760106427593446438785092224294730161489748590988517296355084385270326269035703011766300603079682595617656945392472638609636716632215688741552799663794413621704354092243160369521318518530526490184515028977352892604139740650690893268514859875878312517469203170225205196862322850853819501832635401078365278711611339492610448216812117590524846404809240698480992305499310629104689077638803299954601557672582357936772799800737136817358046352655918336030574141462199380501429189878193401052217029813125742679963921081478743736929273931338772897525980022558546239890658814933856707821231795572746317541589505946361235435103938498877373552139032127515625064821232071292759032131517666742181187238485426836859246778674369102798884174795722131891257029511293385636454184605010782607893913209586214049052534337001169604134005254365521522434389326347959082333335343988050612648683652617299743731623757908679099452256098966561035249001253876246001286523850727032439722733819816055509012014781693600898217050104396540066534945592653388090885463340294167829719051677769115126032951946342705196739358781815046717521451299155836912080909715918516027543782800463014489336345879957684621364135180741022184631044648889950741787695016944134096003630166757166997658677077531871259033515578712173957732206909432829523126170538031288853785517051680528639965123264002050431924055687995419013501006340815237110717291604178485397099083363466234910662716219567632251084585913230380631064762267251828961938521459449819510581777639379511308728979130244919712381728241785894429497612828521475741864718992013062046289855676212706998623460896846457867688366514619723055658524912781199521399307733401255502841475614043093603226959238572138485738496838087437486475062175867341553382054174168907662991206716686836295377641117770118103256039208155052197627653214082212982263242791501930472888265382518558129994596531878661542075900959944986008461518732175206186800670145353994498370664707339700346143003561534477492966656384223366379641395144618520548956116581101135173886331001216795250891315702783420432787024917597232418276046305294302052841017092128978377486547509141743612876451237822622098950975154415618150357346193852765632901243174099818513559427732832851609867039581683086221068280935986814877402097451525828102149597951745738720508419432467578589366489438760610424407640460362479391508097349086915078425172363710084079874171124140928175151022570115413444883186549611737261117551270712473988689043466054023119281397954921542755265851050554932330574196555662477615258203384187148345213916169140553335636533369962932057452253017681087487021402292741700846234715087512915421128050805529304291868707334803287318343906696119099577897358829330177360666658104949901473557882817969984986628050645984948613747603427231967067525716999330143761780947750692205100880442089621181554185432653773257115573729310111630804699903735622608610632781171008516973418704114523241028061034080732502664418831170214563333424374153094465406181545799202544235772547217490593475344365321816015855624283845860804302480679026342392197661199012088212885408310004702695924803407542109852125497191581802740631720294636432924842227050382300056805763018594254063367160294856916770974668153403745499860269193816219547512410551780734248877470574838645456903003772693681303399099322478631312200398524152872265997128832165108919900526179306511191440834765713573662561096103990840250193713923249464243570855850905962282951361686333994944862684994436400721653207329609637745538417189192669649821390961613487668357573403060101597444038767538279700862637857839595995098571887925281755416143262383605889900182576412496915756317045944263971050176953410399972997970383001526952913040435402812264672702699397130698121864267954475081849095346085732723217114175994063336243443052651721378229482118215283601169911201075792065189688586359222445729362475367979711962916385732320224345817557483053004472500165838527164437926759053640427951566752996245396537188109304991654339050642692038765154890090712403543498807697356148514949282519491099825058342083073354307819184985372401194555147317078884367868948255550922254623104384780575840385771271138425326318645836500676767316734935902416491166005913505445756340966195736397497963427611238684314987835745315429677647384874984863592909826474452757366606904922500367507420465119824946012233258622371616489502051295806993097092400997623304839947830581409278198888348755051481481722362862744597583367707275861898512260679067749653190105322699264058162434477324715313496488338761901551655577300595927592065317701355016233509265558624872177324635477417141247935254780876365781163981528350525386396440811256563616776729097128874356242992285141211135860055262284618689207860511158084319093454021530943718211924554932857124511826033696237810165145701474586293523578877357567838476964484294877861498379084604786820067644357613869953430448143608516489779841702867942320815902581962286428382748967892770990343756726463217891503125930104543672294675912288391645676017602532992598474544768741442693306659793551380873036844561566809413938009749286981713089886839364782785615827912804763592594496985843837201741409456429430549921990910993360740938312367008875767605783102016443225038602377346570475699964764500328520360259858195353754560225030355076464481442269722155506895539916244488824922458402737336064061894274345754353453448677195137229669847729603459715288921181244655762909990754174141365573872714424027273505619839749963973524020855910424649130579161762879701106289851922882189639369246185478457642448259717756705603710422079425634101538154116979440360814059332213382487956477203824421227185457914201944646872042640208880105275367803003664525974794410771619764259799891903182332477879812259731760404800609454192556676589534688552578269294029853910765612588173516800134605590325563892890793528537011774890931717033328527499904343216068993994334912706916434833813401566802455577781244921854365453293922022735633280055424737754293855703804961688947232922594018627982569779331789790386981304854538177164331019125628585070022355473598051193847182564640571471845844090798852633772706082648791207614088695792665129680065221934003111317555162870024844881651845644918925591735789092433268233694829016487184085845079295919009140553623963090997720151509444979632804264386452762511704602502079925433113535483495457804391460587219631803838247063069664445876010240847085292752084456036590393867658086441436038769755935944100255745144455695324202547457413701738212469265715707776156514627272268391468604516272027409648181585608867692620961434679434977422409482966770087623606534813416859331251987934109948684007271055107142066643434877570200754407556985349346049349702738937820900168175095732707830815568401607514941378564943654960654584860574190762557251582032550515635434912393973286243115424765446432922682332121903637216571873710472826964153933973933394450020773753298842342845517118893463406524288801564075809532475639317519582481891691774982291413636916720999678154665614055301379277379965078419205489332610436635884054692968676510728686616993470843308904554355306632308480857574390494732028123259950039886440244541390422537853669520156869832672663350755818852353881803506785608008534140770012868263428600239773018162281846777740904627541273472015609938194788696871627099171609792475607442587952395021783720191195805479850571146360001369265599996374962813140645607210052001721505786561258138144175499963963653801876746192810260808695622696646424442277074348069752688827119954085509378641457419778009926182944239080023666569103882578077324367834937600245142397907499607072105115553186233489027724137034912494590245515984720757277002403527354916830913292015702916468140728813461523504204454044810563237127928345198428892434104368062494634497137333534118179054418993768640616093449720132499498533604752243226533487702926630122636436821849715753171821596042610142275893412795224960882288134341308965823803212352648105271253081397478109063937788485630464583188215524488450616497974911883551671426738887358938977507816545004105970327156382069880460179856354780024071629681554003422191996561839348825237716578075328812806962409485382147002728382418883168196192464805963920361789540083811692680860512885967024730535814003516162954049370178054572698813952063341632350621947450641854875827181397505751974650805217407562882222401194069945323890526695473642296464273469329046014188889769180095657677405521861324933530536723375941637289421169673843604538723961435132631454280496002667511804326344067667526589810765119699203081452962223641537376187974834590150415637353775091975266295103773111661770597115475782045543368831319077362067853020977339798652259002314836832839072922906745608847063779267244919143710079039840958827424570184415871751543700564579703512907429054221668659686363811613766963676949280971895797549281231517872995142376263942978562385363498754969123253313991466064615838087334723124880197976001938493264278783567115113304018336215834188406513789882369690988993693731530726079438003706319991101066246075813894442727654089834410198855153024264895456411601715288789032897945741415978503624582553757100959107500455725364918926467498262685909829693671208208848245173544955910771049027739958395078190902193699287448228613078060447389388425693686977200158849382748232803655202829662806582544722141991977161112230689068386449489345654116066449767152494699109983116468918412745215302058093923775165936379746218510088713367754029336636463305695458888583195837724614175169172478921092497987329024016785023036302521544062611513250612489065893860955636348735154036628960371395556587579260585216526238893132750517249221563571258451805497438356768247013647597770496803195980641465759540375111570180650032706591439816206992525243587667968929892116697472413674432089133637992403450304243925929274892021425256831619965075771873878613694755625355094623802271712359488213415706450472963596497810123241352742174223863513027396244676759854917832660190218237984448663462747152394141763443897923904480197559507243965319593927910031041140290544599944897964055863310996342849598895662195446465853094876804866472510511055650612374592945140007558218996904442528259470549521965351545736020565328602775243872289785204088297656084627396324731040951604961760219213345324498727151690319999537752562362849081926785269500215335054909113594026980139361548450727281446558992973042496917006663491314973473716428675903325982223653201281566859820187255368116750525899913030834509315412488024457854809533634224422768731153039608089732719051114248148263157503390984432821557939479415787733845613781320600461031335518422310947108659352004792657871674875437044430702429887177516605151889748091002597533952732886953248587670861773774525710842205861295058966102447501163715962183316866566092704008752309667022654921427803449248161781881415733052059847329765996747153152036861297021874254918759297372845386008748201010786291994420544900759900896643721197922792671170267349972733082452049664047497303161959660171536640920260365906160234245784096732795299651513191187323688724560296661314601958397250034507235736215724376540475450095138775625836896013839925830558803458803705403615511184444774103514195323499771560403346780595098409915671982014569778033715857533342485964441549333570660248104927472752783323151982030187930490435230825329923694413973626881610280244459689330772881651890502656856601847706940976515339740651468751486568527950590416976248054834079878458806855606039838995969335800343588672356316253675200369586381498771510413644318760841363456462110939143938553293493394653503926257154044870066345251539704106590687508771831377337103175662291571168455030205816076391451068894511301512255753304965284112633514728422253340150592929307612945516380658150167429101759125984807131328461566613028575913776675790683332668062227752697103110761729325149223901721212357099656093811357071757065244526760002684903320557569268089351556744173392862711934207925056818332424954462551623580806661945312963668373379792486131567193346004941957296273223241358086267700384431306348422257344825643738459347139601128799840448276548689310963250957940800381086189808042939860271601808035794753817650476663301870551573443023524418190720097679327433744079565613081288129418916134178669427287332591029624083259034255533413156251929658612063207177138593939153718581435591942812409613626510328044206207010043175564303191160053122889343347361374605780796736789589737326446756479401990273464895894463383497774821557428209775044281383287875861395478452215581459317170315577302538644665824135236175975400894354003389696916980770154792795850737685949202502562528599045962778554313533602170470135905068438920064871423965220723937780355829756231524301955112463903848878329606668704253865977164519060249872381389539973274527914462818074024771531867789311702232027415648619565156151564135417722682978178382877328502735213110133505244428018859924977700896732651509815742839181877738345809360099913898453400676294033014506093395956437404306045201018211987641856298802603544382023401328017380587747192368263637061120054102081080927360429985188369138666294743904576393141238276640539879923499032207652297994022413923931964990486499369835567167017770541333465829080939023940440002773254538179321001441925701744168664366511207640594215094687741680031300969474277371878407597871973869438281910507845234950678317313130073134422647511329926376597600429263185613929002365576386045530262449628106870024569026040446628742304063166429649224794805961719400342430111503303746235019968861568009252036514285021363453581854910595808875370758240342455284838605146666676916040826999180683206819789798440600504290729443342714729556846998658785721973090784543792576945702888297238376906484844433869513366264238908689736519685644085951513133979339752880066731385342061886322574982579504066197987996118918971671544059429644421581385808018180249425879607746201007021711049201860938282925315380859401600584091549974431640186551990303554737415508958819857425783604708662252524889749291134466588708625932695040332264429976400531591864428087854203086060700052773690096949791464119536091432318255055801334065892508064427415935725710237839288701435967039618193711464452803950767249576141783620127261440088862518748293000948767529947218572878249687680626770782936107242753358322606536412805840158034046173720668901720649708891306712665418688506928843534066056537614129213053854063289033325793806413841950483107615994046863099596426353295360059374639754645302389657448870266318181772522107343133938597152178574006192189524084758636343690393115281121514353300752285402276033391306334351053909266555049521017713577385174149529133774035679910883672606496571196641681827241932612110009066532098939142097660965738826242168828693523796364190631586860390395625146578202866382272441948165011569207449946679708434858805396421497104775312171861914886442327652199285286004567977686721972347801745714358987252007385311166373529501597363426411576049865259669856650421607188013431030644388491967903999124708959989764693096453441832831997813517845934898782863044795167242420299560144491183538937956677588627593278490247203674576123030327133488927352540129922944136192340102679503433942853108720535373562710625505823834989782638811491828687868701554463358459519045514635622797194837883635186817496359201938368373668371696738455356692962553984195418457201671102539565351541403657922319324472212498703423327774811556132979444571206585975530419592333474166303020196686280687277998825805422618092660456687087069265768678278221057208983254850452532380420351321662708356269080988683626311265700632219918689695825982093270889602849188389354626389844278118357098120868598086190629180646777017708793146492226913248155787908776791156849206745695536312685162480803019199281722069333279289290420330302251986928464247429194418886213634368588084903313861777212505473117818758373183797652975782158369558435242041394429430946737778647835779621145197396520776968179454539410574775173876266843716783702211267225842735720618393162664494430713881759653624847623450549830325731171368151493414982419867566649372080094574427437151815087908483431465775122111938016111953406699208263896048218477057680576615514580325444741265423882960293874868949817661248891185905876127300786578458667364359844974339309104906592774111662572582433119951403969568955161878572276644553472614189441140618586837647555922752898018551649323898044293283387796553783856220847296821472481791160823816459567915952700160175619304230192777041777625713539183412536213300670866802115983400092947715249190629996338378742683706711479079577589935845510747454284594190607598029245580694627218752490799627357173651299983531914736769285201815489194369762478552342944262523183416821476931879379029003757664641191850269497533637286037997208546134071988431132948191003073813040198903255007983829368496023486873856974649310283455438201279403410263245018775216870106750105116596915077823651927748282834081366094466336643694013971663115581171511060886373282482621818195162893906949115830856075982045580437021116359477177432813029286210408778624589586438484915980942565296888403088354162924200776677215265236583282324203085721043840870951963569062230925459541745160864610278227449600535634934330184010529267968507458195631006725883708229633720952779126930999388673644617676306957810297805662967209784436804304931944906855136599166465477214640242047692721540926073701188706974878941685341107141150427953377372104955760235834959260578070544774407746973914081375574142624811539504922393879260864205062910417820465453360841864689140549420921253314100848856622565783334708216912004966519153543134248574913290369040893437692949529497424733608396630255625754685241876743423646576628403833627192455305400810159371537457991295391814815993775234765102222534317066502215431783492500646198753415179689275634507647622528143255049949286633862031511255996639263759384351628037260235871837793064634518716519899133500608299772943655050482577860976182597601185156387193307206049457462017828974343044421975646852525249136655033727324314177901033088453514461956032102284927623726069397699878487030197718590354382779620614882220271645095061998684773863287450242696012404637395016965293808113450442732345362630016542943604911358784232161383736161666711004440276197950902665874642123753324716420866602943562974774772666993199587347018917024444443949061621812838372007804423375761884128411412974864082209750386216116818264301072499909851696812811002748926202123506328489332230026474655640889973185174847808115546817979294669749211426010322325084846301103013936388057071432801196920939094624091558672466400079507723977273496344603238944959961223365745810805718711593195517011381145528141699960129241319518453887293230716143640079908320612615268879810687087120208108273870476418628410198899208784097582728347168495037685563602372450681181446278130674290254216713518751521436698530515207778978511341796213579898305850339197994810069009396705793196713261781754600555237806623205729679074487491122252648833474426324386050854396406977393728979790919995241419316568053983268759648258591340544058856024304219512698066360398442464943409800167470029676047334888105599955638796290922562205008203578839755880269087503183880435262392910368719969972237505509878623698146232487090878818004872709162831995912906577657299176945566406897586309846971147683375455003738681129667692710932517001030475350477619487221975360729808173696642189386734337497402375758132771976351495466041687415570113674242119468815668520310371342470467112172599482009059866127177852131803649132872573857429382199404885951402149842415801431558937671293676910263568997697011373494568147298367322627691769340856698632273198736123308980053819622920076739504895738925009055238039063444912684118359961823077004719691134399379654766212026594331814679710865506575944338407341265622407248492670670722453645898943378317912552783846195657515071084062412512648348716414269019239842427556797072328084543728814223295005987884144732745597665681875072280761000900527264488057853746581233559016551960096414278303066001582278209797853636772516938365330885017899428005615329284941057393510999321162942450858868019502472504002155269586989945598789318956882882905021406368202022245549952633654498810149866662795342007586156401635859831273860709735335446400489858922138135267477302314070368289641708461612618626856619103681085985212223534080226914809880626617902259823543624984042804039805813210746151865609109339481109594225676926275394308594593514723026123717614896465279260520485826076305462980763572509854499142467857882916501106732520844329251714374554369052854704998309297678896328171099539978784932841532411203378169402428897638542788658376565315579131856443136029805397395164542283286735151018269059432290423561362659794589686905411968584785847734190755428900116568727567389673130497553702336390647569618657375502856769553940358588955313771302212674696669091355418652036833063288228964118626668722528933675823355793285231513780890544005650004677425014870650354084339915667631567003817759249625724666608889260861703057775330763806316691248735446518009489951661950616679036065857725211804410649983567166858050627584681292162522618381597868919316501949692956699012902262338586466352253904724996035522152918558243184792310993516099953959046749055019012605718566540963521156677517941177016767652465705821075286867913803454529843805455306091879869433865057175703759394812379414096900781548171903591087241563159537513737941824623235562767351049692371215978696927959164101831137381406911990329715582133989569648998266277808534018447800978712375618893694384575075664884795237723421339088254345340850514612499717897756628851991703979691118145690045330258819482008612204460299013933820519354714676144003589345909624534813864601352547980883708972451247655131352782971887212630917232293010432068454470602663754324598106921194885928582857601327914580712143872654930671974530817783194368148173730997991012735306045853676605217822635133983319993464443530460318690325319824695397841597148365255328407625104403876970121311587899900602500915394437910723053132636157190173783236222123957707906931134270766941948060169415063548521663654993192701299988399969553223550127891739219569452851571746983890347828401660533706800251785798347337992723557215474942145261216244732238393225381209311343607784406171373907322430410980399621534486003833810993599861221110749247804149171838913324674387716992008325821658035284987031571494705976353054894130758597489720543280682396452257198958678139595240967702683743950486052637100087966490463778474352268440905297951171298302705365074019938285887721673218131728617200784541170813884705697019019544148845976715041743105404306635793799989853086252082821765429832882265742895487574673040526404727606628179694257481002612855498200624389472767308716949372312724811357554561629618502614432539257665616681377656066542902822415402264226891905535102301054464454664532757878605196471156207637425019860343961049863376920399834285924243212168441199198397462166583111954657984975582248405980056457671654992712243912953855840023997244765343841462591631428258404511407929049262748522547234855370291713049108197644313134150281348824043913575442396565570912847250763776323734558479546588991028127206129094625662697389535134048872024995626227364414695014783522598784359041335426951357741600910163332101850206519333013496830546937028755412076154930411968123530654323447882673653290782022710650816321565052654857618456579869320045721425551778957944555931710647783866339357358752250177519868951790770584575525437300789603577574898831064240776566720383168988132946973257376184346207373044369327746278682058715409980217494524420665941557858755678784823470380532047291598161361325271876354419873409593552164718156760914811276648351564055542560533603259165018233161225541732716540971262721791917785964110863887136914565595164295110084072008311379637927886159530904558653986723965819172146037805303324854971781969899565269037733415754331463809972541485800518793421674788248703724037421963646419794374637125917264180854025085149934467178260916690034471920224806993029542496024693495277768530111468928013836376987793840574497588726508330807333593096425560419399288341004899711671449037823713659850396298774623583096775689066292574870078676592257790247796793415438530101613782542165511310341377599045929510954700059721743799564020579219373372621505427840062443325023343703915500505343313686675836296287560343318675148153027598620438995935868341183993160728246317815578880544156047129564486215233161131190217303105288135567904122037019010669557733249701168252706829599040699615812839922927152081071155199081399215225125265411283120419845529358101008669055398589375317019590206675489054912065126913431337028713858530698576004761777391722350451172924554977880499934866385630017644745890941999390438105391341835705768046392530183730802050836523874734987693162188717213207168324430061672619401984367655041164855018696710578611316646065386426652757527104588428974707357563455545930247935761500263856381278448893343980756250802761438984870750631169984579594526464313962757310353600677861432947288619256063029191972264866317275601591994029694212583120891760811078536570460981391255821535823584403640150474013046342155225541571702687142193656850487868631876815110458584354217727881746037739748005874164928249617085631468239737098508228871193939419920177526388394806490904007384940545938091997494480917974641059049748609859566179964593192657587016977975301975887692322857726324517337340753213021395833432538136271163870362600177219894664870795487224717152114537653399212479641512349047754713260423726845477041984563261230469580706961333649706318274927280661006342942807147835147687506377326551776604467155046216589159569356646962100051672734884377821931021325385308116338966849530483241726855381152752655537922427403515999220689558758054885882747584110245991959540223410494463681052509285615750172764657561959246225973113938105756619248090083005297325628783061921411816711836760844198261907258756505418546762925395748730423840738215369012997028172832189776774195412297156854256375793342922737692222193106721638924599898866540855572090652974485588216121499142193483319748275556297683830564939648688723305032439153152555455004734459067384367720522869798292209725034819719898672305123530632912531710919008039709697467495150863206576132638189829505760941729702355491810345670578285756693215265056247139729366121992922930799841176419110339896704872385437914826417191978184022571797508183744835195135114033678005910967094490078709815276355418378883347166322948353132287964169968695674556568905814902064113189940985152569991965955005678459952538058664882163547257367639788035981907124241395080821812947952738557323004160578729570204607988233237217093724048422974693153895201196223963250247595786607359932201767188730558456295807860029567729701538611499502858054958814824526746899781992629835138109472747884321986101773622643444063833218588993748944680771033193564663018523898376323583467433463679686299573821673457612046944356610980103751485116350538298368682145526910440733165300219978845456334613672158462663713540773951069659647588949605701990575200752541587331218791136082273905214339395173532356057413191227487201913369366434295539411706706601716421965124518309587379866946759448264120823942524485652987317630181342216011611163277425385963731959701208523616007571096876534672376671011328181523546020390913956287033816034039813942041790548460693716524219570194211264352358643780562838890700500765722820961863578976241670789710401700061130571388773633364739261723759035812234148903738340141331224221315145320425062183009999050549238210636791394842134885786013767561166896927101467641453519510329459600626264603552563698781922699726051010307612943961509486015410575588999154526707618916210078637164919908276408942906442403749227111219870798603432617912617571301382303097699966779266716134636441529899775334327574877982462971721632693686721838222014203541876126460091245429431690139855220195253332561405882338134256410989265886743551939933173851264779579222368573719124285870300986576527521587270088332310534846605186718337001704880235616629041592538809494802330341252567153369971004296250041926823861163464308531910042471764883300504385542618656308738389864999249398444717328776544600203832410003826480307219631453947814113402366633035293954366408701224139092171742148935599009216372647910804308112207855225619660071265692791509483380213688720712438956430449715328619304896193782701097067310974360559979323668206412885122942898439781501874856164976549550017845256090932767851785594746636099842151508857380401310757939430382460220811762390251171753643902462214297019331161320037001275750787478332895841565692823438544816644118317203493122827986987821059748688311263988684962008954718272218557372977609545079980402127066435691962369185451660245645105643500354295210407646433517396107471705169961054538448190938763801028634356595860300310012644187442638784806202592936432483228857579304776930154256504811510991126487578400397074371823275369418866989879839104618934618648085385557910975135168509064401800831787498226627945597207472329916901414679682154483004811949786815506229507081486949820399948530412749904083780596847882199429705842653092525182258512111574298045884564437640953081529085133743920234018272943771843794270761161466825718785413221967256357640487149883548048430539992982367744951297181244316210238393982976850263964174885490237335596836414071928126246568655806645400913801045208526288119454492127816474735997774936622852647863611033981814377854570557798780875303882082247056620373474554645054811592404659498808582590843359453073205890212980152846409463411463471027838941574049341402214281307043482503758552222552153621292169909498919133667882598927435734879264385993941922886268610789156151064576275074460034921109440501786935934606321911040101089837017984836463097776380620176536560547711842690762134022045745164862364184914068565308937528963379692375286609603288198806300511824087292568537037077286752503959449367259189059422496590636443709227755001738034336497116097034379590614456065712223252204589329314325222169297728284449903457257403612714393967333099182765902211627584084935732716297129771045371172763662956888171617796239179623410811903972425732407710318707450162243141643528890175225492752621849787688676365267002844440051941634684247688654654649321213012765890652127302602353264558354314041196305599000130810850420850006332423896200620301091277838697023184321536461319019982071688119295066711306882618882044013534196014543249354076324762432152820873519451396158228797092822796246138626832350926232060037486893059457253780172822619547140536448323196834775482505999563624920868714555827074951376360885676941966950566996350895620864493321589173750162004033323225175249872006939649413525847097648911149333342277926593093459583386873542207196476529277386874044854415192418157889530721789420919890267428245656023606515436846659130380401701679589636991929453148694209608631892082741258523916328971460169804429868245632457956473315414574038149390207086604268014107998861514801685028854188634189222248698267047939034268683706075332508424044476121363085128680030482401836302089327608444245750732986391783789516791674732771336466303424788154006062447367669658792674065090387475630745715272156277327845390703764963791297217937463586971971769908745187217544243704819438961600272912467343135825309227178091364704773550652730794078079957978407859959417621722210847431673551879692577360263200569749487709976091645451290286263622370160579216793092212564756718853777767925123853793219998316147136406820110085282508939290820604082210461472612455321982215977765831001261049995832529639214370234955107762243400527520160066835602818676082018603961442468702309894021865112874192482881114353274623538159577386985385854172092841966561619346802581639428430612012984885602285850102316625926739727572280983899362586274409850422559726089794164226455126840001790958470111450377527490713707470307256482399344029842816916942016222341976446733961278445275143550313727076763443712573917714696075205972055926957818296712468344980896127329481538222069186293580171150625189375899351604187524601267132088959473180388252388951811667383132276383725752552960673843045878881733488436798429143649989524976979642042058767930345580127859777744520267076382491723845964325449616433500549705843127801155485584735876808344658321319934799693381421915280758166058218401912807938136349026718111109955260640903061104739451252089034985765842252896937334350278001329591022973801695975520814450308341914665639024995291200062211500014277258606791823276379950634467531555354340416744312920179935512757995772493068418528721073608211732567002598648028200598281652163000455729135251661505209575612087996993580938152143282376755689119399011823107887623736059490988171762994064058211280197508306376343336213809920002243201672717606622371513854714206807739427053409620158310643496714511013570332933676593434377016374458263154032565761642720880907265028549927738749689986171336402594936279413347588450264390930858741113937431752824680356675011507052927293406669192090384400049465184609744362473705019614046111373832756828805366664480713948525151016150793548745824542856523221524853564927560723708358987361665579167245934143626391218486967165479747495252758473733220334242306863884348432904691693861754538545505258571553249888955698511158624119980115002763421250498940433516619320660685803672924593749408627782873656493986037737695193737680855724874725485244193925572479236471402034452209132620511272594740824772168967159370585918080030559851959754488064279002646053269083182384491631979914647757665142414414931586716327667645223967916594160274851450594050879504784405029012311294613025825751332342589997680370020769746122204220716751972376211422674850480544941482099835242259106378686630376157367354124783719159513542094019517589621161305469046771041648349312001892045102697650707728406701364807480386945188874976006159675184892224123523976894522657143139343661956382862618294107762668472951536807073069630270040774870171589099848012384991997938645735396137984115862325545530421116759162119512625009067815687212758445324081105071971231650283326172908938321038275506798819863741420047834201227523217919051723332713858940302020745693703102702303906351832314165813793262767166318522666615018851152545814033511092729834171242188908371547779578068351433392471454414327182019435819704239441173011121376612826220874905382674617986379705465813533455985109362007634971875183214771136650207629051647781267500933685814659581489083532729233637435639089043122087440478565471634234082483503469499272787338435106059263501006615802986241621606217335027978751970674032798420020261054942245045261417149420963748425990017795136853139162920153820070239349262880612550360042688978845898497374159422726290709361881885475575683117745226165068871190517828152195638390645830530451006484209309632500817730889303285456952158579003129357790064056845821898679196183190830347427029931026721195779696969144061605506721624915345002254839197098549006268189717975277606979480598262606850072999265573423732284664794409933351295667517148076654826765311341976725623755731876486660484528483787606881293962659792827956624105540788854181615062271543645458747583569106607719200511230994274966612370202367387913198624427915427973558899921194122487381560732456135232861402234335379430406629991471492383839019917537178985399642364408510912086538667494257493545063435779969837225905450297088825211750702625970979444441254442841278801619597388628352172464815948889381527097065597343901926180350163427482133626862972265750974248360888746801378319091458102561271196569392953029573895185579293729803036649283830590785481121638764932187558126554652854830476094644760760976333230734208895046814497639441513629803836239613094066367736370477939718225405141744299149943425168753450949678574785273155434681614612776637864166236017833825801890981591618746543545664270591249847963371989152956686216237272420785787775579044248303723222230208158267300747764157728738250862028504640918810034609161990207914572248366488968403515430277707618260927838300402338472563655826415541627190078799768696053055745908549408760128221317357698725447636189933092425396507229560780855268068426560788021153371513197481670151511306411455605667550634880920200681402811109127277909548311995011167935541751665765782584306020617879596532220671891974901370431070327606659288381807127037575105605709944535542015110567715006892964494918708712518914316220301362528703013958483522764184164684056711447691467607658487355632740933710266152604945526666508588401933698476345345218574357517612487769718429430388444298784802711411308083880252749190520220454795443385230637945642479000715818703714454260238284690526485995045271127989419577208631848077875640267455490689481222115357447206831887490546816720137092303115006514341389762212657869168664541338532075608365287339746484616710483219642126941943787854728008506907345354138058644481072034605014863782275852588978623672419874005257977380373777753948454595234800632009175285999224224219640818599316654381256562188603874397098718436218903980762266926323420077360239125189642460925461528121546269589611053863404169273816859163289679092279850438160044675617936045455669470155209854654202167489079879416844226447045017221647263924573419669101160018188885341031683011354651876717313946134889625533273754058513642729026905788926766639703533276289730073507900514861821162809071408008859761625355991649609255329271426412227992622001695190444806206861699001745984505774679331983964356750768338202756951938186694674429147114574353062767436431508116580464798225149128638615081945329890158726584594123348388373542548500315743367961068087767810861172631951454050091505930867923716468156721131409145312540339692131366934623193204351179359012206272839897066366443016250168070073752856758332879746791676557746487165013545914732808911093444184798299682621674813761434941861632899220844388668742858600891263246470176750942271430391353099873800031340748349840395526308166773694760149972306481530065930913073174793842421528743824446486690989469693276681015454903473842221503822659631518597505655732816100020711076119808565832951269703653641962978669955805965804291160385905724069393614257941161792386335079868808245089507816876256087217650083045779539987841685674569232701681984066775862685542215587922400178933024505651654933087526161421518216056817663282200888064501658243909237251797909512318641355143032673763027575424317861036625552324066417482931058973138587289466411808351834377955682337439768170478583174250360346047757714085668251554645862543951430115176772183420236381846616393527691990877590426494840715040986664280988231032863331680097986219505137284350285665858939241432438416715095305885419463996243944903472284894348945759361971908487472937304104710281652743310322237670619063808932504251482655727494830024872844000281526293525079004407392442116733740517785596412766220222035593134114606930800107963443788618121965659445670357449889867046019549617950331833549394287967850618850286310218189832767109461874179900521237915063697908862723374402244898654984969609818282548980517662496070425301078436505663459356189431868576470951249983729710650292243556672702819307679600880582101510854258755764510873522812863210089683044375633466354689712187441122058584566704741177825528895573225433842523037119839705391770013530504778496027897989550390215202220329711011959175219004455395435005835035414665699650604228539645186330588662088386048636663599698907559308052577002623015148648495660889683789270207099994542240781133573836790809561380492400982097859108674193736047332255829779305104590623967885250860618341304523483534402526238524369672404162900495833301324950980846585999299342217498389383758399652935472235394905672420140811101841736164424916855895375280401763801617431955083425325322685074498831425396721306333586615394227957857017807273325873813663531444554806400102409491082153107674692931115029854026416744579100317130984207946819673477186779654673343423149610569847245927745606939724368198441770379766418270165644638483964408765665602650687716103223758777609617410825943417900472416467671542435395519941250527092601339336312386971241676511179666669001094815581231626973657436635038586787358746394548847712908071468554075712957324203063570776264859152238466170391656311840505313498365368791198775926428328960979540581578721210934877818867873389076040008287198876097788317773570011224279797335456049025939673654477855068443566909195747134912733841486677360040532734650766440756147736696999389778960821709933050236589826543614045087157888611001839095329392847523413609012315814332198053940818287519154422564068404510871162939289482859948955651457073920850214063418103708725454133736868739486197729107370202611513018099897995077288620493726162145343055080037380732849032198471522335767948984530585211964109059536351398320923254659449216440141342715810442179578208046235053617086953567009299953972274058576792049315290710494958417825343667552952938521288141714216030420508702914778956846464003135476274132721746541425920938820052154228578909571119560520633078231869496935667684643896854916991044274829346032259401449206972607114533177113119348392690178960808815210973516703910664001064905175432316142717454596212390676407105264620824696980860297079195854558004735608305749424703147502174024090809810559221569396387937817679798471097103403547813685311018066399834893835859408178868005762220942590404980919216481122130294640666880108186098914619410159136160748591326122111907624492214211954886156938960791385720395215370212443332349522044809837339037169616809183913718911547324653246582398368305612867588206710800849311580605686311574266648900425710893638812986236418266787511205691766928685075365991231957015998770833511518246463294511066524952081483325295223718032472481990408494622310386222889129363334435321614690220982455456499970255298807036835620032389270542775029497165988522012995971914776970979569707434925781459769418527546295581624706324067700586975870781551867177714509904477530868504191478603584848255283061028887063435412305515912750653291640244900123163007066505630815477785202501912066130991555916525024996764711579162550484981641982754285952278477869855446711909563314965213886261613042285097766229256222381685765488995777543391104815522448346160838390583166903492807806589160947727706917338925733594325066828142292985120377772219074469006123587441691301634401656028420965400104364109884335471806326596721044787298215363484683324075187699190489901351870897313870432596529965192350622784470464665059232308401409057808995537241398292944269559547404786673541218475686144222320589351148874494486050786773396420050298747995570411219134247424201490096217399018212263057837028153661525732181271829889553613264292394623062262405739003342204320630965319851052263137047379212412587650277469002161553010480434889949701709168885584237434695697520876400060460416108454268013290453843563549084929435376248026677326423841276992264504769160211036935636618317193468026287618583826809880564215558932337896170090922934047193473765282821014802096508736994318622135977426246602948523341510749821042525129563879735903861483601079081131259855019891115528923653550882649113336186537678282094092352222435232877905232306853806092053009523250014170235660845676148821316716687620400002441090913934545081608953395954898339891103703256354784713272283645269713853099791689574412287623353287975665924111089227614260436352486824364733306541001265753210203012737209765588340159748381770226857570343132960976491149067654264862411664514638889735521856960789716687420813569946452154241406111172474016249916603699624091518600247649228172779038819641936973568197762420968056921694086433249380632575087519470735125781209222881613047507315106974905680508590219953817946802565148659019184601764029972756190229200773645177938911720193970692212611501164714218429340108889209502538555245018902962738143934460423250199648086110368019490339541534728637271779859552976221147664572076251881353453587497321331448566744788685282919799189737923825321940094779074943983737599763443721919745474974780275882272461000327368721834973074165862614720651670432672536666832918222454718134356095871811796870830739041201777548292903323559671462946830959125780457994779572107323896286463714227574324733099679207135058236617669245149064376633050150227080979709024591520837706317384108944152319920319728233082782241431587292200977629610216642863980384127158496984010339453519137912057200429428914488412251555999498501758088892537574473721094051939671390116332862418792557879269161777729810981227096756717968350929677647231472931494742556793732356018049751415578295808302699417085611524845743927042140842091033728438059524682188911538452554734056662086736186542268174222042338676744164583046205907339361935154390532238178799560338534707470863628995253751330524361432480770251190373366849292441613336678987850205158158015117898095926260983188457210701271078248203362772245921394203878427983411122955638258387578102766326141286964052245277725187563081233553772532673532499370920262364530118312122344506727995741131661642902766594912850217858275976954644462607975035831726652137574755510394900999283948404944771668789235769811211938238234750195429468597190851865357041879552769108585728453274141269719708126001989854913539242529640512633325056148037676598898658997878347763346794344536696828238664745314425192247221862915646534101214991277546044131926969759231228938068055649102545671141197273879591209154622362533199613703088706353561459517708366948515328359546732459490566128544776308603891436230330596524541583970987203852988440260370439633952180232658130809832092579046903656251341577477312908907107373072701516396653094434251093929989624361917831672242635658747718532814125652385070307858117762739398824885645545405375346726394195296674784982891721015472705186656400055895041410451334515749826534632580498717123322520820910415625511427989415437026895908506845849440901879811734991705755036726638667446951557940669990955290592366691096042969531650632352894823439289460785919363509034588067097012127440070068745185050397203013991457170377209780314544236881306482358980046168045473806369401254640398225248242610867166605264912411072982540748364110698196044348182828990469756259738965255552186085340871344630627902374155466008837999118879283147600572795216937384876640839657750024660072399417254235779599236974770642026030061103750957554936721581043794348556048153946669085216541044147312315133089038625870551736111871938396268098330455835757550122763169470749557918203780911391368816031664800434024556156612206290938427535439104602679546211959555616150418978634742124700508800221994345517582831092276222088178823172825718056656961597358713452159180879759468126739829980190693501495060480341834906007590476022995734773566961357738053912646626995923809422443923127395247928370297577265902769598591443311540439865449946792919241609300222323246901007486825289254916972102936179920863098795034629674144482260641848512654852016118626746377057572490799435947977244743604156303678522261008526895199920916900612632368775866099959655644877106238377248654004789372461102256973683925775723541404938861608937780521412765656895910502281275480857835073155031864593242238739994012900789297583662717039252643278357358398031067564162894328523804424390592411398831475220996138574397381727251048457846150490803943933087351178400156835945339454864805649791289794550915722106716669072063678315821229068359929553110674304143355627883668952347939424487415920205850287954446951635842177628035367376782027250242132102834440695520667473276879354614580000896739448787517598991625958450616863589214271206720692951489109800966411140756545181741487696844728354335330054977868618544559701163157059766981429614994929041507206396599906754010783917064360060341745459772174554278791716534161549022396706030787630348030929337385896314961905004533890247379024994016043351833064934725904949075497867810220795159891968148780379188587280857934624430144141000838368507341032385544417292702828673956526305677342364259896661432322343731406165753297292114720026983445946712457602629233573915818419961373197278115877185866989924382265232693285789324344857633324749495058704765144154874642735976220858683782561567443520544219958494844156183088732113459063317289942025421181793126439706123062804498479650029761427325946717704119872644008698666970554578038804572533934795415404099688246247243863762075122389026843533027403019649634052341817083572167191155845164475434063337677933233987233742989485206256390999064772417421769148192240384213587631911453668737960122185771232309136393537581480406576053521181397446384939523877711811700589951036026414296260660014885741524236041441125118453040227093539110611407048836230553670449584774070520983696090206373949192379329903498989150491174804901744636484060335631959323485359867293880308004267317037968718301543394967346608757660692937635059644695401841513736138118579498856476584332371299423601026545607575268384426117071505281837971756434796530227383542525967587340082661385292813406075507776504345191782737080358883138896823957526611315500499471453920008135562469488640195975336661883104222501607110920399904180541590521608734389244354855209975953170511042440085971967219368085901016571684443119176991961653870473141158936976856010986182100631291817932849767092922350377932110061161756225211634613992883208796427588947149240348601673689897322983151430008955983706370194723457136500422807272833850673152041486172676273303662364567449611687745939384849607396933981557189936223200658703130608568798840787207936281374481102437911428642232546412146563862608692651669828471503658506410973138011565300793778636676093565447403582813590420231779132962947319575333655573939343051338414092241503919442640158823441638528266262891474831219388211162580577126096671107375384979851329658203427439706427915612678044923240225641388665150147437758549475098017918516580804510555171120602584618340506182673360190330778277558834220707414430039598244396693225469930138253517949275700475407001556911385489612113471528424658576398617340806415534965107930061930443851422805743466199522190655241057012714802186538213613981984641444326561112264731700723223937388984023182241531549109277747057695026932238281741909976662706683557081257324478984876865204535886171977602716354926751841539650830804002859404443684018862242390885748542083065785464108569350386058072924530847922305704805503227386473746696829087116678821233544283663820083844704267286175949868768165157902830521391416670298838838336843989139660146083528807653026857582274346738337937660434022940033277698571413962989516946317353274258458513805413117892998195589174092423422688570662402465551732024781069749660763882527404296194019891891845107964471060300541784972149763506803058394831563637754681537619636571297082970094528465524445671688008007745118002874412664054728973763205645762611675699026529183849659578615627396739533256213061509148462701150154493245715681693071476935416312300344772988836882892904486652694245664032221705384821306580837882115901359522934425237143699233250900191475476448138932719624254817823804216339172945346628204275230279965513312613601329312328555963585174729723990330255364353701608234135720163717865112929726821268452254341876008174287613921418055420397825175647476162271079980741625932251070944819199851613110960672349208653974401378609654120109588511393913521817684072170748571717314394982684307865857651133570984342567086214083698544833780291214208318103960370381863986090774755771266116620866615362124868573513199665835363461393572974045768565732386037943616148226175274929285031892189606586227326592597150668127376868385787350526777383284900555946930461207317774678258954345524411725254978566608722814429285671616900351160719749424256095380900267813563998534592355744402721160939009207991145182196324953768784107756771668856739775659326385899898558338094140663886849517111492321440704303140886575276738233005650884599411045470024048019386825215614713396885812213127671983170876955183287912767573030407116957534348815308023126229664704951893774521577250045065892737799226156390653592482315695201272162528806010126661077072710306815871469590057248410957226992416076043700569600992498605273600653225068063496365980295721541703543572350258560724300040985525722868141543738526029286652998907502524372268700935559533351499347091446065061327721551996109608966914765773351504861462505366179555079077105344956309384696610707328563833882320394035599796599804746702473368683615607289291892797046256060524154566217253868032694903960922402603473437876540147774444119432387155716113906435120400210844972450853210214609879432604287941737918158800438067507423540507591653864594330338571842486263604878482497765408324867624546982107103737206330119999972484401303400007925987110345112413384187992889517798907311849628228694075048185392055837619592840943279248390358473075095607585519018196144716895360484573700292876282049440479137621390520183082207905956997994022359082257235744190719866425283608395373192242892014903361641046376697257929388569583597203154565473686154722244180678591405646007110887177102777723131312804048889637181471612789703843924326142108872794251062685116865012936559077813150796226884782634436312305541579008426558523866161902911232091236398861130794156634513172406969992786001284570900688545453672638404269706087719987161170053246332619510748013008054888729486896922744361045102147791635005099795591038335033993320914787453723394279725436761542315486463856729717960333552232287712749128453516512217588442841535013903055673488307884929712564027653103507660704192150286514161504676454943436052517286964143397349685359835163242330435952233814040865428114992957939010951727955165305968833133728789128384686954011493891603185308762980137495687142973761716454729503972070324493473218382875016810659960733754305524290570635734509429008124288845488384326157850091108574555003334655613987325225574606216716634277495627575240874533891548640160620703624166722067280579541423050386643882235034155955067192310345002557149507323421759032664730607155083260532373889070653344036820397841817771462992215067036881926401620463636754492296679420965011523445908817592526950401171537688790894151932661591659099640344449332276852943462207239031722780212179327843740296196700731308448840335085528775143079087254030509655176721368450915690416469812572133706071941453874272101393026140303906724163542748617946313873620913424347126293329396422417995687156711949963867114460592605789877630068743936250124240877086924863259191693331317598871777585824350264877139045038812030045715510069918947067415953358901225969766212163865834557138581733610063419474438974259405822407664045574646300710189975083617820808187127504060803511935525977536981444592350568955333423840834196889565658096460461379577810898852427896295713102761411508645199890652358248642284078380505273802511461893946029241019352719223231793928966905089261539459941609070055156743937832361679570965969718366730404072919800526750999894267101354280835132051616873171669941071172199968001967365396763234762007484069963121459258254721823740462046839524706139730979570337266922744691205433411802011463443452111163357445352791369792173276972754745369038717807167989508361572432961420648230840325771134803414793437087535550235928269708622138623390115130868316914248045517429822726389759161043695437968494808061609529966106107274202693181458054044844076417498067454958293274828456404086117677789182393631349680322517973977235014933874108711511041230558791815813766722765385446979330668638295043159223514319608172899516488141746795042447474486962809157849757749892965584078295044720242579636836988616820098490135702086956474581447899813622298909189553006028642045284394198492015668701258208708994963055991705405630120931427610181312802811225899091659100121357517256841811281173700724034414712103323770528405243991107752245421962407097217927341576379598570040908507740153221308635055340099351897303420742864727589341308911989241833574499509661410527559531135800327825273178255886078763845873794248473049830734750995335592103875610383722703136436610494438560146574766512700068786175096221669629538716058237995995081843232778496174908408112171166239436062918781838012467392820927702397286560332168818133014893622603451220703023263454408611954844467220378305377403485501496633747924687554287485790405297966861347081357361754193154472506767621346788054289013001900251649956190700706075763514224526494051735201874375920770619620852088253779581655822877185873280820356683825419419917042375851406689828688948358088663265640372671424292597811254990392419223135184998594033665078325220134374213322984447446491897068372973796183939353130922688805264333464180584077741028336476684843827992242951954670470203567199109165948472262420257121293558758592331557762675189877149409858783029791175656950217474908353674517116299494787619067634598487709209187994813317771548689905525617721272345773539434110039550995169540237893358952032822694683569214549212643027072211019109092645997491573170370356364880701525876392031533404868929796030884132042822663126591311604648567720724764915286904723348197151781333065113709631259936413956099873356956978926001831328706684960078255724235648840279762695295823364665641156625276569161846991557698935596903789448846949875878905776610946335914376393987843394696809477458522856972434086976079522984286446019322402664635484367468044119496805474342116649526348733328479847022691239856729166832344878628411091652108917396006391304610259899719410397424655212845188894260530908362565495285584692007106898701338240992295351857516811743224443260557112667126287462882343626751566728693858314238043533352959051951297350534828972536848525416238306549856867530803161127927415219395020730528426445483796274510835186047993587961831227123579607991627921990355093583855092493132538024549677765437182085436230543381835224945359120707395676006395060329393575228791938213525061270854888585462279126851274529904313642832810467745755469779691536677093395135602975831016439866518902438491820140001798713063887729210872465993557782598925773645239073995937148046696943070615965209609686551303525961387721627989446943356707928039422842226413954157641717646850372576879339937070847341268363541502876546742183113390796882785360398590520730635842297418047101101459902615669765206496385446382529118508018359597278721188114673598098312685860566516604698306088602198826453920751108587090620985972710781496431922620157516622951457757239449756442972576574256482491817592035492633383516346044100919298101858321196329584644687342282654371238309540651987737616948686314513528029645770999236139878479671707430909677664689777467377766876570019118551673352988283760389294066156171234545264776175010344297531171732066359398243231287362294484993616807331502414159689685949752603396001898756940863824139148148601112551782977508278629998304682912820062383835788587560172851694693236490980022216113965101223494082658490310170468490596293842508431853674518895283203211487804375893352273556419115627519707332959356054174926505996731776793514843947899890496316488383882053931355855383417941891100719292454108671411718545454449603308230708947783050599994035657176795928156916065591834261013797031506981565422755128117093112676973896001205669866306611589521696493034713540207242868028268661367855619611422418767924253520454088309273224372071644972568056450461703460070403149731589346258139006439225138339391254630196534426578935925645275780471832041652723860596073392278127638171703323493337695051921631832324096853311641955133786215072537995203052535342896210161152701985560523691841428140165123300449062456935571508237720438581342324774523673149976439049834136925456246676182335867414618732950462938223977061343601477087887335735653717668369004654228963569086912923714183862200027239864393936906950266081237235188694146462080989899060849358383623240984190877025715171843769547895340310993701238951180568630610263696807998349791043445122436100695952767594067799521751122866365976852535291713592554922885078888419937690737455839354118992288950321123934525117239820489022154563873050211445188450819451500531086511719050559416263516118583940293517300381272897486206656606544597762740982121075929293585848893563481449072861720031680116274880664729263262813593310111968036506770606463168214954870345246909840422008306190443463745430151144950510049014628519741241187084256034584439139035237892930180058787442140695634584972612733279307704971755071045792478936722080742924877698100308225310449402492144031492070200594891476858460389471535972335078410833815869864392295181575021380094465705035870953660955056624479321325463106354905093050970575618867187944922218746154760501082903951417049088986872023962618186337771399079237735427251557160985155972591667397752044978760571518284256536495473182774016377542866801423440643477107478177430039686144498497861537016817600460300652481776387849380908394834247433499344195352191140766498096709021654224030832366716798551703177256358508918873182755290030966336892822904766195758999357573742017966868250543276225726174770612694152689378492853279201769066222761314738431785613711354742641065010908414521896814894222033114220740270819687698640113574421076735559798858119492156741211678906244361772487027739541568800766585917636934256735820445040226064249619120276788211312108069975462869220355707256771178378770458689246783151028032052526302670477466815666173366982984767092942544849476808251097816282663050351564117743933715252115129140451110039447039771468653339585666286471287905921507135572347971872885463307010409964957443272182921046260430616010806869340764600768046375976232442523826197115548640590506614845332784604602475698238085055554308806840503655916342347065411713959752721809364720449941547776328352198489423504048252098350774906147152241364716138960120967514234367654220286765794179814462525204932236092106412825205832215254869537739473629317945689156033590669609415623420541047014642008723659889956234061275316306640183105359286069175860849065910648687592126488993817204454809726948752858725105264878147803411637079172236380396015030062833253246411854144319776979300699072821414137873763505120102948071534997526234799763174012869564775975171543427676021083390795578855094070098571729093368277789155184719665839639945757932480259756871247758002416555309098182108162943706195550551164884600576098832788219246541971176617749996733929522698802879596748006667536738612819990335798026809405464630610375336984614275394408432343148514747371225047783779810898310960684951509097461569889701054786403908318107979438258897520593767458204247353337583430758165311496317805532341902897004176983668295400263008235098037992119992186434975250273811387826027280588564379985708948414417456681394830794830068154499237626922706405661196462267074339957499028942475957501478694463786073037824651581221177843871949576283945971298225577891940891560262428120869620510671440840716614976191710599037046597582143432809336309964015993962369050939921500054426973082097774400433973105391255197444135372860801294135608603726313379593428158322487037099606398638913585629641030286086356494127045564155981158884971663081936664426863721662336602842476319542003608202484210011702713084092204704223992783619353390430804709769375101526326616670547048623272032489387205685302310464017318697394911180370047833929554908630842494191342144143427315059503607765959982511994757687176930363641709330648350405868074953537524489912015455172714286851308628524946482653131375415928144213225560989753232900141502574059853394980862123371404512384158025777830536214361212043399514499888800615091988249613919465452500227408277870568770668720180033221699386795984331570747754051340733334330262153650946431321073082255505952038795535870463755459096070531154120112670473099313148512129756587486829012452167397612541764779337821528379341972392101617644926979193373986035840234230923562976062073879639327843562610426759306363664610723649456561433507839527199702237168602085970242742451839191237916640985289550239095720140088052572329952692738809959765869212872262513479665015268415796015356895863364143180104773771678463830396922787512607832970867544119258373613860565615357966360572672160744062157593034227672840087465024315307762669827294229701233012312422709731781941905647689740101233171922595592501623037670194700594757661892194451712712867975366860403113057325557426858417872485182240614640420549326388981289514500715982212251891156601479003553570842547842258459741772414398239664384505430199663596689717604615350362228792163778053370470960363115272814630158880478745724279973736884908053611862556445873759901614702188547961754837432170259214474543346578899271668046520186637100413734117372469742246564195923033599648924735254961730544420150249210341131762901289991006115965351561929212842983476475091667145165128381373025028382143897917795315247665756653745666332720158536148606547858083776501528475943266377197650697924713381015541754111270506028654169045590996986306844426585848349175985564854644106062434770312826660019236291072863120592596589633943711378635579711500816501366136834191498073413302070379517544768443857609432804772204043031197061529591790692554938474626576398916707910913188038064332770738159144445668201681044330715865697587600629534557162677952517679202362110220439277933450171739311016771391382823009479376275138568634606611346883103896626933153418244314253125401710850056104503864462884846536383150388598722280258924967454860818529771980872030916406483006635467821241431822946615349591650487747315048383930577955716483526855431026229545402367697564784527522712857243172399181358408491654151402146732838466753044552322820080880391800919315514566640824925878911964448536160239841430077079652268385872069334666797365514738087300454962226986928611535810931689340755924329232637522291391819731371797180040611838402995134939627928748395153060689328624659006209797566767987848714600773425441427497749540502807432609034499796236696638484972918153667998452413143719623357345244299641097628847006683945755741485941244446713259532194358656115205683188023877016203588214306568014611446637800583363656967394289473245960701599157967045596144951999327007388302678570628948595808751446533917618509697770679652622565107180351856276767239615344014851702314879746655680572547692314380038069807011957661978181440030898446191727661009641151309801162242995122461455612106080868674551610064265416845789976228259005645607326096212302939947828492424244390389180677799030351786746281042046986604631697253520111176256075041846306457376820086533867924894808607540237766397563920718998233896963575736675639207498380516079899220991167490853877991958606885417795347843447729288595567615046550195704705879884144980907551667066733341340607903451229630387831541504290793526251152620780118790902733354565201341348419258419567128478649414528480719462992693510926657797823234235699110098079581715210137267528142439027743622714321812733881491775869657078831784017652643269580760932732084829144053004067472451313753599030440881385906574374609316870529559923535466635854089472469017835340887086749960718211814219922287038868928443736435483268134518032682596583752991625148077886885650868719404263209620576914449235682096235964540543783228516912770245906524733260494080347815339104068440649780542479716039337354898428490720419915792796336307244745731811876061591551831090853761770073473274032777899809731278621453527091582580370527556117591176590528333551804524113943429662886270486191732632562766545673204823956750869486388391352434437903313514873044437709535402827722382179938744496329097336825825826498586073173516809536358397491363402815700086766376207208672956640378301983886881901372900150161265894926847452216642471758039633255354603737433150851235495658686802801454239259896099907636373211595177984046828116234320583927042455832056477207302335841414969738245065588990339618468104021192382153642815840859199087876769237769853814383915174406220796681696724875521289532963766149239932917859505133886714864515587527713434869964392584747772387567561180042245239036471577603966969764735088860264506894811454288929474974398040734707342681331294270682952915198297180696845575920836658039694055498990674284752306498745347648470346763313975792754601180003771464617103302410319180144985572810244829346112056326428485002703243972412313128115430123308743065679885097626245553742831233136204071777789615112949873529084888356289102232601036525005245221580316994761491380806681493671938915462932785217239545958193470061301240430598789551991833876084729956382667198165153433464592477260976128598993112728376364010956404679249155907228205826912920001229285296965136393222385154593041151316904752867998434192253475366411217634635658849726453362705667751352453932106059726728973555667082647700032785254759266965440564996735108347638442760379613044373927934562421260254501720965024141900101788551687476860879083434290740447903809509845829491847580032616999147445563099586643650291200604133144402382888948427068111778659383021965986422591062448555275865766561307237985747103620790745740717948008640766140108593362756558647091464176701346096499725072583812482846764990784257346317256327425266827113914904441759164843744445224762171806403285703051573582729210332473767258860487893277803917712100406318104749222113002149468050730586314584978142454819992577240560066470327562251064613498038317460754084635619767177087293984805642624814856449561626959546241231333342703736102512923531746082208417352355071996716365753597525647659205698865405603185163689221506501036495107110711291717001037136816612252527023283327403579071486537255778357492656763117233976517477771518378314678108620693102518098469126194294183349683620693717099066595040009322278065781432327052893921371178540880933741283782034258761208279285629952454866833397630556605328924425904261748411747671679354091928090574173442358244461813233290367141155499769073205676567475410824217339214722550904861037036019325118092713885259433928831592307222197420739923503633254229868316709539778502032960248341376088039559742246494049655872760522739568739378506232810396719701412639396782221912058696167374117392947394030144534997367772196405771860609922506942547013053245325502986576355995575546543748888662083462004380537172278399068481172781515792341078587580236014776325838800391252658845399213405332273794619566475055762251306643984102302075594368322664529460386534880063590980676299934624028065508901140965306392351228274216452465220017240869067386149899328377032214171060561740547795318945844851108935198846010682706417354227765856161009035504870642928947704331360495005886947753298383213953893145803776263141037602713244519777812264321852216903588254093443594402699223148425853379964743217612474720786666238587819404923646741096886284611424546594088549393006641063974333437669925396477224545208512253569349642046430085166654000244600149231483967838290787332945195111363876734551992047992489911964951109952136775400540436420492060557437135065974713397560593068915293201894838985396164615949540585468153072435655151168700348534286980762034645128644982619603800836461676521525015830390168634583897595005864769710246718136996980796713020262806668509850704924180818692528083586242959574573244752497127982458282718432829720854500716527977075559828006256617761771114679575923662360774104608040411059048487956431983435853008743075982975056432604142763580196608560319950392336839144134818860291002943049706330899076576987666488003100965238154412655399305407907611304149655093493596594954247674848424614996918719141419415674725948301502949888998316161740923368895721646973164265034495388152599731407233893685805435307920671899811227604434144712066584165183931942730870675556875937596530941615723891530476659733859558256900913644728028377199999866582194697188400311389381386961569891837650239239897781166757768876802993967526585312666324524485032591954242906754149283210298301532860745647411403418961493468425631961455560297867679810905743008242718649016401754307948981898947475222696465856527085315083617049344462032734778904672546389646172752496052367393919557260740847523191450551491117911543422106055071756851025634535375377632389584992107285519191358262115774821619741603645819725597136858868968936434595256987520888661535167149972968933271381266541060311127692401747590851390038657247475701016397572215656724312548737615480282748948564469620115745855235842877491026114910786291804855123937488078311129995268252357737373949843671947418174905976475037660522298585900967753128043589500341647732515486006446745200141799399023710434890010853259470701231713079016262277346579709972075654392506202678153613962355125027615333033256136188061717736264580802301957392757358779815870304105855931857966368335859075023722300830153762584396046988232171639352013338894763452007507186681540321799698101635839772484914392918425899742305621629600940695561308723221323752905970358747506900042624507244049958835741896570836979373932920054062508467067547769624845388191788247771948660015440147518278971408411441442636561114835031370526599146731067742806985407696998083481347165866744987634026455198885356750204293099725230025190196430828320419008488946152038683555199247123870911395749294900158438755587758424193683820747105317097705435535698785028278240002319657360460448147092362394967292893436393962814084533051232909649391583983058174171495521786210719610581341108452488025683254840445242889887970763448253888328696531728764893789940345220372639978586623004966280460224968177733697829230089317520179458252094679440888661843352787763743353978764804482713265274330167015685096376067656472381595583952081352319565867327511084632999597741857449136068107155928029269282960013065139992287523511126066924240648018632267664368704995240277907558632494959383840358993923678982416078420303430738098140108794350737140218830259738403186228220893763797118325791337970556411398579947223329652773369833416226998267175491965948079348712747371881201630425241834929421616141587567944349984632405040976782992863165988091261811919343759475665580340914828573372224898915721945259619617185657411141199347966932312543743455140785201680767688501306695527384616140733525513350752432209545049440095278215288991256949498150391048928350013532486863710781092252347609520326028187237415447685500606086266850978745375402209538776612237888787087921122553792441037970370837297238459009983726195258183344945959793649609653299188151441254819724765778529095074960417962191238710069747711448942947700764033781683250682598797318838668073184106434505570575915972149970591023998238557679514839321342518983894259328228717022195354548417329580530786517125532705998961762617472628535619814388965910579335199896572142530074478213368916530804759581316877326144521277809062466244173711217505564749871599894105068387320869158589749344897969083321521038722996271234676392235489436320857035645502780660704442338134037046987612148803761515525854130058248016429128396886033618664466854696741555819899954086250792002104607554779944592269859862940689152483543048902558997949909589771899859151617966431282983799321973026300037957724927513826379765836645885066227508740750228656185017185427640791251989327196522946006205651162054427741376448719638287146042977920820563835240860662152339373315278996609875998053403663061835549243914090642336704196006430122451373083987960720887088902020623189178189303243276772970824754796979773740099029316301871206424908068051595677864654489828080999908033721572771572883415962490875913185462835490586466177664774919891907651523274770281220617868248318964908750177485880188694323829380787614712699755365091772557288444195510377378159784932043253141830750925683276567136568576669131651264232778745637733907793572735216701814073971141843560152551074183762406802195827001411625790324116035267743190772936960676800011998483449781301935931901617944310210678613858655502356120991589374359603057074960986115654797153078073470701194302025505762244412035705879229598106070032739526917345217276160169615258005478896551441619747412640731770923934509263260111773771558866428472570529494855443880681010316400799692302521542083701906731258877635370643431114853288296790215107934269433830296828130541880656739272565091770067896433501830963546036253589965736013503096406181637187933656415163061087400886201347639898371158612662218521682691048046521991059476054218421479285099048280201128183374900834671074348464045466653543885480812066810338902705506691958922548666045745075156244210803528623112833435078311996046669878737986987537352226270749473250525443457026086412033922483890988837699071348946208219769248365652414838610648599268713106428944777433711972187720103067480856425946050001316466440320971424749310306854150493478071848942386671357767411467673718952072009313787309016476270015560018233465516292405606039541361414500108866124755129692450589749688347152291992501165641339068337152455407890321341604205889474415294006353161540279387252166503873240058337040740869783660228270931470572507796726505786439834951447041239281436105943966844849114106828607421830141032567239364983595449439420367165866837073319444544676323386315888706534376911765773739085507158578033775839046744828768104922890759413362120898051950436786205677753808676328326849998805996067580917013604527950485479482739277493669286118349650332185993347097768474193133043515727723903115084783323679140400436521372825121083710195469150535366194281157106883855123398072214627181419045877730920389090044387093564301300177132037097233524334742356571011234633697682325456306790246615177528652404363062085952955370012652930879891052385737247008396336845910944257532213815415806225063037217102331082577952128864231113822454467907999549299649640087971240486393325744367637826235931589885792284192445248909682570366728494913465277726372317029754624809035542394304391037825591120996206196327142061569244578105691457354553756281782274266618558274390971554573701484631877550031381678665451629090917404086949365271084089579991108885535004992130731459930134558188197246949110763350248060935740133123164732275005572100168852664002213152004314077199071195411447132699321610940403667200146068490517708562780809861136372256984740052017517328565120232365593262711183824340363384086477258110105003404918521871284449375775140245022966616206396666238427127777766741818811729478558699086105916752833030376277786775092365479397347409579371581992410962343799312206630987490279147575468751290695736495104166143580818529284529826501258972890833232003517906753198951185844134540681079814869552963958224438339119002958662575146441868118530851060750077696300433737399700287381284605248798499167652456179926104710683760802392483288258528369422893230223317275323732952774894073171388017172016576245030581783591118362732070327952357968150432904935785477855705231517891774219538426317176819132818055644332643195027183542594744213924610007328917082795945424186952960757661143983371672361873032120223160631687925468450841520442231314291435978273145318239875926089924057728839177595432040562394346448524746688985600707663659367385005277358359456213289944939589298285733494907074652989340957987492478163321677171997416487040555631581942635861910565343404360269306578632517196252397934000996510404440093129897486893597560544370193884027937099574411627352737589998817785762380973505251889395675542384631228235548777879848507058273059227871114870758987081394798161389765210952871794185474923656792455507083798171122489687093733400861235424871483114529848610526895802797237880794289315043553418379499001579068738138454085017206764567447686223825018251448189322638729946305490182029937579081615524134628319290767735559694798364952760457838632998685595131343784742805076268730428372378773419729226871060228168637057765960151925582509992166833389323204749105334777436568350327705491775731064391004129193904152284543292315064950736422175461831138351884437970462909087299164720510643455071415611044646496378920034951807150279106999429863723131052258940368912415261614048290724643471453074063577229084394300403433935613477217299900204792301337329172042462407477869475771705842526148751244437367826769163114240955313049727741773070177518239430224901090231509567727020799012583864388747898285005643739016006654192658883456277671587526095479809716862077941343199113448170156766832364934224096770920740208087773801511194899747793829943228547510095662053487220517489545704870920595814991054872367109588929925456477153226144365920055013281953256116344199824267042700162849441634370903529983890947711488812827666030666693188983879095952984021154028526656971172721334318240524474991832080104331559690146686959848987460785432672630150831390602800286921082030892954566458565398419303803788416837784892292742541372311897304398127982027827760982809864004315177909150220585354358404441525118811090011091063574489035954602734689921140253119883625432413373048416004099140484859049912569934152723112341606540100102149211633689656011171225316484332295653933582781038564346135926709223811161427816969947980258672745037662346154576891240936911815277293003295273884381638095705320153530771364586048121856266980253561940469948327281058837408768115946349590783860106667457758220509398820474335847623941151629260652120514521595142301608149995988557161885337154132466707687681054410474765559414019029455259887710367226484584769888129876170496673063321131729994506695246806882348035148933245234485425151642214038473942589249024969755710112245054783647647059480296141223939558100492892406258685905443418492238862297072646780823976361363899377726923178928702866161974039966850556544107563041795006065889260562085780036563226483045080224940395504594108222956898593262932801796224085098187221874731059740700319794885799681997670600899189283454435982130447348519539992970168166831613901119575474071344350674420160333446431414407912141035692780189331242040226070071347192043936890874345618133634426294174192989963065693340324779303195367705641661257987813169430954124894089388593234247519718794754155810559978481125422632287054870948838498310486594428848737209744979264263044292556287198850063379282380093258873430859399728115330455949613664685837295250218200638006410489181271035495142578459871108907767676211134831764698044589894663510515577853786193295637201209506141007407872520841129880366352104438031334493423135148872488417487496681319027890682994070893531089887247792285394134255889884780330574377124974148559044867631204104122162023194183909882851099797538742585017885390383086047676758393199722946089666250555295261134949339820591855442477482267275223833099448058551974560866118332846021811567345249986897954080431063274881923773222691830893847421409377734262413452398886602152090430511353776653760599900401540669150752516049439785805010730116164873497269487854630363457171540974023650439679546939325072693895355720271098360629739690577614481553894686427708089374247397447848677539610055567897620802518073097635851905423711224704985679599119821234316971339267178458943658457464788838244433258898495840600567038615348127580856164825262029899688599155988285651555098577821380616887749736812128645596137107794582114280794764632066023446649562352280843983848802019562109952542258030358134864490776912172138598412300438499213789819641481902381477770101433932451384176474835239172834053108227753031585993811650531087698962431275057924029352907371790063136397154708160261966391722522655083775061298565532429609262721935505203416092803550162379592887285486327970311719125008613997910740805216212402289282607451095323955678069733891880053514848360905094677119634705297420554515021642368163235481398606930922811160594888944766453476142351008590008701427075595750832691526777709045605895688623185829776621717038582949220861538217034320712144921009966632757920120638475335210178840615649911852743624150440352125935511378619522488493947816762169203621486959329064421295802008045359388576040936766515445122817498169168344756373096612753611261866933593928767879455537656307111639975139033940050538634089615503633153600447001157770446271927274195937728932757158366486541181384854156680064013988105536438378398678007649328438372068707786038719673545292930006686871513899504875131731973826536735574958429305891300751477749958740109651179193803241357181855498257091786567362950499104904918652839727141525340642781471342900730911270373226358786417148687418734218304686472277096506827957610839110332211335357313410986981851400155569731580568351067100906695701176871072989419417223537149270746077217043281476306380035307269055928128741736275797665252514141854846894271860028995900596384084461988359139693129797939179895566691159448802065418380523365873350596037002947341283147235567783258470119954834204699937304108976746585316097654729574866755354555241405342025527474104992676406959034061495542092845221207555390670102725083848017801483375286938577178819249451127826828083157832804530697117612518100314134927542678229743868560288579892108944923711209695965909285100048166380768575619536688299915475827889623212203643636769287789046059001791491781045925637232994231330167294579679053258103426679058232147996583759240332512851299670974305784110995697320671423232314574504517675141871483820990945496866675671395200592504322031208950271274834400303017966602877448430969158892975176191518751019668571650243894156725596420316229671881233812414691764225837820038740568039407204431466838768566075000534088021002336287615502183436238353582464248832754826414736705160530848018523864755908133974671520002255513901457718192797798816123559439064291397969738126001447276859249536284947502377265719699994806359587687081727878506135359350466405510314594298782031980194814449295341481162238000375191661747024446033393329213098510212001941131221225434011378265742132728675269776046007171101012553619118753083103675528988336400846910845440814824030066036616352465976140334922386847541311972427613735467693186604852622207999840471152884138831529023900507986222384025343608239836512583147495167939555739246721931266905031426498862265037701178044473883737237812180087173983856334921877675142567536037495668229201564655511194322040923189545101629958471032326139336184065575890704499469223834164223984027535821036748677871330523495786540654436787327692033607673405996899837434547877003512551465011896670776650098895771853865872323583366349138588309506392163532568182553286418421361725156924050943526358416074813096401440710339163173366888969304106074280016509873201649521093574313540028919488787560133216177609211992050307077481211291508333180991868525232942772931576962730147951582982267134969135607584005444358539229137170031093845438562895544722698294794404683512033925649348125632283851190628156263105584981062696487620631938167156799177245587735738870438355532936214840470915503224967259603020544123602432434129715187910716470593477901087224615148872953371140690549946125991840019700888017432968004718334827373805243325630819704214421061786583844089151904735616696534452650002216428620951390687653242977877189529706428284448100487761801323053624077716936891011832913595418114930649158212583182918449731335912488447859609253577778290177134362410568794395596262596089723359201094658124630831236046699855272467471884270887795782513441962545346761647943287075315717167350820381030762709321402333333193672153565672254123315829568888408626808863240613460161569483887682820227425543612741707286911384652227786548824178610322571873085535266320204596849681666462881183392940677811106476300635566423930587454027430495398449989484317623952897361631045868723227874341567735526779343470894778707325078956253681366594350567544744066388907329240564452962089255521379493751667506042035505837173298423173294148153839034043341258527736913641684253181622192403672373213443200668788834355537065982134005750367407741187050121348056272805704860769236982733261230862281613522652479418626183240532241816188227974950256198341871174035562239807748625853796828990120872538462435542627236769141067970638622121459591639822746768131995809301970972811275714872592757944046734996106328200113698439584353982072702265940037519019719387353308644761579661566312297643912894860485027257105661318087813871606730279338456319502207596060807772162530550544286880055116098011849495173295701604286259412735902894782628554306494558766718096579142186572478631564082111769754291167464533337560601951015713059363506486010904089852629378339670284593377764459858543715121703196237730012055133925268732770669617055596794852284241560954688530498844220727185329734384140499633390125715299111534972344141293623875596088859771129954508180775481418657577301240948069403785977467327345105018714499780155289110092004404764853485967178815848649359795275211896487088211630548948785834612575198228278936463734200036265053460099487719742466327877486308567025057623718359292660107933503669062389284222226120963010103592110192916798210877111987002613981021888969335747414823585355498594463958409272691540116460445729731886702404249431260386363580208493746033479751906812392339699739841236715916112508361941722925158346557087130024426099564108511725210105332339270045760224995999592527116324987611769624305851236938795435779461912353693388986729785083062786070044577714117009000037609737944465728488954202092556721575647467302331235337725144801522466518052209930473442706841811930875055318757058034041544327727758652849037156464884652869458861513722203381941583200512472188249424190061682505382996081758717898111828438103813242120597086129712424102421725219381124677321955815069375785164097953234550522618336227562802092726777107773184218775407348833501373822979360920815920779902017997614922021918580568225386053167278400046987344935186504349364140602567750037271323571632941004075759805485155926528348415329329441458385466107809408502635190049214089834700047059450510179006608397606044961504206861684374646852840377511118310706856079042850109047779065894864312892482437746734162918511458541276288404340099447614906744517685659522619148176566255971440226925035092867282051314693400087955056835814247858270643726111222634611829342633265219567400098042258899815738688412754936376028085364447547976902064611529356794866141784797392055914879506408446229824797471459615361794280075549837356635785828154191361083479465455518998412846656185685849475753726542407099367732601274056856558613211949322920353548388881095147828791140943845404623044878360297057380401683339763911616990609984530458246191403782519470423098337838209783322354145880085015130767474726013906798274771950292554398478553172197886236735514433609547971604490589212045421858120939210233023487942148609430429702046547233715762328245287213276538895942813143148838180734075268498823555002041110805988988940627501064936179767278529145024246957702765684404744826405734299719286129570699031006394294296500348664125342350552413338166769925501684079599734122949356999163994850224824408152399513077219239231754755819186881704426759160201354052009596256292088499308023379060081396442078097465904336373294676899397059021071864898749255874359458515002183099580822157851137147891305624895390558071227428601293052899602362915496922962607864064869788457424008202941137393959987321104480596964716136945802132659298130618210989691216854907648719575888257510199485431388344710600954384429272438266878177402491096263231490899048472498826939901334424438594760366239488287110671660265636075851612417034721587083025613427723795926849299087336487767105431796288090251777526893030018466005931833296136656129349652746385490805279956414689814154976479996638920970941153979502936766671248997162702312596897666378624282841615486761011947050122248653163391434447939448479611484468514755632543025708494291361227788063430708138779178275568346594823099672274501926588604025932039114148408622672019563834620857577770538425163228202627295901466413932220133355665101956602796790144007295747306029713728958269407187434669961277740756957203377156348756518270920736161842709521859471494648755470840578501593650661145933772920905798362211628072276975308432167176053630558016078510978082346689231191606606540273795663345500351303515998573806649871136680104568374615458254311732562196350708466545809395665129494406085290081975974622762197515561441656345604129736928156794888740323570094435493543805019718077900204278999567926197850023241024875253131017581415141855485034993109078460495579910608807170974086166543710077140261928663918917210271550543683486117329357121463872197519297681573025871216953210424165788638808447733220779840766727518051811031479344305073841283257002687487619131791520056641740767618934598698956863853808386329198642904020895079839226413656682288604759485852385555785556163246946627355611915891412923897062956120488047640849291598625220516475376574369284749953628909419294098416902257270826592002473629351671298049718076053083928741936996649261085712924589567624707451612534288452176772244990899141583971525854970766932265687767128731345972672312489347330678791231143752014196529414747776187363706313122328033776294785510654173870899376811099658781817139594722665080413310228826134336743737548109692454876616644247240081179661580366268627427104372535840321776230758520008401533571414578586481875420944597677046195395183763438172491576758318711785402304858541788574698371608840108496475027298838025102103966214418275968685029008090117680171461168202659844929897843351598864230349777540189389421541237956142609609234854611185022591140498074455315848177056371729863211528471908932938110346809650842464950777821642202178571404326989769945356276245271806269107228865438002584987781433036579533562467609867864639414032514863128027451419322138601931990445043772304109358235299675719867839216962007727442721543111714314971609691103495217957234464767841338016339502868206576959817609480121717855299993801651802157700326115255701454634230434529991316343426802431432014414408498954530990951693398656658091773480795765359245674565263452635630194758921793790420181584275262912155329783347638917389471754876487517559613872745941403727752256426411199592757282277685815342890657237852355833394226590299265488423154904728766629826522544368815747681240488924439436746526221574013227748831217643744431968371156426676650237448395197803097934336815910500363253248291131583897844962898838530457145886412625292843856648831611453192133494453287937985453453453461400894891160796996608921155155923601879074993693425164953239848750614097036398269446969068615637088365760779682418111556784640622079884702962953360258359961105471631476383202487570685327922287362460227994167268771663237900517083700125016567448205598915564842239803110941655953118125923486345687402198099892500520813435879777245263218558777438347731833599293353451922700536543549214275454052934205004313823055009626360595733234114898896711865977800907149459182685982739239309490600421711368582323287217915014895244178113230843234350383631302006711920721645855782525514911669909489870414446713258066457806955028846957799905936550598870327233873377157268530601611780499833688509173300459115119603298719268088268095561913490851707714949567923016382969477368161451569351957751205087171381632152550698961141917847963790155153989663380949740595481809789144732238071134886572456057404664400689486584951892398981584358157539445420120575857826416267548505770449234159573947079714809226507175784083338896633682658103575445380163054520012262211938988205795026019065611012611627585732137125535431343643086472189971839617920805662882085348375639943266399538533843481760846982457518546017220682267789104936265180324387086991760022485931161262576048318447195111950645724474417576611450433297943840954944957398857895504910989263989333741388463562544646576497607167069624870330164063507514139658550655043408906192307374655584517072290804702101343856999727152883376188608878989629874715834567593421332309526799490499939177347050001415590654445625085498178486912485069719067393256810849768778495125187626572199737785379322113973876259251220442641353628244350706611795739158957151062678075577035391661399576537314277781704775730503075874638441535095616805427936099654245709479039881143035388579102223377620854844317662659900329314183055443558221835853082507526328267484224455601830204185414599767764292494647024514689398166646703770766824637559084951870728650854192444791380208787371528345974433247255754731538916445719636838073271283538014375982384053389861985268930488199086790232727314622570070443622458566593387987172341288114546396787034192827067629629510907948014332714107551434346818456680613203573779311594404703244728726920775298698193897850943520277701255922766168940974466040753635925972119817672568059538502155808973214815589842619238401275292371601510611382509455904019822268252084607505082419904690368225682300971598107533136949967530804022909334393613358629780962548911107331861703194180223966781860767356385023817671045463377567109097092470032203179214770109549529357533507720991123086960172229077067201607075643036956988523065719436163787567525721647203562031189677421089862927984846762358899906075594477858048980768528737154493641350901371716637115819560443800301536835748075237696138417171545497826346205710238603843679387017404800368270872985089853295044813461759828407426075266507587733515285548463183575012431450305415565710643156358607909079307932265770268646951950678318468827488609786645692785510914618634979913097304495644869082168507138364468183667647310559974669633170758164734076821258331457693126049868720353216299197909243526957690675551295210876291858357960361017847267890969280086660307991165184574407147277674073520216583116852750364355438295837873835557487748770610448438423288069198156512997134226141792681050363293891355828095805009725253720146431879088344336699528107367785040135515673287629736832004966954661417457899614724699858066918441295270606852494127504152310335531862923637355017978371160350563632853399002112848347530935420881718331855450071926648935986493064004790571145061663580475394649380925010152601004806491653653469493087997463279582309136903897892973703952215130190139399271945248512329008290832571645239488443420943180308996461531632330419070873769280569855278999900165225343843874436074291879467416060455490829182836107149090032956829026122952068552536791360678883169807087754013172706854592776261144890240622048284051031070490056925136191269568330713180930004439307625647811818552113454242688474523431763753385148841911045261549534230989188494830921638367375522554009247516333613436077245848197981867014353646698799295762880820064075392132029651143481788048245838015652621446995223831047248135261964215274426516790062881226830803523243701836400479946577627983117750817749705194979371547579236850608157455059175761562029931732054043752033011877930669370386420051761540068988071031546240608031720921214873277766201437555295076360067246187358279636205492141100781935142285551120044938217585800169914920967117215827297041742715301252518206777734013732653723189507868772259657383315046325175014634020744951642427894335722663952858877483387194951408548063895273956427207036243289232700078365152748793243167733751498825355375001046888909719684695757647278715053860477012698368987137688766046436464992222967888103044655892785252410459155831886014072312285222348228342153071151012132508106181445956056975651688975084496228139108658836281749777357381437281241156878439073584740071929132832540678519820897256335353771299507656576432867168516906548005144857473482132920495730700768718674018109502644975245406489751091036776681589309883132351244476566178185338127134307067192876552601963861168494406151152406225042805684999502689060818364203762209971698983266569103011331351592853185455358021837948873493420262790397145913020226178874742255287917870831481471233654819454614069272413003296207308909019356004397053682821292341769199749508201120084515172737499339221901846964362718316773133256588127271674113963285533041167156481262529319052251043990203191629408381787817088306963058932546569431566186864723385914185718640541879020005380486063453508848521599628807147447760507366073737930352736619474269248806503265070817807235502868673609084085198889606182551576191950186082322657195379093597668890582694365680766816772805300847037983499386752351930914073977432266038329192570634724485914977526396219194930004081547160406812317991527435131378344126581744943607622919550745198352108298159452870326298531151979759498976768191200541534936233860770277066232700857029871429911698252457880452665916156464269127939292526358074267666354862887577312612723405658395233174572968216160150599901962548866804720997799893060159419940172038533633509348070700460299198286869252425842413316599386966697500262296695017805391273960704386380713429801436517059351235700192560417019184586016915493615432686740444470951059660408541253171789581929598185175328818567513812058240412498483337845554967730415382933522221374704289409024030880187537718834982880442730831685216814129676651583212909875853047852008195670152614420125670157044973859408074198226696067457570886397069178878077768073238153027140552651390480636852137342149995862185922832872051174694542923655447658459458110606579564483443804443247548734785631456990745446967506484122732275029139205427764792088026659413111088305231318111711352231883789407042181902102800768910142847333725141286718897331839205504842148367550217600896185036365512521688383555393398297717808289569868779031309411364115398520752530876145335967739163963699547508136669688646200044844410293156868437869923651067274086899080821472093791408862998504474393122925187498734823257687202689217522307066053842703841459535322993441972597836467016306844509105840612672390558036604087075794753040369135074936206030033517601528285584854769068757469900756393351091650917932394198131304866583808675983800633310410119750012074244975265450334472577809887863957113235722920407993536250570244767627871144607371498538570643467468938618642102109453354793926761830968980649559131387296313869551272777635732814084037695042574582403303788092975982634199591436768772671688975045325549267423278701060448983584465336558633103682325605946570203495291753425283850134856229056498593238758907738584351856626297005316791325194511109512187765754530696672962736551807259143278562301097301350574143832936034926352997225377781167991905520959013320634627798390800516248511164872230335267254954270154540668849724250526982821660732967334132981176414452159288997577437454073724454276568134407079050978124530106987391695891465666825585028227296205505544888683640370632478619212508073486707719977215881241811130874042879254167207114062473903231113449487113911842447860856193851683405496149702758476835365069025892547216417594486109872688689383845053033739835764560698678459545247846927845384998390644838687414744449959609850439115047861126558649328466923558314840398478534810541695217655048306857151349928171418389191411716121528459290073016821393895103520319727886916558177376743782251960234997004166086417474014777850867129429946735012240173218220275738495006985129586151500523538723773718200779929295959411541795548886415076982676625440103958864785989698609719364341595317276994606408295266264991893242362317055827234032531769153310860646790555833601194042200086155496112385563161554416290399661824520367015350196503155114818393821705680830342787621498894425357219454170810806559663463931793550657707700870641937077930565474378106915478078675994198045200386054554150475102848283954541267775098148754738966403169062388094264459579908487692219488367134265512957653990392278155163916960773045448824656409413273216898046465070459305956977669603434849163951154395905035026352386180442081153725357703231373781991216964548685695874691752688609102332108558889578781936366764181187553062347619962981827079315558650901240328272641461379719194428468855817982694921188366394187947217937200255491519519186286402801103291315083048324337199005069303757427718410233144720824051693741335695915932210014827813213249720649698262201717364939621012601481255891896696439052210856344835612471256632160544659262904976637360308057340294035686075704862282164217087219095827255814031558280733938554164072546001225099116151535334357902310671710570400085153689823423268463962580886442065155552272308011330592097775507724406212342020491414237398556432461427790728017453288733343963752118609098697211760494079971612472629029714856648046610678746988917656298915767048033403962820671245318482984242212210748648283478661438259562164749979092350523520933927941397833119260670776940673176981343774635450933104685060831346870222967148764736713269351574360351191640578026390085347841424281168302360097472559093774288804324817298785581652551102956024097100716196925066709112025817345335531453921010516977296022123816781818699016902553297964828712620559314613639145237901964917060411941434721359880115698868655339331620965974012398000129664998036637012087802093977371349324386754701983074794215203090429633475142327410751116025881552564051915957506498082592247796213910922100957307080566704875730133728826247664557935471360860870191132818573989096159648162490374357158266525132339018718570295870935674933195645890090031980247536492419590441033081813053798033183519505937383288038469317435801803643064199803760697495924493576400925064694151173395173042119997051579494701050453344631967486878342751249973630121432698118553750803756982592455780841636034927479523801377973756724301260489409570915230069053378066015093453450557087496819430301462609442338519093991961911343488073155677518568779821591540049666683622564273821884207055312655488762232753835146196041246300712032193370892094409454144847089028202487879552264164048810406131758632834494892939465874126739856417498048880279924506600342391923208686720687751575007291211868369548417310995987576251117704791667439301911099984930506012092433323434380913413308554759292800720077516729043708552951052885241512777416632116688121180185098092131543386892322367826816337774880441165343644519187940720240816659867222183170181063411846465787212867952153635249824095915168703112996341872734113482556380588079161567553577055201832126857371418736470990878859575849906673110027671387276511895714320051183460369092877136214604520765890198691509783505741854682974935168565545530985712732232132756969308761132067069663019025635200317372464779100202739810692129046760890236360399011971657460850594100194192827736600134412531275797361028454863525726446003821327658717797853956807399025701816895076296627388935932470273131217541092054278289956513459950010363492614179957557727421549891213917419841290674923779487927036676972562973186301762728296009475062662786189162731515002687665409453295637429836304561859596568288673124803813753571014162172848951675570342272763220738942181374355549635449946892180002954158779330174002726493877478767722809192738648477405225845741609575916779187202002167860080068521312900972374904014107254628573047202900237794570014161049164832321571481527657269977676177988740730529316057169210149009250702547942133608195635493142365047432393915829241123041744872606139105199066300479745370374947533145530356806145104255080449449147162284296660648562673677124363071242457957374785370504103207865334988438762781275202765246020028573369005663323189244011520225274810230886700367520931250146622079137506389538137614740339091340410643075444432155492209731847409297539902524270933763115435509063586877665511073820842566301688345231063056227944865464264255000513239798918507374164564299774222541377010229595732145056874770145818847430607909770767965974636201305313868307714823723686342966348741855061424147587613825985445258914195565482010634704223193304783479115735054594379776718400714688440438380741195522131118017154816973434767621762087131002822240972476332257879080273070068233601384221741792564817445808205875382411839974156128185355699164966802971116507064683211165912966859438450311115373606719376239103477075017825742561862685420806228011683308098459491349744091626648996684866921159703272201087638269833881904066661548704027973238323252555295559833180070852869955034944454114726812482235340022902576656200312999589203842629469964731870390301371600259063922650931432915468670240295225103021392249600725597865934940729237864653575919542352130991670293681783643098801814065303649598403319110695400124991464185854954696432014119988332012478222923382654402570850014697049044646369198100364110112480804662970733179107128631648493707257952123520201039717855117465239748620024930351077932884493253245509200577201489522208263799163840871515094938704569004284303950926541261835493057629732106219493371674927317187639757424125698650428893807739503858521269202815877926079045276018991134964578897688154196401570135120888226013741218308700590019114700553554455996780926367509471922796868835254308368505077250661472840744510705032384852850714614305325362580567645417343718632486826347935141613290447167718451995967162984285620873600851329022722908748297678306245802196285255160315077561570802518775582821281150812634532571874801557719361174142404169763086265932107574397695014132970723403062315490710683192111171197561589771979108276251805536158739363522289030372740507631450849247725034323263600032356009858740847718246073748500813608237411142785406481044287936952577367160541702309481923819676968695269307357342799126613565451702219001118494548167668187240361557605062165911039546895018613643053127205790585393740293504992406964861452944664745598966800237751167465274958639129764328386373944372130987876875207651634226893789211159371268903580513285715963141060502041021645671267975327115414641434028788342518178343699758113071707449049739973202530640947586594466687788369538130087253576028670738239074261431436528872688125637202701912784579601456663475495749465192056208859663244262657500062516090283762912757234893717325132868270053586435617533927560149701307046458536649325625768643522160897229346152199731472791072929373106993575311981632464112830461712131427277010543272792760411767482302211823689195288743733960440632780349190238913805709300452108753260507283610633706784554711002807126890649690844257981050203990916791227607736606024970080122310607589082171428388020971460052079591822791586598008358847331954366275661033570934027048289082578261986147649971755596558310451551453308860398781577580337278433705281622163802260223045751935641751027324220557963913226693545049344420848116669770313483495506193103486587388039548307076290154679275569990969163134116241062797741204562815289085977153828113131337781301682191832952951064055963829598446646012813046199509240977184521063891769158231369416929933778501733666232721357485206997523056666520760435216897899215745981567482875489459577197823769916260512486186588454987355564986540131096684223646141745549952840881474820288782664775517935617830101448671364532052778449357306627071929032107976529593389767467459328163357232403789322487584666324832716682847190783592907448657624688255658625870573665350719010364792180684691602832548423656607904732038736318389370203327627871259231323996146235720437936976220849116987237451891272586356706725197102914372246927363722863123083466601066146906763209735232163052229912622528371690649186804607853610228904836706873598284870310228304552647024168514941723706550087816257644259952203816263777596750528954921661601463927826213164273127260579386682191809052572027340431801463782437564835445703190993692878092015927461139626268892560542494209786587266243809252264883576110511425105920026073272518262893662188575381151204750612302745463367644156298365307365711320945919076385030364896205098401338909227704265286355931043094264876338095591578226569022490264251973984016607880707248376649463930550177511007370833868837672333867928130352090280882930540123311865340818374654402234633452302842052661539553964923558944973744487013911956850119051513210059629181666105389769026730762355384576742028831029293475373708713723605855261382840681147548339026912516395369941541211222388529378916359862485194873783916377631788942105168607527399972901461746044944795562639200013470036288481055476067410583502190325178848955877751036996338468949527648009873076060620231550643474436763283906151767702750736202698683429016867979588242733266060254495827137212572625947591175178088114650045053145528965354901221218308047530338655952876213393524701524938976104676021091887018760814209686459973229302882331830998353596511273251245221992210079073928542826511773154771253608018314244604177464135651797232839778251116677527749473453359144132378851094971507168112603229415402772169279697162271415180404669484965924774274873510388146789596442211903060088130145937087904537902390929778023830205696810135628934607439923499404614785246888141249448923321438940858340732593562743386324843297288552891248208956126776987588367656416603485425284840043576650647638084425486664847407064170867111049753649374009113241399332643400368468147112990454584741817837001896019266891635807098716853349066190085472253015283215413515544333435357463529370755115303750287629486123374120953496530222126643688613681305400778720441056464414219771398187383579210677262193639356818846231584714750220277130165247103501969163924415335123361536545552221335122081428402829010033304319630189972772824144452709307547940581795066374346493056479495415293120833388577092482352528749630383856950375116164316730481082486159726864719649315989068975190500362642089198986019988462532529397575699292136249576418845493584066138544583939684756761788358600897907355727573777141689026271694913902819370227521185740355045204075746454251775330041287460466058199860361175888475405665167981859921107157460898429743987249126017590245138173034841254026798613390979428473237908818427679711156075509642203222723622412633165129462035739796650139628307048981638864995688403325548708556113201924299448819959990205021799920094921514158664407258580799197266283884792560843941026724997467413890044869620183235764900193926654269946785428803920270041229316840242773852582421997357389885731787460519291760211973680418874565526038682487620186153206884233032311029123140392082443942638589462245268704170532252036775561743019208759374081873500259342330962329260850878619671028656406563692253111993710252827535664053706983198636502347235118593407441103602379529465298847367692396399422325469217995512949600559149398516124800802955631113015720109580898069872712275241909149258950943947842230266529156813608099743053535931224858831111002174431724369275326750478771057162239588195278206822442525271208109398894787577065182411558922522759065754713608608109034389059475545630764200564070652950092261959544549836623200028144159953453957335220345504222688191172494852547332124623549656818067173434078769121053662358353635208155654009708674550294446384462231751870724220787105986533036187344124589798357050779795605744210023200074838602794251161335013666477457731813235622674035564368230387706253608606500808557347107169059775271471033129319684576364572011788024413055872900721765402738186730271871853462873465726956937417757198279839163407991590304915019110277424567938102288283632516610714382331613905199366306196181448616774903048793047111934071391660218144603698164597898672642254477610230028934957955764760376779256472398327555657618995768162170145669443947978968339237076770260411689708129340422288595557004621309760938851587331961700068261433287846732118255240209747964832021492571600114130399589107176838979817505061968549028406814976440233277353587826164429409397282333452868633057833401633062933202644611996161704413629256521816664054537481424135653430972435833285205953751661025020833778090022101148012313933301243860154814121614431080111421394186346146807762906657272970574359351092313640655668204797635307624973303423272037293951414084270968833060160668406695142303393171413119185400720671928288535503433456173527772238849268678919241045905252097752691506416088304328391333731551042618449925373535035853903440204051563893851384024952470786906009407348723924975692630858201886557798789232017391427069297980164371100542798205315729109408739545695833655680999692050462997358081359616049777418768038475844050925642668992792338813287016344920004968805513558177133979630732260925478769353590047565550437376619041992784922478309602925401288822849014570888832345121665229588509973182903108342723900467328964903936032326567385869056047178432346350468542401300861302665890745054571268744154201194009896029381331288435100546022228178268952782192512726076239110623899274650051697252621504500353708840956948188381185626667627845880822639578787661983600709826767789415585109705102462810225124161834017114023480742942904468900673323741505782836162036723644948599148229914716262762938808723658520904229556111585471564056198666363909666569078223942276810593253672202499936209812280991094590459012529730814380290138452782438174586889417340343265015119103942925861210722291903161182998001780473113957596073505085436147645199412274708323180414785805580506047634604286975736000635348924699530907702312234374101886553798626221105230505193975503989808858052751597383372633927324580893651596501038354903518486946561771105353877976950275133602287161710382028464970674216483971662646605632776000260211843545742245907163810246919625645266708745196702756057637762164495411450247456083528807856129332574513502437882598078438523505337303604413779957697852298747600805017991974355498401695313570777554287697515235759886752204405688832048546811424381219101891506570846142915267919051387974412709073442248554995797802156400748417314415904376525829399258398465921681966255283478464846950023608759355801032434638945677040657036620060539441821645537526992326842991334116145113214841922556539980972666212110276399582421661456970650305409430322394698979696982897357399418502943233843261814054806614805893688542770062568342806542020698267333079637391594776489317923339782230744804752565828377953612381402615659548540238358416034624592523344348742660906052951123059020064029839829042899684130779419532896341966085862362324025408201202548259643928970322633262153749999462713043123411163472048292207658278204016079419977794303115036780026576801127966697420196726816483341985808547119032355626294476038054146382120172393939523545587969416025010268882535940914040253393462561221526512929532865239440066555320989960503466897224560154910641096481476915712988328832464671168560591965077028499463815039938054995213867896044479211447642695467868901842464701596284374835582706520918682820932525231686992361516015530913676395801522486378974232545773364564609607926742905831792084697180687217298332303586242206000291886284674224494731407613793755710529940983264875398821080380937800372135082265850991043453738059613249824881601322536753274145634853375669714431779050445770707310051628583758701422650064793833129149690228276311090753014760304717415871784239666892266314742660833231938042510886050273604405555009522601264509800861543969263983383887541773470199808488674301949362973801904591424455355836434191026608125340062842719068739064289320059059559007239718618712443532136824093640170551175571417471091573470685313469914152317937399972753609703764120790516848877693409881098760897203723450222493721186685121708894326717758856883107808690349708994500791493050345395682246171113004275352916125442859209245908468026720738647272953406620082729088113153904693184034252722067480324437668421031370124210685787864419419333612756133736906006511348907801424430945764116024396557427731938927373923212316624666693820366569530734317349677171238987942648221332384141563367472704785744092030386883505386617952083716786336718519136580974548690957430370404720515752183578250584680350861521568938787253851846070210057115867942398479504233817292755344248804776923186644299239316822578250391543032297408338898659715414533568771390706072899556263366886845351790931750478176107345361784633447951092291317467241529973144590806658034594427036410813965596732494024398102450239091281280482629528851025292938263821804251285573611852263593209798170743243231073923907431771816872608107993898025214579683801020340413044302421940623439258462295501281633116832484192147354279151402438597219342244779631232635711715316836749624383174989912533168296169792495951796250124706110480730160478846554958777851358293104528259008894142813639350695953845323977159596544706249761338686091038154214570184581645160126761543866934149574343905443950028190187949687900971658322833625891588829470672374406542598205897853545028066298005073723278544500719093687201262972701253033752143396408245948259468876982466499932356163661173165273225715305406389974653160096046003488460383320319273572428587660336438544554844445056063878100759048701375495405693225238995686305767522021719890983310008617544002883466245007824253647722197981385261824633118152775317412527496229022900643354822525989099274878245703583968257024274251798361393137366375669190575002595663842398454892011934875827555212885759504452781506574268038984227736942468242620822987864278928097089084636737054479395034152337457673755194548163835357308892376617142617629592816768388483011507229502998150490830812305441774791780576603551788710217524342419955035572331185931503460362582808786113621262424866641740296701839602167893330423082594931640732163172918373499475229368371246560645655444899069363690905804500969046923514168822730780905763435417883991185324248629648690443015675334336350825882186039672147200525016188078033570794229619306658723052755447167496406725547184530820835240642983038410962471766897791456888745068581768494055366173887684468634248581535110736529109186412739956360042938083681612111315763430252732368648919311304898780080621460076657382503537373170102777834966112629400271614160298895221914413271079074397852121113493296300749171573440156897400824220097907407426027950727912233747997972046085939282768653308842218793746955988979475337726845272913277438893615077272729838579088906372808210565851034621955967816815004532976947425865867793080560714243515738557339281347995989821590028599713254171484581890866944120182727101173241697904824500840734698642096361888395456413040286608178897600903357233438428362803032912075275001946662947418243758098190223491768440415319718988037562302443734532682341584281793745525323704950730261103441160196306594065198692156970139660902714590388648872397257279746658339655565460288547044259372989562082575277834431473107667733033385289258569666475299671316766895214552067138528386684074435431433867610978173702885125063170247866035760097123017727979147685896459299458773952933528236924143287992779077745456666267300444881169495551234034885728292522271898419368366964342561679945158474275326353780272812813437359349743628422294071623249901782364167510634496643840731833989001666137514102491277906971384300793882621126526343483917420997892931428210187499232207377163640989181768584271933714614231523216003876336526091057613066021350478372726938840195396345421255718560651007873498034576296008876450503513247496243266239368525318984361082087948325121608702043846192920933608019027179041260694946344366223050265687112011214006675262945370504308894047453737457103732622128753055714847300371398171280532257594164139713841793164136788894482113849748568814361199031043378951674108556556831376384790034338354068700567343719559749092512610667142487972018418356041072568419802332863906647422975344882282318570392681975241601479237832856671968036929432682133361242530829897847925667590678857448315739957264707931965448079670290659074085935857552396107118879149260294818199058996466955187908094300895492842442446315514603511925139523810686741133722475655220338033480576543216074958138270628105238195998756770159562708666022649326180465626682211258881062850419405836354277087301541557345893669731785817178862745318531625579966024855433239872785585275742034236899753190740314286011731918189459230035767597985550645892225907408538494296546291601344251594534088719457612956667273938076570663490805730760003843172469982571003017393641883263333080061185719483545214854679090291114110339980560415556876518672142334281541135133852528120576594390054091625828840878952459619752029252842125476366233057800391956142350929465401613607032906963603007112356464014767409353115864159462858078797236547890764785585420025081115226544158253119565848464541869578091275756944728977928963306837505512348767665703340110015981119384752890742858375909838453593919622252477016537439179973773306509255295671021810553173502248450625222484243349793946999326165850142672289543763817957980554241021251248717760757903197173245455112401082516583128495858516954842927654197985715152857195556678599326810977210119563686911602278125937850831913187542491798630806556204680673521861915059917054294990793112147417644417058618382881409799485567656001490920992094331023614734687547627741409928993937013825985991585449593553688032036207846906859229409609402473440860211678849772111378840457021291058092634025280359066876295244768295914011868060529522639228669545957981891418247411925809774111090697608334662710268395354514511139405723930842038689592878933853647204552980838712883707096086258662155013228207546963209627400538825975000319441454116666864012967301978504982048285371040032256406570118596060126625481721896541511170708996335111541876016644505228842184828830587246238207024573287841889693319143377985562629772328725616854423140674092067021311297325221585527957663551788980727479649243561106855642384667052709081861939240518892962811492650155865400930049843817618081468053139642548356568222588000219997491626692574001355465315532709176194377623462278249561595327917283383505865235752457163805466377831395142988250196878842177439394232424974648337400251947339484315284409363070727629403876728491304697239110183435967599476050112625779105676970629353016835113479252527404828192005670443168682527843409871291446339513123872004510566882159251479422961063784118456350780256230407817753942835831900962933338887726391174730468685815650070732199304986667330103206258701616411826897881628153413646333489258076501219734580005997420823849413433921196727345508678563233917665889408924829174073124066489301790284991729047944011386492653820041927981004206977360102396130628518017984452217143733875870232727379162098349634779775203684847099529754490681458263719850487815215213025396076336869315221763728986580650455791530863138909647744360246844152776103468818037026947539243915938021777151451455922752051269166144043550219905405388475144757719952666399870069373078108409994720047787588645041777464818287588500118392676241643092009326569377324004748667812829008304757731584096760850536618207510098009523162572948179112110879184422659883386101401241895135477290145589721192727651514296908440854679369312404602150506903777542516671623158111363368635477499147741427759222450566146213174015994325392168106487686653311186591506345012272779832166915289236807462814076924187406675339513322782472494911145135943794495367323418689074172413360118557640449095847989905405375708743646525303904128526001545699082334006080187398262188390741797208927795250651986264985822598440681686464734311643986915468696828872310208852506117094487957946777703255478179983198242034878137813280435663848644868433973838495057338737540991947477809288611775669391629692397797910790121180147415037217068381089053505482651074642643111602422862269637170322679807943084520377570333595277118595598948602825576024967159057447110801679121347469602444106884445130651418158770232450498291249065840999869655517665732763422442846867865726088317898390630270576645912037801167737459478319868175640926930151654170777752525676264891658641332359379076910779776591363953809044233243029052598354487837457581770558941729500060395649248376332520591233776904165760517120078972475209524402146543961114861918531440788622107859538460649854175795740625610418161834748981638163496541040215626234525223154337201480041854916625916579920780411256460372320664183309375357090223658254961165129278100423506870670994417760425956379334498139826267095193711785515057695027020798178176648788671777006397503216287929638281395935075773471488846016598810178804436595674067261582007361270170061328713409724160477866281805095433862207326971391050955097227375901967576131015459443057798678736673148477101713635485931297464080577153452328718730067822638425112654493185789483449546558055397948413867213257317571300356121293814454294073157949243093254812982210958786825275051167405095591807166954057641742994646737649948076702453722409372958660147725478779949403435349443428598455417964735758912707389261200054055835770750261434873244315179303977404266968803207432447797789912405978660492848080623435406056133710078162040919895893978689800606046371238607177706281557723192476952213692041130578621245895497331601572109244992509703889165654846798219982975808190904976627875909733390172301774744026548472105035195469053027261296864127963781659093562580509036855256692702758023090655926410768033985475414851051424614725462504369864353338612438710953916073301177361701922129659561049326816543541301293266358107419071384491008157212342192087063893218101827878206152255503182497113712241004649713540598402907675086419541941092283221665182069719212545688080450199372919180056121771522185253478834110603853106295650696695738059874884961254823314630072823412152084057587696273056494793070538786036077393530368977100741703845498961689628876971822185425566329110826318667896662290992096790053656480883257454267758245017187908144602512296764002606940662074090666395367619074456620179320984953543758929186132056711413315485284950829514541402316500259921725112261679721911265193791696664415188867431253512571044503135657638720651571317408937542582782307621371998768333165414242891439319483963561995749857687228648847036243517714918303070928049996401186938733027303869178468431231987046031210631212653267665998356109395304763622765420622082697550136809292472763679288414061469448567970788633016119289654433602070514727291437200228852966030398199872471996524013861802724261143490592838959613810210980645514613183200879699297911975228656878381942963608782524810333084677848050794548328521927863434867720471915344354290211178962045454710707649994978197330880182613367515871615115801414249238186390467471410715501030855625014468072384824220890180690901641393960331441556826153741801809319381490067893540278433474882066003997964754344792587385586618923637917053580749384012929995265861434299747381742438476508389373420766381483610355336487337726208839106383097651939546277357743660709527632605696485575520798574187263761102868441131217914286519696663343012912934952408105659968379341264593117575330082622301738905948809378920899695354618742947105276968669237994703046373139710568411643004530168033615262422821393227038794299357327197619805847751605186374121440332935703741524057996058039285037603874683130093770716081148479355787578952176669805876038472297074691453490385540186363519689887196368797348919724031041160369988405716258738189900783812364799050352747108549489757697656362332168738147867207437454763885737524061601490887531048230582160379224430404846622547941452885570953502902328993327858014863450064544304616254192416267627855434726521503404814399342056584285092114790099151780380444570349001756723096942795164855824599485103581151755877286830236543009855859603263021397592835482276581699251870396883019298204519498558306712092787512200256742288302711434875554454655077292096352402514335774110429824954691468046008678500324454529318424525500667677020384251025675410615110214491399300587412058740060004857942216890853146017574415481630604044834535389357106825300032512025716110620951610286215825599397864694853517736699262285171441598308002130665889168086736365572147670388968729712619331527823863108323328642502728835217371186925846788440190174560667604032299059618636818449457278157616471771346678654250485973140509021808909574766905286482213318186096898677845522179678284406352309085574981430172045434712224586943296126651299085639835357196530539065165244940155733212820919688503172376845918477979364289894615037369474522283069494072176698138523792143994268262621590562935458181235212974039866670127267506801450907780494348485356115219896390512062976485518665069258789626381151185459282138298137139507497983860026515749074499013753383567041293119564106354496381003019388443688948962348316510434647158705344744827606233666180224533455289004562863651547768868042190023797345774203072606297285524607314687248316945396902947201461777001301271984445169176460319228784300123557430963501113370517832197814124826788223447096409286766180623102238630948214470901344363311339502452147752320182774325668808088735940844328242057924883008551590675252296042101069623383849064281385396767516175987818825017829663373779311318901390146855368230881392330662339308340118356760776283298477717720900690198740960805464704002110924411172381506322043082575333844913945881022343745810812161854766845446807234024668844384226599572170540789413186785930252637207577217021917097233809015308635475286414667705733490336180982592419588953117912631850032368306690638374533967624110827090730472726872865847035345654169987699982264167754431384647439296224570201237196130760024435000873841694336365827900218951044903716754369071165370923357678350581828376137224157032098862439043003565327961443532576077576517871594168018426594750049639765493142531401355751117642629392369098141828017640266780451379361633302826924310609069662291564596669196532462971131962806534380415392101473207003452972213669256400255550131114201770831712747310760832918152651852931069028164641194973481301730139216285254016140833662699535758165607785463948872655075114544697821231840131837730023873103972324549655365636122253068577741923753638503734712159454216783824392742646717317172245099541627476643436913585165732813341371709628413457260884125623547838483826191500148550374191581518111383769260245460814626194443834827605179710595137202174810685766162981077065620043320609365439502902235056280447755536863721398791173482912957647769609205103758425208278473923054406211981704673294241865129495451703866735308555319136399463685825917067023730981228538549386363803575979738463199475707961032704485530981065078665209513481699570088235035794286461110705018126839976433278316211739220409717703294792797377730937910153276292119673371950399737920159498390589788679315523703181537761896781307904180471057862558640090105415368779730784533768188558733594127905516055163194137475281054549929411146413138437903181670103117389774895653689469503575779631083039265040677469012233169303359441743261589700425490150655546522026791820190823661754746031601021721714009006005059969836207429234929463103863034093502008365520231739769773108734100759896098073745645451028352603349828955187347098813000073100632700250450499119688683350461236864234437973017552033319251181081919525000970415990123098144377858332718211374633927762346633020353939928148034706778165824636013275764348612474945953836326320509304470494963579875398741971060857082599678199276821901846416373723364827767292020233198743855509126086684600580628185781681326396052193318182158814049630307675974637242752108745321062100299957591912025099524130562800685803405743735143197737857348513140439494315314270029748872209861478483930360827000476365946000184407525772768165418178093595696832118364177871086431699787515473164805071870178685897393659467255737181699712811309854957513578581640363668779763046600588484913331594239678013565963884219874198909170980704604021513586441831784146945437738483795732585698108711846386690788929652216176039659006260550218697699670934945329629635998699610548882134450312344787849501484258639298664953437997257017365933247484574683452664119158839550184940371689643973565422159083106643780448021765778941498632879801845149359806715835007470621071762596594441576261977444354316490373281004990184055685057941465058451736224961879777102783959184361572252694175380503274601286282220165685244281548269934138440462085487435116917856153880501507276246329970146173094142080944774744262578141793456477528581368617002985041251627699133930204556469604488228887494400115608428798229795070120608507305388326573630655770721075965855857045471946481283454483034463401885192158146498744731522469632411155516874555815710918716603505001734915579368658758666953915564329001366000421730747198211783376929988176448719813919640708883819606521721507567730941155044489205253325145135574204972206269720790021428469819319791545320306188142132685746834352083834682405821205563896211988196104995146669610152779237047938607065105714599732341734452574598351798568717705600680648092055708638790835177462723445839661567904527978795451692532669919720258644377854232360999309037090899107426750415034910869469554399531976194462030286891183706366320092644789233249551815454923314140115191649917040899385658299281521215757316601244744772669298608374150159886886279277877987911309000214467848540716159496137673722123054685785020873836854233826049544460841879705523672968118175303638813009939178051365168426259577647179376246355822884423642866983092224680031976409177595634333120752476460890045726981151968508300766326595007084361081137946365505436211292802144050549902393327347118665898204867934498025934231783081826420554583284281817353578371329724072668579119538089076678912440918391225163221163994969710361724536293462365358304068862231921428460501754928424316345743057589174559082992337356390942603344273210382800465389052988821718017806038830622043521619754895571635867021216337285002035711324176710248227184391435665430720825411034761174566119457191010385694755680723216563912187044982527407451338888434410376777173466470394317067097984776752668516797139187069528152950560383056788340592400591344731698467794340083471442861514242994849574480778406727630341063683177400086624487400573411999063653285802372474120609446060712973187221012817510099917876327253409741223189450648733462010632992852380451372371310940167715129216517619291970140304826811230639432686301395879174883420325136579493387523047034965072127381457982187954414632393993572853807399837775966513072100337527481406875713125085558582219487360760418369767406836258292319909705433532958511410753164018332343635787807102665931310038159876555368582329915258241313566203412801634350370134981342659032874078730465163091282690129908691666097109156928194034242290851493653367236170844545506161337662005482711402467189521699850303991403979532557204275980902390916390015140688247194897713586096287811795667930431305682749647426514733296029877583964717732205068820693689248136656412825993107029478822897669939214682247808342483342729647600512886253612112080522037663085157202924276409100013524708058235633016446245984638116325461822126889457823426926511935504101948047919172255382536661343434768043270061770991680260782434611284119212050315319011165535971003520143625876784463136104885400871031113324170997777066717409572314215242731636919479381038499423944395774934777571836489023526913838092161688069787790386995913704673541664055065281731701118369990576732875451919581005323382956134456949131719444119890498212902514365530076488335174702598195634570500010159767462286587430463939602770203965447000262644991351801285019268337100972225777726241833069583698254356546713770803375803160673575994344474913508296976828918087943146373319036351215376264108277758309976620678180498488032610108611450831915205452435782628247369479617734286546950277649778800864956243586733072266916977363782928378785828573603464974572275040316945504632769477565465044982521157200348085956980357213671363781434045657210818853302140441823777883601894772072073789272559979822322898144419832141848590586377539114496538099707402714259370476322325878199568108121443334064148584553862429137769806348210076472449872180287991840960142670586005348998345018652144476257462585384582656698551253256916360497466843535986498510970886917532142561403801688237204391473364827784096028768688800728552942921547092442313785161567331991923025266200735420793428552504514163819772497955142898702748807182334983631786523633312845048202692425665355277395761168225826417307352891275389063723290016820879518692488719252049147357107008610400480355544198772748737510775868426737048395656250854142402825830043132541609559297273008917170906317548060408036746223827273256380191521892774493336087603395665926414519326311731571450889797627379713096121533501180627193126004100227692525476014741471947344695688482987891459640225309748440239297081884012507852907210114146173950267765065764195871519273713798760622183396427295017798756716047922900329283102577787711007177486840063015436991718231108307609311529205887718267253825694357250950344918092286060412030502539252967669990423858879320401571187993934812038762324445879785345741982809328061019219530686082094685641150487770273005429645835503599829963572392397543013128816189600037329909293044819599218254710322213430271654032773389170749469662280916715257170457515394136806384136743851743018924340194867589154502522082625740238256338113837690729752417561063975057874920020400500655892710839127962229775140083597575512433898115718261563691264343486865156021201421373307520693261360804715700059202702330860455954098796611400092193500155859010965939859179518381540564649474418414283342984045857379997834659045280895118813750433476870509665902680540163257561548732678378319531473891775078160976098015821669602694370030930032715822054113772542892116684666321731402884792170897118869320779754724811340576551760881963946625322601664253079204836056805985029989624629021372345041542252643712181076142436270644668801026791292673683728679375254889175745562486590254449994704275918432084301720408475334598148852034925233551070985035152146859793053233339154492385320932029665711764161213268472902872562308089480739747320232222036820029211174476942661256970041214455551862569646212402652471264636452339441874948910804895720256750103861817609756766882486219671357593232457505275931978942051972691642495019775039355977683511720947851915838631563251395467651558544570637482595972375921098659673872016567847322930396981093218117165143297254539627328721864241705203146418091867182693705439448078320911730938190595983997181765198237029133340072402783136921868361452353419471612833919285663398435266414609031467120042023831211705287809322640888989226865262391206415173236151907660260260499656168600610761500514353831302019392227799008904796819276379731556528143580962870506358761442891382000214751888860407246476569589600509541427807423101235954215761454550076963599832831745216370500464275649222246495012550310358226559791114229271511073323380495622138039540175625081866965014050613321518315077991378124146771609683264384236480629703648474275830371609591544320194665663403417233015774760901847107982672482338737050152699554673941705383948536917363680236602108067623818731818467896117669182863035223146989590596986175796011798171897392404331483065450231450713614466078204310070130586606683362084594496400690718096118591367354479921476434394715884151923935916830384236829106524380048658930669278578920423864825688456358003595671972525172283491686712315013183242747289935743916915359391697453872387845037569314603749570967136016228680494829538366117953256835782489196247846191444168616415207119907622708034298235201009292794451052616420789284223978458928229901328078825824831044935919401540278328966190869373249567085478627662078022361973039455885066306331488660815469852347032715107439734556147045955964248298892931657016664083734573239892294475342599453593214380104389322262055980447834577756536471858117201704260591089461381401324163665511983622160645649689813447818803307452689822932057262121826626464575445877000986229581379827953570899454359618303920109100771662278088884452856381911421894641891831679167180751492860723372133117148616836884393544995039814429401415268950346506807799873581043290457847169727588617478210112258387315043149717140736741608893123668750983428727972826392552112639399590502611827472960553507030317923334922126222075555489603670000566938382766071158814728742578609718881395680565686554214344208115182330077119018646813181292946263552697957809650787291512853159307981397498205153454384826555486894704412709630693520781398401951408568527629555003085053246370081524490217583240084885287565272440147598220626988209296676121726194012680778278978722466873542669926593918391544066811449914609969655024292159729017292962623416647653647471581835214946163432781844386131570549237482933650686774167603942156610074422593944079173591085856864790666068915808265026659616418083593742345581684023949693350390262137986716426925912339341057436208172862935335177911083959777665224504682875529490450140691389861162109693352389327187908109318136236790318576747035466998003184833153910820579395440936245929917515406898566453255403050174012572217611751841922665201971769236127615544483851562793521185550148111094060825218003116724646111833893346944888087021776313381089843038286878816086618745437186273553902258516493477192854776422029267105368567591969035089110152100813508208538499565740615379615196318225985217912180243375546704236593321595301458150435594403907374694443775205540865772960032568982351805653999417151295103822655656542024812426082651828097573599061423723043018720555533793115802328604523064064950210585295234554292095671307619088354614392147321864342086776376795763997683941104988328405779047169193798524666509501290159371610005331421493117736203574142291726421687306721537141436183723603067105733114461222044386310732708606095383727973195893764941280520351654403969808152180627597004308391132075759186551029451477783696049448629688089227788384893837466582098179877154673596659940575920514258270936448025220174279280347253661571195789307691410211414167555417590475151898062986984944544769359677640370403413778715818078177290615419597523532511922833919761515447042536533129135098281962218694200003594567889975984849759878097062885085105146184075762592882794027105526849389114418910626022164767663736043507548613839734324516664043018220321817498641452869573567077669340052230610656588368868587103769907905254899129137252997311684603096417741650241909650385889473980617837390200415238159614780108922082355444150969817157155875910402089260406816701819466862470241860189284888571493943161843060165810015805444023240936059480435158325867666138824486847471339255982730134396539739509352555510715629142828145135563682559890390226000910982179774751298455339866648103337867962115371515941263101316327752447982316242034038200034676710343566665078368452277478155001241538642426010317260663896170218598716213681853348506670947408419341412964924046630931828119812152368456860211662486668832507449401641762246138691733449523701247313020924147330557053157168554238819606217141356491924369630499460228836927119379429761102915573671800774017917895217290423307301632653027706808238988113238054219926886412852753823228423271567432862020793904807372161953706737475197503157677434081751751991472044326075473865700201253266557559622104154691772449150675175837824934952263992393192607929093306165904076904326092829319151256728270289423406953547517717486738201094796966577423828672425005243289475413619543435084226299697166764490603530331467344649913967865648010814783719992137906122782120150884776112736967833175313676907167170622795701456933179628722562171614668291767461972157251071352651715873096794297315056729254208972860410205964432085309214928746647726522579602479901650891254246254619613679293387818753664848964949534272103761108735952496696846920703540780992851632114877186844327393782904940651191363335021478468786010570010962298231379449626574448028866838978915690603403426509710295609869863389788841710104576328697856767344198240890186216038845820170990556613119238240864188016973671735227185412469211961978178427406897905259417569695589424150192381377919402380882613894647296804407499505481784394961237102463287162427179387486708261964786219654508588610831334992034570857500777772085196029885317300604955624089195750349066807470249888602929852162425463570271480793375213508447353521595013742584385237152327829889936605189046660335215000282836557891628469181028529713808470679037438566476171273394589426647123554495589710548520051875353780618995307448431129012848788329935448622566067710296377387556003979261492012768362166389062292477321837277309083216794546664657630956700522275526236610294629963040567420011653342726587357240326899167809648651991700680331755275596548403813510210788067898648245626328013611753782822188395793150170843847707436217474666387269270613207045563794826181551455568327141410190833952669368154830936128192115580299712768062423031549325049958220749420008392940748077047305262729683403492911505662707068162306449613545887670120009076926315393723885967026385665149687429660513041079352741468357764729498985024186145997515476504707088731959396548945638396558458794118171053204293725630819943285168640281148792468144323637466166160237329879491825977861836753982515232130797480955575018289950621521538593528448591049072483983234813969167095918450450180192696127492740803266285692150251076596447920903664068073049740091312846092441039515624908786650418133724444363235048093976721532623575208973325687841403229418583755402151333198949488873913380396566389322186556648737193861061594765475871426395431557522477852164807293896714248028769406765586239897870382381622763479154732237278411646058684994884446641408387875057718200347645767626539168064604457617055963703827030719147894190796329113453683106523796061194904627616714960535750293575455092594503959871466972644161654238861174250433398507299907893126999558972528870340564524803572056036989974240759139173287620081726991436758218625043281383579612917427287803859861643472360358731478067104254705918344858441404328552151862983785231619206068882276681883533983437409415758293328397560908445191012391485964576002819598880100039701510994330738418647756704381477034645202740440747673662047811257698564904100166701170219849141620035236174878057239345238061526133437014107327427956448264875650408545441613599975143861566131672924320730956979884389523402836299346049152561909501883509642307384624636055450084036652075118547056111812016335472326304781526342117881060763916171563897675312572906909798039414570787044598930627224878729879376421204813804740624776015112267687377039136259650976697801858345744077906554647820628616949176960560829647765723888387919886028703223704414149098886576582631805285377752611265125846933962714100589676633552302112655458196271060763347204781499429352743883072361241129930190869324631137602319226972749935153460845257294276570346387479895600726602269382944253492940514013139997238506872399982024834562978577594855009285844573039999358907301525743995329663288956783990680737526865049285591977419323702239107437491435107260520478291950134859783162801709931561837964819239964447298998926736257802213941769752711898430425665583785702577521114466456335982144636725741982111441476900194066117848170081368958219008198847996081640794783065549794967987806327808956156669480333738301655077945799722010309789149316759272904278906683964867679552380193137249430362345131126080168197908831295076501648832929930627588298594258150173924479005607828793587737399769684592230988906331289023539980219362285475640518317266763726195769586849616541644698543470018392155811803231644485296817758143709266936781166150181363131530998403529405075705187336871318444903335617957920314754462724879976713810905986735168441275351080081386949487399566424869920087698989002353705100954835350224517264141377427721192731129297602670905119755415052584906630709268976894291407562338995815509650062496121994978666509972085988434234883059204518532929943251297845093819156481856262376262595384017928893740922565165536791963665556561514107137276446180701295176092692173472504884677003466266189649860569012892689929520699373560347889770184480531873792712651091758585655457559781020809155467637852562829912656543876812948720348484827587294571188526031032322785548496156991181396711801725907079697227395411798943154776908390342772294186716801495431800102248090494179407408306884747219202650586479568755856583146389185997179047268905243253415529607468281793044220864711697298360325686192993526119664848294466103498546884515127177243344951242946519282555533672121179197149266771445328233015480279188677026110160621009725199075573764587757905175458053028451375728227988804779841905639111409416628948881718509270148080209430025667981531461623623388895884402579198125316708656372115665254327773545456366565291409160005620683954115547997006800427227203385491121646043085715944124783790972842580303147087056891580575249827949241518661239142256174143152292457296584661165611019172649850259252865579259175506452857117840390103543395392463736201943340259975916679276473840285707879304619992723539270686504144387750462831036119315186264126543056458342619898845779541778672808571730696718707108361271223926357071820783397455552282314825064530117297968418094060381205559290858959621632702903709305166715896757178881963605628773000379077858117939200751898150675626262870435143936844307845580820619117007438770257897486954640100735615406747417858372684075291505591025525819570286274043731660068880035982444449776556426632714624073709006435508480747996151765814143645522308614279539389501580497170523021737408966623117084374554478239341523619534708365175477185605773052874652358569245977618734761394323651345179741943338588409700499776270809392001814297925405107284238735873629141601474733601412691589858383117769142816803659791423413607445358846826978937841248769105647684526382568291114120378779460068153866369275555469134283814347137681182280288299871329510222497317173638624965195505335515597505016775153075569737045431125223281196543915014826526397967528675247448404303772325249361468466440383755748054932543487380577630650145573063413799650392294190564365729569565599869893175999398378390297026950564665710790061935951483583230874401570169638178898105927604754039392564233528424038223241183151592339437286097857994523734015003998769059425393147803569870720261890286354161616714003105765536936285260856002381114773522282399455875753302429058653005866258729428286940764132443516196014641578558975907875291651004531292871825148546968777261015483543545983903699394050688158237881335808372478263844311216435117719485978142565039170919855626202976771844295955938547385133413274036316491745090137643011932712148979025662867394005974421220141893195597821143053479499979229696667787187565688510463515672719976425628827429367313392933389261950636315892248009541477372692027498569956429238936362186218492948243855220141735755933706862883169076800212988304730001121374332768263204784012377438709076369689601763827472214273813566728101204862961884141051223702829161740751781969970338990468073957983210285670605156935214799013806987195790404252993088870206428488051682141010918443664547169676364384129678004062380730630608857960901319545472825298634317122673849811823943766293414638906130538119989408494230852769997182294837913732081019592051125287366197899861025070438664246011645172119640846956164568539215047444733152919580919338377290681934811803824938941507751893579879947748474585335795512867524142872655286205244646275581851778331220029869672926662078160983726984691162046207084248955977475530664951875290994964248209459290632534987779011530120518741797650998545402218187874653726154648202198290002540350330025693266470028543284565529221763447746941216624953144007632282638509469758583289192196515820453846784791525394654884898634667580002828578667272188125225140348711791986596690368600513128378128270221938291987796177319502561649574374018010965667984704425434601228390956575132246321995739548422469801346240608392103365135163235240204584504602679264125857546826835209129015522004713254118068450278482578674066425025203815993044414168663107604199220483175696594154238865130311667890475752450824084262786064008183182209660907334514037035758396170602204034223366412649401852231918983881890974291125170504400354348347184050602866239810733562047966847166920174116668124675654649116770363498716077205219650068146670298581170530886492662229853888301082039293736459672465248721231383905857042626331606073454488167586852237016304520323310413299497776491480560375885675844061081437216797893052712080568033464747349312039469952238313598890833955859997260482793655778066417704558735702173436249041681138650698322489552099894617360843096267680126537257833603928476187403404636239747274065433818025824909711608557255729560747840284734479078367514399108445824951118937646346849513993790390272710544797315820579469739366832045677270267917280119469731735735603794303740485154543687014538949247114801437682343324810289604231508919050334383704855051575987162546096620183548407329135434496518918560406257963491750823045371656452559648760885273844956366143336871679802817452285711717117850918933260570927877056603851155967216792928170167266047838541696386236440362945155771283953463610892805538000155611909093526044278702514145782113440780909129082319288879212274902847716258828076104268785599857962510505794927536913729857485668183223807179386156653992271722310435006360667803453866140618186324569153357171140278469158263533916620088768695013557298547340257272825898188377805092264602437376315343780312200834120222794991343494392434669717216494156372771462458787088150796640443428201565410202666452777920917030876252762371312535671014826351173960196089867678685488774090696445379621620580027583445410540806468428959421744568980287979658683154325092168079704994864864631120678990701233224544939421633941433655769094815900007510836415601690640099811989942490412084979830218839283180689628380136222736305498552232946569997865478520432027318796989889174036767135588401759275933495714431195750658349232452045294316947856647517012883923389206726776768058408050899422300258390400037866962400021729579068524069100855450538244979478754509704367408629528477503277179600188234194692039929014213676849053514328824251056599606006519014873370948539103918381432601628623115304829574876842341264809344595248468187677824945510911203203550512538088157508916544620467706239393386810527061566575873211320113327012179528847295539073875225960774033200357086074864277083144723730364807358072171454414400394101357135848036382449916457072361197873161048430525239124298219953885476123582385634241378722050360509393755791670710534443581477261580981191266376292868788594000721108873233886923554085069545872049728554766373505784150520098906667002322974955909614213348010827013858875831951255053072257181406576106413185756623995087808475536690023399786246028142007456371894468308273602378687855554630406730963916401323213541119679423473408582846448863732091754062621883647146714230196905199935921399647959669231920669006204250999260950206779954376725653849107736038981145471906320508262062268580020795863058368068943747630634092837151184127670527036124360917260404941054910131883265159712283594118135353658145484029439586304568903077192642653471527537307960531087689121034919301899444172110362703791536246901804481326991261349090870018173038958780991746266218065837211437923461791603612175284322034800442795522158260812427613694932576950508723378367112044684720042988241989205794054125560779520174627266588730759106746039021048850412872220310455559973343257996244933777298975246920017848375836751703981018128938924047737844499185470702220958250686270470531135328978400510493688089587199539667638623583146688156776030364779235458016127156454535402785011842380491393307968319492151740290465094853577382293543645428393977776748551971078565441073230783585773516855797206898352993754854898661198544373218527753186640256895198806484795769208903343867051951540946596968829267378542785021583109299783852238422570006082665049577773112106694074854136711498132659897078709253394147018008459084575192586911572335866277919238428289912816854695892610868811052260716954130640601006078800315590120098149321079046891127790892013906715079801957032172254693717984457635284712026568892295039622089109420133248432416840061880462679597339948901978531403011366755898591448897109630436614641912619487156410843947109187341973923267296483044336175953486335216044117775182110906248291739726896635741284894924027645432747143296707848343897750929094568417447412010212838634980264359338239666960518897437648741304092628975095755263304002022889110439998062305309470983757420547646834659327111695435476627281342480855618816630947269547621282231573052726280986565690110820569913661928452607955797793115115363690647430794232156017070185114249329395262501306924647199587215234906371916872185775027324498579931468720810955127791636403365337475704485591529805054824262174050793492441732336657261258377593918642164536199406419675988834205005459542133890720486506707654663530972947657979453074495935647711257551775190705148352720351598688759486185968571019653812566373482164378076780607402467539508916170730827600413636256313833808397213243028321032079465031662984779318318397839934332103309408839536779989241723302044009739614727039090404780146640933124012860630239217569285611416132867523639925803754539255279969226826342548583980465885496991434320337202795223769760543503732548138510613785169323930417366374156751700740866555001944962065889134950631778158003632581348076092824708474804656691862252707557838414949446799511393194075121102009447712702725481303926795825226403733483930541364929000172295084420556951728921028291954792446374732821375330762809531071134876242474224786187204549255459772963935541748897446361555227442180963002849969982543250413863499514132505877952072956925156198024676422787466216068539873922121811436514488252854087163751445257927935811717904958166690049215261569117977778643913806689174688325620294653347156868956929698228905925798833493900444113743247883718402304138430901018285061160437457384813082996724554344056777895183310534187940426831560079965518844763094082363218407443918275600476200724425503287633423997037682902544077215460453280105125739383826411281887698671937582208733861778902555410464136509870733830038502089659783097973991517339183109807602320657410645361322061638248856715688735982166180997561487191667788806558460907489080222776407284162810917200647386875686173120535106241555938263433981960143136903952280450763054937110006585447044597839338179643106138653736309317350105288191249705492050239585081816189754099094992686875025492746006598459093313634434104753621296183329012324395959439188063612719262934698723293535263991445175481455989598883851707567851692304264798542916935437179032681768772806417753768279203852435307243660693663854733642920010168828363065015144606456524431754892485780887677784025123102866858858733710717886752635184993858708862262990423914604332018657132907317670075062690864987468653894846602935845780819363522920716189476032104374058997834625250784001178159632359160328226287482346457749748437793086959269422198891137222144780475893458718552250377798863628497875773011881412435909567829320767343872402585888544829789397155567482494234390328845546408652098572343411071911586268765035205809740827796148069257697688838666140541677394844655776753420299123031181600770145761534761305691800086820923184682478602513326774914298874976708378379379205081627445215057190430945223893530201786441076006340475279457082156212900304725251126778614826273366432671935601378311542135551442498981864713494184784837822085860362723658376347461331151053855110915278252126301238830541786404935264475983252941523830057879480848507561590188046429673640563769300850603684834793127636736191796568193475358726534593988145367945958079600339273984911213555362060560483944890205311076295276647688604098793842777937613837933459778602885714363282032362976848240200484339700050179340917499517817832020147985012264286654843986433159186815577584144756615353566363211034314149846271926994424718558754059346672855713314920762165789576389148184865016141166696267347122342900455233451617081691402349498204830304050914623650529811706325947253645211255026872962152513237965373849972906637174197512866557081067937466731646685310315720287792600626221278948414414943924449478703357645038682077394710735076667020716538595195340938143448415773221217392929166341405113445747667989970107929567442045731490188442277026654347281240732633080874465496061102156952663146698768047022902558500117123629114112163761046854238687957386385066734221023351398137272323090405606226931311464917779986986724739674125697970184646670846043305501536126966234631296630271663175636367646072187437531380749846784476284013852598690146857707407387084342263741494007196312151311996340461206177272311776470434529554071631483202306166768587686920038023608072708936186042473422662213003264701995504468958567883015869246111499866010533843887522759321285935483716641168187627953056790153815903040552971346578396046844794395570778377340297860795210271881769309224532246167390286959547285483456018625286479889035748771806514660428885355073824181713705844048137901719570631535197995523682968645774666580534888920259810951474338413938884003618023916934999052736117724762503367776351926091007420339085598507707064230998968619963339548349189032987212087733529038992952784839374730789737660374336296931501206099961433197056559232753518556911637407668612197627812080013411028329879832895448117717466368182399597767023417127431702073582137694291131746627100531404717886820225211871136971817287744164776504256298982899228658571165893331619313752412520342221579108750998459985541647897107831931155212037534547490908777910895154273890175511678942612941835625897513215665328934825279769201290132048452128557675592534066937035430004843978818437068774334467592537312128114386579493934163581361909696760403655217493600753783801076624851872985269290403093931241123233026366136808919150306969677065909375287282289454156409039679115846013319214368120465562509193210612525124578067550400995895272197999073994331636072760151868177295702252932881434034442268681262820169466329611498929281359500187216470641931519642827502332314618903385557207239933672488793079896388172925381258073723057363814116939389420027675576420926633318076823786381870134686566075326047743063628441950544949794672561376452231609631850645706476376296523391807994960983893129925573110342673298816475914607189874674721024414809438539677357855547744464457253822315064475488183372827908104349895333996429267755729595857924004290295649282593522146732732326567918920617650335250788366262365669056844336769942938618487550405301472054294773382656539290582350467901418915564454685391509608679975104315346403523327815203650179672377762114271041981638527629006669305366949034967017530391092712505821413654012571807753841591634117467830751885038384330596707010992618251945626727058023277611822925235609935369239478535118800133919659931949753254012002992113673908292859565908594677576646262467997582880759219088243061056829197245315293243452208470410742867656709149791413201303018967380569129539005273230253457627922508787583723843171522584674770729814147256999195355000417106577693443880234523192591668766022983118306306065919792857606539933091512966758801304212997034440862250356229395458424009509273963437978462576493258118774967925925636044047493836678979686745467579861977185068843852490339209889743906594567100196376227524470952639245275116584642049804602371930770535869546638604359849860556658310659723445488699257721399061860088155210931021674460526124718020185320289694272577710320074993573522829873821803956161737915563744511262430975869670282556438149123757200026991041266431925222571326099772147226808567074717722538102873902396291109286612462129276180173787828053610833050115273702532186952805143838272983397396329080743279029373986186667303210080207638473792870002570168197052609381695428748595849591793987068290402835600770260533918108350099602984994032885748463885103511565355125272621739757867225975602240835149726385701940946187042192274544740442119857772987194368790660576732075932764894244981862811538021573290010783995966466193392510370656815722407070574064462280092029643264834036041048833502647662955191701644140600435899845657990034441592328325970324100928212251341081491834756451819669706548495979031998739778490431658917137260890060201265363285916712645822605674865915838512533788322751901933325821666425612510882609855455289485832836158436091301165557075638358523201371299464263001768178691503333497357920706734826720729711544118687604409275011495450786422218049508072072743287748915992836926012472437251122873248557714945601867659826165171187705110784522908442665378780457590969745900595286652790309685246813788721128242532284571823510658000261041243590550404338114768314296625314214055153568673960499390003167994977485782793012897106451690469799776114150209694670119988949828497595665325466380460082358718206182755686001185254980901477026477313875337651502914555939546244537163532090500000532782034105938484069661760173685862615077049467638559134918173676916025900973597847024769730176504851723615499814962308876330840383233856925281266272266746938257535427839502786602851388898382031065364706199759818962244032178923937548440101390123989197659892784270594156926729684284390853633514362018156618926197187185926339864579951033485688660730213119376390116687272212028959846717900578305656506167399172996384646378122147260388143906322873290386633914740906292359145295776048770418754096518414349131286878939179888866117688701494202178112005858000873390979114415051906678973745852615746563405609291205206910816392626542243676882924250049100199690938558216244141675034065105250069945819821795413403081745577856874297331703503520497231841099880204001387549929055719885724267931349408174871110672329133175797451280636831087461734654590002313735194647272251531474430043813250608852853820755474148993238981475635735106756002744302205715872326539180161708316168762286539791235213653278014961528266014846557701492190009500398455225081577623154767876963649132432035188546261809561476214222224338492474625025414554024234476324783439672792738416528000503424874558992666209773927877251097534417226916277068300133955570059345573340167924954110364693557907840166252030890621816527315989824315213338660280726596242726428003600942502222679318579836490011907074654463098573710680207980992014099694954995711599637581328204468229671802789708745001871917288350013829772513707749728692901829695416989295829653479911238160737661768021669608403352757613438714942257014358193361538135306863115530971374510022257768477074383448015289897853773413171646828525485493623030128911971834073224657887480230290988519164400693955341313602244251190650801853686315002532032037664921819440114197800057659819275276709714819246264872528301767989982653846386282579457188625704705780143520134170827722334841520917657578494382913867716935663212064563987510677837507200642284289487413095730124331982144267805556365446185681894118113684547971243189002863493072066324072126000441810672650640919026539681084189048603736883382593952813762975900870111148706143034580053511583073474788773780384555240081966410632929612554988677788889725511578159419445355117523080204588572806707238220656185290078192872051846327746349813768681707373472515487365205350936095484997712979534843163364759273049184398458619397149811244487958852598171147036465391959457153371939052501802920991242611973131951119252123511463863631737415250015421192870069726068569588961636527462900545950170040751034051073928266194999101446169958970931077017395484374945870829987859097534590524917439378513628656414297044753033086532088613097890212440168163725844674093321989490208064424050020538693080216457199061776781431665235070405191701240607287267123774512634120799740201741425288068826381039246692073902456995556360902093652421097690691463432183077496178853664392321348033852315806378505863873958423218360556332071040246296689465036653709786036337492289965632520094703631803314643744234460228129100413562090310763746589615673895433445264406459662547068545739119812677808129015442775143281937232345241432141472192054177262210655616336806330799945700153501203370081087988465133058849586038007391643588936211514610101443939494697726820879769456836364841318479159608035559392594233037975422334778515149306779330944973958059794881117449314895292640951678497340881647155462049795705938258508372695919480036961417604463566488277554738449428518895083517896968751110850946692724291699395216532144529868989506164444147060203629050130427486821756450569980084496478805045466385564878148130529158236180549673757484987696103928537062846065025359251190685208616340715645830410047607483420337916420712416244609377890580090339728902698840193372154721370604103844425242917872338402693468113389278982445653432132858053441785963674111664393033923444821616201706234984166764538131103548178149915633322794032905925298967297527189420253035208454760887502763685024628888137400274415265156139361461461012136421063230164838168943866725472410601711557386039629897382518550889163756343943818255925337757336902519081185583691613672958923120808231880549891186344315187234909124108388351294021329502712257299292609022788115856610653633749976182439891723086847560097413376511633678636794590007732725967689590840499499558438095402502441989113574459465471627376326508277650211935943952737630398801662517427887035623217215651033490870355531151242693716374649129425624008185082373207943922229979026991528226463088257527208422260325779047501419571461756844507654329593457703740753081904698548310824371804660559961328343944695598629521596056701619284297306692456964632902763853119428273014762201957582829580789508792705344320500191393141810741821242515456292934492150767174771393322854614290351207710052761647184228974346356192164998970095026859293667400985322737223682716358385875242853371262142152697081303709177625705199968904456742687718246792326340025452391006239858968683939568542275025295688352123539623196589065742316519900066681922660020627762141017619635905945689813268225091976609230587172303557999107082708740951657293357519716735057352099242651160847515913303169433801116585722445014158439919959715983173611572157947551224451058995861691467545005530699940208629187452926729416671041863948862638684609380327730974023718278431105351494064088002444375489162461735995936302449202963437448288168814224135348361255370378084669979771799706676985919839726338882989741226027622307396381707804864490728814913474891520171049922559080266213865347191302417169177370809172427330683500408651725042538822420131889220333396892096019164765129720581160661266227366765776028876561949771266135962871361827939681309047788846580087915967225950388138283830165443409088907064746643548228089580915051532032663933669448238757062153746906409861357247831710328445896046611953214518092763653763358926271574475041582454392173828107274333857927875570519710346788093948041179445056942245014804128449789726988435035375921209554547390107497582936425234451721095208656445858256921692591140610480827579729529237614444350682438558801397688065111421531423168069207553900058163536243289523646264790944559471656832685843064484555010357434749152785703054241530062876439514424271045441671055098535319708969141324317269821855341010485450303252627665112421818675332257542211535050083558525514081893464401614681536777632494051732358524257280885738525919357993341261812714800232914019768564037216135428869656840096813711863289087239100815266569575321194292020215778697707658526749677892345135664682281629605262194946063023160361007937777454046915640303518092966097982003982916163469607375725344945383837670299593099309879161019003542405643522747392645908133751940015428440179974320238511416501515096756838431943757981462956875387015532297266135994016277780757381624468741035471900786781766764565748223549682333548467607186300449962929356255994392083112375613022901512997445190159341342094910673383560731579565300985968089057040994025645609321132781918621404288238019205746656110549393396398676618057651496265371879761408902242526373066446724800252632777906773367924508291829235069641987035002851613268169957577150230970863223919786565104138281679299855400925102315341866146125484089307609293454035948465510192628326750990846355738325541822097095951325951071385254422727388143908318002444797073280020146664007593630422462199954733917370606791077451784595957462535551855511606891426289081024303670374936542958092233477053130094951597726771367748507038190234302252032049043294750688689133634836006180158605934686622332935417940244348924626132168736457799733070561497323349915504380076942298177030207315941267322634062906856788105718219300061721144655256888081927822790050990613492612154565960738065767836131346162975752622438999514085530993471243052829227569015124578881621068171333860666168708380605379280311654053503795366636908410397683103771518685637295420172041647558395098546795162976770277827197756157881278278526820602913183751138727761418933682537531730079001385022330591237759956385877158319880775484767441319959045802446945502863727129168008333172525481484557886596584982925883814049192905284319105856862982866439395184791478148648756668143790935229869700556531267902219491384878065730015938583005900724996410899306300882729938028559570679302941478695748355725698655192498985595229896988106592945909978895525556905161149000634066527138282953939488702029777162424431772409061610806172746895531298682855861837754473702602401715806259350408633399406731579749106704722488259612264188411701908835946586617812600352082267792067274077711047502745751332796365643915965199501191082313900722428912085380776534356997949344107099543319924278899794428139392192443736419409458223583292483303038260270895193527978855217570872382864754186777859203477463949824014606251818334947511869215426771046205611383860126043299246248979713757603460701430067540241339018320932561844701104493227884334547963909849411451218543651907795882079418465915758151489011814007736346010107161873709252053835320811330145435385506900955434663545431974277034390184786006041965459561369721423021571392119234676438587514980541418385735552799080077335315285031558125605461474892945372873113633863178269829179810846412725449672563283547732835387934858120594752283447905636143341179827893108095222160484665888404552746086572086168330076430037827341776145325522858488374108940085432628613905660302670355044631942235353906855675632996474055888408466477983429187619674294302206981720163476922849138579127021701135820590245602320510094915600202886196364726901863242377843904467576193793440803972947397239585569027395584049538458872145848107019990394500827744096441747935977094014269133908196001934493394172750095076897882364012931389123094110708832786740098912082924597857764508599123980611636542589127639069531713934210524367187135545787506793157040376082269539101185274871852665418801427498519112114728102622776818733516273945791335744582208550532677745612670936284787023823635891061264868223595130227800136209841922595812216832191899084778045402339384706313982615789946926189345685022025243203238465282282244691105684353793008404519290493893338150457427417006098786766502341183499762590799427963686841667483990033869110722720905138955021194387339563580483292157478530802795150841700896656118435547762173965436963313259511348605076132732998996291732819477650445656851167647731499012017300627328200583434315082754868687817890024406158795281662648959453006428479228791493445826892250142050391879650776431031689261649022039372689752700516135658711299139681102069164366593346517552723790751559965867183011656635631685836195868505670503873003238654397686257600248611007954442631401668328243654198559455303158786517713155274465948908488492834958357620335651405706535832803206042227080714605290884055887123074516102858345420255688348451351784174369317248910282734051808390388692097465075512562088879265527260517978919682614849214284946238127261670665255845810593341729530389285960056954869193080389524272914443103012329893100656785877644062173818823818307021446982702381175343800961392605850792278503967923637660400331277210835615381388607297069921199883428599473705703269505613783214572348916778443549542155788671144883395425340526133008105526937382784512296703003792342476948747784548172892731194665594478636261759540393058249512121922690591667886437935104742974477869261914611935193299345055405242169089408959236479019586552117781976365757456496275968727017187993406109042261440949252610386525738766033735895629981048866388387102519863757813817446394141779556166663198800448941681323766518115816763133353915480825052023972113342748137276749580281027710207828537492309263226571755620847386381255257091863169497590714155929177566892323561477266479319229487420718532656813705644801134448006690503679345870516209279940457541787885831275775568697629167702166120639920018984497770418423978901464557363037892235628279326840153221443932961470786942493261200526725703252850154827146691950181201839336354552040451221274882275049129857369588720506086922175058632140394778746776076431870344959230671745389377342107709336220853136600364221436644708727839345232449156019023427882133236936924755569543840952912132942258301903453389290808050266872030185445375960428966072045538548580445322509238917279260015429776944624652458672890203081775782477797406023249527560195360445577784695020659167111182622565327865716116910196380514013244309153401984522265275297268024762451508531402593622034962593531147544822879069084205923620943075476482553712421006149995985335498614088820938550480049014234076772492543095286549725692985667382192974592740025902115558572778555483111672220197952664614766985153944765670985871260386245153962416784965519904079138275875036286028140009046209998214562913533955504604251325664594039454207502559955677069269083336527918604819427181197029251881717163253857027106477352836295853304581577620261591993950776555959903898152365457082854090026770377201719195254549866756523458240307282517956021580707632234332936516075265925743915967390428105401696026617152306026177630855210706695563609611465574173996645393529479143713319529357405079716963896755613984961574703120459041365180573798831825368029703471674517397983636744195121306685456481154544644068844296077763364891102034427570666779705511496955486120574366373631027885815441821437110390874360787252309585405706427690400984685115230132202410035770228124640601633297941367020753574263897478230119923901008104590520076236297709423827526012168207170240876468459021557868737844495187454552952406292039363794823066420158024291253190998993018587763346402694513175090602297348456453319416501125978852450952203166627599299653185173970156501732691346700573146391981859901987281721755625516725193719544921636418026612504063764050441231339852818307062467611000657489408822403136612634236291929480678479368236509619955156537471709298961017485505006735966866900063223351424283588442503085161293521232039477421392585289922354353485146586300836279187963408256172222291719725183057209572978240247412882025387923898055363377944983932717145945327514108509101471913500491825991369589229928513840180704746381807729225148667344801664642634142772963409909206307071116140572082161870885203006088859797362960754014509300040614816145645326712751710035408698606533669004220701710583330883769816591690453447813757252120309262911264352361849336020351645818585610482594796296093714197729737976546975202182775981641354969508644366527347592624364804585820013767885840665430746451001475756705993355539229383470643235035284018735485606004042591283172398807639507091413064024425655930693667445389004410030792001784912809725333090191401221671042591708738374514531735889991161410798592133406134430404568387943289587469571042866697240682887096932154582151487872755479316344641411685895013171642312126600036078053248898110802870714307203019127865285585729511047792454060515497785076285276317667932542128321419396855332107009735521234777865162278867250774692252450669403643313746393465946594717520840933620835407791126367048139720945696433350812841608764915860265969182858962880712000258077907685898914746168758653207934585381700994126054692570046399402487629224131221054472492538209048716409321663668007674343483377690853645234210674933604389782445069045486831600466449900118231865325207837570741370082784751788532326456731254444353884559078204226662252026366281016658566868578886292205008870542488424988194188024855972298215526019051393365944141294800430353500134040959631595661485373198614498340856222328278490570783733776874821820621659654165977549977255811739752328126014113619747150037748135336206659380502079460809678306724984991046930945214403370663270406908118575321952726152824980551509728594736291560770774403987452951420918425483742141895182814317861051084958748795188078251097300977856421398673958457371563161648294645081061435129689210344406542329982400062129907199390110235039968743760120941831032111273185757674209405461709462668907683241847366355804984431239360697500090956108470975899214970797398862445638705287972876983374604549576286289794529142720999869449480581520132882017250207894376886756841376003179386373740415470116613325680523069395466955829456344393994877700811686073620574173256741922072618960389015166064563777767886990352437251578246202869004837068484770331839844393572590700451771953414769389839600531782500972668388567637511388911481244286612759768492003057605850609205457457956116257477549090417351354240018062029674052586208912667847909723742373063495281048421742611038071836717546802831449736851373892140153848822953658522523783851025271128797286640428542193376033489306940862024357934507946693491320147622083745703262907107537479458784930571543780212977993079549552059483500586983367096900253303289570359705729007385108427426893227821819429436747842327332732715133869611260534973004878915247241949006435768253824334457211535983780573291501078757745140265457837078228794788549525797362654276002467568552247099548092785257092510632331810652043465363419958026983076920597340092919966633609763960448542228987514699374924600810920221053411697936689883195903022425407763291025606700432958050142804089029471360706764026095488695543602053910068084110082635346299986557348496801053906197610986358097653723689856294346840057267403990108980681282304458477427917021051014449418252193263734118203464699066940782300727318931074756252435560771424996596383129544994573802431580513766809074223451381327414894412088685974242220810835874218841320080684929439578358209072326042812393793792030761929609416149070970863119850874965262394949432797352939171995136544347223531090822584399714102827055972814046812393226583320906703264491658969648274923779282567346883654218739432211173218620296676711411264628549354468872109231751947166058556577986797614084859396082968149816546400931386983043943635246679720322241261237657828553020270573834113593417351940186573364828372683009349240215679816046888964578461368696677374976724289776276169740075992020143578285413473248678107091421403555743366555717491896786544376422303899570423712184544545109796679627822049551278765247177128808266116540009385147157397057818076778492497556470639587535261340790571286848259976948134033866172545251619618479290399937817316183371989355378999180938972325953953825294662048202586254181732595611508024205037985350457548172222709276491881222005425283603168669131658295012734126065908614051545499142276864681960622053420208378097968008076945946672515800595612131493992085787138613367341499263276383650372213963735987403218438506107719944883977785401236881982594079623739957802123031513156640635458050628957821892572472533461693626399179951387060393810483442874712146916889394649860871953179476618714288557725415053635009860161450124678310349623026701048052171715374999566929094401478167603418337665838461587490464016170551109944983887442625959150490293299692503535553571954417082353208186988305700297820158792633667341328481495110872665283930421095445082201276628282116296373916838079227784703348892743641180893205270392258485656349553821736125295330668642851034267874091109950523680740416138084934653916721014236286832620834367011843297617794966602056176706885430062557699698351618217479671595824613691394226277484678626128510845924130370656206110814918781536875682047629946201126490058566942839021008482610465124954629767762651114081517014248398671432892952692649397854297382264840196189733979615884103528938792131172843455288506504664105613833850212203786448935284528608831391377460330058479366529552668865334116706597537593054044991636526882230493405922933210881878473864032593009881162982960239040105375600755149888566027416338970773529655853682455233129049648067160563803220044165416024189796575639429246776003651476425175303550104172733876077732608715615247198048184949211486790440693846108685483231930526437532990208254697830602525684715906440093740894026387860387935657280109035591782253616732396932042121464100299454566391619692549668117127484947210393410247952559421330782093333105674998649652708553128685167299016346118548170619113439831181601693584311586611031342839600722270296674876561437005833639695428524757051149199218927881163030941510544678583769175810333034600510439367062832999852858153898349256475146338811023223082052730677434217305912848367212009086669809927082869372833004514098004384769978163092863126145260571212238141107247625805202128573287307862575021750938879794644303134324898588908284942925556236742788307567181997026396337047580489897763861506148024067736732448530220158276613029940536819645849979379073176240581481303946667225805827779548448026194294791401124870661053667585871686852682079402729128004571225713062142474831538657629786638618348292422099057433919860911109520846814377824952066760303876644619572834754259307862740335579064719131205143212364811692313433828211527494961103997482074793277129284657248581309827425929537771943681744483432613647395370610828091963446700040779165975389625335023947901942760192177300536930821030025269637950822843109721219133037108262314304212425536310196412333578578835429828518400354844400904227128295312301515305514834880405528937846801524721178177578468794342566912511579629167705395641992750138545250923430213254186256096781611785714271004092120030230185394644269819445773428338079977423198340587844178496655222171941149036352921123478733574409390201719680034118968924279633313095741764702531361828481766636917938492664075663079039199887708291686610413582872288598773226268158095620068616364203914697391823840340374828243069503048816507486141242230497616919041728511616369847416589876156777720534303914873170057899506443757607276860984931509815274498568981515115734301655356140956614771515473386313498549525304114378667207977712113536992479378901982216099322094171552101136619886608929512146522650885810331874266352191276084985208589744646830534715120326344420722495734291872087753059922416688964778992832504495733080873002073878968843531425955339874375043390016765692696686161160583283831366243811546803292759934118825065299471682224177412431689877514300913649998642312196710154554400652718768947605622125451063689031852231403505868745817131815531012565891963500869124377906249319317676911914059978681631004727920557491167648894878217923653229747048635909522932733357909840082474884471572118556414778615819003090714573439113279703790280331737943173906523994671207559557841304426072811268762919244276966636079856088171058650949776344076421737723600444879723527284832077508494103353520330548461265797346577936466793428167734312738246463645705920935312124919947841218708730478889833990320948137209902017185067222147480134776695752012931768646941368296338199874806676897092963853267155775239824249807084427964341693366066211428392438768970342262189897619128476307873852524164087840507310533544004235753713130233542960998907599434560028193085765324791259717697586646843515830309495438687084704841269249180462981528585256638259626909713201646830129050014719718498648784592563283409683524238122791569203645266315592072650875193890519591068679022658831406625639333478963269172787787768628370992875889076910744491876777380773423724954437886727268152027324806079904647777044342244893193826539426660214178799786928576764231625573317387653903937907543403872871637390678175299255709171468407660375546786157976015976249493805961642072316356438883340784368172282659454517306920398413420613733783582078846924892768915495505686030560406552444047263604829555020481279140898008950218051138373265435354521445779598519354520875979462838148827302160889000308810202926299343879822256342650151404404211778341647596905823525662803579262416608631354140105181173483364154234440310022254010530244264117759803236882539150934884400933346939390780967528691760237878470146697747634448977193810836715220549902573910141885129742513183740650306656608447890891513759143006456460733740339939598455614413189686677872790766551748385782737638783081338797542240235084549404285616279157252349038252615196620969757287413483696157872007833838691170751657725389257860825401441556872662921336316770208361649325686001305846809097787683398915921377292742760864626253273625775185180745708626923691885357321861041385346739733336766429677810935605573358694411069055377445410825794173100201019501482266263958103149163348923381182186906997263529112146121526632084305268656267047621446225572308349328797056552065516675268598153247533431108089273875943582439477262932391369857666343939796295282138723611963367928777699297667943737502425165861588954579311133782100920676144639824806045427441433519092662135213996213813445069899376731287847051266555926186801570247382014506358409442095466191747540476048496967510801621501710777170877849465544695276085810508171544525847476611737550409047155661951431161837819488683247687584995428445377361165504762365010447909164737808561936354324506398379278386936665520637702757570551331629969239524485086845855278826975783943741936222885391105383644281585077567176805205785556816222466782015604303196188944803402518340299557566537386489131326983607128193056905240431631533762782622408796586973294146939548290460986938141403402880366677923200017533068770337910604807318921911235561110684076816221154842557532412471238079506810643371196026721900365831102576302296990104499902097564874379154837368665668603572301215301856849119413932250447241201268368818565625119057464824201619336331489834855839413380743198003692743878619297332441441232485520172372740298940372023209435766160302690723392915532572036436910212321208624034937551582100303095648577125481314673128916349735885840714254337749596709654265621577401127169163918159279927845349512421629902625233573755113773049113301276758920905765010195896884032423988111482883548344738141336358480544404358319112981520248487664328325781944332772200014390086832826005323962653584143097553908240206152648494362366802592523391683510258628548999570540917417862379344976852537554969728162334165481852098364913707519359529616804847862421156968681401234868970295150513061329976748992762312688748023001608722164778761123554288518332782992519541412731883829197535647918174275238901236404216632817024075008956318455641813792119397304200475081040747426789751478843153163983906442628081556632441510746073690383833593531196777506612558499179103098466972344444403612010185743074568519982275045256058759111218252386035120327966167372602149990322863242249323334384072063206855830393045654362108922747515361815319482061294580005608153126099012333458585157771061325856515303172290629375613116801064580222378238911370305149469438591826738824894980456613079207064653927926248269927213332952740693342498794169658502230538873008481695627807162134484131106214205940338704708819669876473580763946795897598186947391801916401667503528113161008262331782988012093345941783796726561770763830001550588154098295570603527674965435793718660271385781816507738366194937945618466711795851333795431558023886423848686082645923511791955533560029557884410966694914732039411549836056566062423687727264350793919079392835468358069812321128847443210370371679605051313503439461673652610181358216942629301880259871046290579645275165763588289268233166152553502343995260474476551033279383069833087017301499793347282963122209661968260356877657441942596377131597194004183549700717891838737767078633716783214512049578441007652485587593406685805264847557559256964607922554277106520731095449716261318167518374714488372251728025864550476561361260345107629115402553905593068838123440250294457014450292177069525781195132003238351250853636762060782965151237910550354440680395225697554777426861486138415883252519855365602159480933506181554653586518179046183870833543553577825242053486802393947445558599566295483417240909264133325345684896587590010639871739924859260968837427825033205920116425005811485598088392639597675844705557260380423854806599715990231688068447617395237956767076844496866992841061148154930813938403235479236068710423476035562765491891775590096278485692756035518770250898519250467652767369613002496537572613129557610448812436382452984850227611823473536262094743979782499845164195092588442465536235359812526682430443099942520195040065042465779269656719588766691346651818642508091509618956178162497852238603331670763729347261867891221610127706974526135692010802408611977801603982586722943950700527876705677265576701080617833273515134438624613755748615350048166745277043622009753874729729828678603530381870228314800358165888714883061155212212998493163203970549308185043267593866961923869022474096171510593975541654198976657940351370772070852973028281121982257222414358558742708591199780929959727256461699555190832538072466555190181263243475559333406389149009089433758972653010156544977714177674199049648779865533824586039790231129610480228361776145557484001451460499609939508893353699442700566526920139904621575181824704742709821273776719699395548803919878844496198495454048998856307155529446549105826542801223227052331028088426441227949028435062347232547040048285679556009616122298249211635591842737786949640042907635888924006917343154810815230606226797332811514773695341956318075272977646227370467738856237253533093588642899089278833862527408917956473795908627936155745619701375430124908021111965967834328975889161891904100940711004318596504291954830110467882440942429040980333118024216962043057095462951105936121386385469569655516790652755317402528465778240140305396666456000335845947693433938123897898720414539667779837791338064393504735280126972838057128370956385718947438708186308085436571477282184865764461496144358625025122735015915575588032704799092075313278714083832243009131574551342273791818952426882291105540415601358208330432060640114488643627374136456348239545444561133983999834820871373305099741889318256247820662560052356009695992349174020545592761007283417693177819787285830171070286674091869252840593271155524815482621002208455552668858214832536513239080618946286509028192191720838234370406830700716067803662797386467262494626543449579310859055112774021792201325716881135172469609816941816297032053696125500683237390213259462869810729609648966272983519237530438055924390770117068811094397536762546848620779411574680292738744891760398224347702329367204258952433718096240881745607977908125184865631221958484845936290609906723361932780814913389241975014187974331478463038433702703039254150710928450624955166901874542181305221552520412361328661996549300440652542800089823133228716405270554959202428410898187204832797270455553733170782797726965746894272810589855669647212817693562064788418313522515684406647280257310329409136668282898702581731461069599492561250156831670730269272140753179164355162592555215082184273551628415796130925248371237250872811230514288939340487741373633772139092398281648449582123577949067566682248823942464843886259403041635757358491697140016660432988578650706934745420467001722806415128559018560012968498822047209957697268702576108574644283887717649728355771203922729488771929749094421068276932855574847957656084688772329560024804760627837180709425765831383209573764411440061477203836692774141869331924219021273124916531493215484073411051474135293840033915476031460405559323122295091406337780365815130911436039091477151410598334899275576961838351130827193158406591356926400451761094372998195235069579785929411925070341489828395738369336030276482734643837380986334682980299814453430236314098741854131376207122338707470504323127678772622788136503364531649343289168637371910274298530748129038949593345010001573843912255305491600271261508131352271424013678443600925204436250533243537211400975627077174701564987368190187885595786814550326612291763150689217292826979660649297653566635019040728463451499571188608900987477830174051964042982054438266213719768266674475935868697647755044640579599706794983804523362831373536945086366699179569513850557250638308310148730075171839006834085791243761533495272270313021872398775530145227403660886424002153099625629569584131077514718761257768537422645823805171396290471452393639943333798706177043189499244641773629830307985100364227289863225004973722720857611695556607985981962217404629134565717405866834206747718632139249963524859063873962257635730075980200691589133167526214388788785834770096583621114890416349583341504176738092127989168700779348323957410097369674734875622152958774527638800364012917785029793530898315931678594577406968556802143178850245419812369494616773680597920999108695645608146189344526900300993797238383510406451800238222589103451568704214655719204693500220622477124090421001038551295601218229717580548851455281788308121539528904811204840789951665845130632387254819117345915302196091128418000453998263130526700917902461807870221400807175191456317032006168380682555452054573818258603136362494270345032423593166123801644380742674004324860902428599649326558958569430391518575097167883596761435089168357358649938069476442352666424735605712317218160739032697410870473844409850239709864790839668536394714266601107045658550923844837162665770638256153379978414699152159901784765722286294263676113954756378700126937215483216838821776556453483110957333784000495055971392830851849896880081768966643721572568672728165019249934528544742334893837738095401618554737136691605766732035306053623703522135403621820058711737658056627124602131838896599477511188834510378245761131403274612709774549060701859520993106865045780131688934281626374237020418982662015745158586907405982841666229966735318623779078702463128099032653468691747565204023565796176362984225690808681867273267418757952834145411172009387030963461425593857180263384679185308291986974401877952152282420762678862515836158393161878894953336880942417010636875262361311257539608608115536747602272178395627434203130409952390959475517576775997809950845715935115687096611233234141935120074485530696072934702058260256808164445922878442350877467508827813574612896766265337143041664346997485475316696132976398619742062933095759252603606908585035980593268942785939806812952071052071711296525129701937932564183233841247008379074610489187411782293563416030865670774092710034348022480393317268421760312846841555987051685825343032061892546913255558940462058765400811399260453632145431980277209495273881691569466345021540880073038967508336845688797720875426603576919323453468026279008879180257697590419011209669761217288564060048970632626026075106708925689771071061860537634470135792497218188385393022840259419469535872456423447355113822047528631323302987980811284146688702644763769543395260511666310904544701712323731653981121075838696211144321032839648403095712036832907777056426867282578397704257601159947402180732025327828292689793696448613001158817886705551359489834011784201856023860856294998539545978366877306890266436204884643241133452783514061119509100076746223174132900837390394438903393261302516865124008251595488472949161974994414081821339586221001298014352226650109397025820427755934840965420380079443157231938164823079534670635488838126612808565745302622220722347148071529006036596896055991278680596980804483372745599805831738270036640881860382395968014842982781263480515371680589097906393054357773126756361543206647261467705181119568289808548071703888035571153487204723794084324736605284819613849901126116569340164968292121953226724701654659128743905519006742643285346398874553777591983842734272545695711948224251631811505701011396062399230209321476631423681278955918565147827672346364402502523779376035868507285249254915025017427887956915607281740619426748737824671360160333121950542786404590201922470273973272704540492099991291198966485924467625733425569513819545510797776426604359026299988696625447417217330578187345104684523461216129996435052918424953254222708535850591066030114330715588299387999968237385939134734440738220276760081433385763464831678828742088225871943310868179089731370213954489340504577985190086690504070716850949789838887178961041650946668330807242673097005589108988510342028635151557478240248668395432398093686867544424200934879488927713073179570954821721120647416302927905950251200031024776625644758057484231270913895770543334248431891052777715788516086533277204992080783400288979265117115900748524825505163979567176825861012866950949137557435900452376064029270577653087469795673040418021215377168181029037568155310058344164557893776154357490035315047583311948400265420363604487224449155257662460438048126249298029457976710811265245910319902175864167888772679837598541042251853339355262821535638785024774499166480954845372076658952299381221937304788843857645491033580372414593285057710759362094987402726527195610722044663798088664912664298853112280723959363915905883407538975344282537794434775346239670898162462117214870885510388424812644828440745393616797172138596210432962695069800406108714742799510147869718777540874805701876567616729371688630059467523688686991843734921068889537167555197980465640514080935125355285542233461738399083569491059625741356768558026604111615840543893831837399393224332302362196103378569845572890598990726962707605785467834397846138210832427325490192744022999497678907529043517193865960447247488492442106995590146430390857766796242555516531488221207302888628633669596458957110831219996381842442822282827885579147239703357705189139054135916584265548900689789860535255801078448321598937611643246612081869393986131762972180333018090295705124156978143091791057649091850605345335231716584881829253523185404668405391943990252660971441309177935440454770009322756786458371253854918450177085190131966701477556829282819034043740050188685491476205496040212362122801746919011825139657924531823683366832464763716282433150230188743017089790080410136273439363519796512638144211896641879181199170652805583007113930520784422441903924540252591032435478978228629239673297630081125380507931041435029543576670605730536439911359159496785594537354620244666932925830468054991064182169381544424328589294333905431559666099968455190532928606671893166124277716536990973615838222475683365909433571566982567978143092238433631852444754825856293554447133302885683237541693119332349874209222640241503686993584980133223604400780571963535245823127645351183318302218817019116833047973720345716187603305962991390254183604230821607947418960170586889831755088024697534611519028054982502572876744069042315247165797994693655147609000026897191462772585977431198969340265229985236925321265642631161509805653921175591431149183622106065061815457586770755813901845678059392776202796201686085997649199893052686085093981551525800932798590787752994685443277531323307280760688186115099941058411602448378245421529033351557855459392705105628582691135194498881727453856411075250318798539272618406247570248287657558907621877345452101721037549858174860597615589611862630406756870512362691873995753796698435330552440371381966144887947033627745989376020730668931575342636591947018080725865260322242364204507156617217390954433395458918695193611306402392153163809640084560076678669771043132411350961094319595094365508616119599650582065536119876521605045875948574228127998438023997246877018310438668906562457329771674771850182984629625375648387945967431794753687668604638951907620574383020820012273661432400799368937617592501608976893581340332263449753306413823969537005434471932014644861870353375031569790872041270058201430515190459327527272560271710610671306293800272990955771311889630452285937785806830739859991296358558264911108397060806984714493505367626725683867333109116185452343571655853241294862088553236500902872520209091003578989930228311190723613342781148228541141384150708060593542825347210126557652580834700931269940879243655080215779545979059797910902862111686079564730634968274206155043983953170737434749356981782359261271508909550173765247990236265000023402173114153601376730001747652125686487699716394622657924719573850556959449420422448441819908008189713581898010614346753839219733976641793773428974166027295385855512835288539398996460081593092543294643927550984860731921971484888899933690257218160202405057760954934512631930688987776089445334944876405092526218604293608503692405813278600223863760539830745690550660441943259874999850466122524577277619732668937101519236409730542090706359533494192967035037408703535282467782290026919254137159232830810616391282924821005159282567180336159251941225655502665155860575896508607894766044072005712307612430379236839095061685802310450913142857373957533692668120427921238732871442047154526253515357503771144533508660655522043870235669642997153877316896905166614921975491945964012746273070017133363876213543979241014157002695072710653598558371078906232380468874733887419790260649847842190133055759917137272502202182118285606478748565148902777699050462504291255260740147511728902983799576020529735271913210594424065939330918541055553794880437584727589122698943014234248380389368227702921420297692760350025183164212955049019594718025257809868554977467240614852406460073937466632105998446615325843639683926552628916936366086566350100747600582701356777071753170937673985108848590723386723310798579286341674248545407642832727703071279711654327286630778223045894198327026240014617313536290134607470934433892227454377677757740874263431375984809775852425528646675603489804211351737648831799175277772426785504666236740182351511226826251575282555922898549624744081688705742664109062473747883457871197629450084160930953699733906134736928249174355003032489913430339214872271135798531890274361909229278639696341188798826293729959665229491662332976565906404760268540276121190224014049992150534036602404175545371219720953857246572564594851665512722228466885446692883157571114878552927838451569429291513525770532739402460969949717703835890280089200456798221005231909113812277694545894143204842637310473240274734747625807169738214279230156872152009960285439928937842425741158199528542960052419958802258183929766668893741190974545341474854354785571154251960352655822435840488288496450138558391823351287046981495842168748998420353503343035350798587766293820993564336473028933149764664476291410962156924430847145284414773259224475433098537955453261606856016207392214435354568051146363939731620384010411926011096638339790110326872066739403450571747037749829523125027513755922802334330167462768132467321902476437601496715802058639894007057619411471609993464477355501939225685241670511074495962163307940685637963106329377387819594914213708352117201958415341313799809789009105879778817663709846318593891036082134949032747191179597059729682728487022263953216398598485342858083419570285892436405644668269508598317936328235356631579865533437637277005068033562909384891746941865708024086791257873493453694672761184890609239267858572395861387633494531038700998642114457213869451631367669165136364749669646917310792521469571921301777253160128246484266432426166499726799620614622950468027233886986487393694647373235257947668735424889700226502402827362229704430288809719592342023414253700225526948087808928547614664022365115164955591282652737589712756743481299571689089411682745394517262005283425721166953623383926244349178791629435841966220809919983751407561214167309493700168668660444599582902840721893977300069474833330598485234793594911395432663588478369023127141433700541429900842349821641446276997962504102534906135566331760146308359434708632180695635060930824032320312815458342842992767507911514789502062063968623187241771287257271891290087896826730796811923706522386409325762418695747305537686022084927381857494507184927597715978759373860168364039537538359484247372793369082803603966635232315378137085720047551128430446941418793261304062692120563531512529061487124191739140000200838778948976813795991018778801426639843749789631120399524780710152966838176118273448822805875444904330531602665242291647310673930983896027792674197814406196944576369258260826018503133287090119125008053704793770469212445759546149929568381813059522122594662262835468630761625419238846385420672383606886864259881835561581332085526437535055845536758050923992299941048069603207966665434101502186530811238512227274981967935540146156393160578931445927787420573274988865188818259743024665607837768569025732098431783968425281686087820941134339851345017932437736828027759256184553917046607698970547646972294998320690305600236326606526338744731851722917816619352027808696132001527301738788521982152096849021357337121870155877599754339013921527922835786415387856994579167339072077948085429979181301082932830455534043145272031569569483207072439388217965039306536169029600710291673820036571369434651431216985250636559694691827568861627645973900383527050909727566793902562452167894860237474692324812696458584056384077181055601153873523448723091752370508800921115080700181480138925448439887689533143444536302157605949283150895522751510166371559521313685630973373934995337400491801398685907938356692622528000110851323118110840463625397110043057388989590670682818641902461273197026128675413394883535928720607827047543470739801375947641586845880598250527082355018236141178851581686658718948116414895894733999338718904907549677223162363817072447864634851643456083980051538710860491430378441671953552356353104508365086941437003744490506274533877972450267097202067209247050111518155459752154383932758508462685512789986445409565888049125493711985863839597556710792657842545668199994959650390482171385871381688877565320312235103720422399297027489564002411102734598157332604821797944954363318558062527950966817278369483902163216756748185108913653114867600283428890726451974125267797389288988557187171370342688541105927281322464435987087965742319339290775099875812483337088388352343156472132625176321917657091402472407643320344835831568916548904997432011344670948635854448133935608961775351641666713940722058566214062514031842612894378118747317256706654911440432906372284542648143903439538808921763758651753622200507085036683527654833420969050423322693116549811827804549299679219384688297751476635400639957232424144616369264678092564520963502413716054909041490050197482405665072321873294610576575443585949914252184127072628644507976951476465544337335433837621064477441879966427004045230127575879786561013301718958242456985250645275991915738294787551563566141850762867391701836814047519132547648997299143907354038639447259258370621935229964066927959884297046780150632446173130932169410021522990954361475284642991746984059000811171030276815223270250568310171485439978637531889582102551530295098356047074733025364492455313552346568058619167303870095055345018450945316640142743072957622614478624108672575712569584001696190116951311220029591199990685180549558653032986877084104762354703789109719472225453195244349701497018286157261784411016112282316065887187662932468142117236405923701353201986478295174874288281119741717853545459190580217682979484417661287226740064562000000925982764095394100073673646787579352860019948016483395949232182191840927864249364414900585742243426443253847929627205272991925065766203104235376979657425214970187778261271078424044774329591179593169568008970023402587256156586872648139714691092244999526299627177322991033450423861717705435812019153039319575171620088020024729913531270274954766435373048932923566914714784715566596561637672017960297501034843331747930272955364758690823993588329536934048851472419580049212733387114766115356920786948336453530919876154351410079948468369298500759371258833129904002698124913381768983037518370836872466411961057123636246147860564031440280230456982049478479614550380689495635809342772333998186973953138767518781071097037119024789298403570643862952618103817281550683047211250488403750516982050085947072463675512448967115062173138846235227311823741153139824858594165646762859650196991510409579237268241361783888323372913302097323678263768091732575912752349655829846772479221536779771786543763931685078222380521646216012485498878391426923225293590780799147408914101754282078609656405606919243905685224530529813203900309380239584817601469567512564449331612266254482621234165581216828333523326923232308416025819584679239854223471064862911207553004184303578921468784188669254275965280455670860663826254777422657813381707353061314029846421411851917788529714757360043971787099898262542397918937088536105949141613427944270268486523501538371797971984933202956718264907768686781312955454819417847322341610042985131779199769346288760369887773221368312773296515151594766981801755635854581318552974621284158071732678070625268971383131558727834593607423301425411393291095663719637173136827513999795103790435339879720057815181808695477580958212555398672544616011719011365135741145040272059083895580045492341570816323752454329341556474216678398474606646052968983151945818380043149109660539484854337317105091948395121683162694074770937569584626468721787507417590758631588844365995908894970803924191199201778662055684979390127092334469262686083758400433142254389516778434205064930585900046232005623704292202210720198901377056133160977139986574872261972601196557266959789588441711088944298857778284630576806897591249219116865459027056187234006220852800215596549753704891117377028175061173479033934863954722157956554597786931896727779315896111937035599286700331624294586470934546363487783879132511618286667273034434454090548632939554526326878332162939234319306940511125029175918036748189646079753448394806945532937509957410071137862162055876808626600910045937965478070842790266939564610030243277038979409578256360433026835475791520228383846372231469143562101159698436758585241230722928661029718937600794469120151689772083968582823588719769913701465206712392471984376365341074936682228310405803840258496433420349838400522066090063765409966897046490699994847492050000600706551918771914823770155744167421656902068913387665404711710776919907988194040434489125211465133733885541205641522510194536526152711777794012040653734196565615250075133794210110379360111790742324886034621757000477600741979750546051280473973180317501939279705777406296767439299761170741484345719804698095027582402918029455403778144874563646158274964370443128197777075675903355469670303586728561854947108866621703941941388911835057549363990965267097947444464567450703156040859607168998965539912118506831521700321779496364582726718155069153402241026361439333449966675617390563799939770981299636027910153542244481821414922060103238255227444960871418766474335687367124891137976135861893742320429541566185888239069225238409708188503925261764242969458522926644153248214220546277530210420352362123485895950482564369824914859278363278665869570935145812303208302040494427763579815707225023987541477989699960835197815121266160365416992647129457846603385281049160101545506364272198981247549125066253442676792063890216543596826648927427303501967170614591022310023969366864811755958804500922019076443421490273178462483125601956480132528057439205717795120322388654879517382166423906263365487268195921177159714169425591121396848947886154966967576418307872455968275558922993396369803388825007866814309359734138532518131052916453992621360818171279485589639269281201545057086728843645703586117048931582857617601071637334016288765003708538768872777560587398450625083677467684741296684578684794902218286549040285670767332086412128501312431602366246545122439772510454908745045043136235748739917492155365913313210938967248794940246788032431998344561762727988875865747224780831572442016049320116314478459034245842984452659346256315458487862911697618380024856768307816659731435128676201774042731250980845378165151709213256788882140935491516091153960030333040648905278371582291707951590181471872405016193413102350702217168912700481231995566216057563649383608970435512119432829921440049577687271723328098989233419381722939375090260023599668760269770239717782674468204774168228962741920423999333000808781556561574669620843838889746754698249736681252739011377926591613079416177855820247175310182543580414084596757541074607660847933781799114229788294053630901493346179625552457006872365857181178022275078205054097433336184406977325641080522506197068127267661940040214606257493453976046577297150844389421071662281938799473825098174172840799682672624729571844494410435686115069972607322409425163279867412677868294115846123188078708301682079950740702163232824501732749108289427141512624796680346421163937779361845901168370215350050635350605695210771843678046559000964586667570292432310929461785943945100527342128769205102860517216474323410753104628175034260326347535593329110690845634622592430263503860290608929752443489063960642264091440363183947683150240859149053067950274787522368947564185646756120226917244621163603646296904903033335092668099222970857238413511759019896059540406452575858737288975623226689238578760458390626092864878527902593044983855310793069710180106267794394529670397174747246461867303216893616696576406331052401372201045920364868888375252320084329259798046252004041877886067774411041626578171706450415095819772374747368080250366229007679013455524884230853969691817260203806054507062692857317705079706285035312035501495401773921751705524607874651275402372190402676936795267914460802248098773079944615292370488250660127615761052185774353900899769260279167969377512717353583400301401526579021383978587983136556515269442336564600070979751754045333786973240106432066823554990275955826559307566860468699287890967993225362290316025709196727111844121048397122609400865508524302281599766802061678028375242110168097308490103596329814752253473630801199958657082487350517775134246555401787328807440809595168314905295428340121024081836897456157450109991189426506415351545728140060387213743022744229264512965793164787904186681722982011061663454534383740688414821416642740499546171247974581422670723867732181010664483024660329159367048095860069950652257042872920357056506636497942567519107078692025535505067788134536925170805146348902394313108387357862090018361321688050053631361289749796708563162167976467797784826691877452215382327397204098719379050234751080976310407428220447136750463069044850606441485589379511524839848244438872347811832012604507202002582126295282338805783685741727628608227362492201410083517433436154540865645729797125174312124890700175063545680778838835783475997671270903484521071995744062767253386909670872363072911744772454585101610379977599427878012909908694221379035523308930746571749365994477558495386695835122412967471669665038622877857658746030236215217195807971536098688196501732254434921236391975035023435929838435734351693932940494898255383061742388177678138500057752360247183410596366814584962573037033508545537406731911307067022540072557365525733980091045719896728369494607480962535393800024271002999600610088613687526068014796031503265374224766734692634401926407494992771835457951924529920531850879848454173928884881335136532920473089495423531269182641262357191146008660991637164850750208739564373266933475185985668438422273813864114946018726505923218134675325633763528614675053501737385923116265288224404113942545666370285081380503604278727689060374634601260596662768561781989034695924314662114851708240682475209989415857093241231000971684441636608609272179303775595196424109261110026582140464138929105417154164028351042516073836506892535161592867457113964880784758470984659985979824642660623051770373617704834434269353459310527153635233581348178863869349310613148258583337922390071594817521759036028153276218766930665787997158864601696421065898084505594778967148362203355395446818834043472769294677238315376063510208930886717688402380977295842716904803512725607014479696084215561695856331895151106793411831690253235545019467280830587854878005905415068104828073623987342304055272149347666438378704528751128453544425197362751623627522490935221111841131564245124306294878189742524954972895128326141380941934357385344522238457358260854070375360963061515119470969636313649694147675126072943726095908304698773929253638373276237599521272817270381679538338436637129381574130381812776891294225572999477099991604004474648167866714637408060448395793802923672998811424141286393529856064722127078099509922654635721035682127489467950816932876818855646682750261111847951461101533278378580058519021524813548965616020221246906017385173512747858350199982916159544813220088177506170657486118843331144106683333088602643025025275953298459583588293426177687355568267129898328494080801451808044692638856311553917095571403866262691337713596486323054260596018515359158912586769892225809286557474946575024484473871772836983906715827377502388212413657265362552510839325701012113975154113385967456336587272832073097757228374442043854868547712499289878660222389456772698399822890156737124425759845283328104773530307467304691601352034713868926523218164828180521414064964896624392129685541805859694341958947970250873504753885309749513814761861621134339269807819582561976081387567424595186900393944965186383183528653902324796530933740312461383653779926117908145900775451237722386350973977391338635680146794348912460319725807758556573356859146753272264802057814770633038060421717912434144841673379505236787671936791206685516739873974723567547076032841298112897440966860047670470966315046983186860820030221809237088113225939741451153885368779406244993629919178121227123513560551494190849188490365865388437636298668966511968324392223533842754114566526902346509662466704150069314938652757217279024610427799864743904934654441328005693098756124308599492289762950526505434572047719408181773731927605142134800627591863788286142857350122597614295111073178880746433713192384061505318409554649581036311362298612177230776861639510689239184655637584125888993791903622316547348601586882550963290501116002672810367761718520690870959200582440934262052745904367468556514707958224301275955056719303823398235989812248365592053075553103952426040705894653584537955463188571705828420457147235796275684188894725260020573019319619596530155746221262688174498397389944134216758140591211304434249626449707493347511934656414695789135978000478955833924722864355232542070038747184540686218388655777719150252805609376086462395806916878019985570185590656037151196490016998034616892066751171361228397104168581273426478661056385263005025104968436440907900086623825951970932308548592836439747528812585994068911441579058485533157904518048246071295011453649033033026717603516776330222932845949305502235654625471560614093074241689664614197933482062822905441557703168944959967340258493617282156102251547686851836989512340320942776233377508013664638614990017714768185866798356703306554718045270614829588419862241900256260265658908132997503016526706258652276871171237058154157767992870563968398672330887345991087159329876745470779720025911459856650628056103661586242179134486711733186070404560575879684137141285745966242018074447375884435558619529781796232271744980179055630918320545503684004325855884880176132939148533800273683707992828815559587863424780936349579081013012918104628521864250268693061236355898432400160674293483527048670493616662477029217329619712135157635381285130881218766472198479505618950527558686337642154851107144537413310732909939949758135888026976701050084154769398456786706365513245516023916581963777525448238900994465347895814338714056145036806824401190227104921786850559251231646980302219672741091736498362321327774438246253081782523353200681988516672499778863766410041705991489335609335875813377940977128772332190165842174052836413929506027370109528115192325908669827009274704876374982107246830528803036776432635561466015521091372570555689416398007998852484462669766365191301581089452343160352490346763276657869644566887539056675250430516801258900226374347535800049081575725303163656226587769057873971676124532183771060184884193911580462392674806540010401386547345176020641255393868072686726935493637236057093760074515775868403534300610484889582510195593983795416466344037862536599807328575068347850476140838826612632475292252853290132946845106489495087953998431173110240389271146488555740165074606733766743138600558280015984582516199005136281248740161735983750105678825751760696450367802341567500500003769979825196219544446783303782166166425103182124875646256128965739058704388710122830398780293492338474926238236637755778339407055025708944915616890919982614631281029902232035618228018988839134061661790596879150205949339616351888988640808094230798544995780427547077075990723269533218206184091413962656183595712021795572017839399711163440409621633151741930671307252928160799821595626856285302948041245501875612261849273617548762665470290130733299605677034977760069877499233317645029865557644050197003544752698366536188692294686624150821879377678494991545345295038453683235150815812527135345833537442487352243640440045282253041507877332784380530291870541052005249940220929438585379989309846256252815600188981425142638153933308278178636247156275909809640005190020720651389619909158346599546636527596828398883501752231040346945835593992573488148743848651829651292035248734326666247893428474332806256490921420543490240772460216631657079199024256070319436579340324021015475608059433184141754938152294355021789962909558955041490349949180558689368503836314891689546112277129786212404499668374070835882489119123386470196189371453686143393746997394087821978503442251502972825694190941160991465754403034189048387344783306145525472272821049761334672328006466397571818384462675430242396837154267789603206123999318121913070159961005087801890170749889776907573894291970435645043095914298069865283960563911642490510238341948934903325458421701716122633945380895819029722851971311133706094051943820169964897577759227933242889009392710505153212491890116889830190009891850533505871070700258480590970143658443097572324546517490878612997703630657013955325962173945887850461188790623000845218842054410477403501649354781688374924548269483096389506821469988393327439158492533554800662056397928657430953426859759878145765873905723167305679142213558179428957393743409189354543101872428054045580872785727985590155212843850180026423389427341862545713666082070727119186605977918899559066508559507656607938355655925059710992611516648602368107980556825561015231947702579849165116242468013920918686209250900782458567472987830772481355640733949005509791526255552536499820196729662182655244926589261471005332870217609241328102530495402905620607887759996136306506186811927587785309883520000952626674248972677868273208677102345065773667869401736745404186651624807833585633013083325067778386399515285595337780636006608322906072803941965073920988072625211590510363688774795746531758296151376285819578880062019609894754440954813078435506429471474844189745318532162637796747572637875162826208438019898082196736452412831115540621183274982458612061165565575158793277546257675541021441396050081045822765311471108518429744215553907569766885315904899123688097808583544905254480437725517259008847653770571209296815799936484112693817448285654597257569588925809806826430641351481762515091132647255853561303038417821553324667681949892490306105068063885837130029658825529909894752302081772411855057815488013454380470157605970285696361144142265898107531508378572581559227851159752910062114528017027460722493698086439988120095183221393322942362621611521073429810131349843619679786106073238265157731124674521687075578652200198665033996058864736246249674054515225285472528983434290493077900110856794780494401309510261311789086601600139831106816479958991047287806011254936405792624388597125826224967356529872123501927862460055484654486813054749156804266593568117265498446085735770893494524355362713055325576840745775562819094789691451026432414417322072349000295986206983854343222978560159742211997636375212905823180918115180012984910676629572032730297639774466849995306776950889363375870084209468971959673585497758112593207676264511350413887932417783703568812899772858451074145296069949481877717600593780238856533080587045084304643768091860414280090731541111971036590110091025438725550160968704513017196650596538471640581315424920318448691704711923779778923688656277186594566294891590816144560033891889775598896863344620159701895687387454120353432942224225665865608505395104892791026175192842659310010865843387605729046216710815417640166096141716640004538654651646629358989577350636616918724211098968435088318460631228473569766548619958806427518782939501557772148970221311279077669576509719056972449562830177370304804985391436868161233415346984471385229570748224477786335665111043320426472940991281116292438433893565829523076283865773405293016061718803922286564523911843852492392768946861519003168224318038666278211677841113455904322154536617742108843956044628294070181402224978247959878424906890396996397190776182715188268909706443513454295867137964847205180264639518019783520277516973853354785166163333102938395468696564685583292892878881114558062341808890734783125590195597065668816669171303147598333060352045396193901467225006142925067178813178264530517215575294493576499711530683160429219976415998160361971985778544259439806980615761016133476501284070315051596205410578575841759657527889741186603786169039332981636653723688241391030260449016609343157364443575216874881933888888022354621258661051573770682441655974182112262026174695919355937003229064874187109706922069869820307147699374364813201393846275573969973913550179265037203426631743392197508050376329463744738550238745659902236982082010288708249133055434779063075880826868650480164284789084087297253821235753412508888314663335152196146825920282165628005070462284717507501979636921457684687525834412399692702612847465936691137660158716966776926645142796955311988914567826834014081945413437659845264128059403226367358194551150524626965838888475975999279634378234932537564815766882523105393328598238926697890306072203486480471185171449495906776947643070070247820917137012491809381310789310031787570341280492924152578952248793011914473151292590499930106591030744695502151408106319024395012374546384928399109923361067957514067133819422571844295019201094817292242508619663264314772560533497728529575613260355419827032928739908866125311991262949929398572127738885583683333729600281774176168184945601205874459655488485629585621892127195300061700521286011635065699332647630414637105258958274991251874945461312380879229012432526620438361435785708485352355535533762136036813085718341983337649556855118139432204819477415592222120789337045849283506522393695246782991654979523309684740925844656372735496364079123864654476150314181794074920588894593392082230931190559630484674442569883582972440661159047576526438377850715993924695467972303222567918462234970806493487178703139126543461075959682734950894933661787675384373561288722666522619224644334862415008103610814465135688367406697160451715689856127050927767450384786660748369733563098054670063129872581405958710854279397537576673649703492263693890149495306304556771483705483060776058744675641367669049902233300165040507118393706165833278255793405705111128442562371256104315468032146025345194261000627351791501032148696842513985128325778805527126079256128381775336792039531598830284822696435396909586727561913242166569225484812342683803404225298857475069320722865009966837926343494557210905691514102948006422162274048319115349683046721583595951155980573535594998184082559040844224645765723620858642084993709529478779796482679196440859530562712681016258330078968501726058742998190025413854976860982320965471877521094350091845503673840459603166387406474586144942720111035947527715371702539347853254975791497481637048897360029570112457701079990067532515086775941086050121063297037151443559292726051877871698775564161079184334707989378384941596924239052268486146900975502035323123547978793622462599109540260386165016996091517524836651566783915918672125125070993646122166428600368627826827291447156781981462329035981798980755569327553481236722433456622869259180922594253425713698335240656259162016200323577286097083585500431510259660705762754937302175851688684815208885439765083687492575410994053509015187534840863465824480843073050980596735968466274639946918332097506956503212066562600368730827764811780141337708296180695647469058635205980751999531314937016990126503842845618421593397709433051513645162557652267339778503067281250684476991382732077751445970027236905020717313635219563911271196469916729455987078129714936636537686246780659770795552416124147722024394388151623755776718732031194395476002490345731052610329125967603422234734242975767137466038085111376261064539039713468092008175824801494709226631690810692173401027009879810479844356023971475949747455722594916933810485681014892458392914514114810508358258371931356748781976647110864021298195621296821518054689356522731098414513197303603772962491484920904758105377476707011418484142387671687615948601083019613398131664216467267874212544859718256752919474970445337114088864844781614922415092377400342226608451398611183899620562197347728254612791670129181695587534236506204586384952700462352978012187380384981717597687888216077188489117752703462125938920937092656714747722630248736286628056385238830189366957264051976929751032493646102572828553548405087676722327572068241269235955338057750753318927375038210293856412139380529266048688595805183629751939899085826083207838589260839490659297252025663172529257738909744598798092537814471381366553445340336116383795516626063101691973692428091250251337785406870767358367029611098695215346503590136370037779316975771879840572178569757493315209159950468225324521346725131524491271097529639821225813424167361107335813947095198208494191818634083649071134015674478330698456072318044204614971975241060356391955453789144081747442009778990824883871414174404114219250195320079386806379823481886964634590061648153687738129213283084419902915066020875237199076976834963377828187955415633196037473481182810897865975042177182077597794249617373777573586307482269129518263156796551779650105895705903173581337195833229275456203178532808779622735916332478377616694062574742031422504349394954404488061098397176042205230599580029069280602584648759198078910338618001638651266435321917687154592799753609178281629118323578261214891397402151025516385694118681746131536737424266348785964328176305706313365800993006016652615000041289062112584169533275047583096846357948890798713584228233683413604342981818313911178573491814347634667492921301180659330533011127608854336602887454004720148869383548250494425904396909698264262273602637603118974957995421341485458116875777103024631736330344396622545308987469162632445719726247302098622510071535431162886834165389135584328229038907064773158853647227726792743682843214830889492470307696857518765456565768084463752363791018022763499898409497191891686733146081842115130156686626159162281185756687854168220009762339423582712298565481251681645467630641875573182948093835972538638877979481805409412940958538739936460788752455613562863572163974794724524548335714005004388655074268283975120491115590133631457430789116779930069296978750184451844965665501327377650279265672674513811742487987754348446737931601924906177863993245787572925464085384208802534758978722507554431038584228906153896281202235377465744187931157650016438702984180782450718210759996432367125198285670671722068078570831656165116121391466656786193298355248706607259397527559599529141183867268875015315117335792883661414363448048590551166361141094082560621865415856229418668719170698698978256809117996176259638011627027703547109317202453714827733438838292149162886002554683866986008266363749911786732730046073918512506099095340423495699825983221452609235759182157998640143869672631546686213563509239145848310862998564987402501561404538959337958238633528235606684509425746041897469960428485876483934203573829021879697831599895102221124457052050223908877547913275643661781251224820227405197464007841941538957743492032727625739246797838061950552538359183967994315966482021109507635989210693232249051682297005853327632053061839112412110116524940987500777584114180148159624147736504181399673795428380695643293304847574057906781130496717258732159290588682429535578814536555663088474536537600877827321100741039644402105685245583642976594920598124971174038063132278716630278795233924586546527615237516524695324098870037681498010620142285449363167501324531656589219521617360017926207413267075653073013271763678241166431583004346639768498420694162347180628784895643645311414470309533261060031335282982894772897060391351017209825131106022615339930971456988078888620614647901578562599933473932358077236847588988918489255017034161932692633013473563691385267158313498905960889563232326790229306381994413096422097072986741100984343324655392070267458220939825030142821297870680011685015743789183797402053257481314643189435511554483631121266739805076540289613311838867384722731508494254550943191410048602545109559074923761710329732576082314253757373904221723573298516918774724896545646907385785801646046803645440134250451016983803169113846866180277904063399471037229956238830889507929899989307868116057824553112602147971193450807048944230493103682131608446973132321253156028452669310083127189561017700796678574864776479802673781382198920179203329928744776731884037798638312776535156393021227914641847434738622320836552284881868445789046626954089093002708271280761849086343951326555531395526924009548934207678080217720277887524557845255449418706482111067940865333670324827229070222635806645428400135011866509233421275156700145192421416032076252691187403566198823258416740957387570355674730349174474058587751663697008715614834100542938467720559802060682299679916612400515990434902877632083411137250692920755774029374781169648915065131275398609072153017260870091287526660460790716689216965664872255677486379552423579431743006341611851758664645166870915468909559819658101148764472086623540762182634977928526376320800143458433794495824520706724573922082895839062730773390668860839735734570588522716424281886407709492788746064712262103145969269605024690886306509222847268842084462715552617404730694230289283931004494274378831773553353041345057585618820056166503114477074046011306369337094492876241476641774021014404491991756868858991876293978422997541286238795540782403121036946290261812875307129246905946900313074699789326635314685743935661084649703361342305960702275559842359575330121039463027235114048315560621857014859512657813741686510856128353312857209256843933614884256531002087582957723518596505009320147383566249241208156167373991097774751803854361382583878800024993915832147507997196852554672451494062656104951681492951372570184044576667262078015519870453638456279600826086897989302282877370926584544929668503591246442147355649455541183714752470532958479857984030490929718373163833785009157601919979737130794769436497302559954135071820864945065647672722443163993118925258352102899355030908271809678111773069206683209691685126660220151981006135701357311878129645931084795341290890690623396672832907161345914199749808233668585707133740820567980171821351814069846187268387366229172232444073041292122293907659984269208318638369775394203727425342415381588491364380970390461125385548895742013639228646653073894005056350706790032949045652624871270170993070957535159809091200753987507699659842369208988942992644182353434593448585264392769463391879554156602701559795085552482553219984726823491219691547959888420726286385458795865611791853298882493099604581137914390913891930312179628260146055809387249418331055456839987489645838479768002850544306612667950044559040315352696868331926945064569845398454364825924784807876725928694320840137827765260119632029783230873073780883185492155174248390201981112646274463642908938655042639079246812144061911184954041484715849595652911272488486989549490385784439487894859365156506498558816430050875178041377656175261997102259778092998946155818046379092936143170729342833079400716818063483312007249513330985518416169167103604315785715728817423065144287879048150733154270144864109117138506406729062002310051084501191469193717000908663062232346532813341444042810246073490506587784592122617369551275645043696675692151827412996958117213989807764632878113846626665260193686291543598606145633200459941084153358237649387721750208650765073832435077556545565270097415050588590797843152356442462978296867728482886583722819043763462101171265245554401853039817864561387176581853835021942703879059383589833931091717023576649476977795872642755746841669589204498142771990123262140373108829998418390147330012199576757791159126685202516023543052072630926606397564995402033717947975376541221531243905716898611040720160712891426072319917680493707929019060833587564878085269051378254357940592741780421878811838480186759279073281596703271235978368950777751838465843674353446155131913557855596256285126988892946807502596339774688183779664354381206437915250428562718353431832574668879583239784880514138672080019085625214804304556040131446960498384821586795437600603703614903985191747228669104958967076168822126230665884959573055052730883759414461920285235425815500899641688632500414842505678062638622644143368486316098544242096994668153127599670528245203450942717118642182980709999182134489979513024669088018653507516191229691806001440453041502875319138430808607030068869867917233010445546285775719334489965664302788315295360143777909516080931047975419332164106437307925236325967871163880641568233518431478331294884867969025858338322306161623111950085551323406011270427662718603004393415226423119082549293036321123038335600750177345102008916735527549456734764913743240135226863580203116800718552588238926538347708237912285420413116658279365712111012177327095316380576490896630409895925661541487734112796469405772529666368389458505307349781227912195830007560373339301430479851964207711630363832209811163001930154360352900004425020881002870867077255441910693060145724545009569125605747978115102304331503000332744518165961316241325010347917991994137984697899379274942381492025455085548146791498270124556535184382939967724209353864874794599615181064072296733325011704042765050884712263970296211391981254693593856683053532818071618266777999660096986662329054133499700315702206287778719874062498652380778445438883766468464135926772518280934380100765047998104082767231015897356911533369040125622849865818620476489104862493267585821767002584551496227900322909509487231268364256945864208287150825722469261272203804052551715043604850934704817905680654739217855031340041451078688794188994853407184782080845196889365394617703591609056424445881795806950876206163833152276178679170369366006227406045176443117060187300048040426421796479035099009298880250240420287635162772894235396217937914314333402056149074171739796214584207312350645178138924572724610133088389227739084152173984458199625641993894566854749113701886632190729771188395860553039279465757030751375221061554263770080098545491505466736971019921191703814568428493893668621520035043632711880244894005140871925018426109229126770661893868052915518089644390568297710035579566810294305389380214155384771493342043440584231149761060791714302397090447208717220158356363524600871346163167912156496069780600345497287248217080774457275333984654836186323738085378215355592976153846123249367964113085444527203058333375032287666163551371303560881525686449419692311305359228665056942596096218025598182732585826224899541139525245861173594376452758622225148931500947126396375360310400948486942269136829247604056105018399107501807736468603952600637458710771380308212155082015431340184095682363281294795319704556239811440139557738864348850969288424666675734234770790354598826193884993191448501467428252869823313136734717017947885049615241088709027692468078032320273015490636684796738687282643358660548357278989701222951440935882455424440875566250425510756875460262112651969186332960285295462277883914080231564958997290350330402542871480734276789386365563646095966886037057385653772601681470991890967192189474276392087807054634302133190562247185245642390754318199364618483802201455312795807633764296516283670986537653562868809291613263465591817176766903366015435222542113991445829878196843623279129890056693193389324006956149721408095625416367139170889447707065369892177508565397368958928790279158148907653855197892279773562131761237280394927558633995700391953470143219766812302018122962697376196968818422478550436570362706531308244058961120607222618793082165614099614255141076856254690361238429476724607751543560956441978859524273137289634633928746226999518636629613738315005928516514860101361337921054990975715139605605281122707494543157865568375819386435417120612665584027839548513600258520807463768784526593081113071146980547001447775429321205217150111170577698991231791286716082870117576848928685560351923640563530650197283108370268574998943953893834791199376632799936966129229835126728122239331618564665301277322664278143297764824759239932388488781188212800978074816548830062470051996427915873987559933328320715794983459294584042415272280894542788848364239824004766695745499454738329055571540694687706246768895642060914929276687068004447059521818048437294134806642857460781345941360540412958438507958946855547584106645215466751705743437890221902754694552845366156761249695639405238586895352524350082894661029592781922045324458950008648559536146021019264956407515171024047202861435061333484971576443722378932981641506436865443318602884288337207465751717499885832657681419672010103979939589156680055466379098206904931861328531631297832357602613979344111242008173846085816534685426661537395920186071418433713326430156558169600717926578428547297729418654903595196504193066590008219067988197555315354877999276873112884687081657793216438056057524246019779474116935678635387401039723657803104009698399746352523173313794378905721426573557176863586951370431049533709643921735634006060526567037501728266072935616461716956423821793457750968800985793066639255636796361274069863416009169083715367250943294299863119998707782252848602849834384018057723383320038843485270420434812955915784271601698490881190715594605136458196367558849940469269610509901485656217795301142036630820406230703176535513642568939611845951170872181815250704131968028590786580082928002454608456185736505529362711251510688143925741702604057922130265753552224527487748079384346629985506654971440003688695606637219901620013330915025006304487454910695716260285204264297121967727676993618961226760596064984009506994274120523175859964914334847084629453035013333680559479848047682586424596796548274316255017114409955825464697127505779197920310415078895425431353341870379328187572552902403926142489039237586222493079819560914649603377691153411672145094411703359392275829161529530794148107440292136594981712728549567081296181262257689579616760224086404782224318383912594719313982695052487052245529426029449045182796622774708219692693110587328988767017493291839823976380904479017102551103884735007741822302584352632438187110637207947579711284630314855973199619866896376114851733016831066987116245832273163167028813433045569762050423461370025847967074906104088518141716469331534093893267127267944197224586418694792822888804245587151161096158576254672013827740515104138646251190537343930025575103108091162706974485262017764491722133121978636425163707435565318300395845120001194187625938326705555468238782672918572600095254321229828573461822384656728788613594430376938617523772325665018769605285077428432118230269787476096262600331554802260607927593502948859150573232591790592398382170095891398687480962209856363868581669334201727127172844244159896401099822819757020737707338771033187914978681824592792134767335328263867370404032080855946229829317028999366590143560045972371500652336308200678196407086304654997838493228036841220303765403695994064663777455516984102384827466081301401699401519817875777174479662962829763976599142436225418923437585967953314287857336582384961685467314232650169638869155240357092438433694298756202605013486526231702603824764370205122385719138108537019776613142353011220960745956763722013972703979663149479648913754270252640168446513700705973387410397637390786009383470918635654862237834481675525228105568867870049040997139696307280137147407159625005979826808409601917202631758296337512401342859333919304135754173574413347094381503372351817073026802916627458034353318653045796865552070728150340580954516323340755877100600361397081006464009815294357286727635166636524159443331334490376352100775489895790429916614642431797902980975773984556572386178196846172482392935377808915361403272962836152539254207335324530356668947757538626648043005027456406265354805569480142193336418115433002745264437747380925039093636964293481282819078455373897115184905302732251725630314835041236109299955288436124939293311625598991310938254964723121282733665181962423247386533070419611219669793982823579240032986174603194791937918003859751160185566584801681810715772552659697656414299057586846757748498639815667430843911782979335974194346294368648371398498922109082612017629975396405136037538079444584372991028633765976894262492292172214892014729531266967413789177837711397720233659181572749196416811384633251786301147128583576480389562192539397763027957543356764961911555021879016987918814014020903524151459488822050705895894760676643116971065512824338698280539716710240649786701965058628085312809572972649403071069764249894910453527727633382643379552898944453743778357189835708457435680805199445850091438950848995905196062247628568773072805610345003968505694101695309230905633262103137587366906233418741033422303906773721602223502122451474803838746658147212507004248638677671668275075396008918589374651444394332332392665590252308147270606715646588018505030969745609114768465012613578200837666886779722986633993312186143344454127952952499173787687196087946767511434795963387304202492003837805394963978175728893354903810238640537295279507497833983653712288214573011657902692639892300158703301929672805356584300841085117549495595483727713437623977709890465382341311893326600912804557038412583354584671748857788492428007072092206874831674209909319603600866660873173900823972266699199588574433029211008580057763579280993548954739361712285359454280302028278429081153541982337930352440966942916577980333177747015885443428442813268633971547560066311346425880893322682998292701197035037347020691777046705212029006504682820375310316400703635638760732032914575180816081289524412061458685290314664459769114464731848076499246786778673207753052106930554054523190755283512330279872951813276749541916342723737148629173512044165180616328804355939390228080442794273092832656459399366195310922464689912473703035456002927504575812265014268991641626102131420104678455204648199769603269588454725768604418066241478094985029054076152169616808323862812066649057095087680257533279993692445133886113618285025705042475143279987686581052672380946691675227086926097973184398805447930457080620131494089036473182135889733001331721229637971218775425968262521645554705536893506893897384645558984588088811679704544573816606813102770292463995943275967442991302290768099059312098148767001265758963817689095343902570933051865290046341735936284117999696234755913633671701685563260410954574081973876614857207760217789160659419797114125160091255585237274042417296377423529687886222383838774482988917802128319457593245495933074850736442239335407287698226343346662691347161846506162036705906340415716059984895297267768471631396223954579498869568969130553573035407788053779187293429100930406677681906500262330466702909450782361264936634548059276634649057117558134733261875441844463557304591878501713198981891252031828524972611466054890873234192580827894405221807831763539232526495005857931923980863972572427678273113108827975881234032874823000250345671088642427121141506704228497033976768278050788489864102631831467990410127696387392827260616576110870230293420334632001635151330742373426462915436686791865736791600581004622447795314887209446181423217823594399917343937728759141622117411339880738163899477936813197816230631678124428208157771870667435264710974602174261345347967321196753260417811059649242866601735514677217951787955586820883154482394049129342061161509010313731093001123268458173261122427483039510923552139623570207339115351227261235198512908293428281445361546010538881585090133216535484269188790416291162583677061610077827063958467500934609362933039337491354439363509965865036758621572713014372757887772370874867818925904993659500044171081262060535126389364135356966494279261192944388467432841181695070940162805927279001764153070815686948124764280692089082933759007419214601941663010536849803958762743577042346256545012465914912316811673031983549865066495911219649230621144953416254906259862427320205285685523247687013692814650627216865025807296938434418272218875531504283611059807018160474647990294132460042185618131424137675723223065627423344044840695675715714983008968697330643232222955571080812105922141850588492467933178304154546045030166136883752461272953292451700521487969976080243843162822067698379464570626896442667518063099693537690280090059517853431912515367147026435888358094059220224238115624407568686164061331098432637604548449280932847723654511342266271599681963172556873183839074466521999914812659133599153684740463968661258493052080112709453745347891397505431584456254291047719821983876038149530384423389247426273405987049786000210779845835896237565816157856349089264715364970376356840676952572365650473372343537096542366678937950971073971431643192451768455925742954710296521344382997211766953219181012102303709326937642620769078125559241826455783769218800270510700246866419287484869809830750769801968109343112993555820413743537204892501264858426441330519339955599614969935864354301974770077297879492456569930244235313623189359282484714947468661850054260477190068554617893325071183207395361333789592144701527382195616368904886198024950407474768106252296338038734298651328110443034588331969568713062328000945631452689805457603307677288481158059981159870293767091183624688165432161703506566311413950254368503718351468251245577102259593723750261676332317524244401539325974070214585003457750008590813947034934443103164184638604323741378926762817228455329113435961315132338333660373394964683382047776621107147060494082874495835520061961885460766870558623866389251741986624702781366931866234824326141520160113548145973363501448684214801626147444020505847246224689960400565717282640493759894594507806153053413486800207658696591257627298892696660929302386077346265748218290839392427073260602604003093469960256380255432876078213457315701847238197202954450361729792512392850758988546250108801338556972734107132509442284480734224554499856707416474393106703625161316942648499340067004569583841423707281574356707588944641429506651811328238523776639934573447589216437923686865117045104954886238490913660289354241361642005132636730930861407035749728108498010356407976864163462675701908760711698163117068991785742101510763267630144939035607043108623903020549928414248592935213955363888261357466847404543063243806356797855552614352388585802558662172353655413135503345093359444987541774177114393806408745051004293013821324503725839444598382071843667550888952897862977530591355543539972654564852391665471185976635498036613746556779313379063933011844194043821152500288750589638938697621294241105921081750984589603465424077229623487741015963756057253956156436591630036499528671395930503858332753082075340345397726993744840163204291163830451712601699593821657433515958665523492316568424043036909216531121467210278318544373668615104047443640888015337891022017977538273026867806524105474901170802569296337578615042290718419625744254096717598233830330304826505367024729078416790713792340609148398336796624534709576546621170971438708187816301385348291563957325750359218753403963370970764603053084244560967104886195584825127316912731425570518001156283966219635784809749281817051429965540684874291199557206105579234165374766985707451559954404080971171862530055238867153237705800675597829442422613984898292691333503467685870052601541873801125214210328176599176033161930373254664562295713847853355360871940402170917196549781119912771959331046429770244035728375078638153492150817965961230257528032516629413683218055602148186832323948571321981915670436716178253980133346666150874357824200835188287953192146812139249975673371953350001195483037056362658232281409501440301082404754157707584578977931944586824178941186682589102019325219111762682944189652090833323823053580807939806367888853545613627810459818827148002838667623702014817511624864173802738874022962101499012365969651078390098698804459882976434621735475813984042925206493050740532505973498182591990055940780466023590033152998900366766934204980043875427593113934511393483658651449845379528266013188331534653363295247557759314378684932029371449368414400191068803507725067259381810355095142094037860809647254359755598844402127844489729477440807823922523415677682347680738248909309494004204114457329261931633263173046767775826481211711347711340884699359956173853995390072423056074131563447351030220557939154648835378432587131383568576542562833340007712972077727808074993926744615173581306591374515978312903651204165248779734650410755924827710502981058168553291114802181640942965098762637893532678111627431818426025143498899331403099414158939738476188804185873883158808827777891312094953628927257424598392131248556617212666561097922916308334095349144901595668400390007408964765290347514977896493629873125955667208175293337353603833988470758574610312012076134882924692722911786304187583810252320557881718760692768234188446620490594121374370048093159645628487785962798806423404634402444260358326061828427716284045821800747670819799789980214028451274192419048066989515784383215979330711170866125096646046817644244269940614719656875306776574248514255951264513107641237908856728152301683604659520126092400936293527836377965392919010771001611577895664311065927168086643909378732475194630453683899909674187673352304513451704121077854511035496216208993988668526882135940931490060400953088290398045837022431366510795375771147727412726236305749007072824604163208259096310567366913783797808358145297016751449191640952646182672878299176926863781999031655063627269585878639467124201581829409821992749994922912004416824832259386096735360786018151829441803262591112425081049703528789675459897994138198360605030944549248523926020097265511041466460118948687632597765161506154054264010579064107346602758320189995419369286091735958165449766358140644359863495162144122838618443824480262651134858585894514340730133678321332701702123544317323221763130466057050499919273986837720961653348874545365110444789517694101172269568066948937775333921355535423468422910633981027897297597660873188999626359162995293681060479644710073296072190426802084171205329045350833923513636229135481504509959756578337849895892825998055313384748179566524847930110784364526392629082549994789559549237180392691117688898896814638465749079813291131200760185739248319874375105344379438162743858705888154156379569938533974084160790628858658588371892301662468617193380979923518949768227751604149139030658649015038452909127811033829315392587573928256377115470216057750580073417793789046710130741047165785933343581160324223693653143803198763126812761861816260390702620072419561736476421389284377439652531590550315205318084410056040303709955854116165745963252050901853191610857876799478361496632348290690642178984403191419886537565897409279322168838007745613447658705958721067538448589177063621349217273553265840777498858684360974584527647049392281302716991409646724838904583729631793506611545597898864817034779951451951928244016330595429174799405450188863372410813332188968974093992965177220847744854101359520581988714286122629296459781450334090572678529703580560213078376651499883617581149517000055870243224419111099642834403242682059186737649250818970989049025871584368101926165181827511769101237699432893168961024758695209969867627708732849661597152622444054896717066344119506066827762390287782431954717601260456315599456432292785655990017480682576248050605592050869269314222394758549362367355764194076880374073801723486581964882321823892360472140473402448375743657948482718934208547921134463968162576566626186890394415712987729976513431920122790847466560865218750109657377893522920828213575771775266836584167654624178144780947781430756256896821118075549605226108330833931155811409259161390211284696872710200267429866228943272152519514826785924912846643661402057019323135568661899218804750305331842257800625136271144986883643621981430164504155504857706817064957618269585170508028482539994282221654983248998163821279231152303173000081079068694311425843395369652400072929114511934237196015044020416638099033310781527007403943501040155677083755972830045719172395923775710750251501611274296036806803405992808435630995332022925707175379408111960929192425257586762969127514163144329804179800441287248360335942969056954876236212256647308902154501981633992815234273500205879821435199998022083881089651566624699256625601727548059077146919631798801973513938313646688059860316319517086800839622027696071595116633266716870055092518078295410858288860805409583632240756193471084627841139715066271283743089015799065777077955906384244080081205687514251023350318802832708341690644739721171261517062971608811764639119196947147044552017339255120404697399582709894882331268717643996192600556065164041740272494402025513914070935901214300439665609850521370961872073022801455619373659398677571888769515382953499014801233420469877527644792137385306383960868877667671357167830455960940519746214101251826253743212209722231526084450918243394389542927060412831543995332914340384318617121156591877216672261370530597233106493096204798878372030362865690920664220142995004727360733484118675451690851088739670945818706389513107003414053475707821488322296214751357670294859476223030918855647900169191208333772770162616495926348692906832716977924220259176493507199475781000510730010028528922438765478868409079275368440113628740775649117062404957429169281248210486846483603604983660849594424988798279959787816721453440045951386773254541133300357307670476117067552507532047896958521343621959978654594720242254518193340357704077514293577049120759670744882615243273043220712238929045437183925732008563590158911452572055719543087737320118829203961155643106072908138914126120893785475946989351365609784908989394660662325079188986645455167909462109500254766725561416058375426198806773064954830754342612889497848860624654681216665171475592890962952563528916215867615739927359781719196054527876801229475340380269940385502819281622057602513140582432461947133971342081451114018705376654295778178243631070923870992192382186620430578530485249310257142726463166642949059198991261622811501859973415574365893660191775646224795650156782004693946892542972324945489069118576198322434209668401612446750113237643298487725894665910258237058540849811180215084870390658542618870243251203100673637033540919760294115662383771934418383754889785700457563142152768680948269794325228531323820856545530041751443862433766268413972873201151679619179048550053752109265797480763624537946052835749821054753075616057133076265768745825398499116607511515858754198968305242716174575389763218772354266998888558280980985995177170452731498368096609417190572485861020987029026345623477280321145995119642758728057733394970996554333634356498785375398319081787610986561086724745068204124140086043722921707475407657647883738937059166732293370897161903369322282172875295146669711224573486762770254669261770164770118496973072131555956442246450376779289700421461728794319833102711766843837249577642702911964398444337175795906931340194319013610019221244940888845404710955388693534853597339688777922055883366748642972424664681639957923139328012143873521311059615030697923433070049182164845589581209688198729827335758018159964797438729436534610153141306206540872044773969839151027583421667418228110461967969537481802197338963230580159237384967700333329983639734991154946660881412921372259133957909137017065945899858976964815702283027287626255433441942618153594567303049388093615211733606003533693218883072385643359862454396965876374011414815345653171556387132984325474995436556793870891937658276653609987336949464252029467823571489481878479013057730705364049074937549231604035979757686474769513475111928744819859267930876830129278336688890696462653379529119855216668346468324919448461159868353640859305196496318059028793841928807237673395762837916023253191326115798399119258341680046606016328507683578294898728280575973053056526203850239731632042459340295607776010105415206454048403708096634385536754462878219654319593331410144734048296308502919146595175916875702888660085794629054418843142983512896544745522167799412143396615055208871550027122251707310387844135071217404703039168036696348642220744736369797252496837911391485805849043682816788763288968041557078186278439104307196995022615361910763631653852114363682296536507456505311349570153234210945867494842618190732874182456312021306461021161234260028313412671859683925463874807234898956485108310544356389760789037687141187741252170588550698587447996366005510579041008328020028592891246017387004490806531534058145759925120291641105254785690300124270033565880504587961835199247558562374320440047286307505096006636094907858605853925899403888157901002408314446064190686590186674138148121506059653871518672095883811856983111671962280541498258997813293735657051318047858496048583624389633674417150637868095285547858320784180684244202455479003421103707271268448851177317682915946596245718008945838070223728847342189881155560698260610197863018236045800210289066754177783144953619725349129270521993323763294924329547813152507882020268173088091405652270393748053472418077704271350198776334697988691769166521955910096675582395276414786982611037386708091916302656545931126718466902761828113404147466888163451778594260859462790268825742699210682167883682056407780816553127791222237890277659346194227206379720594110713232338968184839553737902095128972239256917474230262972663682566923378196981147267764496232561011454581007436988952181089475091898583882441769444880045671778014519583889126409923129397460795418521171993170969835270839055394104085575285414533175216438618294966873612420917605522934134502837518736754559081262533967833726345063473105937805766364661883254010179216254451617345150036805275190504553138160055558309351015837989164543676709070189185166972607921347106048146923044002300473243408638240897323131039142800308337165411499794526161348835806749247445230661533404600711375940154666199543184417480040238853233007459325542700034320519023740722700838437703109581999237851046896812895082693704202600656893558433961146110819571853360529963545799937069703627083678420948725667940185188339125790126401618535689106754406756822332335652289514875921159600058034359125640840087416469613097182068434768328370464004609970281691194599615896614488078831155333919255505003095184093080194866459263657088140523117760117074628523618402464413978695185564617074069682551400521151686710153560939451772540347935713935723932301261603479354243458775251215587597027419289061065282533968338571139348026423889689027303025842955114018393737945219627130410476593745797532647876060837390598894474313375873960092995436918569556160343837216772561802646036982864019512593906172920981958270977265320631849206303223298985968711266055925699660182004654943675006917698710494887715853597536927733658927889745001553072436884442881339746588958519331122684116130300288067759163830917590394894825549533983979879231716750196846583062095282717733456252659189044173636858802656321145956148163753924796133054555195669767160307985035252815920811548303048960133062672075731885868327010712707016042771860115896243984485473013078510355178956526053266294033849986359936379579400589609767791324900327348645438252492021234757415349682722528264667392532132274471478585961812982417430162845119060576252137030037442022869554692117499037580232686796866309801052483138778993944129764373649090434256312382973977652429820751481748278603869176914845559879616413637773147989581605873626713534213057321450267130409345589136901999209388106028111095238745542996820034153672240171909500678475090079174023559369451762435573846996148061404355309091936957159282062652778860624813501153139366132654065854130770275154506347425514598271528062844508995837340731876972741018356163614890194080441679198348222959444878561020068052638973017639228127634581769311952443968893923531836432794814063149512633541366589647605360584459248900293406525068079613337803765266486130730244744869535964646177654646558198016537927021429745645588584595943913598624713688998944108090373588416346084081910053553706412323501387360652106088029727226834848440926484659409479806119483318124625603056885166567905655116600838193807372468566585555780024133477973943520977558980129455730336990867334461343351980223427167754896860086445809137871101352086789162581875373898007282447413292397589157476152097973733613405180989926835971807094754477006220481003591457290913064270320357681293717126395872324315507962276105180037720903455167032794537027867525742365806918903398840051533994446636172665799823161104578779799808940067768233308910972085930955934458801761907977376871615918102395587736017286482556743208352603756628824573740569783705112562758593461044754978662351284970835176379136239236369595423307796938643411418084320047829786406721328022075830524478390792034735923572869127698385163428651356286347881525840594196979288078805986816549918763381402767325175411226017178177467117015275670110454074546835988053130549356644351587003364655783338562072926347554095793959375418729631929742797842243569356903776173825427490667989226456031318714968846816535605672640110845498278373919539295510916278338190153536481930894821698006743485626745854517946391133652536372992723360442625562466188359508523907157873458056944836938615677740363561887471353970955962834213069336399508851661030281810552118420027978908076042167768788589687537226426201594555012628205288675148085807178295102283601243159675391613386585626312916048732053410440967727793240549250172771001688049946362453209835943798506118325316327010305799540259446596247264609899941233291465957528499071061141659387429950037614384507186340162213487576946307928590976420492404673461993608663670022416403988287758744040948165446571691126813491442006080968657135827425686864681564247367892079038922354313569985994521459650224917015009192343942570028265110892906380541629212176842779698666204469207260611951401245403350933405699515847549123530027440836947626097963483115158511258066099342343294438135484311802881409287810082760305440073351456744682466591211636889534429242895145230085120807131348121962768749167075795181623611681359994994182983640545849146598760289365413836737682995981806000050549332607985494755730037463187264594598286115372194824567123485318002174577690635497203514480427232121324783314684152085530771844269581683848479447419323128182668094111905040308258105845693216650817697619856243643447111461059647343600284455543115829813273735659030601192139403661155896654623431239749550931969034405435372115022334869862127212507823476517055240320721084587005171396770908256359683223705945423128794532443936392484093707855220445889229640863329453629984508077163932143844640250823510441176982926972480508437151978185679110165089311551575576283890952612000596899081579616081959501383553352848390516244543811282114442509253478650523172198077572481614418943039779532262139525661999823907445424575709166951208195162191349274931822495033995420760503865132074826614899992862833502840445439059076639925370781271554903482359672472732124539492186831322956515383787416317193209125122306709844502581269833896220196907332184639583652529747062626310281196710523766003617340147235329198643249408218686144016681863395716982956937924933682329905623135921635531844324295301159573656539129963834118688974136401106346096643655917921581311757738389522608320290436329453929810801393108988786694701293315020093264809262385874128484419717428297251853441379488690868141895292830854617742589519560590466790274972070455936453310995176395394487737738534606726088339472785875251749476227730345463761091537265988218515998802464039728660791531805454600794542535531543886780613762492402969768744407759884157610727040102716460751654164078654349023409996331285020208719897859056912865742462579432797535336526340900970413126703009687553507761216307699222694415481027153597300901370253881421954522311405925096481991523772514662004894510781178665010424356467389488382833372481709173852222081537854684064587991713662889602539897232923715793920687782008505779683627618629778184917527948485116493692510121302405534378343645535857959936957111679599303614501562235694787030512780387187972104901391181629523444478810110882460857306567218764512915350904844258199325649411191774193241099911489667792267357891808756404516590940219989354364967904683506158867367071996005646148159339823440445530059672193245133048493265434699684253590097636899576189152231842393656169511897018671331834302841546469722115464972419478274393965581981079293641601235981347042230124441193096607127864575010105419743864799515746398101561289282530341360729633851499241336925580151738027894167450493865675359135414477426911652028645088477266268123908668491569993815369918688828755373113723695694686097474887823465734605068765605851237489637654949884246964232528279562745351248349808623789448123996428580979214140190622814000458083778186179537478853837348705334766022958770429784553139839237656380068843747788012753759287789511910143076795539693445555061791044769208939893312085974411966937741672124498818029218669821145661116467172556391488246484007822199828094009592259059083386520148312354282436352670992967632890771720311322990358448229908840657565164310663349981844320010736491757592806326213305665655524145331311166437444451357855294184814339577719861260518496820727506722316196614970429932610431443872792511897964646975489600612012551878613220291436472441804962555441978023949144523283987362522499167558831945376820988314110688408793974122525945177560827398347929816118109322472295252036528024513299315551829174006142006041708745662960164962037189184052629761937470105177934353460301323463364938429366432819264464794531251103848937800250852970639453258752051509770549211127394577490255443266124105449702421673293093466648092157318391341273832469727684543931354822952663485859729656046478434077434568067226935363110735277976336619836257488642028223884946954277122271941069893033483372291450221155537506494623802631408990722713743380311320214310329039157123385399361492974006219919694982239714787942100732205744326362885685038630508233644164730621619022719343720444112223723550227602151276792038224962023765976183862082296626477693080420821508095698813841344482107209741544419550546155532373243059863288715333625404233366987466173893526728917921933512347425571494114647880457868769824060145389543193075880760824133199253476064883318065817728827981606727573980079552059628305032152792866629236730293219409716542119523678624937010427716532771660213465227516938939989545404513439570905645610388148609837174827273670943539021060123461739969814056420895271285749243139939494044483980209641728642255026700014725747769222789466870996648681709747920529767489624394515782341399496467641674698946516722190902213467063805178055029757634198657577690378960768877440928894132974999188487087639249789764685094560359318157683890895592401016746579630182588788773267590821654364863681316970537012841115687327131217733117805262211664815231208613677037997980393339932703086226968417997600077374771309203743191637237721175746834955883274450874690927805088870752574391518656993099579555022027439028024430578933146175073669278321997918897420124380179047568691602224133862856005531203701194479401403254273521002470260308111055095830519282664253935078959765774979200136715910178921176399975881456954376873168601645416459286055727322558388799014316921597738929293998382424208170352077045465982741536015980136950117334493060446847051275227798674692297028261507142323381943604678993617173516107693610354974954059265332935958818928858155790457111670609134223742156899282616352157473461309777048847022910512512932224271532814273816316738953751029435502010169946228146342815615370825605341839414980168444919414666034396638239285750219648717487501128387310460089731691222953747156590711916185640083291943195287841207144494735818314653986679270319282672001576507805837487840568625595907803268335714885143759073066856738189124042344172049194182623696661087899157679700574123916344164957934151313420331033175909813335822248983796932205943893436721364179291424645721247609985007280398807094439690489455500457816265416769786853086122624349412684925091396545458259696240156782885600365106591279791715378094013167550090404174688108431876063810547464011209508317637793044469665505566571543225508361690268917272721867450354971961848505402004725133810040878938573448043077173897621314503303593687576781026497877300609628211678695099174153532379239187648056663883759001321129295315480034797305142699021551523499014038710937650159408794455064542305760158722324435431645748293303401272317119191764726100159812549203289724096653784480691352147786156155152854648257947190250232044431288592512104912411547338560818828287704767536160407095084616883594205845355914472030327136647799473569683964634494410758577602034023166871926937388462710190008113257717249589680259392252933871993896477827046613131645772124855675543980793365828816340222209511358086769368662756753690966011311149933064469001955717911365414492856432835400754749964894847163547982332273437831091579918568377562068186885548947525090629554261900390814910585641322566634730237506758148663566056737499367312605282610265112672046447821758767515985535252828754006381063180575652872589201736707913288696235467103976535989347479830995858210889868131228554244572863866246274936877756996388990203118594732562517422233079854362918552143066706664010894702548801802347073531965027855975808643975979320389336771683760055185307840793484792176993509566446514810739615354592875513762906547013516455961425541989632399443432905870366396710588330056601373030554809202090377694049378983576975648063811154901198401424937316911412659886144533207065111310304490942552956706922274773838579771673429284087061918843123413499676671019708512358179710796718777267785277530090151123168946739188919829958474789417758832222284332411403798911161163637070948896090521417283021975155375471207723182522769118663568370860084288083189499709463308279707493696564101843990627106891165236522320024928005304292878725125588214426259814370896208738403385599111587498474803706106669537077366735075071965537210214082921304091709793935086886346212005703782877408857513385728119230599781007915831324499948668192865394233787030723235824953919536748098229461345334394937928010543115612699531496150413594076731625624426739475418621101273929348187368432075371747808167098774626938009026599760828420622355417726162216260242789425947696393102872029648615491030371358641223383547874031963728924715110778741357075847579054636695038758496029188391384514552998114800271235431790434944040932153798004715254623244836822589450555637404321814207770510371850018051668046167993761058438307419362104722832384559850844857844572724224240490131190278823220566669125501420126910503072109915745398093285028403651405334999886758562566506132722346852140083926444686453197646936736708972936976724878257624232408724114730666432589555645540573087066714305897845091874021902162994485482968103856546420672026410061289930703635075293218250445572241256442817898361001571633842390836422174726298309706301114770803174985128186045515775772423402251465968579412488669666593331060809974689112130858463229206433938825143051207660567880654768100823902347562755865315754961032357141559344385590310364324019986119665876282798100786173536391393802094439515055423744020249919121989725612459269643908610650029757577825897247159970589847988527852482726726687044238103230981754703472866090365926890118261843618698244313467507157456843278898964878018498770971787686246648544640291907738507415121383627030232690312929805322379977833866185535432258892423442935717049025692638884475704342607551578892905847182076450623595001682218432585528137172957725707716782421206308406701536030807216259541562437661852719232249180699125434204376187453045354847767952840481419208099185997529112719036010974238109952605963446438061062264208641962937660717545181735958814382345344883560779094201952142016935533538425991184182054090225438125833599806312947467800608444276972946694717583040739561272895669062356988929152993597323771229220962269868144709922701625614248917887289823890016616361189424982483252200203669116492350829262298803550698694814575285435210327440396948731996775117198124484121598100016780869576503737492732171770732435408064310250864775335918605389109044794828108987215986844513503319790945677957016515937331229105444019743045975851745786214855125278793548045389177155654340844069696830956501124149407142042869875092142723417262582487975205600086658816781211986912474195862509308407135715967034778297315770131024999200685335333504194407561565313363517804360541038913447129040652405358662622957384235128841011638153740380560121182540519899842515952048543414154475723061663009941814354141612346441316885859959942922355470037056962929539102616872038189222186382728648148203879441912988228440229260351998042795376344366818369721747363229906997938662705080241182624073365502427152447105912110617633115428918005245339506017370726913317386622698311619026115223322148588845593166751373831438646902906365285272311520690598648881796990912225839962232973028859564831111595601897405022744148013797676080145372224757786473973474327510310843176553284725642851196152908211827866054035847419308841231087038543792688766645896915245745946399416705929787100072994257978616491422988751055249805388378673919734442717903229077458281114306376013636456533677705087232638029996984644566047622945201754172396760066074118022437967376088658565333649406834732417928352689741507239661005370791655247168735608790102144748002905345328671022257456441601045281889390661752653016485039618856275768575245509975034864640334676297302981332619971566542116966700479548845340138862548704944122582041120719186537029565794637625004426784257246173094514342703686401332469421681482355695721787738649358826719081118084929623232035399494561201860658052245896130703806382190153233730974272908675446909090554282053008138630788604814258256665375031990409489356845611322645652471731403851849088708963403905514212381764404252263136380672619031294532176915954040256746076292549426662912771393261844644954069768224351194399295398287101319029235224716814747429812836770815458284662395117917550749619785405865353925130602662157904517817771325151896587515013568515419488879326864516763778284074799564296294743590301627287856078986761977320848306044796609377171851564661423561077660826716235184268678456190485005286592891726849281512598627935866208959772226222289293714327090633504172038552926313771596250096193149071869667238874875830339206870225122120340064609762489932663136714122830996305804832234637619345524637491118938451550232329315796180758003487385480113025576993229820843734167904583225226624843103896347802104269945286387435613270669990553065742460042107083390833414292655444184305077683392076665708062235193061822250983151567015090504996941129656956239597572941751158837059081407301814018914188089568195473665041560035195082714388244093297860864339305857260491382192371870738148233922958814486623022159951777622351430650800771927473077275285235073849897530316709843152275530678717742774151987874529846786687623055132029978472323154549338263934524920589239762184556064845971626300546704667870400321182201906411652862922602912491514998848310498566875316092261895748687341405183524086726053459334187120270618590142839482682298558587508013933081338120728558233304866981970960562275604959412250356542717957217921246320365330937087693101322293415377433870573687913955513099741390647907034536933004531891938339125441554450678020891975430600547953879152936798021237171802897531319342433849392122988111976523918363820271333821129418011056598599324263712653555899300429088731252701206457418494030418860237072068263078249950419013875821799382705966704774005489821583287579694636369667217207057419683242692140042867208546399949362742206257297143141337292920918407477469299774445698163557954436014720491357991061233377628668582791318421358337531967787543675710256456385968175599595248356957995202076749132084810971516293571506920964251436347374011605213346952879280334539177099677991399155748334160006240275880031813159813251374149620868809575835835410343226519375654404615866097026087100644064714907933747532761894005080930909855967850960121803334294089240112827932303848407556189222508386085558449797496426000350544246988877799252403827410458324262033071772070309148023320589919956809117411686955869931882110569935069076684180045492682891411525484492937088926256669665260189111096741270037101812671569543627388834179584188588802310913530363922392514445426470241867372237922215437182758217387321869948529808573622516695227084474921365960211286402739844032449914451342906773887245410583637908402069889423317015823841902358788819308757379149706173340010169917491067122107668065798172053410837754681236864259208285245733455075712407192840186004925943337786669512037216353941484987460454558418073375578485121864180887795048041849425049551575748448567543901917145839046181465371373949673827051016830138653767130340750594097074284831624177022488924538113338915036365259664698276847994666041485470691834784864961324251619265910756761202847051274093535644409947216598043973023475738245069175628789384161610004717395434644482074383789546770551664138793127895356381793117460650290680602230167573352876777199419045660153025447614403070389667726989648621332882410764514218026245247798182990458642316137082176055472201622763843038276971217287758442969658903527450590591312868773874951222161073674356168417550851301619075104628479911190074365844576511554544059411603213363011933128087299953260067060931063630379754249470938172045438629702417593996233822122737464020285749009776589440499847335610350747627763566001223871234635868810397733046513090670541439968392976167380836426465601374469387622442767422015074531812735574160756387259780054612721826181014924194765812908524063082732821117716356940444461295330983551198904815112634509750380769355991662847906374290491557613135798749191864977172778685979050485697677915054028587381647980371572040969026033454653829793370650797711644057157140797244009700967124819588027428329285858085647111362337365886687156995658473911697838220665182138811796879216613819266545047934494650133904358645764965244591867225044937750958076560753999644300955762437497254247107565988755096442522529321816262903480441664846481442329938675236156939513774721317290428047571786156293176411933178018103073464225257095055327615820045010734051311179582944820601900816401905617800134520560363154030106063621795940570420467274457036065745690933852214449978187659033273521510051957182924082943159593612150416402824774562060282434235389380525128854946023169067356359423161765638318537465058753963762797510043587161856306674570048505169155252737226090412480872963562310464406034002399666773073403862455084603135781409880032549495852500422002787111079620717740626231503427365893595747164526323098608786055800005989179078993462721972312575045007066876984805428761226958512842540057564049908446238310618188247493906903160232924986069768957613243264300400114725595687792179279084132449570588159467225454905692436727769700689298433767259435479100645749300706401447349518716591661270449832054876888751269771298831106754506193924878501102125264656195510366910597128922374243145185015077714514340183672663485269817059174689198746132832046985250576396020703543664530381701910150139167989985203214676686362253776625785993101971332826606154431840842288259988627005425483876823704163298391368175303800374550114299655223319129138597444547414306154033378635906371973775554318940320318425103282448000060624615981356133324580890654261077583582927081236210155375103752121388203371958103067030684278444920387262625473513958605804904421237387032024639450905264712489074157957640161518634144677876805952865441721981852465127802668718316089029976886209438980855479661664182229943675083741317583067266693064458312640849878180043107467510434535122840443729173029402195698484675006637821946391762956910428097895829914446752332269468241545587083124702600230828793255803106730853127114540292367326302083944262656405029485865713433927578643588424478054364904419623569105622464542125417790263540585050960085820252893954565387275518361210176387218915956108483539187586047757045909180536127202868431291143995850616324630741933303071270757530046965798758954967436778521252633163622245077517804244242987850133963249203148615606143146958580951411032796815805761578122249878952298101132613864089541103868962829781159529321042652149019516360136942866218224473003355854416246424310108282521436760752528438135404472199810948017352862752561626314343784660694336473390892072050609523965533217427407006103771610219250384004703503725480101510679680306188163226168132217692389183412064446748575127844952864110794638324175500271226090933590831831675975313656624555101117596245044444983534081716352404323346688193295998996282435368478062209929369108406985118433444758792491216959376923357867671399253044071677787428359380655657550692925977016111842374803971546763854331862098538823027811639760969799117712806950161710153319818596899344805524594051593432165793224129665345370879080997996869267801962089133002275517150538704625933248859659945076368360218799406988886502531408745907248719462033651214123188823637708949667284287196652950855634922072429151229729951424253554465633836607107348763035248213738354886065582045681849968733853339730011377876232651978695181460387877977585958179720088836465364733407788065803141950979659716884366915224041724047610937216950136340266870986099119801179394242327119118694694605844607131205587030365538753248318418456314782396770036643051605959468147570568198711320242923778168275108070545303683935295375150297673478521575094610180412122336633077517757346702650020015357159290650553072262246380432276058348243074008882573527042356373626893019382481773293978097608532094192939372341395744685141816594625699044066970840830688742838356157941227737549304404293777458961264987618088989086216814324118054930857552733567477098603797754187202159923704182307702825033258888793782531472763133120573808670993171418048196243872600346690172784008201308706995749113467583527868522185315833052049915861116223280238446187311137601099439277852015517200471116717029515311859190256296582044252896866222720139450876398048928912579089622992714996080214190546019673345751074883592248146055598630592523941980817472496189366526768922784512097204013652545930659297006429146266399278902462208792877529930801102040521734808751338781481216225318209363137421736779396599532965004703665662526449843245462828525901563396916857821321889475243685020198409139627834235334512865455464801202033004153029867807406932139583659809601585974037378919800076343261007498407287436839559307703208519086085181667281127431027046373439337941627540928779626468363074764512644740392527904369833682980023194389526072090365942501272433589723368240506227737549135551409409656517180129983516570903678120952887211110105920451374913872636752994751469560042436075527773708794564807698397633905647377357846249507760553517566229110601720902098181076260815679057768667953915486567724618905767029221848719311767429724967871764984537039726332671166392068562225459695214527933033004027809400978929243859345460253371436940018429237635293060487695872980223968444919719606729159084783317762243496625316923981909350108273118936423452837402168262528844700937610072888031369934465243882647070481926890147448676037025317684323079108529070194982007723722832087118547247560369804957108947300975814017271824946907881224903202982220751867450688439465088484579958537255956413334466926864711499023798742813806642880101043529832161190000254895237043919958728078297931516180126067350692129578360786421840454694032152344729242308217660573636995367042560505690746713071381338613758067671137989657129033125507605522181131216319951439428249330751301790946386735222716696228701748965226415615214361130546921127328294013399366854161293654515026924305451949589647278005739856712120350534049741700161947207099365366779378455700286106370365669406515336527952653129787579183908554837363688055870781589795919602202960795974088108085198247179931704826759473710549506300963851426394244190654759173483217505379687834805670824824660116904024228077461576534163976650736386318967919119353201345165685594060300850334147289516313611702566845142953504221214173734421442815755720080170542042661326461262736863847392635353599362465580744821490244254109512234344686190760466767691401573069195496494296279371489425002970322082216926827875625641658472714146574725281605068748826314049405635391256788955714490705839431374068848122259000795788892473944331565767578479022091428094749035355697518199821598991776399482041723369400495047248305172547791684707456980817731155728168050348479398668714830143089679570855637491776073011459039906032782007954888108023300197705655894887859074089878780905356595149613056929050308733441350441985276981979853718497221955223288597396297120420881581881468386766015818827403659468456504963385057982912521582216318589602490143200533393165404725129779801282189107006055114715953182733854213507478757691413758677589396667312787419475645114803132168239759694062566387627011608720849099336450952721125907701962704078319818484661268785047072168296569000780670186956087813516510099793407923696807383036681547452488979157041214443004775212619250943391490045294908632193828708624395566655796466017408582308032571947637161958856559684003895146606362304863564533946166415239299519121926685047333397755455697800997623733423973615144976560428118009759688207628098109327313872079045498246089368083438133467654720815143605124315651449310229740965010968737869830093902529837906107630419340901112523222899680145480077027409455903445801708508977842943072317892591761254523628258196853086714108910202332551239239612573796733256082686481497649253279373718988516209980301242900157734069254423204379267482264461970390494807565004130583433363331105017514498787567506177385518311859677368472321451754800332361356635251737695651382782063498349369392901117869483845117497693674701323212371071917872901774762330132343983388377376262667941497350128552350937738778639220332445146904011324138442089154491935738868055650430085142900899317154254371875226505443649041555878527753370591587456003527277208881344607610089078769149872325111138584624848887797707767062132396350956529381605050451770351611317854831790055039209279156820464611138840221431689899890207260843817360278987825398642652303942368019275292235245333326002359081880944490679424171964879374846459844822990978108248418811829051756300506260927591259986621083944601020381553780641300708153299033579422947693566342365648696167753475972717139775864401934407006116046689923554769738231597636500611411355029020935742260849674733307876788058239373822323428687798689606109342769165813657809762947240157400034580436749421316637509909707067123785141858948414925396231610372452104688565881257057821643848719007219510330548312410850098580973408360610843955113343483708153942654192107422920351970527225828896227172674786787555126326283388735094432017616812495010285546940239834062635953542573328052057447087697865198121477529543312260491302797823676135609326486714939112086897295231216558452254942267919032869246079442178997031412746234631940595197684072057833634048511141209188383020604457545715566712161441544778216617892596303814861486205460864021527039418328617063352247613895730971974740623716145365402874659846304927879336404971989783724748870016346683823828220312556456198949597054318843618682572592232135248447166210160344790609955853190623606078128126329523795626545335476691057372698664740261960975868360678890613381861437593993023231675914109346345306315412169819205055980971408681946333830306634866321357631062170486498452298583965306943549105130790734194294597202086800783776097592285939061340322060622549539315993929560526121854642321105993850644903044747619575164107243523116865836095551435301031741172966649147717650113274548939178517838671732041770857693183595981804161994933338538766502035315198704911455145154713924599211101857564679433297279962147970725815888286870403201495100594042427958123363557609019184937559390348197203296584918297390479483415797635194269245790064996431566233517217299388438459043415704699713540759017359971083260476743923060262261930683685214108880664827216597815100339012956505079935329986571640020754491091383957547561692957987738284431902902380294607440245223785203864816969191188196371150012846850897706354445839177069675195811636577520930878678592189339168846774541577651186064281025539769109141919077424765853631524186177753134337542361706261268306481134081822341957854270382555215252534822393257345820473054627890567617366143040513425511898758995704056501466054769150873350045512794515191182256694076821033182543073981886866405091268372460404862016210884663651613807634733255347989077714699820426094643720162407384725910266026098341370881525573591221359815782627436117753177873234658519531245710441659779839707862229943834321478927849736500980973335529407070182689180056472569621481650462950674686230803129359705894225810413595647052494928778240224062017701730189744752439605834567556561302160214159773791062580860529679768768124068812792198824105947487598653721304352021858960203045134546656960212543891316851887578472288632240006942378303750753028766408719491166606676370617038531402901145593723044495619200426212667435705853360512920652280388715913499811329043383378116128297881193619171190452028181237062836655350509864990491980740413280201894344658730204208598334706415402220299143399320900442825970233845340599538634072240382286111140815433274577818171786513813388673434911129562651355546602815925958739377120303521302565467311598625502502582476995636464904572603414163815721144854901710981437787680448771643807203776002903949268327941010357325789836843222876037935370427006314593652432208558783467035390386309374218173564063563524454129851268631639435790877380640487712736018700761264847441095456914737310302643921487885521454269039486727241414663960622867184873962702038940178452691914183465142749606978607002029524355431853286864831479876304017385922521775046664163996687959010539235011964553580154991374755821874466404237836674922808716859787348321628042366483070642905831730460437576597009801028916885607609125010325833691944086664926583151456846588639535365240737696346292015964961640403836600301137505971963665801091691504416624038324524781605354398822807781254935969087726017596007967028293549724989120200790769496139839253926594342769419735012624227025280608966070253503452246280022526819485198037651951829147956728048615777436644425357175466963917647115448419186646167405589720514332553224205614111561356977788583885582725713757557424783368814717071537713659897558427775632198313604713935783986506492562179789931331896539607351806123013431852617926248778720592008363017924202701060156386702762180180158867813283897632076476907807486307428948115710732517874661302073352216484150653803610092888699970148328638131899975066968991531471985999073875241502280531228626550751365767124455187790913919842428440640528512460000993148456679999619553201985612746532184163123294999036291381845532048525867831907878429993844844616909613036698487634311758772051381192192865786455268090988288134591959795962663291118886910721909498012928446825473407795191518564514301695367442156942107313400864437347539594489684982862130844633016540995068780948503968282510384515561375398189295332182433331361450509883067194785113182790761853663159575613169429785621994770752636740187857541965965729213203156522038996855726286892966874432145754134423100547848087528174928467060561218686220813960249125715490953179568646869480970952322379401975135489717438555985131358703350686647295292641572233689165286816140298158370009973751620674861052426779641393878454800655008998010724957238685373387773964148099759496964401189070488079864514011365622051079525122223432949087121697146818679523689142653218384152400056340038940271766072559961191207367703087105674369931663835601020961066651772113810767873170254038005050677205192492228521599066029953121801246804389765934794331405721132509475576318773156721014788088831696007745265474484374072237626719051923358155179127324449456960460293923012553618214705924389590473332825753415022795155184831771159544141121551526653443280735382911192120536509783795661269506439832716451247907190306397630277542657791392431186661935469524175715757260356561802178075546197831565356304807080491034202509574251800563268493047802411877982641747537314362125535203384981512283033349048719428679776810840395701153217075989543964869220404873745230984755238028227790809225921433531364349291704391686522072285637311620008403782479119642149401730525984525250466436765385351306261269335390172875787069498437499997586093342635196067644140749849669158283289979311406103648943873085316335185097638839128288686171121117024943651404488376220027627010941175549579099695629694587222373001837265123200574487802380155372031106562449881885079756992042793661794683361470027960209778053690398027784058798644047458336309588770450592066099805260450632533384400297976923657679955823035134247958106035655357905736525960846951091730725754120787924926631925366149742821389685263592555845856366740983968662048517751671639691102632315730931427423478067911706988169643457795434709913791040075879921998898849879356242820185018536501071144307234755587610874132711857724359451984271120322863952862507242641432234595367470956539752228806604540156157008667332474122541414828843596739937330749249897829041880510639948332689014671835778254091309881455249882552846262343904836138645063468888778891513829175152426455690993603929052303690671774975697019168340352021218210668742326611248329110148696029939359067401566062872824449826415366736597681910090877785844969246142361126970012626268862226258150507778369209022458129529106759700957233280309589536611907952797204504108803645912985694742856439152302626643346438252444313560167201332920480847154289224707054273309056142446384879033149029714002093291718396976229930960887701609356287708844774485717089758779710649464476648165648566342421146940181763016419714905937861755016484666782448168796557782384136993942839314460755860240004653987654310523519834932780289673936921484800786593519607185276582320635116436726997588823906964871979243491699575981624444803073600428586144056445264247736821619096073947486099360168456824525784288193616095869296513973624706268723771125587982947669798787360137398099548513933419291678775900924077153603295830660177952592898271331769522746879771110417673399884555987830484700196660892029735322703169631353643166487817386010804158051897619195707090181427625228268579012062522630470099097791791026272311214836463602427444554850670523922493696272916542632224573692395840260948398941177850928143423741731035674405487878417164506403798709532932643048032780888906810067272123415106255818514755572451282100777109135266184344939052894120936320228137587713220484650841470539269807646443822737069772892608657902273628298341878234778347273026654591210927085798116384951823291515597752774432829009332520870235726147622669640750657894054496576461804200101857138904180385958394885957059876112766984425524647085698592300080252288329851373491192907541822095579320676219733314691223286888388400534075777898467394043927601254632523647873856632167029119818878101563926290685892919956203420547504094812437643840230057043886868767210319834317803722692844317125071292619874333462046803325459089768361881308297730638899080388436597290699975952787163704131708845667382771484970509124549995924198840312229553023684923927590458017496845627730789467162795870198007690946805666586467868124229358860242994804198966589330729256435817902346328327943939847721477582556859450897782786534286503615046545508814313703358528747138460814404110434458350190588620012892863749413163094799625380972786156568409293419909578840312167128777280923015374991078211638522771607737856624146205766135704416386892473657967968345547604910459463430074031876540070629514844937469379628410519322328116407266727333811754157979588693871837418917758601303068967473050330242273407013794360195540486531181871739068723838124482311194629483332572087956725946043961097418006544028469543423219495416780948392651075399446417118590216721231443040316735746313562899977600755930843748045617581492697462397008752434651462625464279615237687941087580573794361969193200409756264864870885648203272058150347286806439867404844485906399359390732477834253465218854982538712994217020748711447514993643903083788038042586415436971019425314368765587917607317324770409725386904189882607710712172671231572213059123301761023670001416175431216422649190800484328329813843514392473961500132009824780773620891143241273835303903745776215480835753299994426440647878842490304306305111416545541457454739176168453480772215182042542117492747550059523873914313355172821949137442192075424703657746561122951837282957456008845814198423312725783359900448365826285510644490479004071973676500886337437518245506628031655513731696566382368366826779277043906615921706775089617919337074098616030773549698104456963456698433886017302403721098489575230289236424110955951228009716889180111129954853614410926159161310867245627626848111241884388942770371934459021667080921867171005345195951586252176325798272591108108551010865008512943883635605278006979146411061615061710735301803490077982413884582506235806669849276027792974753428280540277553639557992358461093197829560626516721484208462835860251685750146907529743801919833064932989102110195744520680370941685158344065613881659807566096938504020757325845084190027428996324544833542516382453063666889899259570858850781796786402840444157571464186330705823188528241131182474420379154861337678562262575186228582946792561072561524172039902096769919512347855301100574656271401062867750343783790496392184110990188994252619541355838467340341413747197870039817914432780408241947570992509483168100376416702972645993488319025700384257706288656170543494865470677779818765589755702954785726740893916756381325224155287125519353635324964904815758412451740993195833138828974787246873524089365392000067525007783235495895905917068687441225102304331211050129065955898645790849581738269439099516081100217717826093606217624954100271431064834399532912589502316319078533849697284181948887536169608016332409580130825199756980063647022043809528165092759953687488057007283483343901182144992434223118967623865680339448512473077544115602884643015383487978284720506976930845739987993197257810698511107935402239198657814151580800946771394963733406261166030441535017005029890527501462323280984083173540536278335777222632549711480837117168707185019099508738143235323550695615930108353205591859952460812296414614822554983451388493874297876954706506412019150410608177361090364611482670564911822117877723977715082980509520473167057693172164651724415667438192615004562335839047406171699868288408536869652782130905764894107708425371083173134170494953304484881790628584949016658595089008220744697048160327528613362951403455917497114306751488062503847154759456444358263362339186135359041702456579996912281330777260541945260485037998003212743506566511597367935643203196478604203322258785781568283640040330971966233579311283397735367500985509815845907794447439673526057218176272184299508002707904096407989694555741140574230381500407458099372739158657819757875086766712722641349997733455446440296593720570338269007705252175372189251528703304550283015212272599146490413736225080733970374991252795985412081282397156710880285866304590769220190798894491196341135037967254482747758571611255498455072251620017372428757931204524691251580490335943488791938396283690582992974249524434853677800948346401619906865698339293615358474372697389029270477133277879455038629355146691745387850049660963962820534067665662821086198297420950143656270910272837525497317856460029338696778829278658523877295722264360874114736759110794886443642105297537976227028530164582930826244655450085675370303642150868861236785914914392196531596950652786415328612666647150020862587898866967177796680264248359263238997791419878553390240769164042508338629819445847537625479970235089515769818217476248533694266041408302196708820808588176592788933735225228072036902724262826563328404613704565450354567090079753814137600006919665770669433703223818934933160639936994230397423908431733656152981226765477970362188795535410819278077528421856169993636905398369215183813999313940707316879002592495027469188894962160358777725878273378840945080293584698835305484707984770606155976133596818803142455381739277722461620411986194420179579766801014857002067246403364382365726453169405968212456693679128264109287762653438968822757338260897872055087718994529660740868391895044397015574973489206792925862634361833400437238759509595817793020261466957733845599905375884033107868872105265709872963769623224367745934982861482091037548631438426307765533059126106616708916438556162817434675278408462780568610685857820599018434447346074802872023128704446266708774621433502659087236942370101323968550719835414031450215880297464649788031074123910205935723142352493988708709798415438430299378047937453440025943443952193685942647558849438041611847172491242529653049169195198672156072908937940199848881877529606990344079195218633414794967650596057238847407793679700710788039179269921436588896666732836030505341759139607948184428978394164521689089646891685488720084912620963497990875719438447159542676787621234838604231628515069543997524466487816538643663793378394489617675440065841791587441649378588291044100365515002886459551951674856475459654016244449742266972131340176261429809899907074709284734580709281912205019694260894531803199264856041139854920731253874446493325303573534427032466604534855361885904483152592532728294476135897327047660358406268582982658545980778084677363394264815034042848486922486005375250499126998081088572570006942924630015884342063710736117998993191081389546163126000416024241945336435377845370006020598055694692658932452513589881249189798622598867341525521710330341055985877609808914658356578133899774490811487596049159952636061138594949642539565890571671339043441798013975577064573453990138331811530591572720076709530928946301084676900520813737097626230773489796586117723039608389657479738676380739041137408497088409060684157327924176928120729763290273974325581734123306545387698899311586885476545310923755666282481082204931400928823972358338182976016399064972347276892939289202245325577252641607852966621776547363887209490388149277555373654842368033758365154010246270813840854151212608964935462225332995280199281506652781472652680439242408149654397168153095768702607172205455985188122903743171939047336968355049899467651301706640242334360163331406659685322816183271856223461573744541464497313359109177578607730408961371423242058119128090442055569225327023617871695140863137830863305296807249887959281750106183992813527825348602387102772006597927376509263611100456572837555067659438150605281871276049047491925348188212876451055565825446904918278714830630230660145867722499563594343439284235725684684663789379052172372306933768006715243384005540947074457694358502005583907163645180304147912277819180397332708297180002960881260641808637388691675415387124551153693861428245865568633086245683141047087178925979993425289814610371534916824031079946925049639928719811887667889108932147102170240827963727994837336754967903548228802440421407439074429740397933629878815883905353111890363453797691537406199204914331517378541672537653159880462705147856168717203889008138989287628499099043924399820116399840034837332987388543357475395402510689711689015174784977131226778640488817617814533729304620898371404667959768908188914759313131567134390547603303250315839236718751758540009883993028035952331128467387321846985395388273659175343088553062180601914285058954510926038086123074173605221880836447348800923951269356841861496229598658568126558643026684457795517014745434463545041237113733098803449189804567293006171982902361446649132271944188702968213735805320263358759139387796403689246415191254162422722708406307779502565621905700965987670509459278127748904713842939700246782937755729832744035184178093573248545249131865412730669413402506149147721855175286165022229902686275787718339090986738574350914867429769131255316626733453076542758393096854305398779108376364298855292698579790791440981999806998437003059202787773610574038999668427691196856795438490385823534878596192283839999496240491647682592374452190833620611630858849113575291601564684527824184383204299514428022971489678306614062655391464380540759194328778090401868348284715156457370818269443100112366357136145941046988376304385940444401108818791034152607676393627567761107930583120484326856586632917572920278835968693626329116144549792748515131440056277475003844119652620041074663746719777495272013770154700092049225286115626165431196874624158666726829208414811997071155184237422399548229663351006838009305622378305116954763952635131467630782588902556720468011172834332997111687950644097133240598765304752272574369214490461062787153566937412133867409187850861574214128402764805599660518728458995315596272463634512305821502038195419904842020583946207016816359566231907434049021952137649014117300389843529468338203503480891659998868959552942984547168544957233224167741257750175313870319209050756640807673323634210638393521457152334309005133374660994737310749839473163008879019195125614837276839949408492151938648838383364835119810600016470063348658166346308800598802128231077310862435811663301186128111478166664871459362370717149692926531062707322537035907996121985001942444820244208439802372255061180425614312722296063673060163325052044160473049695212542865125120636366584467235827219934517189405213997689591743748826262913221512839969508640285491347062967547642951779102632627156104585988327974728387315896822667001297403726833008422115073459705200498433237571790676194673854695087640669049398846387686787967069487763988635411814765262471260434814683819513517639683399188877545091420612687414369271375737037002872005532109322099403262888852507677183213395024604936140290717257913315346268042866402729553156734085773357694481044192001945107074543339705138276938487427685030541871612034870723721929284672667083157676570615603973728411549738263090195103562318303522041391425591948036978403326030765537852061301632309171452053344906254541604693311615669389648785028241809185143519468743144120952974484386456127141528802920393429120773991904384978190687805459071876274790001237142720774167377936652759608600108130956381334159447191610955104834195021046356847228725106643860049983785373573340220546129428407560633628676998149884462673936771222356937513438264601296696660250230095500300399311483538551629875604370382381661148677452204009739201263161128755764501188441677157898273127869140956107250908433469813204772746824064508319572201909248934362205481938767300021012168274926807205269526436910453472575306350813165114528342234080510985094830287205110189029663003874798184772897547049899396800453068940435341904997106553029343233793879995133920553090387348746079464667416193791376770495263354085197714811927208985842364001142433859168963368833741047547404766135086661587157577926934428057159657006066629926725211720319437169376637630955855075356381245264537774085993601942496003479207324639752991893561449058810086231959109769317853346637988181769991899724509520001396296892128309915427258641549567715088693106205118512405823415778816996033247330882478160682220235191249257196263370491019775911256264640860607061002386959671360244406434797694792804983137690604560738774295631023412275958014891885588427087760217974548313704077968008561564338819499498931959423870751624514772243167379797463425418527147356084078561201616595380833359786594256181938343525022463821366909557344306335034058738942850174997121897632028395754971783427256618925209461055980119229119032899247840609818348733964173170115173123432479313994537430071036291926337438066733694965897518220586790294135588044672571402406403514360865283184441067006688306409334238749011132875658996014035182017081395991029173440468999243854150428170291671147379526185723237807422254474506862990332800013614549869037322994379494544500249477830929953554681368496315496557089154269541109547583238803543967011408852132826356409232848913887117372783740129201140438916290259166740722204060647534099936140808431939618041254341544937111108252333477249444251140872711491546137959229474351004848978479423043594540152546582620704202834424209771067911998104779799029683497711376997618950912909782215694620321895125742459623854778818690400251035795256466296290160267896101256736247708557819893809391720167614644285242280018820717591407482142430333365964979556934052657347036667894266125137447776291158226771105739136666082779750185850262155366105930374455994111346309634808767832078791346643377167760953803487400231298528533483719486034520595526380155088353224764482317794457863837412553007679028238198667493304384206796781506984018340519833612353296735776974038427271426952326229089651497922023981217788235421485287730220283945060120877881934812498935752819581383320562960636869554188374737620890811372291226226094082654023630645220953057122386270358217550472092656457391675782368830169667286350637047566247961066978174096961323789062880201968543721512034824573466558233491483890706723009424807651703549948928198363942235376305283035447000583447873621195260782881101320657779141499491140853363145346259894339146890297146451679476548147712712078397489547846629878301797638244720214540421619452361397808950684312118809840689216006862628413468508083288981179914673676867261408916619386545731436768039689584327137283450912037594777962805796141505769885877412123572843030030487247742261977437798641718647161728539430144528794055249892515255347556443579291273974347697633487904065252465945073245453570824226179442818821764163883773573807389430207062067525840842024275021446781860268064001639874687951679421956448905605450423157423803780228464267399409812466841245593532168882822603895671942507075978736501209574016210925967248074034626086323950904117606405112357719700377610215444273038259146382247443894341752772250417656627669734831073327619980368131764251256464107778868814698856190060317230604292103905392979705507422157145684762013234894890494515043751084785882197033869148980258215151979052945532734353809018764387211529063183933792099095121527712552268441610398443189649751491271780351846937045906362523439891872536416781139137464728956635405249938539811974708287741433184336547628301358623597147442239251944754267224824390900301154526309790779911750873108715568636698946728701276804330954791587944545628271721939119490057337510932076781244609092311242038709769629968332840485952988126318358834044532498435626992055062041628856468085943182136533950988905734277221497308263628451912312938396318251813144163960193125300152060042670819596811762454218344595361914058014543672641102514418366599757755433464459731508636912564744881845162076017977589063043270662552262829271401697370041365612944564890239251978467698411110141097943953203862192553710623374800570986246857655037586636307027490318480983215522428924717642069158707775839806957501793198468899602665247946262524959588248624304912156311276085802461113726220909707286708821037894216847128434485503264679507003813086264738029278079061832414491074227173522043160371509677627780375470835733599144832631648475690520988178655461408074152758998401336365786079314343378932586442577601494003649196164263660606890554975047060052317142426334128703052033694162867097824217085361159409901088682836548660044576888995521551846165187416931551476111574960248752101595645519208064689419089269785116239353745503436567799927059898503927531815777453356462812826085752781563974633786225249136561772471156665141339455325610242996674531790573774124918363891422844312477489516161078294463374707306885759596828762977970958858566352589487977558917400501002823966161360246448934449159095838561631095212022377457959377102942886623847804645974351176752648232556899470588019628517027229583185193628267113420868576713082647071563296596007897783781089559160828013115518403595819891876683306498561322395910332334514073092829793720560589279933953413286621410173215278549148057651926404413102441563075105813842512029854864865641433516315081498731213769508674331193049520994524932294621870825084464985402595352540953082684047877446205204432667584578179333671901709061014561700594259755511464223893427835731884267550240212917166139089797077439789268532679894564908545153173201082118203964951563900293612592576083674017875842244552551244949063401804785906098324633832200973725914903962500135094221951751074374791751445130671695967750223605087863187113553188351849136195951087614289288714305523254850944298350128512766403176141851857115502581090873571491843805581465142939506176189602267089515066074165889070844091273038011017121722770213964581324922469334417226182875244543059227024255664595160538674969597220336598357156938790500184234507224754509806089778959037096690060191687893326136507023136522863624069711521189625982858795638264780713182108226360501461566186949392034468004134601478003662523160673595341310984212814569346729715145510755361564315456906502301154732216031557360778739637946571042078028072447004438095094593169086613962760184075723516777931337626506113231768421486891686158287479984699445274348296559809325817831174314835615118690554618790781890565735248380912284215820249719211011419060627425295854095216063056889105346827951387935084756160553210452700810116845029603461467323458086887631647086252844196063388646254278302368579221261247552110835382132675936996133597036973961375694615881958814325415546966079071581532681832802980171634646083214543385324832397727625854520732511659618240753160816223221495868505013513890046838391419525255295027715552426729630411783167448354738080270880307741702107126331214813814404989459322113120847624940452831577357981839032462948185350268171529867578738247167534595189611702810201817574969938709105851147167392989578899297008628203868552934923015142942614819225201417442827325822960757988204680386015678785611602158667817272544644206891172714116202480692886711057304589707853417358904343449384528019230307510871152170375188290653542961225894477651265191713686324780972675573988981772393571013564552372197946946197974368425290608716801302193039353701260224195839201494675354564121736112975648950537876991988332359347026580473152120724907838868717676280967031261560037298914184706747534810359426218744246901257160050961379289475312032848569606335278195307816348193373060675626880819604670645288512398010319485435113286766053039407986519474652049719295653840130761465786433425748219608187340350828548609336614565493182610399245043177471862850892940079009362756947875424564694474727154508774628180712500089174558706483657149319530232287950021570908614380053552505483771540272414428495309825664111743906183475242602769279842869714082059643345290853847632872052510035279147941216257360257553362292871618693243319155892325169041034177734207210454450216101693634965155552364602601285435284868563395063001186623848403652536440412681783203279306705296918318017393540479918674128161395845591396360123276527579594048199017703800613090645240430227943731868327840213339494055731266511245782759274137841640466074910475368738756604738646966695123263343330026934729183154095575474630602908575769300637759588032017245601333855595932179040682956407615521395247558293082566171709634180698287435040335051153344435353495976219937100097978010504899683516683949349830513750852033767315206622357441348919630887197685055665302026955057855743432693958166184282719938181344622394559021677845796731823820216833454410598229670796335239944836743311639233628564239422287111039149616488782738272185561164760127168449687981428595981563060765882383584312036818558911136265054213793790887418843610227335890565507742916908961863064266643747152621984088038304349730413378232533728072177994438616468371871603955179335910964668192406228990791462679996561452630725978520696551239314933390442926546601479285688711623219017674571332085697364975290095490011004936616339733471832418891349297612346951611720735235733442215718351729446639692200197556776312699772837324973027359779715298966528786266400966942146229590795049444717299624991067265851115589379682176271197907103842488190236844662968611148810608124049441468579633262452673371296712660451093259025695885580712083549932875283326002903936405035853878210923759067981073445105703743042426330137481721298028099462384032028313181892756601943836155417104433820961557145666786568175507523695111908903149539454931782121787147928051154561836161827324213116418411595089014371198258559351806625700743278302799816219206652045933604908309790653493793847535767451394967847775132149734456109998310518036565232507945392722901941362558128726060533090586592394469733634478886968677266706316867930056540616115475849221109806870168010659158583323885531660227074464726039002130429433436399800356326514481942004303557022039893552714004943109037539113328520044943116676752744459834903414501796816939742509024394541560379236419815759866764335609510945342565006997446619056316638188046299359645365960034562247153266049220832197524507784144291966490794715107153946022631771204897103268361821328266868628898350753948175628851648408110488270532065869651740721477494004468700017256804474519244228509745928407548446768429663967181377386163715968790221691919404837443631648552265715647702182475437057181025682346121032853820872002385813247693418548253195484834566674162658671156702685569086312162593053700354974587997663205231458619419994346346837634228532722400110194630801209820560232631806775768315438557378798149145858237768463109388233729347528579081752670468670479358813060649083967712049669419154800244727858159234399095177385007619455246974914478362635035248073822313655732001419683885527237557925942109559109503699200231426128338475139658256348675768603938568189896604037045511204429798245214681040163696364630840134589538937132631607736809801277978038288404055904984177222242664529668588156235751187590021899993452814059618368679589671770972147905162317134896994408565787885414826994271855341935663566563547474667255303658099423168369875577251248539644777758312943739810862586544245612246910853714943620891463379513330672950914150620453539770939910145136824722487360041995484240960935061432817360999838241134205531017042652519864694243043113695794027462289381055237560026656180790663703808617642938820705992455066929502752921645980059875372965850185348467686855043359357138442303761575182006893934416259703816249943995843549099054770111017892195950612199590538719227459401608004943114014910358445485142129257237491332983834329660767801894220056612259099700258006870507061053193338134175386701701173825810298907534572919372259901171344361937839686336040562671070401163666389096432903568889933214637920534997716661064663956121153762021807769741204466328435852985673524158478094136217919007272473688374097554723745902827857228906057008629107877234998090846582516469680950860526379451296379814026287343021272806543802856316282139515696342021079636724070285827633216124293684858009298252634735193263721993642518480028098431593487631008851616720864372439245999309622431514174615546456369738507672806173949995086589710219323606675584195752045102503947547458736877652923525060155913981128707652571780270017721001937604631016007787291298154542268843996072025070339005644271187951110960905334753881662202091468891355950334009709754788023945073840561619863594547268048255818948462262362915396756235187746541041846225665249502553051851754587449762176032658444425222983367010673037009895074064107258027670078992767224059992383204211123540080314189101916461965837769335965557097133987178266160610647893338968953937359013953820745717143317435345710029399345238339260795710406377015739400147288816651607931990097755220755250190198770523111463616782078858579748950284612254787556752863361471952438135579671732147882209901616638369663334075841324424724729807787958184380975433799290336525151636971856848896171450351358578207438089542340120694863697152929968871185885496772897542665366264357457534852770430645279424192436997586864721636083746217540226089321555378577287087600383935132990769149470319657679976993219932616715542038049102706464275795770256830839715923911188060709803795130998545722937598510445547212963721473028632898031523077080792338095813423039094689991913917800944607974874237152646790072474899869304172262874673680615259276431740695661876697989531055958145613077615897358066180605443685188154334909429580145545967632773092519210484369264433418659165435789875952931376159100396681676768206119927546217966280458064158140174116639818524063721847626696208175111975120256552769479136484007923591856407280720433063481985054363461805899429512943559128361707249446224475435537477920169230011127556090144437121658782916466695410921032131251468684624539978820998050631205268537228592198200770447109877366707634602528983474889735982312328476251765946793358485350365398928220661902854240999920673121505112356506905434781324811789694363734033757377786561235332729770929138763800346824690139064411607049383698094088432746317527177197250380344584525467820583092051629647590412909319102537387066991936393837551427452033399686108353174834805171673136546149248750714657378176077343422435227167913499880264486560025227243804236720784862669329583502059682781791013731906891831539576694830776060095028310853623028137990321366885614785933971856057159191126678794535377009587963205116817293191523169114462423285672818979460593695012516889068643958175109654160339753915969239075677188883756138203511980928205169525439782752284942833598745830832387459206376026534590735675461552348800519593637367250410799583496745901000655459591468572491091492096363854733708926241919840291836852999360507373769647013977218493726921173769872767481389916789732112367458682021475491453751906448276548291699231932879616447493334745091259866796442211168691952494514427308758677863029250071000036637465266862685638256349089248805081108324910369493326937876135569347528179599846569369840237649145863126279977763170397449638874190578924103915508482968900443480696511373481259530573728757229212196471072652400395190136698550195355733262953972377221079085149294321145645838520814211847836834351175253391132736978564053318527223947016309940424386322963122610716519558999414667824300073909396607034342736279104464067332703607672538141373468413407174124219282097676120907864491797231645132625070960440672564866907677078751864115028434039407660563494321578535673804602929429128346040849368186993981454572430189251187258111172814531829195894383532330119294748606838398856476830953336659234958717355437296405336611493743590385917236748432425597545683162289932706905680970458426630002403872933827919351522186760732280474818643900341868156663208174548970618413513859016225636476160791620861694961064887849029766332562057469763742177205158004029698607309391836300737460579977993345574059141476361751153037879601716126015252082846382133079542323337286542217458336777675980902604740345000790503694629810786138508278584323218145290024480600772977935601601974309559993857102079976578476405725926692452949288624136897378287303608905665241629277360530683417436832210903651452283624156026563183949964115397085002624321634184536978086282529497053826059984809332294324864504204486369489367914101195954812792291007926538999210168577623126863267445543519567816507977485669513960241946540281827534241770525717774023625556329726709007014785477095672276925212554938572764192167215952415611893113534554717281423486298697423175195534108672433493111813983265696809839189078201823850134015986920344696589091287309453782841981685433037531789866051711688632538934434326755326232053676883711873015899836960719499440868906864523383766538833045265701426957030086206679735535214814106617567876881895969333325172814239282960371544497951944257579968896748046843159154142882851148034303240957578500408182262638017843442531659748597278799138121843956963816511233784676377883686380368663434291439908394959572314158158257002373835601735929290703628678690397959348700085521545533999426198433041682918812897406736210032168352828693131033139523058280092281854418217186364148251677024296979361782896737178594521873099963030040877473410856564518107578407651307103494282192896542846436658065634199671620408922485736454004375195850111474002727510027391737110023471859178345800116653430258912019603783736591303142031046195122394297752742250716086212309386080823554359299554395489078750284109749130327988928459366012283379151125902683379312266921375643924053452209801781698100930475349169131199711777769344426011391085747643874730127599098650926070347089774116606846775384344649502244127494964190895857357036432294554736501935677908411774775073770649985795912592181482735928149068840839745183890870810179114148046689358340881568595985859795991919069798582382863888230985946081834611885070617976778722779422839497862258837609134009051026805517850420177078442275471664094035106763436988943704699010492933134962615697407849213134617118226067235090670169290294374077986201684074752560278002655341070622249780073436435816651935444253884193163603539252777819096228815057501779873730228437500061744684884408927699587721660553282492797380564511254289919215506179116100858043867625782360375285888868942064281003714229509845855898670334822953603252100782544456752710206101499582997167958946831447881782361523748114333320803869187150694407827025447755687179810150789770670169692139956017912178180710245602997958763011945358119066979963138600156480238767801959976914869046133244234347102682142909426529993469452725713120855915034445903991250179739376507174852199971535741159665060048019678663615465284687578823258640688896409423543712757754030444060857511508894893365203228574853687439184121704302400872593542979563344571705242926472666569676224623931173701510887068040681567208679451240993198341831821396839875707227201990210702347751141329375489671874918331999600298396890213603290377457843003254949586049799805677618499739435443476452025498979476204458498522868567935927902018798655877874483175230553820457755975674875720124654948783372911731141861171185416737383017790368048122694083926801344785650563571513694947971278664698678626416904651889540747784208345130653707083038397514551939197240708252107801292479594247047797110197475595926628316308093585123007141769513809002607032333876787714745344298953420985396412513809718438604749487995263303097673749680148337809895912740088976544819789530111399603328248105392588734027967108354359250919670259231331741761115836106490394371029239427291739006738724115099098548931515649288141355325817768607426285442822993050051479702008020971863390318733381986968261572866706733067365740916029491071567750709620364546633735747384007585249718771840603750342761332166135531532634042812340899363124114825407241991739389643226022267812258466138631433339280944768953270935791552323444933095811216836906350691327147292536980535881288020209730331467410043029583832154584775616059264351975653839004225520370060938109039827083965693819321295360145108110457167980027073121369595433389967830460334661647729387900095947557807167724540964841069586881467987005334259015178940041305984740299143853181092003244474369531971682151436462955034679148529759201368647851269189125943178922229292972872087256008567454713225766508858265364860835601404099016981445375790412409082698150980545159743045194794716684386183824460810416932095807741984399260464231598310607382999430737216622104797444767002182093948607718522747653627390549520170636846211149975966571990945631081120929177536376219778405998895226376118151235312653200269716506468639383865548031695612812412895071186255871179728936843519088331358464800157478183771884467602833902096900761683956038342628385570877208242036466530676579043717635709857716107653200245567352275270904255539602799771667277252554051725392885433470311952987951366536528975634422050217106057523498615363119264811077913043893501749487424605453903078449507667008185427419179203797158859770390379165570567679676966827909351575261526095771388777126639584340250122531414207038442421190197774855284508027153513763315663585346795020097123901427232193797346741193238120966718435745299483911309542212537392449338624222899554398396830853353943262531646054416397569544683705232017040007430793264562104806553746549423091326799438213220056306792693875593982439497911353314226613279187845840675594408742781356456923241570388272211032592665267466159947620321520873336580680321897017633984624869904834924381122182510863370906275445028614085806540556197145479187013165424674627637177719175833332672607897697094936853308237091925198206486708574547372617282957448948948187613635223709522589798510145799898886707167815204310044774460119569008049984646665208232964382232909897722602898243239358691226554237753568334532655594854782572495228046155101582447602032090566523012423812159625747793466588379357812868458859746884723000561084419386827417400804717283760499113969291213627564338850328147740343981385837235003294526525936693644991081406742119215709585269918539307346290135778017398853177049107770130417321073385211780962999041638082463188804397166181080435186410591877374196134069899977913221083748683359097103304593306962589930813939070499729673913256565979839885861671370291912862937833891910834010287467801323983576830202210165094680757571299572969890647793113021726945394688381525956767959287173668634585936657299460394001088950102800170906395744184172312261302169616776943885184434676760334589214443784319839320151431399254616486217009359823175937536869550114080833016605346942636188541359776734120974643466464283891383135737438827473272705800950323186110206147475591875667334936548754390706908226256653546252768299503643228776059350639261825885419452649888502665168356684196419236958885025294716890136366614326624258757060298257455723219363882014932525118251645117807843765618072142497776095360880631597576925833971034387837082733411752911282865872270581739789094837620207677339958088665483593949653473791167951386995403161688012832942558562876053614048874821838187392225526584066937176702614128887310828031497105687726417401679610526079844547548550635742770652633851118352374665297214601040244765200843329870252025676930809510225385675529769063073829793729342364227072846542110832767890364507976909296399035998037672681304745426015258146466027311480512489620717949458478794972759414750385720866385805623054541484451121959410823525340974773951552842262917630227503322530659593325623238024007805206013617161579880515725045023326843641522460554690063727239046158185722636631060664861403818647834861499620354900326982430599734136735957899497975824868558256917812337696527737756916002769733018297635280832114478531890189168997554417039635678108947662550776742380098100746891407032060130561009195016590708093177260742634357456440675924258215691762985519460442138327186836776309679512775129509948924158829241604951834662056194552815259891060644871529268079901842716044412486188786498838776026401198454494435415982714369653295313127405431798842250411310766125425216577624076377283157902189638571985257116374619664113004626582730638627258055584134759344628363448133478335204247754489009415607486226241745366823784806404991247718412753445409423447404993659921275682556098215048612574428393082391189705556196835521563166473501671625920366163136076459928350933176942790398743612712159958629053797901994474296963694189114556162620947784572801502637386720330551160097489487432790168588010868011864165913749903193628159545121034028296929501871036628533784723501934431852513969108103128807677267689168370496065593380714784413130559834070696825195514373707926372963322414794844028532043365634438244895680293326680029786708886144262347058688344063915813059027042470088111461423044440844932412521672241283893781319446032225968554892282308169512984409932470208839430910776464985478172441561607413065302192323774280649732228667484258924980345114899848368907820208408750809623298549023646410720089265250273853085501009545815769626197404112681598787333380856465428096453677824732698308838663531011119918599909625577173752040702164840264228603242256006424669931604195643962898744064726698785840188236280969994319226984314619394003002939621116233788542252024480230205796039714138334371352940998604527000290906198155248018592684653212999339043862685314631752363773052050262940566430740449743817343298721297658143577910855430308198021905751632519484002077135097408434652506694575826309495633358644914775725516314996413845829808235968151434110558510895646495907720108325824344890028720376408331015687845188806793228480720412163624211171213611793399997092957274123320922934233468476351689735936298936001398486647282294190386551358694290580778539115363988159224854428513883976088220150360393658069650018169755579840813407169054066015656640243596832203897830930186799469905820792402975474938571321229956377560569481083009769321210322939412932238433264333994635063859023925926341368355430378169236782483532210195609239249617854980955025611142820998801085517567340495819570339944644706662691031173642841645549672554917330872399890914529459641254776519496078001710957409896838623166872236980718066305394911143224527721711745155411331430649977695747003635739853603766654523654793072620167324145410091746028485140164340775339798246437268197867521735288318416471704978879025617689663471298967241005941251973476659049472847790618182751522450901876887154744337460551577224131550659357146149686274723914873011225356347436724353605010314748263660175217292284028177260581222448377179068274547963233472154638812537630484310828559093565042499681028065186607456617650727242285171501510039511973821525961762940089299382814338190833874448908842727828027106835360456409524488662613997012697911425390352601892048395938637016371741427065961051581221609346285356382834792881916772626878565484995041928446221432926249995450446983766562960736635071430812314610746515667702348459590022415897898283850090362737477238191778603788249894438912918088586418738583790413937072710196989229705925397227277471528612407200186067801327853861779522833048850793459850595385171105317025881398283080942607392391694544023056102383902859215053723869909993366748482352651978139270378267351187295156173967037829281623807042064840872596657391919598500004724213426347074378160382691258124482429185657654368769130677016942241922158242639469869576656666366570037436047699583720487723697781458478378042992397913647977553188395913509313096646028662825606358411504039316075960924093903395875776427793234728154293029426358123711994259530788117072355377532161765937296631492719114532176665344553712651120875883707641315570801652328089737323457152640256738674890910775279130235282324033492196630556215952465994451094822568028382784538317780144956005741659157006595776391907979017689598892974886616113677563049363696878091694923464870954548043062344664264746131327699966959403935934279777056048241252623356853914261905611504912352728627501600564669486307331599011868967382072172030314093240051598657821050564932383931193291252326235322434503066852271380523635882816615954245539390857033284105118617700927478192328318243204189257261894368592639497820596124165419583647318781614486564344950449092658409191289329138307400489227513920400573055127476293939529132619030567427981935032906037717099285791032593720401137082943640058568287065671289724930571911342553187750289501399986029667982497427926462089447053898722280480971106516263662696728174084926009966313713592690079908789003139329815538816099431876580354726524362720491879092915697846465844292092355279551596037983716639238453169874733220153630682795219828425310232284761041443032247920118717255475321877936934414715770413430190874367440323050718741315511957454787649751099045043095751652497824108408342056284363958059701365471723506223673483296648775672255392054050241917084658080142948553131484486650414788655561263131347108615137927771445905924763723778482227884397615810463181128941580253587418112175217603790086306225289017851269949444536868221042153192232788459269892733791216173517712435251574738221368208692915471706843353134300223848537707427559621034860099054016773591613458151672123891464138866313637401205691955515940568158128669992202366137724719397566613207431302018351967588818233095184841166767703631282271122309791488833304036102938817044619360529400096096403624583733678119919303679501234011525983959577417337198438869641362761666070431904398163949880349367951947123163124375794832554971584078746309443051181909971263187188939077452594219894032872054276984147193734498828370958082934504842403730012521063896027089041847915595999027770083514506549334878583668332538643837093773485435261425069027355954942988898108346139771781081518533348161431970954281636951084875188836862688788601329170362164891489361637018833150891285804925459092450436038087358334801458791358737518927449004494175067179417640478881278637549893916716905026144156147718971061492501262635437789890187337518803397878146431334465115800472054031961074439955326112748389688471507856804615706893682062827117064094580407065912909947749015328622880647115952005437647689441067856252220932515649517697918361061327164429273730962780755684092227602311080530333791455475547482476789456636332185183937666066209892410389207543163848307248486998877232147171042568526675637560447012020465652991906501060112714928254252344611393136042856963038695747803112996312434841152106437631118698753279838853292932008630532856804734380900524212779407929324995106943115375843817334568754591796815730202060437853930175199093288296995977898643515802513525059915101109453301740291657457837660715026471432027620828743828757118112577974337097188825298059642190552043993599287692617319373882254336989337042166392006614747012154157608604802676552516444019012912077192744187875171264789928762446969694699201435872315206696847499978931545748824267532128824367348331652498450133310408311948845608119259994728763688512261993285458395855670900150138307358200234995397873184009150385528640122863188381256509158919856083709003771707592920880318663257409939161962382914863654635069924311879457874985873723851778493432432503870819284555805102328519084832612584192198733155646738887893362555526254184472756770525846751846984376883819335462929144627625260922714809959062003209800666790014330532690437736096812658310580687275962253211227357274366729847736310213963031945519403289412695401808928258071314261960146237426621087577219119804212124207884285541097660951060791155793124457217098328013590363639744241804567175598399756433723286879452531983086863407393768344773688272685498848473365155732430290452582305241337293144436084605089598915778951022926203888865032501618570736484727864488355574037153588157518031538871478685058585087121096414157260152570434057038326981861670184386221026354923152023927967950091315609340027731650537766746065657266410759427146166197209593166393515690477533676380814455540363372807393734163865207303759539099020967313410405041428115758905505925655210617760193735498988374875976784628116973396477497778588250984768333161682425232522358259707863616977692145040381214587394873375028628284194793569733329491800831404438159493273062404800536061887345214825999042673883988761630448790099710011833189157288451940904144715260001640953492045085664590236222447335758467989175668021647527642676280838592521548677275012315035376411425939458561344077911422802592903266078734441410971284377637988274560654798841733969005844236883001914674139562833972905177546070684095240251346720057610645163658242918791984439209998994893111570335637513450019720270308374686977557708217486365991648915183758206844896651706214434792721475210411934268881379881844941734315796183239247421851323215965159733606499004367743077495536265413723527278299067163459405510741257631668456920138008810909173013855220520157331238788970791246146451224286002389789580531540222200210493652188656256829819014469660953701601177711583985787758989945078976584585394391376659306827774121269726489825988376506237749508002177807396416212902046282911818782614631489613686925905678135740060322642045886294296321657088626210194722512250658922928339605052855098167004961694289493897565041153233727608793665332904673561863526305174898275183830280489436136770608539571742518795709776571720927505109695419405504908756956978298983900677524652671027497307980857053053770734646255116334998167689938028093650912545651104426142392251656044566748973118730776925707259329634127287067303482481453212742342904329652661682583794960771527115748031851972642610449706529696572666914302953461368368554102594760133246593819388028824240296760026574762912664758201440843448011519307870940575013438212648769835817239241875215897653291498638422831502518940690455281502229232697980969002938103657243873917211723660939258139275417414537832699455018721039773563574121737774938648157533489478846578949157006095596366894049456255201932486677213413824628115827816855498169554139942770245823349331553868897670162484071555394240012875637771576822864850144674355479748996256098926640686690556612123886804742926565834812582903846280451187500193711334806634939034417837336956587988183709001835743314643269011492381576648599598422161768934349395665826106991964617193434713456149201120861417635367950431983459981645592401216404319016984336321182070912109393170989938003265618665597669056418149305563136855390156483569818339165669065032026166735837103752447596904405928030460675388709145140792493404331439720703795565032948540446759572581438288119699810812668301159710741694650853399520427538697256137759267364891487284756189790029012015956414499489436253361289274088601939238122540086898756669103623167156385710145163341709492945854186108460032419642754354833828315895462518049669544598660122177436042847685643940421752709714815621572786729391531649063753289376917350438078470158108854516627639995141703823327592547046116810498826633734044906443688235878387933827699039176178669397047612540091330858764301692462357879314588691385669509251811358051054606991177007665584770475941389547556863876792402133860411579462896653972748787708616948008055073926750469212620431108565520847843813220283086110607969911811764851339766016443059746008267512760599395223571777726557338260580000916735589915225012368963890269069097412303838926467518859007450677087316168629387080773538486274696846942036717386492925077731471410422292871052417915211131664828064958372906034092966982670904363805272017532395441111900784637220616775007426627384932935081615047181885821641269178201145293727855888590215611259179051874743676358900993492767619514910798166029893496106105480602867627461906078487389013237983746088005544545071051944084537596453651961173552849221483724783409861216898209940083191725856859154412906387054096454173815201311926653734136734131017082554466621667232475148873002038145721072829070729483934222588566527927650623227539767435336479009199562039577973699755200375880759978553112513308373503300058553510346854986335169164791942326476627967798117316791321006895291032236498215359766321664981263144969726850891421526529616598915362488681526168534352797528561585131070298363963688910203922021837378568941012462215617048066460746924394096115899807257654657370468512458802555965435523769408255283615095788913154335927681063064633855367377548190649447898561420039212142615423316192676413729796461605469285439278963208210561633209191305182693105747444802537424160169065035131566160219731332016976652079272726511777116521400629352480322817380940042919050978682224226711169883850207442330228567010184642995936109383670031532400943792673177451578688888673829312353259492788298490394473519729258339991886149498640884033001263161854635672345587532235644698975181909750393204368954841222007073208338686883548401407649253183904468452545958738875396648595972929201481129232043414711057391302349193947428803201414158122660225555903192096377130482618880025326850268648779287244827833428288038069581415216864334294470977680432356253248954039927842787896272516192311887756827576751895966534253916278981645647864592263765653875904287765060732755533548744730087040114559080669848403827846441656148242690115480646609569725371746505922713775456348603742969995925124908656238896148937313839405889453194874422166928235717734103039934712074485233364291453392042924249483602201893414885877434678358385586300194656571455094843262363016462097076257950512728956621519459901125919684239359374946852750769712279164573398857838512968361444049943486864849132058735984646990886323051669754862311791619116273716614916334571643552359300063474676172354124674982873799722799101075585714628347289013898705040452884696382787844402683438580783860668185653936049624305226682029312506312116835254908740881386090413227278210777485776246526022057088492777317315692141588106517004658799758319690011539496885597908586911661648721526643555234794190587533778125574693207352553907699953223738774124994592493656588068815271992462528971367765309701075358654426959986976330453046430590218838368838732325412286395992048388412698443283081859353404376200727699295749421468590814793585121951121665857434664640746682145421144358480072948661979214247766705971567009923788526903749602192894947287502882227879637768831642197437173449051269813516494117276271670157072687810597134447367464753365561064026517799882841455776783520385675228178176522863721364686479459020290509828512564344171989845818496996973623860077624288241412832178031963907834466573178265246163571114338018806312552433623108505834930574510027552443677160716396508359562894617734488174459912815157250838399512833671644537392772988278599035762511958745253498281085499672275005599511754210857563796251076757565600426277437678571170840930288974523044385127549574800244539655939149705328808699435299001537562598406874377022800572448900937966229204695662407732748182648390035778332143642477247393780628653840288110722901759659135394066521914350358584205573160453951854997042387699896865299811944372990004345689973587306537009751943003091434582694142322561401971550349612654863647445326418316930900006781152454990390372528195384930558169846285808014655998380307788577665943098908902914778965841446062592164816074935952252055620086096191031822995999768846668283313688757966424150267706658707155797116462466298137839523542217167215615135953642830434999585926562004707805488060734610449956604738592746507384214037233642088308294758402374937715373672825239092288617020608655503934313138439810178613916259026823343221980848245762196470984991246814296139874294289169348036454020164552651133396322209809025343938990303546276489929655262970543732074163526838878972189010896623313386621791331431702860078783260901151841734238122531314832661277931235061659867496863951748188967229859418338161097540114868044989948057579834012930526545764263141744531340167671576274076828899682583677424040836757035913903678131002468597991595526396595076301040133380383162675945722028093532625092457395719557264492961471696619630040716107099811430668002271334308708285031712791661729893163670107330614845255961000158074159216725253128105069116063552219603486979191108419711691860238916675167942561627686952731640781663745240142151110153282950386782938849940342740226970965741089667374043908819123609949082510207939195630913370550822419877124236174231173073690100130446230647313793752981518070040283047164360656321707426532840028679657066940685806579404986606023840089207485491728882958709698433463804417405988106861623279618811409656793131092842104708404347897561033948579283353185817449409059479750463303459751017948110323603502568149542786330642152708586558467240799398367156675786519036084843331998371703769271741644315066076841497313802613295061608882424640066599022327702283126445653024374672518803425491273280976682121926864678932699627176558335106802128344061897142216224596610219227084583183319119619937480372872781545732077965286509891587018425884064233466624607440625127662861137813818175394309457165702891969237796473770464521263767669803440189369757874265953976434453466534739590622765626621065189476493523075150069777687333620525771650082880200056053649939212926671286045301993956735963774201651163242994528014135174085892102601909156962104976218606135118793897903370675357577185811712896096349216541977766092276506324011499695572324700481498893507188243718595084415803807669323114909647449890979593551927985633303251909618922012317637384655908195735358018386220552315749634715377724625358652606178714580978282038678616993468708881618966764842420652609886871145887018865602492798700808321748876787750385661100128980768236888614053056298579296553203513207880873946100529996721137195407726525040153248154635434514835182108630286417051618531168606488205867579867123124732366647709263148183704389709533443480146944023894272620926094376706789838321617133237494659075830358599144030534071552994119883040757402043891814686552761657839784682668890545843863035362293429393978509672003875732932153818122919316498627430246294526771214792482674627995840951122440866276588857092382705718002123650691162688883174440594757316104899927899832371612405181836919355636976542269046852191460802708752326316798169480836406557634471276100994567711108994288995288528499070072498013662738515262211229832690812325310365169342435763748551877979466279628780431170032706013719933033592916928436667662516812799150500484682601833807485433470414493230392471390151774935237501104215744717574888711045528743293353163527133704258084817324394837104639528371358723818533813611029624701461855840466079140838635061374054313502440153170174198936477659689745238885953271041919056732953820662012897563216664456813114614036856949956884385162772728566389593842941518734958659588947784657175905813523321398785674796432470039252571160367580536145182449899704895567826554005103985060442049597893460361719441152668151567110108347565836229202208221955167677620526490995281002789593437101935051431878841790443868724735030324862443518721443695102166208029241271665746161327603534105683484773119859998690924725622812253916707178502970989193366740944401156816131132404782603085018107321084494620551139520612416523925004909847033188095795384011523398553084537962793595732792712570856311140480405322990676871487921953179120880338317349378234057702926204417693267535812134795762979032513012657740919762314787525931857009924145040288358244401769369085782025330456662697070222420626214293171005813782712717104078047298503376881240927395352595116945085858148976999489301351789736361999236689197496361748769841989302178083038791660076202101070332266581933274095328006992433323770635107974849658090428987533055204643158472001746367785439688361201389214658217207646148289920704289632676633951579461389022675011256781928258713648678428384293304343672570083275092787259088212224022832095598693121019118889173761855109857509903814404467589227551382013059632977876344172300526665038196590918128610701146261224852723637925182873523570922974866866287928614204386473678771676648219165682516291274215292103876496906844904384227316325106773977403944291372960468142230315747697249991962649043695334700488113143803773417352602826102857114277066825685110595350942454946308672083702855429231930967708178743440707237005261069883430675352929287312418972719182648045900853255941828511634184920923601838845321471514232220350148132145325355212022964981436119883743491966685772477158151702570537073330908432339346659976229217841459452573108396787723837056075012985090059848302896289997456532844700399529496380529540236572836998515247453901197596966317095649107511926490346084931343435977887973342697955578324602856438437533328890513599152662910067805828064672688159729266894118606505683488806834111444718526524506893614915155099686279147059393926564429025144610168682469696768761465688974956149445333681784509224155018682655584324615967129975728043552291363910845404892623921608296668366749687193120722047822788008763933596569576156439244925827492289570786772845641664236755403783332874823250137531596898622793820281530992268653987143774209745209705663145237751485072373438947720860385064462614789550822016419859554497212825997806768680321663173543731869660894561357150967482504423358725510234803209315005748212396179949737047918797525856759616137669429037917996677412314316544454467325553106832145080454100920446196655437644068168350752337696225180083212571238608721312968162484601240568316115285716765511107869190492693725706483149321653247916244320624735726394021120280956926368525413006423123341323813152935167701135649347649284656194321989289578155143562782403894054965392578260824994810096103017742777459219294442702258379523013892432826842397827117329570678032797347605860543938764973245768062836846220738795392610370853754426925977223985785576877414652883968026595547542386529155907828496467007992781882034627295207704412828927786387771997729661766452041091771079289267645882040181458187908567078974977292875731154502988521667697898485431922193906423634412951746153673445991724865082182817710417751371677438205151614144165468599041940265253424253649101506130901794841611357396235089097698587649758917367856882741571057089658584727796709490146185513705375228968495014618575688747472798219341946083021356135871520078236524098883870028216164688051364672111800785453925262382635354803459527731361641204067475334504688528419775774929360535106713514755870770516759311917911806299944877624109053492804143758016094801857394433101182722915965091402481315248047853851166676528485809643052240811352815643389740105239097423642845491079266890892314664177865416649447600065644400914141340428500352781338529997852716224844704247899885969577325734539834136808177695387957844466721678574636350915706236101044410091070809217160228074919991554312213679927694184314638039023646675969821074807750093908326773290087796597656906678366244242472597838320841386995962260868758711953891461424508988900637094640017275494034038826382026570042714661196392415227564886782251345113304613465382075389551044613838762806857221613731101484625516084599902519899947031601367833871784207664248334517666028467596581083811817595439087208538553644259426795386079251209228000749243970017199828646216470591960791203084223734037811751460069678725052574328886038235457889337885847080609960513964580738342544338316348743658957238603201375090311514941297791233676479603151334609564334329211004162426812928141237136402301049508969097150650839054725475113058487465013622986303062317451407431937779090981360400994175783723322904222244399592813723579011310882730619925646420794081286189866773320228147353506088073048486648774366051471088626316596049841398381841606821929694227487364610140208989165051135266460094358242870285462949061491713036915702294669717730945627933927064011678395496353830074935504699413615645119789089786237788109403320176270080591324585133723121925022388347437071359243595365907209465308107460631589410464365603058052244773363854179927515208058074051099815875505038388704547207689918253172181311619882890800808770449858163389222919761740499190169043394807988498596449058028731854853930899241012404194209208724356197824178266439928498422616135416337335487363115346777268011140529156271555013349459142008229543573373226453065425334035989115054867377223765612524519457816454275319167260333107348813737087832040218803663641826210811172989016520481335499858361321306696277822177216344865486513611000260810216534254052029604860325083615282694031863979082610112450803326608103716708949340957483818585739316633591671636417179683066266968400371748706713480236276988551490616362392568875506806791081090336786289300840917513296232631839756297415667144730508340506472123233712739195776660136839054057552538673956913316668186229741185360937712269157612485039723455432350876742229195436904698756901751361860524503059092566389830796432648349593315463756781497848985326252342815701351539696356855878624934261352591943350196383511194090101909129581711905316661635238554288148583854293066683085653558367521993408943371090658724596649731231105603886377871866312133555035294636038057866275105331976113192083170137561010718159411445947195327925517560721095999839076885400023503887729712007852486665405222619426881490002934725883145893543378803867450014398885301589412663227133287848400157192158876164435188464432318845554495504180483533109795739428137536347518231163588936776402313227552441496679980125095877403056373411176947190409946743694230640577887281672210777337083043483777699930980882702320607046683555914976716274695284025099550396233655451755272986355539709317719286284647126448187177391508731854938561637482968197434419554842214824336110880252983316851234141072793909029633746726569505840800493507450599561973397918314175328022643177408684678109546589863187159807841739371014293189294515413361925695274625013831776399871295858635651075186320595552378424898044377672284291020692797683192573036292403818893337603430094113046535616187507179180731520306309917753178902037930321938117386264304739411631169610943574837265199892838996022072202250370230875313953785674406179429168960910652887056137728777039429076308587981914335184527847729747713468421190257698311747685096456914711466194586441437245599062506276946023224191950146280039658559778486009523931859056409714185401382819316794262966734789663860187695722352698424189031499214594708482611200858524813382688887010289348618755702781788452409265605961974900682222938963482827736024944408546258834989239439344931316521935815234137407735979000769790533978976130104253195293586186633670660570390694283865730021540209048235043694159302899964022795158186355361640797530380954256954368245870949451697972277184975739412441509824279524117205865274049949532378145783777989258493346268306227433725206800178453899552944844119390155150204375173952772508153555647923294471205906958883617421260098189877829076733652439496335104863252111032700032418983027236107164652797719420033262998073056998816661634965007817436871374421806152656517442941911328311690884607039862390658997300383635780171621789723376330052796987971905518718134047676088069833868778327259360086103096220943771291377270731328476534139864640196643710955654576569865139017370259493948664644664476195956830880882922587569212375225207465135916734150154955573665113033388867082910947027811189656060786649343647080527952600726700504200379925005498792683530618954090228862810456171076376016585321916611209800845057009819603337770268462596491548968064218194249301439538217649850943277863000900148169828472003967416600459457421027888700169645245859654739536568645684691266305518749944433350331489583106736399275279859988153446970696298888366124608504953208559371664028023797758201246436839953006107917673886804543864611720280969632773881973247799077974890335646642327072234570855125616412611671782772972288345805397843815220889688870013706611891338912728998832845181379942707217603507748874328869185928165090776160473446971349493855416365522272247758113388107294140415488902469753189257148680154289765342614471436991301274289800895906016668239090380870649154627967233606975603573063796191873518253118324747851146179551964909609435930042205601163518655539167777519091197072967351383933595662495622887431259864874425649865882459618877208607125385660654375418757692455844945488119700637074142335811802241849209496157734824153976962715288530518813084944200585450927181383991119002885602398856642083822113842970034762400387152785733004519896731458952006773644017730734579310992418920881233579858368669304829263060168735964671725987632419584482231409715085515102937162988274523532337474995022613193014105569609451279889975110619253187287748603533496184501402361507409396239184047127047630837716376663170981231245019854147386053535430551934313103108887354058573022376537470009107836352036078431848961258104071950029720426461052507015227121793934019668215826010070920074186602916019641743824336485472680267864359814612428986511223747250192863205594273515684850278871816614561042381440104092296461943487998141259392407054095832267374491569959459174117858519553626566892506104475940699394290166822837312107737868263295985883135746506622507307969348058544039732077141082892964421749660801846572996312646429549581808990104379551188713269050383826496420940638775102592577997641522213758329180861331377582077758415886806949546595134521518737621359570421219017705969780108738994522814087876305389750125948265534022814878526600647082090484293587654313192848332709550611634563655641439060042593127018080749099183315325697281929923163805556714523585599797093811089506205837926166259586201167847941735376399897545989819971825924091305451878499405924980696065552516949304944727874681477447012481466318137620586333647882021940231886903377281917457675804897400458114646268624896802869750988010748029952224360339767010251431495221209436259613224844768836640843773819167583645483900846880317612154115634468441870291617952571632633634153261100024785598149059023456475741227041457879741362961500412902018937055301050156469841894437192934557243586389894888697834695273273515127004988128361392599345493562642409414097126635952946498489224689527673628707770589061221429521274317148920018885621355958712591778470953694650930049446099149778600254579956906741139968016473603796661597776061646247535764646486044130794965423133048539143801267190163679601498525069314313205737295925154270005039554295714381624595075237461940130153371330057474569582156980051686764333188508647646109567075086810369872908269978595791869232941457505708661434895782606119067825722687677699874887333982350576508112223261092116261815181120618561344752533543612602164830904870326253690182870158577135623679831693337567063084089106960605421159590967301298619135906644300924932852014372484651568485112343775234864957961493714324821059640092447904842537712226095131081440994250704974673309068785129085332942574872422488715866296212325056303587596752951628402126601536088500188219885274424837721242234942695546871891053701605713040962900876579480183240068003887888848018698408130916067269961841125011235632488006906471654145509600959633846371979853267244362418744890602639330364427820773641974455857492227144842441741387084215265083530804874326621586420004613632166075758984525280121730573028604659410159539411886255260956254365177095033039383189801849403475409977231100520334446093587932470427240373599018269241829503145749894758851022237765078429778739594449186732828834680787260897392795387825092145990961965214139885381635669491030352559445015756546561818734350740983203391793442088831112740710163691232130682205279693277926231105195892403765243046014253676677927358271579030013587648149155371308469605217094286332657576372624185642974379303014989882893424745126847941284488909699687009961893969981715325228482933465017684748674841481469928716494515449416321716343731571864306521588153005196449814853158312463593900656490002043953355086710491304633689281401246062338887006966890658830717251409802021224218316144064236477394414524618597449507076089794056605283056721590189641952671590500402238113061620223808906283151493399445216011153554835357057681526618597602046621937457551808780568405928403423051689374958998580932920224729219050657568157308714815478004515832305340506958255171071900662402897925634809221566141522283815722145095641127598648847726181555878750038574773974181381812404825324449476404799218474866600364481999939068810176731931106658120942967429383952842619019496960681256863704223896772562718780923756387748314327413559530822532968986870875174527742828693389626719030398788627901166119910311308713740229383574460969903318437573833813390029302847811798613943625321856616042184563310739174726391535897163693116403686632138233203880979595154862276071693691337227366879902025771126120767120614172004247559610602590306158283796102511798724092787398449693624749425330396015515831284641777014067353797873170393000547412284287310351877210812350674349623677056490846765935138994628949619390246165952602216828540801552974804195359821583362962118588086247465194168016019019155319505087338317595156256748856480355229323449502897820859871963863760704495660159129168614809257937003727472114573855893558723907024232564356791331838893692980983705987069392059552916951681002451968504510396211596726400768786634358795252750746731760009934702089977172441852038661301290042796415661721037265864970001023360571593909300276582752635778041466937483635602717112578551176726271560353914922056520173223761518406948726221935417932974566228417966983378018384701936307160033470962806454619276131565008509564841969101277889040736224576462812853764095380619878945373668998031552494608223451263833962971030359735583752521003000992106883018749541231338536195566576142631453791804292315714338799996028477002470030241054389211233746522760419720597932140137304746123278934936253118547831868487629656104457781636808037873857661129796738776435770752099326050693745364089032334876793812248102161549414798696856256629212245570813644686626205298620894178689655448872580033758225177992331076065542728088357876656546791777809529832004156624001959240683993529862128024158758966239258428078951315783530168130133478673472278375094044268873624332605527968723935283683583626910795987839475759925449193145027020771642324821602422696390562987182393212796727336183210519992042432945648434743723162019731584234709807214654657779306017040909502685348841677093134219959271930348580821159323873007062732302595300139059281587031406232841193417985114339795013884770893758879803743386792815058358392220227365503653150568013167913311629041666021770671893521826993797505858918406342747174507264404233548101005852102593208347381740444801024216284266226851189571366385281000878562948079466275556469522983742925140523528152098508278788719094817872989375895738803198150256003052158994012309916927716346784330223110304551794774416408000742646764601897313238417048547562760512395543415569993274266935283224453633674105126626249438425882977489964430447765753435736683166002086721861881414688634853359625493291760652828249755915594546459448318227715874122398631356442543122973226381167101932733166541908605755413292724406162663983019214282519717182235861610071343358902828512646271438692703784428388658539992712137832482678689063355255234209105709729356615973009029233423341726312920729582358553654889071422975070987182418243380040078228866664107859405294867691390937268168257487821774796229687923897037068157377417292176856978031006127980536182695557894504722826840541182281516226314694211578839472136541722709238459317967106500177502148823784622896407344899810352130143823669225196252539145997168620344547372747270124194545104327605189627934583726561328134216551870257383773176783580780536753150373821866449479561482612550709699266038448133041659303617408326311806840592880783129632669193709316515873374449916791152520474077689289891333120913603303670769110706453239503288659361694755754776514614842968791441230474737227916075921061519915374550552142260275342828047896532084342235695410154269988616672752772679047803351920654441662196691929881408135901075535364414099888862322086303918273458745088932772532885078271856118313538295678343442223668216433505039209787455629408660430341280726510465577482985912854429319971614506668642399944879235939877032840881445777459036915431872938393473240008814870287536636721896521205093206707495322301974794563082806880963588814469920113681049130404946941531256188550432173212306872775182553847025020566579961248277629653744008133661037329355423171365231402760044457117625488283078168647578749669999955883327834338022324361017234549870173110570037052708229875383436661459547455972636881403567568233786816860889330367809137063593133235548652368531671841104253032761371886382190206010344820584362960249017239512971038657315900118149614810475971863383293501222572556190495878995806840360489593642081810778334227158321218346114885344461191822237481126536860117876210895065333774354175208835903593768167298146184528024914029620641230525581600492001640151140093176486463013132171090407717610256515248215620695485662556018296606570334763070005111805085170118534652275373921005224641222209060797808297871092461957250661499102816489973076838359193963119461820554078579801679107372049377176042376318964648577344535876319759096329294196720571319053617505569392916072210900343171555347366710137632823504457646284089756300630452461091957684216318700223801539994400163754357570533747299826819183298177038354388356667664326427343797854527310456114329884648884908064632680538846467649322385180971664674207149146362708397386637425391730379246386862951585980865432958734848611856620896514620517618755729506926566495361213172458754032519278333298675397426889557916973527093068372368994644554167976547003873641931696917967060996037161045106706710415502324353034338828645511241097464891416937934562135135668673920203337830239147446660792738156631330591960952974683051169959994688014799959041526725233612322558224953573994824815702096935935493502783161605872463448601276839035695590864501553674969801324473331746988643141034558586820932818827210026623397636591639198705418775295567602724981143673034105505189917329429302288843648990553552928889846457359469925352926155927861275623521133998997680659650784748214834126022589001847132849074102421793282430224808067234099427602475620785013849537425841254428229498979044143034482935828949132747449545597328934709868839892788791081851260009321842576141792878259894120121146365584190754674322783445316076434018133726467451082430722011337755948171269056597811188491461665360057834425668024306902082927204642675411631995197230676742288858728935878018480709376604099370582847777016642356953207299231939385851291179124773368722050524855869062658967761040204133175927542681404356118983452458432282130177499726978747479889461295725217379164491854924607771445093489894506963890788238605372779760586977591577315184180934648092870770581770128448757414681466551043187819707669841047591650590656703802702245386195072409954647924121857304852182672698663807877337651924250376887981356910995395895730333196641401802018140764487807053052305465178176384737394782071968310418361846456336076627126330045707054289368669372064346558093918468174119074325794314768358176925866145150385724430558672889507497983430769443958848240087309850656551073031091624527674633195784492054392474070721990358038503429626443918263309615257322366255639858288446244762253379080293407198613407239280329482021729500173218999155322092022843640644538494127417259732763892828434647887426666026777933332888725449359023153415635163780973935140824538559081800085080773632368842104338274177839667032554256638418325983323913010693035149300489726854575569679394199998287597980457618660251832245626242409946968939546970286836901431905882073066908976090824835658778727141576811611636742761776856304687432236736655192220315139937166289931894720874623019738911625930982502777367684741711598022789341474273102684523529230412678079624015540795743455427324131396937647366919673381822617846948220554692656637195533856055578476894283638863036293261701842836450999937404013770263278910938966013951082895390069637910016157195639440592344418960398675395723106556137396902098277938547777997106850851358295462477283847864302624662084403982495755265722277560543541573659873300423026856140854536901591641208060753463616779187080079045908583072676804731740104798247957884928688314847966820288794874586628163371359633865240698279181410333653033967950235632549102701772092604845358025600015229809173806679147929235065192150463073509476970487950049509812731149232237930408813355634948243788239564426172217428585016398620757959819108918147002882029792066945598348995774648424681546481141183302321134059160972069243640117262793441416744601956817013737972750963743534932303308914709172477298602949078696042306751233399496380342939783121027907513343376181148461396635262075790624097828160818907486101171900916047443302542137271465678717984553091575070977686652497326980213426995300529380845531243197243958624212710045823409455466335132613780680641297369451404624734734523438326916265488007848443693106915583913925819250207478709662539681857404360454040134784878585542803313909975943622509756591406799670394988975726900033783811823635946841183472981640415730131325055357237420791043143096500436448218512597319643121718930735176007074480125144463188328905751829363827364556767447491643953760122696291422799594435229855713786539535687426269620265913718111913190500552776973986753079514428516644797875825505182474870696961885015100829990460598828244487144412044302985840740013533743316249530271665267249522385083840243422683348995730659710556981570221066285375238203281577212342601823030910924269697762615367165851434961053404235583046125205254603478968416475489473009042394685810261904217781181343945465421946634953627417556374229076716884187857676444415570042394245252197365794024118398353470764691614474959782747068363276692889232608008122762295766066924386748883976531695339963310256299401893301723423735688245102134379416603173066392001873452533140250227052301857208160352174770292405171680205297322508284461335366141518547376740185988899664124562798328412051089951462800931316378435877544703658422147041183494994374499923948108916416096029014653726893694255521156262505910331311742738684486399865898691285793463804396917138271038224704071745574393348830772919667914687301985793964895938794692050388425886970999941489834459010470902828796636174917014780869706646060187770876678060468902589027569127365340690676051620210656721019983906379680972095024211089087354039766601386992434253233823704773863534969531659844137095811198488966420563249153785421507203951113236645406209562651417391947248846624254872866151477760459773520585357940810267864663680793436468561439496994066617874609382995731018530231877257924464350195493014000791517614849279536204387166483930003495026282035171252418475199013139769601554785180428066475778217523487831272804872567711521232177204809558812618345178874081579554738028458792180998855721194422448827108092900595681202926515623660661851712783309595033543824651906327823118573040051840801123161357159019977492704857418260616915234126499146265176727507276481850559668771738220425895836647868398975807139266225286930647391620011297304644961476171610636554170056678135633151528722963141582648538966269604547845614986551580711134330740418770347658842927197202277964959181738632121054343820769648836921519184864909577990534401921711456842028118153733859589490423682317361965952218573929465162215064290461692150368592574613531997849128645953358215080764656242273468510246681403777001770753240129600261339974214622464283881351954798238605096328426855517907461295510351608119491437329055718845077317013084065047950560103001101510649482618483130752632398967775156497512008056689767929401854965997679089189391117078228758895400183104037518172922296981356077167068401810672598785874068518371045428069529806150102959721328362949503643301075050308603130002419460485949296248545673393227922314066048189387789824279887272056136379719089156330326706025351204773984843605674554025346402540314751585639685683257231793212589017313546886768584342922837485197449910281241088444902102151448556584815265515469375466152582590452754847239409413552107592172179571658697994798789035002437792841591081736699480415554750358663622431552527981978454593552019392816447084379270023168055085167504404739147158809876154455630108879067319841826193786091345486006252525258662903926226533506545305597620187492257446565435256820382775029205434613416839088821710899208539549196563563263140329513226655031609869468044783160179388401742150501369194851963304899866378502509821924067874488832547009024882985396722140928511705919531178249542269454444967207689463579217998135638765235677977174895500863614832344880881201576750092026864462585802574735509855880528210511215494311944579457906983913621883717504180582808587687559442166714943157705062995850051111876055029525603915944806897309020504850169633245415301204284647408192096697275717431189492820278692776476498377576335796153061329821321780558587432405089958820707867780602921617699578392642332677837293333178188701789312379719325398680782350959085368065539523969727370648318247415924030503888261215408266938266946079115320930677838215268205907779622416078443875323149382388103817293339312591695291838099526922889524239693120965795433317352550379455835673631825746033689430217625783179699677364526219407282758221525354601971783523269470430799229060613406390853527868667937624620286536315612748052573133389942735876346572601088018525157038359423607321610855557340743758654117269382596836972884192261515202122697227288088722743676827082287419996926890355230741463316223623586728866782448790394736924985115921707329933208302465332512763099033423829211160087425682417530676442997201891206088126418492480921132688234012013029904327610808134677261421456755239092980770307721974779521521449205823070969145862925970136492894123602318140618411555981655693407010495577397812478696024920071865556726363539281660529804578954974770315313975074648385187345298088232873574340461718838649255292269792902084808947042997213815908803699439801193327765860887984173115425984148547303080321542266587599898229613348359228037799616876721081039071514317845428051320139000044638553490893807772921628397942803863777962757422535491849222362728651078532684037886490662463586386729855932006812099090047475263819089185366049150981141920746527361310502721788518284801394492772562702178943181427231601850475369177954706332555058110932219152946842410259078213359018968380303544109320663611597905108555282870769980971701813630815614320969745740741105321593903074827992653757523309210312136498723117433832138063822210898888423594512588425415200897407378935931185442106686030657132919867898076123061952264757172770100270304283191206258674580597407428337694752443135114081790525257824214620582975895576921445542288589691856165125259075725696203168135371823360329719968107527645721736194291235648682131547175772560570717947873256604924404438202741210828350632401551684376943182911759850826808227625677726023896932878659179690995482613735325566024319260654773155920271974145247086455973801336555733063630335156724370303074559566671868736445214792648676643522965218813777472809983018856587239006019957883672087303673580222042520915244860793142942034171954047487085683229414325105670594522125620142871548339687361786220963608215845021064451038499005450402788654042173961843926773879044382217374273699372979111103826367635096444121462893811139034683993332721293882883944047620007254640522646996521727556715434318005389362053784033614571421234773497189234971078301526667116858335137701290460688264278121705532306176705460549789330129463970886383701422631624991130730094359512301588870521333922410298316526929625753730564366501840404849752437553097779194148301364050610252977305987720643364088273576459574628992076455610838008291755988582160495610206923294974975599679123797852190316541096807559216647389202213611479119422585650663164755518596389067835607007966786248939821811435410837199749050538278769243280296478840888070913605590718007153344658872512932070822157481758671959187422663085138582567087768341270237495024624503170142643174274256648288461587648020742762167162415275211417921420504157142680208698353886023362606021414487340616696501070015521082282992355688385393476366132075773135452019485716555875545860816595642575424801622241556210282269205847112556919495936479104033675230448611641686761639100461959368167845434422659610531259477265757358696281139678598858880928288031256624473337352400557838072509582888341662886047159730442369374582641071284171774287959030241273666813945756910283550055252996265068156864143750118876837381451538098458675120822487788061709030362992233363515996953902564619671568117053641363264670330195578395921960337468875118449080574019697711753983406576620639825925098525661349599369838292269855526589736638942948771114899443256556386251936636538510640955066135768593637105931004566310193900473305707519211629190561101171568635351342145753897085892290140111694818611628039545832929170718297600259633056134135742096317868607984114341882771841584689347325054991089596132325576730042756913391022050877624086649002209954609322526006132882557821720423337312434533495922863163678937490681510126953866291173664832126082929548673859342272448310641216667263820612495553681703759128317556188449596689355796462789121953161876588862807598012736299933464058787399217332894045132086159037769407742805290748123692751556278840977611481584290976070318743656948210008445956885492379067241591828076827786777755256593759839303900860618175165975182721435613717084258061110638173943274275219809749592138114609350503496550861833781641855852304260556127797520611829646303700713976084289375386510547060729284186399996828911934632024703455904738744201239967463222056608709637678186710072431350426888017022086391881887386648352252828878200263250822683653588367592312511295434273900833476173448173411437210687497605737718680017019901745197237338377325480513260083146679135176177033953897845199065307093434096738191364922112329817869203827412386745010940504943395395374682869199546174392391324394501342396947086419909282718387647494171536263480085951666704282066034773047751499608779984914120551481642947226025843150404508521973579113284416744131267007237598544088971416676410104891882460281374574987559272272289156961813607152383700737612871234942710598205737879122133511168193083830647221490446885550043841208587259066411147561534476662585581921506968583842814939945205581760455357630823481667513816052414603267438899085650839778995472747408145353248008477279509484172920374087194426319940922915348702262714101295546655949906928691873500081628166446724909969303044741816042202313700272730122512203909988378357581932338729383347209704241786735271852259137865497532303702024713290997232084469084658753122040008148418815725287273170205592151479684501944522954548895896598339084138645750187213201742615663773493304887226285187629705135614556472438574433646050474958135275446723833449245381760141870842278226427724152661718885269088974221752264644237865546078436533496663561352798594479586243174908758233756794402949902258340767142435357557907693026665637489382488857477814455385668883998981951873725151746201005879689559682696525961678259155368472849968402913515837244995057922170105900035854834898010160518851161267920019401801203120457855236360081096600618357402346941200035701767295648404148250380139875098088398884976284527417546842131003865964318342394663611004745886179440598883583448038690236184267265014075534951822648863844238647350689899820737538124461628967210529094328570054367406912177189803537486820700022530797217304781831724270818584581032836996516547625630951488767986363658898112043569746962052007976528450711815420409058389857428343662368783357631880682032290726683499802309209045301236404884987562884882881882343311040052090112504656309012080533529315098964138225342588061414809909312565214108441069254492628501539010064872976312845920670951684983635144514407594991145066919109332957275054507750340350157604392664279473210585164222512227945666305997605624222313789970128502080492204954998491498608258941193962936500734539158898631285645311020633847697421333026601291483981166019773667701540834040331770916006977084219110375894255074555755352063446490532191730496627715685545367368859855422869134662717031752739795986577545889882232160466325895866291963073022151012741691842906893509827115884956588757327229198467471690781453389013266554865008931146169617187709376640290158679432625208109365343663402114277792076922676407120337912312491307316890469985462830577603237198975131783562380518520332233123819944094097480766802806736034919312173023148738219209821567548115620686218765788053092626429930971735672741721818593615325889556190322279850578771506316653796475151187545556057251585082465471717667036673275491488276194713420984962543913649066428295826363271087789896146343475765603714924776056714848832103827361390839602915545740912380352723964837120411451086357047435436888545831608739475718123416397746188446185841844106857576675433290199988422371427033293023503173156810599264415806301297844640326466615240325102885242142747102949247580189286035735088541586546150623537316203047613010402774444105552239755727055003526780813369020131854042793661199329350215448487784355886893942220786031395821046521107001749544212449863940460737999898167139069080772328170838773777978775793363785602244072981702866037984093447357431785292396796735638892763480374279188482434327154267961939845967807630680400736602358508619249800126557672576144456668818191122946260124849481252281724535804351705868443058531964922256506649541048968256083229633637783052424693185438223420721497603481912631849577101231946766102532768815586751670498896505584406378110276151320383452317268880995450115040844013266372930315795106005579443905297065537823587372372707124089350978723991905087674965557501360183238194966331461827328269879056491266603825145278562250517709531601247804512078480633864535216181100195764710467408436342136336800702089488995514173345655075219453947781097763466358866299241707099850638964802014092523060513623981857640373134872695501351271368174659991253502108220594154015424726215929482918709992211296274370293695185785497466096980078492989151523809072614195958182073299253540154249609640501497641764257027961061221099528699285479945460706082368388736282548320528706092212949418038401535575715230904588779771747820343215619458595676977232422387149851525011027733267436525261286952412148849042797581124032371729428878867213101225118697005938455364322763693740556743541107109624927668678100102365201534076538371537270241989343710138865267548995337573911405534185007840397365021679538800711548326968749308186564908456179897052357605107645020603965877693597735450806834010749104402716862315564833558099606712513830745558425623586653887146560640122903968505385803852073406325689343052318935312798813490986045040251187790109117806647015582221336669782646122412590440281357117079142016590322790695465398231764369442634524641353985979106279196495566885486092057831686421802860574355885657882382481447196940860099971940546981748937975737059520127487412014865142481907552313922435894739147789123477559983081659397865300618139888733465112511352794523403348593127610523751199468070859304354774009480914481714618737733761355295733879201231425002507524786871417745145167269314764654317203768211183208700779566250183506421276872245809059332894285030575242269901008104905966453664148625124466938726277658318308874287496673923549327294958178930714599595371531808763696273324217883895794070011957391166404229798119248614984635073008739906097348969306027547457186364052154664480913496285129108913934492130977305845250702471267767444667563230468186297154886504429801631907352677761926861954626125383338276691918722787270796305095647048250121865453708920242971876040997689024525710033021047388484796296385144960007263956010962873105766780110156609578375026398158578620888550887379216431931139284331689577915288875138723220106629156051363976842003965357651800585202504138085349482863429580353283180158082424816633355679787641193795859113744693557051561626679856563795836904922694798548828388966656865492560155595814189235941153388482035501458481711805450137587403841422246352756504376066626001517987473579041301075723954463689342977083022670208292580413166240850349845924440485705245724060493837603105741492092073928301128119304469995249647513164730922302261523021118582310673341689866040744490612398703557273910204879712982150383029238586945503513392263036762264853480172978255591371665629035427607712713303125602287619104818943593720782646995159945480565657017293045263796731802402920700505496187563985738213121733562640578307917145438565435628008411707836388607496255388763910882154622695798006268541147235528632096718141802419523877416507435928614618422524249145773986568913591953967468169264950186236117510422796675312776642985141210972738454772860567093070536957174196575446132065137680213452715171740948717383843252309022895741007665249518159563434272759805980993576562619655370263327997700007828476971246602254970942017506788238265829177804587076793495274256569916668556818140750875211166346311637623122258984800325136144472785180732203291096567942543504356410139646831485766251217838273596226833392761148805671351994769910355975583429178677953540684952553332089790151811177364331349201755800703817976473701530336095005398979782074636749053404921152370178675999205058573140261789592628741563696981428249685255986325571053582304305127890483789697295099605073827053428700694965045238352972188311381213585853503175972044428313475410577762018169320243302635096711394490800858957789365378324464556969923184396887020952593034292352964982573109990027120030437267433928900576408982834907031030088107409244906230693496294083144000400043450748098206804899421598880558343414868975610565419220026141839802676271729439994388107167430894311156090896374987754322542643359499807088256585695887035166419522601706269168144828309151605458959663451741621624200272364712074173919623300236863224016155440571229807265915966945492003449004413682899725556085292812983815957423425256726320964923908387503952450070495025982202072309904100700331446636353222835937228700176917910573380287470700064125509252021545209062172512562529938239552801105675114200511687474715271300657723891754566742239495565342492766322766419067036190406306025922890845179420352434131847507312409905554863206160627894279316714903617727737780364205047710658640528109401434849456384351677320190604018663662183290743845801576011349153537058341855189855585332854647287362200374749406019966829347219730893334680303306715801588700767960661142236817246300113271072622214867835289538769539769058305898769424061337950536903434551580158807930917833787299666342534927546443768812877226419433903289544583374795553299866026188537839769963822905553737590314721925156347268510978653862741612879084242682632309503361140292814372253092790564832347491171725259409937041558433829858781966144508750005416695259183776077279168139232961025909330786571509927955446682675112979660349969794665016706709510802264630547705367357168470995398636723251481467401725431384949418827834864876965371293377707162892403069785675676065915552916073652600317929364755528781255526943034695756407217385344043780511471472115553040146406275144147232055129865659290500894914886078626621429714905465811312589921846140386260676120356307252877719861894580832016509018504475037128344977187573336352261487482009091449196942730949231141713503893128734919203856465264309629050952029834668349062068963434301802963349836960073701407073030416253183293215443347211663211388937022544054226145913672099658264474899922967934734388250162738796423413101579298119458298686658326066135087722969367133231765895635934216359518962867199897437683400595348240855154889582476724107469692912329224850919990978927087017103781527644387986621592346610090946213628683040242802510508122192219102129889013623445231410394371029730750630059152142016993932423394824136486892172960470502168638609160321292992462046587525367698836559837654776728947174074460061077007281148216148831664493798072110665248068742920510890961434050651250469535087118034199463296463396865508561734803008787648227351088873870123990248794840602542812696768869812368525178862628931657455736174832611234075981447303287742146936745783412582945905152345320777738109556747690418226077010162186152286522923172291661428656062004744224256639004505193012971289753882169447543439256226980786836912099643521572128557666715966974501621445188373056664385390459570356508245504099845072914860788599027976317722121527707724973419369630625583572858554704272958962208098617866815200032384141270149314423297114425008215565544183012409175954658931677963058582232710990967855661579247058816594585215564618015529751608376402519089952854166709914056287463083496286262541507950465923815613931024742564202342398356274897803221247903022821591796709184351573744446535188752721292324508111527918666876426302504139511122241026223637426340087008157821976760955569147129399370878699658781182034016566581175490011735750466245256738514158205865986081477208370051826240501089901866390536957357560244442475516046688496655640400845362274179014184116613314883126978891437568159609123438709732215863922530979678141165604984670350313736758209552386153922757197915154298294328945151838326975399111477242849053440392342630641819150999368987149310249898098943096494136120613040599318759275922200627864777693432121083961839792033203540607525017940922520500634050464878103972595231351158919783936786418724759043679088659078382610951285008039507339015578073142601445045694911470710578974093456188193439716258484754975835208413063560065357995375031813686529573531456892896309932482196102849517531184794333168013795987148338254989999184718708521983928416664897925040823783958776795024320674699871120652334270347049594534002314648348687534028086341936939978554445186629468018261602022866626307422112526920048283951539227798490586184825948709676812307821542271052140509160658756154103534271738999923080342546653355878057787643718021150766985743626915369236709127227900665855916472674878401774739556391656647406372942079794163386024667367028017540024535259532108563282510080197947716997546129702059246381788932895805574061155693018277477190160314735408155645331689452753460013751098564339121810385281012944858701757553996920998247429554499464809437750219573041441605031832717656745305902435799438306852446082109924874553311275619660212592685989676959661512930281682611538261585237420249533561152886725330975912026625482089349586824710507361405931771906153998949094970069909383587601265055198584905881313958350609631805462282526564413563813293797456264168296119011561888153415792429883838159421846986361014803796279179562069033006790917253708805791978898244498010375537866015150589985121429445612058651963491212193866605032408442046281303216560924824210932226285775783557260707220384297091378186199245254468264784760582239308587938878508876292198243822133200557898702508724110238209031465943464349192875939988529960942033637345156421829060581603343467215579375763675601304346628186711397050590431057613976728302573438070472210803244956957778891180701067986829558670327790126190809333276323207073481453895556101961503671282442480779826655469316154803076565716542367156521962442028145580506446619630891708413824654371151070473838629788919383943662772083292735950326390452708656825802875148052096747748064138228505186840986127687313702486292871126955548953679331118149937289044351305180241069569891131894454813506006713439254888843391132703485016796692880917497034779547724374521177745693924461953576243153783395420904676035405084709651499592547936194090914028049137678900751866430671077464845917785923959213283336913906199166157162509996942137548158184414477484327756169425876023411506391571851565151664587683543382556792078669156927696399416192394273988188928961504518065637761582482124358748012393133532843980143916691216978343898154004231920642621085319178242699562785657290891365472261874896372386254577493105889986555653911026992779772438887764289070347835953949021819027160482215038430167902271224915698094548187613702515918326238092320685061210667037929868785412062781790777796267243236183294409415562934812150125546256628316231887360464561487084405857406438966908424056793846945123467398981237919920747675277546653315487256618511188815202102629259422242272169456922065691714514952120241532291941016056407208749278488596867042442207257031728819879313550180280157032735004062879174806067687788329847153421859662110338587283002081619983077398795094472868862879443558182899470548637872866225900934002168430485135608832576833648623136085350621881875899653358056009729672729651148285570835561050339837089903629763959820696885230815148503118757903136691755551217519536189141844591250626820356222376087945012899491692489871100965948552498940639886890920614834155087317520795089160547874327870980717394346762249580426120531409723229518245369747107592757248014320902936126958180659085193041200202233496448586879892903523054449164342814015259123828561827764054653472679995570612666787936084201293378958319964975760025710282267891935122678457254252144724865228845415068520633685658286525365584756847793501203758046222749889107892624032108566575747345332697866516952343980681599927469333760790564228154855951663161051813266700559455179810032655719545288421520796269406659726035286477784801308410642793425579013479388007288604821033457010943815983643658648390027270257654868354329715892418416725109137596296090444957354999466460730746315404625973191466855334780482266928281084358820760224685641815884483786866384448889865270161952324672101703485794579007209521887535129428071270030134407061894703180799372297507242017150969215911311244835940285299481942339736820346429126031134068391633246069860566068937247824379374341127738641123368792312233756863166994175160782038912496189506921339822401483669240083223529389539772447641234619943691903394037058123416796587931096128973008904553301556741703888061367533749292797597672788976261262874722455829794701821788545692075192414350967777131487383426669801692381868669505928033909825972569991130844517690076277401964139726368200582651303923882815497037282212851903895465854722224135993353767895811751774659673850875902054230152956554394431296786639669935985480811397437981513981913729920160169073962234040597127531726959481626210136348205980847856063174719626141725148560864797628463355724871141218681773634705999527879337653779102012796244510193906243067049082420817450378916798860341591640167226111777166646928741176035867401997087327797309834421442523403134976285091681135232804678834613980083521584423496667194546249922368999367781103677215277161879699624159362965763525280459308466339985392159995036237550447761731994075565672114042539457349817783501188297116107477218099576293720461930896148678383515038358682498328830254174913986738420438142842797399432520037233662007886499466659876401471997122392392037921193041843412901653246771033315103415748059113799069323218077866779647579825414092666626140419742205446946330245471118303313925155203690051589534580454997388725439474754660612429620243930879877597883148913052691879805859920959478813707887808756997764450822824811267122461526488450267531348420693398328952330612964495019613482231549607977882397843933827036346467897336572896194047400085753831515760046182786307771592967169579662732182956278185489734608475999444765231087923820072374056669240925341883709441864015281186384063469260520324070583970336049060847181898439943544686246912869025054979130894788083107434980945972870366275065893887649111324235512963116956959652648407543102689019863416753445051977651593126743307994146666025626865350228899028609266009090539941797977506965981187333773521202063773980853468259921656083769605480272848160202354031697379136047545571634210835396763360711799676242146576153569634823766294771563931862195073079030177691159554663024572398252387343860500867552597497283291344932722802035938647969895339703928711950118163168864578483749288342141254140632537085456288708360042933992949402330150390368591902330462105595207447641194161897484882666528213301471830954926184855495208945092271720031507613007803565338199433846627810870489420939876027311504836962204662050748591353294906783381687958476767599652889118852895509841874592915208494482091914022989686227714076649148534751696727222923525258236474264844273306243482528833682650970708117058990439704410432299371899469558791324084504975739825135103813409663287395748699114215469659275201064284217027538614349108095635047538396864744049207514057954147081350817856146413650822669311259149816630981446887265856685685641240337922152888769783126120338969940472012488727239652744994117202141112768850648243605738294593644385409313019490488315558349941654910588146448955269686576511100574654316714347202107580421498665209100746609455944947392660234734914414184182505051802227592264730726702159293537767651431739946632822425189183649763256254705921629587610864416207204660341181601635309290172124518418910403751545054017859265832138614742518591911028511407545156494030459813192011220159052591153440085873689884804338503942566323324384357898714242330107738816300805656551492225415391368764445659912755916364107792617383029057066859347108439486148558005042401320706776906920241827999689012761253618213907238084571404640474970488056198906947345962530278928085073405048538067325065911601418192253548193461000059841531615241837003694652933990450188965561207397075765791906487395901841130937708937405705863376111225960943756792251422702361424903245812607165564397418412643892612563675096948179704696997043604840710371227269043287159398973583288709462183929200156780848808752212023183870495484791104420988560922526874165640584473774287876752210268680385941767269889501521892180959391342677937263010471730025300817257144314015835719225438768872766176349475092084761568997881017587620738220043556769889104077513010642549238093819372220467079326790984666823940357628152613977512751346127686416037091025237090101102413370942266170254873284946391781559310055205577757584607852536829468352617221544558822139901881614167962639349107789769687810825129656601817136631247726610912897958325005364744203525797325687798467179743690028588425931002677435798495259650327286011044394492320079582294064145582716031592690585805090870314343241628817811104063880373520912392228678080710376545641182393454999596694884361204021181145536006075582115847409151894277835501401426751345540133108993868018789301175902897154963397044626998035400979590466310037250997105561816865526787979023833377345535776625972094824770406679643520626218312286441685448376139276865192636947584441839611584357071323626794485960404162348787799835433559997166445331901779872791439464944201661858469056519087332630097835900020079145120653526631584077903899526539018153450727011922958560544785988449037801324807769529871597623003498821958076766842466711237234423889669646288959954927795082062429343762613846940370125970623165270494626116089900202723843759018773542477108863303200850907926171778832887705990275476943267597468322306670196489237850918297627264111968672867862701894916936317062780705128563094199447139002333522946253526208328685289763014397119367609353794544748018407704224255749643901356360150796753682106484644392586355875803153529645615219561411270783746923697285992405611700070878836742220966548409367042954690515101216571383911108735387133912635841012747468065820447246968396291549820986813074655045005431765110063515093292740199436768654508638114036375604611241442011941842544237873635141596243825142477917174926617312638328441383884125885709834746598317736597855780376824783241914958913080891397453611746483229643006054656425992486234662809271131837358661673438790597459106910833463197763714950688068122139183369296882215012328283585943844089320371042746618384317425960455692641947494215564933067883544029009161284547678796452513343900904905576516807245999105800393126823139322790155035528065503658738551423711874759194370288756000297237623756548476289204170131575323464829522909702798246898804675198399927487119126667823574645089497781617533876055654508048655002949245726156590383467255474933472633096223985704628605158390349976005861659154242751880338038516755818605208833253074272696816588292717476549369622267501627144196493939970894715283812818358140451150046641869795979992695036587240431862841475428206718599948041194861624043712022274910320451103448377975803343895526379989466775507931391993426022001320633368025164409935340899186812923560385517309346247094806976986845926053014756552387272497375469221638095175163739803929172833438858215461155933412879140934241613822918252950620124833413336827872310393914928972500216814316470652939855658804104839466062056177451737931029412832821361661409960796354291850529077230362365642467919941672323699385676669271511404881201146096326380827787534064279458112431788525353206288403160257725981922943912706152312219481475880872334349528103038089684786322229735257350692237128376145784193787208235240306439369777543920611613290963498833411413350968664652620347855872546726661289143808296367153461397969460963439180742767276356441549742116116168571328165703123426047306702563096520670496547013477507070508699013907039625923321572013720473501329551854956676495923671301688040029581045680499376940813926361832959041423857686132661523548165467310837238776912479077400092982254147963690702157978239229797218741103844165129484262430254150280976539254274891495421875273263880190685276159518967248131008695633168991319675154365986989173873859466158930896884939429291379784699092544633588928818811924677349090824296122729354771862794661364420460007288608746094442171634728122353390847731037253752762226741988407322711907062201360054097307745099362363010733360686291474760000221725671648078888633473990120893250736730488813207414180753428744805315717651446324606433119205446712702874620132614192058802511918896334054523394990255896509498297943261464465122161559471889830489938012601275557514322496852177420329996787536877595675314756791237656226745675042259215154844013988936338040250259475675408800384750534292641468384508643881004623185262385333227133896157911320286278715695929085945986929935614064689420357785127196181769154664753101677474194746717993950392727748913366894010971331795357683100881475659594809853039101896729931217934133956861470871777474818413822973697034717467235292830460127975203957470442401388242126181607986497450230382906847614657189548073656472219455329195925934108180329636243525546284403129987624006401726743690357463572653780233930006979429114238570034786792123246562096373713950202792409164893164037241424790963672541513740908963252880111843308124534677464250819519456402387166862219984740470033953675786192083131527313470609557171794330943654615716746104563735869301352578365326670952085071401281284521647310046799851017607564621422188067822586576138502393333653783912942557547911238439449033485751942898933828994157309438698311349823195673237893624276453798232340874526705501240782613429587611571965516479746855861943947505840555535484100540873798242597221301459435482239885787421115399370490960263969740304394512430292926389638645196982027486835032433369113833950008349555912265303198813727217520465010763279643478371320574046173967077128566895451152879186021854339901434017416691070478396263691749560623807181423207449519215950323191504045302156818434240817383744617227837782989983239004875859205616034005939971127806490175657730064424474780206688197900338432002684903142364622029930526842387098687967933666817148946951752406396028631820246818887342419198978817313321608198822340610664044419337940522194055042290348305344718847244501503605126310808172720679145476334014968770510531998664523667561810071363713359547027078175200201823832863443664894587406810724798825175554703702299388664245049621756591644878347344751920989095275336854054481761123100162167833793792203031723186695296311101317314569620447229446572246677830742325165562330829135861175769804359314571403092888764120977334044063267077098871047105446701644186243042494685485529086823399120418560051414752841962410380082356560746460869306430708834713306849992221887766496897414004229225702595884203461486377698694839589627366442762354932374494271792678633784286946265200218123625091926421763502700591524592000189780665951357041908302677232110666623589347966882401608979574535698756749741053047527985025448171165077700791028821408594293781787779306869890579868636285887666453884968089434945023145872963094119696689020851468049500710538304276632134019586309446435638070858208678925422024203428868467618664943886217786334289918389692948730398573481745511055914914265816776502020156218123297642749322174609012080495989796850272736622090313904743003829286050264714797948821323407163046887314978510317405175333915952027659763516047520808743012668098014747890714648967003414741421500973501586923389351133552011053376309408989123944692607602687205336936772427250064916276716829824869419677974181291529123709482304655159005723083938707140354020682882246940577150815836415234197502329070459612636220605430223994366368818472765709179640142438099429732588206039524454641781198386558029296088311056795546481118364580694162052790710015998706638742182042125869314502244011216698358400022550236995897017883869540695043794480042129030153435592793900676381517853423818531852756716802231696618209445908009121061418799804484283776575250754559124103687446098894078221191993859777972954287107093967302859356914568421079823384645528030965352064445656815690729441861533891578669320352331486766119313452280596396945725397257999594949935392180561852316386499111984641271302992014682293611039608416976872080375056427438580402579366506109102744327703144879293931007921694977379482465661597510924328881131640990697592326310771628873558429894052534900412442355184877006194302877563972389017524446670138270498292028845136723621097215017449841116209514366876015046704937326623217039420311105858514074748589543231962038450870200377563756854041317615739464560777062155672429603186390576740111709253376531921666620155130920875489695540524447653561877668835551214602312787798596648291879485715016052756974422972596188453413283553458757275775534979187797497375206848065980131349904514774182491675122864982349368297047951475595226460177609315778403616914379922376604886703131964133604153050962106387597714851138522111420937842913346644991872993443649867356654301365952222380232004120318754774425811752662941363254502504781819542707898396861552135240931724551509866949709592728085671273954356305255416672966814651740214293541441346889392748099674367414280729036904395476766773296366622562080690068121179443932755669992044995631474560555099286906022917698316385131134642833315373286983186554027499837665432941888825959866638912123738100224790115012632014225835425523889083442559026201774940446839154752133708327563368126058709566014861800560397708367292841423462765999376906175706254600942306118296818634338100751873784101522254408836050642546440115349010418812627159851664267874873117082229314059048939922450355047560079588144411653754164972394330949560930584422392592865575064674322921353976065138146353268121832516093787609329486150598687229304274705737047201905597620995348514640301373312863924057410897392370143619827723890365680966568781922859019927632116936543006354598429372152877143951841280083233256196526556451840486233662753271784262878435768468598091894561244939202900376855611593303338915023157576566088987336756509666918483579410204239061605206698590635344272588984151610529538629126565082868923442424632032542524598587749202158887035694351545261664716405483609864822596825893676341373655602615934428934978930933560408781160229985036635480150797327528799677751550198566769077010972732695799062696337143572243975644642229818966822717810323675731154726533763645578323379554730451790845594905637973030179085183467428333960847745124554879614010557536182148627635704563604006701545387342192563207729523482605341902605009271992555472450793863487083313161776413621147571464186905047343328111295850113805260491373590030404979800387096040989653575607188167462783237639451076429501011890010538825224044081039663294902468975861018057593533444565711548056201824781512407978846015194696119073769288250891513107184948215103113885472326134198564584944378947192013612538275094592057674795797621189973590842030993591541682406754080371854939527448882556329390422290959982434387235875972146074147142285649445991245941673373279842116951099641454961847985025019895538968584135743875699578190024671318782589045054138800360646886683556343554311441882118172201543168085747839389170219190451849056679157293567046879321354744675287787319583254845715408773378498674314912492325779013736744455540235915308128432931505723645340273203214397959271467700446216386911565019604398299945028312622424862306091111459996614070782568787404542518528112277637232461898940159343286807073557600223852375474510246169031482123941943486349990857794848124228376857057482889980246748811067804373829311635181696619942547382441965978319019051863217833394274388684885964488750046610088121875171943225979035745130823861004008841376744885867990103861875582905235951174022523486993641626136121366636961525701172418807092228806047340847445716149238884451299365139141227881114069696880536512170568960794985251797382043711125058736535335396462995366485622819026276985312308020834944233073519819909281533384828695993384701338906686387476011147847801159998064617615456228925819257060314917736933546021338100391387094212719727546639434287031370535138533491836672132643042475607074125326284588923822525734435081370024070215809592437032521273241928600179892064217689704893575906286220947763800402276999464062656806524204933454389202764439959116359250163336899880099956671922355231242205038867981693410474184273523090597791537408235589570058716086640967863028902986553365469653931011242938648039015319028296465721498851811173421333906543909512666894053348080668691478395739641560403742303938609332896120671416652741989129540652727464425960699342779444713158076939032011679760223110714472320347834464670801850827972233057176481095594085279175049102547626549411823491496008422880082570886386436104399070840936706625257890937107065076826934168476881677585439808853697887440051132362105051774354681531759885352995621290217723485807785294244763538640560037018629993480325554211757879910867469710184053994308526194765305638816668225473375844879140260363678100875227247075764103720473779438860198787910640260413205144174883841001419976812510874719475106257824512472658191486080450149642381879659204532555859122944620503719972222531076461150158925799413163369138705531260345814466715649580201353539338941634770324169926661563082249635545787113576954120688877059763804020189321163738047440841117912465273720603482800741027828456138520553546264331666689010761709451243323553558610101109036769963810020695646620388569449689895618552364092116152904076771383037321234310516208752228479988148671939082671825522521288438149263778249194044103707425939413344186621741061899954697192391246168478349066427668300041003045108490925234295669209807516018200701220695999035682216866635768969203186184037391887020107793384767013935501040918173949099843812484257148421199673693046286013816364043325565946533374215063367219927354088777111634138949697427968359765109072311992624611258276456628345551563844685182067134064998932804122412345380809091029323288434504433879401224545608704240337713694007603433159733698999267949450810600892130233256991908832013672490424267088390172631332947742511176281168496274940380749003870800259222134259912784334902608954478084124490663958597745171544237539491572666567156402550620733468641497670640563308497291431995806164179795967455045457752477034498254520558816366394804580786382453475033877461042632471227106016326670266886466839193834450794672917086243867499911235345779544517180737812635921482588600960215281645589015796639013843097012803900814086509254257651643115571834461928902810663400772991138749309733083306145729304251624787594186714224020592580649637965878706201013053659557178432451087776316596721418461492795404572941859436920699157672431499864076412819374846365722646875599465977347207849472516200094608405952753386734454357226660999140212481741563234077345474953790543875177403099497712108805375443183253839173963387921518120409127309772560942594991471872445982407882150434057318681550870399283415966652707726552523092498588417230684325555977622403529278293678434580669145355896996767259049968470732581597994846033995903400191699664822213513955671292856371426508748067554156584705416377192997985381563448518176926189681065607016103278651411512192184801055580361131281316543260864841286205390182039215683457349534014574014777467850403784345210424737377581698206735010976155604985726850571287678327671301227847543846923249888617932459580957783990173308990736851040263719459945051383646636066433230503859855703296954681004195953657647800785079949618331872829218218710093181922838334090424959138612362884993921318835108419679304100780277072227474712102776427998221532300992923529852955376956878789920086610321725218870175774883158608458564523152912008773127412771642205934023249032502215862374601072327588929374886957501770683519138372056105686468718264989955376515546785930170125155680077980262542130004527053027469479608100645899621551655846400617902374522873280061929293098668903483214514040569512928861964698061733976245679731356579825374486441412962787321314979761712220689955329836493017695384033331426276910236014590869701452134644177822141397388194088871588530269353379655830154193127324130488049697055566076464644580471069595596552323229615033405115059730775782875494035911999514513414281432700000660047345070271861437674867101680708152203637000594244348473126107704644220138449565299068550104889542344571582655941004413570063658754106202432720433867870403918837438731985724140710406486184485264378993972459017429519956424432710932669647053200127603228300521036266793583820027633364457627726160404448824692864223719390267411032246627135987945868078114492943500334409113316683199401012192408995805198832797522134111502779776300697583381309454838457605524490492121871796404506558937427008732648691324029517640964159782752765936098040455713632783993059478205882111200455786011569981182525678069256807200913050867547273631088978120508068278614010216607766115668676808053817878472591222287922414183978690601304577710260141531360298688070264670543190144803498143095312219527866348217021525543933280471450766363076705255097129900285467891870633523531442802461369906675798061072761824225422953002074562368325803085643085325527150400852464850975520966206034616225713871940705313148683319367400307340601225556192487485765445984407972274698835500751923707240862828309089606884485435469066189245717622693859347782731537500731302950793317969815407846013070583228729457101174135562769949153727822737777240709753827359900291764099449921171156068055565581066711824793504866764216780734744187907809227286337550095711932034170870313536478769356346763606930284794105527910002719083740138095781308971683564656301997527993089935231601867976241361098088962137609259084870110528492609512537279822673317181486138404905332427013420063004696809879259008259838996898282297366089555101082659051888916034577467338900335028799342974182628436119963748028895456927085187424971204727484210990554802676923450340449881929930437995190492855173013783256656529754698436611285996953573866216239603452725509320807588268320615490721300626431484438643626964323202550784123374935064404258988013787645716072389989151193988433355823719826875326488980139800559059443946204821303766243744029357219097259554616593172103994735116987126524271717989252125725535523136733481585676208755257287344486129633806242572567181854031048256561084079152217478852409461211623157298776867338771912189390595015785275913051678852800113981453850501863574869748768871206165849189789537860419351869336575891415942509641671620499867930407567445628740338528316123154355960894801643571251122168483430341266515203600028969869006490756830059523809263173977905196574468307152950009870246315533984428087890513267698174541438959735682551431598307446733866720492990511192456053744028089467126537360198888730316698246279008575907007435828042091998771541227948228974809613614877790829041443518995200038202850760142670051218184432183326139453563750325498446709653889258805845408557352297712361010591360538273337612547813589583392762201669823602466192266089130954670776090676534152842698457412704586409502880577976485194839860632318725548150540425661799206645001110891214357910985518805228847952602597350728891552486587518003170693191709821312702810347203897114064939947344847055679161491069202497146859113731865450628017668118020288000557959986569407358449667273447325841644616953513034657138399939573123356702499224956355905358056955799701830203360904721707585717950685969011570095623571991666844545608241272610329363517805845890190479188498212436344157649339221515163295738550233989632162526482730001931482044114869369070136444406822679290576153509731230577830132584703011969531292220624170865192818188309208961706213557485189214053504146068812477702624643367232707885278586231528243276296657427734144060093760381343738996553961173017368037023661166810176485056715867754112879220957429843708458027014392657788053555918223770798716794976700759012383081390086743933091309588601715886834861603261432100927781316811140758109058531006125187461898248239241753114152168310451289853539492318500105009456848183247365216406643917444291932907947752496303356357936330150030614717499972236437626013738127212826225014146364371499575298763180469911909515450504853725471044238539835044342541721737130962910503553268055431376508516819044133704064976743146462299405896439167277742089681119190218559454847178954746254723394917946556417332849546013880200871306434082317499378107469298686384970574173928992565709900175286545844687640236591224044300353439851794362253782143001667111941839916770928008092282327502160069553086306858480078647407680740221494869166399588248354130349003040579578308618987388203419571820561340392714234322707126917483041120754979735730888286184921864164277529902407789571029074074012738977778626345667657417441481937628654552501690793379219652502942422343698757313219086508295484929457282345898368763311477430138504476750183219303890995495003598566151748682553046853722102639687924280951928755632200116809663578227969857700810221695792663725177769196349474394549437930818159092335656205381422568081572804779495550386355330488141311468141655911951405940658288355027841706396365912923806238754898023348699647023392180786250702895871913193687878362561689364622084502631237137611402564591646999431380680087412156027521816545292662619431677761288763695818495379140702125251686382700949187638315144471955372047026544778669770655485331523232256162968693437307940540689462649468797553173561742528123407806400185081144215099412389311066894799109480285354646240543269706294888733201684970331613435004699298132434051409572328396806264986440970079682880419233165905416791838390564690182915675562309286300993364581759534272496203766259963677206257481495938942343928785279026305447099898641881513627440327763042492502085316358775280163631302262653576496442891693769184957874609982645273672544453132802446159201648457662199376489657320926628624793368828256226267018128644931731254167624934461767855975685809825349399192686763441090712499925302154003971208153292344155078164568297471593458186796431872305135060117903968846245868426833212512304681194938270983045475263800047037711443800694932065380662104849834679572879285460356752099404300742528592641766446026670974332201955842557621143661032837395864657358116345239337338197287677907644379299322677183291980210117267195752043978816219396027448890189554444320101464241078501264060507448295154989272072992010536647626088557619054063074552732026795195226078554035267097306496408296968832755396377296469952008682729137842697058131788147387688544522126146024542826322470614666538504506186435325089411981954664059654036514842227823374334389186775218773869090819027258690509700591323041088526530768722548818803691354182059662487732270702387736812739230789565030796984016964110212743820286185594822361633949894907122343969869450946617089896835787263152209718632696720284768303863450731229839840645981041747272763285214182510827507243327123354402166357199886908140773548115892256848049452490079399039723760648114518678044985756743322100598721328968836505395519452752079457735143315066096344248522448898538286091296550870876218439896980341420040434346526060280623792799408335120113351094753499008600212031939574215374529525792594426577403141001152792221168783560039339804228860391048386924741685185131487239981812016651604907274757666511952330053883474434593380716677091322221058580906593849223005788573367298900352285412240811585425274278114097160975441381873955805738484589342092565164346139346275306468143084637042001786752037771417664110359233304067262499116766143461877524681627114186599199075990939552937750170594315176743443232198964447243409449140887386740488790424234653368582492595683683790979952096663691540376391449190771244759753583045217876908597621150055675465497299754967664031577355625254009331354158512321458007916413722317223331406428895682322698615850381206817876615115680031840952817863489171144540731169572667621483138260990623862105314458613669889531631057773726457696174376057744080889183782495636613784027148349992222534101416848027370208945496434649874237556198024088983225180253844202223048708429231503554357418190933174750597188811738987820063890331104820730091587250697315614985191118895722546536652785995150286429328638568426008193864975882615209248612841569071225650615680033932275407736312884659981755313397943917043531723547622314276488197349774800321925612389887365557937428285958436928276292583891501771142092126224364401485966351065017352784394783991660101609201642029544087609510200633961218814040416014010053830569721870282179178922692818124884169667319018033332809781829793238568944217982635320361926538314346119881650738905712238533863719634857521687112489596787820674149135728075794041721794255741553859811612798664985682033988027222794174870179016562321054910540927924688304112405834921547880751499422029253386215710639828919400810802302669073031343390524183585782756121946250537965216885312048182459015590144207034777471925258529065091582041225369706635382259391705616602877632720285196346669252002007711647140487854612438752800038717351102400785763341940767455613121922623959089829269707030973822181385805516745230518101336120836914079612396335570726878299440149397448151265096466029031089991164498730814593463840693961290662772843931530671221507440144454333650253922907866725766596994782242497794949315293393305566494807288929875116797636185286253415171682578099961850474957891101473596383741325767684003554978989596100155256817396495832336258305342827868060041244564388340212837937466872909514880729986413769167575727468738009351206464982266401054068504280448604318231440575630094082347681797191456300532492057960680889349947869990434900843488797040712183739752461852387011048490092682524116061242395430997706518521221494701389388294414455178883613844027183681978908086413533922439112159756490281811502161906496870622909559083473015694316513042220444591219831635347403902648281325403149319301630664100524437669426843305511775617625168387549148536997649123980181328621414662312859733032715296132233785661029670552347778454578025889758694653887820398574298201493031796781567546834369055583653941949120172054972976102794755926902245597422279587130193997315097435645109002774289567254685634784768102379324630570333513319411889272066121682958880905357311523415522255554214308213827020714249875436091349579276884190312928308783273261729870845048148799878108935520049315041083237270295243753508346330859748066009472664260900799828865589863644625108954185558077313078928098808104156940135858600320917385798742135662750641539677881074337598350071532232863760626089942149652133684419463156509978630452045821102048593951860952722331029279197033016861936844435250574825255005802984259394498015328939374236732884224879787393645395794261243846971268747188701122294836524249163210530999813862947049676756339648763739163365856169276921907397479937538301883941205407537333142454000276896001626891892828087059947245403413296774802506867654177392143590829896714891328619812540630032673878727192605825846049275294085231466711863989898367081725663339072940370375669500205186489112456101483604841337190899233886381176143136468584150913335809942115970067745482428420854004225374655396850702551837683302198535224880561283499538347723338550234140335171291951398937058321375299194529243351818175726694729900092280043452894314641565431764195451617625503934567855668153691725042937158489632014587484103565877073222603133763121318540124462777413047822574481003863914577827289943326484665172020613354843471617809243325500233749425429862334257789620459063435297421956952244368874358201730255687369593476198782017439001423739870709828047133526767208725421650480701436339579354011707364183615417831066132248043600539635209051956312477704702155406638861361440357119689569002474411820953511813268069901633546246884900309140890592974127197141633826057556675759626700100242738183359740657879825007737463832934773100224764759224453234477961372957258764015149912514698583756889904429183015210121964329185661010264059547601509502607157056519207853467159115064438523300241509525959725900918674842567076482284137204417133995466548906103504659211196533349985496652955238722638284985118931536876634960607122494151885278789672451747834488442660142596860246399520597028831395419222645930869909404635140091572807866391824953100368321027241696911204066966805728259337143888013428822551730610831540706555636749478497204591920412993513358932395045956775413748368068402751945011169918542133790734542621212687696525558830580482347849282734398062507238263636063500392357119136538213072688432262215073538849730812609192973739571532646966659137051768475172449720361353694420636169813705481216501168499525896042453125713956332372859531159991409399925235871231652474078468030717219497154145344339203874393497901241805304172591137359118512265133364799178946757783905986693643595082295845155910370905655766529908654252206958320430564609909653854849146218972173282422720082952802725119117607227232399610343255211937780757068895544205884518845258010823085858636412855214718698377782101125094812231380285838661676868965716905401370342249089574901339391481064131488623383112666106288738481933736455396035860163474933632913081200116593828544640633966260890604363234562745701908621570178618694256269346175992469507705454746972640613361353995745278495633792047462353100164467853751120238626182076275738845154537840756207059580112818926247099996511162454232242987808182808174827521853546192279183426617338383283147544658844060832001461765187045477704922748021964414815500204488285168925490213009706299971501565461425642978389671779075802147054757977347590824000978059162954496070725442831186321998298400714297837064281982855295375533130433391138387534820758936365786038497037700453573449086892835589923969141661098555886450952621589140405759079287929701192399533940228465997412960048273281424420386632092548098023285927367920796914591975135975036998806386238727107463450859155303967239692019616005237050160739826328603271499801010250526785734311426207092013590487143338358679432692736211950350058454290268395239280100768251200019359849642899286462695052614465830510115923055690411180096764144526101341755972806080533799017989618815448552573517399751117273277482107129375526768323508697904399231067205305085484971429871179388987122520869539985190189713792993625542425802500626466811569108526071981940732436928433011904977152891041976271758249389457584827475227140625975230870155988585583489656900830416060632281965043328781246530832112966008288702419448055000729974780931464341505895965951531011903260306395326210024499507052447370042059727497711456371732098310148076893689800628570292608072780259539200781766695906510206544584100445794270666918789360952572898635503513537364366001307303721903643097153734817163856382652719705972271751781299271986040364765443181236056707169309701481235511894941074220988527129079643938998929947013145155979996790343293563933476284053902496873497675749079333503064013007511253921144771104929636394250182508009720677351301205988308580848715612348448979459736736670747170245978587877587600927294429797047790332794229165818177117340397746337123785982715741270438253095895137449883181749976000890666845177580486501819918633421856277174939220258852731441627730306398034172756341237399769792791133091891036965048691978117923468213368195252852437404895651147753850919176812293179825487957537642369418188793553854601215580393298167588540094031268038825013353173380342017835315904589026077167214298789185204262588397135940555580747638264196985922688489972309326851313332017542457754758020573678776598920415514121318593139248301017282974030765756829470669880223702413318000835459837744702605463413441904325680335409022906664500853411567295163957117045391687183540609535299542154215869990415696228067266716771291805756939769182813930616046119624962786122811637313667238650150238480126561405286175572632327518415138175571899821197320503660604766670387458265291859152214351294580351891875819045850410716757260724838053193912979748300750141706258706639113441278061657629532472773093264341557596384539574057070579453519209055071074615523234244151556782153746581970990227368552451427406827479965518608507502740693214504970920441992463763063158744137448029975928090172040094953902632391951188602791645041541892859658231837059033298073211816602856873737814396265426102672547517089105423568658754466695465437158842253293986771367731455652032493706803658829493525196420636892669868005948836735649444490448462285042890018318107357201688559857829257270378333708897698012675499607973913463281634135320361895255437482474732414952664656411819198373699039081545493496753306294738343583694981380352377107811297593614333382534041767003166963416365976584855142343495493981905354979438723694190615921281155882749028721958191576566352831796587565402887279463007389723125239830255882095326270588074620653635527562984062934367541314901106772255512221775168914639028230673927516444698556286174438164223297454098165257147425353356264684406236427929112100940939155867971894158638850221430184353416889920909109276473998754816450168454343903443391171713505263171857194771331095150839280373695811366117882864898196269141408530057948386617490000193479473175618122735030939575184579075059349374795117808703695611752960580188954198589172653913242968924312644983955229127830030740736738080861092526353338385087854467040388951998032546784985500303993569884437157468992087272141012131985666580735536401670303779107611025446664554666673681189216502361406361814461861813124867770443862544336632384109695611155937439380830587345799489045557178296421433944728841425622326987816902831741795524703240764103899411967137343517330637065904430056229716781212998599378202751124398808497543989668675409158414945748314770936355078507356559417137543618422266976762949779077167696023837420539264692225767620841661170394039368945458801072234791474750795969344727649154661991814641159374416202553634414884366605097808319771949755053650995778671527020197165029165558330038831720098120286009617369149840043104674737088436598853206821668181480983386998912006466759530716179205492169934139417917740953831180858613189636127137034127817405937736149276411367355759082678885084264130663575755818652029098299429039555952647106788776456007458887342856958779388068852174683878959724626299620674231951039724812655771424892902241431149686861421420400228764931088477412766079365807331401247252667025377894711326766435345404413289863877874418694233461456730271980306864207555402836887073064047364293060366219120616951604594025027145619751856160912535723353501672605300219360548564155098196296539811809744303767026574667147074302584598363469415271567382573144428959283660027254927012101871634646225152201717548713525040226543069098449781938254503867385131384006831446791753736962780199250686332494878576731314067708613023050015314991426317910658953130330175013064565839641540244768102052327356114559620295121397167119619888815219178299662021307624291253363158097690767978787284973535730543937474529720506023608631547105044686869901560944612430366629467403640258876776697374588957214191185839414842336942613217154899814793719003125945308952673072253567214858859658787325445051940243000632252726031091290884374978980420294279738186544582954106201595708514655327736827382469092778136876433825221119981504906744946267268920592557286737833801770051875707947445844775719332008659759265802221039826096698294886170517099992552800142182405862230999403518372642568601447391594977689983165725086755928823757277702907688652613735842678410754795253707778165492988119403919172247792623001948530617956448228257114253601509602402324296135034318537438761614660887799713522315697823855208830384349787199232781977130294159033724439644547108880356314346990798781010664895830206707812532105650525592035290130940443461404562550567471662751426278190542228328695007007589073968205569016188189023277328693363965219826103268855482378332104601586960216206383743369457253710511827235670221985814400801712083904720369381672271037787208419103549854249844079291097093249954156522099547768031405581529232198509856992587118534033398879001350978019034021545558914611014563232088664663269980850313134972133989180671008745541340496683864983512777318452346124945125208848761082041095922849549694506299381765958530555542549278486101544581512202468347230973290086499016254823946860784554076026653210087099691491978750443536900926393390597971501073820925400270452737543262824615961704330778182463045258752219238461339499146298685136228844628350085225848330787091262988305889256331221308531109912988672634475487869840283750357063954086709208847546109659763867721865264834573567755017657463107014628282731763033896179125622795866745220776354863036773486507816428564978659924664517903994341602026094576118627484394816979161063303726033019870486682587333441443773767219813391831426140861355567455755402630566089575309941308312880582308153727893927289640541407920202954045286358616971235014517791095119615524921472897692707866812545660935959867318998169203042967016675828790043371362113532710123054132189795685834442266034695906581351403465019245797050817041818841309053050794095188533486909778064115844201217134046019295014079393895165520103592227742766812712333192062620440281663066253011593829853496413769748669402715782660085744707586754178136547463288762250783536057013170959804897179876193214092661195184414820805555790152678802355989605558945171626338449765136567617369649293361822357957506235126334220976774354121753559748953897311306925577536755547948576718287192941842778731947776011876709243432566807606017034625181835380993686711916982773570384517002111460705412112421743775320382741046295382162732868079279498849056726721609091557504392822513394986338028486823225519521166632302015340915821034907757913881431274447423138388076649624749710642147339898887273353634992336136909118705077941830968835626557145980911769991217233460741205835927699441351107476066275127250580077661013418839351351340089257624145656146998159442135546581508399519094763961224251387415772867111486750619613819400931968422810793219053446734936319695672293158396825946856738397595050055793265866105190374021166356638474491766497255635201879911570520074190205579632157115656429750251995055232009016349846204565940798187540282300971246270428575962488987328196650307039977135283218151154542112844577964768775518211991143566179058748100949295609862254521092590323834831569195397197573174860363449269358412071658761476434320965650803947879241934260304947535124495663328096828981835306894408778050479512110773156952860774309452423124993478471241634382097257994120086105846479758785685533375012865673918182020320478445957223475845112248686049641818144275840625793201927136343766896231957975181696586374530410730315450401945777486651943567840723109584594090854674140806947940708824278601032359789152067938142482024421654629479429697211469024858083658437115995348831534844459355243248119864384620426236326372153136901548754944404213585313450836948018837917517215519364874075957255992930631301272677667101044309336702687431032935694152375679855038663449833678929899676773480926650665192495244948916838130220357549407354060224463596833719728283058475197571956387165161679044661127086750125721438292657819575931034545474250444599716494645879855793125705375080389392569953812015921970865388679882414019372720645688608448750843922193795244353567951056265809886944049465055800935790535323196146952359229398732787787564694341720934531853319599460796472340235250276900855251461561300479289361678943860528414795299884877690675355383177022996482105508996238307180036866153281451384427760276662643954029725319182528637163980817845449538126971437737335118990548861634052887871843981745004665569053530232272425637563147727325421283204272204582685326120862721581868211280110065895602919204769746305836670787578197153016411206898447999546328447791702072404861768091197067187758411527949117099769186073613261618655791242401773429023943263708813321857312723225976409283703520618771388167107768689934314103628458976802622842506582748905557270833802239484675659161017576853968987644202120958409053049220903901169526408040931954923274767840230059519874317650536722037411248796226909469391379546135803904422120765190872046694856549670461762547987937670098205406894876454265743302504507376468545843929282324822046524886416126148869273150811828573848569415543322133708228485699038069114852896392781113297153407079662249020593954886156098479794619960867745276312032256478746741654475353256010294887414003888556026052222022709738858873285345160230214988472706252751226500963764135923567826246343782894774230806897615105634525747169955650710475290303502529927324648099606657553811035264645032063977597884885700821074534548810027820904196823484783800900869387897329302103705321597905640737968790030324922302772221504167247802584261266624505608267120900685361571548798259628193135730306159524177027977182061921027243343142023488491912717078607745929432552126317063165585062205779115745236220194889319388601626804285190072132008881784367314723488102999799552881767074234413611823820142763473550555600012115611541059327834913274409678064701914353082871238025886194465160202503077459633028267684277749953210300301141166707018594401561746925824614735941183475546585963458748687005569033695361850665954510331639872207017507228893522168505756201477972739576901361501875921213635312891222451692355208858599906821761856160145475224267935384208543338040517577692761207607427047733137365144579408031325247998222226204310188386712673793011512502905930019193621161536872241816571337213763566164982054060746657478048491531437411404328263613938469857776001552665182706906893467854048049865462218721583464205985011425953225138198215917333740017585534863602319886103471442279213376445060988498730408234686114471024816921379377480269771080166204655080021793784534484886963718525599267141212256254576601414590983163929279530915357301033315904018112900661899513119024334338961570714495759531096628210951596415173310291720894846789350592599926446715117080420378140692554790028143594280222519626436956092475225726202561610401607566401583774745546439195272184603431409746638637216252123966726926114118026687681594542387520959582774099418848180017786031107246995979824322929123625685145138514704587139050306180953192415958346275904384886745319111870128229046371921041911415029463343297743124737488953290211782147315564642156461153763003508608471126652920314190498856346110389690189008830714432665395267438029028502760015949904594727542530318481557612378553615649726219662434550661905167619082191872143362724094924263573842781806342662758514835543523868731645003462672432804564233594470241554963295602388915432942130078259295590001657572936791488940534361437296658461740283216146066772674869609294416175483027522052821485275398940311386140064446607993540871402458500437036112312731546651593287646674806989774911705296457469962182116020916800747495077973375604135862532997172083116331226838745892938085068096992187575853897783361172736330801980717662122699426802594741720571436240026640681283690293182787424123372815946654260723099798844599991948751702852979073569615231104397689495497640250917589121400853918688912757141381778577092628850696736479271600557833660430578374710682912716593597330959461114953685644263501183508196035226782378899903025356452699786895687800861099652225073357679675202903681276530761065221547053022987419619547768711024192168492952284479195841809850592427335266250656899189569593369397830483710172397043069819265683737493844335719130140032951051163125115850729912619796424628424767883826191766182548360526785674987265688280992708881176416832974115211439463897164232393464370534895173346155194721412832945205545838227880534007395035246912944254895941000856490275290720033161242528834339333505231511221969402108118964209877155019308233934065826217870862081448575265342567672404716592942793093571673329788728324645791395735028438909121251406076633496060324694506142714811266535310047724459788020603098264414268432870191467081056329984736539073785295210833014323187438729675068047299651902391911651758750324410340528893433651542739901373325209040412558604695215921093737644801751512226851615014348464708169646186206340121854576465138348203429763984708403365615541088147585001500997837030606079576904583805419334837931478374921431761259415583613277280243327828253979760871758711210240026788512358248007623274910290939433539087422213324111128329340065281270806251173029176084769349393721096742642634830001517189926305170248010291600475703741804571108846864568606954175938031018538071617018934799762803533476663305632611083085933279824740853004277320587815228397727962959142820715566827817938238305403114957460577931815300597060458928916321154897979436873276654457760501587624779490397212585358931536770238840454184009114790494296386335189677119258399823687425315172164903181245895004301511551177751450730737261238446184675426584992091663096409361869300341068298529961651022414516413904424075123365089813748669873443267333880603920685378203978899464601879452513289824040277320630903688469702769578187258936011768523187240612597047395926830276628793619577162748996435479945397624738433338982762348845102064664306678080391904714194625605624972860629516032785454125034081747215901808668346925981620786587811875001809522587672180141376034158063574707347243920607022675649799844407796983657656523132262584877997757045537911994971340885689032069819147269156589234540730400036349837360328663785827976248813906485083872372588131579105742269562538860780799044455948731545645118051779970880679045856325972242856099646556480983967474550351153755703762641534573342672072458472551080634477946311287492760842300359699943852470329121344618918807721551568119093619714061932646566002794316683027988891719657858302369826267687682309426027788211835386473573542193408830017438465497786818317735623937909055768974808132286323959864610236628365534494367191102165381956397690410321794486403106931117778838062640820659903094676534754404750937005026372520472622403483330604466239955244116597333334995446291807727303377829070728317924578739364267746973578108016562022800188343003477447432090788434112803307564498142643719240442278504439320596586085063363255943708214945531947612960626718913053729863474849340622443640055641022413643513334809634105441575220762859272748060863353103559888164035191768131479027800726524942579160384339869142872198705570227356782836028147239474105474134077100074205538604093478642973488090380619143568213392362218720344292908014624617733598427413490659227602370095671692774255428430085805138741040944516457013361921089712651819757086841896576853640724074139333224423231824435970891240428252504540232256374632979919006361141572913924567118328240596537282364966650787552732351597413532076219551462207181835908655699797753791559071040562736030423922741767824996254929854829319561591940012314425023075872144298124038071988908904654286503178113077830521631530064728939832298629743028144688257471038624833066868212604809079166705965396233527348142051206336305281469158338006863383125534158099984988467048995129992361026411104720351615849408047951590595564910876693541776018131095050135094580807637863376606262522555357130799027645894954459436990798250785890280683993549010604389713597291772961342235873018188312697737026952989733124986232863362446153200237743309232222401813589012823350243147147864222261053280115747645801321029374715069323996921507499284009744567668038634708605130430972991177995866829653536490697980698652172858471091034120626721408417685339170394776184629479534576602725783547907767838490952937129379682190967500503723263354801726493557523766076714021113014999703598620985502646914749620508412714142359785763145135600234790368599076011283065026531988246483921309438918682333760049282874266232249090196059286746006724797029827621361302843229202510217006644694618889733548733076308055528505893901413707184726659533068189662710362178634214889636188481148625126485554486344493906894118437847123795645628443899700168682121339780699113941062496338992035630462327476110280116263463762128955117831218720459764533636755393863572897400106445151352955548982017608208336222816966778048534512904072160128733226302783454130365814840950699508591817882734480057152639074200524906049584105505737635600366943525640128294736564347899245295237530017508654971167191825224620393754230906539381945387943356963439042023161973799243851464771736008558465528760907761180624297678877981304820126735642923186553269967666766230594328101055584685681842828189660520998741188240942115311295665704296752386636587854188227888034598596856292299001943254744618680396990464409264304257048035488569806619827553432179984686257917428176278181659247243054182509791878088881763537831082820867117533560854641566733498178119676954810911731291248881367260687636095610806171591292013436798657054921007273405640663001632021737913382927705243514075036551076465384312989055208482941972648760277798743075971829094444440358069917049654021096101958946487176236526731869689926080578569219219775953291796596635522957763308967739563303129485923677985559568991940494944913511287255920405251109203063566341378398694369911299535759075506762407951540895595589954677393133896861014126427467730746496416438035421114779334030273443193076483194004802779449222185418428628552916988171821072865158397134104911537575496295298671822968194328739575216570006115953318013170211306789466012944089460417057302708776723779074105846700365421186466020961541929762671809583208992772095654499659135874628917444048647372351714787059846605904478287708767290002619527537639379523504661448299238566400923667547429460917450540083014761110214008573448520226419316897991962637602650622167924142771393330280952580170895844856945209724082508926138575666569524880486987129969391818847432649842174105849284079050012937024489676411670866602726158562858894478180830763113012180060344365066949595526546369009357713651497489499446586445359458530255880869184438874675462634034897926581190500634791719087181519226538500166796866756200033980986121573224110132412029544493141039430583290272417422909985938250836075472103876092161241491253526530955763735395837315382279917340068574395712585971130177326675322028896257771764801259117230640380346293463380247988302442808048886441072715690972783903999432322153334170406233104539219345125723312760927511515468782886794828750791956482595005672277605452246273401699061746230985841281741919211543000652570052461115606337902857597562080883335494857693769512575539700026769114293293432738723955724327026907052127042145571465021261188642826590917834872628878789244896331971682596319493211699987629696602517840304835764533494433446061033276359141642953381746644090690636034115384482269102185468007955049134562645397360728675107826496929430710770657708364309527174738958051763536601781534758569270135531592179334503159978408886666401384993958058397598809603422226761714774590284979301668623706613782058784888130268526677591865257586557423837720647891316871770942952828456058147088272423648963062345563051357983964873456526612360418769756941059351394428125208954830444692040464667107633434869412400529301864505844746308798690789416627019007557921991644817111470910762595925939880224253519921776241967430787527489232937465036467034074895160525383593163551886876183208468519206362363663654623940734696010367349058260013016263380942978902122815782911531598951794405261535607647384045448814690591323286450232796809989895430417724453741104195258689925666706196820833860973394337214864185476194694644608561177277733126883026301326901045814260290105060823211475091028074830950235468205985734631860566420844256081665626909985708515641276605273643346941928202113439319007772540402520274083861697428892198599533599781897769630575067623186223889331905116036246236937275180786318424201282375072621464481935700423608344887639458862278487222881269829525180043096515677836317660354768475118914125471038771554877489708733126763454022870362174094674530965518594221711220459907606592981399830704196914682101711192794706294090131470471291849023584327714308170093990073434501152833950607780261863860731636226676524993330070308343344850753543721823414023396194562329831321394799465237077453803990496444217848599928243946680154997442033447162491095835208673061251243767729473756256577755064434607219737262430547894303178823599929625644327930466269169560308076532915847067572028276327442438459072558627288157493565124561480055901236411645719815039662383319770356403661562131227859504739854858260563531715386076968551342729321255645998347033983954642654552557926896392075092388894601087282467300060692457347163052126160790406621162653574182064326619410557526553666208463143321703662900107012718335791329846625326237127055360155919174088143901454214940830158980622979973947048678486326193494290482458648466487419611722181135970655100601667214229266232886704577770865586462932771249422310375464512850644544434380212239611026618112459181978430952499409058191947826956708420625293354472161589872028280273033698481735412280814943561831968794680960126880831651613173107057581481838692418352562343795628173491243308408687177269008887577987119294211455215214472213561606374328674771010527490376176159856414371935311537854322970105864514183979718570448435677194582199788775924771830935662093903712961713913075589896665830673649749110628666056885120503706550093322667732693026075144435523778253158095599972428629848197940883398610794042864858284630077235105448550532641549601624419757463025703642887948396673453599667963652122504062653834462481843665184251191322963432257669699226459596514034421673342139612852645797608442333420258106885002357909879165740867714603756396484354765202655586815920833813780597332151656736518149052653600079024077630958414149566114329008037999212637522412438449699520709859405577142766800637024333637845607358659347790201508395921883688280738031250954128380058431696152993718997875201474091551560757542422491232501784380064656082251605582127740420007571380859613119113556340275540686624179609147062644698872216620644311087906074947285750094542495918351588348976736609158330350948247387737106252215150694567300588917338992818311796927768759289778814857811137787793524052677725169829810521026598332856739295834498278340238478634371039167958863700905324679952513409435227035542022016598406445314721863676590623644399445335191068852304694035758089795931646776845704886323988188024963566147785727594146832050192981281972899002450378025735729058738873458010285251173091916961655557122559037899609872067403574646550779783507284027800609994525944180367240828276123418154588341600201956761920935791553999039647577436668172196440176607976097008574815870689156287299596400422301245601782179477834319470531970146766313606505559870550344049084134477491936376055305710433470653667904203488177035236986431569576391900569815105806111877892088389570159406342138503956774071823962959628495041795914711920626293442014113806000694122665450205302159380179355936911210236971145372961591641718420560666765573793148858639452788149718954418238197902561385763295799136997406355691167802777910900951831027991004165542789450321344903131130909297383707439339234755815773905621943028598454591608842504277774280306280728032614988122005407911621325373688106360755138738082806493294277167065142581409068850967406321323480137746827109822936668928751365418413259336191878920163341238699067588682933006787448647218690025726919215853815679609681048691710427320009417685024922011377182399257358852248100529317014797433596135194399533320142567580684962288202392372442731091439932653030964295589866872193768318513599076981926357161513920500304573378581029291019165183810342606250872247352554220275839830087394965187804912450811647945227416456889458272193555010729478304118933469412491698347987955168235057926370196209738667470372175536692873051862630797142096024385268799742603285886723089100400925455685676448855367729303237348798727577865488279863448125935282418660440085736511306119188429496109116575010798138221481063389990376962973101200103810819688948616012756081102566506658828665544577406867111699567862888120841364690174212917221615914603909960471182317832600272018975759850703803980640807319013544862070771925413905686453612435403676491905729184146262488919963178868415710395361316669299874969352470092238168972656611546103037457269594687394446120466509150380743170969025304267164743802564983445558220231302473262499630318949044403585723926510654598760237791486272455749615431041644250195647709027939248551605398795096091192782960195903783439242216464619146877448312997577175661591556580957445527851171616673824122048157504645734332739463468900802877043685669746991041058370564336721781178583197598482262506881995737919367714247676036985483784010462686325619692333469342658387586368509928216227242041746918329434371237616263163546100240395533672837339242139134046074948650777021866103740007021297224154865920260669306538676808217343666645593160030204724679209630560104088993757648585294190789334528701771870699951044520135923816655892103642990785934821698363972917652854863735351877229741159154578357088293886908419636180955523970159343326669629642327039061034133728202211532880041281184609641591663902769574290255880450300160690299088521122123024164364568267735019745748153811103459043399647581333419954330709745409504800976754430176698190757562025958466634183579349569227634054646740458394922085368668606216785238929975907454286246340171221758079999553701402961826318796982133098578187054204939683246448001235054960661291153748558443656358089321751558432532594652279591962783607625462773536473060032440085257756121370768111513675768854213173799092748664212619986606218114095485848172377570612011070587034751379974719966495380347887969433376295748181107177614258857418094607829003272869221354303962406764920479755416240737715642482247646999355730874032306771372991368532378254489934142258746910235357838271214477572953431842342215923253277191645951313721923148207304300991687143030794944133901976908544228404601911144955494444687192774678049170302428494957376801614547433095755742204783445927400405883965817657296061201052952516727426392553352356028282999186666686611185756128291342678857498783815729352211997299362963709096331412704986746814667502537787833663119472418809013315190971162844074151210171215721048383942770317049455210466287227027665129119987034120409912670258335709465093243753641922904568107665477054743668061312541398469217859300879202569857821895679835802167159974884323520890711496503780311377575501089623472261475039351206647493530880886606623955540849840686507023385880712240824888814610353901536894774122221167427532431537174133622740591027392731686036508630981529086341488421706309615047369340958728623698359726546387854609524604309001608960904318627636688376263605605328214767501120764039119112624869466497399309223562262464187004585276579652299596388618258419821984325061611872697802548580179111470599658698955627014517338196661886661866106367122631454237898470395865586252524515011516495616321496626252450386063008601202884657534748613627639640580120855844518754074697426534752799850237344901372586971095300242031958566408816161852298790353521218484905387261777310367659079435708329630127601407238030282235702305015432695434320739260496692737946936961271314171699480766234870376614803384116014705498359486018920315488542408975746421272949877186798607532643606128588225432058400407383273137089250705073202744446024991880192124121958006400857467761317422733851826583014143204574932810181511725960752174542317584148534185249340856352378899356463980783492449854146124047929216966455026981089980437628403222018674240661291783028834772374462268379272356670999596739745111008870428190686728961056753240308992592152372246406524465833856729116931356429559408222374738863702695204978368281429692545369111175155481097024293658543097385631553605676427634829624339082749012822430324783885900609870472978327448174489987607320496619711219213617400670147769378006128060520284309761164932749054732293308398184991933089306885841636738736721799117760030131272445991917163123648147200734748514662098158483630326842193232293156405832173607655408393237860813911409499865264173177781413950948296989010398308807706264832207592648998430094026475915781800094811556058648622439817583006567094821131113701343559049615838502876902955266150720629183341535801804603921656378453287469296486725318421002493584415882875857830576457294697216095448170883714557624196119219890932273115026173873168454683226718093069825962782612225847046790579694358400255587689375422980563099553569448937354921811881586170055162098658139410139885109572113956271709297115261741417352750294179201038568262670605914630106279258600838437040338553179772671587925935911522360320181148971591580075639207229759935500535897044135456414352305449622857917167194635103288135052298744130785673037422593775009092868172364161351990821336015976449104041129839933542691288410468583295745879547489992647334536504197755220739765665546956062431879189485594960108978148840889955403327295234448077075640677827207051326103123927372997759379307445971943082125342327862799011450508669567823168918837370528875107174160600830519666791556020704877515953163763749347842251764734896571046306051738046451288297648280639358716281231364133609780321739837761860351435925593850783535322007365542957815675868183246646936896449870194002809371733829825282973400477526001471465550958028037318934696337187555380198765323949730176639360382415572208670084654624304756193271041715772228500711675094701695374002742856288527180316893877420800245786891749457543459760493018951959589754661476058948578142778179973300337813577479228136826344530317182407042992192477584212610179579844652337014446932603771802478066705078044984314175887609569141900642406905054223009146017026048789919834694660023281885340559025417170736767110654846675086136393014506121438042029285366409735786792085792849171359309631708588222856922218268854912990929822730438865429924181126002430639401025775444477961035303737778230857251286214190676709030368870457852927591684333367945647420909330890063388671040977078863335007906579482406486414691898658557405984393747229959838357599749495567971251812199362674991895464742659473009381372860965281372780429380003293634836137874977834356650094338588268821280851164945861974586492751216315327325649149376740037681499792122972681920094731751782286511533517627254102917836191028743537394211085915568411834845283049310563269886030570927473490932540752035302229097756712810067608496534490141743223861867027321023791106057844888730289769269446107336538166922801053763742501766209832049130735887490451869322027720836269551880720988799455107369831331399159060917366302605536658826174281541304342495348299576931997613293608761247194384739109604844953503707824784296504003070811704857414933810835415644170435756872383673920517695827929197513443744077656271743011757463538907851240290146291249399708510646780536566425444273095273566163771355409750518576541015372629240653565271848868815926237780104469172072897252350539909130554545741359748306218080245338645335492754811878205019258064303948062140282552663672284270577880030976123055694048734015814806939308826451846450015758047423030999076122540888575777514522638034730681254942946682028651987398006260355853842837549857021267575521462259061790857330313532463366796703128131205710286330045495592841200641006328129285233224643770815810612988949306598215648722239616713716558729645685216619712126432006026025542419278863069325234975220571935624046738351747503038923569297282178358203257828610896504773552703708998973542596606086562655319942826342719188967515543823393298030965597475350040837357335718043371741799922688170210156942346779997350710173206652173858363115968922392123543613166375702109564998508230148503976130755684629058533275150463702790685083050186052300121140850437590214731720638059155012837087971756294836135666006312179618061037209055975854266226165612546145806170671856239006879739345275357535848761131272017895622006730108934711046377381747474694471154554236898833281031615640197770579827729047961191471689841063966357989833894812423405141404862262878535422104709092631135440092434132465607748137975995447160099015777354901717116296778351526490961737085285084435118211825530152750199579085335364067778620445270914697035874952352311296519464637013045397157181498959008223516582152209754166832153624254547685861037297066743045914097626254296713904296778039695155415590378333989332747371121613226790600948568312965581503162089234089991493958281179977163003427939055098958527463619334470326257535344680394189257704487239276734945935121696883745961819154398076326357805016661746934433416895605454008661353659751148472589838031800643208021891760837376606518084931785978684596321350854035971031831177572040376650906086228845577440738344595220924321175732580167018693323000390783124289702123355451620797931064187211257068706923806526532202622372102067086973607531280507470142332455058806133874241842930126717381876271499230140304854147993474240099559480573252958778770965726758671404850685228713774812469986203431683311048309549576409458076380242258520210493238508813629934199326003908330963388662838469333055426504076773749950394538789198103667255989051320596726718626311998317918922367775456768976984365178282980320174720471732247982806515378595649165156735219328308753758585333068059607101070577158096304661248958597173215074100415757087357717927152086880459955816945722290790344913467714885040352681337099927493411373183632276812033397154888245523318704678671014247784007467874062761353059489728786637539647086142220863138186803009700786393310117549026928198149047620825359104049444452831844309299790105445737317066820134122533490312635133533243666256951860832884765475236389945192866264190227483124650712494568077571769428360134716718286361378226357643170738419198687459449348529518092391156974731472254511686111172949712865836402644734799993272403455269261402304771457811389966474368145261898286411274642971331059664187424859763289581254395102752492158305598040785261706223445383048282324600344879170435292899957811458390932649481059560108970826592488764428135158579931391389861886678733639240038274441408703725143627984847471511668664523033279808837080725418907994110744796830684591023200031538894074089242620613568807358097955697562288909463223531017780832077788901801027531262951725384080097421528635724045178201625536749956658565320597874479386259464848158850769575199966065154660237645751280451344736897905265846127639677431166458116802821257014521227783184542001154501213509150026719815023247750299491746707876655469100980563300680886661082295130459568065280681701675254495253389186393381077046605857712144482993337296490221030671509354737757031155649646726362946613740959800426438278991441696633368122245107039201362558172020358934307394289996305484287974912233463810308120016213632019646268406078623412788146833765258935103907599308393533353214776140139576227340862541625177507129644677336564559257847050230806746463406059716519033980436535480943791873897128918530299239015072125489328390321107415090904057026196718736655659627016723192405084311151892701600954517627052562285729785262425001507110541980677829297083361938968210052472205321083033614753929717350505540553785384883839514771263507858172917819425698877163601893547170243498332749282534041932072170218741107105050584446158285328171774183162711461715834276313066481153680736196787999236560123408578911994470391610773268857460926826817987498402949372516156483398924602003834817438251441546543874310568131711159162716382158721924348627729492583171474206873776381360002102383861102231899384419174339786933263326486462111553140967090549857007203537197403294435625531506398571510140354991613379987765208829045677233491212961894045034881099019845322382576155863184279188869036488656570193788878692131673211286971694954280293393214715851793488520578316485821002088670328256596221251430719130681929497609814332492306512983865478759548152489697989686312601369721819345207212040026012892882582799762223420590150561608341277367347721089763579617731984565624036552938942303704024904759583999347689129343564109691921349090526712486881720593389177871812892774084595069818156325709680561489129601173070048183449112317460759619450841313447092829769102576934783939324283537989664310947849755068720626856283057066776623715909159419504680994427616038835350286576517291751016243462640917367292807383172437153807320755923966217502008502430529070755410634350963416875475522053458683888382364156799827738802040516785860180128280542092121764698625490644050659778976052040118145233061892654384251337965522615952752636554632707481153832091951878122503724244798823485816612002579621939071692975965932572683240992396549008846633504213143255285165523492501192698954771454866829742895006263219844313138943769696863581897738049664420414368603239844560166239898417532546257882046299154524594657311337895964419540919767762172075844940820997570687110412348724190279444215674296544328185772249198608797188348143603429682604337426880967847016529873557788867680004933792913697328108192685457458309191399591400840674152379101625018043453246112587800754949654782245741523520068021499217281786890849638394117634101631370766726240383795576204644287406839882885676580993866152747667014292697768849553705691759590427070280552397297670882453467602351896090411316268445004923014931997874190474605024924135811821628074729080414974163120982899915659978639972382186671457470843574472691601546316991506560987948165901708224608822636704566544763530520514364538740776410295804861077121110659971375861157322800398809826699745859015919307783945617334166167153768004771401046100872271804593843756150358058271305228041128137627846148228517566451044956980538921099032590547671939335032244136639102603514358614101828304992901639313850632521391273480397899248605293254037049747189559823282566375155572690351771563267288866176331471415588055006037348142130336777103408695919572711567245907721445404327286633326296695676753710709394654865898826102995920224816238192339717328350584413622587648728910116657098692596801524406318145036018695911077367301175288556210792629693839760838179157621125538792017360013636861941041598485858759007997412216426703621705413937519903726106076768870578674960049871829467393278529076975852322563184393562205409192352683556407886309572417560286415073874469631493155097286638805384193548252072714092157942334762768731215192216689926759006019273834586860563728181272323016332859005129882809757355905320157303013647665086634901387388577079332233635358083739967277297907352876215063603885689085810898719668719765353030629110924811060569145619270121570498880622154054253231886743934862329802181071387436587659869833298449401844982914336290048153590896190027257880514348789028602804107359487572833580217986593184573519045457693784145260358687820507216656568972210545939955948947216046379980920031724947434696382901201408130289694285212151058341183326106936623298464962859777121915571746676823281121956411235769414430450254913839383906131408609209228931887486783817532960583153499997252633862008533455663139131655675013520243827071003236151821676574477940198148970185203986263654976844085575246112505376657108678445116448170986826549159643816416853711098911249329806829512254630179440050465064251254923979943670521909664543360309936553838060172379033475472673985148673061591323738743781236885966255542398395239653377860780881440303718754809556849510612089746524242258115223363432703567918190559699221918642979870530569384882035493451597558831592307490837697565778974772269267577353813816183413998013344756051873718178877391309603342135118473667659693055165533962118466543252087565504778915865190236271065766737024507745039599754548019644595987840086653068174454090423617016625277728698121709415577301141165904378847101535430549405389511456221505478587121020083734211410966969439975267498375832240741335845342563441641791992739537227966106223742419149633535100915313662216566576977694886556473439607440584202199292769281906701150856002601979386415321272707765446130490755043502786672572830672046210488267594248273835829407202283136097478054573452462310387789680042844576602410916056049720195675148772777372352273527128356655474461832244694023254876993321389595422038294637631155376851224673776269999018312458352649921009718124302095562446330476897303337602478545950262727315491991988718351714931515934568147174688403855491111480870279116768459816560298286423591683043648912440493797012089053143404414161333655532555289052528762377289243496575763811945055911309057009300815292828871694002306666689804637984924406229493473927772443823450500829763305545647579585389524970268932453277773493557203224211800715268196297616169869458647080223671093675184668218719626621200152838654225486698004619320295032684809305845607741587448287073384213012199760057298002897754772294659938378129503872257715904790040304141168066113395398375768296005303257034288548537575084658084984200494313340968725964811723047291692127338770699091489369213246501571704384448988912466414238821978395321572563751351921294969375123744946507513802124690822378540928232990869687601834597792036065698131638093952850799337137521201252109080020526013668771682568082331035095578695898017426979774342074208102206125540735406167147410673280857457510363318119864699011438675208174722933175949963833110798322528809042451342139418696950916730170574872512617018982516366728096174547153676946784957140144695203562962260713116760924930516065559639150870824437634886831015424228903398830637814336506225737953217547910362204818337159685020757008768350991632590961427092785483479622878168777913980952768991789487591020120377189889190485685666983247604546550840890548652298715127886208755874401548475672028458153064047469905355796377502578107522783176561458123786974156260046652439924594223099546231938142596766764159339579952861802052520948058363071928745134281898696211950181456613285300554985141653166465482834296477856292014677262292552144497050452304465402083334663051656345964525529597304624145979932167926978145983479212698895244803728908745431745660635477871926591004251272623895611432179745469978431024034000114686542928773984417466297393241997011235942409758635652534720415957818160295594608437386979768154273695661626942892778327190731826231362308444555458973070755554802067769360440383689410399488904848762158164566963605701341873987341867114312880568518306883547577151630953188053378465509993236292546072987298429610518511359423211785055580213309249742589685679344430954059685972405379326664455957816825881726693782177866812376796430167324324162757320858785402524895097649114443299176132506677956161134723492438257386456789360150716795148058458921455892989203386794278171851123712806348016664092735483580924146573530435853789425739337669325510956631688438336557301434272066120379316384275848022196152043790426816001655277463200391408596559288763432326902123112343453337001510712356159900195698366133474968760801339499971806170629256461499082626366986832867654078482296160227340614535565064372826914354880508938938336280999587254304141373270518497683783789972938474325885078635904949195644775882480991006005573468471451510722567802153258787899815355502457597351807893837272359878432969633874832413866836681402077609553504002559161002393074549039986418145378551692071034746170390269454156480122716125924017073324840837751707069861147613671429625961847016090758648043787611466201634658295667892752950193537216298549641056543374807911647147791479449716021679862549411731333333706083358022408099404840693607778945063617734174499205923112844619530078825895036855200215863821810563190749140010473053806919606864328579032352369020733284194749240043032288366414839228067891765189722337275430593477256788688563034812359522498011790450151775526927841634807228753352678479456183032286538727403706262040238937375748899985737899299199093578297417262014739781602304848618431145177782359441570434692893837976083919609748307413810243650906931139314749545666610328998176985800437398265425294133549504315657855239841368202227805286911033257797192869402974919056840717014250963646864385318853319388734263095146721741619144004631620344641223578005822756264102039251202573910154956672810648855687351729774298184062467085833446868827863889774212656491462107430903490296901489045904972819046310378750490941553653285284474259210373854603000224144977895384297184018219705737036776202601974985818918361095292102353215446275903597415528647079984108085125789209636153908399083181887978057830650010051907071498177664727517649300058809330022413614875347455009890286752397374636328026472646443608437997648390476654593338444550907247817631160203531778620005984205310531925474605836816288659117104777154203196123629984422217839006543096698002465330592894002011110124546429375119091357263288439406363131812548223189984561317485354563542885098584273581369308973719722548748157132720366971104904858061297706700128110453598829149662156960766408214322913165764669761124868018882845181722754657763863066287872184863602556050153047677185316789643437216709345517039309113491088477655473186104487003529562647169000362916741780262070276418667595963113633810505291503825307249433219409771650784558415680585851609963088370437769255536451352468166526752281467895952838903333624136795216410330002286652850216138102561222115759612705471228798885007844390641667050477842709365464191086771490578055854097936704081772011817786606891240196763586094955351389916650293266811804780626770555474524985941603848110522871354821364474247544982361581029341874380651194006230139372933907945270195757205554722213440973215418779490654355448283406063045679301605807695828152862167601036471569074187326790811962552160372796821858011388769413061534511322601126020539882360891097824114627083671182546991691568160807845304725366669477918185710272716754149466171127275170704728571267744471040656024716787614604533894260597366366872722512181650537550812306204810427997848788577448704152446563192283136935047726506923720133819224109516556934890689130559566017941223662864827638103631665520209901069682806427376132747176683844147222299810260744704234781874737188757182047476995569041237894216469043733896161412361910013780318938421501096491897033141663714586537110142836612451079054092831223700646383238654478166072300743320604014788632886607406116353854565616903361212491325059959130336545443344412797273280893808407379864601967722156188336915654362697683352455197314196815705238123122693121400860750548036050222600949240347298304706063651702262240384272544400968469182451761757446141765465018159752290604700515029440845331541350038904958525637536776617420398014388927739366854682434840810068259448284481361773524491072824865386067117071516023486033970786060248678216178515712461133923849610131644602658206286740173866174611371683489014293058908748541245069195511944520387666479898905518760515178960033873210788574360217847058501822840246240949550607801659079222974759118400941383371054185087815446099357387568484126235005250380811283717750739184410803479617966196986166238927584354373138496145251962751175998994967182046688920585713545657544955227685733731363277114720451344571591874226372769196741393246773949450607266998282925653033305052822320495972893788035285699999256687543571069416807177065198659128491722389362948454578383484421988101501136496983621839207521282136077144218388910305146712248206655087346194554241865656113464912504149091456083899231895762309206394778423576603674498638096235062564037544870446419526266224189654537539779213043447007737710910686471096006237963326915223487221475668993002211862593741149933285475098524273767902376428048665428180194938013464832547498132478602207669782892919877123170945226267688489275245612935910632604557975743966006691705619559637983874076475576512457441621680388747241457330317756759195081717304385438360095726683549811670979701657058161757028692244188665242499528419484845111928486090448067672788652700275740229445305886343386442304399428114700109908897777475870347272958103978289425356359077505323299344797636316575438316404352494264455647372898947817644989129774570296128759939287960629978588623961244338706567310482620852893671312161806387884660513149142588393612688802333672714311573065555009137775336440160340889878196116146169337959719782554797467194169695785296997847675919076290734122935783455904291802886232440321575666515723664398931086096000306981587923446301709617244416769941741457895924795195045829091139294483307157771000596823511466699613866360964030621661094143349512596614946938210419888404031431020573127931590441363240283065918504288071666650458032844833148187121976622560694680404526927176575639542745982398209474660711863545910308841882230841640205295952151559769012633251401471502977337345071100045945592015837187110715759002058055301280327737786106740934117838899252161155745535438818756150564352830989741133168833124371809649565596498023581674715272222142581152860479529742123806224667055975885551357347187955048859649964384797700768536933690974887538157355195394058401779384017908020994921210086190146992190923549540792822277319084241902605385455382296886396365154510825138534412488427538019421293310513193992218482579676043094895711723907977945076071970304147752402773874781671518747698073100038733992959170519770771846759751162266998365850117204593137397817002712102268159770721209868860891129849423149975402545426094134892572355007319666077152848385592176537133302815100286417135062320526535811149400547810984742808703653024629213793782755108313949572998377441565936684150630185600457274523266537985678154194078766939235442816888024101887453813959278544785014703647134751192674358256565149582547147412490426063025829263029639966649892900821616684527275630416989917701354393685336210087741748924031096657746953987445290456425998134820790582189138988618190539310004885877051252462182797854758705359074300865850719982351306928548487014581977288900093666443447289211498436432964159476807959008492802186959207424183776031052435824263574913210675945318637761094327304702053315830248940215960144857826506311077794561423624036380658462055578071669673175932497675105328418191824560438169064680635453650404204923245659448152379622220105774975677692273634451261330343226430791219566613790006262768118308689020711246051394274363542836163742794957335914799636122151882667300291299042189010014255679398242413597267266067973411280313824350290735856574135536341870479925157737094970667545581558619766061845623142829997410463531726176423555775066479222085256460484126074718228742799238818448457330250477842108507683585226590017457053744457165930640710250008891922221263771831677026970198445015930563537091420429634620984922583530902133720707874628703133414014835457288401481027665469608833044473004366586414900161165043260013615135863977989645088937370784078270091134983613381020958998161326315610935844544954655366468768254544921587821790468240401183686295594147266805428391280728176461045450280599942038476347841285549123579575046322904260691957045149488311410640001805392317710242429709349898712994219477579159571704765605938222737130867225996443485991636433529464539212955916410537517746431616428197461988882474264945122275214944195036891447808652530764418438677015889566205263050294947529971251400863187009996709604428712411951130371415548546135029112324368342716676988105748706901101810225839124965408355920616161114642308939836310522937676406186893602385178098114963161009597216671768915137988797841079395678468425369939961519725044251288236109009470489771262038912742232465556396420000648141478645650329540524368721143276379583610813586116714140579162300618654886860778296005590852979049371641929548720433871006750887440217228520567721715806725408118256942140722901581503403933390495088752164153928590482921490945332119306996275120680761181619944443234041272461744566420166760698532796824500503747899609877565154520591329829411496448591396925744064490494950407566176092500435906623618669072931086660096935879362100917479869990374935223456409759735049836663883910177225750418675378779588981154705797525330413571006026396562982805496751634409474398125361620785237187421632881195793164464508301928473047750089710904891860057456710482366410175410020037294216752198693574517886058455865859519974736511581555884628536864164915517705277250885781402071032391744954018606276884992950929765729036044378292887539168613706121332186407565752272818324163551996526660009217596794747936703303487327478279989423015973417476395925037405787193406792391097151658984920325332596765515925751842726040225558408141980669922548891199498216296016652683504189276826981776917378096103645891227895432055052798434103756187134056230203771343179264051478773423310416977754350325286190719401043369095869868206766739056995971955223914746597107987864969147555561028135995845986356899658265200315839442445542003893988709874943088376517710518213969226432306177120345284111340194319696817042197934085108567169142961694142911132772706294648768490438198930594777545838073233379436397787120976795295105694847653439405641240964936281359010783780112956099060902507821219052041623736956440215695129751651927072875271009971832445245030082041644940597739168499670181832740118379762425567821465867901251355959087895068418861532105088691098936609953919246663148793353349473565359021459213593113619033806860222885391611619816185549482170061308505133037222277276441300560452475389708603868484672134359341134215150048193132744042028998265655863600782039761263410802530488330498050172291688497736373698683876771887037545844006259739984700073924494676473584066984195425508093137009100434883128620181116132068160881911135456568537265423242216035578584943945615910847503192994925919307146008497385660951920867791145945801657260740908575112072325133284337052615405118970896572212556142363744545744302109123530939079700951677565386376831203988149930814404495423454020297134623578324551846383591663660782085844988135556840937769997104699121500532738944913505947500328452906323036323111516404729048313588149900459349217859995256267299845430793697893292493451094362384395757353641944624348653872052865727334037565991022141486125275070950523696327801290650724214860373514955925427466125917518842462232139063982016922336840707914478181540032744837764321794581553617516051906677559893242166777678707229601696713678765296670202449064044438167797478977504791640413446853025441583243429486139033838836530213877327877665244955835521851109010920691957876456067693263866484868268644788715340808896689518924606250146945616637294063387156853461453510684689046114769228832280848221337255211975548022374350833125550828093373384236863930323799507480000500954984616423899543107314140896452865438639319187305459762050813819113441537692586127803802462076693987228399557236408496731464647541466253055139859791442372960186600492185993497335174581516248789003517386110107079689211452103314193229301114710197340600428319013479848427487380689086946681917267471159762572369089110165747298320596131329843589860259218192383420959914045574059566633369049547492175217700763018172869552610317775884278926904043852940460883783790205851777805048258956693710597155944505295267774297200144530942141223803730692146412042632694453286076150789168984407056142147786930047348231371709189691041118730348238979162758923415666179344822454845645273842374539496713506767081006066750463512065882831165439584683477152545266409506021277150316171181629125677121219561866135242692589071579592699626256200277800891771517343367583125217142445653382505052876682708245457199591712579211494835438217320396507084662959035116164499263868292921055620816749160326616415905303953149453649828996672872865169321853345696444650532837181558867446649827178552249197375565604722191884349927796441164900744210111985404047310043065321729218505773957134389923198602639380915555079624262388362579200265601212279147563549361875795985256787305525444726963370068323338949080285007489163750427060811136960410020063847596753071597680547443393975064180702992786984889272230449803974716021928579978400005848124221185693387465945336979236112108929126428197124893464631903055837466707089048853163344742387321688677664723820125186848644779474398340046308615692747184738029137277892302407009643095723033597292998757250673269603826687237514144271663125732454616124847656479400034735681312647341690960067160843352297931408397801552457096308727995072102294215935234243027851949066233308756600203225854764422215546431102075746150178367176945964214718217965715473428921078080367591488778002403939263775015902090352686774060008494241904902852967516953887167260572868034884904291768845159014375640754104856823775236214947746283514130990918908301610083027825929370943920122383570851801245959657009756541461302580723395817965435939863378903136926827253919945997265594894864470484002301706798895269692171729121222134425289046662374285946633103254627361720479766965264925369540238989693826371576106880214211052132383545836662729839526716712374078455241629197834718967396312336009414590513027661270290514059516494429757229240008994109280488056427713429836973778275420683930111630771883846481953721841590306494824384250373438290490367181439595770405704901690094507080978069136348726346890032112468686481548962381822488827289468275321728193405393274555225832371204619478033847334558290072786874281450262473712020962894595065843993887553989702385595042617359344566133745870613233616963075222551162555903719632714092108869944442242387931974491152780821124910016189525300961151562751864898339352229734165149908534581790684390986592446782001860373006713306567237557834006241699133792529113517612162024706021477786041845640744064543240155894831840984715270539235098773230019410754652956350805989624854810870172203435324980347667489168941838057618202762028130737431629440441521384425008742887045442812648309930896985310253417483025346267640466540395505245268152916616359345762431253664772465969305231575698306509538050236648990272839745086931408686664073986213144561430540827463218567931652075657642260571571664982158913218128114248098827426509336937726173779311009105060998374993832065206393206378388342010560527109219008562198016233611232269652153696847392153410300217902481119659571645072034024420503153141555488823136614299056565228000022502559621209722210547575474494832802791894329797319760863015119438025555862419155775909627001925174230590553643070972021009778479150448422923283159300086646968761474325352063499378738922023215552506502850652555126134591135181825233478721853707141342590566555786696975504187977850785197049767725204171408987087794520668027919447141539689173546046154181833479517294552011974972817239207419812129055279018657151999534724248906267937608585699355866648787304758277286608652874526947359682055003330524925191528478693197550023820448870107092375568562230560343465773330166631116688302469683351723885636256576933590946532331998456887990952859053481705368231425234385024889724293961622550950637224301314745067273779671230015911569427528460194554764961967183854586956980208193515317880711944178077812940695262714653485978726518005237863656787032414318908671140378362243834429412314645506867614467646263752529077356870260232165014462442744209649658998269466977546065741888599700401454634704108948365827475000171337031868436902655694049681765684956728980621117825083798309683609966323978255148438473119190472051688483948088705348034709320228302574556502963997738414844920849385269746645720448874036905015003314495523245853698879733591235215416181776706552058862312341545559357364965577985083596967843171142258674222918193771117030176078311036979086554328376920447375871892634654196138836844340844014147274160760334736594696014440477891331568117594078501731649996634383828484181138797890472503876364148975191410072092436748301374494843519372294895633840576266393029087434015092078987310222183675871945265384866351768470300151214962845446091330293031848780358931548087559298570845317552575572680958214562016940675695165987903795554813711375021633938422174144970704288985211442891137184731725182998062453452267200107507115421322642875118382571755277820409395759352760698866582521325436157504824124677433350914102990263681789585850885359503500189142242609960527486478783695444543989930912498845308744235770798480482205825025063811972096500201889396403163946003545374137627595136760158271595654937350309210612391140913341699284519564058807949167899544470961192421200456038702595624046494801341633017374701557914507396918219059113404097833156559612647295123438550178188071661863342462699677047627092577675584781602161591505525443771733816162130177230021639360761953819594183516375762542310852938308059571829481939730534294980740955598218757258222285944730437700532112168962621937845506200841249045705275227435030702142434475104032482024502485790091375760014068836073491592126768763596939953203639826832845246210296624967468775694310455980630902682210829140385822655536882999682921929294848223527717496268719234832811972221450156864436378673100816015365530351519475198398157740473894132599930440891978895443295290953710083538620768287014008573755810825009399460394006640064199929233414359743780848433936922539522569662002009799626752175086713560770428195200073726207388839765175803947903822299392685793207822904750324090900325167612931857773539897808357650203347205358248478269158034775739016857369043392296665452962278257640318940608641465502170407976553929127717185552918387302800369572831928023426096019061884720988987215905529273644046842011699801155640729148309834082427946806226199836089938079230094953019296159981262707329905619800013472148612927677134676177722145910588796498948643684550154409891559954577934300797712790573927945912907875586649508704972465903080287558861087070357218297186639858775341150155454374528694005538456405301054653401039457150540574470737283338398782728544115420786860014105927075726983028107976950095681396764723868360596431550825002827512259790017855961997814075129140900548447381127385134102244268343220403650562651852156051147611866970951105081956522482751405057632620069027209141752456794287850839142127421598639607795768294322808267895256905930539443502774448746950878970314837918879097664256986427565578900598123426958036598226122511166835616191429289039562916248975888588877913895551093247408923037507574189775239470591823003808647493001419851581946310445471588720396000922303089468764500283160336196445763868689689853658102008663506170591990913514354585327410669736410323850386186483056898842324283140620857678044879682464914597131318081324947577192167263257846112512063014232213564527669437177958285722008696650657370944202059300303359907384271812452304147188758966983414470485555591031298474246805808745719792072961545964737623934671910002284690786458636946588099485575833264975859888902679009563114646848579512334242889367315276927079995794693430824950117963372608633617348092372433577209989919890961778969933347852144290297650009284252074548503925922814336180356028520418677304586424418874761329632794900592707596646576817981046859136587056154320869635112595872034904861295649730616530196183083272879775973608918150011964254387993049881825053713741164386800823086172044345908689162424636675682116195776168839843185509556928564861958446487913321077854381000659104505760787504490231415010489606962589832004809414476833903163774425993550961845566876974249400344640558473981859039377609726907805064062773971759902874299360634966859086202338344894419301066671259495945798273597914273821581125160492084042570435211001991638604298211049107990485734775739228892395154018232777192490306334367741921608386880914117861775785184940007099619174320548480744947466409175373184709665573424430560431716518127192078362018877757507090293526252820488402043670765216712329212282503530663605777491708041423327333670232923971730264914326656125989746747538127759028330261542410935764014291146568205390546713735556418862400858501836111968544440014196613146156170791328661192131149463848951918740996588583122559967779427138824908922050719159486969765802205538236849498506850995443268831547161268014366750920295535424781361629354875973905730337195745154751076455414103367240493129222163095878081885326631529286185233284240990427312191027716613443368511137311964241989080632476743130246314566283210067945001519490150192388465212242849529567366353449003927080065853838940309494350406290919098758852242569050685149801949846575636061144204712132146420985415486653629363633257161676022372455634388123133964463975431622872545000110988354265920988558677813110998054123524235690048401842618492420589528341282459671043782561216247971462516719471917032648297378830791181289912870595076036185910705340734432443386394768929461698388398676929528804095761702571450779243105284203766956808240275184587356975741177556671620743811627435071037880577999949465397593580404157657889652161995643212266347771997894548544156426492307109547783594842893082168441685067428471981199919152802280692876830006298713788317769089408922262169020618726443808469238712696971263339486995741793717928519806788248512972315192345909759876252323408067674763604680504620006218719624704077497765681713558307787707547290086514928391840748230632751369172239257003647472372820485963177280910532097242766702011514256003210976290714225773531500923322757956010768637220366199906493873290584733482290060659346513586294781157670139625607399235224191661062230305198553192530983794321031797947920381903312813813852465295258816293704159102933544049414884429843385605959435695435375912873075239913742811905888441841554342951725213179381510981927547301756318258476672323824805710388155944843985422246989044130823820077127536748039790213863954133003682693139461523016254813373202240630683706658889261698160232918324711169766434619273479469913283777595745883820405317853539233024563778802845384463759294308278523599533549148189476119528616273308125921186540973650386503750041144911739251057462724289380690796334440824360271021053211061631726266316013377318268867503971968775401559266802853123454532238844976366846289122666128240424236371760241385220095118899591867816684266440815965320598295427146268156562605774364724705633669009698005976206026151380620627647632370214136434805981861714118223736329603120592300668011311030848931498054245866593554183221129022107601163880863974984563389646775781939964009900750875780969880052315501299268825251188440849846619740686424723824850826984942902107474528600439649319090663748530707847758471315455788595414580303223330140305597361616526269861537667424218225452820826048698080420136765625911513573540382565403082083379511892607994030368167897382026005099634394174098863716922427682810388779050069831005736909378923785483748672999987421299546872610396160866106460675313424437464322290631206743949549738853221322635361201117560765543837792849062126621211796090489441043694546106746066800891451499566935225163333625901298736411186828088751077851467758861699097042556783895343552991626027029958955882995498198408640167002933280366677667101526365091232836857324902780378050558207898757184224155571205903586429554842464848524004740306196903593989651881334793239208112721215027990461127562671477045084508765031657006618129175009603070686331355185548897682966555985827714964764913231101926285936903822132642840763384214321476765866805822203335349598380070708850322083929336266312304132515917948862672165247324252418069797747345274552854545270337721287414876659136496851856442567544119808386130785774166350865921520830723425460663345695796067522545298452248719102392019475242261009314353574456548372504070465662272774890407941321661774163506682723801141038586414689481349874486698185170180061002182132775728710241611682805017850593088845714863041641405306713662224449097816847903394301170266823609225324495756935239348511232657440984143125597207671910484733848962324011659794758419158334995683096373727304520330135675174685299706217908902475476110961068377619284189010261197761611588796956056620475681798994302994379877177979338172688898190903444271673411098036307903474324597985441767818841978407873907088985957390734026813608226189132578855477296401600270670350533177977675536602783501989638721547581711647786518689929048335330900594842509728148772318091825523069388025520559147062833892044655227979505244352418722492515687656680951569096682316655478219482439161556841612291610911606938589943643655055585629595788861355420658031390979615001154369524330254627874169155913248093278596016906748835234899365569874170149365905475596962221647422190153366717230147441279266053733964867452402062661918826578341359984914044661058757552724227792541707747904431691646231379494632642225424775413543971186459815563657695882468983664364028150519042437807518782274972516634506218752775484861437272854308454368989130310773773520211767520056928358341175294078540805793358962303140773559473433997191811558716636873510220740041239994054449335404379539037627317222639716997572659355678944020424759627393071029761965480756857133919105557797574841842244803658987816029417556419081785460352700456499364783916437946974689317346424372252113267219191813148165772401779642341310126589099543570916584794237365475487232888917595758913071078818843100255329259779606869653535763951568458416190072335326664980366506234154438394193992154814808576176372444256100132353792895291225650527716596799850290667324172504538650441292650869311208699295952271500444266595792680262000206200081274288740078217296582726006550474426691294891956431808904031470273476711269092513733516255894746481389494583810685681576531898322941696933913327604692902842450212430220222572813946650406498029287996035587480648438878280974202059096814327017160830245764164727043759291978229662339439024421851091401616708666852458688587406845398607690901842263200852686001422438086150421597585610821238380904261502180448335995494713592809738814279596088847840779718937250884463699280778347009649252434417371772049120206174539772140093015633013783000379639367017764209551521832618668831569814814324778746724128405255735711600104592792671481293691628584553329682976494301962862122986588334660368713866974461618835208195689257502725309528552774197039853764066843243345534523788864962332808884754741355543586876736933507414207158128631083964316703278806665122433857051243547604988577962146121749667552370055357945122535578728484498853996075366707885028956486614350742065813568750522974947211347569371932057372682487146800359092223349280793503838590515748038819663779535032322284458949375380725220867926004147187262828609888730922621368961474489715121439200627905109418410594562645012762169582725304228231936763890954042085840737677635481367039015842798977205207001867242852088095247290453595618090653957442695978737054524742047685916275096242616572274714406310285775474301950427542344927114516727204050895342210826272655381899243679380965169576505547210382229013889211452938576372519840772997419735646057900587652678827125411648780551989286804192374920027600203944973497452989772168827141387487196881989474453934188503127207120657397064069342613997954866816225143698730934314624340122645237410049392544629054207184456724457300915062087158718747352846226943758019478931617155030391661590265149428857088916987459111842542451141103287587215484123428672789093223115052537311814551559531521051073890949757031212712587086497389002992870386945681710103786842089739649971812394940587274000334237165891411639561102216433251568681712970618198571750155769885466155578811309920825789153096327861271469467363153788801795402236350410918959164831177807959952358587682274848362694232761473872020856078740557193687022516289444982358614155453261892351668037719210481211358314823948026794926137547756803008804350114596870047609520920871770077741327498446666304299765740856593875852115226582580679385883649982422217917799522706775171931524873827393449042740928377725982218407570599365744098504755865523012408818865937481311483889209881027614935200778414490775618947091039822560980382277402908900245661638520421233450395809686162607273539513456830184105605198999845374536584587411832039437313065920301457862245125349752317364853221396039610652345993947548867407162169699855382361298246206256336297588965712092405566561998069878756581880948973573129447903258800889665468799965083407777668260105833614641185556831301718912401442963303080926529825598569946713597088743303473465572149919493393595823329537781896706088078137216826770765220575116505443148491030296932469795886671425269597425585762037603194764918900532191464182742143332590302883232334046403501722755135745332614923740079894049661507424866382924582785348393829887010346552353186437484686350691550386665380324054813137043082044302928796035388229391321435357920228137909052512511274808439500488171714859992679306260984200851166499847475320549830192778843156877426661976826225013935941182131138737660801901246723747076534699633933901145805880113093069971161386027212476184582682792606699817802872535333261463554096001847968025047390019969882575656150811659521550636692776350639479232838182780993679378899702989680906819078527601693626379402556457956243268200357623929415380063851934569488162579782735028921939867974391223887867022992116692469134820348062438047943370284449754422270699983035124028809642320786256432802581674993393367350993788056101504572440064948551067060271628489253438832315844932580283988124404436531051210099038432446605607001776243634908929465267746221698056624895171018776386607379846322633408425058156105069186164268166205642002686098307950019431767247812116835477313877115453295259169846474518471644275173477534128014673311678370463254207123592102637182707763912850945918590893988405696300034831848823338630480628213073127189987343739120993738297732391541534345886374904718576068438593137766034987508509551157257783534156558162984041923567145739501644042763030337777443265115122167896255940723794321119555601640067821881843190144993531183783510191596653094721836111696107409355297275784275299494085967130145918573223612158557388692970059338200970105323426013088153959391995200613429335854014599858855853242829770265146053897539030405100663611450009974692719744726136438660598356699592206777489778274734398527379298788501436885561221679367867105325654101975353897973046945735334755418598604033536541339622088809811819877676498073655814166223634869391975323854180548553107064965938212067918160698491333297442869143657938757514913665954991571725502705000752046224905334031536273850688158287820618774561929348834007165813459154160501108949107613894417594896820109613997867198573518312863491337148858991470229470091465715296699631623281857919175024046280837777608005408850259320160410779514212616623737809825826317707010356697495528883490361891729413073095311744993812952562466715785113754995714168538045146159260009678937784843637730238820035595533783811251986254006752466732603462913572679074466279123727041048834848412793128977409077843612077638627001318826648654656685524468154121437872383221421462444712953831703202910064164157152854190059521777846566898638678582098299754894170143982464247230025249142739382605889321223656601749265863432713738931581139349092827367022368930788755146100652671841898536794703385034013617135505076624046044256028201459858806714769650755533555609408091159306361628663590961670103783344038248034785140226862922569685909211655369452797708119888073650601320822557812475379009177695156170530239864628915449314550453499598239769655267085981497720738024326098297900052910104019616631203568604585250018282910742908788237040807314174021343726653806263392835673242654808753118728097058355748697265123157747763464982991367365595586522392727678346580908542185243541771583143173934899498234862831826179928025471050279580667889741695733871561411689738899874841674165710165330927829994178631011802054792162647233441049539140604302067177468471294151065331086491323137053675062852499612653745581677349982394959234341475988201002204628461163004338593318395540178404940021474538229793272348175936255812807762766293687830881742564236101959821829744659325637747996249177430741508929743043394635504858080146290780312179110201633978560191745491390562121593350146919688908134786736715030355181511729098979127322761625661649299481207668142032885461355578887233854558035104175169356762043944825151062656182882352661340907893803654855521403741317172541348633939787767337159963562022472542706888292450500907658501980421160907033224223486429875920048197574667055157725830023348868573674735240540151401699137810972384998318645614728538412036884317199981569478835523114006517542793782254016757626888151409944605639006657411873629857708814676529839143145857563157766376257540290495060367194107516533799079409647109817092649172911312208476083561281631837550373042023806733891881101463770235883700049671395182052305084284846418474665003938212505764002326247283004949020933627061003922692554134694686363561426969094583177216876657789361959725590325263384155916549952335737259197603559211297275483842616069324928450448651187401149583028192543588171769069185710961421289983374770608123068390214530571401831988400557412311904578146133004398222893785665664388095493059214649231804609215228733958179337430642506254436641374867872511453404464840410880499191445750236951745604859349640588372122529711029467391227141997741806867125290975676551630587081859181676962383118606956961604561691173490832093766712491636371024224820067211427987575105245190792940183089490912558789479279723207220248792429869684622888343071489159390486345725527633750401335830905383812460406331060231556179128938650755880666493119102507182654238668121245425315200469562322427941844351167030295181582234570360826885936552526562863417595572870396629900429745839280133905870687918246528158494106440557051690405910413441144035675273137801473937161968621578266454517882654281109631671857285765998756608784869576900171004296683589449539978635994365216877775609430567692034374841403061736153116155266801241494391583403855310244298009027858775228042827953666850822714139718036767320428999956980821687637607466365651510717882246380944276314278225537445889965661437026930803278321809471954687441266912077861865338652841672060145520765213212181516654249687740758512102807792524442365896381238490994673924055705843852259670450142569850895104706497348890024750043672123578268505014236724876867740551597238598389324306696613366422788205793313047532068345622165502401480900171032505249445104228738013924690721042476513821177149740247779024414835368708828856167869605261402544397621175447140816206405013062726615794862453984745286716504120394800091688311313347679097357932454306813610453935410001908142324584426951114730909287606724684471223120216933620890368121727895087659792564448477132255139311949553753182277771175122600846222646062519286368014193905828784264373806806247938651684696745347344589019390970726217260927109540391033330063557036320071058976651892529008561134754978222643107086253008958062011512317107510984786548171393668452660938186717841628269956150974770897839432073550320809087350729362864748118856350153506477586049610472230854103124867103555980451044274796523155240132523178885710684364757715067268651857118454614591466545469151928964258476928877884043578682480037089002932459048654648293245067464359842647189663457173592561188833716590496368137540423539491741755789573469755869516996239586232319252754294040400781717735806595989535964341621077766491389420530541883458570735115380593608938136501059914020205467004475392610512436590856100539582514016563028301678403870387089623848469003938655941157260665270837642653379511329227729675711662477425680723887024127036512676582907903560302410852540111421720027467538606375550738663691585039433299568403603710684638918146602766929132185262455427695718062626967065768956289425073860834484244589921678310334746101915177073719470132599671737189750896311822553543947935505965303011971536847875771310027420653611935565174299482764530618970802269984988648613637455364758733947028904766218132303148838015004788095863209981774816852816533405283570353768867149339407861192253201840576191815888934636453844397055439204891232220885830844717065835066271142102578299533520758136843220051960885794105727192374127154211081873418459022594538709602638013285645013274939330909302197824328632839656391242455017543825627550476884666101986532459328852951956573293246893462083082250325312247437351488891742254034697270497051577737209246956555401608909733626165074276366651906506761143070672397646332192804976063640909986304276172944304806662512840093874322921132738138875907665200245397535286060289570416430645045060088830738291437359405322364689040421640650993281921109930887224902451848538075026513588266874576713463569608929803174945771941995411617293637122111466791569100320150869736971641413551042730842252795818620991158918582413470426157441735384086064012340742331714267181540863557442880252807466208572608323081686150092333841852009394883450721168545230254034524010625894260365354033828724643649969123922672060537311715227670506062941796864624452202801901703541699984058535517038711956093249808351447261429050385830183956434225064580110820011241798026159492508762211066309349365735779811767993529625003997815644134484884891868101456770988965134952848215489170550395334526181682139692289055202291982083297722141137285123254263602987964897810586132063229078294674808637965884762966952985071426756900887651723079427204280004450391528028502437873024327518775839496136222941577707977037510539076242578447616687744325353037119171937317374259592662076044832778223026972523561850812668465212758670857303301828339705254264089133881101021730324873725537667128294384344429829044505935977234172311762152652346016038692020293485324340347223853793477334729134498387324423028765940275455186502369663818236956078043065996405854914969389901173092027956638234066295053725024636951047707266205872194976442620923397212141954903385332814246358854782516563596193805527853413730709251565218713924646787272624073763318901909866407009729258930357994936022953522619439576985016566561788073720675131172082956561789930494169730231485462191253415831500506340644623905122618320306002355994216763892648727971099082657628492265598400040323862334561613508800991405708127743927715442989803683969621799188225707161602698616483192276707870520112586150868859732541699566633226933519282181483649250658511983375208077601274847327533438840011645490122056193694474123101803431140958190890244629664847267514664869284977430667544584150400115296623055941139218565481572435413779373764136076981394340595777999883903265909994623082696579380037058262014623664835316293562655536145156013299516373370076843732193088746520834670668632904233026958555526788476869675039213341248176191846876165823393521361642299560029076317541754578814512652112935249609923872218205377108066759986517964334655417152551832805274196269075057678519103067722795262173716217897097172369461039736367765557818606084755098832750620894195073669787251050378279052913384221164375841771228963562884650146796312403551312537982224593771619412366738729529767317560827780438276481576958902806944062320724801830810428511101618891141093030412852428147974970570571808513742937680750940078454927911651563002337572512379168670405633222696989459653511189060984069657391856448565268052823050789842665402909760944044109241048644621859685778205112551632715614995485718831501712835382309544060215654955079947665103463985685014815570024357934291951449035910592254916394781128320917393359022522322648331536819974476614182266723430793190223080333396046717616014541889786600742685278592404926454746939730313149506021215023129157542759003299991086712993797739283342857590462324994406550277150976100240216187813489705004916861225784585140556738053514278602902605191149475362607617345802064164843852748857667146117101585123612084460397596958618398567554425482813428181668188989944070537264164083602503773476258218260028258470943919248346681366536861327065196336473741762583603564715723267948537097026005108957390264252142963681291515916290932723358065879403229993547506737448254360680022846386593980768400108720603499868781692663942827401342975953152264347326737535133523607511767557031014953889208860886035016830211862646015821266396433168700850807165562383466874804206587831066046201254955468850801003500938250821037300794778231155202560104801006170182659330072909767528592611964629390966480699950252192872259585089613942350644238228415937550596914773857380041064479065641329353952122120807454923388996516764446952335400679701449542161722689506649981107070489413646922792798371542120560275134725792478836346612073709754209654795938277802386087285668106498728551741543318143337382537213007688583762503553509580078245199715926061466896365913723000307887438049392452332980594688255148130274493966898020723192823266203075045284552266214503047680743876904976704673030270724184006467541390885458551548575522937570991138301662715850496924887586340813829831428715635153561388888167785498000830346373708101384704591827024572835404189586328421882717741405756141458829684905425958784351563995015586249494573860327731363040344127985039658307571295894428235342768626920859270288180589085873513655772264588559125440105151272751049910858288173756798217301135551672345416742939517716277425763835263251355084704541916653812934697475089709409740637651533404601433073916772541871511018249699596303281943430873756471830396296794993579440692298098721937993830785841354577864376427841181808661495724700072069326275072589925338686363612469297185593023946637710666214995359889773623223103450250118098561803432240031257643002081565230364580028603852821777395147319477043411528264384843481751119367930232207142599999831857122941085527447028496882948332504412896989961842207346001827919682277490258030674048757956369418017869687015562454586652766151827160962344633235468707805459332195990607561744553270970309461329183369089418120948302972000845552005520893270812854471357024265844073149980491067202753993852838072604374750473170722829254732089072569942892768786906731291676277655070122067913673128047373128702100522070220405302826690587294440945048432567323401589378274346692146186389162127346454028084680867772855160039574859183818330715790546438399926266030846378465232496454035375315086150056419775869089144313544981704526878212324996736435471522209606628609963640343397397771251041824966788274450952318191392387834206224709544222569198912966880763300038117968030783580825209113351563561710418418023881780060230889372609143569883658634861578817911657685269061186445600688140503319510624730321389682890114635116303260825539423728824959264542806008278251198878157467811787908031354041309626359370271176423245234377751538961055695657632101612202633033944717734308623864236837666747572777543012048924051178976651216984507817384917389774898124750059141368444845934155934075582035644266589751515098594217319042023812116314281651800053340238851188599943812676511505954905186392121002914746394812204311070245707340087570081492860126797551700506802798596357398684758046778706297223407451147199483681861596221311922308527797619277095161337493022845328432962563497667195394579323078132245405883930432866913366834413347596089153035136976502087166732117017117525764644381005844916000976864758870571198631953830924189515190687658816013435246660326943664050986933491211055508559328937991106166619022459936880853032899190368247823825934688540956852846722652826281448447458156076636493907937720499881225851132304879269784024271108198259156848842918749014600250001481206105165374156807622629745749348136921723016352805190408355549142697089117283633399280532103795539703235832415549512497536256295667743437777317463345813183190725530730017779493276966840632084514994540354667529117432509939012700959667593586174541793395100187074584302883008222394925892303251125949996262032298275645254347761933236160280413515290764574941093400766914324436147238059860145292397068399938087869034640624408826772618954819842690043070957713351603048139518235500825120002630866343815648001074119548512668077985057824390867532912587336565731224034554390682229402784368033452143474097529195575350142937571994684791516155372017867221381334804925106776852450091148364462921216569810008980451423646113539892416723812482338004667259475339114440634689414989050958104931244523086402800211275893280928210246350142932931632481901721725441232870574317211376119480166428719603047716536513297749301057768720775371741869958741224810217011962607294377897307859200660851728236129577304843522752757892513590144738458229366902296485653467950699149857921018680748356720153258556366354919433955026705412229509402389657499182089639988926462089739718482659822870201002740975881183582669832209317465067668905044376002330243587616639800491385105135520886614700837352989276892217841413666904916534801897842171321751644825492884893458392815921392986696765999239730022776491917898217548207604536594622521654071979669311524600168381561400188051024198448203772360763480875589282738383220802627162223067300008672229471569906693546821264395522416827655513756082635092125085441555151402972423636968139984698085801534979545711310402557380164428091715428836467435555721787598502737499734515929094128407407907557443985749095537774419754891128805879101798344881226297253201320757239432774120858110547819989198823476360507247999244993563430208306906165777858914900677597342162595195587229626461254951939283575849963660198577256105486780438375378964699616418533820328273512626090187095792091604274021891526921413923237185524359720067183973137541719452114805738024438010357728168665915575555825959375496944484179980237735870494996104433259017263932801855790387142921434049179823956091801376690269348783952587012346037773093730418152469885066851380881258707929512996413891287230825880435037952584552808140662138545552122341168497354116007082352240544681212083163008702853164750964568793912795105066432872613708393756476551512589912390534078398083284538828539407928426992312937829654984151337953032862710232915826629389762637637253496153874415131472148930736475934630599019369560885557401741129035901584409748625135570060174931085045759173952741886384286578586489806557703830628359597517315969822239100095529849485880623167485877842038915387197937286095952345631692935813619013207538451648919693641571913861310879625305924390017861259907021317898470131441473689636356673454672034084405778342477781721283814156823678007642808849429369138687282817340744897513516040946955470231193660591422222672820274178601106272907083130577985409897202201280130561523642312979896650350984968123615465408589928170877219059895907572699985587917905509422377685607622077454711197663163651684144512786841822475538408948904504217496966938499044266511768250518571682507072573258194194629638578858050942926153487917596214953557330921698681903735373467136335397759700262264462218545722565019561607928427217442603828016005344999778788384777002998048871074367499555593781441928446461842010389591763013147216068809688111777120815126233600605738367086554051294648403244187740087574580768392974453571148781013615305209719712283013529932263952226759480010299296784400287641398512052208313342158544047803655960366687034132976277832914420509396165426345472557988957211284759321561612343407259179275972935149007690612247105213614767685041158265635159644135243267859357803098426510044446736908671510334091324287806145884398104962432247539645488903579919063037896883335550002848699606229422365799823944524705309764769385218254419604239112671320076032778567707376148916680656906344414816726758673301064295696594382765210437871448715079939875738983802599332103888928646843358505150767743051739714787287588975469117352891276394948048868965262309181830383125416733500189046057359585831524925276919069244464205427900341827152687765843282179435995071984827673511564855228589506983961684115337521037728035010369780168550492935374936985025784638906993166347785791938555522904313573306994305617741888056290067064599616275044688273217961656244123228868613383167497658150426348053658613282379532939548775798935670237685156392982543460607139797818834060263270839116531011179213184834271238519101682207949018588203559190259862593677744870144817850870937476074791699221373392528440896181783001579836517109178893859588844764151095665447697918170036422899580698357803322039658681188630552992593643935179785259320773929948266473464803107183774893486161686669326890512856219859914417573729199386644921917184063539714659424588956405271449518405779804897663042344784537678336371235990028072120683305666310917315996686120616203654678966562352241108005823430381938303059627606264186389280576962161535678743848998837101145035328220215282804835915241207943444739629511823680948971931882318834472688672755726122360411184118798189502056094714570030993182171766174118860094490803885335932615564058297355781296117438947064593239570535393330622830034456468298302558024306154391062179844820908711371642461733635855835627167381528017618639967268110664969499756132018211946806507110153526782684762341280470298696192207579956512711558314919935456978646471347362670684715025365395548980326931423370164362592203761754632844905489522948661927157614087043013011456495708356279430060549994607304244422498043261071228766935490419762706984740083295723070439305305806050589184199965044857131570050334993482082098120466566115722544491801223296235616788420099489334384171006173810061023923513360803612571861671469209947016500409590537079262172123633144268356610861479099026442293515516708774204553503561340375381348155558796531034287315348947534754956009272257798480658186196989281454931258263967840894238333350686147192168940424769172076104126163014613642427316068642238368452526684090215310019481644674449528153511528978661064918641958910550197030172042938159381116621557405590416853178241536626069129183344706727654687713128100393723327035568229539316293697546394996122379018169279506685680123123984996915090117853455938849812440911008531129632806954187593933569597538385189593558336919307899528924268378932179420981254447605634111835655417014216562603894838161780469040349126447171981910334216043696955188394852855404218290515331925544496273162330285504295644667196558896320210111770450771459807077626434886788242522628836015083085504277666297406719370955212722884868576562627364885788620235523866758610628500495379957376411691411202771496121385441502631969223056042917108985025379136153432195105556563852928761214425510659066494282579000650891752365847829315308654440892575364961125871057831372274243822704601116400234403686883808701586721060180106231440858271350494354673260438364165934683899179297761090640635287317595849674852963436187505840698637025950305801143599898094546846186579261033549663569070472263552149298171357743008833161381230041115566273819865057106960056170847613060114440971003360062384167487552318605126644938485767814444648269208426306689902873639736900686859879827009172648501556425030260529323730337386965613996592149252407236737078668452566246806327058268038893087738168746351629735275826585414140155314878858071783087441317328923545111524208756901247587327787289476790158759199886891034832937490579255886610636624212471442327598090367781696319046286940693050873375135257058173222548864022025042153900529598682342136659153133712328020572052591794606871233458232594821852913941782945106497095210075237209388282778518241172683253573278286589084709345128274890252162443565251659532383031763401690865411602312832465960095290020710095462351830721923135039418563298500686823059777606713437640909027419246350258616475354131821824972180895280330016099056991994276393350109068169517548606899699618276985035884323191749120049005944304724519114904208525973349630772761494130209209859146525351494205818513271746628352683824980634984715285286826302397222761928728298990734669830118536329387290249694573466216869907091840400471709529483968255671314165694845307714903128688232675653442721959816965534099772021740435349057228445790114200733992175153068897220245106248129877244277169639932734995040452680282670150888821987918125458165783170441053226852654281619900782348746922029122172206588210733128476752788697480778801324007004773290396408131060975146509346564903869691970329285510404535733697045907680062372231355275817143696211901546995208790759593605467485460348870475871850368130669240243697099660995718544386125096140459881719936206431191201204532302685614532790287545108708396203224364878557538974897070944676887005641303126137741455385956041704962966790665637374710526866923054080966477117450779807118766508036571922624696399728205955256349022106953266545985706282397416248666540149934225354596188447938566466200619255861996946497698761783686886125817913355356331302808111169519178610197840924047234318778764226103718588206031496458771845199104056673740507615955422858866981971652402504705678594070740859739578341430485858793734043789218825995511182871859373768657019936975404841631919279095775425499730214713087256718968499897758986586952348475846417632234835464468652009578680213520179606528273643080936462448580918405236680816585309298410455573127504364539711688379297671432087139527824286623407024852171323444835605883603071656062928331879387339019395442120204028266134525382914632894509255480460190899772322409509179190840392659245866777000231805352181837758915036671301652012563889172058194563227495747935317977475606011620898870446996243883611282716075698018683952409464084032298368275728533671562439672537538267740084235414629381122012427893110389407321355225347954620709995638696391296851285736399564211166483999988681545021238514382322993386990042837309934119865657678578899922765131806072911086410700475295713861953524397474691162234942293127912336414477374285497062644277188416091502614031919706277871976723161892536187203922932528456806102752792028754239670826233531685511048425894861542824294700789386106288479211415203662244198417587318337365951212408138017766321431555090403252412586017417021935847360558780600675990618768306092716390926501174534714729282528741682407137278018252053483283827115626252206768688509511992741701602599474691165110531545725194740556699102525198183163428634522834762866277850943446913950230331097260901595613908998007036347496578806062402098469821054715077444217305809945759995902609936894286688467160392573828659685859968369330409322591623783180944385131437971230454530890683608408770953203352778132735445254953463319465988374500209123311637586693103515741431608013133557650211407913269679830144389369238542483968412241910515305870684555451235226776550913977709427894456413213559138035001986942248261304538809875926603537251821181753073465728908738029655826810551261363364330070724915997765487986772631863667856994235249077824682862505244572465958765242817477565410735115226271633051660859211183140342628129407755551419403452820569890124005888249136938713388406786212703875611973473202459235582439746745392399473421625212609621105066006027692713698608451644275413957314439645523916029745689393627703188553401644108272980830703176970518165446570321952601862530961741932151896127496860006752718815577402818731832943883447896002804167093112895188028373839881768637753961367751494526504756621876648124849762041078187787040552555970212129692835883508364871055359884229167972806386519477311205511593476848081301126226968184774783853968130895960806594584338150779181665010825224247914560849186736960339411387250195312915032172848125793528841279064228391919970786458441379907798577111750875086066037415338158813401052604703972175772844381138435648463024040624271019873430842280449754913063473924206608576705372320640901993567462236358388303554949843442106446854205925639893406881263422772361395027363734609690304895080011756636794330764314093687786686742331648488370623646642774428208190833617210902364138647687066512065510494853499091098244446281714141477718079342937070746932742315427464671746942420914971778113538690413430606651234012756630686376038588060184134341089899311221579130207690172574288132269408200646932835183479155463706423106778568403646207871188850951818565307459748253307697038405540354087599884840228259736141827032670121107040717656059996000980034746145725907373825314462889632907040668593292820400481093759078998422261035188948938990050425336127193394546053166392944422678546452579308706628473902846441841950547315419040052218677933434058451732184452438772915841519826646134821065347059438493483656830959890128874182234709796921263515814692959100560635795557135449812079826386084329823658495406167414803477027794719854244802947502995641959508625623930917953011759672182150389051961233107810354187539229139662323990329047268239828799136436853832508369912586795154053919513095470260559276207128811190777548455479545032427882400023097616009009326865107884620396487988648494900790382423002632105599683428308570613458606305015579780051515138906767750866132646950773826200429414645041928733889059651850116345378806306268169289921109686269129191444972155166373844542965408929303184801202960431397817789876721355614174386256430853524032568460103292479352097175455578452078473135884821191560926568489037920690618186639216121124032375556242994377409966193801397014402461512896513146980850557866210952643328120417612472201200970368323818454298186516879374124308654304852687726177261837774774771097274993351842855025234765434321391828775878052190817537437752036840264913398267354306930070101600865127691896974825513798521090887438196259076833764478702644822185450821090857067033319196207471294799873216694014255244849034032363789357025146723581509493371836490709783586187765067688841264905842011467411085543832601656631094946252131741794300490397639557170626196403332148075033382995388037813433464758732509347584944839409045948919330078766710253888799207547384139816354882464470516137991284257381167971329691997861658978513516560881784533694680891246829435049505275013419905034773732309481785756910616516142338503220933647527126533256889914659346821874052727567722107968818833295486356650354632460893097529706517774737301324351825451766397620185619690581073743200304944813519121173690874897795380896281415387236078666221608420535863089334232478280826124164905355002355821020357171201583954004182866574620857724361442846891913739324433823915586479395570716033827443359236246606582280495072785705594581770755575401148693524288788593481161110919437390687364656228767619068046805823419115172140834227767659836112137558788955324155209195668227247034959481894812796647018294810873701442700093028771781694122601176475317083638106637730496045137396392243488205871485361907276369550572137384700327499329569137639782746080997492150103899659695667772509384367427541545692190594055498709651315245772016760745811250409546248229473249550344115523606099956438464872842482219467939391758918555534383540643100017078962010933356886834610524601034783358451321533117713068068406233427194304117940673650444108758106748194009231366104308927156364578563224072488838637370927296286202422554314904713594899159809389077163864109665993391010035998197086148413760978357058777972221607125189438615463982545764452233963869166417846937034784706085271613276566504215410915730905237893516467926962411303805800948438197947573955986789256281001331906767241018228777288338552276333816016397751899404460025819255645078752854560370743946302429216269206752170845212168475522558959810759277378791805469048666301852089689343015939771972907696403046127868723722273316901419416381011998802700937086431826735510335569825636680329285307914417776740130235295863970555089135397921481163141238033697258014832784679875172563322980928904190336362578685972540501694629664912916312386012227293524849428134757207318870347459330269452888946928853022141115938423840771979927897317892591782341554591010298936480619922076474052658766507158827480130321417433134562325857498825937595628394332570660266038822288199677392741703526534809389783831732209623201001629347823569084984718127406956584659978529415540286822248125091859564316840920129678457883638666616425478441795941849201317572317183552895147949166535880367017852556337787909564123870327618885976727150264993364856590992772123073401085348474832480361810405550428343806111834738453487330390576370558545533319807072060428589984969739003467416903873341830829879022438112251360641764431456620899942536329319884430884234454039502031656531704551842318315897774318367004117868544395071343245265679098685465281555818095246370269563865216630939915994567012862937443309443558507890243469269702792981546730116894635133118711901666066975121594294409999160972975032946789018672191606612668002806150968081796434232611255914945152187295734113477309375099061121374465876682223728393590772840574571321746784939861721885230388215812906241458139944392947826836253180836181718385130511877472368828842572951585304902591039470178549626106995945422905096795245735822549403638106055474914209581759878653479101532900447086104527587246837361788279941566494132624964397208580098592430656640314141539225188854641583905012083950549479131206746511203279744414737295254692048940902133063909835377104664681576402794103829766800719481070497294835528470027581058390809859893284952894926307616977080494732825682164497366741492097203233083370827214196686247686222592796588349175545393982130202750283183149756054257621831126076737498757528624863745441498223489604859302516510681428947482080877247393811098370977843499374572184605627180491363642384051184404341607168770703195445515247795242710391063108229247446136016558470252790555373538215322476705803505066531537183982079716815290221894303415127175196882431109031470460254160692029584658842149933851707157293333264255286890143006579521565537314335288237473860115096983891911717159301624644097256815778152937005380085948858927659228286069750552025804012192579374684973166762468800446442646813027524248664868397418327854053389458909096830327568211858581725410114086240597778124118699212832694392706172064172091085985319063745198142807475308848812063306560993016292149650151646788773417313882372501236244517350249761761004779869760081461445620106250675985173198670703927008001983033104740010768490431691515053419680252060093948578023275477347735955797652385726326124163735350773922026866041034494836933873930367337577441992551932431295900089119052087208948583205091131671025197922677293607752915917052305132640414504877562770243519748876820899345496235033262262792886078448666101008961802049330002706365586102988882965968922609727560898877797098928432405456000729085514877858879438638133304092011740607401043654501876651995962126616876380979778877009013698720197356397653756326253475207299999902195816719778083070073764555074101585527339196457401498746319724947659747500683704654321663753817914907423481554904888589433140850815471632023287440090845329125952801847538095956072318584299536781728071106639719243212192131196279815450632145796849745593755584238227879450540124356308514852688046668715749423889126200051534676952938713017205907668061005602918703603380946216427428827495766012961263857835836058239183615342794812242703314879742665756173916426761268374649357206553426330073185240084103531891829396426409752494641910675115382957315795822241410457832328162002149086331685279395139379018051489724620627349657882113276562503279954334103872763779344857063084260127136136838329614672685456892832971592521183825148478598329064089981206565859262695652741323936845023307374690162791041050612711152835610695512457516525585703598272467144797190933530887110206161068056680337346154602558602959261743704373564344660017317338216672333505167043412979164371040031745560466329902254384259043080937253032794625398632684331787711180499729239634139649276329546175049556049708582781261259016641484278512975983227153119629779179953346541667280384425621478739733386546597113923591787792687319640306374965943542248095962539392748536550929894794919525361450847402446220249776435960908763296823822769212097714812201243756093116717498075340298316592565882293741446635027274516502819616802673384486384542575457585103315223584879538302986662849441771109453636811006015608045844921459432156613024890992967839799984029360493645745299846677153779972439816876590216870310548831684025091061370315356287599054084346993678218993012069946488084115624178840665237589303548433787337948574955389080520730160360686242084383797749538133708303351147327842094213108389501023472164818349725154803501101265318501902119884812272825981086676035568620693433517873893358898622093018898546873381065333855063805712960007496169743465603512354730567043537229860404317486884490513302305637763462443612057825573626738128573846910477964251083473583219018359513343813189311431030980576006165104428727213191449198360675434794014230241500395332159663631560804934419053926056951391027810368509195157953784245069310362133403595935022489506430710181113948042234484685443783386873860766747750715513886972599019197335564971027178982933199463551763150083416278550125480011309103926901357189352489525990386246332736286342198182068414929353264791857897233353916554352051006886122172108336291268542004151104702707466498959724465190205608169064545810473340057908785191446905082661123767700750504384438138967220396943065800441290555315489115336916361923530549139659753392215039568524090254942940115314948600022023065065502547498333104300803499517330728959872919578326691721235717554802705985820399686677837716274070157411492422533463313741316248113241911007580988347535347888032942946016155767265719779874964167858806502372923373103990451761555255940539875926510264496459342844458880539560657268404593032666650686860190827301259193118253071237744331409652539555252855423723679966974512357747621505194361101752770586630344112003824389016263007425478517348360647852114777872635965916218754116521120689168933702573118747565617100405599647226487243315380157937507694520879413569633505319738406033199718179824800564513528606394601438681099905059225741235281120412782845757247947243653753528548067192483577465380816927957504539964301346295873282424754935909796895747452242969874330356952891163210286035332701200873563755222983714548928740985122651922386539778242456464772575485039549439090452920582722683844695979659013152849866854828806993160139662571362918694669793977193882031728912529133013245686750726728705436011326855282986943935122753538227764516067679296762779121104749543579996888549286085377213317619693936554949789853775992700641670944528276226205345506532253559886845336787167256525292153652640610846864103566901837590310202570106758024042804109222238747745385994695573410325963114812451072285538788922347439934919483964271162872184695905622359138608367219267469632812818107955073800368204474241855353988481691068980667264275714461312613846609880447797134980179405916534573514000942530497570088206844226353857353992926305883238543969624476882356371787849915755727668818229819588944581567125463298461525494589362880069195176324360693417371199131493433627137807441500457906389650176617623901081923447840050136652687499367927170236416140669810798600506388985305207765864323895769229707515425586987994019900037129580928957379231423773244133131719438088499587037729809996435063501864419342361823190541611722495617031255042158554651672707033161039245848202768524956129442040078567075571939437980119406408506912316211753320305562086263565305679156865057628318193772859258224021477442356181616783734018273396962270974479159366939818410972873317809822027313907207602725479951765112959230716962943601237621705115791077696293503139815645739929651807989986742097947624451339074010763220425760655722181620647563335063850064706337161398392249992687749972266592430147245945485096484059988758963734137633611381562650638729721336237198046600576938339203445901171060761815168122883904393920532326997676826086634527776249662304513662093796311228767785025265503740411572875569933291885462639818679715075209435596383876611723077619636029021613962509847315047929171202428886104411448973445870942385031308204591703193677556319956733202900827950745773123551660196644679699491340221089610537471909817344142850847549342539448480665263562709269392227131834426275516368763790814580078305598092073270863266371240327247336668369061935199882780111225457985438372791880993478971843255583946674841447980300116544570803362283705330000991699125409680602260725581374704936565931248290874928492811663739745486398220850695461683192244432928693266064219694156775679628591353110086930296176833782723476037196232129483428846237312992470886381212131862892879867755613685886935718898662428875962975866527428496573455312218226559515020009116316883879658840121437206852669384900913141919235263269957377220028166653020477438383128497805554689492298189610287604453699593661485616580033057907076458571902220043844049895327056772281707307805800410365113085389235076541086201400475271684551404390557254159897607789947268680034398062323100917578340242336724815623004648119573260660975239331379498924629475275684839651218050077123837333001887361850769004860418224660473432949705999065282547990121518938934056306741273137361108133126048566844348032198863430635930125087893750294839645507545272473001121573273577924568659350073961651719773672442801789813170661677902185540395914826125967802890868139661305812248525176459270445208852759945061398499601217022425137694521304961462960096470848546373968028388817345473570259258748127353428242651201815774293539369186616719589980672596969729348244576157249359987043103833283787138645539830710168265635748301878339620733179154780346526361831837505588061969832492238024894387662314916258013734082677862858263625293925075712548338830773519868560685505784013822881783170456669129098982363187487403057363552888333934286768530304479627566255905377568967937108273434583421661852102107665940709901820653793601366408723369524801988122239883265270099785258893693315104901595480876404856440050527000150235541844837062148105555953034796910456785531177276319098301284490169278935951776442538029537129109675815589298437531581844396770566694306598212609344068368574461966050883895739427580184953794637020254165449219053885269198108242163495898754363936397793790691677480611566532264373779222702357441759064550089762120575596273641889189789106746855191914354198858337505005574462276897379690287026602905191814708250657509295467738088598140912505251268933279402251396982487499579349592053389136247941587756900341010080862365097470534452502853668501974517243867684858210008643224086459307674896276317982927873739142240644299055650783176165371193860585773372584889632319944794628800657523896353476313719541071032284180591326412120290035979298390110346188490413633857516304155855677725631537991014733459880676236266358234710647547521553983907280010919226384387569113031352317949678872442432231993215095741038658450942571812150910178248391277670463433121936594271954573160397502360380518256225496658176785603121145384973721687025784901776429691977365102508030363200434747722416055193416523319447952593943156009978645219536776119102221185595144179704723794382066016130678669218680077183134058163586727197826112124181681280584221635376211781329074377852014225157415922261521165759477376954502530107720321671386692814355441430821569777672211374166680920405393782529429040294266746580970557669441634650690856909625494419629622682187459815824078122832286925981870551440754807746889852653357277694034035222120835699634666355976514054578042765523777036051199974108305201327436993633021204091054334964973990132011647602386987273353556449020519157724643692532191397156981390255974250643073441869362934010211365817597801642911918385497496102707056782377790973438063286916361825005082515501570278308365846247245315881167601075894228448390087477324802396549886743316558718284555877953086314814334346648134071134016193613809052448963550434891827627406426641307328764480061342643132310430277740400066884403791260634888549444438693328674591774218836017372162997328961614189347374990065562346187164412122903701953624134457897630823300259931722109543884146383282135115676172745810245651362186403507229978757968955561119837008222443094764056277351447977033074763164749445012712271358484300006669931379489525190568984773202141492069331430622559890400680629644338313114121499042324012431930953187656195149499425530269077219629309491146330214634376036533223330773770889691868970201523020382135213002305248663159953867818667424500732502638444930919505023991804574665206496989819686344982071700625204380969508480284779435198775668552135617392088197945017379604883003491664953566137384491580137775022561839591920999318630895227416910336563803424499588336500122396660644998725564587362806307321710352462787642121346528275536640052495912772005754157438149863636023037324595110155675167204321817904763684691641833760755095503554196345398798004893454964046437329199593705757094732097399595593044796745482185115723583092524606973444221476659731867521564886572127963446505418993972458093057993622294575565910469247872950849289068206185929746962137710097459367772235029179427105591521560955449892056188236671744750617013739562562602979765452421786043000545787859071027727345218502633418033842252073448262177547850686580611462047538547095969730682454019559797690103914042299166365300185061685133851998796401156572123237993647009956886446405943612999011198893967182953763913852215117894747135486821203889564165584909139292459558703023111752363030771072041783701002677776059654333621105537451495826590286267958585903980531693067626987715128321657914695441178619666708611192335834600657812578220053452950522330268109282452626344923351425821877321362166676779316729426216834209576095342646192885489018045299528251176722896812147173652800743993521198850356223566660327863182633838905635202583563136506809319792998302061881767606843641289846491548637184821552986495028748220538380775737817848241743103218214832397204470590351098149890694521485136019022853192354383016033679805019380242921603962915279102782043745463020366056430803316908768085159348991077895935112909838044675257140450247925584894397536353340968368543075942847849041092760812385595050950652243384079437261208922955899601320619588504380301708923045182179894574513380674888224629226927575063811450761865876749001670474024327441993773818273295188977577281142167282011235414742492676298368797989662000365499721278652955896575791850983556505955238673392636625198491868102803708492790933846300672778281944039983827729767116650576893678386510181933783495407049761233713617457152225990708372684165525608860167681016911652059179420300579770167712428846816376449026945173072905316085307507530942704884259565524561404265385747180600769205581692816264148317634153769933870365630188199698763896392168406454248689447375323600072707612527508577105964429879580037438067836554199339061003038190568714376913478087044782265117328719518052751240618092017231191492762419009998951738581404735984678490448814544596185879998461811268324589202349977782863787465393095103321167011068429513820257932520207045573400614844575623186723734038113647742034196687966112454127249352960399176388887049534700550728500898534618325302391836864404743967758474387428215112841937392040230095574571280200783441759768392543806755207471782150387711490378542255984486932510929858133744395730247132004635298221695456162264475899027022534007788528049903394272594343361997307724519238325516976643598688617673998049071536652388360596607399508029237392705765981457782140730997158997684299888023566654679222250311495882438730410126355440943941154050693119112839253276290724326411189068855065157971305555073005158430500282852326298433699532309338326172968577520693262935236738264489318401483359879108925543765510836679287099466972549516737588347741150185152944067141743055824779096976996460487629641320693189324851846548967507715075449704740745150214620390033373424022973742616694060641342756663164243373808169379192754530944952405139266569559402976157922974652031642428549287988657975481571881314683267856828653664501968651007859979443029134650024072581681902731965496863052327667657225320027126836583650316389705987159935847363481364817896716512266034802677046437186074122815746663115323909321328247494839408742115052343382835468693908245944905906097451745307344574963457356388749292854628163324019677324431504870108795537266724663520784405401603173430250100074633602380660689279863623197346867073499287773086606819237678522709987062671035404957788663859274242852322544951801958802777661861609865631393245530481203853524677113602458052634906217828923818135039127963816550330272000783460589774905242079203931474077722498835153906469369381194008179275468501833387893816485350971566381416666161806924314655412318961726317914014860415089486046419629485001602571382083966236071393219475055616599409925107517449859466136652685284683372767736957984189501160587079618124508925343923584434023966830493892881393211675929222318547414279292495407876844682386434560195301860732630729872957790256938978252613865108534897796523390078376011733621771072507426740766633178673353719114148799745408686607464721458895177348328773066179265306230897578777223049813826315473004241677847876704460682646319918351944259677128040910317213542764499133953159422765694407872402484986327497984115695354866685592202106861837128795844044148586899812328872729659553712446343060105723827464189761518154303855646073476100367379315913433831250565736864384353588948738763647910337665627638099502152346534630431735520887899638636372945202704965906766760493564141875370140965739846950123614111613264666189450765695034995746202117781234818861081357625901866922223030080484618516653255574993553603867709670354243172117728497797630488350534163532029688961220836931779691294480208272045795012716320098539320325762893651969405200741545039337087263294620006107155906159968335255815874296368335005606354263676242222268875350428729560525605068128984785109097494639410809407894055763607002833578100783718235277842845269423392528920979127557560233705247996672526821426381332491976973880889474820612124657605205613081627574198400614988413096960384067381648038214178077588856825836425280193968547907175045433506430793153131320171403531907370109203671651500891271294668534765312036919633442767950553303506078682387100034226556058682508659397797856141469031688358704129755795356233972588902245528033820298950629146479984106081642512688753935898516531314525879444343481751691628428003333097640133812440116469616092339470565517241881194389956602951262214135057382688874572427540153005889985226844351380141789472506740231115650127438132420163376469549409496965443771163327216103262705041582699553860734078765453787626512338597000636785026113053621365529881011607835185000316250407575876107377208151944687046802323116549893270706953604690746216443011161476852002328463637072798215602967921786969593171041931183687826836108458536959360552011698231060088527138680315955919787362090665443065291003237454556496275425478073955405570533488397841430617645034145777514265377351216868553926528852479584933550469195348116983580815458111461710238949995604693289026746558233748231438062414866473642052881307240990628486565163355714106371710246342484228660318432629418564439226934560796843833804842210810731565022589702852235291285329805877941905251857539744573786049108952267648337307241376031002021999747457337408188359438175880652893094169742948318407210778394740523851643472631214011266823638366367641206582772636733940722872296986944090878532852485387622623969253309664617410360491741145797949484888203053223653510936947029384854446468083265931121829263581469629818168489397311095445054094655092171147330801358313133903930164548533804459016129456836656148254932769613674111128187244659460748330137278657032006406221954678345419593249837366739717083363050132174823306743580211614798006356501140095025271776833773836380505066876237482355018064800508309259156429446251029102485279711284355866082427337244828935099843973326707838911596297127229706768533015930987940936825119494694515827681930572113927760545150368950858585341952734089751329232444263520250639953340424319936853783373973605184348602985702101676926590089873664913126779136431969219401042576158157887677871449580664372581958987994130578924325473493917885459810640521522140258834222877485533952661755760655430845927467727817773012994387331365789528628875164200542126614050829618788809269024255546812031218802707970383511959456582592059913403720642541856028961675771942879036802854033639196510096971933219303237583714094250281001071063629723657528458518766705057426606688291210752976250610052233793463676486844005963524698959214012932572107005249131056350008257484264808602819551242648394742835649075358845171505461123588610995458305237297412616170733879082759521432729873096460800844893076210844672946688230343490468352642424209087918316490165856515637624464373658430285724496406207253706365808372297181964147118524854902245931075668986453528247656613988854686708621795002556613080918211519835237426619943758027487558916353264444923148566079134144040738110428843860490714478648565663484704862919683235285204349985796112467430606973028023918695820472353707425235033377065657153766828322532794431989809391699590110431485809641677629098503119056525381226055249211418606920077161061948315161358628450523669934476721229707795173289359853554140047411204041253044448834682617738471616083193649630894592846725306767328353487959655315094878595552847804383113990756264624804938596504119869950674061397295055972070224153784581813327466926771807506012126764113113098963005776601395826336067788579395700566915361887393952274446140175254606363376007905247095049318144486585999893753695034016678742704995168447112352852531222638244172285700959343293535080663787988521208102394709398085496503299390150680750745957220155375996913330854716611011151262421348235468808206065251723488729580083414305107398445006057667930834799089006266368154367357596376585939224147063998201156345487910222843327945901021607694531343664010136476899986128953589969597380261140912318175508870987111077204568501358081133094432339796303039981420406817107609668161435851555340680286768376967788438035286842308093072879676108527974857181307386063934866079563740185039267967208812450941967831329974620691466922651844170840071370971713028189345261079840126241240135128463626671439543179029834710786697122398571976719466776942804127606143881516528564933003505166187609183218439335152428966972993321068617450185183770448619597053700905407606732419901932868709202887849229761104185735978872207697155286579055791450950767277966652966969159285774097945765409531097872736835773237921097292466610844163283010029478642766199809010647857785674248031420789892274231088538601793633916881346706199163984663178539148368022383658689820842718602943722323906254008354509972564415634607988050784600203121094713025256308461463278060580331236405730987489780726519196246151411214833604458673858494026614851572004324284112933227675716194651076531652134567066044935957119220045611595113773586364561286029347229123181466818838403281899793830338500975956735621982961173820351154770502353260699920986428675478781470256090666290280310313345407784246148860101052089388492146566517042789725342669424846243937822009094864170703929363186594105254729706207018782364073917152586149791727158841495898258198057214959998126663604309249516120555510386121194980801819989175085750642344406390727266622259285212191064968176028117909711326554304765593375046594418199273935705899691645077722057131550081887275085023994731227530378671820226828711014974127210776113512795148167543899956881524639700088131469570164779787354398531538710381004305409404556221289410287925368648415619251798907912268705080857429724090412145524160647759291196024783819087851294342319834706221242082468595049318730155456057783102533115251000268329138703182785095599491028134492714377487739744951140646081002151130068214308896362263084253937537791829384444415834458330362505192942532923178755556825630394690951718026857876643186527824613075798206003137202553370206282969080002889566390829021619714028507477879087382238642072216560699916878578312785120307911971548297178559734002030148217976045549045752712446598053747393794626488640802595834512801183617853313034976464500586505781401061089999271079936524674796667417447091021427423981732963684959518012272224072342689733596423167258624297283630881341427342988597562246474479398975506254361048498687701091034182140617129475510388201293432887177985723974053468265648376393553270855117943677464959255960840924681269983540012188310273977772045509035508114282087188888600326044047127483523627414444433748580088738025741053096475594071495655231834154481475599657255388214030264025293306681735217549379599722297843882808381540743849608220143506092443911791639265329906020823437932099356748093609607635486100563174884931519280325068635943932915345067438436163807599305143045505823440109463239760837509340690569192450521460664772350051380992468095533121136994945599899952903966033352467508864402695362989393503604396751173094408106431217183048715284939629289149747178219026164964069880969113716494224001245711454665204902070034209693487339358287472769299807471002507899085688733345229323169951899471917747030330722519243373126121864910208465141765796068360868361719552049894843107326101545957745041114391443521091303839305204334463508099542517244689399487935717463777837138235495233196938163172511277825940507609037299909674023602307343985291823113931344254010547625812107170929726147739449179441688313008443229000303061166571222978613639209226464146999376057806093465733466150518243212007645830409213481485065480780243394994592480423344838610971924325781350810459868795607140985166108577441880616850282635694711317047962795406212228457796221276066739520896649246120316055058842909272496985289738865268214869597316979075749380795515924522374336463045156581225687019284560191890473629244945616425382076160259802178118286939753902752185886711113279824005333591827608062183218505469327272893526741904836528262383557681477058949289957135344944995763862474802945073829567284524971692512047673836169334842658508126349550211555951511898987102935547278558852612781858115186001866053244188707703861920819465335534756044198509123242993240108633507114708719119090608968992746830127506100625289060033289069569356792528968184568503070272817295184584573472519093180234373101086119689476732423542265376491300676461244707251620340832092428690492169305848914315192590672356343846394135743176464320535696556344513813565703036661225799907904424649478391930417852667895671769535751729590281699230901224135647031113725310910644720233571080689015019560817762740584862248730803717711690403839366214679226492274058758096644244099423912663558266025983247455380777677375335338826165083363063632816917369678323392159562727578663433848586568598728622362467124125796305072902682730760815806661603559256336316008487835385295116758258585119886115091840795688435070459040884605045817927693100830398662188215748977970329878807694440003234643849352974164732086967501846672743256087101296497848783202733240774466299227262146186083581338043411556850095635683407139168265460087323248450952226041275063251410156164251216479368358879169196846883522363336670847290673755031128735500908743569478040394576731823595975177191992065441749122491060647412663923863333508398858647365893384158790184854281449379394931814939438621674660673365153812625488036609312803870374935336319021679868111322525179489568451160170719066538693105963078095777288341270524370661839241565730393595887845064466960480880580514286482803996360024687859127832447983646841599147437082089308399607244664578453617515045446407606877534157922460621337179258879073845092554013269024094402106582738563150791123630184841890390067359031021283779999080973081294513686201311841754641629251654197314508312669356527849626810348479927786659635150690128624231227422781334848823580629500830687619029874846422067956194212011927616190423529901603276630754308507096307758307923593602864400895492972185744905568472979003413724837564679404357716034028697888106505740746876635467944147586602123757747101458739180134469470519222001016210235410485591583824903342611485169863396113667836249846268400866859666718141362841353231766228072365288803515564779581192777880447656826734987590095278134104517891040949509973851775008308153916540032077983680270870389053492123250985075495459694118657969503408510792851802980318956206795964404519067098674611887891635654078907006238042989679456071888187295940189059972977367087626854026165227192635189449897278838417895138297546308592371882234083521612183421244880583858400529806386744811399580300388378309662316890908397456590054878067734183345415435982046193308912752784546661734486938327827592532464520805804645950679165465263846908700269161370391979479436001198090853155880288717544260564311705167666158610243312839916202207029806200428642815944855436538404696214742479434670049469016568730845139205201010128306008238654692832043183666894456913553509608762457629802224012515742515300442598370783672644938429253243186915214037100048622857172735398648488955364414833372214703322708572561122619477799112231776859119533872686984377861735874422867803763019055039079982394191411311435774875958812261980503176297760147254402279412749630638578167207928105356838218946074424439691773352672729162575211493037906063830577048721494237292751979682547595872731931110640500754314755184860634202988803848664365189201076372387232572380814779043628016465793903422804130180293251517737559541485094244685916803683352045517739670714735340955070003158828211780634692332232818991206241509870519295860607518865550820637766595943050501551399211443480722895674300657094668804643649744909093829771444450539162226221334347577277540889602427591908431336439674450544074014305131344376078259656681006210196862322984991600354037061739558773810893257566536853981564656876308093229976471914023978624845500214992722175866215705931168366449935395453265464601508804822493429459464709221519458414660531563263946701142324829651757967214091623641220345180374013778985837617180443631654563501208041785683397546202243960049129719456557833630603182575315811521728416300428378820094620311519950152073084944108890553797071078813261079377624306937357281080095924287364840815550572456485432694915504368855660839446150051346980683054326189912446902411467016468683820917337783007200065404477174104956185575426896401422422104728878902861820141512649590326182600824721422946166699612209251849816372944729803178606193958056806319728800180637614933416656031618554848394890688689152369330684187472026994734978254189664363418155659872140455693457559433925650368646249936790782833993201824283246616806989431090987341115557876529829711234173052641123788034165275045634371868836167906232643951823244760875064665458350801683019851042436217522857646370267331891890588603778812881937291932247401841808826863756584298908494887552973032594503956994919987019666475242175109820015645290651020289727845141477515763043686787479603741517886316605256173966150892130631047550326734237507650253553908696370924238703107066177209066572398488344808288109592852072468306640089183044858540425358269149506161691179094157929729296321987227187597871669197194232261884995738078741695550328562385917814689326472404605394129484004864555111099443823408112062296973985683515104705073198993155645100945924404502096066378016781791933008716059718988102127986380424680012082658406499492401441871950676300222491488516552957163748150459390162803595402264841304803348810233905850133004649192591264497150369067236368861994659080794143457191339719375146544018961350425351218553831282418786604648206028101291365510459666644351159331772251227557258253753844027110503990722229556014856831473058383286408976329672844564902020485038184240250133940757035651449065551145037311361363571162441475753480627699628976620397062157090883139242917860902384842668253886811727330855380695910586237492111643692399262240933536464071049762586795801081393584814489896365512932031334371786080101878363647128257432834747216184858723329278893973621714879013878455478542786165292251869105733729828983421040091847712018852003257308814273535722221600346372225290508784844201280597553641592867764047866173495343763392368528339364296298048103059931435555606964652734730044452490252126866150773985710372169667694397385450218920720902106438607412228050759139952163903339650773601102603477177223976212142842119384452184400677908824148863609786556116671541615714201467077513725643231425899433381203858333059885743506618155160692009479641394169951456788372547724401274682505020846548044334703052903635859855616212717259109889799207757981455581012988545227599560958150660701251127013265283933857222118161042799029255327495621852680390883913446333341634842025472951438180000746908747663050800242273564650558793445377531045430097433861788690991273462070779682213978975348131517261313724082341616383344258570806608142688900863513091999924123050076330586937033687652621995315827178008614962058524514591524745501666074013130600309353444710339866322321783171582107490133611495753853228642285924013562705542700865192796109689099353957697024661648108907399214932821918148156063451585803493395494860365137610147901567818705869157132544142737778474601183266197717545791564420462288676159939717946837543284454079068849921731765287923063422768155843452272039984614213022350469559618923239464720584029791821959924702811719330210796196660149087410887657849092133415847535686395572310908768850238472676845998665309123875104760462766608428216375965528751439335948704362257896554529178698497164607513849905458413326987749069333824685011768972085602384833171756481824787435320105751665697520875341226907829357874055633788022065924662896851717179843077766293873279499413679272002505980486415937960427858710571873233100915433208598929382993168655486717545444055638677105377286232746779234636581699623837892124541381956442432973385747550039365777185345039544382255417004885393811717336806062762829819404025335725584129246798515075909123953384073961601681427970731978551507809061520539352135092016751814484276904708619933808870267659636430929606843971951159785007656650445922101032584484691222897520875041908166131016656136608112209112409261913688772439260865122464650248077338469102633497360171985684712389102028227683439003908358185106791445092314747595133771188810795793397224952500252254642317660909733540598825649901161633912929115959296895571384682345193381049227148347368183030913956111810370252551069278923825422453767865952054918655100527768433991773370888275295316766678505523245950193321118765594661567783330033787727252817526056134468062732442989466085304331880377461735459460934028161051756759256105953318980363969753069927275090321203894834446690391502087128376284040417372149016169985784248283796574778263166835949403597723676710272001192518100728298659409893859791283692939689445477456733781338282764370938938817787786041845913451828306419982866478007664301861826117152143504274449727995681624575538329678576266630253111055951600036578088203632432213345275054866454978819443311193736459402764120241991340771748336400468803002472937512745436968592194449265724403617527124611260995869820418963842173331859630888190198097754483890810887796803547670190297329647490915563453192886226537948281023614229644231043415410781873569571890770998158561734080368320697794326672221841544285825632359651184715127257858602434139919857011098705838838677038540504331957439202386855901478983631293474306432932570087130236911284165726838855947966718240080347701041487762092241030614435408569372075329283546017202630624034812813212843820176085802908962983694542465119656668521831613261017530571726445466257559699433806702352992635200230276811460190052564660543753636611128068764181667953112526119411075459723140998166018587342940079901466489286499523334502609969814396571343333713952747243201280035943821803625985889439136852367186185403087080467746656130702011157085252376593935639956969072270145982422890404508222976226073347513458741741687321461985261994531398056035026481703127321759359516250112273691488004674417761055093570912599817311173556509072814578124324805287456299474401905445840195076424715790935927623664419362920032086490113753569230101766184488700574059492555514144193480250511178256519818960084129146285010446437788508042881422681259160226980274587205176306674680432456799830079999670729668255715182680138987107337750737032851392410511219921498935367145558968543394905785249532876694469826309964162658092741310366863601755297026858770438730907141901765059556685047609928400662657912873048280583228773247458954091138563019412130748801381452243375811291196141596905346779857121195219439202985708615561263300272650346941454425549971351924268565202477610868989199774919558677019534304323911583265303201196951207035261993800056055839680553508482382790724849016064488206422212203284352917678372443022713888780950181423907473166799835059781829014123751835621051600371400768726891129059568690699572681991787154466466988675268166580486229055391134440382861780037027780175050910475081283215868852767407999915101069353079276122106120208701458428375456615982086971910001129285092960991531766245098539445078650764750978437631576492550121897519825315362824770233918617792666732825654237895287032068261193279421968328253141249345480612411198525958782736577609721334256723781730138373018376281104708741890737142134090394957275517408363348997790630691617842650927050786670137989874438493563390652753749583034142713046133810199659298805234151657842799466875472272650380501462506486710060928467875610414899181608634600468472562316505664582748551510379627993644639458259412646411995739307617725276636775373900502936056840890692813624639651870119439560274723180434479841847119546806783808623828207901503516501424930117829425849216789369559389715666885984356917886973134914000448827740325580517792093208827897066395148370565373491057816100187540525429298744058136556951633945926559877844505283376233203042037234182065660106814803664881995369358350555273845238664037347153007169013401971042785114566167988242312789862355765096406106768174732464905789579460531886572064936576665134872044726975630145372408435301059646174305533026759024314707528283196732234690569686685545588144294794899113338763597819390069815259858132160631770699942136728971666146485686021597003244970603580437889212833014588949192569857109623203567352926033351773053926540407920458794690593492460277331319613170276280948190156800193193178802331413207745284558920339718492967649129946576678436307017290906906744137344834911409711714639972486715927306506984062563276392544267666281341021575623623339412250697940837911305427875029858651685338293871336436020318581059070146279324419559924194267050198091415329367696993225326903274971590819374884558111349460809304929376457017803113300579173993335057531314896886075792328481941583179054823178338906809133360157471838366076691229309051548357031491246530273122758451265155843211494527660014392526413148725159131831579264942908702950760131012113564162118622495419252771793241211630130928072180368867463663794886580971970213362457777552428606926926593108488354472892199693157531756642070646280774361381156313349692237604009710490326376509942540200855484749315610731377686867667947809910123109801093331369541658948807195982378359860716106773326586654638129387611304324383752672409263365137488313123017362407450103251870006441071863444940830877345210367986536751826373989938746004838641202842928951556038150676829937633435925423929019080487767969390552307797344151367752925741033802389063208937849650304639035877653811701046359005433957465325967291424653856090563566518259259122255300558800259618185284778793660772225023336275878784178363071615212080011254954482453724834391337394959089775888061526893131893164506229796615140166048457935817390191985705571767440866130384951568776033553640308726338952026192597145900804266982887020071308140783905906493926300309614505619790778093267846810439820904918994836758801256147883058701910375650199758873233025247936440205405475677997581518102199231167443863949342042914438664087044403671193519259073776628083563942428363731455465051198889084351242195860788926337105264881996317922699367786259573937313821134624950417478071008930715871322017056039694868649322482102706788029869402845337942564363145942862264220080690282957746264334767909696824608147267409209568193018789768398698374305028518769830259873017682623568664983780388901199208722490971894077176258302666910072267543771459720602567280884971617806963251089964660535485752234851899219453548741871601014898538963795194623453936933199069612823070225369652706294897380674296692307130537494089161277398246576322552559576903554508900485015078611582362758901210170910059761091743466680737648741556399729987722289926974586242317140057968970539522072645611094586520254570464208801292562030407074721447251024947987018129464031713061174089140818871232509664493254154443365363946982035785907616571898912558737811224397848713670620132128724700196993963162622207925356802692131239431241926560746928431613012564862715706360268309663638538774480427844181018621635780713098721785493069462273488229088990247797667205665226185973006728560482955776208124787135694318728899501467589397743764117554981278876848161982973742241405263926935986263977067748930924019558749720996817133498294990751521772506764301241249808323497755991163060819784319517795929126597434405388080751148665715525292776046029445464033017257830025515273297170867213557496855849563957738922647692695873359462073430683842916658672414336046367232833812279860446657197448407966877829968397286775396413622062836621645783036503649820991943407300274873898523807822476920151652891989901590502757666258954508050112270192811525770160543466431309796106374964829854827816551129660994496940943226272481254254569507089353936387249344409090646621518527476361969895426288881891592380776912756252776353944903476968297761193761696792150881610238902252217646949389606040592392683338945722445741241074787158379104257814213403114504890117785260066751217830859162348797823358500276498734103129030807812657165187126336248432924003355913965982788186625906335151723145575745838927746580599342192262808366570849454920226287589332383734260233680818038455251575308134938356361882345994159309857738760360066845066449620286824319894292411484870675911421842256132856413847142427296241207442836581704830018504331344447232539890732851174746752855928835011996801798590994164695169375635213610829823777819663393349792780239492251681618827612885771377869288160051835409541368139880479707213118021624066648360641019648255072791451286770956022167395102991873938280595999961284289682081150837554284893212425933436833127372239127243123663312840140202916447608950073510692879609192647346965543577471925240191565765792981957796805271704165149389222194795296383471696568361702755678177834281838865914832936657827908376985667683746541042594162213579149161937975563428074750752154764164789478862552328900545658666042020463338619967645393627421772755390566195051218014566249749686362063312452863454904589476075744322633800742639954192405411258397509510143497972655591626534463235692210450063451816707123432353959169600695590787430458754502953579067290316959500113118218047202787449469948413559974744699160523902010829599293614966977924988481494180099026539560873498088794898776192284214301143310900273614476443379102600204037062309040412295144089022992064998737481880186416347471323512553291558494154599154027997015552168902214590381029825613784704988897976359346374852568766359900236699892555110458110455326595837967848791184798766065166158537237465028262445520134115309540756432851161347398794763020701233820395029358271668641343240328348069882887603419332069162763446452423115935092095130900944230634668454875876323542149675628748117406197272922149249599922789827756250182095185163971873521966754494523494720175640280912081015279527690247828242199154615445359307280944666924073748932776888057126145485801637442317145083161435019403634150581343552835664891090194991794592687046697691953834218356766804328136327366184371422703847772302156799480435780277005143560764106016332581866048229059287647164163652394245665151374498595401255207861437156904773394779456203979268550699859444567262302711591261243940137843778116842786295172867196487558312848131250379140927154151573175274909937806115300316921517216080665988082522651233257744981959573130199278141035625239467958375160653859654750824805093179575863566064137340437835115921726957919185303359562504934388232912010515004364631473104192108052356504479311252649966554594592980695136788922448240280469273989897764348914767772564594079739918042252472228102293527912453617793464281125103615154092559220632514452959148133911342055233146589931906884916033411033397126820589026300439686949020657587639391046317830344115252737051591361281501825852879149909836724908367557949909285507577458320482117158059296183906942277855408948347207250897702326697753486648489395108218576489109954503856154250638665727259904372378475864315103956123313959112122527572877162516029081307823031812354969767997820949687022800833414570053599545681063897648246583635495786833811387450133393543987003439557649415305893175306761777097913656108730001563869926800006049244209740831463330525251720680596864095099024668386210452478196831961208343906023340294454421692323136164695903765552854159851746672370712667473315307106068637190220203968204790152834475838113236997928924015834295659521679802843153289812823246937890060008809243047679793099576425252487936947653517375572381745527718736555178804007203755673165356173474113978476381860820797079386154723726223731287713789241327843758146187006748535611297297503589190194124145582535739063023552320095209551432706890030673670900667118909146062926840753010438526578962132741293098693495244213351100875416411657104939595910751419640640063316286068279611786564578045274407509836797305777376677119954077857706867336659751244733739282843687482402330345778364070797819439071982230349035444003330236855806655179455901720465586217858280250716035375457439725329148617033647881866182747776746206614784255546599577272738202788594831938520856727217935086338344028184754080779692546368545630822343073164412037402878288779891091141325292670924100250619217738627393999980678719764558049025618155800192914893599378190426284379447681083939866538701629410136067044907447558626347714174604425490794008069394636674427750288903196376439175910000953888949211504663828590094293983432861395501096965053284564932138225552308047319490140526914885873641063386042053479316208430423622244065952181910058834662301289996365215444400991320923347855276762470715607247612575716396080313792245204467149906580948524296135633771636277630362363724215876188531698537199600710330401675862880001507037460256206572845382756228807544438554404170364165382780560406208126133754927471870135817988691274130220319933458877655062885241813416750080628686850946044565634021484032988831833743619533838729491208636887742045956916833265556803622406743359102728723203441613276210382848480299140979564330945424943574370536809987474505233845107415613025788076105983164935739071701370751996942553026992105249501137057157624006504454736987931870808783108861213782694260905612483705934434964761890254674119876059269341508813259837035790460857597538637788831813526212586868599304911412823343204242252887162741780679098219869386772837065195912749822658561961048433711173008639795031597013911530212160002595663628804166239924248483569210932604290777691314271905303011593639473968783987589351270183786815509593008276840511128977927685715714770701194353436021307865945348170052474185314397304660555610119067035240108403850636453934387062217222204027921148524347652854771364808711072570758319344333102996144169797365505367052686136965245720736339132430216656456045348866134621777768965645866745711124834308760558576408530596578718816003998497880241384506028951756346088270160446145168196607036632233576814245857898099717268989797961002766505170823144662905791985496546292186437812845837497498753523562578302682419906988552332324263136173244626776643405880575796210944180576625920353637923929365288541544300405819641245383539002222390283432250007675063557204487147390425928053083548832434853382889628234929942297626526375511908815576667975250370788915026424958662310790443261299244441029735812468241735494901991658796034765584757079717783113430425436288947385424664341446197238845043342884767710704094136029210180800172704694102665380559581790580081312969136398830020672903315187446372213132245476506522463851384971508886805075212157020752229137409622287275617749057095510259431061346852146183630130144023921906799588470096733265116132212954098034394983488211635895615050635734204624041296823423423912875970815976558104491706699526921923831479612576180643573639192737887170462339951134251043295124251752643450079447464334998666869916519216245977244616651455951080851701633906639057965376676410987201351430253260862153693562691922794554753803756243249728679050572966077199783497189067775771155764593746044241226067610639602851544316362620760433845048771078726927942405644749689644042687804607713497398498357151864020435270722953461993862235569369033039161927166450295882104838611557356800199590904850065446181380471351609836617090753255139482788212874745797597736724813208939382110221838289612250838016786311103478250928019019479085142232365558327926525461758832311740767114386986413741335596154157195336014330320402456823258914510458373517823365282520038305830554613060638187225388259983816572054193663656380520224153015774265901175641894182100738793227168038209386128084450668084230210445530590475396018020625302113075229962078896142961659040927196062201088459650718180137560245492688108594487860803968492501829008203952456730686320724939842898602082680212080636713372890442705612530880963465851351108689144005495712237101538906495986801116585247162631625892619145073970393176372697829992075508107267909953411537030162551957402897415299658584475990120435191516791503879338627034129077396833044251858679355284790326448752588964055950077656723041162233148360927336557818865756962177496654659150763341664311650878540827967403772816566059700350593775429926160401144600395398458041077229018500747429492691052799215195702755772294556887310662571298856752960214877479045677488731096232441966225297284290079730249737436601019695451531605846691700054484015896321189123725248243486390384908697218905873640336544445676471201097525133803698702816657417527158139498662240942662692164375292983863353772544466891882091261039792625071557684595495450532117634842197328372030079985099840125943444031229046655811321386414267334273930025917205603260727835188009812226217149827021772224321098400740021638191347517277698422632962509040722543335101626824971516736581959828327352799238381593469652203491280103193203694547645195666148690437183573103699730298299587162077532394993146038463951347492645089024984918646944722748878425392850906091777185686871203538735748221131985000670738511856708442236105851292710915208844038845782684809625347116757331733100308220466284938896556090904557903693564749573107667266391786234935234925920206710877632814038831202993253137444543950101016094110079492568387778437609124779090899409698079111774487318404353981068326262924021256863293904560038171994917452776916588050848717014545130397865778853696469010418794568284680082302623578968152224412986228837427880382079889109824048354214688754874520719448471570517141263826717060622137373890716513335596631411256355111749066608241046446489936936454131865323957149811275827911848478528199326674686737910702505548357277089712983506392792024805048840933605107331233633743650128595683959560747894367589843927943152751501027856030323538913272398547545456162714424002872592229339777060913895208637308395893635428846325992416260640605367657739711587107412091271807418337537747090385897058613809178153744842223261097594509684520917206575196359500233638306558629722459679400070063298672844744345238023523198358740270113104399069065935726814665435659995638627456835460185396489130881559456633176540568001063657862208772288629790214374677732908089711815796926432936974828989815997416914691928150539105553529028683235375819242421944011957085810295051676520632558410013910410646599027266996676596084388924338469270694250464934776334027955909841236482563896444863633242297508888962541803803445621647137297498708589437267958712026978608871716080362702799293728579500359363918074426736689955833973373188073337895429206887030115496255131079046410585158518216315000910768901923088345524381254454237385588550598279369047822353527943620213800576915849865884620639182736581639552602246815577341709925498631371935632084822209130331650696960202621085272315018863559858875834740770662060452906810814945214598128271766047272994937562156723842323305645178470600936364918334204366831122330554492860279058483421151769121281655585385585327521869526687648658113553655772975837465742187588719737669594642635208540501625860583669279306209524493532638940212867839523613479111578956318620829464638078002229603724604089247574665519626228873163627157260568677120768519992201264118147220481059516101637521336739435393788573320761392367084072698309843070891613802403299055843459927691999746700743382766163666269841188066230485419980642167083077131108897422070144433897669146460750082567813246752661077607137012824667935194148869815463613362016311733231045630786889743796903969392957323416765050669700117019087137687679869230068527746274470912705863907253141474074750126386968565695795695643844228873005444702550534014139571290291023301934062697902111197230907705631228635444388303181166954514614006816906602999809234335719050193947285246544144383602776615889306100297549939246904051075632105954286911927379258631246767312820118678433182121365171934887925440475676992372483313798506659116147105307029668555864925113270574217700575396730715348102835132253934917536295416183802405055664255228364476741983504251302613197505959746862927352614211307630790503861599951431767228278818563870771609189227566291814101143364438330698900724695251001017678994264547759517413490713045615743304948401981428197347935268524578114458619816488332506885318811744816257704750781613840916439325563201527663985079326135400523884846892987213279465797046614438080379296463850042222732921608772819815674424597026527856513917976941977290472079780847590358913593626544342834253534589980950738303076406786844704831357275727838829941307605693723754258811310137850811179005704591783834903281610754024451287139315748517406008966710211581781483292361808451063563344570440417451914642259998742211546014886264889658617820297270389554768483547407923517889425496800061711860147109584279056460479541056520409292226185534119965648429176482613139714665461704369819285413494640927751239409646111738179031073787619319546410221636361316186578245198915109404221666294708752949874740253550641778499550977837904997007397106506158546065693479325605217608621220406345404968770385149608916792498990953781021844046181852039056892244004845847872497135048267452474566628387527267653804946570900145937212262148847217836492139685559702374783331469895120645874405240541950659579858588627653083207543062165746006196550936162763197676490438387472443133556649917216956336968178184118207653074581288883160076117029643870217404873611047590245043491464176154089248639525299030331407423740567317598963927329314708905045134993675887440477024358439250427764805970200684214992370598155460385792994659691853007795656322794396350051634316120197190819295965252401693616832283463642230265571872831816676749501200002817093203957907046676884385136855654957748755305189617320117372452918355114299732694980107703075688042296527118478224980793944429684588962411051534852305366624423754656869950914257973276281774934192361087954551092883232286729110277424482452197634241304044403752248907358611541970573147565877957600022302459579836572892047051369991683443798810378117306704498779884440181088076498011133988183756675886233966071603048823518294995366423179772563027896137301761350324309690687031057961549459950884105722572970805664579770227919819084866550208235260526426816390120277303949109963679771337935099787179150128960126563164509672539362267699893258592211032029289006596225586817092941576322194319353186758219996165536096982371302869465222146345394170863717562841941905670205885816281726126218072403258229266545678723969769501546070817033780674853822125033230906947559753443490535411869187561977026002716249698123215137232220530956777045064227265840349150748410181467390645776098990526137318443441002903730692648215294620251396422937519906137263499261944784279310112604417127464154492069557044401993871168243435263659367433792489113039164626533306691014423660455442724648018886148282776991573921379378678333960677208613220068090957743553421302870573112228793919102087539468144482122467705418418438516352083121672520798129140356256553145204214862477656847092786713708814757779160404224088988114467579068732070363398368546505076160698860894573351558143786334758244715155287985386711345184868230011857880561130385846257643217175654614898898296657034396731557477853107334923657358281101455769111320792953225278236846205760177487252575774391603271142968361897414609277857851650941972750112553737555584995654994556770382955561296882525058632786415588303964470802697015695524554940349392852387237339604266930131842349537101102821916449021173826683028981155217618949832791481028730551118797964329322127476203275778548454891538167733930080334866043378302967961116395113812888115563289165566815387824760026173528918005270947530416370739887843083382277717968889200481807119489476960056928957199098627513810940247951396994303652250787183855974578598336790291180549830140206541453355423122689745077072240477815994013910618794669711323827446925306801870077479956532802277730615895939679010177913847109466796546631386543109133370570969959249503897959366027712439273697568606554236675818124206677281036533081387268479629006033421564464178829273957136867449267697381438583801649714277071740739061382409476454931718982536151993321829360268897406202913863569743221069674440195861523164065945690613400063523389587581058258373493276069746888393216572012287106106259749537044634680358386176367500674803023843935298598422334648827044586088473550956257541076183658534574373140638421968235267738399426893556928375175982266645002937112121513877657005323032249065228643848805255684242725484992745672325668876084044990270983383726875073852468479348732998253087403304222996000069334432394151446589283332906845429703044685183221429307227474410841587010986060583680812744654778519505187621378212156297436151475911578849175735116830839706382535597843483629375796752743102342484250695126413363238131964165802609193574532932929747862941856446658570470031231536582819325124540683989605585769256987631306888500646294441552245426200589583698480420662403007239785465307809720072967954228436895015583120038768606107129546028734037676693578399462912815565470464056797186211520157173315747450648701327124900191869951778197652550336791726240356330870858057562751491871712164337783261341085923772426038060010122445108686877764205437508584448365679856084394926217496440662228927776660956380723772110656155797574057808932686485008006581843988721477407346809356062548175331587246409317514096189352388900635434558565917079890021786117374467670346007858617795546908843864039385904569940073457315492488565304931805679340327785153865921770630150995315432375096586129252947781119233419567634081997094235663775074438581845442259770933763969239631185161184298896994813459579103085451509686872508535785522724564415021355245203151571230223485559116708786577925964207929882992279676961766732970326800987085518602935063587337554717449694896679666520425655257885072014469329462645740184740560029075020992707792226756343305296147957645807221060740264300570004888214076540232497717062657467795373529218553283637858018657924109255906131916891603056472535304536002776022102436751264793349259774271576117758974500086814852077138795299085722479653501102146324325114783294882028018510356118472332288122662465033112336985408867949558334753836302910050950392510026789995659155357918963291838241121741193303970138033051480714023929506464567234622464180760338575563030190519634157792683690906370842331403634418796002273278923241709884173996339104037115046889695033602911019390844599208942224045910512107680023467806341721895849953872990160580040578654760878005555788311852389819419508072509866149111853418404340200746323614438683105625613463163926538337023248383234723189079022484933184324084590644316250767423635733761461286994011540446329723704079516264130756890685366988059892851743734017795653889855012934025777013133662873926099375067292388702672984677533889842673789701939749652471335332828189135781656291468781332746769172790683195125909801480339584508135589110142971219984934363972090552406213076227670047667662917803166108116240765894559083322199795027079564577081139351334594588237666362818592792978572658107265708991231565872344075992279202898934618058084334833734225606372867270845042666494838088949701382258621439623442328051081834616496264352566090083944412154027407339656366911187746195742197915974757418439074777234980930904323584131136859275682395122223320903624547821798758090068444872031539817671705097575518554106192170416607521124529134435242301015015196626801984183020971577656906332183646120416184790994564768449236174133446404536797215365583927605528078074136977412753798195593045947025924652968297634294817834387212335286428664565028737692725475477544711392780217958376802842408408477770267282991990471125830902348676883895647781454487623262223194957358819327897058295082417952423839743021105452515861013391727522353839317031529479649280683317971590974671910044117848627449816089088652370003542274601050000798066549715590764054243108945702189113259838052980071313497572639223387608871912444745895974686146735339752547128741235695591040115356736651403407115738661996709728616817134698803489027147313733002212457215396916362395474109864679678677779778121490125782269943897315264235829777387218164811678883321240854973107742267922386068067363893457056452242600639186957449160774866901850993184933887263615574163927828374223428994402215771278881105894342866028822386845830855795247112662756206725900948870118773512548053569164943246289532141596892456057293002277413253364626941156716980770897738080090489573836961891935298591549926242115738487021067993479472537626561067398759037128197788467207585319137942403339492064323227187893275344987418718022613564752785067590141855358417799782527275389996316953804872981613891343637676838215629219530174040506842471814586876422216827130923787932705634717675122868604680791933441446266413141191541645343014460092797344261485999826043505402001456033739207328527918523403467202476749615742260158280197293875806922805220494515363062300510646977033058043747149222136032877111870792062755679527790964083654138753691127743494098646139962290225092593985768953434035204876707272774898174357866921869799533355714987381191481035943838928947736768721109159813994321067992215598082579408275029331276957695108292764226349311910465452478364254310886562104650256317294515425824328538259600153732216159401980980691814893194503942208816661710747446298633253854478380986785323258911046259197283624926751437340276259574043178460115060841807660961535749663535778724230638024696994436416656273402687455065593702768979288529147570166037679293215399467969809277117281611875503756802748192448536447586345460254163870304433031772610701141550822940619967472472528468740941316939369574190747887774199802073113330877630550123788667451735551296842948806655944691037514249068217989091589637303876046156604735603644945491990382789767039362690288940564914107632535633821543929622467953163296412680918090518866906459015828823607695986887382479482383330195146111149608295257189636382051372936621953204331584558090208759576228767465200041413059234504418192495264365268102148181710792593257222735572470568561089020207093632615571955462920121237234072179755748045278553812310575429613747911484848664061637818928340722995318561475788679596264404576124167328865474649850848110754621018510505984439728544580221534571321326774653955378082313650862122346885111776138268852840639832779017638056948770010507820661872967127521845277856523291717266782741890228498168043153491441615386649503398168818964261308373167654850707661305880334253701993633966516128566352920174360666125053895162640144939403122245566272688592039079523943684028493209469373478351403753606484062645447782897306194619098793762950971584873934568327332789335931656478063705339812325828465774849971557944380453022105672837094384935846738107427532103525916099178892095933065164917183185347273307018854915423549387550085002708776202249266967961697279056811532928925351978808364782518166433731305157937973796976690452815186607860285602118673214555875429822987879323359488476688043533467990020575929104465111392027766877990099461155228507161493396669445194015092391641856218294555803083783941800136307503547255033739798485137804758667907723998786427078675536107805104759437332002075336518250438692543524853920651029197741413230864345411874011894706182179876971355031988095023927403029449313660919556983097121626872392031140909339945615626274285574469811705755900899486206620007326525841450175129882701001735129084841839289627298630471235340312305751416171700210606169299896551186802538425619635474301059881480648378911921333140557283491759874993143688503395164816019913037992638146039521793888425154049080826589316517789032609168377684243310681815744019765749449435868097947438331239963545345112721561664959832380654206438681200528099126528496748150078230607441802927134648571585720487486238647231304450014016106765014807638993780751381130577269936082652648597245054652808986261662283167914547349396465115135484722146732972126954994674356247482422060950887188490219963194665525923939394254531763018587489956628395697217332132357388871959646819395408560689268377439096714415756618421221843854319480670328829885076524055497029539256515947319342600517661298864289633917973915970092403539536429063155209470119124452143183585970468297894059114738387069448852234804767230228221580791044436356284615317784025921522187435114316724606456619850542018207901884803281013807423172832774565662924050088932524492767948994065937192006748592736521356248038509809898223777074722558350679644513087265788497497201273647745684908381192885267721439263950609848157281076034399194416517053070205143172446762811923893636854558474107945065854488662558310463956818901763539721843672511433569523940293540000939412887446014753465117847264055887725056992983325815692360356868421761921454412173943579687345143369126688750115129101005070128293200975279837392485221559742383619263077518536936468997350091199529851116870477682954761884845296011142605762696405191815492706358920441120332445207643898868002974311769902825942016532102319564992990631023956862260960406022607694924692865443014461636685024053485460091619850281513330987430630575287698082986411315888647874466030304112270989848664003898593210780622231108403279159171434940465682315980452011841841396119628396623553430585883566374359948332164312662929580884992886133563491833870154102264158192435571269128119006472875376281212073213220198142383013036550194667829742884622329851984740522733010468399389056812489869181276544416874123842216368060659815196350763861789774445869586315620513613461318484166339972320457548421576891317081671648873574828765466406999221851562033813061986933190464970319877875524213329600515726583806592302426528912131795421092064030103115725472131862645438495790156627717842169425963897536047338869917182099066328701984698338597074240370108658721641694551546229990747505980331803156179629593486869033612497365456378291936896738947848037140617891630826963834498254448218677041159608718077014197883066525225611789523789926455784017634088180350784073750968297345782540838036381471410847597274017268464903185527366615972740718201899643015860579097315913327170136149511824852746872720033755817910957471729946962892014752321227595537386721632178260021629742645400529159798922802965084774522135717470898042394027944512502787299535133199987565044461660766097356763016040268395763822263730850398200010482447054339371586867691916275591648824641029047890019442734118272147298142718557376457214602521860526356909183953686403451055074716829789536423409784940390543115984430611164419195284235643442344402988921207631847933272590196168400987894841471591506561131539798332137282783111510167115673642986794425514487698955385781304501208320179730327642422271860990670063151646718989485632772871819891219077678201041637184905150197860320552109923096233448390250976195467029595609729936728227175951602476063144095747744668617993399578415213234151445291523349864510939076125730220691589469317158528734254724846329411162886268504293560209779555354232966031980972300084478618308007111909795809516152184025375262301782050163123506505089939383930313461394508929983011831959459890350845155611470517150057338177709608108596392999166377788994418300441168822073852897252937840988615404216554512032822052650190950655483287165858800839958240207127127954906904397446359363311635410885223937560273976657719395141281760578493731657488948599613488222779420241690684176863078198932430238484760672277001964400399406056534182451998643708241339162663627917620461676273820477388879783235788385060452043269635006054025827079790848155637801298585872950225764142392381742518619412457474556076111826370250391765707284709969705009707673127976304764908746932767635638923675834507318412127557494731422134592741939239493431808973357393861696668873920740487986559562407518558419570420438414819584376340744632100807526659604991393019009015875096080667650537087798842037436893284931268078025044000543209989154833576051606951496950089807471736833768785040729899536553579328789992722203773350412397969481577227742023094529658970146109706375201082760112846553371041147527044424144415654596672937362461532508478574548461412569450498120132944563062631194812117898916266336807008671727809570697094345585420220152248391837979637287659730650935301686999615813369595487743328336929571932913066513810847006362335939815187955542941267869412993522732739631750556232554817876886079441411116990827306802087838579307129012258992594523364356840510163441140475620581085592513272581938044416207874740912762363979517005537117680005840820003478294156548708394497855707632783366539563987695126737694929266664838021137943793129512901443363946852383036987672259725886798617920720409767838687330301270042254112468874533941060436228243147156741135240782879123852772818349015602402154319770290043736131000420194828591132712699280052654078313088476103474479395082063028381507516001269169742664297561789360157285026518120398740846077268199409326907296714558735996973397524389896346878619419786274907791515614185156497663543995635240842766297820787310467767092961133230020426030926610566929453537421148884968034986636828525161560494484485792774166139144883641005022132019443042847541325163430181141875532519655566032315197606917385078682703330223695617979731866455790532860034662284863113548958064862500471297603652655669136164929212010542903478859091790642552011330608112224334431328308290346246691244387523842787763162960259335943044691005379667653616032026798322360441663013548255856676614980298046577895001309631810140679783722556716879677074067297993103150732566878175466356432948596526392623308909636045280492596438526275917077017923556704867290016113461606543603658222632385439924964008102130489589155384650571161417957703760359319091202772878157923332826754763857848063665365667410163803461487694285465270991450200371024244071891302180884106426972226926086640803601741245389771212380218279584737798069409424982920620195913722116111672959439777705821424040401809081477933214070807956678408911926162126325619107077165088683397691425949147979451332024437801771610841514322798000416582925655355039656177192139734103577807090459425379964738885845975339459313907268581145445604376195645012231394632820571764934456454623297466166266873778153657859415964320982644180648670296420530731841330436029543083804243878064645234440682363948866023050140080143477744066800077088770515837424633139669979347132302037482595201082281344446578030708844392088019229131462302097603878182662475727171122836902637973189219995925849503112958529108955223973339961292626648072661402751997169387891869121544989755970399018639123177198401841460834277341947845035193366401479613494377680313050353657764190611975278122318977739985169187536894016834764605118047638234188411659947536308103610504001834371479191294766546974548708292921900910960600878793666040552555037426524280303005136210725048612887997261071841806719440710855862252918744908334590008690296148715081542648819586811951268173849608631743810426149920873430381966884018913659276931860339963078827641115208785882429147265353583176277939626431301458647721750528377761471351927524220760574009542435709000667217515616675589402845196360586214112171382009941568487278929364249879226970788327649061502043207107989419438415993180845712383766088578849850178277288110397451237052642027131595483744743205102498713334824632797074052044314552353154320924310845855021907220326879321260597459156306767996775362072081579450614805302375397374601509211264203026459437432255387982222741228809083843330080946329410778691718505703832982484994539556505662617184885042527619888193420218692994023349690220235702991776922703082671664378077653078453258303242207762030661378069517360554976308140994054175861276032381858900491398456887372337368034760416818419699694819454645394277089368394407090257159037810636420132582136045530775795093161160214789980438133975179085824404459397187612141284108933103513266802901748677704968033676463817287257363724853953961779767235071990017138613270177655883387434116472595209224748359946236012122288933816375201206095012463799749756891804588223545798542716573724244136773084363375132836402249332287759033345992056899811736163502210081008799283450328592470887892867609109766592679147833122136971901864799828537662706214850112129765145504341431821555861008199264811233805130835511588496354084467567527024533088000249305476329152343785982735669418009098949774181607532296986356323100018829412609501287017407315562868484385041699104764354714122252776111174514556707463785502169484872913264430374534105147422031807569696980932918263062985759867303383448865987428020606946520934154364384300053077550472788266200874246983801530175039114565523324608757766094120794340250815051500464846078289451901679545839078214272734631655327114082139319867998573070493615442679617626208899478693775639066631197130087442670939915115283904507589812756405072898890529279438804707885584042337730523317385071943201899828325116778817363967440000477127478899457547734080199217596071890677042310554825326573331258262765786174980352532598439748166310918725944338077303473873735916366494249095435972283500116518744279133253164471115226400256988257585777813077524084257847932133326611336093775552027722457871004138372378541774418251404267477044283839247212541056493034685632181578982755111630671079871356733919157074642720180691305292357912629339699245818369767614120166104190567888233725325995909945463281869429160580524434142886803521857369924865903106261011964502864141656584734787311391716604292610874176843504843945807865261088876343518136573306382229337735535494634447939958212416015912952731274428108363412360034802826237054488124634038907309639261151063656676918662118458055716207986173963997695413078930410011198041201171295662482696349198547394354420795411875611500868572001265578271433776114885244082934718476334093231514752389245554119442708265667150262395377081869096894376017162310417187582088649751896051261905183266253007348131643368235536435879885673105040123721621194224687364863756909090469113116314908248750439480375981210999144888736256099278004594616631199848838299000027041136757694263381842516028661181723010683421496422396554561186282357115150651659152912574717807632417609018791809299841653335194768830635989947177668970061978496425009679232922506401605809881328557872723621764635626512115356424226932955729128369532422178923026880076255210274268441352310602617384226652052987588382736917183193578133402704980132899036156482202497481954283620646434032982883497150448326927045485052391348639244427506215635720486004921200228865341208224421792955895715339239431444566758073436306225393402327299782314493576830194218641906330992593042851496837672409074058142128888772929264456620129906028122536565782548328138382703717481285645709448385980273603286753976090695053964805228488506569073407488288137277619416209513503496988847046344763195066796426448236838830463681324332882301359074574110604969837531634036483364976989573401691543088027373063566377700739330018544160557270689466262016444855258975551183959508710765523467779393160406181777097363659667781636128978802586047701128008021354412223068225791053905820259569354269988941408942739560537362615812917679715515829947163524349164509426682660086322916142017928221265981094261315103761159853400742777266372190398171344171989030612904272330585330437641377879396989167529313851113968852354328479686035368024753649330903223311868554938861488469844325508092284345686152280853129083002471708464952275026510653626070294834824185772263978093122541789576592346381262769162683880332085919873289405846824470392822242899871220493872676757923587895402430068767022319544091827530984876600643058929730112215599815539292547109682739002135027116107487684931632238603555107948605322923592841683377595673954921259277084387395630454477306042705724430881899302773487014858124075947948352137451746748100945400074364605299981366380900456677555575133454080494950030159083125309013594989388240444018737344047894606239805984242221626564300622353230696464569826601613527722405430734771565437000066733384675101597255439623890667157328833774880864790217660601844699180969042363922766361843192761373656988941920035804735167040781467510924935699524271330410586115728897752914455851410169297092056824429600380890430497604916385333197761019028298092621356073487319778316934127678489570524970791319558840268938646879546176424208851204370160305302515625122659529328053705821136470165918486447389032910990611598616076871103308401689148996336288530069067571115879066051303392433729743767307502591127123479008272012509773888837527900789451677317190234893661911703566749959635876676315510618988315173721370596963219277981555114070896394335756473805258633865987914523016322677640840818423757043298855018736418089482177816041210248354579384533724992191125604909623287343992619689707671135190703914985021768825715150262421641927043518858631250312573315861656428479750443079737928956729753382720174987129003662511719801219329348682233229200387132421583415932663150873950178809919098059769817593419822503242516652581196175701845473883997431071903949272941318400116525385270280976300520928049575949389383571225842905487171429142340176158217467823811078509636677100445144159474291832860001486037535305095011577935200777319157050927758539527437268377460783946740954631816839146937816817808920569345121803025664698095591073597527589223336418211873424467805055697785237908703917411170327740410403872018830464462715409315005779628293665158173573666986795250437164823850482979962223241548320964218798338838133944284720850779125382254862465353296288803839451159502556984252368991443003892880380626966490937540935636292697259242746743490195733830019833015820183915529633269036985702210289512499300082314832276682527485474863102262328947303567468993899966224030850469666587169245912903902163962530733255979678794044325375434250738075649656073252100422717631002385533232567832234145386041821834116401249230758334275812880668380506071615967948861097158649485783072394954328135072373571795695213563409909113460692974926394737116055006850263187264066906149476583585183841062461107198030073531333312696988965192198599127248673677923820248284714756081258925198999233044566238277456575019149300810817243651348691893227698827417987819663991091282528586012498933824615780718694208109496004047341876188079001851648224686973463846671702095456257272971943242267462220607855492163541986597271666589767153908845257906219190995212772124001190152090988947056925404454866489828323317400791748768414488947977541313685527634280309515647936162490826019421304339174483112694996274174063344688548490356378545863971030456048089972768346758970905457400352752103470955891803994227199738709988597341608587580186905503149334527688531193675923880859116203093184042855193907867160127199147841818928743711743699556867258041873120000430217993594382062771010269022991392015628428672047089179723052311481320262420550679044935376230188132158709998471131691901483669410445478706381790043856032530053014670113274639883066842669962819595217287410687712199962808581532307776428588922648773840203667875028449619795274457689421172838581550830825733581500915252616632319666117658650803299679597588721056109670156913064677270154914724853678049990544967006948767154193610946290683870747684362344951927939698155740626799108905036405351498409968392431878243805367332387825121804230519498953618668003353899194797000360145195401226381238823604751485381169624661637247170587572279577438547796057489820932602768174313305914065349482775191078181071175788168077985316072165591483827660563403671708579046207404256101180550441516962849205977797216575639557283355933415712210645259752967960747491850067087212715963153598809183264993953303976541678077066468309613059424711445701053082600757031773893487602227815325152126197863596733061779023407033974909118582981702457483964282900987833862778759453612533105341672983470072967401200991289719986062661494738122535060377655398339044296536466612549063232654912487445294939338002299984945830522711487775265851823405900552417325580662883424281556967989593204449856789140091645247277998257521450522398716684978686975838189368038953740150471025100257293213188785220233908638523470326386971805965970239880354142733078987839347891224179519177309874688716420792524244584632134143585478340308026296610731168073957876455684966842705045602517906504557046070205365774175295952186436088660038961168650926931915929675685021102873243349362800255633772306737048090054274948424541194566567813719250237155745153257443798660698525691049185247820133782840523486904872108228259400901029794461006421173839330151254391720259841132907338290870209979892097147310436345899393968408674536099466901792914571273689035362843570879942391594893319172555183930910292237733785197704784512336290172772695132081700574969998024237861727860101510388488075671874730403518264044512628018225392653194889242525545593432296094766624207936496386865915574439172729253745149081999143994938735831946551388740595377035822505468411280325509317978783249950812336710824440719544802358051888247717044279217902226304593062235252899991676967707624486214425727168579574654619510165119022948812926426246586763048586751814235861033218816261870399574113349553508763474604181901665845403754817208023986978054540226374024163512029437924132641612527375253985519051363770111049154601592615884931319368259537511224795050153411527240402364535240199813998076630913926759975812670627000172553320895308461825645790739484779379262724661010789695991167865260250578644657448368238018929041140270407085904621837854492377771273231887002743554029052260008428081271493352896719194272703323654547844215496200064087762469000888407677683114111614225149788688807533798265833335528746443579501527581171746818497231600205353687656800761297216354874762961743306696646050686303011479181868870894564934051597033245860746702109124973523988038169348425665520479883823682507033522728944846173927912613758361208240100348318902396479412257564579755203079136338045913017619957153133779750434684358229808305411349255602474890822930263077084274000529699137581401550997871750299317642720816316175339049508736498588478759678670618183003455042259335605030979394949748754270675602559805711588028479468395061342100013694827300393590917648796215802895607785096153254603501605215340233325914609029563250857247709407324661665671810171314638303233912253706554246305430932798882017179876862188360607021722799490853920455931189781378143572149347635770012392370481536385742116678257574671152681725397362632658277704601702969738649936444591455894042750326739046588750823080598120427164565724133879964996526936483948176038616076277376961667211487249828633011566751335593439223465397753299311604214880851947406819122854317839074158779953273754628769983489818923879172438473548930058379845733899885396269856195320478178611502154517631899478890338986136790439458482289953167289538542414884884489768818189670292506355668307884082917166903319588140518338696926388663906366009665757000583438724981375292865974012277077102242011685366978936698019268343725985636988354314711486050906932517723848882494845405882979625877208288964784231292549782034500611591784383780168080845924310077981960479095651908348573472093890218577707429929614757066385504032666521343732680948429348469285907461548919264847788985229169988101036141414821408589265540988124627388909508739500507392763025126899357933550262612127654570073231281041454242932994777937290512400008858808688301223914046332041835048885022485359269456925186304290141124925150360694543420908568469512907544722375287708544838179152652090384509861253624662350417861285953128546536339302370241887174219000615107526207241105778700853944492962655078337602986784930954286656732672379866714806381013052782011551311899876719744977890869398843914028361352267007404724542079613072942190768058931670428189161140726030514394505259812326868403136838915067270987425186802178088903963308082625018396795778548568739353154386981225265294815974110970758900141503031563097402233408261252872056902365357782962629210883944010935482504990333351493577816127235337799823557071682256462583257737953715244527839193857046548904885511772515480612483291038281510385887530584126712074983037872364996211182273040549703446153006322764576006173796638180271748642498241859265268717634901571412490631225281049644528950377667406641399273900347084435875722728257768980786486086365605255731534078536605459804238780723443267246753288909844005985182268938908818081699171409124923985072648985905846271906785799433977722733059934027833413640150106884272623920685516417982975111693446938336316489277842736107698151391778261483388910917611066139623115518018074477420166477081661903491090896617208386663946703550303930266922372872239315828624690980995259196415341733869245839104563798579921751918489840351995174669329963632102343229945380014304325735626191184205333066182932038792743984068578615267553807413311698950573443691630741346143605534980071599475720562287963587114520373897494011435165365417688754816133360019358411209717468188084822858879326019009615066264639844368325667410579338575437110466262685893908343676419103926309496512023631480307642793658705687524850883944686906486382980417890909627498657729414689214961613568940270070849855510469473362287212375506988027296372927168574333791937623586832777000098726664042303397762217661745368366645658941339738112403305172555211444724446633710254590337293124981089256417991655491123978655728171568570945429280045621411060305814104518450643214093368842929625817807315074008078469457880580376268477905794629640934942038503966308473469481733371239057725301076471496445446417714340982073835602461439123212634837162951333312498779220352496693846532651814591362985420960717119996682102523443040886741066615254164454299333086307472444945887059656764638206308561014958346297128394143608154930596644880592758029458077982739311530236018962984131668092988210243463434729400036266260003919332545481615490395453875807821823766402684442983343979268987865899716679020074850040601585979381748745944980661868731923013980179243535090450047886791739531895992774039564461919763611021889510395416713656717612799073898886886573021345110579446660166971671787177539497631070185029046683046878982900893239838192050311764605383273110370108134923617175572336259541454064416200664336958809959076308001793917495858840029480623300494494472302187458759242684575699282205945673960183520632030227778171496022464382363265048424285137946122260248532152261111114643206014285302190695989095791721924146811168835784783855521104153114173869939793390749983693741971806169029809932298244029305998387932252003903906143830202839735816434539913521957571895455950072571819728468929547680257547239530851549171991764509655163056551491488702207251290485742632472322300521818861473049021864012132364396825523421586909237303491362150437281808715722655644771787632840725509212119368799516746336785433465745135024775520192203359667170237705002514280226192819073635340754885076752527231119691671147983623701419664489867377259979278057982564184896797269312301915594168204002756106418486972893391162370874679332761215655235347127680357021815842891447832020976844471651619774422036375755792037337489557429040509652196625509053023545570538500494544640137671745225177985494526708960820404307483861405240086670350025485812768097691541172073256502100236402938990672771123232175607708257811133757737037529095377667371631229786433146739658424382891499567710708197160231359312651447683411781933470805898167862411126848309345239432751364296758645886979530155351139953860123413229165757176243816533498531916295243006416192620348778172004711901264796001106318376318623574621088081659286013691122000025014896560958143051037068905859115820178023075339595066344104189162657397460068089319972499001043990270782137187165975861531217602424260023140775718745460947303219403885027892370938051714874668052000458384161798792331078320590650870344315661550855945463170278396184033124487310326352591641395156145075238662337607050873431721003187578682914033518758154668586048634500356371896482179675997661378442114629738956528634431810111775334033738711044442961199132117296559407826927469092364535486647042438661882372460114452930708055588663987463478449624948184998861501971714797896577672047938887565508156880953623382294089436472312989396909017148074036147132124879342199543036894461522981118743993296808744844361300194490138936492877988560856076655677510220708064581568159157807914490052009581303215498601944597840790540165930270930444431606987646288432999630068262915344183864167648730690345218885111896221850898905660089574891751059796515002801254051987961864722768504216036331098112653622468155470510814111652998825895061786870445605665688007147870786174297326701006964237561848219167209336915008472186064471170424186463998562522465303410129754214395670451276963577382397287562528022291816606624389569133008021924656809960978545056248675772110655889288534744129579337540037490310406287332188816464367795810969074590606474880540554222506315096595104171556161306056155700893531844532183842579493848108220041976491730160521136952365783709243144363773427959167831171155469302553723347042700348014450522884295620316419566730035651958511626950455718358608463153292668194013466217289694232950011435202992671271268059644925301054406059406712851315655346285145575171362039198617768655886180969500133984858959587787555096125856503134792111421037383943729670781451525808763979660289021968901484118280864276457313614749481042210207754061475874382519099089427997556406314354705565343801306242310679707037138096961410108294646331747547011249575641021309840436444873450367756507216002575682600598286450958743204790882984052475380808118621899279036174503259656601961736824244851298712497583608485010941049688637340190438570902440938748235016229978104597233191187721971079074177272942254378213614937071739414750262190696694088065343782043371399257552899134775884965108046868705749480237763362725389108032861979756182306225711667301975426016313729657852469687441859630159366000943114700101502929593435513039830525688149343915894512643074866067419594581028726156367673944125101957172797775438532279089739567152404465788925537989363466507247855114771060987539191296585162165398938113770431610196463443531774041258202892691830784138165453477365170979421394547174211873930157653038785263863617890293832227374314188623489673484862369241435065006162369014277586920585298401624543309242321930563947786874910780510199897162853804307105058106590542699968518346104849706428769886719183270923804227961240735293372633386212557020965865941856070644225360639373155453002663849472306087230229066119139775081458683423389215165666803364907018257738111235779102974750432815272461274846212710118090200567324489275329445137912078255750407891783897041013155968496102451141505564461361589762610252056653382771034714404170968090341802254408455495218263455162630130889400526591455385801353411948458100632126865571128728887625147128653461708435306343056389485893038927299638822121977005765401976095633133857577120299324074464916004369296068511436391637967679749934308338367298245566588501401020020079994238974114953766067597032539236199310760881060345946741557889307346283537562296709039351434958249815473969152488781549658181708759236479772129426484668010418901138172439758845012549766126251232828209279658394130249579401624039913276536606107033780457549029762190881225396419102012947361430531396750185179840909888776955630176793287301316715715351898257278937393660149241612382091904686219232148027295353034012334580384826264311291147267762990416306495683524473531538165860520648525167221012717112092493862229005952156960548287330304727763963636904524514695750959919431362143881488283369868876483034807613659526582840026636066118439107502554377783018238969756289718996669358932760197019244384703292963753071251841256015348311513458338404403489845303493066323588756926748369889020663646825652861128878313909676452588133700526077455025329346854888165719269352421026362643745872638901816966028879666597109601645518457856589091899319980517962806265246438328665531054230095668676390625788855865188015502739269704312931382357294864616729370832714803129473854186194789726831761032307880999422180215971372783542824803348157129230888241245959305626583094477956683983716316012233047040264059385673108739714335277747505609050819191864695312639666760823063038300061268858760351166795848053814334766399318174705506516791990243277409639162784728853903629555186207135576831429661840139704097264996649414887843430943104270448066011902334308117840518322882902384718759356197598510313320589076384522418508069275689528064077675162204656431286702589849672765050709579776922543287743213261987574243325889693701862815232119537333589084842778646366702944730265361351198356402028707021182857001147544403642472381634293282478689359816399353302138711674854629505690691185458768257378876217426374993852673004430202235673563678431699112487807052471065736790249189044743540287729608335137777920191940402463146374552397306133621548114646151778205193579395963540722346064526987520083602724266932822650051434686668530872448878685132957692075544930251039937712199399579569053018869307681919781782056454562933947698888906560570150481514069664022911574882785714372381347274395097556644730495075668539795260648246301472127420863654400891889505902793192863554967120337921376908008826454120409683154076289547844219648024110352004525216571311171141599673248148299535498206042287979378987162984396695757608100185705209589249376182889207546611013590650090805819168318648059353768830849485259005782999893137448263425138281406012405052757775246988524811222072686706960080233940540894448709575973657463745913667664079439173748428800124331242279929375099385522462351275794131969451952233466566148197077262839046537083399818675767197638819635245461787621442673733082846628865705535773933082498128372839509818180926012423769520681792683204341754693324275814508391809712197610229587450444476716147500902110324870946381416559336197224198813628006751231357313128684045617261469917602130869395738132234052344771732785768227803824829694797658855893912100546042364762884645175718492818006730188818004727340977580319567528862481704903074933993523295923757846494411823353884016554198058993095534678048626524614401046481793998788139450315835931280606796434893294378818135851700977543285277994351153080015500232601063027833024397700454591910422918460959452558006144391056708641126655211912768765440815016550421253731530515597058496127264106483566002574112443346559459309185900232738277950620132220338781670418010438494608276123359602464583135925701991012155303450112384098370219538330429147449926367995761389515201790088960888628979695502019832812009332744633976538020905507614282327510705456695386073820392895697610729956098940576207239109379280186710228982410650636907302030122559392830115688357231313402395245931778743056168063831423271512563604577645186268246939097611076884429045435207868192266310688364582153937810771628093831170150463837795499018470647138871111056499842173659602493884512200780071234684468070837829105755210375508208284061171446501419319519272632439696161437309032456658484345412953793812751649906720006424533454804123008583132426020821843202493909911167024607854522291314421577683087714844537352661706719563047257193205285931356709667701183923040811070163717635389311293454460641245188824391952465405221813162014338968243077354347501078368254888094454698960355780037889954137785465492464860489415462286433813522771611136604272721612323963502537105307154778894913175501382847608110871060594791184186745262119059401057259628362862798109550159886796749269306010916384969270054373675751603908756179811221079058348025020516666528479710242453398860154236366702559900396416968940492597878823436992995909301960806659875821786044628020440874248515808743724274675300656327841590137534370038047265797221413347477240185035767766974043715654493886882607159991525620206286143486901350360840930053296769884583972304417069571726038205931565455576241726196517394925897057559724077225100829094824914948555976995120206306818004791381264635142276017962492637294029362271202290731746353744702788448200351136990293824363013040779510166174822859337332480075554398562685896032191086595699781412922159472309294526971227731469869174591190962172244488598631074770132658218345521653541308087397807497835494946306740265459805346972312887296151470882051349024403550300630261060727713584096147822499043234206442449075014854652054804547828125925188969680261886163482769848065482788323246366525925690320733981015572784398595064895076020198170737052841414585864992200427145047618266878494184777017735505367707948395397523254936080813346813451409716250842925612174456653131501948221869912791376555609521613018332532076227888857372418676174331077531997861612665369323573807634300984755921468799132514844992013490973953667267882536678164846715150822129870812614259352078156046002695986108699152300662518424550961242000763975336923911588884808978278065221165580994573486366329604007201946858041404881552460856517557770790366845638882692144701590161856935412968111309068669853821035075826394277630789316932150388719171104129916715876761440659621243898632169541027956331537837792510369780066874418718780540993798644289622271998188713761055605875862340920438797434030849829536114336156308432322301324223683072053973152307977670882500689004680307988777927716652159389553920173130462261528784192451484234881575399278107936840637208812212770905647244541302253174098040060375200235863648549886617590995918294956741076837210955765190930930511110785084356321520629204406648482202710581374606555643180206251947988197989994587120573003517022825590956010004627416309256699301038363061409291302001785965515822962060651366866113563175850433184853926416855524845905733060829220651921314217734220577780381877596689141776307708609534077049327548521033014922158531890194095806549360255801421642216620937237057823081084287168793768548158955876175616805343345413005638565974173026971195731296624076417059351830662328456426776312807201333185164402443993022348829570772017213248869962290968954333149073383295337656733090772544913986544286840187188783542666994631269540482370268494358361133127298592029705252171555811329251391418497187860981997898184321091572567884897453154144308889001622276320776053736655049418140027127795945361517907087158233336298412906999467340136420374706282258693844560736748207334010657565168196404413609552345536128887417773714817171192311776710664680198397883257835582099917427122025922260078768068481450015914857013828053013902692127245572175989880182154677137085245308888144616866108682620832254822154474056365218896699134383623072366453686313693761310420216443819218573280549249949611199656807777501648216643485551599087164587746155669566122771293915173679125662180302110560456295280422709740128341929244166421401329327483922977032542255792777539647302068031619134562097268858308290015784099125495060779805641045603852146071310511650945323678518308564609364699757665066679443949496602581802405445173504159000429197641369756297687479270957202492304493186621264660793176944204660125756344458041332088304062356910935033925827592477659271298259167452607257933540796885944869280592442635712470291620736915975459202910569151901585179627233571132418851827068573794080924056478051550468909678391250390705747055152646282336075016805636506215178717765305235791253194078274111312439022809354404518683612262910372462553204999379725218353112578265022527050571800027642357457189543920679645805995489370486040598680678194822029806880673988322272618266451005354697505549871810052703898521140305918979062276249953045599432657071049622933458773577247224843897586354567718743237332107660022613106778439304299435190963817361074552723868719496610563801340998265102075347665139280058355403366256588349520852213895273798040058046254977854203685532213142569973439070310418946963655684236934464209300745513708512432195375930122266472969913558593665144833912168780324458019844945415298930133091199759117989365335327528776226536226200548936922775469180799585325132536976541026579902112960915410642816137402161208543787878694879649833899990097348434695087289905696043619187531702395403649279524708969148323838279687841346881993238956467622318783579526593591805930499721848997427977466391221939015802915599975870986991746780507888683326844696712228480590228002824042438612262961558674293418780455113557262022312012549082441195243747130490384657904764702572641534898851827141308795925477839593546392734444435947908177349352856442704995163594355461142820782450386266317857203185523627038627757355239657664190613305819741929685446102592437338586328159714839089517244514569414162930710459254513205321576584105210399421448670227541119156272021476805456265574116777044247526265629960265888345746314280706152826458275416692782506212479195871658393381215285376217334800745312179985288562957985240042592644550661899014129905809607393304259115405443325378786594657683490295677027859094453611657830278887697283878719501995087520059590240859783393847266184069141116029104907936409438534045828298136528190956633875692366761274093702407474058682819133715404527867686702035190055838771682836714577552963187191942135365735847937339640582494169648288553272400373980730410853307748805111260649855328566477315417233002674833646683094309069061469634188937607979146191757298696307239477716995012549370985506004204246283199590791777176619597116902068427913994548860259303881158034422982240348837750543664368922522318079247662342033753161128832579818532905921990847364020936636014780378837078077224614143040592517598752721388538059999418837108711985224149492228916580175453801091657679154401395809149429693577514127466167467376264304007649306815093252059374359610175459098423982729429190250009156882766894992572386244001129704465541212301661780546299551381669548680939983885667703179108893267240236640176177984658074657057212448467815249613136048189086403487034340352524481934674728571375561078028687169017236384793113085928972359862024866477591574863636462063468860505656857382552093980934464523047202389378203415566314347965919892925226823367782600479806636574665724209442245454585219625246432567874595467996283416103333196324454912110032746378911499113429073275987571153869362479329336509883963747587492520322267223280441923259009112454233052104614607746910743261987276165887402095177851314949878297487074617943786546330812177240695685630489908100566386035133924478603938664577111102107279566352206014902926055970618477625262734081683306258302507989340641404504076232971482185051196304074374883083038277565412262129888713533412147225333572177125486625200373470984231765008726578801000498417048751051408553474552819609880896265902182759080489440284793122623737024853236012764435717248331867186723842288025718878940757795593984514623971597833598775955436975106669585047908082763733993160928678603609158387261044091417459579207328173720442943845746483492072463746148424914166194645389492849795113158673667201513554589186728351501545110495007740822349431388592818896256711474572516216079897044704015375926607316651358328124283747523804916627727591663474374764329578483227775210232810872827641719278474889013195836205778230749481876651696126017181310313502898911955785848982559648320275430760965152843329251892392355178983031149607000354370212820488654117987010854530041531219685166050177028679412663013294463446924711917929443478591232317424978284551636248066496403643695520464493801991910882166573923263544592388894125643349066760889652663467058522527699874392257813853479626037102784099613624339793138970862835878224151701066879497082707049880223896249883843654926664263644815828117414699281156755562518503740251873920409227812027786384237472357441479344926434332709369571413028053926753029604867886267043048302368802445604091734355478154789706300579396079056365031263204588357370686721745929626636280957328069328549199148285449206143887388784871364847413690735926367278015217941630095373725192368345044310269536042678247044238559785772752677933111111973621129969686814849261850547334191652155706533661007493898509434051218398953084222029238425486005688778846810345369484352111594320530440049735348512136693633929890988191121208352042664323059363565206500559359443717125936650932660410468464602974599909417715065000409519668827690779920608855361475451726491040026823606116878157383755047939097973366117100169418927265381210799631867388779930953233439659960789367990122972670992390882084466151596127561853838553961047480764392789368547772341088403375203153898813028487765425668199696151615285192284412525872296539337698250666420645267450764750995292040182651427315133280474451752847343250469415393072583134757582213028895773291388133648535545036892272941907003602367395387183463232184307199262079460286243885546739469180118389898373152861119883894935107970070124623364261870974906522824475474850847490661239431513443294586640186946617157956418059125442596019867622944509042763366956450459064107063569539218276368358937421263149424469266587953688569574085526634001407797068451689124690942255249773744055223677091371419377731037971674415123431251105970907849225120076427915864592242188496197298774897969422667164353296367287180552948145827277072226997439919303275357408669500824844795412768908981225632172611123846504318554478780798377978505635130270778876499804996688115131057441209853664771987592032638961411768981725306225091067214138358800717940334721626178411971650617866779106117490601930734514263300320369028476452783069077954360751242433470776453042781388730671372061872044472221535782293050155732509075576192853173735045240981327760019389277721509300607879086708323176776604375879440591339114714831440106277073558388760094306452320178260321726985287075709740875071881152584246541626295570907021431417235801804074814163664361306189652182942076386638239210465300012231902281401469544176593815815258258452951130137132993419969911233538106847624211329095195305453461357235774545506128767358452040445443604713881366640905908996327496943459416226475079165785488094809046674723304720246114419713033692318818211825588267255678882280294600882343287027681020036215759909454959293042835528057907824000600561417799632395508030497468612819960826195558651422939336492757955627697098480285462260401785184199718234321327931147453139025274895438520165526934486693012380425848324002192636358253300685372468346241339391262375265315788621799244163878032193308054998695436326362649289735322699518265567391828471416660001206982133621692099681762484046990065764595337141561881092964533779971389453050525450797443270282468753203808215992285671388202130879667846709601585680055656249496607610314776738460558985972561247375002534113549308972637160545315706058478580482400050118321932009972207909787668119975846841595695121350156614801742489487198171621476471159709209986855951801685926174703556316950300354845864949946293928730187534835830325145376762336729798735520691675894357903650088081094970533716051437670245965898758288608993801679156652470101383709523750145899224673301776350487284361331790728819301514357071699234321831778690147547040130720985008586337796815076191227503202770003023578489217932280105115552700205291411696063554492016196926070360911536170572336073758625228247831182091636311051935078275754103582556291673979774166594706673610022267851626546689284061017515417097999569386806046278273273380963851594961293119244331032146623154263524779732496830402492435849555259974126643960398801716448399724173261540941422878947468890301789546842506940788835605894164326372769079260932680358308317268601735899468288511905713155213679194453003806296144793540111204123329516509919343381747353625329755879979887667284669393305791059460226467287641797639948212509017332606631882944687215114538492495255800151139692034976690164406308752396650806578084771506622041621933192388204269746398935630710779645011108903477049732667001154437955677774369649616134547178203061447625248893820459384215030025665419394104481211923796315121182367128304474537435102711484901949751754831881760701056275776961099565986053643274402006357586768107033121965140384364261333482320823979890961233980289929639133678548361671840301754423011708327040683278896025960666268306694126891117573526360073885419974636039481405727252594703826948863112709409184312716076736746182425122685371506708017909674898283307095095276010153113140300407690520642055877700040494731450613777721708494349149660239874293565082780763398519525288519495898799974342401469707690802221983222356336673750822174509779538076517038633345530704371180802877003730991564394659635786569782619736156202908723845306298763544812384176702423363263222209614237217728723402397367800696221656471518330473628025606788912981865685927829125645202719527597853430216699944237824587875906613525868233999682620206255403235105830190125432782367419009387996689098272863955638175040115600441651265466040765213272855993758710074837968821592251579759435746773506118820916128046083831033169830339908138015320757535838885759897080837892322035143759242104869366302215783190077837766101897995704252684523754147619561120694307763113018684292925904280481698893524769928008763791494263618126714495833874904139663742242876151237994878165390624328384205666987980478522338643587211611613204722290996811423954680617398060065563927199386526475907919441967615230380674583731670234408330455926392024291943917900665061797667003454101506035502958535840736651510383439759586113379512183089080202111781405873235485719170197105099362627442247387639744098256750768417867147576744368075904334036398716409958663902270378549203636244447117983341534956915363755616245978294593028065936051560023865568222098381225726627067940837843316431556768009635167144097558458123044020858934932097302331667958811338915443308481301927063880422226997364191367186494839200441787800705158159382631353429085558994757417409503832091266874715161397482303832766564281616018698575168903936389867508682580336271148468263153679988468941983939571430788274774987324039397586921351350578072200000628586356811331797579367814905139783942273497042583955524882164338566242509224425685670063608466313029282215951341633789940286690865150171305066875042250682978869651336560397961190546800224512165059377864897556979094496251486976477077759455829524271383522657096176435286873410696699265667708359849714193956007913600414804542434851383198303083734182162853597922010230445303702760962595743636276849640278481549393156322071731256970126943365152509701549956857968515996523807415275579668123410378431563111854816281351552877129669696543930626418277619655803122247702150323550756394012674559155204149309292098221788515301498154643172100412965979556431166195080192088105181888622502854612766275251053134312336582939827212615880447404849407532194352648131586872150746086856419453687243066953636503010669812682481081824448784287492609691376213075452854647095351304799769252894228587707101248646684991655085998801339454065997146860412490052135957115120814409821018975215800303140899983828051279945502594335066311517087144090283136760043585038694134117607296401945940144703432868785845271884805642242680025940493959498822603412608852860076521480153568435493594870216862971648052137312855111439147089551943114638523163531152171838037574724641136065094335651506770874479629046522842332429875486696086344247009881491542506498895906186979742388776842074817612882196021169553903388004116568999079867449734934336937273412798270342560042089948954257728329621668251687929641912636725729319975824125550792202178206719497347069161353506395881049361608835656181715184721002947630350981083565829945731056949385939394056192942435130935804083517978100154347845897086774028827267376810260295146986436072462527315681806692538934579163913897927048309002100069902560554760425441815759413650076736019684814258977168086428556899841810177696176929441304467684511381368507799353265437225547384171118864851032211527086203351052931341609966808909739453617649735535674935081892741569254709462367253551310011756627356494223950897763149666170652829768799701741562299364373321192811202187582287229999294400112220525915170344336919912275354034400326850327295975871564260050488670622938713433039986970921039517775814445324932694716941767372341263463512250831343420829739167171966585899761313191853864713371513286434192154383975453923779744321644305300715384943837753668317052680431818227616040968074770921071837858210295338736441817604255637046722270460143549549323671057292168584604920777901058400217248148104249035434624766487013622863756579033668733945089934552944377192392656211721267705551502126259359421763164094308267546152792337200924566504619920370284436183214997816844403961753653251464360126794797276544856132079121023755378679678868276618068375279784936969510079610275659728488129002977723402732170617840073113608767203187651882201429631086250207181703979710353607126582153623081366211865921131470351823348889350952433020759906284652997294349922829472873729630494047144252035590117985333169390075544335517004451711176569158624401102425280148542767031368419243116054236783295885127745530544380548517552461131829647355845997320517098243164394105030527577371947912608026826989408658093750249761718254725050233213257651102524245862486701717526244387587588635985881583827331830512245340161452825338566416756886004050640999837757155224207764990521476711991153408155510871452492189370571791610694269340999875935128252066591946477318947858899938618654949695042623097246270396645948107794324975166586088496569378886101577355155926680468541140379119586200809292689567039040504786376888237870881586558864725394073356347191658273523180833290423352844609420846601737765610150694488489712700529485699611395443111212430396512147955197324358170742734285243681153354868186130440481833805577784258509924359338284223603056306823473874222766927584366857143524434178774465023629155105894110449065449590812500293686157488238902142124520109841389484280955597274104098298747184578690355975645455894939094410898727671471114788820977359960864934209974063746534785943625061169218817906899360974125011997561622412409467275283141354145069566654846432112091187535317611343333525223421160202647548783192316511292908677359789661369872047561214980436420437049040692344970725012463487444576716604248368562355412086286430494942290404896496590036511865880565054627744131082631775792576166544878442028076159735599279000829714364741719805386703724721422779005360310349279093279982065929576179675842205409809116316343720494641038713178478660575657581944544056246409643661133075771903725630483062710357750736809751630266199272428057411335374563472765433354667950982563187049987306168314585838086991260849714766513087771208353933822545524980394681019268897528102713795701659434479331522821018257640078021860295516492167736789519254520423760485216891462807121524864030707186035844046938617209723602899361627596456461241766524060690286503862368330197130422246954778761658704810706823980463319590568241567846008449618688220152267373505349833079980990761307817532519452252095914812225205684788152744877426907737773521750695989678329984003270001140002669368834629854631540734913156915788270374641051829336722668723970606961777918898817872978100960630056525142828478406636175869246737199972281071523211138185562235687312312276615354591434929906771981640868494805007472660118371346043819752951309716010091533996070039885160647274262099618724680290063039070376476304751483914832122977032987609896187136571038210222634564999564144999193991162837151938571795594803621782140261220774804174344811823141532407062667315433410294953637156867135439693777696985367652013393300990857385651168046344211401217398807563154156710063365153464853446495720015711113003871860211648781677599756416918538439413287472230860913054190808070753619616391510655025724385130360896318036629203798355191968254033372792816452659592281653097114850185963462147751898395141472287695785341767160395252910437773049145748379746815853421654716895426253748900417615507936151100993636290321467146523085014099771186185990307964748620491468927414738093819400357190311591355648671552079455819758127868180113530610724794225597757158445417041782984220743663023149637912263371338476225897830994800527025560142811698239444654180599534770454928262281560190081158888457958335275460070132817853035439966503432243466341347398614253937694846584714695312806725534835330535138579105402588911354810512576334749961184196268216124864380721652194142175908511162421432094349889995847431745918793695035432846163637881847149815893530307662218244572156679047580679500609649598431694303209722868029230357203637855061047710622326746978217264541509821279716870070296543230936730970599502168713689734231837241059337646745633460488180640731772237244114418801239412829405760600473107340379785175568865777923981370476604655225813182441862006551900235215710418330484737626363513146859741209544412259845911419127345101060682364977609368127889295994898128540916310517319737918004389038592732603884550604536264206082263341855046863755305481912718662138129189122257381508799010790840060042028611405861131407701083067219967706052506306573054914574269277034863333174712254823582492197831876328558670097218814523485819630549181235012618434929898927291490879733459605695081094323027205298194385482663553101137242067239592870555726615156709957424513271238083620982808142232807036272115576122215882282689185458466803639716428634206607473920480817801545881942135009478325960899929430329043365071408972682820934060666110292429784484056034020516338535402175542345029518024344811957067626844626655670545299093496076814544008744831169593549054353935881970748008505470945108756922697042189211438373552504250733897047565373772884279771589854440039196852004636649841357697289591027482228727857606779100105496608993395912444234947442957657834961873962638264510062734249964760924613560407454264065523274037544857798457560295708759877888186029241090032521017489038128501550495489403607434761217693782416735845352586157365074910740222419346838164286703294434061042490251537649376462430717758646013384232919768733728557959953286042890296871939976584028033464964165567255312170744284453422645490107715582223696998210721060091274048954213831592139719761708792969789744466808624232670121489088272790884464785302063364700970952124787853551594009960637627898884571092663185554655400731944615442888678301475830645668552342259048319847124391752753134454252051419254792613141863981719348591392804563222338192336960028095659713964042478907084469223253992132983536858570052971841778966783009114081134095705239381628267649966509229444247974490183959281849880697414653703427409276393507328976681813891588539070296456334681738756927483005672944989261414124414332489079270472914295808159060012838064209481682388564136967151820033885280612327800135295933226153144991113123037727063337236501154671017142893532296654069859031053372897000382190171590738824349745849283530839555581544695499510766731919809299080111835368181204772500005058399415176341940759968830188275514937968004674191703839545095075449931425411941472762868133357210655916242578889646203321237928145854352308522746615050598283728742524698730072752709478357150535389805872569335612329500268974769748754057082022085629312548880178319944136961484265837744862675134276045412216548906895808301104626902662488505887368225373709014624992455476210955289573623431422363437883605652930518516393823257247316365318674663517691128771782307628596848478186743847902757002059651294450488041620185230974212775984794212823060459487614401230168362692515741373639523559453884372184378814191076089416514305875950871760070622265105898524338234678613526609656676125964295386883053696278447471962126190826880017711737140563675484963845630549122055029417409690266709025204772933547559718367186660781599612230260977249657676727563456574384645245305138146502520979961697676576526213345184513338749893822424638952843774797857000248062618234602004020085933069313128877827825463604526206585242092801154723172056777705308500139872363144243845175577074488516217969412280113440510628164847772760732399504855409862976432109143133208848917682575763143210260444971887447214333258307452945584287938920199316993431539886750836940813490735223567169660736409432552313506013511111956928796126370311412261146656145928464727193660302569873703905303504058443348275065683403524416105172047971635190431653861484818577227156241049166378779329423887553140005427479832455737782385325076378779522399871393350222921109285868089214541358949209551518336638837329244884500942063391845139515974954838481106629693229912343536730251297337908180279181719246072559576523751443819685429394867375892753204084791665124555423755558234803231179973719524036180238477222108265156174572121865608313950091407628418699022115641199547413988752050865582462456399836938969904679772224655963650452359910512636791492711123355089042775726773223448674941678302908006535821511744807392894061432024033393753164544175578814416628605739018632565237318617091066691377388152578945773544051660840414657670365380343011057300714043050228279966086297973092009888997900168171868271851562424344368928143568625170193495728568168160294982908510590409250811409160715322202297158478400922379134155338791888688843015653321685724324599082868791622031069536202010743452629362460717195503350447848794677335939475291192226154128435260143910387389668415640231183350525974182266919595807985194467263730839741676152583936579485780373713299086317187175366749325519486479057341346603694113326991811825198433068023867539839443153980363640230249472091374443495174131480718244215083063790518321371102920766937470866840331168909719650571610346123895631262337876197148880073068136313564400739760743744054155714226401430843204223963212164382057551806556070297301550630049535338761984076019727796199729273436892903132603880402500038913411912239760679738662884950763940440334034780461979726972194087655105643799917416992970748297963470970355677336273434511521919925261291123496029812038913137229305459236071430513581573363234668483918509807795176217086599123192436164347811538433484165428551968696861029875441339282814471482545207523229323796939846475828016584489606973567596366043547196524821483164231109435358385326676591488591329144091058674631465904716030553096181032557802468894745596838790225204198326718389439220564316668547864237440575091812190952199567525208827827391747867088846411992657880062705229611522130899243741092441800887321454713141271436768331493003174192759255567833346057485964925416688946579697996060126274192821919127850643264129985616226639295865933187339276368912915282263017888707171540839895495704837547823716286581538281707652607783485786594820172181278699656124529763880295296586327826531131498491259208451805753325841925047671984271750856670451331515159434171477555769926330796236290571267336521434549414257661148996485813299829572941804068680717289682794112387917614762203711650252429345185002783282925689314358113936733984205783342516567172411421314374578992995182069805803182691634279263053093515348687158254548189994661313687842571896528566326122925196710930408875959942408077071463932406359320487577608873418066200899383921285404959678913556888825727939142785179850994442701897847081843046531342204912444102061504202391284197913587009056806926327532944759431167276677347075953203629734812548221682775790577279734619233981175302071745219973123408655196708227339643300471423116677607209271614185803246902903955901933016269223812806450128838569320993470957548449113446082083329383054003267183663545939365726094747954471107448952058906354904957656712470269048785425088728088563485553486671998452333120162897000082460611593271061185987450900674491990132652947416281330274383403498500861468165632718022375454913344407126757696628442902723184248393834055815328889527498660424747530196193435905401701856626222299359799308582848489031379594575199093339425827127819885243567383217512398994768092869012808837083042343848638280199419235793933676348711174127181333135231814755596330338450205476367337967685027194650346331380020370232434022292747695630591989077155732230173073000817998667858303364365819426880084129009040540279791795645889255716954504792938159102119979653636076992962841889583636284072932804289895021935395553990948154051960832539744660039617429263788440449977438086095878371590181771141732286438787552657329234133583072417046902366095616675521864783418616689879888345019630804544860741505612668351621469788716362444262069439179806918360263050543055316765058985331557440136010460815316539034484279419039959228589338424387525834942613994343648941969366741339318403254784934910488282502056270438388621329683233682633371942555354950244658444364652222433410841069792695046232641573897237796165550867520776239212745510156540914525619759416323801676132892811872411126458533703806629336999686976158362641434340251527311594757509675506059148431498721395881458197414570140840345005559926918090553570618999003286299105175832443204475285965515702175461917230818755720516543780379586904291824864281092769784359917786600073354054559771691683370904500644087550484776640292549633411162509601268824216996382332444962812508168817751899093721087955686190963256895386103438807657966559412962432229198796440705363455929687353073994072753269289818165471608935183754712981920920082541531727319031577552119936763412536665174186194843320739999113680021216473548286191758313819886722047144254918371300290657114232873966628042550532220192657449227691256090509235688901007737766208927784946077190268454777517342897807838272144925069335570685951269218773295673104000659895126396629445977319981921193281813396921989087060651379936105717321578810234121889561419379752033599975031471364125727974187032948353055803412039269725279351684517534573105324832228526180070705668432968011714958250623816140870459042301901538616597383760308235754330213543056338758047004064456967590565555237625798382747263448369200841066445620525236637352173504901485996837046917569956993647320978668730265671309061268649515730936681682919719221657518165105961381664610997253309137506904376934913391066786029353355611508773997216254032229261539510919489391553502093716860745560790156638686555750207528244787501077303348606367989627403051530205740862609886837045232009251245702743122384104420501178914442064537198009674310939583513302422525383846566109603263058832762270633938607321771548751189725921989906414809535251756534244050372430855398215389357409991826884129230722252113872358600428189754008831318648869479282243444679442909045983824011110771372359135515147148106668238749034665957181898885389927112971276299069989032880230092497561827064783905007189239336979483267271536268107571200948806702085709795046209566815335396708762939906341441916949846866502009804638608870899902916965300056011514711947360827856626049842685873410171750361807551917088329630410345486394441572716365574990230830827975451859727981860100898561054553220103717879024612723451847791750313068375532975674586290904038864538855949411324374499233148489084488800980317290581659427226920198599551052490454762985579227315075973800319339500750479478507069712615586301062771561425829759495278223378339691208041153997847514668982110030154030474314688247163314478661025140183962177935383349431274235221186573683938349912861218260994792262066847081151867672479273489389336050448766710642351625070442000888022726336076878950703330302737418041567842913706113137525257542074818511570217742170388974242017167013942578406136266606782943864760548590781064030110726354812086015607996848528190652740476990376182372934193934798117665516447427473968018680143887590681131992637636313602919699706319374115709776666268814532608676796323984167605378142172408736552163405014720488741497211425243908636911227464497695486839850271081846814176409737106044432655735339207565543760053085139168721728698280587589531806273246114538566775098880282472608346062174292815609558846590826190889816263914618491181962788426454820233478763060726020279672994251633038807939320877150531124167713691792336785998960341107695055763971637822780873697010776693847221607253664461824524230504176094419239094670275747459064513057339252439932208993899713707669539963218774796504568594078438217087373323677929188455575461671050541605701748620111841544623289565193268143746499924406982157859795571725168599550786098062604420401725509698654973629157930364292949779468934238383695037884229011737485699775298303192481969938613323520152200043558607771931204978607371813437071434333949406031757663333482964732980025859187244028312220528718084269638308260000469072924940445320245832746455028661881217090585320842537782874088386782793831568964429796472167753866988129356196968723592284236624831097708198083236397440770491921982557760811586357140047787597768575219949942568232681958506578263532086142666693233146436613273307584501752104139469598841226330822809801285809476552605130814202297660881332029100610392390388470680195617600413260146191239155189634408600726057024977364672751913032214915329522040993080599273659775041760022193694103070452604827964495135557225088168461976906027368495921506963760646172905432857266161041723311279610571564272601494702683372887072576849306740624231275031073904888106882414847830535084386426029419861219144127738273362985386927127572971801815895557706218045937384836521815217847005705902576064932960564398291949675282434228625830358385764191648086530480041020549799468327384137691077303883384378747962894864570293673204470278402448191814695021775545056837112253276157266242539599489319680686017731625977634634409505141261955223530997709984981935932006450426253405022984793638949484233908824134902649430147381618942327977389106936451478425390296729118802504569905035426173877850547105485015489746204968397998973209035373923524652695594186454709479276926965153015140688277101716498869712232183047233416431129878431305039442382614788188481826080983393513417782385467071880909600942732130070934472764669228088438245412062879213556623877772810681701563724701018190653651282680795509413897167731393575598316552748541599897049127158371535397843439500145736646620267087786497318199793546288181511746982433114718335427137466766112584497567365150495064789803771459059527369015625207349657553112883686810845881521021002834649176539859306940706882272011558127586939503597829136280983338115726970507566693554829371636710098521610946645941479979966117706214447473420867911275659675982649410783182881646303381117961758282598834747871789604789108660274369236028968360946292060409192671971313500519302429515940620567217839305312167394568849062648097222740049357478360985929230150943170377501923569882918088433555896235534728868560271824651596198641904514277612011431515263981106543898614685741578168644676245405410231285093802927907111223732748094319765498180359992406566532814094759746050574174059172784572342811662218217659865313134388814064381944174360872467229341647910348665861596056700064192650005704877070056108747818240557356468450500994504157980035824939954910102044291227501508877236205740315547474764086000538742274144645853766657014325468132872655915257716962362963672229944162316796385694660449950113609752529253089253506389026305706338132522735006992223462822301069352651018251970167938960366049138831923386526712203110785966346618691173901784376129931099325711396689313665795392967559584762329860832330142276750171091409727521353934840074350828387644265388381824705814982498959054071435170408713607148999604881503422939538280888057277991681186521932338116140855134161887214633292448524882939409506124399175376101879473654406317304770858590507162591920912373903836858280669123576816004045481827057027073909856490774231983640292151193293468143797657248197505338922573546518247022806688587543370634801331675916393385373874348097463169891732926629013295228447187427131884566403218392067867892140059517968874083612219116335382948705640516838002285481491610356986210131531513725535436497712545301970075904889466600083600742575186290342733009030182245007375556556013907634987065269881469402628132383682101185009371608493377570192890631491493253791330037775355333457101046896876097718082360688650146635763472162535815199323462569261820189103428092625544639840845353820362139338249779465462698027299850649413809670540533966468285830380819411934965642626659506521411552401506012492901088150667009073315910008182198020994936255917899180876565828757613153990180313864985601957917527700769875166482126357838945967886530454151581822303760490608602587266494043451304505577843133475360773217520707217330529635776409427993081903845356851225469336212459863912091877450992474216913745608335679941280635742606912320010075920273550599293987613742944797144917463937950132522781548391432027635474425389272350768976479441558487526018172284940134925869422243779877716390222857726583452595101863725140631416510683890439730736123400747759928775591965558357749450903723248149344419903749070892390542624484782330113948139860631582612675559595290829144203578967789046108990668974088047089124313541555183158951420893284119926065888039563837247028480309111274378614775788363388355558736376726820758514270845836315147529683397002965235553719978205364322387272845908201997338103795432903083235478549007326096295647793930929472946930561934644182694245830493767888081726950193715348180059245303880476088815398251936251167932368879449061491961445767579801661380399808846075962941389092927227395714732388487937256789122631091974832903791391988206943601719327597023546611192030476567627966331199996784429877830826032247719887242097843744116853906223592955106864978074542037564944666161447309616699228544474192313173719207181481534767944142215258285078906529174028052436118099158516162089349589832407303285004864861382684099291172023117259808334080319197202743233455918077414062240875418664171721096735400449646202247461373643229140673034884677994808897821948012694607995231967742598529403003912537537367357733839755626295624449376007445492464103871202932567478119597075773240017621049461773278858865064272328890985730185117973122468415270216967085376633311320033579222373812497316637071619116425331290088323893370633042743033577777165320493538668547272202534583163060175914785438964769795598602801409593443114197291135744839511798647284844674755817487338866202966871025272990593003362701313253611989204753644724451694321913229391101042091513964885888005747469317664106173013509053262165931973515985545445958672119714665309897455240661383040717399530940092259306845184341120908392152720875355191923410976350951128817496868239938657087895233037525604202524731107674284655980325000270985757871383308120639144058704480310257341120837872581616446824829761319715574655023674568802882778897107868441280466242562982378673422220650867538928774953237559240540205992350497845690095180558517247816138442748672252065809411089251616799822571438843132672904121867584423166837033863003607113783799706205682098233980013980678528695382642383841295950378659497280776811330326248177085810071878388489147902471927133764916355412331794579015754798478637086321241421546311158326212623604252044222500324997041161493592503415741935222055371424388031220232014990665346915293500584183622131111566378876808299593545144629920298437097763619790805355098789977773899304759115271558851694178991358403992400994106097244370392057850928598814041182325148004180080569095450308439778961333717514138387114550333510705674000471525827274146390011124150975566164998297407086388677772486707986427805767005364430551912708264453186808375515725307123220125303700869069491378421655271670327124902552767249230799159598590857133325794617957469076652264280578763316729489757773761004109271242110784180242748078802423851266342726715609248594853875091691184777690097836528615939883903937780942085343869087798692255844246429546098551414718720044751389809026912526517421121010561688229370991419577377659989523556769697865183831715565325848565187407667844034074520221044627757695931625553380891386677214001427480156376498723190009701385868230064328227137959781081106768944572167897237632680323044587003794717469630405222030807005829116370177347832100286172621479329953859529084315612653046570748062673384008185559299215800515181486628854168904162805973225745707729010694119141451601188820110005148731136321407388044598082053710233907404929142702891499192077086757624535469184306436137270401900749682114678023032450028624319646488187550933623907323529661928171442622943680512962487297203963561868574438342680954891187499104748190056974030649858264382118758599192742487760491301442771335829080734835430658930177466340082872561053099856865028788774075004258188943871216319218867680750784646524984409702174003492358811879760524041255145799454756191457227453961800614167030004792126238735048353577317275181927952251586362188723764954070212788359678621670156218281535522883124610020273055253471621891332998967133198482346777486702112240913005811906983781183055320312909100292172046078682410568780925216876823195995096878107515447146402533020533828228857900871210150256928862748047430483321872255849797110562847607544980938753274680882338332450214358028445544376042103013742510009349808866264961639409134234288645303521581061506480102008371834821081263417561662785281814850568887001043731974760809548943414423176093467606956713505508316116082721936721372848954022855430605187237839900880410758469014080136093607382421726238540098206889322747640338755363057385035513777881002220072644002178238360732832143434578518270420272592379254453126295362763605246480010064571814279437393252652635949614948018637118185115518996896227729456168189084606198848314567970854925625409445277062360618581745334490596872129597396833449417392383739610289216150975876982514241170615712146097475047071543508401006415114538322096463474095940910295590831824875995075004187218483688896599002107779285691094224307583923479702110842984100227301826381951328746427200354534171691449685243122521099425325129525876164487018798653694223924550861675180401347839340598481912669875223176991877918315714395021761824445923928479380639980463115309539095311688638596213472994265858965240712571013621002407277496215123809065867226879861079527421294579276692061413828467740443220819715719358998633734433710306789597396308988440718103820736886866233186254877652972664202375204844132760885304846769546834349708793054133886301643007753869719959659351903391569583920367130373681801450793297211009386533479132816523562293478045172892590357879656188029321172754252752178891011558826898862455947652848835042881484100232204264826297385166980624722018913454519028087264521900126793773909686989898376561160917885325844751919357614304994979181982443967005410224800562196971507511955669629611306196882282585985179954953902921806254801149940496028930854431452694512237706217236635571710859025819599940061004540065198461590079828139490579531743753539494107318993339822803077522875677850590826151853605812976590954933686386677025497506208981142531409113440216239426196745406449096157882066111115205709322461924280791522183315049908849515346150733308726260976629805458972474695244656082861152411671498582101995201338817666770702771581820764040091746608893568349417389902833707824014195012121472622813932725169888156714275299922408136691070615277807378560304979333262459887796218693598431001617223554735426308120006955855216019441034160531311424605709087270603027660834402939667655616731677329724874582663071836258267951807098700792618660314894212499571540627641869845119092854628079619959607283292054366449294576541534561998683734074464608241979769674564888635785932192960971544113000715591938723466443291933923876224934033719852597288389030853766621286682482714751449548707292658727060964130801921902756915422108660999268223348235806764286536969976113195945866670799118932590480967862696449964404159243357699625785249020905526977323591262819299928315531458688304861429329611410036114303815846445047454084324061794701272368628865432040540642340650456102463215423716425961515792976586650027312643226595302324873563023716606404962838469996283488474386196505296455204210477610776512292430938524603916568909021445308706981991877249944107008962255589732463378290305116668209431240800090116130716801100654758272682812974062733764629915483170919560028329694930280126215895440171490842257075125449922088261267509602890196670726257779938267019778048709597097060889673264200240848847321539628135260359056949232360587841483544504884805237113571341487711960340394231503465160106532793979692166864562171608230433708985915942311033549114510220137852493384928948382198301304016214114555205013472674949177201355361512978102674701273758043018574425934184206571290271580983433726358221783630463492016424202006117918633514174416389681490315276251622019036456023980124578020940754970715343316699064225955811326773705693566382812905323577691310020350818417962914519595969625652965901831062806568706694150803759013390617677827880365668816318544425871532283394408699057434949895947233544554023588984536826472698514160327480363005059163720013131180247796709024243083422580870542415406429383447795821631179902608161941875348927050257943713096527108586091930872043228304682461895869068310270412754086624523327618967245283907265908314941358616296793526963435185569085061045369263933919935706901668654107668861772663370749701791312832066583793054317904313131596325696638711118242661667067503077823012695733523186010220017835028544993101494203864524765381915864527195299850442162613729067568664193788078406193209516386421537810257456338696217753538017347174182258062404071140578162934506045628907484157590058429192458297272856095108217014709647368564802502827825204309189510031323268947424501197473220663196711997002509213520862593486374688661628979508400595001366058633064504914464006288466827869385702931799508909891232534526348519937501202496791657477232239862819126984189812049686722230985563466149971122807732295562196254042872724804707528272259474102241530769252080313145970198862887749047912337957679054071524430495356270941502986200492375247698852854541327613856618876658932192110650025705813883442297419803263863500936749319326291880414750803776486767667294963264555802241778038135654522715783488011359609418163402158888433702423119845156025494151005285112078716484065802314160205791578040533692966779571727193842646082395153443662258740537375775108588153207832165993750983281708734939324833904542297047569142717154106808800754518011575823690485925754158285975791788691570976775393306087213953482577944321108738774837371266683873996112934563396614227098360748882670674252483331043255401805958094716532349305948336332726514883894760510552488835005300711135075641524399324799586272509689984889016056231302028945618350350330127558844441315693829410931178350323309878470470908648733158212307237161348982896184156393903438568871337406235767233413510446126854787785114109624201549545325061207349245456751561585169850579607954535458443235993804608889278144421418540567339906658448754655804706415007960322120355572310363018232148007370196866775482459591540773761198765249968661953297902076343231028169283885924312645819180606982673680447779928597849826268504266016255181329734015427893766831725212839286259975899110209180186055847479138707937741057098693384883387135486555410974960672498840234228674347135741190716115984446959711542237614509330410468521278724423389512738920653316598977393762566361480774111545325144556073181773343113014928636057760624905541281392185764261048733926888588849291053826761877078445115940423235203369954304209107359057120393087276616171201718662312270379686708301738651466257924052874372828371506899112496981144577029624730804259895175649528540474200172919658196726458359600507831204505957168853697450011204368087654786257829391608776240372111840861958857435909696690554983566049673182509964514228641182578778651671699230552028714693276154353949155811589990127759714366665602392079001500057530835700456742734919845282164308884968095146279335047453439886927047172860258464534112858323990522829641596703758060915061202012278407678860430583668748000175303010566766023170942495489688830842051671963439430482479663068570414766291478927770557446368901187953292479345330831468655174286655822411622280377639875498304988107428137003323252552602836217404025154874747545906615905100748306431876429130733414256720029373131734312430499034410699996035278021419518561834831537074503225684392345506257251878124086556698728764789336797756072352996038476905738862100513261609973099557010813577381578727450182958151410117305220201992504354480030714525187018530486992473767484096838702500326657459757346986609925098248374138948944800006820328269561555019162469616581064627733834599350163078887778935563366290877717050056927124140041279753439662104328168115184191049167139678610462122650988670203292457826794046119658058241755617570778492383587710443871430010259596805644632548277730957374042538516967370357664239749400449766042744987567010181789906400165898956068344851047489123619576117423576073180169093304503136768962659378607823462458136853428075254990328902336863060148971101015598179415823034150142272555520070213915780085511814310880125322788524750326411679079710141449867958866941064815615555559911470880263176255860725557419492442856121920805857552254631194778199799879065862649274115072167095467532149739424068208863885733881491219062769121247163534419056142010541517808881856750830968564415204607311000292695048191180208604200734071100414921116723625031622751644215750692430330168565001160455248999194303477150782062635774576854910790802660945924680401982119053087177089084913678402331017977765963301037116010412488199080536419230885689965377738613546687011471232584424427855912462926352088720858115860124729212656016555106677327560663681903358515592117641281422773784639545747323685330014264472466597697208580216946781350858974836434068226140064865094553215296009325362153611495307039669417060619819829286816108622888952824410720538802302615990895159269728730539197140047586498058498534942628887032329999642307479468452186352993007930215519684236193117690041101033216290448711213353579015164764003740410900951177558047053543795417986655484194946033959196184294408410562725954966786291967368397663493798272596704401366612938769141582326671504276850981684402953586472395175624940026591086002627231273232800230486154266859560731153371191282736814690553052835740306623231753218006379703442119618365387095594279019956949418505841489501762626726216778242479550199922031899124913825139854704492748551057169858766422540446341135447130491761331705937799029757073996086272868921378562543647472700988859505783828624916759463425791508583346444287434115116381613593336020874186836603444539590086082872468543871588339516448922227839255239788503371711648747730541387309113795308163629080630323131085367925431501779955574293697833637982295991382149721852844491187178916190961174386898927722840256620762696884072544063631809808922201858689741845561122326978607195615190409126175810306864801486748940311373458977983096569327342978733709285154805421797366486881111416826345707171014772313945190288255263460664520634614362468249251607947498009028643099281664164045180386823650238411082691468007086231157438163569746582593197039409460040304735293413360840440441590372543132192379903607452843407713982165459896192772063632950720549765800322004472742758541536992280734770935750420075726038844508787127574202318000255519953257607162368727907554234107294016668734155892856142030029273980361697705267438629628803564846206123965491393334675878152797338095506970689379547905416091296145537792722037025276565490374057043945987598475034521990407329626539045027412126894953135645913500201623029582108295840685057837038901234062919705996247056578246269006566095719275778135115151072432988326930513410885818412770179093910091454081223819698251942431544999202688801807997505399853809647658079336959414574469741300208281233264405000522658922540305596848811581659897247679537596139326541465952843512289053495127618988569112281812949993726420294292276941833929549052144301908539949603731928524384051402402031957591659483677121199525745426110535686208653084531535055003691819472190384812389908945580522387784842571759629237998314088963118736789344436812773174251828825235931241871900921320756529826686818993346344473650520500858682154401093824591352658686156101864826824753584471470473548084559273387474804113669955960366141848628978533001009325438093133358601058358143061186827516077805555556326271308640427852514430945674739674763671377778627232304301611508526514397556000013214466652986548526390509346262226847843482589503496101515145718093988587109901496753802791342353132235354800239118390700207414127594910701877753891267734791844858469668011807052774386308721103875042673989408358938437192975320914265137676482076025458295895233059020522998236239470751339473733445782360432673077460492752970971308238822329660363465702701987631554840343375284226672214972148223176103960339143207575497945844891666826570123572515082257848855834785770844221583297704143682081879970166847403529520954819470154366983548273108844832464888598612061557657485153165972625439357891325860241865056467988272091668710847796126420556401682678065363938581799441011805042180022273097614422065262667461231228501668147265211759807713824977896785331501853105931423986305563293129788831556846908968289727423458445253145371440152936332763364068122269117706293831142382742148592373183481072693229516533267088622512980914937316469928992411930596918369438680706514124234951753299541099089392517381536067955175680818093846906500408743457787909455561369234310220052474438176595252290845925305098127273687845947233735114777845764039930624391736699513076714674594927109564655531476713729518405738735504647447983563410201036838459025335463731886179505965267448364267759394401892368454658903724153352065895132716352336386354885617688046118479560510270229925698793101963030795896569015290331570918943494483573686394273412552820470104741239769452018831614825341298292387353180430711691557933574197349823799605734933517352998730820937473438862265624507358747873872324734656742926130826170568443716298490143251605509969930262048929249406804162953631290311394748117235527861284286121254449861769676536715605592058381973293270478329954044106001005440399267702129827460124951051373507031944684166934531106672501582856795396407730096177913545474786034341649859918051437583012590423135318079502909932824011313016092720246601309483796166829841309244809383245082197994497258031954690847476444805153555595980035975345782559472565726520119850797438761721315254040049754868843178182297523268779952302783401814618256829841748354075560406436689835419655457658584820513097664171380954626451595945559499711755678732703483739274656703571000581185447707922098248154655516629595614559105672656281074600987098724230210539629793921563347280471606328176007263949922600921637124182391708676110379013016435315766166615146847585798028053810187393423566695908886906803453869474081894568408258248072996317733100875406783679925320496846616099385217426169927089589871647921979183361556670961687761445235469391574687640259780030418766100450595095792837517057516100138782669536212060480391921216257895478015025299976096156929235007747526788224504760051035607924554310172045291852813676282083225688109956399127802234584890352772029508529146588243171272081808595720238049793711834241160192400261629589434108795649641823098778825912713768488565594170973779331785200906302130522262573067384100419150163740872529530878539751027116441623563594634401406743793612191165219524276516718474968392600419276212987633849334814441481887167386393825657293663614292858031448318031391850389446463234482163798569762436396844182776423143106195709101012744377863609126707456924934442256402503440738766002525371613880279378001754107334268856638530232970016669730570652785157661864959305840454081028181152974819574604872716752682035700848451029785230937662762404074796096762561955528313055778653795942364290876788982711400098201227651689702510988367105018518706906279875965926014186681704527034671392091340892157921668152020162322188451179929579502368007011808850144211965393441066301541720990176273217950389771689892239271749357879774483614131883745510052567109736089678854491990093542603727083697200028590658145801476611149712093670954207821979396370387557438688984900721013324035272709145462335928296412086675308678248260137114319693763663247109122168917312736683157225647143188475325841212137450029602903410188664443614360075652151910571733757479544413571206666744284437069818257328030790198363278305204862126721781633849731177952989422866730937507805537379864680816927408841084809505263031795229014475844283010003685458756890075828522246232851031377119163717882631290491006891511140401461174196245841280437547838509609529933496089752888963216453730829312655235777456618929028838242747179826886266949039244197087492288869811500999781298142968749234327149047615092187863665403979187532716996084477388696887545814509916680598369769613768243413390163296092952116017860951693852026589071878536640750208948085115597710292638281883762227923946122778662656668540877396723455009586181352973810187179260339511506906408794933494619527048057763396583362318237952150301927429786848601117040096027562630147363047020954651605634602938933561751794395937632062899012053614061519811937569936896696511686158637713584478458520377793525288579893750337097539004506335428641954759150869554495276861628330403283561558490448248184766773155745414980701965270407171335446161585786724518146048390321860307335579856520370290295694194575916301476638620567463731649802960227014653863774403847430086890877654258643980489347455503695972321859858072368570797735370590517110391154436310773495040099108633541621720191207995919137446719848794867626856413002736030929163421352895077415562386268304720672956361488707820559487328308883855581641696097522014727226558258870216009398758977109579762612692097873082643609650510544599205596799904979327563629466179047541376327265828216433094730992264110890146103615151908738395427913650673148903328962008094150755918752926870634996015687113903828927475351208983311372888416058287868188022716086300252849296948914194619256482040694751119972009718027805485687016328859683713530795570575448853166491302909452350796062642843828473644838807188129638660725553167723766652702304533034249477349206118271859322753386559923582146608304277684688357801763224381232117237917410076672897730118442877355916818153791026272706137406671333676050432675611169694639208360124475742486033161031461343366638077383876993670976800449136948995494876544379536892197649667107335108375887178835593982431691304281341617673248556769717813433836956369890502481296538183913181691671167126274398630225754181158214510383472033843353008090042131594677339416408908337004726536217799657291057851658228330017255931449986356421861864268968341945060652353278550461832496431953346201486956279101365732768052955016119268226740898605194651167732263683038344447181448652235844528928350004103687318306469748414305621242885030909901000795968427981174195601076267789429545633072632597945231024922623389146166906375872602945744101087212431248546526867231105634833202039081400913426599380945386431785861088866993232930635451700561255406192490877404956021006344771220135115840010205504791904251122222668381496495107198264149184755634628072328009383407157527849569944940529554042143278816917384392072721643549021016861402806877214428902984312028127722566459814317757075605349017141234751633066021608941277151842795905521131787652593044943413444631284733078506455888101041648976724340905198374120047090736517318658143794491556436267035526628179317445704869823216113082491838183136036469450462096536149205331109272376623120381694181716077818855020897904892736523886654493722209318571942510717074826106281919729541839824412214641879225172864563264484313849956555710616469933659228909155032245865653245124110770819560672398827670870581865171741849820467303829081704017603966238323293474111302320595052900372936314166462910665561588041059604009034932850193931686643692702609161417275572035685777660367485242234478791969951213985547318514528476860752150255579395441445361315784509703281125809312803830341319621885829408587348339373577270834706648899786650363256665364712720564939371556506754291705105026297628719327707430198669886679938981507194686976140249411101049744342820705587356367324598428961133319408151291019598206096034142888731826676663499214854228794156686132532308570477922269399368246831201267318152401320681740598778254836331010755106296373569412180677205568621796093287289707303229815547480274417941213484647575091291189394962477702354259784861589696932753808579958229397739313813867061895522474408630201256698359660439433096431964124413228521120392956073060591061272791474220275729212292252236312679860167910685181165447881466998044951276966832953358547454618390003541792955535361141235741986201598221618714195443654648942892133516044126779796450068753605209934951110298948387082815881147774976442014456727642116830570787082285766396598432275916819622576642992746259569640859851750076065711123791937034519420728367368546603875469746451871667592790794685414586861286172797971354473903018315369166573454286050045894041134413911386480912552444167677381107468931613416780567342122794601235674320073306610826239848461230212024172776593511645562858483314078011784400296131104094663751831031211353488586356288388385001875071630355135491663341823098846978032251439875593768007183498509562594020861549864142402089505103605939224830703810491658011696673102042269915050465480181031414244943546418722537315168245040858517570190900223046883271210933564750889418177223817887372059097205783295227531479563896459199379893808419170622397889168979494471325436600346609885566700466719838835096448353801743905716587776523571393838373832965984904100552209407485350193521288918602477232778016432138208052211392652450088832150267907290985215673561009447110285527331021700004804421225813674985987765823083987586746412547569119754387421260259084689845753448851159721256093527421609431927449582129804289284698769491448125082864284347333044517883260140806556189850744102269348121894179936155672833646031797712158358756694624948809937163122551064249336742875687501064032661952973871464477294960578240344784162543631807743859824932888489338238222072575834157489440168358337275576040748393035811089940225167174951848546315862274933088739580292914469375156585774198631089184050517485153990166204438772091789449007502599208079663443157358064917087632024298063516486663431990964284818679973313279786211723463915937210745974752408048988721689070014703004118691381674005084115887217379348886728322656534711476982744044978975040493642275341789446452491075174631213109013550745207560040751461141840345791446527112779464166473485810410376780822475226961888614575776230554795233924485099971517927115839065888947212659283961944003527191809978643342311312277849900695529513392539647323682372272256188278102201473765034529648907391116988376525795135630075074819418341137727733715206835844545696196217959647212990776990578063149434171209041581427835708085133067071573134186005063829309754826929411968651449943161580348335096816365532678282115480626814305613733684767811774236761593014346422466958878927667075845095852061468030108606691370011664045815359482249716713910986300794346047167236963028399010618198425157585777183443234723717278869314075241584800484326927483943455663409557911341081028429428227870329829282961947171622119513059712358355593422384538600783114090816237516794559532426409148276585623946141999856185303194584124590120605196251354567381422623955200433224700645972069104135027883887433622478083916475369733807584528299768995031242086550400049384154739993946993696602320261549839376592604951811553697659978831950474804027935092374196665051757839717559747357488894728426014164684487685023716746568527233312667162170901646797581509819716923989942747889214674198048473435177751016129543415556575952486440812581788155487763839484750781783857297285808993028433857702165357912195870949171663165014414800163933313231814294229431066647138681088833743366469821452479221584623004640962432616667154072457605653648713226040622725725548332239639241843964058001515284818550249602827168383670358866771812206257716590805560037397103599914174956786085872706114550609635008542787156353605110844055968374118113536368776608511697645322334976490438131277623379015957652748826724173304497695554789346194761049277657724286657265380085101278988016926960033151242292706919190007233840358744214477836749215812268893816447872772121665435081831052539997999674888827655627072398071634566323250411526957962206824912388901463202849082379577911947562478251816780909457627357643851894055299904645869220591165595112588977440477138586169658033561702789525763497302995148696099158700743714859532390997038763506732388925439725735551281481011096044337761202843782575228328208890502283854550769810216222405979628146708423678402031804781739878796127387865785533365504791754316929276238923932859395447168526703045822277899538376791761649057770999666862650666925756859975668030808258039625423935308714519523723788231371091406179643988619257744105783231722759007352581461399920098568325796051576450075276885279590057269201797555224109246341134033380847131356452223608394687597425746019707219280326979088578944910399756198888038950369075432399818071806246033182945088806388008544942804473531803127121741302053682230632763543973627081085404499456903468236129736558401583014227304103728420249757171561442756005789455904260551082721062677332498714057594594434046388204334106495237526288602786885512916043762645964982126093918838475468472038455951503973750950728618249760731414803462941804454080248361226126312943326066475722363582362671055642059202171488214209295899160771023763455561700884710938467972050261860403459818483140922983706721405393844631717836277806043132970257329148672472424370313171427265366099888555953136906757231559259869537514434168106119541322697971878740560374028041610384478186646439079915575438764323289262916654770719756360122622035727714570149999038789946362504074161973355318957067749623681324322043178097435541012148367578539913778722130227599173954187366709719798580153979429414462044571865450655439960369742760434488476451299030917596287977647657971295143122161139293350243781878620731482907203828992990111565766287901558816908088932210856284602858373518094403009857067227106833947386313573310723443383538205658004446092633774215419064655883656619191343466529091460140689895567529315820880369034992147253351314069724556000835450258738218369045248359843915497450193393028553858593219289714785494002130265890802086457789370234704570269120964658671649936457175234335187529945994317495931523473558439420074026572655866753951438001499710100641040469635857833521788770289621846367769619295342802053623656075945559717503165468963301013681416338072730349239850353746284777474976272973746841140568000297239753926288324029518919215179474050066857936250618222546434654014779340976372962252810796212271001884700465937872855569416964490507837917357267209140288597440511108226176468128225202458768275535720716958110112444679457713301454627277506413985375626578483094121879593495030390669514008376659713427215583867380815514811519886972204187575594843408065812713770208940396806161544516553986436954202988620286403350769889101453856879695408974031001158451155477755852443421692984572011537585958666506819470216850507036253859179817666213407434608617638197991147167650100754464770516847780194845020377546721288002463362987701388849519597992072357537350333549385268620030575058127795776935911248857402727351605944436797040352674533811573456917027518086946160394244508238866911167217943348190472438088105773538829313259864086629637556845536263168731081943010052907220026912982555308134123136707876035916209399256850448123200680656331845152770476023553082394862628156305926385866598142668759856893670418281760176130383104015256694319134691881362982105248654978401128607695209985626179192802371304064399176075462805859793826737341906159867337438763524013079459916044328522142372123853743405756249960629625139273755265161500010808454406322039196488805170295749550897762521125668468768020076588141426855884663486573413195006168103762970366499226378541032222887221747498312381914059277661506446684227653224345497191615041627892331842604594485152858442925970981079038096107732573487824717513341938755642470030278665725667282210074693869194339435326717045776043275637459550300149689810559072730215759952111048522280127475269788886275510895328698242786135408666116310671320628948928474202349771626643673375198310462883610070178287627406272864491029182991778344553302276314757562006389590283051079051327377974085098535296880414342593421266687202421203133727673415886473631507316843685748639334010407718795248483643949024199004320999040336476480465499452191058955136734245419538341024620596445731231337132281345736492512950226611423147472839069893458252804851938914486649773984846109699506001359939822028705772562017998719977503886399576134692514404091227554124119416829692323975238322520274834106362292405971451479736161227100594563857967801767408642656251802555046856533043046902473116292467224752541586177812301460492633983367247210229429111268058278397149408794753239850503673988613534575025179229513393878109082883256077342251097151285197181009040530834233453222900189625821020546082826097018018289369562720600473820784871176381555216922438789373310641959227045876832933325155162572794022146444446460933293113531114678528421925457436176995408796709237618742825569572657664202860427608609372679289020889539016540597476987107336430662750454981256585613051656898309907949242477254437763389431440687552881168143769261043671901801776718167518649229784578694216379313702354418326173548550500777303616310201981976518576919380111369122655591625884257566325927749913619185658263166907052377981825347122339446403690926900246921146887388782255362072901482992177319300919740015928944588891669302689296721685065376406066382412372976636759074472822047485812470265957417866410119963909576080078658809170862004989254473226193353948306968065033813956594355294290238913141909506845255715469886924153325610754699703162518395057519452706710981874193416921108790693298001353958754639193693897023297164430502115873907786880421479407018917584585499701961661284842754589310119713036803693677725899547958979821377794617643754706752021601494352352212618004592470086693582959113887217183683670395482924649981520009734909118473531414523798617334275654373971661853465588057678568921425231790210515847910130785728645468672258573784099721256110630677430620105774761531220275890756107546558391039791194581037253136708531751908554982317929484870271608068667898016688759052345287491295127948056592268717381943910561434878265548076331682994227016342397422186587120958326763549772171717670290158373922850678629909100819314414324976215062080193830916252987033699065081729363196566055348986612817504967951948328721719369829055607844570772079474304722226878007462920631329496134999733032258325369561174015429502704029737546108341183605027371996169679409342912975456375258503066903992755992804970724037139174620111384675968849683280138633296007885569467966855890049572877559223033748361607082124477351870439474578690592740593325493762456197885517181401099389199567224885571038246847960292669039105607188870415434946961755239639164105970205729337137470844771849620582403470952122362194625244782459872630185474602657005291280763664450369627009430677632750099744952390460148188747247694173287678731943678889583320120412578286233464492411742375649461036903610519071290770314586093816695325985666827393470652019376679440001543116359285133364944050182329533988941759867141212712838658777788731021142267851987314547962266055918636275428195945181853456987262481534649251201059432393655445193456289423237616976077095415897128357200080986784637384137104665681451434458649290885691927414123778623367131965250071484828430990148130256892317739704883045001529387938067897821187185151022429021495307990350908689036742684658606394698057368166422202557118434492041687194960392825651584748576577551325437518361564762726811410326772459408101030379490655819217702631961445113826207279079465280698440473470314052545630166278472339684566016541881548643892397111868129766844819071475755685787994799500429988932437593115161915777321456824255498237278429554837496655258648308574812784485436501889286918026358455093197334098841032318988704154599778627734331711824311048804552456507753680452115479098828398069356723331126412810373421460911609718712487106755170114102491606403031906975677964362092997150556017409737007651708947781680212811637903111266503932385763913018987887551125902025927806815117287515312266809512084684775455843958450259781015774839274476833075998504234364432509523332808691688275299826764293457429356686076321213328434665192560945360498511121159822330870833192784205897915907749764839428508305124586275818283983157088985510866744649753689956132961327188591216495905584711061768356178313553917354849819293709263503883834104311900679297899540341370725840058416345083083637856831791545198172400564754302969618174173052999472882663698236642194881102103072544826030765702461152715418487113823512130282231344815550567339298875582430767557096666482113719550281585910372291724731891645498800831765130128965610430852864661591056807672739667585705300000874480212529332417606037507102787151232655351650628516072573404317845352157615869564650529683790527489107846644612535611979012622037994826998260985900251903625522863923160393363370645122646171895075590700646770440885360937316136973336852544534067014121258759926149305346576108743875423237596195673168286516097195426585568587412884420518588124937972032350796480374398454897681407513271188013279464870711642747039998058388717773865575187450393900704392948140015772811819573866459567557160396786799146902232001255986467673883693296952201116931021182998411758136492340117236101642056197810069093922495150647829555091952857628315405051345932177496157111232130598180118622552997259091854676495351177302279273902253894363571759668966428054425272315257725821698244516073373152591350846808838944578607033709686481218511237185585838963892763852308068484237503561823162354139933994336835981391261397212026954534668943640399751115914368133900683364976547406070910004992266974539085998524339102640940150065583106694854359452442780777490146574743081794095415088167142612498591237446361957521363838228067473056964700691965283850888171878832160106374925329372999895113287146736697112976203207665501743650988727113435188693655721910909221199454629459294171230083105812050465011798091103797731127109283868044081688590713191368343639761027175059551837472595617618026699090428406534502114018206254113239525497904036254264702997253209757163978939412062083772788593261593194704887900579461048615945972236635820459256528437781489548203336906320918813590658737249524834769291553394761542351698038136247270981526342940878116514564220079863427846640208811025698155424552880176915173687678191103525481935732461068161445359522895493494415350350786130564176425843411437414970617940763906147594922022805108662683593899694052175709444340149400226408205412567392336364550926585662647817747241770278820508814938248821479649975540122612723588917442095960080868545265098390741751967770739887292140648281687064765541710439087947573718774534551666187688862702187940133950136500169634929681329527085399886917791054360392840122702346839344449706365516393926983777764717210422728630481971730042772537337863674934084791660965017430946206390459492808611367434070083808228109829928828821414949047007828589216836783812721480438388994482712222748889983318880304195275225710305106461266851117179408749048253148789616259839000963727689157050530913962643990852491452320452203128014757127103851650308071608052159425996322981644145628533303955449027412396083047977646454726768439220118083415159478747207841902469593001628282183811475943185077234113288871085317295273081986757070291173400174396848408899744387684097636726972153119628125340890469860466165222672493057370160435845926568580543401338087819100680388919399377043985398976058789677374066609377505505038692932006388517749523344915591705642889797288992533914906573624207127577057434876381446764377853789542817555750207006834884195081311251962126564507339755314369399459240234408115560757739231739931757866956028550971070188353585592516348010883732079552868984340938324105010467066578911822204114637714797734737498011529846112042457817498906401382888754891914379965150457617076912982145232345133162495504624027008821214669096310790942469379928261398015947544075381343274346851204775447846220951411101180080686470024978591713753057343501493308915343661622733748059824851473245033969482069710987705916860037458615113596413154325871753384309851643859352695729806482633252362710818209927909325403543419379278694924419833827569495081293354543061779044856875721943323950944773635614388417220993772755000307919304036520883828093620183949045133909329495355549895410380635393633421687504958411568364725527492154974654452452944000555645443234237959500229182568732776395210753101875218194069161696097339043445917436592207514696464460590435450798157167101045184905201477386370067747994946097877268559283634305611297547594221870263425194842863545804864174211794683833839641182163104876690264445019424167053593622993872305158041250414936247230115504325896409673647318767676830482072275003419039385669253316130008077988046114781220918476094518641156992195069226812550469121615192924351127060015882079108027070042379530155677607622215681393928203520556905862537160549753106415103934423177896683391846937847917279271768840965962591258652047172064381437757404547713576911756136789146515557991729782554492608368758403589111245845701255291175943984054991923357245241287559246589271769815769574179630080953799564388058827873337486803042068129301351192118154978608239764103156289736490497409373440620845324472981236808210076229530004495402761516633603737440033913886561235803689448815107219508746146151154234865207678581185459767124329850134606623507384378347278428854679866325197232159356522505254311837232522879474583820630228545482777907554751128059932744791092228703804710635941534972588618075677916392343880843251479206357239718201361792810991377141421003344700097733365997188151563504731014749379281447306998160529362990413532236308614222916090597881167795489645389715364737783049907896367819254100046208096517211249089912825535756223256235303226403253024264511918135571321491931717993421894298568891186776304926074444487672728503534606473483950561446359442498253879188973761626776514764319783823762232133268975673132970305832321748689408823717306907423941814171068874471727942799610970720900485333502601253257450966096001406353970260786411236750527245140414528089621215570729265581233375657491526457377513162105785393190883304695218837079834069442798334171390849785974033387040496466188067029715139198313211767363741765781862712024474790802553039895575871666326859741410595205931715925442298163858032279534328758311807005116910340473416284242966963583441886883938610432234245669428262309720866402217808496297716104632752384530892077438992253160577960014146665735353096032684362572861068269253555768908647831555236863471502258974649140253519250386951124220788300679979594607782049392259365834638725564766898750109273018916867928990100684996186997067700045307945324309594343190787969136008623630856011813497210232574537714013159711613595739474976000602979549271060922278487822097475718775668589132463096276779658428315064674698445179891828598574953800975484001719640864556211364375159799876993753173564615970363463919128431020503285865714350598570964656687012157903570299663662569529106880154898346796591663235500059945471217234474879539231462354518134848056024345585519717388557557630479880064205733298379906431673307279863573356914670265980998410906181195501908077697731524117817028780377598151841973387845699069771394427034059842013539182431829474615955764080323743121557162480716864091084869078531951025997149051786412927570134303942338374981431310027064411596178612808835910680677129149438604987155664190606761629928605665304927714184039649001309544706729133963955180164124088822823451958928350582212535736280767036188361954548810560570226463654245682375559162071009529441976100141662697758352760558185687450404337223369746072638765764753248537801246137781298704274651395435157051114743904570406840928623020258740207845745185709589733252486232094258806210109879568430794495238840467255730103010912568565361755468540671320152492099933748754193571405332343484815475882685431137483234783340602179840862826920318811527178985362732598094178856687941360386714629650263115839736575049834024983598110338365748516718725571228657254305001888985721894642803858249966289175230716940770872726182198719099211475134277716076122546095613792211557001261133742830957272795226647515592794567024764236185029383774953352110265624494180513399795472212288766024049234220967335492529193251372158142098443482090743760134813939947333987942672669283525502267632232997260420245933988567988699406980960521809808218669182387525451487499186723928612626865696704407366114318812897901631619815384632694048908982158525858328707411425271488034940582157382155800662206845119229686440195560519496715135723379160560188350172674538726397518409192188775777731383730971460630638906357284550721039522664743914531883089509074965910710021815463351885408856961056869102615651826641552873145129627338442214441838563734687901484391144480819247101354769297883109261380478275702230583732461716083808658736080151304488402223746759838843223018755373339954391440171787726680205569205833576111735324511881062353167821080441609016384455153996924174861674151302724563658441148321630907582260944043014306599044860221398097259156497311651893759843897230726375187964662043231494057810590675115975544480953384102803809739946835882220320275536083081316191155502679695958961948784323585852222901127620618076223279677065037460906890808460993756026643465463556695532628346414092842329346550649258267478847120621611935685031615546526101751581324009898609334765643349343651238133504149409467175975083258755761982207457747684263185035127989951013403465198025736270675982220482089752206375986541661155239644491905642796472019397324896118147907349162748796425317389728658886988274055190164147721505059234706764766700770813644335892769719974712563601414599103835041881969748282859210506675348675600191602470509458679651351461525154403181456269659521656077464633825127559356424896999931759098961767567653719011376766821803681272147621056005443386660219355175550837312613140476643918632417366812037698525382932924593714978954539315698965693407104460762929252516458873651599807816386104643334223381777858135337185515125110093430653301964615723028891933843119850460726558380421448548312228039935209476263042951991309939718270000100228924645970822323039799823806044460145578494081493478367604931551440195151410326017316809828540706367716438359913388061255112600134415081421575500299921907402943583389570839440644351439893885615585868372269440596285567284317106096519360112138793603660899887872536794774833520142570994153080647077734610435989706759927832931193840867095216160769124328413272109578680129450615545450581396443100571810846126841389255962854703379662364045723067991126827125382238525639978623304298316867450471677556278201110234733868713111131779999618180719959402383667930480269718135572350137481725896147123648654006028547506715729587768696080433260911369861643270646849879515923526408854684162495851924878192624800601686724368562872174166328745974824418156979273201794924285618411038655872800745499049497504661001857966809573445235865084625363268270304294685101852497819446532598618179006224433897766557026625259852236190957031407005122597841554485750193775982869074363284666977018710941491685845473348327332056938620863840648419696152098466377512603968020691561794741289714290021207488036130306643821587270312219453542574534067077327086776887745507936744769232720148966716290852478625851630360424008436366627799470078620951310846475530163280292232377768379251620737520228991670674176830946781498336560725285628402757809449986710617644889071134538493614692432207846460520809863188155409622622042581687974294703256653811043062277537674041289847730857235609333933047683018661187633650458295327117508751436288173735693674222163852022871102790278231323943884357644283290146597051353700266036394907284574274723441198891442388708350345459773923754762091831130899418130694701117692769816564941624005178815052976286043444242363384428377783397621351054326783226807210427379327774414552458862293320326692068634627291033208970981863157638012729470398321373083024607305353249539042696188306606013165756667580238979334532242256528055264502086947899838791957208984012835975999737982707153770692498930742403355390337954054271035285723169490353868210587562178437423741878041716505651514954512290107893963030924031106768924597305641520475133411653767664337445189064858692235379309219233067261621506128258576142921546259935351252107104838068434069426952779908728855456369893694079287188228622660839010760221890399174904603188488712273543037694738237950335517887248208664333473112709015119716361258357848599688641994844473156554680068288168270027539801602565091208606322068153698925339845296687155024944669787241620880577315994606121769677303801483817286962182363939421710017397276316398183615887541676232877690172901351743255968190639894631879184616911858086991166408133526591539401628540081483151686949008128994548153747854662757395596365276927911794281835441594994776042523563430997857467858131700844604134301988446653020472791062529879046449960442176804892511306177584730147541601975530362813858600924596652980762296451542717601598178601460835078169084080767055525368331909391621945677242125510972344231989373055708115293305593700620379183552300993816687130250906505584807258030929758298227756462552932583703441139974953806962834454150247509538481959944774538354277459741899536249897309128849876463542170228820610801203646307251487026517918465316257746017848861850796155997176782493634185786427132260643680967767015443748534222915264382618761246184356189818233678445834053283945105288948328129216663344860894098592597726739473817927158936997859023935285686434555783440958604595867372946186573554215129676038245105988176668695411971753312576682097861458818501147873954000051041723726802313005812358432537613092815960664276454674860264825512606890703349393455954682869660991996052857849798650651794038167419605027772999975418467349011171997409740367047039131025330925116395189664486311574014902867231468536703795150022844224229194086433536398330418673375284400533016898133422932087242374476722254672943964495173255200821987038034005248500148945370063104316009456221303313017361855896915229654860227473725317969467609778917486806493088379040071019628397283026868815627106265735537259196887810896961501217674901819016712133381456493782429187635053768207318692291076352161939219767121355454511726038815750499836898578587505529590177302798550958336609922820975653667234217524954737192724982452267967319619280217316926393607816645332109254518422474001147390541579702838569200859498471459554106015846044165055819117524575863728911598959079152055289955274615879029943406054789984005321451720788099900472300136334059038240905132362836215770766157802395695911570808569185059742564898964989368371876096586468410397485546068091758375093806437502045677292671733617349835952952820301542381869336995475849768050307543332034651636278711731454725272506699903600063477416544356511498898427655995889602902773908188094140218429506520019857079736686899909464283627917213849397415153785254803678465757150616190826476142218570707868684115125782507935777666791744174357106769093335808866104838811687623485588670491122113102964068615961326790983910972170456596770877190837511141237001633141909822675842360665757506361584518804646497640528797122107852514699417517056939271589490803288412098320902371174828728317484726834690377551205058894744144422262402675075219251187374282951234761230800231774230196417229516508308054791897690041312882978943876382786535660539316959928203763508595041215831310179967077131076558527325097521607619795891079022755243121987618035068533327313441715075561909428762146766223518729016583057622422499710447776194526372879091822500722051798251491314093789370711718522933446369445017735637241798218659419929289821697235296557887271976256281982853053529851452654071210360549276447169965458393966173362197171761087264895568011019438083900457217594300681367544396147878628448345219108403475868737070308892263011009258744250081957011088934805654973358390674919651231967138787434197067135385679523971950935740624824618608374702146597969173149188988060049816578470901234517462145850554022608103838692988948615122242584743509355839306480038482940561049099634496547282140936681854131487436965323311369499597413683376316494666020935732043043092495905821474926383930620817787127579382260595716112024867527152757888616860380749565605325582525130081847603010881405228166889095637297323200506211540381069614343335366910172012407082684467258000230561152502588261371375837160051459909561450608989126974840763128704254322154374634337626240412467070427592925081035608207704842531546975201455560390359759721197423363832642996716286573638111034421004940369543624759272410254639262375748684597297842616473348696960012882626937509904477689294207641914311612984527727666424953566101659877472748637993762336008343817520349154598862276876925531030938203018432336801629937112094467281829202761251334358426327513507917402914980035416851147893731252905152159000150083322552499311145265902839320548106802153375233037869134826695069948968654692593750460101452876908155630213562567851541649561060360149674301938115226795459463426890453115678022121159485447170676218180590324641921722459126115894023771770421333027816978290475582018217227181322539135247111203259892611226753418926396550634757629663028930654354365421485350410158310427223635497896153604044845841353347990877604876858963338079224879033380785024506921701515400090238361246349517459573941833494408325055376425369771822395585548676301409375629807273737759202645512812456852430096293814537171961102076618697111703643908841921159391133777720579827516879524892869638451090927635376359788854482462168733601007389837541843159931828219358773083917391337229451340231312109687902877229896464644972879281277416779563194232238428866860113738351769318716328873736568645720681167790975993856303438804728586362975335038618392554781553483947940023430421902600463891755758518723180727480089926533192682868052253782277026355647472042776676394721639282548889035543118490787807500443478018200907750571759891336955781365543932197930621202921059128501296617528999667891695134183499141319785121719995957909518205555704574120332050775713858567661237358483499145271654977205132278317264957809498437112722364890181527277510110365429736331171732242329175184748537952405852944000899623235687104437995180191906180127994575214525644134703139483510783538613116025481419248988442894227959187462335390482050510402522576967496813411942089078025538512871985325329406750634136244199613886350729427765012146611309452064519806300644706984768027731744492833222861297215538228884807649165310548599400307151797121153702909952235753631372205780849020922037186129616784613444096191971157538574258796598978230945850194931116246680742143682909052956921433268817187943559491714871511543860893706267101639271216818304343113870843151411170966976025713562654377536246018555158907089214079345627006937081525979586902389143970764734772535373858235018412542946422013103067106030920672240419361070188608351080238226442836084566124880190993509517514478040172495001644980234210601265834750042635132641191991153449015604852876115832418714096896483000443177474350409624964414207260160144215681202555181462419295316879417228919474154166769035992259387333276856979594796045220025130618958218781243265789359012716790713197097814550970905536239280678318177737720593337472927943280206121166635058812460053219861061415684679181926697101657017702970039982923791945643501726960418923870776443294594370705565698873857275593407362329982783346690968666900505184794487914307942498763563651532956228082387429281831225871431787457000285580213777002631479725275940690173938205285764061087631101661175270052975184500120271573818442075493249009638566996792381085711264943342326173529864918863381800686662674198671974053935791203411524111064845461740610683930780855600862669351759357857947729036916671718221136725744792182319290676443387602193944797654984126143654972904078067306204622959040284012913956078355635484346362742115935857426602503791214402462888092455615442510939315723456384314434708217923101341257293516668153451723792373825731169308858798836641382578451950845316527117616464457979945420085030069783656702466280445087690621531776427854940340741514367351187822224495416197614158170671320514939718058975865057315581261449027268910364089713298834436705391399677630481468206335254689593779256720690902124521740011553848105476695996225047155399374485336030040356559973756843457790738773367787049951028359108993317360204466043169238184894934197029703412866824088218821658431719721070512519169463217153511806751805247374127854027057942837816190586199871946726883550265540655315160582271051298004899657741836456305580660993555857109500095677434075381591742351325777750777356914318027949789985137886260504390823965614059345818195405323032662398683008583693950603699834126192686722773401349441694675999142999898536513536376225447077467349497109092907109682627850907462345213653815231400104845491046680552057582116291126886392654781052242631410913350444057286194998041128725228627972596153453087249113879036345224715037113898610430958721756130532407485426323567387020288006589855885180262502548899742714223905418954172415713638933542036166052251302558766875403563519640490549331062483390535647465442588661134065172743191328171134299652294866774095893823154776675324122068204534628006917592044571270890721514039930146893753633184711779517453592098710446412921226373587598524607191127823885460303131324330813166687678583855957301456712202002086151875976519261955193318026596033605821941943410699536866729950987202732536672027046132662774397021767982067331913072735695118285063688312999423078822784875322693275277217584171874771082672692420045047537123748139174053709800004716661903012899698519167019424281450068384375907909770609014259976814708410447097894830393197864845111946150846779281713604088522299117590250193877684312891474088623248414568465165291062339959590173069952095821760165749384464509292551901733530206364934984075141640164514448198109860542444135094839222232037866207627789099769122449880587157589190003486194648879952814343439990600043048765600666369302049233660387005993297516457546634694225524849191103930621117291652623077911815251064449023082009279102336592398310376798461828788365956533548435734734611103386812464510585933597134712262682572188802196962016049459136264234142484254734269019435678698588368305990978797051280956226055104538398902436515166379598014630244210742929078802058689021364576599589762627831473466416770832561463513967857589305625605369297783583200917930317447654446044076637770802284233366272695337153981444363522421695254093618280800755920342979874342552969561086866855262283509377698572700772319409958773337892587658811043304800306024249830175043121384992484319715578282566556542915069141891520425057468679247249707487001547945906697236072024802597346676663037605228179363857397932035605756583988382782774620051492867024488144627597383680870306063145728374474987996171895422130464043797680859536556663169089328876428216794345611755937031324536758994386498107434592823610289731186725680818652482039540019735837652981729760085453512825698788596274276039750931826850365206876455744543510663237110769654941865146868113418908663456239451474380744911897550929030076367365032265649877864937737192239169234896384373920023804078660492469485781699888370662472099272280711274257384195873559193879555469058629687667927907311430789366962610896981098493719695444646459367574129969879626951785283328924736212261483542348011261514134216840157659781571535474537657983083775212226074519732784952731257633220241633017319490840580945929342725086208963849587711063874845278085820051927385936193154220307974936107387648203592893777980546055636757881290082890594879764917735017198381909692651432514538799333234472405716263773072030911002645449541268448588287466975478671564419191381012902726439864111778100354891749567528707365124222471901671304332885087771198215831655749308822364319905647645457958952197481102217225744149443266840550324190751348739109591787027614694470880414816277978765507053504919501105662446855161157063728561054371919812503554814163381365848260645153787217631764845949514461772442152750395778924893532931191582624795966132406864829055620127745620843289954215806946211046702370553997859091294176460328700121626667194210268567183484181234090044363775380835564075109191101586554775984040243423292653010976532833789910455096549583819761102754865173416313227824646912290089265778407164130451605660562379448163014202931569268190961866970338498085269164116385667013748568967324355979177537551252645004265099090483771541103068635102120805542488336039840179841172318232186802996323782574401890540745454140898126636911523270712619429831126887345706575139720963205906727541702241749328785478498048674157717423693611626657521392915532998854541449602032314273036317218604807120006982819871523091163924917341862287962683476055632905383905629919207992936016045924550101000222675257965151629882757671070079566220618982223225090645176732118687688559129723017085299119959780636908126840787089120862350288618823309248210476002769544858348056598982364114793997779320961913391891123195237773883414471463026288293627462771875623709240510072117873012806833042722239356520504790407153453761254160276064960912345872366335913232976520848038671225285204665021177888967386578483939907871134584164952862455619259394926318392268280060618504198060913428157970157880845366023429438559510010582537553364946414594758020750178717233574112029162965858457781808545200560506004057747422297983951118846302969104983578160567830638310711359905757566493153222788672248559642961137176219374141901442400251350214479229519455021728668616984989957001716640263400169545909464432916807903229372460006355523051390011586750327862865471842941248743435952275502042045589764201547596255212042555852409223042924377974650319973142712960712045612400597041439597792427834284841411230135579234607685476903131419181005353544323390215486803491216836495342326284006550695776306644535920397866396343977197190307221869352425712391149636826233927940501604315160414820847389079666004185547472901813547711003688467406509129462931955885948208888192783205952173477263976107994034773739847783970271069439335049744876429697104335643259530684655898959420079846523083306098726335023114544717927388469803943712459078572003452076679295435818550618847226306192059419101889579172174093358655693049318110102702625685682539084643719969300578287683326238071407064263834538628877898422656335486629219517088470147249475381661312601256409603089281547549941283284233391212803710482298366391368426375834307970421490595454860685791377062663934871110207291873070957535924531592182732854880283912788713951018062814081441823646751719511104188795366203430191902705890139057951312522200883754266404971940674539942012120362767589528553651244940289870359169236104804154012729330018335288171003981298345621830312769906679405477164563980499180079963740235441906713605723904975636771534274640837306228799859170838047248913985510171892686694900109848030267665890094042932068967222497423946856961452295215372503790438882762304473098370491240079907085754325513991495691400360676006840996104054472261201720543211378986640241121090915035809401355028993237924111524210628435912437205405144103141820835014547868179862589332250951827463220261804169590224654905547804415160331558587586512909526150436353027980811157745103422382793465254597616700616128646967414730598172571864481683909250362660372212030450219740220751849511771433263022133077994527141932608920517145031282013952865800473747219451861254574713724438921531863091036983151131528424718746079827366860109532366021084038722884384910654370744723041933960252186242463088484916456611209721857009719476806399674775768504890538498153476696144141598202635542567388550759269679896540993603118482253913578730546835003450689051717652657510918271840432581529572778786823929319764684115712731238760858263484514039753054659623004752568467720358482912090269822036659035434192781828520014997267140002110356514787951781668162007728753991782456881545728580890899644458053348016537431417189372376044421146252971255464020473607784491504130444672613703480850083810246836309768446545117628667818058334257772772834136747936632570989373250181428704954325248097378515673123763138037229169302393586841827003578558510338257486328289660366474978390623795837341214319264697807512827354458844310918178000774267676062104277951727991469877770358283341760803667041963329493359793356867210230903038414233450316620658288050913187622806400480616441242483227958187819856519728689592548411751871457802119759058261239478820690049929226935998290392188885260193351520085147972078989569499687847614272769671476632491893785643565523143150943883756833968317281401766722262293877985557782800504794074888033658768632507698429526458049578952152387518016916023130635677639459540087565548681288075419415321695361731758199226152746684248541047277101254671593274428154710031937682658849622988436450297209261848533433757191211782081182487839094611563319950174008077283288721635023837352988066992144392118794678077606825657154838224323926908680969100952146085258206691242289318776181624365556814410648675183643436274770287550378961305265140160337848929806227048439710079360024039247205423214007650665258925827774855631800668226218405096759212228314760461767202714295920461388212846188508753525654706459946989690674736720982355962422365961082071171517953218995330444372207898726108877394821980600945399800747502159217402029108904808105531932053844128398425019650665019960515941761065452431398977162441272620955567960859233753284893945486776954521292668264046280242607914186103735316880105518941375852015462506144232229909835441449999433971396493671509365996243439689178146929077836601660211430304879841857011102333130310640075649208058480257434853125856403921502088906813253515644725268541873954827055069274719315280097115769236805537493743590958138018441117919624978274009539803994682933781023475266499095049749886210197063586117964328838256502523224534835394077973769474944327514418997920143465638209972340261435514630109517951079586876147756347119221102776147884618564424437211582874195108191932381774429851116983244707805964289513233439124012531612331784435513705161469020906210979721823130390351359955407020349919256169422657423961071381160983465262344230246560532863891520276474536495761664691220408058156689577908737093259881405422870235104817181485998321921744661349405570107031827255438894279399150712825845419959511010858895777202767988624439736297940168141187682463051703361879291835073425818632745377405517091882045396742359557662482680728705917607567106965701306743155584159120921940381492692052783019928364535003686697259586131213137269367314876990856730855496043250546995536543947818243931009228110427082921739448440000832613292315711920153171160036824744138353421173895074068463942059495576988480331728359139886785157756704476791398349221314453681999105735125988469511095770184755926960694416529590237638295498489013652404026871707068005076930846447939528742706150607754749401431011289748894270871083539796254698802001490402898049364257155330560439474433141360359511175726685511749591071544876552068613354062440803187164382078104956882098951757164848498494309315675564404544839388893340971439584123015917116850019258472593840986974806331795989966368073977025337992656117516367310801645302360080572161106771337306950806240011570313537011989998635754148626256265718485655683550778048895409306512431662892330228513615120968019872195913593855512298565885478790405586898806024385461539876649393445121107164781934663965889924505378099299675934409535336669110960270199213267110849688519403161839581859523725102864991044347613709026203734046268816718708653747516343305037374023920087180738338643642236787404944116383223673270556701120804049443967024971709963966382585649209801504546973568044049929426055798013237031573101760158486870473494952999217536760923410679659747631480939441056327048106499801948478567412273901874819471080830785861143830864409339544239529341824082198859306481578764590556439436264661077575743045732320913485962013665503435224057654679835340681852808967677375190055371851888890423378753075206474424245957515260126484474137137488977302628572662038028650409419415173531333327827994296626659283928723329361897842586152004706912397275857799869031558458042656491459790460893055194269492277013861988773908852896845779635280346975794137974633720930180119793511196564924772783396833599923943605514514189846400621026882866076539202731709864612805661084939848868337192865091644393055426972187756988258810568410378877506457274055327511631983572632923670822462417917305651072687541744687712495125022934299179966774495347171034988529089825268395418789658979007862537077967521499871580001648216732045878449461722472038214088742855947547323013391750040920251827443756243020494824639629419499795769165487647817781923950447946579345955194346892095179243940802590891945709580099048529675543405228232944480195966723532133110099086407205641045829492099754777355679984852118584075678475054850226707638457676839022837754044792737906281390878523118373882540009225602598928585683851009992234487319747947316244151869713225580565524110374374898598515150731854848993268093657379957109285510762560628676547455172318127825675033308059794132492680055333967385609664570591082768816984524554401501976907817206629508773691871941537314520947691136784552729286643762318640887300604550170069264208155460893358433638748054811459516626246798179944564265874397500714020750601731144066454626465579643824350645216929100160241548518094055318112170128723799728309307836551305742764871321520236271935539313401826956491264459251233572769749671624654577556073739626750233859593262837991002230668864388790579022988143143642834559476900620324827386784990638858278010784121752789619135506566225587916284972485802449025944313330104501613979903173829388555388974754458560433537284205537441428456995290491752799059745435645723680875436097747579918526539415517373997478104507461501877156644352997508072776190921915858079604854381961593416805285609817667338917109855742421339702224008993115060797879384134772569086488899427621789391899913749589248586457394437393818534649654944311224633956485541654758769698665547765208857788356177455227229636501077524091615880499593021807565747056531216531781856240704866771637955418457236056905793939069710631016827167120151674335596581343145512300809503949614870243863091347596506924753440433092244623625422536178853867169450365499596508319854643246016156365358034777091992375572793740772416720555800978433130194348926680094623192007517162396741384722073715214563013001012634067384604804012780055719922219461255423195161088979952982799912841846692438967267705139307032606707994814903068813117670951886124596323131881777937999471149731709364779754633741722528708263060099697689216293772933488779839484335683352541247635447917148964997862392172068323024215641767508179763673107204023379794976836040150970989928449179758460067161587267791523384454861431818490194038161955170081810427997989308989766813323547723274868648725728454749382043898679179866754994552403876954521200323792567307236304598415570178505874680884700474557254364367006873712328062068454001988057168049739350497997977403746375920251028971177671483207964599655223061482355629199967172505215342613364501482138501004461435553322539229578995736857406737371815872972669943216774887574149233024769865713237426320019664330421330544053602403893617748299109162332307675838664200812127037868369338051461630686049021896717034042531844914020311462134545512862723208988481024018476604474828408293926519512122922736492680925037294728330219740851866764135566127887165516178479078519015617174983015170175939717132270420600391972049402432994761266879734366170915356504233026796733461024145841913694416189143560931284582961901815737880879365656534994797840463113894286237352698001514470364021666596551757268003152970444628856583051094418282230108432126755445631928493075560527992104224966009214708549158425226462102534031615445031067981373112802642251985180081130630198180608794863221141402663226000148577539255469006592929124238690129434866621752255402587869025865054494460731110398482154506911845565497462003947714627634163683038013061052355622896287152582247306631099743305107095556457627935969156442353935594975627361736575219165898145564763512486925649905701482556457720357120805757105242626052223753739386689951636445294535387018755724108224936490017081688385025358309137279933908002975591563929647436382729946860407847529989258332501826266252447549932682076729163773133609919732331204262996957225486352676214591772914337930771235832689621018505889844780504095593620286828360928697466449868780401420437020461601770618319353015164508951185618488475019450482240334829343532090587029870612539569528470434457496490819295730421205639103182236238909017504505093919975998611062907369175852705478264184754924399956860897273271992545920720272677658125673784412777530608519254762565691970184947861803070698236607090622324608882438909170503104368314825548464801140471565978387991655912830351422223619965754661327105272291055873352920269190108765749224645941215451412050170333018988767198994890435538530763952117112811212123354934266887111564881203845180151820919574246581872473019336603265414666910118858871380323383795118574165700478999669208274538405404708722928295308877699389781930525509314216788303349063813148487640096804831024512436325423578918804446736416775143821011492284880187480407443133842548879430173139366887255923529521720198149753933624137800408027358208757478794785188128722475309801439169196374279250084062030254451648914185766345156887078186619590518934794597320508462964138769091129454447523434514132756228115558540943953757667198476848602098771402255654131713304209241777158095198975475061952964076943838696245674299580289673372019352990890866994404428217135860980783319705599181646909086040085606898833261834990648014843388078987135947655032597972493835436558787372265628082510639795674441377640121106877561843006649478645211327328235256128665557655023274221756131551481577457572701855868209690235832030702164890339527752328643657575223602033507793068824215892785744594342403588048968656858552861841142364290582265343343934263277439870377284788199137566935421670343160252566619305296515121634026014059209847316035143135320016156512065212267568582270944927023166999795650906465190185178529214175317381765996985552835901032485924224290074879147202998017916426321574279355899540675788506838186470547389341953086793055865736258578094898948635036371706424552697598136513989888619751804936014123643233819181929011745471061458061001008104366199648326370631238048555277387893554567221233042233024496363813011892715604823565283805670090911439676046169758439850916980775185377505654465615951417353141081547194339981814227716612521131819142177343014877768189348803600165512584993651108112959777641865503654635640774345390006035601208118499211414957885489365335943012671607367603277688132254018059715458928874761747325729835925676038295451934750562491811375969638398423186179051592024633928263997194371458933431363876052152877736092202051505432824677031899367661499740936346430727080879824488553497634895955975301948904230883804282208304776603289078222545093165010262136254053007907325362533263094174397038946488283015475630221901959146504452526125584416334899139837777114034120517153671252627700603125031408835722676492577791495569524455661011450967718815967059664827489080673707851587109327225818006255004228259210785247483615844521821322584117143508382214008783456516863860327806120098926852583327423434662973943987561860136694007127514807985487927352759192549958992160629900059030500720404696050539529910472656012770016859742561936537487414503123922709379054032258119480650058876353944955470664486714548078319216498068634374526886212256204286839388956863900672536390738696330423213424906901382027838154467144147223365722875397134175788510694811301685990446824829798417990607875050348434750172134168975888473381975288746809700676644275981542821880552603898060127797698990404456934913126867781532376726001329554756544203591225163020249513335130246866128625093924546223742338903570749991701987944723506505960508037198985268242836075954723834286447409667210711623912228073425006697341334297468210232507676607126062458259274531191180390269355115554890550577109535333430693205037770912523587576659261198096003006104924894227765972978977207583145113409633114403261055732891016987540635756288210380787146160394756022961086806335982459405672448087846896013943343717759477145486519287082921152026715804686147076048422568129064170029980788436058149288751098240311236171190324674532306151248455971811837110886241810589902805455332000535964175145729287156707037920985293377826195755327062176503723143030119117646816176772290777129765096623602496605270852059915261143087810423678650776333755677659330585946131073777076645213269144988965233689429088414009363750013779132758235527333228030064469756305985814252072558898997390038156767814635033578033995507650172724682027288557489318204767873505041003214554204077454576810761039259328928429167122031347635655004602853300022613705450440019994507467806911887931691906414210133399911845796118515552072895014071608197603796487506835460897818911358395581402745454938653726958600160342964733977395565925054043574270552189324403019527496485995846165231781487435625513364283941568399785987916267464214328427694898745222472493605722076720048619761507757517977154310260962078095961623769758532996044399544105819340443573591664145749522319818474307880296386015633556815922109097416687883194921651683565164180313254011262509426519726476180223036665591418415973153474582477743331113528593246250677861368111389420762356921400712986753210216883104629007810651621924158792634635988242057533803768716463365338278737366591600316945450586574516048893476780542188547067018041683253929877601563925597195548199722346190791408475988602876186442924210475270038851818139037061081878711639770793104611249552081602799815595692135423967409223431867365552082908667620223825057119377770822171756486622131186744019130015052395859498526176061016834245037930615590439852001224453766000293721671280096739120915145242312368467605114378321487167510250198817987310290889711801730414737727405010713830532775769813483221032235604362589199750511497796728172686967714876079891863305314874968054148647093132401494895365164136778560455930791484594572994731732590359517824178115852874904061907135165031650297492080468060986524154380855418202747279026288059785818840145700638752755318899774957893099125305598420615153374492685640342165241749907040193880259005602612964076263704395719292047619247464399954975864846583222332090064544624081104332146825825305223763834491403545365802097353455949265561315742936128504487376552024592105550145993179579977806108478746668739838372446818996798749312428457872335075481464848573580753656355270661165709984148004196553345680000785284557929673755977231299828278771882172382175860414808362249812583187201159312140167903984826534180573023548168505500963432332975078767923542623333725865467242957760739296067179312518618901804807212020653044572420339651147453832517620690401674013281628107899349772633167316937597435299977838803775242743211091504866788801245271683978061922018427044722631343696693088694948471102472565353077081983657718696625255985975027459686307187165074226586391600504472349658029292165474159307139776011958178696269812488555946486529517766976430027540128227842439639418087460305435255970152855615725540969064788017194710856042294740609937029886830593526651900353132095948378194294432640970403737759573642670106276675575873099481410452622921667771125920711185230307661533639459289135595105479149606136165366356820889446967116698795153004476166851624471906355636100487375629100445048916338568070215228857266140080711014353440974484508045808739779666427309860210554431529090797186121084013432050678608677503171152423766680261442656324124779445989803014879073170249864036538401559631347640094380483172357675409670805462892098414771097263398365750088983235174826756849458113892731808779003497522616574486179498560090138217474946371301332154330997240145881611298056318408018406088479059065050007202505488605035401532502437677238300179763793728273391817500523275554854086880069209265773520396269073083393604544448641056705911797902905537633499182779589411108502771255361509233121657569307818387368277240587098470096954048696853901356838142628355867344973180841592777503611210708533169704662594928396917463132825280438887439316738540989722022821170803275120035432687698843325322504520421161922443554998341998012392345078447924528734760253603824924753173133166702398541861668521716768596969789587900410324290564612566746360406127221774978764735744216821611705255610255875250569657201774709755595800820886528676328355954529153737182198059859209284318010225461037824921006850461428141834612612450631594590419778712316771096730048315280779398439034799041611793600447353625026245907302746020947581776795887094348504298265530914405660708928158712669679354311380057670993703537996463087296871101738645535001975548129843847024296280040108813266794292457036517528371819152466781822916630701582103271670049732209379080474880830528975914531351724143151257835829286232221832346553257210485835391725312483640941656162816813181063520709424890981467173225524002560968848718235271737163736274916872609681643836361008904239999642921714703851540539920622645164985811679466532745212186173541798355733350133414237324658421150483261484956910969315151216162050271531475958484868193656664935036688618651632003328804380713322001074930300222155840055955822626779956319835849810375640159716371078856014993067861727603398186309836284626039727528386957461686595579211043539051700366240494962063851483996938075316300804274021832162135304000768350653741665355530571437663587004328368994689525183125478532980910845491211568367906531948788326607360686429714584897333647274362999643214224587063949454794882003296873771294001939687189993240346901147767040017800568967275484933742076663421161666183126855025370134789031575788583784803789089433098923670522600385079812412823028994226057154098357903389915447657453246121923116724263043646098356230288877242139156039594863081682351163854008500952018433472879519804410825030176695596337449732664230463922426338875970048591405132932315241073832114376525749359012231902094076732228433124643714744949848717410976881234616709993025176175719844351918955862283218572169308640450164268522086914002077712683263415297680576974591874762167575738274176629497440912749152247504211599893674362141299891698934058324756109204251610756791872298953932548078704298247966704574103989022681320735238015423232167664168754687217857783750232017750034335449992672081528147196144492093696463065951778595599564281806925151816200056100660911132632779681572432446209217721316722013468246091444027973560742472438766997720334382213590655809857078940112925900678005679320770673356758890529353304512755399817304991694666500214849349078985658145069084868183198326273248177705735986383586061714174270053336412413105296065338962772894671219378042752508019251299225450175092614567997171410895233333826459827023013495473191055463396720116743528739024316645323733340349968852604059731038993685025451957766672237319632334904289516301073726095177818947829164963084772363705196430344077370383018723024293016938500208818280074443350589490649411465243312467694725998728926882647563818109337849542203376276865589160327213519801608514819081772150971504672697012248063748555399122322952849833483258332487405544711801744042036465193508370987434362829002000956327787486700653340415184129134813676882830363630917188139617802006028617371242696092672590228433552028041605709663844146829940962337267045268161711707160960447477627806157048044563883905058519548671468129324492064669279600671328246891417953585923038660422532143862371221285926783135010636745087816040460792620610274085682530681529800092799302453219620554782778202045566008657486554447521013678180214020896675884477422483549087211478228470912770913448831041095941412428456531832711340056130195314788082737909102129832431025300560210358870735044324241094952071842194183369580037624772079437089756620877948495769959971860749975372297907675337284061557393957559498176605012403203582706491194147383181858621225382012913311049135486965129268267802628539882382551580875456602856592590958543986492234000945743789047390408843520822129852323305059498487027502479885446521413167876104249817536356960218774076572104054112055962052364462550438105556952762734017758271855078352875792341455671175608282476151810639385380744056467555930663497428843160653267655764550210776879934053552014547025233615262244413688797911925324436972808856197750679125619773702837942976651947225500570080509312274864304362404038211413251689491541951901080986114566014872747413821358080535777164271003183987538703918774600943005485883723881475683050217151161952688706141879220951255501678198246988092581805881898832788409048496082274848216167059498064065401179928331363913680476983281586264495724533302594202714786279454395878857230874068365388956261855696544105523208416223364671485848529531523797891109690618389548271292569965571302855283340146684605376946898527975240093704196995247513460265408474950289242664834504768658245605431970574937808852343080915271211146294541630891719106697267545450259513959618727103601369784740090650931636984936401722435530932028883724802168382886339238551993413262347641439124097403411767406764727351006272541537300769185431428914757561658677885186957122265397074914042097200591450425237227783273246717966949025691099687442159351997510818729789955619557111793719363478805024134888779559347849755741206527800473158247627899982254034241087096858399385271339629945973978212136322461893746625657594782788362450652268218038224148403233196418385920806541019302150552074944311268328102888270411165977051218119673987411607054614278467275540041218836303715182232666679340546627975570001380975468153801325617382940069314821850629597350613700276766318388727045906407214788911037174568743226931729704489077252809854799856680821034987570032103424655457868893231604808930244436305567345230470568209741980884171889235921968233578655126328209088074801510201815794930299047213563322408576405307635718037499113624171162301725813550594837806252424629191158412203722428803734647515636384179024683592903055054174481182710094636809054574024009315383993957133912264797713816036760717956156133077664608582465349287243680416283297010852921443815738807827117273220808820097413676754505550866187843110804155692890571473093420439131899088656124884988443104273561020091142472146504316246683505510882520385828800816235540652923063462621978205916126367183249162186406876584552737182469054122222302962982651701094627724356374713846794117697957248047553030532935373547485394024908806397826148255554425873587760657764947989469741243839166585607153832162098689904803771054042648175661109881182956752872195632172106120574913690879347412461139639811767673057574381558679334050871553267241110998505725036708902471414853669762938218596934654763952343374016330795360123685867388139670153823354537574611588008888239384833310048318508758129313624536920749811883682964474146959492251609927860466383393846084220770329862872249978377346769184462845889637810650248909049011089934047509949928555030880669079164708976224485669649632633358942232664457393868824287123430049707938755901962843599476768736671970982537233019363566647997152075756662288074443737148744224774242281113675344840382300626076160211269193905261017069713867097468090726281680039519865732472824887956176611690727780759498815889664431524416610159132411376212876165345369602861119198713465785423649595804553939265270467500041581455742027472490629410281939057324606800546629586600948809605374628776864705322321359591861509079007797936644607210162750871667541111042945493578295831562499700493482893371622233571279804083478151852702487486444692641661360456041112747572973870350545529713109068344388341174959176079615446500292926427551085502205200142181745314078149194010330430225082894593183996915592450672183241486657422057855806476305137036486206455982197321084156472606223476044815817835331000343544740941253343558700380098592763603955909008520974075525662682455631701286765295162125764509954126987987968622074900721147696235264369525012073917979635867436047096952788432045903174262718547969752776232644992619730169079208954839481790613611085171863283358318364152197492536949447496768547168934025012818509771581813023168875081698391059547409328843404300336506934757227008676162946800678353279574117417798215693557466441477970639977153870331913637597266690467436896812989490792013421720092462100509993498872296444834014879124195846314895465200133881305066311812423807132638343530087436292560386642244793693272648628808946845730768855873949381457616555391794263164268634952333289047453872368388171852278016380630706271239163667853726671936124712598140673528101612252441621781004310090910061373112899514038090436233113142953490119261148659963707656971967992266568549961366851675914992054463060044599234803688252249259015702637888605843227458897759741341649356055698380413655027078005477343065960013547674671302865766119020140679466728816344300607224236974511851265119273881125270233094963272076122579386239518686113090494963595103082676820736091388429648875974751185699914005524570373468744565318188425624002672624121847399114512246573707770357571357547206034682815356814964869573661278947798916143693370864394072743115756823038211482774011142196427498118796805468220602696945880791005074574758779766651541291570079534122967576669137419678428091265454364518356154360665199303821355491904406578758626110189758935116379979462078047103901358422051090746253967703297930643742623999060901651374043508217957901475131947101063626696456066093192774991315727954913482623364819355844334616135785713203285999180841347004640701961125580324539199202003514628543050186538833779984246601996249178785349459191233322863281359745065565572092656613442884106951182131928734089973518138624325658935523924580189402939384046417376535546265501123322304792082305479180872564909148997017197815629621436022171098112768450461102767347601719478340052299600125833834080646240812223770158911979257538231611822024279486703655875432961333645081273871469187384053166706685761557562103330141161218176264123755241965086499280032328759216568587077601204594541710336367018638021324847681948351082598311403471110905771130322810518783918583193697127579503832832819103744550936613933612036618777157071337845283174439976084259592336484611751062660546078629329831517812535060694508495553332505677184607588405667766623200641309798772209824383577036037235684837077849439105664002244740870894881803442801667048099960615705116633273672733208682910696288569236480233559083763533700596600117178099757056886127383464325621830789744593081973140478187338730254003692084242125127805699758512476760461560054187270708188594610925043923469662266740111256630950450420134860514492669426921222925169307199554576288485232765658985457603847869214628142451370520038892231801448889165582220728612644268459397558368054397334545493093342621427388243701445287078333202811666855557834309061547362323309358141995811844045027799974267591359730896177767311129076423134543896991145995822518475718664524461277787659154321773204967704537517483521769252231929591142705064655788171406987485396637693477359632533553258077204389051257255486208044107026449485957262238049388203629420587311068363814466293324279870484756483640295683273517234439286587347085677268890587500994904420110178963759097936308347413676558044650723609151562794518821893067698547258226060117352718569059788993525593333050797712508996673796183486444884617766871048805358130397034227990169850849554358624532010789129982087620076392580029250668399559578569276916643132325884039721452562191770890026075282093244255769070680313892877383107778881918785722668638299367717742947216858085765917155368891788162039914045496953952936436168285210535676170724596463576965024377079857702552564540491725197377661031554823094691908895195644765006456211528741805858584116776909140139262876130912470235982016136897023113943894392180365102419460746300159551889753689422503479395157864710266803071191148064151850311959865058619829049305351983673337128323140233386091659150184648283785238344432843078573741107639101987311489212977745100630536263615337453981902321755953399482208723975131594769439105719203557488970980434557946316228148345739117568199869527995178422866715166308664689379369793135157983056061242590718412764913121302812931743048322516915642921017556628786332071243363325812675699642461697737867293071253653175961169788365932229946125921297164201708143475457206184303446812291276116510032466162666634650415996620752553914068589888853228460549908131168982281600998193330384764631319811551017088080042276130637093565907049495766637194803919559733224840451524332891265026463344686698488207078565891343802279089526254389851509941354043883575752184783898505629360886390779407005917837187756432351729656841208373428442243390308387301769758654124468236068735943927250491815390669421048438672158399898773936815337786283264034497845834716916632233215297418870780030094397334068607757940590059458387569271883920451503516390489796504220307265756343805481834854547411134397212394876114558186970313492543872709929845312662696679335849086192803994556037153760651076059548689205415415427990222151879141217697164215026159713061401117532723166763242635454768525999700774786935936696946700827331266669261386249741943295193070191030901726458487951438357330045362933994104956925008360350343589330293460977903539217519433492307251867790088943246912767923365891720967619889011371334193371472670669844799329337641712900203681144247397425733733323650634838240641270680144553385639181864958126601363524271811290129999551264453975679496521825263395536508544758920810806500700832145533955752099960132198360395509432644729401394966575969221540375555234363153324379543331366709684715688952185423507909526640926597444478817806114819222160597265816876799701617335089036362574475369955593955906494929581485720420065246541948423927544884718439056706978149158563892656517286708593650013961812680763866513876126340187346002258593452495390700656313088797390366619948294973967211160087346448513388219787622401214447512637483108628245042130872282359179959329179037309654843213910657305718129054895546530087340809867755684740055942960284738417204242009413871204869961008184172031208655493893991281857366261298730641752106831036001951523418036071461404451094636893249954184372617256614330092116915133307082046819222627033516405756783452464161886666188134237173164254048128500543957277723863994394251337572603188306321349763784750457023375945674543943900761355392089756359603166706884948290613176291748700070396774977639955498501540609754900073053549785110765706876035083250118799364103131994173366219248308942989626397674148948519305491766954126062530562714366937068801919838450482799210090678965957296636300997498228362377475221065290058051317293092448245517116027422744285039029345978586163350561489224619820666730096440403898684865454708475401262804591709911120418852457298909620027397547142283642734611806089158437745812096819919686279027854416383542542561128438968168902176265170451117376163277930414499142350725249547228030077775801735424385356699337339402192888651161134431560033731002581630419938592456537945387120213201145160162749630881421250359519078528078875943049197064571203755544220109298537605377904105252242774509114762638711077272611528885888108980210258846360201913906323986336011922164016026156521299933400064752479973160802811935230630181089189491537249509316550220308101053870002032367436923932386595578876614273210377433948120037271697082904796503265374887256238404659972130121231496914449564414327478729887115782342389928785043459376682079926995972013256548688100584784719689162651599619869535925182950789751994776859908537994069646571327918259086407502207369636624557508182206264760209991944506885078482948244708915459247694197581505468147076717871917588333640654703308537136930812079639594125403354598390732408813973199265688569497536999467303181021749545552391729907019794102323697976201625146945864913620698529864424981637577256830371900127031836498095719815548133324595061938672933194119623592874083253031333242452176851421242691253907630225099727959748070829836409513929405027529419202212150759534471849475178643031747772532011054082993292810403681529378266420190328677368932246879500659392759531888251911119888137028100221157381901584914385569013640575340188506258769898524960134816529104439734022893276395111365991880709596211483096962080196299924137521401426768603126006357917729760083895185542942855863418330412636538786102280145193001624704973787719382105110248551935767068043488697879514270808131623494409282780828538193416426954002771611172167432641339000776786187968528288925731358655369292273173976387936164405687442550922304608297312221251051511701785508432751219459362210211696985794052779151679988010409108434304423629851234762853849393428681272175014877091608558306267639499366672501777136201299250066577688899200125280694152362177334879258168233860121144693635182933395610562950790938122006977867777310490756444129720479799392260455535638060891695664573634842321273550244649769768878541503398530963784858579134416393155885141320679830513835994897001356493110316135681471273367387147898362456128589682420733085038033256758447703134044633083034279779054416056565757323513424679692678044665247800830163141874486075743918570168270398762149606711738982322473212196994224117301351246221474539628992241446284886676018505743348851962896870101367060009801321043262627182927072075443748831502771141503345940072976389888627242493454729779513600011520131716682201657750474246234898581073124963390165383606385437657359278706837006228187403132525403494836112757401042106635528045321426982436747527087712931650087431480740596201017469237312496700503279956456932261400232261189443710796647218931668720437336045248798305430286403145520077994593698002217275825065696567235799048890001075592930754427597483321082546268752005480807704538980566209519413329069692293688365000304346139290435225261782287401027909144268414150027073585089562122632900699676243965010268471841560080513083986635405011522769734629566205716723794750677108952657636334968879534850885049456562616081004540102389445963387923758285205866585402958702807658826694946912054261722027448166016810629871609995796337986768753466650400430495288365960167317061148307293757696576618923948413461177612554155796497692354404302514620787095090781372705955337913920948609225219196584853173948257584400806610898282837839688784841549966061468941197735413355224183957767602725825024012379408803326953686531729007735679378157843149088377459747364944889157090064953123067169335894355227977044595816467424757174408778688758403375341844799362006836053365676010052845376869671384714199132333730851930896212906726608208657805298916622398792170576539744714886100754414381364953915640232249938853171812777161752695420256127645462308026169617117034117873351202523706639167576219256015664815859595196570866233680389604568901057972248983632422050586672201601494367695777282292784019450159644398546881323533873976066599199962903452120896989391067301933179896474499145715219653949545810480109513096617279262174215216614359247994534054051164761942746650340875404851902853971555153191235444385997712887382796282865106074544004816866812829923900366554377250564791112444620755737072756516289133008731351005437359816077472336980610740465385913042896356451778691041939283801702384072317601132407539570774216598053624476085502632525140339850948730629357306226898367262264038197605469522804929145782790978595727944097179935166532719161618849587068706730939486637241041162149170253766070631257283108148107569047515311642440132207535122283358438787794960533352507228106085720394103273934795030113331800797244237012485704959433913715408514449267137027684091496314665611745672480949799209601798387413172816904324724477822834951855764834411691917854841663182713980459702753247643852018685475102519574059842017160578498986374574284496284141114901943378805144779550560091276115701925398287263382960158625995945281931062275793583972774224194492397413096240927052929997845891446690037522727269061299448644008769839866548910034862077607016041900486803217691688505191399065897369908748243662560748132652878162478955394667419743749939918021432390644765890256010240624705395533876956019369132626073034281743398270863987447205115861043238420160287027667689051867421160451775611388758201284670809505345082122181495253176833726257700891690137335468472395918696188425133146162524741005826411901314414329918445248569544258210863870682818886155306884933634638486955674349807336847887702647095321561563782483709428159251998139433073375685167306800002751149420120213240551745498562701326349898981458984393157131916703890121257401275483993816403639270336997137548487400957389638149588210851282017874961638687358450726087214463943039412348875650506121640701826149365949903894348520405973520701378106180682559780640970636011220502725150122340080145146520434691359209636058775863223301276380304527720858961670665752603432496591363749375009284254479145777175162912635382910084651951297205803538629536250202219806850319500834216023947133349668715943752054559791084748656324907668455901165517735911337800049115527489634752069333336894498637241410796254826417878995652476024518221322412324856255669479173193745451363942173181468554537713697702806365445303746665527090575942328085855236536240320139740989574712158715224362952439762946840669108599809795771299048646687692506318912701065273841279107786196186223395027904062207330465953884762467893052559665139531114563214427519102550188663477277767563104273120979943256640140256145999831582480286999278681282173795240224959171270238632017768206057739841487084591974212849116785910896975290245132570243298643785134556063720255503384699383505580456018004709704125371049862514528377122157823496612249285403331625064806837804806848560537768877718445697238455286552993872030466329816315684345709574231470192791723162875528922316976795717833926564503218261733636272913339694085609887243700577013772615708731077906374822776830861374936812136537672207177345444741503528012568620815907612379696083094351333573016595769251783684451972826800818507651784070885431101101729857058942966534318273816866703016888777102291696686894291374690132366591260876565045256190696196647136885239534373593184531573731864634788951020660621835691135297489108248075681082561444721905479583460873230751573016285572433598719010669724886514827553163560464974584120973781371555195082242991503711053447688632863369257472292651580534963556008631812513226651858989412114384357438042438233423604478598122432388324230594877635624641599549791416439444150039845773775132482128011014479990118305378472661089826957345966715538716151549254490893806163740283474548257025584519011336463799126601174918011001323349258054345750324243266679359886603632168403833314481230526201077466541502434963771999879646350411948120935141924036310837460218068920650669134444996884572612900056941185196295029950968103957908852366918708906967690980214199943244399334597481117707096254240383984175435608991403226850303152926562291232570307697585570969408987683380694353041632193535655835534028086197857899981592186830600755884386715479968206461187764469772083168722804161569419312761045081484352454510319646474127463447740762480673399435630549879221659672025730011867627168680527524182277866417226796623733195708353662045782662746280892104571933838066466799564498575802649027694421409919169365611762209384733661104016466766147392066551881235628915793795263892524589190483050878018633268325751819646629405486774006998269197611795302691584880554503660000401968460468272780687756531579729724282529164309151310430566334094972800535006872162269550113134995833769872074818210171602232241577995912428850989327638645790955423037006366761094251938998323895373818266315559742310563528897990270101125002348392443240958657487579427609512437067747825233601026882977358467767296848774667157191857083597693731715667691102355172982821258647018412366184589647497797278866178584068149466081587722546065922265761413651118353500371849721776923487857667751611590450480310829418460448375389091717245217856214962031709927558023591733961280297557284017450378303308024772925274404472944352636688748077665060467336766953611381099612513194163776470325350341197361640726707078004908432698204662523695318582239544824138681057975442309559929360358726538925097035533681099536794766301067161759874748834231265490065380848287807637581568875025118081431508323472442548606775637406899299719244083078904736818674644278444596017272941505437727129799467167455538803630226241905935643772523190151211503209241756981771001826563074518569498616059854712929015331993039007111424463454912005288007335202588615953968492369103216757113610251078903089342855751036610786783493023244579020899422103171926923953565910283460111160857487246978404316497240814863117876490266740348253231458500691292676398169079962179496975289423527727372826635187977007716576713193685644497542027795504851223413754140301770662353020629661013291523563315194038001694790497593953964348986592228642304628374292462035531008884816485559053226304488973944017350628976573035001017284019080810006560723497783464422871246905503241363668981268519539884899644457115085270458056887743354629560192979984453888117634621386669535706403470756310066405467753631725259624833975821585707811791056642980423486648144876135024203579349354963329397813061734627427107607910148171236762494070478340978089130981762663820507061745213978083254581683285577023455603580175616907887983875477686285556742596192769440294793278257810774124805681112392712787788106603044341589846373283588107379116837067091622384353165672041227928306013743014906184365186700222630412468452689829123391835738337228568842600751109609478023922805993164792839039771003723021492144053405271104931814532792577157262357996872514153238339087310946680771268839597085391084636522250435146856670423195472420006217617518028018928889335340831646043548793228794765036389937153319054073557303482048980122340534933995364910198607221642458070647386502259603101799129549687970333630693523658440972314727006000060745555050406334005698445772299970111929797371629657785041491916365668278906191678514411571310223571546507815451490827839626115289791322321828106940443968894816482523087147158088944140109308622806439535620483188224675831538682575780814104834776777240129064169280683375976990977285146427894102418873662463462670227988758785145685260686327819775742601772219646618740395681570846786383645722235325269158672822705505442219665931286535587056889327361329818235916953156060548021480284578874734228570575831955048793019130991247616769119128372688038906493154175575961419417339632244415859497731668897115973160397174674005713081737084579871545720882801181223979923983748338021797320892277655052812494793368918365229348234706242367046172520824818256645818117571932087447665718256587728313694290825802160814332881672275269486294187534865404237632410410966155169036929944683389979541563212486375670682024085800834932035983117615556281170090803540187067233510126992306242530056192223479550148452783488178605730871254722516239870888785992340186517363815976523915336924760926371859537737455549950606804870979400411603826665379487654039065667241129130786474252212737575131634105013320164929891762469959140419807675965330623264442596209164541052720303769554636599010877181834008076326622193524103167829750641031895427384553545005597819195833417129195522747597847672183831210159980834826486344403970028735636612272943973276275244338091648783457108004231018503661302223310873711871367655401220562467540859398601054297407709647438655302065206936109224594146321188166789662604394654427728454988697995603910375015237618517599935726498095127151577969913172391814355705386131899219709566339720308660569458740503745590669201985457814896496667995522427718927396344902619001161466652919887739933656313233282699306965648051992674193981531810784879478916690388212612112337377845804816287080940822424042195983065349186194536805518139891556922535469757624251817103666518699494385521869625441008523852788591696344548056273988584974454577630425047490678880281851307376658417300188030740020787911075167649284983540922933136851833845010947406614413651967716511635572993904654564825816096982133654846970482665864067389826778341684446735775625923619018599170965936724259668117596054884688725312516971920492109216067525316906545976850063776850570522891057597841401521970347386338688915236794693169255450250574616372643960119645986419772963119660489728227834048886678737287532191302108518981132740430173111293916375802259070730517333624217937625303555918327284001539734719511644962442653537212858827614450355731382127717241001708853352441857681888781670149688619995489725515054023034820783079843396063602531605889649311966715053977052196457836184264531966927130177123588785252783618858165388082520303359777283844406586690712080043380529603827804537862194443368672012607099076226446286195357827682068290388830619553789319544750801557388789198533671826473250795817735376381291727371456329766333692151993556680890509520575300716077745700473220503950846477521140672691303906740380887083303166675688683763312255995562383793771964147205798877295954325831291271028975207238736401645970363906343330519189727946798378123111293667629304446043579301967598626583673158722848954494895325642066918633503149068791802681733224220514397600767841080051422306399521901248506834330143829548722916647855590220598298639028308614966312779235514650354819699776502168744274278293026142716217894790421061051694086300719989614364220546194196093365799458797543808547442596335105013178657899158856490377939898547630011868385040349321536926101924356890008147497464477904460683674915667512278499998929639212068484377508761644738758476208785851304692001839199698346744953479112099231442929812523998389184932245310846513580526163528914248125126683276997733212034253998214672139699106190508814003714328275405052904740113885379075841075025414419913195712967051019353470311239982853897168756637100596947328795579863781106782655772041156050290034366333627094780072537421890485938120349828516134823632684020863450765284954128656961048575199047950049767622506757506250307313715853288072396111110761189592201361556956836424861413066186826063910783240653812440964785925907096399254544273440881077797262893019896338194462679838859414654863888825469669379061863598777775621825025868318962706878040939032503609655617841645595821794379116944139162525969979995775688213156195480641568351743652175792465512697239009089331317027052817365850030657102870260651059031523459942300131575723000553045125169062880747136045806564705516559020035000898714355276005245875723583731233324141078488955625181790397029193329131903569993026546116064729640684311937183354662859800705453085612194446010394896349095838851579057763655379775537823282895055874733403634232496797404171223367534576127392798564649992846317320811440666274142706827606948077715694135568980355543033023665974127819467635426197166882588520968269787870363397508330102942243469225388466735007179951758394623961749897735647240102215817851610777612826313710437878921030317324963657640881592689535946751514253094664134614558012504764642584261666144270428233480114182142718409297494014962486765340504357178816247798175803342961222899887810373257852816787196382742627997698445709857923499523164381468400691009975781671717148284289758243378403464829357143529302773326478505710014678466815206116397813640745077353876989091548658552142530307722679968879008528497113210813695848881544778941709536417891775556835454491909253662050121018500481630161930082325800206435838195544959050982769190890716266761734817543820226060732509095832747174816564267549733595008876986198317823379393139101865745618695120457281448297103273990581895866807805280605055183489684485556202466481700434561847374255592481088708557231634087684788375298641261444518286707223127141504992620529944083838675762791303939729146291578542869025053504280914888218577942486762555186502804048003270530079929238983375830762914094658395656909018807736958720650065068514541069465371716727405826868024865191446147505574778312105399358135352039077751027297109624439034900372566057430157161771032039017457680757810817402704621833396301375375845774562417302050602172681423192757430342678793849313464326712089053028499209845977906034166026224425863284958107879454098290149076677272490356348418217147961997247258911260322542564831072636088627935165183106299212680039867093920135297402674786710891763962381047932044555385054443143883969603889178019735971309263297770414442774330496239398416938090848228345596829323335110058370001605820466561448769024264970981164403267283546424140443866603552467319018835378830114005302087269529385656089178541845350517014333282937841439680548443029220336232569937050401118312977276586625171705182264114544592285516953288248034280537388556285209894062134640468322801033835018731371061099164547726624498535881015975647460335839645861283082671776031274110530143243241921474106315310265685319941278979692364128974840255095544145010202902668050349661117432972987633141528725544520390555084854423871140740405138577699309678947989584942899522704829191318674481762172702205988643273075720390836423319680622369566523972614150470674079354102629088003760475070688176640398622806798386616752970834567117761362417585335750792845652323645332380780864040914677420154542000998925272264131609046269668777894848009351936128791841162289456936071332170639137512194266518811167733916163542931677023976304876992794430164539617082190520335427954584886759759270092579188557099752695146826446218815759000152493666844971915027063699259874566416554217283184486558343038189338720435122000155743107397605870877391508153629619653727919335389487698383043562068247901551791381716549986118969056626333373094466879251625533813531120871075260135207259275735321851218830724922625550185763175592070454670938554798269638684014529432616203453350262662213889701533961547208953535283656491500111577938482667088470790018952247240547388564697545441651828521681027144647307510111453933331214539864973179486594241980610550767857408587584255175231376820788156078501780248473483258440511219310015287241419629612200854915341147851498863748433606991709015711485746983526571480079703206781897998387954070070278949251104274653084513442556979036280207544470840558939895222623967670973162256428071167729381194236924343285269755853499462922449296953068667515701631197392457951190117407953032739242690823342612062278451234399470679092116683335338809399430680530988655411614983375064548359623820507763232705702877804323904086491268372390416918191219557426956776302029606067320378630474787681711251917082768633184308056348990071766383897226933275542874402005407124420658661471782043847453264185462801898414695711069166663909556727148916251174192139072037792597577426502387722765994444095043103793853797279949416056313895806323054750722116345608968390093601538544996784571022495402613338252367693197928223435309840305393492086836659914528654806590948572572600156153012322588907021795393713189798382348976853541221337143482107429941296568433101748656852434297873333603094699637287455010631265532888839784634820306408717046527319554494706982158773607436105038428680385082196936264552945234051451726200898729179661378951268672898252590980505851161887955199807490616470490307508888585214026686806524773167748079809572487860333974481074689733242760630453567428629610335259209672793513079162515855646027683507493646927095867677294519138473596727659622032381552114082138305196039072919218385957970162958204122692520266726172611068781865618270477885027101971017331999838393919970984026205862536467027078691469282432639477690494102491110691873884900110895180061042308083741423989910370544868047107307511210865960261470690181416413958786501321427102325490886747272202712546896596288430223857168213053345332801543001058386735916322829455804815334113226686724815047709341418027758758084347311703296888256111957622254239709207163034206442437227717283018909766916210241855387792374609826924765612690580986447845735922414309032664463714962947695623194050994805992924452235986962350463128186053708144451710474716059975160045523050950762172438724634960037328637215936638392910888607037284616497663782638636680456418738790967004796302395578618856275846002949576224963347494624833813188865500979568646425614085439577436795250677721647114606603786143044750671284636277712257521331045305167492180131482261292667609820491511155452277165211477265330236199859248495430905644281892341269956548717693738760788088906824718113739646844727918760977658618337858131816670309842456642681704725985924688522173136922588067631115324133610968176129935511800053775060474428841953577601224765715192385426678596518937182357892115736900572483408885277752576090842558813107595669462529184518960968069034843646382947547871662100666659621654796852595513736109201993161914112565429546566304154654975797814525655632554021612186987745730715843284757599024023865779669143794825576798248382295483491738924122230844221628639721832172377031633111388131085533421430577187803417962260109199911810928548941129753798387642868772691420045397939130693897449070185228700152380193941132013774933627887889743013289325395466302763094347719761212005623970284309058516490391647903942241555142325065032425225455982716590947659913709620951286372079798188684433275698115446430728705941284706993220520379703442114291620206048228110479956581227387106029507824776381121745149617883265937853957811822351150590716491176006994002127647116065026373017416026037321940147779066011470628251325811489233899650510417470030012773408762889914977870617924705245925832871877739324461429871351537403440101275536125169139276416994554294609488338510089571617377606619362684735439062206255037414519069605636397356058139403236473261354088337600104507710957579688636936748806806967517566193367356617348223846178251452909082768048939183332688795795214305496284084001762517667011686833371451783055912396240701700826770092362705692284062941059298512491042011253114751906028376789336795257261331112915590980070660135026970056820954366634697231289703968072935950720659768095901087110400409685906026259564802222160186675720929853020550218949840379627999768453669011149389230301133775457563947932360027728412457753196022333993357683492778711407084436525495679713116874327586124912724778493612860928716100539083570881786615797038054154218129083715610985402983617106338827676986995362128248075768892237441890885192868589578178017178351175886949771141430069762578188105064347188096391727399162388722650672859443091001189954912917309841608435262661708495409178630386628997515154105320471230969896757709560667563179263347676566194370147804255103265701928311232756884404979072212480548240531016176868111208217834914510222824178101248580734980113198018519249754630658037614942927781739480997509167232053282213727332804589507177713976562102385681341915501048519752363481408911552128015209556846439452447940903931493644415325438235935168641678233642913557658909530966633911363933198373324377265567689234135879861481957806667398502362752974574762270114167279056976614380717933664524358650571050689687410219098175344323080106509208524256723815551449921575955127619869252094539385294791714075574238767837026985256733244011070359742112736576847372229063005653923774696407297880712173382641548103942101394914344651466122205490155618370900880559717158695608900025828297170980195546027563148726962178758910603467368007451913240313958202115176383778767350434231619286828520808135175199870096665836720885762549178794874144246202189184638402618029228100639912711923492748002894106751085799483696609759001648595261289896720146830288070066555392273974154029766157078151790222664426995952594585484819215175014440748341162437879423714309637994269490595275210496124259287365094919934156191360789938300984785516787822555840705894955338700709110343541703847533829852491875100687905590611321818415090213137433056265748213904924062480506606604761414196880825056696449356794867816563660832817450487021230281168930169790792440968006029138614428301328706150461083996180972595829938563535892222039094778077023646828687072679331677906608756995023036191801584561740909514121450881511913117936986778747228827546891002792379124809361846952600423842743765672064153261022498477992294355477192824777784042776864023342934366784786249008667842216468064163864580237779385357962621859400792042210992430563681081733851368275892252207140019395360786462198333056579468378016015248777575150570480500245628951376008940641960385887828197779727411318403929900656983870284630089464174787581467693719949153820564156760519838648129984544805895302602166926047637625333348533700855014199235054341503692321820609029359978959680697061141231132060206289547907583197280618734746671138195978310083742321549406961963299288487641715945264574324709836613380413041184616573395097080471143287324050418096578235631058220924283722719471122517619478168531599584783050766515987652741641696017264666211674689793736331652556049916528999035554559469583351772162383006950552470095733875982459751406915956806382544312386960519452116514669360510882076946585338669736941049759463115582646148484635974078702921803649907074202773130516085057931698360341261054828265307662169996892571941979016869884996832503818889419277022910324162928244631766634905650279377721316456184528856010522865003962907045280385377155458137775321088137857651614779442462961412564190800883766266828022399750489472112216539930547183569705052764475386495845110179621305809894287418205365529667547731746376220130733495696028198817192443412257705252365968118972483740311289914818791855641922891156349989745731342263572400554986539061972671659520489048420983906614058137907924010135822807885644236717702360428815409824087014682797843100914602898294574428469406747651075686986139770944541598733964060482034280663429642226489903701535000097269699512466395616109224581218315061598666132576057187991292130712603314767587065123274226251210152636972400044184987964925140116778792973466269778472972168657725649658970461906802846961687831719148413974414003723141281338775735169640571249294478464435178531419261326124688859018148373106129481289775481069164173472943012873016736491201068306568621444365613657023999200819661926955671141107077441689039679254275812735967501656501421469539002436108429429102524670182360281199889382362853076289407776207179417640728029830992132871528137989150932251184670327445424563974127054021170624209455112315920884266046895998603246081149915257618523260534130211548759177317777475026054118276632143995756619151334115563688524202683458118732889388102008881205428704625085829038775280380948069533844063498447137256855819393131548017228661894102432047992626603085673856266268217469186680916080178131448799892576653092669332648780752461983428841583736148427003329206635769993023303585161735073657177224586620682365886378655514754925975605822071120688331333745369264443700061653645127536226267093078327736721734617586947156770664662916089434495164714313447003061429895728105688075648604082878248150172490826849099644113126702861407181259185446204820080706781484556327857371042655918349959283589421312295201770305713788239731414475168226715588696059725467111914860373145653181355407438407403492775768629585680477083064407233053185913726938197109539203655948883158798901311803489804197557839376013404474149139462280066967060790439860309607660800275711344248694140491658905131413197218379501840417654489818425223931851695856940945109679983903062511336387716422258499040477028768720169953102451149197700705680166302376256842417052612776061045588430927750940384366530443265477109635899367819390867556564981128657483815672473760257939746749056747187807688153191667829886751655677168038925146758232966197220720811080040381479323540834813197742602737268064936207134188862159300803698932526351582710436342889914845109674018613969756927132163939145090164920864239131336330176733213076245795011750592941423905178668956938232911072313758736873731544936323199009176542340709666560780621321147287357017176787429648855580313645853192522002155757076935166083700551387838178601859506053958287824057173301302919884397360691381731949521999229859188794372996383887020189094365175671325753039673999392005263413222470983655217314550205549500533447155086824814034983573397421543002190892823024470480444354286585374438133764539983711974668151125181595779267117553040357239360932287889183996804823512695877757828035807378162292799857612863655764766790044377140434675843730922815560792893282349643716135373315780433563155270128256537660978178731274735428268667825434801254196077520469187168750043076591839293671573968102308230514673567130131732673461525164321184170480065808401698969556282134565489833247564324048567439332769224381685698482249188383279613772464581908669078520096450958230605548389270420627030911219359877719968442058852234022845141956145028171061187114028468395333377043136952505256730721064561436453691583122208428565691725678003277836852476751421163507576910854317187324995609888386417373307823366452250691703544871132365805873567561723064038418784828330958874677558716568302500154597172473648199051557525407327757250859777461932668538945978029691385259580522224030548767552785778129242444471610229514892658499973023844278455226681124482879467761945735998999439571431373124998768854948638717414382310640823904202865789657388422533346783587154790577149151237587542620733930729456657132616775465798273656942869896805651858360628239853720668550728865622970955558265813457023657122361716965093618852418720040769473923037627530920858794576551082191909874107943836522268685491141719459594129571644880090029563201076375282476937880721230729166500740995751157606371590577986343434297496653065330948835701337052979843827212817365868490022084162657914466260415725317076782288183285086924159452290890334835796183306114826002424193703918380893207079487740285800255956861153240589432402979614747361904603899763665476469258007750567393445949966391897406762028315630639029364686246477740029779594799174780534635503225796501834384717860913573410116879951942724865271583089112746850186525502241381757664111383698365489399235631461151171489953686947045312962795741714566538281590051946826239143007564562866737969304445137638425071869232735469940565470743636482377424282897787552749868766399296117860349732660319654698937224251047325914079495264198224948810196019885773070541352169250231903413859034470331162813742329744734657442763018945296959514101653301167240686810374311537891842788381100046008249178178665856705060422755028659785851194863494615433983182764939689388265678588101030060305712622602055582040824717705406941785322368260416689680390094666008672976062312518490805993865321376925469390883612946806124112383437441270270617361380802084695943691658954703982727654682247478877585299825892049986973038049512565618695297040311266674871098153391914149927145590843487562896578838348211357530796242233595916301724508223298441256175574149094084901565981280722443667230292983165607178381640513628859398894135055758267346644666120535570753236683086433692435814739803138343957647798571014387480700564819279418089083233330257467025502553733392953039550532667488388296632037194803824635981244031038335745531362830817613867690475834485147389490270760311515038082693370260637485383221482258121165738684100634678223555356383933462836502686731655956960303860876652390615497901235783921939142971543799920795455496999062884773513953676400105756922005963929441337522017261576418872000756921013697690273933295045888393295430670613001521424721534799703257865197762297155264239473062657330689848781532416015748131030460480914773414513714789261187035373765876203735457800293703242182392648525664037985880826962031610374467558348082786580099139936706469340632537477695187928356291971068369226370407866537363187655433164826923459760125444751996272092333135538334603583429636193729836600928769314330047326096568253591584040004652093577018762010594829563403536012235509267033530027574455888321073564643385425237914351178220647579451136115314603226771690522961733996980844572643755236549365791550908591362433559949653451784928156625356377811875203262807653183370034457125199312358117977267236291107977464202904338173767677947378076181148812129494887944339031424791777365022652136789041056527384943894125929367894270529844205675772645937589482890880375105398917573116527154134779837056373496982531316447292030263616159330343076347847208903969425759990390810413853371039175817389208134919711824967346570119459985796185898790592965586956539695101007597037429273879980989976491728197531462611986572830389902979506745832482460012803879447236680797236532919953757356523113812323048361382520795499030307494001265830245794526481180636461072105642120127648859144997914567427477963185131602523431880375610415835318851816907058233375429522527729816468868380418469358997133831170771088675612418261793230707041430638750745514538128608125567724513969435752468496368794018404383873637331269157240626704063266154931615139468966265354721143726087860858968331429586825413495986491734607917661989025141141389598352322896250460987247825055295769834549211110237094678885126785403462895881390353719797076433135720862045013308949944072168133649588500942910552649300087421763530826445855567876037671299090716369908158849539382757899273622893460823309561756508012820058531535302764610711172921500001559079823609986252463868471385583854714069895239600905293918609733405880091235359807057305811996128296171129329178607668538309630299759203695446644177296344788177138763394870980486082452707274358670433392781527851711144340230899944025239875420309727112392198204282313959568531523780250158325821321166783718726199175674709235898465673795101336706754737338647301071557089390022150792527864223501433690951677691526470810280534044791826120087774624189044028684278551798007547739282229853369996925456679572942725276075147715473895194707688991660092509870941381924692758678464177049967666196799056649493121780969558375042749649504841439599455464401371853984668925403815400118611832171183230803022926214219873477612310555487894638650841850192931499965370598711071930092106533494444643339479591611885032981668696265327876685120988327596308090633944665129725929441680181030119172800725689114131149528778578409111712140982109778645746162159540685664491292765738145035563298959627515162458499621965054053450289017795324693110827601447573212079187634513997877858064371947468584189491904438385084288809283156584553161205782657876410113965672250240404210925672626776431497144474270929113286805185682354503444146656642767452101358949345994672170623905384505555850481115620702034419659916926668687836600274924676281413146907853568436014280093170923172211065433941726358545530052700596041453291589634063841540252843065855700898469087106642024353130905188933381252482264671571529879045665474268949296187129389391152031138748355805358354462699106732162144849330300947726083703490377110734152552250043218481551318622730593371523283907438117949653057263042705023016954851463763598620384323662203601651028950477754574681894508656413687758981118058461037843031851082249527778202184582188998132195423942716034431478526290424227943880851444153499489326337251270985653013393486507085411799393918616070963471209601804018758484160409587018240406697295363305149574640140199270674083785627566332979407941131430153628816446422517471076899271508148986173321843642465441649346620017242843253477741845296623221764091460703584122583837837776875103562332572417785469668767613381375354229472531697135941844746372447116797210292049071868535893535205414136949899670023628405423220055963356790623512639729407167975015636088915012450182748505662924504015361156006716538237554266783235091346878767798734912311365230263907012904088716790018425794256202447351374057624686599496628985944798281025607436078405160512532997339727096837890438306516746137125826535899615391755270172561516816948887469986076259700567758950532913831916680979474905035153549545557757393379947073347836853521104002901893243353004855403548120271088856699526114396726187865642495798134889186202902867243334579570590140213711259608692179481563294132197757393288544475540970679353261614069902442734936264726688914193179856858455530007494526903469446520511156850100770902032360116684667253617808302405841961991726711463746246684871158940838071013865122524072073093238934012283557465250821104131851855690505642005383679810726116179600217120979174333464328466623093735203979011401686302109729163485473742068410956212736697305334538586857230732550412654479295633381372467727422425928463510259708963633385721109651791031371296365929446704206588677159405174345341552272544013446841738280242758770025629772563869113252842452127575627637612181426602412276839219207921089690121042835440722809678366778895941045617781296037528722876574829231590847099427067119168443886838059424104754495463498630682016062495805535444056733551771070337376999778247504110039832107305819474803715321418846562748756047848485435203900545609162520061821458658860754361785412441833184239220964096075453482005563990625367999044856924413678429123148812002589877751616081510535241026221204643406406668997297635092793828784393766301174505578264526856666984431441550298553624244989099119538486929909191419800475040545142741089237192544625695227659330612214267272559251129665149964671749004858820388990246267326691196480414133576002246717965442714405261913566654721621972178494775476002649605409423013650276163266343606362678055918530135178863716824897838869165929451782748185515248191817579915987498331370662350143093486625797849978175458011601221237831531939752547996542625423296969168032092483066678945713623836354672313188839248210495520126330635413485325325312416128253576739243187878644832692864467341813144624872213328522477053589200961303215744846590422197495542108164850257944848951149187539546971904719762639864283492396886805967490926228516248626473752125133942912320947393787462797721919971750657212865522112745513882300355241842641606875941431419004987528299776278507852105529714835077239095519608502715929733212999008009802124445331975286495021010625881135562458832649950379079441883247649434851343736866114065691694631617506702572963212151290441439798255090813688394762437716458338342170266118575017715932506453660484298760716125275256478466673695187438902398301393324483650719004606289915951896153107910247267361274194183152248292051330904183241490803137539559601601008967729628554917390078566613962411729387677799107608462811629089544550455335160953425529425230830217717118171418112066645325879840028823074541130351049103949831843250486713948010019816111133562894536805994276079953844474980012929064452090614170666594552162861690611566111284307653794637378831433413950779297772229655227894790869470474924469388482099860769483617667248898889145867508599721378343290715916149783604092545735653189188928840768719982631176326850644061677696051494654152573239197398768746144410006188371628590087529119438119875301269057566313392040458735473834241880583888565871524035815001079990439633982353868017439297810805872435403542771754032576367526693357908643760096261997506468163767636532858462413871156693454179490949368695299128280568868535934583543349431295330351198628048394918178165968615833216316137357141473639491485554371484929940352984383428125680679878686004332115363693998049503207760500489059444568648048272595236707384002587153244467278845981587492632723990299144014168622156726187977271523889291307548326512138245688363594118001324635014311318546750089062307831833678598839004065146238503809679628829304575099116658967475761693489069997364425644702760783806771822668202756005392657702206805043797268496927104289960655170376490144602772320989260859620269150176756837873043405490036787040485715425711604351534779206557493890465820732097446564471205754024410788348414291639100496709734429921867154382122410389515470762782104192861424641674423026367968955714774348279008065927861800618650025582395931640638966132477417412300997762911975728652416716564814418704675978103903263034996894375607651108340489706770118949124830287376871349611543856531906830694587865729904382327679379364769706136465322458394834277302661394364517522522932473116594086151733720671157381389935492507884388295294205149982353179371960174375869586973651491293121480485047292582267268805201559457547849735488880839152259773098821745982110820668137942466969525310307421012231725744245274080864906446817124056570249388046773584824310092222575539606364369090309991268270050872110657457234586452058901954445784504224028533304655250022514001443817948905688766147349589619944911351238536744623792836450018457706537734617571570149695550263667962313443328830669633322660733501263012965066039417737805886259308739623518908623938078359760498417218055163761770330663059943393190493668985808425858757355126201858607111353388262265730521549969400215038694170459689742760685809185779246871647593417421930217519082842926334306843698923177149643581933684783901395631121883294828122742663509957075672173133848923039200978479358483299921297625030907383560153305846851506139541003463297950122559693328617057226866365062007501604012036047757044387020462605174203341581535083207145444536345205022331345040641375003325209995103721078424118541801778451019625247929210314230455833893721131857542616895484755598072695236413574395776761445221808834514277362335369045450463248570292691804040275311692509922065599063635718295605449805920534799350619951643668245849188686548076848904567995263078124941370318614449051753985678258192871171482421342601245650290514587783308928708737484523396591261459608488520351723862268427855402300627143505673385570778291372943188100608636042308609013277990339577873185948271494905388990810215429475494822883438053055806917138183223439153627967207212821440796536004619107471647099334568659554683940427122868944649202223390809376520789623812292477118876201115015626610816573748587151160811802355008449381047134662253128720076420392012359810008547996000243734156865644387059439235981927262197618982378491569986967671311930681702934037741857946353054834626443792781917336211123976972255400686681665812911982512105874622936375810137683891973985427482652524411583448139229287318096388860449555519209255380344453248015636614036057022361914011652102018910134938977082891388183640568532028706178990975405371193851244686521704388502482691716438770481214063119699536963008264554908226938992919107313244416970430929273042712871831839737774999148392270150836469645177417574800453262281998637523521437718999161030116666207707872671394915941590828128308262887024984635086663013310520047867917350472467354306075925542646531289051094125514300168531200916036219762023796476191171479365226617046052381710750054206175116754754342513185746252200714182046320313394170614466941047238921980596812945417976244891162373081295564624307023718788920716392109190632130785019220994250963098256797779527448430623770862725015034234293894012590647007877174026856632839879853311476527496610111303240695519915775768996574105972224352209294462809369115603581611538008088440498536632007716819625290367582908213981291175593835073925902178773769977120654170765567181051930924337532589782916994124796082544034211338773141969155981341330729694526616954435499382894862910794139698562029417884936063950615104175198711327730590605671823777719519405880220871101643443047883468057519763753188487289566473127896339470262829885910399779137422215541781641901089424405727239531700822597742089082953269915072321779367468431816980837630304793172263671692300414209957715957776949209710653810949218740490160733975257507082552852811599621334305061689772574833135228693290394802015525098148899209513782607620941146958490646736517896072180965801510396895928928417880124244562054924000421265817245544746305575185016392261658188448277854556140553976229476144939752361840201558070661589396285722740117521905729440401647865302706481311431637072573467910853753811430902014668562385621840352893811344216092526123838827465625549775395365705634312242627887696649354818369790807919777164403450584495761221112149219327804640213014992408167846180153943034365842931418017478233863270645673967816163435773335905852966520923034560419790540069228635584818928853390187375508270336960612002092044518791272276004091584859626327893574828803597114110896454112937977667815141487492339204564412943059289388713953154132581914532209729611584996746653291460801302620050774459593212004891467899560282543462052165116452693665390926860639098580649930625277395827043467053255378144385617384265989491799647973764229929857593156548181163277946558976966991840028320363867064646379486996242197210608911357018265352968822582503350134897080063128914613350107254534369394261213766564315390781917076778315755588990631552224611624443400316749805951704235902364488326150485672802780063469300815884026585782917993510722415624625823382593009748307954305539232530258865097909560808805301898106293212363517070796478380071999668475084070773966569763126065682511331501895020767234232772410874887268971534108575617164319990595989030778733355495582415815116356531481846013782933323570399262627268998980384471937017173331096198122465208042074516191646458232497234474221170231003949615119336180094864152288207183381471390500172248813800929577218396000390563630555155941928790653508721244315780445913068529635950952615305642739370063935267470185777200093319668414415251098118911224540639877675497375297902905461473736883270098628913283927546760823258232638727950871409827961700975971591323278630400598247622368522734160290525851159570796311356155170709678378219128908650471152658878914110883785467232874036431616225501433052982800852610061250619002585412167477504555246325214715722680618623012888345994341889025112482396409068373527750005203929386077577832616444521982315290279251489929146212167332933045788976864781604357879116467610922221851991801903820516710421791810232406631547311973139047236979034339953511250448899994480690553478462554798719320615395834571352618419803311930070638345750345078993204842784560291553740753643582109195012760146832532504939767884963340266163337490919143097982054985071598086971799033741763968475227582146624627937738722156658217078326345374918572087119705126161086114629682222590015328746482371598293338747378716320100654985327871154033848117360708968030677853928028550202689216611679291489739177547043259331283064953812521910202104679267446578586522371298418882935861234592013430683145361432817701153316568992653522300353099320458739038493399081552905759147539264498271911234667401942034984517551767025640259453784063207853521404359828063184771055340226135572186224120522578626695830339132243671456522454212837678649082326374160915536039227762369538149477874251614113156827523921342483528767964001355614820364984002539501332235905857679445134535999804033306444649192268849462527532306123220961020944647445242499380388909537928532354885682065707649233102301749157577394180600645033242585210412805854337289107488780172961523297933876776446245460321449608877537138112308908720898606079660804605876480710848403863121438995892064501010202833850548356795700184833129808559255249047436744864783909052542331756702243503222097609404654215747935110444219339427527390498579904923290539497798942895195563097072921734553631806885222927335791807092990464943949376056879781610791107380844824975703186265187851874594831322376009937176482276195912079715083797871231436203965661576829639263881597417177909501812306074034237962885045565617450412563323205120118956616333831710389189214333735442744249968788487952782593535585901560541982020225031850696498917687210148725521265219768565910202366101693537620452258646437060411908403919216322205771029753669756903309791407991828570731299718153635628316672919153940122105568009974696284698489466192433287084749056506220340298643688149811405561116237749875676314671949912602861592010883098877109727877134433012725110590372499978693214219973768962118655431881187095884029998938119292681907604274351318058931968547621152257002565067474565456577249883255584913342770187692668878768264698655461516250805288399241823590068377868156380263001171181877192934664705325002369756062027986292629334250797165212469628296689238553971428975869684347644146903942386511262646825012365918812194318478660596828394140748217812587715694065157707119580720516129295591072828609473193794714947072315481300876277433263190828767717587860234655424421603139256592358946457429680469292310762583441476558556137013268145869516644320108761115717119106369890480377735793282982848808873797885377380687550982656847754470590885526488199229258658425830384553999100579501590575588435409312366284847673644454729675893329759915166179157177403090128332698340316594674428942207913457637215464186597475388457431762176316004523106435973538104067062771083141203761473667394071615641238538450150114313546360467032322341689940311052731998022836469626259377461160990157205227363653362476979027265565372385502708161737980923013711482802208453869057842512715227373206854377793876332032370921888957984822896803917532819963883614574948600755791095209024926508272023135205291336680922262861926499273947178027751606081232295499090014467898922423346715608429622661121020244818094970030709641240230822392524660229565780429127825796886681192757068816841064063820684632159040320732213586560932585578778200570190758501353293657591698585006513963001073218555661540595040135869231945361010725960154223945028333883069973193877105145036323445500875157486906528720441643574863063879307367989068812023017474270402255674325382841380466479253045839806769062685891121470176567368877439003241968963257010488743394204422470128055390410439820581465450126259432709532607742074691713045222559140024408888149053208833479463261764401909362176409486382083280063618527126253614460458185529084227029647597486226806791164770314589859000864959750662285835105571483752385040209098999259979523521967394250393536991432164436979630996312113106525458843980304834470615324336371953178197138522937460657748798685200112177831735397518271711750392174520760930874052720865921443023782325629287830538999416081561324336435168254694089510168279108698725480788519280352083649675208485782966939904018085378324874361021645583566989975786825469490566022147200919935401000909734754356967374750984962004895786220305570292994134914374200775021159183542456195827971494890069276959216510772990710172245453440828501991969179476956564094555994105417196955577707812480833091100652122326897037433547337933377611883878663107856226000583137508681156800269790489666054061739889568928376459664919303333918565349900260092506005598336631447455528792774035503626229068694878589720720515652578138279061008520496424188841444783816766823877351417040161325230397889895789398495052218687713940155043190399327970109377078969164588925553622076017425582218451089902715202267562920773020713120452083067353516518265603562545373025230127216980311955231334030420365914593928825670062828606427245138165578166172390681847113033530065874523801943814481404203897292023554517715449877433947371648477213137400927440747250339239604927479004249885482237214763026770038788695195245168593978792979940550371125731242064835691790150051031388989492849894302956135659717903124963040433420919657457066467136308019828003540286559922355767900358948882227600623222173350981281986524620155271295760217089443307294967363511471548956979838255408628819120744181054256486514657883819718959284296485275461500834036068037598931322605688578850778381116868389881151220800734066165028441154556586544449913511764001267964065567400350368252196402843048261427787826425615817316362689203889345538148684003558614382544626092997740244204262955541455591605244364206379720552366032996606109819503288896901694244056957515718639670809497189759757182731021090399175256264603652050947870070483464453856734730943882890651574254440398850843670630571374376506367756182513693056709949338989654152920181914314505824916772640287611357312483831623387802121109448478125764166313052781456741586385945240637548181242728569606989597221208128670214902059938482830692719944194729054931382508808362537198062952604909263100251180679138669573788713831202776998525738717012205977305173920447036561481725926974194321969404494886274187995850287231332767862521930579510364163815929408842095470516590328341697788367181856013745515858000766956753253336649132636118339612473526061015666560134170291668154710041662551228861363864862046696195675991953963504213862801138589232686809586870767597384915671245063839157515683235559426513398070242694499489758505984349455761840192489871150136946347227844815195884567227266140911846031372220231291116771860418027523290007221750263908863861500346111207891896576901870906878087636323284525575013552536245269517608448589398466489697568498178906515500849555085080232547858104529075817627716940197890532038179862999516612781898366931502994442080204471612397669598055321785018344745150654273870936790244023521343269029067845469262891992285118741203847506946573282773219566908472564667770549612035553950077272668112922604185586754707834392051291152674155649572425566502336425217997648898626835116878099468202442504747183526670035336986615489365135426711496342016242646364369940875289134714771885266176393909541622842227952439775357165112369511795632529720956886635741500257749820092813976708996851450026692826934564949994980526599153522074955114448922006517473518000854183898385052311759194789866176052495607014952412275196833046830421518999195062541397968265787029401801904346546966169553578603373560306514931108713815602654734595559760545026617391094019545464212266473196542113874869011348378102192640987885585669130162575494721415765066509014377281985069739029040406446176034844970544237783203339989534466099436320650269032391992083123442021064671603175254204759345772663980904080049109527589819902447829254016554223953880228162596310324560106820215136668552398981807123163174018657655345153750381739342459544851136842306247113771291277294522211123583665397234064715685267540698482755438278178391001655915385204197160987768855112284243639477363762407270111988387998117777776265980502469935962872679698118936030326324026040773247586321863160956999300808361561737845586375037962692916975091481806365819584634844622222048998515148224692519696486196217134394390232926936302252211094190150549782471870573919578844418328798888200393415638473422191618820988762301571648704570590463035402791816503216343921645901374326612781542818318978056912063312431608220864168105789709684819571963321657097301533502776270868191861249694325847102650190927501994646333789011617855417087883146343018297124691779930097396950120892906323147471071404381885386826331399432475165603028153635968148919611535220859490332073429240612866234442669813934799655945985934365749916933826982677389810839662046861039948095083279544260326113622345276065801566264193407354496798474417156699496510387593688232902102165406670100375990093522303662301207264290047434001437676073884216530670225702959946402097855629804033778195905884583939982089997478783693337657765202019222458343043129407414297114192070526097443151966440753335059287794745913296838167727938819034281054487797044140677259530354956755350432993625201864114506633750465681305929596844913566119184312958473669150506452855419533613178652090347764420399077265511149843382908990869133179984404324178238943129815232457748355733582025825294797057792880100751341586359281374412004736644123867891891974540120246505782715555733985273649775893796217837465691964552311094668406975278727471190904656934072972938967477292505951404063600178411814545135010629250001545083814037619028552637661214046112392260899066109268368037989596394617129814228714225731931837301811924457421551010650538472494462616934887457278491284539933989481661836816236911178681437633451717070189410973501891138653300247019103238472659351145090721783719945452263432656348461532414155951642506635915075378928535680415900182184048706605200219209689282564672854638356972181164846867546427641901475588466172262613220656669793107057399604025705857313887255415213983766603793680107787920372951274488280541422681537397143315005052889586096257490431952064218855131666615346935439217960347786293276819874114379249676735879159831923997640198868863246347705601257370368048555784298117893612577931712745181093837783073486519672033924479515593303970592411819985375961441988857582631582114194509949328014642746608962587189414562734092286478501438806289129448663408647171165367606510884892301416830943044042857768152500086653954131706344201149934679431094271382018119021897801112388087487277115799300491128266194928233747073820321598152388500826760255894775012979425485112536453226969997897742146406786115842710216885626073617726725159597643130545341148996448058659694986612712341367162706576621482875860793925295988538760785382564488901287297905087726223255311527790791386304576215410695204652358913146226831866310029960204317707664583883172486443389944245497110199935940174454186859007347110328093048677515197326042263829850476919274243427594996806884985525759460715491910623676054571326114974377036603366531987293407650741717871760622357642656818917935109825731884164973253857643741546463001407142732561060131859466390799636644020331392616117078001247330947226141571651056021610876197289897873114461191610049628984104994813762996618544630526557048259685648462097302152772723947760019867546618881869980409172206337076381512488822702304913572019218682078719186409225622040764333089436391192079058321773573356190020436964998186739068532691380396308000381796171163272869514062717379113772204159486728169433793242474910361257095319640246281242948407880985986410958123279282104528433091600552436394752901588843280060230381221731888406016811198554869447849067965731664923359074118870126502359827555836008606505233124378662454257160018565782965029218847851188744220302479710038652681249025643531490391263999469541357813043878603386918313109154069868846051275413339531595102873752688846897606573943084339160681839619636018920131898498495658935979607957627162860445310429777824316093049788616832452008943373914172537171783528680188649070423497999271716822913980006740948418015521372575738023104157887430501871151707183225198826467476148664634299005487411463534794426351592994399282288459123493350996699957747824409089035352924995321953592195328724843989951429467252828064143368596644697311949205527170633112314497598755282153050513843982692455479610642642647955080604300728246838221165527660937034611885116993844711100620052580269454026727765094230451918807151740378079634508701975371521251390767543069170732693659373810343304078471065594525165544827293069005910728677744924758660116555723043711062089353269030094936168220721414211840331824686477782433284312528239697190133474187921405382812787353306669204478449440041525835184271958535422468558699755406460764612620558225219955573379704635981793143753705521098421898725339146128332295687923779725245028555108663871083108686134804183713722492022509929194202304179537070868141289358246340732811044605723302178502752793984177519451803838872628069807038186861356008203156592340445055202804977193915825382361327078831966221570036665270293957274761095360991894294197499874994585438455393090178817173322122730028422095608830036871622910756230121755471751725964964659719742837013914721327561673493523467577612996811620569221833214975691909116181207280322605793765131317865239925877714269570327920864552261325352734755940977599673198977884019858751452628570898842305664341644287757969539715248792941574634089138804089963438418139480898658642579215457046524867894948559165383805851585939322671162726401931970262548447056626050895531229674711858115245915902487167923283675985518689134948392055855950553985550503520961420684970062475285645024253214074911022411326706396278825752444110020350328095535301743741242535873197261515673992881137451064716591956761170659488504776020018275848371602415730634068630491558473487053745358074462342571366476276588065942787345410948221543756680203860863804218047424622607841461397440932748589971367782976267058292707333552906322057909552369109864582952547342730367187001964651324096092653649384455316002411924347555709132435998708551096632490496757963228286750867089444540544845519484637393322877395162691692122023354781641462459177828983624626142452321308016347059016862226299211334881598906076056608603020794178111691658472172773789861881137674984133292206569597718148815588370841261408642543196939884013285951961745029390350215591809810266358703337748028306954592655860788986209674479421812436020568408227834513598547335948449124883497798613867115945800662864402765961978879994041085904589456152047482906901759441462006282985844930877386955825572041435251583395492481129902971225059975828270459937765384649599245771425012979643568889442111255934580222322746980384421805857063817612453143808144597390157705089507561245498593846108008396014918908503773111310693668046674847644335776482367571710359324830063698779489860362479582475269371832063202979329627388228706704908995052271456187546239747797492861907149246903123672081433513880003957964449701026957576952479907043397203565466774768008285633120381051097157542675588187647277094360239873305642834379010141018771045127381361945031042151027136946356484238929319537960123487086745268190663821209704547256735801844098886740897446811390238401700286516039985533000047256586856906607751945080569635064362752386409901548268078485831384020812611768335163368897156219219628716342254286722205953243683773796388037687484678088966833640246281593908911466737985683224391985932469626185309986055078666344256901485104673806866325130823151856465050150853662008263526018366176108115989968319828839838868517042055850963788628130735581693321259467212845893011573636729282486012231464881711211154732911086999520855679183427222860025861491382160269383666262773129457407232116136963222179623669666718149004227617726370548539587302218899509284427848985702919598160951229691471313786930588722447781367422488666512694044698086711381545824964142971039731317974554944127410000175679338096499582390509877216570389413685967742243724576636327635693433107461966063649802204731616062075768861438757225951256517259420844557410820999865666937150711056606879426753620409176749964632451134216165185771451360240026927412233165489886723254051027204606657716791326435629846285189006281934975243219252923578587566706610324066040640325011803321736668524533491696778839313064556266326806771168930280727822507628002668834355589832349353864173269625759194004823772490267202930397182816762263066211076383824388689973084354330870363745146394276946528907574936828643681253259386253507107923230125299831630278850713869590973405882907897969505996314155055347930107128077049035041011035459826044884844977471028749326009801928920119331333388955103750263530613551933509208297615043217088547162239462974977996123903703412091473501560046566881015910205173239062185000118244552268350802027057853538295726937611104011677320586785987080620024318039693832663659993193486605474446543820285051445089496885946057277253434957492350995885351397740004266079217535313751407355784033190245941937120687957955313879277458306430037199697941389852743892781787819110105927795273482807594803357099021877999843835731224261529548297297796972882290922957489199876415464826885678136361844515089160685645680810338799664576270931223239243833745917829129359313623157004745015620094582657687909294459655779754348783838789092857422409350948054648433682694418044940743523455244881129634971580372154382084889708463607949882258212107604455823155872586449385200789498622990337398778492352542530266610509191431846573117252728572365354610990939424744508497767019628019660538713526767220888428743088962672062079851358292541945350599747766123429094864385774756107021049467172586335246287885680713541249101895193405986968651372671355014536949839950493129839059301878327273469894419900340423828093919576067249801070098718754933890564334671010526359625878795824368395409236326959297327592708074980519036770142204949408346640206607522399633007841899414519558478903911218026066744297425972463134024348355635313690096315164997862923137574915320476724920157876040874453895470311439887381375074047397852094566419226770452348272931453499017766101627682035939771566893007232289966624040745107634054424793550305177153357709578759022713146698107327920972248671557434834093057073333543219535445031735174453251208196478005206291533623951873727141309815245354838595384268932500949260572341481930297119512078389915118231064027601473526773813235860640337047934797025293822381089577159444733603181555405455859834900426381778583761647719255001947544382186858302000863529547883103511265262803377957718624190583586573040129496986032929802592145844494487452163963502476858312422501587132777449582320738898354041636124444306942726510275984887463026217007915025469047814640582113468315675028517444195329876517235428011316140873922073748126928925669547621161588131855980779615793863339709083772008034209338584277493388290313271959476880101499103506186975190449577144284267894385393768548360627086279554212655830119361674878935948452163255094764650630121132686708610819230098938233102869454132425564441169229654751439216326209216279177205909615070497610664985571594315971687295269559474603432133530103169610766507397262046114221788300134310864196385306878281183207420359233022667152147551904817099980373861242814031329112609060061721079178997715244631121768810101252981644830889548529089056812335710667337246001922830014010050090994802390065105688719034155055215052913873505542595754159461843317639622388167636761362081775380221226545793448244274706145059869952710664369608395466171098062585075820671044486941096767506649083583366773930710204861796584973694734084209445520280674397483054850375233811335553665307560149669799452735098794848075305899475093911718298817331217439583504816986175739769998624065031930063162270513841767733280464596686996878465476709158883098970733277071358175290341447356765144445248833076074078922658610279696695794448808078147361255344333440029627758815454623480018426125814710794410539162469972289544388291811780577090259797923115492862988280467099546236050282865093249611973135521776461953984322081252236582578269002664818813037120674392757442072871206576689525117445635877836669841914716828213081136758581695012139864517027159911062458433213894512732394881932799931603697049957240110210335370795598603519370460529595940954757462700060261524040272915853830333796695906048899648384185647541367704242541006911702147510136672721740505436638957481238425638088688262165013090844401861133669729065709012013815525018609197743352956308232901837339572790518473467746339130062887237721062697484120900347619249300393740158760817393850167984445470970482536421695122420236972529110458917914222056472537186537543443814126801184819093135257668002854586710359175202406389332344846648659155876016768427425794535294625951551975240512618714397341293740004426791061647962114114837164926058551567436232598331409261349759015066883346390337883498331704360836650949452189142047600399821103421359401849586112994388957318358262155548524490314245902905570891981540801146027440735759106702573553813975711044095187529385310554273460760743621719468903823551893262476541245357624497766100111399938026717722040251579041101875424283478769581011961814555287221902113438621569907539535387616795561234862995751539311412276654496405421892533719467711703651324191801697105682268601332290302102293947355766721242145708004509413609167971209471689520821105327828747015407310825009479826627214157905466799386688534230914800992264784930800201996998350181147069447447647425027077970704805594280050484825535987045891926473052334668895358093813365916107032185450987853104185411968979748942966101613634918292417156765908854948400054391026172984539256651771878772838626216224457372426910418953555433189214837627492351981558828798126954891951996827667817145493232214531586651748535719002932320996047865679341887789438045080507471446237643772125711352786342341847663519434246389824884545677634554033271552164012851952552255344594645591971163962569670423560289604661626787280215659310628468152439594330682105251030780192462414017343968355990296954747587409221277455550126500124381410861774035609298530831881598185602405433659197219545461979673933287298387170197393813886872705377347329035428451149655970934294623293870342702723628670501570027879434978181667104547431177389592447013017352612090717013411086261726420530660257483411776719137848240934289403427529253191064478067856048437416895228863988626222674701534128437472465765123066150918176153234331423034379682080858301764741195316004166866301096917284176461330625410127318908834492348465506641504744708854172844652206125699230816488379196551905248864202638143995571378380447628015325712232682259837278415173043459704621336037791516888939168278765473457339114196141539674209716160349731821907132540410257217437662355440281848370424927088586831630264885625310309932919638003082069296705147431556969067227832628128842404142809984445806458793161305738180499432715072549966125409774503981933938460118414937673730205716102907047118988995063707006214805317700339954512068591279907397985700277577992081705683218471819667219290135898721626387211199472170713173705027568617576949863545727848352798607363628521695987088214442396544604476801607264706734115825792771885299974600625547635596663780365050928073733780417269742246882051175151621196768474900534321687912951526510845099104290052774467736390291961345558750205521513777682347392753157770127588995096318820970293823954733484749949923996414193504944615882813774293046438120787585458316183809794453954321397194192508825964480694255810750523402345868605461345125465171927747652810532741850829864013037179824550878165058496520877773087920685665478814625844404829529527601002922383257326014232079773966376892551258978521732289563868525747003939303510153699529539035193382102827940929856904933318620445898605978944250196144785879500832917714681350861047839225298714551179014712494414492171199723001019156954700216592654698574685938483329693461336428969843215501875868855292114972663406084800151928648543135298430522695321342913038369628097474956279454722814921691381938787441718696819020119357628192625234934923255433966219445512383074572651985533779652243340600620183986162286159798995783358401361046086602938214654554453615363998212319996347098188339557985878008204442122827676099019984163051484963914671841924471147990297408309112153905642415991853114011115829526124697228310689733076015250944200644360788666435605036061996557053686898308947708171359693081939117677341783879983751434800120938054575158215155159554991058874985671311366016678117030595888527707813536843455984116597525497955858804470815497823774626456675612123776933232651065705987439001544941648202055247272884085300860184861910925464518919109515245196831114454817280980597341966047423383804620426176067290092743586165726290910429968912232121889892364461447220678683911103859516475587639951720570038006219633148291213602801632733238717975203663738962130854254355436572112550639590549317246803418525145297438941671152779236157402090799624265705829827509725031077802346647005933849922713526619793385552738621751266097762631322547047919616345862438037741336393329578971400690946031584881276707485305186095469108703629045537746701422396700829425677717018567044566946547909334053935754679105985942139160721359700248642865016691344464497057400147736615119683140407411794035113861713771064252811057581101298090522366187937829384105317117674930784383618531676512525235448026178047321891430881229068196785049566217524929970339991566466494524323879619905515867696723696653111412193668539341544762493004777462825928620754580258466445219169141225971181125203725304498577042867421301191009234523295088016463255483772713691235436668409814180595049690525464166047909998901925390629982599161335836269847773996483678171755276633911306142458101424807684559324097107727102417574294827488974736246132008117828848090851262670402224024488721092979642671046112577343443032784305511998470516821172742649384554357183889007133177697622514212740296382303350604496426748152952710669302147467387370579805935701250517899520208230686078263119493383454400910222903538300596605500920489199443556857085951210291611863165621659974695531837711689645282708388643925064526851777975486184535741305557049917532646553359369579924164636884457930389954528968095312542358119094033186710274268948487943572996488590212018377380432361684749441473448064757515548418990336050982412169028587327112390808216821753657399066712665721715043526011042035383695808620792376622299828233330368904694780965967139568711277083505048076761626846672554227668916954102173752200899452791034383023284435101385906559811709128050160517335334993805998681319483390428752818660028528603327440286285981955594334537749348097025618199115087406616924224046589560986736359832130952956264450962853319151768622539444758830705388431630191423369023639830631302047486530872343159252609348766401857515625524044572871899160768701900071089713817753972692047111586890690976359664368780205645619400162747042067021677291275341283573834031708181035788483758696165615004646135521532401508521012037746842038602242973500678566324860781064295946028086928975937543536106729899298435747037235644237319328464187329606261081607780277861069568291583550217250298800042035081923433544836099258785514921297860064265000220509984746007889056836449107013314771707286869922031454642918329626901669060144387200003065344080395703735135813621174605777427049207482573634598059289168674229633718415311673689004619257050476789525876358254799479689080057930919755841960753823334481665469500001720933415391773087359003649140584785528505350012205663441204713240239301099262986626832693461881384047607885278950957981063917192965585548427823787033843010671765365701333578093672064787281971845876115757975004567424947188554160537564577159587470168442092515158326534978706782157232999252095744279735766677456067370555480133010432683928954665951086552778968831613570120537367204792395294162110713310564015097641923255522153428419642138345152854257194069138777694920431719213351151817611501402528713209216001269392637275349428737057636035318054458512569709057769376746827810319355833742292102682875723199702575703333239807213337103283687905232715134451003075886083004084792338249314826874846598474548166560135198858012812315402040909206025817507414952138875932575542747925952857689093920880043826951905236908058846661053616016340429636493051803160046812712415340658780973085649186428993632885230383086527474035463811686735534627366550301649095882089561960805603994494614736507047995508777299302922984316761293100314656522366824430656192302086654704332819530578541152466231448793559127097428787114117577844732614607177835434121758034376034277571708529956150897106260913136764216453113064114681120913725152669737756431173147975422661989542350381540273074366343582232769608399723991032373771890717969267537936977645361984372186225505951808041634413895401875105166058102308137807701146252477053238910601015436616969438119264849302187771700164287388563113599544453958425641012067231219347062048977699879173550342885150188235179698209267126395414323286176919521150951381228819123334865972450421359840159355847174418048065169840793225536660574701976971106847769854857511519437120837713840605818079334496191685163376169557861239404496160656010983155780341209665344224406697227258884161147877480421835532110790864985450025988247886087857200442965111080352470736482396226245381432691373098644130082663313206326538599444055657609458942978565316320880626407582375972820187397752701096723934033475946398396992568063803985816087238057975967040648419002536440232548297343202915487975425527204199538370772377976293112894160252661706802402605142138510954671865739983030194155391494056381434802494568647663443515745294072156023298758829018588139014108550191077548800656716803165584246047628713705045256413821597303711839988670142592752790684057246737187149342837576853961131026311420451398560775875016065054302716370343205171991420336635604913477325103152245292978308553828947522201475449968465845723215364708079274651919414470389332748593256854179305381634388119517590393875710941578680773087110509781314653141645712851579751161894568630571843104025342148359965509458801937636441137355601845507160760338013411731953562059499295883415944996094379682917476998022551861911517732791423384168842063189520946345493334677394974672220794802352106419355798777500127898401551765890754174315891185817610275760620068101274752814111681725017282763806541807978843682908742155389005788355770429221219220419052490039785901945992031589972065573010867430647085353930826914309259675090070434518377252785565730596205455188526753135079025375039483742984067409113446114036604316588115042397840075392442536056483246334933381514116139672285560471558781264717452811382520490773588888748403705768145356899876504180667769342842672982993069175510179730324670059957784501663023229109476327079681149495201998128423551697739644791199102766281800459139449545600167556313133927276684621713583870471291859026093740831760429179248627480970974576281024693460671595172907764178593993757655275392107764400903098579573498632710766793139959046892018791668758895082287334614944386921879593611478867001503932097747038960118219239574986812933194630729087832222291311262258555337359628844425673521662797569276489851755595658478162157717092371273799350500114857993175415605243172901519606004791634995242682934649352512986522999030608473064795534609846232515011130549103475281964742246754840685553508025909415367908620030650717115990450484256266560957085539358878422808676886090344945674586771345612839422704889791426866020523155427886725742651615836834684973351081342013245276359928227623392048489797082178724467980440879461618848851330118661425320064140609299162119281019456615642970403331317268145032638528974836510160313269218028431602270337574966256649657914722345955437802587967692521607086672997727859143650355788536255588691226472297699129255918870567759966634861911320236239221036520542754689275374171458867787469410507118599778397087227928025076663592441853792440970624249587510145341132129837111114904993883316427109111166405979787200235864109931227463797012489292588077266849760239948145743675552044821582627299374671614884571306261909045617199360496598505676730736110937950383569933342802527158708981121884006422274925823665680713466446797942003513880165894011569205132225569719709865187753856006845279383895089199858300608809919808539065509718615890787750107296202687774116913269182770691995812817826531214700749891888071893641346286819984095711248127066552316258955173650166145665580189852622624822046543115149693374096762822250668734512907688408457207237093785745979489986199426159398282649632809768052739120490870335907460614793587100252964265593817514312324819633416210497176679596733028024058434100283405725612841440041540977306736092360446910628872161199039731585853099109647605968770577600767281208989886348298207135322411610599108032306479879904636771180047555831134667683784776498987613717465307420195044475207470940483230674786418984989789684302463310616805870684807213096152912439992434279527561584671288008792224866816341444384696205491645493689178215901509568664720006687247426540398841247650546943632697735335509810432236335604743476837356716399374548624818490491929606910407113817468556784809843381992076098330224467520008409928179048672641710200254107744136789193063510403614141474842601029791842689633085958189786027395491257470985543952574689231700916834156459861473562128527164015480779969192032293190011515398935891496445567698003444078990583379627992399703692835558389551404182603593796201701117095091878747209482461235441426682936466561057303928417572341458097976825493085102551702065668949379098984810719002719708878683642375061750295145003425715970263276860774466219803344234897939045646925688062355726818974905038773400068406031688918358256129648870698390659721283358378399990308154658079761119723708614906187274471599338119056474056747147641715068153401538569865348198847388039323796002627342826737656076213544391810948780228051260937633178234003567651160753221208082874677538060230135574569199259875808730066387430601818176795198019086907663952340292470692857215287028063682448181143715006140859817903682775408871896581380969138801316520054497277589986772753930080841470281675764367563181846897822597027328577986959746814334962412514726892746849047260684487223432568989529480195588079289569911907610071374137962571912236511001408952688927854918825377595802632347292675492368756992092617665881456654066208213677639653808471860964817822932053415632037437821198398417422303562855734861320975962878621861874993683205194656908640094939051612276229038796957237800490577467888537731350817037900548942673392214504101297048542986894241530723120187554504815542388000846071108052760209749136826867170880058570140220593161688839056010265935592170004747629414783499121852613979277202664306884557477330199953871005251478557512162320191344319471440520219248308927100329512075007607709563147743007805071437722028473276168873583704675879579403142048017414037049725187534543862902466623249139619667175244581492786004192475981397155741449289655102128109330101333384060042482370022096644150109551478935856414548998323316708059138262611777420949093940853248602005750260933855966932787636863990915256696393667957070335423291831054195442422593156663948616576789608259665422269610149026506502050297636326708720072078785636807260017586867145819796780850400072644427941108416780474224488619936429621886953397110402408030232808415668293415002961632785460889428121403932442889372694711624527467698970546344886123303770629517379261405712802076039267545146649612731685496979152283628527834916486055668655523274903600860344915058028344295689261469015006488916457554743361368766068728898194123097333447016729314054427403585044345309096905965597525680013089429755379647981206373659634283172837608393778756590225050531360649329003981827672819306623211848741270560558168158899609386035235743729061966787897982062448812430090068286908244451026950476885547286468224443281128694413987138208962488727016818233852900458508030476886577692838121995173054434438569477726504771081908265826228286328031291298064688332379136153361546032230345943829678489903201680678968104150235298409352766945191823350996128665189330832681695442271296626619267032669417347824335458800225899378250909891029782229257678925484509061341049322205137554294735241061003983886311967164441373651133159428466461948938120532650018578870839981088340009030251106854359220941317154602777258958886764019786474929185045737750794277164438990027171090021533505734132391340454658688905226403567627507781297033907468986119901975689488925899688335461222576954218562153573078350839085481173708829246788400007229580506839550274723769611918443607782591242388620073454752527774616865748126150126184898718679949453177592894320813667088895368579585043513889179004909382246541984533189150388155294157503716220285650441344082689976725251722792534055681941175771557995460141896513104788647273977423251547319393519474042403453543605833270875970291617339788943528353843495984096878846626538762583887433975967689523948654364336852555223815371385439370309706262038402505574357280226256716737563346332503699245800760990777311371273204332782272529936895697439971172581411101239617851158553675650669037877502891049473923294969922101522503999989120564405157777920454663886596149131246647327128448320108899916999510278115100825329148079661087825178313610099162990310205313713812939965082895402817379745685776503268026186862648762875448124904625756368088266599113575789672618659337767997747473117655287666457883278659873898601504727899639382575156600331985359984699704184763659792611236382937795753472366457868515946140909763183307470924798457034462840968888488080751252325935592715615954302288621994197171606349924506509219400175130619177288634931220588450741486783738438622137054703502894854293057853954649720883271640093924266014279327291141046439560482055723974407466720426582206291424485610921997307331087541114798700072022274308311380037588794498874328014888311764523988209403959955537906430918314651036111096893095135345754724057102289169197522297956661538660637946209948912789872499347767493127357941133723485789543116054838298772331993134121774938998835706944806174190878831923164784816891340746471681513228770659953179855368256946939686785691071218542394566741272014947683635734961090704662447496617059702297676279233155959553291676761069974048701751723658927800508211616563306931488536186445336141841078461305781921174806881168832520042939270920176126496509865251311043556598719300603423747025133845751215569490196396438349975814659069653300008857745770933377018524542144532909654327037939396063135804011854215517417644090098244859525041163676450986250248522662231582854568421744041839533252708416453919801329110226438951355291778035462503191885055724431410464241017690546755333906457834378331415833952294115123368519499157234553398494780083029189215211291164188730722666785455571545109666911102469956794344839843661290970643752252413146678680756832987863973419714627815744832667135642635691995824586003520460456127766419971096696815606642056427412656460267059797553813730849309574738618413119299045609014951501442184085348004878941018615108270441133949926779212412107545100292343731080565862998041841482651183914242175336027890060976327860265330117628639948777402171632244731333844947446819918677280022705278660016761541512184836067497201517581138360347771101259722972497123097584301717769280862272660287908095137442111750341596347062047267696531327671633260785834316777271706433147926625622847916222265297234886687906677398641421874920121600555716084249445432367487812347865161570784080230337978068309014529373893496076672991565894178847190222678278951382310229269228531067067388670066671676434893391542953158226008093928253540658256453600682484139904246444402362165709374083519830853065866143503170024829811586649167010213672556358629762296612160369044456918782191518162335407906708773457387123686975583637579751230620215677169936250176393822295251228354983807144037830807728650093718804699771625197603657596578286878735124715470031339944764067446734142577834192009249568799099433980891085472075368379600595871425178019093028888145178246676968017002139874896682076587042647999736518332909800702806278705927962429626968819179810032536445300867260512116585319859211624442838326437693047852642741304813667103623345025161744668216034301614625960581851827810282386282089596408928472398623579382117087141206460195503364548868756183353706673600614709525507346324885988532573697801190966652451262424418241425069746141858413534199541911231785169578002412312337356354051899563858122594278065749446608691009347510827596569676385962592366665731112826961983722713881310774802011379575812867952320703753804831221266314418472478879819100221022704404628343890180533900551190041042276402968466463927965049680488576737173428914089601397330241231532265018383877281616419451906380017532643020242012578680298355351373613649485014914970895047549592056361940719870132335277689510450117209327870599006355737846768739074198196856163681789590575893606297892615130356217247222604902263487467324829802555324624088542415374518835121632848806425831375583074432219023449694802900064000617323203395787920352542788533076987813378527250136143078759676694503718228118949712069814673374693528603397447667041765055789432209042028030252193176314687583236433286929836425770975184831501941243475967586383218386769252480763326468704846853466269922231941405305616667273934429352881155208952311444734596885976705793361821650584212264473081152714224878794405472666514807884726558653382646740133207928823987721534980279035286582178532861660824373132874263881849303271558262322474636737128873491196180306074344006018133127914828568034585214147077976299695635884473259633009421373744334640151627039302586953339497930760393982248797690260434315413203700823701590587876054224633359019487124263694476550769864947672114633750868392703572176769212142805537524840208165213047194248665479759959979594851738003530935371255704862254354842094093741374910385455027521388373110169389893822794875694659267911328142090160927875884266921974399739403271867902395596110574665938647038067221262481280055483827186550396015733514843943281074985007188431273734612352475687063555610199434915024508624506694913069614490732294390004520335553060955216513585760160108681296192573196377966386984732320158358971965824998407444191515361269775012447563738765832601626135562366793623823867410593491743459040693677793162211912800639514968760084853821752502542126249694676470587630468124480325406725613267139073722375505835392939400613254235455618742218499283793611236247668853012545541714273982358815553850720550705418389228744844559601534756363688511385757694703129605406604612796638568568229097693513691630405835667569989004132584550556072013508768652203552136327497055851447057295938537826299703346698675761747599190517715961776692290275068154777509479864454517463100461726618769445990865266030732417502755088649025450968593175619971651133568583057450201272654688119450613714676831369950508445858464422698400608260322354050308651199056204167442736166913307439694017586779570281067070182238043324287604883346732137213248334612409901936247695864733017386819761380502340624387995853121541453137328815930851790195142850393887556459662251698051193160611369310273390480387555817284976549423948053884056415481915669582931373429629529276854491733275649735502721248137790099812142704191710891405407748980236031305809321172278344563943079620664191297331379562708416235935638647508370596845698802395134393911691273713966008550508278971454181121941133680502881860124910634604746553128804070647436622114517632133449522655467915435556625010366359357759653986153711270143366433595188232785683367083919249823308424859690625352971721166381030363557878219757754000575558686688703353466452988902999131836073467891257082814091094794777502796286525218246136544368769841157056630275912414519859154547094751438941600669321266644713320923978924972495318051844680504796461646352052085838330368211576256875970929877059920599883060764863232557162636439042740419373881136342930352192500875570753311101071173862142077967662174774569135574329415040887529487741042412016949802501443345383407227222303661277611858079853678114668243140287899870614902408087092957108308976825488062558760612292303300258836216216738411760372821620329310735460206400269712280455037735753567180425240741836308979545794920795036109240984183268565923848801069249336421788396286453096976194272430539132791322758768774343153716966037588632470606534694739380201739303558389601817164320768023280389272132783598098566708815857120951540017731320982741099062835304098735299509959445996800111978546365050915513492906545527849741947654264684997214149243446368790217496769639472441346444812884453738285974020078300381928300363348240699719245400084690090822770117945780769852774040992087033498254236274370779736034126374739235140123779057250674951940400753462777864053927633644240006571432476015739597699784821745116706148189060103258778251247081478816081212679915411218794219445393336241346565983229810235609037242771299794934772343140728493372003729496586290372360178201991576560515590797104440718516969616166168861811647832845584107816232530549638187742382138201997194258037374561493519089651288934669756117747224228025137828258988772861538318735384725400599973827749957413858910423663799129801339398072992261608405048328747396645915432161423010784439142815265919716382594817422258865092386391309035368978129975077843950084553735896210477105881191076147208772715957626501449042557334294636047641821701582241797589471247186266261420132278690216704446837652515856631717436902472655803583333179152019774150303618831833617032007880692267005996355003781026461642932122142418233309050594166853261368965235659314237523788272461441333949403043398152199873513746797893784581019586071063728465998564003675175554572817052275612420658461254831582643669864013116456479752903966279954606488090480256816632670304388100869904984246353590989829184092257106772626548937938682671672493245340896463688529286101977143155147466939111621001925424247951029823806497301816292720932820699726422245737932439746682135197865277346170554625722213217539527871531822052338829873972743395166249308609219594690822725719063174558403880057452571748172416678882585987373761087000727549110787196257594097296525416924246078936423958472242181554155105346502905479581683958415211986084541527722830745619815848789948095060647325413864188508648646887854967404538796169379826783275322008873058830375597153577285510518854392229126567473873390763694101619957477987128940553165700518701299219034890860756870556128614989828975333705453755113654037363288737322344880100352357985854792707426145931861566978114194485060631186334976858247409176082277066915750139598969264758913826480357687310508777370491008579511873381105207228901536255356597512659032366939344984619021793449844914590070032904410499668335764374210930150269593756880000006878661873498579196947826287815356627528639790897056268831957035319407768208732882748618444325705384905520226486917209541064216939874879596372119891056366470109681559857619370248727790159284682259399330326944437247077871244669353275380656814065970559001228424156211563736190252210272158897591774448410108464700222213618849341266676411036151555989745561350122317887545294603209181898286829883543226059433850358257235573319411152953220176375499517802277708696928127001241414689037334122844033096155965691265277810455731263910558463520809855515179090376228127420912784747730960928286685629381969700441273392930225183319073047668288779298642299529101559163165686858579131206713272936092008851769006456757043914529946226057523592920180461371772478979212425794110881735301187224173473630045579389036057926378154060600771374021526090274849310636652953827424656786311026831498653996369344960817335592455961868210295400886216176940216594207094855692419797832369076584002682783850500023707820995473703799478679149594412670485066229894750162874860357660827947415624657713053022421612517798409360685995493736839126157828338950207458484500052322860214704482045729931415962597920924019135328343767390842432610123843402010308641509100016037815097799254296650694151066415917414297274049810201898643590876797337362285872241683254753546857945823154058134337388086550576708600064150888746400983684985516710251193733048482055545691445760355175078472958990245902476895576771151714257216339222095324023573203894345842177222948793597863726046977959956551989824762668284370947040511982513341145173834479208353919116879387922200390279359344862802529937197169637931360957626456521679648627712501483459569005994150176061830691758148893671184670409155077245272336819313647957467932756352397179275429863883488757138691863353406599467641505368348258232804657293523142476906773053963269860695263440270525917450353846211277804633339932366034439037530583404216921477626639110820604162875788330683896174660961922413240836536821579297273144468056626114832883890041406165118375175621633831855494899397444362256767430970130708042928212641443155825175229378310559401611666096867641010736061423187413996418802277262999762073831273263160853088349308610356726536366576411781282059666047299949567776772267673214503701642838906373435464874544556316387563371643812887839945369213982714292436219558991149952333917105797081124746551507888238138266709652811049850648421176159676131978449270606717454049194991654233004037827729918209128230517701666393932613068708525082029744080024375842231550449636254738656600438069490482299467993107053599166463039684053092573196203803301482371010018151207697157768685640097126306608320097830492196676590294602564278347689098709320101158233393622870007952383956086394568419083414323070234022378708500690363818036324945472805916813687451396842930416136809240242083514941908632595556880612693669070852152146450441357581551754552609629285276122077369018756063737001094436964328612701354107810736644743669955256667294285402264225371595170791308036967867042239040507643223992671133992269992823268939699110219451304678941575794344452365876141923057410107974986319901400742808193906820513254594147076013888898703739912272564841569716219087635631141539299092128442483704362703291300778135455039513994610862533766534969131276678894037632895819640487617568191053954527101968905514569711758776919189015336434746566595341043194548511458994667503679192868385201801739657130301321685404202791063833433777136120233083396750025963008076641916239832611598027606987143451061636145220663243265716968209346432691079676271886157467275198292212087751277016948992239169714897844000118206260293601179403092299876050346961821079673687628872339615107611051091953845988670308111583241696250354262167202853677864068252747611967908109882546378941190587499114558612983926886875090711224732790830869199178223007384773797560329226651701257330332390355903780426950953034851575772427071868719508721689085669410903334927878641252515095764480989270380140918360093860823387332349828344282688477945853603055698956334154870157568855494563659309154169463657161607920858709603779133379304101919921326055879036943777622556282440580478693820586440185918436233819328974166776513647657523844376750234118896572093010693130604373028837939907027985171785793265529496617716343513178050061300756198478483047193907417780678778010893673574066653186215350919260150000171387924015279593924883878803488001636721879045795397373403258317922402804078382410861820763481860828479074607927584729420899071708209645568127939861195819489226128735749383568414340399917137987311224213930000582949060243290927010700001322104584096093541252006677505680164417558353653629134209261483178618659280530655009625320631251615714723010820838235215940916573107377957443285194904044674681286507260314152829256572240394834196899360646425490548733741246927213865543532818071125618760533386136939665765897100218671125456569128323866150442393813750825544839271275737311949850364786504509938310316536474783906598071219094447821192895337061605614863508885720083734968977835232769398485615290926767939070767959445444896698655317171757710144421361636746792264676859011626643477438839387958337835888659141447953217092813882842328575446880362880421484617767417091481740862088406841971103670844572364785635357963494613596606167278710165847236353409452558071183221365954952006901590504738819269977489819289037902131980546397598523978856812948880651875302569458014394649558211875745959275091355209830476056041466000926996472510184712588231370489637885965352599229700904109920801892498245151699236419576273351542780484408950921438870271381167657589365686677894702031340535283349905971214016440556923487970826897144628432965352255498449278197085273990816972189496413231817319772871928868310378981161384327098085469912314842542755577688095520465728530134062088901693575349692967186215735840243661718049505882303438770948798734936418899093435736903548924452927579224836294449661625587070980360923458314678279664407132992477786634501189009525880343395248437974043075242446395941368482263246841257029252219273447458435780354461093118236065512552929659388692484997790742099924975974483146114701853357817959421444684947238690565472571413973523895314202465815925912999117061784773607185622400612986407612102640641762395476867074343967936992828784884610459575684289131157908419024636740755984828700932852896037774740194116272779494015748680667234945142970891755733715653769565703380443097604829103134780066058952104939894901916215636666553588193599813399596254824194181346493369692644041575910384699157174569874470570115694994546909752812234799240617194802172036843264007287831888547503622297858524990278104120243598716441983846890390427466493335655500333785867721223438057826052969086022026435319924015859016837529135455409635263663369413766398758616758933253288325849413196717510830073587470957148015377257503032312219409998580531211600195808318008690612304186597932367086381772808319470856004366481168258115054889618733112710914704570948138818483482395461665622884751963229206461291053462240929930203065749066256699409151106091102522717587159732422074945964522131104862954794205887253230067770376515887681316920679105379229518429245253128070740346731042471616872228467577413801473819566460845188505520295955592559316733583419387502930835468711537992154087743449172527375826658917699823218828878923749762556598073975347521349726368408845846108458083361839303254274868794306737990015963695391103523324328493268686955391417480780140254933445850222003599866139316587245231648778703779119270684409605280200796284141019400691031474962934872484892418779424325266171483277091130432154116290626336601253240015824357763030294295171688304604385709597122288411351233592219841248514267214618977891737039572661660555084384288194692414228877606662885999398084922013497666855302532434313661423677637471142685448580362807153348527174959150307486697982443779517210111724006125632757712665663551642491557066621916992989891176962018475813248374138420262110881480769756113144931613454652513010941722916885750653079131884809377222421414356780023969974452080202307133229674610039800524969834830808124733473876288372954210604825470398209420504260212557283201433302631885275268234565388193388501775662000870808514605633100950790066918560305592436313817879561909023909642872440855109663038251592975306429746832875788945366306084929958865391037823603056217070448820795813114187681211445662767113657433361534153139135509371307087836833006616785972784660896613911753851032956264482851828604094147232484778462964088383191621501204697363727741934172032392108175083232337099199021327798835855175240134977042681746807208053547101236229886677468842975002922983381092105216085791287102550620192003526969809394272242334109228698462389095757525902795601513257008609591929938556828505237561401780137271938954572955224265242223492334101284209402386708204679104156332927346588059026869099163507244887539684568531164626071989096207136641249771871361458862273697420057960270876095240753877555509461885438804141115061622154419813563064869433181736712117557607842841153456500706268503237308638259488405521155932667727634964734719425058798417630762978875284589946240338235882871766678790165255459459564453931669516304975394812723517577327526224538815843879678549038305669047261836986455714471762627915222870683629118130373305984273418064464616329067081476486422269973897171500607277932820816881051562475476695010930785752519303214549049275315378979673392132301178217368547681244494170254364832870902979583816649862250923314386340064319887785040414623774020037546588975988785391054852173567893127793279761363875799408575297157740846527983356038207117816834654176378572530377373870359102821634901049835685789071569273703902896745438690960066732273106083464604279356492350977707628341593576859166276745053762564780881364397113887760677256871217605212726417454760279629071921778728442294178371501383579639839963457564094915025651828099296643101146129818166504584867394479687711671786179917494018971612705612005448142599529055906685358792082166270071962061235887814991497174878043508893223138412576932731037049785020865234386976217708714404771370701859382514101663865172656450407629468400798242784510387238464134331349646810497381201154239336090670598443487468113051312045381498642614689047731562502101693687919332342327541390645066039350320727405749638890575133692113351420204050281003153854202322914217648444587107962909587634632886735626280963416931150169833853110995349121036254012694879892192987270194114452161309683429945847813796764477586909909770727611118506577572351957380056997662109172720945410809082264937813738465488603052212802316162694301303939486040317501220072462560547396180006948691802715631030051461418037121608858130021826368280627244643433224646594614938206438996809217094922530943219410576832592168544042474705558033784321762740500558361727210502339339880021361873538067910516392922755697503618726514961623705254811624779388176342921566527856927402297642676414295302561641411102610501813886516126040442402326814749201648296205226088977691528692934115691653820519208289542513467194876602768838065508912320070289677266164315972602814036842816131360144470363299111266618968387337734730209552957098088040762742596937326601162782727810075202740976227012599890405347695670487292474737018204371262747670481736710310485672859210678979225972622718051164854444912798008112621506683699229172609455566059752331844867667504441213655008131066552404247757297919927559880101298209670434841805607898304162355518799348836867976806983276929037534715470227489346383663674489556692537979303204173193174940269946393690773833576803485799686521951057404465473213341968875113098794008843541246135759748204580113346050998150242159734915212149037933094245343636349644389761511791198648348577744356551742791742389175143574785011889991650553545694608233141461624927661783108363753001211861178974071410196380503383074231495171559735200517031580102728896104281017908467901678798126966378675887204247923267353686016513244498011667606878436408333711810132635658318294430506455357402418841627818797065536306784198884943316466284271972786949503609400340871373014428118496822387851457370090063110782834921982417945019220143093895431446291303773513337859674741833021607039760015843384299003643188607712898217108465722433191467390681006594476159398917778640231185564513880278808938326386590385333410869073737688351584729960474112971364592941147357425238545593239839141872252878026088082891974075020907212940229444218306887958261839205419845783305903750591863570583200407448256150993174128884972780667970017859728350566002473813194928310847166621606219789084797073055608195795904279867577539761931362158323192876783968453494260050607611469223168958074756084306908334796052239263933953637930204515142282565454293117552887874209897529778453377698478891079619626564486113281601179051374104437119631577475244535093230021256151186151310702889084427408270723282623091969897200761671863845076838076898609898481967207566436219338915914882779980316719421172455272959266804339745905265668358597765703895452226322777424204291894181596490403970363858070167902963496120538420541482327347506049788073300326359661069865025007949301226431555695545128171903573121100090117756966540721098448848510297445377483302591534533953373541882759363704385895694015255550243064356916915681850615368243926178108126649646796367174513934014720907360881554300564802040807062974043459651492532327576138027606777225903165728404151730871600343582722795962782082814477583053260383732063541437435706739416461699806584514495126340870946019706128770888863358617628365485076260826841805491445429782443528815558111989761098681021488317364395281998740928662434152503751188056651948838860305664227160324700248779381138004648822680793199810006759915958687976072931613816140301755598961465926369973810135415181499489317414597031442304135866807240699422193385542692756372017993078499476828554609050753419735989747364776009101354285855056053019794930506395151308358440562862843703403436433171757011261148639376528688978800258073138891015398769510602505891450214202395687196008276794370746649212228184604765543489320338865016623041270592591076238494552473566474758664643991862501817693809871740223135133517889352790182329846320351302796539408476854144197763321068970181649329180714250571118013235851388124715904285845572793821315368042600100978226325634272756951096015698430452480994177665415974361887772368829512119869194096838306263366863241704591012451291641137469297189501759818103554580382012588030313983041106429788661173372197862344750377694287026478172083643300453308411265121397918452061286547060480256737588428744469185001609777356733956872590007305422002765382650772888046479644025192196100693349537723599340498009026289470909389467424466462658799782052908572293454715887234630109700704219391259808260312985268429289716603673810392996927137928486368129567055733783994335559211791701063439544065228504472220904926836232630831957729172165275606962062742628073780231578435666363599244124119451835543442065215813713151209634352242097874702976893654993863335904516702152186354883812014741817027178518510055475198021115918585598382911462256200809802197868657105674326575425270731280361468833581679543099223586159970678504105095825211274962138956096590327836876883985910607506191181674017208297883457822837388081658186235929674585296782066934700208283205019179177029402183566593684687595139784744733090391424556152341980617380851932606172796929721186441733701774937893182107638796801975988532189982887492309701919052267667181807164623219140143575112079825716750582355797825600261217302442606416710148834916399693513799655056295326635039810738004044810078658460162363567849587188176170972441135424345277850044269169691170794665879299412209202012246483935178347636184821154922771750061500133058127164192479289062334300581379522390696826248546624523555578744024190533110670270888366405108287188909728572132768187890000043583930583519573398840601374330790786164867572762131501367249099120551349792303591290934997422200813322229295473727822182518660955215811945636962450875295978738893074153514516715810535037460517090470257089366781657021876948404936582012331693045742066739016532764503989179007043151869411944171607858199040097887675694810914402653742641812023777555566593536685298359708725427175091388216690341769009723986211075840095708779010103449344260738702832829643066040915862776051551273219015850716964613524560942039181374048982273287485344468555339019265822917628165087141445090164564322157780762893715652248923977913856324953848748779955427404630753979670093932125720219126607721946111693069400886110082873241251217334966116925080125753609661305577138202857291488678295301696375240290878209486054908515150244219383394748142752228556494331233335404118451765210612702446526934475439263381250800089461938573608964788440878879535682462136958764985903940141265681717507337792161084797178959935982123285776443261570625677625363170831500647859814769647354699589161553089602148001955334591717455363263363971432860977623630875872896427549226418331725280460495939324892569058565939025751809147579014246855118147443509896920755466553977781549439112128738242084217341626710586842644879968386014022237618094285185337110385065549400464997252603046942043933706081545699076400837962537169269050716545553617485436685111798740334118256342900873576716040526488526131322129376587928940664910982912701715765463081348925564241085334125443955921360764504619355598689088861438556280526616433638706324773506890838600039994898636911647872407079258342139462435668316333958002165384734871894641600323223905845935842387516674511384601686309678764229206638218484611635795266455845342604197981776577329001247404071808576849189597799519332392742072700843813587832083416538890218661023231813786677640068527254347274540290848439076530993825793211238065247426685810374112808909473968661060170741905319350938687510942431236809845487638229092468058620419663107270179956661351479644034859114742888145513035825955458028056021435607604247135574269023197409676581605728040147243109818477257841284333112771181509023525739757861369722133813152663543515568654350640188417438574732079896534118707567622326058733328907753251313276916981090760043525384795907107264158700860258643917494596586841843628477188439206931677052486017853120124066075940194604790569398592380741478645945810900054088840311778964047121347119076120405173289970260659635132720809286850118815690400216292612773035323715182221879613325526388310217838727355330439695332200968712347021736616465150415357810907201899869110133546358175821353959421565959489518452843834843326670574688872380337918973151555252797026960531509496563504663985960320586158282460942802226955035165965834676764424189620312084023626118381989243866669646635576604475723290593805133363800723879478842453058836196208995256420584014656263383397770186585571880105867953022789568920964185219205399087898365966471255677506932691809335179091616333253500380241924396592673385775737807363805233004187101541537472324317537605716786083327944999913128859870012961663488827227201295025572767987594403608872191882300380258463985447072385246335669334829946308103123289887871002336789410395485047399714950525075911659401475285281656664253358939946184900889154129600526900464987836083224333344285905284198282561193015987369370407967343548418969875066414420000988888652714419516154091100779534352888135605391384111700383442162719036483814692570148253847802104193802465442848040991997745576693041933045456144985789422624765504893878394271961796666395727840031004194329722379865135322097827102343001385803023696406286759844035655742119447847219334264950219339269046525775169156484802820900938304950368876530378128728562358232646791873794807564026017416031017849860347912292254265058379206765696872150566526725231251554406443011670583913639654215452432276030586944539358981184359227010796931790930405774136910370650221091069820450792095143939536468633391443054303158774602536332282080976532882412352822835622607416468523260716664190875342367240694522742897399587129634207802450206527139297447515652703642293057607099006056846528707309380882204652071882698543823603385472948429508061038117723905392835633484947964252119365830780582751190860882581312761093566517460545473794765709114202033378703926391480798032758605820847720625908184453470338576212807753661914327733915132317021482878533999887967061627411148656046786917175610531598138784848690771430500130501865729217126563626414556453295331218277096280717647242618155466083201242980415035838256440612642179696543179729242279763444417838788204349595891076776835264112643760285311698232156876930264643971709126443704749432001134043485965442882053099247574338844329972329424828022217279295378454802346185705830948671547697711220683209446942407454676268172884562557642612573581980499938843620693877052594120425881250089288865251214206680674381148295516632066169305532799109192852818590317604189795052646954270365302282447474642090908531092773045605745832730229396701510775007465983604311268902513506875263002587028580172204816819929799395943823034531505803324755699051527169875988992586489911424497612640219405177717589948089463008820606299185513188826485883129865419824647150049987329073143622964927429837493800853572667304143525855367008766857526711323174371145105837410274953168668235313723232989997195385355489586423990594787683481466323769379877854478507749118282474250219347536709404449463254733424197309788087216624353632760470907284957143376229657360499675340707082971714297743290269133878459742103695269406352196896114233086235977584592988189394091805419737697357354942213785518211272123793476077250891471056632198863889232670186740189788617445729083928933976686046204521232670981936515232126206159201642283807069779222559642319834277663003891769659660126310557240134491377485949957889087096378388129593543849949745511368940804312754020660351269240759737109685043713200483422008014307847473968763398424612746351742100630469737798908177801607716270628918730829342048055398164421363190650904399526054906935266570588493357726217606628443919120202206868752712100193020141594906411193425552224965865899592619023955781192195439047025034686595626964009066820509655540631565486515164476365260899005057008119017148440741287495851529589945936506714727895962813107751163819372191481123052776409201469459157746494579241856773095439108726125211974673656842616036866168870021055804117296953659988594776236791090797128146918874135625336479858393539069981037721053609843197808564001534283575620486361018584822217266024511844061875578393287587673754857479393878478471736819071500393384811136042298026188326733404878389104875499516765212152114336116053267657025257034935343122783452261813005741415328262521824429663136290580282873351112225425085364834016199553242419817195093471689200556220069781876464878153142128228270051503393968648086022815591124711432741645073857133570701392050504546689684003336642816683447451721830131952294943980438034983681546053277674292397726158141600990115016760664839463324449744204634313057936899776687447651434066439991916949148268182933904766791676181473009607206409254933576972799402585990558287651842690014277808402792159425371865255548519068075886689746102160807374677717969106428949435157776890262531732656661010512736885839552119314282767828436303367663140458162159326663718893993420562617181456606233411690686380366580365704209242308456324530424196411864677140756783364707918563846841384582838561323229404455343479654315258412756318120963076724120689669666324281906923077092657753035453037064230585576234056381426053017642230745066885972330410553369418690772680157412740948181470622628565317182552898682492334073090588999167118599418721630557404803092537258945921073545701086667388549259630053185196321278129373326619473553811135023100716096876916427074023657713688983318472581446106111242794493608735528632457530810294040980064180747278163110431492939239860369382494478347042495615138840961577593455376425881219716460701530862411678089312489825905073593386756237057745946481977924796020373184015540920323172771405522849539815449674546284418045296193504025071405584402156292585967605199591394989510058738703701320090617975168954601145195210915921751650690957691279633932678516649932844309125607542383356055672462749622937535968356875775983506587162575218871462481514824622624689255306680256592808884401467711539549784363563051420276191872141562862711506669611808663007329081822825352420415537475238946307771013353052099742182274432718057078999671810835683330476592529937847835457637572134619320154504808107739919655194290919272977689737249970586246570596431211039273360488258446344325380739273060563674589822060124450734201744932627666529051588244151722326915408421943810683026112367827584052044216374439354154777986996900036656668573145376689036724039563160747232263264704863716834841931180547166613340009792646855060294723233703026576155812108043975092890515215792136444111198184623241360348675631275031534274884271467773967336729927524744035799559635193178790669069209500947527792081334208263825817306842296202155617039836359551557952877858326300235459236034999839272014798097703758921749521023695836208265605951434343598847113320939511946094899542354682575605640558193939928077625164769071097541817306109898819889062379539963071835082305759861864239492397040773790850057514985364542913430030484246408623030399384819847312385134327117896187858282654991260945132919315070095033803376640735870945166473448443264216109562203042120784688292756343201337299907227777376879586974746603339999806558404485302659160816554696617753756001830101473326823603338895181063365007122138412890107513334837151158254864228453815880742078250518843415198379735870306495640190393933703690045917032627373673776857761763025155174424250977124668040387439773500507605281711919633599758783415323688133876187373179108683707112756669555595157067394496592025655172526795145456700836753593637074247239597659559155856977852661820023401415901705556580354578595016888776077128703601236550474691903518386804210479848528515197139295975548417997599410630149746666734109095882370564400853667690980086739510756669000220950534037651854842642549891242320340918109823724089141381044505090783174811285833246784180562336910336096158538976251057376806056371495939076724530764754727730008534077675831105253641100623973426863537151375177934406361427737609257766284431048400996001809206682327470944665439239506291084404038449290123114940816559715010041920403250729053458616172199814667173981789335129789215533269973866533729269441222214875946618668947533255622504961385060612777144311697337896911990345804823866900643217992928612952241520495044768185929570737025720560639962344631050809430869098137792915066431598041714648571044343731480528900939043046824983809420449581909611122148001298182019915549985858778593388581792934282955464054736701145237561562477324046014442593608498578907397381348087910508841562367405500538591029825317936285419003489602488017597669683983756567841474570954045591245186232526784475269146749272466099319930227250824918876854966453350238551556491203188005295272672026461659922548917567929595572365667674356959299795247172485810474875648747037698732215592764090234764546230518712988591481066375075834862339116050413189958468987273714596854174282465035593439821025894886856036228703060796143037699079620691036600964168073893440242730228651562964737231835833686315396174983964284491158116760242015437536271218357160681259266720293364856822739981589528211436644902965871726610045219357406011246376596542301908977293408150215989040354906363706779602037718711736540873414490967542483977463729327817360120886305586723436145972865550255265926440115392293996706651295746433116271897797360393496861262123427794113950094414216391639491088359331526193651586023998579881286221731817860379360619146983303619407254823502643924202449477596936173366607111193993883632690478037833898226675334995978314674252538765665528489647298732195957384638625215175976804405101252392461749196918847624270861053721964127636690905684256676378525488315888862315862062996390650638504902405787127700550567100377662149091032740953350810147649953385113570124154551977049443090812912327848999182674527998834828105306394275582321736785471551433288642099485702095010375114403059112523622843053316558876733612437463784629918305294813511944710097756411490013955975408980438200934475161828452058877236998486802835604562029207478108687813476562442732108666469874290339425097623320347085077409158643007734426296297544554056110849785670959122297081673853850061584326874144679054453618517990014453004606652982651731741740700369931289602813440240893831882865830130296775250538480870641867565168867608244512704848353319690742702233274324307826206515729582225640513218095526060612643556572986995513379893595398713637794628970169126906690102309359995950662468410093163604007338983864225744131554194572282547712031451591699060615274152319805009065749544631468132014534183874330441134412833287354886775643561688088135238424565306689594998461101478746515352657917533107739466033112271105192488501978757522791921212491544965399312396591666834064209574688680377371547248048379733232019076404216890254907841019883886697977387507113267685236321842496673544909469575496900598901250403025395042169130453424899115180311518826737594127266084185775162801399639727640021505917010379593772328392061139885918820516708047856927190022987821175744075208710220255846624297845098579020924189982865366432334612969519143993086093927842242702985362094955165076470524784592302189847992222963233958149591815478169037153715203259144083087008803292799168916961108579804743024328974651710551487774596807847583945803165023885515991861651346560123019565983468300948381277777107328765486594014308445992968020206521525668625305617418071028734834259300147735825632488537647168526869203626108141107618047869551613042221192620937561436742888754469976272833586720204262672908336177659978980644414468422479980463795000418671651095073763506129861392195287092860718801028068153191297186618885061437144821290396082795406473896923448098400428351640835568523452760267963734548130551523129641145660384605213694503490803502237712072316544351582903912828505019770473302134010397640138680833837962456401327629932245539918224512418528097944173622511397502429472181269954808420600772481006990315043613778775789074574370128506439140829936448447583246077975525593229387012382596415898336150751907616622763849214741710236386770327736403336684842797398517194867530537081361116438586895675172578540592434528422772239176874337959177620198258664674731362518283523601117170050703360861493791948956682521471103922543856154791036687921628922697662014241131104363394261875462601140438223161728584759761267301607743786885440485512570429126689833183078060615059511063332572666661731630688165924766786149362245576131761759591856198572020598636873215990950866559655551940653951670635040837819167753583627301337925637927898426979403533349749230756961058059348653774795229510943249336715287121563822551248547722015179285222199634559202007423574182425028272738775332758548079189327162692756349666656798723088396417471389566525319461639013509877499896649578525552384740573161393374267021606196219168176619024008086115577042728915878831099100680762988487365103975587544360515552358315852664612182743476221979078292839029541701077372515092931726990127050222687738651115602367441631495412373783739393749348868737091932287376499010948569428178337587038290383156033930632633296135246563057372926072915264255048950853300908921158707782450127991735690849762012080239581286306916921329302992105807696052817512023556210972037177174995575713729748716304662395452528932171388757127165655206782336543030506016227325949018640964973329628470696578196588008258661152863234248838889143078273506978809631933565471361876812509814277985498321995504284032242508201368198012508783794631469723376533450606996676218718895249380761556680725056327023718508065392179535268983810578581891875137879523165050388303054313096177347882025319789507968605367704903177645166004369508655267379132650550504789778092508673415213338802680687855856749716211865667065060483059642494940494672244221964099595624056078112653388136460323305140034048938950611430327166697795133573404139005356626519805786444232202140314725999721574108920608270570103238239436354975205816974670828560954607347360679663686589916317952860384323075024847240554664751325586939471825678728683587358310026773628165258010030451412980382724495650120547869165529030669931534414387198062560554523313204759121466045988112887368768809028264949718346008209941728894745653312597597114627294077368222261606692928756639097912625947043928062708923080999683806152972508191567092622211696110454000457076176785341290310646185694225163675083424813494207524449674428738301360747431501949654062067709783963236241473277486650186292776424057139648087189102242889743719118353528768458168915999051557160784177826723642220658638644605318914812323569456691322529247792196770352321226895811187997492540600191747752328378034343338192265874086587448084110528358720814901499588225891564462968286689224992255468571343374444602687054865279890122453707838037843960800573771843043986650662754639381053582956141356233740389588947545203977050880855502449109182508665289163576087953175823929558936316155550373893525608763326057510332713535716233958997327316421499259200284077458275075911060964929032016865341634107927407672476280059814880730075079861104173598769375816157336274636201115744244843314240873415853863042854345835653536134668697669279176073119790398141660051450386215733937968465145692374011774787649232255565819347742666200332933049186314801428145903010153923310211500314576354271999907347788401195985704426168083312613546743107906495878261333480529589390837493032900763008270292847174117665285097427937046005006796554882745387342407519363721185821236730142772770257097389672998451788404111046176895389269264519325985127164062842780127693929893635949106248417111815269281506266519570254787891563594385080383928132740384632143038522641428467906251913698555164938075161409944861441684074691599667638806409747736866105753246974642135111383233196198108466546698679183368178247811686321125269851116819375425197599124623855637654444789544898051349297719371672927531361370851009449506166879463136666603224597938422930454616290416943920989536072820748390490599406286812239239807237979818236241162847973557044801490842317176610352408077838197472995666005066805489615910430586795914046066042380451977194333737842679048672302509019447252421795134215812257396785865860043149470862928794335525498734565376727378105801919244697517408541861985405816320736983126138058576516777236157738259806331388312964335516399798431206893732133959732382293152741452139900168732009490781083089671474387803765240395088433479296378103884463053695174961218650745941533033900150932650673587795257775608740748738315911159436944129490387068515839963485473434558795269884691166677020863879548426447717503516466685552400054835593570696450363340662112158040783119128475335080152274648353590388600755782745722477452715399515202533262810725844178967596843471832571155010196163557973830351808708573655113134572687208399024965495876416961477890876108306005001291845543997720293611310891046317593085299704686731275446378816185195493549713777426251519421401820858532099402757542473259449984839755279622310074605547373648308174181182687826411746830335020592807708812248612246635472566390210343490864636256718351494893505454788507215604296017575773414949312449042652100206787709876382460424852238260564375526157213259605057944823918793068452192662138629079370854880368383934673602126072826515230818139333596357193922984089027407371040907540517783775150375750544504150280011235068234396575755131355297764295225991583732772318140244928641554362831879325316418322958968988227506980104922461395517350023321101217639204306795263229888532611701174696569229796529665377603673069106570556176025784755984800439782212573256863140171285546477276020629085097214481814100495589126358949367036146186867061604044268168715341112922540570881890231117310323046225146455243862196183227152028689398246835141538503534296972915907343508229250077068862386411481148875770405831244307796288130900967963465087788181478233810124506422608687544838813589395741869880332124894722908828715377094742962695957531517837902746482333546909970775519504044481959322884961461725868273133412875998078259593651500832057057389979676816270602478866783878743073904224133050717679056257114398148565089991875653225347889421652231117807605061723624886460043210935544179279850664962127054465737896063666781956804582514451801548327584667993501226253147624559550006795792299323333366334504400463469603528973475660598900612542123594538588861525540281839123627958648887588947418114268377160249767385714547132171212001412435495685498977959514790329843142936690266177476803873117971597895125194745016918676253997420093204191507003419180488666834511204471028388572250774196521678732639410383836076717236559306276478664525192571990904366012585341004469527819180231884431405563503313559419412515236601503292523488217068886509318359085623300967121569466870972357362965139999249638193562522429069893264148545410231470942249424411809353093701903926574479705680686829410102466657088936148892255370658173602901787020500655030284059692459018050189634365817649507036362354302135397971799297473619459733819904274512886568027733569242598151729693039139172681931763939835722657528426373140637813201771500748276295784530344545325951900545800724886177052048546276709635962640120382111626683965441560952428874862219495089881694334643953110606181470959876477650528560838103094816339419436626152256991098107206227131871507442994190916773856951411069238987287676327693826355980248167252036187248358321046482009534811140010125927245050835155261758864953247922366733353725896862759579110371967741747859785473681826194019839796204320296975046193555127843443794141118153312929710775676027249955679544348211256680710577009469818942515767983748937570852789743356358781767839521169276354103107884527357249882547296225126612549727656923133088965626368138822987932029656413734891053178407763433598144015507737945902190477916977262277260898426087141852639979490008320050324932868564370984831963237148535616243472956347182313639538171683695819919770623427362878313853616064710789395299218981665290643981640048626335598193087856264280359212308351774980758237609169179657104753321022709110734555663374365410840050098664639408529455511944634314278796427041797454567150550843476402080119495856941450539707997697419631928935199086508622729980013222218022468337731888986268464043615276811256821446829782018041780847792250042729957599858848671476921704730915331645333777805365053144342770524716441943362579609557714598049111913197700468713820210441020952776291095235003861329762547473429211400611320318318480562939421537387568330895816898877564221663306298397023251877792104859275848449410186310174347956188754462851187055704648180981510291595517788022866251308081872275555994545038020550645697654777904141321858312975357971764752242464037252115032714729389815284143768147241641964595933968155313168392390407942807911100356714796423986912683500768507017305894227077983183637866681713741070480682992571321677662462582985598426499934350558889427929811892763086370949546136297887722465816628397058731066853127252957264825240796794763585798896632252803963760126562876134904834826248167987561272281720569313879353149663702811459220527199064650418110868148737673013974104106707518748412948917107732517838930745359756792827881466428647243252596368534711525524621792403949147016506087534479458764653097572560127234769081652218269132245134189084745725306572709292375764792177908833580505435017011699412097795803743120266263309732803946856098440857802443984182328602539461055586375005838542678831056325310202473697826747931070502403194899592420066331742706852606492414583200095861853555215089312011671150002938827067995863404988642024260642133950131165400699674978938100730058914789731619074146715590186449526130907854914901827201148037698075295948098381106596837447227464921263397151730810964193541378358012964371156996213496155916211790779509617522744621834233889671221073978976527288188175423264791748293979473264244238323130728357840893021266394856097937351617871950595567853337965279763953919677342534254919921257822225968262263908676024336260104021667529523729485909874948326729455944976691463375320285863666838414343157198664166457832222387508669828207011019540926997412013106512664642789482408191846836357080579150262172236654841548906538604956656347906221781486538215829748210177368893249246526909564148858275100909440110038251151090700506677761533834993727526609555957697695685070833390304262618088365544536394001066424443100105367655266959413911973668310021348025386809531072799797578277575645180187260282922393005474870552047211385215853120016815582366421030334240457488120325561282579858811166640708600267315292854125406045336754046511367278342589275128033727424474917771025838738179595761309082338616672934444343149984200140399538176540726700519485578352956037509224068405408746777117940665342130257453663553936962266140647637999219697402709819021813059041049916819591584530441140879785325402493885411655281969686884520828588693182047521013910214612234093980667019770283821353303787799773866086912622094305366315454234131452013451316082706165359973358772288665584324797685463183975758943126202103541300866242482722905092364162719483384128212529165057387335420073800754084394695458616320175515024789259186569569472228627637689229455033374054772640387623450100138973549078677435047380874589622354505913200082608533149685603980116289570916045923812704823737501651283923925990355463800705076870876997797635226660660821292734257842142841400308670169741969048988459215682640608243191412946692341044105408041095455136890858479109200341816100469823073505295323809085743770066459777381622990310996397434766323697179652820801192101628673700194418408018313186179910665138659330976783714914768704467063712105121576480987653379471395807605432773974855202587535735219379734721946684710760313179618521577171759474037219496852430494503824357630242984552939642551662881168546179231847795475414486336498055515889394807846044793743277095478397118765577756491706384198017158464877690461718592274291917218543581792218872831932729444172902814254904198684696017661503071882796764894295943630171412870271231000331458514629942225665921442741652841371054994761888437376289010955283119303302625978176446770835914702822395161052900084639019518356680822590741322991188617096798433035189627611091767705046671563167926005568695142816654365082733911259841731611615179167077480755483588522116605141678033846855714693064357463223360447627708315727714018090041638945677429481425840955664081319002369024853112937502065281466103097083393536362988952839349302251148696738809507897432060560204924449064919723234655311898778559240945529972191726287707163566609213906324384959025054366307472523457335123617072640006613125499092188142188223144805743945763082833707713122508279068107263752587716664466445778119338191884621660130522175500604800557533577864830931271595193370230826232244666975948488124864262309491955320376457455517922760286217283937947349008348567005931049590655092328328053042513859211532338845810832462005857732221170155777272838256085972740300607705195366623204178616765192092561791865375930083162112068082396758629055814085377885831631583041582228928619739360954677116007341918066156086436408644477144331469774495611004810213088223996693512798739937110533774729594319738335902994361654361554977928395634193546097443994997662886121365788653738202859316883811657780700726410717207419228567396741488129919592634330906329280083794516663795837819359673607831200587931615826430052882012085690163172425241503452806133920518535662365262548290380768369848168191664181169994221677075744063220157812773450406333450873675620756391898067105999427075475016559910681476529228217581448158290117670466480901274285373452359194199206122978062344530912927393259173456282793602169671934837811467831375881769221312079715523261700861934332949163010085616951350049762156348471853865712733001235873520578576132156440632611358431470207713014063677617259486447885256333096941940622394299520381469919032803207219548778257416452208699398982737612861112068131852936482160521171911590874362761031221676305933992096561295279123153272278586292069393762917466072697124649285302072445992177866163410674279050146194838844444519983780493175083089478704480037031352258014929668905694224646409994697021752315681051764242681949149132592409163022374436756090968119265710956475778942845856378463209177275166676964690936597365903714264887000681326086633120153758736326516209741565886500798762785413972887670411017363638418112126571066197071413586476642288922271723046935273107849289251941527697046582494795185380055725306257116388624676629754668055200982431435409142617135585054784099984246065837733353543026278288130994066356199106209253690432541449954857487359534534030820191426493050364007218502341605876243497515123925865956525980938960571498097625274509160927021003181597447492911506905716699697611065163990775755158451081846999070831107685609193833718124265348664649003124005404301382096474518600870874271887163945457665275669359219689223126148450663915563259018211136901276716517730654227079670409265260607725700110828895436309446367273259669473580989813246255259288800239952209950389936590376423721856693645591942270648618647042081073136585411639609357020259977276669477563446811257327099443015151263822506466854317167547062618077388333097575534504058250769764550305669158661554094488444406613347564316745948919627354522524651939936377344843854183418497127434647072067687723384710741814390621691626757305427074100884968533836321465458155519544696611060679697772871508172142312620176756845912965045271081207836028946806449065089346675506861817349357156389330735193280142378844983071056382681986752510082351761136421308630945537418732231696429209713866405332372335345380619365469218996497860372108636418233656155037451193254582882620600973750991647362677461745346332688617941748207023089817505270941297804411695978370447726971323388582692828866051676725812493280795079832310812372728952272200396209546352882204525805288563103331456875621354748807001491247255816054196544313458948421858609765221457442280959693001807385538915303023651065228811538826885909510143470770483985183091136354843852891315386375369407588734004407951399398303031090025217278937102271717194706841602797126513429286826630241198886364524844602069153827371309725048282633435069699551788202086577513861715441479309223414520771788904870814679473236425518884234017845877249761711459635070729381702928245651529074883062438097395619137244077296587587672606222693316713290436721435485802445652551092612317279304503833030987018681754014441621593630231557091768681606788336447625275643807479864292185376861513461702205669813198335002206041387909104262808081435518134586233684432403610338929537138475269149532063561769334609495671982552777318658940298943511105556998648011467285408418835231668422854921463833967098780152001591858062261312623017112290245811633181030329809584179362733502163322736713230014162572343341459311022885708594055914491329516715201204991651185739554245027443733451130844645226149963846948644072278535683433117765552535006830338834302611248922656507661364583117448741169100319991179963885183185170421410343728561785164251946964187908664001001448004883261446646720457059941909309374885806853280049234799145859628228986348429685673447000226206349636822812230722389379225109586054067919998905194642746914722441903900373278885316879629163946306591763133025183666013853320868122794968638961520726991140693172139570377007097923100844241525114426795562865501025027483639698678784034892471542423376310140058359546824900942317520976154897084666768458684316904343572711844340865952227287271169421383629101511521288639514441194070503849129733967922133569917237124129658559433815328834806572072507001039994940289490257286282822375950602772896565597167379718940836280220766303145141561410176074196282252388269312655539368431021931145368314710079326280071393434302472052122095120537293778449104878074079795908545117001795933459363712095942040049903716365735542537595576413450903166553720939866656537049161102586140914884370378482255351005072558723029355620548325424728914183813392096561624899456079155170251833532689810368834677700034975905624181956311529954574040912729451716440637192321205534288617264144483694567031800748725370493352682749154266821338874572453041979295187248421772671990609269619822849704471175377682235335824891266002792137455216213617467849965666294598970782456734632991837990955174113436886215657734308975779286990616932338973221779472078294313627711895248142268553485440049878207378795160125955353453895234843008941683316734686128880950131161368141678726219865399404021627737391430581171729516699079974900070108999591100293838174259863632973044379052510541842859936981125298478836043901243418630637042080956461006049573866063750192395364567787902604518803879713300037791642211418404955421156916606557350143974243887899580144288577642216259162789908405641107079337647188435040482583789556935564294698236101492608818413372065753002310044122410655503236402814153784831557145430715310198603426453890872271785279197672318856051374888582286954536272731580685155377783787825780261606586261383325576143015138679596615987299045106332725586882792678308098414640554971073275776937537555056528934499547602982520623027715913018699090372444402062698231680431409485017933839855140242129310698879700323399118981570402039724032465558104612739475649116845747748810562190957496946059011185565805345691848071560571305348868878492317262725521596296794763239570992117575666157988288065704749246128003805249866330633348838284288084013601293568675031418965776226866992627402919974067029583827811138215395801124024699089214965858012863658778542351882322662342049981823802540551834956013503792959672132894895003684368975750348126733492610902630689994723788140803445800294361213483293706587536223209338688489741575365053373787795614075523129512938060710308320741138417962510140376143401880375157513935102807133983497798270213530085282538476655479143477818959847911300109174737417680442854632417004527100545903813644533615006823155779309244297424982386479339123941466058718471787729961432397051913624396778971814736555290156129249996567026603840967845438578609033797877479746903411894986206656251706936690416538276310309960054467208530358350394704279377750284397827124891204167737448113017229738570576673365162272442924724453529342747922010510796620814848595792375907891061208536971685191446868335932731647493646552656175496513025793507557469306252991495993265563766782085660349874065033709185575893906453599490284444966376026396326538750498125940466344006022079563362809658762176748176786646421966448004534621406917693617942045319912717945370609122924804575905105847146730970495171792906008039135044167801592344019997493291476613614071784887689623726423389569772586179174032714138468323090674998403593262399432289140803817624962492375813241541523282093052865113271048500978298886386901671819540364864222325729622638043107883316087799545335316465427840319342980812149252637637535820994028289377583063327971755656175308865769248015832158271726698499976572966163651336422198517627718107058124982132708492701373398063419511105011050899039581737435770920774782128286857675736026817278639885924585172007678970188848312667712277109025411059927259055515486479722053169040884812952484855425334579024874508865962701908531026675602840400469925170620810784117363870395061464862929614512743853644626038808858003312136331530308033728612236028462271088394362393311600477048613747774734266718920070536725879282028882174895544043160647200634609094400878917248389518382365100126714259984564473921811199215358530417812740511601206838375127577544781042877863155140689849501063331967193797838156482949983519809489015787472592136026473809380908495766686211855083927223254660220418775331888457988379566284707841936319281297249971607073797487016403623297971848947428880454950131660398268916749635952342052478047980657546824955758926359741978012003596189415814225829667535256285118480992674123505391757496656611812020347990825567350480195323594056685511194253793648944235503045558954709290700333607409314352458018213669320076314579248093903731394369094074832333095116056153136067271855625921111406187632904466854540209273134238404757470817440049040317946330262992649574832831863801954863422089384355748434312412409535070961950659694577046080720467145487022642422397222774972105829827790038498852053794577989742182720097063868543956817065472230438465026042236198445616183898474142492968283827522484848293685210847544360733113758650051797100949283666504117649594502187193454936724440951084987243189335421444865051827703706654395475546803164924064260226701537170535341329338064510983361781116020951407098801290913893226903599840518856443085757113973382134459810627780863516094572994185125183644350939479585622426926296424814800285464191822511279600890452802887542392982714838317798601574447863481877004864033991339115419381426967754537370196972593617159414055044762377107777742397300563021752236321641439536727464025772143062855934202281258713860853899621375427863066055950565544683154606189818029854519499254060039037337996629483016217620268411452821193408627733620246342792314427548881240433749825964345049211088580154323843562802607098462593170826651176847299784948450051270676389341371687709485254096693415790422183507183215248528422695768397615209496746176439339652488157428906039131377517297613154058519892815113286334531835788569270000352517218089050129410948619046601424660214632117744662120862031523233361911034044795492879231896218075772662339923182968758497627128728853833925905945360092047053024845212334619149039869224370055845134957103171440067270015131873259900173092790033485230018012016885401647938062980207546206171820109088472199161342969147644407276337317312773005555300440629790104873262528399987706288596543263981388671574726287356622913892594285350583619812614681718399537560408887820998158204106954373746115740597313122343139700766611814813877350393669506376076469744193304885435748244357930155159312105672612052606242283850081067853995692682302031864558508805988560236077372973370710302659769007657157568254191453360939230706675871916183419387691446814589486435350946345887959716170839005453509938139668718207795199678837942285257025263376309411044531122429528562042127255171402927092580984581409301253486922233210060906507006304261178538938186664655039182497783589041735335721760391209833520021367971767241970207267024516541121552600349751041879699236712979655054459450245784399840876049039451024697073985425892481694013256273232359284793915315650876855592095235730607154946764922192617538296255113696396744795548896776743674127683142909411694676933989961922919483633252703388061514916169134792105828387817141928095095701431022871781949874894252028165483178363137004074517973296764667161547824416560759344773625681812933704165088569386522163365398673352571594671682724828597802573770125186894941201033452577965254049480963321976816339798364518519385941627151260274086911739745623031316568883904553278239668367057590994547444245626734006836004303884416245870937158678779962593311751835815846033977967032984600185082214640453967280970229101843281312712374203020343725311654470280315689746969491437043780661263919012888947292755539322295689906476317989064999189270787378599770171423846418133284217582190447289903245551478907163424386244831558529794349804076099284752523030586843190538682957779105788926365917969545172915787723771736191650296385848592484155333440867287082867557340173403797932294960226719518298513167347019989207619021236083426061781754908743162294733175523345004530267274779151625426650252620966988731834645852995907553463720645891533534519825780239720021024534810593684364926499370716299989800644063920005092034484905958748023678217200314604033116974109106655229906755202253592257655891990880177927615571621534949559018145019176925857343850675324970474968902448160299984245526326655628517837797493523052540680959919872963240880558546735330912598426068577116015994116377676596299539006598878399958623650079313966581548817145327776856533344162008649100563546429307103232363332934804328065380848713961645952700222465269049905292776472999713037235438227549009489540856569160792579885237825449284068713325608411599885787908062054430552695614817448108780469670313620179609646516372095915796517274446956789133399118682413824878874855745656703477114120691522730713836124988791996257761045793995027469782973088174522595382410412622525371618490025374895751805340326513306616829871784913094865247121775880758947937477267261786750624285849154504356396862741112282610684968468429871776509431443013120971884521697973830850137587022175748551934888389465893395648635270469390549080855587739984770331605368295182868356138684836171137467754569382521970306788177836151251379321035164693536006342622138789210708904624438030716819007967031063107143806736937653297434735838098415136053937815275765688514592540855704738360653455584478665552587246207426456733659846137357307217085369941725485315878269712051951788683492889686739591458999611732473132405429741237156631622417926445580302438793668407577986381865945253179069151308731723206418316628827190529173181304970538166268224198697290021866716268660947582648632658244436494274853366907912100160854215741014600900349048292607795557494576793331111059516909613823899053451729069327110920086654695485503063033071853886398350639496817520037950185618928710264209400110460082666623675186282781633728303690234787649918024434945793940763309837417692144283757722638264992414812493304447648894908381244192399369413883636075437056078513545841154467361536795647647210364511608149417295736325776949870865405076670833892233494115383766696930404128803709717108238959428539653619663813250937351460349225336873245079774300630816811562893599015210316857148849844095788124485584189767739552633983816130190788923914838382103721416256020361003387001133887357470263201395418803197183736997276085283686481784946132947406873580670163937375541174166695499820387067792735510969905365501752752689237335453269791406422510043341923982604356192108015879664272459842670627873492964959028085669899371915765319404738501981433457816008441969594849951489613766175548674197849962569765411269017420613708442175302665467492140509469166129112769902107817352974542672237078145861886464758144121570392898569892970965707331745328897083516280405253565743963483898826549037281906093702545255352877876024770818089121142871642467424049065198389214019138470710085073779203002607392922358840818793769939728651873393571511994017401932163956544093768901031017846644928054899186994897463558076023414411411315479711431206454958256914190422542668853991445903829858976446941949507505820283710047143589404077246857496617364901238513509538635327732442004325402753284171618403699616611993372633930941300182713166762189088812181132022810576205580434531900631763267840931278849821938348708932561917113053411873060919129802326962969245937736491274837548833590284380213337125235905255478799667556288983343520138938935674209636471944991758609017647053210604921938148819761862617945411115529427926144741048151229883684249694032033544930500682987912944660006269422676016602175727577774620928138977020187959454962422607723058819027887528160670219064516342396488971566613839205794833377622894356856910048235019608341808863881810015702356967723159375115450165375329548509939646096396872305283046671023400940006871729304842163781838756795178156007282637833894745599098364062708012400682962927693628276145977164924377592541677033566437228711576587039268757505313738183500915591951187920053130914430483994562879052141383523910207191101499109013326043683417685951914929092758629604959486449250027168028532259339273126708663805676762412455072492586955970781767874620099704884190339233736330224227132164170209220848452253955441142569128270413707957850435001775781231571373433203035865009243751392716320132170037143228983964211671234142203353830997558762273105606006420150049618164854858639048935476665193868708056425619760318683927834151457270310268898490366462220593261694000316085421037427144265605608291698117311765340992323608982635759924434460293108380277904943301377077302328621068384114768114853479060646698499550181222884027937796352005482295707453840825801702527083974022613106850633731557879454932989877847745378239074290705648394647878835356904195348051328748654627659515726925708356761225936391082874469559673908113157972618540477389336957347941335003411726001780615449233858809228740960998216868206414330503566766297163161791200407281985406424067063939747461996242410905754584175981533008155722240446821850316942237446393884649097932346464810240589846205813293736015202460290855795353066435761840232899498024258147012102914815278049081662281573903847241081653091367176417560782708364781314130334942236707786379564955511369190814768640672978439002828725565344517884090604364834753617399172971619555360808951419206249067453399822291029291972750122413499336620119344887954005703999621480550551940925051299986692341950678238681043708890213506872515280034248553105785523567652592583138369489847867742888726392884293399842353703446831669364810467488154595533235778293414968433861152276013281397660930808861872969484110077171882701317433450880046368700292576610845056636821353260824632627292187515610686212183593268420145726584469782387044301814899863250452925608211348045343722101076600793034270090176027145554157033758016167249220516364139612986303640727585234447741998848053272098429216411961627914156202780466193622896738731254608438254213194917870682275470673490900847840540536128065596819541249621291763372663037228965672952324340754810631219811337311208186472276950155506947450384409962988939631588200660104219226203322855808377076128097305425372470780028002397475885351459804601292943597454935132146076583662469353660855229229012473688318567745491827589850223628798396984782973766102843796698174946624614313337618649267577221537747096982310583560568913007352026662378783588308503075093551749585754274556247150259240104706595081100566989671966479663864683804204868888681792551797483573598883218776725633175701521839585256856329341864992323500523042285159464602188211334815794745678089416288426747727129790868291622067790285680709214495280594423053973566846708797891969543380962943591897930787382293039987941698968128158710752713737775451804525761017556708468408667981553376993147567051423465345607548540350219509136215913994177782211561948033872575159065586421479200923373931753800529868862642522507260777861240182372941908304191873767790152928394436437634103461240783350742526645378196407889523700175236357178668391743971585908719634367651581606744027422786686265271315139931123993624851152739997001389484279229342621683932768648324402286979469440768757177342050297817815265819640957956278455526542897556452235617798366044488365891349810847577969580474951839432134205268663445230032709575344917989942985205403999836384026227391304617971366385788157270744143879742278771884528197031588472058597426754316532456505316528130341496605557130302267453183246374458061425155857171074417037737491530485179264852442626596883275639499202534941567047647843612013070613407120458168290404953492225131715768984165702574848246534193533451658614751185887062068910382890884968721838499137011895099946018049049258236887211973048399964083259833852078110079401689853768452539134657764150994636696857953151072522095437836468841053772691003325837569338379705057321979310253202196789289079868897045264189971780247571831805066587744558649012788868745417730689621957183544629714343879906699895303850460252639035267923167897442041611933612221778282375459309641587876622897652704046610211642052727549168333252537549826183037316447023765390593285214428734081677694771511083679521688496122515958929702240048120193485239920546558769382802871471629345124310655561116304853052616995998397137522916593282205813428352293967107680465146155427850882470607418461197623839141997241174290505732415717873206798956118491721336053414785077564355137535163939895547873930092427179590550495612383090004313597751127149714915793074960946103046015700133643360100733283625026356671584505913290699954761729414075238524588567641000590023227462500306783987911149504585689746989050677341726986940546653088576214097188879401803186170229107569862441324004838082788598734317799229432778899048330582512351158606681254235352284816103694539672102921067085027694815467561856413303720672113786100607206011783749540828660755703147837759952056455049345667137819008794026426314333544274586067753651689194482224338675452862359541639245388449678774954381380547250870452222183829290580495922722569947832948076277541558696403194711062421051370513443819477367277215639371638787180786803031742656844976102124950157044949105032236642427492574566688524075900945563049455741696920874118415729460407821976341268134543382829214658979561098500809714065498028254379280985183056903941128688398938524308116667047036514834808604534004411361632645043864697013139603910098160104284748916749224230518362117645203066320423014674006576955424288412921150610786137675699761939394724351210996696735981376683039266748619331463961138128734569773811648101267448305650769611431210839183990371430472390319610402191625793915942637597956317671371666042114895083636564278828590995044361828395350576112993849882641188203893768261439648574603610785250670536902731261021239218929941009734970652243424014368556554425519738948161279504082989291122283477958957372853291551892686514159977994315623840238830459443209097416843053411542550675910132776984191498104774510664039851791091711546164868818055730084814326791788121736105997698599585474029349358647832410234853050742391713105692967544453809891667241106228446551728561759091247218794547081302166534337822828272997624419981662819359550753280544608861961927497217600186231472770078438240947314477612079119571672319801487294660725837578108368051757944196055085255193954901888775447844849159821224927339122395579265166091471853979028231038368612810546766960761734812881272371183155973913818077326568257283578941354988322649644957061246161022888364578155276433632474234354325059371166314333793751190760528356268296731493287110777036505790021050830949484889752780942834983499179998282058969617282182240054370435979658663452170639555150989485465032283297048027014499544129460858057781073292233258143285222240959544296907488525264024630295790563279508310573653586754683748582574745160779781848421577230075582111420773979180779528745453893216745909904883844906980615572344297460392861414082420852149827170361358150687476943334702483571453803222491078251344880890291459352660079419307709881718108192614427862820452138829673261405404237974837060720648871665772860990014417224060921554484681918766840468275544349060418332615214052400597608932528313183872456916929258083116527932676259618806131514852572627982368694839578466614279462735273174118913479578037899000468330292997458244064909055128035552371008703576528528538053704458487409889584833387448853058693499230567149095761372478702947581995781766546101823025323390683939072312074442722401509909505494102399978307620098973866302774601897619346200657784024968464585331218112451848938840020570438536646774163197074741997993279856510032778016295891564544723549133397465215175206650699558090918887280689393407157303612921496023131412136680075143792953927288087970941280528323538975063743239749919611074322432646935318497148890473616462688186596626755023700544944414969854083488887003003933759633174183224887363473913952104356565537499725336773798952672662716729343311345401869128109449421829151650734268231314830646756935618611625185231285089711068553250777898253827328710761252765106843144250862116072318320807011859220676790208221515502732884720875794171006877108981450627299085080195588039715557907540267539035024363531812510733958220503880877460349745523389568401003573365551294840277052720641148258822772743707115416935686225279759260758373911506934783775306939173712552206405571409714486838077719319131524458417566484805123703369318539269570880213667489370129445437185310371792343286692318857947323945113473728865507637286148350692444947654831392957956026960520668605027222000700063227545051121091832535497535172430847893209797144859381704019868054527767317514009163224851794579834597462692476333388869024345600519087338064845696124188755339213244937138594330271047522346775409682121987184508419442927259858400972359922847197107548215909183600600576246387669736866104927944611403296045445794289418042108278021268766354352827607297831819623778013160886152426242017443169430543093962847778671723437969092172626276145626519791069746081081312210602227372969231722148917423930545174582252692683208170379950710991497370738904560583039552660199239434951336605352872056223302016768689607187075266432742108597548756433360961726141476362419420946060861603319520860447722030740794815154532380628472013371255624796617582462826315280062174545683219326358349252225723370509018874976762395878922397618547501318305572833980518231961458892365818817827643074308844897453452226452775247186401823615362391074440839576252119170897743035553222302546328698354317276874919749342990651245303287910920521555662773161190604600703429405246239186101570842390637916421551096575820632295924276590426669813114989061939837758902661490551216796750513872348406917769537021570055738263651235893155543659760973918382956516867371004473948358610212961026990629247674105346202981519755273448511134438883203168833592632178688467534532442807981151859656759374026734123665580674010379247173258672396134742504499174099624672283862724349889901469988804352988154106673520156821565053678190819486925106787852711326185324176966518050657081405892953591323279597853423235339938021604603970306251653772839088475403472442961031952737817860642954850804360467193073528176615938824934094751781726909940601019022401793693628135074268564640231125808393261116971121127845635083043811545862512159003131722786943345365309415108205170768475505240583915884313858281320581165542568166411964245412328924306958784770916600320453205507472265356047277280843235099862978653700875499921879585393602865099063078240267321585773833142521527780910778499358027249326991496746637124321547629240707411216111817721693844534581142985159357462718324142630322232306129023897766334781410416526650171757012405392530246972217767078470601388806088442357097350816740839528772131596889625312983457428893850364173160453679307732440811395934844794571774446202889242027527406814148122633140425623324435884519850917458425709538707823014769849491782754340348186566785415661262881364072619579424060474662121784539342526907976209965803074356374801300491870524908299264965392936445528715759317727759191519844523370053148786696946341722596965370209471449296192701436041442359813968078712602252353584871016940948405139955699201088227279202987570015852432720542203222275693306132034026286238454138958065637762203996437056829405434309493395306959870872666161753035257519897224601199094508492399138733341189121545134957232673016777406781756739107636755817559168404420737712321778721075453917089413240637373258596032577769772549306326167215522355900864936605607452620982790303038532649933573943655567022054850217968766094300622884868556420061796466038673217526278918708881276873930804364654518495857887483398757001871027249398529124438174112341671580733986533236548248848824134202763720108781013636095012847949728829243951069523231814272402639207916504379641117934864966528365060626219888588578031631992822467760742062309162704139540847745387909863046697412310734289933231054801890633426877999917804574184887451258950919317889203642432151713026704768579873565881083526485014288189367129585867262351903184291563768446611077192071351915931008327906173978341200794531464985684920232247397259600826965776747935818846981937915130469038454121484399654775057082753258080093357051979210006883925661038231206834177275602967621210611500409242966407117034072458179237930710750423149647828741629446682653100931657178746540429405036829605092417299543717888308533651062144715462551759501832586725151399839022521209245677307993642891669417667155101093117661787014635118893837300398383746238306233676888692284401091421920554262298594399317629939463708228297212574275278375445416935993701065135922004824306734980381482702365880017839778617270293470306670447518857093816748839543685437127137380963822160668308889771440976805644008130213747525934979046941713914869060394660200356745793917715514730098441763116907078602432594155021740603385145046567620294784110677727053438857709798299075662153736291066177048663973893652833624238231797695197225873763873653512981657152204206419717631316677424316155159743806406491967264883066529683946307338934439525815663790639079031705339582197622527344797634198954494809737551588285952643257792035986355189719881892710556866466365866240868718265656316930697909753846825416903878463587713017786209374804754942118824086278076477508246077284968545864260554402165507372250366492035895351296311484890685222472316056503838036651581446425071635459686964180959777348458811448425638805143574934649920708729000686275021073880519605432218204392845830496600664774266451765949243311587714404178864497083369296806091239130929178327950576450497399390475072429970791315275603841175835030646245743079443672915663116376503878842917468405285566446042106910863712578878066076037006859048213894300913668074937423663200161439335443053317617431242296978251103820704287316116153537850855686758698757138405091838869833195811025664669367254557607344301561449404305113285648729889865586508496597196612379911691127892737127737501993791999032361816991032344892164846504507137949208510046009169120929964723540883211433455246610532794490205929684862309756371632339307820579800027985449766229175606294224610159371961021062936335413304585802753561442551956989093700598054061583593970266363990264350432751229847185643158904130114524971383640930460498585714483016892564727706598635584227939922756370546224469799401306888576353354003997931017756617058056908970737720342139051011573383890847589436659656282940603295803050618621696712762452085833033753753441126735184558496871613594045165714160481802786229202485189912458854520372040949351784202497605867137336787726388299471002823195715845894430607005978760097826826906838092819547957007577819933212151194233903678939426625664651443570107731651477313865445238275158911413306977418724188966372528104823804414701885193976442563639037813992832975594323985473865870804717059243647813624169871560838432439024929567250338766989956580074972725190402178596313296499498858467352411930924556622144246612091122330108637794380147121849147626026572189451275868047012388713514842564484918388433658303596032292888951143803887179489069347594885418274784299268794763117488905474828319514300112764256654571179401288997425858483691564266330908995636848746458613553271343804545024412734028377878982895747868808754068847144812818112613856355473030405836250788573399435621209899544733902083183845355584467705733493630676437415042353142632469476944026388004685558017770272273140520380047808677441447129919967420811594380804818269311920806368074877596272476069821829944187779654230694179923259260871097788389318752121634315689324696289822946502130653889431786466218142295590807976709614866687671988457686803404276519795523413032258171216709779168984053203620005456350970677924262484838546158687199787586222457275171369664862077503633224764720613993482048851378289251919240288164862663050552431556990784496814399924284455768439326667830180158040901650452312356933557642481427054989950997149940125064448612287298634286542244741982802320202832036874020625761990013708905094762146211724910925963881314759938967608794764879563687774867313947447565672144231683320039832615925109069804084427131318538830059219231611450615118189260130841986128110713547866367174310417596332699582103925220827782181351543115940439670542803658104638629691173526698686893503899566726851185463807926710793232645941499818498227433735076795472565455024792013966225760351821727058213369741742661234591279366286027105709425391575297530855855162008145286194001646042416468599351392746934894125686966011731484999146688021537731031877617346529886174293835379194702638734532117012207640722773903955070247519770175005179349183747676318642460420454565466165001874609792697360296466539074513555625341156654164213239877066729466072805465614914543406634922882347904797617234524468576844110379681552923152696336896323164825280161544592098548116546220858445135349494022206173532157892332165773768165197038784836183247824842526047396133017557869156961092909714223129081059380795883036623486983421625533572315323648281616909035939482248841616580913644720497941123552408858747772860405818835775360611366357469112193693349938447421650019736440534135799932456316469125620732370198411900000190271075841650402326507234202530866390892366054593807990413208256545679714476753519013238450341583050022868998458751654848290246359221497566236028030718162489813415273769171627669829000497245590059138470997979627320519399970795447074747955935885883846326919340363588466487203760323295430243231125195573517044151319227203907073503271434765782249074603662909097310262262206645918121297423211767390273243363797966396319695409947803383470726680853370292889132195636683947810646377372221144987781341568729391654894140614353430151896659247221632845744194614189290445132396960254623832006609905255972379992687759771582703616384608073821411831673520603099192604832168716424287677239139181687393191664746206313848239004799228640725400369222058423400380207407672015179873141130157634123694316061045870846159047619387539532824017091024636963695684793912577651800806957848454501103947939226278202770938567576809953756499286953989738098133472913240102312813003634857305783408141962891638953420246404898979147085586821378590292757695331217847971687722192960049789155640602829258154087994137487369600306064783862626550112368586378697242969270772975995488113218476158232279555915224637361975407478577800384528245059402713350933707425652292276660320993516672023495313169735278218590312318902800514415819478994805204030751484982026559111363792566857994843305105035841196820672928905093644299082268139275831857983846521531913053156173449345049913031552308891501257913628622209935110595330866202188769291814472938173605086507706826179456640674084748522411845891840114447988183719022793619318262572897517720556983509702070051460026760905850967184201537679969727494923081313319142643222965002421527084865800354595321702126153632063003092160987413513205212018724895835546024183434466146581127386779843525440156699774496400459534913570701466311532143456005233734970509211123969077807089288686852139958754602649711029266369524248565024032603138166014491031950441510717348473774033625383296521807601986158253335562264095700150883778407267082663913621588441185006407370926682495683941551299050842041603248434818246777281560320208984453709599803223315853411665540290678087766817066533942574068466806086081371761570926482181228473722073222014830693263139619531605399817146444363055655380312148293426829927407958486774016526485017085969250796350730660942843621080505897287476244748690103988987281343804967009745596377300505599046582139627074435110503596551831122306814847967921019767687709298034076035399461716089646026597219113847108604714089020181289983551491756603314022661996275107400559729657369390538597285886905885974156705831308676356963326870317420137150080762114544308745189657038257100824447138593574850558955789239820952660012594350649901432354879472949863831775165956543758687703593257339683840216427136743850866677723825584479322137537636499498974565653112004230993168072886750100218447464410336785472895439407848030004045547229347504168087991025668537969053940995546057864874046501238086842222601948106545362740619932109796107925323641626345054388567292361677763091421276190552486637276605898993068336487072222319457763343604155364254056493633759734483046698391569377832901630161862270996696341843168115824926160329409958878156765113192593085035093713690117403881342218034357136734468076263739655356121537593315193271919573031113211321262656158574222781312523356671286421079607557413948108825518957780263980557117140756993864097672669152648417789323926786444301447959846084102153902267566367892774618992833094551101172123551108762562725881324531331571866617808731321023725225573187188983969783656360073249213424113827557631502222445609916456445838819436144289774864613349880787035825924069907497201883012654911676699159655496976053636488415535890021399641203911610947340072152761454695766674903962137316485918973733271770116084996815471218013995933406149487564116008779678835581568143985481303996583143308771769527612106521899375617602544337237345384748203534434363587061580734635075809659963494834116739339088596082797361200472045430980098437016240123436708498498054326991949966362867552131711938377625131374720361929794165641727518802513999047500942113688991957382555792580744961083230898597791443279339608541725716373890762007298321138442897910894334880524864834875543923706629532341029544941243582754410312303353551670729163601846773181117992650973773730606737064281386632346523231249945417349212353409444439454530595556302002665463826976079429960314195227306081215709210429581742563209900007212486604604696284381857872479956654896783518194147382877184402279804085901460557061578982804776472732810938320997336539075879465787531648144567318377415752094706145816746418734466007373928935744105847679900831313823618158828658490797302040300554590866228398980281221166504753496060795153136923817802472260592049843605994666778159149203666560015955649924052667775620819407048151760365322690510686257148678541295239199958298855019818811206758736753826547907500510695711723931511699490465710407567041381106661792454298557075829955253652194047745806378347334218311320672533506647481232476547717021986384053525664985159125002535255443016449840044901947278749238236854866556095861584452807944052815467200652102536876053337478506050031589189339843162251816990512579767028365936179291646347063553708050682113371814133223564535387262140095763638053522784019381694725054319526947945651883281771411172798664516915565306308831084531918236905107945439211309627473757052131875565045576810791033557020119923935622524628779601501217593845355864840979299135614289651877507321587614232928268942879259669305269991997273006907285804701271362737601933585641836523357731024580622594607328689423677827003516875697616153915853130170114707458931706177960040749166599711806967726389491290698655483071023636849348896518226755869831502732212748677458354420706044451556748343802390891465662185535694143920314902270172591085170724322694102350045443357465104224422229991471276526313479751968351069115985750587350261182665406063761561874304809605362449464141545954439979882444537381452419277724285709336209585042112354207805695827403978286821851114663766683336816233205358432388157296416203767141875269988164531810623300224294974512589349833404290484095652330921210425247428163765669231860190732849850955219589172226484882348123805584804297230948160572481083665261501980632073587743758658023740562406037113165585000374946933063996094018469795566896596122703018082449951593187728242048465320794474347133655496020223229294238276291162838242922850881869395813556749145695916767176551382587358206499238570457039257463277434629856569639762457244215108469283350219054898222225361644670937744635177870526992978468084407330341585531281255707957939794476765781562517803243502520658148675908583369808727630800937799911123639472254000055601347495325856268048843767672759130147533155883805689585271917440563241273825183319598755296576136149495308883202420343635931382744930785356864711895149637912324212381103121535645199842782266272228784496464561516594521850565134196159470667002033485206621275039728569172223254435990310014130483692919994459889425644910574341615162533077971105588477423984020475147857036857339961294985009325491548353162434564554593349820467691444905474705006357737583015724974736658804449023598929870978456173510903831855940498732717575766996345570523632909356657291982569950206073519041818200234062062506727759824671413473265911553836975565065245029918121125839547326535316699658217151402115560598927775326354493219763088114184474379427083504777561925130596905292399231384370046978835444606167797595396585581298167069218653135550716793285710360288793648072278074042138543921369021643894319216246856194755503334372816476815383745244141159016236187948866099280407401258514488590385156098924831497086837523664775887242668819464497827937853600350823202250068971187787359517395161538432211968768145743681522958589062115277737870560641228268879705719922239464010102008486633231575410727157477668668948347432761635742345013100899224111476113509388114626778864913324064702798477094911964319621129382961709328590556371700679714606137174114017834563726466200899334316751653106938811813004890696088497314115384460668910939167890455639947995222493445507537269205780859036151037434503503189804433020185777068599869237211975988865006195460273275511526887812389823363796748581867843991642553844132698567058122373982595824178986400882625471115034294933473132782266174106277811862801369704211814140967002611463977569951703009017274461904739798437626035917944984182134131272718216335695851001411881489676070627365027995271797558819935238537085571705701112018853494898671870625370354175782954073602313861216827327816483249031707530086303012453040779101529342559578267482708308925532973242096075251011822422255654094646340999342999113853828514448899846257133530786567925262396024015989051235678694578538231592760980413121728862414358328104758982547917299543993689843445934566613299236334520107077752326873087428826227863876069955860480320371118975952933588520347870164771851425080835788138394312658027689034435599017602010267710015331985249500571659634712497802849631713812684851721969461783025745516004939478072242543999538656318082156896891171384906447233610717374225968154892188134064686734456395544457759629742878475739940792897738497770247704710723941206125409249651213582983372412641544082337571167313731293376466969570448753798332112338136680225779533819195506876384704841304892608472617856503970648528226643280028474517748230159782263300544393478385256231316156097178742848028383839045128300561747630490592114692027625160417604177532092022405893508627470422605892846354347916899661931657180810240633309284279460490279942559995863097720396044912888999706515825243020908306878219843715159109762031219283087779520368125886279406884696514106154033851508277403587494623093204790261619146484310185802577797157429719167318598734938665233025567153344424980991244003014766914626122247321665436311160592979765760034526689631451528163263935436167830521809744228755221339212110240702803407549049514505058156316976293116730617608637445448632118826727695275839415604782704570654692844763250218591258771190009023137570962158942906080030522852429471496584118719612650477226758032260719727038117770476352512731134251654552610398387347823891487028756751957936349479427235114473442759947949280113521297761360634012021470889913082361826323622814549484773419815491740534847877075085958083868143184580017985072147121091631009564163632697495041673617714874470355006866735918187944631781337606851060433304620143013247529176384246662553225666183533119145044063602285654545120039057292525547081899573148802392468559171849112040515973051645424914104516610462801994075493082252032203813595349542875680079706533828218209040416269187051876574272218617133605826140408019470840125006741080801288283503793772615278651983041209393976458743103614270584387739867131279380008387044881739621811842074927568361865860469683890045971346613326470176610982523100207116876876469680898967314024017221858869729680015813681020034604958770542789766413177434526523087152847186414423677700867235159168099411469308244110324002969230686321570523296778565258444669576828492485259724381125248365886084978414096900598446056217334392939759016187128010084586758192107625951000043331353844124964069185479428010389211173716810263704391743254821436408351061561992129457163870012743939921244751828010908345444837997841089354182389403567100458333534716803670517073025608196489775490361202992310777006118985497726572426760299784774047195145136581540656047719810105584450676439091916735302138316607566958521743267791888014721268553475220986396002331501762427956775853387508641006732201191059694926036627744395960064713768737583080915762176431254728827514913478500740769291067371219585852220014115011357562504688807492407689731122558972890864155411513696086641036496634286821239054677798156163428068344936994022249997007454054526529155649683156438782176713742530084205580938739415921522977315684348588539236233395270968137979457209806127655124418636525667280524308019173244515445181308069560380496128787433103697111057956479923726255476649803247562021304839966532731789201457946819682175978423484515691496475682874195215889580154567945527615006539708228257714252408675146330595927828155734246501482355714663044809626596373189134213690726931068513458382486462624527075526246585449234377167795725755822255312329652021034778202048563299332790697227561437870841959627432996266788252732420854387559609689837669925211125209740228584312882290205377904568683158605032479727400226669318063905768582481820836072291034698741460227268613962012744582095845911997289518486325510990063769676598151781141847306868189812407411713614151112913671466715338530766091108693082492982501002819283121924972757572756837579558821760132380135803185137499263168017617735938521030159223279315846221265011545264267192912430720708465955975880103348205511755222156631511811040916785329085222626409179916699837728562236603728198481017908879940389948253308193455779198145566407013088821158459769682923380001713924493842241627461145056032094992026415522241962974633483535969251008501042601195377225081367204098108892170703076069569231812645071234443906543664510326236433114525265195854036522073910136877278042102290146157804040312079781487470911267710128634219286563981074700092200697881235810109491280765676932493826896549845013920180658361294472134880090221563475232359233854432603900883879803584086341372545873425461738612534510770177656599959469471410396329936658373487226909133866193503334239673317154374211985345645718224759594951638115018150160164791357899415528207702174940497906640806855620070489676402112798120794892328135133026703100652414418179279938055784171925461145474465192749695457471684541390893906816618157751472433818690380351864926739366337261568028559995164158638524102513358070900519874079478161264735090677347704631408849410337650076322251581406615294061820821129850015646729892505672001762011475241169267455285544859864677436372188986830259648520473333588913036594230441911041952816835750007897255071363257907694944069298597479281439344531504163268830888420133003140669810861107593415921409290167765798723767395016156281041791844087774485919819220631428432374261465002105050278827983264239692157676114304613462232529035926680731911266400080172778992064543156986694441177838113698442381009166910253352295626591309821273618633731927877653867362292180325065164165893241853282448130991256929858581334513247784526154036970940423002810180988640907053197690449331572415237785165666398189985843053912684626044503642105037554890926146362625296759030883313693288957383954158508666538104834620639799667946496085627428899612530906708090925215688037113945056290709300209374405310260667370517709277709664962114627919430885362384103186842038485510449926417692252169365302964684100253020261938039730157615520346105647574525991515613053732411353304136691980278222672624702885214591063228264062075927715903526312458457719017305720952717027931066187909684160931881732030541167238668580829926251472858509261299102769795888798148893001007596180240059009947714489958986543277569646000494816496765112319340883276244051704006604020723575525774820355403940013050296149499583997664639896191364148851003243389448981409128150484858637122356957157690074021937867984149277649581609710727666355350855269968097337743933154344577391254135940404306634223991794244601421126485123775583473832821749767283865507838055560645328997936697694325302081800244813045709193869051395548187305767779836286351188164297273421733954815144928573132093269369659819188845088864454748070830303543216473479727753903615423015815774563030269022676703109625916972486428433083979003612830465371280417141915385116202253553282864152826520550274930301704602927180731323210145757210920032521898663913702372121106407755065938647124192215789930017546231118845230204167571925085518990858282643210958604645366981854178208233038052623786130805940266783019997795476712482134130543419411241795830600542706371463756873195126510516296644497961217283666309582594597046682583149949476027719449525529109810849631976498581444371196622330694263285013901203777974770799969691668414379995051717986866535072292597583543281189087785477597516205510978995750693467467005604514495428461454207071926488300147854159190100209582451157169785742881624858907203544182649009376330618755662411209004703138911057354541386142797541665562621478126328232392559830920815663252009095879561211636770780921509818786162668236234088847123309090622244790482476794332420074256064730277313570742565865494419374730193697623975354439951405493428608063451636124830462313335951475694245090663905887318525492310128501626635229895318283836000940116149603858731030692231945610090885377889687870704378452804203547203023153921565953092854980454634309257536977570264525776043207282853767682366947085988857220791509895106852109217347136044035792689286281083190259016474714313269354456652875765583623992458588403360443847404339680447886240264105098912975809799216878816373086404000912742251466818233043454795454134821513428463076418849155240535397266746142762394160731547876190966417753779367088849966049926580072353764348933476067368246523544385596221755088916899775450568289338837977800016686280533454298385732401515225036967376870755501606624329212635222764683220364952605707169552149352863191439425263588954744989754523453681179171001376001890175819727346595206623491784189873110079422004041226753760600694410383392281380513090593029350110216717667268126938308461847776442450298108457330127467549969582807252236460089034120509027381659120812408612529315118829571820387838775603093179795051748143773154048630944118817393477825043263495472714947185650427501248171369098440735303421935566901158299930704175974308861662176959127347534960691745612341379926978236678365075518340723774414499024447404561102104776233239775985666403339501591609504974970604239208543087131470746452340323537511738751990709815244727351903161956097339635882885187994445474926826644805832834745751820635130117804628344698055064850824686897375565756099930511516929823571153135012951598605294564173925964917012948570912068491880275871465378849009768089463444505888643715204103254896396386547425118802634296823617948046809510514557890096876824372561988861676575656785747233911864320335112448234191807157767817776880252318380252345500524771829012388643540884692401482863194477951403706590163353758211813081866667295248680668306887006925052074711414241548633671809877434357990948673865509070874903791708362432616896889101071999860778733154836827384840924073188496214642765750245784423526596477577816084874953976221199760504220925258218611521394245269971242708499488044252585549138780164532806059252445899190598119917735243112627525742264249052826988501138766948365816460066558429637176216304310210303474098778180691095327132697252928381977641515742732949986711321420068967804161125542249413893108564499933018325466664670947848281516136274557431966478622953940107069741234736784214947147353325553619482792460679400169081154220317087027665299415893579747097933968513440010004095893761810141785585168938709970373733096079780937885662640536521055736278136195908774035905160749542727364563443755405193482157421043586337938870735224311329737444284074193033697131781207483015203672345548863361320759240803998890793362536188204846858083849163879671378011401825382220119757200427971604207730326240271712395654025256327411533569708012175327833813470610390406105850118508878720142980623451654123010178159929523557573704917980999052172268000898803681457287373280216086590923960560072234198477014011696270908582037240994765978290900302251054830833850567432705883003441774183403674710622452040773617870339367224506259620675722079875925923544399022685379368104795006711382779757955149284012810637130105069724149112167950423815910880595881354145659868919947942888614301597644856949063144017172865645054969580797962273768776136711692468451691954575408452087272582005282509374545548502475323398786497027972479303283682091970610453208693080626961827653568741371208357259840189828798133255052042567681346157594947319111584951261338734458899529835525494789492159254589155376640427685170525546853201363432483657250966521156804227928500589224327378013398406604380238660166717376571535624989924569509130460367675330474008506892226702939071703386268953107025059422730093655427188623844893043059801255324439596601692275864320811439832144069601490231818553144734198748056460397899005506559982857903897732217511407451522263548963670952550979310974863110261458680395782804593667031968329085090833640955210346080490116925382664271620719974118687080046658881724769877509028035076462113754870982555659015117934662572512097555833125868181387406051565070305060892266305557984687979341492315328184236318176360520175946798187031579387856343136195127408564837162757060878617627340852267990364336687490916513232347326362906175722639989820572606948457964210552800281429863618103699746729089695728109431431717916893865526312185426143143683296295839696235976385586466134106475677818556403013483807607988917045412987685842075406390066216465680458424043812648716753329298711657353249828877346994096406567691040724503934079591258190275519426854383484524578920277916063473414546302047706049106028896437174189824241932048833609261925487594596525115067379138780774894410195296212152920602600269383713133726946513329249684632724620620960790716995681572784783332341145793960760604165021484833743155507142055964729661118097428440530560871653169795641946896488314557244981214865853877380083345737589447194947812612994401747554600249919247189806050101992741058078176450315064222878560790994042512858590632824620568610023528761796141878585497204932890145967366924462538737600430762352517568397945616622200773642262253381267363086664817544227620429498132275221953923420140082144689584583991470841870713258093343488566933406055658981664626846714560799624941708953516498724842807658125316838920057420819245395835799806563715669747542985471226150810362398831371909167945108920042988410643389191278303413506035785956179295667576462537062756013663601407969659567904069402224756965662725762927936196528414193232650737280319083262292061975799759905441492378330353179257826290874520569708537086057565071580177388954051313875994973404104162966386998237204264297855989594231216640786345230296865751907974728004034785912493821571822761757861190300291896644071578573675631032821529145632636081568193316094402199445265214988363966304597442341303018911264761337612514079168402086413681417234570456180818254793711225293233019313340765092497060839845251692256078418932608197565444839573203710037529245081263422084280947828888424978580918973681846215630199051016633781444551440690509578844943150622627890600446215645481612560571162060906114688260487785465987103291930398582590859821825423853964257085191642954461847617626166624467860861295855777153820569618124784864783895019787971503964640690492389667366825348198479329316481454930708416724681468229030249512292668528018541861547666489803984239937916082269096461698933790463386347841144566978253045901201534791401991767462230200077683121434161674928230074964754291695710655973917778898960576892779357300598300914917169996849807666757470763653199771734229572974648576109542759122671893251353444576511640723861074085836859066846752548173601484132166486445702210043274632559015854902670911664346138706971673384235680368089136768295269283227988816979147768714265669822963389670744521811464874776863176277379667344638864039994681563438050142588472195995956279691946467301389428244978716245422453523109856391967744237753259707768820746505565632992324615371539784412440966121855677896142260825346774530201042704957808438341524556483808835571315070310074764419106154692443580861665134023370016049467208344339549651048297570082624960875982090977029881889213682182626232374752599779810351936172211480700229314408129547725391824254097852135311325567510356805265390263597114644468369052261524255391276391859144030304039352543105385766210827271505467485332729427344913400217539218414036356618881843076399116108415869685295602727332348009800482536799182991932565143014819288076186061116095757066629669642612697361778382101273597595696008845430423412139498554066994197069372518840515186732063630467106546279529846057027966070183984026607645585016411504271709178976776728177254078362000246300162747636083800863963244485946556010251138599477776256570458998341284104836938374493525845638109910658585841973372771576878922081330874609089589604456766202957643057550952654525387357300225120263277198953644750603677755423267922976008920706379526921570956492581154702663278224276127510793603074744860688735093694929920767334910783243777252564483762155750204030257516979729857546064516253332767797537748949371710264421487224387584284819068886892154055930464492849297555481470502872984884191403174418039293545946342007067113275230846740716310309758113528433459674345712142491596147847472288753766580596207787199738069634522175937427291125763258786082937630563971085217018761909445467931507180245613208738336338577627618502329571027629208876136887907989155564451022237330324254388252933234497474815763782638869317592949159350175270061364016245484634385828554476463733403821852707542125506660100000694124951008041759477763073407102776202589717050777343619171578094943310825882192514531398035040651759098382392700686419296982205061592808356570297345442290283672150142689199664689969780015881369546585118255258224909940843477264473247742539474210260334349209564841803481839126900791712461446838970223570537877862450250914499075247941138456032017949200482637534440962593612646436832836602189488763209105114196516085405471577863694891080089638244402231011984457212440916255500681916850390236624305682650422341845898653889026347999421317895126313250747116644191226276629062476719837632768811395660077919321389293937760889670334175678157727227579029889998781998517987113004795330642649737019953488613545239823127688510691944460471881333894493233811731320032173689511866306914465277390654295865460694228850528234148363325513342422078879580255033588778338067808154532858125645126684062617402268625420944221985396608081749504734548082199560229783270971528994392343478063071903308647973984322888387046156604839257522526591943590125045756492863167740201485373996155286085647041390638251781823905937573234502501545236942989689033445062253469977323414938189929853689309237708176173585168596349214805936076197790000567920752962318632658591677679854148305418944917435913513702582472890644868433893936856700011164537305078179365325050242911592054105812936726157583091579176192273837088908230929177886397428495918481239201775111909280163004726156532840809804727223668516853045596013614890221649361880988461702452141631268333281233887445353751519443436343852269009975731768407869981465694540097068741428348221452467495297305278628798012627740642152014347053075706947191433120104255366090654824238541429691806028726345899456429387792114125668172762288724037950782705635625815636563556107552858816291301677912682991073078635565012768754767828731109875112294163707215188646286251120937641243287440169714922927001844255662485170717549078669103775329840736289994933670683724433446095115747485068862518765744137765865628504453684585815798020344735730746398099090874570483287811009821096443363410209947943035938990468594970348094687688410274037509269200756410801491911749631348092865946011583529919849722578440366456620062696301549077572718692166306655067332572782835503619373869225190483702391397381309575228280838583046411002581163300469840200607324299505846672161675056423706962209342198456755202072166653577849941581506440228630111525421469401404286654230244044416810395855832424524517308074433565685532352526251460731778167620929610493356715160470087774153607129125893472099718596759779763971632573131143814911487410114414303727853814925623049588678170908077627299357817621979642173570573477553317292818546690316306285376788948302263180317342020909881756913477476342268790913352311987998684505596677322037586766510300635842909391183993162150306940417310413290308985199350426559875655576521356975212144531150791673497564683649467540233312923449603184599892083570597240722797994186666347383479284658130148978623272361549800791408927618437603469683212990250868291015115033690796563517082969238064701932536089868018483530374391638039237565267892307640667344405363607818116560638740281194614608393054083822648099543455322603983632638772885653942190190180964556878773500746970864845776081255005611945851242854411938326300526191338702104281333514797184407245092033068351612116617621565881007106335150000554123193292673086675336601930370536970661275371068950336411266499978993078569415143454167272150682336861405097722701471466719494339458675903454158156017473952123056173174302834450432185470305523105508762338246859543248470316078911938448540934615606232235757671792832759681643708412551443755732633949344873655671470998705947600790984177815975426550795462812558719287611682395557555860000167294745374055395345451503998232718597299988212780540079221661671519872375039192442431741128181267107204926637172667267826676491187357631595015758090094935069863968407115272579215777652778549310612739520373087602418530076699898885559613683649433444399482354627068974476310463455391114131299083538516414168665913121191374110994496624993989785077372781114895311823834528908925464659489480224823540390954679359917245152149453245379536988750714472953767148443180764290390034163068796595617883465176026462866230064856702208438022819133423069140829024234960061155262510249697103405523528791893797291424975367403744310770283611176398625124754072518446298289051571737709577951029039055115334080651020898779477639951349763339253585657962241728902909459443302981548884253704541672359057302286690195163563832702068124405142730538456675357049807596237249084537392271160800668140247075859479413596717910260449093953048257124633907596810015761070620663697848425074868246163538395805150447114786236126454401006282314631570435215579395721640487012325281049396043940192713381377064484785398991365569380518251032480094936425429881095286618487933929190473083587475205456807547941462034868590416678445763184140191250843319478776103631455670571720032699318893497353148178643042789136080359568374215642104433083907705134058632842795248397482578515512303305265174989633448932951001852522457944567288599230419545800400403690476860086917802036202453810357912766542143733764590565038187997795287211823127817760591576127950847298977020213650589336035501304095942822317683538105420705842530266469152630068252140838103296826006842657129598023363239633444743186594202746389802520884565029207765369375710362611969165632505895991317448641101962912373210110559837297922778004460251624223469069410274193732991030456607274949601847317350302141947075447043342315486260413860858468951363354534311336250020325849860443274564954577225463711392472900299183504770180252574765257074331214990327894616432182603710227890788007225578140609154253075600288935174602162120333382272075353332163801394455931843928346954755031058186831008817979060824528910168475852079206658276874027508990681777948947097728954364986840824956149882084259478760678564603132292659530493519849196239305045398379346453478664621029534277165921600321971350131201281345034831363801637666546959188618232509188139301762220276707012443056025478109830682633949145652331862583649759767386142619371266438707550084054843418181989984616577384323337741430448710816594458576681739619251429379634618095802610388819031181750519893756326417032151151490677520952288914464567992009173843909151503797036898713497726230678349050581394587751321215337747970375299825969764075482818331839892827496609903040859466937148694127456151621080217134795164922413150351852030713774717513806962336224354394685498929845612734166505918032295562231921924427498777874173316855345930974434527322032091567382039104726888283155523015397770152700188067332807205775669542360431179738797397506711362607160814882041831572625683111007936258218114426692036558608895370218850917600530582873069491686494581254425044962441294128740534500614203373307382623535001833001659709314385244944366841547396842372241553690618404554447449978115611007514101646454791734384671956681899237066472623489315158069726729413135616507445040757314398389878475767921864629204803875634456222761050475909776891023601234936296332539252586843164193030442737784409486367448915386036242288686728645652130370384026283671500958686983236084060325599561034079968284478795257198653932471528828359381647084029703073848379521213276828968223550277650422457091981169889156295589683369038834500687185193842599772399690853108959837905147791047668935642346438855714918503368508478010448545026251401402167967998267692305556615298638704505385724197421544801005820436380687987217679177460311394140007303336786196560150099460600788096874406225874401734146356885532151664548893881580535261903911970404060059128010180137162926130857964100650265955251414468656852539532666787386249715474761231009366854244126128258733808065125109575289645986365041016474143323727099235987562806336995233482748490562571401518375901173459320027417787958088059763011576630647519060971659710931022632577473996078167454996197537233550141906118229190680436793894855961149395054604703065946915771545145281862402737460901839602693580673888004361475078013652982052882196111974221505697876859693993925324366886853874448356978587462313186637617460557622356181316090708807386442438089597518401251327563892720561066911635936360485829970427177845989140597913520116750110477893413682605815598567366298358059034883081650668779004551323417887840755420277648050173470852183848290612259176837880548608616054941829714917971437786812528868125026704186422852572325107445611292780301099206796091230274906592178268495434269102453075668289619252876542870183020273441462611930678972297199244009054717450150160621016394060409988358606283194002201776804851358895034505261482153721299149876885732458363697846027462164109563381346177438430156672855446114867950407103748036408090529864683029046797050527078298138454763830582796689569601098357566884427483097662648442960968052291337690913842976668731977615192055094954481840005237838500943667406169038193713223150499991729532049867023127983010156908270790956743765959006479289435563887186461312745371235017051497141389460285335089537982906332760954036434662215811510472691080754118525433618983505932456014864526104845543640176007966770642596512723079328188435430277120505607770598616024101959745698459272840029527657375685344572631678632658456768796751579856790203167613447232173978081618172554494001918616560160469126102378718792739496634686718804250780357909135880425896613092685384862322789827305856216487816060509399153609166630792243509415531967786567172339261729805137782448730062524908033255511874931824750990251135801199196317285309121918363888452750438013461980206952417762044787661810779296835279236941066206634892044177517695515445345184147707167705506774656915038779065803762225897338563303786756185558109545976984466000055353422990300198086889892337771904307356037709115385958109296833144646395749698375058075363894976570453885412207385754127496032494990797211332852922920742933037845310889583075986115483905118746138781180072320055558798672650136627927978057402994797610034909597762134813965573711844660125980767211386252400326621346470655180220965580179317374741131988225596959472978277417756100513686734438842498785455899651679758705518517551708881881539305131422880297939320112656291156690190413397729174376808280805835975446392773475231673969429692484288043814117069348510415042120372130156007331700077565196405996982078857958147637198133335037966417645075900397385978541581697965750694908389988624484938361774752934933793098101206544540615649627565176410265399321361524078144416138640408450730244253751422187942003843327120391814112601096894030099751033458104293175073840928249129973703951644450129467395408251205909602956823038460478204277401347950267476189625466200170111803111346398709317798440974066756705263663955769079568792469262117860200385997376965001858932500000969153946290788842598131506354129736767135844154873428942457484059024583299818884020025418913477577154434401972466359214157939587822221938201030936503487722460917688067931715357752591495461259707382702419407010544095730322762633166649435160168848602265571550526358108951969479774800569935392564240861409121921673111902019931217029579401542549012134280414847233388563426035667752272066513517368624431999493624071864800823228217867524869769032050987212124908272466613696203460473228774285233436047295046658260936893635379030665464287645150218149836936193814102832931150319961436232999339704157751082483691130898368747745863584274570348274157406999662366883862895349200961920382916830189405352060799806714953012896574854217177032016241664474726467944077045552189724378788132240673429302854274691577201745617914767948017601037756937143804091395389808053944297084937610630153509559680104239484176792750594367260225856866348562789227105211328121161470445062072348005278677803451303928113317879003197425571036216880185130873762037983703656007624050942076829870013619442878551464300688595439726848956019996514924471953603907242494776484790380935581025637483175407244757093727218979135331562932637195726175256848591682819659109517714817831062868929389380812549074229781011318729425826698018030178916478119922529684981826484342708711183148496373439825448463605748768685371949744422933828677340960403578401164457946831305620765669648510451274490422834790096615059713214606673417839126689083308321364832344394222552646259338808865587681234102892557210162937535951344554635220209946751582213394276098763544315085812320350157916145641647801416934024438861085469589180051142535283904049749732501815663188209680600878834800730855479758511069575810166093988194734500095646242762842436197486800353054135727912492254047883000721671691494423748428096982612494749934144178380060782628949631040355488125134440613059510948947958859940229767324923684016936827758438180454885067463419209659396330001137119788266504856161340810781806114577236991181335484504922837679337154905769064023314319963854444975463215110046084773647454585085050018653581767208128637886783624811996620306330542385194765226704303592064483945035779786091215922442107804234383485302373621986589707290432520973941418882014315996424621537550661705810356338389134765791642811535314109985659652241916529381849643475221866795053570459617232701789380108148590601785923265116048987117300939173785621309544037320076954254282756598820038059336224094677091118359125433525214805268619010451474542272633451826880494041005819704453868180906396005221496706587172354169298768166375585593284473662022838482817319857981698922164766673288489826062628470649434762946336062201749959068531544975604033378681880707946716387867192471058212687032400405434403417745196233300123176703292442458314215875368302868264206487564705114917616635541519045146027147643295031919706833536318614207572238434890882146754423099720818907271828936724739005254251700102574695889041869607453546644893286285469783514720247240255517928417920645705337565706672159672112406547300052770585113238138385997290645651193000476157932028076125680941995126904973614319795553943801164119841173143633669758054937739398044594753878732925685404727887895224929447554322013569355437588295701321853964562695512450159009356502789227543868633594691015114887100047918634340460241419793647288774234441487236877114874285282919328473897445324969771843430776131801438005008694029394622543556477745566583694339170799967959162071522644035900732125834784695807593199635041458319510565948405459723353421066378284314066349645965947135749585662759632890665744315416292420832468059119868282676822177500908171256185762303237231435697295912553927893708189615150756915605198933989836302556560569419986326508591484107016958598066323708809207484614130632870687021328500530376674804631190418173989260970727211240367151983799197821710766308152675504607434157228729065613686834557336337492233946079835800393220037648589668476532596697514952245603621314960296002082253735159314357161328399872341598380282572374627971803144521895396251408108398680331296132218340203560426430450726287396008405740477104579772055314863391056683038214469569128726255982822789894582650723749114534655672124647392597944095359281535686146508132938413786419845022125060292919295931720016711629179044200526187540214602725692523057797044174874951779533288795273241017818802743600701979041855046908519474288568809916678592156325451453905580383280422114018814427715882171678137174012451324327438264564798486357848213262824962741384300563617631185849689046684859495968769977962966665130839016804149067328209715607519181443794517037721459505066814054605696462900164891662191963978079296311416231314360379733305937730126922831497143482510459459190162703850948375254615929060264546057499379047390903284264873692445105742291527855095421826999752901044857973047723726967454572994623984743317562880882924903712387690081737046769209617763547415671779668180407557630530674324460162416971531414975876422600472264406334945331825034898287424160028458973507894991219403030984842318727250168439257402359185809907344991602401973716224523203643934759548799022631643308301556708769599192493855824391034555912627006425393251054427922010955258356378802072022034099920880069471536150504456470796841629375018591706936057038144185845006050491734194846956457123556124331990130691080851334516731877633327077094771093819314050785283600642691490494318427293239057255632392346575186660555179782274325639662512313213365478957329846243647371937333820691993295498036945509319089817369588397901190800642499347948530341380198918004471620773072736402962064155785815061984845057822828314666865310347747048829759387597983014276126226019406386412170526332396633389501738174128290589501856111406405817309464085592283219942223165888802008306567253178966696404101650382802139864676725016616369408139361755253654340996659392297095144332446815238702634134009871019189412697351389616186706603580937416135084254655458372843464209556552354869373274823233891968237548033218839265003377773215993257220477589382896381861983750548762923715162266162789544467102496555081223265254186366415722669377340162506698940981720875797107696203425371525873575205431155268518669154863980427569688437881270608539246165066198648058644942863654985007188485963838883584365618135740093230635544609576523112959001467227580162697197184299912766355399084915755727255842432832623612320218626772741796217333538813117526072073250824498712787516048263746510570308284911769089623067491736918870805994512264111281569750277931151623150057708068359763485044023709689526331582561232412804147218583312915114403092680560264165496457111187433602822132567852994236712847308315060691405698992253778881789955266016167130783560638271665338542997482566096687275260686421667596863197209326753728792884857265998933240730705537637681364828560174483033836501802942367933661618706473221338682043361028801940194880807492129935459639403889699000795102801117008929929861176880756008615015124999675825096026303864702123518115630315862691051488195457850614745292866968169514423643076314164147862753701678614362870054404867890637472072296701633069437159070512595753334597567668491055387660336310937382204774979608232849652604840661213852841215986636843426847175384819989123402171079076993160385266636862579048775060539663224486625917010268864490871347082696368215065850941081670708960942430242170630073282654799456732525490465884625693500627696345325459216903062604027793992468561911659025174604843584811518573497520142865108031099269197520490236640709582833439734932497303595749283381754044744885269571667882260836143160003535148384579748305232261196491654126325183637629195366396658907688679092384467154890186334622342135870325931847626076384959900468955662345110062755591178094062696588133685254556277157573787622405881025503566159989345858550373465605110917602116325168814901216805346644031790441170590861541954945356241182777248643601294692367950228690623379000176126183885663657669812648563803298126224207261079673835394066843782580393373751038623770011573174383461975477665967027941368642595537423495452671154032494816642735792464210731022086359771402897770493798164926896016784425244077279365260357148973796231627375178903661758875739041668110756385122224505455826406485309800519176817124549347884596320965651716978834858289994480988464430879368733136298537904636249808415446938722246893703630788570349825535117960990324785325293879651309098878316484844895708783189784876783386233343830531273171002212349272597180259426525201887452025569017146350157601435423394259651787768786653206182904020893672001413096143345382670697801919646663967919073121693432167967171698977726284283538575204965085679695394750882599450962691040986622185272412804337850242680204334380806146073327491401805356112244236742947239426396325859005013255170574074711277517405474199456718040388701582346811655373245385036631230116808552103995525362026492245412430857579672856454058329643367199273568974044243124241934371628644276903011840411377342873764399771834206349729582288226579897477758622746030179637180358448915091062759674299689852466085400045271758238771658638712443634320517941775483686368339001666623300679146508831650294375221701584940583964176959591171331808550611208426442314546506199415935780413839367399975196594043277388461644905677861109394476791295001649952185767398793831891611539924351090648518453986359009765706879329576971886505506953591680865458226165273103475023045556786086431688333787239294388755332349003159822010417451301098590430011447109527744777893630917931273565468129877628952254772012327153634684182038188692439445713628986698848011389017561074890026333020485452393263946302983626330853598931923898490972949109793552326908127833281594672928632699743042697069162854755858715374106944183541688436018296101029019261994051057600745562902324314190177598965091098629840080061189780377653280186393635483511250204472254362843730370987072905827763027318696161849124144846807522029751165037157021711547831959368099157704820626831138397997245688475277778171331342770836953403535415270955454244397466130964030137886095621494204667152607102036400597947282251891817513648662449489708695862832732797226056487430951958794009446487220781297827832896084674769478242515054426356044623742088843040919784207939004422041215632985582163106887479189041536917814400361876786705713221834425984257249472030311356715685469915783115302859987097091220013695861422004811101393384993241676520148053615638266775858681294891185379861298417146371965688742798070449349956177982388817179258469814108485893169959043570775436066288211738572257378041206999908455416889880358627289736253707269916147278435617739082734162141323014758960470221645598393417426610915339714728115081739017890283019904520601320312088080467966523716611717831791342576890455201072828311254835054853794366871776939773974117069373985090456283553509202082694470079113572999155179641827260898915253568052466807438739627692779719791303269964828110018773690091922011622071587380750483476222541595938177456484313048540181869170442197386723519897161241130051327323789947369495000117157443319431111288948629003472759053069023311683429324473792228148546947051701683609882550487875270388529620718140142652454793172036394518360156367180441857311805637316542275202447057698103349489768229158025314662021189537625901145983408130847689640523098391241621049820327908803669865931517705883189837692491867028507643400508868813827278512068755197694950310125432384512747369453531434789913827839509543310135624458406343735854394040729514959166113431983174336730002338691294149295655651624947268005032974432686343534938522834353162594864807820775120259061375309125948332099391360148879883784475389755898130255713574404811558340953373581480263500864786138210337611408823607918782979414249071793809074295295456210151860297561171168187867287188010271131062771977749953515048839621993543577563414150195987625324343488027296426172374958814361204854160147846712611999436079580523945524840134130352478864124994071283873753229764817769400765690281390545622394470639011550793700791627798073800967042664416185868560717198361862571877463430912902161617042613478382194345181935263184831579850177869088008469046757878439686156301653053005518187030883092054555896064226596206386064780116072284176611471152332082257443514935357993070773892730067283675015632496526391330553331443040079919416280081977355674687297662136870451981925780370550333305186727379140672082326885333311802406032196250239390718596305340323973833733527569435646710061329646237253296226123074461120545667492096057814212781113562702296064042549235539113646845968961556574210415792350364122742923632994222733482819884332186523557302351796217669901945264393001500136202965500898972148268526180919504730483207459014470015786364606188300749608618892031163904790720750478690252011246177570854148446902332604141221500905614453978945317449995211310590921015902735165169505750737297323363873440389754556125947838838215657244476152585634735177637676068002056748971472843984025257590045300426490992495876586254338412234734387560981530857832271431395619232101874684138372583257306267306268460058891052433663938512908840838907636518016757798802330454598156822178540158447764123997895681916427259923155059654439170287388206583992923216085866073087005368230259420625837846658896620162660763783060945807940031570754210451311833194299353204600665207750327176951242580286502517512303937411210733915419830201713307004814375856398831362951004913445793747414854547289073478055884508860977911504112396569596303041028644853834106696881507760955346760875523846535617706136870724423304538910518537075221533393013942821870791948953280648008032661922480147099984116990085772000489719994893423244704017571909207465035743544134739668546016331011906551058765695186388138074233420730799612911495271986822346103147388741837225840589366540286102469111791528472218481657483714181877234632842246574675108323485899735591360856398920971464614384224307994828376035531817671400667165399566462604328636694260190691252323067791162221309810072080732277771068686780842195004019431099793203214383809947680326593375167826277402611347788478430672946457800964717282894975313377788608715471975350813883330278039683827114078474392720485585380301988345513934937640002118527295303818577473288436451092378267424477844116120234138607988179400889309859463087471983280964676227885314549941990788851178886464266972893470170396417908621086183267975189418639827794742142643024364727204592737412708782604409073982840843916034201764909563463742930999404084178375743559524910897287847253449791920101355943171108132293624398589609222991205824764115157080588754139731961199382977520797735797362327892847855575389053537247275872018542825255303621945114910747310262649679946924652820066121321768958881866857574869388487847460268051445076734681601596368568753150107430808998649574041236649998409236972716067639644116418902405822565112059066523994183167699049952658684228480044235810600949916319987955279968485751802784765462295434096279891619174827047292346361229284282997071076654395897202748172566153616546067399597788858356433757609769617254965668743905904041887419747517361412607005594972521349807588433227584516061920419387071587098774769521196124787444213323068473161877603305953256320390704115198234835739288455608241912111584346581353405734413016211532947115001168563994935285928057562014555929791968869330743540770530425365935556237709372423604706799694251873531520425013478455121848877656557575924504480411037337295409919998284794832956656458077949070661835960014662215044638911328712965994102906769969644061194470541770077017766408427099399986604862348819262631948692082873504967065332713827597019191419878435744404342252107571510605656648349371058021228175121449616157955482901526416193654520611625972560934123611211208904735005040900331729113208188983088057578787779671299817727185061969613889016441247753021043023880864179443477776419742732508962950468525289051429129258174909259918034696079320558504385027467633928483240743011758197072827971163038030343931955315773239172458590117678768444467047611555658054238928603622196414994272041898995491187175360789884633704288204622811413652325422376345260547301966143148084862756981477443829504114647177411241041650606743044644789317831777172835376979098778560857372046344304048518957083118650899315367046828855723055788652826520552116542714624828555749194857156959638568195287930773965702617274721226591903270135864754761424572134173649241178752302511237444444835422680936425518844299462613117516767814394550681207275972991381149420869932123593562326049925364040213720457847238449982370529303660145412044449641345393373118187041589633770321324053047211149909898040346732028346731774376726206446422951227330707323617945447418011789238640984425874774051858521872918297078221115597949418303351691532550904697565404414710446424911689489437491027281938477772681260535521464054240725588402572313384586339596611494260696713965974081092722814965866858841355736154582361335604202565032491112594568446932021765309384963108228839745232251165989554397889547112274030125535152602964237651657315959524567641786326736916681653963548693252937365847033950966527914605467832582940117024368517294123327224074550289240679984129093540470527096496504896941071617709317042787879878397229945162534265824192127805024479675586429208983101327810775026235764686508526459086989263650065385657016431765156216472483441265277490921811738767472957656973129738727871340236397199196028467338447905617921634771108636254477753968242374096327338856992289817124271634169261024713415224382176859236260443009435596247552884478662450002559515214757601016521784959150957006454780734533678600420478607289081070238102203368199088939121151418185189159234856796456461925103076432705906162552443805525031882537440414946497274883588950435516711528266319039307903235836319977283633563724033349220766569896567007477872160999683052425910194944317870513202428844389754780691948747596391465482813202168706476322687606085275320017516401316421383321798480819430853819258078419411060335898049222471234916611994443175011758295197918040373837010833242281013789613231690815327672974590510780463780211263361342367487356081313105282591179751057408708192914479564200316714218865489963704355982032115694966466033173153413137941768061159099839373976414569330516487289403955370728621130146352569782546273551429989786672791017638306335289896948083256736464222341125924100023212197574610969276572641620087274146675107837635487940096576930473974942797186342933236414572711742795131047552465745296577591868905087979666601071643639003641767222561671888169889619682386373791950795266697668294399903881173114355473651361736018081667196807660072531952038555278994651402038205015619857237067564707291195736234768258780078611343498581835613644560214348676332502162658819186262412774606344575533307355777438408057651138211157393378336038378095186069531244580407424042500571362541823607390326323109999179198559424708720089116566415822921847010938339312444301783211933604929476709915949477899051920018739557475689450741101509941144500776889830675115219113161903487955198317922326085451159694747631742202966705268226458953367186115107602846902966962415115732851419206902268070066861182757541479520159175124874321363776118995639545461796930499477791910611864556903317200304971858954979299092157478998741304663547502591102352418845360889587378992502318654920891514858336683607509308927759353111900594711831819848876402190236277342706021333105670698247356106208911018309550228260438943148710174835896315902853046482618715440102602212760573461034357982128946232764615560517824665540596095219957936915483195276436251117960369994261280002608458678146665845672113676070115867981083537640649897928236326946066453228562832631755230928591067399265280918829204072807408024289117086089966737350423783690076205547108137199446306001213362476264559504025870082501544625730968435944593877331648259521854479156264502342063805393765794158588671181492053882504777673455680797607082695924505392636120394780588206319571282119021767393290307127389537346398608056581993400458746754292449095369952701289883631313833356870352959345124185006168705799077773491674774295780722829926985924309916184208309085342548014565439194081825752469801293184250616109299306841512088438419261747302142345066319833246177395821630216340368250129950387628268175430398254159090789876985141028329076742891528272736517775673435248440037462034553591907221570188266516455226032934270585997505105422642934823461420572823358629342155129261644273725734367543891378573697550867587009416784037119295798491835097902557732800785611505670889052442700910610546712238024419772264515244873349010972120669591452434801929368196952081560741759220143065894624407340368434121083887545411201278235828039351606097707745306175778192512680391858217559115803407277282711544995884913659697124637716529869106503015714609615780138248851212738999269702030817345199092650942508930026576467458739955373693019274551121593678084390874373311409920161937431436745940787248857076527701740397384334657587895682695333917704209563603471765904995065354351428370610458175424619266224477506980722510618778081658275915829054059750325553146968849312761436850981470704507783334361322282099544547074549998347133919047678945916598880467919368463978697793751729039212426503729184367007166016151548576487639534225327153877863479364286675453992226660694235310372493166503593750247070142481947957673204508776343456689565923235367799658853840284937100921489275636245553930028102365473533656817258005087971889995116770629466968689292306638994522051434838919180537873538598175061589365503779766621704899224023086880380461421819217548377185432682686892373997125198586819017756835108918043987694540028819323992017373939830684938470199009446116037177671442337576598804632432482973020585484357761419792860113228429470247525128001358519732510428807381757824423078852520120428808901524807993575575072366321606383752485740077759344026905477214432373074757013191152833841115528241808125173471660217784867326160100292862876726229663649202022622108839044735898972016168057562858995013901949178337630712065476528171784336600402412283673752800527972192503558114970693451398226369050962211873718835124550201092267269420780649686704961943925003234137575354294908042794374988952847767794657698102889106994455713375012528165067551199258639650235779943242327109067692494378858691964844434183912690258862817526594438478508551012935825708558081046917770156601410097757000587061475583823459079041648871014370158224264946188110428214902282156727063202351227759346785019305919762999194575013409990499109884298069776999292517012240574125200366681790864172128921299112178837292111371892069639780631780906569206063866199412229749930093344512748325837191559048804532506881885800213818595774578684556914826401967072777265771350977459181968382793792166749580463774465150739347522553409453448409230777524747067002141056392607874646887473281678379192247449412550678970036329302427502468317390144333652409279923005649670575928789749409653195250088377144838406428987689840559122924036945716931113797602563908004753233788441219584297541516887253396829668266401233442411012671686661464455910533736239064454359358447269388763241257853292509443729261062936052429046113331785826794091619140537450101123408748916080478589621789000063964376361659282143575038765075411115651944090149960802171191745891571965116285734457108063859093680350514561993702638056590882008019007203067617771732570349768590186342238625727741078106963774702356466869616359183840795964223830799515149927104388148024764783398876515124131745241409344361723890791475367300558853878147163848854173841966089350700134132391098120022544766861529269681221891929611568602690997223838374182758837618742158792427755067047651446627700284118144371626258970417848260263562324849660025814377127877558139383113587011832251882517439585870695601636503971352526862919782277957148983891162762582208804717452410486909979646464704891762661383599745297316002889695182519371822729590860612604061201971157909372887854864500162715370763076232008182997642532426353225703113007874447108916902379847089320625558456545880743717633264946939311513946620459480613075622672404055397657693716068367283419212034784550367162257973991077877398003146847030762047312794848347476047525448597330070632989192970147421261918064529891318771839585738185520477041016760251035487276804419700944176722286137349753616452105591824603491347450291064866544906762162881103794986667674904746083766566521033575638743089956984013965242050779871968793585537339263552411965564728703907616183037488885089372813104138167876607342597864304365676860221148869927618942716445745181310877295306855734949289830642354207729240204881950138322832092816055689754952868561751527354031511934147266947361501397901642183199573392165946072576441607116223647156392423772537775315591346936582720102082536948699217541891256230621073587846869636116362044137898548262180462255406261895682334939091585793113195947312883754262092952044545661154120173455826145496404246632316962978419398330084932720093292712572135832850826204259323097206515513690695050127987837695004775184334805976791030005979629106258708051967290573497116688993242555748175191573384607236993937501640657945435635227271989526659643695369005791190348777416005671139306340248667362428665708916751987704561780546107742470174299237167759957713168987907841272626709050535804283165314615630954236582874476874087354813370580828725999584681561695959368458363874107540402853384736744895269615075546152006394042520292343748851128130651321123152008945575126657967383547512286395824669193882193557277359886380933208629250696248250088333939332335785249503991743119665725563615196279199392298533852517110243673258405885863243674517488808166960183882599651859884925622621641116337162844995227828149106578540292954615943436113046333489964438944735530177596472349384415881741639868297753227770590469276937309268608794164812581169749480893923694597086741247203622124221314187165131786231153180117438192909004302667432720154076700643002251881235835631014625986300168942609072087236246441017009962426996958902316577698760332362008465117204329902692897385829389542690934556451560356842301128590365358810413742608077358834467062141869245888094796721063514195503906673339367747244905231105725865545673158615075555636205289187572562394917663382456194416449534698618127361121933991377455972129942642735423466360727574507688502612635465542539868886189987979152230181017400343796139456727145803657260221376856326803779292695290471317033383072146175882342633235321466439662926496287721921201618790310802181032363389810442830033668016825679967555682034979073903621372326511046374340083898059205575936068701804264808687417586267290377661927596235860127087339840762347835435301721200476115764207311607155067116429097541502082849205953761473137714532605499922303561164583032915926663931125181869398448561246740407433656252226514134451944831247626980173632722030390463678172706007715288556621718271803020663620467178991110048333672074549964831576376721279079705999161011053112013556664455970476326121583239611062362709382679661463957160146368105246064403782543670479567656851434827303773230724451954037040470260183960493980891749716896678114181869477083049190500049728967018713254024746309678725802015916310846563863965302822237102741515914891819169028689283855870928865296514785364488040993861597607872122508009250705123871823487287723415736972198674206441557076476444679538421361010761978292149031689584840491944868311485618568349800701141488182705512422199528473307608949794841835789394973134914996076068132973051658048033261885904257076528497655434446027983389774764033749285246177086895670949986632406777471590647733182365952844400581411754863957243706773347772266784077264432670554454001158148920819154889862447103574354612638659306338280146500107222909259602195523169011573491452407531648254985813922927658097132258918855666003200081878426512646976695786949955791727507412119516232546454698719020151985859202487012752980046557488684895975902552110438879863361745680078669894335181832552291643454929991865122244487665138613574371208371748565721554887186104675006816774735350050684624699248986056257916525127062468250199240234838981780845632543144783332223904291942726065230001227601054082251094821863164968640584699693253632907214895826092587140158469674807107163104733416856265981833292859525166089736790004453195210652264973442814803118057930242159783775644360771638172459166130213406083932306327149037752405112242329017945856522519789921802927490418122501669018968979413182616189002416681555089924172014524058009384930581203781189070053790237379212288829583278461216901543985972795473374251780996237117282935484213439265413796540577295574964917770873033864769113597184608243663996462235608052408839799775185189611062354488772179118945290879691948624054021585552304750323252899309368278473866156513546894549779298577712039387980098206973279712423694965069608911221330644818534534437059997431609338271460615727219515856738439243591340291024945497442856369981545438878403724776193071725769922094517605667982418094452174410867566871515846648488297034779099628996946522979918215321200426258612404954804737076988795065079426838759823321463125072212714607019695800250131336978646555226189546025921510478754807676487620392590298386324170080325510011606506547351268119510749283195673099929100362789742134085479072789008835409873707464811484239880906465874076868998636182842147439250098038465494916009848952094838299240708760455281516695393803373372654626163219819759674727301120997899106391178143339648320646269849853401112327145587681301246712785327570002308728337860097473233717451505042832369071449781461350608515568800167327414210971904188366474887699028855934266405195216441711293331074724771350972395298541399252348699334672148733889565437164959056405461152252378687027258036940030598367796941857973535652800300440529796977675828175817546037616375368198212065775475452221605009763856461624682949426658770383558289747658323918261119021708117747028770588283412264456880959755060520443415329704781971026309448182619140039521135639469673925564855699262808182915625084422632155598491787155330996487737626344694051902224257886600703103268997649340230022244531013456380235130099793701712047156511106524663073718065713373941289439580500026737740893795830305749097560736519188294275117920726170615557806734499659562550921329048324079336995931192862441015761467873481995663973224270281345488868413633760217897818846352303239777702771821533404208599363300225283372441040320696447259717410531219009067079227811773295479673588074125576715330906075966021741969308916652134108535040682461919727523388047169382272569724493560175826309418811647077706152965327526024700015795057291838298638215386474773896661746224037198339874627137296365694021427646043859864558955063442622040031380643359593331162413183825034282012787483366820700405824174168835914638270885417592943101507602225727337993184899929407195560677793888931537670361692087600861477108828286445855734416448086861472018251816126173355351201998249507380276590043300031214087986702080856913573000486501710194589911478573477889685820924448544443685769931661493855795960133347303174357041060501534595087519438383495110219660979114801145549020704109157988256134095919176668624671828753273366700122842165429052266728729765262809609297163259587067182555879735443884851966513339085453889199381482883903752767596598916092061474712247332414588509050140798540462473748966163962196204346576687108245729878796083388219690026116337446071373872060985636708252532182646799386793329522479269875042009850913173372757283219136371596117676354304637779108587779266976533183927917563410606383987460269081724494626181505302628449489635630132808789734451009629229379705164843014256306433134859045496028797601769529908595599568585979072194325513544645112098803634274368770689219432229447953730252551006950409082833076810366883791771352528952240112819088123340097901798258879641412410304431658011865353755828589392865500708238652435377168318957348497343965287532780521681437277379528859426507811510073249783436590488747341551618925714916190782422362126879553770245151743693620560985920490581520166014061501219957694976839635668859350745570745676293409952783514795123180434921540637886452816392334537479734564774561485331480876024404209264341025292284465108755568158642688490552465341798150702130219009887661756858890995682422497036961373161924704113216775104717627220534622143561557659468833722415972148178290989961962116553137332438397697475994027104506956097360412512783844366012310621819265424337824458940132845164283097150530394716898825702674136825609474986306500453223228675748547131119985946499389590215583935401900672044854318137198835725199531152202066817827091803696437117837338572316528346746428679599103745536479597494896022020347812930863268217412942305121737297443944000705797580592188178929726443352361436891528745527581720570932785386389801760632750396935300840796032901822154102261600299289206576763279195241321634515152040822101058424087628075886214609363359102830433390003513542271472539992523755064889434266954607955263347065368643450879088072038789463931720523497485019393131659929502459433596701043791318326082458520380360941481552769586496555003370542132901006753159016017100996800107073665292228071677188274446019006683739704457380500731296224914082644963081552714536983790183738203658009232438228950558794690842406694803228621936096881782316877017282579017103731213188578617644859258563663322671441966134030559898478317614785418503184449446590835432540223825987601885327073743142564718639082324611930124043442838001886231491930222561688083299023495840833848068570719444082752907932182127378497559588109025705336017779693385632325323960125554712639851174256255265487479995902150288641038714468251371135526990598275077869477289205189112954971768829478487489271283591940505611871033997270996899796593434828164779242690943878358203586734033403276071717644849946224333350334169872527836192299341341901550964403676619728826406911946722263496737756089017078580606141627120757958126860364658371088995492074093249627304512505460401789964445144882862612298333084235084532095265800862136432555764836640858363404701195885560540644959400775892821705943258194036180676174563179432508819629749228770861439786530041669176373741403526222593061851133600412587065262971145373935375823326799898419569508648878383342304936316770295715382053692626115691382230390801676907969844196307086481083344039281487189308283644352678124930497190150144427551815820774296216333828457406966933131316280985789765105804484305476554386296711191804946102842065759514700536244300847882413029011738422118974420120486284694357464837997990251865165999889302081878649972286929793747207975846165830927003393374924671939955960743390807244561479730430078444462172790832888676533656380838116484296133316150340585630506645081894745846736988209051640768160959609787079071196320604472953226732234796398481808221728484202928814270712879167143165117746908757481647719755789528782216353769127406609637143204051554482591580478036078852573936923197455526819563606445191719238942506234042133310317006092339149276061042236647542031119106523826755520896373420625892615919173944890699581389787105379334631699479332230173181527095264738473602788223438638025603969193534998362330382498135869647355068007255789540601247909374880753942918208246845898885550962058307906293500995607569080337181752151264484251164388135758098736184922180689830961489719944374255898610430569123858240045404769599879106430707309255080767167094894718207545925088546986800772067438013439062097891770972192551715100039885217079306338755294095866115913482940882511663764120729255836544517473115012313682650798733454850027864978311623107430407813343846255463254492074534498143130117778570607223710888344161163923059264392828326629200297148000279006076351899612838767219220872917276266118942970007192755152661154679549967446891892061258947093891615014329537397759060106438642144642453142014376887410373681731551465979513215370351913741913504818810669059342637196397445195857400407197559709224159818381161264732151059318613445303304209965629170583565343778207681847213241105885136439089214956607680645689783011671101469733261827799942607450819734500905652850938527886871696531096746934453984016665897257500529825245372820635494216998780554409619098646696911130101107066805195971134297760735894133275778407025046660293306541213227243681276510797606295867337252654551479661105398647693908564246822017371443131451869704196416998023408485884885285253527713329062597465106179635709073678662781294638328251490068624469245551616389381891827496562028001108613221605152453004645896305076205963355145000087274896927475842742691085952894090314917774906930727824614793395860767919528214635946075331037776409194765754814421410361839744528035191731254773958218055899788804478389521923833003365369183132157930838877473502195685157377332998271337063832596049539505436096203509183816396262526020669149120901559759696532495612239498631904953422037276514292821173499644288640200964544432621436393302288740621727474858363051576622954804249789307275023055202779656694465822908368814010880817990660900835762861525577282804327358092987947016815839873546266241061181565257675477976332843373425048029060078521815625141283400456064499509242667572210889370192814742495641228687587833075847034736751843205120858658652579147143558613307087925363358239653618503895468979905187943662033899684363920048078170885707369632500462681984617663285988106643208034807460822948643899664861496544959411163237753851274834035271610511936924255778240115717418562030143688653560276633770860314473074287813322099182718290578159311353909424321079731918156355240468536488191387213920076742127068159384838698427717415103622343369592353732690055032011236183216419458774689187415712167821189442875387237185734334313620216974542658290733805116628286052191385323519672282696398947834924089424161057270261724289275965810674636034627850129597252595305157014308495615928208319854446259692981639871505597524164693111122456765082607660804734017378008963594702368992972080870283525025350694093944972320818355409802962107903724345697467718761670513115316686308672643112840004295328262334700046179238287730429422137595864501932598891293643910004157343900787094786705818197574526892707263703514448509972291199086457878097900944987980581445604598499878516800017661702189728382804812355053339862185552778048138833951547809879254920704683598524208224907922328006885750816749221139847105004809197188736685926648494527442945749232002975001726689671558571821964012229868797224417616546533706658620690638511658062206496444447696696108277540191341226738602089799901785081434281369101847860172284993225886568385722459980171164960983095859498735905378594713377777359770321998365473654046153048669550042868374519583244519501108020290986991426119579871391155856107850140107296244901537205047204092134355946156552889878867286873560588271634821866516670856337660218603734819996578701199300335856277754332479975553584321463074831014847150037045104261797332957453715311588497554813789780562755732336825485090174191199164211260384807098437790738283376847905886338024032432144018513739870853029390524880821270156359547729863607755866621698382523401192449867312793546361269585835292279943809689763526272538565873870196955446242608206620190162626624096618289062246761245121549775149163581126457272657726693915414643828247662147341841633722428627916347985332012571786478211811992219366496473018187477407588998248283167646068229782566756958181958584454558424293786229221635777547200151939423566006569653609585701796309296373830374219607253057174975704414131839820832046318265861190992908115245918080735201830983885687732924990763936831076297105621067456892385629871625949514432750719487336230464475720370392141067782679745821060380947636082241809858777065015801920774470929264117842166461146478249560677829299183816394905731667455296869284815518593293548746013207893068140340211850107011667020418678682023299830130998113398920141888482392156598765018573649455038282763950145700350324072330859137243857276223038953172669632132940481302994477839064765614813981322156274007325851646985668897259044135325582871234440324373685483174975216774493741429962543468016485669651042654467622196814540642266573598295167114006808903208904476256531314829707698253800252686411402889839313187280991660038722308668510044022785218305566561897908161027342269053141898337666881064149424715780866117602906922421118128528472064417182221128954682634651989270580652072558431516606247386188714802787762187100360884970918944307626957445003643161607934430322417276065458252395295524739657425879896833383137836097969795527790543152302735763612670728059048121455999374550373100210337671886829288305417861687217896670872189265986981266812752469720193811218939191258445164540145638004494880555166852078310754968966296938234166734500237318365972782479608650309524067667015142290964472780317873282177223774198966493800501266163248835340176842279464440834462220095734840775857692591760246447613949024930814960752331023393682810991604142450231723630337923992448483928147334876662068861084167149570406964507818789554084105904625099228665716948801857137098723997494409106281383611521868465930896251109280005831141549061643172414197629576434511368027556657698925578549789115289104913332147242234010912286040596103367226095220416165248431592768182130901516830410434308965525911634529815611668524538231490267710329626099064002782181359707894331478191836136639122585248495244166973470990607791945525228546111378237955498730330511918269057697963397617441695506339898065836099984926970098638233020388401378931334206405348499938785226581081403391502066670288110359088115702724515283019549558250927659651093044114484448107216649992360232721648324246555675496965822139557508395367772595318159770918272296126499502259551628780489816906360383382426916580743973957077344385590519744980990008352767105986194947761951664119215343209817485191318952690115406577060839375137739598859896417652079774990837210343861965221081314647011015848819311050182699885979214702846194065845106869656158505946552664916666131945700177062105444708485799186870192213931543479106195715017145529913264090959350468012456859639428425221688212710634708984728204439185320421752570705061528568965619106861118892846944650322445667559924540435818416351807463317222738201425183296108740397540869553108504799726342344780859038901848553577988059433015506155165413944438151668596350069454166821332819015342807406782894760856455335351890529458749922180143706860361831069070137428676851066611010962089514058157421490340782051201463904391995189960286033007559155420193587351936297332284995821293718980796816925309819021141157894126690029317506179546697826345939202206384143446790015283199878034857473327615290926184982574954033724772267104503615619801326977486036156001204265778163407246927832771055836406211115728478398015594637212680900881481622964774423161866650833594593896437405670662206918103634256453829756315371799373477139638308445415423672911534910773491458561403035170038692969421053464076146897954044701578231671358275937316125703354088397917317687178339175770504264094514226037737039695736297866375658375514815802961144023701752016248106973713300823337094870472766495386580109953413433739585912211124397605758917669268649439677807863093349540013584960014123976302412521882053061804067654463294048849758417694592238162972132623952316795185892521252169089693449335653528829334864866485427307134217327770080405534296701746513181091848779462849267227162382348658556320172500473092562498112524042586118401652217896537507521679351791306344969629657090492779465861616691902602781528860244618853512677300952921245501988452914425396722342232008775554954592820296127089368806617886619781037760962386104489239298662392477890429526005215940730261162389911639879838246195241564255119738777745052331722358799644713463373316673837102144889500684483899964068600779427532773234339824630721377401350153302393516211690319415449991040937882577901742687737923862587036802376749670921881214837338616699585808461201924827140479015458808843113511132525235279085056737515782384020914434276559764254225182562644101525808541480389749094060876130152408562658755268951840747090390555337185477571538119546044836732574641086373244517143156782898052003565052019046272673887135454559254300749440332923138895091994781566475749313259134509502797422455244864296645047130653564935604895624964298855512559733470515168720600870219423466602218360258344512351370032648780368369941937005121079049118333146268721587847168811018468987677111468780808099358872001218094947086818315870974435743110723140377800953985302425428188270142228527186397969161277771862109405629531737807903867216371426248847539988589723519583954884822388168216671094183395887200685890874343942299558899853676270924720072674412176348969218032756958711236486191041481963029989043260697911152170332181342543835512903629321825295157267248472288402106609148489330373429159854233668558485187681849183985179496958634407650007524803385294758382225667676461966242587677220372267571357731420952460163575980963363262963435453922150330021602715299442203523635373490901347017935046350508837280322309875636134381202511383450791948281982193369319198531093923910518180496613213077667741343357951598136601649630576866533812531668562797052369308979606856272697936489054067782371862285272637309179120272855361583940468260112972874664081421456789973484865565904065291338200630727782419384729000579260952911961295441336281773411319934868555667964546428971033418865972917981775046806490535649100479537673571075388479186303682893730608816507319127436956647452178117678698379738159402711805631048320772621822661673317812656629286035970059208620671046276027093970610890269716039055026084600246769664959093862593950349254029953667753337816018944040856670653845949523129399571779854986703774889713403190440788242707221440814837374530453295556966140989378734964398307790965662146655388715225171617394961898332376427391439808696689072972571160619886183232379421778567771088311569940985306738636672988433511284631973744969688903322629853067791187084815707127080631771562535475373633840921298977918530738405951736231155916996328401453864925353506409727645600593213148078341730567797190571234151907530565259009158878758251551792827586396598334154396910920080810263874885318186826453525132181063440070846142526401859568447931220475442597320684433703906448672491418974837057386166478268892957613310664300687709112049535329200995176682378706423582912635051617906940079267249914476476810136665353756517756958222318943254021096890043149485684368917634167781216821311091056006974825503336161635920092574242508473570101231304805230727176770569520772040836902673949722758076698532485098045041882849032686486615130293358420432670804399247597574093311961072222880706650113205229657818664545304892434995441834201205659342071738981723205918133783894207281151704061009996392619699187303885313756620563332394845765433787972555579360288213465266772885316701400817369407894516796260288088140660074761656352078474969898998253559918471715675329194420466251202171780176134235301120305867617565674095315187165345468172134760449986551865679062693530600802513704698486419507559942616631881216623906131230245198243805265641809407550512802291691490827976449900026529993334621891000209956131980048514958353669947895618575478915363586100187414789916972185604117088348481803676059245619755751153818300460942000257679064913524016364716121158263189986620540993008814392667277120767662608768671015320643121784166430507934270364741924251826873514365930723989227307797588599030779800383351737317218842715946400699424805849662169505508174963742524912925905322498400123993561326504158305508492438499806216163966458928554711393127053500195029300761720625152006250957043493557287927576268467660613358050259128923316974231757311343131004248237424630100082540244955291579629817787520737444974514072835017235819655364951828665083043281141498065771769496439034007747020761668239932264180949849260577178869219494233493960717635773883717602107070950546905337454127696531765412188388403099638679144717051733011002804876836126823651305591593869880098952656490536203724063541552981574399509218758689691273971125314975806308456073652657046355970240927478612496358180713603042564003515231887116561890087720761585526598171821704739942293542080110573842950939892465320756286616830246691793788772804420611271570055577525900843258902246300216115390017880821539017318396173065193519424548542558652433580726214700507001694761885170814293908628289900906750537877822559041776047365219827176758428492136546506560863061765318504661596919418453733116660295980622382463064972891913031301417557707298718172723607337765882808475611934778174184057392894548827970519318625292098961222634035886442728926941480619817891055515280359948652697893418233289525339281651275344978224686140053938014091411151654397949113066155851235717108712511221531375157465642232540682327849026005579727068333690835608090326243671370654614429121781213031230462465518000198380124917531691404134033026085700740031066803913586161889977071088472354368484997179938064970993593055860687736305439455364521377459223451685854567342761039059105612998491238546200485596379811556700664781898593967656706429552428300107587990400023733672249407571217110232575891534135500929183761411971842736519453385248447502855801664080752659998024436046825328137269092540944751994133284827866552543289059591029425257197844989521856595014898163471945874340138709935711938556732338937736477452742765307541887974416438382323269372309490848531369269952105672113469829158696952778922621622184981859875684193528202295329374642871252829918575259366693523101028028953306666778623477512542323250132932127931930315955320452557272992121848265267468892382483237402878516325542916736947064081097321601202795558684515785756816522501409439181961391425040727480553265287588930064081592181077103960691923997040563851205385855630761065291509746575509462433861345675834802080879611342323062396299099033281626059192430115714857240102727873706441372524718049417157415769875891087569640395904357037073029122745202831877319485840933702235850407607153068273506067438303806223804330728699350733330752861237639480720229389377005476742140744780548929575352071034557315728235344575470180927971674197833113558048156948953218817311043619014637735991735748669434170333324725430340525796644398114879883232809587894473539187770351348919796438456811903869106397877176204646789274717591550477550577761540335565320385428679779349473839291992380104568991167973570660819660573260569491003585588498260793867949285026863344502877048221765410448575700141640039191732790282420699936502710077527324940130964623990478324955220760390720776069778509476461968072313503698216718639485855192900418921519475364906655751894097589056393613934128051856314338450360588707975963503139968583378457325009566125525874335667860956126293953302008520255467521833276118350636565785113350363227430480284870221071542027437439612597529850240063765603303776771751746944060308484476767514200559358558584030272029835304154449813379718254019431309162496556325449560087883685690829124313279047607006457085582285350196102257598321844562255082617849241962184142840845490353519400200617239172285811125561698815857002595860095006702527307899080166846535704920380152788216563170025000579411524437120260700390438788725230049521831591200795195213973602405061962283349003365991721615190703122621426506595014476604685207535706775588862350990357721092589972461983752029121360316139855251485198289009811720246529438791392026696304893200774108573900981179755032513496512682713257357240011019679149151731566314190818358701073369776504587543199475366192867270718950501272786329438831625892561316395598498149233132160621017105555529304577478174478501225414406712649705604766073472746600622121471413450315376259735653505235383139811219447822755791757364219307393032239019335930047151082325062086467718600619425091208846448849301514163711914135138864044977217266067999697479351941297182986567003275145433872267506787199242100124125170066161742613799771331415205952056223844355765621403137313175047086936318281253177569177239541895557648981135886317033699380455301660791428822404489991041221430165391300814992966718227522543407136325258845202279513306310424697864431467713799847177705073403856065001148515619737016643001912917412765745418021975526685913226096886430901091726703367952032160259517954797948716146782496469998509645267453971169024842051391736274012018762278737964237969056918405829686838890970685094300813761437354177216845775509416196315260515439713062897618218231211392397242741844425204750498023113977469319746886662350489699853692677528589147807727480224883666994653918053575120814259595640349703980012255616634534257496049444473035900313935962502888438405932847691123773952042322792631715836832626932154932380762395214959593115124956945194455378602345601210921989229155119704881532148020468296753051944529046738493573658519574574906771158676274531046636360798684257930897563949682869745212568178298962194724116397562494266547617912131279196521826729707395579993516016712901644819608645697676125713308086263740048049412963305260295565904593994454506051064887491160003812578873448844346872521073014812443365174168546160130762176160470109540575454763784570412610848098921293837882687563818822833850891403901713300802851486643049652519598368152675917132082005327907935126673892002537340206075589326091234418243447251201972687405393081942166228274578076827267237187129346212344175562760068030951113804900106170621077939078752814406879351376976514910570100106206105433249252208460148610118766374927535875307378303734368244866312969664023869881916519056922982542347260528662046039844438862882475054682035930743077177770690269749014326802834851386099985170058883288247772756832152830051568420255603077380069232737280845367678465623645980188963774591569556544267566432188472648345966308981150583433352551372188916160496479834973110322593810029051490089616011359982640859199485336090054067592403642065073987039731721081769860625122319493937152545793999109601513118185105773556583822980857838594114325343404581727926990787665107522259655273014953404247498948008029723281293335418037348175842749683256525424554735293461340982213529408382424099298397187743608916739774126196172777620291536006445462135010446611929298240079491999480978777534926537623386937137708612632260541875541611726659310049211046006603689616347112979269105686426931188727020213972648531670951537149112229881267308062863841894239802036467157888629931961710209554220087023569123511683003047857150074488460538107416934939663997756022522484269514956666479700810351128573946723249414882609172353765247466290364515012542746741038182735456609872563451804909256900737157029997060235972256149239925377729927876178866126816868630780774492751305298045742234099305815601671651744424689895554274575812212736155263178678128698931528721060568966869386208191238153641267237840736940375231199958182931558414278862980477065792264061466079669659326413717183175331913827179262145768635630514560038921871833662042269030067124958422753639364130951554874054304117166092526842627997020025104728616598076295585396621850086357469467918161979813626121708383970333527040349954647881945086266273007606269208000960675405187715473945491873107452572833244493043480533276807325705566944004802818503959054269408860693950659518144369029624581903860017683877477395366054377685388793827662583643333695968172589763724855551775323842078155544749721036457705266628529675782215746456485960987229810257786007364772706338052896097131648497258728992776578717055675156427089884901728697697004267205624225367072066509690915704289562827454684693301523552478793521714892277719691208868820546250501740472445940139950497195858363629577936052043536060309944559346115716608681157497966475008711916975715643984161634834498572728035151571080909964551598110926261091419269677969267184047493158557945806453547865112772459283276138210193103113479651444955011236761587269144039195169850097517566784750400689157816153485709214153240371429028907885773689241770362989478470490455362437617851269637444972511240226643293179809955718545285705426373297342879498629882000805807041978501305673953751419590957715140995858445169628790475761408303079241658759994629846744681242857533534224435698972242125239543483630994497818029640687300623163975701018504137088419101945676332383848463241489710964347116281532983227636192268725752256023211171243145266414535738695634182586980256388368343194709998363377437004368292166698698546789102715473064692636747744126922617867700302993985217841568791085372528865839149721980954789305989561843222271966227625235077405173695209506366115262462698097650423658011288918771285723691411868391685522605987245659708996984289250312728225999894020552103963042490270131817622890153477072462224074433330992521063465009075141534044669613081948801870300013319832455966243571047374853940377307731477567074330747694263829614124652191814234317526207956310970214144806064717080498534009058045914596081614211443949991778373137050067678085969122093141430991406140137391504481842041718430262052346142291099291319734474291178077887331048261915840544555758455616489554291226854012700224966740713042909705502803495508808930812993843068057457580587955280380017755146187743899195357037828943979440901791599194658603513962069011841077666102533640068246516143924708336162709515995964860717563941038196488227054574733217053080192525613318757365635232783362988375451686042918198885885118623217032896948278631739194896336084546553378180271091213488223059799944621849385859424783608010286143891964648774978670286250099444451215714824714854326426405768296764904513044261096592768418211536642822984553558942853423777856860296715804675288995098089929384579105428733503165028428907969929816187122222671220635469509900247730800267598034925584023336759203396508928078213657515312117672200094890178059863250590429484910917469361117334050620032851904758062521964473223350590165077501069594521964786741453875828829611799034220223295238405934835629537092362618744337179352810499795640104357871495004532113949329453939803751724312951072359863056983889595254398541995843536929630916049274434672391874103272879415213140463228899859527088176390483527101176358912175551203635361122097301550282529120053010594967629852578520009058007349067663966229804312406175616334005863082937974510667591362758971083371773091488072455996521863234373418268865760454832735178624972029724653327174062539168950458922503158367478991579435774964478682951456441018241216277463762185383219225816993934570107482682657890419168077512308784718728976503414678809823877298873114577156810718727948367831307716628614911358347990666587669361632895956506978455587570289014794726546822263649740851861261353360447833463215763864281835179757978255931424327460850951820437371224621717959405392443043589562418065746580284908677549157761445178367372457684164607176576134621202190232853292701693733412799870928089660592247494466806232267535592512586549500971538983956644113628862130188750554701248568620908719888139828981092095855566492954654530453712300284290088329279315081239374243780419903421723147409977369462206223353155058855040182926027525751539453147980028291978498234542977941127381794601333291311692167224459737963167652055231007502508006955039919440473354854621734457124378060880330969850304201978926187499964340539123750289030933823256784728982725785767759272313547868081786471772773519032766743896716801603671436442437436749046327706864896319883080073751575752757873185846748149050379445813925832941189503567168324135403641345784764170803066688189161744330825217685122673467476256608665178834782800132776818590257042608484112220876029375484815741937833290765867064407056593129000158273393493775109047511508809101191686823578702685444576244473507139777972908723208502940949366638145731810687923656143914201383969128520648729848317483939657954651453452012720521745660993623198380035342352700690107027692567589549909897546238545838319249294998794453702866408959980913084466223817463140475847895187286639866146782051115293620031640780559984014520125853148901171454924347890927053964565074348485309435665605259765330069352832246150326273331259553624612145851793788356242836901981209605813144075132041172258884762323434584301216678120798030118680250051416596437055641430936251165715823017885734323023696749428326306807326887028399604460682449211032269993455124387038125205379560045304477446923160807436194859466942011147766260479507029841607720740574346656678946790988740660501461543324690400941080361749724573393008698947259784132358606373006731845694180514990998122458483740643064029300459192232134783405083443548898368698033092341665131096387799946452399765052050185757247181131315486653785855520369284952153905505150480658325385036690712097678930406992645858623567367911199768792327503232834366405694314439438020514212564786591943200172533602385542015307731438273595801906082575230957200862384668244112550338493812951586633585959229244894637330718718192486701993765580192708499578582810744500103406615970579643325646067876329079819394576995582038250116134463940401793211981090129705294760413877032294116795944254315186290764284924141693597441890820462507205337850868951807889913377073665092489198215566263788027982597743546302418083088450628724503155631012168677340113898937396683673715791787748568475241001057393102501902892903334803780103465963278444456094203699098142617288712698590404088690005394341795336397778859552742137242184662861755349367213125372565766377459613413618518326423728649927325198663997866203110472465010242487089227382041219054535223148572217898101541017459442135482362138531600386863759495940578864203927197391321735827952271192297382368438874453537645809562383645700079564389580032616109279105235702638160395543488426652810091766935045079727325222745339258841748022948427098668297747690853930361364323613781825916691489364502308442486573122128465591805447783997299305058113408604286857993276324902498922703056253136451788788520999323618907201455777180678798513880996627693037299946816925232399202612068349637342136515468889214193634934628192066961479690363512054375894933124816702827248373685254223920619137210452725051955515962869034269676656526193399556440095969545935381845203168806484682608244189060808579591630903535171076478581653625479274175908665349645740945580631806529000851661279624222679678062373880957816312584207131778493270393362148392723107092293023855240013715908307039437431708733359879944881154964583944713583731459065763053501362242579794130203414307358629638602642308963742284974456266844193777470411433913375545052864927451987319919506373814103317483772944567331905035438186294879166297825573308337179671511942204762238963206294881138573214830772845403193219896186382490768642381250339599459524015666074001339618142978174801223720762681807506863090308824842024384657042581244918213721241591265768735226774187250650096607220637964208787852341232201901591562872206392874487392537289388790219777845244756392801057622714463384472708175860292808636279485722789067717303223086096255534642667870967956518793039183056388485649737151585332567595104562742283993399097681548783644023418913983001114146860459805071783336620511118353071199205261140476381772197249252893801855703663022184536415530085451474866970744341409166612115746766108582015864821325504929882560825939276736892736402229152283960471605840833482975570149609624482583570317838687457434476145137136513638079013214749383076403801187484411782756461135110626502674147247515926913857029342088457120366360943693262530417518145403809235308703062293707809953366640206091630123709686613079523870589146161182308528570359213882917826179977071062721760418161763648372801355279205370387293604636999995678974522774907192344628998695142212675907197600849605796187785845280610576194610834377883105844641506019978155723630209008170257291309257397859013614174231431059263916005460292407627262762007684227304859039778730585192181455954067889482014348734534453084062420379054291771350063009643165280956959453986322045527451290612142625061073434978081427508331552748778006579629992046273921300622038956896034663014329583063317430652598188048811290220570427540874886495356543405444773383541069557523105496630558935199397826176808388243957329246075146536109372547217126257838040769253497965166518942881538622412321600795918972846472572714319010652959472327951288531962221937408347582715601415421685817639617499644262913917423310043853722524871509482245464713371064315332893185401616416579724955446717338642634414828825174401144181717029995324863919151657317589167424471465791761511188057770928518749799520319957786767604076233546693015495559748113666623854809414225523187684722982610580672971804546373429730309471539981366825355242900577806984991852481459128030626702212546998944148759091711946068148813707181660780490471124844431451669717164006249623014531087999888017830164166295386273321168613977103938744134296402236282312216543923887979668925399925155126645249717743242888169249336756583538878479418815975545672971169752175753635523778921620067537482628773802691996189384691098755793425298617171072299057212783291195817580315107255381399665999645223382057897315974690761166799523462555357823359273440821018986615200038556210209159016683863942663264196346262295671654334632050925351458035348379549482626417616935367884422170163397266669302035947484832424073318091239339239393689480594307771036170836059359028331472455340674476410005280848929897386329847003207561610699276423012389558481339843215428717020502541373158281661496749125424156385104142482913193428616686206957772664079598697036269507210537776571987183493121894575481759443311507109460541213698734130027582308908652470428125863164722644966426816228432798470556719335385624428834466745132718480534217351603651950168207287324906518793804701801490814291761045911579073188363983724555850061038117021266527984810640238335576608037216930461037249412275929905095378830673700924299116479206763491984964259876850991033361715577671292779642168461754643073850473339036936395956076595365449389420932454163316211009583038594281093806852569593910232421979105484010070764384769486037267896018194697823059784751872194398470633927924156104802257808034490370889562908624713687720062547570818173169337276082258775793141975505443463213435719532395581255685175971967251612992144276756717949474839870229204278387964874662868798306997055910537354200644674972205093065771138825214895344582439524858846951175951422232848610412421925534800529036480556484712209171134079316267967071095930205186116354591115779567509013743898942076677675321947131991183744559553708050084470392120128803728604817833078862046135552014345357536586635724557550597759262927020578024869813736451065831099752435986669362799593014085615772781298345263793227469779211103375367680151779401462502734785782676546783985940823276585013955671494616891260619617071272888155049010502718642011771729060863352401023080801329228862857003298446241115754024880469585532749654148606983443748904341445697354504269720054422561215168307907725784815855138234651504195619649539384616868825279618192957057492653435381006515199103712106962073255534136848541633324662872224678042862214240502722173724012306920031123981349763540485665569303354888158819945012515911366920892747235173623486199125899634685962482311876453936624864620926137541438095910693627254037104952335899479684361703595392704021013449988859299365333098017721713860725383915379138001128534182385241933183658776750652551707231502790782026459670849799861159619841355282786867637160418838816701722747447968865314438682221374606622533946973455459001733904515233683903146824570616425445120332314363502937091437605473064318091147105548556648768275480666717954758670877536911358117153994500189110858178083995891402534381176128973147673544137587946278561462267170984049371533239346343106095302471871266196264577583430309694651099406554364326437679606917385463061907272629800066948816691588385295291943793371171212268861987736923764821411612050446725202723437031115740890262357416391462199332754955497438152685052520817031511757185626089416837225873731179314179774911361153652599271420485456516094810636196880574892932732578035902395906519403670254754708700644205399691671613733984080313349345692210119424774471971692277412620149150212954852942280731029785060242891615963311956768315881462247731440420992437917800327371699075165052441108874430652518554180867536413949878506274644677636456507479135218441493721884076134080423189971230261154267752864164706024165668714107342096132558903802255300945283802930285130771634059473592591322753119132876706204344870451404148764175589931595069778263922133957995902163677966391968395960771684967120937450322713961686009705587376831118091242691551104752408894669586163622400330031373355120325943813953327407046127003590879894600140827588689092038470851840710870383686729980009958953547514690073462235711066767196061064418165663815584248243279868436796965061527073944673478692696569314943763273390946032339635319713876984553648781657092744455609769019519209546310362539165495297933034996290923996591175647652344261437914438565221596087626247563986317373867138297107794979503059823505775026601614315752754686123767043881093624750559310743487852119108605460240449841014862275985737444392217416309002233671803633256134096796570448852112796824374010716395342855921419429440577315273815960689557339154719703182235920741218366600447720506843858704216506110045153607640494666267381333138114192279715383137595219391071646667070383189957925951167938587367585629025138234928052964041531035123088559511874722253747177561899413783805873414488572057624076397591487506436089290103971089883087446387929427711093771159117596562761986837630698728608841638915386157567586392195583102032921782730349761850971907012951914507972760462924366452217443633723661539908274801732644981061226634863169693681034270688285243869827013231874617873256748299421633766107782728100644911432175022916905144782223438861267219317860571880302613977864249220351473767748191335753992758553696410316500859969126462329234003839104172299733515652926454428222175893930038580716076092524946876409571161968534202761536907069905155063378047840453555205804860804370626170129724971727249071158852397692326489762978769292580383561761698884678686097363049498646365094126042655661164433691748897037376498454119203291645385479027315485886414361256454844782917162602892681600226593289949159405482132502110248852570790597282958351730318759729776038969146414380393465186321105955513364611251865570254664899250288172162927549569619419382212381930475315643217852015403388927592911893710584637316067758597114993263911070038526128194307937690440509834697825801790194881414557639473617514947489527966070838980731858669496061682140997946566057210404374325737285801818341282452241454917769532996613387809494136563448553925487863108964635436699707938807631098146249170071715170993561034107025582448848551543975322009770430692762864155081354927593498843442111290835429708344291636812194870559744085935586734867552056536717596701972493474715702883092746046463753008082569715837364251205663078640436862928828872452612911081800015738040486253566091632514776919207367545184683388449627110678563025011641700897316601338453009278418995130245471234065073894541255160674094560846127468179401520811548801164264108441979753501663624463102804543436298054143781244273767141322753065933103589709829639079787422690479522292192154485589366337438666247703650717946629977900743346485803970701844725323785157126295371403806465937417167258546393356048837435375170576001264936271960120140665493634242964208340628202732540473123042036595813686288408214766369165924286343477307955079125982838388090541020065561780881202395556908416093086836129917066746523857741591480859745574932341105935880340760185131633479279462249553730670167217189336521715665394168688220177312654335904926911060687802411516215417975401863545647081611555553458540731689922337523253174226057374827504584224038311240807384879361335266336266658322188176550901944219242054054027014021253231870898664365608260149208724202667216591347432530900655476983614898884206236793859645146085124111711566199126110099833722529358964252509128008396560989822160506738501476735053195966491441791677177416494922918870154958587882139029264327763213949183767661058012495128855976467755690063023746684054295462975395598864711550861273497828109942377517297300496801753132581119521503541617922181016454500399781557092130793755012996783422653865060635744922432199314369960123758495866542063933009193146816594232960864801919847759865931921822192902427640572239203927767878001524431824316166718593534741152739195113187025453923033097810127523014219037459224903941358870889330091190297936212063817216361303929455063718644981284856676272523039019690935891697045565341967986552646282810510083580631507032668469065159674217954522559594427868657174195822222510905410803152962176301739549055612359495886803278426567234542300053547785949974410561719447969798387223261307089153176555724446724449204852034674750969809618001841560991659534324215143667840980205774678229907179998675979486632667054910871644331705648751991639327043575299667002011512032082329004233857853772775521817701010820752959189076953558995045354869490878070576034985680190149006491453122243972889128062078391555781699435230790110345629684595956486319595618915378467131934180245517507628479498421976290839478152618999585198323043551486167557779767764919010195762739603681154258646102302716908443340846319815517122960288624402738474419803131379130086865766961890907165104178104397495586278572604011864499226357305453232840969574648727652966320167355806883104632328211693350191483906194231519717727446896771180933112500383158049009995662645946437323012132762018205204827841763944505478303225177403698558847593957180310486314890749680558893779755009221975634137233193111695545698797827952600180849137143304411377584271074424146223083857095729790211982989620519574753698322786495402206770517314970684611346032614363046778979451387538014194422529536419870222561028145124650240379039728849883693548681759399457218487823701784190971298277183169720873049732656054396660949022988309137135334742168858184245102628615323083029750696190992224900154789172187102639281632007500267304378436779592207266874482167079037330603132610063494565911094408993702961191366928817940214847595072440944088972634069766753437896140112577066463489311600209375572506440288179474699105035490612230567681483077908846513240740603004308445649272719934088200530261886531328585952738490982304006365448512288465338282160312226342974139041293851347536943870693859466091447563350668147341278188840336412282976927479138534687858067859948167377680530848711209958062136024834144352613297996825464099423837506910275015385744689955243720138818163541091118112691227413972633673277037354758484911974793940554423589717560709306292164691556141123235902605621059057332813491611438969677014242590376557688896873039324558873764514680823342211675378568172823664204926145144724118092294208693899762762550857020649443852202865982305001792456032445861360934319564617799865615572412489255425444523490077939103149751223950921359553753377934739086831886463911462753875543442341624655532677353801868171443753970643956363003399558633313835696215846314831003305754409666116960466367248633836892477661588844493765490481263775976964313289171103273245369312839613889181830147161588143137231210340419995972505979710431245305588423838289981233594248431567270151303243889177751743706992515123249357437152658572225762069823177283962645854525939861787872297608704877829786723697027614007949122237598232771494010596652542157379345811163456726168270114419604056052110863072348966065461290262377521393067381963728723920975313584617590403643151519741809873038691130967292273696198899939995298343553069096914352131329947307185981003046068009233549896452841109653158157165966904073299331145005125623410864655130781350668653210878392277594307206973811200899139680314876633509622404741153737975263378242563740117891591818619050087615063026681186050100821315658016083078317457903912569634196080057266864441487644485002440917520575465341224645543400452247143115946452053419803413954542817354305892972492296999421515053555576447502837874307240102595705761380948853058509059366112252259543194222542774138937802776755171882665091653979678706352152057653018114209957078266983412316296023484831906074463983763296089924172362263304434060666199482495858284401649858861858430242909709847930263844400198416252690164300202529756292833163763280755834890449240982459491468356009867249101244684680287773849485308547861355345491676921143685116228944299738848685510049056163467758243760627036131841487607420760622341362603478997332061747740892445482337163231453566875567353930435411171073328349093087830493698598452405445108718807235843042909799469987919838706946855128896515669754130689476462956811630942837957934126054774030454880978472927168621837216858471974304478887223687905259921488179897644798819210850914962582275511863023383513441430871550078366175308972461723969634468252277049835565954063814891506269616807805088761254751395383992710032181723807386381821410384753940379582240210502665640916374199275321254813744349365836284276157665147583807861150111328178406921367437864473064651081793071132786540411959597682564675287668072825172075271158381619683653942611313736534156158849475992607366910149269188437794093126533311589970012526394010244643366011376699006327352958721471864767229436099567922470998823500739685574276440411924329974579888846294514736886649954563221832755507950486220845823869712665250598390659315092654011344920086280157642477569591623660644037150315985269068775865373048605500166008018293755504529675247965187613392216926167100637920985840892380979613198463226549459363456479423327464017660488780983316050205513417596941827645102875150581611972745559009490114317772112048803117259848138194960823464673563907277003869235909631571755218779933301281477786952587570397431097135248657278706881593546410312084738313593551540820319560573701376685123571725328921644793624634488495573280463005844090130552011484506659945953175848496705437086455277741517094699801662670543523070044177498498540049245750427128370403967096005703967111993554498661779189356089440736533680663216814627858388832667306957499980170720417196536366823883033964267144498018422665409136605633285894430815040063276609509521223003229767812985430014962004947118640119730711661113442579236327614651581478041394041231016450889652784979383560166200484495571467434957261955582352555907329419838840611417849410804455456372323091147797963423130600793126506136262759257307639640636295845828123887523846884091515949529066109909681531827715526415561617246633857994965525834053281756210794472751345635883168624675030145419283351878406508396406466580375407716147354622054243168911246974530265511282584658531745509213525831049062068933900438290401004040443595962274485876893454100034163303124913391350003972687275551992792790601089572690506549754966871583446451767222135776397780632915637190835712679512574983649727436068381114331285934144362496092282222709216407878732630317962996625733774607557804231486674126304957843658038916002734165310582278792596448145280197325336533608095995770123114421336975122939287309422730428982743494007921070485979370341089040087182729057594264937912631590627935167280561579802791861904318163910193309273650955302074969783544671239628566911809025342809784129837383682285750125225634309038493374132268680813572894212471699559634885372054329980919496653470727830977770970778558884470245445712099787815090759039891476035794416422938494665116428694740312311264136287388820033055416927262516010665540906087716735015290438170481456226254769049824148415359186758491811955884059908432074262638091491097226576222595021972935545384739939750200464581243947000686258121059351931399758645375554878199842671185536899039561272692286129486477701448003986686895817388425868557530644269497063410282273296458211943660926616232760590649860227837193688590465786743999907493892821789844689080532174044292439670892695739687380869092803625301922044542242000192371010688627017586025912979082075901356378116011325333078948135503839989807988754701531323402819862669756401845308327834265359731351127000633750842722612217060707838270131037690158389291968464439121215072917805262158349287304198029930060199563306147243795577185751621251942520591731513186470781874893418276311133076226886263758986247465216852098243009669469051903102449506604735718169125003581445829492932833423085958759909929947909015969501170778412495484680080754677684697714702764375493267524134046692328275971471792114945450902907864338431270276607111533930823457849315334617653985276068120127061049894008246101284966549017306977430190122778901893872471650686834850946403658700187796199515695681264266802559844494351567963633458524748880426559185658905594675663068923913948534508212959823014087290838158869173369311519634912917525779313814497115172156308623466468446087275439614076577592609646219642850185648806597120459683650763521551332057722436674373546366965943793135696674079936709919155484385501709892582924320017791658863659244522350993433221445414256432042175587319321448552660971998376194072944150789953486275368539676813318622121774103838202576248293662108116776259657440779382695924366492943389462927122134708748658174769715500408442946807488089601955483729335400603952648271721532028267663816742193345193867553684837510773682424459955553670593430985002087809704102433711986410795198227513982123631300311263580324824240426565754820514396036688057590319685600475848132524580748921899621074061129813418993508412680898890449823874139241551293777736859094688402728280981165419458259893606001471818329511958136354871425808025474346586048809249480122833440682451126904462783348687123405955346579965521714696522617610685367797817444497407385519085781054035347368095587110791970263740472108418600614230877090712074279331690332580486038940609091180093419283542900287430224348576690478103790872282071036145197403426661154407999378124494047661212435730581278947956000970736865015883645988124634725728969192833463363616932128794243226268913226335166015759881155210081784310806103665868413199037851420379398590756016891060593687321102438607611012487497215505486719259985182800184667149853265076376148883419050692610464874788693415953365681958442270967531487523195913351302892006693363433277818860950594768507746358434306919566855364379534690231919916061815255494774566364467627375834049973549928954197242199617247516006261411126153316203166817424849719504617621009125133536113586293619215354823868310141710909865777106527104361346309159230386498298056618376138824196427239424513994671891821158855095265756453694322464450248245821682904403756971404142118551833688170818552000025031891612654970496594161280090019849028619859841835892944170345235905303428449732454668863982066077641663595268009772118770784077376007206465083688562467888493377284143076601387264443703898413182043848392926482760999251196222871664669833075907219437250658472288510061656964106559573418403632910835838133552919612115567252955173199574613143164126897909148973548132601995377721255075684782141605323540435985777160335209156720895203801214768133764477255831276912961035350823039351066317250974979477232667404428515228709245599819827816968634497773941043707030457107536861588403445001803732436056910767278982234749817218730338812612999842096595623778746044384348395316446049947706219792873343080316969569067343581565827254764459775478527592408129834015486733478477029410217036174055463079904066525154264146736235333728185498928876244467371529457495542669631814189256516343338775067387227800946688160233120090136525832756788812901807080715289219831177020507563859195397368309573857018138488171171425436875172694163578596829335838367453184060389322509140890511072871190793738878123729468823961630869855820406970532449582794878285861955435456040569355574130274373691215243336038423406018680286759189573445690554572560702958518487916641735922480800857197444931244120840504029603354723262281042719645367526750507349397624417936227538217794991991164268505592190438786602804766694544872541617384778839587924165661013561092754459904832703649395185849466648731438948437375756132488687386302597380178685309827796062243753941843168055680391923955550062880666372995873878003385956505216527372227734552046921505776938831079422387178990952068942922005278695711026068895233549077120168854022181666371031146527862132705349630672015374146659233023199301650195630492015894959547196669256874900124906495195994805621093639703608154507181205276998903953340818559279137456796035417787184154131556477966491289629998611485226316045491590707732910980191272685518965308491907987034496893085416286880314427200169123151916917096757343285443077366928644886736945784170352579006900506116132500954371320989286727565913845916009836063795934514726229213002357798206269306714777446789288146953774124800695924826496186439261223644019341152458084244259302571681829433643740630212749661041090029853174994275643527441817793075280646472854918592306028979381008362791097078062570445855424840778828344912544531371567612517924278522313627458776032202840610712450979036062221907869565146779356541721141333610265666477846425998077108975556603476853996873559767623924292890883259412204969741240604342924058030849861043954675429709870845951261278169974108541156901931672587709014625735937892372771279284902608584253665935051428155319043110448887842028327936087471434896448190444416413288460612376382294818720897840215508298524692634407323306470189962259375570247207359980278980487366552495409582481918574116585490778728413491770762112709940984209769714740953474214832899703362412288765495759337159277699161450284914809847020110937567526531436400954545500430306719023528735203559761477037456710963119394293533068404476602066313039995501759682578107329962929370548529208784468787081517285895056838419734002766765426099235472448384923812483716151500525663801337759279183263894054885508449300141087311484241155066539606984395427483130617083215621955279480907486118791637012444870734470255475728520679397141410064267559810802122733010468734032474716644274260733182173555900807840307523433767688238921477784019544780537914872736318685540445498120690461632068900030283329159385452869787555237032577481841770807768155156563151722960489139531046546674046669391766341174828325330032682207142360402922776594371439911720572436883108411719979144140555035106259603239171886067180902426649854552987398471322519713918009488564063273328123431975595089855245954206550678764913661081522801657391830410549344112920867039349762009720452004356759265495081580091114829227012750087121819856313219315660254398839810603434799912099156601439186048137986604298035598881282496000297701526587697827364784552345374350889501227740532530577426108644182616655629332356528616333650110738774412393734229556489526829839461525431315896941756097765700897643784272525435300020332921173776619167134700713149922914546146514209945665584818932355234852999248869799692390043435694372968457182980653287771522374806779079729344065526878631594707214501607159313754802046340145807350755755049114146595643752675401150460261292241771662956668782262595926847429057515652812881017156293281397884497033174563432609057399221900380865412486670555573178495268392352389411208307193929938240884800768517247750734642366294072117816701148420916596325472928162188858047038462691726834378886371192102415948627220110259821791395634090434827352519496537728044581599075652567599574731813477644071043349480771578794995818749769147115408439977019151990301822129146347761676640852743696423124877790184856422788048345736313792216950858095294347973182629392023187724279435253523892561853092872739259769748604766090512905367481949388683672363510652193556406283843867245965890299562739895590953848277287567537667647967286006156016493206735967967807737486409444163330757063226036204313316363729538351655035970853899159839088233864361400918957220854175288879474497510672547164765822427000217004820890436151104786219395395439928197670343459442221734880602777632540219329908999220812467655397963128943138907105118299510599653066727557873416826097284282535962303613871317694248633482237632011111543035584977781639323423426294064384738772218677215501093529956142250483383707124669529089279826649910412592888916943792467597876113918071504982819169156869174565443572592850791945412328046143643619615167722906608711261624637480308807693032492131323625766539536313013516260650841756848255971855987005599590886296166615144586024053753637803722095982793998980206439890673140099970962557091599011583989484198061886227219118709588410207727152923681433765253777139669653211706141249690047379083159367075171398066873401058149353556715209051838637131236390251395910741939177618061476174176866860771143514020441940057777870919717511837282364208138011002270431308079900285905490205501792023232189642917362030614417616228684186856507995953733959833159293772256217146044842094073320369214832894412335157841620823581579737681746060890994879163482542296113436700717391401869108185842814494700218743959176313808063408320893995168256895530987034143061960379762095754505877792768964193714733587273145772506326249358322675863853036721098971280612945486586418249235555050921328424149462042554873666225354375647205774995727297487417238206524104895273802206174472678209301227119287192451033132523695376085532209685884275318918430893767984916869505543473857263453202845567645845308655855050323248897276186066783057844355415697917405359800628496057710744398172345213724291765146929089758879459135008432187500024669329520365051238669198637917840342466823019899814732062299693272832372045239526956331703892043774680090764462364394982050387577568548004128224879758701286714559408765556095372455690967896250744972153722667680649473658088613726533154688727129987368249621049554384209362431787261816994683102881342861032361900648156220148192155971661451153755477770064709234687203603918783832383285374912759281022048857825543742737967624192432219189950701563011092638924519095205426313008278246821478148118574233065181927393477024035139173836412918890931939232664833804688333899137893608554596708050226664246812930702488644298024581988101047381257879967864263803170605793275532263232296184727134372300035562960792327576659163423871520648569385533244048240351952785900395342055812756241498710630627798204761057000780955957522714699773149372727281202677344071220631664623801384662064871110049800709288842870327494761589217623154115608676556852037255831215638782668097025386369670707768656753314491141443014781580657189774882861119996464535999122060660213640947809591081615779955057751964818943059649980342608989178241055730604180442790784075265593870468220366312698220327196864992606421466824271349129354653469443571125303915171350937073471804459288371821177543521478285383592030297163954264509618525646938573704440651236035494118111308568810142461052747464700607536764158031689977452216111289363455441486026514828712472898346951088469962329351957380777436457506939921178665277639408615346613382724200621650734605445511743549374945732108764421427825601188014927950092907553337484755918169785555877061994799303291208363651176004967547046502752304348673629306370033282890416403086342447701975243661643181393706122131560976432939235936799017992269310126440980686557015363286948901851720203556354578429458742526614229417208997123533669759908374768170979886462946878885661642174551609798441901248282447940427442674291542480976525453211406410663709543368167430183531762796838823626326943588562893593379312776493838275766770389216270882706865047771349107836290077519502333387434258318091946542453886954393194881128723921345738428313255573185551213108325552477088171000628053176690081521733257376377085043658389996614869383355018895815902208307820714328761373674874074560418569560704452431443341509479741572800517175387270931367174522672568898925773138243923990485045005665330281975019043784855141433915238250307840906645582382964188872892799864273615484421312670332510316925304622484480161062411825225791633924332340074254870449475631040674610731224688116814216400283634660568217896033990937312406536452983817222655367226783858489779900273315744619086385369431893340267103555760043754695251280485693793448059293635820430587331672531095931747281823990513241253048311269087077334070593753615432024625672056102644675116649127344821724058133794859992571740434095146277672852452385451115071012688188886638518015917876536287078110919390806789576752727818963548879537477832233499421069156478962596286925276261783629327540343955069281803361272534087752555217454860800306955010362271785411321629057942627111316122644817839872931070083599831370533187794402619428005455078411624112286817218667279650129419059518116752488639110839676861822082479147658224386734820207314575604986176050663837733547638774036215598364189927290364880194712376272615749611874617218925559162040444115590938110828579717649198836188468745420621092822032478730249864232535517988286904401049462092099176396643899322305315770286826587393746438342585330135237693022030925948678020753086786798587736720448952284953033117374392140462933116488651348541484133230375329033905367288612276059219877719314583236491631353368694771733155950657612010940944824973280885990074725356085062826927931064269109477205945032923631587100017721734678347028776025724159898507717541689268135859885441511281114469847425687580068290563032205990115580449122421199366983932316161304785904828277117322323330278053885836886615172398803419309712308837211205295566021104408223575109924557492687685585950112628711079232642323043292607517136803376447417680770414736677894508025764394359255489021680571978760024511420546113285334478944096112618468371043479104881124235348648522192784484060693260849085159814579251567423459860627748974326567974647744364640166125091495452806683440043387511925903269668374956821928617684857096292947175199713068557317632517232669980957419447768326604249294014746582881442380355228617354961548389971171035872413354045350152835475595876908033602086517815246794257407576880804131810947766558164563911942960714659435600780255078943573148694562451371746995789716036264473688435801798199678740790956004115809384104916109574489706357090061602795858673132108644085742349502347038208858414698210851545204748609870957092565115987878161713445685240717837743430283470379044873726183232202872691137568798742045861613177956846409087808233987658973318863035541466498961834252429949144050385891241655237047226303381928313882861018797976763388498986450968585457110020922181597899062853546966235155136358994855085560018671823657511473051695424782502221516384159427566971688869065773861416499906892100383279155106453535174525705427472560430383746963554773183350087457318749564287015527413054743241362164438998150261104619901163434501173387042696861150428630577734526547609070356415893081865033613531976248098443523897275174992976638053367947783092122803585924773107029125797022668741340774403693144248362682910743003828337200670226131140608120925464879237383340414326568572150839369217500842096618045616496452944003421309756054472743309250459113421028582195069834876456058802112703690736025187625313244470021686487797911997395790299452583904291656489646496863527920059007970730290431122649758394679163285921759244635231625772411113936874899452329271690059553925723308616994580453638536918465209205408788553064626340266414075843079958262341470742984958097872398178195546518108688281223769874698366943481412584769671748462826367757375114808929485903478552349523799735399978023372367787558845219212315444076768812833513119283560303769938122364500113900149625464537177598532756712956622468036612038587027625638801956997321223845973918115227683797251255956359544869873218312791245212792023568380049655981579678852720142641454510991302747822276819610298279849082938629751968032736141741175350910313127282484300023088099764312302635975593460250359658812999652577667081818953478889814269682377067250959626201175431283953830982620573507955060380116549752797643658788851990211352505796466278583677932904338771251229049437965584899315288732119493433588064916755484202564112808596001959879184562726000319696884246878351595369277734600137221795947428724417628018865460954185457026685402114907123199263872022759963834882611541209922388750760970481887975306622113591632156635647973515576153692368313589676707491029322771974731152271998438041510151324391241662068586319831200791100851405011230952269262618248803587909333998066861894793056699483876411668650294801312928514792740455639090763152182771307636154553443156926551228917832886460908801751735026209354892958702079313998429871645064016657253591288098527692933471129014716142476479809622834605146282798998981229761893472683490931324799058034883185220925764074182062427938308265146726084027362353537054267585599468872239337252049333618649681953430238750807326475222769901882621272670762212543577811659987962740862332619508928598518955224883641695910451772652623723637540916445503215662153581959216303800872674959013419665232646760357696658694223734874288655857165861157759765693164277782920320612061724848865745534182891871475445646439726001949110781295781943232589611833554435964384751914342394597317886636490788614404340588351741508973810436182882592008911451474639697624778104140550329136207030506119897994583682009960699239027746573480967365914523246901764219167337615960866183935650894492351196119501853837083376186582804492923427784281782024123112205167922467930351470181456716560780326824997603396359372414585636486614755331518141091250143638691242176770848847839550301986294364294273602946661652779353340374488872640271465909391571784647623263748312834554374851489920489186980335161395823193137358128608085456842496240951111698019556328885247350883302545582924201053225307029825792553586771249686859796977049693100718647983649732147884084546751012630755066170791912438190350176892941720209794363727932151937647790827632961723055474388072584402834944846002122813768544381980339309915185041560541036175022348199650780537204316234193455849246456917671213142164549825893705011239389150607700805350715665542658159487039844494233060574482407412924729815885071456689512807317197973529015817326454237998937581701875397900201135891821573863753400792111841794856186774287307546458592898799111479584627538894464913306522118094042249375928415241409661787993016523564109969309625616792620345293190271897453147960024474346175116853483072620185833797237111326829200918331871567582156184246947764068893264024714110940931635280035792861125722202326569693233811052962517543586992529159751211607238949055546943574615320306899733119764874655910332923731332830773673788796333934992104829579769102825026275056880742406037054148017993812999609078824000038094634535375446521658425210219383808213712428385932225488996183066348417862677030419618410952654695850831465329111027656531958449773626557211107525342648582631018770903908393441638332163500544077537663897343831263034615629555400797268104796856652823773032455432044148226880298687944556286476335572471531502286386928950115224157976424236874156879052067423923025316205386707889327209687603968816747424207155609787692136874640649766749724204633330964096416792798243541488168096178205636341090489176315460222860907560778199765627727968409741532963083236982875289857926852755952153246196811706484301949818499945485274457311652965730543878619426076803610314035640926346051567616792959839457389497637153687947192221189441634236790934646375852869529732168125879709295250615204983548239806788956236065666429872137885392340737006986107454926865097444722805115473496990079270305692241805090826447481956205683692844315578276188909245872524996054532131998555563225127806864397625248533856177457708400290360269685709094077215802928317113856991187557774400088680614922303863120217853474229336325418527673440655793237412602382129303462995301202891429838759206717288034794450999226746482051078090377161559099228443548270128112557374883315465980834578651969770712870056633093095187702186895281143487151953255691104822793436131203839794004639344222673013511035699287036715250316058647720989044439664385246476875092050310326241546268999798098848323670784766507670605295399191392214285259609568981711188681574951304324832403388988751538109701564118625206476708791601314993468384222996693562036066279720180856903322589477617379601202940160280728863243999630429679933428212338832587104029644387135863412526385147527196912635211929149376250964831844782801284636970833150983826890722090581551323238070744786284088339674834414575184000177374409356761499157312847558951453153538355524256489303106140140718331510346168768769340169460750933581249652531386535712846034500299421254659962494532425630658047583473841528096975609904440066271212002454273676135467221229636130646560287851286613470999054305135531009163123369254209282519627281861938757303415002131416359245493624112469980773094611940612828275680149127984402373264430856677733943992901074660198296456174863167213387046302899367149872359128358898991275767036445157248362779981671046412667688768969938803390252626442481773448559966135394223879137823749365573286758644883305750918778334646424577159982307901236193806650545604266311758932098408404807581783886933108336497771265364625224073974776762463609319688485676398937438363084190529025984088389842204562538536080239566799447298674972297858871456131350597268479539290245975805026184712112608114351916196347633978161875527600709686004878369227842835711432768676020643114385609875088184008667545257608254293184697852859186311585131441130752816077226549423376143986227071301607079679352451078997913889812817932095006209225803770188930724874457766256751239842774493779868561733446406136274033560462181650475033262930487203950962397773757667761935016805325784550197356748275645938620855879564466467049193030458413774477590978401566862374731066104199270277903568848756912063243041773735901365968639153332205881624588724416678496298919921778403460218959742759005656345580419046776107129128639407333693137333609326638491816492901851350250399423110070663522490603824537494961521618424568737530587958903010235042444755775452921073553359274330461415515934257144275207510139125906480497394110140113236838016159716482768351296697160266832052376764967219352890462128473521524048116673361950024833676762981097558995732202618070346333329280123231526091930480627929734658952863671317049674988768105236644202434130995193506690985425123039400506629729956721487529391947478441868236162633453582407741784894624889612508221519892438494898072053346908299810975885820181061798203063466210204423809139880425094951493564395296452869851718804925633798911227852191501597379861914921092677609696232680089744448194827037958922616689457036539349227369608817890415643428170777820714893016649304725059245346624110443582442934114242017718330825756608276213031207387584919605527967341196973892836222442189241629996828346628908256845126623057958320439572270688738593229516898540920863291642241487216042566294010003692568281872637221185000557357587635496960418524942472415262240475810493449363378057078769284852854605624143955883236534466550223224532013509765268536902022286020496343588985622992425866540995193667608070241137628199967867175037048613835747282275696684618169029195739493801010999364166545977978974537265952940177890034017322726435118420157920468811980244919406432759040452295322259532001962893236333393481194651544404423206946488836626185755042749628497226414464255788146709188690523764889501343032188595902923235903239663350594310292033425773568677782224198694550459401842188469763263966527815470577336349699702986035242270931571916929079480391447794714354685746282701232414455013531077035655792841910014455711770971942660901693540797707242012873299486301758266074344917531446184688520106218844959814896810076278885657792478662283068536933068420980362890210912762804249367039736523917996428444989523261659917439139028181497811757234396328900528032180764460776575471391631800334678452831800707199862811755700020037560436025444950450371126883019519416013078323448176209675608999497177654664958044928398441475289788064949891467131944909941024597385146654337620698612058267215246569967303122772306870020208796298838412117287245952745113174229238925909789143008566636516437334054943263810665256673857351468689871471149283648865950923554862657561247150449621113042381807560297542080015694439329677367253078098707023779020930549881806950585155182557018608938327056970906652006185655273796252333985227909038592521242220223666257122045824995388736159620168904029101890096263515277663720187809084209261167347036980757435694808517391176453426439279362146208059715284746290502405357264665610291867453847890580428340708161012264288752439848965589319266071847910228264541201227433216634125674473517573412332230908958166562870316867796242869057134062087522771795277511115976545785307334496048630316052501998085992391385891424746916412228991102701512947327999838528658567189799771964050974186870044989149891075020921923846361339527338329586371858104229120847053980254294754834078792279390153473869253971910537686990673387490106186484106431575936339319558745680169311546167702036210504865378529989113564099642769285986603183450244606541372419773571673087565090268934460244230115302030465432650497720703742731822493638895596073473382781511837651048162092105126328664228981472327048810595257164798552334525767079356715028777697991991532452772596208392329286929138906470107011783219135464063275548840344548028389670496357001413633613511202385848989714652474164446152359063233577880993938405875303370726079397569286685849765455834401162292708087431116663075623023081899439772658049068310585274783901678145841751757139022702848683107196881254941052686262894003803951981101499300079365379694378089954588854374283792883510736395736610988041756330485273619796517412042203959116177194781836937294553127764595513030733832922532560207529443025487548170600733921390076249876482248839464673901887893898534286124595694016372706884329499055798945501054615388319895954058745251013789451638749539970131892328431063338980896399569528451202213481603879935549519891558894773702403253871643065627520461817334059169350346424033235970108046585060967255305208599937219826123418421704183030558045809679669950390757699805289210309905231823922262345260291948181905226233435565986383087148817127477290242906855612865715462356106977455417498220090702458033938410691393020061535461137140372937293496624057710707408949596277935260828882097448316275607699965312798836883261021445815011471640712029915227005116688065825359093198370563285662296022800060739752610163389696864347946454371277140753424745473481477466148922003793343981127405433696978533938710333137545698915201556368128477000013707285076667673621573179833858438339485354594819655627799169070609794667817758027126496699881484446941438284694478125808988431931273962418575754650257013749876640654852029178232488800789569234949085581257028052898930352845317829745669016656573457716157672004819830404081372586496714565474613364006947374662457455510075976192851858898985696470948242996602760235801186944132652822605810963511801363085568111446672653843929069525655568511756170950896639037275367308160335835859565252062522076329459263326855420267534799913332984650881863981642894842949640258305491965232782107834561769989045093718877838687167622456891303859256960536292773148779115540920552431367289022794621153316608068691292996314295866347062187187867547744166742937692387635510925646834504108168535461505092419947939363716219516904560888135182640669334042208486795009533661908850221236641435265326075269567460469038741424548569257216988042711134915073867674954815385445193455990662705217705561801886458073684117824058100324054191204547609657209762538953631805978873437724437873870543403040966704390199688174215399394722511878863359113394836445150506617791665517448670309479853390275896600281983156076628513672977376886991465843660133178811549093884376979899401625012808759072797734624472395337246842473956178578052830690499784425700988176252367868768761190607887849938939635740102040977790461520032104868555127459220511383143498556711530816735389639834206879866228567074836071463606836334331665154595710588651888002715739189461533177620515389907442173612592734438210189719305706696174375547721223915443930910123525808382210121420572313235294173124944179339596875118611717687686532851356414156018147233629398302824173291697522714151746970716075789817960355584310349087518717163134772735517185211792680741873847159047074398138200161380810078727392311874665060498573622124496421353351091737548835039037777431352739963040438125971676100408753923791441524201809057015363676339231951256178634322270557224901288254256506008257147449577664651253819583028237899333547609860535280740951911598264012970029418071889256880233437256630309028400658979239405562124772693508273338746544931021286544279435896255769434810226906370339060318249435526248289558446918118974674659777837985736941320902002341649204016905385270493546636486449270399862026314353437904383036096364998353973226340268606317317025109606085447197404919088820155162875040710728521823067972149387435045869698853898543415379618855973903807341363011193114429403492811871628062429086480742465545087715889749043764281218367039076504255928535603332708507633634527670590036279428736483768679869585166337894571709651375373305408425280206678691856252091286508801628091910903078774874012990307130247439652859266229070988336044352014975838152270668986107535083158632280975281225794369504673150619005187404651302380839349837281673357106630921989372583431305261999198522578436524382783914373828637577916778297935938295425863208510434011060434904014308697261121947632319810511903593676851195899221053750388953316681025125615678577823194070573285343960500577273087288105816317228889959659121795506563333000348879311744216112078586757811195049073916514129912321412037927246569559734701256057212214312359713139619457147645312269996098248679985803180620478453436529984294616527695821750436686009415074309405220088550164134221356282178465815606526648552823308607328765467662754749849050583086665780448552295853573813074911510951904657649159497280071656355424435443894306801017051636626499735877290697586999506587699041700667696955477626550049914015810132243255579984099527298299706562508282325768251091442515274783739280278211968400672785503687900097175220812860772721649776608769700328830437137970714243536091956370504847131275194391998257522076011047808274237097798610580635445439956854191492710536945207306858995760517554951633094237016192969501568692538699220905958520604721280478456801360435794775848560245433158394474352595903326133824785279189793262669737517586059746470124220674765126371535092748612182303429587014991521722850203676873647055324778187957769322376020537914084182686073879434187984435906555252271826228748368673769235646044756333077456945164659175267182037623687321099853381210643390419542094317503606136567123206620643950380403806189931847985508845963938913417312832634220399003852444157682009178760131931151723637476650530522825548260136754198856846541818093763538322914267176796395594514859960626987851545299107416260600746928350731726219064481408833724009260575397994604217316836746051408279724575909811017561215023801697812794176329826627513800032178313129860223467225599385807524375337273457020274821260892574022531911017668868136282116394467824251207306656794568908690574511252360490611262798283249435842215064272983958849915239896515684753918133907929167849147697306332296063277172800428390447237229801412364643299150212665115709526277628215526181366707072047891886477650955873371032758220975959496988786810912428108464654231466812117964195807624202048864627097682661022434626389695838482611076602270175551620373620574553460219411123831400930429488840763478383231744522055541999409956188221369162484078812285542080155033830805137561591257271266429400269798937808698669778210327398835355301917463576557184123651440417169170733257496006564096181024041661317589188678839431669449647299219892925753008385733861615011795900472958013637563553147817500651024735165499052976525683617602050551615450338374827338773525512250613542585733923103184545243067486008691233734194483785206579746998068472435529134069204236108335407067542627340674404276397464627423915328608723838677700692312751024245932722399608037818980868863963200291533252546340148056570861231656655279912359197999324011520679663529269912464743186111520743219742717571062774634176067209045170526941329540769086259207719157546737526789404130344965947687771838154295514529785115849277696360495453374364334132886275571386102297086629473576090862910418610561106653493885168874288258813477362920656673635374909259407698754067342403259763505075748627653236054352946798334543899232269428431642372591233296359876148174985169333470782786605474259621448500531391675174732411729258826340636310435619334615571130057681782464070629917230838374574347040427569330633868439943616274425325022056048512034409949113234456627532420241043251092829719478615093448265555089168626988491326967412635239999557439532206151333938105369065925788989012376019324516938773037135899818552177684522620708377385789891247314546766701870617429893891983377836634064513154927480442405868840586217570894699511416912815045897236897893465065003894612192518809895961517630852975382576240294286606139430301024812121847389241788893383870636206201825651633430255912870644330355046748846736801574257702301897058694054077854384293738148829750333874886205645181755226523082038663925835785700147176198937651076154608268871695487571688119557831098276965243387209349793008405812179194224803621455066744051641468930570088225802484868814998584615564911432852190680826529223909227185813411632411283008517611802229654981741656437925803093452346624343151532578952219455764224786659395258041289751955758109789738381593431503053353127278512348126409119656460433697124685745278070220501653098864635622042590596634559863322213498972174903069573704000907942724630538743790234619737557393593157732031584266541447839658573843624271440295471905291071092989188527153442925749849503367845078356633492074029615464373418629330444472444946492466374120012303139488053372828036453199597726877491099025180641070442184209109122822137625397559045508304808382239728443890970787526495372331868789712581863260014800932995876867495148290963117106963252872066536689048356915101276247870860424680456296935165371672605329103385629203442285139286307100111370742596830415359658962723487627641714218392828853332265570345602387671726385299067244052668096605659717856988542721097476193711041497209264063359246672947490830313033350650226598525739314377119079758901735965540764651619929000405092674934712089941358713005247862870484859453089414116211961454247046188576126937695316981566837765824286649868183469159109088612199417328625864859147537333666066170064719133712182495174395879502278421599627740958549127481289330209446841854505054558812906322382515623652236811989867322583426302376143995920831699252643001608625115335175830141969044947961599325586869520772796747427206147446788171713140427154298249497946040712234097844325755715710714375495624345030437626940751617191095761904839360059468114869639262199674275138214254979903850250265668488913640067327100967407879343260272198115902444562250907065734830623257893492559687200161477878114127030069219150872293667789514292021233097632771656910573202042821827723057840428862026912436099271358206006185536281257627531544344578112274049519118390544521200856681997086256974875778600019233264473194041750732515435416780088535927861212758086335195182485184303979191638745615302882058161053978135373879670911194471463499836012233060367158482840033969155963431711563296778192132123728230101129004810029247711738941634565932740233667851612040847405378801748274064767848949879071205492427763803035473607396478852878863513043978597144427895136110301206394206239426861217012536669656657159867807624258450646495233401544952147639429125566200130095047799411322555467142046445998284908809282479356417708963512721105265352469711815106526481183203941654582120243513598862619060501126767389322747242695251467361380412284549110185469404537503638028049507518339816844094154846052905372605482715351649455935658035984061169468049010991703036760321145682119514034127990863615846396615658283015789049237215468119797612093875141648855178717161418258456858261966254311971633698973931977999599710201182163243770959942493986428373382513428516042483137367270726529844585627892552041209920020105562419446454543801283877106827753057851967048077678113227585693453016246859701851933708830603041767833572863853751241074932619045259826742706048050991848000514112057049306159351080016331917096102158091368220624399322812565198727981142847628021777219458114444716894924161087001601733440937189143761374059381792837253930767122608819349702639347785492646833367144284846652502711834765949393061241465332793212034426725206963281527205756775654937631908620156743819876216135062016281810157732237680176628461041447340582199255625986231311504086148472541347872747418520789940864070159419557541689163766108524853287339165418105922649829255877869903466789430091065838692529006173840961785406321528588436313267725526546787150038417788027376060778799070734900963994584629292978555762820304595525926066510216147468703057973166435387738228074321986103210690616712360930987030466312453834121910237978330277700705821130894768958966095569052884848727796148376483791771801539070924367243072225159044633352690392196500241922391821162192960849023959561239730975764655464263311089537054002929033332397887588422784594545658405861467284795998215812332206836552552328384219464737955690441696415245139845205263193704847456729313880052155471338218414332831739259875393510586735995855738825705568129988976196211437411986680208278315655608605511206830565269806967234890282472110258160180973158090803229161901780994653472963404874417816056764925830931706910848137873364251814153941585218399147346627536518552384337414191348280236926073719073601261660714704328974611253751317061985569815422270295390492089708260127745149704719100509929071202707828527370139007039196821673607072404061673672144069427939183333811087118083250895228669625594597157835354392545101986035065542732157177976071805116840005872761587730461859066451984493239128454709360314717076793368626368538338191674622747777123330018716512587493586879342604823633824258570727874517399771169214760332380466024705078135698612671274876174694852450792402895686396773703874755128490628772068875308600061987590384454334954346464081466926057760934138328155076998942595391298689038033245528700880177430059098284964177631231099490398728007779013453457564737783307421403410805609450659536105661586773964904651292759392193796368113790128868675983180786834678555604944080649939344437228254248854679169636661726379826739968807559179384123082681836723687218119076576018290741517797413017412570876978850847971923929307648780533923438172438368113852340228624096671792926342880897217709463259658949548020932397320947294130390922767094089294817759655795940384464815463700745992550167528798302309522720762068944998175650332370944628018667570785046035890482522904694290711905401676380323215668113203518301882142220309924306732780583557029331975671755538758986297558873611198333644121526922233266281613568636962945861663505775588395481627141594809057368175256678384641448865147510384680335611043700784121871016636352910082845697145452412788929639245611710931039083388665452157299466823913453973486097689505146692465964547898502446771596635760472813658191104830989542032627045084173693486821192346036463213265267521559945727171158219529763482134936590967187311795002468345005451256058291886077328690330760211392903789185104343861465963840456138577307552798910848434953112456058657201027885388723702011570479673027857426954435900095160021751728138817270586413380686559031081301758040550984200036327501371364264161593277320336020322397253938398703658236820894720331114387426218395192319397322682346379233964556987905500677796979329300621746590709892478799913982182264556189423009337965590652648516596487378519539815129005372022859855996854254196287367209071786221935242430060612691988133934462404497540782017994310620859226948930222713666824323673799577425225011911348701387871076267678779674648722538359829090928303978144429660210787387895762936158735608608887056428382462701279690086283422612310012060356529235009149115997598967901561617966184741385973829262958828920676017327526095394826660832223969978655181259475197967080158753029557369912552905474005035213348359476598059888425212164939364804321147514375826459834516142113239930154097594001662190962201507124297490395955815258280540009320630728601547156737988075972649158493507839856497044069435117890382909937811113297650814094947539083578977576467922695136045523142841994528137080063061783070780273061476672543695790809781393792920100929622252342038680667553432729250819338973921180065307439945651691438049004146563412026744862761029091847303059805322547808798483125063303256939640412683442977133001604421868552622962199783250870867577858550065896204307803343927830673181035845447410711325577780498498850697820245188138085115018407469083116314900832786232947157275253744155659737285661002649154076349379357254725299154185024229480632571671587611181937482295112519026411864249620119559966196297050255583229596335161305718810660379878192433553355190091238659512296038913084663867789466149087315115805421208332694300737679369301046627235171499323203826408909192373811270634315509825241010338045183636206490879578988490182910528338981043729593134853767844591757836523767959406479811787503518857258880940262794892495253591301097312517735707515995995646533680754603558769984052124883531181325435426621147301717534527627626368721279040369826387295377334178667566410907736973251856639687458039768125662739865428087774316741131157326067154442101914975077319096705157865138888954547489122974359417477030069616025042390827962617661670898706641526742262427171411137771842158763865526928392892831520356085118015416427282641385834571494897081751772983359975887514569056783230982668975652997249008556403962512555666070038095311781278276234462278781260299319731331783526389551318100553157416755911106487903147566789006522305535066579552061300938317121214562999977254991799467009694647111871423900139719971313390499384534164128673598015785858230765226856072529365161568707596245263513474497021498671266013015388853364122243874307814990431300736849423976211317260836204930478541663154847444776360889254859198648404124754093841497897358422434694444262313935788538374285321761043846036761111887340511382703622562391536971096883024436457814890794132070037266737131394016815186779727060243261828834691482679008474573763471535244572442632407719258304407774515380667433654669278256369605847868987606522038788360480296643315244106308321796938683219656093074369421968871117603158871060976969116456342654696156338415112319379856492207127363625271184456027116900772602506447760477071278093729944635559445253551112741030971296835425513231378171416964858873152116508946640779791731180041312836427110939608517773238372200027703908557735172344799643454262599304353221015040426718510694499878604089599901597786048837757739315081664922603259245640779624012868997227889900686694540950929541901175552579157226461933964159739746017111903309219927740871201312540854446645652853622260854827542568740500451211319031538816721454533610386449997995699601072869964969135042546994881115753784850714590164754531083624280967838558477702219946788173140892514732364817248515352668376769952704580930554567381161483314518644304099716740573571810746096503124547116717935067191277531364213769941900268748345142463544171532589034304312915459463436609550139844317656595612685080870516764850876723674951857857338635718651574214461183104960349755177609367516900435726058890809521404049648738444605992306951837333063204238514307364091558591457894019396461675600993563617939611263621940959991073418379977208106787459710789892841529399562486558141746903377632983997277026805728076724985161786221801298765516296303296770548851959071976012930278402936897343172234732956950155005401299036875872906992067134686757954293552263711395153745205072966417341280005707231284740555503753771992538956664317060785169674667906873584458155587331494060380047930826977995465785568457197290975999506989596602772657194833735890929608059352193607604577348348818901853840681464250471230205882501678062613390498905164041240734572431938082814660143595256335244260113199037961863384203657342024634000608965415948672809040683578436058842084420525635981706544988957133674391438139895752430826400262651368790971048370277385198852623602625089268718164890729825516101264791174623618826331330920124698306613191817499696457426105695186531774564307626554942158198939710849177155702738294393472474494444211572645386007896005297778416658581905648200852427878187524657759343347860499742954255231229138519882800001293005705693478651353294770022444124799600296058054318243251253473791992805399337046603360916243159328993747298012052967151013972428518336022721970505807247029851470029469144903069189960612409893321602221730611390550236724240764447813029818326852377372900179666811171496027906864262912737102459127307396961230468784196848821116514287744266165586502049373350276176006086270089716706549128432255387542525513958206651722395701948214784787759249429128141523485131639240667635321080446146537863295714859587551218562240994510870711824230540633110711419408295367773601940809078790190811769903501145995971975244519245632309351621864706459846085588200461893808662162250390833576818467883317270706400575919446491211707396238730686670639081165337270088129552041805396011898489378308041485079756711416183906038539398962587041564883877672691786357401302861318082678361534369450531079104394095944464420282768573084822422660770843175190091799272889965573400056776327450768453302842113340267588885409103968724364384761813341485861589481752030914390514385936688914268367459054075775610542796137255884143802647094882937999261851199041687824605174648471427707136417015382830801431796439326561578166166143289748499295272029195843842007963866336699855255172706311970461403708308216440860646516723336699476090496406877277522803072433964076466752221845032977349186513940248577319073407877318226282384174446546446712264759718724984577790741334155929374300984557743945594846930968796722047146166664780705064535045335262282481560410423770220318684245032513771073067640601207678694055677694157489675055523767186015469659623145083925702916767469459560012227259086363802089852881233840923028380833159244109512964912449523920583839561753390480864075158724956530359078263348406123604027394758099192895653589542461418152032029287412003583145685914754258488250341826404292330170434653737275241334487196476920868878723433472070371344712307380962806687070704683389919317636161595718589800749084573891529454861289562288656517894149746095943381949080796809579979254694622871894875535249670309490231823694072173490438622274784006162447812573761535077560625771475882047707353594949024398800504989166177180075608061645100105148230212758277445803548889891727203450350348135673735342714978629723306022689859848964592154874441347152240226892411105374617845447111816219478776777042101062214273141798011835007569894980660241799675068896339337155926698020107901613518235278774197877633686508826936313842696844690283332441384044571107775398430590198353767652277741138218443068700122469188601002847024305235909728669513594083225922885506712596420053524213073127513353831158380885946584635479192591535795673583412558924788563162069959119836516110024428742354439512726778985724049952188627173618869822639689806408189694562986391131131104406027841583660377928845199261492862244380850656858243445390230991624168201733001665471683546671994913431088247113274368715854710586678632240564613200392990791313094460053143369802006376580647258640877524515358636444723542913242377626427086239623315914883551512099384443447059878123496914098921551629403262694130807605916144845734626334744952835139349809004692289807211580917616527881407465095651859597107951128746778225456398675961266542640944946853455644422178332212603694867082443821011880288768998246140197769216407977486727659505355210113345776239326301123877569568063597190166589185503609609723559185968313985480227867832575921091936841168906792769876477176316306005239465652616337874868060080129002930588854937376286021051625137929367806182793082131568216809517262792453984461543741685703037784912010672320683804590807834434306701706213460528188932045314183861630457941264860713321318687739388040669144002943542367670332775609925091236398569874050111929441427432809454729578604898701653220583023424043734284898889044736328458117393959016500557538372595353669288948145808629432286211549768063776926108093293737147356829226893350580662368298277784058834645769690267377011436011390410193798441644518440346739060700756332213436964401306628997390802810835035653006377687257371798779439827597798108892547745883946655604686296824111152306612703566553079610472250975679136051241459626834740402797430485603938509508508333641052210715112376195314671775662192547218680632958686780977135354481158671206046339123129077222910417107357923152843759860896741416827883562989085033054080152529808260253810735620091878482031866595288898995977789916663237508334393020954557834441199789250129177322537094910978420079320289481370753077820171253316164621987902277291820650508032452979954372214725234596876883541862343780360248928080187980325422873601769582921677749226132313430388988720601549095978915154178906262778795135397002593036246915300184575749762666153905906761324518677467291787497042551365200139775248369188906937006850953782592853029234243625587884321120750730064027990013672931740500587312413293383789725459752635090003452499208333914295751267663597267368026479943879879940278285170284344309810700392757882283037989208466523256153630493491873697266533392142301891700811473846965476587306171185321019345660147563452216801955234719437477897401477088554134531172158465187353216442440683915887730230852507899915468966940659800536802625656901977967366667838627171321684731084314480213009027849261694429440599290495192598921601211227129624251625297802811905134854901853028126503908060353606706886792047585937738737657980856557870985911214201096810873883405549144817478444472611163521985008897236979281945643953433143782359931316637001184036903343130879557369940723299970818916595319247069950209249664425859118102463266362232991079999741761922788897067293120622147685954727482522327149006712728418302586960891253289786372322461589143631519166305557246939442890324456230875982283028100823797719198530724339098521149564756918402457537700333387283771360103329096585528659437153305548325489001084052062670642788652005078536982527798591957163700250981396923488729895104666728614420108352477534905752149692157570751613990809825859608976964052281610835333097942886834939611225776206589523702754935816328570408226097521705530581199365935026241755805956707117076216198809150284396948522628963879118355648690737267027255162466285742713376332510634199013808672082668215661613499619376409566839822697501462389376328222372385069437325180820754618642820331108518968382364726782714881475057559652064332391750518679689360922472836931459412748792056734571845690630288454562827507789510305715504439501692044723050517570327138783195245965773101306354504184082013863480368811166237627117127773417422025035531015518795859265795364616795195733845194536777779864584699216645665192061726016030841278430676800887527738167955570379002724634243358994156815643638822499916523701526153702946205863675863761774450267558142275911715487268239630296020778672708075872855471437332818724700614429351831915839732179002368463678426929259641552291139515801065986507508560755275076598329603693293378933566379102865133522996547794581871803757144285563216361638049408832812941496587884901247712979642642592287134454074580502946904856579901041077940899991700135013047507232897112026638982678440129207085375300038488388593292657141748739465973631505329391690017836815631873541233241280744384159483463322714645453178777264669257296741730774864541888908449554871964939048738473769622734998874678886722107677926623950446829007634513117832312210902939342243784588264173427010787496176125761072451430925325037735646400339418938394368530311216315195973348609885419872301714226315958101106240923524378138154669562963600471897702397909358297687957207658762669840702351468642244020920353465328191825875631352968714197618540314963021207557040933243352973479340010503291566726015873626951263333634604951354881533978861654103030661589529845382568157230466073749827603827526187518360136389625526751672725888678023071392634109301587303137172750327721538732133243922975355734205367843058771014347377806488533312813984632812604599965457183564038233298518593789618796509615906456775489968467888091835660923512870611534650564012470635841273064119827256745569191226078694608451632105931616963219406430193204523827754463547059645880224114925258780273432771748547306537246052968726550088316214500866315358474214769284966839560613802820808374633413485999738087878723821760573945242210190325041966346465930441220618057731015837344558904256755651429859643991126986586938853814412493327470332012247795769556395854794519785184509122112013494014698205010875208436369096943348600294499351703338063312603256021460657273759486466170354385000032144002233031485662885364252287605305078460609475019023845379857701343001024786071399393082934969312633697173211888239404508315475395047457081421029874995793602610987405391717603614481415084483062305176650697787914379246690545782380102959261104271301437770846932304589398023458829718174140665744891433223139499742494357116308113349496297941551559215465703083410482969818078847433620670512559072097460058789942416225205124683793791532258998228155986121396191973075526788587287424306422708214014924061046935751643270377760160421743249702628474285923879233525389510459222938926388058097468064498565624293581328377955592816263862251018864266732707675818025356336237172646622984989289313111270115679559303492509758409663735999138083726696974029584723972894006567586019347786951444673849811933733940200056563937887589084367882513977102776860087294996732818572069528079300639507163770117778898324609340141393991295747943247436632502173189858432088676684965212342941105131644597234911259215520650054206833773955126481032386977777242362352887570141809853752541453149886594452104457995140502509910825361141357776404511948658786905559837044846396312524386649251242939715506076311587645495831297420785273265127401984565360455457940267799113738888759357527039865963711953291992536849079518361287816619127995388080803925424630897100379043663586859560316971920789327785990471506377938592547122538005113453778510710120867742103956739675427732666438601573992293877428354830740862728746118906216734635890020183418640904809356249664780385241132321016498509227721451923475745550896840684596785158761885041167797807018062023923961643022637991898165280094419661329676827044527844183250969642507343038246514410878303442768786121641222525305614680611138472394451438935705760858719034451549447028727736880667812558341448123306129212443285670190096175810123733977987438267060695094804814472144542322188654098948890702437419828753245912865176714508046552579744784863856788926919113430758035374237332567657703717742835857745152525237189387852617924927215506055961252956759542448136735305708644180806752791510773872341505215385283967568405886133917435215686357213144995999387517155969787987925604399525753602471452608773395857335030774801367865899410721654469034403285157767981221342360834775057427797277964689617632160292428455168725225866377969089540534352967838110951227472968058573128913346373948219739089220176915761174790183454356029047080888320712113743660534940798030529412514676673634944219399910267334989154984932730897991794122466573219835005119361711946586007007446085630469224649727241821954906254104091004658683124643117680555226434559000921167598942185462066080779039194987676195973309247923765702699587010040142384219369144247235713286870923102441331622818412988086023642939567614429648706707466933438483436711410472899054088957971298914623167093111329507957897209005009882490250373212900949604093956721876547785181377087972658630934848891668726000143372672038624837965226557940924493991577480454193123405786647152046577251163170083210534135107664474755987161622519951895108283558285867481762921528439045221736378325108898092801690438051719811848451904488059833451274651425928425910463811411272276292985500820783153994857063754165548241393808741655017077565067437030573925051599768004179087683207387005112695664131437123401707977338972731491854300401552979040603414903301645417451595383823506746968625758213495674438657811708894377273553404677131661410621352519412604149737270745249051248168604613792856449152276922598288976957052665384261732593202643611789815464006364477571422568874272945362108509356645536911199609890927457707725475014306444565882610704372747378334580055099942006804075629562589805445752032925717438211799014763087854199168788263889552096684870174454972142307017462876222536355848104930533518254935906131754484212433953842774299036640848154004597818294145989716615832689728999410589266572454788780086450877862025150515192856661361290413640769787959106819923459549816680681743592005163922518545365218615194672886771833169034477244831955999702918274958548967394493295927345857752767050860104156262883144419604991221348459492005891695401802006395274498426774935805010630590862201237020431190086810962524103395876857897410726445388444339676330582034495362596534607474003783193305777547014055843005828124482149290395293724127470231007122800276247451314447821107820391920507171686387955343546101985486697712162668584475264823550446636326285630189399966227566517752809435473791467223509650028153565173121357116171937948507965791250748339378582453239369651985733670055540692021261377927529953491236474579984183058289118715497949790225973453501121498505902903677611376196125084591149853277762341906205278180105149148487322648405307974531780739133526091807796490160944872829475339350082882900465949337883768802402550906023982323619929857681351929295666220375822823972727366539553896889817929218599229321335729755984991821444741579306209797118381157831499195866607487355960090254452738794796958279147899482854353794141024059397385744673784115588767665459533989090397118965054392784630827487094309825429397839744710180896203937403195904235264228707578151409283135328864352989998268467179004697789263546502786453919732540387626691674158482921339984360757958793592980529463365518708935714577059466132990613048398430512427350841752682843158823494704272648982043735514345649644319807008898734090041263592287942025452824556739847830115388356736657426091724089190200360157236403914534604924076487170200489396321947151405574245225370297264387777626488771861371108116418335698771172667277855445072053879869516960612795479220254982878796246561281626197670268270382755013068030136076573690042260424844656330188576738544677632532095717771093005794447487685906193652940707510981022646051878312571475752353412928888503916494043945503423528946082554842381801296744670585708475264473080225794707782584695982955336711083507212861205813186709692464991859133036266648794152692456049807479254659324540034086480525442623954461878417607343083031433103018404936768977949571006576910007119759848705434342150740712312957825202870785272232266574011414702525159728519686584294399743362773605590644113252626806042642253315912414841690943637733940259377602882971841236019524231113999907330440545799883887059489808793955822333034474325743122030030438764466061692449612467845705500615671801275418227859699117480349861394680398665015366113934880890339208092167813190524315129455889201679444851491386046462452198593530729285145923166344343568312138364314638091409716548093533987805289671028290017894052072161360959218071633651309274292170077362861201535467929539292245090912581673672900004320193362029026618600516080545862579100387690608503789578286440432278333903041089958798741131241143235719686284086082459478373041770189029257407241681776846635016068310145433807991990756422921762753258280780644601669462651571612617108145850708292504598359137899111919428933289826276691961600892413963153760753517435216582273502380593006284809848610019601828421269597465234389271465892124326909602320497489152818806992967768915058559148040891508658224721111796399358488566866260081197397035869864360859706652346814944635450964716462114104652871841520606055895672623761411034922188697455484782382549801073560223144604761628768760593988931898442993085752192512373232595068520724782282000863097579944319007444063089693588308766910353869245223635494526647284014851029841411742704113299781959007846447737653687302247290469032277228131487982203097524089813150580067609382572476488732331700825218343974487065611628725096554755593157150591996667158567185766267055767118064216578662149704404214412416103002602879248244658185887970427813107668332552095475072564748603622564218569139070419182966727511778371494467448405822851894870201403631080895896534611286660093516097749889721980883484573525348636761184107041611905748627013747151749994380238694409748167746180554214606937843878657063029349028665859891601200573363810465018458618770839928130402809629389957435487539651236636812350400832214038160571346208852819618364960226710213461151232381567717888696147228584583580112997997589907269976806823295382958187847510312171068342722827631458521406019974954190071320121940028182521329696079395411838278224746406835325233650784298337769924969047546848149541178918781851376664882852852020652586351023863724756872517485893148165037704553831383764290558501012290787123667811945858750676396016193538400146555133720263930803486492485018700618807282401065411214081434637814894288180926774860959465645907029350563203766750004304079806177849346574679659099811710591960107053383715742643783963058852215760203562524133433894006014027762287824504686328907353759632712532060776255778425785923714708247279294164689766853714569661760814793033658637922477973201964624161442931711824047602220088277004258656613807371895629334278621821575041949447357605140891387436322469209001844474355371868125371583068831893970882904572937860009185831196482253791704063221393502706210787462102695767178180498324700000855486970831090238046188706695457721402069266701038855734476608167989936657830114829061364457000357005186565230590057711082822505604316210884758397165014159457714639551606779634635023365379189728594936485549610939455025059622544427835779577657498701390746807396984241614114989361813816903008789865063776564417786293556338645509933700657178646720026247962523056623989648761607283225862403095223115539317382956718485454521856812633720872229789425459177285506066482787157965804033495905899996006338393737265206124044261422814064298987045687525346902143008524822711819170032548646170360674365413085684325144260398967245289776136010001103998374612237733931895903055440245179530092032411267023738565480473066028124872303291090231377536322967707073831117227444846573955297190822638050508874633819880273288668743464524115369640901203527788880125985395705874222259291899736993355594280374983980292856869224114381877971614995678416077376702935133111763166364608306330662382655635035587795827892043449756770353748821097568332400394535943209775761568388648486035724476201789205248784718460433526504512441566014033282274117140863963628070091206558834715056568856670324802892580827459966725607841051102967370281987042507699853854357261225753007633895972490530961084520974418013428480352634347753153584276683748050981826779085277002716534060754588951055122380321510169878372571502424973759116279913826591326855592991807245092811019692485341743590972596720702343817325547163996302414136718286614825944691420790738021621273941723467256732924597902973749902856863695709495651694626281769439632992164787764185520786218196751795068534728061250301236476860735230991365971544668791408504026885322159536769194495367912171257759506496383778428778379120683074374432511317089709415595158038423116802692533910026527815088889535687927725583789914402118402807812921930398280064001977349455478927522914913735146355647207305133882943827865334132116156728317779408391415821104850335624023724344409139929819246226533002301196876353270852164336242968422624499029455734872498189728473997077062327449919583162550468776303515400132480654783156099679706533062011820663200621290292095798688903262428201412841235991214674405778044303891716637509606339109462979477106585435018191302395855418326338693846348734094115767265380495667432103284697425473313579077888339812022518917969574531116381669461272586668820646682517483904996047754164584090346217036949530779113960274453475490516980451954365402530196040241037642148734398173139041021759690263859598844269477793259020900209166654310887891734156814101584840676453121663215588585666884408321378176266535811372598224932527832666688340820807002640141819287015788858894747976537657531374758102612750100765373536027068274998347833647530321965780992103271418490910172384817699663409538105248249726349263823265368755874070233640715589816339062126569705369992945371892858460842857558253178953542621283161247799141598956409717576121339384560931245644266127386812248474074913590930103761979329602954749260026285730928249593085029524566537119117972495192022932861729818080294179219708895719384871633958509139387971384347010007386113656681438207220985249793749220611811203857498812596754953692116067912750522320202927916709089977533917274364818114742725877489048019650011695732480508419937334799812092302898701857291298302854285038530306713510252840578720106537130909830690404026137053198239045443838493898116291479256202420845127114960515020139903907596950052436376394604442561446388183090469818147486544541762617696216447163836401146611541892763371753529619951074437654907142849852714252738357845691532105638593412436891098713362502738350238540403276714265770764891409221395915102118802651520981509836703912083846183130880765927476653408919710235888936363226309428175091361028215442312885545304127827269139628179353115424120869028319744421085052423916642518977202635418396420872542350149722816861620047895855892778267184728493952596384040633272598623961222209255347032522369876041465435370354585651742716248410515431150995801231028207074864417880702995610642095969095495919920650586271978541362502105876518342887827454426240301154619201378769865210029185842050379896992827974249790291617060106556425413691937622215955541531281638017095997554196229056422289845003270715098852575964829840747321947288419065796078089166030294248401483545903865855887799540863684742415213068033447271662901789699588474707805059668963418964526851726381740537660027297082515739054614564359965273796518259836198131394727189269655625952836297543787208593138322470235731074943496645576553667755786169894414987208241879597987161561965946903424825626367188651184990885358514681121676384663978293227882907609508394258789237365300467000376180905644022416759609545800856364156209586372501928951064788090097174919407214160208706536731184065487563073616943070668019729255966128383534134441063766905953995751404940516560050454773661069746480974316735293275671078374874788010403878717976562331049455534988124797808066311795474801923177817816914320969946491367005001341863384548097805281871522691680887974356348225622527322944175585653062841010392593306698347928191797493851777443195739520953864813268437952215605828076496921785833062456730418440334243313869954487674973469633852869013403601432429294007996956757642992427832523059132961656268169015269404236676949573647642866555999277591821665947294584562258637552671338737473133669182269510644327306174943881427512794027049386439183962262094101501568085678348662971008539766388210518899047084718601826412598832025677590256283831270678120747990899982734712407384735628868409148507896270690609306836667568288264172682764612938538726006895093686010963183491971838974182970375411459783505640222647254453018673019978889818031541203315214130153161624264405643033138503304956397834590548667842114914351057666777598960187342219689624364560266130255654234405214215845648545613059220357346110204154876077084509267185544680339825569037594816675018184480334462781618559704693986241871331804949258299568151618918009636200844559479833416874198768539216103669591363751033702434746432452126448546736759651413923009071720066351110279043119498614481122560770591005026643113127405275495904886941647825168011428744298561129634903473983486370931515431533452932898082460561380951523347473419680246604369462534093906534066968788387144825733237133670809315389303049598097610831740728361133951254226591392663855687982272639514926477493697813222216405232230474849476681936289220549216230437998646923100369567147856091387555468804009151600406464793779133452617293419537092190416733803201611820076169815671536764167943314109025948005115435045854818422216077399957640969328416686281769439704329854276782419076254685654001714241185803565593717825259633208517208057502936967273228269240346504528684399944409347266002643310191117928747141080463020666921275697082533966776896085016871502157661369339302864294723706320194522173884160627254332553287459433979734064251304959258974212272755125148338214760836527490163746886764065767739172824154574688485536408850427027955105464309978549516323276512528944074693416164347459808401942542989818448613081225861751953917798213334343821984787418397681862936979196829381347492511427573552236451608814494743758525340484710089307768661668469139444963304186894106153775838603344202765463495411108722380340132372370331796332541327186686560886025402007394219021939286071660228712102303227229474528787304578934615075118433472116120490084847361312506834916378454750668303266349708214312641685496058778729129190031402506802975924418613701628811442681510683304710997898086963066208972784440983761226129479394987745394363754323430294589950732591473777144491270754541283258841561140349310424745392922023869385374412547961250607944359812527761652894852029446436673613481837619125298419359063833108883109714268249566001029162088358046659758798429935655886696443469140255303564527734310963680299056046759004614716129590158251275047146989084266859501259737749285374335584842817452503880935106730760921983558809126156762691333318803749488287463418342312305423977288019607309861846738755554836261397707435574185691081034026456299546253072545298677617462421950709549879276442477730517159035590395055095839506776374637026534201972566758274836259073175166181725745032992939917206554758220405627500270521472036426280787024721625858078471912285331139894839053427387297553330730316304247282143709608835781670026114511105195571810054591527948289857057252839845993375109257412377632621125800418733131873822446144120565660282119662308885592449532962944261559958955451637099532519623146311447996071745436942049202334752541134741953046264106479916658252606014831150073618378820115456275322260511492040372419132169225180049951554253934463266102659923831827478726215574594706562367024750934037754564613409649364576101865243260808711836219486235291409700912932730075518601072219582104026101159950441252632223349435869193524226577824862808482738490161020041168557151821140212124133674153631956415901685218833195440646816998099268937422028987991425835344914781970278063237936167940711227857387674389010157201424873404666575200639864359268628102071068209970771082902959137385070291246071825206223540873976264477663086501367996111478289187737064499902878960204243129377272702402289215505513007349190583490757922053456474220840763095282271345607971472813007617210365490970573001902618839889042661740435691227612587001100730861253945627669985526001281857450000786467123557798988482682347113422494977989112020329339789109727388193121372201688950923623674795901498426936196292877937336559187311092741219857225231736528264320498645067824424579481102581691928172380253627544213326197795215057617255700678523917805417832856655379204383728297297969608681124550921316095364398796271743010974008972089189664223498057597138196831743121551302518967566367497859971969930086199220153874484924947654013760239199574123024260065164912204755322017707934433174748100228431473048912415721793477234980757800796129405496261161705480235253542918037643069180716769838019082521857945358198587112739215482588977825691590146620902968063479416664488135582906188160104805251114762480338754359927900846937506497233978200169730421097248050069859519245204107894483216568723511221339748182713080432858248284350902658721402946762099474862394238556237918774444150607647785173528635534111005816174152500072342775443656086902677925558322580028139865204790988814466212800989433716080705953592312991640054867628839990162565745589948633426136466972168203608478860922520960493673079480194296913380018261499515733996695056533400642634863512174068196513135459071530225223242495833394744761885211479403436613507124531460607232014078171844482282246265909749469549934715895553633617362130173782150360265294903377733849520521288121893000124462427061765352836216348688061050595769768276277183969699983120157474018631120220541135238949653953159963399091336870175791316258307455070112373336280898146684605249405792508857378130452138055211555278196051788949931826633575261494085628177149017302723777449905478047657491936213110359379401242737811650030937117461949087430073633973453516687887406781908312143577244548582825314495888020948463624473445001219806581848601623397990492016402797994205921480346433076435564850555165360371934863648646561602650091614105744491360667381350445588205523660819163073252416136391001293921125903840808580625762257940497601661196120960130862548325955650253696117705556481171003378343712080806509691552591067368027158120429578211940345907759277634840040104641426784615377498209490174955173222609745082770580913962894353479910890314952808466209253852119810183364845522665787233758074146818593031033410957588036356027962427889551837829937475730318368233617142797327336248862331261109006635323573587506184912474268195976457824203358204335180419194050044249206120338744809198303546697479451444731688913452405008007287674265790119397838631473699742129810559628368329191289150579039032066077657668761862813702114619799877855823401952320908825000465016026517986593854511665166786686725581381613108144370159659047502883896775182719598323921502053921750998797011876053073565603529076188921182155602652062600503678758413717696962732159248716339326748199614256488481047133943593452612489420377944944704758510735231868117326084627363465875232802051618967679940614390091664636721230858915938212724933151727473280254771718399307268266188734181672918762264244452509571984916954864698084764759334433589811414444192608121264947749863929308380311871725760897230149176629372306061140338540447557811427374295886978931779950234493246847312044037400357879778842803589793719653455865670690494867727838091966673424956895044285101543389385155437724606622674168104223021519499850719228576817363247062265222286785060044680587202851754676644859948371892209601103405381399366619088696272890253966127695802518442998706028725913737426382600507889198093122369558549008982861390695575997806680975807796688241102022728236879313305662449472990435552228062339643740390628119705660478890688758764229721328779424594689544417344527266535244835559922445619129847523253411579491451106986350385554864517125627760382259123793647048914429333287872678186777727627355016569763879252734809737289779392736968994592256732296415708733064656091894732798750627069371946183359611942420790598086604865628983397451016834651470412982741396487731096916394131774884697066983401604541813976146495286883363140369957004452621173739721972444637179762624427909502775603233480767068588040342320389403748740212891390203043719305022710172923187865199221104508476878449246514149280761894986344301691587329861057850473727971075889574836407227453586717836286803298693166967288107162046305136101363754276913774339224903486702624902972377092501724001598190636941009422202487440307586782860968679470129190033697486645569440566367514126082953190319122607848915463988917503699793365069889599420172819827467529716953004492560681979872027129479448780883339133342833826357286750067588392913420790445414127786198689317455843124903085265857450732162147556420330047933466492811980429839456147800057357617547098695981967672880442105557361970232000242683110864803547390245466194797058155548782054045766516846644229905370715071267592384180131985175117052842509336308083785224141000218309487749865711139773817312293080922801036193554475418255252462666128257573705022538715724193797274837502834564275639996098282956599069589044022553113759021830710782679414958538464024481871769292852467793740409912422117257064453329826628587917194878110152231971903767569000349801295888699916643054589862141622630981837998625940789544358010530234803539400511881182143911754413091521600127948582927056397881404935728092617795118677133969223405974117408671260395471228164932999021260217053961181914894093366509417309628642880633165602923862861337846650669440676999581733844019660259433025690266390456805471862456816643375479331735965340075051379009632756369152598705447639060728849466413340371935745390197736044985509299232335237133669359758049417325037025109054537153374339461564599864957569890137806243151292135936975291690214553505860947251665422283425508582366025071689159189075885422307849456233533064367012956250742391491775246107646738437172498100494571537401630706489221251079679070698848955894846432690275660346285250985233249932340833065970497102876436519631159641411537957062897420696992236319710961779365413109129219992697126099944828712223467855538541342201365742499147109474773674171932159032352200279360503764373780048081040716432382835999238180311296363899987697819283456512923224824820896681521951732150769483548893280387167062593406981773979345257449838543143351287551777322190555707823181251643403370507884114299763943919134544326431366577481773399503457744090019588165828828605471584330484382096776544740756309983450037212367074518296622380164636664639312404188760961335445414036114189148469051452895990293892513378923482860053593360218522757353062935255022228494731689725824606846644879615248934071384339586008798117516551400301788552458315755338602582434396654689756040439075035150904401308050626475151485031123807269157831197886331041624390089344018753819502254085314660786624547611741616302520555472634684609855737450591869858827344528243886967004775705069377493983402488695674041012219821550342091830982543534352682196593362658713611153700783764766740937390878374443026828725058541470964726066787762766196238255857472180722646522905326766392271866112368109068400759339248689081136849538327447280464996353207088122704148493826192414980938457772092394223465952314909335299265239675239800545051365672401988764068426104581663197839446775205088497078711571071374264687016139298328349578914695775067098088172707311272528607877479477407763303423369779520721611825395426191337193048566936494070183345018921212133916781088857346616707112092368856460043445478526622754536474927519265222732889890062685887942263837674397789478562627446237519734521819450216357313129423747572895342482838392686620081467002590807525713596151955244602529288085423477083125079355828579179520367407529366561302038986532089686114274319638180675038512659274488624795850580236359267936544101710092368011665317095896165682669262532133698732577938358846483425648129109676421793492882252798770216706939506125792748383901604474374439145131029284166743178831781594668699655167388480208046745312075836155385473433927787528791828873120580855811410213000996363457269140305462407438357203002321857661261556749376739564774454181724225896338809443636417079651285174328409380661812891418205962453485877639873595658830390242876944582287900505854504356080839443104580883785438000763597249374529011267292786525264575442326055217129775133283706439770563218492696688708856888014089959488822095567327493625424370888024094160647221254222060767760525077697835651236421833050253082815281589470356656528601490085338409335573763371980416663526955021730363018796028998456320586686673254396451332789545321559057326134414692314161618663514490432948063101469352568363921586994596226103960813823079073103266505340829443078690344474618684222746923384126428189013038188345156771580782469834608736728718926797931216130421294935323588849763850434871078517149031895474803716803760149311930375412921222045316939354995308187399492266298479920314495627789769978663730203053125587353039645109319700309130960486399446305511144038956335365278513963402641859934281925475720930613466013529483895178244926301028604184199152560273135179111077932662201121797571097109653429452177695629289622961859067744863038132613002943845492548430763975582534154654282589323624467504560851606711455087669625188702329295612323808152472496613217143623197099124264514211426038150668645563999765228329572636214204284785943312415978863013835069499490917898448628136875083932044172754993320454993411492209078213951282234574442490067414951183286219134451891642135736380055376326823025633958719905356919397981936406742676230067465647614745323369233286541446847768165177255336251140752170709015417117015146813375981635216939241606853971951217933605147750745912167738351329058084231755986975778633989268719183233922810863423713045131669876506379241673587532171046881303270871295670448453534011942649669800058540382559533701254552977872451310213200444185685717414331891219837527795864772239526098725878118655100721732087519878368219839386926291900644137637228153392908435776325551789165117514502362976106021082433480022509436753270300207699665772299736994420603472096074309094081005786411467642501921953506905560344080368820380193350127755455007899753678589213633103475905233745671335554785266726938447251434371669041867885837652541044651288376918531516825532428901353632377059535169456514464650308817530154189447698360654961214364896080085265889290615517119136654517361525711702116189656281552938730527767376641076963485577589006740691982681829537061523481813526235453841306125731738911130651678170371821274397429289680233076976730970636348478308391372162460396312028768084282681915654246254941007451351688797462199511007146117945988564312076352120282796465705392670438236369282218656554026273813426511815398418879835779154637496098200383914747222354440917123908226280241168122877202680204133710213032227317685552890098109145452103202632452034947386599267774596963398368787508318414025779211816492975276846801838105246545392612545855469832058533536196271286054600797523974289184291251405579987567534588536544721897066038403150907088921995800204742736814432927241675332591704961153264846006555407582594393714336818169356518858259781908195451464296728444676757611912692143266530645445725912990866329420265745864315056692029962671697001057835790326997097578938929462685379985775393209618199646537935097702733725886500626748454193123813456911367745998600613365169487899526872781895790557713301304482165044967535034181288518342955253578419783935484078093243012870525809398921667255131434388525621269422581613627361990316144034949678508529217263916053704618843625499327245296840295266740720091507878495297559484477959482692317686717491021912739032347583778683153096808187295520005140735698332270982844161842854922764677130806023917973608836909910200467386496426638444046447329930734469863210413050301187386766420257351939814757455890572461062853337672030583234209061413753339643332439991168491782954154556384922678166661595195056858350167997708810068066026140361514730412400227481195616810989830445477663990667461655394292599033184962297244793352058120100721105212943696587043095467748397496004875255452775112018111979703478749046894373978247409360986432532819045419285116225387083737280853166520881939916371643612632123439703565908117806276373373753897656429691990458854500531906280205475365788975417624775223577405765664255846442838184610300148754329995468252396913351003479393261116662140125842550403182246914023666927862652721458557387426824945348890868591109420699165624788913828048196303270093882677939065662304007513415400373502701887875726088467246543173411560203315821400050586769666778807477883118921696949856994889073623737302321742198615142073320293472397825221284804698569616722770962335298632207357792707393915598187154673791338755905022257626100453056281898073999551851175570610049850554722124498337586354097787738629865238074655218177204419798010125188903057463137200505133210282565658781784009542844056298366627955218572847638105051293137478572736501738332632088129594770617139648747454097453172827534275682401304318991790013533308050778843788929825394824483437366768677288321331724727596207832849906424676540600209359777758953572221054422806957257860714057365073649011788800941601808374059387841450141197773681563710663834952197166001251265048532241292525080035798843585746403446497020433136765455406720335733248881521148663798703189404336139769198107505948880050160525124942666606092926904172202134822908726292911606689738082165343193839517264609056797927145526745905062283828463864367535765347353594213680316517491725646299715105895260830437972714880161020489367339719704176192400847432090830645151443627665310208238122306477273741704436634455706814706914395386347364707321426013896697519510307956940049832709831680716769077168513707187658438595270468824754117327087389356768266262078587863761842599227541624857966673780367690745331055469900676655018567843459619232377518553095012814823312919833476168481605722013477189043316128282088384772167519158753814939543642905954949325192860299187427544045486084589795145330054406459361233657701004484912394058658951880944025894824984321715025754736558507966217241382717601811389516639551499466734825795782033999035005153482121104657361384479082986966248274551953770362748874246539865015486748971485516485824443954029305713354969947792130883652146961776779925769114793604797600929208888720706518792085560000717767752940869203785446719726782256649432380281688957558179718933631498485920386784330568687711576832298494224399299955636433176528517666507280176770341973242234770000944001743060635248890756800057002175903652803217023747173118511781481174084814917302178976291594966659776919034352651707703472753695103898749611629119095861864946451921279042602702156273058033408495074968345993532400792503218946586357333865939237305831907374298354388000329125259074950560293988882130810500882424621388082391413226076349388065983926707329428384109751754589312399336578946007961251943513144161827092544780921195566642025219438444187826244544810059282361417235526664730174346032891813398232883491713678915418207158835784297238695422120125109127820049010478729591315070388257952615967236477822200483191036700541170084793220973491621221917355973319272520502857975839394101039978491171028453039768723620460870949989315585677391031888125281313662804043638781092937480982739849501256577375829856532077769248085215058224126957948954161363805944155286516606434870464008611135552365281567948059706844535762185548401172899002636383351039191126580302627689794125202913711810037401430363415466333886596211816945279009587114405557891096644630930184139970620744074453505549168636016298479039035052293212777863435032858143268683712284064416873974924801868962745528741883558089886713584921854775629865379987858973830886864062092259071790425957884962436783441525302597535411883129761261091433697784431313534212667485365850199552111540061800169100368844765806353995219135243698935219829693586949514648161431141961138297493662792921857006891617998826817971433423197604495963213411976181276248328482987667230685186044394803036096843957891985006976975906741507987566030095213311369154891264417018789982705339071746151294592402989945149227317398766044638170386472972448133398813969525193859177828257070928369945949166111438429047949733846692877330466056140451173950087114908176578193033189838299769403359095621760526100956761679287179664157384644817490384392584247162065624478610286683326700354835821831209026245417683487683666630867504224093873248062465142670492349539913668981956672298679965556369054977035200344403330565612971638771821491540167801063563776360188747601885906832269394562540659603007858680305412002817507271141682083221126034162891943716045509683118953301906797234536029056944794144580497476225828606419763774224934247099083529874726473027602560051030323380894960913718159604373405264106853463559915076851512831009356233350854742306935329229432855985938333175261199833129065278386381314767050061583223907170375678690984950190930290519865572252151628182117688893890692605172441615068177311663384673786478556965748962153427115910088302144035812800659599154266143406215760524115252626528435376357544931381562434668771603363981282394226025542461856945998562856871621470743182778225817170859170407204280897133675022339711486678080740934071847854486485369871555699755679690624913185721277887488544186130191304123271980887403942122977527199935617238441951295489837901979760503611502227444518548304628563049064880981396665537725363726113804712442384476034687618886225093149127097605205604056905858805638095822560044276660868692783542111467714226887133778021697214016440019477080828383917316212483554244227539974592040438888142676218058086597236388645609631671310849675058453626932671422516483907671615275724176231777711513771640977771222484167995246319350072478930125870244841846859228940471388733988119676005773043524590438359936083525451161136707757111808900005908596038512209404614063594000714076524400121408072398225763292993717847667555421093819860587303732071134301096813547496524081239895341541518702305985473703005962527701580923138002150377480303442775334188467215282232169069259758277030821332074702451990636673432524013608698591990569338407130178505410478541118470614143923715272050237258162313678086406333827759835670904913893011888995973556831290051109517446359684308432393942362088425913675776494475333844874271121112376817425971360122858943400209771565747248045592379751860292530800709895450195496019783099622455192283387410409064288352705705253133701496831373506819042507905217166702684720843533579402159526281245444998119226339102690484649348218680391100157980132347141784233137046312959316004739295053496139860964001423697246351960528190112778858938223361589342413495728362928917838852768324652473072212100280342796757812516435803503903986551527391654043170737454016180471542531752190020494276743084849038791643553668180436805228156168496797801254085832974341645298251603462597209968466029077547088166368354699287340584097995131833583737461548327253748059627492589474535496917222270215101512581425177426729934811243818476109897598282887433460070875367833655290803963036761097042903045730217680941327350878323457569938208328950380120132853544941832553382707506084749702551726632409713570334233054042624816110885759149894303985240142860908621118672735905213790482209665211438067130217959406384292420412919198413690706657700314684612962776024164525725437385247868721987688023610903766045210396321600169544095757941829335057182448883412382946393549762721963025006799124805825579886008130216269921121944959213269108215789405800911722603299488698963038301841497745385787074732701421126655416618321861528383095193205029399612111682027445979272610226445345040301566267979732513128683352532285176049864195629328891009429062739375116985913344639084363149031811785223535382752057908988621036315163421725852915366274926464933853942565964934469200079540111502890681706774026154783376658629057617685906061636796600739905881883868345124551507876488971945818133130749420947711676720184057402987653108135498124352598394636254337523004228083337755151634971184260795414808381608686862357202304009552418853858224799940391656907802450046725236360043454573576972482808264310831808468510004404316599691428244705601212377923507719753253311603413464638434749818765323270156320776786691495988869611714241635901627651310821987051010534448008079531491801488567466191153849486099180216207346943018929527782659807023744830540162592570678562502180309892838876197628206480470093140986501387514991234811149997968062740924024142951596747209589796169291168217877701350678029282822831268424378094985199615278570683391179750079785782810962454612269833205911990389274558520236496457048462886757810945393949877341435974700589854000452171982546740168722758715273326876395477240755867774086249746384884697019018737503015136296586495968461989872449267645914132163640962421159566539754124336568598541689879987526866938372092650774998311144494791088489366319774475158573884763468888251657128683017403667254905600918942511108482169768369740735163829448887160167732396791949245468757266455971076220455291985150031402990387541424904994620354314929824666890942761354101681039119448929384120881077762663611786025735252382066191114069814879110159142234430775962305802403335578621939937446761925685377152849166805583493254595199862043600011674348079056063602206968839479490905861053641919828547260311646741213915226359317577104813216500449278898689142142235662126166504400152317603795899692329552234453310114268062018232003570472656693073114804572509818453568099741391315583482798073295851116971438145763270825070204030767387450494678493424560456201852113174247602293882558077543567004733381951242563038452264059900368239028157104955986535383162594191949915796231921547756098755223295029762058303212161400703445135826939249147483397729556491862352616056704714466401232141880492608412495548989623233169757660033187264979739834416547887050060486559266286857483810813571120868417843352124246182485070947454374715885411223600322389600220378113593072407824131127393760323717696886911758307496887415765751987906526287414182853890548082029052784016992222749010670280179015340793891055135978615628807408473820142501072606156706688097491881252991809219492799979070805159105198593364279573080969454542294459513666657191999615925175293343131637175530264794329594964139836145608805979092643815318133366106381912138749236738955157202723698062714071150958770710426420856815899296105265069574400141493067905700745641186451738255543780267029904956324848532428562497799541899661690162624187284883878087187231399358366943497304414863397074540250268581523680913934830776203189399914879454500910052338622405398856293457140795722591635925184737750268321896572919483792902755998120031910224292731059889466138444030650848024847491454684582406448721983482892872804973480687527649726430279017431758295251175761906545561212573139737494871506138992909024062194249920952880057987717628315374010195100501626431140193925003951066996461519426622274650955133129538008265287580302434546071988339413133149642805650314911136372776641098949551288915780497045659743368524481425486292099564938920824397936392590016601784222874110896457740842201103977382943452432991577287230232448289469312067796519217745288705509165115295493596456344340403195100756589131615100423740296760060891461663478610975788176458059709369103584862593152721388475369984264522443939841181945425459588977186863653226532226878325286666709546795709251339857547721352489009062172417023875372131081354515321560154139544887036267423063541799083347871791953930416888093735651517844274621417734888455165449832064351599014836966332912398882567728803792443191432728391654032961253729598441430560669492176396110952301936610945874075188776709894446702201115926664621709879620399795671644500957094869004715381259063533085638958638337344283362354086596374683107767653403553640663296141304937025929633723571660299247349473442998156687474255536628353513918805857814424359986308158302337526685990206911422513663298343590106155021275190194595520844095357781569633322029666265271705406849909972242624534404309011329163161829793512845465414693913126494293211745444858148232176939618066053866165408648843966036241592761067042979549154201320849812286274228465696663180801987902903142461992832661935031336856634292927407403673119209812563846978429511809869753859054926960591488164377875760927471455891361226140323404801074368265435693351383471663189800556221626006065509205726896269063090802738806123281531763503078972588755088333693661411905458280903108268687901831344501227950455943145751426408295084845773251975990633699176214366568623011036181118075508734313017151705746257499779934237109555372671137805277189329869761428227164640064636088023921895295031964209634866459670559356517420050722109363687035171747453710964787055474572413043130836941541868449817555146786631036410125454954195351981079827321198045431315162783446775577990636920622964573032676610510926261534078881288642674280639691593129729696195069989076543075198712664518293510327059681396555324495797490121248550579193145280994919159086045762186454882457921857818888018252767821615293399692752600775637812317514554345974151934183282554989538429203325838547205018730012565925407813065076805894788406105405992730521486677101131913542252859763287451188139163450101959667336233825650967636851631195629506949225738264689859345507417575241714016809922610974879327438405296098287960582036728714955022679162007901053759211319184085348927871933925938544423538923947886639952263725873487295637643170588813301701070224651207701855062494269744996404536554628058243598060008644771768812320546113601137404230042610630802146480063610963760435934668496414405135779999938373332716921452264846966595088200518412024961898973602994457965782986773188340439869925645924830919765405623373679001056238695836221601786348226236765239530611139269642289787602595368887099209375877713557990744876950912434336612346845177586668791852446772756765283727260555148732702002793289094795955634989048916167754743992533786814674854724644105698805755622717043893449717054874388482461370823484171516175326251869300208582774338920968917299776737052821341704713794220211691180213635829989684162118232791951029894562135959488323022616053068124873052289454330928024421911526450045670638538150029464698118068529128072211696373386729381479518748452277817712579374855292802960532892139709845844413814730259034855929035857827410881480206510741869988245540670937894321040587404167405560575027000343084209387587826263164725371952738669937612083931125184311741023295412948043237322126097784401764542969609738381938361209707583665286874585019784804035570999353875682575219762824155507868914015592637219771944961907461135774984985872586360555822603237911164467117377375062367906342119158045670890506144186294034350409645333578714936695233195480218972668478508303295310984659590222167099913993851764161833504095155091081820701570331996303641545336927116839852715917729984773566220898359213414024944506733320258543406148892345567733786854411927129733537374532207510421881410302836833868305704765973343149163750491151900982521775528281444489608440124220741605026596977417922014106548537561474002620251296644996944824058258962646196905797218036915509495123266581327521655707079971118739993279138022482612258110398032671858413828551177349751647926897041972108017722688186243154443943907185997282203886383861947308437786103316030140763168901709007780971568779263414191543161619047907689967961983422482608780188268927266037206014705702275082391403676611888556305135281896836186105157015232855788890289001556662490240037019660442108948358075756587095976527408565127206898476707841183315491036566329744240534666508794978305361518104673439881560433409551322882872239625393152032444657614458583827966308615453388524158935915676978257768879673793917812935518860916758761714534452308976422099261615490210387850550141646574363592028756878655689395038098245144521653775520155288386656465289810228920293868838843107300481014241231198235776266850582477152137395756604464794389108271157248022621687013878893373597686190418325599510393126919721463435895139098222687323935895188339881061706285261383942331319026901407439757693133167184024830899564606314140159931466970071617349497861484832426319995807929027766945309791016546743863823855900562885516974264154603418444534865106356220639820277892431612999946127323388666976649460040390036692220079785625921118305546869571818739033731835753954013507863327301269146838101561055634880571534229299228279952330207036541793386366428472704556578572113740210073075952200434668456257961608480910620464067316701227562674722106913398401410400449062183142328624232901831275077419217037637078588959210337084039998090763135190337434490927114067692795041329835593346045486714653798490056288194085174441313012580248647726690203074610252412025150677175361116983066589881209320770379745522273692099748392780774714495700385575390434322186218424477383522310694932529992195225359553815204009131082006397537749481265829354223102173040367863210118977976711784862711542207088776973984538670453450814627027904982146797880712037435261727000308778377463830227901587057083636300522090276877664612823550721373343393379964588670438394867872287372186552838063818857486861158957175809490307263543269799518117014803244017656008726615611320328016307827558509007491525343181773323786119892823897697301887220464365738500487112761230336827389390445579072794172127000858609687235056311663172972638862095286157419285168832105837775217823199399253782280511627432749417463923393766321772036831725981795945565339944167601323613995013781932963953485640117011674054316735502765148566432056281255893014460884895653185582394164359149631902618492932528143711668357649232149143579971742907814509644563849462860315606235645896828490944957466864499254244723046775459392759622982198654621325698587623344686095352570822194210214232036262646652672736850148410823823908655571958821751772814394035135944006717501318922693198700157143766843245609868872141762210720810108819643357804474435608615706063142646943369964793553829340529222854893131129397951033914605733285699990221537674298168271661098880377023629248764149262578765912833031233665652644343069015114305507624964164337469037174196004770485707080305691080050051381716682909652980154754802987069268437515370393307485482244683661057040825964709641831773675587196219561453774726894031801341666503230565389664888998044492911954444308711137716345671366736026172619648904992484645063903162412486585091270409125685699233514310405284556946452259058894430444244784562086187111862908434326303077817691269515108924129664752967131287565562332758503867307309268435524145120594747403266810344764159798573413257930556588529143962505311776784938299459252098370681694290701503240363549828930376020014514654677199724403932598208908758175353194120845923879525339017058214241249589500375729607629614335717779671979874069309460484425321316029331399628091968696156795407454696601497562213498267627239700535660666424284991728794084992455267307573934873017070208767796078402121335696020810688769048260800833042663042201400413161814839462086782618104536580646161701801753521042495893017749815996950949746758282303480049231856244692763942998410285647273402328696267518815840871399364031043539108848374805112147200344438795018671012223353420317740957773146970687492807521415993054671702422433187742261098924664917572081560647447360257736727940676477162832446008363369663869990276854195781054787044671238633679343962958824806913018263453947186857854295115049630830372959303938741457919600916288103800014098701329971832339893023694790060593094700205549512457719267274776784214784295221855047547330907116293994396651184137435010505785531902299475891391750241534270020569156901179084442445471500915504364369963178563167184585958868508502209135959824767434886223120251310763635993176053401332756313100599312680722474934055386071225379398305827183581935223955077355878775117659292748771501110105016442563010350556788933000644385866318196442160789151736085293912415774710350608071162867903077342577864993787651638814622666328329297750502294694695787582369728883957147434903421006227969841171545801089053462818336019577614772239855282951149982987387072111611302637281978689765977588636833068604565613217131382029754160157795075549313628886497358904005204328976563707035066285229973670114144753574708523995950913539947936333501639028721620080300082487188238454567038210060913152361159359023981676331402142981017961900321418876669134335885274839171308753717396845931140502002111844808657430690125442615082441210319789879074742213384746341241422631481610769511550098999473855747225734176506005486687619353533802720362491059440477738156365739359960530978045710128049533726587540646990968705035915968080268119062734892141037969731765865612049873877561069518823136094912403057497688843002122525699700597521724383614431155859973986731884528025197136771895528246609232200765041197709232657311084315897921438225014572602561442493115397643236093675562987415916455192483188222184567539311497870861455928909332839531602892761808519756182092607987581380486171366940926801717889227818178046442586886533636351031029052367642731804512468001508144279869001655030890895067788645730099295803206907374205139747784839295621209972044431387981872929224131918058165719094598371167655033121199991539989054253719245843792145281726373148486363717568538908053534644113015230405311259146278005155912345544570975011208644798986297666746351593724930920039040750889306573324578532992556808128536069161992051721044581785502742263204629030295006397629543446303054820251621136527940262305766803611022849191701326056895111276057404879409934641656716835636235687610153802480431129328747659645289180812688920631819802517138683706123295867933632809844864208657681992264454157253703206305959927546678969498243498339168936071162014077180660154864299223857896519910190461835245121578670379704724499296139157171464427940719896085240436267433792872370576922878711053701136916232187728533920860852350566936824311792877666531610895168197170924894203095940723205227970715274295683658876365328266688797311720942110980118587138070586532935195019666888711357363544775264300717260660625176088064181291314576977227531991168162178732441925767942544712252824681436723584953918949039292282561279204585887575571770143354842899362829461875238454926069492852062421901552142691758374889987986641626978821985236173185086257454210854805950650290366777408853774238687590201470420400564178179861532228220760944453341702763018873904326884475157098936832715631923345310920314295720079220227290797978817056129523376709475759034596525819802932772573252851281655743940577800520572365056853871973639308623492291959219281906149143443486035657300690254590140197312899881815264144057090738859862548022848077256051387793646759406572350443663601883347208198854449252495660104920609221627606422262750187729512044205107251410377643944083031234848539773539965185188190314671079992253057276165424769227077861721208038021789660945260482634047549854122724183966897783321336745632281162384175514851966804853341542149365961054730477193821481612799427428925638609952332389676631787648947386628971296486595183637375156517940541533093673392835122209525431043857509657838693979537327541654307932690082652492847096342741625881302866984683238055192209926219718102577823295130847597453494765345804602965992934324241513724823940559842148327028157875322360243957361529258899606539609973749247469087215566591632666642669194324936414871208482327559565081745689245937542989902414223712716226741789690232087124881568952514416621613079395785192361418519788230507656148235063049940338821082184383143147110789165711928938024419790845287966591534880335421174546074925610360538770252138758673353742123177394962638965915696028651251429745613613872990552799491477059662359140225217836262328303265750176679002956443908673028843365872640916140591913835987593038319708842552903229073057297489276648632702145406400341540152275603921278858602760112601421202462945482911905450701891908088871149359627896028322730581427445022119317460355061238540397116118542099565987733622521690486035486294280262795373900129300910738711180724338088036694832806846730704659209863053344348304741239989921086670100979619795149551239878827259483929879767215868180233111325927699379894820278361954104141276602306506450723310479291764672914527277832932537041361978714555484429010233147558083661004847850526378933127755529650410028550008999409047400323691012449882503762272825160810170099507351687853066363145058170015148098868096403384345957570247173392172355136352255636988782307072956967661574395662448370694882204119879180246236620725546092029413314697676492251315733387354490745182661639915623015640453969743921724399982571871333059105844117993800637933677901985428490532502429180605292350387789210969272359152106477733203247019123428592388574594542796299201973254754379859830457897428463195305636155607160087700119313602342181235595565248278070487306574274544876363906084938758938135782746188247027208140711518816803188986127561112571118793570734177386527125558871788060446096186718941584031017804460987810065693692019259163498308517015677600002321747413700714729921251737498641555393928645608372102829964121573677310326230017060922503471256961329305102008090562430409662986064322846496148862547525266541286895573012532938614339485465811986055011952510861928388308561797898150395433550196398802819573728402957837655466808244873003806994547514631185521379892209224085764869188018782915755405359107487982563281581504531518696657246147729145547912028424971318896240872176671311902542581841061174411078980448711646193162857323133922859338835469800425764789939769118086619267756104973804477450768723378861104878932205605448636612171537734863564509340386791561499210553105900419576253424810069246318071174794861465987144903132117453050187995770801315647149333355521026184713752965358456924590914921377602164354109938191414000945283159197975337080129417860483875100142443403826641141461857048497827753497471836794708507491887541707707348204824281262834311846169915367082487644047092364247406010051218277164323747587319450330063130896183927656068563830650667622011514990249647977936596333821510426842284990024796673325338294538771649715771867050710460584665600385440920493805412253719727285743168138408685528370781993216235862006170395828092621125212227526187705728835600377686525936909812196878985574316097936065650174386124263432219483408164292409063341092346603254509625769777222721444653673753404891211516783718729105620834148463669912579990869357009647266028182910163712954822668082189929643177022404679818209188174608982410133568370513369550358856334124701628255549915760432957357612059022976723149452226319683432978110238939286524189873902093619078930612449398125468349478546789433757759961674743023285285466772215014957014654127162223806317859305161259201791652427009374063076182321402023510478541007959484096655996113112988432031567438296401949686635444059367066102282887827092608856716830398839724409872343748023442399284322345564165813806133147952337356774568013084014094954440719702923005685585041091044163430161262078749281883189491072292058802116822534974032654970826600692098175143027962738940027725427856045120989835789228259491925258921758643223967075215945354308259971153608655222266399496119495233840479637742305040443407135752800724649870470352133208528276734089255274099012073109411164607362022904489953137608023416995457573164123786758822041474720373134070285329591973846477025785348747400699509501136262998530115717284001631321738489172281784763106200162272031837579514559928387067754106930799054615065958066646298000132914201433212498918689884538807267059845399694230632406541959518305347394466790068306658342674471665840608724326688455132356541744025509981448237485092144033628972180866289674415257045688178902929581967810391483692454264686168895368886020859811159977082322646367923906683204476748497017611692683497128247092537571431642582255355508592949908340088670582037316577895121679541589861053987097788584910945561599856785983536595068484201894185910637622803956527051829473634145588224818609030098782966823034705134144889133990734709922166698172879025759900304723928116481352549400381311979460815778609393885239419242732867828321905682153461635659636468084507960914515761482851111540259781666515033688861084725845949700644680062923810274551930897908601247439753885905399982823123940829888508727223412426657321619050641733333587581472283730676253823506044022040510156330516208121773179124957941704915526968491081720534025379219483435648411387099778130364932991819666583711570713131671012007132858574676596634760669157712160371651464197777914454643288363927959147407182195754995107169498724679107178872868158866461888533111428369467301587397328646240379193935983455459875347304354875840106920882598104181173704377948851554739386328035179435179271669529941511293283627355975793914252269327871933081557177512896428592297423326574363391670665062382615165783027683850980284694859645440267678578629166705130949178233747745643433332194285881730726196314629725403095596908277940429577900034078606531117831700864357634791251831861684063311042910867142408252713187227447185855188493204773681039546857010105913524455936753212969162656630270970328025184743996543998059543564816276820463820320993591345454121865482632666505586809238101592294248973131136142151910292904335563260609773794982706066502463384679609547764004425383165626034355221360071118391807678897120340961284002183983734412709873570295747248440123448291013633346293656431117724402838210224794301645245762627986190898988299133485510024900061989326475308095654651593008214168433083771446451359101788974899023570876073889757289768015380789906380314336370197580290327490173946291926035860155308842794112001054617300399210333283982884746281443063812390843041734276370723662465551947281861496147494680747606001553273274765814281437076498783529174573643092416578392139259906721869930284551027534350944989805147892234448923092322194338480835506620836701692581263590628787231011674833522619317709906388487719617378051766146788499009751139692278439083851789209502978679817930872719497851129438927751339264133409823556206296200562718423865205169536282902624242778265179730296358035984489290849845483957515034266654569392404230469819009660505057146479785220882958016773850245867786164206412114810604796968906754364999220355998087701891480871394587034367615456589211150033279895423715457137909044905794100947593292069623843613445841414143165288634787426928472158475866926887752231656469457770003553268669927054691898155358577662093854828452274876969529864429919657403295122747985257667343577169036673777027263051648854280091959004391499559340538602680673348351822069183088996516239255530698066477540038469014692253502683075036808007646271988190251765824002052951817088342491225789349967375452269844792065217663134614917103873842475840976079067542246023457256001748524395658321704652743147534549544651234084737452269227061426431130616616674455499325651295312173724729007403933642311252019218733219937009741572824401238389979438608568354055209411862449138763625777545095388207643881908904826317515381215491883988102751097626264927592710316370122288704200463625049162245381955324532914584983781453526724415620966887438358350892449997914670327346358139757965330456914273123177281316883353081889782099988395177406023044778679628669206053877950755891670411737265129019695369648512163727969697011768725480800848200384479613254767800291269574256814069554113963197281889334309686480876914013314928043634044602752369494275339719185268780163892001511916935536233663127226095047147240414535942571258736449568766259969575510237920355459217161750416005985697729057094058925130587085541901347200966319716578909016435690686993210678772573823074450875003830219425588108683700860876119218969466949369176631966581961344612606735529928184920072803691642140371137825263977276257400364160134370678496102092769570991328332227923475377935659992286843011477391901629554066280290224977946502641901310817243505458668924027715895447477566246301742076418632559654268322369734560614234307762600111815034762431912903554748323744500767684183314749218949417577001076736210012668435279004809403406975605955209621065716519763779832137983154433171868406284652765792982681211579482015402110921016662030726047281008047390881034957320668148248485141323073735609651674511989708252799858102677700452928476122160993256679555193506966100298403716518543617957397061273920101801903851185751013444358408925880112807126591972508070844035362998113737665669398044208341592227521208968400016673557983260513627688464972436770367889791319164115263747086608713701788285779243780317235408147457277471339969757035145533586393293542402130960596767129774513250192172678601679779494903162389324321506511771432568623365017654206165998384339063236490566986421461425031828713714162713109573551781339398511603231531984858382142361075983449095651666030012568397057355164864940073919565891782690933127180176862242702231138140452843965218470699026452337569830902498308056987486857431143447324074557889557565608745487828031737278055982886725422791104859373597129338054050967569732955137351276840184289383214472644512083657085238166537842364791565507340091597707969479484771630926074423535531453447555907418385873088587701971141230254119676326136172725611616694329907522774828690720099450995586901860887677289595281329624796411132543216474060337333095399636399233452621304663918911074332900001991733932103315142389603720984555503310730531386049204645484421371372554687201691442914838630112459329826878371146593848742962832869947595053875482361177139202384251675879191079998365616202113677376472356163327254590845397765766376976411298676325844062646272317566966723295864411348955526706584650518216474419211453026095021431859002870939853059962138849822073218836767391189880332340874543051271064077842021829660256429173167539356272011885320038874548825845762390148343299292556633983510975902913361934630457043838962299842343899372205745322259671966539364011981712580093889457579463508927716861768284737771056803584139672463307283271182440917014817974812346981990391334056318797188058898821375036673806292714470298052144698145885815962449618549146512645193060834983155670890031364898485046136519127565269525713014080809248117089576494920861668487142463048748974661415987607680471003033601318963782530702971372792256774152077870500434081274482223551800345288076319920032329283507425019350692493636802078228883616644711057370046815384019264084947116276521383721269332281296944290927911505982160325994991394880458125609037843731838024368518702839259750878316558018435688766828871690995368436943621285098455658016154679449092322887386762033408872455049148643197243914289080586960583902024202346703745483134170168107225481854575842714895301187477030833509089124608273781866791034862296877348522418348228725751557709909654008633467238058924533297599855657292977071064749936584219484584926407413158224768999400925894918584415380043838637612546198489812829090991355843311654484766055970063836739051735882210723303074290321438422753209006080931516373431451443440809545534970487279977253818745701459010645792937551175501403092418819746481895636290405339949240797333964971402161982552724027603237667352080840478739969971781787410940783356916025194170154647840880776223128483164681188081686084218173136820302705616770663916218170896898567700645444535580626997270223461855661386720080900391197131497936683602048159143918851164983024481948773903645475330803966343487066839132965209149495103612056682653238753671733080590449157732864799616496775742812921273573039735095298862440328934542006358960876713823756710149065650765095266188580434905601543961341865574681141382765321112697023673091537176464583675331943513765166225266536376662506306449487749316362857970447911573413528328701151384039067790797011031261807464709389027565713950606965041685453512599536452153212849613845184491406541368038722029757334542963128783634191610959400502689740010705670597698266523354332578104525607669728197292744343597187694987182653264790200526141851196634856232987261532295409350326261599512712214113963894046044029687841704891149238243563041736075868754612712557240953974387925025741452993714590731439529701893732849995066567619265099724918359206179804213612067997054237018881821984742905926229408922185856032928404071156034784497588998970909726645169265643721032862268401681545669056535375550210720239985054943542920311336871456127958085975593937592668018643601934946123832884347357100733195308292398146395639141680033811520532816990079656485903393082682522482855075070082344376524741259105207343288240638967351494026496761008595583499085067676807752839371463292887845772026301731585758126906656779136352121048609418015193576431893482539327010507596126600235828021113972226349713990401353931637933588954424882042795293621236440498688853125019826625344598362291171166224032500276344388599019436981819590697955492680179766335678886801863541848024970343310370241267368753306676777337885408870638475171181337091453863645627632580980178564618880810248634730326801756153328932521214695941485520464768115782367037546539911102585992713018629380143508573531243369797731033629716699909753189648517693178218004429367940826891824676006695317565665570436334869572857536798174853967252414637443437118435722296160490343226966041215520740372554320811861190294168882729431434051984869995278228587164843289028487502889107005223765378276853130844160949223134073212173249346319571563719693672738557443189029377112400841969894999210583119401751889782686961661566294894932247919484573899460521118114393484558454370147808833645525967550611505635305473328745285861989310083914980182277574505604454504265648681361697578490099835184578430141018276829272621209984286075352568686493505760461640026799740973060508343756635717486085907019318971999604947956542525539376849505524911740701042742811555292065539156111000215706192108987336500178234419170459992372756685702614094298071575933134250223530408576040345578548771138909002712596940318505470415835993120959244856791279373609597129312316545154862316367664921185940945775369383158687505098053537400442770129094267447100249895519773267324655181682462942341758771854769623713352214027540003445750085378447379506782633275545345475746181803771475966322271178760703745214997916871897003027594079223502931523858815908319950787930520004834008376817506854345856145971231289170503241504982214929035484565773908245396906652014157555249999816296205863912895639311386623931155881233712232090793684708005067421686709838695530139694363077117241124665800899350951939438230277958042167236674465890452772723556445245250486306000891307650059026748232141779442520711191582344924398017214968049645697131821630510796061990206449636015402219499077183859380099317804323453565392783816830301510662313346864865526238805014563120471369869254655138708772077486141310367690336110780174598725914072475461942318740807059542870649072897561759423460210841965274090304199889446904726151872670767240812828884659772298285666247875509967371085905859524748602127637922651934758564014291199127591346372916641064817050203475292073148154217535753152167740791674238898594319377081832721462554810943188281275498967148087013372892598186924091570785205362503040248654455342603761326597058897564966044025704668738986166445346146406933527975310108728814353727130204865215290658739690747826067357587164681350968613044873650601291397025429667000518357551818798747145368529922375205405795232909877073503299495376110095155577666885417414251208674879560695022687754702148753130959151073057850638033206132119324787483468923441629106731690004323234265022415092606899365756374161372877738169869989816992517217515258515431365877630847211793631323384039538961751308389377309333910678049008360371036137369715370503841702263728927241020893264264383058782908412466992698460907624770777360354634678898346399015067053461930969932005953791911004185594099335934182952272054484828832260674972559069122769541620443511067667024290158398420538832167405342709567593414120044737256055181582733256512661886143152926322990648363367946435447856296635759991685334434492551986833455311189967324533194935455634972364212306278810174711062604555530026718845288494074061765946981303722030570283373897136065856784149497760205499348710382384974348276498001959755097389906291965281206078652246936634725417238347396944581876415452883083940364772887576114800591158678608035024019350389943087820051529191079650237772092439632307319598880890408081609974038745220542595189437616308307782117698058349784908862419063267366150532617215920315757166831273496828335615107205937267808356576403426426796194206416280649647886214440034294694422162211603199645653761956022918095441269736521128259727564307061113768952649896264025561739019546610500003509798982809661625205094134040601085878066238025693099651849013455569730433007581726160039741382655942445066258823071627106184993013429811469036972918648754277938831984981676625699027018448427239499325315604672513557780678274424363016647133409965038432078932691509055742278290972408788650306689707612673683968530949766861851605192955327470684927137247598485150922033263898887931972931752198562810487792619065963470144328068829241587592855989647338432458417266517465086590803574812436368198853809016610118763805162893865900765256073782306626322377109982681004551616177293229759098887211125165117992149511342053716357520580082580442672000817652760008728191194239858924509831661841848830552959315509769679947660157649847631453088879726889752890542028813621837403079579223620150547377440740262023966504930999960328894679876766862038859273566419892448273495510087871240716946201586911772722877311393377676244401744169806143045628679243279782502064560818350853155753311667410454216703232195307123137443929403232165298997866008960812514393937016020118389950360067187013567686017663210201746605037811003908317735542349310924701804115746581393001561285344071355536705443743891647696321433208993943957342641349796174227101408124319828694424747774835642692511899865847037572291189346928085438808273910749710468585478764434709170433675425891668026841446769163895577490095525268943213894345850278970638932415177707728168194219910388412781144053889817245819170290285635986683500910537156645179674659506736139497303178328756582633298263006463008252951380201932803085825014531980790628491759133229936193353081070754531654306066544573698247251319904903723572752482727931729218033992095325449110748573759511476939630211325942461614644095482241043516456819967741756589614509548401162598555494027101253998456796422512384701472810103827788810404696226125368638237887844520886462751124781919223296534140741163695972638714357600803402084988863226755350656049455725885712818768601074419478337163948233649743687193550339638469638054326082912980470435426142051653902024047962834210676778562440761131670461407301057219914731391778735312190615623584042520922355772426023419773458510150929304101531468010851900355774164952130847686338316543009187888971551778686433147571334183446873904281316008283870281086591079796387826700775545832371363754198802375836577690950799657294767936771821212308588186625026977495846105573828290732948840508066712386064571734050895560232834467321094885939348641278441288845450423537989052480295218196473970519842177516429254472243897060314859784900352037081260629657830651329832077682379695388466068183921620257485516202041608938882996489000772627120504795597145974703480212777631503514600610729918340398407843545971213645834777726421497280501411991300928415811434130253768860394824189055067032918090348917627255285521270014346377990771305027593265099497539051513291053671001039027908894003353914823712247913349772176368123442463359010956218744521020706308216705948660468399326102410706776442779475070683364723650667299447689398587050766350305343358539068311615852018710977415102789207589740593234970248924009698337048476326427711403177772474720386549188709336531572409884006030813987083908969580080600658976436687201745950984814187772508400868079642697685027589408170313069701412813196628193780109970420594876300366779148225657229666175818820456476268449655610782220925593613981103811495615794770190666188601389917592379698654446222482567909146363206804492297239182754601145874694750958874041257428109700545158529969537212414665856787947952965396508233619519446524256049024852124861111701673078646253549363593266935697205310130202000211715460626059064966947064596859281411219425644739184036529839465245548581498321927345448384708038254923457785121996445442204931997427206836973206216998903251907247137805463801622554650441742812888001355164408796294297623501100491332525305214449909020574960339478979717477034955700893860904567447474103825069978415163230801190823358471884592789296130572319955692736087937671411535845060429773256810599774040889140349591943103275528346922519466132244463889826895313043141075480262609735682572069505654903104980995583970130718556274377599028061220151961201350482336959107356928635027312093082051464746932478914513765064692910987020660150635243075989530762866112922451107590527953846517751761565202071296661193999062906938739253667831193422183513146041355374181432746978423102735278893130291716229637701089981331243564186871193806026684474042376194066678586764278149686579576359070582645968282243124269937155292891594040976418027860028270448354662156776779959059943326136572862513415608694227318264296477150709293114524907646654327853598591637678687366615469036794398995451999451395028513286733094578895709596243481665708058167462143152944639566455526530707048737697206738200949589787905699868621993151712370220540338316743724074731746278881203055250741139517883621518191687767342469594544053536627713390018054274612698945204916911841272231113966006316530580880214346350481659922108901962614517124918076432256027070523864863442373576489382430580886324639879237803393099920070959989692579699914178600893656894961997155044608800590770560593313410349357654119873318875479947102985782828193291181540592556090430056007395795342908901209688520818070540745049324721480272340757649438479522703524763360725387512766512983723620437168200494343894456018144428237414590467004118781636663763292884345027183787443891803364481247390338187258261644214024277364770199246490304455273875208678750735152828613835252495381386991839982587973515730948365583827548516249952393010144661705122063836122849320241838888988548015901022312989309655534656715226684289186377791217897356131057800378419203513881325170236815093083254644903120556494531057157937995747609043364957926063771649111080817850881231794480588943782468418472602355324260286922547059707560721987609512685855296550279848347054090904220093036520187022309358131451617868878351628225199280877785699694501837684850348931961980794364437020998458236073811921749185557679341615606718228409446387800245052301895593702784752598466774189322837677071855883327397830956519793066147786635478132699814465795663804116590817746257485154839239129458532300212285929751639434796322970302066303982317442010999810206265932317101483214119064923399995496173003976765007956452121012132793635971130193136725123056686700825456041649903638985283396453410521418266548226743350446386864215326670058215365863717879337936504601645508148804348533304587931414896561793313335967628350917280165419421846192156516425611545943093871389537272074034507207393819418298991776373534627357654350629952044555398335657233936392711226509016122486026399777063345078363470989758181065340004625238036864855659852133816392216680699723614145226891547433349282804071388206658875343431568179167599254980293051427891332301535595985329709244003312302260776878808567175680223118485923146570273724504458109001882335540777463273098886818641564941568625735380750204052959152102059258804382187425715021505092764436010092845253257554868888090135624064043946263571890109113645516784111089159558112913829475496681741293502317947751185261891329574949928739260723533683187267108227699945303751565553777197270779622013377017460593549985301674988945537216048251772180666079531193185461705130264015243817514608921066407756611555188567954023879787678388356085809587415792818247839443278776339760940701766735791483960471557697096475260175633865147248348700150730858161183028914855624527022209657472840692929060067018744863536612143310669910387148391917278372549956480547368779324009252906439930628571363414470662443524907207789133343651709359469609107464068681421486836154380971843910817163108282368106012222318201389779548910713493747638430123179467214579174680168227348430159590772459255017715170100999175151036869157108220407031532857732323124316329358469010030003686383220387646760813145230053338795955688785931697670505702287820682317865193325409300215121778221644630774371020320460144234365191477585084466962483248250068133953476930411342251968831031825228502288429068526368576337331874305431054908271028600180977061277469733953099005087212872040416870403765601581388735412920729175977092469938941613646998085735364293970169871430963939441354576154065765815714401630188987892600587479140647952435057920770086565496320489736033900579002989909148315034259411022671205732056213553687487404614946858650660167004885022785858000081136435671191730276989835770856520687459876379539548877315363476634561688587170156125331218098761297673456353227860845384298784454510845358427563156109535663424022142234895552673633732480393436528885504138227118884707137002234644030735504019588234029137035742216610422201202630211535631765861026427160881510632781316839982385996606746109276202164197314273765602158372908083241927386028207940457800829408128939677657492270905724995763069215736928700629593217248180651132954240149669327909100794157977528675514360004929369871628606903699835039878213537764715392907550383839279238938453368338429885612720322940441751930833881686492106478951114060528055529716899522611684565847719975231333691621518910914289830850023476790010463108353437376867264135640717740387085138096609891378457988980106003994686005850095611841789952100486829572579088415818175609604726494044573711108151491135572127461683326619710829198520206258556987123104275818236902547978445974237561269793867875160721535429960596499528112739988946306134719142003277377882973307003664610419149088582927276270245600623132985377607686956410179955322647850840328289820520471388054058244800834078191139650803420292197643019114588924299670839696388649649260970435931622045963992847667027982173080210774310363117276321301961340483179839209851109542053013795627868731409012151032896878063384571332178160306326675981388573711842829811626883617003216312765917563885716935004638152380227816981677715384606680446965586962928226785918712686265203319039131619671502444402486602461795297305922715288727934054426034248272022035544938685225202399468562022732491063315834279066105678577940621225615486027285418328707175466971585576633337833957970116809884219107334563481157509157945937999633946146787659078509711339924776005014143743372675664596447679378716724404617277509391158784156294547854479486798615728107466022374642611852964446664285257791660498477757028261043965994154163595755721904985125692086062026773355688670537989008365105465893773883918221159481435939659864622421679246260943241089261555833306420302288322177355630170606796771535383366558810424827934943111946825749947088043410603355249802846901433162627733328285582128158859297968883715455997172806847423178847497925952702008300711120841266550285411658509329543900625275365711525425648582466305524195396149197221681956769625676885584148245181636684267178240764096845229853474390268494889835048147957336154778068118386874452941065477630260099616016916534799778843018319140450240795758925765714906765793448891322475209187120544024278699781028324481542311236313077537294575731570048704622465933262375911856103814694313945613739489244078522035908352743399618286832429561330152947518934258973403520481313770886665020760804587133535209790161212150018703110328611560293459418025687328413662757703546334830186444245667144378142099364446846258286857990492143436300026263381814078465704063398787013213829496296416239391362138296057468526482383058717329347603079905798116778476080195095646900103969789484628388147263008653007128954145227398945768894379608477509614809617896358150764711759324759588871042267268838508029089848508296889544164699498641686924016113278667572924422130910492363774597113715936566791477351565385479584337779728164223891675231543470397246110068453465576007666320510234242450686420627050113231475507961180368006800430017797819067263162974835445098585011655658574352935382909714365316640717844351093757265309157387639425496460828601014744595045967255191432160736043900763708607202068107300560867231568438271979325794401773587746041284311317455109494903013149425651697456495451497765517844351657186333610979440659700392725372601320486867368894663121250514409295171281252469486881439424328996408700948660948657920585604959732270138007552779628157293810882129443647944522587770302211430654016370861201319276539420525313752048724564113578568759687685306676207424584134509390841780778212289253341676649938564219163818814004443263827829987200615476820412420655423004067813540998261056357839897212176935799975113759760915081440136402308824452952385800000541509838315208041661551689037320843916247147560212387930048504175604417130389259456322189911870184246120782808283292750901814037421907950298735435128189888068652243123169832070740894215418551262959580721200919248330336775329072220536783002618335788769007960825019825327548003967352886184666067409904178213139878024633298765133134290205318494271860412356145032609612663234074479662237086495830774487865065459012698730112294750458212454672812027903861822549222626330567444641308713121430018038964078857297635540212720194824869189263729979241336484752048370104825796545665207053143798045676130108076586419279709154340330214749751409131749216862107499637178197786997997214798333150550898116245322425127765632964664214100915305316565506972285305726723353367698246562492964337044261354690434064731261003153260994625896676531803340141203993729958697535245898002046781767628843620663948193526060326162380264536266451027065904093623630992355414032013836810294575828451132835465843051117938924092130476180884001756507489393571579424129288103022945610551677703571058957290446164366556634029411022240065867087170707370612321020057293390604089291123762598567157156832173521280866987889086682367718896215624418086002225825993923918319792445911400578209148713953141175543158825063589653680396083963265504675224191436865738581489615326180033499856665522667636218058330015191980959934572066657752332409730274516142442438645610445169907279076140264585294371452348859728086982513046090682352437436769033658919009707962847574372200756415918158301836922601877692166011218160436800552319731076012921803658972504184998065986548153773834832412665302066993139398150655600348032272281522255215219422381336758958153976343588657486706221423417236890170221977840398474920545409459636340246453943698567470391559696920165507126510673483384648846009449898858560742346937575272047986063391146589571073284444000880542525413891371739542179625520708589072376753823453746719419150618877435506021418730763229081953501296893103864309220209968367325963037903777295823195536714324646489462113668755376304030126545766921906911714211744960635492545207135028130922063182131115186512837262574027433951954258282970507576619197622931861684749232971795034152264914176311969293712187053781871957675711606813923932938753833846237233207915138414149809371320626131397694363244789976660189891082982631851555663077557068145427529084437482030849381716041249023723263384919873529523698434576890623786796198763602045246061709847690374791437830699935776126097431775395209442305633657983266789845856749646589857365456726266100437558473071301494963745212243050341921341995753682723471382488514560206937076808973407401909382034183466866971231035932080586658289927723876741779638885749103371389730816044892221897917223941041146907560134783977280175841191291605620490802289072953947213265008029979336723448592900012294490616441151255140123659861734912370595078809791930850926360556322723202551677298700414139551225601004790515606291370917165409569231900262970009018208980212809978537689775262648658747663042122084061460060718478642081736177211707757460611174712273497775696307760728335397266310733778382782772714980821387615432702388744936395377208261294733480089307202609529256202287679109982001159427475284711212000950282922491464331052727714296252072820528249821854429222451640913034182516653356341718744104270681638755679023492529768190992742156402774091338283898148890789969533175707147495822789922129224995310879748295278425756474779745636631161096365896948531919103088724454809666526980911558772437955801043654558424512192785266838132931192353682895907771097563189588033850025541789099695708010909508396593717983740144533616184664709185145688826788072858157402169680529004852427306246179726385221675081657226745719055868432508310842337556430619591355987577411756740810759287128352504850631242987351854365676743628579001914973182149639277051178848454464255960012245795057731329513285313911821651674843559855539840675306396641919764855637475573018148034384658812285552240458105654715058657185875468015945754479547591172525952932219214731704217008225738634192388045474255718718669477282818385584967486266339962529394693646803136004050414662975930085258498181959487472368029541621322247663589631186291955569707986227041195847748787421559998359644660583516835524905637300417484338798149130037446417971338035206462646191255643268677833253219372193028479739116725387143297058150413860660722075918092799924829036674612815930376591841529898952897285181453303098113431026371036860182046746041294372114940498126051269818946886828577500957263218659325528672572047964230886251550691305101390344992833861900240042998597729035079839754330648213519304835140469339796290134685939746858318796578823858254870427094843768425970949463809367061684000117546939435944086923296501740900395352345880419701865158710983417561118442463673853435793118149546667051619496505967056194647276481365046785886538769510945315417784277372383904283962053085529770822371165972651020223091905717531334969562659175774497235630260506890924554273141987023052388221878883722671765366308042562707677555975959296338781333430894216749216007576379180883058823216937096768518119048469759717372854462026987385029364726948559871911033308558065189051071712828732745373780174141825256278024571639561578170229212337672116498403983581679533936711347932010441674331936486134576717969648335865134562508785736242863501010230399941718458989296777412903719170683339247686243360916255561422670047915026950028645637766358356387950549009822917671257433746510486185848277349886260247076269893750250739291342160324719212053261404222907667011010147221962455691943753578241950927994328820892164666672735080278308857991182844620246747502904585066022850267196126825495078760145029957126095376807985577985019315881160147374835026722073267049388924523517736326596363294993082611259835011547460117927029435061349024749929117131991585310678217388929443823233131722315726535581162275955368784932663131026091837420434922628387734639092785693940142909281072727746733503072909900781580184105412004491904031331487089253758626112939785776446936105798126246476407844129639015014152102666657146522958973233202209664129399617756047925601029358532736027167362268234633739635256983928658547292922001945511853991051906965241846659109484842223985823982728015088931595713339253994242623366157387311321798301073720350463259046105620681123628383874573601259175082254248925072238255704648543474021527243357216074292644757356065727652040845025499131624859659515649173178195039338834957057173881664129286611788817864448573175987068473217583119659087676698728463360099399418008524005622859292030736577421079198796698782127263004787740332330724802809471925323550879140955548417347643447157850787863028405836701424990815144115856726870990147888949424601284377325757650722263860488880630433524572345360542550281074044407709800295919802351192066242040564132363378884365902177303201655688346043414388910872867372027927390200364973236184203374000159490095305172056977515145984148801302083617973128153503209768934191227154463018419414573925811891058277739310722923063438504472502972539093212220403232785610594045635244990040569330830259385293265625137243258084218598508486222339513868318753409247704525756116969469865302290970220144716656326559039933805727645420183428387407768018373847273592886432005628973230961536331982269452560013929393469080891654326899282294570146108919193264346601962946738505399520730960405622144526037317275626240908057120334988359639719581310448233259010206058580355679595575640033118182323247782888510864143678603133134803990107609301393990227751466618042336304384256727068333485652227057132106286534494815172949500224837223446377903580128891794062802139607873729358254168326828411263353758473115132851729419416691391403009594611729953793910467847162150598172945931878779949094257581045109563465145835168368602816311585660282534979472681253071145904612197025046194091052553810112513900084554436463396110522773325879498842254736029665057405564606033675820810593703745972229835659449087822053485553442529899193550519548646503594691252672993510738131425197411323494285867774765199967045455509839873380270952298163217001365839084791866049601026733583240644271729339532266018444672058471800014665965164973843515129497436770380789155392189981426311188451982813966651862718146217792265968786570467877919194313845818715884134168996198615653692303781324503877610810385729491585836087594068702513557801563973721813095325610960418477350539828117502387664967069148692154632062845120031535072138330514627723905176075918109697813217025396042899361254628951930474473855523567066180510958417410847814996068411558147383875673342124013879529794569524365579979678068949028531133842842648482428118901509704632347089571524661932719239893380369764408966119682461285112080479262102841991701366576717730501653609849096145790416620931634604936137109405836077506756394681297766322443102363731306235873705607593779555647025808526994917197556795637942642162690138693622241928132552568744571357868633160252897758546081144136233813229928702411767462622445292905421990390659236808497351490089112022390739798860704084450063183786544031811289987670380228300920924769735100053139619192321007223873040050466013702174741191887627853217596563171633005880302949545214545364773980320523423641821086807765889228352694458652117416151002826797897583359999029388137773791607257215833858810769986921646714063313744968702412839427657970920138840527889478721948006149820837088614100350013334265243084832651087342183249209027011024608923075893099025375116155866545020933013260782410597441320111654441126386410438184113367541785314530559964552598877410347763047017526746677908446657798226319566655010913622099287040757771978136021057568533132893507775298596125919688624259143425472455496370086954206254812010014112234398028416095643528539156521467781767594574302815019841345581906435255663742519898265647391751982383623625184325698607254646088830083166182437833641055069702512485825854698843893041676515534378871550942236974877420085945278169511125106898935717793385447340742343432629972218703525532851537333961944724791858519399499118850812321265614015535105764217189786990484308110653792459605460492879726581978924908247786680347935489978611698069635082363092999622636201925800335016476450470504352561528393107367887385308582321183195275491997583431773092614502052850536981374574702408983062518799074484646672570747032598404373373848551981142400118736671809755100116053212755404233675576765078813809207497284878827871939035045652717755355270034542895734154876585398036197409455572070182889435222408290920154078534538974193304103604605704619710952456839550972692048540810818913100099125810131292723693915426722910321576346642891452798949628396696267450598882991303837266417191719475514971004813033387832819619702482401437571997053056956917074939540085482923562726200793367590234030962129803667392213052772666350295302345788104416722593545659418041903864111112144298126959038976543596876906809808053163309756766640270262995851819862573764923496569395797930939341093855990569402060623747287338466368087755745262271278483355859620860986281361759770775881379235344795519784453501659493289382033236105075379358652384966075087399609654873552741911756513696303906180448408376627637116514468727858525066053596422867294452146908961849842415487219125386987931639440039595491736398327543904304234723144167338031183305823794129834709396652537024287730361994624416563904355139714028336710035356882254220763024565729596006580227804254122972683803169062604862855334620172575043821970326171419309420881946285288035333309176582115122984097673867920933758992006897778756626991820942004626294749716539858770113615624682728669567544802319574873645550259965119888087666298972659305564390976195362119986285857661761073000376228189230296159148587775144806350468528007208104810182446634439928370955086131419011257562689558194003774242021771246904435041582708818540136901818855796807024364396633581476939734895309557417346182687576863465576254890904836193750150084054100713913485222557847402741681796243686834151017968233671593217381845421993381587176085724103987313857543464130568338293865708667374566984724999406465831925102300877264814693597968328835627134977242976424756992932423972006523472294983873893539453871975649435242042000046575011236669639788533529335412272228697263954189823095259569550636215286807948477074330253753499586715893359335245640720519877797439944172881258641695572410766315537761275644564430282022362172357547933547192425099444294375009555367992151777435100388987383408225475900686344027075698310206180044016402115163961325293681823626610829730357779558998735035301521858347357498296450963932705744525456712934580610282748273760506330572201368437989627261335228976818570515144161019874184522897160624792714366448877647300763840274552917855013855889074508620467594902444808987534275566630915514544886269704808909370920521935528840145397360918155498757168552057648070418298140428522361863822563495367775732308487927365193418531771423304548056954400685607438775409229208607882215638046398861637666740788325073873489977637226194733789824455968039914713512105623545885026301418710675112147018629864288931178397002783582628581893612449583255722947826536144733614120459339481583091297628196042078591917213953694326474478240380876645760695267748497837474231057830702861273304345637355337699125480322700442866143494996712917575693742306827497764522422545133023920736211569108529764932200358094442684208861483498308872946277882488855499243953051357479943093682508844486114295689231754416451221783174511035712033358630615677946046371910678911596360011004003479089740252558721528973244601228722297975601899033215878528698553307680593298543628665422140940608456421727919694196016891447088127238381573707084199386367187098556889378141095008872265882606663633140955548867963538161084863273346270802723377838434580557591124053728678356486351841297193520190779837461733569722782197243020670406723348049407315074810950688651139491241824494974672895416782196482418569031108817411080501289493638626275178786576561380739531394566692785347205237862352935165400999241010337865908829516388507306485549604451332127988554209667637054829686929875475227722522061921458271976357756655786656024542174091880383111330206091255957795246557500837043451042199864586392783587401049746702275368155586396291612048200820917027084416412274776813392167087268912686136564606315412179876456024389882791716810582681261951971895440667174035387028454102494457733700288012790660624597459885486735664037429113718503219848217705561883579574577483144471764355317842801182419977685672799461041338476196850137978361381290050688288999415916948320585722420520673890432704505406959439547566792254523588409961157547266688080702791294117362994515175710246210806253642994237315677833399925235726441143099969960563984182360691687520450722914183539988283346163098113433515894831700542682179692055908812910000546953966966333198525903817569441035977638049423508001659691779342678884975476036261004563649383890603336079913505456647980572668432769732699646965506636197008188902786143981910137184001122879582806934158986798561357197581427428716962812199547840161962792169707818042906667762262465342585003615590392416990551698924830427839633730311954717503700258891979674942712256893782477083446756416856878314689819566541316145184542604991841651994355624267965498380895646932121066378909096519559145650345203023686125841499170512592945343737822343473768917152518258698767574782980357751864898371769968540640599106173737643763115251959104447928761593142693382303187101646067532114949265307356086622020159426875564544857461374985614247598662591106613697690331047716379463393342847354531066383668419362431620260665134810826933798051145032334835712141565671884199469371143699287141407920150331443684197015721788460391216839516224667427626310452008276145536651237229323049963167582978576815795383089478683121795215787739351149327066115427789041154979326932481595035869045813550944706534664991183925869994595667308052948671601755803036953367943187656907981790318062714547549215685927459652096494391526132353117954539159780924417841100872706054029327043522929169385632734845513442240497363520264435256600833287462663410004775604089080935877397559566901609009310862651571626664599276177835985576333981227043130886837367850933733874523393286542692118174644247217570461611392119887007270253019173693062733626876325794891120153906008558762518680378410985349469751377104029066808548484418580088806972241986965290433659101824459541423064039622105754410797797944931655926532678180379031755167483180635633828343456576536335907204074330592471893791421220172798250342152941586558107310772901278020124730722717435923762059048959434239566090389089316485142405875714115259084906869390089072745141896906443507959637710498613045361521423009421349935418952576038270025248969710843140601336110147319887979037599250957661834070056352418459469747674421435270675498597402581741849968119540792576340175494506849113750812995514548267905788864206647719291857074606164653111503825867697396290248189620408402328393089686166612704047346072506027912895574772415652385905400120850006786092397077558596214775378019741991136874316557679574403908931777004988941719657318450196817832237325941855452607110271948124350924051601036434967676718544063099487554292690191081092763165393577665753758933346982905932091761481773847121773106916886916462611812564801261441305167719330874398195633225947938417931880457980399416670859071186891200160977240750986595779470191776284436471702782958678488355519777290029232088973351548147041341417126233483519186225243723384895689809782305418303527086991774357775843041291125390249876867274195983108661128399202538893564298635678260243374709602019511509030843945131479340558759780235586821165072647774141446577257317898602867531020498207147522572756661608023830214133382466872539536795695278466281161795827181886898902612133436173726356935852451980480569441635989035893190968411805792382648833228114839447852951278375784878596595162016036534752383519303157152637436656000397499424322892784684538661888828026350461173186904178363819842944582285087910469998385117352124609552356595748701342274944273667845086656705210617544619279869709026121333065799044220517347827352418232211026105657497202727745338652069040354709218018891261375171107196610866176602808420655070689822566230447933082735823455133541553753619993771424074293994618986333888224784413387387017915335088118580895577055119568170229867979925747759668769941943262817280305870030692087909420544832994415099272038291400088203719977366199769222324978741896687406212864267792985367821380801295229814693863094695721605245408523080711988871482677918802088405042390600438308349716196716845651198486364403467421616250499480615686186560162919123421156463285170333915233204521431869248854116318434426599228530019983467387805850667837819173248790964261391664031856392273594398531503969605093532009008196320011106407156530817383556215104973978053822976036091441524817902716075675805260392367316332457670476737056029620969202317906257414877521458760471073009178302186243012463164621562029442091695842514765480663541594003121478779710718715667760598592498432039550229654650067384731329554685715975544053738270072553981489323691084599038232935632787834793052798637778966420507781614796780835645598981115347703243400352389930152548131496760014588888805620344885349934405034064341769984333446247967735469603067377628331164411634925307769780289514446612279423918218712482347386937084372952000603881977564630736713841111231665129978515286165472792991763447245934297940535223198859164432683495303963667430569991070868256942762050481423938306102421771482668083594091792566774710697982671754621624230363020653727898236745365619871633712198524600888640975273236633252183409981608995586663313006009912360396792207949488587541967766692591488988833338064205618368393053897227299797546403979409580405356636668080101258122127148239305715138420904676366386485273053949591959074684539992393304842357641618919083078189626505205123252596261280183004760774972876044122871452270888465406315367385973929392251689420467052154743248880166188289509296585424491507023278210654317701173784411715396378110609730561977512717444480553875087502246519254893653459537306992998794991596920102822669904084630791747020236866649700527770446527572014596599769192545927027594836201356484386870537228168970776764363730383922848991533408089962371611450940832980402263212201362494340352066427404422504508020344753599795177254690765626595819017630055522195624548078698071595155693879842882788111475720275251575245750032282886760449471253329736652996673472533577566711682383742287560001060025038368288295504712784402497416630401425875337879246984189563099858616091257835211017541268171309075309331028700947085106029884111211917914668970345767786579728353079567560203562162736620961257835618051856920456838301988746784455880532751475577754382470438995323458864077987320804001700028865566411891388732589814955206215875541161630560815147723710455204817679849319129473585660481643277858742084167534404388107120323745794662745827296782719604431915059831564237498206973148993372675616767963381077332282781370891352478376428030051058105712212755973040359454499495412673841873279661750382218436460449473566396123413537671134146259279350415112730716129713313045027117178034214369801477937464326012167493875864492253917098893311925481722703525776248521206495629715727002233305242478077929202170764220967955546429502965615223315793959773990714268141488881887345184530886867615383694565542244750096426675840765352955091455426723450873261468226567384370446981458624777729536753446321202968617177044201548634391720524608893402780018765050568721712694207002774154705089812336874998737506958425169494730437696465134355528264544884435057367433260360915359295918610927926579266942459990710631250539665262964841922326187666813332530413052328514008439882517420411138787469192342237584435370478535530424201994701655137729361593025834300868767104459032115849115248934581945803839436714385521024714961509098780427410202337463539082899815266019193171240646593191418680478728109988951474798611926535946842254411032921808115763715076243899148487536965642202390006792088759123949030076903330984737103650282213716033333151768827631264285691015039581201708059468033056406014381591673651339129102434222837313221675999640818796781990029564134835943185143744736949251463809637640024059839336066671354967971872582175694826241583119503793076391915533147807236305059011691655454616464886490002166729843779149825624260988635351814408984121225338963476152991578515216017905715285754684109920452679009242862570206534328545056002764868227968121790942842365421533996965093287119425618053631392001545484914206670336327860724053898112802755150693844052896945906717352245565954186199084162376468932786033811883991207955304752522702909182724036004404003547593834793909098775072353751861681319252096271089688261531650703848571135494385865523179537344848289763726731229966504093588345717164206613275115364361139858444192543633190708283881429153182998081588122088540658313810626000687276640473658297447303131854915594497262472771520308114513870068587775961957803880282300882577550556923520174278723912842165769149974965715384024347921188120053019345746661216904045296448931548613788182674442606108933657334490887904666540627016187246915080206348654230385821094798344686946280558316480145480141477841255031440714621872397505110843453180566524858573169622608659475018760055466383982608387158242015978969494915325998220728624350829630545799786141744472270386642564128510239176014405641808404948961828876914977381679344487157211995153882053702265017400236013874496076077635508255673249063856147715033001757953702586524614664346871913900624406457543837618014885537733273729780936713190299661652751481396764183055398108339945730603029199068705239291523047589810081379771350504262755779016279942043847686024079193036897202316799316509314579804355513753018354468678935373865429695071552234232679747776999298143640669680171918461018418096415374624714220547892057965222007472713995207916293668777994926515535570863125591438541876209155766059033642488410256040064351774423159124646864365698232928073478779985330866714876155168994227791326861925580270217000070376537305842452670499838252872354199832423441256161278035183755257948518213135241630241644975342449947769384416637547670291127263851350327772221111826707250242908557665026228927035285468240558855770875478903863205035776685445930636940702747283909929482007177515823073412827494050619274585025320812854791247652155936196604505850584824014453670746565179785950854723254105765658376779911281177266184017116676591407997459789751628512766854942806671044703397325457715537988297322984368636617405650372839012250768868281874807797074432786984470529431748692459782745529949560667552250710652018722552005004803307959602109428104870518169177396803200113963183521925524363963050988357038908265433136167214449866256437389030107666047808898028352522928159730803092153887466795626585323559304684917156682423193227376922627904120761159965594103123187134315271319631894351865021337569358615236730877484921257180606008016228184989736799932767186153884194451518825967988386795075799780738079638294053186176549197287494825429691810554739058178730234692474995267756433887511435464384081218646680594578093855459886747922988867330339009071058238393672416866903492205166290265713226789147888445649116535317649072011618819001080792398311587361966953297833595745785118594637467145753405195988576594891495261492167691547992085736930930723871756203233921771631417344861442938287136406137230442549546227424749937745292541098221003964081858263736818630460131795895262357614925832886510263482365884605935183474213464079116474104541530296608221595533896059557630116361015334538917090471314508699167855616534168385125764517009156828978762472679729744204419254137351058023848994676124139673924342198226317924553971246009423516192134146591143578727234999820341149407901466414302868758189769556742335930486484242007006517342253679114760437724013939830924521776048161110208504262822994332032245797011311512389509619470668387285711072456684832356245710444207927188305448464753865496308829568142674402734823788538362069594459519387439489219708763151913363265997117056350250648702952546436419754096674969087127019815447992294239122238957678474413045785915582898519425271869229969429538854770010380732195239317274675138680322043429030659151023345958284639918428259383035361994039266844389372682611603031751963904573593878878368698933382762576454023539298842712166551726370870089141687626129059191683348945879162167340744935086858841990318349850700049534477355051475176411615482949699311152852282031805311009565835089190810901305038195692656245901381920412437904242212024205905347014124658217640704072190501744431664689544671283251184832809515897868945298810108036638891006071685816586262568833277268671187333031042531387638604826130011223849133333352996540099944491071363365976816175190674561540131642796861160583844795747924455179382449025249012433672650542310737236725467997172808861397248888505158865249527351090612368510701849281362617693415451224050757759813772107674692810147487710145203273764701143878669043844977809852186287324594008485040023091178341594138875537049233771069717282910467026120999064972688694446406439755299864693576819976828030241945969702141685869514809016535566180873147237899952931903431159018651850015139207082524422251837275089121545954018985975482032133752868484583697086500807019385749697361001737549008109197396064234091550952422773066612380938310901481687453561212443582547818150450850271143601191805667194758317264251948830040184134868404300330489209737988409245270427598501104484666021920285867368870274038571444610499507692640097649491132134320397016050962722693630053458901762821891171335890344242735504229825225449005675317078945715022259930940812446460557988356959306717182956724246130728406323586051564333080576053779277941881055146858811553862506944042552444446277025276439492292124725785800524586702470633487805076934830864968924567119236156027972640372435659830313322621677233998470121813421305052507760056833106728179305178676412737310875133673899563241399513654091593776507980052530729711742228283910755462532156463389340206391056309414907092252555816782791119869893544150635300089410457480028678158028619517194846455393305383490630380124354887117622801676488935502265659945026876947766703984879714397769747065849316444142597533031545128740843860537637956587921687346964276832525426696687913948205428785203344357099279642733489338366264949746173505526427553268965373104330475895636571471366770897071346092049636492341040322048961439327816762523974910306948082502799689582535648430984793400100672366106605650776757608566775222634582552284599672729849043792422232387243656762940858842011507740426118935242168795268952706973201603564330158957636355849964682028257581197932307973068118454953334884635326141371112391597731360821367865978128014581909850053783616071582984136755574840987058195118241331454067303295815776300078575246144089587693572915785659392472312293395991542083493446007317357853159758037960909890801727414530258584840301700599109236101915465290659810652222240517082250696458725368077511633727513232730667121676525913797648751698858737820558052473240826252917004211687872817945314697570129213320840977610524066541478003995682541471839589083426085058180456879415900145964479698549488106571717746714861623684963923223368509818900695809722902635465405687444905606415624560739125870486580332630202110483531566955190172684771745076722917233462699256531987696165868218930981331218426796841948328775069013252791190613204474722041929962336971263421981689792837028619440300572198711852743471790735148153553436717832464196673642073615942885210669688327780697667188285201640459960820563776361448129314892965164370991711684687277254505424201595215105150417576285283445960944361986346494459114971979387899310389616083530780729100269552361237036892251101751492960796696354172181426808258731590307789120128704723528701300400873451544194023582122388904978388853215051578131930386924443741297690748636287663051652829971888129240700681093558546483829344371924802242953019483319109223494947249146202319540141812662951162738181744910972838422030025797608607162766622206964260547869387113669331332021481120249268546803193230748553161393211304723342612783290470467746046940611694361591186562193788954926209757671242012890511980655003203414990216804553796727052671720645471283833398607288858915322490851559075903491468720831935712240194717298151342117601605862732751053186310613414064775975932966899346027393404956457532200531148439597001949596966885421864486555344366358534181592139059982959726324813621395512363401794782858139051622206702509030370265289884409647412655075899278228298147843561431587037998722694590018351954997260840076120972261417507211033064489251283148624745051838497429965359480055409004879404198744107172661121315051525985567856304794153122419950966014010850615765378971607771927152532038593961348532705013778811798110403224269667358231637053729340614338231336477417289066761204349671442506460545104145376128895681002176719597001422865356107766556777996715450991200249966418331289273971897402679906531373925336530480716326455406675922651538246762412528014152208350786638814485571931719363905150103948433477002216478048607462618115633159195961579454156824180133442553312008615919247358110240229936407611448291900912672467887921332449817312054727990398658703899900913610154750464602319490512744332272156695603991148222268163616679948927768568842700653725753060932404744798058506331984988650167311285319917319986336479050398256042298852700483542930908318983058113192716693110386682226836296651113879073946847736515297074769902681799987795312018547738152907648467720919616038929294811451867035466768599885927053297083907999633493425764108029176194042512697756014209787961200517827338452109603108031891117423296703151872614458487522003832195543174898818449345592228277909468211157905614475561189126503939796870430165055418535839022129251503544369146121665544506260307654889215205219554091207582029580532693512323352126210631791169941467951188333072609479339129944827362240502683520740098152946328155562725740236990013196053889381008498390962004196531177984863189667909724872085091438897231165043035183184593306898629987689893996769996051503328800628302489406756706784531839086014337574419661372811946303692382693559063358859709637758801581747636281700023554245384243253711310917944516238004812194048968222494399695011543824800728106813416066062479122615012232554231543033252631701345067437530348164527851092384001912286573487237463267570674960043164618355994623781716216437259466330530113969095251162535821829834649656614590294784501506738910737711249549899377645847549515322615613231972152477623975596967688419712820310554846341939123906393222422150079190750699070079874039014049137312326284590216120171059954470423201134398849427694567094862790536357278695722645923993706552039497436652819712967210604089685112449274107595236997961753750998558199866635772557749512638870215559979025232988841598349281278484223421479825462308239683627000127675647422402660613183570914189183082251366221176687415805991120316113887515450479471515412522052299226924273820387283688146471658815632105827877362192221875781993374076152978831758356851594959422908538311447481633589327159298192533055723279233921183484229463459661126489787828479756116526627602453741790398215692454425703831367301844625063716317564093303891854927758127921185495004370379349940330631055828310412247940676037751375681620733335000245985159301978206396864573328836725114872664683261494137321511074197107836668887157727909634125684464738480997491685812219348974185091937492098947503171421717863606570397506916481646381724420747665887530671260856829906920389936038194529312405182062336281550208636320167148564695351343972662713322311090483798342951626926409178379336976245666954875402762690703895814468951352076461942962610202327755956243193499561653855882383747500183002060245786002005535176474382845079689168735453918503016265429616620876946989480930001223227146143536325122474701469045806152749264774089578214614644564338141477442195459502528643181188755960018989808252828723525243140047165686819437890999952975373591556253365174249085328086483548812028543924933323919957076741523295297035802835477221485534383903266190572539988866830912271158943342477598261204561965894546801234028610956939552014434863789024596907072596414579264924841583480437888274136062914583822493686149072348332528791768612228890863868760196872608213797373314750669166261594521110348213739834424875389180965422341693051484968402318599212508604309357630404966802102751341976468463843222069746327140279512400098553888549081240949418691865516823729615850146043228057140744444043483205174911891067976203252341317411094109690975620053604052544182018724085785577309097471102915081921391842987429975535235300031746439990204123590276925606108319874265735107051621996923045196786083438221255164802299563468779492398134975635895202403335200356578790860620857354462744064798900391588061868515206054727513432180091886741456434820178377601600622902368067298395433704618584911181884029340193475225174550035214433644506411023679448512272574731370686487466681535516926052723820373087053666047305677262704830183525760421056868372431706765728370223932737898147430215180090609225488720344064626189172232841943063434006401136249134793037678667918333917671741820005008086650265167246635029607697065244991745891578228687882597473626821438633513565522580932970931788731135255921364770410335187320023648466917199950220583678725640995921193871085659653926137408095643995484684036190763575980019857541772316345191058424174195509679225519547120997174443137439897759144232056080688636447861821259756764946414305340194089585431862433263355116752115345998044444557335579352921352864279336895628591964005097195133667884711997954112268914249378222084223717212555101237865986843421170075732827271447240959562323267290859181499315982345248404919703139049161909217079521021796243571365600140444698324325873628494111992788442347154890550029327061951123001047794974928561726564310263680088659498302577969615177517572729419242129744707907868178544499417827451036498115881998031836050176286713825633440642628092082484223896323279475342478299818384271285363118409626280942124786389463551266440252221466668085845528271438027960064394258553264218698772874058434413325215027288149303390368755980342743325744566656421401036058346720605077008755718850864505656589328066558008436058405163233127220604204229789163954395091029008032654724104611715837385985551593367045358444419434036869179906334174723277306127245870657971514914822660556364423785781645511281766638530502905139473249428090617946029160144871565178732584064820144876469810674459296993622340493966589481939186511632445965098056505391035274989854472146254468806533069983500182768996373027591323456793961150484437678946230909671987967219534492518556425207462773977927232071265881039366881111411114032278269262274168694727988796858620290527195627414242239739656518310834032586488847905148147892205928179381907105587752383354455431524668835911446937107607111893059213134932260770247095765329911751296460907437575627411681019943585054078456543241883798903962090242932336022029993290701234469857890313098718964843597401448865669991854740752482175474340687250662825950565921665075379846000299094179907856917982549966610686625320038694221599352623759477982080586966571502576689956308787658164997968687838287829150266322143298200433946240151958464055765846797908249698598036330166989093228237405882837518668964100876921422514428067144180637014053455883995523387425110083131494583083956198164013108578871420711770794061745889256032924598312968850317768216204415729346957110227858484948838631234674902240943739895530398770220547161860960717439705428926739901984079511263184394351836795424147646550504298838673526892358962303178277005834499075961813182505931921293425791292487619893737156743599440253579427174394156555378493150794214209752789948466988395168288544407405775863606782328330193280184711361804253036830001465220102014384718960381008820003698610322702871136691765097296343396008616243803125131562757340182306033780464583370985525709527813208126852664322067494047559503782533236639608372618593150977071033078325368203034725505596243805488048622815531324774609183437274665719678312361023999113054828531573375366119551162982430452485596437971652049617162980604192601567387566305664457248535428135279774212060586480237443387618071925930475312993743008796679276178244176535244455071733106399068860527977484633108311515459919054492960771822685464788046559360216571174507070811031962387350030339801846868729186127228749059497387708983480900686621456009825375250527847671848316013041304301380512848338442453221679936591490829175346423786961205336589559864338328611553596280732104310940408030328441638961566789853386721867763709514462307182132957990780178089674249922881260367224168046173880699156927080534166664788472655427360713737395465113162044105049036367548963257673059972702171451621223191485793571099225773449049620208221751423825736020818536245451374247075101042384485176362604268001919155468280695203097044383295154124074619735301817211720449883033035061249303741933735676505788658796954924991740857618756789020448773841966218814778656336834340662846872937369517472090138585252780263985880857503602518234478175692618695308765977344100803678527873610241870358143498777411376359853454252554058503604710785335860851057527628737314608514875787509642596468873450332631668131177736038201444032695925766662672178972609138217771151126158374563652014548949111712978000848227952643967009237975803309695863083737041576655255511474459321262041081676604979771587646403522874537454933099868083960871040906021113950120896962036005066068853436472031582869772446667658312685567569680495829307193098096055929439575195827244590187280447134022517732279857211571827599221960964947088879636444865530705264093476985785986749732828626655556616617734929861554368513052719518488426982056166792001175912303182066163621192620268111446378781516688028337771305732120011014751182625802837626709751487767290687093481150090406052828262875869711645498690975010915594823311008895127831870375746869649943023217788715862633136973216512142854845062387104037526493371509373161210181050284238336626442828139682110885058118791900102977947573637633493228331227202653179661004943777864968380153944027683308622474252606313164688917945951366257460791686678536271247333846395354493269146840516646065198272601425331330367376720482676948872132145764048750211162930718887018823018998580688549773081176850152915975395723931752279663252184199971158299068662760222239118030624942448224613634416028123680550784912622570515454766075405886242419268350446065508509637768515838340923968406221314360700639072248583193483745424634841772475052906171492778005496958901009850424667506934662791430728776457496408789014867695188157825318754997167088497985816872334560403818699881560947263879867328504043217103626374065199732408912144858453813658470073526875828805771804013164762621100753021489092836745690182313776162703854838122624448204850188792818548550867685771282913598066456188261519261237009882506581359024473476857444702387802174902141595355089483803217615808278907874289280942290413456618965261407324630358319119847022313301520782145037629335480689402235251184742243502778684805372400883344806389590295173744357224576095452332295658195730651161651729242417063193637670294672690414287528448575454336495488750299197802456797855450716684772783580347737920614559910670818999248363670887054666547187999480319066701271548401261087877827250800479215191328624020869231486147960926973013047976983366811445530033971038011163894898366680763975558319487372865321164792950315880759003311040557197329698541243374980158382090936879410033388661402112305823902620608220556082372363530479563021997803860978344644401370676397486374774718924945535611721100268955594289475919632447747302416308297741266188272132676053440175453209604681917826489417672148637458913155949480311477703759071630773179526374570143634515477889938182309079625542080198889659115532934239367391835322213667076589484063831104842493615951777948047795568187875608426049953797565235267594872392955766712617281251222221703222665424777767815914833009108796475379159892656791447144858206449170673694614433852685668070980174700606462793872517415299210734704974565785513478898372224725229569484022704632055985901600485442670343106811213777544727752524458613079052684468801126632210161507951788279453431508827588087736283605589892651852264496474035899550213774891352389938693244767632222152216064837977556317267965064200604404993098149931162377901578866098880417044233511027741960838287142480500991224863446509487535570530824013919691169947651908622399169830627538739831954317253365885288399462015786791951209890679666042761654278170712471013469622635067673267069596766338717790388208203650890118417101348293662775987784524798404066253841598288779481579440761898229699766546934350214757398974621871604455216583768174225149320280176933294012922104609944428315998185281228922143675548475447175234166573821023547219013537881248762204514370509705699484547503120615932333355564232494519223405183155980547465491474272642985145474148198215472753995027246038716271464031193434776080367046456263487520491727280703717720371215458304526128094685006617526985535915544496546728991357487834430610953609791746014519376237317907664035572860787866759553104350863982266745161148802318239531229666868957399332719165224631905755617965504965043476664335796260373918271425190154571577247345957670853012626676769126933133933947259710257233863057587940609375200093956381135250436646831619774895772939835939706078019234562544482070771364487368274180938697388282654714033381834361966387078223913379181393727906123359285405037082058829106246945757932879600049827345720612039930956475245213363377376382386120530076245564699221674495332828072177220942598424057224369979723340170314701932003149982219299126765438683341345432202671557463076216209752638270261114863698202349236598196958121436068559325242779628299051698476245083225079895954770190895183348858874103165821410682525302771971604729811350998054495321031053797462500556682867200570817519029566913571298990944151425476482689073318255677032230742720024951835996620332604999091000987672950937825836701530820297822465662036409454892533919806499881485573957934983806871171413765829252964155958428634417261747906021390476794339455899630537214835401500185395052791550603124690676055888235562230906351091014299796432498855105212291780198980702599985907514208217422355511923792076839282241814617086387022385598599881653153396418999095911950689891567466900148903604888758717584104812940577789886326474215297411293119878711765891216925319227320648443836488708273838133053206235140258902594487021770852224902012822369526883107260737609174780282036691486280360901302913562830623780233631211353319602811954632254287419585180155223116472984546280315609879561965252449427046231461987102626019355615615990923752617044512817589638513673307759592382518060168785334425930586847833397536617792103604138078543943473560331363138353072973782330980213519770500849815893724077691487066991264000146971829773519858015199433594286964581430048946112564926173511044448929208538333718171596168951025130196496617204556394574382605205664567672895605877137919936288969208544833195765998927103755388811449338026878963640842156759551830541269076297300492501606983984176715996553854507571252989998819164585757183784349152023235670973589779689035373711356561812973548080300660740432543956608821176629014243431977531727571866765821680853214094992915500011713703308519794448137433383714965801203107735785433204746581377728357205423132917713104565739947142938531565736153455254878384651159887155097828331583674790880073579324026548185119370353858261173207033299999146733336587786301691816812763973169540405460264034371452062462477497545821844740828446867181958661563108594617345714399704772677176096163343558202124832074839820439954401137733643762176823624787671107043696043730895860256396820558304392055552062382632341997302865936634592606081789697911051341120657589456352925099995153279481987061973667413980265681123088716757137442643209202871164070989501667445034808023010521373295822877182303027026765833009325302586342902431048161474389496612717762311378060632764248821479055719592969593921422281508869362312534021099004203322448274251162426639718792962381171837129336980714992817200715047166748821380162512178120421333172653833864282999453518330775635693410184805460195484439971706626890650890594640583581118794605279163390891430426260868305891254554945621405590492176789372314175156124514347879707496087349058101832814031132843501394605248340778784203605055699458262559048747266981653003018565245869984374489437781826444343246693599070984740070604143030062026978082523068098173245765903826377106751993832494940418286138940898965149786954106018651662022235108065607932093158833053331927107601749816146484824803512537691804117564837287263934450011683477295060113769135307826188148632272799311141101382570749148792106875464552586220830421559119923568222386503218844775586665070003017451715490021573205921030608388881814322097323194883601170881252149367627129931985400755226973340278238458900910645796364692227469231087550606976128516986384464186442771528764887443294647105950150953601389653408808957734556792471212201488190046762973433919378415015630216048251591444233542180455753563507132393388059953183322769282419816157397488849831421713700061134204610753129402889014870496332319084083363187060024048978967849887893751579543084011949114712930105324273018846514301969779239188122977745959874429635578140184460564393844072465265521496518378394986357700734198577145208414593037874802381655981475143017178707308439760093861294378776566524476824002995775503128803810084500095047295711224932659622519284194214857234176536360264941188336613558971217120468511270609535263900082373040327264771079644826942430459643724400411097392651985726242038693498966501206649117262741700917397659628376073777647234453509974231914577457652532485347450350179953322600634190156943675672468528699929946342376827631398459768440297471200234650990493597427325465824386193842449409831761009321126070662535566719331481691948390313424750323954129033034076437001550480778377105741089019018097361597599121522998258445973827634821361507965645609975456304877767316504705916809427770416557621092357458112900761489960475900217705434331551844839576478249150408339380994736588383789747409985263659098934709769686305051765148206216206645756004283125600766565821128025012717405314621772366138751112972880743088921753641025130350582260157928799658219250992434754419627274272964966039139803828653033648742613477653888960335990792681646060243675816449187071241638855845152606625905640112695910610180520110977875472447785721534017236331007555800473778566835661983355861932216481425037392480414540525897082872409628049619137298693512074777304721465093865301641502525480790840659357581193907377715915186457304925852977361485811560452648904862779366716220023810149883705802160483206980155194410558081711167181062645202626926171097152558483335226848144704957285751366256946840051448061493328671894450950489728086345554369042963326922446927020836040730898390874833030343213753827646447884469517346117601439412682137103405541693137557789954239495387289093533821217085399930352550207884601566651204583298045965441042388069007957463137045361918497337271285170890317706905353586050056863092073494805925749848400721787914816849869408331496645307340520154975034792783830849656303054665351574167011384319335018172206632798637100792171156009174148424163132936388758832812069864456794007253571897867966184442966373663686565135170051917866588316256763985799104563228852921578603172343378324704264778008453482279722919436151259557795425630084379641552412222763283060332759607093974751144207502063948830209976834234671281905918426785633090775388543453408225187381370573917796292795503925818002731320758641237628389619397339134168030809360432747518811416660028656435203098988412319825867030457579740167469009034545499105479223207449968989085829125230570922252399925669084645597000055632740293101341342725073720271969021562710207673516545610817022675320524495397998506539818913346305300390283553968650523069881398633425889450632736863119123463887957083644668394189128997541582802430049597093334826494867047180123200229707647872059405515032397910574687782336965238969942475395904891327114767725870135726016630904584964713241624502752295360993762849899852265349409275139148729937384512788252300069134981506951848180123637574976096685830395650705766020517107369450605303386217543736545635420200776651572119209408243814811373579037595656507731020691717710451066389549957283832520926635119592431223064942700248356852256619028659502877074164784140664372719687641410342619005789035062229563138497238651460232443055167718830714292171699002664674628010779362128466381128463258110842002281067419645147015733396903703691465933197899432232907157444937164800963146368019237681231898506790967786238597979827700830918397653220274525207559722996504723764274043109875878882715711074387828841158692718349896899767928090384363299657575157438555978151274654524479098727325959596828483784712897313188940011201822757056963038180506883817142183339092535540286746153511117317850983143392561170045738624476998881204896798341502469609692042621176251955495610218485214346443383936934289297440931050437571712968723558391402681924024720987652943507806389388904034124477674447872430804335217696279018771810448284771432652166366765966387516665889270835849146675345823069760061871417326901748016028050079876328977901928646707058595095563786424806467072349093712937495754566086869825259309513846882440591850504925991823281278224478839724479017382130568150529376548701607527899593502448929919322389815778418226096048679852042728280738862764660003635312889028611035298846184789641509914253441344662993356697895593811011477375611757339684832249939385741468376993524078284381691113673688170073081771217188836537391322832877375523518239202779425481243218851113804789962104462963559524123412063239521151393467327739910650121455937640015698433510737328481327653317721526191195557326557674070101984292116220719090887086243127670010782071775915520025717839433173601359298666958331302422012745833904164991523857186476266424214054948612635109050659107670252020522943248665038379618392209688483439797844146314093279243019208492767476070046153506455767037907779486692333389666232487785485999478090158220777444227718426860934809816330382098504577416526216828664525327586286175412129917735459432024226147587968620210632031131538585162207351301735684093049629421183064917854338773137828997844330511754343657337062471558225710978424481108156077360637997558211613516493860639853249533973255932674023538668265417651520407987338522155673227000772347394245136171244282877052738179871566319727607249929540968895010163802175112265892453763999796486609530758690360585902126813275063143791904681702791753550296368251646583339152495705408985869677599013538398224233916407143056803356112770275581711608954015973868153979154210810685709402499065659125711715444557830244076192409745040292027301558171965940560384722028305834848600185655545645131517486666497300292520885241778363060528918105112748436341592116522665429663338622777064246360635229480084272962694645847803013313689344352863569834906635328151808481684073269192358567049567498029615279057856050788232324235274418815683123381534481290674795589759168100377313597214583485843213645904767421906786704478776420824958190363954410656844830006988757567467782652418168077005687502863517636028529318238376408118022983138274344086058247648097241967330368231075110291331587886793816424794097253866816911312402586635690086408569702057426395292281711765066784916916431388784541510152072348422271439638993997191156196589477628210419812662564021588309016429758642014332174491663005842317894756044736553439303016891993307739305655342748757322464930178103178846416648224144151715855556803559299805792703840721565451359982545054940301872945333933577107126326253272999460947814888722524539174667952037609136924074292493977146882140356258645769689396307979285737162355487570104956520826535739360248391489518601350335430058740612289955363928565697619960306799394895864393662514646111391630856718120852318618197668950684454059647037983680161037052715928392058021651392887664327400207626487959930019001633812771286857535938293628662249548149554098955673912588947339186100908874900031708465618221060731445165326357624146242030586344731396221322145883013332505952427514867418498674569268044594711725624175631656456042838190222719177853563047731176897292300840245940565472479324088646753792088238240116469946199782590380664972727653461127551606316094910744686239586109573940376011686686765647561382348318432787087098639144200878455797493321831846667511788357143946685649830606713559363349803454473887205310978607590835436130534263441639029472726818010794012324334343985290343223771267916179695322548009065488046199950153667009720368242195302637797262402486516012657996182801323408144272096313115238311196558888811595179417109968627651219122847044417858444851711495694665092935882911642078007673513120999924612372697092508229374015814065771576189026867860202390049972606726415848146545611730470499915918065838079019026909925536384435896598142345724506521040527160672647680587037338810542475393253881175051641158632979521331950339387844009288006156422074666205384451011557003081062343883927720980660911429884472362909405403772387592165147608472138211950856411916840868340805527880887736804011905000204201396244993135155222723677854339421148177476974125092404741667198629619101896057407733856805343265620258214075066298625026710951188639995254696885206373710563006913985219111493190285287909527473843927948216582555011314287182425420010894915447273938582042535457869263124998668942316908180528155721588317994562020934470245175016767118524757103730838285481943485150346070594160728229209932666087990875813631474191883703980392478168479879188616022436447426176637844377554378854155592416872688209024202808644815999949883085194525197766348859256022987817968408518210769838338354572555985951835629499193370567994960354990871983753786801966070309250972796062207369085615568016355711773506072891084611453122548780253519848493619996745482929255290420154666152060900854340953510750087222490971375333135726312795197457463856226775180818042965838539602714473930927026473181879787005756262440240594485018324311549374289794367322960686531433381596780980825131129603443330099094609700700958556389791186659271861363778987978230408472426682030063492937333755559654823683967236311096240331353208629235925568122430714062466016249400273947453211393559523830940316186790056403715516304768451456536536780685506480950582646956142106284767394063682618747438592845647545896678178909353046021661300345349727522374857596099031117898333835354413320602659843254877321922831764313663409834388484631464981858014864947146098795553719859051666521643181066324267748531795160662025471622311154515708983270097696649682465753511920980639570429954772272980250379480899304880973884043718370993245901322191590639818699990993259873036755689688204117321589925702320640454124177510246995367468662591389497453855793862344374360392873088353333300232598033360516127264453191439034886066458632738587034773129763900854323476422237070897714930272150562943144487256424313318526721927536786567906069428553472981300664480472779270088247673904513793414166665446104227908746192716477392665548640369008093728159020682926610893321475751951952499507629697174514121850180794329774542864889559713399843310615318519005176612567059671770052466856665494545963627168984772835036361144341384444161115231905873481597073399559574297372911982061624178705037219234326693637150870683106607236237851556271932473643716630110147650242680785152788107885271444816368620176434412096745788968258141483509984930996454197441286354412602119897150900174503323923504255895529341616222374330746923654538071669011714794578480894537942721711622022416290023375493702027311702515630801017467462434918646709775955467194139199967740322100838960794938980409498875818196537399268623772547358951014673117533855315232853157174270000548848194067292688369759568755020593574044455658244042821423899342055404739398263286575627047614115475065851848434576054744778090533024958269184876875657753592580001191451437665383196506457629999157879658427049003141304865148523383043237177138395511356190767990599107321606665795814256148274899412681099633476728345321240079347765377367408242396392437389513864938414037421331986084747454017517413301555399679645882791047340604957685384429227355667332474802224747558715409639688346349860121418391274227223336214933862095186772928407604112655529559128049941057587900159949203984023108335890550718719236299950648977769426202608986241765311641070418493666319539794919652858541657305215916936210982664156112667981053146504928040474754494149087113162530100533942709428409975310165442376280805190494113879585110780677343517398772600504692308434808859964981962840658303091102438752020760992713098587872888994581370722183465941616934815786842874736023010869361368456528581192452614467077476116659120742559194324273528576176989666476946002073575409340725899588978551151217615215929745801949871561382624625984823816975975760381946327228081013383358867654271004624805334715841677529202751827235023976404784041287891724014691846915975721298625037115626247579650707930074453111663471031375139366623600479697816817989044915603928054261374911919363716449375374002318298944961951589802356323979752038877454503269406244545283904425149274398887787134300693762111494288347900567872269540126095963273430279384290034835364184805595288099033516451877386740144761435214195402649496709376046342740338761702424055146349892914961485148348404625557991357223836745840285409654122347273896403836412898019753230852426655343200656798479491607071408218791276801238683898194359332223037672971230758311177166709422225519188517241850855377017783821347787579804762729225722420810066686442612357499790242525443514110008525507720429911681295607774578126750347743907875008311487492670237109931664203472621593923717306224420623322332697280300914677249335909702560990225758795330572790045357958458295168812953293584523817129732497216598014958384230415018231210042681890677414286617788008793427172162142744048170414203916035033416537280352522487447346705755829156401885036153171324296532871583946978968624546245300920087205612663443531668380415256235915146790569581660456350716566620299514327884816680039439223770466531024406764476745367798120066336002834098234648820727204723165006792845876487948761203016135290772242230172672303881748143942762543139819921400577811772954621415497690549377098799024172841153633425039456787915510016722662867468421813512288005387070320161798106807771815317289306510912069846350457615140538991292886531477574139829928134115564755789202958532756507753654819804753878501711417192041474980257642502737133665584886825274214332036963298712772703062607107220416154204558658822818050716116883527193057751007429204564364881553694771894049492975560406078754926871168505919520885527172250095137452560612368946670482977614282960686324731065316218097983894275160075563350576815658545091813095390845604875581108431866923541945145168875068966517305387003657102266777265816659405804765704651538005576207493389435686820725695492519855787294523866149017783923673789410594198332241505303678955139880914848640412210918717181376112758330441016972695460685071358971957519883659803709524387772505273257604277787575198900996208378222951479533751458839589995505648318645140859139241525427427272613260411418892568525340233871330756226376743579286124223544657956370745968009109589514509602661675011414753107118987308848102997109464291778913604683812619596105178213172012017182401208767406142731237058513846969118389835443092689008501038989198505488598161681175125230901840512169540924449207015996852018496244388367785821046233456626636782001370499126295091773003166213303631769365893392118650762899293864408935058157328479020723680520990862222555228894768964123676047803304678136831709744726906926403788836697361942497763951200099544425911643864696990337479209637391800309828881874121248902002613599415471817384964523094557131316758012969550982584408611447110354568953114387733909616248338373595612194499939575431114329574169833956691979864105258180840296846664645415680575696472091270573510796025380784310243395266899397286297650258660011300329157241116142402863666562947334331858501469880224476359696515371140016412403045698964242602818107036966071167478664205627763797341599979947735803254445202013190647188191007244398204051488948086449263879443940970476493992862274579382998637188324294697896058782198143815505496386959954465250284671144813476939695666427423886309920224615324322582264504963132375735444329490726503172990465560444894759435182538288774348140375057037029837113864409174042410130042270818030518480203154448354644798935941227300080626175450260955606227836083604554730311536251629034615696207308809756790206155313045464442400774820192138626022361154069608124123484749150241640424364124765446785947961808973435507665861013353937638091579286939255830079535129179486242767115714341304297771948002263376207400131536785527536095523293956716215825211262935090555831449000104026828508480484187968501576638743758372781657186908606134041965355823574402179369210646114297920686119817392216683812128570906632645659860130619898738876103108422078361072597008279523010072477171384117889286410652552129961530292936665353528007692882474308501332803341249332102503950509939565571147605274388182132344414804612696928037651675395708936354782720707753713790525937196383504480830109226960188063208478092743973961201768701503423682863623681634375024998343023322387756497181509775785888591277384745097090771006905393344245270460176874853036750126583848172492011486924668440868926746908447563654008633749510929709066900875143745254091056682141592726961793664946625526277582987718715435748221929605002871562359486445829118831120359317430235988855809454781432624005104765993083644911746136838430713964446769114376172379899075138425717424196580556942470027931543118136872156336351005278624289087690616013169577221181248835232616442917116901443324424837094347059299558440139464564615791885275092466245093323286184784373575547313375100736005881882784885113204255725612057926818632820922807436835684316870939063655573034553337550116886363046361788011582607683817249004132932530704026440563840657901883192615457430602521321305864372795357922779192281682557683807198824862008378799041012405587214653709164635796771220678342961041451088575805104959775092208308969200454494197295796888912944471933928719207555462731177209829093368548278485405890107623364788951797385292401960138517447472512128718608399115045627814128691249336631514941605672133501351636849287219296093022898515135248363995218493044307484083255572013238129831434602161425814549509879381713766543353710462189394409252635075467889343083989524278709879370151912949627621421165190532039911661742058300665512603936593740211672743668503082029980873090707375911941670693688383801915129426057613710563686373577507144494001903791921454010284207070706787196608382682104477503504852876481334828982358294168772352497458838073190355077246728071727820631922557983603561134540446146052530383385835654450402682223964850272985397313956472952922590716279259428678362504066252852874263691472699216822493180840638515118051736260178820812838183008305439551739505839131797250078841678703383212927628535630772221176549322800652726446813252397402557010269594636681123686533292164752759526506689932674283180675873968504384913388655178930949284940179180230705485083547647388871469248259119816967167030771084781484158950583210753076815321497209498583745663181362715658865796704856703295175365725127082651185126845022642600082081808211134056789009102993593691776638480258741132175728574096415091678518364159444246174424949699150485083927035000740026830228286164567950623644991681252449520268913594200295021272284271672996115717479256748919046137311396609969408478279021340040579508725369440278274371283989565711275800671489797433897219861755541306902904083389937578004791475877070061542106095425437930799095869489597089740327286379454900127798909427188859897390270729006086147048653541588577435821356153926663268641105395894003827784613986453632467398516236259306693184811439714906876832980474020486897380653461245178920116393908653936345901896355472061568149617801716235357310299377466010629465331031819686647715892894227071472671134920748159474530041480175845199784611379118736228688659159983743694445608866184095020389971810621020077046066655633240495113118114582229525765308307418188245745405951408070836792575317912659064336130579841574234700820631909260101011421220816179469853038296652690986190910811339511704984296101350942542857170011634257182716908101293856108021491440155320362742651233300257792348771468868291938511147049031800361240104913963677634930914080230050530675332283257097844537368191698987776260704403588683526818951333265644321617596228523177371203939955760990812131218129316687647018398877370164373477586367851848101647745030903131792192476765426571193535392975739681205835425195864516533070452192595783858711322662951902482135012201520197834643648675433202855300866228772854289442608500063954102757348445414050316547489372029358038527946845858711929874899162318480834503860833867367206247712712663618028637758458369913229105273077945479979743780462316932505592878780512245054348422491623879782638260240012410556721445142068779746560676322925402358693095626410302835199264052115692427957289417921648445682931654504628405384427584094232660991983788897023615870638197117244819316837896769555476765949627050583236126279131232436356545563805198209763824456913095538409649929855897170429731670187270814963635082858734034246047503621860692725491475569199142977016546151394327862468337058183711045865233181912296450476061335786178239107125221008847631758170668858788262625601486581665492692201198110119863941988337933596370031704659634587311387784595146147720814967849250888987997023372387743414383811369379363978051720405341577301171438986125084320357182376332003313955891659748983760587596704553351122366910570517430371405550402847972159229927696021175411704739471494200038767058259060472992197352665980207675754854932256104248041752527547475062865822565785906703831478030182033102167905546311254863491725853324166000567642515051573152634314719832365883621214600451325326289011450679859298056266644078180776774373688739717771227361064243463440410168772776179233185022599273581313101436499982197651943599121125945067998892278661881128856972139597553270596134421469083047051967126430771875079966355174749048674313299614098213929432970639349726344762156779929824751451840776321051405113254189384242915757404403427135918063227993819940513057723849436085955691849807464060759525177071202870949436956545850163704011300473852291456020170780419732977502809973265371079689973019725754371067744124294307195186072008459489710143753134447990103462100906431671230019824501457882223373742961966517929206756346075578020767314916656649880156263968687002649316261004910291768448894684874958397898605318078367336362167505883104821349484697444593869281034705622160521283239211734953444094712096804369101881675926206202949313706566405277950729605436044527933931151802985452527377299851549909376475803334445625282235532925074909447098391791180554605355317378649529411593620448282798284119282884135206477200408524738912755863082926775990665191431738104918284256954705760723087678599923944131097010720611522238234952394013259191382038469777928973732533980221776700680094258964500452930170360893785788207883512626198916408352140296530267495249454312145964963243832441128657977793081780001609132779541499401834590208430463684663942404952467954199566828635856001516950618776241536610120360083879076592222567926760484534882357437062404444274144450776759748667958636244676178017645519733150915209731690162096733138304433385843469118221850995823107141694917388994947774360155602570752364588422490978426045793119081572387310342122302042400839118183214686890593000483125421179706788451263901565457195168902873418414343585296670927725147273492306413156418642891034653195750284024387990868709915905602357444010911709746656444695169664944347449160242874678463053486562998720334246366098559272169277149192778188703257003970733690020955288040510152293019578997125213602515919527745590900535293816993595224878099864749594581935748975926260076424918892392313263240766499218922592960235333991016794222232104120160207222101899527431308087784977484973728552241283774976897865433323760777897021913692517307473018127083751127933136298859680793759807910520998520892574098476351348233861323817220665832494110267094934582061751727827470677471997527435050616370981130894517086432022270802624254515759303707022554380852030746077342557280535335434353639805324533305080472442222121654660082451878566063115375813365559111083950525321900145338532057809727636645994615550182862071328283174083807374449940438667608177312100412655607940985044447722542417579268869268800673099616448867615380425426037290731865050354974903621574714286813596660404815803732087746646493427940152740053401425460148366693796962719964059623291869109481972454657464385803551590870849245158940429821624216139589886411864496764350256189548886890957121966472662236912058521775679976860159037940769105883835118595395867164360174570609456634917260504389376624299229471385189503734215106589278466718566700642375922552753245407876306530589893052249975409018767728915014251491233129655614820966828051554494915159640005658837537564095715837946230365397218464313443682517005553116917773028838689247866132695063800084689893024831081865782886538250379481751398266121126274460681771275618812028630116086742922626571231814310645932043160136432345328995371471096690744378883530666001470262815163059408444509431468185430987294972877905275181396964255848449059089781807464750381160757081284589493662630268148712423330035406558496859261254874994578201916621035147123428405059159777289017273946306358126222920285966451121317943245946770370624859614689129709320436231614083233800727386012394540641047370536903500408348395936871048639177755048952054220066782548658221515382555866658694618913768059479166685821060213953194376107865536784777977960296488819661662851688646173273105793455052190574125684886835483701660722334782114482611934605072605129522190164730344250357525280467815828142410704459626295845992137895764701872423785446072868785875434327298629563409396261824300298173586968921440523031095345827528144605479228668818914701760965179643027495349490931495364733691958060279873206259583997013759661724640570127835603177856210888421110733040249002459250734269825788351449903199607820643049739080341020289525894302510037069722845148417666421657577791636487377216429385795439763745599020664105959747439770453156146017483679533427583760086973283254061407400234209760521033261240990780567376710254226410611349581989992506462508767489236778997140047556469008098559655026557619687113652687537600924816444384147391100016413751357349309983107918749626603113466895645675463229501212438944829060705665686561644951825541031360833848784535818618231058937712749717500826902572834978602527440373140775002789023425745925538117664454540329117876064354265242989346160644039916956563338521990328910332175019517738403149632269797647664581143030187602145041095244552767289857445832760009030789938961837953106843458652695370995264888972004494049157701814906475035821190323555502572749108086393835698263480373067989498494946639184963253170547306936822839640609398318755445924192350527861174627263541410056179301490676219993200573401081137273953478402378460509282043440249942724106369445767731601215306947246903322134825793295587101455568003929605301834214216450463508547116884897375936640811865735124337243906431843451374000463977046852578371774183296172592524327577587869116654051449277421329105826797267930498864216072254158543579894198082555054455397496408470132869906088655415829995310117170541512230051442846963366992259562769723846262634699219521049407615070154320505660136153168482143255513607928788406646828173873240427162307130810679561956541003706214781232039961035613681147741019910457460878697299765357095946770118663506553721912535203372055555758473366333950614357275121507903376252203037080530176735704829081010678189509813554863946299833381135589286180138651767855777381222227948720540991489852843280066692160224571591347174322374484016468891129328717594812447799832997705758369397251792367407349819611701623661296027873480092514173910925464624778385517987224940859113831653899028715970123276190395199517183216562024333107567760609976342009076213424560846321358603135228519320972743001517836151170357364094591623660756991456416150684019468844481548850220667373840960082000438715782081692483902006173529202897271458928521336266440314519458637800785400243491087232524660634448450247002568145709131523422006699340113211874010972584913993846663839827323280484864470645684929506413250746546139245136294481739657663917905412159523187021869464346989497878738767491267603323045038520593075665351597608889324722588319761771161583516423296067483327305190418984500553517066411187101165903119732632132742819337681741744985706694010442322925876109577308980634164831256748815526523665867398865547048480655410455635424217731770722281238349552003189214925975030170840733916855708489717906863847251309329140917995490610598431284819154208024370808916733281904961932718889252119527654812516354694267740759024344264879217098537351186315771013905283488490716543174645327891553935532668203036276226428711054456730519001782415925430444349859402946025449127426045616823905518347861265279907947777237010916978299029981137933387418579020080661190432418967365270027687240415604749117910386111258769754086216601403992461438745920592873176918047993338583456031122038718687338742858859514104216384499527323338608618281323746629534047957911808163253343181519402273971444403048117183128692956642794291396528649443102011440664297185610822892515239563805138027550279014675861061104858018197439843630136785489488293126871152847206388343573896876956286235931013010777935563396776881391031219311768405728843974338581894152078802981775319566578228545546193419572303394129463428465698831766537177176937073469794489737933674530716577965622053900377505778031531556244491616068366950198799931196283986697808570286545490586049072011622436767742552520513863266375160980123068869703879541007998463864341127794010977792922666547769332812252626150289734524393180472922282611501523449095296936228082978249314323349568533293415346363960447347988972771504611931096084508406769928129836189717258396044829016732257495964698386998432057213062609464919365049224141616345916195454213530205956514009507449302768656096801644534271174744064439100244243899534089406384196946296031892361920956475534787011663402319492170996221083553915201789907399435103740517414321258227161928386986056253989865449996073498252581510025843487740295932948004231411672230479346270567488188086350965914677584498265138272383500986301601956248129944299406955529239636789390507816136377415994778875426193628752976132555603666372387065899594350062679628973266836448647452235866322322832517457267947317869794757608009124978217840647558815832063157757788209413450071761631684822693080051424934883298496750327689549803698898756517451805816747060648411665009526154486820059770484170395256122639143338553185418954508247652373499380501206877549985109041862404512205354428614824525908517882983430366561390877216449888923174051317348184636604379109123130040900150139500132246802195956254565095665535680559051655036761977638277032270434224421561952842744027690453402391054809912525571111847804646260370734613516697749913631258956182557114372405828274765577861530865550648653896103931229082995023897417563187033831470791904466817850420272731029606394525697262800892463082535939634440690268006501788199543429100372712620101236868210466395864113885495233156235411201859838221962739666243240670951346494918412363979395067641612854269980837320533088461373087367157162236175082971795799025750711860504575722584798933774871621677250204105035718876615644118512504983577260757301877025311477199778635967646965586670914067082004988741806750464081616637825671819182329652780178436619708271250742922365332333674174271008195586280606139359428116124053902565588724030777918503610781491258770689560752060575629837306414506772370024252633036837723288739363289287822339879156943324034513002323939716643232384609010750367484799801806295202888932289731127207507699997661107132570074558453023485297445175828247210927080178134622018866841157015321956038180339184154357021906636129974046772583364895941702983268499266877584241266917140976439358375376515929366926040581178804458615408534027776043243001681289959658516784138267979439447081861511853256922276440702461202611080054212328365219221301955605448729605506097512414012813335059847313215662477130467509362513302659876844271296358156744967988813196199321064710608424462494076132228439222789090913510157505642523421132047940716894928657957116263712975206762215518925964777977572003332431070855119951507913625552302433782696045571330190947367562619852516159397352798613580319541523734665045375357822997194873731136230065474261812227879904978615477330883298330583408402823227188722984754440077643395883904674404324417743864860650539861667635877505370829824546401983880965509719656301801725074303723721665482318296816790860359648512921213691043401342572383128465599578862530133371204881759523768819060757214532788942765866872634749477215498828353925789424147691188475831882802133566858890018773962510737307953403130140651767085829516057640675556036054811303565306831763278594225881426328260160784943837847005497580245075952591468390974249457222933198214663440811699752152665327208038931448386404319917557457538989847479859215620645585451129784230057285251462385416348800142415040774426457641912592972933824233661935400886819820099233116095328038115565720931121733611094386076428575202214633577723980736197814253089233549619989670911168053609756210082460305736749855046140080500298309219634563716380946104994256968637423523451640705383763199584136120524951454654411636841762751786929719399262255116264540880081379257852851420964141426514309437885309470491251269046608842163953611641079978477415698186862850945878655370865660848253527072239943270756836773639640029483462678700681828367776855751104644506712370407054156838684707734323031432893396479361346237829216085985454113058068294014753027002352899277869119428245213832601366314658715009893330093324193490685544180774461593845620081835403681851503481355642809270611915683705397491733739465880337133146391801231924685101848659566727495804507448213923381795374326850600087809386703083109866035995526063482027859871239823387021011080416708678240262211927802911979772740213669880436483927125636213549796038401605575238564738152290613148642790437222647257046161986417058505098661936251699592253636975278420033334516984662387741875199499483222848401189807437633568343482132526471084025690589974682479573947119485828923617023254830996427617690726199807444192554117906285128702396402219759709613692712365558756227635747585984135451755194991542125238021338100925391004856545627021047281027087235462343075169618117217588679110934530549164546268031953329676324708236339846157433435025474457326384616326818635697091322720268230238267512582916784460702700000568937551842212463060270416147316900220209930821178334933446091691343407897446106192796706487061921325283477087491562760194055609075479276745133749071762082084925593392115165136599577747890470213172862398850983649265262276459957214846374294038018874766188623313531331890718623959507432149641019473569948227024748469230079829166231787349025630753095936486145265751378842890649737690056699715023581605249152241164229569555554507033091603845217965186475021202159188288823369094177048909128596304340190225546473737853734832124447238509978218772570520149322283273734216439977315116503020735391260557413738773338835026278228405302460237805417032405411650737749693755268971048075781336270653471718813993135410423724717594149168223924828666026975676063098335688766016254142515210226877042000785788958019248745616334725030770913818608414744063134671096944065985773424985170821257048233731838758820683449051502287930594875681587554085340132632591465119342695334748653492903395149587408420888880514636939795675561515464592609215103982611949331081723116124266351368474840985322848078145405367195614430742994647647234148227098165718756941053202740305615022307394084296714732049401200679160331559065629653308808989445410028013001228766025443536391040643483179324560182254509357736049563302356764648427522877206446472612894435249238777021467458329613403484184985210237916035957377915687431665838477379577602316952086598732226577861935663287536620700157017287102724660601959417634335253088221865783209010173487723268478768085365391225400495069947787225284238993748278009192591078531686650923507271060132917241435317697284034385407910114779824479784137668022475495667971251141765965284706696774390449281545725974110381771924047687526400719898374653491410385922608269258276390655178902207870373234532445483333695164094287577523326877681285446514809862512902577016737081782095873030183798270108116889738867320074307271480287525537684298643996223800181391936870935184255462964827058552822885531985254151419215234541810492350863125107630029348204001780358242377119502887097704423693832822186168728124545770058087567374350717570703384648258910428678372217565731267511585921303454854918006297140784745540946165773802268440708634045123935558278579797048760465531555023413672629300252927140081955462196792379030005123101243123754514802387965757711248107093334499398245545644566033190401623946987485129368883053674022011191231134156448542105548881815411014132673809308852426468297906996032457478261041095555442896404193062600197869749613370755120072405129627468899114682380387075162124740534864244901556208693003304539815219098660832677331475445939046621261075250256828766192817683294118552684084934921087300255832360028010880747007452694204433898683988584020363093626204537537466318506117207346312471894478877686170145309289609815291468824729554781965040064390414916764288246031137377559465196477544499346442363508744221648695688264372401416825380149391314128296959694613741673023848005336821694303267715366938719180312522966537394904825449640246802855133909963736643508191267097142030549147415421720974853156467908534877982026988884029423059367809630069271863270019889462387370633086044391814571998043713385958712755246154804397418338900558928256777096164691302169276008536568119382957352114487388782098965596539440758804581861461983447304642487053433607752575516300399372222527144377995126573092774296220177673634118171531504594502235808870808710972930122631727294162776655659163921421026419222602100809153527867665444427857132157573368286920777338013221119098095272410664653571291761462834328655932089779762059027390609511062224144253088061820655563935773087896399660098246573985830160915118276682059281639723585907876742235849377883896305791127663408524404912494923586264272702592528704485155764783457795325230861485972820162137209790441732872100876390593698640297164833261292982783392450847747285250920777710654049718412185707253894876267774769412793157303365540612493573599179890248208726279964140275506887833447895954248137159885812364760880856902726431895153995379418128832454493411219835153652952968458642095504868258415242368050932637871833946341383455817374419812409686208811803073540594686315832228255419579647639604930924506432879523492659109252030564077700204525678146848878872437126599778298623880841978000039799442001665006821892208794932658971538150278131833119047298577419361196574775156251990347174015931429712536747205619856008551723862637473481206612092195814313260689202819601489515908140370970054011129529812721821270544136347689332975799565069751956149860540217925222571906853109203665106041343868117679953205553014009171581749676782526263250338224708095026463582137026898120570166873342917474738054032030918397427467591788858432876054704286159132976004563817151205577600770891061822295340167375908661111212194918474659814045063625311122239329305824424599210863876956295725244651727856191618240966240813408482262601350162465883525336437290213750474120970907695576617947371039410579061734827565610577664699171555610807093035324665816948181458739792356718551676720491612008109562443247139395987981041110727997850042538667890840179134606928716812848074610270445363227258284780284147840156400727057044494057375210771151416066476291810654663656801090943762502627040701192050536935520875376001612469592213895136845483585441542803991598970507826014355293166942362008470721070979957737382650695869740470882453322885224517115755223979198300465572221726081521181427644062764238540223955233479530583702926002519012011059978796757880648187916561524954479820189099869667063607998228284962911663152868266798643861481375857314629230303266575299549033617703620444775095284764258327841396619541758274706365770037912238541398295676813352630747328461027423324430490615893251693169697782884979983462069832031939796441954995173410139633342937566134140182706490207415554471638165655950283691926555980183525484558576478412325465233182407373312713875299571522732476238835301757258353144922818136487151630837524901544379287534176950595213526271219317260058429655936033949019286115947058603036696223134647375955828049911102556917036326730192684759108466566346776539574585083568565418736632619776215020286812869793044678223277123785558853822293464440004502935136406189334080505416106603129379593979311204098539383744565325250249973390146068366657798132159334390565899909409796258557966373709257382991589269074231662294592226713014541224097153486003265524014535395029924303031361666780170646253784996488391464219557384208070592060008053178842005531505455459755751959741439045093767786042922778711756426152587712808776124808011940114530291216427739894142715686351015585857369438588999984937027202319816190758326410792164620494210510521629484381808120537136574282814009418920789690001790651791250340279506902114554062919966511967903905227061086746672310863093196917607047460599160871159319303453320417658580354285947089981382093421955477143403238545715069455884262631983257980596879559560184200372734923827108609904866014607471899129462328940845789478758608743058165626725128386601954743907355914991928793194024456789648281663149641017424755365917948451181622590605833173994188173687658145641565928233093918091057410814582614002805847235394844928994414530573637361201520374175420956652024048408883882208438540929265618847147914601538371346000993447315528152735159477093806447419965940057403363802612903345636086623587509919602380950593682586499212213186563148341523351959975003342542079357462913678027636862798927058207231678818404937894197842573733425194206639989164556459791311837483250497563599746231648312716164101798529269973506448951861680620867131892637767233322849808743799422343791351142745888346745992591595575838284609031401510093138879594262835626743150800397338702673858582309519044169368849047482450103891347966228099997414033391200623110857721755439672946936367023023136684902724279770194827007058605500501621129702343536147056969452731463230757469478266303356487243628006221088483269710064356755549496155338902002092492419277497294975782992315371372480541338839911306794766770002328810671818197484209335595378180675089321948929788964044225663161833372407299604732483754028605212995426256646419927951428873491550423094137037506704680774347211678080941795497091944427013662048876504190575745454923553691286622281484819504197673165431298443961483054533047791294144522331376939093533741241505180040968949427997987001374216101804558271576623188804320498891283970113127360711570628264746346672859709849600314589606696426931481974686544595355721618920652580017710850426542251988423204371270145908098067704994600277822666768341616121814418001507764446261690593214119112672323937545983954666093891783636933894915366902879747440948027558545040166740973863997218302319438708953655968027624138909511045598890580723541331438518148087700256280920753246488870231340277205785384665908910691655389069127999284626837234021283574116738583776986705390593679770414296717356549221190208867890489143532143365345491230163175968385402392306284583305907869683354694970079974113210578190562332846614331342210187932690299493337311701772692056301671345839175100592213687717258843921256492008487505003981731327314615137153382699746932244778596372518845132753197487132993697320356596822675629777172494029333967458510432459197896316438649620330179154797218974916200889393928458898730556124541585488097848244560302629195966256750313293957335182782086953055411780670461384232437988061640437623218002816521114170662510537121489887228404017505330060068248387307358971804287887767521082166847009903376503881695712407388486132260177662030048646719059745109159377543885283271707906295237440924721551601441017654520763450509864968768416976625696351379518155559292767527682737852176241669643639921079172532766693862450766267845438921698371426124794718778126518804836964282419759848670497534752378176203873916675797093859788750366398667186245757366864503739053409371736475426779310340796352478074872440618810527617380176118792331126115752999215556495198236274927837745774237967780167988039273499536107005301407074064857500968582570717795395163890554556790763076479601453029955598941082223001391207808552001842980914086776869614856421219602779928228921518636450387765654925261940069992581766781231910983089039916415818972645060766465797652056610015737474141693416444001122260090043560611269516112805235985965147245553526270016097967527808952554851165301878996606250189070697153149419921495064257920828784379228989994880697920017643469660717875375559678571160747560454140668312116788417242637176159964227044475524626822529816744956892599019539497977888810646082545811739386034088319607216569729906690966342140196273684199654032095526679820808370009505186018146557897874271788750638219076859947542155693485318150154218613374705838722366708974964080395412503941222242364358004024593701372304922792406533611083923234535608172453653146777416680026760764919167466879932068011722440581718916436139917481163203140776014388794316890219490879989159934832876783187589770000433463181164544295506583416875051925366460142731187514352487780047133390725993849516163723755301376723119627124144995541017377617951222154103138547387781334900684821887814773871246785116112421229073020314544593529705017963217659612744273192762916612095203430182324229101973063112257860961104721020823624282114449410096340263143202601637009080461357609728129977739544331019992015006120796613373271526874189906510874625678024070593797588656916085416675525449371943686308031605933684548373432824681969294979054777811971919173186675591080979325358524261389453417024608746068895815290006000410301661653719473109008243496351463889204633470106572987738110778524225482310549205649996759672627454286239266240133021909167714229004892370956231780558062259037064049897597421566470085506534168414517175036778870745260440254687260890311249004902889451937668743671352631319934894547874195183787331245557513461089184856352872136870311984817461603594182812043420852613490300773867420862383996533686644624074430910277749447783762202055243645354217592612851962744222859104387238768466421487880433812552331347364315665995499903204099422328242392660132625913781473961959546875410109379792721586626424104526121114554118228616130927079405231110454825505979873021829819038944720049737838307231513467812647855423697414574119103235338827373018852066047714919571669950377112405051952678987350647299913162403092302953440765595357189474350816423212429560917164184919988955473833233731969462822195290201952149852904877728305997110515129620214640674486120518347594937712394694775936543995025508499060847127720532823946986021397126813639908205297334216760044416379965607931142038658423029814332187383016476797162202533850171351692745820501178602683676008609120038430171045200424525624466419718801117387870789999059193413103622998192623666029112077197884751877740271794973103213480698767382926626714149157198362203243845938230459765133369456044028778518088639893699019783224053359264482194426756047928577250481560164372299301285551404025681537189134677457153120216731434719732331314726092777091871828606079581746731460830495159048163811410356547444651273504840018976583412525564494876553764752682604333494263144056939806208115213958509129767059813373215776137615017765407633753184881146445060754241577687507283080684646099831409893468366225011984774436641385498066099262178204184623355177133661465573982669428307329590937227952859198135312486846411927389218225991270069749664884945073010333895822533259987620372194330038859321148307107637753533003489805270566158337636789520143520505652016686072170823501384135031946173997628968802852326040400915365341101738889734479757155770463042304320963133775096795953111823390068550283398378073575338944441765903785702999493922567673374375845460134283796226026371893804460357983593818372986000047735208802921700631587302432353032639725033535725653317519157904200996922042787320600910349526894633999574076164677261356944094493156250298515858645213824874090276020408785820477342998455263751120455201185344675396669315037070522834593289758879003246641263945239119208380574314942287431546916544940409898736385569083559934944418655127262589684597157682883828074996124674494695255264558532664174805331684823610028071230246853876673402929007692297739385847862247739100126263658010632819812047103198833408152074806429650445024029321417807835640069472222044829576348913050573136718248941276220895135061180663106619090653371243664982787661364077329904909307603361083494862431828753157277788852248120498494250703366297104695014703805782318111738059148829316781148441015988044301261822344394907481396783335118228366049965397530411593302049528017646393148867404028644554079682898586001850027165856455708409499491192703433806575710054446906545767882676017738946196968007126222113473189261572925910058014147753900500851537472093813135246869475011991486323929093237148504686251244725457012194422743174410428001586323588724850263099934907895996216412697133752221169947656031042419487872727324711329920637475091926511424164182567701307622132954779850705057059685217451933037799075534326263276126334270884041884059253116009200692847916305366020798088762445765358137273990361287836317030757246366356031438738206488255488232111703780237308922253162923111055689682329374759111497160884407639805454252664462890601966227529349028422048266919216170872417978834524904855541445701606685608147898799449188040078790597411687656182321061536220167589443417501003832803109668795196684496906827094683713327601093873533144551108837806742545932543612073407811973614568945659855659876041293056008589574361421412701207532711067831977429942126723991441479518813950832512122844045047393140225291686787946366401158580991391828517584234867401575987238487539098614258721604882109225822815711542961580431509797439488960817211611147876855386308624258836730984175873556314455318514234849808560498905988864431325721167952465442636442026318718775920524471430386411307276616667400465555654192053860193104842922546160357776278065608507462550432572645682540056055153990612119014223462043354330436041701816757358443058990005839085692547839365661023672006413083803218554903649228732379312504717196751321216644246161315237477209211079799690964128778462068105498672558133834482838024500573745167005717319878250683170890938727391727843813300503334871428997576472417124540354671602436049364046708506192304178990383163753726807774496199550829462060265170900285535125737900388898301430170285457637983524669992572651421854491844461277292867245054502871816035393281739434822495648089460049985449392261863427641033557689876456810614952299708337652309224396727258959498062303572586762371797441430456064532015615427468646444627456060670008743705636267755713030049362443802025032351672169086585285243876418970409163096101375693970309614918149773253670702424260212391333400496766788818216312290138955084722379376368265043432944727650871051836363685559308716714486989339997870955018816970332250564157511932005668564508095200855773924338811566930640508587680794556516432780679749570608814237014586105043412077042012320764570200384894590786559579979537945791197855968240223959818375175998645764137246295460822051633714995092386487510973335080355997843512598507907276201079859677836375094599907613271275987268217817536181285072374422820794667844525770844213220801677212925186513347336931866497347398121708729415033058397470940880302998559770341655934314256021222602336347499000105051128347972498552447606314988463821937045918767011905016853971176383747214885595223480510151364949872835525405787716898846766813794489882157168615615165058611900730258961830651387482247720977322555458830148515202547488717308651607118705600649522111451766828620291116006262699027912016258957008209161086030717897621740663640094757588397577729223073693376082077437647003769275092722385210509044457585350373471273972684527336237944289977428165027322922902187314394342320356352412213072403196326291225501291510746678222545542620731996660191216206339251949941750022254125852943957869784176208953651011782119968660534773735589867773968825791510372944375129822881473896176122197806785839356485212660057150637963931131942952565627425400687862100099772415087402294924120988493396596343561335424769930201639897653032196641208850499891247722828118470854184664251062439968456606208253478769073944563603905719669298859764122979500495439597507365975948385569608130471307528073913134112955484931524909989631904960565681797206526436004297044991249185793511520732015827752348541231677506381432249635144412548269132195928833842521932307823613167844677393590376563531859733111215212045047575266006485986335217661862241737378556208457835324310456366682951569418528172277775771608107844601971409784672120608773828892563221580093048633302448770578916457047830295720520634249481721619763484225103205916386268143737034879391155154071269452900052347041002174470909895399836712710024506400110606321082539765792801550122029914362817185536625264173335482366428243486997764794114454561349129219701745212867680059735175254775248706447432668735913215342540997704823745875168088307415086088758846619670995700564218119730475987431589251912067991026038350042096080056246941879167449089533490426119428622344229306340476148201283700004281122449218089829022526861493489116187810639458572114657754233233860594385488695139514546794407262773913327010738042367410787174658445550852207027744163835120863540065453975780767680003901089396074919537410529275828122749115475072381404906597940202665220459071296887556046015587208349219904965800148648087659460092347944736248168055398460268523459778300378773240977973071368667515411510525537171285088981382053562479034362916084340233959301864118959372271201215054007260208542299979247021347765460978804479023526262245277019229289967338311916054796710242595724877961516711776677595629561634292932443253013528718247482230449428715862259995227387759057763329514117357457470364683690104971846599758206284046824855019987781968808111298565898002312260849984379557010988560635306959843553132994822051937362923770518462824479263038788654325318206970463931494386598206307671398397815149309857779810306047963608336687749726731200680124468394673015605944745975134458572563733801402941524950538021190998571948371301988606588852406737493941565134794838001027459878841460128814071459678355912129281108682937950463477994204157129402498428509604877838648953743914203128689700022502083691665257245062590254870023809806619417235111557882191263318796294242121888878101391468750561367524180450016382027425574817835112047681183431627915442713722987237842490091482131824921150662261969285666015925783458920432127100436098145961259142411344295344665734025810663958701027225836194155236602445817284534856725369907160749191118564141433146753758276346287385370158552625612068277361159679793187847685680003557489257129464098014500526052715798651136372344892975365470836492620627022192341029232061576760819488161852124807210339747341101043630876742218147929046917664601969882573961877964788369566994692972234131404041473372096865325685677578849122675586562795962941309208791175342979107593244747931502195972510952730636900555602474162673356617429645660103747314407505773319771666154931810742635834679839175137622016121016604518817133367800007926692409323297150623992022027322149905541363617129548219420351436119781794689369200887230992639362068808775701667800645684656118077725827943521362784038155099751266694954370219380982662899310113602590024679946439370656837309683457064252160008282894555868347349938048056346394589499938558191895184989485954550944087838468739095002132887836618999602691945246070088914172176020119007633090612709772640699888263396813020613734365831322218474334402273161479428075827643928250894977924960436512050184233181767178976380618744752605768203572712147959499112766194485809613990099084722341640723842323036045447175362777477273125688026938667689594501308563634754163477770608755368106019092132223466763647081165886268850965237042817822771493116604279894062035540012366837042397183179939577468288579896860942151493688039087475782575261794450706775048755500992508970818911346507909598913905459174834466507690889172071664281003050993731557990124053018668655266031957904294539748296819750182983355795586849298481742570354191218868213502122504299301635314694858691821823088005610940387557542319606345568384878580930155581376265532498283693897382807332295856607140949043441664946923123382590239833188032764253584637698019899472990530697155410448604503557061199125899013388132798039734559167348709561121736474728629457749613064805856832057382974257966538643892657351821066143215383426775838603633883478818833896871560425821362316264603481727163481572573298614882194989253546037406840537997430023977364309608061790055876577692981614728655388397990637545299083694074568430492424913596248604044563975082567279128497081627738284604724877900004861615329778999420998973840481901176327162375094706903656731246590192327371105767127432024014777323215023230347604052534624611673758493984493623230151873884416979396180701870303442903604085663997128769313065778568739454029385824130565249502308016452071907199682318506891348861209142059358983429493087721036941092682839809080915487814733169595914196949312945158407287678407473606096785585323447407453515745120073753707783692407984894633589902722672702326783901907291192885167006989389573635228070439389636252872111162937088933104051159019967942506970518766739622873800543233365416134158891436733318924302474176951213057349985836539783972941081288356123496679108440902580657753203192407467107700086886001978572642378598027996409986414343300007458383537029516574567022768037172157308467683784469608240805745064096298982204508086368646443462980498766693858294918513084094606242006581609170906850709351614395693367699233804866503939525239794039276623494093557463835727398433980931160005460390689272403507422197357922066678448727608443157346938185157908661766960898660993553755504634087585485306969282299768459095449836390681540217056543055236591031354819552561491509745122562330242993946091489149478243149294837541453828328077350215838906267008651035239690209313411315465337806833854443172523532066454536185278892090593807285285528862374030432331022777957945162799797235117626738991821278425192183253344046813532110521923896498794289360752731425622623454493408924005323332540036662116234483993110776981403785988753098139298681752228115572092809297095785103697857007937905576306626797481529061552398944855246853862189320125794286732565835877532101014810093320293900239810103661402333449881743117146803539201576090507505214725980545864143532597459745371477398981343143042931699188832861652065646581423656359683274490372456688240804303171301203141554673189322055205621978411495510727218590461276414822413079489763745011512514912085799492305415051653387867140688761774701978413606915885458627613417301190291575800978875076269575072531123483893558893460208547024907669050630965254155753118192788274565710970390730352821432188784548004231840120965271405032458155362499037597122156357127589298627180192459804834569140904300870245182446692274178434860219784880231924271940972409424677960737868435977029981021050362360783153547515046646047781144738516457662184112436916783288014538587044523743504995446687016978934612906346932874319274639878219071648609290024319055011530572370455988444108831795203793222174341226110605335702652521793463732570566664067408101664492981394540429734254255607907626967021932367722048092082862921936216664399189262020020580303356720677020869854660896270497267059989463339006359632688431488175755346211011868426564918032523793502583007508916505045994557877079534417203106243544818490166485507477924909805361264738707054117492697088622044038527122670900664846150568387092703063977413241491841504838772298335334216971952424635277605726880021234846532597155569852608965242956271198536664336529432809435611954687984005866996286047596887243630031435514084572759662309858196901157323544751437297476647597926606021983673336613803682695228367346099143119175561178246534447306512800329635944344451253990146775965061102830933750818635212697006667264353810399329594625913320639952013962833712528944505268571951668606262951202273051796406622192281857775662031559609078180829786026443528048891768217371663854383980591751459208503783889590068145521704074260127156671877120641552052779104262441594198585726338242896479099873777250788749933312774225935714967781750496082122414148925570092377559209126299569166533829855270042370024193060056639075901423970766317795727360937432157777394185934347104034799088130529911888133857018902330397097211318268774209608981583042213757895841292045553496504405577613708862788285994963514316817163802832593170072242150830777415123617763707236264390682832208673472760735588613104283253981663334949937739685215581922547642907588768480676182272070248702244965771883186147301772011113494305043542812335715810166295751695874553630960336023120510262844750970123108263418901999236272456656783784204371220473065507677582005287980169941582317282934923021107196668986398669797891430287572784565998179589888340449860460902444325987009176057993195711428921466798841466874719156247111446429282191068462231216529992041785307748386805827853635935376685570106453560152033961634713336234873245614402451588632404948629652800360217708738221953858328945580681813601424347080225374110714939815820557975607788743279765952070655830477486657878620275629485756065129574565458528419017981785389279662371391561676342663746797876293721773749980842779893304600619929468966764229896540426635359566932861902519839134598932415339851865778432389061132219047405343138811482063358535815822695062371136077415079078095162050329156384625860918450960810879439133547748975447761974265472302462967539015328171821675592894594145128547988922010699074450253833399203060909324368063493092119831750657941991247582686648774018565530254854949880043980338781135296011299183188172682227776244899103617563903607973718973799519043111259365351274477097635363271169847066544450396375973516520300493146821547922192526446924801833899675634187871906374165175055173692170514558802586946092647126828968853226653777980486958381406711291226473009194326498619289613773739089472715756576963549401903886212318779088641299496814418282156244604997028446439552624567214933344959133754358235032461683785526250794061222030066096573386160198670092739334174296451709685785280206486516075657099790917701022096853124088336933601642466623476969450459158071536205790600121495335319842198772285458249997062967919473998802864403990679087195991061075144889704251001965618168446063138195870256706627879163335321882306770099532880755739575610679097432583986752287257994303096936103633258842626766706598877448337196535884684400820088714009716419551337209782073571655529150290394336911751280214171201543611155469528367776419394397626807493512732786015859193205040265047303811280735275200662004856157037808842998563637358300915732370471597539792011264091572227693487023065026110699446476890464753163225789174749119463004851854940775079998149415368073215926312567937273003140494598412933788924542067323186803317498380124414498599253998004711830006152211793326970077944400806134174340338735116543194112364930118166503698078859544866255577325509467044694160993198495578162575942846477601624982245752305410035882035950959196762343645260110797550107306315797499977311149185989358103165251565479899937192994878277971962536474502772516324987756406471270693855642775014776139028435864469252553471398271041029853071159550975757850553461953568669304618679996830658322457997306949750960214453633073125926490816316278420464874812987541029183982280021629415102395694192236492781275966510230417986676410334873309033964319781681898814576913014842762119171394132245290260665703042677074978990369190884640460345118683909735690819058224208122599274553034181907549770265537635440293413652788236038454014457031434782701225560571666774931544599928826114381063600407359552332843039891445159500017182318668528947150325859959036969200137206861788101243793264622265409069110262720804019868399027290352557766326741417672719619400219847319838266918062513710278144397682528464403773271832064140518545340488833138448612595254819963155596900630302286364722791811302827434551059626105473979137079640278492793327563625741954081479058448701460315916005854190964595130441508388294974050161779253643505521812270542257275215607484739290051998243810752883501435646828589850578987733461062647350319229776864586837962303721217324972742906416465395586561892177486014688764825725094376744448533064787341628914308939557122189245840200651517004673907069598830163432302799208328810783120733239126698699850160141676808172604630327319011290574002630390707479664644805924195366798605227268834599797367983586446951836508174641945333380120921965720839853924194187302594496680856669132953693490294348223983317262635878919521557779671120598610693492671688651944095190851741125840596115266518561824467525366467432692041800719146762616841500511935969685755735117305185036957069744945577059671107915924164202455346284640483625717416306295617404861051095406257492840558147936382039649863930874317366573649957828147440319189075853200166323998822553384676197926431022546065454848366398550319776038986554699190491470418396616514639692287586830088576234584120968565438847314020724706557317163155219291142676381506778740160551526204808067159735691240734445678465658375508503402917558774343987057718493863409113992119715913888026223093037228923852628399954607478390842149301863501301684026144776796297001870947849458270990284876396021716420369457639168511731960901316556643838762606364918089712142962175748778907277626113807803418025492435685269676706776962848269264450063075849730687223325643793544453154104945694086783221412568897979808506279236003888936772698275692384607047492045972437927978440352527387030309149856479415905758118886921711175778774698762870215691104821930955680348273721829962161352598556940574309527462565394769650766664558015172036591991185655885225999592738476827108309968762262749399784831402028424850055151620719581787733851144220885358515836235722098588725592658463237216697252157371128881968777787647399825974034852424254808824094582046963236785986955136180150305921345995855529210491540312879012928168743951496973000961875444929921800003182764872347027390883430058175480282938324512415360224728043663537504836640674359998864404925456099791599825511322360515596488513086900370383466771472198956459641255269327127421460295611607608297034803359568284906608358159356284012149876727058524895910647813121580538849883607341841527120775750008821725126249192155187793287308574462279089869940519853188155038590281858895927727845688935638142537928544576243159144592893108822554746272045646908529966173656069779213675181853208642577945366279584187559238208576545325389250652046213407608338437069521937169495650185076480176187382332600181004244907553226904750621765543362263214833212715041400898612623468133065157111406091325431636707634507424416973881068657687095469980766841249692703590691267037616993649151961699856663019475071484294732975674853335860823454944342846867765092719872062410630661444931251752516338696939370662606216842535835583101649574658120223129357338639787499298479901599663204975428188515427799933427112106431782317232588951781562513054473651933536793998094129274972939147607011307170478711058702662255810832145172911433004816938838783532751223868400121419310629853036489202187017925296554472990115456136644364243376401188402760098011442226974367857891824903200374523288983962179208152494468433479738306025338338596935449298305783698555564813313714984692043328252823550495955935660479861891004430784881924996728830535851440344205208542555402761105648070231418633426135867713634482467022589216202582641276525266954015513586142938817853260735143941502754267696275907267512687234039843309909895073362822388473591205613329909255045508232418686201351181854986482430195568950148775914648873005604147470153869088763642357978739008107782964507146947129961736063512175721341861308521125846363266226369194421292350959015500912071152467820893358190995845151009466080632712473737556399078802532470120755965898171924808521051593486744861695350938946492810039163573494044100342888820774305850993704669377871831129333157532448171756492875859808605148400436714153263609263485759559550384566952367630916410205343118190767104291521991809244385803687244174640712335637019769268645085968319497098575209769642793103479495883653931503599457488240378332344385870873525480081371398677161409473558584329288019925842717621406887315430626560211708402447886344859510074590400214356736085284517233224622097314598843979661205384646331075134447135759271535350443983546816970598415071193700090792593742771424023713242619906238994781969544120789035938332752216235056070922242194732317566603215004264954647151075655539483154195498690959391471784744399867965555161840516167067934219404527148979189012599523221319726962091563177034391845660904357916922095679648750923303571065839576232384716225066073558863103628374633002237970523191284359715664144761431161188416546402139239850415825772619788504455862858839414865192533473978989497579596698029785448708259997098120251829215897273637499327830020057848357545120955869269278539339990602349568196623215852846380435265168387734030727977236637385674260009838385285033153628938888583570326944369790276558438613590699186336908681997624821912108784443622650922289163925095518752061101429477262907048432308061844827178218230516591867601731710756144728359735154849348535439585739785114369104775167570841219813992330619461978204071580210619166366396559291790698491860390223295850318782412734226358640691560858257067694956964479371255948779509750090913875937488312167917577791157819878553362552566511677665374377193468830768037488196163032181603788673813512025674686642008907027619070019082474226043490504091275668620598643853983283655297590184782837109096062036815769278514418112786697586218639370849757403075171113279923666183091054095570303177525940598235631377203125380316160004352755916510923534058048258975986025376520747288199084526255982549866063765848970654810765870783103884830831984036352762666506571943762502497430566561877642229714151265936673768972444733992554387062029668099528825177412419581045715491863219325599561173099936904513512275312316908517467914107920406078867429880167719633288014027595934389441359909093899171016781741903286984656830880405651099752593394483087790929780189770146325701326898019726206494097326876274970117930158912589161844226961430208646544717100285668463927625571874033259528898142006200348481412361664419043937769329340508580077999898727361420366014694133874867432016235559603933347378413252935633615305377848855727591063667452135038183628533792818228094977237313806232228877931650411946375016381708721194875735569383258723427895712073501847372683797977894424965666464624143968444148580663843666672374604053162197755563533351435570269525956720490898980044248402688466935052075949567661426451909772630334655214591715297999890186213345350945433125816440011890703831188699456543985924860817395217911275854287187374315359059313744604335120100140182148546818021613623553404217982364100835728613832592790115872060912537346284455380065943997549959972256484898191364937072584083466832773630098893451318747015548785902812836716698910007706650259550598801523632912375650927689430049319617097284897380269945392095807089973980525865543577363448910999351882228238887659083428192384560329439247945698284568920774578962937875926114187167720259666684899245009985290293222340938403197117566443275083074698323613538517341562719545056012347565669339910005288670499192003294492322773417971523211280863000625266722419712371270943303118033985885878933552316620923896342076799770834875631518262755601087847334414144623506925639174001116850739277175400873226611716878464508460765795984756216623090772109967056307088026790812987599305051477678639127465856622821105093399607251414338845383096473809719311721029313095564923203708681508443006029945006049278305916942048183828731466854100260789576745641287156655486293219199898213285511116064615020894617963083315921557867833090812866169185794222203497412574810610378297014419570141445778802840491827744604609842597730988469283626858233645493498769909544427289832255423462180732674791214101025514877446681066850159098032751315962618223883812953692425773453234844860204581350734170922722670133783422418230970001842020876251460438258778199685768130290742475122185874319375883758432892347141507149187800322949871925335639941311813612282072802691057061758161936354310723975075665226979077902399630843522832597069664988664887297872856127743859505375286089286998065087494169222096304117173529288030042014409476454531268202208500131103512225038561505633544233886076591804628511087956871025078072133412505445255993672623414256318338720895224558487808689507104195867050264455126116240839592840612624845450295637701308860644325761115625045179540688663558421338994673475643710158654478430893550878400874179636469770021694063254700295922709871330168141328093100297480006789955894519025522029592400314439312350853123109840072929621613584547060484100081972798041090770191431461498143703655445024064225312282620757523163614698341390174181779937554310267006332954228407427100047555198866878085257104183716203453452294778940322470741322892307498898481869248152663239173403869151653220281223317074603619750338868499428143046726104469911585176397219106456367033206018259118821553068911408480928412278128546584529056637143654169775467647350657314483715602884046878147697810136009441430482757172736970873267534758505046633414513238629790926622928786560984712633777013401118059453245442507152507160279844811899999358519127366126881375871428035730661052276966780205958347793761939456209642451756100073651790693216301987644429532863460886199062878813275941683409390628354533322525523186761480049644119975487712331440414028360657435040677896454689710648879409832723975304339250214939173564513149291211198547606927731165792869278546476488588790814517963837065848520157379329057369614373714409026516324113808079604539651896330173965763039392482905268961939536748822324815952378168386607541551502140644225899850557521383564732588374607384722834508641173148485975289095982958947993136340377981666902578361167241228340199486146787124733329959907113639803875123320271181664180261942752743317136596172945812284930919935530730045878909563910951511112252215418480111815724394709533636725972021911502441467936994767967819963641175807475125427064303122776427162569116245892677747462560346294066906621440242591188204931453753022603490564259640779390699392801511206550875632445619278200962098756436779946863124016217453162751631442374496389830407849655585185487544904474714650946663363794322410019942955671455242499867659082397094018579230134064617281028368370230573619540511061714160913610671666291673447591894705391616258933978415602078114983227378233527905794897182158811950740200815575917167424099604272794254300511120457929430163803564320620029665013888496124073486276178116217430639878211001598162505373034167674052702496525566125651915235667284703224933438455535939932606550354995961101059650159488035516546942262259966540060423821904924694831291519625035809185651586376727090256294869489070406807654917275074751777959604423090689993079934363207483706289310482268282403651995178828504737055969040463531420027711727949375596963210848066715942071325113741943826968061736916600072830403200468275478000780640971206632976583972742897658830773543996763556296561075873279980404031396926676665529357005694087129838920255790845775484943414995492457259828574956616380770161955889928228614362721129399105892727973195170172525255853468022256556375201167792354590468459512606168178667453627148956390143706359002189369651348807023767081267643400894925500999576137082464469025720164803088246131556979693481414243524687045956408338358516780230719634560577904963443967167864453181316565420028232816289551237114244142425540349743361254867916371329307731736063938587206588745697735011116429262556858853411673770150490710617800020551907543622844340581466487791114924629556390014990878028312617390968259301546401790154123108807314223432934213788845598889399606559438291831047313969624666379231294259695578969493290946254801448946722721224670266010190641069504956022206805617934721457651699950308645127230737405638954753683526231007560682139218675573965231271404479189322411215489590002337677165052255276198400639239409309607331107557417768250327794050817134759787986726919802726149607023432626327377335156169201240985591644181303706271173840633288660924015870994327094734676151945458198896825632238646067625166434239071259818143071100578611229158268342043437807274206010547804081503198680783675148405675885985529813431969942639804436719096970628810778098574666554872107235977728702988745768298868087347535525784122899186380461483721149228066464946918758805129471898714257624945381379047439920982202690456617956025553694507378304620614173272865238575825707691658256515523755374115301314889856799433794943960523969216926109472470192963275633867914194696713602614035123403596389442269133107816025173792771947579825604797940392663801111677344491167713558266632198497391646347547556973228819799203071376685467564275980197356421565844912121546703253280830998805183303110248925054059628919112974907067723078629786468201760754724825580847939554245521972929443568175690475652338860487722213279896941790521240465884300226790626420861702444668572482661206885578009692878313726085495678367187923967747474839274794677396735790452153538649495640760985112197104007480389913932457295562742544967459164669573531600719454916077818167005356005318384391851014328037636671890735542228542685765425720058375235733115401521655756327604073715145233538821936447024428760012886270837639406687292044156971753862268714781294006508200207606163724821626078860193255455730833233790958227650365321752075503661651771410850745978324902932784069382689391453880768774934808039668950937143244522140084545763222097518255892285917351324516254775824487794601647242642017690639670307743777661361954654761808082560118515847906224065716593213570263653398705413076552120280668091824459511985989378822795260917102335318602456873148454369991420751778371373301565323508647317502134608574863085771149513079671009708535331505580268264284062290352300105007876902004758503769338188776351252487074287213461117036063744726162497211281654588840068169991077732468757315676343198965335822823639191339719876895109611916106718021469235706268655553803789184451383225409800663663880190552751587208878564566738347674772117193212212858879475441842314812928489065823106693954462408814123319507181218075411438282403357010385731531828445744002237087447814478713823494995019197472422317935009103340724413084369388684935715830129234925864087008452350942308227577052649401830988369672826538128239679352890226326193110130996540280065407256732097566988993948374297796973868327665957556406477200154799450260615983695427646877141893347349053206436234311595917119803415858324825296140004764022904587199805336895787397591049072820204775669973666231732927999763537699569842928958874493082412718484283456163708433115325617472301243442808246217541420906381819714867904381954230666118152178938997743918147164402709446168552609946727277180676221464270030779820219317586483216510803128419942531929498378599674770477953708972103051884031254156034041468414565601604798135357189598232670736365081643302013508660572903304308004917657264831812617995830789834927486653273781299395659828959016317216811857182383387151977592238770274364114511455853512006448159541947983161622999104947852861459646112849999086785234321994701381745435718413319240405288428609845135944218399754889075185546784149915055496494279734078481039391775782475598078963838895505385606347078972965941347752167358708216447447169829183448323849206463347106210783690867236933930362657692464569021655304748684355315204161156509017581475208400525061179607750199491373611409901190628674440147626275550245432622134978932638513535142004620755932020360787212057723233474094408254679009933355916510652520650164327963057613404621658683916003703083258142839777191370541494158845285998082849087426708741296289606285891592171648931679841967921767779507295182515768484387936850200903318872220328605063469503200360842587087656108148147004883325452336397155731997848419260255192890930735748004325047121264154079509599219020556465986035298758017287413537610933498754717928270663351981844379215626427936666445274613234326222650395067668818805389903967144793346373723445443434415378353215832035343707586893499986802205867889676005940379963213266006112679686762849287661404682032198766270973738930808447469374925204347351809242689719279712609010591869576579748848341490940395526375021874917096345554103070662925011632436131339649269881599248961066601181973320040717299797959856362297425351886418938285183342708067346707196406591113899906711271221585377641444775988850298120230097269103274588411999953450563429429777930185813736255590985021929291745162395055247258994041087632208708917576527128490796846855906965857029484254248188112483733110753745130911894352363397688627758608254355603909476903631490204636199661461550929692012248458097423397686223957265256724350534804031762220957889920792329775263700569498115584127048916696843217684847385671978647797061573828613202484482813228567725764999956980927431736868151916375854780731498786975866148010325505558845159389110647112948085333365412381172129704508963455521317094868285497135804833036679637214247977058206930277191752302884876006641813092136676760849633980360423047301665692837169155380210872564914288646219047698088466633909948479064953228908056831480564782663864035543022329519899476374115352088518751903661953243476290518957660718084754707840073005170912246836703124732528822229071906955743997275886383573616330066170249552433865404583093708725442734671163332882719585236550989615403481955005119033421292047858980054044281727953326848110924622919573733035052802060719388840196913369989225929610705823802640653720564097367966700932544016301807835825696082333767789754081089126788168851407273696943133324704818062821623757712294256756431453493652642581737417628132228533076505602944514664847720094216151761958547373768205266393952562852083045740912628285882941448446243407778212590496288350844429918939643688409704537685345329527273907418658845431101696218177650702502834502394912114388677919717702796610438322214933517422101989413393923255412242309794721681221852427156920254509107631976751582423287564226412868330189303592526182314551825980895855937325394879424485638629556767606163838948382035234600704219578428760893412057418802640343391591357066159640800982409037824010123862901563925420343907386255975708839867377578750535349861897509687082039194469728730133643871204416729358702722032479929499259739925213352928796105095778299570249362968681862952027364105384465786759409716512580321478291106045618418984496767287039901135881561021526565467196061410753521971023516404216211536855392443842796257842341490111230971369468624136574487175816432210088108350405811930682358899632616184018509415554586121318396938419532800521851395949802782493916382505380869614460622415730994503507735073777806295610033158657981953236979067014208377438070466954590901010029889705329696949303700296453251572009879971509848397100344390799154377246740697602674600620270915437621854790450326081088953398193547723666600545143590935558608129697591619095200300577880128620967835017884050735608005793435378644962144543447934630314657278741185011617777389086788849177378873950663024874581835635219651019664700903507941699399893134001519049411440604229230731212582785967522192919753085229724766852731766374812741605984666352058231914479036968803527655407319425631354755202611706479068270064202288131809352006875048878073414388059110601860260482381682650560750158363105909147815747259369993192379131119104565417933187014549060515626945662919429268413943977525692325565286625771800875236792413868682908746376398740313277611800976785076184874111342720923550130714371919939433468729006868756837448372904232204689491076407072139090530656280529649942401082354693305097149579407604150661246564740942453432268233026754446749518442173390415850272110930815169066554243277703850080231190609672421970841534880214033193227080544006569684598548379121508854576889703742990552549753845177577205640732619968926569816205864745964232212945719165615909825573724637020306101695976208457307993965120242473137844246296043818622142439460805700734066124589658059678916652968851737581010812391460250448089729673826057088592395287523260794709936266642519839845579582526588781140449168474665359975540610425185152305403888610008680177842060398398906654069572521602409303232126708730580454380026849181701803057900974956585431070252681000814424218386450505172698947023454176422274158190418662249317829948613294168187990892630530077057597882331594143172174260990659141112045093818626017495483934204629663704534921801309564465117625620399459310944529241641540032307583899638477844267098309244582842114892499631371127136700882169838308542118569297726237189630206690923678904259143852095574609549293330656052554076760511123406316757045412453187107318469347531192787425911683578126777868537285160091394661972680862343729551390023800640999519893081065042085324085094851621040508666761884709369479590990910976048468916747255208008768192572213234898519893188395546221662409401639250729848178349155765459481156299584357299558070847473616576355310244931995269570597735530118803316402264743778835714106842706106384488928579419843936722998864455902211456073058055748037459476005442377731600574960217323700073827475841347897971165112855201808461727551592588317235104350269166348604227482190723761286433734960418958535638684861115719660684851906819716541190283321472010241398490157452701418386465087505646582353687976614269823747172693517130947587847548073637514676354740415938120878722245607425325937798991807353878074616426794818896789041490823874221787648230563235706543579417959459793646901896406372602598406836097402797418812881591472192232354846539890981024499156121132072550694490397342300228174932872028188094145526826145621973347100786060420850551504363296189162614251840872460466330010197403780731837991877428827300456210640754806609867797946343376716606047270196119358416290662749755523549473299405761109073948047147649722889345856835070631925431708966026956510704495277763459463535653498763904540179280770753898880843152686263160619014194914804616315998245832921715496275346614099099084866296352014443848710396110419169463836243087594220211605758384000672636866047159203339841855779994297066863612936282109267126480288749467085625500350269006509041182526564982689573244802167218264000816873143904218812462316331113553856750758908073173856583428430808443995601177529301321598286001218772112800424597960326608993298250619840487441622362400951250166842219483235868791208683663970196564172609558491354431444135642789287199941460334451940430509912174489838352040588135971832079888121343583369637285882936261381972274352148041873125815923110412375650181426472148399931985458031885952048299496467236328823197007051320645475738889865149892270783825528046854861961336431796899453340102244763566691024280237851796700050205267938412214153669857126543150075140809126368774692531668873393523658702068902777206651174367756822346619542431929323045410648049023750440743638061526864530136885511053483164706544685816990091867582430384724963643246473346053352050544982348659269520049799816723656553527477885449412620869521203717300846186493967813103745159342543758304663528558928428771057271154493415465060160258633698230699093303461083416196065097600926869868857324212727236769250877430311181225496561378788949319149742372080094783685615798792349577673553114574681773864674209288473522784940250192427873014140992813880008258079005062601924180407524753390656390896205392261905518300360407056589184332137635289290274236021709978019427163215021684340521044196099725928976155584396234337792881994524545596366905484513055775127348488093909810633046201884667127453873720907661166542721586070928195660538813373605902305269306963413371306397379590196021085147665054482042544196872182717471911251500455551206611582633542195976916842107112485655142354122002669152955488171558745909790611728533926902358452433640107423067864138438779011559077344589752231876699831918410459773322662985759153823920400763475132332857654956246666639276971957328192307889721522903265744432397503918011392000080677265155742128545636495851769417471783967391432841222087675126305293379506248833782852420556869382403993424459205223135823314935547637013918906646177629056055569203104939290733170056496936750515183520509215989419170798877229690196020310680243700519896264342688440562522034545227254202258785160302726112796682120928080560431704732960598157912504716995401808739548155083804125997554441763254162380137668467136250735840120719796851782447230620393743215087069435470811288475671843276353809686392295053849018861768208688988525398745756592042512062769209716340813371478244940292958743307107637982163220279647001180637694823463731601528995174819245649233096331950687214264877360711285092463350409075408560149945489624233334863817250360322438695955268147699465945478287374548178951893996762312305032604209695858899369851274622207070706432257950193681677414309798323819868432457376345499420971561100766446737324124883367903986632357776718785675303572094607672714438145500350428089891376267449107631406846214801425682518331031780017332608647429753765404100288562944926089425931989538451478912438293578756630378443829739659038651555580755991334201275766904063104863089032492675852272965723421387682966989260255103499357339135554796706714718503145886121387415540290143086973307887707965808026468972827502300538861067394204965300236219212875886477002879876204675180364598167362826572476906425872429596346897584090241770610171162104615796608761861208147978028425205033599680321636554173011982506139409360254784893619815813817272162440179928365647578598046586262201696395398313147916022964200788421485860577312388251293981993783241261697726313760705039273232523630588093581371147731751932845265232182510368864510046683459450089015884930585648084629239314459824659998735396008886952335319914639743273714174425018802260521266199505970118485820003156329239568025309337755081344351965240347569090355610240078286011717497249982383505842116023650330431691230309760713183514328469495021708646992164563274085365447478286321040429579883023555266178581097593856308928950577309851553869698466758975658783167395316406745570927818551193735526191982268869195073263926168690847026008900583682781457338220082502145679544296690643363379953239549453990325004716306666098136448155141348140794322935169435063088373161810813133042375418051157097430166558874114057091114809267628857750580125603739882915587035241590259932869455201532905746772757172338430451225403193218431901369685712027587247192105346518111953951803144751703156827520179824989856700080079372998320556246938987737015603770317425342752994801107552867773732594690135459930097522185982673602456040002310012039537845853286067589889532375083845647683188200454706981641176260061080057158372200276318006171974551406106264561009799511438992560511798348485329060367558804668376282903411582013305082115013796663642594725506088659944219948905549723157710002974303042693811335290866234788342564314310012812475164964276617988068627413294413728243908326972302744246947652819363558717608104354899032442959919319884316927858384955963861056959656582857107836601396418804093522138165895079356270916171873817164102424347769032517030547380022071930252925044776860243536029643861269489301321351652643791516978892307717567055430910492725591941016471919949211486518727818332941855547051803548563670149225813018764280465653197543707864474421160979561653154508245320400916499725571789299824117031220035570941810424841325614200409526445326568042030792507913298396235669776820537897389664455926538675241135662116403296168961815622717139444229070338509690158637387748942290270656079722492119159528557004390024025702303189468306775609323804345161214057604238483152371273203383391318500522982026910334320985637162274560064189903329531197410321056969754710147540641198475012801208963027126731084517282663774637194278100718088964063869929675216508836269422166782688381366309986754690810319401035874493026630690730914717596498386308506375410090055074100251664046707617255161045424478249873728394382549559524270566342603631511578605348589538880038258804381702909448887372458901635070421678905407275647813113958405536418692818734044093911864701419419472149782857018125740830589796798584272588080826268840536918415952884840328165522790766241092606158433315721903345993291156887976168267486502882667925457468168508509158230682058391085102988704493908770437805692472179512875166424909326828073374714966368191856024803321153184369810663307687815776525105257956319452067952322575980289738476112521246689785053051435451974031949489442063586363477684446970088959338199681404307422083899889686113641907198137898199561039237752476727271318335732471103779877012910853757406813736725446093813842907939908080180931636084495630282895205654670609395777208689717496483693999683736813776467795864078633122186910630557718956805821408672313381819948686504379155567245708667465703822797240858001230145263919267968692476783987379123810116540495036003721596146623011336273438916574031739830344347950295641950028585417768068354317683020583825669603613132548328708001508061444912811211278654667051055711040841828513795006194110644054597531745854870129909658560737794945227240957844360028409227936806826056414200150155240525910378715445272566421974831462771604298843978675968801277017428450946212074430376582071679393979490261897189683100163562854304280777177281143974833212256767847855927238310074692513680696462236912921671765234682662957156496330251425914962513641404509198211108434364160078524054848292672105105380362667842631366883632645861057739056062935966372604687913056800869566598306907855872950184105566601163821828529726320833479179229574780660538038895774352111130584042301123933541358194423573333578057516991759178098005725111281310327788525244736874352999803302767733116831380960300716519760265507365050070184363310107033617670862211360033471066736218843195454931762411005291284712439362631883255131937283284663863719105315494983666276532118890635212988741545085079893862706108569324336207801544067898320344338373942177025303777103012707731533472920560369300383150036395262712204293797064992201308674998334021474279603742174520809437910788806197141024624902384245457843296531357698645545335048760560764545190245181189949028501502113139555586521571296248760021013358915056697018902327104334479532915797383185378916964344029116314345875251718531288981274727700984826885503913173983080052868333591003106713642646879409293102131261197141238784445812635777708947725114303684295141469057815964531945128249167694925410361755521664242020954911039321493825062215867695326825228340458279195207716774704459500638410106214537414306107574938984649060939593992260260112102493367321494251323589445206901746879907928284129557553977330193141584367993464071121360312890647358258354397178680794054277284176222314720823836520667624703154305004173243269926170761528709668285129995487153589481631118722273884854844225164331597695977022996243688966078992132804865482748262167290583063667015861857957684701349216479816854713161575836022779221126078178290187076940109460007180334984852282001323940897508088841634868974069703936366021197487965260391568450332989222793628130908398636874714666350561315463801306902709013248954662174008392972641795518862610722814650956877447737861976081187581021159009490285878135335331527094108578677217239236130534170977386157845156783637717289065872581682886037553502270275731616601843331782177395833419691693161991464803358523251944075333243608064411712413652525911695931754317728576182022051601543436691738708369528605537149077480941623279611490276432817857510464749701792944398887638256972131644470954463499000824819953303945948480292369124886009081149735088313243923358193653407037515431332539370728612256678691385614217278075608263862649747875868470536423266383705828387442470592845446237539598019210702876961195661742156757686670982090418180106774345385179141462273685985468051920354399699780490912895112426378825990189635531467366090726531899077411838308265682617641156178621278170489860564445298603382103996209700451238316119158392629332187774695532215451711631786799789409269406382108858441649957800787304936140928744983888043021650647422285766397628558374992067745752505635598939821210978160524600624659175858054170289003905132305038497768808744724451455854683976908497846910062661614830520760288012847200264938447623246952797438341011935703340563134711070857466229175979972498769518093775086849678021228718113733443557340774089894984718705048884810992536308008987860903963690444809854176878366312739756682526778512698580886068556310005307087447482962980514072023970537474227777918166032329241584779531729452963170611169739409422728576620932452005384502510492081208226364060638882315699736638935874201580294296889369671790736003716699886714954529429357579577164280485569404675775496753459390510847221092459760830983522111002557223056484130972619921651710825525148929686874675538871109228994779161167912310563288559279683728034417242193354051622075186915720293038677456825455058916530091519140470639840849229404467434615907496446702154073954296975811178421488140873426248100943217948569214900088815353276502734978130681173701626340757438644602784745837507647019033874913082785920241713148607159627099393333425891215728824948892146930750236643799022875732356857386011191856085334556423433873037573764250869429816319421693426337295461733405818381320882393284820313346634109236571943268304770858930380310179566740300361957089929031235080318785882645359461364551716264568841768288392437048455672660636048863851755467730533185969295614404117534832468444311740989013463459146092157517539290339714914543806816123959334718498638273085331824549549961338818416229816248658666316902455728163672536319343398734753425843782159385751998306939341678779206838929172828371373566913468369845886229546100121012050587564281684337064967991256383726722128843824870097791338957536111362440005672568820098407821118291684566615255870349436199479052745150281982850324012599986484848421167385965401406730602440570869881275165126440658992160754895251694624455417750294480886191230176650314036054385922654091122235604861718138479393455143660237461400286115744790251992080776437924200696721340298566663084121681122063220597489962129568322388717981914668150514890920372280308859150769707758042960611866103614901412096912883908937452465695057288131363497341807627405273089911994929880256847410050924582765742928374706184520441978783220376725668466939395354776771288014192127487538473001459388301583975136269418034727401126804606401820220174900657615168038850751250288083224364758897048043991553870346728212928859175706496676254949676360597555157786503324361377016462633447542134518917274235073988237630804696313600225726675885215140953105426691317979036671540454112065859891478823311547466274785953067419731755371609930652744400587154475538318534787621513255224248456773622100906083482037762286461978228068843383859709305040222737151290457598317786016545226059047318405912563052995407950756805131302290208344769645645348984973976253610958621899940676875567046154948229337423909257451580348304555342537964203270000787461452239581224820947394365831853317098811832701355113984231162682928446106615440458866925445089516001805703510242951719451111934839247077470194942057727404627412046788919667742511783837305588639401215117542392708102155722550191544400471618168768068094106791865801054149339931111613794063851035392155978503775428212798681394344998065678629506752860924336870427250234135237595331943576276384176523728136604945450051294117075078526867812214377279063467597950723285946760413588880483434327497468785802690967919636343396216568116041936923971048877980625042878857479182956429869559809130959741785137330913462398767060496245381554636652539351291197370615357678960763202321357766798114018021013006553237863250604775719281976289371371161704574858503020253673225394127708501740062022042551274511925081159947639709504817705059768462654218357066780053418099249457893300099217293177974951323026233531580544316578469234559556821416883804168693848633024704600812467802467126979311818118942990210352515821327809126239614654026739073336989390984295682351677725707902404883811204656407788047408370939672388924113065233837986851541576489357750747189405511917882589405251303964372813995793594949291411606652529262728869040807217481420433600395143654366999284665202390520375522667229262327305739864414129177175167178056073954218114160171903199217493155614185532348657146086890338184858981661327660643057853016985208534109815783929541744885237884670514366240887183826017708183663101602949102841850273479134411193945173935409244884301062664969683631775851911427151679019745259462189722572176774106028820553769857481208477264984361470549018055530597873259427469051921491229481623768700498269261612287920555889160246910677207557083296181893015215899960640020881146527165198835111804494649828162202790706939896366392170381814393564416699075108615757360145665041780383725360445042496389869874618021523349141831712043310421196482769933690708360011505912608754793342652236201365515367755947248204457617561174559039009311527530263374216338028319381386006707881813035850897498221202817849806074789503632814587378488121098955095434277761884298090956259811682849332780710199001828956791362615303526869699445811968306333513083456962606357159794335287449736483096073778288334341165878424020814889943162169390942688642577252160270510579960364891810823135138772656251149747228894754258030215180848152000567169419481156723854246629162487686569997956086030993292698607911661478321970988383703916817400444949297872297175355218653629959657755296389790488497856384399532340044762153521594432008301018566397075422435231937150413679558923838242663864365479531239266188158310193872844723771880163224015259185181225065841487119392543325633004925041332125454128185033993694250144308491505732514842350841091105853157664014237671045416616499305255805544284249522036154110449646576493652599434915161275373360722245464805708570240865694091842742220796040439743755099254516231622874673139290140623864367426590813456585502802710845064415862473500319276416207014160852702965959458244106675505523734468654557663121127028049257099630550659103940325878758579255466378754777334376807644472818712394872184979825573539750213275238929678537648780446785569828975983692728225165087110783503429847088651911406648334164498611012839760848832021838817609726921362864415587021406177550203152696679018212010311672414334724963921683893523125511564197517005420356644002931835743549443312616594374086940298650342952764942422025578820577600740357252074178079780636226457602058793102847385575516210648470136713431057085428962227880809227160143032306861568895735704664297244880840487872202674909992316792403336716036548374122990664736517210689479654239038232462571891376363530740882446221926617136523205082332060044407134258311673074403318725534691310486613855818428365670811719508664986981685464736370101916394291360495120710523622063171378690662820618386084265193176909211124045372319636355337362812078879465050649158715453045239938055820756666807437951044413595077351353478000685978499265015855314873598966161380147664354130904228925258635379519737412040202841593858214888025346170790739775993998193565200794486891765468481582841256845266636788648241763098305587667764260935768102476950158457161143399927453663798813112291379327064148017705156758369826322269054484035990662394856403762280232944986895676770820239952643122687265207758079077271760621225709369988453186022162523644686892372051465098077059323269088230452323381869732045964440849718272364924412863847020485905422358325176854447015765218793588781304229352292644262373539304642249542861224047103785453230892255568601770762227940756277666671229404678932071101966098691182529387512426038139474328019221567434701139193044071695195154715041939962858786540003541018849706030668704287270781716898848225825573694201891766746855142994563950291466307961691351734162937688666473445996770990079068523927273465416917722810900292032787846631008937276178318635389707517847863286021823889964025714570343341770896135698290583009350588321821231695704226311918078879767369938145305040314417013580470265224550431985402355488769778875782452223343107232779669752810886332139334576717988750536123419301319539324247456411588089539058305535015742905972611587658395180472403664883307657341874227648419105060652403116789966423594510476509112044624727224702440966591612953602119476291628894915649553058270166510524364832493291168610096800633312896163190275335439098104145808775964482974507517905372659311969386294002448288819849589145020539792644735114183189724333332523377271228906739314708044793805936139264584450156673245199985945616963822835929702772376730894487355939140369692676551179652784198524784471284986627818514871540087196397544108318789120883901714746931550936089439623540533930144374498858592117489163731454462940038943454300234746424219883162102980959386882282679934018310020206347352911235925731284305409774554405337220785881666793002283014964757507398206399457768421234601699473758170753683433290564447179796362990341217188582532906450495951249748433779153395496760573533273388773112141885601960000873656282642714563120338487957265510061899302181096495277495226046983365998643916708715282420621355388849113813777272621408014963464566680339727688752184400579319825325201391308662738760242972182349108325501357912404834413953620562831292258743796685950258536874851812893604205457442955982153635141340827301167923795963812941817517789243559790071603588462300488002289772857620069642592038023977712526593300607615290562284621215545746811285247612572732083425971461349646332749746102266700253025155552155359483272652674956473790424117919714431421656292172803493099085026614100628185723142607656594144773813039780561610433942357076477025738076717727330959290504147739489361952878203609456755156395832258869998689574055081777326241163888264874198616739928704242586516836116507148582821262972101012673118020988670651194123682424796946633843561075875644701994673074874348198507457828784139935632195925134836085980128998154433019652913065936628661673204826977227920621435403207342897029362689545001006170790194302034537422989003914337218816152525138687140050789862695330154120048834355799608675020124607592639645127789598101777220967251917834550949075023541309691353558903112551794533945183032726432167434478879371821119554975379706569566847616677342225224896093671152576919783613069125837745546172043852451143006568680546002494493258216007749000599496396851040606080462565431357012138363178526514699927041986535620820848187189922084735573269048982166554509156443350908432432449661329139871912224108597026550800556807077735268984085870617984789517057214591823474813342577870483332083281686377978735930819045678488413855890725166996355612674290825340242503262653745642732738921377929785738773381602134718521235924093010799972238486292761673866141228751422999885753077451016372798516518927638446779739137695501969115958836228225829314154854300328825165333300315886550565531923916653631770102037497303077665107948748430373644208567557697802097229264208122903193338692788057317570929988145638578200136997642600905775819713416947583676102308970439546780541918419802500059118321706545897770404973585417837773554075397125526456060946975091178221140327944788147732514496190130170020501109349976653088663189048440202264966614451739003493565587762021145376308135750335651850373710178082226805788854617029054238485865233425080332100365811999769578797397007139169641787169258115767203650909012197916122612011612608150926008101795798109016956976679738679683994199343243188492003307926692752308847956087717281445031285261171885087428426537866369353541898639143808682042403877496301449510557682417223738428079303197095134627811157789259251349683678697128779769423475104959366560387446356443672095897173710000013649468835066640467750428965487355739127675799279030757740232355781652609897455616863346291745576374608300799978994052095527225483647491579731968074322405404479789995403475194619184188297648353394137033014933157274320874553864786416817736644070473856897555098652123853407079378915635867518736395239400971315099292781514119255681806773013393675269945999611985429374864426203361358051971646908124183062772773681323265776502259183838786148328849846931661461784652450489307829443872339798669773530507633891136723813194922768084622476450243463231051637692335444865534543235783220683527812178263277164858804336511079050850056079805392078440169015459582752296618905186690197446739262633357819856084585546892565462975081740927062290567175196029003631785918770325390854432784965515033186298583888744306555369808414563829482318896334900296674106412645470473762668719434043140109787080169419081010560804335595159904457616156486166226958614954833480508262194601477160819629676864873314095048554771374724651138825351501586270668366881126202628685552257730619822986848871537949451436425510931836165899810056478762819653555449514598822699620829345740567624220161364693293701055655746000465268985873828379114475907481686071264027747523787741910023262541492136679757849076291809730964269989141671893608412121359398677283174315866395769760028985125404254254824417229728841759819245369232249651014660799609841573111388209696399771466528562912314143104378076463920590314930851888308231789686392851292110633513008583897125507371544062699416445467395404790887191833918344903513903629011425806456562998425355189589759134587213889885664955080653486603244660764242751535968722225173334872959743486572617211970541239836921316712944898916539132815737636566173046671632435071969879182400091532966116404596276994046580586693122987475465365951417240857571029643764949614361240209842804229604598615648444465552574990653832906020446503766812249599837781587937215268389226171562532797793212931935736925707919174102203650496095693492011871957314385068362863171288910462266055193523172035065501088147798591679920062900561588593943930425670543779116067775557377414586083652938304573621312377905520079332525172735302878046684138394327705478530191946216656989007211964700852157977907055604321481245946854098815812750145315062627838382285159594056029782830328967894512955183499735501728431402389317738393393235432482087603440115837100712403733196606707559255007598655307025939733062007406446155955053789890950815521192461935932597345942344933673063881935329541928104310169098808184813635937350170272813538737032930181656625110827134805285553022051751625263376741522908407928149465242907787165579872515896803474427900631663001568676380516481047470257411101676914502066988514192959177588022829391529962359249475267653054428688250471414529460286156868340582484825859309025850119855291257136943743612447285477093991927758048136717841777959606990462534297312244612416577230609223294293915979305842712814744631620039316591726904883277220511728717361334035915559729350082641249064778396357024852664822058766693843779824450820029405333016968854574839162117100991809695830921467243677109699353668120853677454880939779806896568338853004788587512188169276600484287851783948224089827045703195376497399979755872938817110446346337994417091224848793148657275043237900370548456660493865326272865595184686707708835627836808652619460987816054116159572534049974844500635316176562465836615082422433968495168510491108912849738547219426683124147440360694316268125387172811267898086554516746251328384313318302961187259776388438477143938973663757331804931347513420356702025199774622959441551016908193045711805004688110150903494430602399927804481933544935426085401700696510187409890834782359907385048541748730663516508071632280015383522297916794480798826488519484847243434206070107430473124216609634770892301574817855568662800821862880985727505671883791973495829382105938780712043710490470386064894741361187492845114592356770669737075361400184703823529011383209324755716670709489206274275357902146722308568170533313619359071380837594426078480763754505696023629852679107498608619807487738048547962894986971175765734240039138723829029265740027302147228043811917593050610991854345327021946373806455294102631949136914321832945394121753976650492194797113857044181635257912866529687152705709249565423836420142373288694243359632481414134559662141260065210267060798326548477676249636355816436275924897071037135330504040018686883439302520548767502190101406943465089948622773577814256186119737351148445179650650731640571422294031332759817813096328198494496800045389909473241437033745434437369777080224781423584658503643084020901227226000069658860356300178441957852895017504031234797502757872695832315678748117110059502095337337591031852264900993244847532195453243092429473750360044250193515025414102727129354667551471970018046806691409071187046337711374685942584472142228911246306229923199314067125591541769411692641026920582645764509985801812554169877778213891514984246742310978345294412990656565752878871588277567729933972765139018897036317045007093662656853322699984940665165550491786485717918643797666038223886472947301133870643662376265412575195760285946988816719982838138375901006955599653997115351595050476499956373456381651336990425200105588087314361406670810612987922939014860264841083509364321070162703317992506369768127350620585534693675206453000378918400646288641500085440167355635277757577151488903280369071937364210181033006611631528964793159159253568062556818335401358762807371605149692873604225366126025722036653244776583224284887275937934919226969723802687635510088931164539160445921129302661974586588291984464918316086848126503492206767748577170348050962355528221966534496027347131193659109614972548682749864147623283654214760645760434142723362537802651399718362315008178743655963071582988499141344510178839206334439787810723414755492838370152875583081755369120681690707560722743748940603381096350676086622930773023992319144882666512045521274385205614231833774695369745986128181432607460327093101196424585888899124444507292361155082212047537338497368415760806483325795181889212563385899547116999088533479448727937155236113401771226869142588790671534328502754947185755612988491397420422987973835730075890005601819826508315485498647169479845952428340059457926618423039254126365093667342519039316372431149147095406131956526702672412054600316545034933553395608889965156943718943035483362279041227755991116367479732298429086652083426516929874517462700791556307343136825712240026733355713968762408182190390295955090442345044892875310375323361317695523340588832918228746399694365481727110402988767000393395470817365169838199082221236609755845079306717132469993832740092664767060129018588324498440400958760104517105325036639196503107565159920672896610441373258050122465221355713467737104497153940838149092310311733780847185933329462680665172024898777548069753859965458402139729258827079241701664190084006757327772084053780394143122667170329858080024265239208871441923823194253176000023356606013539550327897297251744236651228343275367632977879125886471372578132053544610702736795647654094726647842422918700085268581712805346376966977729107464899058944465680139370760707806846729965365477970833566294269969793406746014249165661618039738954405497892736956194995657326598820584515259524415351602416448275308058379627115980379971190281833029958443215422659630694182010839782097573304130898430026758382740455789311864619718113848407029200033519314513702257292703429620909981412263933738914104074991932371238369364807532589982739515447988464779179598060143995203631245384905513669304894750455420412641292621846821593336487284980180117137756813257555982328913733722396456693373015679584404224400893287376035733037577346607844233144423014592745707263264380445465109245657500344523274553246980907738668288836682422055730626733775639843447388090714317302155507659021266196984638665574951287381675108661871129298530970592075753499677581466894527253900906597916865074522053865538258843322262685883730141609381433592554956628401975634632661492055069196616157985964636645292690979627246042465957998533440356282796958437029177062405968284693719492895288230860067049985633356971478028455454056928624496676125470401830678588521546504486541271283489114101731429173691271312316706710755326897216074620303720882346550998780038064262261700596355908927297991967615460752713134919531846867781754079087622370473943897423564948155413802049467855501782310870173378328989718186878135264563840865829994820652619335825990576964729207358912398548765012349431317567743251286054671488712760816455294464874151436924430168316029897174084180895385517638223549072831753026810447106816698361271083993312335966594850694443309815030072343111564794869996096914957861159099552035915096745402657553976549845765541635097346964916216566931979706166082858668326451371145685306908530475316442090400553669652317521753013143019998617146521942072378382249579158131053917006123416490148385487297699734656602646619666144193598538790700463893600852190720207722909969159468136330689612622142855101028411141240007021437834710460720329089980705350204499795199230767747752054693772037847413149179283183896434358194524767261008260102740459318172137483812480547415564930576228745768917307496863551037816089144326762703871552629834609514057436331507784721215558971358888826727246541605727956864256094816614153848722227045760348489117182626784142311634361182419897293370667392182299197112616145002930528746049523896525997112621168026275910117273956753955860359664812438239107357981620266152743666313445639370665758686471885323696609897750178329077450387238651086688172145941898175993709197655077612822629882685432584201544383480911782997283307701661584069597093191106130892597704627479542873861655318351299300913991453956097115682760111106523493750249557698457611099823732196507337133514574073383894083801397310551359771869321472114793213670551503615408230248800763264437975032019799551057272279160897599425873734418707840589364986388849044503156943217101465379127798470158613945748496263484688272085609535027134100076688132771431916088467190996007208680034509039038045141397136338432589388936111076842182847817944855799277177475524607311768313540808377357621547021330939566829631008547710217041338479218196101259954118985992772964946870957029543481060366786393128329474489114357442831565786350005540610289387553360680325532787495454697635897023991431029171524641687473444481339770413478484495059239969011022085052532380594997403130696410160147868145983316446310797177645735025490612031215756391468679642596282730937640840932931438777005714672026407815242987480280151820605644260213539019530744278091898065907327639405757505340772648796295863087597349520884793212639645420728601101172699404359041338499943827336490659104033194842343592736085242789782308857038744536661507232565875267889908395004278345304418015833805802815992004208520689140662664365982229047161699441872043272791065633317057819577867825904149621274957169772014974439849115022910926651418480880438238076188904349167957096251444106227923115447637782838621691244856828131141624890505311607281754933421629141024575880975999123147877035785847311728388050316248259850563013179964612386680323563607694559166256443978780638634390462422471588677958504169916989651845626423408151674984710006544559143450966495567130804481298337126184942410674078347158627054618145992257766330495645705412473128540555817320272640634701137168274366089624103489494568708037604983006186387264129845507105180335268627084568764561843526218770311075330912762629951160114054707095452526038583807104750595682664631637518513438847737106685212933123758051240229167336735407720592325183828607400828141927586039828653098379051594921518683582959310596203507673385387289133687499767349681327944080174005560182508632976567393992975764624731448682586239105477681758998257633153975254823003702841732579334479983174502548144039839805320820290083267340765265307022017673712172943354092575815614904432210166161901284338541674582251680168550531703548404615768604741989945022732162726478472046788200906778285025927841469588514695942068892168944609701022228841741614867694537035430270639771511040642805346267515499665632521700686928860349300504756568255759785787715177554385908664114702524208643713390110559788549151957671276563482086614715169966274813364670039876883963801975975700795745929166176452578066850880595086824879131937282850041546890247438522677866781002568096622763050319392235150515013734611155505568395810225159663529053794909218823550642182760555471988839640551165254231942779119790126589111939590751618516326835983758883771260720670600195481959462669278011772717182134849418093773162895798564439737592053690797054108741487597244967500428841456562055917788146658587453196755558438366629040002445423717341626449545245520386401952919823268320888985908930487519842909478075253225607469412431802875806861276129725305543458634195235014455399779621235549906099034812678156279846025150036157435399127624400274803759474281764340459613685224120488840740250310655510649322851275651449508366053035468735276605121561069147392485939578084011284693261248123982437899339718541749010187686086651830055866598672758534479979575814434478964675230113890157964730224793903454347692433546111345499385889117890898538850941623595455465945393474936223359174638818294083592876380605625353203823757600453247188001956690728971456446075555214674783955235167360768227026090292065139315953050723108696022357924126822908386213191143721147401998645541306119675036760036860087108279120413726347889851903620337049463365517264302062961939938724543816061157034289400840938556030293882870713037088466656656843106832450203345803518686855824080545288741803822517181206415208204270825799669257357582774077459135544102614900942169438513285334558369925278845566609876569342594298224385010678717816480302337107620366877653433615297527208246907339639361559453796353496887679677510161095387366097602946661325343134380097335097482452699732202306218153615398750727099079676023291589398469911077724839104172265231624043207398843735874352512266781692391288253438855765531655033323417523559000703441854155194877281374135003661517594523928898950823523936288994468238409368054306317411008767524271109849914159157544715540488343046242242208952720824380166973291644597611668822458872917605015870346504784813264285705881332108464085226550824460139237218812511963120889307403244638110390277537440191851605977516291575023444958173186859496394259027721712221798004447711957660511289060762160179231986227718794364939163367260644183422687934261175012896318771660647119721610286835967875043716025098773668019901651611135726750383798335513907781396284803056532821084086780037976524002162824866424388576419236199003811446655587483358151756951999053984466014881764588865597761377396694485279863192799335637801222092942882059667651579580658329676289806839641035590199676431979200281571205717964165066182517247629723118787521661296231686601341745676165162697683588284999797977669918062410406301121476736953019984584619289185912094368628005499140449890994934363886970312498302161945217773746419222091716450141457376360982738416262469887841411824286615317132418001383507278234662364908018036824121889978418574666819354666315557308948504245265830752070672273445984518047948381133356275278070827580136731700883934368192222385020525052955558609625298282295259898166028236789577228646640861205902902736359435243327151874555180292382281346589462836830716328457974549732950806307160814423320273882389187967040764493374996430267745071687210346052054988325732212706452794201982575104640430556035474433944776648943352957603913419959078511368701127531148887332160870534594649068641512841098087376141373064990778074173427970083267949799974652218761989979457251096222603548741623592373622886937263746808536523810692043735407066522903178163811411275073122384887884441237702443535352338270478903965292372370901163181745742363091632959703817558625232800015232310446601623535988429237867045261173816865173382579776373781812153398115505936399619199988079427141918594926845356743659767073929618322674167126871261649215685421989291900224194659177562841564140480266685345604894119918674097837515856694155333560604452356603911781523745562748873638603354668790415432034167163718630171699256691167564011855516696447377441647956311340672249377096605813971063728748449518083205558573049760265496770468816022396721991887215976438977831281047700309979449097556400127369957128865120808627206333387683038615062939677107185602131477269780121688604932454756627658318488266189012422374013176639314501552175988093857416655914070735442617848903994327345529675456468321011152197927951395839514768460899795469797208126853705841248078209120852344033341632590713977361049322716378303067629071615534406809883433016411219953110264253036515872451965200510321481086876132197865980852353603727749504169943880949114410344692647874060177626775225203776853151221063555683338410017520190202710383156025075482496243546279785666248845297562018832506633475745421556261694568745233167041486483054335302037293622878755062897115021212064184613691781341756927325511701486656265989746942721773801163994155797662048312545240115110241086482320244580446115899311508646332261105851026903997939234561456676487775783862608685447720939558329255353461489634310993783902604346319310225019683264873929980200982905950438016930258070720451220137359378511973432351536649546034112156933492046396882671593063188982724211464748142781920289122415743275927869350314607086359515489938103384237437647154765549083854213840995553487147958010081811294465843830955749729037137889712081971907647833744768995471983353356848268930212890162001299997257291921115966183092359809774955218188478019264271151928396908828359708730720096000661355254928200978121738318301465634879543833915192514568770449315661702222950566256836423892357307646355821672233144178373225964184270052799537570338394244808518785058990712635559789285771923204193482587555549278942622049734669694251995383173416360363269339729547427200309124011590177958253873271369068479228092838785652575900471693158759779601966396129757934638729042179786437016694304435566574354791902937303519103275702842759341208037999231973996827981634511861524966906120774197290480239662515228336172939684212124235720250122377646143612072348052076458212232796377214969190164187069935430886999805849640726081877299525078159517306253294323088428325495081753283938154544988105670501054861429798206708615433706224197042623120411540310009389016277008685383657574336392111678993104960036812587312649539550431559917187971662079847316198205022698809798773733020511811316360719066739259733392365436603620298747687922666235900671726770769657507796799500584870963949074294928675891988120792969550736699240070651450008251396658336796395126137448423736914210386557280740559665259371519840913993344135671904609613271857837719660448441948447107613632036068900932815486724419968719991875151713446560585897064917515485659473519659402291811682951569130079508772869218658364025693998298703304013068639744857636835811058348197318528494305956365591118264928917523086835068480041606828656657351787468171381311205440123833219075687759574861287806971648025893921723085734876491248768055003493539572269158942089192664756276192245990417575908685951674369167479106415683625369540816053341762619104759286544517030648045886941964666368734205010542355655781454057270879572151792445102015485856143305178677613546474047607543043930224773864147796238743238230221238772986555903253346113141241210904280931292360220311220035990202199451055150780829500016531036781370241451572633369668843957846140543906497537388888566446687808110031154000430916445992870048130902173801135974176992512721695903298858799649111886777255671416078660678254110092219828983294610822538865677433805733870049156956799370657617907810560859352578975414555938606461239392272502851999563625549408478811225211749647111193205263557458152841060993179051448831502975857314241823513121631881799440747122367173725070263474572317878469505641461990475692275087222853221078568361634001679181102487832018339085841934662460814885169679829857733105792914706494628116444546450437816086946659133322169364474782198111466820712804248703721963387832533764929925596938208890470370269232351971543093438056278989196168526211880124761305118438339000803572652670940221645368486958623457688461946849799323309384157798236169862315976577088016097423222864029187672223016662879951079409646284345693310709451171899989782343887642892917910038928161817368487014134340682696073624989326081752023447859058295470709037920697482526412329421128960305053582192503929217880048747805411976387242079365676958443996610041160837204585676677969800258712061100679577675074503981185002407675101902898858998461161380615275708914013053484601717766004199202354623037937766131992019594883047181015344530513676911481614674986382823172176845670374214427315938246914408378974978760904027067657008581322993066683833282983947284212077647188705220537636098723015068553128559523311583904444989916635032934035362418110021024697521939432853216972107667726450986365583579595162095486500063527226421171119594075790039048466078467897596024335450159668659079626664290169412145134504921948079175673242392774947125104173658040315034828130134231300855622243575813745552246604621439859074669519368392863768279573363327713942844277076022784858915377455731913405306284463822081527694355801156561460672929096140476277373313942988106484117894567249342919529512700207996574269895058193431481420814459530331283410725077086234041404708547660742480736564334964221030781781637726230637438142342882634710431561471855778493195889367666212435970263582245962440387175886138741015995600693507297034483432805043240054171827185363423675206719321594137488828197853124725020719711593299160478949246234190602395705720022532169162458871072964972488480176731089360415846085946737899838798613994807606231044959339023369062712251413100230293396763306009403430924424805267990982190748095933405055340589932240492681470318416768853342832118936788227781436123157668881832733260783791237796998556204731351371623085134888352949695327885808860986637143561956909444465831500150848208546004605493825221198664055168549156390029343360562692518342941331737552201144254180283268449775608967402607957157950521788369507879601388669054192224559348933537419061740662761167428006493244627786672833458511952741449764025647836525403991676862329261879163915184656781225824803259986512369399928091824815630790217620851728626129411837488447224464183641242919141479778337464277324703360836431694613240488571543479152738696385423116537563102498324162806512137226622428938054205101593634083501153505746856587206002756773580954154515364252183681755011092327933840547174790697503094760044695398887573051689655656755132950639932270136869973243149090014962789390658924068687473495648556168768598843972970131568118604178468719203178079728120260220000025687106493155077960972800054241950426015949124744934504841814138963611303384283379588302713036683494642435165863989734374490219101173977313360246825549689052235018797450667675868378839202850605777587793142809740404728173597707045925995971582398206768693929815701617134576085408950035866294337180603519992258030706261406837816605025451624842926168086516896477494489670325096821193501919871072538528330964599329183227451270077221665057689363723043028423931386930869806641927207753804067755465950058837406133203352730970130529641045206462066222983341425807186157203347984897330444506885123101780336656668975025314585605024034850121908451781395147546541592288402735103350558727710377188205217124898121400265040683510471444229901215779420578303676616105867142852244961526175523547318431399797840730047306463511450956713855703045958190511885747199112372234094805897200619205158914847651944962799594775049433918065308449224257239380007986246669038647997647965070327030825296243119700749661890938897747174098802371356612913643991233960490137094862982334327713784071818285303241123877828602734368500610668066786573111364862613771667046344905929805705133236619275464364605382301856369568586458144264156652915023201832674008448536351512648470496859743995505100068809261272273382439104831295659502958221758796172091630409339058181197668708203570593902008069768160594851613641394714320765664619261176455305335403041463988090811974706538969774955298730355541639445781790356327767889657104309112398533324728118308791459161906727768050360241552136956826896702983093400409119774934296044037370716716998885123780344348156762150763527914791132904555937726127005332317230790754321089437212047759074527042702211455615305155893266159018767408907195230368092069705653718517903686542315895645256473969611013855429008089477422519516411151465918736203785949416565742368797821553817661093366959507874606557466973951435723160231380617661098246729122918120732812123044523497379133071586553967531454633228024003712343954464909849462541262842735141427292155300227253935875496165854965144844056469780298900656194337846363729185630189224689795767299269537708403587698657468817896567677990182288338358495161838012877284670198983914416611542655714740932927326422804103242878997704934839982593452612491318792397202584536808236720948011058865581799353603012928882921564695331433451739762924632500980906487972418783412465472377275820152750188441641299940909506606549471018084228488237120355249347341402818313804848113786987065794267777191928240071962963816211574748911336030172303193678236250578506659529210616310228580514150452069519146458366014178601060891489742908852428489809853606143757688677301861443255446151067203081795913166196300295440792334944989411869515883995598810356164003594409168671467610692872221552821724701748114326649717341927815373122831891818017560430600754910011257392358292477295111578429056276283626319948514570069213071827841032330259997931281032828206650088197745605325235403756811394334449228134819312619667736639541344589082147897673661037956182248757406603323894676408446596546820328211374738995712381615084334907182450430028065524797668954271615783678106271924245257237215462268658698989848440061694015739713837075988268651944827308479217662975029614721014480449260622217402201952896486098136700404773599722807735276627756756652851067596390969148936363531095686388163252556580731828923092083107025557377524397268970688180917500765042688613744119632416338752048678061827614644944533256529689327560775352670318582338234756748019236431043672511590216131675462867171182389639346620565219138552358599481997475039082481767045854607268472608623189535120584181704906565809156590037533888597302689458144187980376874053272168856840672498019172302080091966687245567677033383996727224685458483603840568577450245233086881114985758174059038811607330210479105008355435834918039054481465962885616417610176323994490326399213378312218979289124801764950399884016097913743937329938967846244531425178979251825080662627799163228090114644547781133115833697049818429293875647238345991333304279599891623960160975473673171615518150868055856056251719813466578519266161868324955979836327043049332707826413211530992331886710837054818329103934625856065025426748542444938795245983732412693714351150358672970142702068650697468364253997588905802037811378637229408290432444193761973001423030109713565151476644504346550862861774471051297979401830321669711498357234966726880595801519592245001455612219002583376410349144831441747035872729772356678948387724004080979203414392253736940127155785233086691525822276781539407868039541802948839300734471560255163117752738611946648711032027952909391585565406395717854547805674648335028964394252951860865605675994485948881155397608028604505770969011411447405453028355429973030178216973000138101932657093411319453748156379756941164877081173215351591067260007491308711370564134602986863004456580197549576157437286619783867338199158514982547078304817161249372251490048120694485953919190810541793917063367131078690620456424941519753587556349642065375382609544256505356358386034770708444683124892107610148601668755386736676308922508910791712328726347976130771808667274607700515681093365899649618663774417875806401405301993671816579871845772124388221889141558235435670338130954995803988116212071415427868234406669529833880444692642738225262310154549053404965056328959341397581305629087434812401884446990717240729409577509211998841479811326788213066488679047436802223226715844847272388451668706863379274727496298165459349934818045259678736952481354947439329459216976314695931687555761509042208141431079868617503875374050797357605095615900719857154077948731022136315379007596494922934156655168111066853888264452289191194550166584957898059679348154703453862590441862506104855589482747188053315927712347142875742482092270708587955160778555055846966263541471263063253997466234757043791740008215175227762064607130664026901466620662251909039575555738728380429428098309868468169580553838142266139762449452106482916521684755615646033320959751929198307038564023704313854904481262688511487883569531554946302095641954648462000157861458206148689386851325502398261696688367488893259951848078899525719543613026459742283477055307366706395331518085944692425844457076016317731185795273723931752193127243080063634795092619167680295994042660023504366033836718965336506844396712538643323226420378376489658449571500145907401405548092679374620270123783251737377399681894901802950278639132499028410017922824951374976364917450292244361864858275295906913192709219132655572311011671038987273270000408974085227690829714403277395466001279959385910151467041180348056855614451810694102591791408544486945222926592378102231258029221443668766681145469640432253374387948377328225580443827692758523272027319125840573392187968478053868942497003395647819174534996933372024025090405581005605657485005074371580035417445437471884914697180397942859577510830028932903371668870708727252675534786705247449477859139597512066983877540809272414235124910405289655955050117273307817001196874581259943225669003156837578036289175492199647324790777516032226621348843655840486000071117156581891967950961954239145470636617148859265970541300024141198573161102298691828229013072895761473083751033982685075397349719656261876554767706717901053176917807555552582893736988122441460448438566007326580758735820275933805997636325158844002097390386885529252695893551095519269895135096925786853249767355330968652068866305502634532542826388121122580551706501509190937531467769176665160533506656280582829250846091816407720858959817370171692528498853389929661141078244826186713385687486325980156377789625695817368536752766920504127336956829574664751784520257551003485870179073396379432919076890812387201850865850202221583391086885400611604446395798031982978685481223439738183232480552175412461682922217810448553445265622743824911675497978972710473025252676356187249951948021050012864084052457936289811667647406516748237761060766379163725964640220960591003794354479304792621201338185010381122912429487947957695204386746264167616454616359281736486415877646660187313857504832028235478344513397597552240005997144372821971885748408931921180408783961562667750399257362057186018119149211967980562236924806386662793498219125231167456357983429969221491785276949774606534299786959023463103692796592679443655800730723980405297365858089394785321330010794673109659528129356250290385753527604047745707101262080171099701279348411729117440733009774284863673398256147453059591190463196517455575513117947671139166400527983975075638777148652637909933893904077702715274615751920687506437598447486326208497186498743105492087863236686068553127210247142633074101808789658469774579996565881353197847156923039435772186477272689003199993938892095905952963762846288161340310262204458781091049697834880316416552321739482540387232566193044003756453602105708576081456312937640802779154488851711046497121807503097079674145649809363980019514233134383317137028663174047533199695108525997917608702897642913261217336904376418818501641132153960274302366434050335916604020217675210843727858172859680472737656753296711790669041663830322371099743362269929421499149324002558482714885449157474073202686350441165094972761188747613521740003382865278805415835371627990502632389634467722237790756460516431859735436832953410485546735388896746950296021239066897719514730098511156709637093724465929055774929267043479186317964241545359593364320983438348219988861141741683628561540206313363191956193312897520283753204746571116920163744439532551509043975168393879737928917045674370663981173363055487666221428973498203689895881438306427654739407014768048031412086501829990492715892361440320227844337709741134301629883845903403489188163776837000823479455479941454588629033446450608274904132106012031949694969416178720045597352153987304425942959376813287779107556803602021734881032688677083286927946110985202097276095731337017441941133868158155538579943038741447789133130289937279953032792885197809930949039770534802943613098159372072503882191964641293692356022891203137952873571350826788171133787329987129564621654852828865601895440142421250651191408762475363631245651728246355408706161863378905499480578400693782105559552895932804188942800145680480600285355529849863910122730635470429844231864715270787845130208750174704868913326915155802643929579277750940876536570287430077435358617089640097640016726231266741691225601578145239826053782762660201314251563003227451341165359206308020805357179036009923481367963440068340245227516244738339865723317112266836554488012199918945622769524962780620034606192692582959373384830227026572499368393210863334955595086196619446921084821815335681041341788599142610619938391252432964636405558134564210714488644975458320694609113137277151511746556942752277432535325824896495034285744655591839480339607258750976028578640853190379782148016695306524593431763164413251969362704420400878885863299201346051820439483180448863125166296314651794049184001217004990973589079203407346379326453702986531508101055211401248825642376910963871400955047026388750303453823679052963474285507154074106786777885940301757929810398197921653675745558412637041913105573771819592878725546847508654234770223644664742214838501786996377199663872042071231042559006957088245358203638479257127382411261584903321483414910003777593186906769151572723707628756337908226244037404990513720551793756904392582122504291239782594991075361620028254692901941506759143900283727258747842638255393244886615724263890367864578500209372654751914736157884552249976628919633312218906996597217489401743247874315780106214437355937510749332472595716933375858131400814503858445807290346350030922827278145692635548940284364084164664858457596445221020889190417693292586094152294147593314846780381319659012570176499907420097659285327094981882942177168066569507349239309032599623678568344020889583841879056304771181610866344316069253164865593479734204232527391555320654184095042330136597823271385962221175149072514805086133979335034719362916674081867662554295852134266446645233690527919527726139070450382273409396720672189535893283574433776445093106413295443923227784149304689569399985156574097725075548786123591748680526691656743263337042230114324529029707877873146663506729196547863730981411187980723283746567141101209686044794806520430004100064473012838032033567027787768330780651140278923367804782159833337854552067303361138896018995104275253040120159008410173607878408428954650435428511034946984061952209471136775305229792042230183472732618472014218493971204061849931164201063253565287215976467795243029119118396562783183454032278317494380647925603080922901293823820259404103661353086689085386951281118572683158156913460514568482997111370623266549396101387099130458203894944126996695386056819369627648007924782198874347512536404948821359065868362058861983581766405182036098910746003381651589922545110056421118660553594514680883017211685277612515339228751620885667615342241653271653923269179833185223212736515358649668829357886097401709776441710443991810961733976150030696293116153184188570135899844859406268466324389979187268222829845459396649641626953206093152354267728090291004042963987004521357535908904257652969874238417930115806861505576253738530040491649849162539580136403839892151083334352398420274696981087062477811972779392495483119822602872385277317950060844182738059143105456266631554386665369944197530952244125953862984489362047582292487011655861358421581170320846058181028099634258001555984095657165939927831451838086557593085333145708214363179179646102492536343368389128730306221439032065218184843532857988276111239888685406992270058464524550194646553490611747573280287462189412077044691545789260339155202334094942142216460001044833284354073472987834824161372321102946807887076105182916760625007715930267758843712957847947557438637955513888167371042495277031199535964670203318701665974606607201091509907550336462811335322994170365041221473110839391415143327966417547724126628716974805200059744934637089119575623130259982439901745549250169735479068354155531019633386524260890110680936097300115724571581602629827069442084969086042857477313227442720824442967720342713207359404961434151276604089000115892038851030525308956144109377761597083500285541271470997519267595638557824622903393759319452641879206773221280414813872313402066215322382307837960421884242998219836196540504582583575774176904957072633961397646702084226235188824162254242934467468695359054279284378581312459574289413215282025468592749175712831582468996824682104994148029150854755046379288650790399914155472805097121073955652627091076111306035059034281243561709995394313294704015998914441901043493562878647836954615089016010444676368623536207962131542920750216814457103608423560703374525324021628889553038986351917629691760893149942867122055438064373877965904182911106370747156697786678010817762321838803009587116909712542093701683670153223825171636931836383129429978532982900054942287467935158864295895164392596745528244998819752585102799207204961690712296040478764153505594550622362532535234191780681010933169822899532638960767043488053019290906217904296018229893571695191361288472727546491539958809621314060657861381906773467220304610294560435335390367946292180878673930928122183136921304944507714755224629129421666343906995997160809397288843220585185688386147776226454371692183844795817668350200768737414671539514711802468148699260396277052076510968593312234856968225068630287891312808533835571711877377981863655336020022528598920660822817507754291560001392823100065625331607514512344540925044079580673540314709450949915064941052729320678843315227405869286590217113819990992619572071810183950574094774627143881177134440398764073068069153180167207853321816171716318814633502048898609704376900053627925384460914337473077225266193743319587908943496179097477913566026950957131927011056978485889547031247279558464479293066782414319703344345677766071978133257032416000480001990774082668768404260076016945880667487649781751066302728390019823348236068473069401907034463154524710390458138757165704564993384829753278986742580041992245175677792585838054249889404646872203340628488884045749066465007715322922907588699904561947623925339222764156961108812267968900342788523713796054944500087025976270163423210254093866037993180057228906939448199310588112210336360460742721692449867920462123131389980363256649104459061764162645075233835891544792961613147663615476088568815510930768108094252704146166174069446976619321212575836633362638389431094315053633924445702183308827699838850836321199508937944809388218869534002387438283295911111635573392803107266416327755089931096673040567185668539072219853223980313529165516065978858199660703156591379484152457117298261224754141401077929740009440561514186976043424941424894849568492117696745598327653650059673399174232127836216748004181702488937676407851531337380771367317970934592147283244248128809903005499211558145107501842315798737173285397469452456603695191694867305207323256317222955598256917744511552809039132977508305907189885555845771845343868523903593991377083403116822779973521344480847600039051471326234575478114272447243130368885205139644582082760592759146075114848751767028269381370002281998776722363455331585370011011946482055769303023714265400858768041516235957028644068251027207476140553677867901130417231875614145214156817579414088812104792240227210182575881350467502108309490891609770118665293426839748417270371850783366550106322248383298220046187893864536188052945933748635818330066507624491627341153076947548536686791331475351472694537527747749840099440874650565363492058304261690537475659658760876015700833538516233568402583923439525259520887987555035853091636938066816878759626367484870223627512782808766013592034954325758249686293604639663212366684222000806947193007639529139781968022367584880642859533290628507887932940193421704578454241824429569528045933139075270221732927752207909163877446266040931833609975716268432296261497480050162573182938993202439215351576728914994688148136451222446200433412025327785421226229683901699751136050951001440917397159157537992172560858320123977971028420045603924211251186642844788561086430145636406786050089076098208774963786556215459111311751881148866240868624439908095800365007749257310814892000423622642945361638017676888074140144547713659124893725275453577846130006046521890422319412987660280561778139661073519165856373824747498362677023340411428862120915782272459561129763386527048494678494239104159207748230311977338399086697335775499468541638299680491056060491761614430721099393263458137418690751400423428265016643094425070643758236835921658837227962483336614367597020542975346062426077259453544763940488163111568118536462367405044536896972007547924890926849891765299548714535607612944842338684089855770671203054762717040388965548356097109285853028639780524149503645773150119864594776804900231287006213429834492969234621723292287960456774936751744794558669758515891434177940184030371884211667808104371619759732872784469119104407175796993375391577395335133315571606680409539021744981611891158791422899467883725102391810887113270970566086180177308617361693735365823402082556701407762818666662284012829549206088710174174117991910088128219388071557513632913676746732465622249413446642014305847529345777646110295674729832676111513497262790433084634781050619298189045475056371434396481975925381511927510901246134117090861349331767038217578142539989486635093613136373031449039602779440351553298323517185986043410440821267351323842572869104835793229740027833607534456108015007660259566561054073158097055722221257333841500705305950191927392293922389998996685401070914090042114659772649949848295170695365002849744187589579937888148745615826654437484781745085439180512842337250478706534281496008811767774788805139606356334240975040240632710657954495229300613046653271777163118362997644234475671698607382946720455977958787798446719608600116938479532297531099789953389694118046859912393551055017270742084102056722069797939349430189819277505089427661723661069097933984731173664819577132394785262337023485011268249352652535287352995775802514656541545580689397599061059415550950437711863074467530227997418987493203987412423130579949454336760581051093759178445889340770661985477501445541479153725913091607503257042044409740167948926000233244738847014928587806444715070275421007752720960574908964130329748332062720526800292199833491292911423280166396901448238940767121574228632821966508638175749068141241985489413645217867371234231557313522830528247308003059350620883051145141069249604571989892092245028982710042051672622754841340275536696381241507728317090212506203828998793465105634276614743335194022009888954555182573628793754513156234941155673219101495138023035286253552288331151228791140140387139446821129644860790114183874126355901364947543577727706216120406908564766208457481516695557710690193985500043088768741892188626791130230912918016040759267006629738222785165525454243726986295341308909071278830433892597720520085797289611575939426926238319097584565896295070272505039322376000373579491264270581945132365896938696434942704794985261191718807143867404704950379503032320858789828655450802146015835254359698036359431550168097244654649102676371943553068951381104124301844335527958531425650115286297644374740917785272738872902074897169563013490774646765705667583854165411856482815054713224192011549775623180608389337415512687184986471438832873368213113571810587184485291435356515101484161580321036069553307314902564310366321089907165205535711909196437614383235686340421435248617519635280739523130654302836895227561384277710722590814462689510310072448732650225211324568231971349157172875983955705982322925042366990971240395856190398165048448103359033405072679397651365138058126799202824515781118335120684587056915836064690880780869297714723224396889360915575708963078686538802635022494482184434183443793356133994316892853869151121257014188792311352219488887859534090609679946163614033993723879014501072977987087852775408288184378012166746708715970956461779286510543398811436288686816103646001085092903723909323758750342528147532558710771931464551989451472557015623774546835833748397886593038681953548691922648430835647190576012394927942927547435084101850790020534492178621908649554874862268170356279337076952494277734340022896845668433337148851486611160688701952782342871974960091074856834081419566273965023428098936592378803757415432041670201730679623601649049739165461791962446880422156081614808426448981690582039579959928513806123535695099135827837413514780904098006164438799049857849910732418652547150006471244050756547561215463958750682334027550174386472754492522356649472230368643195398992044241152295688845118906601139185758702410494820685662505221457544650321475857841040327263302388461534956104838538537123527499040236219504199125667487343618781934121790659629747898561161902136577170426050909190452351930533997912629066408414295223017719499472963878005445804390939756418716111424001474307830930525602692654765705439705774265788524005193663862840138621423568516644638654357130258684138987860415571032368452923362067509335844730176447414848336770416845775035976967831118535482318977159396332381971164397545595338810505545414279659137646850686859587029093629310416560445113942823192218488869363610509460081960980466050757070715237584215941658193205207550324734559718356648100277022129858572253020922626157162636353855817839435459744470038055576927810992993318037527122781199428101298123196864642456672076091828921437724896210254877104595182703733395688851196894746651952562975516708915867784548164062722893112299420528547812989273423390746455785387716603634579386169868393172393892858035226272596566915393442178619841218382828550670813373520229857430844810690421941132929260428280923562145048761404760805483860254955962460063967116968357936499298382053749007689523560529100105813239964306045293408264711635827873914772964442562365249825216005461389096543050031094871210122318612843712916658829034936947744692448385246108754615155747656915481298624557073675602389296680898396311263297386967199885992653125642986912302234404811465782959196015720541237576728413052059009487621031347692063184502172877662542766994745216559285079909819645767405119361707083111262341783745161752663438952148241583661175921041360018555628056411845561210401061532575800726515827861935756950261862752556204221000958513090926778986300843510696441352705930518575833771473329391577338100927901199539691122644921197421513472129595451252859887133782633215686792917798981226328267942924347490135016511069111007534739029957050982679590216156225747134882785987905858913736439677749787927128530654405315161277446756693804089362276622793302410596132894487335317779515191755251897033629517152470053729308170297053894286453301291747050281182221175799840581741127054891635015629327036580519400317465285436953214837930700598350801141777100324256180847796642147984147711482993180139727838665364314216334193906829985746614059541157157539825527557918585535528798617664551097729896955797891520291799221641200813875823403366498136191745841337054892876716928854934991594935377473354383709186602212774268354282695471907905645136741709217064262852693097023865570686424214595700851392651537626265298054978040244285936138042620322007135582931755253486125755712369489388190460816889141404572842033361566199405589871824813322687802072225989158800443791949969119012152866591658165975946765160264357685315804160753311381166464646998298591158430954209620778865046150138301374067588915664701596271271200412129414767912796812459264175493963385473387407875838410030061026002450394397185605483074228393770101506662982831415324472722396002887324138687306495333005076301460623208442565307623995993338542076423958869408838058493208922677939621556238324982729246172779084468486848447142891774873670406525379744974663604171429681721555903701932366609495023791179930441965121118594811835117883550927229896537695107689775226841354612350167533526915582845528073091936720342375561244010790761141844218339682275932988376411759389755788750926914413641116110795294239363934615329955656518799404173029965970471541555781149272140062484107454305383823367798122728057893763538554000381354065849113926761942420558391998013616452203522916984672796750665779436391620254700755340828810076678851295481060203227550625095622119415452943768721715872553608698263752493967566090181130721234401834622670374682694768313446238701325067743013234319609176216542207850513412327420690157015761862656437935494755621621850164843671370894051502816522230240213147738348538560907530955404155677220828112167928310564262585690951521840411972381109328688631698149344485044541767103352653332230437402327072580961227321848265802810677913828840282180128297578032173424425969783639787501486367122487539693894547076559280995068650995311761597766256217548290626374187102948100467574069038788851960319023085613789140789234527474859982514815800374995098848082026650853589181184940717768871924426589501756721255465976582858108491519347083464790281132592071940131718438060509362256703402725560786150459617297097925107103724466139546688444954111710354093797876815393597459389705543185661876773181823087398713039117772733253745781546851962298710668993697206224601483528777062880246310306343286387207979392843444772573378227453995041980191865631156437386283599267709870351894368480297811983596247249541925493880884517902668732817536232822386220753712043931163562565778502012168711044280599911876343153608421048463989163934604369101275373564577325450236867458849337133426350880062415490078617949147474659429127156932552051263661093034011916966654462356599242335699391394244647554215215526616641617256208947443889678665871976322651161375663743727795815044361234773095953067286426650732835581488843834997241256352524032942332286636257052037194750742021781980036609511922257845288113917335343883053474639360960717681519118861283011032359127705813833627805123568798864557468513965455256353036329800378248520289685135525800220064989825390913820540407705395448000050166392209312975901920631980384696854896480277728415701848082900312140691677196536914917544549409031508295030849293285114232515595474365334627945423984051266349376197107003398677424951961339869409959289033316599652174750528168455484446858420687898992513600810944795855655704620219852982593546277813993503350674436614625259362422889042750769112528292414008987547680008735357358860081482308148921858087281527867902450887978377911122451276398906521321378644930331603340605908748535691062161893334645328197655710230780403207060870091330553858452849056485402684582660859377054962489441526742634084478249178402623768954989111301631755235436484776054038230263518377339020092014053340631038700660568586083583044521072947862378947780726269053238423814364937498309235206587497070740808659651164554584732035610537226757045954090371170033569758074989505936216274391025942030236068662287147103484954986310488686361212606943730220213714777257167349813814142582732868922421764139728887066643028119520553756568384065127424673590392749987631607619148017684247568648601390592398466639976336171883092515693179285104646931808095900766045151888816904464860616960482395094441202718724351099435822729738454650600732956139850943341141436443477574658668214831943772963404094378294451680863967654992765216104053227248572487477519850713870636441914986288812379937070772079513669804712350795477145881204431286410253585595553172392552453941773067183886391160386201957762426556815456140210656195652476719096578208681982954967244735073946176182120687874807836248968175725137782010558735865479744618291786977240963083511061710001270863697507010686805962802282331980319956834764996102462845792914943124984592402136484543836524384841474813407952834764131301812972186130536758163236113561128746364056574373839545962995890078880358090580513391079844094321557666970761138739896141442532281456885276309783535718384765295370508484721422915623804216429128267411355489754422230891508823129580483513706174372791408998531010902573587830999394916680145991422193372412848681880390718002895664002325367753312542064551030540845097819491175839878849606136275056575539119635002788494714643393810616597011608641972016076698582342854162199815284170726516484665649404192784375769844814921433891243485114775239885581785404834431142884611547578457386812486273055750039242762942487758442269558950305640826553532920944098069777418754224091828334727931014546040530954313565215377477098122823433255410362686245095371746773506029973618904497068989332089456070079430287904299688443813584352114933053931711127467159924877089839447028309299018679437760545238076460929133594463764517515609944335487993389133448782503675952584914686977438728269530723925468008291893003636723806412667456378970572529765656861274052411872783631494761991411681012085249770886154726144200982865841735764152992957595191247544015031519087168858678230803806631094809667378286182741514281047969726172181198014882816118647666004842550423171738293120836533871633621585745321256918172281658820881653113520363065638784950483680377826469559008946473384107050838375642030870463904050943059218820053375605451042108904872667496018678201972191819669116653790871162131717186928283225872555599504720803270602891916249542472539853523781946831245636860640639301701921298380410238641711987824905757415678485618077080249777383383848628476576147196310004624690573059895529674376332304124481935174369260339300679831711179207323226263511282362009017496109056315839226562884185190851182145893294701942713048794403547578106724283668817077985961598939701852260912004132788113662969654073909730432675752325484377594038219750478176532970377207373859404695824371202100482423509244347478615088586226571675705389244448395042431099531134719399471477378083983988977686790173960043940879101403504965324830222153956918851408261418900102955454043611993210439473817025430876549396021815998333866194147986016886859723889660726266030111287781833102237043689866541798612486454336499899442983791783143229765587334319776649101001210799259281796888354158510080932543979649323268078558466420078026907955808101579931214228705706261951906392357004440008418217134993472015468516922076934467391900011653726881409723218448393256529756690525402584282746333468569317670842085163970878067195572700902206286091445708519825565683200628973128458830566146193596628897964973114355975449318466041583671641723994335635260432462186721541680995742950450995216731337948924900299844871904770890273823993574420311325410748217856879865234755867974008087628506860154983890387548820347870287776375935202055745705781353245287540835146921999389002728278320772887289718063575591599808656746354823258701381131650377332869801832206291600670719266874692668368518914220307693596410799467574177579595461455935079490767383827475275230675470070997783449452924913265255777027441097311713123419380929618534902748028442303326110716581871861408450262250876998600204743150143201136212769810208232425236753145956843550500183136839387086472553052395063379926400430523445049146956669075956102760938150280808128801641690826074674530771270331330443972314287001335016055795574093240589217341803499447320745497738685114440347020842031862051837851710336152814060827570567828448559384989604818140076620790736398061814280144369757364924624254579773071028746175306139237162628944176006128844679168201172483371729548350839632075754659003153636236981673132878427998205043137214058146528206489764725529507494500434621414215273047814730245851477592893911795009927011528135061089557328072467598206680417225984682033752953058868303693940229888490668639321399039636744929903981401860223889254140658118866418480850055398632900740574644564560974750550882194409817515329132287127501921612459123367517873174771953912668924607236076054685775796325728602117862050899306330577232862713816226599352636508180385503238473130792696120452064368720308177447312527474402295927763101724992943059073588291036150858228471053969510836512401604577866730449292602877223105890911210303194225241097303908734347337085120438585653977543458673771619509425101523261370385400068679940313265310178587416361618427709712040343617407981247558624009486262681430668860196565789646375330314629456590415458870793305705183588232965621038332305056224753609701348199013677053891755146563819035395420497160900083504938461689167101415846593179719192359370381905901742438089510884974375600815549423465928472955377441850176815588980773599622845811597887622985288358848108969866530553996855549218547724296290784404890215264580828315635567898413001561887781977111792774874340723727435684387805993093202272537214914532722673193949788393612801722820254344068599723109248524236761458721989286343738810495650796754711898620755913838894761797617401130947065622041532979628253120351661537874738204645950324960821431794294046480397542886890424533849397950963378384479543437623161534630749215255666615627758597184513611454120953721519976837983812189279129972316981178940402618902309679883889558047622976548994743646454916860901911464833141103420483026212726765183920849666526730133699774129819320724871797199662202606211215610560668629673240490982343724666573444866307022804197223261258560142085410607961828812304281213923243033845899527861616270651163094819477047143289889629768405339592405964104224628980948421329505966977093446878506922402652707532418281843072628714918417753496979340448302881297932227542795887590122282986244855921058720433341122970098167214675717221458589395987213456823160930896294446779447958906535942067626620857348270314998178440641104200392883140724950372328122267282825953857831023720146885838669855165382156848309778117043543902844090618152203931503459390013848600390161986109396134628084524028722618916840284820832685734648518454726664758585679070693231487659002866754618522382091505897804416050921816163507860042807879303085584402759229768574980574714395438210033876225049705954689589758407106436749381821011088737024886688815498371144561851639791671386414342554342206334916126137070226698620090586945353408755598381475171296636551113620581610577990411141260995114932024354065996398186424760498460280023063286129025389700289098256891765236149274039953116984436843450897509179749102324242219000710722217023476585997047795761561433177122435753160865089667358026233408031590766554242794991801026138855464335394767005798137967015616015902760360689338298188489457481873259278759280916929766777097299292284320012468173295309298527454765630411568211008881127643873510747219324528253216083504637105257200304367030329071959287809761788440924453083209795492381460567416428455918224637220151735849236863468678193313799006674773376808250558924179787752271240326728976790137452621770304492051428589143464013261763068987371737172276843568993332429795785933976997793544193713775939354535911237309824354574174161060137087986641939150880990052714091084850350480656158896818783848329553462306780718982510853116287415717177811259413385843516072291567843054754531838822567232090675609970096194177242333913533320728959353972516199984083938528930823278163922392013680343826414309473990967822795752719733108110078943309014041084925356948890121225055916451816363169992724667327828247744804942749420463407695446262787279765758165137759649772123962248356790224766782916895435921604619798982436301425362289121498245835967434962512128494909882537481842750908838883215191920927183084321954929189741735893839096680975283542575393464296447923664135664746169412009111699140658583962507005506849979185290879931829990845646139287478988681143248891503663424783210009449625361667958464807631470205612166835408766036321413164340526719908916210634678495915392453515286173314771420121103063417246549979060279500264361218752008451983311464904780144379162861869646490329229110050173259191439260521502601186139586508629253767885341159034384620817703367582894336683303379861689214702269481474869778644685325847237925145242391651817860303043096202762656071462384586305635621577769950571131016037624000323865352104807730794045034599633848872918684297348133436711104983448113273183847693412604319696987781973517476371155512173747667305374029915338880787097905756628865059361956900756114774823695549053610067188251646530175332826602609119215510767390464116728721145087773753706365131071087859891618275828131476299380009430236050016980074544084584772623315679467776726477917993117435250270854086437384062220089256940016053711486278562817788619486704912827709193662885348435198228138757394192697248228049770555304857466386763333314690002301163446215640525954469072153460683849116485342805683810735930574926660240225031720206552496546684254325565722719536270988719012287765291065276755115918871414984783143659174666956866371267795785084073859567257796677786712050430727223052942599973128215111099610955606878552329155609342158984777827584726899586713809656470308578583459217115551605523905739145072069128119675704123976074941727381000700243776475110708804569195850515701562227394275390862249449457260045470169898504516130218047467536609752895907334966494118396941152738206991386313780343250764330813389506781639732440123787973320224308200606678104337920352192642777056995502586858936483286576115557619756439199409268693922905892544425764893250843320026602786437373399324106434722414308707929258845482270484079078449401131897988521156577955114619809904296809185708243285064469622023673147489910508078324480116381550979874448337687497045834262912545757304305049615096368747894734252205485332674914450098234961954073806045399354354104539642072434510916433751118568357014919641038105837708774613119523068608902231211573541305049076263017402223495324961220379885865618497626906539159127522489023912487050247416795803598792701802685529366283767323257512312981465577746319001050374266190022967064668508940920845202712134640726246832159416123017466270687977555006027380746078304940705839556795211641600886243248392814050517708293163107700312385922709830032351452729481462000359071977053272239700253838323068584653818656828145946699300698309039481448968154114863641841384135701276520456904419536931576410973866809382854675555197687748775297577747286332946176036781531781316674712148447373279425138458262548957740554014750621668511098323934430713679695768834652658861202565991658248511854923140823252385460264231759376913702655325978240303777776905697639230544571284141329827717289848208574198055159772833706868862153023718826246598836837103677685841297406613244457254331445702118344397107696395392570789943570645035948657313619537001462841563213554675943020816360766723467123344117834088745889035456477150391988708826072956724043532834529732630368325240912393872933447995752029815107961379454818469635236534559990233745076638940352976820744637856005265657493537564455856552303715495565008824373380081423316188278390294137307112738902967828696330135253789513909341560911964997132320239809404162488783249339337840199269262794246174671348360887738708465678907746115699054614371428764705224931687434246333869385551591024236779556819266332805279719400648063466351529817418260433215795312047024251114395811400731555247071386566960132864273409328587367023128957367454549008815481043044514330016234970664297164767042795034070026675062405261307652589482210253747945225311132002922645283674752559538732284489691517446841791019232784704438932077634382859200242979173223873978570198711007588118677389066822266051084386674277919553842356435280203581888501732264010950271084558187256890906771488777272818670118210854510654675630323598268298514255705492485521979149111563321403123965907562863426494225755791851803620683488787944426896750522252470080782437234851994170332462887427171869711778553968701614226356748502513407501074379037742334605207550051610323652781158539318631501471995085946912574629032190023805949347869589368181755030489717104085289925969760304439031912485304677108108857311885308980928582288169844187569931451476064997847119597687773317241388198412426224697548296523863535812295544928643281012634635681913075026186271315346481551392342260764243415435006495967113874373423202941109469542399301969333549021958188157580252016782143584703963380319253250215848011120778752442200668833711038976347590343403751533735003628806048359351850084166957471591927573443272068848986628164343251117543182130993213213552926579300282475937819860744873610879706604612396552654589162001214615118804101640201182144210556475246988247367814537453674411154757630091691075907212631395758894114898782463008072540785035417582696050090052370012329480711798993137422594689407669888280514885549503318557398496321170211915449090023532953327253645250347267923673502770490091897381032742705222368090978825036194172983992067527540155188948730538397295251210020285187937752074776774634530515628959053796109473358788391459653156325359009362366067608331066460930509157116535243817386603694166698386308286156561059661482692743698990540011714542705219348550602814766913807791044693546368835683405736736923103854738586755491958082375003756489242421860063693151487013802427290095296756612608881370878270123500702329184731020516962578621576076082918999725147586118240017709238144216820792103965889079195720302073881647495990360283226148533660444855828179009503235475577157623229429942927048869028045469510434278834469774800928479458542163564865365613252954954921789617577933942596611991378292324875456570639301885735123021098512590683709915406709035993781580253703118163075891967314455716538941714697192624228773939817019326199140615098400001639783543044083053661094303919913776202337804302322882688151321633077557635134547289906748391480447351756729163885750592980973618771739966885047925328222835940497307377484123807301807665273323942281567274882086116698035809030925967965803386432785443670453877922363497194884031181029754607145148872059984941635583134820521155865737826994922419573983003568654718063603011484065583108573207603724232466036633617149168889760079954664923519819754896518416421102040317151507769332931806166866049986677977453003455144046707960716071504999709264871206049511573168923325925824667569924587522614164457503937458294578226575595098893126373065392257539377989447421802493161417597792151415237439184693794302953050183733528647900729363843357246849935182218517579446742581035441059156661378267027813447140096178690636516112192724121996322679277864385145001786856444090428882572570388612678591500920189344207731503820253626700104683280050853797461150616918521089865963102620470885900754713233496588751279676679570687897569171523734218845592462814507606792759360074022429949882286467529696106093471048556904478522329824978750254295734861200002786399608368671087009009502462184205578632607313994965148045055016775609774905360935064062770669099408022704022538579409936124215785265187498026337272185598265157370887563298792769641315494829475533749981006615223333504454400221772865435092648760364587913131249192255255880711385881495217701782204594121425519708571071010081667443539425505086793286113460416486454226031551001143115547677122026544339032612788266384584787436845453844835207378291344972812337754978837357859936671058467742575663429112641757121044418067385504938155058906994796815441492964263806334814297730512277829409117409624465472866894504363499316572691376811376567029186591966633744107001055005140630205922365909566497450679222784341102895152318002506548901596478368927543497518215225148961260892878790358172532842814251033315866585795870174416117295172931778332312556126507004641559254346060341364044346742643194391820068611426475821793575891315024997916146872340628081153121818956913130834960688307030872060687195150022244942410947701476323410828909026174152177814421717238388478184318928833079044286142481292047409145605140652481522990906032723857625438354839544816102080224866481144362843112692129574146349404737619664997934530005884644228819886475060438915436954703904024074127728757454937119163743389741931048367228194830293398497534541517172744672195750319418345256276130372354173031293964131186138759175274794610211077212908218230389160917538865443181716120793972634461501772964177300450284331915094943519371561117430105850646814857742764053140199122008167376217421825621647171404302657199215839555225696030020505867981709813703951223649003263510117614442807698927594796280545355646353808309973054131477299988923827835517788092690887481356109342665656305354270611832538897964875355817181911088745490119009167340227447605115659451748296911715057742132275346727075371750724602172592148138573315667736527589657402762566704256589985320900724957791743959888969680493787044855419561137386268741854701380592137213568896511035282661347102742116112862308148491506477541623218142823327502178265526232887141229319330297363392002541301839958905531553684622768945615372643151170128483566870359312711741497096969266222652261605390755273507367375326626695567636042920648137331074349733003415338194949773750724299539901782194534287549564183396321948045144044646593840261824110412108516017993504495398031459062068968953824532862151651208951260386337271756173644860695173538955111588430732674906093640681888696263489278155883815346486221671069374969766356301342328973560216342271614009907932595867458026260372939630356211240236418248404816611786863164694580884050822046064162659867878147922842424249203339166224087581999277512053940749269013927123710062948514490559051118647053552923857968971353050018766778621517159505873337353896803609674734744134046773605900530263328445974446220322821742246968503575191334243305559789874945967698772459117809711357050921358524541768359701748151699455922947825305878544458585828617602667915502442339035320546829417368822550596869155259763234814388888583290984843042135739499590216219082217106312610579198112274798588176827528698040449688770644689453870920781213695596640039836247517955386500516226709176050758756159028730798536498717368280934577760677822346787303175650143567473546749678812875581320894880732180624523718814570472637958163090913444705694537291544126891852763703432615125281169557171010360233972173119852184725920635211318679158025845094670658859532333913499240665313033307870181309382814254963622552697495580268497054884668610369563127450066439903120356812899068286927356830604658145933556686009347965587745006613399266057396466399111960481599290152298235570874444815139825879799765651789237446777055246120882683711214759023277653121932421632902267819447689727441244146698897661106826211482448484203721227016674135627784449860785845791405363901683512510291975872454301852558949989501120059121823309017510218122239924055915625750306171365160459969437981108864355474726965102893927946718465589397672895863799285181562013955980258608886428572626952197520217082588200932698812854846086187696146670979240882186556117357040400474861556660235415393477044369995177818476541910537258530858054295174533954616866200522553290317420247510891093797207252387219633340600671877444644983942416141111677101830317225312679944762600079015979119449237831918924793092424386204808288963411628243836554560055130071094960618661428164323973666306334694340008287540970363283962465579372781379362535521098967414769013016437051273638528823193125358101858752336487697724181019335954448528176285480133710513269292946914019325677727431755796611790363471780733875699672065840415527520556705080002056793300591184179551919298108268357015383379933667765155536178675232304777976010299765765508651502424423751399925093997238227054009945045080228561609282728730576768928184982770431521106726347338919690706892819650086534695421408887358523932192321714315244443526248209416503654883410339204529254034264333864444237949008870504740628951166203454059885028344350594975728912675136899780499271998698840547144355097453177328021541246482008947986091107384047815389775586066105618656471351995555974517571971348505872126216873883100657373954478449417505116767251247461498264412210529588846495291227050469189190879821961015184405431945010375199848132340040015345917544979961163321032011914606023606021704597289577212705540334096001969811354804321606545050122009243515571821283864658274317152226794939744000084394590221862718769923350176573494525049337047742390197666350589273736622714267186282692682083718139261620480041392506842021939480328824028073446399631877452066294181428635158020180945644361976336852619951633940936692422906718474335439107458318189947883373335221715692143618110650425234388781308882398376058656961504814808454316708990859949796102020825104713687085782158175451184285001290286124789941966142808490147681705491505120782139294122775508294741695480237574464734191386691595865702771290561952808899091772779786132488596609730124854669980619470911255593996058196368516838987671804134536093795192547883013603176455565371629991014626245474028739970129523626671602481518148824190717664119087217502558997418559966442736378260738909995256623504778891357394246002345960227645804980630108883942563641117756543452307830121588220089804504961204918270815355068306574796923304494743366943603031908324184282083835806811316980159091990848340238116010497884331254698518835527133668920403118114513324899809469722716908983309786588779283433036643092106399782181769961903049873881686354463034791515909620103687602026271880235665512539545812057570591980648654642198994349773839189883221458071078993620291024706180373567608959501353859622209771413919470047094427187301595984915508107897529716615523758719806404965495943111275758190699793167079728857886516670717346595770620565632108430455044927846607447913954848800582147502157628134307518215854868051398511541610666427980517510525817846635551546771169118794139266361575348819752798391720821182795096645029421554374420592057570570879944687794180001774662712720327075085632893859447959999929685446497238262804297282736267590946149089384722146838989386493369816749329334119404157531805547226921821908171547358106989423451807421149606288727038515758155180015745426631468795467617126017781135509326096340805921053971905372922824531477612332532689242101747875998443409532738175308118142475862846614610491382555951466289387193468874416562767424217061960075199995924474324603096700638380945675056396631788583353461335792595752514168589316336489181664573842880851342165345212556983949590455744518531183980060512564902163993527223099956043947986268443750064633390420329497867559277794017214727741568252612680771419956839031800766707375711883983741750882038655578509573566278534351059300063273840302870932487124193110860329541459277263178341601686314833332201980987513116646343043337135739640295304968265144387078773724194070566522054811442214340245357664346231140918770090190489704966212762272267668315707968897174331203769279371595639993989985309420801747327876918197664693769301127294861958932159131963823315999336509123819256659538898398497076499599294250945298707158475190470379498140779504634422190456451242512939629588239380387633316892748828204777879671614658096148734237571148454472253883252367343603586073441423193233265141114367430620249932559716866303576477721312053666882956888517124071691340370833906911251586510125645786115988202849997713196591994254505450121262557643468842247776412465126433408634329961842653951156838286649035144310589322147391467740285270218258183888743882135710253369517297080943691724319973300341014905057599725614843244581624658457681310484285873374983254500216132855565609272956462931480515305739916463509874648718391240033640794233254720265605842602591492142332643488308449520490412967280793674336096468626958766983319185224832204142398530141220103711686147044909480998690464282985684209867644857273709458272519281575389691652507567164754061214044249899608113916892762050482573220623208464474082870498076014638532508043469524714028916688499138004853160726063505161439449534223171233668836564838230282430514989930588334701566680990990789372120894694797596365433645809436982475823108987453463183783916745327120343993313468938463655708596991118067597114106774765563254206314091422459968522813600536572472384547341792535600334333906133684306973695637804380902117671981756733079118607627305120873306382579098403608428885545707328140950155889628086606209236309694961275429167468603252091882162922990653167691964508651802285139166171802403208511756058600394470354742030406025818042925509014795712516449270093474616048019363552843458511394617214204186280394540815092502295259670793388660404110738203801465422693497065171812581410488636989830039312335882704713252331808451854340062022644066226278106227218830190850761894659952814009974824691779841053766297463981053152689053499906790054922592029771142316861594968120876214333947918352710201924728979530033634755781810940287857236874368778794733774582180971188362275795254130965436250293021581859260653535974050814097812052680271221960946283121724544848986672600780062460091130385685590841490593201952216254587741736007292511872115280931489114060764328501719351030170841739602194937156352245028441241100107109364231514682286023233418161659918220416721648576846601770661924534843200820045381616421747993090216475613468037353950781270864275808139057811908076547037330706230816108625412088383601641292092093681576926123451409960732375497204982488602520611490334039261431739169261492516403210087600997024826701799138872110078667054060487786283133935272799233106332899906643390544361834578049488189383992219998774850271548772743559211395614590636403167997116878719690238134341949320002621383005595848081160218195611331442394357303095171306925265211052938594143573869360164286843176514522310314342113229193645209847552554155906099890181953097168892159174044064945675169648306137201974974300160599537994352307940925824286013954401221443509073500878416781039635944051302467833753710436725940552145058240458042919335832284923802226990887756630700370684753836324879740650750663367578448377392976315599689409428227356384212218178967896855312903833463435540063337916057452291381915565279130745572679589723222640153767846274646407455549522238669633650791688097901561532774081034840552455467746718605936685379523335387173082875395326310122745472097334363270089260512467179822218613998365821959015985375869450709626714612612449340443503504726864491150582565408046339114423703322916243392476245596887431943607403373744754089117736494117322409362139628450839701574248734178215085918558726078846814216000281579657081591141191209828216463559538994536206898656537372843428824935662806791080426123958687645752187747662634550402890050024972080321840185022278380732374565902302986188341149730579970681457469446275129810737767057353937009559562950806520458446345807640606849826825595426375304560947449689164508548875533746452523402397743657445234180315833081748900352527117772278753771413366671481595639244998426325716913895262496812815712567565155970439497151621551722700405082781234265764184482939682056878168155218568105036439297817974164302631014255013725551428623784272722782809576056568762867748762710922437902043835713753827066971223587660524415622650090869290807773072028897642371493342256200119257738836822017636450846901887046169922048195676355819034839768001233646194259134225712377939385921802811643051206836132537312147818254060593722080860787234232507123191613505072102354936812007248485268296789153551885734650716072295236103968690431300827805823390957978428251693818381083296188743274970759168314908840874317152877488329861584514526425001754895946490858825009163798723507383877567087501656229512243021483913470464601615467686915724775250444270046923691082674551543596439262146496756392961511777221983846832285655536999517427969382964157447678851893635747842227260171272446905400238914908194108897189067536710888658599217397551181304870544857253195195418899695544804454770745909240952697250732460366238701401888205158944721001648650985950010299634926973111582540583756095201371397483163021074297415797042856032157748399640503823037879771629770885591558554660053047722898773882626020287364525827206790668741497346499739522809773295182288843707109461547599478818733557082240016006417802202647680782644799714578600152599461543455180272650435858331871259195092999764326795164939733543347714068925474745873870042299432120024731536633321215278176586316972616214571130811645408369509447938351824951019312477560256425056133565387840732487148287478493369824457580750965267010848822353318587380568602211104094626333282008327188308882748199817529737166105605919263235911914760755333242835484496006343298893014038384112686466523132199774531820941666815039009855656547631386992056026343332097164166200736069532084531142959615778340658227224624965859175919059923772502170154169199499565063260626699557532238160064046317706436891469854794454776955535782261614303967751782566513663556906544910333492910822638368621474779643972671155967475832631804909865440026188454978059943671188572977244925226381737014258747907095513075049088542790707836124624419905252950236836388229055071418460888736914796749629775991072890893917956988497147446882692795091408067557475764810580424071960990872460342653038191707216007613426813997026487374491200636117240991631208211138795148455379770312779305144643504741545964355143357981299944563371016048228590491320344395488298415639098597044497687222994829653423476259300591531522286108174363777666368794126791576569341149752368685284426270815924639857195746421729840595913643426630068160276199197889343756931041799384406906862891074771572118655194181573996633369550273796107155521828882963880574248705271335193467195161327548547074394711347459118234225960904084638971464897131340535411631030735877954665595004891478773989953200681504183244431515850841479128865073847098892753980996584508586911667450847550636374452708815833624663971367829382195207424994459618072380816256652003164637173328733324701001753346623203664949147026285152981256812523469573976484415083096823818619306922453893005518723587015830556400726783273053504834567608882139406521046427558062611826830971755396773646235297839310219227303841378734489511722933866096643550933046143328344862064231952696699034503954483914375164480498086082192167520355509609995851958982861730030558187745282897259066588964594718973472163526882103085333849497482688387128511999857556683026885829949249226131528807715986970088957615699227283215605706905911348558119162125958824862881131690349708861251282283911435570953404379395535704988210060696006510585817535744014324093888502846165509630434683332387344648979040954036867074456158900117163144518842532124443097173165119689289548608698062372713843761761846498484755658889382552361822074098529066443287028929696914900631373942438325522994691216170541192784260457450936197938791907459342429664701537435735856767915512047194088266657119174422108002196541201008293414660106183905258553545691185667381033129962646859928752099187665716020295295564241560487711654732982428901882479907960625435925238734048786530489138687515384484987342171255715389218816447789725005621245714066827727073278451362619187926795053916687660433984639060684986560441862573613998405843561760679123338072339403674519645402744489045209056394197568361076949932722164168616133445787782050223534151893753471448013175852596950793420638295320829223099432687824665848589293132127787521938757488473914150144312642419806327871806857253831539983079227270784265282250760614139120186382319087293487274721079025988243909758131696343522468777468738421288008472416354726272195562811385973918326289293855822769554445013144566722100172765107860747248496601417713703651973950314926077826964195703032142638759710009532444260986111812716419053244645184228442579825753948593191570978247712210257624801752234806701837439875344868626309590352780607444803738441027289216044850751900007068069738558555640121314156572402040632499901164869161967922317005128464571067617036318950687013396315970647909955263902174522118583213171405431252748706069148768063623806844221262280671098219203043514580319068993293233685219782197939076912875813483734533700252491723149127180132205351860599267778201416615998750240316348225810400379163144496738410950598540315963917714120610079403078897231426759853341730061950921183813144637293626752264475066702603793161277876841870348196427787876506252187332056942418443864593981042849386569515608608783262716660258914226579713067522109037173295648735359873560903287015980474011734814246456450944633867330732714684231438765767055433245927551187863778474476084499064514858399000807258367520736627327385189150807777911491981601680187338666789135160836284078712128964174472801739476213145607181688073772705107042866218540967386668456736703265037038701077228652467851253521656776050180027420205319023318296601243391846920136846082227678723092425079049023937103691731126520192472739125845148742325855285970607743430571087615879796862718108044061741451851295574535966300813264552723822787221181069306891813200370537180781872569889883163767404122049238659973262297341202973750401776475761300058582369737995325111806094484639791126475546959864873416699008784599392488361875500810022278947770392900043322881742852930551399615461702382506670572507969043833652053805596787316166635532671815157003670113770871508387211456321795442656562492191329347528252215951775366101345532145595270002845726451698778289644442575427138308422149550051516614292021142390993691393118791496216789742618295653138260984268656569167244338497834248384203752909729866747274404566388970165858648990125553198358010431331564848716552793690220232358899994372159900134621165298890864521188351337365955258223531119215713876664936469145604818653677328810344789735626865366141049023190347801698417601307086013477586301535637188179061937138591515295695691508715407991429306743311257349841208903984323082448384245280552552553126898383685288810375309264487071709861083749132185445232220924629291831566633584753351409343528046217838508156040761092359619454653336718370668110944983758678054056868363079636071014578085537361979202045164596107100905414135428255681839453486363650665549015140335542135993014087014152381085944316187887491328361335369614319327722971555169903266099729914219673401254433276003051856725607789222350969572285081423397291719847542550333727114724623349168779325756630592911392629112603763612561359795634180726004004920089003508810839385616397616392436922598258520712509345368063184114706159690192025717513646644889306226475782051554146341111447803615076350110091856793562287835532522816011027781675184249026368805345999692157285797654638322719739894926986082600799130955559587065337790845527616795911504333736976128214482466930685443285711373665744709860486686552040155822028245142067858882808647486851464998408025228405536755920806910698040020185394474387590856444306232246536613364870130023187826082147519857686169761585785748071627888551829857208648504747644656126469289959828348283232690251662151454955105071136943563467989155753502533777612617148312271672657459019883049433073792780816893116343635095420994416391196568187569483015817774177712076146054023306034435546143937165417036365961188244859445557892736834878136028699952012892696148699539089073340875887162266885239146267578943731613842731574930136525196182237280031836190621870977487030037993223893960963522827302722374080946994840676319679320114626453823461156358810706946547938869721273324643477014065022780059535121243349198444650660121374484157702807282080701744419268230798291874462552097080398751983149254480989962452088447186863066765472372296587044514233126220702495447182001145901144938185931610086490007995573299277862665387406680731517036175941905943363854775689226974536601512418604958734509126240989630037823337558513782540382867909099281642671815607461530709383558135976121361457632604104763283338294988356374736095672006562489106293228829413731838312730125219904528814868223525286073110700026602720846077916847908599070519707773064650962750097313406400285910271906340106670413118986760680790212192513041498061100882152675963367801551121651938124469018580818064916072507964452302516213736108795157348173572107248916740950923057177087321110022751921269988203992608216708624916853715982613481188516346807493003091876307034068084147483956648203468071523078048519442804986405373576674109364389423812992392944140574271374252524237455485263235625652108443163966273465942432279215302604078084308176065433049165473155910395375249399996889909545492897617454844991509869030364288849493782047024775146250887707988145793159349972261203110277437332536189081577843904670030457988536955435851092674932987072024558839285609452981276458960112152215341758761140847352457593619366250843017040723814726524064691960384607777293476872080993130658130942044128874371762943240887617705126006453772417336348041290826363559707498592459092761039357163163969300803924785549536592480551213267745586530184099479805528849783870543317542169955784803530236591640490962234138863399240232147290759242464126788354133556306698201866954032300846975356387829618733187966605424760036047557776919882557683607366557190726075643732150947153065205412224826945254040640359952596543030922771658152706999250919537239910705786089066176520580834182048065540557774071523425724838413912485174654268644250110192267906831443008227303518613830282251429301546240642653648063961040858588630539177928605192800466926267553920666888191584250713565567309886509246775850714506434412338088716220819767294137530377771281655894881886619462686886054413644411207490915888432163434351078044594490824157538446812273394850281393317462401716476108818655835428271085749940191335345346156179678748976958740732172431994220189120567877469200262889944337742835620042076330465300421947534169363251570654398031688250966555589199778081937416681033457638092439214581709898385476952862411739817815514879536289189503224430364518151236530932823745520635284352514712593020180675105614254884475335060085462636050423689418498542934238358650704543402043657185375478447917951096131645060148941422571574530921533297495696952040053964425829833300080974410390011266079184237960508880878578862691520397688880104258683028460610249194416739618123538531014055979226751835997015760410543041708345468092226949202536757021828454324663024189511805995682448849977310311924203197491094751318038538731539602079111200580809668608980219594400025160148143231942942532013567459969357486828512903865002535885146949449066692901850893668455389223790460359263154442962865481834498165690974416196781925335571900143446696281500389248034821188521590083058409929737022071251439965048606823658444360087204809196632568230452388699660923786051028534938861313796914659054571715852293615957838835567852441812404686965825485855316835672532995195743960016024242707505932915074508679401633508285157662130737997588371349207006169057167703785303382337868137293048937618951118546824473656214365580037018865288440563734794703881204078255959748266471439251585922577134333122698828532481121813992658024188368666369285069773668306799542988945131155543061408276737944818083715853789339744198962803788202902695787880066695183345406310344948467928515010035795053773460423678927536489037722160944301043654281013231358959057897168077015430533581920328698879014143298680838305483504491068225213052257593029534870645542253813756912763777427587639724761045047283968866684049492167539102359841637397998216034110439774839596194595650464867197030517037429996207064889116946463102033396767547829562078075947025587943927354896589103248370690996870711617697298368858962389579820016417511848944895945708138048261569916498868049990144664654154231879889939419282242813906603073559381167334143384361324209191907991661267277157453431533714384428674181619720095463507484884668750643915954812433269872862039870792851095846241856399770464783278675926902053111865377579821573740113606222169652060168760372788014398006733612045452935444590275732444439529435058631726260835193871847198849843664613232923417748280516885446572535654862751889973033123247744602699121046304849415156950843547104777783238943606402435678197146935160351642840329182360680064485200753912445329547302346074869000211209880680955956484889593606332217133912110869550448746753731079785177726126491608195685698733169002701341891041802330927813835826105605160619310143426449547205935928215289274086670857088845106438261802320266227928808125175942901616180835223553931107292558456296488850019923115743377046730917791750429528228140490841552841238714295177321887968085271016809493505243701355119543925930986618972062611417259203500482306759528243766109510852699099294385005402261834794139568067055673504681759361707839449719821058820507618338064802402774172080438458441425943749823494106191414072593116109117989467465506375340635504420820129521253161270382781562970563253386247540721917030274635916466273954165507557833273996365530524160527060861365537497202428623520187602081728658751079491781573980478407237253795564362054429770692435274373712710449676184922672067514233341279828790441284873871867075610735308801327747941488021406609692615989857348311876158169801615313021525460632200230825701843111419193374282197386860571324644732111735330390161901431099007424008682262027499479310842055843852200091482241375324704892924770792275368080560245237847016871956589541176372716872431889499595258113552564588552175968665819111518803518296629599137436949139472130545153184032041811396151085100527243420949982395901048867542748290751570333648087945481552937868004029627632303096599599365713560411256432836881379734050196540107325104303518664535832088007586755266506756913838400350887686269303867734941345901549051576594349412545562238845641901456403021577154191456871191731846732243364152023524727042095063033188987092948494855131326159955316703641658948353651627953907728410978084354903899167662804753385278746778175868174665643790537746243062017889529436726115153457159887010612272921162811633664619007753757619589945957734552615238952739525241140163399032189010764882265090927589927944638279395796155159839377877828211244622038448501566728860119038824544324403011005506457552283629517124026774539180189116513630677283094919850851508750964388164159467037778791522323128716960256484906267087983697364100623762692567569810553459465774180703435975451186659439643426880320731488940924670300380575879075382133242967649250548166849865943663983925576873431734037176556868999503998362454821831484725520332050287981011633397049715852981531402831831382639704973231493427765662606573698592422543784942904685026659940372037192166258097871311027733124273053337187377894992845631400168519026980760563449310530512700619300075267437361137190045118908648939183232516533455194045481048991954080183150351882539513385328343634705174531157626138309878940556678823960139183589686760089158710289916309417359864439295174833619223228809672254117535640146476006890190579874161225875026017935200335666381560410905298815974650450550772316310833620409461225208542480979900377603632220930273288341949648762570456423143650543848323686179305801662516401260536089573765000163731320056097836556693985838145114127822506098817638911136542550498884920156120952911670397145429587059040571834459406674604259586440284558089917315048416096060480502367430194694524521001252643161094730966230900618328809075568167888350901242395109641133452839496709234663984589939599963992712321265702681628127384440157242329161069119204641104233762748237403020441728898790684409656790820202611433495131775720667222000692841005328828908128503347987352672790562387178981383796773459620394280420457763427884612340577419141470628407887295648263100315163489983218413452752018101718837376145066662830657601746714785333637250382638001675315908698962708891333321794011981774358697204455407034640726074142037905639575000020440137426300992150175859833343621176641429302317459863756305441753514768300715400926239311868439155232864131539660134590263502499635782083336969140556366205978110312204578556057230095108828778631717126176655054332887204246039600718982692016709134939133254755242782478005178800838168713908958648289070567918434325857949664112991256021319775335562252384818533185702109787730443672834153804603820669193959667931929169547400133294179079674028896885997458124455491654812152643259222882399703925475477227362650402972233345016867018807681290545034111741282025311993490399158890105959551888898821147179765465016602387544670827761641975597593606105112442952818390309489321472145171437149333048733408372269303061801529644210459349984677413427244489120500444530547840992815590159282435813896660587725966188873899698516484721403135361812935445000711785865659625520333595234873589111001555247744771732528853293452429342451861020822657933264126101415484079588060226276568295454944883246132459004993117598213524483656785896809745582259004885880033385969505257408444968449560465421224532085067736617919831959334315051653890448426167454471834577270566223031778609527884894269877242256708273300774230882138505981281367575969973215339550179849668034289885836686401546158904863580236135056073812503790464934983819421559612693544468521732712869729451837591585438432991041604276535676103783108459041018545602113528527645713759686382713584753810033700929001026565302309060920487379680908214426804961373759257824555581575651626157663388307622147153392567179384637796608841385856879399062709337517700007392425458110765421477462790675334508382144640363021281349727807045983347022286203411065610641640087455109044869421051301797716123379641220114916121718361121484942148358395252221723023259418844813741201772525428993724606058198840371079617478576090454157928858889397385628088212021394773889982644483514820915965995539714831707388602703914778488907826152130886720076659922804145084590546129585424783835014278234838156675083667999547275380197892089177073120746452230005711853624140920593590601968163378187690334151226096017528687168582665602597290196126504669163195089075837136641870140668733702878513109516400856092636255118994772311167259951969427049412765728563240991181140116550937100421717891098056211294138140631967386200217345797450491419888608692287325459801338785823139144279624799541287072994640265150983831723747146817591767103890485939421588889593837151013709970026684596462505088083207109315690001432596240634945254976553518985764980659804648978969292963722872071208356995494832495276552088942343092256172460079235055037821807544623407217699578783369745324927562933843747995972390838450580464849196853223221996356088096713033663039098876462925043659971640226721974253919881207172863187392948949840750587692363925899441347662531047931717756830615695611982160663396812067206101249437385446983931777899149802514384308665870551077867164067955839988755573341985437890253156781519945323928880921962380234934306158091268491026691629198689385110038237354432372127180107849265232987643546242296436438898091305595876628714169397028911804670432586549086828918866095937410509900012727426014494044259426482329479937151431695624198679899980436207774630342586048116649571461732860826380708735203331412498753575645430690130457240855950682450070152611119397573756559036837814250945497148729224041493156023476596955979325752221442300432583463562997732233075580235942254119259415285947376541447559351311734960417194711219164415527452455798617474134447569120546939780271475940029789393426319323703186656589140478933566101059807895987671688607151026140908444268845835508078901003055049487480843633586765149130520257184479152809071083000764273772052354924559432270837730227507472450548278893598211112940202762742873170188375682551449221734202060089826172623264341130227448797293920288554974239085483772783445893443191262680044076257544509868333757734850849876126333318502999183379078398348406231736433704296820604861318247592143741999467073845184781058223622162707857580715344480466005489387550763660306322281969023221975168153630792333177870177224171696160491449379845774605988778923819861225438578942525668503311843945695129912875717282488584862032820751282002393151005586207648340446313633295591166526515127600489421139804636221554523696584945462298921749207325963515835804068620567132508454495158666201090363737520801051026323104646859686150635200665537774654024542816437516619214005997688044457957914817263752256953364836595566147580136197371571272214221661998656903295380425902693816335698701737158028559032758049312119435209071552764093380357575233438608015267640816232775482662522186550614252385136949145282000772784749286121899559725172062120073088653751863007568783800052049394317727432459439319000652757549656727161319407732509858427322733886317293763592097591500493094171177947004984822911482877391248796327309218713494360963663162896827211628600234628757301850725596652874124756048859049322260630237637117199328060332814782429751660249221061945174057077820482609158050760881972932394376503134844076248737930816852566311832440014279075028685770909108442667385807722284528027214195426101015667843016153434256782200248145883324146013278481146369551848222166282376677854218891875403211685496884875512216499827423247212835116507920024899945650415464118442819645428238586505119492316872638363284976344739253983554470778058533117113810214309144197718457444985654599627738673513941434131278997950091357961422597558532520485860218519609655559283610986843225882985479885461939899191950398192911341752639866311170712601808750180337239823312781719918887011867416177897898072712217726216890076484023205293353738189894809394688473263267046388474071188759120589664535979328206908914371396738718669585608966730967211631072908461516689098320509240844162552256660674374231201367815753525644217464881866020923693742068861945190954953138141619150936477200286393709443607755690226756355465974025739201568740015222683602361776036024196034034673575902664683444253665667765802582893138576160479582225973892554934874828500822197413577570305314972639227234273986597753221345240112721950775884958170734986602828805576370180976059919490073411616554167014965933462523719509579250971585531513505642865525743580494814800344003973528642584847333362085121641299785431889375043639731040014327385316740309108662381333713780033644146664334583940316879404330329918569720402674093878100185864165131086095991514673660335284671887757957902225189427459543068739914136726060369898087513378837645338805929961188958744469029797514804369164157248878461951818918201584515059839336808900758766261003303456760657093658572463362819967119626334562089864393483194917390480235241485426880847913139112805030080056552439768065785461129491550759862850279285591012248262635839499405451394872426618922997406325440141349094545788549627651688253655345054512151991876461394286543915109117209404729938551655933068662032519406454003083158827987455052081346373831695457721371160877447939920561599173401526336111305252456583857667078451405324430881377586059816870998643800152425754976375378058752607016518586413278008130418396025052629386708547380739771888998107642439186017724208277282551101509692191596182037616137473782400615003494983973356385247581575632633692901875034280684771001271807813022869839978904197537899263490244380998662905632232969997876941188181563974026774160179872953166778819521638672522202145344933590207569836268768407119360262452683405679906105604819938859311112531360231261637375330369863978521753434414884345436784284988017540677340105385063564354929472301892723401725216373332971056693661364367224875326975525414979825095231886375583891127380444920652149215129397453219988030600650105600791509155457225397324342410015804579864965943724879885730475010001897388983990595760854470222648995270938168233917808266056344066383130922728709792870784616913077957956944568531579918071929362009657474868144440189878997785211094481441498097506468068784895886630683890711303914753270196690823713710450034171812415270088287947174314348747870881507549981902405809444398110198317725935556890628796999003575687456515262829610910542542884042796720920507121541998780989461401905784551666806695314859757125692789218464947805051729818530597511539177335131947034096924082987948140652938839494370708930263641719423306118019941400708161097891112407535313275581286048788512189766128894051281984866501048891507289453917533965397044389726397425550637506233586277803550912520821701810874538289447692398099736822208962541249705026596256987611639063703501225319201573534148803745271537074456455381698370705244665807634206631069065366800989402875033542905204715445090918255645699599483716790357806027668544462336102059874472954102899309378816620946463302373474110348793720258047196160697737374215028069608972377339135862717903315686819501355697966595262641002457063255105787682701857608169844300226112497947815260275434294001216817832481192891123379265683102894062400050002228298800202502300498101126288587961169854704191116861764643105009807495556911198118587520951180600653243479699942705920317254683525181591522894811001732178007905163554421030694926898012441431207376514614763972738318821485903280173465790848188876141661510690299890692805511568608226352786794819690165839090932331783004862158155374124302860141188518993464996138076794078454436785272261532237676730267353674808357126663428781744667525116238295254201100080070055019238065597933971467544144387266250442303075773921836325335174216578139042087716313379354691788092323194824464005187299151790034140087099302548315230028063787372470992603969039768702944262062351457664319236740539272358813952117061931809715632007571636289817066463543919170809500455209952476317374479063246122818548064631777648971032625739562398496376286412573439531399106398759642703392496960245820941200593513483449507504620046396687219557657171223359633217039914869397654092994288744707255026740062770484122983013868725268148380723409170465968822654321315699771259679352521017949601371656023319809415954877672733237662894607579621084340441198541432122450458387257961553912927079367469859113438798329888937724074079178652033610402655781116612236326000103175224566644849923234821593613978270595828773113329151513263450580226996282930692189915139089666064588824203533300434210598059754872453023311161690159350314049698023760134294824696136057702134318508155220663607448482868124862291233909033143447852229135537718561722361407527899886634595030771042899074308627631320674897535969515357895744901313122562988023239265544923743663005839192103148571291761776064046819279963853016429720733310446927274348346758394430201786743439087539412901802147858561745240796429670652615802419035332172618784405799889519893351645372604710836965930162386303279487428156127099301044516271214815008227463982650619321719438053861815864364330116982976414799356671703179738776442469378314826441931112317615068543856938844078543865333634018391136567829640187463737131292027420479274834664129542184152518796769047555015204068209247917634352996984874029085208843172221202588825057846758489405814839280768368708377813815344652926745695081125478875772008789398940928399665181610093054897147067400314853747457889437980479943921680261136884663673088643735503011986772782724228559635187496295558586455562229509539854426482006179794291051133636309102417857220569146711732970061720723972927980501554585623302175170103892267971521199680270932232585934161872846647774611519534966989303781270638444636161845029292501773632056943291038076066684789652923303487474215979512899104117411307858477593210242135379818249174060723111952375555608717214506875837976716661978644200597392413969002978234172346793944083844010531913796524331523705864876696180069287982098681529131451423158317694701338250379189239870431640989722560651824008513396504353111979193869922406453962081641184298609521286826066061345604931033522637197807578141726473884989464681017544496448387119427634796099178116819794590317864339178168934701217827834716821742893581018711992992020062175396512170323842227081148263723540924203132027138247377073397590782126791428827008570337957523602800544852648049434662186245250908069367755444057638577024732359629070357969611745885461709082406167448260192879893058124574623824595742520583213928132825718470590946418261606713102985213482744051342928902553895194893388692752189703341248589735691667893343681235216662499411337193943656972666201078442654782146949663135401856363266593098751369714824411957394305227867927775994331264437193320504472199252548828276263424654041445138610074857286903522095525371288479013911365962298445283869063538201382873011773531362675509003703669267753943616512480613773176595639634380429267812042026278356433579560565329913608294651596054780785490465796742482871240652658611123693365839566885785621720103012824350017988123265972808788821502721337137480507472867118669588449414178468802246735227119880641033582734372781779672903629274730207719994187112970641227490082244854803625994606943653189602476210349410915062942451280539580197419355850803380493627052185369232577751346444302303032954551490138288364142528584770330668409543239939707951197643764933105386736987530690211134227528961247202367867859300034258386986566182561307326810968806069007021236356912134939933379969804616518104715944530027872366003138760315688007868895684759775505708724516665089354205720512099649220266918176594787722866941280379049433527938492275389395556593719853050999113539903982187658490368653533673099654508872521174625227280808486406852526521621976612283108257995475015080234837932505056337041302177118339716871267468932084999140571645888811491977393295887328710404907229633508589044109877218685772814494557272960041743458897192486794412060351927183652188480223247003550766691197929383374488609480484144288016013228513305733563699514175940159189263273419643382827713602779788327980574688861549420184037919605776074735481470260973011084293226905660494772493527958333921669727594476009238400098583831636066731841887782958078048193627328234498606608129990726063045816010771619260730165933952540171853954260545192684027119444617486257955233095008744817501872749972322701713015047608214698454010872574892930877287433675163474689376351692505919834675773200231973488243162171101499586050424315180572734652558429503217851144706576123157568699275033690458816701885839784835082096321765120988780744194303393095304690082753524496145844000446429054949124885897732690450618202320898193001193027538538869321130952008118801815434727292750896239235823889822149117559879130074787713560326068510151069440846522453605841685903986572179101915367630427461680503079440883729527318205252515838081775276643173559143816304002725509208324766476504293851686562864145786138432348696685810617505658470910840198220388234099425889113933157643986982271112042901269036546745414690694275810344996123415150315653875002521849911379018839289380447039959294395855970686643074220325452054331902447132173046781747818192894787907092346523455417224006755167563731229064032680708272506073439734810547201455074059039672988125918117498622361217991855379264280662739284566432269033439812459812280613836396964171938644670118330309993474675385168780966770822934383672665007960233336538679258710104773815152240544528044479074522541371731623990449823231324102211498041954639500357332298325208525956518133679291615252556661641813003749744033088624889210648080060628820005941529873550699829021716740805607510004989959734316258977668438733943617659765017122256658857224941100419968540298415973902685452058281745185827097679224083426167481009193208790176937293910998719782268616955025624162670713470537567732755424437246208419584037848799244309855982574531077068492421542044728168358853675579949671264113295868383801311992598267803964037050924535481167983850723737698041686780381773849240378615256334676486851197472275812572827471436298878488710607916736940506983055101386122539152719053779668013012599797818509782615992773930636388537821259498655827895438370897154755071299492198323681155056130652335280462169284771139491326076654486250286643608655376350842784851183179785518187306219147358926355858278043986239395627178792076686258160456750045121441188311423230771009593763577443299267103488021386604499554465951220791554050186605056229595507175672752558964804548100163924387675527737356271926529259433329605064265245700311392881983123044133834862039505771251747385412333019009791551255335584094097739044467723198846902575204302495484616409342242041471754079124082781326182403967614421920485954162696555158800636008259023848535041495368382541829311605315315641846285423139273963909818687083505395247366689366310994869324144256841493561293109992023504900467937751002398905398260033683175564304892300210818021379328178884596275027367174227352237773455435697113604214670220956018615422375948609668397582829048804762065884546667145528423103165083758322689639761617095087990072727548198835296041763623324912662632859268714282294562487485129970868477145696590706685875172552603888267219397340920763708483008146668798401096551731754927563797911862969642072444779107275357395030319763479150010065765467742646558797580850314592831902336210915924637925772997075285074636203171722499831221987359924919687855400312787848423754040615756672362457422166914703399786901250061917296407128443154481465548309761259952364611015899396544637181929986495944517971154966090400021490267817365329576796189004224091850479955126253632914510113706969558755847600671248948860060481568770682603850372674434241521256127918968880316424350120986499898780429930186477865293648697704298543141856275815670541961225536998188581278838356590082111101024740673694888424588007363461302836125246501022268070157131020099377076493489209949775179096768767532964765664609435000796405494024859746454546734811853364325348352254276120684021913874406368224931668781395294879727539849609988940623469512115064950305721143176931978003315952068686533572730683092047698553157888996712879856284549204798037072741209533445344042225710502928807721088156018498780126795873297965378818417398840301385828311327231563672757240006694026235207942966988896995971869916786743217166977456919298205906144589800780708142097046559418679593341536965763170166148175664211768603202823086136033394579695076880582732756111488359249420017084714668413307576261459786195745760894895054844580818043131656576178884291463973560855992256965555185992143099811166549611244887817538682077722813010694550715545492766690142122494410055875325161553484399775330948002957551415420418652764672579011297686724669033130618461483915746366505772570245268453238405956746591058777937929528599031334156977657824306805568225931906556986712745649474832658455592273592731019494147673790481347224943932554164406867316980895349194472622340249779356713189192054452693659263493287621788015185973668133021130383556353160629810241323888507932909512335510547772169577058934839013584303038790946687879148592823639510301330299300092367732682494076152615528662422748949598673800038232464136093317352220293391547928870378024676800692202716395087014991020426476831976462518479336469686017231361509352895739534174789485941233861965268256027793954514575918441778660714727414413510280516099725677216208465209190016034310794249041113698111329011916832063229718732865640059961707190928442265634711860007060759432107510521468940827410867902246381606744348444357893100453115886797128643582333819038935302938874370606072455541176029568749761514749691596012689891422741070289401534909897052323819109544490532087204039667212005292529721590281605589536478273282296261375625339537063005462489932380180127886773911091552978218630151496617323542871074134213039902724246312919858793705507647167742106253336824151082647601086767795814570045871367817262241183549192291214499912989200182762933183792093132379535255093298790515003908663825761399766918267178114514048380337683509165630127601049847360905712029287649697070393343797841951482182421850166117469492202839319374195321153658669631073940016849189331698492858988796840731594477587108028346106122758361518284280591603814289888584292474812882574337426208252234761467467004988030523862153406175420656241390653942052369217381129907924247126585573907088494551397490697713664622018659836494584152562887092082614609354031458741447411458465493706266997210457635471599118918750820509815782871605385852712314372273204368694191584264823990825844878316982469894293924489595629017298508789699323985778923822111679770575283725857560740149790649775737196414705221505691218820540975606034794208239406183104492412446623145683183514324159865460531937417823617340587496588083345706210063334868126901445321858772856914030699042195577102966388148875748637386318701734501444507307443861464867730316595521651141571107989153123047569967323850360798655296036055348468789068711306059660655025740628344445577759527541580943892151020575302656809005789911010798063697130330859640570355754781098419541159264691783775381077897636359704697387174534859691209000813192503956185359406160707031658417842165117240303179882854406890654642653374212186279657049520704820702078431012989498995411475325024939425980140106236302048994004623456139183039967607723016136398616401917495405705567712083551226004390995196783369273660150283962054981079285957592927569865161094105032877904066665777731939559531515437481944418598467909230001960668255469806529177672185546819250887317192354977229900188613962123458164603665209881729511429207923571234626815365380856062855067823550367511903546651078089885103016697645297990071360451241175550762261726387950566275500917893126366247930669620949466891216466691688732337845355487147825440885136866063670839627485075074435104155253233310817471986231029892405915527995381151309608332632629790936187301250590173326202318889603042669594776128748416367089039818889859423762499655155973924587179893422801345560610437519738289806178604947395053973849009458776043639535763237538320641732738732838458114853456772330433828181690556651441064316809588378367859211923119436314411951474023932250987217819553160284062363877413449626818500754589820654105193956098503004019785979474407380604574416415948856181747011487133052423665483207422781744287257964674774133342967663097889016713585989286750546045407930136913599271839388345033648223912693552111963778222903838182854792724051223760603411760087084402497686912021529813001840993611695922021361580007231951264476096558085896044351729437480765292213597100100078847258423606038385451427259274401310164056897762347712499393858764855821990227978995203651763930169006032801723612221607799077184917243405722291549012368304463802745616178409351252939703650144708711022539176037017187864940481342372286568608710198747313018165238065388724430101526480970041282593747444868292555684429530877390668824178053718399177061819592287144669781884036400263360399652068777262924021500961271584109945330887046330169941384030093744878657123203918796286985329693172575045922515202359925785621525921371874703673306064265320818250067034058246873419095814474497276332794040387690859530672301344387874291457022751159185351707133552699142769333544909612081663650239235123218099416706475079437252479676004791579118472881404747762148944687407462017881143374468980804594605584150005679001331863103294763187023113918414345714891327765705066335825301971144831019703800403250827060128236289995157941682740496500663406242053452728778613023896332820717347326901074244190412269737580697534912386460183147116369298854005809579487754899568855979084382323727121941597753960107977234633924958380357001502243797619872840974619255435609874214589051046460021430289785704283076839813537607049078620585294478342210128088344256150770971762401328141370954575490914959293764486962725925348474587465670771126887374657728926294884090954605550176997276066192029708351072243609817643719401784175351923396862790628418208837823806846680792033190043201589589581983708890448843064611367104535064381344399342176355779428034659261006176341394706489195535590737935385385002740226380811076365631228848962316890814944284785895198950879451807584095648076193388669534633891597809292327483695771807458533387078550465859628523952309183580923523569346800844288106747358951345312913598078419162773603237520614203091962131765604091008140404626521885916864081464016939320074430934307788754110292947301344316194964875558285805748379652076813892520048114568771545895969911836055101633996681438821420960992377764575879082376857235244150216217169433119147998782690667739720128292798180270100245032005800694690203466302181478517550129338360910259651133554164862896975458441474583920457970794670930170459592327400393893043243442995162186404375398290942761782403782067537671410315541416609817899135903947015610964016149929209286450239904957182943910112146565540804277080385716297485273729916176408749730718379861095627861989670628480036568682259023546816839761187485665872975840825363074377123124392486390537793407710195599349656076230551519656120093300223453117194281671370113643877211416688575675979736627156632832536116731724325530259473364054591300007494486236996424522105161177297887693325014346469712033448188380290580553677612689373575416236968488084036831425221329241984003267044523503049203803616957036758325355177194493412009443279789806078715186260403392378563892243675411866607100398107228440293142134885525138413442626125285693291982349666954264882549354376717509522541181134700366267527712865962959172280167941330535127507322821324037786650822306372793215332405507607620635002497027787366777947014327857706682196162082841639613340296851415919651454662111202525292234638428688495658785500597132035366382097233187937381343909262425378502397598480596231198667836981818203642462758370478117762570317435996165311277267021001623833813657084485404354673189623135726011029981254160678972360886688896214232389644407240695835136539471143473486422192676556895148927246402694692369888288698220185949413525595552535109448526723555749243453471182820503602391455107937448176416038932627891972176058222562449783120545887547812825897674647897434767994686582945736680340696402120507367819349884921707619918777151299483909142240628806912807076605608380982015374534284560322594540886566973821628732445569711400668210152748291720406298154729561385522305310459815516716089191448759860384249749735358253457260525982782427743211854676239961697424076820494318195718453683078580917252426288239898835682788760801774826038668391776116645166860756257361823383698536886016285731671199864490003727014941477459906728819545862633875006091977904639202000648174939911424592688532556837924315742404383990852194212465215975448452735194037880899676739413847836760716811773128844423976345492032764973544786173255436782015954762666512977285300360860634543504058529907104715279667307295109784476617885782295892368564650774733177704150439007731411132324843399638221365476889083296031411331959023410460896395763572024286470984939312140221533627117118056118393447314628165552926649371404721482848656049766683510457888254784753528810572503014157175146422889641764784210537322605852188454467695544957807389712774478763382364107940044987164789900628760023683123221659408475976779858647391628385283083074780723568754887883624348976788962770718016348562126161225922131858300831837110157879133187396996006315030229579663591615648203274410279870589983639901141540572112340715876710843362830340639596687074173916221192249325051044888131421060161705391749622053387144409285014702506217972953132996072621208748839684128241940825207308516346464593350231787926081875325009380107040830736114692769900107606003830968940419654998272649522278682732663623760121813831244180127451591151349665984440842593903248209367708641784005990285511096006640884630566743985512996577127312430202478742744512400223024671339883331945350251706872952825195073522113530737398791322150531001065925397900704602491290143775935272509841674952001135652325791881791751242539684232029654687210866570320470307647121245317213457131801684204171291808552541950177094625432271736150184219981544731581610506254783163997680108474873370502894918227451613455973402310249311984887075218707612291103570389743075911175980113639094171637066590966187367696757218559969890049171084898321166830550414987312319196619104803059931375656120084679196437954114734172758754608595481084573133102029437850156706785467241910403472746731452723444337799296027703801950820749493529927360531141421158350990397814773797697366264260651119813760422566194479277921213674012311750644013831042141159013505457933657544670705004093412291443219249279186927304262661222859207292614314587483544940602885819831237489002694732687408989933580461953639970988671662820357025481915966992445084739986803926996263533939585158820021477325753813876723033063435713268496655701434040842505045977311745009388463360290676559797564940271847097565121869031924295815181112367851324892526488447437647728645610860618223681712663793481600054344461352456015405122686326539852305754814206445894479448976829330319621896431230571770316184256332998480350709967690076117379650033714921785934158692877982381532107147868321295230810294990430435315385286512165266042545236792726129829474982688243632552199900674150317188140310384120975246677092030712225298784418327810694328761812614423801382634373288942365850115350101348406526259362225292555244811169256446217083448330767164826661713461256783963326682478582160021101974544142192036647705582704421052464185791095315216106895436576833337429296126944071523850205096610041475776002719287744051066635449209177461979416546710049566272979057279958533114752086519236670414731618695118652576748772059356831868288320011960070645646707585425379119043049202227236336416527351888076846447010741606817608785013426510845634259091561209819414213093663037101928312402575118047776441271547714193061953883256639059826684879140464000583054326938438063242847386415109556669787378209825372751424075319183718529218434407198655311805146382645475468095231184766416715665422065836623571088196924161592317249868953494536126556939115403983362051944703072472808671731959747302881459049115333435141518122982192663774106052886397158624796723076890712223082555813975915009177309544654793496883159970281212355449713082007881759024695234385647524379269216827576953287207939505515122160964030808895218263217059962960908303500233495764473941997872272791528165084361627222772148937399425484252340007427976842173981915313020799580179048875950117916714082308526342729952809664544589291766322688097121089765067335803747497811491670170550181945749913414124449464713843772806658944581824173795229853727809072815047139649347571458925795331737861496666094269940391807639515955901417879685657729987125256954923751732811979527378331985547497902676522109565832116683796591850454143966720133074743234812476903802316841887253369880863036523013883225998432323669685771990214330992673236518993051606443449037672906424564432263309027861737588614890718529746432213900218867060598612848148554635419138750363368990695865230778738761248415544871372771056040067271066822209896650473576929212499143309155954937883190871451000949992576086181159789344650807899345137953106456281005800826097431344999029536331454196952164377139129172337808681324000789405993371592089184603606681758022721239619033071454833036257253690078237499136695347932760086616343211953729729003590255428309900960494872300182198294458576537822809799898383160671706369904784814284357993469431864606151729301699467013823120539299753498011011783530303533914607441869458857899142292287810419309933511787488055070894798338829271558429012653440912610895368471027747410567734986801246025243715342420377842379061531987544610623438435706657544419995688350727391745534403382555714998203274027900717139861207144844985321352163862821830581348777637447665408238263368039121657329117980438688666262182187235065636348302652392031518835525836100713260762215048344207721363304637707258262460295601357347239071684955212495446696761324086414783179329825419037647639682036756544654239062718102663106549822737972479946627253662335273935385572377326426422168880820999057102814835205874426720002331548042273855633174123020462126074485395643601314191723899240151526342264136216722601579559143544585493030122109054245286426562496846627405763861861392997502470375605008102561127263798923967628021660553058083616062923244759277255930934234554767308070698736684040260996432856123097183581336868533531401850187738508657946983377490616196789490799809784997234487950489631183126663241824788058040853789186395936295543270427127477435166768940207143956486870596958807606075182904501365459805835298301939947388540140755347222733227875028699460012455483029850079455352254243504344670758396477699842107769797720970462060670618805991981593356292980252082705826869616132596125757406763982309058619987221198943031401224860462440537621914712432083335309800620677670248752917893488836717672378331960370742039480624370840045248603175013318947574666836183564400869299877737788577925603879030342495544935828232686375863205484342249208505636283458272466004550441170079935385393843148576240228567513803454774226730086385552994486845787607670620010167388343486428928655849210445729068735796979092171060749233713731849664932885120831513471587335323254698577202590255184372774929152691352687511010221594071126441672468835450035853713913893702475184896104924959298046547743954774409388699994980953511887706582526098222269677099970291927786766904804013260524878565013721453457179678371925333220339272884424931804802546271300881258355597092313385796083639345029604213220984353559383300949861881903996943249057862517993487502954313604613405372666630158412592021108661210424736499559074232989915465864283673839808540627747469873837211516829850898274483034405529656431653139502124953079768951671572956683844096292438049079251730788806381175161124406127598680875630982687238025825852445573931710745515002483319523538414551790850144186352309296651744654652517307940859166155638366230697788177091716198822825206688595868969036540820961524788294334185909677167133202074342137652549346050921440671866363231299811909074931570102852675868709152006081381322383569487959376434277759244592465327833330969411370601969581728691556706045540530215750773397734176456907892464343160593298394021794755917243656287885902412708227862259917845850197983699034927797350683488708565552422713954247539352665876739698028174391367256406243936856005073584178482480102199925966212640844693973921144922684375406582603852814242701913502438825017134483881622180869047284054073496257323085389829416321865279966344518772383414581997882926015483881418354259420542927023032866054896864109454810923691660962722389383555952364293879954523448061269568733874747534800591834448857595817326053351031360639367996905228991109938041454285892278887372899248951202325026609031293048116356543825848118938161273891713407986483900531653209721456653519810411516531250634521558134120735216733300445504990552224988604216090857474724350916045811593413034044577907229643876346325883323452543044772592351012324265654080861973667774304507712025247974344390083091083609573086207968583099770984551817655961547725720409056962367376608453014110497051313086118529045800805798343660783618945253989719056155198392413742956629617834345883854626093717190650547693478208967744241881243134093146002078354193340983220030386418445461825001097254142890214348769704757650971936119010716763068799669804463096816955023468084930878612291019176036477237391059220990642943623084112578033198492894444282855713670136585178295895555625948712459595051885847440506808040981407495225784265028826632988547853121389644941789949977121468950060169736529916492178692844385568286861178705455895167502339518033072062322826273534574282406174754811802226324903024223117216950746329096348402927481644561799648597430092142691403648911355229181115665037117938099266722589501637955001693049844163709016430289996108746699715212709519620375887074048074845984755627971175037294374172633501047377395331478347252286308490239604015447195681277233884123430134139165283010040422895643667807205705174657755245075441319943173031277350100400403766914747107869814774464158148022298567308972708923446050712299806298213167167021450495002276603784642850396229217072297735824740614160676711687090401471081686312573476715229607128616181066525341829675752294753595634246873491138800297177552016671127541997994051555139096219168752230101883666219766342786880419104743373047255239332559641095597067178514012689715773397848741599309294830595172862030131732351064767346221664658446020734123028131456427896710268667795066313681067402877759801407227481288769031793564125412805954039249235123810840122874326629890180419405779878747051458917258691769692786520933836247930656069273544132754463907871737293724424855006373290145515355562352844454425954606797623348184763518961066223745709092275303789615712741092308002513852081366027190234715861146277450339735409044561124820982778437439319398682729743912968747888723776740368784659367901794995641990575657915258195044060445183934676693117117163159954638167541704773864040518050544500039659104088579170748644358482627478764030144168839177719388857814645174966762316322006761697456962949402598490192631143848274745911586108608117778636917577390060767809256663113483942843539451368641200057005106618294576369750805816490212714871597796272166642750114483171950508480316000235688144660843897139711997215096007168154590921105815995637472850964756891630507696108643899087068240417297860185721642539221903483265598863017888832606550789376608378118419932136244427446791327902720905234966226292491094943280448060760048741917951875998891881470187918457099296008942704436598235683114050974034944953234437069887703450876301839117346502795446602108425371689506789271571462824201717197177258553815511317994175471227443752050329332092277149732712263981437964033986336517308426605714473515706244434239463117175384082250227196960604491587677841339098171067927625412583281768897889468299194352153852182357819179157822050964910243202393392000458926393961186353125422403813095450350398997225484023881065647659152003610561486939689472952464730380140184005318765451090399525549361201931834528800061309462171103087622560526219663662658208301612749290296054993938115478102589141640139992007117949006886626590287719627427457866541091723629710873466755624082100254913809296833303462647362161376867573880103652625508633645724263620435138889423298041054283873692978619553731354953134803200975608911826116843930297774542548935269118573826214289585719829789054032523341496898537842435403495000066862525147325757340219927311827960401604962032787298349414845466923274700450585139695067667825932633829631021591970390081619840147937678192676430842901762848271137138185080816164976948740083361044989311925990682042187900848018374669126752298469469264413658746095582667493321842851910801251650722347267654182421681645051005723188048480427042926307118135391436331674010178755768142563637923938197499275367391496738197234695950691226194639060344353526024147952680134410221082895904049779004962608352578150946195503349331675819631251454628679862808381980216768786068523386683889938364962881134821372448120681450278965844693459917665042640669829442964657389652559051857610588710364853345114220730180132579538712674221653125440440342603987571080377918188913073928681375740143013191897777283142408536939863074630109619730860510497344023779040915513476459225078841123411229534769358816346779758042002593136982558334103618296727369194700616499046589112763107189712423798865844074885404343937653274743913003166296579461477651172252610128319046954370181915704857094707635615692099870854367387108611278074477341773835261215978526126732166199704221447893137536367326661830014434197911778036552158042884925330332914610026274497436296939179759165835637334988589629205818987318548482012941217675178105145473011343730020331968742391233668296423803118991881041723536349399993561609969470674224697889834417149653186732348540118149765087950302707746961249232219766361162611473316215012887776611236702652893593185985113311976879047838295694091489388125737789368808394142933604259072558236029106280484592923686578258672064252114166366678865065501820854814747013958131185481545060440330129443900133641361774370876233442969637752232353736789157536824404903548389587907450318611495105600405868644633341721399829586946016407265817598408018285976282032126977189840182442495982649086346111612955609429886774662672656764222903486748145738820438123083987331475390765108178062765505333338047170755291680453141984913672755578551101357295464247361403378350979670370975996976995654391819365211582978633152314205305527896626148517578238019665300806018759030364977948376332837181195285659159835246912807966652590209624269405051713909022760802053136076571136368781552625268522255094550965307946150662594231252699208448096010669652347986594356155944067464069191545928421413555659997601440081621565360203914315889065316692806557826941801012263600747903814228191503047287002952138650015889513681611285340019103440378215050716706928259853665195570205945874568482169992211707028426358836350936332737770079513439386072592932544749745088942380094974852679258673714017836520602705591133033018661720860834942480723725098464918101997432328249387036456215164204998435344110824259084421634010564389954198219962561061665043598619996905848512073538125379929905172085666041097471236043370312946533702997132337455140698660738918437450694578740085148016335745057619486083780003876360367790053866009758926669718497175826530361126816391782179998857209913344386390536457393312991035571910349575220412795613785236893253638795013737402495938039933957171220189485387408760748819419910189556086749920934559809203130890980479744354631169068813786063628501828366336240505734941233364468717625621513077954816366413306424560734811694772067597491705958520165642640392301228459530431711459037725746036821042501758096555911132218434220669985860621001844324688073638615530578413366095594984576614837564848746795241234930217028714268188919773809455507706844633617198718800512895934681543145849753694822345157264248603674856143879503981235666093965592292971938679759215511657194678053490865326336631065753326205499146190322677586455097055398457830834889529341278424884250096254310588861580223465788686957151609183794589719035663560524117302860573935205331610139662177804247726049956627265623912781164909943546529790126582440713113012835947024241002989960322680680039257879183823020660608254455214181190880349502586162643128941742089188242864642159231928948199949666913724067631528585171810757484306671538511588795915769888074538729068059722381933127201131621316233846634997454077437846696987414792948902803770126764072818813814732868621141300436838729858580820057458886498555187943566909714162980919129526328819348899412147747073017397735349986219032092994673755992924769501868266696415013027442141214343755274972489627659565000576485970091049735873434434542546400301328130182786424261101831235421260272719615629040258549908914810590955171776298931534042796210012531586743465022401339487759552177516313433941826339402121166063181631782484987725364024744927154842493884984573806214859606446888364007904667741631716514156588958828326198217377799006489012925808334989877604546813228931665069930217903434552394113522812646157767621610296507224207795905000782062281353572404077141474163729675910942541232362592226977668649572977182611851559497819503643759505218385283522188127278647552557828177522105304308226383063266232225875485638123011764649662253705528698350508095756842002421492714096710661670765065017038207890150081467757692267158130731200343582371028802673789177539938994365988612940108732291994541693404588937582437492055326967175479873091052372358650617019611545208190772113234138818968280351212335422962866958844913791999782963692687289373608713521537325211578387191683306260611039711119660768043521172343077581468903910094877505731333965799580348798098849083486974288803614800845820617245877653737616764413896151947159336733600953497833226871836913528019245980846555337001698650351550123263750821031111542241190269722779515852708927729625958200353511899279834268828922159291584895519388264314390625331555369527134123636595550697067194822830389896033685565366069326478383206568162966606654382233645804673530304690352454976679024976456346935509434506612044432096212409884333705055476526773227656478266597499213064012149300053420487591610140439330947475787321045355605332538153360529019189403613655778924222805441823253104983358268503200357852845477254380686800855802482952657096157701005531905230984949553098394510167197888992524697142985432763540568493076845882970058554273335078746851577497446502160296947506663404265142179522185682712131338913194498878933694211992225954053047688283990767520024770422459149987650593751650458039393564602912152102191895375452814866688969637804674627800770873856127137214821162186950035156620054495998666876983569640784995860305684573271934822749431286286663464573144325088227481235209396098052101669636657023540601867720344591834668597685737701522844951966442231299938309650400044001512233488174364651455705987350471925545143610785215543895362950657220560606622227266232582850720452298378857143691119938530740934991380976017741529795174497154870720756822699736173899371705990751002198455057397922444145948729282195403057674910876055061941569057012856770402440836788687041393151121033937624333182075127427307936935197456872480477619902969210681468115119471518276784702945861628918823734370270038618326348488625663569108288049131873509658852935261288006047340983727684291004005403842894468705229968706566041215771957310092012649846910763241584655936042531711907541030374100245404014358176434727397052612307094275657618309623123789777911981983946885794054280679428796712922600316939179453945370412564868045112319570773321710269050585372517649648507965135957060372213982990252535427485486742634199758319205068602908871687640883762546222865915264952941365356160459140110847531876310213353158520465202731989751778662153558929567914560962741380417325786864758934424522482175708290688823502090927508382760596972356316852693889501834476131068171524793295128377121421392379973311849535104583501545798675367668905804541586977231521242263290264586151276634053448910548498923174585012135666908396358621825577577896309381890273873955520383057888421437888035132045317778706514839810487029069592533134523667591867813323923145760819520734143457124665848320584487997180320442006768791070705398231299007096281333238732612649163125452165001006107425235021056597692121212856908745205121170494470417984957922609130066689957747107463371311420662651278015883211155374065787543310553074561971122524206127936186661868114486231551267938626883713296864091572169123987915821602070094094774325578389889354175745372971677228370824875454381388110605444434367066113850652993729017285945510615429720489268129573900271853825683159411940634322826699885296488310189967284644233705248566029086432218124508961856472651255678991302858197401953875252439502601666321268630985445440491769328612357659607740329674841241830540430116731431178780956184509150282052330307092114109042851612941571480488300749002766728611335984231540928752782910871217582788977780715328577004801355853405479925739220405835871086038905945973913807610498260142880615689946837160660639624732794659062738422722234750186966504130179502124982226534290821580623782897795513699240650826668294737241137075884695487707907012162351586447578649950958864046692902812380362414733850863469971041447977185625944622010166110230898257071010164364133874645437528059099636548914358504374158861696198610006306353882832067150292260153893512817816943254505628409598389903198525659782176516739579198477105064166729593057686938097498121919800134740568753919661030768513844807258091010391399548219030068266253983087572047592349063943914432286308054019452479339705419875228903775186130880632404124229715671471998752893180246398919710593883265028253758892440621550370147816462960601268420221388991619724145101606374033454371794835413022075633003605309426280564073936667665631521213081368674584871417819257759436018076669880800223977079208329465597652844279952710423745639763889151697552125346006333189666875576941291603386889462172419601550626337141849019313429597428034389749979969846216536229830968125835654341188918640318043042240691411467692628351364527602845232173021383231674636766231220827693818710485607139297268923084232719280163328671258522921516939483413638122988836836034725300686198190253886108198905180365271604060802940782049747514783963347649659617250309199033267332717131761068372413574013449130469827665532069649013275574499741360490093379879559287893421735184589650794343900214035131705470843975658749725801166718178978005645654565014335590411600865402070366386094910666387636756211474527544194623600413284768346568236482478959318564907263172965751374479864172306011722613491738229251769951226035895206585581413723931548457333236508580536405300763960808111747120172449430409784466834412745644074255242978980934369243036454705480282988331218666938719213966088990277196488217763009386968970255932838671366454472675096911619815846872647248094641087651572428833835274722072456185248013112874215631667181823954293505762630592511002482696264724127762544613265513267293831736011350698544428717191592386775663977716076074331680209881374340367327569366974662511402585718518933401137053566747081262497609598342280740800556044557264303131330303257265158107109956944799042901989984779246522562910286112919630788833181089989299368463996191679283449963423948048465720005684869055724882218933367191889227059468289852130780312086196369188898474038194825288763161307618958725193775396170945267874504668141458890308829727587463101348963157844665990178482886900756969114138190769515232428601564453114607789777787664882865038972340360640906064394962105381576844705238881182882185787403058415182799921827607051394320947920404366063640433406644440718495673032042686918230952146201953443746887956031657830438306646624876436004890065388567193745653191828822708965638403736698385435453481405623616415913392271919870641797018871876786192968675782294949676083332031248201168288415730660052822115018400139718361824971351942717606349100740771314399457424168265474248745401257807970252103453424350035904805069694803629283622445201536995911244566190083987958678353294807899246469623002669932598849293656114807007019770805697126912199887114376012040616124765213116369555479236194374827679179289535988219828126351801224045507271830049890281156431067212707168570958290973378800206756575550245816843614973903368552803479001701219149564966348635845338238458437698616638776326884635746242016109056049035832046436543673695861956356176376894188581871437916143656574543226558275881340128737122780756425205012541493897675211187302048795800501005077150701263677557558331882142150686715201584781686728072606982434767514098337929385540396449961946882084706644273824259585814752571200486944569273887364410438343595100784855864594250374529571164394025203643338724385082680390920126885155020393941924025858789453586167619575276756792607935179909781822815403198564624732074722021840669606092189593657632542971346968086599621365087097602393869710612579548240478367795163100537033598712275842746030687011766165825808874194216038962462357986291048552222240764260347734050023777650711242897434400458412127655765960777917739563596545120084245775050557892507417941659027786443992298650680736655924196028079419793962158413693634801514320384534513338763686922953923992931324100726929875337801492984831182032657306316332692941310261159820805859963721969694538471371131524400777778329637726492319824202401147814187475300780339551046296682114206861120121315270514904684492790581168366774155811278896669751592685226209605354318552363456643387687947932330754983629352541111347074081312589424185584166153010041208964605045313626979710155576192264188713927219285871723913481059431940253153182801468167026621876449271848074905530993147845117555825977155645519755009237161268672387480748287919538725599428761498621818845251523269012116189515713181874843658664250717152071425430654083646024187310176839061453654017245209017653102031078308844352217428603992849885533144307155675258372597953130597450553399585173650356415388851349173878670901350702203749010440548284071344565833679624911238059208199818123473751799131602299651034552472991487858849508492023832743741357419578494777238930087660049254320791821046686562360074255403131986363837646836731249494998734247733244548486466832557005718211465912417458699440538451287853748915664848500258449581338315804767455599170857306173466202757536905618342299249785214480572537825202466950150238024488690192793684637386413815185491810647493340099440384649143211093494927740748155372938594283643855832940113261167791149164560637987146862091948910282313378514755430309007642248505048370426351296202419141534350382133489421395422590261179801869512996225828790585494685350063239138646506598453443139508855125543408714382577266995536734831704124242208869996218041335310516798075883308835484163201122340084142054507811587415527030306933602010151975071984096048276273457165825870062126715793210937959832015985042049147702555774379766669981986292368042436113884583148615225699989408905487975771464960458459613264727718462285571822601232366257769855393002441559226936904104492301992079055470031455743340108468917070075178308558009169270132923327587500321463667754189721361616224542917393882674661624330901512340313440843736385247725132403360273070529857990477835554360931405996411746222254521049682965076281089983378457223546541077923103147506692785677549791339835049231748417163324500349321504691139277840340780960797030265779382788330837653414887977201593660504865657291936355081174692700930309284147826562134336733910456344044045242795190875560568299393774775335120191896412602136354248779043224462453213947001093666409232731819385580128026865920552353845178633590302650427153489012363739514232374505066512354836949788867021842027037709303317884323284586400752117187776816508385260797649485204100107997050476260570722088211269787545965700681303742441506407017113650667404822264581202800893302639567495544351130921780123564300525497798722816883598076574102937171503178831459689488480714307434436331729958262915476248782224950129046486453871384327555127981060311141213964668817481417880173361738669943040485951104298809572267165799287194684458198268790653448421942937711673419575770401327058450646950073146226286701988256320934180099735587586839866593663804207267128708431518485233939254761551081179509783996879529142096895678004862242963263386118080239455176443968779078212526487972606100000659385616071436830153198765931861718146617112037191628107265777072404964690355758400340712150546546952671758287377188296069379558043587266815119221217631437995583807477372459893235911397085145303571365899269375185636405893473942964190592841912421163520072372378969133635862043933403517580782968593131742404278176550091754576032962404942627042662261112094335201397318125995381032716466208882686866046835993484707690510546551724833182788107980938202594217820257537637413673441080095078848174686905809266279952496342181531410725266080340117852987925342637428830845466562809218538500199080002816917225879197629012457846014223073778457998114150238079956247937335897824137554240451021177429907424507968492536058045322491034783996023277203603124892527573022359478618351664279982368999356375748246716207918908096621641827244891915892854185812744078842204554683787045131597224580381805681680974467397597123028984271784293214052141363851694201337880082755523666509310184647226055159775757196594107625562139535460481655533673858619955714423328731230587221134777996186337038811485238660010282735216735272508223491868985140981187267395230408665797703311767958565536513532230042721327199397581427857209653734643794509164856778339291910263939599805013523378673134122105667874462371353174007169993839104565826317838662254981560020009467611511968654159363626644926244547506712152923755449811843855654634022347966093103380071678588362823999433292388489602622576120502638776248512959647567329749407297598768754987688142661243513409863676749572864828365802116368564844812199093803662789472819078720035429399852867347461181995825277072575398824609296330817699233213656559915048580977126530090690071149336009160150267814018760628787896507286205041166308091065660068806938332489432072958252732127719446954880829160137116484898656273407194540509457936893762504653101220740467366303154036735265059952754209957078603301493783885868116150727151483090153196893728279200450125985793972878905904147741058269023308728703415810020816167303039756925646388576804283537972884712583747510044615493181592455060753234831970468228238165867933303405989163718263616719440784346660002987577073480298717490272612782115579494363785960009761536616450465592617569243411217662391536169471071130673475381529852922484975119818728299791536350400222121878075905013840324626485010681610726336778222953933328205575223890017945287791299465338825171584200228354520896154517587651656330596190757979496239042057354909270878710235374454380709620447424804803569625283644463775202455408132514816175790977382218270940031814436147122362075821184021170372489652622107177087099944903807581372625647102194174218792151857116025621735042454256915038976863406805782456223066054094756862425396353591705878484317839134202508371122324662293747881465555633043824617597298549375879829084550547805195522271344549632595738104853247456980226748109793517489029788708837158359745186965862467003002202826382535684181253189772118323543295016911346235414301227835765627160344499279568866829621432552872396696663447285986428500306202116443097821715138695903374030971482579292410965549403789865499929416997180520940065834892979889190973010033557114284561371157559113634554610269049597728111211189287613187262681461192360462428987407342567828113339845958919610993005435714329843599102023083930684876525424039419036686385039957379775466791288747966692235121434342205335021202362875271221428174193051003690800957039285363357093918141246618759368470602230441691554623944805851401374037139136972118087163576698436906684523050973468669321684076432262674803876262315800571250617498411105379464104485087801375202667500543244086996580472972800458627616936343178732353888480157513945720508742918419944942997792623123345642398792675373270358412408243040851937904439949215854057664067121319809158277409992226442375295645494521507560857521069472318093451287394313976635497743733910207393033780491360348716118965424663239803714813771600807899623540850283636014293906897562488387537523324319859593423257104816990563518367234852761555968605884880784783714918062118487253792292339610129703656236594773513570032711562717095358490926515810973745293166698161549981883851362839027752142142173758026691563248059138122693244762840303960069776987471361432847306037048046885138296298322629268260296394232461511971196158680134596038665802006674869954104958306768171819764147465324927960093942815496029685064592668982872984832302867912225453807920146406759249798800886569280977071831466320349167493090777552740841464492843400050245741570780572381871991148966325031786039167275827087355054434861978289758098406132176091073226414121754567999458136770156619906810653956157403412325176958491331619686786112704551433564796827963506222288267143763966267504525526571814308997038719286103880434997381592227543423906689281071201329152951453892009501616612383798313774994315150476528224877464734115783658706390695843067229049751015622747739720350605705099007406893393083007755419790216287135793434317515576681436369446793368305882137461468748209840461767583847624156254602485241527811632340174756673450121610478859549235534888936410263172811531898212318853993327484311350629501656882972162913757138097496290247237987860516235587731648401566416642735095494762048956263198025182343466487695741604058137938405742867350724417740844799924652152053632394325760120600275650257470954965627427574361403076421299365403842115249435556790018370119749788553078139120318631152070715867592848446993225454805950482985950513861730931200417391367865522255315833639516204542352325743786203068510824855455356036691344099602261147119887975387418074372572765323625556841653940115842508045578031640525202330984519167442682518565965181192062856711350853668443138548108524902177968218930490490374117341815211682830658463647892959589233092650776091776605415150139662680913447231801211018365702939861064331949873789029509428154046634012305801195443851297613149137006202534562663977059430662670877656420899149680344612972363684773941687055808582798123434170441261389822351054787103199192087929542640180887104396306859975756573847404584293558992824484885618223745472128909694537984805147188629478944735680569555610890808708732671733090365698098197524865195121307838401452022828926313949919328796339840877865784940195283111921229031568818990325374830903703763306054469010998822408881496797607285094810573820182269253414654754338923739854234627947740632900117550552128964081659868007879471192420049498734205254829648528728973054930139374762739896330103422319020287811866705583714241459499553165473773368019590149799475797118145610093806837900869155505270679937749143227175513081378914993954855756816791869832603359280793747435162736271715121924958267111168193366410305022576070798985988291638077194814543519250459502674141370124263586548869028951954585198561532744075844674868207851142200746734782708272509708018407866350118595903191433568413790447550285509797163078704108470522131827488349826730566458129959228382302025274684727318601454781056500148924780351935100792772808527679731217995384339899946179615755875890656950840585482782390710660120065111999632543557565788283393557428224258968891756030015631442619634278297218826686157614610545714005138467744404436393361774004991020351126306847596153207823766264161260714005689941197935241869883206109327272771707789307580457534115431291875384669903874458741483510056328569474234218139660115919504022314533247335571017585232414930678355645048104076896629535664274337357662228146841531559666627277228172411250396946966069443289422977921990544648673489490588053420773352657990516785290708102525006934969918997627866884503346446505301284379874758123536930002378987022364980206085969857668676282353071543663549539072698064105080750522049310814283412350553795138967180103242633688965732995838520339572271202984428729349416134459942338054006220147507203960950567139798159563075777969261110422179015182757396132453798495424164674325688329288315294097100872740782572488412136991495131637836520267155689442712123529261055034621689495936504657751276256482260789540330556437096005874133407321549017078771411812613789244267086652880289407359721747676003593451029349983109899384423672420705225832488521023345020673962852871926531066934044492419966235875554453807451850383129865845543133270253636734178353467932570846098194510653359903155551581816545899003465203782066779223996844915785811006929326647158121291625221865091408265840375921971748134937519224819088651507217931695062081255224467493389981984100917195706313627552196084340823908384112704781722471441195203155110639188674095233287263280397636918487645288056032398311874857098310161781501041240927745755374848427841341840945358742313965935785182762107621775363029686696424020656478363822194409203207357907253762604953444753599261314540873136805687112519998858566606975010792249056576962390321800411381498628372135759160441615959456791930762510404860533838895767824068226353870560789615241928246762539678896486019586190117463122895641551407241926583435000533956045389778966891707008979727611343612692796592049392623326515647858871478177732525665309116973264340234093925413826471430407814182189551823565247420843495651528117571980419692985991227543115217089456284001364319727551225670450809963393895128550079086449731716536285634662703279246610442687272045560470762745775507561595503649337090969231150035082654617737114679830867041436928495865282621719366070008864957699979304545097316379306719584895216488812372955358502063628034027482440406749647719352600950026378592575584990436528595628148601841740837675260010725270000033171088459335355853243325996741935215380877659271942411825971928936421915090316898801983991255031084523035497083720995149293145091458908111172136595676962653482650441169275714066109773158791956079873063900807298768549113698533073537878815255240045050096647801149320770524932551012673605017055746483012902249827239883643296057436447412211221040897902325015714304814144218449389392933338263396622793324332127270133253728926144423440121225375763549446861639913395215835435218142670631254121872270912809898842536882395746549533093259470303638467109114586566238239371198444877135932141171140451161458505675052368246090374015474157386565193726959329533185753927566030810323454472751806411361709044628000838860394876159174222078778956281661165410329033410296705010167304652156767415994892045830579862832254772188270403763635232271469727510226123423830979566377495379309287411297545125247673195978351857146469518902449182063334398307080588987413374298381306803365618250955573144889537485801582332541621010019407566068887626634331622535360820355684752722043600634286531884626984234759494277160872251965026095501381489309771109550170134959467646852214063415003243992015653363191834095737358626218991030938549004110504190356621098063740155667201939125546199987204415680946549413677427570463489572657495999704623896792546501634231053807284731511079344227135683194608351139830186378917010582183898937651756538006778857944575492084234733976365834543924092834475225128023646799543455867011579784301725220041792966033085432898621282572536719027641385065898743623628052870559240116892399474216366796661909315814432138440584890391652820308336061067651870925017895246186680768023237877160510919217282282614487636049644617963723690350846110059015619993642490553436903736500484268810491786330831918994153051350449082172868876911563736831358302779440794980931556375476371070398768969707688049977851447299484665782164852629348689760859371321044736845759029172625688977409583386967934571895415852248150274716047208524931902500598840715744352335839936680873755825014371868384058444617847903822475178503321968030542466350722926932065913672868518584047703899170840798498277495657038894634458493967550477263872919025015828423177371850031140547009768942200811959815356214653028520640790795238274008362587614925448067323498213578733835320356806298461513077778937397779814862836897870907714271505834618524211761336802138660021366050630114544761584053803007959355948648193745943438662475391096524577107276531483976083308403345119910967111971149652530418808517025075145254687968575308577486774997317940403462465098562646924372069631704946865777330960104195258259406507905153501942068969185311239443600087576032842569306882457541251024945576914129763077205553124357435975545203955066704229340000040173512709995478276182142144337061154244011126898654154587919569140575150309966679079503026286638043592776811206883256260492451210894249848658044620706860190923533614138707692118839724383751630249912748065490630650167974901786331718001520243943567126682464419085484778222079714805432308601405694495929143591342497897346177388844651613896734800720855097266799269237353928998431499483553705797107066193224294887463958460252302098959741593746709899239407358822826029689415477196517015450270868141233375313398378164256182814552450679627730922788768677324036961964830273211266396041448285180152750212685737131967872005179397669361409788197567246815008516399800316689023901362821891327875261663688572445235203516750152943949373345762185911850536250953120836108909531263053260030571092357312448725273143839928211279741653900247242268863103045289378964213484995084489728294935004014531304077827580457312339787915282671927960141705043021038334568685601449692952989112417238025367469813063226125990084720046765137192728236039647366826700670744051877500086020156271866197075788949942318052327682397340390440907456052095631914061690060914728922521796814391136014498428666656438184724211624051232719584375158690345386496082818153149233385238587068939881828614176734398114850111235548360192418764285128191171230500449673582523411719479780593866871063006766442347240937364940826295160100719838296871402249355947346783651960473666862554433321739330782947913920035479796901166433041161799611660708146479157577817914155775537542528969783851761830960881836215437677045818440546364775662971685340298696023615155465792329936359459099609770806989465343187388983120164116165701130130794404566514775762532295907572231110623606664464923151678887350569357799161047079148639975998854891450205951625040536908617083121768765703779117651400888323934490307956332779597445752334718279074091379789992929466037814935284514887850946577084975039975141531510633229657375997654337203994337384598256246336269979789545057459165434359241337885703117032948413730827362587579627494007997948383906197110142168762422549069410099757534904804800029353423348505984675833799340986770976136355320690381527189447001996795917473988272857254516655080943825970020724740740281387772427366445365934585242245226344043986629931995056573128489090283108850723134109999605987073959024755407920250742859416233195071369025865402357473499117342745141888944480509549713919077983259940940944010388030448559155482059694450371088007945367483986468357386738532540453969658580255919251172424075494923401434912303309074286345838498926739970149914812104494773738038973656881020674625335428162001020281335445459904762962648030917218511502262244623319181454255220793929708300288060904790979588028364568797530730990386240971560707096948537587477102095819298703444139960294718101889497983361986922215717389162088947148405257613600035463407027182903645915464728866401283466898829993474760976036113087179558054700077868503519886002382539708770192958165792675259635738831857122876113255384819625475541513641082659020711025127845688716253393161634053175984593959098795936180436349342682641663692120595384598104006212904111205111778974154966735105567590973670680986269450948957458085079733642587022311496574190133941673344822146073626354823131967633368185373194561807084171788692483276857571841272878707919182221329887424078609991220424848259802551837203932736233371835372067234888679653329081786788994191536548750163869009619990212288840187398449705092555287588834706162668119088343692920131196221710289985412284244314258734798787980885267952660817401603929461143204840424757298709500706850555039856464254204828850406385395135388140199000436660739786570948519591456757499040472042846683316572089888528260061704110611571310518025747296671895484409751655768553749063933309099887273203295268979421597026230767871192837286058118688569300418458988476837036019049867710104477464138683488793002730261076024670988187582375654442402006513376796723050987572656967378044255580068986821467887555695190375302668521988230217907713417370790038726249435764897996642649548939542790211841666151082371119919284219459612776413620150932017124879254800945782229154017154888219602174245994879275143058600536212993449501414727164380082488703814459772457716265202253250459166856542739606597866611699715853101658343822103394835913277970876296868644222106863464216624175001333478132125093307526721357750916224829753059658754741358194475454303681196037438898946353680153742979443949640428321037634848455306157697552734946785769692910290631392728524838012075627972383165558329465182946881972789006479159964039478153322262558672101063657568656961920322601855273855242199316548476080606090448890105548298518863752105397813439137434834600877004130811160847952689138535538955854899469475216029646566709613010953651153213283392207896708447102349307091449311271409009360437153783333448733029817562107314791001947030663107375758569808037876249857140182909977044112586242383820233083126569428237629708916821704690868048711182972573622507748910981374236287320650341208866396207708641568068166562855045222542445927582612989852026300509000757051747154542027828455770053230486902268380289653382692900597686111343553373504446625252707868299118020060232315451746651128918929294559327839562386839729240817745609393517860339606933460914981934514274665725748283301074229782052426579252434899601141066243471893295630752189409822425444620397566684806110253670381978032725436844388017041295442626459113781813188489752226097829039370767309700383599796525054029119828043566207015602166288367942122529485837941116932522120361498757233502029777858253066178930018960814822910039812362392316729805419851541677573886286619265344907418332364382059195287789015528543132055124917711453185804944226013776058528983920994254233927481880625947175366897405811006388562053399359884746183303454226060156269128425846347076782199805944206221645727129929383698660405811293822119256599970666840702300898402400735445934846703069267463379548655524320146608595440451528821436875297985817621695933453057833698753303040225803943973404772956012504982272989113885929133724845079090141049774898504687297476380586068256873386364071377448841651363693660599144204351708474046899122615515916774780452700753126741841710991799287860053724161123370841995645350758809663193800432481767624931279792397488524063391918811058000267267832475371509546814020028178811959846202411879500774089898083198885542600587877816923921963900875638635879543714273917483966221283744535096698974023529542006592262190813583210017151246644698061226776496157961496046502216527850030940232513061697408013737850050297508751661375258112855198568856634169788835992953362932953463946865347319495720748702526157970446040478298592472660481305048877646544239097997338595602517062439695505091162330917060299407473404238423464934063561326996234373231945730907585938742234252310926358834659651821371706294483343120747077630630956518378684204373733028361317863703905742505516299396326557507319842334008758007234615511965875698778783412052332321680689389651550669690826124227941628654730067443913923292600388578470936626832602443764479243660714218366115503533374526409107545529424836588886937812198190718673253693969288507098878259441683009256271605426739170438081416684762491714859871772168410843177977164170918866523761677001334703844248805697351825108742522241400346631815248024560184571040960040372114568362341282816453489619243704618511461798257386421427373966117240798658712412080500966410307351097821113894114083555540897440392642725232622984200107850736171956929952331871746248325268165369977465644183339815058001012440877542597333358039390424682443655564403178729350249594627853797949418440712492177971189011930309431734959181394481160353597763035740100635098944083082614874623843858871190574016190069890968009942526414365649417904471366916111082906965700375446311140094093759066535384465544208617858072359836628261669252401225993455503098632955649406324534266805395514274569173185443091742986848790599498241979434847574364690987390675400741791951181940545158680960604670433755656815504925322161747621595456751314305498235632077855351383168603372889538074882250615892024107578843070167038737113233711730287097656078674087778684464042928363489583455055007717506333026140456701659144903377724779300569664242484492621617140668148113572966079593648457551578960611659981360181785374941971760097263008740304814864737121790904876068487193340454108263838283410736686480700706238684298396574417668784899893429528978133603458782341625652459669590495291491839856226760311340484556658816002982635043919362295224717238777410691496336351710404481872340892276509467565856580764908732666154761404048023809532525003896382457202502030151263133593358625716288885687096956603129086077149433301648018793790061726481967163317471260193640770230905406233673780571964463610405449188174032627180491208869904082229220507526996048450728992150213852361805272910170501889900428808435619065167184456039078462631233316348877892139472650393620221579077835958087864366937671101256971779894729989652226879556605926143074144790770034755436265916579634365510286089117164054296487034391098278660557691138135966689339860457795835108593460189294552095579397311258777492863380368100122925153592673168622417655625926364277908099967336134610404443005401380890844778433361091728936088000295705491763561636218003557988687526027256787769092869073984978393242100706843698174732568970789935354096701368177902522153328414667822821332750357809782858614779464079044840597865829085300205305526971202502988946507876146965371117353675278219779675458031527396571211552472469205180236936964556520882450113649601344659733219186671167764136713533619067699111375016719104832631546467189209551955824920491017386837254483491730638106822467022978941864456008213040779378931210093142582589326299354533326165981094557404412963584535269128256339127243844799780285042762534699682822559540691448238719793088218224571226803381214315683787946573399171940188227129121453596426565517704119940898454779826301618068549192553995397899828099849673960242112198309990558194961223749898971522351370339375331592641644987963702992748294710305577437491968850738290971560887181849423588608965107779636498723235434537160483329175493064744982885565319587465981590503288962043676002790452805045417610573611163963091192333384794908647812911337746889543656648873262806465749443980028637517903368012467922227210324155923445440112439730020054175703930406617644560274204298144618393823130685989270673816389612341889829964756127972921380744599455601398911436973456702701333754316995705402596421842475821195328107088198891422804294894337748007125115277226071269859206229898169172189803784949129633791359865066263756922844626527160404683518924405358372562393982986078072430500414338403215264927859161893831460525544178460060166837447041710795748764384423675514464143794919093010722384382743255792441325465627232724091194579580490743888360548555914039983754396321532415909689994332074162304382792669666228304218314958749372452219537121179147437825752014854869528825864461186424589668688257580935433270412098452464930388659836430958707407022255152841500419711674384863289645337070379771932793891663931070117909530974440311645911120895650884125110691364210333453998802969545774176981806114638130450393002946822693707415840244581570316207116107159915761955880406286163258326286684500994368011704432997213393221627564036506382939963885785431394774540958568908786487310351908178988151006504964651363445405188021153629291756424825685813068684631832086238421514922596939066947845861330847656271826261575814877468038076555224372476769356008360514570445261200774831592367424533312606317972928473369151889597965981189998497214434698841233157309001028569057282098775861030094647124150736446980380144171064929815683881139052662203313150427237613943978120952966228560225715599898262070889369763218727194480688098948812956432619449149822606996678902240979780681052930282436761084231061663913271297967895710687992253657062563520544655227290146626853770295820580250634289811385760643620838560358815889614810212965827491648813698222146440097353883511029504164196890366148379835156267197440030545846408847672829498750305544569429323342832135644535410423731171519078712783564012137004123058535920725094447864291652425541950949711216675548356101781701859797944699303390078098364977694667240734894366975584183310958294305208225390496975335213080047774779927651998339605289601033677434956726520338376412814453136515065165310694695654620297376070321244373703183640114922219876165843142529551796335473054324474865080781244429549752142076627035777003982163683473201528992550643844800701711086710372509386685668182429862122665664420417899592838842749568990096316895789136101641748079145429229544880413832514378779766765081130872451533534839320212967896821230629882249748801486441535304854469401539968703587234432723504758609643309881947612843537211612306892443628484972471571144769997094417445680920253314607384991210389029093259829756598212865431186842436680688518436961740690249306614018047392347806178500403587474565669855833090165000276838662936342612715723894341339886679163068629895641415777184089633604457431832727990829234288834205329413692446090618163814944589586273321541908616972000374679533673469313043482855143189320357308602130914847880011525124852358640236438511099403558248399452715261741156799623120132310274742667232567058661416772933154045466042990082083541806936680805901867103576621403294690134283033541117599332554183938995873849087225522659128153963006255422465536192769991066021661286506657161457356741336758116903588685488094581919923261839851429675585040360094373506892909194849611175152728477930858887626830306752404840221350675718225659435077482330059820763403755244007514545201609063911394570284216905785447726867964945038788305648117022401351016584472944504079483011725387891761694901546753180178059297272059717550628761204113333529749217598585875005572352416227917925606012753780166166395544676685302249007866383401259067123239030625456676092110551306637322127866856028555672136683390578665390761331776571399020179914171486606987381927434182619757093476010687021704754805517400056074523656402786650679863564177472695790603526865934383788324575759226423321101924504729576346310949064924966817326723698474310692826174072360412689414549458142904579852481810373002427441520985363550377879230183369248543673877800535450287068631937013116664391772317934688207335668533911063658735799276506099796488185826528068657372280362885196119051689122339018773677735494184540006117107707339550573172230055255803517592367118034409116590167543325811451280127322873961958811678007140769070137848530726823376608680379574536480522734762108256530875164828888926323963505516048811767683386397912060883574844525001655742375885354313225502070769592197239646997544706406199972779473118183799533912522375972662870406448971109238894819390526651085306277522985717991459447030765601885947072003554430217776819039257787435590621461059204050070260054748601200563707808940979020753152274176290401858209881405441049467828201396934277965357487996549074894977717216436827921003126415439845965769089972072652226198680338163853358814250161022199637686839296766125793277869434752583839282276487117794587586437446966485493560239900248373658402263883437906168662927077550072202252483354646142704466635683448466640350248986252746283827077006155578542786366545506291436872097208626737135069772881772194137237991132892339919705377052575596840079358393167775368149626171391943093816187465642713428653867741936022001218965094414152297905168192603421932786747861572014863164323967174989231586775687028475403935020788417487711151742367043796530060673380774961718261186116918518941645751487979033035426715204472189385583759406390894012870965109262075497114901403830982789237725949080131224142304558374901800213520886143321298315815611926057623170067884015527186660635991222132743426536645512766834386147582761821013974440281343581540422533156864645973451831975465442294452077744697993117279214138399656095997561258379987194194678808783948114225782004872365508855538837480409215590419602746839159414298657940397453927826109488754099616284045674678049826341822054190215607451805751293002700598746579878410533237981251478435608385637224941370169785977667323321163862374371429698230957708042849474867143079799514868349732998152569264686105605545613484062991048786487310730152211177335697443320785323266655368337950130142239746936411772915398380048475109876016265181569685009105390699547159268701665311072513610703625465322672411098900111479030860028900733174880526448017994368485769932543430619319911643895022982289481761250250020474644013362307059480980536083471929125351471249201180665020473841476464209021380047483921561253248011251853625994765435876890956187266208646180333637214955148135556408672131872401156411486681833174860728667210239934991669922623805388017159657719194865079221221208594612700839421310169027144965411616143745567842210147189171309321709395607435877727152608819721416591587998396877858938520719314221646617868457717035378322103676642285094686084973587715668965286506192270839465543686440147157177125033427654242623253447407244656199875195424875070793314818563875473308544250992253820974950454199954135798119389756697096992287449091647961215907065093548319551951150330895714112359480427296968531192393212570654174062409790318816114115666912371248454797751337902433661045075098358504107601856278369696620286378897566845578944763729704673764616985123620031287591274033149332656447016019351490911992016327899941080571512612048613986061270129750486573488180839849559648461258148156807161931520767934871811561503259533938919398575635376480463909403132872750137636378235586879019421668160030830468137618056449284519068968181852220354497881121824594366317563164918308653694822886037056779047784278598512623665209753677862334637262196383646230470168521772152127494661520261306487646540337646337110750527907262002806527462702782207471149210076836067853759193426408320882971569483820281185855830881847629042366247419468543137497463606290096503366012565111678714474853127945437346235761696759963569992467952576676556578460169598916928344894722842251431230393384239057819676036302738131085384251513255200898013339593447458261298914830673219642663763874882062142316998041605821432976831018778280966291900359938840784399758662644012220208751935755931576323109713930144491770026065075055455540246948816808154732988502171752372036396301978360009390119992945513813548491218854185734714262505098493515260597291354994359735619884411372058550698121114765373988875409059586869826599875189956902681538362145446935309750505560208725149356520948844794711813272397998407756353510578842192921179420651540379383443009940921918473792780972367934832982163236140955306355210264624707719068974495635334741502654503716201865990581648693836556171306782486230042123373427154191539434814941483967340474926067334166966051948638613181327578224646369987941732127986421687284760052494072367194448926398603720407473189118251879987404614895367242691238910086189602994683253579495764904914635186694492143347931220717091573444706924623536144258956813524644629230448977148183006272816288226542141953802822729886457516905752280005356126298552387479017702514287691801609296940827665991922955470143539258891512286620311020815210003572604940111271829157982425911495452642105191536485346091975569856617657421647898776637950863760386468400232627904981337937466164641756288470472404681093346598658489745586732405441432143511119288199356612801240516444331516680644253906591761849974231898984460565877521075975490924718021043084313372651145934851747544115878146521015451462332945129540439443597022410532940263880578757629042480248691459483697215436870768249012772865318993560110198415169381601564717728548252460218014023247686869129885581523675760036896144642091085324573315383151349383996622562254230921965316218499763619366341983996139217672059781707523098641971095563213026850876049354606090555961215188314785120219738957578446059335455286669253785694753174562538285649081681888970654703530035974484041503167257060757510789153545806718577020219832446517132664910543776794982910938934115900521515394302864178545684392722104573815326050337017563143112925024318604469758631470444091126928880661702904558528061779670833736549351190676972361221261495495584350911452668664567401205122167774555294635702003558906589262373567652646178130698571554665911484870883333040897143458687789039335427193578701381502017983699892364945070586702163824014915430458113390506191623001320792628762961157645350276156191529312757070248581965310732448623190365100160329214955169189071373823082022478895031282462044619014911988075986850714688766003136898628039389302266494560448376647776526538243705797455597144641904224164151010909487408943320151423588544804539654016159445374201449564272160819876740685431154210231046285218542952800759032425479598687558280397640149575095910405841086297523025968840988784046970270931244233089088537143993114078245186986954828871405708199195134843878810327889782137041873561904869517414614358026438990112059349607766130651541093892945391889566424536663644845214326946998222043129784914722495643014393022455805814331648985472364414794746033499238574599937929719886052392689510134560326652201953987503320202835031771391342448713822844467049777487072420364038705188186807141513336094801811711120495562676822925819612145430374995047247946835764760011462328362777171950399619437986343976134980927264082618936524066444914371402032084525498746940169354900460528936321063375449759921014758283932857796616931853145509983680322833834137121290248914493462500261957673195333078203352296542900773109462624860016448972423653756198760974338303741077773972720457314375979662435629987356180341800977872479123406084688727452257147224708187025702576213124083053833703256588383898045653228069085723858870013283833413425135857147384870535653565418747861242783272552229311813656376638661932655616302559606882656141763436412858144739523248877967468106460064938795718572826420571583142209324428065411073983811903587203092213761169282840408497409870255173587808091984087167535045518782220050145764818002681157600748177202750933760829906315067050845471607184061438647812800985995900449731582197240125948662872263261376519712637961039502810829775904713840961705808830014601919808903499547302614641790632275628337829907712050111633231307339064273328898571611280986770540418339639826149698821759323830683242489339849669402374692882719640599588339726925487681513981784659798601708675153108272310212113406513163741156923547747801412564745536253493493201397107108898392475516007053455880564085773871103688089032055671849860662812293840932983686338199786535120796862457440475607334035352375819209349921640824994702225518694730560670521229741933476672794503378250277525710888926130354098239681175571193525480515029827938993906956406315797340547364560419335675377843143444287028496852986923240702144683083512802991742770624792138513690725903768216601582376117320380714013494240758305883074251549177048700015779754714963134935874787848015381807700823556695401589996778687821796856084583713002785020512542217866422299488965537900411513186285503973823383529282060223515106228811991035497028476344034734334699091949945469511580718838941440729951320882383767751404761196521116881762105674603106108964787918981056182783083503689667102215284302050049849125601140582286349847626306684238334386147286107716027965225618365974838575696023011902890793253590891823234591980589506441959751405374998490287921579383350747856333934832279508239468804033365695085998001008552121759941739319922918267871688579016465429143430689573488715917833919641700087264720929737427249088471266204818285504812994634842946165614237106645713817876032053638767156409999983452565385746277595830396914452716938924212840662799226070439044208754786764213877613597730429728706121834143750490475955976351608317122889885581854556764553633327930491312306260310990846231646343082803128354549542248890118335583268980842521223698783583911224352881761496398867509746263322197203232111979545535846459075652460541859409382453943401639932910139605382417225525796440793898960531371655696182736336658381103690751393869002703743535164835397413834777986962540939119083395437132955043131018686054298639739783575186739963282488373457529798147985851490036121802062139526289846065282191367577057272376720152816027181325798602052607659519277868967114591215503642838317145419656220766877254809109871250407391727114129689637169370196299915561369462499626549165884550575688600964965217747645059086285953216786495550183149600995639344995678983731595477370359905688737841133380166352325532971832881546242034138018320502773962436850204079742989518399142902217704946552498897451129457056662561479505874473531110039249344439597461276121877912703295406744175836032444918930067447954448956069438301899779990616072147561008772471149323966994370403852457963210365409244736566170568742438018890558585838818849602044169031555327659622577504096304382491783800478229022146375772686316036294992212143594433003722506417751218135978407029977901835622611482061723684850707437527766916001398701609435355883501620930016966888610662925086982234330078816020060363576404950119186789363527984859494088185242002085736997307483550076753189795860310829866908723763783391059240066273891346936564660534374347128403579665622008757954448164811022807206528131445304798879041243927741149860022360236320509511702258979318553085556019674738152162373219234442319078749346230807663257043395409090694409377949462996980271284560255122841498346413719096857598070084428090134053775414667968303353303093702059050321068842144190982565122296416795912632604319942663464351905427888570943541250866789727552440169211105874237128272613487436738933085179876881154442058091065914780743994229417418887381682193137025292051439941104881745395986669806497099215175609010065812750077616535107444863173269020186527220403856927624004796451699905057257936874804049622573209998307880101623939993104102473803999871504745287928678137900125553042303522464089309983893699794673457225175711856006222758628783455458082141790411477778244476812467979590290963555753405006040784128737907164149037371414376382628659428220862021650895725227069054769243240739019343832138593305014612942121206492036500828090349853406299130164776047014396635739689522197502089208619705131175242615426530986815451198471782405193207236558301898286453311992533101063811199999238613261528832247208176782570658115835413807721804592734897034927674436963358756665483440359943041685665063961265796726214632739554665972971359688384728343123757811010229147085383802178996526345571156962450424127123005898387535571137845849785672460531315020458796765237920995305665889987012170089366286228776275203063797640390919978156771955013824956871303466766558633126456163243737946907569486232306860980595271848735272545250464734230070340470012595666671890765481626283825995379742509957075497410147929731511332839720699801460455541332303393887746597855838027004848665456416660431437931846125310605441502081488433154518363801352716067225780561876958425606864627170028887589390714701934953027860984220207358166829848584660726284101733880056564851379311076366093574527358459708254597066313733555958993486935129271959481418920102420496203733386452561338917326748118791390481131784107496238201093946081250120527269184671491882038492704223748582185410616253752401802989165893141264846519641429820135454778166683736084351868319426608282302017244107269892941363002947277511303335310478504571772142475840283767525288222104592874894203547266577356170208118831442133208719780703579474417999882159280285331362418477268705298167284944764997384278895780789819103660211157102874094205718303678170511773390568332670664736054752983496440316089061069367815566675365524629150278232497208957943639032738054240849076905865703984980410611659412649154386730435667934840222270456003191575677875340389686608122796643061116434031805734257170756965424374211358566983694990127013564480774870677068092162431715604410991288973581115691459126430667578890081339937886444002864602503387938434253250114849712038238212684320229762783125211795245291601312311332620135618122769131948327627525685303616748597642632748534698439150300790826718356576626002757774066828390664064558274586488669064857521850394094173762252118720769646359721303907941108933683545467820805054618564052715889972739571298285346771817978783961813162586969043909839051289402222977172205323793905028234240202050129473498042422789372617615273017219656411074749779320686499346262359063786302123422393487875675485874285727298879740087153945124655602138562320936002195249689061408405464148882483842311953735070246653561127721484704598493558411355838233977086276038095687310522469968489802581801249928731542954571637784487052897288948485904565077574201106458713482343139876406831940041467298476980793936556210652399991938373376091125932483385502802369700329262771787284692421573199120161608927424547479069387716122753890674060116938946093950301529250986276861580566642641920549115296419933020524863879164015522636646644622140180307666858978132498495129328730477971233155575109250194154200700684182014067110379932616656176358038464074880436610299119103410326945923683404408185862919170097178226360748114645081456352001602047005957776026591059208317397047961324042426527582692899441672874544621708192088254734343376020181931303654177329955187072185718321441784109949726225013703775722104659753114638430231704900108099522266458072473169377015644320974371746316479240818611465789967652877024681053202596373290676072643807777631424423324554899240584697892458318018199805943847637072312931067833236781772749903878125773115283205166267956103364488275526861754246280410433856448495030254797220277357359745764731201876721944416523300829570046657543138787521430674408370991553411268908342775243066498772030797916575968081402589432178438477228477538551203911877222648369731745581804011443278582721351635469068609222343187993933522758140772447314521562741447925228764554874755637834447912125744097063684652588246157883519700103378569194202611561367709169500509433468161697233346361201026162750979394752349743239175659401097490106186967253770123616267288655755683898947134629355940483104926698101416415292444139891577269081250925746047764228545066391641906483807334147308406119232643830956048109059925246735105609752324433309429399138110260597944500554853663660431051145480652009965036850590083757000335707100721185217302679096473458104883586825247734989870162351305741452505078920867519007806141751369820800519692817250192012771184354701163455271480056408153846826726998213531255732286755437262468054503458088176078095613744759359989236801064510884587713438066696548243331941157223881518039088012326808921276710122136501625842732552812652278062292168558695348422497400266001009743744736789258322661116395564009687416632824469733882582382294719809069272710909966097332490724545954219908649977668508362665805624294371500916430297332610320358369352895051819493598249646784972983063238817992273035669930321785564965300235607364654414883293435080800506169514876497300019124232378248526164025020651069764727311723107313266019425668162693150689751177203628302092434399106873785993140193418161331566643357086637117637605644480343951479252626681386505304370642920046533717871950961380854749343571331440743813441501228094250862092005210929027921869573016137644664957139814849470513624370769864577588145837249370708281378974398925594789181585833892813264079117360156320475850233072528065436427590607693336257066848137695385146872934106521980638177743859580718864482300566405511254057084337017583383714386700588863540793346225002078519498870224001717214531493365625035881097288694822470771430568795428320480783305689570622890652148688130065769878193644429194117008370665151760296126567240717991806482899451354324886748574161761407822872039883664474070400994436294417538714772752636798118757730249746383103035431094147667211743255957056302550126874459761569774631782284410546053543863838266525791987205977724824576770693157348698410806659051019101694931932816594271636881559768216358623023695342744160929033665516916756986759912707616919150931544074033414525653806448242545222209460041873187673099193949659358180450919741523413242650355984859201051096023488827030641749053088981808179587828040164080611243519097025727564639852441965984427421671313176427728221728024295768519971121549896668486439753943784830392113942704313823722195433814316351587977621442026675551883720499189286637106400817046101946181967296523655312966337566651551724358428105261128818734392492756551268648739116606156401676306206074862315253703579202434083904467920658962826783798187755394875731478135099318266369024711192765160190683965208518203619069756663429950493639590901031080027605891968243943833875855280281458440081201371707986560704834488336360260451990457007478755661203769482364333655703557603758838447671377158086768554535991734750211539102326516562320705729750462659710974611911515505809728633742846562671450105682088157938977213940009313231323049531341241587374362958321526381165180143985361505255254255692878785969086700441638128937484278329293507623769106199206881392969735131903711508224503464882529373988479839029312312255141586423450444228614645131835957053486171008849352044382774658459138210370423771396188136543294594373467520011914198499941222337313461943398563447008031662139708772443061633269320079751556035842596283581298496924858541028245926543786365037129578044730317471115541742096719358148037179289120218613209497906647412506282744120637044010900494889545053782854277271105487683448103873135362888032178765032515058824504770175976791389449235228266549309264725498826990804590299583631487792046450247843448908486891306636995612469447120722572758418684002969754807127829596161858513999426550073062996429543557738987979731938693395165240510568408287505431982047853834579513172368752383153127340881868813397531223668243352223561385066736733450197079925165881821799921381973149351405553494494063057647938594436851826962261635893020341280539361870838064054187422206553085460567324165984649195970383893922445993908258257559232571873046224310565829438742205495051863237013578834835982576789587399962821249443057250674691586908395542990420057693799235600594378269357691454694778006935548446214456813159221139274871365580138060387066774316868969686919311925850558983299522855812784120787402846374077046507048574805676928149950237916740088624955171006215165371590197730924847794512120806319547702211977422292993397654593187118887136802037683482379731860950731448162221792373126710518807618196682169904545591741245233414983481785583638207770675536565473470917055651745196954832576594496398515587089019125314438662113678971902146234162822767954117362716608893099545706036272956929990893048214436426945072794804620654285604652514523113052262196489614839259549605315128768871626822312418846503723553111722072181990942720485817104883013148979807357822585218194386680004775841901161992003010757295371116794033222678827562139858086499203254532820718450717994290054752781108734229436822005728351412019126038866600291205996039186049985056646353058721016612428715545250972003333266651183407968066209083753530481534485813770598061313709195460011012957256700695607096513772815316490452296954707560175214786481949833031785975237025360734994433413469108004454568070159670527578036976119895968985982331243906287551025242061959873164201905551157966012289533303537569750588652934531959178808823120437382257825959963617171729249966570610502183816565203710801729604130662571602964508091060733766551513211301423169871422450342993523201268580052909825618233648570311248447283166469077006430466707328515627168295794845675154389144808552416082176420556171252178279167707222957703017542817007812095804432894120962131180836142270868709056151580147263181500791073293196557010664045845848054229906452077580139912460280388504378325533726760339029316785252773039484817688324136621147064758609471100686048338543590625881149365773243919175704965694021815825248331215633801901144601138923890419000200793528613033624184757239079989706936029313197795581000479502799551544918482670092558975413269618650991866892222342764927975611871695112700317434728405928742963033446850217898702432943795396120555239269988065755584786906010595990323059104110922390246180462576238606356034545201981599976005211313965039910061047642627039339496094938003478790909460496752021001353707032747517851981940590116090276540211111764092146695102294936168194195815311216627234291012573507313131670588395701053013447323503342875852764542232327914591287960090026898633134315424944000583386597737042436795361753472253234894007192439151509676021715838027070227155719302627188455165993638711254094560141076630769431922247852570864752698110535823821364446541954524816319280384027881511311949689669216221455370506263959523216547460793578763787894241887436509979659339935009058515863210178318758485136606803534632329657447298658588193683304153334486711978997585630453119523278432844223133136920734840373209189671139924945647620029445283094698195189971884064550712292617646041548749615708928594981545819031343383175741093963512514327631332177647033022560563703772631954589542345544157736566185372122478385758750894342112317566958102273767102778988599412017991655372687167526971766574096564627459785607475586225751186918113293474714716174510660171550895559033548304107255614084659721662905766297090089132053044782953445191080998918745568668830887189676484802248933587385305409182178157781151050740732511335361348750504379274377839487166143554397289463930658060024353438383213726155838586470980731387015052647691558834826079593084242804114196003104767792066482512024769900898873989358460161764676109779276334776561867325569135842553004253150129775551865743965083287931867618070309086481148292182067391789458358975234563191331540591942977616459971780593772215502018599568743491324520080576534281012413006551289656800070570935389097450483600733262758192119897030146044418451142937755725232421501536074713198636992515821120784907653240127934996056978562277488337423466518108861653304871404770260761671777733258696649708484693361274190931362412793543757634421060186907546790176497377592455881974957470303313166348096913998756785464003212486930717028081257170097123138592501265726375315516123561447897519960950747796414514487446836793344717034585323946434587619828831045740751706907912981022392908708412060149922632393661420032015045008957795523739433121131968362737853010272524973155708654572881993072209533900926659471219284261607496612202862589586332328716276725505330262936226293210525246765868807218666458954771627415684742252420705251584774223968028542286172710962715426125505114761592762470313580649089269309528514893803554207843041142824542967209734799228050707305480422701387799276437209770953686430126731624889088790954383704316472553773266513598847278246922431671969208384969777512097420924961186750091375656265311700248742658730198115863828505895407780590214864646127018434536327019230149150666441845862329567103974592218005081238248374897950684868105320055344358476635543434889699747166198484090875452861990649551892082165636263240542839880213095400806912129316386476272305697375691207076496350293227266547299921351508662957210175153185838692457419990923140899327849573901018326622399681350986418730468001340382606494614944202716334515033245793586608223187708858770308920897519443945145848830232182484683307183850230738704088522844803508940810514467963363909801774200021768187797390387228641222359514509369526349364044017653366405351650348974196968513450040746406050104786999216334738659387136311877951627112715866542274378284759930603639972157198214101609228660741550566438271513904569148949641108585320065228120180088782614108077076283071671121017431969718974187452359648987951852209568819222480454125210494326002328614385214430926988552077401581218831651632106710880352658546468259670055346292642735949899532008471773598230423421349283503675374713545960687521794891041681842318028547346566409212894895739959398187602431154277134764925525559277221083541573101623027443584801968157600133448562920784256629778472010651910965919183196650918887900861713920013538790932236648372971204686736148280448665064439053662550748696007240349279849634781275429193017627364687239947512416338567094679821378960354915365932017308064133104561545461806353260429968867958581465881723300026516131419867728498637716259969785004746527475257365430856966566681258926398806427279841218671337150554434108678453250598482868864239427989179949697614251312585532915318826847881558799600859951621889240772586150064785089254669315809147429063739415160253794930914945563931279137899169887004487768014633478471891839546693421077508852876110850353115658461245214251728855137180579340968083596264761723384163018248357955293320046983928373652043116137839383315495789520452576787638346651733659862573779871675881468923831435296047645562275661363990987023141091265450528802767482235922701134289145106977711917033398681094445982362670684179077326038461971921292360534367638153131380352706780670782386269082787180860242518000738901130166814259318247562436603789669218352094080920945764442611251205254479817663067958272267448421294537232887186566400099067694596699183653249549596202142025371752634186049637774128968720750784175057591485421807156822094483999886624106443197672759122848638394110796246010509786731005032976600127381682371431973411054042048809628933482571189192348225142081066084265336468699454450347770215701981606868712042129086011166201369634793970362353797474391616332734817129451397851079400746584990507334967708763294360831063381031072612758852563263853714902146076651171672594599045089947739160718092740133269767905384782365192709778297027933306693140585178891602326020557254386056929893409369898270901499480991220203977098031758965117593480839056849495475751881985444313347723401039005154712165832351996477761203187681867926880949200483830656910679223041294962338787416744800422496995490568265917637248607744763178891929972538285751021197806932241966608079690769691834639569645958607249731203498340621183024718941457156046514958150130404339373692575409026093223107460957128764128433156473285583356453839266460903538310266067245517543388663878758766158090567411042096966077104022444377616890579816487243575228612153404016571197263050743845273995357953646097382297108654508880203192263239206257169432781646040377614488701935203719711564490609953791688027740972940795968736447659044948222549192062329618004266016459999324038734446879416817904178316088435254275687232625790704485300194544182650414304852833413649261671555148221053230725213217938572760693018147917690688615717810633626590050009669541139768907604202811212235322108231067178311671274301111715638099400888911141170517003684855343224745356895977235608284510995624090559522152610166443575532506852862824595774086340294475000696574457549746874691802458934043504190453374725079162229871949774574206109272075076104567227648792721934035711538464309688076817692682926058514161146189453089500847084514400211401553585182000791985809114941217417471449315321454771464759531287989764547666981553842647270402009216787540131139765617725373496960020106751654412248046277921479409941284262947408230357853941966580746375390181023300729895328615921191145864139305047821658183058643545370154000670930883272359683092965220658877560793247217362994180100822428713539669400272728193102635259251892358632021009767687833424135507990134020338080896491135103593774281059468716229420222002739566650669884359359957268295271476417148521218706942681945040235423524263655111677794086082214858885284102575502498809456183084219421285837112485778454621796693864437861545631007693724986818403448151289585592549426394647872256738233302301693568770436385285255095409604248772694048277573185905106327178269878207849192258683894111903340422289395628415454852566963188824781684461121848320121111970504154480597630570898291615187922491091857082930414419158046003649447879611448550695276385709743067139366140014731130874317057945630754934616048836195069274256014636344257107784413996846902784720785515944197168432086133934373487775375274417164551397903269017022447472637643321165576562123751186157448221680908168391984440874384292827190022790796463415844601055923660413381415574123602640173411833083196885473484208911146498395279788821236221750751410920588629528009775422816695477037805492002464768334322474741675111494337985671401185609682242224205530787863728687264225753972289767583551867084874980838765819723944380906156862418837335355137649061910254028275361378049592650805834843651422713109513876187849542112327373825900818047965321058307790262034871831880872342430348375509176245909383578374416219245701793678894257782882136273674906721574596186950981070801310261016889277821958298451626819061503968933740782560922943470162424095107475739959713041784294759301792682254881509400704258439333155289337344770115517754192016317276279732098030982050044066615436355819589444618069804010544119317761622052358046255771090660636478589092252777384318448012724037719122794029649417076359710207764753297999037348756202965064638763216045858877643722448548657496213231941118759280573027758360419990615617934345937545389381153162711680943391996847381215174520588827364607294542847098422710696231914556237440727512946907684677355329950065907043128267505459509732932900959189926988589307977087431325353639733219588168307340643121387148672891237752077592145627241679019103519782404228140539222474704780234627872917389364389075808218589015250547606539422472217721798264868582635127710693031905864183025804812741412902436435191987325800472003434326603395303573603457725070513465679751731495476103921816127613392653739944919492057514100639058703564105975825867541736145995419620922217159094020287153672199947749185575355752141406140167634170071186525033650600551409420348881931820558291790819101040633956588804811792879417426468973451018083511165278020421441871748414098313661069737632349014961328488279881778459629221333133532102867580767405407689939565790833137437615466089102218759254654963754964138251418094930828180070752108493739562583968178368509135164258877077427453926198833489840621937243887895664902201107596752286503235801465517920963122168938827818935346685119465830490437574982320869158527438097847525259977395058353135617461894830797115696388488830669976619245742794870092884292575054811835083653494567682958477851344695295594504908820409598032110906383753860248062891387323030888489914500094258612285992823894888967553355754615140337348921677034157711752414491241475715414601187924022695477759004246753144047459180510373655704002234347069877255732036315720738053023735422421539148882549617726037120358820142279361436682113640151338288294665942010305859983587899405106180204090699487486976326980750676384276821607466562409297980173675648490613086151452517524220548091421721855175024371815105707500971290014659980916825039857228803219001192846168233338839628978316629485606015707933184176856040573655792023295896197145627416556960375509050171058577897332889137441008330725226013105445654964858208848965702614468918033401158360976488349400639167811013675101891151223972256101995622936393728649836667432247085284961676643407504004344592518294156541250055438569917845215330711896543062662182970279099759655728725677817535417798246390451721598546217062199922852017911706117111519467546781698784518639693487560417551192032474560181919661103609168689864978487366827047691988887271744052721625896812102033966469359339845759507039080955812862104596385919879109686419633998993786883788351185916338344250294289326730379373998301604376373879238547305949327994864676783873403920883976607463419427919107837073629070449192301831071850013294415281424699781264632162480411530456738168370259313994313231877001303333554060592546892502429930965983478663326330312786869147288143423612623701364712335822916734156675274273878923760871239904152746830847724954195648413465001495027943310483424132052867408212768905420727088361277713232633664278151052317444580427334188107756545674476815389024077077070444133144904577618346744166482150079028389696460490816651202638642220503759745237971533990245736206554622963500402374293319397011742082920133082714200158451002939210087337884930921679164951805769738899102464744860836519587274249504993500363325525240834436619110574708393885238691528411756070535932622000919363589904390031787815103050171439306795945935488988541985063744506120236741031262886594784477325567213463474713224741779941206225896447649277953284116158249000498949516934613761468154078257910081763523811408286254860109212152626749117721710828665380501423758228021139202173373203306556458883989643243054129628203601048365633759907110988513341270078661840014268706156572784404519296240156582189141149198363295994637435535776565814702855989439327498010766315528029973094226170296154696975248729553105709917776060700427729631870546065223599550839776640118483143208047165618102686703266439376063313867291891794207488143585810142011513385550469305341768779560654847591437962474095905392379010531171439363386542357810931018792450737342854239355231306915207142791264129316276773601490159114617027528949958534705382834632751257689888849096075072300797459097465749910708962069813164814484635252642505701264019064823195548389416230821362520831533245162806989888119111721017595248707120427209678216676917868692062109321186814295049802102638550522486521255079898515494916550620157956030920308675870715519187266008728907513348931524649150293097885173848257380549441010511792573388737497642914400008081289899908066300608926141846103158592821023899720960322383649976774510948295799738515729326892020031096326575901490840352916583739390640624200977399815362733478871408369404318249951650942489318166903444398811964577257815490675763398926049769469648104804053632689078393065452806432857043113392615226260908539740632649630600569942252573922474287754585683052408937263635479710241978986111555627518255863510857300548620301922464322302365801385571576804604831437017215701540456242039268432584103520143476576051579231704816397248570291661937212128523240094650531639009849498352049198261142750638063276527030594320306785299448085998516778115318442475411343106057226793437818571674334281472197309043374581573816812347678827547842253043552939854425439577652985119509406987168582160675407584264471646334441231071473865762308370568196090074065249395469398926801916218246074005937517239156378134132092090905465271086601514644702012362761070322328141501140240595294439753977726395041698271085385163292956581737876800539300774980104424758900961934974774381907936521247877973905317644915364089321449676652443182830194084635913754503400365573533826013121136541693408383398128115144313520024403370237966375611149410113968407710461907603610436570538762117445051601256875417250618833855460288787745735552380687956046443410488721461584002295150571416560717075812599433848866370216329454386585607873498720943722897789647348293949648826939471054484810766164615526881931424249388970836882496598769585374965626412093160810541924612129365343730664478144136561403992364162239141567346099152141061991372063187364741404949632809222098277240154881112778636486550971987371568741990854361517145992645622603311971673290060775574660094428616761227007004691621095049881021845407668264913588177798953741458943651553983619705681849099032918940680489636810602392107879706601485906515103172490624348589435450913211484135295177107945419911867270031787796137404290927285961684775936350709394959365535249404664126064551249243544724917623860430113698178645192778051835799837993977066267417227582122053798555102599414152919128962586042830090915499797515785794356229153907667632039402777747130795465520365094386858061675903573498502721239278836899832067441866892222757529394350619844607540113214995997256425731503249965361186655431393608398120870528663878769913031002177501858008276276789495442379871203796647208759750027643199795817322569987437225609686591400979676220372097255553340110757341333771863804250246230143461105605660637912080575452497066060770236575408497922107708164101049025465978228470363324289975948883635920809005091440384844509649931071798865905367830267162528395713684441331460020900871887579609978997938033826091778513769533575699356826879493715193975996618278865141782613604702509193004104350871527415337032657609418126793970476348728808197775557786244472594555435154908134679667756784533612797821958111673051596717659747995555804103525364943489773894769869279683001890590545547576851292917811612223926256765273449860830973794560188413190388443057952158429791523800035380247393108540992659903170157442937419535017156518658005916579669345606246399670743021289631721259347836946367216896626810474392107476574894022931632216005641200183944330102150695801296466147538097960063994078212541303118209391361577762529036712776329476737946297844754638337538098594209130690706195817049185088959674309911928167700458298884223495413242921722656241374347062284728652812049485828407950429226747931057775793714989162081276995327332588550508936402738570187608166823265234022046060952905271395053260639011182255533018295992929462297133135869044458044032991616783004246799795637974964493402994128725657386346362999056372103151693492128893701521400756554816467147276678998566604388708200382509901587407353727503539571810360037757742109729535246499710200082059609329369615687296640793760871455563680568557145503296500513673452867234245527425668774240751697611917202205035768449177562616535351150776055744505887306290756781973534797597168365050000988343679230988480930096753195942136328312127801130864176773026583552693285472557561255192513353067374258306735648128929497309079290202497725698668250034566714354352169299655028835359928857613738341510801486172499058170811483160252489958273491904776223222661880728482002880739610202007933558749927812568547568426242493887864836234776937827990384478173802888003820845560852291621604375149148897813592923492263961430676210790399337329611798051550539437468863845224691557580586987689343953144753456278987248903455100316740541886997906391605073661621180710656802142408138985476451628492184580870982684542882918947638157195848813406570034785105844928679747876860886826849516728909953098484222601303365122482372935272131208655734755162854445587535406504781924769235082442820336127589002161054940975114125975903740633487461410928477215530850165390098911845725812297000334760122824727790343405498357347144849732338764188332740508480770731365254960643073784138491613098197926444513909609080251357299123019351322060497418520242415459608886672422997959118837372801736981658220403335436563639074095999361393787000392704676848035169513542260653471694875250605250032440307987052370900413650030401807277108343160806228359867003226020113974879590547285069309562725000066747024673988503079388841995574083978456162468793391106859898952214957058103019688393224675746009015496947981317291620700044626723335878265094399946349666005913920572193613684606876787878199795866033771867520372462366479982352476642110643856980120369193748673925361291225424311573254244965491203430630204005404871058236505374339326700856197103019828625281076836818813399880537025616302627216034996647176561657510325122169381711715056728051449319778938750466351166433294334901341252517303017056525091873180695089974780201908877763580157304162139978791730930921397597271977380405786798851759168331153070398119961416240278197441219420066976007434562861394075822912735296386383325796571541003653866681326900593345151183734463478762770530279268729399479963951405531787535477047917994333625861852754806972519794291558992210291537050341845148702155476971111014342990934432485418146831447017544624110436999240386775954434663705757357945329666847228073537567387027817083413104408021717823103136568796557181625131370525868130067491837519332908878425284748776278317390507650794232572064495836276825245403812226285546292661810603737732536127399462251877979789867370504321930254133864718302834244116184591642464958456768103447949302450074611349565149382714296822936639071712052782997770965134951406210657207018522973749964917403169159757443352291303222036389387731635811941304776639443818610049896455766860010293352262679524669508897774855632928774515370604280657340170549791629782390546405188993166771773323030853257672688422883688846599774650890793605633767899759324303855768739264022391334670260973339172122077058290066252686300054926738506445087321027669381666061242525980939162406021365801467742024442988050959381701683801299046842625073228447467726868351184712442668216396731068783265864297319801008307418975187799350666311469888904381222620872631113412849881746011764125117024285246572304998832451204905497726364359246535984271698582347993438822877725083409051962450110045842101381262071646036115456505399047631201629648203495876527803554573605654686790579595293297666530525009350176662000777088132862781243411053873029250265563139740761915506333376835359453097263644824055495325786841715850546384215789416784986491111671006778838245966250591125283042004891226414052252467775581739539946619490790595153409824716200635422010851383475943471014164990907659299379317251707739902595674796667613064932397206818561430454678306278677627582775515534967179859912435234795975360560056068100187922068181011974930135907006516217129412158029099062120568330766758828386617769106093591779369642197249911086731551535017142855867512141495418207147119545449952355641272369067561956682754671726945950861499844212347902726588602902668340953061176711929837909475209979817426324281991747997855669582947642976225023482736909692373249053724738800661361470271544046566431271524627119834885089474354934912667569098474288779197887742053830901494792869738616415068259414802629051723771661218622945350540112043195358378678938289853838067900700196664531221850155273409821660570205108435831307570723863608938247467314058352760532659515484895266968880906597501410234000845548363604113742773384573437769451453921119337017823961921763378694555117700326443684859325153562962970973476720951957759506745350130096390263716227829382422385031967411905807194503723108643209207625259495479031843559402811099159340914337268518257166700561949106081345472010155010053714183098766925709773504368420116933586975167250587851857870906436571254814244490908147114129427620966878477096147601501063597208054994682953031572671025654944208022581535597632015608097231549116427401238955036239560244890455754593211559337650307222799496988019104548833964359438504620363494142149851473681506440101160857179214023453268139154019781479772857108401716783468306101212506982404405326899859461553569998044443081814540692081957603644590762392511733844756918701099943904344112578999433613388130978491737743640964544884736765110503099037786484130845720157781398676637216830429942236249687559332069882180467907597647254310882214014267017856758079445461130314703451790936945904924260313659694703214018669382652027256157514596877521307526147031449098361823754902205218063188817654692056701835510189526417705325551325732729696044644330290498945727550290268333023046044896124885145569967186455722194452507755723706396007036049969629284678163516083133649426970153909341215835839213206234444622482809626309066797623821427886838806510363673403895883744931897387285816580134965193626240394803820989604086862331126059153621614867439276813622536458765485071430470606114857733383379043670430921302343268406776212435823282057419283589573230996400694994787526641498368327897755881686854607092457130561694324652120591684920725444007280619644030545982413759303714496551236080513767098406736969696615185215658729186613315039387757077629165738332512265086741423791152397107956575267923555712073206068464306690423797877425978092681573174811944684975576036597753197974704172182851273472262911534725889647504593932338231569575532891243610470912798388071249380956220500059859947642094624225533926451500231916358691117572316637751854735262987367868052283282059982991591655110125101367611496272872058581323928935979845887938136331922625157808489449553058853117017175960702633532538611520933956642995327227082929716561685769881738017338941576271505328146546215628769895750630564033075607316967990341045368665395804664146956878079322751656668995697282786432335384997442003181638157781786550486263061993828882857009696569431005350942135838729363789544871303994552627552630071668731722248429974669731277370122700093039521647828903089250397862791730849531633277053179295756381670625808273938258603054347030676422256516077631941768263407218869232079301174671085017340189067927586668063946409518691609481780718547113931163315683190390597625459315272200881223016333634493191367545122668238183421845383931582894117998926050606035946916456438245874545889767844371440682265230493366150711681953092860439630175828838523970372341491021714749365767185519767655034904784266744627471382303453679768775362983255328439055722729732035014060082516195415420084052382001394837550918085566280272160188195083926734936524736817243402630656707884191022770479624029405150242991471182847632758093071142561272932098372789961099625654139592877417553432145924985169424781820853377184408758040505235613776794926123354676906154001028877690571806824623339902178660117171252383797287518787050889150758879380467350523528543095522740849238763056322980917694650002602119114699887951440441346183756774765198736583241840140152908269357903332796644301488343436432252723619838501227245872054579237453208235557671860732900940428389967569744274609405860415465020363343011027027590721557644231258596991663823087020826364271736239771316050867490645457393186401933751481902048319880268778606751396228998659835406209372711878529977127572163027242304326286291734113764109798876517054809821603286571877725002610469725252346747574972184109060348996048865748235312031642358517608507233498294935342585246407433498642926507066781517519581567124678155695154247527830616031306065495685278365255986779455148850014588527278847753893266775445944248341629132232338062972309628767327058017569003795557841056452236505371205399652310197947834634288681475036538209751411765997510572626811645889051062491417880478569620954276584633504239425506063964776061577180005961005829783119201656724091988781448610017495241578020066678358777727174199197629418689148620504509379339653112566515430061790310439061983734476393861300232012052758118360868423126039003359891535160851839254347459993254022473260489447561195471071101269686671696542618404383267817500205636044683488516865163877790078472369281058495517193404470285437126842828817355868261220135595016135425382316270216666822430957915031052381309673380456662615702371529203030944388273675480105095988662165701693577553616340269813631629224794648611979444960421335521956154631632859361572664185001119627781072831806865404245188457027929710802064900468724031041229036216815178727861423273215217799057036182371528156162560739333055307165830892526701283594013619817095583136015253672459491630309149494864001098623146558396297475368161119728174757896091693128535750679926704304470180582399597073133953629451524921638737849163839671760815462297143272975069769511674548478384425395154259119507365289942990029500844255884956656125085163646914905658639015997883487275625917753970830167183780703478615902473022789839322978133379515620808243916863089113913737506939967103639759355730470377287310191019080529044224674474595773920320767885694379022758545034877862833246416455009238516664420743305130725594157329816827131218390591173890229782903160344875672474530145677856903160226232239764419961980720396757809025052510120489121515808847612918466507167539063164149761047815801874840915111256798483898032027287738015711389296873311495770369471573791372002210537814891916552644458909778491104198345586066422577825775519093740472127626175301139149163580092615111697850356134129269074520318736574982329092618416382841739230030876599860761169712359373597631651844087867120464530775700298421883693247185751468997639673119610071098980242790217599605526650323171010420069662740288465269464858368165869551177731981829685056915356840000195975539285819274817427817575933718360706898484044025025295161896439368699214610511890550092203473059090602049155082563760929121894161269831703227764720232194244425117676496712627583529316210573328674826245004904760901354607455320310085006800370273597012596827905643538101283130283306902602491210091699888927885774596048540354510461497549458383892485141739157628363700971174170845570353630115181439808711597199681528346737652593706341944963402345435462123492525495457327323588758501428526580711387958670926596490336192405343389737690844521458971550396838330259471854541975842616318140967951134771814055767161955354402770460595939530848025397977744309498713645588724134472097848655987773104404204324300455533517420224869106603599803475032950106951802379793545186529865378131399999297358624740826884283672476482790734431175302677389124764612318426560618084339232562448060190087092097053169038312918545217042651029939881223311137546537148847906254769094923345094009548715469209762428739398421328067726505588548829098835154432050005665628076328455350568375681454611542009765207021100678094034726048859401967377483097388118721255951406089706520774290880200120118626168750776810613142305104973418221470455179371773805784490565329030846511798151391232473267323077838874375413281345136103605984107085321485340919414616554466711820535445300233708836337319074961538558678333033015821994071554582376476026594604433891665323326797553603550046481122601032284908525344327664533228276387210346305219896578144425755737856427309512367167095612002842310225521955648143703151702669334591164443507763400114295305872869948547917791288918278604438440898242441281366246267128261398834599183355455045230885017806850048262316108849937423364628468129153592678616899470559871018808971566123434342188179637252077249832214889979438850840264832557758787378784670885011189101635827132047402244140357903871796519722231307823010224811129554613803124674353668092105633524412879021818756041526161396771519822652409938583758080127353181409931425230633849028443814614750140182736036792103291743567744535780197981434182321580597491352945847947216078574594369131422712198740353727261380973430706623476681757675975801276577377907120669898628855677281626707306722292799467534489938465345088884085590032936641490045889935634554818519012749833237579118544943857396693754969647572768956889305292928685543554613717098149347690701685773642938681931979818604097176988682158797468599007100036958655690757942619538946886330611457031806996260423485542402448136604563700693310732747012907181267422146093180951248181148008118010416820849348997319495015176166973693097959988811697304643005335519446193084525066587210014423032579747348715065642141460202126373164934683618003580726131236298773972828716936231958862790387538441493741164945332999308139195069646815781486716415335892633683788821998537927972811837000786525625858494275486242723038933781270808769440110086274725191502677202693284795307970166514587202674331458263455427563085524960124072936580327976595821024170135691436516438955719339701910938969379523834520863958166573275320597887973781495438672641252953817970241904712074427718103087995861858469318423090150949300554836688397055642732623886372640483012085702283925274229172060138566869322718098227343189985417895942453547935612006823122879268181706344192154255027247637802604196540850774585384851825133465679014143687608182736305305153537739389693920836178062234167391186863091283455815308543698104858825957938305695665090551975499706194897816595035599579562982481791372543027844933734627204269151571609440186116409618705677294180535250483922496678948239099764247480876576470467258405607907708124733328373311016805525682849713512949897593114047321648470810720514929678624316545754930305193830540570520983914079894321366294228276807165092117401098037654344452114041053309866107350594119275578416655361588826551244093178243211278961549284457878169960509038284138378570999888168857475043378796727911301537111239348540704189013329956309202840232477315429827433785715365412468474534987425446385067835234763144715272889472882643270968805460081759979679322441906625899405585329447429228268869996052760891406349132356894022496948279327641031281477993077812604731777693985883728958433288078570929454328351407755043984791039910497713388644198442305404456475235477278978792496778056659510639336618518368720053910310373238893974591161359530482838653818187761423078563772393285424412893314496625936956237121496785304514646786677869313009371399549414163452842636605340059090805245612289755200359996609833260643652298554199481222135651653623063174213571963848793991686298977309569174845104401521823204843930807656841594029533904123114373624718442967555728220162329675567649682240592360245476044174480283377460871539598150382066987724817083178073242044907062380792007366598958053958090195609042679083580074209714277020497715026725963084990580516329302991438970568460590808538969986945924667355259611200740486995964336582856160418148133857353249417381119436826468965439006943247815503153353163112567490618478401992407540118597477952327715447211086107080010370083753851695472249713055183836825101433619440782937527484874561613975552372088953069416752127978866442914319796193691465728860613515396363936205319076085614121887399574383942043191974473324477139700704537582947013882204759294551856591271260354019320751553202309297008426865348813565655093234490636652139039976611958105026944531449810485622556933275248176198987196337385429084676071675002492083381457854785841915850903271157877384341355750793620042538429599987723743671680449468034653246037300991379311480226390488516501338031784720005005893774989466397807485003210906179310914353349382497040582270482590424232456110020313952100661908129849469664836941205375917358936125896336990651407422395706423930531697334193299934208283536658039531277806013660323272236158464801395230910899052904294300366151227267554446884641274474373299421953840329861354323611424991301808650887692685502978540531325399768841501621629617286972505411806217062078517781524115774314071240891258448690877866551553638141417541292808679117594275070114198467622648418786586531622566918291528023027452292520086687835219914111273136920632549614183213623166863682376087537284565597907922390816998625307805981184170347389048361711145602278044799116176460350801822188946991452015553253890451977627701271930818041260352575153882711488406411807995081174783805664961165491629529375197721003725808006418275001513066017533089444795492593061432159073703253482903785909020290275851485722601775231845129005961716138735876377718368913812097191862160227077710810492468747711709875908552419968031520627359578813608571578906351968167781028339419997413633167823660374262884368709779388691824795221066811255623207569128607809368611587619567605246230331659597352874000704617720103308411287240720207595393701957626919421127793822969545971692202085953174045837588729441553787133128643784895258204136483988216220910761549426063725228738158176380163429125883684522553739412355506782395263020631414016873071634928706870189315381540333707184971029004750494765858944209279238458135531564265013277250669505762972769714163216939979188342933252880283716306051326120484942775646396303454023924916637053971664009556568397253392037613243260562174285287592879195378095235287561618450472221951130145844960731482832438068710498693139096900698922940744882541563449914247788097859202437998966640047601135233231425912391069151002564651123168084976659916906104958014475329719243604809957842535103473974015621908372922553300118363644067789214469039545685491485341196463498112545287264116518561995992242421076406999945331785514989252993765440425713241355861463590731230937281306325133413166899815139522895901491174765809772145129596735483563686474281118867773108290963026241653275130384924227541641329357834263207876558555341992168969898527988358501970115483843278072147225020901375897510580958932439563247482758596161546450337396619312455244512649525516906037601280370886244488787987703059661572570291695621133333992146767019017570427680635350125825210983984018632368251502475382479713736216094829447348998795457221730722861061742635478393426281413307060227879299214742778202039539452632847935484027026523681526685022552133303314906191753113559034234552183124518604485671430948503782876883984550616281233776548302535416184045574695299531466150927037306265393353345033195180660178544843653090066099653086093621862214423518767125722974739719772444002471519091432120767316102728831211331724281573116850876044213288279813429812966607670913893933000520402104846609464675843452309021542258031847664979973172689921927216753051414263836164139690296519595228902397069934359379943254871004442083836978941366455518218100614940780393972829797513332959704171858616642871184824195453921997633309718125055522076217398985613880366417546700333496733678233946760180675334926010929603657351552584261706572804315383401403599049567448794503504522946075390119843084692026143923791956799181313354645291905832042338431764938996294570379276229093608310810624983546040217199431458682363214908644492374382183931782785344231690340951141734250946670286531556241758416072535245153458934980213692711732742501942260033591333058196419827847948762385064841211744026299950846076668189793328431040601906351194262823462527268215442076735915185476334825449426743074175062511529912699433428583216133634629121037649509411773539979971270692502180431172950816260036871960845811156596982681648957827612839098807228701296234466383726151766052776592357755616960463314766294231294487501904816658277527694118212154767445457050706610427888899914501157776585580859657050260211861718358870481857223406175635754741089941098760874000867458291524203575888047143213888901345964949309348976790568864607128912943457460246839879812707775434090542657533337583938137100423673419246125910140063344949727030754568332081524867339290185760625726160692004346971730065571858976461812239884247931226321198332131997806981261702348155220902931933532631255656061690409280154398672148062930524898485310738320954195616848046515364437854917277960490683121588411073140401860302429234101523347027316235340721901675958056973917374656613501095213109504477795975636843387999611442628383050143342423109859494217025245660519091528503511276544089100301680646557380804891261312516153113937680858451691577642073630684904168345324966683933572670735318493788782380785339756382417743043996703423669149695797083397095731055855648372413648852779664735333684151964011912217495712176438103721682844863424093025327703722341110331371131024520020869975759580686272267533567001860349603892306182619448573933814509382615211190628680943051268950288023836406658282212930885264304851376592819970164736646867282106612926374831445361243151630739242494149549649204268979466876589766582965333351042135776412003133718987881635778819566116404125356871313847586789680713491172413188510726054798789870276583759425915006097376795467578762346027902724600521381912147586350593148855027821749017681044571427513319309319008641198543791459049393102141537764148431958577876748195715209997782615116089597650582191324264951977289070020830488957652862732743693422607187432028870523709104426567635528542423693771128454798128190924956218608076704509911782231880924574389344606334356703904356233704464832782586908991743175478913483668830285541901082297489740211598206493909456685769269544979534538587527980762596815868671490828565657839739030111013093486158431168276502181781017943407865980831224546565078092082478272272573279479168957625750794533142318698964541251222323811237313204144746948453826113838376894825848514377394853823158224703580667454848637470352476081061479219911935265681617951135713412225288867937627025275134543684821262956273107864238422817414401334235534904850858983024048996858823889029140155890565482791009088778329025621268956049497752995339277285926973546404167840745694300289477057641140188973231394791967874483607117701521645295169878892808567206220060395121520301378816213218491346423080622029450863917413483533415750353500586656374160979090399990360775517054628141161946391269253326323377997614303960014126842572716311912029478505238445720149036447469562309152884563324177220942549449263347312467747652088966451552182815069036351857918260327077669771978781438921027534842457446434342095260332026026573113024416736466928310976087631073932282381606152515532683733369156573546884103882529418245220376165401138270248602034031249354444398016378842509597111017613128838805837131746766196960722604595601413997002056352041261743734450800477412694055041546110153476002739545839367496571977470535396621906246555263936480927593066740099734842649321204710046744309989579623061421781706473909780536359433635611714546702361198733839638721384497009486912887176224772229415262547236486380488578369852738682631157779620249229765411343559296910388771723271846661080859788659364312021178757714296048165189887150024265545281932519419059778594008857681821045852713437559829942167544983563126717561562552835329185113205198640357466436496624330911923736759265357069774976556781673022918308408170786178479016327067076116143642048983179027338820314359029261918115842744859020155027018098642126413918093181905344313694659345017306851444950922915039385765993446849841070783051830026223228215054397648347901221289741726637177852932734467458945172582761260392891503198553029370459215216293074297959476926296987197921695324384843189703796785140906853380430892709261261224718073131891458157379517758234680474870794063245886499570262947008090912478757320610818387750554736047993153891920729225410724726065123393108364028336846647038803487755321189513766559558761195035219125111108703704325272243323700121896953542894224188962705852890847814642423563589943910335089560768763757956631567671937498514535932652199173588498566410740999594718014330106258263040959579684254013335700420156655522793156644652294594122906737758750302442382346982626688448118269571193773921310305139029115713453527881943215908697377819627647972771289565221436641992339367666941317810071608462027358642264549715131633831994874349057771611362725902418126319825161936227941109040744886985769367821759575056684098574223047850194533430349515539630037270702110967997225695010504961908713919615532544569432878229271440035769200351594660692683362340714561830112392968512097930875265121497186890376843698239868789638992559829751922248929920338855331070128711944628596901157975631774181184987431850320301984191590856952595238711019099152009357168542617323622378844276125383446912153360121654520761385534109935757307451631810709281742689772675645624696269423045847994354806263796147592171740566081193817807637092842122944795747932791525648202248325040311871061849684789838329507471359445868897139017487888925578889283714170747469223836913301056614232749300799666809330449130890260271266255381436921526154758327347903768113078168253613134256943888494824122048202214450467038585545169552147079809008854728674656792528190097081179669072323513627432650385159038358991931797102607201485913303828153550216142537219830236130147065014212848905905097510632074690381812801727647901901477353578660513913187119144376643578122217303353961588342395736621903332609983356189518486116743216364754407735243379621658006736569664798915397224016867028085236843184676851246289355943929761699180468881712604386974031008811490423446954923237148559576019973745882334654801905943028928151243716116503309225360532078789234330557815480926867462592714820721432097955413617390457121354592190650027892502428146347294783292167254644817635558741578899668352490979118497432671209329063216467960654447504646947352982589249218631477352180508784458025144506333946454228087359016767115119423497166447093592379576858615520811615726756275075712296827159822951497527706655026495592320173169475893984883213490712852009598301666285200328030290108222745654970731754576339029085390521842347241500283895551647561684548154693199706778144943780197213514748074656213327844023827852310432949988133085733616419743838518483563907963493759163984095602648767769450411851494887213761784250425404979245836344265043708307636823714221878489159964748205551510230472151734805449758431788693053544112840911910906920820841421546906019074084377532354500358102165134113162163509015202655804739930588165019715935098616917528186318121929127416104989336598009567790364446702880294521877868125204362289975621269011402843903269412133528420971182552672934403174789263998739349268567592000945993163749683539387446993851691436249224334506795861201801165383604602366339317733905881425247880847154789588234020645379014216612654996461509444225290871564102428539220260941452006011468416154403514963456387910211637600621992208905714810278104137003764861919557214706330292999488046961680077066242164016910186511687209315396348792460089648601652836194574282726785074198275924554706181732215771151539513786202559591372221888920584290193377720157440968687524264548981704169001747185900022760508047689177453078659367887588341587992659776241450812535979067870578179932182437133687171746478964627477795488179003822774041826266922550395548812413116311273726163177895590705184577324357689025652631821994226812188411987476659196515193199369395796081590005304507617169708611704079141416974100497434451706167854180252781145282552612049857984782814063874622118528155167974148635022354948446829654244502528354540250900579358978069755584973830417789910839604386190144539532400773787882525626222950235529904376146571209766765125557272881672839641927088188060602834034202085343623845556882982016879811363441520178474661369817178274857316205117907895799423547071621122804079299927325160700429815081434009696246960223042587069211757165608892279687194631411842653329338322477029346639468492154090232465594987111981713397141065172627355716105624293373063699869330829595174231875778899146084021271123279824766191425358107547230948182938039907375870907156643420165870901521758258575086823121514623951925896052157678710069095664952782155424884541591645796716795029493149865738505695289548357168487450164243154428971821040356971344571581990116715567358219492054699342334380759553035704111073542920150815491496472524331573386791413775730782519345446924685790012361194944161701956825542425425007209765004358618432307412221301435353880293965454934138029656126812757876989457748244143162899154434218931191520300308987140859982062659331729812236898321048254187501806501891283526137779250421814129292473148386020088319842572567968977971549086157242038927657411137232549002301669421494621590296410139348419150910262916484664138690168772957742419190718009568503458670571648797578073112087076098749853082154656939008093896876311994302990392656111989598289723163154895263152584290680270449519488815153391940414045170024370907637118099367838283352011284359112719289418945987728290955949337996552057929974394934882753827510035339021401051081692886682082760852838093940727392665424982846118636099010357956641365222706295428317983782123056606625208296233482365196524436460109980213995277847718626098835106372518778837020178609261032602432042534603304718905419951120091360259163151781768434706069312129009797900216521401320763599212125884587823829046444956474515243079946153650407389433461145341434660990956794078851202080156954959626301402726587953899358341997512500919537053840218063713690066910882958415807926454651367613118755418499955322615526919941961598017720585782273510484662797708797936589622571775617334283893320447150073739647619863438185893260148920780952168751622809239182539974386485838827413887832855068743647224375875833357567968092553409105753651171054222846276969950112675166503226475280321712299361003704899803210178667440041805430758850301720001597919520696821713890869912816559194182500298383295650982123565740112879990836279886594012114515230169402804397564516637024346627048213888167355234788972199955397324267076194429163845638056864171272260848760656451262458995059851822599695935809908514024123413414042826434132981402768543381581841507153242822452352876169392206791188336958096951891164020633811039776824068779760096483626219908671943550920908201435106967002912680590739987919628251665826979651500967536842595157707590164070559180973719959131861861588532808836882861969451855037161709038702944552364491522483526139532554633800784806734757028726984355111637647080551822762829921301051712742294503335243353078949655177951809398277182374723629996657821254850631046780431990522191688730519272811781994299679152398444392622815628267808205654609088527593709275043968958462190865078353492346866792568932268051577350850317954818794235064304303289482091683206508298631070866388759599775484962031138190855844543794713293954408716574579235154375053503940427100308514537652294669748395366420406589215661316178623495776483572941064782557720360000466188647826934042955522683719446787624925330175921752870185569915571658661607145063386255539491846138209153009447753967028268737197798500688613064935678899743102307313428896723574943133288105708827915780381704745792130463926364861096044268415739805230106681136664850398642805436036135302350708175144711140541916677281135864501461419286707308326327709896906635923678296444059709732586986351522703239037967908372270195833528907405147811317939106627518528408607781394595594228661188392990582402658965459811318068348943452420025432659334246124010124574005169931408052799814349204201924458023631941734975718773676132925041437623763760550666984167807187406618865569489204289282433956403622845219723028798016131871239498180826165221962745350796625913642655595153293395295988043882049538939921220402113005227471083545707221171962922525066583787360315321827388875743456694985381318443382843603937338080696445150243703308257292128974098183430382704561895030351686895171782135960098010009885115467632057407686615530711213557510632111712867157597001453952692141903706976666967544796051100030352940856693729005587699374348946900168973048449364508808782872303756668974831331521214774550613276901179779463775381517764857212696183006074499139264324725376197373017219509489881978668350798596091638154441401548468861004182534960969401536556216868196018109061533650827111123939752766836397770688690610357572063191666768398516640754900178810311513771028776394806083250981883062495843897872745373778476627244036225073866593599896815137031961211442563281682997649000794820077581104964545952436891058690021244236655564612825354755999880007321370427205413924725441067721800203950364068730388220582308329628457558323647775104130755959432424639619783860834352366073962648323616541581681723523566948748726854747003248412851249408842343278886389015919109972957426330557587370428342841170399966201092443207261645820822143576417237768140920723175210186486377890292031244561199824356046692124556545489481900474027883970686322960236868273690861844378382295559987904542085098427833180918582748792558985359276432664073860678203923030080226091200884098179789117159294027825113735779921626599204730569218121774512084472390855393729612839950100698586562986434242088478353774138707051254043074491958861897251136502077892212988198407798003997156370622647377525874415456395221895497754518568395347117478065498242958873043445993006658705628231580444737963219561505476545579385453830203712557124112648467575408032043454028317513396563408082539985285140043229756146141859387546763263037337160737206206887870301531579972468492314146225214358774610452630242846305165772535328565476882373389143352867512066867381706737050056944315914507765359652829799141134553559133782483454650478355102038076118133707728288251362131614963283569501971818922343689894848903395813441383705870474404741845456378611722072793474696619508561214782347998454408361363427484605875052162836971639889003060323225233412252975603610415493045363978639560867063976915078637250064040847471841775498059953950174014137740740904033517534805273469503141533483576436782469641423158094289971882015743596973251961823085834965012752524512515974194907379444986098912709841375179657543717955533048704395308545171108746021856330830017707659064721119127299666320634211716306438648750683635880524589926609671415745459277059844741619892552141697687848589145366980653906208921178176139223574895878914837511262572973521895041150875040690766433876738503466298762492820631133277938737245060349749645863668870809270209941703995210336950615418223075095251952574990768166489684745443185728765049715992218539965243583193039705000441296701267737536046036156821998599231597244256216539645561375416044049549646593637555305304843152871793902810149081128216797474747169529368732559715859294483861010978839022680755330723436543497731217667438845607839755383490296970557955961091894387203844808635947216798237999156682258225395216454701531081877533780596311214195965733837660256158674666077885628319714998266718933626904163471042881717020948068544045437668148382191794917996527436947333227135326263726688084671403748810409410013549097102118750663476788212986128400280242029244527720823754499441378174988838452115210338098598247209388046844195697270753850230998390994974596571656534536063114988206531952301992276698571254598535560408965363343638543889965739863862140888266349674416488516904904589685502240859045434870734051444737415942684415764860739001800192336047966851534229834214903129784411121475401147030411319388929900220790562422152156615436586397134459287295895708341137735594673858669791589001057733001942020641716066753374750053274032368519785045780562678417278723433585814406449794451098988816808400745352498197314737242121532950452410685713824310725856480543883252818296332824617560428340548888161974144328834806179707515197262613060859261381812930834078443268497855011425975630563820987409146637937828085602217581634604106631358133590530558649196723441486105386028401913072221174864179537094238023511505782301044953436120023747863269481839572551331377207387105066858140443380460142365276095181052632391965537316367151169627182452156406050418819303880523608373645630214167762824835907025806288107927930971311267191287472560710211793367567256276500793344016717741460560920209028815483394952414876584646871008974420098476963816292388116251973296707634362696673463150396246218545873741419728721342307214360331720094493547248067555975769270760608069831307348266347808011295126170857727191987137586198702652864347484744581842913765143858060643264848493545017706287269133471938302064974978757069531909674850530520802536031410491761633634125940901020175191443945021216162446117769183514909340117775255944274004252736362086200314128618121379360878831902697662421635078894320160178039716044740118430353461331084835628534869613821697382209128061451114127075136358423237836325982305254659803109107753575126330319893522004329186998617115530656247879381185799899175743653547220622484941378007851460408967763673258999259466451970467841633775857819617495351115100215836808800634348107338464065576662434739711862244361697772925345071368149131714685972078032481207159819997038071612901265025860366789297403395347257171711938687192209434415159519966368065716438123765864041432110377569449936812672286041635587990940231121861624234410085083316934979829955793735948460451896912432278169116934995078035809265110860551920241139979278068983834106039104338573853040239731669717210139567767415954860561616331727045302300694347207833622410203801325686130690942912625655736928454564157505927188243256362916893713967364259823401257644709101100879198490469485699740576011637634201125051406272691935195546765532183071364158263358345893794131245780916559152149652459298384360037672816403270591739130169234211666717436071251519700739535720867632394708472684431358316211328936823613360083859067438338124466912242553443459230924698258813586191009412747534141488168605654868776581190539230594868708314465009560822416057890499870437270388959115711107227972531376072036080152900054735784891452229762413612069303087777339101221481874739320197858616110112331631192163034288182391323060664941689469515506039109871082531266644838595620780476454455348253474965567162558518536589324760599137166981532762772942664749981761765381790682015160123721573120191446018566091593326778836453312015446540639680540572883928653094855914937161843867184709837565760364528731108528731538943876272542740432678383433710552125225944518198638325088769199839801526921297397335758679137815849682420377819731145444367741340472914670301317299595277182475010741388358046312608210000051185192039008458225402830055581099305352030031105488837594301829222810039011678490550007359297548994730669279445465170756432692843861999278333359771190325612540730335761168580110435263009845106877700393100827299964478079078805086168637833446118712758117497591442538825815418864764140494464063965682883379534030788916523856272343492792751212506485123655978532239373635451951653612267330880448535891309353645125185090738349909514285863464043252471791411146942176891401691485528806829747245555477081351670218068686526333292583749021675651232846857510141483956059106499670407611749343001682430393730338941614536194267222934733371866001683378382774135639287661127712435224636497547840908106778962250782686941809433008634583368261687248631265307167560308045108696239865442295242565297838386720884422401390163769370722675527565501773613665255990091917717907357665956551455671480105291767735455790724055855718038553818195914595165281458699905578442870032173630278238046391621631904602027321873424774488420104419310305544478604005399122145142364730796650647725196578526817283946973279368916991145138352620733849671235090718354450522125986818393911517007879844701998913687385748944987672268780524497300981542139265844258426669135914605881536224781897008747140795990201285973351847022951470246393163751367852917454957285384216251706871232019156554484248721798649798095396592543154790299790975311035413597564009975414044020236938688318160488626241254176585183457672970958944772402829790440316299832093073832211251374411162596731073880674533180053420515675531380662287355140474734477469999293013923135289661085905924481281393317802366252799552002020008681175575148907206884089398715663124320710060090315830655736498960432347898531281467620313520048969577354820999023530396275454094670460728942500262942589677419868289101591706113718420560429476918568680566830941535185318769256091001032353621768263485602862378490594660436447909406526568090144419945335942601844449788048636882281303688444642198579932304467918747168629870165619926209268663545482242870923426331414713776579146101593653980200313067955984765988689131842555192802003845375021749487939215415744664146800375032379137281484882062719517585718621056838884513037973209903266432473738533779399474481154998249998856433539024875719896622486607452720725029000927051351438005931508608516397743351674665492270251894376668969536017010743525354098118597966767431594001071400847703004208866050293940582885588743460679152459191238552616301036681774222911160153262593057707052689182996402583409855300475206548691415652114424678111735839357364606360699598199772496518381665361206384129076357979814032129640878223459919068153641744735464225581404864750936904590365358978600797059811124174301782870166180487116253508484388373784129518314453746832827237040518707958666413703752162752135425901252621330496060630331867719361101463020487524938102209224438969441045207358364738641929514852170035488665475009873326783351947350584052807896780251679277061753632981738153342431223362342561623977810987246064964793356525031505639970347540900595843995066501115389500443298216955649386019435521149595433039974750470785139131191221505113847433495481559309148870244443229570806321705319844987362988399385893002422017857191838977752726492579769885561995756351970630424272150520475020500493568593879571733739372379816703786558185935382237446494002257065864889984316407820426026227865094035846147039265108805685169317995859444444978324991390055312659471668823536521192402372151661552772029137559041596571675669202380033333321732771826959097463919794354981183338989734618060780416299023381703859735024974394776032989478761907344690779145890314851206671997157030484085412546137223301158304004128800194927157469622858751845961510203503275908072136431082137579369260551465800646803771299863347488370058258886468116573963135456966166720661059167579039350323739612001632207463203052761763035839735292532287334441369380045124212590383837247103807573940463526932639594419987647127211710666965398896624732006229512514698961787481755675975665627063106899060936806323950899836836174407257274566963311820314941374137079524066666919129115233587096055130184802611656084599196335628726486533599549011140247946292151366175908778226822970504984855087964608592470258486470582599396539256075909744443589535662976968314063752961649192436559979980746974895771286557958589265102824957442765958322392904630915486739975468484312381249986638738590693204334712879720333369535156749559404255139142340019620309612392978165660678082759453312292661712885464594991478960830166440807645738108716664596013472831695721651357735137843917025426752966987501567390933328125009111240195034598151820457586227723878996836887031849784278098148879752075297134683196287070402298334583110076344423518731588786887722248697083550634263632545244360749621612591319086893489223470522709892050194743270529843371104504684857205381465649132279719429704111259659306172339520435981135906364337225422068697554139766997658398633260432501500325499139077620845738415907298444627433032209493146146491195455565401573928108196655536174565349379512287253918767391077624544412863104576243207151588390728355620055141040285116555416234768080155697535475332413983595263161827791048373564678709409164584586575785943257409646103751122109916280963612793937017871747696938963333758039689162368058564884823824653945042774184106797948524446958588644766513880244460120157314606267320955169588701636854610202702354379914752735740510752463798050254179416277600344377813340220126750122287436284613053152882141609412153081646681354373978360298339930217093549327796724404406686186317135170627149258278396881127800634946744032727097125463432822090869782112091193119739037597897675194236419758218538108707794473021929437833569377338716957808787803758724712985875454347624284403344746659137436219614908429629256708196744852366002741708985367281067835863000458274820136794089769498028245342561172859629845823045330872168871932362751417546538324923922455829464374294287875156141142640798032676349745898106850364521349672236254238434876959719474899432869758522188461185758281498103466278453956683180579399298029462240967194014846327000469009172424377790808673399205778839549775378733483734677126167036301204403724027446349166432095531986417428969436427753001216132242278522695163271594942079567476572110090114909039888248068727291389741994162055291162666715837584254353673486200922628352091312277857018447672638859105874096115829116524856752380637997865159825214998657139275986318875067310912511983843070981029219743066042841317465586026690905057705822391438215050542827397183002723688532376554209296251084757531512314461473387970687961963912763222732980418903974319009666459691947163678890823734873439183547056396356829785814266669739036988302896885693151190658272436461258170432941157834859334781753804960338705692168100252561759324194989776876040296763606692716664436042057819274230698330464075368476416265394891465989719913383168798298303543156146777687289792139032391552213303974194457634273596502207304662685607000596110676937841293535153272032294867092386093650749277549401379062779051795266605123325625594133609955267249664036581184970436807153162463029712456581973301788047330441387789810969295920892248034889597675392007533270799270648229650676503880864407258978804248974676366211355650462356500033583535603119987093460620460007974368812405188942509676906190826004079156299836373849408112346330702615858059943726462219059203351052320435443400087405743557443433446606441451539896149973981409468053950003426905699039695151654209382177751181401718635646438118151287838584993801390736005318145828742192339046540911875451238264895757216459008579463666214611670304658266080528873519596896577694910047157020518389033908263301715551275005190788867024745149717967484599102990356958162792322703910956543205713070926362028252050446350342694453722736113447281425920755832268879040811640627056011461873283946113189652621808249632488210617598683978727623438757669873042320531970373998455300175774844824163786613832900086846696860213032642479441524739403495579372765247632633405384582561785510071953325629116650207916184607904055112897373899642088105725999382322941430377284392828472788079766863691847695154756409715984578868641573419963263787896915864789002923649330882138110589520628983886782985278064577784782435393345031276686664604155404017015459469507257723225827543261597688241066790966791634004938661835120979978712786136764035003776266319898324546630411602152940262564698611073475246332193640308315232433943189831631139379580345282702580830762421447650966727624539993480508736038211224436835946283613202405148603936719828524487150414934749423582604482317509588110867435367304717295759084827865238549779008708917520171292254494614509903058578312535535514916529386106103248663515766628575576311667538476827280111519741232492338141104491720965212775055491950301775041335488051008768122154687910911259162745566055747246569235184984581005710807365087925976670271244951060362636826394548247625757578831433652360416924349719446126621037919438802094254483603558442355294969293488595372859712920255030976699188813854678012961200132941154846117263241707704319619013118627408245319853250209518795673183545678769523547796377616307042801677672716253517849653492278908774039347301312633196616099140514680126818811296834448718901331231301993416577668996798425943171214144718613489536151513663066379072235021901597862242636105693055592586014168520223286761923179560548821627268804076020116850608439031552311519753555807719834244016620207321947714523662437054005679914166472777140263472869703925584120684854101622527467099259674895655567904005515535922541319135138240687838780921934122305078805375326319942294015371311349956148002973446437654581977058334405788402135967510003570657966138632674182045182935598827439448480376561876025727947244441065530766291636727385701143327125290497466422780899073641523650256389938269912614843793265891124825411577462869045138463905303332275509157178160255576805861075804710061988271668224816393938841476641804681876241776155180912431781835614759856221547284054736692497624495123555995610645144624197859518153212536784117117005720442755313952554348872853175213529559535775417126736601556375754839418361880793204004418950595441348746208062677294340727314825746451077931532061105171520661272139393459345701721677438214932345322638732583062883104148129601332914423369625518913465712193576338179350037651913942227329068338577506411062999816129892808805208402002271286828776538542184346819396403811975283745112882627645201005869793562496834012331968737862787355864894288056412485107691892194569448918248964564041856260263151529058808902054578389644277519198762792040859920644748354210282907387349521885526263663413303643711875479692360697334034379899745011677748466554685938682265874419911368149095545517529211134218872729006078766638696844655815388378732983246735425898091517986415651684268505556278392432053970417288979897281976620266490541828830312964818284466779303235709852744864315870780458808737708098533772758995695138647922256069586339986554883421853292737366067215019154023035635983677310138434629025320136184139756098019847113060825533212368920908174796677260367921909161116125834233571773028031903912199163446866718514585708243276981865240136486603127910432320610568229008736329592889325844981404441229374343483408787820875027949765106662646820014139552351103434760085514049830926543215090300504818120805386967705400545022262059332866239143617076523070073638903470658112483425137845507094803558035432473813945429901046700845941424973701330394040318869640729287847929671755123356574801761867082387179028698954641359069637043577075640480543206042961404030761314895825114117023436539591480478578540320327254621029028987180069331176951266869512946979986595277195063471691698764327581860441102300666985700586750760843861497145267360461683793341652936618803202357975635474308251589436751399610397272317961180097198783547001888800447856549326678062028583643002466085136666644046437941631925582788475407895746425867223500316877495420515174460605408394032645253597423702734864519116136053215609643551625124357232624398000551113559782124478545714366795486484701589094792308004645257604720235423926208420207829855204752673004681848549416614642818994332576383632866326622557326529305144741348614220489903833313514243272387849871204814797110161060238089706815217064352120755209112883897027377888302739548056133661086408794709156953338102982390693494185812558648555459877439843751462279859118589259861989033440644556252575312034259260904129538054120970917036276341990604894202199579173107957014001289702440934749048151589271028246991196794634830587336005562231714313801100069141149800054904667103065486881021004772087530933315249182188476456706443909768321497815938063107235967329798665554128341255801001752243099520338403737144025472336636567332882911759306461952775903149429966081751981227231221573663551699313237305736080764952022594743606201131715328998230191669016375014388044873011769831492522260584226593798425740974126092334691132545404665070166349393500426780226692443690872600980601965264733047274147987935225898759575611784990237430581687741373202761419723369428899048767910777801191227911932271616271902992698241411783774760225979277430888464228792377364825449786348469810594200836207189925631435803697826959214331207388132130107646271059586068452667468646602871695238142100700441959042988705711365581510529863229979018132250381359802350271115329756398474123512349107218691272366973939194803146738165306125484779756476709607339575641566982265642576947171929498570314749862333055215446926133807100646865952222347496291154951458978822645569339448481005249726824229352400654711419154770821898664271397258235575304272710143482691148137660088750043932277484742432697961704678340617292959419631079170270438046323766649585996670446425484136260008427680438336546177376502718665669054320712438752568075937351920499212025309650643285366392032831935596571170388902553363837473288780611263143084782810665729220420796748057147565225179232722059934763490627537398912395585515397450756211508567129204454473786002215888633253610156345984218185072763385725091557472351052033084337547495803189827862371999649251266062495693756894450172384324990448843355005501195802166961210024488035863143274973053124603703137785975189549679201089045562070779339996516773116788822635530083080490855198538817944363218150219409696892265802340283722060993188484889134281026918266763815670937431003431522915236235569622444741298550954255748398588011366561341827741199913583725069741287292737485049947544244012983968823705080387842066498539213270915769815788957625736476335204413361987860316350269212047921198147403554475462826331131770298769151539101489275609625067023190673374083218550501988140484220229603621756736257446054608212798810050369393591033131506263529246637210355845931229897786224615804216701220814070396023805896451359788272489916713311467502329847961798428659957966747649178291808299435236651508987949836735816605981090927889194937416258301151774084065043581633908954184108407245315455901648083910261663508052234349360432400476420365716053379628199546832046411525057243928525045282688509732227561437792281338129906865768302800056221501713844773904745110536306286358687698172262325603700408328335431754135105670810326253663861957622026445997860723009627181333299351903475527485142743120531222905686169441120254516367027080250245110195418876960946731688952418901446031441962934415135645495116827748618465095037611933699498399735158814134256857202927735256400790473998315997295457129279092302829038494684284718343387113671827793913821921486519750703702228330644415764771272077098718573059698435794089764001587014644520995610368976847037027223832321817590870707102621510339840408939877204837162385418834810361412253542293061521712724434311006320232402853465892781754356836353189753761906109793778987278494257950321394937568946654943782880564413548334280215113487218264823044616309313042552608148665494849217186546476214009175174324380379890999704552500782047370698055303485910103717768750231303703357685993638668627333734511495844314063352041675200397730207662531972240405575128240053323474702070806322540194807432901462332138760650058076199158739441220684861392027602008051326514351340863801047423989076253824195637771323317207012053471139549828368572637058373999999612856691554634977320185622657309393582786127451286863697503658222517481049720535533607504226089032086449650837110216019788390855494575764734735088805007108125920920500632311230067981887204752275449233014357432500966187747426752006562939916256704738115254059186318132322344215473006596262197272629046019883340759028772426049517372217289502877335043898416653987552119503178238261626858287035067002546953695471978570450981720833025630488112267370976034426400527612098526324476696170622832440462837386551715046420494788122171647482896678736066283592065655541532557777002096195516841522672024955110192132798390197125394158847665363532179757484286273880919555105400228888798724169393668435599487915100563602865670588475118332751536946377321410399834153170900093122759938913035365040646842474783430782027315791243032926466264633400148042828485007280905334943401063332041340917161655430983816582426270573044913606183581049721062243415521409590815198337910016786206981301481028682604999476284998458585925706125685140313456642331329356361268619970102214383642731161113672056170188844111466492870876202064517844929712326170472023321390189785426879610558291966533294585737824430593203760759336002207722913290281541433543905254066443547480916625727703805243647797729482046102990887115688661464490867450908477598753214662435723821519435928622115199009394611256199131388441890041024508807335391345987747781528923260063412902495431082215669340805132606694070678463292476137032658231540881571246881499649178982157656722442467522152212687058633582175706938126947548586309965845447144914373440555849886987363513728073496545860566542119686497722876079717532155235759052073279559049229464150706630358022140965173629846901458408564436925238273399054013475221208375194445586581468852746026543861744984359628906819069663355971485205459451068332670636119396731485948185816530296341171346318013617659449521602072175647467463410076193102790392219272679384158267012011812221825676759348737024023890296375726857427327079075799361769923139609023224549519939032126794199286186884052028994009672987348600490395043584293610819380922616493080625131497032086280334564234259176021033568629998952910477438916668459186111152214445809916621379789926680103056172064975164783645908344660897865746312118802510938430382992563351177410224496737978828816164506805259687311492539202199999752533884091767293166314182384136323842662069831921265625600200004115800018484778729647190542204845804904170002102728522643370910509259035104318216202594577071545452666988672571962794620357941154757393660502510863264732158081430697062186243495188588404834318628991221839742803409573589009204069902900404560257711770178562161094483085950108986618252787959704860844539293439716479891029965764347591519882439419805497053415002026415930813967464616633166650202004719686484706274151795663371702002092832351298069985183595384381574839410481995354655130554159238048317458790726198969634381421426444541285591280282056258650107249409114083828684398542830019716955354788221486212041179790704854617476728132204089022661039140160698548555026580591468717399975645369916727772309472723235642459575488689503998754427028526859963279938999082582939122982122531368034050814502866402097005206050379446447180788932536598461976660528010098641476596810632107789525866089587849813455279581514727347119331845434097801937193508841637061876445094702230111931914861976176547423146719190432700784353362385287656575385401142868729827186508286288439488072205567950320855828489006662752063020055123901320234277198173166495983520596365752476140090445702820505822310483437201797426027497047523861312908654795257778657873669721530374229118279191910177564573641600352531568399971939070202481383488209925395949178620520358334909573883958014411422480060161583297078869329773129959315638297480482547974255164069781524150267305498778638358902580629898928615391610659134908529762701992312221643305059268372439964864604335574690236629692550971886511690517239721393203917594927994301552858386171426344081594251582941957969740888279367418665023372367150817365906479710026492041437637342648362959792678588551895175948534591735757513581755914530205835027508114292159198170227964036296233316194527133750139632341070047032894988767343302845101859761755189447272551255991063410968953677282427751893315550456791428663589308064489494843230479633678408250031845569568869405353340431426769728357283200913757480310901051234304911845908003543690763713727844711874500567130430811859466329080718823684480679597638816808896553333500988027179882875939339593881225410207247542396692564411762941436742932386639571668503719500900779595446910036369514340511741063253005117580540169290910149925321301561543134155043031465111368143455772504956585268684696544296451669874988890421105194917536163830396730896763712733606117381362717784002160670970171252308130487992167638090186560391847277588023210473845719881458279391397807283977246299692760937796293731546043450338357259794634348399597993405732202149611606229408706540423802096430664958875032718106367836215141209214698426370867642985536258073973468631985673774502282095354852293916406382858616226694193080284005868728102550712086698219498080535933003588425727986463113470390972094903612512627509314366765965837333530787774487825268235202338286778109138937398746513157223233268861866771858300672725979790256778257164176640560954531810971436065610808941543674075905394296828324704925976332018654245425779418060192222534990454340392727523761690015956573986052045611392690225262971166732524642622302107977725918870284297057211992279605613570569818593276604404274109478602545736915307184876708451060598516414532518393211193473256060197394930454825205979719676609924982917864707905253156007052622348836330033842634863759976659840467353628943012180201093450305114923409481987661282358387751166007408831647382410772068824373774202490516211882967356422759437337132537700871387304268062638772988283551223934600351595200895916271532171956392671570843769208448661823590387420702252380642166845727467045172617330625884991263599012741268008702824121122659835302368584624786922377749370735898490250305111331516194055337751377190357088157853537111569609526956835545747530167038654871593002101716263182174768587599788921084587138038598146902798019831596028591018079193805800455889322756875376917131482328857766165779169971082241200768878674877354978854066320151697747153025594987553705490376009100464295165072604462878935482725123410437609357699598895293294936338830829245517774597021418322454027778849059879982546756086564240842673503813993776647126050033932304489762201119701161466785450044542783280383517286839807044816299652484101682817226973346912917112286707499792002861926000657621135647105553190513363977543962488314028180133612200521884385169725089595194769240613520332405126885811728120740774349782668864718181875508626712498376276295533485561262464671694923673184862714012029257750417558163021384658418644504931162390301742771507226359666942828941413906330759218577781743000820634714273672679678153106664615455873957919712710927718962579788522467363042621349125147349179256791583845709652471174134164284627596068466366637703209504285831281235567901413619429795377763307696126239203631177313628470212906175412951674617232560978568836656148887743387400687693936815551790888086475005147828704358457637477099985508692904801407592386702641293291895169785746568667994245260393013283181944963197995863974588171942655507831046705878132157063241545360804277876860939477412297021779108119024877093432946459142133688982459332731082840443635810646644145514431656185910750871927899015311048532954885324732255264358196936167982675676817475817560833969624275743284251233537032934199627097529760876805458306046173240702751061992502177611866781046223281255311409165016820169062424844360829023538254233228401823449831438645389057764295411603158964346217194284727568603490805602906024782407066721130707893276175083981723002987941103917421112087878342743634771075177067028095237810130694876349493397379395956030022208982610107320332773619563784408252506080166934744542257436036055919927666131476938041790086714670005666182980636027700274873167837921660496748600557920284546600304526457059355300855943183465169514222786508729942819695021185784722571479293708727778661625372615890360301825976672516992808673849255228719050043890987634233373480798685762185661863211300916792936297446364745196216058712644812992556548014262135558038915132587291573960995006669610682549853062911362885125687146538376067877690090352948021817419724498859209388054243795306253469945293976575440784212328564146512976749830985943583836119682796280464500179423685979350610296550292202374675000110660927032446947016766659171340277548596823064401979763504264380598747050972485088627907972312802952740067706516343977972087363894113637622646347920276662629152528929031083530981622216140629958439115519640921530432513832371596909957294712694158577381247890967211538305284789557788580426814081838564831881820278906898664111892589196932151155710375679282453903647378389802150542640400145066699407999379118766321049275762396617993143686916667629330888753658675411921569720539094253781728276390318699269447695510951620042498070854257352932411117157305450000170210208091204524322303271766810490151981705459524837001774078038756545861571613288899805703462255508240520223747882950370162425801387006556139868847226343707482247520343911829776978383944697113129169697508750023001068120156010651429152134302185600338173009465457085744315259704164407643243714022947656343690359964353712984353698479260333402627867806865151027370568023263318194173792280590909939352618188371211660433763537931117253114352127176415884710825012031969594606979379096586186232370816505023981849989606556811528595377376242694518701098147274417856545299403509452892298301531583084638608584269774763257165449529611622406520701397592260531825194905091244031420605872559748115744908359111914988348831727479836443496169770909964441799399992329924516751266624423349241779421992331450980879161229889687128788228388928311321407716153366381463995174664027729580747190783415032695088360422114714179727886761520849527854195253881559605512960174044275950847560582709651115273931776203607619183274158905618277480809312979185738607431232542573760481241742580600470132236012546685483063745442457379321694180324480032417638040303547772914825902283106065365788638688628925988679972558910917119710389620230427185262605004790080851118309814387903773619127138466583470470324384001389472921859681933419322297248732415076963227602697612836658083277066199044201409451613857376064517771953444981713968098900327371604130844667623554849533694540013957543280601762117086383860148870684972921103949760931544629495975051696193399933244502255479418455626224738512781458877315142067357646164451421566574348450137312729766369407234555501427643144432839870050089036606720335938684284074132967469821390331193726044868165900669509181353924824226976649726421669637002497453918807131571064777155569434162376799446373944772229190956412823680391859360531445461563002115713120684697508190414189305621348091849784851782663379677423926126858717200028403254019438456846146944488589600217605066234848664436440385489139711156848828977122446008976774381390472328045541395531880457633541693907586478740247257349586457241857680287190358962084096407448118507051840051570451623932153498671896484451646344580144633634921300901224781177913209883162688383788569115990800629348837230178703635151119503835887258332246471798225799615325000890433911638426183226956496108617348795977906160940364611356952959547657165520003401416146153212990465795710703235856615014410219221715917637673601211182701359857254131647512470844803581368797182249134530456806118877078279462166600383215282353060740549093620457267956584109921170703624662644016112426526526156114023854488193943403759509316441600436992204770584781844641382192590916834739260497548903891596801793178303238958476082305223076481802164102861540930609540633903381142292911805854066801605072232147016612984201645151854096170529124813253676873619446032685273833236283266251958235283245500595739894131064740635824680692398584722213192628552104130887624123664192840714762396717742580633050907798166043911190333598057957769358971803603632069975368396477683943501035830947773373351604416302327572390647114329032293591887113434800528337759970691744491449578787705823209190291358702242928076712764671174971592820815666362544750293198694460053682114778753676261406650766473440263102056986427693066324371537642336859290451787803580493389090722774759360772835074765369194153003402156152046230976407230930118947169828952822366829814204983628957542734579989274781723944667505156448810783329825466680410057464877131175335019186927635164396336881217907587383093143125925477762155047839740230043637923019096340288765824628877285811365176356853851049256259753082375988281140764628377125565370845745283778966058477311551603686843606850559991736600641766095569697114505494223778594232286114749376074908717709093159876345713383923686104624435810586333035293900051243093427905801787228317213769776012874378274972775980646865356735571039391074908530720909054629879820232876837079053041340242953881987193587551456652791237992836928477200691637702565419009612981308604972754642453691387994220075853455033521748369245607217507388595622922728761873110024746000523465371273396053402235345532952347287454536591935222748183814274583177932284949039471222660943704399262935223648656824337171890042114734581219824959792901715239385842105206981872803172352540305010665777102551507003585423634410357205117605070548646107617262035521085880017268528197861669371865324937806824972742055866658901106589404447366327676955870380105559468590403972486253956819977889809534175003439471565337720884010007204534045481656966803642313519687125401983539738554484440141921558465979607699102260483198565884428413177232090720197436568701671586076539828311001510591829366403035311052478158664436279903806139637308312092350457344187900494935965082155340719900723392585708225189676082063884921710539257978956230298316477042509442327313269580333072852640450810843291304340920483956399988652690654354842743245249955191732518474165787615382033996435841815644912475075084848940939799223942331139141166089358029409998431960841954769137847998728349337428839035461407775601511215923622062802888544564377697841312427533860736291505463360945252134040044713363504059692282765085482573358274420293333537052299334830578705214582545707879438264155973735088253732361305615916135918303382151725015410888406637091761482831592291055652128068670432543883689872991918897217621844797629610414654361111537445228143999596248442530365249272198887792583846116183384911086399079739408433074819660382209885774896947504280639574039839102929172838498259880016098339122840546422596218802389281635797143668868245784107169882090477292419467892196817056222351341457274805233337330550906413780106830586675041518056353248973053153986303860534453174088051844438759572442014627058763454073763533165181902954307930641963149808192767155526066819484172702308073385603517265002087653211073637254981353900207013777160244724103197968832844754452996162422566292935118617129097551081468541305285279819793709083883413515757576517253012096686581784593341937779294278136270071651769335457849274468405697293031313603545358804441164730277454682467625274561355345105395207023933807724213801661237003920699313602770570043455274107089136226243462033556863808386161076165607246299567059042544738014898990429493299149728912151502216059957349098080223958152452345468245167218519310839771120065584189841932504817959852038782021276536336627234956368219763301714066403616969737835743954171629476716982692597026784713982217956962502730889978803365484493139907653762515551498852751466969410922223593685428589100304360409561723340513092573466227427210427704512163927147695345170775577155473467100708925117379430349970441341134506997833948384357609103203858171972758479125200473361166264314020537173513524422571032666568716351175534430699786035581458029653558131090452869664994582758669925169895522869502340359995389345409569545899747372564238275418205677500308204895729821903426932506642653287546290982458620336454266250764506252328754521617982053915549243678941442633813687439587617238826225710341511961162799620268333264028440008185982057898033850984026810710055633102429112395084067801877583880212957897922023243273168558745193394724850277935357751979934378530863262345119253601443897912110907833385680997684058493171529016645340468773927166794806495610505355422565126955075922880533825828079353953736915935978229348027005884686244271814390202018818470992631903120128397315595578873294323574289928263063152824939104050202152079421981160346390928087882833006998786092360865495448642041710749635111413709784332620626316416423513864176405571885194120952644076654858024848849732828954136535555217065610405353403070661315633614066544823583752306438918206188194262301457414780816515430656324709691374078305825397400217759959589005373470351502004190049134187504430441850513669731716817501577205233355943129984340101062326221545552623778266362783553149226931384180846642387627182962006485094068220644598993160753887434921037963511703455758340878435437433455050978129427823007539372991570500888074001283724159078459521737775665919323422523261038412411612243976075805066125350368280967077506548430394328769688960178440073946410547480593897614118226029237959426948817836066263130459656270700767780534595160833329216821773144986834539781237264890189264177658381852459399966302420740495175620727828333261698799176323507885747502666493046757464201809484846268159661771410652412224238141194985083404602992458988525241376150954318661609211306025258085499309084348445497386984831105976492470904740654968386839847230426491285499633970347068893624468376134417727315035670335226212086513977722758514374625001293420186714947008266874819620359350837719858535738601653073732306086954148652592884555510940904525639924545179393144825532721747328603765808337956913970898047659259898072264594463868473965432934772973564603518188117410480182496485514568183755353418600208091151497471880837828146840197756968539033205775480569245738898435279754822834411606160331066816541804442149512587973934528368048007018856902400086476312738314585226209335398059875947885366115113145291263955019095172970528231068263187157701220432434841528451056438144541692845465375465626321952794690808419206278373726816426175513747466357188963077145795422604532360227374570498298589170316637712539282297859470744062477528175191869861835927571727377477302514604239799088238665317522096078597239621838327520100920742994027923086928339319945166357103118525973409574016767721234726957091301689143034238399402476403217530886445497997930701526848067173067307309686638979103905785248528970193362594778828209857832933321015752075117690145801858976839829364863678698686536679390691214223682155717753464715136295263411022150390595891189464027947835772637422109244906450444532730597476269123455764416181245324545103227123005959069770159219677633202970640352701492078547786003840915456824200073055888944897075995531586088922457582694040974494631471166342839785705886422500616653407879152385304510772731822982215627904526169934748582272715085277567128797502002165887164887711634004637516533582666217268974035330957019758512520292701155279880228708570139324902786271622040073250442788535713797978710605166137210123241202765378341753798505903506248613929748194341033678388457452237004324735275251446990374335749900508415133629765811447815353994713996318326079403618266734842114914273321916012666483816765534194949850265519239689306170241463349360442626505717722880441534080421950627784790158600672237269747679270393889284891498779312924318083441381221699656007589729828812387594378029926855073248205401023221702563321344491323237585311672914757230534486511335002478372652914027032781684734043554936820363097530246841490767386875011985896892080800558515573805156808935349418550278471744824141527600058693724944446977626789562554737047303776322311789848103762835198095688788507171397768668979443185837858703904901662576621503280535283440747056779112078051653460275521136057674816227113011331188307623705554446017169925391625175205259121097226148376943342244377134149539245297769010887770102074736630538253920962425472637009190837338934418883772812105288406976382825477520455317388760149767163182385339313848698310986218863763564681204502400069293354184739180829207073588881299349123836545467334542068879987717184710270014092516160305173659894632609500312395342951547487332218970688934040957576418230233962736000367980444513724916331141484141823400100472861329425144979506198051072091222558913799838748403134836904997365665617759233868246125640018541906098488657759132911158348496801775151608324858430473672034965911636527295833253854691413933637756416759129807283879662139125748782975425192564951145775958915044326011026405713178045009810414611688367570940965560055677196101012193521622720692749453620601104165828991384369424098286960468404236522925526404761567153948046527361501041140042378645349104268261812906358123023637672770056952436392920691622685703674750139896101537967436564825593771120694531909418428393034876842352024721883283040089763005805506544179159297642754418432615716966213661784505528658609499901956716099126265421777579828159673297096073667733802315310145182654982784783540523174287993165050433234552981453055770270341099894409093749853365744333664491074289152121457228378331154493569741181375555793429518878763349122153529103429096065797098987533022714038831199075501191153263612742755323426162649240028602654725890643775444027583799797055146290367331538375765960009884294514138355313583737339870303573318504195456623898101411786928524543080763660934805661470361146250890654355699586111452060486367810233478871133376727791562560887106432413849554625862299180325240420792435395397245829209761131789407629543055152122042943936843746213926257248215475699472199445989400957088460592014173419556566541356630507592066249891506034770029112906664248848561764625588829301594757343489768671865015084759485148008913205169329012945259951524244385758916638475554931151512252842357227788589902729393424004010654301818869291915770943205945103884401621084173062549757943241002970176896933042902210812592026269866810278467486826195011887292276396377146439996146299610091659839920904736876049656521661524937669851560633476357005367708832550195247248421488191847982338370213165357221918256910706946188754420196925477527479732193842002413883235639562619223159026055132165511577894031337204632958550826742498716021720782085672426184132291975594339178634379859286498469014134918940385977900619952514972503681594775068905811293614216279671106408238220522345953577608684467970039016200470465710971814133580736352779272136678631679641898503812192023187401273813522806457166383734088217578331234633535210162520079049085892914192006063804025286605222850175362972859389760566987923902439059194638648110915553973455251869729554131216536751296707021812189631383804188471667677399525610522819680895043111814173238014471837092536937584075351113440627051937774598618655906318734405862942475416446172560191414955910651125348880427147803882292824144948145139537411846441158481117840140040960707818152357520892879033373771137231154475866083678533691877382387364822160380624451913453817934808564306823020487451367340846959873165203883679602284109453619272417584048652743965597446869579253956741734869393892041480906514613597580402708712414637871488437353651166082820609399490502007829635301077214626161530520583394327125592832547212234714488806039778626485271159389327498422717965665913857417767777773080356405587355134736812669540754367961248938839134016501103591061277632524416426906229898090890588497638892349026220642724917057147408543472966314919249767185273433640292572849547801646157146326983356419503812333995109612258103910164270435720932417282166251536099206884067012978868012457719246723300911133999919469902885665819887275924988286332670410935065586725293795063495215769114411645178717064090708912641171059507623771886030291404331170165897552280167492753194740376585170135070613560753530011482728697194624779902224682614032502468521186321911049856210244513532566873341321652404452259010094786922854141711396826658402029506001567273728350167048750371980763217924360149104291335375489795095024018189803358518807507568932523330976656106661831772892862568868679667711416383406132048107381402920470141371244240500249654660303266118015966748412681912110535667175343592171669335103094095573915209506909054031755259985348434136600654614037818539263344679268927719541972391685760098008812069041277701127301212546429651328311296868980370992745959004282755960605524775596352573236988080242154264223254404124260004391204121629008508251529027364407113686504750170443680621352417769298341350149717429038064407550291028568607267233327567426510556180717277797657515989496766445686458229848448734915081388333659035268555736979290225554142268870274873998479218427941289551235265918998749774342931690695368229411932750503419978602737985175735833244192067523720274040106364708276525645134484135689857016587210648733669809057368942063777581630533316142402658113831161912423619651132964594729293245224341929584002931717700334209539874037283649416656016989946220596612448686340208004733462674325342370479946903760826322966143527677830519500789451115762028727875316980518391213653868707393159517571198729808329922997185728447179332231610809605939727923871926612652859559435537243374868530057177514782228893809769289177004930816084172822400961445247194312410071526453600328995023395641759237666606397644614263800955671664230296429152277507799273498849221609314636008789316516017238266805943424945360288716441168744377297010858485659142610362831346981457081547696946561653101501181547611550284404522518900749013521257142137993923305647876814755312504256022468965984110006800208127449481846140741438733983936659481872936640064786258178305644931802604485120560673597290795719724747019116969255411518247334032925489300494001306157765953754950818929449818944517712287206434547013645469514307078478768069563829026114536321249970207115222926005508611283941449427257670592510099452865938056039875181060862473928392925406862492416057881217209973815443509867948389148662655636109005033593319463005607720523873929025837061184802813157525374645818771779566308699128580204419297958761265531424533981609000333960682051957335874793609067414179349724153485987505324311790059836227797383054735780307300919297332466365588379096063704604523147700570197604803815947117779792848281356314118954455452125050030955190796831113808364207764096415567213585930465516379217705013557401857447682429421446243353206972770822970218686668325275500744389100709814485509810583089751440149759824269455012333001692909985075361965705659065045172794985783931324669189828736356345903968970108791392556600809804114662097344178140763947761638084990203202783750385630059331141878989059015536792212852439274227708106928884320060822415720421600514649370045805582773980218830124218839525341273068524728607300039835896426526399282829103118276015905366547108166493063461350248369208392867093218973538273741505781211620650471139119540563413915204151705994847378284514435150693953389190894338784869532156757526358106298867255099337378175599560144490914718088201584329046020056637030106172875001328320296321361522509196237183905120130042323622223655536166171964107431428436786369555520208827510829182457670877493014948516221311542535108541986831096615320562146800337599782929316494844028255491653047643161364703490687472792912649699223050812261334279151132347825683924521475970862862116071735767765679745478410377739662360778784094459269515813963211083335536691709210643050473932283236395531893640033176568311965948704418868980227228244372896454343326960255468632988357115606225031712284292015882230580495017933977505638120223463822206540550960606402077313415738435573361104521111364258267505399062624092229902358623897141666136063529095036306065385288837872898005529130794467782674073513135260723446061995077022130645435724220441028400392671523090625898892181502070552946400600702128802799480479680740130306541750929476268245849797346997656879258503372769227987880125723685248068620526761502133434957719720304450726751941559270007814148859338907122720273156858638457837204216628451675781265728885548927625252050436342549820441265914224360722007898567134170842831320307839380524291408522138220983086184410259606838014798088710661068913387277858351469446217794139560516975125402435502401089423813527747768249393735081300319317296723641502001219564366035260921998718237312277758811329951284586782119022195592349563045748232152400445737737672184329939639126132115552059470569350556419205472925381240069058370010649787951768708425345069802373779077672231315226533664511197098972956664723578517140237012106369156963025351876498651428481571157417837944563951145244959587563759543550408241432424448466004043597704574020533945403474658734049759353952447235649792653006284655612916643362096997969130137417816105544247906927224986051944668568599421360932426879558475425438999080984205646340141189187558447166722463095796176046130547706519222278922747689719772414640074284535980182359790232585107173788603115279045610762078289458666620660090153290952753237800623540949418634586885771914745344990286533379861418184238399347075779882574588886586023186357968820425701574109248193245192871112684407483753068752884270497089815642507442973208855563033215036125303754902741613768800376136071878667346756758643630250525291475645322971126312992778289704080666157059656682326659576364389220135254306498390461181943947373931569797773765271284445480107215914301300757372130411341247287888427643366348956346405710535966520433684649437198740345189939313488628667798719119255613500113120979208064561662455718748237642993784456925646463862434172965896522023914511602456982539513201726034458903560892772573699637450199711904933303334107851853666606726201455931930104280378337568001665305053409976988584284255676994114247448379912420617761381844909721555106944078279405218591822453027006366230402595203390010960090764107460940337614733353441860563013032703855718652787233722758034621420759637312711643135295494740470769259481124266064049219404923828859441273356157935878700056635815870188778020054397856130942719027835368577412541662773478274702318334378822037810784918006504719170644495634418648454086978267820031609856649268317165916237487921513439267320720638565489176702609165209247840697645923153600208487142873716258938211161009762844419686969237320392131197502213781713148737373102764776345331258587084616890492511022498621318776506361807307886420222631670179703449596574023771855393908584376092110439696819953022971690242153237733107625369133199712899906019683199642158269234833633615743383376138026103460286000164017245059467439714373613794620127991681682996582449533542389736533353842907396521479436336067021993993005720997038440851870006110840830573263290847525707448585024125865001512782315892657103988061088766906106958180118449216706962234341092837865609791067079629667153043025367519120565004109434753550194783749202519768105981076181929740519803042662083506219682397625792109133494853958323344214297619464190942665408083084983641193706784490457692244877208760382446286269150471197279934331132900381284497265816814783795870764408360051998235965798628662877980546830800966829592309774890465896112188669623387334036745220899601670269851308034627320863393074103340992123016783880441993430697642997757452240712114491573362896644935562499231716843296732863887891346637011960236674336415112444482749553127834050942431145421939771458057486645776276458955981663454943192059884184692078309467879415244102502929688758133034562504925821025252826601425979479631448562116137883814909377927320112985728391651093892515734674233834263836710176865331773571896223344731286178323801730292678283364973035113121888334485057448710820651077147920139769975456908380982056475489238922579233423382765402317420947105138438007525965117831351834003159058944796203399029909641766659745461626930263061651078043410826921561622571396002572014765210886772430966860990253784330142345538726580150012713987699188660269579824359642293628371382309454820319591920614055656175354354604298045940297953042060885852989972629864677781115049719927105821282149393068868051734479320920705266547961768777120538774466543610864539884004052748460445938476048991902453956983920502305247889880052677396488561444038773762760313866623738304368504616829177903477548227383960888592305133942480443335110849974111784596785157805175251062567853270218378501257834607890557105940406621491859679253338873100473362152481343277477733341939509514092304872886291112479758476982891274738578605213232481600718494286799383662687719797216474166188251427431487589580786354791652404418838417775705036319000796113053281587221470228315512506191931788796515649601699025340072734415092289414915067261049805609430644755693833341182632249108346777887527500366269990047644271028425189454048004777125918243828326890921814741852495070497853923783409558974219372792853802232173086477257789790231603866560280317267712156686774324898942897931183069811957027397746421631669094136394929567043913160540889483983321079285503925787738645826428968678264730888498971679922445756131984229144738250284603599829820069955937874344487290026398295681690289486771975138599472801297279495605128629061371958419725970166196749300917833722158779585466727233655811001217538295502095769190842650057908759244395067076543595251660384626592703227748936673939312061620993390836442429500868118987232013335190141740755536395162358271929027567425793201887172768120463384050985753571649809578388067823429548470317065235870005653200551999382254827535095556982465886313337988058470057332837674953455525774863680551223171798173135656010825100963028101173583100141212189541320593663030126604936684446535372254011316902565284419942328944438673602975843082146710404597802233956111222816889464201795229390568021018056545101308579127635777380375196880672949615139880072187588029599788167447804629790571959748452312749380951333081217243484812088348666919174805298911746506429539813393816486559916770697660186439528984620970387471452566873126326413643386873218336875848773571901377429583996112789217572447692936184880690102697970037529628221667514271017516291613092943257068075624943594587615750662424026737875405882057483488227785324630077658747575122083385479648544024352464466031847748250436618771575229383460288044474765576015894672803715641619794864236249948366016618008509256884439809669686957303673532994939249040852481299945054427593574663928369861405899226814454977960118722139883705023804116437838513468813779193892538817686081670484799342423478267224429754284235847430113715328860671412036713367077006441805457505063627087976096425003585302159121551022527307931430511891638145103257700443382453258559998782851328918897228373501919247782592086921548502905983038727876115116358069095151828391714819816861269255872433017937646193200358236519575617772391462694804394714364147467681728246604350045663284229189161559768752049015942685419335638316082085411079997695688294546250391144136362379364032177493149874973605408736866113919029161025668893076520895904263459056188298762112626205703861204410246261751104930225579983910060053219299655147890763904966506775812584128662419230437743837425071685374415312926038613466816425114705795036072525437546256732298381658216874579572819448126545334573775436358040647242689056164056454687388595487572722365404828803762192556367727445465658693791357567784496186347568738805639449784118151394063735842271568370432274406675359408652722257108293592664024277195253150957808438076334639957680135538420735232631695442322572480846294153188869296034426889968301585574707407275007658457041602365378755292216544552091738024913114045280495288057946840091380237158134099769395447403219118348295241212975337792631878710727805858711227514681953140080971073698894418682573603277857835215472768716782427872194384060103975006547877673228250453997450945129685694616002347618644767269697486830334061721589442407359901036892551589440143942998608376200532882933580501201513016685460902770676301605993720402470780972916507545296662779844893729539707164084510082426548690751122194448383845316978523896901745725540686509683801538203819460084148175946384200342580118077651244793476335522012715317535241139858348981978991029996155664197997227821965034557371572289457955486984811337115439507769633095946143578113279049563061635766315483279839108195452999364192075579173979562854003060310345608169861311694225902246557312068392334921289487703286579575406283877122204992548951655964687947712260173556838453902731348158235220872753244396272799591115145562529924071645078452070372803232668401119481398247123262852363075976234450089391859025951815251512464315570477182280433312917491571774586967630643485342604929014222699470280007114239923506552826288189482325957685834588462485064894187973208411438895416140069150586905314607029511465321546669111405372652897543220069567859302753056733636243546945085458973537621645788518749921448836285925731845971334066966419783623444860216214090554777211134023791387798457166343463300430908274792122065907115635593621267040510370270651364249750384683812607772566500570892376112634214149766112511769033639280118980451262830684890600509614694959718289794216824324455462172026691335812539760383740834642406345630312146141223861217066731494351860740849738712106402015529211306658323912437126626595219878046530296311082804866153549520477886275386351302756456480696980156186790710849364839266157932664184759437097576783975339761696804387096677563390760275638031063741622756964782562089897532411567163158769397430213931507082238016732573925167681877623412039941001419601652940537412691263297959366451292549021688345117029687323346415929570403599889345095233475722450378047101254975505264945953374093823447412252166641976667881597805381293659385430464234452630652496885528854295416624209578443294827186123147595340070452432000907158243752677973389638518837977332739783990383814119087744577431829917563277375249544038120783541162383948335876202705494711912793049364542009296521127160683021004058590979113592221213747832489974264540754124920981462187244382113629192915156735014080157092264156927470689305518391530090641700407735352481596725215227501102428082910477648618255027239763570477847681954662208552552663585135620816425648111170095438086819969566606508269213294009384845580707469459133523811331788240434577347327615015463211503524504647638798429602444895023048699295988876432479064172425774838529125170515450184153690534578129642706672881296196428691970592023488494762622313005912284435938822836923484027076776947774402087568240177692889724101590935552752452363053617384043497273511047497109354349925974067036086268197313091074145968837033826577952720698463074510241819848894646917363529623899319192056282759383429292245615646195781379133287426271869988390125477118127826844126550888810921044077469218717223156273899363097102007597401869409912668935282075891299384804653172837761939611966120031058623164245384788618252038463860247843299394960235219709282548061157558768404401914992918196621465679758774725151671947311688325711927971912771851572340363622572419097024381842504450075860665031485318490288465195411289694164413342294328309360696427500490739608038704190810833423667126389664463623726797620336358680616644979714278591571684380525795843740101577847501027252840984489349853303694932136950728732935241108402135017541582770204738840702831841107053043578508272394339513872988545440721864718182015343456179133460652731631153553087968685633375863931634649037279598482337354391599714954367401533105490910346930061716444654697076825137136255393119188586571776174344382326932374901326162046182361260515313369975294770426988621659357296787320653162238617312083285123479900174651610877053951208606197257950117726542570386211438669002104425933226208224709287744444839390585724921626850332111938221843997741949124987874249154528247520851279474293091041727272832819067075027448781105125987088631094490944359386739755466383959955100056812560688939440936427250562642492989240750537008578277147073893254952028219917695853086963800080199993540778383786419658046836422670930517781601192309050788297694860218099022411212215641318548725561379551191236311993573119230389131624397562984956145202965576507556732849449715219244625701289036409895432466720659548247374809379508165983254622600741147125740674354120642040238735218584797398243232324540321975755205415569837928432678292425532491497357537600436133589372631901482160036129766695849974421270539121912237521432603496025923464681265693274475890279550474554751967248387773204068482379402577462220280189872863577340428272275754074090510794891353133064058028130689637569983258637781490125647966922974620541481650673254661069041852665925198905925425384455448366509807788192679146549307632960385905586160700828618726237098545233113383511523440514518767304418851335056306397892904887272540797336039314089133402391237382607171563117967501584847339299538903097667325646611971033414267096253384981158250559423911613243281751793747482668784465332882774381763296419820996175229795054065591196838511901344074606874241789710364732624385624050910422964305206434948159144390805148491557686607716347299294621958414603235250070029430484412073536130778439877968869241807273821005221867791491909486736011311577357718990897705466586964250779442620016473094942352663341834328756341168476167411488540922717496460037454113199888489129214237000919937328563219274223401021219111305930127430589867704376565376897726676133584343902263625919610969300613045672361150493649659707936621635058466218454503926582583094731793179127586171915512469881583831807737649096168999817921935738533110663426484588518794240695325098286968440133698957714125387659993919523938386233517373366231963624184480767095032490656516406320936868898205872034096792467181556731989299931806983894207732342305511421098911034360131439845969583833717089892936691118823728816825536333249251373646157474228443356517419594629121448293115342275359781293994730784296484163831402991835495548835783961590671265491905770486089319789039267519111376298786011505447192614358948602244638365882592296110018608570989265327065068686718286234113276461566653892471211413064065402271219012690048076706996927389983424874584697649221564056594573257631790434738068327820073476554543085910484070448523804501065680941369418762888501856131535202306694695527061660844605823849518804301157687217533002713740605632701840087636192456766634945500091429048368199427181642617979403300741230236959961910330255475666006032552175120178419082897375793136562866254584938366749090296283928178534803058488546328538187736907157670924274943962774442984095456767956202993697179450285994387663442667764390118379263057490714624858922041996193206626727982750523597653451049062329484279400068083896858027979229255449135773380080037585822090791318841916180187382825350225785653401114929768781286966120176614580324348906326029142795987898505398298399439649411985324551356869600627088654110616311898389652752475998789403686716461567922613243149469082332083291343444341004702867664661251390708025377409833650554418731460734534084356820534786892554605017054196382501871480614661150920644186653085155104145642019313460933590903215841785108175126957331859434931501308987325896610963759229923172419383696073361443181683874673176636862276778778800983892113811517482447671607873544121814870867500540892916577795360000237523625022446871181360263528974025071932667954844264583185895536587199512027507925252511375401592494781716280791533484359964547331697466439425908512651519466482313682471319263063867064967617243462150763357009562494437762336635130202579067095924219147464116364465688523816656195563065320215812919618355007717589625949021340500297996864956426220146726028040636843709961872641671115998004098866226503221461067302349115524908517316449947627298852496764288783778800599356563214119691876308643641731448818602592093149739434359395320635619061532544371088573426926691617383727025841697481208946066411608293782260216434424444848471922846348538730843405201025675393356772021985592523489373918654518371036576923652535288705383276822224932367373823662407151653108963476158213080923267810828629986627774993995725824256573313200933064498122726515742948480072337905003289109213678190456938589113609367912519081768997945643174004591650020480335069542318368129767945162153537213011834537126049081505397885095438248785200557759625788358860063595395774620858590320988275368812372859200027221717827701929217709406054505663063485210688948690283591082234525011319864901531778578083201807105399013305029906525446003145770541262170362679996526973153950263839453258036069373792726520758619237737594066576856152351055534074894857860458916587514382923961761964699827426473874326947625130982431568950068770486465024415096484089770423797995088998310523294666281856312908975377088098492681292498606468231355052541519078077231692592311281477253860201998445241405771505422176119224221301672503050873960257372595497027471577984103941790681242822350671331422523884149405371291543489443647001810132997306757433874210890201223580440755708558472212769607292672683405775148273548503562197270966194165741401298726922484261544860138919624887957209329443679093759562632786519617552932856654004684173124365523161855612565345841212744607996416915965374737958246320047444698299585661852915165125082961559857846501992545585591684615614477422054233761257930929147500936245135575062465896512860778090342223072763372538474461310345071692725434457086947579367569996297746308058295159882902576714422949072012725672945381808932984255894529482790574007435843145375932725124750094401156120180697027604297050253857503967043659814362142272802922645984559117314205356488069848148691086824974392948796280926922968132202136172249344325020193048810485845453746403408911177448776332634352690479963920900124667003858538847170081619239928764131446345945261458019016171292833664202824927203568589735949845091065006159059371253276832934959583237472917913871498215359770086129804513392326776255455807744042154778294803482564950607860774843603394832764884977450013565083788879293648223824033670955139141437290991225897645837216410608752919451754405200817269421268936139376901163442111079884416289411748816845445053364153955842065349700798236288222124144095378518943248425563382902456463308319617687088676139667311281413519585135565180835367717806031878358628899508483590539171507313154786193514476131005227528529980018373665686106622658472088036813939409162268274977243724901280235014237708334558256243503476996928950991845496275552320441346731979283273325362751739205384978708267543691421062881533177061672741969401623800368609424707230567499698309209010455901857924341311877944243184276445508808824155607294217616444530387659662386874579413390785786604348747974600497359920556332273239491178059914955687912849879702802052009255873559624422517782123826428747853805229161029278729632767067346524875168992641584965160733943971951141808827388762758302394823483835000767473323879216646276476116580531754592908468180395824466423295207281679103214615366494226060610264921127018934063119623348661516704935284085680100397047720531346721042642593234891764060267510882054012858303282587354220390707823845763944015251140014071909078593510182296528178017608049067154992419706370929035921592046764288826774750635726850306703890411414147525852270653120959081850394743777589305670777894532426616392999599065255282145695013830523088876111020710323231952403528734859880850942866846816921390549266984540654845861214031701850197572597052944805773686884857749393209850726151188221069866786514369640533301755259302850083816150770009587472667131540539676658859460538080319092460321079177932362464303671516215258880640300005641451727860894560931149880244951358040470277189033327659664592713642935508892336504025076668822817000388388227959490326553818685535183511372431243751914348258028868995358864965461358600049692092636355551700001441350860051457969835959617386416122757411863882530526438791587938417849320014242021971403298358753921957074836356203643956497934796054246326353989921900555712253870085258419197518140646689018971172431401638682093291387642778934721737944188204381004771974281884804563982966481446990850122931116119458247507437766597278636420507378487386592992477807530638928436406731418962260760010467111778675784897155848475798397957002171700165886803413202129841775900323418965291252619529616009850420591370223081003886602186980967051091836696278783639017179352837816887186777108235873070624289491247427440402050791614136840943092570997647513490168007299241140185443183695134091694152520412084721831611284348747691967772076696384392685653839947001492324635024897005398586124470579252932173485497959308413758079869800378931826435976577443431502475908124121568610597947618331645180309729099766380704241792158070865965491800782346484273440841912355272839474384779869129830313416265521955419836787786001026627183218841256099223523269665393993812158578540269626896689929879823919730711274512231650122327760493096428661191313851217381076758450475576143733381852638468116811460548280277628712271095506826092589092676753835696101441075727234977397751679060742962246083474415089268408769432733738425640448551612663291420427248908678559269823346126278388831596474746629154624336543575414256107875174751460848542466124275836613676079832857293574639646137383133276547704250997487632578458870942013964069406061275808576563837675360671746604693952211315330003382377594916472160723615857383552891403455713882499878170732778215656398131779256980735700870616749994397324112821201709036462290382141639438093937475606906002950321468526267435731912688648303693101698392647555041556016631842950664165954194397901478201181555764254582295880455305196354292672903770342170281718223898622415958098380551647950324369625929721671933791218087857116624959454293036094068948553103891027729172705748515906158919539075098216717141286101797229393138959681832255887711524626653817754844482648349831104238953843063472058801796212390126564352560090501798371114057245413607541763026873338962038215881680164773541560374988383401852126726737860930022539220512590675527487736548803558606738988226694089470900605521865169053071998122012961107624259694502744654844377227007656085885415137121739537424775307114563870224535757447262608768056487435723162782272487924467455487027681934274234463128567134076883132177173680568318445106893753301901921640246458127683232396584617155866898951215197461576774801897965607269327696186007502383304241001520950177549032464806642253974264632662268283395780747085133311692758205416628167378951968741817020723202809891386663484425819413116057155795811055867394976855884757668946196940976331631136058124248307069204981778329117969981072482216431572070060376908406797672358394471866069967800814524156533635993531943377985798705801379935537650788881598558626630333199704451547707423386453129994828186557064211654917022254315899312573553598724145014618546039556273665047050799763757062976399915432221524926678980442673419061028868003297043311491966848804453187648591861550341349992201868200081567238306854034165235565413135883883060214032166787428472692372128197796246035905192675295608089527791515773463697741836019282063579849049879451853237245656870759708165232753671465948888810764545160557900812459805711526573851507561003647854318067038762171292873691591298950342546801317208760425958161659317932532312430975184376633006455280653019373858274311794549141423659942516338591348429412603265296251191350921009330196422061635491131467122047890181131921070201586874307116364606334794017265886683095526864586711133540355413677278391303328480982589706422873747385140869146644528155868624699799933113993189278387021601550130851126150421966899422544825718884826065302589303831431616585211603487450056838157444791237069638147066408552061051701128344643691463876352841109821620650188724778624193357130009316934978755590419092153441875406784823679562518719649499658645407514828639844674456560369770907783376195653107363448687879612464504301003044957900267780243426904912925620468315135551109061527376169062983156179765867637522375349574348201975581179243862364345745487035344966501942679282945630740539516099841834215794229903171118416309467424521651116374081973863185715704212986766729567102157045386162079931068251932734307052191558657506691579356195922727741206644086286312478220053636905229670120030439387911378076382820742408974346744160291887542526074188558113297272247711256993874448594900911422501090779349360307511004255973130292490730191771820085929645941030783077487340083690641748998296885635660352721777091838050544837573880953524155243509499964108616002352298360275362279749613624739210775267392788792289431382420890401490551492562759940405616426419260889492709348644730389490447530601768293224070988449991817682880639654108691074224084610413140157904620468586340170493906948118642123730751873416657470514670098363748189309119254395296687293628895740678509569636417115614577856784254347110672190171911289479187812929726630141825872215327210299710541535484220727828566516757845329155998217245752058553913134263213501358724388399301025195356290962069980227395025980094601278687979253888178937399341434689655367572072993271159181362471575628556225355232592991321051618661603012022159302449537503580933068379222125749233740751549607485379825662909079405903864814224072960878966291570870820572530777460629082834492774855354740961773315715462405700031266582209798966911930088318176247679754757790182234800140466858135618877388756455951444270782765303011653772475155897578912007713587376949701552023316808658797560123703658720773709504821851300151651820530897271335080989266615179380430347762221181082292627045884071803408694765844717167228306089761574967582458017195437744452236123261527752246504995049358565910541519793196823524302452643225845715792795031536119611704166210800648803521027157622677176034911498448959577848270050518108715925780420109684447689695533697705642667879734972594443879672929615347202940407867622278326048196196309807010259290101382355611121219824780762037260613280818823315860216260335858488276330441419876010175130057182139074034757615349385543603959357625339328835694784329470417934091282728464624242450005605801726655967837246047065417256118529822335705879361758509927752235583823875049211894439559793429067331707975184438562745624875220202998716226518999712992960533876228894541550315754152319811662241785729338347222758339021887370413908837962543096914139086889413497726051408100578511285867527603719850650095112104192020666207189035517078887917122352475747972180567962050328132811003903490477041787063877428842937069492452205757269155127015831693026966866498321699873894815172309658249440612257413960383433194121304209833475429480965068811997656221871845925620240475756420372256005818629261000423194033805427666046604260054700631171806200008758104518939968396754555024281314250235056374593228521061034085576746355576857940870149390356841655700138539775483750999253988853919788318195154994022604507335978518369038367256991218277430260700131910691991959355456127783555247569275988380578793827646646919243769879054975828068590169696482615605252816815499164392421738266874860499115015957384532812764542539918924699129295866173466688125808453176499165169192266132187136879638412407769477353363150861698937082158887819605074977114882597035283249027388737690177827665688193244680867890538713921516958153315888424505043988031044333437048627322812073467278568375503523424113948190861024392302763551047022440774757023557426561503061087511731936532784134092864218970902959292076676883242055915690600257244019944754085566209345649262221451233002499829282882836860109552159373118922625205285792281523749262968700938852618353748267838182894115839694259271967112265779850264747664420324185211461881547270954709986332361079087251088738246417127821556257999987854652165406044784253698057877986953981471219966817716795448528561148422735851699538218206811459560348695992086805517287113315726686868823478683837418688372962410477368451443512278582958233121924596810459419543251129909403029909402765461835390395005088916656742861753083289134633047566240473277899974485247570423097579989876123677029721124191451407878280244861581022384767041718485870716702999293924571109168931983113352602062108921524180977585162556207695010387511818863124646556158553969733644098151413555417520064944382618084302653247011168139672610968749584940288986651241932073448724863982427090832806755107978687903015164784235296481705084074562377067430879806996128140175251021132190242927913826145158728570559708866657114736894620929644132445325718651925705610627910805692276090013586513424668462886392476340631740460977099521692977805502957727752135126998715262049080870348351342449689244512962394105504744383214217875269365502802337005735781730679545721008482821905228544110405527441291515699318633502296483885232250753714876876420790667407530066268283033300987011096132445794563434985676215250308086366872953949091957084785953982118724959613356927593626827167818926805471729777594993192043526488824285641954443235772209608497518548378476674089110384280316454418397772883108244705866842663755048653323317637238736817998068626913365629998786008185716269271619528671972288510279538930132445226914873410204442738422468279905877769744438113605651057330688484843647084630205586385472468192019508090758051268402967664417874385237235204210962864450575845259131107032177599373594807618107824715626991142786945585265113027909369984586583108844066106864893633243901648862157510734392380185467932052411476799209809601289361683340333898576348224435827308530862568089675721644353133374844639175331730958725390962090291245876577570172224827198222554578151682541199336410164462693168534473573292937178242079877169311386897204834993122432022377761499084575626134889980256351330281941811517894428541292726202246156970392285980345940337675002676535789631727013874913705252673499092907208127698374324306699081603624266665830377510038737400551221514203831866563808033463067307940734954630155100074956209719917681828201176112670428378752387952750296898355652799981987634287690366387700610597285121276116300243733550333740062026242714696594437405996978180891337701143896622396471205566773956809013133007095244517545586373964167952895477467265887973135984225267238125818634702322910461589721217165612430764830372740961481803175370249217964879810798698571455830381301392662362075059726580514920057655414430694228751082100381171304688960783189166620875916044463248221511916881596890868975065378074953797370963401299628697934619488631889719858524311880360493022839317957133450913450294393867633068332441694331753155077819856524880841226989099720737062046666113736510315182481702549986890603210213207795976181173273329358083615393275400447564624823977405248842839027846598739197680447094533844765577418995546778925576634059950202753852792889265121326236390491354014209660630151604679844093967843071880437316187760265896852026993791939505810703644402523633011616153162845449312129761487537893052212332598464012815087606386133229906422373473555386585718724730036602337795072753398129373897036467926201034617062928816402000574164074984277003932402456600259436272907856556778359990853953251976649540219402876119982932940839469025911807849227681606374970278021056489518461476991890695243880100569919284023598122386964591905580309482649705268669976106612150456392715057224637017572655787043356958773405398436616249417461207879912013103247459605710211353394379826126458119397938485313436720896129396116161009336713028640592809671461314684610839587750138468066073461631357314620170936409025971028965622725411290413388552163741658332308054718682694549184177060787636299958362106666065536747574915896329756421549917799313605587356624426699576256079315364773077994058146663355553157951678308332535507930658893847421247865487403012023654328992648806158692034266328127884995121859392863019583373358084700284240936511238847965594763744035300130245229688112367103288286554664908327805733545702330003021554225542573453918252696582691657169461504139912878264152916726866774527963243710955841051311773314628321238178126366720599929171536581287872545040961313215454963445544919692900228958483206953999711904719789740758045592936788479093036988671315261820544121421512559876090187605303864731334790066128958943204115082011952225749782402778266209266318251076326734886082532510347370952423355083569548632560325617074934931697959148581052458971823951411635534895391196402875588257673132539748354427441255776028768937890813176051284195394279242953342411491312862738973074172207162535803456975022579038137637594134978932291709565453437211956488854305972883798846061945288727817372696022744699394485122605648582680302599257161113468630643583871728636997143703874719646378257911996314242834021998046739569715261124282766458148222991223107342778725801614435603820299227465894625193126567656161521660501762517755370614506793541153030232936202085228222462739618181921058374586875845294436613935848272862481049711188762651735597470506455462900279738198834596491392256318620648117490795944118527425684370024725368786037798804528816703757517805325432541306954474176899125218275687589631506211039924424877801354839197343807633394142271067055893734216304594912344758406121930577455150130977924778895685027819480716990867039554172789297249214460676993622121875309694047435355202292663763796195253734087119199702828155330893122132208338494329753583909252998820510182279342353270237413762867757495617969903510726621920410714033173296902080237444763368981195417147352132862071826532216961877259563063086917208843112751065355890394481663275501769506824703671470128684577387362276576112632993175256956986698934099383083089325320974549969153586326109408486163941429504464162976997679364013792271424354709115835271443726332145878071481653717387532945652775114917600606407389796132670657408151176077672729272004769592376947013249853429242951772900964524719967730287723376601514596647199901557389742149227246526192881973317625691960330773088648817035323179825705528316572344781305153834955842092342324346110014774992656318272180033920587140392317176681848048229313162667135915610390653608385022539131319398604085347935714518371419420140126283980515202729059590380134165844771274965216269047970722663753457819703187296683300382985204282112011215211166898688215829363633061069515007634960657557428927123919435130241419209399595876531227441268874048200286650702208390650555447969028079248055987025714411612844953111251278135880637860740219008287581755830857521144450378006203079230605316217841794235358664431153299334092567490441929764179305609533750889519626474076045814186621327306050621245833898540826585312493873983402642692585610508486628435261777498421919884566854534817227403310483206024700113596455535860361555305341880131837929211142352992630647798740277129754635614104283999733152983656354129851847532732692250409309581462984154866366859068103778561369420537676493934061765924294357522031027388028100491287573237129654156434934224221750779914442548283502771523995477158653558867087851636384130391703186415423532859085437679524283774947701395876174012450897793666278792990112878497356369865965459493264421082949112711430928815824192441520610385837424805092852603432079062631964333481005985917899760921515986720220767675152440476086279427752868383284061999502245354908102547976130510495096141690898943168852148143778486381759887151360296875140022954621925020114290229705909407720108658669707613697822010316023051801735733517802236690497304025685705884815081739739112059126601065499872864249320507986073804647952524660554249162559326052771825608476995486937077692395914803133399311203136771837576982033688155464599478859232307313305909953545359689821791745234411037459275960920915105565154387972672541621899224443572428763380052092677165916414606592211013569114446814759643596123834425947793870281220286675926216967944958214062268743170291475897664274084695347150749249801787994843444578578110229986301609639892712991669566257887022250137748153888807970540611899204829454338791106837947105691792113460746384098414047978951376674434262101409217496274895347153872322891223155336930749316678199109226609054716986431989428895871560082826986470840253406700451420647013154654755020953647491792501006168319352382698451713149549366462888729542073642935328647177715273229568647945981483136543356244211795946872920391885678886768966133388166803886546232225100802482519001232585479951335016158154478231221956730456159572409739325126947945728566207381957019327514390824806539290606443210990852452495953057758453542563958566480650224038712959325386104601006132309962821033719898966448206827271288724684906331526512226499824825241136414341958532039771060768737470958894109184095456544443979485434033172597572405580650818560389640994147382078070488897046516601573372261918594444766523791288420160767191239481165800549366322500200735365543170415639668649354167251347867962202402713441865157670642974243212433761382733337711342612405827628947022971766829746278675475762358845444230388706819391727424065447693817408657107349736766077680913070572943599246126991105180173554722457246817592314604394057635513939871145775684457619574837773689180898218209122675873553398478530258907462395395349677298229452319060479031645587896827284897366439359675982594873228563536184717104930569175439445510743131524815555598639241193355259294725301166664368444353870912643644068146909549249932101481250980127514285122355542974130824122466852008741310449745947663429771321713786922389458569248647958771180767451848125611072318090279618470863257831471493518059463385670561097019434564024318173481839633546126904424138267637697264329102928137337632745026004087714823550423758689648223281580258297118317184321301690681816156747615071273352214217386214039934841010193361278474610605376785223754953914148764286156645491275740149950398225918917062469508288604493955978261270308239506914251953345080708152446677233135341343798178191019211853024269744011953449185203639109015956801138736510607285991725519780415308332211420946252862797037349702646147536645756951297553087214827507624623847543398084916070763649750458190877105258044100044391240334602299191606608661532462397554713812775131847028253261315221646910597935133780625615319278091394780808720114214620175124926182827666831183773214399266459869793891989100537661445054800918948681398844211682922968078201802028281118533107940948034759200116754718417363911298204496505824433926341889683042448338840863279247208381589777392359563200859973051734813315836280805398020118915664886236440058285860655969652682515100358080364807447583031470798713920885446141343381502838318066251505306413014319720835275316128194626911522931127709319084141569344624390434717311164858848147129191214961677661948567253250584739803135721948409809999348503174296120464031928997933403078888159296857829150046479489206970356261812897887241444822329560028968162056424358881763535682089971321941154991547186349279069116950544556171918503911746859033949294120033664819406821741447852576994372004369000861037420996735364236235724840631935435201310785544125821901698119035668556687616681638139245715434585807589047934802154186894381747808994494143263107352215440630152182512863277744441197030885406350149490291796950724392411345901177441787961974191730695244806096445041025121000821017535126239504542129847446652266353593273598295620603893174275815696762890974104883642322249705437292370972409113308830914435551705228926386363445171879232161597594889371792755035727051044092728828393719277147335435015104963675656946022942846747895169421747201788073190165915513584298050263523976077585827595835234943880660876963253800621980729926291139549262203274932052599874225441883716049457563314029247992362320862306917955335801922638566790496293050596522013938077141064438343765511879399019343223893621267596120070948523579796864553761971976256991854855655097827919619847496511497532418430820092397490757051050851240449445012635268217500605498959030252258657696293233678714815096778676337482949007573254630544141184110344831282477464980744424670113248217097870729775799653366372663054825901103643823441680022429917332671927354524418471896144029078299321816840220755740516268461588849220654556892823461971998821308693591317394489936641368913695158366349947250579302549181389981452481552416908688043971849840779688698196828802826469858874077967622060948953078841025170326348110485822016583289439855892412122184940973858995110969925204654337789453303716604449287693182593696138193424862442641802710539071037809967165148051081517244749349694986611346654125813248614332940430099843678161659744962010238239772683554426386786628682928852152310076413825294453228569849894175324643210878778041893193298233694665473955055785359890779348145520886688254299992327242560795968910896055069445086959392187718759492708923028813259860320077459074176975221074179345621625935231130005245376102602229589807442649421896950478522255760313664080941610170280904824053010966333091681995249136045055229738732677108810535476881862109521442436093589130832363465713639643410917961593743334050788980609816303468739681965386750975143618604443367324553595434653168223955178463921360107642690275614301670399181540464548388072985284808988156212655610540922814656775184060993926106405276637310952751286181354226427716712126159731810733751162074889106438021355707252070284511809154346325153522358226585674130832587988461292940309251645934294528290521944071497406857332624691857042406027493236214180686921889746696892087870999348887848041676203627048111172627936460806917560283849207032251990728358198182884244934818574316498683190135866563581912310449530923474118422032992937293929943473767498888566209514324899403097055749650166663748634197753974402303765921240645487404074467050489824561349035945573374722314616969916839433018419067653232851763835473398528757442760271146022579904619674157062036650109644092447086800167020445005886135682985865589506936781890482287582610307950117264854822491744035013302092768857605754362081336155547169170517316602747812150882448484903143845549189239309717615484863685529223926134902930102652459835192162179677918563887961202651960813168133166134276324721739061704624395785955500471235012558797491370527497301839045805981710184900400957180393585773672309114779338119387438940866714189077956909042017078994100116441807491844105025259996520368227061251282569261400500002619284231235929376146848136436641905609781598865565732492255310789614586560311074123209895609815004493486073549996526336482825251341004817845405667744943459262433119046178912419035577581737930541719254946018377936152498794171639216962310594153132319613432150444442498306366670633092684591634188717704128901764929919807252049407478068300964003672201183539920635360498465716531510063886380293505107923383254598435121625401043981725609515109862593247471105881876285759285551118316575279225588644775896871583049727277865577685976883475175045721520266509915080057749534830553385779388666122699776663901488604736150075738784988882992174482035314354326196719182880892362714399137028530973743078881618974936682136010526972234633169013275416865748025625737300796887193369007471204490014009168201266040500991551433047935748208769348289931415358674551645578301785227970810234619716830550547080949807785128324114214275006556090843210423964429342661627732829673522616677405606022632829666347494938931046204308318636309537026939762125852865836031702547533460457269041676440144771435461394853572219446559292576960377273555593824522780885951546649857583475487230904574028300837583666428350588988408334844182667310090493137365924161514133148595493733554793260160649908295569346844269738678667283751964087282734918534408339114792742270430304058464846601677938813996754552549901722413451325257762705501906451162401354389566117291693278270234402210116492324505123649218030215235784956115963461492645243661622851241139759134226762872076508625534241155408892291117623272843816691612241736068017820162212560811708130156054007680139373032400574455698772672333742221763246296481667050798700710052131268398505159641976493357416762575707736385434380081412261076726768936342359369541983881806629529873094248398563701983415743365948287542031500023903285494094661576196776598411221179876807365781666955181708082767983029904756067652181659902850456582102713172434820177193019625376387570660482030668293938588741441623430238873881885073411014091814416062758867314946481092730540533281911639163037444241234291498570147907332857085144464915959718565411517753895623345533462446547039632626089895398498086669630935252448646852573932454205566219595839070883310372615785649056510791168899504891456144017612748573762421187921095993285044119744748061935264110474535229665048828664690625746630565288841364325726931016030272284408668987293732723403277287534129676821142995663584883140728216490387755984648755412895252767812021062178348379929729799327404197818289380565698403665183359337936610016650214385124757876129031790199280016538064301767662408889103425597770578770798191787919821394374865972358243111723485749577853694205419984463394053171157962897615230034831775953228097502947704258425831111820873438722262426577190534400020716433045668956530120012267241063019154189613227782600696166676876988425574008796129438502723309946023764243248593895361988190473267554170518095118282837917348563572014325959970507631964061511566897313395316711650173306554068470513374348613871423406877402090186635049376508493703989643295834970107762445273623883476845965053676604382339189852958418722364007382330743013233093447282658970019286273435407973461281595528881075988231286084264517638318911427271190378791615279177113311210224635648732892672489206949107558292784606003435774246712332211529962507554591527260112924379872653234627338037591531506355374257914302456186580355748421107395652593763982759915119874726584672141483123810721253830590019975137330139294382302198637745808978534990268525965003020473044390650862026568373651808106065435860506031582679559144111289717172737869341811167417880394957827082209282774459599680503026542810624289986638107777255488777330104308825367128937320372514546761672049063887564374364530261908620776491445596119631775558044360994899210961338290266179857224899403335561629126225849010228202249628358035660505395140924010339298839862320567856831310245060122197338634546528941711062888246984836130823395991403440317189111215773482906692531760423164193142012875392445474023238746600883498040111782760413860706503288154683384780838027949397331729278174338727091032263867094336517466891622074473583682075053206699659837725688250521142722966204681475283150195990331543490413708735844783636031192988250518880489469287467426391668335740524641505091223774188047062413332371418799477003718979844360966853858111389111273433607331042557130236778028538089200597749982297140137778606250798827356749631681680872933076004833829363201748970315118287298493942878578837418771940167275253049689902108967534800112499207356622684117606671844278855217386044185752191473769068102809955922247827371830302324507728690254678477717948559196310618633928953576919614579552044259615445972348127177725365924360491508270845037573992491413087150527941753977971923645809832729861567023051331702782561696406463936598799746427048404552099318826690729358734557523967876939099254628235316627138563168021222640950171273680271768614934809045557195533140292842734855372558701880375419656843624402962063681234824900567994458666794408154624956118482535514641094595962191727062875301267574424091599062861692694741416129921873666718742156666434529691140611070089996624589766755342745290636586062682481485637319465348093650162383127703612465446606898035320297952724696697262005393055910774160624718987721456803125378774187861774687705649695899210277476127762048407371818757452489162980199299032155769816338864926162364234526288735335234484401582924442430519240106240069993319174084873359335099810799980576353949925229377415226963371589550942025915924668991450713235118808754696947705511772675548058536821238877427429984472087935347623836022055790773186492424712785376178296321330167974838652720550525669813055722402345617586908039894990188843258206376083797441460051312556760638191664919689305236994357020561592337146725269366797611162048953200304750297568319151711295660790581160296104634108081062325865087479811398855986568289543607115011235216374760457066143380680057569207553832388261695966959038869655846051701877487202871036010682459157361731379840955866753742612041772327009894271059047409759349325564658739309036630023039458156286210755623230069824000615924467534219913835466609970643339318012688811811083246916587587936329755448546554945926785764691002186294019257656459710446146486436738223326709674533644893905491882633366030466841786735507748429146084320593294295887224734392305354546179097651276798368969500126555724375448941231851003408070837409627940657519705033150187875425717458215382962839426069874685217471692911744647326038286940330570068311021775555968573807166869541795889278058160264617902341072618677065269717570631492571331284630919682618458182924209722978988288770328024952427995447228916377614483388411801224651139888162722353664609788091772321244267641177020954076224548939215514590315448517876951419781315007934634402431358767511757175387079216219704689253252426157925632392153259921624226978166091751883334535415393662939223169386764594060512468347954034012092804934767222736565750772000097798948940373200417504300676037617640868269841604543245315001857227324347793851710157830976557452739907548031051715673112863186564381191885584458423949762699912926475713613389199774892728526495034654462146797674494896954563414989973076779751782535920177696391911403050603214439796852388357575210637413593156047784723711093237126168915711144661381755189093739566523102464386456771631539536519693913728747182734246213407940914292326239500687352413431621129284791578592310650269840067836753313641022286817354386586989352025954440363440870054595024159060066970482835691795616026823890222255576623395714470004638870009683978946165077599977626537985972491897504711483889716815722128751159242532993781618051196502162452108445127124511346188626943589174327782671973867565943397638501417209022393465886236449820619174036368603001790460111706946332869695087410064270592506303830979524825192228140481669241034773433153743452322811082241496125817651937555498939957806747136154362970956283075247657176040819501839900085604998500346719127628457525175654448385263397779200592580286906122785414820731115663633868084834537646510412941114484468167534310449120851956986754001685495526634177695374174616382414343020811697160616522735970247813487411173370325710081023569083352871367432554905728131596297215359027068407614826393130351891245508841457799878590016845006304926348541336905193306633574651636962480836250098683161827730302683760339144380802838458275202297980507671785225466691001844106330825068089128459742063157967681875171407373538282968455831276504462164276986566453714604541219616786061642481960191198202593963456557505693568688323853125098595022393072431614073957419591818050137989857211000472285180321984823269720226026083372821984973887845274588252698335430682458613322867085731864457916196310676148743296437987478443274293986758422464244035012593897258987575265173837273178566824624129554114827844376889129028502749383398713592158640700421921755839716861436558080570499865499568428439371857764514169952646801793215233929356393362481133048003227301920369131673479964144368399198092681038561518526610782063492527911621230588390308680630358742748705528295802520782642281422699271909114030243099880931735534378355281257977703502653934802399534599902602162340359061499158699589883206364357837072743018547281699044232225452699583754024114078787452673351554902953161896600989047001967652516024891071369485091048794088600517821276983434622934283951405432119812739473111935577784792192705333168369858732999666729470863168862584825611685895868266582131756669948460900189244324486691788185991559288925398700861002292950038100862863148580406284814292883997993690447885799739669615814495641766114539546293077128238105304250087250555782898988991899496835156844559957107819808271673649516844800760073501841778806660067582066692268767491739097986637494568818055994333994359233958538567198050147029177704524309173204391642894264052663294106160657498090196800066427792460657141567847907203116311593618922913183979310461894431298404850413854760925899307314108432291768150321742707987430842843799727756967714599675299098518813344163430608674461335967769164000102026288681860153641007452641796954765044094231574434333695347004283862658261468651612830300511867516763228762099636865035759327695081095410514006294137583249667506680852544114244188776191931914089042814747926106209941159174091004207567327843887091382385388652570997228898662303489999418352941089513900934376908516951469764680298599889628788842570396252507525977168452466819378248790465953980206041692899918408571699604794256721743538980948243759808520321210293134207014315124483348905838942395193932911784690460911158017300950485433503172895311367813077761324071090526245772395081164839183497512796985140663587239310534776839026903751744128747486580495354679095097414841533410979288352816104561834096010645411424527746686216241799025391709455738617258358343280577168283447582486905379772379184370502015473445634661058954741112500851576827533671914038860176224112561706103611061236761484467911216281917643815538702339960412290079039726311792079259238789311321616363917316880372574771641967896760671995059476371173234831413161410702733024695677097985903951025492504094604524422832551651274530912364667059883656387798277652801396584614521548895481922152957729434059618058289835952027389278622097099179446502552392989425829497242916494369072889629123767221385239316443955440945460132869566029925358269737845217036688686994215842923085646581564660020334076880862347737717785215192686648456371159474549948260125869822010257876335172335119138035633507089059728856123772639849527478122765423696949753145956158319213204915496459023152217726940883001364620815640213845865057206582669647130020847757356499605485368909119942826129058452683379438688951401458832359356178056285584071377086887800217129714189881979350028057830409633199975200501814134459959197704370466380108861434477823093985542889446492728267092072359108225928235598751635895966438593009357326142063534319471058967320011474516964631449488393759382861760098914060935730221321980051626221168920057346603453586351804487889033924728957749458548216369581001388302848091928442651040959764835411700799195331991352377287810076719458391231287267058245473848414691992949166928429986996914400647216149464010436758954480965067761991133894545008264296633418227318359932670401157822075161972370548973007996898510989478559456128234162516944463509957873518560598954567021797657306752928005307026582608918732707654086271220396873008081899706228702781576342876130655433480982138419828336077866629005620251461570040391876633198936608077233982691221875882340848052542821580885624378789094529249390065519931775579234142464990493781874619512169147161035691408722696913663777295561630309415126848709697234462731130954711184786095241316604730751007960307670674424083578414293126595902023454809334859642885674340431434301996097391558476753680399949191354541554851652756550588481128037045104687225674730639688565192065601369464769450142612826656963383259724898602252251513546368528196452602779290316977292109113177095121407831907330758284227091607467790372257622696901617447007834795926302223765740454008949027096883304264601342698015623425491166360738726967898595872690162707718333848346130803054675419255977566453137947916899122345292285026614176936899054646879101263422056676662235025253112449137980897338024089729431116346729424811006932535058050354293414923156024204271816641832217648981997976008612651207735305537632745682300839889348426795194066469257036429135469143815936900673526823663096924931090478602082285631913663802525728494612819750776212510430904191100932659549975610575615231701483383120717376358053578142292282801921511405279663420625847420056097654244349205222224609350867263472504928264559826360192226537184031233487518777626464814698901752595754427838631385455922314069668508334834706014586435711280283708133382351484541214436331563349324183692075999769036989052974959296087858366696824908042148948292008091845433039598046447362140026524757292539859152684364061626507937741387678116800094689701449951337722421848746280365699276427112086071096207688302794905887651919149898693942238317972756652292668070754479851433262718413424218203347621524688646245838281170266038023399035061960305181484119213817489987951577854539814284295680937782744724066593754891042893114465696134889412464240629184740295434442060907782978469073547706465012383032360363506278964191878214365167974993680596130265513860967458220644225166574938205598403938667772107689124354930777718469010316305296055759452914763530080121592966696246232193084925576485353553542782845143769575586241332288231807376804800460851114393365442767167757869557163143140718407898437476788932975006691988206547732209955898511817720836294752497631933011865518897923635282718382386373774603966514853281517663106993870863252336249683667231424344855144840096429468816448761198702328851203116501827849194827025668645944907648737018558066494297969080329684217603688914473041884396891363075608172022791607135285952625297744384860592611157135046354817530561254990151172578707698692696696415516364987873366689381293732845571334757687616389908892171193115187480760912836628323982280477319255832661306083406140381748855416059482190483857028034514297850924319771563871489080457522821297256474287427713524151430497471814708921864547882049187609995011199228759346839947566683859761019259872473595113589721166616045580381487542341274061319859384007550127731243959374058567151087614925038073294827376558286382505049457394330411587583250836045575144994969259859341522545528405656609507829975899524412080552020460471050688420124028221859072187637502911864401373399784254117122613326286248325721671541170882477837719602347966199025522487980851366336724325833466053358624938141676641802804773105359095947306977637094718536751172289232273464362156357969021434508537405566760175260873488418232881084711851319159557349737169058245546365906685678182959466236179264275096980746456390900231830558258561982506828616592959359298083018924697655825303965467704313298175588099718190428380246711099625909807472656314517819653093025315975232200468988369297656565303527767337851218944589386294896058113600077883878584256317676003180269395263236457388405332433549912164788478767629224712576113085063206315574914649303784237370999793688481859142632080240617032799532681086399517858112871660766625082485280039398380386986753074684137849380011703000430237277524312609733668675492332746630098807861696350878532566012306918924751252491943934781015758559503050627902996144750860920358050114991519447206478482471459999601877961482969502629221516197755245993256971174992515933265285966883903303238166288076807424120175078725096979323211073678776994011596680678677764018009115011976870640092287465650457462866055173429352783009841261805924504625373113775409668121137393306993027412087761190350918241424791501315913777531099336146898899450281351920773792169443608241507540734281126053579500353572261640460115651005506885296160985918266082213591947322221571358351018084580660407293961123460523386421878049989576439556117800128035031747347261796089932928599285800838219302717168993325373604946467718946235343403640541193788550999464354678420600274546807124094841210996750046836265119345205464682216786993292271650340968145439106167146680905420498064358270385192327983839203518214963368271842793079935561126512903484782951524495600478803816765131087548963116899777294852004280878022587512070688873160720857887960258018762778474765925615431251679271813432653591950859771433624212639206837490451606463403800588325738501792772202519514906445413128418493037555714047026526305895953329592699594389056914146132035746827293254697380817313010191836199732368110721045938680490053313654617953626784622485584545632969419788315110764259417429391706423594997035982012195825954739463548297856109327232213014158285579438900555253605153527103432691275939387751380662361378632636508947679221049852134927718230779850898006389388257164256142268504473022410725838417832344535852769283591172102723175543838734332201244555830446040460615569184133676475717757604286205810825044042683576905653577185685563190411816107412314064666953298167647250095066874041678153846455266748748584669183548837894266217143193124766408527247932923491442542590667420308523383455727067158494969385344548816257082370132735247798135908224563613879121849622421910130642332200875053471968691864020344329560190672477770251376526411729138156819843557590643102142391387591585770079629402984252614794545693616319536790358530665123812647894615351092521710138407177787933592611707010422660747618267549594507193633915727906512692887144663965532604855594761484571823834131386789449387006529784766898768988932664327787762898298079305648808653786471255351380207403229036556499958671137820521567157508437630596246986644806344945784950008779707269260327603754034304864091256137099377510779172787595241208626846189371240146782301904627242968705600154379658814502707818574732023026952294597341741242449776910794431115867492748788769868207077521741822302597358155764973187948248040283222571779396650507112131029270112296089816243033127000229563455091768908733754073716331614998802317472966896000840956754147746146927492453615376937820237779656639351794117362141197571144723858246249890762726797460844487668929323638072988651516750773875255038987601674865570882537699608826883415828896602688715887916484740286581240632805014075369316465138145334477944050265071292511562556832609179916156362856429830625236148624588021699330303739031229948485076593409790232238797774065451734724110912612435325236401609436443762498677378197424295105285084472913755797432892037518470508760728240354267784960833702186916640476640442177879643810787670224742078400969015925024551294237349496259691041748625856282349328873532458649392208469407385183559837838923734990938950413820659007668119049101889657305121637215538287297482961776066335534576892416137690479937650770942611894787520800674326259025981676637024945173953508475550996933968978864268510417892724744510668239745327106342515173311768421738330049550660585946525374885792656530189516580453314908646880935401073319690044900000841742427334801165819287206676029458292281715656696663036321015663822998744524961260873915212495882716853870528404544195040869672266816175510262864870297884231874827029664734934397089559278045594424227504036720622617661706951910917621950273864497350049088078253005514506286299165033245534659303413257224607540371664063610779485023139288420735475706744666352984982279669735325500082818441919631883393859999231657699513716571605237953278021986732250803736039037153611411054411856270842193877827408987103769537488362979476202864248127630742740098801617753631450034497017431928006805968879799022755651240823508453028156819262540607382958015638151462922676081900934728710997982009342448546340447449442612991600205819305627689040317354827855698833551078428622908356134388597329254495291811981112967259091512707660638169226769958599026067305180448096377693355554007239024270475059172864345821955413647838772413844675075993813552584214799180427353574659171801825083604451158751539779958663493525013548417191799110744676170462243733258698496343085884547361623792594539152020836058086053915123888490274738953822971111227761877869320747825373581787529157089948581821295401443788575850592070748155217488891074475515276291543425346905296814536667661073744833502632177307422905531573743307905815169152978490703300647430896107664647522581468302898990894829319361187936384501051814729722104160713088411923141971743304181570137605450747476284034361162881150315454269632616820500224032232648767416673928282721482877807860490696694823659848531268519073857104133501238635694073087080711141507517131084202409994089992106869392325025196474756238865918187070089556938600867117363780487074137627006685441161692124666916973024413133504602920479122719430494298725712683778442149056089799792274244871305129919244264649205863827808585217700439205573613666314104636239737244137025858365089558311814956238966119167088119557584232310777990414831984641729131676525728287437671790973274767755233150667484504124595810199165220938682199123694310694485090703222751193875768939899325979525246230911875957710377926621421405162889868271808188866381521499783226924077961382126373525471147742171459534892352899845528914697410861492018538532775391113408005581466062941083824585658442022807672366416667770588788219919601324667771546907848468671243303972589838782357973268897661928230075131981520891459131880979681120607393216449246594906556454500409763270118025560162166928587449301168613572965337038642832852046746969696695841388600054698538693483942114875306938686424188193031605278616982592836794453108326899573073132144102776181364138145237209354320342203297973911470417278162089697917235448970430642451086622213824665119144259785014777211563157257644077526824600089912798176173993542226389080156384910697767748015803611861311984524301842722629338385862801648314736085988811920117682683859127037112031544603115483876801516098398979627837638189930716508983538446525262736245714852551206276099345346569144754051227074915947928008391883416115790309874731348905513005732836055748773154532833233061631155252187713817917420410340622494489880831482728573516000617212028386180845114724150074974326662010334635067266596045829688049363202577113967055301401380663020730421144313662498062803138245864921062718665060920047395158448627670072414551756072122977737879234146347422633554243679213824424347986984527239563236491236806525556210354435442903806540279725367378588407332925797679377936959691295305882105781528886047131499269449693568435637044307775253994631381792323753632987527311035992546002785937514436764066701527295661947609186603597344604819751986328939768595283371821269909082620670170824541260146061840124563390676208783890800187701121446769293250269905282321252633989623532423516597686544248071669225198732905486477742986873303011406727160398507604658672829234725187493677878998927467616878580160594589147974079130092174364393385362174452439289503066974400932767433433041676157149551653002870726153470778315094007955746827875137416050439037132065509739668552391784100399070109025786968587409909851011645738646274432460220557299144065014849870606189261594657194483368473821370545709700180662970163757873124361937410483200459776464441593102656715688700839135611786783802620402892067875432693688548780633846696009355591042313041306018002508298992493776767579444686036224538454360880888127503837669678759521317162410641182666331096462534244356516510272560962260964821739967467235095580214138429723562001535941510021610522998396363837728744832821104513189819639688088945005697325113407873724568504768934537466202198881811841827720249731999494759194470156119835985363439161032382107998706435974845874195119231029828230261472858070234656066414441955353486047842707422482034944459970498756645972407093507867214760429068503469400075765525385245321614921187595414092171058800423335504144785136685826821401577890518102031558138494962178102906737501726009125286757923589802692447286289925363882047491414084114362260689878501401381726092416336180403317510987727893030466831424774496507142806442043758047879921847622616153317240719750135714673184820950600216723085353582467505696495546387362590684490445736577480387273373976838834847329160928245294606040700685725520197740000008282875873217918149290985768189270317866464502841193051171669797727827494754454710998738138778163336692578252203195128107329863078028044099657680966421685466020892211455424332190020805093800302670581073869108180318369180399687965078912331757751642864591720341606164116792479511949039639394146796698481117110878936029492117869849835223298893047033766802539195784770471650115849012263045370939587989490294043066710592147994803215019847002928384846952613832435145064979888044092141869014160961401611852481340018431743608725105950759468898156122249872740313002811345993657598770760846041369489104667768811852309488860292042556786790215597838618217637100673145517993710816649935895387746198118060344991074171999005850831887788182650284735345649308362404117994712860977436519584360273940939907261116199614589056614489698611618567129505971869316219289127481776263831848331123932067670953020113280401073094177188211897464592850658943149785886554255563900089142538491927659619348825940258029183786666385719446282834983861246897389092685259515639096293724563665566050553446104484847064032667125677302592456709968013468196758430916776060500349454583572736786645242446689180674278001170897669227212082820244633130749902253538029747641320548066674817805750776254404220063391179461845843470624324572178885576440683693957303060073882539759486884223970278000593057201131983104189461195830164228438526985703589069420213976875070710614128648085302046145150902993355749208042129612147345005558465402549743561879626019459769613929826437346060915231433185214035387142124075528182390430807237946620710422202863799612813383419724474443832795845445894639090298335733591896222522293960929049981124562910190891414061047830001226475617068143991108672096606389728335177431526828284981413364937297865036415749127369515742314337674634653193907037509464878174149127294274451650182980553527915063286751674623272962985529613169644722413052422265449814683081035399401884088662588474611041081430808203538500787183964483465522861775796855844352596349607839587971308844461139868302334662786359711491120757229879609953638776964510530972724218638161984912875348147292199044119545053227820150781366419256838480273809792451571747455399336325065430839732463275369964654302089186671416049696059533754132491021509680325942405980995858930861533728088220946500505561625160209038077788652616881708915251060773968405538747849296760378256340242300283235368272444644751937454118317201157840301116621390621315523757640319423959590953610295141916456699338284154474860293655391052686517001294349443654393344901167527021533849349640102086052627310524941558575080677941631242722356444269413600433916895517582710565981268490977387914159653263015375446974053353109962500879446777583362833777793816252203842956808429983247489920750688054686015077407157099809040542713756118548252216161222211811928021783276749736524095905442184003877683020276043280577300170959528632615949315527088030886692966046262444264458678446366356727959114633161429203278879200859230035310136957925817922088241510609922830117702701054628031536608645250612128410794818128807043109589867544559879418359588329081208374629129678962397084314254844683688661569213781778998965859132463440444696118027900771597963235153211752600246017252496194403202635342739014722940134198168001449604146419400955570960837212526524253339137847130317377592446900210146689794121270448207801684231560236121200938675941531894998767713147846173866756614968987568835518149432322806131939175623549461038707248087494656962641704659025400666753116179085172332314636122798081746999257907744035979854883293989017887659927167498892821727462517151941177860162365959603977461519894421691809963761494644777218329824740460062206613519208581295090958456370954327320443960958074212066353190723468822393592846893721302607821010146380782363024734131394047600857779460616210895308506916929789705737210758475704042926636651697408998713803150880911318041552840323490255570052680139389374275296611828253929378929892495559801210363270444616273267829289838397802343399900768856414893168123881887837898529880850158464579608635787112834985836117011729546806492411903493167656343116143304066468196713366902841798127490560373804410533750579855764366940821726923005234140578345667626358985453669614924302743635532796001782130848955097818863020923700486711230456686593540432730171543387818257171139736402182500917829446554324325105801132043884919544343674389350764120644959162441850181764793063282396608446065021637443047947577077049002998440739968870355281646645675498093947044752667689121502870884973811321624461282893779136948872587560798289445130004810621099682262338616813882466026006530926838799348363617284497666718637419494834134365909401962538532291430968691027291235809089044634524294391691430786770644892546655609561889399117048842501076078293468727872080210189481420884570906234793160934096804648029753164504629152774855762167233284429133994417462974128431256301848538986608750898670125611547531224358869327872513236746073354965959080536659663515794454485379182156689746532748906468340717853677559815348729493555269790524478246107266180281523193880384111590219171387062763615072560148629722034134156598651782416980188188823692486198581673134923765221487101049605981931508986414200601591692761749297518987510841383793694635223249569781340965588000785740326510396818783946870497161060867549442712872352073989018483075119655446382802460044223167576407400073122627302207966516531157048001604806065085575818171264269902948700651822722287859475118083928558040066195910278745269862540792491254041820774707403729090482712232593765133855641741833650815499821337194506761494739621624399304706009055780912220643025718586423645461189144451880725271403919372443196725993064653237909035816289843526542785436320637125514930470821749481342255386118154691336449703096137063430895674375950929114908392239022512847045262311592149819206181008539807340871920718505052627971618985228651363644928726372877785445816341348992745732014758612994475807007609184838542805496193059466413474718125963807349412378530788571140377230288429105713820061689984489880663947336311856405325684632958681523738373039543000967757096776992107223654530466381852120681863234403475111434349355618350123220321667032446649281069674923574791279357710154366898267223655829531040517236571477303459225536907056093092615276695153638256065118259781246069168287427208070085068876822023601917218482607391274644200553694009653378094326127890343909926937326896297137576668659205172815687859655702257261988614731068145436492428947412698256844167119139957743976043112382247409498629546145846859262128195335228435313370399999923262252295489845820325324381364419683774979590760309184092061937228186213062801633132943126750105370407444518944292644353580560696987330331809992599240813992563009110315126395500501962194407113756800684847521181820046666461691045372392645347244769521127496271099978450133299918663613408539204283181659034169647940395184676932425412379677043888819014685640566411066485614745307790048881422150195115374958949465467924918335048042068951656389457030159017812846879643709476554237919439706424029476024252766078119747346259547490556523040124250072110210675036529939499960208495967187361160584722740461113537638843681860838949198625790292901881534434765349674559184916589497947862364011528291353270977051285627530850934188916861251223496775355281191365281960334830806297639817684655494377504770428317549542709822138849314155062063863815164995987795791262420626802907424629469730846193667909916219387341894862981560220109962823642550232210823521017248286463490009404695816428455571864491904968743408970280378955610615561063770544297950294388170814011107772939375084617176178247108210699857265087057052766290800116877849908398062605318726707128023307598688900550533992383611615936880102380913618520040217875071264240008733095160304459805533202057215113370663813495434900437043079409799314710290494131748163940023891134462102515391398152350416844626381856989201759275800633225630131828291983694386488844971646142070085316177651552926515089334768335474337532103080150043115514581676174594202895253438268153984754784687354600579069221206254821398909889221534657222670794464239499332646088909483000425434936319894724777831668717113782240122381047486249365042948688565037559162623351480741843350506670744666696652586883370203678670375930008693216330720402432238489079947002853946418501215675591281911868653859497963850163978126885437005239865452183211093806100299254529850623645315187728845562002661775023059740860797587014278586737805540539466465836918308676141515178975668745973672609584763342064367249819351352832262841315597779284914290140741633563211591540970840729265052072683859306485728209772120308914589120200444742881020734008590247707778726303714112959407455245736243280022382883376240257105018707657044066812418169570388632510321120365284963939815941832349979494111715394372133379230814468236962230132466254503275475756398359793324091312846768176066987081142820460717370118600414516715368959148751413724119097247399449388759990695528867351361111829473628787880941797992167030227091019236147165167137485179630491987446790032142950840137292404411080003207278621511115883139623937530682997196559668646038188607328662387230513127580264308831555689277387617223758852222793532650251427575381727259635602127449184670481004957345811655068614766718676950776447991876001682198119834817960376027920922084956618772848961555587202334056078065016715477723441961453380235595705472754673664223921442301970222134037021462328504140723710316555491088576489845628328524373181504058991122401409011586664346932229500301330611424112281600869746929296257164864829263300925589216170086956716525840946791027667029822573799950579558006570256823755447560163557777056858090603227568677778231680134964404946082805520948165094037460711237839458379482946050983888836946025046011210128971304424786957297420082482492619774855399245397702440395656271326622128855484121835375538353380575208962863389569675115355438359834176614293170728688157067790294794430044388637907033095231172222974803648797603953138586340952297854629162341924504317337386569879045337762657532838350052116065460583547044971049933507538684707418997811243929384742375006395535002943213433427415780734906399976172724657734899057356877712543489349213292651131657560589784465978308156101444046800761766484143372143476975684727206414530951479217573856025483360812062981905758665905617243542140320147965080856540639421542638559054559479284286780737166790922509071732179637665212505143086576812950703401234468540630818194265756050710437323510878877407724931939106033072100368946403639070785614884902355293096269031561496425334246123529352506705813171697915883169279602158701474671364110283222113533102867132041131585208558561373085546163245228960287570184197586203739226352815839433797316764730357986677614719355139820803110682947966377471488697761814014494261685695615990870037571950711829614451602201968207394074839593828656894303497014453595744509459209382733364929294202400078729403557023078352388837170551622098300462117030049004232608290790913781731157656729392448796358542557983540376176771923011072202258028408461018029363468098742245260904130561617688128581339733676971581989191413453760547628257081939226946744034477609242143003742900909554445335192152910773033383119786168249779774497271112635732780859366843175747171133406332128440205623334221272801303330977352715466001620621316541403398168515330625605384880177912287144252731962894880602561635277863311471846662654028109312951196399994942284791326990491979564710815371952177892777926033033097291402083586846091383611532144712116786720541409425101639819818539502709862464157774763311475178366768402860319690678180897645190033158339672543710819942271148842327479180675524814019168737549396194220760527373259392634146892548215482014057076931056622518544159336032207394433322596547032623855328681092300923200677483077622846068559086863520254915733806289971837503532645180376632040410369694419618310411891150646139770376113259458784927047046493246021243558246415220792052969631807790963196203335019742281684691231186030884956962880821914093318220878226308847152583340301196808099427486001862641796094078121271929647941946331466361303675668107946806224713669103341108793292161116576292657035870666925609990462448292640590050873543355350966751661098772756956847402989230969682907321654075962296688664233752613676535318307950367890284595788738063949529354503391810977698521184144003010082959043811885406526663253536505505773844308737930177410287520890643012668804184291208740628552881901256476466439242538777316363556273526961866166093299596262418495300199571913614630044395860029338532626126746887516377532294085174016974396513149201601718501407659218857752014348634006360982743536375056662048257092206897515384496865616825864375959270518094607242298956205922182686330956046701957912539047727789746492535541671607825345009055302175545755393563323208794179800935864788953798903875290850298494043445277894432714791303193411170497566604012664160736111099834821688625351397672898997315788365206076662845257365279643737775970349375679576154992624728512814326862951002689360667873535621277170328801394544448884161927168225262073461737444479869073848028588050450211947898837998790625516802051422166212935412333605450437840997606829614734184320771051355576836402226697023932574597957866110521673493930154231540373426817771101309628007256935818921106588204104684264229226828611215320526454329178542454111968253758441031192709317453711012110183082259697252491472669596996025673495774849060408481049282981208191859613001224770340559675750932230348265778496312434465773262536358875147515280956197303677791842917259899031911636508541228954224897397320909203462812379438770852433598805946628396387742965825649261831397858022278005347117342030693207359677094483720052377179257515166135315437374813950933123975363827571494589184184040410635302474517016307710805628945918022793249335272071694602223113678003043842098469566101801397767011605740273221118576429067260758471350472059861209824568468542472672490527773364200194449602553850650829341412104425083572323437761499575795601755749743750462947069632350315905828359310987679952157682962444241869297247893768313559255683427492769963200641401574396622483129936545392778549607571880361938764806575366065757896315019551009156305360949816176605783748901974244692645520047965124657049780164565847530814739524006167537086742034039218858269429074074100418364255775130497124046097500885108624543127631363071931110919189077196530612583157953582517598616303298764461194891430912190860829177965805991773266584266514800189091053982456728013117621981854847414260852835965943012567355575816729314236580951845237690002165434502132255418805616405405815620222061444949876721441247606442050265751495166847456607278044942106021249750990761698891960531523107567336911381355399903511024910499865724391704585352556176755367220152167909214993039983887168636235082863187735789898570814629557354471055764325292618170704940461070217239122054013241887777348174090659390299997998593956167314174381587522784857168385073275035092933905888671510036020918201616376890799541561022334268132518673697311252724129204836031603269426279205487571125045976416141592450590220552449551439830825294828053613819562608876689307810787477398146764308807181363942744923530085189878912261798951685959367390044063098240648608479011312726348524545675169929253251612978565854235872726811036353101596451264366518413232703934151753011218926415167553915359273963152265197204953134257079109724447831975279200864956537998557292846259806091455579540159739528551988845832796351428792600820035801413036155149325574251599271140188387947179980488541061026610979043083580386271212139930805170825025142689511020823421681120088796826830923117103814097107403176008446512350823708959781423973123044517275794357914197432337028918422623674463803197345065342504594403891968328103889466126604314234668837852456352010065475063855349165675149465290101368841688812084182925623674695731180569757036952246595592388695492840960596321269569250647026252297304157103783074644878163701585706732472316498174006608786481126109110544047389188340463312671541624861924782321672105763099092343017841763823412269455541846414487719468534081441097311095593995944713010462015081059909861124687355724228848778174317456987029208270768810847979167784655564148907743606819097185160909278390357261749532208840273547725715641445029911949526131358206188838005129315461088931612392860628731830780190549247173143334119032629069991851122877808463595448750690511748576793953967895620083130314633056085614456181743147334265884536088549906170889456099891113104477686651750444049406175287912313196233444964700525380339846966140360916466791449704521866173603427384583806418334170688778108432305771793393252305008216139440252979250668750020361773208330985438660119649865404930225294216291402679044127193459034891859963792687685835657810144600944209449522657488374047982015063701318928899706061976681109796714535371173271846874436311122980490836186367143572614245561277442941412128856455121123009359302306463607607457262329755464040676439438582664320570118532211743417134095219295970697042095976972278944333234168738587156072336396285051948664501597238561463954435769523706839411207312366294509486173067404976422401583567398780739810615603893074845662680380677915345432482668058417100484832047785690271355733699424570159683070447961399121624489511963723613826226522358077674172254934582435697921185259693609661664351763762232940165934534978460945397811602345260571558479140354676509440437456319187338518062974274832696290031524284381157904994901091260238946780109312361769505136852294737323411530550898314995601677083481654096035272955124347353437573805270173047509923603390614986113002778433618918682145260453065376477806414332845489155738081941930930322298315760974171608393002789684599136428867911376365139862949939548932756233163303457241834978864894952426601727615801043302561582608289037506870848807658529304658431923983442039917432988931876880472477199540917027599599396800854010051239216833461296940281921691454279462554212515355894725651224109054943285562561249680884575541957519980388959427558758932979634414217653266478046731241333343360211028750363245639184816643214154044191841072910607823235687143508858622546865243691901712662223729836688724264340346345570838850578446612144523023125495813905598712913023543417550267891394899335582602131048423515475883188264432768785307690763200665639202337482703678784808244760996791881211459181156390980909421139901695739196133648521514966899503447606577519452367745499885210247387458557606327154434085217807909382237418238472035399572763588667764058236582794253139932278833582629330011308668523141110964387750598547736792329349263812074910949055139071675679174850138774153710030394021418099581491109607833379376101888126049795342631823029409661744714326188276101664318845871102158191614420103335327294811960769978548923819766969086035141107886940200331299223399203090705856796387446081970261585509650750743127361043841235486180406372598042553530454146398644354980446177819024822400167529406656822303009178238915626025558615931800798346978438561307735474763959622374501118547059795732247985059303459069946158445494130276844353796169413278232218255553933052400275889978952699977799873165615853249413463249655028324380235213806168963526346048759085072883850174945492233376167717242873915441902876738554557319666027507913787496525729638631644203359681179329552647462657208855729395125294621759428464813196331956162506082270447393977996592254971406636546077418834765162006573716935746881392268784720793798446553656878601766168687720132281661630818138456984506222294528941973764617138452979109667630309261429839837538287696770377432291893810761556384352050843172341779204476309484498133924125760426427809574129461218015633604358312963555014824229270221481042493538068036579949083365469869930058030557420267098378381094020483610406515097610144944343781476189784289093121112737783260166372387476756478493898374699242545323350491227328317736912389133334042374728822681950343894494336451198512277751250508530124607487980591627353346678901305124474255884521135103656323678543842087497982162204498582737193672549963319607139706886396315966328072331395936916879195503036117949979087112394635353606132479222368072660614563873122160467063493328334692442993837161096399540661584817838539748712800079066543094744373998858869776502853869180231400026939186689707980508080513610910308395367933429085960712559855294628709009611197685138362705800872079384969734055404017450146252094989403576124723694302606042352633242372730166567956629404908590429945181021356926333549884564601140841165725740108683924598327805793779073421491304285713713344469063237812546649005380775504375203190391966930842697460018176724123712059838613875590271530246206903851318471029159991482834738149233729450723252526614363950718464932927316117306823452685871215514754285351242866512973342858609898908774699260593094790827123504857656354277391370962217552078473948695690292907249903224672503160333823910352913389459892780733511713157471763369972363385397283316216634531095046609462429661292631047861392936581253224599805572248328067275139576529150689622780855117952938354701780366157941014730809703857357206695069585933337605724977097248070171723538792954117933702183649497190057731037026382514632527979436660526704983589334447148312349280629864766549414657473075285881951489610584061546961484006631979595505933009382680152761180230417354560537971037026749919828320786797510723921324523344608013219333836490750227469959466645549751285193508635468223102828105524877158784328131565773000531708999100733871291980159099559621660204813093348166788535729801516420059254458020922397222658896279530435812572480574784853009209335721777574013887725190119086749785583646460424963979216401977456234674371322943385896367501757939300818511495940222022657720125779663068627931527443743457333774320729790832450361849132207883341773234416236959213348935879399806067447567350948085817046808818666567283737155361095084039316511977673845573833544936925850430994562176804469863024419010746174179136111238818086265448533755593240842176850517113375370663797673211473297010972868992739653123407570200425073983480481696177638985278809061866229081257733156226055896588603023694244345038709907099902183927305336606343814351920531117852663447165399722032669288479331568077254435243477250759472025353010737704431983506690900633038999189477822014446869717602512050105076683484831473613263998932208246644124023550206611782051577460975807064732482956963805489544441301294584608437254100407685265674414360406226417770018764879273561895108631815728963536266619354487304875022070283525609254561471771310102102014972747752851789034571972433554611092817754415217041728989873448986358552491932595286527908906014679317488323624610362622004615530691091134135135292318768223197899165408473743255605510458387929863946814382186029253594972658636259109771654253335844817077908653219414524756180729283129891599807967234705346122031114303569947670691941855670329498093841734740932566738067473762993745690069813225242815654130768031715573375905150099064158443474796064854452624267696166038345260999888289056332859632039768845074363169476110293272138060152450206400088971310095598288301851844783748119896199453557370965062895972862019662741410589318121531275345931377340690697831406845517311002046967982241604787281179033290784236100972970559085240537874441937944379119361121076816123007538855451681494494538326600362462692030776493305181938977909385572728735043929147258804937533314847589681522979984072089522138369159209647010786324148799714823231580982574937388197321563245197031856267382530335695970828154000190156633035635042830262008567931755991263524507644883103541822344336473654293236097479830269501544561038267511845142658785098593662918440056585635084122572212122452026497722980787605139811025891131031544631107594660348878875019176543845051969795064582278325221592991888178612364818789389914238564062899096011342766021412862806923577073475700923880212115261151863549760332942332729757950687504090677141534416612764120071116630834781266390887032477146722325396477840939757422765225409834702608199868898328270055786702665909501248261825891598623164410359012628924530235864701972476622169662347916499188698484335611419995508456129957966369349082355487469896063373508644362248973245240935161147965306179555990138679700877776717921528491280922606378811105158977312174621814607087335155660410074758687149597917849983748991046516859048897098091357346938085772829505336612193392453854861122271474869952682938268495232611026030562051973511920011159636794358855836807436728977446662906028272773006457112169362471075139792107314490169151663464715849349700598640720904505435338779359473129627186205311382865405426748392481096967717799370499150742012501510804889204448310718687945229010091884724511065962164419415547536202927574993853595251250764675995897269085669146390985619095967319585430672996303511593644461661766303717144068233991225907299765675811501670503515628570409163745347309519631929857576538199518917395311178263158619915569890487454664614871711438644885135493301338463448583423456317885155616936035090547214285927118008477791038451251321913946773627871905807896589678155803961255851933208278447258896461202715233634526803066324666892804564341533633823950310028799735032131041878743163660431103939800854014064888667999989048814120518955483241899697502982310222295774640401034255758036653929097738730121433273897306775648867300366549693118155457458078709760110128253230819453316377614518983868100642564498918542071025592105160866496731185979779757354073506656684549416405320575710396927104562197796254315507270242340042847286830180195033831798691747836984806991536405535166643198039768239391452178458611679430626719069552674254667421245283593476427050375053089523494817462293290343216645647353515920123279491126805942545659497064370300483559792237857588612515363371105093004169852322382956692811773385168311644865267829063062027400867601248005672720862355916988199515688731570975059662443742613525351354688343597031547489227940705364482921391352242154863967274717492851160727937924257908639254724942960101465935427453675458725970665402285831690945625644837666876383496437942455442328649875203121428193484802005320035365796344602698791469394045401200271557016780449981151627604388127656513705778483366588871492523310071431311156435054870691247188551261553146226955702519415379618957636406886726520018136271875352633400302577016793215414502995330945549107651514014941464001424192229852218809620358484105666799208488448659746240388306833030604325757351737000923347883802110326392966284066983823534074554282709527936515769745146653608172807759781850283271760005577709780818163029385455625921359360663517202319116587383316255342071331514534850917644411482707314568719046573711761521233936512738149010408328852666363540216320072869355493281537570593889047240396943552435487683434220691188148586227744409710593319444792153407986508157354633921168410791524933759267446134952690152210037026603129647252122463214921577645413091518942247120768465082517065080625284850392817880531024017717609388344339702715459266987573216895143630356674892992833331251755586770396747224676953836968468087405002454783119436001254946882983485995573470121577302993671085964000253069488819174071403305168586356775663810643064687633010732509781170731143985584589886809100618228998100435828140788515304294313674540648563864281584399562095493679609138293001805454961534948093628001361468473160152352029823231681007339134247692257106864581619225323056699743626858976007087370869216064370697890336201676447878539968453538214902376983792736675186729437246343930737626888380358780525772303417104443186915024489013782961150670560543060277280406032388090297626865587417049291583208187519903822717805557407133355419037253066733870362446517349000567058984101588234308100657569273989231090030323218461734166117289174657887413496261826301943951231830975627702960018943586658558999425284797121059198620300472132562714037410644756514761170783606745128319809467524385400842643029785408236245961833268541328381731207610815285062761155094894689646750509019732136596501909834554540310991480879320526660373164780960076517509063177040058532992369990828119596765849816262187571116157205672426338069875831993997111211225715048024606506708508800815015522777957970688032789361553282583251362790671304447050394492271567066495499055095540301885773504690232703142447944193898201018979980467221964505773474488846788206275893437428372682945564781947686897835185949020700310398033671711091338313613561610529189026321881926642767907835155408774692962088785040220486262784205582912406292753153601362558825624110698923989435959668830984382839302436062963199542333723720061500919385451559881977593347411677916777241875005216548608184918910551262766795341409950077376235786676396167091898400206556650719972977369738954077540979500067461587748061689553027643286695468846416500899843022586679696732099172942746215507200062121962655679766760054120177784182259574327832886195147666135834459236509152760026564452363886223381593974038324287219866218650052383852063156880576043089966220085728053499681071840894572657568549771264663696350150761134877579786620553010091211592940156650195735909182239354610772624129431668449249353060706868583652519095823251322231217106663180118166776747434456343656904403003046377080009190595844395590746477960418985389640266795535057186683419973858936505312526402917376556500861571806663143438212059758058760853275670332978905486542309644809565948428591687844347010554330287546460485545999438525316723185982658230553636973038608079692339397003338692861062197913156160952697123663547602732240630172880896063634096298080757951817689629260450502432925375084027452606632747248749286662800006191187193402948501289868484853479855176516224098898930332759200453609814168775908659095951033240369306003995554411553927112304656165040267467148115871581955104067851548439054088047689514836846174570667095721380262380904217417186749497651921471743204724406592042232038698353521610589348587380798471112940665894597726643412241766260412741132755764175339359558183664505037625826179519386893135366721478067306558741154252141338981733986588611014971770247821375445949104218959628256698639417543854496228237125155498107213346766830498233293461656729321684480512741302190867052470403282062484276065847383859097838092331060380222839210075498429077895397933667409659202873626174885632693318804189704614387977831879970656366528374775680895429057188998368910746648050010780691898709190527639797666877950185115566517265171600259745252897387578891481363584766601135715448490711234782865793768905308318794270134670029403915340781309532633882476544694512130497032247742558251213001947446375944550494733191268836688065483678967930722518455869381285443641161834027854919958403324465196135330402819431500773758944750921125475066802190458637850126650860221461764179912678828111626001694469098071225512953807037202314202389763606231898514952839137014834808792421894788213450741880528946333126692887257126102304649962022511754496488882909977076321283165401444338122278603400568107917760248982024650113360468490594019470537126142228565597931938357699078909570684903865134715248471610798124088715470371603784490435105968338978650118038195020230747322117017350441539950939889229369961302332929924968076906118420680924331501399247959134149219057160323758778584338158447703958884573304052504370303938130577600602540520809506144859262924531591357589505430064695994850585387149689653400579988704926060004550777019605804143982881753514993649689194112782534550805901691688417671350295448055938990597797705715548621281286234647909326043935348882022572231347161659828404441941364545831711815717927692670552533006226941576986876457693219822404955141395523905955899834447989345104967585833431903211862060492297137661297783373806714289752656868032800597015122423572432399557810429040760577982345302331007906402492535235319404345918687191554894538189255865155426480459795744106057594369440068124865894203745752880384885082477057330133783114517579682529033540552814245933776564107242307670248162212664150719077145579815166887827022695843107575801097460857683794466616644334729885013048717705797300180659739222614360299509921373525426995944259525433340094122810319136989485450135615306104622933010809398231036024587198447745286448122383525884794862781745802467428304597935266151784746260974730022290170648489215019361727171598348437765530323405575507976541155022973764381508476499014169660354080608569749394735015209208176162127672186907887654432771639861565667780025564991645740491114295758088605935463247515111379571856919076321312673024393729725297559150161845642276482779240880681226398547901714021314693417372692942123627340306004555176612331520357578744076201983920563040391514403509668852774769848039173322956291236356764233613772493754815293620290523034089726739861744889281049096608330180209206416985156005871963395436460597633812609277498931065928147435986390375303016717487686775882914592039232193044988176303539899220087572568182363132069226463588285144611994119262883448729686010763282576346394109993759735483255948451254597081385199987401438536786599570489702128072682893047669729197775551770456229491592764051057586435545883516739802951824224589053687211407305299132057759796219271275846133700647017707586420613859645843839054489650326328408317992354016204092856832475252710490031306044518422501639889116461163127683665707206706681347332154724571205638871785833564572188652181786698534928888291513988598369518459796301931768129872339064546587241689482419391954952095054864078460535606048796571606940165168543102401234776867516934102873303392643403731519141231577844378049524881410647911031049870882761536775126374123594987567545762392176987733982980900256890338428249214539245848946021606875164529083890470646315613577350814309009865896995813886690618041976122813905250292726660045696637223749347461203814281427218013457239915764957085330474240489742964269604844711347960422380254582118587301097659088706736139431294949131998119793757660575017783278593008042034635442794402320872467266782657182604546700115749146199954153634597834898558731229208424683175087320138243909776743670659974341987916396957309632958201985269950939950545704510015792291535460114809751635250793925364416929365462748695831485599309519849451356428854144087355068602676604327851083657310556646920580138001121010959884458043620672055209067710224748908430623549887197810897324855342947844309376307713996904010380452966950518170277939980988031527976334334315197399585813397313094066293140509086935259972251694870815467086652987733554221148733656947963996255745555218111464772811016629241807817982674652370703548051611397430548765905651220954530592223346729836498704532449739396516140764179035180587099748210866777717590488460241955621816031655486902316257461562025098030433343138768716830937990119628735246763380477265936064057936073074355918067817433545969495059380173382062317833283047759589506727964143760684892985806597850409233021431652755521711383057946012486176933434206567301222164378270650584376553696506708976050679588715135179843296037785636462815683746751798512407915558781760479619982176588655268239438779582188580165798026950979912449973538677046289679909167504828883020459652461562169592185303072224878859668011336437962457657496169213029901079484123848806529106796342419329498305929582252025897803566201470938469707392320550111063477252346287789777773147408081663807814430266856675953054791164872699118949816396831803710848424787499323335908385285452064231841927530632784266657582571822209421629740089177465496679697014409086747930484065838283685039917254372359052577218157347613631740982411390050061842010745667070914308125353055267889136247495178577152600720047672473075476621378062216655535268462256213770761429988256924094735139649059174538284831658782396649775384828607595254570876495772118336125153828899273861575688660888999007572762305907724750117552610203798455804842217672673169435668473984492931323740527382297476355289505600030409295429896420656622225773930139404934005942448916216299366522898216827335220575508775927224537818051036460132419721751474680711676038198698857404388403046528493972556798521489021687858612555367720226163301074047392991422354503903514589730144794776161683458911716746751906406300132830371369874484497377087132977401814097685696915951934056707324964741332603519147307643242626618551864922527137095502584727812638185394044020668192884292918158759473223677021372619302212335311229213100200829837669114361259325309741485430142269162534744534357744444804032137997035930472228948978732991278740965314009501922145915802650115353434781807614499459454585087763754802394710908619930804319733590447454336733731019932906353838958220741380815666586332203882338876226620096921444275561761707843086308480003206855897051445999400474031904279772657113485562799080130838700773718538411720335811231641215802263543469762851950961710793103459863930447939972154262598339025473794905109746021700463164583601397849589195470953674302138069800346909775212302679102903381354737624689865133723850470454459479826219180131756947909312008206906425000461752327858013767768557861158316266263211492379240492215164861281391923945727130397010217148785928075893646622539719240601122028691081729368149425288145078914925738003966127955415696175400878954379908572402199183585248900748084086626133744540819588890414356411618671958010841151952747812099875545328464181734098178652017151732225167750848821753692358174770845362576617243728612910967209155783674046069778207979261759409085690921147697954594929831411640316947996146727449384480030838148687574497089441290458578871186624491930307436461094968350198148542243087233251256739288783695977139917740821597334737915505687641718043390512296044683733801121616380243361253237233374445861395496044448280979226024092807541519446216162289858520090288497557104337033588149199624631466638585189803306992910682006849510626867821423654812935082133280980935913571281457634554924684443260754977087458446060187339160215497002904896738113087090804348747071272091564529087706619281845742054574980701671123394905335339483192052007647361003929397726174691839122024398370706915135721832121657435345719800761243692592673201375826218863526924363859237602697306723597922015325777417141008804123319780000460643665800299000827631650370932977813289872203268383811006333180763452210510272149813393126623763973474389035533952842438352583824579076900412916413885056216190841574307432811045362675947585344544705752184192447080119587369455175075630048725467607172044801581588555560753191202935060857521334564165134386479956745834844131068802132798987024654996508052941527945684943592293436905740902060545316853719489597821303804115972514492838272410572343810140626120760605570176936347565160034329934043949539478179244818058349123416601932649509624302447161333036509651708576358539251208292496502357059518189676740258814764296776905326931177217311767670792899312698224567873460262127557377708834658153137541377802523861973063972441428770398398260037115865807975535751370685320842036405489403730034239378137927975672920551870261247606711204786390263168486223796668153650024522051939919849768180171464818720698417195900480075172606195147821390603359887541847334042367813277786587114864495871027615355728400049734410450763973103676117375781474117541446352065692834431260489679085907605071747064546984936860765632679187755735104758896372294061958316515025821240793396477558006259213738255089312220039608935854807791782548654809337922176669453737233087907612382188714925707518430483465338916983942299448698598795172636044760609116668246110093433089332062477532614918319580496982719987396645687616351493235023413252131056379052317647483770678355630769256183958129933395386428010281177709760081262919159972275439631381120689891486688849084401247701853297323732735363813471412954808311566523859014309048705219870097765912369101606130071803573940835205397439956206755120258193415222578239226489465396785346893523271775441199995708559757721321881178027405878983293437114693439642636943264519321468476373136832727469592511982871742527037593676541176935152863500377439120150962485358042932883168785299735651271820538348696973133719811163932802367966077427638024591637877736153071574889487635725185494140398636132575693932269432940395378449159828812627295212452430984234026266828663692382006069670168842997534939609212930569322242133967432120999845942910865706946398341867798157911530113764956431368788965802412266166915625937076848037986075007451662907659774064997533045027909033276771059180138433686061875531654075121779538087686323204480687481179026749130051094691247386311721510065015822281537706410424668137912703862942790498658973982697224351234047012910331089313940685572300058347844362555505781888881517376345465214754700168349811046265176842836080991631788463667862946226977547890102604541043182115658387905187924431140618197881458330171977831027401814555807453623796531334393974549700963841581929132199596666764311407790029840112307615125803818528989626587701192392083464715893324930634383723410899740921735797600726016839849991388201937525404629930100180468414975122319819673806023873991816869902614326578984643613559155092672748456141708341857970573217058062179476215661577213437511446743883772372721445804707210579734401983296004033767786990287143247961561243847160530484653823786377024238121206240721630595824234795305003813386569951955375860439009031722212843594374026178125142061005033621982735926947016593573971448508662490296066598329644674243674308177886813423659715240400371154968159581196398200312017634283377243157920914178453714406528192082982416197058745332907315340328778200065642689714745571892253479737194542885135941618645153980581715967048594850189279131092188586406753047719523388946998981709570559056753413952103590294692987816143680044925984326416537300914270909502154340202274381788189826032991576668746627484494739743344696361112252798921337823610002276659657855957842468123959782333972174473139496856920280099640691368473972511501055246464224587614490604072132008096778444669205575030813392518466186476848489814678464031342767818637145776269644976552245884632938731778554482303654234019510707904268045926962637049878241075469657295698750583768016421018930976371128013076780685619938058735933533392046804205697806041360307409318757847480918177342563020403503416265655308945964918566871774453229396446161008999823524340150088612531760109444173582583894620504831307885570266438529573360753543057436708037367029020120758394572643617007658076070193457283473334028990711306770716407540917823150567632102421939591337233580171113369231161031273541668825925191587096173780979574916598612527987914336515604077451255906558487919744217975856904443555802578430148705306738343415714128091670735589179670873955676447973757123859465979670182830179214188435134784487532415665094319593575384017295873034436026417230174030643233272315841192138651627481292808131633520613587508348208125377175094631952101151399783587960811395621345711463568296362835842327084898267272016371913774984314956352101630032059550343910030735108281700645690734995075805482971389646824649230253693428146708477595168902039806845380036204133625726098784042532080432958681965543092237806235411658714622908000441040313546388615946697998824291026267436972296312716136340379904624422717450819977355227687006677874561097005045560056252049469176234228039633372084460085374236115110875505240552848040435541095532468772415357237317189315133501780622919861014288060219837138243319225959002217489099892864790171063657899175455690140888309268726757277528033903815908279058608612782976555202427406030841668935927340269041388810864057094322405391118008823865450436528614588791847422087060135321312629987404916649841532715103801817086274683779812025083293627584571866978446959444465793205927745047921578697247736828490409900547377586250024671943421838574252871507559718182074912581526904926623403411547154370004974547871922959650077078938367339337591727289377978855487412126230991201239900145795784229321581457626364028566545072330892870096727075800905148490346668933634711559629329787991221639399541095327124955379571239582155227044125322527895806335035587570797097975694837273156834986917981110083043687642882293013726429534217032365207114872526466341300880302330366225739254173020243521813844187803551713433378077874829356575748729273767105553200383657083333930183610247705712770452151295939994233102601433452175184743886672088980722817676924468590469315372449594689952714512570825692926442175032893993829275516027584147805549117046974918194046198703834791892629674681509632423801572084259262919466924426247201344077040776352982175159938387250131945205799913920362893383048298056649336414226919469839573639572526792314392773860176977394330540155542940234340332217292138199229593399529487497356918125053116721242848795596505683964852851020593613443573379737622821851801683105441617852534926519859450931094455147055599968095032810632292714394821113279635743707912725791741566029801782950367787960554675046605983410133939084282695156710508399302349330486210300008601028594290110813401038372486425180078689207471445779057486628949217609364345807876581339782955216112664943231198874569841442692710842220697435056034654915226520193408611394645341487819141219330407799631627693107713481760260482972622372308082910024100295907753830019399097439595441413111522701108057339058426412087019581610510931897166085614145835132059448899265141392613907871110260400830810056926348527817626760532378102241948488428824647774140488171454742779797388853597878622407563599983055563661359977046833456408256417346312135554282803056466342088828441922225726632725203537705372982095000598269129382155875621119187294739642648925176364721901661545504032895828119305232119499334218084388050608106584919420641957800927508279758229118838642201678352978564573775250089993644532991078957856432823120087543033084458249164062674539628247215768806040847966154049333887150610068324072462264805406094963949433268610921422882885146687738629250428099287413962220748722073961260750173660824338255682805150005727143975367180589435937453584451930926009395167478254310504488163491260879061970242970022151474059988960542438351559774934878289401443206773461713585302979805613528819728522794216364355794507536528543527379311873824269270057848445549456847698715311060409471530088214682825358447103577351656505857133596173875914526690073800980047469486782703813655073408413599598182934921992592883956088523403901771295895190262734281601086260189498159075275880393896442679757753124191748616887566106539353750573222916556940840892679271373533641525768140323462861517296637286333821753684093898511300407613215355747077860857818395437452759730816298099790470683684708136834168321104913625459069265079558788869469076310301831984272800395053819997215324321732796266512889021311759579591795297041174151119209926515285277046909711165861007573832512257467169725781372904656358033758111982459647097858715659825774398786938507458941814230436216862515524433370036524613829591152702345001535456585979874396629167340711521584137564042370731200362922673981587835729874267032998075952750285659900855237608485571295618345581036140270137376408400969546948837939469206502730199386283637627068472510263598418279595630064785153865219204200790315626752000580442203163250360081255146341353934436304555710773003520405024779234805812595362982608975278387133598578606787361294567236668329034653341427710307330893857089124831735378015298572492837274979280223381576148791276679438955694633393114580871836414010811507995637092375852450365818836847862144674960724436469885982944188625447209206098920158103356805148881688808681121831824168144889247814771538510615190033186697746742324623337026056420725371408785145828576741669881946528818150316178824389397522499443174499522165532620173093702218915259939464183367890409778080232289263091530128799634004186902309636036457918498782558720230606191713529639352449747994994574565122241178431649381300252054544799019546985700733376409160915900153199046920930189394705820012549734021922388083657978930236661341143279406062621876753132784871211467279392845562458525510630573984420514461725314202900060749690043443696157772043048329038997082131078575224134737644455972757964018270584660105906874500206870696462924481750203153083676363463345859563755194513487642058671872180575763911837687333751446718225847036705301539586237333628597811532817314791328428727211277113047535141867503457369022665137540219366704739369199196707169294326313483977093692957204766871727584069219204296773711624587841466179180830599067727791407828943923497925366942022281044925562626747978353164180418212291001497914455576082004982787850531966336617446687897813449349920488127305896514467215889483243350782954532750325226077834689736701204513390666971602735181982189916856859211521092656998325005513046552180926045433436872848989146748711370450992250822055024424545271592940940443231480100764173742221568228860139127962544516110545882951553166621856323435166236046790247004065272055336254651577617097089263481340925757947663833186332282274851363245912638128833460569161740043809059907747216263466099194225450825400471540153426132989819629767424194009166310613118352807281193578020031556864778040306875584218441021559590343577974944193017926197875961626028296249426919986489155516275820148736679082287075566011306063865772141498129619034900992665422795442345619088699904616748832541800559826941823246855681406689437289340271183562549882324834472782502901370271222467673034826054551728810285218709710987537783783470927460010723769112560222304681356648670035741196940251261030619288513057811666891132217811494479822483211763586232349781842214741659675408469564444320237034380526822642777087806734910102683382500403033110135687763737181144737360725136407727032743695172977061800751393323511002211024168707532320223778702800293713215627374782981469787681220884596173518962449051756701795170039145614600021923364634459735426440871284023679908805290978574586901623758993723010796063952133711262958269796765218374740176497715171061312416207469349243378193907054492036219569279629321077768013850206041762045515164804052027789185813508295005925482686622459871622805758844980157362331956482907178147241951896652368292759036138405322820089640018749281692675976710723056930102959776894925474959130164526520171616054037696686942986510482055677958498119421156408886213142037387811146456797880712838354823804936437289332028527051229054837082656250721310508255308576709238201029504164565100416212657431804524241024224054864063486697999811102792970684767762128824553134166407586086156521742980015169876521482680271704790165650525257044991609139530749792342780333310887141849764220177624688586936938136023573038833339697247771767237657387310696752791239782598548361082274201349101970800070166729935646217378201772295118729896354761314471345049923757131149079937165952153286240301920152421978193181294336834759352765409719609257836722977116867776948749720398477880637578110527850548746513403578178440210521497401793042999871620349847503069214151060966571730325344372952225776939481186123422441487705828021044239485653542541458496937363445701615573793407442380755132674099931633344077933450843795895992760972691508498530816431124695811020038748847596704206258422153248086901395060919073702869381208610366758730353394334680241723625736007971810633390318916816532158773021412832123542240837476983867597885897230665226208593214488516085392727637612183123091961780575541404487125980141222264749013975516419145284650810285149790933060224996987158869153207993926638797700779607085816558110741345822749081072538449534866233045369185033393714554824812606188607529331076939373264618897456585563835665314726249893334747161048900215926530673835514101501954401876034761153944546876554977591518762417512004403700303761994723759838777364896895777843113607451121817654661784744855066208894142247784844706818041602143613359082104231875493011989553954659855330624481768357602218676298889002212868039505636971156306590136546050187875033769954454922707432667790299363372717406891289033103921032121495814455268191151843627916241758078453029714982038197124640105862323095998022493899168565790263822576282187182129095099978552729196136998416253035892589997933712299865020614161500373568876090981675301331289622484414630591732127222652917572093035348878850203223997387284129251668163775633899003364856418682814150613672101206674288972282763384424813514353854179704067672333151046843401449249257149794846107566280773843393240396201820238737829138935635137257749082833900701612919892351813931764252369493217492021500665962655594046715832448951989039550034086779449874043580134289555975152465744832592268502048030502821429095636919979109208153570838944000662045959412215556708252692998336985040381212553502560155112846276255436158526411819618195648446643555397767733300589090849927604928205272031042300684528119002364234414829495187334880134990739343088481698295233642491681346555696915308672790308382448140917962750994483087896640428111618665299886678792354086268728159142115036567986034440610676661520409159658601340917078885174395211550275569544018827317479114554069288752419475904113110213844267321173823881764971708778311463049743224279264971297719116478792070496666507628028249324487442303573569393851408580446297451974647089825061903702977678774447133148020634692717877860681122203188860707972418527564359076439649087822460802730717487406151298480008633518422287329251947616352915118752953006491685823919291211097171502516892253078309061984327919716042368201096656954051808518670501356746573262065170453983645584590472076101800490899614523746119898225751551013198415228059391887836595630762552294494630399413835022890421124301899066890537562063441966579105248686562863429919044990010678777295311039209951535344711210191677793309855289284519795112864374771144639330187086552707278213022600248705629671420014698864195257157876239786828645398322236596335787450409575406214229495003755768180836631736826859503333070501547895931794150801448708926080374611005738591786762947395118282305575405669724057584141038421653849200620688658223429285783148474613724164444532251151056541315260773468856144135221327623481087533391100460958778901213968478559133091202376752276154139581180985904708482630378149705137535735195646462155669286868823938419758648698793830242942263938660099328995480806581167067615804085676211737842734112236276288872087227519890470860106992896682491466975769299435215238503384328273618055434007079406883440708460556120295868656807081356204394117709942491718610317591570983277537884131162087085354002729351466695213004274752935183643131013735905447289625769710025231677024184452819488035016246318931859590166127257794244728130037298001870784916342834537035107161206608445338964779766089747707595973394635134832142438527925406472874179703407613150268409859656641254755928994578670042823780265407719766584660232060042801987383080197308969945609023716682432031962217925193958077111999466130404010722858044012558264733735259490006618184230628086571011507697168439461293452846196857137979432732715858550355803871626630671713167999571026131565228000173967103734446025052444158687484311946232778141659071331799365984338809050537937723398626681586297171289719684730192161120753131574355043061457743613011266453451069236165950222715109730778168494827337656873758346714262045922898480914040239279559956241812338418723999163293530946846334696909307821895695202850141783119880079286656927707289916533139868514189916607928497821681950745167572322602856073041478904799209201659028920146930068718718139496430726780449911891793196033189178178053506754790735824156322060943479362875103832702503585576925846449437808677972740598947738920045021201494365683622285328691218048657680564818458410615358150529121904516582501961170094699138189219432599931561690748329917827960311085496417035032501053444640833621885831672786975663984712773365564778757635578059808353699448647088795199655377258756481778513401005450315014860422007776773976481234400300228499865724599622687883205707347037528027084338135120187237411233254068201621872148285155607992672961138445427823089023429929566275023713106413750117674944817156180000030264971198064700324218479303851380032469457586200262732560225579648695083014780522164345144946087003915072698458846697877376726548966728329186314825781214598583950749447552405662816976521136604848434034416034611151598268843663909961964643959147932548453996261182265008445066053035585241650074581822839869874185451364948716435355492993139372244397156580465452560606531050448285698426844475959593560861421897812379813602142404347519566971087943689123263001973057272628740165044133673855949575753696993120909082537888599897139692734634721224560508823750732919854160883919541990361323709268123224842149417941969719357672471327475175426896096200065588556221405029314947470795357523088090601747427439511965073648110371835406304440365903699202508120478190800273820378423479338363481995825270633988182648305605658098179478129118613973610799248513091210035269175949703547490780514134742000527025941613463121039352796942996563914075177521814687258344343116975678659040223989073872532956643119382498056153623533137749833348850810361521957446557499119198503899173269518883668560665054181488333695981450220979717672037503420969938649417543889118846348554681974696425088382464789866259888377868916335703186499663138642439524549657381573395942063400214788920825285226551201393243987356681000257126612168236703795160624993869967620555264204606370193822805865756536254073762463341900311930875193948477671487112149102024554468184428511038299184034845801903307283903007690266023664263070587420071751771744821849566109667983734016224126638069444822013799540677392447911804226187652447960248579252726352537165702109374074504550842271488143558656280787375760695592757106310336784003644085112839976127755398070996020778196865624669421320912120710447580781805553036634066324786440534670124554196820690752126046255083304150289061344121176605625278250172569244881203692621375135893899652464354474409757946853672049534264671134267881575117972840652861079542189848607262578671006922545735458411615026863130957351480555620825559503114553748314618255965568745019698802145197338527859289143399409347653729460478181974403968095486309869188681066448112583907171100577865427196290881363004044652983808953408092018962884482148185477490544289952389871709413948382946134136967664806327008801383552099282400456923932637494221620859806871516202322571259767686935532766185519111549361734188038407564998476243147873724315499767269453700553425326887215861112478849618055991886604512461184611562818368530301444247516791471922009072319380901652959374698672869373061510423365318392417405092974364065639388532520277936559745157023515511151714644173051910788727255986213903870025836192619158977041619157156312497251462504186356130520997003827114187545920330472927884832042484114778088994465804604724970032109478813215554321086311323597975768652686973748072185141689077991538639993477221832373161333512533484178456543112008713986615021307754621383419157043642563646779681365244259378251416641281109679518222682244872634764034897191021223800728744759493629240181924887977555400581904635684743234932533706317467154534674505989242464839606549886380961051483489209597502001382745671340789806172342670676860486989872486561616105608609943587197869557538512152808939518706632750495623637316612072881919201147411789301038639231815181306632774990619067902947975304939202405196626240718058834593911321528687835210051073697862799546903999604912827063625419402133443821681665983389458436962769204560608173799129704359707031188885421429322775967708094705036758412278357759771148638334202361707919686863241304524639819143767309813853371034339867853842897629029438287945091469352955816130769770901924832833571218382401540881695575336727682847752663559689384495085637484372551847354807902912302008357028071444357198468680664667135130067137268922703269368269774229976311936715076143338630734151439307923416868473411339533086251621591439879257840166124998398776681136451432014206524774304023746450061661582937082282948840463682839139015993066332650644664911856053259410716868634599035103878773088379737034496705661800373009887272207409299157667110839906114902394536603605428907955731540419488986952052342929243239221915323474315855499917405271992519046093578737874812062234389915967725707426459389037488559166294385370479814903039583264883352116129514697632163175437686082637085346092782867991473964753342782857408436630332840536835550175910105866904292075200321466151045364506191307189589414749349936558383068688214445644618478913475568004895661033169959236103472568444054144363468464580287153556189178249432445326608772820616325469778756509467069218712809789436665535175279971864545662223252151405232171468194876125082803317980120841359147273551382824354017796568553843697190031512661785500071351165587517985660698758855171201721548051421666674825945966806427468217515017498768393020418777638055183142491410077905186171361462894276087556161567323580124460292403084987525353125121647396444502844039359991577068648108825723749118979230565088049279244332951951594135468541041149340453846048779148545800539660987602947476925095427611077402328875369893650763109107342321435716997736105524913606233512667171089863693777987738174389830944605414979220950800272643328753210616109998619792687814457281080970825165448020590611199205240040449858141145968194088175256507748228726241728630940276530882365510053890568544963187410818429792839184791652471120959274569047154737375261701331145462586253839959258757403754239638876226899705428833840837521086153186404432629986919324070673902596907889689945757197652599255993073787288772562707851026026193745773493684054663386166157501370609505002799811058949887964711176250136560172965967327920040625065881413986421092470861795448109823763138057531732593509555036954894879667298376045629149199032375855430201934895997443979283432056997548890525385878636731825863009073508840729167630478373866545958634203036938736558186421121958248832911743644486686858318141670886085429655414820222843375593679054775203604971799119083621041009536414365681862136370464485141666227391348706651508842712022122735819426487523878231960359601589754527371677263861850055074315440851988147555955320544335199346891978017535928701530641034263914267007709236723308508678962377115675335296368680362595865969187662694270872312444286484329629413288231898299435266235471618487156312914189695222519571979825742564869818716347470846800399729704849037730756107837782452886679349172730621092132826818958717712468764320519883285472202823791540676552274594448615974199438542404843865723732775473590579411895411226413014278814667914774618044794914878302131319856597512286548198697503494848337921710762163085507569992965940763869244813322878880407941266096432641390830434296672369096279717294422130717152701136225843248643987367459706765100723948151081554339476922955087818848362873231744934541966769653689970681543625751414294597313548017295445300405504373195852385143413469988100043289529572469990627150738595115196641273217173206247038005722860865812818012967100132865303831210259421231836154068514806682159234766787355055965548291874346450615359334004459492518126271584377345347638454586160807509025715346033077481491420438607581740861913167724452972099856328759881987883119641870699629319942568613736910581136088587982381884008980354856032521618112995031208459115502343171025817834388408743948938711819385139757840525099971501025871495359180779968460281179457984540663196832277475949901267994105590280469251703147369307313566000982341735877655737669179065542690719428306202447575827082146091445499402409674668614762859590417740492556526995631198123759298425983500437098523503842665383179066841448962978532050294903089307629861991176699211499219685757751056670633334718142546132714018659115589512831101759243745447915872077292392849719035732130128145217636707605217435527470747520311193657594422682896273277765129699305256205555261744061549195638875268325884039089745880963342001453966000221541663557923040109482166142396557454295543948986853797301986206900802580665893353474543089307590542269210960122262653580033940380400728067747526052312359736289202989754286164397486577325324093410870705348499413076219273235472977201871575144146858292884535924252029539246511348696009752043069990678729444729486576006735959466662362897469396855116430648190729190483469780086271671425068334628082333530781386579782117684485424122437168033404479834387195868979627502838158587568223774465551488503696289918908508952626882591077282598919343961947415594457203676454328711572956146693521539085206509998216602417852529968647178037436790320586434070035329805654694498097634699173423620300542541263132498138850744077533777593554744189988643622213707565050756203845587699811260329960953891501257287399526603803195184305459004919138429268747242313575426800196427534103821415987734793950643810807185987136825883200519482805102298691333314517733160761289048437165579653838921479889825204024970596349778512889053355290726290242042614442964065730353667446395319250630038443341600919952524922836666176542119150556315318383974199627078148664633593861259063624506244048131308854198764803122176999172652013056383390367939247427692339726218323534681155838015694257770700524722941427546705797163051021577415549662974692038388354030624324017062575932963374024289405261174494057236854236448686642910720031059096369533822524656841307501128202424867706135201220835760455364168077302679666242671379576467042936005777410411269784779330846280400762449952069154095097775197933060697677778474294051243037861303206076457944114936032909553747554824217921126514411461638330602520705998583515802221216647265046112355829208687084677318495429330743680335533523347326862799086643600694641086445295473187848062681848513486386203788149846355601371754736039749040531612459677550199764077841274083747405376946756786833607954033836762111367213171607548936602461156259627790328124054522653123115985706891170296624778244194923201254894257065209471522502700865631914303951951792485877640746734189467038841543096800293695488689474073572724768304309115626026019759029559582115938834479921869793957299503255602415152452850981510984589235980766068342717159891071225498336817942101396427429485941304880566737634089945453519922335303757235583254602317230543383307323145804414345632526723856891491216521896498294331867517083449698107134387715196190084642725392882294854959207276988925956968008141777416462812993007956572192049771130254414906694443172408996120376634339385483432983942433812318324007744589096101245493501150160569972583839708770541688260807983757809043529851625901264508422213559951222796310637356944582660101691358134646363344297795378316521810597270489940496349864178675737467961490878493147478711331520576771518124395164717143346547276967218097164801441821012045104344610407752951782191971576121062949496629765123559679855483963704930329074313968585151826010378315804945195504811046407857860920601403725250279234386106032896859127399888670369950991843070198663362998376863595344175679267639484110119869388671265866574741043001336826856748349030748034177580431905576987291055689078429239587199018105991655913416587082288918980948326374647767993986020338437982679932511444077539513068880579892431166733089262355221243537840674107342208216615441095837251096495581485412926536626012433783708096892712990665001499587487142732515617131925321013138903344952011332470992601221303065741441344646907335111635693671397798423434021813531634777795766510991135495849559199146439378506616540681755591910519343434945832514351492264383028632582292618903326780370744906144401535693817540834439079590327884736308233943426798718578810952181841683749348778577181721093122937165565625058169434048312589292440632174805750739742590447123101651150944234323030394873094204372543865715572844087034015695018566022567843098355269695942254621229239564306789466255783716329668204660893826381832141895222962308979342991524042457005147613502231664286934217607914406290183902580903303186186029778945386782124597145085305436246835068389429778258267436674165407459814761942870402891030213830637261392188387459894535369575353048677022009732929960562277584068438875970556545363753926762054415355354831852839417906818003961108717130331313778644316258723752319104793205092697515160807414743860298044285493560462888764426035815028041448686669242907166418813016871485956710104468918776971591226249591227447228268418708610404173606358553574437220569362965115931655637694201450324833820536579172205446806032033178994939890683458661767438021757512900453906005126211335636929269834060687526824960410624833253777427884905748071534779412926949571861206707156355473169702835411695276871193245653122007730101133685607674244208801421471617622776748915917510887085937524695866556926689935183209475248326762300086441396614008670846559576488540993461560026880162089780356298438046718811646602136413685091215561250319878039476142377979855134846992279498979011928672312190049054983101639200402553501973353363593214940610071376664883857075130792529065768850740478267422834251823970478921365928517654509963462880130572583943298375090261613345774549727976724673983895838008017512488476037029298564676977412378972653814013771310660639097787276528299239948313815521014336449205456608332980620627059236555265543746174022976510291252749049627084860862434002215589700885251389223092861799701020785055558798740274027003116991462201635099657719411481630589837185719253902440355730556376866729696961293064024957972409010854578218261433064003045367011830442729107627258470808016759388212503441652929255105365327981754995224758496906204180377423957673058901769556518681943067604364849376075121770104388982710901609265005815012062749563594213580526473410686839818143920816337178306523162968500653649053088401431352425864705007555754223399700479465248725948773367939349859903517811738986807924948511405926532169035238472897495927577762172540300693862586366990870515484777212461701888103937087278173143659521114462903165256552623508704825493078294541374896058371033535843456927707965215251847634047704679804430453109334858491393524091515234244137871001533455092795821544926181941102772897457515386276231064291028150146275433311542832824527754346741414646585947107814429375218506710994428932028004137015071584239737313314102823628305762322571459414629509518607561917285995790606663831799794840748231607661543057329140464453712491436562422377661382449850381165643454031523835864040238768935442630678447569105109761086585840950250956767798070704927903999122139851719269970645523146910533476371091089391997975633062821614826218639011923121520236090258197173183532832876616084755059827919006780495806018107336291072763257431324201449700588637851915714860276154386940351409139906835408684160785536286587408622873086230382373750027398478087049568066692270815678953097504687169615459431693543575640236864958472927268456749877833535729230634772650277346552641094937088330368374551677978038364044915559632479716332147772815048066167491971300987304075366293932513284563971850795355551394187949002879276829954222859647170991390716674760948058220197583621479174690928896825375546734710691353083797181060227578750608051483347357753763634554983379608442062286727690176192460483259584448555215266010872584072665894063830204113107459728670229608771097967280743506743265397436087740354617888768000936867548909985627785019415373165629013968397787540834249339104509041196775431707423753867987859205455993837596949393375554457285296793530476522098381584644310786358956583329194277891241702152315516546859262087188216167060457345879896115237382809663846092280655582650549059809345580320250596256118805474875035196782940391042072276657714158359046268885031266500984836805051001689605594786963564959305646004409513491110350928435674122090116470901724089457222397573089205296409370408659294726509021110401066484143300276638484734651173170399362526983893028368442257393676135029437460767563090093241308144540890645007145804425348849099460613922503230441885419366721521737761714971859597396899513653464123057304679337476750833073461810354624889089400836035237187427527423908361682702831211279716605258522816767150068026319250283368539064938048707191791192374375349888800326247905832753008698518957503992165705149836017056434362496646074322656075069877678982227532271188901750943376099965111070352257387963130172424907715493487652184432326788311915568098702127857057581313362555973887871117205956187070118780376389598266804053997686209983102049594208984669710284154689275864841738614399667988889497322994943610958366249826394976717135879386114138238492246583513162603713499331493443554918267272162607383740039077928304523518024164789679888644705470700413459847829064673856998660503487881906511038958684074473702375754126781171320812477519631031144261227284548331984552164380689911434713821976310518058375241827579443893698913329416368848938732362198373637250823452003440091186942782152471084819891277772981882310340976541881062117390529934455012065214602013961160440783406836907472936659942191117433378820484202780861332119676810968636647749287521949348859847258536362590314503201886198284845180854618140400401259305899479665951086912725459179291536006671429923083248004466992480816476436149095682461342165419593758098725620212127933130260967678260485935031299439850961258342503695256596368806402640483345268233037971218569943225161021394666306058405224236220560143476331639150549847017994602076460622912952939629155351585459354605395633266222237376929288033452679406441313127105409258244379830307851162327222963102999064662690136542507635058250018484431160698525896761253936349669382243921246459035436387601409960151549924545046462987874038686502253049100997372787267763395020677945529654613243019786175615247606804464362878018600989590848374404334271675001718869684627444244638109388620035135841617307709536508362450471423271349506859533999498881389485842235853091579358807229389467009482533595344812390723113695961786724601958837707545599182871891945775140301348692294216023130921975747218277698207777142455986560298799841098724337957271535118160610976951086369267543850009470650165835004212418657771380953346429212005056730482635660977324268287058846431273335440211464240108204680393064765351807013369198032522528701180490653468985685228781553112731707973797548319174835816060151817628067070691353629763602823282708432496747442624443099918560777788022336673909333487762290200134532004999561435756682065849427655069973165292057750961212203020798918132855404760276102826464296612477554122931312243986004235271261648247130633001096075414784452021975048006342071874813104763517037634572718805076283446615700111796719317617078715239639027579754689206023204148662228699985644695365936728492867472441028357615796909928991805881855848580331692506906580168408732337811362523072600969008057659023628016061336694872418872075141297126229345823185981317474556251895655240717656415750786876891082154953565217160800257036848964573682588819183915728791382191415802096066179500155095370295083454185931799382819702261650866935028151930057676485932156737223166745689150153673773351996485187447493038819687646131858648467204534346635211342732464518653479071592364115140590206457811334268274889333278974565938716465543930380096869292552674370234412415049912003397923019064723914720532590552386168206611576441741027411374143788943922563245051566534191145772809555822783243892056391374299017843359255316784508255566130624082421766730457700014030586270900727561468225328443951312081577086704724039671055435463606681905037650595724925715736574673943207082980461762305233944381490138994610047896922849066220951582100566034902529366075618218979750008714804703713232375043577375568550810936808668152155567749976557867334762811414245288025792262935088088228536931034717983908437436679280740682830724483776304588231235316339217908283595144926406720142592617861905250748316303801612448586813550030533185908640773454751224903527861143945782449639211558231176368651971262014012388756955952491249887165834392176325354447006208013255161608575655781169198413691474396689606561211080763508833474923448700443134348055046389164917748404288088317555356176314034886991016415504932409437886615763035405100615718033140579804723425610751079032419281733495578817148166461203968667404504363074881012795340252097482980705748862267762793893643461480672317388866757469359659409020271290754672413747230738639891957935917114074567425076920368648691899235369832741383841592550912152283165499387164198174457732193269774014147158470815972563664027916085405192551642685886087349699862241377286515681269672382453614595931198296580095759219052588939634535166552088656064263352603741352631567687599197767706672680756753609544518357286935704225252259063913135504275853104131575122197045859558228225717670507729165416097353989810590171523948923448520497228195278999943822025903358330412873477946613296528288203737359523592108673678995830169680805273768061371192741686820600976364871085173896440381555618679271409592778669730814490333618273259495109780135085400059854400536440082454413468643460547625696580548114494439518784560879669674247754470125747136758365020485884877752750516794532359102994695519954149449747993999968263935974890534325673343448968973181719475039689347734601108202376241417327482388036562657655678966781352969320518799866654235672338278714526707441725543000116554885582448027551296949247343318098340403933336494832253010754821300048055755316471091172188122703516757447007908856543974478770292711948134668570396039461206593124236579757082890498320430023097100439237855962393981470765019143018572995038198039664728642020215490480744907122831663801526669230344745190022144263816794347502864664641059651672880389441872337213353452275245483539906874255042324317451477278081593790176465020164032798945224564254166639902360932562036972086417305310889007619557895738846011182720182429405089852760682676283032486059291736290873216757278852049967555764694069209750882967023353405656932843257508530604523274093644577327628494187649852781508496021917611127994120732091980215438351522647631475745533294184755997204802571688129498341075872507833981231406702362898638938242466571947511075266191349558728965601322194612135832759694358603369893561122295757433314628188423526333304888034485684630087367390605115071472379952591015381016443783845859739905961112408718933422986477384712620586836665384300092723538774086573597304676933347485103162284632913397043625882503377046600132549532102036875131745193425013519674625151143110099811302659124995814121149998282284405861463218608817644229778796381427021453593394370957396153871390548078756887098301134555557967023742265494617591545644542652516016501327587308553662045300179075444940263560139572166591119586028416643798594739778185539401056175241473717896460375161158174780118480169799304835183604466703707363377965715248956550737469335180581918373054762271638417139981139080007003058004101528071905408974344520916219493753113855406135137444787275588158052502075149344520635050109939365682906289983796499644760457330634889495397039324801869014276572552940767445079866829231149436939133555231418810993457062844374113976827395184818529434955637467264390889206967030701323925715797941128484025844744067416239605318062630258063360690551003587560599129699285289874478608605999291279410166015232437228240813930246683815990092888575914458141374211537304329519908834156769339224590168623060752504263545819645682764058915938540290415444754391659101141750116893674146992673344936771000153396097463537498109310560733037631932510362865155779402485756196306199918817023225469178790226826672910824041145347679524443005610396037134076022835290531651331176436433297944326029052949606943081742327888568752563982961988044395234066195192399765135550331662908552341836994270304758314042859894027149678233348082077480038475948638383927337406398693864161063467997294747802970036524078677137707155031420688270042968023060173037788990929438242832162841935278117745350058553893184299784638006100231916862773366946373237326907601995883634380391321805971548715500793285730381980078398273558952480943283627553977849328866322412521226737449813966582388495798250728042184560202515930289960658518740285118429632561375325895545765238266985065865720234444536923079353616486010167106011035856749012613694550083249263201067315972191877928773224992387573437282988480954604438103799819531927326364554997073708229145151522569524548836388394858662820898389604427893254514999902028146569397118050405206481886394526781111381958707573604279133193536902761080412782251384694137961061107150822501835723506117581951100985092611083325999284049581836965848401812814843252653335544577209316785638423224646215831683319522894095876467237285103692125896675234863628508283125369708949468060907623300164660933458181952345470189163635208998287235535350527913072777605686398915861165493970940517325447410265363862996110263271835530594088629657714381706376347013574040919093752084601370204128261723536717514421104071357069690282544176358789177041003704776135195242376197896999425759598053088980331471990629459573210594850908135939675799222674193691137833264437914827207636729020552700320161867821124536031313728602911034829993741165944970531684628526702790712184823852936465359833038620672030578657710813593990182236278807209307441195653345411453642072597302752304878296206170116946233461819170603460285784989014445867807451942632841261881966652485526614198504935722448750338734182136738913623578942109959951694673361559084563608327163289831507327751592097812439169554232494448902359702068745481897624835213122924698471890230376570799684868448371895727176565719040731305664080566198915302903264273562729233297878228811783494058821590759491899001102843633245231766805664966581470930531481504955617510533437733650671532927282655330487723307996091120325896118665705837661987240723749360511686411624100773228883307616501932680713177360753401043169548864122199579280209011350654696114158143040600399216061878115651983959027122557388183933322177189241601818182361194457627868239300427426018522440208417208446593260623829947726723703583576303052880803599689870502325908447278779087221580984996016634131672128304313951088287224545410125563584016530660719299300216998182841165418611859846385956731690271002512593825486883978374955242813179936183829282129675282468514049706651090243496170241290947412156624768004199044727189613315226471849997954683679561709371040724191436540396144443010553337662890600361090834116700590866269840082559057407610053375085621753418748767337968439679273376215617049291045667177540650954028399016562868823991719115056755565140091226397226412126335198390762127610795384076048299469603981778135551543310432807022664136891701204949821447666714417600356132542764693199786612766826278794801743908445147706604866035638242067666448876470755059212830889631200498041879017297192504624385658738491951297955457444681353477410648051726109329639626380065401626801023852312515212448667968374915437163345289371129353942689075982635804237460010693671003356938334154304393495701848724475663376009610489720708780214547395271216173908992891049250647571951020015570247555719317576238621449161103570624523372587356244080020873693935395146961862467073737676959163331239555244120552248729570065669478943240519132714518755015173145669541420090453233432336679011289139624116248768259652646442554422790765809720414752860541178495446348850772414414826562746183843363871375093810595365658795472191640301226919467039828181001380543017208345730329519041160530338428598339363054743939211670601064093993190925778314083533322703152989908172524668355920298757448078657051616290171313962422657497212848931903669508353436708349103923002492707903954813947697575899063129008762222949939237284353164956614506082219555387644784377089037897842194653005495572243193675406843503068342950526048341213286921757984746558289078839000709983156295689365752834184606890352267713480981868764763497779141174723207635764801800147496850093540780213803406487873956730446393411198974419964189422514395203139732317064010842072880416432944696974324977286239029894036062268944221742961348419545355854593973133466080671875446434143391922015179126716409023046215171882952740062480588494588568964301996504210270488374791364055309158267004347223372141589775531275267195622039932259137810054590969322621017441760070109815536362998105662857257627182568073414007877310943347679087103589079450886919275746012113205499597298151416981468239299724342121942298174069808521198159565850706362613618015394649923558814717428441757127521905802030248544768093393783685598812040185504279453183318077949995021819415993369208802312936736098334238536413422188155382480757003743033881545836038146291613606363048322250804388008229256019443700823318825814473125177722629262645770359922647698006804442089157452062444993586784548491203669839736654436656776318322819113092189732363707860812039477475775235673284516162265656360418099874930888556285433573170132259249442712296001390996997537790244128445978369146805555559927306327411944598200082630882759809140101414024585109097117783829819247590350167740574297528341410605072009377469177430260524856974288896104287803897413404456263185887678579330298195387162170368823734804282205076843914977930675030168025771907120485386773594819777830232338859964827004721440285346755652422613829517266357366488091040075592957659230003256662364407378696451044974532894692034584158563779085422561650657646592837817913201075238121204127155570125795118207717015190609924144122284570584629034860351432878619862517972153218031934540050887835085815498769062886627486829351653323145378570517986407643212655459486081821068567289228602109241748930698767804092218549930166661747088151021541841422690982105234710612399873511406752781196813618057834677755847320538690694255455140437648357555950484509173202843535957939513756213977799980834214680459872723348996328820346603688494271871747457282320017206345676435788152810322137782043401222799842423444894380006444963262128110606076896211163866870545535511219089016641744703407115226492131989032800927322228928028302604854078657860343044218889454714382263358598338711936209137705658901182931619121884404903992715462288941585223123748592028373521683828527122158603818919669600992378556644457707005671364715029636477678059010640681187850253371171950261108003794223581976826550773483283009662642875043093179830865109746104674293637110144787153478372948329517017857596031885546758105049318951723910250616640982028556616386516955297083621351553372278157684316144190369019436307125418899894247884758529710536381556546628617138664362503086623425945554947806323456452001297626762379036590615152595479796419595215962552535939425878260464584156550042660999792052084918331594224571122313959750181721511640646560752996419072172029159208893288601743502136503944485649257813763142223901631137040203743935415579448615345207796962711135016731533062800194860075456018574621386281298102053648092295896883541425025318223875986996765523335151373718052776256258230321065519891987745765618443003307132681966314766957200324113248494810155021744696317074048616562636134632351204249090717894743557574313044347769872856403807240816267578207429448558102852714369211535889901243856995940025885882328104435532958322697754381942177414214282967587632927795380041167532134587626904078256336517219272369387325313079592462354607003167416081401473088780377090033699672750758654130222200418441712625331495438925930357887644052944401007019967023044139665072473351282856152443112226452946110432308998135530922015846383048671592878093050483016442084350722704937836076971007657803562086225066809554983745038475121076819776727979399722021084234906634180096411934505714565091512889224024353044126822141550640237641333450675858003510959147164030102513874028966453097350543160758877912842790742154025949440991491097986755966332880558677776109374351748380924510682777693162428649448050389085914677770619560465867092101775961615719530433391834289025000182818958389729410623323573989954482557085309276704303643918883827338409612814781051263196474673944952896617042950186024940541416387990472491511417862707490014666956581718991644568529136023524125043255056986460765461179324773499774176222638829804058599132113253830646689734607029113823091687596143746883281532522000245623587517456361765887392330663200657098971046324613440145616254726820083821376942784872829645161934001738175912532482141062323867500817360892798371704337872446227833486813257399279911631721626011466733544402998788110862494065985498020623063722624182527722622584273312306092276990572761438568205863741018853325888463020299826777820708645591393068691903013670331057853736034125707828696791163180260450250739708730625206048531909475942872398890747700538879164598396359062009577447052234170492454466097943941700331115496312738387161952442685656023338066212498609924442365299579161248508494732158136189707416158922985635643337763287402093061455519536419488124590721231639894142851375836373226882762504686464766149827027319817006909442672611439664577095390582719242207840224539799207871005876560240670092238238009554712836292860783720641757780035907290660407200317294885752278011868174643890412368541336640741293760863742765513528908440312099202681350296089315521444127567471236237035593175135310717472585046238766908123328862965657849190093180475410515707794333647138305157078210827429973061143057681306938116350028501664634491043289880029956916079406262102411751626110645386600150553756858897607224018596863821334168557781830142470881277742898894426246474506120407063056122431702746913708955128776762503761450848119094749287278063148723298070593075394803663960328158330489425531450642362787901453993351116980297201876294997963032107069721657776592733522360786614045259050574743660756369554876584249034402142279727205403796088621085207506034370337272427835463078940688377385819484732341389080008430713585024191572083144783996362694146140050851329627126202387546958629454529341555148216961203050927879403231288493859846038596392094153509015269283803368093748179471006581789691405685528434317119013747894446536100392935782514758056110989092528749121902405793254351786310238245447315529647395337420990742863864003701360313894374208364710153168845471430806618581318970811575358294767181418731725729771933981428653830642868555946241444265640997598702498581817751584412086830023833869838554532045147607163770423217428253404651608740871645863283910420561614470064426057311668643366470141418337786296778598616498298623699215090284949358095849814655323296003016841469677595755740010924237920486506664563308668018656151721909863170026827872395220727662939004930623286088065887645224798905495857082367313413716118126130042017563361611746810113027138092286606775789019653450625261684245358260704293665242501308738113463145774392294476848078258037283383329129338081537428085444458460761438423913768210626226260930728486135123158891492154542279082471547842281462830857370384593740350750581736461880640268348374235420096745462662483110268372138520809973407426060969819864026301930032390736664998016624981030520770972927334312579164460045099017995975513979484902917225591864780978178095966244485112360715538775763972585099629781465886276055867715739568475197422679821261231179128763944077256261475019380949751171023685583756314777577092436947803269959844957468638497902969596794235067479693087045433246129949745606807228625073553385917591982354422450467122233726271416567566094358309224793874561342578807906693979236433128041260994849860179642315349331659791135348872877197128864671198833984555810072291211171685930773014203156057807729668194646755776864307822893644256039469190130283839010561487643007110363049143079179320383787017570874529481310512070949597259168268285450253526495157390148868856457455221274360464298587572193410879555813320892089130882709524741578301466943890335145733954883778157725570589933229396814772079583664125409137054400747858317494723708356772160674444168409914054897768106435902436349693073554038448565805992046149753670657392862474323774804605889222503923450155902055744120214356563105057734973580299047759214502758917624531611627544318194143707877033202451983794614784992344308958358502217823156979840692383277848805210042648700697435413036029224569942555130480150442508748366807996518935532813066556356037783140844521545758703234100185789723782434917955727426207876636307276192483914335938951517465760084447503375524517579267898653191247648622187796540745581583215601552786502793360549658214375007125905718305154804798768107669569781863328475422936165084415278130499779797697715800936040655733138514187855835436971084864213538136118104108525106822743927148343959156941372677452103085743676414373994512899894765934183092937109039036727284593094671407124125854165619215021183170939850927764188393061993890309587361259844145331574561418540448062994630755415460581149157066857008789166207094055439146586229171252264885998165424684768209173659635093590338195974787163224124375998481303821025764571655664471576949142629271835040212563651764782595436306315602852249090621265532966491059249935630967733213516738182029773164299978835859392747434309337067621912683138325693758597980016479335371350680549293591751544875721402702308375018557005241942831231346746293028186405943539739480745556941770566471053347048977025102582367932463861858536120480282354328774996961771736344112246603988496671280377014396619178376208564747556464631864724656011614706390735884314523083901888808012852791704331364222741408601506341879577182628869602518854894058629594466704865777520219254183815088480788287060954035047663026599846918446789667537868477792255736802140145201878583203254997217850972578422748435656457758661102083446095843079122830098539718456367599080539180633155519421590988511308674620331508371894902825910200195958452068017149037962585945903124485857603264980074118026081058281215849307825512901406613594949335687132007932302008118403679018765479676179570105925662675975716572131658395186686765999258992694518207100762898305458214954985284721356857484170493765109430199789604424686045248303368527078984206381706511812108751933539572918404918255128391477132064540623116166748439909209784737075177679865677885070246542537126705434930503666906378001398517137575787673500366024881696058698741555819238104746583568258197837787825086737895286871428344281722229819029973132098219845436967594460951767781230953157618258505159394506042681322161672937141666446376831653715490799104267468674181661440720048919399016100390676345282564269603383736817872071677005421259411110709305646991692185458715850993092318809009643458492329422509816885795045464303860594863194477639275784541453520757737047530369842938701798574132220379889612493454372772473488512716226926553307238612008593102466493635302395887958230124029802717586800090785763197891587723105023942195552566881246775654798728316390689760352885311831794521705032493824029151123147090937358650672964296152622063140679168030283642483621367356686236258264574340903442425041948437456455026063988431661520336447919507352711685399384744791114115378705417002050917801661879711813142148571503433250431514564901873869634295790499950675045897193395122620647260372190632905206214791169090076458960016135268305724855458292814167542265729855876648412458279247786813664486347266791577489114082266117001224403498241905011959799305971204842766469365519805154900220795857184624308127588657353833021840270480631367701789617220465302900863217794107258245366112158841920619818594798073894309234896322545693200488604241412197948971688532565967764270350027917682250236605816019357984163620440420697723132311449028997120608235157347203358947921937348572008116235134780249332250269322532082767235961876633899469594348687453789179590343176477763440745892030497496004566528212077849490595457654071892665852136411959913969868338543654199710164861785585252963995855244365170832298906481003846669379170928898329731606817311664307061069105853049741899720883770291701278284873562218306785291062572999339401482501196355621287191029440950405500966348035065925303234071156313594427271505357854761155985584236491455558794684698593201987675843668807662706793949544396219762434725359119899299446855146097145558134756737559641520162556516610318671747074207249235221485541282778508397980475319667543059124630956452211858581172190232412334260911838077111202273728378924065125482682960770219971389015049445502110969872280844331054450613000579020456827723994446948085206285003831692299896309040525883484727827974540585064389925537405345081817027942186209759520409298541712347226628956058282546439645120158048646791767951823172452476993451679786929180171055770681802463917913008500065588237664425564564555960946759312145490055103902584393346499482046685087030153648737454933850753711693891684009460961661447044495783258535583431463674794908506089330385290828429244430118555425317547372398482424367679598059689342820900474093726572194979848001085822793341047499285472330359194886259489123108270607493145859266468631888144936034445289286501680429414390758388891335033416851709376069895716384417782313321091488958635837937760592776900463447348447595162843607157303223742278569313404910040420755892663274671035015774074066495421731161707223444374155371133415920083861794509414422474607687918876016261474432180901848936343714965093339757758144508386188259588799303811122195035622154103550147059965230155036396676179629256844504437624798819451424631816284351866974642125531631517358678397488298493078598782227775334898679139917183807402192975702516290759757136215381858803927595930018420582548130076354897238137709324964218481480874259293781706027072835925871383973254656547682781218029734196632231838820405874359963520066847317848626025433993349605149900780108897327112204232226536450066993600437341205382222802479010300603038269733437145256009458245222965578918999481951734963097941404181828457494218031504874317442505447898843957521554311334474028956102871083606440717265790488929886149567349357724765714638672014730368643991137380446391053788318645252504748559314259116925616746636390755794189246411119918477430006331542136878878358184488122468987836588637095720896760286439153966729289242422105556993424459639298726288981578280456502520256919005625376863754342665660808600077237155058503032072085695842224398644168407369763157444943185505633996288687785629812875230878668052839591486446275780748406901148064367410866406461088657077474979834699507835827874768562508774577340334328828246897873375090964445320536563488801425487771902038747396603032661897497981852002245921744745631741804450851405733618541022664127583948904959153882903869007624691092525062851857982551444570632819013242352365661511919013877352626266623214030422535710409835359458135636985653478601506309376362384277810689701548691534424612433518766012585670784184890041839598945217008449902791006543344181618471328119766500616949580548339834683498603940553317468241030369304192305723404976476578028830746108718723639073093671623064509011938258517141012367137249288248769224498165600172747101490414519571273358313960259935241712361376799558179395834434342810688729337385536878724070976234047837079255428554997485797916619671326471534860628707899462877017987338640279507930039740612486339748777024883709866093290244589025113633043603878677023383207923035519274757618000767652628411211968143522275329632842646092545714316903349393731272765318280992434722121211419407284603761368108864749180240619393680574399920533910697324522847638559195466205466321143915019570071378505733999476189741527005233803195978979800257637265700793315304576322180700789965102113922315898722870356546035036437965993882878050433426690241150788703511023351245137404234278246721931209891047310100260291220696073090864226467832490625017315468985410875223891820148114658118128363737547135821248528893554352973733670720123923178648032368115492450727519758694678123064511711510706889316166992978616297688680222797605094064273473631016481275746489885982251924168497416071585273722813862838941178951415704264432420647366562185675900876298100946101925219194745999385029149577845153023077861803288114398832334291454652457178649166055016563751225099657377086692309075737581146102755270192118576229128542553735977274780905567674040306661064733657434349267925831641668756394129874278985152921538859399965482966935832932456876736137114646730698904986273211548009540023461539699499978942084434475535844562250896589083314865023174173794246471568983988169293274184363994809602893205946244969366382359782354691887051065366122410691183955041996511231527036680195714464739721045314169276510450457166338972047066374970052271859498139594063346868725101761099649630364663965365351057016987999636879474653255844331828566309587468899961891881985584297410658001553947010145338145916809489175022691179425326178594040787092004083089544613109750488801230183271944999334442257570483808198325029968986393392729643168049106243399641476299772346459149593112003247262369179872948959397138639046507579121505408812380580795889757655623757252820404009582819423538037554459302560491676015504350709782544199781114943686555969218289272990440415527129312842903686090927473923525982858454733825512656547476599312702454091892636983123444960770442357296477754331194192044662544471666035630936936549014757065905169534550596262794504873557437064063273868397100803532951780902098076822772548808167400493795910269005381729193044874428802852384905225100105645266275594411565212202727290614747285940340515978764554049601472937838785637861356466663280373983992464644886246206815029794271899534773161577845050287683671042987968688162210152539835584818815577327394611846773877851044652230897264456405420218165955733415166409483523722039487875110015425099132017647342103474964790701109934171109054427084509159731214488072950456861762370860051601318863997894264938756995686758931238594192698551901890584481863106240539112072983625642835093901681104992757003904797165096950890371152804971770437376600472259235837235657621173347521496139209381528429178159004019826716892241447784289882955122491283373790609295092293259975577509686304804299979263251301648026541598137814003868348609954632187731153918900791716208873083195029460234258348159782904213678543519663990535472788926151008149681129900914249137349738650928323799926510593883464033333072255126172043820701919293018272704613812354836652094340322239794115545125223664012607638489109102155477976588772557669858294722916410473761621339826646791475634746993474014051863966186791524955089434982531035919000931276948681488666497250224870438695779520848581329382343660624638605749596694757585482373046660264323567863090359592093031845351238344279865244867064766617833112719019213570255458900057810332716245593396196541798997984510027137815402312882809435629191315313826807658329764194276462593292670075697446518025387826153907703535007346079288454318140933478713653271916651222751887996492211559434400050384258648698582343985052125651678652872027332378312948203714629640174525903842206597964444665214839030504258292031625271096783811208326192482714218574194281724001651852233911981745490421833610695332119600273605905932388288066850935657171787304720018778946122919419556871976212804694572505166705711394636430607841566157967079626191622738838192070189896589356349494619550600090707574021453311286479736752315391714959863597466702662497956026594290185350347485631851916905088393417900737024157552701923711615815349152975283401287779467140319881918939605531429478663225692640869892206459664642022004858869018357438681075597767259929256359826506343525323918965929747203301909790105266911387198315232481098786152253367865533334404928930214453703762208922757118004508966676001413383618393172896798441695510217728173551836607783268026316840790529975387874849793271203067467361192398239056153113773704863745537419135746299366543202765548360340070525311257860867660776399249745283637312272333878840526671262853828621227343336524990440468983244875571159398328585453659229264986082286303674198377024747316759383350770911050469278622435331715928152710802391595187287556167426854111872101560534773651721182317708884565369433279238570131573379664793027213315256122199755789169756538030755292602480499599667194057867433765425898863744344630134173641477660696679072165800298037039502002884123381685524195573547283838784312602926706400181551601864530253505446301075305092834910604018637692871173219696797208714678434167470746543435198993891967211973563473737364650483346388729433590909230290757827114184771821864825326237221938676381414858378914707121945610658469025112742419966880653320778290835209702179908214333406068307853984515404123022218908719621482254554525734059480592445621894985399459601882762515996961760536206452560905169410941092125295970645207277060644878098622575234511036508125432133994603562362568920666865191192450371096246306597418523174749657634579093123026831660871718313150493289195845440784319731276835903002521935363435654603387217850914788731195587724210081875902776870548332307258053955142840352878353945616313062598698404138228726728649164063244344648787434842594870831981661085488515378785967124331475329298204410246136064828891657953263976152039583089141401269152370820024348600881578739475660884605717895070850945212492402771182264176080672529998948059979181550403869521784316114257420305075842613282496574433009039943043681541743566617915342354653345596244221286282921908293115153688597212938290038050752086042453814313835033077307741094858686359170127690565055759042326132287593097713636447167585350231503599592103394210239708780008375532111639167049078117579405900370700713238805303226773482295957879872752529140706067464273197543717882767623424334202452041327600790423249401756122426042712128352174668018995676143693952747726094122195697522885364843188701393090514603615777377193454979068967686097957834064001478524292741041088207678975237992949926509407172059658055531744820706719077612876123531022829243948828486414087002650700150018938182282199634493313326459425547791530314296891245079006031095652263374062357005196680442770223643075672001039780414475015759843438249891528087880983294045738913837567822671298565124865023419913866637026337850489988556955791952115921228335374923669132739997195059176344114938460511448417223720923300499445672853245395333139532889594634571043784688958239428906365115955006970374885080183328953042220621925414671766535352237668528031683364815286523506478830594170941321450740824935035824760306701267123514043497823646910679756888062627957338182971539499618186761255943876659271995305509468213927554691927082602547972088619627109142294627769683510813002634805942141064840067833406694449681811226773389972537856209292454913104334121368849081919229260494175190680882464324179418445386595587777882194969381042102656971500452334527129859679594469764323075243814789365334458995744148360450727347987415478962142193093633899153344486988153450726859983041686551226767813039965011513552710555161194745226439387925002924335469895742184354843503041904267235472249004921094340052837749761410200914615753505388416470422917931651720620478351810620157091045233481292025980825199865689647116280670009972917177163838958865338665872485906484331718118391562146514832452398840830734819938463994794281545729192075939311908302743037496017712871782820165147854664038335977861955328169497014388843569739196975313657801449455396206368395177102502123055909092342738315709270796897012794339325150820960829571094212548072092719380387955175889007749093535148118326433078615463392434099817991832694381524867471526612637164224260321910789449226470655644777274883999671869239598125305417506953087284109359230306067741195653663075668210682869476541080290605786631275036712079761121436697470681022183594339422603044511664654970791399602160594856547884044012371902088862721564267605587966110462178600064200907557093242446442624333910740166248292271364887695896192162181137765662096624935080879837428499848234585318258236904978079926182782169242576856345623415397859183761101730693339226264785806717265846809917724207959794772702570354973524911632985943308547285410941943148970230849044194921921645451726443645100917965278370297929878945824257387524846649692165090139051005888475814795488496415116111297107612466849776533745531256411246073912468384816990249805481821808896201441793693585056703161656740710536377637741614412341630166771824172602546199086964475298826557941889355633223026334058563109024353951171215438274062759795156538322875416068852855801038988276002096067520643766692119514165751602462627127683721801586545735788920084552732932659371120170639159270935869693488804426605627376652414994304179650168681742748963042476979335634291864541804754067664972230875178126582185223288862840095756210816045076679783782829157241579218747238463675292846000070354527978683247179429095908356937187081548356066741042383413501262169717093092256838690085092923331878573356923596714105197089598580368646779470045722662694772851142643045346462250390521687432046841181493485405643764514814424715936940521320171140130915155379106469427382915591029534471757258633174807718252233927529145595349991827991829298075084755829454858235846433514344129237661515788544542242483534334215854215801667826826150764710458939732008368242523689458338278962743105716322260087935474854334377142383217033436207959849069120163767653836132373611228526512011916658473497345988588650865946118661230997184001874754598817079214092655907874981191711359647739410290806218811059009203801699117215122071150506095165398839297303174301366258606909730224690601381565726347246808614238155725703452019665604921648935097562241501032039992394502796522628686098622855876755164890046020055515170470419883540534228801819492256093543120221884045111796561163244291319332859887782545484052188675197803766070912434715877128215787648131912113160044091187973056031700025132429867123891011139142139357541022308676225629425977662381425260821457043188796616309760090037294904461446331627028877303747832074229069834203620281556366128307338269127053370476524033948850215451970295137728579997727922787781604855760633146480732042139224435954194295256172702510385987100847042405251331780736780632770518901693182966824305990718124896235066615885902022924405920682628012995529342597908233202070888119039786927207080974872799385162597812821474877002446656056886851195111102119042875533967682382933919476809925745549876007703916839275257002205930649649928128634217271591917943153125133483954479676542716892070411224870480751137871459570754296720350679298238907040167480834115514729328500540135955308219520343544947622471480260525040469200662562431322181296235306112268186419244184413551557542565023146191403755516108363210775786470595318013953641779503464005202988765428885986924118863080937007763120927561487058626730660129114418703701994628211212860003180564928387127576147274816956575611172802312077136175354237193043646899891002698204654698951301844700693522927824607484675322285024302069812529170496285925575951818473550545575219887823683125504188603750667251995314497769330058162485953422600774091087000605256747465261247227619780695806225145332053507881979843742183571180397725316208317807201901483774927974881683405775258236688157178950026428737345212421865269502803734391587509919846087119044080048558844798338019846554762511205733188039434489381021625173068220839336502156092987225879339976055691070462716405268898992036594786955480565774430591956182402077826310602562122206185339465564552385333654054287757559906528819619723924846380068695161900683857150080710385470461193613572562092106438677081983297561606891496907573698280147405470299386784842807202406407142366464816857303281785299932353994264797011435134188697872315630541392881053085708261436977968568410867253480463405767066103310970594255571322869386483078406534922336179233797694720009868153601976152032297743536557880552822949935688654145916445524082261268974021223854791506640195896668892173203262742066137591211101403754307048062438319307430584210929040306773711512483856592422888612307940610208075825465492539722247091483165758300347826135116934329096442615377033026877457771063122973764188853273667669949807745908866024462368288896677838730755571553351938069238975190078400756182876134378609726830659818967190041450469361141212278175661551799721664439660426580721089756146503863200994628840560705057791448370249535733229127291768114954163777995959304465611894049111793303137600079963799657483000263131787380170398645085839987475447435313334094858411327656493175729321724962237823033850202046125399844873018035606968931752321437041093925632838873846744296500791081422305559136133460621451479811114378210488190125615410929066245518419984075194557706095958048051394572588532409767114405898182042657722382338704468667515312358030416367965233401356018377915801750847947254953210439249791028728836903779538586421801226054480385456984129173022257870799132806364987443248318875958455612619667399874536258134110720013830167540517385490936323153738622176078193025275553619644130746714231041924618850521814889452394450520788582641542877786074639035282267128867543085742253449875552901332538276747873056529547993632870764798721844400630430527127061894777516631069373570016142233506858682662546930690873049169921514623712646917682775503768570276342961476476941798442818796709104701916387864421238483147028758029699144080019167832081264254429546429558629886373372479136418475657994066671071457520836675089790932666184242705641158978099948232275639893334692160803047810686371289108528610598481561932965681256372451032811390602480110452026362906101740124686963692122976809008823340173811692807883223578518272049557339719423194577639268892111149591232875220911656476272572723828860083722588841237840869278665457069493733785205755051311753156005437300670867789968793339940697610373328343714810050407292338886889802450885102374097596465468110377248814360293455291217633825308214694042639207497999461165521168752596334664040625452188522210979909043153902526329018904001180375839538827129077323799537458492841869831836031993569202539877528343365342049950337016966722884976252224465892081776667268148041325732328241884254871106804424765202107863406584955915248142675281860436632494429354849181257644478493865470839113040410756157467165472208217191441008160317696990069693982601580696737000802094414441603897039760762708651329104220726944344096159643596910097238644479384127732985185749893121830395427878017985519528576243140325709407941182959387819319451563661141492965349310751493135368320853069946990524406925937493905187358883038271117341300797563472348172476426960332275365715567202534347367466466379790261234935861920738568964447156471737391260443902396170797680295505533037157861145964168373537011336204463366351291990459932848750008787438981003284838268331648016058756735695204598375806071511864290467481185415888010909674615225056819242377678818010030837061168294501579852097370061431638121968156751534772310386197061726844230053422569663252765183157328285859259715745054187146992769682764479559817440206947002803212252550620416342630373230891325779626359550766694958227271692450498253956559887989684135103080114074024448094548391531582289249774413849110091165515755290440228274780360215356409668606683132260769886116562054049449780526567119178234648572638343234243440770034490705814802740806404080395328859372066266298325290522246443751983559632669548442458372391572574946273716437090633380663402295166033458755783711465764375767198800634538923303579209874071441046941151010499323523668700058153395693087403083403686488233288039492579327945717955019081981370062780947788365127578999030901347882139989499122482630073325212781024417249394974252876064732629622224990874882632073787918678704442707457301057886870543449543446246137980739100805515699104865432780464017293214050348695386340501468032437085071058728815078291921929573436548415791843910926123684600639739262484223843940268002738832159929302118174718097610270884386424516029656614228022010718285707337762802326196349402777947481629512631605110026121423755362708219179843776958627528628116279038672074659976700860375346213510471373658683346266209384315024252161491438776878551675694383921400694760762376681984516806747394984667136873703722639549893007078929815794753860139053308286829896894320096375311789322049975027055517863868817213777265569668485354663747257007714995684665951288619063318071029931900835488937815331968355165042645041681705115367186309101051995435396004496983475225589501608003702726473711927949983491945957285997622294659751285603414304803311985478989311894755079340214015028269065448094789206171285985545133604846634256737679549267025755052199910861737612130423257987084980849790505801026683148940661288892532737838869360449694594711830817884331975375127440177128970225013272952248995765417302862768027153432945856789135354823046929297740999361897737274312451025135876606234545583265441142926784167910232970578045383139291568714223838979688030758792283904718498689099001995798152186639353621315251539554451029552774650767426723448944169221984261796932997789445571108818775902707614751893810970918824639871102565954365030074821286223736785948065147927120817280580536095065953597336039592085106094950606937280115528882054782017780064933947177428909266504918598201526821113077650593199818383173230002195573756902918242098600526973725500339415288661233391511971242965898006475929946078281031972122414713992251185095292349806975868014906073786942314811593144051009453562792352872629412342698965275296083827637853711009286944623775908461027969851541443735886415963036330903390733796041878774268996886347356320575521930317587618171148443930554939932139182619597063526227570280216253278084390549914243699351920638898088290920064732814367713105759274499239490400553366922278245731076277179385924170436713793058615126874170128066978448679469302909870056132725040237271838771509835727193683065657568047253308932404677123280829704025183963099991553551793724891782082718578271581766131830447903834378178345443929599326226468557590702954669805906988484038664580390377050804028829422637271071306943414839074773773346431032617004297399477623621303842245655171296587604978281653081197933142386722914641823580468038774316661169813541136296087363070567548580283837989722371859626631985081575850723816473942172734604961795274830150175371231515695560851556938707095728691904632426169181365460668782378364417684016746689444733402628699390814099285622884717557081189327595195869849818757996688512829587394760128395822946478061139720096178680228801163473297939876853486301914415568734308236306766195445686618882811300032397384423890459254826956758954830993834156437022571558141992606059057655426704513810930653590646101871068344787485247217366198552168708553739398895487044571458917782292965621026670012515124267435356130921539773743815805561028975653434471334139898220961547713860139297830217099967597857422602366948500897780280842532427999193155371941753765241141999495337233240166703058115735303012151887614407247208850749203763984357098777937726224856518072632213574916172577117266971370721065803748605968098487804331248740412102960457880151367432178231710172155401135850390664153762980051092445894507219794297477448855825886034018680310874532188537675974064409321167839527416078727679761414771234165714359706519332554578431614287690614222489709189890210262941117613436511077769876774947113843578753907521275267141234920262706074927895258627941302287635255350677794151954326593699368555937042882996695518625063771454165839638200971055584519241991256122714782874101356649633322747088735310576902067574839013782780208769879718957903701346881727457406526607356791918651853188462685402450623910110332848552383758155608650744984953654281735414103935453533532511691424828931758919496741189444209119285517535091887762047259672211721780889151143108897498944815849297593686705497732791327453825013382783975271850723614927618690035302050607309136922435141222880495587566582608698614094467435818993158002046418194293527915631388903375797939976918225867320537775740949260461938215485479082409738267005040083602246040180129515412653638446817416456022785374692889564890311052010612847810740470633417813501383186345768270119439564811378821916016428415138559493884939149551279176520312041700823243625463960062600034455615251102757797578389473425399550578188195889400912043246271545190183206519284997331114627501702151035331763526038557078140321131410872452237434962638755119605766677575037513834713407613208642139023964117666959898984067276996145178603331361818512163037365960649462434662681561144739782116765700435101204278010912830068959800303794717884467951700268540125052188838200503826048059215501887628360808948270588802276479228330166567841027500489152153678686813151244913722011619354184504710280133086209574023066473464003145805800390296563594068320785269869438571077536819389023053428275910895428987622497986188537824957002877993163473234087028279256849754643068301838779614434262748967673465682183852390483614144768788748997176629046861516927362043711461754575767112103238863814462406442149720465270052086005866528592618749281604082897605244309219109309790976823532815293977336433079865977267030905082858186848296108607044911778266953304047481893379534583561023397899392114361209123202359601808359509305526825490675861135325030964288664517036610209633816798580682485869189255993039295247539272710726518523373043561474993178660349824808172157124246052516225614946699122659316652521161789954490451399289114284723391067081524044912088233670921476969981057950388210330908393033786742568605656413332924264046242986278820461804245488569593953161928606626086218366395999866489533893996153075545085777038533521668776275437188365796774553594939942134653571169677166289650409994589200821403985097389340953277117776964397547428408307639392186451013916734679989740644209269737740488600958296929402422221634029567783923675085658192774789228248516037640680386098940662796222950777913897866580909949392854801544526190712001457144706035295000830965426354022138753113225381390923465615276996354163028132593008730887921101834869861705948069850738325381612114436940069252314521487780112545048825223275411543121959278738981871919871236609643325294400006710613434049500069331852432138108866351139544907413668919926682906128276344842238272101622926810274606363942414041947750217936456555844834327916816736496566022701479453767311041812371458717929373064840546906242087088845037392625392633463563378586671741822193941143261028020424533633874491163563506513243791351455789416742037263386661373232644705012672820595826179746114947211357388265080087090918990190136390027134377158413637283847132546562226010981069077273591619359600276871110315324945699026104972597447497952044368166893475863536904764435090943472311178931666905764798202910773397450460859544526978238852230677582021034536487147638055514399354040844742301037680132579466867366770335262566898946671555907985224397914044563878451720423333292401861148464607057686325669634783051050312836156088656747334686348987957066400065576381269158720077463448941294407582093488270176451812700893890803938880471366210511673292264933436418982444801434759207288012037564744477572338719119284917167648542575000702800911458882065435407997615496038913302307542172181398080108355695312374947780632890071435853731628869001173444653502511424929964777400320823171110235601779353492422920805730486639193157694250672277393506002672954828548151535795298979881123360285562625339443904582516211697125312064520896454280593318228383663366498752794940915927757696272930340574122831940910098238311036526933377057115309458311181695758858233887619877700806301959871682451495802320859714054652130546268954779024316756099349596138337647008099877460668190409262412199367365873796520510823696561762415935188068765353035421154965604023545615810732552976210588615143039894748177374734686450221915477592787904137402989522555106380740337214376208208302904661796200984345199064783925721669163146385031458304826228644067146544646653301681480715009717941462855870017753666931297468886355509925753648817398945886441426372753358554198211258868703797024832750038133388130347122988908676974285889554670144757217044092277418569840418058091500496876137761311468523223291194306940359524113152904895184572437815586366665830637469098729325536207174567286862887950217385176629147108020202506595297075506845017498145204228506823018150031216878499565906450845354860017015172926450644153193536394362364786107822404810786548887432731748633050083558299181622638080008809268879570258755155165657107240226125921769345620082389460340147458085828756401505976820165407784308022897884950226454268014275487594232558249474502368434896631599470329853021422036878500842859325637161508179259146929186289688101069731410298832287825060599501694818803079148064584137414251470180273828215575989093571849790431480952046074820048299999386887427714699328900067298108856419549501200287586876138222210309788755690192327542304699043780932759779504177524848596083629636552889966451127884092075067531497404132287994823541133464646873991468805514178000251088252865375596931718232040745713982409386813062506634896814010727045130273749154714519005080491748085010095122728852668967270939720721679436454900661570062878967582540509242504225199549379048243882735431809768480697275300151350388149838731222908347777326022595223211454532883042924309885604689291568841363010709522998336831158420824915398955058242986400324521912932700412204921883236601770981941085953640640222183375984901895132540866684850653088659786784215526768492530095171721447020765999015150238326480025104117302132666988611642639193870279540261568158868458435420384629799672243052259442802404503287589569155738353339879721401084278797513720771447804472913821067838666630239053741799651864007235164034444711347549863846483064853797449635938331760413811830866318856436542526799556322752780738515366068699341511595522609835519578765260407871262560090074456599204053884835444908245427705387675489628003541560524860406497593674967850810600810815276027694693151667301281869448467962581834948144618756028379962572832117729745211990533325896947753798061605561479808186993006008774997354944911944306204741747589301079220050877425414259734841282189738242336365318776623776655264620967036848525424597863061743316431155331019305339141795852186502301053074871886927411953789769073149081619092492620109828319466304590205081346697630904593666913532075199431687170699717319802031698022615151656361723069594730415743418326848389587571934174326875107869633642095332211223015461675424188740012223431460678609449698586552849145078498388395653523802637922886063843092241026383391220936642182808148082620170106185681349045819551161545508919728382774239079567906084463889025323839898857055828215365891374342925132422431366293431381008870805698069793038195678431243232261324737900376361659310347373309133112042891934235955981868876359399482833229741835264744711837690389935314528456868339190569205886935633746461394556342444929244250198813246140193333854041061350410396777744215718531373247891100692108116412688550864212975603507691650803868581141380549705247931368481001436207375022803138435120960583144229071217029605479129463397627316633715734641119674632150172953130009649460626917478685613179731649663179217571568584723169261230964544923116055516537763426769152008698059104765145761787413743385171200012202493946293998282235057160780060298682377610027322043728518354582543003624254897156044040170441251990579525707763914166913692862858475401867017398517979511134880870200464522290143750913918781793261813725431028404905475769981293798549582137712540887745628302925409558737902803597576080007756123721504841561467030591972274086451228884016621801976653269210882089777283071120862466316140095921035493535999229689663970069357537016291348808932171891337326756342459052896002195817606396386440006675818435449798171983215193829874017791823570305881414481564934622950301479818547257678517570478661881039098228459613211579305023072571584049058704657791664808847140637524311135283141838062096728633361581372727881526379145199269291391580425490449099218304281959544809254804016176939451352866162582001901465388475827082412840660266747097422480377210554064511527119096978636207963109388074956873003871916618660425011496579381626865054391703931146351499298850112968191669931204419951564065427745088068792310598776928849917854383796608684210353032360795993629072731652214937359957444249392524959454716919737224661596603773529602983260572446535649773619945816469131414152557330584911617088661418152899897310203555305679424313680563250252214967788978504763837855977721654274723655623783333369826120771404822596690093431493197356604887491725242821732003400914549101713079381292436323420912078776177644141947191001495272454002571361900963302881504089087578462069277194148224696677732525420012497015592311763656676872879191000158760761783886910349405236640814053730056317965915442569408827808992929687275078537909376981289018444349408789218131516861228885496073654208804400036319752598506962852967991367231301278020439222200314018840676756774036063669178678247114286676650811725008897836301989182389664634202854270635534288617113920774767612289527118550408810323091157337940755042432810530842387106184919201096024336364554689199975249313815675498722553315265810743055257087639679204166048707153828302526291881724445775836639951368675016963841233610709617525427515937491888974263801547940278387861228932547432989481113744735899608355234271357169366513272196741034351995935618180614905497792063394346290916609031452198920873252043096527691595702569544546407164297216896221376445801697709083259315800957640553971561031727110859539356816738006335825104858277407941408713556913449979368316596889921545999150174144539139207208518262766627397284777306903819706207763186757580674455616879235695880907133007804430995640199929165625186969252408864029406796307405945511066271302507346087522467465815020576081318229531391459482685063485062226821942090040730691814768199443286997595106316669302218295122198459512297263011186965645354567234928265600042405497365068062590362510519315783030470012347529822245179403118546192177453812022244201999569589093215825275481001477171579670818670450474860658226132892515325520320339947416774616191251378273881410596189603654918293880828201144708200265678133457874079658503643227438149920876378709895471580225887240694666466546641285232840028900807778316229502420210951345724021859259209767810486839511466275023396410694640999169162380482309850672809684628564498822307285517537718359061832356857030486429467268773602934597867000148415721228853482972371843088161694690535954632376620806125430597585406948533439659658764321791884104616834947709572123202717922133497252589927704317840098512286325141230763809980833787890989635121713915880722363627775714958350016785142611674477130464562140945627631437660001813514082530893282225920165001048133169229235727497586277024575514395900965900254038370403255332531503316593248621670732570691092445637531555621354063760509338979889709036733958772720486192427608892274041952245322173038356946239405101212278003077906693951411519593885208706576046196087009626026407648709349956593866981296097104686229952951289288564826461663618809960707557683480446420194990735796835348993336728976029206706686621439502904934914792724395839884496259078881598257930043552974489776001824672340927752624087842845007898451697261120587467144919854678092421092122600818444312807692184335954589943079962830535669131696257020482502177489680005604821363929660460239308229832572969131798875235454615590620261600148567433178776179095827477865966872889496056474837114514205221600601546561061028747366501485626356155685633497272628150206038504681479730892822162048932995194781701956035944902805327661882391150527452402951562461981207745683302605474059856497616351286596999029342261911173852538173702268988706822052090784473813484951889500294050764941828549024386027300838672575310213525022984505500728976183620881461712088103866021864671087380955435213161931740850872869736066474261455851003203342772807066022096257038844189842171387229867533011354420619568336893528849393643602963400047526223302873106496968254109060240870854391129099391239664456813232628433355582632962135906483330504247627269065130776303893802758237398134791608993374034236209914477622145772549235621266519871463579186072283492899693303161505725552245135440088141105908469296642265983231289029917754982530438219775745472007298689902003759503277327322589253437213900575567863357434587608886892546312770633475003215065418515156944728256589835175080428611738277339949266682757427468379680321334132087886897167008856632231461294278959445990097244721156324527718253189424232398291176266526115384813041804009900627766663161290730670744967973722875415554076535994935029489634279332453086061577693099218426946036981083839099639487117461267186982999226544761121516306042178355014322273143105140728160943245689990757791007581482349779391758043259760271738504929959986561705031442122777624940581443940193688064846572997980589017024848081635017504637168295323130854491372007527192235720198190473115098641197934144145878543393901784025835147351311467362925812908071603031253038914739033779925347717242874147832026560653269890280693137613508105491662503943929263310735135973501562742357171434176140188549936792161156652469092987494393470445352436553949151271709303372955290286012670056856186017407609483151759601357581158435556448417439009079508654313587382879463919023366940699678713178507080339456814456683673457296676845183975781658408338062108908197124311333359564977401722137730398656767185536368952491031103388672473590762585938062139094527254768081320047684757342337853387591033336023736350371737888160353859818489088681696892236625892857246445253687039490397072907800310192763373750809200845390629816965071339457318195585452305088268305869901907108850838890811745422874781533845016105751643642845466922288760710600253115448992842402337187341948859915931691887261974495939328102514684891470833971679352832823706673132250038772738613868891416056523322079960791458251724932901087323057241377495335680134152001218380130270043462916325098141028059424876583267504153902090871973284384514664503610197154587503118256620225023026337252615099950771665060634145088712276530011771244471678745028095999522093694936303998092343859965146604605372455976515246227538355601911284881518548320798318345030713385814611632682862595389723252716787115700203927642216815713250066968810218235822705032758953082989705799314588269801259037857909154749362837388918730249510834576625236904318764184041037719797834727428137293646359054746326587604846800084232715465577969833078506061595067498369208399998834239951194520754100967336393613089613201884799985453425035686537907888318212460568306802539487702223462750761151837947368897048614994074243673580736517612279038193154454925461435393440114554649540997674771515968264419178939052187213412871130757011636362617842133883001502872732752040101575337810505599025363900182168700587465737534737163622089584438443094856236487908404978183704670370688352355709404834849758932738545707245294541675175143060551608027735080054751155002746573621504097932764289963377984225516025919730045790223060800145806100941141370273962289581037864585539314530909548314501442728256681151414039142430576208589355261492584586858528045093585929529481835595954402397270329703619172199517195539864998728909748424670360268536312820518350432205099566093434580160171093188471008237928718656734259247736053378019440998179921727749268044105310913604096510230349298769110118516506472749357547584617409992027436418179658934759260753333728776263380084128592729234896849474813935936946409642820032657910626659566757772688602235207564188034457245478582613584075582824963456454826054744703966641866847259636008633903511149646559403419514614460945192794407284982855124751319452039042183799486468668019171482932246770541580009161491245384351328437416708671617509428169744998874271163140698648761591978012166614777844674107146226177118679856899298579440875976493303580435903916765942567656993590023533686081564262414745713504248462819787230173830468987428773628174593589302402719655191592176227209016452968621517653889669956152312832673624222220466207223554686202819215785176842497865773774433016267406313766833312835656743773982764525928289596329613641077396192853956258968267036176599862048886532070016533968767428781060148375182267822279376482243652793410393867484531225439570896326552180111575968136581663409744922279368513282462971595706834857754798248348530780592510432198849028466579794763593231177528073782772033281163311226546496672084120241475140285647845211829915097458367896612661743897871083359090195657068436363735846739745601797278287861998951473911442624517395444006610360710862150653337797507069423782620070818149230660677298228459151120332575443588014919122432844434436282408730289982820960004202538803744957444778562403932325106516204525019126299079595444041311100048339489314143434546639891900058310900151895601922114780631290442217255847928611998761676969041073676313255389095779573856352265210566823893195732383268334426760898925156986889206377735598622710838908048009088436395753917410050475495835830770261712397037397186693545049557311809685139049813372936479817661346759709842825690782275371559512951862405012448286507952505356188157626176984083994525674516117143743249045261957605567185178476368949683757052741221964097214036213086960756275110863661607655974190202232948084296946024680718438953106520093933916332976367078667605235239174794477011034478840635340166169947183959023078548881927635077714745226809603000271738099593458558101046182737746728973249233146287431253053755986739912976443194255872693807809077526508145211037333249674525849646319677901187583130051760431610041295230883286047283543412982867819839642603630583644420679208347851434348020399532304433308814641308000600645377128879363555025677173203103913582451990477410556574018460807142091771684116141221326581958528572774595988477819369233677636701222740656076508497266551347671269463535872126983706177323374461288065044002820180050492389329633812864766519903048754662602237279230926801998028708253154037827666756595328723807027435826012953933093696601842627031294756243364695967360626558085798520762487703725536250260275447008799515984803691184431532493761796934282846204257442992249805918361278614346506423354109154297672208550891605317033745127780158261447885979050156684846848534708504945656703157084366102183728473088064904422148504131636091682241599411691524540122638626028919358346644359004895582787498850125311032015957270391023164675909934438888408817978525125094706794170968149980714208305310350716155464500729218217047180660512834754190620169405562102964111175018910313666100612425453902800907533765054270541725926776730468995826654793471429884659832199002034138534563802760514290553218049116465811247095411581881147126941098496238188362586482849620089963393304581252350231975803719075672884760912613284813757974251448645250625567585451967885157632368937188114350534447774985103558203409637557679074267792985465378305242568450140785148170764245772455188505668604827845595906799997987249309726626368067252773661923706883659198740857814825024449495772141523941179020078538000777663207010245213379891330443160821694438407183017475622553189963115032131311811514843376866668480815818206082671620584994004764415790879872475488313297770576353202053374038844197967044843098878658140786163612819328044919262467542681279735363970603072418300132830574518576662357020577981909151842332657534768100107885999892363509434350842715468547180684428923910433152198989638004572371496946253448037036004518840491281272640094266194779739388477961372711085202520801435341160118644489148655618485089608260230261358902566125793457743928303596559691360560048740933408943951611885123817603710779897807459518546971271252948963293626851211631855898210524932058828824768103220262067884877301354740004088903072900986054351266364497314471132205370472735815579238265849494475527841123894724656487464561008939218102874610422481561545878659751879505011985719691966636414809108278773635771669295605424716971384407124033619359507851506099385093627006549903226507460151371061783739735089387661320740450904632663869988077157154460345841827749100899788579666663954371053621620022254961342139604855916268138798269204980279876744511643992956275222444862335801299139591762923478153932585211150814646594686276868067222981156323658298685937176811985777713141431292054672735281818343627287142512705557394607384117467682016257069110655377814940805982343738446615530861892795451175566358994601672132106793045216822581138663454645761700367375638041607812072541201491629733877995724909244429610708994515182163318438563722515767675988449600556863920767465876953496756947679821778276945392970966399303650280469447987525732476227272289253121266298233921048622068395793548399445526183984813420890688672039518059098836553245949316092025021193591154392372157768191991860168500893335822259966570284446727804731402179677111173364871387600559298889416248267759681053190409907956443594660793691625565881452547462571924880829650445326117488599262198175735492610042346903815516254897192240716543303655392782791177706672665216512863315965772922437284371056247050177481309450677084372021639123543981453146822907944570027707809667952182187356008725703121419340670292746486973854230468038092939179919656265088321435020885955535126525997763648480534683141237169786077192592812347189557183453147917585031776428407061064662379128946103555003511086419966182452805951248875648029446924535586613094572207349084379925699932475297548439346590689711311065538863021761025147194800352599924775606600559823437199183066105215175754963654283117516756144750181254618800244965562685393847584069109018478418210681742318859589879372217441628292442161518846599324476625705272829322084461128824646600173595030086307014223400887572615868706046409063441618739317696278498374473910559739826899644324817071469032852360047385379081325588054263248793270780461683832802339834933106021350372807200946296229097063342620026863983227281525485503511419216470001410500398388317827477831958960569241060572002417608075046238720952282870268353267011759964384893095307608897266182278677736134239674634961114999278668002108403471801413320445243678331439565207073839615988393400339317029138994129942791946203126506085659599567317305210423463363884705445049139532047331926709610608176158622651047678937445941079374213519642185527922568304413013085978169611785845766185216596473883487693241294410552021882433063502160004058118461120431950515499390038925082890769886577595414777719768267987547322480732754222154359392713659019993729986233557438212282584995970240194203601334863426814352935361544999915392835476874062105832882868944512230546077492957602888097119272399698315486675185129817561865548074762570681438579092993501294392583708954347868752409239277291092034402733929876371649635414728953164638312611731175818120294826948241239538316521350575938515657532267285301581353416118537373477142880771216673861610322176597665389604202349580844463740678564777246602053840466291838712391530250396421864737467680874677372357479457404744940126932436048414545323425285159990453748857044824483051366951189706896079642884206155031092871830747373066300193769335950899251380101606756359842837156085099625884684215089564467980192929052604684277222666068925766908275144665096350992353706803257206689756366475087875527505577417554620069569353800724197840532294226780870876294072247772079476936611775846040621078206585851792979884956500807723914697771636966794917209206059102341903031011493927507474706977578691315823073428427286842348895604721127724509717484779735562251651617495217063450492219988335440591435412616279105195275272953459872539885976035945205394592695558036288246253046487101753613592268316154389553282338520513348945006649005830498659966046543780939888596531453516000659012350487208579104116339186277571177232847434384628949626534459755485504161048264555415910487189780375766298659003603330346427110750590024018860403900312146671257189392717835151795329385316567824973148530655575621211565283309174298514974200317586569008844757536161943781257361080210116336668132823455967724862130723619661250459585194842955376059395551210768251468830095746594266789100038366836835736489092897555923519831534381281414787279795087050637181393353467084611815636042217006378651376073150329448745477748409074903925831378344762596987979492415416239575632935825946755981890634228900631728860836071149321088104830909065755668988075546121723713210818719072656769853749553652753950336617804777413486252415560515250939531457512509837853668115944617058365318157148293483960593364902788135388844150169657233253598521099652019028503782502685566663956253616089241159097139326467318100010572387136770194236328233537263172033404228032439283626965221892082470134284044610382761844619461112095704150477794085536323540745040273205751095397050472448197950135960727266730479403161335738744545503211453807139031204441954748426933153797782396928498585558686911595640765678863618108314012053931583746857633455459709137852076142273772688001622483553183489711593725415885006676827172968021418016465742374879626300361218880623674616981578701315421630241825889580024058390064514090320468341168725978951783046508123091021557816649066606521579614792859594336794429245755844328463275914929822690753329854211099728198242664149344278785672056389739487971649249635269714622488514727367443760751031866933092794701492290474022696933663394401326409036688318240647295149091614311058985409562692046055336866719076274959757582003319284476177745667507233306764426651066967068285921179562299750026535963595174558915081907100495481344838387121187233721878791246933247139538866822225338393270095137479721539690255055267880650557968233774755765394133790599910479814915091671866139677361572421638999854228651731848519329919320711847510177301622769174175661623216317878207128865462232457239741436308768810773706847413844195122434009528414536984718480690372090062602697334406839590378380669973134970969042854714080764919193607322456280537336549256320441565686788347074014486556079585236891700308069268917442055117635102163541949836563116295454901107394907773831090853140241100313859671277816262356128406652468703645628050240706803664159453000053744233256466103963670265029196696482748300506857732713605921621726200869993797375792666363107252723282963116196232433047139233929067291120614520199299776298139341096055422606056923611373221744775422805619269806586859851213817732421268657643813991581537422952628830727868754846550814317924420147608902327344129224897511547868609182340773389641461078311206596912490299865907611263818709248253790905730305680941846461416157712305203685332474508603148062467665105134399072271534251678177497139511750575749089345050568262681234010965009487176651402184600921174742406222064118462264553691118054728137904495692808563785000448609637375837267159344378986362445772734618232786091215260406336300593661439757434349436835741084053042594043129779037316510436244998625908894041462043619502453289712837676558678352587735047622774826095684943391432707265519958242278824074376952323080821886849830105404367364559061864085354049231779449114067538959447911101787079623302815053150162466116165246139103809317549138576955663914816500689908638710880386498959737185637209851533821423931356164718628943568259134474103169602791465956605335572270921250904021580879781104427107661676627500728849065446988097722401757471139853775029014240852068678096808406403550134301088637123086848480918439331571136981279572548821467783183728191349928954640790154087320634183966035111015784209793385130213771302902485683801113362632076774584309305867085519804224727623565134557653245751005132595183502034399986855870431531881818352437877174963148037199657620449006108001159288460827910180994701722007510168972475687263605146578708429084279230165248507197998954707862856341791812125411526746424498081736400264637935171666171607775498203643072638422750491575095564198555031630810904486181619791231015709958779442032308788025161373066233772466916795345099390329777127587359328744527981432018224099632683549401592087290767642588837278363077717165474968641526895618746704367506720251690077726953169273255114160728787459940087977679341480636450379977696704015593814215770930236760829766025409118447148959582690350686977755894769695549938158822621494067795942544700626621396904970898145210294338064873273579408464282316392202764127574618180498760144654561777885607698695367337862943700663939452530882086064328171496249033892381485030151908359371394611542320492965830012314802144252113085011217556398376451071026408229469857749508053609123304006877999505282878134733739161777174855808812120092380509838665080563061857565052366953097812868189838540720632186777323981860253749692777057441518245316042742261089315303784486072216742467962453622879865046221967783571774275783247575242928887371989483912104625858224430025819514868195667054849470958447518331972387198887655730417102559939311475858679275025656588021374182983983382504862930803106944237416508173606602821119616197166919367003409106796529571350002404438624128827866580906263244649001457174871724158927004606112034052125623783410117480921175549632713693491765116724464595968766769252768798852861632555000371202839094516345283420607308748600926766817739703417303828029000175253325006981986640332172803064491663280920565692977084913676235839540868269913918761824434759598734503119239759325658588726394451388083545851842367796569102359961343462147526734995518819195658642551186069084945007488121223429741584133108522656173673310912667709040653621617495681117230333476980845830069298932131210167059370496570492598890757244450991235336728416575753162843132250538048992051860927192649500799446867373482668714257617697146769581540539743649570108492894602531041144912380355307037918598453129202195442346821111119329361757701534090592984024760847319319141631186587124363885862135896109303674272028112372518293094987098208947871389607777132831916259461738897654926402021248817423197010669125826848772734529355213102777598822095607434040970181848726921210360982755219170891101496740964465324377371333943805149813105084413882572565037126291701397727368707934388310635231338280148020297821709783380240975061762384325584185336634176623084010809859110062541672165390593924139848534785383705647948126032722552159814516391775023147048761802515031318634532395028603713449510770600092634263754542429806032417314852253337338246447389153396214944630622143141514094986469951985214098137165593884947170353250165829441512508857562328768151321111753388932484113632914163297937833957090278915979733043597261885471040916765836602990020387711130105287260577108809395616586182168938793340307145776319453219163563272797881455889059521060581519121246041024662118331273234289041384454273456138295675552993363637895460146547618814859027738529307837627179754102619351109329606827616623347763972084232814607131982013749924892310878554577687733013059157421296199352458808327727731617597983121565426780804441599401592837907763577240474769526149701021529881014366990318497926465643413705775591389897301996441639193881121940269390084326480399649326275082763701948020829914298230709438589073753542218479119873068612710015389160456060408816745192599096869562601680163981428916654981823220820610492645794680965055182926075676505873980938005592364967684010414505843778435060492990999114234994069120642880554276225019091625912744179272485105751423507655100599601969079092269535915895644197548315583948616745936439178037511310027948152055152427288942176615740036077894879757990933513761382614132644252893615854525244306737115510630861811068684987296779414676563654501599213294349095348840997253713761371993010315155064606434008539734069680938922243482482135668044113390923016258078812301755871865501803159981316958943958739841118417544895747189668105349311370212370851553278845916826380731426576486204338684160714167703098388068876499838898491325833606397479607390896465478693604813407574586287452403462642382116232510423646564762231608495679835844610514414426367656578548397026979030271550231650169884142697823020263337459359725503326116871898173385202798530499246174916149293457550372540122443259145309640613888140847786817854493881160368614367107622251360234854714785601428181718243295284969956144659989401207440811304858695694798047072227813749536809906233459495879983263894022160019250513332522630046005099352636856781821340198084915507348492272527656020276208302780747020857031354492606288846147336351530226626190686364095581766557708933352212057634260079221481258014976235001588166247804562065963138701081443488710301986709297002678741844225615362735475799150032329481374882950879324808585513838033076050185479052881948541829604698005193061427718740013923709300319378291641484747486918298803893292621082278965552168838614786408711936145552009034968201513584572454139062287076920077174178485990928623004148194270625915081040771326755595096996274346380672020707693037821093272843393648041617520476869479277741932485217960495660680513075202091439427572434629309438018702505054147349556850663632052408193534715383083492142988096769867948945984402892988332239905064265242286691690014463443105875028458870383382849030209443338213597216696045113920152175806621535351649747960957291007859450852530940425638339428030437752877903428722886015855261554321486662724015536523688969856321492726938720565084192188904676454840269490500433551969776949349579740815900891193511923448798838882848004843804654257007782667355701776591744234574512011456946576206849379290688248170797196755363575886820794238742396002420675390773761548714688463011308116760072292591733901759009720478525839298906295812902065169771785187786003361368750797341714870707027468986991074314477711317868081736901687419654755030243287631471897991088444737632493892220774211570459213287220323233669644737387058546223718987546369423949541007022927635229881757143278193984472223964395509629137820819540796387985669105587710125032692452761697396128876831012404268302631545724182319845547213128991006661451559355264517332360323471141313251476927739241631567590413096887852311624296857419679046839152704846219199552383941102910689895336328238703033167803397644224465329044258656338427719146354218377541191146166782597274717286557045633302407386683886925403231576948304474632542554550967170390588862815905435281637849306894571539914021161466746777254851026467474491436137419756667121656836326578239563869267471480721773204087737092282443367158926232456180835773496516953759136887965668682140373768295259223495997365530232272370959063116351678207022468200275789730733068616751767817963949075126519633959770065928522216428815637483428208034650803356464504917779947035603314175233480117807422483346712700257815899835329076136497099748333378086974267607212040474105843570609889468309451558317287842848080074340768498497775939932712321595053837157868205267657373987691021996099506712620604994536620518698678805566283899516086606466808796264343166598587744553670892658342157522034028240482543645211216652685987818041246153055274810941162875176261407720400241387664611526941396783102439950581639297015832095422695019102729942247432241023659068279436024266852470737446105254759821194740341348913626938723062643988122866860849125287100100564810946171281947957455472146202822548023333100961366309446354939145081744121548928351564525827427588464260698724291608414427035798896008344116349019167275015809029782377291496282226551970648947443320352829280628986812280390237087309560024024136903789813724765291733259305708075657299253503648055943219618499825480336517274505147060829231901272200198644003725606108502326813206087257510147693825057898250458856678319420752450519279833996673656535107499506224360471789736644172177764579055510486162275885884571552645071677406121144212591946152674254174893192632957214363758611322354706570005674415974196170021564372846832393849039885338041993471090695957461334608385049697376517471702359109880468173332547775507657569183087709521441504692547596113839720154008944068416244339471545460893264710816638477352635919197210231206994019729512148687847162248170941240290976583048573524076009787112027824776610514473805909274839748795863292573692851762919971941947066238155512621177899031264270040672551177359511413293579302932859696545095336610485664091900816718435004835267092025785950675697049417847884786731825273236981341278060730382717500881638825385330980067792668100831454526333977999492580699822157627027334585858618270878964246351001294628276655201843043585102395448614868311439737010672640575053092968455017780723108942275602296123802103118787746163469190507583937530149773440835406803995035710712302184254118880848518233284790745735956212067255911832732609490832160384660604642652725005731753753174651695021424193709239414262901628099852171018807247074714279790618954221907121529748264581116000527793126445234219550614283080420712623779255796411060752501785261885355110987046069163815957922932827772437720481321680415436598666250734135127220406448313040118008629966374273110084499522700906902276230808575529740492214005306335948448402720795519448435813100964348360308782674463685120683530225024919937432872181266794588290098701647591288755909175504764464597097811374468106934464392942595663749382522472579954155974194850496785943916525731280529099448074798875844360994270757777608199016177654334454721654269183553665763454629267485845964630641777251088557141550189784398399884742869357706126724509662770088783749374807992310490457251109747604483886399955561792441875887288999813426116055176462119976092717006684198100335816065221690739980144979958857070374404432030485851854867101292584481448044610209182902306942167245977951803263959828125177942331803665823772422897682270364368914867218334622626593627286616391494812259582429769530030772428725221637297390275349922562399476901294776640791059369563984471278789869018617988996323675209909026397428644212954560750576752091420707004808442766596345702574936756523379889337273281004719577733267238158548238938573949920143771090262632516520385695662821132244318206582407140495695241754295888326095040945679049210998962805552840994292118024143663215287550714822493210147546927257329066890405444087803886640878533359033108604294421310914056339376286197194568048116129453199847109452433290681847307776244475975783148931939957410278091789484989335365986981089070995992158987176099242246945066434859786236572898814402957121578739822801177254831804175647071730892933726816486590325623554272151277164341411779746082610091370561691041402692834644996603674703208879421808462692736342305700133667168597033481275724829589105141922136255109095042725244297664802482273824878489969695138485314628313850838568528423730530086072566989009568306454013981550562788060452948010826220230457774328759345906459735196360286163244436063278402256654136743955583558518482732143116319443909974974956248607213035214957120304901053560391870127859885579501942039961321682776019936954611360305559955321468308821508088840625554838048204012264189241919623262298355375260301853974022429331222293170938788052365383697334173401111666880515096411553755337313801491941852928808619524726090256012110175909677533782415714525802970047631638453530585521171066786224499510390824638944717832650171912597566455782526789756902277564419436144064894422207923592350640339674322089703680032287462406762683618115176393897572305263264744405524008856265480208320733967416295659583546679193494759259024993395874865722519191491092840508946039522977025029583661932691212701201271780844355599882123066151959132420155435114412271473636528893607782203340102858891436960267366548615685275859452608505134241836949352333414352708926050534112849061974678583637107162883351988888806061754171884215651680456747165418265553104248686121610226106852589266093471474947379107885745938975190548996051188362975940207267216646379849773989955676122490470497058702761039773446208870614934452997533914440977280704556536433493839011918633253409804709471504119272403385292223218003977791230343961131510537360995803290299105636172249568109015963910870507765332897182061349025259791185183063344359426670814510552757645977579366246163171947955670535221668368738448203001299244954457833655716334194413254239207696491128577987812063861320612928298902706512362077033729180054302596185915037484224691414327612038041905095620761047417211437201391560488089868688645623009569932555922620843010391907711617531215668759844200971131811061457211697004414082161855316086099490033819002368191759618595334870142029669057290471364267842441524734302299407386660660075725873065469654250440357633762489773329729149682630006862971909028517996250918071695603801901801262284180581405650416214305253438885860314331363953690157938459791869397231436590753282317222123881803064346706219053256092288919424530799157140718904185105672081769037769649139808153914200614414767584337689399302839712710699982937638939822723933751377086770072368718963222419939893112548017350446308527934633592242130189583873686569465217171496709851860949539918250947824197645233415778108031525585338774213866947077471211055171581078092029336638784769790968975330468096178215306014868072705454532019920330524350223949092979129551433100861638771433632609831683014309184841848637713903719599424374910002103883710485227300367293280207092437639216361020177136482878444772957497502643316124191243818691628773002043586221156088267860566770437751159435039805025919913286646619664729713002154542352978171573887708690111767486928689996517474988784537926999901012503506732577237166487216226441250067761993274452852367593851230405406573059445926106678593988934602431613221414375834538288846306232140569327609765837421372120628563886562280829804757905765492839244710849169609173598727759294857474097057366639904585792822982066854891074861565153671940981710993760239315273424570356842111615670579470360686265952645008615265989466993440338042150917357717779766169946515439501160743162512594557584643688136722202689831571998961603383525703021172984448307532867596596979953232484958565533109066583374526548456112299117269807105125766560411007246849060768985052100721770328095589010065017561750092047619557234048048482338261257722384183929797330288649844964613598730876413018105216513198711062221994405240719608062177905573842982650119985788703880096619070861980415263000630325542225102333489527547576231542492956991358846514661909407848840056854825415029705762252650174161142449467832219221753585543719520928016215250253478010107644487688849463277346991854758878221574784201674868127440411831898327775211234926377303073604271864936215882888954233288780093657372329966711422159818674362037885168520415955918077127037364446513940183222487916333885398300365417010116025766175280621231307785323025716019721107467241999311302927631583051955906550684642169536490647070762867444703811720317272060228172158481826588397362546413048080661633130584601102486959989692473438740725862023453089203277812517958790072121401883047357122071116327599963253629231238573500225020945164901287318798862018912321569820050301286174600972408968408854100661825358018321144302899795870094887648850621796216917429040874252977671145555531225197569215092494449152340278223938835216570273518405739869578669657672559454811742212077160433270436167577238935707602047343596309933746125524004327373855918710968024828952495902071236959839304079006805542069873645277339656440956750143273927545157964301499611501185984798195939993923434606181190188040585869237133598904450890879518116879442272783591864833325488950772384767292474261478594928266178190740034920165063453634079261700229760003626075561896138780507699867416107587401855305548024087409379945193975592938833685145186390496436355158528560473380623497113079969574618602535359093337713208324195144397587035480658645426463760564874988872457876852728100353991399113574200283955293436110303252291762694591193821064132101394158348672995091389594887915396008825217935923712533687783036950892152023849510216837703174566163715483204347856845116414976074158102040849457597439529901946348518614591703484851697504340243553865381763421023467393154638678579989465212303121848965889100129940808491978172745362732140623842837710235955096383674715334365007258883104439986342680896375548909059413969698251404416385779418502640440805813354322635204768494697249236191323632219341310286033125363544812152160134743032581151022820229133349589937143065183894879577046590316899176306576042588979792561674169125942168105604069611992854620128960636586610225286284698823863531332217070867234694844532403678977595174289615465187496761025061782119163939029907653375624105581419022070129828202327571433606448668239341254465159249872093775846489049392922741354675560411633511974498019278786570077342793808754720033773949144850028415755871105259229138405421815416341710282369235925988378284753150070168504533468638696756622577322176702731541384616336019562569211836398224226952845273462060849086361686262569240200024919098554873943320229744549263510361460489058391161213761256383606663582887646663562435545417531397179348514813248666051078028604343591543185288490487756051079307861131134183652974177610150315683926279575917289788481627150056054468309345397438497692058956659117762339486389450530515491739754958528896008038619783920754312764389469402726276267571724687398271908690314731644175143832620879435558010961520749501552844889593007192042969933256202730312402859326988893200198709453154503057805941333216617575233304669544191897344660551111052648465167802117170513912437076338163159219260326604202841822441488342531714410105389911501653812976661417889939235756597476662437380568301767791743988912702630695622445503233400182285851530792623631680677029729917854748187193074827816303890790597986167056774389688001768665071101971516783250023388593993326413980956926995529140767185965641077363393727807840314356839231596989519652173361461338518444461453564830452107886048203832178295246163359986830485333973293946473830024730804726951847065255457996302303137952710474785190999536293647162415277008544259675065151877555287101703769447840678469926658769794475607297673110042776674096819871947570535987910824418662646840090691179766988445153103228519034490639159960747620744768967883016007408301187093778253273638999681406411644713303573759353244781077349466356581659189805593005842218665171254112270639319959392832815575742585113535722665557302823910008222118683166131653512875471447039654164788050529336976261139901055540380053037826983192241353291056072263783037130061794475783604073689943508675139948425635623009375893806493743025795712860864412654044561999141873964460200754204976931576614064240685467301761547827555095744654967596497163441163480168412506963374231771217718727048723232736787095446202786280661876148138875580846930770912325128197110503447311165957112829772147635013941754976446050800813244746865571678912459330026558604736115483110687442727245214799882137757313305079494804900622609764036347966622209324848622008371518908912013612846391127071206676642305831457358587356653937327847064241409551731524606877690530338044653716549788977295385596549206614096177621326330125509560615958155257151479612973317413276384979379525976344156381716157786023396195940707810284602510216370202715033467680206113333670028249188478040404066613835223903520154727522733264233936108509372123507132639633547688768989666578983491221260810881034812770359888939587257644283764795767222813008799126139013474803265477365874650835112505095207879781992545461575068016894198943801968410500240298252624232511517994601209235302390788720062482354932605548932027749256957104727387979897543636475344927248921250935258679177336431548004662083249862001208394281267822375719929881184713181172144282671172271850906008838309317432407546263049355358226072264722718339705581989126561699669829321624192914770006485152931049661688438943391531831036910970269819873591146304752320748271208746569042433397139420376979548956243393966878658216603345980109485363151023493221999151588554075688516367096648515850840953674810694458993401485249426757069416651257843391487277816557684339499057130574312057003556196074816821370942346465684973124706520974691002984209323404725459428064574735437580306386095213823663822498968647758790089219973488326571346116140607369890806856534269386545352190610982247449166019354253583034206172223774398927066516062695038323268848918513526798255148376941445317789608921453366903371975632694805980950523429915353673713306174523975398141603878769050832118436356214116527323826512239620020376590619450579559698867217401295577226947867639195467445283013391056855327810581417051347179363444215770966749477717146627862344540231689663313817402618891810184101712891921275550195537541196301802150074299132198012472231815448632799850467363062814209411342200589803359002217794690952716716716105462162495343340546254467026850889275078283580168323002911264733085743485631587277167791679528787585831494043205789529623407853191499903747001298826484939502797288661029920929003990388523969555487738233980601053919612684070033608697371292522347456639325995597967157925062944304873303768987638497195025173458803906569632640424860330653722450619269779236868624151807323147972748455147507282401231706089165340122565280560122234608125211803989015107383315705024654078530126097579396538989551559499530535515572139620395536531433902706174825292112090904273945420055597438212614828373953168756279307837708531990348756305589675579962408513183500735409273929387056588869522153368337088347315573925123444323111401226908869174906565336342014757204495147045399295546262613636535089553190939343533849806204471497321328261248055317916555606233001586128266677501254935162730594679711123579211484106827195496568406088929706055263844816836914303630576121765290766039314453581206804653014548712373652085282087155166308438713049356321372650081226502232342753654675499324747340410258017708947720048669735207830141017278097197790357100065579814075850242821843791663085605576302793842851033871464788433367198718855537986422900844006664533818424760372083422362174097678087821361846809887151308377959397064467028736915727888810301880171536806882892114216730839575374923695359313389291377627473931501575267239209494841655959574996080929029452494519508012291921373754063621004026107302951215689536006793917264135601779298132066709173520886712478487602983445274861939487377243257673825514086926919951875401339329118841137085892374343000392760036644411818059704029653593703040042188502882296942804202347091904729924882504521973864119757186867479440119619895196182602560767051513739585813813498576901041259955502489504680923799292877044471886234275699940045778213235069471598511087437236260576158206510475765026859831822492294685209692274427684379530004515724287561636946089279142853866540456869633493440610258307666099290997110201296931593556560036909562206007864871636450394756257318544565171128945435144711083725373832549280367132227895821216587174257717881029866561008290267668459852890585407083031547545007067425087862752464440846099364978382745517768231265447006023323055301490394692411840857640948034059579943901496313846136226363562400251112208884895558933508863965998481657579511626447382865004457121470405758875255928659072313088368776572504508028096032278942313455604309881915421477666904118842831103102922240094656948214523160048882756028137022015322206289038934923734147218421057151281248987303773090100509169813859544118412473114231346551034173627226343495312072760962915235712639348667641008476670028327335459644597978897683676103675376431800686805075262822814016891866290988827301856822459788803179210228503227750632001995900545566949972521376677193665454802102258808303187223488612100350045202088890192562436414275704258040666735151457635072083016978966776165079492526511267413111243873402734740181157178051702179220423264300552485568476620286786101818556669588298246124145996019643923249824554849028496118598196980052081525823425546412101846039677037285004039718970577454125713292558253835732232103339296078787836781393155697976895718288912363941070087703631466591712401550754823147917590721910035077894213405449032407466084430107514629316910999683548834092837937086642239440660972237093915479997185798890589526520611408583752024711517771242484524267642760657396156949284974670054204273413197780735741612360632727504198071767019768390498498761016498021846197954798541071092440121093493745399736469533653189223201407662716782516638030227174958702328032550851218454680581895392159640587767885219812940224136483390131217461761030371934967072228397422867349406146634781459831691372047823537603490689013189859764068735876216606586016788827409716150282114038394785497372531271352268368209654302437600958568979046917585664848624842018296602568397138486050681019057276719564863207555426041780681131971125704320124991773668115088818973657384051488308931258929335256763519274152465605211954597624104013019114609776560600563607991278137197543955176216829092972250529217042467139145834429258921858171048484638712677919439979099365841055042530984558811290488173045904698351368993691773605805446773834328466058321583213154867584987017231306500069690612485399156563708390242625962019482361774902432546214384837707751084700907985369059094436478614905441813246312483119836900529754545917178694170188417446383731018934047498991440879146978600875111606613685592626402689540139961574741595075984997108489121266863365849375914152434153668601735515365192030158466903084549453190710196030012526251253175235408363132407647917386101500041177517673469645013375005484919048675210442737474476874392005576033257410779916577599599394920303924534543966929042204270253483175182983116366970952286415873626270948952688980371770079244693971244253846439548780414423173337197520080581593630020233809112038383405061825973789940151987871815591815192471632023126575880264343621255868464956051462758774874081727502478565155248488927587592441206886559878904456571513697314909833681926466515857385269725037796422428585285831826769429181020581101839980149606751054514761142285498336709357155255168728175402336341759978874446190284564018605669285436908895421851865708939154472811356614027858958932187396055407940469747463746228933868201942158450565065572719266951142412399456532748792721628913343266331115878934245382457196274729998334360858564258457037200034856759864482501352759997733514007413082229011129840471692342400276181567654759278160988029569421963187019274018047074342277566148201562044298584669714008972256737459871839634339040080197241228459733868302705483672027681740332004096582974661024926893842773090763424622363266157878797759938103629420655612894147656335160282379844333997942855757976228789765129870825385866083379805725558329883196076489300921531218439721158620289884960494329950231715059722210274955637181979135075338715882679238537509865303074757008082445305954379026364700964669866605069962343148228557732583369820727927366571664380229982738129521090293421393629979913977378365075721613384574439212129964723118474376556883455519186804103464398117785242805982189235855886863001307097619139897116513781930593585847300254536015896775167436687706056953098378296392700983010749750429370484376045376859411528469525773692812080645620869656364837307856783511696004672194433644891833537293210773033081300174698197737555708915603740108426698477425222969373893020847986038633833269263006294600972627175706070347915972286134323892226964749958552012329946670748572661829300666343337404784283338165721006963100356210300645915198233875102925303866559543588630278597899003525250672770763011923782186751461174628833847460678486943186043838913666183222013554064259411520845507414786837644017330767165162187147360882781380572724865991584285209209158868370979906543719481797257255816086305002211998188751542797478402149428195329978616386601112968803016253770156174029879729417854292838042781547990963053921310863646777660562684852348596852603700895544685617946247800573923760169873815481535848969207899560367788217444914014361928651249113990626843050102742483402957730976725586583763325827766489382236161972253494676585653069814769651785485636159622486063380171182577585758261252073985813816523066295164475480799639968922791090620459091692051970726808759515870779492177928807739870450325652731391674220041989028107771092266219935436319067185399671824940122249585667273572009139546026831734264495125807017094098454784876959596667923711203813727749371871315810237257919039897505600319893497579719468571230143731648513657064299309082625750160921210697892885327310253467604516368809505232817760245743433724627211771444513572507289981990194433464509144479502048458960849058793140043080467573700006029693446509966531574476016872954267019789940097088092753649338936267029306291264373977246814344365235228032753343537836973269761213105191107550636420130702969923719764373206691231421535271779168495693233140558378838451242550933057251526286656851886289611698139612373151383424420501974836642268772302955496079805992407891686931066752246089917217295784639426745596961404417755954568970556555941081328239798512999604409986494221912434112460393751820881009453640844608115448082777452568590710345990271488108291861607172307101376034362866059510253853158412547504725452826979444135259479532109741119981849419105714246867075685523546957487088776253970111184703924023500033408090193951480382559922019218827132625670636713279980577576335692031762203015268334629773726363706387570828833144938836548330534503394623784973177897692479129923496077225903462343153431316613296029148352581725882045844612632019973827991120335055031345176140071559722360821611898662879390501501636824638323359668727485188589572343375530893391141439781495243758072693497311180912329538669369496914893403920073074627014670818440235882640854026087780218776536950681907148959999459660239693169581199118249094718590397683361561563289381773979163462949944615566238368448106505340276398808552689037214746389443923649609310040122528538722560331066168264026754911108844710566620065089110751708386244000294434779061832091923513825866204684186221553853646659460512417713958542166459532238904888970858678320290152014085037342797416904373662792905568010838059649204226742596064074849278554200993668317508843296283449810874814965870640883725490223567904111062406431586360353604368600216264253001430222353047435305607213554209716753870512516862488852964567629350670685790246553664216850415065196230583098526904588854656937024808052662225028082364023101920828198866977506009440402112225590262515542059055702850438762302090780363262498415435244570102065294773783262089242603509840410264897502231636798298777166122401392896194669800991990628308930603885924185273067059595225161855823709588894037495051968990513830371766045448852453117185967931563310854569023177053918374759145417760769469687924616810724648144888638414931772966306605851311459820804877351347760044236718023515772032516607709076177880490115204981567098136052746268876968221316555473382400924945036827912015112494095644284629872166215884852652201538860420812591213862537234673746646989849603695670333903296654171850419380142513978600323145556807977245148995086873597428211438532813790680215375198306961455268460336086921598607735183736391292404414054641742374350648450356620184629168625693649684010959008814942154597297126342678921636362241852884757235957938354758892142917965571871860712508659625134242451230993085006065131383237591530537961229028372408567807689247601721921013176344154625808143263370247272475257112477064107145066187290460452516752559037742150646592975950846631396329746999830134487513989828870627559891487755729480186540059789228419476541548586566968759066937520264886185365929674584082773105813919351238129860506637259231602627194650724091764152410416391900242050207722627845990133770819415635227004060092494338843974469737105893344980572097676999231620842709468572800789694470561506320047964213014941835008239073157434736624292172143518633503239261167241731424481870441813868504657705121749844106187552170982463950032259875875786687342724297358861696237785944046872852039242843046354597001402778498525835474567182772765790552380132824114310458095654292884140093819385974034197054362188189507918943866260270543294231053442812120383454971594852153374925326309315269750933619983066636118552731453902465777028787707383340337969041222670459431966846972290120445521298335523903770754778849408689920931386419941412327309663399676184485088782604688603194815837673664848983554588454393148490948531205420967403790242212118594254501501458337938008626691737461269727641470966970627072972912613732047203055551612156597904093657050379192141891136847832817387628758096466473099541334034119918897357508740256852671153541852469957186328221397818955379226006620853684365496742685736905930123181305984810579763221450070027202803002064199759321768716447840361191587050173464115797297197727865436906955830416127611392958937682048950734811792390980673419285009924202788177483096497413792278326067208239097075675600547476650379031633204904697163135288647826594246617316806096402767981104798953318566936594792609713813942570407521153566816062464345636342257352960449037280026828291911120605834921689322996915166836235286765918118052481013996330164696400544563846560266112784476628545030157544129074982606205987139711909174537817545265455693378344202998031711557028057814259253163605596692420363422643630051122015731731688646637838462851046232324305930342421944427989015564230673940483537703858979846984378277210751719202625082790258446797764065709508372443819299065210582869838283132162072409612054476139771544991799795686218064771907025958608190012434139926276888144630646282944350503475829907137116944413427835779961996889927378246329912020515451157759209878928875520532398534275759980057743031123880954868657923839277266506539568467936109867646236065549222333115055218541036897110623682847749278591676124002142430999236009605006878930141741015100998421572589652287925654641639283602144701117049833889520362629836443358390701646981505648315509308667429281958106681677388727133565865035260230883166246410892364538045102597416130105812777387550919883049118616590757883717504946237608716774557605226492443205744730252384163658443512128658895661752878576405946582749523518092168886748817527662454253551625272426586733354223397797550833829740115993181642202606281229944485621343918280637257240902993422988386442204229575841642423232676775540529349824342534614945708564914574046877973996026139409661728355735418526988904412888478360690771482444689571331498891571204115557582977697053506591595844989265365278580586152181492366513452308996602491106614204046347665475884348631530664732914732872691320592315326608606521997275062261686427394898402615076873471770687178345706410962831190523893961736006967291607704962637458386979639783603892314729365329671236641634756252930980948219429072531368769948186985840280696455993980969871727416478171665398549089275986575287959144080775095164943419029674343500228394116532343748687164400963237920020252629377849069661954233142511895984402328622550520922483922060001423023424907570108941816310925897089873032770185163958747838499448559508990932378306246014693004956109895743617543275646704425166893547314985275079404093319161462855959910466170477466380536726164455693400749423060477758011244827510250236672158261051611194696005901320150010286538620495456124355900859083195260186711464336168878788063706882980001998533654576109256506480893726368514915265309205741109746440302146207689525178948934430283131048782556072016395499801367597350707374905053734020301126580076489888696346977388926995281634167829885675931825703085984562021719329790921744480632801066735365967641646755691122449362447383108334157038098516361021852290609177808149196680115540556215864702848362251086663092868899207117670282150456279566510310024546422041922695417289516163032686703229447314375620395649298326366120927407775447593554224809590043298617770370830704833649891777631032638461581478853359650914352526725377273437452301921830103917624107804847484755029638372843435734556432411000991957006983067016702884336482148604629773918694467994145036645995449536772925635423260107707172503953445351734266664895486112478735857776931224137315019463349681104118841664940855885532597987125386540957387189994550709760130695152520751552201600711278068574139856147520280198899984509579511686605113526612866461386281288648965948696339348272131546977795729408767090356713020055800694818038083369317818542279270468112188962126009658576958053212796654378890268358469871615789047902544314339083408360709141470477105454019210590370753080349023302001960771052790865453736346408796069725736726228500066583905720949943816668022470836431168870996203359045147741800389997366577708787544288800654625550407625334462784606578839125301209770975271993726094549160251670395779138715974591991059410615182503996566064714276130292336513252508134976400821641531437665633568871068163509412997898429684995681698774453795587493804051928522748898906115698968552190014567112476653124827023256479862563329132685842833436879425178352436740728734039958957572876971200738313091828908402837300467434986924483255179926769827218974366340756835080056904421465377409787598025716595213318089661239020068539602403652885781933444727020526828106659376372193442204390621204210928855178275030350957480684882715901414172557476904855025196636985125683304012131393493248000878321916017435549612399586441591589607886377827054205298913847096746605571979441343895856180280229683534913438506863391345575101621154573813380630180095032261968646591311968914639924033274843779961445991616480667153336138217508786778463595513117172295975784299301390456695566221017021749915429388656432249082367218327914612587885591464140447819160812066505294233014809917930066076939124930501644487982794386053368130546782158735607132828076099269856274949364819839548486154511658438956014431441355911182526626011721998181138729285344261227071552781331848393839702011017184147527229527957105968055852748901919443866892075116044993905712918979013901780313827407151206525169331557232012001536424293318333486318560330112997862267289405061430243543969030391037352725455303361801044109353886246686177471582514856293028677211364940925964142277847073712426221954693807148130449855407692833284160534363745245173507305300411541811543135855713131245195232960258446969898500082620758137122049709380762008496003648693374605459849386020177045495098835758178315385711450340657257449690408482427723947139401655229390540950712923908453255988012283311420433363213482598551921433265866002546425858206481322007205129399610583316724317325580450361476520690287894374364584334562999698739583742899548485328098774423215908211874913745107009439885220953866673268298229774247289343154598630027107129201850580691096962621580327071405194964772173505181247761572974436039643151852197802061724282392294392210789985389765666685351461549524927521184699606063211378598386820956177778402710633039406483921489239306327126821797438906655657989499332594829421020466283524193305401177503674329054961642196892034523805643126913853510446286170601299923889718930575292242998272348783800314186737305116274377894232066782805470881951843052497114894307442716278683639173505938813551584789091709481561900465639499795358032878057338297340092646561125689788437498318367716414151593963670863769945766160221482809040762283600012748477609626225260385174355049504626310427407547440027371308701074868042878296390046513010254422999815603572753326117825272132822491099372504711020908802481061832313113132942601668231491912095438046058001411547112948594628524171653036412989392933015735397989367140015758977080452211761640693160957741286154656127955893577842884995765136484220938997902028313027952569882938032108920912372663543026296403176351609183037000961908156141213171081400800758494759727619844143229491938858031614956226500172261544071490050293151177257293280577523342009850095290156127446644849010227967717931353422440301661559351286346317248210890943340550639365851592203456018122634219140536157217997185871909429917748323211806330155499658371353732277389650303439132424447775295720710595757937723971542064879173015871409612495232520376688069161995846710668756086903302896811150486174056298789012406447494021350113627540204359084429316554842369378326228375491212634596032607762611936556404584653358132366009556078994264522351259879123438038995461843675600658981133083638620213887918616438949736216537962136427861826853456521527408932723946570244331004095448161175587900086817645579607032159914324649685705638209594422747715715170315234724614321327132026254290601628952574387476999483912982238688497136968849524205349780061483457435457310310426016416579091477572049183069242516418600733714328556203532342741613959908426233510248974292384123375900128815499060267025588076875718657631607307675181950822746028214298519889227778412149252817619036610955453874237869409993861852530554875556477450487247313941364368711048362777312635603446332208012972805620805795496076186454769292592440730272626131071907206122461548152168376483993037976270034001053329017881085287979402905781564825632549890302931900097678184765774870817642766181230483184337602868383828013733437689644396651791144901649826395478374606587050138057332863092247306255922029425572431886736267863124382719686932920516714321751976132725074285624927814337509139934593353238451664699605773380873975145690232590686915595314974473799201293044191496927354642415785439046370049221969403552237938979999439559467346551627764579375598261072427102190515042183728795118687903461712550868185309551386283042530456745934112135891234121931112598551782780867900074719550856710920172207024965721787908767710857714740012425956806694608951695610959788351873402410113702050375058367873278045163196956264586928641611899238243651120991802729002535591326462674237771137522999900325188879483343438413740224116561299480076184077036873159309219538149415104739895478095607919089235558759030848537593635728934444732285438284828217568204306947549117468314812595595300901759557978856486612648971018957433042952559970237577919942799250305898340835057376588676156465508428402992576415540329293328108762725815711056105989837698664810914366077176027303347059616036967309032014467325348224275415283267685269181676288864750109200865736788742261624972902195595860448692677755375327078851611586976130021836443024944382976478373673401702286815573585276955538958615734500030041914915472133438955367923215521186940528098837675476881895567212815753416831743199904111192962192769330163408449665213818925471099664541673012390830674131884084589751336769490485363808045711301225604139608146061336874594365505862261102357065673989238129864355351937942326735805953787509778878221464407480025666738540045870873712885320150666602049806046254119436255930816956586890711906732645674136130172405513885234398476325160183948705574798813583305746945016767679921775245407205035671660669949822767480647071117067364777567841606633446483407705786667104086613272795068985395730150147985269886534170903454836363242077419357481897855565137553955115749777697438813209982002196418010966972651283405828944134201532148484399782271399412435287369238534267150385382168584023883234229226262865671025961726080637877908359650760475968111906814033829091365666981288298522744123674166079386008459000919077515943157166272376207632006884576003775620255809925445914334098342023831480705716559830062975502896318438657751460019791841203294510236270153627830912217410439282545324477199544929258627408141770225386410009544181616499278560834545174961724270160256099644751723298612299848376641280301772077495649995180471103295312697758407811714032622855683855430886662934395847507826063557014500843412915381878181206796961098586187856406827437094512739742931132457646221136044391988947502466958639921563106259388735111824818033766935469583311256143618601883525285761775368162832963563467775255073259534250236470430682740361016920015052470907015109548049398881730027949385303734669583405557696415993167671428567512972475506652356326434198794664840415067927561269443532642773574031243161344526231158443090036529695407417516608440584864844533884939195619394889367041417720457076486457365936559674535355603887369369081989353466012255675940766173467574012418037275092603727232402054685874052171827555705341998824027633306408723063859872402785666259187447545219455609066093713009745407529318442915083646537907641233306171563951517696730743104431417482032747445120040214146678852474815472393956427082383316938385109169083831204755640888614115318972547720251823673017253840226688973539606280795808209967492576701255160336956397984675135554623322613952563704663799887568047442688753392773435739688923157561352667519722320713448547315932530457131369904496805550762017026221923003517838624855036169887256394075599625125639509767698066295574510671437202832235244134269883588764064992176645224070128528021963007738785445290575345887406574739085579269921206783050691863234767104761996282989439467303892318213478242918876186260968592826315562088343352420012758512711687729368455932266874826765673832834762612826969027515997444745330220161283225541958796126835220108427355450343945708313965359458947671809727290257547402189897918351144559429322104506834261272449031724906788073317152721536620653333887270120901561292857232271636317005799708659268320056927997641282592182333749045228037773064161966980318472235519786375809601251553702208254085699483822796205428699603834456708852105256677083697158803832060085814284953301789686142027181490498584467267793356439256295649511987568037507144999505854208273818590086387749955124789921736045286905790442666079961962114889153784108956131078078015609638571239214431667510482335277292205863842195273384457740464132892042822000642343310780227737067904456198225543162997931537799873427731731842717075969171663814338521149758459196805848314107447893141978779916797692039232996932640308701083837517475508813318443351060910992911969390546633673222780445559225586257026779027401307886095352619789724160422022450710521458134209534061691843112177147201875669163533826262495866938838612009617036643906319619096156924882564493879832347029177280773544577240979444262228211915478641373589725316788997014822546977085909836326012236152496158682207357968963337472934578511683702795626547399582555061233171046923593279291696435289659140609249587541648765735793384477860793336282709160300300028449149269791388708983368559663227937735589390533814481624958332305707820328658092126896140549852865711623030316561538766638221434137588082138082095446786343737316659998847931422260009174823576478345280366536663033504098848405378861752066597254633424952089352643810539800127051251378345263096448665233321952852166846590054701321934486504245680614055081526581085387952975603788239844821378644325696136375715876308676186788739025341515739996036413238883813632503456071630885299819207563474173918612380243508568039520496580500408858703197202937123247401536275558276947136997181754220914998171698916459916637020948350068582828496584281475144261055709542174912754923664390616733256386363401585157556728052609944909134991915825274520962646177465556634272965369557236841491782306886139583269390869924855288445729140866817838187124649444272501193042256681042494415182250593040927589001937833908847787229198890680697876545309494491439781976728082009540626916409768713118143712380525346367827263781801269198499070043685693207466815569094738111393211067550904434505691219006477585667224792513732214471171389314997004598638324163856024493370986769231283144575688699225834357285223622881955486955363006519709279123862249991695388233222229118074808896677791698517864023413716087391340427109433960311019827928237465797394606860101500238258432472145777386798756289823717960035223416477053295910849269132505980015440917903176838108543049286269463765278359488869657644031094483442214780000662195013201708900233980108892669631612433202347280943630213434258006601498916859379790497199220987486165319114939229856527741184420936315662413986708354567707602153387887971298291510475524321399165937450507592113587462432357386685306213941369098167849870120844657137588314404756265008838728239289980231493491885073834146302047614097659511185460989058331872252112554204729358656984889108734910137868218347768583381477533976413862058313958398274320665564017761816074930068702063375238090839704220226797833224625123714634433790141028658063833957345257918985956750813747063360365075544296582487069582855630310607620403842896140863030409705916649086637491077397711384472075793273962235077495332035545604161879280393268672724582372197803616074277929738092610087768324547811054223614095901001480969723465698017057399025892127322003233629245023139327422530821931301073318863529833073587983883548497955110154503051903542734790670594483790297050275723577669048642515158429913889008357224492370679509015528169503823774909292453449049456572024820388375208886325362269556393766626913024878583799128068493798895694809235092527601330329754863702515558931815141931231913385736179736688990059582068495552617842164248030837589401433620942074134153058789360376826582707258679265594887892457699333867833421065669870508771435617829209297056268642525868138497377582087732834819494524669776032655321137709070835241178537869067329733599593482208786275992571768918742126252688677684927638660333661679497128456745564842704932058065911621804002773780763230440056912002857833371655181887766934711461474764398687797359354719041435296781823593718258059656528576457571905243937637417937848350926071651180278811635196070866158151099392511739975237242583940715901404414862574002054720424762816060164637379210466482792653853731063705751885782048596979508267147626743752703348408403610809723854893430168886574349081308552742631033092402597288606349204524398354322744733926392605951488564279389644003115721401052888215639511729903536423554118248216739940285947032936535169220170987674351294012884453592083039542705719538363535089275919138214721709554408667730432156785338081463705975556075373014474730944951744764380235387620085707724925379931714505565215141719854335313089004516807262386533796611186157494344475848614923166892337256748914970638380441073874090374968438811677257582764489190018828151674727829238228879861962060839659336386052901940930267184410906855818795590207509404631933467148623668311137092719381003858009035179100892168071856020976252810446806662328260057460515859639520840331363075969515666364024357224207827564020081952598574719600231536589660543682896900940898267100885104266064265616293506913399061143649121224932893665266584314546196468463061816932749153422455721110562616010604326788598092008405462089334763494727812052591675342978581818405381131631123110702067375703152118000458966356373141303415455443723232973230478477963985447588724706774391270354743079601354205255540327058819664942614246541250820057874310687660218218526989745705601021376394489355162526214229678275655590911676695895230818450818224003600413564610161015900779838069958350895826914693714151811938638373252052356642427326547749462110945671122358574856494695078393240624330874664904654318428623440582492551248118989623990421511571185109709122443316331509836524727249208081426642017274985237892331010359909001664192615356039442823507832581116013544613125228900810537708503483760252592603151940413754109668823915048949352057379543365495597502657767360401392927971673226979116933527467454993190396761276588939857415253247642760971264697504075942141107935199583164203352221184792373582270386214944218056276820206127466738773044904688313984661605863133814728436105232572894547939182318454918203182243917442177402271793678324098474934674915287540322227862969575589819116182798928838007129577385445308899002224817344781921411179706133433741804678609861770200094238487026505980530531973807735008453930599743010761954574915966570860993658135088063331506315375324557222950118878400311036900331305836922513765546822736002623038378150708140131433695293529063400640706297251232466835153320569475450511555933940009408853586251477334594827887982219543173070891412137068877524753405370716013118839972385918027612696381397821658360817606232823956769230468436212861632793500483803246308650680875954385158895476886705299688185954232528424963510588331337348331713933038285561783887345643048557442982444334130011711239495472248784840672718259564851085754857325882882791142316863621010174187992662058590051821726959765873002194207288699069133268787292634115194405535546204861033478669635586171346860453492022757607156983415332621750209446116090315399227043596675786993206219021185341643376901877567672366029982798855293000392037428501939560554895016378485395202274202504110943995912918193356959650212256800257776033017561017501393620537717670907472567520808920097761992493127350599584504668954129979801671321393216228998458482705107831068141781236106349641493970062367722755078527207714379631028871829163334361171736998606407863388413929967034547330301048094950860541011105596314753621227225050581679246421077720756285083230090679164672558807350635348873180685347231331757604449118644815312767717504298407304691326303602335082386773833019145231664253771576784062582093590416144730170057829344362448327971030765368239300017058230460029965116745242867917739717014244209399125646900990251750760990900486748630820376050230581794694244727597818255827031243665807652337094986968345083246789726078189826957806646548075558570157157844994813376942838778309520515392550083089407279628222259190563154150751534369390657611154904376251419256763832432339507915836108154774502029528429837144940618114882673173904554658875241341801023409049463735059508266206202428398876050446688673962505553589675082020524025578297159010186641289354905837126278760592959533602620300082150481561794726683374203771518619644885919301261227789830604721741982736015596143194881469910814951417468265447923826539775003614057979576352477990443408780294493861082462861164046283895146333234891863437954097421545223806454136415820970794036773283261523503188262507817828673847711202514930654875492721097965463011779343434347497602685527509603461411642919691074664975132069867410022622515756582662328611419141754128145256721026597586601380643061406701569016833126918061269147551438113513872836976697409934680578890244116869020571693999619882556407271369395734433652476518333510327926466537622885770483264418740651082618855021738707754223374284387600709622341076920738315910018550937913745005807822423701388087041035602729209317089876505565520168858375134081048362812589728958781374956648231294589907847042311173943394433635130308117584530751110072167876534054755588145654742828151427289736470490858885920165852978008035288806249493563450056890413779434453223265819496689085918673070790442833229896014623394160434130264799349210993107219061122191495513557715733154308806019231775415231763308879967274279299592592553810734723800025411349119637537246228977641431849431636754740513752720016858269854035891270437967237430901235186634574314369271088209334442225270527525225012968960411877835305392140913274123214183098048265465492326854862169069859685107823424994911723070573505252320040626103907552164612015146411648191724626326605194902850287539284074635479225423743338563075854595732969700768399779588869606634329831215724228921292972130454459783018290242416065236268293043591204770847947524597480756662929091612817462446838588698510321858782141783078803084124644277664013919371928778568269878747191677810609198991177095140717424362235504504971905174107418988504039609159380265047915037283291343446813497072861110580663331906431789525858334232495442150055757424518369843668021223127870039038904303420255878073189831519978255000082711434238318948705914634605449158234575901675370202285269690491711953618907614285403858256416833112101125203787064699140674817967128059998858842038928344400022995108924461102357629002399072736514302518548115218504555885787659921235178268820395472413432326380306656206712445929124048108270183633325522389140633333441105571038072957954154432281198830332614095182538103116113099149429302859278993295647365669807681285798819093662002930652113086150910878943349618723353992576799178139146581910261614924012379188971544493936593123165929897315531115715334385498553204531994450047695707958924860599669207188339484609213705254453397265039626261788610969119590147494065777343841421180178151085790855649926035370523013226632852202868864534833882309100829246441553476391739523332604417904324067446258812123524485618759494501154987313904831121387325890691703721371529547301373544871910361179476706049007689945057762325433864628491872260659594606030167502872496509294114558873788198884818609273971465606961947065736233624433838291370029650011091684905940718045329320829954728320589392963499409221735042163293507312098319078224654673900734390819900224762188389598152143164274958427739046298557706237829913767419263121313147453783875091129234324146332121264819746681385884426681523096454641295931776797725335985411582335118923304736118272716033681845111851267874769021795004496129359640889775539737156638501608100370550074919902904750202394144602768647234395057119888645660656618144135475635414868328888843197803869293578261754030836885319847444150140684794896166600388854137357419850731671514408818119046427182987264043864096182412549832902414834416429226052445510423136733713170794481012356222386916827121867975526231757742628915660288940923666413323152838731814363933679038885320314092133880931261606084418537301795259790460052035441585561920779322680391926743306610917915119579710604515967702332467843597329726767067375328667723679436582594602399777500519465387579854422710163960128001518135171091268568752144078899485063253999919803869456797650292709245686504759469114361090388776766961390842121883709784558444662424596652971235530002395763291249212525958439732677389920460541811498907975996329750905047181108744362213107528452903990029523483170932761266748407739517742505412911971034922637243563421053356972435491015027412834585932908541607735211459297808626801634527599280508652601623981186572422540651865218742282472899198791515236536710693650774459612632914600422968126610455373087329270244830351921107841811847803284243924616799997235618979095695897711932591857634986739377564888633662846878777361699375518432787917199332666165531821139600233096547332876734700129849705270507293980387667227070807563455611291157257293296852607766994034407990130556939571577045475418724277697087421206902212002362470363531615616564477205341956583864395080038297279014378768818692346848454316695842910976748553085584277285036147046856986723359478692478474829559880452158344374004961137362230562529363758644163945511011005751732983218148267132948584139422554463546669784006947164933319207454989956009037201911402666572670782990869458970125417207525639984978374122692734856236962139380902985459505621696438666528030770969584589275068692164394649576807450680626363473873519935275533999881854231958574146307234927505926148782309557775401570814950835445016756882436559200443894966570784388751396307534047233029414005724339601594091137334623614279797006766423791426945167934221229788610436359313948154522881703957775778615658124057759268356938825560388703825598364746026796690090008889723734236159624877219438560476886128590118006247460436484441446257197717408938076596885430706110921597066914668005365680681185920470823629941078080436510345561607543210240925804446960706425866541126158918373393491407252738305074715585666757925502698441849684670762930174380270454299071321815155099187165945863387808007703624003247806120209830790790842324253303222201404908224916749194795909758321527196338708049890304626389922534327667829357103814149430074357662366399326430907412407861795706066382736937573585275259213738577125900423632328773677872792997482853648207472531803957743702306542571219803675508505750087443573656082687344893144962888955380113518281321871835990244118864911882162760899061793384447034739303747702532920356192051169650436014407451133601571149607622415901522638351876319874182551758375168739634799966903166491356302226467825127222242395852992181730429048954592746943045636199368134247189322740615060087560734877581038868679406423756029245506134261980953887231598009975532063275861180039931410193209537813386573441771232897283716367219669336230521186665415762917323588178111530616081425810674184406320792583571363753189482736077347763476130944095136401474245617975274349618337300634255559151920975915100445916957151087544576760599433220852821594254975940230846943795434204368871606176100914131208987955233185351115704369363915425396357624638070692825833197172712742070770904443129278464335099321695885068678625378986243744651146089350217257506708407836971097911931508121213675904351772293852375511191868249382137893392417655384881331512504400536977893644189715547117599898977058952398216857241489219518461303787690359805167931823394539685844173092776455187459654027343796138966017372494010802915287853442772053056747914527490160928778602876403232051506895182448162193808314939409763773645053996312427124291905845344345627429595098386523325773575796024867391024967173195154580463060314963299365504329931159993271937405515511679741147354439060074617827022156904278397380268878972256665886265007577531635394365020499289355160478704053622919951066806474418425822530138463269119070303242547757566463616616752806040260608530799073707251764601869351923098456578106196748708326806663705155126241709672515572964657478541391165674535484735926597993396965805990113134627706741389068211605282009410512035655928852179264430116096147187594324882830755842429550491648877247221029144452569703902358025080080418989612942843250119320224226287643110602905150800799686468088199373467171064275265485292801752239581784467216273932728143077237885879847410966801636677213383028140874615340845733171856316742436427337110913117853044763137754671388472655407808022954617849936054666073278345902771459954928333753304724042229987657475274802653147214393018663756901761873151878840632782167264723081378811052258241491495373767795019935644614414433823763562300295316768720015608308685818374701695957286767119778694881733135128499974466118287301023831913092893258402688729109000480024303246457716830780422995452186575335903039278111472434045620833892308545713151642967973291402969073928017629075072194372200353836828027869722499421338633380629326863163725557756640009591974539666320876298629429917577821445153331263655843905858181639586658477577660819919870303853024953481310343438924257657476883067605622978248883119677889114655164836762093160000054500475917038224471906621265184123226620554279386161133909580756927186693798425733480526575233974313766735335265289178534974804310048331425528108907836858571905521963980850435690335001332681443924635666598149568953344654291999929067416370151887667115632806335964853595582050112787918853249063228443918325014808717107359960518185991221416799928722312567523795928944908746212753111727037648247240170552657642541707736116359473233548950597844036776218028716288574087531212274021423616623238769071802651612616836171478487857875948758794662154087044050522215003183166371222604768487693027325726725266007638172189928042994772064720766766552599524022975037636546954009402341724436647363093854567985479440997696931048156757761710527353025115167769467403511458338615995412819544061148566972858949419290155815339274114036664715726797749648200563680847551818177295593436522791690140465701928146245326067725134335310450516071309983225663805190448818033006027082838679288993912755432236849872081526930440502298479839100421662002139392253565374326868340784027591971698561574460166417063481526519371483020720520419211993836684725555388570868347356796881505938211169500337590976514118655305980502276655978150095480961541352804122739538478585561990229848334119570028176017577095036296392530334999489757555695365217555181892256157933726784781265862255547755154195064635176594836468116959111315914393593306483971174938493845112983264873606070432252020199573386890311234988782040449215555363518860189419245702792885312640647408980845273314044957008009716767538976321651565938027618665975037832907823046272810462265150728402560487253015310704186596552814065717447268100701512278700808804705904371811868907020784525199027284668193186570592699074341302295408368215224085192414106800272115161977128897493942611441917634451424035988274463253062494843615921845480852570351697443975080035424899412838863066913046127070249818840590121775802576784717902883747017672195382567127894225530209819588812444125750487981111162645868050629719464024512581559250584115935389477890184058057896529390876438981756524563560398641361918434132273386749726672981417676900757424893382649070401599658134426417762035690809684151907203973920000973686934417993443624492566971490332898877883396117152980584867872241364327914574511272580137322145966817669844658196876962546133197696461852231319783922956487737056155850250269996949453292805996763379914769863996919149177619700692174619050969612089380062327861514381578226434944049470119180335478188812248157990044842185382292728807206979249279461932340997859243985096596491949963988101006976555379603329217683010532314699194386895853504926523855728301369025779386888174545804580089332811193130985238505258917947790962204529318869720977850567667765367389134849880287076015166767559914615004169463337920825892093353758289719592867214319216046476755953104549812362891484184436180320275887713365705322218957800637700018592648698042427249147864379994143669858660271677135522335237576021840771795025016432191194091770887268772440279249862621453059886590643078634544039730570842521792496025642514416820558702391276015638392538817963841332970199983056623010052607957373343993159066064078695440002879246348868442735382314519834967969025752730835821863027003767683113633816408930454993990057925396030926528072224168787287363238444801931538054027590674816346944723825583154676605626196918437356800669544390226509779245701413401616370029531971813333532739423154151218267093302439726299824091072220344289336831975774008212980217957358518397311465612923836310906352233722590013161985881336546952370344324281673884892185035442796849622847614922818201456851765495710041343086337510786633914958298892354695693778896625775608172442890072956705823537828833797311836253755278255464921454243535173063009097998410778336781891315779142719340391478352824420979637489238734502025730891467969172105577499118399084341617546586012231044571561951879926808939730175938356469277744107275283260098800810554749391679290527632953024793027823456081744022875958335366344823082676593388374891196723529814794692300845924793116946490502893577812757686290896760351497370394414312711679899480242160262441468233147760826479511821416786514101676345467671821139793174939526506034373369457763322445967650164996219828723173499826135705894940176348967375845481258560024596921836968964225898273822717352114959831731317242391999075258460484822213175015012340124054585429106277060350735374721318059365579598700862930555097749808161017064442174548612823118733686350795253400298321755255821820974771141859455683104655339325780801352167118175698967714670489127112012788180231063792175260821136085479815348414185673941962785201509510045140956863380756806664811697841611676719232388492629141436007345259157336474951225008545850330253907285650966971292414178074743555140918540829449155122936737474627366283379379403478646655756413279210566421103635975864331899354734922437988072116967742405796487940036145882144135813514930653411765567957010657842783246272295379966513155231659076544572012165304651432428501897710611381739752149690439396470911375164885378120044126822023543036819879110450228881506940690082129460945987237395823636526423084761511902093161096959916153740721473973326797465756953391162245195588334158674230718100462437098041669225691601660068770504356690421084932315136448029017549669479503205250354000637295115308911259234855695172583242439871459669856529123228030392767641272171215750184629641922187283634537839205435755070940590938134385104744776960711200360860316707140677816296631160666417314614061407609535036620976600772648380884867801882659628894234689273190813695710380686322269808265045612237621366336220824051391699777899550714109427255526692345571383252106104265984449029464550237127186808609083439064556978353939424741109185618934060909135545990617748907952931265587221475751726803562426053194787668575597292040192092862461244374498380794088781932144776418802770904195593491022456664424785187612917673606880717878365539404371007258364299453498047038218753641385994169750240919534120790160529295283483624215200575417291117258083183237646803838113703793561397716860621129493653516395475826596462131152179291300442800095914307936786254597146689425576485628837639180460415515176257735487813093573805075005326190217290679889637916809981593082228644988040340977832818958024990644041131452479105873226785883604087509746062951147394597874764668538857768641434694887554891948213715682658827271458063922387813357638824326230372117606516006419258353763390899824163135645368516930814031314615424951993378480387656739129078170875046198951019435147431701577138901279633198450498726528737771938995219732292826267957044977872895854712636284566713348795688570660287951725635942834812695695955546343982673123189220156861104743368637818611366244105750844253211963178660678443198508932915630567029299142504466571343850724998369105105821302955407013944599602420817927602061633747868960890606785531324140194018476951341547989533764853944906836104160437777039792732741519708429661581816528054103141031615237141344238957780157546922976440108256783849114938053756097748587462520550783436339356631101001547453945443738135966189715404739517981598899626661774704779416341872541649178382671652568297778923947465420761928419599604761580234173440878698029502596081703976991471776655744653655283304383646982057260888274356376017192447306175639173786261232791716435952022339144292112491941978495965199799969167896319407234126159016300430497244266145581514337700634609041399017604955135769201448187250555497842104837890231990523730114872197176646203008329484063714647218008478717259759837881105485061061468328646587960653830809452447107066588417429494205013811904919232871248423225478749783797839072745986687764486579678351234834935413312302965628143556085426704719704395864273751524517652729786777583056373756374532237699738947375802915435969136990406953165780288698095673893735256871025928286186082738045667216482974936718569827927609252999573473153226749275770615888243390661336413987052196883182254215784863784369564693074802391513151251447483019654345519521021326224491071267034424768899936266053842490155630203358462193228743444603928627127117829396821981298549583785635419240488511088296887548018478340662907390397105518076665044075111812647229762876066246311415666917961121160088529237557654181516320139399208740527443793934043086017375281736338142439074161102165017297990143489325052091641414014696956761897334638035440233584230956380679962510389388646197353619629619338327514835835972125308905483463292649780008929181969071741052403947130205131061430921136058318156396031324966840089670037001496055121504652609925611306139084025661775549763971530022202073358710817164720305497815226408171782340549293233277012496776725447976787055902504182474432917364167507931631014294914190682429830640362974025729424649386402166327153914013238993758289820182283207237491440073474653702129954230762271258605004226069336616773168365717072510194955034070509568121309483612574665718584377056456556580665107504777864380893025935869624762693548462647882917979303561944405599930305196668786443219266864443853068942542636074679081653422640099393874746230133317845543278792788861781218417892556599348381289871336079363765535794251479288003871504998108491360329339646190653150636974757516217987302288216591624117774712742005367674126697607835515930467380241113529697475236796932544779014636038820605943412057130698146783421809056505660574584755935477878346869063545522964221342986906813540128202020123229679790582470536862061158383265908076868864741469887240622278544653327798618274629654090947907995225093477915513406774700067544746670952585546875871696917199302385038038338581476158048001269220062389374201753133310536405068235378932995147209912920543828505540051043985238399655409981280619417523554153594970335645904124214199760439196589210117610085571856558267944784135570360472729156934354931344582416169541786068471999781651218114518641101568733782446589541163347513833701718707156978873014537304519739782666241018000054892191674599882024118582597549515512764314365891014369135034246001886155906711090710968493405499601069903050014065857012763474200660041277013756633401132890319476167092770084046526034055555882727832628418406637942734831854813401396794916837645828494619643009109632962417732435188583401461514956892231653976908938418571954570316268112609950674415324286252828128830951521867806516730335302135139034190551732355596298017722251860421620911035651114275351406754772641903533893061221835201066294379318245299843018290250270966191397404186240874951346350575766638196763414322709577236160001408721586067995727208255610929694810372157092739476831092604431541064575858608317954385208380186923425308122975037143944973332887682079950949435756740633346084774319870088430151103913688496113117542812905585977132759949842503487966694202854101730858555407186767981094403865544324181404549576329882213760003245910456319522790823052914833538350275985937175834398136804190079916996731305506828410819703140504678034923718239872944102462908678986236544614871650440239359348501029412728803954365213690219023430400079123333945234403726281498964420349655785968471968597543253373150255649410917947381502862728758303933151904107561654804258678590105909555522246541273674816813420415808809781307422180398959901857266473445344391291122946562580005508405831076993756873079946814162400827000628940393824911259673662859822494294858177414791460850372155359885637244572563645134043304332610033265216067667722074009032380041313103984620082212165126886533381064621833989460750362808587970413013526171198188908509055227971743975673007557613582656451781472140104541707838487039515639393574951518734285973288926072526840833864960990137483949729438897174252779720171247922790629325582269486748768581951546340334513453227707603815325587427670606414200364373954683986497990323717294354157250528488991410963913971253985112322130679939243558727964114669393429255656638055050828205239701067041527974763922654257936655297319207458945333973674052222945853631975733709122416960833446232796884036682820699984467976958794535262146586811467533814436872308698851680969837661786777429913061136957254480027857560708555678314987438811167401096611577753294410037061704754870320162806788221692559224769166809885748517765453963637311936849059629129908513574938901239735299830930462306743756855542812375171382681356957905680879167630772234467573543697217030507213000615736973691953336869323846704662924715033691506831836012399557429383863276752974826419206392801305232438959521243380754949533220982432664604682335913736637139118161797314815290793221798318564987325027064855152474692698365002224931601450603793779521925588329387307599742788147182731946068076871737242604729599137413056364540022372363787134252586807322216868831260973054990774431610659274365359167722128315559067818530443631227615265795796955439450103348841608689842862949919986148413692039676082893902090489870038684828010811931887453494005756170463833581347196829522620471572967161488415254928693461236538517620887487227025561608079271540061681186826845297476388781768777947506133424521229281354167831497461786892780239887363203652880429186642628998129751288537727249236131017590374272996376638293981766304027914620026424591434928807572095935822115047079936982377131867108340713809302708443477924903658509784148625147653928025421624251976521297949162455610097679618221557541213750306958027140861849074628094692495248002184576124860161468780830661186412883002902881106051333619433486654244453648048826886875045802558663641077626400818827263215468737605620683737911406680493200939332829139831614398858104081740775710628079305942406669534800691541899226326876999591825613794274035230778987868124951037191271635800577068299287296880943263480107648746405877132556551385827738635280075388783997359030315360446733321141049022938927112970114187580690220391915618957743581299644668646588247654023806567868165903623598472481084323662201207803557828542081380576462576898731319908352270508071361321304901020093465972060491317405741405078209460218613242533945717685989894378880483890267370937978013903367409855540950677925616850258062758021585855895375941979165658370433208866649425386918151480094472746216269334533650166131312300007634359960017475230891517549738585481158193912642328703690402234091826052621684790621421181901696085863708947166027957870025779586448800612984822724801641544412755202344364553793689337265912443338234115254160995396213213332538314583278807997774790114396628189626096654048594217762149432311766582780207531316920124437584588229670024629841748029604793531257889179078016320866395116554753091005525550725908162323256794405380334245199797870734034690368680926102581524957691725180742149526369868255807507531718106643382351566700061307486961057600280168731365557925301408096701299388945885683509971216275010604543325684119324728083630157115116792216945164275451344909451834985647356659514118235156701334829694301081505658451961657102702294394913091753720686155514707063267398688325931164381517299557681635469682124080337282176134225885793827970273588530849200284175149859556445030240887856673062946158363352027309997660374357257333563345946834533743557536522354738850576374655531797229244555686484624017241175712798293938154802387657688225699867295190167292273748098430938799532031330076562727351903508653565789363843338054503220829382118587413586902981275706411618025782495211762301513210668714642515519114178850329141088180561721165657780275291787961456326126565563862073310093408929198199666710165409231836495196835399059017799329897959533233603035738515023672735417042945383323539697834819049748908853699216910689769179085184744477336851559334893317112119010142157052253911761485494151270279608897322963237557193534892243811588315726300937923183577285381031346114296469436736059396390116220526757872774170170386689368044451070567040397394795867669268664911864615341706686923951865838029009807722135498888789632938045348860439976974895566767520603472264253443779971805752740670224109497415557882542021735094922388923733787180829244068509374347716584061709399320366609959412595675107859805089977599632916043342544219732371045533225773044360698459538629730896722890453067461722398159242192810852717468128506562509872914986458298278816944347502401846832103649664014110256460241873513713673198398689819669593191668220611342863859628648677778793092955800963065903950645534083670183489072310425194977586383097565545414812640622059221162117413378255804862631786717937305814014396554103483554492791772498455076329207778351759420410280973823902953978463525592594755400571773417310264836588078325027586252542037871104238469759466433283756625684802489341473091222107539508796952529999584260317900535770555101662153196609552631654150087194279290970030078269696280175076961079995968976015349164715954190876720590438389555793872486409063888263762166282371859426524746861408462626672382571847237943911029491911216633096731701893226076772040368388261811014434674588043695124560552608133226077814779849855807911596552690643344578218883757422407302378211680999484712902091289120044868514100304410125419941680914244853515482009310836804776979292949661429861496892557571507708666561153114184014160844437075364981205579798551820816509400016580396413748108720972957595224873582724829586873996927325472671041457333715221261764569260333976427308964747251594376623987677643610491260900517005524945659088484331366377433353220876366437431046240312714490824887822771024492230286464433829962732546209976816896557796687473515849242553803913465988697360545649432623818783297148416147969647605889718884102814595983342637853810485978508092723912476799135585199618487233915145635237326325414903275652900303591391684594479704705424643578784766853402444150714906367728626869171724606560362151874177559056681858688892976873803676245081071168120842269512904883774134905931574091840227855203195453378623126830413554821544072203112201155798781747001048082504373220772960884464465762268708316161526888139642232140096103965610059177450631263826973031290954904134379136137949044992730575167747545410915249236525610488945343063370702621013655520208473335711245539128152388440819949216084505005657587354772808439737850087635829376876424425591924392533769878105365980568447366803317613807699469517926737451079560300738209851378764704333589616586065393733135566869238789348034542376297058737063077496493181825884884236217129641239390574904712051017574540637365453065212780402147516224718753696087045110514439083878296015036763112421413293577170713341197823810854672860658619434989492762606102623402762348609769009095332946525581228361134321419128409072235568510354031737799431822892838157014834912187959481203275591136165656546926877696168888206782591063808068102947465874597525931955112009304173897719274222061129463258119112280043629435262520527172585999500805624161726269343605161491191564468998491941589835214079487983029113767952409051648164501037431403423803723542962818508741565756889769823458565485591079639103239215559326971164422760581321883511300152103172318772245922293046675322699224276469709880757132207887049601492109654687691679426704071863929425751773668724898436315757249897946779141800338977291395034441156484935187491852797281336225284493777089934491690478745337331620962762895330384959296972013072602830491107086995685656833521910259123353969552744803281814396981828067132309362506698289302734369258872368288429275460222369738065265962703894471629562967655279783515228838393184027376175422358036320516558269676669331308689599212148060728890688438263226131365290180549570318296455617465064798439010275961772014270881129192713841538932880133098640342312251742566978306707959672970652958442134804741709775531076717897907335878826999242439070760322512764462744674550018776087943158472614389062330366620944317584546101149633085942965905058359274615408548433399908055696672544273901004610617754757292000929155081725609336470963752392678744132595872648606291565448212167894038950858167357711700830676679756544245695478388456556755345338721359532232052703465507474553311199368165904640880942527731290264608229442404055559485681928652914879797889137326179592185217797681307031937685269186537756518084033710690645723384580025350232189421830355265359118522365934345552928643362181478219992217868961258955054278737042455326667188957739049074299359168355844248282675017845140684247621550937455306943904361061472027586609652940370275801523211151561952583736074296985905240857481636164486572808600542894015665768826165283298141861588287396539533296330734176823017392569602169132763542152171962075811499318628261799973233625406817919333238518442824585598399821286726119427012504580152843121750332868233683770250483276671301503063661266114172648871981758204344824454079008473584871242041929465829135728029649253708840436715105061501662344933298746114789828248301448899554710875170775324650240679152803005969764173975758308446415316183792565747328866427758050330055210846348737818839929971400595543939817382426562320783831101771294226091344159246637073325954235421196657340355372625186101400837000822495848073710287831565494534853806372214585343845296239291495337944611955599173721390701799356867219321973143152763393243305216777919727526190701377284517150637288789223962130108675094432809779306647665846661539384086825849429524888191621681268878916333907308999951382208516694305966670798708806535010900349684264148442250742434083234275663828538068974292441955984431300091290943850521219066749074002405522434675615852679660261538737487736777950119312778097874865794105017272299957226658027106592900947867760025174602945616654618846329597245674645034146487047874752078843464382940480278031141584633703453468743785509509698044039288124021846008853397357440508364629902226791534723705413423134948848282264356172136809749769766594358486779562069354704885118757653702379546672878906359639563223489265069195645269665272537730144187850573448531325261143199470300237591786486605394472823460145069404554691250496590759379216126497074740169532353902542190790952908977255583683668952824531515310106983945180947535201100060927742958809413600287887503619886166196338270255832700320190095715770394211213885975078037981494817625812577215182765933025616565580164095373691951082604944600863139175520214767082693749386088056210778635373045816350046910324054991502774132439962314152503308113716621336860055991011607426318366512342057582233902269945734143066464132277121128248215392623358650017678437522516606860928768962688470187777376282819348589516985483867229143922416744814088389551985868184634375830582139928613012986643707801294988400893698054097617363202002761176299007889655847404820893455634526673584260393340633402710477213357820185887611068538582376564485442600584658693879864726180296128348561513066477062377703751182895538164590799052285405119083581996772908044423426644098770261339891614661413451284922841989796602806018451781241862436533091818227209854073844864692995592097613205732018653536903998371389765836557010359895842462987273733353501243197512300263484883077402528976569813359838162327533755833219179624549013667319115405799192323369236956466426010872702592726736846313395450630004402924496524202444551866092779112767625370539914635597904522068854592941138034037021828384224994992664364146566135287745349530656151853887268078885522692835819059678974540390597236859518732536807541112253867447071725220092161707879350661999507752868515347497226952904861027417519877126499530856380664016619452157423767925752316282251530900895150666943706142770782300266154224420929818849365329100766751927379890026824513908553042825386299459805783704181154390749686869769596591791553696640333082909609385325451762735474008749291522961907997630390538610081478706357015737548513814448314607786068581093070787936745698799060755710087141990815907022641140841591627976268278688469901883859414003463104937371557575023860375661258822282988920608048149424110055285600245155873780074277941347752570370831334918718760478559705306903665881334189147186773083723967484291191888535344831328183450397753237545471624996771268889528093178395072570624110712510005931975698369280202053699569456016701040415271553178045053273815324253857721905425336535608226659314880662001406435847919819831356896085658537740132224347223754393094107314497645776421424944517813403731372598020213240338601945066865104271763834141616527057953435400739604024908401284998276179656431805405405489353082359899758250654535474786169113669769680529206323946674215880959575572727434335003492712043736485208150445532372137846447255800568212937081672740459244598220011044942440832542198169242887542194167495279071623206822814414248454742358109977485317597098730512453369653074085552997550011287826561593399210159897323154985472644492352022905820939942132254224472990296330755947751901085222896047411754775766515589892139085950670172323888591290224299671419468402185088551184283606167246120069451862453980945393651014452183409935259771880287348643233882763109138969673370842208861266437788316895550820782323655652256922105438875213683010710571302951271338503464347400090763490713637957174076859367357528727653461571251309318588820718617177500396164918720636799124081255012977456266303236850320763920529989899711478982603005337349495836206250468479938393612580354806692164404254694586954212267667010659933058128240716135227667987066371038662716342347137010108490056884553626944824202036201611062326824060913917347010695688426872290103090918175180358395898363582375827316390172017297105286200522106370930756725025590623215901358818676696507968650765005478391257855732432540982923550173810639491912132240230922803551684938828367550043398104635825007301674940241889876911965874387308683592195227422747731574825105436511599914822820927004464426114627802112917057759770970718706001323782794624747388045551991010293314872099390172122715278387175988939053295612304364061627580926115362283354839725331395931120158395579567732044768974536605242955130126744608953000570435787161042246587498598709389070467403560048578241898475813472185453344808710302968340157492622278569707198637132340106561455815294676983341225931291739416440124403240458277865181924062810340767496626068599483787634405195556133135378294003387926423149570849844698979142417139302348936177214331443519397206590099171925186944658037407257353220635957416815546610661777932342111178849147591316127128194082064593864496869766606029444757410392423970000075758309976770159354047404426716751750478820437535370086660222812960155662261162239507729676135809718847434590633646610734178805747327995300355822354573073721434378883221476106961063960255107700696562276938246787369490284927323848653045081728903721864814675889459833288100419019961628078614761588303880960117759883908501331879585049990538714404018606141370439983546500791728254588308156632435446083399352799326765877080840352937804455453184062655892203236239878025734685221003657766742472088861946849863703057717699107996248234648345441424460705594389247594992910543008425730335530063303798043592617775488619263732602498547002419892537895361498357400357372960667806634320299117388969520822628464122552486506687265435747843897887810608604049118001132399139687402861166425983337499629590415391211011636554292165162015852586700949164901419382918392244777896468621072609147112212768844110934109625545136686088383249413219711544056321257171008392883095374067683995201407295419535840304791199420285269058558540057283683912833545467879381753204566647577154916335621230871261726370964811828419163195663967226021868668518818839732269359426538188099116552157427045780813717967722319594664520418416769156090624284481172920257208503342185146867491573762764097460300894903507353201234840394272965689675509397560335054102501017233313884656415597277257573566663549787879737572398333354192329085159640090549455614138380441325225902898632977359104991847408941158194493700314162265028249157089396851906674585944065197475665844513169970077340905798919671275994725051891960176661941473387486877297579517080717805836988491228713856348792808892672538138243207005958188784994647339642784182702982220278057005057607803144800176357474447863281170634081616689236628852044391759420585466278219508332825959168574353539711828532935861795642053870441059967993999772147379650883313858546079141149545467518183417013323923515556792322955380854229978303992516542662440257545101043078240701455612164620718828935452654656152117507465701852668997538479088955803703937294795911384795513766262145081733737630949951350768531035588278836730507118402056427846225905776411962954015429578976883614921608688486004832775341042778366402169734299883083530225062027008216874121663846984355408961220778397596719827234269188114199100142387573106472108988861577379200725009659024226717355865974860445266791461985321022895744328223824619935289940881056488147374520623014823356683521672664680764011322617252093490428157256644373662612326561768480135551394427997887208088753980424051265762530844272190395454185018567241208140287814247281633496447090831714054386255883203248512343138068248590044181548359332800971383142221959059356134778570548470781872299920439152108744163784355817556383060839910263494595593070623546692980026011253616960638188707750759641227814703886901540099960016902696808232551289884500635565455548589748254147165825222717728831339186096545816329206844778003957945365132654143411072103993353293299699924519607333746345215655724117932554463894017494784785071640888409088082112497666408620154276567819095817601405200046605736850152098302474666531520166318459539570006573148669703986005664700387724529179912876334203316974010765694596227510416780624234690065604812023768850112286191932472178577775377445387381033528085577504017762251901091841579674570816249619588084560294168305698089490719659354065088709659166990725527188743973210428318951714100250094284840660588315017873758109843501569346939787137914133166105141888872979628011505600018343663687087996700714279335474234055313208556358116436727352032513591088897413525610585846723511203374090720918314357373586069840544165143378152925609923171643564193183282007925003283725987528992916457855624915388986509080969211116639913184763482856084507755526994001441523473184189076324470273444967909952962082430127283505707804495368159354335040029401488839686507251145637847276393911369800224324331282881959284013200372149265770512852866254648431338097688474163952057589982392802084963403088782290526987700557275798361611265824928207363322241792073202649428678142487811915300003720286574819206220985969937563616816386003628678362740131317971689474447337011728438329151567614771634892226078425031482114727655590820230236705931563734279178474848371524141847509146954599843635556049409908477943372737833392680324903313029572247072451175088008440975074465726929856868454236885581941342277216556982377509865253309336737820001020596812457995656354549147547676400419321520936900191990326411802876293683904732282082942801607274936062476714807697689447666875996517608351850558640758719724875580744645677779173549576196826567528617754968106754637800886043756065651377716638843075567452693973446928246075804034571272769598611751103279831187256265391809744666278290319053743349177222143151409900437037717629793945444764668752673096812562051512950888953949873163579484335611907553888766124713779207585465923452855595870363572754635521220732238359633169095501421861281250400516320697528669482036126235417969265434728394361649256665437353877541674741375837003306066615274573886154164105148400989257438306188223578770986461323812222319727876657235185364934913127155873298170017184704450153883921829220648319401790031783945323201524543036188866643456575507082229765628499012051520979686065248993444722065324204488062191597159807231958780031880297649009493325817476289093156567630772419897611685587130757769940326639654075253375781949043013566032973739753352211063319810686423596758276043741624810790312982486447304089804926099706398835649508073174042746801287477839397275841792221808429333028538507138610262462292589060623802146867817171941386707079184876145102193386822278573716426339976893428407336793662653005922258172883982725191458226037289324010265497894769968797793808472731206534933342029645963034145010644488194816722310850211489676807490181507654721116819199717955469915150606577280981351950991188905371292389623590543592124560905380093422094559170653097691970068339520100323137959677723370550521888278669460495054662460925471601307799307214849703453807035296231067245079722253173603281458466560660256606799657628032099402159873751355983805967216205977263425945249623849408060558744528514939864597640097421898244191240881151804060400522576551922867068114706202820026559384518329881667549308467273357665022787733646728534156506156665447852535430326026476596547697363742433100866132245679742498842355820838318323810766550127432432874591051920920877046352661599355689584631979423846972728532082813753458990659040488738941631884798568775956303656952611944024306834582088071765985543788793616821415608504207988970662663650625204467868235524276486209704150333341873972743289973674664928714321819116281377916048190503162874450652997326821853073266612263705855579216371114784784214943197822210448329815999149460049346927605712253490102888148170701345236838759404550782843155667602973121155076861736256693250955134558650070960805762983617649268632377845153532290081704245633497811542846745856158896664360609588698419949425499042633177733581918695600794882682062274754456939013721704753693247259598712362617561884239560585463529062259226414870622016689855391189073812652512945859002798391482416328612934196701866143339000769759936833616078727035272934146740734435256666452588203443919703567601362851550019277865036326800863739898821827585276405715132386811880383193050183014019083771278017071828158532421564273630001273063890661823140119433678387082226871249132905587400539861498491600828980276876545907847358261765073191999533688745516564127334006751659460884936582436988825848101876800689627496330749117965569009439566732181020128232354480988478431020396085332462672532508554357992048849543651279478905160624590497630743452187403428195784127810706648709355115931625156389690636000488602224647113252333194147870118486022230991407276535027537487576301852909249798479159258128317451996121564154462747971178799205761059934337471686089480955652516195165742653116901364237254727350258334784499486889461312846646110786646673921599764052167953062537089967237800526434243031882809277145651044285353490448620832208024639468922759018162734459247056096599236346583498265379609693847211776115363875667176425336914870111498017676723193042265267887189890424788168471494699252466172075162559893862258107180787194666005004855860864917582618146915445445439160255488009126274749247517145739455381004029022847651207840375488173683262214279405573230925592895341147487179073666210860438895099516706064444427508056816970248665152526528090903119022031534485769015538133773074387329925285810832195168867846132723194849603187901472330576015679703078690226341266256577932461068218074160580380759491869416617555726319428941101819601551719737896410476476678292563003518556647103959391981714062222367851662148822764088972375976217660942982927035545776058686393653593675438366145017065362975004251406829781808851584602029458587151578162640343428362465419731480094258432674324367393532309478690248085590993682355049905813647435713279917830304094646873037307821583756008797644782075049453744591300176619006143374001029424070815607415658761905097301188052592877112434838290203169550915271790904853054158558123159307225956423968930074888970979270530040009949706486313292824674509018047453998849080675530319029716659823683839941387523916808243141095837410524214517891810889908770858226178591173450047954018645762724310111331566027441442955875782101644757802284168879895230768618120695129900301265367935383015749591504083124098464097427548167141865387648205120295616919416760874467853915572807416678269705145641379685985572199215612725920100966273559900425401135045302002554837978742904928551751865972806077438936299586543851519795297174424114518881153551108697951663409805794215921418320964304570344835743962443054054124052353131877827554020046629014949275418710514096226219755112685460010377696413363122703753829169381978823563469422637139005842163960161976580986688026376146993044659020569858755870554819638523096189680784081399997241503494349974363509841175683365615074186736457108583452293131187774354329135318090797651782870480748920021050412177522948171265522506018945880008090438678363074312599026982423195388828090345446084366344190091539805008335672392141958328643024811785502141428253135422601289509521732495025091324134603087148213430844734308188598076510865833484914756838400450789689789182528421386645226416834080657512822843112278652239746337556688962853757388314070006057416035496095563046013922460764452229593761405543492039431679719599978307403585313304425209087031598311260858401207303136637251313011555420407088241596475587789874017228472265111442107610847887593613518704105208169904698211545598542679220536860685126585747401435561366679555413922886565529374833049447108640311752011826946141851711625192787159055689103668679386308571526094421240814540492233161337854110460518463959940937231452564333196254091988325732404181957699745259816242834602290301829596192114478890094261084815742677038953265418780188611027417736197094181683013885653834053804311223666026843587975419357448648581474831770836354434768582591890534012723624866285737287154771037090573395283753963833618576460565068041000402530625624432568660346956219944897070411202654068168912605775598906058025575363222932950472433766349163794530106287687355203483940449869435169149546989221995249337680646859114294180546431184830262395815857651186547493749497709844035259770974076945369062223989388175860842526954725708748248701796345849329650491977492751465214109639886395012741838335955189404136321933510523791218625222765591681637733726472470443687691376580340687834990686550851047388566565913019032785744711512241951801693918714704189344023587419343764703241656960035573686743917743103219692923026232598483338334577550731562073937129104216834153047034414590387717274428656856173256607702406666004639299188532269427170251674121226860063731773171854841261031734435107520522703657590889285010811778540761765076706126845202806568936530223528536628309050178778317224975116555946618928630259597198634983084476762919866913920731794637778707459316079330265077760304044501255763783628004298233822203374636053050771593202788002645997624826615100445147412113377149119969530530862390834857543297124369876987466424528991832474591638185747763097922022592034101128343576341679370751973659635896551710668553492077897091030793244070322832883784902240333304129328110147076081403778631027407171655201344630154739006876538143489752593409848902437225911746706466470077486179619022297719137277978927981738226575727642192597151823788697254895386525438660679458577338822272386042297073335265756953246304957732752274121532347603548346402542622398158389584356419250053384298817408960062345045763379756508949333357872187570101849290738793787106558427993056138782174905178252390179290021828294435527453735314687243401363128971349107430065377838129525944921148737812498909629404963156160250495684605805875232486335728920702436408736169283859451236146697450267231324779283145615855426260165041643525601601842268806355810946312708776991053321039180088966477503167886004210423212346972584499997118032390995960498933058817253450919484898687755721654952196220032837791146301360054272228650574509322162838326694855999338850235117822494621833231619700861705093069087592056958438385183989592283808742178563877570008289099314556676168586836748590235097344895903316012190702178753849257002412301393071300543006756973123874985238412354489869688832860371880845239131100794291931603667904209500310737776200111479641318818294449615638158193114355905951291164415977844790432244698424205930172643495342602454763409280379627344259938661243080284167970209126116828035705656769483538293070182416560061762973722923312893940129310090806513933813795902123583144325393509136049342114705867336505500182452419675018216088469144333826711283305628871654949323149069063134507767460188520114809411667214162113076926926252981221011839503427992526471796483162502784857259625629773535498943127012035235153839096873048230521901915193341318384383496113094090376024325372919267690549613928528082883927955197842540122018979112937251553970161613584360987077576803057271228529918526075973879450775361219603512456638058811895374026482878014609889867891575545479828585096469093190786880122286135331054337879187537244839069402586166135087063197445167451429434330646017848091177948468900478792719405176273601503942519004379967627655810168667860378520179495567338215522584703892008721943544183321544237982948349999458706888233407264345382351806573951113926090957412155204451304734791282444535741272153565948525557845703213833334244574287597566282211675370726712271702960810143044453578550179306881993876491162156233670243663091992855525907773104893132534412358968013470585162514541040862938020105510588417908670053197698392105677657864004220514616475811445811033442451699825605016822321111137683668562674464971879011717837307749453789942696048828997784627636475926186144055842846735859564346804941559608649950633101791091607497130715482474084947488871693958142322191741310525099041434909546171606888958879986728535160467352765172834974331708358052984457631257962692191111572491112538017662192726773551807724917403758592384034931199964427310032360058717814067177536016281377388080923060368512755650727752917336970513363785486389156038577022791643722305209842902346418047210796545063167478923421533600558543394732779399125711557058224253580846580962683255530068352281989450857402642386720777520662475779982868892127075479168079971142167006268774527123826618133599651234514674646502943936063464757571288877937639105207379587177156305319254105741819907816192467047175875728215442496145169059264809037012439973409794963439583609891928356621542190973368875786815334805603714165363580093126728249062875962299076068801447432365158669093692408871604055380473168195860947069623341907564525061669096221126568140935946316545651814747117642223943510077260750561332864096279607091054392612932804546333256356420049138588009238250855850654336212729796051153993060470191076178804627048655919102422623958566995216504723645325865396261585707570353289174190320570000588683643606715438443959209582821850018776152601376757623195045680394160912222457424452513506628142112109800999512059105938148961913615143226947003954204269999478352473640077120449884522260336210838735131445625684112542777454428054690059179877237695553729871155227131761021623359532944094445155935972638989390921334548084530251719795877772664350458281487088863382832543318169251338276001300619646712618373534919943267403342482760490718457794253033236496471638390572307723424806384241811616014711234371655116404628869896200721141287318207379153357564472352124686307233404671628319497953439437063648743229169182293729131755837005948747563309206395927824662145822919946300798198256141493758920312105821597607792690524870401643738540259088227643086014564724716274263708940364438216669242555568174282907446497997150498026001899048234990118747329558208433001607609785642734255051135386947058368945872865648775109210605743231011094606188825564471959031942120386264772622088675152088700167594199028107680973312695620766745164509289536484879162467821776483448842369885447264443429676744165152633727662489160511513209018053509735666485541833672498128061818540893608520860454632992733627961864239241797632617800362641516129497814547993238392983886697072890743537293927781873480274460657080467785357648140075834560509098532781038331872059004110716067191070932223489529750978097894055006326593512835160190233497344880848105177841097988169301871878218281787962831103205520713786657264866065453630740970836979343221647426126578458885580607333647417493757734051227952709206013548658236903784181502572475003059682352909181613335519664829103008556247045114033690052132278694912002755454157408692594076937650685707499476301454915820117616585301747130722251261795017932894595262181569506672088242336403027079054982628481679943406756791028507414810874367811490967853918989776506442246474467290639226551737144195183889824696818615946737358388634487648495987110488143667177173197323773737628644048162371534222732885466130424051978502566041086291271243369712937869554475069651675086018109886628188871308276574639171345131189735748585199156178690430651477832199131193686010278980449340677033394300604302574896388694469374516144461188026913698959067041449674265555663895148162591462389002478984477347704419410249935341948219004908266017856689287609788982219430760278628531014782132791405136483136531915750679531323886643467736746605215505768711635499932357942214144447313714234932250427997996265809996700125711031444816460539699335679054942081600183881702312322209966770070236841506288920620957089886564974951300513712247505866095366017793398022565848626459890482451220450233540604988533232005881745648464977879569240894736019607789665296389614027632686990853269734408406023596783713630047626577684821208683361867997129660314313763634154215012352974467156482079015569492845319907752052861991623784562327166838005456057849847653802575248791224590891615239002986080765023227038691682172539211094529082315038564085286068891782125049350209845423880290282825491948751671855080861148261291914381265057365082229267167994582178752162277657277868944789126119113743546033798093829739147110258000259771056472540684067653672093299433093498197396797735491538632467734313234334408243046739224293813213671823242563402689585652106118718794206704701009172464213057199298027829472645691904007703387978600390032144459164394589427086962154418327992251520076835381658107647263493806718616306591195610711782278533696645258782229301381266633044914935826960059554663166478826236998389721695345225065654586449582591525614071524153192703554511939657390878194698105765422286382001211682093862960215873543378986802521014316793272058018831403408553203364558526516738575755487111696511391772940206462652088340344094226288674818222549779132889637294851627467444864130381497436410397654738609963253416400973400803043902800604194723149742354698520999679364001786663539227538339776413727846428923596679046194757754086909515678573102715017838961846025710425976423289253375591191327148488757414336863272139289350364596152388202650126143622127274866117797571383551380773491296238397774180345518075549213741389848475843561639367227793606508125931110857458641639299478885962181597038521104502185149067659913325630761499341778318250249924467586516081029929839116339696043762121195171132255915825692844046198824009004307362123648586703841379172386715221097063943941582922767805646112566536153533366173887778618744473062459630174820620589072666410469282968119999200338852648829039301820788097994612753879597359165001795895191547574743678323076240364921842689976095737801324666882885081358522411856613178473787828305394230706556303955646747599117835291802890717952953783801423601482942944074263985826929511107054128266780544799427658297079043866595883242188682439511111955710862388593102598742666394643194368348065102685305695840885752039254882175320484037404747169695680294046508795249891647084613679099476853304197419163083594440445078405195424215534684525937058899970603661648537323466933162405256693465457665275209023070835374059875380378113905025730401561242456287850242215733057277096132281418970620508369393540412380869198201703386539950350425825622996152344080813771836130752085546729235283205488706422399435454512507161656495706921107964775253878130606343769794754136103798252677869332590834013210142465298514154612343640138549061726170680153145338542794391823435642361872895654525087245683808205019338594095932707235506008357616349613608318515398125488730039172988521901871021626525574316632703368427300952091873421936741791058350000357651901389534421548268764531948681928652488814914137504644761025300677073767004852395536212936354058183837259419812384621661933267097816233394349392879030751295316528420118430668107290564982258037441918903492800421123891666205849496217960454058600925487331741092374068152113527803289705609367356687493378871968817840677837906498853133100178546465161297441748828695760138092439244378258101272441530363991572715261688900223325455412035843190363825875618133615548800884453538487102195548149749537698451498677202200184188282755268292758570697043733378702446176709532982525812762699237435431894654313883162873678869338024033924351777859517526032931957303802879458971810030258767407287791305870155428329596820004522870831405471898797483625284992539144538045296364260676767852412690594247759714157635974565236805995821772726810312594973491083573150521264731641314505408391364600440443854615841638368514970453915126750176208233092080393148116373336794807481798969319831414680897823568712009566341098011044192146337219211583945048595389569009799983981740009462606400360086180187500838309338379955200078188172208145486479186640599080995230185396700052747232288726087386014717987673022533956527426558469501939106446956560109389707756468594994649986791489860364846096415419667529790631554860307647970347318999258099585911988886403630752577039148800692020692511871464918693872090476569843377884990237911433740923107937114078090368439767976562745772695081959092767295405301488408678095467348566057605306509419963934473815299541215835024503279262375178698481812764039072218016606844939058361211868562794230980820090775246493394231548017161188643923389839496921897746691576789010604239471420665259395168019386688114627518398121568051774563546493232919223243005556435682967985347048344642316481707186943866108286373596553466502849813772228638493357557014254976861948368371872052584522843668660382297098019799093388171696142442245735264238072439631553355476876984886354536696308180522395496935511141807704330293606049004610869761654871082433636732665163466934797221850432957036996878178946997308349052038741262780054026152506794716852781828902106278493154944756464874035671032475269828226522350352571061424929410950376273806539545272506397719809049950766753108066232252582807725825747150407711740157412466143649736455951782435599746860444049049314936681539939820994379373942549918641019570988563934673276020949726944823605889430000044092730822490072903366429995027932024316268304305732960534815569044186309864792678280407693427247073212922438290794708502902894345337013486312697714190534959483226145859462528622482780912136747885405450796815164644312068481367018097994780227397226089695695906160186276879084247720219153832457316129125033706011469027673328219666701058827184294064280369852246295429666043234251065275610804160553454758116805155615556770564287565990344866390492798725206612495454769345558928101185113776107178866517427843213944147636598550192819553622074202794609662332488305597064342789756324464570109647082655093673631657112952650000617101044763695041205584714659853731055015554275173484890978926903517766620792070004355017377848492601104185219285796417524284692471705910857158331396348792828811158772013541665873312601232006510631601059120584246345991195859893250785358160092673649186165881231565979713429435356159603904146548515827479124836479823376388563954041263037330934110564463830024646030582794465090172826762496447930269201874316233775172923455580169619715598497006246244976216921492860861901579461079396024302828904254634411792055232158637955421295963356513783323378131607941044603027290288990386610909439615009996955344229440259089673063611483700490850682046017999588941435045496434513285462986381887216776295420450787011817217337748514136021123477506399468398580257761705674286362385624260027989635067153374300613856472172336674507989587331064150993592573526932562053576906436913750801749904356810963360647177346951856284315581541489810484547360598324651679993554805046140521207218813512049410656913615081249380125317622398677166937542255252472305153784350991009753799867586151923261169455757643296232212915715115944858206431510368349301570302184608968147789879470378374123086105326622449893602287213807398172036167078793836508113906703289082777982329047261043950595846698866657745921303241941092137114610589578095372070492801333510672702903875274481242976239549959416713011352304035454400828273269839185984713753387046261123141888150807977391791542164112651660941542190421521826875269948726949137811532041116558947264427422051720165802980059013351810649242597419209431800217859919675112398761593013722102111770400009527333392488058603340029338001560062499137490453527046911015888566951072191713997880560944600831622764629717506630142858488534424166408502480930040763084067804058159141699110627637297461432808925967318650050677177055560225932061607380175271026690148503840047219820699083125589066504743492882866947760324986578579754368981983929923351586306842125167044023638546554810459514678343659703548601663471730480851656399539163121767503636033692757075931883473406448267193230819888877206541390834482856632559294875468294301916661078711566601173457038077564638656829756676525933142342647653129219191674299108692063287462981874540420690657071337501410191333761871448091009884168713575799839502827701661007105199736396019200884299196366126877496421729856705523494474219726248071699349001537128109401883780592224244965352407287040790193824306774640769914764768536911866278865401987754465454641860723357953576869088141002815665941281566684926406376934389638888119826999056940950249270114899472394655472127253933782479779661316339974295706473812270827063983554786268485765842579165643350151895965218240488118419479931891121062122658433340597270028287280061665077304693100695700877543555353797627444867545474001102535676705213102196735007024965196504738626782325857461928297823716756459972446706970309880928203255876118906399284023913811793540725243079345043253120448859173086347389767756029545464857623137823432739470630929756728187539302943780761328909985816160044986034784196914355640659270075273972999997436351925620006256096378983207530655996778886012134185659458062265340916216732555356609235963519622205041070831527224194056648467721489918140549652933925582590180886261683859307454730384891722529815300850603874742366833028655224182639018768619437315788481916761529971774392166947320026709438083911535018703175488103711232460888567331760104235321345381094441529568471619163410405911318394883318330240449013364181949484872478633951654752629725479206554741799410471173827772465936052525609842209000235638281524614258600266482875657270201699477885524803644831690881420862965977216267974070704177772535613349349901095909933554045332870700657842288638915425883271330075496375273378807651697576439737566817699492428536583264576114340799582177795828204360092222824591623567295998904714580340636311913083831237053798610083171525329685529038090223461606145817918298808658553810127408923043491627322112582779485508742762893158078056180215554487769414074747813160920340712003773101925987507429577643345940382096529545137151215520806444237224121702759749986118177299143406912085810782381217271065300712976660872865047506123712032018378730869839650138239379579697562371446640681242566988199126752140488335902703829242636431466230710172664684660342943021806409432795665044234975957035217082338010793917084560072871546937674682649212182293368578588396891225595550531588624317464794502714439031364165354014491867109292859177339174816711674328443668427868553156401087161270701586163859662762722060942688527816776664709083958957339398590646474425023364758201910862237388848680342504921318329920381570631313991304454508647411716231164488164029215661893529983317222070235121180485939805187138038327484174688181739823388566179454271617526039760102567941067544862116289960483654198484949236981637710110846129945860128834224653748449978242310756837750526694230917167954296970310267749682213927212533677329754862861623254269274963014062122815710127212986977287335218777007229180553663422462895329148907378684085586641614294641786843476102667812720679207904514534262627910962779410674687878727339444247504682694755328081779757017989951181640940169180566720865406394299013002044330802829561390635083282432520938969491760296102890939767472496937614391063558565073877387256477769509857464511922578338309706024783323893346705534088089120373760895510387797223333936763119241100249542459884348371931850641618728463864265137436950951566565550994770960277851886517877808111123308072510192566388410460387967807011817531642965110329641392880243151934150012727341789446690981240091283108558105328387462361132413111867277644107836232116324129587736705559707581348445635683165450666242178609863602622455109781653733775488810415106583683750269749849193416702722154074896234691876151121976729737606876643528780577155932634808409809294638919701188501037750365059667270076941772531078807809871033398266702292495157471282324880511806938950015766133979143367645294436965810122385264020088022459004441006103744401462990798908578353293269053389657624011278340627745196080504602706740659544275628074263743646341224378878553756537963245992073340837257636410631673354726182073866001440006874660609393042498741997795095879305166588764324459833590804008427562847051147616520682457631293870347176270205904086034459032712730051254548410592516466246822663419188347397176345777034314558362837569414595635398641261774599161897056853150447513764829176330888201800627286051236854112045191048072395838641538497153201023929512771902299093803888896453947171864709109394796658476846385931908687841374930354345538062424973392508920123922967230058625203897596090018240733545612111891603433023138761994813906567732526237416573511087520448683891364246413534548082902606294546425427842392040546110294246908940118000557420446333072899247054440382299004514784861435310291453662254860428174505372380826094029651682283521976184197588487465509304099340266201577724979197522941810908067224813148115433603772347442879759192515100694407930156801968458135685030678831871330947586637917483264041539823597441729859868759257693033763585977342094210039132879315675678736761697026557129052565539885725783652740035774252526141346444055721108073631157026481355421364955717249399119291590321039071473709675592932163919480657810375329821881788293281346278889656532244795875800566533356131600503924209401645203896703131790540404869300378593005631233525136603410721024405735051685495834033346260707959315920799467209811078255833696511457454318676759136000206336110201375644260366044813215220784170233273027145945080057362136320435174703195894381488018067535216160137687149801561064394249479910604950126446412159343268862126187828652877423556152932357807689896349454045649627831796076916789407474179935693621706768107092302998246314116765334268023899181695045636354710908264656844348273593383801980761236644026436260490069200748350743831694440680876570328561032006372171853838955662170432302835232986431805761157054736780225340355519422410420210990169555940391855311964355147299813057836973550229203121709488628268345250167976859563754926856253609503725975943218128927488869130034962987498930419903672624734234606877470551936995192464268438921623927974173784821371293781703328761980572824092391093320691421461543523079205291800726662660092691017778532816745064792834704149981979930739377870682232039821749975978123540621652641279946040003113984782268382500232585846344025187603989202151037035385929532259747323155479473875329005765690050706690124041437030140072278583709820093788642058381469530971214404516115386668310758027657608093400715116028956714714599764689783689539710635908593422724307675144256179424151368136420500239545702996744264677496315298677536168842895890049208075464418405840544903705623473191877057571717649990175502732218560623672157670938270607092814991831233254018663382853248861853300132629307469013625262322226760825682114886079736546808623689214850713138114372026638611522408779508756117000128224795518332235926149088137678812857542104569084908879450339020186957146214307486802175486681751189951313747407031869869873788880727434836143036975152445148262141013283804574594853920698298476489598247487712028580718218028203937970648110864961268879961801414603732751695987297697741840762710339690108442699480661491946141940528700667906161974792318814205464541887807985587002623983325552888419883437886101769812292454185367804988655749940961440362651825857944497852715472596274839115728778383444706021198055101028070404501793299280567205486326332812177334535138451823336765015285358524997670941900560051132201828716609470995070111039236428980816427939815266849010491905678563874829291097964565131985731618044002234856992408164447386248951580912051953389954875366905919988510477651398442119918180256008977762811068045388209373482936673629271345341892375043391342049034606369368573112314777709699586855883125251838604921390155371631143169353421457050526614933723552683464062051357465235212387990780894931442538963074203772618248949489063036088774835811372130771744406269290467301469689765970764286279362269467754790247232017065380877216143782893965545907975330121546677076122810994292433534933200850866854405429463702787495638334272884424920500565532677409142188915705947582485786835930794932706542659621654207302349681350040061811465392519070746704609633112543063925338281165547329124705338226068435272441911507199265908255056799440090840484719013867773967047552936017805523293642135761419976162701316926397824519755346858618930426528696677860370849260014896121479702059205143794141850541099911043036809457416715706500833887105607081948039274816087613385475349765249551721491263589466655346067819709994862380522172263229721464549056012292348614503367205695039278307289497819051883830904642988862662061570966165875779712599444394249363237303117746949325261919471681474860809107526339802394721669218140635151183350568008286015201954825809298310445094134563328816184892961673063168953488768720645768983141965436604938406613116704755528997767126984932579745652073066140807416340453407247396401707284201491448048299072528072819222097317441260201935600392557494219814888843596786014256667888759150955695722216778853721674180132448205171065595279179408767756529316498109421563661232229399477055201816059155530018779688272472140485642285770273902444613801460833664187645768535220367669884914325427077075201856694665680582939107170910503068152483023009265707385174969324845631797253743211798473317775701050523204100786203993367389437532837945219157077056400386163905396031570519397191789437231259077349913816255423950954507796388481014548152784287561981083593768892568074387039879022230187348769673923389612589553290707687650076474491184134018954433322549706312846939263679814455700595280393311801707579293252716717377123115211625745034905605303777469028271226562265982083117823329441159421756805627361181008627345748774382843585046441618060757000754125218662648805042045305388698409519586007785933452004579252617177717498079748431644957902713737164164527254605185089840259748701681635439241468219436248133518497730828277933405402706606923208446906872196870995840294394774671249427579658626428201141794670558300885428079644041498566187583442719847409380863400223189402359458266331439366384235140114193587062508033576340369545186397882632215077051819432573034077691042806009227120662102613450838835761907405068080135258962158770743746133789000912076583965793110929778438660954104375820782276473730235329725610135947448536789651694270398766584086660036493204638553819023585750847743873999451708119307250285288719223376157664601869574494940128939720301788847911522530886166125987755968946623472641854766527317049223941015054490953982422278914191064090622807092317812537708092079409913287058469331326685640566061821876450091749189737395276885730165931244822874251656417735518954144195416508816208766332916192794016192920597917040406519750693887188714998500031780928125996241258353772133447075644393498326714478298636689964875428268041659191649238075814730851902092990823416069627435161955763712760597691248043624420814415708206188207924477730948484624776145737790369712663088537538515809924719881350375414978092008006458335179576143272739952864640627149828455732438224413736734000925561930071559117391631683583436483855439788241169984054067073246734176883022083965980267340741836946924243922030621844298982321242259303671591540464499313157441806713118497915042070105106864652348629739181364179845781941530125492336584156792811408460586431662816600399595962928745467466587894374974402508021096028052091466650715521635058680811314872079181704818829299029524572026753418693560300539127892423021741885370699366174558325941230067809233855476803115351887307420511630363856272087542946380925308986228461660013778521753142394327044650656407181479097761723191744379635145355745689685876800858293781124622444995433765901975654688048087918146501304953274165638683471950950670096822869457973974553053928750702816748508414031618682892240754217915965179766275346569317346004267082835876803361102048479658818841159857184366246242269371964465523745355929198379270791796240846954050086608845986628598426015961499087697866720504428273691926452289699651481483390757349834445668502527300244459433596898466469747542148830486948996664610631475346168861769334603480036487840774369680617605299443704006984404396600989687081577364083904657524680660100937091022355155373831785689200146576193167537837966765065844646257754634093025476033333752359834975308274523356525120961710177910771739337354668912781963235689612658653985798778070430228685777693534600244933431251064292357738846659185502655689327449808491406857035943318400130493799866640053518025721695524224779521636406199766162582743980831189559777307323062112865849580448165947021036541768640354997069808299162421595254768472187017793561987638115502883600665359589450530207113371912403774472930640567523458566994831623354561507044703336612723799538526610892910596980347148168434782367616137209219361504399253418123278339797685349385194447211920379881364000136781442781334195154481959468881052891576769438481567147875462381861540838210891019641156304869425239200637808594039584038267352487731939889066420397713799911750832658683440207424800325732759919683423413181434538148186156475223790396119255885196967569697369824732665722525702632429385507077283341860828217914967909658402522211980853365136467114700401913610928169488050606681090628385605624550565307158517555352507888267152443198180844784805909365402134756982321995461734340473542204212263976324712178735006680440543834643892300647932068025109859948576319495273300743568731703791691912682115199078091044845474491785968046264996325578175469256816751762593511642555120462148032206270776287524909967297213160423309170765199865064118992485448009456972972024640257684251729057623709265952055015800376449534757948253543934225614608399501582068493932678619535619667446794518022462043729653655580113492778306955670861339763452889167321123178551126613493967684430811569528926069523543470890427797672979761090122075440687046703480073680782644742545445514249758873221498065962826108868640102048559873434964386977179862969085365145982126405368435695866590126061425146441143626780507154640073253174775776319680159432128704157532205682743602041541465166846359214407885312664345711457899896488679846287287210090094645418950612453546601135683963464090536241749770518505723888565789382257490043661369898003577296185610513524190579100290073589035200714554748408259876716648915447940281937761205092178873269445929893705310947711456205213023602638398017364277978004203877282550747295342746515772720056549508950609163040541662531321847287974047355136846600105351681739355463803243855003792660423122347490620191304413454580001413217430859655412094168164039118314911580133219511858935613850703181208047312262739561834249537801695038248582170189876353485212101396171522696963102286148605366875037196873734859900837313295654808477933047871055085180557607040922449146469634200138935360030619911332998520280772027877436450760200914097615122301512522165357265087775515558089977582603326592976026788036303856775655921244155029095519696003651716819170009440717817606352223391684120812334213874393071524845813539796982782854482968915624860329042875492365070025683151881129931965546403014652657589735694080635888966721367444970989121809862103120702547452472191336447433550380225166226210211352054697338788258045003597995973153303809062301093720258662065734029728082750650328753888347456535329859462984449320831870160701000947709721930305029608319270510933878781166632502868884724590991644183090456989913155811408315751512743588648824478783553645180049522880702157416911099124442736525224006842775868092874804771916041806250179021112993256810081315583182208119507008843333805151372537896325118363838304961700291430365940996076036357178416908277410186359603533310391387922284971140013666474408930686282398647936705047283010011004935323837907851889649799279349197681293964906953779005339105791241822306761505380118263850919146771961666996888876537767054063814431477386961382006910116840369081288834029462748930361379668926094605931405487365346638744859148691107541292852531902702748677153928846848380879799100853666750486598428096991825731025232775393014897800814959496843647980344982610278291556514438590514882803274774612830655960329741460368697206871972066520128014346262557323628809239971297274484412598025924461076279523765527830702676636389405832314446351675515609845292118784898801728964940704105027978635826536466878703370836653048684929578067174715793486717263148070813651459967732758438928923664365707584255881878765063586431037952254488975580404860868497273415602285165061743761976486281363787100757433045253245926261218964388816986186515404035619203817094019142143267162132504585564916766211809064672861393633389295795286558280935827669349282013370572720981463440994832820785712502594165550201069640316013531369308891286238388795397376903308026282516950409363987920200542795553841000638740869930221638815136172511061138505975897455452518415762547192897807422845536635866407750342053992094747461930451476585796596907372402706751792845692847503750255576222889871891548330471572918863980137025456005958552383212440904262325216830228200085711479575951240802376069956403840481362813706013594472946528748536756845312483672949665484147577921011969527482293747623192117091520034617422529349592880619082741225495338203710834415827723567640826694932656979063343544761538388381684863165169352515907358865516410819815145574875922543168999668902135148804553317333472281229883997211068325408086765048046663408875881969111028764083980886662528781014893752537804396845565340365706342640382006974371857579518571208286981619449002132968109540676060541059090153375874346148970271584792319226058003749525068109975224408394465489680757152285363929813260597297603461556845900448254258641608753813863491281813784168695578809469764992479604300725534929582546153844146211554333889107297535124179458741869131523719705232341739204776547285782837744610308572035866762876692794723412884909005724608369470151909934181735450740612742407298266132390086401003396499732210787000033718682441545875779741319529073360152379397532924260284288429884998359688386046238960235684740544265613934426156893670658651771743932657673721481133148586615377707793915033139496295503209403885088684516068196490668844092221390545928051316489664135902457283694657145098618484433731117790736359246914418826726165030058864817666471394518513020780442744793741054496260692472642151158133587821019790275777702311984815847090721270596498117499671742256568367908360506849646215081540331110511883410885403507291547096285048814005932014540252611633177310242313700667863821809286909722235374569076766082214199868261566568872444780440934188683503659658966674835007741849890856167808348214859249848238435607943341219269522809115693669934184571941628327706170693444411435761126646437759022544839358087389146293290392171272676709381003622250692905211250759388403267083421576058492532431463335446362551500976808768144529526780664734110941019699069067424941677231889968970458723675650765482066159147082569685628859584558879419187594247299651440118353373886035063911829955480740052277200123524086576442326075268717689432637850268075199973904085765151687526607476906651292314570238659407803739434972813684818639206633226201407289738408532530277010314740950635241820819690502538843983195505348711692067498748621952457669977783504567382580113051794224570216422047489110327045138405015342952544179414032319517527408044018979180272610254491700826050701674466058187528542237329323910075855741030164955098965806836104974975125243123351141220360603092885734147960375550962277071828869323309944863257045860807141003819560885537956221768231270308971685093169722326411175814499534941148502057131989284008642378690821542173365773990535749187897882051583705219013966832781130009831455509733607435959600623861603069575604651222057278526910038225900544567506156470276797243068291202696911157541389999159293327465104810826437884317573873068503315290527779661214841814158452090167502122949086562687048379156717749217915202877375976302583763240175138228853768780682884075790345220882912292202555749552721952577571641658855272235634068623121272864694982702555303973722298059138255004222174115768661946984791129615324673225776209413901132855165340473595382289328243380158377515145168903365165159223269122134428715865738708168251846811629276771841155595497902579604927988653622701316014807150234363048334278387675671327818338246328922832458223658563768149219010598268930218381049801100780672477775940987379874385755906903712247674093343966458625752660078788620421694345146262992266663074643363831968333388791230264750298865522259754795843680434158110168840478944049847944590851363513499754512242057499553544712541282889394460677768705614083895274591105289189261866596022503689100341265354606693408785004440180531014404537929646621423236976127841645742355933350511722459902165219062279614956121530132709669134505242604279071459637419968172604012372730712801035564455249543059972902719267556579238928098146566413340320901230385797639887167016233465504003042360244520093989024355546212075450608834171491920805167366308197478123535643422635830875656849733830711020492014533308639247587478426341306522478791047154133859027086220353634206080197258846203971476407234776944078815503547488018951471552777685533158385606053007742026275860246808912353641443245485530161417320756874710371008421368226772395081745212354313299850682152019090986232026274405752295302952191167947740766530924695228571822253111489088297855395612689101687639727120841820559807468617657506179388409006091808173140977855008887637146563602044105597996106680593607341230585966342219961814995771525271624173883975840676830074388981017537612412428327652774867621151540386613813089593969347449967359091502575737974320829145131239095138116388086589856113736787677810251410943770752376139926764712491111430574426285848458083765394033611414266728717665883670613258677804006899490130380350318036357365246387224944222065808216773485489876822679495396451229518349636935253128646127046669399053333518115407579330134999490554011404957137079470883505065126294333853768176441064588158946541198231066772584929208792992020322946876723179191628889159576477162279939410922973978646332320181072177540698924011011853892783269386092564746202055580821541520212320012164618761566981185231651919378294012395437642507178076512846801202592534065689030212468986100821152243533256560711620248662863484554698369965621457839745726059931943649103534034663296840850761523171641965778665631021658468678747009409155531952707768557537885200822842807219661582404734850507004661719899138529730078343126904138705876698597852744759345417261356992569718582828402570742034538519153804772532243219887466071855345808674193603443338376158249949656730215104096069430842939575446225382160496658202808890986965017958420427597447116144478306952676865958071763677160682095287078996592368063024910655640138664145284687109380574328352440262836522880803598746942153270958172372223020041029281961063917104346587998088425979319019625786482179886702289459284572822268700677193961263389757581366108560920760381730501034025025921558841296814576369566546290099699769657533808161022497717416615560710478365710375429202990197786577270099507127473677470609478804331779783007927322802274794188038905083022961613491511367740194356533234479691778663015171847310861091722967669007021227893921061061376549828509792173862375430776997692119983839891156018863907573986136472165140715853750161262974458429202441413974847218637288124846227079611140761230956564847817215486202074089909256675211419702577855708011304046473956392576252661999835362434686757870335460476166091502604417847134723164902524311054670042337032563430223574798488948651263360035693278267991519301940389675439176394712702890316677112826170824276861513309981753852880794407080245809056025798239335686253189259318474418973105227250763104681193756422023956372499089314479998367396353333334997472971959363756999952151027955798074162302936971395716744553791881224907371651452620871946243216564002346411396577034943836041912966383928498098190786853225725052471764133868573173846599416346822408035991580466136925958341487130824324540380959861877095784452981922581178085819438135116852456867467406323847228209836431008333608813312300832515780101549434735178691323578873999077244214335237866503759086510451324665933112952496002635296679067753945567239442118003359564036067441615280592091426558034447402145901442993861490246244616292945096445038363790402811462792287376378768266880311903901961176393611464396644926370327052227946178299129716779978242351976969183619992206155423284497677911197951110797132341084883152628494832686117973132700058495982816091119640621982573528882240783587510836623059261862825139772791237169126674454782946097786030435261598778353456645903981360319661719875528469976776708596144490934010326244971339904391011328918000085806075518173384370208125342748246823473071715788752127403948970423110434090731091524480873671273282057673450864702643994432465625073837190816316672095733093569575283496911067574759164515874331649671541174722582831169261994859672854299658075958750830918332617362144159356345056144609992142881269483037495964781507968363438169021727462300589325051018229940820117125297560269642207739693980401600269912695258460139047708306529341178036784194788621346896239888372871207899688664079859633711952301851266658171448968450122095122932234864090506592073434541369446173363830600054998496747692239889510502764271650491842729557146035628120107775223263374392532699804540351178278064576498787334898412946378448716576804264342650092801307699842104773070346923439913292449942872096135334722023073015933092238830156141226545107327244287922950837377477948054419600500966319547192879472045151181259569327589943998821495213998636964738393812185817901003822133353747697344147056965001327285212236365708328013648545334560339812193640558727100948227914028231395260768820731782092749644580603927106165841420359298074446655757253221109593122630418545699048775539430202835196390096223225484035919019566677510880098005919594902539788562002154365408124706638422157381467523384017400540219554371526677346603279181570488195520950012383403533977096008783792442142015466872721666231803274466487230063979678658473554946760111547239740668586424790199564087294704847850961563772977669295493467945184127139146947672881637288148584129211091854673897742018776576610434014155774805497159357928834021334665218988510375796323042999102718639489648869221567862672391980200589539175258167134983450280005529764875084178736426713694447621104141633305548776325674558890441632517657459182057321734632328164502299002127398824160560462478235292210794600066585167170268319517105249199116930913923735656936252249707751754789217483224891235193193666907964949889875070907903345206823286514464023962968141412571265420906890822993210244380058820749967324794183293821032370367675442269304578100977228951850294862153901231865359025109787223146974856068467610498158315077844940559011022060617430265528643295513672616149907807003541221025945120945615951058216288836626577060598166388869117157460938983539399088859969956681092870348480240552083280155141352035282583177203357128859273921610717697090763564326046206559469758693017510806713382520594964834712221917690946669233755571638352585436454642557817345290395092579281338241275119358448360580476271670563951303746650988251980605036118578191671397708768289805394803870001905159198526923953806391244255516790033988710586402849030813585832322962619687221042340515996877980477501255580373496892216295643294634466379209241931675817703754142304561466831496969677145671393255290350711348556305806074522512804512391998765179566718999217279540437096193450346302541666895483483320619510069964953790504164654890475630132142813852981754367509456945756116411094624040582970801627010889298192787360934509149701852703795638348730605865105535056003321338404761493508665574509758649888201638384160760823228566664376177195078417271289002113510212180820970878594991386594402973060021400356040029712665535684572734650257754382846268476935208095518923270805563161144625625543228273723233419285513780517726340589155621450352922506681423075924988266841128947628548428032041486329346140402188756087664770664921347248682373921903435229627288254607166148964280678098373634736345225706367853355080772591504992598524266754804752714212012422530890259754138327391797788295217561663185190586687238889978500484063559147622102940867786910048986879246606725110834241701623318434404815652214618479706281036240907885778526795701490375394325788557140549028687726918518201185220411184387646161214961578197354340309077245392650590794110558927155661450461671758403906015799581525557558784507861737663532972535357337617638118905035114726072254319347753205526229288908322825058807068582878227292566054391154107609340505251774282073167789837136066862756507254654220552826256717279417942569763486377533164447603696894457618205507454808688701032102238937360193338142364214083405868246764204303791337775114862491794191443960973191131418590202908764977345248096436731538978904452523706648524119442672794804606349490630400624967812108080565121450342140270501683222847939160325722969418347638285637365053665758404146744998685351222661808993993708509063426225702789558168116043601001357902431431356175753541758248237766422817654691525478308107098808659424707771790334177019018661291438663011263450109832681373018823566741177207982959101661598337820683250120223812624304407865592128766121684672258110496815943176426767621017119589134564253277255009920605815901370958646977363855127603845313192407004040468408841407639699214915818623312167443799877398048860984886145139352814762687101387968794344531384215429201392961678024199259361515363299958567245060683493126199180605161658414795081032744917125113464105920094680050292656614823034646109374034419192272407462871320200686883854949909204846447779422702586637341328614640616767102412212010897677935680419217218593871147034845900275713960605005058668859638791832461628312444097475232307452076778373756551653259110303500096398090729115601803586282409369803194910274547057148563535477618202279494469697398207797805756198072002359365934436244817410812656371278872351149675152346632691185288714638072620208527694487863234435853262376449301547834726346640871512870214824207969413794189403736121825911404839153564192220028331952956962151028764149063217348438730150728527338148282301144871870046654497576419693262747463788612284352838018093037749793683781787487950558494108066808981735291287037598317318036850777416852064623565187362854467124050802061347737530427772640385805886098599489320220853814800902546237992001534228064263155152670390843831093792754803137351227922722314759219784042274677259568282814037509633583429789758737676498965543731259448188123496065555244235801262777887538684634441858246449207293053407688773091335512793186144081261911128122589439427872420974971438706572990512743350203212654881258834527248261728953905609094015933293106482257678722564131579423525876448513936917511361349220556205505402469898060092372154561557166429586127400188960391383424292266736333280408546240704579979131224430599379190188752889991005144088174982920825824750530887991821761997432110936432765302719690878541045003634664178737215931538460865453450729211574224470529846498966847418821182302220716483410324642722486222737917089064047940333821447239739349850250077429738885966259687033263081816670326534260396846828101371775291304333263897933669986407621390953039100646025128933931743245363261866065803255928391239301159453926471946037000167168566308663862140654085349406826838358391205548049984923748545190381448911521278667949772369232303677709516009010035476833276758179654760911370919874164953775046227036502584870479575300742905451175615744859610343824007969307722191915826417440353863658455209827505590827419240276688972989875360187142582680982764496360925518148355015661266535660385529506616715215109670509131811583247327907102594952197184965944170036417323342395750318535221002820848346165901761766262302547514324980139490000558902792985472311335297114440702543631552398250188779552812276235141735053339903745857193545899146700820897026132514029428986211318695297725150446644629050196521533090173853526696273273921572516763521990953947564987055252793274502867467559937830625330531732004885977904097086522853407653039961910935992615022176560162246240011111682561128096826773773851555430954906022118775898935273291246464549141295421569309775669742883548968440023865424833012208309622558580169478235335806724400569509301226217239447908824178318725002368989041127533333323940618492638710444258602569305151260212116455569793157287891850730556239078203980143699806684588381844426525833358833869460521723131248672744452435802564244532194056365856491144790475092170870553752792588511575632667917883152060663051067498778664048602427506266213345665363036307589768059480327045703280880444715015914243967088674089923532210972503913537061736944932357185656958121449881133969748060083775500118696820945211277120524862507406903314606676810729961457199600581507990568605185681790732288726780632248006307798040418960346852818929259651132082991487932325642068309209937012912964722871441259863397955129478224704897322691249720972960948973478467979828087350377361919321567577912399466010703073357853846229611258551580874122781512114745587573311227823219452537461361908739870955880128825049747596094323700435784106750929084779643122479062564583075026131822232238860969124925545209058582625840059254076781665936570971764110095023728772490203816820228715623946539700866880567007808138282913501316817400378983646076965885808088285178526157808776313962977380761314824238297730361107415975346848932514053981619440768217821273609787686031580030813486338080698829512393451864431124676197424047475585296975243981187084339513739589513440600662333583348826065928124083270774938396703508871900214482499875408545280959587063802276480192953957762909508091982512583768067208387742844949693218693401782992662304025177451633782308177018982018938660748189634975062543746665262546724878725582071332785829195517297250969853077608952255524183716614026189730087559774329101854697874094142340954363116343853853086326124898956629864662666703824757578513459000093011835797506990402637616605729571005850643332307874075206766823566867229962335523807908791580965287087840177994711473939782657136659135315557625725437096717233086714132157213679713052983391690618779471442252482477089542516375783311469148530150479079294519304496624338632519179076809619807976163446718368251383598694208171836421408790650325527004378694347724011950489894071899654345115993133991772933524734469187516114444480403532956278925071748065537606987387992216653355315977959870196411841042151989605843815538904996103649127806470688196667085851083105494291766536846374940012360091058062144956189723739352242571925903087173402146600273193712163162558814032633910789554824537662418222772772066629136788118049231258915612593137576087208424614886686657494365030404554461163584350340909637404873890477313937061444972511665216649860940428951864649602934898463877638478261666191604154170783802401660125389903761091516796352237430317074852069390500186864614794634952945238224496964541349243312796533474649333743703123184563071271903023518908195312082872524148241619092038444850197971394210721385328097391010222046000005852185025726483038254077053871422928536076275875230684932660255506660768418849105029156410606079487166156643253631169034918116640198458106589976891530503854199719509458550302096167993229252716460483752661981599466761109093752732461379640751356964123481875060740076369224093742330277924951925513787574522006148430684516605733713476387818167796973631068929267472021814368586411943918860109444833607426126655861005608210315935583818384258807773037405479515676255880870860747192480237036433578700870700720457356391362693267579974021876974550468577434436718858132022339881862420219199210005500188659717590517317796566406352788270452970107945023675042677048368012462214368136696437165580778205228099111956968346111973027884466888049110505483877373604207252077250721069747769294722792642452867088339314516347446827635094047754938490146976969290642871212845441696605640540156931996748130162308790502719408220623299093605276194731047630242654388680770469339709686703901470946932567339114294955163918711558332207861264358055236634667197576027068959150277598954850673380148493917718860587656246152377510432021842224990492297262539384626236870730650108008316704258069117185409252699115906975709297748214715820703879381367201281561516136733626491827995989306505092132313291757650824194972180966199076833710091339537822824303821300041376656117157667166784000853033820130324410581605869648350949687222905655417720819836620493599024440966404186912438515956411643763534804927864798048126750207811297731715528388052994248047828679971683253905202277065270702856807492032203760809190195140002335084148181833687470599826403611336751854483652891817343983691989144800540577633535405889144682782159861384584737773458224354726595944145900221481271373336374188874122677011371791062318128626082013658116177736478084493827967013903567665056774424772651972421499002047806730266333837980870540048205208710572014567432650667727646702761857198938482482954140091528670222490975404180768733904540141231272320459083090975945666410259691593890687028224092186185208548398429930257551160016877319464466320974758293534695836086818017109419509559422561715744103731897956711021153810370440007101508053198380104544811020131844630540544109150169029851960566028507844031971272199582440322982070051883616426508215218005828704692664132887177257614169073618125313083857003111469452435091358689348229951055877322337119362490802413322888199475616805878893434377048616920828859301071077577129910032609894378357343480227416464987665488220300842201884081991006819336837399309011776474430364397175606113460213344554332878147402543653860615081770939997010035796297328393543464993832455856742088681198092533029232342631575591193356017056288200409652831105505466887135794619552544791270682168608913035124899053079702815710024696512991408464376611000936330664822826228885450588390667652859035027098270418224887014556592320518270245857359834454856227406730406441696555293534585580239043825676536420765391826113787856437652370724460005175858460559477171713908957974883588493233884087948661259245013076870937670936017440956168526650485554302307468993286123560964907362603988708929970469940973206323770357657954969157754592363220038578867783410939902051906939501036532693097894306178390517257996755921530801956512824361309451632519980508377730080714611132783647735759345789694840066687178919472660913822616273928182210716952571474178489005814960159270309396710076858486738510545307727609879720480550689764576640793122809978430839708937330191883074507330587668335353279173519480458859614178754049804650922696796600239846469082092698890930950370502081101651512712717919965414401064279783300071874193350120422127176570779165435690951080110358356978415254449541994920601107440541150736794615381422141399329688467960497082079618351996583023318539567155744512517743121426455034154432702564182250015292205338248434928474349565495207251475276767104346547615863034242317053951520141519925268024808171638967584920303325115483551871987149040333439226697850942145308685350695590993478205311994151652255390352481525466520283313823476362641543384345698659939946841286986782382031774200011570082720240573775458912683155568941153507225547950943919091146139906755406102995729212071267769665588158900041830265311099669513274716049276189929052161858857396404065605468942567205912887788270970178042268598581531020064646795968322779642174792883250407380426346956678854579692256056481753971916449770856194210747091167928234462876381032897063653244145672275320403502056479942873238786431703155132830048852787484694466402355144019354780392801667795984476661875911126235730865434778520234211887873220850200879433592109261375164719281306138232858957476194978770274784796677711237164471558447588071073382834387865517740410711254737439892439998453495623649926376947001498606054081806233229187056658690388014786964104745487496319620490554284262841620249830076192613421371896479972723579705388088950171650250394807049417947972159374943627822727881932827592502947898286514212223801375388344890315151541252191719176051645344298262031306101388431904568063329052645020629842488979200583061745359092983527816895195868350722944949962553181420501462766893991821341886606008452532034632683078494854568441639281180857198250426684577075122417526878206077638341110440833192847739480581232692456539350511606513944982206842798238814050150249870094189631815489570683003875195267648542322766293532380683641777145851879374451712813902571781074111064367172726794014733460711644084980861267683104921188130863178905487806945631930282228567482200054589091987627110035280839861766017707308970716778324407732952815328470171099821731065663723657229135985111952584545610693679997697967604083874160600360207949066908575845645164872422153974150834727069255287524608974199075387857053842656141320212154076334931213145253234612099096783366656488210198324589958911533145768231595255273563872011530474773722165826462577529776193702303341440816112720351373985953500110751206133775829574129837797502773695152627164048153264058765123258439080826665230496419048998553086090199281040131623285545952925260558296755018661170205303963671176807746309409890950282132691934579414991244807500512868637635465319988806759257208701243415806415449054467318166977824909819180485134954034935801172525125210693197224160931538853390826385987332149632890029557956229448175893454529489797394408998420420126491708570295859992561678133950303894920829640795598893921061355899198654155774838336190601612348016452335617939162190841062152664897445932899951511001996901997174588087292597176785151480503279230277568752009492109382407432617844346425893980369752716934584192264608300055398895105824495454516079229451339060152261471200968323122151085766112202797458943892895866128456762448457680856633578458259507412231012350261104459380321278494398759324615895116584628867035958788211627463009003313141531336495603639920154371842712314669265975319734093894776920350768918133592869480447290766393832446532107259758998687406983913725122653267954814563630221780256438572064699763080641953376484497082780409725446120610000551500966769361403652110045505049339440972552630685605794855926760017768959667992354088653368669569881988426587199352672526132918403919610386844976358423558483622848203348362751397815627733542800711659388968076738581356638384319714538204155406514656651144315485869568932049156762948273533407104029637881638690484856544048940917860002904193394078528997451533053745780073951359594478589285421603896341654531771374873181908206432689450518307542504511504186397709716401408863944127844047552607853431979276048562960575115143244489108555315154484666284184233011045086334651981165488725087104791753693583056328803488069003713646837385938018225005222679592672583909473657842028004157771659697714789154882981072272577830703178919429928939031492798044301626817011823703018660591532387382744105287927098829877856268159619004783846307202716600336197287372493142924756677075414893910359144535480483740268601383549733219428282713420582473886447073102645463877130095602231690924051356229046847227304778469981620539842652427132662857052561550728893158783357658569804934779794334801896194773553247879922127779437414335701610068400696516510535735980979250771664240623929721075314125526247207771851999219442509755580576937230696980653461818991361278643970898954927617763911261652348721687118362510674398728578083756343223499143731858158804886705282493990311250644238312824899169044499276960891534789514209210447822813875531668093010543704849712612172097258517713482022414346570128916162340974164097455132594948842601420224768482687419108967307124124209931278449859885452235431036175654742674600240097282089171679147694095229315996217896198811324397072961952553616430246314249127974710658466841949060725653297878899386408395703948434209460689315154104533091242777585033107940808435543444084502882762703377604188913431578764086324857538420764905420557188465029678989223669836265877294909686916102736435595472076761886086260470142480974406141519167668859709684946345407508969468586920330309396929527995128041960821049459248910301241850590728777541796395533386112204123492335621500553316458131335664243192945847032837546643960584850662207466536904692567475463519367143755723924145458957038430078737883646964667405874492151024155513747567320437989153485262120519705381475044822518411936061864720901126502721734504655253966269569632004882179535771823319334186026756515309859183933978324526408605454650638504980532017627657219144001037060300877739112544419132074010044574426899079142458154105128828890402851811991247702566492795000540005992128615678495341625299290475220798164365582294003203460527028407895148584470858769857788787020846539125257881670968796756546603413190675640461101228650443076904982045872358169492285682026188728550377064654052071433701147502193607972260231599348863488099725366739415717215689673758374837564606389088874803498090914122904096360238596506426549225934115514380786592056930197560049708262235351697142039374367517501494449072909955912436781497584945876964123727009858151881547226415998183231189797650117406090546835627822092258052003884455394952437783989123974581483615499601975876330365960149980841253459486298220205587831291214053552631797345383277545183815030566549308823825721297771435117234264807553987040881401842646649278280956951850393458982782239006536440273340047875321722205115901166704496804392792280322893315153380809308968599436267301825460098705149714476157149039669261041127790521005794376268454154095172814172226672500019810495917960696888507997706806784118628163689559510828697940478763786134781939631351752778472504058759472072678793417262128922453444009045917427051191178601653324995508071779197688624003606561736941598790143979692067468683808966449016499644413438233382406902584308062586031808653351796954402837656390009302846637822830027561829056544254449113078040626822647122768601815995806316369220219395000284678626692494402897535151761293367805367419728248422901303073881231551658138083957017476174469161392446370343143972334209342454404483858986012960481542517217961068550141788466088503211731667540487806239919551220176377843368018699040979432237357847144301614624260015230790448407128717077440524025954852749057778571919198525986951498805519195098134997235471686437080665929098244142239978602951660629277906624919744874926323256402079287778962633511163868165690259664099215770917795797044724861826630920314716046353929249666980948515633777825598109296406286072639493148905828817928047954880934062715940080056327187273353034260591752103531112071362546322531231966903589767027810416995593486523353391377075168181202964137538238029776824111116371968343344445143991941267946846101542726482768352045915704272814917695177930960168588519474994719240684440362169044012229008265074092301880672976477625137978624830174931718302419286012863040161326680206970160228915100334129345639778458177678129885443350845421264386126334342920218690515095684985135836023468601605605620685048366690313429321336586380940857950014302020719110499601232009370485510153490523391019133660618301975023032937497528774534252356120296693266044450068623393968666007052764668300293804345396075367123682216699793075799862800893564364070207896511310734602834422758222799473308828325503632707135707596721487199795110610391364438658930482851623863772400597731306771251325132506996258514456566575168594953950887104860388019426479377197355868737888472451460848292603062274847127637241598234007424359001535118623308472742389471190709330135152628107945315257282694442968362786120747288214927359928419288955426263894212749853131919657265600282670467365294930671868872881499734341121542619631830577445881993011697006933920371697117138141228141267157480119162909489209271354618408076290325432462323894535378477944601680400165811574799953986504850262055226988352402625033437500750648616260561864162425085151297410728772032793759981693333969201164549629126292517808803776592870961836657857560359090058586949743382514645927262762191409764849511378736652264904037546423757256703719949894514000600900894999408680217973091203608178442784685117464744636500804023905741574882295100291635299280602176663461559330824191642515393421644890763982625099525177190430635978900329312065372524026695111208988899691803967429563683209354083894548576956682595459989512530093859967819746429126185092906259917266243561798052266035708778507980253344763595668732155608435877740213780221211412312459082015090739308470512850302477211014223900063946309429272549714631066876608775226877350335021133276313181497537896505143006372877210274318874047091975468820748237855419832397783018937520309381123269867438364614022123538646063165228747571107153387326773588823240817718318993985633735357234006581312956336804273862353859544115954563514815813678681389194855299759131787536513650060883711408306296532497444377444060304864824654436752187059190923086205914362949551198627711821206409005283880549328378937650929837864639831465599541279068249282676967887317032182748407143303775454694132564311635863648086333839678898654699053208013480255056228973901739136846879646556489399540522244382942538839226958562608729410915142836619486740766790830499512425577412046522543339564746597946943039262579426963196378508691758411570514731249258747174860009825848828307525222716444309063210715757543880550215322896614261826653360691875681221087349845990814528003379620659422107832010966470330669780580774768433921903625442546672597620711847358785599738140600431993033191406043798661475943076646262221869642849153755733727408776021611069224874628474185961389026498853610394939713424452042145153504958682156762956701690213349982868960036573269494640497597293280286766167771899814229982555342143476918573815999203711454931421949801671578521189854805954864610416017098157764679237954855497522846342439786952360641650928465861626928216647046141886925098803129641017883199850039056922427820117368841738449358592144978870790569097121028069398025917004414242819284741624551775117827875667890933628936005561512201246074871398090094942989408340314074000396966922681943900979545404901872049069583330695005435426134442647031343049528526500524609975527584285110201763213298120964113014750814091353553159027166211594295334416254701788980213629690138061934851146392598149816288306583865968225316913013781120682045235579370926111711557531769181841331845846548658171198648567648801687414815413475722008631748398574406815536529900951973566646570704510530296790879240515828871293150077862879835748566328703003111438386177038304960307744632252456907488950748591266685135860367995840465517545190975253254452430872591202610035602862096006062368229426814312930738104911133175686964351106846168362180331076929120056509936723543782367267159114908606376704305724162952698738627876335100396439064309256894078898682595079193512866912088715190845329509581835797452525521107795158890358030713179021324786225732543234276336300295758342713174929056209181220768365821350384630242052608488756033677762302238167759467820916747022744953880456953299484808707718939758609838530533679302430285270575127519700006420499127584974388868023357486672392105005230745831903090489938910250754325556795570164571680118332845352258497300944152452231043115154042480822615956353664511403845287744665405241214702442492049145995663596029725574796142881647356845582081181911053645091038875196956503056713989142833339630442065734338499450084246279627121923835662110096022169346034763822870668884536724658258133773311132155966851338866951644011891671460756212596163086342030313217843110002841195268814470876017196628620482295903342050918383086365664723881880802016960971042121270509211080499007996737584082718329562353121398093745251087656601005409522625141809172328890830445417266713107715097413314287060178348422688047384127745011317897837453723317530680253719341223081234849826083895900505079194231396662160445311692859308695604438800159423516674639870525851185039428147921900278402458262406093806939658635607811938277210868641965202782136730328796644908988627728592488140923390476905599716917580569556308459070459423607843552097408172357840289699646795280246758700292542941631390994830087148291580635351609746710475899221046782877191905994047972555410418591289914754407805053674851424177299900760705321668194171397600707521073683082422070417675591509121533599728223942434064853780028590320375391969751476839682339494372859640030212084802975983310673061247255436186863322548462914372532964954360604475694814054166322644089507065694936551182792205751448278318759229967376576673965074337256229145621110128895054185550656599483730626482068727467460522947686897813567585681459340213146773618225398643517522577027405747669320021025099775065651607119773251774205372505396139190569275890894211369508628212569297911817514969967483416204578320875781105359063206564353280649887272152520023383253279653334247906028520952865615991338076874859162222595510676791829414233737760392383758282706501445289891654179341193369906293194641883499419922625860697970327012303481297383069841470579972541206443117187843576894733363224582736446172116813212277652442257323708092050716711579182820441625537350828702286686377165526357293723380097075017107799763227113237941972711160808220772990475190000284155540276796263332860530299088185144180258849598043348670695083532120142931036587795065669714336412651595910745420902613295081364973430571577223987912853237379740780524363270622497711649273121057128282916701814542816866483471579563903551622964437283116897365022714800891357102077719680187159218336426677489126386633333991669926597187946264966753220262560659229809801228120602449002974561428754853562998595408493041670307535388575215020100367944886890679849439037851683823155223901703939825219590235970596668004798688638833425318074276967729964557279070921603512358260141047355657884034945373075491803118991630861234208132580313306631542852940219107822576229257277237162129803546442735532745464643000947719580147878936506757479029971407268677615358102798056564253925863441099018268769429877579660421653164890912943154049160921184576794320247940200336927273968383923231642255119167236026462073901878842170469725019463689918405589484388165269308378028547874703028655191035233513197208347289210353537879225317052468895466288789505004936665416098531507049942559596188366471655803759649066288734620591802159938040279946012540232165402936320031136833186502285722737248390409610708356587856815999416511334496126411842997486057845181598285443220129026471266867228727976370294059943511390022226815718829170045668258317959829306472664335820793669210622221444760041415599536629318296419697980150918453089109754102677176228212845983481370480970261060397901108425721527108447265136194911830546635493935217675351592267136830537620915614569893605543867663185345177144469868283029367988593204992479607638581728229718704579421895112561809272096931546498767311892410576122395658469469270236363003865265737671976585394484029887364366341693695326355532358311015594482234218844680585883432955322844614857022499621090775353085784057262108972032152162336464138612121465185065826746846924903681161941031246266186096363190798387173428002869466665619518441272463931708692535053293653516198891635006320010242326121181828112963659482088579901044028885235866660912703439633472037382977225150403395414081360100760874014454615031204401145283959771483408714976077530209287108996109282979998821943952872810349400663139616719145992782938587376192888415261313427577926186964371972727273456001220655791812483765788166680238793777653912446099587613945193285787709967117271430890465412967907093704777903135854035694574461319129440579303795961054172675491716737347855596019943186081458129891202676471615414914534042097605161473944594119891900427453215841393905949905836735421685167882125786978903864222708321380029673651502228160094539124755534549579667133474358149219797313356752426563618954222924906844483456871391417800369024497126718489280941780813926567948031865252527396680582520139548564658937964905431730370219171719498659269905099589199832183890698369077753957280043605853103148149927879651375077672157399346403305381251288725619776633914259017435703899424777171651196315891709080365260551289464242711973064476433694251037911161732264434981442479183295857649551678070680829484606615418399930899973557606360831085394399321478532471135744099454858573742159245308016361571010018137314132127188350952965150210063029551795444560648410608445731178279970998446404390836285680743363416528976689711940226440203379791948643461049590597893476053562933947578417386366339074758263808231427867069796795354441517366856428892487387241888544141545814347750658249429707630691457164910846837341378473092634091352385115596745623824573237876710279505355062687926653501705970738633043834971444765873269702544409479218510705843497406605594746229704456234933452434146514798203580630211008080811935396971790272593455376517100307448963528919410420516428268694623133441544307505650465021688709732616739013501031750014623073039399658510641831523578423559173257959610893781612154225427130654867337339596236680443818095991400993356695248718659042743609153048507879532747588684784493824605074764665204413468243587654731929478938467573647929220861258530984597572581413571849565218694547351154840063167723792840687646664951935646328517423147903703688832031858884426528334236526194344110867260162468223094940825514639393061315795514401947695732419503602105040016210644878269869384370968031107405892676821620148800901269395043924399809520008056917657565282421053224600963451258338191706537979380056052025812379122817803958648985984790912091517799281377776533148019886551451264181806903805359536706018459307368680460761487818092380154678969213522650479858150819078989834020389616996293855592943342228971746651419263866451741092925673728140576810306996262847382633240369996775332214199077977723039094956324396100637382429022833094394190292914754881965040391544469064479196616393519327354010102870065954857419818407139204393370482318854120445196606479246059019014917772137156692748133673508722903598467068451342412979779216316210042970964605423524645525664141334969664070195048976732997512762256628227821714927876048593532649096576962256695991074124276255608242991998602477546009041800484595102066380797990966531770306987722034718169657371736083840993905969299121945117543151545884704082819086395272237271249403717840430353252211062588020428092581083751766783864815538244669102476521673972050682620437053794594478016829702661150237256454045007698059702056740656359127268626894096800673494503468064849934559237322968242592200981330966005726298884769506839895928545934939434707653259432587912908945648882257419075447338518212366487995261120230591697616536585069763749553241755713541144101533855027600340122826608070608135074366924381717065810220779241742835766035913749009877221852565012244549531162904102066942498468993067171850389707311695786074181247579681698878289020924431106527530572809425275256826575356025605716573772788033037025206626029109689902522229555618891223737491064149193818746043153004750664094969868620679017138728789723826459194690047790478234954064190948360425527473802341093965528195169689170654065526585199323459095669785402118279300508067830561154800388101822702636169127309925101439075410420548994184571069788907006100876809399214461288594102758322091470012616619459152699930964827305557300514383350178952105273064851483451229850177611994842658775881536664335455166787192580945110351663951826726487673707552966184449579304471074314418246047221097954608184992152643575941689952224411855932459415611524547165875770880092855040942967741120993738380549079226394919907543446525565485797622781125479390542483620179972938685392995446150282302751226447204481179487337738642371979422244918649326802690391191884531301874532493961050264382684837566805958948575563439744461248799899402709174822931812430662518756712578555065752044295249955411767544291495159502874015415119047650153996645326436438285568347745628048354680435588931469206407043115261889691278354227454981454150027957609111805241472897055336950960380985716897736149615244692232649412144114984573467010461200150088433375813090959208465053916885745328224721584773827151647188307689531661709702152391353726581468652037101472993225995424506307810718804382683326869121613254571220215102274522455870611901056180109698237207540610977170080094210731389721522390971837714348415886835477571499720368194040207439478119113175753485851153459449179298561574012793757414998510646371724416678949761656409897548345860793489051813041033009918973063563173342347506278030102444721644722461275057376319746492216293377569445147866379913999024701641639380301671771637042119141179830357988577495453932733780807071765989924842389261045841168733603085720187880089626170272884945057009225541761143543965529852099819040494926652796252858527128514814780410319262797473822130024250709926293007222919713705979005462418945486251148131627996572098295659406022454761522122364148955679423686186689179179507671554229060678611758808092000925048489941491699366752314139432218832831312352702160132935698264058064604519285966083891598022790079436735312420195973189930252395049675387632009115593304696770201907626273663444944468864315987482211454585756689856303678563893052930661239848321781600947760767610182967626945207077717930377710305652776678757002961589971400526386629979358303341912438424597000042084881289894536896389180199289531894908339468000955803467311333902577140300129017859946370241666029483577007992432992836621988202593159141569613515735410173778789154046390754875190611191876667902486035756904423209731019884928643928075115391854645230371850332362561071229743134691694815281043487036818572405979433401498359002299017210782000297268724817322367603640339443634468237688257608122033989857713197254856443326342880533015315091759222912933470833918250828304341305807491426768960218036718736606829506028770935644767386309322630666781819131970314172239499400705814138260983184927983351542596502674283463836407668305478739487693566593036729729417517871860737282160584784544711095101605693263987509633877908039333445020486211777284218309812493246981821811147638222446112224545397043024528781244071470507996773459891164493053621654839987126418533494459685849297810806209168814869474059000134859262191924445328202228620367676718250324308110774999678306730692293523822210306827066196279932176252218237189263406992531752992091336252207852072960682595628839020945786376561117921179842890856064963129936885225821494774924572222522557618715223234985622256190806526745553594751050969584883691425214422923531780703000539066007171277691795353582122667838551264092832930094407851265935201580414507151483405307677170578666441131688298953458591627751735580918640325120947205992058948406156990561260884989226520888610976850284596578970470330938900381369503125796202637620797083186398107885218247175564200716795790660447761437302288285812424714065591272097707533761792831138550280686873728409230611907709893289964304128680954398886580147893671231400905678795240176319555944890018280939296709406935682027680055192970807436309581278183895055436991635754192187124289798385208467603940212659259365469134157462675194393620035615823595487195948982973592450686917089834013896704773819663548084478138303338026293028906612426816938497046745013105598758221184915797322420426623473880294961998040988130028933422952644413467836450184748602443954208156644956760503797603918505017862118317892189294021911697198027381133935318936007733155450237255745529348953580582135583588458449537598597589079058009633548497963839331415794359128017667208357532428200302444203568566850354079339013609445204970608288242570463753566771510081752536239169582109424364129012093636009507896279903844395777809897750158756230533127606587109085597064140255293868305627818443815776557936441648166797865852502007915806270942404815146550715893569087054179487592620099085626311230477829809495679452095060414517207596344771621463988189700752568994264683547186778530124548219671755432296589295041997750746968647428732787561033973075961377311920184605936040534300339847076361457497013870503326241120189349801124340128497153829398122435130994678907037922611510258329221049442744793418960044138078565384433297548831031112543386799785664794830171113995321775797234454809571286386767794258731340262949956291066624759701823165008398421153089213440388462934394145723850275638456684828017564138733938102102032151659208879696855174282667487799959917758131933744664258062307863581050880151810319440772671497360077649966933000119744959108757035393549919524999496817966959828760623551623416558020101962451524852001194435193149105456204451470463543879167386329911749566073654658112292275249557020421387326342082879798210004590462326408998226822949928465131063489853565722241898980747391487560450555417200654555927325880328168009611721896070076594976709008045046187509272752736884758895140546359531352956610065623678197241835747922719917009848743502442425380566630851912860880556889664289847210735949243135592811647181116341263944850650643358766827108664681173825629553867272136957875366049243150451724415568139701941681160619290924367189711265539383520570052963005762330947011808717823477510427775485773453528131557384909276155986763447734527530644199685527951184713710869776261921702702224101828005599407158605069900076992975285477215965564837047787953121130429875613081954333803083143834933935733814267116072760460342225221856549013605173012949640604887250598849574055129485235042262756262192979709403980168729969168019723779621445312736755493036932395023684110972909510841502880969090493183557221888616171649893665382631633530630994015992543584444078754537784356427415403535825240509814192280561848140972531167588115816646178547415853170215517677213858325513603640548995921971524143486359440527513818642967511242771479574648170436749124585164280791866670242455593283501575597602426388127758663030062902112234085303906928127600993126113183347401424742518499962022084759646127228470013437407402363652071126767242318167748755183082657814136283973414751310736520599483260113901522270480399292334230697170286995571242858760920583942990051652231350825131632580712333383239947601102314379886648633478909590225483197409883987585117956129813218193696664811415397013661608042046885584582217142758963840074495192251422883203368719137151447392236607922569975295578716126582894078455096258879897735781833353926291204547528712583369479337989413526124210692089913796015461105529477092833507128326610918497174564127450997537150888315805244487236209751547435356593356812612789461934250352992898361983791639684708690307304471994484398938969865619273464906989988801319846958717493948867024162860389279209859601829072888534713486822171185401905637317560089818285639312595035004086095387831001608959088797035330950128971810063962094430716662048132079608829341806227203040753623563044824722643243389484194182455499412662758786773641618409754492134535153510636112476370025099751466156877647093551382451529280216363619256870967331409517398760441696399628562303463792725160218000103781895575526281407826817271996198439623903128762919065260241932510940239529134418400784281617694804803009573701833623071539217084299703000245402008032413037923824116392115741084326801516215660108333309196947774310542714263625138110222761519571531015174133065607463522418960679361937983530799277835300941403891263318998398333031872948895547976525093387375290058904383245834287626809491985515431207539499331407025687463082066682531555481569612138913280042501604082434215459145846037509735172296769483619517630468058924978908929136635634545096614464791688249908725512803202812583370540964577652250661845868588853453274673058407509104381602692942808295326284466930541116082182668485633448645013889755148714994324535173381205252138308873582101161538168862559522129792027933030229456283559400904077455068554691695232188541777963165950971477902022507409109716455990726098128301426214270653190367656851247756108358900692629383170361133865928607115055102925274671255354968080401154530669268546012101393886041016819902269475960399929815311077487185136249792741545573652901254947378007066020922625609300776370295879177203975255084057060496099946627215464524821988382709923951911463776460294050365860865251741397884972503585742961471283109109814075031273867785353065879230648941531649725648512776566205643467982771010898522638135711303786624169639600208141896907570088280123683155667453096163612502341117103262977520496580728622678112508211889969311315846066897290028416060518775774236482229307993947655078681189857188292163471510836193023106250513060397672537436557097017056410973494964453843035494795613294719828273016485516334440231968845518185429354112573940883577154510384695831226627069276816919899478981784993395338114095155671497697605705019629964220309561902834500750967542906013965193944118213771449028405266449663133241953461680069369182673207339332579492738545023917563276364178763618500253769390030766927687183464554878098500303873906324291214794965543235709318497632809508149759082025935902993056786759499568765788390643279141761556470417986013453353535238448238280409146413725016073795478996622769537142237016083040890333419700277705284319816796010974238514089996471294140747299824759479861898912967434843836680149813389610817965570412797890150155014391218615980440987799838050079206990984823730877779841512748344563050185241450967782202725277723446467960543599405058206700857649596141994278297978263420450912179784380224323946211638458579994372051573015884851332580919240876969324613271981566253761021177877664536079420407806958963910486002863119874705826927797383937589860893121389162615659820015830714897771138858125438084714708217883296166991767205254712239870500531309461006274459383652540817525923399877927889280890168490080694530879634163223289804486706035956859710544613310481055698119385934850332679707196616161751920131277083598773079329796014632408402753748508962516501682721575775642366711773786261647445180366961322378531283456940708390933361903181117684458114457460909954279761295969692503896393617152637244746634449173230984313712292609923984530389326282221046695148609711746915926966712112569768458639243212441817958201827062826846225178011871813975325410031274252921778204490968496046191345359418767261691729753844286036965950647771921548226408181732433189926770186704813866414737760286838668642561701726401585464750520666137916963384369274407569307774471783430341197396894292851629172474188903862498574422708121467402993843198693836268707515314953858680182703398853358323785583878443065934515891198756214975478205444682837775768485712116552856127396358809680182974014156115816187557854842641091623964650033189042747481031587169766590459880853488455256515390641987928932427658350784609978152201310745759310308679139351408044907352070641179002937611326684803631723642245826554752001832820942741421422504567858338433333959205586433362949659011144233468780222477723890032069640923032885266016816755589307024341067635315425254845456076861054973639420601516936662458335242023133082651424869056657898165905416148261459570287284300701307178930609402889229662252913458040338879584577336962679332496040310743863901338579802599108360315160105463778605859741177061175617376499323177005768266491506196334887903627709599797563467469533865095148858921116169322334700016012590034093821989215127480353576863777776033466201192810939753060581684111350341860050579469300978458411300798802588074095094284020593246281651582140630490825007968173223210872790411709874741160554184577660413709770364634533167793098620176526161547951218024949279822885453753699519594424882240205982925197547262139012904273343784903056201017651555065261871415556445551912970045775842781856537526605099141174296565401568923941533829225061862187697246401251611268082938466189582702207010209598325155365239487283390377380267676958855459017384329255250247175606915850642590469855793987816930727388795036536043940569076190375872799722651355412745901044303566867494357708569043371532128716721136308349553100210678594762368607277847875792730510380411538252751403089130038646748227371718243281599406106161410653045779072239378668213566772316406794216854214275934810299777725732295047315880329331772109702564776860140784179635177700923510639337753074776777237911223434815423580108288232700855483078132125338596171041899474549186194224316093333667276842785666574242283118494157173464448048653916001349011460668863901862167794260715987376196336530791336288439737743296212987941926739608037284739208314100953606740946242471849552664792895813582219981401496721216705882454008880442906725577764301118232900035057471895197894202010941521749221873442556119698352767063804622622874683712447756984132215439316523577990923160435903045838266636296340442964755097629615217946121224493282172528505246626813764639264653695110214947458533614357860529264781262316681444920124548058070278368111684461637117012168226505431796407594157498675759769378126793055030136355407025924339051780341060820796765656592423591738908905949320395986878179348606638521457975907813757788704220769031329271132646951707753880970528452787906707911210992047305107319021730652682159327532303223889484682993014312886578757435926011549038882490286494639689650548943895640355840235798504247774984133385308024271638734721747358621293625928120205150863568202910418973105262429063391858668455331661121777128869494864199732882815855605607892310126791639109468634903653622358579073312333434023436184143983659439302321892611126811996627643613387590186160947016100394947836345629110870492207522064759481802676356417409657989089154869168696111313724484782250020624493670782521791598979682875975030540981711442909217172101514430219190137333685946132990440234976166393711618381098393838028274389062477961680029927801959732494976784748162562409722493356363124167737808141512575554402199988532642610073219526777415405994602712613523047153015490949519248421487173712476585023222239132408971673867813268996339292077295422610771880557301004307420357673988001546630390943117199040718052977686608137280556269110202634160867557440367898901992181384384886520802240606610678055914961884389126492904927077545566939872637634377676067892307167332451282665654219991629235556669072730099138380229361480014066832472533925338601177060733642244648490627601093744824027945611613434028324939570495343993682391723857297187494470498360138194765349070565539853872388326620899117520840265099824831921589565636837857836507794447601039264303833381996100949332628955747165093321995253119398900680004254691857645228867720813659312081535076024297716507144695059503061040842853198761355901179437175145222598553741681408107062980186793063796426221143893441356730395069136947667688220508614811406513921357535173354675038314468358542518555993394198133973650895073723763204693141046213979895126186550821799321645154782812439634690824186457053035678876275485383992404229312287551296278510827075050714256215841276476274056201605646593302906901773311758937413854423191726534995965631520874419119734615872426000968440749377822398588366029717767442190229359000539342496447504131360833198279775160917303000828000444003063663122677437682742434212604839806540309538089789072218637787477111260809830940404734233111910628518370586481243645956870288651536076620551725585916188016578889530000346262133383749409639191286697198007833632324207799762560487248969468059880877282765637408634552471126129164935526052055997928405702146850447328843291042239650755581400580038158734878039195850730461498838866338932269599641983482311109192909932305237989377518356897092371888740809891735813895526448653966150204510279480889490190823048479599683468035487384912582830092688097743220849176186520285770250894781293876543834474948824700366386409832200910856657812216358823384836221176684795448976295422206049264529248278513747585635497998210558014894354810473146883156500575599544980873531288904052825497751263028351188487560078945343891705583399708402226840323531939238228921430707354414136923868899083270801491650160871076852598697204596452019566911803090837176426966619952063717225001610975001940171810121962531723910800827479365880338455839966616852720830049298135185815552578301132569816435298150311128577228018467745979049474063308811506985581496902492081323891749425076738461410198052047177387695948752864745553478471607403669200311967822363678136114895256545609946495663987138047266673563623656214531977860066305742191101748566600875686939320286490667056953750897878027867864265288616216155442404107160735427790907805281559283656171427361643173844425605405857459685157721812008783099106265778717739705202021111034332230922062318648800562078807988615459076316133991325101184806158920420623818990417244264323269705426681543548589668145825851077460294805513601354877354989642534594621736283415629752927639919985902220351124846011359826465987620366504357566285379186812872235256772791423226820143217124511286793335409158972564265879273194517994273552152843694945248857348464513721527547364814305395140601928726098290605361256085078338228951238948058247548949855819214877661619940479788873846120964089610081969255750951480956567974918774691278166143431161047812627798021063777938577541131992278080111592594272548328186767946295945404523954968543185771772820614550531643860290075695760072326679948259345774515108414153295323187222057798151360300859864356595152611780942851928792634399300450398818617603052258344507501699987563656533228284782957235332836988367229198438858842447518017385588485512127627085762220790769270172176456118394681127576633088963423699323015581385139877184872213281158527033875812666158835460715638621045192139789504356976997741504790356409200282482250515453480000512932224347004478203041924793243819620068380428293196836310520365667713237043075980244305085249705131628666069165260494684309383945267134706684249856794166955926041511793779199456453229898943749738269222462599076303910518902652968841483303335425903025116561419064450030202746630725487082421896459369591964477212895258018983440122992286257075205137106098306716862680611155937562816014167409541017833758822605288035790736493134719535787495602505627749261201020944698408934405742549651890281338222455606518141130667302748206969566690996474043881105362054520038632111873053845955665529038335724234405021995958588604892215175779537666490666937374258564793634514234349619198312171218834329006976764536532645378072602634348102926539245440182419054721750980154215646123612758159602942716051627892526417534723670754183968094489551910047385084274582573827630132087362275951082234605794362910842467820062112483815576571976358512744221162122807643882189548682419326943586490590776272528515383735118918586375836528193735443517371489215818824595812849400734788025030323726405576675882141253182741686018457691970173430492630595624754042442494184741581354090344381771258025042562704069524750420544411158204004314356912444869880440110243043370867372667181882453717521156835428259308000300472583078555752610484438147182797912537426944001595552648938891339756345618326156375255340022524149977645248975535659603249540825872201347253334185408314812650686443727380474411737236851991827952961985650599302681217078943027186579743738571873772209669140555326609080632563085952470879206148038403738298963613770078023734283495653537618024716777797542986939301603098921524725113201665679584465768024755074566720303827071405188297402114003619112280947659507038157658823719820186749944573010204360666083836870587260983492405194445041910445193942255264169722901919486815971423810929098996068221941311300759866363565114540084217046699592053754861875392419715589485272611142364632400258094248834759290089361586227674650953000217404768908822258285330654753710820462637146506644775760481765541948857730273725642858997411476992017242013235491446579674667982609837102903452963763153314047490160083797055303252089789991772742061892341556362639532665749410854243084658944798147166061214435866818987481790456162204163022405523057385400850599978787035116947485030453512178826517127500170936802844637182038141706024179627935989621570828452125489966360765010573673478142035110178926934009280219263686908045055871408639649394650371350517345214509213353575968615351972396804615665136766862139911740064001315957907028203277706826166814545664376428358099724629236765121906403918418259930895365148200453150546916650594008344104945827954338022263988403282819621246917118090508316269633704019538789088062215548965552968526083309559458695187903563809043751987179628200607181752813034638456127015628455460902120268563211631186327093272149163187893757829805779463511758210381413945898815052226511183200822629085473769561401394626707147140133719977000897792597104434955761886201046888529615838613842959133629421723685441219284430982462629060438088663692524642061276849944327266267844629171919864417160674981854164258878585365801674036186268589291294490268287402033739880062120363080474833420436923417233153860548431430495288241642539343579910291185503016418643452916594361481829707698569196426368080630711698804666026137640827412883689323069843951345699592135911093838897022205622751651622868340254117144461258273406695878226363206239308109670062409624148232551642360170369137400785698523536318248407912780580318884404315841365579415287632633293194082762726794774496641810909657891982810850564020353649000562332325715591204600336463797238554951586702182425933379162270345573554929823718801339047771657616978860755628571582406874518802151414698516644240117650174494696655683749328727391660407887066531707136990417209409481118833303314655086236970326851022000901242694269010159686498674477111068724254232294668103117940840121855000763397863323707437158088160607907427850404731378432524772009940119438033200394756214234770635792917874967753373284238803667625247883913783458718621965413967035421895839339065475870532000829186177820414678363670343632850996719816347876234058697236979826361590991445327877993692008039848743675457929358281926910374316935991453820225004319192565952138595059308031417430081798552903067052346957585373202907135637032772840943386697520513828520938005402111614137326543597614396715767779063969399549776432917197091066992653975577425549775398980014772273100551207516430489114186180890460605292721371238330711830854721832292092275671616134519427155795983271884216683641339470521749366492704388397231640041510106407651764576613707074355191606413729317598565112656795175526103658428807821007694671755004868006879338049079327905451805915658887387079562814913364517892757016340044333808613812122727229336425892660461510913629157706645280853505668604025877350025614277617112773486953727265776468224291916663225125796388771196467549639432830460994805151984394388861377479850806091992334384736392733709656129817944475655958149897900252166399500343072079178729332429216165711166069012476651026582388284188167536749253003589366073058269301885615413749483569422957204038293113332447446761951904118700694655599669895944763139532253007188421812942702766701407865901322334829096846010451976445482619503276007431217000275668768280076576087986956025789207832134341184178620438904998779831323091386461833666304988732225758126325149075036913796851187304529309421025843629036134150938549938016001209849525646570909480371570541694509531273602237440851820360148195366297111683604891949160675849564736742887373204365156648450701812766565717065904554113365592965014521005464826816409048710999543235784764808279711181139789212299652807345640299713650956346308976305682842896875771345187979201350701707049262896944951922556300240555300298200778448952973572990247825254797255974349400136197625352521650745471482182058445560875957768483809621543928730476911034334734708782773974641187395554057886342139056317150432762908772544480834921662862920795690707534181340593605535938295878407306315437221910605851862119378260437615071799513485139370654312572765450563984428757909799225010946565829113311439463988149685285231078926207756412881280451481061265179537820822684427421715596348792953745380096301664476310087807331279949395946694558104235778345267048360195435989431846455735972332506539554151231421662245987938098596546513225454509805723685846490121377164008452304414729061224502907299538300839978557188846133993142741526593568832690912296733249883863806051624936288448208242099048636900265190057587420856779380315582624571207591458550393648336952637814289047168327013811617495350730009326015410492418481492348945626618682361137138347324144330256417335616982916667250503946502731087657671251242182179047573170369819135130586490665153562815849637512268149451608812667359471524025435605085753441860678398987655407193032151726067688602784269188549129645599663710780267324509199361425132998857237656564397414877428386535342416908374645223410171883116658407318144254520200616011539654962494317610260318573809271823926971389191953198614535449468993965051892385325815934226940639760274849352951618107287282261325624493255307750666178233994730351841059482905366769794228984899711916856353304798925393089187073721154604667112320490274499753075694919379668370506714536504824154791371309380879775810353763384739207546257249208244195793904028099358520195354541694184912268145555423201761916322600208399038384593402910984391453106424747630243090535270513183898819551114000947021613846550470969778010019731260549255283523875468072152910907966945723948504066258638114355385627823626365688986128034404589803428444898978734593008542361178734567825848775514163877492731975442889908264714506026103830543442292725219447075168841065910477048563978601521404245419891302687227625874626598293546678058269965188653444828332565625311868290687270905284044240172423086002086432124891136442336571592342626709959665403504134256244397711589843464646040746414023011650146778711745160713961073776285681967363465105473743659123106046879776868136658878559922663267906016840610977759773415413385690741005928415203570440746645384512607517412336348686085579605035985422528875097976586362924685885675746213410996802335957226884347991488765816594316766439925785404788785656850223487127957764684485878041702649762039058963118144441107555733777279662641725715486470508756152609769515403891831857099519692985252524299000580870589973354419325303519368808728755795663711723583069716000198303413277713984986329291775267137275398798509264116746334503680253790134113208647393332395384153673973844863759152441169416763723821988490883968142524241487609108208609669950072507326588977942892425185688047337851086707915626596255757349252767697582427712736792903183707927950008594053435983506063557235880766987304311379063193706133672226095609593603129458628945301763411754626301936010756279966526090937623075011873592600635732099670603735825231783932941598587499024908722512258284596778262057844016503123813671609335480300023038828502251296037707162240446709318382861218483739786602620949648271927367041866748290047992042137162390664899071680277440197734026847724344995847423788905131676169113851105474275765715978366551998334006264974815537713990083617935554239435760557808876426332334448758709962509521779867716028805167129097142587819052863710342037275461963200975040092727673589748361344542926715156635517862777513125520796122110598972611362181818079791766538802403499833431197038994309695415318471056671121518724999560510460538070747618489195765067080729638473638268430274881102232173075084725640706740238362101199742492495581408466146737639547593798907788241150383018532398561798651142356206496492970024424864815586158958027358444914364932525752232783402274941078035882962990427344285034284008847960672909404176906510853417819499445962196146812032832440269493354193892927008768950121795807357389997485505784835223654834452537537108956972971880032036315181228501360605762200165858420057562820841337875854224093039428442077149553061995877009749866454075681560616236473412650770155773160817076339844346615078646417693680994412980220221362140154174124448988196761616805282817692582173293337138386789147245779439022587530787482045023712599232480133836294376461233288348591567956773168635103699233846967881786689175143352133297221369449221122581864856888988268755226587329777555958470310874199047077144825956251838771399337270510722106106322503808929545705260330988520134105677664900942163197679266370385637047251451962324283622143263893331063598032006218761429603320997137197957782413434398166884919878448453203694491627059450501064711716202799717903668905798601399413570295646326174039383306131262854070970138069004172105468149774040541058547926679381079873356487092755455286266926512999669808215149521028950602939709611423934723709184326842690398065570435137210427979299459051891119883600887765695052181003025048096588467660329016368441972523683751795811857280793102960936954268930481198128812905796128103500676768316545833382174231148339447300018888114538591523796689090949857584651255723140192012486741518554975717925642055633443493554097545772440983927816677622664118613977059444143934677435867850509187131018570025722820350870572381319145437421187623716365983350143063664190190311209019637826420299446234118282961465155023073006925019598979449480099382308402218263779269833292022302165389797154603154289094265190860508599658996195670610474587959218254250084718039432358860708704483661682024178427905214781495001620401199992488802278618932728078199239278811576967392533414614225926851555622455529036053241138901528391021630871036031078053557602046603804383466879441885963795905667987484664651606710455750422488567350748509042696049820016089274719836653055439461717322526244323155666617635216610118196895791546497709657693916715592432660231361587949775179156551310713905492893148530377182122547054586645153084459739860714888149065722955733620130669313634884748932179263668377937087500032385319941650528464300226982429572386147379308501085963908755663344298191151707402268761926856187849754158012143447218582524094557866903481135992043816924779142450802247146706873573245086626081674174158498649928558307999836017095872300721336196511842750302983466032752677411610706872682444221732335050707007821347457444952351954237137856759358324420804508111333339841304830863602057272236896106313646857740154642259672816825399601479085854745930096753493645497235528872520132386186117389674142216956449827835879463854518778863793566513397783983031672001504270557104688180671733186587611435713617331105819615816145299984466575391043613803359225965882538263227556121388620544633560554927665389126455457495391817192413668003223554919074088830225604465687659871189094155238042434293059934340034316253846278819941586631544028480802670035052323849163643701492045814544215108510657379529927766331041578595620120030747342650617732247885741633627680721481757126068335532413042025733450506735160800670991839912826016453267775928598254297136883523214654045080434890382282578475275914906251918734107543858826429361342110878188091488413267197133850880037428104891702798212453523824935502074527806586893607252304643235689253764325722708881364412183658082254462265270500196145207292655836935984686514159801876559246841961433345584864611170795840242093704636908896197640283573917437420072214912211223714540715372198631096009547374450776586791843838161068944137096574169160812351230794719011510179940145372559261157979484179703523240622023874164969690817407985664306649235249493298008451179353110232760759992228067287171204225661684656124346556736239442471488360116712775044379305881294303665301270751839243957807461431262149486609439753468641618805138454252420319216460161906962273525998136476908690016901561620626043482847740015541714115518120861183173790786502396027442230043676906200322365473537813607111031748412153406655401053128883257181391535593901472475601060551973759539489065986377408468647350928624052149773485722084992985284069096422088333778346094689614983551319956167716429180645558017616209318477236252827036002896091701987460135099972599476072704192262076289824646634216428528020544514540675384265302363104865340128208563694616252595366095572988513379323395353000270938467674632112154209491650597776484791236862440819047514604992320433250814517891852960463008136384282733778247920299353097547275350137583754102984712251122629188645668512363602997349515390283972710456659586041570062693260977693966553729153138925101903892227207460024683248212852349712567767355717057664565820078713193848891941275021375786272327202957741890694999639440899597555040097643697713751177543305050803489438308631679520576107856169638150196574679162138992903389337511731784985707298507567712536465510681771865003413273260008069851062572442719335538948093408472456040904276680502000942807710663455915389131328428917256394954482207099468791849840457458471599033872516738753793856589167381327861114681183017781126229733993166579473571779448854154850831601820986943837143468437806481590869232451775331481176574326201855663732490671355566890572987452720817237617164945713078498191220722835068080924498252364831340744364970094415783631828184185410383699922764797255325089379589110015445176997606082227646893644327458567195492284384506983875234479007513235707154282672110707699232618312575316097199702262258886249692297936134851523514384394331210295026445612187669472121189299764072693971193915903684139727501207825372891175903146194032113022587545232272025055118391853730335060850140478086172810581575625176149731245836196127050831354776476987564698562867686569924302951003439027929137115834064013212317016428855351554650393222434385299893338162472032718093054128426385803833183668123684147655714393997378599367494269939386441139948638719689240440333717273402524373943223063380323351053305104335377873831871402151314028018128577229670925676350258092899760053717769207461109969961087977954633381534157873787465161917759554546108328711738038504565793229056782975759143615304315206837927608703075905482796175242629820624125886612172250933916787537263508659056174294900061740362751425011853914371310819683307948676261922947483833978745899664747171001431736722135301546062363301417804810050839180320647380906124132347416865336216742789229110247538834309183291042930243258486621590743152402045687457596135333445201212133758189635897900059851659744378358373192826922089270576193616387827198273464037196028923375502965023770431282233860257218248939962079493769499982614206702447753663610911697921870473064955366011693665861556842336145828232283296924006655826751189798628194723570474960136067957269972786676332589543830924925697614526650323061803008591225802044975401785974545096242206723750834832389912832552876691676954329628947592247549949185209800291822911501216519367742618094211249353985491733972620722381194506761288476943754227797614851164139025021430012138120142967968880875660538187853226209627398992946050818681303564581241597548668334542521787870162464037205407251063996304641085433924453735269522448787226923796445771826491380086390106367479017785438119753524343197559654232587905100350811553719049080604255564459222898978334057114068804459993145412397678817725964056090797689074897681552221887122078433953607526664221565105338365765624442144154430780869753766615846553260977940006800476429506508398342133336005845129786518055733042061544533877432067851420248869198394563280575056298976405921058644103192006798486029142678645141784477225502285578860883892687677326954593987097374100879047147028187257587378350185054493265315697673188660722233762790688314766505989956653555366048741110462084317283237328072529383610931099062163624319944064072844153838834097967479070561978325527147876410760334195201978562541105515854797422324057877415385526403335547886240865998553753486063588105166442343784701154035220254407705953671090076333154884419146069698361249714209785717079734379418942626372595350813981962252701649249644960683031662826710164606118633502250703975814051341323218260852548595289256091762273930332896875432081017217810599775097241384500163813654118423116774201210911402320273603373881522139627727869024991726763619806969493817047933271704359220577954420502257849959186177177378154207199070937468566176068260682733764177006077267894475731869598609872547218858323036876189127297795370555669065073133356879870865450221117693994344887892208398321179694963557507534377860096263667699454448619971129755517960346919885675010951527310295410614974844727444882069986976601130185380434304844304232697343081304339436484768287761293030027540250730830000647688684104875765183086286938196352047984285877722909926879930373737705297677799386244767848949573259452878354204602662082050516702728847773871234456314845320250565220639026470618865568037299729567995268682683270603593364844018990226738529479101750976123247412014648869423029002238550286546684944171105732377986866233813115203495995965082613342420820147970404040851334201776097360513651148770088620261593499189233085871497090936615142777340389447835679599195418723276323864725418361785204533674633232554629227146440388178170511102127611032700225207956056235933085351416695855084715716651514372998578504236635233132078041002783305501742989071910847716142536171298198122184718270025590969051799457282628127210115899022666636413451219261800970435886194344627476260245324486065612702873421373025720872167004160128224224633207034411523022984081806136316196979036917214745927382638554255929129676434623833646985231399889598182541308764799980293173631607828030876102439504832735029422105065759713055997222700669685168223488158955595927116971833197137085537928043281791022085378065027409569306944348848686782068375029428227233371181899487586195316614581092695714466911442007835167261576407999732783151810760952710673768058094867702398547584824992360500561634965002036688909751067924126622842225439910479759794399434916110319852520938067284104297917839114138944041079371381630016298091396949500603677870009643138691548563668259888633578453027499051925551732993996288338141970513442961836618093967248148699328708261681948864682575608028536327390329548644738083297119032320977642551278680339167350005233176983743768602594220817988760039239279261168357388514649667275505401790554739217903010434141578242490081900841557749890032951829317682621438975248127297216972675592047927940160452202524632375397497729677119292369049739521006349358603825610336034654157296923751278810845678435472332818067106742989641998661911869982447658547572929553181983249173015254486874970319982348517333758278952519382742004253926544577439412231815286721753038534051920857788952291273024483867323304193267274255057195696687710752074453669798173528747401567019439887462518437014005581651701563047602110014280566576246866333498334223504567431016981475995025882354323192413916044188853720999721962599585272911568677583105291678645790741942736214199156592711542099654548430283051404030419114752787242618068404710886947353171358180973171644010174578022371011358674610093700633789897472099410624862276584964259688220810709592703611378831807598278001424819529999804597768289225715574182863517578841360552618387544134535267145042281349159832979821641792805330640929636651335740419330379980900667052433713020263887692005511206885451995583376644695414466498143691648443335791330431737389363244607892457312256734554973688125907810075686196224801132208036274611700694828156332926769893491622941411176610796822633354370364107892593877380022912485738054040315901922842824147376974635858972457779581635773087103639072975589734977282789176755922551109703856282744176656367621604750867650721330329744578887677930961403220593554238849177979827749879155613836469986501139037236067743550896906432773146932975259117904016226304483870132968604093017796759559323836210042610181169564812471402026741667062999886597084301404012100494848763231177505090095287667913882595011045844550730212470370070468170808663438131569108453807298280281731599487216940305217088381329924064627850086886792517761945605605338046346202759831563336294740676720981225178551147545518178107403624126670480772346932775275360373295666199565803097486225771517996655125085133385588450950266942255159539068174968778266936655038432082086478806558306190054327117154241434586160494330176727607376158169042025791886441425495148945630079670563037469016959964388293950709682148184762985894035270679962880879881761348285000659214360373653153263716662465719802616518506662462622096900956902436756223660581098555180756996409257639049244557095865069843533575005652602286949725388279266744626918571508581756879117949598040848620187437750962054374665826306578575738607052313891207253342721610650694708528984666717054218396249643487450009792402017573835814270283631229232099776896909427378187087890952624545991870966176851219288100736264331063664625062797163266868933359410582223080278416260884011363586963984857478846705329680622382355335005413335479510230288793740180939179864768362980928245398581972854997966519628655569313508887004329409033060803068515865062389041021274025810557521360706911529859581621647842804441303914902148596141826227204602117533411808544890126429806461834961225908937858050341516472276885245983603093413183135188229990058885749140277300538411081293627921574648895427066736784261048734171355889052109372463596521018458842341870612608421537737314224253272279724388580738397598192490360489259858936652373205713657972361366810417991412665687739715179712576170512992416419359655222146350334793062337631102878416239824681795832492618536249536781710732128016388009870228416269633068049026218718095370601823434887574798372171416734932990446635937331852218421477875949014335307285732316881447019486050664920617291531554664143929833465942544472809677478253340494099596735661175856835766091279645232460112886165778330190113601020439173046256333583683232981822873778170760912294316808865196287782804610622771351133903239581772592733549324640305321491387352069835332739777416729484906223707114876573794116080453006309159917658624045364726083330455319226963828776631935936409307321322632828403184150035904628354515240782033008141839971117870853400267316127909015378563354318044968087537242056461383335941500884320498468329883916773880318168692160902558163389578667566448121115269166320313507472590361428565649137733594213858979955254198000383659397100253580099156997893465308640700132352745346386503808587386769409455136546074558571308541924562717772458418700744527030552911928264592828003697135953743241469524090938249762702755881493793905679351762660956000192889262515268593148551138407308695915499556086712487709268212626152688764808505304142735681758109076015811078534108819547592833743772493497243071741473367330520753897919483625404085391011780327914758603905391006690232471217199031399116168401371167365558184604178272061577020806449979648175445812376235882219312897405762850096703492101175062198739915050261026167570493622058680238542355364872892634958326899630674933933374818224833871579590208580881112649407210859777334802384356631607481993659506020483896079058250486119670635459930517040778163696105764151841431891028359679562722490119398372170447782581281470261777187349127824152664402637862916885070074856915392505148354106321818404957397586356239283089873931759244394256596886980567835787840708460769308293810833784047204168539199206317942324402789001864448865671373647414395951284961957930657449082035895561304579751589794016193265774244062160706407976022775774763333415583368584452961839539916266185545708268577436068049539105170587145251530738871051575568942299831471917322908212885486166886534896697333664219112705780432309858193350284479098846410791987573170549043700200908469441079806125346438181081552800136327999794297464233891148470854135346574565615320094927369183459984151546644856471084878593486284493289682204590437257404943865059167858842639738014637412905710244874169145924062874805168496232071048446898858982279302961269457091027308547343358367370103334512541666354519094719483557690349760699328244012120829212801191200700271141681923248783702920553412982954854617211730250252042605874576271234644988860654991832361316127345128260656499055472710824505517001942049860409989701985198671296751193253705457900457076391317117971526711110852208559685327801871488754310249006064777966904050766102846498142510963507283291522345660471942429339694485294844569758966092405631689263759791899652710169485222262991412366110297269678259828131651476730806539437659305382749445364745822781954538559967499627905595119558514501488289963081132662971063137454793548212363913871698398412669750498963646046981524752284641425755309671500586287467083302008483150955163997116848729302940419337877378545099493578095013529924241269658973667431072499640063846288859311661290632403061097700173430557211067130501633227301872977949483009333635410047108603882942364864243559676395861926912452151996603190997323904778500060138981717868971891363704105441958210210731240884701342115310889042457573233985116697238985825897936522094987334940978037887739437484378425891862401847019025598077619096987734443360310146819750626089901483038682435609259721896524710596942576156685450166160284511850582555985439410625692030047689288445290870859903065697421192770107089050120384715173673741363136922083773396364070979727905155112293821233689108895077150420825054791315249930772650854455351611991242645052776418674930276372421478811919872967885388805078931370446318395338886929361010719079201999315434044246051630897330733192156329240979603092016776103121341315378409696345220039712067230175071184911771355760791826600545361014474277497256595658816517721850650929206742341951495061651564868554046644701321648881977212286825220099969934688378965854193026238918087543791132182962177070390425713189387072916598100745558074183069470893327235372428721788579972238184374534448194046500854453767708090036399699757625920944082386069925189417623825883663767320495619690653167323066955575815056604110075457107170342565469559710064780127183275360183695422254739007145752353166711566142599231945819626355330047724205802879686697363716079444934968590524479292497957745602107132663450246276023494571597455822082569390355668124014118096787060504244866129883996475578630113619953282711958562549658023736694301640694528746435586033449011768038591598720347958987546839369334621113982580222548867753043511620942627294521303787567462075732040338433875670102051996588648360961271444851668850487039014773866827343573208513307464424413181530296238911365170398988731655205717848410212180780845473458465734353079492577909505215653119048064862602481472287386791984758117612011068849800788473734372314429180735019142779993175055721084316130263070713012965074407676620302148496106506385745860644178203051136497668500300063232523466770921026877987550975721413255627219773599920881509244709605026568753211521875030777141699975205069850144739542639176865596413523241363556192684012243171871996833628458022043326827764173661947112882372115389825024763307178141165872786793910816002194020152805555580700038512568713329546295444393394202549616395043112979759134184231823812659967300561802785713332246275115998484347100723366776388561787807225410935752037323925824228175717526176705403741426031271538775656914320965575719682225415433074305727580914872702524998255970443172856080294884333481174338354113726250647680830260822884083320166075506211722391922269770624429891206033649989149768033171722296686044346208333325389248475743555404131486896042669091878639160510383401886222402172332177618020490569474315955476067837657838497682343918270025437395445786463106031510634108837687072569570371950207231112948422266394116428331346267974623196075182415424353530554213705338016707894910132596859017443371533832062447998502384990352427093481072698012992429054109851500902414176751343321861468181571186377228784757318846382021625593059482658779974837978234583641011647010970001694057339724293261539321774656264570238697065406533394279397183424501932978816496482026623291184159624723427977839243416335870394217609669302809264623936609296162869985855223857840840999609221041684046014964142794522592417821281692659941236349743811614236069508046201481305776290500179592327941637369858130154558239077955698357376132171371184670718311421489287067367688095676853142194737396741609462965298620429739159153931188834191189709289707115028573284672883887785398421767717794730234735676980072893071120980162018559842795592574959965863421244488694784248452499351505573703742230181669685871715003668529809614022781613750065600314007353595073093725983632608105456083086314071287935280297053746531933996155725521322795906492152379868505319466465645631523731832053569979471243397346133884085938650834358347702480976032423480127627951601828870717671580343949313898115087784513381742257133492061854321801289542029678518809618297261357162125095401653340759934129508839232503392941522593455117670641807900345444880202895302071299520300432601939939157491738930352686548433703389212378754189905916076757149629873468066674171369434228349372521303324314767677588256438760057824951553543021766869961357646250805040595770390341042910801809092681083799990285485956041040493216827475812590965941141228397299433647268766386058435872504662884234322378292423859527055319181798104083149474594821689117103837099147858020619502215376800046451548893942694384004003689863649168374396768412395580402275743932540716698523598714179678866837803036278971323106428136986306278796274953779655050908918266739794625436137267483465761123806395975452993924535893210021391604127940113136312592584635669450297623457040878708295964211845206167741400842187192151129337497268042193837844173281241800831618114194077318455638121729532350926141936880172930247723814356325371538007782582597975991718838215439529172245918010936909983207582467080128751395071740422821254195500114148740772459130959643471892346845856455245378297484342423228420864609149170721074479974078868598137463861357885669572440983442312193689274901600775270199957205799707579160552301050380019624767978920462999712486199840586608728285283356036547327067964784318120708136757756862138685005544217918620578732086298767102539364266419459673389699881934996391999083184431779396902497566322004751749923044318244749264814890137655406291115066281393800401453326775950987794985038352988685153166364245287943395146797111594620865932466742013831854280244950734370832503230796287212144709181493179210971867389948733311506010157178352804508949579839524846779875679975571331781167139080547650622904231999943235734687812864963494902282328342467532959289021328815118103762636670281299110452379145561672076407007999676354605566923055277141617814349958887101170387669240821570659606071251256674193451837606301710828352144045866976505557923137997653423551728261400850965813726153829379380485757811970964543434518354979711807742626265008450697126661080362688618749224290195179465431634297781153888180762509541173439132862902178693005868910138527493939528593732558422471981069858567228658073640528891585695096584256476374113178126107239375859676722226079696021651898307405128626235721329029254798585613093704588555773694464549204711737262087957666368672273253854296965968796084872854765043475001614074394354815897021757621559456349804229873514688651904558691753263284064695848645627343598985451795349281961639363723901796942079420926631141079507734949829714138342772105255750839223040345740025655637472190917733973065917131921040436163752881428105153160818804648810509117755411113329931041868500968254424460620124483195322160656855432973501471031453525346896985825845747155169643345582797776782395047856514653846799193695732834557168781836481296978322084139775303712417013171246399079702854276556107372352823743411177962466017846590973469114680886270065737637956471463557088057057544084980995763356724345926740255470226753317924411008266022785040389073809070525742684950861020336957365982906743163218532138246387745064648630719438718526843501602434898574466420754059197438761804350024787399221464304575710689197747256812762749395602550763619650640764126430806011739277253784868563400071857492663842578612451862835868380358741247469419560099279050937001420654757015722163579583166576142517717619960886955490979181838822962574738170873228615138233319928356969112185274622835963004418726653268485637940078887494749309729921779458794660492056129957961768915680030350230188100137768241166522616735529936291252898616007789799792116214136308027108599243364377786482062179901329840290962959322391399160417293233904354037003511554851452506764673115305802972690039764316039005478757545388574253248256052408900777839954182058120145829637611258585474994799436195399583621302062928117863630841987273290795580526771108653694125752197352518778800654132666745854282206936706960823320398248641337677522823131865803912364301801914592102701527597613389684857249041689577230876631910890669316846650845246965217787470227378943755984643905412178657409853883170417298806890221199022745539512417576653903931419225712287826225043520261290721160755929833739957836923246540659588265128204647162868332865823690193731335311913976880327569027094237983622584738289030936005497962605260807548077211889004577484584453201310472344587254102039982313552720824947510307423944810689639588846024253588545382292737633860837218317758823019631312656750682520584599686545312887483138801064683348009244597530524313313520609207083981221242121732369072574404303190861492168629628040699125698651828871451765815776775629832393030918757604147032476771158167873782107891199991550773690631868694652647521153911828956690409055120951195108309470743962067493872288215095900933229646567772957806299749113830275043165803470112260928513598754412010994842357405237474772540144213252499864622589836094397562839739174568069979924306388811306701694351006835162542673686243367716512361162588273663931956433803379807846523271302541756381755883233902407054530971323231564286142594560376657815337072206907134136281099436834896139067703550164138053809965165385932932673756654119784821854362000632281142590110929276136834092947029742678526175547464045600557041101725178750247010901228858630446857865188708912372116298442069113181628385772246518535874994811798028689108581383173842369171525006796881555693678140445717452282988965123062741170833312828622581953391483514636147009301927258545665920712370227442752013268115627759913613904702364113381764688716617692647937608718864127655783290877067971133365794729910676511315649028078695261515544439693260454788602743695800971713605549639625042845802485912270575619668490308112801060074594722836384039695620666611865290344707961976880498995550555169766403899476934853955854507603931894537930304720721887678955578520074840706186796411364057465820842252016231854772299690849735009084132194353616040771911535064527501370411749760986080617514954659986945988287506565568966202163314295237408090572186448780932270680591604668087658722326975945732668827563782782590786353382307276840959716458535185162740317189892478640063920729374224052687151020825436022303001448505074396408386532513896770686740285307997937210310457786644357344998475898736474628866143585577280579745329606668164186991151020370308984186281346902487328022335822531635516771314362888409730031008857051025782492094158415172789685085120750126378519924540877437550822198198828721354502841613941319870944953489667219558237591302898948397876169772172297564168321914470896707093061776036073924589823862259750246804785971070415897480778246304847644506506859248725407556569234574941333437633670348679444041582188922489872747018508136544121461595550493440038096064351419705632622633642948009118843786864440310981691825400624060828743928247064010517959721863873778784339028078007647062304712711964575575427133456243041525171021801799879184072945653343942631733565389919697504920153305988045752409726025256335138747443257654867767804670454864606215127706875122384488535214513070247879554998396511065152192107140677405323529603674234850272062335647935755184909679928516208792424843884456782335270326943259754782615783463130483102245437633434094582595975781015017318399070050628076527114414108910001878802693752600807536671200544307099382749843832257705201137428489922414441052981035937152402260303069097796094028625343119131148063001074334291666891070357644401172493756307160140334573376629341296307418821176303973229176101105672846322923303264693720578069834429499076687538121706552972047337099551597239712708002732719066999510970227630662060525796146528279423476755376517898408284141842242536264166221497742695853382724348153170263065887062639222952451732884052261291560402632770243717634311139995271322165964460288558719684264905495288328798688111473574539491681568616963057307826776916515499423767624538721967513453170996780866862438547364122747190159236581814179014938001135288859287054581519393183232755973004196825275557013224622767664416516006884114793117100645656204599276134404460373538192711558444617021770964199373372801907700087987934513160367073953555390271072792540213170060240337875013482010542416260769547897103797952868143366911221649412311816244966386965205969602356094941132943953999897775370830657885392722813381839742085343007644256305551704799886606066145962115995146961057759522904159757978828686640223196024737678182109566675645515318430540456345676472255934439065652589149638557368342887445198273434250884927408209314710926032896973746682537415777838688440885897335339675274167635890939340024105356176632043509398335094716291459046535674675096502414976286603594710796003200462693421627371403031124273057656996915817518309924256159285213126825433810809808048011647640791618784116212721591571643272820567472159418192153937355649704601185792377448190381391572593447298010007098441311258414333575294252344484355172915604329656799073454424263023333863542096834626244217510251048815258104234072857418364383897919686462686832884490565572871143968432069841259251815352935664367201206862666995731538015173681232527828814489997508256593633057426044083978070517223330509711820793242556800887111107711752956967527770082475360810579987091292524307252970767422428475743711106176638087072524134461775146900158846443399100517480790084266278495091373956120513269360601892067265652635849742889080982109250333463251665432238425856074594128122255733026424201063481908457038941556770319073053197449196750259862853008347372698801576621159320126342424322884503213452902935602138815481507235122699274295444517974937308418962937339704212591103710270097059386064753395224822722012522345079322861676279930097744854636664598983437458835103214432109891814255095332438283455195664604390632676076975428449671557331905790858213165748557853735575013448876823124473010982714726267132384600856088240776964053771749938209466414071467658984887093539044269288040544929173401674646319377758706360143686568962757706019445946225492818867159366447556004193822486625584298777465956228036410025286179204918003423687721275680073684716455857060868005026108679642814511037269571645685424756692095481392578814520326062696919784618906489017230943575448708307805438518770150482117825417876705193878087745760463049224655433717937714122750973099908958286801362276810934388949563886687869765929686647259304737350268990125101451428609411853629933530318934605805897425556457006515881205679203375962227576547356195337174319108981209381029444497901156994888668396613720030532178867071717339856493990795673083672691585463370130620142858783905189700402313357796086022694307545573199132391876678640093908994349773018129363278877653482516477779589653211038035938715458447684617905880530233307590079330411492009945733500571644354058053994797052529572139794783393718364856563871913790824979674035894969570823012086476271249678262098003903178338562102168578517392237080876795012753534374491696873443942230922444057969235182713459174180345529582950560986132788698794865136441246247815872902830942299541709884211474782314407197734023877381080638730350486733263902199914128443130902675088705502926692204410422884285207959555932901857115637743271338618849940264698515916861441854628640549080745048033682243929598325311045807827800147240945479352052205026010380643352098063798260333963998697738911128959754908258559843507979819388272566669886663251853757873139334883168332291263683422886566253324727039046020876332850492854507673345623168677551241647729888195729700202348296630131475402708024330526227486385615626230481035563865355386885406154441086835969536701460081707209012825366641757359302651104567611817622955147851373723705377410703413915524669710949087158657174115001323048899710472454482950119372875058177384296367217366816296260184912456442152825540317615063531687894287262325134937587468473289320615613607284326894586057108267459734690757839479962162978671138168335114775449968865368656903527176957546294769184974876083320722149698591032883186592342594246935155857392839195234381920108023127434575029706851200694031151750381416734298423664734876261010442136695447261279902525945518888074498983234989379432266661038148678148087086573068452369993332382034783159106491011352475952649131536665135575514734600922967958345764900685064268388030757399578923542038494105794155268644752829149070594645266212845396955858546550410855827494501948118962647397984674142235043542969935925637645200083067785522323494010668714680346999473112401316577667398916156817649141765180968790106268339334268974385193657786207374291255989705148426665687948668134593149449632734107087645557459209661768503371302851874828916579924605884487804832089330196594511597465763602652706519315521109164026989559740672831086675991049407528027584875978892778850318525456562671439011699078536595259237427526580712440548588234420897158250509193822598720675850787084396518038112085860355310042071130580512104436178129394773097096393635117293824387769949939393362028000178233093132991682016556650959727144357763621556802558345297649894917593064870348778897624230592072956754255151436059352239862014676241655423987658813392376215260420796006261467849634367619671555519155691569215685470190964787100211656841947269851690716594847768052790873056846203703120592576494989817325407105725874140395357507331942748951812592304021543479909912158704226911382616414512408192506843395621354698443381762976129868925673126718509229267136911525789937710133177504810099721537539217864304270391447489022064444739827868241075991584459617024559192575531895426403324026095203673114490662696806299678929028997600733850191702601040595880588088469234692106622969156834711497866540174659725090107665302940884857855603585348632576223914907356632194013529407533902707477628985172104915833505816831117838356694084713767994222393334471026680783702466037290243493845357188690198289187474527525906146637415875600238724289313908944461768120595730436997404760753016062013871526734201733120104271056158400324079180097379308889658536037392404416858260287992175267474188134919471095897703623839980256210428015229833432733565674910396800190615799538500001585264384888690301464940995555852791051486382785908488692387044612593095561191575126760999940240444186976849261758787215326283076203346175294545728199549758235989463449928164826834154444726817096214890986038901197348505046813491233045160292605268069408033109670332925739288907715973661952953668083448519076114012756640139445564461772191200682375885133632470802784895310612218843666607743287249449939114107826614849915132506322143394966998420233020949323866146542619585518842229750688551861305457247605270945933372425037840028773281024014848661883994299214400124766717036113790092491669179987676275625837092483191690035580888827561929495332186018234856144232131979334670050455064931208870611212325379005938279201330920726614914015047467430794856948466073911653795440612106190430241918878465521493548788603888044181475997008838534367443646149702786581316548617856135703427598779289811137874889183673981989187517967211649646459112996492959133506100654391159843529518073112288469603403141837204369354738044804882673400513736323444602522091524811810634497518359192389946554765936329206463939578677364752922521066688383227660407897912322429611008075865368470869634554722845106760777508909435861429487288693605979239859766713326109214200630223349209464866310427143561504885137558383614148063566490547080359315380130392471643905412385861269939930230044128014636715953203000931688315404952141483190629959039365300357130442591465097147785695579161347904417929507328261919556044666487615625533684699418354874876631356396425899219037571352136819449037185917376966706100305193209447017642910822050199223696482536063007810625148710512647774985172265230393193297766182923258215209675821783176282415075367660347350641620340983613272718539519929376056240907688773794092342379543612018537583994449350382002198838015309187972944362760475882041842792045225456353743834216632086722494180895471098539040311973447896505304199729527833753737387897619944892164205602270159905115755140115723914478451834358597530801360194716240205464213375764150581608779433490662370276260195392380782402393519426944377528104499188833504659217313606592813899263688961977304766938934550470812242876422384158284432740194730047191113984940991253155199888549472321043212111898185986044008877332203112976488763156864159376051970574961649230930802454908397756133220962538595141086859455790758953969500279292365734070591729555097217635155220403618774245816509059244912689918973547578024176525320435957552035739079036702176447901067324104311784259108632308204282634014308006413119756237061676640189375849727862290968151287621224622886250195053488545577322141541473165550283290528366124037164638510134641173473364088019347933794640366801253742762960298209797396185400928797950393230497732059772073811740637947040585518965156010009235695575739306787942921818207944651991097601735212256422552405811203426265025648176786003741332609730802166192122320316073983624321032150964326109857826077901412607457361733408961140907304766307763163564861525062895903634428196092336918269271242348892279165794446047720792002123387467516865674156561024225233946682167428960378846407620260927640780672702264761645068792266103194887121637117976264356508196910717520465959695446803223046191139562134486874653430597524289116028491434391016659534934206904321235918037749491838367414231936990214675908036430279579434821595432854217296713917315530208757371560272735442931026492680208046327746950510049167032998062099933775250039983857673375674824476830956208183858489176974436952780160692180134794806727339945140916367937422465065784557133501792371912502341037591454043300876717356919146122115839875438602552209961144963959294542766877257863383015460194337529378842208210573141554779698631402554217644965366489923256734468956738902407298915709274575422124758939438825156555039958221598255152713001230237989880521287325725663979903416810982485298358178741914225196550530280874951882318367025848868825762825968509830574412802137293694203122387658167818037560339148625060565309792772912542161270628551277309667553882148693467714339583532428040020524793658367571875142195499826871690762480660191053460892409021101847302293916696547114105507183484418193453013292651310220448920616222836046532231156369668359444253062370585838026996285604482452443752332387208302072316930175401438556295828392642263716052612071411872939211289211001350755020348795915990309284949666052531758366144686168462837072140419582081248642842034878138692044748337381760441946870632247764628618571387834008449411289234189538637713167137520670946813460872006846343985672120565868120606476892115894797921551617724815007718194757436027686314347577067482665962487751846218949293940785713806801360369922946175172043272303083157515366081076232869836078663524935851863601003136148611835364976889360485796712076329962444263855432342303707252805688200196054883970436404216723749993401918634280856601875735849442382393731368482014804484638652739187839223205970786510513809218453509486899050155706111781028337430238423928487084466656373607156460759076839239223200455289696911743828356267724224666263995388197931357046977465040546061615881704666641445442963202312769343216031364857240286049200477099090823933205648443521945763229667506353955463310724109347036300886147617886623949461628237816528879066096528281385449557640595446359277166121601155531054073273918512156893817558651606063474227048863369888656811745502342364745329950592957235809896087623960686162534369481393258658591913438938725205629083722123433592472816215757306475455430162819065637843428723873550765858036218432621058502562170757735557548041573795977862989057318879314420555428491861858067583780723844871403572455335799677097455039349639146444759002776710814148326351826776712413787794270868827383834959741099963862289053657513601953120406838855806578202842856774817552285990290965577040838550878148833718487335836895533476727521044417535357520768630818407263287109679423156022743396041909105286006342714514586661920969578323806007003432800024115726128220165093183822210405271141220475004068625583658328331241461526048355893470257872192036319918027051926982414339663402103081836788401423671178574710188824805113429235925109622995094260195342839857576150635456700347153023914007075066806061412165276807932660235788191045993710803973741490727189081803232860452236096427980504434593357959199750601634859222407246091694426324638472434104346166710256501868775589010644423928005750880158529407318350697756375681067336731565630881092738284653937927999041197199104185099442564271264889224513619379554233292474249250676104397921988516944415121190167105826891289379173052118799645837922369794853192658850554687873025957639313143282764264943092420431326331085192053930959999397316216771999053337791577688235537697019028599902448273620920480768398833661815167675203987299996199487459569508587928396430150507163079732340344768173143443885474289956690185539767064254044315288900839332151733534115135197593131081649789396314403954254462149645258632310530061361424056298008381365930729669317841770179654091128675593918569250910738296880196952089364299393655658942671546432533442553347093577904952708415622431417823730051127744319655507734846559561275968173976367366309212866919051120016388730274374842914478589177710562636739947449480723511900321282218108480168413171679888794902755908427166555080174578840880038479012888676545400962214645708683494820602164170337427523006412037245298965290806470060752728808571026787660505715599386948595148146032959983666462243367079656915318773016294280649951668612703630403277076631088818574346666053828458151123113799373133656077093547221320107241148253481846146954694720143152403411443974931944711701556293979528539732708147802335353616399403977685774058245854781563460851023049113857408039567745638428588015772655102489065149948053292648462157857283843976648695748908032593471336383739361503212255022467275605857988538183983786330744083786497899183966422742137654091341124921236629256128746623223348115154550417202483541492337486993387392180569736857202375370892138055205433701941127518108170199223543539185092851353737598625079750351919204048005258283207063479405640569537014973830237087002322937201161239568230192513439745092601533918834534963321970709825556574112214948460972092181373587891370176182103297827219436601927450004112421047267783412180571043983936461745880507928320563996302415177016268683194712233346218594490534127424620607715163446978739632803654814275845800565758840323507839419984460254659635952149024349418756626081862633854026917192398802437136160462964113401847814251261112356911370138540723745357412143149973982464246773254843967377400598827605189509968098797883487996165486635433140399887918277166604034667849023228107270538552126064650994891051274100927598653261844144901330336144456612416610586876589797358161820160283214783218236121656841026169401049414686897566724033492876660706351924322227236824834236730197325782420840308422834802112317783417325277738316777576841935443677050124193777127029328356315000497694327502260537739473329195751813786528929186595169114139633347690619757159369898954484920160820565618158985009711901192809293394657546431132697333110665016004547165034705759879359435364038193811956000049326440811192876963323547294168459911559693073227721810311370829712529246940051280360509749648879172520837120102317650999054915271366462125500984405428523452716287303790464047600133717233395664425497370512656627318144314735750312029865713131110781101182485714292284347874634247817157516391457591296124142937989330370828187890604304990330088725371022733163199847272064119132325889639741320687707207278154267288560322007225128318097000539495413198219213469413907179683116743298866251671935755545861146576264173639988396115808187488208297193544400792128714142288020856636168808235970280725868645387184178342020907484268660560519285534557308487552975526526044489848856728865268795766078793271708258554665372607658124776504909788432004013517052348941992920285576435918134152126358102617456982100584445881685884568352767120618909713969486033598021524416443551907625546870315710282403107241197114404824264296412390651287362189339366900249168941028796354630929686810990460097978150211099432737677562609635657070612142554874232054323163358135444838549682093163356889886161619855419783400017536188370803532633645613914313243959532199325553106119162356609134159722844776018055815614103615069943799034998448368344176735262653137269694443505382667777263826773856869096843001506518236274570981791082205714714147485941263338331842720354748145367931987401909317975258636838185465291894802463093671867554084167563550934812938349087826425079139387486362089000006895434422908458490727547950848447376535576502007024535027122224521014595307264741085063702878913803161184833700570048826871718458168398579689934032442735910717614896218739197909692014168580448062908538439368726072408661207900768203110900100644648263884895343944742641293654058417525762656882623958047509998251613061218709973439562653718007323741013893540716097384601708798776848150066705629974333086221595980765403595512461696355285315621357318586068225422733023529579845770453545833955550227210496183854283494917401684150974213490146460704781989017112907788829457558061159764736619912375124331981912447802968700774638319396680431283420169838380234632557750767038726148860384787995979191766119238522702414907683043555105506891583965252516818009286498655695412210310333370497200971504777115094758585288919881116858153012659407738808429365121462448324892407410883889941881577851235495769293982923477873037762990616507971324931269858161249570820446371006816193859798184816556268979762722547781858757046811918268808621356148336127080207132294302852948587032002785155876750195592102773477185886516133323256303079353155329627215138379776537672396489241598178994033759198563019086548359663277063640558651271534849330504423958882086984511793927790543763178053764500633179727068700438768221706806554209226188894945303965818216685773574579546162408044202334781788006154519436531704919743669874241326487098056983122002338953204015139598917339209295711406150881494008326291585827707428813364994608695872252109239692707093740609836149526924863995834339874220831796559123477065814567852067937944513810601611221406044892057177948940594264206099738140341075605069204380776744056521830156908366981673351648473827979787695069039271783599880841857984108943771869198935569344552294467255614958129891148147794699049155172664594717024113108069871618178762673427579562437580857830702407437937588908656086875251602228133180071086905056677766153921117765190216217523901687600228647251433702412822868503422884807206502472581072672694350581797006272469310185856126978200407423376220347429881447414797290778518801432846928015083705303032429420922629723113447544738214098745933797430133550843235974199021892328714250914856385679507953002335017803392805578174585402505145951294909596939619712630598335757575583144267689226486085612773829235523096008447775299004461647046682228998550945248162313299272236148479560502453587921176445907097102917635818394170583832290877983072617690139472499700127510998889561248872773539044655124307246811805116302097555554504892185022858310734216005237534801765528756576859155449723667011886637704052335381066846353180934119072892653408768154400515523515268697466709922812258267732957727371934558715583924502680926614331427269152069783708677404901311026092200429772291955533548046837372268917746147489154644207503785497566614176259725700398939219656522214672201556678321732994031499754854154560797978102470984199163702583871832478078733442997457288076648080198859526379515538096016958825894831393885526954114087549106352292278442388430831426655621895496142169189258054830950462021770376892285174043202313647917599244510505921801744682415140719922291443668603477234060431294060491856136126214533764597712494744394725875382831502175481211628619635878899926877876357312164484997113030179536767280839583600930957582427850434453968813443327966777528795831016802959286951740050121918492100948397951848862100632423468392710872373904758058483710328427929417708434584450531054643865423040111723962299474312261909416415238923586404253090673209236028715287045504070112382976153337897485048459963759005883433929664024388188433129890647942669823614566901019198439596927283019563450617970035706290740713971027749814107071630991721050078642009188669844994729337539333782081991236179411236127214341411688067439326491792517408343818661550801066726886672136062815934058555669205495915490649246677527296032422718015953783863843254950363349856033655195098792745868653450614173145230348763446881403239553184606315781330739907059403181503281073970303795022943162370810777367613463262347244335130898482978374994243212987308657577743918245353710831257543580521581848232112315821151207949970711744864437899451479732385849088390341432188962837755541797828665644804452399771002918685180251449425858546374915927750672184095868199032797790218295213378660663372114504432769505220120479297142729287398377734098211866860476467043955622283874857097953457011847458604124811492854875260442343770540730472976363691202121806184530317547076502329213793201461672261160212715896467388963404420466873680389046101394900606160816426894869284197847706808528094498397965647350941027649718260913113207537016846199462547173653650551699449791690383788797027836404362629267621892431081044626064550749240527553484799323082895832676993699416208836262045459881019473389638168577830142423541789973828532930756336531922909852387746626004626914887511045538041055071022269342053590351092445774081842835423532829094913224403835457631043262012679523477448211361178318730564319991902828358571324333938456813845495298703105983001319941039156921474456103106067878240564635659783749135194664907462955337127341137107488399664330850810163557793704312513511840799935863656015237158278414996738486965632134076479824347908953776153570876916813245341930038676921473137163251916593924964923580472057180757530541880457645266794507485321579201438256484380665849963540096311651554718261893554457010534019423414278576310588487163057044340617960953117259367925398494769423650775686797806363204199182646545691223170518476682490513504219457120855371963100038755197833085581225029539487109293263556260226215142847910741646934504172996772496122198478164057038774930738148747098144418735829175676561166971564111605661631546899934896656622000107991042015195057163350927494482443456397560535212488051779923850502852615383466989664955516397692486966562462710127563047154624764291327163827741846344088794664939956124413959793619591630569944040242119470037686416590759663513744070343603311198821121336699545709613068598172929728952850963597581246476771599721451325486162573072692634722107552891818141442925035104940928472988646310795653964775676701629749553746201728761731779149238542489238084580193621255662328551455208416716259665267676280287235711151930916312398260421419275460083249736324780656648825485032246509517637525616270110571067628366153502664987692483803530769903538399381311811414513355170988588111084824200098039168044806282242680648245557222700934210653586259051931524134634735242732511487411509811106911546609230916084673178112417881069499078261815151316696860111927224241272795913452136139591566800317276803541266868340873933124941478862211740503299034956445167271932810106900995993059288657208511413450322732184523167584135497573527301223883582550210383223888359615380406458587716511537468134607778543863981857162849726034855667601286106902150389903142179860272956206929691928809973794549429929069351636545853551160666453020537241239891048459887677923457493849910371724128442842598988023778276922013856183121938740470650142896262337846040483642809252250744889965604721301557911485886153514511295982112740065785564281599254410045148872642610169148531966449661357089757294014321526337567230252892379234058228133041714819395882128023641839993882911414696150867452027027883239866007430051000714324808115775397220189274694581153014976744212923184335280277877404313568195395648046551025133450853104670161261662269590594651128120347894697075889655243806049092019399759348839134298530335756268821906063693444070073703050639978104264097069830158360317580052511792112186529261138392478200033047508215202017966004335143460084384514671227337944125211347062059384857054540879378576188148469931718278823936647813715424426062295112324969221851370259738929645672091092912672967427261591952604748801221195674086445761193292213046758154810826731613003430640280459403319883061002257592956195015162148537849004434048431109133190536238905159788204669183372999086291703438418759606986693983367653531323481481438387638014264909373418896226323663874351458437773751243373855631940442262478208047643582699465677723039831103713793444005064227210295969668486501187493987797152895621956428693406292074770320601670630216300142942612386559755917564965902949621875349271798079640169448850354630875448242459983764719110843770341436353947421777637300580948593346481452442724065873437166308166981386041566513976327785399732310493406113528618028002161332299874318145850065980849974764389559787497467868337085861075416195487730869195496722995936439460140190990129563004770241560912374778018738322274686988382557024978804826251151259748781835183854350053706783666886599005762162170402914585661285856512559202803248303196906248688426481233744642763464267828497420702537403896348573096490920622285695567522141995865245037001985828227379581985958973360976224377141122195916146957572749817166546556179668859535497218996097540946415283057128764619847239067033485108432071957570621316257863874663457809460335526036207285224185723590585820942972797935976166317417008591122038369806988045401130296609376919700075704049465531308667570576833104996505452991028506029938077569342162520814289403290046650399598167970563526849061880302390189894951807717024845386151757528551001028238879824109570659767696620091288852684923994314723066353296161157701335166901839629887300094323487282756123281161535433080557775641681717149106428496525243550543585610574449240690775866025840783319068460938319772720794170438906275523011257881364211182408361730598189016455987126876409111678666842844993770214723822612924401157237688707180403236690292011010262238760638600277340933124338436412235255605802812091257848182627866194283171239625323103880973904392734302270188815681007272237324153487878305797591903802608499516641910566639002401488381852204807959154241232289395085151328467493382224601246359886384101053954180205503154160227888506421107787759069013278849425475045936951892706096610725058715697027044891395107456768896199958491383982147885885281364637558594814117191937616492395531837900773899618851061748369486731668379737072730333954152281442271489019173721788143125494601421065970984827464499982670408308657840631547272918294846830573264904811043530433939037078104195200600194961192294816431497388875476647928121961950808784756755759524426051621906169197667250778022357016529110010826061338711280465680260234781815369391033708280721670763084882869227768039088785254202317135785801805048724838556198120617766727327072356831679694136240213517385411164675693271004034638458436056913401714972418364645416895202759685712610283758459424761304915010389188291413114488458411585213328297935922146476314620861865168152651011750905425026721462397380549885055246322923367701712639765633327580503300659395015614346496770362294536217221496186686829358404029798486168123614347087417962959843301210584493540722559793806310802152410832302804741062717942132241986584240052419506617760524121249851335505562234398575208975431760203667728959323688878603765380715940715989832687536702115632330349117561000785509165168554765395312380090645752208950823312016233740183199258398460159842133999271096006952425463879270580917290612323392819678557232939618282872296571453795093191690370884739936179529817598213376181319218958473750027022145768644071398780972029677417011070136697108932446824523918446449065169157513089398300190247940536162335358534403311512943272098908811157592962873815073362056629254389693201928227056050413285845805218110624492777115770284564610193053236303236494846763797571476418965184375382142206392821143423326119769899346172359995178332384281493569250653825994918462063210756576126675043790260639794042220424968573893838690060882604311108904713687950758946010116960242463599805647406888619445906128122179913807543245614659533809845367164329979107752440341910466138264919171464764887526295923294009983091408571811349071736440708991458609201459999726654176414532521239492280319616984928664630568143312452977598562700601082247641934258667073185864422313968787902759972513846002360969291362243978201248127968940559895801904835375121436820452738487065481692366730892193270914961729733704768716214210838937994296531654988046064201380340851060660283532571010441699576690023654439391646465743593669530963464195597741727405706903734607718825562654976491677800558078301882076680609575340753180844654079917149720238640090015888797993393454158269478645125569157496689108307313669139636177227489860411542048085227634590438706312739622521085955954127264524419874161087109154898062979883391169170203105546155355524225294084437388416306222977529781415191976841174506338765922837300521348495237696347445230626304487899171393032847842659702469583698650808988010568111858289298083331988441468832149325211431218066653107069279367752854075804423517579378034771411952419833730283405091748898782837303423850249588401462972819857073384545845381940411163668921507420097371479928220992484188929005602938165593009003302645524984917021387529580373056374717988543972764265184795694980264837494750681518002737421845340233978300463636628470008570458390335573357895730905628250720425516088488325127553229688892519060360590039352884978680735895660009312973824802441938143008699832109564917112732652471810081060732140466822868647201817859116120742572674635650142155878062401633370746918610065959100347713858397338455809419082198636460013849487824209771779573123944158705064481930337811724484494189743701996047111465930825200085224319104912447297078563755886670671894775869725348590317890136075852323397425605786602187047733711515766216773564043316695792068346434499044360810488349065892804149598787639512132673666004037828159183778738285570617199219161646391328201411228579866026201789435580395250199013469723184211884091621597055065286854067173265297282674594700415142950618133930430162793870497744859656309973707193476976669595022109407137339529972171864130218817200295776049680630323377792663233261527231531283167605174797246614843948003468652197318146872764833147075501001288977692512812918682045380375228715927600295629289141916169135583570606481531467465710630399144469271971244226646188980124433494617059550932116132571230153012609011068340102995373320305682518777842944850101506316843122457004380326590821764842676607909830883805553983990003282583546445309875234071440759215850800253701318450111238543900492094933782334565511633024185646625098635892970645972226879524948594651107690977933359626094263839387740757809367706315908140182464778062219466742376786757298118782107556585450538619135014557154965318616873134997361164054759489963198353242082347156822581041995989124762084854428251579060878741807286984409985398017217356364113277145132680370485875240099277801678020061064931616843822768949330301022763542743176771454032490192456748618563617856243812252049550991401877327402270051262782556981025009950431096576314693509660068842152728906879446565400779936797118217672648249666171107321510061628190226123136005194200805913414533750323167149448041836454304351782208066765378805384094852216902826179352330999332147162426428357042172560315869883451369160452012779311134182825298295263896562491600470880592506214997674760327094231043397144678817448476804528622211989673907744974403903504869756580368206460604068920020624257570958028791642467405160059029190852914098388691325119087292308870754087505852426795362063546355106154757683337022977358695387231499077565434330431408532902639257718497382067029676893406675088557494500820202286988490630636211993836204968450500280777471700831471708078453202322387326386536722496572281667846017134181326480484634221021374936111428847267047732495764376177322386623420277455271743019242534404250449090135399199154705193816838915831362415191688919150494198888786643153605727342783103888948445420410107550539511882354409954184256643868653892927342418056038198136126993833251661459427385196683614267123594616107703147039099972046001038593466334284738254042920450208932909851166493945916990908395898230150052688920794923238456402702945734209135197164080695566348501713553479383321482053926638226586067968412155952556101993737491932883752324899941348463522349129406502655986668250138510551331617033775495362032228776924970592504071154733694572878209266536813753025044501928325326383685090566217146422065867633912783885623359966698356551676716552703861507041545874879652948015191741980884473397790252034844706532465041684805974823135906476645509241891439218344125846503061078722385003759929917197411025370772308484402167777712614035743271638321111520709434839490724475783517104034738535854617113323172212258363685302159701799511149866036129363273496165441873657305417793539143509986372411459369333030383751184582197275383478723849382754995546351829996639165759067548525114148358374821364717033030500784207543371299077074413713343747422097735087453685235715146976988142408475127827972498215642004955238303073639177310504252757799114326316597033184688615979392352957854091163578475673882004136558951578190477940488294529008604814702150496326891036597263965312526714462947715342877300427230849338602056664568828432403287170804498476975631923348339243072144137553051627463382593812139319823788319787699907045282892377083902949722595896072442567777030193912633517985720636201387962019901837343187949794934182336538244089342109619330913985112803589345526019817632660328778540571627066180358261941574477289234504747261843120842658673816295333166512750816112426044181188583818808426983113044631053537203550838865733544487783165873299046037246551189548060507963935144914223855343104826704114252720933203197676068606101268737662764244043464471084977490523094631045715363753322112435139302020677712757212185737686004636099184208270944417024362689269001954178424240804299130780252391167744769779518612541359129163348234445331515411724969395555372628969956093857658363666200976171966782075216775474268823039716524308145771437628379064241626505243564373555862462547236169739361726304317330922803805679618762332077078246983685862971098308015969766281179004563787447800585662172396699132692873794903550566628634470773611794230965627552530975807819848224869101377860952202295975698410609580900679542931338346549297535284525504988761903794156863049124150090660842742828936245215641966795209131033024600097615858668187130349383935979486702715225110895662261972560633632050394264109760130751682340638022488034710179654430726840357968016237339715578639085552935530415930070452019033652291951319390461928787306666901863622102505310605235480921023949541118187543500263388443180696012866415615909863870667120927059804344351213590332413827435652950560835777561798691468160910724967551985769116979177967992762078560494141361927697492911609026345887978629752173869542239740671236295888344223282253619429406895524583236853919811665497460080443861416922190231957853608178707294525018065986409688896399446725346658590744072732517679906376229604355358237116610417908519902477294033124217622642460526588445685449910852313503252600813076018153692948655101536459145988924120096709179961019176119915704465390654531809636463898318747920943119960139774909818910626441268275427339487082250513375480021870019068125751161561747249569831281888747318165645026306850719078165174481938787994695155797995052452088362533512338608643251311583764370727926795985223631194559881910876898160289423818955051268359287657339211477515809378193767175079830325877541555271400351228162848645063065168050280401690881464922201052289087460397100530279824376729575051618392842863028306495104010240048736022398849620887853618692871049755861377559211980514594546586442868851135183046833847252833818244424485548706895276439951652770959062192216255985532405005826631586212604830176703723972298224569144678217115416780462169739282829614663719901114149270163591046817774419009983719166998385909818971011999677053073197548649707430252818685475748227880289424940421391800445432583351336292112804649432192827613623708139922983677792511156521115349525245820830272072832926958726743466153498859713577736878660474996570995943246232978916042661611692865732595666764297981387926698405486993684806921657447195790503170615140756420742289333856782817361808380492193499589823744200626801703290221807158974091112027779343667379300853911705002749741350067131377252278402300880407153519098336972209073803183912840525882413566996244205766288925186855251606389546480743309398745341346452036451154675566369238399952814893267494841583335862770100165478508633931480420908217613475969221798992381437643020529889561084480342929595839333409543803841111889392910959128317307916389657524456292696628816085973634788985712376253526048163867952196639869445421907784968015608556300274623177855895639834949130255410743175773591526699862769313754949936730707686979581431654941742370433931280052207379263616261909796092788256270897548108420668887422423618212629876018870214648906703961255897092372825326333393753002699439600616627274689815764119996331659924916092874908916096351189489059297793027654640415905551564876303592629545244132407811453037876856790766735670913243926909855144012738132647640173964331297706336561254742562724495789682599466939201310128718477212809268084413809791225220324236499118135983133770206633758287528595236925111517131842698340480474327500771531966806202182274500785745647269869722694304741935607149451715954913003708437308730004624811533125021295099120762323814293855429416201281468818261325920091943438275943938777206036263245548467327905329539601563692499900532342072985802960211273544164847557510514554984760878694165991239664889445839273621249179225552575307648532232856005455625359608668047345633802020433019575328589077497252094836630589604509854666378027702781962584874145044873457974113494917248530855896057077944613391129559050699456600297528148453128411830467813213578411448968339440396358447493320673941564253407411409036077092135733547239638302402211108084392716767283460773805474048765138496941082327452712513108241461376020593855548890179484703082836916558848621377940674458559782698162359518745749571106138123370619009947418061709159084810400234368500854471539854603295915273168428481864271613709020135514137090000376550895959692831342776468510033377833666790151630197885237653303675280773931131537484141380824987061650999420986955772805089964446906890364821980786474018244726881277576899478391434073287282142285384052814419102834905776685415162268011643293325519824916307266325543761016022826593342099858420789170341910309022114028271298069824668413634875600976830464811268017331384693699493498145456589916172008392788355106258293800615297131858557646779104633113111642860539407030845001857550557151651389706869606289805139579931323709430895818755328429430991940425553747400690907437601167390209808116546990335040931859429575150574235555684603253657896110737452337571446081795795699899233150081742308728542941086746694020257465511028879701760112696087445942706364226106625693483535195899345485886339148876966771267213973465316125959728528472248579597624676189652008043108842998110189380879856411200277079036418058251515139058438025202470156534472946161497770788272211932854567581669687648223229000144310085932984829046973838078706510194795543924251463339795217714586534467495137284259142227073548451839888787383755250403360354675528384984245107526162656126319478384151672919228212184868285999972144248274622890659449612581261449941164718119707846712743564086237131935017657039095827483748694083095502927883942072581057968681167174251405098635848309059727260337762485209839739722024841025408938145038374124802990392973463760567653022007291101533330621330970918737840245206607819427033391882701796040102291988478056055789929221227444984104245026898131162128336031279599572550501450773990390587845406251091240880412937454984391365433335228117678851459020460285042150324330505782498004145710441616581473424731644858514813488735249488989911893541348051231688519946068474652512595827496706130016636736216121721969489399363082070367159192520655717309720328970249922818589734135630436261171665809374231296810185909704153057096547758158946803410306385571955419685723891773738601988771195614221730533571062470227662137883437976306033511673685092159945599347299286546025342825848270892328251724999433893725010233963785896864603720648273287654381722333310019578391441010443605945979166705025823013279973611880001292818435524857290269315805354517756124370426131386322542805272673997999961521829026632481043328697921961729177793805811661968776989896881551087257934130659221910679617211267893502482905400983942235110819499944047776257305890778604609971335873290553533502372053364232392244012573089644670528630958572177494863999740181147317647017432967887360844464966777267998322087131768441675407362621130213750424446003295332982634488230083730988589362124516467975053645308684903196250037984343751819431866762538245617150183153634214672341473582355013235666193710014714309358275757042620737413385358543291061080020762434824766520725250668757830072036035667308306988852951481314952214941264602373241729260708361569811541384627424380918014611923937577711757772904925441952425588557275128662092816405221314318888928872371780950244879243948995650965373102946506957016872563950451387271648885931732482119913483357409848290163333295854362873671271735175310581993162791366875581402577987460331321472773874181673370969479197523828561267173506354256931715683332650381869808344729395408146714127198624209309234932063920027541476711983654871983200371060704431859301427919811605021452405247170473371039390409181521318562028593732214805582769160091807729125417372186382350940762988165253646010716220929656187873332287088200620770597476086656349386625323429939379701609389788582124173368413117004801346993932397121408776493085893386064441109724245803106738670955885759389919133118499390247368276588927383013921697149666164506926170940355045830147311469860265524226195173101990342577156808194258959940316284771245250106608593311750964373824381757665001372148839050033287341379191021610749649199752903495189763533554753958258784832324092202681251884975516616659100070747825408341512013707374650544778165605864606186673690170334485832648108400069933043239834772004507030982999783565432663164319683440347108299629562610847744105564213693537252792829332632295637825407690640016722953516909561133450071420816866610696545137405556412936793375613028173330185214615443769582463973152432847757347352863200157547196580948882615137567532368905258938292269651881254774395277179356569791715672794852235540256606993218786360728006279074670947259556569385845043053069973633107971855346650414341394929351367211213890315175218088520095298368411195507016672973199393370769873035544149586512902354374266951950005044932054923485256742838938131927049889518197112844306442557442922769963664536324496089099243093700188591910151003348565788943115554893121853249065944841718054784399254988486623276056278670713244965382409276811826794223718644479491490983219112220761940501173466131094120268824760003901405315501703732432120056046281204658023847009344325845276642083589179861760026212646117422976629909150966129239331202898476321735869995809718489806599571266837032954451140558292290420921928375169831246414014030127125340320889862141672343477819804706461648638049661095896949676151534679311872642338550046246370271295664111302931446972010807772443291362256084704330150598248557435633300261160803489361869683862266357138572761531460870328758357799731629428703207834180795888317593411113928291455424670642549353150237903846819255356017583081341493507902839693183910829077744021635038864788570669098927578838707006703872714707746767165390468913336404838507376611641061503827349381675873185299755800192648873070853489716640029658961939136603696944297730828571985576409053274094767733843109026533283363199951237109591881948745353501150001520673268796466330184224092457768324882496515116598694412564338097320054240877940474999761469245089484763131969049622673177211643815577427164960634391532294347584588198780449475785425567172560978905309243007607159600342748180665037225661847948841774159252487779433969799631130244620692568843802145440888687013519108135279213194175813195667175923074756642829842707734807033735184295079914356146023535925729986786342482945498171142035411068600401636247663470650838280446305262889441618947992607652459789030276301953561509935752183490569547403608774317591380990897613693064441530535676310941408520966139029958952035044433203431676529819449241831793605270113003526050184047953489204395563512748685079748775190999484052714285236792219258212882969986278184661126969829425070963820616098192327638318509912512776135022779575221389608698816618580772139916939358775222249657535718625809337477748765692976314755991564375833875198698864008420311340543002520850925793871912340950066608725173456191488324710904376611452679409329268542801461898560192029953361076329484499383551289102196946853038996279005293842629765146024255892174597304216486148944658838851102782235241506369669264093477489050977437028712035863484816726469699588815123258401523504806647720409529255860735137357222907331315101839006891872425521891770134942648120907942729108921892221251874037081746282624449369644580308120442320993358734197715745763579522047528376664853904498396241930030150394451875388692286297392324836717449401824227434655941790029046317046595969447524864771974431429382946481434454668951105521314463753618224172607847990691540736749866755282308037798919712505029202586965706897762239339249156286277259036770194450248870277022439582403978081728346742509676140559794953873390884451759678993106506089887365167781674529076349369080780748572057751576442485107354452415058944046436636826574130635665258818533247804140234026884969057959004076725212881624305970294252420717168766666596639073356438652932424197874636519417059667816525156060980411896716371830911336569077160841585342239152202486410643750901763514830955653729196399419433193491090043015789382286355938590595303485946685486118877040396049658112964251245012399279358350416701724327015232319423022874576289627459721297350239545940803463664067873271212863129838799195355615027039162090401656815170219026737952714461026456382247356943978687677403496108767818304365055781252659750696373453560811722037914747745290926728976280529884752283753027292432009376527561147751028823040362286656023862669785664568254132671822688166298246564099076172929024616306216894899519393663713485410493211950800790210770611664325538534395641326487047082216971485458169797754804874395665936146011549771425535311668200688198298586481539580877937408604036319961736175225052367791029898323895588386730664451469687097101846642686468615353835896451661290910612736002411789840775013461819806968633797384882751369611473389118716663007895914442871045827190390255320062932960372335919048446422482488778057882128089082292214879199880504440272585735286804529912271652054699906736819778902710728953557298944593432557614884697481817699668378505701069794863113876664914107581196327646029587627988743427462785135832215603604153424803853338477765163179787312181712028141978781182082883027497164582546955035327323569772713722750884364851566842279684278726750954877805594070836010930097366748521968569252636878099479108608211026508868344253543004883961683066613940150941284740846332282871236577959465225496143960241674554646473577064003994564140175032342637278927630931053066762482821430300401163458178521392812532646152385035469420997983391862583252540487828085334982934945027838877443411537317032061932960744448720177797676865055587169989739285325044646075378558634109409413062241531813322262799010727575681729589531471720478515633433485001129316476905119697721591754440670139833973078628633553058085342514262881728913126996850278801593707108797965204043585042723717989191747682848123229728874342099715043136168098387403477884094548561338663115252383084595937831888836378318639716301457909363519625646252463108526814050386262500024467326140464208218480925791851353843543626009866029863629584777925164831958667333777107621600489775506914041339103680354264121632314005941029444600619019369530911554934949744587947156101674389993396935478924365451068824254484945453287770770198134309644701828811460597891963365319818778254258324523560928043058840060136423603076296312269442906702541165776460832490623677040579644671872723632442638866954094729858899751250036262694886928840507156115974039607684713803582367790163476478705420408512037704007980477463821775441945870194567971317520694462830961594702396078333348591248636756719514398808980162271721628368543197744416576326947092934636412528194020232526213521239709781375466295338404004655681144841960724447128937060307963770322833300780078392665906217702948618259501539436976507534361610324647747584610752447901089961344028020728788452096444324914677558164757663764463734264882826450719715314353211108809116620979400418603058954929542722848737007372267951117744532676913625870852830654476133652076562561014740306121424187649576168433268859716570733165579549016795297582215535406005349979942555646103921193807198015156684135586168845159831140452308697260596555494947883249915954628116688338015754895605312599961137772077649076772361146811520525241107717790008250780084567592021426422352445501709077625611119023637592102588409201679610539966269237981747988355673125110190777087175083167757879298679991823080699984511618199457475718239570189963423638943153479089361790006965396501797200466429371638665725015128266032749973383782637839844841364757990473710598995804316127290640782345197297111391374999781101760838311897602532196507624248908086726773840154193018236039202844334533489740054657774927946107094214449824778993637155189112728751493938906036291669112831227739103853475236559849721596698383539588161550422609809820249077024965955618887786504672912769718321555575718977775604838120834212521225297272832297217015683613544866332665055416599626060940722171700338500448677849238003964322286007304513957090865208174749203454849596908721817769291990661533384283011149566558067859367669856351649721202403874372911387685074587413014585403821239825241379706728608323288728739216910488228217422370268224152035063220989224705737154930027289943918337676494116496139094347673619149625434763931091529109862438595129224638621189325006548791341168782811960639454350954520389982435568977645749637643035255381713344409486259145310401865746375117829956511036221401852650418818350645802396946883061888486906194527291919051402028586263696334536563984367524866652604113790757384949133701883037802810241501531722656261400842335066261527445523074007245578425583722632826579564326092383514494022672670171221810978400494467292131521193721094982415337364496280291756691914822431718219282217514228467973970869936843330347326357002680182411546454613491355911001836378026175175688058802215864419848281176532981128946482179908835626861221309047928415129954425115239196291550810065322458779723622912155249289601087270770018847086293597536199020248689351670615716832618966157795463782856067874628236816273642030537949431445457524114868698372965539399139751631066658556405416689592625111494468451872000970346038385511581092518776149857891523898082720791857832284277619131964834906517172392964428790194338287922446912023131392948276175618155917560208967774278072770111104056881937246983319314727921350966641912546452036763604088546571524753794747248086448736976179954880537982778573756336406169812354042485884694264463491988467502608467501690286517571679120000964506905976240922109601434453324513998813517464406986504912751431061886515935512972802361819003522726400375017198249388651410705780438510448575925575640550329121622328856305062600765382584331886963894116458435370355823258869451747286983384981342322610014508299578239079302949630639575050491948581609945764039889668910942994812597736822340536418157721500122136502389509886077577107031381187334987924049253637455621336274262344647382387360279318199763455265293673267021705185710124724538858972137342020298273860670075874974932514288424138247257201884972011805769328584100397816238378464643332281086716187422129902683978941466423395024299734508197080063357060578454446797895743340071075546001949286776086282230904320752603327022941028357069384440600208055789554523462972532296571161800696821082114652485330654620858783375283444590600838470274752357740005326108761827660345756598139915456889049387791514464982776373717558775703192428126114065956906579812706174638102146034887295535578003397041148593548221442083818392686253277541917448991081416410778071830285160273304074610145995470839906521241346768495983061496941344497272708986366696262910545371572623747736420314643414821018475076340334555784828671814988345508568026676590001226188566514368528116066085073192275854649790197202805661502877549802391773536706419688321208636743532088016838207709488333519979534494387302938968137928852399007369093705921110111101080452652400119610855946603641665379874514700245423836621035733334897123410448871482509816792045768570162775830500150159817462872481443951032418096461926074712386448545277805465970332420618501466347714633564292271522317398004402756184710128696545328473616796850618136776455147487322197879602431658195700666113108776350969734957690490708316562946900144960906684224772315468361664310145121572804154615866567229469642402818903634530312188989094843902313405289782527238825300309111089744788789472461579158628140733708521338718961595480357913481368733913753300693400850360131561091877939894185888153987930552024139595620389847047873632506824238196255550504401970420111313844784952529888470545154772791431552996184937485863142274532847840805452825070901583434809205429005086111213470771976110115769025045214482325856874815042106634054298136128251964098603181473629402395997250613174872754872964635668039212106706066639540873771551292254728889936546235668637874147759781021817863829263155187965706736015305367169365552830779780202335825142312738015948811300701960704560250429357766993886223467917633650666917914811903744903120684759780676134400274027634089401700438662283580395609042874496116102108919354825368729673665844737448407788653818137523139805554507372704042446599019061729912969967488686118524579430383328209453874378461214326318048813533781106077768550959911446084565824312325451854659656669030560111341312361843688040444929673112531795417092569608473803966157918625618124458772395136224438369849107724788351832899234667540567174780224043685596882141872217238452448679269234486483120102088109156968568620381904218940073671602477964721413031310183323811282521061999109458345166792775761561503353868216057717301833465832480522861762087028520350510984370353561770851839741074308602018512883421770654499217568874231585404600055766073357696227116623116095308569967162790449710960292308885499452190383767800862859180400162228145365628470818890562730603465726222293986249561388706920666649468880666493510827864265381120285570316803556704937881993874714241906643823854425498249691908553747864587539188227115792264131826873618528143982871285866501260123939761289151891647481640198164675129473416753578247321196998705545888517008901116422741348468991318064903185207432537670185389151795754439029671549190260519870812708434822956192209234588167046127790953165058115490126511839843026564528140470932852157843935359762416833704084712951002040081873717245369741531069131485157318609491305097213242340005363457507162843238074768517641520490639394672143940846591669325765624497225017330557286197629705801181670853092786721406284060332629710701569701440106087420086974344738910915633430453115298396721570673320451397062590722196938797393291684021944858877425709858964098950757583977965684846657952106892339134769553923433354661565504667797585308321957299974291472583453212209202064027487910330877338013419159634759909275189969547502399902905209057515743979878998191526704456951314497864053104685118752715306628049718106040910620611325580204301639542805252862334207081644032977492086027531703847870358787721745825933296667588233301915368311615833121952414117846665516345895862330972058981758941495158833425098066272345975198374899334814975663381951905108441837146148025675676738243085758699716750232428170042745977925252871254216570005519007079853293060804883753340897061784093819605755190867934508118960797604039714013000541733043106488934660309803540091706261835715281996733996084684653993016885842296761139065259695992648568008985476257642196884536860889387924438396830027616897188010396761868963975126582755211846420162855695525583787004379966840102046111768778093549209358349340629872380785566558659986787907935564413538285407889640788940332729543042450523219315035012419332726754617078545056309521502486977499017615394158769599623280919307709974493725386127737548466926500908271200539754544848339536939766166160980166494908399138712858757884238830121009747942258842196144270651270649681067110912073662850228329200435523153904743945820702974801353631685925017734065910988101832344591080920700577357423082949346503889755464032128304480132320958867579540127020989249462492246583116805949577562045233799654688324259801341475090341556967772717413232518494502399173890694809337904957779084767039198132674915007460707969121956530309429917563700313564481585325007382444151157373031194184266493594843686212042660349995907531250790685504341093723445113888935442066069327763672520699957686249758472371347928782348718849344406342777659710237665318491293585347632725508221610627628650517846495117619918170304247041723697959869429734463248567140679029490156458871019937340449576188287934869843390439916096017971725921812195469857188291795574153515215137883862383250944358814724173229432967323460483191417216560485641820479309645836294918229667445597052375958682891186834282575897039129994791073897534177548551649653375780432894612660603609746224808337252469253040819409735221093713483762591765689057404453923229236362736620591838127273909043960995032256773274499106662271236340743277288341617437875012962559765366575334537245915085887617940480698912101405309795536032560378372763283073017967769903053817762673186332273218054525857407919041419052190764490792636845916851125398456964225213218515173776635783459397849537155330458553323825449807696886449889820097933922088877331935864858791419023408276250315132074046035864776705489874697248069526819621048703999363769613487104168417965543614172719808585485935012157856175047994947538907561484193471033210615170300621847347859865052152153725761495501308556636159427476176186992778897160410953469206550111901812758946656988528818103291865591446651646430423586687247920375090762987555760683311431107406775390191990932280961945536663144049661881762036808561333065571846936993859994438709317723462715585236990060177336769351864242416345900719674098096905475579187573747291856594404473981874006317643840951000432971963620969168705374087179954081779332434599147152262410732315397224045021718118306436486340867918581253428513322082856401958401985793034701843668998772230804883595959474095026550289401051081484874291933915739394913123274560825996411018258257352125858542449832118349262236654544220011140649638952769432393834020950909713622527503602225925199255936250072152574083979184740276232894449762495125041350605402569897234299583945002423717090575543361867009367644553242203457599050085997669520307666112684960424474549864804430694767427857321504929683721602130012080545012678744282090061586113705341963460968876344930597359408779225260361132518297537886540002606805692582345441709793371714403685029858502784037481196075975299017474416295406996665539543495328727831326984810303289319232087395881260018880706306280578204856822871335581237555732080666917577361096095467082394745663304781735193492827147893624722272281275062596647566531704380958154244636554322951494886627426425958086517649347077146049582408952747414025406274310739910661438264728909671163122695614236080333428837849955252003209252840834801712569862493873449597486710930563638853239050613484262269448665457783922817573804166046070820468170224716967994710238105082522395840497948220694622265459561624208869139352400632759436942792492412316316093201179476395136828758790958939334850484087318188487867470031835074109135779497434337637642799563490966078078507623330352134988160967761515696839258261927408120039171195604033938142754234503235049138874067891190250605180569586744043107011002046579164113851968681958908601122514005942961700031328680080300249040679515537938152035421179712878639507759478225146125549196157810731136568794454400480785849723902484150387310025760639772965498278504502864530076768614048393302196768635814514727439375652463350715336018259361663182843779771548475368430829388396217792183551437712218535273115893582786923518144294584778996723125947627381148644928007077510133868960159289106290864415827778542027230549232756120278338109194967118738420087822148282990759451899266635153796280319181807940317208880765667050533392629579931535407234672313056421232484708760249547563955650644126151108704303716930027813227274086809333385294249941842915584959639906984037960158392481936071197413949280063159989618430084164805205956829576839240773287221798326635188201991579784062410783206516371887649637478631536548091580746699742342485767124389992297906423696688266910639770372661618790194988333152764527420113813779521528549574891650030791922592664794847290698083221088365244755305607801191140365839489618394690184142491233452917621312905697968102675288426245248090586938088031041637264073458786661969352474862994607071124566677243317753635812041523923525534963148396412634382418938212818134687199804307647982230357333918982431384897741997944242194748513930714789282587434631918571246058479330706789647335436670134276990972394611327580253864201351746935454527598268330758983919658071445763583194887382600869544677237226785251288480499887178450441183967644930943383576447964826926181886357225603176209671595157103482740694080983328615016729781732810776844772392592841518235059605221351119989347522083356571110064584283486570547785530887678861840856432106720373139687296398595641229683646084380198667359918092904641654231626678502111624400991777310682650347276573918277104861430884932257841153500993662232816720591306354524273681764226977511567851945565985236194722476968617251470510374661789288323868872958269809872537888303038265645175797332114272314279131797682383084503843453587610589960094045809868082561468496829423010356980595105639954239141236638430628338915531774131718809971555102674230751826934494085655523549211865547574751858369215378056464977980167132965040302811138924616187013803428844274762281134382307834283603734833311367113550502635520292686424891807128281972389314997946474648402342865250889504279857189387133327221651695538019834096276127554995842090813257395924106621364886403867527578213535646415305779430449807333955203412180356879421357127976923081247183123385540934720925871372424980486985262565834272421728688336790814794530157369318914208174007224058946882443488923956116870165341638458084138394679278999114313372127841981820703919902082047873265961703074632360819578242688585350242443829364533515724930049220097624691423514469492822250340792187226105705527602122756703271112600872047383520521093075879088738369457002684126851396666215815982785209902022668988751925930171594166868165245129311952124093493337582716107499866172594248608933420146137169277183085861239949601148538540938563067633544165299983474905904527406569462281477507869028005200209956563627808246074047643157956377864944606265360252031885240821937734348303655123083733811035148186609060312788994036493845492545645859215480213823322143923608864682810744893447902099327307092292056377803156628494411697690270238711450888071925369129630444691554632473303025984842123547846455860217664814746218210537016597847074385218136531776435254531360001898102178190573184819351267434910241939954395548928012311737847533231443515203442593772503497112377898592971748437059362686468688117882901856988742679276073649190488183541604980320689933225867435770421640588309106278319579045099353653646348830752981917959260988721665718073156967850502902973109156589189017036484236040044336064192826644176228210621927682091413394130587155237761952578890997622280431103383168430580169481730165398750671419872333101735941587589045773722727462940670364693126752551968809873634468798836321790264777984740417628304239812644802633227960612845865264168961002122938146511853122195587462792575396305798115446456281973251964218606376405561661867114350036229422706535925958351583688826562832320806238886122720274577558431579823224012145832842474147828864325904290779754400896959496646681376064828352148594898135437557537918219886743716287969432273320673252744920436824547936173336772703836494931924972086261177140717210500184357514486129619294660096779683525410123686157670363709612931074932833706308801320651821957188457157579821600799311482594715940067205782512766331484142527050079505034565350899947385399174466941964185852724662731307549167068848170131093353995113035306426571868441640676902875016755480665542791395118847341957816903863523537457987592048987688027656702289068817909367557618626372140127383647021198522000923063121798571349881159471781810658632345907015941278758651460018715034618446796771613295681691122350306079257640949106061777017002727542465099495663019200253171072203317330370646153022280276926714313377438402935945684231524631660861037852106149161364606738451926842434864747212969797638675344602024107931137874050262913675981776957096651659387848216918042725852957641223624638403106948459271744818894568837997496922707094512629484353494428069263249343160046805494683036783370925584030127664202967559172763727851985637577773449453766570050002841450328868588486863522104347600160276951397282391920138030785639138420026605236216373190636987678389923405851915033377554872570524301684381380733607041091586991720996708249180245477149009699009444066827769693270565231665056591900581524436295847168688731707478458436934932392150217531052895513129408959044801242546268813961981092564965884780740013004381776639859462246035035049622153997895981848876747981731216161728619943307726786628478474172174953371209654473196872490214081458634611075287092688566388273328060026694322787522157131752427399265528332475978433121518044909262178773669161960254855061889265235659994341019912076339282542908766552705938261231253893495531084970324309999814416504295362245367389838418201834012072672604327556587575336503967382864111882357422113606392831609781182928141346967974985468993903147639854952650608684746749205101039252799461086183099176045904565728698561238397709399192123432497944564855943538789070318981973821111851279837590035287560552957187951658996674674485775513337909260070657940174621804096724347437570995996355837237886391327175751128394192903389254180475701693317167783342542969074025313560404704029291027109556911554449096163565989769379224289080140571846514198378302439370893020345106264020960322717764522007065379898706545268499171902044475145880177515015808206388129727485932611508407080848933244200912927667135114406556211408545819414821440024530587928822499905132418185022179255980051452852840269735036413163295645484057231316081944564589269032724548781356485216591806238563740798734534714735384822585565042824883496410908234954186781388840926419117992701648250574198876309349010037128194565936952317119925377113234826928640713773488365397600233280377020156882451311294012443109218905655697565619452671078176526184356771248829545046763674119535601301457684601895096756598494200473213557204590787546552664130121363389349107446725372663291517685429770912524672288789141711368183443416810132876503811680025538021864088977263620910964568570559802081294909131099820807063627374242082314280043018371429564547005219597011157765984650008206397580846949582808891892487397838512012525224205416643888802560669973213872423909993887983923625897949235296234008181987703496676724928471512243004971309115542268749609529804097518148785242931106579578167776822415268363046841396090759290529278893168135008608170264559785301790902545850385006295383012832361503072287537650704324124682204202224403606612262779739813772034863143381955020449926574236980237087151046829194382340469260236583175257628064779542816338331482420622196027907429836018173131840159424684494640820694216641582572566273933457101136410061866538605933868540329382912240546424151522492240624293688169861213546050998721140704083460485597066335859116936898143387170252312105697020087590240068212734585159421945858231945511420918771155542682914315611490279038744182683062045795838452777209202729390307564277641322577451098436339413309867106588287314971071687105223652934351713130821031513569614000606877114343509740424968439432555237773262607315262861580141920840997188155141515263746151510481545435802637740341577766246903023641713470816838252532598344587613045263444976548407090463952890003155686744039016775872543129038485595999172219050890187088831490685084630927437452967291896585257827989142061765089082345271028413481444714213658539514104939108259462584719680040212140496004692279681193847884133083317311664378269511707529188056214799571849502432778434571694660703095820254478997363074471055664331837713658321301923020955111637488933302047044322742925369761585001510632493849945801243131401735402852166164959905685694312728990699378970010643549871695630644252910342418576127966807443719219442652944650754913521723370760383435110824069375118873912933567483184908875011453508407219317311197978825658999827128768246110980630246789886132577950491560457792918014093934924174649417188779131596137632836201169741011087235280207766320299315393099343238177462353094068873612946632851885190395904446461460021961092898509418554034378125881021652430032382177643174151309716145523421944530966719921604558997775094215007024567462623145278202482845892896301036094892766337361957655289980092789029428043531215138403439757878038020392355516946579741746337905650622944832668252091225620386054068535799597850708370093003276773745908793480147270909815080596066507375318049309848649666605673719995981733052085793793671492505272679637861600249125455307633075093669283166196057055765812850415792036704780294741530872213528157910827528051594469278340769107356319545994432505102714104323077551104977492671837296533381993821532913459602082103999223973627123030627970454368016752081316791770791673455072623832165553176280756208849567985672253938606941613357325491774843327127623457901596292880075465273943177611358170968704990108212894480322017305016833698492068054007266338615961137364672297705049274034204956073690635507876410670343728170349617825982010640814412630789122557866702122919516269828878990036046037660116490252949975886105280283662236345357629343360353837731304977565621471169165822803545144630254846546545305129966313533444971176547158743258115102257232238275307407456797588335024872938580881037353020419903867095563895794420811036419148888483442473814987394383229035939331112393295381315046263678481921936916307486889678774927624578602150393779216128497045827616868688355346094589608115380380783868216929205483030982129639983875609580428548727414911041623292023001012806328529053836084882906936992238076899998034521687084364792189161249744686395068566883203173915501032629864123721999382284345674791376140616693771119167679442331612584267704169768432848693575291403846241091446441384004685098983593906387292865442726522771082650425542910224751229269244951497930197356436860946349465432475654764289118446921422988526712059608314768817692253006700491612799534410642828702520188100315237484345440124413618651195837115689384559689976054912014198206968845836670209380200813399177674902645232495302291877001577217802207310794249761624764448467161409639440186846692228283272499844514370092364550886382552995550898231274093357907687265594703319204965347531062143233144829052685976845135898561012635483262470047736360905425792135988547502243856800729169742915009686552031312103894357417285658363782771312413414944501335085658290361732419502185806267559422078678595841540807309507524722458053454262005803756124150281480868542167020589908761809450692292078332953676218309311226291472579383612010407010358459132018592369238455820211835290598569267819690986309037237744088657123786192632182424848801058756188074169907954673883267979647447828010629342665798133129319717098171721694524496996475201217025993875608631160475758985909922300945485438191049433468628330125441291508874452995197425979779660025803050376337583015388864917815973474336694241382371821144292568192143774536343817276197775425371422360266876155456151146499868038664081266454079125345467268867809317120481191138669624925025671698034700759392249415132743697452862115963710989756114869796497993560061301297150581171382006294598662927231506903927060546347524200820849205055332399365442085079879053028575608227990892264360848623797659385253346793404173523192582963910368461720309190513184478341573772428147939572024874468153466179813359522061729736163761270360290844420146838856165921313054968079840171453608468271394632670953054375758651835240903436080004374231567447716908114526905503498725262233893035742324256011660847619380439101078382693223419446929789830275887861293348121943641406919269400522546102089552276267580432434403426610789830804330409921901151371793225694495994784862875697079848244752715257777201675792272942630629539587471476236596617121066175370239609158513140885554326982408327289730083351614697203103999507023207901171969525289927435859720007653551411571098240787626072438104829514050987898144446799168322101691157991081104014408754757776155958229075224873990242001098893760157082576810333242905289151305227855170225127875325275795916779341300865787575511797993295388951198434104893730482118144640978155434862916147459383414280403708710778023726720330047094221741992378718630015773841549424212563016930658565802051382297757147276316187537649358314054759056715304570056396733382176524763226566618944388254701110183173452012809131367679249123084881676218878349498411367511845246288322945547339552538801411976589526374904139382748140838508837286922816965642866238545646809048280410817443325605086717523662906276455258024703080292671088756574420791899238477866095378002940378489100793286112629163258955949570358547961911172832498812679191766785580126170742731146958225529152451762870309807539254850905966594068525050413225203799813711243749385742821272955575202825419056826691477567661157891058426548523311204604387079835108603898381267321652453145913799928569745016186152024274171684724494404152668027055361481894969425117996585921144275217567879150660149478029185190273094241666412475205483151077162068930000964519670115993862009192233338157860536140143884964040710639763875971534452820254737551767819975659250355276827491444163080642210852940394626439823969826630607198835753749845833249489288351663827919650233129871417618524207657991339496223996389365891391227145985625709882627750953396145709876058738985508784265555266534811001874605720299189872613757515339722935542957786221001617827920358533420014802904527515934202887506484409184503890436318816924797302380897571800159565039670092936226355212456297533289370217082616218563531900748596591908082871536322193743474695863948388672011596945396414728208418133425817400075530883985458874787122543310051287093419642698894254674151917158767860897723554200039819479106822634214855231829410019142663926495515419602466167678443491267324659570472007792733804805743785036863753951018668050284054814993120612223103367394750071449836087875508482179648450706669394685842605871148956718708461459645598722050845293561909711948335619222287891987559850491581304723150783990773675737904735347643489549688267245373407240437275731529592678121741584829813596848642298823502915497294329917364984051170379901934896994829832148019322303218466494253823749025047687371048142220507774460257961394641331064581960213583727967959687285880645679491658831895401296124232453152774571360862895431112204120554034878259443230454340855354065708209955819644632592856412099488797568017993143626276955678814055021981893880647787583162022134044497521032147472911194338033545392476432603000272817035983446317589711578335643584492144962302007229036791265410523784427123683271353124481152016587448252440278203326360905661831861798575169678764551496395246011551641941924141855435259003362620939853768690181603352918895457719512896800733703135440889077572175030646290834577868730502239565996615545258593919352529078552367024228325866114487868511092197362463045119716440066031348722006261868061825536381252044992406685952754019696869471048377066034797121923583852891157051190759207532241971794089987813206904378882797134117305019731592445031243317285053615696226570406145181221652869567898757631184008116041240357879633929042412092973790492065747642807782911532487370509543204929664120518813841563773617844644743106756845926407989756086137073553935125775676735024200282077735720685539165110931112055537590573017658454124979760570368703787302092473992546176718815371769553569487491959328862284784115787006252316617867597133194502327185230150877774497232056007192068028292555697433208339794345894746979595493865246576268137475149102500468739265229544448349819987380858177844122044828171155587608228728409444925352647529481976042698402731094881167227812466195076004402779814298256279911850604304861331778568794792545979625604315652119662947551001017809972008537920643949013247551838609296227081178099949728743398668243764935813502270176320656146132349611605890151189482619820694395717458923348963164837032765151654557606026782070635578996577197981916270625348358815060480123143018215976439874273647972894897716456001565121645455986447109964793682652068047402622935502451682039134958355011650229356702756092019091802661755744051476189242202191771842787676179639129228980909263177744785979789832087496469677434280530430973889828629448072909423076540391946485673881110705517875849535851859254567760509928987021832590790948419613735358462916624017272359627832931722275861011828318994370667651611918722769761222160193330948425521542213495610334596696580294948437304121204003291668326744730025829419159504386544848247178324211119852408838764557232153908040594221575180960412254349723869811344524202020939047774570108916977630192244276760463009011826580797917063900620354377468000943018754290576898460362946314726546963693779341672330470325097167860312576326873442703533979035354465375837388006084005523181193545108606963644376314846010907875400081552798963012355181872338621599465463978131154692253892061184802176492244465265911686089358734550571263776595886145817520967506120181644815539032301821364921498271517037716038952713243917000202594754820415402561491815922595252526036263685350241134401169440099190298800392810428509337048115980079111838535511180275204737074199243650841328728805053889301834094154916728993088607508997468338162449969009607575220943271605521831258706803010981136906505574204316843905109031151367786091216216815794831330431981415936521478520743017528847776415266305114327115940679072659235101454309539938363448382574143504091509275364944384441846351161932978112095324293340747129199317056160807325521721790930013101958031706155955773046251747498407553980328205157951114475508791178928643721042052982380974171753047128880019583737608597344602779656517785731069738022927566263120504965913773948470059691767100002628739339611296705688524689423116993863646364672722601727697651134973974340883179880778808415823232785465781164756713243583079528630252976484476688138176055635888723224263273781964855945184638811192493840549433797310717082036218016848217650157040135758857984156506291520577269317316128312877198896234356083322578289776287215479932869326619750810398580007672293814608188958093029381646223851752494254140209872136848970906260380893163311706843285248380341601256291750503587897210350294051690075572137168261623044520570184148179582070736994723007483130889389890720199077426241879770865187802989594878538968636764354511746339700649039961936280216018654374689035726097062439965720344396587568364385281203474088859873477903420129181517060756865504309039015766777056269726613559118034514452761530203003430761068643572187178394875163466874940183843880544059775038232277729533820911225867498202813716717728085519348019418423398331089677971759229530205181821488531356724377190871091060266635159694701565268264137869073463483281920446223673733957081366827407014056293396810283253756029439597927135187833350716288261108757692247402369105162588817479505564218946563334301465674552725341256441871482025244606719597822577737482953374034826604473545904322355803596142643695350825831201089383987966788825891299752420558481679672865048906551011861048872571552754022750657679840814044361797920017499225667489207021148701872982792714380680797552610648845886636625948736490041673710319564678427219643158417795994480174213951485248762090567461046155728088084928904750771929245101532988979035717200583129716985991170265042994363712221504405798537378670195737878138571481607119400983974514338287126270764047777591971936210986808717910226483847042489447467761159598925592636479539110187743396608603492157413195632167855246224779303279322066526715966879476181651444752616344849074152715039369895320726853127280494398944561240879745970193327532483694162199785302483301374256904567403287613533946031021261515808653495418597596216407337228324533850380078711237086715648231535804830116435903761895802876790011212632538792436655593808105871677825195249485953825145014575136188662559815401732421759567033740752909556144997412470349049702508882673675998192104489807077706325569275627445618697032358387005006107710760598860325313456958538505406949441604625809955063711730277993288745847324016329003355937083830435324561154302488317804839707538265294085208457554457638366124978818359827040346035173883610508799376003899516027149427425555848340938586962876061366161338748655509301207004881126445513255313854699445703309808118502387634408153236373198939131984607474989831252924504545680757843369973161881102165658221541653705234662132315276372579964218658355710597803973050138878739315525707376887288629046544471425609575649129996201736159507912816160088419933586851547385469032116856948646513963809513793833156536413192056929434760084645449787057534410049851560742703999821576420903302744405603146971632501241355567568053650564464979704369230078978966164362614675677960858976076518125508533493082112348396302550638010827478291500342068408821454283100287917423503744650553463365004568381675239058140108877234310056777280235870804250418891964227605240235437617205365460770663280002448443077095904677988511066464553872477099583594105703223400120816731872353079939956972045217687721840942060209409252751679462004110832598004674756211811863089954700056534319413250248545939649694605785066762647520090334602997257741774600816234121852888551220764587875076389246518257103876931521314660893070093256619258366019775354921922291019921219221622838426738345597067528541909322029216191092307354326880299765150481880666149460731879303314576517365116596580469543100064071495712812744160960612526465476012778012251327554575722525088389589811786796187651236233785809003755315281413851118699683278019051291832028321743662106786116960704428078616044013763484491835504453908641145291821540345641286920419098281177848985913555067998503459125305926265948266239355390962786133052784848746262135753661599049827201183589310481494407513435873877356467372462807763441211549608644158972541527829055967332208845766179984179243627490878416446214707742626832218350848262280436679508817260069070674083441164599422551393575829229377236147396627907412509574591762177667665720777429750812277992253943567713800449112315204600215480325675165611739295788599489318021392915569107974141032162457667836970064094928654975415228408182112381231379064276499696322717346475056829152773650110133067270603911261550783606039456047489601061512509220074162724759722619312145872253913577778504606924218201133205715720930760678572603465348252092217539348483524421814843395490875289358097963696743454992248332518329460639104811742934230084568934372334981899612792673779785174048064280415298983176971962492272335481904284939103192417606193041651780540514448006773492103341989607086386731354011914655720278772922660770953956999301401312866598075404505324778452512756479040532901278707224810573255576933059739962010623386347816070500369051488307515302013443089590499687055227920972220641545070184684422296554253436242063596600046738838458757897899289213318431171028879738447136523513291927504336837314277176876062212295852983723298348120698739043044785437410490343108302621077632900076607504107789282214694872707447682639880371839610587412990957127055408074495432206168954592549899579493783267222647739023136322627770272124537641140832627237103461854508847638494669175741130366305051415024386477182451702920606791052312673022843509175356362442666695067570362730746765872875918800796433363231239905173197563162482119124817149477531245140541525868849770082451721863260600407074582720426555375017333313444280484304051161214671184362351981943901162275756760066476462886105097201900518103789451553601466926044401057871474427751691128629970422404072809604627529367204844751676681645857255448225843962262926320735343363788841362098029014521433894253614245618046952906939005762588931646757328764508794820646386575512436836793694326586685956002128993614795847564209406169566822263549921203232416933028755511920786490889493685313751409868046058371731609223256479264468146700943917679176339093136562707319117531986827807369652874092863977139027742750405342808196330180387247241412401619342661771706401721992496195303862968149061255358073502391949590331807748231832938102695617028037471862665178280201266591195844760575302928267904568209935632759631220001754840809910865205407462203129348294298421925434995069871600469181871378064475327459014900894354558280324168005502091939366337151998547411206579378935472233075843309353173661041223099265353075396523833721753557388970442413802623977701447589641212506140786835230322041339132960065512348005890525579580885685102147850798767214071043410819279469336791710549971649799763252539096111867284249589316498041525716770377562369037859338743144827541542968738425177148938896077697517438302807975628375574360370279656758234091164941801958958372710224783883151013241202548868507848666377291172387262364878371148830707802185028427116495125965825024329541897034069190875849859218364639590753167107642942655230796002757655714861612178902640603473378007324157753805021757452015013410975842586100776260242959367690619454709015171646474852495061326772900711166979936494409937719422178165981060986580998882220461737309683798314377675818723944360079318449717142696327425394275089276162841567477880821082466151441645722792182352794330837820280050178083833903076311410145187753318671432696433754474156619480212340315295338088113460845356782805346905343119738685868698052017685393745545435423907113265213179099189009043630309079932443823435790051418796599072062774921991263451869875787790806757002411301820638751731193323979530760977266172661377071212794460308034155606641085030243585043464835875703801904176399900593748023537741600768192683703931548449757948712324416386928647521284209745990409301938236847491927651851771685899619041288772963745060800040181295694960856225745364989271142676392274794595692907879239977564849895431516772372754657308454230869887531928420453446387303656766680077020338433400769206015267742619478561464477859660561374657805474984987489878287659788655320202764103473147236119281294438965773788605001310494455532306692739274992317504683710461579498938793996933413720802042413942279581246451783654508322098901473984176757981088225813839144053403100501694115459422787811247016125380648623791802860305385810498351905504250457202933706964627816958808995718361187931660435541259626058623315161184324180746093903510262110715047752946805096969954226827936877457063166876660408012395567062476771769642094701256588530917198727497578974520226885686015738950180995952534674684425730981702924161799653377897089630807145565070199494441053641470884004460327056273978133163185136077453649317549885556319644122680779442998979120603526096796895437852042779241707990784686045525008193996527011498723056995947305643789694032785931609616265943008212904986173030507919055752137335836773004680508233809839193812957658044110836874587172724552905704649008182786427737266366970780171372854520377280943048504552464993553089316795280872727386649453167985293390918864735104974199432496972127334306383798763277774113143697610120325264811308347322558706662954655834724324728037292981488581759333671982959111622083157818375266781167642147311579449747799845079511467040539592238437368357059505271884914232157933046608902699774273159127071885322288722075097016478629563738974055323677439616686070151227517485492639535859814186253974698061539736451614906554986398227853362046327099671830488505264984588401599004395169724949490790535043830527762720158289847027752257625236927003090872940561797614020185967179452263948699573042661348695070283554944027987229686593864322225106246533811251396564745574848239375361871739390852323844404195644353796432490790445690334479637301498239566538540742685640695357133522519007513302786310957836523982033137848504437067135447218851758939574561585911776181320586889582632857589676995207364782805443245453517552722407571242180827600229740017269113445108657188898357541104565322849866999540499056270757654134550299233797394332053383191306275943232393810365106113518357764746430203950589055293318285936001111450559387755847047851824962911702584504072927087279878677423566877677385402852468105231153851830308247448873611651964276174100295032295970276871110683283463205717136291207926942017630524760588967312781809222033165373899703849775669093387186664713999072556084227147219934447756920948982860703984659884212323770135387327138046662655750840975844921297393215756252435992888309263959494627801365912189878278747176347252161085994246109702815649704597430728533505279562790884679369572581073594677096077015220289971833486402893290874420448854215846609049934421595414889763522732960788014155343072426421690452435338707343938964599047587617102021821506505350674032336495525156619574803488034403385561576036398592492223307343448343015856772544509753369090429515318852068822084282784976219173241848003513638336679321860001749459199816098476935790829383251397774334936349976957121787541267754940518651136793089157727909165029950894596825487303599174043493738975651661942920499080084597489264933376850991822766219527883957204829788319674131633787261480904590960878589041797072676070199692973894291381410982463385870770760734394065928969182113431290301295879682067239363118068832187101645247969001096034047541179844292053276898377699084588731226239709448991106870372736258038236566450546711485598284465438790586271954775843824367537807954449252158999465305937464370680610557253459024151040802001855298573963411550603048675879804975250455615445037745524183659008219431608929639055828184112476724187414902124722392665878545968571263473658408450566677423149297913152419932543115800556564307488320534427606201110405985830832610973802844911768695820581646484697371536487640716560950525144712416228399723950104980523044659408220126379029531403405189351401141046043355675884420976557717785939019580380936624110807970999545209545882047569565928797075383027395634214383857314994334179358290214428786584641488632082187727439313033767756773903404223650261946165230177524266870639903141636149242058288680286490948191186544160576567794833504377007815393236054337180981345145562900825316179734723597930247355989771459602498307515875298770962967407641810618834748630271599848421691415389294871731422898162873255573954563949913853161113127016363179516599502173386364344389660176381168244481759300124738462213759309117104018198798521315555617150253003519402804680437645775486725200833264992302448501549971828180434159378160218554785052705855955276551102467907863407706540951785764167088659584165601198058598836944453114112854992081340505345464190935993094756245492043489643254298921023776737892871929196808418901362499455207263890530691358610485268718053270727642628509546107018927703615155024824225102860183351756763085224674031374214450779893259779776086993966923351659572730010148584517332065716537830166328004001170530209546626377540543544567795070920920369339759667053811573098292148127875942381137733040781689752367558146407691062675775654357808351455645126865554682967746108035845233449386386402111556080909465796577309623945287944886706128783491561587956267353857254485380700102491601190740435995562669392050815423289982926792372673220479828688340917110691493339519943953072553644507927593540379793324096910193372024008616011566194302677821845208837055872274683255965828497876533433965943776638179448394511360910415559911202361080954863165711589157794945649937019140227086954128458072820183583139016639882407909501734386679306825666113825859691127704900325670074441194630066449916968113249572430050234285233018878730792730066526171920211816392086605885827190456945774188559090157357708535237348627350740093146818651596094525187550990895879659126997842660279808949948143075849819767341639088691670834351732849401713870557030870584760497956607074136795484703270103060241184627706570019204147040216556788912627442096881849966585258795971815791812659756344213074591695790454269304797747024919882120354033180645705054971766834650237936794116310433978444836132742649857865313496888903147026143616766178349828575263607407174027928435674926860960644926340374388358439086923246555817995908788307430035249202858424129061859978302284162346736434990421931552416421457522325382529073238244413584310835465861749401164873048400233078336792071774423779261184855928897187138112945950907108133406392846526430899480834238332454220400079016754511771054861903604063210281480954188008708135634287042465599780503450265017557807073946749673183445533211358214084341831105901258689700256376652663032191686223082734457072622468454831929225531676854901685697322088736594219105428316999319827483187150185015120580291977200263302188642150944512412885282713571811724659874582084860513703187108183140351327766223866797402404226170522183944307005715188456618839731442891710596391168190232603791571883881016322805545934811160527957023981092588724813191174993142876305714889733775502215491215855991382055199303812989455056423404137048815073869131342426823294778180402748148059471700675206993077783565242843099788316187729662488463479325387918340134411474394417211349700512123949831616263896193784626059957993513888661534906157521134140472392598860872439653250843433983339915105666425664406131236484229536448312162557169914812583175668425906370199688094751622241451817303127469706431341830362739518978139043257213534537534235623747432096819033803278942244235065927794768792888842529320656828289717138192966074188436592742022429366393439678086533613759361491229495505154491617810622382108580641377235041003398838866643825552259727074266529258452798578211070277045901318258298647630046719808101688126513509245885586718609864120812360936580149118640060098005115066889428904740533826112657040765923022137620098641953937528901318160192326017004405465662464896813250014432671172982317031058399976636587131019735995515427608549004884557997068432769487542314344349801699456019899754534424387997035957826094335640989207742681797932006778121915129908180800360300539732046890840565786718092052082300807895820416579631842342101781957210486683692726014051805847707818814077714507958248777885064842429835266270318998826447399947249929464404208042749810643364192900010562598118688861541060666316192368294149072951757644142827113896467398020492218397466978478089253213025233553215327163619166059890505141834876326793278896004236444815786021449122572798754757888803776605780607603931846825977273793487799314900911746678224250764576204403072395852844143659656463340345939912963416966047336652802921999464368983889648702738906578106539663063751428367763944335954675329028074712051421555146111814620713707997933156176724137995318178255910813466714624197063181562713883474282779811460814909913716441324430582342636908283676235234640699229729568770734197427011645107681850026485199016996790213203218993491563885381410608055936274482055225599776549698840448723277230689313915182572038370943972461265292334100633246410750988059062934638857373859327298338591873906570014709689957153350934359065489017672663664187677273719968189201423734874031214521708397598776573483742422833637498730433220044666036611721059455420021994964953801076469283591341167215675139773345977713317041002973323647108866536083610884045172156744252089332328296578882442544122908440272764748091258051695026458862339133962400358977720747500579820982394095466708391242377901634450031106911982228532999574578479967238647133462921863642671631918371743923578671815723314947438747806075246077535495598139001144099715566208959847232208247548218097136683687269066424631710289479515551978345259997595747868732738668280464254493458689563511565605766114469049020427079715401329720223982005491446660665535755893976897212210296393053851503839365026934873645486153037468872794519385608963352301680073233080809471833564534621241065464427318993419150349835461475495980013043108831273588510538137456947099603181802565476478620672576520701119116385465799830539232456526858812064808489830088366990317580493613050718773529658523881597076883442244332569759912966558418030169695052994653995336479233291827382109616843721191108696268813976964272141997284477013997795446572557380609260013336974841277027455719022143936875465198241183554234735098653609228968312474928302697070917303626372346073100090826727333297863440875563522176907062842654164586305746342676750753979762717745576771187696072577263926782268470329516532114933510314499258866957960220182778688539794057438271980967883523536734108632051780047997611933281124300101984987672361484971434446688869000896457111008067158774179253841580084651350106947907852321872543273207914712096596519052747756421853015626315328515730457470993943255450378463691615198994356168331938576840339340789542044648040243843186565139883015834220842420864966415158983617786073052134865358023549736778782272022098580138073650929426547681590417783424431879771759220000538128591255718380740721445644443165757181822390065913548677303769217548592750827466416248016456682234058968544370861343537617612752900555110414545882877810286558252567732470550859606195708966408649978768196058128117137555521349282033702516486872960318236693300434918399193122039126265031418741115150998903708187479032457327306219328361396494135225723232644505316087341145491757203230899350461895784092720687978959965683689884948712785843749666967693765909955924778952820599972530812432511080839885665884240444876368577166658116795318575689424800529489625988411286996959051907511332316079888442869924159744437606484499166585950693999622868284276032896219273113894346248888470677645844881341720942079575459063156830614396814728872196433786538536030945891113811241370351260848240861388243555063269408269902036886513012002783338012117047219163481923420122110427260147955866005077282370261079076324492691655590601183937368752845554334174692466018281422822682289974371611432708789464410039021169112251899131204427069049054689903716330178094321925173633274625276751654248532188497727595055367979701750689198834672353448527499713676656447272905394345949058962553678652377936890534968260536018561226888344379895036818748440942802677734661377594206861497069090819538395091528812678034281556007647404706542749740030031526795282318467330215386978710806274783152142669736845816635104457780043363831301454824134106059793410948279849771000764404065726605852102517989326445491460610582709804752405447102980878861387906975651693352285447642134254576219308682511158062101423167690710821173526108253550790330689726835748590164503978834845704772403528500878271935334701843607530924136620494552176643961686061849371355260573386674672966054406948054988714535883730398854950058759818468602539355631523498500856223689508125469899328980443500731438047559175513647978131616046900918174445267731755882296356832454400026101676298302392095284060856788891178498841149490304209545974751462150171751568032865414405693711735391666048193686132118527691643161742113030884257101126480608098817393228717769261921502560142883661063032578946558151924415975810020877293831219889949164371824200920551845686263732011364559730720423791586814788815732058771727249028465536830958280160823225323392767176338636084007351062883871727752681828892117802650767577650280420520165232398662023538804281438634591136960576332598109758997179414234142429368677070665843796294530405658932688521139233617431342940107426940971282904960222245636727901993087286964709338331960495109909195344733836328087650300282863891318171158677366794740863362429013981664203891526111157567322178558187773489278710686049943583842190955690256125994896336041982792718123665058437972428351780560303270304451672791272984968481209323985729548824457783391589960338224110658264202527691181670679772723281520112181138649074218321303308658458835388011122899920996069245691474881003633935198706250013720484904586754663082733641639453049225171240577058504099682333280967324646526664711199957686843483297353995222616080287168572144686657434939892969748695214247708061822082702381186208922519637973260587615993810278634463296603372342303751973628980306306818031988029720680452689669165775804409230326802609756557100872993523501331096906472374467019205164575372424025669627776192828307214924340087231346860050837460671192348912401419156958150934392775550102240054855612333095667245347692893173302850311781212638127551950050257266312483676466475162957748075612494359093719040604513881398243904430623365992407028643857258236709557653950009246235864927262467655157162505773064865119091029952222225063103821375358272511545373086917118258618627383403902941780380546648610183764123806758011804993558076141957412437887538696146846250971642545658687454365580707692163882827342213504760195174431780418066178387558993971793659707564559031025766352576900585651531206201533885656285815971087812821588834162961845350810396243583394811115444767186404082901391119036973985424006621993179505110848587224125543194740158131954006366339835771698907244932076016284243673317085164420222138016734663058051313153078243300093044624665046355467101656562076781627192853446147533670784366373419069743863545510296847348235880560262719630835019311710272106987036931509266105904790912587549053232252831509141325902020847712987073088814071990354762597160915106790760585732944682828056262546892940498242832436108853692031430036010257445944682997573031833269670751973820292890882318825474647023349805735760417996088266065746443286025392069952408921225090821420754827610748588050515597727888974717006925021997954179623118126941466741991834450313825885192263158769716881369599943680705350186813939000230609126133900654678830357264027865549930742840981647167851108943484353843489417409701653153569886181109730953221459035649993771292614734530335533401743309481433784423955677610778652797547429965960593239832108926857616099485334251116616997068607283088246868797868692086238060294012095554102670140447922665119898327168142925655607764559265069236606221388827000543591506124657435058873562683358950741930537136444311993020688422579658834613005360963192511481476717630955721458700751359496761196379165339212881852008952240061893712377715626784655684068913137639216181452352876147236504868299233079086653272734824570150166082779345406043758826981420309573422515785133831583982368675135184742301209686847796146958803105608242539701507701274294572590168336363513106837773003934283458448937218956793786914315174192077162512704958208390104321088262333990973202743328013029370186343472643048802046973114656778920288503096593514405660331304267613384279917820440229233057581074399960032102960703996401373324038603499030678310414159164534999903216642599941367592402760048361588143154837670451447638139056120180748066605805171613122812841834155817007558572184124506757163523833971727478789091890492378340074639170251305118687150244425781421703926672874281046068770135260653864655792522818619301211847507692822898224931494188529100614365023817508451374477076981671312370788612881328004013107349485948123985168501157824646676530597857340229901451225249052028074545176098722123373986926931793300841208428087559783961782127910200883581861890812646285164000477753636058416969344024397785064488372304709786945741839845452239045276392247008042619776279272442529409982402276617537413197895946655065478085542902293465274063033454711501888699614743009374308216875433570078449903019047514743252753835217569514676026255372985831905860898912711273146627036169571911574894125825028232960065015508873677894828575912277686621836222571651440253764986405793756114664446887268501015683693767936534023347663470168239757818733027155393451895566464534025101433106766909067685219728596534703832175145093011711234647883721793557582380877679743982783088355791111320293486092413970638923948525623503318993743692254658492934998495296509870887177466278956117721389805704872328318896581601603060302931553968066601863889246205402673559888213741959922538822638591615607700550450074118455769042224194554393710310662756154185795524584321548821782446092243502052632325413586521896900322585769410790607397861106572771439622914626334868125362832344831990902380895793387476501591115563909473604388023247800943019287842463891023670876840859888335898512824471868673520609246616498526050850091805554489040811159734894665882427610948615031571728467984720785554652908765334102595766153571961881263489533381873078298419785710196166682398355614140100146096191315178089274271289073934111688979567042535193482042784439115497325420802153169122504555332469449562488422063350795442769928499011318261964152617460549080975102558203858538786667866683876665325611779319275127998424654434608290006431173095338019727438980005217317448186540122582506598070918741578321683697826600839444648635318432270531165513044840354210730168582897755100591979069505262231736276663802864529315188843798829104302327685818183166319173840158975623218974185286342559190349253984497810675290069952547454966524270816809878846783433911692709749830795895145459099768399518366844503705414659049511857719528664050313164017262566622153222372661759592818155167837572140275321902060238193058790322183780372904617424017283218735710902240913090579911519542403276979339340883081870004034371812309365934236620907952593884914321742973938293185665368261418048852720051914600139862547196901389398744773175537390576462823283697728416689748300473577217965982366947535634991908233180558210373267248446159177487426206165721807794871155729458055352903074591740981399030325281282329845381700348465031592088379008666817929805763501106023376262892071266634097544171570656094696454506666842082573406226048750286732731234973020152839951503216208607268276966103541774519964063779218358786931301840885951408450535223679861908982055637374985063737834460761254313572662860552119330559934518872573745357486671763321108720853090649869387544005964974344925458182963168346498985665953211296286338586562924050457816650115799898984471838532280188638294692674649385251604646028774918651934885912107976120284458803311177345986739425463852149438753299845194786720693337043328014397902058966553104232607403802708906753399567467645305416464843227838532786418355585600468413786222137412837073132963163043334821150578524954447153197032963295526647194724322116184040814612822723930680856103153421402224392708273792460538945994416089809892607069147412146869585357938864640737975982095161243286992659147533268102395203570325821806980383826282499009130084020737369724865039743182406657222262805745246553565694241272156432115181997662631599369806122093273497893188430873985485280755166154922058475708788494593226840189969285201288003976793840327066428206649806685694988386103340829984109578680952659873674660582514091233768122952848694150788170425732714569611564077241358428768981625742969252165822709149375616731670215287947618280889333016839336696025780800606277458358612286572787595823755654988893819751703619693479427677536335185593388003772551060463175166626496524487141186292616628279831091252865593877452556112071496828831097332244191115235788737257002208250094956453285825007671481058051870616588031253458040008497512472831691482111507276094004431422891280055911334408956590693808252986048035335421256426109582496283737994100466376347987197332240300738829647887524054726440555412487373593035304496145660992394641522746713888695857238612474465270888652146986554545424695784533051040798540523200460074238807155976708221506394907181634797800564448091402419332274209415240674531757030277927681711664626890957340517634249753405949594434250232963445041524269972517111818291968158070749391643179951406790989796397409128489693545626111501806859611727190021915500490742921639821871939182498790675986229792207546251789608777708309772309267957774436872197133949648352880387240099911746955997753595040171431795526371538059088818459511757007645298835319842328714197497494321584454429295949459712370188021494792509458321493788474651201775149260638740653328585309281294432746240213668174100526693211313528736802221287189054309063074448939962381039963116143101380091686943135817625814857667354555950780253431026649770195108000295066810197426699482865893870376372453148918139900129372950856795054043569549956596045468659854358664511276740541625604054158386839348821167283119741303493069127709824213213864463500280008889295957325632211693104540451445776630612912120726301108810510277008399601857499392666652867576100106232056650711768307413609473964452988683849283306009938981872214534123713696608949969097380279544075075025672952865446857159879087498628599326080033159261704729908936402940072006833061637218696811341766011513908827570959179139708730591800956823376928857703629454632381658166909656711881219144596826363414159492554791504105416453017323413911391276276180463832674700063668553939595274391705006468344073440299436018419923430455952604982527829535784247702552356630904399829209643200037025105922562888223106975656828364332722486464184924088809829688834350039608601206203799430829412057259274248182464432796874628429461809826213079980501005778429995861694272736712765085751899294147570188902768304277514366587480883023983794363041128073460344217747343806256579427214366432708060956204002776513224945513874298279324385189900223105151527063355742392929293897419681417120811804542600940122276739552799051806213750970170184412309921805892873763339914334285245403616768459677794561574983753564584881188356536975903569143530588782991730814603683761073011868345022280104153761056171286745050265007741199307133813577040838360115327714437136853760100578627205979905129093425997991584465418911162910947863237284520474285708282615445495640746885944869737090322583830613347106088880880119008020333998684483833061323745879794951359058868187160875588279705466647971194064187354480699800996740750733173297462606558525791376532159217228157748288309896707478862969167000464071648547677866206945409047835100270260787123748991577936273060832079956735193923324152782168881863231798987918583016547013416190521672943137258325633650839709755506014206279420224761384307925060401625651568098320654043187967324263396413886590292764885783147128698764449493740217313701497424315816003602372225068506608974460489309868689338884523451662979629486541162609101174578854305660867968880895452397860150447270579984585043958855459085186061918562301380312792418828116617099182113186911068006691913101069465650955531816606551555767966841380296404579922277846904789504755188357414705072527265980283206278915888849729725076142891560609579674967160091135292881268296407431557700641299568892517812565864506477030816006593009526947993011342727762883286187648553266579224117309021555568973267750202423019977260428251105911671854166793737745093612873182687851728759182950604959233087134978193692278930651487624540315788441678827026828705580068257388133426965621437971399977878115347330358836295953424319571989851338448050660869812172930590909532080199498450545797839249593229226469035525093041097850411686375345473484824496715169312606268280945662900024263803164368452474595598048060091760084026001480311087144013287765815863592844040305373357784745345902040170873318339620958082483350162788292257848563103830319786168664916757172239481801275967101230052051415409370389120080684198091444981991201271437327116526215581246306717830826224129128889462871120816774041585652524639666871980608214570943155830827779831776481318750869818318703226954634873726224194694929079438890235486567182703410830388269315549218552147395066630123995921105369608444299723495464512586335996370228400874257024506687274301440940174577034350886009640006039562747619912664725282686503258007167895538449104086849253255093700539835380750582890182917499510560944087793636961796265506476737267153664174664562431382917291451460659580216758075905504483714594418295088696348821023375270248002929927423173416354549888804931328600302400312376334482456956874681835413494795935789974441890110258994935359986475561486970394772801719423128190199963072147533980138754011503213150171242832972966975877478077163507455068687759288248093492961544675914055513512262355935853816777553598833652458698344252315787633665230618192324447056095146915928686353676834170915249123796564131944359956111826252406613631589663962013532754025662055719702689500888396703211236259725658413537591896098379359278828478872105216417953760838905409333357346762652945295895665017063502426007678220679172417499918583815803095897716341861726333671799159636439278738064815871000156484728921120836325491613576748303915189555407308863652703238192800806075198130060507918096892985541674825705723950670160107296226782091114054753389126223522474274364554831257387462917143506537099778921751532367088872805786482055550392486105220132197453180794717453478477237462040786909807816523476921722981092151147240348005392336646046947062041474279248915430508725571624624629418279750121276826421765127039732932403916738867486751225172296251822543206250013617166316607373317587051753218917797779325216956528652301833163798148310940251711630959880025849012247354839162987868848883507967447182937301063848413507480233066191769086486936719728268018543957373603602226994442503827990712662688251060229929275198329814233375143269134499381795855246122017633706250586967331748203718581719843600118564694550609766861805654012196776296973064895117133291069607609553824444287852000155653166993327116948098221700265749558413551150852555131399142551867296287550244372754975909008336304689257094855805307671569981921588297546475587606749085255226241936838319981444421568470596545126061749202004864628678952477802158002009797875867084222406174859513095212096711587996123058987490172073512911584383827615151856642867572810584405927944685613817104370037126502693712402597724019541605541906255304318737000441372342261780693635786107268571763338095857334781047930494649552120027797262723427444407029167850280161945317468785619302787130670640577379337543317817650655467822174982362242371135264979487247827539250446184578765643373071215607125661950503122948546285718980592448035421549513824646389725568018113608304893291746471812961681908383431440643169352191842570024368575030881492909509572160702837259628487981844221640529721359958726322112043034585857620071427680180867608797067415145181046184867541966333475831379578241545789660157026133720089504917061137396224720507346288964954362346901731045103825238577985382696240127405688410163109872379439373822101157524538645985542996393865270400802879406661481208631110060930701094552142580383535880564670245294437549532379885051361221641048944584987603725652731728263847567221301410255858062567826583887378101005155496083544041215407765029138191792782728877609646768922953092828721904533002147838767890690736837736714057243484359734274334152073442702841825440454176724123822910630656187673519844697370635864087512508874169918406879155808560138633128922520484408917894756758476167951182586238712356735844541446023836364854605803591449637277197929596703105496144666134846734166373117559309396252062037794976769728028890243759577405029459320458089508303137352720201248052644852639899598519108364396709746461459606394521838231131648667065494891543962877088139473443080393886948101759363971459754945561776715411804918807428421945811250509463489703949564945400401380178920058081912055572539339376664234165876829291149403587358847287920988906949360084280180223167275473928465166592513502078340936176916645449567865681587014801375279358908581971219587231077749768509231757440032174722924695477693373609928394449769202207196180343138607955712237468037554615704515781173846235008545247266143527448929521132788279802543574556926222536747506327257316108128580002088044976122899505328816926343062000881346441919658397086738063371773585164303788283972881513655435768721980155630582720141375147496512850635317800160313188584928055517357128425253354051754287851280026919265941670913703347208260839579275137574122396967951122439585104510851935277952772918870584628919927304983627421040022227590758616695469160639836879521682823935224490775807298795191309501088473886103038031613270659257367595430072788526115322191751513879280591984942129601472979541165023747460034713289942491590592552510133767715931415043078561508543572668451511481320525480496922197096625940302398937447747344443029864748371231374873286556169120758915542355578485495936508858853653271695563562839131951296930742020454523209661213129676510465422043176607531997834964722632769076079437874674204303301584519767219990197707404074002102849782139956819066731518785029605112906700424430847738529517148318107676717784343230921602616505618093666162384433424347639803978723681289438782298962477435737820305905573414149987680841382294142181887409443234569233605550899557269017796037589642883063412241088413989900706227676648035445193232500034919400461130696442366067421934351024367037425262573740681636661593668648185741399713731143957053333409504932786900036983049687156611577256842884675075250876570980121797394889703161220173106265560674202096433181616498871150629966959736032013108926006482044691701784430381649655963238603986178276914225768172352556910347144662369380247940594364640337561427500872839429359658794324749626305775399668670046049334386591234993800143784497652958743535789285663780517925511885651524545214552074241944051304132282636578202899805491633936246203954987296509774217135346775167740511783384453657974024793660921093164549232330287426482769748322249768875718672778594496714191817109893926323538007490602054378589847606685418931900373317174632034502606371722670025375267831776357552560223037954413644098867347044929681073058669788736445125125332835006719406535381164501947472973999494197688003493107709464432539348968539241823941505928305112176074426849154561926458503004781897723214038157718996009116901411912200366249443807068124178311202265212398695843737903737381141649381623106159107421889770319037221160232330995607101961165874618990897828726344397436607767078254874676949328154297912954277059965005156668207090897855710741645856378708903027414142980003249359120206214595428320904725817027840918401136975294134959629584537669482605171442656112963557266919582876176043274560809105855803772068701399633883978000157615444338403355701049597417674887249055476139307541367825990313972438230613479705601004021220790011809540418144331047760660355884069928345457001404422006551994179204039595946811416491410793272798395172184761119422284590122014558350737932066863342931905663989275525247181863749646335727503341269875915781500302789359940562577609807568280701718671602251078892627097184408238458960692144869450422813035412569194773276050674073889396420361827389397164104922543831129981723677050758543079537273574717270106839350581588425171195992212393596130518585162080345389246581150307451853971934869225017005900868411179981768021754481691754082820086789507695104910815667389484544853148047720075640486607766545652641427598033000382517424683487434797566371746646477237018460101193834130639867845903408058766533076652928101521237930699268886128365094755912798217443175650430614554004922079787093149097924621174173369714154612354626756802043231701785999892357965635316017764260833280650775053751906524626792832401670386764845837030433062839506340780150798948685771583463040416390221628171183859291715984343859208565449426914785920203475488825168465366834574323546941740612891969925381897989615434192730758745884494540387486008929309369553987576668522129504391021676145119028126154934575741458910295400343278239447087033096467446648949162277517995237196645320781494441663493722021099265122806648729715157636301367274165149912877363976014236605159559982729140806927172892252930417453753218275098979018031467614896153196559768503611179292859561830936963544173995729491690020250676217677945399301136330378679211723150839687065881547636735056118187603181838229736177432206957367614228639958937764734038986772688085808302179351720383114162277208839713203820916581221468608001819873709031913179041096451110316935624692086939778332103905057681666542078144223671593798116373368514879252043901924483807893068410657414512945941418827263615918706744318151955400960922909016113310581929400618561274855203275560037665318656565817725024122070706951146497090684567528407433253383325158504517701214637746494577018937978510376009225646135316521132175395798075005121819860371673294837633340638438863671467715830657943152337981442078074661851156292918068660282677758231877534672384193010098455751184574531442382590752754960583298387177535971745874917682622477834727690297965048970888158191236897602924161170296603805870480176996320075834596115085501768958078103806387117067324021361376923604680709735436539920511310922152401278258907821368515150223413879998527087639160597836255951672277658610196326026972348554390134161528368430647404486845029915542377465876053893688827193866677823110181394684766478161122806065492520607094506640768139622335946052871324042864866975107490233975913573005651941795599601805306746324496378589243567996258474862170407981763926674513857349715255296491363482671540662082297372373182521928938814555657091153476885078178564639029667697426734173089420664068705603792519336273740993129999087004556060159252354975898238018504892725044163735646155265026415403147757611444895032631575428497487194907167275542363761925269318459269718598613426529299234763397424719460289000645969178644848404302045329411994610790885680572800411058575350758772917101269646155692173408669643182756438939365287661620103296024462911336162515397448985804576620835971238172300019521892062739605315501103886252571055165691030944169236629032292933749823333493448179028944470676524899282221378188813393751624215639589100864216203337859072235003628687674602399051962630272326103862474866214454269961001287033539212427791633980007646961885357023143909749328143844869329321455083904925924411592771146909843676521867535429187562592125902798204509749456851634383641123270570451291007902405737188162570358098041666237673534546325994362823707850812144382422728863510571986934866031720377270509208084013725542184742828053829971502775619112206140439043655398910708951470627483582164698661814728346022245391649372216364113815103991514095743146327421894162392457938119877793503200141400564721975522170638980637178813758717646468540010624689126073332164424736747368125022571434065540960790719380713687460564745238816592647093909174634174687712759455321464987195476000215010394454791783151321919233468969437775245702723125855087148121638755410124861785574108787160395209568760473188580373057962921830164486299774765721250911910403623447555394205353338932330569627631738409174969292419774413242676265382136983845367498781794562846063049392285242004611184079200978670397201667992535400840549276748942193495468613411042030030692792477046540696089681162593329767828507592768970581440098769507075245354554969281236189386346923266278200394274167897058092915315640948477862625662473016330951710896653967277150244007216178178993819345967298582161238247553843190807234266206956386764975631662406206112308718171076203767090592851557900364015063906394328834253049898508844967826672993083400727179225964920836064075969843509357719950701166354450289013162547981586310340082278140111325491727256886147958126077344811081756136456583439012098571806563474611304120802558847373699016502431523912035407929037971906826168651378152531630019558692378335818447775833484859793529715543377194540514957066655445820015501288807582297132091945284363245760482175795720828623933683214300910216832794814261311699969744873625686601941578651923754973992327493305613634951407325462943516655889589093638281968543149977163157926843567475189459945142381607208129890612004068563783720055340847075335617270370526923011385158847171968390899026799996103328470563527500676701679243592059757652324443188867538124965303443616378179583219306621363998650259314440930052349109562666973722339202868323086335760773737947495971003658759276023185485086668028466020609444970816200192990645274054980331871916932814042687716696631320721601395739400066328522267033203192959811211228301440740711892441404451863562266047066048425770885858442240900069656563608337782110324961698629143773824358707133616534801084585671089519933684802435623351382566418197722015461553671807309718510805900517068355457948905219334984527098653402794793653036804245669609096836630305954108503084212111559748121223945755056460152150885379226818278952087258586767637568908563520104731280024854815492844838739382143451886811829767678166209202306171824130087324307712043092201320392566585983577544762712664359982037165238901668740116545263776928238212007671597599208710109138546228346349622161812426041711918977382604042625435886477457032646462518725885832644652782876491091240386749190349646054316331068428710008419616899010831576944902640956691789947510799726903437027231035829521695720189499165589275008710414887200758908957113748980137498322092236117813616963582611133411769103392112677355528741320773001443715686055103442072129031696476860053905765527568734950313868959049206138116164253965792848887104566722920981510090051569762504505514897061990721997994423679162556739825687271832195726230535230012074757006456590766713546811785429836863060568152857572250401241069531662586850403017494125995610257081669272081876441994750902743639372129502849151057594046945753047067704546281854970725241983990970019439090292443254337816250292053679925672809485357658197394495118808185547379896161759423301122004235217769261137950456424709109655492372758532130584142927785331551286307444483602034074515931125074745385618901787812709531714517379958705672709638137124002074123672801456559398289161930857824931524242001928048145034011693198923791509590338726341493425194692847310518300679386076192407469619873978681140077866043541594561786494500189049442103880620347583993335542295328671977274941656008207725163255972623364393200820201262362281556210464492034093144304818838475745583377998600904103622808793388611339251743622068494235317788303638615709687783245382820208768906149708171657753518103230691801373629436267542687239867376267290549282125767300329827008421105156063086683022782547282358701227155699423497681700158145038934232923921089413847066697478816373599099418317987927401919979679208627607056153743397536395087450233970970181980743558355627540476823123538395247221047179954689791053740987847313002667728652621395840118316160621907270820947291325342438211246887984715268206704316064006291105112959221804280081661310971188498331763641490950154509709588623805112315569739210276328789403219085515974164784583797213404697376703276940976374403836589639654129433044327201771578048957537094014864383206582207594439932270481865610274129473402006612648748440247227774129407015782374328715568084737308533825936644938844010069686396090323736476334645253102991172035541696324415125771418407439142922876958134283336284830198986827401455970204215189193404247368452062961973240427520717149167766400576915475305483380435664078118940042646573786763133675233640010853105926951527706655545886379645646393956163026164789850385320151900080360603612443696702415108865548069508572942861247482776684204159984150939339290331651468701956158964519553055538949805173550463019489226385448906788746707062018050941158896758961571730746940676509424600416947790791634561460187149583933656803646430063835649204476382790439978781676030637645213570355248598017075119980422536015562771032798794574501110651485009474541683495815129805773178615801264454519277052440914458097058640603819624921279671597509626822776045757286877152523972484045865080518846082580201039555512315541682436292484298642045573292363549263987902211507112239364457422498482308238666956110193744036846918147224773513503578399054427113899847849840341581326967864909689723004907078363091500718935700227842726386528953747606696959240730397712409818253619666569349570291144621645294542477290310897933180036719146307324605212213425002038830869370206642240398537086782649272677352707002718391322775090193009373680118820736082334206908495565082642976952534472287473627758307009578301211883127656263926671466097532566677737824330151336483587096388637552866397557968299913382994687126914658676662295396557405488442065884177756878984975116658362512695644497694117520854011565250567507616150710167881707908091146919744983291895175363554263390204554370820206414383266862813658101378966229141165319238874713261959595651531642019078989928633242356421340159636794303037997300171322994052713034368961554313655608138675171254350427987887177765452452737600169452644256238641330484089742873231736854455446056025623910536583077620079882679821245419912177865069158990116584980298890799054133740112311709308435855207887891672240619214397033120358186787821746555308182722009901738293401493602711795370480889971492262648605742557961209444418681566302152900448598114636799767226833027709740167939046166154707412254158802613936959703019423185458072257478741760630008226213419351691276860473838749936566647585291343559221562340063792164366198442215835534834574184960168206865514689864971260776221903679472686248182157537135150861715798064924280512777278811836198065891396138332825223360708479585045550384978845958281960389653449315580884115829676097041237195833041758868408874817364654390541342250652528056255655252066992213759360104382655234751428713729789855101742492842552250958873441678647307474088072615338427278344936866651990113331426503323691016775991090398027431298702921950873975241998566615207659238556298388214851488961081128901697437207041121671857293329026217266964238531829496209466550041069101448317165160287059695709239657669870405164344949603222040392413864797649979531384211312866098877419686393372689716934173395873118358026036965057890914905764328939013456445959688350306596875870002732069685323327937998761214131881675166342867969376280908388034570970016933648839583792665932165236343651720972983059650163110246507296815674579680645101044623313961296684155629580018887515580413995430148465285642773943087911032021464798470889792213928205999289863818645379307743713970192389761183695915377173473414030435510316393651524599418992000143132937794298741838784222543548114375250152015426666913249070974017617407445390074741405304522388072865525171692456274137532032603603808562293797174501873982482619574161319024322443712566311806806221828802179963855078600724688576840672632228240918535203772187446752788090195283965472069692584379749146344663769530074791867766624434828347584116766793570590630319082383598245935836359604438013276708018559920009496732726338841203391128879727919238811646646679659240871505779668162593555751264173793856959810638811937566692399374549760280982109726922069724906656261325874585846464547015005410281061483390920388275700251219157075507077486954822937651505364410974594082038905062729398927681786821581240595982415473409210586263971271586596038154523038047347771521918556918720791102269239351276323632875480970964714964060260584499383353723431309960347490153768432089536737952957292295283794033134779729685187579171259644548461362683919794343281084876336483270955914319881361821001893586094966595435391088864455360493908395331454072918322645217204879279415730356956857636228761185922607519111399439252024712596421312317784620340437235400936677631686658940239706288108459981098560622219624978162382327239192276171924633904148890104719123788801369137020817057195569096606099402469908484325237877045232520355641711161478168574895294955581423489510327565783647583095648783157363598451211827156450862047057784887372021662668170657536658841359370484770609166031918218974809417253115787288080659062798205288855719797215315325262621015835607857047548754601206569188247990296248611874403712885870526789995435876081971031932873048962928515118349348020436978907528147118245585983057573895774784631781237372956411297024780962481779931040994340267349710699155971057364247071724062552224736718551739363022727331074215924298273850093023567686437862760523608492298987572853706531726504812392849186459889557931789099158913093235086011619654038036477536620476164293908180357482143916779065190864487623973352496424824218688262060736244321057473315141001228107608272520895775955110753585654467091423342216410560023403065101067151306257628190435332180525605749484612304734392004865788185673426611295528593427554997892731977376565328169403831898470113346933704506151720878829442198109019616810362497170449683058061427915913378464339396353886055170778940657968312190269007779650617026532105069925640406341999117407873575824427627068167177449019804269679698623424431413249577785660488313618404127947508337346382041249230462123647374395703762929543305572267209088024983201735492531965105753443248933745086415475265091327814281699669895663855021669113873379594250914162763657238280344702507259419898539372982353810742540408245838165174795550239160932344218102414768592752477838046208077253722514436083358916622554486523850333598003153072720046506840543305077691511964585885405125507323123511829989763587278361202231031456959444840323018951897444187018124075218397573294901885619609481122856160685300446748344881607958512943172589141313920695984017907980335297710831668084626192954296860016600907081966350952219863269899358929899544807466799198099282999315136983141387463360927980788312807245858803414726459693916102936151079834062697629189692921982986062297966716119592920116749861098122731030424310122335501619412795100631350025564663398292125973425794123688334770670368031193293156787779947586781763703767675799107669807018034136601983629877741632026040783294510438349212236793896927491532584251160659101702731284297686117346732628844077343380826717093935682203790112847085177222107593919564889030386595557595730079108715613353153580531478990558639790884670125422007860814268573355310538131097572395850015616458511919737258161811534677337164991127435673558463016595473953551633958185886616412493550830898234467812446282768269046765742318997775525083139296265781948728083014538090250502112126256044259421202618846821558072261998012111257520413569449963003465815927950983058996432164618439047100118514021554839102247405508879507995917135456639401378382704717147343623732471116181552217590012136996606136524071143286935028924685016112464454924969272354316443199910496941796430577613602083377300556644246617647292727388702260556787471977579163792918310978348476456477459586637973273245963373419277167884211456526953274076038755918299399349664484509364983261448521159800113391241330656424083733438562264741286431843821681802185269281287977625420429236240785472987118432303150303462573197180651840510743844283237902155559898944681803250879973128364572549132403947506706997440598706649049774798170605449828957093256623302923826818546231102613182252196270514476387323159408454318946146070212601257565704840652996329534903735907710471242928139678172427036950077575018384235530025450851101944212287540779582865348803501246347689478715817143484513044025836017088062200261908395506251139143808685982169135459304296919550562570485677604594782731673455902611629879544578106372201926669595391023251745688776926091785478174494135554451387931376948964260666171685735344651966302709118388553762698586577251731129979446873122415435868746097857823668659121289887617431931367345081374224445072506843500892767059948672562886365592573936170573902852607269338732017901432478387442745088360101749616933578754004108528330064926078117810951373962836359165389648359570103489615124582858663788244066943906007914977183708433409982712248151337506168499236749298847912911809871636783557879000163399612648941866200790967493736153541947976813277121207476763817438661551257543723860329006982978069173749451383892070096950948456148584247075916145333359513645395175860268169264652452949705168373456826065712366534098841830150169009530885721435882500402873161791581778559423564391620396229328315465967172575290394705462903572699393936373582298537475482300354201885153639303166229579462257352196977325290604639819972859427700953189818867488363980500122719368300798697814751932077760718506505463682610927751707575274252482960712377866208964979986719440200454235068749407766781805433138603466623182325894112488308127105939018565871229847461273012257481496613808161655581013669237258679459104609033133498758452850070701934990059820856151197281984086645380746283425173288783668037140778934178502284177210323134750732048167579132394265071397091167154466335964797716414598807348819718711512050987982476085018321181143803816261233001768541664190153056099596745236086392804976627533545820314395909210766858192806554562394691619931190365458280126810488219765231508036534915666491291495938164991006704311932395783695743386612769754361517758348515586963331344376077391286805705611336069468973787746337182709747147095370193607296638254927888261251482441577150418030443361772350492997009076325324225234203119445114317453852526427534879899279171779045157389430052819888537826311133200784987437332473308784062658854980348448562236886679407888616066256880100027263131115602970293656016897488849061244154856256724049521037810556143524367163464140057384020623190247030027537173413938763889102739397138401597949252490887049146487360664008467684498705717338812467550613159803681893754587214738010722371534053164298929221545377065091328588517553423337268019273135369520440613892419996813914896548007113916331068153789525710625865926532682171218089239210940451536458454491896012282659029280694272663506962174081434897579911595651189649298852758269340930067576167167553232732841113183111659300743736727264791956041242514620733111333794807197078662459410386824849945166166192469714262823608117581588601921256348318324236117709099108482947976389500112633836755411609541600423672849326856503085921415081286350241716679954965434662455263573072539728413181338537739509333301479431054614921400278932669019929805442039756440625821499583346045793259934781980556002914223234788027952973442732830213696361345084323687161655413068577562649885420916509484615478110913406774825437949076985916728807090374208532232121682563578209852905831877447573519918517294974786645937184638667524263067921578046615873685207780869723207800207480092394242643642956570409838841528172191706772489967631350993522082895797923117038872061151999939894346350134081960123471645324384877093139807728792240861623285940448845571293231240053139958955372939135198947541043480897853913165497193367830707213130652998077153569135420553189139631770387933715428825151387845541301926656004499629837579564360367963124469895127333768363373410356729128208154705722494612470076281878986502607471742538711795014390501607450202570933568612857342584490495000003075299431736232899280153641389423320366294298567650760969003484417046718207053978999995952467939544810158610678381019559881950046628497955052120389714027553567876149685031340345042135190566858657911246202258965341059002234470263392732145649854634230094305268718545089575883289419326522721735076356499430289343705879327963118424100021486295180685408881601076077709025370558807623579748597172559721205080595591866751449176983701705535813825374838958256152701878070112675955654349549355628891663813030103067572389656819940379936842096565407133215134635223568417060507647440105938089307776805770488820008112277069650770669234321690735277706515883761973731003036908576185726309563419928537976216825910387147711039320192358099273443596077806403206146304687841556407632464615106256946075789655054062746094136957835689496331151951238146243540227917149204709234873002625831772755275572878749267685393032436422762108188854066491529701865103126971802606238724316432150887770478825967505374397318503057617543326299388157787123893913009935156647998414762492319697360461286385889246468591875305864260169493049277598410695219943228256318359948594174115322982384677225440272713212645021298667491453239009885473062306436304845566059869748460927106570243176437943715891698091492757820447118248696512314887172376444824595511350971920543429411021301532591033310822072984747961316820047381706607179788268405263542771268127505846474943360327509521280270797695545468556953979393639659724243315761051999863237334155680218279377771254377979449954196705855077806530599402208840241234321763869564751587521401326784059485644047036810949000923292392832602592650829891674544834907138405212002798082947661926108988498392167511413300098161538940263008158319353641474465974998880458004711339933638523066819728131166539095409568725153629308135776668080397734610337651790982397969660170487633757598109906507013818800286808250002724000162148271064158830225365305061213438678701667922648418299841255994612016886460136086269075640484426610668521373920605733697358207804120205875086058155880166170348305144521777393008002451218710007569107282252380966358223682277006212806398995251670184637012553289875871757680027129437016839486138870456879910015212865159677760846904520224145994510538250070783767055053689213612986384080796941806041432007537612818611296676630701856587443506390674757449583187979893850203815660079726737537011326392355942167970017340611954578006559894998907797815616013561210629947231666401754790090803060014200972233651776839729129462147690904319179968506940814848714235431223363269007905025769880195454112251931888830798360965935533878570236144879268886516435178725386056553305500726065351180899625100652649839184369578397682361997069158166032154268722260615443047415648919912896333621727625693880950020221373142896651630398909391316594647674366164184065019436973370865303420607691990363625002120052884191852738550153440131572775313059360276759364727718654098821402240736528932630828876998419727606770499160612980324142386683312905064830368229639015199230316313946099527893727522256024413401756237777683946241545384216633816085022619117174162405214971634308962298294650207885283800429033142822644024905499669058506471522036874269852213505915733520101552376582367818985483338396229235301533253092674543482740553502451625618099792172036781262412275324390947288004913989961401095332960970786233488505125133956504627014119378900087384262373662214246593899968878600364537015511523343451897090367790083109948205535621103045591880652609339509964884184558447752130164520793488355501084173726184146925856039293979331652471941387241594814907082057246044085995997024383406786368344462381012031768463552137548836412448330479284129489693287895109195860742811475934986476052487449811861766771570102643971625361516897551115493839411241135459252654038733560234303661649801034023541297541095238267508902274112548200161392902770637697583758781289235289193949311736062887076740497886439583003185154327611530810914346889987738668099642593839849381995988912445413717035425907409183773170060318742227976671881445527460322537697895847564744774989030130015648447845246476250444847439745782698935987485130612413109953433719893582208717904430035172256159077978438613224398526280342959732777722634326902329274980357310783773590010241217350270335936488761481094098581413002697184848890925188756820302231410810124807813441856620884245958163126022314220824286915292409414128426679063942020207101039782141949851412869824445481790377146563376410979335372472260927666216495312508578591324423810556270592173925590041936489596428293263543030355666869617681950790691135168280574578886770977416559014730408333544513952513571010116082926943920256859861360506397691144672949065982858765990307911056516937644277817457629255233955030170342070342299375345391833083333222345080056654975138827426001218540667092382777573914350105605969256493000032486293076274482186033291921011385251439060986135840915023636561122577619092378939231700148460611047936453914966767711912393776906635951958483458969651392380859461541785201996387977420090520178517822600706756202505441415448653879202560976361217657887875969424756246134291828292647299978547473646607652320515754473152911238067212847037928868780014878950095976833701961398687659218440604571260349688363107392323685761626462315273398637058872524383696874547736620682037835435393511044372405645237241924421532323259046089028484422044746967920818170746214406034423304568493284961959150868632695838642998072883882327547544556103628325669477694592628535856415230292576474314235489457321645851826971488285083452576402019702044881764687965530428955485153040092834892035257310609719331543671554804253597733503261016558695988170116383944686164876628850043284784419040969914339211537150278025011445815986615850360790852805935023400341550432957582672933989411957983716903697220214124891144485879456687374170387660666100958608286667964469144587177575713490098278040626235661246105974122354331537031193006298484957581755672261241967871977251555415093886248685135033923945366148870910025526322083981082354678463926197281060818982909397462655478973401506177736187705577287495991968055480664891857795070405850490215496957656911642398215214498415810066395050039874815795698309308408811677720931739721215369598732921053907977825202667972144052282465451331303522865595994315377243374008197392636364106759029939508138006417000930329980272268819987442171592055126543272259831760611207249224942740629095320834161437406877660180336869872227618888377475000937625756919278295712142042630360809468820215999964897290754110793218587933344972961286953635530563368397545508951813037969552143736769543189442418539726001721477422521683838824643128353003184132884561286479742681114760444013285283710880048615382079673286282467804528256268344820431636906138627458307051314562347841551325933501015144196461694783799217822530696999683733744122331214576447240483041722438255446793731402177474952760118727867656350673174821229024052992773603401397533260498967294442738182343588461795217816582413846928624270504757746766792692831489976632993607372547806381461106173875096938550853721792578509093350132037440000732926563193206230256578377922856888023897488793933325134661188199031866618645688178366430824816302823181927797056851505283950100165659407867050086762150670567434664459835997903203585048466521213452062365498968879773016618184902421077524122806545159900339562507917974781226145816820492624634871954062658264791674171143562807108047889719791825092510604301908442479433719192979043025107594506700346909764376169397877151540887275388830643926610617980869591813131420256185567778689587894055000285440387336357491088507222526164663407338896059110362514552355967717433523207877597044585182495358883411102354332527217161160981086500154173944546006393844085996777206705259593708948347832934353659930390863953517802908287285796579183047877829595081138391389867283814700009659798569942093063238855236984816367366925783186601226433924473986062130926800349110354551441535120170175529042671002956245989187773416279195053449722952586944547514338837788666558265524163672935409515808837799041739018229404954300526391791915551388772127726319416058499911872819636612373923767568218693265595987587960120282439840342149985160703306150377396809466663131993303824959147665486779385984462153409966569377486237980279324702411352258804211662716321204537247595629137631691765715920182987482713002197607235532196652355715644044654060000107337595036088663668780071565948692655383739245563027788740122878884017596664788167223141624897916171075670879119478196024649447896270968920947800970169945936423619958848883481050542507879448355716584618835186362871812364281614272503493239059887733488534088187847250215909960037297726645783091740362201109016187413793192804570039191315418872859396983940660393687023954599455221030507593710931615517023194346534728969784715434002355600792078384973891213264525681929948020450147152684407305731448039821011313781878322781541326970402254921600073874059473316092260281139726127020713374140491426761087564411681975560393363655115668046490706085167125138005927494606766650928904096700720712224501912889257689038253332858560516819439638068890603866032858960837706748223003618319814323129312781450799164702790934291279522454502376083462228102139730860843817057666675439287497756931159319182351033599495010202624566668598093172615475255012890489161875783332009140618735715089584409623851885872995601910122847394765512015552751758211231794316268872339258167844502527086848844530636350944806038453660898885386325916928835279666885772125110903007315966361948156112221359752379145090199457515132269992029956342758808518369119013029077498722667525074018495895354529098819831076861932597483119213537639665163039140685356829397035157805628164304611665983135008408096200074221911232485340040327686973850929558121837606759868786679311540564901227666616190625077362036512554992571439147300372236541622268481644409207035978881631506787966074203312423831283800306794587252324241139000363740203930986847679433354650953605689793504509874116963421785651116921195008204198631838829560645822591175426754103171769244962268514713751155746831717264224747235077271400576221257239395431940548535088361891120809589984480408754807401225418429656529223129687192330808429930080906119290731480067695477584050622933079061175014128903700777080259855844187147268686247335802070479267207126951727207126695022419630260499556655155178518727214731460349397561256650145630832010543288216522649635154643178610125164656953742019340873463424243224382294292537078344655450512376529518968946755048614764181448933620942119531780819026900750350083919280968233223703975712197716526156823445161433752595125969381018087129640624602732350496176146194356264073651225745702921070559783617749781669675437951571995807603858209252680563139833934224351493362313268279049255708237864576261969824501120145358351181929706028345682441022166977893686674167735557533835255103486385583809919805983845932521605917146092104554265071602765943834888731057105626624358136136273946018269342068271865588151689278165217487784511424064009384337823084562257321703345910732052454025191994861544137501630819220736913168660193958271288711289048835669840074522898602190405251418168169863543855331400810908801617368117760141457269515759562606095435305406334123567726614043190916942844679677747510224556502114830737297221413934648294986359885063179001530963716437868821983123429169190987258807225405575038523819053220542639070099824109002808481364569474349211353674753428359381801970288041718493143843342883732061869134791875640627038109176894975647293101459263133633910573481703965078753961617488948310408148114241537108161525980643179248112599540327057041493262976848476441769389577464412383308897558891453423094672464545423254829801485153767054020869323923898314634855615436543699521543507360474500707126035998293555177226716236655542997149236107465767457145176110410638678304443085291081568103075098541898671207509347058801745655859477159307528728559424622517143786629722334607491994199829346489384498889728206113465587630072427758248416118011975826034095284308414878470505904236279349414261576989470257372771770154276105134472540342818958436081491994268787486004619836789018362588907858213080198228056549117121203866963862045759277667596278509242442067266273163468889889007418193853286050457879521094881040988324044630849824095254245234499342022245836700869611663435546268889624489231112586182445111138081291523287652250775868257235540052371419733389135471895607559180743419201582768171192995607090276588651723120185586886023292071992768764267752225494199943981980370048544940848358664101905813645132109562365530671099904619375853323126551156300808446966628770090987600753123950590506245157342025651202924963342568346551094152857643906181955340735496012955106299645689522989070301285315321181062028663110593916643458414049893532259583914227403007897674504511659417108565811319061377225391931711789030247554182778961168098560871985120966441555044234990530189689236787042262318871373769170891758464608543279171548023895531641359032238141250907525147190081551696187020427364775084832912491136996899285152987954286458680651922462300294254875369659798152196000008636515414885851710131898436500841392182863896300425399412727342604933711189281617671856894747431861657904627508823191684948351077994598757472100783704184390378364789502398460830074127801258744594928373866676858301534224259779186462746723799380906159808745747607126140166352927993753866824746378996198898940219312176490709217430178481479163481759715916625878668784799788277557362014139016709753310876653039965733577370953716493495292758273197196480439865936770579515694326545841448571609583754055703065968552325747945566127838768234915913579771027430052086259211131083515130216133523168479598490038518148656322489824227131141667378678113870059380677529868656824202075186029298993097196837176200872999931635033938819434607961693249854490297377346550153813494351410070200837165457529263368575760911022358313255864831008814012747505402269477997674520955841187226231117609326999351877844556936454472779772235775400342875650090835324846224886153227773226649957372318782365900704856465539858855129233983298920107461654942460178081678665002825056473439723205297025767885435096965837678947048072541085341861077478759856016435077461690738377936498406275911664697589726900756260570094616992207898929897104523997129435048462902368568342423035832284048154257396912227759790497563466912612214900506728174255137260041634587167842284006860372515164140499560117329680330896502412187171910967499617886834321865850666686537313671695619389449745177608862680626021246761307564061762857767383089686376430376670663489826621999747643499909159079896481632037723047086562934922137741042014681963958171376372905638005279302305441603115954853969385700142280796446985211904343269094049978881909467174237452504021955763655966754997299400059314457252424525591102001398002816309042063144585341917976430920386742098316647252621508148426372118416412863460686824529026131853419356136086861351684929822160942185020808863542827939419926097297729096647600075269485043454739743050181373047227380039385805655391292696332423136967166516315682210628545948603995790806123894116630832998635055548271781110989150546312385616347250820289413490960189241543235636316603604736114450060646353546232953262021908043326730515584872107777490037317061105382552056958484287862614295758036158031481384509454160569975565501511952189279377428783409320952938259204115721412246380028055397834834844119840780891871050993889878620297192048786654210177821201258011004002914699289916504119017928650148896835677591583589215846401182113013513772317557805242737407275315122862336735802474584013312937163034006536306455193549186061657159671491658731084272598451833261489710447885049014559255655538040307069440660103486037511415268098440490192516155928565465169440161394759566953848875241136124353325240113140000071550059839194566931746335496815325455143045256906742896059715587464610677355654240232955808072517862185442782374588742156065319159590331489433179796151363072023450947761245826762132282832918472112887240663381733004575196358928334735469883212255651232434534048302006528238391778948901002037568046358060977543964569955701573012273920160805065878504773733809941894821932313034710429933603686596362796131019627259702479487967801652503329414725004278517728277921797534691392318155636459337448430321575264244121888841597939658531689174127768222393018413349769434954954584763433894676820005258434003077723062903476504373729740031366405501592659618339861800090933003032092627769373005339093230726690426202205055735465217441039382481570645167166654137113018760771433774945902820772106804182820806484214707461940152229341554307661696511989320610047794827119958252918375882334425957592685484961656108351678404325436743655613371656912245081146564817523522171207738768635379262054816680560564161171295750694836778465039052990509909835754859750756271234002535014207987282004660618790208974514152649622450539885116511352903352098437484167430337367956658832506722844024917281643023976983735995487896823611719503333077964365405736508285882701954257942679891644062591996941839133187371551952062142431901296054607345592838728762734087942732853546381765852321319653001508246547858710225603491360542940429866175449652132392921030963915604954949220891026047238854198002255407836971037924158342534541725737620746637439378123400689459017914597067276303673994373121365908142826946597915259735039394786888413044184460320400016879726027605621581346816021720547976129278426556064678788848995769857586691880782346546804639021671785033617850663015762119071326986126567773840955282304452028389528556768583456858222303598240312772508133232423287719470248541930890309520750775955830359004317532302053810966634422989046489157370024474386771162037584758407090098151661438372935730276660169524110859133836792099210967009791886474206810532091109317649255688678199789682704349840500231727377855548022691388271119638483945535789855916311375705985124896284893494045193382377389040504820714970999597405478514499976632002826746303712996345159166898583984389826491914610991751907431422232447134015371147829575435918307750954125217017782458184960058338161444665496524019500307018067115158584514112598014145401074092250247013246531698666235929330988138985990199961098572627357855318609315562257525076384658463126907390256723405630320892053920498862928061302487354818031141874796768345761553141776231027787736079200411572607664911147116408509176511814512421443033699948937294912601789432935925750890525875429344948818869521137587282826705220817515450706310792936497393779326106153481561694381526497820582529828080403499883743875024490775731674669207094760393086024400083178491796056968047400095062049149916415907205160125668690674660486984805714260490028845054221421389024482155748834679898431306605599026905469151111939858588948028564873061216810821187551404600691689864237349434920574282547590635272416761428822065319060835242043010545758929077087193679705022210882305792500990701844212008485973710247709192799766918159990333576199606076813952289072487451303357607269398839486205204235862930226105494066998972636169428825642174403410557913440652173538799714922171522318061775156355488326195460294533956089951722393798533123414743957192883391582058099485992554366129608200155888799313169798626718314308847777846852231019055396050166260190022967874994116206862086662097987377697053495076365777408306560796466251135615852174521960161499241229605524879692049675991707976047575472221448825002172498866320248986034563875695011377252797331544044321732921684124960335636147010452191528825536030637270434068084520363484456861832304437826203461797334546037855595751988899596007100556736055693916133762853943938368849550458496018987243571228265255001597167296919558609570387451828511542009482602262299220780667142528983337982060359086042431263161277437231386959369239965431221312046238699391952162044707299905790121010565760129740728558158612192692081584797457947542781922408702171060615295440541391683782606800840656397699913089469395958642207366244781384764370888556510367089764699192140025075308865133626532000877707899086030629502028594828013527499895859357357241692472279116473234180971852214368800891354274110411289524377306474428683573259751896781801155869838655610868063536836756099152334102250451036275207495168255733945399042068404785140897444481196536947207050209298295167335054024298468151285106982172670112515592252106136018311708800703323073756237420114700428448643185282329784015051850389859292817182050589247065210910656894272466013363525203740638358598611214984611538263226643505663335235057096556517640347250366669409063442047396462802936585028772647741615764228329034226972927963574260537827424420535311269265100849977447396398417678264563255681583329334583812927635751388636966719008527720836214430469489393279301697955693776522291917723560241443196601745079600663967858465016557739904501493906904160135951121093534712751406912975325663573227300413524762113149349094476390298047566858099641735691388787341922785069301292859782325557571974786654443593560095443175306587904214248537244345329679523973574577474913688735806970754872112177007325933918185676125564196318593159218534023425758128524889054610638547728249583880398823718327333449989443021547143211153755578185869775296276139530590034643063313573415519859882162036987333161109719408939689898210077123802977624802863022071872572302203681982603626458475471438828373565715833689001322456433490229261570543187696347120362408903842229800139927495424757323252684785294271146627238449172944377333519040065005780215961441297990955178528363505721736546470854617754951267616162759225514968671717538277317486829031209062854169709194038310665424933230489284906982823588590659430386756345138534129179615980704687183436807114754707846257272015409191733433839881407754571359547281948463532737908975910680718105388538969189717972439625579606089779466677662787311865609020135588898533606718921833813915408954084384312879887191897211110782001370304031764033970046076552760516298462066666272824649919898756581635399868067724854168843763053206466335711851937626255113205485149052988240967986137131144915932352910730807722982666235434003196641997452314685685593021984200191482858322595095319335349659132827120831203317669313270151489598642113788132454836534046460372033265578407902519004944496216027885123939555193858923221974550302703393515996715670490460315795501340029956253901507185664672690603198575517153828843392560269650088874192111629034729518027704246420940947622448231647717225885373430312790132402269159167345403779467522118206739528104098074218378944233581683607900890955415544781473034068251115143372046998363430390110345699129383520202648925608479286485483075081101777263657486164181150847253033589940287921369899729327641268081875014362894528108531016942521071267552380731046278576400230067859570234349760779080687883515096920309699433184144731585359637837604103410119813776417712269485732672392973432511794922088751203220719633604491319485947028364526552789356972586493093867939358192240539632770294184256477158741161700719446120958057532495437016159794671723384758450043699611594435549743978048949693332865181376066401966493903011702843768294161551961483601022510639064281289038477558027826820272756734575582002887851107769721610334045371555986248664584318333055873577489861896719324191306107576400531244004788158371036563502406382673201509676351644351996330680376023634491075191479969121641760657361004624700851437439605827310923172614483154970179503217746444729498005165124804192713262288412557879347272241770511182062110185836157542209252675042734860150383201571340716626913593656825567473729944732660625716078831211715912655674024743195150905727073218379626510914736739141132645150174977479815595857824341962077595811756648199724354445686032674031175097663717250717354326636372830733532208325302229185276264725586021397438753914646073958496850703535264715102133071794292880332920003527186212257380551348280010150522859488044233930666657508833388991364000846946291630656483779154893211467461518481324938486226075825699062873869224502989285463012253740762669255536739796189121843545773114466243563281762739773376612742760984759795241396753470893464791883910477927053330424526014525118873202447520295025385315286310356639526873823425781739909573723907006659821914832699955934969288886142840168124022502973968156590672248049075274977254999536851959832921857180017603606652279658941626218764812417494659235433686104050942933653463289457338610677726135269303061280724977318557966803486218408771615503845133092033079963562578815752830383580661659977801860078415129190576104251074327107370955410365370981758151088618450469573996736675383315310035607086656853802028908708024924469407231427491047048440283392969575614085303079433954971141811916324290688459905314813251507132579587243078318169555158061666312853779481108989496005655161808854661682391908959691705650263650860412976700284303226602070479642785772948638783128642562350435608467992859232391917924149065027846849329765297070542313306318631882236549943731013753628440621553079198059872937461401072207940906729826516503070014677862293599381576815517146609228702084017409166403475163369558661780673156597733612018799186642326529078944707092689077059252717384105132760092720161959266369358693642940145212652002985244484613740475607310689953298756411763583387778562131315686541452888875013641859852917898349071828853850967065204358635668299022286712240207376517608383954834793405370999740363839751919629156973329097236300831548316864085285157727035933395387306888127046608016182280308771822210318541301041928636927889044585176071789400657473866129751378114942709882912072719853366001112218387227637743853514963722558070882489926034756447447745035419640656567032063606935707617490200363673315146291598126287094713937817012111046169672449096184028003370800696850367802508906078831040911465487120840566800028651831302401937149212534332261706257790604278022817007760086440165241197641340849876812283601233381676108972026778191559315968898611188945281948604548592186641791652154022127070522369597100717597269631838495349036763639072108886223733226954257484509455729104726757661429515137229202449065881945611189603211714083480649184233147864703621587531751482062509908038999151273069182328080248628156649141586830383723664613513646352068590199305556998215534867788388468229850182794198207198812997587478036411980408695465637108462624161974451539966803547367056106991550881427567979971841548322795195273798895523029642195337371814373510338679443432674906880243335123191836550094794912406571430441933276880379064695798540673108515435209281362318160761248011626461596504903472408930605507558162876677876102064451819262601673548807318190125656195225814173616684244487116775273965441101159136894035307676853173824091349624204833003710652499778389942795740575590081021628250470979482185521981872534994472716385832315876506696591437814625611894497412737825588957636355880728515533139282056859490521619566620674113790425890089293639236165829622561170691995149447410213217516478839850418350843667451348786310096396444371684255018476445744968516846928209027477577478214984124731805616886544916104520199779416822693694932431709561686305314868711486365499377944611268543850314537957895767255405258603623461320643650194684241098566809714721939856018861793702446772689566350378266545783103006857899545116678403916426781362219629438502147973429707548004181752536217292592827454078655763687875426611449056029820553896888355729113258695763997237592834610287738936230975561747513520261137170127597624952872412718125282085022398538091104667021061942559792163599648257453089884799758214970363506963149668893763100566612337576249435977694512218067792572763228224729913076951059871279769715395184049353674065276578312782518295342367080365645998182757335835002087621120403393587825775840478469385512488074862861294410199095993462732838954958173639828614851597859523500710050656345601767586969377370868461599363292798772122817672180369309587565895784059848455729353839233826743654103801812498229867738194933157987491099388331169304978774627847356596592125646103008451976620501576083776469837481238975961827782005405985259185496424626490037298801277559828885521151535961276239517609726790584992672686868305795845471429813524348681234804018878407036577959227791542475352454067486961545295506269173557358950577604743807061465616649216420974037309401636473980326468729981131247091982635495226737048394939267140562088713562555727395095613030896757877770484800410193360640186407131728482049380583537202170734569098903203923331514088713284024611027310655588151563886650102767356471975821709547727186027846591131456862172930525574757823762895125663955667639129722290606442527208959048553281144613391439534430318291418944757551711759952376836805446690686206694218355389544296966587879844591865919425669216435214959608508887491890452234042917781147119468989985670901320129064141524877537428385106480660930912559022729876057270399921527963692981274381262540969533543766887810710129182624418109607960407950457611319031062008145383254945820455159800181435785424898398680070835971787271516522363628035217760151026976081250778544958635358331015775184951383889631409293163650519404843346667405654516785609284216275972310971509490308936852640826552253664637843129718914168535979009769379209899109604927712262692002680588656564137777988057616988041734363577961333036462149828901332985946485269345295887546944318633427215589550988858620272922885342450898172481688778750128373556911967795711371405841401731268452992432058293326583721044680891115692638409850466897280950367030423194037873664478114657698465170935857491256026548247978287132141253860527831528883009186820208325734504597737175594077435151130281745632454377641885307155375406575856485383029314291921918876918903782126399497845760031057719014863600754935409988860627374833786186158499518269495518195517825224328072768854858525700215264382615321921140817174641682676954281573690597264015561245097513301856712720776943938111704870473202264512507829285139420088393913412011944428013653557095815868390016625607558032806187434978407495552759948885915460380245824882423229726246701932304494300620323995979483063245988116563528991450869594935611424881247811925183882551811881427952342645385125333640522081504961655378749423144111364962678058760887351194525313712919723281599445057437544965220913962510801591124951070044844125110170860546430708115766083372786271432778288510921581542473909096224918029132376454771557817143922320929438348702647580112265833857653230379183305486431874278875452132471206760127207737297630153043910327844228855603281209370436456070321646141206648954512632803376969694322437608327988856325719461541946630720220636583519704559545390019509754059530138085893717012228181642981445326191769732537767784763655449113026358691230250978887365899242162454141076892652047353897079446364168891298253446730901171807806116936152510821066567036949067984392797871407393140979816624792410181648005275799422816767261452419981932052571912979444940498899998863454715841485227742420279517807992397295868598906406573042758838880332683703434916438019285105912072511836178119007461510262819821123666548985636265081775370064482405910196413977998117291134644331580097363799536162943176444953322604544499587187651046594992310638831857871004903658611747807570252415634523794378596513086768926631791974506517699752748195880871729999390038708107314176936041222146973544578558818373267943109346554221528287264092547076229838811258147733851356526181864070372043824869606774309642343634748084457861344005995070819886409568086029103250815988922289888868322602126801741699498508554853761786526605201800022199804014465836791556774965604647692559564448422280640500618017968487715661255324463391539961499076101468536308140540167015520819916542742833222828907229943966438473198140352066632613898734636480481074779966861655244759883419648700426567994260279925216174917926959740613503936563488639159853427832966066377796982640226580879665780286824258985145286657163025514565122759554896191653904513846029128358545156903191078993999369202134059894992984132024862326467337768688079665548149777477950318081197907564434716079986555346784926965874058042562894307857578830308188503891917707558499146797325038522685274156101830704596410699291331712280708185866813265979893304279717328955849749511260575413543798221048473294214820720760543405233316493814780567280991362778739171305759512004860644723867676925235160376288851016513511071379007270344051116450878592781067130524375034095101482379507222055499281438037954845155060168406385891213868718674332320335464592342085715876169429639664041207939603699942718838863438008935232959980554173514624316657954583817422761386879649328844555275185658140497741487582999440413654085188053135609933223217054621823893978581450731673706020699505881363367736538921366754465410730240636577047057755922206997985971962149306198999618172691043004749082089431340179270334439037405756782060500083472611814305705889085582368994476032510031829696939013614126161155280729943270734683214109828212337827745248776970875684804705767255568583501322093163063789610863221922251345238144334594523607156317005900451247670635781144307526640799796064352598628406399301421152891213975516724993088448483788386446800610805647230821487539935885746680368534026420725431862490736944626029092348965516557538390159231375167818111695602667500743225562307869672597206887493510707441243614317020179596266807626568900164428764155997388212232479582748083298464661389629044184925924620888290832907847674162838249415866308634028362732440267446329779751257716921291587682522836703035676709945208447823181413679787677633851803262463962840982203431274791699898389329370867426716262426254467279444592708367667577828118559169675767229956705506190812378950630499038885688013736980255475837558355432914944954193404808815087290061515897488664441892580912309099177762812556893534723880773112479522634488848217729376256013220270735077550026417958340514993646013599639050894652292029849420698793707643964194042627328574146359649534361129799964381452704641111216604812708930465978332399587269034834577242056083752860648625736755499513930682770483203989989346825286852849786064311381931936578305209251684138306575491409859206754697363619942171963484426451696122024088743049900853434861497348205859765690396557299736799605157279324989306521851513150354693479626600671838640186852636058760060712822457246186109208654471765850513727510677781047941949432057234438572417914336053511766751655103471729214139995400137214137052671104640932069789199792171167356447644390756050746051790632726652057766845155478543718711071647057090189810384806977092191488231814325638565293899425489101251349135500978782658762503637170122632910709483216534672619429760286289396258697096504424220063633216944422423654692012656708870480900906520036732290093984544724705079358025136556756064715035759978729229026179677780383451065782705773628519994478145133227918204808279521563511083798946566891194387445112712618905392667699138964850431504087398935854601121369995429395581426539581602467703370673349927017082050196573669771737693313080805951559526571654286484459772782120897138924782748503608451551017697072907723985988227544341460162188825815277122649841675158683884402786998856758992716772446049855012452042359143418081742501553533322687747532258064101383412507370669403794101322528320484887525916463361238055552004014533894228763766428876181426697600077154562115947240928554193735799871894717134059915520872766835592526195982402148736161871610415967272420451801323757333257683573478525356568081983852124940897244727978961976358467963253766034224448513309274209930018802936993597426394317789538179276357182118148279446472377288291860178497085684305144663143416847936448700286300247489314026749383556752380413006454691200020593224955682303496811899706598117687237273185723473705781867048584474394959163348667813112582743054802041874001531690448681409063467862508867081631212681384873466519821511194381830034550789601291791227680165730958947826671311146703565785288070080527440484012842309023729058162393443343532242892313691228378218800197166938861651776655917743802540308296934218157334501741658286061785650058816905049428432342475212860201189431096238806348037710113926583299145977831035523878401250766780679068123746840647519120505881754772818198094751520217333288130160176082651071025651326937016641480606459341822493327290023933281490960804193052669312092151619640754038110669213041676851672642426872296193818820219177241163070595269599815227412905157704894567007526698986662438027748215575589610794932351558181693122541701736965391344105767701068883045465330608385523912668026528281132496026795918606658615139377547778812298311374589286904700622578837258776689552518476583747899888196456775620636763086977609316190015195547503335652021493037427713769777439140130753586348249137448155613296431822849053042609186990103611548498526688394029599678874080604369778045160041652387243981151364662406988853388260546967646800729712740703655983955703260332948716280709933469989586764479409673444890175954019128903195910460561956542078257593254003120074206948266003343382784145388985717700996859554615322028653066715399767073967397771192397429559291812335145358236818983564474974254525780091404348224097852250609958298329422659860423758098271620603403612175675839720751007197596732904441227067631602701941643036043763238677222302663312141863825876434305438696209236821615150633702232412281362636924523945247020790473316362144530802276381287058868834725747967641132190661124246845355141613398145705031332513488682798534273986040937455136720413201327162224428359439816897528817520794879181332168624465825115825090363763227234062472818027594677372636347987434777572898427760854684157041438723820455018802911754635292656025752477123434138627974607577670062835489308933825551905530588894077139880367352945546026915991258929626783292709786297290739611411642928105126312364782745931165597484406803121758465490511179393070114481155195027079915901209191099134093377303815123931859408333588939599163071324878274374292461700212064507839242687448481412351403347378918967845941543139033690077142312132499245565544828508082795720744717938821317467258623502149294519771042751009651569987169473527167632910311392617052472893657612728265331756257632595294003960121310514991654165430914812790316321860134732105845048171917952998985084649257468720850894316913915717950376766289834872457557341255787557979409593678738959701531791982841091014548550497839089060315324944120634147095645494517032442920590879613550291692875089805440650294001188494943633061561691991955135099765928100925318883178814795411375001101526586964728948697057307873696487294096030172792478133029796984264822830532668509841385049446454986061467111461445316578315847699920220371508393830038778635270444211604312002888421402190312831934492174049532120007040705628838806302554304104323878426343522822772825038772467601337318293739565847161099164412515656651511859501746515189100221657911154455508820555954192148294257475183059311119603185107229275799197968083466938971374832418549801901636908093926389683972994636027086969289862810883313095779472602477826253895635721418829338305864024238211575353346295086116940915664914408089034342615590967407776059679753100356973825810949923739389875974316548222196766061000241037008534938453070943676889641765020625806235533889530276586353509694402039988983347873908017199083510664078952239135944210268777415164133772277323495799893794147066547009397512601041645091716470230138915662823635065219606152490709897260694215264940598716084048122863177896103567363426324290043330705183598629136135480531396942583068738404537487125903800231884933530962202920401378648584931310910092838045916695961379295259873569506357387715264520718085461603955226620324295756216919839641604606937933591282784176337255563674319332235356599046854552699916962093306521555052498096120762415728550427207710609274017666921546055215837710372355248513022711374994032524758081650271960843424592501398484744776956877208863256395227550625091574042693516274006299652181137575652776683804111894466149331972421980541229272146922027208271418691144615807538671794239769730472701761524730009670671409827719701209347973730160186020309729190894245483864405844828847591840020326712462733265400960632557720494972643190380873553120367888049804592074349542312824553042262321404241435426308544019037979669257996848727498870999118380642356238721209201481591207294486269211232970062233950166325024834282374076295594110515032852682733812649864861602973472290582053078562931424441112172206993318055594433162008118009799099425815864068230163755503059988903301971673920612154076451512679643173304830278937579594254620392140254428747144925715657024368728381888137798935782984205252064591678588268170684149596422859776681540735718726422491434897754775883967059102252704127845505162729206469472611916852422837157965949026916208570944489592587208525653206629433621903271600403271630915901036470383389287069323624471544838340482050247311462755895518107119031284241092933227753625211543720558735817084510505927989079039017149269717904128175004388419190822382728652076455598858381865166025522816878258944380493694609303779852523287578565219861105266974382756703354897529913520747134309654785196858596508183444129862343908260646425382218831731409100561122233306557649218798425567977076100205330536206983906009595489486587885866248489724414966779689031536944147363471696976358337226149249455418107549885447813512934492224656811706108960169602627615404013815629881203423396872762129983995721918515935869100635918710747640308968130894829556788978586931130317353581131654337097409026660417845293047211643878977096356036079695711717531382647561306617402402868798241888428449303058194430868634137046352320970133111280441282976223577867094327307330788502986841659065324258266729235714378669469612732165299218725232251560248197123906321364541389932701512930289249105028218598219172901859102650113736708428990394706593175211733691683974087242353412440406373416480681980135468885802204672029796986403085902571276167653598619956681688602398449910291462643047393569739466476097165626543952819256129930656257308574335133646794850360476215455777215272193974599886609657794371316494451607245827572295183472198891422530618509229088251076971784206100940377723756268549420357322477408058655307482685080839321684450181535627904862767019336431362495648166064086816242193162078152596551511105329227304427236857826073882059925482641380476458484529843365937511673045386019535078722374075645186374005007143345230906203031303671228460465917737281871630488234154976295452784633707020943142247413293197442611870190445626624461355482050313160170297218245588688985135034735611214088659688031119688505473383827642025349704577003888249127044387859286670403265931124835492415041882631850972698824976648250186075008809917804015031889143471427633649208712421834692897084812686585186456427918275836109516590391578740424639634943419019152486661169192296140568820830364817209791556094202853638984730444756682540274427911012903877244342766214936685274565678364598032257716597457753180954783576484995292642035586028274641697657870553716778608755136675675371547788753791369751284285976529346923656335503848343601390457073186935320269471496678104525042108188199344052568102416642596980525813134575546768826083601606300813429614739275469436739715639320845972788248171215132651184953955254288884352036135660871806658040828902288602786658344012277405327411751321929437073495476828028685275123666867359436328660597448137068904118785298441427068964436555873770262572094652558920160661898516344511504812284614721797819427018487978846925504916610906601562052281686869314208062296002340204078085282747342406244509745577757242628547438112800730223608736769968355658281159711869304687126412682611464277225925206989398661887490152005946335822178696244296629803067394007861890525801113885597837815280697096085252787875506481644169718732893612357232151914045277329834881734522813178935609146225002248077427971132664379171416974655926593038053973584899874810097672289171642424321213324751239996517359121217751133437475403390061754764721020159373289721648204067806346829914763166586674656945228626315122783038498082225092609462267401282872212381208776892438647382274870816578086902429644506153291665985725524413814226475682112307423969899277906512306637202682547523574625239290148291791362822224282476961671780821327183454202982622002759056004804655495064481034252184399069311809144655365580292621912868877434955199971985657347927878368741882760090241190031717161685282729427779925762809534529018047476965302809111343279350672056791609898869292920767803402073866378213691008365184388754692061082345364330653974267837533979017766012576936660472637364177386116706726717652613161891231371486487588626502282812015610111204663031605386276660039360256813618470745691011576787439818943923429310224965946294553054146341668071899670981965265731303589301708826949737189235477414441418617022457592680285934745290832854012854223540835837428380612410838253506529122458180976590440366360118922884547326419847811466305847541609129605103331482581530991573352003166141221457612444166226888107402467342215440088316074479049778092701890721809557025443466315392274718221287960934969619570784855855603202116171540934276678787117420603283346080079770283290722059450162108571957711433432852466074832681683635775812089823592898334938936649597645075516017302324263655208288371678469619497602944753478283139134239996416608803562736830440441942798920568895932643591872245886227612541177986223616746106204738912801150026683744627623965915949203568408206574349983345208342057583908839015798391823714784713493988035375297341895593810190607745348068626053209066424424656156995403731302394693122255226285851050853204231562056807604736302061319128729256253207510130003132386831859131811627262781225683882310512809278056404483122906332425884195847949646478794868779313769126669523748173955946377293055910121806161800900883488136437695956962722908596682509376449706374148760574898739932729015079506887062661842216308903931162149989495954069083752209415829366559666021982551629735095252764349421830451189651903289596302607063274908240513763600579370484113993697734744682184763269432839906785496471713690015798207178783372169304871272081508460009191819800763365520939538770428784671905237356928246476988736284321168729461275130331132215242695870621285099076418739085197869676978674544704494953883310322107377642164088786430688778352861936933214893322561711441255571715494067539096287198888846695415816234009346090974766098240136873499819332263511291215372664090464242336942846481334727786150359711412663657512864156425771309724440288763232074375553209127492925136591463253945407132823086524077807640102105949320654012710429946255967978551486267797409703859277938079199811114839381671624882200396882092431931114567532118804577429351981467628696748658453820561239024512342165929656793528423065986592101076068232022490208525896442062208320627166879930028498894062892184369237303091475387549109655886377433318723971685149829108674274821834768596095006708822129235088124302744222286510762675327494324904399934199554287081800547667371550378612924394358379975537781737048783980589778445484847314636061875921823299193186244037020183563505101688026908510264530714101286484355710657102544818042704803853234683383533408241647508457039424328509194805092108454613705870741867154660873807202695285853904965216166759566006447614757152489923081060436538082343643516212555265178170029693450666382921327797081990301432158594819667274914755178428092271447131951135561601915463515854937564361605929167922157961396845621569696784196705165560729051502128515616735611496795532777568924525439848525011313499231248832707753826420694580202444030201497091511124928597662446265459732074300081984999141540929570230476679587808523356565940657678860792304243573714479354175179842850187270069716031712422236470437630220346444689719467100240239952826892899281228483883637235509864735281110627821413530288160859612777451859323515512563785945948917459873212319852463316642261621577788781588145766755178835056353615881437357096514852931254463244498097305338753190145180999147426136321791647938892871676920302334492640784011624178980457543901378037316031665910683219347815683731615484860238331695836523911902667668188454540075530264546392248870190289198297211353358692795249221698602924022230876922327084705510297782949811492500354216717288497602236657709786558338655677669115579946412253426230503884549756514580875193539269609607752075083316589833725655838944254188683347144124253573382881945657329613612422207436880673996550277741482389293905687388751042915248384249972439343304948069997042882484132705793690135631401792999594692581849216567791696202305465841223703610025164874828994237319504884437080948986250539098756069232465985432498004925566968531469929361482093440826962890337598012284089563854781427341664356360893678701714264406058724560405471540156050783306166276853709736458834304449192549335369337791828257757595383346322772540162948645065339199619705527123303579172163594373464116483931612226906749566203685327011820542250553797737667785325452360526829605564259760154355397018872290604900044722081536695905436760653369253666057855988999781662295059841726288395038858701003045479624400709312343735879090653535400595991640089857436683784457189256446188683732247097985416405364023713893064066963660088021216663485559182447443915268976081580111922832593731410560212897187329301196725084481029072488618335630427990349042555494133882595110779581520280973185042398079490153395786689916056167669936947088839516726313320067444403871069611210333722263211797348819166928467070392959419635953401025053110226985636743352352367871301356040810706051723637816745271502141849113581091149414142425906606824132858251416423170614832149924288611356621498172729379672456730767227820712675996147954145754532828357098236020995628318654426535021392192799831984108697126114697344476125767803234213003729567872738225767607496748268426259521851398209296610852975775792228812230363141034040773108716006266246681787417435595750325217006622470918686109582386378219342564379651225143280203055040606678273580649397183692670544831359088006048856431295756404189053561633068774272263696456121159486344357591346577227134133376949441408112569270177446347386930060084736751047455993421074605832967649308800678971229342638745309500431383705279682790922607632121539625986860856062562812573967197852219083643364184081169640900438822652162984257917416366736006536004495832496371351521586680124789143299098670020054134594927604111460262850382582210185027499890779999855002070038390996606360959168423884442849194856668428000332978447616766781723737076335771910954169253754406238559742378651941982000163417249689604120205875887033732139345922595522877305967017356245710021520815309595382765626201694885253814109192527110179870932681615019324554125082067341471378862120138787592235664091056239856512840910351836217922116360194022450082438957712545555991965823585482097034864290756230903050805274212770258249878861698119322974573435275532691975916619899763566230641281267218131943617758196883515303534579765009227354926728219534645942428645115466421421813479587660381865144065710342130951957938277578635164613740338749928302451718284840508344195464873862128965180929031676600806128981195710272529518146425683250373784012779292397731099128930701157408820505541614035848733481397304098206366247459122722413210602485126028028827848158453211625493402207987578736750232640954601413174999456105260399183784934487788448248815813443489569047997418395140189098754488874497771575892824512580806454244813104300108626891324811156258082606421861060283483448666191794258523367294459846018816458125252719293733337976654793422383002501289492090091726020452077739786699489519613568615173992904421547674648944440099894390309352402186387553941150669421401858198525801769577356356517054837260069711915733361402741943941075107690418080745762353900529103490038753250649939224009487497376137374908111501249505832224986670781754760651749089199029231739425686442793219749563169338353126748183436048192911754507729000581109636172582160577399030187681685153783836205488469856754090029116854379551290022786189046370824343541762162310656032912109709415478712726239181935658253470195379496641870255923394078433492547922800515633681655375166009544439065468093471294711070236454070794517877054467664207685880521904074160625066695051411888403722487982073604419413467734504356924252672106387826167092268897616020622137243479674498751038162675019574395171182615722542529950824669321641323371672335997458168994544771918771109779412935950909761984015459731340605269352535451914216998289217631384559542124390057431469369501212641620618712269263071673529333140758930100763659840301291804440857481658497298731318833111532914434095151091727660346620472982759763017969831064419166781414741820427165475964777844110698986812200296392496524834696085545782776917677285747932564250092985238568549489687036022012662722204940415046955272239877377346572098467290348923427091614204059862804391102460296727494507122523147710038300624077764869697482600681560454738666720237941092994244117640126322181317551605820117369625819290043259932905057679879403341077291369800515226903414288549308020583612529440752310806838852266444799596433593721221876832479091593080240598161863565061475352186842233422318834148721131030771533292203005241591319579772716209734636094900830453881173515430441305123739526604638655636682477342911464935344250529892153448239792971025938062255017689891051633727546257636421789143605633331376772215138134962672052172560247856530541463550179552081129605828169243868665104987152726552572105124975048462349570157525468944020107549489688936960107185999095668824313409580607866153189120603791514928714208605261227123598077499201717901314336794308503853201277155061741432650884781294068430204535566945344021781964288005978300963942257715200260582114558273475162035190125828917994571010077104780100079700476627706354109035520961182182102247128953354996829563087155575492092099281550750042253774706299840271266165330480921802849294590395451151007808660807385259013995595337062925166564278049294421697177872410565703723683470452903197695136102960750578406048367354657256262790994223019237213470437555804339001982050465680295466265764917992263972789767793939257627527251632085349713293887847347935369604314536981775917895459908289998200408168943420220715616983654644065762089173610290900570364969940429240357840399710066487512287543107957372880556170371994287402297422389852634400173524790445537346539215696426545746092682031777768580514782599547088133794806041069261957423443098518796004523326360686866881400382154903637985753304369936214939577117701185675872902041786822332641597887297361484421567248456931879031694711656613982534258223573260480021601394391717150255228446958618300875434852686190105109565297459598357780271574720739107265064688706677296092384116594822801808147499802453243150484065422804377170377423687020177222496492582153197553699952260627787406209980475697592441154468100810480421944244238497725710033097099103157397616992122862891319045953683266109980985085516657358464350208212280397218317715006602034402555241299844367073128581628504462009882444108558837744762247487418779490703236877271068173468092471157908648586916095691964245780339256489853741059359306385011244295692248822186876156500399250498277256524425135390173835841352924072232170959554263279179749470052042364568658335876276652314562663605217038486751797839154148707332298344903950647396392626278783474565179271745905877369004183636003189546219495505089652535708923370145303406603120632151076516938779691924316163088010481453232088479403569687738799297279899739253755890302248508641915742128810780298441013960334911430422763618470037993830446185508999085680886204822883745294096596189822909937423726537904686596933920698358670612559621032295890719120710287108396550228658461582641743023999260153315069012966969676921158222739897110126170673054128819162994992805860455709110555802966507224317548226250458191077285613047155024527699037792462291441633418427843925886049659406473190632361330163028067362114063251587655476765005311923690854847626296720029217736815156777822528972696407357522794414179552473046772489079536534219510129342577873832333259460855186312556276135157532151303652637292954888866494082393923929645661761409117833638282606269094119586624005385104632391362502844669064019404719621817305508935815945938430008269262339990560676752403868239260487747384756806964486769618901025498072542748188099065091476859692873453267863148980120045613669755446950393270991159903665555312283193674164394287129147079867939216669283771997698636284724631381440528813969705001913823667510698904980672710310116058761620768435323003574937180065432471902860261991460468685556093581631468727502174656947662371296606660025263182164824932089113319064632833331102590182329729054079523242135133527614682803403127326047314857224633853534812055712240011829032677584061827883204424287812079323995645794626166714933484379143226031744427049479706427111820263976117880311235286753420605324416659328927561066933200117255347174095622598199570960882410981227633988559633781926059014282815905503378843211285067416247173070317231434557256938763187274792059370286594103504565884599390845685753358624056411202107088057317070456498702929839606033952769035810512212104016135109612550019207129608806299526142557164988866065325988067882910539565391690726493833604907481504162626432865944956643892047562876767045904529780250859444341067873437346178849591958845270908983883971279566389570473092472819935000211015050626270610323251912179720233775726780622628677795111519814451557301155031113142119394464769158958581537915665453903099103806937896770691586609875414559752665236140302176021813575766489548048402146900330541795051291786471405779301049817078135541867591739154690911198210021861134701365764628652764153016969865960432811277907301582093685572959072038908956068334733598214457997469621459509474302881922896619470203497096266600013344568764088495241688128564577421389946207351899451299691202999433259675954592168108475085543843545567121716513398675658041624491296418084716295650372666086316718358203529342945382325755901844060142002004223950664004682555640480078050332812738602920271826601217463207436516644731657579218053912187975964048210264379516934769703317869127840853574927046359864887398991351528897506805814222579772235541312148355546862219397144096682486649659661599051525971580096944647930999285703203651395942672918626003067919330441317879721666693287297495106460147088522339398087634852862511804685362553025109720384905097421268048770775797025571964042829576714021500770102242079484669794679261047709702957805306695980583894624054385506279909135431591462281525018526292506847732473669597924890425113794424768750593844732258940437842673242249682619902341127029590294358008506679475391827224253863226745790607796806759397372504363934091634833737563165321259387376511312582168168197386526152363781769272552305700400395077635293080441205882814983944010997938767787430158861612543524947520196043509574253387440487513751313132566856837760304616731314930771642271450826073928745455269580523730492444353888410291850032123762605886625715353951825602157691835164328318198629753904213202025524485366243443268211692037241210534288180481867606447344826095412115095403926356014031133588456843741385095184444556518645194345962946955969131684792081279842514938101512201521682663327471429311508552253905779647367841576945434124041155444935291737313356892684335740744111128838393212227706342801757163804600601322318691244820132229428827536906227969508524262582035486616455057243781772999313887496574995015024348824700620318430286316715288635983848564478180061882399097300224754887573202325001515847344075302793798195458694959068159655555816249909977879314511561257098010304967733273674068127296144273173385564361500050238429728173638860086079241315820572305067918462863113820396696725070844341233049648960528503822106336970309020725036633205954828514772438318393238673555201745303725710363169457960351766056085592522571409980774115848936310224901727152462488529479802361519207568753182549707285687798383099506215889894416848898509838974042907921250844624584609415939051173813164836576830877421566771177590733119244942657090564205189973341797005412451761616419165339897280319077262087784094026800025030569667699218481266316840320933981540038952041892551984072662504946569209345070594227405001562770423225259553072501991325473777147305905025160855075935981973854804490046922117462053732479693212330568875458854598294218958201166541287854379416883725053118116527770190645287828591751596230433449400880422907902309454215882170082533995339896805734246671066157151272040925254706553799029718277964686567446441898537978567456416741585837002432943428464062402253167676270516073413777348404232093788891641546015762950235073102987909796660023115001273400844641820593747233647236540697263498826899704643862294243691579759869627772962100750349694852326714865170155203247266345630721093563266290731833687894311904524455117918343801857152994682315417846550173640361771167275669578908183586214568401249220025824671758837833946880503640264025067746772371114004799182247723988492953651021030531880484572537888616703448266737731458395978913303411403780090745311285591323800301264845804226826257771008489670337150844964035745958226168381670033446986169528894879716081597755941174204116882427915957004935464020587392243013432954932703297042235830629565701304784444726816541738096240119728895724498507884232883259603770835466890891296293283659466972332656082920644468415682449962811623458565985611310005094356522761288870785135059070792289707126594101994267471646949796572662694950179736464735784224992394362238095876554532828949778543378922965859294463882078126765734328871061253273584720715453863423143314507599689806541047909922089650464458170727974930649384183386113720952558181152321550881734080706786921278575528483677588482695378067306290126041491112674094307916274343790226673034942973432146690139844917586297422023500150241601742058395938689732364153183572346916036689362635474083303610162408192814165449849814466808757946598868180805759154479403416027675198717443831661973390188845159317149465209662060186356104534200130977681036974084328414738759333191221092072609462124553506297323443192690734337231214044655136561690538963032382286122796090282610220031892465334524187378932570157578726466952041154439704698406643873965753261278937856044151417259503483454594929009579330435238177878710302910922487616288519815300281240386462605980707532615865547046295511904792445226910109861209832487011023644599008732223232070680436053246615423687985391262485225415148497285085619399137587283460606835999838072918997483676547799769061745517370123576384700875841028956225507537652781235944421546692513834456755084792843590400515988771444520036156578109318879307123705819859814773838726583099288094558805727021147897079355994085020359343752480274246271673343814290599332684551835531141248527972011907859314579559558102771787016902608123527281718231384840319703030605710748801947496909051065369954639922729229557165916531093049354969725968604758545325177543097402449163795448345574623406186842930695196387585765605783139788418812907089226418237789926627965971345755497996194737173490850700680127622381644126450131873317420199604698094969693941568632076041672355179836470913354512142925920115321447761266383482391163617517274902953390007559837735540372230711121359901999391442927208993865221306960334781148277116518471906688702078810934695984107316078633231179013635874519110878438577599730996965366911252867537985543496724238275389832334849881965347129601199578701209119941344739651326869436532025419242366393404426359700937653672997216328758117000231148732947893644282383894526516384836707373666326922438915527668141628045436782683830097114521327865350620090324565137391886472446625604586876550164303948225611852102949644490634826191795601282139418460947898705327052290891196244048635036553653017945897117934833423330791851962744732003002981179278995633467983506127996862774862361217326754937460697324294986412769954418902949759918641290452171017039446433821961658237996762666973926156333771446388739709640245253496032042033289004499355445060940332731850652909473650460867717316480721754288052294020797552659251911186612724806935854143236189125028698004358878600524261465503965439753597027157412704059596774253112822878467054737198602222072695805022444709274203148067117702476209467729300961016558468153464014124317386059887720371083267336883938944910979246784113295841176425920696618831971179367897733855870509672248588436107209248354383562987210211702830640076906262405395215041824005587870179748823242859254740592142520852337632848142179269909839928687413363116082382266286760676005655615312033512564162530428583650430058473026290861541569028151668843169856874272918424481591406890683299731705890375329222314068758367589884127923642031788035913521643214390136959356300347416763537168367468743061160432527174501604404966851636428797592518150416948465489703282829011257244769282429309745317221424958749061558482523444963658134300888903415373226738992090667981208040945633906160004752282509869111102536712990829578044443954163547405521391734590726043229290415985942762212277307037446931283072871211114836852011429297123455040562674233290484598858589031647153026557478947760281852769123378562405395435581195320841595783608492738511747888667314675479243954733579269958280879637224190723121518719325780669680501489109812478648842901856661385031176360198005864134708878593692204461750709122660317501036343626600458453655630866881690920125019552156133228143632986662070176067150981221799646608254447738251995863576147881634386607408418548277030446551866734529699402796827006211633481152571300140138958843160824973695447437442566685002265636644696609310845618644704204246219371720058857213730859435821610889501021526602710961106312990296908895411669470924298364532914067439365677399135038431470838942310233397777978145852242691322222629134529278299356668456582936331343481786950655113785590128698517824305667147076356209626749123035090408449902058112842164560482136662312357542908922864705260897355658191071434976935217075680688162969295552757621010621534970696062418441329918084608124190366369191513132703416047268356325241203512975145040700575396471868040365291784177667794038696882951461067534806776817725741567026610157622867633327653565192191066541178587808450417867133889860723744844949342941717456366618798685031333719007782427294517833542759974237735030512647058053300324038001884769145411763047948374312572200631806838915755427771870352319444444077581249303927905601210733313740939979945673574293403321436433666154718255219963066699418856229142173678623032810165956296728641818214575905874405145424582471539122110848024545917960924854447886900325306957241802963619372687217219156675352101920698036987047239707052809323315844392662646699419899733774606432698900278515559001894983527957200715349181308569435633810369388066797821652104550827480829571765820177238473678578914719569608308347152314208214731874363256831760349276544485789575620416710615911816045746100954953744948499615689879583731658807953582750831528992528029648242550795491341509885644523279105516361891021519780395620713256595950490339205044913712722453432949529336123256142695079718950751085595946157256112675315511182920947680127452943440792840692420245994174463551987060271274257471515060410597803321445498161218456677027926056910014428379150585260810320450880613650983389248725186237673236687202371140819528385702787558852648779105008989635032123886452693445205668906074066669154519522578502781206382307226879559128022261508813231063000065761880422469702021101215227586595288150988924183292994629539601720679338039634897959082576962512847275304828297569578225694583816341724581761780668445210773395391886179399325259679090316056872409415040888343302915851502904440321469065585888201567108196747953960304251113016047080551403279757746943419643234854143893891880812432966799158889969451215053261866378996987165905970657942106155479214392463260115025359454520059117876105289085395941250721199950901554870486898750368216391176244906637399751338307216524365481043582145913676759829298510315593771476040848765957620414939522837688042617160119074796848826958514093202941847778648603000690317664460774881240941181821580841156886412275358149977318342654645981184850281866255460791293136592344684256717711644414147624005426979100674758228647158411529987082517388778683952331473232623323636990889305161284233683917583618081438545960403336955061483199044824868552295608745068567312327838182671901540418030279995785134186637251129240464143953015916104433828220629713980259542678620890882363900776702381165701036070051379617358099879336267974680232379639701282042807729296281285551428703773357648342444631886608293202858016153214573377773147114441687709984846221178218097718488272993006592425759997476312441019826644223875491417223309169772347308821384186293934340363392632934208208365740225992479977150092217410376159914813485371722375605825882566070599527215378585280537608787998439501809940634892419315542990566559343453853435388896794424430131516633761748878257697206471382140118784370258010953973053300283250673692043576440114891778313098940978473998653945277679684566686316950545637843735489884185510365329988699677777184560418451157086563551553547539723653846352838253178324175559371412109592969172985945375665278893880904334471242707616561880940489382347455843506817052082989270415355486253238288857456155303389848109969387675173099123810328135149807344214045896021358957902352949323095474836685772345522213376881680563140857277106076975265275795560821114263306962159028204160472871489717074113302504761574319213529449238048671266326602698203439916404404313189163719261737235957536086274601545673289264599870797880833212361785877094377231585923484705462228332630148019081618086857723864614544541012819618508410419511771359237990466132672287501133714163246463541008064180342299356170285681614110685106961580138812857739027890717425919337238281965645851041960804475219279434565359548858774257251729757032873963721878552528852241190603872443400001465900335160250024817631890846115614608228761204769240737350574464474781222935326695243573844533047287879476879923222954821575581432676325043523986496533056964193791095935661903340394857315365214601116511840316781088438844881109954042315331451936607723073624619407240248370477900892111669953915916527785956325538146633943172972058092157123104404465418674239347374047432180640250897039530590333483745830529716531035434147443265043064948432555930280102141301687374424809928719476174908568709498913979543192457858904790966519584679020502001422837598783600030445063109071286645005543703396317662751410972198949381164243804554148294065266727525948036075416623597653698286059358291388256923049389647429079128567530686284257771263078439212638570987327590703993906710931685659718459964972210877864807189638613697830305055641658008584337368307116909484509279714532436542526515294096989206246149224176285456685569832210831452782457184490301220957206520818701307837242835068992182010844900147782276093544859725568222062481269602584854397552659581841716842372849389603275546915658099866159547437829330901918024167328120475361892188146376294522648608753749256565048055058880483113851923995194110585304517818268141281949669160894961001348377275952928166156009113801300399649538597804424860875849210116450340810250873719331806804990238747860498029216623215782053250219920048605770096851682303434042287453079839209952381851203137151765424583329738440681171549113116903816375642537639329524154847007569272911887113894853589381360853835369600670248118206381428874366003847645496018368038262831233577757862174641776781022936298160215383156701545939989773611850631575892525159765516400996412512737384321858583789859825934702109367723423592824757013827972800299497580917860674193027526619076958613510875927741005141087983171370623594301478319892817146546120739990765943225351154285884787798104591951154942996844051497127585913875613287857391534496749566206321642507239564310201614800637781690672145759613569458538028423837384351387019840122515080176315619954460303094322424587382397482995811051053462034525226754238620416934201701253537889696932177302404953763064904900088098195803036633361487743851800298993805598881895570740817011334746808637476041520558727815677610533506617332655249600594107396484700433445888775634527357153382865717692976849018732890517058499014165351301927640027458777831435714418719024596190357054921842499033441834184473574845369117802747310839827045725318577706251820296082744141380198777344969832712232050240076006689053915167051280654833321627121458733220009052927519880315102321766157088654628630725323484877564177609570277765697090655894308044079939240672378582045272499229134108933198828907694922308720259148765934799151177515983245941182587966705512698205537864851280274747923022146422504014417589749203101061559678137419838935867538919848753761528899604055985599632317387937644340692143799705017848822535554738170821992090765864690304070006197030034575284484208651178503911101069547023023312184854233174078665454256935644192972910782512671874926747387244494350664865602165238253372762111214861764649103517680105410014556855875874440073029264797587347807789179819337959701710741733715061513622710240224001493809182595340567171008026720105597208816661404450813488645639127942351930315647680848096815153329663156305180752751614101831631418273371519211902159454601169631917481228087278672982567556373866624332677241569913570631208008764801993868602918722100505685788217305044863485313956305452503039713641196241785320517495254933169128811541475723286849222417817160913488022676099140641447061714844606747638576772484491332817498591022342640186963940017330455678832285356216698143729969210325857196787134255206141545292308722588664556778868106304345202774261004366734534038479614921394894014096089496538148207525973738047208162550940881092627689075789649300960305498667857781844431412473594025888903956884011246748798344806391884144221025044304563004733001345787577512076356665956234299989237318104873159830998924722769876212589802104691581803995219392187088463472659608204584332144487765959447195781440726763357478365303875561646567693976875868321267488223525347175316368230219889636742896286719444285339084032989741419189117594448860743998063021138609436555280938317121657168857736108754850241022720120694825040208668650844302774643566091657675406583294387546282870734043425893111938047727706926990443311836532346957501968755268813885843963790867289764520836965212506357481375090819958632184425937881377553002692035351379965493362908518447564406512514812113636287779561375547885775650231842531757332492681831094471847003322206942410015675213662555455198661548220975703073838280693357750387393922917075667762724041554916452519087655313047694714305568212910273904258738958664575278147571532915809934022195205444777645658306131994107734194355937484431576667286359952103922374135184199583940658905844736825550926790372683975325473077434702257984927074174842094011927783812426668310164510562084922163084793630391644283529310417886688592621557893886738631864310779418879081041724118637249237814118938949456284944812019393934961313796646098271332071011037925783254027483552703402316155877462880167996870553853477677729834523743815433323410309671559831033440542619083416437170389872125870619877990402731464869459335031884350313594558354674601951428893573796622810399704291325233774724446524979398959710761964230749454816605452705187907077040436827681173052445789145754822759337908358522326004904974655873562301056922897467114671477581499006295344999609504447956865589993382601644066266766988610689147607372993902586525640489650567329518567271456790948729718472009556418133784047404253834596362395442979084322912880002772971998084976360939522876896954828010242832108286240786797094502273961172219600236932505334121351649880993314063213995524877536640279559612308285788197884605958469636281506983125945207718599307290716293517209698741828444691744158687133142521003821359273084211347088586446843538689058749372325744285003885987757152051618302353756567295332558930126906246542816534995911001397200477299701462017841957031841049662374490224113413218607705740959114449935181111731304738462767913920032109915334293605873879111811383735486010344450672407440879217585994933396861640686494924444947080834983902217736910547242246354706067303043128833257891160944058965214878122556699229567698078200227982471990724618729168225251071242486190461813422162579716360410677730739901091070716702527369532505611439143138652333357939418431295304998852081070782806956935091139488568514142366972736390200395817679065035978236786429098113007248429255644067569949850979379097006711467737879911546398192446751475576675176696015289417524767796942088055389730080340962485242712397378399230769748605663351795799198496647227507219752107120405016205796230076186461090450513191150287822942239957604620649906904422211715841865102089725452571116651836994799134497978545354390589584296825199081870237405915208091114205884514584754682557367043701129278528239663831051057852927732666164717818733331498700382470621029706643458667958802279592783505948086632349367923893859292048878343224026586461957382316342501210836064939333630230834246932830535516334959159259176083123952012975290389256038271307571621924724049512558734251450864784473772389651731733800385503612958814420747204486139713452901114128239562013610322955098772637535975197073836999593391450846123629545180832971444873919137157305525776293496190524601897095151184280021485990980242760529990325452079193099783352408731260018166344417681857228194154959638480633978257942129664676482251561045344420276650062650722010841917955546227604356678702736328657270311825708808486532818059359584891004890006354907598022382871374112171490247589277842291911026170376792860360935755345288538787495669895820250621729544556088675899611654205774160030061185368496135464394552779639682440800692024502435426795913205116284394970102232040118799606718661098153181661107639653667767921601253306926461504975578505907571097283839596370047270892345402550515844019566751138924072268632681939993576227413236958936789718099231103554153019070852323481691121863423342110243462055319626187022456919453980325178138080499965667618905288762518563686953934654320912058050880124389416023757355857665483880143061644779666683291878483174499361517065737674865894902842439585165765792750525638351669921831900301281403070635193235586360406642590888682189437645050204815542821061319703313612355549796390452253696456634710337227880681321196534016537765299576134424782713500546948964168272239560509532561936741543058193816220007581793222239682329732806540549361405062563777420760382575691568159406031500118799098983127512440446120449640504059511424570227034603377360350016229738328001667055078214716009957313340835543830890775730270521284480837498155695744820100044017684077257283373709789038364021459325997914782130961624818391386429374937026019157508617667677837367436025281051264804708919038208202165337080224614563211345842400436863122413161234768216420500593784401594071534810894296319427321303861542931166929566924823938037574353260570035830737376558692832011725889396461045557374220790779567388944936379861325022188394327497174536718327723515517873999211980438817384937196020563255003629851013386333972566643091237638100478615912885280674322944092645147971856652634087920042707991939410396468427271899250070100946383910965184727086646696312606715862527079946955306310124888679018230610182810643371602751358520677795380164731357093814401077120922536288184555220383293646241738796748070960021071191042477762981425734006351499812923656863091207171536854085108266523943831083808346671339108554972527685950502506428711326595656621945316942039058369623790611957748510935283998351733784925530952239171109667353982974220166379989674891431650405098587953417531205260287863342206622759621099321521291792572528248094261955286241775916235786552419576273737892845740210094392856934125064807302691525039162285106111022569044920404526750399917069760655364098782142992504500254994825917931222530134321564219227920483954500561583933887828818025364595069318846893987135917743831684315959596165234180197874358419354874535503219410659921542062472897262373738820382766856740852679414523917830116173943848506979875660721919152684381126641791484830383206895803921545292524282998930386258843348629547998423243438903317600005488549127631557735548441816094316692381020735760028992357997659744820806067715716365671547360104930258886296619992288585367666610642778580623265305606730676517143261040577729346373164742351510922132783708114307272428098485181976022018249494035208666927887024858598743419607128170823522099739642723993056821192995982694064537147945873756481111118829888422641249953555082122367577359850851933788507200646430896412761340832711037732264327692070608703973367012529815451814844013268647376224397482649111590329038159180994880120516025655209612394188955238942946035746001146222968538017154545823531230064252107228164198274460156693494782074287167723443582193246582319926504250883756486828503387206336787299298217391373327270868864040845754664805364976396782586505327526704824830585290046912887103216531399673632038941157149391386373186542912744080521054174076103096666373261496936294289249569786020954736356957990658890737447152501110492635996607947058036898596822137466220680506621783365361148871436326135220032963956947441522467069227296616070110791776830264223592530593112382824911720259646138219620813969517826324271962893253246720196888697930062215173107066721157700273966031861814092135948378450313201467381068876018047275030150033553407834105598340218274362775603367239746488925399988586068392755968605879387733337242797016826392700483536159194681383640784255667208999068432583248645223616541620232635591762921867209921706672986566533858942848738015664971823236389019581823598478024046581083940929862699314341512430971035323410805012214298538578500917411355373455257271643648476090420748447086179180296612992851201052199087965535284628235649408001355388254025920022466412335588070862019601545788700893783368903032043015748137671693425346317245183217265337617642894966881129771371027216916488192101395325087684952091914185639344829282093145581045509430864445018525132072178835707363184126849883039063211729830973326097334407420571814840468366970534953664729471246874933981794264579715432677205087830175737933116187742957107532286695571103594654783783683555596601389055654638577250221427495991547340458308229958378499131747386217552590517288670061273782647526144928650695230940460256656351840240414962169220084773554023238349337989744342001242027704434425824216928026259480357289159983935024983805369373832770875653325793137127714778808831977842764910520394142471340650332574879535883665554090986433241747301226687223092315078528864872078767058527275119167746470656844494867773646695375202157127601429436094576149998106916049559304444717797228651689091422851633333887899530705513950021880035786458597663289634069118662173640945259531567835765992763766259966121571202802276355643824125292871069490217073480888704364460472357464982797776043971102434098430834843003068360478361221081281613624953665628572130375270951610259234944863082163443207421457006122497756358450126586937813032953511993737691875553608818747899160980849780066273583337982667596569448238712562921270658167162870345872219862309967474978871664665938919514609149575074658100088346322125030949767207619004814581464048536117080118449341603118079119806405648504261369292429222829674139474371543299731769590746448937063760262186037398458220263119627635295972969258197822439649274536723206137848424003621410187601415269236580906523522294741053908136270060132828537494186420771563998493504916102595826439952879764108803893585722722869362517606017328877227454197523419970298662194287242168112663995534891033866967676662829589814060497690562416045927772712633848307618978001431370645568761126397897146015498750583772547971812248272198097456579659729684816207058188063586466391959679636017255523728808930736882147916652264483989539065044924294047774391415306115332277222180424667214884216393607829563826530008419637790917243622299253474355655603953683991862093109886811851794888087239826939059128437767962967122061831303447530242668738158302202528981642742632194267811749243132442810629306392959903082497976249994374556611881378841848452697025762779947273558165952482548099624242124752655266718150841299338859705127954791564350319823591517151387278948050402940092355537398399636909117739019128470539823997644447556532403010596168018523855671143732263361744038064237592504172077072976830926526339258271991305664046041737567997921142416423410903040434118679097863412041380435294302486883435048231345317557080169564708766331350358951621857238036566388902788724816736746835474139732590979530238904038132718389537048621710089919585840200138512171286715059220702750790161303082933467354478411004019393593857610912093999690853366419368393294574251117597164893266499112725412485641057387508124577437673597614010338937995472244883285095147341894732849524196344091061473450431445076898582108978679663097906595437350780809507020166508358524504656216886968946655454921593575554673357621800982458736991759764176255318398032687545370064214836893534237754985453871718943118226404243957060629249296870095848157036296444398307928664306896047818314938618656438342492355268741431878096631808835625837823343529987677734288500338926737452490870468779003332551699888693767038014331026001850089340215769754502126904072884190025177356825933023817868305483477995223450059245084334672371945393411944633402985138798031796954851796343731731095600065512632490899344961468176402245481717528747301951920794137853062574695033518493722713017115424769068255526914894785348045374283167977164775372381676090901556444110054564535531769725417097149934647858520769955057726779633175124603642531940502707630668209967513447663397006209567045765958673622776358674797012316348617828071990838301100983051884908852519932395924101687716515602367021297055512296229396548283200220705019074213474292975088827182082512818066928460232674586046955695608024577082619839362197538364321742858992122656033228495412342416749718388268694482574100463108102841891646437853669226363554364546589018337427012538715387578545683302012293259027232919958907515082784375620050503828543720449155810002971440116519162905325656552682230275112702323757566435802352407051135138656925050403610289658692284792017227506012039380299875659109212830895053094234856040417358280566187501361029803429102083644992670786847160827747695432482699622425311850579278686528902391718454773176186514912858726653368488415280431864275203826405702554026027920663544436651350982765327998127190111849839164850476192796684135901251400390565387550551035107479194699580047935015208759639529303118413471231211968097507056254621705324271716836503267946583323756256576634521200607187877140729224415707912345366976024443400549886320386815879011341007344283023971479605653988688268759292573828633223926532274489458619250112543279362083587069680800458683686079982502600498959712197089136787203584034869547998156806443721152949140744474095093941117052377045393739389630974501366935398156920876201955670495303624491762512267896129576267422800901083454065546288941289707675967339358490287920165876427449431361150303012913594574228572421269866053016090324858708220371293963210993582807807450822321334401579486257514923895462202762145202370941555000111728734620987116193665022110132304824905914525772972820673042945548066628940383586599116870933345890987925120207674966670987401780265281911780274183141743974189082464254232153615005723887127753362896123630247771183292873738775851964260862275123121380463891353838914774433487076564083831674925111896046671208268955214581479244038077287811665747094137180261372112665497504233083133308450837554860466853727611054932434763166649026321230634817814945558753290891897929736303964299614300160630326810904411736267244374641294451213034132816450643554493123296766696693637109112452118022591369158244796785857252246728713392932208011639735580499779556609443020280279254803346624682780636734888039258620678077494384064358460139549155980161491867260744511945805596294202812120891126746359802643489837385774525736573994951825306796012317389331469741818631635627782922785343417421426722319409298282830503290801616408341069398425436935923409189015737800881690603950604191372820758781844669861269396517772071400886558552157764639237039109254513820377152306212537379871639299045231302432881979224557302579189041178193453557648316122409081390629700268677872785990364754725817491193689797003026950104049171014753769517836889960618302881982571935728131728999760317566268182108273580096289423784801052734485573591658284262155710059996507557862067964450209133106614199732551662606061460872696627803969761102632965071514015602454587355356744049369592845438640853530177385263198845370260339633161812132123938276744747693886555601735302716313658339707374433289974377511273568344556187655151436648208505761142531977860153447962617494565901982773749296182264527202445014694440660025395505506375136807293630423467104991696667866402414184158894027195825374253289859372318481502674545421433719747612646383712626296616022029670820998754899546032481543897582099215815762541412058624019044902247229709084088451369804037771011808143912392531042691104544747486858274411366396662543038578443751684694361186666792820223487416135052961795821866980742153014356819623931932843850878473774921104376676387643921872840964215120722656436404977970548290887639204103019892838614325597751188774952895148346626644599006579163135993309377661285833458306834147342624318812256438770318631452201530134431028123005048813480708766562819711953061458091063249158745495866107496786618305861899787326004839902044873502892018082921137271028314654425089462165229142064902911092251363766220950600596288266536003438538211286498116505643683175667347321817512865579480080759299225671442993866219363903650599201727177984972637751304693678870551241783571192894523911535387409923627366551515975790622884400044404505610965754773171476237951848728163240740029824149334019425858385154432900009962066572839464698712625041718979703616965421502038097821827324486590961713416726414341231770422814341866256618032281806254059759937137393797220842778430049210750501168754047522463469475250687036588262185768740987727513312876032256980224835630496552879483958109635875476373326309207181895595901126429976451029688488422526848830891777446828221374888332808757052144382731442965096388121180254351586147992901811991122873109271557819636109586713791965271444442673277447824443035622145173166671226564124588368764693922940946281649302095380123438416246977917338642338741216646250491282615885159504535350022958083410805056963727521996058405622847122085507543359215123175910737808167418846268320515110648864244124513863817621300493695717450370897324787287116136568933129287790448125605925121367471948201658567458267901099610292332146583643082501804303846246659737526767029788212644571341694902002251610630245005853618153731858693914040988608445566467066857193247351931817281439632266993459862338834330244030206727292245740066882643746503859232720996376378020876064126106213887098978228038821431059408172677842913253766699794079398175394926139805511668079226355092547543890311878042558642490622818831323361983305569684827354567916828371613227077368671539017330937816131807079953476647618221752705723988012563279212595517154374468562667868675927817883086303569125634088802036980895122667820620314497282098782510452678258890255009924395770510249292610566899499493488135977900579054251066191177429105669078027655606520407248021797316406093202124465073416692495192892058037387362210463353217331538025843553673206613592043741590882804860412591927439440403683672767446010152236480688969711611924032371132532292577391553174116961456030215609197759146193419339867241199972096554759488413074035663764542496487234847445880722994042956442139252811721057535657018027426714167653571964783909937444300416187004247380703439563645980467380389642283962564041930907570514618631369133392164871370146661477845542766775132151079767816111603926357089615982516326076056513014134435339077495084968307954420507972310157430897816039993179664373893495018196137342324760431465690680043423330315897424608521190371778313091262111127597114865716454494029344666649124055938149017042642399959634787135201586960442861096425523795444372343269355566572315487345240055567788671004305051332112800227630234115081545595018858451450896051884742994423597244621810307442340964773129265700905713693403815065180463489514323644916850048263012627837213319561146265110248375034208595898580686813150721511001455322675806737765469575708727522321310170552237489953585444374174499762685673748041179896530151704290282456529072181142683729525436732154547859395043030521917003154053259880223956171488237146508459826816362175695734906847895352727954928339575540619113119646619914858216322477913720689685645581461270890286065013780263293244182758186117699208639681899255505945036765804223904604482008257551693778790082904874894825772837780820570040264383600777429229203984796820297593569919463167678292476503133551127377384345989040048803587481160058964899745229135036373001353560641796122677366201777479624869768071223197451992629765168888886736975774737751571695557416091822341480395623796626266183866453467696366957670255851070538448756401048927177637916073872687989026558535946243965471420827429305347126413882915775902116499503481204611960538493842157744299013656326187117461026077189433231618253415566758530275889964121374212089025184076661922040873782391694703733732671429918832519034134587078029246192006047987014935192754299466521972946005768187937159969086790700818616735751689368358279036837478917972185679706042436513624154676743204294738529178142989758356293547470165956464669660530135803814054580113314392206643613741328079029191813617491400748632477754861617807837789327156103567943650890785097661720377560802363685123955621957293587429846596659406517513433083591191474366354592445926953745576604691840143095346705844574370965319516675567698223919391537124841813126468647109153256722219885692752932981355648247143464804326846119546775335009473602424338642476954663790128907549382807418770917888172940561539829929222785256476964823756328467135737493231955189877673319426728446347677162165348794894649347108676965041702186026772497367174291491007683453507254527693299201679026193633305126456580453578498191149943396941403091873334377846111221607958272657160769797484074072531185158030559247020707218880700686294446610396455344247983984323043465601914994989797327872873296913215846806911174614136504384958256432998925031355034401948677496432136280140693562041172483285197286030444097919464575288160585747970042786629756157967058067676404482441322163931479618293041752033788332359350029375709771654585033780061437395353098843485609702020387364566051030979571714397304683488454663139331001731329809979652867496766589016489455406294778561474560654702329075049502630626702023033473566524871437334681409171435157164475110791639435162299698963989377702155656432202979654137565564507003630667446010382156352320856467310916072889271401826134932927018599602573392522981373876481245035764498156379730064018746247257445197680657422924169636097203805703506767649016697308610849133686392597107894011751995477656989757346775727108083244598288167917617310977309765796240522738626644033980640333282252677204640758108772387827591131629852053612412598244599510716562628689605940417192297148528819492193219127828259626820550438063003369170637386555120932663464081520531992049360402559370897726743632799549639708886926309022658597989641209135347701974239401213502928136372144005665820279401020789225274255918063080320624556877495186738181124781497202906854016742354935503959428696277249614278451092848862885112764409801097316200502799709325398068110067067867624627038060296877955139647844685164551636572142003973094732688229562655732173620919998247434965457817929002728779404022305944905381506688963019102733706265707911912009575367334129311433255786995500278195795552877290307303954440533954767148205172941835185870421546907327327784979583812505294309207736480414314973849201898865240461769372100765011800360368984057336757596445510279239562425144260676290994590592345059464540065072171804482594719999696237203524544996246010425142394300820224892831235700197889890813109123730292786695583570527658630692722018265428462495486456126793874370835509091987235875998298004777470027369790668594735228746764137429250530186319007021944912782011725497906602143544330599376106200770821554169476219859323759413864946704967994026324435257760693082035695795173980715690282845036085159711315556948000716271241039667401273958222466445088587610255811657139231599948758838702774932986786212887837652365909512155404669180569853915388929410881456031236272977688426092944451504084970000441518975084138376674780912991627729859151688701545460932125307859537266341964653691674907425031274429966219671066525108153891755106468045941154792176152319676346533691965643019182304226503534758124234607140149313714934203294933829954094647695893887705144928424295399114208532150915362332622028741549002272872769289333478419267950516873692974268455176466798324922877202338042950136394348408513007654586816057976278193844708180919630261991342289381981631468644640842271422287627378835939824812323035235805634137345135454727768446957764539650083257028693107873862565977220514471137289795277937972976644540957954358955043624395714002765644222393293232857732537829000836723611063786459850520550979612574108670298129458353897150796808861144884759697541465093653550217319102173925717162055520129157324440849295507784102014841061599725109228219030097253502071963073921591724974182061419184103026321804591569724709319617483111171191231624676151352536384989276145828654795486936743237347332833590428112732814374454013121741516782911381300407061025622432305166229573055532647929127459581407835251592006451617399288265649442705420698132525316942667688887929836424832980013507486942548093906538356231671243463567531325329526850602185037002581648150076071827048856468944071361245097053628500663480103157239661162349890587940391725688758375333542459535239478288303034980787955417561781943528629522600458370049196691684404333732022583663581905629319239687292039879120931172910036271883247990532922575861090510562795324293188503486436929680347853805926990873006237168496555050312434050981740214587301238494840967054364821026575992613552241433473099909811223368969415759485792816967516036705262531552301520234558718517723467531482218803495914984729227545210198937244140238965944593585162491373630743954084240298524281325296693390569460326024073301111236842764950402003769149073968846307387508535745816592599160805778201985198980619985820922209660429672356867708750578148417425055724429609971828431492393209789225375489062455253381253534923487025302139793119859967080831144329387059658825753802541661145501195933565586741276518946401799485433542875596022251749131499336988056097248448313676725310302956593679556131909394262973888432279231634283708415558750801192623514369123890555216082424666145807377542702765310336840506687032563460370562953509947135370863402019294895589079509880808642646909050930701643017399358965429124929664026955973286612590401683488314119170542143609201238483789881820419801048530782503042206943955608737085023737171967991946973751647280949079883197936614483851797591244947480900290660985159751514107544079905107672167396761068783870479914801198239946023835405182592393436766393628409706127187445629004038632651665642057035989594411082355152038831473463971302216768641081814881535612533102892072113551263139267278278531721262048517453428679078982026802716812833655616680656007775653451342285200170428646376110188266002094586922057652353112841031332601127269740420236907792298143737389759715807697556238006628732959095061482158950369709099925340196406833109153237246097682121301290931273598442061875711920374214259399933526457890980270136067724041866155926849653713657667064228846411903069213373684975609422902311944828546312953739028016027442295143033393553565973912945001901105581883214900228471529500044317681155120941551318545887937413086949439629632560214262820469604809480974259664977034114414695884191827613673637246749728463673230718219263949634445941438051521525259202607291877837249030064363667654140331343577917287346956202218060555080087912902588001560913468171545322166029270273249531301533213783530547210885492694098025294817738125098920449793933432804585078146757459579266352996162622348898429280655270104811206635588309570596235465444950276771602086495458859277645107577571226099328754278008771112792530999446199375994628672247531622347064720908902569901184283463937090478293141488503365662414294849410340168160160973474640524046586873623072752855644824828243950108620382762000458421737363602957823884115395771516826274970164366918082068262585193784458329668857488646448620979398221175348500806019834207901026456226086189836070917191737168836743903087206490013772276038297110478368751327941872781779931282969743810775788575564972981719635497256834570687566160305477577284523156925475015461094509650132934558577730353795220078851715377566138578062249611723238128559955122307168538915291409480697829670017827403925712923088215920342381588011041230058066681963371004890240521906226309911410462496874827422467619137940876213755714006796285557855815968027189834164491610929638089208853850991501841405848115907129686802135474933705294524442959704596890976105618181751140994046754265872536698536049672207611922985916253431336759212924426212728326746922238795637711439362225530795484622132901908299280791882785915157658791479543636465596734860212157966264321715006557710050081032980005099842549969760164012544364356830162446507201306099524776669382863352920764019182973081083120504401986065901963930625804710026334899902893953674116667692572715476340339503274043814684469381592900806349666407470349862368060281327497215630563768696473161151643857375019238898175704167940446844959766251802052674027553095904559443369568578643440213303048000302631093130492259763468040821546594868840892981226838476601270751884747264795061762366684943099022937545435520891424819522899670603407058026360947481159956910007552056173948365383315012550707471758085721422900299781758525078735723477054301031663428463922063869935761481015844494494081899767611503114362262260696494576725004409558036344290421464180919535419901621075158353430837529197259416039959151423387739516131286942123421611378966392014748235233263317536247951249050592395727446774070967571354229998138138930684122631866201119010015383119792848486667113693900163703357215389732206502271887360123399418158150755641083987372142282385750091216117725045570407754004321162956729283231873973713044904800079507103005653955458793873708874584641002885845635156860532198391923765585135513525093142273517712299033989941634683037736832790515724446510819768933255984496537310484516610148474911414526193911159641792546229276161495575686197860946068710846440851673880151024586545715674338401698643553562485486708655637034893027135543275596468793472217648171142347680803616242975869595651775813199790357571878137067463752486468848928226551740415230418650293369964215509655881457772202091910225406812279783907006429156967579625872870622086222792332517377906133967253429504843625634878399107740059782704382789312974651854965919230657399495403267249147233493071621675455342087705902119529757769228048841733362101583040745967307226749430869012765864373277482538392797937828546524339338800052652837367174212736075580728591672504487541847915921667585299872578449741142127217587247288112142823655526190635236554486893866012768583853401156806470537263773303304222052139302570084593071014752568803289859867037226895235771529093587388426257864320411619717778457951219142470959269874011344111132619404271043737552515147360953061181496590354322341964443807565076892545598388464501402221660156405678807703797919653616683846534488742094370716511563154149337215696149868048377085803612206787593281138728090212841438189399710544211393141580375465186304423744123634690600520827920358909644907972201456361915896851929041804108357936804200822564730886440599732685517218762195014409161806401470955640197948305271883348941450522778509326385712365361565406120425078010721810725980104095740379197829651390956557497750338900759943901038400027234920810627096388685806750979242936327118337179025064362120552828382092457238381938896801233462345541487448602042400993781601691209066572466319125398674266709057254589067067029455266919146648769208953634800643525269041719092864062195480543221005808850832855712944721473102064720131697951583390356697262519079264231844227982621469145626808458835464360386009649316386317894488253335357195759702999260969597868195899015182504331879853429233940945518484595969966665263708706037478180545049603242811003164009431179802461306571462193201183685374344083047273103283525188658441382641992348097100244113216415927452625430220895909882212441956465358901247560483699855080814646910244517896015140547452358802995173132148393900443915142472644590848915314368963037591734301861101968731776007813990501395453717044027839450728616550163883945503216897359929147108874043947492199372095759631335538912401521424241923398984528302401882468559624517647532747511841709062742158437652428574508345179975349639156389639895972840283642644762483986289762704047051407002790760637069782415995996886636116739247512599056848997574647602659669960401541200402114353473326223780546868202254246631081898209462018067642859930960144185479402785581824633304328226461564542009294322207391951005945486172412014075876510739734035294458827242926113416869387530842598899706831040109307261944439989233491471119097292109227607000429220090703479929157634780768003417756730488197788415445396920378962227928064023186177287768778459074447883189440091910036288202173904573806412905331492516304470395834780298471338998673871274080315071742962543536159005608315292800083566972247866827932775416428212055156133325885874500384108091514878484638558285508498307025745389415148625940281125512989439294212800800639192439698238159298133645229496366258051383575229637396595713339776529329608240627748591252913261400761472758662304679978693004955239398921188137707063205383528821521251848605707289969256755199020474441403892558296709924060231443847995669711476405343679427297388776281851737629643775162630943758164268186562157090760682355033115241706546636042826836949239037806461034809132420138729087654857000445773576059792139598223112257931570861686944715405864449273734716166392758675491626295605377782807609564515159057935527071694005153638201322191791161088937368581963244888898279448363264549750765050942221683154219784123687308901870854226373143786349055389286165315896944926759885642399476635795641990864329113214655726170166097109479143282200897550285437051729097207050160723264086652590704347771415299820517687249937822681963986066226367324835469423469341670704947727267751788193049188266713942904436594236739671914427837596136637149598790885374434149835096209860849281661922914047723003113379756387914542889874986310830501499130754563616864593066834355635658592059943194114151624173683559111144873240725845297751966927553870417914128522585630952826226686192390271950905419806963609575426802470771891998129237569876081489384318830721191938003619733284536376650053964852735593510855835592995882669395655666436460126243484998070791614581849431924673373436361656241786091010652618450877334776346091281588982842621558549135673078594856470632349647117870513920607834662148057151351624970554200837584928221223280614246116766889577777762064448203988218034723341772068997896922906819950683658396497678960788888815926815670108668086237193117503803216162746491858521348305700318321598508876525017630479491838937730557536060999582761506382589991631275008034796618243007417017607805918407823307491409459751052473768314056241021185498651323633718122348194030303052949204883122869379881142865426679157163731681653082264293806725940595183396698289242315542242763087794105208523454128608209066702899129181350814874446399727823629732229103632140999436153972223561211288835262817304166497745172281771070684004106777942153918366252281201663488068218698256297710788946048466097784404529206939709014836448032532793393017609167046692973642159753165675963986311984476998654248740004378345114224126678165781331375523650034620042674080263240248628202491469494821460643810391823504981727009395400054532085043940856923084527713893227572792396665736316732096206084354250060655808689251231348544730802795330897694730872883633138507304506601822925992998509272502392389563930890322503259848724433340472072603449968685268716459364089995158353797369489726436286419874233376640421240803604640900325943549664438460990647946078342224188535758570848614254077956218733648923417824381219111017613840214063703212624473313230633441329395710695434462802911456533872692163584666460446431988085777529963983153440206590565946432161473002863359079944427700844918305795960355785198404572104224756128937749463693670477453180136947354305886689561226705998912770230782366620004374318852292200832738682988081341043483009784497059430327960533593515099397570984757156298534111417810542629511854875140686247843503360223300820261636887638175008095907681508898871819045587320512290787849743674982963064817883788769432650361429271175331970602326961302435425494278471874866658830010593034647933281702423824251510853545436716855493699298692528167994003675127225302961551474177920301219947903444145419595916165289172806426415238525102506369711561841042371445446161164564358409588590813010059395237955759108551803925023686822436800006596391161981785636447431950797019462816119744672028594452460120053770789846781436777768563224729196146922908875058411697094708221928222062148689265195696541223298946556374047007264255260767961955462044663759751251693751025731073445047093655744795501281467216708438358478951510130991008183923699166896571620414077035302671182643281284455965930954314704552519155569183981174622648988811197009112528911249792823372787365945939363549494105766173067064464894948701515655178931528668582992897267497570397348895616885166671708174146747695296475041768592718778921379989659198319627799501857884598505621111644257206113224086176726503451302527660045090366685640221921352875305215183132800024701799696133004256148928267374331684681965914607807242215328680327699693021458739714719532761523437224968483201534517913969436345224661233215872079465471648082252218374363142624240038409544652057939529927880337465727277278742156041979685883575349861457756843187348091053407270431468344734640767608429758965707642236107032372222168006475507983721479357895647411481357664586148708508956263920658396542074191594379828902254811032937482603368995855010420328250112307209930253076768073746238641970885312184163064149796729129412871270878403463442823554189429236178567060375843563930637395783559703318423717633820092023286696332215723371421144331610068245573256331456469984679204076237762616873857450646652610009208342185488380145727422729544134545098016899834000853175724280814334315012309162061869093376957582577024072941710830397673977823963350895717022225560470342542957470730708466367472703508237786321992075103690274173740874936160090847685502716085409781125605687616858932845116128681524236164207825606410176188036385803332679913853597843862210722624075121354325999272584253780851199988278257290108919010095351583791994010291453776243365333331413889707972251099682528660921531094271510034468391657603890075774352547118806084557030991066304007659314848854545641291412465078786030599917990276053731050761192937575326962285753410947746724240533736274583948533641673327108517729192721624516845211500059481379528364051586564718432410176039770094714624548488011770338575981180219872396273633802590759660541605070695662700356580118595438269039408223541197188034288543552897509659207634669912607389187202044998458655561498484371670774660347407237708347797461544859421835421299180381199849306527005403020601725750822140879841175947115870522697136920385524273378543167831047811111543878870203232350162317518166760218749920194930423984270921375097907347224508208820801742711584894314378897505968581428728963064689817301102675966601666191892458050280795038542007579937557298863012799749547388786916513454221429233932193489237446882151967993422618658408130397281967405840457981755281519041522711791157672826021810735939885429713535312027181767159757230259279732719966694144464702115685546254528523729083197488289829280433786853875952193872239400381792903485111893262627545328143041987220833238781358747588742463663654125316125862071230619574235100964128510521658839041739467905736893681366844891457340966470769068671086215030784403820225298301488218567090150111614869513673399155156998135890844293592523740801196886681605247758408008148690034406621519813219396421960586088662857401068038036755035373660018059889154710046120965865480337232805687024835407101092622509169801066039270972662814429382541513271020888299237660007437010902073930081703653324299787943281263661034122884704646970876628826362097444314654937794444265269759447630838192505914861814017342729708845719869901247321360135808119958097368041258354473098711066620875798616833770034950428367547910316544292100404206735790867222825904411954097383385434758584615228794317809924139093195858818642831636323330259975397588467582468035591126296253788644618927663873161530576714479084291948677387586690023556306268189915508674347834321565926147155832928845042984030928544248849320270631511327780892359751317709899367892383690143738316676311912620262508978208945121617122040879821653126051981802948943648713263729325871141318343881329043318991515558194138369567310053682594714640123821424922234113541353506022786341664555061491603649209104890601144419948365629117824060483050944807932006034783682025325098717624111736570723495708312767001103239733939219866491337304810785115624193891448899686969047073176124804950645603249879957010056946286985063263032862213430115596647666562328851170584662082290968380680365118132821987080915031724955630190284823669767938023907899670105538758409065964543457561531243399625056521207426196269910086973735626868044745584152509111868623952613915758581643902601871816773217628258707478505461589322055089858905933934468454251973452221386323706225447955384424996818080773084147935987365615348812106807233748424129489650015309003609890684309415200731459780870475425103877650303129785416216439368521466359677310646165289876402179299764514591515709100849591159769391549732150649940351996586780430723545661806263848801648764459335011620779326002164959154900202903674703294557522634700058708230410231314699975985050501040337581993163079771061122407239803013171970553427702236957333522293678274369194992626556306698460767068232119992503809353583518375433261968586076566234637394060491431372934198319579428815865683455837072836877474272087962229327816339501860464820510773635402491170061609209412137086838669780303423451682577109470495511904198908671656396618635745584640200032298126901597753314820527238636132367014504206838367067277732331065291023216061730152431179148699612010728239547509283830739734271521005992259859201443664908649607639246269259397878934600739699371734630919756185329085292387074199885334014620802493436903326733566887827820924315248901715396906381627274436956985266396662136488770437586750609336051109937623507376795061381558241011357006527241538839639967932067752477394486537859126838134272718130117847537178177976096236846343782411279545339366733185656192851969264461637462716371998520904343684505996235068093730473644711893891792013760309454134255164819484251976085245531943700650125564506447489198389773578022984152528537188841134545653687063781089863103720206052799215844480149242247061059427886146679987789275900632019056601411760184840723964270645471133120610648894212136300770062432141021848884658049093026441911180476647994517218457798456486405647789734917081797608364944319255209580943250665883409221287825294587900227956683898081375127596379432468774860666095266350661722640182113521758568727052877303894262101169223549011166807243082877444359187316073733656474826024962533001276284963603351441224195372532577080095476007051598938391627872159869417618281751272173927898988107898949162999779854108622174153039740524022411069121371926530649199552321606307995240678570820465166661224341299515931030572630371177462881496907494690718935798861697864346840896117988000841764963198841728747117064465707892159158246021198757566799101962315569707206800053111287503296942692998885095307261006365075901096693892810638586830550977174892224949849025648244133791213236406255463763142876811891447078354239704927793816552415777065679382893010084565376082842239682103228456988555223069419861724502711805337126181835783800762835531622602601177777387531923252572703086816351532043117649028998491009693375318246650265958448010707380984270291976552785545725599008493046089636593652146415713080284283439814329106555790296194334870868049960014109316726649678865338448467380189514182886353241603568725293855062373717629883638138202153278252138616274968511523528337268815828586027517138448059406481909594006671444190484314097694366445302838998537631500535770113745429203879854972630679375176511425791242158862966940008280393345575094854837218868099253991187511757521578680044042853457812302927499960817453655456727195906856508011670621882789215698806595743784440155365806923339589364205258847396491270487838954406898103632643210448119325674195214499303483147728467746660096280970332896756201796729130082407112054101729568339451577232255428375543639097129591362728828631728106153584180660713031582735460230977770225217561919286711112744291980214882779349854191243439975835904366972561391066794137605647634428226734050818661167566463527202163286121279233345887383517940859565442292781808197088540384303499858191051405235087304431674211464852102590424057772000804190506527212750609054242439322688330762604260280422207708988228220712777774135441857765723060133118548872656655403601338445983249178467892190694089762598741844495670782535599600834053267493139971100859065996881094943702150355858390011331066585888322974955205620560453097148351514163171724102881794249640200415042854194257290239524273516648342525216483303982173949611347300918285784484109879793407722212711016498391114459875990980442539133480671333235650783383105214349323311735735950925822792165992338342800110650878921190711820155284482206227318788832020226099814806963318731024664756138343542953160922091758356627493611747293296559815567750343540415789127424922901783082603741978957633279801899346850511080057229695344844305163429420150235314252888433728607631967183338158670318008322810841062026989855806982206814011852666166801608281744910388652075701079801169538023928554267448752586301837861954527685072084288904477648565078336833603977533009429167524846911381878971554004850531401571099227050291680928348703597384591103874913914906232472576068957633068207873000961430954202480057981215992784900580960613329601590293296374424104909613956717385391397306037896865533397484520591951763651395582104296010079288120096174869004040119323184343083642309099778412584938493182748564593257766274988533132275789885220320280624286835274094488423042792673659206980575895427489838260268480338415243774552752462663408016578482355970962759651420433027315229413368877315480085570426594469877881983071466292407347124104924521992625898219733474530520922701791143176741579860057548930491634380801446710064631442796526636852501476434483687283903534127208305325966878881299255184253101556856758722918834353118268808441580538919753578794849992531931379700345325147533701252313620236201498147083868503126954186003057004742025258682199835401726627307967855596580188578243163297849390345972239138058628983065077400600243911169575759271450799060148434079459959581519810050099009112549941831472775048673023177132707117563459236948412376378815163245335463086774674844406630323103679941018519353865162041319245484038875927501805855497176013975731276294730112203609205420895368630765664629513601149736581925980702757690638271976631598087812444983348125180182157957918244164473565578635709404567000286729710822687837637341765871696965840886254203198103145616974208634181128198627336182701353424765286786908739788099340007808867870968357990069258918208898839235821627260289762207257523248367549168555461889595872362920437086105028757405306249950228083618745887566962369359478531548436384611476048376856104499958632980762175724130025293532886014937285458085575191146562927640485266902896513785314464013621330278612770429397614670641798816290539193539573692678950941657298800540922916526368665162480054787439411341595916230626753149512586859529963133073907573761963182674430552842762274084862979044957224336846423902232888720763173650009290262649345825479127548143295810778125557642522491284638397475499507596551436613480758612187236501239226885589733316851521970837330751932281632410336845869964011201334524295885971912724665595158157340673734602717564026342538262417650015597660500736879344857838324832026874373169905378814108881497920373330433410759332326979275714591006887902715695411868100675032356253985773743854037907174757552399294252314780231332395988261340741003660381147536312530082477329621233478034649108587321055321563141735206091783594724765762372818029392704718978853448718476714714342992018536957641831148434808382535813990425026916113499505397957958595594418088194398159537670567562569945276434034137521301773199376573039528430586263034101279443437345902566182058989774648690472428978007103512211124082860997246961267137043053656884542348265720383271466113731957979071610491524326803825092669575379413042355191874086285966924530891060097425534252629533671029230614147390406080797530989990137350706314950859374734831618461233391136735113973070537655342110626348802797533193613767093020153988116495498383387751999555687759542843730430428824508639111034537631248626080727072241401299280769515678443919111904399374260665268331629481647932720739919960469070470150172614893239337160340608131371751420034606098681348759198498231383210080779384116217058003005802958997806330630383643041650215827391685472080843284128239860337812991322220299707783382170833391390418186915751736044749384760155578373483959187699469458850379089529795983018255298404779108847360791345723544306700721156899323736389523050024803941112590522964269848295392464970844320711171460876411712274059442636864290824406145380932400169884133258518209694273124581322189236167366579259671639227372114136207664246278296309475509717372620514028591951846081737091182512670591766996491686555854899417529139968350334861572476927082021342238398399224316027525508728135307290041627235654072568509382925177074249226363143831129836677774575725380123543320161241946785949294334954493603533715816990945831509402650828670033496751164955443350259643531255716446616898241838888530894478311430892225932461804596108496373693867404505264423015351606706924778328097509539264719269187528684058868170491865163607202910966540793497552530734924395643765099223999962598237240178158106054296100619943932185588641195751189279375126701066708122185977726351205843481988121843378149193088626202129501316166474522249018412473663979268601871219573979452601893612425608840101218584817339289157396050905881328353249312417318773940265196207954086227275141390256171248576680536328560466172339471168505075833415889226425957953050536287889800613144974724950876852197225418476355411838362245894460490472112702290109274692159755336204142479574390928782456077135381566779464166275234477149149263308269294579293403022194379435815770114510636463866264591943155713059245973108115608584957480127881292193887127180811300947068035418945845314892105166861709220711241166710627593365904047078728966863360892719406709539231501213687621783136931383953511821259733218368163903884977801252164031016951054877021153688607478471033115758021687367955878461334133172112272337490678612302662391634182251616881818378070877474261539264855368620870405453815346075242230673171159354875825169372465094867060623885222437194696521547826526137236248136603480087295941057954319525650892074799552079476113979387066164659909791707171319538621473235862675208975535053631242311744037434815255179564161867526066804570058389609977470485545957786487143564820557904400305761532580119175769652317791482932395162757519187048238108313740270405398659733047051362411299817150358959861569377429756289004267276835706378132389305448666846907058635548465694004306813150995133336641459081759406651270388463388259236072032251878567603133679884922285480853282139814380930437653710544316922569546829003521198021460732069363028604841500228645676645208038616468963743323870063004986580868487242915329123545312372197857548033044283458229776190970443052431507099117257968768835535193969528600936488548996781536854222468051413521680724017577548811206349081129664912610842389396127956555537376964055666075726951628826219522338357519382944955552397599171301032455573857040409953986411061586654891173872109140420735270572378512184683519219264214406441619658548378662844143365790937669030626907644526266275214161423626980896804344146628074922575789122331875162074276880201493780987377884061420624206584027938731419424357661414835032552368017560563326974758872071685590790290520519802953974360486714278875260588857427603161983487097001802735875884512829615398644704643317041460085435896951437432856586678704189135695095879978686677174904383406384195965247000906703228331438928293404005368086048183652334685418262174952267476870862380633209852882268761942382951419687840969269392541103889404351102065753502100344090423906106266057289682180140372435740843474456640814958121172090394318690749870550941622528298445065092154545697856869582411019068851103506004719828709691261360883528636539921106236966792213298972255956177709992260637540652053200264475065964918750545073592540840450722345300737207351308953600141300483782177723366211827222339381438303829803611448951453134148948925173800914118068880373248255971393253388076694879506416813014976607322706009630349317925126417196072006295906993818706944024024832311082611844931659804591999890304604637423329687417029541583678583005540311701287916040259692688685888885498319189732722793076998568733061493402808492717878823786872657008050590431950969919477517720632127547819875476519173143495095201200843168635634827471172766403937618454766558483788016352926109156843043572517484627180166667913029348512078553098982636513338968609728021468875896613784860922314133952468749621517763693988824404167918169266451694871145871005486269542719198539263316661572614869274188001305708174777653823332823616713837370685066580854989562094398133419443321386159519746166952058752113437383615610739930352900869875331253514254994637837172728097979060983027344272266995382881202801500525483462916540510850409343677566693621861838168093278998752005342168670387375890925455853879651429152301402060209327942622711208520354166594005939426248296184139392408930599784864314415276696542082510109971638967446256715199321277812738162539793639340206049863645251866790978455258554551456618916215330074842076851011544829939246239596663309191471668530109260935901395250473126654788497487771240414919555032808557770770202070419959959862087041773293247862452207103492999006160105483198308411862719027285272224873672754136624432212030468183166025057822400779067904263934898984999833640333082837587622783128878956621598562274943971130606775856715667041802261705255488984959322368231104762569643646386561131739369426430329812363637970823980518968778177147974726970587182865801876534934212515792327208463163656579927529364293606171743129215228988316584363598225282270532608535416263088414786049322333370274114834278296627736647963997441260875556870709896098696892263617871232048790116269560919672904503582543463130253549973574309072519797376853601692690276402608897623703449042809941430224121296209409643439037474574740848604936177320930597776895120176349669166781281615054350178392055625684448235193431927960322147763872262765732460412789206942999099009335581025133877485733531455412176544383896426089196803116043778234101704949415026198241007242455432865553774775158524342846385349390892970102264693306058321085192868871754085505738713414757489470405329619697896131260791767894275441319878760238266007212547910393584924518481650220209267746054946699530910160665769239711684141397112207970579120295975919293168152242853367438293158492421106320597827580087858160262722565209911692364450445318396436067991099538252096465193660579756884876406967737559351674608354825888602386358366524537178921987149405657688616716795029954101948980496294850850144581986379532187371918498820469840598275935045714730172295336900674403880918054544171404272172611504792334792103333040105318040073002770390135987256280163125257398643962202023149980665198025417186898683124643152022198515348746760481583397268144694396216824804525631876932559792807303938287522475756983900989829983343751996602887046075175248206249850345505219111593402238950750681685290729889517759650785691585255884346946674686427868050893562613184025574553623640360029248271524650423659352963274611308093399717288724942389673987653132868899672870662325862270109762539067772608422764032575386761297222484674038710053703864323978876006091358227177194303573987306049236840358631805699703530130246105822607378089772968561087554264772277399164207190186227417109142968847096455515800455832336460987901713760043137260827450466685284902639074279396767534053377471908730920231601815812832034892967773889786276838974564283340832805432379446098252061492172364752908692563150024375556385040092311887977294852748859008622000519044890326543630123781412379967754660141231201263251142391575130197599068187947415268302189991756391059252418049592717006865485298255699820543932470599329031718574997797355391801008772885103951176624033273793826378685183283324678214166179342531183164428788535709578387393052807687722952094645375836944335529269234041832068642434375327989103537988253396666393803012742074250538488528214291688739646067418948097879345799641858202405428842659160819185034141000087020969560253188069004842368633451295069790730834074078461941788599272283263050522812641479354268015856557423624764482452429770775842127852910977033255902005076766503877440002632298827303531671356903796268548842774141553620700263221782564807239147269628555752278195225578853480843304039343784146371030978430284540217522507869052728329448631799136386439836172608569617695870394545303897320467111857929351467997206296494109204078743036065988043604968981856737786312740591824635911121645953196572911788861766966899242439853081513738212351477196423818747535623882300739221192635109143535635837399168558446321091577559146754540139565830869837422769497764797811262405632942812677266377388552438355244597035420498422046481260494761681299989624529654311553083856337354249721196929703110118424499790175185935681174395737352194897223560625823410180237283123346113350861125200580553027606535340298005854750982285627531698921808816181043068872677956997987637852125793896556856616973394033931519618037143816348827072898684486198213726420154240649123894116302556127092356188986284212865624943921715040742475240216144374678142174360733575701101691374857387573656334042608706563807509634448835436503677746555950419454582067134327742246224023854596224910542979016971835348523572682745911585846267930036908689719396098199317847369995377618301066946813392970923176043650604526440704707974322643038497081641630289357419129555998519774021294406455346794514521639345930589909322255321662717798063963140683658068414158015139227733887796430495938003448117113520492545420773695465416833781321955266526873248079740320638913278023187034177102872251243527660243477414573852102699377737081940838516409026299773038831985774448161483830525876382113598205098947885699739087704108713218323730563278343063234770760559717770456329648995176820984484431471891364623023572957930268471517768930387228924008773720022386819933824697647151085369472960934077115697235808119528566022255859469839574362233349243416935763651363026532751920055348864279228908602123616201024425719211207685185914791897080509405944325292967103128509421218411055891836616635317688899695350430631738244991133802910755009797608807662262983068284303666639838473426327962204804219748527902727470556937745787161559576024869024506525072279041751363402594368276485711237273334521436997189432716388724856405749220045987197848354208363828836472496017949061585509345161566523510059824362396561367862148695482672362979379185356382103104849994298528400739595019519208010153838293381010288810928146101281730249368495748308489019544165253540498277072355520013364533743013183538086766292655124761612489939189115177021142324897478473216195126585095293036942118616835887195424912965199055140205305390779286970717346476135803556000666807954041768920807607310543410284532855409943764776798959538339922973007102391684255985046168600706104106361295306367189434479031760989863020832723449520434686453794829156312430960447441601250562210690615854401347361589552384209222836464345216986216142416760066700315243405588780697432898676842377533138624550304671387437612264171788873732393745173484917509627333812151602132569661717052572264473851913931714425859930834241318843633328681670294374761798529160822631529194849594046732748819256216306591661306875723685497099255041611057182125907834521956662534966142100500516569082565583191643192615815074384997431145599953617258723336755381607955037352994022736623818318196333852449990950212049417304489887267694025400183407562547901151827231637819694469632876004525088468628245911012023493350354046259985028700094267206903346237683846332232307706810278808155099774548127257583953946996663278512698918688950050694439600367581730988902863098411377617788004788387738544694796948686865169354404070931019541786005584270412874857050553403263735272865030277906825578812979102937283803713870388272381226001707786526707328668734638713426675099422354466929937429198285443223807892309594942848706398587333628386875637487102248398512820304370309787176558161766841426753684535557693749934152626825806183637783190964143502396164626100631630041837413081800461576269705164673374212262558804749838334165628288507560831638158955973602938884215476965299544144416823015711302075917995967865233911552148728568414706363214813996001652708702208805536765720208213237111440462175711083777287625659736450429208762389572391263210670280633965036338520959458095415595568767251386386088405285152922486563687995163642017381090110740919407654372105763297420811628769148638466232154808919568898812567659214972665479277744092261475650399278254088349202778951553551646570252214078504796550182105823211446051485692657576318587985160327492489499020823855460124985194302301946607220768150076172337000766626918361084457783222819884309402562465834317313210322759720839260049812467184248673219446484631024609298140415987465626755242347277061463680964017045765438623170422595459590345917673490568385096300471141753658349617309234884218463554381760891649470507210592491246832588957280007728940515647700112107629697143812615978352129694763605672368379274954423281562123947686539253376440654592243597074047029569213329522240317255903825542036435379622216487805159623651956667071557387117516641134277335442933107554167968274565458010497322897277122723326586834635174757405073719868889667696196092937528695119808899672095630357736994946714411177038242631630457464744671075712285671619050244673862232119810616051789816396542027580754842206397216773892656476169052129785638514405042816282409383754515520476502006281763203887723691327598849751849979427372903546389150460630160545956111869107108524356636877756081827076261458903864324483354488258448938294982866361934243845409558438485450657034192681558131072525328881962657639035136585744381351543679877561422642077806395133942959304075709365388972916633787072918171418695088827850281549685502996742131792972734200060568022883303521768566153461669510685350796909496789288440658373345331736682374590282740886804003119341721943566323583207787939077467533654968355269824144901263012627359336919985582328529919929401545077871841207080886524703540066349938826314448130344932289975099207973193691133384944271047271828673353982292670631928261190724117083431290299090509361648972159096828283603384497386203450796890111640635154708123011308213418017206379370075371167888719134276915380919116719539497268036005429743678108417130601031460353440799963180990808490460256704970967090222341577898136844904800908286384158667873128108034132398213442004169045354453602017848173012836866038342990203295758219047612982431410561505898842761892147119842178281047695154676791717511778393157644989813574972938514569937578261725031527338197630497926209926198309492820948976200664375987485731958278024140895561280737716046518993975744784568824010055075523208363550345447846559387939869551652346054306550353841854718475732478741010962727762396604773586353837220676999313682542714598318070581523749654225882372744452003063911968575443712050211616294312256327499055243228682115165215936682778341744136317067890818576035484289499472576191535369525232500661675914521530319180797920234767967596039084949599970008842007498645431011637358547695999595812016978244481022286886451294928500041895080185164449668606466127088940076500684325204169562713232783837913060818286459651232329635600266622939174920151877466927847196876594254177086829888749436219248038807001763158682355817753182680398365751538878615670527245862269385014503687867618027766413855949161452599409213770491751865856961535836002735785138706378053528560587105903555212991292612417161876150197619119087022013304388632730963013350068337265961076429677957211026396581469369801708179703769489461708825243942957756251711404405646635927727237318685508428990549490013987217169260297293291346449173899720278089232645215820601429746538683552408691077168620786192288550534147104025575342913836507638527674896621391730751695297561457251198275217955701483720946405610143437671271992241353810427074053352946810557593445244284849678740414074713275605857906749652491049590349046490133998074093854960906936406887961021085861961479559707243296947548441424160056759786986142243190255459353590337818393360337521041180706610062379010822171673118300545688149052544774102797507056326016383746642528232028255236450243723452772422050158046741235383615025728849817000424033351683626694293439840338293563216368748722782262150124373109627434571928034075453802122162019359037598044327096814247510496073546200908534661679533096289862316472701535281054442243440483136648098032840350100070169078402350419605694100707303816262255066817751334827176888172478576814056687870755770626450460210731414887580997044202325950798104710655329904641591664516723093863782340368428331905651313767936279650853590293406708945136930980629087139182961919177900566043624065726238828950817589371860790399819041325332888325246551291753432707608710103628465177715782273474306503730529037215110285723260503068747138755710070759944901824919563190006743554990756506241725115580185552034076285960690588804425814346216210323993719484181494547249706597596496190570999419449129369578636781145165169561810308140263462524835713506430608243608007878820025116128018425958352995894067173807622736748055809391124800010276199716376739254280832092985605597732226992145785014310155490656219321699001190626593541480032067480602973616496327234936550008086641160016268891013606000383776680395285666194571353211606908597067359645917971943986156093890040489710236516718956394055407798410289975944092448171469186598397593912276674998344788031389589381178130424139497534244177712891509995023939841190124053676692306403121163857867072698674702245114226341862771194987907206143292262910843266462221237339300039801254773281897818130807016459918203383116339845683783373219428935193513055412651545072487385910562158943284553178914765892515585417368763774075527202954657943801671588030384597308229791014641334501949984886567371056627087690859346632387931010860595214096342069166585835074380671722412314615180679465348546466168648611931528601275053345893202543403899874283780373879000077625907784532237909046958365870128212396584067270331197749551288168695055568945868629175868444876410331898681039651235633108128684373997495841530184223722268299889428830175046333196651227161208697703846341429008039506652364871993417545767612388048970559656675075285426546719856631471171695861524185898083215537317592064979086321205180013219266367919929294644183589599931415248212984120709352246199167714718505820777206728365320920564439966456355725615494989772129522201742207815458176463087566072149874858074694950948601951674616885869478912691031409440757319811768302181546833661095732665814476914888943883763279821739902305240109493046406483686149177600058855510087060769159189986523429421872233045499550246313787741624300838858885710025781197938439721110337497077780220566091495602403840599137595463663251715238055189304993449015710714491996770851483056038814255153372277864237632243334828476127265905532636386730589473668520116672361622823166272980606374041366273501405085995267721016114875018998687575997745654773213295768196881711705427767253523119141635752226182123741862066150838482579794927977875371171947858965560111421355119197116281414469062032687735206221888775337626665926996762309138230956787757734477085929815557229157943907317292244248433820512437741561229436332202174201797114962783878842417797184144484834900764782927179186591826213002036079350265074663017593165359952998761297047177544960783399724363751908400477810223662769745395467547347836473453009102072648858750825983911606522644892094232485897446444767764940546527460219115343667645470305667728187480203430980980843336469350317242143584765082768540269320443679624802863309261630265859335357310336692162020350530632174901908623902936074496991287285155947122806262757776231299838487860718091326029423772660908470159685572016697423484097701708218651302419555365970074136367950894154028645753519061023902767891335085815718943713174565973409262983205603195358005869502607762450473691207997648727913635852775934424366989192111330876318009794021082353200769704001141430235125463216455527292676920098059729316853345270588798661841491551861281029074496278470347666435136907757212765929528125556547438625594704651218890670694783282385585830268377353682610567319479666153043298617260432891233563665921329563099795699292738897735842183860816698880527466034361677328736770509157490968506872359847610408221172788657159939074893605202218144502091230464252916069084643663081286409590624278655764969125085659833125926652037613245436590837847337191846732470618218662648904800808105887661258358613799321602703390526655460904214219612932182193629891440073803375556502974454878178164228926385493942677147047635081098242098594070972347157636876554643019574435500863258541517499129352479492633548000400175201035074988318766202527547239022879676631227442739571322358749235026607457893354645548168681728447152440531019158435064640985700065265767855615330712717443950953184633791082209257498835038053952892514859493246015147825807485697347284804940853710091779078305541620187132543790094069813682852497644959732314092192429134285556233475535842888809121897079418074121578649313709178116251721408603626010156007563910805670307830830037629160883469997756875976234432292301633687756768483337519059903927241704053940273587967624623589238469154152981551182804947725579581644674079242358988848020572860322246823544990464037814009337284299049152258693936423966206804954645734456213391015996252772264094101298824631482325320625086203062697136085337122773962372160517527147977229713711173446359818725408282787901893511998835636975168834111703292288668822441689920044542449660749381478689194406157266596185722964743603863643272782132039715733271570428288673390380281175999995567241182120590647607690927482790057794686738221966343284097270241787375648633328027681569376562618165264432486542471722936939527133148978522918104667501461076377764369364738206763553916987921353886404856548750245897519797296997365115041899615953514860685259322243776972660888710640606442011867409795355711683684396036996011850285924863082256091546114448230762560551495281178209823468543905554187245406692366378009163965982988548008085971826619523466475285274412562914801777054468254943559475867860145741703075738976089783638323420288646090047709757701004288232593329538106643354243129772390823723933154753486059616715994668953724003065740447864097923271908055490696101169980524055348335410496936403774946436009406412517689777033899755055253986664005500794380305413709137346628134121127027226456612630617694540611477097458221046473784890552470990757387857105715364234015721229889683826521555859973589888299216089369137245065183067991321288846148174774219132435198111135765366926556080668633911662966677298702814272775857702287927013818125547197745132692574758162169058557537854176664241203368861141230558484155786387137978101707458574273547239496922649930147016128263581160818846284924348958685641940048815896541012005311663406909127581062853223866580395642416662094889265615932445717721969227536160991484938085278363779756587563614075473538760278878769844666040910394687988832250625050824390072443118255936726458531093583744606574585596018443492879207446008926742055473565505703047096232089470966100280315175048443346877016116664492109201161938697540067348820884178413445648157203154106388369878764226930559024182397862418249453652828925353076209492943363377251510167958530259249334083362302415995267811877305183284256889053417055487525127600399127412171774707974654834541106729191911583684187880532771146321957393356959493230224393495672503165969733669196454139854057072031477033679823596976289116966968866063817935768492991966281438777707901729027315345625939896117156138378490640943557981426034357483349044721668785710201495452692245743615242989076535018342822226246039906148227145626872403217572136438543339204789018280372388855183748669950312268970955944769679004771735305290292153390050305857913832694387134094337043225918950698182195297309836755493155534478589921613000097718293042174708914766474002095240550911582142794525785297772856272880317901947218652857957082966284366786137935090737589993041349724335210728538582732362007873051331269433127757185741540990005034628219616247040563203894217308941261318635995545510455451397184972977548651935302177336979986917537860984847954671702342051221687972695127649060761773775551755671880052641983759705840517387750749944250093168350175985563867584054326011817129271010231597099074047155764191125575688142614082542096631186258008720098386753492358046023516055993347652181414533090878670425744652611006992162630425515574828582451024313289945446867744290200788991802203553671637821173886781844336961764895825606998828972867258266533978326177304386931116543582568508033140034677036110145546177764032087566522703914342359709085409035344947679555113813306773283394487216524473650122972916779285032022638283189255098349009630074774219122340196493731682313029574055808329749051081686468631862605548196729029313539736384738499667453692631009607582099564458056732194588985861761900881913997442379814646010484882957654458637785806727825500170586917230489875621964954186508228427465881204839743924265108854194519473428673654879418847285415380504897195424332553106321546855305948508751681213204595577139607361908893401914957892815396766452030449457064902457999613707813912425921714937064854567077338128783025554904656760712214375323506615382455782702978307769724124841953252260170939725759244445364126254729076168457417233378252408636006746216554944884809551344727362985173257006104678957881317293208440403841119755413718764638736207223624806068220510506866083745757369397532440470544293151609585545937197985172966983273225635926839093232288632731018262569594162377292715455323247804448698600960770688990458475391603970178644732611303289183839758207891502083693243636046770167240007045223957467533862734055294572514414354118255641364088657116489479630744089127825999037792790026707084966901901626222936387776612055387471763799824814206954849000120305568220932819298350941844112486477113786987742060697601904654250442089600900716493331233212597056263379905712828181124540431790316451719835369585093550624498109852897850677581703488618083556372280832171882315768043346491793910216866872979983313575122416487753257680873773519822620568783123664888601277179800084253711275908501980568784394038939175628349980243616454159197584499381001598754860703211526674947037477765314992784375607804013464661918877872284027448593817476727595796340115436367660043176638133310185779198362769348785026622632123740379883237637130004558386561265277521506471922747314854619541349715906824685769962792322596214182227593366325195235631130763622103290986096548430071960626971854240703943133831257925546587858018345878612946279728924548440794376003333239423556244526408270126801169871192628077068769159584800053445203575395020341117689428859507700234169148550758764360872898944086854215350830890718376524246482474017855914415296918061824804465541936473921391106411159968709188112041944847530871266886805641228559085129657982880261244374411434065828595871431877277204463040075210390639275338546462983162517341380842165209169827128151443868993887737294233489671683329298260985594574574147535787937703112563198186375942141914392967505514534888155108992627812786508182158354700663227299390369929570222508059918317615819460747427564505546844103774121992331713278642972367516767437593647511837479838988809823476533417423919978404016785761305666157051855770287158018047688313685564801897186707461878201095735639282331470052355354072659270557773043217530958059101959730274075603499684316117556228523171846731320035653259720152788036793474983433819528387525822904720280689882224600238233713582531138703001943417351925540134919615341657610028817830326831147910054185268281009213571538052407913816584411304335278678169078251609112741953363848595242898060175136243795015245973844507282372134722589484121675450741177024236709229979434329334235590216292201153785411380917530341378450060657371729503464269281666929617527758923337987045218519896175722985816971969083460449545604465192281079140924760199512967931865597840468259652609240767388689628113235641334980447942269120201177622953276958803508639444759910072621743506238654614694599742051710604655778550573053556528273828107807274393198702478090411933915340168099117619293433078094324758394236498272601471198896177669469389238610069605327399854694110861603506007057068870696977958037023961933521301833286805766452299961946540175246517918987404720867882632281023469175410351197102501619373888335765997773672621332709307562366793567167232675835423065041643555299575614416932788912186489339444729548660744846059726243063066779440777306931654265720853604192372461608128217710272517079877939338331468912041093001470227074645923607439364682341951680399265701728918147735567582592666394280227766719471122652658492279859737242608597854822269070211429883444172929280162642114697946159581786637286609707323937541621690406944747001495779685048496738464127836198636805280214609063089997386499554474135264038778115798265079597004909784676673371157734927798653250717357487910497248424120497428895042262026042673228447334693425344340037678716274131211076742475242282140405853322176897382230093440078167296011005454092555248361653126974639475007965349268665858539779289635170903923293415742828484552408773131778415130160763839216515833424905991964167336256629276083578431286004194439746377325467649644008629298956491667247634961123611603340110082517080743342108621491278767884019895789673083208302386289510286967879446309942739591374745217117200883476492173957551173611121819384045800763063546275283718024939214449638135570876764754773878749279963966040744046468237518204837740035787779867120650955250104637191727661883779930177015560839043448417966907162076151270224865504230863011491076319355597020674453649299447196412152701479933272548133247071638481931255767085804343256751008403205213185906881928883355523935109536037288214571613336486649689740001167946481812238363048474188058300772605455294142262792578368635728346646262188624136659178377636222634329667135927261363242726345874637774319111731447534592389820133944285160165605416227432537402331337068798590685865449142896465770204083859606171014464353234636780464840470651359341154205356899905822267030935452437030275281081653089271563323713395971031477812624225213278981006961767847321110389634405852192766413329390289365615843281975923642319379682698644480881230193179361865296263671086039487078007842181787106307874346468975334416609428332467370209234399959235624702948728820352313527466012809402012893716643051061571788452081519554711756739773711500518346894422609973262020696814048621972312772359546989214342286732785221711766708744301085647806382626417947575027131914453504636883415343359200538742571675561331049244742493692023625518622364777422306594326948715015724956140055496182137872339242525184674113468407326337837963230643869329704144657724111198807459950379847130162795534054876181994101542030885971398098917134686948537103056570636425635403840470172436552339879956243164084248008126924038522604922365934106474380018579212758436838908757561331804550322225198695069625162455303479203235871064918120250311509367317701046961048937072005770634867825608316850137737376822756390847013093929496292551300045862066601515266997580788204412399373519378381254914556879071207391735594307441184111388264405405766284991505935627494244875012374828261555522267993824063002784815360470757777299450103820220349572954398911765255126527446112671373934787158162852059797070806942495297162759158439613274980819634701076597300532967381106763870915730199572147881862125906403746869685367671006792106820678599761074409976067409122058795270244960755337955522658438482024610819129657007230985792542193904444535498448496565920706841740644770708842527027600521722504126905059642224383501623284031473111909185319937822107626345897284479713169272208288934240918897867066898406217987381400055618992759712981385436451070675372095512634238199777991889765633835450457186409492405645578836555061494392291570944127455892770607229766561427841395992563271090584482933521048238787630302056849110750723860166033631619517121188818318780742864708441289617077514373247054327498604396221417075702407416399864722185642659879196127732871531639585058603405750696738808221662383560847162034686149569190937076533487593372495156414014193635358179357232481329662876662530416608395386000365221377894415736570235451870604307824837447799130600069743745194468060148540777879403254267061047353497094202730511039326573211892527102470351429484482543059525335370260510906764490778340954962915007138078360017377782967189823767916699347830070556400098573217031350285687659163510819694147924339262602795676852738922642045718087341539634036191262448217430304831632531471515886419461586547381544354135244250663650254030744254012465446338599384037557216649949097891979717137612672647905289671457138858084626385528522628701072629758992562062816530923747220163033726060043214629960110178552300208232022459721029784067226725173142496217436847550773624493590372111147070479176223429277741380654049930593387806533913099909992211898869779280369710455295751697377177045518371722408157826408936484443665200516459687421458249921676283300105804479084838230728631426303676836727509343283979129572727367885875017549527374766736828958981941977067684803613364952984872676768821689095384250912724879587905748153901243757128525760205861174846825610165016779192612630497574747706051733803979867193290349620733584220037210177588086927652369516411517950096380558078990855660366417045565360363498419700959876852697116821884474840181321168188506404594106877410174514454315903963067400756700782293805680266168707680610185490828078320828089255760165618723520860261100530622829455672052547204379257403691822920988633851792645680912220262132823355110523949745886865800528156569493318011195420019848346655689650350484800714102683146176646815204246593535694063108446342901150822352824258189717757049267292806812448159388392422861718308159127973588789547427357910305367749452634321753898934012531920898750338147982379427062396946823731743975783577970950129841051694542613310886711841163671419649238719796287315301550907772214537819183239916787784288850363871667967285669559870731133789475644025990121340947709758774245330215115597659885272968537612855595544933940685870932658954931855215612552206975650269837982291092606645635837411842673524217986160630170612463959005836437238072990816024969054456169341818096646923640090363923435171300285454037222455113663035230755788630904460647162975312623460532305073247058496820049322524245511694485763027954654171614090023466006663852947723158897770596430712547390681520645690457698724387456198562913196119480123963919249876397691015158639082581874314250881102051913407071995235343764135819034954490606068315344746413418929891978430418948074528588582504398703927592197627287188599862622519688072487161565068751712046640144166733899734311682592926945635225458159442386818341010264632002292801108882883019710280966516629037311744140003179354028594159665317084762828522719536582909021008636404524877007445341875230731620781227097080176264412340949304043662661636991912371324845704502935542294242072485856252717084176645235887427944160313564284167578687415341084886776386142822128161845237288957710540708037033387172549896286400545613542846293670820107950956762163472539056431669076382414240930240504610986048091780210566557173813798588125833343448886127802870086712405850513894520449639132475345742648767853349111982045908559363644262303419619216405601344558909264639904883001036353370174535601209739430873553954332189538038548536658862072568234095552369840190331478946842486359179874756125562688593052053569758418485996374977828092420596956959400293518581784067574935536109227365206913582682945407775805407200101254980517146417854492053947699637344710805972060078517092064212984321132250030830745409468172889615974013594052376079940950543396187634074692684167018013197337478732881445720220754307174641794785530198971898778808414300612848382444815232224642948934884621934785252078709599515828359280722655750253227353363282137548484864698772724597912406193351658946902181583362443041650595045409786273674318037454611201761717874051375766143330053640827124007909528832384696710091947332967297408079439168983163899372095446475344345544987708341608392088098989584695478525199221475392183375368462793207717545608132189212103844376125731327277259094578108651323245672494521452607391204653940761194157015347279650444862122992656085332026652467775275492511046108329425529110699935300969277358955014923320517515752114275781467375548992489858104253220963343527163838315046639386297357358309581132228215349028997005849655855046161587479892772730277388312853167470153943103898867221874008959527489664472825346275119876411336462700537508506976932200511036031760581422865815009079658344865862785952278948585162248022092329960156896314138132079947357834526565470043897289976090798565801754783478989624651210593586926300374823291528256490505493257091638580108650419579086508935529484387879185776435761595112810313912181199199504320089942621305060820034753050028531561182058439450806605992494473926099706665742435194161052569016308857493536446746440429464526516248181331482100006348439910731268745553346542322121461845326349215613316080419690059883228431537432674168304574641798195739249411345067046607586355234963393241853802896900589391825637038024922476317713952555887064277629233426357143200866596772636693769854954676019117213306746035164627556714538614881936083696252338507176193077959130032202661709819671250211451967694843689758662656925725714656964132265206261626098690611861307654523776969976274767572009080144278601227604626237169333851417764136737116744566520385169699795021940302220296819591271098369724949577031149366032034705443867659028699476811773291874205404275170242213741046289309049157386352057177559978822684044473747757655867345850526219346921135315440545991534045903384341301305081763359859072042100222348409680486825342995496328155817965550444704888860190254192850807716742311462586569974677777071592364515017526674645629973414134103218108211954194869185993334838182464318918377766052443730510918471252262485231914010129926622614583026501912196428809997330358864363529059005681466163723155882278261340973140683854388270576122940885190574973199750282811942898507865288706423116922862120425871497107426150168637515624407526075271287327145718478452384394618189217270565521497941601598241417788392682735691908225759074955224491003911425247646378069495312349190920694960496046487593912859415445860610688557054796596529103893127803947081948575868508789896524189354910327897974164391825200869331325119736669081926427228628722274693818336995349150337452921105326728770630301713706287489658323186198840600978291273189831902029534710376223990558996763878205474559626795732027479449455365061104470053634727677773465398484118144703116367094424561578653841370389161827577548252972935460341209386522590537827266933613349582693671938489477896373469818252051274491229775226122435344616844087593857761327995960746847469894538775865950712139016473086885475758946542096407256036524855615742990106163435229657371184761940109798137797883579943230815427599302449948351865081676708239489136429587042004482420184584760011753222056868221787980137384515556125732036655505583827090585846226325962364275738966233725577449791049301545455440054932305183882733676438258757189970709852239249508753745387671107991009610331462771352534751485516887163840774135489895890028762819470324897647432181332891201441401478414226899097424738371525743122678079120093289306855343695718784172207325182389170866785405621799245299735550525807485127535193719259241941763371083291850348313685716341597671362998969873555213203177866955489948790635082018392694291218196651453720017825552166052672288992253117993437658705325194594604230978952578893918618989956952846354769759817961643383982896623596036468854086139831471253084537574760586955723365783890798309065379711542409311497400799573766723265796554663540604884762054044206246369504566210836548935732827735774385645771596291464212861118987189425181179914442735873943251517286070724680117506841815300836333556374292182874808066264634837380878331190899577224454929181245602805072298517009857423268233825728968477716631080553211849013884724297113769732633864603358465653465688303022658098208041832935561423841688100724004664308942205374746842299900587999094738080726922320865128355553356860490410412000788274387389041125976027959236195995012153679976202864796969697309568784299028655843212626030511796346718574520449717170040924881662101267486061111672974480426820743406674351614921666471881685238080877778637625972204893943334120449528909529871845575916418288692204009879453030800687018804404698279757386793782346361255028603538699385839663946757105894333665679004716956814904618191650715720853560005310018341750110881479480156892777786449221135579634881659993871375737623325341107209626778540779124820926979913195015372968470589595214424075131916204892412918648020520335324011810185193959563954611735263464873169169942627922563206140154046789186579122514626255122491619714650754606334522786955830339105883703190013184524760775787167591991053212861165305748880013062587911940307118878740491165477598094918561659790012999730796655929120214207729598857793196786364239174131895042979662826343770471937575429756137828452326083832658003771756545936602363908972240037468427515259401304349314755412532607932794917693686980360280238758285459729927101016675710441085983951673528962838423678475971315587835264657230575603122259279183317135159063867082481637496449739297685157920738591248665154898112396869162909882657387927259442996879502749068813360219038917083282418829509388359075026533853864120133916846888332133068739942685044293301397089800629116554929450376542273322014273771332133986322922269984422578503759423253020921316333283641595932635043805751370945708449807898717414649384337288432598565110832492730160952509790372742019350050084555840961751559189279022392562007765833593931479197657906219123504146494232164180932973002607959824139438967607389979254012164509811604244096980438020651940607515014876050527529924028967579719616614140748324631910789788112112876796151883038874703932509913064104128611455270251540803858709070069946009462935386812375264897940735635389604677092176645401901262402855693718353964900195070581640498426610099459180508923293440364968957527567765378344066825349023829787367587008572820173106157784147655504053878637890545963818105504224441028218967863589037682997460605030797525785766495274348305233823550840617326906339477294731747322999065141668815123708361810987024817588581014619888762544802242618983384356161655292549298153150272571947393185583332638218770449341155966080947583726907206140661279896598946612169270176492889165982242303973795747146617242650448558376669382948100022315435609708599977313545324675727748444946433030841780709742988012101766786134199410178368157152074571706651291050567838836925359461777686117843035946566981554435021478240917309944893755832361581179599435693903544120810720330785593015709131052607933088829968682520249257374100877335424302984726047811786709647184644813390736530859958066366195580904257407653481969137820812853825492004980439168513485043221222985284699762882164117668034531419362071023099207396682753465278775265354467662162395250414033328536891693981351630500388940961640337328477995251131285556858793053973526951413731524158435785179518640496500023265193156634612949478715243968923181413780159789962477628353237970472115594739070503047249744019016924462778026777685126100100883995925768960645975986661989570473830323515020571962901174971145767826818280423672954563116085797530205923957359291423708822475490232678727701808740372892994629238524419532057617926921345933878028092365348840080007068656139021314542469599644584066030663433638343184627506734534327589078039852618064413732835093343899520331275508202568576643418287131736898550226378974384772194456522527538273287311216423230505790997238601504845483815479470367338249619440926871933750852436488743825874734665433009755899421907351199688520220788659209689489625492339802882192156760240149077307040216229860665772604657050889230370435404825817551020040104045426025854372485052835519054910202896425948050774895056888326288477016992776392711222326319110316757412471907465527767166200453141118806923653504049276518335423239841783823261965704295603678408062889664176317148232272257772125535097675006002329038649069051486681859930903027324142367411133631358584946305491525395304743802135096266456958780679924242586909552666988666061632537376588826909864553648911002790902771217976975568200602428924341052211540690346031850423150308994004689987824320620535900979813275353754754959957893608465647212376642582080241219561968557211046968661586734979514982474179657134698762542782523110340652461388205961689120518382977488925733753991343445458047330650351200549106039386292922813895739209256344064276636075789190020647409636882683421805978399953459680529163382582295963146017717352539470017811676564563234332330206850066971513513405253231590379805411430045411651557998608172786646298557536958254312425009058820444121903938425385164420848932430294108542662867557424942274485202667282436725152564892431765516638957407773780449832485930152003759505604656221276313394995176355707007834102932588898609135841715458726289289514513709440789446057065114651678686892037033791612161203999111074546768024630045247030546232782457840561538508384153787683503830961207858507878329566675891537027721857525290712866846300694928770617775399786044994383349001924510859837677538104512153744025180552464792107246828837651942428598538876415286445793186661507957594503230961468786308132253201362983112135419905193263390400142023593360780226125832132803455130067319582403166770416440148663989066284160788662418640002788390878842650997195537167423977189332048708766736678602911215212474037339456585397815856273927318210920068223282919223379179053467923101238795308048055279273456215484448016202904046582059664189416765866573580472959795148160861282494736664889183606750234551811264208443778913634336909474358375537009712542298160594167027680694713425551885715534023744195932393063471662417739483577067514868256023736843948156536116040717512899032338945810857257463228322279700647855961676045828061923221619144491866428660355845709242707807754226696816699995895084135168561717523160626234344471398339648076991594861826565864777111895364986168775760119670818926121208195459730092600623962669105728606347146995491465790253913349909481426421263449867333672621496779569498169913982149082083371916762852313328844997607627980978860252044912828652443307643158743370082229971430407868416367244012147258674108209977715116951039184028778629304511900262267808933489647311545162948806742608388955335748811674735088118901554897259206466803161526042246620669424102414196382490590869488262827907738551803755537550197410055880410593071807931049189673626303591360206724206595384727014316923705219925502241452803181353488853879191325245924095775277027453299218012911471612724929116873935553567412222125528090262750442727508305444492945209722648367108478981090920481098941461611751160157758672840413401676637677306496592074878394262056459252700008869990072205478751251219745451620365931858827318487369287873037185332967849051204428963739037879016135650988616104138665844547936539486850442309875311824699473372100099334333556500913510114051128062088335924941993624763094382206715861393635986785994410049866922756645418022466042179674311091053571925750187923044420040901260183443988849714407024151608368360882346791618061249540860086658392354748513692188074976367535601791569576305990881213357933352144851195981928028957655651194289063656091145839898659322862744035894354702415376036560602657927091882497813649871769249349638054235225393374873385646920507532582788860102937589072297744000380331107764842655020941340076146560662487706673160977690410911451609115392280681104552435000544464764636379893333365223843261289385521043709112007289285096638059326169988725836840707456934270334604021096987094788885042188348029858745500547763195766816761846157927227561847970444455802209161891922073405705355148978380151707674045552317251763605385286769983202971162412213234138573228714549565626731422481701166083062927024483381111339558121176292789405028564968654388421398400224518025534464329020746327309644099236639913105549223040221396443654269348159882747114902010398816356506557771112894758349327287233919649403032133390827186978963255799814347490461378829746058411054203132897308111986975303591814049609753386560019354674773548133848673577241226565742706708319940558116616820468908984471471758485905399937528354636676049180365146527271014517302884933633954103892343589045847731786034701636551596954151251572211644547478698524274321555582017591455575720910532134815948572687222425589410427387872326382236676901613136715487618705047056444048127016418348218861364636585005235126603235450808626065512604972731010056912930842925242535495381971690970160551464975145218972594493436282361036184167737500345782041834715932666187343660143381493109533996668855790483816925887035143406086299154890720002559980019771024708090695646371628386531148114960590408718823774210609057258763866107531939503926521848058262316287278064870891802633543890842766328457660610468943566242202435253017858473615702172472145138170016774171314797633123954309515827438459587056618325699606728940799195527333232478970429739805117653738991209902241722795870134451522432067402928240448182320992357278465259703763591856910420401052415274977356957374043138741012858831787447902112110430706836767990399431017926441762086292961626340389823045680743181401419738908645185231737856573266759221925480499482162910043138650932806615931028827091544700423137396970835674820388794060844100460766819269530411984535747491137337231650879046589164704441280433882005986210864870441383193314368371010264114808510128723524502094021275761859524377239248827021244433203629671702536369197889193799328454234291502356791070030881040807319291024472222862300858625132779524049522662735995947047830261585225073750460364739621461195247381618437248312299629005111113934771361378895720880069737881564960643051912803357512162463960734530820448978396097149722197275530820474483448701752286288086936088932317772673226911097045440385538968857728558868869962534524417087891081559489172248597856443497985164062887798248076688518805326176096337316869650142616477821534744042452686726084402541835818431028212134723837218185706813682481670633126415405870586841886306394608429653087849322542205020305876274090999112258575713011383511363740476782801320258928216348753780492292752073850449541039786226970556399739769588299196099357890734791946000087000282530432105041162394111903363436971324665900359638605102028216976897472467752938691618616356461354382588405908796659094818868878949961155298159245594171414778689108922955758034462257433981917896363071117663588146487504789970945360917515056348693220365072597435228622529817718166789637327323352906725592431830960843683627905405931644129579493747817403073135478017285494359579672780785749005587063811545308603306614401038829020421680659083529646093766133234691486782936054094105258142009571071938645329143936323380634801746602429201880017300087810614520926638738416538220798489862840671388195779513622489921855244659631742818789472918487012115000316020663908953700173093731270844886333633434663795457134787984816310764646667982161634367689192765388108085849397238779673681429962281436168689284904255233376373553125343299640290181291890946799110414730312010839158842515409600390115219522784796046065873450033488215375801734615078297078262657020148210375982433930592959844543643782136827243903647404977852502310632987466741558650062567896907302144337597249758494922784427247040790354683711313611769774931962948897904011065028250777230134927574385879547886846866716270374408420975909667864238365318596948064311183296632660673738367925706004467642890462663411685702956232312055161565623216883319346808977123482404240096586360090825165902398552417276635658781628985592140837700516006288218364129954224504748340327856429996876646969632363788308230499461101605668377576063907268837690866870974354800149944038936610902267918775826264268539830547814948728507607038652660444040065279033075013431126548428817960265313735919866193758284614255353913120863100878127737484620387579814981809395241058909164060340644648529233618639652094468851289019400228796520703699228986417023684055089567249539043153268382711400627949891248078732502870300130121197806544535250215359848243992564996330593184003611791963882474223835755314672654149403216621411631431428483011430405520992892833905545346873783139394680117030707710849362986008243136460391023082239010123699797548153894423960238839954400748960588285517594985242849266667063050772644049386876102119292929240738240631543696935855709342638598661385048963326350231033587372681656964864188770339016580812560931120680111921244980129598899846006554517057084413114224480201012237403361104118411797984870894718714771053908099648183819258998018278297596556703896549180407590748170729576101318495720701844843633593184004662272944438157433807519003180305966803083677607039371305238609259774830776396710564802894298631638465547526034975590513815768064846036290315212837247449626823747568215980271518573245136302397426475450408381670499713127036327859326444324686915151323528967669276809640146925792322766291680533555253895453897012583803072099194070123018945508850611354535428353150295852975948134725707458851115469372452246980152842404183350872825734998933536336105146695182464388874310811053835692849390957766130291079200664683514841706512922341497327172605454788433946734035719687845400915592535364598056260376037581625758730535971819299094046737776715205587311924099550468874194896720201131902108652239758208163319770049943040164681758152647149180955687811895822605330466268728598614503641561728850887979598210782881438864353712372748908935655306336969423707272566125108720219129826872384401796190619956505043404321492572175185920974601832915246197570669546293329813831684426533424399448305970473452067944215398224768645190532641684448416884263176115275434067684333152627821272856275957984330695263791840319811576972033291702675716927570276019777529804626316620432263433324455119636763340841734188284032195866537018854792492053742386297918765563196138850133070969427069237390619671781141518613353827040374378096655244657666588571773396721700891177108374057965229225815501357082464696983895717954260615038135288996098740660910497048723732306314629657673986402690110667239121120977232428111306171068442017421540746704712743183660129762360720116605420634707822459770469736694628495892054604426909213162577419839862464648869635768444103604384413043533196774536023277687488119414225036821744105408823162407551537343559355803459410784123054631126011728988124351045789592525996574072557078221872078903989335385646775878787466818343886865286851190034614807049010369855536051849771457555915893115016580126153467229316485429372264982364150907355203213281706401734675660277439012578625298351674093995241768747994857794689426643835270187034226442549470618647204232879208743198642752130390924846317377491891148738854473878699130570358123875554163717945499008828021992792837540316473056628862118540521454010854947281422734820309198720696996031996622714143968879526733616315986415619276922754374904282340281854963790423014104940678052446723077898953319571591283094602762126967444279336226502663365291137438101212812228302610247473544825682473430224525914214646356953288521563981572671611886667367635374541766352731348952823267846394374420783467562057863091130243230096131510363464641868292892573524042730750296509071485187020186188040000285373785878568994753109937361983371364117413366148244669550284719529288165646687098400817173177654363073101929031523724660493086653580550676556290026534377485487379689286046759112898687600061013195549347663711839758787374196456501644089626072077637723493325866721728770094923667010181985348165590081638632271913860925653808949849102809506620458462302838064194364337736497401339496502135884481996636222760362892506151775446224819849468442152104005230876695724506707664369727863665475409225981323887336643076195944336425142604665406622449186872483786666793476208550970266896573224485749039527996246247192565228241301730912155968646676418686433702544381734426003607905186360643965343381506342456794778025993398512506398426072947155980304194184033599260145336693550651147636576681056273805522759275887956792412031101100497379717162562914402552234325885436476408527909305047710341474860281985874240102072778694546615497835887177243280858761021609720167450599318769928229768017696290910599536183886705492761260045013484859780659170102383726269259197846010745056196867161217462100139044319365140306986329518382271946130771717670057252695450219456559791466654411676952568341180307159213310517797968539121770538367436440246214724920786009454859138665782312630368462625279945241921367923463343707534336737082462434639856722804588009596334444697400362884129870116678061028144119433453449530153423104499245002175790927269905434051422997324177991652449697633782321525390354387126868135889098320169267820842834566335720332178650760424143474044591765527577710974102416051017828829120260308405543581192909767756212942749530264868708722235262469149856591394050280824132173959267133367069336928700675243992079720908385623437024553583998819716151070076411350124829434307355058761929397830981374432474124659639660526776852623444602731555683502978207545088181345689564987676529946795049522883999573559914828135859604986893071652009255244717518316698955398407353263643730774476618436474582970631613683981538085447529542021842661137055474340831949639379502148095502361845486840568285441343816587539928037006159791060707948781403577215784135725969552696808310789937596623127498573559534536622286188021661751883580560787495697549895281761756416121557442522823945258259010676317142311671754356560517261858164975041066813376331490138670925948132882354985596772258262888906027338630876332319007853534226010260552902572988466462157110775498699766336387928772088861882033141531867592943323582481469265272704626307027711397375182466786362402096636234998325100400935743266628300459504165053652519155021469377241479063374631466343019475473847038428342175239796521118820001750809162975671778240354058804949735850994178875081878488261461865951783981643256024339365530750546573494715225795940357589663886348353602320600247904642943157433818838706478491683118957364051916373039376565928268709908270370025559097135631571377528835644624717639298502847401434295290545578310317046701692492122554767972623059516231890032622253030093407364561276383653407343732470466969825336666856845214398129438661359304850685865466399382273765295949910616552223400129578711245966723942059812479725235089077213833906550418781459644926680684791841511252133144122050618882092405962121766726772209874176429037767466020228935246667870836864973029337347684499150850374944017007271357585442732389595899184895431057286130601180692212875493902619904658170968700085032627618844147821625957489256686530279104006669204474957137600106465301104577049239776067556089520316240298420018663690112409323894982192333693519429540939424037865440255479655101595152115841746571491695750519371475008300697270352019355515143356100129665925876048820702669988046157468305676503271931904633903546822133161161826455712124289549605450244491474227621211436780827449299550998007197993493806700337458359225640232606800915717769023656818606342976165886151912854638674883514447593770969286544745454596400379289051820722894976799055904831559434971284980077576819563479755466131280776589971311069990054090078403358772606107712217530893512015195532956520947241203917978786291654396163690149709040232876855780486696526951622792928565416229651265239131310331040917603117564294657915665827381702319176238662586927616105689606161149060097212854288251029957300394714313848909991660182972697427420309449995761480582436689995193943834219513325438527062227746635868863258653486299821542375934506437818366817977195722136190259671733054721353138802157945504092923564792876637078513672788036381258979676615226980689899241122742604609952217025996218699371138327989129010236596598061474787428942253814165283723687266345000768161436493226963236378391098896645687801247799976878075058821588113498721350677992301997902758163274159546789691844098584029335462119504163728527880654852326888851555527641670747599226537894945102324557115339811452550775251818386161819118464235377069997671675754034536192681314334563846359289356657246886733418106703287868224327925178049116329635787950579321755104976048086939080379327029072300540819971626552200169622209108636517518953503949778337359068690060581033623701492014699268952522137217514844843779471776203454880669651850733313112913277587135310451062537204366738203018435189809051037397762916216787457854935857095370068557271712038281674374965584137845771244231897449630106354588208732570396417373473484673205169565916759597007060067782914046063036411294805076045646238447549826759170068804466690569457466820260954601214147742243657711985501621946840574927245603699891452220090829181150723887743913323697470444329819758047599518442890703313927811433065524260355775605401788834798342783756863650322244393585878294147989243210222909674456595041402852372199592101818894260700698875329148880173978453135899087763832688279395960785860418219304543427192840145829273621488151626094238468017793146127173809026632957373732700188005732105143208292135740159823218052891838898251216298099519025921938337074440515941378122427094384920828767900994937393758210755922239401247052541961227387737523932909793836866590951941035380950711524263113603139302084817822671134337250699970056458477901790553263747267314225815496136295180624679897444469370613811754439175048292344002239123782654093733679989528053332614692231996674867639177291487411641922250088945569262908575867293531400319288445594440878864266626185115566314692914875117234935561902154062852990358286526093319967808271214112549216911191541837824555380808720899729835108056806571415233222077757255970090642828987900508732834248519716420690002753557017251910835756652912962271847065739171268673520878398005580135232884881400132630395070501336112929573133342278471434852314220882285521472742198702289004457294016885302005500454588270285000726296883296311486371072797797054572534482228907559305766361669878423160654302309698263943404192140138309146629760808042687800829006261900099747378332932990065144275814973843714054036117859971073153923398750341758134568928698504856364296080881139183585039481807558943584542140705126351253907768509366686084831749036091350903918540949272501338436603060437515916546823028771438866850682338275433765351454028141546262534157345297730796304246036196384642034591681061924392163326349703448667169013205210849368475795910445776660659857447535904109826403638925413557242131557981102450607329645021543653624066909740354419432076202508323544474391610759286255307052485798830769179979057769049689155197516704801695569484843714350942417986692597464009593704122085755030527822067593423414459028496296909422561610826184123956643741495466745032723010693153634842352474217692818999118552313959906639905349574338225765851180423870357202768980704293277233547078971364283192724581949563651277181185500790875521469150169484856861128299099155988782764070256945069470970953117500969738522744744417449665171725228885368476864300933148741807320082467992730903359601534595785970555711537669887333694159342349702009377620019199228239239798018642609303560034331190368702637117247040701094198012989617483221645692826074797711664878927564801215040241450495709228531644221266773171759074407103145759332249570866281383080364199117353872595665747888036505955375806686408325942643604348167627838878825887029800189125188178749998821103644018441392107456114878073920237678773215638045666176896120841295231890620329071924726593044838895254364486627622314719715636360700352266387520872681403957627591862897918063384104351723356659572284676076534779708771361744350880483060537727020641638269524613620529991850497675738517663519388772741947711560941402114318332974134350207773268629558809598815669830351573181033018499253294822466867269072925834796549296292887316593478123810389679970034961422969319406191400500728787282398205452758085145162919870170267015827489817445783390721442208071987960947353554479924054354915037112354096330509529675983433702311356038488497057621952274000529786013563319750457165816784101542633528360468243580309076034127982438061738679255541796589859097312114383082342048068852019750975050674424742227324326003196786859698427827410020809714207530575158381166361741732207938850194135635475431727049321565305589247734950662236933555522538199628598095053873593086618568772395923898537349396408454030914472116822720410497914230597637218596768552690545701216570523740293195427323064880970743271442062821164131741326514372921071448754730315060168797480017951762933299429132628836655687796286926120855359748628342892597866272113004052551088047408505858512274665156280985853434220367012872742289025148375888715713385685591098046257248336794149527181371342889773875181837882235850366296893824167025726993033626607563413035474450749792569092524055223630112427687215980161186853304999830634513979304353550534397731853973302592676274729386473541206424767101909032220813335773857444971034905844845371929362436439850592967064545905121887641627159126489037519381201047008888962835649618310227087813327359646579214246757007156723440622535043992869485470347501471264883187107793866569676505353672856632485919829788126084987689810119890422234876661736389712275544408422510215575476254999703713182482344667066967865967292436821107404429452737812438871701876864842432838872588017893432750614971864217051591398626137444545617534971571024896371678210325136772740487575623645712487829385388440661120402022576582103920672087822444465944678095730603236172436460569682018685212271769159702933646113770794890569897692931835313929760705456541729237644840823948411222051120743080757946425195346493218725589650928281151535779384932097793017606424501505176336269197260190675953011585477594157927967972356969303505741538333189263723206423743827738860255192140874406350577134686009016449571173430957572132800279805859788089903046924670708433970024797982134876844074177588010383849203267978270992030918954417628036033443418069367542864062037849729701021115317006585450507308408513478732439651969646824765722903770151920856257479149745078566594419707789753789083662370284142201081737138142728392105564420389435851824866537474944674871587950465753928623858289343270539513494890184210682903845720912564919643781759345996958920540792520648729830732950991323767978398525550801814148119340491617609745847357872320241098582407159155087152392382393083773743006177231391133418704814468892925871299852295084307211544609909906418573942596965304172162796965283704308717995709483807379061879746187524586839850508915804190415330651242314349863535095376319923032496889307905137299950666737178369200244294290736088157585334280828850732511060819790782436016226513592652088458376095049578592006489939661812399683226326454071833513565163739991224544921636739116620343688909045364444479875886432925361434979011171945776603957943964746961142154151446927956123936247196852410011393935581420928205129457916390388429416705408547953508383103935983193186929106943315380831444150019469194237137971969519738384095451330086897967327906755324801305047333147528614520563653629507240058716427265221712643915044246996860820610493112355590422552274986773221491692951290267396143430186399910967091482755917160166226078857977257462685177234996880760346558472564906288522211144797042687754165505044934464794924132829571467623469441373298889561741382135330542514596364874492517153682147887981759070080585241361810456975380086485881832093526258443268509216223981972562419381744232221419949935860900851862947249694727385076734534557165166795629615163787526224988867548449508420185781648323249084066239326697869405421744986238651743878809971199631840677121500432488967503929789369624803433062084562217353921603105796544973662795497677601063348717635461363352752790909730055096497219374935740787535433959282849042589713348719683945404117010451879058778560250228164021226085054566716147851409777797942794601278620380839897720272687516206141057324138180517891709095076814277352479218939164512325511927012920915746101686584774129533471511265138423371427006758804803172942887949781361266531290173866830093925209204079622569477264382162770763314931842091036387507779952184116590022691395507719057963769607963527092544241452582695030546386136326928823398317534856032019953222104499162918028860662975365873243700808453649248958710924021105421989719912889066311462839935881298811261022386453195836012153049014560678742863716709999375113314592304872665176106323096442519886161409347484274445827474082219531169054625446339602701752005350893147235941484172836781238286697020049317716989104656686678008950001191904888884173328250065659887746647418623316998637354883716247060564747269971768339132978274011892733412334952009824867763536824716140803891279342608264917695145027538338521697760400735790112439999318938957649152097344977468921386041078573754641805837607322984672850303571530666319433020984878669234691820455902602556559317538601175275684759075801437957897127235630950356535398302027644207711825298229543025479487644587465824521980014829694904114998284321922077610582293864245778850288675961681716196846926858560664822511263581859987641020386008197244981726125396976653844629957992234069967776096264541429903401053477156502662393710062103646406261182916388206295763972168667618155247097129517169843710170725461657833951396739016550504034827542032083138580480629044441144863930288308624664565856809431717323615365301739780204990080061667220650468390088314282448697941136274894905025314260454448477282800954188055546412053091210319283714032932050274307663483326539210338635268211254140277681988930432459319104757372114148659368145799044914589686460429239421079409415531303251558474935772988707903354635426780605395539746164062197217298077000414884427840102361187774351067944835102392950992316352704741543254729200937377547342396286734872532936392800917848449808620079170994668367692770956487276265062809340532647424841232041502076996416496279443231916815230212437101201937991268566970680928782281993273633075684594844347097625254058935494662075167381900886497589415488864100943014490856538199481615741283478753313559547556527344966688276542604080236880526902719879920797875425251474843271616242571593971464703141296021204679809063686878239122713866427029253393666309795335936894394196341289984521045429909975715260070822883712646413217906086524273769080993168632136630940457962460015408458936045417218814467722648588083759923279920161575826645025105986620064367039954953711465165615510466107362610269711375795945113226955047358674829113255740330499796241851817841297943975067476085672961356907316905011983031139006179659655965835929378326020783691251121755205999869761354556789441702185347995328277654294415927524173729271344150699477866667480426421388140821246139208139334402392797537200611513750089610101650824102085790109148761736611544238185774617053688130909908179194832140043391859328313805939185300086057481977746080595246564702936065681860924302775248449650543262440715046712804044339782676419555705922179628976217534111341766492049504430559070446301474086152760232032337405416046816307300333462846753472396745307365612453389346187210324535602005949802290186598484276751747732386844586543668259079949201456168452848392956324727068757794288399613388313555245181252609172953268408944989647484213372650176019246623544077340468012604563788950187479807936217653461655637891413942767364664787740045028960347380477403497560701972053369709206035223952273527199372090148566096855798305113237692267511682501562082365158880528825932433621010581704558575073608233091027289926026812060556285199542013415679753126142975576075646350038832705956552469696711509647072361083116984592240110664280502280259863011995803638694918998015047888564777333817591837623128003215240953701036522740949154140494112455309917494858022910348450366653588848910577433061111053160645888933250791619973740887554402150586931675451362189094250604326598303753755777513099579901876844644304057823905555534378773580518543389283805413548923354031481493818996814318625211828828346558958948312654427901054686909701745099537185319225543694948860565259717700354708466862387656404941517759216765682199381149744855228023393605023268325492179737793791178493607712199755203687039906935000739808270417084434410550059291037932889223972643815899316341096938066466991548163208396909761225464321598804033233701043726948634091627093813485948663493035637462205389753311815149139761180820685388039572726593036140504070120854579969147400332840940949541772504874819306966225203506939570083626748786050946000232425157677731370149353449778931032539346324482405587831093522627804923771904337052859242849607481333201498083220232487652818044800012431485176102378298177746887294502486172587733327119715902640049586287803737268782376962351364145278478813262001481827589916447428770857215026653614215131012473505021342247479854545735333748647705021656077794634006850836660890720785399118460781811616765539976227713101507657250361801774188265266155748829656767402579656246491794506812888397221178275636131893866053811713281227431220496573310436514332377270245672564918458264553783385476341396432173398927984508985767160459306259057895160720695612611540103422988987419380951417805799599725607871382501149560110552119588450687301446894467383335090597782467129508690101605175661678844960534138151404236580306643610385634383337558237553530390370402825840197627718107430930930537568976668281944434831654137466093197637682248260693544713110151419547337471797694009107397142801996475056817997911291714848012746723519194738523206793568629317910171981733268436707483987826438804380110312069148617238018455337073287267411398817151855804562164222324647816381769395875644138101219779518220877239398554452261287714167554847493699059633295714134152380223289758775499467888577394918324214824024193960341906575817566925947577674735575984538896769556254141332237573227130176643633940414102206163982871780677832438057727204073491459365093321996834419317878719990753134389333539174750561358177660697340067034849022709547876703772274274214248275927637391214046942549022272708011167218654135710063290266266353041598738003813975825493170678844731104838352650672380487025416377997262565089688323868452369191578673779533061846855244296325658671594251829648826758288656286750427824299856017343591222990420086730771639042036971491019548319441887913162783001868812355568208804674074711267460581392522011276384665904069706577968974539200856698127457006570081925495884447146826311614296365188160197819312115174337616332087314664886333771755667321515087691565313776492199647570105310794779719975221766234427821144832491784800081350731121559431767492353002869375981688288522563439993650899146251980084024484038783425099085008107659382495065699981615573055626124558858376548364738774369421673474608056557565540276494006622334679704123279351412747486762817846994597466178909307819352910280718134705674841801723580599183875518677420488239411052140979814422685495896474148847243797764465366479674304047822224161429870005215634189599864701440344705802817118580139896122628001334304683431929369173940533568063651794172703681974600458676474951504519501483656254836354369337526001514940132783897924930886637137627484215428892684425392639570512291357955333668059228742491386060587669008078059430786547528823799569815626209398582461913024946397578907536850965762683175894365548457522858415800859854868536201890749987629114081921125325303898309516068777323969353416451800590955305087956058656877953615302471079305834499818074165812935632310301138955099508563696748807947553638317778257922083055356584502682882567934265739662309157246869113194044978602541874134381404372642114128970694368231031463653068879282838671367647722335030870979643920814839356905911985070089907883472806632352456887381055994855229557883405563645397654974357694622065244303172895434820566788709647449517813258411741817658361151052748136869129757131057954692361700363407772613271877854999730823941055670593302757980591930003333786137721589183031542969463376818635757669059399145224129703714462796676000453681340938497583487992493898727132557577949905087812182924275774747951570640174011981308098929176445337797283497508617929051375882212895799129975546328682600626560008875172499880077425881849195407330007992371234842962195031240285344791301311379431205645796937058135631994726594041517128762396011284322710640583882244337514171020997863497376978951903332816265192480387259129281674013234716464892144211592586761805120451512351729288665928445717775921401501893532521372293513534911727852676899949713027071730554193303833321319204095894234121110091561336780807901405926846101253749304945768482048068004295910559090738499163308201121548034571579990302015400744288099991944070510589974194539426747656208259654381233326004542098377757987147141646021227596522655757047927431150267780395096500932161294935804042574400516191637911453962933630314978751063469992966164815838829103862027857330402121440877928700515188716414462123372239424176924170049772711694991861603404228929965550960286152021889974441017088346451461330157833644281306276558938251300167706017861161574027337586190107063956753091974490470462677047575261750288486946761768007924228379159157683047168786114848776950427186571610858092968105795654481681852532350486735098895530728831265928065620819330321337171794157096747729224948265374663853105653773798576962505614245385316868921502656524075575609116226394845342085521194221309753598214866376594628266416488914679911117568339899488513867182999563062134730700422624755068604922501204924987368462003885007708572711118689766521818715853359522063751842627121601271367034872931747709613864412757227638522763528407032598394350742415275149888986333950169115948407238657188819845175458774582269376776564739127948768970593738135568454403504002693561048857430238731409018809894523952510822170868328101798825963107046147715683781914918989039109899321816997447663400711182438877714043207271732591956452267096662144030459744592835223507141619888165051407527199327251081443760811082608288304522471378971631730802166110941936049294786456718900175578687023416673950918029083825590325977419013442083438899565818375386634637731354821155164195208407522488668720497701071777471764161480880376282682301713154707441524357509701507310823757582911013179655106038601521200560052490886592148702287633785363896777147629865073333360885348647158043305724153082709883796983840375327026677274990723425908659855635312145712061991138255880388258668847581894034954389013890186341488339295634823801977253843008452098583039409308751888795898377016942326171408027895010484198075979318370954655449712055787481068165108999830946091587594537956885946782103934968075211773686180403193975563523913693688594241629682440442433667622428784774787795104803338658043623486066357469924014342164969374910445308500087353225752311402550716338331375297513143636660254650427729801211268443165316296153621883288610524786618408367588915669151295703951868919335189476926381087638442963567147472902075462160989426803796635102308531648564546865719160886641252677755071273757424841638021153779636980344249232525705651802003970219107331089317468436589868450020050814877957367381367268518494970646024972131522958324821108861782543864001071322433478729471865378532601681907554624973348847022492786710741253144902576523267432537487364714102385636229085517587158470716502462132333658356017374747640122478536656847202633577644985014913396365198935464267358018345012468566193946107402518643708454277507861609405118377151231976397889572027004062046411667980021439691484905315021734585488449510291478912879333391975858016908766334719377677411911750854345678571092390761031349039739918416494000380912304350798779910682443185994435628217921533764670518992978690396570658922077323246116161259765327999454774330385941476833668215144810337628053662671857319077316556288774521646009178727679754002010833909939305949935234605269058029994405439423493123851246233414412019941356392067770864522355768818900534347457485548216711632457787896494758339230010017500107612402382116717441177513240519184494535878464979970839287179321587422934391316983709870270710082369769745568202126641596333189961174844476450537013044573056622358637065352887099862506530337245819688159880674690988318964794111091329104322731365400120023902305719324985953212306136146050208322381151606337304723287398232976295838053616819374175598197364470299261284151277274030433182843561829558605806593840606339505680387982966012214819533409278360967985859255161664693340084934021502951553748739368913738813696386427647826814563349269129516394744392292583256021023708314180354197055248220006197919355869850161825910829815493785450114144486767386966707904945083945824977757745308954572471283580241355764333639825918870131855328902784012258979885879032543062104244630678820022191948838590721409896345744915390552766478109283457226733206757306970886939837312097705279902288908016339895377508074017633299738318648055616408744604349470951104974191030644145766435953016185058222632155459812206726776230312005541864755919959215043330907807928601602753191623492639802772260267691777762551791510527709996235443641083298341922652359900632894970608352859214743264324349275470736826343883325885522129427835900680574776448846868660561804533682711250953928529774189692551314317824189694582896035992037197776799534826341232305795430400513848591434480166563721857228516021428307977609907736963403344566422003400493613405254031476591410985077467570943815214487074889444957395178137834681188996483659772537226254457138621119451249386527334594657156625861418254573181129526325261834155377826141525730189974711208235727331862535677976639749724686728404993193576488381790428839297511988355948455392317743672130715490646452308762934792231774742057117360829181647327950332335133347086057887114131443527274168095160650935397163472480818726730552338721324801711953362189274312752028516892211843719163530605820742761908709791074461751052209667966644546537808237851070494534614747908492266207489854615487114218877008986978799984302820770480942426910479720868159857019639450773724229617066773650183522794266842926106695485443256474723587026948627662674648807010250522879839355722397876869236059201492963319734497296330476425079615974021691915378771266643479789322096160003717085780449399633537613374344046472726219064786008262157741361076919029445421079532213275778721144364221345261584806800751899461063160139120877532021891552190682989490843837882127361743175622108720651218785392247747501816881612950671321564617439423124470547771819343676396937146408262451545955940932918252461596650048447566168088988103077297391697971563694956501705907514590377243460348202461115746074404328269269561131557792009732968881386555032784140399912641236270829327865248334641364180160039472042075516698971005470500089517843697358769164640484143356885062878516465067879186212724690566803553881290280460564136571002670665941606410723030085751855687009507921821042199244197388346070531624899760793484841793104937795002540525985318847144485512651733683320388665333106829199025554887092276400892543534525861427639666156629803582922644525625574620384358319500588746644785810356109935855393040461738364740915617578108131433735127992269708996503001472690633751974636994715528738166408612090815888341220698462303345320528706753424254459662005303985207122317893604548757026484630390107110670593930433626475548722050297458685658893388491856903878170011678003520645390135039346817280284443523217899974017975654964114729646640203011344114094833665073348907343362541221396975888092315882321558374801342696011648116841385471120506847381436214742618622726607204973946350520666103204295198864197454438188236137570637688071964133482540798060612441411132820018705052768509954715840249659825182010028566922000031683879166353072251914163216782476514489413157968426924720479847323925892057431170960005222573387195307337019333440273892745448907471105429310837752851679235892986691972276504258202394388594877195242313680682542067204583427960521786966270509591804076996308211935229492615046242535132532241620905670618970036696581666007331319095102349187671828471761782132960706998289445647452162588495379990866400526455710249446166383786124763055862255696663700143624613869800515289794401285927643183768969374731693851109612353927851146290875967419536324256190096140678000900052906756088393438754158202386943913907383625399033735529095967492690073621369014610786022166662405261358973257272553662786061654468364227647845320185037593562375563725348036470700251915619744826418959166724333078593109970493054759758301994105031458644197887664605618958460027498264205898365210629104301477211193224950685469331956454220361425885334475102883862568965515317420213680202970534666430335297952131664698867584952862608025413838543871188828241732508849608289890958045384543300798632626820155659832302691682483531448380544185435345009861844783213570731181660589699703567671775942688395765265233923746539047592487963248029119736783694350951577717264587348729658356456747591896324695781289408836714143450219062108585457859494743300567785131186126768151667566457682806419017765562768934426523687582065228188895300400619944949734342736952044116175743759073649988044913373163954358795069006413263685432559579419030741705936383842783212723226571181750705810890060245942668850207704348137013688403735543853195056085006115906315962800866825834354523156937926719336507290375996952685440257740798684656722070847897340653028902822904125483432905898464506322234815618258194832117721650407920492674840358144042716081587242684164541694392910714119622585444453143566088445304241922752072659157215122944964434263780129055635241214944238057852097549052874012966540207291766244186665909171063287140839720078840890027855698016181748990454108664108755447515950069242180270068708805956301317102281773677674634524879548333650497418251874494855456784282980886795413611387974561021056026437203073101208605588302480312892688426150431437026819325920665601257966985266143756954233192282731975047751777921336014874090079657951662940700909386145563006196351129721133902537097067980032662013853056317893867169345376280417650535248046201722810669666591126513803629611922242040165965416138993501503749560288856600856290346350514959933618032754867351954970933276149509612557141891906261022644194456711177294586233428036396526140953289253269470917897684647080062205830610782550102534224431160223122967312729410495141491986917356324795682975552785246001083048341019945749199400706809101278623960738492322709091172902806568410186426397075702041923349547347465053740199993696336771873613720448725248859043558076531023414314999201298966629670058641508530779827066196204817552287655259498559292589772946226808291381993437048168866538680712617227559371930487014059859518069988632828201172419388037106299045877617231766456904352913989632706884846591136719733964116604798820167471805833740333654837360589695525511434299128957605162395440001369401574310383376298305960917432424104866564567263824153000706465247752521087620398757860164576953863950443349315311315587454963269400356232790188228358933290785300002775522543862571661991439483068977214210692407283551896632068287592875423300106802551232142017924273745706210101285946451042937256532106477048375676920169235558420023783517806833974657858762051521304041117874490252314579196779056805602340727359903157585942703006360066356339137784469100365012921889345698361883798863062835486233377460530993726103284135716707081554663322830646747070108605867612681298230681805177024532570248405137299597720021713282354197200768086425592746989094543569460516835198252924118436256908109535220963474514425014783964106600167992948438137886560934817296628127893395615069119631472416156535461451589743613061740810870133809182101413034743561548217622740555969382897531866561153004255793693070977381990060048256782751318582947676228357467228288456145614276628226708023664743457955867649122457102823882583351386968701856733089232806322254813543613937635330703359937218292109009416855042639068664011332785414838417563481718311598910240784050138024274081764907321247287844118390251574571201070643578793040485248470461237089914418788818197294627851158850945199863572815363502123872320785330690716142632917889392505863020641342534053937029141328001242719003082985578365721799038766734511545167031780867814564753607283127998915329395729240720423071658968948049911036180341673084942685301508309493412526205899889001110004179609165430349404163158655171850028251434543676790555195063869047153366498180913868318384098802638366086471815477864726455902773712405284630909077585529127938962828052741810419451243674527379388213732529853665078996338588677957100125435185078125879920750278735651986580564116115982391991860749452467085404607830771064198505745026068935709006783336827929377637152242286519113343192099036309118001958901099545675372845824483214946955824288208139845846808963785327081403626076344367565030001980703297917211585049547645221805092328210845770404589795097731749416283010300135968772062416267662076904617795048897563709282448068852380534783110921273385497651740368262736182281231551158491182582903107661813531747072392999637844887200783763552221891937334403595737197773219549046555190534817885147485417941815108425934396008886610670513114515621084560901049327847082267559951620603175579273022280071417117988908374695656627193167152675079273139361097959428379823745146961482499445150747215116753757917539706990651253062860573413693120624599666487639780218616794600679385975117447953947718401770244394868829237923116861722395123218711556629803539559438596940141216681216922234187876208292888667481825687914108229582632419606088482017386261897141346728556875336613411312783566412270351808931394973077529386304657114328369993900644766516210762316393254223385322217887081177640318366953598576034627007920625569886434338485128439723273422624218655322085764042843864762345687477614081961946941776741740529307018665899500493248398891195996254715870046872564910828997290429653252864195572893405413637350355661993786661357144852053817395099715966855154504285551041187550114654190717757232344650734572429932436925329507197707032660280565073331038896731072048531284597900358972875510837253302538732690011060862821073462839988308094983829740540651899216772323760812967891848004389809772459845754568017870836642175758779035429177388219626341336000050781274296689425583295744719368683969771266284636526923120267149342427488020380387255084619722412576045354981162670140743967982965326382470052104529138467949185900670575409619870220942086259900114996083358573321243162138024389176632939775671723894504016315284035932306161060216796377560376981799814813560482225949402721918243539291720593662586168141366505411737163646615033385640532320234242799938406907400421964566700432346917847552559172931107932784142206837311464149355627113051425852864786200964194649564177008195441279774746545586471287584532222619445869940756695927809229979637397737469555914948000666118720980624209089872980027353073646375039469529681123081311120841668742803352182959561072739888638327249932650757292541440869682836268470572390306126705119421759440859492676817670938733478418788179590700326686423818397995180926483030434000034312636070412933661978789233903780917761170754650880682447611655369359684196521025523356629839762809143069045496692942555818101796682239739745564778164688916489646180676463699685103424419179388560576145630993990687235461097717636348751082890599327167089455880958289437625467454789883222483498385032744804787750365255252113855147347739501747365002714570786378368538510559052647822559679279785767449975827685528887733394014179438580070824575461273638872677747683512488615909489260668252926361347294493114010808444811368350016138469732438276206411146645910206030654705855346354272813750460249494783981078063329284768569714562531874265051478610385257324721412289276588818233139485401770927804208215364117324067672670693243754477272213459692737640001237365463747176154162856018762751680315145703090987527245617312399403676404799871234259520006285723293739454594701920044928740768085961413552961608086030150488032681707749407625559728492864752179130709970964334324360097636034247306496538787302469728346306955542628334808035652607023961466819918934938126824033695329111636249587509230313256816764871119151603857041907312748648098743973527631852606318070738732792207701238333989491470165394442995594901285798490396086412997614660308022836263327933074625684020444853343225323353187009031499539520116863072311376205113530662498589310702389075148214239790406972885289560553000733476772604147504281727858950168175768573327882979474686768825039865532357575867808484139815236666886380658238027376885229796012327557573506541168074780424896574658209204648017784453411126318570371258144544719776635448244408196278474689955155714352174393612620709609986549337256035794876531297573091452865433311833996098324263917226304394980293544567506608475853100549080205337435644937049746744695100473914530103587750796395412789452089797943186445490375113022918117798792103430790991315111710384597935617232712659639079571824617188543540278998472284860522640121683210071488212828304446126623422809733098201602414620887850688450593547367084894819164070832151537111938076038520202160247662113659983550062138724540107012567930713234057201347588553915285455191610884052343990464384288617067780694389968831743794850912156167353811986315386107267744806693284511265275714858391714003996291333207583535297695686762269719257280830778373068033230641988612357809736870160600745749519705544053944159916743662792622102599473673134441292610584445176000671308785791956494200083984243894741550060313513696350450919481409167216539984081247043291087156960424676178271842651685202967112637827985929200939828867739258398944174373131589727634496710022517844195052258788239380686763599001056082498966683234493251463999613262519227661549669130045438409764896106163756109333921206828992337241609163805828154081346436036205497375339110294553329652465516853887303425731023474899133449853215645518778551180559546603469014921023103727597188080293269225495364027931200038464527825200867259866951603348291638979927220211922839239259060235195761471180093759552337925194617196322277719744533551112906023997337565943230865027839899659896752907552361142831340706066938386812877134806198918852096218862270012538045348482753850669019768958837681587064061583707785935261021469451417847840189358234300664533748904782431731562495681449629333052121128378551420801601473537797658813203198987879478473108620004726795981464335489552319905600173488041920330478767029670073579886354768827562652238847760953497060332354552494256067649581283765660911564161229010300382666972142715825006874146127007449055721436111867443692544451758952580270060793460334542654233532381152477546542008031223822802173919478879364688612282037622190242686035053939575401747132187290137047057408469076884298528890753540241749107498379050220745893794974531530238530324515226147468858115119540297617877733364747862557317935380206261550412830405001136030103377745513735005940521448426347236650407081311882687438108420561544325027932351246634234457723297184717664529291919469213543063157812452911183239365454318651551965409516925295152688638867880604094995142943332143787942229667603328248205788846539831807667913871870082509617177753738463270354594165795043501789275841545712213804160975000468372671791930791384681551641048070806536826665825467614952156805219824197711182655298605950311356542336582630323607435460596089862560107541443912500692192662762620339298374609685661274700731609869609187597663446034966828908299373088559090874630825894593133955769226602130853162595560872202893686335027300764837836583538377011068800314039278126752531180776199667865335782474013652528270255757170926461838871780171769464756173276306770708005503867808981857314062419580385283338718689634895028226752505240555027390135173861677713015175929945132250016561386373799538587846626626014275456997839096474957838925316694749532187926930468641300568172535905435010214282588561776292127417666514944223922827865734552535759983773555434887428826255788441602339129120404909544203351612973576873376554102802078488311827630841556074496087817482627450391982197409805933926147085558869387292905359422543553641824526994318513242805031493882975422127494261099788971118179549168890151638971659075376529881418459205268933117696356984691443970891713981866275811093139575751714753699283479854775070376537753129066120175603088389679737243275667603809572850022502445497260099705895458484163903089992119474114972595800816143995807815627188983241097892698313765170057176694030160917768093268102992461472683697506132292895416626285563588319100688756103628074228237106994939842177626360737987329468569065992321638318149890387500915864832612696490243328686026883333350663012641930588858501105662133005875829021381878275436242020702507268997741558476191585331101138071677400748196337174470276130401376757950623876598045334360342918959819634644257289347417025754178023381237370558782589177747490949746609847289075354256043059681659856421399733730792383119990851030243835960519347699761294755907760141205525702904016591081972433458871300751353538269756158605070916506610251737132371384633230044144317628571284144194212638653987308983851694691480776362964174493784885117908743754549794188632745520600575522488564693391306508158243841236467877286650804869193900423229264204669243837923836380264036705422900848684522723469809451076386559546624340230125973547006647882027535944735477636952255173309212001348641860992603970267459943170856896796269068429313566404521876765517281339529801244701640180811082746082459147438628695180874591039320044698058394614715978850856700860838879824348855195823604274090914141289629659696730598484249913544924506404910276144322531836901020666493020091323724526197021218517658628961380363542451887030621879024240847207135556828414224646745416789954096100236453123692588433237351234207453804824788524342436430543301897306704951107046564705390473387048603156310754813331717614355974257243031620488544207458310821125414148828770605246456362653376053802250036558909700091262019278195088635969045242033532967326905679686531812919437126065160686053391645765647972999543980030403319575858362746812187206550033932423702185066926694614039517540319269465237278099116917083927195620692992252619113387385164076141676168993706535261511005557454336141229138999530576483513023486545177423555951865618945821841420385255388995372386997673879783990546506198560476123245758985313100798721834976902830789078206197068393454387978933817293825710118240035990163260634040166959615049741168407209301350672295548843517236200395450570810139925976930386083619658343993750410720645744664381559493966731259484193254292125124451819102558617216047455320206585686106362278232104683895593537285049614059921507826548523251746658751625201337991029181708000671198891019218483516821665849190613104703418255744066699520205367811233883664881071578277516630839319732386551514315078148118412420943029755577728126852897951131821082331874492525139600754636747722243249360202414202037242560888188666366593981989387266709308638462652142755758306092957743848843744823154930764706600152756700103360183708531178210775034717063124983276344950471334281516339028494440161948218017753553523264736468705799908789366758951588980225729409012103121675191151250567188189853349738696641524215353565308529890540457923951776059453019085503087641477703269974905720886009408438913758213345501176385109446287421843176967511852603974683228215164377933655535438804881783616205227434587597464226166918538074292202780585170519388192768398255873822520376062398928983583542255101930950866826773250008981352764466303826058027204270673490423878449759293160213739653346251541527096130784718760532693531298174538957305961423962719928464185521812511108676207614073102789866272012027580663796574022513041823193757004977460163337792334919686866774897947984428551113504464966669096798648746564402070637537463393810233993727967931031785047512343352103215675599805384077372675711572394401361622658363514944605633245108990147168116080651917377439496539961776873532024222181362129653519923383918519952637185524653953378437693571453567518147132237535713595736740408736769092997646622911775394735004964982695226714403873902715121797586530602331025751351262648224885890920730670278224204484220032229560197996264996399546783092354643919234115958918128889993325129202656744110181337689918675254726279624282466736845565878367560657169339974873222633140130294431247612379765767789767507996966948446528318071649193457872064879308676904849441267185022320977170457848138885493386326337536911263917139514330306720423754150901204400525465969980290371133811618858074775870922235887891099050632163767656682383625268841503684466245314803211477155974694250680401861034624604745523546633444840096916572634546596024791474009017380486541619078921588255951665442510800127507368535056372328968239183519578318193522573178945691847222672684635649217843619908379007471874415408088763566521438390621896205536817489877754425855535150686325553072892847256268852983491982700255482513953083814018824066272525319499373641274414684457024038631028106717887435412340127608078498548533505592666343702992834536632355750375070899656067826771590540038165855750766305602564805419568235974620770776361882677176604176322281998577473657027654477985146915757344794036432485741313785191239446774196237888001593584922713549992199855710810882983990865655848429593665619782545124530197463283645305360436221119919271022912343150559135049652712896568044712903195266899724817868359728266204190819709225131812055314124120982240438844749233889628861581790194741222260344200044820550097679280543144546755547603446991289179743543363528632734561573298291660431069945513587337466534749127841888950008850104099785235031938554323945479452775991023261545211110592830935542843512013105328254948317017616675768832268882675594365854110704250141138215271546600677647376610535474971627820509678073416410976945094758246562111359918228916003833088297644537992697035598684500085129182273780567594640786171257715858453185628193835918902674197975594118879946571187048923939601895135658321096121381686019299501251773335876218873954028473879622248461894573151111671091751377665108823807559748808614056717056714397648534151909049384270162244425363719673549172776224839153689911714310686922266213888907498617278654518006119988152958486121797901232173832606036566295626755489554221076811217879833756452950875573399583752026659594641690864342598476868133283702457266031766606103031517331686089947556996202554921426730239610621553163889359240464452146840530370111814149341490147427165106962559339440014201226721666990687916347986676539686856565989049015596324997693907897607785776501482736401474159735991717900600382585307848843828164645584759244351478773682606153668545969915768063961785748957379314603230277379617773101940055022103149406925338270137949322022689791913922975549680257789076343297695848387992877991424230337194463899981094268242403666603880840149708314513860787074499730118407998018015458851825879266508805008820838220504925425612454706655836425636375211215974274394962540980945134406707846045340074923416166099042746482295231497174634843639111981886362621817893972840055606313703929335149219051922494819413926812370982894104618174759590272601737126383411006649250696802153408419768096017041128089222407140718736423784009143698201418618350520628957978685852389812048732813421146043159930809658230538846037079103074422693557912478798807390648125053302344800764506274818255593645818768596297536311575872152376065438370928845814674322326163315339811618269518486012072713601817084482090878807360730650981155833551823913176064782297109672241876778372106844958017380054544978105288388478485914042769138528330440563218812031412385572987799067845953095989102194645924424792349244697277081590377714926497320978745292077082588407502008703562282318458020005300950988277721490624531470076840579353521611532468097015498743969597279156133564760938416944324289110103147890165527052470899298034207370299992624792010357867836039772090721772133633543980309541480105056819274129275475516478679297831946503453021248169213865348733622526260499850557137869596649618020687461049753549471826624202877951070855772222713738537509855919309563060280668262749084441755531352672445983244595649092373605121891038699834455069521993524675124592519338157018125124620291190191348078125666559024587857242837488768768789033252986558967677696295535264478345158413101298642514118942783339812867978965437080404980860332319640892369437726150684831373352206312188497707571584320615321254304092572492762075948758801343369908655851838716379627314059145628249273172553933769617945588988461432759297188870732039274378334510787723354442557711814873205541260592706750247534485294409158641031615737609301896015267277302689027654693669187003821222123546832751287175264591688332475577227465930784918632330679038719506154773155465602878968210838668179533041697458191440091790908230497532969594865879828537591686252202322454918787641742627435914325330562318501947909228584596507161835437512282546324591340324153402877111059281434162095422823080135211674604909546460534212128851208714118154303842709263120132346437401240211304191931663337747250491525995171328260280378328420872498302014659688247332927369531308071095809082188888345388063677548395714615367088924151297590259724358582709469722727265281829111327984897888637428871795254672589812280686743321173780119008553019974777192682893765061763125305186615647155150821124228426900083001019774129360376169286680213332805283402458877492096734766267637995118916602740286424086487061698433106898660615113138719793995325780163083888673038873271513960789059679025715346841303145676114760052859496007504630646764538865666133023738727190393874282218775447900351579635589816300761734693954106680817807990023124010911138974138885700051749704505967695538474979953933229364343825024984314099630092902441139521903845658241289907918747555798038164880869420550743238012614568020310290425363659238983214447275906883478592693313236232800644514130672765111142646998027676962434812735848371861203777470481621797694131561105963538677889280300045311597645670541712763473957885644610385123985447839322345780063029469035337707141593216775733386296593907076004225307707929586454276848726033661834663230010332227592918531810747429317871253643022659007049040415191094547189328179359319598285766337999988704175649795760408061506951248532589131913825931047263873019943731607931748857613422456063192374966654437766737102454522007059140704540409299777567750714845373925177486044165400842638050256398270235325589977533241436031578874539517893099036118934757473269299782225345242604297258162287357429750049532924097191202481000015973778680042663420813692453894944472784080138483955429929409128953458767752964100730868310077492114988043675935112823791964692738100998015668331977284702056651291371998095437867324626033644736028169991211941276706543156130385054373078618574582808768384697798033128673408984532820701436097322222389016121460602908362084829633163097278579170494349462283679329277618958023288207887273029355801587635626039657660543179773990493352059156868278959157020765371460374129471032072027309827869817185204394520158479144115298050618654235749903656435154627561981723481767385285465050404309267540732361990363687318879611083342928178671660857655760065813627586416367680609432721012636723263649720844647638859368711037591971455881001653634533832634679640261887902484466292638217085534090119199778395829767630141275308424303356934798436355640493566698176770835214874742049185184672751401034906540888466333877552853546954947690308136312877357083493217981919868838322616499342843801219547067846015087353105772599021905011878866870479857770912146851093421763795999334997437631684130786096041946757458420399953884522315328506842129833820140743207102092477181525471310782141132632816264216382079430211685566290446450764342450266118936063044065725894203541679371868424181632365288683040491890830351495729245332229233151404560122342508939340663888813799384881163350837714505278927925627873268130190491717806897449908957343499554669030043103625933311847256624173975561723921932569442215205030932755934673781303373782757909106069021629032647140206375718285248434793811107627185502166235935933470510643825148751382232945274318554612825686332966391884061447041741894707626418874296492104347041379890243351544516373631809947858386876325605202791577033995187851419852435231525439616895674841472735749973045736226312346102989505086088881662586245268157786125016090385953294847070809314929602551441075451815228701306257874661228545502524903559610542667613084071538168373645058398260213813449286804911459562531077617014083121863536115872612790535334301498770417479302605074161100114397530936778222369722852882898009353717355365220639663053642278601136290639348808603223330196589719417996411075802635668251614100989837489533438335666045776249396621068270939628354324620369539433368034454216885145332839829173388319789805305500494896421151920883373802564332961557322731046556829473718430063015778454764645211587049668083150097118747639400625748784843615714168448849621760931208968077691283883570095360880246168199745228753129077154530446948437335202668224662419380223859002873130440287016642504661502967163584804729440498357460192325854308370987522529355092069104634732279898378747904159637634122121921639144388130053256064279255840162286439030294042438890188939717115557584437615901572559061909800270091680082786879199027107824006488858676476986368894266313599161167149859795550250908781569255370249620511556814739620691282900549581565488831989241041716025448800852916178264517846753558939146514947107581089670971915145133958210866964952505124382616087298097782976020297210721270451718373028844427887782070867216891226802621031022600605344247490485049750916690470148101910197797061056098171487484425534608332789487233861170086529994825231760298028912951834053278842132912177767452062348038747032013499976387954620431276179162830648877222503859992108501117993079730138988034551254719769509520436264679985537778572824875638492204436018296020112676625590494459624894658558940791099710431936161005887675823577698532477758848886261976047579664045459060953854320856010380361670938716605411118144346110957949620731090264062705701637151673699245340222144388493165361096874676571212028884526965707915711423362217350886609096987064089875513127651044313888056119635233425487832834599784768669208949436996101735061197691065791018802779279187807318507037438594389841412587415075903312151642253180809377863014927286748705111671699216381546404658399274369708347605973068538593124446493353598192385228534628339177492844864542893643528751027254111849653657280141961541068702065236091953969683817320767540520395462897167055233473985879240280500406506197094937346738601102750471239134826136934022902207651272921693435572051978972225776947163816102136284275060223499231772187674996888625320675988945895796621230384799406299475069650036148288468763775008552598449130899679533337309819897512727684634690989484157416398406829745075123256137054503759916750715696606963532771501826445702710759274119428613487324669356864780705871680109943586543456126949693060098083785526548695827516799416709962217704646937326121089866962112047447015239058342552620424448042168272293663813440123644153256694112784965657168112721173288141009937852835253766368902734657409485199225251015207457040050636208449567254453564717212128340001742757173089520020860238778418106904921400319906488126430339062310080226671889398152136993911846996103373507356415362616101364116391336772874655598989526310188754297745957389450610338846018334649495996515719772346147256807495066211739447399158338175688605220459418226496509088748348416255093242688518716142996125699409679735895221617002431847892066220350928332256735778891426617015256332344103702792148872466947447724015196419754259693463510473208125104268540409863969724944885444779331093407812973141101985628022212205946268997203784940098206768062646866709881918748863573212249896715678170506205089171936206954177786040848296277760134858003858201850102670942100349795021535490829898510245269383928135764735956166964542374061829449422049498632913192643128121780126493622350550822596682099358489705626077197217210299817485130763660150738119320740218176308367266837185454673973825310769290248970509086816381154195778532667045325797127589230621627992439528811634155022627313433579699922261326966679013313965987462344800269532788927498681900331755811402604019920100546474208755141041651122526815650591299083829330854962735787670146330356953746174073809843752662077766899595116376156902037770820065695446455441923310207112422759051573979366447851269349637060144410985002223686760640883167695505458918960869348073597536274535522855762967918752173600124523025969580267259249823698646590490303079540230219453933902614750788217798342768782187176761666432204192209307738587606899661606502223944542793271303523192378642300026115187778089027742759462904914720466923891314798220381473773806140689753036529390759313123564796968756234238703665761089875857202716212291810929367175178724182570066707023282941264700116185128642438566981996415939091952448660081262408762404084869545902840307710963328853871245535861821412703613744663881191464354639974585372844659572819428466279112959405905243874980488700916715356125265634604660913684792566016344492276414908923785541325792889962166802465950601372293640759518290093144228486994507623880211451635892468345112359470554351883934105598950746429512617654803692421306311580449189394672723093930497222261984263845077003940341322239226667629670591947211957686025283167008871093217335034134138092025454649500119852339554328501813714509551651103853224989332902975103980037339758876082102259995308009090184173575865357770879862210893063956123574001913395704703427712769376734763487736815948672301200621503262596616101270341069279553254949153448808767566830103073347952899465183664280801662651420821817199549682774668098627815076857661290728955480235466606024357150274702794573454480826798640807105079143545141606132551338079994902358361312323616466025121919454117216298806133734329421054273117072899063822442720493011813679318763517678789697049175102326968747870481233971858758116028554228154053281517922759559424039793736172667991061654948326842249139734400943955341639822059263267869451141568967641318415055012067743835708922647673195918227834899088502614691742556193113162018725192451625988527075971718396603363947719021662452448751381638565152509963129173668804176150684792094453946967052779464964953925119365265550781861595294764560130147179085006765986667484140301565221143222067608719900834394279313135867292410983085859286602157333366560830192909092353225495553081189930696912876094797747561691521639776938103202280713523763866958685782064652263551703663181769393216702640112277093978068927700770556815584768411067847208994830506604411111487160064378548350696365404981990560232042227118493824169007900612083429853114063133735205195339348529756390990069678967260255743721436443405830270540872126505053708602481698235371708050989324637298948567070778664614572511129743378448175950348996066142439820662524757560455389297702318165294980864320793196396873762686229627351450942219546830601036559586574045335256901403386946911046720948682106406271923366408802943201007319265580870613281412319153774621504994011988830295347470244378996157582811442419333032091089968314642235314822033747978193977507037508677601260951282820074614555873274581972935729612970820048045298924544004770958224164484673257851171614154578483073719333940993072448837266995140910708592517409519806957602776149653121328322930046385505889981350772106541522201933998475045679685636599283126233963928397364702990413677248730361797412841732394549903675962679940965399614368480622737318874462730761206155578421693386559726148900980592023562447573907243843459164401462416990965409251007089593487427709095913946524751139985984152181237407170059307682483438346765816889620225045901725772165415472133965726598077044525706287295941825898775968193415824358235400725350309871535272594150091591055643269791733706418527618606893728139878684848466617679872581679601853496858402016023678082520090217598441869240686823609852144206049774949145716709832344931721370529134037547632572934410056796719508891940244394269275642430926705123662200563805481625036115504588459255675325845599075340386881388389453378186129473269768479746433915302809046820647407429056970860767837009757955423345107138075520538418636274830196860990110207433268672219192840191373955922293349323716621375501981939740424535319294976326418163309767496061432270114093727647334140701480387304783018543997788308056898710866160702378508589009922231302284461010029665738905934630109035740241133351922911010065631929550709131101055951039513572979844880826429994124515498696239992084368207784315281533442018902725701063659330263070589980848524722657957813962733980862694805665982462016237843455066396507350626569061874924991415848631147588242576954443787704171118245220519771711353507870964030168489160323503629675071922864944628363156850808181483053099634934852997433798276210315443933801691867820990510317857809101403241261023903378793025993981410170385563440553329299638616852907195594759100247966366764395244801274387370170032122941455992220171022981338131872327939717986225130620900316003750523737647837010208553354898737101395041259940534960908776210217853792161609655996386487708529912001410889523381154072739141011402500228603574106864137229782727655441847774624670500184245341858140857778792617955530154065753491569317979638717296874947277154897419010046562012047862324805473527260918605536904197087612930651609220923696831120404712699459356522549494886881102941836923187753405668492698623920401667291497549650281659558932476478468301047366911871670604222961308007617500918976000286815420131675824712966388273411980270209314302485809325939269119922055831519447866996561927487657632069161698279050108765560043607369225707809174266566059442374448994594331729530803101078202780135059699476715734229526634873852983226938424557474111907981864828794367999003230651959287214971706177561657628383907758925283893814563055347531359583899858994220508055583788409212028672734590981491992162394871367287173495424259308210627642003272746536174086838472627927136488728547501183851776742596992715991548837057415453109349710175589706576713091022342395387927008729639084376291637239512887616075031545336235745023056602180748222109421327143537276985987423183684732579188709208760496566206240142279784766978849461329733828280984898935228503143436608910435728608148522035250670203980529800106490022060723810327096301428429861597260208321620910147388267802005439084833130231997941422356386569291820084234123393796400527002473351844546536293196417036028221658261733321562523437383814045266966229630960449407930042922225031197356666342758242222257664430964642334517833545709804239151871871555951535706368179919403334954262848210493649387079458365100569000563357768515035309160486355776884554558044962912625181961117759799815065439734624426544566992263727871081284464481427795175564070863110580121197156628206776022011354454767958312333894215470984836835411402182902135683334562574007590044925607291682255167047707406423129385559366425527719436559902946974356260310410252284902413990887698786152166828295249006391791866879314592214133457804544354204603545338851318536656716631653598578771859502877922213976916472967668350290785764689671512859340240431568950071217438509415664787130892086893358970001160408671334325009119858259729126853017814945895386189435645879330235673966375111973173420507700795594235466065318769524432633443291855837098008165259340128331396952784852272889950777826019852071175192500926520393420291755099537420782327850467167426799593421480557622987994200131924610804300673001563349893322669429442855989326591307916113090019192811012407118831544380861440452110107693261095208176925483885713485313675763321563361748608356286465850778700408793476432831725569704404930669456402611043851661077386581027844937850641084036029671170251208279187418158352104003177839880079948603007834078137393054899693230312930880523041928791484878184069648458641762619935173534742118671719956881160853841321630349306715776495221450675914974962256251305317180485775075749540466277738388787263435564818556833546786406547839411309480308064568590268203506755366256410931164901887040954995622649335765722410586698210536762886131976855280629841145496716170854114155663906576511131640202091939435272021579137748749273734374636480836004476545631633764971831238661780174239381059375387250756767229556535975100922990003729537009033050336753619374878886664988528285651160358310903599173724246647084839339087507171617153022626088559486122476846760604131957562248684863840068871019978708840657640628645097153956335529745421598934110490134754578159661314939281758947524106539402656320916122358248439383393699630203505665366540629033527805347617782060034372459930610737258543689571931284915428792750859396610796730529721819046156293430319560824389543275126707246802164775791592740664072881740109317427789266280644177454603098734041422848478989518317941105757642146210647925059096410010670552176638182560235876451205288663071616297551259732713136811346687019836399313060089520999137264627598950331478841230925764951295992451568403493847950935740883712203234416750342949823190073642884851184969778643271397767831715430742694216421785763010522660392148422775750612792488802946477708961102603694889124927130110753403834336520237634944725035763766149270231888406714865526972016251814351758307198124663212616401876132253696408165796109038393460856227652156475474196965574854207167934729301275941323590331324618754411526251858835808839475146530132309599554807148254595615144674507576335711470203833531599627770736489554747271733388213198098456665511765318137559664244440341123678253546503333526531229769839830515847805328986620385192515690340823931309407443460227134237200652497275600562242181768682160134791866543204372145987237976955071318868843079438647419761375416647104772865895900064909429401679486621710635373042674388716665340848866141583148851213147902956550239778339890894852400263651599127837718014066739402907721634810955280980295562012464457402496712737238048413495001907644014013432352734437034033683626137662146593194928502309181508924055629175749086307445798069257406811667463597633554437653326355506752174697049083422312249881424550178245630879521322336815477605087789605452375328591735777306632969822093047610454299824770459952921382544040770450074332111066593102304096117596744189070945873874707057769691126591408147926275205688025880743855830430077248125476324331190009667566802200396058609217896625293589273136616032678359025901429725114441358170295704437168363844423905541304707836028690766943648202538460065200407543184193089918756906668617741979089414931267284299378085174712338873475980918493811184911154588459900988545402744159002910014924801605189048438073576082734079602949073927778974942132645503023778564645845338179886116401324353053471959058908359417160988509836668535809456197087489392068400580707755755817545435734052678338912963938503350731058411773061148971035516790054110889663998685864270192033667302114545426969069934826175667873257110595802229942861505467423513249168690766154735558389365583148260988472813980900050751338449064338559054510150946173171526463762703679694111592296798343059031901195173428772409308237154200650970366327926295531098575812500017317781918580887950721692268852725383786869324855634152351766821989931934506644017260192596767035740338683043156435382324671358305773388418654876694546006079030224664423364787188645736695309142059338297352368151500623788987750797538351780154664237035582263521816554112450261013294417882152339823184210331183221368158240509377244209580724527472189094470974151691712615721188781364374049101877239782414285066347464762942793922952629361477717249755580968194509779527453099651291727296662646568057315688025925715343549559897768375576184230287828380053621231538913714505899879725824357778794578468213489070952765490576868758015848162902510141040203937188325200666765112321941391444234801367662896590697100367142004773756284818688361153047616696965289910388448928041809894474742431435870147237376206875443683361723860948046562432590233834095957199618176498822352612450112982747495554681361056186669938062123835880030461176339096536337212102978296101225413166513056682712246731623330529125266871367312532004566888630336701183247034596583784416679951582073934922041616668727502714561898084418289525454917384350529386420232484838760698390767936032016643555436349628306381536853180226954560360912896647890662397818768204491094516922007489945521554375029571670960450789598343696704176634876906501905164238640530552011288716140726569318057816213925346716075076006694306029995122907292803468834969337856136991760891853609364757825476346959194340385125522398320364510662510537631703254929723998096138627143343631896964346876916106909855917838887461372341337264602379038810719843617578805548273773853470181503623155050220862890206415193324089512235867887519971896098702790802411720532395610655512265464146688794435777232524272052099930938572184412776205596782841451329351274597189529444816157074953422142779494570733384465863663290864117018180145832125143528366680356043359942145263950465487710276620430348079562524341474041265284275765564742058960550673810699859177582817478300878736757014056310442104123552676190042763876656347841578110570203142889682172513261022651623544205836214750530039409873814881995777431324238756489074740979574612746327955387270214509900872745290053932426866519635784254300145152118236597502592554453074685137143975688167954233301911757818258459051403586588283111893678954081814890690990564160625730422586538729867614855283886899968890986480493244296157251606233245803905183155104579452526612532403975469830589084652957141923580276102214254293649147872527983613938061161140812372986618869597513906551439257943409720246750737721597921441233507170494621086312943716089446520215903855310501068127685067342716095272003401602419528884497685387017839336054000450156874827967135122032435981084088616316735705442377290259937286460115616282748508382690796647469137129108929263270049410795779841564136184576039686330076400985951974971211849813903693830223929772569299634062700078877027167066129930991458094810899047731551124859916240577892040002081595269478694263512240845366094065265743917537404102873351232034668811679090042509777690286978094241728686025574870005371286722220209800802407037226899243643524645197283113041215962653066120434601394332453001334232312509443740421022033488819768940899835479710487514127803536171852946356469272027729997258843205652503264401220430708714554577895982195350737006242729195038443863981950124682353163534507309325181512998456553675226409713287114304765714123284055374449327810208425902537044855237730777186392784274325278872169942382550487983286532386478288630828713435466319820179185463944812217085754798533072067362914710473549589763888535622468294001882881593846419871452835918162495947683676718640094550611566750555441003979316135577267332391088921833474662723957200322607839628341980149643659508968688294819830871829441950632516559419213516290037246340702424982873995988164213133700992231386436600146875386447289283130017730949438411877057730565310807585902233360262332640654040798391370620238370918166406339501073164860916996923680236514681915952505597348313512354464172899572612590226637535902120633513631123827860984804618845604776292624458928297700563573775483115268722954844674935489144322646551481114490680868476775567830499041665620429845175616018095184699696207105828172691445148862249254683961423723323761545179507351292357430956983580791353459600497951687724654178872228031278071792018066440691011032288472785940283073415391308438367717997290922506497370060990569857058686881454053427017224710273580206714322204069275011409898029328941344551055531504674892300674385955182000471973206612047210358901821781690786813692383675696555739376458134682964883478991556089791077998465481622055376968132733915560372382768564068710246594411845772276632173431471718869158364242954759405238829984162974072066648223581458264352021262659245921008425454132161686406566845995972615332355650744730494714912247725526594152000751439057722953626078748340259084206726505470264195311263951267872611321223552658806460562083147109497950249397362783950645559680064059914896591129195640401662810291814033042750333417672697603789578783328047792824498420592738069229529217055852254649783625363947729564019418659410750603300306896049741571596259418220811041018900537482356716527494217902322586524094373595238266503739082364100034889361874178116078879667214099823816205929149422465279195539857597351803844209640079699371965735386814494635141120668876237677446136703260581457046337116478143074090109574462767927330258951438528091373459172919096110103513689124381573143247230730178985123643466426470055698198165413727277553788864567048351265576900881017192620733565235391413259572204679594523052771260535453527780916366012444595059853910541668546096872525216150098413930701003926084793154778213903204199081711100076871941357917856963119687818276456286162719942343172234068953963385537934693656208538045869097148996842177240691397144858481142461779467249158244517787540029541460782131609884795154592099390277532565358675759899863240744520645705229982072162772653647608403363427646600502840814563830821169712662689170903646061556034689993543948027142605320464411108833497088244926620116036654756761900313479862833845896155329909603963449578567235485721333770064338287357484342608562706868837817714295150688945788556931392969878840071414888468424911743773738418138993297450152165173878975387657533737993253943240001320921411581692580088709059016036152604952221671887545297464828699322764051664769111595171343431095862706943913875940500159729252405761241778355399054493931025723228856540648485981336228214781982359858961292117723621477844272025400985986623239787838532355004792493129286822592769672481496451033338776845602839809447685934436196298956844765546760841190951789264131049827793057285447910255659850529282790540114033270007038354543383820592072916752257424535681487762456589887987489938439049776380786270529084110351799073447916121871607249008145067042580516934784178081468534780140308450558531560587237374224853231400740974974174358751663546639620935802204947804339315660645475407249797576942111011292624935454514284677446868712704640979713878199596918857269082595878098871740233001970157404621809526961479530168011509097379834459401218773564789398264027300412568692648294117634400397693677250067256167351434616557462555759291427014130863818737415823715585454531250549449104805483191555709698836775054806169039691913072342885929764751901292624219005847513013120287234749836150851811847678404038662286452198058152928786690489975696428378360720937296360950910863554425012596543258624151425426302052535990536158679905160654024021703073423294711675089800832085821933008437887039244434329506170889707562987718087336396606714585441918626948670906447068788504343851482000421118011880647096637524379306944290353893645942779828615686283800067595173691417778142658328960137742569981625128680419718155783698661955653116390705582059287594079319707917381760883806415063153076143664999872914868682460144689800619094572536389864056419409994330386228579171426491002862738017519507094479798798950839135202439546315525055044840043232390249404764026901107389112506780587073580761782258202117515818479408791776309003209798705043877224948463344622152401866064028400981330888602422984489460785973080891856688570143500469944258978985882862961877709528537998839027580210744119478559419215806191465487944331217302753392365558127636334746439651858229501718941594189828251002838516286838890388756910503306015103151147591530596302823371704558122557727331846315567369564574457491959663917182831655498213108418452060569693720057150153429045085240460230376828245340096487945328151415581247991741612724591811757526847546741231096432528744113738237830653598999817001119155389413360436751245460140816505673959490528384903018142940582827043895148462780229636163123233613341751690987357178822466654288203904432401776624002779396776908280707296215458259991664016521008296351480983933012298194916815054394350745612321997888808361701834983393650704108566671662948236608713133291755376008654098925181456370938007543452077636550185716304394403455845417301369740614213177884261386043300596694768682205422919915778263021436411692940246054965196187400693345880040158455161455880921847274196772260852780750731885748414050302680699614604675288777281256452711107573122529109103991298754664152200667841238313137804987499772772453907916336274229949417480439873567757615818470249410309310142560398153882694754891427578742172912101749836713272511632554428870236624481882311696305248729831921514644546713870567486900524403701734176510749350663439116369753810610816860093688593720381354245927037185637029037412268480441983656549888841429964129039238684882564035836867889692571010071176196846002052136179299577732127814747584080649424950699670616547770740304905313829532376289416634862429853012323659036416773472153779216979325893358122458502194650197673634164342198123301765774492735273299560607318504305390609330023940371546564175638555172408652128908859935520979254949548917683789237446319753477772067010497967208471756048284279958935989163473516100010326426390733876792316498370791402068851726785353452753120932434295811812442364975345101994112374042699729119576656664932737825298040274132642828357546409664484419348966715611316066698502352193644641195895613428363716930144433040062267197448061137942417819178335254313245667284365865209920464690724107567402748109610273076027630269671916529179987680735129693766104374414717749211356773962939414359178648218123477335396983902267737934418479587987093385780226708352482426504597890763474478807007845707221247969298046156990002784609250416333658086538946417660677441420149963459752770278117346908022474878529617174628551163915355582817546218565760484637444150123593277699349898527919474679679521990824695560179814813864665725101800786975612624165582293832419873006877997335766070602345089932151428920994179996616523312127188581179609945664886469349186648911558387095121729564854181188000025362257379553821564326515201036792821907928617045322708929286284468012199890029587405365112500360175093959933346268444592904081891659366105264529552819031249558812109299374180055049273667661123903203696205158831068868925442696603781875063579586896484870016355545818416518361677626697508902676206600845777310223626184352911895416441910824785096582292636955275555057951272019860578519766214668883915074080699427622790572242213123895420406172518576330650448287762483041754065933545589139542612466531973023878950447259535941592619656229644291792806456179555559209135351323792409479184486561112583687240913303028693138224640867736344042666383723496951350225719224061031163824539983616227395499727303774819088600768294264945216375910828703908840072856263613832936657349868541545992451309682840731595367242628008020916925550758569155676061948113978405814706748790146606963822286138383856122884136367821639726498489317473525596227057617804862699238359676072861104493892099139228443477823944284299093713673111296689496293543513847495830197475838889037702820101828772325172110161852590994284281252133033290868181596204758393798911844525830940824089281503010734386055061291026972148471857230762852295232425788118041232781376967734323987432098649407992251172573969684088121369809514559377769539544612948775684319107021837965352927360731231073659018812533629312680365840377160296435771995392589316946939001366877212842234688436884179839343252740426686012216569477422924328285009078371737056877275665921669292551761444113673805748805024620533369307718035101607129797329515540442348376756813529985540169974616979861610223190195915565841570220279886374696141671586733802727979868770890785539087864432030344659883574925380457939771546554580043457434857770762658514014957105224819783113928666066157471214011558310570863633359027001609099535751165294891986359389868500765722198648574761298508208179748060221442657106096407757898947351625205682975793436130546044824962287567229066875173178234691442664106976151407091062760717946487590437951610597210274914942713086866158563190383209684517136568637186947893650112438460578272280762492889497737333934477190486636473329145086691591541712458200165540229048962839994088562362259941880915284796239721440729598692992887172785016620801084237647236610507787358613084571761242393619272649225853346541639364006838767716682427127687314204364140168382214496935920871868977121152218477269264440971445686287940327369725849378330988266957101625647698959716272605210586982841252199725452347490508842834507279388714969473399862366389729455726436833175101521026058953807994792796892600949954927096168765817736456880097279213254558413204213200240409148740289499083187520885477536101742453131499289441206092839679245175361055533446041919203025207641635974366540105033488768478790975422151016557131797074222633319053711122805228131431560637897111031670035126075484091712105293121065950117701383273607190930545369497640898730396195251277840588236804726849978894197753432596681094951238658616295849785262802836318829688234867374580316035420347182098325530902043611659825530293521493649465725234724144914681101502132336735646677976989227304757652653413248948149257274341698930528053261651133126631281399183636282633234618690961248730054391631239557396443597672813983449557459575825469629498433863400028140937999842573497526444032776451328235058672808086911743592312212586000336552302416338511868361398745840912397193245193165472238297441604269292730833614574674101003847836436262945673086450818344694766259609096571901845374547154522729305127513634252524164312135418178839429703526886228756646799117661741543341539524586167329023314588659260374846397599714921808300289485727316345713250609947452633634868495316309124644216857335458782720877902571497696180367032834293762057637168022138264367485054173850783173468836649072231184930302672384672088176302561794177828164027037694101215736873807681339993980306618079621445533081156238003108364432317585649837698409159353475133470250336762732909182037006087096195112140304010480753526528674805616700840433334828776860995847678972850412613193522515350093233956146805789272268532790016897103005222588305503974817151675174575382116762770557720962353038276430171019867966300265363913686617488354211074662942348299828129093010060080999611110760935693512568107456693765338403986134921414831185937684213682114852790909450142702751901851549188232644835137776325666406964168946813029382003455513858143819046589745949537850736293702873446107442654871973055304602468773776872697303066241149806024913383648342248795820521122747966479556442565038643408204701087186516254620725074041871442535865106549315665822821794634140738813319911844479099086691153993777836436395805301483466685569990027735696811882835806153108982111763728290360522595336157395202940098580178353071153149744950073906313742077608536037710765696811176774369667173631419072772225234345987106885619469270474025165028958250972007393686080706032763184709246997593856450383099713359177665370546493550279192363615751668545334989015939933680456924156819178970521870405233595696370361446774988481693264505926090453016869664665243803997589446852954343919413464443040047575452581978456897154129858428670693858079424509298116087234401026851582967810781849579234414355918514097789822972288840572681854469551834937627897845959130646184408828643411564367835787221702204379765310635605292575217836819806869973925210191386749429838741824624506495915830544999664472413174721493868884818229539095096180085960813870735257402642143090683311511018488952122251880507873004624262923638441433344871954807289644074264477614609298611405945573903156094064436096440654675757761908992097966983232476688660551203665372055546039181416331472735624910863730850629507060341202693131631452733697769694001930894544266243410830767139728988046340881704771955789078212671130773669713951471885658062793327868840618305394429854073369034555555707429758221497309656311819496606423454645977899481597174316884650700107906601962303290575636716602295574735030507673467127300910971494375354742852884375552215812608280635634326211355919313186541088126190967177378432556387522175150002962588608403237163726001485560680251963112442842207107473188262476003154710232559361685727157378123505524867041206663719296559649437181019266702409320073435771843733610930339032401345403525165631313849303226533704502603692227309945459968934852973276866143562115700358766726358693941745287841477409888054232273930219598914707596575279015861467776094815440710277886674039078582681460786634269654606338748448019284228320490871634206324210217249525190152783329485484434693577958956316713351310006045490604654609237844828848405536879582458704953741789087297745799674753301766584082731440326762620265824874963583154383936141690876163962491271543018463825762562024270929597550505335067625788403524689983914560967051191925217418979381501520331652131285400545196734802061391174561018239987279588700899275739754260617712208608882599600745641543378148869888997969792049281740585460500152296110779942600044401350772354335221346510659962412485014502666190200461848490599022478989550921032142287756085547828470187837427550825897434455492731667525309408455047322116036152733553209653920601027678486408977058255739650952300593430724868070477660554653982890860815811100750893648284034822462656130574621954991147262143993675623127297474668572249192010807204364203670757261185489246415572738947287122016105131329707164598000051811112812385416258603311979153509535808150206932009802027304177751399559014673374522507748487125138285282634574669890804079450321607673687190959096451597397818911282486638068902380369369766127459402997493945763850835344819748385230677840496176217639061275181132245676323449260332133083381103367042242135494069318668674339486834559525350898335207838547345494393712652284234026182700357233969600250540154273226157838942311267814773896333934694435002747410997369106205757398069269165776319265553984781502164636217270675794289941523554452265613090701735667632289210986949290013309902542252393688333823717681603210908642193105435588331698365917199277536074937225244543068724379269230954696619696775144341247724097143296738373512368733411358316551063290173219398846302982266974196152246094205462699565763528129976829504287395792066373471206693422083108586099690065360364397372111524934335478376116542415080020020723398451792198501938138487141452089657349671231428041813805417146387150036973284646369851375433530306276168782755555637075497104833257301373378848363614817798502949249021417968497068844711488392330953284266115624789284096251355170228401748628045666806038344194499433834237292781023160225454074949154498351915078909705879879491728478412393172860468324974473174580517255157988913425107456003875361824210462465142026797514283707274053923688197679451503146551549375239255789811085323409288541384985187088031543304723502995152345122433135094407395542244169782696673820242017169087171510670143690590413899936200374293603969806426475845198636140508884685940809958879689089196230918801583252980094741984437794120799222657872834649762665209044075600722434324791540673035588475372871974810953130089234842534807916665860413504936354281123186136151040627479349653636263166727853145059787734824604058831430397559104474574844969555568881385276962325236927104827987713559173626502683907073683600639627518230442615019266002200653891015796903960438005513531413426093692879091525505271892465298397087743873144524557195313296788023094270449461556994680281447263761782417563617847925967712533903042600044531679951559933992914590849908903622029184341622552679145903415590768717926398974105505364869240593996180720899316625950452193889323835142245235755214574992048137533751712376808715263934597695792344347329440425008596152748531190247598376843642103649317971903265853817271152808508056600427129436135805232056609903572277905181456484431099904322545753306506285459855811595008427505223670524912269728839296735212688925333164585342370017772997322147678838753376453620031169223412864759298640198975019803487276519542485134855139807113349688930758225957685966056138378236394085235926070260799032005064907739345032797278253376961549814985478259651725125336451790167586281511006549434444424133229405164565718267052686929533372971248755656103358614429501976334902771790914638447762424196952472485957515212075459295356607207945250608496326131819516841611661699610853602523588461591367040996300709727409867753854545291869531170134082874481275465762612225739074414357797974039696104386678757903145697243666262549297462518321951933644345455709376170997147612880424798650489567369998989658288743610417312841606089811920170565798475810836062492990818488099899693692952978878996793367326055335275755232901933131075840673612810045982836649098394359500840761618715943833410345268643028387814476514696283989301438603986161474670430492764027408777345259563260185392422768929570694889111781396027635127347926112079707155061161994943872714222109463045685056904610439118837443641065297888102710291766199911140674609935770833966822953795777984876364701176157987334237987243636982891020705441348523674738981148350971715694052234764473017706973811130396459903254554194712191052235165500193372478698309811897423423326321646443460446313517378725847019038127480221367806377089213788567493445202650258097894140228034455313688515910701478167433803726884541933385396436501862783376127844125989139153220519573364654154080901544118557592680308224219013116921381382341167773895788387524299778789813114814897864325788241821984958328369191027635239985726586365057494856878908126724923745213478095105178045292299326657743568562050994962502220718304651509452595420216686050015541696533897004575930173531200744906891881186011484059091253242346968284379458093003990104690378861917761501977854459559680865776856921232900176409010099085467819261126485869465944970720858290703143806988030257033958639192808143857214468751157550672310529204953284411939550481489207349657686081453995310665463385365243736480147792135090523732192752433932635330277457708791898680982902754322724086401947504530216783698447934971345382980269471419563026733967512043557851421288996275448560123950195363096330483911537833685048041800266237482964707351247621414793096897354224623780396620975704009391594661975155137213993142468122481744556844665233286207389832282217004581322724233148513689966684703035821364401714764118324888497804058994602025835410341562820227544890733093664901668465046832384192416094865593990976769183597250886703373264545040515497591098524518313451432940552902113577948474166468188691973902827603629218859204895319967776494866404894206091381637567670558972489691802179501254378258014924355997056141755485522024528144702135394208398277949206451512528689835512980910066609189457224586913920657297398097682830061054480991473559730127922677296354437389493894337837085885431976633939092969535397559453935399802754385707330710448086658371821030552852956006504681579933357233105864769177180182334299185150814308035409420918961870598924074740245695740400253825467567708366736589916240446994899545950733611913911385152385829588810823957135288839075538723346915433810951038044330813729273403049994091726156930806491560194833641900355644658480654891614888440016094367803912336590304718725188663257672183272950793542513836734547223333493218408320655007056264336620468040756072109770524870672411423469550757328190849683144608679469839821704503932239793226851239636121719970052728927279322902921026324740735487943422663931425457436480407727768462083856826456154622979752407710819457154388913652111061086392385252478805933706814733280375942924465012537621865077522588408244088646605358500679793694669634669654499882703689718230714502900332164611401104989415882812300964161590430536263548406099235819364078184063106763303321334602275577426406688981866728696437034553649041554961953725396283759571769288781993213898093527927945654372660071420326746830491101107292554217750044873971654176711229527958111899964852365776031721441139446962901881369719997348968802181651436396369209160767553799391930524049497296703607059554891465467871249173405111400723825791550354117345939554613073957911434992909678319594842672636096721540716135718221417727329062989148318669027342793246522393834865579033934839010325807035595808567275024030364275655771955280044958159481060820838231303436510731178147723378925441081669043199928777710385154830392634895917877503633814483786742171335608789037572113420004031293243006074068032318587248262368431677079550216155163946070553680215186685236189889836139485754656543100986302368946235565638895574922389661897861979029372618821001620997842127006232529257126927519848748166964095238005016042600133422850670570918067345019937063739257691747491906912783113831848770024313751214702642392269121876143529797468146904092278545295520521146889188995457495918783586473525193616517721752611038905762059039497222023583789186590182719920300327248429669054490164095783656916925979902111499242821291328775038783229439022226217931861225771407911189709297318844995970199084152367817026543956699022740426401584196589766755758813706434879218398620886570794296796021443375259719375668821755785282736494968363414763613203430936224373477136591460448215940467214267301050699442054885520907394397531557247466086364801148986521690771639656208979849198302720566889308012155738491285920780197509065104514535533483571707067765157993809324209939512888588723168568666375980296856411991900044483214354069214131838155895261107705143530902848187869477501854287169672062191020758360626854813380956755860324771036405675302071494483173798585315474758682113108020839674049998244809340020205225183669820030585542625581527606915425119143924446089563679240208215954702131403211861401869869485049354540086288520493228566546351582331487706872900222325144043728005807663073639612714579162508080562189990874719779590341893166461417978172030164420399494411803284911610721669623536483854656319904029817796941481991478076878816035341338737727223155716932361690409550001423542675683488883658511246596825584005467163264408346612514439346039285461424441316664214712807921661997741336551617047292045642704380646333327256829264276704022304369848502957322150448501134213751817406586569134794505657718664103834096396412633282613297088327439888830328018376726991748125585821917494916777668025017808530647209819706959490778682628694599628134391755995513470336647366922412972093348930824287892041155167667478656048224663574151074560869467882686653529528473714476378580381994887942889235328069793334681998709970426719864117072445944344007867591884229879242801526083439539972437012203424186324126025640914615792113046727911851861641930278866422493773871320883120660458677292666562416267994535990031408672784861623834304778736415775553211180196896666928732570727365533326836806896515230753677200457673030329104721173252176984599368920250975713421902395657837737323062757302384384538984284083940712659631126593030534678610330675619176109673019019667907427895879690669569677771306565451076467038110624983914253964065122834243215458755583329442215653810917781983087230747265806258203672812530018500582404600108570822040570877752926996991797058943690048982858703187593213584764417608545468059841897027512080076795302540798454966612913941962910760817038571744444922282539901317502391441190570550589967713635694964236011371791809007021729566345104958516526594513434915139021435814510469030157916168084865829062977643390681473246100225393162932008427496162837057845296499971454433612922411766339097825332943687970693698158589577634440253492562837232902645203768123084305838963378423520977452561222035068439740673070281229983911324617004437803345241994246013373399242149044780648375916650828450558957082247638939851340418620724232622169871085171181373104667894581470258435825744046265220403292240677594651243733766319549266169218753144851039363588958186100972892680128798236837308463840973677350896006659573783092019563155521712496670169494461499955774207805495399759545532828616799668944736526076470539561783430415303026561804534693475232693571817064984228744120081412543831836065028826463135708967702678630068682051521068882099305153704370068083767907328503281502858468533279284053497068309695761204430719509328431011837662347303928460368906835812252211425836894418902943742816657827638082548553095473183067096796958639314641066985447270811851343433600182539083615919332316794609261828406235283121220957897661033575198615394241745648847036961658922677095738430684844885534788986302281793787276147611709957914985766708041786733486868302498831329763487794022384620055724325190988196462903480957652690643350647585740977874083920355504232578511431242459937353637011556305221642226498320127650130215828486637349383786632426194672226634450159342684395117654555973501178068932071566350854237516008251646057114399921255972982226831972938798083126667554823291209189464155156700685133561963353259657745689671950468141673041397205852201149277921591193102325341152445832880425119359294992434535620015080933358276427766885104726971251306248618429796607928710998497716622682484054318256007221532462083464724519141112419886517733720766906142478195142740092390047662056959336597458056729914761017068290202243220576895166567229208752792622521815443879415120465620962780191298548393713898933214299358613137132899980998253703823707507493669015028975409067550985340517756282014414424268224841063559300565836815659913778208782979363875840563536275022769298335598035933750719756292490015009795079988853937102438200548502163430323884579060175175729394394312695243279706644581106324101490146944455023354857911106086618632197697185995161776254027808628098216046542009238456124602026133252565472518763482330057693265360987685457972758089116813232617983212377621166265520170374418925354921981027474767923332976037676536872180317014416951249334035972882623846383308967029695429342264253720916263615097036133538560886800727911706951323124196401501020249109657344692171740674830161901082873098939068782624677465942744743966557617870495529573321350674238858558485099066105806831493854622863509510356217421092953772666714605813235994025516372466709886683865068226216911152176102063369886966019305814638161110969492983099439855444429451287184082828668356293097431447909585866466752260154698761959203915849589891102373939808420083025291467038023383561306596069117704468100927048874386447840716448752724829363057693597962881439662139579693295499053877318329253936970685946030579073117546986655675877692498851937985610446152118878642856891144415501142057252118034107516680545763162914493638148269136306681400029307055304056069171938488430648320691733396061632560926844458630093721082351665797570600374261684441967651364393973453804727863591125692942014474422366745136217556572619729929779372345886061294970786346643339623890732025388226830184988901640835477934066138399779047614937216326626783319861663217894787619549314318985409808349635389983581606816704859000114335474223345806666371499403284749402478381255675622114358172169711801991071150012469803229464868368761531658215881968377638263979782969028975667272994350491695770454143102777115002066780414051537199434147522801307560353431797540391499153227872106702020503289437344910854859645567031994504186583778574041199071704008100579456345201836633045814210784961270951355863898750707880266599331716229571141259064298946642646233704040784098793401379219916527607508944040015822469514260039652574797144561379210003121034975873600768611970096150832783674764514450628162625833294541516198644943388329867516850772963263259366984279493832615111144932647072350039829531672510816886031544438867187731381738379805745730506394888276245539918134606746343399211993746381347898743021428835560282245303283584037205010477422801819849126379692255319143962061704631351867509016352537343383131643899580989252546152474202260014882770553673673940500575707257651749307726984941811658562703811319445443735322202326089811644021650874960006962496199078122318556594550882894854961322304307725193826998541814795518989974567744999603539985163421561393134501117623941340232637527432901832618967592543459290042652172488622518847305245268718592564332108955255191316727916576114318451424689737263916872751473464707646538962639530416242482549432154099793362541242565337837388522659602866670406333127242556492903436347780045930512706569484051436813621107791851883455147166004996503166180826007826632382399128136539243491366677537885598879163455318293512697949544576885269056376394027571263059436776929726345348924057973118842031476778342314788913599966660283194680580031196297295155653215197378883278851958588816264874543928800765623134527952871095566647435478690304462998314209689828895084761439018819882478058436770814742471311588269808641741253185914954643839562961439643541636605928153239015704732880045388947173257511491615971894347410918966347409058785613538394434251058663601340118295609206810397113863099590852955186643458714282236542435999595998831666061203731149327413214432298407082185214154385813391965083335726791361544853093806286195248877047651495033574571626811698331115358833921129992437509929458428793107564136819055107658490194713347442406012093070078355838762579659618969631102787514049756109594094823097498455832913041883735927774092902822784712205298869312919742415190150429564303451709772592148642807138514359031667364968164414425473712386503818194191533470872521804171482689555509011911552805662694199037751552019272271816874288973980702325570963685355193750384465589625275512207219022932496316877529486346675140631818543585840951856994272468056816918732072788416493562033812141727268836165543572434104505139215609593394112311533808900941926925102504414860117109234755934922985237777094313667837818262842800357262393029872073084268365965218862412323685354785907559825762892831718905116099067360977054927664659803254868859897921104979685427651688935279261538720319157026830012985457429501629353479264123899475825099542857299042383501769414977844947085803522180708186757419676654707298155792718462225609044596662026865332840737425910581604140708839479374770184610500920543148730440144697805078693814905378394444485740267365625653942798299406076364643419191834037095925951801139587480338679872459459342355998170270637434889389388646941567038582509518838857921669629492088438928915052015469818231327901390838373623518610998604217295698237719895088624565458236608587194378357850361061054638517624241783859900717360091135737861098773573382790536124133117483880178846660812602797575565543923997746553246679343562874154964631780556887944951747963355453876047028292721304268189404078446333372007581049657865489921177368711432610413277043233561565167932231107852651407685470064184951577769242054669559088919295930145295092797719705592962296388081900996339277624054762266489235229669642698894186493996698527075478647233217093510787282346450142871882713892546046114851228463788678123062431294208412979818065977059873106781266949856937473095613701079117186913663191151326805572136092025353717792775947532244826464787571357722471520117570368958240451646906071217675583809442848267284267215415705015978352514983065723248002712136347073790941707195150813840173761053989301370862810513439143952180275773993984160859146791068282580191440172089802727478484085818796337071950842558751363861715125895694750690955004534941804471571859038697560968296144047524586850575784113725709216646536722219630427298307133972797249756306074464663405480267243796847819828469540904478884190460939245481301666593070777300343493237841342142730309436161779517752407791341953730166516713485172795192643679878810489039726108468105436153835563155467200873750162481884797039501701314073341263291523877350011250084537635725827440400662125713887818830282816895568159615995979028437496303342468436883856882850950181795255347766333906582945529446327847524228779329730917598396319787190375526463324403979023002980141694681291854006045855655594584115672704372219335162043348575462776519067582537549599796441337093451302066415431755140448835054509786682844007581760419262076032361605189208497742896779517990866271497687205900501392372867557847075624446460974018387454573792113906550217965444101644805694508393457005650318066105567684759927368993407234882848652121874748510849342276994042275905304388121943732264922834261003044834570227835396331643807722863156028026567561500649644589516245967540278162141445699130317544033872166200293140921866667686051126268597046187684013597436366898868864404946402080713566885267257689626170725847453361006332262639339700103654284703572197478212817741587394558799555539132341581095767504907782469276832461490978381245029841679828386508676189635201430878926068448640108367805355991342094425893137037184638152056345884802548764536467655385285501756521119386724767007731966836371316639970554848020451657947738574255022543943252283894165361811401211019921925510928272275104857654576336638265870526606655233024075944687236892041460348339339990852642935068781658394170867687261920451347275276514223259932085130010080201630076528599410540798254184627869235993349954663635179918785625084189318662915268497220085057881748797682408612619226620205586568375270740341840006277877222754708629678350252881843773124681085503496239311273513615752676521717076683108543901940844492490915192423562032686033230722604528137644354361977838776177874519689848056482770696643152180514318168158652844106878059801949645615851522918903420915569561759977237497274607147883105140189142724502340789350416514266294321913866043565672153772326302374434540684682444891731144906256184231542940785132299451066669314329050257832129572673156167290761848954853107010309012118328233472103500940309002046834611469187058729590299595687177059660081837079068526684431585741522886546552827145064577856504158630459697860235148683028504918636362503328346093069574674802700455929400020297347433547152020112616385128613958096087219411783515934520656756389445429153793043402710339992208527772584483173160080566717887219051920340606418838750089118120208264319166963198283583883366809921885621766040552738509029048732084112239813465055012877262924187076205756993652923292866446196916084252715800464356545526853345845990025001871310470353767195240300433626499020458470039537496194002816669466009653189001182816028540345257291332842746813735536436004155281531470079319500846635389440681767364950496342378526604238034818421466097805765533703022335081334396408760859060511603230862569580130748662348838099830729447595808109113059464315645867379440596599120780360498282502981969689336515550459787931870689307880183423456656473565931625626194039267462840610763786358118737831668280236279793537319458663857905227247624313011806499378686968279477473174085880288749849192379989287794883358122900726187957141162258643378573983230038164027470430353441883500664209643586726708841905444145054517734670801978366381743797884070730985000441981925605160705970501362613581641208957470787447456183440884035910430924229273330360764319553947591166972907613368801220781964247884351901587058344660020253157049058977085679671306745931300625607561302357985200315236203052891387437103363693632871159237121377007346805792772204366762167888039641629123482467296466850970409250620935352018550828123259589299844489106598867674814925103940822289610633857506195344584459046431984580057948060644906867274499718681583772527850831252326285389300956118279236917740469774184654690631696418581812970391429680982442157592867531066775520780996973847575162809368153259776055474572332204750699289809851625458569556552559684970199132671650779910595370304540137525682408003303456622320228889763303703367722888159917055991708693669488033974112471885806963973716145601999158605984465159848288054898044328683468470831523934895691660967224852754748172660064876904923503501132859419414241890145220837956223169853161078254782981034476974163516339572164472406316464963014676725355969228233803408250587990306092796450730724396924158215953235142931344237950704243054400633536073689239796798257347717761053832887883522894269324659240914127378983469343463735711490877052042420945151561812461067722772581741621510855746126990514232223577714758049001204849591493071283251781078704800762106078404738813096555891869799839406057437612228897868542742207583720265585838302094445507934205671695205277946697450481450983171797790546997184227202442187674408566383400021035148655402304397548225103433796608204734329476754435407976325995138963128618633793123407818760341963098858461626087900211319240506838191899594074001462703126140522472584790284906455183440651016101782871071758272282051587992457012368038209454983637254091015554422990696307390354436440311368964069919116422474328779536983571811858765161494966547053949435954389454740751361017894123345460731003965361241527548461002873117122685320548361472438063001119710803335606025253531391052946202665421085197074401080383740438932456048817145921309540777660871019605708989528451705356567776264816924396968660509648946731962187940210902864267415530795456601557798061279795791463050921022497242555527357989098761223730645976131816544897287772693856897200029080356435384676681516433648888927554045047681903219983684943233522707723548784547499705784193701883925016556621581985963420884168334060018141463164129343679447704399685646771798914723410157972799009189698913083138008400372668777991067249208819030217447873759768099188472083463852954477072196818485922769754818549455766163310847317565198157226812869884558322406171423304946416176421698737839439689403319916892990669071598628101898109516148893904511189634772730232177981711045743368495586282486312384472785172885728015111497031168425158810821188314788019757921830025988243916059312349570565250745143182895514833629552817531674151374253789546997962974159322040855968320006645452671412141400475600668135674234083524408770540595526762676255131538632278010088660475529450498278033990410348426258442983999857982107257412478717644626533493563962234678994381210483758935154443189431969898257589024035201736353311196840756130092624411983325959080900250452581519182174693824020584950376467595005297952476354431693923296821830395677720720964881169428862017714338669845096901511362635421104040111246480305574163839444428486907608974885155109657368629470459245208715350560299635760649392379655374692050256117422122163212019077953220021472398263079817628087169697609666818695804454874698038138712570129436601435391832690444623552864297438483718817639711493067592432014630678069897400513650079132266689277232764645800017595175966166902762572340342966998801004393915749421402270067332423240058074302775312116795194547371679021005251315117105137945768340042725406881234633393519117152972715121401544183930054906714505714247182177060700849891857544862265312405361642914616087247391483286866882978667473530695118877745203145785246635799835458875851225932415961086522338742659378320997593432527008074043981805635028182647290297021183885502497813108954744746435087089012141001643508225908371577557195694886905355496733601423522513351091108769131915365976168320707581316892595003265690953352273069919810380451590273719371403820600275798316017133769605970602135545786243661474324593256425232648109978541878911524600880222131455547914179282399477319748273238270682280513361015129337132128224165768100691296051948975987085464579013766359662418981813764644800544510950755290243051004889575988481969791738746869944093524852028977804912772776628468163325156749900529581049422309731865247954231071465354797637055490745445937695061087420480629865943535050059616901222195002746212085191467570539890117116933577806961226160440311088438986000571822337464585469110147894906086294818684633364217209436609418764400745080911543618587553667729308184069608339213886875698441957998995978154481128313717788504525736226451427731582055356811373749033089692765900787742119883306028201967323292902287958528008246640808851478537289358652319587832042949780885091488130235595807009574497443842937265891124131062906082135291594305176143616655321472262103334944841981216926178422986414953836267833899420889535483456096652946478233615918302919230948267069469173519747412331760719988137101694584922369438746614530914194957670276935801305231417385894570588511832671935283487396563094054231601720198074348721429497103986236921570710174277311095845851891723205849114627716080650203656794093060510046335527942238593264129040008374957011514100744492409277458173894072797379348145927350513539953002245453087161157766329316136918040905644137434087787545133786588610216259070179300983942126024004222206134954106690917262084285162716025667820858260197462912098878949717022137554636874997392345155550498421152992211275791974944276701138476301768957291656490410201248884907810592769178822990458609285813082326814254203192960788201866954502618253542014047930846486842229687671816770463308390163114927533592833447615096406705992145300775720842615847207495877751363192287060934679211136431707112708145307466423494118884613370970532984222612115783681906446363376114558182399443879182407488843772213752585851503157874178397368032280128410166826015979553661366782789428044936994506362969687672060991990731484954204677187550602712455605342115589387528437404300719366111291608454655289075390040121291902364372633877343974589913759203716571445029617072178479737633016258500400407778862885110919386297978178495092115125267571789266353945220343981621547154052544111818827726014351119466011538269126858712519741780744722027055420946195713699373184130552266458883276577656595608705478251420892049549149346995204012160280976399596673051627745140599189230923476738051281045402723428284930044522673365824571916207168858400849516186487197335778918883920587644444980710477761676791149245484788457016736961328517318883802433689540596805012076617119397924753245436645153675323998694378138842723597386893502379204312525630735905587930519083748849727712193836170086949191340529179084817183727673943309800233287905295563471042246335423985980628510706358740061975926801102323849616645802803486221937249836883089330218619889428256468253698286211180476905916397946161927012010802173382610626327925038987798636795665955348893960054714174056289602991129351941917087082955685121390210250382555273660327146688567520266867172354858130128093856563851629463109811714279644242273422590933341711672016969904241708782733071498341671647217802690331882021470108397212595132118709217230339285457903674415371726066662580662490519066260480658019757618198525322456107690046598560094997076696375736470187824761147561271278731919219624914154010636854307891293616989601199263000639271184988164728364968154993197466256492660959689089837654702384917065514048575144793638554901857326772156984124404742811132520690809403099228451320687877966690303712303987755788706985891890938396416586331329979692038997194814559278820105690837060807025130293791743946723456088475766685060578669254673071278585119161032853504014135657792614212094208129144906107226462234693798034822078717458475834925372625149945854190154379630458482725161771065349232983071562305106028678427628651003774512764043056650848290952667599598137126864336840286082183302106635229857127290246677938166433631076034997732109048125356784843963639252353493863444715216703227945961958935734060498762015062785487381623799145765529245820795929735074484870989771534776330617452687969978040708055535363847241743823633665829817866870483533905277476852555805238037447317965620183658053891567723914329293985582724427616526466347145614794019774954609670952596794736525257141655308336349609632737227882532747741755712010762736975702151097125096080007971600649137148048642163191824570479670758120215174549284834499989784606785876865265031825800265857760513772207615474246878215993099016504435641922239520200594715143467593026467831757498343372131178215858074979859992855938783699784697537572114704189934488521569829719815432466396739857284720344978531175177383149261491222212381363197004560294128363242445267708048963498330186769233414214218908074914425870504128045921200861074848906689633812975900105606108823585216381946774290311614162256664632511838974370428885861676439962311151203148138072154899238564518395224315233647882375391192906679397567294778618854286292081659223979654404759540532047551617383544684109031610693901422785348891346884087707277090010297308734873357874356283887549686032399046657610342579262408810133599426706234713716843656407114486198898684639405638281170389906608362946881834091067628816141549586519394453052637753317289243174048648909440043872222918379561235074478524723841933367211247169116663994644495851885190981991831842299682487580104177783965432616518415423778555463476579794954295511127208676834210399970449727262631255721701343544324803284287223087809321189476110695248331459019664991474177670311093781620077518998232401911131205442491286442802835879282851005693765836987840326244149442422006212142640816490423713643100117737261740177474287718086464828262508683929893316088498990689541517320214646832330067263739843764409382592937691951176808023944948780802031939923262296216560892801808166957438671890706870643890452467088222258635459468361706295817566057327706960759157480789401285755685191425754776449842167640303001779082031391800881308767980149075230849877867234148199844217368912326510136389755712007194794880963376443266297991163637987620416351033855038264525390139375473533698895497704141150052622625211979544674633933158415377307520255690179196573923088371221963646501468656027374066474528028388795141261401010334045722325166500168069387661076638966310558621449152775990557712709539526668696601271156494881569082198856836107749740976629131283895992477783999703041641483544948954256097504160614046643229958246099560656588748685877223264225840628481651753932845006688624754227563844826555778040934391863633543469661172456495212919703048621689694353989761116346381660545261598853746653373249127601800588977533851859642688613859094431668154613024317399707958091073146973628053967365047397215240536323694585069926236625879027657941422088379398859079563560218278785004520125508603508752624934360325455210895190897749730518810324912156643209432039050987824475095451971626903044855270504951361055533710735768413391473635755573099086423506146622088120477239608189213656268400517397662439860287710925471862856119559264189716794228989561391856926146101837955093132881605752711897133035968060901865742862325271853128053525058416531054429815380198086312642066170172688786187986330962542079685209722510875480642019602005592136706710172358478195263441128469153010664063445860645995848295414619657149950341468423371247237223870640157885934230316267692284575801993600846637978877380235570381121372676667613047672315376102348241740609142679297087481769161708786848654860797276372614445779423934894556423664124701847113090886845352803882377685124145264147128680913234254067529408560079195125164695031945788319032811850744214972254096596886781595988808471942197549913790271205257935443311083214232303246055813267637315038259195040413745771502776537940434946846343647561053396079704375677188761258006076830850432106826209968375173808508159690789729887495667479589228076035340272680734158518230442004584689829187647790754046298558825696678929412479198233078646352060822296956062575427591049226843667326581150787051832508683580709987007249009298768629691439035385329927978749328956372759906552094325311885854773639463172099744131561092209735744116572963634713612251229379485266626947471612323011667749757933433507266818446281177173381196135660875784905867344990633497456898425245290941500376361686530408313426888823367498044033557596828139557274817210936049106994890269265204826369570675279105804831854471724180550203884952871302194855137499464697501293509855981215031699140911445221209311455064731774546707692592273728747995823749175820455115556295491152057395330218758546303975141712094591262396441858882098870593313043235796657245057496391212911483284002433008307754265889834298566631160367595848064734402078507620224038386636981802925695344639691752470044895954409291375953226841874841923323980428919745765953077704603958011926626623626728848135500075496301708826149905181465179392368756806281082713786018251997640096384113582710514245232949537566716787405032419706742166503120408678172810710652119385935138294022091272343744454328680751110793253724440487103666302312208934388216268431710501711641302719909489200666158850042379976282937838120974368330829150281227511338301729569784312739285251368343350650834389192499685746221680634570919443668716989232426186986486646585257402134352059465519234836148594729895855253496543655946187161555903087277044078291151152609915733322694155713371544488157558544973642145018543495295529307410750882293092026129902016238545167373266184892604884116087909915188968394373420556091453290913123574130919324494897726505465560653335954234049587804477060585720072928426533694975907122082791450533983481616228511113613620317079555884223233077590341100303473256673077936228955579750558327385400179849690726004547927072441545965074090193222670494737870623693105949181257339636326843123703090614400481636977043264420806567905633349920651191656431798216762246641031159645683912914470397154008735698582508675053503841538449686638240390096822143943054802446892353623503439220452926210637874885131540948847817667507169280208329750055555454185077088894031374164959705442802231336718206879598287001445535465252771626904881403397585760391019106401066923977701716367104864529196664195749050064128646559513286031076732448219102134363391872587988119240221832502541079327644394588480317430486720549667548685228001266244694562499018045764982499664646084979162675058891611201388575864039403009601967164380677477678910401763788005040408943978338720380488079951171309953893706534069071347379102652946118686079144247403428208463924928971908894479047063019304520404718294098013302267199426069699135674253918779310678210904580924765829350117863319164883186031293776233630304601629582517706617327956512297633936808671446582934139391434817017159361926148737557437954543822481979824599372139213045005543995411860524669056450583983452503261000217958717586216329466376597565169089851942090471090204352929483305618988902031228385527875134343558202662270701905980382359752359724013151928168955935563253903436595432065612757474577399595391552950281900286120437275992752985222532159139940186556889739891886060810361937766267024453541661771490175323302967562934864476666766203923696399355728217391299751655786230261855931250042227775064501597958689321180583487306059887613021073770892565106223999161412248048151647763675341903091746801629139232079749383713824408255357691039196066366728386217170163070895869109818407904405018908688591414357923855778467547363948273464906222846442072609135842610195269778756490935950046266901337592968459236598232726043448420430354184944611056385086234749941793391711142718072340130101020072076860996186439011157491867027151500885196883417000159085297072131963839492772378648215601666533355494130852272209823656582447945841898837680508496941952588562159674137732051578691726093735687413260073850877347066673676650318410895138773254619687224016183889497609372403129996666515782623548834429121152899556567239109401958780531805716595295266193192615470725916131547005217863218490495736658463812622574335924402978027396443370584069975635370116719288947771328806603431777917923807429708601364224856683665548019967237358180095379919144129197457454114831682174597347195293071073187329928341319653181424481465394689566082147119721747301547815224516311274327590581803327088872253164016530321777979633589905523164090734634413169651194073984518395773440403103403920574204328044602821164119050974076428746754867247379355156096983574323921542197397464709178524314258420402444532600812478065333769167914685875611543643674157288394621244462418078245793790665211845555452522711526842542091161255986810641701571942310746005064490670300246223998854439481280801336137888244207214509790062067105500718340095098704451109161333457261751031107661783284058631729360280541146604881394527391274511831599304376189038923449626920676441439757594523568667275761757510331559008165628542520088519204417205262810160235550387885768530346637314119818732906960881012483626537125179234420194562677701382429275208954402833613538095977329952365922678547363546363667620247275164553957785080969937846175887325555741015888156678783468531673942125400810304122118693019386227553880085600199414895636748233994754315593531426149015058718636509026654450659921431660204591976437997168939746263049605224930974679383802040693312217520910593753872734074326955775045184128522410710124194190841201580999411349337557776389702234070738597959981330863819125988974253830003017018590964178736609210094664408301359023493694832656967864751476924562849283600227473202760528714888420930646668105910559646281943476133856986909851082839682950803393877319564658768673100228478961140391712056445010613934909520979711203974935942509802227167854111253280445066453407752235737386868117922516769182630850342349781031974756394243433137710648922857032319775591904285755346025675999751017059872696573774165762032057598892113074701320380891409510860340854240112235298145097060310398551627994353458457525540715780145252258407853383075829452208277768866113212426424919652918518709549535469596095275500864576387962600490696863672229001493065016124846450845450875771836265803737450221851436582707152368645134416090045228667710454543829587195310498550726390719646692120970488658039411816932273484249433388892318032399012198595907823194719432942916732351357840404163718262755500195393478524434961487081247001016988764130148622147632876528943403041339115179954737343763917156344175898453088431716192328823472980859375007063702435665615385716044863923275806082359586074396818399567978973883585449113685661116967763316428105724328325510457194922931201445747470028998973524075889318394281783549391987197699391389777347191231783047018391978905345343222892190776409209382393282685655745685686633529412601115302552486670515175208551253558968910520797835185588071448447673566502699189977854236170023645856878407137325791225628987874962524662142890495474212046741290263581702560790506183525094394827159881628594128285167296255144979121068191115322966749981777262937707485352084387040769168481959259418296112824640924108217682992574928745014540581923912118067992637949238154225982843903838548821897060957912858031365627644786762055838259836627438259107063880323536702961918705356217335017847112522396555438732274090993017409001787098021143455837028301231418356826751151831025006574491674018194229953913582399036606259653383587962239257512051413779620914509362329171477919326218834660163598305469711888932861360665097571591835050803453817219352179410603656846328583104202023281485099885779692924006257135720808557677384202470533346281602432720232006486869196191747919202206616437251827462482268878310195256637033863015606810686311732617406815933625925544740271916164844328644594334115732819365892809769848921972845735260727678049456104307653516537516966636253330767548916221816098469643595878384340714689242383029345140026961124258329681594080236970395332014741337638665637962355380113338802555369581493534614429790194940335529876760519092274078132855505548387682397107348731181142012792316718462252718359592021791122902289885747028639485686236049849411225876451564216644659681549513344761065291016755580549753275038504641804016904132857774427845639266212732030175096702385234153043212246474818802104662447653322075691524360432328494380205662139449962157484418091885424768737320070606640150331716311657304738502636148036497358907872954379290230569701559725586032483694443817673172822002021215922404201844839669704389245318888388447601875173012664109103678372040792928184838399622651281561604829061010508192301110364931873836296530122907570256630491944651936672725866903612672517316380217275739411303085592156099894472589384258899208989539025358389215787330237041986419431120031274209085913381406487691337101052475690182751634760213613044088077219855351717257882715109225253361461055175807081816582031191212076582989433971887302691825097043683771352783258037610173943245037160345950520674476390157231847492082305241043083509488875504760669795895605685732554508206949930326245198556423507595261514898439008959773760666321809456439770557940634907001724511659777103376729750483330490464822821391652929225970164830227893891183704577167942788018810642490970312363003375042532967292850104730501955019607619233217445182134688517566764676699344104426870358083514482985995024964562747441708662327896945153112622760782657996747216358730687407489467521339416388051250850191531443728650773630535411153676136927585347035203001630479088162638756084741827329779384354020073371870779643645270293450395760807991161544523587160487751464472365494878348573228506467665277713398873177896882157865963682062217142607093586461183348149591601818317144874690989869794687711245147164132482982738753024436391010606978601267589795094626459859200914664700512905073227435908161887820827460500241476031756508700101406860477929402722084569888748309597730150935450892741250372759880211804182581946346460346770765293296379659426280895476875140651000885788891560935857045821646315438173732972159980365794621221941681463984135056081432207279737411047988109879838242620982828762770370559816755544299909364724842897502625382215574303480583421932199546565305583581310546428952268873888542473885259105330706624020323176424624617357892431079895020521880587607108821423426523432484387991207562360887111297600506576460468047673184265595856248623845648411899241954556624868822081142941033652889752350273147438380958848601238952651220144436421726861501880257185818617402052928335159938674893907535186526361747166117674541513468178394698541248106685570853312178140405501623428065981283730743067397688881756222020884319488881311981318746119233027741990963912772137826375582740394340772131165456590109913656574444965317052927890923730829977997313160811149741477015252252517475432765414282119168171653236193049743846062259129991728590924011410460838728208170554722352842837600327091769004443954038025359310095807700275385231843183195165853948832162675911868022306556491991971163413716879339759214440415874908359391525240638290236943355008426061901412192479109910841931918672000004743746287988340671713796861756505196202676219382377755439398040843560836234006448967379550315631097640935693615453890870791778373677437486608335065110919693166880543738754559695988852735561188723743843323484895010556607010670363299766463575155286711234035214585305127899184813921859606812228203796154026255074018871170231998227791063117145842588854487853080926786434705904980893352661234532489546294388910893713907606247221359452789420037649594965190414059316189860598759305400162783898722969250710016098634138157508688193563647663874409625165261932419684135413487412498404467690911394697818786110416441406147189146672776186988510986485165158647358752967509134707022364291699141635640398440014862978384235600102651700452181402943610819647148698974735354588952636545740874734738699370926718394334119367386659427677793550083277701144734688652800558009541976897539218425494675839801937884290711357283181554331480811301492797438068359333365928969247271803702289130174823140968538448754023510286132308134555121457495683853649867315085078914304771611367211334397568605262758151212243272754342533974992964724081423864605488317927569934951656397644616166480029654515595885878327601893227610915860409681170541828960222624268353944897192044080660261515881340110553576927652271679199788036339521997130325138966089902690795754005761006856003004909557846537350167579568113260201522440705385202780772330310107393066263754655144161184331905238073615746323044868797800870815863563215561160247452928649379376323494872663058792298431602213054892888875771261811365355243215236670748727056863581170218496967340756269472605696865339291999818407764403410128079366759201080036960981206969550862081801384563796956957953479535636218341382000454361023419557627983458980882560672693427326387476827829715268812301930393146834162214343949611516250100552896335667401485709122994885495277966492853014786077355518670450379136794249334609851587565098073093011183715360962082519104020430292223921253449685358861605169696968085615204691385655351488774137207085785328342488792665799029201129830454504285747947278842914736283288565632431385988091418111902709168006360912663349161057463817383671292424496143727356199794035875641445447306145513526264369242706924595508445954369893385906461079331881374012488079928626580651753789568067481880393541515490861596109097129439357044437460034696817061968957785322332044149002469518639579325329003281023871185889012684900705264572328956100613380642196649949097401828678006246678104796355644624618184189410895197553987549029963119381695862526751279650456968998944512844520179920088937543301119173652407913563987719067013065670664265669156098662551191215337049312019527259783981719332532796785974438373034161616673228294206248302298144547815845915958726303779725907701597459998633532333459539980389077292484969950492597418677454624452275469435656095384113088656026538423205403415276145149082169135678103888774722258982996332193418518633420562114289326403546945457671225077263286539181727844177524103325137722793951665727054011062536565142525428686042075701306398936757824184625344092625111390863939283310328231535205029209268053247701842278223178248632111315954569535246345384534783699497457156473199872713326714748616635667348722286086598043003407206853380734736486443400678845159813025625852837680604781128366863524600137134291529097650596793250685894589929102534269327349847706359062686725688706636447336251506773943392892813328266918416209571019834646964625406953012073476751718741851376029980697616242172473895097288375253339345112849635511395810290231557189700990035619598462096922982413646310993165470467793845933757876236147005905080907597194946120765909798551650353792244775505608151587285567942371650607783406508659945515537881081820067901951026224541229616472256876258600026324759443825743721867686169333070593132913263883488867737842063941984640002772831819909340863382014919341082443928776274303347523292774103304660596090995429291519431816102902471825581376442290572857424794495757120664068220593706145966373459846610912808584082359130410903818564301939973245677267089840785582993732614443851437178755606201340722216234892872368706431773269700243902866882738253943837797304569018973977692820545361883760480409882784100076012872978598526882961205588051873959658390888555899007011481783432299342319572664620061437895617499645925441777086240249733976826291454848505073257750238641752047991823590646282846447177483880240888039087859925615837706231193862463479669204813970413326823658079964152525880368441586376003789296952657334240190752161801909186074816486089512151606238746941229730013160381797847360530288826820164964598591171398921781887959551532626655847686077117270212775826387508017369299627171183706955279166866496979573299018796923862800276485237892538672700260642805691389551311502163358448535831036304883779082881719482389287438594902652536154316826488706127085777121068785862256350805270099695977127782345977536117074333062432330388532179758119139327646110523392153062441515273624877414700958292990505081969517265354611530109428849724828533464746956614853448567501684549349779296514552307093505834478803033190792497021369885361634672495070287710989575184649105400708296977019599975618759728507334625301466904163774915176286318623970500425346034951763274184593993801910172258479216935920758553816384112321897654119695201456252590342628306775166644149775678036039795588957979422164685557121744605870944797804173296007192144419085207180423057076821833138899368735452121283099259595600239469516092629508351588399507428587572862140350170404124167784443986864544858933273120780505952038774487448547299339056137924568257837020772770515378972434371696187010763312872048240559097836177009177202508139164610659767644124682959640901946166024983890762412047806565838904329799932434692556734332699994785703268068653003984109508197680683608657790898981762496837000496048450222388186824526233778563730111018001859612461231395502518636340390764391044197145957337570348199857693753365154483377648185285485442648044080642254544242741650060794344927505212019700294236688016723627377946722078393630611545893648498808067688160978493382627553843748694058668415256171583689590845647391263915942072297267986970559900071932901927896610220893537847805134874424207509403643422917838433427886049856359754867635761983712415788328696241727601825351695641469308286515158171078048714189785567540709024948580179289871703156212610529474275562893685068018593338763543676350149708349494110574926979700778866149261625804098885695995574644293132884051164586768220839812678642926166547647077182843251639996898467512961698736106037239842322251852601793724423173430569705919204516829989852480464046500951443586535461718428560308804515076709818798888661995485041625594484113587926761853006771070601761306645283900127526337034432077788221606961824174351527763191443032708070515664315986958168776550269151117438580625788520954913016305437868563241618907018379092590096261202902300204176833734983438674228876431831383973423949136702757627863113472744664759057985630443527400196600149053965923785527775573586627074000426470045850043994196385460051490875172219322136838774435205413304118202038055290598878794697616584921823219143106886566048159931723978532347220670031366730914935923080906708414449396927254875825579202511723779743226656253796766408114328285148932312637771975154067791193709520964590776364007593819438583793946771193448384778876961216510109093526280781265994613462118153781725765632427996884896718046579978617971167587654402830999223511889824521574470048004500669372186787095938617536972482627831800471653086868393803468204686721833029373856419017889812397407629194045679936448630147555513763142273297827287866563836935656029853611297309590712505284246168250256352170479305367322727499182547705185177185309742425034248706867662453402240295144571125961560202298842464002766863512799498083964982321763450226239782855365416681493198509958962569595497083943504552937534687408165987655041028576584297066859770629211914351194291032476249851964246895209513604567398133195565048820606538210369570879420593550631568225067659081949805840102838088296407484699160667453527481861716038043288283119191887816138409718428069038185665635205841295079885105899047906588166310874735034066427495670409725782031154161898813683568568178230682247654318310673051296852475570447275361193512732757949079895255111593748326812135328751304435281823573913432468460515188071116420346321926899089984889905968641776614614518296341359326585847526320869257162030446171063251004322176538535303589202739012451561438109919976140535425619066593807572103153454567505528882908457554460707449123400504406278777982623353711684711913436668962081469908757590709135377038584983815946858266743174498551193612556664628914619075240096680203209264161910482513905339811807653315299190550200355566720009425950624353498312180968656066867300214056894526182766019450559876231988406494826169613034330407188786095949412811575003597768375599657336845860112209378004736051043350582102496127002886727913773504801213702739868710694113577796721830085571288409589833111422969648580871702900400008812222042111163760838383823409774933073673336004643826078640623494322146877689375782237408088297797953880760676963586026502789116303527654627026713860423129166725264746289419272844078254569228234154297925310472816778627864746593706971763477576159443517276717590693729252870765451171385689424960704984448370749656169960604914932801427143262469442485787488557941843776148813171372429102115884567747418213353495722844092567662665468168986478366167451079900402004691115171428829346236418759109450892130732014891311400822105687581065732119210168186423859572683988113110324987479934651098380930880381416513255780737642884031110434141061485013373582693762434721109842504076511017131845744223172808512996918117798567092401740247259386987145099070531183616270714135434032380563955162444217892852824020247934728837469830890245164812775914446203198240015202883296530174839672316295966390833286567618174413897110912937251898805206085751992315561840985646106049125511495869686562905272676914383947621681932171688270765178019991018013178659321032055180625752258877950572717623453289259864178848392556997874778462260339444583094530170278004156620809170002757671505215152999476480239730527782667569471142409331981323293942131408995422730675220974169256715670699851119856295116719794527014884713915423231942206927849537860358423331550686063551630090967330785762351629390313477290963893648641474506743513778900108354026669584422492831548294065680418039624073525255486431392859458670599002604752514825026390377587226598125914971156670858268323466505101935553418261679846334960705009471083848325349912892953298886295143422128333247653728548636329886595191685201292847921801575178254172129914659397608350519586494162259056643354717790797841201890468041819354321954875298039759150229879555102802430286349606325581007125661309612340455237868253871350276613880754462375101641993593717116298941172653895339862532781048895708599765688944667664390820616050545833488913380419216932564933506396044322515789795783182954863288431827110479534673960560149666343977127280579664049806845871933191741710794778545385942584707245014394058137310117870322479531425965941422430555709621713155451764952172575120527484690800281258722962450611116809093505021591050202890327515642651720119752837672632399861426010538388797001568861132146696491731115214203747192743330048324207156406305545802644099157514610132604738378318798000905046838355415170308426529164397734178170306296218580953745889906515554275805591800463154531616086743578589747907524342692556010976831848737205522976242483593913008075301405728460239001128179080377142537613693339176225806820862881816574381815238096209880879663006326005965060469870923695396733608719503447338651606087408328387329384170064234042246622592724948634676595069596806810541936408879435145549057628484891996367330313432943799008402507321883204170332904606588329591898157919163512090891174314752154083896124610769172828536747197864509797382290584653662398362784297157003282721394851915081207331631297786624894526424437956548107972800222650498320324600904603285972860549990611314799678119888935801204992373299174200687946442978190261587676768710494944790624364928106071728522201978732451045082349888049139796884136647716903799932429721938102567642958339537489148573730169230830602823489788680130764084541217574969929231529121727994560294156857754918085237621586814324471490785211300394601967087937983246925802317250313083793291477170205326713971225366095962412925545007264612344947644766993866194832613975095854355618459038306785283353262639153373606982211022793133138840538727013341000718645792536145542687972223263998231821191237742349334956593251086481423798724723155754289999857512644471889490466887346959795372070538924343728499226634301447039758315268801837309480990322815192305130352388732713563591517328747172515183729204791993536869854899795370542533676477369631898437070462250472551873274694931027206930821039399456294952371306158666184690946206779411253749058985342876854172172392370413768467466989644876696513297542962272970922836460723832147062648939472243665739239589438175417066723193023251477153391344767049285321338895255867417373411829353247711870714233873180423418340880060158060670826458092105028696107812360474585317615186872817482723496950798740998617192393222077775060268879009105809494420124027515547534414442652034622404029029908900500364498150001689267084144427620449926581769449567306637926541707762868815563305157120619021961982364195626665702200664689163799365582751210369259060213892454663705150947688275188239672879360250948136772949036309301783044724961042640311150450729491090181570913800862392061710407438402561162083397289447914556475304253548899429317070230999799793976175643800746085132434236308452898989851608329850664218304056255977358478700242063678959166738123995244986861236692109186491779809610931507679379241333231254647785720590357793118814438867109232451803332439748743063310436540476532897152475495435156239065859047391869020906819377978202862719475823345173428927051926289497881996872200650348714798115116837249388217856056699324363203464903404366187644189395006992818134630426538728547482561953286824026599923297105485426023214332878649288098894757448090513387370737731384903523545356706003439304267111787398684249926787564967570126336129834175985287830315449536801621411580358088809398771913974473844693664967162393226365959082905945342502311312539875425230487061168522811482414953335494034058537154262308242504699767629922480686476220591173921729223341789001028542089019160257972486073527703930548462479147738060573800129401048933587147537247301813627810314894648556866666554337051780582470926957075560281829069612297341178955044303003920889419771280732205266251809187135236558384223596565526098285817401370609281483376854019138389071179090204555751620233751920801930237726682959185402052251899874769873860727629559030944432223375427492363002914061574243108147009721518747618175382522779823744202389929855083013227520907383188160307527548009126094124113509748367031554737293787198072386946237812911017824925374678376990433977888615933161113988153266954910768194245423756424677614447740059198420449342622583951459248509926363853860301480940202145293224657941896060490823625155611334289808893405726565883815250363833392527255146721858999012958531732354107275453763858539175770935190929315846262592125335000379482992923764456968412051768028807245864814695470418671087065873370988317611799653840812806942470507836302717804875746906666273462820825701785089833222304692006309245379961422214223947452329822476334385857007751441732498470121374020091026683241947417489457557870725078288191905967903576878648463838493674937412066141845396433731515197796651384726089622536966184178162845773902435326742862181472083272309917820642775442015786377939046970161345600178951426508031012427979253926696170208760844212948787005067227408231423531338616505464285866328843729179087316106698657036564676120705780880492027506280079950846830706686031675207469844289506629412010262210675820325174804246428906537737199631254140914849390643177776154804144740463072958135521393557480900800758925845992662132530868645808654537171917706354109639395207898059098012233165967967332231119730957213650612086902518096719181388040373435057619103899738260785846746674592720174447518450488014366754327825409874663757660105761980753770382392830330878973179422261836545911356863212921406839727932128701281635166060319449215133331494446578055157924610948689238078679520007035517927314855097678108534679360683925018715620182855832975155362231679957754402956660680773674103907808381625328613283604531789374349774577453055321001952939668287905236663012380960901724695874962470164511971846022370845439444855227325281205558045149084325613484186701391181003359287783977849525985418762256867425729093562987173624309514113393838491840582897344462035061452376646808918140686632112448843532732754679106555223460641053678321700948002955300210889472098223285870608830888325061127455878489445635196199567268530867978891358089193419744744976858097925942255574557064697969829194547192650198722374016909637028145288846309800940812083510795601693776981371733978020048582108453232927934431307932664512848718378807398358089925521358283122538208037296292123254021385667644169765922715735789312620798121966422408651334771060541831882124964885864566359414772175849713547438589633107438513293353841401576273619926616995781948355232286887626871504587890682961456386594294158257193760986491377648739274920798220114928467322306693783966595400594133566269055202296991827787795859871718614892429131670970555351948844840185574005721333898509568688355212949188500712313886512356649101856342442702879262388707433388367113616313257833366448877648141562426164462185092842221672912385812946899740552825666924742283372294529276356492568711755041022717954034622456486937469828378630072407350589850130559241564371206044055126370194616057951543810403935049557402712545384772673852333366798686382410668033201882915526791160711787758890059815132812814818387116225818268500413322350391976276596511321873121225663305238019592972281644707320748675629892054911775963812290092484030564175557755776476726846444802823104814831394024566529436338598309417332240777990187042428378482667188525499947769398194787166585524734724239886074117153719427474117436423854178467016268327110571299220110712009941022983153366172268168840090395894365840631179450756857970092057921782930517714447716557808850088382016170674346725778312972021607482983118605741062636917786401688362725618883125741544064961310086173012471488246135230181068597009329461339041368631688224413881665544876517830052447382388016444499521976531042299864144915669257918790638153241527119435104240614811127449023206836321913932088784107758076953400445207667077209397431194004648271274206817328085412957417349706474504679253928799238157528240613988511310791613265976987238538479098070862326831521201430672522508081333085439790221260920804442852639889617665278348899785739019904684095555399666056336697223636980242119580666653261069280799232726398708589978038765105739823794780540621687908279791580008420570988241638758962083931639955452010534233036093145622024664092533633739094209481475767973540490261150710308561753533237151607352862116179643717394394311184283732082293291751716290592385171206878390757630339666019197332215002393126451864938768568958205209612125685943477041951618251893155104408068308356127510589415388847274988046032100449665088813646535609802164991872424068434257928973902851332088378922618723037796806662755448995119635060640776649293973793052277419659012743846106463386204310913674846082151036799478978251618095516837793263241455633560547870556987649537188457320366065110893132972194147265185768866501887436150790617763584246023957354674659271273783210033653903928973859077322830407327250752322217613453672138167482371246845259161280907878064543280537558288717798382909300542889505063218510412418204780857978688322908729701754595774178178654596564748061850113601350787894096420134126660049101662523548536864682931084062639668127848055272504358311788862623240263114329443671098284280751126746210606993691605580318560722273091798412468892676542359817885491174752575848607306547683500571609744422609069422702878709011265637374146208111264554998660636434383014363935881617650550927581639401619481490804638374248482669417766475490962682253779004582065174662870358984410880555165901481380153697472408125847884185590081094285935901944600684183479239184306342862338408422914899283320204039305426222225004329324503848380839549545545487608973795888514970784054250868687890764504674574014299694717402534600486724897451586341419109795078890718513394639543105107925214960991835004884608323208538315337078428253076150774385233354549191378606701922099561260164463510178290665058055998720635833523644942105666454402065468566445225957063065878123372689972797519184932512706998954869424022111876579510703696217529332756848252289064474752284305133504675745474718777246850602232093268092124067662794435482410465503388766062762643080770768210455537928648267137725298780388691171332555155297332631392666508621448217984652566268815873931347206589606969930669117228430097553626553687879315465643487311307980244793061864939208025742147226783219197679189851003058841418560107331030385917635281073550109715242871747868612644265052503407725054976402858764035029698667551767322724006415106643076650072353690149891487059247618589475006257562863524670994126333122773065130059664542821578912089459371601323492972888895165448117205181150777718405029001726062581358734344708844276968879121047527522718087811416008522214767337134185293644524302234492246393970769229839141958225650039407123307722089795837744245385843253986337175676273591038969479051152165523763082327131848963463386254668291067499456651279630166528563118114995394690746261495508375298523794546300335491838249822215739170522188064108249763333833897527982278120485389143900298511748955088205130129737915235998213149678100726362877803100004716644297477542724668275928305995187688610059826777044261278720055068645595005213562408663500215937757374034643214053513738691277310585091166888740285377385226947471549966812379447160920837464551843795824627244675361187588191907952588277513913819950727775923969912795373299120943848046687168531839746555580939519244455098668472140253887739943601585351044140595503822940104794643794570742885642335676372117566321457425147657350252235863302083607572027233571843611430545827939584253394138039533087080267434293216962361538704202741624885349824773765625433712850960178652294366619418590706483373606073433504317308764300719475363334325343626388687476200187144525565286417968253402334461865667067313975594783501695968278367271973779634411244690396415512351090044602138420557911628816536876107190186695532595581290944442207777597164715818596021470421067453271400832049919427357815307593014474177759707460620547875623440499978734412081492104326149081232827139348166991544029195218646037178452569128408856322897837059931891877123919419450941093325659556109083430933425942525023212322664694360156360745203367101328656778568807265728910011130278441135127347059859367890234150527577703250654125271790761268740067250795851578473048872785323211132294900635042648523898913393671220883215036922607104629229055991305118766963811644276277334458747851890165260939451043913818091245234677953049060362410714410941348431429568611999611877570037907019233459372529708534300156087458232460963200840371292770539248003752175391021486848135770676530214585882954332009824169978552096020778458943635813424654603798196508872526289357812837728076506871702010831678368400550873277748564234795789496495633152726818467049757275011744776374106552185923512669947355739776753484695297204251356028313621442543968120006587129531179706328468569632406396503177585236661368381068757531270847552703634977115317485899245122562831226950160290163507422104008030581210933872486074312186367819470293266078359509386871449506057274065068195504384825969665806553473652681490648251447111709253238132992421455854556197324026307764426929771925516424629290144615588143691369657480240824123251666648689875514144568234724963164765985380150804849592920719362560632343706782271331802134496638240711469642484374419945560867255848134626717866517607407298152938670710994162137840373184184058713517851356433911907492478165167068936525569089182584322371915471113441566907990635070822076277482565653305901769421860213152801333109253805064064594097738593498772928714410033212539525533511759856183312602539660470007773193521035401895256040609303063419916151117110010261513012139699049479900519134376568209464043537711493951915299917626780782350118086985036767097217384661883770989904375671501041378034658014554939557741807687346212761091493837423170819007049227758792011945341178700282491323944627012388700087650035303621841944876529893790679617062789360023638661326681269771016318905298090808536499014574244360892928659416051169908089712066146103882503901992712723574788495782496735086485137678580496449799131586143959741238227110620377479652889895490436559363564004518204490658532837388405793300922028060255032057099487929596435559119308229526710040687004298925419769996759706398523224419290679689444195967923466591367428044649049642653584236198529307085006866426861366334937148419491564048957025774875208916499864504475780097149953656404790222552575948144126707145311884155024669787881704451077239841261011677260399909924596890936919265743685140677918980220337172289333210488173984901710225356606377153383845535119512668767664957681447835786728339834785332588386871211035230111962180934469204491066893926912283665362514120753294458562766578392698698827038488396934187881125857783474682035824147172669382466569320310447500177837901583338533217916782006244256606743756119915502878589774176114316199830621087088824972038003222496031860299598528381909824256147636013483140624256771393691244388647921333411049117590642514546400722299480411993537766429141185381184042457684580273274813791596276264754555904588386735785784861394844252973069999536620579362748223648151415554371907705151503338363180474134227220977090645475402701866796172849065179885716257838361249074226433009697988949030509505965422981735983132366238672094972790127337460905909935585738861470091136507453035700019451321240575656436205502182330041785724299567609604433718318721138096439585906579053893110561496472184002461461036355659591497598975314499066215288905575175850726319656096144864652922843583333502259806467537047023281061511061115653045103685429627670534933140044204420313948546989617500109297312727469467890080083220901041940834864005268913622602184418756841734530887045056784945426517623483230707810737256092767146878267883220156887486359182027331301246854048911706622954949368140627857886993517182114688101086712698112751643572312389456696279884210884610328394767298419710605959590269185863493800072628178479960323330071646840289314816495316318307832075522596554872700300397447351355571759520665380512807659604923216469569917638708577130479340036394363910150860054688564838093464134137904683663388882908564142279589693690745506755420680208825870946159537756560041210023510218511478071780727133244457626998294323703409914475672605898025364048995247552336566040717880774611907029158758235912643940792530447250496780593790790875140868457756336626362486102520136104058174648251661752684331127411549268800582958555248130812288844850523530607520749928824113815839822944048051869832652848392255095266015223322826564325414454947236902463332164356294531937564791862455651640319251782386149814335435710364799601336447090852476934813554715302477028628775046541759107872148952206616937586531711051426875377718670081249306310100118931143733146048778836294063995013110660721084786139474286987145436386127015741109790178472196253283859609836433665154874212071742394824805921736762018314756709189790750602574400878063844237728887619294044378841130467839861951077144642480882285175014280472212278882733500787033750742374359400844351513817082792905318755610799314061738892955688972068414358107278972625748585258215074066413806396984803777807112745753966465104373526158086352131264515114041326319513248660456214097395698839998244593999789028785094729740558823178857094431883339973355313803062890338754160520559174769985351616885020573967543468359115930729588076694334667861418839247319072492879346494632187963014645416577103845256533911070293478747389055227592358103610057560681588736464988428690732311479364065995423455166188252712316900397555903770418693395858839011264851163302080855714685718013128786969964688164218712578081784047475592449706170896589696472572539357859373820695580499831340749852771676773886546485062821530969637930957519126225175214287247729911961189816151911190611495603757647777391028889114926106378635364887966961732286508950349686340273492453693637032420349990403008294487002352165051179880702067742208699864911545554087766626436774131238244826153144691520411555591665846231203002588039376255819941672923497501550143756411878695027251635957598373261954630499629073107744828424328979406852041224884518918354248463084093524561533309233956278678963150802755833330152140255336493220847072205166978345072933527063408518787833096008992871285184465111623346619111051539576815153986607686346762866987078821851009697374422169932870892936522267832268294591464434196852912514321418472487332728990264455466065964153354383539657308920596272234437815939732745246883021143006479035403329774598700752839382685371175815552896398969328647467600352024945570083811845565655172334172049713535102962007292491079281831861302326883270829245514477188507017391572232896566749702152682544592943617383731606606112084851433238709800269793265524210058209902520655872200876741498438305772909625409576095837874993971256799380098347191228465325350737784800231203467588243768910182743880202211865224438855305129576443361810565466765296532335384389384696328472089107258869617883619959533366400276160242080053869189071548018973467340430524849470321958577520576117732876737749908230080381395364390891188902670814819203132782587992986129568121952281070827912438151674611490797445374678078702236461058796451289603645838425062952741591441787505146564072976503043584523195116343930436374837404535974349754191380707804962523100076921796110040614225507881661199507326110377767048515188673252071398051792525755447736836330129094093219624114547161150012532053496812877020131991627615540268910639609638518255933081130083127585943787591366901819212830253741807727396330336821303957541685490857323254642588095612215088129911903661811222076862302574097752471248142148342787999446832911770443780791658452554813602604714420786300927039559148381032007608842496889387180842979236812898330693127620744435803238146047704210383381036251301360711572051475188219226837126997725860298792614213979267163480906274320832660446620208657083682917545811008878711021513135460339185426202374387705975757054924334521770561640196124961624415152945870141721968509237212625941640293788823026850732013649469763447351975648546806530150225595036295931920298966150571909211392790192491217036331079253618493360115826481889581370946996597378648040007378046619275533320934751211754391291659504495769499957992192824803228656632032353785361779844970181632981124058372454791484043816204076011572682398962627265313994580662536033313487325506713986462700908291140662496112957795718049216750088255973243124564999829170440254395177240384197700156882334916659522191242474292770647411048498147733685978257023618549691638459540383981545079336541890390420573443515963562216338665844061029572533158890885266789314026521712122726036938986577757576985630539668586498143065755273666831389853313543001581863041314203934059126855993623466285132956624472279325295265426807899934960380274575107275726539706849051895210041145830266833237448921992066755942126451861670994637301671387872227451931990989308770917028133334726338341490259886189933453632220549199431474607009844822666275084735724421924800445015094768270547463797004881148397340943735142422613350914361557411155577316467619200203536702006134974401942236267061178138266788270116927892546945306940316798525603066874870018623273683803320864753397763676512013381514527799546086490404006624724212059573099752817511081579507171915813829058376463174549879715548286474050632143233517199711879396594659758116839268100472817172602303778867177137962365331448950864738246010668979335881004595350488706037756855110916202369140434431055858691443658171682493653540415155568465732216801181377276743529468367116556653673685498064136307544680085498672049188275932853735202995663591250484568032638099002265426249694526586025698274883801315703578172545711897751863290119963814345653495171525713089624317477793727138545388784658263483859939988904393104309144995175333894248947817900393850570060508622110638014663066994891349007930887177828485773018193852182679639020205762015442387785093292971654227696463123719240964215317246045138644650926933508456490074714452613329765949146902967065531021052160281408016180245987781106537462255134055789510880080036263461122020949692052317696908152668171108696885022202751622878610156060309000819687021467752725037735462476150539094122217685704157830049026596375133729960656762300888740298019601331877312323892175918566058787748148925952187824558333479554675151550149801703009667473027871408089637801254688604269131837407274796938485615930029487650469509676380392301206928440345700814776400240448017253130019525938277681326741355000609030712860456397762393287561733833886929657532610255717110631528036592436585183493817716942354294901404058893780820629504052548448358434466977794436107600061034687873823130954471834018651391631835360068639867834836871772721071128504495089850070538883770311056617884298080087261288306433418990741478929973707109636008699371058007740077201325268115714975903140701380683151564424598393693062578223192038291403091755737069211297442778519164326553229602895749182733899165048708539100681156582346117368281287116153667055707046747177363805442042440883029568164836107181181594660457604621118624772390580912359366414100316125989999316743910109698196516305144525476714822482883783349768681380552143143465777729553558548238854423243701085576593069718352765855309835605731497867370485146826357610540744770312742403879700212219447945510261090668465446181706543665405393603858241488220680673847442479405986907158769897748059708492239762797150442225996785290772800966521538867929466682148839059639120421375854330654863107186894930373444677391479833215560771584961903741776137473208430685070561604669972055259818157082065676217591133477930473914548997592104820852438360228255839675247282467415081583116272099115839540568842012057194481241139973645451496882107468775606948236582368350055138967008391481622279586939387608470930208583605516660738341135826903975201138573557609544710396164602879326234100562619603180514048337738000353617536560268002892089067275393667234431905775242372776284866024365303558412471487156945513343450731021028230073067659167986040744333632894383577231433195513881900279138340729570312636395231932315321514789956135300717176370118582400909314626945825700058818430234030864482632175275146046030456282446757496139369051378060651461929813245409526733121411331405076854628604568760248421518766473882108235863476356897432611482298207230073240777199564629450610500447999156011690493966241781388172026636676922718365976222566745800235548706990275845229900911636431882289607259566749157421308753688176539611855633447054658080835517011177620576069896167765505969805666946565059991702629253297286065413745909339606399673995550968859831679031529394510934625122217018606793394963938481294932409035835199312579509173708740698829839076065761968419124849155561284789133505612543459984824904020024366126448254638589325829804083571267445903134051334903086310221522435762979843678493755183481902714855876167492251816051102666083482840153016758636682049620850609972300746293691478845727546332007837525095642916293777669745389893570389593883759937067042102924339279710107696785020448171144968659726131681334423617819298256461492050835614527211912012060036637130161377671934405621845391781844529144737155031996074768116952069762307537801898071099233401704393388481500945981857800287859217618213649734923580407707531657858496576347206760772938482893823847680899792162864751207541163489074755072990797438104231013957695952094910037491171348618757120867665848404066292678802328796536419811181811220597829098940421925597470886221076023519432524084196759682279067199316023698440285948983319035468091217867713678424179824979982983491341553125061947436991986712942721515203530379340830899134058634176108297629230209282601589256780689697381352811136951833763478999791946477139081869880413298286100041246593196560799141430016576279454881278526305805829899639203758294022890007557087688735477649316171688501592120949241772515067924787922187614676556588298929677260436130346351734352431872314782473738692395839491861395371560390211776592523544140698285365544105966974827464398733268038514325792660684337106046573725850893846875356825524241390255782286758162758027337128670871185031666880544935989434380883427107038218435139025251040918213374336456143125982047345069506248386337521934205061618377254580910663018455046240756500491436399009875844982186572921114439809392437102383279967400727436118745005903068479984931654765797221561330863024856753710379043548085135728144576756379788429983273818476489730725913728272737431509623338192634690025141901846980443145808146671853292629309128632487000064952040690867463886532525635194869213984509131942366373991947729970091655759132733699796602141190299978643572961539397390998065179241307408531816501690971048045325563158316650482394503314686047823278656148578529059140633380429254977512392959379568328491188292032632119079769054557023038216077017820872977897066362120042126257039281501328377163578700454816555203699607247807723816815618662236892410096639838598555193455672167995530496578572737128734033701386687776661181908132413859424435222306563829448859302905331419344021863946522365520319431959312653751382405261116865215016156397513645692362003233604484860935413819454182291505885285175818948533206016942812619414184922853538736622300147755348416696281406699644522396356736723481461622171526420566540989893948898359293669553836060754872163617877785233764244434254551821568012370966776672083062225265877490883854172137738169245038975190739552239363362097147310167753986855324154030324850531545451863120049352092776784777465306614952958631458311376623247203609371913357602783319125219598147587286189936441830534224465117985484020339812736319918434023842574658036338701686987830173421953685416862297513240812766697060735027756084583871546842875780669427932728164083018723169699562239411538527001570196074120139975719561609722613216485579012792619850363188432271638485960151299986560028308831647345108484874671400640854538326313219485375765275527776608163384761965274346220861994195842274797585530078854792689333153522984063949170723007995187746215085490126057614295957560422498287891803021796994920124158712207776718761177279026011837233511172997791427774668288107063514588059857694374393517046639796171516920817379720664196825930086950804545200386525295529531679883317558761646422023505890788496748090858028231102955722932897395694208842724317582173951622776801673607608657433520332142021637867257272507000695639385162339795100678570296196748912063813427604124567858566323113008453006169720626089660171839265022341965336711193848314495272380731754609571107480597772788775721452720082687389373761477968416374192811270025306195579869685710953239370857056710246114823830716717832426929230871684143168444876312947964594873428942371454499548674767832583848657737735501450484432673432909621916946555109085219130924979551278615163315049698680180907004526817219328957990273082854450293190555955407192191119454433877537022545329895074551905749754984486393575391021117618180244626832980359754765819095916632050599898827676623946293544903128953444813469119563082433716169907696045297691306268228597167159336395670646562255492980465003884384447618831263895670407026414550085118996614475294690157788000620996410685245558470608965313140892763644984484553557950330150304253985298850384241980061019734819344845786179804860578367271487837752957685623810008335031087293764369611436319668331559138257503620281158042513249735708251566739079549450056696324503232699398579200431397159162705164855553815851735128067960752218822766197700160959143932601705068726152542778399532303870872319958810529076593012786153015392997215687051390008147846797779400593006588386713430837428786348553431522130167186145160211375285787644625119634353983334830047853656359533538787412359975653762586874825469027173514281020063253710735798107228091610856250269055039072546005598815046179587082070194038759100393051473767774521160005848905372828845510361715181983829566403525259642729060697942989934083374930312181124346758005502966108226426885460989630779441099820908606562494329766096710258299467377298753347627804215106928167970473235701463234861779615960043421845141224429135262888832609867911567888702851745550459923824484886935801656138408578462354046672764292149405491843340467949631123669234396425929370992075725960260250183357542528433793684185568370672072908969163530558841637006239994931757999300990403069558680240860127237117893738379418029052802433358109061144954167814844481206911438536308349872691034954826927011136675965012884349410889709423312452039012069032276456320005872658717063735803772623350976764324112743413275281177247363849191707777282488635215111883439542902463241100553797232579261137836940013649605604010806454896951638001817252632852229513340667398216050862729079354300249947082643167274658295145446224246488006449846180875837499317255506615664405895283420433655097707408745682897780999869760276545335038358631504010953624545157575392407470020489719255727900952691612699025269941812767693192454873938336828850980110451684322579203393956839171676223925837973368260497282916633010615392932450203642016547793081824916154316599958880333001826120478974214708446336689373353015746669274696808371716624603054130978210674943691430377171548378680703217506690237923498365348144041237539907418175425922732019959738441414921026983734105168270600798963111495561309730944340842980419301012599950635808336453175317885177440493713195423349440791739149113888017289478849814363979172203066686486804579184140158422157435381042715662312059672970497166887932092245719464248300007229905573473271318663074061361762608273080968380933088622989944735895337007050483417121494509538170666142318864812503840004025559031408486327483491292403574377352148231387843144099906945572372757962644198960183515116391377416523979867751533350972258890750222499468664968624691800942726717912655717046371769438802765728774497115936434704325813294124784618992994829349936021304816721512436755345889846729795149426834389983758308980495671686538940741117837863245687116208331017332650634780175645557748743500605286855022974369635207691798322132274325684578786804485594980672181589445169103928448963668997259641419032255035318933078339290793537628637079212151064788919419247650731454586473410699663875028800286406143018861499638751602475725317449514630549527037248629108926075203014643009822845879576713742153244390113174224487291256629891141814993366258054591557876767301697500193228284639420238948348340841417991758186833159752710135795743707442686195224400624956879561531223723281276013355839084403789997567821645189736688124012777727402013253187234097692693973434530423311410908592821116421349495636255931663200203582015097464098580018415628324798965608184950331043812638609210383312427204864397758109920965103719315981418994767928299860161461751340919034937269909868022496826504656199139774727344579525497013111960035752032568750261025540560275602068328391605884117597632081580294153441079002584991500367797000669116098098006189552813289428831022669118137555235391846183590195172709730725794233907976604489264009917170657710470242964831213655521973304581400008077625635527212285405761228269405901142749922045866923945322764915738790060286116573485379957768296590452937308200914182296091166290486297681554535081613094077025600545800222114004138437364985575819948331437566443357784611217971910112010840099674096584307444073403829137407676537608781236211265096619857771830375412960274110712062648800113120723705839482083221997683853019907896104523317215183218045338009045780814919543880285230807289635946845645433305949250699954543324003447393927013454764038417963484003059466075562687442076491795671655256251058688254201073952256408845406173098200246882428830997237520675616491271921119403189764427782362933762531792436594707425954352674515436322299533836381822416308820619653035045971721054222463511245373332872233410222720302998839174553377116609805116641958192011547431472975129433006975388341947846658379813924195027532895182479684839526360530504280951215845915408257216732739933922217416669789814384354956801708608734539094434108198034104821567561737245032877370513974323626820248480275046910808122789608706295992521242810334706055250255504532722921250902868381079983676450788776567099542436123701407289081087351684237609134867771763225903579580403158179351214996114462140460960835641998450493200222935408848303881680982747928014414845005053558529038338013680555073551126132422586160125011999589074885519267574652080326278005088160121368636335800948732628690968194417179768741985913918260753928219978614840683246471341576233095054990961409850792658107297224058693860884903175134412969197402015115715027721212489113955099020179212762391638337174650777715186572791703515087894599483415458313359345605858593130501211971645725328592381710330234798460104979949690126596481628838970321208905844197642089205673108851098960369292283026587632045488445145045898079133339871919344711597055181981329924676154124051681091685132999876946938021519730476770768478361663788368819267207880120165504107565643293382751520507122795164827326919236355418747555219035020186892056510070308882971057300161964294510993703221011940750210168956545029927222102004579378474445969582619695106321558209972312418134006562204999386850405665090079389872749558300727981538861483765790131613306518381691709386892392481278723048883134857799223638550128957789117164424181617758661691098607586808339683451529438334703963152569121418549830164218176157566119532821787825320467112062611695530075394016605580682028867119139914775254938229924062818219158033221102033100847091098222691472299321050211841609607161751990303659787944668469305345765287019503433642719957758539234702825740087079365758710385856650748004865151411727513972569506756169128039003269719362675081275199711774320301418284972282513159666479192274629631319169817744851033739330049737040042219587089673518148762855739366574792166844714735662002071151157028890399557166619665917692965102393695061827029995504397892410012668951780934964930710483111170435877449008921705039484988839409139481917549262344919616386979597203786167093572774464835397546407645364859146744440405713318931740028284964599779277600434655740066719152869907500881813534744218372470472332130657484220492691122041189744864824900950718700181397446825285622679628322259738916899086803712217292028777094127221565351879667235813319374196922335451451273121177710668667791250154142609230817818212616421625287671246725409686307095353468920983006424917726090049558863118248808672292491725248446531057124540797405162725623641594786333629647963533317995929693035092580790102170704798237538114286441944041012079327744174597303790109236218916465191373876898293143653182509833793428957680885021183518169106102655819004162785866142343769838813856966838282961521285193440429214906753669342331883293337228237946098544636215802731331403656587909084215581485871487006911761819486356664177711699140902798513878572460411717625479717580340398043380024068610810506885537397498498757347742714455687153762534514000394973315334659176028060727713568935981533678411663898353256125468990581302667091370312608425794525916748722384322597454977909047365682788455243622082317956473803868720477640423650919762604485415888938129433219843254410136780774067134884677058565450879856335910329826276147579501302608647291314058760109347638045417425214961575308744310346985114311439924366588230254866027685381256022500479591733049769762230687963873026191233335564644533260600904040390506098403828846883937466333238584768481743952500871128628713267618161446668134056885811612449727050168324540232520480174774027632195350776961480489328406038437982566106872186219441841067117316218118271412315076735134486501554546493523851249481537143632491970209027685100338732069818528597657134897362252816751639568173157806325292561046925136476127833718477162696605508293202943371042590215058647185432249109159041252991661975409189667178284278832747135941837012184090929872216920075961741721682586004223240070776913317720506618453414876871245897765446495945549069097411714140589392775465332548884406056919325637944846456217119109726731233328487501393373758554495501870871021392927025831823805845697093280495181897901800490088821742400329360393968862098847922196619039734695682894772930958433940699021497370057268636356588028529440367067475244648724758330014418029667710008997904635946845076549849364559400525133500164853951227226940845239845882554431695824378794603972127825439472623184464905127793790788421506976112737492144674996433321510012972587990344113714690857274941163590888538593347228561386629119191073860055758274297454525922190298769366913155780702535791131204437386076591421158813882542496421101290821974935468776300249704118131154133103557734229096928565665282720943203706903345386084462211779870564145787398816660687058800347914686567896683428384847651695148218724220090372836441407474143392331936867020449586431289948041372242844344845683075261975122623269045047248516806206308139727620084745688837072651352299732953599798463279630753925790678603847337569789864355590537853754461570971015501361177709618748992412767431128001367737199748927362969797495000641000910632279960450481280975866282869690638692477367835218900712129283830045904766945182485223222324382654071691896265918833305532324595449844229063983615340319686931618162234706484751985685110311039933201329800483905475984545852800580798671990291925388279872834180471267878019856638913746345926245602736152006435572108055982900188317652178308058020397993724473660470322788899765988416947167100648651733961752901462480048316976469541554959684739685605373869910957056499956652301811308037029141965558638540983500981827453510193886291611608386082705307694335530032625963674183689306513962348538914280537681661586452754936023980215917808358168245417865903816171351225694226453964521104770899313173651987974558214720309792406454777178493953421875640537617914722470655536370456907174116155703730672233284206416027128219110796908739423907119827934226293347369473957135509053877990886921636417112290002855533461625503042307358157185483176013905954861353460173661543480588870621126675510261173343603240782533467299982737740371701601393482292375573680757728345427411171465936178022548278727807470894474622239447393615405658888394885760251959603203829768538506473014187236188016802349114475838566657522804608816755514173519096061689504206656662039123420159859549417573206997146396005518433811368358772178685666158204535184629510063506984097528043797987123526892976761835335518109167968870903333774317065181089005390605575041452656357178780734835102610912949777359459379665775220458654179794293114746469777273120443098385436070806738952212318985035260712373213883893675912492776603802177417078757576787372947952625119761424421331811235060378537198112987387726877281876965459582871344051066099009572899074678536998479116667236143285803127622869772435899555136449140503045613390393861500313558291632936057990479711523818832136515675382234485360555490969458114445780823664142993486903018558490085947110397345196096359663354548527647113624414104204234328647676719353147886697018326150853667310361630087860728760900468031581860962199994719611843280537250173215476341612014294694043086929100538044357763727753281311918149930830719598156107976481210451762804321747121884474908632174457899826133817066058189126014701016435547914706106446033922483098390143773263781312027119323558359256628232046191030442371704699929494252119667058085155524109643711908554069634032473189448333290936931530355005522811781462419679194612596403263091530351497476449864239458555572959745286118490477662669532931128386321642920761054660971048956753502374782265762049549332700695025408943739921245451035953216622576428465342474456909858692410372364110658901464202320780712646126923546212653552766417229367163401500758477571388707187927069810962095022224214080885203754820600596880484993307954866066919372573148085933438530491758854443245924527862201155925569556297206036962538083932949033366872100345781273855175993712569566619348650984653419368159739828589940295487298663097174255307208535487862770665002968634240273064096596084229515133020140952403951111319212326428627660622552914208620043296369810132816599467550778325998866648153119194778921598668738661438962463284607940092488406259731187979482505850711284722874785338162547268953822468168364740105716992741559135249579252824539542385877881566791553889638709134291986900173628120899602921775197996233279900722319029785232150834313124481476390139975748883037728555546469965019223020184662918561642137276997274635872041767445832658580029570278665922212601809207294467246741723375070225485531284139499295623738747133979168311390910302615453157491929375258638451596224126017843115790129314721240014834183523515238428295122394591440501452171709215234295653404357677024186756324598475684248995858676897793133806092672100599540459114454880594115042161361831573967673552934277463618763476416993676985664704695691567932760098141324139581268614157568379912422001560678943881535282381206968859933950414225499578091286292003920934154480306241909729435989260404376786316888389121391481109026983890579924384544149325216259926683706010595871296900974021533995491951740807355417284555926111525398650682988811061231006292187983936293818922028328906749795882071115624535191586945656297106040788073576712581076979107171143433456461952854350180733949052355490995258115033021805746835268633171488865492294309193482954948006121522564907054105289196186085141731054067244545276411604936242828692616894828232793750904794196180459238305208665101695560295614117353997559811078490190112397765218422210252529619033813410418506677157414530438465366667037406722445778529756805148000302994677515666298214464774538289608475312211241266717394072144570067477348427212636949988353619578387598333686950696624666930437552111881712430116557594429306756500033909675942207183584420050064871300953684003662780094215201210715026883245257513599947260873140614984595558643487106779581132725963369974073830040625585903630217121742912317874222832817805595195630409063412594029391117300775131470973448502922531501254015491922000443685068582451899277969049173402681509893068585380255760367164683135837995081872080953663550255481477334385397780827508980990946554746790813192600709090010883901998389375208760763339992142201594754989052530170480855669942333936916341666587530076728022383178159976184941474813603935834663314884203325511335686099705666573420856123427129955498472653265024641152833475966125584852439435086698345255514518465278847593828716759226289709393193085530428462817173835650864359947815521613302158512535785598078643955345824635721194809016772297290863057986890612293998762242009549093339726918928713677415989535707972661082193526050421841733540401998483654598659948194546408086045509694468412661707604840911800752232765276600668379042097422081657055208022838363056927185740996323646508056573790218061785688511400620266650688340733517047186682292197235908964813755431096011808155261237741894205237567841942666742227285638617459870150934923682683283002391173710237802342083259369050792108596612313708727880501755282349256357258847510730818741981059605109269640761753395682390778943315291297940601575725680463208118680564416300275254511472998058030602862985640833774498686354996602451971436984683946337784612990285187258342911727703375336657530987577283867235205982806414816057247970614272244602591888579731896912700877349435477651615296008734027761431117459076906298906993006269864075004180539557816473879022289668990481409574988347210434744202320233464685139962147318611890243179137905100600406323715313910192046974367075701591451240216781368810680326169771739634146247742775901231183990105438429900877408859340479846579239252060689683771546831807014547971950006524931575039355864832872053845016476513516391000959934592244405422964328550407447607702765887715672969208045651011093183862040842363222180183632627070933395275374715198648751493530950441280925375694921135483072930325851122200124367541586921226839096219609945939936258560824504647870590861785641549069493386736354253549987618068803357512350480498153870359442733471324821800411684388818149325318899152619754428448223281612557396194282414671995870607152620744592885623041606410785875427535604380861459451078792059935626109022810750648896828964342179017040839995833927740562659282033603725373240268098785803930494410511386773467849924671404060735718370359522111289350624503046874499550250676856193374679621170605278124147367201067194001449501287793491110349818155400444896643034659465117807442246327636328229521958690027127427908406250802734751171134096547836141048488923281565469000162340269667544895635597632169843012988786381010306177667427803532151448891129389990132403053133346002326349029212054327879070458336457077818596693918242121667684724521161373072439335237884132652230473692963943417037997471609107187317417145878245173788065032046430202636822550576362592847358333535407115055566895488587328581573231669853273248229778991642485624394231005291755802355238216949224718334927582642816074080818231379982710876361764242684887241669832794562217223613873484951109340687926934122327398506928092430285974202538914780077318461524454927890549950332671071714298000264164170958091681216898520318227370965489722810979486366173416855615677319215471697699335212523950101925667221971149652081224227352898121929940012532671228432844325842637305468690411966403383276244974431348812327259394948373001767485528299793051515618588281776366407255964228152978423010386922256043281174963831871247967748178529915913698609409222296342654917823561114569267158766861418951202614041127643701976024339059359039757927141363733171857167698124756653716948293210199081536739114181479265898430014298405063704667326563133971836503964547594836475186113903375336998100331582676118630448600022326104363684575828216046360016556815830376785116100188413214652520934415441722640989793639661073857182281865344234123768992540343463002600325909909797244125824583033526579740813857799330098823472479360072463750416857160447233822653411832149078950486559282672654793971477450998057765909623849067754953896699326947815562616031615067803540861897666683991495243559040542064286090795774044524225473792060145171756622947354020091572108263827332311294553343350098992526292279323240982953364732549809323071291088246038256324574031142357895993130859618372768810029650744675821072447090417428265289622409051904555458931360355810864808205085695918561816653482297370874294542154176560379466553769766875077490046549581950836874771780939914707396299238378353205702078258634416252971215838663402247349052429052480553707513886880839820396312522264844110413011904072587222327800672716266712575248399002818411010353641408996944290370351513876985540396524965141655488915100197865358817355452272918277658199207181946598715628738838952133848081737997351879760972234145269173627115395492918146737656317324845350089884303495610102598034659110332985549770107967008588030840863703435670254882320905493155353043940631677114960061625768526596871926108133208614003833387011682424827307682966487453126728690070648769505080757861479061655108664542613073249923638005949910001498270272160350861171406370014611292291420732791419083848895209751545405151371234943712484960841503225764527719734137983031272070727168378330109386049073607813164358513124536946905316744114335818680299161128734415190144678664652960569586847896725920852386380683944949443957135062272911441533485406649685048014613294593970711065428074571493957962319086169310405135606615935636464556688848713096929013006085739279414203330623895798210734699423115198326481365675549017281757534686016527467950043553302647832391409501840000504277564309904299180143953608872326493860279316331584963638264616222507262784217811397842470035915424537749642361743999999352734561116339562110897099087224706591570476288769175311258708327655582216465971343641910273715971516584119812636629441325622491943472671250192770878536782062747065896120393973448199406760933192437990997866320918891652263733205404132239216693807192243494729679836240755256167454547199029537594240047999910001126251481235647607703506707927668473120130685765865772991864400885437257855327161832094119922729137734864135748899903466592373218981218154616436210365905629906090749397854825038882316857905593913748661904078708231324790805366568176968977924313693675819202663904278226225758609972100620350878715035980337673143310281959754986139494299027786473396635996248938192770558705340036018113717441114112285735165807048466096206844196605610919836774135945716117988961854377413351461829692254179318788453907908806819107646178271143225132672113830245369174874663664884723043709013868316948568914029133346220755597182540067820660478221990834178996997532362631570507949217629330737705415113331804118151765313544481720476070317691285795237991247265817080162193718007367699486179760060329943871524539255787062317117327165832681245278535233781076295903513431406625517292481992986907295190386653243052448052736942041387005577078345510871531254673951138180770811241772100626034711358768537907719678095125997359115647538748112243435525843291284419001204023654333948426786187137357007851145016022636466771039241762626100065236861653702120763544779484369030152818569119247694601778650579148447626789357096619150722219398942741672995938366796584972499686591928188523931585858310673281424488462676405076890614920385032956782135987560462080767681770549059366532448491155246173208395519261730659910832170422751866768261067554561649418785899808920357502194088788750748051011958645594432846066396733213827299980523122981280057259877326400461003152213521035920007500110688809416441537163911170185626511400269635724090057656875770025366466947901198525048001909523962465266671453171617788138945854344444817504448869475183370905164658527976420687598078978772170970312501137795005207166880355355104216934431591702923606498950586948655446153687750673349728246734627022641039775932234616501966464372454729729163643810938663943568583778854263072385780702031371710203359149628385309377643798308504690665587140216859128880784303831156692480915753943468786798612414105652827678158350179837322861798724526627356315459501311604709361085304464325979965364154108716893651011950698364550312398246660418880288141892309492282604972508183161234341101263576429774277187087030686923841062485051863480409439218410686848802117224442439794623101743074899094850796796080749726972936658645721360796891080559124652919221560018338552819518622128937260291453834836792118812266987067981104348869588099919110123650810351182433763113266313282615506275393800708161955518368434147080503806834920882942000106005942836147402001844415577961104215148040465183553608340721485720043506751720013614309707464385526854058560563587793678106123408988698185930652115401099242287278475027032270193653971952496012069640146496724222669391399938639165324820699129015571960092645952049702660112573770006081368134074253614181304532945716088759842689938027862832872611306007302675737816388182320136938774850785182200816055569024647665323454385716812415812643765437475294117696177744450980064861796491944683226165295885118687220734299385046401561099208984785391678716486007854974483788722888426698737548127298424259045452382168578520079027792159283177869604705488838005840534663314871505190686856772616599689784111456845570208629349800344843477731094364729391920078494866648421454563008075833466633906911247690847414146633146791044297183546518617162099928908085913712623419186630063544178475077655725473462423794480765224272993400269129620733540681393254122172281220567275033587661416789127714946552861921071178198665953756382668189561737217560678342207995478708646670467846601856095451790619132283801534047075272248787209656994121141313549230020989090069647169816586977955365106469068314151633380050349800828171843114955863686722198170629063833448642575950697606451569760594989268634990583569667912396025645082540120424340154590543665750632379499490655422621047075560989081352632412623372918336610796434479533096394160728172566433710272276114346858594004221243389478324603326477572682948075269986901032354435027860477239009227026356438525154131937615432417964701060752391886912072035979875565399319125220466229819590016460905732821128972544035258959071293197655320708819605619110251249545812096803575203768237221296704196471529384755774418203972893145207126838275338629648953893521170706609318141702490221450063413571535269660828333676595733736566595051758633669776472901571291790174084559129231102987025019728111752756274393433917580035678088370907738544452746322722449868024835525386830217685761914337947247916680600921613191625087025231896664902137294292607901053874762944557261429135495921939998696522091573142994598280803917304062685069422742731339903362032294941087760555272678416429577007681640311817162810892279763687711455802346867971927196200603247220754808688045513966028893406357357972412267021972443035097420733627307750135712462856648252105965447418416419146964380784193028818060086981576327146147961071704780580382062292148744416243679791665376325562412131344297812411809015248608793103006212798981763839588014869634371009355437422510188469632285306459009559367414549062534631561483950853424523865251186589785749706690170108778869358776217554985459561155115894506958692644942068389435982606686306362544268688233687872217026960052610096005377684871168726715652089550215507840570334231706855614377000269397695174026803094148346918152044863177835951586352006403815241941225924718454247900423389608254484926163102915196191013375561346188656431672120589171899137056682110538998286608880504352198516345706327913402768173157150870496687036171155107272031723130186135776095152147311916305108080446386475573905298982046032899525320804232771947347627378317772400987513317131057745885148893679781019358080523499392498305067215027388544167418398473224293375553208118247871489423746632400247709829172454619689512508982468599772813267253499585665658362037149485423575185110712719888428906260543169800940855439286955104082658123343687988508929508026241396818799101296569236719286472429218296620232730220741755356478939873884645759466096219542656290819340345320123868749547356811526175341052592754140432558696243095651099637921801625887522702705203678565675864779590987190940538612946106012627951334561584650801014469942042731627752940733611146083021087896439634553965152153648992586582566675072979441273601273673511433625130011748931202222552822706862720969308800952417322327702776787450187425746888452902071348663843813593239647305329272834638025203965432514943961722945210906872250440139671205476137307392519271199729721943378785482774577228417268662180341285539129792391886960817266639258109834822680431990631400542133944162103516623715097314469332378358635471822673846915860203171349517266603785404128047605292787032447610584780361160285340569476179448572293432988869799516868492594974460550433345346786246001062516363096183234741698239983919107310681728700730498452331312012893404660745715344147623070708972053789860085118329722139127955092450417637616780187808668732438388686447267172071144825865136111109722803696224591680460803654631649617406736380649139547458029246979042564269451921916149582377047945827289024468586689717952190115316044140527860383396491617065061007438803759766366365235625034147708273163156894766057764979830685517634087015029242806900590459344139245788202312917270137743835328851527470662700332675411485754618745419001357240625657861894310332576514836726268429654284519435465309855679932403769162496296886725710455953880154703499851460552311612257786006368576442016976392903332485157699424175592041442752592868890182126478314059624834829426972329080987857378351870900366355518793002918064202544263995305212943307447253604473501977486937585173198801531251394112430272941242859557297518660409035685093039614523326565715170400442980606715612711557734414395123609565971459363247771555811410856000026664387297831999537668260120711695224791079075994648225737012629949152936307337443258996166806609673969198815741789066494994820757600028199242341644552418125828790139139923180127550794860290100347244776221977128659410826836607831084533006248793850773648612309642275924996553441356874934935283019255269993526967002500206299749610230494460871806318147008060272438597064762599061422733329064065683352563795306023675900176336491282371807695839194887768136002010821770772293218655786957881226742354536892265662626803550942924922431317413789942437199332498385701324965591475597240389077986260048676540071166534918280759119103501281618515617265392315291371315027564481953584333710375852249512430361505028080252857347551235050049169361761222001495962824717215554525680421941601802818358635182798751801223923233123875567614838434744981530145298430919694183464765629570543124782979119069271094949499840811252265651789655074524538461564206850387962632185778245246849884460140333849529898204117306408471706247846961564924386655778114656572238804722893890987701923924799405394145728518533065885290420541357509578842629413405264553599564565512892686049679993622293080780272958987087243997919500966458998295430625340175138114171820313068525171839081577987882317316760784092928250366473745859441376114111207075734305787851014604890262373567139598084198317894541337272299498132352669746440015406441555424088478431740886329994108001240184939699016559058823034926937084562216646677104109404141866858938657076560263829581749037937727685153354733620413012256993652788637953670570118438281047843342179626933420218312263776981224494090047823663358614220456974641368963404273115362187500731613502053868900524542603161783924830556842419134787948276265166935847379049374996648024514387839140683996948766644145296119909749715112271910125346469941944219675305566966697225637565859976797014797184442887439068225655123210062626120895493296561090631783979902665223329880927566684766491307691508609975077518440451224346962220858714502218654306092928521131878155417135316747671272106043086523418823336313875331921973182914004029097523119212015500236109373006284569660755767530255256372533760236114476059635729384285357156071210933520843835352690831304990327208346246903398361844601425847306183646635820059139163704337121715759773201367993318551754479227000763745981616657550982290385077730094184058502681731999704860404743178959464932925233162960636799880017237612802526368512049268171705714985597539677866209650269456043830270297809134479719869948470432283952647640141263753797406417979928161115670506113119999933853407106475804528779297637473071675352555868130953041367442988988075246269366785623415236158575037847754489805647335105029367906376218548959677487958904799486765405704567480870017578454152566626193687506030677454876125879122837977543756928636316587319770336401054300517764026728460550409552519548963204639390467213208754837254351763343701579346976996159741993136281776162302295956096738334430526162865310054648916500574587676473384036609065143964713790934958005318363551136235044111026917115793905503880155160444135417423202052847446332376440807687078147610794157854161727620768675288537149748689730441944756897277569000420928730194176063293292725141560632560147728681855060293436705724945999961201082559997354041702186830393291601532546500131366382907302369158670205211789109359063568916599107172661499010439583241762446946468601563200564584989033030230302482847118559214543755749943965433121598323247712192159933522965284700144887861109304163870671825392178793734723588926797972071468485495290092929810557366350030449251263186785225249516133686700296040848723692355346404268451569376593996513672550654176211439180906484242744873493043658413317855127574434308489265296500748599395993935632558292828783258371200714133247819304066408135002378431999208429527159240324389337659856595554664276464008267297839107983707001416028937952389783669516009981754436846667003511673597535249195100820095960763559667990784487590910169308330235298242607437254042247407928246464226785800121314251094958423860899703726721129642949017195542607052384503387867262872685933126934006794877017518968157681153417767934223348567479974085444520323076119983929095834555745775493091129792937980333902978603148881462011468232991312309618256416592297997468006294368311330846684382872322436218016536749815140716959487806729146158446826110470126178576160767049700145889671379688680683062968332522451137142420427624851838345716254669612909967616321429021331657622077031328950620489910170315935735999439050031839152173948853120278027937078588186014181008117581406885800622180433739420180932988372455606906485959609902481194496359600560329944287199821676143076492470645908594440004363857344187937140041023333531042236443228066245677925940379717534240972535251505089838038330542745788665463701236352157264496230036048421776466972500033558838487159040317773412876395070736075383110389525525157489827240905377830471384472290854506180810082619576075463519663824438426854497116382939252863663712086231495681386983581078403407490713195468120520361025325963215981022233925165650642195209628506702712164866509282354846911394325590957961102803201614271695167094930764784164259922128797539692606069151034068724802577199406714045512999595098012179779447422475340626225925000309474560347502014766972413688736647066525015126794532578182194425997903762872562650492416611680143315087393276396014631046859146230915730571836378150397020035108366529896666086826845178733345085595615709149502813928550244381685212161201067338046244351118880763574049433770951103774151144075666052458698732459809707334971912638528172262769474392545593017185794040824331528574094328976494445039745884885490782017833887038390411968717342395073955141991953350500462965198612506883586946268014143169360165198391877932220095756686244132016732281340220827457402762968720521243732917209385518351207070067306235547578333210248340976107903494017232373712434097311899413828690068889601912229327712667919914403667299254710029610202664772580708103345105418966315505304780068180474943877086879179948644815312449368420253319165714636423016443526537315973442183900243306470854052037693766618665095564621788255490357848606820560476877758528409660061394107501298165413955192252019408711421256770226083081669346446718840679675131683745463794289069319178905906597221479733112697263442158146075213020271367785468394883467772730790253919621781763204577327579326325203535739730916193507944395377958891868453376620311751699627522739767749320246159283389236629916155413511711145132576049779201378852842358542430690545497853645608475736039392465486605957513267081835988750627514491055125040828920450559078067528656158913814527511867413354252119595915731968796906849900671101056299904429999138732462379534871704810823644995553049595757329890146212861194442124822867345065483650618364646301317057337800884508272718408416512973201175002312655731893739943234560949658441881051024312827755516248254350472461748491737621582441334603868658169806430964170388297233211611285701391643768237394918127440873080075152126575995359083477377193390976874948343646073552690408035052287309334859127947507789430535544573014535072509269214442365744845205503670356001921808940299819130051850266182568046507172010159442547135736527725647126071537567007981284027913195129207451921724409170120532679695175436522961367740053358014344812972904990142449551611399617911558739046984291040425759922252118663885225379073490545599418969031617145639535467458310661666341908850636782150304523478948656450898851616205274874805367800108215204150246847752637311137222368704091855478320797961963692157214537456439024218106359782034579540260832055810899182032322874962308061563656598011645844537270393099538478964954065245052970337900838296472368054903535550357101765289933081345477125662213952970964854843190778720617078048068808022685207289218357319381255115661023491959576621288637375779901389174131343960124566656648263061946892977677604081469811974857285281026551482063876867337034294541420334574776868359501473493910225874790747367987229979909821767096114585255975952626618989455425662943844840822404890069402825141744106133387617120577998769918690384504450265237697973871901009381063047417203534282550217432935160076399028716131919275334974354153956294431607269132169194344916043676922234284960350490786761025781598592398462711669535412172045726063644108548212741406999297883432844101390514826308795381047367724990768381292447137616203780883917438065949380091570532548043106817397444242408280546608973601712960209675761578809674088127363902371720354853764890217610702383086525051465242514266401636176028339461087260696316330730716313708942432692384005140424632936369713136326505554972728201759303173072838067843818915016986206622049131473097439149597907914549365088803843618873565856369125114794171922231359765419977391771912015892229687808804388779872611251569870393713540025769965603801759054699855347140244331974827117941015904132915304088655924033558845165221356528077469273097425093690466886450615575981180349134599503881358803006894170954267212783611745193726183427123589911848533513602590954437177503316984398937121249459788153276484994272895350122271925117306440084342596928573304014219427282781501756942025954671231208844286645225214594218559893554397291792750738376551730834248033257073854426890598309456700163211832475163832672983404278333845568264781523800725127548072626475728051890969963120607846032779610612054730040937199837497300761302102178142383976122437111166215479904951974508398699740843159772220804450212688560265440590066308363334721517087784999141277407048753457258463126844540176136493822187283763510438289528521404890387405222248468777473533465442059837512229541394616984290271776477204344390652565913933439654262543600933151212096022739423623010068351647887225128735881654314065586872010178650865280378092313721713586811905103342874160517322293208813612711162209877838815514605101249371099061948893501562645253696645495055266595254065021089171290254298802078783987876131933863979869829845554056407612394766570331758650079971011197528394583060377924557254363089230529009927648428841950776617356424426687399379313575084653658505481938119774679692995928166525202661804219915173589468336904233553864890516267024611375361464798649035412465747422601648989727202605067435798930392984152207727300734746334166712396108003389727185130215424932691277799320104031124618854668304767504266131452735240375348733606421242815389544840247297094572311607374104505056052337736578818548386992852568444083708092867846367604085771175016320760343720664919685765356930551855301917507007502117431179026511458226424859565929586997219306110847783008748360672556382505789249459019064025896440031110256951928591885361448011364845523359638516335729861658655277354614558416463029446142315676473600415497145924856385936133830660739605752711686615419569107641215315509386879270054954327301360904638338748978985974179223567682346976034257272991325749605047103646065546442870843493201818567623869794617817488519918834636215665471771731451738729603917528426370742813760370415893025066437003732357924232109470059738412931109706598288300837316326061192185873191613097725466261563343847605269574571946545614187816234549171607317292298837480091118543706540487366337271139789905009286983900600478057114621112882656734976148630721400191238128896097290839598520863180806790891439154552728165846017321309949825061014147190038856156123575608687331408585148286687179879169386572353539708383859236662289160598013461882091283856267805638705429140538240332979082310434248368351927513571055931221205026369860645704128312496003104281770401412169811027437064781347708022794192206630367150006156007845723255669660334377754848001086348904950466527095588436872621446780907768148862172356336333952266516148298161191721382185104141154922795085494934261405886864862547747706991934239943162568962907227366952653609332179765791551850391366251029442814088189313188334011270681523295816227659529541104243940120336898096565913758992930583566966867812068361036028831717554833805689365318083483073981210607114466995489668986070786142700114334757065357153526420459790096531011226880573085104462787498783830727425383608067894898215703533616921294526099506309576115114759688793930270093086949142720641027864807435669212079319214834571048676908963950625346136872420254930279306650285927328219647531266846619622543373648477759385704692660231643234966253240471870599766697100081355356487041247045479435907173037196381878514795696661854682156382708958182552420388386917305972642520146673865807776106908673360772146589306629443965791835081248117678420609358645836569424308104695154752315627373966308947598038428903025983733533482945438060261819874916384337009578626257494478931667256779024584081495909333314037724854008170258204159650764695130971429903421546750107034842528160071560170875537861334785733082900994641262698652930648685764589040843283250475238052352672460641268729160406339962702592338652778205744311373192166398361035575319237661002555469358484828216147547603038759549584168136780288030761596887614202686507744776871823792317911988097461442455065933531912184715118669435273813390859426159858047492988727249214693120818289165677508273874636838313638428437958258576844004727395863371019588727419836855499863030826458174397044619680796610496351204489689482176451427801037408280324247454749958736273515115435416659426688296559317201858833413352491492661680395100213742350008043928734355533009626159432725064437393508040989300453367596973399208124026978900510269466013217763126357385544704805018647003606704893897250572633747053480588065970028395223094419944168301484222907422062715348273817426139975501412806600662936491339940481151234475979234795376813948739264387746921280101205424118285361340609172307501749000859353273060441238178823230656206250010639548220998508637366588469408344650629096745738630548788017709508249952785754457325392971813903627693365336732064846985041467907645555185438102985954793118603047471382485583719034116607411496791380876077669106384210743910237722629811550134018958461724105056342340347377150461642996260535729202499627785364990336237731875730759493220120134487201187232323564504563700559947418208255962549364036277432958258867373039410896881154097055763735818379114917895990763239747590305326962604265329242971079411258469345540315989582364114004040291662543008679435307575619815703281782411671569699071507153942047542529054857550694800730702025819883702651693616084139963868310716985297071368061777288687435707037560829573318409529910416860619684240986435559371547849083720620120951083037049389087544062524360677267404877552269224718564809645268819089660825220698018361031168991866101796862644883514812603385557400321668054594365529549278562439934706387922482186470783443583510847073073889978578578701165404117997496322563460671549527405752767964299028685075543757572295843884586225855359719279399854520561034556831135147753299782120116056925520593176076981815641429585658460083386701711263904501152763556641543518852069972352402380850540561734478390227347538826226961693351604870696037174615705678556638230571385421021853666159110627567639217734183766401337403668036824085208902321670695014486550074149816081445211473988846610718056894832892260852243701706618533496197852803893676372847237314885420226169587231365012599975081986258124903950654958804277712598255508399209424717885979832182893166675434429585065568947528536755496299092796021260606084974945881574725814468465757366652726892552636454173350929764460839602440847003082965363638334737331505798980295363816928414924659198421291722370505726985200576479244055771762288489138579106457225443795629318743777082618358132856829384564873320878029913762953368446765401913776163061215174506463332510139576017041600794475511192607582547930527310752429050418746189543445474164596309447590158991629114876959118318335073967856241951622019755159899253055366585855839288665172784904926086810107428518900067554888989190176811490061776877485250407806222178159916000231430595622279369983400629482243219666630556117254155713173858839729154697858597119803414994975097695017549548366655285914243956887309251359594818643121778750155301436496678351787491950812292563483566530557364247283063459353074620906839016107645816686121047972984390942988125190310398754350105267703004385264146305956468475281437130318211020221570787302315718695833207826112653986018001356013410230618840368777183849210941589060415465720239953567297056569057614611252503676888642148089550881697723383780481871440633371034944404473516733684027061157013548931269030764679650458081397765078140880068052644443793540995342109978698643755482976661569685145037319768229163362986578580920717762047851917447704889067069359710527717583408396069474393251998269798434056806274798640929272076698312760619316449078768775990166964490991027461080866081875188945103445049889510586278451506728150813446041319932725225634536458461734536599694367012217601479159610569091154274711547724035482925902029101732877486656695279521797848441947934495194271250923621841017063554750918099119995792553232490820390889215795846631501582712263718893851752573384379911080853329940267429699225242926251555818297822353012045751473395215660427411616279461905557595329586628359180583695272912554736077813053413887114095623240046468901348134480080975711891498374352029897642030384613614166662652607202138007810603778494894228893644564869117562104648691591811804590145038461842786571339251630666117172784544593879957487040485523419987048642553209440467246456307416579179184361733928917334674737078543086863464998315452412883154499690409108686067873158710356541604104415000276853609877631184261523201705197441506833912361278841811686600720452433761193412754788158610232881461188740889654460761919679484181188409654345825936227814605211892676907900075193631655682756775335333414672175960796022450803919455529658282122742587245519039043789011028103108244133933011324176276011094488782712901916440837256235554670447652204258351946995130533305840856918505538895599728286429124968271859884723243992229452744706756468519473312067232131585835094270897461668368600927464176147565573371409416565592188046034550513969444810566830550989799386765385070444815995504464681428710434054343770792361591495779606938321635001919489979437343679842329068584259019593679702280974684542446189843716040850884830706454885705289251831272982298832157153960957223940007863824413283812097676750227727113724590180647592330051822616674294346095864673841383084020645116858635072391319909989123314934551675881181519115741386805849898123577323557480333057901815577753209264884931522547393262688608634161062786936906219693744575797274004521727783938314285861350423828811249956846355500876783704462886594073412387078419524648058506785231360762772829936318311846806748321366977007939743712631471474914954254542050129100804553300391605605456009606033474674689933395418521011740624207325633135199591298537025350244724449709710313723025074562500115502688551846727410761597957414347987550239635128784166299057667675223456685651668136591551973056333224343896739766370196285553151587200967439127290398114871392487397471448895259795455081623326079138138078538631721819258446039170310133833974871745263211529881035150700715534627421492036927446532200906932611482298386925192482097207099305694279043281301308929502397158713619037718898998328003161285542240281001825622117339179768871541091940877165853151822706763361208976547658231676062331023077727085978235907476175226813667818542682712339674918631306093522514729339046640092305046513361686982889402247497462011434119779600512389306102912472671850842979211505215001716529952841210733868292974255068708751404507774558219338428133459662448499890902350881052100912501224728468816052759093402478580672839121929908765511531058273404572751875640364917581362814613074575655152180597560506790370574105991710905676802767255500717504451829439882893570667639814861115751852539927877358188229253113283331473214288945025418399791270035340480008367991057000845302393022928910808649016295966618377978642073186817586572388252767130242294310417330840450116278669949331254691708323115355146605533327999323390910816954589209976921935835189100807481007587902928665533858431468423141736401689084970021284761993391315783193804273336640400256436382504244082556156112541899463098398366426161745949742157769957780040916651928594611010340065735217661998246518113696847138309120088139207825881045088867791431167200730547476609790070254840871098081508870051283937572920858737891480826456802965424884224685449781423403175332877890884885260059349206135432784472081827794138942638190955670255327647313803918466088241609434357827021587036342459689391052408616306500472773332858323614249512503981057432549467397170347111491416791356698159594247650789106389428924870454289620636852961835391310464897806936441096752834530637094899844020577888092399100555271458609506104619464350169763646904038603673670558591355774013834813401124259356972981184803780864199510822589804481162262325307702107538803325336993163216409642719082854947806805573759297594814407416004827389900265955152192610729047426772288066762924576976597124792189881851724699044010924702360871475809215336152008890391454019463320955027062784448246364421207338550584825483955469449334193073322206480933220211026867831441384577122438078746392042930448454167082706513650789929903111998227578560526260303442008169561741638027345568188439695195166677588555203648541087604682039981829567280073206717365095592780532110090732530460782033716975072441668140009668188838876449082710560194865598054366208477271478071745426385766425608507884687687195636399327907950147493903852162244954392062949703253029881112840623499890886440676814197653772342760121352716437459470963253672116064831238784367110413395375005182099369107078793688111026072411724274526029548850018289178799387184666754581259907041574955712455313102233027881324887664066454720807810518621784010969167058247720845688172048197334422927454826586912605892092779126375604737335622932748013933164087593707434213684049817680635435134508116131002467944836648362710812485346057067941213899928466725287208116038201004972895038670534180736154072854533920813135377313425662975414230706166304564757944264981364610597415772847029116745626196000085421955733094047603005746361787921374116815178251136034814562913568661856209519808578670664782317858143417312174148348770356389273706846391418028609584891944183446375715156241226037687459827593237878736766099934677561587591861077529500810210272854779552305107933636609174194447845023079767466338013962726848458515829625830526100284935198457928267260758062118578074864626499419938628979877116984564642146120041954337328889415678007842988831517764356666707666888421713062371740287257438122602047846747546413247018779545793460016713642826042652538815760388036142584546933801174449120280419902999890613045143714827664220712982006714345720549596632939530948233866520374912814567520624732971173426972090683848102790262302355469460394735268128881838086207569688929141336194330541919574823839363663558551691981232820523096745761517961711139755777817884133814318633416292552558443055680608157745868483609358410156455143642526689355587608262445495641933514770405552854077447511425600635556399796536093085169912166588469669402623142942869723057988053103707186149424860486697603421447163829752559988755500573924756244702399768850006752319073921611244517209649365724416932818903757262190393222068777864871806693918255654776125505508445245935224098589674450482180971445907988022163960695822818108032707951701957038041959827420920250276044175747046937296086179451125741356270027884454704425679123590714073988367540680591450514645316959414899349896013350825102833196848594573427927664114387426034379686921254613422486445300638371085815853764942239772389421128922999864943944434934310266088356960881119973197057008968357203231136595289698266517650989563858528301143417929968036494472545521476378849658462188287249614951153225516672356555872726547723566979378041005857416594400790371035722041138380065895505694704273214175364861124532543718376061469008676877237003602625190173762175085332268669745906564637146592808900060651818595721787562055510532974121106920159651214096179093261655416844814268731287845576495410527245620960369870533081413721940213596900941083847216865120407062450149057190757929894764895590683844932747051036219041341382442264619115982278669101294133405807342138756631693176111363490875495641162546707652306816904196645108998271965051515108224741183936332400713304419936598145554889472257205167670134681634576074782165704360769313232530250794617293141281181131970158954520785398768798783046308108891779350735684701894107822773508600790891733835868771872173761507423603643198129599032949564290783816065616943826612199846782615219393036060700071046048812648960243138273347588255379094477720671275006610132259878898978840916700889513601914595990508468414249173464533456184630976361567667162215133490941448664908548517000917055505160627218302055238219900651646191776288624553848395135723560500319228076989239322439316629353594321334117673563215705450121465779805622335682466117544440979002033191140760684979126325807661827710785968653458904378427995177964620123996708013074774321516788193584232828916602710382794021799856600341470557113293565606286077755920205006542239849856714891258271110742095286723809068233095840171117718304859834998505288134731506863857058085904321572516342381788805997736799112593030557654978156065982109557240223262569746023946966139593291716932191494341510405319280980879493439221899886375958242150814275956022083454461566562960339939118701877103061384901420516607281755291267594341586753574292456874489139855306454487455532808272587240700822956982492660393796150185973941990652293623283639501029614351425708010010917622090581266274967614921275507171349753830878462187657606379554531649082557439834904891796815378108846664125886543215408901212427048742904820253893795925327633712970112504356460489287710992383558281355544697153506476978057945420983815724849074345214066681179689145928030975290594276619220891139484688258900957866972943740911898571001300216891209377755582565760295278408610055762241682542235911481458824832915039347715584618349557560062123213660464696891741731853157251193055232147365654916637457513083561866024811004011280847096790535794340274047355668758561424888619381947608743984667159346564056763356838348671989475410149660239827898038135677885074447572867896187208643027624322967433844246532457964596707024238730858528276101827195463059433235313780089190505090112710602070758699842150571400467199303779521428947903675089536988545011264251234449473088196518099267733166559716907421656497671940984441639934535591796817313921538507724723519471513097182029358959104312165105915766918861943106179120817789807394185806370096601083421085267786755857056476447060581740540010260032207908498556733044264888391121453644732880223693269800146262354552487610121137425940683720041590467329946370257630454953955398285305084502335756511026407148417467402184237455510421411632367346004787510105476011576446177718558768734095041125991296241916511529916171860506900499981799904962352783189408938268205820941350613884862557601424481959171588812657953143771906016839353686299925154117991755209705541980940674128524102854136132807529486741459702806706987767699609882310470301821378193110803591593874406844877175584991689844141577226976000304774091933668309257521031012751218671494260699870762065639445247444212168840910978075705516518238815387687564529015985011687440758196878140877168912433869803950106366316156170192772382662827784100536411508976185947710487058639070845720930990040350793375753648164433560638087824529571633324886762596554659369381743889543324808909827005862484124532926842381960145226132859235249727241649083239835604559832070105382490926621441923798547314075073869857526657083828458664376293822941106167588112961905802021468873411911382638159022676124289400879105779862039690953572079142675397218769833973240961262586743529423490101895205319368371382714597573361694042255402347227030870808587766431995413972478124529645742218679917482660804412390772549029917343920551304422063053535193793828999505016718326736490518665194805553857288017878437454685455030145709733830211128497625295583165397256360211983438755700128221398863713762121246022658965065819898163613812653834318582092853174500162168115618797914350714908070378707259953125297801636763938413955310808577498210057060567546896395372880365844647660864739509160638304141411215976115674625768751905096582230734634372331749473335189192819608654077703928793969543130919849868597871651328766912509766572504604614719648483409923616690743982091667816248107015284211347903993947907637546568045382552080092664488685343006498126190037505700157150566662166899363076841675132647068840643336118358323611463223967030835518579002289452893248881746948800281079131552558771656171913074698601613153696461084885109465946336520011228896314098431136983005860661740056195963573021918370902641397344254084913548657174599014871524831191282642157540622136178859799822597818248204318010047992492670321218064172334263724810392870570991224228208600142641747557929968909554508579171990670459899973289671822920477137561976256010128921830967622440969736155033957094812915132775703000468724347634095739883419874422055145048838930237433097619492893454564903419965328618912762354262514411937663207181949445498358445608454745173679690009169652210139003266161177157356701943240757258333897392848673049106676446916667468637236973916542817209718902903340494208448819744149326871302018570962423785427898535526632120082997231139561904262110317382504731426165281172149422299459922424034983342237515837937819759201060042875578159016388488869066819518126792614164565540765138717548104756753416495493004940527847506735131134762114071265961030463628133626899736932169946382676584144442112171730530942435152182820726532831290842246029188027845990699866682193602548093339796691126377780251095364683210523035991117626143224839167736548654447043848978885593627684904481272616226493851770412524818996157196868513573820815799915922562707047500872268924447944357582631214624234145786540307001742244646842486983222311016621740392250580315218982223664359058265005501788976525177897446093040155487876662248942604825485892588235397579028499135515743006640243989723573835283578207523279715558021443382844500280266734020981404568824561278288479899073243067883619835685110126147976626935360737408239858823953510442770250779010844081314935359243175166290252846292137733137899776061471039584578954594461419675045060643776425362034134071436337400570636953866613809658448440887332206802690385990395567751013495803677478892376934302059592422678355567509756870152114545427350383664937082260965580779727219117433209172715047671898232412348933707109164834576807300600987736827469160266453254143875242191792657448910029605706419481496165153979597747393939483706077740063573389927394533927481928045752819954921184619373610620732315171851522394800983565528573863753240703509838457179382697302014296202834324141985014297049505797440259915170897397889887171589193548909927305027614002601067305631333174242927505918734339688117498973801553436462529545608864578805474454737569785009202665154955056405056744422752842894099858163290291748502387382397809082744268882681459809122010297899593556304366302418670296556732261824464548660427058140814622487455213587064490032723821636097915986514510394237687156773365173247170951165777730205681041046734528251570046048353805310727331273609520232927502894569782882702621701960046115177624044342675393617715100899320534733639068762887380286847067383066648861861878787307504604366680159644309459020297695314653614320786629138376852495762940121019543857294835121716943492052553183233794864949616589993519241452758996951331622988246933430871668910589373740214248545166715097747357389977479737431273905994733475076748758863872155943148517958363643836135941089671012344989244835489725814187168923389328949119924230773823592578860264997252149444782341578213239333095212762713764742974212403582711014305776922820554215059864103305224073255054593775803022007023754305700840944806214830761697546544398850010570890467484432939690987145583366394287184741686666343557642110031549201745564581755497518868835231513411648329274583245703475131486444233440568170298402934089450246965484489527091436453766903873534249602600485229794778933914262814808739539255923352911902087899506030092517852866086666199765737647424895525955009537887611436920562438269779178451412127864269156268504635883002400385630962665577475361529796125910181711369758689441842721905180948760484086555320078018895682105515616135934805165346959151409566735066446649782448086193125294561559955130843719008122612855344272363649431101390667731300150836727394517410164859530470027702899196396074420873724425381210059709494774475859083814705675866613628936708584886253441895334875744768051272264236685418741874586221829607391942447914591794654068872310802549557822251140667627056106557040721685906426061198847535171755170739221342468942115316362792204424529019549278468891647139945969660446141591123618421838785939554479027693207902499216976731012129850366712347185414765367470099941316175748704301566091443787391520801989355269014124728587467054664800088588173901466274741302906135648579642714290304098717559412961709376600151241831412080862082735177275150361518390888119623594536680829539387548104182771335504121062147674867055712842345559632626401020918434642012234026726870307425251056046078993809746825229002502509133200761777110028390781562649831941368725055479945554362046102671951723445626769026230887962785194431096828669979710946433148356645319273748422092565473071041306220521110669334076167103245607550081226504625099818907891472039355712856318826738759559664669628113506585725657087530604878773108635405455653469532173393498929587083488428590582649635971425347305302316341701405467405242418669683597043293068860037987656200013570674174184773246103087103736848588248140987928361131982796089918175349372864053206348806928581490933060000456657984494973531774268830408105320635660505550249063446914131739781549533771391395345112075153422106026375966653786482868379133044116961244507987079029477444377108638775953890478160342851281291928266544679186500110228729345061069887455670383063479312260004886777444978832768876964873188457000686092631445860306979004956611382156923436676254902497788464855800407456438439873134331326686280125948238203353695781288970313096954891265720553611893720057371295360770238254177141181430605364601029844259572111970257966907403039833939720462814835640942871005974602390733229521566552768978615637230927164330369259546347558892125317991010472518009881230229496259200863724428376574867164744446706083968511669671709176197113240182637860878666479934807360182814841790467243537571281851053279968316513493871713355001072449487885232262342416623464832503413183067413684502364589652521948206321014210651634765317936652262749334916838074478192217834866486860841932537339282411281983838869780884321047766149006761109022364421675273960694421371441857244998040614221335142022656970587742454521288758087108673551082592969118654633970150734309650971250976732733213744372101718150168561648862907505202563583157792372906020071041305421466677602519049583917040592989023233887728058737205346649090698657722182397775222760339107245810079981835136140909372355920583081921910800849455092822477545308531678824904380630981288710923363152438806029252592824245719847417586737591948852800128301677329350115430730487098687653324235054995222355875336841483156657174076651256168751464876592394392950527261451841314221779434275578523620847510442804380208911542392286863442266272180294818645829453920216558625297707631965280064568811366652925922190040366929156584002846009235176487384232723975753713394743226103688973973597664146228881163683664147903597483826729276823883926105311496824849833538727989955968639470396514916191587814925739121659061942310545162936856884946114226799365039961174489150506680086604307488493985629817113825718105690892378731310730439100079966835721902522209263180033906705188174182845089655273423892372674233839385787080686486866469219892504025443469926239066443567164953795960588162091527292420607208684649158709359927972174828462981867684809381403141254919421517633231005428993774925653754378087985909221691091517749049213209914803597868624100025036819467556107685819386050473334713365360824736072550723024467475197343923294475100136733369195629251513151041699291898800018352551884662424135925984241242671982323899991584611184055042129297013793713976535652309567517101726134578483300840001009068244947527177678473998453213717058044800973884718098017866831581086763071966313494947899392221170363130398363427638528015360461656607802069692999643426992584770992061255878506298358072988167191188012561617401701709815579733890573538041404512183544113856835786854258927021568221138030481192203654350598959048732962001814854490765332963923881382178831676399963612717473841010332920818033369663120117829806254129032308843640134329136429047922884552304827156582773842565983751364180623833611832279640427225721346549285540188789253293237742934919399222972811019599626514181090185821270371636347154574981899513394256130543985205848062005451849065735915952302683660046704788425232191157975784478274120019013410651178346534650044875619561574157418712891423665165763392039785280733755848435821266303328966515684157943779269841919566501955533653500874865508995481600261444621879242540676193080768999681554405218601731231719118285329025112815994833715940174700997262106277499057432658440829760332421841664489264605101463604341007472226692037174423533908120327586808961164207325926495644890600306214889309041149498075934590667346010617846468711398526447081122625087844309369705917680453487961120442020190252370170001559584179020382045091700603059364698734377640980773801100260324447069127597804943824296324874325779547595573229789192311922080989259301980156964485239059092004121813725481882538441305470269056853272631022538301589911023172200784866299950144634084094866573608021687955647581711692564242428849208400662127542586099450441513689579335491691229744344714587081714902203122544299010985631647328394292369101800526289628425302389384494154222384986749058371319500340507900314608796471697266118178426846338587050829748603828809715830642153706018659875754264809393868595207305493851636877108366719851984864396754682941260118851163792590447442571404672138221485046713891945072429676839865942343716011346043288450944214428726564580259592427626241367047560976115832160838740040886158024782710657229975454989787051604373376707611434457239086753617208140869423745978974364425612122757494784356119774979628916586720122456311762731707699544734964719595082079895111283749578499124829476670058738660724992277037794095430525132210913001509021114465531669069893478993432123245495015063587380095190153724413025470512694262315137857616898223105820207273382513730993947130590383865984229306716647269651610401774001774014109205030515534893175957685070294601243006591860417767431147655030795389768186454249250106663109606454820453290651160554120316958939951953615410862461604218288556796494897676231645888067774393201079395384529350046552326456088085492071842115279155991260897059200227014804333324330837337153968125050101589773955735870933816597233625105745878999321968692967091946101597196167878668474819422398128143975946438338949242887170553609556176456625632450240440144632635038393396890749698250413003463250922048738139063157145702076811134638606471037260293054296552203218389151158607072675375073830210775824223756244130284483860713280507910735702012146921977032183897218289997666103330005338855802658831691043311619936031127064817869924586359787317976023734660591991311284360686171258973337669976919837402965030794642069935597775158220309232635189593123075244076541908604096449909452310731203686916327296074577186624685782786323752566302434278675068173041089486358399489528520918506675904372640465763015210028403065347507659142544697968630335137598839413990801595279679159972026296792526169274910686477151440369271840058905171828821794289537405230077674424719307374090791632021163285602417815156759550949117749946600614577562104211030756432676377597274650046870788657072278517670616400276053312926751652048072165748496746231415456821437749871953820730759755574327213132260136721455296244314452071186192663028842354665805959882990284051981740041274494736693335306486344996199209661284256091379456269104638170357664081182978181392072064704115116834184689088483447136740197343079830268181128706516134878219290443084720531471511196980814171647472226489839491472687970255764402934406580009244283037812535290044854139603862065612274435526088723895750489058328666630620830825416404040016467110989093785907437117050129112926388218055371966492301981190352617863099648488726968560698044700094726551775908791945390896437912359621308167364184132624458776466803787985256854152080031675301082993017161158603065101596945032164783983918841855393588456011880509379500981867305835384808440706729292296088478916255574913775840647216618750320932635289991255779116427986048522421260139219053774914069469289016173326053850910723225305654619785026807776704358522579734570158679742310008374730155880042303875088502335268713908183595034298681846452822947125710327450569378331559992947680826984385425163591705786101526836640661559288862641953727606647131983501111733496847182712668779466298738619800901556954644923586596449422002713623251665539093768446888546702964800400167733487350309510477919696311134910170547388561273403583773003437958624574409921661795517704720295023578613465443292605514874016626087638746057097560335213579886643552275155167171718320435869380135924034063059884228344601438413689644772214286872797450704786671609272982661173851011494507011941052817773839822518808315430149796713781250365945464959740170052313799211560928854732049828164420059597240732454688166709662439083168227129711738061250889363150744142252360517114208223451138565492823366731737817804631491232588042888178385194659908037625510690184340154985136088831256482844624390285426138690387967043315090591743732434314030423537954602494271383208676257307305691892557027382827173622331577716589877193645198977464078713974825932683535172994485032675049623098057627560539047497486167307165496942578388217135867797419304449221008241200046796509733569940589371891055837209872599547591924527662821846817940068794039420160950174317266957009544677263097872352668343900699497830810242721091819706691403422562400433418113287671892687685012603334930421124122387786730102047517483859170813821729850873220357978564066778219771693354395028322020201077897020968285181205619973420001096578033799736064616223450085636202024821429791960467880073225667331438883072293553900215678742128875150327548943876660086637133874966205202626549682230141655532001123344624467049976478861778773001397706277998690838656136886558577370791380784171913383519704954913151404555766556391464226288313108195389745764618648294968149202157667117130257435093413485739763485708896622268364105544844200563097441075793243838029050549163770972264966817614864458110579969760722796401151476774734740196894025291159184576613983301128575818484030416153347974443951643601029538166084914359795419846039569654516485492734019188258780978793614407315475628849936236811995818825759289763133462063274780735492950262866022887210688220724098247577657927016548895442044758238923232056745588833489021467564753455875159789634861465811707182808490907774365754689409359685463624949008011607957150463229239954216185602672275241860517048965689909999271419633092882532937178130540755802740637726172182803551584218160900815523711507003146298536547698442880201828182095689210750800577899592397959974739509986559168499828107531454692887746522830223974074668970080774508684859532443437212214108100350632020675271918842662127965247133585753637511033408189431697212337836548384589514901164923528384718928945196124185463088291944084807320326691657354777542353030714921125251026239557471893697056574069132623921127394593433933019259352188136941967257198774962742530916407089895764081014091904628331892678936672377730609537367990612714228642097027788424668581063870029992682496699672018164021644977064553804378279494229446796115300733181588932144823456552080790881124880085430781045042996296744396809181574907976688405656493247338994361107247808138034520833822077310282973295411779368482073243183184614622653307833424972707318410898884163631240487840506147965428214995812323401070962623366704438754072224617782499788699266643701254148519115102058521353793478574489736589931157082228552237159116853894053551311074760967786147313705488857698353810057125386426204226674754832727039409356430282599688316200135793074696597087430422043797822726934985904991252219554999099689991217858998230130653744115567973562819869429338422169077824507334125682911868238808083296588271956630231048245232453785429149193040383782015850351473822116922278249097736914434628572031054683891396850327601282218484989219384117141989639447766766019605220343407478256708602563579203031458375133976342292446895974282916514623075204855467396309446847694530120051062785697194993532106979678144877711846366760218371290611410351978442901594721590774343734508953462996241136695268845298538844973073821057660957060315355062481591767372774379588021003815815968643613612366756674486597196768715915128329281422061168157251746595856207985284858508429697122825012928532612486358680529858233874277067761524094543569475180360582254321229597570463689816677414136669854944662327207505911036706293452683124785608789974241528442556471956057148393541787107391322045741765214983490645113086383458069680428732495391572029067252593640650673802230775371604753391874143585755666345982450679529696915828269304964437276664715412861090255094247852369887827450260590264948900490985586671877838114748025736911483662127730372681082089381463124326445031998020869833650266604507871382465959812167955907829103691361383485976457378529831132108060783629501087511028443691461387909127708127293820381008498336378924907389245974774511297388591658833412657138371527073977968376461612156630068610779257170585911374886664967677773126102732588014156510804097757411052124954517333598614247299924183351374002271979850211104532331426660102011383273734831656342145773942560598522946601498438388361196053814837853602741717498398333386511831027362051896216348857935707221784423547250781627928205829494513444019984979410510200446453471256755304728977488176910959007095031900121091052477673469143391235648009669715797735082870179203718891882227286290656091227895520329565691886775117597683145168642642730852152335735778951591141411448390558364438963499852812681965168318627480339719087813227048114830064419526785456525894086715404573765379531954353737849132710938561901551501275733525043250114602291271825785169003584462788474924350324462288696636595337345106599995462383146847141222018116600372332822721216086824717679822471846152181678270978325666263037806275284451444648415701789586412159585207047620239909202786035916512271031712469081794560195928387912361355771884555587546361258074830656325561358318362624986867359394568215731006538858721834782084049054780073044411798087825716587618375051055240422125261107238757760052108132018841497690450776664012540770794009137337775529861191966358015542849378670739286360143780217716446926785880300996467436310326315408758827637363926087672141003342353745521274694282782351922697059465075780925072818281968996042857585970868138213641956379577275873701798745401356112692976074372902644328961122870149416329133504006338600053868024548485677477996460408668171456428089534740473026288314814850907956508283637359119746105027253159150519252106976520921900386433036345632529775836004439550590971672115873245193835157536223149417109249034253780695739355321110474067685202520225386461523525672290943776377542712918680382084978704648858104333233311988624278855619309900744996037642400109197832843272731509284297933958523398862069696514169987192576412042285015105457286754857707776796034747842750776277931165060129466086309025358066706092988311772183440190964652424304377439721599165125845132269866225740590425157661229493159764692364889834993583345957301561453509752730944488409445083358763798486675453177027768416381190014185073551322303484703779136564662445283628362907421202267708385855850780232081511480851616230702805572158217020471940467432373029408678068093001609698137638732822110640088018178060016402819493675293729300368288387865263343841544571365374352603865189199640812404710513081173844049978190113655024255236922482993893878783775374671364490113210838742547713842658642785110074211997358311569648725392874134586439647277299516953293345237223385387009922948414700629410772780591851724830661891376074134499807140687728501384858849975145129290794175359734447659723781912066402497907792408987637645563961259234929417755155944396513943606089989155525619150730759121720515692329496961701411146698880991806869430120860982452384861264536218525767420662985959797154773061473295790580799708452674394428583605898970012434026870417114369269030096868578097415756125735744543766869711163750358074308959985307006301801183276920534472956386912552184588621617788090939269700970935125222000092573424423413491271726563686957578739107822393711885541000251975554901107568407882402026845087114909830553180577335385916902129342661678483231525676222501436370376128122979280162586860433312279020411374449211637238666231688980896088046625898836426496636874166455084713388678679172561983143538736200643919394061566717454074040357031828417868096254031660297821719514318285187491446469734818283548539723615878727014268296447379394628789992288253966464368179065357020614770419622478706928656577876012602291803346106579228023621038719536235874955437387151065009142580668265683018861337342689731740126926963025330694570186198396627069635498791296082433853538166234632995239968634144007239112227636050156079511661160388202612326633100325428307276244008241146423685848519452819492414152661522726888256467031114167061950272410291492079435680129529054014477944045887368980913297394466567112568254983896110311629020943902846440322116701414210255446899979658229177065644207049116713128171945749303807111001354978003371323568834644093126925923114988985043568536758112061366988836333591604984514820581266072933204903534985227935216123178269051622122755631506706510332966175262517165928713419672739692362999000693864320861745645465251744318749373560626558931334710883194458597813023169287422459016541455844270283360924854102979617026280114709207743840617833252268832943548515538988681920150147435375325329530682333505302527809735661439746000978908739855598356727567559131612643697327224242236707426326601995605450797439030809824382808062204362729776820131363774509813422391616513411954534449655810822338370333947502138959621117739350728214895480933636425574288168058108886779061434422839463175857124832372468206535756763846983689260276834212419890105416913015941717406061670277141206227111002938299704281998014274200083762729914576542321241880371229496709367336325550323550854445900371119398900594360478032002286842657252464022974932171796838303036065408935019072185198166660214418981920473908176539058476205776524763520531342599883569951731347989673462428529029425430500813280371907886301796539790825538840873065579982991067435731853502209223121598588828015829463785240275996112669534431371479674923477661549462382371378494719863610417253403034049092262391322293278632063917279986369298992186772353116796274418864707903947316409604025186613622539034764270786717834507553479499608028004480630615371229510395933033380929764383221545344696252093514100053486525867332873812128336044572945338130628746266271783067977432606628194441338346924320086139769749168045159236410886353589517272329794422566715742058369332970398891599588835611089179242679902301206025744566119062527442665355597847055877903212548327093256359741959624291637549417894340970024334481848319964648741829606159337384262407779851558738929607650980309645293517792908148934012934356136248190571187773538022970761304455273262829989705309156295142696033349266308038378209664250315739403059468946377041094486413874625635410018532850004600464926647684501512537204304527886503472412048594391864675762450706722838852627438393812261464453694568010173680588417888900872250365869666125957514412310028395524880090958116021927571565800135623272120485270783656861214839694848658016778408208648958526578174362414380811801336947811660403377954293255342605522834114545431951938712098927261678272237527760922599427428277859936324103345134044543891767128880635315125146549574557113547732380636054386625016114174000357501278618992964021061737631725877464947713501513981062402561671623907173991585890138786610287327297209230596613282879878614387254231654766014593209548478876436914656420721863973774825415157171083364004682807107763589698977609330937498369101331187542939525425161653234789907121927536492259106039744703717945818932297707850024919353280092417000410310897278513394863961573383603408946061224549374524102987700972851458047449398075223147361896158441334107573251216726130158662185394918789013153392093755417757496294831901126014568651807047826540693737870738577328968461741840102291593470025034055734220876160202300818133934254907070601284360325104214488944331394734166665738321038019511006751001872428387892636734077281992210091062624413510631782559244774507707988505778175588880028813347718253136641331754811341552863236152448593482153683126793848632002306137250235722322354581073833480443549206906520065562820253731238125374093222178432835156116360206532337181550978057016155185701496191999086223576922006392997296075290768294940268711748572208438930536369386610452268982660784676883985091706127461028145803086717731325516280127651676989540826004120603379292872521770224715878919311526673260305987825940509651909683933215949687637193880305159358118377898474717864272494744210030161986259000060664361378590363657892551699489167666546563772039629469281530320754419537951023035731826915704609840874845797068150229318023145206634787423366812396528604685625068479259607001565341894920659925885567331523591266815108184385254146335368004410379196892575011944341162004995694693931400685896429420523459471303557323494727393646987022221660443099830470310732382033971316753998736258193577312042260702623162249842959354283662849359262506686242554949625067659804996477609618162258660220859659433922860689092025372415925557755609366382366135326528243132279466996365693450146825477180035806853994667507097493045119497250392231008773792389868897983461440176203369619862168407705026484118970520752132751784722654173221430058089287768348695841977493867358362142071811802802629274693305862894675419397831759875729756366443325188671548087640193216623593351513417168995665112165504851415526532992307282383875430942486882956844778388687909411724316848803368305175963489108961874418432035478696381648148602679017936414609566808767444954950597076250500844072330958503630152619101347178938872590052254119857617473618575452000867075850582913581355559884037241888765005977547051560228039569262554259950518907794809646370261642061316679401735131665239885602915182484157967501647903982324722954121982598131893649850627434701523447870695818995892331808196554413596143968041266736373457584409059171335737542134841841188795162304846461765130733062603245706915751767604784624130360504710324075073580991930054769217755052388170859506269878660704792324982252560243169891984568690061514684165869660277821847213119428111582652707890007690438072663295455303765937503763948764256446608251967653707490211081711907090525061788129007588838261990799638015380221291014521517472795625776835929859537746122902480770601361425440641789850707703778510947181151915921689850014344328754357277196656470212798708466126996684254118771614053257325427329780138109200611504379496501975168347555318412645852208286709898915200922869639621208124755302144305510661482902571190747134385650063269404687490631109457516297536231856839423546077387463022838324132123418695356387362463212581647444779408197665143862056654871400285955372844489360790170569509902900743376980857805282916724876063513569522660014085253372729480532435002293253537870408258286608783472925814181508379919206407872718557637514285099741654432330777534388961344364743399799657897672090792454156718247712412666920208261600139356491059182812728384377944844249681483619625111980437523271225822925264620435838282363614645882651520093622176130711336798842865985414245559807825009989214539561389939969344068625865012140029440808461294298715189258517194951888147565689491360720216560358313548371084802876604247125970757138532938373536106647566291173924037056617911070187290578586575863836763011561620367179960843509288164474530464556968004510347360594200428402212609006568979641743802387637641972605924087313076141020520656222643849432223652938317225945442110226418997563076581679274503807374772407837135427707098606407292142373611983487699377274472394077551019640243004534791873786684701824914306639021107687809124526980352573021310532948115922336898504453833821202964805791083047979987670462294298686636531709149899281986867035927985070322710614850908045471818846003257190992973385931537153375349736329876972187113678101781722927943346905542723933518218470714962053582721165526368957327933384715428728997888527079778460652774437512367698643206705616160496315636040207859909824097107873742075490305426607034775142826021578331461346602122141469045356970076599849552788106462669578591481853858982327470829560201368087553697672131080352452681250693370340499790855621370963817457858201994602565706818810040607990199339731094269427540684626529488765465927069247430291470868186636254320394500305689349208520996344673668760445865596619747711940469115867024594638986809245287455729746172600187943973033098660170450150369156076133322202601350727280847747142166112647686884984776809668011834783409148481983419085356285926727840629965389330429715620408176025854101706673506059275824943094298756066949245996042152371456947139030742955164802549397230692071468668577435557509737017942142911131517755955294244034768067873693526051956659833179176515261697790659801401945757188033630340274404538113873620383685428227753732546095766808888499081750274860687116103598226688805080557631926738138569464261855999808882057657948724178385976363459809958856631734180518443619735429850447189917182579710449306746201220479136261043190646897414449741427038402938627063626628887953021702991195561032473576552162213664619227825077385862599397713546722736445391314554198323080428050797988636528951577066044802416604558539582320436382537296731879135495233813215184465885428923028550408191031035307251590226022145223171803739218924562399732218442508377860872048630006982275161755701189417232847188156688071564988924633569817490361464031165902362992898111416955884721691724250557747565918919102193211987303152629305516919693559294826133892983426108266475281345340352189764081201417429231864643726589311219809536546393206860994375504037468122717072435701004603667630237978671609096653220298978304117689462529956495191229223924255072788381011698725090048483587793349852302390725252822249260557919298405349964534196195065608606267013409129127059651716078847744745956043106963443662137103366242069006722377309912491503362258185300226133830114508045027532830512653320593459668819702355137153946350083954348816479083041317094074355416180244831337344373146786256212655730714404823392071705647675520283649903631230367778196526542347301731614226894720279530607672219933515607539402269163704149713827795299414597093739534146362733949185691343509717927854362790464633286720882608727367792953492618041070301595717570482934662680573582530711637855833101797153371115104795399881218429345316466417046722669700197103042466849817471476845297089217578291805561914811124133816225274130615197755928799168328172642434158469117166038404164989319960529813177075128683351384097607307459288966641251388156905048243270819908004756850344328319770978123544253857377967775115163929855003771961145188017363804142281999161973020705247528528543299155114566317734821647502991720512043978304413589599485649149945929322302040130949560700032136390609196267875090534116154327469937745048605467331834219458354739605840454086788773123241126871200170750215500571748549917215473644512461890048289918837851124381900675283216862536112979393750162962322019847688975049296604293485122555938551516033076508694311110838004563619741645355713612135611263559662668590709142191309292543597820195195552673957753109025679068524009404169938363698016121741878491172350809490985018063798708295369726526842381948928390154012638558839257334530860091112458940001837465210504229860351656880680756191760769606820562970363645952596282190482877744570108212665306005725520475067008346094383119908881232579906120220936658128607141569928626384626440027713384238201820839835912498158900801406208533041524969315555885558911993894532833620292346873081479460910121712228223787317277930234071550234539026518918667387607598123475926811438415342723927835516864432836270539069099359525212585236665872035162481456688402402686651886489095120490854754381883450436205710233342968426191100228880427074626796551358431484622890361016783404074467778371599652300688822118055628485747756990078727943748226387096787700468265945921994234386992879503510680965671897419798662466567857103829764666125857100383099580932863773242874514310963979797308227451202084108241729105998798827872797854668621295802132647407341827358416026860680075600560268977906622554235636221044589607652386799088443736729865102205073635386576854188540938310937220519669125583844660616205140428373766457907476659492293113029869452390364799426152647582643284886530098730635923601221039028793480825665516219068767194280211339532624795041743902105996623046916085902696022594306544293866640093642330149090759226513787380554245311090882552067808296832483918204702190328882449391731037821755819836608967680759050711048138485848250335455821468515743435394500163590017417312618229300135032365681038005518504330292717958632990511925246003340513977054583318936042017282286134563694635318177578257152523350554596969724605141993347272908826123348567525443383832347513042049332414784852336274104784285914055351120583046150159490459986829099489676074279862075981983136830714372885319020184595962849880960572932596590122874425133177614411661584955140070134941038075097752241098978497679653682421499716511365342934246102900606342059195647324083246090729933699001304960099300732472526887962806198095047769920160336289989455414736561896290999535002634785207664150260999204260574437611386666465416319468480156261786860168340689921459150186552290697884793969038527538775682990323450945823977355413825103874704458992058615567163476621311923936535951387274275007980567337607716859421334698925286144037421532230160044381332398763992855499474593144243907649712405180326078407519403207082175058836336426961600695359524992386835202616083740597751558495244877978304242648552852645819183763049466818746052063826454089421783383106467736129930250904529820756098774967842091723982950103145636231261303811244102826197976916782113878103329991510383994795061828506279988530768751780588395876349893436715797115687555327727080007383122307908337913949853447653431692097386477382942642029956437824163787219400978591702187570999525025541845190587858772948242192995931871004143643327040216935884642557227475691936084949260584665889170048345539985363463134616667770998587131875239538552768550628274395736277087104075238372878285611240536707181785759316241160877566730249822261171034079437593210455687745990495974531714173550997588125249105117652039501161369920839095364441982991774534889975203305242860379305430287599271586233006823181646720926770419429955627431656946058822640381978552863374858509932653216750877534757691931903052535471396255434925804125793821861588366565359037536682592386336463244838479680117967431802423279163780037805111598966304211256896614825977621183786827679185589865269526869158579871601631820307462914076272690161552837452224579762038863817297077007576997652174140565802802750903331919518404796817475332636539973721670359433867597859427834935903612292180941787129426013104771676670708863568410248676846456384766357886734184933032452588449722178565088591140499520019586803570779728615144386007400265507459989012942353518641587443650280446199073319164007373080803785072784326472208504959477040409953989710431496310733449453636394005764801990779010760642309021156625813198782316231357445358898600891362997708179911077809030601217412448901299429847095232065264618163338597428051711295721134839465384091987857268076191203477047248314302538030540453019006880296735974753250372649632083613901108734394601576819568995383346987851488157541824938647608025142266089021022223173771040210361365970528031091025988594893417109072392993945498241391130904840212098657483439981068447596255951325474164662335195321467793224269890375075418061901803524186357772183764946493952448196335298738807576572318652980144039102940995908673182829552764409605161786334505257248023663511655406269496620364970073711599155129046983620712498456276960048104893814949178534106430937140758933537793689382799745862408096638762248582945892789167648194263616602040574202135080083950991020995478836898377597719756898064371025723861797903085890235382587243128108902287773063913200331299923450215409586331427623447616862176197534889464449188383206140420161632495375929779357601196185900700338002687873469472812853155464389536705218489819752629978626224592937288450206417902977671747230401297255808204743179564889548501241158770408501932520523692600752860147026668149098805783046905197935875864429575336424382516969809588057395294534651473150649714111450164605572885588316355820236939849990024389483968955102167826345580715847737826863054995940371509901870753566248996933517304847055984524091805123407181463308075712554059849392359529868456346817350001921375985926588204869670315160260504325338086532951767890379532397471590541689081548050173284835031002108820227920014740063340935950448743874982601859662445048955711200584235677049736203574397641445758696817335182347509105163157376073129441941757458269118091349063526203632440165562614240826437405823078521185326550779830611823369469425585462022758535014829586704294970690012257690055662515003616581815323903864869539415336726376186642573117205819467121153861543657853925009057504545843470965311912670161565051153620928452040467072597918140410102398749201993457711138958727752059546652467330676197277493451245004506120082992427586808839243930165291727563032536071499262298872413012229650098800318543389077367310505616052244539462707188677452634634884445154507123831410664965018336171897708292839046703200232832947900124369139526613049786141966421843039311094293655030444554173043881394681998028638308833206555285303893409089257448529824246065062773970042161827210843888167809507209027506609605189097080018158147399404950472924053678600702130098386442294270447150456500269555018880625353434555551914445467992770062341316976259161767089807922489144645293320809880112096590534598420945578861148335464150642636412664737395792935093544260428828856644255475661576536119628120475949395736574321996654175277815108129018522782237134593298588837224113956052475043272363804557207635602640312212029886207864712359455700901497938727144944646173700570147811023999157645173549009382887758403948089815417747806787017954059912128938327493207577098343678842825906268314640187020260595129046054492324294800329244683887148318502946126328568965832609364679548764239476436037004897963278390460378252220284014764941965691261142234000264682301591392249937736443510461200098300318135221030723814234850578780008395645039220089007563062905447898709386792972362050653711982657608838348442691946513150174800624813170420476035070973223799624766229860745705979240568808305670599613464715056636954715282522819086677712900519035207501650087179375989587801987952826072139987994892376343271526238432884206700711527950467116315771098427791133939574579922997158139730518843046795616801818082866304519198317600645882531743990397900384630390098397349548481025309528199456692947674857242645749938984382247715968673902375951779670144099399393763122823244457234623797966109181757798759096122997154731006712197669770151689883846784682459574705942428295687013075762257767284354736181809285307942319338632140729687937516666709539304817455828131970326435202602535407717015316584789593340017179008960299813121636123161609712500447672649012306410346241739867385766499557763773734895666329731630290135472367936489580723365615610539168196788998005551134784143297915237474896561816499566731874316284586175195405094399570376727314065738064820505965547269611943240611187151695893780329477445745512463940156372656864475533863277989547302571895396355473980888208908496919881870684947335383990143056218493988017625606342738220204139185870651897312944270826978975767181152063111550925308351865239428214590391204041097123987488442344117988764311688580159859753098003781209564620975849458217917453625506357341878871849639330697345892260359282492466931038295477214346037732063530035811847851298584871005366171154981392106416888206302985650359401491039498589984494597691095140575761128188422529151281941505629322230114353271005832031002689130888274495433344963163180961524665528340330716936963815792327966983870551380029198936180927415753012646190058153840591963951098732502991493422654525590079223531233106310242200123913784294517957720996613068420577281302009196092323421079573022059862758821077967452792525597718526809054698551691727587432296519065189864867522766116548641492967032808289264361251715028779721535372810151195766581372686418194760276433616112021428569088304273158054759149429044580526836217912535599318709220946710208829473176758708256002386380624084185813306114535025230112944288541862065110795795582586964559341442108108000165128576205113814443396720795590326165892942584461333723858670220970010329386340706907108663537262960574814388501071964187394827452893493447825512018909637481841626383623643607720300734997988002543031805343343489551298203013555126254151703378803480569576437578337907357138539586336789149764240870971243536181646877227970639576769445044700715803278551999418104917972788682800447210902367476061718547560861076636332313177881961624113463968974768224468711185928607304809742602806934296822624545183023371218306265195662286829149134411202696634935030079202159131541733817196647580926521056781661779376971808450158824173081004931969916455603805107962739270096373393081316197890578266334557918283300344672184471712388455426881397968676555169367045757529648796647767560312811110003162782680847589100348660249166196398682151239348144295159693737082990379837229583721046743998899643701395249587987631872395408205242884703365646387288520150047978057748385099655459763649130957335511708631828905768953038202344720923031232243180416995711577374994510239506802215857061529914114062682363173639233788655419696273326642048062526596651638753185639677772048778846950999393195094854674224416202968525592419729353036487725267635039375335360340525007444706932293882968932496558021672940775215289165757059984867921627130857745825619699787302306105378458898524834552569710160482298301903587523602502384202749711223202094805464852298858857753708262744051334305812650615736541922302081576987052867203526930314166021096467655011827041450126970590381821082752757819849856198530807094722767289760077700572009825999432236508281771126219166888979298809917272784238996315726925511764055148956710712040055310630428982405736988289540749932351600640197093471616578609796633387305849307884191094487995507010009857222367009372998627362155774469479928944952373078746667505244154990014874718028533068157295600745307037559984886481415994738271033715208298943994192272726116464293262709456979936783990550043025593840818900286841901521678724361113378826425386640744323358624082701750784061142070479304567629405205966702884010485031274936862339287733752642813759903118898114910132038362227457400947489899152890606909454127914669891109487541096374195497720203214629109717183077752622537046709573458716748034366667330033278175584897990988462680608047073255581159651063729655300544238321547454037050299027581654383938549342661580433238290999676768462465905466322585974618722202536638929507484099828299160909358409776185709256036193923251036592164856747990752351386225341213128625473796854528644155061716871032798201609243695399120503234007875758487010285845731579505435648724273272748128783517825140826129705974796365051613574768486110211488451909976216659953719541599764735822826405788767339382299845575787202096376394383701690327417474244961740283577397479469556091927790616397158088270725191354833021343351949821321416873501132716744977326875663110015114856020602458190679878471057491728239504292452322498484506021670428694488601619584239544018712175292339497906317476212981334553317467195687388974599661877756547071352257790457664281765121001773912660808542061023901446239966192619404409830602934014211300721819653456506498700205515281073006924003325701872921236421134785899210965759201012583718725492858304809354582534875902545036443057637503795870343100393052575047206778686019908011915497225088084969313966770154910695455600349288409175985202724303184016246075405666140139139686835249478755610109099527888942422531486632604323836727640889252108354623921951809970968408480480809554317154483389076452508830256150580355371193187091183086203387960583396792159412290322904838956918050708881861516672520657398541164415241044652744159212485704373901523768703062639801840919680880969572894532054475027770584016320723297575260898392203502311723018924450822131111914032309943562249937835753595241446474562290333147244154614507126661143773701652962314214956994345962456200323065982723235456629785110468621587662568398966012889114673361586339770839236527306482642135198853337866247827987655601800463944693842759393369611411389059331164010745540211181961798477115072333339114333195009647782234149401874361118940940610960832552557797275557055621461375818430496557742245702543456539760346958426650893465506573332409758610272109670494837923509281292958518351424466419982811376783192532968714594335435450314220742019607907523092366301981492674483567085296546337193582341101841687313691452593597705432251476863106554465527504611946726656434729929824639183771392012681448896538495677032107059628404769948914291437577262779355720040893059902150912537970953386130548478050965655807583977986188755963972933211252631376449323374346004442054266634125423782058261205146607218166634404997163202690185427815880605483778166736282441827366201105130154985266023200982540743428787884925331544525700146047721943953497323649420205756847676095534772732521764511759717011100484707362235832391678262362804373125711696461264099956440162245544100385107259628902799872654273376417213254557691451272479684510293840902308867696654247589653936446805734974210882228181266807287531324786176469434886521516718155015440717896004252156506421749669247184007979688431733791844557053902904299365862024860235893974468106110652654160732484857504201578734208610861434666222870170751688618849237154387996779368618634616441797478072921385357867707798303750800177368665960753204207621287615517241772992123029763750679600768660551585211347989098933987185961541250448225643249584177079411305252573706559365025952711139941939221031363034898310628060723081782772554095279167692410291920046879045064866838052265639134733816913084637110310022292949277568771833248929624797470150565206648728437719172142590937809025812403976063313048981798145495186583795188547767160350186089488678613602515779077503097180519613703589970355643570309334066437585305034652923844030674175948618974430247560549965151254077933204857358893459830022431630915793309879306281869554882248063115684037446844610268650572915852770479839249423407577687468156283114912873601574695262085689226378746761664995470742848782235630991705456271237234593567339415313876262777995326159754441624480505883203632046195429980752603653677406500226735260386827574800601891225946164693407581634618742217496790683132451498587052231005578796263898610200129648742942719404957232238496741873088633941725914581012843213715729013357055311664879387104385471932553349559535775762213407189314494306524846630545907161396010571199589515278223997758566810010567620602307985233032537617487973917231492244772306818898468898477144109690894019892503825513781699092339292951757152207044154570035291049815753431519567121701630954556450734100388674838207178728994273231723285938033747241238385153620379499395050614922919719075054208793659099966817993716869765629922747269693603030277519012002629135134867051091165761976635720327300106085023629999486343485490972295615182628975280654705729918018605002537222403831681670338830342826077431834078500184097919610612643691716020519897877476574938921866411753281599717326738392634514661020735860869614478572872724700202720827801690823274367537731741063743716632275769426286713230404393667250463100536860369611289252448804826024277400024433452461737464196165521235461257585770192543544324959828646985858857958897588898094045346237989798196048786176369248254199172035449084273723218514005250378251007142274963026177162397547953577846565338584206234540774897315460501265537471808288080680261825421447230622110160307197286214450234803085146766858073275766108402233575713287679139587994782663737075118480625126631738379556222899191790422610673292432513940387453721157601887546342866028625596451915711759330678828891482104512321672357262311306896853987762456000451960077657524365265175211670088793228836237170442360519041432489742105724053409857256947172932427181758796626109195797093412877408140218533190100018664599632292057480085456213711793434457030836053404860522954130043396351837264481434663304122811574496248252909942762668857331717982608703449947201469470711286020288724370642876880141370625728953739119600085716860441097350736861575741939200219668678617896508392653463516692811405463252372574820988801218042188733232645614602146015978638247974715560071622155634258460743047160985791058152622202151343782433482563555888542520160694809292350473698669581928685653454251401415291730257482802085088488630614805303768854547001074571433126325551530825668048221903767830032310109543748155903298877737915318712242042337164430790015038617845928996155971798022641232236829743254266564105935153623134470487891772735894647469591738962026741787088409048215101185473226716959678193266260153096438627100954340468624405902991083890591932905224572718924975515873562154402124552329627218819002031666992299556161163971045088132376115245706575377938347528490640599896451985250068683967057745360673578921900983805648606909352275107065911740849656363169886278821552214208380399873697241611622330648223975485524292530246058527326732731532589099965891018437036941106614713228329649678632175993262258055635000421143988130449605869043577192826055754543509795062300888397754247060488828180870927818027228983283018805219559035583938168479146030345530802577623340189297098595048042500427589610905741052906348594710226412832151505205371215748056525588979430479785357482195244916251668839204944226470507347392327036062089317020819112712057002644190274763292337870111483413827686406099129599578877241539638784393387085871640343469394657961127216579644081757763969471661209798563349745186046595947871922788756092151433007457853030963173089387992169342051319267649010746672975856384218116296240066952229567148344021279876510262524544751051775482390462554943636045897013268288944888407425691274903410106097475999140845498866565535487929429465997489436014214531223593738098768163420345177304503505147278311700505452754522092664644588897894256085448658557964422427232105894007983858334371531729922219547495406281190042125926648172716293509080651590822518319573355500790057698854816096232501018395098620276027563630717914072647712210584663723418879786677388242781864148791100746497291477987803099047015552705182275622767606983031273018979650778022142011102336258319286795079873190193623543257818153051031916356829323045038579923338036427854902865350391201483045530041484548497939407093941280042925026626802477003098158377856562341407612507068272785576040117939597697810122488328105496512309660670869401880324364427772503297169717355786386092256600743851962351032478206229960925606598985921629618297163825568291855908368981082673652620047477068819512246363228449412060755412668184321008403537060560119682056095295238026418412006224699743144516171483821862536469862254953803265641585142934710810027430636023545356289338107426611698052693536523676270623194038899622221091732391860062710629776307966316981099873744571060690751781117712337203082594714876807002464894671580757361211707920244515649351148270732577872152912215501771041800652441630528550259486137474249600661013766685348946428479065100967059299476157264163513714883621503093830558133728672783492674846208570031789083768804265373845601274181447357981221871828224342458431661994534645551034225379790660605353578611617768976448823172347843215699584722323167840473215485499597110843270099193047909245712300773478905546366142359394745098332449805680135134277350879458974879113963811351732845248038623885031592325524000500417660452034963995517067021041756966418911560914123170743636746407633327259197061894489173879383515084612528192484386086221565280086211207361117637488692745478870874954937746175891728314926479376533511401874718000780384940632322673515014979699058745685177586952269882617759698980591318966036404886116015510604304210000721422377097864510158739054383444017336532465361349878392605038442960774152127750103824830433141333410466593331112561975793528117622671894977961473614824500554882535371854096159338063990773681040901071243229083570856267688834075591822602236161678964901328374813155230538791274659143076182344345696283677148713163872528098249959377054108047440874475528077218871697393590571188047785277549105636447990372313883495782101175281098198872921012132402810240823042664437290142969159730236808333240689010002750586357090895222523920954111500413390645532029214362813212442199126703649830365367086212390023913654295476340881154407083901512687242279737550162694377147937904437626842698547627851312676087000810888978764001846412854618479057616321814557858500078704407112422616855593143297652146159332696761412569444632836561000879167414019495963519223894140503012921127076286208345580849194050533142512030424031369878551875680179787474476638323546416001428519625760224869415118605981554371661614050923803005201702106164937610567199731480632826075482887307509009117719610215975307733484370744156918685539993316492003647161820437970914145574681105646568462157511214674004103851205189670278662348813359412227104063694285919596924760309063833990340376114671900452714702752413721710361071847578482265375126006069384991533965647119467617873801429424176046386046083383977024560024429266710124123497087366706383945481964065957797602292484814293829353440256557077164346693812083851693622870002114110294121991355017428862813238414964462755478706359493826184023986143252165791272753288345308413365843108307374405514420124409031508161997800617805354567380814951990930460291086255381467153258504094404432829859712541300607835522386470200465227422019265240716475870212504664593602677892378157630639677053090104868827343754258680358992328117195113165735716902894694505804268678962292431499128407507279430447389721564729942873265054318856225716970483056804097969653940591852506312096216551944711397493874461921249444801188678663941839802580717286599564376753649603385899398988700776068619177644929219482758228670518642842367955219478069825925939118079705495371725496808315279147889153695901162152363102278781713343880529780586251961225509825915673688010175665024558832019747611671613315261325872045382170599066207693165890392527465497053157418672610209054638744427446719506363625619791434808143899730847040000617042369430387272264721563922633856147399675253245313554708142491310240698339388752326865197620441475238409635262443303244142563460298984076800755379735889483510355558446626696570360823664827412312732941139297745885344372086427174793326582634153582472938602009354791513758219396282281323173652155273405463700456920096697655076628343310166991638125209809409255425315810842303820144011440360966440666826260579389370008412936534178091440814560440805934865908050569463552519057196952812595267808262406009980143008283141520167585462248200123963414786411895859109564974387578362136165323317241758575021333204393276596946256750542502001742309726072525805733144230615344639969839167273237017005943781914136674866336068441060609756552023945582770112932665046362118018385341853013281066086059439995353468044728035661081764755028366476662228339851710583187941277653799107259240294157581350686113121176784088915601815211611082025579412947310594529017801242787623696132108474234016929792566219739359181740071783254101191879140882268149555805351685731810151445370223837964443011403678525018256744521397853940669213249535294821044184135484256923066215942087825982197330564811381127793818410405366708247927918970174700392827681814686580738942344975939723358547812355732751187174382778879167197041199158318145823639010102493244785266744783588813721714002808277516188452027204855889685335509719208146396187662264811971923769954397268093715825906853849290738698917561629961852578645414862691307512386770824777227537099062081862343283378029948479773214750306714510855064502736986667057923536658738456446794157644041982831288612928098330246108239910793420091451872675171677027107001118041825919520907534924777493897707270597189256528366393764702041605651059805563567619733908865792615089704537780374950883794181550255002396784567145688473962503504958097164083737357513094878829046428298167258588339715458058598152742223694957308678140921662206827200183101157279475915125278985387512476102347083788288061420009698196893530216095683570160155285015829111125817407498098395710506316908111345112681914874141194670881207714628222872234544989801989280497166496089356381362726117684425670910534022100244903672478478389822758012291216921771006141013642366655137728653773065731980907479005908422413744772558100490835573156680844333807444659937285626684556637890795419923084715247388360197080683165528369257616196317121991082586349071143211431359771774827595486710737427808211743905587635953499205129347836636636379255704562717505851396000456147607604961003450101769270803538193498030225387274730509825466150716899331889656560410863499170156993874822283061716467843342972007378794284669765380193972711938277642164998818391880120191517898172431486417696331585165111158117676036909056595057516369658054129161794708857401208612213265951273021999499203347686115397156871261455301483332175856888544500861659820074666855352792162303867080720236873519745471153027596408835408264516900803868904739186246887890841619665455140831277800946303199553591776751955185789388017320687411849808852037256422540322244042880539657786527262293198938893157961181391109341165162920288737201467096171570485789960585645558620510193222291661317638732075233832451365558493107039828791670197924938869314372640349510002947089341937249479726846225909517998264274099622623539816950732602071161303127672758221711105124098654406504473953192950916965000736690124805060173910554278352526168632036809991906273669491183860140921244518798731162776544245644115093052659114107015182572516602860598434770459779421631532240451791392817066936909427097870352598308190218103494036229420146471135219386291698422826250645730590587404682371062463778744665800271901280433414157291593725216348779393767662382677708947846351049488189403064377254593031372039273585753720014979496709648174169468509332033177636466329133183472968046283890102692207630774841333929432482104981895993585215440726081948452857182581593027134280879085911642811312172349535530314824942630514644570673209202649800752848011520198256166016000264990043976617405946340791693744244898124212570642417969769055032204710942257969929685574023680028539540424652354495468543976835581747511033935792701706850795454346188978840095146879929419623400840664133066404933770227892665297129985392562950411158534603708253839337960583713739909569680716016845284418593634061504529073152376881610040638370462907750179575866309838027247085318368994511265528589899542009489547766207018985111900664414819259021309804050558257345146711748838353258646639037124579274140951467221029876837675155645095107352911548686263208152214014654754511064592769335838108983826967379828483524869503034060227577708863348752246665995671992131605934668303076507856426667988012517006420712293768152200864507228629186524500280692818328586215936904430400945767068463894907814892356789143926640335928771534426446512029935083497126170856332359346142369680913976595030063111718842618280379667570051366567230763200449373518075329310357111485402791559537938198087206653642561101990355051156806367004881189634002878395808483276311159312982987834653734983591449605611749353824561642703793815935234960315967197430153352486186227902464002586274202323988780210654815966198106095837368260355775446487921360322972074500189010871770514096007722868222308562152108642592714462954111349937692848538449908974026452355272763818294975470610747491549712425014077392838261738464212007961811511820360652785723061482700456566707544058614708084550970889251204720264986081254739133145812726251239468078359396466456183185205727406968925233281610075303802749232523823192784128535477431862392809671766985165025837103069974513775141950103147381892686795046464322508256607774175307949979633707534141169870957675080197629485921365530156477980898297588643230104627060785049320662569246225556042127301270792104873350330050713067011586315967232098445345208567578831391530147315461984565344594410545628778210914269108876269009746636690689187442083836910709877014134617918863230902777229224509440861321918325629995913043079377708496314855021845905449673778719754780952602221706054965935444613649316212746372749517857204431523376849420046868963130174681316458825741671151478506348836340106652625613058432389592478676206826353801654945356501269025316618736264381788730913225883762070650878016142700654603495550400031796106034939253922517141752819587682876605675985646293579438174908899547304807696651580237004463335639895101863813084022161791239511034716491216979199008174926560647165230165337615102098473237424695587461055399246583525912859932520645499743301292612326387755470753940540016983168843202583474305905910494904416839743488214409935799561514150772430095353630053743654776823512189249938960336680968114102722432001397692662104028773179831294713690696425206613167040112393568470080444953327008648095409665871647475894967310583041055866718457606990599114461808624220785532141739325476133539209881628272911856663912063718167352381582848202228250182415011383982244078758676344390850902801589641087645648908289539233440036857182970407202711900631392225181028777565191065934527728813666325088452263890030289472971932303286569111816748086832954575779910430668247622976800128770578042533315083427198750189019136711863502785931067830022507037094938922623951713456063126444304138472328793024469881012006984165332020742528904236338254503167397860670756393462480983897172852830342128890907623578583897221057164320989993973276942365358640290775494643237707239609084421796891132427604764701116681703536107010625623696596613071974043406385025589513290311112950900965877680185435966907028429299761272087021687087436315151600796515641131784941022506797941715777524299471825317343241981508528621337402559891106207567330874104270341245171708941779772322438057984494632295644972450286575572262704138278049227519053174145938057663272841247574350574498465820824633865791758491442913129259737138348993070501115068988154874303775154561820630043730288083735688927337904966691372218352506535885062941977556956816275441266345537890062338769764447868380369927742762830631751173861623618275338244941872181714929476360598408611250653651145990828882747738191904971057712943399974651770912592095136918724525888028161123338964883483910235244406209796049068045985888475852834019993999893557737122594356385886465840340165115699807506062820973116191039735441498059186499296327783560005536194106064349238047874150812247285592849343580798602462614014115491353839614073324317303005544978690806301944211838135074246981608841134932282560622857985945441141509181084086321930701615120052489226585187606546515362408603205396302332440880074469305306909087662347213785343947923690744775461769789432257549873456881427814168563390154004670488597735716029039402756548152234768805671198477413146058915861583696971303155811148144593200944238247865946795364014925519260456787583419213453650065258330029258575926102052637474400355066115519247476241759650269821986984070470877313612442335081443359755553224245052854766337155441324940901799367861739246703014454931293752128693631249580332769736604262537529103647648631758065290665411806791643450585247793054943212518180054467348367947795784774173635144042757617530655841728173506320816337017468614660651961618571677282803241125987201140849287489962730947400138679297068523041573197037489567141909633447833217230761430219349621077735126187736642279063856419176789370439952973998596370837565817907649978455599458254761244694299831691183975499219166664001527393712769993962446477749132185713977672783881248592432172957242148072441666962386138673157983440525876415046984095666651856170525072697656853599938292231946617654569170175335034576689431156436676858457392024008506989206030474524930407586028337307889871460619281308173701236088816575092865407722833818029217711209446352766599700974835006417967999955275175437373552253502171170238036062911550139870183402209040568190443011918646364637272070141122926988282252583911003594102952195030694240939831335391784571779300104367142398256867632817119215554480562838463011405249741743789980043310502615654555286354665148360031495911752041160493388587594580843198610083185961781998135828290630653604248591002230846099452691039519649955785665500062499668303852746746792051830619042001055054798843790902067546820427816806502898057072823105242037901626318926327544022508158925865624609762898365692283564513850416447443814895081410868070412038439740610684774554062032584094812504739536550483106588260019991260069143966912456893391684133187068469670328623283993711144902137420710730424915405509588627060736227841849088041392354264145854931664274620428378753294424273583031740844851795513786241883582376893263633334167564234208052510982123476390386582243833636691333012444816628445470944849247818447754151143996915606939132516202627127384856747254159720827421540381638948901546088870674221334421016999679288591443698154040078244854675581360745146990280971181327255110742857878692580425530009122781672597643732266405991134157935128466573785624092117226015040465429893050338221414251805607718200365281537473834330536747010877109612548837444019757217201674111211772270996681712651070574324525055343473487365243499114722900428003729678713177532250686030883502373391125823635583877579566221201900020693770997002701028962264627661583229989842761398857346471851591015671402115065559010137403337311708139375495571781112184496632730582917809040156137723929172568220790406555018638944348928777701280524973965131089035838394228178089991625556718637073637079033473928683183527697400343554198574240270021503159131303693772876774280820484752765721784623045991678373063390224361317165141321959746121573318660616512925108392264215562156490170622899415992875356132109150737207826469388381528849461534651981102734330644124679841240392463263908012529269609241868841028665541728681687566560706940709275445154456222989396991620673240705858684955283965563272211683157155747863426705119312727245574154457688340347940976954397187243396020985563834592525971031964003225258071476036236374888344605972832172355576623172625418188535004927040008408185306617438977232003515917719846710771425221882102412327957793484008721220859632588285389878541855854923169030913243121978430000946656745888404657646280617029305136990721672304534024394731816637112490273499030830635952317171055927521995124732870831365311505399685877785348243588588242540230523671130454028393570799318778680438325077860214762123507238546506895967812932092533348923220992532720683273960972369973591422659351964908153042215941185932029127224031445278708663448639974276382018189309509527554263738844812663762154760620876412746227389475745103101178263707067834959324264231937144103784675195429588635775156049422009032088098676931343256009462130393025868898170146210657975269039583189105436501781100225949899653582496798337326627607495782472692040148633388166892177599668282100736106820892365606094196287865215354683860641058002787006813198487722894789113999179356539913754935418692423240151627765414088952112984369755768185360579986996404790623084311106289501753369596792717979974449610411490731754695510492779120927153369199122880813219771416916209723300623132919366624147350101939871740417501840075731946057288422822292293916981618137981074544929235752554969904590777828498095317535857967547737635314370955661838606018374401127061424618625639234305076931171570686037886953307384353375956598751753043813027384279154124360891869199530378479936636865301348167221375314579250792388972776619926436208655203717183416717750367879179270247652420862822239465541201350961764471350406109091976147370099797942494297186420810190148672320327430538920925069038719616047958039926094833182364503257557906444995360655362321982500927851000659537235766435298581023006624142600287904322099268110234283820191406741157708962816134387551375113548024367190003110124901008026810804360608122928109052790238119541856532264412364012312459578098084145713067304447932238183975499123543001916528193466757196281309371006465943944037363217551753357400040658100374837190831472883326103588854452391584048403894174806117096827634415049012432657708136376687593660756705177702086628282389537106516337423109285762629082241254932074468460492980777986596435791622829821382575713568608384423167880812384041309636107565728576832505330278678893700396614782097004128935752609474255946902950303876322867468375872334280621370786904740078188824863090796384656287809427345852024259813754154629439381784040816872311032538455494902974769420891366980954274953204691420271523800207931294311503246870737507391521124941166352782460993668665374142382370973880647491036489226024617843304951516900550578627871757568400275402448125303217387655536814897587818790673576109140293108059082156915844962826443489208751921605505511047814691032801019297030177653125636196709939707487623295510429319475039785794987666585124048513518484368294228617335368016988610392931013920719252739247444569087270921881645768309961614270215117179007854922315359807805728708206829885791111695839706210581249803994295904726955387071573877583164074999135334933687110280243295529339856248892937180423752574776698591168863147019379125895521640590501901373394219240491325627656891520835773977905555007486090425153921797110052676418862837468176748918774246538007927834715987914301852799779668944307481430989171449956481772602543219475143958934592569748403587041734679959984186327264790844919064616449564655636106372993700644502504749953487087713059092870769504418413012852753603231196586305274556844784482473492248970991221015654276337908829583115463661724415965387212833195534434826039185574831466176287597088529689921221517609395741154023156811592939268557483938747009012793776763292692236587175415324513505921380321371619522741244870820530164853039037568980042399901087984577056515002945829851623206122945479122658703706028483535596822700186918648529267880278355142489357040988591863225122555644255534141536780052771343503997307093561269199629609476541601909957366226549163765599963864369602244722931301675266572108356321585404094992104380653285508977507165988396299757533306260880267006659088504456375745653543874401095605294372649222236165757492528085929602714254129050387477797994648596483307924466385151700792616187420214349607433328096876439475891869459627435128653925971319182623379538322854450810328218562544701287302078804818159448720039116006432029206167072046091972827160299641056966449627290985689117824486904768177215756186818035139202900233521222316427014218385870294302143764626133965791474574768115389132745199250252876767544232634818243386030882107769128587029254304091606667917159558611588461371523929511124794620202123130704830819567280607667404087207742584344184368726947857048262801652684276211512756612634736289164081858556309287322407627585695302283134052280374419643146524186798172112101979211138705859024608000207181534665760975501449137701340073488867660250806763333660269352078830488853118948349791790610194562228082982817686309819971035476028951616648813493201517160437626005205465653092302420367308320189252431981644909249105636033605217077243091763725746073502893601815649921619175805099490727048324838271511387700426552433405378281503979210169025959563989585055578189427991601439151132399193071408180589854211836876626426847706995883376464835699870169377805357141119247502421594285541079359241398012897469680249550058941235017457071109375300449304259222116091221355354817810993991965293044605779257566109072745935886239922626257451906284913887679949948793944866556487400568725506635351133069777888361384034399068498002472521546560211898848469900663539946091540921663666422882994093604393738996448971760414674227094854368087540290821134060458595579088715585928244713839048073752819403555602125223989427526890575653948704649967506556322238784849628261091189387800926866487819505482134939217662988287259022257551404886827328085006080042979229882912665578040024869621775504279856114048307850356357384382144503615307904117197783072559836308784093299388411164612915044121073432044136127719088729845227053778256239274845052756515460167746731154619461387675514881520233700983936837617142523214194851956670669832133025118914809206973999848322224354410163437573486048677647255596019845472293830597186542486727589734891279634904934430770073560298196586553327091685643542485378506109175640655376800554362049247693887400302617258999085824134738128896181413169234546926203409904755969822665666362510952846920585852058178118311395871335797229686198056140541805399074015587483753160646643424999965567608590348621111864463694759061684341245137613092015516860816385028973138420833461691099758838106397306981727523352163725494684651027650009840496194898092558487261536277720470492965933198244024351395670650647215612493521985517475967981746934656039174809511777927668448555703079004711264520951731006099435840992861988700094709154532934473158946286203195825493061170944656952086116322851258388929284185941915574645675270680740170461259117873196823583371448237369450414238200359877409982814557685393385754792443622770080118276498658918274869292174868971771978629987416747618177266204762126958659333054261625152788327145805543979701591625344188926897639597708192660948383403540120071272734650158679043314342938176927346618611237345215614950940553213481094296724535530775764447020892032263810096188097332384180215104573710487586646398991814166718257255139992027137990148046067044745752249394178849175640986878635688702689351654479455387573077860308629919414121755471621746969789299125056832530735295571024141068863275663432560278816656351706590956706515601542991742307883382581416244205113310177232005402654239990547704473562159214136220584088166720424758250655543604007576523507596542707778969506428355779830638743046328588735399502891096268376995621989878897301224085294250255719445079798649478816185622787930283361919970201530487544601662383378038053870512791656279144044231616173178470991147743819303619820892491601167719651377113571347947150448791506587259490726005350002844604674567475458001174793453461206110840958183014448840716530890904060166225750585625936536631439150702048858699114778236129734608704412370254604684966570933416334868831028117054579589993029446983719924935888498153268208250817134538277758085864809990537839435343539681401470070044594371478076827431666997502610710771928106424331962300148801236725492307657512782566655440483374384850862260210305370678909775670643400654276695886418341740420172999109131066751825877649628915012493028904563003475934876248832204845963988896044773311275723908160501690199616034554223686236634965493731761553733359534494853262856237417102682889048013256548265860443884021615918638266819119611133944206865025900205111827736923300101434257815167337649502028335652186603068479661880832761073599571908900068922365118790888006914229352351058310930093302748436570766200979411754341209521128227817274412948081305659469296674484980791125944110621770505364357614693088732546665154701842717151743762760036256971974672495493542510301661792558726860790114411464834851076524231408118801333511469975654720017118039994687847970490180567721055824609502741996691395826404282442709003072900470620602349345823360155809057986801332642992510693341418634987059401776624393384135974434984882740182964134940713866534619603695259534374255037825853802908385479417893851763005810049824862636562280260381647313837115036340675629896049671715327845771792044801628479168188826464907176568803351023475324577134049516999730702441962620075043026343200580729258949992484133517627257669133031090374437360057665099991866759980949128453538493943791771405970050415850070361523468499877848110885427092547283379684150576522630540330459574373427872249568499284160045199928557289868494485848989756099561636631835333976072080425577342879272043938850040325118349092559554448561291077666825996500260180235808258177787583202531041410125245135803777855593919240762901649232204215854385765157422299763107218074829958792139351422810267729274847809046975623498457519350970801865766305019888192549963081317699238004724776841518764345746416192695645089519317293865613718137232897005838184212190778379035836725163245170938098807968868986671552115564004706214884605942854678729355243637504782357392699261510595817414283690566582066700084397216782867710087545113951293416464778316516350733521377588257658974906138735195896033599746258213804618511025656517584490127722232991715748279849795891110121534750956486786041967250045529044854916783365884350458942363282739481482943346867327129828011939863553019813821954075433677383929493694927387084615789559214128725888362306071174988672915007405278274479147131061462308469846261308365485208343458764468400590879805101160252957529996124874407596668626178756460085447648368759985275705911595548963643368944594728970443305348280229049494850936291137336786692474222683933933429479402742305962321449551491575552529734739873965185170039582302128699209180760824438003787017733771732641373692329448693805506670853022344305236673102416190040556623225818377219047233094338949089760165967108884998337760012400713051576525113322311762170706779050610472184050779604477056966918867494064193729223196488274387910692519214290869159208338405173347791783740369669652427599450226617922454028643901838969140162887082826716098983847366852659776689883730334220910038799803305342469624156209176153441418610424910357538651877660020276298612178678986473157118450752093108402167517349158847899304313271303167086857422385789761200019599943598343738765641590812380336145073627064783986789730449983742648250614956943495615561413766152950702214945215838601326813341792063632016126944400441873586038091937655210916825556926480357712007004513786634864811101406473571147869039535523655868724940411403079156373236339743206789843257908561934011055888246054021808635917666025458647303187358651581026200084165861505186725244025751348361305558914428199026140425865236442055075245228372565682491549715975623189699029302990200294593599543168425572928928041006288621762570657421533639349546139170743949065028047926635978653854876855604131854950234539065739603683926531622442332398814593444079198476162045360320972484249477376105562317294733023641983881656593384795341070804653013071323865550516780675015930573441852744036918867306056197030857624421721239676039688221619108108724115683554744277586696839206036885603646866751546765686018938281108154564487303624387194174610694506364907885271132328847396891045616644871970362467192191403226591712244953337344979447703675378670987140681938446395285883665695848878246491238375671266193957051271836386245750031410617041683178490732558693484110471859959463118182792381922482733452354885540522467276205921607712986790931237881227458993832349865480104554201569329893208477900781990090657968662546561434923590542829419759869488431933770578588541019703885322728516013231388320717905248586392223377566685875289596277904929604203662664797860834670754612178532332509402381213995374380890000045301478832137017922891920236951004741275652676102002222037351882838941500443768426286480060140106547069502791997489790741728037442377592969408473920039743949282314555548853232001485543112229219009836881577133756458994177940779255441061706039617309491265450251241831759175548631735886413163293100968481564445420282411929286844391445608709060537629452775850569438702847738759317513229886658468241788798816855365051039882926758919947326371554316969423770675351660443021526624780005491795669849836815250341737652550444154601207151999046283725432935299731267187210134907902346881324014783444461803746400025530673807822564718811378050034249417765273436120780701387501230276520252769864605149811361031208782381574007318579210164059108137781893792246384585235888902986975397405830539025660258364903998120021330692376009677392191992705816169099999038575892000996999280057923187713430726791243562333731404366501872837812687142878588919560856941272385086077798851888593164944211044561087664214805794937481928801631797555011568046405220319453071250490121827492708986341695906308265668921704969304186259283402107720280587687369769409281172478393405729020117010283365407941030403853323417932450851886748206825181471499155011176066122162707111815875675298403447258161481121232779667383020481894493250292463849093729917448414338359611549981983380636570845487462827168967370369911046867665675346977710047139426453470144434333175318361227344323234835086200266006902861265618545395562577517851314729840802563246952343110506157282685065668666329522291376757975180299183787468058357662525241796127744685617828578388304829080174190364534413949121745619045650428411751038240022335831171678665431098577729821905319997140834288535890922731228989084319430482485078601219371430640241471411089700128450981036080157923471960336798278418274482004058023256915294716214347967850652084485767060148314104763951149825478320017269363567539670102973174907831962818733298824261280517777274011628711616402609165103829376711394295288312798450364977483916294266783220448774680138269744119558198772046147430345681410870367129275568056962907490566018699269885564014011734086139206173853432914410401542320907594060033921277689868964097014089846989368221887104024907308346354198789340602437654465547955332928975856343122157294179208463295879373579937418447507632182756925112951033666279733341909979885479785508345027868534783095510082048142311665937832164448166311712382569056285356025564545283379779749797405925687593304982224587267780606826614178096743917814058532115961466331841287374003833119529916245915035570781708341678269783258638755505161198298578138692089337326352117099551185298859455837366316301165962195052628337034641020131564814443201346946481552767223284116229633190708280132497091435658954267227968854339730041061907691686646872521744785344119592013230165999066668310303425613701724056155722434141575304457223583716953619926153800914763576171143290702799247967009415380190751456980388763369310163459520787794747767820638440098076091645750084152594764185701596831261602145039541777234562206181055299747066931379738780430296234635300692637366372479216893312914694762565750408456005901890455877366016785731211161511726502045198927353896696865214692190401563105188976904364818834760936229200358865189253223382077086794424501826870292165493339058682100795381132267115967275479110398576988040431406091197812933501319899793158480846047230912021405663515174699181137983841829528438464096017177339961925236491191736774662756109491588856892834722846758590779863002983469046388519697867087962206055341907156363852883421606493633780384917681731821174859507358144831867791617179298797920987148548815767288822018921673728014220662933367995086846011809151085862403060744207140598460502534098286485526242595653537605404465323709372791033172049414126146734488121712544169456679538602954550215313333040315714296932261511999569334199410671608336551421562071676131611292873169423117718657534882173783001177301945170104178826013010712716699131646250242415913484884619390127419743504214717102385972955725146823228265620102459740903587863400772082925282242867046889576570518356607511825947635113825620429942574348507397051203588441200350949930926406733498776507447402104201331091250945938341301387527195921268464692816731683057299371190989186216348132843023103397230665688793054696806954364211427999552643144480267937453868383376545030002980277431403445708601698997454252287577432968996507034078490290219371304430574949681468066592951639225380154472424817157315465994959257461697182459518398287904369986228411308486134975521792988435434635623512917036615242167992372284721394627509656823564962646629377124008967925618351414392379606715914478696671574696510520474371549191322516277208084164206181458589015848396751397607044749521947202179462865836617801626577145728831982807120680058276898726416812219325880128931053628165367777320995108263983102028077002860986076868977771407699084707744470215914856776198843522373161725003345105562285004218527936255904048930363905341226219474769777010365434200670977611434337569794736587380851548630147359749959549100886636785132588520821095287515976037064507489148040035081097541702697907919328834558198660226847239362193098510226404954233363552723264632598517324939110870432885011283288395049131453833369487815712950480159107957980256677595330992274192506665736299368151846168896761370769552074954528211620018553997486717600636676014929435332155154670052254526697072715618336902649462985608594101291239338465491506453121585359388150512210641851963971171906905092375200877344459816441874356012680623600790359484451549488051129118155355841969659400213588792456561030978751169108121791117992242933179748234687233732459466159399846062069951533188551689256516849640718288169311816194461698861258724457219868176131649002257642481035064985920116366696223345657979604256536190056123279220457019410065905304590800296686322886304685253225151746982253571197663650002708131132633431937156800832549430974546423333679481738801097641566760639821539321042541376012916958020299126243711622972813851616920743312619322756860170079802731647755883418680719333088133622151853631025568832750117214705077296417363466526852789783797348338953116984569608239113663594225898539936596322189864233089194615700114974560370288738677005481839629215691840978751156822087409274149604921516431456538171459870663204731730307574371222293448778021542521720967508598306945371735424376870380882079000055490974284547631653886625783853173173329073651954856619700304644331854398655291539156168326166581934306389673993616503616202338097354957249449701617914195899911964361454210857560801912930669522844261930013152286852947049022310403219823713970621476472427345003531474906923480559632948345513516942144653162167221414003996252593777398479118530569380933448627195828323649955931504334829748725774115516182654865154077607149619518198804224192384654354258193454700392947076194602357729092230720627513516594348182672689304092327638000112059919574433987682248074141956622132758029196953099347156529223768795385072439580935553633275621392596553383544780858344517340995068887770049845640502920248313718373533052334379954153953157849953868897210869047359893787314369004471321148897332622667729623744280423168720998176305573381139152028287871793081382678917112756184735452159424121188625014932658294729997043994462959802650096055857963968755622264887756694706433911484206612778799214155531064801188638707869181088732991081291294238301168559496147927833848541831918118501108669359661341552867249760270676158454048942538998046319620242785888085458773518674864725501779990811761405558538883066914627621611520237767740688214397560766226291508372040447783236623582590301537038773960578813794077544175351236761698567358557675859073451084604256892837563172113769916259874476633717386952510324027064908345032292678243535260318414542364353693308180582983002157069808383350820611856287692156380823533037440096582515129934078486759174313352778046159019927877014628911945442143592575219043408557036255784091973173520085075779662180357702858584833107209397418691893916730680605160500922516507647069279428720024643051812595058991652725923505468677271437287294047461205088159880631536958078904099794360493970458189161867314744218458638478137842514940784509020730150108456116519482156540332680098193137907387559046015937960458311063232307667258629487107093836906532353382052507795453470092347307814783303492474702850144177975302316098831805951380800562546547831705068654583694946177562989472946815943551280091848624742743595355195981354268522580711730848682424076567709156731118830599136838860592015306462032935690922578793706158428275689727893027202709458495016672275697846327686705608766826411319824695696686289546486749924245008000278725539102720191784867937170064438352266986857273578429484383482831405956598093024234942759390709055926360407688231584933773161743728230762825138380531926407714432253948712993620659763560068056351670499667000548335020688180984999539833699538330815348108465355371025623656225901496572290194059261229044935247716321481910261200320604394318139729819099446308961612898027988090795076383823438055201807637149071470307539247905454692691304577208867062632892474585937875299671809145884712476173064798520356323533956707688766691511168772612505100485574765274750785923513139870926111514385992230870227020687306739648446656438765973676804954319361348109709683947980119737581076282195422110378752106064507113780712268538716961381498600740322220573758783407409936129502984980025442960079232446085557654999021288122877067631694148904887504632503222593010777761876808072950866813867071604203944146882214859992030926255776921043007801241175061425837223163805088122393446442312338425357111926878133704592227709503915817890809522649251515275413639170127422343184990586875313192775822994817599394331081292190199281179740012898763297853205283696331299508620164428333573161210228300766197033300883989778548821561694510994882841900066639705669039438641768238445592340815391845623592326807247961769504996783830506396690878196021562899447032917076658335194973940703227341692389447237167560517810997320837196420093948512321198515942727073561457709548864923676435436910330257658429689229152791492670911842008803245411077630815616785601314964268347716042863047943430728232772990982352361807193407201594944624904764101652202494775736653608819240050025004672507529369268998684377854588742584663276218476814048391810977327523872712797353501494876812503233863630625463620963389817808036576842365116503877222316260299285234027863593112600055900647405554429133979754217931415104908296175595515100273209299300588213827755346640719011292376031783828192850929999724361874936860603550584439548276875471672193512849402917097472909134668053400865197608031689819019956933832840537525330731970043603132126704094968270301827023321085096096503009435969844039676198609001725808239161611445142099728703091446997792574770439180574869362807149095728722967573075317426054942725538569174169548674459987221096822262625899771024700084188460103800148793312967507366609611334255841185598755929835872774094957846125197058760258364625735574504827279654214339630007625916093135403948512167048085925590492002523719552508422885919451598946962943135458281994830501320667152494947233127461640387454656887601130480748818906694452675630525370435563145869985171398950094277402650554579821440378481982123956589984821692692452539104745458887280087259238671013838298119346347613329595544927567458608456361487854237877814158722026799057009308066940882308845304134068591774190053685185648493790106295644960868283421758374697390077030658131130630298532051180039523855502219179116852644271457294954422001411824896180526322483436559599191062544751707919171945492354297071538266176015345672785411030632692169328219195603905120888882305985705892719234565848493094864628002530034275217087004555707209929135623465823827848460740242412963912112472924625213005715532553971946885427894785443057021734482287774611020964234189374553017086025591884438569106927861448952926013824157936737288168752127610705251711121489953205128280146110031656250653220165554277969163846387167890935279178016585858282845519823671549173299242333301983744227767366914322176991094987245441425139586839759842165276629870749641559413481045757140330706814127917932242113373504934657542537723041052734359666597366013634834676419525571557617673401982209716026717467444264382572030810910027906405661205237501829981832708337964942359938040258842569561998631835303645743604530134802333425202415110313660356408116051397419734599739187677454291992541396109354792805876866775452814886874538795352411719773182712323307031294670202444189353809580732945385119591396378236872691480897090408092127766561596269459752935682516383796757411226739638798325996328213289311208839078919317095963073171544617936705575716453462668181207665119446194837779159309113757992244941773213919243665702656072740179240637815150678333354326504023602103005190269711207502393558506485503917382776507404177870890809328078128326368911209650699186538305242252388666710621192386109284401649069412964318455571132381993297407564037777345320981145974200569807136265973642193515814747257751002808491815186146084277813963631587290248335316030604669221181551434384478578356919523093851362613845919195985199441793823336064357441300380661591905301957216909415745148682886938387287657847077178011445327893744794855956236219293896752182320450840481326434339620278962923280180242298662034515005884630576183695004310005090576194307314514223667388063436982100878994928839326423384907868959043546213864557683611793343750363961497902392516388136395830636749205399391646767447699567069695599506394634497604741517031996610125296747422701762848899670936082294299048176842515298655151292843747803070718798025402202581917121519127089146130403633812372975714559063429740672561086616278860987194840170229320557577529575449905403202553834662790763892561012137763064535288954381904994212380376306019959548832212874733542605133362224660264017294450922051525578863475483185009924694798381158158571466307934753091236597682125676983411100846856556325130403886217388697550424103577912260630460185003924144921656018871631984580136219408097401795881368499417884639650249601348885056623913658496169967083504218501586464670698772511560584554095497237668547392001910612787287178306702472459497697131819197248871900384442753972221358484547809376207099897778822151198931138005884094005406393465279838303941172558690336366258178490790492799521748770117643611910809548748608372366280076209029162655052318305573425359229666379976786191220449701957800987162741132650714948412050329811344221138797833334057734864712381324009202616828648336276775328874421858307943145832300966618459723836493667383278784845288055608807018690704255840750148895071300285381996118503442014843418814186276860025330591224234981782329075413112923157159471148153466819676709346110003066604253625542482461003171142096042952375881351356788837584671537231628582252243552563973564978433594373224368883405389596980580814930134371806438785567730101129309068250881187659232831437112881030016449441072959955826556962634479102223239903639464762681303399358194395802610305674212230091522862850936032967538328761951787322527307938078658317092980620120224823392284833755517560454313110341866816272885698512610803181994518349529051565050142618149541724581493989352748736042925332343461779675389031585040988737757990279990097081625910767855395866285144601078630962560516913280339452734368464619154946012639231650211742506911899160595021072004678910690394595662486247493062757600735023015081338238657125633162843712602349821512090174098491742445333439293224049021215612482866130916785265626359474248291655604009474341063318077990347582161652554737877843884149193210622068179760896838485059431566649002235325704552385653269000822127932765171403472103614419271837044707128407212896282301001731661944648441523918525645167763126436481846711805836080993512843386608819816620944731479568009521441037410118043488395460556481583292457583523657992222874463224435054853993220020528648396232241637967810348985113684237757831189153962398433133319916040331536571209123791709117515855751436168769890452003187896650718292085055122976091738954072943457396267551836433185917432588546145045607332965461062855497514910819276752723627501479685753472506706526810266313474683524689184604230663051522815922529330580503144127619106778026353827351718461868438285237700374012127164557578156258363858797887018248612151921520966784857497682036199445767669193709326637745890438000728700174412413631624794143932595238301251467826174135529600056224697104833736353398407440248483811248058151192603276900703806813735672195044749673116125145042234962961084203419101748419871838469704513247050976393060974040304871206291797674072587675560885883763970952693111336892651714035134116007936038380455024182031121746411863542949058236648853078442617365093520684201132376068502076658003285869688593999955221400471933646624950504250519426847439917807542519025685909857525360638241116032936121950953496731970418848116578751191888281343811293052101747373906695183915248310783954980747025268808888053169946253420188937874095781528971055043359930903931855908602836862114668358029257008136848665923157269749702896399525696792304117867187808226915144411376398742850306862332426929636269270991790915163803513715556504167258778214797301278611906263268148253893814348056542992579601779330342264248813996146210070433142642646086463160752070145852194989605156664550962174285334810887318707920327308017362132811884521197765209067728488967773509127802605804199623689989207910959583119306826186093129170726291361569948354543375457305081696403248408577392178543509514754893297941646381411800246878624517646055598762729451881609997405957143255311880505875538891009695118183184556440793923744761685041916643366322261191961330643599657937703189490416747544253119062843435112833806598465093735497390503309962090793160155931911557066213218384634261795718081070658265787978959888421910777476730408084509199341202565992726728381611823187741323990856355711314609903366240679865614521113175879574151920581876454348584084076092602702038094402487043583365110399911905902807850187179332543331857249836797032543961092448925167570023938887572150002359072352923778612477814427095314073705394227605180079154767727840630898880820248039792485222295519190594491541677365250080955718515011162735055833750161072749439668119454780719144877912740782317666891624550447318288144500064553848760549768396684384214945478344494568479998299620410673339108554088060121699501027408868212460562008112237810627855868554555776649194555512425192415454064246018399144306849514404111393501785304486104043701309734228574274311546310123489679587078811368836643300453150184904243524350884205404177965992692249149680175340257246632949794656226776678954487484872847563526036448784635078052264923216117615308039284022401917630255471911117405343576047725674613527210441588758550363204064855231906700742130789690101557456511915361220028362064859559689484301901731777753205368699582608383369414213974184518308574801576774969591519904641536407102236098085056504890894543163888180564306164308208276854195099948045361979506639471112580320689459584966502888208584994168852795798925813815678628733709897626697298748444584811213582678964515301470082539644420643182013679233915250052280857405698779474507029581781452246452540203908305636549471462968748762149516438843555724793418676303160364640005903549827442738863331241863696558602372739485837698421010342250471708710991964579601782319051733368677414479656973381767976591082413449688193429251964955971777302130356793899097943036206419637251818069507550861629793309088183238702104678102446930499151680804691390107998788981825030830240308729295933281273860552713351588421011581105037087135264931812703455579156659334727527007512045058395850166581449599902650065330152396562523658985427297960842052432002779285207033260263794528829099440203329051766078525354212584201452703161737406405883688869753576336755287053381454495693026859956950935867407371322431278260186333210921552160368801998524552826320799493017719940316067920598393669557796067829948100288945177916680713328342054380064248870016634741133408479283843271777136317072583916638360736290819762688751463518657367305190389972540646133745923644151218064367092799375126651090738109731499608420660926197784191328525803682094029009707515004190525135702923147454849489213831870018323707384476302540873403175254643909039913055362667758763440184037273673054486366619789291577698932349775994624230624034430983627240783496553772476447648333362768009599409987558908145266540443921048720666177973317910928959570901147618701487443362854465779078468812932503795412629803964270815066273655525851966904371636012997457700624027250180975351164226432356396832340722884993782910796432529953333031130770002397408272901373035091599378459063959975482312608612094663865763784696054843304859436513184494653383934278320653094740772024509366812832259727243643468545277036218842472666060332200999201274806367195839874935797682267299303196130806425289665455829430953510876972228912176148207646607748137058643558135528737190579230250272612144382196275580560487613040869944164018018987202801112410656131974722301066875850960930814301600675464742159817510060820079331308730425086018814711394677878140574691888687486888853184668828832637351255693426940480749959394991115927552797793863763144870255051169382263318260482686387809259677227424096463743302269060866498237937479688198989933904629048817828414789959257757814357550184247179437964355753005873063578611983932418897488151981037202486608622910502663158535764483540624123465501062424903142069531397512676509882249795267087304555081180130368599068265623416085637037640656187806465448825760517470749551281667658581269209336069669193898008357738302242181412900561144304633661906071739571684114171255593351931327370503014133260819454128603132636673488751107117687591510919309547476582710152221351149439378243626992882807714518717053562362014742309541189790820094827465509448844855765694098434252379062078398227358967079700374621638303706857141294001446163528480759236342658254297388828208478828065410911574668790048947019901578910008626793932343768285494794623226256503266127001615061134705258826249008600750748419986228250673621494137201709180469363352334930359464216487591517261716016575623981437957209502904412754907004009628689293785031558316127954775236999926387408515547507943324273477443513816874955192483042200548967616636195574170250909475055500374537750772246582812077884161230409907552823831401309101014978106035373840926220662536034776912104841220735095476427761915714822956886573112764490067187406779197846404528083095585981941306256138546926372233605461856692711134437894429138132767809467086977259188008262446841598003987625605666563981590264609520109564636402948591257574503684863757662470151405402015112913071944319559562909851246160308650260019816402337695363667977976070414045398889410332976753858014889236869957495104482924859163408851792152249616849135469985469652965085020231036369331882964265162473406179651435761136136896880075535656234774918058315280331613306366803293114577269334318211187073386861058759619462266330248053715197938201466076135065010446192000521569175516326018327656053654857023950977755357304052956170191897397728511426295393901076338449944534549673207100824962127928385913015616269643696211556285010732783516557455948754703461681213166358274767964036211857271898003661247448850795251109088079817448570130036646249393198203103135719316303947665701807790433583937032504328964567964024264871916206828423081162547589517840777218337507673392370269320192422874795809592104100824922392216773805041515024896873456828407311577855524470488496120053210806543409467617566284644884870240789770776502383288615874796166156864968329536762046088472618200721171431066931692846090219555334544729765493300402175377874420076608861521827193848866942741274967546649800217958911275070139817340420381744838352851143466037669024022249769338342096969175167317816693839760348596788611645436004205882125847495802947664322302993150111681768885982251410370045150823936325630311174215169559079967448344576949335510980507704905275936041775108075246222704520177862565165393242372582582371019213805860557547362130365471740171635175373046134425039746565508334711396744760833885641088022143437287280778622978665257179127153325057551984040733033294184687212806775076288257846964263270302884376639656460343063242659790349409182085782809178322395185521283604039621667738133677465982343419544374904384804221066516273419026154417504424799372456314042701877305378086905839482719002766831559558054554687249949252481503717845437974205794198285114486837816325844348222199634555772567705063519878129061740462547462617597861440938581801066359880945780188828832511673673552120265869524735095786680176740320771905706869009095672644118037562418650601647233050403767690744117807766110219944124744778377253140616081277270122328604591935680468821489390648312786210016967753461355962494333908963167015471580738050771643084153470000346324319449765741801537244810857313231412776803474171658549185341416616483474182006707915308137229005188565707287050546728813858431807843667417454577231157236751639859726476767823906094863861901632566355222810987340682442261911480641349462895869779262838427401138013594692675311383059909474611213463893813163120669913508384775222087430450797338205988597605945024098921671577880062105064520091564058048315150225546531062949761773565487872880808254101467828371417890246747844922280104631078645722372463900523964235037350158344970943703875256553887173874604108152161221739736082843037707145091948915453449513350538043327287910533136920684127462128860807977899335317325328098763925033341412690855794270809285581045274716851433117421092321242742599487644607337693735991607238533158949036207803608364091981154334364254988318808805456758442001007010130694002626304883659177667280920410939859381421273028244050582362839098634023761817265898436545625447226798110170329108156356331071589383741432473061885869525685720377739415151173019346384426568706548342202471973584662362965447947617303421219400672553453564840595705682249760869322050388428367254541979135393539784774585214007079883734456403513150802234940779094835435656288860335301049669590842851624200510781316781724044618499546776260644239332969129706244719990830221833972337266517182386750933254914592374950100790294699915575768177174498702582981165551322192042736658219709831545085359242165985176813688490958015261017109058712987914151026015916403610671849147929890082029801942626662495506212712833093692888240510183964768473468861214469971320520209218974116079664004340281414259633339906094704845106090059596098568764738904057424308242269819915969234261523332350194373849555896005976585209675335365044479465093773327708984236493464412658750216229627979949910939968454727183925725127342066921053339883027316494528989591611881931896032004645997765305564243768150509239162530913016280163607686018449605251108452648248781329911515797820818063993432674262789188117690947295881223535248714433307494990071314197900693337828480448145504642888797527069172297781917425225201400486061137506831551853386546182236639269439358573662842150865972364382733623974941246722796154375938860955165974232739857259157024838127130166771386366738650361701549492916488034743265006847169083768474017830020435074930914073533594193911451402339774111925465649924231838962094446492926132742209886289559841744110944353900657760510236755425630730026443909732703724368744723308488212259806534765517323077834719883945838035813342213240684788964412090337918745486887271159565411260570583977909395845417848904582860057202294123136715978653732647617133505254554852296485049603896145810939970448559652257459485286467689423562879742467281958104850920386242550720864452772117344697833920199718118417066754515762235588013968915245979286995174016439046400421736344479752805530853495736326470403288852716481675800067977929983551510234309957317678259190468590411665130884736972710333062174332334744724443436144612946544881922704030418973996908052467427674567947459921476132628005912416080872274407660715319461672853724011003875575819559932560239525122589135879692886960154201316771715596878728253360098072991151771122925656559060347038773046624874143980322886739750639729214091018015112818935546404932126518637264379918914714725330509150196206863299156302912027546438894206081000861203591357958155992998461915124923885445142347274289590033610433545279013170773501840371294098241458497939688030762175615538707591528889122744416435497925098014731110699594761502321169513742389753612297940430676657586556470366474936406919967592278408327661291972322433974255737810871961261340056361547901089610639253875498880982282562914836742276101101615690907349886098287972291027558130972909170349884572719838059328987413111771017230877971479699826389654710747813318300096929981264245655065437396065380046194805098326860814338718262123903638752731859253009578352847083138638840988781339790670653172610350290642279316228549997504069888843760688323771823442695034423276370483607561444519888306495273534934739061776417848273378773380176836890460890819623546880053386863850006547148484082312059894063030561302522733345074846455540117755246662142716838549225524169249851146841934929947366719189309152103100315758719953535750377618929227537449598494110192771649900322659722580548809106027034187733534757171901855926633954007260458273104489172383722526240456903789491552730727683818976114114250357911811606692099746365279348041960659417697523807762442950004087810024365515712874675261521977836175351853972795713996879676857687134232352834273175012657143456465834045885834807335516645190581102613165927732506999334290705726737874912103691221355969015836353746167476535156539695918932089067687881042170323704230973284827800432995313279186132064606101084794125034956571773868545525156047390595189001250814029349241096059278589446759845869653063446293526315417306871463615453668619707156478463609579835208265580093595268258056778482388382306477485633542758447376981556250178483788113558192430410083787046737410446053186946725299134346280245766314708680727606811315289255115378428813340195561874512769333201275738211904344790536613192026896861045780471780198953990896798577269575922604085374137304549383115937643667853524922348141905623338490219577487891697097414618314917860821269588634238772298312190111700342264110353980399908448584524138736834760426756279635855743089910707899296970111051921926121286626488899974054522374780745223092395727036328152585447054611520553249412514151157398531073813904517769414235817259667391388570804451696942721657419994393503804665219102237247272054979292668997450199563497571027576902361505696593172835337404530202627594758069753226081150952066878731896492948741961459583361902352720141339705864420547051129081130175165800534697194133358047156668423948293457004686275582665737915995392140129901766675593513837156855237122020726222325066019516413581855231167070920646304810289955867964264949452722973220211050480778775773865068982992385163406487781000796234359902097286808696950008776820777337281098259091714817867981724920769532433666001891551564337328903081803053259441262562299638804237838431124043503806403791852805618481653934429994502796912051142925734251939485096722596155325338684658152947526922168470546682720511387653214519713586398908261640335235489964204525179541456399427404763969766837834883648785648536452821771508152191945136123563047009096166290479745034035962453259463701542992277875371167261938129416385162873570399447846924085826022171454819710588054697803545981064998577010187211420311480129357742783383592790095043216606480929080117031430821896922321010970386688077455097006457984881982944927402688002593315695476447577779161701776241915424886526768476424952104238087838966137216419650478775193528086314167351060899437914070769972472622184270488472848436284790228646925014351356023271954636738601260694158653639684762028403672047286532060725410656532354453982688363960756664926481980858167400800829969354675425807343681668667010875772336361904422923092391085662448725059223833744306542414381556198644379002192463801173248927028216199548560637102600526967452218324244250835517823076154586783522978339897179159191767135150899026384783788102100583708523348769414030254513893242974379004834435424386823218186325190190235364477833518213848264486541711519175926640707928720708290884019566524092194603725652044842404299950777890679163504165587079241828812132339350449461632015031567775488488310966095336837407353025166700650048050026272091630977234373929195578405035192568674787928185931712588353519807027982382907159214194359222671929351604603554070683620936107851266419367022832267122464158073515938345044452619983170990975275323572550622091664782510608730820602312858337990724855260585806739262169808662359236492225322140580037950785228800333889206346998880210167238683952123003869870699033866841411493253797209624020512270904983035468979186784934728226502509631497043101154551412881736904288361525263786843527132300076684550981223257168329447941400400408227583567291399868601784505777328606390094524274076042458203023088066177825413608049681365320031370106437918155700272155709697702792007639135621724791458306575897868514752982998256336098880932636580613275751101144908819016784419308940474949209012596861743725654331060088054572803456615925752575300550728091526618059338776526791710370191416539550542118397087755382086058856348893537481545908190548152459466263319026109888335852417087589417524038357745277432154386061973158268992928441789954359713122092339274494983994140087481327604450593133347951401854400766782097876851288835690467822382178620156325504886378497714197363101115975645443074897667518871003091189284181496148277125751344263932548623888519625538404906890048521217502062182827954470890211427039282770886905124388585453937023151636295877531307219471073453072333006087906835811040777631382603639928075621134265831343537330746921873304466249207228968549889647865665173110999323778252761619130374842424704111577937258583793583618820691831812423887853420833331343590585555237064987260235404906753223282615377453071100000206189722463337634161065856265084849540940874688133501680207543272577778315193218496512632421395334614085306022570474391030077580265768321265368255679644394229504262089112818808065642890446711802123587447914089913727618760648439505167167609135313093455306081706222906215484370677975013174914413455289319041552164674961477575361362055623049873152178267241009196843598458808987719377896250733583118994025070916503060824451876572563911790770246059799090366531691463190436763038388694053036317034773602332699603021729868376843955679191082334040850244743393775105314516534192531713360587037872543390627655537423389653468701796428517816522122099199186735047282555802237527772250256698290764625014225038527880726750590576745215208579411181420180759091395734984567765594172978451670856792502066512393474413068261340793035206726269190569780462561719870837770281565922157619369600742427752239704071971811738542205497796172706948932537994343341029995299768431035482692524841590498266580389209266230419648278797464543663509692975777294497947398851332770009971473364353330894139276776329502090876981136556528687199025138990466958403750978832945291819887508362740158724335871190181844993080831654583039522733220072851179194008117080800480757328660215191025814064273183732670938770975485405001466868415394873173925086332968408374755421011297226492106417555568739183966448811792603010818486360088285602566129510360442564408361564923693471119542432093464568586388847702398338144019266256194670592828836838987542761885438700808542228975275935638014555636319102224655451682665884267848617866087369408759363466288630662550206627190333571073695075079733049599057243028696914193065511618423106819349971590809603590594365659736060669344566030710445937471067707377046099390948947445713380997896429495186520696310526629295319613430399519150288870431986493712859439223270657855696483019689148235462974506683577348406444573133224447230526367436481271461896883224554051789461659100715308431875686199648469293804113071801344405061529531444089310617394638218408652262709919814490799481920951925398541786492572405763967097546807659823877909478967616024495732314009002892165986117384388752910254584598230695978334350140402920546292169879579737303779255213587827138597357462696886862246647503800306114061393952465004243355545652065201366802143415302566640950725065659312721398223608951745161162785797070968841082725725573651124156712567380618158598040682642880977056689210091891649619352763587329097899938195020293896647539140912352610112574201438783063405048076283628469619018867399833090264393354985827796908929438170870028924650519781715474643838665381847362201850499271803601688781779373657730927988019716337794803141799828929710495230538413634627355132721554303624709091924871772164462104973016498558618997161820346867629772634715098691781948317460120583421475062495049023898466790310146831467360408976730707964359347503723143419642632933615246282787114813143998358143995180684233030199736174271840544664433727440343614197987000088480374042556560243150090049081015026382184386136680511533463126819094828838424396170406269100103009113892669026299007500999634681643122908313172755069964960347303316599449784750518688932025605863499320979875995468565852816003895700805543924382729166011060493918847352020081574289125765520409266256918336851372026003185267096018183121887914280420312775160842576062968798852449339686061328923761018173673057285262115117530439494426558023727010424209071085702575549033166123798032321627701456401286484807725883103637159663076796007430023373279120193287039500415298098594039967527151820458258578800876056263128751023288378923229152042933211298663298947997611863247362444901099841311382535526427276005602198849915366832261733222881924814292592130675723998582117875020166871988230414345602730642693395431752976062292933491119751268389277230746156829346118897171015305173768208910556030914139421007612449963026249485746657715886688006908919903927354414188901101089694085532254509682830826356733508317294970637343071730948972380346023896876031659908311367810782955195713177626914205414549540813482349286677710299272254736058843576147818105818940446646987921131677256834231105688557306441989926498980699413818883738860393995094998446749694477726253538567506072463334654631609190618347765051935338833692575196612077620740497675722188124639238605646933466523022716940454862284395439251145463150554133903433979105457543742637771270725000429204850716316855640869987118358926191656292917658012677351318701044400872375671375325358771932813100259267043328322830845029154946512661543830631856561310006878602741981785103580121725159601051516092061263573878152018811679460610832760437176752723500645800878317612291965402462986093693372217425513861640924796168864128174776566528297435868609429397361172738981756753898676849400609659054116468531587219045286763794711924579670892554866724511361654793716163526208841859098308042079036863756342983593473013620452113584647613626312218340439980407170817577270962014916978812874391919870353663815934578216585414191535434451135821869537021169289054054055081327247867747412000567312300786515055487327187546319936413565034358262357114524355019474874450294747467488747633354204946909104613654811330371707201816832573141888921286711149513499388432910720649988958024804945144330149825738733751277885845677058298343109425283397563033997878463736215628159543811506113014632479771542749703570405375528733340965068971966516073803899330443485552593364550363753214875915151412378971786994191949366445733258466843719938819103755311871336004511505072078304587942185010134279925872301321739540142263783036499262359487271427617999930622307229624914438190268053434743458047793945949526085645257645512172553870741978025903825436919294981544619835411208490708393037201753645656803546408645221932296188641772806313908221191920275347530599594193555440013055121390426713106125785282286221223019310007879076566417889472387545638257857166899370260671051229413576201848061818374916003796076954859669637020218211256005675561218407190500890551889572341119674159626791894569865377584982456946881330989996784499797132316004258564845796258758029062427144332040154217037825097987498186574029030822280425959618356630164653579899857586372735969648461727413942034242332013560945624303141599615207722718473838022792823487185510355012739360910758288133392317306894218643730385425847164403654838138843966291685216551341840973189819103069278704222243857037450448612589210333655094652025080342991349422981881186013338830043535765661388369242956090212450840781529436613222956856866717112146288321116590672966675900563115552228226256068558412182940891456432273908865395806638411769798291219659024305046166438621413351780771784579428225579776633145985614741041528469195806916650839708948907692058715019363358071428763792780115069468962429174180526023473552602090284094140163876316322064459933097749963038692984979325832526021833544337086699939928846067723426255325059159444550727540144577231096828566702214143252992900914449931040263230896740888317270985016844341295205103466988492530032992283668585272306675670236305724176535875144483612669943320664708015435009896097098584009230578581152431284935302937206768562377381859530192955278464310614794163728869229622874629947406178290654635337081599375202360620395850390678205193863126917097577245958426877978814937798623767758524801922775448800249580445862913935998055777728774486940844554179555018932239987659422559722967417377816606407950916737054231732257528813427477606057668387932946555240120126793109604622948139734638385356645818570659009349064019491068589424625551901103579880931796334786882078876138522151806735421784366331615103995969437515504919390070280125873228302906235276949448643381167666065586277468473369753357863128514733455086356574246167586464050838035774109077540633697043226830154873337908612083564805307709454655031527551024312774345778256131490242961908159330808461228071138439763354516586799284265937819670234061716679801203047960919620233918405992885961008685679493466001520800195975606802481881955028489692006423019816694638891296681111607509223888512394679014921284422146503262736144980685489713724787269062226539293607622392640974916991361499971567315018561617191814187690648581379105883048487103174806491911840046460583396114557523452156542921846416729078591576438708359545457349886073706044024055983393591051360769853537906157887613435163769162255195989556254759846063315923679313774712857243974043873725721531214068522385146246253484209292315369996179552416006556195604130130556776547640884782757167182106354075081053902863427755772034271788299259758352834662844940024036979359969714579387573321135246176756328586663085279358787515680246851628899830377755105729057305659075095951911790343147090775851525780360719945068740803530523659644666126143320368904860022356608328879735527055598249417673391593579035822621835892228218032658589698036463175530254044913438537524150748857557735738329551459130011700081177556217011219503649339480679416744315085940545147690560186534122859312737361884321550613171503083661219422673470222379878889007198984224891606176841184672649957278667914108134665685408212524623086534592697112168531224341953973821722250211109490547030368551906065604808373162807653772674738735886088963043609689144083194985190949589442123406501465106732883450006296751632179636326822276263178943664954819800866947729415567337590390953713746817767308865519787668202766076350828919684872833983404646182590353556052813813613870100587673344682780696647879209116678476979408588660411324074870805659313188774876532798357230603532670824011329846414758022674825329342737590924058583505177899834322498548640924899033712624588730582745275208877868863984947096925304578786800062513891509343243331621163133050481508289449660953092454245202908432930936285680998160455110045385004509172401430915232204581543355042050265626926423081017365330165247827329472032293707236767428713261257201332885351802076195354946682019692501167519911015302350541740245313324844704579640882512335339101174622551701508370161663742059335214653480302327537484240550492300530984400558158540346784158537627130887839808903706979912977983251779579065879630035536563181983768380998126987442268229472716161397019997352283338097369486912377177183173667065700886371329873601265675495046982901448931317144452377936166561872020515220603257977994831959431666071719479810529628677985316683628111031569285524257742441003837296801020066279131210864927080849393778838250525768545904221103038636722473642766032307158486624154333126023797045050672810595972993687995230755561916230956136298189197718910175876371787329103560335802601540186941373943823410280465128407194682990359659405647611471121345780376567678759997230336456238605203802502058879588479245312759721818389466191107797572791766602227626392777967664018442321895883987387487637424061667442975993699568381540880358194412936336517175317879999792922421128820671485997912110705143769277442041062657443512299159428493025848408448197974689919347166804786256002368151385242095810180243096300494354581158653904467725219488539713703313017820564778475292489373529849698317886253647707482582714177543961089766149723379952213312009415770355412978642754290002424357529545063088391659794142780220843911473070100104286562270730665148887972934034429110967850839464960749785055807873547987767077484347239977142945695320538197671480195808120420876062322625235920269816604204399461480270521983519757971884656764846950562232430477343857007675942217925268899925921645105921402500615816294688784367648887139449039576873129165247147564656912576835076766076376264119286999402026849581000462049627610273248175541182093930563587258432635856690331098106513174729615414803830652681536306916361779448572664481856757294224020419948235303981260515430936060211068852865294296247533741819733950835532987514399410549898246055176571514054339238165068042660193974893630855100023822678504234324048773912209748828318024008368054781920743633926851550526427636274046425441610408386759868209062253850991618127999100082543294285694644556256650306171138959432054000863074337877577286848030369816166694671867066737940205705048929775565957071088921520216302092025796473702801514626367825578628264072145162275715454074785611687658172464047601764260049158653468247823002075286109726252752452891330657430900775760952909994852259221464215735376687052798808779447018441192479607545300549072693462361009930342569901382963752725421267557602902993122343182597991496947788412871565341079184881882056649892116446824045245049922316461796744350171956979402895253970940226300196081384045291482483216974767931401644458095941113538502520475625217142203248074806487197429177920261980434884955664967135008157283567469011414034689755776159715067438946748421546226024257975490725793160519261514969585705701219197774017978420302973475471560045265373827267458230771609256148930289309456735197405415306098325321243061592351605116700766894273266121633091473327328828766206659352060547898454670395893257276568626607022539842330569194845929308257244854595730022980786432676841329453764051490395141779225564328750266975478338385689506229260236655574737491517304392226434024076813000906164713127761211812027002516278833719127298954648554406611458679095625772621203450611935406524134467286591207831840779619990892486469654996260361182216786174406435112159266517300103291567470301849156910403331815070723159691434188238231196843111383874414068043252097261091989258870681601877063119298940273482548915948034936896574283163544148199801882446888116690402013907427770626078840087598561799379762927255687778985936236089308962678833992502674819109002470732481343527264740417105724747873727343743479668763951487573834450674739198226894905903917372584520736885920863402699273460335050862281134429549129908091629881849101689045120353589147099082443767615977654131647773976745352465778194796969323062010459908461317959708563886946720364972869215834778512303074201062705972773837741975218024648991047992970773068241826868673606883263872476435310619568745783689010233013581673322736240079144814455131231326723482785429036134272694549423062707843341631054863304857946739134575297387202236802565807786873187295934866676577659777509715993336284010072543555656299682439242714938221945609009641937134753539699277735721277206518691138589189988573600933197037985254957724773198839477124511742347747096805241083376553068760438577014493203895727811932744197726594538422496733903905590624683263570276685390190874966702313060571321096504878154153589137985694618308429948832439610164549767873287358544529925184188828124559364143480065265920616990602380137769023668997187526329967058756402825141510236052247223868322243680106160881363959548382694089921579816552768811726142483308137963810263546544704072171266125278327185539927852925391036241881910079847824312253804146635921159738632843250017569667966184253286052002953985230250258719857307610949948444727112626506105397029913564273851544243775629761232952898451600521990354999658052440405753598608476891180392260542661208916724023334828500493261319705838527996749796910585533251869245555057086157898058804047255792978923330535088715642664333166395963890723209839388700212534685851845679528356033062186826274598006267738129385988048804328438005381252453148488486132788005831442712583683305940937126948467040184254366566726150744503032382983166981539585842007093011109951137186969010633672722304009510441348924557134602730496717730891743154388858706383226320030102696480542051277847625019127491580303703590693415123253128841957972165474634531004113148019663470659537306135632254655258415983824215277408194625441066535830022738513254066977049645524505872584676028591102973685381765736738704892868094013976057977203889059326315937949953350563581944927678912937218320269771913569778660311063699787294847969636836040547728323839965066237528419511064010178290391630052616959546571016984823212113930847098211042658846560734427482974202757134783576104167931356578879659580813930892796767312146630374613065040978467188190642510483379813531496720002094291531254243941456894927482557715491274302278209189724254991108658816252572490704748339393097796367255610754571685023568543516469966902205727894225621438018165945189296180322545606566940183907135379612448607434781823561193667728038658391477578924965255671276835608050244563618374400879346690687397374695052429404012524816618519186923380686621502617987750084910095976648941481539967744668023879357225603638963219995995881978836718966325193837075297066310595386662789425207202583145379589645341688364776941970372973061561255013290735507506501837506539060567859436023862849703973919471119834511025983633108908534627535357233067605948649082664355909009458913066567596281586594432754215883514896264129635733278550644452292385378609509106998627942696778014301915816760289651788144348502466141959197420826124543303810937440384331471432423807118292284268142748128938365129314735038333793924724662246237004512450342641368668159024792228689303114907735131702904415315150911481737605734953031667566941431552591721517957755950367344165429940357471031113481662628623423075061570879318372360811972918633353250775808247295056634124825015431931027157694317537813847597139464937442587070482635934295423937553006431731270904540540252420299161708748224523119623339441237732023037042927413443219699961053553899956097605335473423034041366119813160704392099256253731278035664766977519447970846232355967741478015461878366490090867017551482740416180224625872368372738951524823829953671782546789721016008822580103506127051006067570325653987064590100559651651174631992087190770147189418398360239525478144656327280220245922985627520449166810678412561583678539852078963389995743173082998988878197224340923932842242848423559506167068772920282152880711412730338389513917395968254444155387149169686335300541834440236577684777687942172954807692246737627430211879987737707135907914239620694174370835537787805608420181600748242236841370059078394249476486047443664284012234278900561388966028990905850068814684631430859110059413780730006228218295261889882467167763630743626433718290657327868171501443562973003558307012200788010187628954061758284989924185806200105530219507890050791508804978416513797375209154960666475856379545983453760805709405840996263415239730808033182856076952415372681399067209195827195687189624535083361369858349748206591951193208395780659614172207682773939325601614129909937806789907952818039442597572828967622213311849958263232359402101850785361440271455582520974085215560027274036531004098635966410418891139685568208161317584558458770037165510200084813493723670578305222251844226236160258399661703974684168501259364141495222805301664196272520900001700431467680709076073010176595073872147159702377857800714413864627299461982905675529937978837651545054433694305657748654334713028217485504289021450646967656689778616607674660868285174905552550344178547289631988790741807588379247341448226438583556483916165597653100122831898891630275757034680785231540800026136394977683510325950131795197488352679886415825105499880520155872812596779172022513238178071410838747530299305663025250063909964549742925033181216802786863271466457883102322632595526479869285104530324703685203438167581136890003406231660534730295493689112419820199024696207942413816233624018300010925709240589178236535125027917939608233073725516252929241787381102866599810859546172318819753741314254342484774369263368431722334430544687081600488047198391316077480343386013719097830763997297805020529509204261196444893405316212470863687134321227745279349250446245253395825708562738799151364575776962405831368085218886554081382790937051206407266657484763044499431405799245884387681758912090523445750007169759633843985369605451385936887395969550497957828330707416271531335520219434125090277308294572270717137132368858918422741686541772830183201599042848038601705497605331005253291235133088285291217849904019646452898946379037147280300651717200903338931337687282276346970130127762460974558502266311622911001496985222875137249082551771276271693882156588213885625071352394545479746407995197216510742884613109226787357027519570824887496156458868367146448914180877073819783234315649090284030353775656691666670231944102938933392864312901667330148013544133277982585602317410489982693749664384989192019204495337173507961281850342510363689776803343362969766727441844288640677416909133829146413262902321417305909912356016096243205731677745020652281209201079453166251120974605976930218085030318399693121068742102945857287342015797335298262522134143436012735296916604976482610227755856012476589458033472645851623644400115860460453024370707057322225675207966741504969186990996673161141801201993613820884450180205806862550994473030532245018233371448961407293072954319880243867260672324130222969030608219460184057069394777223823945721854508027968796675458265007786591208237182089200744653115308014907255909821287253653248703040866993388997860951020806619046928323230148323532886661442007979531417533859078487658694247208134644212993228587030624682390926384605419171076891621442250299825942806522716427840622984451888237386568906070127299633310249068487280234660318074471838214266553624584740593308757743674735042987477375415604320707475611515962884389185127501734822457965296604049089315821857333525080704104991929131289843044391942422289521434046026231432048301252807932534008578981351068721858526076232039358115508844970193924571177531781053424500261651641928965749226039924998577365320827776188465079100598960960133491980884052583107012921746915115581381574473515264243196614613659168402850928278265245308490692481647915229232640174112061135968095522763664678983674595519292032137336156289663313169948563582890705801752304469712212349713955500729040864042091654172818103375239330943432864521313850051077074931454261553055017027299673238629847156598194914603294085425612324600390707136777424823088269922156827740202000433413001541959182814672964429468262075995960213012037260605121254377831661955502631706167609097848639760254357740758207309198226925148106371357673567442995781505425344384051471995040249449569660506382001731816005242601735864058727463428486459653818461074994094836417843261713854848449953093075324129346297750316319381048436873564294915490698373920538752879815718502873995030546665846059760839929075813754657760774693325596903044440448817183127484205113677464455181208996295108407592376008265392783061909164002809885605610753689609711713470971801376597461415013960019114385515500083811169513339647017566444678122010590228198171786711608444789354312869001498838318506070113739730850004231260227859308210901054215255440545017255409547787350917716957661853088711330715425359144907017384390967838585352033694300640842136597117052556143715146248217979210517085384131929837413389195392288212851244518565719966689820681852425977859962306152578623889114845212187284944919651838970663930307599305988106190585174860536179529652067752486103747262530539190457652865054010825433931477669719844098353318232436836595886905705964968228446572141000336071632584431830877701504055494109581118711291456738997976127899940169028143594937654253901755427766320766786943651231611490800186566949414422351463131446475177735433040975279516987124119246456585932286247607824851455480826648324672358236470666411895954632782261873271028392641674883649079243924920405629742454467469485182315634394314034572798018405653830224160962211052385927713275971880897899020587743880087702202007546473875368319877630751989690989614481156811080502415082679929089354091545178643137942154000524571550490359041960322809364956983918982711134182993152986113133105728928710861050932968856903904578236174040499944065306637841052976946195879871870976140724142189746235721107880039310157626836694218080844064345321824707689828459036311929026773137737515677459602615901338748259322327808263738407378803172068124869157742049101945498550099857019650869491385661384409526645752759432490027473624736081130562080251692227208518918435196968766220730081951076819370980655782756314412706560713274195310521031510668634902885058707048390579663893722167390631666457817606984209319287221997227135636658964695852160488145348625677520326323491901832366753564031224773703380478793605934159463120614561539681158141422910344351670440977312490456183544547092227214928177793671914132453636935310402305106219794017808197891257326271195135791737300808668236438504605899727276252736759790099738028728086461234360337193895108661564834197953369539416649882728371556375562573045572736785078986373018076427337573052153626955761632028080773417252614841619497919777427468881439454832207631420026337443573434158802163203380757966774999678406834735728757182328991837998809328500636387474794068613089349236748432537279883543225000768361639628124642035304306828696262925564021027143386047837294868598979981852007897914777711640437540133927748314415768997309773726626636600136974797871674204446997818658776540407954394530180850466222017397541039905479039571877511402193727009897076878499648208827676989744048174567621178853038950236076819984596821938038409926107832110091032171606700845819023060624273704742300051955161034718486375997716422995613350033172564451555861804817579300422186936345812639812216493659617609630832400320567988591019278687877884696664432795532861733466583525918735418979684289975882739543175663937429224859068761961641091784477730901375965727477129167605481579658045680872395692629023265047917806570598435159738903442204923410373456210836559547435842340610441254605149086202300695319618968241227596327546983340872076583067962484662471604759409273479273447887632479815120269330889319365435137582812931589340525125669102544285114819022777794826629515871658921514846882621298715082040441088267238178303416154551634300578603963537639891391907297814765967237953017571844044889172181261693282717912963683702193385759010502931383458195616749872083322421035898342561340849698227486754004204301591719219705378186027922172753202380497021006153677014511282812921360706895238537789962933965337404281244119475680844956346861870945941341943312925542492710657184381849063632963114307857098504410590496825173940856986661349927079601335244231092278821544702971316695617399405794360419301782412971475128325899150529696790832998795358774884256890846546412619179535739994854325448041665498849780686157124382219520482820100730197434903722896874911082811418074902520960910651075929176218998124714494765146162082690462970924662987979119627365110553475965243770306886858582693280036405474028683240856120121849753759594520935819359680913388448578253193370897346984245433196478891742627579035282351624029445203239659740719635826280600073192798425297245644873386050267119221803587466631773848565451320311555577167141895722770126287061898618152304224121230059080402964869652113618482633836967895700302388062732082085748205114994342529334530664267384930201411561906642737975029127343988472156852102798250026978511597766346012765611783250893886870824011031028694851655328853927273177938661072378208805732885553198275744857036499608878446845394658107791261831440985639233315179246762389871276186426179021787526626780672645056417173041691283011046164550836164809591875257784249582866507889046240428739699349541060371357714660286208817606797513102515596891646266780704600275417096448082041385552006336183611106935360717990347156280436730384192013322495254355193315484619035251218370914706744469392545646976268091683448421158529368340836511557635169088111709436395876444107828802981780034043016211846697436139377692461534640352850534521689982668421287439210483941097916108738493269288514986176231170177026449255836561152235131281545044436779234735561645971581029443936141083879631776385407926442135062642560631583144540263466444545403598778947650892555503841105769102837839302624800122501813345059285206912023856386788500474965103324762274995152715366432389561955253132624483840515094984978938063651542835189688263873109413594823660234771567299269620155161840204166818092660536972915998551686307077857949720032618143147420393838207621831997165218336312654056569590893383121795273811210093656187872651985115764426040083917889232058055760367617577910796409502430315662381508137728687623387123421865879416062599906001789854088632270699942686942353235302614558316097856811143516830876066921450738237255720629698970071143566326447917231204912994585676888105791056141139696691007697563997048040099939292221514014088356543405697170080943768624089255752350396128855463212757076233720094645314908001583412445121974843543179209507117610184519200886227701714286083311670068455217379308592592330339413427528918614527729437735882016266816055157814210609347081741588564355267520929379700850628336044961022584662494955933817034636158916465536877986611857558300337212946134046242931759994437649264883875822502629499717868596553276382532871052316768103837880332682944479756148018527412799264963381368772005641455903750415989269318669314316291203111679214463583567733814764373199231053149428005691610307682031876321474216095753069252015353044548904876436759182613089213055665517362909097081275992390708141669156226154370438099236953911307125928788578887969720823332365766666029686719753753072958345595667472299680796755475031370080547519280256015542432101789386548085179421434386754688413719384498593495290485256875660798913683334107561083504121907095631320555047758727749787646043414936151168604598799304898401949202320216224368102070999741040502665922703219866554657688955723583299322537055916187576088111760928168655724673513415429867285234089674631788005469387068459004932029185041156629404605377936726259619139086434458254488340763184808056844680185688601288080312398843661824878339375046630346640380318761538275508282835283643626340434348670759375960165531128948830860246996481234843941730503048287546915213465258014546664790869816568649249712283742117828403405660506092616854645503068870175173537869865563219267035657933791035251262359302141605648848523764015605776096555811876067854023412376843119173515918247860236938630243919983745857197157213521648210482517682046390728078170744804879669321224630931430354845345406383321392409420286908941668057741439881811688114811802458596645378500146080217854064458122719109571949005771349890316484661448191014206180587047069269941217753904730018713964161341584253905704529503567958337471225545207162938734143838220574664594510547059710167747757084091153752961714343677056172774265431156747989854392091707269617713052933257359354054988419296842188096630493791078278516043454946402422260515649364979132744278350034844362719521809680801849916305715286006487371662183491591566347266257065268341068181936161551187883129758011365962355633980429494453648696467397547735121878168799655876960597789865535395625722574330829572754287747444148523669489020809254176381234560765348308490051534184078330132433409727992802678266572652645027889538722418046761576314412118184106855179655232281405154283526175021656595372267845168776639586392213409312496768360455374549639747020430604518093452024714037144610019917861622654325005548880678856427548674525801625966252737564791197615067396644686648368230538795899617859633880820010417382995074720883143632682318291145296979413630815368233988654766916942236851430643085221640394853141634137510243449701500921455217458338645592450095230951468824859072257591856337215017004148231845707043377699450334709003101675300964083254692113188076716149891556250838285257127900837134663155513433871858896587808065883242784159840095430624242472625772982974104397480433378435395260094502785867965136342430886429051604902264711330090971847771770036134571442927457592977229510305456599957145698409144126797352636109390103713833658183042278934131184167220321795319316413465639008297360382149793675395333528379441518167916449985138522381167947453514646097637565303293600858761776727310186316226870272467710356846287112093081603998074879886031919771895525232115602608100726052306898108187089886778594372698040353424253913559374402921124930712822021525266864469275906252081462728479052732458185293893157027054040648791030550641913592357330988104759095964218599544461516510800141285174341183859205880738257275470170340509696962080204209612742553051339759886243747566652913918426669892422559001786179014437114124618338221648503614522110453937441876416578490634295540192246082693694518818180037311718944135191408629750700843938932818430132694826422733544184376519865827614929226485240448768682031012868456249573413964591501863883820568863990265198069659982102587904393116994956431635426556823760728299523452930840021167363431365617057130455780408394115209389118836728042859238064883792674140209348205613298284698656301340816804235762814031585274380759796350752153036745154561064929757266310086889731993744078276319266707050229661432519011955432603663660694121706826068671743147140476535443676678681835580652542626915643309751196483667304965096666334799272655847463735443357019144203448722459201590081412619371562007020744931806273087981651606408847577363835355853598790082747354717577460409309370161009736094254925423355600740729043132023658308558838408896753152754371747911018571817973378508905966199805653547830303264622640129826508757414165202808418007033211600667858126467113808362642546460929194406073654053857206355787542338894040465519241176369562542286287544790363311749223071560128646161446685061898388756392559750843557940107874987535486269687864573399543104846113991979122354171311931276709132908919215217528197472702482167834482734395800377579188138292545989801185565816604932880193170459802565806749552375246417807507718454209714369733811384013813665831421338882709805274481236180464228161593952824516933278407597181795832853896614533828735754306520430675530241283222336404727557507344100059108535121625677003814317184731453630991471369993467949327355567949350685392662691316380867690031661962302782974519895124688862699907065297946143748875578400362215363601884279435207534919477054459545459059113618410614627077965498227385324352493982158088614708343139927318322149697972922773085817023120979264581911677117566652233353399944617758320282600480266489550602218493765955781683215061569217184065393517561727504488651619150957541922888031600009038355719314040255797924015898010607812925322474628627568855911348137157621903356819370045201111491559389174514013559293292408951397307786671677430653784704785665861402116229295481131076896488652923407974096463143075210465097653509013218514480348251784186570322023743119095210656597280500811412074719904915856326640107715348244413495051247830473286121695150985298911784598171377730464450537494592448185059904282064627776020652264669802564265157167161374147185183874399120849420267268273674319222265412529284804137100909301136043901197619816829708546328524081570052585650818395496527399835285901501390441177673885436790487776939592390241630032421027538528675665752671221451551914645948155969375385146514471861883394660436356721024211598138398354393298939947644883223511332560322707395728159269257666402563436141654664146563496906317117257122942205278085200557776128916118201351438717220463343924699093756873034950224942482946502148897950436166443124784497780726951680896698775774284777556391885246148444870660149669533291685215682321523575063527926041700252617881057857331022554314709684106180609525194700012470436015442906032783257233954674043910963342004802382527397433245922020485209826934086157031278282616777232184051629260202805529233021548383189615255149469334091347521545576896986696605736105120536508311500835974998452149788280305821937115422023666594305216323514969456668494924196556681933991163183304075101926780181169160126051619204379968419204849369694383320949372784298185225238348240918503652271778186539635589443745211126991328801976012959720568979973086139213668554339316568425652788356810651490743089276884226191150972700807079113967033466692962337477641901918439056509468960474174672174322206199753441925809208895443552309683634790490048005739388964511605277587300339474257062100485434767918137701622131197414753091591608519946624120872016957110379765565284201973093584732812822590480359913387711217980647816988607962192301304643310078529116014495190890835892800999834100193528815089616136936024989653060250786162802020675447422113482548807125685045626433234460926177994459918185990566794529792117209550034447291614834813695764961201000955317218650729863700396303071891485251502669456969693553436569313844697711632778576465270018001665476843689926816276801188636522738173716221784042510111877236286728699664309982702963809034704248742359496045322556630715971239932333646434066280035571107684999526694459416923917787340200847488324768579664813458397441900421167800455748805389276026097499465563166917434694734976798006456314391884228119068869578931227486872490617259708162931134304059177520352752719376821301343680798665542951900113175555686320227020956239765311252531730788290944202109022642511246757940088768560511550020593068396782026150221914360272803028913837434356600247464546975043143797097588987969020505743855741366802916887500237397479549605661107270936999465281330550545141512008297003020671798430813234984297654753270067091343287560297382727752133838720497709369083257180416630420374956480595812213902503419190837354381579601090745272757713570936985787805712934800324013786606174656177683673933134300936887555584078599679027374443205506971268685793314298061176166463376551695001951889795674503166611304982866507700435931900111626782261855945686663924589018555520682141729063630295295769808927997966046160228880878597322596389858983917817714216182025493821492241573579826985725345855957239659595934955067650219607506847970019678508688429251837724843789643343154568655949681781534336408516100259875715922828329340171683930942817238526131304889978309953902631902019394828204972367118628042716718014550930938580686164517761017781334594600249749074468748660231446411809353977811378990343159297556779817181982495223828437238562855709871645368813361699759057098777484819351057350552776313636041953607892594497185203317566670138980430038534125390555618591215163218537353068463933723190941185340543887511158667195624954810481846806223726421891475971382218817081768963643940787833852118904003586932142670881333797599098727789511081518803563225988045522075528880585693533550841415284428870751024806583012617344518874974408521871610509494031366956103136058734957465280967849634487239310216776620133358839101691618390419070594999844115161580413144872375071763014328439695361714111957095455034495987823968163196071827034326483842847301173966355352769422358959573897561184546868410975189592516742785958819200735551177158490087517121991276976243226124139404104647393741474913441652662131869077430439133688476941767756570521934380572539254965862180962366298149490152118830323322904320233277123183821039926777728958542308734383949755058382860562999632200153143544336892143881625867946954861619373145020847378891023114787283573650649684643316047007355843093969096472189273670536226449308781020717540426388344455517371512285327466602000165011437850555002983527694896109903041230550180592897382075076771414346331319546502811266484499337282376859981707765267466463316008017358351902128176000697228589924164940989423311409834507514243281477125959304219916118112396025697681596033944459340773212916942322893314154042533476808808050626665706756748114486267755297704435728050203334721151989251189883385965996582062798275048969330706008554368604052446415161571785490002007250900548812389299101319674980809909728760910685267716207145019983257940381216263586601661306855811756947671066516865147606805706903311959203351224267871527720801503308976842646536163674402667816340717332969385880572594086292747554417051066685951972028396757749051658608015101426217588792303325167957733256850451161846206131542236710355355308159274429533089939297126323791612697629847120287511810692008980646470151433004207901507194934717082903352354265029150749651385422872137817622318982426154454211400713289793780952555199688035992579536554257886668547986018783841478752608337788746375233862371192195364730419368730091051679016408724299757605973632737183876855053482344172732276375196596450373812346480183570049268628202095473211055734962403518556263146370272541000740137794460139659536170828006044352648624442551844075137846805221754497489068085860278078026465476375120164640484496838217198098226077129335399279453890083279920785553908595053915891952825056398458021399430275030363973738061685274080344803656650423558094127775389493010218963534881193391038727649827778840345901434326405124043674291648530485420795523667154224213719438633245385258439183068474316940595918039071224258420707937754373307170045833550695359090231730421423320923574524221856993766843577802616556037478609093696528431955858619984045152356684235086917952340176115343309660355118213281135414643871071137037491503659961327992797719421425103962914626940899540992602751677873326673841246767936154036509425853885083478960603613502153740634795722132121293524318008462601043105563282536645845710552089152449901221645943407812949877523935553994403101941789089175119288941291207724536240707409907958151096947664575449595326002162151028173305082749266555655314010790662139308336777938428340279875815246513495601877951981357493292734802590415959577902856242612771840315636976392510581159628653714980830515386929231452533435230564669786604090142121195781061769618880657177935378139592206839662622657849570447033869896903218411100269415863107733858279609228880604881061245878318431770276365145153457157670951649231490143803407106092072303493214654700506473566237798945322329039744223236523459174177225962194061622945075491507376918418875256530368009646835543330784495304733422279978230166001702754764986359587488640819547480356781472713363300066314542811745583989578656011608390516339075081663685544947024330494936794829875502213099094204412485311907713822951558808669900350204550311310040757164518261190801610993588884840564194831204034587720192745819237698808652308888451165539814608951601191113985048060044571301991900860308419954556144567366051389619822212448101181377601265333034953928615978591670454403707489589030414456647315742322327840147051253418550837290306021771617376826754072875547067356543784250248748579340285788458516859421911356004559777105373730509455763868023264225733929801199874229650433886616542372445970380102415586079378497562690414996476375082261800844092864378681435446141586890730284778743503122158123883450036035996799190772274393801385228064964041920039894946449046994523507689748599071017970935433819943824923083468460563993608217208624692544613012969036491687224989690790325255072430786281611780637841341657950427625628116118607651154361331558014797122467826756260604005658092736858015980312616277622200513307034241772726968010444067023738160201004662215263582507159079431404080414503848122413917112485811009924265027002765607850805603608447621104812538823078329782516217231787587678077036758541436781009140028510549445789869708336334473107317068315060704190442413876910088066911709658337435600893650095197095459004042815888005071223125236174015788675855110028140827675959675940583194205673111844896848454882838536556635783666114805263371757380729776004058816972689406314384546794543379255766381263576711204339397278898075881248204761062977700514152755829314602211258175012826070558654546120900547456499441980610079487734491624791683545643449373188820946642262999029628961848316836573129282686819546846424745000785318736713049800284438113886372122892099190239230910605244545291905872108769647718688480606402386611672432684820252489132332737299925900593713480873394359296555854656675116729764044855555239305223303511304933835534005787276726688883722856210520694000854196165178149321289414478875129182037354916025690227587430405764046309976950685350574233429714178569084720600994521415643375660005699538711260988854060530115818848641464515212563045710842600219790706644032520833980888346103954008115713890952650666193416377624001652924862083574574226652328478551627276817995398148613345104590827466958686146315551407966235895102826176252614722688508051525535699228943797362795319412116141871710305147929535041277976740586202181119871689732673548902853734946365607872220357712572996343022522323981965962289186294201316296207596894741518039468466770158007758246056754718375314310979227286986056970380292695890180540452529009624360875827656267770406967148210177180353160211043075132483134136867971301749809737875827861299260246609211601875824962980656775750575133574924448705224609437164610221365117517428860007780158420327945972257170725970406383078846823158267860075931122570634607900720698263222505583187105749589041027746234894177147727607684831708360744456366358970855849272351697777302797689714609391756449445065857065970457201465409177524419618095364535107865681187726044334711329669156792147016748395631583905403363105324835232276225348282247802297491985472592923986256822868382658521864474407125179650474365149188474711175168705829315382537877330102469251025033530692525354574412715038747195787942072464000323295319641290484602636564909795667433663369298118888501319157270831747528268208581343792528550935592040766101940436257572822380317559025128645168033490344719072194932969680392375407931937243507948425897092513199113772914953843576032419205453639617655057330663897097181960917774708334164231179272080864768161076589685906618683868565713482463494688864299738080371483784856615770553587383622892569006658619109876565738640498556025398088413444596425659811932873368966799136873375212928156210182374768799844937654590982797958966972020168089440556554820904208627618564508610190202000944977970784704732468096750044773403818564279719628734996209652178293910827450479021521723010178929764110243462799568766054449677438829799935294139677703441372706704350078462318409976768890322704745141948978792759363368395985304112116350338266741065362881375889171163938839934142325247221966460809852054468490211859848065560066778696616870869506114255280096913579939729991007294006749971902854485263306441198604988190660096625231130127446443388739147353330889759813277382730889197953471268981164509898690752445113679778875886523818069895867453807065280638862370831866838455331720784105777055646414706579515837795601430772244727941622905576511502547579187538841047796740026021422549609421787176900298474862815734743234708995099525674934235794222880037864042077180473122127902196224954229130985929764336008644196790624616506833241143859901133660774384185391357625272080493895841322966189086092769417748566002466519397473632340208366291229786066490814114335112290678432158731934396057958677688251592267268465453694386930015009862934066924499705772532726702458412358229390417421441834147369008295675133898584939574272927331757978364802525174531169378808347780043195867841754701805717093585072706418265110286589412345505037973639989545497405187611505500019862905149724991342504778991907052915776190340642503885279209867374914686587239401164010496511390124271614886136520236485977984715395954791474508902437734594559121269815654378880290052517150170620654335622989153720965618653930848066911296784607128324006663373348087922479536044974692517730801159910959537901023870380380212634749977633524533148617044453023324405911242617774816260097164882697938832899786009004086915331346577004912540213047714653830972435121693600668948100625207279683678724907194517820961523204416470760840817186843278899578383728577233266555927619553110682491101336344387114950206245234363858303593342548867426896695413248471141006407892786251325482470282802971039295175992533578245339898063254480954917800862557657455982446311540392646853380832163730266322160287934428945152607085622946400869995652786326481421180872824262970974828563321897368318121286971286527959655515696802066812302646221984008776483562300605913847574569082926692928312732522277270694038522914265199661535330310112023818794670076218743893083559249249558314279309113785363095925486020685404949365924441500442501699736932470541274506167584601374215342796502951367521415698575416269880853349210638903784949222620006427159334055955273737730972859665053591388767775469518750427032760859005993501554171942485640533555816265636992994751247130846109813634043409718239117302520626016281363743407483182221646424939243780518500009831487625093866693220317514747029369084140843800468255961081877077391171098115862350182847919351331781074523996748687543643981573331046114502607412347385751048807757237589772448527404702332920669958912259169191889875895341020032518106604803442137456657373388137474504669060760669909289448465478094252853810446275366600155685258179927812014148982712509917512599907303122843056326542224852646395837481864087989441477346273210048161171672791410441575183845553625536903046657445403930585101109803798788251812744911260333667564213641947342178287520601592434766518225530846278790684869313180130268666836076907682823311386809750771432723700538503590955961831185457590239378829411880329146822303736369537134774307306403190999208095590993426604618989408826936119828617121765130287893596775122043480069534651861766998097777855396487349839698152844646455865123945308701814411643130352472033355619895761862017473660030135854698278814575275519774818384545833436218104682106858780429589560948911335951654017506326007316088570471435847932880672189593115488310134822385931487004052506191520434389515565867251387364719196119581588940052018984257725567785236995947574920773961710504354194020933758677729539956245309403183083728009461618564594915238070781193853840995969380982253704351376032310236755210865144253818414139616161647309580473364347896409575979360155123382191222681645301235611596035082968012132493859690666459983554183906958780347918825173676723263619353142345997418375019461878668925601887659993354610288403201338786961765471696319442028686594159873111990973628292980283572026530195399608926842667352619143484160720002495819285163960241163077937997787535521361265162202027762751067242754266350265547353217455651125896888137986778348602963529496470360234777422027483324819438520316157771154865440532927623336770580304740702209932288378244274770010851836133053361652248444633570874032017479180344255474831467300040804741590329262352028115836025720882818245086844496747626609267200045910081448075106041724355170708962622282467494372383723985477030619034320442187058769005659406793843793276398650333898255082312756525848286290341996917990202753885031316524856080150605907840468240082956608109891116983466640104423985522260429335118268976506291544201376598184475048960372835819378942742672448764774891045567871397818974959508067181147577627786745547055874621128400073782492628353138159160862966989865965113296229083584212250416476540074977512786713362095791374996698781017015064334341879145588518158906448887526374330816507663308422849973608752348320661670347326214361752474757798500057039242918407775794020412777009532481572754795470616802937135396138849406557014245712668082353188817208292105173363276489373155929396793531060337914441988179036700620078831442492684467804440208041056366640431367181044730174347598373044518968978510204532297574751608545790681055437174359615178837688897514157547656552825497961280071001533554724017708886567442810726747684009880869861563676578382988119607457393276926363443530084857708707080938093013660081904935315763029974791248786059625249105673107665367438838434351385972406493229341233391975532334818066941602908127633152652782718101725182829994784229439049184516957599296114773049876402051502915498899521355130167506511550436028435330419640773026983046516084870138298864655187878228096877298458453409713111871446787006375421980145234746740189578164007898071228787301589157764692478355517377039525721412797795348921858215055509706673826741234927923969405732356625302643326371791878332419630494635001393681922659166593390280520721550215330736882422887190557363155398049067174272342169831667085789442392478631511237292270685475391012571783702508967206187085805447292672562364796301805211406583700952704254829181596115894114853646518283913188196349814342034269863253364282615181131520485303342123361285653678476909770301630486443119760117438422154458929415819548979643337462589343715911693887103319560251919191858051657548524240974172721042065047595752866952986845862170939527066880908550088922220940599132490432515506480976412658070317808482314191506478107522291482956720423925801885343613136510944909321539850702664453546268251881831775550788279858374101002102504854744955602061335372075896845140743529195765120400107156993873337851429528177157355306518288724612315365598367501645577683213332504125970351244275647950074219400626073795333556215009769063196660215137043332228685821291851250894120160183654245219185369047203220796384636006664754320526898127504241495594105888569136814506053078080070678948783704621109372168733400429547716527917667514363223828889030772192091371226849224720849900531674177266561235928842189627673330738527340011821865365701516294146116045774034981821397753158668180045870505555116959231877701597688393419252818408779597883562495053045116506830356558425804872679895619071547274689627646438569814028113259096225161742972638930174180689970233875528599597397900971314332218438537947660337894422917814396327907586320204852386204302783677560450366751095169098213008879467174978962501463496965742038030225960664787050570803291593501304135693794745696860348735269227883364805169986164279886155032749267530593081491417655457514021787860347513073111824833820580095797828942928703312383337924276610472799470432997728292379940309629847072774641224209851088623871583055777499949489334887275245886895502073873903632693653525072233423542797388548017299996233385956024133476159411350799727013255177773492329921883836788529177104408810778688080393814572648438116342943152202525283619292670818550352963255147498975584312050909837290080973891997835624485579511499824987188295457628883887186628808204987798570255825305658484819980472114742170219352188680908142919769779145739377763658685991866683431905363786105752942921363643688316211264933060303204947718022265176904089891838004393470011266889606303331081208336910535195325953970702858763167875016744502665527917482845573662947430720140624524243601378247597947823055867571038665808263298445329185055647498679752076099584594783651319792117096765852454330835290755326992937772741072104982014293373113375282028961264208711590558634007989557249056891129187796549226287385653115901318522471768360895872846089855766111430795846041197279856990506955743816710134373660371231041308771377735944145364818761858686429177104437979351780483302019584928886975885859963299613280603695568809661947915753300667571779513074068319337366012781484845743047404921108313425174914192248757339729590044292837280774344775427643786915511684999267343064962437312923229567148391266648411260283655613666915874733568478852946390593936246999097726006366506870351012707568006565896530632346596253655664775290737436579177474622242216229974694087148171672613052965345910556399391559787996836677110682286010755308105002950307513333530390776992878880314335010262407589947041834810374611618595393528906323542184704346547014416075498670356216315255698676361859545994013082516521276614626099351430952397189740897154229558845235371046251511790062747507592359974579806700696423500480788531646500056022792458526651963673629173344302529904320216532149088727678859721082520093700743928598177425882335741416219123324622723394089154182838970689741172338223489695457153261603665545796599561318751253761391190382451485059769643894870541926660345228149359577394882997002580018766517555341414871924086498824375577497799413709484576117115699622703964527255911768761295724337510071591722173104500427849019764907053574999574739200567592751230515263465304360983985075291029721097490679257643876470734583979556269947170710758453824116510398129695709321663701984817058072510628101802622860287431352617033145508403259613584196587882405556915938346243045401743739401413639132536493439020367457450099144252545347996656487724143843692224340562443958223396809948613846751209736310855345123835340342130886456202579306386707022950823282486173650936653726041267896959957091474640149412561153815264460939085640552675230134225248764830961449970042496209600834305635811514992827286108301485340590619797363962283076529704154996393697276311422493681915414151878747882015248774236912872829827027842116734183857429206527884297388703891994018131203757909643213916432236287305588691613794287772931971394985335312339245373438339457527335881680347806286063170424278066318871113461572005515010219214441443564967035085706743763942992046976732670899388919482975431470770462141357167378118290511369682545501616786717529568405830180372347738681841621744545987208406844516026688013229627533699260969525101642750730840722160844252760804307873966270712795204326646820757885655870808765311132385225335603486914224392854143245300645761709204031992805401982060834109747437874807088840831248459062796404007554478689539166466949790041691389251026272680669882877251577019581583156648274976557169659416200500658795105295314754244389542182413766082357973915633487150004374234905361566762996608686528842735701289576442148279515775892275740450589500828125686127005854186339996480135427760025683898167492340629713960728663076582874726544522653705579669332453129795284789226483202876107353910672724577317383434318554732664300684152791353175504625700671453615005722834145114423849349534301410552059997932278222357646227487725943715694003758374001505056073258211878696293204379037321731374627607318642748026079075938223383388308061457955662382110762214443975709403837690052439060591812820773318109407225324671129660375850898145832206789721470022799695628841466629766404207920863331325354902600078796092435519070210400351924511178755204985924642579469661977259743729162669428144923162028123964301096805170460645584003076051409071740388967314672110179721811884793710501862026289810374764204606363079065264377409568209450107249844227377526951194222861887816426677622617554848181092822359406534621066766962911587958319119920213151249267002138123121880532002299714589825168741472424679795180189320146312408085993119085591386812679419433165565486026385116946202009648339721859715359753061161253144657132892313848568301015728042473054172496730470885098594060886249734952341311584101717425556430025680139195975999041541960917969681815874403502940321911269832165114682120049320712235290141413234820003059902688326606086948890315085995034242664974422340812534292457241617997965345856562951699141887022495818232617366162877983209203302172691134164171965381089505150663382283818863145245490212923946078219965197496617132425262774100980108060065565736520203535156275103641598329847829944883934269753773253602361303711602774226776281344114366537119720788724640437658316149319678024892243590158711008448647097079753335726503158583273855736211872692235186049658753620735592221875403856768451413146668444264787102928311610670988952848400240120261433702410739120156417540430549832335937051396227229707342203175957590259708074819981126062103003504874557970111123777325233106208605844683374221506723546406612600236269612479136860163978795803776225564268843999269983188591801803536911116307153353786906683814557593453608078890441770765332910687487966164817395047588893322649351159605514611598399258974132529364656174571565906310597533915369564650046519365051158840194167729564434445101023493696124433626189098770892630812835496073808328672807492778623119076917473143617017344725478357191663712537324881800684187995958690534506696186246327980971447114816759821226845372156925102388078310594723159129351881226991800994762753416726940626728173324077718806637004283546151126428836385843034904502211611388208047045343771272935662220115881287747528185656584553750838896024540051088911538986251767572743988423134420794158459660975990930285775857485320239133802544452374694293749513497744187058924083270715218882372790253865448025864838464587026283052237387484986577888051524684499895677564973231125562941814274132998831868073991196924981467921538760028736805820223574662518878062288090653188205708980127814716007381329762986724754544808116938066823016994130712384529606616522609240039774930358775381166048202148627094539414848378337713186352578714929252094119740624386003890332891621051103718465772829792184005121896326804508416993589679513088988555630066026681721206985028333234413078814774928449366088511238375173066674935622257402498420074636791907114860761770799009395092735113674379187900543624982275598273153949685250044889956962298785131692644593501274430323457288651348314605333385721060162832043284575829876469510236565848395873962662222480800281242348475016369181882358629100623535019190264243062226086078501707047940578911085208316738749335675987294741255384596444484243881111389448985389842852833316836506404972911800352448288395754095086948929381624184197692214206633960822267842941291694790073540498801338014911634453412821851525103662861402567765691944235809448489041326021003089928089515360048070998335686963605435500263505802409131583598009996323140040201516069698202038718017050454152658254265572587365238213553032164092304610585952942773233112459375121536824113912052985630899352478228005852921872468543864418921494649279209628366361745976804505394260993169734277943079928659993082569049323660446278811908992495645241387260984722998963765495542780084051853167062459621791625998916554142812246978558728012075826485701591521908808929963443212046845572636277955181408521148299263808176064344087500657053177129880847364166071302188144408587831446822222446836636156733029192487419296129641921969929443222481884368639365512820564426470491203555850739050115944795033817670741487311498684619967783251603173793918279888137520926326921252346120955556855186215308583469088338654960261420144413632081161755146637776156759462789521599149359383079900435506915847021286636366815700474295428280650065060330622684055441208532903443191325680808189565216455082971255091992143142477166337630534820020865802076286103824036740688462687139003815462941488052491497737234522485949945525524596218235537871434202760486189513802670193597819288841669453299123919375390123870297448396272348480066765940458865540932604876691911981376619965903642453694739086633441216014174764290612464702816562830438965798051478493836296877709854168818845903148259767019646053858625238699233820248601370144174571606503804199842814707716574649421798499618111905080510375506647160593543018400961536955769077771822645980155721453181925164101683561061508461597207851598896610395740534692822853651307091852884144730332186850063234131643426095596495706560415847416291592637701559958736458068253145492139605443391352593703264144325509396064330893527009351910887943996806542734293875264225669340426917085740126815857258739941930636099991013867033932042334019090603175630522798160627442142701180636770233051187136899657261182921512424803991346534859475568926265818727492631003040854394980856800987954318233314641842176742211168111033060148580203865455004519653762101940948150237299736584122257010031487185718133706606302271696321622104092911112514415337512651966701666575008148882361689030541910879516677082446470636379314110981803198307261306747349752257707720088063248470147754884185916702804993433802875522689588735158275340303426946613525685804445651996397887903895400836753866939108069016411331529935773222399883409385351685148403582863345490851246687702232494292345029663484819071636086167353049833554641103231714931498301866551608929163162478032465782627358159909412277899867028433554429777837650326690278978603949185435760872378823072782841660796232091053710165675626340114173062207407166989719536522606911700554909718851148390339243750596456379017439209247641103150933497904692856661769217120631332711837740922362581349149300478910508263291320602863792225384326318444924916087481350398690889763677476633846592051702673367929169133362957494590618062520228017646605701721882170708695958163573910964430768815826250745519117359344196381606255848027874529875172000474612782725414800923129517425985679938726233009794200762607426239683678987514738821764376517910770389721021746630341478204763305806655842472315701058872646122806942705670550151026705500159476534262741748066789894119443952345284548069857327793054992825704112092161399953135390831241175379489634966121512354055959333745518303156908745040451359790310877127479005659610454495426430030853326890698778556620485830468204168229985589063424128431496054202941540301045465364861263563994752888725519632565451559413116304353747957863003750505062716170135181565875892743122000709757115167483407906853718295756087347695161218300109931723248881915055847302572742528140905840595966685373692985720769987997431688434298726731319560352328038464975555849844335656908634589614226627384825551687744758318578649869667352434546486678598048392174032043333071086154634457209273768048450207055084323468560837195159825570258750718973976376381255522388890971521725392800672190671116499056110459442733695912500141066169169345319533120620177997281721628117326402327080773844777415528639020716715115280426167719478503893417422930018510533177234435875653527706401928770398277127590249538935142929151191143360638779407588945943628363526880589685382138319761075986525538542875587180003772945380961935474050353012299473324563564348519447763789818646737915575495967609446268038985244202877243024902098898915498274740745880308169172951176702764757224634751226012881400630041595934905580672545277719143524803888019930706679035567241610642620998509793849367085958263766703074458127605479647938025509050283913779712435151833248567392712658580653236819029107409544174415798615288435327343400407170689344410589885703234034242986788377712975088097965378047468192341409353732574783008171063331771498699117966995084458933374989520729518236656106670178807569156686602590462493323018827926428329099771114499669591109643125952601516517982534476944215465505246944975931010315358152003294071892182241404291321139552387457000156161625056793618915467534972865230733478207058155022976462491943920099971766536101236632794578372117286601586810853220794239787162607294179761386546760269703713473836990576392523310405522320504477538567435318765062584665992167032439760578386403190009645142740702391621789185576678198805253006077533460999909511085584898899250705797527297580563731848582357488583510594221363366203261842528533181387850033599940841178723428069948117032741102642296166413637491922442363055160651453667995104398011830419440885160927801694952582665275358726509610827716915482113780554327008972958526475315724145726048910764855234304560093783141731357003049834352754431897869668823080386977861758219398518278964360313738838042000751671712903261639388061439978421437716973787354713722306962881308219483392844999128114066597273869854609518988537058466165512335669852177691466265456308799981778975114879163493527465857690571414562739466710854930441250008391369719529598417245887513672677537321966729997979560710173082387973627834976375880341717165028544154248410896211663589867405745691816656184613630298960746942149070672218915051323015070092304046688856533678278641750873430423883203057410820892689648106900311171378012037621747373496863976305689929306564755402139525514211978770595511276375420134429668448236334501917338759902520014260789834904998816111032322181074699933444664439158179906797499812595915815389774646781685953068342032698680855351634266838418281674549241213132512268468420914212211034368585380509567620027227470506020596236251692803784150524626529420610118872106134339201680457951469731052527609377741809485212402204117150402205449628162381401794534572305977636415843231253886050962547963420290226268866847622595019765353974987167468521775011818505226206343673496358515092362687972359786860688320322281254576118549325959813121965055871525779873733456594856339527306230659972298428605648281200136230387747830442046372344087810166286560102441835923849483275024328124603074121061275695804357523792265560376436212271209771291528230577039320888154993891497805408996489837767284679007045135603305116246094229711883308135388726542145484555392829121528605208687899409822678516931945476799221024014344430775511597820182322614622142618126934015869057135769319337628639777714385384831999431466964654523172540502115505898287177099669652961454347750252200278334631931594988967542789363603777718622615277489111382090569972631207782318353258690916147614595850195720306890628769640084556948681779873469411710712330160646184338871385886680741856224400851983274803540605779006437444757034462728388176750822344466523136131944517090893289258995549905440442609440602530039560868432988157272834624104179565461918620363275635512627790479672450654949803871575701908251685450090787772537804152146942280347218320425584000278987081315502202405238690292111807225963864980672812683368382267182757287690779760516438409694176419276153238397942817006296160818292656775553560312742147821298739539127520964969569913653498164208966215474459756945983870329270025552132225055460410773303924249398206608136778211395502484041560218208405041858747076679846947644070725003759958995055726005766367229661063693460147774703871186239723970569054083294642003352172797726700650966111175878362894858610216666666441718795480430875646704008772566409933959639884033577865499758577912352892904670578746172879794293203381357103063362687285013276462500494227146711684103048036455933387827708518033309566728532844366259490699625170178794443349130328116316778488112065661016840751803540373602993007735895628957023803662266109671764617966889804607284428505210520555426235491404234258294082120118168822747644125180389400568246501187116545741186334804991011708183302245517589563535437195171623810301614221538875577005525332980620202542514143500820220845164426408575226638125420634877350151919401955076839141011190078076300432577428765978561889253941906171077684851700969053565775017481758053700897563641211946342828166367296533659064147207975972835684589007690643764665916662779097516466402692480270846091967498818406770987470701634269259919231439453885889942946695710371124361283849963295098824379556571293205949659923482207675607569901576984580120319071622572995662956476750200593710309431845525785010660413248209012396823998783817262514875023006545972613455641771552457128825935392605951414740097460842581999096769174482385574158939074055940642309697348233385328151794499640638731239871121650207897937984211864164762819702030440933211093141387691564242090946031105425475240483982024233522481514814717909008486911241891350463228005580075113765681853068210165236602114862387317554900052553423382436889270867087664698240538535639204610855616043876499435637131037125820666597537695759713917952396096405654211130220550677360409313448983528535738766255340948930087252321405474594671746303626185639126359678696654118965419008631923808411621889593705331818459238823872661955232942504042517454257278162328390638102287838328654021786274630804881956877799646192441827993416454773072297972384728149614900296211121440271329823513198781967303753246223464931043863601675324894178641208367702864051253390047677002153509379766490495512601293497915434882424272779256185921835107146033774682222347548704740174010512664679437301035013265034915446275856782210338448589439290155285826739090581654546391934169880495735480956809782758045248580006827402882438281726334730444928668086637454105475756920905329905944453383768672551418126030877185370049258870942806648124562391257049995081789598557696435384048574653907926010272965478265061016869507804568029079220463824394948655765303389921440600939028470559860179965980165600752890897408041782119154622006505813742021195012853145328050532721310409369504524583231220970910759802421252992688356205009326447695146938198118914687484218010379748072955619575273171248717818868909482008320464118301537385071635292160124908613921287289039480472799575440128234820645581942384088678451624107694703242108170070353129571008277513824214997148480607860359078306557660542448097309233436608731908744280270297332024037024489142574684571107718533535172248290017509946033831183619195813954773562102441273907762821937466398939744013724140325113549848492040387247642496359140500980908240994768067408797988135106778874176466744803999806910897219613640528951058932613363652173407665306988796767359129227814740079582846511214112989447656262008034249832557746492114351928272046071677339127581106745685548078420921431220108228878566218739005824429697868288980493720312535870191945855561835318853777126432035555766628887494607445797197615441464654542295317199348233473539286441954829121678682982537944841491353253322436379854068845922196676072241208048180598330734680831743200573062972506717031739172790081367641921254462673309132549080180923750487500908760566194703944761689252530839040310761379758815024980315454174596247197064529841450345913366809804117833181740407103453768338898544950901462306943510953219372954710327827097102253067778282950245998534683701810612272290437122607615948662347413125440497468381895891636268254404290507835016767090950638799858252801640189533706702511305195540249032129171352460419987039448760853745779038337144289953078913746618210579903510057412514107791931207345501184170281379627160931053764563581247809974753753088182597895406968001349191123401294700563319240934530129764479980829310716069338973437730117337871674273755336652062468407242248305196718348077710134397146686790518270255788767958641063984058044674482471023321299998440966898202568624570643427856065352370124808422758316143050709314556198969794088092937644759607272998508830592863155543204742631758562753632662456340013979601434705896989551368378948951977221541168026957368360821770705169898194362220924795914025324127739930518159056949513428996454824892597954061680049492574859450574058205271685711453438059595210397646679035134216745142257301701253630407690378066760886380846456184299223901710929247095217509288397539182036023448737565044992754617982731569614645781126292612704516717689376943169112802610049370298568730008742451006305752878544578912350024842772952669681135226820487815314488946032479653087581088690626208288830140551774290518886901906531244375848070760693361009402114992384620957144914065660786160692074896427580523232048762706524813254161124724930572289689326598764646479148800074632846953458628776986131359788554183187180704622532128774448054622469800193710039109741727050004375002815503955496189713835586334494006741346760427182278546120244908284033271581902925430207537614190472278013676192902080952614239622271753500277188124062547506370053860889027353423776152712169567373466610425785293387369198769948358142902231130950558371994146639999045345741831531319186825487248814351929913011529158644220573963734798319537292043609473063411738079227143175781495873220314986525123290123143682249558752183010934227756864677400148015941958010961410242135841437561896713097190257161421950894214050666130474518386735513867443674282340023780288562018738196078992811973810736287253110701875390958488899860763410941526374193472260599069236916613304538592868293909266137806214513994593597362301501503092346436547685911418877981080421179484823321633996705099942776836619327613394357076729187093074402125868324073460888765420957765260849909293372661005955521992812182348696401909412280165012577073588432404247935522968488928342434744104274794271634093594986106766605952239660543128324933830495930931483205068604805272614893910319145751204954413882724567682432696118582000018121781086774360673980776868278384008261545226702908366507395958706763496209569734758479830778091064870429634641613739738182356950791459030263882765680236567087219295068712030885545627646738709230001766868366290086424743786453632294302288560289905771160347043008458581659653424395185177655603437242971471835454460378956286828153123638896100614010519647696434648775058635061898476419996204867646618375430291680721483306674927528419002760200671445126593668299943749802805988157896591346477350993537918847554437554285811627632835874040779686935222041901554841669218690763478141164702529380436267873609022356574198831666257815453946389016522311736700109664508478448549811102972400216003973502667552400386287612422475610436606095570228406926806016403256429369674995675453444939843142041335947088835804456614652316153667016912883830227282267497361643768472928255098846193908885845840693967510269331062098384444205083488737403933267527758339196805719629173046378402857088752255042703588549764098205472988649122782302568666230042320622027690581436783515802626769782398529767687276727969727004725645666335880367458914732403142464013503180025504577206598439430672009149196793638539677740991784352810922947857839215920240054634997234734738572330212318682520906779549633523981207551721285813313435290707407955216489736087184073616872003393789957895802612100585487925656009669955710076985883613881669192489329682810453856873928498691208422744195971556514670873070608492394883941385478828935838595550247697088482113829018784791587657401888681017983634092484153727567502645664186147645773792675583632106586679082769098228139994758116809991861093565867084001568433834612360116026612635019265237914252382894281874834339226294758368310005599769351905986853250085345277903373176026550939605651252046418320316376506880488425375813542464984604719586603727708847040593629540359724847459209850092000116063030260478214130009809827210235272630900261006007517513108548098476243790814503525391621726446178494265285756887207884601923576242632599761115205293091695640612959629862449971423629246592056148903098857916312112318980718574777632089975675533041982636022638989828445176269199305127696303516517644331191137204210359988368423166183676495904874106710989197952929738415839263399248712602265626777660928361277384056175793212656178109781729004807095241236092432565782140924775172239933432882768034844455238165593803520155089572276304201459133782443816313263623081521365025157146428949547420056166456699571430717963620887710850308871229667730874005792175113611214334292251348952789703701107220669619233936092757950674895443969918637426951581254181416710493483884298671718841463987207143650884795633506856795125527139238063515519113787049114808943537943479369483528098526972258917585927682076087023642572582128568173136379598103183180524530621986519315849999835176006166774396549755851464239772627025571746491801134881518897290906901147469867981007509176207136234078238041405247235409256990261518857809710234691165797652456856960832450238513127160483730417845381579986738825487517673116269596946267184459693528303755082804249681472419740411684291791027412220411378273696773122710551969591788234619966582834976158171656606862406707178035027938693904306633043884593483781290228570205551015903713740126458916286698975987406776213824370991996846764337610551744255231439249174540734990628655225149755264687487332347933765315289537073568488497579625891525135484715224417245803021193778794450643871666304023526977297204992987231182079280506546237465772439418197927269653072542757900902310562362406846436940390858617257813402249981468311175148613862373458604731256439313173573597781643760722059066874590589781180812164637232030728208237498110770640741184387457001446594289890858861107242247709142003027204976915379094716904294358020927706565440738165907781243674584894898446960118102396483327885501881014582819236490692234619093031030624432098758803622236202976775458708816055256314883290600793298640229852153761873430337064628534985282151152931963020420916181554179316638274051853259809972295160769750161735218424940149463486225598811291746448903870580900750022512366131222316504432131973404303083858598239937297288132228965183648671434740323387279705751236091679778866526937882764418949992744308933972592758813978726728134641112518529452456874021948629386841195533014509258598500847037823752985874737240145749448721269890998723794517145244983984332682384378683798759567985284420593644456021216192169392266729526282821528593237366468600474449948423773944745067757988101639597468066822121554237801195875047677157118521056460960853103514769385651708432731673896524561551505141688048838157018146677084827038119708954735706976332772408993530206491013434580367864286767721674490149487388960909846771802354969043924899026261644521536665963170024187134050221626330145196610372682363146800473922225541912719734236509247935297072173452723730145597520787389447789111992694366491106995894613510438346431880843434092181354866045802706846726119828270639709686158244088171606414613342882598292755026099247454923837131600596520759335056582797912500974983559118185077048593278976389785406477258065425773669700590990021298674786373591326064376792337905678137960940311740044510375644732885674243879826716852125486522455975173336572302144718639815558431010243671868415136746794378953917411436659807187416979521545836201891353151399868732043364304074232900013463831872198136262864193722896179969691921849917182472073329112175862137142428963464570175728561267979457768395829414590522771589120311572554939930640409183163565125060986975615249228194149918611047011014320697749809099166285075373566290653063096923180589179254445096934574849928046488272291021063273582593605673124068331216457171338547205489070021730786917916582800612153391129511013080468281183251421739362707394836653926041935826621001153419180056730091224792639606847147891546241941321743826200364649102681210987554863890861124871730114669637145172149166939159463926543378658072220836042895619255472612133645619210356250752472399308301749896296860105873352982377507177132010691301247132258925850228359782255596891391749194682531379453989417181815563222136221337466771340548298364672896578871185673957646639299148880651601512923895800857849865473217772681088666997670456675149934327742054813607033223116873822809133549275058948013469062573054829624468253854719068284470186742695237749794835708060190465829974707352574533108436369515813885682095420212698461127028902979255974791687572721883680538964785260535743679987961615449492323086516026651823219888988905575343874876217482358710956009682250696028226916659635054817748087091558923490967008058692933999899981177900555229693233864439959746661235015024461040810212308467087369807203708394318833074832842108597200151827192210249049657872389109057136655536279282445479742347325732687538005502130994116996463558145645109615299804891164649767974976601308626250231082069373158033159696728963795999062866984223289715177822676631085573828422483459407627046348121786204657861421966102691673055733471102976112245979258991374871202742977831562374091132693481417474963491169304596508936576558377392532848055160584485534764356321580070301655874525131715988402632979360299788467230652966365814954074016540340265079410802134630662941335624813716757213690807315006733152241700769909504983421087186715583512492836844642812321854803620559704682062794464951935014589136561902271617370103862899782360302503422566009907001033361548856299765383952617972177029983542465614162804413264313750086945039550226063915376386888658713998174518591928265372214521534827541844635328161707892035174968911287624118504097984306763575458468448644238873270280430888741502017742319427036063623465212961317600211822144711057858792771911525196735084036648183652294882089036587373543566951986260144597244548376207840842010341723115748802852706782961622620470598272077890961799075050273872866214475932129279368982445334186756287146978078158156405861531117513073144337644216786384247444098725997084120903499412800449698911970388351326203644688049400946133965523051292574008919648464398558583410383990262369436269750154852273736816939601436421403066858755148177096799074984614219507493005690961462976921893574296696622412494800267516978977756501699298020960520639611639085233128823380419072149210140403503189250772035397395529146677873715693277739901538782303964551696773165385576242416647064399824671325123731326340996485349666238352749747566992147067446878559048122921370731289657511197824369789351415905271653278570292680477002957487809680043036338796967074271262855700153505473268853034383813721758733900625442177192258294530898623586729766971973838279007679980611489294000993095602832536524597996550568760412768951707628646905128389618259808271634099624548025789665022722854577518557694404003628409201937110614461734416947078374904292524250580987359041892841053334447011479211108186846003578754875406894683309570937316914781377749003182176470493163680197447159965954762341161910335960648682584208871737525968086315886772004311301155524408637189967060964531326021524482644954325332732476116764159537378946945467499432342927950912162132676946268826781588135905884195996623386149099858054693745546242269856275033280302402256886261758990898226937110972122850473969580984775256104737095245731231746717398359922594659041851715149467437795856242251238452322310552296985732631899127922862705304051040096448845421771771997458891233529228626765782810951879366154674283434409279744502231031568811171196187946142665063481762694375335635383441406936614729959710265181498288829904045387713185384503358819982906318323198259205491127821777764645820977805716046741362333551923107901494441214541416595423397596510936150156074687788234324856958832168903627637692819517224196787840800901286602280334587754774135250073315657386356662723726115355995241820894430931164451557684455498569994468173043502641733626146821862163649335546157696674030987473932824212925188967513173656748222594879978177763523320141681454069458859305271418771067822753114303498913562996754072811353553775142902796894956893684317160486357986909049457928137489263502319754908144919406581365167834032431944293936013800219893920488495226743051396234072510734949054338220781112182801035593338508101241253877826317650017193454948267005103928435123617878373576940423923805881910717400393638009646912792586810632796920235106152342390721454902484636427572935116924263408085024844351362411547493950412250075125041430764454907262981789673155848866405776638023297764466191281259244642166214125528556392086112921497987826092201192218363165344217486077685690534433621171046352015114897901744071177210123430789178495190182787218254547013277950798561549655556451675182903587692532058950469183922420844946562573316743117622156949874601870139763467265680810129585462040067184170919960683353006856469934023800670303318926090653388755514093787010586307402513673245075772821600517962414709330601322489925787151191505956883244682407136176901693453279034032448749051248341065678973651367442299160506051906273356272936806298861500108868949450789958628901396958747651182250875052926401302975215683770686607383519511475120968855105656803259945024825042754507143987143626846049826673209535182304861633265429955886336793321547841797011657435419313879748300321681287378367723279232292307991056115642510724112627896235579374855563468357134263881118381315094686119410619456192256141469772895934655731611982988323955569043255859671534982886219964316432283480887896940444590857790210811959880619519928903577159218581261841788202131901964377923615085705929538229908699606144239959868252558821749188390802080650745031674290160378092959946388997876575592379303300113030343762955771394049556298817355789202097785579721098992626911265105340574394269095984146693437483321480986602634166091655720960715809156461729211254091278616537014431006466550254850611446681090997888568954263865639010596603919930893778654918339776898251987229127601301912795839403760169690071533947786522653754900385670793138205580365888814200470227492418894326392913670500162047777456186612795287119051389054354136892747392085123571776852352010230336534487891307056844810508810931983819769553957016345039419771942303748070468264317945435784022154776204145125074244702361461774184659464967378742389330847747463343797932916984516428914421046394645712807533174569747123776321952341984767194785497983490982312119354026082075345105772203308331354609691190402347428256664105190438486682059307889782099227583424299473430287386841300187924988424706140682804601564783498834371526447631608503775001310173095338173247390900143655144897298370009185389044035309152301788112726393273297415651431036281037829145132892613566143810816906769560823259715207183196452470051373838660584584086382810804535374983739119939801460082515207937943730507347762570912140757141778936109462684329563122892850390993949755085434215443268420903158167343433475570860343282574465969530499422708530235341777004126129871775892934684983988563847884040224573256410061885787018989312806836109181374183387899056424226440079698167870798582480702139413441153005814464052241973545012911744648987631106316780821301931836388545709532036028165428386695327359527307249606718617895926098262164318732274245725328932487971598098846721028036066590151701951478951084805212316277180522218573656807002715834815662750178695539444601965324290163260144587435161017299505700867143530375709162250487299409420863504941700755485097463588649263501433779951227689174204269812835923924804874468766026919948239403240484795700457467319459397119555346699965106098256576424527568773100197535425862422457449869546874013700021201227149630959275320600046241651974354541157470778873974535082665801242766792964214760184608018782171711975665201041822404407738157690346063615881482785996837995597041271699967188906842407089815469576866813023301315937219707394638571817513332342055471848908896569565862866768608453505316334204398073188019424474288154101568623648692882862480090774748298840178920902930770191092567369197495591297292503330774363024918942774919900418526829903033696333759374205083590093853859825831281698574648758379528468219782820621538233513208791205907606263559307932032795202579037286922961639298709176922274361619506022443110708428351084037875410487878570797621712512389102291558288533595292488188603427454817029405996191051423027365497724549164002193124367673661810023984054041904217010188017342503873627341864363547720974310723436360903215410155932533407454685529848898132554151177889928818922279434669570102866168000972167794466423707793159794969939360989283188432311899229256486878140755857256200688816502531633829427733578600748150069525640326920088035332032553709931355579478840820701612718795953689449209472452543384790028940416818888957194479925104724461818224999005878514790582196301883079822459349774568857136927738180119544352232777611243366732195671934164650539760203972462829559202726461760903436716564405420119383571943778686635766879119835289296169691883160366422996281628080583197179629929873208382245373303814126505581382025903321522011414876796723861411399384454235811913099244807445830647889020726990458725992073591957409631519063340720827852464287399305450861889962510217873374236517802261709158551151741447212776093180582993682469590903235291638241296213911109189428734140489121284588326545357567577453028912384763311700188375045279116065411521175413062630804323845514313573481336717793994341134147422508646286191166923188966350500441864853606085374066753899542679391594017066793572050591087458239242746024335853448836334714438320425556191352359324159878493186063629138193838806354896679171582924382842045299093038383670000274908263383439612689490085976703487040007209435104865474161754937896995651816875749649609035205547649881594721970960034870424337062112057180356237997736403636828939601484012151497301234971465352880144870297690700218209231549199310670462394927028064191125585258528179248831157911785787316915078997863754071599211788511944927490973292547188505521788275524346479486012495876776921609577630599469367296076769314279627751337341231663926557781558773135528991336228136486049251777826874612086951102672973230295903270762065454183969973657458092220092748373636826698767205851848236695750890080435405671269727189092648328488926107664589089619735902106223222454871716468712806798403336577481819374443106381786967819039398946511088936073381688566558506381646818178650077028431934096084213789473677717088792208994806717693551570644145522928239943746388715998170540413232064091053880264567657515044954772048652191058914986683657617887473626132622882894302848313705743620253629877235124250985512336224156417809853224400313691422299838265970974337158603961736381745147963776877917137627337944304171075910194618891967455876730039063349705055364191938695661744788922304977077386751380815152989939363188219107509880598948283739959420715476352905957288439426616096611509454444831956957820384947091684304523163334548566649183242585257560791656352322673036820882448374347144573074088988712343090369843608166851675211500884063988667865657541639217426176271605375323660436370152064940713615026315292563599906667610052916225554973514902758462604473124327131136699475442180065520563165252162183823793178693879080509942901849690032099503962723695906905399014107798616674962346334147476068995636336387951403623448759997776234463020610418664288242724966389598852155756045463719104934364019225842194473429471146575658059633211236547255093843879736346924799541816874870345857325471361347395058085765460523508645260383974920612963006987899187860481969944705272974130590674862679460289053773886242002084083487414940339975261592440916456912649338767741456188995690028690947814875115909048681155918548120029342528240929564744836244444319124121802697169037235093911236123607883654974626501118065859198059420941260452773425777479486561168417063418034700949099969171271745637523973888140620540403977379685154280232068270543672286199211851323885038212361201527380808384014352107663779461515662317636994052719018470998878325102294010062925619207133998492210414580344965529862236658360356088630618407076116043931439044540101034216461136899703166927433131420608380562779080088058763624844888075427120174499857864463581641376900412566472645099134279717204317582210211714264929306480903047583074744433135181582005007104958727720016987035499523929449620800772330951836706464290992067104076305202377998468779176031264277566379743764857050548879827924396903277296844924654515746904763570119342051946962555095284426394442200504739090839587186946294564471148990783644939441715069948457271536831994296216145984184631280315386423568938652468917341694844374659366135693530922008936527728870115292564773531036158814144614413569165834257381707467178724869921706569485231934178330462147448626279341863433543489234559747498434408260386581756432151471186316750682387877049469616417590594458882719410339995219762178283593354229800749256655659886758753006644230388703443879755376660217418363763755124473940423695447869275488075220452997290251895141521441487217043702794881732250554765213467404349469630227586579155286503629888201338389153346540278632654309798083535785304751811490404181354052566542355565801203460899769913790773082608045484899895191704585512231344776505683229684697593906769914510449073228551918959691185796942266165020594889178581907273724044112580108714611984831687126300553889487795813101202011185261783733704385396261883467075152080287526471424831816352588670324607838038544356309744390246320691997369086805465237366761051568521278827743311214434731642882283976647985663803600553041998265028349707488153950185439094840397706068070366501244440890567834333481173542901046403958627531341396738747978788422646586014722520288083268707479621307934454654603519352304289418333040778191807549307021997335295378358478446719842226371199178855340015647979255813184646776757895589809557120157813148919787976492056111138014396097931584454110962027352223718684035827708362721768769615312602365930300048330096810072078160277076222018348449847363104149821695878737228912349545626338590916263159126163264803355619923271701881978784208225374150821462352837784857522977246323670191982464332405316506685136467867575249655166716722198720588441907809662763678768750662185030316647281849476911069899718004838184405380399123545226203533163016868122552566907458656830193852342976293462007309217674022446649708756816478208220081711053885522237011157157948606834590507650691180409244253168068676351135583341545958041888678880873806767710361574000421541872559266871504731809692716167293061244415112291770664188267057929806441916812878745618580999005945287747964652701471001499001027658710210798872128735389046632648270427247273185241976405996286763729898715966160936803392723052092046088147780120401924206221031541354045818279404508991078412863983861871680793622467332254649829399823053033765512460839975613725791381302144517105586897523051103900611266857061579417369337336422834374302978840467677007048620988460492425162755800485355282784289982572978821387233462996345922914337414120346548615574012326652163190998809186822907839158432962559239533773659045472520524970026057464954841199173407725045129826759869047906001887855404864373937432188171694628858509023597689089395630713349213785824370116194406645716537293861175859887292475327603337554837849470330607813886362142523052787497083831156641465919160726291394690353238955143565752074086148410919302472389650034812435582961745672245180567026282591022870230258904923561207028593108978484293641589151336802471970556312040689154031454856413661347208622194028454942063198271503215503518762709567620329390618154543848312345758713829845595623377374694202545190463449194425376161647306979567544337956843162424585838267317280577741849926141299665151340851422856559234755159638586171443358053575007543248133406954988302463052853208054395913123606479502261734953066050587139386986477371795585236171358721843517927290229903052909761067434353665978827798477165698683408616841171703984253802869510991188271977510831136876440286904048999650096850688624701714821669054183236678313862030428271719156483512655795878356618415277132611539241221649339112182627506815555018187547531496584843972811129259055992426189544441410473001882423766873569907832886615052006649390842206335860008982857117365375488468918772103091805607401309628461614357688038647326053215861649078251146699631490627818219654351526538933497711116140345557494068276242689417889986796184735633479517132602643623954459259958761559038282076105219971621574771533162931053928581901727501333976349536929181866295138350905508511098995484549293548960791756516626692372932827601216924005453902624136599978741629087544785955969208863520011457536673777647230801207249468564137934493536991774377508662867531576420540826244401189206235294157602836483592721733195744429004904165658613306081759955687681035086214542136059820610371807412662911984820981645685076637192368991497050347559547457537359588554863208259066929411135330847202417083205686989638055548959997436872850104109089081113285100054571855458359392422361058016898122592371405052076769081133261026722825511693386331238435175053514096805392222420580874958328711516860901061172715883333001294110560370157482088439201304853041956645024426335368471483667767139150263928022612292522893507111868957135955479765692407018051964847095513275842356518406435984652138168382372718461165240231484322334494299214347543037864366960603442751199249475901545423374814723538601731914230903295576951939992893295261570667618410435154158529078275032917944385778629356682856701621121181544092441560854924662878471216032463585884039502922632127608477950648908128948545383117574014084043619753669302998316958335195925183873297011552390031850702688376894504076117753963265635183669241036637361103442515391553988290483622636597585728661759168964085846459515523268423029222090882387397775528182817085735031684816963893371614494479031926081897826713008018016525308544063923118204079124787056569911101691964554467343662296596245256813209846004178584941759251857867304155670390567184580552789377030590981482997239647139880924007331034234968595937347032551049086674789849011391890644348804752583040777548858179469907096326891104561184314900566058859968536848007695611564638991062668011520566771024828000379035843022298645461066016701411872621055967163739220365648494995210137461801925340986154816154160063124640875425656941299146765744544082381266023345139636771723503635877841300416219517797111890727737413620346472181931453754956228575375459111943901914367334399449645540022087926361054580099172022315235585318961922361373960971599671915655034034961266009170369527327657281444950535473647536770949026610689392735735504422283518823501083345588527517870495407395374407941584374288163995136095262641439449637115470255463547919388259652913165083702010185697191074616928677494551140189184589662184253068008252187109991856823709538149232954179763922108448810037773731735271012317554212935250796420464326558257090610329027263068110229092847517792795263521714344425364322145381919848439051707130934183541689696740518441376318908897248204140128497425629239577189327784330156126146358594213054937533271760522424530344323845471237291943292259132824404450704852449466903846626604000740013285410974709326400524753261495346931568945838857356311801758293611031388968890601465120169667560745203692603721489899573768754621653803684826684123013542820301623505145203584530782770106421721395581349189341772810361078301612333172293413810948281098219368634891023431697125144682615609858094559444056050323028384022447100667397115793318994517702885037673527830410743960620024092967645821025881902914013240950238708766835932114440203154976459491624384336311126424464221885419641495847427688951095338532976172941239232244404809031505019033517204697590311541482407016099796154789752895788671904212879567105736938068807876954829568601064314648890633821873449255516168473270438169186181418195708477717590629029274705598440324314309671522057350793674948104036385216777176349703313489391379445978058042735537428846604475991628352562695042904499375229652130802817280791905168070823414033933542374959589145023371147535621949650942684023311764251071879797356178508455208373332135537032991412169494690051515014120504168837379369758094751418431801233491004146930022049416142757235899564571439598656385466056871141646331263249319244739346273844069739156205411998288909153726071399866390728817878174049136383127071050523260299049078192024107881825471614026865608315516096034249925933858110548522412537215868953461418998305803626450975156258996880611542896940294975142921562611808666314628265916416336892525682418439762232428327677028522480222662257249764983456102633466495467843625934791257436036786930324751223046261850166857732935214707650733269812429016824642344030360509121505328539769275194726425432606449664475824240156651876904104154543766805163656938575496717094246198691383085916918440915582477985487289166563031629771647652522653276903468785049747271303157934580108440522789356334940302025215331516517178166355618639327059819331566800898038370810535044631446454266443368158171375910013504731639898210491835206243255004763885645708357439649608117160366988129919240543851429964406466494912947239221683679712639788547938510553603895600779318629351785252874586034847629656212910361572976545614988567154160265303587815600597452204893976652052965813944374519671666208087634992743542112919221257101117011569340633380246169970102950472834917647150256765814148315778395908652050190586023463479536432621287920145659925161251702307770832619631736247268790796435793583154828390532676906536760982436837863271040299730042771711494651529611333194491512013926314710235092429001925974105289877440557595676325876891517878863350821628963243811522513701427496613374296853949915896925330895185408871741734826169519323028032872211152964753762225152710119231212211877119033265761061026428943835567289883589115347647850579383054213177636384573906997242017055449058842473252036088863304959814924386201165027198822339886860795576097578973602373724436140809113343546959350477411196663983522363643865252099355220391068547890724534795213799455383358810849933782931822401926765285353566667824877959531721074253906983025733635137028426516679357842647570002876453138092072864755533496616330645996076027792476586957235614869846602381997860759575626007347722227337511253093269795535175818747145972267966983248718545300607716990640525867753296706001199664446767690020983679777437041637842246681577252587713327007169786540631504683025714201490832735277194000543679541517797600886915510045196490534991466057257089161901928614819429162470429577199027972710232113434013238808878332541784381172158769939790895863836587783850462072586639048958635835158012964017425461430106021940442686784590242692132815321679921729216448400163138383041498100703664240682389814888868910043894048196255787974153221351199964377686697521822317495444514162344278366323352987322289494056735718116135395333896401149859042162202016628601599330416277707703847020694960452854653785273528190557109673416971361815146752755871421056209703949817557288371669642179227965834933704778580734594489959090134336915019674609046094563844895596581197391973581070025554834101545571299376973358194462524278087019154223749227270678580862230668181513805614853387737524638337155173765692469199539223865302849995936473032624946810497423703260253429759942745698913989790633498244265683524790797016103901920855529878752887208242379847872728915143831875162183432532647186886920342013260155207862679154973130213011585967894446381715985121039070368868291782700133448544942484426774918066325275054679606315301723876203265826588194969234405704459127401319150948681630647439505793205208796349489861739722966605749157758455300195162089111491289494340240497845584502259030535011429935965873641173889178163000283376838050086232940970606485178131089239738029220558173490712162632892454613305636234575101320774499051683144178695110680013994331630247177582223157181454645486129443283424856827497073032407981937620718297080735705813553779632101365522350145104022574423062024828507457190898436595783324192964677393727724608929681610930317862173971562349744460068367654917479575452482097997238771806179328345349938987552245170952902254655851470009109712161228900779514981356719901327929067986498791400939365944501157400424870891627015671952885530931412609358363103522692353013429865277818773520909378369072832842817915463082332695947048578108413318039519572669756731872315673798465046964113857271310144961296843294388719041319643020474865677383560754692803944208012679017824652221562151106402850265540835523292887035248982196534931005634987497187372964263689591937668758101344166541033289348043970469794378536652311598919617400081552546242495235578454958853346290759233756026359296833822666780251017867855258613742054886982434297167204729403871450962683253446000785657354456115067154514731913057773774468496751483155850717112405911280095998889940047812575445582605390544529302334040580880691948991579108905139679759773283596256413880561965804785728078855248388491108560870024225011609282529646038364705989928524808974400196171254793190679352371415615545518169925964221897827760858807737989743242104636221990722645190849540289047107685009392094434331562962402313275288171688290429220527003257202507773579493415529254264399351273287132771216303016557976560509225365332770803852405597585533267159723379561613154228872117503437047163309803707989824850705817227976985345184068426909510142161383905007604533752347301672475931296117614983964020577826511227059854552145993495467345962177514477885173909175087073985800259395167796255053645226914076841966646151710454164975479520997645548103538387870629512183809016253261999972666022085022511824710187184815935758549656476011080607046351102721113351218624818008211834502425797608204117603198179236325054101051971389834132969151173633657029965185402504948166397787499350654404161538301182088640318962471169318745384216449464814958772801821703187425330402411181741162795286924354885371093828432720736206730126515104818714869691211648822424045521257736263626041683762603233551253126028379817833729105067274616063549588393427890175762612859576149842333840096935486347225876962348480430883835701908128788718089739734187154688682613526400501992514866526663590370682779230949366173219469442740696952765754373613843265105390790513965869785957704099375230660702424223982691427128859975110357528299201246095234572972731259737650282085908366810158357823430301403434992934092657229054779790559385849893437579613681747521410451573827038421742953979890318880746622208037381413916934019418032220009319575279760698041199726946802655041032301065787209551845799558392539374862685681512496144615167050822282205828722312385541696426942251595852983990444430521305928405247136794727134551723970283382021803825633142313489087910039268266401907616463759616647085058695671472895861919733356221268852507117808669947725448006723265324002610990903606785551459371722623973110228816080692737512520375821629668175541316559245036258172299482296844067490652511014817594995829253366416342809371456074762698830471490018451059413234013246088281911356971173842198227186454118772632196422132975936059868014298810579725906809223286896427532555567359343922412560513129325279769661772352230929810512958508636485699440153302398417067446347706456332757058511023481296107448045930695354550801377220420895129622897618277186573130934201121055073975278743866195733735179152247340219875394365726684982017481679631632255669124273250883578637122522614801873123068793085993686972303486034595579262258643231555975020202328900745220532370769549229965616498225622428511034316730575345634531968500473919379217139598533994888814389564669806678570505527639681200198961516449117917398053432867407302479804564674916756618815720103545923867646112834342553449641860375425919898999830394438829879390360025335070534014142902768594297985339067290416826514889127736242922267008469534668695724858300871430107447604210685353980535959128292388688820967169923567442044903586881105770447439714271771874311468384553792168016018371731698890070534440386842900018987807296754763402558064166804688166992781849786338072825420655081671355080488787580398728102068500020540927193358032020229252929759505374390602041085054330431956655914726342990561246963673387648808615228136256686731961730425710660107599774172731912173604075935075011241564769048756331639677108207390162275209411959653279211955190799984774211014489519527081548216228565703966470451853681081725815643468131810889114684556474234934068389449873230189343029542116008166460837149038585344172139799634237016258685979687505643392028852309076609637380198253182879030984607614635416968693685504555977948881633967448348273719424021211681805763411312119107172405666466825191204008594164892639078285857848622329528354193540907978291144620419411244718312170939094930344690241740986331798181068354128089691999555070750632046490354849095581085325519871785394794896634053065528996659646631450236192380606479457055137446547751664501330924098086691105430944504333547702546355314026276263764395819487699734543330213900989934499504984974029254419784048335813553696162037983395607030489542825693457850484017613616478922451277126849720974348695747012026817999913082380066293955535655220027448134183431942437900957511371029207398155863417141902355478461468874976669741995441472371568616681746598399498747439516628097101745283373727843883292629784704978515535997615879530953235195681223318651473859059795651303452829837088837829255018610574415002577213512230586176877745203722255790846892519114014011366240441433843296954029068117601178916322274611109274487208332044554182203343635228430189306994632404027442854745523306431464774767462929388326303860215127922086468627580387076459868537476197670400132223229240641297768886686633283791781212719732830166820648877033607048011235346002484025369202554801989949206595617263810399799262837976259454452524905964570286478211558467645161669002078396477435942450093092236122026959331466638162116108574451892293901473524511224722893596811847511211860920564543252525342136574023939752083064922863178049653223250966965951759018366783161061218425652112720525109932293969255101182842005118097878029984788249198581026166283320701233089583355257072217911996147515067510485155035300191373426114218861573110582727951997140069016426083843259693059737140810010799911332634610634989436813095205972393653197483831892849489393093948301141918580392325985612350261018519800480020246570771062023070122745816633611412794100144533244492993527583065184047902247890592421096618931017191390469526215363186073655214873941821614570708717974698234922982269541234300844298949388998093916709774424133723933995194882992413043761708564038585544473893999555741995759334729869696985398456412938589929339655078388245149654312156351439457553157836288084021848505695653121018451002070492440759402901251068136902169167902602560099197759534400174307201863464394891735048399694871595601796950149780916672577396625864419223342443222814082028677316514171787820868827516401639478262111751605342644493322737437879779706493054693679708321965326573205062630832651792562225808747015353744094399854121816705912120837971592388572465328389513358676988347280795052312625534709073302907783206657723249065475972985391344359737530962408318067499273718297043773131424963817405472770467671240582784916632721523227082716804221024463002530540633919216548413672591284355458577505961654313327055089523364340619680367247724732340994643375489414127121362440810557231465680261944090256923423780380390706129011266334711514463016096367745233136111142841490267698782237007971830049900282866392226765488108804416582389890687231948450812229023817187785563100692845852694412636348517059202379424079200348955111780821486977535888104638685286641812658759234288145785438654747280507997966450968842312494578615538897452004483185264680981010689593031483626750031207275276160549992000649801728145601414318852479126440511219229587929221317768136809511722058080166069891141981206661906895047335673092267766833200925513576150383334594606142599639747154414581911163977599501876703276602432587828419214987442661769532431060014802930072857795254494614769411567379939156876248061040484655066706324392216351954244561490603146914026507267130093041099578559401722107503242358409309146270698633097200854898094434577022760029796588821047187983494066185044465994556552367230011887414062432327071565418018538953102290450853143087138430069027540442948062603614682347685152446592038575143259313089706809104544166045657662809217435559895522301397060383274689323530794310271251056530445760360003325841381997666291008412683429123911762527487993255015075625224743336333590051130745791685410309495806530073779197041972733788419047059984053782838477499342222067797879416602362107592884700079290600461443088880011465018593382571907699143391982754716892940712740039491139419689418066598751753790362101420213246088258043876216286303397537269948925496602259256610865084474615942564889497966413791830192808137592053040823915869121082383940351623348103846483668436579528399247554368918093455448151069688365423105931792894195960254867858379595408774835796274027343922159100226971290133369629451104366235250720558185725178617894093145037951472834562630551947131975012709717910064404268847974367011233493412384959014161848011562341124327932811803058172330853765417486462815053241840743283702147620506268812396980758168453048524458534555683874733886763532094001080557168351814339645082042756396323584060684650228719744767850342778787911095588955762667368932025429740136025558265506896381563932552755507394339168381731140671245846971094275171244000787843139505201204031990188911365390206411538107467940575109073217436852134604172145453765621585990909642430447480994167396108752847424058860748546105005226592949021951856625197953786235060279176171347236761089694761945567018185630409849457253263998303711963280894460004541959332761363867890265963290462814948069449091078744084244609877240234423462395319857592289814037823088299992356875406926628569629339240740920520776683489773049320496484462888204059509247902540499274945670028879741437613357757552665637018066058175426185101266933725879382953305860079222718821630667515760398122736713120762167896366494735448982128464169450852026829560922788046598387177628848703171738102589294965868206357947906217390242800448916654817214918758416038738108246502477697911884672972560637552698149111030086662509174191739332634490881907832381390391110801308332775404064125459894677637008707204249821629235349671618453779229026061486971514956455586246896299492209225015918530889990354408279545845036567395153189323405823238544741999533202074385458347617094476474517753076205338905054094551571332990562593593432330526328623624472818899005374391012827316883259897582753604544913925984475898714067577320538423332006711379861752035147210521075837970196444360482948047019320766047189454106194354693387308243902508329683205605939831615559597305203358276964521014550131392969689735788917011396629093720304545316679756281124173481733622548559543355605055033668270117572296464096890510989884836940602022378289050660860412284490180101568361537031259394197030469142858229705300272773742646177955306575549338181062003615956599554590845004274547908837363142578718229671060711634752044210855258669901576671694982301165617736483800973037845011381449244258667188054402359252575298341706192978738288144968353449805276034684668574563885644472069933104235146238753238723780918856347744852484053832664421401318986906886921055009732353259115330689264420605337847402283503357251613559071908282424527791012756156106662855901180700763020846488111989374214132513519644219978343792830053669435428428869120215189651968631762514674542920913680506412550843558587602226901264968909959439752351065941807268538458723829724521183142864966888333255217468725138990660196102719858746184242026706701190784066596632342534584494871262993318781602862021123230177812200769202017468732547075866135760867691761788987252629899042420579978056133744890777467374040566153175388679589183080329252626506130578167985630252802783926956877914165069204334388959000402214338099173189688097006083373743587466884166306243396075224756382323491517754651282982892069615115679019661726891482558246763752276195528044846246463779334613114265605176577946158834071787844413404687301140641993169213462367405208422488640312798588542243803329801634657872231846595017939701836208385801457448377978109948005268289931498880697582996220320752144057832939074849768682740315917610083979473317004155544787849897334555382265156211059601991080874292623297186623874012012752657238549003528131691910801885610565124434399247587884012529648626372375508275202955447401925458395445066508633959477804707482179760548125328763720796719953192243530809216380645919843210400412260439318169226393732581722315384602085599134895686777107170381673292528504507026115655698031267742499750257042693649158832401948110833466081933341845820859138070353118465997779915678415698534920122346360614561820395833741157648427372343128030643987088570302905072246407505137514703173107804272042527398668944079268789973005995112853826594931834311613279250649826213151696855336699291934088848983520648942652426082559229437927839122297591163539148523519341619109172344781766891914457657712579817712820150335769069929687254993768075230190497637479264227228623818385472984321801780328802506388558735961245073434798586409869518147786731265047036171280100517863173370414181186775880466338484179648315398958348833718227396141572873414532259175812198311639137479019254492537427784746002904375631707166999712867525857243166456605865124123470652773012824381114922593607538121513364543963658247747173629789999222625172880624641297053340791592673535528289704590176753924453900664245426245135032229825997364013086878500899383960745118607601265823621376104515790818257801122601972778212786481864482577354954443281700358052709301856804032696338395080746286474052727654657436934637823021849620528134156288081562870341390573892335718936569294719372086438485925504665687379002908609108360320881356128343656709530427999446099037009005548301634321886146694034339497866074629948050520220153292910569170534498802831929382245740157755685603577595440041894702275214494769544864193269601562605613086611143503374976250031448114857368007698210686376387611829492705315240888416164686005810345769170435325023141722030423329076587475877294482667237465249269389658265659700875971147850251214389930237671676085075689792969619142626609152357667820354089105416335632412032850903671887230852953932457534423886860777628770627937398383850998905917754756074741584980990487542540404804182420750584482859136329455651348128552568272441956219864084512227976108955795271650274968221434125798062407745092016622991118150013474272165394658141749276032721622927205672267765281625117971071461393242953483522314983754120181869870039689451342630154301630148761191054655660798021624395427545651037105491065987778419254604535653893541966559614576737538199349770653481443942145690259546073958548648124848146721753978321670749579094141513049516027850303400160933888044962212807454168336951863718977138509159902694820504864860737737871860372764811941171873322443640911102415691579148571398762145922196903368219430093594225061659019950270769382952209782006843764879808059767262923823416502836383726722135593573073362449802579949733380070624049635077786210028473392089765835105285967497167838760556461550071634408302470270445509043182353757964801002299197332866106912491375787724204423194125460103774752406985468988955377827979458857730590543699857182897717482370680646962191282062423105886060187761111932768810909815464423921358492791576795351701804390456634049481006472398550428139055180617540329962588085690790591148436132114403235004311824186896341063767443275073890190802173131005568473433294684819354067746098305598711490714830494791358220473588958163252330300626482728730994384372724371154867707889691771318271447499950799940597628852928341878408786034049917058716327879293294906152390547609705331792946395433358144114699524398506379537866716668776489923998066456673546840659759494304324127657566649420944090033493064982282453982182429527138023591592695262004913015115018970254679087307793276344342817966928866746441487357166807495529721864038371302620109536014184617910070984415792065566082418466661607927268889027658692949881496555266171095682525215180080305553312210825312550143517856160638147858062954248181117298952247257720412189493824886312621094794937015039345948346381589848079445297419562244395227248926628404979084249632475412434338087974585357806150702555140182089880819668667650231214973463442986692746622181702762912883719334537714538085690422677631201393466839166697678180783554594538102485993903504121462219142078994720928755605400077908087815555112683871584222611560792809407915545513660552583560501633947298204571069749107271224269158041712736466255444582611422531851927974287800970477722578169906807244863757729272642787219856569015909395834568650974979060853547585983576813494362644369219782717907974692643083021265779935031956141393858741481894918094228869668765976821858168795759798361731508347559171816729065115163876329673629673333622329562627352723964116588055643052997529285527028822269423179682164142408093404083438215326202598041950226649431157000302477345848141305277898841184111785357115514743557044852482185928715216583004969207296005794751826709124589335939381840971075428997145059260374604074047662564328129196645116650621744270996842715540587323540078350488361833140032715849625558389252130728766437546650424600489862639684611701922158465482168353445348769819421100875963440019719317025589278806949955163815384369840382836077330265407027450499060622239980651876679185970568045732807067818182721440595649984109489575310415016412023570138150363943845297052396899498801736335668797330624076104766150312017206829368960352556704801165264631106551811534055938289651706787297235591757965355595532694944248674480427305799582601741978129978474247805449602583748138937680285900738908977564188150851649913892248514455968432197714514323439896599133217929058761609127199799553097930093757565306451098411237574725082985922297481841263296994945570293432422637985580733935008852922177761197157758539671393740283872304094917489869043338348348676768296054315243267833332171057442064473587653157178261024752905543813912856067351891007831926844023687144939830480261773440761330109676273726120460162450852929561057718183786921071120188575475637750983422281356647922611402866507597444514044376528499949900786100399739002279457418458152090280523116754132952842219613209708998783796406445075099238063607881924096725688266304149689130602774047458261201795810260937199524759339493845736672924287801863598813991126177900081051952817117868793609330765980958957124518504887098526495260989650423329424978050316061150018599885233307235035201708431543318321205107385096372880460927640129423637293685725405617464571173078370759973322571114414351038160785336594586879787551594512987870118506858659436214802242560984435485250428554467559467277610014804016899011899978600496026265812624475820748183458960845499538153230138462197779965832461641899539998896692340330261304947936424054622504550268551512949006593229657078753458609187977336786376877085910162618581097219118738299655544718223549158679725252921033179806655418325794916929938194910180805801647456597383379103390453839518873236226507790513595922511384164614386061145826930588646572906005746883038312760974177406175165240267421287334567710209883119103585378027569298719938839143879273612266782446792414427936100809543808801988580949142639921041862136841816956287644052903970829950233795777406177689286441248764554968426381220123982278298038516787145595909255917801968960617771680962208889097530563078891557530869007463965507998122113812435495928531607999084406861057719598730941588442641886919424295584895885883366527103224062397895921132720121191212220420200565378291998807621458983829630295932698831271885392503104225265612214114264303234459741466087908916674482337444088052242851216397118781572579778130646573482374466527803449833327806441495423437198380160274747044187835935436960287754354980905043674625396826085324095706980588084889452838808425835828557167679280453257784058455318518381238091507363610609338537886261235325566071871675421924619407060078321585109626511803583348480580411501066786467552046715410415330424242166301393271511824427246527526143007277202113238533646901989215166009720315004856141706098259746860437632227331257102486082047609486891694046671878840288807935470124333685581038622828438125197386660328005129732051842105934481701587370022733834168313884651970582330508456201103860121436944956092370020997911670271468334574816621316887210664191968396687705830648601337226713033105571057653530292124225715001974521065392532285516982090548301599950117410539530346702963660166822843863175110787889245190498403634337881295106070402353667566422780545108244896105158038392197195387335842029192771306452251532929341502589363000090342542665510159063121013543210172819935522677111517003831581290468198600094407791540272923442038940779643858440187142514600721158558461064626602614389929506773920918724276952696998113385782404184468882696392461867396721317281365438195308614466565810041978715684293260679906248452823531580452125003998064422757383202440140801323744340750974371926962931032785779717314935505680452797831694000502736295631585338669984107400359605314633396429328986309268709313759220781499291778609231452792498123747273065085672679566145546845835753034855951847230910558761148539917967255597354946068418192031023342501907547872235807617522725510107964640182389643901054238883366062651239012126900129270559448569399187490198383756453612472022604174635773519432577385977991138941300066466044943596652899952753573624830999454057118730615012705739111095992176159282184794801068254457384990965439271159858610984953681129158546347444393722744948394355652186042958912673130443560691805954377974594984627543075034896249691300135521366853997245849896811947383929048208026899073556954250928996116404209728635728188485578443452798995770453933722603866052900995935266913402619767879785860935518990141145521647768443455092504218411040344084137473747634160301016649212909237813278306025996122660434683853803354648096729483302402685050355640859547591321537976208059139756325453670959066822884102150681498134909091617316124863510760130173196283180838274033162360751028162794588221535757490032847378699311368813400040641664836622695624605065229586532643495644089811295477554656888267576349169626459432965657818882707126811024626901843898879953302705827037105837164239238997903701551976009558013844286690749144796630582696725760133418928725896224667105560222580483752156193571944025721920292643512693182141099600419608489617644198392693579725207825693533979879038928520609717206096684791745733610775713523298085462745851482555292659714042875189390781959090836035611991296330756412227915602228490733398949258121439273371310072258791285363656704204134655484849580834724129245291038688694942655027908967689376672202571669028441646172103005975412771107697978574620239718740178621265042847133459424697196273100115224100154557589120933112057400101933231169931824251217849067283638223824189096543752417851554915706720488821255971141878512420932734757331592351815701584237262807705761689315489684380827569480194063772065527138442962413437286364849479171936843701098256318773768772551691746773440111004601472692530686633922362985328273055093870657702182459454584104602079034323316929352695015327615845720869042920806054318058041595105970303161132602594840923666190792690724200744626211334317149372525636827907323746092974777303308382325233158163074088632920827000561347227305037250130848298502251986236069422875158260378236050919995919941576581653397520535325812206590749198873024248895139106489593009772710861123445612925171228997896043231092242039746425116376337853739088997157804526186580540808927821690244974911527376220254785184019447747087878936545536888118745356549984538240225319779760528205426908381799965072243665229230083259236963268397522808832013788360035112656308872102868102292570599543999075340339417831166282993927441078928666820100085979822274905032909168238031858359394288906262274771254393435244156246996143957139778028631557319562758049524951775745165577185136764777038189948147588632899315749447040660176590670159207353915602236868500523623060456484720014765222658281151693911403305231960775601950924946354500203640422720898875603601915522635394379140289215007279527556952730787418086096852408721254526627873611262213363914987574333155397894975193611640914208741650710492733710409714062794344929794676239330548490582519236380617013083685447126489037124611138678191930405054835479778618378035512019887406787762707199864737736720174053504331936776091105133659001184475514837509288413429987558048348573739480688046598247334855275859929111139492903536893656561449866889142062056709133355628574529735571754686937958023420353517084575806618307427098056486433464172107276629730834129455282918539198028904525851971601538655215110201415221967675190344647908081192403188008259530560737238070057968185984871603683076349634718721126614615952848696830404633450670585603333300695896086158580562175142105530916747817049908363322314176014444650117261699046268765654683491504703190085119574667059617826533163644630722907571573155209444608960384607936905478838114566694539427390306923094076738800349022710857588827819504702069313125368057209724553223497104718845102813160367787214600522976146349598139185636960913388984401317968043009882377033408864814418530472944696709411124540294131520578910915538400842502597156844754869595509111612807670824432049047667846621991959999160497255448067795637931791775526667459517169681056571364742836391199146145437620696962140403494754968124597884469031847295999255657512234130773944955178149458818909907904568343223613663496509235393428821335742875440688479201027822555294413798836271601008847360924615831782529021988991974680805132645127395476078957895981925024494295035012666458474487008942999962159146310314599171112806036093470882734537193992040349593644690498680333606765905430385276963423227742965577326503274051290338366835560877554836410526364460765712841441512341239524353921503837271233702130002804345904953129774682954697881389658946394367937479580317225419104572184952982274723886896190186528743111490856616916018643914867971317170641757929218763813975224559055327971528028185852389717141614862528412260146526574578794919858267139059344023285675950232315677769212654530687395289395126541126686988276387292875859599158149578708284813957474452129615171911495263507371473967568213623151329549747217836040608246729064739647334271867643893602124088411765607833285849020265446304850929530808664378151629696722371650053491732359831590932787677243988649438016475804713003168106411044512855696888352607280844058738592099904584704311819035899969367014298315253879797103088665507345740194802705739553680958535697858004249170168712309511220209560622548965160360919812526541472198330418254382403557720632718958220979961840750983704381712012397673465988749386836887969764936607655466810795805089178630226154287786473740084323521790351018987811664642954996445961234576798744943860527078048400404954753392379626238527847096041247991577638145668554675079912062751432971823926072933572845894929817908468027828777176809090692704920135452998257105193301212360914396259875911619138054349408214938549517859183207359387058486617979650192442720320818834701900638224134458224439245175301788193660783478487981690180357925134121798535666380696852037126275856653062944476811639550014200619381981586055722874224481926983198459208683884071991167684638157252405652062136944997776855720279946930519580706061681809433919760501986402021523918800285933987837764791007432342820221564789984782534032840374708305080042502572626556106450407182121501917103942322345790416969431587307657016196798605487799832780318075363699560258614977263574414909844348700005475632252662615836478459093758778145835345061444237622423248876683490174422886627056449688518526630063150093823994621785155815851540291515385478128897661054174400702133813963221940787407868627393640602421808069065628408418544471072708153110244834364267982738727884627393354664125109905115581292300787311226679870275655313041321014638952542748655232411500705697205408013726293713744010868526311284216145979012011137392781941545831594506851141333186185855281364682229288021812606412413502113290848137884253173356895300260115573865131082110486144198159592980019331004776901492323366421993438289084369086979554464852254170855975994610879627275123831696702481281401304654793957015863220241934262782560159399274942425521668416913738329937146884290474095670367292545100239414465822232411111439190421136939386498974448983201941711723400029624593373743881039899319413565641515606078163110929737872887197119473221913457272936788319389414214852375765952442878857230643787744649031934387840378987851458914758068804391789882393058258111510292625115382184658788882181799972730804238218312691482092556111864210552100349865620565868612371577294549374084870446453532274031075841808838322834974430190603631816057967954790377033340509865511376811134798333247595883643410222739815192300123681376612161274595203674581268830663778587835609424043363314657375221311434573576060627604625675613780851441314389089543164677935176235790200655317946409936741109846337017710383010570913817268013887304292561947193340709994432415093169323908875876549164303020272503078605636910686775959547029747009281330344770150214356668851018413918143257418209375008468292504751373523143404363908610325739296089580731775620814440431622866574914355381649553185074856319329243528513247456908646480746150021814059888661863875129261486713137972817584575674010496104463184422476915174421157139519310488369116905876561554634321437938383744162395065847791985843107412547169495187712720914923967160056363174082459619216451399959559531370198494372570482218553014263661235857034756799765565890863125334640328222114430014207577424437694568419697010051492492794228304500944066563302787559277529263536175844023182593465911506408797008207089205408491897721699181112887259654275376365096620501345454653869263692871704366276990937462311468728496399557653080512705303717467234905802816622815727301496448649727602798994074647023328436295214953450893713223062692442957970451366800659054888144923245763992970746770605283118982161024715919575387582065644601960106968062823588955676349783014677540560239696937592139460502213174532082662423834175834243994683888629254972858299640808722830172578095579126406660409684215229446886790700053150960016456738677386769749255838666084660968703705824099286250432024900881372469460547370471097075790119818288200658655546030140054328797334014894527713286381221751504512018737148565235856676664630836373079920326975018323294214051587455621430184868424050418968410583223439626442380549498396816990308097482060886064668218172776707713917562846926613119120761779618446720816212066725149170916281899988346176637470059443406759418334329099787272729157744877389361048217563266929618689251127085574953449870375667110131358535947632981541922161060700460175718630892049849186474267361900142406573739507878171021822358795678681578875745520596987070823085478747482348648101784768627371928875015625496067603964490538793683542198265418261066013060388836893170776948845220389977091966273270140717678849308929978218953558975338311948566429528609739318362626062544736766357938613677066624850260712258681561539454370943530281273927160324477935651535259102455307788957942201332017381117222675333955754973342494826457665374885816039011798526935841475254476422028405031209933686185000191556338944180824681678468548022733027532634974296277414302703586538173621588026312638558018812542179697707200498541324195691941684648159736492275813519327370501973348803450842018772873275473285499254843412375037542216644711393184234235426862449985023424643023282370288824228615733528920719417763108502422200072282313366718122060165687887890218355536444097409055472782806764339032743781005622960993028827062115760065228112914933186772322327961997992930931954917002779424410438990867307320589672607751459706356048532133205950177312402418381549682348875790294644939566135321501150540098909512495704697017895289597249616687994025832723848068417341717256068763203483513754599128429098675618378561618984492039073157809714445624886858194993947934546225280111934432515160274277670323679531436863854422715233749948645970830308880778654219965219866038896315000566963988386537785413040488366962079104911816429953060575014941144636487155669176956788002838812340159537326775280088824244187346532134904240510714001014082822674878512323858656242126092155107368605182657060507339565075201342098393228407029919345373915188134577419866186843961980065723691285794618713899294908702196775662786993945525868536541976834261162797812994243130077282760208324667257765429680138061776129251491907134475917268540854879226135659418396036326374717408574088548185736681222927095140640148329782335102052479869504006867081822983076252669078608220218953182513184246226815275749406970646163514011011899040518643814249522065714023290586802661617597184466889211860579180287031519921066385021359158679174078024552143765623902293812023934982245583443930300332300739607965077144568179322246651225943848618993700627499866001282790800536806479703154474501442997160462987632493141052087729963552791852996655870713893121936072374133451238370537755132185089586743417821788787753555985880388506844720212891046016314596436416026307690759818192894856632238099772473936207391702572096149979267714299681137899957928103330539408961522271296688665047176158136673092702184148559877545723556152774381742854325972381140635553729181380067516137109995255370094179288016531114531870039682975568379668906995038424956837100238583060878597515119079167072891882528284703646210830621057895303137753515537953131311494080619646534369806827555755317300539542550339889779698952705390590320371473448915153593185182587209256436940312890678976663322316126722095192205581989562128742211397609093629271412381585008936204925505165228799762881139501959771719801732736297822728532084669774621791816361397671627159486268460639676886710786436834836937799895236594919976382495015160163759951732811922814800734928644437503527714888947297303902010520429369539820335389135982464554618064944800663059012955987250174139080124930544987686017858567872522686384474629224567665791849399804627929975147940343805364448221726705909941479036106308578196402689631522829283989452716992921620309882968051138532838262148816388077265970641261966616209517583782476209747231433402601007767443987686835822339413972818842833067444047105595992571310757569337336154259222285820170658064876516343679430551712601106100559046996066951850713452312287106784450934069892129739157451012976060976616146141643347524327355726740694955853641865070568031993118683063779160170689296016248634003023696731897234101260466501629776381359186661455780383360616065654659095273908607016563863108199635989640769026226874572313093730610742731008389397605812838747175270570028587279169022050755696521184814684569932567170610807938804528408970225087676427971440205502173399674163198102711825219345035034779105960074900039364859216168729329882310947041946042757250073817654712013850368033700898767916794285539158650945749322802212062644084680868967504652780368625508039819519395712698454956430377509825878199870941209598310439806850802149120390785076997982181384627705656321165300161731226406044131052955730400773731165561869713498815087850240391270551521425903199443954389274386278523679475040662616472150576531798678044132219563006956805443970769553460977434812618039732651538568071542930030784041184747447206204104827150402172723838557846257773590166025106396420010332463912428059142599158641552834908411680410363857407799395654370946492146261011387015141429301664363960352766766228181257263661799876275372105730120662044899000080003306665247568773539289254797134998304197029289411464075073072524641144387793474902299188967041736981922582602987297436258923913737954013025462689049931038859365557399672636814982181518966985646648518227721954728922579026870368419835416138338210090217348630908300764345975317546135147150957762685780951364097184639953241675328135358858626856800095126975603477401756236399719234602343194063515260632817803059182069659758451524705154760193811809042810414465668653054513898559530268715738687410479259253799897727174097817902416353176075966663206675842235665461587914313532713711482133245074229729714197324482759524718656324256019554890633364637070869766419947582145545572467367731746941394419084027040763217126290770102886724934261037357096240547372881119201871561639875278246401055796030309613486629238091841640508139361831474656529202893064370245684413100143977542560904762192390795010640713330777963854034154467582982082920715686112356961563326147129798398865179472721592542349167693284545642777686752503522683911212105024197020921182019209930978471457709868298961021154475761149597122917876059473937037228340332767147282194499983318913554012336685026200822301254580514077474312438285392496301217047225167437157559960562632832446195421899345711328009578390879774514048773597939926975811766707001838452809004553525990728004827958897698610355600560501603383085724723168206085451236577297502551022757280119816645885451949956079875021138538666481177490359327589813195423741193771402374137116328016400661160714733501306065503816858724660277932769777080106121032192023334061952041036229647213327001861986146270403125455155644159701299760888260596532672639146773973011609734771980255177462649884637741464322907445244075657510400726953420328853565938670532775598982368793124782693023973347078545702607807480189949402066462585566197235907648056246160301201728080158906098344576510107066509618854563867026769321494425972833976315094581318027636539954761416304685742011614262713953237139560262575340126070954459785662525274200833243153587576220221790027378811142705096375000341013062588788307470749562423560372059597341138176364192555548677980215177126902358689486555560680024691216777710180916304648983534827462005351193212600148279413798376617711817505199244687681469960974039681401796838376244706421259242752151769326249121923837833868444156646316509586258829629580998429725279011681873157643848721161961380238488507420478309751972731351618853809047195614972825096683121725718760320694025192215312798476188614852436135913868084998383260172595454642522821644579000684533829598896171729776299794570068231305299171091451420398096795892034110173933041538924343752554406062469964246591483486143510591344355370642530690153468710788868859838774103479877506456547120983107310816420380827736976491926703717511907965317626702309029047263176919437099917760110927797290383522897759925437971703622441466053636174118420517889936871673409690034146227695277334354995299913125200004400865451446160270951951964430154258938649631649127739747981506956596408011715794779531445642405932154287519594237813324767201893213503740028660723879356231785910683539450777786595200802204240256219831769104507503587024828508622154368607375018968589791275671057371312252803952108495264163976987362597909109592570284710660302663525924645358558123081556588112594473091312249326742150488030787678496914632308181599860509593921725544309633654408763250032962099495401609412260699890118625719796793512729547275759425101644515071243967536578512778452063907986160860417119387063427850388348672588687952059918231311195275635988489283085335803217776670580863458212865620163408971182009336418931076310820268938622725016963816730387293425507810987439275778242752469680841461203355156224051789472891825925885866073710756453063520747339765627642122269398003716425693028298969571319723730901163614201394738757179948627633279032371598313589030835182778026125888736736438250246761771335650728064009247504300537167711196837597652122883220693955068827216441227824769056760946925437225582459513824966825099906672076984256321054295455963332633399272346544907679908118459183245436716621427098438837254047014812300226415611756403113903559511018039445846925009374772485669615381061963044766077097600871242553912253987822670158988511992543610828441518626809883298945401423852799318434633812046268464255705715562730725366028523810899165291645008326812906927973455983145684810785748433479735304885527295973947561819649411811117091804552895212208433028133429022161317315177688198766895965290864224560704242416951213366034748146194926914365532555348112601830742367495419593218291852683799582949114794370047114053519111444192299678518946089539422290322937809153346447268415419607637701609397433712966521671034914019903942024888984914817488521589867323851090881480171658791893592804332615656113667381511705101626007291353316128212577985407377884633074911898984344838451594150076118028442564907092336293314876671401131571386865469752805298227122374007520115518043737887205298975551475723106370168432042461668688132905778533130826625070337217648538564434249787271229541394284783642843174239405966020970796755361205530555996796135523782498761354980009932647470020969186034164706787889659531800166505646538772088270361486664349868673156236892055286635026305059374997179018575470012521667551977384658235393030063623704883231462923870072907459332126276594745688937871277530769912270334647875873871430430736798149464999538614894558014017765974560957626354060235824636959390374209509388534653641092278724054537352628637920617148041059052834607566227174817315355864316449342665842840170819121763282626727541239020302395785581571493792095244069487022641602320564430492218875460236327453214169944844280619269472010980283637769236402187699615964578719290219902215490906917803709854345899448471671286143418421656817428369651302235273183040174310345939181574528427777492577778554109905328581869959213737858422911337854781002744445364227772910078012816057031931665591286166211948692264503139648121971511817260448811531603513045348258231978485478534933203144204768551399268025673597327003568465748984492094247034712502801349988873736390821802798036063800330646522362330913208269182262308160791041651251482464189871058638275990154389626838451596431381278703287482193463789705329401401653978905755804242859370196284930019121351587376822003443507558175102929647289019670501304072485984141571263849309342582425629272511969379125813383662031604761517304508534350070363431789888059496320928888424342565056302100560109809453382910531004016660495160196552663327777203912674963532788260341895054909410198831290367314466713417356493095950060053591569944986578310396767376033304264477426496469885166675923095142972423839664752453873377857342122489366519661261323415078477489495401689569783451616164486142462182550248613785233262356246520703362757976632336992946243026496847562977178537360212495856377347318931766882579454329585191927015236675079610853650291525746870539661321952824302846773228389783999087907762930510118994627495558161792980800034909911703513925687834607606574528886263616813615594612824666057725290093061089624076718230282029818427385082586643101224154161081199612177459489524613794748796726237356355755928635347632432102525696032368517192685286917733692804586010295941907182089955613134949587198663250559246075991576538913407193857002645460968343575978722115710827965141474404204477392947232235600362708661917760338315536031367337556974118944772706486584714296861757092850326521066383706568830738878145428593092145952453643917503129863831055329264043652841578645518308012849072514144730906673919907642511242285704867086466910199844642203111810363715380181037361127030127561179051867646815646302213603457996497288628671170017022694338648269482527139703261421370297818715942506686620670089768024410342245642919183683717367752891616463041408211321643026928307468085706928155134661952639202276901984939322677372054674030789542153586885785925921380961032490431162457895435985563325400217764900417990440575930180736232573046265803483763222205811066180261810374259541192715392725823866230468553214357918669072938855842349640448739491268215672202210198381939824398048691243134176601867235829365014388091171242447807672574397747592303689787280305536455042976521126586116361869348353486417088254929799780750750492921197212061731613837374115029043830739329122011797079462500715215725597453667188507825398142922169452817259811323986613918789770791628971157167480400683704922279695291429728375814108096739010394603817607036107066146466512680596412166729885173950440162331174006563890932071665825528212706359651461160478801638945664736341205487963923361989609126452310807960732958645425753248263756785670585665110862729821816151568670489621121620628023247345007236027956723043927993571261454576112590084731974053442729021305465644626534062894593069359906453956184922859602686794928139566297813091277884840657925603001930555406907365096059870135784256391868894145140817574128318705715944079500604591942090132746475055985409077629177164990843947133742542403860210350204268143070503351556691056624390208979217433553580347503138845752866849148608830927185696998384475607824761612692625772355828231074251980623203611808651194062440761051651760655471070180645089857399613768321229013263115276333857016165882999531005457074036886462616840786620697643824055083159005249482142817103554947708921912308863756709316096191568925487266314775739333614794077694588311883883937444923048379240196915947996489550263281201021702510120683770866608720094319688612681045624735518100693704390529549400538183677107850428520556150842492348657535673178902749015541365226058420272312639834770575859559871612462630266940101126961592677749749853642101416260769840714612721392867306462188268829402019926756669588560669532777619705968093027370494090119628154632772879024333497259347118367200537102477253045911362695374021893574062457539981180415960247655779061771837847383203053425604979085596454503560251539284321348606187557139755158477078858148224264028185358580958758237406140094125168516155928532182166138324533939320987486053347950556693276836648176619368508624529492088090992926518668097170216657096961277710607443350987097047037071657450726793266893599354400045666547283609535722302304347815556428400767015059184945399023831561924346856267422060465949914828858939730541778352760807199794355900916751597574134137395861595773494256088414148935505124713767200057071799407233757768291467612014823601134517848562051517568795186408142756197837768332178952536875141447838759886438957489258699462008853581865706936074486327784811395451758767577055157271730186266908690036801227804667181570341145974708653869270549990037645368399365057142283113595717488755349225942458600786904252044231728334733302583807172064422854675069482911272155484924190457751567829036101875708735912464959721496516055018168263379086459040831873276453462706159049313219829417811731346467159986470899406658026489579046551224502272944122580067160472118910695833965286446000014950184918520553002659837055881254719367497659369755703260660680770174562525948980281669166416428648790947052183427222418395623855121240094320531727789273129454472101545559632612072812461641505667464474703462107939413921302728429811742152595649264924738113276244106027762829308867738249254839493405096779397375891813057762870093194722185880102481183874902082069591869585375108371664762793179851043066193596346803812605707272718657226772698679215758584803659001955902948131629059539548934563023524359562253858080235846686461848453252664887053839890493862822714309781251334225156945463568644506928611316211496395080668460171394843656884834597331241324432931050973133534073588331911283652582670608942268606847466797898758405989861748585727382178081804847277156271290429891645194093296847422597888639750336274664736158995573786705063117734892059729801988297309358482516081810853952933229844189667633135163758664250821243329589693538144400733570029820725309064962047299928260480664122121192508709832633351566299899064920713095685367712725066411430127668585424364670255241419858432970458920872730604839528344063165902688043606659314365507242132122025617031566005041023457119747290284931024865129894646588149565666662115064250415488148320893562878152774835210635226906890254619082266011607850296796955339543376914494987356229508013114057046262219798604690938308255899407458136977130929446805810302490622097956895295852422535653638103813465005283149591453243218680872742445170028975086874758268716799347121168247523987066890250312309953233090783477381221204697973676416299553772808444432121753078975635457094833629593077001422930725955319623400670353410173033050284203686128782425932802821079760988096137712241038825688229142201800032157414925086639850039882871944812800454303533980868615690741499754102604786079820697325341359849861161751073723232748083819058344822188977978626051018964580910832328692785689523598821656175012483942483705739522615475430067367609396507956239428030760326019928280368203622956982437956929475186031935012599440209966888325446211373975874921182057587366801125714447266561723395402451485080977880124248435353342663781928225191792955257021010702896424415241561422168596705103344244350118162343338916819358317868670182557174856328712621152534340057216820370743007893549292986960890315869700938683491525797497713985518030822515144325208895036220331042767511531866027543097844523761392219726344123826500221857606298152313442739198432099167407775409458602312271339986544548601547578571640434625502229579757807047397174592015470227774644001552622113949121123146160211388933198725055981672521585393164315651140502858831591291207220391039933874642117805636986451219168240303715639225908385415318735753546351422938713820083657092236257014464849648373252078554019040906362758388393727856179899174912539258011431166337697952714667451515336190296500389897976899764839955341417961901064491715802462437605523841927857146867997264937911828800854413461204194256571949829710628415443448767919581383616029007366230573205873905175900931086797770071618265901578800377255980857959170710865775776087586534617815306951653392526649102007435444399120992290078864738071338377225391435195201373474184918211241484515831567140686174545087483827404185178402937992391384667057212371599851474029937350363768029899475695998670315612831737025268985641498036837578870674692806198969470668644533152153522144214574099133448671802299639077314321877135761162491263119116049309187406443016343659681342423274865428242480329485322339059503031115458545344940149675660079164263386173411595730384806277979670893588137343592848700608718773772046264659972632138532408747180494564897185879558698457295852631173306339213854614262616673543684795376579615611963574368655633057234971452924969286726053604878378335707994136607751116139492967187548184945085743615804811223788204184157365871603229662215583733735262766553643664521308455565210827721911096597705602533089994821613653939628679716656510963801414452773947987569536637794399292267996267780354503537178336446152581740456213356773750813098818378282502367063295744113647953164472236320678035767318056652488947738479980783383016427034890279382852412861986381681836657255496487572806626877884733267360658576682747547091211072103205436876808259312786249046238015800695116589420784132395200315020127500355447850655766402654120295484658014526439326106955050498644069735595989826257328903135108890245449863389525705163068657601615358757665669330989146585127802199890631015324840403404303097066961280595127173793117450530459728009721258988825402687459847656335979714607289128046435086195449547644524727038668750393615714146657987019149190530837986108379556008324281107976741782619173933642665287294334612343984642555108556374522184470582654508986524252661171697218585768003474722540016249982343056902638294009652483581204219986925319417587595412184793093697968475333124821999325406865040011434347418319472627971905764673737767007886320822915402305749919427797410079093435998975487314545352822057302417155968422820250839413119463085365048102101240304270633209302022280222597914964910921485315265151504411520043867129240552506694920169615959199447702592718630140816330850128962930928417668561334854188924811939246247713609882117079552155215156717565738093169999199176676140310074358905837723278226228595240519106030388042566944639173685121216199441215177421433897489798690267700096398793144825187716266980565527993597231416803654169080888865649551914071044277629738790864102229074169418414901710618372800156998154000203642990312495854234075908417592183598306399217523412552330691320599589411304618155147870042095907234615412536112861158059570503930817375426869258265194885227380092269552650193485759046788511372467076561814044004923298880981802522490173392603516373136849556355743050560034436404480116010934971609544484279092953790743538913196999076835365206828328588181734351666404748050450272978733164659193154902805569232660164937207806427084012704865855494087946119028852196513004210379297057754503411905562361345999539137344655889351957171244681879063417533995983874565663124386927921773509508019448672998138942697161360373953626800500414749246564228343279331769028345652892412091862841839058394706634211215460746263723848068723924478980854927117929608455338506594457532816209539127148992843898279600624703041355102111134301134288214739145278812770923896999732802943778456014097174549882118841997959763903650276168659863135015691230499022698487248272382811393338676709585880580171880482382341131013536823336202935828313591500757421907172583021070505268746470518958736517672569657861327818158179685619871792125485180007103610625195549319005874962783589761073994581456334373882203997436166317241099612973256231291667165748617292589122110299317248306066584486677578439161056719119106287723272372994041018334046769247259571870679523895486649505065247653909530559358328385425584605798394644876765728943672568405925437511776262330689081872159944001992771999435141078197513076155672903775059271715811433137353948551169748291562902986754012509684346226625178802136119122279425698587931947847300159391821343074910729493445225505578941503895344697055809238463246915927325420133640822132498475758527971392745899347718858634928429557298825409890452340447642356852857962326259786827911906905424546075357631640040294143982323118038444751294856044864721632237402381225405077087865503550445170451632214965734839848924946879859647719088506947128387944586261157708045410291649741615293490456162674018930830617275068821064828977575559449743227573378344694092187181482033185261486010083982256962394906299474796398092861523661456483454391057771279417150358176354729181396013320685555315773477652793925674092556919229622024871740261553379171099974711116008662747660437804373356349593528303039687915573365733135794205248274432663866264533833004217430599742273126357288180525322805574350831827174907384543421901256487443618819650227809951975330018093377859389110073498367774793536774923999819665845192852124272307044750311522635344839482602602050724317655513674342273531683538305899254821466222090999501537370715600459803826161815267670120489679233941464068840773588487100609753141892966657423512106855596256774966633290933265555339887096866946949815807397079546770769637717246581983785200292283350754827643653856536450064062603154610052445435894091287233431265956320993263135735857813835233932383413800118998722935519931052812562924443406371171791019548360360744953377967411753213157367418803635852989204297134531225269884765499812445357540879177642388479103608549586495549467240384592945549691401677631605434365311036913779434829337333042665042759095422836509743718691280446850201506894192264137270188848749229992369027182525450254332518500298937499870123317266375919255302706891335332564791317245208482419582225222497298501235196485553184698156770334410269795188144936193670028805412171822677771483349679412188240109497225251792222385628948071847472097580995995864527684356536936099238823798738137863896706340042510604962470944559324794961738967529577044351420169937406607879188417851887571563476151457871065169569481716540636064691068338313772314340552946206537332151116011476291255600709512606345389112893011711315465997148776347693237187716145898278544548617874029493124814852869010448140473905153346501246105675148150262132954605631012623940285351377456057723723436410763608708961620018515270665716880565458382635896524178226200908206713826849344413147816508061092821216720647981936505179760738524389148557482853899589052588127312048452117077123868953304940937392527719513504475981143989968726221556033461638958982771975441052137519740230599248947514785513800549002664171348718546983212360776458357302724209283846093423532924906156191235190476764519844060088108815180158871745275202117208031533565772028228787047167152156963111123798997726969457759179698662821591832762149995432520257709819082217024825889194201845582211245323792206201592329610961170773493742265152365951151611877753543566364449694180794800042163680828749968786309456062193980309483363176706033251183111160930088711404286385334869087713405281811687207190404983607627976989469787033693150760373727521683394049994806116271170487729315491556017509315761938614955534303682139535368946463068339682185169507452340276739357634994839171991100282181347167243684207889208807410760649972336363250422233190849561615205908247592324404279435563110643739673236367708717108836500090744180508903109799567104988535741425806031851757293503923258397187659302868350279083012722178471638591851616496864131625855329173812550319255098948234340592693047930479085873609905610028334452242315227210788616516092165672132832709248316183380021305489294361734995263020284072684054088944837976613062917240604208889141054886955135602083818762175199873753471681519111908719083918182004168425313909174736231247345331126334527972842778599332527297513782289948236799542068495879676925209019110728418689551934736622106089568318959472749093749055325372318114652131576103954741009996758549451263646155484304416701495535964094225654599919559058971778948210092337278556023505729862957384702265675576275488330738097989146473545154991278481831641475966277049961563624088436912901875744366115734832816681464379282330705635329323686987007659550817752481060451398967135559418295647009758893689220406391624122337040257723981827636547942782615013771663830960112367005083633979943739317676913994102651956073201801622367498379543831991642125439505872145937447114875654756410819201376090106885589299341937300837241241422381671864500948587791287013630584598258895646151807905569900025460161814341867372766369819981767358606504548542032938462845305053095500512202005080622457649975112079485741252320808970097679927155224851808701894694255915232553427292511814516359744199555303606519569675775949118164855340059821085321441451729798373823975114360576953824676329821525470927356786318629025492140728102323224498772807949710470352163327409204025390529174225924728409211196790789620879717577436713210162810518593069755967912299891857120861795148111704780038280867207984655059276770761175999748363742842945534391572257330005759212828955274189465052545563966568428602988362930484661781053132752560974928112215770653191450717748169976029500037528102255661278301794903575549038323228863611918115118994356073557788854286373698748868123168747292617297663064655558437268429627026381147813924770296871594054286841389806318565968873278439320807092849043112058361678384405761804015585606323221831341655356337329992781364082630527477791113382464429211156106459700389594401229140942156147807963526263958329759653410429672771368188407308103775726767330443281912794115572813805585025574197197896914062327147219965343619968587509575639676652773885349087223995951975696950979949832229698798922594494652239400644708773892280624267115448686996336110047698994248219247867603416061360345977614297550575387151612664722981950320772986707649121498680614916986505688257158241535355535749930363085448573801320201862617443161844344044521389541568329725510723427103582602356995040380647940331117785047072384458337243665036323905564332367758335832133645567629424065137228681969539358429729475513765045557951209047605125150380259423520978844951951463587728470040018162296089245311037341233376071781196114885687001225301489376229004259040087166768245141898793589695464372798376581912066884155194992986944751522159609271599243416781285082072887486537844736951809218931189628289856304684404778459676135784784889405818033296153643409377967163115552296850192970469074080160649413554793619769415253389474818309981874932028942600085196884045607872957076890628428126247600532990846663282904710418375386985942927464945856227962751085599010420136052923769411247699424054594883967751961064276475756944288349318851828821407719256980707921495232794252889538887494432061867728855213781619589600784332498371669526934931921094060958714929961944699647425239194812287270401568166866881453489371752563987575446181265070336012279147984288480545292406088461366534664403214066185715579571210573663680964014692829479097877079498062034766270080645049423060744374797589879418436509409168682647706949725106382347762307310932868252929917005280883571694253653435037501993661472050620102957487359749279266114127306665414494228556456618112163721175578239755832427896845759108566998368735103202572294472450768343196960613638446765958635684570885795935808293000416578492674484202888864202712163482990348512904616373659068688237023087171145684666328715015463633792746752373339678133803800332398994507904082132498395822804083591934127765996916962073804576206087083777381753730191540655847618888254039899053844733345810039033652420677243531841317936840824582307468437574785454769763477856323698515126367408280785655283918005972035879550006187790897816924665693772436991018698951501272161846417462886286678799887632639880967280216963371497847627432791278959929784169217992926176619342753069776985455803162794019927758293910920635214711661211585516213711766093999371299604182895016116681840238467875633611408442809042542627036353222300142633598480943479347700620481071027277883902730303253508038444357967143397407576388815926082638372775728223867345976402656657464427133025299418216658145960539485074957564759259057278940289995001723842794716486522486077526854479897344738181928528170297646701690423903936360176694371069904239157404838069373857027988173781620292878541064904515202642402315089937800027926301184349734611967782012857104925594586115974067332777248319462187253593001841653869112338089337956880173704495044049133504109431731097625074236209739164015750245504633606989423037955554762535781436922536143203924953155341525584734617646360453747649557433122463765635279293954472562955424035222340027327315116477003167086710177976964898171964562804054974381369680457667051648251394044767371216354855620995960828645253711271233827777455490139763530958565214367370659997904902361120014768039302157456148571959119444058299849889936922693418852261399687217979566824499009724257227597225138205376450927883759493959122357333578510116146211474556882301798915538222600203586877163487131613995760802198682850497477255363700859738014550635632934641039406945792534131483706490468367538263029191682217997536605601530292333162532077157742075542969189428230510975088544897995994172862346596445875561571568427779901823850176151588953534261105711788855528955900189599763142809469378428998120223987407224909201817965330942250702929160966657043278851419875532315715949342589990267872407200907436052422531936589323491492952491227294624432847770624121470359888853448915119014172235858687207240107867256789346864380194646116520121926075929779885771632396660888287126011739338452126435387821813177422556329323458590323450823518096801295570756896057276806790316992443821884771018363460757181295837373194002894290743221384303781116852245276692029233140677363623869936769917608032715121639902504382243288976189038621978730850718724186527727892231426055557586769133467159568239534428505843215044158288876369083591844204854744503555652159237710114610047772370864550985091515862638693420878083800004517248651095856958951123679306034720586610943563682155290978183817919313109454685083214886623834836888444649826170506584435125161328794552506396431475263041298445193923329761695666852281299055717766142320923611588915718421483231970599751007394884753722861894547793286716534803087568087111052085184820407179331215035772005208314373859626928000473604532503474809402730005633436955226586658220792072151175750169767038923061180473587388799939039170552868605525386252858534621053780145302952106534304899101303835087731122775507539023876663075483259479316181591676473234476593777763447147259434032682465568677509247418264444982479019945570696315598315436484402732164913411371451937969326799778811497563266938944674561249339976878449232202819681154692385656322627375346257441172767212814365641023432640391919813256425865803343528365484831248159686582476226191230823612848619394976951229609596556688149642637451699731453382522649532849423006715502582392651016845723090186352246782240213083445623050497080319619353887106826057768037017032674985752209369642327657962865723432478824044634027671310623892216088588517336752009559232594440528521451114867728523829677094006913982773817888904233423165603604440142522113379768305881458225493842289053968714351536958327518585575979078647888150077102265898148151340698084331340480611951312716158238533915819171590229197861293497537282544198115137564767822774726134699534210580161888223261426117510368452096971537181350867101748643905158892219934104277123556061005279392005605145197761549993660600650465187099431045538905251037658197811175024223683995524462750154161400409717602108875372797479481740689827498836095283602741007031466494453476596193194696512452538551331499308983448090179732246789469119835939506134254640114377321501888128138093993725592372026360512956221605985838271393418722355647626297997878973524157368434302448027717340083586149235752877412993825614298047031149507164172467778100946653812828562432829583266046035321420621540887564985787427354111437961274663685567810661825925065156127024041010059256807119835649395085522170202064455630115040653891777794125377727182662767711972025149737623882358948614711917848147708414381156240129918780360526813057973509115197703257317820531842981519689088731644334421220529172219702811578972982333357828931751057722568247982043282272155900137533132156829850634933117881482212284814158823615159549087988367378341606054657304891445108903738713960105789888132551771210764304921875828707507915409397884134977622736915343091456265194577726178521593074959057398724699698372801488319651436707676663725039564206032725836452814512925171323991384695919785581361223805989694670860488939352229919191975341988273746071805893867289769328280944868911505157576391086215761617342140197327367051488926779308153088244292497923405647638018345249418319633488868414569975727118455166199421851254684188554918826836213923917272284828788239760685158914002715373826100002790530375917404389806395470686850492458701082584304099554033700152759397955702304150720583166988525751187200227761581306928750458173140924579104042047410141608044607810883846376004102524586261353913753713236179889026277542783190012947669565316994300940059131947657877575922466802659975087476630043819358809052561753299533321329446389717097973139524822367049554187699010934500405189499513890684228208298704137782189273972079607412689250428724875007217246367062308987288944122244379268174362022706200330247754300014552552936764945656754759505971477482610787726892918998074258899961568089273679593350704164517195579824611308025082249383686937206428288073042036080101767045936084783772644929085570137407528967146496064882861513522863460541538662606627832161243550775029240835646269725207375099931946665406571894348515647681603094244787429214784636508129722745100254735858283631307629595653406058703963355001669658412047469421862474969328027685039325497394066790093142154760547967978664590235122728789306188314813102762657839666460901444436000730067999035197556830276461923425374803669735273430565605679313598034654748665095126184037202880626427900304167246575823767821662114967727926187680846901155311539947132570215492112645406006263993315527333442543968844354994826435555724092752886788456381651216915779222133083293816856361717517831086408004042253260270828063307538518211888197398334421774818365921115381859136345787100848279574126834488917413552769958374143006151794667503002877132178081126228440754687505217660836046539665100840436830293962281383448978890296864703644270616714895180722928190766426284657460508269491035563748466820823074439126328128720445013637916923594609012329655394795918132261321490812555625353524970412020879109463572499507215510009227660687218267626851913281902638017767499083936951916599933027092706627042150086615934778757884908115032724453880236693019635012033392961450938930246428485117572613679344004632119230375454846612727605506588226171011718708208695987141681738526407699541175944718775457587671031214126635961141783242450321071712632490189932375157993637566821062415391232358277511776795274756133964689525390920542109268996315946001251691341189820433768111456388164121627408131937789770833253024810549219954545419315823927846919237560931660950168459508772634683603310776215395227717225865488750837842168960415947944217489166337379301842887656226971661152817043802900142059616911798059792392531861448651885052949874685919493533499715293736279553371576211991241643460385218134300857801802664976106767682391708874792143235388481182829744059729714774712650952540287345121485065541985832304208187687780697526052064411988479917581319013784535921113147712862191467898302852102032497217020745455269506602513158846601113281544017067257044663578897834210002309072910689066921730328341279413883952581872725287344518684350680777906233035262900186885110351613944764520095878899477274026450272136833939736724731951411167090597761842535517139636303857147369088325936281902999771299172105515507805300512013808293047188827626373515067673672150112315121173088654992447449303410946073993641526043726956489802885011211371368288213242232580629669446432379658743799716243452138324746506046171904497149368672176504796145651018189781690402599825215284380746353769427510977753965891498768933242127072648932180279538184113802173957773983063234708544748539676177920044807475601300489026705504828479701396215460366120188191441243939525427709896936749475454377026315601014053740094279267827702436532722419070281540317001682866152528641010017658426513582457630330901945455997671159550886651380411988112358038349747333128186087714552055259573241675524655507244707620043494937142077358413031582721527038131722130124402322736038553269213685498752921200441052310201354889456314669352575184008934182955527903863403499670849727968788310439298929310789125334435735551903073108187683480534588363720592284978385630961274009791026337913436965588919069552925174042045336826991865688865759591671679003953687865130991583621508516669273962037930320639209146425582922248825967061207251431927850021882985539629295987786641787793945112418371139874916686013056975075098735650788696445210323234519545198161839203326930158996359869499791413434741812314683535591652422059824542653205927796722410722109540044284511713552373441340508303330833871662632917549490955639953885001243445077451026686482908893099671257213636877467950049130533469157324062193536513719898324370717515191863619221222413650910194718183395701814910995936651961155964083164739875508282097970413366699143486104652528666595143752326657793797485421447346336125491255367939430765960745284737385184104917724859809062648267267836446437445016707389754519196564131970182648638390234695579245168746092785378364696940807140304209187919224244451049469291007308737558845059466775405723174963666754754440410875350403344211855616255017581910905506619431754225224089704725758713927295410096268679863687691711294126089060353120674668355538735030956337674193442923040647420182453241380619160528581316820155509502884738878766867082519909087967162300729869698586536955200204373312081464199261868213244372336539984760873223736380162816331406626319697123059476695605123551706649278143733005376837235694055718709758836835961722948314148245674329511887464698211320076055098767310776063008511241922674764763463903405903955414511092430247095981016081581485740998501153441269349223285052229368241312319685972102906432579472489705965970280769393241407509680350555846193356382579057834224814980101715484934520214539952950721880358596439031301497271637145356044697235160384154678007294515221423834310503155250560493399690302032524465398199770366588692641717141000735171299811902248965690209527853556513084801946929752930101522088741431196797200366749137306506888822685340222596257145665293992436953688597099941632332059418395612506482989320012872858507350807210642294575097533114843898914991279738069488210947042307225098682114887101937568238331000767950757092964603552548826387355241405629893468329670278786722788725649895034815205473545198015405605683625099232997960146533420752962153663912949600731441948100339786218032188027314983947584866893234208211428673319872219032029930196420573333573334346091081907408642684665517424610154245907270351118835761477912775606795949370114566718943203001970962910108895947631059592564420764113046727632012028459638658564848792891771060784128717506328225778353855692393518018524389498551341113321977265267180978686490996739354762025914680171455986840693385490083777225484090467707904731806507895351687523587440945322061464806218533085455095355881866390757215952079559158261811610493495637692936302878276018240924217274957459430979730136458990364316187159332772927021091910346294971196439244691669642085680466794865110841354817528319839584414230012284823800738557536233667857905638131499396962484126852899756310785800137285604370035735643400982716671203823347300929858011363588621334801235363949719309695392604352492990623853358726030088434831727976935078756292827279140343209679034764415628145544129535844430546872980141211927141266379869672738118342610068032029065532046879247844679876533762251127808508523357974917753846191436791646158942956243695706729218330642234348074721052765711690836607931465543056779509886953484986193701675424618526007463007205955421787622575924661658424005171487693763377891846982768423405675224868683196363696982543507233502098220780263331140058716130081665689986105679857893261055341198630456908927270640859236891130249976816598730472166764136506466513227409594353122940057562840485376652780080750127144932194473105009509985506646381005469863263751571273239728678594742915371816557719942521846483350016782936676640157377022132976871140905811908733004830277054431708481506924121823491265207605142126490693123737801398177155796083172350726719785330805738735440154036055208211021642526155042068204875667612451748477333277946726129133032685602844757426379086963647118291316465672004772631708924298040734677878750939344537805638993653354807188864364721693536830682272937403887171482176913914211788925513870635747076988989329075412381816848699415249166897851277272551373247671953192161197551982348421752713271728531044877769981196807991866791802203533459123896840460927512389223080150509771028542043524586326380195925128284745499308768954250986243653937136526108063073842202884301654986484711791893505089757450619417654058443509633944681134171127116692942849658656853447252662051044045175660676309653498724528211993153595112207197142989026206344248424729929665432656298624637486042022097996268857585458680538721174914309963322602100297878849960020897398399291845963969480234858722517100762602848474816860479626808543648244630587663249808158781758437366583088993879408019154594454730118758420663094931616923224838837568567314097313288099452594979148506525105224263702173660667433954033968717523600144391246624983899089459049233320973675747683577701002841666788088794776710779571235207740144141179761954992962056977940532389462418076093531973793159998320474484716926426372889763663143379809266004999895145244268418675657724419227770912600809609953600928815194046199850681958316235556592601059630307239815355394352537523353365827352805394331994504046512412363693323274501751738431268546050516163517069795830940826037049627551548128052910464232021573924780843741232623787097282602192080422187439347337677824997938718801969377772187293892507895066907520497250682081379635469984737190932638989083921752078874721737132494145148537534167430304796685388307174549503519658542111401976394127618451602386460505360592791992214727686360072170916572903854946640922162503808605700806799055795209674452985654280039798643719106083248670494228611052477971435088377393773273093785849643705233881430399469535078354579528510445785951780744560261717331066767056885172095223433274771014226988683111830216660934396902632686373357533561081445811196574725100312596441350983417832081636551482176596808332745971017699725815462949286850956927144400734390856767752991909151908715644076048500431956652321930840191962440932972240414328878484936638133628786834067357181598840356411971208369535850753350591616712637642936685068351805025552948232879120603157047211671369466572768675486383317053532349982180251214957071293586817535988062266117566526233491554320919809664204540209311133118411305771549502595199668663923247677558730533494437018901847949943302564610154289627581499108674506059761402743362942563842623675895219724086430014935532775579644024840756562222101803362593961784099236316407378341494534424747274919401458441360458736717505234906255063236150442732376510517204809783610980362349392216255498911586618517765726872873440548890149767257609529663712399648024889506462389667083863697526743349939876511654411132047487765368844351518401005035122553200384648855309609387454660053098917691693454130706102051831972654295466322637707470430530684354041939410457465960653348015408994208281749667539127312285830001905185529313467842118894483307457376353092370614178995492429591351310072688371670385047145745614586375963166549199125223600346082558015486505574975263116250502351581967696630241389381195717591139549881603417599572409897354505105819673398554128201038190783098759633676759761176858219417676552448890504577225664400817942641973051089175784055517096110922517305846683468212553043722859221112829964770053064358850849507994272804031896207439033315310657587453010378978072472544323193917319963885225121029510896017118919595763638785060650893274319850351775345535495151633272389381367379901401071637904837151806931104951447390364945463982726546976277036288191252058143752352380074102770853820913252297250339866214864152964747453406616694157676602850868020794916107064689514305079736336713153865819120605894606590352582831523769400915266755981333883664230107609894944786843799496163215942808939777858571825479533762078244075138009505554328687407291564338832778503713905483581600814462913694670688480661718134658101460915796389608098670771173790356961850919238697240027366670041246319234239704409319475944828044234408791238678245171247334374285608486597014179096995225783390439451582233793689965910280695419682363611231127613121357675283756887325011993497416242572972928279244685669195585534357319561809675786399072396305352589842696334198604424665887981870705218998777817882210785664662701720492456028088303655743904961889587997317545530959845918182642297858947234317721965429070808358536050044171789160689209058679100163180567666337405042852042505486737962879530229087557609579704064229960194873635558139086614726877441169432637463888979205519256244561671928531014826620744433565836170142054018880262941174574755703846335882415736055475078377344267766554359444946389772841974704199800623208126343509382207297192755405824807760966460062090010484344821934588465237965509610807650121333901500336895847709099525710158466886513946609480479064016106597514705426078375758771158668717074862812179865385410148299415319609061551139128747660964656608914291579992862027772682875248196908280619996725072187023197160579268476017587771077267275327587121700818087055913225471228025044855353630489474255306606105733859909778047622039351309724068086792966039825296221495653662826283500578707372020277356662444849797000247487394769806343610159733064927968790074126133923516395089716831838319306710367859385549140220900939771777053530481808138967270042732034366957497572370872454720156447702124486335121840378807959125818983068847013684057235044974416034506161865805544627188029858172782627440390676211819023374292494829874272059979095118372464442750371213503453642615350515857313333811574411295289528009965674885307659591063532518468099114498114581208001353133903009160553626888022230332506673003298369713394651223889261728788540880927568214643523268388102715078278345967948671680664071254623365944900295511396755935631504093622380133492650356380765893742302991957061835107347333058191668376845731104418896280306877536920399718359071243621596533236532661109144155469254723370119232573332689063841911310521954936616176081269797954296455775772733952246841212175076383355115424956148533290450526716875596622397157644257011519209091272833283888484486651780124137373211730231048145356324427352336569324276858082532884024156567223258229294316999010191085255278018211085808259745592423915959044988990724607964122068499891885074040705883885397821581864865416527470662634548035881191376896088732840313258806020986042689912831493531956403167279245700700621811305885116198452651924051837469958792891302137437310302118888031845191591046789280039263177220927554217659398522270713752053262334774449962763959320998361223443336592527839218646322289583368469406178009171502980628458599228213851052216000889818899693231483453967370617890243276048319645836370592635062725354948432543500942364894304135962715176261869674077879106650916127481314686512445061366991912400698975652067260549929549485497902227236918630934423543324058222740677895497612801752032551759251221324710127956654060637470233789029519800597159292917147633158427179488855999520751947758050778577983307593215854669683858293906029411705007748411368566204383818928795047022542263543341798824603278575739968501828758362103244370024860829233463165805747807570363838495932394928270120142379838112722864881173971419635373018017255523128996914979239315413442892896223942134050303687651582641146849640737167421697683530096715666734124858970833296964719118271843916706408502126728605242892629966049156824504786214178894724377588731599285681020240509658891032524821919556536092508366841518955374011057761605358462598780264182613317434288899823491725034648780974155241438576004090247064264586983130015416476430115885453920836314352423641260690076085981569754622011448361846039978852926948280435602151725825383362909598660695661377631922074899476282954380211210956180341991001913200858205551418779534861488012417178532604893195733385328221906429623684987115015175945087160506254234337266905534592677819503719249234067528302784251438961650839812023911461648018182388609164454643365742933320590973908693508235931147123396119362585406978439061052806272424114210786846694655268776898474015110612426518092049878113424275426108870057400519188299976533107865263603976109003422640294100089915308382504242272503070136853504720100674093086816591082143838784876139179974526965287573428282504611435657066799749482254137915709755441274857023966576152033925583777820169220644908652142169096658932449033257352514421858062502116179964344041704114203965863198151465187761015860590532229442948066464847506106158679943769264680217412318656013149258317135213799073138623521196048907698822297049637461341091541608903497393708520885092296258307701791155660987154466623037464019243861048836266914087554302605146117938661424518845109360107643110346876004857635166983995652413890680861557844533053681150534095354412468019617572068844082589885189021180340863163713284961358521610854993984081443964414138644739429106042350741728151689154494780293021509459455413154107209073908644566042615265445527377855448886702905626980798058452810249384067174770398703440619047030317609085806936744333863975506876180400587649202818539123257252992614137168704864350740902132910761813920777100344827979334848433442678068228498625363718107110487219592076502884520086487867625400891490771704815508387142305618786501392606510073613677099303892074303873746053513967161147402777515226268935507975160419853465835232474716972097340729569884441334015417759119183790336837356255624304874859879750349356394910223709366751487902179041419624771099237853240642333678784967251113250608747173587968371080470789084447476122808842700355482851180243110895701576024401140165541786486871071024047522728068440929778663404760210529847013553203145417156259474604392893950949964580754088806771086410431192022348357116875858379515407540133283993567963689830599018907340361260439322355803678692136505735599839948683579510264334609030538617544991736857836417407665915708691516535435341985436121657285889444715216173741424306227257369602258360296687037195011238438351886850695022684546284240993280201812354913479701058251175093826694480207477379360511636456727498960699809319683955171084724712134565670466661643757301411142458606511793570335488074148742556842916475468008041937639241516595679591508233280863859310955542272983920063013381963286641129758939084003757358519307888084393483911832157594743652655516887852504335097223563920625968509452559267978056502038956587897922831818576204451704957554606374594798686022862870623106098803640143391639861979189701252583638720666337592174907268767427605642842936884383934318737296708707668612526293699303188230086685795049271798116121642776713429806121534245899135566566699712413389723840602634960833220267658337995666240965271686761877958202346002681017107991338664600348503737159790789881808781460027441490384293337071116557091292341015494200488418057097591659543320084012970177098653257159116047258583989129991338803483447948896847527314346896988978946564283661480407776073733182880724072158421640794904891694534185624192700038779299392793603974368168538918639937572922928061114619383108389460616050915543581288717987277193762730146568688603255517806202681350651197125428544357723705847664740500251111678232630975499578717886693462402700636629890628552289677150183526543243124779368494679245511248031719173384581735854272818586271091169270110922167975071194060013123297273234296749526885438751346228963104772350799179759733016354101091420364130388401718667063487953734686891924424681350236850734722283117917380830605826297758239187158737154944187050485206243304004316588087066163377040374785771241335091722697296445209750325515858687277449911421412010416495606430660873021899216415537403637780842538955664981060463154677563872446284517023215745787030155710252634096104191205828917545420705647432395279140594592133377927786955035065242542907918002698354000206613430250755972327774116150910974368093014399518219034689874938732102290474818640862207183381447194024575727270901768665230326049867034771314745212913637257568877494545460146312277937083640327671289235600507216801742489575759724654110626887965270467135798809453989325545272819920601577533698596582939416901115254579785303195419071713198164593638284875441848148732890630762178325955708371270386123435836930177728505480461436619345934440198804985036159036537226259231542392884823983752497251652116655069120372316576126165380330584207762162638212772536286133695190506557872206142602036387393755779735828098442657624964326117662213276168528727953280852410054923885060720888780210944729574598854405993765531497326843611863345708551343871242507337033549568244881061841103959605122439611303182669398837729164717264350058855725351554867003971372285742490989924663926467114557803019707677495644599364682710740891413069388045103812599344763353985063892893408845699869607160806867509495857682664009742388816212100163761398048552107723331302346069828876578431518470798243329652961913022873384126740758825829614217173452585698303735112652037748987840487818308990682535374692073757785820709479136249576570389436029795574415815433671432789406573477541246733302097886409057513382262750521908205021643324115741829847286953402419203260960696858329978540943533741149673835061260618393523185001728065533280069911714645933960633786382898669224141194332256948091487260138881737052582217744689418892885435299284164265118854189319091017624029022877925274325360541846647987301924227572651408755629626614862931361317089276617767670932413459949845459400225508448112485331223266939921428093529063136440828112609204390134704859343072092682420463790010423628648664877601358815201511803560235398778930254071043750892050755177331813422388295138238045529237556318309727742727707477507214474976770691383925120839782889513201499918361876440885035629208769373450999155723960845092673381125907695200717383966244251385796243377061668537355709156646682679155492068049892791668735523197487649680683070317960139389774352615809331112172387978005288347770619271288742306244710337779824974389751314270228495965820942063960000174831163737106535258367323329395267280769286981981886809473512933086637565978069436246345948322286250446466155408069642084654940393019199775071686374983943366195594630895756819314521042001742029673521192462756686315322241132050489527488714789679804102418261963691709439825498709491286911984430464403250556574568295092361506806647867548847507226390941723613321718024115449952899449401478952345273585429408989355816029491117814781407930887408628225551831096931184218719628867685326657400541837644986615654619285031834717273570564468874764108444121848245298647170519478466721068979106522929298662624403270444966963413942627753183683114570691764777139912041684411384994809302132768132397180052599974987776228159780799701342776226749249982702922778098629663219899489674473782897942983544855650788179236262189857306122156739849957607776231568767495659563440642474463269766165488782493863557006737836449133378442733753219968753407191350248025929041045410551662458907017912901890231263046427740668283764764762198926286764069795404394606348006411460920288580242278299734635001014007640207509033589254763693883845632187713911142587610459340609775669985657206268961158881792046907291887357702094319357180957182169492228331505556542493981347922844649589459240185551015003265858082156370751209760204936323556475376891647334111320606169367380158585108068497757749429978934907955478971379454135108970615380046094716543397493033254866236954689269712383959771852628946182766563828032684366124623684470296374495221467658563280580153078214350931712399350647755802971465156389052474440165411285886274541235289092281729076028483674287326914892888611330032613544380960906818723399259444106416637128324039812262182011020040890054621964929319524499477539558509733699369446639401929232714605638368505764543074082981334480248005214592698679620613120212091683202902408186719969122517207143614444050449409874455433190805809919741965926176918835322801580604644377651491740450870958662155772951529804538372334842995182965414229993938349653797680668974028641368146987626213756443307710096467474115865383306156469435926534580293438938103800381286651404187719079382677190178847461264813793736317564593327126132920338663953900436654640271773968336695779755954611061061891792680735681576788254770525818040437612894522996830657273373049647980919815459427272024630427954529363216694968663312150904855845996012390593940311485611333232468786600313778074663774097943634310786085321495165424769912605932723442222737376103007333644242996459579927152600772732746356197769940662447381909845686406285020185612162002371066783340837418853908591924548283663599107387944156295114469611422994635335972546519802295748280367238641773839001685481267651473411449892299660825744494328134917114610407372325952199933234193905771445962864421435481790651987280739918112838027152877728016904397257184294695603115318353970470930923310621595656676552083465877882348001877325886991724920440348734756816319351831523070779879735883352499424473489182608587966409684642737344165611635815398844850080468657122395483027801344654331354046257160013257991049056207777410559032873072836772832143612361870733480245583683479587244364847774855552325475054968809694168965349548079709515554892983626673410048700075501422672206867697497805332621048195017630227305072977336406010105920321779765887045943208469691446525065843526135711910602277638996183664409433056381966593246751996098964104068325387269660103524367138126480819882940453366602366627130058323014761165497423667157079243713221085557093885790771926082291084816414726017027648678855174990357708566965382992253641782519157809734058304540056130597547149612418198223397952977007786092286082500352452162076480344079088856178741322642550603986104664115681737116212738418160409361030898023856555587046062955488325199682261884475055461590151703229495497179650252594653057140544007803698737970753823394082484464136212146368187248434342854259804410919030178454126301014396863059524392477120834417062707151894789217778235867040830284688069801807642329722954181838134338671466256219800610957734038526959846350992288378147504803944063561225167788980819075208386385545879010515810470666934655974950849931983623145408906792978408093951029440991193421787749402342693964013447435156806027385068328721366342395009935565396850193386434951134964709327233135312991136934056207615471349583423274195145662249735173536839015510198470857192210363558032252753033238792594555435449828351606947528977044618474387338606499197830183029616369381761394850432166490983447687877705003115852158952877022578284493845946931391117321760418744825562398233073297576319702505551808983403943580704457884321583032288056327159688155199376251860240434759935112848898476198642545245400014749310666644068004796868730771817229997122731926608243043245905029212047293719521215825054951812103125186214208463134433079723305916622445252235276955863376448473532817899596221809887381625660267788661879726161056173666019669845321974891165198546186104022693142413183714284721525035320757821057415286705931755733272500247349432425303006085432416108162130371877862961056180500342042331394477825193952165531439268398734921853117976912228194847150986286136984451732062501350177053246720738580353472522093677542662944986895630787341919873694753437864814203007226012509259046985862782294680888949059587493403112670289813518707278328255375904196790538423913968124489254869383874351859209343971439927634620010007474538557161032386808608513016176902064815125387525912007310772511023443003667710333384674546240098924361306537260111045896994367711148164410787729842574009754555042461666382703852437804341631208548650466512454864245530631389294224088862344697081075080667166697974047246317036561213800821484512279033991532279499689977811506536862370178380054574500255934284922062666034806167866549081304912000779596451491142825464676676730246102290785626302132403154428180498994563964575895444806645301675024158198745869954639064570215318257886593114519845191137485553497934373764363949414053614375252346179574346222601462637081801155476248181935526191419907552150116460341686419769037913069378655416791913169680219350983214396400543406933033825694359601571941999951471338283297806989765344990277392792963908891120136555179942263579314469819054654643785261765017786618388757783921680689472104862200474437645325085243725084606878119919366469903202021070195520265498136214800142735754475747083287698652870355057470313667542249334917662830273641169883661428991888904426839709141187221751907133901239904341726182949270243956720949540105868983680012869558701101305206243271872209910355853166150395231652370839636208193614029872764644772983894843466113281855395119373915680522911476674908260213214695477663735229226883251917498865346761338108040116707657839551868721047971586283167779849002307466095343248304391826520327521626842032894757823633521937217506778570336587485640727350367779914788855529698031101658280246325732749198535752813059989631536367409843345004230810480302571170945833715556843902900688962581545514926343171124239882729828663183690145902631162629107931621545847219787336153498413447956989899021157351004853503239253688783871972635646095986036431394955688512331324773021953168199999552626354611352283791145445848644259950592711493884966409409834823399220862697364487838262204627749740585096499957372304494136878561734114532832829830270514526120929637424297526877825719021070024438515786763500292667972172331447838768040868417433853505355451003624637523875571537127103692030526665452213911944545575679779513611183074505058509147128099233503141252475773047722065560930465109113881579387711569338448115766172491534313001017570969626342721167152328268671232042550478431661207601308940485723133589962201112535024251850079376511948205492953100907070582624239768055367030007815513676021952383640767501654126397083916600395863262725244326229547994221452680575705023094676534477413302809026652022087549264323757615395041414291727874568202498736721392188406330658412202127074028190811263528651231307415289805723900252145339020645339112046621498896769430892454394381551771942456334258511805683326222290960352205755063074838419552644906228867895436039881379308989866786737861140082214907513778474598071645450288760481743996838790482997661559722426515543093093297883177395273693669996733519658243540661604527049256477972302294246910111371518934890304929711195741164242366326446820954651947910298652147688335709888935531703814102759733335179717187017604802742606671720388372587270463801593921804687730458137231111281310696216831765603648167919968167877036025693250633968653634627547104102733687367659047085423924069919398407068087806368109127645827944670933102698265339757781193219175881988231650419153963040979580256297860986983110793548689690662215479423511862166288517708135928558976953919082366528765596870719228418623053158750183450044881810134882311838075363308181118685917349529691493464985047216755018753899060593262783922501256797859607182725172387764026853581247248952368691136219822867370665690724857267845212175204393726811309816113141682789973062427640931015796615704353053370488331137500892576844889926315381292322621928330575347770506747854882236095190083255739281896578047527127848631418252545092577797205698419321880628892523274511218678594599426980487491029804771808026778835230640034922619414686681035482681601942220038418486744592331669609500705061862435803034155120056076801298727816893388809214433256371291050610945663818178542014619233509163826993278702270292310007572633216811330065113983318376666768679430202108298670470206252384649608580081619052484074581290115347247469615364479901081246144941349522893683317916181765896588388722130920046451237315038126752566945922356029362796964272876920593180094023879025330073494222953572169858637677866660925703973978901242896453826432383328122867767244660786136634251998580702271380677650050846229600433744386644202079695995950940647288160111175824859741774930768491173440216074815018398245359411119248486704418422252973223733286087444540163352631899279408174736795578403593097753617876166102274857985580219817473882194987162213895189496702974807948737635827121460742002057166248131414959469742955453755488616579156913659306989456540168817607700918473482846764914193578060357393713379146618822951589046980589036011860917173538904359766512175629785048067363463893585732877086950598914741768112145124101900460028679691480894964279430551894082511518400501176884691828328518448203907581099457859697119679210747264644319246185057375202397554590788698388975258834356590885791470844603022264805321902045924517390544526046993795245567896202849926063686511611813088231322678962477804775145710870618796423008034989163121359381614042064392629637181518686869198110954326621407156826440331654775981227281221428101226673447128799910056033197565344345534188125950860958996291834286834997967932317135424169548602536952519013895937969700286605111311271612695871271792486095936374330960823017653502403693424557112692774559774290740398018048388854694111400629178724967208031917529720138329747707392101234020528929658581191335119505649096342060121831145178071619856170976598275168179599718213046720248917377340951590977871115814051526025235960740113989890096180252617103815970330163769241668078102703871901547628904858335599875338167789003033874686015991144803394453452942197121181833076025048834995051536679701114970560639616392029970435107625206725461413169746071496135305043749551301258700941063786893301869779369729656786909258780959895445080625881520136523492272788365278415091974636923541229364489608625792826336294565278396181219709908524447858838512583645828475306143527687118409035635733192951903534488551368694630588876717103740232980608456316474360540387206589051059540250881422692262853200846371541262746065602995056844651391887229534921909554945685569766829444357431337747078463969505891956158679545424762907966379651679574534020173355630230450534403307818613082386564345736195490100894332479210389758790920814181058383494824110764242584634080104973461137143874693296327466894172926147594400159411421759175514756172967902384423013881390387273828966680239304817082087299075693060826929736651448354301333102751300376780858563038936640022879988773776643333033993203054467410257771505434286777733629158788778469636668141369517285532096086927753877635261693316823480962490224698477719252787225247758832200766687874202148395262184913047737413668915641837139614105117538034675760838436673318843409039200951767860647126423866042163709999122102447211889607369994915856291805570040432973633985091911251941767635298828711333553658121766980995468069444971077116476762342456790569709628929163181617309313843821461897571462820099594602734511620594734643234202780865648023347121862110230954663959229366916886120116740802274546177376979879621236244245892404815248585145255431171879030852901104262533778881837028084652764782119667338131535423318277579141192373908388398159034359340617138803045172033697625955934726366268306485172191753555017284207229671800183048992051627729559888015074233576919524588316677998278980593832975148882702120059891761213692361886509545256618762592275483519845008142946746039915274794224609898191079455333045498265040603723325140414583511855496515942685149129216776301054759342612717485049494423790140069926943778270772718866542177559611869287758371301146209394024525955217762376678344372325232583735640260553750208102973724698953757549504593437654080067746289477184608652240914950705215383907000289524241310784847924243617868446433931731721422362823200557338074171568727066348109003290681395004961622621570955347036827781442331935686317557584024429763250575155445733060848018850527121107424256911277344466706380947891266174158513246690819798736972431059917345630261015090951455664811466224347111704621375052514147229337273471386773288837392264120487749984979198557851230774394124616788954760627520976185839314540858496419355705927012383361029114530005431998162043825593487009787750719562811651022699288345942871471415095608219159378533972967344917676185299358654455082711838464743685690896838661347803790325571189322730235882046595330014840757184989331800472305835927646339257790100341153368635711767493910265104833213671058721064235935185503022682530039609903801478717158634466983383325511265318617419555154872229787481311548180774476887293882456240145987534003421818027581983846602562982973407134752849004670973227164886176445899193546901968077354224662433791345402895564187631114917955456939023295051035782110519054841358274693835930392446643179446568070114319553452267110945416963494516169389850225744998447574484114421634604006980458746092056627188572480467920766424135265057906342980570768958653738623069422282413197224151982807847123244951371327763630441399685933258237651051818858153863847020926289000204260077378363097784341453141686424799702479924751420817598430224664016882820558240361986554405586665910923908522897224563681885168154966115881746653636278300604752689240467380734997348789305914097119401507787318691483528425565900296752924015440601575709581202713921794169799472263143106853721167170782817184596576962807439724757682075497636835949064300195380323718069563834168732352507874516688449583362029156626479971256385072064696217650758654175371852417127571903755502879294772264765847068538549766731622484245309492960918422999141580927979856633099300605824814134391960213014472149283307966953398245930767306536728206901761308028089971082675426638921405577196372461072549341409696230281112851376796439734086694205712559583833709008917133540826834669774771316977316883843422595167561510048671355016501335501688674207816577047629007907016935092076080782607765746943804176855968811509407437230725585675154814239762909849282532522980214567411972946051198912815577120475342525068106308463868298849590445865189343856735075875714363276161742696967800603979293902877444972446040005459216095620419660576049089399855872284295196541165477594779972620190395039986726140155524169123014745973648432556093988193349208036559800197842572717453267353269626556903703902686327926408700364072767017015282637191924614762833068999281467879679856871182590043289981095286515550189870319474413838162958310042019922183550820988190671421570709806077956320703121522180376469522507849631107686448413986743967030080438111172742793889322328151597020029747190717149900614820587929958261499644143571204920969609925807810362655817068228891043075357054899324777813580876859067715837826217538248382635659231022142630637240989889682606393854214744406710457616032150240518704260301495949178366976957140592700058063083863385651145818115413658043651226242018777196979170383769744528558925440569686251536131470698225953934215845645879929566425566170582740347311496848125238616635375633841801903389278701054259292926101386604867797563946668161622362946530011034789149080245265268729066251241416629373018685536609786407409246103437901327095981049027295033482413317643937529840038927835391885470071632652166217962330836769529022257460083127978349889848249931484946301497077591136150588053208154966132090455255392813730900033021142268465389718499572367038107145384063329869012132425446304439960501438742871973036369451586277631067719287699792370318584397491208370059201906575051519588849233522055016706258889459260676011895403340608514319747052699975031886045231298685493942854514274529918214001376178939696231462321619926557375429480493737889248434046181808730735227602038297827343200048300215316171315994105568843161547540231941291520299176317161075390373713824903487591347633379235697409682726200750079179409162149412841502036608867467168174022503580815560110955210433359837456424951122330497151899894628859972267592630612317212782768850999710531745800578480927686794370861508799430373871156873857690790949823907647997342076905797064812437219096857745108094305857717156847168268688691871554449218836986836575561380918187675686112167297639106904639726379067093295881315870939439765873046349376080529165980739268772978418339374359926073299090048865910948495756041639798046547203397043655650173287920389586430398271473204826789978126740293395391975948506749291201173238478965415536353704855156272087563490696958939098098282932023631727430352346603848301422057242321115050011624273725383536290830787090782987336042543542354571444494404438349495487521081999525883774804536516791890417918923811073044491424163378143607074660492206704683096916673514721039106419687659787063068367200117274524865653690587993131116295133492276847359310946440323987879295200085129568970289181673984638496601359931648979418988981538399713241502699181350923559942391027176579635018966310410006668866252518749250650955722111351145070639199097460093552369395743268798708902582702844635906796837152167171327204347267106454221197017495665783856378198208470490542392664950226235477404569529562776712918934740683790286230302534697705831505715770888690862298044302797156607548264522978740298834422552752486063960900189577115609552907305892248266123184333973550946201095040141197509763411197607212262220990636338128317111182166989166120718512354656245278939544652474373459004138363225103540796089174043142008962627481474243306748367005244426702286888665338608202111823664701368459189345065162941227636489100351537155525212663985961798676937811788449695220430918923211984968034693367804266576828647758372454671634900391521649425078168847549024314403854373068407279951785429952540036446813184216971445492498985240981037540304025394671976032345922095928918502775254476947845812010827831940071681015409131126343614411734213356385408843364059756833321838527310786178707811095296032914943964524008396356074100199819355636847927628255438526387958336458870319060145844973558728608107580658927676569818041995803345227384948010528961578977447775582059881541460644506879117875533041710514796274226006250860343552170821083736679246176247530738681028924382743340315924053801276371171579997124291844724107945298071023466711841246615722153258656071558761303379353897706060427379163306065540619571922664240584822944395825553444973996099633891130210745574320001586015100735125213407928908312894405270004614822239623066853114609178769746817295846830884246788004757967030240214396321898331101624100235246581061972887737213508181879652713109556734862100110874876649321480765780173430322514166061613520284603758612907314227467882697987096059026271679170913678498137425223116936013551901935697832375391989917701923417776181547100660595777608503022462720449061614999393433553688478413166505146318735217928232817716735623993033131529389389417126605555549528760601094202318972863140475583015796780244068126973986673571496293540309269990332343441440454401824688244738532264923178912344704252528203511528217851898178010819812577410314737348825484225722422354293726007370888495593508276777911202645838875688654196863807106394867044691650386062387067700794761729257837389962037446681645403765227074995604096942208304838139767645321068690448381744764180615722457743072085133127575415391156908256831118657901019191174731247150904184973242819349753972260428299378550483845899049488435615670823984834512636416538701504152040276872239810951948874205543502156377171060276200299870842066941253562781937852346578884588993582924058816302825665252509034745041246823562900572985289241825235266267484196510109396239328616810068083601559015199062117105279818040722452220513196327438689941375172402026919172222917559425591388961327787818250240547859558937976759994803279182157454106521978348830461553695509621806178620256703638151363634563092379324472735226523525053274378534484627693087634621783888809755848563126406948869768901816637419930391903261034759081968042084680214513316436255520117024781034064176615436324724101533084390675458399187203337720878897463889861402673829576011481972385133247838567788792060654431533120023644251581347325438219754979848519164231996829348637904579564755026884459231839946270786728299869482593940793894952107111772056820851408500745068533419382471412113250377154888837726064805015714795554080591435877693838758663957372762779741915842381557705020231456702144886416789940747815935606687219953956683631539857942157661544616136885579984672268180447699114937289282495539427234887722737125362546416642703377903964151381473118779148979282859642925970665979265806318768137274086667835440449344938933479598037635381528367623155018659254193886209415338619224931722328573673357077993610976710196481319463167972338887926071803067120581795585421822511472243905110561803693071083662896309383163971910732082785217716074050274764929928575465855806336579003057040983558303520432828624476937636951812623219095301266090549933635190571966133926047425855151383867046633169574403303853425368329531855269196207401519528820688179170553380958080212603246648220975740019443210928828098355968124603793755788221280317477896243740805552187957420077215646509829320157136066531309372789321269406675811678088629276881636604460833151280898686124245886829482503374591307911272300177945071511926463549670780676436689388142916367996747721826422960095460814890139638653652208628682887597429022887137215436980223574731124682431130730665005135888863960728859728923816755191779728424504036176871299557353622979179765226983652823405377008997163742458337250010229130711240842007998249800372959610390518577593857944793541828178380665650812145164446095034748918468554566896386715933188397183575936431524516283983364613905144568888678905421240271612254561521123542093830388503436524024342129363956130873557164754145599188279912787280347757235448398439024053219952165656126447858397689659596324249531897277262298408384114095658227071162701623344218334275964099650848161029306834792465052531908450866214118878657986817699092541106216838268554635519305540418620292416986215097384313336711239526051042192876185410827595393280617430922876136869770962854202400706048201206610484365961785887521039961083666097855214912236642606531561869356248072624318295841362142476416658448161929043603610256218143412582966067362032476320905574097005036469118792683948820103135725714114260332760915981059331236307160367088643866966979679281820842270436161212405036387079236716949902902613305240580907503717816202050275379231526243467253593585664379617494398174757051881770156408530376355547736031414928674474088318221686138736758679499392735170194052780130719726223705704642340709829165524892878605973974913716609448057690545914294158386406953641962866401686574262071864972415791239292025937813080228969500139939726673552926497847793500558739535205917420564560978105650050851004889866318284831790701374887561435548935774739728256340684241317859141562373739418396231027430199267708421484617369865516130124281706506874790596152617907018794854977514885580099189653946354050501007766046938824743500114930344270847888223920347024192429673374005189646078888954816025288356356620208681650336283926313915267834420755975088363200836105073674137395252591378475093404410624973467445814928563670534817278877468776862608757123757544298745821240871127144183495503457422466630989180245281928917409169532619851509941459026300165712997618967927023746798488959480138570716791521313435069695825574064137131084037725182162184029128130363708902275137487476031260856192877345627523926149519655555931150314547017240507796675217704447972557319713953942118530959366933809207125418368002524366986155089116244121489558921191692431164365075830968814558360529813724606991221472441880990533717554812305082060367506138071119037333018413765763847285918122409176192171167740480536844079159369180240562925310656576201751238294156831722150457208984649695657844702169453103833772719188163066792860075120860517582248344892272168574814264071186579077487675970615462646461089064992910761388050898903731253509472283859899738348558234559624055500395410904193227236525101466732006458300048928082241954761599889190306319057942605413242687382121059354743977756009978855536415607507564068749712608644067910950786690849715370830534013409790180284228694602982824115071060778606111125192613426781957841972185698504488065718976082376050084566456692080112117258939810569097736768743555126959300852983844074177952213498360744302810559608169579013929126872245652919091494640315718697785295415883940523699493393703398955861440167612611961030541869809824039818343960076707311556504226466409262104829151759382416674791130103609962254174652396826992670368404055071343022941103179296622761375286920343928452913907182754484717171934895447991617431018316275797423830419013893392375365689609712624332204210679112574131711089716362503514318366454257573213817043463779770503385089452536299473505831065498456056212166794939117100012080400287197312440338408262992856477167692339064538315805425510994868028877633627238032554266978659386847793149339377553183348385342703890343189691836646013770484436211566992895859916948847218028732148761657905337200370118530733098007833904596669241207659296235416906144854641726976511043698064698729348328182304828394606994265796531539908337922449442627296134558265793237594287685317321287080831063386706370379949046655499528208164249531280040181512238302510080544932744692272554543400880924485543153648102982584507477266545055623905580176065241630343334515770429614455028901930487707670512269504729397881628444007518940791612353315320986889719389155852399067872005552290873925884664214501630474798643202167698051041205124817564593947310256485117651504886712644957313204398863162640874795989226097428010909955421553625004456835704858764815547703544005778552189451117527675589239119423731632958861553955111016498375275602757260326795843161743679600025452368066278941007330456320141577033178261806224160159273701796335085212975158940789980886805376990641474302281440868530544593884042135041826831722728098727099146887300049325113921938410694089543624926379426061936921982379282421776973654171900338409256518202529881821747653777374917599569340223638632372032683080309601879207438399767902164938374766721710230806009011619664281273936961875472473653035653882754270624495728594034480623874317511068084747930316022880587155920695813768324946134440927016612012247742797418528835921988529189988844490728877120023351667176383462410438692506826679344086553733116790775138348300445384068267084823036867838782631832904631736364201739988213179841686423345349062072399111542837078821101341171439372987902529960788157532101800830651779814168783085412011695249780470851274976031843085133985369724367947793378046121091898765496822184236446770431475535528768830753408123164212772518412996240449821309856090691446114149724669163090192134010458336308090960415017948844689711967146161427906676982365176890530785254776027907249233793959000062741296951878643948980790294250677610694140805926344539621583194979108922275724040379691387343086491946640015748707822416682821354303559370061210714394315644920343915765241218933888967002817308929452041909445074965790230991570613222811488121894629830518651464872799122632496265934226574185432652945220170771453404105564702389683112658456804013272423130979493058263839693953564500834676939217056712070780118016679688473790135335178953110151145923443347973554359767572244394303276500795731892619749624748503171263418196119363223777556359623276594525564082479680031710855463749490344280615228447133451158219510825197996024173119375435058802491148741073473263819396585439368165164700907817014968104718048095046586265527730890102943618331416325884239541979082250483165781111386027365402735360259580780556901347166190034769421879383858274368239125454876690200351466615133552873953476306976013634379828787165061188659567456087131200748593936951050550775223110931428842688639309886367394570881687523437535665424701968709165909362647844626596336487087096179827721114189235329414964621556159674013081469820398398565394500720759776866711231968960223787080921705690970126712188122833569956070005380899315016465818183619191729558019051002146994851149329383810273114378571343893289763410544265989519049861549204913196147731549456911689126271563062964875535101991450092441457187092789759180240080524777463929932291233214062001777744410341942343807946300358420648034349444815898456570515943078714661452802972437285757569365143090625415526099259453821372842312860886007561556806510710237228595849728265073631856989123672709342023947094387776809593114526353708780479495064869349314039028689050889668909514093677489553158531273948253605601217743857370162849549351785823551529495409134009146188721965687060105360861868531810876881627729350664601618406526119945163226436448505406671865098417964759652215770538568638051917978588810218419365910281697582247783816074445053368766837950514592134146800969412996660283001104666713181615661948945914931939633411778095268294051525329572407638760285225680966653551640375184179830712440278170216873104384929094051762827687730129765468679872666142340139149501116628989455974638164473311637560610649046447121803403280493285253220034775566574799949405181470265964831051482550848475809660718019050748811195407689504943999942337246720719113729335210215427782008312097857295591234161655801757692383928092172784216731310865670126537609365688846544403035292049591039426195004593753891464122890718031499883110504362535132500174649156223755515668246944637969544999645426993023662939539429824585979499468894950555135706934287511169573780417617531343088961760400917688420076011622433852756808523886071146323909007585518486832419461838632225796409735896551379029001246513335913522515189820319498338407971540475307292320360681939295114618349514202922136031674903765843672036578673363298115651854982378922730363003839773023303839204126868978605765332507377258398452716695279267263917967672827301723325206912272497602200896940902752961596466746372847804921267563723451098360455521398988790123325929879104829994961996334955196194003502479011794231234911645810994436045524956099007500793693686919302082694785631114243376275737368963829744245348329927047362219179019678770519488727037996485162410395044061906356713213863868151668153440329365371463209536562486283290781318768942716790021535480356083567123260980105060329795613280164122372432710245133974492062312956727448116288729276031338128658301476677584353421469467347574573334427813210897812213505339574433364639319214768155639808250588837591611134596554340809602873322222113715445918729414959949926134028604145922284976543010420400926961870376591633539802150406415206567939399507492298294077452078246988119732172262181500652611759797939598890930800226596126678061834320334147687144084972344042032106868932034889542597476207114493941535422496582271912586524813430647273651916512367360441605561112691510489493166007473681723557537024760643093299863980151298086259562316858509560978063395387650015528401442252500299173864128013596308515150648741544513380831084207709826077559834996346614331018058455818848827421925211261190147382140196734854464327410982568872403454654470318076325124617613400810106472070684393561736836925804290347112419054997072129805813698108295338014000331900122099535235425533070374938284065448324158615937525208900902171982479016584252904105175481618945381853382375583363034115943019485947120707402726304509237549613971380622546283502981465330671606138517888854972682383882663378096105918003461498370207403437749949349433872822788085103389639664233517841387061593175690417169427104356337374782887574756572940780785223849623766054063611022490191817923732059414135916656839787376878018664585165387225621072861455865901412150616177406367136373201046170816250081525489903156768749435429289741432255748684206961506903451708844117804049178251741922854458361562925989119727573471110304650715539842545962919898182172026358913737966299788381843427077277922562662446449436001986593435883894747258604474760093857602663816370668705138677899083848607509299418171759240757934137126775609464384409580152719761123896020302058671589472320336673707387481875405098940640018228740819962561452411334051027767575655472877326637243047481056704944626215581950697063524314286742281891886454274753347538698646975598258499379331765192195362038486261586371476336007155770954501852594245495915528925874388204919568813617101334395320374510478789677649801802272749938837004214923601852123114333535610658320791085695118745734025345928346835793378230127870203240348861651443630680421631513976331069821481011785225741930762636590939444350851264759596553010849733600531540395219451079449062301310176309118206463751593488684453219578239859103989076478772371435641707056755187053121293372174277825551630088945283309213775865753616732582243947394208872701252114654823688290218222337595017045252142156575118943709727917033659080030719032055056859268482613741621082902461152535122449971990383252087111907976772690089824150132117605861470466423862663663465148590061949524969114042156581633713440983871179105603995905652819414207394264805411286168973597130445589479600623294794346738600705080929466406911019031421786711685243811498828314093770860869438378252061296602151659113953402508289311517936058594722387814049024643310185186982537604551652007473655900539677341600870609286865415307746188153330889680184868290154746453212989477487967991048933530340249248731867312453935120254343481769211124323062709438673178663059299495671499740879794130963317376430750584078765083005410329663301334545954497798654252311807237991030130779884719335138013169789055494786044564644764996489415459181732423674982737455061401771818041171379531609892727070149257653294148096282859845756400002506574321251065867163449012499833582457618007193722499620630864148387278690858299165789507797693451654484871872499579574987387938784284511361689258312043476788778852811368204447610364814616834298629531922685598903617774081779695333880347565390903352447601503785825027832026624093993571132792987245102838699143485513266835104024622756048347782525263198968913875441708124885344843428305104397158229211336488708335833071458752987665717772274242632632300563843065248829834005234712703160954247159521161433492800927081850342799680599963589667985526610369597410504420679593956674327870980695040253716129726446122808935882844152161344184161156368633661612659018334277695861868472925972888294540593678563943827728448830608318955525220157183400807232036351699691227010586018103934801939087678545131573968957470215846640915646441265910108170729813666793452035407532395847636878263908285000585632088163297814711926374396622239308977922476188363046153174473952980336712017256440505853656086091218719549467989126267603343815132758237489427989325787645631010667224604377463019340191026515816393323813065967487324468740874747490689560804783448542619552532779056434349044968409493118470506668446194837507245911490470747510858357467539976551440130908464728484644333376858209951237728606035312618283735537832704250945235351003040128095481706521472585800196366254392364289820918294848368342704776420792934184916244248691186533919593517606948956902343851134528720685747624367756522396195365035080747002890902207275872851688482938807129877171128336118206656441061293238922487501173260111002704850553686043765647616013205907484626369532331630786847130123012528442969047331159471560002240865166777562050352333637998209327683373488430160369109494114634977126467277955383606902332479044448621777513094843628039525830128697738229989778999059998019144684832023470326605562326513479819802899525488616094868777535516483642815632370112784205249507752554863451160934808362737433057224240853492917881189534520947126165551135649326986806214309888697541250677328256616420779956382925273357820030803001985077298936523384590938011510012341294164088435826142954706525557625717010364001756224361425101063708918505314304090059132463010688943958079194512471167599258676480815609064163100740747926072451216070513512357255000532913572757287872131184559279690747691094807237145780504141349902005638691866144686851646458961197108679353627295355437125198040717459187096970410632404273551225545147832436120212239201300816963930718512561110582832769176577424505596195566303454844763023249852043527293491536093925684182177658355224164257707524770361877455619351732460646556421030559319265442531160772447060210343157471588556930200943354975425952881069489569915861133629032430481763112685043151271310085627426855333370136831507242584217319111156122311485799333233757195743965386592193442521692494569818863401940391145981014512897859390215831596460833093756328838521322874624483335842926036648152881902744353723636616273983882270984618952152325886062700325855415389871527162156426218725849332412128322201026685906570342606436225698033012884766346226150569417822058653700545718355859826665016119707997924561472850173457730043434800210638779028673543238855768369805988939697522316968235407883174799607127230734981696013670423964839330070152464848609974587802280155768366522480297912676778943224711455089711594149364879945256498503498533972005508781251398770001302759007948857009095047353867808043779592723461403158532986370351397691421440071260839510669103237258738342033695304121808193513697738332581094678684039540836250104603272032863810092357177961932336940884640441992598981606679234536347596073531455683676892058217377812092952106296184061900646626813345095430846683771523373553812501508682102794243984129576572581486129806765574189723665243636918925665669599074645808867802926930426933080698015109898022690033578047998311409984015542844470901775489335458013220240371503218497948204239329194245899486985908618526163950879483830259018305527497025992362671980695238305093553755598696375991359143101083681811905495644468661672709349402156722717027593852563684350765394930768798877628354720298383665487983683577232732087584342678842872635054367181272174928444740117193754243448984339967207334670120434292621065274674291128731439627439815490770293056207684010053001740913707873791945502987605446703287702132660989752259195430711287769232872772182723939675652645414938140776961661112778403230484929779459884549934725936537543468002711481369422380603163491866760577338921518428792692037459632940727662367924306785628773952140808361171487703015077065856365641932253830798389548096991917739779765357184190737288302749845343679470994997801484657740851137195405019861780614598161441694957019961614796846496082768927220323520006959973006113016606685315326459550526511367746096983644581423936541730195537296926944445671899095696224097331624892897288499925093213086568424317423329539076241596753469032480786579695171225380464011656851111656647400945113710864776969207127115848649958648616679696200768768168957014385582340500083937560175817827649586704570872004272824266089473846054552077802556824956938116747198182131387931450682012741213232234176425555722331732454217506023332664514303959300392022394000283397963849608457782117161752795626629403684568231608130401919775705326039402751110169509294453947609141496598175959551608990396676642261429841368071087417223711463550153251681068573227174236857272511155865575695575588489943530747735413927656512768787641044904897289335410832139179196687399354741335167214642778945866228913647186353387821287676522021028830139964147854900949560482004173269413293482005232690919793743309156051811980777580173984841618283076464487535256944819207120839421593836866774944628265222233759063810681455604752876869417083367870981517275401277848907234205332532686446028937012741093553729156721716368723186113688867735272321016464776504839767366085748458800602926015052070199415262862899832755189333207631272790526217130030743977841392088907921613119298466717360576420940808822519134272517687497804075402407486612264884025021508273679182627748864706789737779156807637612455451991644161648427061355151537421413725921586109511732466687080534819451606657515667936312446367547748485238584588543025125115528410060533524460961603789603190326878306684451935754334250638018143602733211094811081356662074446562034829233848791949921129654129169863148048990305890759845968513924748160531728000459311660832595773305324018712559123658677958298514948651692812975857860572158445528096803505546201785190320502856547966879602057160223085884483498397632392278116871477699863594321345463117190037310113036927854100855817242546246520464863897664578837433526140672772766819293940113647839745421359370846828291329506847404550971907984337248531031588900279283853209751043474500124288967049428695700272640528620306488752746069499874657228674734036041985724325218051021414479225101181420101186264278258750335015850193291044342617958017651697137328342543522450252401110082836699144566889634256436865711637974657756002647708688217766761923421990118396501755482164268479430390569977110477820183883358320853569312020202036825050857638710262744768475653092277305161758856608177971751888995904967220755770296211790052251153507331432116846128925674005148436914927471407471581667502709742901980833323759069048771833529316509813036071565267534535715147911951449749127889328276684720498746099036373663991301494475394256368272538652134809375871887384670804079061771477283055728822127111667343465408420693722628532378400465496394779403047860793467035121816790247222736004699878578417108183367187483543430500573489096468175126222952962379215512190155394548400935548839392191308481596986000747368437204562426067596402231575578715226869015396190059921893940893602410266770047785968340052666654716793761871035708865533351410364106675423933804554054683411433387492599412465750574320357723334351552164708952075113263975101379471290913525863784076072162567742928702918933262518184677544434867048763626953006487279601004039921460998634602294690853550286076552321587741241859161787740765374952221249545477491617497871745789781388024602688533911701014857772064138368117472534436366114149655678902457299474556353102659211007233457380301322416888417548731895928210558597632666776561322118762210714961432040254064339723887605199199014733185240517504496788741509463145085533509020500613967509561602087649027792214393683622044361541313922020038675419008040275990971525304684365535954347517679365165677779840769029685672147461240466501663196061340111891760341332100140480583880897701143640884755663844572937963311273560123453423377827556582898590873955267328474904224265409694999848276124186411919567146436668128366328042235388419563522659644028732991409143192120880990583866188472551248632609777231448677419231669636679244475234670239960685941351680988357150939692092337652184598284261514750788137054534831724500943814901314308548711612172784612340814672820843664019045629329609080504864344626692578236304598252668926912246281807857431701341580128698306618256618773913438450386219210097954061043244275519170650416815761105119370817323319153800570528629700320834613118465305678142666376077709131100160559492173225651211621365870766491172411032148053993960683365395499198485944805558649128392821015147639103538761599133543930868858431240097042222068612942642970108186205168352762727876719750503408468472436629495311441935796373012464993777361910139989062644518904403756247906382524276191237550371553257437784356935984092731076994099133594959106672086222354148033012219115658536968808510085157699391370546031471334300741155959118721356389133395957362539867703640424577377230414338707683627688833459278668098038099255288972501536006503364710577202502521139137461366787335065582593886130450905640348449580056613671012559318828996864571285748106836946058694457699522832683550537345302644240530927752163690573781464898648564355647909397585159592916068580506611375491662549773036793295606266884603262462432325863161046975122981702090220685939706735406023763485938895229739225322375815458194753982242821059822686475679398030575534147534335408978437276946897630801377183663297297647771599935084883761814785672302185628028803574680684948232187635981741671492204975701010131790156258611077558012768277202597628605583838642018549212620917900488098102082292818935751672131652464712325938184815514965248147518280455296610665690343554535606278185612833391876461843372245308717427840310907641462542540810151880078436939978737285645310852391901088016189048435846916473095255515070328996451598191668931594401768286825300168545527010985104779962465156969249451350821767336333518201630389060150260394226748117902051525482739671774247521898311245045525968105345942215823112687870363958853018193413218324644717628832411626530951950448701689056316240215761458245522793139680110859010257969292742386226542471788563153489205808736298623267778356065603123368877748504060538813628535624124493212417684247481558776348119369308437146348524036926039531350079092960129452687095676597888714112204640521543628703904871073055830361845304606773579307170603363690668902741715850453808022106268610518310970543770948635949129741806899175392197544077431720135335174640364727259151306794477504611435062675353723312788343169988351222768663801318866083814101621449394015410189144810588663211301845916060250162673679026795932333894577496489385389032773844390432030418949805370796625454632641957116877559144764938816291068498074225236226180567772131061435811734055210019419098514563269477941713745754046111666605373326275588809222572594232452948154925073861000865872131168808431489786095323148558857225987721089786350541112539676833926151791253526416951371166522703412955061983902647488206327712531748558404141986631122102608004877042849016318644901019870875689266543237011611204842574882167861447051055695747545242851784215010593713004880938069265492009626087268979249574054792410493765279274315939352252638054972533256048269189561936591816268941307751514691877279179491898243739459529998335311990141193884447868206676580737208822319274950076107554401557031319699334984940944316287051990176910009180257805418508725092498659719687755063713133235215466777142024872915619792186035694288732602048942402443401875277853031075752533015531400476368083581887046713270615191150089823893595128288071047947375775323013374136788715875162597068753178750896662078575113624967025580772034054378018242245254903862942792476993645605172837663464465308304979208950488519850457993178349170691359794298468798452702654670833903455831963848802861295362080480256111894457825936596327779261646546594670089378216178665178848205675433124739986116157940837827880864944366522447261781596999466811921583344605121048120948355550240920026956707973526505957714251455639565985055828058256832378452012684389567151308291861445058204972509940221887969370553314879958365287387959112688274091246345114421066598964435424230935926388135031758238931198491784340010204166436226984581675286848180100513808241227553488494488092220840819443180137452416886429963943836876943425081275342732657492862792666878311538120411893694329980245350652349961680651924430377697334157213312128598843827499313775492838496562466570450291080198790598250202194632296445578472443325422336187053002191240248993288943780953074029679399564739631575420415705221870867325588712451359011322869309244337091114783883537209672178143629918143759163599808960844784242768624120924572155395697552153723377921224485491356197095112159093734771422346499596561866427360433939566812760170736261146096744332652756505402532102901260202409776873371946748552414274164995283766962082075426081750633665475016040721769422145559831840475269789145020483659509493263615942882825823802843014021249255464375402523666450767304324062318674295908036038812124702917516490994222842731006689451239053996383812203227442875660005985104349308318856417798310227459706237684676917492797075399754388220422191571807841073438273021711275126440093838566286475487943038166905221825219840633759826667964649740575581685671422154420690393403121328483005688190725554888283772273647261484474297962733783260767049498694078004440917411563741623990123928044055281415726609614394544850689141136725326043226927006534772818675080437247244141977178151087098796899591458847548209731045253660795020726958030875022379998191297924266746446772817502524034467271244175086249125531252648565058718127987408886143415545124393692272670272456252128699517632177931906844783202148439071241606211497972824610952505261713059002204274883763099794598121699387548128319114304254628932771847328715733158833896738363072191907355827269350294957602765519218927021516948508352503241015063564943213637473058258695124362857949347228063834080175189998917986174385832573576344577912936354065771481272099759412869337963046573136756098574809044375226662738801146154693802615097579767580049714182240893785688169624662851150156811534453997089565352394171090042686573681062948182796909684094958893094321707980335352436954598793867244201324445715585073966980459472247893920795911439445501971716513108774255683834433933414151766976594045382301589380965293781400154176563764142709773547302621334029927021456452377259611628395617137720377417729851186247014538274204650117954703885426803222552739470359627279274690373377802417661469495634980848246869886025334708080759977073893051804848595237531366253787555341369935723405962056487220665120240807239623370993023266329940312739263041993849843319646328257526966242096083301190672761641925004658402851390965670751978819616836579908797427754012390143970664751423821212706609573636366004460101296032281904734780148488491015785676116262107090988656374139102006704687403438546998480731567480642914317581477370268464596224996031827113926489374913640411752923897515350616046461006281971433973442992515411280835699813021332584282169275242919418879602297455973870514721920524608190766631603654014796659649224903848973917523988595382219051281965496794291380969684044867367355486143478143208614857126459909509521427812151389364183540141476503522934186997956729337755888863572236524779458855094807855887505531817268479395868441521478604970189128186450185863501708437658283498976129458721994185894455572725497418482491222646622981355531994579986627577748044886490016297690697607416683987850095947212400756443072754204119461022674442042279846872479931752470622764222312468417035310586699506709950926063025517778632283922968400093817999673079222344349685531816660864583208281824443647492427962161426359653753887188558743076150117305557283132998245178511350411452447791029264178108668778024130040384443997244530280445170514950809796259929105267530754322026704371851978720601135960828402052195559243799118760644332706460723374918552503516198240340610136861750305823368347448787904651424079013795712568956820013858445231347912547207774360966700141474033698464294726492281669195953488761830924360132732118621053656347879634684638741265886684917285922696698571823828711561160336060519738203895722549396130071414218270337250568666356050962127424761700492939053608145903115282746362444315408190620849689003152927727235899817361582536554066193933214498241084512050881468170761240416702572079513565470174180770863698465380119504196462515396369664939207694184277273349192380720513476990307555458497008290478221573132480231375062693867016975447515202984246221237316600845163903229836460394414445693295582480280330493256266329510666393634802225416241788281970890245124085444927279700831825236591492421803945688293579899181853303189411042239372892871606936406230822409873363314781594376433129681121625213200643264934735487316121524073730823719061149486388723148707166808195796443982306156230492704131800002496560132820060940191794898581977503120632034842715077901825066254541626025985352412661039907094423882039839410817174766479388472852861868731067477489877983520480306236568131991382765555337147316275859229474092708248360264966210561706055134156680586637604659023598900623262132037877921394582563701235526537036098845955148957616993115154558208884449382350513520183459340508119803764858986962980731389905660701317713554863401757463271131995513290385253770718970563036312611526779932528787645693893326845817965224461088599349396446996573374466470829899281617013570921415036744327896083688224796648643243444882311816786224587002361915288876901270552868648549935062368285177060807845563194109381223936738065285660886805517438741157925058447970815064856570224707155757517412290192737006233336721135319539507581011336476241875521352233109303567778202589143168883356438393496381420586965189106381368133172223580371679256250302547544198459584892934113448453168904291117901153553513747167597969345741504765626526834500355563739136312308942655138741386617222040314460740896384610065530323535556050072656547600796298418854694591600329576323734006234334691869278937584783979919326101167849298256185183402108873133510591066017297640349128618026902360094328452202814815247754344198208505123344179479161000078734372120481353724999368580317545527941509961699202894153111641347622533976162938638241373679857673476622419360925141403338457890010278362047225911421472130501918506836839670802774983591393269446437867639228620862197263597873648066530436536019100752774581690994281581831491573607982387263415154899681673156451976145635763685242095419550542738564154920873251460599173765512303179498363251168701668336394888871284901400786808570879859336898535423736154271375695531485990635608893779282410906812672646390289997426198036723030662446236132725528208936681372237380471743021278234844988013389915016121550275247324761835834798513054577556597760750080973950373389171371249931780175209714752466941080642829530009702664486200011717484121594485258026309809147149498807509925233082288965373117354354179736081995949307105436498825394832257017298805033461664476536047176055939634020392954538925264226713345931118798063953473234047640338990875714713253643473453559072161929732527631624944931360112612499477366700281650916555557536700813965716624766737795401010614772691039799942730200936418509147482870445031947680746608997863095514544133380386076581605298937335044387980847952210576124219164193039722625730389252007915383321586326955895280130713454216627345069944444563071362273828675960505006526368792619199805327114193623563255397240754215016753742321815860547120780508971212522694387235109750559856732524306742549428824371160288223152784729797664143255329074742304525792274753578673617531080686372295957890558910414830770745153371419676831716033576992739156267379253096820634906020466805894257330817744595024029808742216906216867025160243579707291682786017733562799741109497169040860388217012005364468824705890639562809210873192538591055274923950261555928813734168659933802719350263611871825309157040421824832850488001371003782673099722001489674284051591337455030026797108577831929331250086948645806026626316782482534149214561814345962475439209317050091654623796692014691204028995257136040330636636498195013466386978242628482579342453892153606997073764919496407597038618697851252906426818647328346907762772911211666977856038221017653510270872947632636238648566246180687108759290621005195670650393465738767756816633964613615212621363266118842758647642131753155552034279226070229824069132626687444108994683241354521665285029642365400530227889847677370643244722228416122928225770993937315230137361153367092457923308906691722636054995924918360594807167686264039607168962992946971658975731090849721576309798667601906218062412172789640412053047544980589026523819237511161933944067367052704897461450659473329013608463142178922863292029095961574526115546027010205734555334807684325890873530096626214274024929258086829961628399218989401286763998323904350234857141244103029455911669075788552265792434924659861174891129583845431611634262398910378065478357597384242210468845271357116388130543943443658230856072610935899078001515665360647464786348461336005185693363466737652483570556039191441154852224844890711621580993490969429768635074931429486672934913313672185172848635625616064131737920925759607988446764199081321688861819691063879505809842487004596307794977152042911818903785252242764299393162394772824001749646466435528294017149764352593975733569351381236896782286779716652720475353779447912977351309346496576965788027244110442840169588219523869349965928374193698650078917284864997913529723080924674966563842202426021216049553800933770738794702512508588928563089431921204718691164001455147250733524289843134882140773032204301135783894078366180417035694582370223162926496013724314139324232945623830684180003578423825266971355208853704421075701715238640995012564728313667798147443650636158733650326276842089646258423421247670355751015847375806783238573571775491911778795746353311451117265648455620217293093168241567276837940372970032935707022699407823481378347056658347744202684389210860045939151859261152426457073870434811550155314651470390386131806406365344332361859621120334994224841615245475574191813990269387588472270701703452309120659200893020255218383018742388915318499222140488567859627338942378960153217698895064017296071850064269190429068928350019400674100849427560454119728985661659783518216760728934820556217470188305016492260624093258144910713954516340975314388212899181834372657796079632930993053979226236168251157411577020639961480777055239025386932329820968290903297114145707770231732927037432225191086933125810882382089557194826577170724871152747880203083620951608917523919423244003023390867523838034510874364854825231690279430238580556280731533219169990686156087362446074999711436984231367994137937999883848097169664364819759259658510110330585666309491171186300958671759269223450614623024449488316153468941398522075459049553360513013402251349866345885348588715959326494660231982137540009806483639494621438317910359678470353689580324382895056259204859313486701465231485806457831984752104400936871573391307088188991832512758164651802131635976211598493179875084697517051575169808712340945357433672156720552750109425244542437243181141351578949313979006029154243353319615950890148504495507995226731328243627955013717537957234087159068335677584773302926063393479655637705534657058046423956080192637717298473302303616810285494612074551185913905581882186129737749972500380452977279137995152634422208299287472228255635458616460157882825893764526250557244022527056077226157810630749638941536797340530278934048517164671377261533785706500490663564757849881790432655721614711233258646507351221523855905160415932253180861577336432709755623246318982089196830085602929138287417159199575807720335224899039991583310651581836781996474966684700634258023128106978835129979182567302964190293598143111203602508679267902460878264796380628941194065849740279354947425175937967353406349101831765533703727197155633576085832534389727882976451434338394875289051478930906598765358133368790850528640807701532558320699995938489816970689333128392265668617541342035627894228367233872273318602805476086717923002104571367527428682709587703278218505229588049489737782690942944666264159602525656622263833935689322395843358301917194327478956283644210145865764787674852312842791060570935667984818001471766363040455297383144460546742987520560853641571374138081367157725634591554442563411386639953245171695298972928809616609416151799344400383525945874604763388746983462390120153783611276502879899953378199520025325580963879297042952235163966485524478268487517279237083131139874085046778085163184930894103880454393390985625607654356452350085413499289337858916279023027663191468037822169531046302485729462720227108869919055037361366539956329890909667418368399210461101008582819002778008775394971656381541742673518509286553077465112511913706674877684795202553082230300814278838343126542312939879956803888059817256912772848006218310717389920299537697489405900653938720187546406319793298972252879599675300551182564538985069446743755363280613041464497125352794305438950855728024567764275351485489326571397689620232885124873602834766395888420911386947228545593150107731990264688449815598136806859304503591891682091354948225601374416765468259253273781806741210372193171814731465429528453063990289183104193647204323454088543890902866362319725992815951643520254895217764005893453450146371871738246868492676996195696970296420238625231982258866695121508008697550900763452167771440938562467222572188297582208697975413904873496558447275941027623941577877903600802674293135590065297977918077164666311972162039757048090447607735392558132778377569176293177573337055515910377974847999170912150419368725278806858392948108020574767227265638044951728872916930333930114529671122892982221510815376626168667280518936542262444428951132763346674810329166895879043488300756112321020554639386285289958295304535775047380070595911999972372775413492364097348113526521113209845533277406089931253630637087547163980208442539970160475037946780695913695452368370276903143194393987528583457456244321601890431356077543523341709599694382987655436294956035722411218512775561448107266334623050131147319806058100320928237661016499305806419159714904605862667336041788600358223982641527090887516381380240916979972375003414944141724977000042847278066782544835905885889286863117944423052414243341115066836589225521738677999067201290648856496929390144889578057251240109754673685565026453338340789591353813872045036873510030701016670314256543885158149759222002114002835186786441179668377176288193286756495002800183727975578927184666529204673221691967195145871532874508937538667354812359787084717803712569425839920120463945053240293689103370059472568694238581021189530332248809516304369097005762050488025576729873263331862409039741951368299025608089480984952843861611755844566968639361014568810985176075121376941041277273282658266821961369857074843132311581762001905137176404890001748187746215660336304643500011288273503420560367262331940046530563424613390115408592720364994911595654612114468087931114467649154931865965511713184925868876488905171496446692824430783122828467155714090271733849447784545359289223276091675637934456221171734128016609253448917702468708152840102927489762315269817670930739379505784732916559267590027742573059667186254332665611832553521951654966662113378900498032578691916989660624403414504678577857949128730435046379538897538265608244136222245149332183505274146905682624431572476307481659753731966331741550287951238157411778713811675978108678349154556294900320588541609628590589195966449583022417536241844961592160799922073055754977099527146425761972631440832424195118788327643693724931297210337733389592668940865205967915596050759108009136880876284333549181109064706693984190939238579937290440421564245069669819531353786013134475426635878875552528698344222883359402883289729397489480014469195098111180272955505973955645703133206988026492417077628093895015613032881878897776112624305486962643324546969193741296687897585596525161175654761770454508706531257612057015452231507770719126398556639425928366200961865848192741465600376897402671492478515733028483536163804154603712446759566370554356824326908651116831475220653118782692932731748296298843090756399860287610036582177408980456098851514741888330667177470674350168916000436197030251944223452944215255211415835864177836200700956828348559687200756793940965854686695914106511907405937233816177447224302203676572207056208343936731440858404639934718792177136183563059578230532731832056381714616021496805837190143132007671224585317028624258359210878086718047169840629600490665155199452484724542895176887656381183477642704701537861420176380634955521509907675086761765697997453525557955605043217392153271293703184924936294345330253554807875683849054873048068162253621956972285674628823192679319089500434331382577805241244837174302863469775665433264527123428311571990136042062962766130812667716096777902442842452278563227399531130457699910741622206052596096841819957958690581418059946972875273874559837067745228426069332536886632594186674063020364410041629062566976298083423629535013274570220480640179423565449665649018824277608283875204862939625048897751920542374172836399495098145213929328973988611247959229365853137745771235226420403788642760855087330594310886108663362335111035952940024990081713472985164851812829961879709088127096326190710857795919744603453334228383582195342563320762061151742123213218018829276051280855941149548227539948370737572061436465134417705301831377851218814439289983201388931749022674329743165258602221092684343589942004959874177464732556972316632329919959602738305557462279484442047302829443223997800097791747548612396158941186618905411978243443836112075519431490346234572873724372250583819576570239858372324800044933404855355994675497701467401859221788324133477906576452447978268385277312358254904037093608259465977712510928805119487470674122223358344084932188442335010108637779089652913511064057465087487753487507097592252502937856550573654135902756580650412323944607771999735370307401373063390811899417966330274094631650311856880509900756377444003216523873217364316820311220787128505364588745610262128626982710425198553110379284264736526117043300968161893422055323186348697838060257166271960669156938418098089973909416332233076427443051793709268273256421359161600042716986612687823018095814464582733396270161321511461666857703087125199466866383316990878602749475511985429923123668382904692767840048710591846839606086299257957208361969398527244755372862686049001793992118748869180178849697733546352885340640562306764575477097553258547115339994542444201071387470081259991534649811815959297808333620562106073533651364195670134405815570136567673229738042056073404982662357317671795608801559926805208311905438491002597705079071891324827945172458744227029577411208103819731020846912283350902152933697449026339709313333894986041250936050520249433049608939890021781842784302054622779211266108288039686611549071861766748883380072208591652080263099570780977691144273025562217118168755602245010690389848554922695003195994831300223803732749290741984004087682071020967157301253830216912983048202450014711401656010478058289548869406204091809507805002928007127335948038793917547348664534969927103065720776584503488499329018123253410215758640675934920581903616079082615380621728896656660183199042898032769518988334944079990443801601667593778453065462725763841225229443890372194124964699644189990886579503078775026651123336993043551074215009211575556449968594645730944960566597715870230374559190688132894932578788067065728470392522512699571102981421797109330994784522943726426153789009378029701446781730162351818783739855824511928082742857859969256352194751368242792150103283242720788106287942880315944339018630649983855658238399574606497585395664308021327435791059434676591085669700406470669711727564244680885587921324258604279445875456319472651618923221797418921466206765563132953373589107156266720296789489961484691428496096899562362486225326544072129472831849570404962791783891826017962984943703870507167301528407943773376020832031516501227150167404986103824986533452850637659024675457363613043912169048357308680110402156670164746874608159306162978692139969873934613047810055998045932435281180880136757570324880655120401667077586541006288917886185780087763522376911823692129118367889176820995901297672009827402114192398957938369959320740722726978714466780907147103805870450584399383807562016737946096200328596330423062072366986099130130937786267714496780534180803302765620984480615719650883066033374782314484262371289169135114140794740658680863835790713688729873793920034254140314913161996049731562490359334008279913751648003731485115442556217038518981988715960915203279829369665497107292448236413099074919735316355498474652426885726147190380009308300195943712223945286491852532168024756944382975046404884310626578032772443623145926208020660441169702849805263070394281681829970364374878647974820513057734466805762357983839111008904078339464594584671916906191034807169840951837502555244276415601108478893132329412750385158077890695887311034522340498056094306037021653138317716009142658041521159984925689271987152675588038858603210014228808192713685421930280489406422715212395632703237436303636847500091473329488009179335393366688575019901261750975269670016071928289406510311671268757385798976316351111556331265302215312884167830724050689988320313420380021451347182924620837002691362815757843989787655949756573972375445013021025203173100709728787199722888193210666804471364532445692472626998901479796815206682965789087596091445635003001627255036627013244719507258627202406217033828265358029773131046608579140288220369908040169926217680678781672845667828628255392960001016822947264250653046088214322755031638911298544087578152535362889465633467133928122006299837834787016865951211855470605761110625033100664576942117647540349165452357727443555603324087154808446895845824617595709905342666103295623431816954492913876903502907591159529457439224164157225622599070817307474605707051469947472754075246422566055910385821533515825006922132540528015480975436404638171400814159749847449112147443228117718944115122127494526793121383862369008145444094915035225117392951515421794661860162392210978138851353995612049690472384567981088679784625648022536169592335819256688637945590853778627464555371320020843614202021017182451800373765935131535626032842912546881563049203194511568494009404066717291641710371519088600479591098360515705555816864721958623774896564441569793393465142962672338777908936767798331998289816510786263839528291557552908041388338023087739279916296234956670131336011015242623475791783063387529173924478508472574769221566376648574553832605720480585891290151438884673914868369773560021688868117117974354482747875104559966800987769867889373184804259109548276072941286747950187868833581226155232709105308688455262994730498794045655825325238308385102556995098531223931450852645866534409587720055126075628742460139481199416614530281325124219265959689660736854381102227421023263857602446816943207614332468605610364793908660046459273467202760851330574462602136883741173346765325631448075375933048864939227352181295651709502137657366624386477141560977079849834196192030631698377405918393094365086505832854727763249895577286631217315063640948181282152220893829991530727948226799992572320628035396425542843356398106514271522504588808564341024416034860652289296822087142391464435250217565366939284928884350784283068331581407620289582157687976409458567691949390211883938569224695927284226151611609162310143489617402089712087895623638224332344486525921134537141936832801549495688799800178818289719927085217101550845098905779580529147445362716364648261724418752537881192909187863704389031709731334543327136117350064650822739770266358454726401234593097068450538217137384898522418229147728860315750863459886873978111172096983900529828143015321161991098260353608037469553075729437742865769689670019613495913486717316975645582890999603646041066888045779126394911678243562083243216652305680037945778388363510960605737869016333147157002212028763542764659922965528820650038495610462418777213816066362820740811164954289931401956984134534077393113039506891328329246624845324836974639854485085116348470301165399805288984658010062740463326522747412596978926595012558885650008928304129129597405457181913377909995534945620439787017168191062244260047729204504242293224490937385971260641788042571056018772553549745610431230564718319144679795731574831801735623594181262387889536995203610588031290209242849482851698316884662308477934522994441412126850930122667287437291470740907000015109680455695880471871979714082241144231455129540136982144275540192194682851682523709113643466492254134131986511506269582784365602071672432158960029885934727001060770997075190972928796250606638599197221373369396625219022571612299257586249519793643441691454195606733855118280016942439905978939374607782725717357274084231527276705846784175182949396261278193777854269098690117895124017132772328004051663737718751692865357037601502681177129820354813758662307800284274736934955726466818191810826249282354054075610309469631632305626725968387105200397716166771716706036565299462097987576235229918586453138575518914483588119296134221003180018519836782416113725452014133798365680174179316111441975273769679972020431108312784486179574380053472143156798670076796395185326716360870380731062605350246358889044682763260047837313629744054885605110223559829544752289243639272935811140649497295803454731700775746080460493159342003655249172526095536114739141952624236242177475368647952071863678655255223066389596313134181670394131021352220641105907278578288160199258862816338210438426167824565510801316884072702480655837696188000442275697946093797011451972466327033548439071592311271348465071120968240143819967928670958049698814060056276604933435384739177913639886182816582871844952561587733728363834376937813876284832745483837483262274577892828041860866705855550249879578792874866601762339393510526159156585830111185704433268110665877495677271495450986350728573086122960596513879077364209019241938157729835091579913245889871939032722498011439597936071759586110887995586087190285820750796274858520989125452658466980682810964188607918611827712876145383043363683428981551135039880367327806846687974555507119592307999849015938603681213349021614195055919487707097730725641300798864395448387027413521716665006240800688893098636965160543970719806011444837847562399644125168226481431382904752767262555830310491339468237682194748511384943004660772565065716829350814690363117290714744990918037980051517743428497644197489201232824593650167837904526113481033513526927531300047870208968394356079235868934955351599691556619969252032390041636938454917885669734829314949326872590225347486051781221484702617895231161473626103961837315878464186804550819587196190718581801375653457796358321179616803922721896200250126727974956761294391010110906840492298745059501334967703681947884109630718924254548585190863470705893642154086277858053355557648905812117016919841684106814993941513082579315514376887560261138914076433577114316162087365795046314580752138496498170382418768498824410444302415749484631734194683016384486188929747819351799847413226647787555938754926597713554199463008190737066785572776827923720553127340128421032826101639253769224549831538523064035263661117986522897319946761461434578250445449801813969226415339472088652608223316667143176092585426170678312686444414749904088897158414914882734350522912594750224287183031117142950760701390240672158440207718423886999374373164776410488198875890821926434443503987260251428043070026310877656377184960665369557046746813240499937507071109527247600880966562879708968594260142445652635943711499991246957380104497853757774693486166936969327265550878032967340456342879947555564515867767355155671740862738967134310542502049581902717099893684456929438687082394561405852581177491000692813467823001970414942570715326895584638897746540169983359250170226323011345973709219325587056218830604136669197098562019888320683096950827470156342303307414097224482637494322313427517035530835029835292620679208540545986150747974256633013674742541904058263565808539437535041528719549365128217582070935452893732031603355518217284969919722795946402008539338895526732403650506555537156339204912227455204876681020136445699026183898728961320555291686920673637616989422158195727701740971882101606476413035437635816325035535150717773611053191785333222470785806357495853853950065937553330130135670696138987621976948511253096488878574512365792876085940905056665813000400436091270046424833402554828201708942068014293429946721902669718016428161379806824941401185041130305814946512469741774530026164566296825493315519614891716631443796950880864369008115442607022917923761157974651477046025053789670418098517205247543974696988201465396051766657483943293776730919040495801143931800272503571508574469090477093850712076463751329243175158776330575896214154039218606387174306989991911351254984597593829317808047723809899895585825192899405023425366615246547633892859715148209767043715934029995209277542097850149190569820743862684816113432840458596868930632269055634483560149759503639095261860010877110396467179242140860860513995175066892856582379877608165218124422876969606348479499029921021166566909001306706816292919487193592947222519868298597619305024260096229796818135907170024307027802774067303620762638759755405889402948406747857391997837329075626114284262133047820171220203111687186321235078673874319324263892563773546538232623785791691141522680088933144895603909941762860991118134104995352341468060530620428154843560276226858410420474694597052860307692670807505471936164065462626187583886434996401119599273963420134860012435213410244292277080559329610344730360775130499888314097526709786596355898256871792479654399855875094072233413522562976471511646146811782490106847047711755392143695471122575306802839426737732233727303809670741558878944560954174116903311668980114683889399790579573543147678368253682483845128637850006129371055652203505945468973800024982369640807436863290869026777827676487548893172842051689999747994164386740886636308854138566686792676500632195718706619685459788297873483332561246301714512342677551199382444348961508098295499207501509816403211372810979470888732754622705988951880154027276102084516634937336574600228244973319221846680341014539961706302859111053262732929621603665151782440020125885530564648600261184250340120262552968615364054247567579817922311597817231009845439816030432336821205335204386825574885407034717660865085323056906429572808431696196642571372960571453909060364507115072513924297289938173072932305776987802592242684172655211398269672444180832915655298302790184074468491836612865624911568855303017614660468597062035736658440133932039079791027044721416287915625860162271148732033026039194703130063170479409722294573313926340366800567084993890189431830637331249552376483506443325813875338074044146520948156552221357714977127956473230129994101676907970123325681455316599652801294003622587022072560376459069853342649450937605830502096019987448641124116513657711900291818901670805996111344905489096531516221080704691571776791546143742992149712296731697297909954189730385129112139953864895210319190062095524699002059038943678810499238759246722044127027834703967552424973361001902550427613966173493199743518843879188339134844634564907615524021013617173153427210439147873747899877472983279528933434738056151880034763757664917018688636714301008078773897627199981354603501140490947600802066978529193866711315774340507173235028647651622468157783260317886815566820769329849877837004806418218974123225582187205593492363827422168060956543873955295436565130691004800944642888243813725562589736074541452794864422309313569258645164996174898829690231835736562718583416727850542722669792894787879332418002567455959163305263210218294907477137884386630389031362970501586676476617759809085862540639154897744827283632733462891327887403239504428746829211441040918969502501513209348804366281120689844770572063224318785846008644076914478281165487805130744408490243394425470884028953427340140603257552283608456610243757970356924198136726902335357523552604624794408611572556621551117704817917555372607193417418803975329409622867088785690197029968989520007688033672885943117753714154811007302022129848388344790923363936095263030054415190713795546064999239332258331017666192024602965254832326920852777059352680267296157923375281850920151277923602022740292191726343977859816409682067413333085569184454529555414240720922764944994304952625313278104673936290469097958444033246346683558272423310884935545756735793835004628781452830332891641059255873404817939134777619086074937092507728659210381699871240929918905452905577626318448072101597527068217859663846840030345233452733235705611948540957512707748683324987848767860185948666946283836594645445359240961099719040697530132263052024680182015750127471804680324840923438218217394223249499205846041158715308587072003760073145506037358576563412297447857649077180646955999535321337809689012347086814686312931841639510868572926036383434197062223277238867469167067626230788560582359327895748963420915923972533171264076579662771525362787132969008651144297568562930041430905717478785257189118138747868147557959796936483003229917572259618575361317338208135994660032265194834600542018018024266719901458932226882836602241470692199603942441083416758921269529375819951605261273406509383632167001792623193484595831439863172359820339370886403852541724511582098586566042274295484377288578501001105891821893159278551538931214100107236767136867342709041445611874027365424470990359632973706360720796779861660193714513016589281068516353326901802814390099276614665693214341281629230515086480929701405071928279472042468122729590021537532259664236460623715322939705345026862918793887424157571844860309266415144147308908891871435946842544261144985081420114757788280355923092591000941692442833906814878019554732081493474947953770767892537595257956343995026507128186231425675068965155654130409866420508476669669410429561580784775066824030645763286980888965000518906974684682331343451989177495497842801155913817645469557655529388871248176693195163874224720903258517186729655563075463831170354476495583169890449642088429903786579022503956486507862605730695806517963714189686312825476007551840077048034137544284677407950824699318964186121051582069099562906022049354227840883264406069409481955875765074515039885427848068110417021955170454343237547480923324217547168595955782672342051768665179257432458285655316452786622371065820982702594982643418987424457067385353540733056805021220679240353185783266706834670891998113704048366936095304684572501052064492458178948808361731696835473282810165630047870612250603417065995213613487402415004179754032612937246392165034959857551392022393028726116949556303439704079491515929977405296246068169696663887192665230896492768623283909740851811826372427371997447193404006127224874841414722047813103193508103449924496733627605127292945196649482435775571049169962097218786305213345345554630271688184765165127955321825377590643686863926795175953751004687472774408797478511763232113416255519620056650218242139751009677298572548155599741615715919852053092417706965252794346325754188602849067085785597071971499466960256454698457294646275921855199765884868794761973902136057173528729719070446254763902997769867493153355814148592222553474190888538532021762944345543103907146116205351310414485086563011911120347860265964263876063871578291753448911404389986348771209886077961612872821945928897719695885698249579616162286604769691754571931554918860701545639677063965410624187883794649374458678869626876587227286749037038839891106133820888293045144232123155420767381838786036430223554745807643679524265685031219684479276905381057736189790098946718943175820260249651220915949828681387048917201943481081981222134096611520044791059871948253072975990236256564968770113854290394793897624735618522385438096052275440910838784156533094218430207709415987528706540024181040265597012758388998379582861920176178342953719209705480654712924901998433340845662823574332664934221126840561636641493455659018900178919691899993271109444769514050580957113845440084349222387703193604522796655237412908186269029457450603685097075359186926983142074942640649560126754995536515183798938901721598945461370312103429397488358138642090049748731691922690425555280219213253168874272176623255989995276394654686827542519086699495341930197347098289348702027841856250275055463547038963457011865771079254341248462295074216002750282896198581520404032071043442257987240264639377680442023481764795800632956389744601818972292783448002497014387380010857789762786332225945948494335764186355630262340458289510387388693168141680309941587053671931212049546211638020985132092824687662436866399786319339158494969634256066827822705315492891292003183286680491785778855301151746774898888193594591087827988442558974342895358006866949377940170571896569377883945408392328172425613659886707690177938882355390501775429014979827688850331961818876375002482559313654168566781822582436891470072293774342536388097051597063450685270142055277750919229802850987768826700264568619400876155092199120875395495760801111653103436236919027071525987423702497434243285318621137194927631576928843607918786177758962883960823375062210817881022684734757820610932097572932741086848381995844705088745502077306795850972141802611669222818051324021530330334686508805024003191695554683476983965062063782379478836195966918989810976622292644109001767621956670785684013062822561144019970481765899673141593636848459089303036436872970510624687420408848119516701936019119925022071568502148073208320866840469024183023945791357425023217527031914668945975996467679262136552499329256670714915161195104822558860380046377689552375551354361990351508008726825289294520830349222252982506120104088756498458152548738273332875879840147840120941293012760319865331139643306599860627573611946120599004609774388514268621787866331329255586010656623424814643785875707705915734878309822639596074403008208501433372952357620050599911414241330675167852344477534944026983501858861968968833864042552179901844400997686561360708941517855378431503870594388058239522746347484311691188155925064385963771166449546057401139885075950073829745653235261089641467579979757972414749450748399732313246223909003602299747769058431214913638591848864982746939530623650450309212955477742736161893967658850197444495694615834792993579572327816727872559383459392747905649841320406053014534378371334579374619614783849166691784877029876399980351765781436666296082364691158987669951540833002968839627632282264828200876105957668437948686473353404290379917090133678730405225991426553717012588801240831926024672821667139397963969500068947851824500189353586991962734355872253079135554088660581744085076077056901432052121744841426632566895786117957728801875066396625947688749089250888487032216701801256890674581548577639652561538531038453366965890640222543025908332204118767357821845736810391176467361711819791711394316800448214818951584882209931871741171944956093670402891887229490761872641452071821292438448367604283260731444706690424369315729666752507233401508651224892483923366775148664180320974886098593846146270517795850755580323885282027014550294560692666942608813665636751373624507546813297090202313029251781333511636139245797388275624148730182985485664987000941652178107101269584336491661029651383035978014784792413234326126690385871074640108303438680135967525098933633074465905211526343887096466545031496857176846203233900147409748692810784687256668601363265059677363565283567597076140312571472916407312268856998741901782305622205291377674697563433437264936380708955645506982654322974003747564516516033339472645787542931560272566732236587061051615662471340881489972826274226212956504393270191510460051145444572019539737371666924158620149945418876259602215909163553131426230301713389854218138412273010265369422608595652871489990566458431821967773450550515496422674260378826426751209188361478240913158510008975073133511232020669481210309428737333639585726909775823274467534502759736451011111845496054568075434140343344243357317768852287365119677506734792374435904979418861627876997100665696962773978928160081204932165832964105741572319901093072033131869766042143860359598527891751640415092974265767480967595780916952241710923857985506342703632188050317076724326880977519793422610593862582774094959601841532181439048279210518749986234179565411167846250072481987432561891313659472208481719366277069912908069385317004450644377338479516199901888303941431603041126333969935758787411993880815610846394993767250309416453316146377132894396231793015253094389568236631056553173982218324257164740609084141625093484813399233105041133894429147850177395004629943446748210748305166916091698290906573181449985618088327835261290985619199814673187875339084732659579882161886645344932348923400689411993419636226870392286537668506270743863641051650004337758916797994065872184035864580567932249251955901774826057686700595944018309634287866537890668889621521911481954839397656823004518340474910839530517561247470982430755721099775109665289249163635733318098916152717676215645104739506775736000283461084953433911688616575128298774973017553025689574426544465273602755032689758795080396111793572794438303666983439292649359642536334042110793311646516937253746056945383634528783965917685649698348277990969335486607090376740284336093153875211450047465969336242892326273196144201987024935984613704671587476411047276269726279584733203713791118585141065599484584366553410328773438260509738273856772846854601835026220424018757448668563222338939633683024451607716090651081819681279490317394493955135126941377683777913648407981156337830813545268789175216377618482642695571270146897222611972895487116682318706681667512146813428437037250903716914536354960529502490352528562816261784902815771189093406796384739413009867369846147770792157470714810271743260614109290409325209828552939442599524652532476101696476599554950751005853894545733033718496449952618727003501475969460787161350980749239474175358421265082870970167295740974167957966778129755066354955151851262235755044675109502700146175395384426716378927072643050420698765331609446077638044462253103117319684864451401248822187926753351704883735334665700806882790783395950170779747923887645757268701609913715299564802785915025739455425632901238907512409404979834964279416680508295362763751693403704893953969524832845692639713272996448109468352645039329226833953833386014211616042120866689778382496692515183249650342425089795540399027994123342803010009808515905738771321934200929536647688853802001238593991184198312957537990231366950948070575378498835991275346744146055498731998330486078836347559667984584716005325109887116313333120575123118567527058618548373816222521464878347725082223356071934143418303857931735946578541397360519482765648147658486630559576440081878248498420934141220646215349562314793214035049936845214453621770404848092836671318048078369779609242317150769591586762355031272968900555282195580712706917987080609898952740358265595572328020314690566641013207083975025519994905355487605162987856711488674848081488153844822654807502937605007451394053967814078509979689113496234792054670216785338419206279329202699469772337007736282393231093884297691666341799498653553143387909063033665550153470670768827699706668762394434090792144819723632403181317779165992003192362482264627125522860073831052061548367656350871969786325960266409641533167899527880826943740896351784958967011991902435609940011336154741544976060698329494309267460625693251075858705198350339840244911054158692207257234237033923567421137951620592040167989146731713800812270107142093738856640761930089619505001872135050245053007845557429563049366243036340042884754874672495606798187436169189576714604688989050659547676628915941851667811656340421791177070192902141219581835054498934784505962946625294219926939682484300164307648226903203400462478737481512100833449654955964320104725204546991469852059168533491167856056882145093454475745883166538071878011984820194147375293945131005450206654866097173575329511695678014271059186467234085988445741996337809212554427111884402232053653596044136507530785001630664211112824419844493237804156379344437399954711448971564979932646010577779297120505517225213379967494743655366380493083713544967817213748870584786323667754525850555798698843502054729058387725795700910668836295789105943639267066694068478736485407893507119074747897574630496233690408704348689263638335994341218764466297579028156976165065670917159109979211343146893354024104447521623465479587697180563570347651019394921776546205784364943200490182975324998235244131476034803758882845364545152503863921674211452821277295945452635742440600616258325307356254030985511194853496895780136767647143525769350864252446255705851274815442915422407329174837153540825676439784052160571856684421307977600104584268968613345573857600549652488645868759899341644263446022429308968526973550794074754982332050401857618919151959510039353163865677884933515188696479119585387206812912660982323982254794647261053638114123046406314723134490009881063968226442961518943124300157641683153654165789706250862640206970070144266620872112409958072641472488561644517429691889386488768204037170146479338560600654007329902184628426389534502163538957878576934793622900693268410247635606595584836454000814437928560668758341368964331689484120703284054776575417876447468960211520596462656550465662819971301495751309732759629564258753291916227428573798592240789679738309773968310760535143900254055513404162124276009304884101812765435310903424913308486875411661711989953253122868329942130682696653430595932688142361721960323198470969661498830780983300472965618264514007111872322776512326602497526688403083064174012310801083985578428950903318996498254811280527728395485029217711784223338500867402161420584944261271906754518244312654291743775285112532258911808193849630662866833546935292884299668408523790013037435760907671324912843988337274157361465726004337994197886857374259631162449584730840957117911817130707865111047117905107280222440018203623100253823013113948704748044544293614151172351703167674467066838872987253738057845067375723836446965597206255413874210296248955660244097964012974033160131448799851533399519957770753557312141128820635327710252647004193226302873122922092787365672257149778096881472448985583807328331703441242142101831838398580529999599104726370484436493702669456480835500300011190539872068503570006670983680447931731822751065757276222210517804638332463344955514987699806968221567716525428402862936495005987587110049654844811187000965939716567153587994284093211010519676451617609235182620384749498977628188944829680035068496666138881556216417696568585737822193777425023743934121197917119734246605838575827206888038595245621286456298262645073627229372946921281970461957672166426718686872266221792183895578973921759017951723614806607378067133491057051428440959322307337934796407872529985367208043460576016876030966147375003712704196979953285341390511383976590775815655538986721024324979905071679635391736273743014069394778522794741365339000836386764437276943922814741789231375330731824043682763817611937272869835030734326687687989069031639541695019695361374922841719270382813515147667443400333496929157711888633698581817977335877174964900304393990781046089986782926225489707849914781944488610456671425655568789001258318128980473772162748262563426245561488685600456115720913905881144803299212873681854144789135793968557273372851509354162264187420292344398845850140853577367315504558827081688181884740508162678868767356154396242926947774367193914899141409964718891569301987935703969266555275105933163197061208425209307017088748562440625130351055639626809857959006975439660226454923840351608436706259413226504894123344862532113442429457292281678534175635259814004796454027400461056961488104912147701314964196239149717264631342084835383312591952731312625340116779014441471961210725451226017017012606500511711390179128357885758015560104972162446616582527443799815903714214940182270079300690718762745196247059862118319396806777819448375335575063545100570269197614717965684293332640604248509013075260304606483414070535831571177013774232727134834213632395221129252531111908525277911867726935648387771365041450325977689948710423200045816354158099788380211153763606853756716067313485086122298922933131536352370695381494736985798761544423504292727454820540650310181550887422147365582254348677319991550726522070208643149835483605234071709053582783247353254465177297505816715828723288011908842789473281299594977637918590205184899388110994207274999309843945294413975697537792912964008604275803614309541897889919248848914185547278846883135653611674001998235631570958655627341365498496313940970845088019823068326514802336904688599026114476378620416840012126957094087892851704569646268426176029355770186852546036574883059737833782504468358505761672564246547869145254776015332999414988488826949314203417549733334790496964561325661619644952505668843423373850931588813667717888142371089258611193144966823640335187397114066973337418109156710690035671647525077107462662053113768255775615030114630913464649226627011979327805872852045878529701469944651803300464275052026437507102929697522984048158852670935636889211515406305962324641061765931260616945230446421324887195351505729350285675829002220552973254845803484922796815429776329966897379381185788215199252968755487116553465340635212049070479715461790604975040507430384233055719680816442685901217901022956005317221006951017120606243363929428374084768235132175198765103701730589207923564623884160838660574803925032373179131454987377906273353358535063387080091666407873535912426261273663159631432322555945299744462757802446102739326134525521694131351358553345289558521518525170663242768902858033696582629069011263176571464621609880146141968050121440625781058887015512696987403169341838931139895917733893849218709201362491286076202910946981944182166376113194642738703270232745852405327437294988459722135527948661884980723917897020969865155053810624990475215995821577630695472944240931553459915540304665477466197951608551068794517433567914589867813337505152223466976703573394481367028508804760017160603995325030598269787618500623707405307968324941713344750080911773938279731131327410451153937654487742316854878622417033228013070813557803043942474079117151621081560332227345455046951088004749249543909399434544525260695810897316004182485348643068994041538085292219204475362461780843010143905223898491003074198371535694551139002404796003365537011293329031674056292870488931415130685621606118035624760162347124331278344623042422166796212334041906956661020424010602700421658900981017921287056400678843304545467035362367631192675866796379162335108041314064979159725142002359427337927101827668042749578538129900565300845301350992674913219910139182739087080239344539316844677995007708360118666460411319996943361622057733390407410313451533350145682067511258372587201601452757110576251053290512869876951892624132121765290364502100630693640630126581752075586378609874171670968012569848223114818822211257056708434689180835835617900405811490899087775880120477859847709154647210935703586324227492903021269479668175798266416321445905938789272077427980745276831212465733036996776445709619361461839525189061271141303500343805228605891517015583029947671596512495097340044783027136578498565829638189537788780960122202087991451909063080552871900189406306299529361192946052285704768727486640793463163132729832529150804038326559590116143736517479925747917588015999620508058226914761684879548894543157249891229155805772810592168025032151955682080818154073921107121220163543443726259659681360994884773861308224785795255266926157931510333645466083701532430335473634482843266435066728611273554203430482728358433965982772344614112327706578364630217411422318672096967866995401478097394519950349941400916827343668641739179298648049603680655290752092210274992414009935304105483539932638222470829714673263272274726764105666085468904356723856988991761754146171484797555319880897245869104804694703090051449843937298874574509889625852841920904377775596579371938491852929854208687068380161316137741223912327213076084525580568997744750937643553987542921181970721471918199580353621876547897813930917746923316139533317812001014767882615853077367065406679711093792729347863009088394211647886081257660721180353717526786693115130912849541703279195000140583259136704269502984567208258054618331440113726451770765468549852939305951792577717399229216924634555815867057659494956256104720067875840055839790595061917834131035798266762316605344938287392737780545568982266660054621693304614963431358820390684948301485574518038475865494787716119637120967153226624844908016294051902819469604390032119021903067692693846586940874641044997458739688417282866901549966639176403248670862287018258073075236635597684380751475347414513107988522539708888526881888124732313111333058367020135707623280517216717636405537377120103575459308695759386067730158284281571898516529573572109586887966441007694848608480937684043212724043482449231561942280710524800452611897753094027813029426708064066208130618773599492323973713395367783715480302956755516514074699448819068798269634529991348375871972780950874525763539783897962100145717116434379564529208831638640387363960937268105186030962084094233844050174315663398774633550262457460939252884166183362852677942708613862877221714596874387780413001147081478201109197035572929221949369633775754585946841787243475626561405208871279150214165623164703752611599151336475067237841603918215181651550584731280994906960744827647957566788188122083818082948350106054946691116146414090279038112531365849582463605884245454257601488660582771648590361195797910539810310236624508355721617105982885387943885690936370883936929501033395804803114026816580373282429721316356698929720848562494290083298547423977504075393221874303313039510212115345460013331235394711729258738807020260936643682167720745814303079327687934650083342704010909069144893591498054459176947139441804657058823676629496399031241050935998958079767934514273366072220140444719708324511194314824714062726669153558874751077685100915894617763634055529355836040098736756167563275088520234462892143729404508324413783759290916547718991685315060985900983453092152469945857517129611742789003436205521295110978054265700595870102213272174664102744710926046729832959655374628511679890247712174995157226956731188419721874906127581550711006222898562393537818735859221450720262865923482662222744289320042922844127180353102697154034926274243095390138468301611486823612130826419373118514200906382767461499935974374459927180509351599889028353383482727637717870742889226482514925055827365935744449104800373971000564364279827760856188508377052653159662794625078454998654849472272108518020155125815847061267208705017573952284834691855355457967179435708427118278488832946095302625343647777106228513847910631634134902315439710176120917178393572728943454526420354018109604364974294016974589049974758693193225466407432089722107674134562671710746780252725814004104859074045947521099933983469486709766622059893428098186457060940553326180357065188049309343301158817812326594548620210918775507525110142295231553641553623621927454502632867304232348858830166855892052733546180838985924412344219306645655915478929088184957719598311144218829033837175401938614347746756642817567375785674912743583035056166343242898650769520275310703760818991101879028929482278556086113592564308789315542119195944321377903415934496275275342175381881239217242000504606236519897950914077399683744259800788297186106447338293240913841908285760486242634818731363920354321456037584914400121559328917134576157301143251974584946572051921752027502627010585058380544052464348031406309704904875267648028136085460623635600355445654125469683074109185336334432157392216124185480312458162331084787401512480312391281191295159380314070769697055086621907916411988089330731442458319624195822720381830048507379978920921625791599041782537799149833012513665778953015342445209095050328648141885696207190102469665712622748258240763489011737667374764604679625082845072773063590475410931700875096927794979640244738108352581474625024107005036973513575403670592347730302625593741217694670039574925906215004955757164593409015559051733991187714104740229024817107517472624613806216954684184423610821552695580991678472051619704844049300525579302558194872289146695606905419048131800829585225058697599869573472200390254581056964174550195492630088824399025887153365350544007953141220908934481685729311762136433052315012723643421125595808118888760625990716892011908070457113729418949917367403738115905256605289922546351237118537877341643879693989017581840534895799075819572387363011298252987410610983344653426937686535831225670453048796747955292668340888169743476374399109386298414765500136121506383023609796718139867745146006528173188922564944535212459471381789861574804062000538738818088443666120866185922772562247994458744951570663100033473923513387642562228650600417238642870494372730533941755723501424199390241376872200733853478859024904077365754897129064115641908864740832917863018647335923625091245092424050983979037341240801211197169543335226077415264346163809546054569541711487783071113102791944768388468836862637174274330106872965267201411673181454879873998962422500644111954461721900812421931721812727728712710787843127436384866835953272128340308782871262133459202824301918987936738562165648773094805239624082369581876956631066204075503097957493184741074178235544843881763931113882477972546500318573020967865509968948831699669300660149937254947167678271593001561385210389461130703227110904685617624753978156562665998674955160403739433143561665849138400097535797478513645722769318875287418791592311949277039621111859490203912575981787199058389280173320475863172833361257506097203053245041378353529243195522773314032644521405588358021314484016135103071904834491223679846699090720072992059243639221720060252020904899393215291931267405817553084768474299136285800568909728412995998255523754398326575456760766220788738628937117677560131256269282975278229571428254276446570689466845108354046642043766987488169303338695573030535642744179518046198228732375832326548281053993105424880095395615746826102868560501149774722035006153570987013097487926021209559284294681283668329347544687843840489410485858046460265254687839609147896405537160450361573955485089884032936451851061525246222959021086595014911866366311184589211665849665190495698616827257127730244438024027561966348691446861378039303675171358205020437018498612852267658912679626028194001150828285264653945064853207917861319289950002663454481136416178616744440687509140221458957175496673361907668002733020717985208143046574407763358759450620912035391702861300026230339802942208832331017533931308229034154339867234094142446882782256225367740857091101883743964296591956604948439741263342914793504617020429219830108307485917993433539708255351704968870261168717626093839903542109323923833496750848414306271986185124127405926088866107523923626285590150655325929403434493457899986583421330041674518009931599744181282561206812859456876109827191823682729982975191334904749550794229953292421941770884608307541940988231772809973778313079298960565195182840445048981263736522246724075566483543948043313803830290982053962816007093798169466431076509806648933186216013109688169492263070561543817805225498274490642113817495341778108356442348030275937954085565629375111173426851320368174657277391162085529282304186931564285046215051676288002033654726285353759139726121041968408093551455313873171723080644357999830143827001253597689554276475752980278356534357929134507796944529037825577766284688408105057854617917595323260809975876973895040176680007880358265335538986042516060036068817382523024912501511643478472253095561407416007974476394268301763086040678367991227632276044023323163794953740082574356319525143422675572146385011084533466365455948979111787140441859568044327155038036308297499594864461343987247979424364962737280471087905890849521136001827016134002167241301189375047736564360091154325957956488637482031600630338920239184543798040923616597634846703645492979057059140515063437442573163439774703072891230827737757477974369183827007598805354512695037038822312241125160489917914103148540621796983628916043603827298643377610174211058479753987504459179499632910906932010404739492745418362019294796978076123686937075222775703002593186696093563148472482905712751352518187343461670117751990926158717684533727251445725123184746063233407037686350914295432763559529321168343455438768105585041529966564902359558125631222056179407568742308060209641252724677920488514643536605202876803496713739021624998141819913646882187845934696952169100424686662727534767310113973972827332394654236758010845099119597795980255100075163136615557404360601975537863537547179183986246031272576741580887281470630198563277265676041205951714332473278319051470382222805132865001718353640871087378895872793432773586805618876476968931264288270054399455173066734946633880438631775111461242165737600856768013385691264446170846580378635973168819371052087435716713831713494368622866142326254854822018280627173784834892200911927692189975634889045318444992371667230175491030864918363552546233726438847669490356830257795442951861449731960682212355259589710889028356833016903344975960442935047722667539375875949359240347521369738826469450553773353005672972401375455007821301096097812554978010002807612290504830050149495307244226620848245780583729156634948972845122846593635827762267481810995844826112942905844428590389250269952147969682960631485592424611151029804694089338770734029101000958025742754613583396976616840954355818675155634943704577309121988742719349524026359937689293920463914382645315164242632955604535431588173699511766807995781971221851181376266839798701752146702984515341991267574299572073805296474657728367895739010873204929249538432927247028152220956956106094080212251414480885332031138139563456633568133759799889690420342069312681174453212952597835561465906817390083165264680648599267444858721240096783483432475987560042332698490359010541301614233029770188064333625358863864863561219667329161556002452441663860789117378430678521046076730461475285158501794946177683273646068361411927581951134994395250137767157673925225558501017843777423615411967380096015489913981678784992843417220113245761156372730282839421003331336510846847574201202935065712781457606692114866168705496545108323241406245973493213785405584088831338252360795502723822055759843573097265854987796442772940342450095561347044470743473009054972379907700517630287380076942964096207850307716636942688813644807505550460158928473904790231063282794545762010719661272002432549084320642503665736130766235973785903767487230438566032023083056514528959453490888164970702536609023848878483619782215577251210799843090864221540977433918204579091394262958222110175146938783899658915454462196350415884661894588843707663787168837861216569860355393040402364203301061030818526296469369999822297396873957122348110982968443705563970869952465080334190081516613203000333200049424885566665722310658961914848421751156672001246542182951462009346317972042432444026819017233418645466380231630780685245738216951955147626685660374021130672487074060668269540135700147355683776762048112666861787924299235237386101273938090163578087700667485238142713142380636771592981418512876121023819524314208386295481147166026644243490737752304345759409583542393746056563694862821818034225698676303531835744220035174754997726962574090441668056213749492292115643362163679602988599449868540142867502169460993978238894764832524787117671304223892024076446479138937203006361374595712865883221082730611687928314120143881834085230253454028950155769692244112042708865039572679732832829255624575113989103283794783869702787568166340621537281612734914229216498191158586083142337800216246169089319105183390696043525706846375553712991404494823238521050781250489997918404444873046066957456651713161292314259038764332927537164285178513496618652506824795994662359892932756348873811305726266459694680099501623935911891261535072155509268961609039961058454295950393013666290644225974935613961585846744157578597365371848753474926228587546789231897152753857556053846504232473325471359001644789997856935669526478884228498908143610438790720901320664318266868515104130082283111797138345411365192882905940895467060908408047983670366990948302523471482327803864545533606122384038686725332659615730603073688852094843689635076621617009375012301141589965215230001640968318233575743044001953106582850507801016597862908068780050133687493835955085762509687846870279896577939823125508803363101621389272855291293854734990283552236448013860117984029154475742428496465347066820775064749677165939199003900649501628431732130223890344034756270851876105824480222981912058010097899280385187557517159550270301489451924050016527676101685294875936039601039288266560336285930739656815019387057162006910685092891951716684850366992859334058430954240119130384339502118866606543320409579619098260300362020960493713180715658959881902450556692779531851999528441578909109287538818291053781368823557948841071001804999631021590797850675812103169804480248205111222557426262495672429380001011891440833968899929632068305684337812531426646752192133414139693409426474918722276677962984479901730750327783261906342836979138140722290000103986720898105147893611230331973744909903757097922436618998527639384526823453233617035827749280343249926236786023056147224711843968281338725335718591648266502781405689835015052358781713225827807181368142084386343424600167415894867096364064363357332281323637566750925718254696621237197797402446589743715769940872786872609272648993145438084047216358440383733472188947430510026789040046511609856052158436268222310600956361418997191799486702351723859010980968049184917302517212393032521529875006755477323858750396247301087781301107241821394518870388119134384529385315144727441060614078203390763517154625717389663734244472853128206199129735849943611972953412895032477663223713983901636292336495839694359802653267136004648999293806219397065733533648460684412942196531099506765633338020496788694153220885474157253941476262966722305422621526124636611968036012081996657149003821383438560905020777288166966782730903002046563278567106484754987988263595518244670897488381928201232140429342350616893396160260685442138259192012457329304986389349276370806765190198418095194377564184510906421306879492960968229084168531593882653987949513652140316134296387557240509123881944678685946357917413814438713544127944444642501783815957637683125867975423767098663115262881288782988041342089748919914205139387802524538146260563285495050401297048496628938972520899841990216096857362234050528780071132094101193640402138626365609212658262532610351729357146593845147065323341226790692870136201305093260511713865813679496330671889454004669240306470200823769133469279180170107031348363171381366502964758484348142000797035617855719555016827366582914045916050758831255063511131839614827977467309439074762734901334406310355215966802989401784411917869725620376133643427094788417198898629488093424945310180470725866610054097172517922649850634742289881581032334296746159777189097123638972478624380366430886764275804014541983222790191200457690014695796596001276907581618053328213370658834733567321880683116555368642782592840251292058316916046771451424226394271660833365144595073112081499243723478874006389152917600756404124044296197194349798345791627484686465029125275029599794314912491964704697461669101701026765018631956114208656691700400048981962095228060964659444508334170949611899174169091713557795883807194072667513777359218768571896681649006380027624828534325426663655061686550849737050428541260307790475694661942901098002097038483407225825989023888902666700497651964585375662535974924072691290266582578570188444988728098347856227321015075203369213579376835280337002719081600977652078009788835955490928194452701511319317993730424231611571060418771379139327237525367986816898469355209659140513807976747493167975878812905465507102538400284371235214687084367358646393679873030364655517690282150135246823901607498160037864223880076097571232657629423076731748155557468001629644636195442220377043325853938842871483613124790517629368137278129693234226090012575142124599607176113731011212716389201274082890288581664526008551051661387153309048509192156655098146064650435187459915068217368406857011929537677988346798243231179232788187359160472352216244986882326504086461989039162610830500125298843279222190643291689210744822245320522680347182043524391640059696687114645715333694762469402038546048870405386794107774721846762431810601750966655930993862541505205733304974446002236571809081130769408872548006456106079385397000721347686044573272536706687039442938883671667369685625046363809946401637257422934219448006581237276462421251945086987679330820938054834278043949307629041548575500625732716594393891273569057331651050827614102218870718644148416149504548235241986858544713897226785248483004486488631766526180066261835415354904305133244527878236615878394358176238806852012206570654994006625512652521936565605400578262715121483919791270107204104628309028261696944677784832494399727708180649353554970469786620325800090933556620948600160915749596294732672626944206813730696142841136815085270734462012058888101209331125060432319885284804268673949938788295320933731139518243640814065280833694147978322968709386245080285401530276855635700939133252895855840258025832791735310909678538962616841503325396472896812042809945547640766753730136240149576262062373308322334130781017745809451607370968282236366209962604447234953012381649742709190750018761001062300106057047523329333927250137373798663409046123034237888646920224974734069176434050561856348794800701122543937175924370553163257111122035065361427545188202998326077522818235616957242577914695698338892382775571190239432897960447229836072520934832129059421191868869126784974798715645046071488617996397334619562483372428734766382305912526760847724489398520034267981329085561413067909215292941660260927860417329376765086464443522378997617861003423119207815141486513419528694146503011714659018156364969398585862936295751022224754447460371800181926970695624158155721148128623507771292134658853540766619753090033138119438772841407812803723322305402356330153570581369519296092133237790230940339733065352237507329524529425976575350026302492945546812009611324516877250485100253930494345056557004424312380015236551431449400732599102640364870041753776397191298917991023363641787508824192010582013405702088042366837166296467956226032107722969838217024068520804777363127405397458424362353185480482109853534876759558743400661023313306891231181663568664420778172694358423039381402049828760446630002573291197997564695679679475290191221241547488877872681567157795562102642445958049152716931076334888412987362675539381709832467111395219096650619911231178008289284503346093761849459862431105270666750105633561215781865581298696673280468217279672530270638145018553796413565879630809752627107618826343293918664440194618483432180996420708173241237034628171466167421507188743354132261025373019496394154044950033787153204547885570864943356649966029118927157894598747342933066408404104777439729066410425889885662565011580088220366666393623323815524138329846098770792868890978001786197056252277816755787282953240339117587778510645095304186296420677999992391096370350445096724182982127137214790703483648302651291322727617589274196391050509621998019075021164214957344281000041603984880752518016758730683600695451592125995585727303595651639854718997820591595929286869695069450019785213045410451877394545239077581573356924540259729310179332769892841512912961455076750894652627373981851263531823813072183312332879032838849114760583003715953373331235483615077270046314511816610626696673524117727506718213735031588049536873020761300245688950160175191466637615044478369779164720642898009648880211145840471579779926017378695466629780238268100322161928393599582525214489262628992553493242481760594041558496178807463227411792706266345674056439370640728276398521015630228145121996417182491209924108634147250060222833473559702528611549100070982524547350268094140866975140670214041589165179826101702293245989581171147637335440087103923871756123693039613593946379932053616070887633236860702654983158444777206975817799742536540814060728012161786239795419792617010263770900650655061250079155612742139793693642014156547232110543470009295596662758921092584941710636863978419943052407950303393642941528776694520418226350515849208386057329648951059945467065584373287754732008619385439743066999918630737883197245610605255401399717093548163547147907512486136900037862568671988652999636799516862706680772722073411191425090019353445475541737934705140607480693164580756329249182994532027087402431831577384269444594747365133029362971466883619378321685245808294970067443096677036344788544380594109087727138470802498805921321062452405679270339250323993804536426535155892005861745585330604507283057759696842964028049354145770794714579045537669986322381257945347369200019621939896951451822637421490545282674206526434771495626157161550740793034046172778962463966056222715766844954222967230858265423761895394901188224359319859417600793523902760280953850714813687512455454562071691439908493086849668329694605316173608513276108192077998964157251694133905629460018561676807427840955299803599134714920216470689039398726058290165800127421069175342768380150699126043810711852799909521915385588847917959581193318726817455434760551183014753726221246784038259998252587420594536844933163834334793679325096140005516883235199502185857077868146998575965085780467265520262585403200743340533660775207298611447231181971189845529155194107134221172844529337654080501595152465004259148915664418850190896340560766332327246252325181745314663821702869202866345309777850921219140734803220921970119786832723873104661352881203096503583907537936127990019358468236697219519040568736820136707968015216067783400315237770183363216113617238390039551058957396296379342271927999123655731566977700986371414104030528626348165947050920044057794476542813271559833942379403535313690940437819418906254732366155849841273134418788938636830135767680774202461799857909210623706400266713614982115175581803648493028985906733132876924430042365028964669084874138361132379772961107461788106264301362692647085074718504558708201964379066785400671755837495535018441382527498402865043404659523086765796865999368405183631238422788700855849748767172520454468718438159333447898510077692392066830281288611818508817019124892394222231460784552846606730350312779365671525454553821203401095684443348539242829539022957084551238368826185228769391985226118553616713356136560203885941203698104021574934257674345989934647297149889665603208771902602153267525342081415386037056521841229167110981276900050941931135378955203239505878838925630955213415255523368812425117998475497425789907702947610961140753305296271182177196889525751195443565560389945992004240265789433506799264892286021477715642454813691597065981217805347862984959870590053064889121969073972760815822243898318772231529822033906849175267567923754945132875626859147531820268478864372808396917393973784604084442610326552270036168195363078701523096940168376153550702631684913037393664031617860100337513490765654023047504685507658688487168552530609100038518174084306288209802057548595645129360587699630684820189022022465375325711871376737539373638063871562782125626700067246089661934725505835642238926060181996641552245148643214755840304356923379580086516041369432381629851813291815650797461507956972333180100618007122150457990404244688377674794184402705602783308375952521238960406163183717759622590070491924578387308148478328528045327269042935525783243614347713616067607190878567993870073771184927935989445876264648039876848934382465999005002257923412725016283520032060869830891513200196426744884768029806152780735477988770235981521799269769375721684653539779894527786124873560644060724842197835892114417864382876740704668002135451539801513708300723545060427108863780014539390071863503995743656060938138641903947201257071373756233608100169552291993493919524441128440220378244689543763351489677095104725224904503106173314145237125504167109157769929988695324644512625509502717602361569265691527014939764309980685202879651807155862732670485525570492261927868892200817291082976429930743060408168408069149043907396931996853247104061335571117952876344103295377301808239765256584242233948529188436128933918026553156863021237568911349434608902285401610906839351197990734846088190693302567449059455254731731535387086754138358646790552095317232445359295223431401693761208547783739088343312843617195712509852088683196461943900194515743153065201954570134687267818385543890670910944299704982702586486908946976540472595617358870953026563877858013755775349244222975140640568443510340659218097203621086937623144624897888863294631801778937620997053221038270141997827850024603354991732289061937347996570192887829483324077204473241551679038967169743441319485105366481535310086852592817169079088368529222899829462497811037533894028340543821375183425416977673510111436785343329881756144684508641574347871617308990073646963257676450664467139139957295603624165542308987549587382326984613759779927432499883168334292590524876335635163186415020661099144972281419439021303576917191478253494657232326866624526228101129347647464218957092111453127983795843236800898062388345493762533114081249797203166754783313101863364477110140963098377979839560946859689056088857474137367165087034734874779946357552258989676340954705985158639417577288337699234024374572971314824785509309409412604754247619497407557684193082211387987360597029594423801236449511858076164901404723481572761386758439498618697857905566138019825942841037257601099967217824767767281633256225369961158668429469888989515728699833445354086286455917923730578737828277050421186728973538682889304826642621649295095049256549641879110559596929284210096872799768787242551435430863354931773319091677407226030332575009115427052703325851732017610320308686708108108320486100798550294267942082277658053336382834637327048835404136686905012941162691782623435677496562124122879866527467034034874989470181620951692080139305845890078336856687441054714780961891943923808239716618188502263173653017443179067882399686196557757709619588987823073554190209257563925379476002689472060078281875127116592024068467213125028725436344005779386998022178005526507381835352917398414670882635021438255075684704670100068546965336466629859645225008137683243750491519366293502308155267965690242220158961749746479189222892841297337044217585876459504242529950803896429882054459090046478350941055038510200836987594667175940813602096175900235686638874931375450223906231694486439119579457662706161872811729713937875347017519780975979521561425614064354980525643602894016907403480079361353575213125120969204650296069818798935581660225185033569017246715915618609684014961499618770492876184425210073350790517483134211011066758495778416532840014578104164738687115135646559484294517384618911104166046101241183456845060922615616801374739981730927226667481378915689981196174940599661619434542696378655415715676391855973286772498008805692445409446108872792882147458579915298153392414781643827999443851906273052420102379132783309153228448777296092190645568856384651816175803471001925798304759354510204384333867672949431279383104926977992417819418863510493895712704666406269095556805576489769567171725711362962759209865669848483203826822730626441783290349687184001277269701605698803496005429827390382547269773477365676241898221636605924558633219182216025834136033887253872793721552596684616684599991393132094152327481017844771518012256600827418686392164304381767031567680872533404405164742069676749329429729218260435650828731594816032303825537442426898489969275244897593111913720025073960468098048372155398072104052465053510078421204548434469810658038085727937539716510446253365939776691459149183521094872387231961051719252024110652834883817728973188454427153196894836110581916726272880801014193763850261834143810054415751159177869632892649473261402904022554289197953187418601044547712535726256701086439817124591570361178544144394496429490205590942351525604108042798083245857711211860812291565029847287676111328185944835729337038382970321717264878102555526840640504512496747364967709233492764157592071114455653092521369354346070443539830359822468166955468076309804924734694871033090593486786428630307290496197605540894384490288133000291261149314754765871625734889041438100158429698203823311098970747489805028503011885743750299057657068107740637416218941036145069871102080519595466214521680844561136761864632732731971591410209440586892700712551368953208310683583656614122484235825325499329112421884570987249238292132182277361326644131390942385514306587734729885787461599514199654723900493395209014297008158573627816892322908653892734145077495296568116505743785062559200475818274402226910699101802094447187839814038409030908538245376848212193492691218747261596400668508167315874238532712929514628777713884375592342569805322576346825520591044826455790169155163696808795358045029764508537349182539297622537851757219650966413407457321381323453298579863732368834309434503938136539884920968528334436786533543631396135674060936806397007441679716758386170720959439904364778078543136183654091748919225159309493032774136556372764440863495516572299305066158507366986409588342696447450304812184448179913033986116476125628326417954847439263167013003258583656621835952101733063671372400585768176864723790640131079714350845817785741915232431608284971392971418377634089566843389558667811795128465009242933244307698970222291159348662519640812103535632833635031529199538160570388691711117265549722458409495015476533282378676691707518603184440343153602668166140792583394180740874151970125164521775908317199485112367355621556766439619735971308298603208701045462379371302264389064020166763827142927281359757851466629229849735682200877114671347147555985039157692759819941753747428390042548029356164895198462414343897371416732506496733845013569766910471262851307462404466691320666024381969077704450556743335867134742034308419753562842882199387003622284005890404807718790382495272816349050915765792284005988055926805067940217468291119322716239717077657433477333073033682647798156616524419286779228878733483604039014761950626156471849021961854565370497363412982385804042364103674869233583740680210365997277772576361394140261472720300823747326609262586111245535016867578197897536040940550518125716614317074087772050323283002137042708735404638484169807980590766138451901880320491575356848900850169353958823877564924011132231790996609866410611642071121941690315485145369805823945470549618756673967016133832543922846500044582417518054945287383930282030084748074320220121508118268698002435437382210732477348923461103941528706468873308615706839324377123505736860705350014133634310471652999933666717634690272521489506552145656363814190167625237547901855929604543576908227161078246731032609837963360158865576634373797873492237275123314539655809553419735074783725725998951582713693557845450758819882672889032167931546011131939804343716093897603176028715637347530798675363693275951344116296440361319250596618855600104925113156537042172433213495803431422451211684288916573085839075093629516444029885590696946836271824035916209469476145741366404224352954704672513418398591511797863931657370533398425855137008890560227073050573806162034747029866337722312641758151820489748858360140819502953745199710745240221867473419831865888850743020065839584566318270243605302558940689874343765754366380781380647400169509833906373410035061482542029386157232897644976388280370254287500393011947406484870407369548176640749281516419305949134926007292162576241545357593472025345029839872457219074549249859343492838474760307068896727038244604272292809309577667729093181578797371221989084425124755523137938115212543912321215774724403505137832644807537878717317989397769321270639287556204680649243711148084521309098766467500847811519900267975102153690718945055949065622433074853393999841805102674574596129002283241577711872213483076199254449888265448628977712764733925899645366131291845497001770992149301538995022451914704479538121053888077235840299898329213111859889197951305420932391680365898871112589744885342517839011798718064242940556965906112269539780270567113972719650008387679691604522710569138942040622652575291470838230622207618308188726012549532365494385527709725001602801981284434630955441873605232729447271472178449888158393724577919549298468767243713982106114050941662782579295242945983043278281560387681298846503396805869079621577821547191110610502558223277803942125482511927629981117171486525199526640149880320935148741984083895544044037655600186453037307583035414399682170895363445860357386870625099096758011082982040166907034908317086829641330733887605723234173526246776266994564740868671204582044201470095848022112165873458517223344759928464333108441819045358454634723908916031106161092530150779671736304042785015887139507392749033361702641789332320578452467892102527854412355961762604754190494535114508564650450746948681612974868055611065759502119405771763580806121022601400649023334455813348636759974076828550196038280090293872960272628953190114917986422304069235812832909581613188376470588710421671491194985001255553273331281944495706852495965130642491722055621066889195142520999520177901797119153596485835180191209019719566369496761939989899130910664172183900393253566690770875978427988587211817730661769519252144452279075955338942536630649099332228307492034313559408366687603190097461195488236064104779552123769554818688501076942567785119438019388294426593474127394821701555383248439001562720345349553478076701110131251960170899862356425738806763856236368261080950019026186057706691285605447614355968617320174184199984439359908274741719842798646351925978889415622236634481342132767558645443640863065884783382804173857679433243877747622954503912860039113049735351933800726914333651248468695862106294497658512987972824916117246313201499902773795391347755600707598080660494134651711798992592785503995251460960804733457259177766033062881877645792776671163136140594983496871558349207837437562465403277539090358814359020613656330553268876661827470652012474575958028384985294955838855990025004057158484491511608605630852511985764887838717955990151499572187256337926254973368492630018148584698857607462459164983970957559746079409155453037482718522537802011626738824291257559582849299787910124834119095362900364636906537517389784816843586906275687034630196092909945071842933612895195008579752811708339677797526045021023510625955773022524428372839291681284895901933423577228958800993547794158649171243566307839709189433997209920741523009436378010075605962476441006958753813555104889496597558924924772179100562065259559662395914091202236425658169903808422936356790053517022340840029472895126811569357910188509022744345430774335316959109017334700125270571061672710134336681683568897096378552640114682240598948651664241866450230440952599815687710338684375377354745660529385411925577521636168863230006273890466489556264422513888004576273780299838071155486008478307767807215641639047003474794780451262038923364460285064023994519706739170278933991871128982266837660034598809315246309273593518504575708200746889965843634850673086466433961772148944467631042258741791302688759193722608352938761289557035508880678670974473339951568531847600909656155339646498693137658968465359924283014040135126811887783788393706694337792871574501085205041237376194325825319867003611402210365082067737891644326252209983471904633304174011274012104899654619976374419501312148608028500727465738153341388504291950152328218124613379437230866947004646341978084993057867720699550490385719637218314414518565202863281101744726509781010086769571245774282160133189326136755289861288411741724951975655638141759794670559999250658443849014244652635079990349240867649737464008414144455178605449806041654635628896784620391546006427085032034235275357586975260454776309475333222932407263951443132739436828815166696075631956417562054362101168382809232572114984652845605117194019906233714528575604177200670978984100502962862775627457778481768325035818563398771501613880714262955603770317669636255145520821591929311913023340782609739233607025254445372475276898992900143394611814291792710291565445437557290762784499094718174610273924306698920599741500835159609219304026945532064434355925004715305733516079549471467711795651702159672960603844809224740384774814422655438746360438436903686379117558213503553850097860494209192124074774584521453977331190836226217935147623371368113274974209928012374204515365504182790017913643916857666368104266917098356338109362947589985145043536652166593764702703505544310751925077477187495624409797704968865067239318433535006181217671907140591516749621507876006594331930396808621767936227011349326455431000425391989962520161719082070798118284270510070563163153771495508613149402225777926520073039511648118945606603475061629782018953345662256705231406797263687535129482243198465844316371742643881072624199067973852688732700380003675866692708047540017798405012555801423219470708863597324167070410007718005954649921572295546913152717943946293078183066494000323333892226776940772868967125222789223191195470968743398577083122689856285453612463288533063760086659113100956547602171136545970324425825136708914851244969578878108230288283235785234001058181610786319002870167016963052370338014699814447676766475904744464595233831825952122131069342597711114668474168965410635190790758746306899880865826617297927163156614907911241770903209763279740211084497970512327976438334168889008302756229170091452385098392487370858537404960788133510902192991673638568597907741824435864249486597417588629598388730660451853233110080598544648024929171829663510177327947477121981143313840447063208021536110059323703145878225106320346577041868019752895588577890940594100675975117913697720982820969520321850160878052959741570577222135923361465302185786826264195886917316060374143826383359548555523543508838577484732410278951678166529255939306555654765237833279705706413578972542297671925137941336376271991566380910139454990976242703932976356414471910684535466685551071642535470155247479044740030554898968231378407852294277832661513718545723014387016415670481039489095987968412649912596083724964607111545836337692978384349796632666944766336534430881054990144572405017019471165644262210260245949516574018339961378198705271858865518268002480191384424516138370604760428042657912379564260017137815030789128487655569938778280067658120661340850673292377708779906038583388122343353572758468725066695921188413924834173831013184288348424257931774697007929076594502897845760976602021205380529866074975432670339355993530744153046157764683144426862709553627632393711836251748121329098961882054221867347065937433288592474651019094255025696768068983832530909055930616978397651311685265660765280446566032906651034512652725882771543035084216865542533351464908257553695659959920611776272995810432045206042646741551023452242961542619669358083393473138657147704688093630235970128570010984084832072166829969200899828521539991981790902841754828042901031268207039580217993307937003056470601695094111731782027779801098777537612205241565183581775544190513492442493741090419522959738521797735793716546704276437450686356391114862435138038158279067728479801046294177245040980470821136520614718053650484282289227173005562312762146998701794770523191281016361370816132203903989071673975360374091137747797657115307528911351480939148983878822364381465480116676382523720235045515911564319901182177911563750655813082166826778567279909134378582265047445033896632520201538070880326954953163615369650577608093608789118707660018000331794494627608767840314964860797000458321908527487941136423708378023800522143219253543021183139193531048550695813727849375984879638763835154439904373573267146604158356764934286652048830168228604785689952024978628919536931596950486678492702608961299442929247520497949876298825344221617526530624914255404786239913630861300032687932126278650025789943990352887607056733048525531130667545161949467351288023481131684481231612156148847022657211357881033048872829096205224669226942587689226863366019682920467465900111128880735670375474548742967970531479464070584365696887899272794692973406164947557882254280801839780651065070077841155559186034107679951640238958099043233313172858791515327352048138428743606965750040255074030415048043711077126178913656396980108707932708702802247061447020209448839135773083588228236043584722359432246719862854662032403597546961446355335121023043944148378897976167230110719795475296346105533448225505471643605280596382575746382842929972010467884394113376953448327683306613377672784633847501269656539617147544054513713576199860468571404432853351761995547513154034176486558264678146607580755757056311673794263179944837173590723403158523999723037269812168507248239317975616368872955364727386234501217810367168210893459061349959300581951485357629975389221026654664554850131547315968962995071689862505382557003756431319247564694433866391686443198984770074696662473933449669107365987515494651213407953714605955024678057011157477927999385702379054641180709050350523705213061989143034530753907674938281243335721327660014024917968508882023082565176627226018316292315267314243922056347264208987924580987190565277156081048753712398304594131991250973894795535963356472873131190733175171813229155178965416571018013371004686170254184369533598060853212362465805885304329219291957001265719326781833294013864324346106714901537500004592486002620170792634020186889990253975647966122804719137225265987774603592151765022489275627783919652503829086870620818234344657696679988149660204462169010051841848187903345372509726621019832574822575572030945805241692002121261709489387954168751257866859386376231601242362402588640877977034162390952078397455035265402470469818954741763895852144619153995033278994988111424021901299759035368883617187780727656781703772339698885657407092857019182834962937073850904912212348609275969737690289973356450576461903931194592750068024971715552620836459863151703667953323555568383387075992585302696686546208793366605671010940981417835603904668290738960284879644148121526583243512087042522324001119721188435094941750757424522842492055718670755264552264336384042963186258126548932555103588999688619256974794247734321764958320511498818191783140993322408715374887325025567427304710363925225194613621259727799637265628333952549276118227328573270371994292415732353888797752296997008905519609242812232593683570680686384014471019580897825501113076401040464564675755419262109330367144848486333563918406259163400020772889063180101610645019890685582751003719298342115337640211823779709168734482940125508950981475258347546911071787011923843440028054686511376809256280122687036694053250383155477101769607731750498337424536009548324353607887382562154636864972085215523913190718723011740519867393062802302508715076175567299045726546669016406788428024328486780882511005755292336726638706555196532636049077732184131076156893752060346884994756007378988402804413170401049932666608562807830213840085927290118985618966032886726027612978309653513771236415127367216413768190077603303808636983862769160218702749243922454481007760300246468313985488342486732683725778646900807329082413813992842496377091358936302594773215118921308337725691720553516612674651351190217547913866460821098823067549621751086788388462927494852478219242663058561142268884646848547858759727543254651383999860554950048731961157305494064415865249048846687892919242929496340012987534906919418757611227534869267208044389869682936043667598589857027173030352372046886645556681254082728759833127137761292741382895191501603125186467358199763153812731123075393761852718491981703512238128439644935147295812373717937426005676530155653538268162181047643726467699691414667530976182093439085560392860762257247337591432178081746137283980235503050752970239081234517490043876007605187450325848515760761746075355765152905610936147489100384095216350615522533818725818078329722322137125743039405713982713591996782142945658645883373533634761040442536190757147245218403368061703627139234840636036443078909779078399895137726147376449527394892115421853712408196869579235848260435287767800899307225481302770066864571177342670906981273988167109852683445395004940861129848924186410060211487798989943360381898353170330894122995056468564104273731514328958408801877064096596517323908246911039318812482097633084370331245599970433723149954237399166525873028037411894191260159294399033384996654509657823398158640307712316986351354110296567272931864061964927116650364232611845371293967412325409449859565746857625571778153008448088774469561875323105622311630597199413083767598496987975724988911043002989687269541498393778487835359525628005950032299916273065624200101004113904816879874951112000675147856071766072194365574858000520683112733219593245741309270355997726861382758820761181868125935708258638665816919208497599926710047568544505790716423699518018443722838142123488211367881981201090036566161505412306044711012622607748947579450467524236221157203467856349055894257192615388920837202554529773929177614275087954418834389601961096935701292459430845188294062663874847723407577889087203931043582204720099111748004572814319624743606920225374011517206828054889270318779221380088057486000735224623087371488579908788135969980567621116081978751904281528476619901398152620521220197995333430249183285371527881870955187686137870926657392179186498984224775048623969051642115571034866429868309428598580385369046478109822318519062266929501655395672667913275172250346585456906472282829685623159941166038239323126185263809086160882991706808016765298118330254898479660595725738313356666979494309959929484918681902341424855856472434264876403641357714432257547702044834947575155688700926419596598319489133493617541854143725662890687930041584886648584679005123452649089300697231140838064134651906202144419217911364678216714296878720023488105238224214609521330689418093053407454447523548645715084425220819796004353509553522087527155482589348413637285887289838891520746132235015418040376117804637905086296345839668755640447162138865529136278282510586518808572109938221771279228786637057591888055636367290947021056552742995750048098150430007004646697338115736624490299511018280341118444032366232675133352965678147276555522028906406138977905909476739756504002183619751755776176316369113299991616447422140558344180270057868614146537724218233457524491839405167814349155392027587283741190727989046263170007829467087515292566291005831303891818442358034395031742238653756816535580983297302005566555153607152073792489800811574604678167006401882930079302700488426659282948159961757727663817549249531058259947578001196891638478200184690295929496796268652914072696067044883340413109540361346969696963773892651560236923422467283362791348438624993337175426186819037161812075715609006311612244646986522181629195912497941929055855355585950180767475887405859133849697842569244507070943206599179106898917127097816168376541848594460104365803884548588401366792463749191203213617919701028355931748580536515738275173809204540929876882666517238606041539786845304755538423644520829970383080589235175982499891555325085380962733485948357197946809238368580735229140800782449233206839548866389001941333039202345447348399512030195038155830816452044318623111271282243904991220217580421774804873286133355145302138089494116092141671931947932068508455597576040624348537923954257247323036650923922685865735153839649329910043267685025404673288851696413659123978155531618119920234210118039012740488657462136276093456833857824662125795841148524268136754537643388531439287555036063634173337594987811815276950117381277265076359350330874772121347995779354780171418724147722783940840541637052837747826849363652691225403714786143244643732122078224133564803789766947528920784554089214791544037476333969960058141049185788223439171493088925384109420784116014911985396109806335598352820457825218442969194816878521406853723103480725811976946954478809572400710388111844558417022788890041603353590898127188898222703757307137587646287673372809783707556277985411105408380208994460240627733868529019127245670443793517044605125113710729698597175602881298069607579523023612358323792604041956683823020466106516374766743148892738211002635782810839263537868219963952108376714432059075164836625575739866475178766726500182553917590443321121362488507381324760176820253186915435109927645558926027801856962359987887148845056208723825207915835343972858156869575224540337153263160909516619400131491207380045121405637439424856391456069502070425839124156797800893524875847474377593572660992460913046307493716077838583879824073127205265659492006041679682711896275749127358278344105367514594699429173264634276980946538769513201651018713744496457638370850159199574455765811036934876302308407637228168482190818731493241318292592144420641192056385862852598968938124032226102590562510408692373374488067127975416433158160179632652899915717870321032945704439397482591754129986501037743859643066850397864635487749150172956882981402406447216137680987982712710403410422299882941622277663872418786897644224639567234130800079900773902001348370324619286385278676775595084692142457140843546303080047997687450713546166457240292490036605914040069771962482932907521011118263392482211605924023736717549004592876661622085495730385759934848279337444755063701803458226480934792900564362169475291061999057050922319885941138904452693918522702930225740795838830763962238292242819843438573810447393698008479776219539280699631895172505760928771996135023539044493929800895618917722007205969981859927448733625178092277884749136399579157247096143368995857733987763632516501055420921079380290865408965375106744833925473270246304916774893231664265672208943198355701987510617989463956360582642620728834290573734328633656869840022434127384737129934045879871759442294925363765660544974172180669029358993232248970646354349334413139838712795624334714697546344855718041323451868288399070630727581100087964802438756949849497118488397091038608000069589465498351274376593172869445495282060135068440897052322677868210870481827384164773396000912261432108544775054600060160969593067994072538932442079876676006388129926415719119638034771166612236707784830843709966399378855327040247395696181995704829338113946166491202165633077727447549744794318573845408439035626157716553627198199213924652513057672269390517596855027483707644995192520118163617564955570554910082445171980648719949827307840666368554830650653373613827042124964716065597520107150837511067923594080856390880020993455512364647644887269972149477297071757355000951783871419306802172894401813775286893208780029568501277147703492510606749265866826940112193497485355569197542678390313554402489531167070439732620341433916865103659741159586450412378128637443561928646269498730854049940544911588665162271058158322717296077089982236430356608760743622673787021259018857400950238864835926824447628278315043356919682149671343347226067576453151306905812799179079822372784344455688820435529537143099036648923570440047047437436066408827336563938605024834513033291500893858348762789711163646491637105210794352314183937906184082183867570011499748668902064445132270538249262427469010646407374733759093061260595849709629490314150441860326851178587090740915225388188686958869085134967600321742711522142739388684127641523017156525269939490335810183731846769163256490895267032963879342675415143669309562743741067645846480034645113486909344595795987021738136007501816200114657815712740627636695151680316822207142340283019187189997949657658609560290946679342888145182242092956065745132498652136230184166886907218185117934848964479466226201393130606415594492216846379132318484435966553960928647884914742701173074281011015424727293317809696092708392681656475220855704092957951460431181932205711682151581680755689494251003902334030795643808748723255287820705883730493762721837708196245220384761193668745514905381473764549870679359511712967195215062172345315427721440772712936316293036490343680068341936288238142377403805579191152313627697369889762035539307625587632512001093313881393940699590317406206193507590236064869750087031018634886115211655400466627130364760433106520488244952330828791796600796561423100904809253355265151472274759403205587911152180627164786859536200593060012967032727035155668831116249188173727776605738307017080772114764569223369334543013217333888964170132024338705408951507744060644225595930442565532443166419554498453819031776325200311424727004840223283933177974836198760667791328779195442175204965070096293202845833533308287462794283252332271261637118182125540933567644374511325356153428062905062926957028578383640274956755421413800106105896739927036171040418595744660967751662695270101540985660021794844392062656899444564638226054257674242467044215060120241976858773072387909682240007486826108779541109836159394709232839942980588026104068098663942928209936792034342950738885815027941492331082959177650037113892605900195587115850932427899431763063039109598100982549730349262816686899487378649915277851747765657819633619127467604732884116890347585516408066389208206496924894620547608223931065992235436122382780277822326326380248702084771926219335600040946377147459096630592367192945452877444697758694034630307880054109967450684775630026006416372024314492061475988229196209947911010875865070435609320449851611091764566554386034782093976578179342176376705295260720726616272658021321918553845871766402135931322830030782407525478898684547402017817718271537867761745942790741822193064689739828496793242240180197570405256010931361509735762257565414027142858733220525167106460291926282708121280123647108689608941638180680678946222035759645184305041906919016335398435073869444550044065678401803764403553822198800695558390855950905925744737599717546823557116864433206780318678281572873244757425544562411612749229546235564534866948610162911298060473782267577673126235303187040106874722287858133464037867121587162916818281711009648660111573619927520442469147122798324163812740877411999673519727822150567986630535410358202174853984480059863174160929905886386981295736750589262106054993556730030895166400099569387221127245401285344417383155063590766573396736209636833263370533625906807901174125236367643014311246169659087731626351367530372696525681649805711626427853548661341542224421170854636817911211808580617183663161477441332819657982287567438413973010556822999384010166917815555803508774922395037861132692887612558491350317433804179555035387762291092805988098772397220782710814989967890032254129721464344850529110557483294067048973268673957364194000655495340940654461320469470310854270871815640726740634438140441533100634456231261935955918227651241429071666799341596535146300743569773076164915009941829284642948205048379888225509146438284769301053806092601454727760800950294473729190891965069381771976142807580112341737791028103166866551196964742434674257177565305140305392095524181658564392127873158995867612671250482625321624946822435261968602303969794291686318452526908854934299758845455863748233189924334329081521892777637206737723035781157696582793199958231954344026523460296993433672421634333807611816174805768588277151676476266692278071640302437483340806483826043318268123918280965612954877623497705592100608326071172997829509040261118338349768934341489013820042496752529719473822579606613562723077428707613389072247741569677077588642447339888242761804461901971433062104226839923660267353578283773444092737055872204662017639847904334990944574627208203435270605243007064624545841986480555989979348500734801827285798245618313620342812963408429588053792116498105570612101363089570777897680510359340873300385897971795782329959162008302070946988536764886707580573631219884070823787483556419222187147149132429089094728159127585149729260900019478882895944142123486163926448162914320283713603087910114375829380349269114133876570060855686716129563041583492352170484286929492492473535956940674134610715328853765540356147360902482467060198148810559735478197717027341033104481319698678689939496431226757962086504682705237824548971481988094295591078266538095853626796288152017983605744006018456391734590593339849365693772572952191514024977423464791814608674745959538126626902233044047462127718044856839353329483143850248278419247146326756982912933961336303041437752309630982119232867322985965414290804086199034912016322219796705542271828242385356047999104838250434259607959887462026098638596945230976008966478296505735220445506399668386385159635415451272292140800371996612920018383566992779723250776132793965708763718527251201043964543661134078582462051062917449630530655179789983434891083932575098812084012180124390758780664015753686606990753147769739255970842401901507416793887747446582662780894531624054690708455949259946424428557073051770412336383160104705329557749641606793167137247001600843387443123180214165779944512956118695054332355609514693607170049076448525854102055219423603517621727499583323658418807917990960956221048649705481150028007752283080733470669905320478164724449008837757269174727062894326369904232368944744057564612271846331134171565721033456905451302036196315063559352546843221299944386034162972244798733438144129020703382733011364721130906476566875953788990328157645097710166719042140677267373064032696690476865952365600454800379332835810340646908743273547536706397982076002820623930756200311965757667231098585292033353522713911282455065120950693636348844968123997567556004201548010830022352000537947621412839318719715754729934161966272085316157861141117332822834150003723327449698878408608146141061968355901513831514586357882629020573828313319889654144045985730251452097548645674066362878557071519066245145086260508424501006779329066388334562143660888039686948783255070266377245509864680750210679326962170881129298588520697780676140812345579747220936719209737433246500350703303730985979400683576787326527593488563075689939560461042462769208406328666366293397723869485492292207970668961728154187668180041246097284090552737105694081820364320426177047693983816098234567088112047928493788294089208877145911518411600000986220716290958719167663269823605899574336102136429849729244318598746172443133605694117802321167734510668171648828807581780506950619825601118501825922365810653529796618882717947174592743964618841793620486828300444632569836516275309236164779222879485765698995636731145471968683933654278841234876872350487191792181980801198204730672573178258918964366578704237521382080214504824889383051997191203076415935208362784480153250935662585678409434785041740332846979362269057598766572788233317610649329051037787016593141855694346339547855853920071191875877155908472825753507814463378637993373967170095281774661867091816396999210863211164367160396712663895102732836922364395009500022093817597935052719097852918239216662660571559131182911963767942018229399498331059759354329439478282264121961493145359659764941855190656710540798546473560642039789427500972687001111057256298426804872316244694662318902498996279523384762893805889135587543909865241256486280189123758808452470118588606742945148202228093062528107371543659378563007056725008631711694073385706946554206188728346494345011662318635918656310610804544005519763748003029927261903502594337363830561545813030927987842642143597716396799728448063851150321585563748670838036886933166808709724082126926710337030504605699723670487568365633067159772716306364148295615175281238054832392191302247138902359562155391660812212183359806959099796717582258149140541057474912323186467848725080387162206272799970610781641365482468426060292915609751894105245698570250929085543338378931677554409310897388171301013412944381315759256037377774456248062548410022757446645026175045397765269703361118996585005591830963575117841067575529919455808587966983122168397913048536154847012771751891644451582222144703500560483865309013737283999441148058401456592146355472747637004682202706020587774920951263176878043268740030299244380155716137258826918233868035464590742391562452923415754760103667114616274836011756582849769588803569532516968298844433366471835228330141129674393783067314788337653529582496231203405563453884588795122327262300203873876070923488257588093716233882046003700121084850832630050473735925406191011862586154738790818463492139133926093000973425942970916498968525347813237100081912303658559022487394437650201405401768052176982119669203669604863352136984201099982603230140197116277718029425418970948985315333713556818958784592497631441392791944675197678133825617001728758580909252234623387189129363042785441124615651647219241244367997422815803194255022346611533647571158945639470916452661023033427121902567944476381671118909970058075950708581467191097141707451505592457302839535431525898503409095195819567162020591692958350354428584620749633190540663213463737261767569258868181385425213892633166461913023368944502574289722396918662261486741894264625738433616061893950478189445383055469156669919507147336959339092350883030905009646550238204108514983999183248427276821421044978513165460610075942321992203612141776602456791566534726373161466205792734082318579125681803110808300455173520513979551733823812376491226557575198593312099642896882802368268297445542784066789641616460630433810003405402987498620324050981782301922997717199326928023360571113732961559946176331359539395617173511463087848540966125769597718570088340711455203414611196188091152729568095814357018380049007712624302396752334966607531469764268479332651392560400190941406497007355067755972581602233156412367496963963215028486564862807605421996707630838430813857743137370589113633741091434482071727016715355145177569102710031206422839136247046654112133952612341645677630097568923916950107491802394352873288661890042037511448918105923928256829641213265445678478894205386109697587483587398492141214450282888974483178628739067761362843755061767015553084158657883002164963461862370247897988213350984520023948495471502217789355579081172385101831892574673877361211607190374073378730447562439431735220506043430467684175279530619542134019274068597319480685760620145965279702971063705983410214578970731494894015204471528846758614015101787738515359842551448418395353002917476680524166591141337121760601811571969828007205380152151928828849716847965467820751605203478163911386757000538442237977505107376716550458924972742209283241146689465792211639515122098262719456318094075167982928255851314293756813732563634503069776381425509298385421007752380527117710889484794870570023101835430757840155496666740119307169883514011773354527237652038757236605515888466727955836413456485417456514103777810112386033934620420490299763641053172443989846653964725671794278485381064985976655024841019969148712696781930507077742456863164542728410964558296678923484206972248603850629016660482973886832194982777362494346070622694592375673324429376016045604377858199646491237075733884117883605379197941097762886527826663709738710573997638453798284764501138687663123336002349560690304386629887864182289089195140486583900453531376944818173067820463043796728033218657658626697949488857415975421614887954567424089871702708867111827919521470107430852264808468897062849545508436783275085209610494909577572383763654511848378915843998599287803718425168913779374153145514029339855218696748107671718697016792397978356389477924508373237760286127712304634948897600223400695784321931238023698820873578520254440021001677162035756719965410829385200195568787037871103682391458362384099493615483536917833903947767773901147336682674965129633120705640397714824949415311048766894007149801411108950897599245007679934033972062584726844436219152540369272042378290009779717609104870320124304144629718318394523038034893701355804563357261798484678522607670604007219708701331008146696913910888557502685892414819059078014833747605868851907387748873863619764028250235834943370709909380533229217883500814113273295400484826713644054586437813930160432392570566055795795192285974500837235598501038493558712529630268493191995043832055745102215764785982651118825736307333859622846617098698295558926190823622815447841989676909763966199937154261444402079849235846227749028401072950621156869576878398031685772143483519659456253057546579094529915810154948665592755125414348188039539604020833969005345566045109594973999389672018502066780524990750969100414194261318402300813963442293730737940462600158858772364891576335630312458054662687209052001788684665701714380749156693857814104825668932733848172028688403827023971222511572756543052603985415070734772549586404018112801467820521650965042057012549095717404229680456570807446965543947056390016663331150779150348655048275474992505551890144870676397620921726657806499920060449338947626157070964773311233166810258893178604746167538816931910652304365616237345912230234996919539525430195356415324325305928340746195321509140284621983395304910439288294968744716857755267584861905521801488726705877514973331672495144718328440173227533061077784849227743947305049906234508490619775095917559838938095415193798759700683576082687292424473931532817111056775946875479456609232873310331495807341148273602595199532515828153347138772657221354782030177176191546780494772610222628229957899459342906995425859171621623388464176033227604115777844926601828588528593314295170848525372770415151166405248435812808164172955582611450309849156642478048468807286164715480477339202404174043734969749310711309229220978508048089879684627330906493627134102675714817402949512134718704614250785921820672860584601817281002788719256632501465728913230590875120990593376901238460594252748810355538237780028093667885829093941551647571132883876344947549022333283490337973060829828992571450973682552845754616198707584295168058081284276210343802885252140496733808347665965082678817028321943447456177925137113978787818322606253712103446782262387992300435936563917825998516782427935243600333016996845405790054584270850174832562110043677123092409509471672830730403541480642620009926731638996826257303901502587930194763944787079899433070318341493205585422727135892532026618040172656015746990872777841339378745315656847206634365674454996005137343509605315382792662859248121089556156655424371049401616322870169186798241859973765178513976953472162679820908642135180977938639988132724938762433962064769643797107131068252325041921281164316602250024545491774175362620825750140699207092711473818679836549198304174486650271076331818564271066227667120641434316026326769988495400268631768842663155951531199298528046322379249826728772184596362197561463857060492820581488781422269163332994717775880668473220976496944853118932327951525326077608457234590602687986861395550321279696622127618596937999608219211278339382355356863901042120367812288815075560228298285708576794791854204162102185572244292249268967001776639357287721189734477032061849107405545305394490568317055384472772019231918034121082434724729280821786943527926567362738986691258899679582103575633286824811148450111777446006336806804825660980006261287908162661893542009547657876968216775267134021506752955362037447672581914910084199769458324497593554660344002424151490755943818343483489627870899274963741207027444388826183325397349349611331793432156995568958975760621591090694112106157768727425776864063212768172944986174230129319373816195031342980814598280955476544670969316871458472644717332533239217954506481263113415948116054012183447783482166881417569389475607760533920289450572371697131790871182080623808972935899410348426226760306802234511359108673425411033739863499412709846688143119515812110881662892273767351641443930002746720349317490764882758827252565668687484771741629555884912646904254346079294848610008470287306426697426395952791043874108281169329807064442403911648406520074003788559040599024449683518994197703293617429785914157112184760702509381981465667944558729103990026942458782363445842452033151129896277395365991091434376701140216500956120030431310030710386643197103249602917372159889725199723902687304250155788193103622932763849211978606667218915298109642589009103302792303209150848225924725559472947983641185342657319608880917416601234322815420329280310647768254213903120771981935465435917620415058935729510633922219169115870279050671431914422575478508693481525567024815958466555747821379388120400849988323541539440028155598162814011506648809014897170212651247858041723210334153440812230273254163863604090862146312005999704256888883290618779774807172069601379343834173157010015856354267655663803417664837525237063221549715758081313375688908036839534577894804890485492999645884399663975141077866971193671791661954721619136577447475516924608362476768380902530780639503193646042303515973111785984158457518765157749958274183348951096489015015578834896459952113472338516129886415931071554716365939514721799767951397308814563593248700007914761922159841841176290849088862057325561814693905986243019620755718418092702840243140046442148204386374645560407564012457090100360240811333816261084617259425050830912314461259985838758675771187650858785599634226605528588242747959615716602306402804987415084230721314352878776764352525979962811754485796897091394740378869533932983032903473163855985652600638560465968848258026908330629254024484278073337098593736114527301339744077042808150795713211057610495966145267552033817071117896891422129761616331412462712401915556031884889525417329671808784428552965166940375847443596775072540956558364006098414674486148885216697486713032872969792052686937553969583105234589943087723216872766287426181509721130931109522351036143068078780672891438758802218837664881464562917621256435955059044660298006460972018210349627120401036532921274213415931831196506119054319858930771315970463773392565729050900210902407520412631467750811984130313424362736615183789449916013951343592084614563949248505220706915108563326130925920840185997730991738038403735346935539775171955100203359591512390114331674687637910249696032237913742028843762124683621614869807864273834969355521833030186561112388834611835611506866758570747842889289249015366162942119231728616645504071471087219202174672668869155334405522756296270701154485893730483091354404549909010145326330191448702190887045785066106561743022431490189325378500253071465345224936203177949666012992940270672080238989373282818205489547145095296102180419710923766476528172464415993451989757532193241711191344613276737623677402476871412886622743167638085940296809540085066063621208646950948428525111438652652717626692904315191155936403751456171243885678878534870762689247712205421396996117291471300035453431253536836245971615789110224603999420910046501336740616969944223899073267266292879261607736878927205985115239800150334786750016063860338777880204037435217996296146731251593655199372079950787540744866689681028860451665406717969905645085661616476837077818642521151810751890514014916380243641841308670828722503636399352250345461094938244890390755246158948592709239573673975014634092392656864540499435788109583294820664112501861292327441148589894698621909977677977936757719243687062036146824498040439605152672350691001409353645181502750133401909651540256332193196158129949313386027585284478072746201107725013863445376733633649506438097693809257973762073459361666451842951097920590181107563406981927650666153886418517413067820284034801435988046402639743327591397063007407100933140941728133381204723875534069789880153554543354068524749308828597873393175978667169246707259533215894014075493650336899276467514458755298124821960711365067883228760663004737019239724232555649056794574740827574370812057196095036150828382779763591152340435929512359175627832067179355335502289489996645593324024021322082995559983989729700982025652623446847911740882842796011075625321997378583158518546139204627634697567802400543299610922489258254806200846374515453085423174580097071433851234486409775525703195674973556216503992088628593051951651404306786334121719285170872866731088093898359794634572080208818279001951240295972948565568067345727431164512589445392691142269814954721368083232833892270395687242734208050664300346916913197190326382282982318397086916291496527823762213083786158870098830297043715355893453768607501059256739553771791129832530182972866367538721296827866029804569735403111842521872429375112574763429991238599511596517391413365100571396896959084365642148104638762634078305485007657020080487303444688378118860940786258623579936420995790538466746733283760334374062409033567490016488023567431061282479828593084079631453222662743574308576156528216252051288083113726192003819078983451634804714734035009416885927330344409588364550139172001993490873805974904616369447382603178078247666585903177483014266133240342286911115318055681311577442307615429237155923049394194441412649848505700539366360532707518667343841463933083768567294201002418425848666676572278382975576298706372336226812788297215159162098986728140881574031611103181829411373308286262498203828706908470800134700829498537883296339661849086943193936765404807557622696389289977723498800397069705420399674355102448916261001216518557228160024649277526328257059415339784301147491579236259195505087474349486362520373066167928713586726767377859067023391507883471601649255787476550825333108056317523304326437113061531275741827811784246112916289532020995353849725126375616174870196919803646348502921066614417666223486079632700670983191371594771796651718834250570120569818397460393338021861485947634361584504727938512639048776785241416657936058884188329161425533849530411795249975331757661196404578741074196914669495887581468617556404006138120114626076419398020247556947433405324267525995543674915672680400589745828507758651716049018303680017796052328532988141987590924253777364675556626168367591944737165845130987487069574024861607897157776452435493709911882045713681797633821361482549988526356406797060590593148212569873936985096600929563567996137238882661484221391604484170337453623991663028405611863674122672492105574821954436623512403460654392571987525949093621123456049997903381922762046127963156332712567753245196857093752616953668780291723504981975763380757362384808371031237465633133595625439782301245336889644738144143945964369222304910141928965881381755606914990782163026606260387740563609888197108004364790459018537377832931813521216131588373585070696721957490995960899608083208176218871430216630701328543596475611569401584542052465634305616021724538515059324818634972969374857757339554925152193573976959944413337195864505421502372798099753481811322970052793119546960544952954453236949766417783589253456062097066935498290264622432366123122307703545993407184874017981319649834030573480632520225029296602407060527480655598489278629371347226938951381056425299014497881920344522309424682866515875779143259393806423506188859341861314257278531759082781159282328438674123567593805661516408672975907717887463651448952803572348202700778166025391499551077734674096885061878226846037039802743158737235102077229672973575374279857300349103719533925135484338983243764559819938905306909591228078675771909135127555774070327521747195957508609614076203789215234929492567713196174290746719076660685490484140295376307766008444919299881858164756560240180138067819031819322608465107590339600017783902407956797998108829322291528437924664944809770293862630011237774325065819876457644610610577742490091782172941041279549295972713041610028100420176620048540934007795896361243110960019732201499666723736645186607308350765666078558097990129829670092358172831456112617017494819340998882991938441492257145316418836617272062604908163333428968559697205052189811744529427896712834661188291557052001257507398988295642409880686028846718568142981854941037427031809778818237934857865738956213374520797270808928396113752276067224081170682834978608363138052149499879077694483381950674049078923075632735028709853305108631532379594898532884969354794867559839895776317001779177269078509028431590739702215823765547239138842527819316211405996668842380321630689006966092891992579064029319136192681327351679094626752083478900177415978547237787870417300237889234988020721472649740308204519496867106410280733571010483013199478056965702507190412222190691232030360570648492051081233555357241532265459847699008433281740370035067151301560352106420211739075844283680532615065737919000033027450755516628996339968626564101071123708188059860431528080420110507141179939502068564049354770898599304721214698477648080943159373006639615132078988800170224421323048121103695495546697237996838519287141285241987606129330214803398729938305723047353849458303990663004885752430886753035984424157308430788350456424781471717340735236630843538985780861624064597273835845942148952273188555389450748798824875231384631335742250027025179193290777884533277801925389368628755639148020245082588576436670513657860006352687491476779096289684256485753439003504425807396516817346447017185500145165497517132587806782649996194468612733761444127114041787174504485575540443814692506460028078850363713000231747145487891702369044869885605325039047441293126762681981250062025825742517777828036731376272567215676670068833318624014101853922356840058967827731400376394713692623113446575851848853015197528434161484380932331261511848576621538846567978247430949859533732710671691056926276860808515028114794554591018200552586290402603534099602348405928826548233942491384212309807626924201018661984895815306963793812691725967547460330711291101630181480381839943831014205335924774910509784447402385473682601376174436745767508318525596240851462307044270909916980881797574898757298519113456564164935351621057464995017682439195889878449736383068840092131109468077073416070049968104709025231141854915968057275870906233596343354542220285501290354669120876741206516283760652333369565657506159239843871624876078592290354578090177783910574282287320518694813651966955947218499585248238631225067121078093894371384200619556647551231786738366607422909874763670775475169615326199476805136017683873457973141170564066974898330146282394215143089382080983550687143238520601877677796167407521207742758289020414142144884624206764841494878734393791401236537368383332325816795789330734940135435293696317469215035134297011624789386305130867918648724999989919336223665408431169793577007387097933866084921862091287826168103628274312166326474889277851032836641975412525860747928808938034508506369622778884816533892014883165930878041391969621946650480394980453580795174560021719462993943751391182089606486492793732984072225604826782393394633235737738859351747214277951012506331497055273120230310204761125449346416575631527511034213004422886396044833434585795078536453620313489264455630944188255637182538073953206685184469717579443953193423081382915873762626842664173187897868796759773693193155105041086175933424185244858074048228962007609324554655779065760569189631522566940112368801513564048670616428880950092877517829569896555479233272785614542837173879917949051880135586805735488992203466760623281567794534026255556768834234656586221104291315777915614417521745637349575461353933398537744226332953043293337722251347452380769833759947511388308971853302502609235503592542528305653840604464237751908110224303915761779054298069623312027246799240612795574173838664216904514675798107995287348405377305104725373058533296310343980434030491128015496133744936619234561542180219550287628101134783479284359286016387927407370845880985262172048126579881309192163694628141150788607257410668922993791130838824618568323447434903651471472274735791759551522211877138128084207052905618816572859358195180605269206275016518270919326672740749470059380497155350754156523203281200670580300258474674071769748350048173462991490879471163549719096717469800657560883864659586634563841851676215672440113120136228525197471765501543370498032528258313963617178081816557921236510180630684421775449239905094215941600860372852237884514376899341567950029685380806151801205328231932767165901397592144569973600303843450537890282585350922892753836272687537371175374188011876922099531336263006833309660990843827575984007173988450087356109401431611652501121484189153469343277932894349389142104324189492887257819327310765560063479156711585202126266321114872526798249209250241659844238455214652860059564385430805827064505166800857321121988409472026178399029292221138184129624857849958575659501846973402229388110891787546495323618931086974121234726767710763695498940784373346614450527407851863221655878580371777959664659366123551677860634997157094283852479449867111705701232340170709692579938536624591442956138291192334239786098943037299472742541539665928684783251974861908477491651743152362563683401034985018199442133657266725425188876015265028119384941763617284384359010331412817653395826436223218073991115077278062206361608603855676882020917512126734073729974612069690122657863514900444846391726860471016769109659549053556514320262356970934217041177965143372034769342366340040656701943167053580033702777438200122977503236524755374756444471955246826336714095879139791000476356411895792699397050652518403040922208136013495693285136494801619191413602376302311708918728483761753970516424071710624165063508677802966597891745801807974679121205925473019544252148427729086729713847972964890522846087482511554443141918434638982771984808659410937803814751507139649080758211737777221111368253014508177184218616143523052602589826819790359323271076492347751575113775836349200604805524892925688446727342177357567666603741129152132578720609600935279879241338421683574588137604501106667348142416807497523121218345638886806205509571137504569897563221876351293803971346364352061009657822247505124149738687223286932883243158562821908436113593743656607979892899640305886222052482305188891716729361346688865772610933828420290221957448858692213079469810127029925963205774279913698582858919408916673992296312962128462401698683588685956383139625621759405254309637472889342488147600145676639776843561588890382264497054856585629564856342818752097992938903709909480542565903936494185081443829868734973643425041760028775703773465108918849564629352705152413249224245819441591403695630624521094122417372719553647785524906787693320006076745368944270804381364586215181176544840949659111454288937146110915304777716048501775284251920745380262604718992797763774384239579822161243519801126279764825289965385661486381694761994110613136351015131869211928696672309647384971838147508837752405858415158821592164218058464032640375445195673536895453623059840170753275714688973386465649899001644919488830889888231802220513814357690032263106383713908496162862381966559190432028112331806819507203587978432041188236219303303665891932296319472096088384612555810475861793187271322365983819719829137484021955416874261220032257166569681452792650129798070517061027516391719291739404199237097716859391122323342585036836597532707590864644018108906744796024834330646207294608049807388147050015508644357892217829437425342852859377037485884928702777658190676943138606375206687929290239657855638127591711471744864878017378254994595787298724661307388660294056194953579110929910221336558789806606365369668664188170814763204056004378097879295726680204250563090479285691540632751044447592933951508664940303208854903070999111404032949016541277056869296562201447052976940691706006237058941949018650337017186731207687469837758673188513910875099381050031575291820139462497814604649374167709380515247684500355457306831175843349609845318005913478534767184624916486662959920652812106601927083292311036604887528740916418823642749722873814912288868176334517453676893545657986630673227211035288782848150905493328935499449314722666590793005308623865783980038982115704233565479990764669522652513573837620292873250617331540546629493120196494298291951390419164863989273584764241468215643361636684039338927623708183262728896386845636862958855044281347402515099661003037165839589900861430512598874528136812915090950705534436097340221643004630025129993717939834251629023212312153782021830924524683262874857967887729050263772369208254191573850583830354590551121610003121656044892643946100018195344774406930563021240778883722885015053279033163474788451822162912744563439003487069810213677574782970810718697029496715840572241165297819461933716724556426717509429877599666326964566078341615854232128865815946832846045035714928293710569472573551854241394038636682474082718960271693793585328659308881628568547595695658895798545704692873205635730338754250684635362326800184775132127000497184813135256236693034849697432643888791858785472675609897388478259661551330237600682788377066237141520509403025415063472416025816378628924981885883981404409286222936870306331819710841119364974401288209149143227741435782968032964290198577954094822653090682582319213423456690354230427990567801810848978826656865608236033098373452137391010540774584264113809612617137295837284322187187364239346489282963690409700728140526895651886470302783210722591102677413289255995278784873065985317675889628712010935640677668453842201356589864933878694962351084051949354227554972211544979724668840021461691356710348008639021514026044631846620196882126200453117376566091150250068502796194594172691245284989269930248836766627844603032503698706599746545130648167628657276232835414595168869613373212312270066676235786062546881016391034392575266109394393727172752709508526090170191363131072841225716886335532741417461308431875750553491568608419791410837140855573308960444073596424510956742982699084723433072182627306914980702630719303606168800071402287522766273655408466122039289345249347873582457891508161373262945395245805363432956135121980942549414109207971451433851228899036631848101603656973546007191671487341043369469414540608538036890568717170678036112569455768420856691740210373052957050106275174664177185457991676358015330085895268754583086681394152722036621615163549305885472548659026452700569011804254838531345201162260906622324181340064466203602893374872985411154532773110828784893640491838280899652741433865620689385181354837082040648625622482409307139552906230695159123553463566336752118507229271173717946850061761723260875279088687387730079566684429734721855937490349527400117780729478550116685311106378848471838619105194371006356167057345430164291086790087086012259767608610149567354704551618915893729674416772268616335216995226530794724518526944988521464836699361792649329656905297123375791357951872584012685677570483882398372063694589506670039109987686554762151546504947932096498793600327751216600778012553919877706039560823962963173118132254337033562264512330241542672487107298118625657141329417551139018923067462477194501308232920842977561174745609276546416622175081841208947701027155418757502197000664969899868265283570496616879213285086757239866978739624186442908578715615497434063487618074317142357881869347284209117976790170291974221897536318897134841901691699207112112933049371997848863957448787866886658028516859784878622235599600920250898314446197042456950870119428150782592857658660912913840412434715653641732497148592397969308058965430368146159043097108874192259698007183699425809967367840496868260587696082076125755900465136648814039957561634208356585701805782663426433527484178720277788563246788004325354372474959962734076327057840196333320760684510824397332877442583492024629906137982327583540041066102847853571177668655840711356671572025774527670914063176957081060557927963619425946749579133292009283550033100064961860137894709845653434360012701506628669323925192077853381232916573649156913829863805895539232767720780477986523465236265244238445553050328588205164733104376316805840557183955977247070830165404774191917259420993996763973216499939079093572688873215573490781474594487547412717636577536053456495006187667800633169337517008245385652801645540464586219946912483157067200087532701261529076276234133978892168209324898415788138573193894712640856255271695415161110771229504364944444950802753567971179350785962354152799194509511838827949114304868348793292643983613145679793843694363278180896099410129491371617058212417819489217413352171504077258297442214709657642598076983648751995438993867558385558537106762762606186168674897460107574143291326481868795401161955837366730905994033537997900088951299901034322490496513786044946571045643804102838556521691705403296628135429561416917685805411179826077327864357654898027853085491030673986918191110354155967262340569071296660928052988127115609081489729102343390376345290921570854033560842074716438020010899123500717938416039305376119098560542524807303764822473839102799908268289829513359578907427272707014171598404724872387585527174978222717359678347340761581798765692051109633351729184485360995894366913506385179562875895148441360418985168710260144639564078297827885110249433974403287312382495082645693756421554042431258272556245684741643761432312148865936524649934217488936065259658815251199604020274656793875566985446149263694695212999952971023755394129919873443907361517952674967630197597854583311703519649894995765882878881755818427190115064164460796319742406750420888761468783239293992573023906043383213760110606662586108309615795977468777242067347519110391470558680145246112942170790887546849750360719749074326257121399034825501054236986909030922137217034592326004384979322576537623061092925040426940863598684253501418214537540850440872557337272395377901100494275637606145631795854046876505398135543629132162149307056793116027300867152280254305780766509862184003043257173981262260404226166823764806599915119432700234985247950575276881978562366138310924911544881173101909987303221186076085688911048083100968413740896546170647864642714945957402301328628103721250143604607731950571620224447474250557645765311870331930452368412592443508955003092022704263025428119884042045838916121178642494670645986181150468507161880502643749571243320985271320464260615296983146392699352552748983123867177109314929261129252417125424228032403662890594341940048381572072296273083320181806882816081131646430676113858496498008796999346624212376467642132227618147479745845318466859667896394284034156165206111149444766297024350619886965141350429345113153006962292123843394978703162151534091287857348661034673237142530052671968929264563042300414823271735733004022777609023379844374326081703928050948095938535095678352572711818768532617298311756843848522973306018839301992817897040074449486520345896752871541934339230804880755181435737906043718931922866175438116146864987257694047474487115675523952636686180103484731578986832761908636660534369134235364755436428990601819548903890880446835683407389339134206678247066719609710786631050114358262947405661886456353406803790599952730590994752649966574040557465730747559842594768257104791740464500128633285565043036716424765286475462895713651495779390971898846727897473574782224835599692625448046583820056337575522582268698839486869801011966681711663638618476402299912688352367170700849790034221482691754778941838145381787600304414173610733481118224498666378915031638868184528977251965227510728680515520118607726829654288833954596621250903910970933685783505937876608880692529977022022036001805987084744364400714627363530318926844884057109746825933135127971895669978892538951612731927505921777907692052504999986296543035227331418798676326340542788159786347779235962740122309080076078069201350525788436240530013843237337821144303077093556712404347730221663992100194370714730784216366407093233176385693691937268783353004361473490340921099331746253389152449460859939331375007613827214829582937739260613930931326694105698047815175573303014752020900576237703195055793285249633632637305753548481487299670770816449321287197947210875868882669249281221099022447297613387768325718134321628133115499979943189026710731809979399408342192344636965261791373635699914271892952655269944035447664182144019710358465073040790218121521002150321519975272893101456987232708546472526339418987733433831615467125632278215782786818123683125883564071559488993508484233156586494797219074133200654257455105976333388830100411277134876478477124766740445678541299544472682671499934701039657721591418637982299239152967983222736756411812568653447392216565455540925289710223910650495919348983051300238511171494955405064460091899133526063814363179388307110090134943828318131841034266096622313833010136669939817995245056618885407463977267203133647645907841131435239638297681152051248109641100087389838202030371464656839015658307878652281574985678943552730379103807567454514250251150991463206875861917980232848287596761140823729498715228491895671500864706169354168213633071621636994877930427273593609611277563493173652734637452454582652820474487078512610214857633417906612029235646674870504565899395221800396591437774297820478850007318140019189103089288997086514118013256892537327151070101681848688494988775045114069008974927592792472617982180417323844958212303293189602743561854271921865240111015607330537686452211719578532733718058007794198359694238113871606201050051843230666334463352664307361299550488532037780853294483597301727210041463105862792611759692679810062023773762149524308707107810077220459565511401659253405146560979672538411303836337368132331621960712382146490138993015255596648813546832586410195601307494499140684407031559578151444870061691214895520426119870343823522015762813701069205623050256758532979207548166306106198150673420587222286355483390306013987707900074188165658230114715876581575204723420158582921473321824549738550389787923792315579733276409767301127980875347389318453452151426356702667484476853804500507762354215653214763443283451622831878200422899968361531051024509879615697319575209046155294106539410606981082912216885403274610473060585700020903321417551952586233125305492972426990711925342472109171572923745409986058568464527242834541399117322188622313300265599800385538784144546006887851191236910306254968559207858261865116091481536856151589216154591557981783208538809107105678319217985318895835829892854888573339181609064514044946206262479047562789668702505190901804116934029764639310843516720984943895796194691022509527378401922996935995121364731629255368693855693306004788137001167930672246535526350709188290344603325476815998874013550328207359026420184463450477172230087770732553478809963694373964706290961173834013273549995486301664593617013919820884366442243289946517174316800162689205387220269893755290356731613135332559981925639338134301361684864016939215479779097196513462800023219513161267360930389494685571532632303011721981480117112382440188619689911451877135601863689403197050663126146882101176151861704662327071214846569912641897126333754324382616607960577630952182958700634345329219878235451666065334555612957601416451729064749330253772346238692138395385821560383694256651018897692013837181888738887122446360923057689266144648284944813521606221649140241943324811555429496426955968600276946064001555485407741201731874692614630605314613125296130790895564262369245528242895399111428107800990439097775434259372699637358976319038771869107684394243016382025266741120649705109856232955072410828680416690326664030783081874927245545194513145489834634972769248689533370239815958193776144785343134077326668648930272830439193334023634966528577616415938701002151402841432341521032279315416957580198338737759797331785824089775114275295776160807239855911594726752246043225617765362839519876802921928896985835086285568811481556968035754917311912778449332405536959626364834945497842540913314394031700286385830287883049376544912296426332326908857951364438640002111688494409312160604840897606281467765288991883730939452438501800184274908664857437041417666494051011250748461147632246536972681090696755919352259759832624105472408953414650549988049857988051260675463738802616166126022629026557639341044639069890323578617835600682231631187665892597099677971333667049208649179417583323009331550192975003421650094583736265676602143133114455162558593327542401917692539087587419237751581953972201568679738334688749961223407474489140182411435327421571321025729416216067344194178828325656952181061516462898377264586907401732394056900068724251078721608026742655326973452260550752662031797791797819223703600965249570941921973775869020878112840868915970496035554293178834036352595795064624055186275584788913002001576775004613615944316973510697859251980786958865683800735541508300842753674675824211364892786118992641582817138451659304991750635334423780364878850490453427713959304947587828634932082241207323885955192841844712481671331511272252119220037528122409889605112528390823378288151443016018676431899705416947111109590407782759736100605708970598370219560220811199399712590498748291470927088552022228380591010552992965324846213121464451777250146733755859694481286662392292431641365118880605747980482352523196258725597406146532482399970373690341180110673132259791730156228013446984027252249255299207087111861928813907796965382524346032274207949615186951656863184642786394430055479751690156390213555869148254067747020243429423694936249294638539690106494918540846070614449936617558389702562454145879906273466887403080203115735221370586208524812592206474489310758658655958559241248221348086975556602149049736169456643873286520211885423976642096685474310945856687701285574663248626811213738091461807490527463674159358042620888812360230803618165529607721581273674203245479905071026247388234169273661309446196543002167374075830702978572398920535141866494035564089907598241307603644177724209473676501381591271787978054311866962438931665667518283956413626717795436787584861039086087244042279865493820350682544295338967179044983147444867348706165320287033793198970949973574789118623263137405978095502368871429826115092160495372529824123833715484469092285090235885012023675265664910238011190994373955291195651115228451600997072371426059242830723362048659557167729186071675838204138797515172006088407863986492298797994796124879784121559058158007450012676134456780580098700767385413192774754598609774553208158755856182061290438935344192580559006661262352331168478779556882730083974968937363360773424396143847910690129827797065600695377888973473770892895848324150081236634296151706513426068252016993908789138360725515418120481662628696352624003771549310836271836511627069927102930618420039220564062608817194948041548987019642653376615110895958158894062334685236758052292440036434215776211080755499563560117956133188740939859795375224892784755526793695849584283550988109956202518590967556840274033710505393257272731982417243994410664976089325749850560179763745277272177236769556396563841050010711855966321362429374743412236759318541972606692448592190047743855612248559832821943924788737753562239835408547100298509492752517880274051298815724200476218670372405244559643421048622751957544908908616857065966751350484825696128718161717723684116539377418171229526191286962605002492894249410248211544667867093310713976205474710740153433304684699796671231429331357331977524421470239795563019035630637340161266222036443919719650172289411982695789546609681724545933954069329401516566429067634265210974744624936929497716125911454039471071576564533620842528599720826455130678079249313690549102402228806896623250632285738604366970200146016119044473036091357048075365108843026606726153405724218801620097218474877762433197276309319589738959282701451376671293527636684752900726711799725234781077074377949746836542080986652347688606619652481335636317242414916030920796258343320936977522536625539635385311830455682473360419056222085990281055510735363352808820149516102048975157376151748649459424823939129214090373317072821489828231479347152242843660180317644725952542441514601952579423722643217548361714030198298649453799991980027304515379625266705898811869216947567957020121474543820848493763513874864283604147007294677188119952019881038344259715856379447895422507963146512249178911930070608883242396287678256150179119758178777685586320262305306341436562988490882046419101124243274662765916524919921301724190016628820778577769742034820099936431006027274585527912426201732921169591045040575055206328011451456335490891137614199616729545181651393214631423800157004192769683384880764848611567972686125871125667475545203233082868888840326729311734747876874044263230126789327983216697236423692084542333136059564153787852906670931858951436648597316142696859327325093511086041259013474631173509372740271910360624427952511561919363512463609723893421188305198953963353648342630759910729690927264052373375250215001241215297333249169127013644307472376974020153550889766893995025342091159950488589313569352566833286246694520424399492035302307256340100091229847976116413114692444557054696761593127039962583026613975111635828281058777454012899400153328378119701501125748587638806362099076049558560802348232145647508794195973139739030482274996764812104335133086654927802591909340794300317623816793980623305798639979841112589370955447534941237208765044953510413998528718455866748304057473218270741881558110862037625146247102708779253652243051870679600808928023048788834779462754194638503961143106585754878490867367830708569711269275103996391333759360072326505572102243511920587631582073963212240529552865830831870413584312115860594756605738147214443249833045415809337621456750862332141428510032507892891871698857920575030891952542024155461268950150742162705041425236105460171518267060608256908571337127324777701978173508909356726035606506509144706538537055750450617360723323406284868823954396251718588081218264211562612882885281941724795204390885445248510981678318112180277106363615412856372853168355679327701448730772069805961756302804023290648730107344183230681681849174277460663552892244173391022904134321086327672428543821090484967285570939114966470288545910020345472259743851083872166879792833236890538946696138369831960802118197788231344219989758437387468452373515399947721425681635514665920571916409670532328869117023425269795119198322212045944530278420656865668065395999736340501706890008831349809730997095802743879655774638970630802347433538743604220218955419581522591438778012207624618223624194961694408068977487801865005063860365945046781930366583038994513040470722499064888256029941379598811525866217987112669496453192022223655460686948414674084491429974812878774496006624941849115668788599674144886445350625583501057476676322884910612260521688374071286368798853324789251347629620136326079147414999913323140370310937567189609164162538887577311681930240729346895381589949217654489455913741961139226484873325975978851845035297737696922042505809931306298204917446381939144547950158889224740207720626129112206789855804279165135892721033944711595231676772817689898619344860082134132197765891543978236890725508380192713846788095727995925582880158542814620290664451000409389530828413475077585627730652240606686907362215263572196859816316450471932721582858978886390877039106459262462195471144130844324637616717112127540530870509551629936615037774348615974450071295178560966259264598927369054725913446775990194948328738132935333275664907624744653074493418561772372987108725066669998117645986227684977331662112837303579414640744257146519341484784077958530511003228910909617950642143377908037638094490922307386630125178415183560609846539591582992133345790627894764041585165944859005447096347037034416568280555810578685007250255829174252726757793273882893691047994144097930869032863949154913601299189687790375185519926074842588757116398379151658955177223875827314825033132586011720808398401794680337874029728879504017350375130445395888887429696671057587843571758108757824942015047422940880055270924293452191118726186535878633184888417170012507089918901466277205765636852935631649926391535035682098078606575879111916773661299267868945881312196305010768763132937078490591639401644473265225085854807905723650800421308863615184369981820259645800690975829129865438521984481366867265870807723415143988373795846806423281772970280568868353847085533534808615731957542141045995892413009134734007664530460736401110793208243101796423159081844757603120149287406225038648559343864639634951258570186619565490231948195169612425564873041928744106924882163631904577787885261400168539659030707745754396850235129019626651010698778700378718105585759008816937399552863500686848748290899582487341026532692666747968743142320202395638536819417969741526256004894660759766593565467349941114405187191955703266279824160451627335601391079763863696173011569897675089548804154143498237980568982473132019367364153331241563554258390481546508530830397912897200607612580657988602149206778536761671799256444753819535892292344625028426816958304773118812194449309498343793593858151543530490775796616924522662787214193340991118292716287812576382929641021013361773542743083695178533982661812729631448533825664967691430112688707902705876164034830907481643067583014956006140834135444439937851191097948273541702408663154549665616641280000553554929319266632628862397681732935338871819167650807079133056150121822992201493236071115645986047090519301254473051662896194132351724564646093143447809123745742108874344263714932292659641398226498632067529414028499546745023786042835122667900558256232494151963657060899392391496638063942549306513816459643558550975500010656111404752580186774661109706343309757394280352320938966302631064019118557154353326475518045072050540205859286200113103879278538505941779554492336887353641677718045765818491322152046395842113680714570854680254177637692151107661777941849590336742881785389028750395106986160505667303286072145792820132680117565770011722518324855664792084311783816941770041656447080975846051906474855540575937817223149315086555094679165218227258259653785953216007963187319629092279407327267815541783306497960271996855208358959750476659835784707580304206137990399619987454308755925524626652644567121038341795181935068542222831439069220265537192260166434051730753836765357911368573771864445811292200942369186538604145009482890150977708809708271733501532068824124943865870408034228157715630167432419918560133446246721806026446151165523229437284533748220803898093493104546273749556565194433162081611923400653473371434949088107283489200896756669305657772842514671358229551961718212788236371143097010347624923628427286556560207621363924944011406387935630577541097625090312936002696887719632902639618601513293779588795999229401073350127221075177288607465236726985490263993227057833861475484854636311353905143676678656772725709979091462515001531038438410803349646322508060809307252128257252367641159001604053615690560455730532219563623295838011602927325934153124995952406587234061177001611778214781884574814270577289441292550245219997760473940718502055688118047441112253522142363003586641652720698586273278599350629132162315561928286808455450997634868842774403479595040251586133224058810514804882475415698190458230612407523342425687635467404389809154170137890433909372399995369978823405495775094847282158992580239278420590384390105753980469070149584938240587445095006436807327511702694163527405990585754820247960362355449565442501137736892429237223083417616360417833397600444923332979074984554754205301524985995094817528724216137008152627402105490217846343647480391204848937861976786709681833396968304457428873383567255800163520384062300091110801655111397105860581985803938413423485259999586068677954023175319239453157753619305153586837962617487108944279514915048545141222786648624196092302709599831167615860563112944629838800471169871879768576511949504174815690369058867594124323926935362470616594893324880601599177120798887884488689347508999876479123668229497756951823347319618234076952781309849265322021963311626871501903575285957292714797093402628235063213997525022135889944385542773495250200635364575230915866261847114461865150500259673043163711680831265854786264172179036578026136546678798292000533541525278544926003316213619685106679057005229801050542154811412922400918869783069736062026039667714555437683497568474656806593231371976961108986064135317464833859547755338462309880216951701973508794735856674272287646585270559210426702967985971357899425485273292469767513121617960053336187771666092700961616956940730320685130677425678809961512396068622660500518721108548709595173560737401894834660526736960723192688545909508679107625111395241467303050981623474907334668830496066513472274722410845701207350580567259918070725510006143340811750586003862032648163465920706963409479905979007597225705366073924783010289968200429857635828655835404331632256540573892504881453796245223421695111534925642641999941894153381371474626428900983836455814670943007440591125714132921294809576917504780943014687677675695952704900574165646393878863963444381254791321409706291944532533700028825831597093607494087529388877810233599560078910049549686766112762138197280179736692923536505101885486414009271205641919571541009489596955854928750995607757068598699328162661606576969384461773167340227369856451682415031830583869797658954654649881841993860518826488476504989535014621021047738989399090028249823748759361144473656735897260292848885527329411809797830748907984063135032312539239650050964166236080631121946909648069084980999404156769069195371405366868381712759822738021687421639701207128028376573347141977950572033041618007935144132330900332802477078742138214917821250761484674647697183358572639388099215970796072969922977337196688552528403524186554478795486444795490506386884234304655580611433247930757913447718163717566443742481891181271152942634342824631956550681335521669034061083161194583000996333155549370548573941323002228805660617238459704802374649245020685120977865045441504252260461648811259746422306527722238051655426917673365617423411496892757830341562620787414385179632901135513895097413473214831586138307720817860310888129658941327021323866222643958192423568561012680691068993018682795308793263123608343579716733305672196580910844781826975301914082451273016285457813856701577098396176001023216971662726841303190996613821036841266238355779514644135872420013189568742435166001208797326122094053847578564666747809737090503599068270657672026011830857576582103536231351165007956947532461633351560622323250408859800484235257721033833782061273576709920932193458510451576931935542645242653494535978200344619458503815873862831853785181771125076063386500752675371387861722137705460382471015052662149606267726615978006477419228537794931533467638244844675833137329942675105374034456214604154426180931909154164082502961618301334238798249186106148648873018314078178875672862485715342110403569359448624762094964308522194391725323728560929302142518367946141590127485828466136986237492611995168002049082315910778285042851323476082900514142150106528925216485875100765788639235708715509520988615130154318931802861610809638143559092758252838101715589730374030210223416976649602091041209775192746839957426962809757299565823830951113445879017533042529327145748034468775281022771822646943340327652920950734769338385541866045695834124301187968996988513789721769143731422371120460450658401212648108700242596890168943065363857982353338924115185936797389826586397924943593406710241036977159414879113326626244815965314367373307525843850502868982357809703133242792273676646750581267245741125233242255378179113976267028199256485574367215537849269989079762178546716956388333752957982585367287044657898392930519764009494288245752762701295589672368609498610237773310748524521238439349853039678385104863662582908943763420887919758680132111405494914075676179288735248759954834690816573541520600578925833967099548064258332614674593432800179730933619953094716723827158364545576302950862947914869608023294612406549150052403128474273405348309442800781256148105933726278513484885201638811489150057836685315748090705647572237809683374337670307106038102722957881886089006225396125088043356106951042493739532258931651902779185409694913874557023543633899294887721486951842354400991571145981881807226635014209618460353678964391332379343627882475359368132458222905029674728860837953712672745765549624403260275218284251704173110064374342088611110052360698818787079686561500414683743267095650824252934597288447207643830285476429269037993678173595391343184689107462825498201022274488533755187008797912939626199755331153522490151087667027925656927727472992991158128432673613697883176629485351077645601029925779637172050567436981063517336835810045391981609731767037704447142435942426860603476131838709584817372234504814229512875152341221894144553125491510785914252969384073744757201821818266448812716045361753060980143585751875730239810854000430663349423374793595607913054801127097958050493211868020727170052840687317350522932871627581780780036085084339966112525377856111008144651235067070203578289923177440163392510501378212030040238398745211296426945777546409973011744553538533179932279540091186631088155611640596083170806342483636626146022008876837428106421684030605486864190171682135640666714096594305178039001566706161602097633392934188891824852908808924323196002344133917790304858201262597209907634498235573248189902782303015163708623534271654758686012699013566944476583677010730291786399187411883119451347367504169762275165578349437494299449467611002730132501600318122178350846389364293359315603403690244003017681089757704790878790098747481833578057411634526679520293169364407675720292614363614218009750122391965694891529128788391014013072796162196082546209584408513165761822021346781897479559432203522694821890485432278782503288934373026679247072028234638767616884219134394280687516581183317411298953671124288429232680839833272086945735207906198271760454383052141386302922794626978845491822232616196810174863660172964450953919527974774645878594594645614934618379325120350141773991634852714312187127975118270555628638551587396920185937031636012943953792218574308931582880114261785676663772328897367319583635228720221706247290399218033632930417115128017014755017449763741508275297852061144715674071539334562889960864357732014930262566823268859596576935717339123442510221438805833096500928311193924298105098972332624748558264817747773965497930577326167876330958885353886643063122091980071227753007618418314725712287073792762660777655700775043118229271141567749977610544090533505498853703576035153821403870070736515158404259984326089900615139629464475942205826138723029001344385246599063657715751647369488012362297868837027063541353013389569004341579464010674744965350720351591652946574780823162532534992144998313835330228759656386775286054020691076994881056284199602728062814326192891644888144119959485410057310161343025429657660036718671527765281460085411584104391526124781427575203234829589461047204452356840897383228633015209244964176001428902105051338033432966880849140275993073769926995400988749374178005600582578469369759639013192033508049412768208156711668490221797805963950435643468243025814619938564858389997684632740981756241344567382257261970865120724341644941848237381040758683358097233998640464096229992771809101945248577172652946049247881467407727179305435543627588550625426529622493056746573601383658079629864981918355706821968131104783907715005852141789865794737808735307106283305417155501438206136262692248961795404496707192919076425832327984578414113523696878531386048521305810488392461447849639998993211572358116825536593769294602531437000986317944090156784649494681363075650548921225830039153783375680364774074089012919457135063232567194172929819260851800201701859748961038611829021002224023010293857928586258597857382859512502889794445006267221876559505922619836085219384985107428576128267312384870703930798247731140437042645649800067649007324492142913911502848528056769301421547556984077315541842819040162946641318074547383718454670092121946149297215599474732545986762263982449891386240893429625604858047655977624213433828151266755408136673510007169069558430702102151208169152720054675701308673417903167778941591980412142462512542105176224685434563403750634069531142054396506494944630470975181573702137420715752056509450368167507212944356453286340720563596571354820047217712909820809899979560854606149797378298330033496261777977375789538180771177478903184475058098994900649992140657694354855613338262808342773066400047913847389499350998776882232734353693126343669733491959235833806843755326564981130504716138439133645262285545912825431342014550794422407070543386387659810613398280128519634244816541541086023112019621472375549706918633198483925259104830875586517154407602816848160887105274198904551925766869020695986422499017316923543206236232619847838615682580717682401720071066497334902789047723051356494198803228096814989947036371886406511498734476329960215241792911939641441349344869920283883271845682026703050649427558151274096462948554700092027645980715259170041092707525419076571362751346315492221737518676766791782079743466062405525662450034201997770012676685438713935939404903843138441627313639351898505434261363199640980115537820683782486723880354805579908490803923136044858671797498036577140897925769712900857362273218131106743379224418351464140942110638633058737616691429623480445690166425445576787809139010478968206503673094403726336901129112920838438290304607820379946691333690427887367207042618433340584814495619341159133687510736723644485559217753467055077451322433703855445611816508145712467596428150585338855887318964930635537087637554420509281317780057462275388358456193398044323162932155501853336056062412751525018316967932810964966440842450418182141241888265655635307171783250587992686107231830785539711214339601263801185724752083100463483278348031745129198095382641156154910148786305121808065776453785686470105663502450523771081785494113282147036957545913808089726970063284710469156587349824256882529055397063329778172042405755624114436927283029941651875759467444492314727213765967392902824635317935664226835971630055770836798575374473937775705755579389642022513941226293191491718762469845511652620550872845360837504717749596164687283561991231338365722952196077411176070004321871174406815964800839407996258025466855380174058972203866821847116814533658404377328959783563372191995844329799781003883128474745210918467230970681829627007281553635857535736952985004881186875421153818471451729245750371246745856682066855550646136547793983159475067024160461688458737037555212092132163982237574283089993396513438888408370993475685581116765479299159199082680315624932967869741078252878170727747591998072477817876762505639231023865095723569783296734906093913080216116511025499794376491495639125433670680348566592531536052108421735732194257616610326553282002183100179726748609424587739390057124499161530965560057547668002276413491665380569966331289186507052141218436275552371174129535693199686230169569392427456123448427889805325305844796382275181980755526966482798478735670392716412268786713410846502453469436528762795552331354472671902776104501550775373465953078208278768805899548025967351008910111298454876352166520469045517197204605059835868983513743524517366265631520996971809471215166320371286913214105231434851238136273115681796975436178813075964488002572629407102665449202230178194310629728217157307615122339900654947644768586076915829385119882462131992057223799485052942127998363092437642065116628368275156559133463395433681936679850856949505511031083387421844446089598081517779335668335260636550443086071360784777719118295622991077732767138758178977422192020973509351920343086836638405149638140286051121096049827526603519684066194575364512447892383899804585077970772087199373999523135405250999367947933461968027610600597843088880612364486034459474090414684962552192032602415564643730477874759855967992666414775102651891838779122354624480063442312833802491025851684618745545623482558788866645895976722372577947051173041717962271035117889033868675199658997964877225481899616989615690892648167570930139361883601578110943975392304350602778195687551701641774159278154867855338484547203974918569839117314960751291621334194261228083993169258693365727270852949733455366682672752603570691650424130169226893798779710775836856315612311407121460709066772541456727017868642716309535597915641288711804099348709820422890578145074811535027759647034683106973113363236113336802013852021802666755260421755411155165530351853637227078516302644414463978502351697330380826147494017732385948493085092372903956146000296442633088929695730983020262142788339144893042654865743844590455816980025699263937673308704491365107897943238257267032685270464866595162116314382626719554525525900442570292148699186559994170380920133186845495591789786594474168005121917409860192044715142975241501605331499458631033394503785997628356202228716370403942202980254701680852571144435389241961316113261891105567375460350051190399466282795567750989011652770349384930253007281500670667954568567877714470296590065377185487675068904567206966847937928012283224258551616234670222595180323849312463775804483626059905534498721067063651574038093586953244754943541276132402520436316346651471937243518214293118421834030907285902701316357053654568520725599011083734239345941947460506554755809515918146793873682170214266891418331068132849312412936914225577724114030322866055723539322746049623333937933039886961127033753608690894230393062939583922628510145211928441043544323908792209463875020079239749428606544652284787733826709677402581832996829039296095174412251143109881354025872628050689860905122922711305845629008703340056500482303370134613130136873066692255380258776914244145519584894455707700450918163096285619015086225732890235625662069855318498172684198073431890824154456371226501928627254852432996808157962776678123462549359585513578557814732477570298411886080062271240802619963986715821690222225322116868625411475699418159749039084112846697793840717170890816385200308883400033226781257462603846745980251956796316932898174830238409800415249727704510853969115430528757584996807556867871345091584101467230602681790002039142282498674355431290183053734550140497684577980722654455594815130373197496586672637133192208484779623997750601673496242786120596062142927308298122975298288058910440809818539394461310556282392543448991394577166418511848059198578641728973322494703739502595089672835300352906239619127025966788148061839301879699617325111381544236508094847655865214028340811052072143430932844022083211901973116784688942746239865130015240490662070068717132357093924216394403961573004123566989302788552285544362379002475518456311711890165655825963097472640744973295446155762259827120646431388351233585835806767999392466078246335163435417954212228227620919463636438175513788434799780299787501536204857164397851035920474686649441768346921746023944930341258452205269919643600971238526565473703336791165780109657381770752067383460243725231936491722945443537455283646845198502968420353536945439954804784699067155374164275753115677535221610278093234001235001931131743341452634541577517973131554261910519942708973386807129745513031250056470505493426058414464763717047435965946283992906418002480622359967871292529608588609490176782975678910621935214246362761906056556406969678663036803158148339581190933939585359905001598512970695594463435842887972951320858487010359413752666703351889788755081399786161798178604314007759212041886381187303587975190079189836635467639703011541627946849105009542711144097086023793135395809953568744652843676497914290506885723234983016590785593468731177656317402251649791247097875818624362238157848575426354419696103017746362150715885273541727762904741279751776467967119320345037626374554175529748346365785215830448762988798391598812716458009878305993729779473591993538201899525689461004046760008972266072408455181923867317894820406600439696658605801215859727624729495084225139644061407262749119518774380792352549597260495160765454409901801123491094981149888669132039766669792601405823958929180806507082069337118860803846377316686046539887387454349328437079002395677534634325343755761031823943272068586988770607280991357669945046787588935246771229011917312434214548414114368555000063398963584577572204527268791782961426962375129633209102340946771216256709882632720464069038554104945110874533711094463917369887167260938282544326184279026233361592240867051368966406807867235447985532505410271406221138380803906928022310339915409735280624882120096857668894333720963767586971224162501555894911449360861099718612082543286628537990388986678262264288042503604559167709331104503893905574850114601410840195125588483230176652664951152061684020298079989323486247562303421458821805477695715432555943496973229531173850894856959441270808239354900852574891554674742680817230304550911850326822788859651866601859677881798780519749601789016984881102661979908275973266781634843321422573263880837459893013998202008817953767174310717857786521727039445016700927771241478671266090842365667117540598020793914071179222220993665597280938660914015177963520545300528732258275267365334412441105605821108185996798775763682584258206013175716365811122989379619767232998530421997102757783979116439278786915786751014241499417449697291800358212102307379848282537231947337956415953512876535026094160644193406008484479267108433947056005169295525480571003351062823749333557304743992224682200858128991703917675514714391067854427856898945505625643336409796637240167423010950443387884432062042305256902794696510459626529629165895242920305934185739967610226626961836768896918657758517398516267929720637493768663216237635866777521400629561491046300571313274673381648028324813339156506370220412693515312562549639682797841802400542367699100430982869347566095822530547123328273995304023004785092899644967283381745334568044185494937779574509274996343383014936842954682436671618395469864005491870432178094734031197707522094142969655025252324227016899897251815514927236618358728562479056548234335774624283019129922588098632150154006816679169178594232114505016803389409707719537542592660279594772359122615559544839677697156085259659811099442309116291663240744033265910294343335946865603146704598712580985327239512667725004131436421301634083527819925757293688280673087884663910983305820611410653727758099907919569062620109726546366086526496869515865633495780141771397373528821418886476466800503909921100431094267372149513289844481617032348649870086756400262533712413572996643274424501174257649531036033323855514079914642574029277667169353769769911567547509146814354622797073121054413170215846610684633137833301101463396585057138265097235280786998721541112800475606357797323519436770089694899408953539723603400284737723007451592167648535552969612676119642588165133111941648048681679490439196504743416331743052666253288392665754505500022857393444167145306790865107532167350560124491888877408116405956124509288274066700289975880438435222754751980568228817387527053030082874200734179149208390279008709425822951253123068648164823986868561299546905272042573588645851431663330481086885531395541697384456934149084277079015141310522638589460705371706332730104191344662282466179290802270439289261872149472689717714805228146856462552337780666251294650170612324839340799921303105252251804823741695219677705992518041756874408669177134199654290939115744847551331224808541474267801978297972071921278034297139377965155466987876538792982351742238393647437069725740475789887282940114854644980588973947399216537826298612390904651046132879502085251059153256206705069522891040820089009001589950067119746045477352249513210030319544409197230705693266025966522619105717157938112174996953915183901763239782146852805683959804670737037104825675155581699548476138901768161812303339987471755647956860421454827688727241607920315464547155963917255200040093285262318120300406390949595425820879653079632044555497750099866396226589551002426123722166300665601085276685556036424923643912382171986161271201026390772417607108926531744967744737821610571931436967411437630509064437659948745044225659109171846182073513187243439043490117357671342583523448886325295404741170207940460838109339282352448860396003552527160624898347757446864435131023759985374140257586757065925169959735912989504256894669159331228154763343633879239018978973828414111915782711455417020699735839572577751165056196970919618505945340519199072933661166854286949268471037330519121966586818016648850080444407729429628124761811693046559580022026256854873766902912573700137329416384698368437571050444329456584424707899069167122519689734443964045137052155769215806908063127762367216451982890817344875896942458457952998801127837921483940949090596910347170637089436623626329976306308640468135326756597574479712660576996992883796202787276783053986847378724001320582123885357704680147062710964498456493536075033662030032773917628210983723374735301949128785045337537346120039182852663861992913999638835125816814399401203821831801574988539622619087379428395061760197129786928371438719910720759243836989434473303721848020345544656711432007909934279780739062290904479149532691035343582567769068237730859689391994208071348525260167463880374080512340428258135819026251036319540548033632360002525250941397256384912571048261710796190767443535635195319663595047356828735746338039663732961026286075081949506167346752991967326843719649466331984896401117605220090499527536337163756698762940671979778631891682759022109647813994037745312419803465416908808236855912964761886528150222090099071863454721020895664519647454678939362724750521516565231918196244066276880732248750002393175523789768695034443392068036980520414157278740619987650558627442783557723177516106620634014111555917587058031944595296810678555579968411960203324246222187562066333238702726365822102542585281311134433842316809880066432271063660591190136519244290114786848276527272841034903948909736690397942172747958514630073401351019581338078586912397647892380298108668037235039148011687226783435698844470169523647792028677624422062805455535382987598506335960030812738225136338565530014942655490037444593011344697833855823693664929534668636053505693217417472738760667669509206926638287085244046949516973518958202365206213158693799792936517411979399945981249106706630837083049528751475326816331817071987932566952045100305869547095051135174906047760282839546409270642893059142177143149164584015846157922554114587163191114603786551082961715707836526120730364071297942294258864273967551822889295955650741136935041483672849863944052787863175108788784597272102981302914334256217603563067127781325590288150422312844994832150355059722700331807784275851849226497690471316571223982099877739269037285068305601095910463919563433477056993676663694612606022910768456546988865452364012132031893271760829548658504669165266202988921058149266988323845795849350552745295250303789678118763686759936808015450220749539873551047063921267369977494988233760966994276467203820149241889861454499219452672418500601757016338213486909312588517035644423164092692130621719244936619437281948922572664024316344375281201337838108905609229746919119368135607028472762021475028847781891861317925924591160678596085822006666778579503700595548369596325569308834736679447480951658783438567882076413527677107190689880376570904718309377258924635100739061769488301736711998092256359014258417633750594662902102187621989591407570890574132302430639076500163921088087870114023459573194787286198658091074218629822112706284069372944025256533952568079795041902671544588215238845326165622152766712826015510827842962595944319407483450058133381398194723656071856530923517817352880708714769889500230623041436742284658340683525167186164565897744884075456136661963325937833523016699951418850083591986177621523735628920431588701084552109621557817923694797023640607841212892376068858715673844430948392040828054855403433072273005537479941824786826198581824349968944050330726454781440749324084357299518339369871231916493641193702244335372263523958569887081191549425174424784287096696541794125583793430303434696276148478634824534909017282696056274288719966664257013410635602178366554896084351297455001642048028838053875220490742031725231622906483843521204877740969578759281331298278010718697458024285586354851503045521158587494494803663945399007901671880196292881139096667671755264370740027313336060902902249368010962155784925691205097737673086672935306548447311495228894479436422234987731595947894499204281049900582443478970314656329873030292973172659885013295999194774292999917076675921697640105614333902158729777417690200886528182959079860236176516764885702085949560182867799480189974902379718148742098527235246055377372732000152016397434758525940803928805712779917646295687114165740091182665954165939420420711011146918387683838635829722517632777305039946941826827188004600995087061236620945114089239073694132738565886953248973023195788561697951833621928565513958611313733902986974468272712435864031451591214982136672037080653619344697934298102595976461446456492057033596307166113426017224109417368111710143720548417761535475764182799770379248325225568308891531729797463416471117051105023861635039503305781238343207783263049907442776832269998176040878278352534387230336753501239520738559457300175411003945052765154199670541942484951155233714452698807245530688903262005770134454551318355621798086219007365909598677068894637903115469523845108514675914376922574747851694580032250187968462859142308299878544844065769990548089613152212008087179354638689807171910795220457830258752280723372500565440286462524888365063254605420055943458964615216583302704729931556728937098406666626703754216096233723646430961928094667339000164108577407130614662362962863370382809763470802839604811971552085312935266851903076254693786682579344135537701036409375346252089218882255337750941300500961019074378884028492959642175145544672138387387521231805661471995538410968658483919201423399805518570180406867177376565382250010485717564842714908084683907343350737848015468692323686617335258538683997425192627249124076837308772283620550214178589451858208049851200877442319616581912294295375252857550688679663331851247002122133804035903497856004006193175210826486826409159719495427374745282306469027372007444696448301600585526981211178515140749539553707744444494750660532239069867132553963527795073160714459798926151912097239108254225939050273028581359007030957833076005626164106885164297166079247553943932224582253899624346037207876282425880681702233894064675709876432268152511499070731501795641504385499729418601323590881730525828942564316960597715003195623987841482963266838215483335573469846443456239525202465373090364908983528353696652086578966167974094618867150898249030242560351048939776971046215485398975368671852989245447429271417611044763025668275356734850698926661613386564984689184149978302403666372439566833361108107691556162928601097760034884394614535460639743027497173341738294604692677048479263492175267233378890786128119911332923221201709350241722367394725552776449025035940045354146874672861384838399979592223275376027779493258584902788849446749865696727471291914480179937984596913684189786017737528555095441488823993927777622396428737853448851927205391117640104102358199483579778462694179818616999973695616765601842036590670883704844627690307157788103298136015618739248185860565240003148241282798189013975184913724752530508420121976944155974406095565932285821459567084555434077467658482772554655785885574550671474510828509475236179666100469394679310994372778973679502917379532878079691226417026229072670902276300620417353924843288105632501109478736156564815467639148057675710950798733317974307573608210829636871340070673407937629310068727504533864530412432891990702002875159929959291081430910545482411940761968651901005880321844184093635141894284129865914918382948259149709613708703536786098474435470072501647675661352331513861578817880435010971037546130504705047331750196000432638321700573467422347581951800008378840172337618628977785448319679489313678219330026820076532305695057902393315569789971706235731931032132120173314028981167172104316129154237906937231352989945775315280743093500612902274670087781864806966605497761009598159216757014219604141472564355550118668389064490389742331441489115089216336685447023243486555867902918285560563163642442627579364969863006979400619929451777520737817052484812356814020910744121991732928357509031978640364738473846637953725860509453490882674523028938936331129054624763315917456108587955922326353418637191376819534137695620246211600207988249417890449588252964555411212198372940801702470320142018463772139115523278375187448619218453520967461944176268104942184554355807293825464107264218137791755735470033876652991747158448461916715114967940171594856862933688459245248065614268819551370513153529182708975681500884492051825008057527156795471583676441174133909043130416777958612063847835493943636343479973484754096923905457547669096333604120812071958288855581420146033224949896886161547513321605826287328294162038423007997640855427582521235728977157547236154522901798524428450296584541434255764850868508391342557511779532016913996503360579393733548522135454376136391764830614005040188225756024177626852735836364824102127182580699117643162600664927053490710422121448299681399241594612464152284346189970714016551240095151334204019384963051578326091654749470207511901989113428402921546697813581462270095655068135337446327173289606328520148537880699422102726890425935057508403891983062264296745754654490260632730471800736973833087655057688375734576204041429671223252657897311780056806479137865483328030053050367080881339734812093027798201074127442925883678905914548109506127756824135054068782587008861941380278145716105200333763449529045029407412023502625854573178540717049486281920488948612984489038878289702793508348516715941372887288866518227652791562933452244630047754105273049039717160720621318580586831975984169115627941538835500449813819496326072725215201696280295726252290329400851540061371824921891266533013878746488139134589059834493942504088467416433578153063341031696088403641187891984909899196369683447270699428520605323648763768112114354401205480260059432851843296291295761223661834164858719720014026798906271892741953531597374553021894472431841489892738103410290028995861583448770525247760033115775915653520716625148457617089811876196005534419627878539332026122525108173324583293206376917315421754423809845089842509213756945955866678094755495741978573581858102996101900684844737198893838330805407412062458165016947807236150704490290599999371425857644825302989069054607984660006016036727323636205980960728808888093606375614561433693848855915939569301207758092877807104874374947963876002120797985595729375515410883139993832566648622510999036646273493924005737480475636380743836099849195053133862928454300679809961266839189542379096384007538958539033751932346123792882513589753766649372184686349899478065941950248430796532178047569186251660215748022418472756925020161390370080138510150674398325340974030396076710032654238588656932039346438517105642270301215254221420349315767614615565294867037565064985304876569500495222215576956133064444583359295566033336172903823576881993007888251531018807500882532222283202909822165644956706540444108677851311842276616767846288791026551169814127841302159359534580982604704123078391906222024935731731514152526746336696882560278126021195409096339623478327968412301994844881643418135671888772663263709713102995777609916260729137759790583857209575119869652558183247116418799858236683415820108491120020341280091869484793127027334774632467348401600683905559908584251375852126794633536834275663274745725034431358522283921150501738617477802877122670414724111269011280827575762873903164660323003471153205883254993157839520487037943493764072069965501219635392715917807101727433345510131594422770295640861525884378600137671627243598736730459904147542163585124651519641611456003259639200876400788882666913166091783702094664015547383306360592845805365764334213957871884889417237018901171792071907274085601101742339335899480590461127091680870225501822056001507719863356941232163625155180007091451347195951584326945353506173942985423125647708016277321488252807164377393038577118534885203860132435763164323804489078231427312875407905085776900378364054112078916449985058959412268219950092756479483847944548221311185989434329747418151826465523846449186271861041927116010544135682649541231040259449903445116890914009816806863123961162515716331728559815289472074405019643215082513540618335126222930261568076776149809138817076915495814436267528145170782197666898341996684703593808925499913713555337786315595779905456820718330679577771910668387876200625801899037160815951013524756266554048431575610581230168636398756415435978138640802370401930220838374557721540726740312021418652395422007441978965385949323718230392822497170031471523700095519403787190778673223761896876729142204247166035678039394053421868368510091389575991137617885720192758426531790181324292607160079451194473524966225541503076663136206894167808426115336256720041580021908061428190589183129930820018592904587815367781994436021087005984532318256382418296454451365213862915351727347059941153410704434758041311735042486165817588500525054832086404641672349905787664990856321999009209928400311480135708192551658022117708000015389191275363221631033860933044637526187561302939905678812649007440984392107797555501588034107481311408518896077281936896894454119100767914558354548896135013932779864256761236338692541056344994746613164376683713723677018863788675203962519643846853886139977947016028029418629274746995048126508103573476730399136165467236790894855736578828231309486538239483207718602263029158857726771205809445514902038385053419173184434880487004430819808360324102958884222828721539491104647571746111300424519686860043128398461750392803142396030558497879408009163410559033727976802831085554444685325802303117042453180118813369530547339754804846030243298353541217793545435023069877401855851590624574818396824601010751660831294281659788082148169062076533741498036605192411524884332263304302154651228928697739911191431877604500703535767190755360796052953229565351067194167394109343233835856094360251593774568886281536411513327258842920607796351092631482948797055315680582944087941795491204753962020611402293474462426433865420610156783215840991076942991895171338599015830064100003395439891986228530770328275687718133764414844890649176232958275304925227187567956612552656487372411432574384224468971355627169650718482681959506470812556575441427008340342819047600114737032671682205686215217513898684691798603291514444518536062401549990738947580163690721064752172785397752272215070024351476021964603794326281418206047142132308389285338155996414601163930345847850332584035456907082136973813566476149445229484794346195935415693214826267077771742127382071603287625707589894936979239297712884670921386456760317178222512295704707908005712426204109314867862195899355829700053441015787464073234408240445579179524414217650317443894211110961215540503413708133049187789994618501962139319797435416712798992694107254000598835437953801812787660686857314005834730551576881870099777561732680347380824760540119360768679373182652995800466394263013818000181256099411467605455280259490067272914569651634893185217800361220230452883789254885216528850388220826906913099815243257178524729963294242374461635827905716419278909037653655402064302755811133626614123223184091616515271770601697790238412673520795629174629321242768003271546473170360376495056865274449440952480948379373774999038189697961931268292987908681717733705411472765010615187848430365555863839197315298966001350506038638171008520565086208924754745772717993767855185971989039380908546829728082185563085974450986470315984575274246342344081036023003835055829462753105833793615713860723677511646167982766777257079077797148832703961230862106794076453992944628752014393966721384485613066771248202562190608892935526012329505821277285250313079489113400295874861256402661315923936687018392448425368110819626681363558811860559860788351757334448379641015889634614879159175812130704061065046045397835104318803637180842325049304114570563434156708090642617070065434050244456399004600751838766272870271785779705415478500242922007294037673979888627074512509595234653706694870927063462695714791379968320708578864987938356215838437419007123266574546685174985798969668604301868604658576557084347055509522155568084896127090087877566143082914888706566557465090063142666720992039051701072628681271564959106224465576756789687753365775148122452869599163571311962033324279352531473092336264455096546252620275557287256058369236331273305477178906937215006289003854391336750446275162560126207913131598045335191752247357739963354988222163538627462703781497407260602017256435945183085172252358334629778471291783608495323244776618309336565315665060751583762942190151938477957990186832328393879448753724999099315364635153050427171290198944240741494384281767260687305930579082170121020481511270426037104527855384857593638409586464879179978637358560142360200713863810527856516589728654737593991772632161560013729350820862736489780849808573246656313650733399275780119594594610566145558898103136845522967340459359235065226047985780500524530030739953942117960002598182760232864290563346590703279743647048006055397457929722690607603180844218607680878257185507308976851071238968643607823884356399471653148448903729655178025880215925633496314117422024475902000661713317747905401775651250009765383800190164662511676135275938525909839185470789776202619538875284332339534056631153092051144212500051595665212810608926242445104303324023940355742421144123336531889136263438964330616813913259915404016850413344443260962336060719613931724287830767453373789079479765095074154317262464126649702067357578982124697900505142885454341426963717362598603265852510858606315811701699083599043462905037210711307344658010960371385077557212537932749233590492882953881539082675856814026242821350246336555623320278672726946015560866215367560354021608304682013176484655470377861616821947219978203280073709456822248277931761154918383995044444938805124448690897268576578797701353346192205002324555934187729583741108427089526138458487704651417104014982015617171552289593850019845919739426541810163146266675251204397253396954708168693950880466438199673385939270359075409555883822094009596857335770643748469904166317700249680239655314033920720311007165968580057597436396057963915543018702140630366857038159857008118443345022100079412241193224952796542899850525771900904592945712271607390987471970185478289224312112262907015302926038550849971721555749234569426435935494158031879738552242930500796828684812581935277149324128309204928950681947199547645994250046068945687160292260078342760211167098358313515084908795360551895277299296583602907934392396086587658777211053066619717748982571031120020631384040032691645543939493302516946257013337062368963890964035363151132570423045823414727709294360833745485280470681645890669554983156094691055061990058246469113844363764463543376679545369067768060411675407775310446746490148615414720142769831893281461597300068535623338633598205323522193783656409039054906399146270847429837221188750249688004024271267806617994793789659804797670877600463423891718694534939617529637612492696546349196544093395868830701848901691134983995570106895995473220023533544676969232535061121092682489248104906254494018323146507799767231960458168814766571429929362616115069069507268560366672196805629825520837022816042247085772994380800249181876325554221513452085530802998077240074853369554704001998327032270640294888495041640666393361318454785196648229837489302423217798790385445732316595412480722787736546379036381194249256028775223586466215805925001614989341222645829909323472983890088215231599504366884358083189442686451692948381609922087290225251668734997466348082224351602107819360266758839520096526298412656516627200255470605815742787249846574917444694539952789351201376553282043865309338902310726645629385297322151680820633647319638597214580554140866921052111588767543608512806253355791304766794011260929292259553051714684656615417685856393402583466849676952717754219256737351953948174333474731881912320078223632817471088173169117104554628744254507503021559864110098487450647217464120097991247577218585826529244484096485447170348487213609344924991695402330072566484153607608425270854633185295502425847374061355320099261605581784211690625186972640239151378349594722136873145681090709627752821260152544544907688127651677567468472422041905521237906875547057530847616044815518485781753578386165245674188096273193090311048633804575988947669039931773694370520833260329955623133639539880878605194412298116263629341470361438380517070919754859169682932539002949714035810842456425142791665616763434127954484437200170915990389533625969243812551429359580916973576538098050953324203426701530141606275411615046167479484514454292074227931471460978417662854452142005880890761841627740328585124874988986474692948400610327708471319562415287103906375272760828122896072963670599192814138223737934828770795321420738335486478104669079763649675985877016898565289560464856358245949111798257020128806952813798391166221011936297606143945739554528646848220269685113306574688275249013382873223709110418860146755610720101581617971839296214088251382978454929145304103920603481668820576679237352292064467807071809828044933617000487901539169870852370661624713170860146412819566119813057091886690782546690177934683119013723974461089168741939203797770584594694918619533242019038617469425701088799768857032437923110168306559004226074866207167265067892083545817842421888466075882904482069256023008485010598325294824951866743181085085381563760198204876250419478368625010049653138068254297648151502014556943443667114246610568070861979943731233697844328514462383928020246154845823044448406858383896203117323280958042198332183870114334863423997222986631213193638366402173872070740848383728510775124348390099246678335189091601939344105900870585912388071594552178223215693924979972421495910087543265329492865476569616217654661399601778940073945345879781343051383188022937599248080897931756882113029768905929570508218000223216641437817178218001031379726313456187472562625386562277875865834853944012865011879869542180684605205736760785856353661351776502082807752670105278247116295378275020099315514873343494671075955452868884682470444583966437985112077217815548283668636017252670063463475048531277952994383039492447711116364693920033704406446741116195803243539686657406460869765947847837753993511542861695806723399902326904979326470639663421076183968287658360287535032950582320184288171491886349692132138322494545386532011352205994740906484304580285049402299306500393440740865030741366838389746203689664984693067952240224168712749111350273146581759775340982789714824421974587305279070137749119123414537303311658948568172145984957901152579508934668701441423131077382030509575292261902810914130583950417477020791804384544963352454798491781901901102915806885107791621547485937504290630169504077061506148250642081778751744117090665817018068786874977755459589767008256846503469251412588164878770395153609941432815389440115286626427419216414874627365701934800443919511608841801221280955363892742232957503024976636001485437786569194736642133730481925046816430196057249730975458076129091596342116876719454782850060343945797113642934207923944955800998573844142624163300857772403014565488940161524696767731681155356954177412649543924750455229466859709101168985107449771765853093955821697275285220391752945637610737603010189115463976093854258485656245662496608329107212688079523906168008151781201829797537085994519898162319240407877080381169486261668891218206881864860451439081334019984261059723372406046369444117968599108345649169625444155676832519357673011945879841766540145392578001601648975776059179459817803773614679022024198010356710478090889436956699214619635245955152626673967544523042172086725331825633783458256687620903793956017271666210819973092307390794975561082424415327102916179250575087339999447781444462863603138209203520684712678877767347840138517840080502823529677985013505045720374455661304137541505024052235345663227154963115822989597949396795711539284824667845759769125393076848355980909901486610867557420306438144558562679402147722297333338076960204486098906963845252178352722352092390710172964157497853111326692352973260217294623374784278359633445445008517586678930128270224966312864736662714626764528674694129109688506138590455892119148491190352950750244956339126450586896186066619007468907307290999346884448771029215043588445099861881105094004716854624387112884914509400028597419148899390495519963299496759899088663921144620867443571896633760324656101932433622917627258915614864340592356190597234272820831292445113034855162429846101029754148496332577972160032432898697883643434436328239894975709007238267213027737873670687046203324717463878994939382048520026891093020567547385341592045651077014069057133082969864930262279866572791504755663666959813941962689464938873651801750505455223126754559818560748290745625086125905675556599896280086352071090163158780708637157409407816266867343692644051509401074514809502107103807505564928333601594709566119909095419995317195707677339185425412141756551931247120416433703979444184776742186020984592535476640492775021095389489702237051542864775632667179500481329541876612393485848241001247099715526388674548453270039783047566742735207887058763082501585000071363435937798166852472706396917718641703256191020407538336598050600700413418319743412861078010888965587512373702370642767279327649295848258011624186306459898320056882066113121022850863540421372484996520870986818885814566173819364545114051125008636364102932649585590618945299528010005124508814218386612808683118290123714128334531546495576697447306549049629347522368189726782666453121978142851609681467516876768131652657018816317074308107764409298139845235651240851234961493568544801384746278786808014591136278741599215483962408560988914377413722887550885001217685801975659783767342548232427835365079285422370813169563640980145323068814096412984074159634466826746151887803587428952750533552617925179176293100925089432017621035535204532891103145749644462958527181577732870326738895288501722911568362060583663070254037280340149184081522034901481274245708575007327674346361596465288096373692741612289041355223987902298302185777584101317114975419613466388670887472028780798042096137184200242164165655249041644424771998561336124612648962383391282175423425455035335045382824409809450539144564450557426231167203462407797700744921446228262298336610875494692768102654350124592983464319204452087972925456678548199664736759696243479554818013874954024975319280077929887210745787865123983840931934626308679381902601255110283661948518068606043344508595546346680070296869009904520213009484295737997753566903596247651026869783043774933030589104241257686063200250624022159056697158801851033114954584840104185871856383005292847412037930860189944648984296822651775280188948894012446947971620064233078682145624706811190978884516693294349379898898479628581777830131170620890109961865429890534787931788609919809325592047904443335937657555299229624078297332116765560096479662456176786289128177488235150807668318525937950171820776132765498486044265263438578627335003852536599378594790091248149789622288842451681793136917637832336450990809941713879823460557033941293368364827660450364250585889002545355500141521316962597174317525648322643569087001073960028024811812153648268940509728945934545869901693154165110326803891084792126914090719956872317843567195561083362083262546166272515130301337807487454190007384703148116905930919753434552312777621982945141114889570758555359863491395299887391049147482752402607997966338930176194377985661375839990412738999224894038834790103289480625388103595809710896019482197600789075925072266052554586138122212049990328303413848769275869665736680543712442991799205347800942414820663562119569683893733005685450614364268331310891074950389238683223319714314074361457722645269155601422243594914134170815161327027969571862009360875935233149434534453679398788970959293310012825102549058054530935604405630685634835934765906901105786793268539849348898578340632077758023464584291492141760231482214016730220457073612857283714212931067910624362939462709281606635730553014675195106546429496055586531871545131725672332107590603891214199028908324131254966770396975237478906380457883725994768721029143432684998492940812106134583077017843503798434412686048683062014629302829968670423105587189799084573311536419480367499181180998516565039491558872047962627993025067924758562906102276083362319072887177765603400365769711790147444115218958486383263771177555104733743620527594863334699269838835079498238571675760867053992672790115048895863158440515230416149416336297805749128662345567024524001442966069305779650890977081835782331666297709310257518071187763024293345265241661221728639331063018254228356339239524882148253676045021735526659716694454855016834297224196664406647869788109584160447021369050644119803338587223379470515613583550278640247765580887903064219904437661465072627523925632562335902601498586852216554824983146888079382278062720782510852195795179719069107931896017818867317053413537026878095144430868408469322365627530988444271635804359433222648534740502586090944465587420754294214832670964076465958531025784946958740776812109417893685582882508679869252924726076166209044316118806800612545689883613249881540934044025530593668581829858808931098715994512326035932506246768037285736624470591207589525441835085229577377808201879338017394952462925682710427764857074841843134077679049926254192344642561921978565660859510235108764578261011566915561162953867175221216961786673386130380588043190012614006364286105231266428260385128442605117741820937346717813877669081348284980785663807937578957876690867693325495433697232281836491021063452178624958513957643557362673732713622506820917047898735188869941208967467886549915737559281721971754684887084545004195510985698553233574551533740117374546177528684897794970668659498023940209138415911366262230024698821478403795898749863993125655191692189598388453195542975062321759611341587801970971270186459620324367806892768259647166408997674261165599928445689402551780812451529769546971837421036736404765283821675688098388216967718466474604515576359746717372063996585261065310465916522586569105482157958069572929977571262784605218611995307684647636023987642588463606174538723434001528284323770175660186706270539274951779069014194317419784040714580257574500521770757718957689409654497054476839184573746282798338633778426929290905325230901304064657391565038218025231765963613552750569711689033656116703164628206475172771437480634206017774012263398634007280384852507155449761413089791045266208576894347610663812255261592604911298226582377536387366512557675098712128873975614582731346684641640448683947559384080676212175199437634154875615607012108934349097721641106492827144362826852919249630072763080199511031580004376354171294471190580569366611650389806288240150869690761063793795092436929839613525363947789945275549912512477395417503863780538390579973988687451730682336527519635533303026788445183071708410724998583230766759768782544752045797136816227888017913743670885838742203987753227279315363917169600643081794672150773854086616008129160795265779733729357705778729685463417345948370496475752046986551738557949462800885982208385916163922432003835437941280950564398855533814633930462995991947026094817634976448087495585570806808462982585981896847004096966039674215593030528418383036723550678848439762275808283047136579754560199848649359924408284926615855490769044910657531087703098355464084911790090229769262836862159212870261980655220262909560150505735891097601468108714924555670030324545508619147497158729060199627097548328409066122941513181493647509362580541745490401138497548016889610411238856864048491819689226821094926039092869391699510554782470807678678766398062291513775821257105256804050491611284436234962086042854421067397594703602756854365788872437992668670929396698016191238405166818142463563962949355396128209940808284332182298038119735307935224364615111158501240063590404311841511918923063716178084590888117570955971106488161949625118661556697037869229884791419763882010015819217250357967679114158832264671374829544561992407184786891411295498294026215665445000307466343688767968264357830573200386880154240386560680419332785642628163250047268012576556060886042728690570126350234562415756539067268148150576275474070142080286304905740943634858605519522867226519787004287958535545574758330539996159477885924387085059419798907568048472218320673063235809144964263617869253018783267613240846064084468850133452899706236605915370001392105684897862347909205520505954505958436928288049575584352499302553242128142559546049895735480353221319390297949064529578565939371227175577042515516352649563343727320829755692297350796316666956356494309719249380260911995884051442173359220585465389946077540966049296841158482312542729740418306015336949859194719349994977261210810743463911555050405659098669268916014200805374226564823746032218187915106416290344900620528277263636272860433781005408366136942983880254511941934413235501546871411454863017699492335195396882469298787284529049955786828420936817538466938334128461995691104165013664876791221009857591530021499400435891996735831794174746217559507501336979834504775395329276026011878274099940502672935037977903158903906789565168273071861926328516951652091442434170818764450658991288627491836698570675634639357685411766056372902289906963733282232878030862224528205174728548384675002733581328342270686287216832757888138779487754344380992131893424855052813787949280281905587672169621185556383918911382547503424429598098378307688149046920115130717459186152740453063747233393141275987628299039259684930560112634801159619468592824195816518706754464521804869785485351625800775106157967414995940556051204997463769105695679656197525422569355698419715849025585564899746637107370979565172722683089563036092845327864836137920744033930942805775244166232824690309076621976280019295930270426041353276021604699575152133906130249286320941134131223745867192832543907725703318702973295969574865026338803606555192386052302560107376737255071898913985680459110080374595593698283036594266603359043994719964748199641949221623320809005455344866606704357718758989507101893548489634649722109966785378351198966600111158050470382864735904444203560244451496236635676676445365906482866254781638580377781636928865763872101892945923828412406042840047134536210285099070444518953228063126349201890309280188758787922331079740954254981396697960738804908383923650687695900525778042686109550209861897237108800560976474565018384290182088697935681959404027956185260191438345419990957400847884727274023443602033857915311554464182490131557357323414446804002034218810034570320150298248502607535455970840042670945443567455604528411454534416443815349970989553946690613275460593145208637474833180987592073632553798784387975403761853248852542285459257248940636827182045758197076833736447454020087093962128954990514229292776662156246082253273690004557112936661712101579213880228009130870031938995464667673705491054892644631404524147520525521032883354185971727371464219855392287034167148230410257376194233549104479946995479891786065760585983388756214007899411886555560130656730406352612229282273222706471469703311269293203207929611012108631757005188596958393370364489231810834970390555959672470580976147718426690963490604707014818119920253813467968475580445150495283108206714591161032008571472714741211525662979509572770195596043143813192528767884563716712885771310017165510862008597962577505461674269267936087180985587937410365619423355536878366776674012463849038833082132622408016554192552931013260926249194750676761098316439561565204792416016882415615167953399154980242824587199156693784069124376681084081184496107853194181562511685213283988033932370554403136670071936482096900724307548186903645215492831745222860840875795948840752437827005829895801984454544664919002687472102711865609188793358293535655526781292419146903820699346796679245979858684297373748862243974544998110986415635022365226942169445049880700270799854240655933627104368477152046509387213486156757294420780029033923271469539213179226465581868425627752554309658551393166630142166995876898887941694881007284980457951256863071498698959265855132500038565223330294182521352816308502337583830224697715239738840566901420509780641167951077007119425490280490840298275008798256487922444848651697093864916182882765378913541356644374502034385869522655887160209996065773146733794164169190840287616338077498138368299767816028502616405222048831209182300509829869899113134149084925796076201655293674184343464902494807176481053508052755371557664400389041831728591717728061383283516833291407200932204228541016616790354323569561680781905941587045764901306932759346740827963209606171750541843625699924497107040399413341656442138051392032102099399856426877494051525209002419349534831291137012224864517012512248876435452700123396658633767396475905646085363086498783996853082467998128272054535306148707659681227767411588490455299876042283197839977246135959779750580433933920868838854322834936013699023329438053888286721847517853948971936382664427886647398140289354116488801079358976563995462261252399036947450012594064080925691861743255753081995326153819118366926655810560980130333348260934642174741932330736312368755518042664181944711384519356411046150593798770148616473610169660257367574513359768665558214842472888275200676052457237771131187236474342180559184373146660153206910563425896711183440773820152199426055523942484796966886646468218354274904555609812163303582385679144624696073085010552175168907188564649894913203369266893296100658123143158283660220795884142293739603123908339414888100136836406610060673468731025811071376825559566010487532221141420231576379728794108995686075557692132963677908567097915473520465367185466092300898017742070384492264961430379655473941872288441288571324156537434711773768269647119947948963160084072659316439064186233001897975951805985396548420139037497111044328610111122403648425765559476558691123636563686069361495277083322820772557679373760722181386927335822128260764815039946450384457580001453643974267727518636085592297136933655929395355700669378762826456298841780080329966900336479498616108274281455627066170717613307868837184558707078354978817110975400298838995395648952526194285145629177180138284258245292657983363564421350823548484007521147937417654367855741381589978279468471933363721644087343770211624674446017711835206488613531399922702416807334922847414080086696702525566411113278223666645496001711282452880623527001948211038980461166223478148857489252119755640793029435818047424652940767714262884439574433629290322708061432934083962122515902377531215504782076012194642375443690937766872962865608154175409604250710119966283948585496562288770910854366987123530422791000892118327041345575280727012813761993550019293200237976651247144220107977006237817602942023127177554882336543059397543278459422736700934332078792666236834890465935340980058493613301740016065064974761435508652025769259000220331339535976606105556918370217807542224630488490565522899664464445686662655520843501919771788219837775374005991339189917822526865140440281967729295749421795375371840482160110608145825993278332753814245388668426257040629814935602399822427750913108359070087885844312526608592574588162263725120727678547235179173536473068729468661429109819128754958090360473080791138668132355583339916218538772121967532949899555941100429748945561296079257895042626720993222597311450873777709655336068652898437571343205978552950390593481829115875422181620672003812731962452291458104976051358303968016921421598135764021914888776406328016385289049023257382429884972473742139536722938425697714326111907246947878452372781348338332161948214372024129179702608020531223534431062880965965391110457908007077576058026243155803122353378444643857953804163018562893015109052707936009530064995532614536160252782449203742535987139740066362827039284821307266820888273353668231847136635505745729882136369042585640489455909899488994148601322532894255560059373444771229975909474832595840954221956451489005100109908209128030767519213110730850815919700292172566516580808292609085405845311871587856931477110901841817417537035555242285863680840140984522865944970315563533959356913910182989285168609546291796434985017282731076761008480764672221292428629729076297894165082839692745919931324059156498973561531344787958712967857520508650003402114050177020769788559713239170373383703396509763031995423365884179078135487485513800542470320792327941648713652112843371863568801961929661943782957022805436660458674698457167238367501258358658917891965988447953300392707097475714340776939971276915545317214310824622286141972069575228954512160844767077748925097756130824799030507381493522447996368317154125143792416483926946556024244741120375038847086114582381116156346166369579496271066643545528979776774236004058134176197184837962542086112577161163275121208455658192848879681108387105835489843532009036832824038892218090868268834183168607928115959588771408094206144390278981540564508153543910633511378218110599351216142283346054115054302706303887785258439830131366772240566576751425310448084208467515917130519749882547283582878180454635546474845295257103644206523081152893077508319790558401083821785182326217323553371046921690331411804387029315230290229278873721709271480650518328868274300594379126705830801498105295208607296467033995528765488372076866329647741580744141077574620020072980992189405092947669519995560214098665433172394122266692739124473053210444617142711950420134346587357157923175269963877619937275737418342391141517717053054347770544100380346647727488330667971889512502977204707947305226183498530326328600430778005654443992554675616672262725375153454952731274558585133011860823136854057822712037653842349011250313832071646987008967512251570581349925098710877976578480345133582512062259374238890154437019702940491949072067690362457486017314233299598241229824686484867720940106146297265523030817580927008777100278445392597450181777924948517750140216653032223137699463140805155224993228451595277877938333430501841583549025022092707952127007596310573978418075116028599296919888373798466769382772784239983153097437282282074540876173006431165772610106575693878871864546077196134034382417138785850971417902039404653145995085106038236278000992790134620604562549977963945557949781650879331423521692944101760792248806014506512688826277945146863482760293601229868051898722728770330552514462401823938196831237012221373682979673341315170378764944045579922156524166637430453480007208134363706888533830933711476976506868906089232779823166297224437547436765481614092911755911880731209681095737977044030430910259397242439994258741491752863282911879238891990554881532177138620796552903895784307368844917683427521297199436598046414255108872395441722116435567645128183033250698077083631693494483294108902618742204432134201804657168142149556475623412012207361101117718268623599394724919885533051251848296443567451314502838458967069330598797415225228743226764736178619721845176855176612686326207674884546012262820606625384815732748475952581751426642867172462456479614670541442850865753842095970976151638624108494504132306284597295497550487037969336557565361860348767414928368067413514447342093318409358328676885014352973736878473530294644786496461616095714355681863404458526238562672565424091595839473075432650896078134535452736229717558099964131611148874606961593418328989971361339075328440136998844690694135960439535551395152910796726990604279627227490131935050627914653666683432319202663952634971998041708643546620764294474436415555284692543498520009269797656078293464585168212830683672877699035691839547593985689559564240040225322493330502431844109017889628893635221441798284532406879310004799012315459888314729190433266529233162761165105231470276470458297282812256489292079276888262081372010512224762133985215757368308808476094477276029405044694546136543959165550661702178577688556680313280978590029099896963202534341272468599726161839831326385075974176198011825963699890984421626222410203878096486862063377251877743366077564810479416858362333478083684749990998944459603503678567854072404407065634079372311931315654191815488186440533051105368386771979667318233433323344736303687575242156050908015154942623874750457154383682636045135564059651024579331040154607468152990923502013032202267125473457771600051365378611571103405120186580834846805984243171816660100608500401020410081246684738246139025821272910272911411102015109627696235625371404639951330868973017418832857378835586282346933330610902246285836568970049775086279385870415593420318341067195759490182179599254729586429753591709141480445120668118356857723292515125652871928857215765379401569280262862877794856236904104301589178187845476758196431362652229775170785157245599630860425124646121698091538680684603644468184717182058171583611159804344944871510407899314989075731605952770558040443618786378758925823762073211505361650686160955256056393580095954295700624818140596475855640928348846037443434054282435937436445263729675613875241895011409642465918713559328180140842497130981707252566635716673622858994658177630828289696240678292454824871714383991173993346980807769506649738766400772261818782777728122446847146184616545108710671252201771075412032864376280453664311168986811751332042472315225598988553622754674106771545110459861867965159383224583091840305995225263928823520336721677973737332072292417935312886679889364373342304464172756813756622978958161179920748269328021123797563873932407307117087496528818457036893135229471099967741465723270661883600261865112985007916117663304815002082322849706958719776131565795814981583542615696721551830130371443257268027625490207868221601039825134139896256624337803446181893641077723338149426572741890647053136145280905679623020171482398704773751365109436073917276447758729582139442403534257549516978195997030118186268605214512110044854166985486635854738432478272982231511313901381141704887196788959602787339407101866993440549398611459381858963262605531960598782706679116461442350059180610371529366496641048420442837408413101493353357091529421479720072406699760741056159844193850186073240345571366412647904998786330837628530286281594367907591720108212858275946534371349781695893435855812215454917977089637798886282148291728374907569732507159331363133539926773531273737891950122890495699374009553493715092412137073708580454194982941275449840962006117639980102496868919478371674440262528960955653389178097097114969418425154087194705011371232246511705222463901954453579159576466701268594570845713920444392397921618045836714183678981951678360737588974329127774383805577539671962268292823105453433833746150432905032535930691574075792933350049991750723102971490137917746551033939250232724644928297328844476614449964694995526145661392770065570414056213484521805621243922165408070814812499180598055873308510423118458480151089043019094411844188053646865889655916692036890541921184242515119812013226938614830723524185692718117368248204948296514581532803151189015346990788871567401734540502505334254020938838517015767809051826215034258844784424927301856902218219824178247746337752656659143437157139169022157233793145918831491941568212263846984914565999047401901919599593896903039578823968699575996138794316541300409217320719123022747478168690976000556666565103023991723341807309133396300219545226019527318664584544091029828333246202313831242090615849447329409881618199472848532630377249541903187138781030961833763010314558597899978506096650681839764788537402339428179023482938823180515424048334386546631934487772891478211280383132561796251783686078576902874920908137742365193868868994661597740668059686311174928618960078406064915283093563312019971852897512401275370526152880360690750684240471115547261940699083843941472883689123441829497352594472574263771004887880702293629945891145795102690193517900605297069403344122217151017323579803583916822379220823444242162331308363647736193015313571259712155616478291352108540129992592960714706899655729637062474781235067198157260248491976102935709346255813682942691535023739168717421834547545251469678476079955629631722877828800151704730541146383726506386940784437117340776832228106031782281424052939924278957492084876586082321132568057318716198663690636609906039124280889878981426754957969591949008338684242157798649823246396814368340592378701617249272869577036605022538849259073502619627407893934826710923781010999094576932471425948699623398732554131358761133700536122927077393143484888049201546355356327669207554456167218922583615853354329032977528486929286349041784186181920473970773518929043729908126416213795150196774108574283108399965962823920710681362310513171827989716434952018489618214676237180820298510162994027607700251548249066690683546551255836799592179473718211695624411270381745690987367021721074099858655350116225956561078221400839943653813470343520880842416842239392397052778308321998298379243764166045123504386383693101824412441326677747664948074648810106899322431583948271225771197531251065141408508150163201105380926687937992947025293014747475759976616038274699081730426483733734600135852800552507102878299804375323366725198647180531851376027389714947126794652310422190324657777790623385299530374972913947775323890817842365919270960395826740318323243262293198373829320544408634425533811651312177826300433032573183696701226546862399873671686807440111741334774863179099093679186919849743015048618038844272111382595515076818603028104800065082866182121119814111384089080070680714461185936566305318197425385089879893028188055378804991785502029250177111720310416398014952080723299984794910027865879013083052606733688057613714800552874771044030143772619785186471918597941087989976836240794378552859626247092821792588496414246960795043507234472201050031487172851591468536747748805567576935142291384511325585037643012043108559646789459790003406104934839771508101630080736680319139333594589556469015359287706409274612992783556588291736937692182722207756377149585308966868417500206935514123849766135396662821569132227087266942700714965463270064113057812605032119003018250701499535120111294298220193407186751134542736664823055768232129226346347141176890368993907368190156274046338976217144462190122522387590328014949941108929603681117559915012771771658867600405378994073205769863919267412623118489295393645501672560686083822303979281883726536913374099591101935327016604397564628804433146435607450603506875369388991713730239853371862236241740976581657959909766961289306625492113805732366638362286179522670412556049287241317474324007955302051266529331957815975278373036635126401107623913975159063485242143751537439258472715624758676875248190298203839033884084481242712471704055053726184837664532537022064098628771628750000224733511141216364940733123994557972138686749206129784436423386368304232250190363566241198415361654269428419893796199650309216488745350754228029509038591940839827623223970186051112085289398084002048409019312221683815637398920000258347052127578388877159343018434302038052570421770363296676123912826989477183441208039703298793014956407563448427893901088938121709883486559647746611049297173233284106599310912846195354865515544638123715972567721626109958818356664707843625473017367529784488365267621261452798484252171968268124222533970117491932990633696915789481846244384482368789841107066601808716458574967677146721227910545936556560587012369385375346356849538869309162169406430950127983725521221576870791194205631776084639657224791082620512501981474617915620837911935099464159903557923347697288503177556305596040717136987576439164755178116380237511593763316865958461976412257782038917131426823451042317596760377290901501775114712600407754942949789897580161778665365527664102810195413037854247530538291697484039690966978546613528046410917465670731641337926188258620440382140282982388003203223765587825319632630787036006362966986623926934430283990369509273823153005067216743773565033563524591327130686181740543845450112607861760297558234791546014130346521840234452193032890408847290484494067117557961416730682687565240836024890775745726983136964478722165747218341235606487512640718926992431978427346062468292385850831548254023702125110143466292836829645421220402284361857715826596491715420918174770072765429410334994397278862219973422822505718769806593206526857443738503524671897007001761953641132205863318579451822593453383972195741152310304001070550470604324687758578801508400081160700442489487638290280033511114804627947514430955179862460501742775200170377056273002544842599063872142105504872294476221363133359089153401197335401591849580267609735103432733208259657978279578363748826091575019589982068079007169875494170961267209278195186624390180077975240817577530239132114909386658519976217527149662543551370199555013795572393310262584412095342648807802897321469753007945970445499690436911777870183075149059586501796561846126272832720630939852129901235922285338268240466058224090110149447028347136560200044770252503577877759832282989554246288434890284556141022847676399099587776914009681264700987919669624092794506712294527142329314013478858968452671643441305242203482562721469728925000503673025551284086040727978819417181870024948444063248267863734990564982260396841771272791209864414060081305488515683670094084811197383847467669209424355092657042252588676524859872287447086120719393601646156541779717972076206697130675698954195934524346755185246711995616115817209585185508194889640929942945634736987994852747446119680856206429121316628621037434716483085641577305047374555044301781829725520367481220458584160566114050879709862773504519426115485002994326642480569305082592541907953067264303257532090545844889138014050989550971996241509177269976868555483555882744888800497853851400046562089465062760076092761098236998831342612110437256442403041874561045275972733577902007829506683029265645856849901001021459940429090003083385166612199319411090582857005969072121592963629840593329759566664305788196130237717323377759986446632495982168178934104485793546224974335514237345113262919735430851314548384436167395883073799725933706575804193616566204593017311941295819331363629231689826586667320101611394358182022110246532564026145670980410233580244482587403529265464252624523462396364792055787210720439561020267373192832539978153179094995781288126458660706434628826869169229115644244297749085336055727217427824754463141891846859424040863107086215494580861465965900329095539428193092148554042407710268455526168306521881182096980369901243046540030100298887446936099037489938963420640838033578002716644895388989299958662032909894825431965905681980102809535541668243275188528231332844819837931681899187220151472442817708395920167725050331656653254144163839278094123088032118179123267521869092964731363895388747458313145298612375016059097159063172613090721797428444627558301743749568413064047742088889012092573996068171653092601056528239446809511743272312268653139839812920390985457762076138081704891204829829724531861675000991415967880859528350459093839504807651229291026603651268552649731555459286622758659637270650540709882383594709418197662449263316690835431325436598450952196103576466853871066602028593639201000075342961279892053483787664923111668761598468776816839183362735392848786698112532179383920416818306662907950207083237314900283005287558242077978837210226836460806905694025865110179677669500186184158977980245676519252266563742610740208167622687825962019772626251342442837452830714031613734051952292273642260470673684473786805055052381876326664207443095014704946873268697228988623065765054826867310246792187709363483994908039889104080669932700500457040041670785208880703426104900226320597163498904620401360308665617692521827273098433503970522311755309139368390611657820431073010626743572059094764240696939563861997647126005188341817542745722297041645948758750330264928387798211981965783795241922680432413616518077282036008813551433303501808634641418356349100381980397691793429984909024497653003018493972905999024312822600748518869190511186329144686719542892485192713017990565532474050535363944324322208546503245174210731905287955779110118689353017871757249426684440931001173009115776064917843965058349982948939966916465544251852456264661801813022967367675033840195657890932461582483717342862682598130171301542087365775564890353611728214186339226251085748096820410180261328951901986652293782837052557428533880805367263463640193515246731779374238383021226631824604258511731575835047850998232113456265698557047069065766083836649949870754863019236170599257419225862201150544838786660274509948799910041360286157772113470628540836762070385210565128340399487638359834967299908822079778845712711692888576431086159463676856568177373787147683160656196074726241101025063453315099854949807457363844745320274797408515940595153820270176906107493467616942394368632585271953907268803562115332611089901486480996990496963864307909187528279282226210131553608932337644920572755751933886594814178465683321359069395791782018961615216910837699281411432571508520232345484239334562246444329072086421841688380017567478643875143065316955619483690598613102601814628672288156368104674481243764128511866238634062960850588291011751214137905228502295458659700994072706812434564583957718527027800923565134480504111515386627308468731048374703416998385831691601347183530422029124170919278679562617343041181805077424669980344303575917021086335318884236614504879065689648289779174489263632882444987019921884808819360793576496497620650563911550559373799530007015145507623003229238431844034952446801191032043698727102586350835032088031770887560344614912333089348727369477167046641131070946871618738869959718084738217250438054348218651694069795994381116309940997483845962263560884498693884149718245414468395219262485643445827698334573549880020034611163863076944751819993724136208726540534136065504574706591846589425421056872357399483195917845908121338158490664151920773513939875068094820184826659648037410307767251788393772059539734357336137912245441521067973335332313684546912991613123022330219972328660568275275837056052815471900263516242838073411243147440292998721049878335249148641604630305442598760675427147306725354714534045850950141784626639419865779541945436030739876521669654296311317812221465784016391825433417156155458434634488357587802156953515981545823346533123650973838473753974452389837849503117388226650000176726999588959978076601019942706125124731074150594674558847826219795136470257291618047747138903018066445911075134657814356581110194469140305795644834912946507971149089363468977615872117276618668256352637618493125941315093578345774689497270240957599549535855095576068506015822046562659892430594401517227042062119181753992586226893995275212863790398743544075746602557987745430669662278253104389482493989797774250231303242031701209625111051387037286606925355383728097315783963634944806146592037190653882431638120453324687535535859051095342970398468614289889838390334526322042486582493640890826309557356591614249814892795932541208425636929760095141830328144779838145667812782182897624793091411377696371378495086231378756344073276551764422581794757328389308678488296712973861873031892091428473700916651508928017450900288191602959683283088396651598016969837559802941768786137573978027965771145704977624486444231366678093237992243570853004245632661155614091771044216788229411537304383299728941466394643449722021467971755836852789652144548869992915221939110907284457906721827879494448370224210771145158923978604173469167274098538457386687288339482886580573696776979206440880331977271821530662962364643049935936411469448866069046009210820039961182279021833897945684175986170495949980888450337839348994014203776854657211608424136131086835538581985621296129676856806455697378672108457367922241382919270282509679128638350284726811877554398897487066508383787079071067665829579095845537594840424538741988242070651086939686016654689334371598791399993861647485657377221031156293277330813467530113812176331415332096700544311687832897548402613825703997562092860306739173388313324185208152715703100008493900347791058774400028597916736234590945675096476858308863915321718115164825568757545662660744368864589403016552936181155946242496652560551196141670512135902436374344143699928290110379512811752644276067242906271781960996591250197336406355852545776657550217942987869676926768534808303404852034011008168629130952759662712052638745321122458297971077075043923428520366556575800701561063580131876792591550218565652765985876591158734584148927550134502770641884887911005134027822065714012137578091337737060596059682070196222588329993528454021433479365156207175008247792812835693240034921803492689344180174676477882817536883521479534825850324377796057236086345474819920262627720857459144933013695642466878433341907975330315624227189961176556881792355339921654327749383920490446628209957521904093553405222515861529099904841279724754613598236261608083518777611629224571380221381928454528456370248445459724382622496587277734543868932228900723408170174753670223298477309564915437274333908042050415259475374937442662253034470000316334328739981751267255778923181358334278651413872380455006390286458331873225739025485050579883896251758113357112080282474125847683302446110873214820333477983317140521670103611234034234936963488043064035004298083220093312661371064409297279132264808084564485099232848099992885996587712945252640413813034544803872259052679201311913308652249071307910774929138131367078044957116903927396956741752294986537003383091199460835375385672440983587834100562596028983742670743562948592114322121978408987033650568013648271114304728368387436385661523678377604445879597689398607949562855046930963048225176832510363469870155402153127139907771059355049619766866950837987700534681351439500268657084565085376124957238942238171319401400779517974074342483273140010646406188746816302399246680845248337099200305905794164775281588088062661950126254843757290389156624908216477948499009461257708694290226230922352532234675427480130091761466686127070247331396347758642783184535972519464573173067959091498831954309530138519832368138823883222573727497643534858822073782975902251489014116654492841878689511936979918412256229571363540746289877851217386480667190565844497716111795394371662793124626654662371886991231648734372053418930493533459488269654609521247996149592439753227141549381292778883851887628065727159410248014349565788015436929173653566685421555211206111247454583343732985618466590675177473852222186001480277190688826153145055409901687841987400495400968088295523010757324704066640742840021375327083924840543096987071922169541768165086690516739196553467880892741704514102615127749417994938073291402481072835311658416532251059310269101771900140928359685380924027740692036430559785052444271537801047403306911692387837315324976723493407797054404014219318662158744057614820569594567311579927332642975567614491966036812922691191661992674458030715806805801332143560629250421519855964992425736866630579102184647368302633590856644876194893470478753017591448856895132080662096292185773830963867242053803561415164489714637772428482568819055379977171468567903236382334704258313402656629876663319031395854858956899303564369109590930089222434362876297978669587947743148220387134239368966339895030217165176290595340418250561370845675784551491963698044565647183185310099700755516621138683030344974577699979392496799833396624104972232421931978304790136188002538100518448247009770875615651926463149686372543161205333601114324677692517699840646689986416547346476808960646432922337240885701983374604302497677478570062470170660593431568083443206846099939409787831992670546531370105267181396465427228972728183457956794619250915433883252707280110155973348040937463426765248845628693243312974581599012396210199612479745917028610318025238599327324151339085605827475252123568017842230538938194241784252771986744252549903112140045113595432377403124880729519850580470703436624041829222187952220749093130777424477770132868266080587523303622902200331810170478897263653241402012432301935760190025249435771019750964692049661673745061358980626937481463223811868291971484890576283342525701078168689365625551308573453666539621944049036081299161320051566895454490852153941061804298547676410481304662833260025309983561291736065669591700090506408882550167014052060336914205036726231624121941529431611091695333731470775749022973124264772426062924415791792529802974730492694916681370221519912025732142641891444966073153401124604549465353872430503234846477400840835418602587650179672147194007427851110158401767801834153468934411553539317076504941227460602286546225592088490894876381125084007468660561435827839590680216638528583050944604402431815961077292194738483612410398574902511018584377035173741218261823394207014492123960288016427212851434960599787541630469224013708551248919972416059250173744098479979937043817721978362632695088480741976814948627786969725346673242027449663860261207046322728650640326714200703274320185273337118477461252789921572590357456241444351946240813096132287814193765740465445706676090132957543008602569110318671288649319557345729966085569082443891199311846131500309995416652083225988843778373278849145296771009441061025806283758151356256717694358411952336381060234582723518710791566860370497587180492621562203381846529599983454506103295488097583006837905703483030717481495313256575563493369279183898583307455433505371476718794403256592596333910462421644920897445865468994071287130721700439253564672479078386729086015439448017157816963127779562376334191447918201509901567066360674260572575552819440874246537598072274585227294822779572034103441491133956518907644626381221312197534868868709238337980540102033876809111228212406531954224979221640924594421365987630907839706713001944702251836183846696794131184237056798820971800097370426948700589127687962813048632652615462644399760440685709725599216242356293951795447973460721694323763423631757343039922094894692866547648129235829478269721324793839650746871940750957671011496438414169408119218534460674114118730264340901625094587152477810430348657651627805901104298127396103802059309373407321752212080474810079508427698160432126790449473374035797501958272788477739221884432574390147470094172369121811584541812037755222439832837815768510012151550585396386204630581373284870162892572909630758483881651424782506383622360950745491840787912805071888581908862045466221172077431167472804334856205891390173974329720068575884910660425376399966007360652963055818157072006280991694645281994647864835566431081260116995137588253755428048562581757898777821784527078412615952061539895085271582783175011389321799470181809360477226237956462845735899055727357443441401658988489892385217305523104789778617724659691793016224379510423371058264941002260659848365433616504737082460044395683675085560608075618905221301865360480444655716521573800574308700402359548509841605534139891624494559652982122713086990655831288644501432307171331058319355941843480028455461163862422836135802805115878154440799466245768535087691204288559574047048373001584156389758038191793425537696035140803095692988549452227928313646369772454125812146427965828151034616188183993497751027443472975796729543615128852807010387630486162543592684342712337881149235517072685487412708605517127926210918310851780586773686913788696482715995566121315296383512117666894039208937888292464678653855605808771722538406657979782943762413833499096652021617911851321253434454611696132900664165740667368185675140642353207516412245430833329478049985331882391151109143845862492427769354129016571830383481429352962460314714758079055833874807376148223640203578545118866508907782970133269417869307141057557199221824716070632370083086660706223590187554704767176318938607719841695602497116320578502662044427984650623019389167202373759370888489950056120234022732787036701088814129680609031701482293775220673038253065976742602054142674507939178659985953800428054845768601136935632694188587551512577792105724256158852828661746286543119037513559335469907835477057027643545442873439423481532655663141266758917321229599781576755073587967808090419638458678369369780929729423462083979247353583850854422028955102382552080156685754616407274857773019885247107228168238889870181100776696560881416920133915820276169378462442280659857126661959850423034773890067296892645040423201515660628575314072992495618645465776714814184409220400576724513026890470897695786466707098239161370583153207147629311670850203189483712147587391167246400705696937091780399199993318354336292172178757486435244051075247918673758582849396633776800305441971730514260677941066252185422334823178871202209779338358551077905775342157186648277833734488513260743126007735525267191962205056874456057834094229593030964785405884752442998378419278116204935768906108735804498735783101752913229199269438276962335280402086254624294421476643870681958848301146812676272984861025106512922348529728545246701249742736040299794950883350607345514927662763638304032203183722213692294481346941684888708784815021403706979936945892192723076663191305709810479742777134008674163516581568453940068668534002025911061435061937280782693515455296637904647862026075808373514923427562533914658348826373429231974187365770529398575338068739844162630514054053458811199233895968418992563016614179709136348343813173788851040613672959341628009088356238136623529027494688601562533250893318237390478734200123697988709044208457326653472420355189910468294508544518871335591482482835684820421172370584341362914248036808668328056878455921184027668602375441684844757926237755352598308472601943735713448089839832339393366876695732168019342868347899900353153938713705917940065988258870479078514956348525680991852818805069431626137417283163346811543307320131411224213107410923259858217322980484412406683039325065487741693532900135408155252700023412447625195700930175728055281529289409937472825791733690819843190004056291982692675061744946545718664906595296622312392513237927357664681198439828751426802895700819524334289070010462394602889930445866365931464303193711058364930205386067766684319667877451432490089271420259146321118469821747811257412017357659120261036047874475402660594762659403036107474072478904141236513996191952171641691603771351218533363440604567120104394281616216352759702953155023591543247722027885338305659355145848943451898457821772410772890575347384203292126521871804877786432262906205478834946819511254671202701285162205021463129362623840268611686688486953364800068780871635609570792388046860585957001378084941043435142279469458900504198754238945153914703233577290404762438248431687810567934702528793111845014627475261413086249499826760566109049523199740030234056175603059695494078746187255538298480871279260421825856305758313468089197986902650766717274442656817311072448686200540148073942434479812956976293264318499182715680338932059324998216985451507865746474261776946580263474923759780967502228017705350294839609885029733791842067445598525831137126288767662204560874968466187742766947307919002519970342766476769274763579054798522493340710606995144860040013717021457254548393435335722401794665737226300164803942406516212761485405620155139401321212868567297173452161595296306831564710473179626343627127293796182398568607154144264131507648527977880852491410568929711533953844671415116965649052716613485787354862060703366420008601062513716855649592392292069322205622893071747107917049984714348164323509352523206998672885565333165465758855821610473547408988036586959432055749496339940157849889166436240998369156229439158986097062943632898782937645126938012748983562802563092751463258250247549732097393634008784144622296668082474185909653831965047897166091485776749039181311247138993060287425206909946360138954082976292150966396877642832902373962660240711704525961306840148179212131241399824551410482045502123035005651414719628373579706445906083112654287048118129103624711041601004151710358730157582642484711454727763783445984996281807365841761366556719359362481958841919141999783411296494046669699609984797734440106392685236161370061860824172118917092520163857826869622693233535487751688640225346351259901975202358868625554493025165751535086228700372392559708814413084521128938539428920265399185667627734119059060888091828492115040508177636696038941963690267378782451879823340756697158604296835490714910430940079455741166523662157276716206632986742563725608492072335033285934592885939873036348398353572675774093835440095275633600808535784350389518921870431615082218757149530152955338927734531916739655752359754017922328054621246083005795789048415352699838434743064526141554437200750420153954589581240298331222568504909491437248559243832455363949817689472018549698986280745776594916786694078320700154897406847154101595396680877728423566417888589271804058346299432548580269868978696295297729607494087986754261081656506391874228007829867070007598739481882789280782563343135066386766183792605665033879672932116939098035046731894589040994959183144079646520230670610709528382918147905869741844416876249236386006637953159451319803957295091150375198155243802573856099727288001484581691740810261040573067273262183623199033282467771447473423722016097479092734353767356835410956098122809900608607527018388094022393887957583274924556121828044108881041071776518302825951902655624268834085964802157597630375121183033798639592888796339599185011947844419877453283075211053107871891834580366911551844720508145262728218833315897541604903037674955534242088039720376896135741238945585391144768245366803139333244086143884441685109848525708769410725470598050843988692141281776114590991202675014842643083889460369449379793409454872005783846296930586287054539315485427318450680116481234185734619406461487767742863974820145019759667876136404285233825081769486812393386511699528744283272186210962646981731523189094240382205427240434849533388954762631519830274057716209511011866106031026634804154076809743426490178967892007554864306419345699054717424564782067372310188237121510186091626319543234178583005355362933272037951486105167082154257567431506669866547279622479033780009045840200794969885260755943790102153832248302912627115951430414245702712185448956515456726072632404960669842807954837107290204953062719453262936307305856837721989361905234055195322367854598321653076053505036545561775693727448452148777409447735364861652442785801208847490112946581818914413454494298293482631801896676034923929033038393620298215338500041963668132482847737715948795384086549055461450838203013131183607673633612644035410073701999106902367279014083047687670147297277964415141365000457662454678528897373787427705852765120943530254890398818886721552336406154583136272457002141144123992902835621627091647343941645103694878214924730311243841295580265329843752252343265982072370684894029707605864697468472625057769803893505561622023611186715259294729011238769254561822180025799594091987624504001847307253774709556722016479399098585568433207599655285576395712644073652708188985180530955732988475370516645739171098753293660711817860590406075716351775914650796808711077546270869283959274979086816998931460422233765021178151986929297696400170792259360031103921244721659762845844162732681706827559175047350296637717738764714127223436396998290978352547988280511319429295322594261835591219297263456723057257377496032227758714236141052085952698332978406847409947660826829420521011352737395582970702607048607458000219777314441679053806982309497422496492002350304290230727383155637099756003216009441097213434563069441351161536902198070074422094695496657388448109719161250716189552179369285929997571901901099742876758468386656416961098231924799109856162378599327357411010336866781981217743403488673012135202500247688067677149311203365257586757102268963377853994559627986970566261061509269129960682633789659566107894836278929332103109838478810941250666966459789404358549158706566294055991041783174151510796206485660847519234541198930739186817740439939871013101898026631705690032509146756226672734549683211022150338726843507932866562701581919436215049671270787005847612757718511180877052971024835766947164690808204790759790107478927691298702415596673134189132530727738421606342381199050377057834635930641791619256405577123291902334451085591800827626873957749903948478216375713917841322648838789480203872357585352214736114654735152865005519877205750222171443994947374824605573623165551026227379894001488109145709051033123736814125530741593818703918560536288158713597873380672069903457441182486113690365932929542275403740782376224180039336904856309641447084765361235573105285699920066416575969736493072302325303818776791028452279855827742497364574124264833688478094457040533217001159349072775062829231208266973174142916488157317625694500818732139440033748621447779889021697674227742253615573540483751894553436381024234899717219824821963729371216146381116000341725670459949150462970513342694902513969398178462589302975705613866621315961675510389650767144243971564193062578731823620944472844206018058390170779966232220855626625413577127107760915462735114161964667468758630825964029370667574734115225547571487475200642992086305318899340694418692015509365922708926099682605783977346459197701520864716837738329120503560417573758048570081293994729061374879170564632032686394561400376018066498480544974447993725627157730401392213590363534439243826492057207696481259047927074808987525263865651608582105453811887181062074812971664638681785107346963823253859491484812073610101471015987565379972141490853175119531093472267791179798944064036126847683051066803798886517307938193635444042436567975522563365164134309681867530992714460700000433882365880038603965194931667647462441432450134880530447260833439997455630756037939703726574577917166774109253433192270572912054538043783769630444664714081180118831773487357915518881460159373598617986893828360684409231415378811422229180567173451401613587728961052201907862503752646609846655673117408090998611469563401578010862446894285119886063123426938978540523849181562748923943459683986486851438684352903812180023389781543871554717665222419970998056850132296251761545737843703417063732606205727455845759891330358604154288210454221904492177099733998146879038012252262109325655517171347767555082502833796179469136219777003014546028629662720056155727168985192363293991709207887944789562501330740721494828074259722326165716597347955947265772387849013339238799390446780069657790318976636646009790520344488950442671945206488525948846028494924485218662753435899374472244240507187687048399101132964442260350230946807568286967849495359719051387243284025330967211990201270621763490013593016828600870739483851943019691132388760938807783732280675773391596164668125092031951174393246102688201897709480590998750388380218869444641947778835484957250037074956585513613588316287173560897674920501808637135250181902223624758094883272492748441542552687243699180005124521636553713157245853965198205811249374310503973980513578439907718862305208427483181711734628702339841027417477891963982487129680154069210583799564924656378709995696157153368364677842126520203697723852263180530883324215972182753340061480121241644833862858514306123383338062733819734915162079803935820565938649268329234697896926248647229948254271729632213402810412151133743600294910917157508158305951104749680204601070642685379601884000025769014033805342441882022356891496824962715306159598982797069185968863660895262830805964609687001006608839132654758954109650277850252317062367155330690677325838634208401751830963501465330710324713486523447923839876207981819728292135108510050224780598311604588193074282237426847797238263789201303447624811790835399466449011695153894360622018065905111522629059780138663391890885235663514581138775921304994660591051871035357626694048814403085064223142385644933764802540953481306518087604962803583040654320393334504172866172165450062488086890201188498351966943423616102735247056611559526130941237771801226247813558574733266249190969946116998065618870265990267250616829552964179311196120251310024335402781902923235891111456134650879465195825650505850963531325118267411512302567388008442918638351009402820702321007469188108487264413457360155822351370246685971600812334289687009788746635099152082826747049250664903152484474830047053360871941374872804639213507652540985544965813039129385344544032382372964734691560057440894608042302389094312688448784262801500989169292030824042385190024323426897197219914977688168322341533093624836482817402825568924984531533061927480503060562991253235046919478071565695859915445901509055298890514757278410761571510434819624500330281304906226734019304178544101356379236915531837146294586312115529876720817601743548448385786689410545715483535744553648215685022334373816688571152382800041208291613079562681695610449652428306408426961377177337185436627444414396811707616801003128055011531057757779785861412168033182808650076510321825912966368376346767416874444360172530611593012954976831851270885424426538028598256543974634909566876270915412779127930830909511057722352853552092357201024532211976648129742520709102634776777921630474555427736525342208183553040734646501943334989243905125985083165249543519743545491374046446974110364469756001639868800905898251873142732713402842363089792402864554859541934701523238802197918665599108659560025526487423813674035733465357194681770176405765924005204801863516271833119568469716050311144188411583106113411296075750381662842424342383985963568030339312070827701538039282459053515125201750147727140022633841919715685009369202126348204256977036452132068851802205888003250043863282316500263767440163655521607082839971791791616837782962245277363540633884663017536142418141231607764763414767207064173154141290892803615843000607474664518009865529533753843210149938286457960953334164860515216568545110610231184520796322104180214975339907778936082851394258649816847297858179689428951487739490389270630828921171124408655930350186440300837355602681530761197012946286398062883327083660019042857720914356316814209249610452927910451148216315804867856151326323838486093224379246899611188240689792642405363335172612827966963251257044962760181881414555472489269323572409321398732740430056767953591829322828070344167773577964914194043002857411098316172378117014949067868100775434553056424041805977559666059300208770299075343752712046383440396992306812453225313976408132264304276515106446338904041051600270099000489702032332858697168889326481238630949811290111536906327978327443719671518332507397485395384824558085735965416973068467879615687789978992810173557871426012816952428355195564636713666602155668471686062654085157721086077833806674002670340392104235193803826765098260753202927892675178870395996614383535537517000808946803094964687770351249292283103647543317513685191300075035007675130177546587866965694359174341016057725370011130128680633235629467069677029856239547648138345540282076948027807425032332521877787691563215057911550479344020271875876008521458061581325818363001225736084673295052592474637426392230089792576771104862704441361921515684707939294732834535434978706125270823393488345548823403637043932727620236442691374889139743233101857231976726374579729330650087544715648997904403113544526672019777212401412768339690857835558280400737916670121133155379338948847856224405750856822084810464494242670343721776716646506615033753181521652661902576829352191405051290314541953481735435240642809929057988754626360299534338972418678623707488920005295197579450506542238229607676599700081444961981137891835646882716330701056604296814457867060685915569945441887388599255202626847282899233634168486059286477531687993502133457657626166593957367314566628117081058622344820006248371908667870738343023509598274167898500390304930968235440484722290428880538572362116292075213935032940522403323581850341268105193940710679870520072532343784271007175540708895003120421315551818586492418118348858036426416453893615266279658823012905285840990051905683074622586413556794401605644533128298923088291958089898740914129118854183174491281109556125928628870532890010408400429631424061921845163388282374074684247766195912921476531581323082656902215805158432164298761170761881324069203249303349306929930071442625396490200336332928990062422656852281874942428905151230885801550331132181854672991497994670114474614248913250428918721242826230959824769027293124998850074203197240384506622844423635133445079297771782363501711516581213875930848596977120630498057003465221148160771526412709702463888619015136769802559562195810082454270848819796086063168352546352790397704041628389807388680091622591342705960359294176312223350675073905196357402648592983408922052964402622032149838455149594170405026655360629639162893906683266789604119553199026276072943494865861417732449233272299206486203215240144859171458168120686389207075320194226914125453788674933173294144098369090895025969611870796505167125846806778581576821717911207021436837389588193271389122685677343078285174123078069935348275661140490515160210564977702540738795872085801489177076497968619780329014311741255958913658457194116299379693595996593063135933393147383882376184800730834867367856408994105639979395786540085935191470649829110584682452333104316721029535382522541319947815970081950389604334697085418020933176429698707453117635404611788965566062608159792077472714377083091626726372076663356651206653900280190205030804335686399425853926515555808048116674923160571085657304490739566715510343013047222513194506129555046904977691391060378955493036701613470484076256735543639725953695161795586748300585585941930615293923413437174386382502225798167528812080144472819202837959068932793928572339619616743015020193784464117509499333713991714499269782172913505047751264501849061006969211117470563794568747331048055642340789173741011737789577502413647683344884322331099799164888161657336362703961329009774296766175415546767818293930449644346541390051897552675933948694433833476148090815612906855648072898574536893919484143424884593440134479559433823310204364092695878291107029771508354078605485761764039990326952470875198287293349308647778462907265082295958324135462809005435449196275357023067364882233754976747893899620925483735701233537495194312496483931140169510568566913027054351598260183043057962295651261369673858145753416347100506121889419211196150685672316484717611310792340898961791891272828893666153723772388040129458073309008297356304213922674453362116617110558084572535876846548853708502912213591302825498676486487769693790336170450706702533249602657959183055498175859561096056382032066403504561080601458000208513991490492415723080561009392156942173578640322394299571141631072427646662345692940286215618803122603495803674005901071399077724273009496054116928421373482757159442366241629053678761032501715445573814127157554187057298484663096625273858433371941371068846400535249632134241347687264212188763135081370473152736094127287559360444029044041111831838973431287788458632313040527222147050990512804995567516156817613023609125479960867670239416632545758650929623339014811262352012762070513535811719615967014939548548034155289809550347022150052135997789348591888169244831156524194782656637159797973318907238079087391156845040716904353179828813254786919124605429011259407244779900016849334573200649093768171897837844866816519443400491506397524054145858664726963888260723920123315070915701792695790633959370667581970214267329763234997603679727569096295747230758236785809018483640383781740357384872289721073149733286445068771092489371868190125026313324127669764876306504133605841687023569088193617300000911759099455682816112121285982464623710820487141685901959658310849537907438276414554849978763878695346040647876974681773968085832044720296877133265146374961739624698942579780945161657103207328528113497525888349399151506611253232464650125645687052576164446492718443779054820727126640389943731477286900700070225447996397048662541894987945156190745686916963233230164171804383840080830501991113434306720559705804571453896787887933091849091408252785078933696788909293985168496672949577317465976336139548012979907789984253598540920241089318336785031073825957703537053349514008365329906230017595127532017303595599004455962946587525669208240220879259682830127647725716878614331452871646567704414924759637994076768239469088565056647299703208946221229505154960082399089931509506483043110625258079504231662708696012211915386914806849894854071922883946373421314516502947015781637285276284585147500385333976628766854673751611262418796337543652026591612407175689599913079475965639424639863760559656452552187768914717878543548203383549733070110171675270024292282379517493253337633403472436387994497517272287123689102098680044235909848730613760477116670504492766143437162738449030164888397739494867007865687659637422083892826679324856564150198898031178828376086740736363092652632700546189570345100229937052870462430379648339024636667740166022263589858241529047063799505971370056673206391804715087303054076862995017812353296119569337309724078507624442356002364625339326068235849779430994493237017403858453690682883201594700477453763937591403650816486656919859008317178274317769739226436194089067253968873505676858628143180597275177940988038856233619757827814826708086580134790946593640256442150503868699185652173459801419178002299839124001169780813848201568478498025630658408683561887535131835567096842874992193167928915990866801711192312112865233737604502737818353114000472771623302767309408955945687381384080548708828343344458343997356682328599401716943134289197985734442168520865361268443916782429355113123679158158246909127576856854884308018752034797594330653487891172520183075282267015841466843353769498466351146123877254291447948490853204786888545720638997400355443218685753262886549953492693375022751912431073313360003877546926391743761890597946814422575547396015346774365700020114545434570541174419666900713953932985332637953346620183788999964995446755825352456519199894736124387145873269703218790131276460704576391473324371092658373141095777899215018665056593385711317025353021019183456094354176869616674110408365002158162599067655228291023708048742497326878647468892779299194056105383823485069462179538080678562416043093422776047098874424512113233087102105719907337589289141475542972157775366961658419704281658734850926576941467935615939263611211480407284593142938561114208534979570904260410983225321432725980966281639099922591010449829120472600219601074906504263575369421964729258399513105047550106518796332731561214821046748042467620494285918512593948315993212909490773169382471228041299161834716527760526954893802753393093226627202891981105702223419644505904441054085823873931375926803731961958977460529130174952524425307372476672733133001893850126140265826969345347610306867731216345186552725082987397129858850259949679664224800539955358239680946001128164715763057460770565080041132253992319121928712832746670105808724943125605586432284628815901554069992145408315249092050076587536791972396157797842466259807622123312404984373252417396818957570149188542093675320370486906745622427637235474728426207888723107573729176503436162556914988839614802317786714309834217771771027098521804867843114521845804717326163615214210370203089302074132373194051131148036736333036284058826423902489926097849218058296476664707995958953484940653617318471265311521347061090536586362310254272196349090677770843027896967648994154524228954607277553318758019137919800965602066765376920922190637710905033550116847601067554915846976712243850036671787060260745711008305284446105799197090283600901221896445593438128574317591274355739108676277951206654084364798047228289891324525947319569417420954961876278013323273897147739937250149182487889957875019810050345090138516663065215491696962877985248347591341406846264455644770868669598395246695166666319771947044009419388972992320551314904918907953712467766700035479825033184301900970112272850165915617702011613223034889813379221453666835245142624644729316677638524857896700280784351555739730052352696656530628883954841453204012028123307462361240791319736506130768690085504644744620534760843969411664767218252602500359356160945198801732817179964251092259617193723999756386288248155309157102011409233611335825441100911878210629913424816969105266762862103543963547262334141174737402705296589178456613580779080772938291011704885375375547096288107742856157005214839306994886701112191462791868121449860921690018841061694565610579720621707600854474989947141881433326253757407261142322081675087217501845625064816558237441423264267563991965429534539999713334043296693776628507286399415752876961872638011999837564576666717445177844962521072050023440104430999431745609596953317093568060226222011131804266230602500499608068381138711768078068524161087370919211845213858502944577595984478478518554494904755466230814136290649698552733546655291895528889211732105268981532557570071020553987641950134409432987313927824230549601403286536633748529408214363660710946512667719403633470722891930413074110310483821938692262224744096703125986079043734963636354798139544224133893266289689478583425005495257603432307648530338285421513386787620536620746911756378004607475700891877280599408127390474090847876578937433033450124440582311931621546552377914616996622922524651952427024888944841756679124788554552964113925234043638615974889838077853099462855198874505126863990963480600561934641087288224068505162066990027478801023177053372765346255502855561481347477776871868666480425386059046286670811377928110851570472328108568235491019149115143845929589933722780108815635780554772312258032147252310514198468284295641341056474551994214244619444241084206568914890723845447879249843161179998957939332117644569887404085080887193031279021345877551254681702630932246273605219670154019294900038269567353416502260049394302369726466383961532573815223550504758435722909442920632425230967246666685119816696695958988899850203002516149107725432639531260150573119825428071464608061589303851447642408141360266672274481260505170940202730891896952364337983079934782506848524188168017998932180314424056070169221420392065832528147609509618944301028215141938393795100807708046225921890847470119600076505973457677260321853028361311141941680428933293425295258924341505724623073621356894183526768076459260964071356498422384588096900944093161973283259957514327821979706579548607105614385195385510415992510942199988274190320403254698227262896459024504578637428342439493682210017737324448637169271700254854031981310610167860770593302526224191712420316095660780051611757084417418510607820778105235689025946790282340155545683917919882669568139384848604838434463711621705382729441218377359671733632224611182780248327545767258692032285975964498827748414940344180149556728265286356850508878572082505496899353451961490449498573023784501015061566192754529115090988717124360047754763298661110734910221353001391996043965922774538400473153568519946944702162853908235380944848631148464955096769494004008503278696993798752782438458168611653984214004679253944265045582200085336503541335680550901999388723007489456714219005055191252246758218676716640612591539141039675282524983114741854719714676235634740339784564205858998649992482540834913724153895856557974013902369853767435149293011279340313072248940749887900579177998492903423384457713697118581201198652565283473171452739487265249360627614435235558403699145237924498368624502831142929778771964818095421388206045359389590922065189694010188908330662745244746533355976651718182489930075170041367615968330236778534337242995560641472435249434448870318195096793686733607629522561554590657624677856713393897242985783559637665943411498698524325807989823426209339647582280024638787244396424435255942478678441246933130648542993259274589366742926914713020237143264136854933405906493514919436597010734718240504887042083527086857580779796726499997278429700664994744679771890700761820461816972664697166170903717998729322562302657219564147012076363554299053974911304866758146352824793904722104479055278951469431320025536770410728684710624968059426652922386109036579209949156129459620898121993458440470326512390780729382592778822259451626717260179889967445332789843174324768487166716406773019646026168902805770332796804423289774239636253988563203383324547588479879927882598613245030448789685969255186094082867571935949729227642227061109326826756464259623318387150591323525001075823538608815190401855899418580478450940186957831105161090275122153019004544578258214650405470915768010448462926628795920697334986270067512825676442534444985758798287729945263579929709995030995328390447037421874238355225993096789561375298813316071095210759030779780320142121806025946093428448537435149205912248767367328609262287346621810030475770354816466416800899448204824165536121902600011177131612726919581964616746106957318322113045901835223415041919745040056148482436537742980854189621541938854736008144867020270313303206939787464512241266875403609718825183942083555358685330043166476850090793957507476567575485512802904826410746567694455475877294998847324109512030348932646714833130778416705326841809059861956901897215618527217954410375933251952123680023089784707273629750573227655120194747908174054370893209769752202211961495520127395681472593813213303489454448669502227886089978169669987792567341919182078879352072859743627555689943175293646471910420952874446065757314439060145658008223218145107528669137815486534628853788828023514692273642071374062784502239416157078224142763813169967654746499643761769216219980561661987429209403736565621356366057586777147591668967266072891706407507135642348580721816493624954737840577565668632915937539667843966390866631384459906849003119298255112203169845570165695600156362601916530899325975614138525100634674299602917979990507448153569602429251498628968614161218452640301256311753539205463351563824163741557424293471024984332840712894335179819189331384773494003141061764236776051018820744185066999423890112887621649873303782543320354143339990509920978434605522035263706145508093651181092677617876618866493683612369538774347055124773264719356446144216137679764363795821504809420019229976393859793954499367208861188893376713353471208482700294197514748664477709912347605089106884466887013458058961387843355440346804266439921118541565247112877886560940390866850329259548115821258381332612529481691774369015205247009225121313464295030981977544577268856235248095929760925281555548586504761127857371993929025313829152710312191924239532572740779929884698200106961623434320339867209153645520093423281119786479391248564146087164137429323811758012057555895992363245546072348052282911284419320672158756556107624125810620116250714977834899830454350515232359801523139597884281231946243348545482633221324207166994228096115618047530066567060267613029626310731869018391383315989172804916055887413952758994768760773493424506996473700430994310836873756451679751010074494369831252187758605928532678074589210934383371217260298144829977839647198259691609712529817256100623695919782671835591502892051629959148057385316537945651590181866820596407844825940424751205101994347715892821071748684121588727095049665487983356092954330967823911146850170611398151799225057079966770142109791245858717458505041660019299796437011387517537349914352524374641170237988248939304162606770130756598998081502141790458346005716339126499018928875135582659063254522150504275994177922487519642127578725705349236289749656626048052433041789784908672071545669116113796145637033483644682662823275997751006416884667254815272555739302355251701036742280687722091659586100920495639653555924073166358855520576564888643687656644987520953362364912018010087294084750956340574919933667116421603011391641491103050081825408146952726661957302520624025731380749426918975079417872127075727598327179814315622335135618573642556763267315326814841781359902109408919975425375480636396668840980184141925197305265129003611643886750245524951834890302289323476223871609226928992534279929434046663039893780675372475918341654100809694738855301019783164683480012822678602983638197982896178358146641896138469706529187793916972269956928860426546124162495001135195493575429384296721824595034911843815236645580221276394630366605678376892625464538781659131978917720579137054749582112833174162833364012842647899806482057870372948853650518072540045912045331413957535605422493586733431881172521757726331028718941108772075787261631868731007468952727303551200041302128579621260959367437023188485516391953467573213526866685825125057939699786775168990522316068407688055610317845982926035745911656164744616392401772727153422906468347316767236149863214895523111273450103133773551712700915711815326215994531970358697578356922537537134446142594497290698975681139467831221116262374928372189752836308401531235847680674313031205291038392312102869303180655938463009844346006715933388111399561756319530072758943832545080265336944471376840232967147016662782830972290764795277786329651174053199722871113815425124110863954920396369925689136149796517808950860467316388124215293414602927743899289635260855243309117181600279828408918815535447313468990991780328537398995533534075073041835141903219369357441396762324155201502980241430775076116487886793943660354577943412324171644656638660462684127164064337892758121122389328383745976799742302545628036373136242469812527630833683113244627275628822566483070128035886710549504336168794522698081359786701480462336315157152391389374814681600970429435866360994535561295450928051035453324271293599652272133963163810199487082654647853452420447340051182664946239480657103349324700124128936572560032841404772016187683964204655899282928498453533684608019780488083589338138988679685094975382599850334621018663947711501985043188433839377843866615638268277012490086599118852200033031810989522297140428813235471369099714879300398893163465758488512693909780038123833410162919393786396446444408462593435046104213409904005763694893501656205913626755304736524344823437396984241824891617200482229171002936135717866853503417769296108728682852122228499928019478284576286577366480043665358453481547008305652047077427222637829801274341423958932065276613123592853884056784653920692890562127202646848469063084610436132324185286741311461164987108617098697918232156831708416401012020986787772811884680505452038834658124648640547082316787376355641411657726246503226203651250569291465397376139738837900900714710712736750412639379887151906427195484789370006527277937319009187783119774085294813350076230417124042997495946354433994498431901359332820915208269670498237600320117464920907569639084416332671381613424402916376584767084923378117650660927746621207012822582163351850728738675497038428096566678717489352089318170967291545206121062063708851373698396948728999102069665112930926478697453668313406508568707848854091211670614694714643976875985228584401764381428480890608981796970175381563369593194690903833727813433551105321074913268191892440022023525859930041243606454737543718445924383187581627542318320120778845617066904179739905836248718915216548313901003323436194086363400713548023286142283435624401330893699727628108072750138440263553887944313647468299438201335824620741950445741115372904536635753447811270500499502871775939574889557661948400264083098526367411648963124777484002603046380882622410798841556037239675199861558965157884469016438402552731875053531541782077632543729701191169003907920697239479628156747982822810868787218766485063116163445552592437045229132858534542576944375782168231884693736783746884489573593411267649540341712433087550556516802426368191033973554104721183613132381604990241938166243348556032997374754818733754229194601115791609647237055223678791406871717788090373373941054250862982943489622858307143997901413578527976983680067487314156043289877816753296435517361004549144605978912398264195932770984695731551347896426636312959150552324324536882631423869553539432010746038665541802669010339271229590208403837450744909075659466224732228479039434268720624757371021324638798843916359871045033349194627365099526812885511779592888821716595166293798202293525886476009363634660947049480606952633848793223846265027173613402375300361413877332310715967820730596098220704365033718581588962815465970703369264144370633287677636058912408234841314848096674626159153655952843542211567161797207726527671681633324780635065207401757221202658860353904025403307659332820275492477343030824570258645532517563756889151796772018559523784858448203597075959790870788240359806985089904384723244636887287757903810828710465945330661857462520448979181797174109859744276502852631444266097913010502186239506155106410198094815133157231309181044028965981984949083756946196079318858922573997614270835932091651887462929633594821871447466563929800334569948275328762112034188922247411314185051809617512781760050804627415192763316881159895841129288975904017273529806659931858721419615793683157463942674102833886184752435107538654493535508460035553151510407379491938155709965489222740235611994393961706814213174091617457073211318327486644547791193168709983639296214263503044713582360166277261554482776020920041305123192681929742190612064089634770405939189023886859237788059390269765325334559798370687100832632704584911281398169011516973305032317376727154475508947894929354840102479956326950053075699699770044978149857792048105544604245682951797991327672355095613619662474423251397194313051667082458750223982949641349778039215225604798282062402031626455601530589195418215640603856944499857190434454503625737010143072285145477113516094910544210608619612594876965006341150926495410778771763677291596004542562615014867712709395762086851846842039053347099924696519835516917801601616599395730514906584369970163752998769277470774244704886870378134889041066145494591941667800970094877614386935082714865258122115796108610053129363082105630633214645112922418756817064327347484998539213260066541687319240956484586972492518880299769848562724768958483033950637021777658184360579616881838958271738409443173540671148042148661538447407297760267428652068694086616191928728362523052844418921134201675567780799097492020382854608851338476600427982730770979601926049029407238746048314362139416353369547378562995869237771286321508324273654238642435115441183870222066569931703289392217943595742612622593328961986438689262356342698421584091449010242622495060351407723667657036376506493859959644230775895349977222786974460451511411951522948459594597765322698273704949194071306390838683831330218375497611778832804996325739883942366467967009559122596481766208327722180231457035904432540131556371831267657709914575992264939080053398350788600143277198130457181754852569764881429020367890330212518955608708755240514381413301413876035940258711941016162607424443763571358107806753397634472780154378766838550064221359980457130482137743262053097484630423783573286402111391798154178334381796076131456060293407662875171657679700942673977887263994316360555284172825185924163216175292315262678572112458884132431980785258038599061412979696440899074881072422324301251605330661421353847892620353361700479236069997422599470167897445225713842718745138384271150456533196735134220202031479411206451151400298986317922375287752682520596040732108634526394679773211946868778967682425433644596321040701630708565728777249611173245466775497425955867970975354879012178607216612219109007092932453520485125037408387184400360173656923355872097879094194579262461187328159759450696842767949331053342516580938832355141138668837262776451393822009477127265987983759314127919974972792434422230068055784626250701207298673730651924148637644529171558537908593823397462149106528484968454708387746274298738951629106726831865355960566931081374717018659515794884754537038141645842087674124590785970246365537528828244042416610082553297781253884092752476847661549623563593388065135814718430898465334254959958901410987920599170319044269890853646271145205890695630027186042322515325674100679206803783178471517452168149579746650742189020040942403985255108143313027544949286963882116064173612221451903911147244648142666201253080219690717825256315901231945096007344199621203155330485201934619332792453840326217105968036481486060184733922246244272574737640655835887137863051186235452494769182690621473304191490242551338187795737418816765807271381916578543572305750816702847080001688808476604598982793469359477457553489531994242261473652289297857645057642938148187381805196343874217356505873249123701858420414494231632150787285529384534974362882351503120087486333607153774905258330343199030400259175091653680927370951790653129659601111540941256525949246968160088307640638782393370888314288224160563053646554308115205554028264090795969571046724627070323026663021918797169908001544198274885719361044851573209277569808405276519954303437110516796085516019848447982267011020412567624606694892842384818162846486950073475276688388097662129091826902040318756757844025489746698929409843821923869467235986090000050942095804411678240548638636156982418703579976383584360562192911277410577800183589694285490279758187396613864447310576602793129039462591915402463827430310021880922334660793361723822320163732315749071229419395492992095399556122923044940389819052137918175875177648312487503079517875324525982732698285454562567510759506936740945339946662027287408935153330442388741608233291567220594146857752280454255042807612190294475191615470878014778035286480113348454661416139535080162438063364630047295766107857097052935754986115924535787396039821499608419410596246692677949349338171089525130566912116982444369490002227405563725472932733677979995052170438642639724304499359673479896694312287244259249961658728911489116313207437964715552378370554782203219796598594849372348759201742038886018061474830192167750006128837619837768424200768195429597896300507254597539071729991919293240137140934820627045379782863154019850919625506218168736819459129020161745130213595189987300593269737206477943618714194908519274069973795842755177823098588602391612992690170490983706640788941504770066081724943752761996636648977938598342809265889122146667090149694074427576936430677242095808704259766312675240423760684612952974570619690354473452668274803261099618468147496267827387999731958230890614846702019073933712464691373704202718369135287151918917634694209700682152509382483439014820163391330964351841382509585934623816983743159589652062573874282122423143890329507789885521457091465337545282868556997944508831844776752339262276252060534501320070363562778490853286010469635933993840478282239883339759683221538793917702700732484190330434305199159243543481971481267942128165571943883171133165429055984362305759218537944321176939873780682266027091282811459916202887941190693014219273199451746872531389342034392000954885707309335496390076264093146745026029720461653501270360956371483573143812786458907161843536755430529077324959800794987119175109493740226643983197745877181252067087805370547956395035897292346666514225045894872536347325068338812292913467666546578501738852736417031696430139147866648669966004858795115434429596330197327337570748986502907113744230084113620318153003850337904698840562332993003612447427317155222049481768709296625664848133147330032304735187588839104010209868669740832728901654164588114205265919264805330374359664010323481977346587648488230719956092382457800036416558996153850643069398037997660451261594365324521366017625761022637035465199476478436143252633297822572903836583906591873507385007530060117058105148159764105893417879768624704894479207285575514405300798785091557008396834427659559449807794783291957864543781947978685376498337889209171180561247384665184214137243608357934549981823356817411776972789854249120125748991027595700882553207149231640428841298019168608967719208143724971736945079727781868563284232285083590936220993616993562410552459899120041470700621666963582279970721607566748940456332184563924173529626782418553888930049047112578166647800017130889975162529613474080237970361203039830447448870526908054269773957339549131163299562480766447985183225419473758710700108725828694079760707459580696627192010517247648451481368120545477202736987448574582513384191812141038044405814256547751640497310375668283445791197724223695691277540044439859846889703369000550210657653723227833718275148863004208578500727628210960090179174040563767758678035168109856555259361935462905113137296448077625082271289083168480268517775263243240464954513616643098300513799968632996532225575277585371068031724234004778311211092779565906655849693472593020819797405570843200551341075933188751589948927453821067985062970692499942217472274828323055629346170485440458591263338533520459379796509884333862833797981430587461633461366700693937820909223312359980999714018251397330270478413280794492239232487832602632043044571506896165156822044368057848900590253953101569780515321291496933269963534329646254996471766663045710790586691837816103918758902118678515603788660043962410934996387616549989055505199682759739809702431557700905322371137432271946584009030406239935669365877596560491314415163879382530095584761343162605104636697146566336473787498640153883834158123966268567037587818197359361044724482805334976141295863194796965478565387938387469668767540071139213121253248895997046912009315427920872237105398692705768971213336587962360089012677968277688776944557396820188697287899737027221755609727738815586401686926122993831256389458668586431408632539456797895391192021688175803641079122904192969793105351112333594020076454102534066413883952644316836865244589292310277590124524921913476161267719109364477221073382591643989221723423621791094016315796988364629100344739820168649641643068496004256033719355148392337179228423920861181324281013273236464208477558946938099044564233215157164683427896141415522420709093669422700416545865813015842814515058172435487662245356283667683234192596811616730546976517215163608979956206447759737419957025010930415446699428255051393891759463093924475909615259572118448266955619240693436170694750813442522529831449357834896008177189801426398326888849081318086285566218581401159415802909396631924497238071868993168302242518383918743572362026021418815835767559897994878766957369871580995914453666038189999507533041352615670308752015887916924807866757930815867755241648826126253661761091239248876382088498933127177039715792621606294857195940810888284315187317890257282488425846815962316087981372192447291585126808906527351526582473937071892944286451935557144938772068642553209815063695994567165193837820660831606436694550804753464593701957250121625657514716201391385277983389912884598261564547253496423411628720673476939501131517131748289569497478319501354352784756607194603433336174362145313548550850040458790664201817524413352821914848319202866692870959906540332328532800641771866573586167873306232486927492578408599420745439737271776413558415728443281249645736770231595038212366195864133208606602674921324064559588717408079260270275066825799058656337080770398577204746869980297598365663918387257165883538928809410688029177853991627584555155588310181354337382444597570918193128370720578819905662406684140847099286204735851927283100702518534025152989078492912886855399554144492331485589907133008211078044738703537953851755799655048852065393229836858684940006938399737114948800262437691200529004119485060904471186209048963854151959798160619294045498367991983188420228105874739194740025842636999534786707976912418139510751868341250408297102694626363183801247470448358174186603724605254247048863584908149656085834726831815161977849980903058327083094047580776671544609788653317352800634877100696834195947229538198183908264301331271320062440025399144760710197515782839225003264352611097629004793589835031287962453286474187047642261403176947119875830379446550019899362528464471932981485079964671585570525054559707819211064718504897377807835378381773521696417934847865277944342477311023573285169401913694150406416541434767876077316970402912867099211768141504196911030224003560864887647553045833085079528633483190751777639419016378887051396472179599123516595152033650647111355429960794565908763763292489752039048244253753478909414470942935059850161262066507709655749275877132742334628151914690509116985401881660504961786481563563168472987516952299950793979055349775416627708732880281332462024163236270983509988502899238342967169588831670007053615130669784235560903838152784570651905663453841613052966518969894644088899237782602777951167002845124227190586237432447911470239513900202011018336019058976959959020899114474839915208815183201264289803155468649308150303955627510895509565626337669817226700162435417396841434442653524647068906306068593447839318524727056246776248970863599273953910662731211189119207982413087980909286405732910118951231369227353005900790956231083669764018412578261431047082645009692020172433774231494574295192812561034606794083028149297934670597300489053275231922827673320228828994755701166874962920607931676181023141977859944218052478047115934671237140136657377727027961235457948740203983001545108632666987107522521663419420429890114115993691368208733853512412068008247974698768269309924050339139625275231957851645047503779722173642501259138319498016188893172252619638451031989954952282681524508241833754536719999767354457334564312806613820063469534415400903326669104663725987597170816669435839404786351287844509529092915892599285290189413291633548890681670992892744783303210500981202392156886214288370097493811143980834168761841795757605805271311868847284006087709880417252795309749387969305898435673393355724510738174608466524361796347951664975175122704792201113543859733230970294307057211269319457867917869102437851591325183719350761344886642687920728410241164081462290473704231008132438348453145551427686129790574730456586376275320249296299594095885051927341838781046638506433326028997359130873296126411404752936523494009842446014857404390807317027797022227863026290708969942350160891257765221473484540653025461923996149475813620951168564035374955083170887925140702540334226615564978774460949435077533372782525833431287992572812401860291382571673530137070842340349967589511244750110823398805000875040327838290210874264859347796881512579783301148283738521386804955288536382387950302803064434923830136621676664399594520369552091676048786841143286225149957865362511126300216151486645929739298757331937258853518205764867880005749045311020455914535884271170042291955159990991557657842176215173088644106699288823371715658626744444186007641142749329243197186640683523155974502495283718088423934530125513131181065506551152787807221517402025448359296718527850634655883910733254094967290542426690282433131918931665921465442902808009000781404289452743505190128654346405214517334657790178445463589817427882802703622885690676684130855971172877165729709906034951256528579483832916660040842433424011345834118002362823219923650426016795971016804756942910507712414479728329638235678610050889025836028187307097194151426184167241704733123424715666139600236488208875290617973583364195208409687825625809079245679379237753634787285949309116045073544136946952379094606189706832045864411862791995763891271508034811789225071441077863611213542514471985535814057092077338015848827467727707684888937962229466557381436237152096073586222849682317408513305068937163356237381201583642874109290669049154479377341913423000054156295597632436550750770542779800917848652600606100045527889695523030874891881255863157727567859382174232176570015433554770802073787038862227507216789298328122504197048946200910885156589792329573706437789542479718895320043957731394177536383882540006631400479542124093518416519256709156590940229701353310047800791049547797984116195583912473767138654226130263306053542316234692378000458732692657818527589909185259116517112831925908099151315665432686500129261723871276095472293919577171793936431438407931579846185204127210453083782785354752915622220811700280158034608185200192840162231036737072518965882823010624578784942850015213982914329430504748595098240060661770019587102326349944419478668263439978397452152430249176208699923111426107465542432662237100358886932107166677376065034307660617392487040306973377088377304630281506217937094025282988244976979014755238346839536097211538668473377874166744865032433702375259148130087121520263453416058738471812426807295800884694635644624349314062405319771348684807741767064480697045725697043987057331490361763096590119760661566850222800175340737163690327569687622380673104890568350369460372734699437536718107339719269035383304830202589082935033055101581422316272009865796429878113064482324577488277379883765753408956115805325746781532534573202320101090683351370596110295182817981588171638728264471517043956787687869008987482265993075105561390644576983556970680423857165635014730518657674790532308047277019331736967956661252409649218670802278565960768410361114197678030833709937963010208287352893845046053019145929682352940159554319153307018890720808656865810244741291645734557821148984921212547845862560493369835035914719765378605867470050533738371973141310903521077233516335420668419896564981470711447007967426126465333087416005904855368274970464214188722509935591382150176868267807770210771865699853233769947885649266572187181894026844570272754879796093224198647716290808585395889009908927357453349207130592942760658609409519692755055383534234766130859863421808209791132823503745400013425640836222711588326661067855413330566980895282226817317629941846243272725018868774300789150995132066997220152286827237844462575478786158795268559739285803406014665698355049077721971919076718027821486299134065648179454507212364935238809898166328384371666135991515136550750958174594706751990517553978339267026843165966464167401948025813743415393097095058395374712732833791616511766469531998202710445914434040722289982065172219358858815245134742463050519556138111003875736766899592526198135615670190345286174308330177361742653096550587106542776682436802387159939611059387233620398977039330234734194083309328731508089654360394728059584881542373477468218454189346936393288224594459310626787851920354733814534063123405256600497812272096818647574938509947854385394923920090488223148815239797868207861231461596016072920596753087323530468663248987715652587076698732905759387417848921774107153335069525953731894779237811440182665191083366433686101302149323490214879756768649923141783715708054525501105054956746292073159888509931978184520655422580384035880758985198315405047539037205128180557630139340429082184081660108574048723852631682588018389516127374144952670256550323935068861592224269419463860619051062352869933276928766026466544236264030928612249464348937621770775880484442717042242126883116508418111699301939237324428488076661432281953139768476391517677688781814395011007892049011109653603568029259033984417450753848447803728449440175856116055461985989587815923649475544543710511874778442689439619059516108651572236003890137097226118383750919818345948657341676023645344466695502765389397366957022273363887003718542637640600673845639272788657109922168797109223180524371084913184964572065925269870147431058301561107838301023752705378152930983530826540051962908929189476154675882663987024205532857665438027693820530616454809772581782488114571054546718518575390433428679554890298456073770122723238492430988025277146979497588154528764964352931113790717507833886422588551928331389698767343527457811163837579060287889327517926181041293534807873099785940613051190243905445264987221253731394513741511457435493559089345462336493162999917677403094622544908328914972067938352943653317584697989764108264685487936299356376171420680948151199790435924032994822948880910889884063726196581691491744893357574846848277027324229819350324650500456177268992244979691044338192816083857298068600417298878714195677213109673242122627543136704583023029167922968955623619943186818141650168631346323073638434396837941709945291625875468179130120479447564721812074220593931602488334611936139860186064928972475928712337455652854202636986420931677723919063054343280307122874233326050576522050931266212866200455668105301940170601977680343195331177429937781703124629243009151133578258423509085114998715403009168981979861331431793826651575294133315134302529170905172597898302670134194225070899076831368351738941114314373027834173398016317268042542589229593086812430708399929566029705397191082015060754271606905614860989796313277706090914188646746247381558434285035535494098893625102139835504730609424367815276164525466655691037590923947050504343762396549158185706365745719938818995891969693382510514446490566873607765875689689087966582326168411564292440500665323051156602425575300032089451191875213487091462433965095824521937024736953764838549111280491737804829752702684978268685228615275766949002205235157657364245833805033996528185620084380690866705244448543432771078877016074848588045513356777151096721420592141709209842337146954503441626101254357651608738863750573463984677753171721810647188234829519976994738177597439925975914460850721819518703770499755351590748441984743794578181922303876131924701250841947489808021849147097597635126130957357556430033944356446140868486753265076444034219112328695294682537205380375979842349481937433638276673357080366392962526678473583982021274524606488088083350737891974974890367313078002311978693746899456295309029276317566490591903563424327275505938040652733877066101717053097410121574414039108750688401425831107246945196821149117979890019822308348787998414014838650861802827240921822420566417428899569627798314682043778838134956002514682318966798666141269229195856647015247665697311504797327082610127655674846760868527119785839294990950588743814535032320559021650176841747086982689207025074960015905614659645065103720348196333712048372337065878420355308180082286920235163988528005229905668541623699128893177470309985820073218544839443719816719730082941218490433039644650246331205975023588169368661679798910738218732828213972508589348031699873289482317401139740191977676600662387196123660633430821362788172453526743810531143654215937092389924309114271613716076608622364792008887715211151086996102600529566819174099951020706230752746605861479830287775754290793026426452079371484441569887093511583352081397405246570325730739032904842462626559937679212479978794628184331969020560678464548657840759057514314645205581428159393520201870217630337974529572525475695282802223471153407800265516409886942152065646562462580684958454969645815942792135103417452165794717151819339125233425374988749276094292620431356544984088419017770774074438025776913445992177940314161666539041281011808252227354065765096978223243324904596242297159519662240930960461167992924644875948574599039372328812524053009532746232103952950031074190516313092825110343036442566059360087899796068307220479963551572296055683231246469381668455165596870749143461951110424701189374999643454627608437028135157573306579569517420424947486684864085941595688653508261007021548642576252465239531884422942922572566855728541028480365900949402376299033491814685884172017367989708508527467124041830847667214031136562025674618964063758591575187298813585197436149924360596456312013356260922177922962120819456595726341249048966264538632332724333425963910576510859310265024365496248113864193740189949985174511575993844980907999590691349514951822190991420618532975314740052325122290317289834607649708247630329662180768218088920588407612686518138864299766141850824728591357056439509127235195236895134862121363334787364322628260035509724827311728149577440898737436162893675403537039520578502813418977256988039844183838001544233125473491034621105820037641699419895319593410120557031083836136660356785651329602357077978039643798413783431810884403790737702566301119937054149557897357755133057125234317035292273908754770282895100319879095781681173984386991690217647392385190632551151494302783353463139733034882456214886686322703449963917056679190723467502648916365950019548682870190348614685831942484577025610756411257764123668194023831517419481489286036933266720721813677815144641433299597087629266792330988352414057428654234960465612804117511755728319503613997296341094164199632265431314474273088387888678127705162568937270306395350096150835450580246015904869662715739927296923891191556751403945670969170691556550871287931234937965058891888612702124992396506609425980841208105273420166150071882951393707252537565666658755691178609174287307255185213956004011467835943262951673239296941494593128391040713813248467798371134035342364192747162659520632443569854216303268221410590144989398354746595589212047500988693109516986938224434303582375244592904320750256710828298723503851276494240744545683678555593202611171209982682128575221659281300782097779310304618883664906423909859970523459142983371991523185216102851099814578265302322034781115340129015410752884893496985862256919533174154415083742121555502832299199571192705706582556273786934760416454868314546890953341089155795672697066722869486501944094065085213889610540434807814652844102375411093720793104468331092368338773081284335794319745380720908090939039820060834068350605936031626585146309002578353667913587390932872311034871892187903151789241737571840559302342460670334337819469799919075907949977525370166306296532064537393202929128601934499800674203007409841957027674999942171800836581800570192196557023977212949982951589162040428717072434290515511632201756711025777439117237999040268111765407765039891303973914021652750040355824924072380468295087407704259465681345692287367016053765157282466423178382786539500929622122649169944512703771476433638786053783724062799592366937016095705110363301615193687420946488776653349260735037448555783891777495685821404083730868299590652399376455229296319339921879385178254035802500077626222902187403305401991516545111032602519405226592369180351289038118249816297178891409964228631558819133458592108819546049506385850490462413586972102116266929382247548132875694078982833511231559226200279133404376020556328608086041568095529861771570600772944313997158516231326881993997644762744671975158218861592672862146996203999734979169626241053929226314891290005417876348397242842189462761761726844134455852344283951063182437580808364212962072673566016297309543549959529619789862852919951799584041822035458943892238379682799788982815063093344331898238485803168038711809629456563456328245384407476891298990383424336621661224276403143845842635590121199601690930018754281485655194394599826829723430540291743998520934775980243393803453279094596582015010660576069084419313381736592822663510743969626474020798327313852268546121379284105423148778247258728227643553973634117329159067921634415718388035850151431970856570731695155047391836651522952895925546628355735196423351156959094882636886412040068348125482146331360379270773234247339979523808833640099957443335776929100118421085462669137201736651870030198567584032415521277412039373295625435816527291078077326356171162182934738756034303598000251608261464096219864785591146830533726748833435600128453746463809075555152261391940055843005499716131408690167375417956114857642645712936670642099824404486170674373148280824824605555018764687148393439940650496140136412326025029634630124310078795813571000385332060504747351300902447604840177330175009764571601235053140078183240157507683491660438801398332543749056825826400761807451030481507936588282474050795541166063684470194422994296570797271785606838698524603442449644887819123269600718735758765681603115573024551488426606649514529766880935756209172031876695821092743139625721468634622481234985512141163287095475851902757565322097390325682165445110010603223390734888113306255456023382716523928334253681497108784329820145594535419717006335176763912788266093909482860231870518526126856222805469839109244731944737958355693431343177773326802178108839170551948792748255269826811266608428120170685202256278842573707313616256967122162856384941962549656637534731547854228770441964922768060859884662305243517900166495273296714463871186414490611266739514591451725836534537144855597828181857200034074062926705265787630645371893401154645477395495971964888044572816994267319961877493456316187041865063883549125852163186725396017174553435826438162687876120888451274894354294972510217324040451754631801473135861308859765322127343746050154376684028599447103003152461721706995817668555240980106567481272494845770822409742716834617804587083932975486456927353622829403885274305600569201567035405235447714638336486273231753613231441425395964802666238469824774544399551813664156209467385980940610980745360619566496188678467174884146537416948793490731306357379863754125503611256734770572699000790736185804968772198462021454236700909326470374317672302997639312001468272835153600857988494710852009444511874850033688415142434120435321139708271059912885212745274020088929196129808589144281338159900950037166553001503544574643995671393432769291821210508112004508164682008977984663106942091349149089755786384191857580008517542203704523770557848489128109595295351906187662236486151550293640013931651303604068449127722023303289716205338643315479723896712410057120637203665575547324508188964264462743555000912217167750217174996233742987089398588866054459217705334972999491000382988980120481905485211810506991713292869219888997740188787141111666423244036675264440754032184502167631325033184771136604004683378873154490960689994851009744553789195331413662501891741806503015321657286372009474558100395220702776615766303097228879121217131499258692819381814853943896093500122730935289851238863292435142524227117408830379124537171652671513608101054939413450803799072719787051522233470998485549615745465044487379541393722411098936883584810587229313991878538753178017562206900079873973993406895614082599007298700716554547814356096422039392055621330105818462987872088802788702609873216381370231541384146602773633668258226547994673317210317331318348744621038719712871599062301021083810673557183954112800699829085520756882182624572865751060576994157117667516704424177737758624250252462408952874936652481550458352038036608670922813441372288622634640203323602581208856298843505426888873202171775204998681228505045460220831227374336932081166290729164001348866951141813157393794585313798473228888503711026814891053689624358057496844709625036153915595424848397037238717601352180564336867299931058043638567428399228264858741224725710711581923172906668285995027001365958234803508292112672921660933915823678669955916647082391277675907970248619661935438711539440877481418362242627843871905055791381330012159268954703102551523322213704628686765510366360930959852584051529173313127088873449679736948736199988697495079923851936401103213252533081678564111243815545179828014994157866737416117598711589221812479070538384132071866027031190033965401509504086875138633920492067551592614975589271670760773275236734801629758956091605261625105158541547738287491427861547345062882671724322942723147723571533907473395741435614988591256664383016718250665103527631486353578911338848868882016880730754140968284695558769011131942786139081068634413710651606515476857400709636015928334467693174312588212915141665507017707890701773706176466381235178994835030034043865300276992407044841360380298598659863023793877957470274607753084230283930355874609267507998605937267067907408885798360132520989244883208068749002818675000706517463889134661512070542725269204210760929797149510727357131430231435016725222964663714182104123719599704861701048978056097792874275144710413556017751374485281733397701048787864140787992908933518878716282560120913605017380104420886364917566530731297061620894086222426108196739709024739358788610211318858700181192937281368681150352111489192652255318861231314674166208940201489728965171738316193590933450590591232540061780481438356449713544114721346987036720661239811146984579080742737098682134925064805758799471518196679198991104847774253540656374167284945138400041672112412962602048418905173132670110416234917112647791611929586846502291454998997347691802271573861403827312038685666875394223309816660201637026254768516843615494601951514880516416888861087730996082954073845945179258388258372290146883492725071844358248656142653736750206064356325283292349413649599181392459865657232767571275338161207342107455546858417718799044577260605044138517251211212454512502576014019573746153954953957958989625265483491787264909382290708134438909834199831898363140960798607020221587122626551662377753612637289186725797986416298769710711701574596065432152816362075810159837196439518371733955254198302084952246991696297808700760623397888740470008633479157261125855450034086743760504981893702227156521647618327383060577384139375088251673468632509442016013396818441946649883766276207657290592515846994473970525512269163074113670451288371639439890271205462047725541512493510409290460238973969826697591274491889149887303716345034794718404099228536494295973461705398481997760129109050942120508379711711957131168367301560285718570478069649389344205801678482032046900858312178626180737222070709157933764523552627282818847661006879944306567761198384002848215177823783546628166241828803579883269644613467878194648862181051491477086271412256032973238309858383265702961495002290931541028544636722418146753854790935756690953001530988948961606097660453314340763354119575492685985802089365238766255673996691315508890646174839600518379954836118377350323513424986376246064208018965018223344010965538957695075168119942998221011724494448378268452225967710509440179524749091647978797041913832994604033915993658506196043389199125660905031147622264843417359278709598731085444501579296274078636436820330018782012327119245489366898725385969711735224918688394157440847065158358766985093597274361790305332861084685963298657483179801622838410817685423420592653433957056886552782691684586665629014660680314473429899754497878363115184748974570934950924946343599751671477973734317336859860893114974852961941056596334358014275491651172843860133724110523306082076613204423019363822992621002546107413332331837146079799068292290078281475285718845115700731268934087421846645599365266891985644822572447978540980805070634058284989402877314133214048460118805952667069397857290885291278845038696090431178247666318680436884443199056981483625451056776080740047490077760994690104263931465803574045200354335853018085018274874231425707496919089891867801070848785324637500195404180263400246192371117195276482256895895935231749712898638999691880061551637479214328898168834548430941283679633837400420630514974527254494358855221104078011426715788685325681651838727817793886733347949546846333559516663900018390456684242012814445038629435445101323750523040234722554856145721815058679293835159346577249798108968425931406741939687089416391808527193690878757874793963702705753444032851081130391675421722933186279015271414533144909241567947532305858971643432154385310638402011942377290062462929901267786694961779110476697068111136282656188128226194112631411614482096209587126428524942030314484366083463520716852829060268467346263295127608208623258259318932705143393609087870239007652897562892572465883530264043113411158064698457953769612831512868127015210537849627829024166548166613592633011950995165364932410274465497243879247947964442572068577549255408863086512468865011594884806325008174326272284268653895072942291786191788220869186664916873376938633197056526700907908487071294276505128342844692474762956807435748884267524549821331257076810271412187927319773930117029458665548112210798822263230215410470273715840425150761190159901429618607166114409501610920149347511257613333010438442083056128470614479684452345550924196531201689544727470589149952403722650332407385074633886056015437730582030170213308289049293770877172082972469602987106278150149630891178453303537131350553765817463287991045212292682027715217107647969624514693241044511068049148976444957556381675595887177445490725731321178099986623733907010104261074484692890353212515211812659075361476255251370397057217666168465221166789201155903392849629886230653761818119321756239061974523226037374722450582565534131221059956954608686752015827793489779356981607354350146770979943502515433242642239119316973768968520196786202355497761291554607061625000462033756167165231466669966740857768521374502294736732427560863399742024971404501937924641929603291054239629578776223313617805239824096530034398793308289003763119805261546162893727866203526445818111521359428206029943862692426763165034325316502241172951599191055783743755562817760600205027693545358415912859228449825109408144251072593626083911631257049587181426135081197655283188093420956104681737090528732666289209428407189569425610559073204941693350615149493582536527444256411660092558607825926034800228962568080216203296018898369495844945437778378591263137920516565505153097980296767284392362623897458667543149568017380665256941766058143112478393509435870103777140756074325379308479646434855912717387052676395726342383078273852161110973446048785420613835506891360730069829732083964868658605080425661776224578983862345258140090574404450771610090532665329969213539667528251532973681425191149342821148747091265146561919778373168069477977837554981453594346860738274851320975071178058078318310209027830766033556412316547992062080910139551888047982561559320157858590910800677798866903116069440022206544606587050057354885275456780675001356331754847129306985990468019294164142989962511482715001665256594996797498781890372345756504526629216010210799369470605144870940240401223382078651601759598192904239476224398489501871469682661895723284773599394250079563950376075305085978267435827582093679805850592332792114466372643949564454901481670183941370498155196602856163682677374650219369669277473159078213780929704587531167092935369067615723149007746999097485825286488316850370436667521023671599759213576836367537232918744282254024834423950747713603002935988457630495410370111351317139595270046955484732387607879971124410506141487771849612659205836550758728214078154667490081349967611866858549495442215904449133481275645881520349586186260280347786260936134342719319441633210489218527635560660341140795155928545541073025811962631467150618293684096279903095470449668714258464895268291831088339532528760933501426830244423590557677273803813007862300755291306943935989082471318630013220489984202002014346975695454724406029872275817160177604609099063169818594440801217331855649600501921957630267762134096702824502195490268701245624466575953824094883591252014536096399918521912141371629852172230628073292854666442702167685869248992465401221566433182772320397181966760919123773057575088648305121331185391613519117846462840389894186863373549028331242507286062570135471208591550104998406667063404513289257533535341356981896244752305995263717844174670389460669552323238488582231351089421541561679238574804331072327384981533832014818857703395286476726701805981333543539370423028046727864593458844288515901192078632674374749244571757583144143984252685520508274418145491842244071213860018618210011696180622279639159656757807807444899238409566841655447216219341216890626187054426884169729077462634537264384291127276285183023488712593302882395503925828202231522554547064913601900072759246117200122404082226259540619049852222478203569924534296781250318354350382549573850630848914143358118211808634957142423854045142059128490790888570458700211163190146591466643754821895003835796449761763256808970911020011019716470724093161362369783620261262238140672193458934931556146386981340153821063846264673420096805115432912807957683139185206742679579523697093062513336135613622489022112114283846627067162669203589648182575854212192812129026023398276750619932252970348062921001318484365896719796932641489236673875816595062382840024393051957881913064627499180604765840556923767872147377270340513433894960377170938524217847261801147832370960156206460253116454414146520456855360766465466933363623669344840586481277786809606524465034840495468719143392016023409459921046209694434785197547865657586116695001740076516235687253164189640017951237766700520027934897473081840785386363068778053696915029089322444234192566096185822439998851726614807878961080465490245326922410132363942674333001997100693640248590561534172569116261367162558055036855701043805962095611470481088233694460924823838115802178778509128641087225196372959031765048599866252935718385856468671044742050851798511007082275816568693554568566160208553279862909483584375079292440797691469587530448907849992427532267730930385059816010776647694196328517014617893699525835910793273455246683347947406843552277815885761721205797186195637799606663309102699455578396274891519325624238255070247957894798407531101675827120857002334353162967887944399425415927984262269547188900753551767219968945970292000277729069357550145524593068876170565185622731480494428854238729002662163803500676210706699370072580087791573401765467660258556251665248981424931068629269538483820607630316610711664881686984330640322579401744403944766557883837729326206121630193230660859143150939168815929052629418896088850850392951116008708745082676143727815786984597447485091172586198794692934524662986900037752449751339324374139781968267351358332531596144832107986092731673772017865527584520370232867669705556740408085861711175553946608211459526661111546397799062152580764295085344519230302213064196491751753821348601060291019188978908515020911183366059720927978139758760490539175100274067081797337139311245205734374472534497379344022340292651675734836050393703957336157809014560245599967414222058770548313519201304112328173923887131418212004596810437256102089483477438888629048324746930722401878656711180740722756104502797154869661026525609119772899217619580304903932588432391609977574168597703883718372728732113576013528519955126944222643684501636800389208315284362300950348829115092383241069186269405330227091602412560957939380638847728079970202925762542014714926776657301596631105797601414749073583763639777676469475102850251345012656370673996090385350018619226724109592516430991667132864539969610206026747000854012945203682417074182795976419318430523928563727131016002353850259362494471584887642182737129885595582791441223889881125702523164078788360374895004011692864399540986837436404159565042684778183368575832041680550882757396816458056469029279309701175958527727809291329500658587802567291842411740785368677745041256157162438542400194901958351804970479335413872848836840895574379585399491810474713743292386092222413220331772926816809611172657363484162838484334013533738472392736372890400108055219383541830630938057735443756245526821426408242936910218761767767384556539430610320055148815481307162663074867504665378689343049677058712392947398575251545761986027393781193770568226166748701380311324202234286937340342729785579029866604928172636456504293621960566070006261554354489335613416142828799466765302020721933668472087865744609513087483727833984253598133749620123510150133263340908638934162283377776743002021465675309380931308357480341042129109448377344113749514440440238458822150665931525657087582038129802839456076020706945412912197763304540682475434494475189926146202198926100610268886002237922943693756652344835117279484076605092818529064320542168832057482656978192852582858263082396996412042456936132581073494313684407056598781515187074408498183475237761708071657845342348793665007402541922161535112575736102196195995566004156479239238309767381814511485388270858112569563677796990718310367582446604209031737769901496663877194202303048437702110089319603777169155757577537096332154366771511091989689994586010363169151969241959438212678229764142891198172318087532285414398664539104385432306235615748485703107843877090283719954659193368154041304692110541637632346400500917005011488288961422414882863977332091087250394252330878362391114178192292455901492106241486596630501635510848946531136967236045680832089101998516798389532441385460128132993337313968751541483614569812724377708210809639735951803323181814086570229779863246548335151917221894515693828790625496573852115219836028905322736491020135933241529658805594514472138245336282673233618129380058031423319823167836980462194887576536268046009740752020458135623004513527353405328394257430554312946189298865655413372281778279868209221613892070494298439621285138880782046623838371012089751166902610228238433679252903680727813734220167705374617792506114303246802109950727483632808748166072159723875315414062616604211392156121691445349500293847202679346336733645937336789790036820242766290081335364084275695496772295840184297424490605016084900515764855123038593990879233682725723729516349305792614389367606754462550871999673028831049766378076326991558983238173781392917180646980650032326189051698126230234853179236159871137344549537682301530171769027315085976614932447795190777741017140549159030247691909096895900488761700790248136598586978863547767530518195914661679370214854500859591520874576775661000027536379501654286442431350096032651490636923891237860090258485357031663653996399700595816096525618292710310345774002002887430148639257518387090314704589773552947149491417300830223513761441116492144437694035361337547196791711122692647089861622131162722802014768427183901689987103193361467524100451228083076345780744440724555559745344471435436673534072402945443119566776177593479439646985253693180295977080278195513291063341357136675967750339606293767307215682770041941685948564986994606972628017341975065668751624158989430744614977531554388892534221789575576551506849104370683455663390103158815120016236467707446882094395174530955034603151690488566398970535411365470715343638859626243107287016038267999788535203830298529289921566898609934796361032115495383683466655955845966292380212030028493269595994664464579007725058782641523639197794369040065805330304930141414713939611718231085683339989134265871755559342882237987597443157921678524451442353576617814752862021535088021274830230581282936781107486519930914831339793775630882853922705512402646961994754626372926218820548995014413311402154971314747182986670814206925295219222687208394027251206116368287174228374427800453131285959019324924093849832621105298973590293305825424995569075073166056683139132998422693439721593145987895962164449897358489242767176514479955037478962205205251078186086818357995751722975614640267832252027250295259368850344047954915528914953865778171473077915010435802523563316140062817642533420654184486904401693683546598970358691390950442358215763632858191858180417744619854588804818382417974284163379360967241270330644664533588653093288628594544426317222194797586965152066205343502523293899406492239772763635895728913193900274303991901518619724612011982024088556448222090697665281937295569666000150846364774309302367805942386381114745642113057681214351837071514697173146447953603343699421781878571914694291720594846213838676113399937143527810152856477383105757056098118947337795174614704289577032581262014346612137702511913840340065338341384579323505073381797159384983071867925652807228741972181268560650406249282410252391589590395943961022174588179913757900958146509200851450997292286337788741733101137507663635900541392862197409011718231151734236469163451923871950598913301731627874043927435147249799369123786791132398933470569510910202985140852271936042496525901387095633182614678786143802659525984544559025826821769893966229170757589419647168391520332098015085307703004564342295525230126180310474796472870371058289738214382589565718348800559353157701214864432472522771909079041704160381161136804863981852072218579196312311483770206530984036212103217245935422401332540325096264223939970637879037492392127025683252391006899094576649808168874321591744356640170581833524644059360124884152112315361038651346122973351156169854872433531687608074185132538473929157813199838093358837174674771789552717432166066006709582880988104258560998080283120126697398760307255480915992341068534341222656943109287066940192666285275274977648101130538559211306971655191406584727217023086558271321155263660275007909414171468283875251725309150597540945658891117619328041455252173166871706228570205040264949585176066827078156539344122570036867710476008540100985590135876787367024784817130089110069319197816913151540234608616292945343666451200895148214439160972744225070327380605574373991261631415240614117450436087750428119669207142761296333586152407478231230263737120144786927004143841811706318536955848412318880300964529798204591481290571268262210153546048478274562257368211197054362993474573933613246641988395911662621040569081164138914223837478275992055832479695917475232495558031402130360780035816908903275803004799196253144573605141419067323809315852551963054845337042471086169512072312522989062149450787440413624682304270005850688958182111446462390996870329330134291449543736890219859116668697642903073457647262866344121450190064304487603640636799568707654209403646917205793112319700376381863571091407472425547509268313337796746874706151199332926462563478849998049884477900466160435522873709208093655400370535007198768581247217585411252412025411621043239678371686295410130967878277202916717962771768934531113218216193673686686617880760477004266525694068215980528601958549020986624151481717401372388853789729962236293745093454188761862342986901552077160268389515930748092802521473815602083516657743629746059724573895832800263835252003254269335148444050118195260360635384364431452040299062336820077921229716267466076298095882363562687215064582021358783601704557401479590592305814670780138459866491806534588513409798670175029850516885722055029317292585581327690113881952845951184091012968601953933471456897785144264883550117979959418139606901381040698904962947118410677063775225883489563251321807382722604635568852217866022356962681856238498609474072400259063057509260342785545533796193656833894764317987514796651445687284641618700889940644431705414735033461528338455705868015321843349020899562922306837104842240754656341094333252728713079545738283429650817659313774525128483356833102537001816678787173979446546077900060318166344893406574094311765756256109745802878297122113812211994781396582402211325713348529153059297978583465968828291868199703721318713241721206064066255531193060714367802508769750045767183120538276716123460033905594117723816750364132791887193342922817134283292210575667645424965779740792288438422787105056040923896370475224599068019700916738782231414849680547631966425930868789777616615490593071750502586192356086819354757038214889264319006391877672840448778299339990626536526445527467424503784553774507017407013761988278304863069890152049939136848478932385451498971010789873761241778760353443712828257829532962211842790670510021595935443973713899209215256356854954254840869517875661799563315332956704887113089945272595048165557117743815651247962587314231473588928117112652457934882292398142292668017610333466013138363451437888548410430122014443201235347026687638488660281767268450039582226630019301363204028708275385433065179245480282409011490540302452732755143294518776053008771475830110335004753905838171933305068459443348848954993766359102576555916821418161035738566152689796885700317908481524335091941715425445359982202351529686133314143362496111959320719184778561155072364511833220745023226035845779458282001724283034737690585318260891498958454621283578068855824412345489936413172185003514796942671621951137237509511443460687252815641839337043402586361813745469649409393210359840281283139736739194246295558093263430994482699015122368892222233032986075797719495676733259976543710494568846587880902632701697985168681105618454679216529199549763867308858071511565091113783376476984980907105549004797443675236269830210226115998264924747483605347681570263703849738011618179153901221706383378271150027911601319577993224713695288931230056271346595181015355083400386737087241488549908689566607834561209523035334374631691729745305411936127808872716990326690433071312957737288404927903089906771022426521062068974298535156553446063205400639550580056584151239474698484438637068326577415652660315243972212095444482348567986215161718405021503022701840048458108495825472233346099751059097438358472348479431567260128056896284992725104458123220363170297368630993757843468905038230082718895915276132559672628950071124746920019756829626034966768580917302925910899150495410318463516154425289227004527909716909273182683253643395235883795900899315901033204968787354487869364806873393885150740942783676168082608685263056721288634331786968997522676582998771646627218349618521511972265074864882212151896047933596145708094769382889097692320103744667273549526468713104307558810266972353867699110928701506534426321165588445649600029367892833165099937003338010836752886136900393503699029448362735675424403204194585271448043393483207026533958911780147394446175806529522539744498396684912435349307600180825561241026881530579336072150477278202206943549606012078567423278927460351293027415490082815095852494363267595803432427556607610606056412641823422227178095998918951120925819869269992259068724326051940021460072168340341540842844020066286807020523098937888515754193120840128158215706559549966138722700436463878838404345984307162694271050713535087975545018464490085317842578963115756209274819606941772093045010471325274892556625252866918068233673136129154218037178704727140010464152866446589743456377382805502279671889328445582093073063967615605868322134454858934116562086659397128922108536812244858414733618903198488816902336158715843491618937326554886353906938326896856231237579165494662479103664640368137794920117894517894040795862590755288448347187516568714277249993940509769526689595438189272363120802432141108016240591516866767993605750610179186188039749775485775406178118128151453793847072357704729705094356919752959568202208992587785731835259500907060723633302976655248737438451706472189422320356902374047227081396503611338458128457488357630000051962165037439798982464289894570941307651764734367096133752780114560797775915764972530688058753965481198802316174098219483736871409419993291344725085081950456449814986349603822157953992768141764762470798678532328110670891201564882455439673275115966658936869162422179938067100158047072797176436723391086080736368583021618386079742066679461242140322572776490172189376404765920412553990701294251627248497818114387854410977098487819962481886660894557136099455175503281385311740103730016427013004163965991606219437402565870124528329827263113873527301689866521053972107300982786229699565033439323494635694680221340205128387962367339307684812288132744847532591054072845247464225932303791604801538779181676793936293749468367763809559617589011400202876403897851604560939458146064447317910339872570629026031495976765449308639319547470148367015076839482405337312092087120128204189020643965742692342570628463889679458639491906711565059979184093652184437952756892317326519543616522163843545342560850580901549835704217088000514969572618629202414923494145562449972632338840763358771803847545588072037759494313333498939085791718873758361243145271686021354600719619409993792884830476761112188391676703784282063041169920717684880777929716120360094328279329501409639242241819784065403689162076457525867199616845406354591784833736879698037300852852546919925552722415285366161088017124526858710432722204484424268380121349525634301980650972607483051043080372002120991290095513412925567518022486857824472566220819151957071089471080744559439198978247268179798380716491434778504509015220725889187815410981439613660114340134114835508130564098052849793397756206183302225284448440709439522743752516234683254192029948400646628472203331171905076095250072806299609167340298062220628183738757896297482379546821841387330076530857708127762564692090357644291249937364587804806299640381029679020599342950752929980406271474522045604062917544121869216741385902878167612078281623255396312162545321629562534392993586227505732799816481291865332167401179054810181728759423491506865367143935142658191971729119005219401565982996804873156327045903091412586259785308590307112998546801797031739203518181805077747834947223298806368593731829502406891688973980429112649931465532787186922023310124534016446651104411834047288558135849884771307925533386721238229173563770632562572168798674508812835845451181148459994187959287351312588319963046758737917069010466095438846087764086818432475958012762910362869161660643519022913621024348535843903807108659373970280872925424276679938679902204793708943644004714172415431319035568943064966833909951222254783597673271685872023785467828637895804059733021951063695577309217343003790315415389399817669531606917827924214227482962729978528476561589673189344070301238683903757680376871297797278703564960120363481224842430002663209762066260512448107396876322455402032812289363773316344067258785339272773211700591754298082591153564049734579563319828073559108633966061168269186899317742765641038453841943648808600061217980838677410987206654324253391496586706017269029478291725918095216053758324643793262250265165584548061789964086725944579099028528583929492585762714470957821142575084963623526554724976198934678888865581852978344785999921176055941860989988045967530421768149481537859789425504810422675315368883572723953114484978782482932599834785972927254087823048750724115035336010902643685905695906299421019113923406663406281678426997686345006323896981234319151761949817127252521259932605682554078427861900025088582233036966800630501052432250959160693953809201489627736316321024241930456803637138280474312485865243869149990781200588544441502480205717233705697929597724161121259508904926546769444611548341640035149585957056588627314969470223786423641905096083119679048404772418547234962380950116782692649642663976709648918277482668519955002627091574127566938341072554517973343538421279954096050188260129773282409177916334249685304210500214218761997723485233122246526373086467119172991043356050615032577746001956974803223643687786630843827802934728825356862064277679356393169063841696069950952644778214441019850248415596323438484274086269065574019448819001624356177689387159936184934038975899715306396042356342840949297324164178750044523328474175668276810759114057057845637263040553011676297721671450487642526729904866302550955615162863152707140307005020111438159538426871423512513889835121400585266870293138874638973795500348515010614406889567267827255419965256659786895519503549783468056444061074072920336839269226653227870892544026529235076196158365535781324546454564058670806943072752209173624735357150627989848243148536659019456666629412820871103992708834090371379887520441949059519747784057147753705904872881776377493021360892857706683085198619703938142768047022264910746507858660305912319919471017126151930923260886992043940737970582119783020336820543637288351449475434828346162093615505786058915818809092451957846622782336812762420509411091112748709352310353330881533773507854937679368602673540048110002538825565643554369750146961993482268367459945535754797682174422565505839959173049940198559489985712859125712805097176811953746695147665521247781528564339085450152283128922862145192851423621421285469233264326091968918607612482715604677682218658689238644554426637496284587732122672224255570296647919978184059753335749052028292866606766142246529972853280211717438539215281802873594717488298080553792181925829039442105889698409939001317888812036751890619908213632256408309003585146021924659556093578909914424294001106335318214934065160932280787301266936157189136501972281710090979789985923289517587670038847876550046305330713325944616969799440519285380323345259765608485749155019728754095464687347546560059153961003486693862646209311016199099360114026576525561132858439707128264042976983441024684689169378410808318459581554819946643760871068955539902071536089839145021619385059991149272571575183760158840130470233605371241054915003290858384689701215330416171529098088323196480552642527147679126403363815407894620858473840119564045392421602424830936324437892047316827664415411207276378473110164560237967216624959557290217125360095780795230722743232065881072527729948794535308357273332362922039984099934715716963396193850759963312695525701292808745834466798019286477803807142619996317251483476153375520886076586562003897497549882201699285606219638157308025693685028143980156889893581635132047813340252383740847659087677041262840794750719502269407796291621311648141595270282381780958637349509019336641706029843047267412723537054470097340371685251583977298900176672448447966155345898440112396271021452976634545916051735196612561618040391503309175226849857119101922884510797226300208913410565263152651815282228294599033972703194761577910535347395140130632372339407437980684412035999771592029535986414721258879602366793935271393954320945989770538607233634543066960894758341812458862477765133760378453986432396663821867613182356941828044219110954271374842262553685070978513131412130545222363924468072637943721960635174739864577853148618623947501612883147168423622287047540312378429860993513731417446833673536563856436039229495858382537354326013645950548111188347409554326691693776167717985725446015591428084124342711123130733856057566287077068750449514380378713483352320515046685507952119692359641377167566678150065560261512973267494518405310442850454998811176432673334323940805098164494572081089290043775595317185975047613097355656892129416252306392808606449624775168408666069751946920004206326546011853732769193142607251540403823236413468369038275851031202864003439443902385609817474036943307380774598402583052042866270976577609084108317990036955288550281389404556903405783847324399973700857167761523067941366157304260908651370749860467991623721066493799225878965778597870806094114850367957757721592745884181114603715173436542009473517532353085007268219100450091180540081376772015925986917501624237997496741640519770187529569787275434066018355323949531435902743114673564946644453300093583964518860077557088673066902419338305342344886670705891105651398343084968083519166521633943908421665117782238172481694936752315317765667502749736394998632527422309703445103248443241629144506798343336772993402111144210253923009184477074508399820354084370033130410344405119335664226490115746228009096483640726575514199737490350532369521844848260507900424828229510702495567554598978223034792039116298965369509329883980875867753708104242688758262879808061070872652494231902713347549105141113419656415344627551188750532861870747569798469895503163969104175195279462828227687468044472224230460845817085202912757796125426577465689909420011726269300834386119506306958805825726698676202180504152831841994691242791544256249100809804766674695349536105629824306276751590967169725263900593844933046051091931759704401831914332527440464013183300802145549206404892805962658888578072399721892827013811352284504002721636687062696945962767157652240224653157040685566537332391855518585644516414433577832285108466926255181761844747914994268927501221977445479304484779442621574985358721127203679189320833706788479712944749794037490957064053876052170723154896817589575390703629381241229799886516752456446865827917006513568628902247719629769204997623168259337824782712449682298161427342809640014649360467090179142617299367520876607919128119713494402784905279258727252410000840301998019389711326439553872151362466657840096559890695280136338717617483302783327606650367908048704930096345185402788301490321615760663558144440070193233509172373780959181061382925999735490894809839243470786723062616451075608483392450252383433874281608575447438747568646848668694386587000315060762459694582216159315626215464479963277608735589368684329495169060059539169826372781687214024438226780519037722272799821430143913849431510617371557132800720823361565926743057915601300873153494758396990332784685535348132521918403946618088208181252146639985727123762087807443566556437868254008478451510165436649352316345649846023201542636292358646270898048456169792094468911726276166649130980614227293846163685819191507078864427200227258729110725245975025836944662127812000512691436794606066658226504479601352183908462987650325055075953884629694505769971591783188553273589222643662316218199885458999508896596214485469099858978882564450851356649261090164126752668549247578109337253460898232561278062112896952794652606437347735099496334588536456086515322561311673208907236671671830789970488341895718896416244045409283384731063726421843018978184001922874508272937217137618712950186395209015079060999458661105424271764440151090876333022500679559465396126906489967463750769975819946093669618549129937599182791423767171733173319145522068017316978635080040327139254740417018825444971125721628429784662651088531152580158650067203422326588811298022249876312376438999411501118076369365042755348193176645578019247547662374612302142525323683894387737910891743966333276703453254859291672878895166504381599299792228146500546840624399069266161612915043849009014335282087638278497120292755333456946295936281821315867843090580464409736848489573792107696696570599820986829358511554434513051284506461032282898548769981460691297947224665944501637074325030541318201644404060959582158660948875741675158245097646480694869611379610867242209964970747466544633226950215952978874803318549613141028225825186638645278186077972284593429402653712523080820551333106694406773594740248915835670624238022759008674355411327547160377951205064739873658901661417287420944378389285961684906635336637506352669858968300816237772750968856142666707489197320552051486524542686655775656830349728016133313658631215743481596647807651211648424542274532556061375831996057443078021653679545880929934856059006592759281714703254216704409499035242794881106676300864318767804462595737549205877927258838164829944438318114199117971515825519774513994195698024574170334190650000964976946117800088095796560826321275040873333822164800435152398027323038763778742950924869867405605762494239701216381535884549763162333596696919509777756323648805588779283875772493438574155543833670198012580681364764726054832955731961258061050324809679218599101748365775527084433387521380798554342989303728305120647980906610399400337242238759100332861345980031172079137271181341030647132567317938672106377997975778814799327597030231483164924707053901132453665647334650235389215955416276914987933978872982568105962486927252004040756642769310851078765886512028830666264364672980600524327557105300356788401801889278566092031372387288199796797620339879003393045986904854214709550650747757178657853925373322552185706676404927525120410537488645129068434196875868093662659334233204311997370087268802195415262586804751786686168236933551744661950977157039032023320342870302497075761904418698635841332373371848394618395691289072509397471064809964507437398600183945200381816646768768006322110811514926344316814924398299942272060187748550817191890044244566366059653218448245052119797062960945203342649600292310920073494189973862296336178349097461664091883402825080684925024750244409449460625173987900075718885676770950085958082029150286998738793215943529953759992926371734131468151751782427591110531853264500682836910327523258171645890063469388353880440630664517291684193716863540866782909002269664763622096379216936200212135457581614352695862584599358920562035145850915131079991735677866159276032438741730644714921197625761568529775728046527245594411099527561556675324889841105330717304196242769669895963589538395924896050880177315627470722043450562771695150312879864583819831056370475266997387347045694989205702514989903465318542035868483235701560135544456378896105725845090540200716399108686652498027227257612721208320753473081377672727822066965987886666535997440937163586104295731053056133833505274224554664529231845463219153958949719624110951339921541381271247933105468976396436685272489305551536339406547238177996787021907323854633919367274667175535111429121219937728096486324550311527969266253555371397035759689137508845199212682788841884113161741164388455267592268609741890252666483605399352328239696293256788900104207744993407994136463393080277383407896513708996494448426128968651974536652738184305297601442432134922675711983068132919648835692357761283502032060753132181458249685170657014862457394991893959676468949611711881808289331296322189080991344122259639683757000839878740956506871410039196390917094904132844204370322813275505535466494768934949906556296250625892939541710973548447737837544863222909192442825175954799928034742784751040464745822866133211314062586753729775611221835783731281689667326281550037528628970007814087778578501099735369495886365205340883960822328610252977691990205488711233195545321833763235584626496159570838319711198366711285861990726876067671348394911290060047040742589031984902943700634930735849576608648440429946611460358053217552371280014230473522706770512439705898795044168250199841158437028115453770235590606375210198106671598663261299995000591339282916346210157084747939196758622661039738365361115750797844227144645501133426695581643126924349323820042964058925136492725544402383359064584974204498111978261906586754673875686315097858426769778933136104866047075471890660868948423305242001432133075967842958403410882359754391400365441404480063255317021989367910769889135488794349220207606406015959056479166036684101045736920157188106429125892783608052841342454012907684697290445792105572946753373003289957710463496025860064133503233350225832506863739802230606431884364409615347126570230524440881590817949860485381402725626764804391882302599592663995176521258976552661235420477490392141227331608232460893136666773776327638545843295336558487403801345722508443217003013764431515190293747429818933893918474582503074953811416083416470779902380400087826064129791112164142627846606667881141195610380543277105851969062075112796618939766756690786945964044181438333888361108798774140342631713806612149919410052021284094927920963056739360684842671112161304138158031577366815402705869024348595833649214973381851838568642462079045242059221225233173948460042108853910041142386613338239610136332670976305094094907891653332717352044339389331040599999096179286680950712635448966520772284925894033053803244186392414365070565877585494462315791078866395120217396159308562084580267724291695310092135694936389131512780418820221764423776785336096926952645493054845538883598133939896637157795296075338090915731898828963295472538669164196003376000108871663043351586600806985866980481191956470211671570246589607349017015829599263169413705290649315628886771293720805388543590283444547016259499171312045600227918947092481820982007093250638780081006737617538383415679538368975723877591187265537886828179563173674940927328277611996239098961930818645563915431185246193245433674456213825940685742453769547075662569923637637166367142794793438693359047083787861743472057850433024143298317290997273968572997606156912444263061797358360545330373050459385768119798679240857304391936960560402932255557070789414586647255394082640685545850103955372158775029240576161568206840983284017951087504289371277680043667553282501950421704074895609660953903600655725494690192374761339782091215128444385213245607282254703216533510195175067869903332474012248835417819256116807171450805688176366496787228361168824194569732715129069636540246194152364434991315835850503567132750160039661447647564108528080076276019428006501520021852405070509579415042148135234520614443346487957880518873042061123370446679148584514463032110600998266900479058878776514467241397988672023162840827165580023334325776320486794516390096767684008874805519639933394219847530927605381490253667465411362872317237412121829231361984573478036326829022447642037563548193197477743980085416173949661546284316521000245405399946944886713378946997713565154733328256093152474386205878244141545863751848050332791534292856109384676339024032107685336937414758837344714797899236149267566985248769355034201836731415765691656877140706194790597493434953297621820825599670739332327674064686328832189754363887064792202318471300433561284435601252958561450019561277170158119850164160880566762642939733212965108018998391482888992800796091756778204468126060318969046117417173330063078309857252728753285253709926478322379770598718533446515122481687639512668285396408720770960251289830269593817855576353318289352911958177036548116575153679178952229869622333639336041134324474163157982965868079810351923167795541548899574621322741704711989677489973160528651363458419956461359936268438886070844335268602315470409310924595627726898440932914873199426474338471739515246235490555694385449981647582380664458970862420122748311601787751051318087657446609386342714532344825358632605012545354591914300067210114040891095707588526259566841041373279199832701673695863204444021034570233276387727552606173211886629390037354848017008724618119562532848874822490756160642374921031200059635625611630202987813442490641594281474938177095426466663748729811886620507519029989386890848767996345592914400179710817889237870853739914402776204045294297694037450677986276816883868102491007739011850778114111757129670599589906387047304623386169799403900188106656508341418157829313232860981405772791248843623252948313448156379618835996505442433420062330855639263478804207712194712335878318740901191367258430387601503659510430268746328148173588705020663438885649782642117289883586618792883124312437721716770977870162396620569124517354404539504282771441440203849279831746033480756440960945974778012275372204522371227308907089703621244717581721372971458093296609729181771315910766946207794375025979252215200583538280471801969799512352018041425077975906440508019594726844761830850356262299248782202034150155120169232007865503866420343799142245024841270438916078687365682800599361408535982753116278539513611109255253542305433138903822875131242023422422328132406168290946500745674025075728635346296895853289028268439884339310620297926279360930045059920657263868186541680053243201598224755586553171259035071120234286964762973917952161394266540152958096335849928043037336134997426203948575335193860243776465391152096561127084568129241600380899526133350598737940660665346381541154503413525795380707834804316887669970958602274926539697916442084883067086874197177285800043973488684833852411180955518176343436372899989877789659114775636089782551873033805023683322656844874198699602907232775379333597940111785793929653636171032277185239277780064638559638778807412858672019257860806443862595981569465247817439952545834034517928684010265387012832809084598391786664513378271617692119257483066092607872190874224320437303690057358412248574707380544383907133697507191505042968269389818321389757196992989491462964377114201544701686900081364695075520222553227823062798334752444629687646842284443256787577033623564948439782965522794506200783107882660529608225796371459709889309031873587771144567534203369618498919302725977891070187695452285351667911839109922926886330974494770927765165035337263947759013758543528238682408756048141018822126500521801605971085422600561930276480962511818732541979131661726602429676402094865147610503132966376289997819603314068833228360069059433772932631021364224272432539009185060789270061448634658949099910157055901335575112158980354571846299112159598251199793063415731783736298849243674328120914474931763068571974556110240685774175662076479402639567323093912109861257106418687523236495054193451329052890018102046244713828823835234283979514259286071177112450414266406322398039059167674682452471419761729329342610663634902468956179406914309429937131336163385936413590720174876976009309287494051895878800499788516263707920837004838443676266197482824714520939002126834777299060119696899240805422668527237002176339302290441482829229702095880546326358620832708724801168058088213167928530285667941180771264615737651723831714832303144133368085923123755579125111352024287897059850991177927206286763350996461118858791248973048092351237733725619214141423040321723879784210848021956717799784357430901614114207904275462803977208523181909591604406542755766236603937976600132362482471606816010112725488255326997874571138094552859008480991351242724766132341278784717706191376034620579084420336207053880282616556142197700906950862643494209745422847456466510821856469388521122031686369753562841434301810174466249327065845331114069590270031245683734952069716396982470739207427693386010360918156569329018257843985223297945198791197656469143675690432762350047482889032531267420064948882890689647560102639853373601496408311781217560809991648310606725440919108962966219121631067112633067615120563046167244593145509272164259765429200047013877054601079623644471568332155526340037553462528152986810086090316173193636434951297858060080784648890004511279768501410069341804818966336223116466444234626281018862292240934866868561396595795547631919717062258788683503017194062436649355019783472915657118250437392010523972072964293344380549279903543873257654687499702380930499442533297256014632688867570390361486068044375432755684468559081500040433034735262223065583849834402429915736191963647666505530558878466433957332764081401154348427800130934382906798209209003466584244899116855625822338941078693339742883456435539379117593725647939907150116835047798186380998546993452462370850287116206727194764151290987066878764591403238320204028385707310156813495110703645506275791580848023316878206879392923831583491669616809526014061948607882284767686702479148618371149115395259147517230359702003042514872447114699611899159315096689147154808898826674687036221629431862637377515578233393450923591639365118130467257351002564391615545777552120160954028434781343544478776739781075620635768956317665041278789108864095666834161893671670686571011897011846794776072960484885985320795767622113246088970306834701334506064627107296844403606504093271758735355408025490072926119902162217076506653145064137960923497961373736070805359238091213966081711728111881977167499604523587122510346534601935337767108867324463200263051696859945357370537604649909234490473317953314832868763653276614599415057941843834094507494081058190063098812904209407192398197183997878389120743386075805776162212944067109416403710902448177176038519266487793300852513524011915241590851239904511460735581383324467675754472425863921002458064632975059676250512862588876528525671633442625044376093164461356668045375165916508976648902612466280249205193998294052983171996638011412512214079981225434011064559541276634258770657848958825176105322429705373587883263111611957959029248042855181705358269303620547188590966273464569741936483506252419773709385870454332165385608037588010069813996078596123244662247255316861831573170799171289042660105651198190985892826401109661364639258049383311027144372859035197106111818122432539931735272709424994579170224658066596767708032426373022159173908052949601979458100917821644702897115235396078722077424255675073707313199470441712542014774245804760112673409301986419758817314641413772348126962686641228475604543583331229764419868547986315819212815800742112654258796325175743710129406305245641518127407689492566443867010869986138892260002382573285269207826323547131575716900154426433278151210822833923860994667354454751278690538771110286283843604795618248213616209750455044740542928560557667303203534438686944909590333820288898547409792573065261695564494984844274043303565691139991283142922571179893163414668482344853434938146437237982455461324336716767462941361054190921258758925836167026222925743752574544593984129449442336410544453924051696875325217889920612028822278539362206926409920655863791630926530570321630046008026394099746887272633083210208455396540707764626737281547146229384413227639038099734469436449344033255458067779159605947480903285277847706376153518329097484114978274574684639447243351886989323626205321890185386024834163282597875783504001695964331604092524693989240224413154854362077679784396715713104220253389971979724830926348052941514148764520909161311029984165177472100074288654833112882483603572032899231835492719760337501189313301438585545978411255325009918194724083930582086765140195750981280070304538025868500392177757696860147991284736120035749662792987421305410932236016887995425954598160181670737089801370081800440499419902688681813241980645526932081477145837836329922556299368152874160580631097376559813194474023952125087850436199557984555742199410125350999362557004584500997069129164664645866792266812008475803374222603026569019306503379930521869082330564606873195090397019081994292738375523675419238619958617249903427878578688824386459709381521383193270305240429939232901057564843862764807759632314987691124053343433939663580412490463929548883648559233582460843754399110397451019338973397560070035960183983425717248067029240767276806291846808686775193147918763056627471908422506904731099860709376741539967954482984448609520815729512329815661938546492632553469238480705822224838058323026677476981005457544817112499036794617759432488746475061932098951215543298745738715448580382268897045858247704512053449079431964492654658177498515319110902089243928126745091939287574613898976835625068650034250132701237507466709228863989462017502939614043739054484033355540546001315376277446076049310537849807252347486436807708379347754298819770034528616283051779995478385542008116015193998366045953456922808274319102670842947912032295926238574159438956418261653461817821321664353313789755957658743236777462094657038101221059180810250475989448882766477613304122982361601922464786050852648879742207080233691272400203621623354610527519589409036970582191814974799480681149847969062448312742424302793700624358755957487194013129561433979386546555121668190978446713204557408227703299698404369095188101789739159936449748338213781092081625723715786915516780271672092942317266893564507701570414965213846196223114765085372120736341288733746580528102242206508873670420761294341954823550352575708283267353210734266621382737000374986606084753096788021747735421479572035647680262834217011467275511187445026428590937591897937591558282448992450705184652605744160164465993790090702076619305555289188975089837136759246619862958570944075058816767135855489256661068934078546976870127012928144668360702162370249190405982072689627181086746210626422530588938528499015108069352105479790224039916594702698770986023426896146691528465282144478649537309302839523963267006045766818013469444726622847679560820583938306964033983419341006471426390366325508430908547138420543242837502110827508532356682211879403565677004585354373539803619192402170709918910732285382133851281004614089513450171971116899191963561861336581392002019467685032416604740240661885348572260521518811966876186748204316801729326668296632089236448701446665985267195007289626064182063035521848820570086786762619809721044708469906028091117329580915793078899579128531838762050728968582794243758689629821895328611461404482155255349841916358408547697146477185200916006490443881169173905807442422304340976396735290578155835490077260042247970600022126864133488739958424022201805051711899794258077217350202135781770810884910468229985850861848255977574271962679678370388620991507702929655408029549460715148010330318109454357361605086041444382057383998592433622262154905506649615214761681000239013446085922696582935920626878878773606573994014164588573782888841088411888406586443669827963863119569351588464499548932861296158646210963186300147166632137600284626066746647807986122026289089553188010802408644272372406998436624505139620980371816249169949460350622961597321254670946156954534803346189901217267084773035133843312261693510918917741329620893037295594244360216022296592593129532034865301908893117390119802767831515026561531029593197122790187980778934639042799109659886836579926918201498871105056552158842194356440508494440291791326754419744397043088650458247710569868321264433189695595368365593477259809648566746451041584393113020387527234003244268184220290910161315850338435022257680359282836721774341552028471753044239814716472458250721702298796929098631380618364788264143404791050903061728723614824417059425161043604245539244125232140083148769312350406514295922381560436633355211457461697411639538795403540282975484880411669225955476415060875312314001808774753724732471859037113541869630704674056113723399196082929993527502146561091584538662008493412007712372625777785331767277238392242650789263928349493504953788950711893546781435495454615582309232342175041154165260980612691013293373573002463388565343353282422256463350057710802389129277317991854364505912301324747876749951935082713275252169886845508225182135851504893673195340092334554339039274422422242924743551982180637962928181045981630676324608674856109388610927906717184955827749965126403910322518362751365343446423014535110876092836147712946201182333469290774601584324562125437459894532290428743170459643527530959521010091581021959023202669920958476640136954407635233445159892224609797421840707751311061965632022374139138193167730415084512870397626817325296902643913849992581584286875662684358710384199535161461857614502299757405932474715463276787401493576127677786815213235980465783073305144001634456657239809184835676389984141630840166571963888543176093757226407370692693868794018413455294889125014689270002188211971231377070610344506297969983118044646674279848670917687324491001219462151666391729005765296805219847737204326219067471613443989364974746095988803839994425848046586002965176623973104136758648981000487779118573699583211761233007376747661619333255608718497773028362340648279867072462896882222807145738458449298306317480822431811801137813045470415059043928826122946254288685226789933719880114564225492960129269180231534700541666593132110971777087325042212577961607751204703804751964164730206077259071113226331095923582269718130767007885308737935223427768060221128173762331413919102183450715536913560111074216941432604485620681631935890334378163542173188972167282851800001920958597218282375714584192826685566722361944803001548087534492092989903302588775957700077021755113412856238792395125486642196395819746187317219031606700182012726853285459642235703924974707741979826891749839358977483380973975718368471279219735721626195236936193705807538700565931219659354977236021575128692256967006381311897101141732970617843778905912440977399773020258406402041920305377262490641463610313042438967111046396875908144165193524698933461151479996932879652219488822001483881872662466059131316323210112017019372712079058614889029245483866075084397807965245618544391802172387013061367268926009814175902191107965497515280101756640970358786400059105240968703735449818450648727232162920080226753951093645484052693233660208553154079392410485150112438960683848172306220958125839355524952123990391316732163118393306555290508945296526378968010673983970361815506421932950586612105837138030321035321606119885125754948058220956015101011484371187475461819303701554067615356518511077131314606777437023871718730708292765715987797361228552824637697481541620528059160692399622339423728005178971350617787671100836675377926795799117595682309333864697754073350053572362604035747599599204389356687876041474143987583216486784976538031256827177923356294750601307776565833859994961730587497395111205602112037690295771724898780188785360653340409140587832960983525569139041957369535931361183141992342485624784159708313054727214826372121860081823593564264442921633843240436416316411617906148576263616044604397726283138689526563417207739545863127645036695978701808363273440907990748288723281500870540669716378842602971698109697957050111916501593221305327656793627073722325337664175725588535909153220211419404111077310398155283636167220310930341801488946205088612167241467920320047390344183599418291112286860347391147819883704297935569831170799363906081851768070315909358503179892678879059086222394610540001278205341324180534602206511354324296215464655860167031516865160172446174153135518214326892341218783275826992357564724207693470683611014931224273057655407498233024300142346948834213012510510226615353780236635638871078452242323844513123023090426041935548857407281869761694241915700413304522128223395673539926892032339347468726332219181233229781984200324068847827717067755314306451668234660773469728290580567354318703531524051678003943811813078252559089804562296798691015007124552815877488422926689436898227199405362699648543544911248161129139705150404446148202584436872214719142595387772596878500922022536336795516124779488803628640273166764130387439912406819403911111495597296747046591401942655097437952625379591231514584040925590965934849929175657057374895883623633347333478618711658373850262745090397659591168764442853599779660361016930445582920502944985615409513148702422336787071402882812322851021881172064552827699070684834041166792212159484928745703238765645683502074014975884121107905957674872879384682144742187587080194383788416097140292511637336893796367550661719623491085964769855861186501770093988423487388567625294151531060452455782187538320123144168766207825744426056970443013652936680745369212807783953812712340664225836278914847278222950845085272472363020602405370000097319517173472620070385487758569463873957961520322765225235689144128857727159012626709219470714848927695897050572630375598730735011631927552516947460764638333593664687569472345825191107844438512625399479684378742758205792138461050452362065229373054931301864899810433984883176066204782089839416486233046091924356092644204361050492727691921257629458297488428340195919437063849503267691600312776461801614515669089315756647075818775958895875331484970662979365578239182687809734775546427984444065774635331431787731727760705188163872048497576246623560865905500490526049178756767149898216080924837990385902122795418063591669985491959417363981034295966651442923740286433376420188340419845469594014397229956778730450718086245310193973224935113773376609007619268628566696526814322395777347922717610726985976939985705666434480328149329308879034478545631947396196787949882928475959433531642804084204283763078569350617325926276749049126019615199344366942674784244588333149837742697502855372115686187789171036699374221833415688014241127868070398758848088668148534407664099173871530185557590912033207961288429971069704155126956515793255350594837121277954705336215054186523083805078700037045181096071054759824500245262873325753760081048735389110104168494813158724216770407474225640953437605454865632211858416271404137558154168984504647680315315318714715248424133620904705983435551705886097780101070355404319532552846618763434213677485002304355365861432897046990141110131056057161413240609622103634419605875644815605247196510901578510651674196334206827511525363747361129871565717121746889291533279192302986825661334773180253106226499622417573773076961967030547178107450431546436249085774367462219823002612461440893412931996888956814461887348263662234476096707639769386199579697725518295307655200054000758277782895002712365443338949961264201176367278073584270457355319184712276900838452052534958050056105410939444828845118348798897227147479536090233147552756098933787045345354085060139069255020662370133777373412323548391936496746797905325884907132733624696898943388901542611496130540529808879503955912749605169779759665269896935831260588850111552589975847494281165783757957851977140439629949352209110185274274589938222241825544400239045893522033185352714729183430243267878369227127596506033747998842728455038984963376828895029311968024109612717984203807489701299607479945229932455891901542446997157622734827002630455346771125309347739996001024496949195732545136585167210926494377078236183276310744879306719734483259837214204098598237194258048472964918577081025521859961951968107505686829882734275038756238534211888477661639748728123118961036252052042206128084197400853286778557665495981071261898051550752433701917839772963261951547860432135167804300160022988143186186935860777515419727893488525833914316876050553492909620146709209105147994079354007863530866991718927156949966427176487797877804908589870796362135591354926887573125755177444141095747280984868561958721407907232009183778583926422930275499228967043140004592018826534515818979307640467985450472957254581105789757783790825086925806721203929374585353303259177176047036912890341213625175698504693736024813156334487400898893552032943747046801213775729041354634302043955760068479675300504760281258507037220825660214197623938001977838321841097966077340753962801619399612971128576166569741401866594279194083788072947856765683647667599363072173992448204752407502889558913153092679006363376926939395434157155643936056249064110036490741895187557997344304001687945714164617659035805323238722409304349645969666038431739622846975401336101090492175337278691298914134528256020902659505601001714896738795202928967312207425441576768097396452838680339704302356624926297564946707742440826909000004065810182065486497393433853188771566995052308290726825842148505248257761257153278286500879071812922749655025980601640463176336165376439517540149820858344538783098878505312005069478176485710337729188549597048917105859735915759863072640814733767371891177702117358069111186914342196363353589392477483685100456413850012920998716985245500106424168952669007772006802246617890521057979030096440222797478988554233031994891583079449393967031614033039857817050065353219652565036684336801590083134436545246687949783923817197677299043159694802759237983599191292400284201911535401329912045221043167231803911796102748933097910333272267969500574864162955926498397579897892513859429180393407107325944832849431443494761876989832774418855882251160109694180938436880592931983184500036551148071856097561472214964337680897908527145870231325585521989928722204580161926785328117111461920969497935356731560891020090380308616966141488605922774502007110055980449948345600961581061184716553636668696034501937765939533679525440043004833912832763266507747680781760738749799783050437652056019392365918798371181616413010382383929222806399699510517056583493965106377000961147548944724275970682612692307348395746614003319480440962155734906649734278363402580468969537389138353091446805396574536978879940454628349962293225975206851948932731482023851997081933248680233604381533226825928921429474207623318118283487283268671641453143544059282077234108280839613285991315649680325944648115349557294205125232962421125288662021187099880416889400673569070121081065420668327181703352321970382236799377100466223930956836697045550794599516768803790914309002957647915959346421064450901385208677965966874726440509405723679560320425595545885484238949787141353868758228672217359890011096296948092061511077618741241987656708250760277332407823619197503426898999038670845216136914415747141897638023701200356658710992627969627893321663441225935078921065305302914761216735089220133016669114374643477712056114402724112056003652389222847274403490702032565860980084746915131025037402539280620321237627414070719464732606285379216812417110327594335792372686123688328377312967261775938798463049973932379169741897130458668840186981561675081702024244991896694170812841451277456874946404642452404109762271601407866001843281097325221357512338127634492524905423876730740831848007801234147998582892795278587277743062016942555333368489545934769092688989954166293650228326372079547302190466650160626613166029657845027837549022949002131384074587130257349692477970243461853268713611894962488344709288332494135546139847578111176524091706337528646136953489389956503749313913928677841704727097636664996740925548032539484891826172499517228365456259526850906519663474911754313727026374683918596630585642249828964860877094782784474463020134593858068497327389110145418590443940384630173575551929474794714732814989034456367761122065664396124550018487957595236687626512157424067949759752424732055869356075453028987196917915780227758490981979919766213127779584628197979612659417205753260065399141920606965284619859025847341331366871430061446353000460296940925243586199515338697403756098169259449831404869431928266103366644591489244559175966991296809028149419157644885709153533503935796740143844643471375341587247809708007653209286732246095853027382689984015078421264596201922386116335246828757019526803300332814310285758634881559485555265556681911113302781479605966571313553572677867700657735675247681245593252158486962041722896608397137081326680987948285789511221980999868943019706813236581926352252256521503726376608875222630174867016095408483125536484500122612552584666303092405288977782609088939676215668459980572250297862445719960285483336747526762367159985196660410525753111647969416880064859170557957777534526966506716849646624008383381148157170587953818969593726277279843422920967700449692461362833022983309585903987722791118241818522591753395560967294019399195857696694236323009976107209795694643168887771582076134000808892314219118719320777502597574984280600516614111186345843877210962896890942448833286190324594613045668948459185341128661303659471172874716711954877845773380337641060033562748898857056252143633913119320816361575798978099086280769315763250680873669629384292435328949261272776902698389104359515636392147712707542357345190411596822073456872593080265329119523872262416723939196016334509082038524001556627398491946352011614102483703360117817564091883076593578604185627400901839448829766747577851701648029121696299359818155850931050342371916114172255427141717519307467394581977725046889743237402225665471825488483368543073684062725948472787472284633749067539566426453253942470898431903174517544436843705222691028645091246236275152661809653403992457598984931045629018553153535656167480616815349875379937669722161068936981271236450543717650990776360457861309641469095071378780267291059032243593613188755222094104456763890077960523833280305214643661534261150488344062052837030506608790173910970582417852620393677240925283822149278549439692735532646912356547539343525729849204372889122198653155893828769053009976535728674745296046208886432244519882513586937924991276030385293202000002502032315803753853074384599077870049120913965390879458470971689414929809152351960451665845640183712222009981396931696342671077100969789392713785990931647595327501128281082828180220228407088436666600054165882458479744921845565841112430703228235884725818198851112840291774202715302745601745122862096934521126272234202497578725968529711561422605168887763550521752902079352503952725564131372824500139216528025301238029614726982213766131610124884836984301880111350672996906216066646562242720315062026668973635018298562510724222469120037542083388049028542068616613793109129838978682012572856720602940191674811188522320266880135850623588111214285270750763477607038065575633571286271990096469379539194748403917336005903571116739957823089899668123245248445980462834123215565759453042176133195077994084678893258853485502808461522245524241591390240096939355977065741663432710727732884242652664825812612794181313254051566437730783735481762100572635716762769864470675023124541786662634895458527929213146341255684102434029731613596937681889292875031600155536641194658262923019887329799249228223954185711936492421733983158789111713400783531136866587215517448704249808496442895281656358880713185965325302991694922943170382458535608773273307522569954272197694335368121117007624135339534317839427458961006435157000844680143650460762322107153035217856142308599087820447159378547494370307817935791142486378995052774134361618684444526898993260165996895101733150155162306230663998009775709858984318439990087818644376715334222049327395554201556623741614842207434864256356487694250755479736146293392642446703252092141580443708522060205498757886771394894155735169385785500836578977074303476942724060961179734451597353764638297741905400132708054026303240128089398342453931131443872824045623925466785941644218165788375906545070579299412369438115123453708678092035596938153899404324856293539191119354384634980481624236272631216206133457659546026075064384430377142501066951054739624905723113780126828943957120254123707947800344670114244603375850281113979571792118720105603133922452784083375144354880915413958202063768001292786582735191556634682635820607201395538456234263843366012796029376706495066231086178320604101810711080826591682952375535198335131710109554808083998972707192835790310997014622370344779413227058872328909019071216158159728629692920833611528369790335941175881158620949172758239008447700491853822892586246114104229286865987818954448297491855955536646728077863827028253561411384578641001523115610411477079116336923403445586344545807558903313478254337836309169202411611522656155820908428049877758067655637112145625637860747828786527465663713987567264779307249644362011512444998632077340750183209795993111165031793091574349679622762120377604635979514178530068838806368046071596960932279725009694670367082155929843971475369948214635041456652060307499979444989737740540615978199317688661647728714267543330478205474547315889764897778756634047914374157088581398883970691714817726996188677020582981262715753843902259990671354749083318510884649999697777148683275952274420121675118351035893579407403075641288623479259682155263919982892409625695331538735862330540056860160416395212305306639286831894135833131443885712994846227224870939479956925573173358295434653239195644487281614316827791860819441232592851521264563280945227420293422903315863875682003711027817602237286453365192633120769335664071393627268476652350492027169127558851299585190269041826566766519301686494023454634901804016415091303598961934065841367649666675053965493908981624299703949033467281573765666536890492335299427340681072240800327733780996172946988336980961873019843570933476363734918045705376869262310336995643544492166936748063297154006206540601346652913023844586354458804325721217475165464243200950243886562085556766091293950956776561653736763300074807343715941158017669126418375114860311560647463291179790876333467349306797310378963887593826968588434922260840222481499689663979930008533855972600988943260416495647291380727571936996265475923575607980983905815468618467598676361983525067921694165909049780069617506917758001026097298537501040370836098672721924897819066205093444839733085222052362884054923578050880828915052139099031480167537945840015378540549713353077873054974773775151321716094415885067686137396170201007414322667242585842862776269101602015492349759270855159687060407514957259783649698361927277642161346912912477276859881844832533343110955484199846293859827943043084626286887080233202329062911024157039410641092444019415796029442425825766848646186838231732011067035210636526995775865192216175385235556547901266987567826035938444304732384442425295612278116704947437338163085749858138978600621704141919143045948145334416614817308911581068530184294121286390470557936973252517794473912415025904319514808223433320235049529979539659923722713902390606124407808620180918066363813319528353312483751385027364376309796841462322113417914986213387931066228110978745145301143011606498044010605738368412849199389499596741469973193465032655539512046027414116197746630791561807909485950856456516518917255584117636979276477769967818389951296750352519291340650572183488625602373012704617088922689688753031519505217978651574653422433215655025990133622165574238951659528710742115021750551443672286776097166344864456833314827921300752809801525062598322254567354883632640203957983612938516184537302084638955307545753336007662836982969830338600300914463597423321605815990895131502120218962014163461718610177384503358675233059673411922804531578362372546163899004154076668173876586987620152794796550879761579071223559804635734401109668042399038059633307707867517146840182693643439648826153871541004366826043867115442329473270797153163444339696696021946245600309097748063328274112868736165528594730075982002487726888639158085143034862393788928058340943028376278296904443579176891076629038820492869523574734258869187745677805408496118123398706808299280652860218715303771234211000461654079968778434458998348354889241319500271973789798220647592666843617756615549891670670811612150110432056754778725418519655432304176415646625075017989542394535810022395924352977603793405629777287815287506367701759741699352250448507578784068390956101337569184446808383553424899236042727548052580059017142499329429394741951962060692827475874100019054404977887107593179084882679624268685375469580491653046604793084774521035658713881226533938706025727861454808885495724007799712022395944735274156701043104333742371578014555324832635397688382179688697757863243197877859399350818160253676033123274428568449975361178018581654155285844461164310203088177677090917920061176259190751287468156464505092954187909331390312888968153211817005663555704411900018062855813505969597675164998141583006284110447616497609616793191590813086302977116453297294695766255865443143127867955196534516660208792599051589273781110499432046462700025265862128710757155564367774513554458306750261395476867280877358677730451452058700377158434190983999086336238674504616118715091657451571272388937760875222700307869199567816719244471377482255481830086674123599102984354260631953959381524551103378256961547468951615790423836926844278206999184681552542987656270898271730718596524593337331215485592145408412036763848155658684492803587565721137284840799928119998761311130470357939696431911449470753735919935996775981411567515492068937543266185564934537261000111138667147944028251636589293558492428330042136898928853736027405267273099229843251812402164000077835194631526457025372896869129323750154521123186513947792169147893172237373594656176608675488934243159950138213873436595667527876692710272378357866889792938982633755633457814224733276662957540015679789619557982925617972691710626975400699089507580991304259652922258592384648997716862619108688742409663319131638040003424563101847305837812381240139829532372521022869834822871014601558241001594996342208477697108620808288694450339999960848647224055625512187603267701604972190263069948710088093088541143101322311301124608578234307842883040534239871418174978519488709196260374059483303757599339489807493753474747503951358752336282796723656540044700345672986989992336805258445482263835461259378817412270458359797632740836414595409877109009384131632112434681979690988404629485870184322835524004725595578679789259124294189984865061167311121526996887601640661597081838498743239096388812922699630540619062464682791442050251455311874468377697514013333133659014454619786423568673947237599030874786231427569911292901349187762209875943600565047562282613700421701363842868383884499980070626324365556149645052911310556873204902971629899800108422954124165998754431112625789286600665671139209684915870466633635151783044448727054254921114874353496530633460190463306161322692312568422513002613641423069527954164910913752546986378524430620274846911820300262363121685594501263093882965089932972771583481041152938825884926527484604230470150746035561785727249782631544996750672063994401140248644823693014454214382430724540824139073992476107853408017605092151155216529342252698398058523536661404838035012449313050553036613703984193235449228806263339026091029760003904408512558250193659183753609108653975147750658160523150528651081692117355296099255244276850442809316308966556073655801697965819460610818862468025239528060732986736002176721051332808343828115808361987561634535237233484016134480119140021969138362805740013343355395095881078960083560757074633595058505480624915189641494014769469214934836093811899435675871883405156747251895486496657312013702546195958184541433769926804441939702441275028617161988702146323761041624094664191972506054951199104264915288085490818579764147553385511153793608135522351338884115953364949379060431175106027998130921864327500425965031411249538636474176272950060914028886279123453557720550059572452980626057590092063354415813700507877697310004663445663611039320978463259234350606100351544514128828131388850301203633801487334711582259515810225980526013922996805584459582776091076528265256738469693376586531326740718680775342823513331781241185795878886703280037867673684124549602171440744402681082209367409759755556919625001607114653411004610535674448500455665418095195056799395335113581883540278179863411790179734135585390709730829258368806825354276806914588846434708245378818150668366938620441926508908635771855488249068121769291295989979660593113508340344387078060143996419913897494155733176880141186882836621866435797205762128993755568745218879744746819684972023183465731666557628264341369592336132247187786640489954678239812830897190820315443562595841973838645218039478767224321623212381898198394518268472451435012871043275817239512388837693727051925399630130031234135720377187746243503629876651845420165644724784958589724158906868709425742592824504408527165848595479890292611571014795748436332184824783420371245196400532630590984579122531216930416064665100077723011245938924603458352916329701286597387074136142756017117143739734262204479863180604033551117428787592045067142037888888477671574359025476958057140919059667367875555609715593888559882387816627061701419783107282134769979599069553838445016254081738930917752006316753459312546703405600511622127540088599146914172050629402909203935214901689077589943857623564492782335306418801565220118689013011410531842567288260933247162737996331700207717436716471932918078078748035403275125765174867712203351932003598721652236876368876348483528571415558409150382095501368448150758932340981037602569709524663877040180541224849571866124432648809547520724172159791586064923538831264519342614013928329599216652937309963327405638755396065061619711267547911315748026812438370254901234699324846135987310733485869407176208709743886088005693436266683420777347358607882531652633437966661645891062757426740767660176046807826783073424629815845456375732378576680831415294690865403006803231234590854543530760285797270069702866570993625363699021470830454025146133194379460123493462354080610391932950545049231082767735012008768840378901175075227672450618622059332102668598937329052726834202903631397914820514173402916531054964155986351961679163925583018053713954717927966759988708726702088295776421177779058636459308096183190828273769665966805891514282324493546919480896017025568533669432076141588312837295010254719473932865771418400818308333111120298933020581637858991999742163042721425030103926076529704650602434777649709890694952909959781311395595691753277764344400852703803320225709065091145852913010857361660204591612973847547806948333347573322458170199525744727456769566803596128289935849665953025244792352848481295604915198856035211449009250903822366243996164638370616237112613753857224125846749318968624019062864525143367305896081644409149188144961412759715982873797890545518559176882718297758469238085580566637376950325572605560173596151758976806489097408976893279896026949999460894570168460085170190868863706713726123886040977026015622803921732900004333156277643458212974248724584768692861146914985463486969360847342977060477088662974177547726282894936688246744156713119342775828114421492375223723518400841411531112582039226739114737331783679203958188766873888255883725818162377498237873219760808033042890503822345872022809854391693124965100126515078232104604692574861082851491262765964691189970409838445549936335134740952904107083304699504611416384461589784032167399692741481781126214100504543905408174859515125280682169125903312033390839610124768485648724236505932804585975895556964991758301493274545942591309627584870809085161276801852245883831567576765116707178196502567886303217825868807945660930806393129390141634021893162712674365027256970993661424044510145894167813196998343098069315464313083960238050511004345489186723116249156968851456165976664185596524799227442667834932311792245003273377336693864754368756898557517571685558277266293314072787754933858434851223257865040350749600877408717879472166136085591836961871304730504628419541578768680558085458597960738063506590284730106958844436316085868578007773664153829665958328111473541213038938139428367786401809982738239452000891867984008260271216374846116669122250104435390975699099630439893327894764326519053922905934303645642872020713893365296117235911136608197889455531231409045867236614394341904381024290516154724303369515933209603289104975635932820298454318316433655422005001108639156938822128451330006120078526613320997331849174294296584460703775575440309831821937788811775530423231131432381497525612054041437573841560985847086257382474282958271934503416945125341767411319295153710831182814773106093881646034981981248104972586828626394364625015623202145491489580056061438854443804428072630595193762280902587521197784891635581921051457716198919264946526689739259323148720476557755108633557474300048131208179827438598283342211403923361222236506366305584381104240897450609024488602458499812784154660373249161101425788655770516454058154873554671010815770895860597654145441456315936671095386699711808273115104813820518165048596123776443701034392138148802718839884166051796355924831059702910065459456296698514945156058674762983598273538905776031161485399118546447758860230734714512089649006924069510971052491924502422631972224821072432980836503670522770801403971731703967010730984685631081425831204652118054770147854214121315348986218498142964023931110772892783211894833745488580931790365047085333494256457880774120552103310265587741799631707864508713454033079638495186683176276517946025467694273919008923237191683291988278557966906044603256080011310692332290254071735592372334963355015237920099219599532144146506692581010850100997283119132771552542905446799554981025000783817113020791936692179991180531392106551646060941994176057215850401571486866622136507671751335913441255156741989956011166421037090027486058089165409829943257287119633831479176333916072548654010243154924356427408248712556577822626705715079176511461687601736856057987712166532439478144954626528453497490283212412564850136137677068051860018658402736494077252712917954960328296928071993209514416955129913689666896751959683955403803554611440870002957836561732559963684132094328338664288807082237459955418129904250290472955567205110478488460702525750226663048881574792776498123807815736839768600977285005268546393964955899451834796956468304918791195918376345191152862208070385876638049344048768192312253883494569719331861747048261525519487234249064389794307192807363501587634501491024555254653252458369804294595109490975522239864714759710443879390718970004472320988976681293963230307057846563208120866913252286378475828857896775448929692210159359685177135363859906854905502489532268122058263918786231084997555891290678390880411991639893832395296919349422289151816541423546057323189717716014782529045092892605125701362372088160540041845769529668573308066141542443565252518783976841825929210262100699306839524394514929974986819931298019491016097929939255584815912893688625303566129804352989340935891706723360943867718660620695111912725514344335274438113494938416522920174745180500204083531788098482199932969082200012097184110362949344464330286792525389357279181133086175845730318303445616828248631750038804909660728670824038030366260392250834223212423678905951090154290393838584482393546051020615429613184759174096449448334014442570913109054122067079984276328362830080742340053755764542634676896648178927212037538309673998503349267626276768943869838445075441234756874737732806438807498523142573586398605489717207097693343207570050602680287035648882221123286462042344627186778911567399251881624585988680022525645353697514494332775634945605064853688618488291281675872265707690745586171212837657606173033369818405717001167941842565079868436371618880177666193111559161228834061297625846609738609113699667855934269959431077956847515583815117511254749920261339440777917176221952259192011140923241228285272203945564017430712567031651014417759695699065002175099226414674352011410975571061121917934757087357634859684108586622010651720776997068078703954620110847202658402278906330875871371491238573213486354014881689118538987559651744246348055872115054642272512439979038472306173392492814550375639528291808866910086076400605530381997076062775775289458276283929757066101217453557820626807819972440475004411050823533956323915694705351253863945001573367995809562427317106921465223864955549394421103916810512503760928921229962910368714632997097797333954373229047927645113476273296826896523268757272132975841051513717189219396734316721770921659313478868153521643065970858358556518854094238174244119113039811726765804593105711246794216594669573266747981099446375464806780452218362082775899798549746363503929207354843735961076823931780396604229586587857170580089886890550316454119470693849468453837413994482526363208107615226220948436424154121817893651947889130183636255160966862395431148863732032045995591634827546334023031342120167133171911542968599365316606806349545880171893410777031084066453333164574993408808687133314568174604628744108704349386667306417160266412226386396173595272447741168429777427997086664067645960687949138309555480493374980145115467555232122348467668322497272530978348014833309816127310488196455152341370964037131097855610949661133648766081679815774664427023701000628733654205053741319325216780840457175637226446878486631388738428339444463750819447636081936502195815390527774747866005270411906754320484973963840681689366362435570588700741435449595222768652858421754944943488975511888961175810565758504379730190174884765698798563050473933019365524108992824168983526071326052941285876508934413757061575963875712425865245854351643980154980450875829257775124214937411385671370094149399438602555737171801557409653831634658740320076323102884651121497249041833766057258289136807023318205075200112580132680945924787142161943269538160497944272261983821922403848907612356970796437640146458642536485110587946022877163051908463475183283166709880895544302263344686805991997349227508118408692601376633604860217802085838925474116291365508104021377659293326618299695880920248415210891383194961524322590771413049502344826038629402703671222145263086582646713214553790833805320144181603588279263734565805040210001186646729521262591606528996637277073022018308415095487659327265106903912757206326902070566211478022323175881881521617888752220883967525380282633276682117137639260039818926514944029915740350456180287639003019617874137706571475436138040798083860641583990475525034904269093391659773514609168032700297098731197499216452551525672438096164268606245106257646132530114776860651368278681559908917227114860857864925189185152006596513079475530707190613015911402055318627285823930809581188281475096703019255205457201801657216149404378903316946374325472310417722277654179243260101377869852181524896723363353679657083933150007934872578534200046807412060723201518080219858494576658084819843894170392783441866249064860290120074673976142601630498601868181073438476639752933241781898257973165085613939689318352241516006160391014586235424280297664228076152444381781287835939474833219548549603376340749761389649964430340617719583517694819632904442969984674088667582513836989460113827780048133604032500685547080027808895906653657234666335788257346481887329731203346904014834884931470144554030503374969928221990361645277043564557886706026160924057898642451737209518007844041153631468671070343146768419311950580103551560342608013232933964484676563751007609093350257979302347179900546178978194918678982528495419171388276821823474074819545680564221544992566312989588022662935854830938697319083518313139235311682168342861367300931630031963176591570615153584404459974561698653632763682028770687941457991208040343693297392845237455255203528234400327348828695274993213058370951883002669044346703203455898691595706288239260085704881444437210148777556496904460904096283776122186595532694885260008914792380335469112236238327793689539134745698233073623988704721395615973987157497606781849695230237261256408315069847276076644980642215059894254089504243133596634198681578872687175924887530249915870421531453562542310763344712075668651441875334966337702141993909714478297460616246632422932413544759039152011442783261782974393305331064365073371199935047881474862372214517825486215350679401787788200235388190891542484095727960270525875806282492467841164824614574886655361784959865746403348977664844615899987586158439721316757295988006129057852070111719788080540908874859286940163631944291103026886892145394829397166825331530911522500783206616055299237607016236454486798203945367517114832607578595840897015065527114002100818365960877445040406366166189381675765962838440181271357042777854839251187993748971488342178192959324950532062764719489269675835851921279318372077079383231981965785544537328991977348028431442340679820022408265339950108473790306677955763077887876071989425968898019838839696413593365639326908720239833604772583844287146744834555607937997022252213599658192761078091627627850193018201374672227000949675914265786911957044379221224841979438775249731959955028270707291365243879873237475258766029250055424818642207838573507262301773665979921694899113061775769489088025876702756485852152011289467398824369026927527033131674339031486925499798825544669032595494857581027304682554360103014039924755307583854742891958294633275560099827595668495085111874658447967488538980427650641275525848661815763162272455174297627471981898038167234060516154270549187653597981480940689929538676084643979774167991012094115853031902629153951362762860938342659311200252535951943119310146179329141132363823786970396320444494076582336634799940586089208872305904045209899728269691926299973518384336497394064776998546416847707408313022042463114002638123328665899568939842435649616626379931181561166515891808239072644852520142793391626857861681608233528610448675713733320050715109177474315403392507606373347767825531514453280043607983273760472900117952676118435801694080544881074367202899020682054312068240486116533540843471144476782063355083203265383441302969484656532585290883204872150675747792424002263915738365514884954698228778105798012048662705943983821862095015182466814474665903438510509362516421828516477398005845440380511994459298547899257877722527225070735192313047527752690358819362830209429661188682120982948221958440400385352247121122631506371142635593485774981593272051817122335380947056051245010898834783758665236165607444084033348848790310508897636164758652482460580345484546802778283908076849936547832098546258581526926829379621091368401192237939304258941291156431140381815434030124193155140284298679172905564092985440733560339976521263954506009593123847336256696434730754813136743976394972260962890263980618223850592466350374497454157876066095256237112118811038139929744244436415385970710418570283206641733605997578976281358151017212671109312413015171576244000204368591114243735482530405811146429820145453305464579378576781181781147074254574853301164835728835726731102948370011518428918109769208272261561322777349154084868137838756878786508874523445481066461754135851184903354055635754777787185650357644685056285874977547827513809618781168405729741829564857268802419974910133189369517572368427314735857059735150985690847505743427900944430904352587665582213671535948819805455012000383048687847512349653901094055510982186388021182423920691559205493726935264099697468212090931235904843866090813995248206084245088538662495951077707195765739161428192592055372315390316800427698392729939657728651733593854459078624449319068145843394641748024752969816484760327428481219601951600493954675089680378838815292533161094285688757144799527009372918502078510766059394891381112014671808554597733813995386146578127079919050911197128107069132308750185590242979410326759332459439082385369833917646572548357368813524272238966545868752698930357277355983517409608825331149758025583840911845269928264151047015537317467787919841372368308382878799561799095385294226181784199859462542541638158980168298698895475051375838234280950275005509407314850960318058942929319559567313152613123182846672444415332319557240023678829786531196613657963819151652592901568621335495572050205818844966921725485509152099367223798017884225884335089699947736199567631132887472132767962368187808030018681178103376281536539097093362155831976517029025004192005664376334967072073168497412644093294562691668187915744451530380307678655752675945855977362397049102648057987823200331914572745103699990344183234362453778916542666568935545608181903201477531151850558342279581281569801472060535492047969517549254797326536121113787737437719013165823690919536276336671351831822444551974986622496459959913383423025021883920826964383400756457892794981069924824475304257028342538690367027413001963725254004408791529033112570957274589358213740167347043225969751546912602871260879798445276746092465595981194040899297766618512296972045938831599578581266382610594802931713284307386727443030143767832543277147725107878088040292717632100433429479622985352649164233165029106979429960684172202632850160423385485484529625662277134188054152943683184786671858930856707640195723074248065783015040730954689663251550777262491141137839797746850302352643761888056494520997378337284679558984504357369660661695556029696896589792460394557271349018726287185251646929896566172818225005987972004634722753444994744367227939591155729831609168185704585957001543039808016387483840064785817263172835595482206051632484299205244861396293384387775438947052618545975686629125452123700165376563375038718009366377304586813100806748971456508308584087942331035941891102554114874144556343082603947541281277770556677652105449584942365964839001750796803435282296977600253878827048063789401778562910567433873800491175940607778044462249890522102872344298380749193185559675014275192215450296873865452408541222281032366442392024219558929920930451093566710364574736983580867829125380393004027984339359928711068835085555879644694941185793607888090845737827029093986996524431659805969233458632123398997681235792668175045638683244626803831848145885078518765084532981354037458005316845023869095438193439583959110891033177478816911550265493916865862842462147153395234786188003200696125012539141531597751547389424073902108227451794321189737111196031427651076054769240337376416896603371239179324946037753944194112582133003241213531248233835885438201449100525324955084797202745921437976523440959085768048613402285927588444840844061454197151786068898765922976073092655949381542372474863249469906645150425555064442716388208284472844470138908478911438601848874163365488066906550853584891220149458462414880353311689050755851510366753597121662025894920887769738263921390870686844770056702925035239704786821083440475535539749271152702316941647476289590196683051315734842019765199482647927334079699742051666015273949233043050206707320419849742098130078955051403993262763331879315753902352415534941436337655765248589678178982964594214495698595543328730545298498695305238968688520381328371478386847173175223349706204989357753429242927592200485370797137771602214915453966377934079813724499355322324027977421601659637183113934485879845240494879291861784169553634902257576866983845232641532565179918169556594318096675411337261956236626085519942180984913898947678773938956664969644348775932744061734804524045657829551174796010193834228265394921564358551771605701678888485632868776292196668223207116132135013949452883366901922928186876257118869868321901017449831465745783224323810831369026607852484037758451179404983706692105886295128867662896524574357219940078990963121436527393841861729189531989787295129985319365626625338790134664234981382774624154915608947194533633083662249724960186822155744655067916115481901468052067531717033800852038203386679410734227286029716181750603528263152976084180362508121275258856618948948574170028020941608758995799395416070752466248803205091450720973247477082832587190243764413876208058416183275076999190827113605344434099893541746172015888906223229361237533521160320822521670728103413718813081215270294015104111940419246885775931828686220689238685729410221551267021772470199716379247960360568188110224194242627051767185769924175232577529337139938519803773710587353793160755120018006487915421899533698710313145769421762407127769091481424033197434055157345147670523900061986457042534558899465393154322966091106251968638749382427529692534692000291878896640718388415216101973350865214080175161918683543212052637646309099564724696967198207809248546720847188454954124112192789222512310291744386643789649345267988196176453942157417118055293005879187989733692488560850899811330471306821990502444913577190267292114932329823597635222120417354858571353951209410141334745378383734642223301656648490217988152389749175251299489172669336613702962293435614752956014552429651831956941714731430420343591262971559423075612958239953049287704852618817923792493011890980667199464349054869993370430589672733921772836117069661730058360981832203447572357891399978140954751436207378194408297842080980579252207366439104375472766372210439321662265911224837040191165797734893824203043331507085727150589049769573296033847824557422248191431504962219908505553961001252875881107328603824039399015437391023259980352987942545328627848721081140586411380256659798105784214103113863883361729297862481131262663299749518468250762684943588793550504102723795747130863630007696756524119327520297431555464999703406244357138237595102027152902388268095963287987639699810062552376436564879721361579050419195636946333942673801968760143215784044221877499816823972074447869694555753721405205020409482280153277523911460822931928015798244613862203024345686880238888652383401505419163515464243265699979581019977990461946258988872234307419249020030366602209679585861073121010296235310846410401006618406893017975596571468804521306390560228534739754037740231954329561912988390759508350178398147856636482718895532761522202064628173562354943001077303851059812561317474338435243226075243858024659294159456917074975825941264284203482679474783193842566448176963887516530174523188642905945951667929281366413594019089631327027306517685459062778119842767627317732860128745316974097043435488618107613372898820301667680068405908868288343276477486207234020096201018812677763489519518869157487207182041452821170230023309543690861742493847759650666965485896010551022719815180540112258797247887751858561555136868600278917162296056681937043701926870918639251393493599922215473580429123073128991357967945003634319934528940946176265928156761610302478741346687341599487810327311884264738425886191969559028824885111600430714247997844656369408035703191852295920295288091246305272148226169920703192753222659383063739664397733759791655648231598753618632504773353410582876282334050881173218971795494047019233430250040018093057170913985546028602998857077223570837055666263038794425351784622078929023071699012095516598436051528887611850180070753649626002315257635804203576637818878332261462488803760387757739546499036651449078283947903797216936306117249076323710474779328309089040127555677348138777987576945946202843419455143671441148890716519545492478772400433437062723456741732237982977388565969920692584112124499858141196649526700181049600450854293477130438285152991163966829960743125886177662949357562688046383298771203518601765297869208131996836978922569618445757684528511275186140428455840992943767557691976010286191994805590382018203245485899849949945475620412778273093548365774312535405115972361075529484043913264978761664794670974787259053021302168494489036394069213151351084511799326742273182812078965469635007729723795491568117320222207811786371044434283172026336029484563832692454788527564934567808992239197683912827188572616128551183693437139681773163930974708845567557161629108045022190133146029793798928870789285822813955775456341749371357982192911606454329914502665889969598030423788931394451776234173237920805841568017230307248381361049692547587693007679642868407734203676540078509667782113487696431022872691899915849512976508419397764100581909043790199228770120827562376609994847133108061775395866382416498637425933201320590017581495996852936343830312108271841272790745442157852665416734050205521841226869709225258117737715165121403331124529103898528311268485359417686624086491514249865864094909120835912800894656586865270308834243007566347851738089587665918374606286027974929617898829490433105318997604642225166300864988300422641811068663636839875468516996167989633421383735611021446396924856155249117667674725569593514392622937463156766970217736587251445626105440543757224205929180382094836221790588317643219348930569161798101431459955814053382179376481991047235129405883742957760315019377918391977387352856870924580201893800075720219820269034758041297504444001481621536691816507075200378787678585509189718239375982005305202382300114196714649918318827377169749892783261170192020751910701331355180395050466760840473599696592432085253761868957006060569191235943481215207074198402282568349339461398239131399021580791320632676163526136039642534269242214846941852150517799222376463963233762197444581005723303346045360687638498528280530829573579655880882571737258884805033505652796325470870719101638372186803538841430887803790928599036048747951737542236537339952850489198266874303633860506020999725814433184606669891289581955814569818112360240317824294873797188758265592926647942202554801965065917591056368372275178506126625100017801162193872919953071837853669158617077567227824509261284311943968778035672802359839096987468876435762073047759472966454307064493003337213047270557849953810828790459256425699132086717415682295510738386698379159920519985963574879082511385171420433989255238758965785916294492321680148045768699591948751069061267317057171095266922403497442261876778746843164083634224617473555260681401818516765417371176705213606387686054009453730417074751726985511860705532845770396017423147324328133306020434435978788896550971706090888092147726232964174756081336190968916606521888799314167114428199046430601419948155584310422060727677214762607924035568984745741370148147673200897255965282208526633610198004574026779426079582978825863338073271214263241381181647002267018971693979107856826143205209519182363798747519203382241554246527845671258087515142334010052414734290881139174768866742819982533251149895085259907356430964638673655569255709826061724097435743540022420660619799838338684583288796406467765891878950536223609819380601360533235280143562118588484630221124393365917984513327733263499771055047889112683232735585211529742046726854768052693284804261033358901948439118816532531555693968109008309528305067858950556144720057393227971428518465769542720793237466558997487150905442888360091319465517833788592766518653984828688326816462508481466538700437496160552358995376824001524793202396226752536883924237912898179939101968155957879081775940243867986656608673715553508547304066080436432747791729856254293251973362391699678667141259195792321897664197722965423890703859427406983057229996166477115176968165238990278449575128761981994489251184857261162088630280802014123648892141540630446689554524217591347125482873725849551116952392466433906848028815981603054387641253817492175113023256894801095040397368252746151278559342690680349103754363900961597530075390298261429817041868850241432510056135070511561741328030665263916667839704652793007092907815747820981411035318516598014355000900418222762482160218502230094412632535162691588025876053438188011660943046690323582544648071653079827860115601233496744939401894161606021319592821291237142308768291953096036741363877198925053903398609722391861532463135738319613608255162765822343392633161817165171638249536152203378537026309827943387105317658617801364795541082940684118157650977634017389794395372696331032259098165126170185124829210561011748750954836098693236976278749000628964618502118971559948373021468655147655537048928953838527593453551363326282559576625619778680404125368961843851960478329130814910131037171889467110587527831051819945275007486534576633129705876848529509999631333450449980905003215960806227947335625355701709260659481958687937574439763981862883449345690721774502126349546068451156268133389109159182178185481049307696384185095948014568734724063435647227944334386154621370445917580080461042896670044120161435709725278201115701632602487383438566346738892645467160133017590268601441648563873443851566486739095253216236260952773139787477642508389250913388875182193022221652886158451763509769945453864640771207301020692031364551259970704166593187434296118868387375044268003412201511226870315324532693778127653874883289974713378137050512895317568201953245139352148547790025118748552263173575515052734357370304233186344208122924833536993906126112280603751680544264276819318967228793724711927777337910035905146498203845541791428691959201815555523210689721650257918775663633950228584709205051352100082532047186703092057625009407949241035937569211360052795742746179321708418652370138009530451882948663445629511566419026865920471569880618104692535298390257162816192000007393325875876884059426357633363159323629429651438103609730071618530688357892567910579558584254870722769984120950053979899146135009313492641426427032560832046865456277704264441620368041748348199040736481619707962501861325157710087640248602771302089514376692848283807654558519896586895635290078325359970267639488408440744360336363712094794481607929324291859092444605097510912552652042540024454522198979800512160040264008684787604438408563838868052765558061075649458178366428981197220848525268817818680850088000842891598608437734820938374467237553986222721120105488567697573315580669750240386845381404454187216245202432723614704452650860619468704527607645402898724866865338077250369907820826648239437517191134982944373147013923887456293902483679100039198189724458920856854110315993163225004810134156980159721639559237432736823814948686425092512407585577916795678479431235298808536407047292829053705865154577274957542576485885084563777646060965039679676377744395106907560875051098845800525617766629596025069520620242508269036297685016090789503308043006852029541464239510037726400693563349692662608833770889207504093396265007498762685351838928798390864696268728662004427826130073631005811077862009648391683644473839343137632668911096305455104558353877221171575181835655743382196138129138878366012856357285866689523362970777342330705632846057576139503948637127852704664508115114975220304281136495977486104620571842362062758205912413553437196066991416163399505397984864601251480455565712847577214383402810366725737584970739320288697994474342219694830008674568939025130048204821939301008020572999286939684460209779342396155549807590935130044607123072016859340019974665199904122980148677210820137697972879876448777128672922729865510100511442033666642661053803471219702907584371445142597402602893440131651982952082575073533931765721723880411701653926070802277568586473614715029924787939457268513792851815795065397186681523832231886747842162980004579974941194891559865370851984701650804282230341424860844658047527490863317614259462584928185209565047920188279464043313676243511410590684258126602588868203412700975350075971855865165081291925736405019614326280485835937999764382478397638181992324226530968001881264849522000500620862347072633996628431706491655753592654171410032505463732717973774043696693283326324499439541627889811995982927923251251831235244971266226848753699285219129574079714736213521580570877686228372833923259422120300830462407600293281913221822408994675685076980702331100668854175611991219359605430453173480659651808568402641113088086195278764595402674864360315767349584659277514836948137089530344782190437023487967384809127791303952082203706896770926312998804613985416816135718661979004405956576940240318489573843775397701469519331507579424109120510567138176108867907774598137681499914850349333985362316357970124594552364500640572117805857833947947215912949035709589638734923845810396415580733188281780643708110525906795488389719511475640300006653060459455728942784177987694510914286406652759719946098843328339066783439508719161672091206562449902600985282016056310208161992808631406019229738755220666573247120074238331589610950453043447260511898367794848868584666727488072929550181142566426614348016336505379651291539846489797322410458579772399630042382491882691425771615946762808110615304308199993763564237725468394426282480196082817861510050104694220462179442688595394168611530734326757172547837639262575316768786362304960413786214967016472955250042825136116257987230950797842802365886021138566001737804970633433925392794729660656565139472861629457934333127461888151879068112830237352154315671766001227731600483850471018904379020768436390210039771734146914325307889904361396876851195585417781342315693611755681613422117258493857358902779012107103562086987436741344263886808517255410079251271359493025301702975135945780241328530025729179041545577052543662602328982226227219609093161548634349693411174503676581957317177706418626619172429006761019709674456192160721772604874125444158668816745804734260125069684283643329147978669031351037301672090103689731607057521626154230875433170323414369839707603169341544739136113989475892820479683813450377043694014929516015866321508028216584782907759179208888445306311979733897600215331912717541429987540106457086989584633618626781496779488144173345696443792220122453562765799949930914411608909827201472702664908652561751753652327008380514232561609383826575624933908270371532327117229416911204361976379040241705642688406388347142737305926409310980070235868967106829130851701657706333708045276925205976086007120020937887484408725267470120316604696512298127200591429796796024375081888359762704582449846291362681763855658262175244962662888970878525471206599586372144140070300253238805327463837968544531177509561592630359282734804451643527116971902595506892225275278275989747369746102658539378756326505367419273989422030624844002206504584475913146573894494997911002214092576540274388290142351627883754092108123348036204419668015720537203456671658757405386349551236952502987346859331456486455688551268342812154413910622965740499426008171634289539595291729053533049415312028336741876258991528268421549645770004170634256636699028612894780065119897245551303428015214162810436245900482283268371504605901281761840084201281514441399719951047639157521209793147385107359327761554739865250756825107686737694218914586816907455611641792721146420639662115312318547279594022790251602944875087399400436648775796005077858275757866582837540496288139073420528523648121050769152534384317347240229546979955054404942118885165226478318466728812383607609898100625729106194525769633141844440677607722207963136457852193484695700072187552221232325554852831155513649849111375784420667506121097746049252424962736848637277621683428316918450233566949194128025242289294155592587338950133081861233958697212383397471873801492628570480555943908519118458055742897025857305774294205285671470737218303736138393237958167478217461387047511741575384421423745219508352152636150253818707311323719883717488055866337263649989195162694246797705899439781526752434354270780750591975282340595660701793522975243261917409607316833766793376263011965731429594208913653337151779644146959086275282569354518927300926731082842040676260631826318691611286805095678553071579127932317152561026947996974435928158209295991138090556768234570171822600701659845734027993872155420931875983982899159815416629380508306930795212767363123650166962052854211440471259285248176018477894626256829677912712887478381112921131937169773425022074173262918538495710208728744581370310364597763754733737039026514783223335800741543119020909620455178167636810948412537768841307615109893255366449875318358444369021714071144106490604794780522059234244514809724568756978470578043608709093075506736595073495558967754005373529110841036178749901802740539554248375256811196865173443655508957045992442260259215912889297604148337195602394797067052052999100190153352474124979690413946060277360528782631604147011390165297168651433846016217746884007731685674218253919928259998575590479628075215294099767467078161074848126006872013199032032933938748197925056614979032153503681353252637689264855752705500540892880411893683971844067795149856945026802573183742463783837756007639002995626500176807387011980703851051609318051826139120406160121059315070916877380205714134312796512043815533626801582633902641238924903091985753032300096435731678324973522317136982009774154825682246193532949221252428067272473686298313903924191222907991661460485437606550346878008383498686731037374144445712164891177579450804176918001464305057674340679961818470901533363729370419379321623917965304787454700586839269331967056200767402889801471105532417375885956198872425239711737431563805223623668178443577199636621431454004287547076085898268111638687888806003426112111927551405964774026846353690212312414003737143101152552514505916432797878891124177422264360715862803888987561349823410978558544964178389623016379573341676651857202979729963563615423565023666633785132475833623055997579135460603448712651184231528528593109487897064559467607092378386883241620989385529350997452726609684826052550393738503283057892368691341042287319739460354896801237896854696037207455440214391464561790129132319691587930663462371955357217981343001147488248069816096207445207226039783311852956457204018388788392535889516508891770056349282264221395179047380639068187791740869330601930414175355363233718587443251234689017319822461026646958515585684086291308005416557248292391640914508559974483326406952381826208682879327843260718835415111684966559638170749274109352053395104555170355119814690658461197955663639137467598392911902461187874534222297668480692974071440433012627995809742020485574611769579317154849204935098835115324146945845877558635850074899988404027855784100748726487246830590940026806511328735577926148037373151161818700641352125997566642411993875536117086998491683990525752291088437641118261299373975673785732971001898731180769376279227086672835835722914658251639719391736809738791744168759376409873122839489966205206764514645250421862537039991659907753818910353188138621877785822231560675721522427324391391108597962158235190314046020924141148329874616071634394105184761059444236241259308908375159616442855622524131206749468083633613584213914450400691635286941363418154468755031892253137899810088271322854424964867285870941416888776764397863019966176740462733290633549757553222244000700342231501758741306778380933187043590173455481132030331108259594687154870445866101792129396366166014728585800419445972266891555606938953904495327857691235115338132482151629463929407623016933910353025940591418325624056655038814796488130569617493602225345270345993090700815154467850715936290177604987700886794119545272325357749175981419797172501378736395712170212158544224187021433092950878419389142949953490147292692834992230657079607605978785572810632638611504991442532983078981855285955780743807227643215523868173065988688424553345009761868930108932941053025109737508789544961606990382187545901036820968543981192053517168125986931324216952199692363760513602520902640185444252614112428529550015512483316374273382492800359044434896853949824188050060528588344252376525546906470503410450738809286310486772383902146478126486201471907807794125424794275271739138244486901062595178878167309976013950770126045391815690788828915104429686464434591093664677057168447015409598085001420060993271626720011961235643972373774681852342125072850942836755988283826909517023873955589826224119981480892124653134169905421764920565511760139226367838562416913227154743558227065588869391827721497286644682674307939237135300373523595433273525331153898773674165097690618561428037482812993790830085971443410473219094268995465947668037894376872770198907065469470180026301544728822257921248654926322393997968505918646197765030473630216484602831014397324835873545165130269920388193144983677204954786873081335017450788969931944127467376806539691141615668578515239538655849605499499728115715000559831699102172212679854765214041574109923398806516054136474240034066643277371663781136206492004381927514361232361831935999476298173385025293170534705550457506444474060168274875240253622113695355045416391310384256283219580143725009572637904331553417585769564019772433114247486423938123203666749235945515918623287804699112605906407410042222189068466294743882161647267579886199843857108811472716698790618351483707387607752924677269530603079961425470595757842142484430209590736517890336782357502156905754416061325935783799159116608458794319743396487475570175347860866343124275858744386008571625835656438276506903948772558358006099535145578861768284399870691437430270420843234778579224257611718820753920164824429370556211549062961852600213424241198468028895049761450841982711719506664551545884787059931666310443318547213627062028856365969671469828675240450908635017989683630280188401837273014595411904166604327844692779769063503434700618535425578671343969989175134629098343947501053994535446560591866953819018888568968541417124565667968883752412553350940302055610750230652358573630237832593109275530979514564180329193371633364106360160546538775106216290717350297700015697870594308470888577618437187158326428449443724855857637964220081449073974020028464232412786697698736659472637184267722503122787591274364959236665440961256437943071578101742437904079327881513019211343977901939679440334477156886742046175658874710478193450281584117248292608196241829047356250097181495021214999946915859339111214004644136813515193951936363348806542461614928218319845906432674679835291222234863207996679560744841086871178505298864203016592015137346593257793119177670752141718628412798021946488757076315742773250383748272920872781138078280206464055068348231611312484713728419482163302650380471492948084913002759797451999181791839215370625134433981176736863332770228616783562945793864159200686171380246015366112155418582623927031889966684505514094502041708154890908635981198669817662734065471895556034299293592463623091315055635808466764214820128361118273091251931465698306460487652136153267257696467416136480539698365368037063194128194838491467287894444105884277820681405703871268216026518769847768553750924714757000604447359658170719444810158081184313740040166382673695836777043151056564526175360937078529857627501393933642865475975339471818425133354983132491622098557199476243513901238045032076315455245149740797614280711585762248526912837781821583334892227934138237026654686724757063539148116491872991486484753177573916764535204282568907509280199873218331721291722888258488413946158101727121035659951864768099681498021492733440407063383660911344416673806024230192189905105315224372438332401839488650093060617530358498686856888412223633940554843779253623098039381205760932170932394129328093205039354881053158160781278367352025565832200126783069143055550880288864890395160496865070588688155469940736058810894276802666508780694137586363323473166249651715896204683638655118642931491259860132564256323857639250116759984230227902506491004262312199825260981710131170400692673792010468027851260782485132085898035435065676432861159042859181389990738092808907756361319036296223978085895374038021437270665854585750707820193751349893224111169409625555628445772017468215553538290405419930000029888674017231803409637685838414526625512155834794208263123001616532106326336674084008869050474360259300024107262022410243837496483567491379217732664069559811222878989552051785446172935034718932770546522206637145853855442524504493282177354085515585308537934690172388467343599366537352453901681248346193023280353539606829269448150561303705962319573049988439511041214184835269151381030906133586897216969428836035444476510010439911029184174288224009243130910664959323168346555208629504842359679776118758795372470898092771699193807139974096735036662145478694499394293998211027833825524507830793416555583765820424063363866962338402235285528391235744356041466848549864483724328244311502758890899156704675411925113372156108342880240470977029462398932169639229113450254847453053247395070736129322494895464139018244635230790761192654996953206669530323159320349613728790885239502200330030229330899942504668201164376500402685058644927465340181223351248717450552427165844954003954386783699734687403538984216586203595155718586278091169202793331529586111381901279741749501510412401760960930433754274471643426270892789965620944090939250402662282033030278745961683044437905160807388730227459510390166004604223348757308735495930232076063664320971667156626242955710736592052991789513922167859167611553254098799253761123800020055084624417282114827771538849117835860535350161679602362548418323591805412854801005618379052051540965210092182677769311846048326792712109881656986244372167877443893652260579473398789175211445659509636086188745238612607466024027051351593265851615636862672181586703981816999350109624345371879940581836079852661228559601677260447435927644072724341687392356408646145281904170679556850423550993022223305980143262492740298695291228493971795883538462580614377211199904078960442490323592503570546527833971533692825514088826645797022567058557768642824780846904795503117029917241150340114184721036210893578509081083740227914298013744843769221777511271947775363600542282046002513773927066430879753459740890508446534160823099207416628048877413284976143665117410736808628364616081539266457213160201906152478767627248400308880428121154370013487738688169703297458429627416535249447872505956062528057750642921880795903453757899873495087761074475082263297608611468294034498695606373744038457385662671604478012723691476703946850277995188890576361154763747671931040034423205142370892097999104429195072463744759707222551284526092438752804718368746323947460154525927537606197395293153454632273098264032064526247668789745027555430768281464800589178536008575029591750329799745769271281481254256822876999319680423952284950456546847324605059217417616036783840223958453676237032809897778774845628780497830046259526617508303597604447755731963945235767122236799853618097729894082955937901940222095684273124214483601040132914800820435764042584971437884901914209010990588751674603665747072708355077144197193683606036336125400326112056365267516134390416182884688401779700192309672920846709905786341911811263155786420471140431205382961326690421778165869644625217922369830148321490112291345246176301624744130864906684051307742232622913603013065547616237425609505913350561385770488306785845373034558505342370713613647258631215750018390854365401527455606221423836099045980499385100844886574320503257790234393057128845645167059465084171319185568154194353452998520985790216555873122300770175307670512498232951027793128545663972388732591439091546636755861640578044098953788017301083643669904075545514502667933294443809812674766635525779114348817707488635016972571360979721572619967195298567207744079202550429765463335012012127023334901573781731610423163871267679755621852419899835356261766333543637153563335093383887514228420054783896583613153726108679170274289056459611273033420379584081890537642172826827986533774958906067134181327804859769814454915082547775432537384471660864445672236820359504462925006486735195267404453436988912041975671815949805280048504588077374170645822548166870304501212410439644645824042108564839682806331804785675697848904079391691515591062465087315313939778246738368104414372675210417366235982148581559061398251421809849291078093452276976101603004546481386393364126527879116725052998802799382677417667949295641267655867457449446293928921608910254233217300853182001310285342976818187914097126166036362099497388630851869474188568471598244867085401639610140482903087631394779313301943438846000381604825150809363631130700669275727879215110368521752463246901411940974068941764879010323519548197766785875948058295142333292978140197262860655297394322451981273257749139340129658899753638589291537062044183746118112356743113618652411854429049814509471668722928204210169006165115457343397893899914057162202509978712201936223067880022523960060366522989101654074822442250054084172928744436682452153158047094382092610216598754430606946136086079272956994304034949032797733161232150095244838123264720613598730940960430596259374643366255709629606427435359702968961809729836865818125326841165757761931927482872104709844820874343296189977154466460104516768291762356313959608165112510953128723583112687434452589300969294712535328233537270656048141156336808056364655900144115659822969511214154623125637021163734242935527072128223715233022789196169069617756442165717762324686679343456539993227360713032972292173418909235738325009104536866875815178085952490294579200827189515879482739518339038271313160600487530981692715821147270494743896632018290130499024614512035988637013391725761735204155007780256874084969220984655386699250235493368483177697414682340082522120547600009717919886503415557249256522648955111124908822559696055660962270048591550132550625299275306149745088236746596648193608544452550678202669725823942976869843128223288623405112773601816110740187106947813018851900454638393881912390286110409568173678756507645533789325511735642695960833187534317091431535354457307769966229751533391108730100628940363181370029424102751647091761824113032027057705416211393383555652244161054551143322450369450584946228098157947740624359073775261921854257758823958262705938071677329663239190228851822333188726339349356675236464471657123718616059538897956188289983715193467282033708070574927936423190725336405858177904829451298996907941620548252691067840431840342804865608583075477162025186393298182522248277751478385902676043754206042245233731538537232888224166633205334311026760153971990680141003563540730193962953919010385673861249088825850870484673843368152479981404952291360808634491234193232815447671977354746744147648104931273901403146573106042868792804306751006337825407846680950476699634034850693851489407193152309528342308791241968547631127929177797836596492823358118945810207171973316238440523153376518089014344931175928734478962498558668697067466558382892500991438575094012799093598307084089952677948184773869337937298334615498248873036198511351325383098321746740205616658167174427787693387434154871895425751164833285766999173769524050634385121480945730294992200468173281223265149521314385614211489099625470903962746417672550524743738979701198760791051611583739268877286845437583753581413258279717280220556143377964686938907296769884047287993194730735664290666650567958286868880415472480796054438893864987016554553444857815586046543540069578201419646786913629202739870796630813452914898440210075099854386939696499732531101065637558139859896307727665039462752893394077051298347697992162189304381474030685724001497992113449361661638720354253681893754700785050338909670041355681811620049961528004620421113784936299145872289317601767841331132212021971735849820089741456076193740594054607441737210741981923591666482902728481612599858539268198735812085572212549559055153686139246232393621232376764179305230238112497785828491209836378298123472314917907340301197962699407045805575592661091180958619827421820121678719979457040314876714051185099312164352360386831852092843817151004202393450898603063681252765005253279281472674284693741028254034621317754205483386787069535240975212180508822276245804363393119130953832644988755540385734754694096216661732698817454900721203193834138418663956844260367231574421404836923410646653016133865038606984381065607428191439925100581338117259717912213948403192419032261869432983311450611430542123852151067340795773648736995737375404629163020256060787029326832413014803674936762758743200935916131796534497825922201076386820981210417083599315664932868400504598221323077886307765215045522112047282817607958673115357859119915149589407562557450613554932560129130559833946431047798371399407014922122194461328636153917835280618355557301578313620226532455500435244719415667785935389567278340728803401661831848735631039608338680174178334812577196329248647998444185539039970856415620679983834909383721243369591511201359066185267685901165525785694457455008146900136600149409038410203191921730825778726321275144092321624305005339856235285973639613777927146438698637643273486778060452928833794334010060191579579235221140150139139318612354833795694724470240068505541791974743580460382993311273003437673056349075125251512986370791431252022751423745735500644636832640570346189652178616272217952345262808628036083684252173534053549103822216937848852542716489737924576867167246112420898540070258365464752465919691931959573214937119215292635640295725980639624034261055870978067011471494115588506220856328624282827441623734208274170894825537438859266851831249356105423828676546291918502159363564600313497681685709921088564008953462577987959822074872148412902331369664603730449803646063345826687966060028866561731203599437160197912310247967703514080664364646812258048468776081940010435511193027792857742600497307307468023577897335285457520239169576261883137845254082520628581361465279043807558879424387790094763147875734711828924261176858131015697108538410131900414257643227004689017790693495518963481526771356612473822198042449000818905313067349339089900140773195585882908329341470576420665755308394365566231186368900331132855866460615103059107296946503322904376105412832763878056086088508025548997606552805933921783203454390281895666239507821553706877793845433064459849023936509768927815276745391820117711812948632944617671600923533872670230751750359122624763982968496290961898658754991766766795945077722926247242752855387460620350395473953031487899182547577830197903840322497834425105132175304538251521546045673895511076410653248219169842403389848823449467169055006751671837012568455905444520868929289870998167168884443528253487387517900392351593223262925335414936311289176847133815543365386471724145201938421477954021254586017553318069641217826190329616287867550135798739645639795430737600611023404257067453957289872637783998386219429099002043219225533347999390154615098312182847439578817206760934883900032204855390797850703256900395492952589945458690208016538186420643328153607239002845704928913920218336955724778363041636533616369064874540031432930735398319087959454231124292345132776932663650840699296485978231153791569519233379877076431012589210828741720695370841976934237340237518458311467273158700130343347261595033740554520611424886798365110517544488408821865139115194904827447493062150514385692802142066880619542885137549072106604009623231120165533633553252027567391050675828253191144132600148777639999069264121560103060626544674263598839212858988628442932202385355377812090209548405660433985387792930976253420346279026662086650054507084157904405654052185715133557252040945083963311915287585292620323399716792964590419772288518698920082698181469077553747555881210750219276241394866876328108593398729758813876893488650185461197889205026461448582032435421733469909441476321725987794783822766857832264773280129469928123002199317562480501656005326447879443722271862206870117869639114771350254301249354514798628270145907387774973928920027710676874049055204284864005659573083127873267709309103871588706776609911854026690669481930383362378157982852679437500326840441807847382149301078333658143173647539799498281832691520466305544095796462343305503417001190424498024153726335859991411760841137982976043027364136259542529989932625845569529071750387490205320232361320925987653864116459701655610723383501202723569522705391363055888603962560299503280196492549645409571236504471571522569642562492319292100595920160296044282570551776527146250395849963104175837569188122663165123647021057695902395131981336929413462032931938339030310537697045054724156166704600343225957866568931747719915041596073959191938578670490178987139679669387162394692372953725579353932728293072031501451616042488580580831679466029848637025460018923071260030800467612661313231184214051845638116385255146061728284679733633823386108373846358394057448521594855320569290726792964834935169017565543253086329544819676658730138501186922494758325847649211070615871150139675898435764982635703670476198896249203642490988050946995952699235878694719497649680664622009227539253829784338722620081829031598026441460027061217026951583136844423674241486827971311504606276836262338751345445669990922662271812900172845500272425466303501721252926328224835965459569689614222084601036628331426476453373904613868832023606797979907001311915695964385695302944511615184382435349612832750877375601941719743687521506140637238744386902095429587705312055736751043187453181755513024821473932467698556830118986898605806278266205597733539727830502184677289000220297654068521899463986032076996007182142927308980986960576774225011006256105988155539281586381189679032756361341486111282122469815266242551570309923038170251024134000335925549043047802283538226076446092304612638437926468146262732429430175605524430233219529321359295749066336970531321111410383215917428583123286625885851829965705285388282035029268643155208159065826924635975557632132440849376975609692687412303124733418839961366610378081561511715036234882303554969990249689909021320961362851433644936358414037109239409810207641173932306052286225932651315346190375780812996216482627112569697779616369594212841500844031918721845836285585621721460666222503125147190245880250594681359842075422699937014636258310891970171555133443249814839147929110836684472169788332239563858913323839265988449945015317134428781409947345713769474779331658089333420053083312413741299677128536743712043677769345348725053644697383017168902524588095758173595247675768478924310926674105180490762631207715981285922061569290256333009864782080946869021061055992324492604876412896021827198675472918777885115440936690895360530394256027347786865020742262746684566161331639424831893721738816295185983630197965594296932871739879300881747677852235650640963002521256445533165151345117129586920863577642144685509003669720129812956948456305742820767476120487582390550315442280359810417471160531596552896017910862557306657168164067097248876581443465040045807589701697887683725277242841365168418729118439300981354970033866841585780393544943167982576070902307710116678510981668772437647100003012099720630684677976625776439757178171365822096144449906625211027848569563222170769385706336757228639668710019907250944954347336361242350260884178122113113656759258453728171982020874559031027646279723500793698427469231094561549394370663798603636283159617660395475205970464444639720588444861875273224550888589062309134668170050659710830460135356024294457342050490702478370788586144854911109314407242854411702080899283286775477128761672766724057771110826439163436354372504611190554222099629843701394942400103447100621635505432658300724573282884195733747180421162779566068824132893898503175600184534352651200786602779186195278468916774096023437429748982066285897386956175681443444939334294671245272896317414180233523821275369953998513954291034301560997748147012551195123587927893575538174334837812197792545403488102948586933964111478622491104653127321029788192117862580140577705831545492695257208714246514049483733971231771885694090859026609969174652700311790360790814647186112448991650455745849854040405454570025113042582613349240926563762792209747736192191925898812182452824587361637549697752318280208242623115739173690748061662401682031824066422549115695658829876066701057018729945595661348733353991056683010341019751949118223907430352996176870272040856928055505036464044502016459586497167524006879665793570312914131839513940227711094401948978596625790988390063916824222108803305805807929516820686016269287568994980476828788881658811284285953629984219192298199615901621172388908780639520145041065686895824400424394100898558021271765417865716771026756263968360849152533906205581707904395980504921456745801495187432785290639142217460992793249150934803187653610806950743220563873761585921922213541016797144260566923029097945442268759439505173561243099688950441616751935741479052487003430683094278395822889589967198036011660702616224936629736286743323668351911666688143471234110718516744111850110676491505804647129915511534110542097429467326899545487341338079333282288493265674544722568375411954293439700534947015686775297089155612662579042782049122167945473524452577268026218335302782359021551931261973280192171208986409579753501141637351869865846327558471798177874962156958647862738816377476224605811338479012649933637054072310824185980600299841145884055287228037101282529351672164740279447927738289210179289490724014609847250956297701139013741063196356997115112671447848037169298462772364585773653248453510804891643158618546929125744097909354346453372705478678167205720572846975544408318545366329075051436138100026771476821422926013031759389279291087134821169480274232507253528764985743512580669231913369777068108273788955097661396645662848391381453200872755544179947853789696694377165996161531341348883269470390126511760363932232994510713091608811232777683008502120938876001163352193492559772968294767280784658321257515216719207303916550904548859152934174803121715896165272770778252121293025234477045799790405278774783296241688908835228488620034981948801137935665502283097553008936281235208337002520947338815190931436677708109990452299191540555020285516993004015759576731150096315274573628128402657331944965406912925421127098675935381098015028047019458033680038376287198527722418184019405619240296467811631845871907842492146628035889412197930409926496989733224968833239521399310998216384349909968626150127156960159024670495216593691535079945534111205922706837993658327124407413928624541080290607434105573964605286692474228654665242465123366951989103899791694823755048153581091894201101024644474135213259974290674164487311813353968564155508314548931433569071719820963598263181807818051019996868340360201729658129951259389375027107131809944207438006119586376436102899221774767377359556677582076886100817971021389944796469019019722415876233154059266199071633314824305853246101690700566693184770720063780726537687180373396179323914999233026909979200147342631108605986893151563826632396684449146396166286212333998100669781783271133304437468621299576389749816525419014892589875828170297447782923213492489037507740725524578713684710643930821327198371790950777392797703114774995772159657682690788996251083873134013227605705224905289603129323585111554044912716703624981701480651305360705816096418426968919248932950680492525697512319385437669798152067971177217570272224672416872377594235745505745325637046880446790662416070860204513286116360494033884270438309602908490179319532512800504355341930791477358530519022713823924417988349797565634529469149382216293749216192948319300953283398814406576357530174902723692700446022164328423247945990170480498971271781883368677598274647727206343715087383200655033188048178393190161027087368456247930573486592507224175573384807412258774703052316453801466447567006449353443173235914814351788692550588360078645847442726142395785590319973734202455086682542296124251807802318080595436585048168700009608725092029712163738525894186155832708167140176659726725260026911157078024204936891791073626337873647574043005703633641735927918062102418881650023956642263756025238417441854374604577153246653757909528495250383738761090714625540237044757757632415006097644063976312892967737786315400990155499762982799144614892088931172616841379713007644567193581284587219310205041607450313709559401657773808776993542364026562559336369509589583512077834246827269724488035118044251789256843132681785275330422639364531595094220555132770631681370645682482898344186002277272260132811291483650968960377958372836368330668150715246563288609282912729442689281776192987133121220979918764868306811733485230491660909656276281699807607957378661405120336484685432354223735807716970851733602392876821056347657920271916129597141600498799247902369080937539875270308064177154220451402424752281968485875428931891670002516294002116164615038982193552329260303690732963768826404237662307088214795997822774855325815462326074420340554458296742073678763688761690623717508058164821458674003323151114754514752307070664111410948121623110376207126487072262704408893912398880629843979141891010867890580615440085879201350746718154159513727401479495254085759807318918285629198171487468194736046152621605086425901874120769537108635272292096226097028271922936004136960858612941972783669700148645236466120415747288024424014543370277484802291713468817531123848201536066790272954536513856288558302106479027251491436084636373822446388994540573958945169606497662334631701780872084043556465419155554882489616825773300552433604311695616827295116321970454311787782411005451608451318130838303781747484168112226092679575550405523387141287404690873544801202898822289129498563969326264186727260796120277730108883085590425113443961176891765139338409086331293643482387739664283645017203991485803816852638870793712408840448555464393114556684266390946160453166960051564681586199598697114247446179751098796425345418337165386328168090695550521570842087309473000628916670632688333579157417206051157786221226350490121261599602786349586787515573347904535316102614619667525506436536719985903706988699648489029796545116808247217897987415534109291325373797071970043709398755454826508542822505812732074791630686228791528994246037507420284226737370777046568378531507008969276962543484246179871031603678541247215218174936110451828662589410898302623026455973749809188555251943555155243703686019021084503163701296624500647220190719229067321754477039320963122439577112781624796072912599932164660701986296860223866836200663159647142338679500385237797460243084524872418166154768486175996474729858619659514310437906354781194200532766227883786075261942204499542867173668578767918906720057511872228660715920418316020185954237901939296787397787394066522713553711576919746897090106564663711608175697719648345887828702022581551123810244297879370562597731810774212448364049512985912712250787615813344089282806699734466324080139372409632118252400739634975119076845223700133472931451951213433844842313074135608652117998882810031857456844148271608673480996831824046818655494965517338328333141181928369165505389119498183129972584561511183551852314017593086484231867655109921317544311246061522939229909582953432564932344290628969208890973869075091015510475887631673816445361311112756717032536983046500672807219459378065340344618319447058823524674141656972680541298091475259630576269505025799258059993383849975081073787180580632076320520736458380062594888417994961134054728676879326191519275256610266369362372300218958053333264170916233844712675119970726108441157459821527331987321512490778245784494845287763966059757479009818066672176105099307022942333591219237006590089430276790562629852375958732890695162330700296469473049474823083713087834397546595820683628864747398658049522938402640743654761379601198602576528605700072821031440019765000203905839309537998210492026589692309708871499829894339097439154594822973201880663969989700906781139184565672648161680868938535475842172895509565542527734273618234241985897767745585775437878533396911029977123107297873471846359826579089382540947911021383656100803528756589141290770185062712403605831581785331889449219257763095869875496293552632749750653352185296614611300362651866479111535251807785733012203350988671292557846055696943808643662137694237568273900628738351874520372251098948656341931849438927980837852285472746541757699856112889507421421568051007942045617999682745334655508343671958014896664069135467281505459274445676659033416761973269377358501481091530153203211087661857409423053241253739218096623529704185487416801643180955648502107263930477942386662149672069637774142476103091562462829677000926143729122042716917207340598642048401386453422972447173304189260389947812747294557721870162364564999925474882845389711785538674267918928952744980142604170192587028930204827857292595903449811686467847271225204064364283271553553340443924436901770105819109778171553075573631096714613853532416438950691849291427259508921386188009321269990484035080052315835517724456223285121463469315411950914445680604099503425249603260488940828829217190036937222599738486088366453418996748163650797887896311187346748851275082283125276721121236807759595637341466845092141102821551865654789888362118714663290127500489676137455871993374530495919114394506280401883765351829551711147552040543883490974591428586851696218809253161684762018708006971157883833267379807894094949604344416728075801531909763826122171627374543334852605965443057477516460265014686984677084295163791530232365034012031437439245792934861098881395797817255216359210077041404468165901201507382431299823106971606080609775102003058154529787768504906138015281633239367301756671040402869740868865137107066519063399087255455000733996452239780055552963432058154953995251286855654314844059962762215680903598154681459431356929360801510043021763544536641815246875289876986974750500282250805414634650436976302302320370124911229808941166554776782988091856165491250224394939210156663343214725194804590093658515734736495040611932960476985403531673256391768984754120156932015981465638436894046327300459798784278767143199044875525794434814055937392193607879733018135614229325174008114530774547454186180519672217378949177946224708222538591228265034523584429797194551871181731510365224021402338268835194449369813090947032108822150017317586055729102852418785110168728334101518644871918861443080229854362082656741864378754069052996083278675742260011806126329221050327202598325741348937006671880412689004596894712759004058715622823263218997369279252418855911231276250794096668266536008672509308333222620577186455706129376740098878978294319531636575173364650211718341841012363157945198602662381559906679559455097965857475958174375537967871754264624921108490191013903147487267301160537217403490845213867386433890587107994158375024026763556896350484360629023824510815499220318401897645157433304833421659490820280801955530127612441532849933800465797345092258240314769807760997970471488509979833910105147941739674191839922701861862210131053421906081880080301391294867166269823710814098389876474894296987028050624189676317941105261972949920408623743680148304281334459162914591665758957309303745239803470849202186764622483857408059925688580541269213471934479608055183706165896748221120509470196816738762789311735104751221772920948272683539845462412243523933394427518683746071144458282054841667055674628870678580370197408486267405009848160867885319309576434647941884731186019793151014047489524244087897813094000961089926573272337251208586257946967535853428242687411900489205906378497686336669557793311590868975089176990193738214747374412920505083423962916664756274236876892379771001822264487656608482733762998271922192973867185848111659767934392273400998360847675469038432078468819555281370196802538156313700440763336031812377518299321041049642541159847666604241665609927359456933380073611226987872554486220345354232470540876832221251088995483067224490773206751384431208334893672342075457258949322657940986696882123583483248814144315599281389389915880692114636435834168370315855906962217487702563328012878567699830055821321663413957185187052970683242497940364705607023444144491608225958988786389277393698858675532942297640768092116184028679499941080491344418880497366581968628019218692570041085571127061157026160024737480352912003147517610538894747180107142824857272155608584562175643594528528689799996314898329055675985554370709857999113092667782917001532697935844270656080468857334058671300148232967194485858597481526533174126769595516720824341859212961652174830911621747068826342554699231087326612794909893481798716383569144158169716095882744736613555185160566934959099762820446447236547353570974046328877245358740140150194021859426082483243998825616731286355923909233374673747630265202482235538625129749807593437006824737173910038324194667805594151355210742622248729760336672467452074405018303873318833797978158853321700046902064445600058047048541794547656307464216611044973340456484607121840275921424110570753706103770534332658653856791085941736725495810624746524812190047309034334378424808258065484026988822882838404409297716091968877322424993734923196446468766104699456614596539351859967283555450338411299823400523431507789466631648058193510521938839623886507938552157917248755147187094957501416666224812950218684843535325314658805875770448533417756395172380012072914927970438306797215701474198897755021500697725349302397036515546283626308548620984940583076591650894100573145986227352608958616127472332411234029087199763070191640708850108602073476265220552580099205974009140761488114315515755580549737103812351023534784387111061305128147840379915102025487210002257695752072820929239664179512260847578312415453816588496876683492177960573956834151109432451810651384456616952669180061405908790126504422342477114104087253543534249125230859339973149125667216935101516552200173718400518422306862562239973943944426254724997382505645185759792506637095703191436316075509448413455675166070832623898610383031407354981076417048369914018572361145205546581414183948389358773049966893378809866867142188363752637253416194072971493708270795332302062790561914816974903503119225036671979799670869448192530174915348798560356518922905448427917616328985746088768556984621470162732515501421333129814119731185505231905948432788873513516485897179532212869930604473778556624007275842221306035465517746139104801327906000697011425589938746838297711725046946270193999011769520016868626105648214634673229469443677161899518460623361537503296202296353267698181426069791867707718524805600368644480988673638192383157825037123342698127930050929968504028712291505234085935212320341314886556139147270801497794709151838191473723364842658046150541304260882941896409992514380607458543629458692415592360091342018586118390275311626162229886319008498503399081749638447509452101781307325862803180227030004325928610180079479680097169531222370020564846375685814369595983394056505463775748480817428216129215847595751305191392363557422892696862334946694106511034864474228060858226986420572385906728126114928283531044423012355482306515701432397964897222824504093061466587074041793753049975315081535837213970280203032736548219996387784637667264615285648374092102408364960449167565438681078946344125066981719489095113056546531345610568369748586716752561255194907232741893829372248711309296479035039833232426115465174757425670616374774108687151094202978904634429118743168356966905644867775399514444521852741149538734819874005625047932049997872255088879586741346707670214639425157243995626680995303922636200142586049794861479142250310777201209977819360862784667080103856218472149480156502353556991796511824349282817571452566289128848908562936297480926533853874232989411184960886199118883363924300761279155096231883229357421875971742723134004425975259513080766829501787350747569185804445384017412467234582237750468141429566554484461481494255326307467593752935277317588930385720871799489666362554831185394868828304671605811497858455829329453062951776141265100708056006266062605081575009041118709684691961731075602358066992169658273143199204004664407579424115919904602577657547690604031547633200560341617826807227924778367739582426732906439504859694048745561365577886678968613199576294549871332742403814035534607849475026955924780991238895838040489529463496500326917745148321065801864485135750271301179715607298762842284604126136962397927679268924450046459145251488843631687261932083110636913409808943439630785985365102236071300173566718308268750997919099243442924996010528878494520010144067289593496742516721844712353469702899398642038652282190220650320781139793052885410391323299598274425705432402422829901064962630626610955120898826372497161352225956533159453884981991896406237420360224834292116519249267714928850447492097048299871792505253194345830532991549124023379460178613718944948071407365589103425697255478108204606970610698118200168616716723430350501678171417590107107156051040476139675328056977085105280074989095208361031928132592981100490742324384526556346592787146514718269165570660555953006039690724878079904039992982021350246342892938801579846618048762374206052897195160070375433244391104784337194038241731632461453132685375841038284166190438727468190369140285712716294874707859766980512797597921333270649967647878931401487858377023498167964076608992967992231629131201533250579553326343764142914840285647348632520943023469785916388662298730499434551302283252282948425723838828809517192613903055548827437080851163555712039419109026480732477888936561397828638863094678404863347314181698458949633527343073382550332748650691258246038684088999149916841466434481149380209134625891266769107570395120753938129796306854284744036857387310057197603278872323009099113328366304101958010062706008114070270735112358718621394095883288662706797608692362400450805949424657866007179659498415680137091611665895072052179662667357652886471115560560359532805068356111474431283213095093157904558607619265013508742149862907667801602443076187181844234478765490499068591800911173100407155222339183669246366012363097600471238387063238433754661957143138121230602428008345521004761260129875427469227756499854228591020129370022513980218040934652911931143446986102972589066104289425888134130607112068290094139867525767459937866917157317044068948071286571787240401707161172508097779748352919475969630186604087577957931312314483925736655497832353389588678933660313720631168028190035100831444724193578039937907346549161642059483229635076494382795835026773885628871313570217027482951811164552998494695052991116086914058685351531881518288436136862110980006817317956273102457618271527508701800381742783092081074356364485150081813738215165201353844402615823611398144054755330516223423540610106037127353528410498936316627187116493776854521368415934577552095672395109870415868374183014847734572064957133964049089105511404838755017918221519025968603877404679828440433464845723444631591062848756255489170137057384573605847409179585818734952413055795534762203401022992851434838906534909897316794836619780445272632453726432339167558224427308258530038249031257437429568113980822214584414493498073409953791515542062535199280945835075724887825691631925721135419787674361865031959889395765177087567188773572491742267062222154183326692132617187253428002335620356167006581984905170234648014829267682501211249038898458465712875391008066678478684938132834869972506797160716729526773271897392914892135672994585523208135205804222430421529245042752223706855859192131661186034688604443836777171395116261361245412043359005926268681148400848508648155508303165201313206033544348055067506760741260861121217089352118590190325194554666876995193891413806868920256077341453269830392815120447287841605476912492228811041815595472622955740804052965975063220510178938680299218544830485425339809339411692130148854623006980939598509866263987894246745917874715084554721011439585638653846498661172304171415933512297357643031279021022543348268254289851791504176514813885514718678689191239811670730919037874827606460526059527626048698625881820125128005622000915368923814143882214140385507590190180869672285755628544632294940894678248905689317563409954124357708683856473302096025606601511748175947111782233281665818486405683846209700558900452946130361144314616372824035392500312167024831279837304236461023638641030807022506027184496117267867980803174153160593249181139672221748770780991381965694555050315479424329725963470183499709906244272908178661467436958685904002534109559886094633050903628457491023721391598316894527729147782153589218834051135383160282267826650831157168888934975226436340042240707557098487209873891049317441932225805284839421294337580023148215860820030239432440245092799416518951883379193562534483954604602261925926763098481426616160180621124435243429156318107220865905206175327786095838306832308650832882461805955872125208954541682424975399024473856798296932617418648538495114292127252571462766518561944631973773902260793089589077617818619969571255865518153427194558071234402997824269829488656252296523379177881656083017289242284647666755813546454892220871467950995920167876807031196401231666967351489436517697298416161008985846312932526507633424843403575031766103825589051422207257512356509287752877175793372616197147633681392367220807146798846827675331847758725967662672117375401471584098776281567981272625651934364340821329646170759194851283788567059880460425198357353439013904042845201992358587461031939423730490109889756208444194543808161760911912675452041703855047120653424715429390644331436489682538292828533691533947164488717382304225052117559964678645700589025104282467646194985144618548681153621832270543099691540846215756944263631521386722748087069203015200475872939116575790033240288316740821297617518515565685731006782006749618192897042933182634187359836106604416691610346766973257205395309288388359873992902416641215938102967498009526965484704192023547237667676946523873167327122265866476677231569347511318697088381456950424770838669311041454834844058722499719784200135987763571515788590263565543772349214154572920786672226902715592567190252905963740301938177252863013309712110021899068765592996926088102714373098967267673408426254289579310060435803554878985599917998873497397873436531864504910125555432687883375292259538729031781715331025758492688224447791665351870508426056370074808746177639857195936869021238579337158259098777294177218069292754036032293873045084680884349134205936176872022490304037654123781606127401334335875902229725088925875849194390919642837606312726952755786443165297428743080023857444792641916804627227961299980536447468711423471838706701104969699585912405246799867736343662179458928146602888340631218513543443096016890143131670763766169753201384369070929583651788714881151953878322749556060103738699321205254477632565709865613368954815822969515194676472861469478181366538268852262760917746739032663199085516614573373258107104442162654573930025078814438030793945534233599540289824805133758162914816242098081958312177892570799416327090514811444101732627942938208367272720724064299464084944941749541757517362086386319413907807823747445946750343306889373558219626494737943518921483364053911697820209164948525249587989440313702419919599703347066663774290399894524138293029210511810999954365293445334022776736206333593692487376551933008256432177514962349714981101861673646595796371009119362158430762139681083786842452768813262800633374772503212011304225243094301757233942592871031633841998798751200213816447012111928318849165744080616715412233607777382148185919135765393742960609412817468443984596571057032524473973963355708790833271843545675060908591135916034602750569840443671199127736515171656518556898019847875488258062381973669731112649749004049484655539466076875515933704277156654766589716296729945132615671111508545932076163746812731743974080388796551691947999927544294741574777471681404463276382443329680993858404472992099846408465847532225029841587914578163579611564762018397381658057527296215986735762957854467068372122294963762765385460522722901325981741293401501151172864739360445213306121208979160701043109742512392442449711215537562238255294679916502904377899208826491108753432979536282533804325178086241711208025928045463576357781997711293709076974371160907420842188152510725594576269135059602846737846569972124033979546278691940850895843755628154839835493320640432230517130171033269541286601521704845311478914230472762310369782539649467522949817245617481032135581121089168732764286331159967968478831252073879586452697591303036929649738189842600043460661403774632683065318059107803524717090481308913199096040275851773991312862867521759280205803975115836494471289335470452158737468928203660190249304609949620039509206239550571974359131443093189564116668308590492418478412556465485971983818983376541060837773088533751790529305203587280313913218078450497573039195341473966278516944529469512326464496243684945128661194846046819516574327119493413935387763301087959719756818326269000024917240941541410116010267674844562755482705443529316525082501761898801811645123469743451218720079020614483564612985155535349596346281435293058506277418201710297132900062564375083524161383951013659239249452237725909577959700222857004667447818556673948624292270111343979297648382539618647322134356916044391985711825394731129980721277395857535451552249535265232366214921291682094356491722556522582473927550116212287158313495158708932199863382798241223977934254141813295747512529209083034905788343255170320434329064051044295759904279593825414572485646693848521247220138726250370145482629836292659240100474142279853202918876491060017121799744176623674428319442663848376880441829842580409974804983367557691918054310753241940897510514725236901323700781200509898260795390804546249643474613028148883701783382785977080115327686267842167750879555705483033570875396980969500874679233657589042318860277807778497549332592644039651834889099284792435496996187034208440536776082046434098735236523854015905066904732421161751400966633833924051208359793613031884401123084215235771655869422598587106886751795877369025021840920305549945401219576954205725218210573162996504678278026548159109283084141107501776428668494197104296820946513675741156098929904249214445047074415851835374426376614061638078091470303909692288737581940241751673342738526758915287543657315170327228032589788060122724511632963395107888173459893756202286522678891110519943453412613982268413377935213084580056796517964606848532920968538753926154623451355607491887162097498187506043668711756982441228301243911318468772105341527878473483878866881739544722231350242137708743736976835487284608616228409827914895916277631204644328909896773845354888077430500695697263473639491984206691171507260164116609489743087026937773240041453428174782705677894493972867519023076226551676612862832772898663092304574588261573456621530833872504095961233679490756565008525067575419287824924236101484327862661070772778874176912673501431400257978922781969111559688013198701915215880584294036017553666201382808712077483163816480181421793266146191056157066299085369090726261840546945645934118782345253390670354296730074044452552897072723414229970710836450039978422314557797240511717930875482338428614870350081014294843186979280189153955938946845289057739375128552699305255257676258155698317108438524762281179613363928668445673037275700610261106115178443356149410316410223155988090485230750949881708515810372394813194062455384155481789853292355168065024553614597646227327845486748003766252607247845039397428077556129654387301811118514623909602910119745165723991495285658410852201835384863960044408693294797580760083018490816703158659185371946336698899482387713407814021130347962798179286349205185725552323217712223516314319803704752689227892870375182647603133124078870923540522438837186182322507261651198767498765710660118398545146036417498856021782119662526569964312315759834613276865079448643702816055818452744755018490309355760561275712671636750942634951461674907682622082507897162661420636149035403957903656110057751939543696900098162749553261567044890697941830451094739239999007539291595788779590919063328451318167974655238479303001728159567635332828356179304254240417069298696036778512736451752116510000749506372557801470838486352150122035507228167836888513658709899016171850616011490196932160669076095437404764836398815593230349219866187525444242270190906999913015424425633887256378829004478103583622671590388774193400413194582511193326468779528706827245904994902137722238030079179117190696497110014829357735900699646360978608172494231596638981348092173793805598064661332309218104058622417008872249829123356574160373994723491746231110573866891589572680419345272502768956022356755601998687414581546420304239918260009588031316959247388949815835169443437094249647732978576839501051927252344214668683072046892295404305389182500103021719788417324315871478650419335997917229852614011690140570662890543378422722707373878638597958053822727048922152213071243892608613972693818068400753768687067024802880963654461192466084250029499769440066916312765646266098534192744474575776639612733980001960034306402249219829930149898423134618959395634901123177098204415121658804057678119681293377505722393856249760022749329679090633054476510774935357960254249449825325437205090392660595040276979471480569505016357159229288174135869684064499528906019569394791558590767296012144298703610125511319142386557643065470319353440125284697533870951529609139648905428461398164564182085946096953631597253744976658904889046778607425348462432451773715758293477881627158701413973155212847561999952320065419821410394272369301482614205886857249185280501073696383786114382013407867682513267192663856521930286117962894721808603552307636516645141458321922467746637053424107511079181097029976721702096600924294535325122071833336609267681174664447776980477745987565839936672807093103621675434177345315972934831296177899630390354562537465118661402777749077563848751590962689598157734185966764392131987041411965223691216479796194316022541198741154543233729316524921310332977717014124650833919519823795163773587520071778287037012737125540107600875879596391017840950175759282367567931263145488816681141467277191831513541119134246715865237686367356841486700264912617129850070516154955360536576031701241391387230133496618398257623137124763394220531130169562493982625249347509156031529202649320570273239257555263478204987685944935984113497349956359064415575627332973486321109935962479676426212191467561711996015556582856034106289637821836902467346113603187697166762068921810205955477740854281620425741645684957176168364616176504444158018143133244600669449982360003166173929795163571374810369059939765024660121788275255465476145922432008369585711496296925016207596387855983908143552631268893214899791453785179553671138869087512647353742944355815476279631503919789005574920897265182579198973465947145539017837587071881111748316770577894608534828362196647144385677578513103827481851784420535171264704970143968253833809273369438027191673543038008086563187052102635821718719860761829609724302637993122237263591536146166847694419004008311378766729115165449185949428762572750812148191699436903459151100623263169519787962322331664994528453194305055934791644548453660013574050721253451903058548771704741892457570928203446224739369322090378643387592351424609783787501675475018860800811722032585706763681259362865326651112978924955531903438520804244317045772637099204124800942823959421456983953506110097424553122999039613860575092458912823141782270361461469422748772809023139459066454748049216223151373372261794158417345988872532226067297856371791616378000833097063264231059481945369137443902541565455962023372423957617160735382715663744288940099934908068630881549006799154728580038317324421567684108025040904361031645395734624247186171900809846882581096642103720446682326350375493761992887271610138115361240375840525739565301944376993967465040350514950716562570977252021886162236380738498651851153113314659003322818004670143171316055918226734535361360133315394170281316990662312355267909686621687538317106205160341561848078454155566661503667954623696251982147117205074317544650771955557738730523620619552837419313629049016459884129747541524015254066780732233571136991300933116719993154720720075177872585349902477385238793678129237674251736635985573119336037979890304945915643459814342963628113953650017291582239825123481584512342253906562563764199379285287443456307179850368512403731390174596532343590666588642613260873750043729631091330966301164210771986604157903040328968083301720238549250921849142844320733561649744716997884558935156675914478300261423455466468610304177836462013864081323979112982194368658087896328029416779191708494776922075586195871892083949915023016675557212863021893581142151664532396933421087907625628001011257063127779394811131350960690517838420391735383082732491843682551974819106800065725258232768883870769109624574756992211543393419261882865385105620955171031838180961488988001433818321851576048543774733545942025059559137078211517198522970791513912617945415105403801234810023541833424618471924388924284511130571210087270100877865668536013357926912506273930355118427161648874555181237700831383455343643023627425396473496759496644973552290045713116018193092724778658233306297908288410524068659041847794874451732018414010574961986985937063977672377991129722659467289720958758233849595515109187592988719948677877795655022086703092322985766194914703010711962132806131310719620470874314208782082425249288464504511190691221849030927291290623024990121743303224517913556691249770003221692742048974378564028898981378221046251101659926125886358875065746688876017498621179834427285717065054500134580224583766545536361916037099890594521890144292584712430756044752315060299582323960682135537875111573131510613702018963940385345597511939432756492088438699174353874559911266735583110944520017622919699328933384852308068013560438642661846602830444478747891613203674440775362560174270591637026164691726255793318059422140509605974912799535076486031095126940988322265854393125394389828667874850323186960462901901194436939011354476403889768139019512078033704987681872421065724916743408143795924663769180439128023342278459682962869709889136905474468914833261505131150054036333696922945855767754660488995520767329353228219643101198790253743701318993832491372730882176296420517708432438044982687773215254734974205648675775675565264704167762722559726716198545524493290165091360438591552972727362288904579318531766966593920439133887026024638492819958494701417808030667603875611980841036946488719753028287388752856638889186939246935926471986845738961640013639457725643685923280112297387750073467572180823283893629162444724379388977693287620595672978640070429614103868051117048741322574545769418844162912880932506463252317739523164852108293850980670514981415653141117310949082050301638223749682625594871177925509523428042627406020801507838054865219843046627653624386223579829982696002843264357594279333492644802964077808712663116292693585430294752447628755825662583541384940141644306754229995472333084643660713559292765388418446751558827527134026358250824252489205437506132757048537384105596168240413940097231089768342877784560534604049651309930935536684436132980670956723138328133154442372248306731813809719732660768327379694684369363531372089906753603569037017178354158756500414639777705066005646030301809778788943428449074771645202423929743274875634758891239184665438632300754423047436483659187383271350224219164078610672263903424883846798164675306116881416790978589420018485463867099580162107728099593152189361657342117267449463784677714500604959117775618411027627809587690390533585147179742891128580464528478783031248031057127231960759998069697540205252213936125518425881192312559013594635300853288242701357248042763100569292576800051187587151345817769944517403335977653534224581425873348136650378183049369391190274743344816746381726886554986535433467939866416899985238151262157885422134274622088130236356307045084975074962176945701858422200860500973631828217627904476655223877736345876825532147061526411653567645866634964695089455924925004884243059851155167866802798656888703246380137423571118703739984151471418095614206384217386022353370026967307475870732676408156481298396813450644295831087821188717936561428967986671997247800513418356715142361734897272310682068789275611890810957896079326601932149573765796518942889261400987360150059990352828709480869688597571394829003074257523336869647338720707720539996250608311464653753095395040537146714635819218069847951625200906856638594061075854160564818020314861517343167861008704417125420571684017726377992931888351231741564999866192039749358438686382971691798412357027031804914388417502745159222646499129960982250520749223228080810109769707748868755897274960239094166298926449534250578042381854212638766518458482044410859606902165722488297688749411144111779268381858689195802927115099635734792429732540460347114795979462582004844252202426738914773096007904923294454979761908067920467484869561230946533252004910440135794066077190588413604298593800892968996096366490541241464617050549877334608680024712244889118764574126170065334501905199879772585994011604611444423669844866371026027974197002340509076374554523339982351974975673004739184787956509857262454572617143744604626690260919585957580589034180376962226315496361621669094164026583352378568505970788833956198305191958038604457185400309730858052000840381370915572968220903625160088210152958663107707747773967951350011883265370440592064754531911145771104179519445220654175309841914479039527207284212916237498022591047531729039929012122212469721128771636350833611526270768783815994787827782093507812629638724164939048742178235231745473743309769056640996058678013446985527865358085314399467750990700955600455944027904241481382318041882408910859209554375329563277191568727404045829267513223962868894586085366583200419010715454231778380843125588044497924657762448663351368964425877228680751385026629154395553488448421228308995704959739006188926869608930080590748150547731501277554543258969935397455346578162608729596919516252147397395866670113397353412456062242508686885714604730217971206018878928023016184702928100375841526399138478220130153061780635690206421333374103371659661223961590516282310968275891593941037873507901189721552593975915748841608746819702205548385600225721479388682345518637772379048465347423796878181883299007170291231712056489696966704785441685478247764262372202224078206783287085537867361764954219552395806201071232851192802259784907694253741781118007938510010758887705566154740836590266232310809067673163243985625888792757521637095194090881638752324577831600740253521650130470563795222115013879074915637458503720162079401207171570881007417324434867108789650337652638023937863679354545446057851589514805699815726293195703650503621796463190201225381515520974554078248859577096926473124216077644575864957443162496871954649115304190378058971150975247002100799827995735276774523301103371944993290758076393950200412997144042652286979720362523319561951240512890553804361554818358986730077673874248152425390993353832682166515206569620970574501583603679094726970638371308852266684754238627238062323385085959930594054024152162934851665520774173501031306866883178125225011209448006290238286128716183882397053479623197576848119077773979504553978779573356861301520042968511804430158023733641480691296644169178802088266824265532510678694229453458928278531812446816175419013667492090173097976367623993827544105599018020234233935321418798719839383963149040939806752596756227765779458112266829014163008113321566096096918589219227179578566980905991363555763244566985658758852101897699241922814611109787435150946556929505001387120620921741712055795328756821401889148461355783380912002231237658547431548861035503038021531237250728854142686367135440732440069994597648776168454942304830977630955786602935084329941283215417431715950065187862384590854598273652661125895085130058569436397956545431844814883909314528170764151537578543530823961295618136273826865887769786952785804966401414260887860619473806855105709195138257233532856689799226350365212589126789424114443174470571402015417144148175043048248339904813455109316808804385622528394520844230356839796255916158718567135216438927656015589879870642661370836238200950068565192830413085910267304937965613537682217910935823576080694722820837601798635845529789245451147346481307714376282605249836523154871186948751459095101377946985705436247968124001877281691234705100722652029395267652875666535504799773810635473182633890585065302971205845296076653460166280704980269540726476167446839334901939321788126162207303807385600942944954809532306552314294307835476216522318473103275053654568195983720965322739936037485736118367138501898160828390954709041372815562790604260754663257662821612372743991835530795252594765986954437335448341449219462999388533037055237980098598927280494730318610194117596646948952088457650105096487402064945432672810910906292481113464121318810457219875914845593026194329631864023177623834517341164705241482552492024612819371666087449832445192940584496558401805293687266025357002271891136696743388001362427148391196330091865352353163659154241770973600095447096906754239280260797709773208635474356196561800339273413618261734921985719596143371576239639555120028443824113254290825655681780111132078767617447550662876472101836053118948985119009818783083247917044449840353527287752857404892030239750811096553720096449591268971731926506650146201771025412116875527296098140413194406588487499760458541305891087531291683732013254302848323221325145498369440272905784843875140259902682847879890799095792462797447890260666315986763591858966203765370737788214344925325081237929262214357312796445410931354711602407602184613483518882492184959763038141286889867824910898183253243090138252280286387170923587061454117976190138631012307649126329616216928710144568183388826398109776426025937227204484350710923942126304243489935867611591661243114709684509092863941943530222133937382694087414357025389251617839078013565198002317995370993368907407501377224432024039553909347759362845036226709230454653150708618278919591356360572142440472598177383415100295344228593856396591453286606213719594364118472900730499689889611657277387810598952551761402087384035009125945780936532684035824310651329537433660666786783303646885163121494088529277176302712812845443739532595220315405985183892513051693472233199855986897647340947269730234606112573593967384636617739365673353283047610809067831024731901464914552425945307033919478392527190950249759137983469909558643404146554355694599053262861899350552860452804703723531401524061409750559465811563340155806654409233935818743981279835087525244163789949498469022686314544089695157872801457863883091463258106438148901000682888302660785135243726889887903105503748589165819902806258713781817281155439864463292399402224936319424660379085318582641114780676433396462032498834381711042735242526016521551878394891992723030491002739148473720835140958905983016116512327265933145884618060112667381418456658108781405425365532953865609706166208921218542723223318403946832052604448678111012290052212958261372488301648805633552746903483608544317478360798329293180485896357097136515839198449082877810932631021989087948188595597470833730043390988510925001293928397883289669863626950541427872234596029446666426206486608846417223639851152229818663980107586011633278562529470572110756672568104742812431824787568881861926692222565796433285199147103178452647508353134026213108466270587454207507577314276392677911579575912985637935557776162811391568235332063095402568435488011936146269588465958018817229393248107257658532440633124653415624397378215146904215981715688596862868644782812598784944294778269293109168583583567042901255515508712544728390241415462753132356318892839075889736129845871278775961396310355320887893387154115367179886384170342367680847458093696358513691970679093031669315449499766780242000963255000630899840765597893954281205745798240881894990067971137022955874162408029842457581365163903389368286249687407446578267682087765104547109342484433649020864731296459551901678517137756509199729625695663145824726585416994942220884790418851090880984225623610064263482554506909709280850209298261704614332377224605602421998667679072413117286989375292945236088863561248695501477906945144264813846751841217506071375742919830015524235029075458306757642289469642347941404183341451051453660617379793832069341632244016106983308853098360577811531287489874906212284328084884726347169737805714041036816878220369207301356107778177634639475874979125417633898724887224185196546553967922723279496754605608405032237197089520983544518307633750045942873346783810203583132462442341762217385876401290324355300906360087261147835788380142475578747476690679311896333794206096325389415081313650078942981995298555401573086931402859204533591174414091250352133348049503025696223945024860696750876447589540523174502162731209287438603699359434072834552259617192737564859634513863792855642706788410528527172021062477073519859222750621659370489848345862696994454581493181474008513065874891069672075985680512588649287652524693319366488247901162375874332059101184067253051488202767732422656947305987933241299252603789653310857850727530121200737127805185594840236485712085726943406527025641194864538322515462037104971743405190261958300932469216262438726502316247142645071038802063403299999076127165831589970795049806092489375801879354314120327032002716352039654087349749583588312897850653496748627393725164745014759563441224043638611115910871107883190613422074544247163239980496286172130210680222235936408265074082252113910077691488541938062595675193560562386792632040122952937575972443452647386360315107470632029313095619216213248234978102588677541399599586564068275054788507709282842796847240255450171906193992681523475011637676570645682202460060217289344946043116772954061849773165956452356989088238976659372082199345419774509155162078682302130337419230731348392200881915005819640133081450072504534982553374928682458499464450306060072152450409360244166243823539589133379224057246048956330607403175399461650262608407758390510535701022878437996892676300849435679732655102532197608992938206181905111027003194698902293261693872055502395967135136886840662933300573322985200752315980875397973291789996642438620159224111001321006097154272067912195044299165214317698971255283546383645482862217408830015016990104174704832333068524371354616857922856059441074596545068436572580341840740321359929374900424506484411762931718670845833869874364888835311584481985790873737345747394535159297040360930198609102752224564804625018172723409993948252451618537402795665355013213668080467034053378276910580124685387645428531237717037186625278110460041018401416358606959161188202616509848573202682826827407042120229067275281677534768547069874476350558497045680227828160823918295262513907211323037649046866333747228708308056813165775852900832628559555967862829777310325602395344109696692536787338539429555573698463682253705629801864432081664613440992364070689373129870817688101990744691713510505292645597750933664593842081474544116547944292632849960297275482836162038122357355416626150231955557307267138324860806365154375911505872940584644617903358845708737395399840380447297610131545866417930041598174782839377152388554626479219078516709161264329543539409332592476568186633906514186096955047706501617270322486801726167993557470993792893376947213646779806745750632868128854683285391963777470252109056895705953484133613835577697667421679388059501629530990378274664467778994121094217208996016873013418762867926461491240897249985081972626355707401233057173513843762689551032122580082555403507287575427084720550969780455491435757004741074032001421705074640565703279865167334594700795747893822193564417096071777944173414782604419291449357436638996058672989435164677127430168521474500655840403193545501079148385402990920453659492041231546812408518483715795889160602481476583011242253519361803639919182616925630145963949859218697113716352483702811220663495618978899553534477803471418559800088791621112239058370534049062032599472188447143691777304092752262739791833132120314173333061210859650864780147767595795862433914801070659339377603321870176526767953173499938818678773602254626590553992818776204655647239724899111174867574682225561445759492993293289923305127840306340361488105375662151136059082706116221327445863919751546187541823458881720033228157472262996742467228435351052472461547119847062025782520928579533476603593701132710964075511847830215177475120275959502831952662912641079408514290043884467932046157718493786341792734891992452149637261885126243285767712114390424598021157191439795717020382844744387386829019374022685289134725695908047796458105417066427616512172394560500357376880203156489639771655459053364485546583997473346897198313619461380282542480142740683012092371911218361524503739984991669101199254273349535668991648345687027499492486986635569189023082007451104562673246895447493017540729569091493786476890618772833707925236806352221723660833828132621181198576951129697632854524737405500334764349742708539148014371638275954339363108207178195985408200054560778879696097105123259291538779784674348084594459928122763738265381008863042293769439685562893217350747434108651869155408036508906951150631502346067720434618347170847100538877411962726428978632741155380423261541520800174566261960429911451997336313480874625610788272832362726807853472148241954698703819738817031404545115644473233920961198591925837260742022233354152165465422993748330639018156516921717503946237047893731520863645040311278225317733080781032925089625431421242063084428835653621983466655077383114304986720015248158317424124020203567498152228569062370242537092874321359311182032589710484738365218936481346462615801093838144014990455326891508162705631088455962714350679940666039446961083991799745945733567895513303885270333222008965058400396721869591363968779015765335806416151034858622798327616923492960543502611642396246651433317225563866869464141076481641409993724090540744456207566258247551319915560433853606237577645347494168966982799374545640958419889103865550039996263911408082078081859966372654422463530875031125299246132940204484431565845385579978174217200532207446397815780585750197380217197893824082296164120609358084121232641476537235241249025935548917095532633568874929099227460731714899785945676708131700135048881486416255504853308788265716454997100218959991639520009026902803580817374482938717086523483505724308672946248695095552406705536217572820325687317006829985918621064741589919195829346132134281440160202262958985185522125584866981103533231753733425098184716736207798638816563959187368857577896922321233389144694986456236212623164776002446846454128106848264111213648609200408174751386727476697114068786628700087652011866203538389066113952719401665242830241945365462799079823878752220454168936208238250365039055984124855290557245297958444803414219245450599440429066182577826565384434040059970149411602894673166419765239841184355881725228315836321599436131225070278955168276386421746815469406982813377940527368484117587330356232361865126513719023110351478189376723456505880420309754338289141925649976251319623595418403742749224960748808584217350758648880938148604701958549438127045829146801024651813229761518411365540101403046381181995496572276840758350901806315056084347502834689795678886488982946002461799009390630693323391639862949456777169765959648086766358658584565920400072919897142786298006275706258350944094149942022848804890133604997994224420950739464822578585753408308736464871389982188312541627200441420418740732136691893487144433279523208000342959667590159782929025131881815344990471861974116866551690883224176284909132781520499258355455992694489452679510878490017510717161812971291432139313136280499700160840478173503920417349826143692332979691747419492741150490321854403473261613108690757115144307594128792505073382240289435513133727781418149695689901060035001842588812222081520175140074961276307550189691002270577018818419443461155796665321231560951600028023053732922435812110635943034906221361224502133027135196742814601377761014578598475548680032803732931622766269770876106822443014093988940726848550698864195061340878655419642989657304549745320000149564457793167723674541002875241275178323917952181231530486059537012898329195307594798143749537887245548596262117479987577817395006129284457349065447166451281390260752704190605672609237362878261419381895564235583887760409721963913297856109415404238552150619500507469658017003753015845938462626670706723457473167441952086219916012474669553034191846448661229644950019328474215836600648240146854115253351102487462347103856898078986023268244292890556189415474370734054221538207876937052273469032737101930938708957814259217687517150909624119509798206706759809947722146390034165417159149461495397128056144082282649675813992653460192015074579845440455133628228951078664576739081636188726486343467072828292004340265055155049269007369198010146394229717067190058724833127871549517105028169428717819267618668701479177509863035101485040200063593044246571269735967224262115957359109036854317302761830527568463027534658649876202920446017809124147016086275203938712254137441265701716013722799568866904998753885172718279075886691257716667704074307509694829107392570635055902073672677115730607275644931382011655906388853924434172615836295176289613532276386637979445462047692375622135126047739873874726304251830082291690899186222910971214391643470700243214822093744147698723641907564269774000167707832628173170889502245397670513605251829779413617398615509458838457960786662858718687539851538008984332804959346165356169891230823723649143141566412306676010395866335850418142491377599628537155379271138386790651514521945613846533014553166627787046762398611721953299687728957820456868495820000130005933997240534513937566504681257792496078153888583306600578213554504440543975299927394595997407433313780982215414237561426155470222507762633628334708770086944875321205821348333100858496332135064433783146346776699376343722906443494213659281749862473450714753998522745423145838062814818909014151896651769441400094257534664651030434013380616164367023662462642616689489168832318746453347873878142852105599282234436041310994408329658065477929839780010687857768513897823087194256176755549617931906144761985213829741059787754796311315078044820172097795159774518535692890105449698228437099036338198931033483559980682135724436183513501888841945142674527894796724035793083561183502380586516016918929634215453624651312900902713050097977326597141339773106816573863213889583587970790479414781570663856166894877739163128023533065644259489189596258900700585503683796177171763690414996601513327467189627912735503650561643525965245647093385963030750574518781903637514646313363544837911610829745519008939430124009232069474931012939628969353633046217545043759501785146520023191675292454989621604079724752306760057275003016305813667452822952151974361511050962491410744655663728655494088863293543493922130714090026444800736359017247287037437344109448058849432171992109635170255667472323571252994676795878627414209611189274542236250867306864218973693728956256888099002458809266985214597948647163472704671608285148082705815499268523319821346843739946350311197167018221296367166720651936789098234850746065212752287828323738645119382488318401334446964653203864514016992534559559721488420991149087903541706469205361599976187317224437566353515529972506835352938122805187669125026321666808388765708619152263185120575655799107764858681650292492428345921159142728698062374090473866095566184778168622815500079841329029732827501641392060112461381712034801159177187127704088677347335887934272705084572097095220371548444888672205955188466588468362819093252167055462635835907921155797700926417555344643763896069822604161375055536699316210546188624436402630412921460522193846704818530938702543832500917672866871114425801908888646247811666555825043051858671835974279857508666961056281193728950481072763306967376702635965414684616344246946954707732193688594548767249558994500940239916027350146582706296275942313994393750262518016356452751678924304357361913472434541887462060228131598180952181933178300393929587590405749282765684669193152811079065378465333138842486806030670227474713864369219908645319499439619325570995371717609641393297899636567466736193912676817154185648168167661254514312138827925836270882802275257273425379840469083335549082876394534857317165810817855253442953540822359075389156521291347868740503532595389949374149564106300334791021421237023051208367442140805697421065500275876646706215987645377493741121722659246988313320313594437100712900709041131977536597313893621168283795328859571311755904968701899668829302065472760168302821174658661187651586063806976404572039300122026257326699000530387613394524872866937128525640837185707803221878836408017635870083777828508366465379265653883863211289186206022908821792522116183930437735615129231053008855165086571656773569496718541314949019016625013986416784183347874217641841961871561771776680686063652229014415876769524691079209558177986460120675922295322532222605791508879829834841592937429624845551467797042053045082354015822026184240415725199636138416705447974420404929794702529506368609614817390979704397592050634321439298796695530304697765976833635679761792935186055834234884406204272751229641252494949822128970423495023383956466396594678562802896802662666710671588321144830115751671502154037518682461822299202335327989982297610958131947013274540160496412516350418536850718372266215267921467907156190597780533402525409866670164016999225512510707343634272201655019463263709521289064982755887040149190661408142388660679637780512588923897953712972902310956121563344231941999761326469321273739398052699130269515429290430180774330977229233484965253918973169188700082446920083702379681487774876493539324244952209126592204260902602922685509275031714075916679045623106813919164912215775759309255782097797035785446019763961017622446603081524351786602432295987002941234443226381265104944123918808119115721213036659692463767515629908211269609628271558534521092017089045459484374003673431641425089933801010057276804274563771448050398907648786708957025771397088364837956884805504473252256653229427167402596172350400421852695327821674218070370074710434356673623016674471683066072574309094387972140927263540364074745199973083539179626607811424569059956629629283243529444018652046430177734001070955468712938358360319971537521961443913592359002437615294769969761366988151383581347109355377580020657782515984700973392310271851967396757984159629640166847468348039948523021255121016909851326171255281742172854600931171672827933055930048364618720207431980074737479316446097430665198964469085883655355786086509826858843643644274150583492292273915522380815604185682793326627733913080277182308142929283242924498472799668799710692932720972927560096912977772880625692509680345650952970671153332405044958950076870718737536584833921068930248989858645082589822880604746335886145206554217389604702743639260566667345501644873818471017485844585757893435638082795304987591583622746753107380611843259978227690670417289935843213388561618402346230441207317381689521266606498569417501205525318820864406031611923384116288064803041027876208395631160570420638678584920432410160903904902484134795967422574526089015487190131134337285301036668935249237928893548291267321690664607978696257228827475460860587270185322136520063372854036053510415442548831600052646223119633036756773139196213683804934984294064936714350357353281831527941983082695600278005928309970167632485916183340830948216153947671296343225548601293794379081083755605107754740315937502204126517544549089613445937914912452969188127717813120172939294494560322423795572265096627053316002655489459535745871426726652871298660327623558370587186472605076404463707912163245844010570641761930260237794796607145407487729078435129490708809362757016298199791848313633410266062685132231562807083291322083756877246598492929403280391133112803673261918713689794891008008408625665127181324851714306899061374860937471430495419375842274813770602761642424499246812970918499742634702307980640509910361776806385613631987173787467595342946594703866967118158005634978526539856987950750198130191671103967765592179652105205220065265216755778958675593654233858339938845674810961434019998552561985424675326761370034510148085245237381524585896631926610330999059453904230659134343190691642475778189307940207553417418192863088366122606773007093294277102325376162105686178144730517759354349737248097706700097166242176027665669168163458488144188775434742292808269382558488624846119457939227812392871492143013460245926313827179922038284565999668957984580195107739254304715396458005869068865606852835727944802320010287027395354904009978239502846427142504475248620887917516247431413539974135127981129088681719028144456275248034338935760768861467892018881975529701886291863253434089483077473027049666019220510962402967182294652315259211621438436642327422514721970237746441504148537461891442957290212994473466267188394432027806271560008353415673858093820753912799903827377972111130120918074673216273465353705894125704030597711880957909420000345862321734576795239001507459601502211247215559882728605427297463042156914890547261289325486800463732019657694421221424225666231491244896796784353392624180655304920353664859832696816429117741729968681358942697650033562899881367288289884556338113055313439045386441731560406659219650001300224704629851135495226340065352186440878787961268261155564013208452700524910989887653605307140131466125408143024841174969680620525927932667192377837084067958962077974911874743960241834225268686913595923028999330139396759726360676175885398066107131659001277200283361333284373854359576543771102964569520572081884059747616387794538197667401101021222838578212351930133402963261222211985979514412316446747899172566064790768937575088952660047574559748309243405748797093602529401043033738912178529901566701120008621836905549143389230372636434963116254385327437937924180315013053397894756787614212732310336099524482126005983236136382027209757641623644209338880961468786156075339706413273630793541920375974822635745395775703169770425344186492371770101048390749563959421695388317168378963537247003441570615439892951059054627966622224931113308194666528536605092189441634921988905085553549222257853409153984001802264053575846262977885602226787016576928263191817157114023405099287125088847187063529016558253002404333609357445453834676240261911080941636571925395115808304550316612444433732501609649316428019707157307082371275793663304614365506622479709303427374509015444494214022121754378401243382289925371675836156664175895221216312930122287160169668942941037073268109675736504404125258633804648377336238495895190953353202000658578760678290787038710927825734483137750735107546395889930856058388025775187929643354594572831342445440112919964471522837551007010782306116378640302984965529691131462517561495354577553792178031359546177793636699445189637825443787617041625492671995871361472096246833193141787799480546482478502915012481042924812560021222364778556083205080907235796621597427463068023759640819968412910218602596507294498642960829546505134719904132507419656697183123887551711247577777462826562344512481983129642758490048280265420484789860248852284441229364714020356074497353864752125484527358630540501605170394592169110159880484732888056823175760944361960257603991922965493397156330197209423649542991796332117194819617000520246372152246659804658082698929570357596757167246962040668831380193433975951189795509788992584663701514544938481331394560753277916951937449319093656380514082013284505178621505434906790300230826599584498806505531945341702881461831416530290207925886837325098612377026048780052832679671013336430630868452820803042590103335391788435058959391757250104674011304385499742389149131858407686445481527816288237974635622885602353411819866246985043329902376293464384342990442200867462432373609360861695777554420186250263181392863593653929836903735537707053518679956991503605232247467895455022156339682373180951806719238445390142536560569810291527788668239669802628965768676296317787428329896051987338162030748625003719672994342795082466901709338383890176374586752192251838667637729502281098791168595387487139864946089945620693632245697618466783020977685874396972322935108464125455572246284283964337517769243667209052623970996816438759869964448010405729296167733165176071362969464138503021922862991154267142681754732830144584017792087533460349148879159847343697822497981308774656578285353814512726098047956012707277069983383692771988444468534652349061037270085233565444696947148926158080054610608880752791211616743373102646300776672948452434971976488309978337550724693335044207639180622042473058517851870432908263209204574403208796954611015257195679276105694332997884026515924618772661107460440167325722023806394589374780181683075224894456127986574790918565121414943673824480813123222696825665189050648009939752950541898376279520601203046055567117052475637675534036120814183169397748252737305290446754943889904315035505423835046580911423416293709042298864736787826279502298278959768166193153102892965399124876067224533716089074362934619236836652945399698023213734214542572005709615185553671135375309881907159866064542298666019837939224937171939141550865439217194453020868072818989850733436582402987582279903609433041865416742463900864309602775894355603665981081987079574454161851163648678309934010778571297569996719925394877697599322019058919871213356021493464603743352642871544144547981577523542121493220352341694906900141685726375511310722579511232249252550573746612376033576063354666166463217248878627455019236631205046945565054577141924631297395952473205536571549535961531682720464054946502407870932991116042532833986271509064218320391444190347853625824504429971802540661818104313238376236503920830200621802437460974258226929283821344118779566825611849430812743577571053588385667154016633356081076964130781105980660931945529478080425015847248485939977598495607176153770401252924259714648437837587296226133238374856491208436432050094260239954760353864494154072956155668454259701403714190757709876419609043618148655078306223090424312046349661923531970799653059883699256937360827744612661672631488078518246530453915802523392562482135237499708376253444242119722937114467731567723470095839807421640091052729018044563749069513223699022190158554567834588527718778274559493225126673291990271620421744543457880882074603151386656489727081472883902471601309688324721806245745898261923819685578380107847542003256546803759463231785953433355288078207678303837853028532702776159281149133274382660802759883221118603614620668280705201768393785926520201350910439718738325368025065511253706179713756817699588156381348750308741656461246250580782131715731268194483512556871785642046454062882797207007045094149277575098184701427760784709568094348671158228817829372047343622863194933372878492937945096671141238077745974097174717628054390930364155917725695376067662281293181289587589218796571930579187479504069052241041475624562816508037662192615676400387131400596151628676483402918468905762376006315730911995971986014078850773566786413581697732891433859881741237584422168268797456106322996804040588472233748442990131195947706562378015798274690173024597383160678791073585363603678337367302407002860760735874625704361220899323170014267820235654205951871043811845339424673388925243212769568256352154494078018655001518496158582445720606694280442259416549560569006016623887623858077302039655359394042589445278895027886672575092066726061865132603181415865175659016471153256503560904607520403751340806344790712108719854537767808132997898678771667670184888561737870549585670439292334471175780229384177436360005635576938747783922489256486372862547445647810927038216606776643906691009490669459540307799825963713609126413859623662052951661442260923724333471493965863808797279025261969413986772100352382465117735578404802676876243924657263531773063972864965525385471853851539292180744384459271710981495037325562508957298865888577538093519302951146631431890741723176007071626820844796416214255211854928450624209783129016836869740683401633627203256156507370990540494070905915738762746600931114529166865688534384138697332473569568425289672634519668467560841871329313536726649201072593295605305993589005130994808662837641120484198271928296153372064592209768592083242326970529023882166024730442950152338524648456417432932593483226365008148282674105140804014415034377175606814424224496318322210293559729763462418240364102375263570432572689396591954377116348047962303243586654833821123085201068288608298159025935751015242057979830312195644937435169597065069587406525495197924886327902491387112313904346670984542361386234551767312712779400845496463197318806898625195680065452310520852044296841837218663176612403429310969407160194720208603293155699229942680331739243033771201861097858451235017556655334142671972853284178616369476179651192205149382522848854439176861891731856435011348162450826763160605732909601147176167274675975596017732088576529142525456640346234402343746718316464198926896908209190203341866742257678068054377094072771699702273784362310679555176867856378703421845073401567253859359533519868416681432883706470169190726957772928762936579151614285919079763392251917808560465891652431230813069234575057301726421480354892316637921904136077664422118966013932859114399047271237891762329657029759642494603171334662355003511581608186520091815022201515519319932221168765807297426969738377417318236550272289133178633334448429742623793764021419771686329439195792262107287989946130749995868775738090922579488334739687282130092829352646509348151800616563329584850155444646977669366401769351597356271727139905501992904454225631172621775878262167559629223966841252650218494217896005111457170351728273137457238608570262977321546722913340942668613284278873911515578787479804648506739899021768423007975794977721090181914205344052380039898732552521405121774546582960775891621714788880569924328544096703504514556168915722432072306594606676310833383674618239704886054767162733000635535684207964909585071685580328790426482918925454944184958431967675118174852576296458560856465616179840208784538130491706874493089689855331388840861551828340592503778215100692054863231315937015874931442489526835852435767141611762703629905013894961281943308495970910102877410599120587207608304195300723795915068928658266962987635946874022002379956430108996795884524905545789279873447851454112925475026274490142168676329631537439589483771090178237850222393392280204920692704045725615510136418585270278731229596819439470078782927637038335533919013512767224416226139881595594253324841253054404204204082133311039102220669434091115304501471164512752791061656015963118733823181841471345298375222708653154413981688807695820944729587678127795738448005250928936035913889490784478810442863029410104006753452969763186043777912371924628023803977287901232617142706147716932928000941298105542463107238088855911657668740767353837376651464734888862213117830369052188510394412298900392379766246695510494381273349809110741409675137457490555466094806253081808666118594413734703726649751762713105842046248000539690324087260465868702892196680204254087569551393638948631476699421104815358033117296709192400392420720804939127019142337840037719225533785882572863501266555236559158566563436798926290045615952491641628051432514404226207500180430918392182307786202109646702083070972637822290412452268341494789028640784298675177901717796680966373892874461558554826032864521763125068539312579657482796778978847571865207381378525885949813132475725538857023902589151965454726717575436980100221149630661284718293046426223148592567058244659170945793151421963022341236192339049481749759004417141687857314719136728853528058602073688404138838719630861188474239172139637686497458861924946441534734457898220415033466491403846293215318407700163044196183245809534886038279312308765275346992611072972444890228669205164134038737087003226520532914236464210177925922044266104518328846730350237048703415306307345484678271934380978578640703672327092086367990024263435931755649411684338062100369164449948034269472086998712944927232597264985964547652384899099152717897498293639809757454290390975652475545996728052422272522669504604873238093295547571303424883980484070290619427965478696311836661268876835776002416452710611521853039111533178071922083366216669992705815220077846075264508902031981920552657001007946526358684193960058435448890963971765787187767628830094823107323695104109559544977947487311314509362534610417033953115342523040775494891968982460584706208622169156382508230133780996918567067773300329408129493827731797505326765144782882689176838990903842105499318823522395720826220767424454485842324976041810409914192986948846812430726589410937707136955271054712893351808681427839253079290079423018325459187558299247666450029153565413647986208562296361175728470435998830674862588341110270934213777774091347827695846965302315702599499779180055990999091395974607603823656366843751469057673801790068273504683009981959466397340131669866427268990356727535889797814153258143009296316138351799988967906327418990402786446508231244430524746136776621970073236800817220344876775135611057906494164345390010749470542753457714585190536695967955792141928781437687218167662771365202823879227634420287909268988181172639486855817459258141719076843913284292685296865196651940071972161804144276216473270667812674988819307662553123657931537456542697196365294839628157446299162469024648290522946782382183106112675993290923508080970466933032942315362235791517241399315539228782553497395890292447601185367954421608910301326993836221345459380912341270030544696663380935572881767109323284803398501085764196869184146045101408283013499866441062849172378789485839861414738337872326791574938634358200954658603392685891869902086954460702162711394590158292364076316756643312156653890288742391181534846051745990581628941842057903880284492935125332657698131486698775945921851127830006181611072343679489323883483201971458718961875350140382996714635750926494097184927165815892562407102818859347233333507925162406254931746862399081098871241718449683140548226899069885059969478849102941342532563867800175899083216450509743087182538977806254156472787466313590318930890375309476901924595630486896899077520767797861315520625162286282042565143197574762920678083283463247111588576352844982749778571999074818571695840315662755026977947332728597704049327186776013743809805702998162526840508416946685574352213076959685759014179167972919678363278892224723057315376061330451382398301614822813846491163403017299544091668122816209511963079076918769907678122643787484720978028726686941439928854215769140113953102865490433142619256164071951501552578110531923041799816732030538486819825316620100875822242186954327028959632737953201472846851993154427887453483443693294997390641712535938126525217378729189082002551250196888440122387793266155876301186235998109957062911012999842361963218111315013645303476794871614237729856203376681218227261971503766071346924391160802103305173569749504897801584969180395612132286193465907106540137019139901081167803949860324001744911395460294292442634557673644412306437543565928517192614051392115038026853417282912259733429289543705384911660978393926408659272566731277818223040211369576543612796405426511089523346584982289850768976705230816970513821276362885688475884678410026310106082791681516480414523978639252908694087990539142015135235189747882690926868980670793062874396861385106176508679756676801852577645255758060009721891551998905592154637346513718346956677926715850050556555113142273474352473044813429007939988593692720056299412307789123253912865782396377020822071591474562686029500730302993940539178355162869090852367527311077446293801270838659866433427287177534154355304874291378692257966839318858918540231779969985103736047637009995976458834718872273863663555723925979970147374341643809262580595023362532231388870815794240286115113012398063495903965310073831287079181558292215725872847213499159895819563196618991201276160310173783364555032216885500477611738340989331156950069517139993547275219794923652288088273587178854694426666945904174597983688670751297854849108136758748462086602073593045394558415366119183881809309655263408324900754448302198648486106212394524770530703747100538274941391023138547556700914134699570347606481462590663170940000376266884137928688191201692385094669122705757072800250373386338707602237842289260590936776270141845550458996649960874918402239408322455410122229520299212047552398663279986611295200726972184223772862472234883434515634959577208526412700852907998927384887978041143815252972446626068681678931017827756245060451230228117105357613097549311762755853000399915238725566503243301088397948756292572021385662109617071719462315332814100943972489919203895666070249739657796192318801485644804550126964671958463555610389659942220382026115141917072972502210630421788746820404809923088115958720843932238064301732090747750052654470127698507767330478554048757568947121431624584159673216591217122332133200439568562593961634833668604070563520501989540723663146249420017596652572688870899783746007373759083434649582498016007195717733800552592028491010774492628105644032295028294293937198249472348086191241989652794734610748006449904022190283873491537769631271080675262773398897239089232630881148850889104609455072142550990792019662491960728166954640394918640355860908874431262408030498006074268507404440867399123586389818129145938267901675150307898802600007058982678196485612072578234774156221291004654898608361177612106514572322046331746988578501417926835868958478766369404110121226150960001348713364702640102599129163411926378312596686829932255888173258219137956620772482934880683221137990222969228193552387755869361851218060084847022437922916012823000126205814490748685734431780348065832934230012085144263563323425890573984619528446124198104653464171072437157562597775403315244424441452752743894795125513324176001932063987857117517147106469273252548210063509545585643498197318801733839903517440882850494672131495022896817915582050789556593798760019533063067975909098879030803112220685837201230232038648936343268501739927905819099157654733046131609187603787595500464722272850869501981884792800995003597668819195726994841917258166944038241970829034286114554854833761884379574373361660609631139622800907929014312227647737288958673742486245239561580689564323625235540058287327771190205188433890443492707359795823490258961528207305042434321541013432048513168277815601324467082297551032757784562181595876357687341158449558812309189725819799921786229723884441771141149550901952661639561580811710710114819302593317491318570069978745562162972318288911299388109947033404340640827456673955072075572855004553480343094726409654509151738932114114836183675266056495544387537986475387810606574120409968185017877687391678222413481318607294620029603270849839440989593400300725729017474477747195983039659478624425125610251975128074005653235575581844874416205027437245062723890931064726108596363815581155584662283728991924399568882893318972093568997972898722057674456748917085161302777117456988820672296484838862936009348030710164085806614165623330741254306966445166444379940789445065794102161905197181718605366082507395221567653793180903174323129482038230083309623515912250997110266774532923780247407580024334139052596371851513255858421646636413998995756140529661446466736433502873930955692510759552027525212588789328255499568262873823350061567586325072461986559363036927206332233471787248507488835260459893000276874101589610475732986588992196542222791213623779219086016097186293559557765851399203910855832439309732757089678141011321410104354137251599367056840946746879083916690481414214792957948927108731760671504729225990311578629542275262937099688708477526391414212308399726454302859858696941266981088671146391114921302188407803681841081522234153996758525297338026078053396799018991634620424657634203894036696443194289209112081677594721470665835825616220741612297751601352800294618579371709545213309101703345661527751980256519417868620144042268903217876414861557950945567169026099347645061327495234489039297342916473734995779659428909978822967028930981080176936174760452852927041662991567195744400153896561611750455154574388350138122444193394003489713758567164794823957563099627074530828639415635029669817953006677107241523728563665508992595693328282823053358177311052079119499237700924759728664249808445642009303443935662472260333418932369429267727931487669282677316370872195043156677342039321282511571197970377803471865473744822602916499688004045542510312293258343342335526102733861646277177770506263091131075608189455277234325827028992411374585702024166876178358632434005573335231541533438207031343635832170022175545077625560616480271468664718047265825913250555349750115796428536264515964677786148652644628231768395675936766121446223841988880703015232795976250595647504827413333562568828125820983085815917323727057765657200671003910972513716539757194430189642728137354982485039686711454483883269572418064000850024402738803872658191746956127079191344624301903335614363893391938321181252235248121434329041708367944309831911692433332464314481921416799610808558796091984844634095395966408513001380837547509811999887371431842023180300520460297286786427920468954775089699405948448339911688194946775947844309405894773095618982592378667029637747700866415808040608045670688734837961768938340998780634123835908525448207846608581965274276092865077737675425805098199061248381133410554323269200549424905198404959550931010401054619880353519097743080717539929397599900220921520600118866620009683008303286125651749581296560728287084999465920480543483168710730511051139965443018688178605527420331454367510230865080678360828753258482194795608377738224663579654617732491997745818080368610096426545688293467498834771007994489841783876097243256115199830799092326601389944224466043796544665968097791434106039563937356078379574454266553365727783384996261306638326463365899113976073845597524301171302415579701628914070714954901336581288232018567618687306215612423918373267026550135311681731670189575910577678924583487017329710953231182365954939921929175039382088965202876814653901872771090790950229803506641438411063914646665575392905346443218893350237142635649351991377483449832596332400103879907442519390613322841050828642732856893574674605556892478990403930415669453656262105053846994998054522290656757781901796757037458706652218158274849286184055370058720634922666634942017982739568316662263745575923236117100869864702534467654718052531850517352800527783971695844985589728710938529838957218900742281097004324154944107397147016557786225353811057834847023497399869701781568876881271864146634925322103764379028963878071358686935046908203102562233550615772507066658166491183654255289698750473857442424926974411440391042553979124494058637941568243347612405447382028681926285170467201441986124754168773191980600172876731149302337934455276181337506307101478304753686856807669956287316597863327355011677971625143701120465184452837444466490115629470615940011265067799014503750505964199882978649096094315927787621673425496026547902208799626808787532589412776394734378860741633433871696965220791917015391936659613361126853710292453533266695735143394436520441579351968171500420503267605513545047367969237214921564160707369209602647503368823204988362154718992004839776225129094925847792511632572687729872112463853137541457600783966129767417271422419734143054867364640177734405295522306099708477864517356544298261992779495082119234229420710175803519679154186884265989815038840733722982112250456048997810899151277283271212041437149074684457891140747318214124612075568463807204611462286834763303188798378075727608489653879123130471392107208112921491156895711294419739294980055032400248999578812873565278979786039370991917055092471388509950710295997465252857596838891878973592818233610773581718516413865428603035794137942117748205260040590148163133736979925762595888404317327662124104695246381330766865929429257673472748359569952983891766289626473664407540612162548768232367876713526902006811706355615791026929022033310175478847478676465866016894636610070872206059576910790814373442320377415045314468770917912979331966520560728801654238121217025451469154544979737504962023918470378886521706497156923879983753319558845844240193298375023696560286155193478810561395059781796117284301848005051909780071599596523893991722505558590629148925225046208975188068636793514862876827506077584637563262513509055315347740997449785996903379573070422519965032508216289662564248935908210909991340303622263224022859036894454909483633197412872475806309389428228026542702801985417950427094104440951360291184743860196599149290633933103750924535367391947692506047412074875939198365834297796963930528105731395069653736195611670376534450491902141636276084364110888209808295538788285217663773238180637675550908853595390786656440729487544971763910979184457174785567026653174454991147074918378418848764952059576520771810020942401047913298130729918140582903265984647427550157970305968204482333562212208828310125757154067522294622083114526253395275223337933233751746370538358129517125213112353875027159270611326367955126819485068577703942789326717159041726099657708634235510580419869434156891073840925838477359307433227579483362079612853481290800016874467289816299928868590109755770277392510180174515247289901070115112329049742473571778801407755352890490284637135781221160609516790083810059233903385385174490688404893626398698603285847731558921625433270697181382581657387207738433359748147383919448392981488513498544785132458558152809681243257128956197259620609512192955584440151187746954880829596527737808405222347756301777000208805801699196070705080753698944465724175142343633641475048325736730096361458606124256350409654652456538449396372513641568704346178061148458010625982601642786124263968389444528369353689227152764363238326972884591874671149030445817905803923334192742756259257681839964961597928648129713845329753273580097541346672493074899124506922235923099759974615329561535112276693350366714374288963735315835108370848959080014089296036343530171066175029036411367333259802637774219685568395024771910961431397481842836095397248298062622253621128779846991666250783583190481082324016387407323675665982836772911805437747237281650260878026575140440255731310440338544894193065174871542076658597407356667128212203850682004040906319738590493569228367785202456450682108326321710605629603818535976312252385640982397203366291500510955789696158042917736299226558856085514503007789182246756310066543628625666145214855258821871151236739198195861072678069295431993507771082740559977176081768568600485242805547151490095191005342300477924695976013856420056951703087168916312828511335574740016103800526532133897458207708781809190956790057928759042656041591320196289467250612072180072633594130314120096388584788434168276954063294562625123176006313362918195796631932830757911958137575091368425371980311730991464410877118360114712961882240819376589143010278270899124556515533341913768104609749288589645213406819906630637492921176268257659998622917472294623432880464298331956139459229137585725669705920590888632753663220655821432438042427051666462628759223129845084327375023224056488887487507942773496200852121964756364305044590362854962110303620666712289803706207066858534360081197045440989882072143409413522025317122107516501289741152540561914417713127673360108796956426233332601299251614436556941971332994355138945081282220745417796399187408293838436744563069710266345769226871558299635467611582717606830087149517666688347476034555969158607177060889837663636768793815881202790040008056840296118299654006291444480399334436660840889217434516794423308702823313811652204306960077178020127607619758602102118237830638306605076701034106653057362990851730155713723586120137631736079147118729159159393654670273541135318594767369127893728779765042743002448973409155950168700897448391877186482815789461825771502294515322972922776522538278275480232219634262716011257689598345537917760238555786335639261220376125599764764960937079799164947574656003327393839175304710690458222526689530368079458701586082449805330204210599624276457959055705804364966086319587962346175263826178186030993800250403427240888441837149963922031700439891807275753222376872549289088282193685521593103854169978155486513689467177594747493075650344457248909947890812328560046885238679860786693987966455287132732094088782129267364347216847117463080023402197806709282219214018212217132581922026113827772099747292816978340582143413603819808780264060195353316589722196683335289919069052828536438946152094621359582390872261191581605920447438245797335916733600288803135538749563627880840317219230392870882838530730019338882191428513432681483863461162785627272467426134169240574386145952192601372206336374650474583657849965539303001433960817672832076893819508051365588823877049601131407246601646114906101230428500267159232777230456028789669741872988697657887777401165141821948384139822286215121530075503402681296808497674677801491073982356298629497270801329136783029322030467759580824762396434594277857987083416578526218247134977579955562658879790180667097560936922535263877498598708016653748634778334716866015372942015042774786024840416558834635139409807031279047286394202607884578797673215508939343475824673004432522868397807800870136501662813509141075734788025286926042926553756828399175742609395050205082810071445349006659485436550701529551271648200534652178681129722166416301016479274559426814938958142495931019562591402136389740312991921228658858073228157450220103650502818934084294024059850807575700565632514565669780057546254035632490648861428434848401610313123273539139357497814649952528733352611422304658922029133629521798369794406506170643159869474604973349019611924612836412604636430955547005784425115231067091934683524827110009672379871676581232670287005581164540525726457298262394944764347866477697962817619002422455846469325507414840033489331298452510360455749881293139834458923815882719668117199570131501992001777671866028054307245755248552939297601319648005130676135026302875317081313162620895429074930568294241457263556166948838864446138455946644018785698087542046632998709805765310842781252518564816441935511924894247937512682573581757866209985590069724289492320092350840876759072448481311061197829286590379540727320160537946720344781588227201787578153544894284257392434186420784897487504268819005468440869314328501821529032091028584119201308233994056150387625519155137045369198514006789887556893140473671640990872058384168450586086033508646053902282219992010483473716693116251359622016504060211525207160911729516159767703697805596454631359024093597936297218942604678241597675063714777169106567110015133994943405268431377903921771297243705883064449485288407570366267859990870735800060745187282864032452062509545379147090716633387932910262536434067642075004437591027083013735127253608478779641436904379138759485341696778031034916425312388785121977237114030780351330201516087319360588539831646377296634106362717295274216512450148912023019342904309035218716790166751415525538478762232105291733139508684184054520885903975224012986936724972982307957678099632670141713713605406443743374843096639320104637812181357203635204076802069414112416679536448184224955804600841139610506598176816374244253640020326784635923481988010512868413908345375076710451005762149750936008128268288023870987537959231688858226344894303590336399025696379824061571486496938871837902318338851230700477328855070060777429506128192060429492247632621928397566677231058069012303769072493252001663792394666166942775191795291680825730967475681110426072688164578360712158068445661077178548356086063963633172778921977695328655606854507053890097565960191064148418182895709979209956647278344451419267480566000213081913786613041671848493426791269656486160817902404839975464326265839766314894832303176441670927723281454028159735420429288197632660581645309459814449338831053894849163361300117103504910443815364322292428537556649641974053677016959358618230693880252852900936844085313790611478715850938602883024615898965894388465043734040016360131288160560892954423948959342372887031549175294092261448374848992900845592185029989121686380751136110157235740285611550699735676790969237846642639468388967874787954678216318599985684408646908935095215942255478159053273565576842854524903544616984875697265608157364394467264277178418135324962561883590086313979701720887797327783516025022655961712892919315480363833228721513984835940139483150346311398701091482355740859670263321403886656862628234343700463650746834256789848778901851685365072061989676064872712916902777229522926214020301899484234064162561387257412439624197829717539136906370466450234384797572054122187154892072330325365741368361298545291117223599832842039533071968383177747961835520809700488493685219429481651178833457771609009152122267324424000937578738843430230772596502087374421739809682784464533187988770745068694418796205520842280822612838281605179126328624782177394856838946061062078750109256654490936457204291666560460167205308206907633508678914365064663815425998723187417706584365347311810762863530430365377937394334901181261671160051973278813543888908379586434281606545322350061774373122594634550846599071798348727903787311561027935535821230217686657620580323537361691386783879744231623690882229339975355170628467586771771774399602250257327706205377441047314433436704405041975121158884752233557159528720427249606147833853079791749313634241903992450414944969674356620219650988826786032731860832683251191353202676114409772688203045506897925141213993425663196090889254520912061739241291096560930914739694082763825644966751712267229557392613662686513214113802900906423408718115009097728671001553469445272470527709442906257073177687138397917876108838963946149203718324090386196354130271213532259535954187836391972285837929057424988089141608298369544705899957779635211588764300751201004535310641152384854102524814871954806546503951947095315331975933178038160342163103054302626564065878025940499825469359009235603180538883693905859447375820665744493647590244467427010955380987536689386623493954049716336174554568032678224827522687462409683999326488062591424080154777578103639302073682817292074920800424383706588529041584612664413018673693779653118367439222051965929105350502902625058481097410145425367400052635153384817184540424068646284518020699742106175505740824771340674346447747668163202499576498866002900116164893360690326861513827161827718851694137884853025590269446851926397006455916386485215082602157583073181995033401997556529463923499959584308445335437271240099061973441578196239739043402672034912857597054446915535852267758963608102429466379619591021730800399477408375162110199412880923810294587191456345496566377169280446984846925558971992891531522429893183589002704551267496564093995882522779736539090258352724014794577221219506779828815276509101971943741848359316319992308855979226068207217541419112963764745828328273053700658042030158894729902963654443208263349825637000552098380724935103776256357442181057357622563205288690549773117565774322704533667658999375348577640204834564657388265177097502437015488232721096765462924312318016481318574260306590817572630793682186199841494210681932049149326922804787205057083702535555919591932809740320686575326972718153764699168913087946813943765713002993614841925775204272860986695869061187705542440946475598888117764381115080592163144839495606033693732044603191429165588646960557514379050906082407331621261737067438767759899364435158169134547223108134852307373453742395596823727072889273810334255002478491782101032189892446738908373564520414532783365890633586840420297199297499478680801640835133338632092566963368502097862152029139180993603229378823943098383177786210140939777949815701584389659031724682002218490116522703100912834068119220260348920087660971821060367185952386137776142898825058988048411989074757385122974183372530032675750073289353059081102089055648693967206321702589510346918208440060449214602526297053917607696789716520827284569337205303473914578629978708992748701351001404575642983597840664118028722804584938322361352770454695015347617901870626406209652995631897831094143681126589925920188772846738096585937684006892821677482298401549629308768338087210451619495357847598070513896792842310954980510592362290250741922675217397296980729993427148882577078646628757201221394670568509972988210296836920354956954750368937954035516203152841649543283680756343563141566852371786657300419781498214330499378038412175164711671598271316370442931069114415719966543885203872895144069377688302759859898097415928777850451343513537767100206557447272267016776583564476891147968935788850126569338208698805176236528812959733623640223865610621651578279990926923666000422057696030267661678918436021550501830572776695917325749616761199458973195636529929915938618339367414994719139899671312044757567388723380740041056535579469505781684516843435561076458565338497272282035412767343059702065459005938587027553518255583949831089698326979291824239118980097862363049859536424369565518141614082424726082811881428107728215689242894164906332425628883379435857738658505176633090705784412116055968509121705951862041260947075893162151600594277270532978637155037858396695230406557366015734337741590440366827017481499979018743898630466590172093736648295441563849533905852535073374943961051435700617238075110148691037519456427476928672249952501397527951097549291082548378232130321356436946183147582682352022626612025331129828619624935248886624871253918012662691344543665203316920244115516593597903530727336665334636465784443355254596342097518635320665663821747640080748927795646036839628101241903199658351557902099776799536966150301558086783744835427069232557461132975174898038791638589081010032758739217960820062419364438487656525958955869743610026194460502222158194433214711634043279306043497924314913331945980151365475201680746790539934284834235063094161147022403166895304029047428189327319357090176821836680897487189919349247195803441365101728588988092432864208962905046083802198091411839207577208439549965806678557280268106828743211756854004985097715683148586795034513307538193581544027798196794447166139980588582009431695633567934157914736464865732623549253979728933512756980131971879858455287524179378897792971030185183318285807792809756883015181310106051392828257892412031063062845568705070058588037587397873541573617442009942850119897178615391288537649563587303628311697045156529928543126020992656765096928526155449386108429526898229828797469247134848182128483348940364325511888515398055503458143244851520668648738153057870712656902649338669137213937429636747008455814861014377810994920915371573178744124233633356659986597970081999375514501260922910105588537247563531123157974641549658464807998288311642146936178272420879164482886262644499607441514253842358021967709698877044329397374600722985402507403378879792349826744936315279033010129074208394603820976368012043820842504151606659481297315144048186594280486435681973334033488403959273173200095439251822639487163299225357618943296945128052918686058284985548451496610923070768211158195920450623764874000917622655666181164606643500933080909360874369405416964782078821639012983523052620263382634905113198047811441398372018744794965640188338421365694847742919802743180911197042782991108559768489399834341545362059820927038947262486409816292557614170994262521780863717800047950244414405766275549515676731787037646380634178500162273773280042344760628435441407080076457301373224994614325353903103225091796032363557024858366063740259099409184815655395094115186726965977047581297427867655247096233651188399172746935915531994051013069733876277783269647279529001244866904176902525566669155829536535564327996661911316963627970786449592080540666009219461530151028028913334711867421340137874549966568228053139427734594566883698321773052350657997744014730723889589309151004479757397976602284745947278022287847975770153611871705098063350073600048472303660556129582792895100804230025340289533686786252516496273188254553138056996795385428842855989137117352862552052980789126209184298691951405351496609612141344825860713826128006819041845916527815260587485114835989049614372910453711558322244659631233863047862296197344279066891745038428483415982099773356251334240104316312599671997415590879948084396131745774403418190809791401426388426875325967052552032224917900213344859469872853600477238874717761180401815949614505092417321158073125066220004076112436455705065515886062589270005023428398971230118116823359948005379430379398250219475144351877041547757183210959578144730806461791175415710201896664166898440233801049295806120466033860399309543907233908070070581249580168645309501435046138530885296773635858345501230068132209271474762982287056732812151873099732975490833654456412063785386818571914348106545376823039591457135732217602267775548011489942375364567199728339623841712983363569735549491995314260213649032830894936258100307380653303161416155377200165911979747421378254693072675065867390417272617603839282856234891363511921348997889617477113702448325940158841240711438040594537286055137217122967503740562670161504214209678479668470721847695768190893885824406080129130396966843284049942401823717883738096647592361409511464841999032430635758416386577588483341674324393133931392068485175964569109957273224370909028994837155487103816517627880655919026499456017610682722536507463440154099566591195302104522318251430181572492559727306803709038084270707787555601153826836888279997125867507527223586400871761506692118937971338572267908163477069948059602858437776168315160056091535495246515095311816071669787765084693129640996131599318058349998005726457428380154919435591699556277644759648381651322394193499026249635108791634357030978694165693369910314926677718498035926861482272589070038664953506126912282270691361040297547305462366891424595827837575784743032417532086369694778123469426420454178777221008107074916157546820197945785852303500023168881252574093450963660740623501192434671283698390418671205802237868992487460567286364675718966210242880542079660623799028243638367611415349173557122111882860694339930620149206292133675528981602446712999335567853881669329072353973427501595584128073103254764877176337070912914366411727235271453984352482479655707854375779855287142473199855850347643862928360657615373095883480551099415097868963337141441078059208813660009586995855172806372880779006713574635575672220178352949622941220345035462854792746676124407455129041115687452908723991168060529244307499282442018203638956179479359669607318277769315181465776642140598571813179657918665885452062633770597980520696616712554799178592828946208116568218827252264410991642910751947721591310443687252336314621786311156665897461808358648333789973705241500713512949491446581008594982507157478033119758382025451614849526437280420904483616279016942332935743739592752624217861051416385279236224391393326771506210055557021812543929857444758236428279838695575106928390130681073954225174472005045823680082668189267392063380842257933644334798043343030207322005186323771304056464191386887790217019641968737844833404657940351715703181078996823409369287362492811668791992792267677236362159665212111953531194409329088390832496583530037043144847665701568363103669749290746991022897526025716685225479529485071197273941980498039143344255997366480839823158089005957010710155626917435159874068396006763768892210369132388894105829203659100932930624973399313710217597456121758566655650377093181062753101851534920184422919295799132584873351329246233881919041408032654079508904272216140805379353933347016292745811682317786231188862639685241940077104403289703527236088228209801368394269752190017864478484199687604900987208535049229870938476851543500350518368191837022445294172031257093728795028940033384034276477603334558611346149705471191002709941162567325248550159795120295426473486074017425914834589925201736185123158545808460531062520371749754118363123307421423565218343771354314748253310537384541344358483618124519967465170821715760197015441005375322705896343350507411722182359730955726789202472334920299126448762344373531328733951615752802616091270084701819991967140474444417172851202771808218922928521974848724779974259964966217793047943225264791173019353207389376421470320736740643604436017560313309652373959771550262304257527468872326983528217664032205072024676485730431895285118028412392871756048070571519680192747528204257136879893905763802681272232990291222982108353019923355608641808859040780618339723749872340152522000127798485347701184757595228062869986080295571383267741481896943925217743612245321710884352012685194846254973852285261796850347890373627660831501897093666352124337389963493172558820178660715380406051453387356750921726156450605723387254612930286171712277355727669105213023420296204747008628262375471100676256322230969928370343319820561869431141264061929060842407079654502380247258479275159670884257344164185518447133612223121177982432751513397256117682105168464968548780734840294978962060785548272408853766415045405307762862071205005596275632781715681751192311210471268481556155521426187150206360437941283858002040757006939459231321079424506559035620182634966510688385961134980109276785199962324361489182758863789628912506252513821083724833687195818043442751548063980773382716234313717093028462321793404627529168089523116181167283990782048675474368589563847455265936246954647087696592764706953333454865237059466040731779441196019089520355745284976962635501000212091356044749594368105589977384315368247603758218041167905022799418782769067323566551640513210022336416407561853832486733687705866101433378014787398591105519026499415865226616392242731037175064251447144064195850259356168604185752209863561144772231630780976776902290119331232615097391469193813991937137132747362225882884670480013397773020280913949785818360542282533614912840499001254123363924018023812754313630670310357119867018104638336192570798999103196539428195984676336418881036446171204004339471152424483333716842084642787568399280664968299646187617536154858528922989666480564086788358794635665627471901968320192921606491675328710815208798860264614861242768514979723949047368127320777412119282924021631387810694445713715919537092076267063810325683939544422963392968176196215192488797636951496165100711565174370211737169656855224628764235109109374845811989574030155027001392261344452318871119029635939355754421492617641960316704435727935059763148441842889925531010344369052354696329954250874055724031193169845774974421838149506347802921670218926512600425051673015443639025313787638956340359877442514623483622167841987891501359807913021717401153744885791996545674280949774791471200734533020124212924507934498045090127035042100223394814761422896536914523967737083449985330773327392849638636046893156577947672919753016748366061785432700670884313003289811665683947246332112034144303547662543461594280143234832801195030743437942680098597970869089517456102878818696590753338898230259185755344409853770546478627890912279057791317732937131733057294206431828416906372355730199006047816454344292673599967947483206749736198047919608127158907943817943468184937864535380451276182990097090573721155654697333496511206114247315121780302957318162111855153074181117191089149893170262987757159533912686205953506222777333354789904448502624164521620311542029390797288225677517076608674896130216324621759164079243150447188480505457028021358887745561371719855192127767808023326690307826464037051096155434567923435168809288010115810522544250028999934608973462258564988468427794540304323113808308895589605037791054843869408868085559947407133803867712955498141792501220550517435416827679774438391668881601118509411291009041927853886692083563622570687386131265894425931139381694941546287209634593414004417979471735137191199044181706602953521395763572011789867211107949278500888917319498775286275940614355887825584830395359515219926041543945326573136715215383588228678552235938789459906848980054434466092316272730061056507037348097702506888169964363372559808020534460484220467206879603993234734224872047218295310106794006307091983838589932855735662846764274951836629625523072098951433681321367571747189358046249076366200913868957374707181504442299261492618074940994478101266134664469403695386018679411510832915109409150547997269710710734118921244670092351505033718445724095632168570092760471731063733930813313778682986420099248962324151138425005818758267934040107077160504290650887413326343323113001774236730619803453768286852558333433917580554085376236019606152298117539577326571270136781501456130031860037091446611252628833291098473240634594912006896370787131853400091579167205532297844444217430118713320108826491995831286794833554353979417866003487194199507863943268846002784985186224949074321915168555875167949114821606602358843477375926160579550915804368131987495885306481432701473582579507794620502439508689130683470011871634538737368892165023714319280396745179735102449620817234417358155782757318034810007362247977432629256079880570953964393544030586277441088848650049721193860510248074987480524879033771334038468029472012000738109705635957367484060856234000565979474673599936820065712686243619668145736433032307886103814497969539967981669010910602677292981054141070329937929571275756510329064736138383104073525817776254929137450307509422370662840473747487987321716128951104030299861633788236447221100144265307625747863342181378676708832452969434973999813321373174512018382366363591977510388101366717824044895807618119989313341790015782247721354180251091015302660470228937736533926089337421699834833855861098876385514092631137599930565488606179422781340746806276719758371075051925241345721675309330501123486487931298690144064774590810638667742546492355524638720117980146641159288674494754595184592345269956347597717883287660351201463448766341806446335363638602283077536197618728390678164791702861459331713242546096177269397690210581142216150652980088787653092249817097933386309699063148138687073781685662845044585478399168406702309035044560049880715730115204218823977648052128083864823994104535451710125053878258026955179159714520387727876351388576712567686401216639465246373886371807705524679241615977506268324891069432150773355647997689745890079816314427889221019031988916467820285195964976902091919250702142045864431711249477656817535025487471030749238294649782327252161438648267647993459248973816770219082132319063886105307491259609227751692112015562978538135502729571727362845352233725406240029007855090463975528074382525665536150997618623793723811826775876940140333269781893894233964155198368954301490737731376552846549216064895663586184954968887156153292176337854768916044089022105122034399267696533667608676526968638439248665220294915895228431846819026962288075200219420530493752510240217614099771515718313206714043364385867926262960347619831967316007460468656959465736876576605883730317500298400832091662733341847116878534434088753410504356664907477178162994238219766244895495533775112767188144247101133263877082071100791681933260776016204486749535511786908460412466350839485939124889647450817267135782520725500212184129141569701260526234254169061426327248498440748402624571354385696633167649358314948495892295822617152895833627590433671234689957565102034416656132328840807122070351745224860722914944960428827632129706625890161267858472262464128119851000140645228536650413484145862169126763221932817436955522188572573625766993950107978077369647638415615666250476294707392612735923954960829992769075549574905932784958806069738209780758299860141319466196966983099376366636120381303516493025386232216223090315975580764947058485377980018109851703564192445618850463220381224112620071353989945610226526142968273045678640511915453060876678129983166437236156201793833015999370139683033897099932484485061717063959673049417942871831161000769786079464218871982947518792597189866817393940217795480935103692059387719672074993497209352568865394821312997853337968886241680894455208895493402337759957926146326059423585565696751191153659898941826768672792267176196001467153467226573882440275326280138456389778615777575015867411823017794408254747492127849044020336227829789955806150730146757758138152823651045916213137060467308709464321380574927499315421999274007651975278456170896327407753748498668778219424439346292979680727797212184558801948184377469472312979384813031542466590163964856937836746113370110255077239358681792643347801194772391039027866554893286728546581169393585065335043328964006278455156589051016037314791101142695148579856000738837624298668319405284538936749019382278645858636380380944074572665586009927154443020314228181547003469764270814657788548930474164635694206068191867735952015750594335927977309243407871594417551927454990191865928141497512314978571025302480209954960964886069978222020288916168610024886660052561894154430455210320852944470077425888856795709747397832336036377939427931470348565886421616618760267711487717653228159641736273678549119362814539986627215390555499072060709791305056075247423804813058064896573510319944302545520265724301212558205191837253940189589746413315609647559496846462302284769762498885216064953681907885349225291347127402435699155908038792053069506351663382214485615791230912979526402859756536285127280009138063609990662033794579932849473091548291837650496824982688820037943082978769250068830609042887290905566779218142583822976062476723595034144259888293432910109104516429760277993359216549737135795307110608932832571137795210235767020754347362686072010996952458290903853903508744733554191003272786192538357148413410337560830717700486426438729068309451943927348392304338193034764141506212489516926628022188120990596366587920689176994528254953023683812474366775500461093672634007002476214004623007128807291682420358827718411796828463994039607591235361725157882551243441436473726962687461851764175598596917107963773348657339623036120887237663936346280845185046348293998928742976840877592196535868768036389747211723860621001925493569732113208590722661666854499064350413249120235128601443709361733690744874047725848077042886594540491185204818263337120167243825262556188880372460052394026776213166652527791833212562559551309271556741991249386934130743948478324470824225622162524405792211699954805444987982279717129564908234533688901265369928092725114297906298655109294048312144709938500574663360387109778191613089495329877644160290688713205968435813285930212921693403700747124383845727471216671198244937401590668310065930232641118077592899818080394425734810038142196367228594192617447767943278853077678345777793621733178931517260330594669141621976069046975369821925519419870553512712877934492581830613640241060158047328280363361601951513184786854629298377445009998526707595434207269334592269839864062492784469130467693752076814024289875920123291817600964069684036413481998451348719469987732090628053581130178975336650897830891989222039280069788900164372830574028755616986243269451369713831785512352303313807033993798072582081654552103767200293707835399805510048708969385072803627760725287376942029571036511982973532366336955515103321636651700113864767278497494380229721416809265727293362653366769676836035087691242405642500848174444473491651020579688357416785669253494535448873193915550282562968712311682148822523685670415565696685984561465062706491919977667964625986870826427219472958575184418400731449069008935208316627346793952438662682473750558732916357680698790169179751331224303476378910276995007966958337591444592100657001617599248579476294983368295349306044414669943888449655629871001184528654201130975615720614162741327141364343868647271833547123213777123934620758012735409586960917162260254932578448981281243514478957583717368362984499021987452497308839840246109076068542772230823760468215917544063807355000682822549597760935046212867271614122129465333914696926357328065438510649603864517264142042031841005773959226902474401036876411521495950224384265024961731882224185552430005391139160880979723684537711457349464629204818017990185901993416010487289429270955612856004119117534731190614179620384948635805592080346516236587019787508690527352613777435240280447969074117817513584045374161139476173411089258451186260380521786228771387224218944096102006257674409791877000398637251693174977851583202567993874995670212652158497605388052246890225097396054860199011476937585824299428523318292200157053060575841464454720017235079224294573870216396946971594754176499815599990613387573486209029867618635857259637650826362986975389051048084164527644699011540683799285468213255727631469335856356051476568917056276484360454039905382941993306637916198688780609680893210712166301059146403135787994917443482989300207563592116093227717515935504051581378525934839476003148508306698637779276700721722604853332108379625545298444897065314517838251149308744158877529842062730161904275982406306967058474031761847471217502062028269608972466110132154906110404904623876833012550595637949937575431443426243754863080229814285041246188537580232577673076362993688831719045480527232064839037451922286273377447345937060189096100590305955707935310107579371841046189537345355075434571011527669713236341259265332425998172108753207347720188508136047046151922031325967998563489024682942928428333366757766209708342538612064779402604998872816010928323313182949264751640933551639723380631318729565195664774693915406905222002372953179340410533565841265419260204167995720547051401840618229906823632974162503207434214307293121500697193253430519805244457222753492698241702454327138364328676290865399472438003312862012874981523848929489118924679357238934192695105694182182055228578791382811501747708549657325613011479239801508495330875252505172875137643708596074763713199486826186294177241392490106566396060191808055243527455655652772911893132538872299417772953488526131790146849535865156151250599538725828093013485146435177538570063264148631274681403152153275479148118483548361111153959787917776290478279146873394001793859558357282857673320014850198085763018901203505281723309379208749360646517626573087901034977886743929085065740730460409434553908528213321851179269008682988437069145319161839085838572961464611787589714358655129131257160166092801920675468314501008064212001020798997151239867275629732038247164917367210921256707025161606035711851650760693966481044837445286878398618958229835269487799825025195048157433189200974091527252166733664600802930417971061268623261659208988702886779486216689812120505027258708930297292805786721241075682994832087049645055022782699750020841245816332800942907092178585446394464741510388910656212506797750302432601826465871396311663984043267601217601537059715970957124627824614144150507156952081809441888355679020854390891975486838213181164531687568690095392085195193393616575617650340887619782324374404777866081212885114496443034213474852008831603487219706751657004542272877729498422461827601442898804216302050687624587529249625983038199228007755292988657690522659348193133048800426370441492842087601437331297358823114765754714594098993608835721318549630683415964902187856055110689784894962375746381231594114157129257299009145238764092998879928577659105646410213831113613699329622900561445990346119464873509450870008860118296438582843322338748086913821460873212941978241379461613762286458275214454463690803459891400490066273605924150554589020368239770887498694132412517591287499451474870567414395877643616755370484931441040350322492811204617180810263194553579994774387350870818675326851481809365746112291133064184100847020088060556412543547830824463398479711669769087286742059188886813511021278470514317951231348710105233973164126967352337525789892407614891693442865874288686385246868693569628240418299995453305517447559011842415007565114099634579399003616515498234305079485917173320867921686132722020173893675946078564443032459694733062216381650832406707920309584739741508460209149058397828940607739054804095689696871153699593853691831346881682707058885460232374457713298389949465216980578434964604353590437834374931075362416399900952788707276939238379604078322123206229452915900351932547243195058582880914234794645052938370422010631054491711313604964493412621175997568710570660553081589359901213872374163178708002109572935699540956083961629501273469379555651106990824762477170371589429090441325632403773464770196050694045558126439019237510401318967034010365088942265067610987156219364992035501728392332891821191105582714319406870193431565728041388921205106953918553020015392339800987050711051420469865296570293728305360366204301235639529479418574307861919409141744837818857096861764432731907793153675279351755100360718632961221736101961068152870572908434040648516970335705409311773670886607641973750616283990487513092409970435825595045011120827187410855045612893686228490945134786168990176866551020718332936537587414578616885247137366282283557023997124770174520002922139670195983651667029219001248444109133500833013479685709580461949167682146680357916812524852566410521931117758586222310238355138264021146675806858905875488302209770205423865280903480017510174654981453502640950866180496122666774904890199789893121513209234918228606182360511816788695979405495847980692805419653395425072246589172370779825098972277179539502461560988361518131288349097926709508381873664341337562468027632465240096248732996071744345291606893493446069363520981605890333124886008222074868632729570587482408724483942606559078535250910782647115630787164355390838517963921881450990010188746122610783016873646692252335420788072579975777690377638164857511508472399079569892906226313073215514247313655949188491803927752411310104187930675341127714139009606311631179246007023606829287669622750051143980807466853634193133331983909426437384792882986136914714153782984874903668298988547551030455753222441712715600825021527579000924742924931581436243237943657507963860221366205495754565091491094225905713101598659116421813218398658937526947357005086475965936258365754360908785315872250804574259541095457444254711872169819085552496240742578885305639151342051482981028018367081085989419716187326506536496294088150912407969864196223670255752256605091268150834631082274554383278115550592295672763638863875951958071355028437175420763597911869003072526283791051182483829188661246186568698341081045541273672571846585821744840458402637784851558416810066211068372819580610577966821812993535410745187015431613071874127260604474933200913184950308148733623346264773508140232105623908080347253306265138089894803304212844434535537948939995516019320355915026436192504231809944471028225135230199704705078363395275962656670074278965472073676708645566808591618922067646443004500584853079582110248814112924384683067504377058642732830926214601311729149203296518558019968835317016195967995557276966213428775656241793126039727316790825340042926955531511395880833899224223813754543405772112782808948635275450601550301235087320840085236484532035914430467512535475652304593676157018392679183153293094066092851843141455395864899951924345931816765691898705368564101730913769975770512395757962904677871377207932595426729598400024075227423211278979319061350578822764032840521319535586383045819555268580077605413732780520453551312184690265675238154068828505049726983529654011387439931652111690555138587651632960328596113070735354549180012117272262373146039381403649427293041295772462753252596060680627579603697951871339446930906316446351083136085065347856194340390542001698875347547648218856455278198830444205678595665419992473885730154060560718910137468116075944955485034163596792717062815865773040070199828615569401139376360941530961903045558454711204209307065761068248268376598613263856551773818092142171038865271008539965809797575948115176275705131800646217555269927225152877069105874770235699364577989324146264345912252402963966609867113669142291521636973755159061433365815861788380897078303955084169492672994168611883768868883054946916067257916493688016622817838608570540647579069957047812057196498642543694974834413331066024259651502435051454825194169930195808242972987597405864070261211338075018875808826306420337459410632424039036296470605109094072863106207299617426430778179025453145509029187696466224443866258720904321371669283362414022181401094519614597058879278081056719143022622687278870066812596292441914312173871358036392116950256835981480371140112313683405236783320258965694854358412810326826047474660997183207952101682250735973801777228997732033525639920838504238466395610092970068966988662288922161665660886704738339613849759409892968116408910843428781578331642997405456519193255414129340216351839113637953754599306645025046747083049231352040376095534234555662008110375004632481856594948383646976584486403533824856349957283778961767095295646577967876166183957022751835008913922029185720266127085476755798274929272025548550160071763688730439326422194179363362269175217241830816310754900175923034352673969719110606022497086276284324064266195201792231096768207986996184100964813708275200857230687349976194404611747491094131525127096758071887308618345704403510178888129291121113335026741789593078446069141530752507459161171729389440543890256480323463101827051192055445760216151619952237390381665784311544858163279737371872523031256132741629883416127836751463830109977632002559201489698702932988002724475078530503465625832921340535529038458937828211073245215482204635620338700476572596610771413325232641674010565359369251394008576177328144067822537267721554066013089938757626312391336948666550055289230995933112504892534602068907755103563025533405763000296818393726579473293884611538487524577786753069084792003058067711555450666029346740384098790140419719404457216362286351484600360946352054894172209129835340580786794329468098123570773882906581012743858334017897670841766828561809024392991040888510620576776446668720681336304896256289399767635918752694991462890694176696116849004527333841169333267660560241411039395782666821706982610932207309426670928775569138660486980365335440948707415990022406604277946152986679375213857666681315753588508453932703705553517644756491779270714610322962660840157489019699027681950378610088377303735386346193108831213898670575353674380527410082933370179874133107980981901253447205824183390034693572624364676053370852411329455846722385501134777616041385027998301630214510804546284546045747902288999371676467284970928322721626946550074019982540154131348618080313673169208104419098197873953406666079171540747844928321891669791558110449103004679397965838438222916943772304203164832109209397783294333713620972192200856769058974555713252728036899165089657576467171087781146993555944256014422109156653335883781717132421534950188417815189305039476719984581659750841079805711620057351321700083241252608875885134060916316281838670144801648328371590389804927036774929034868188121575865684771933163017475065443231442492233830283048030491338528145247290038732332660750225008757994279507153722951180009046518723085276798806498269726115582373561362058780656163635217688297020976721943271669392756658106880939951440959908439387049550804678139866574500927438590166796579495558564635285414355762721313435789347198239047501673006273050278176553763894521893049228918180179582828668268073357218199307385540976036096279875812433912893618082894780507162516230744591917940163053166439419639326292240334709957253307518480152862344583542392626845537170190726957543218601887018101039659893479261622416635434368652306113484087963603163442230574036012142839071860960207576530729948481569293849090307651528082797011878788565731434505422527741526773043617534363698573545053143429914079247431870564312011170552042959505113023449974926662281022674631091395575703704451018121839572263465284090131805870008170167117967588198388783889323860716413077731883600711632467331214262025870767524287804220328883644202453054871364181127400400980515220248757781097010144714861818874667927389908969608418342743095124937271229071165108400997765275492676498398606481892100180065003136970598728772157812895833210106365909386820541623718057735722365016094502985802021894104354257200389115967466328864322828919475928522262336396249935807335712470142706458407209158869139470755768124687219049213811615861787311461922489620602854450143990138433984704519650419580179986168369894952114719870831754763317685587905566165644241249826119258460552678059733143505208176829251618498046633888807983839050968453297802938138367451012959314726618994096120387242662352862356858755149249224628051780536602159473903392654789721300643078362377479475412748680539469836454091440794233869445778779171738131228917976937332513314630531874147163050181022131339466889194552078596046531159766924051996888934220479185606337891464884609904865926538191346209997316719195224732011701387607665109805494599004496690640153532059956359169136289665275819434216964713068699526876792056130929964956229867167537263801978127043243810559884261925592795222151989530992323095635227395682057454304169867560195554567899786563635750624629770396270673660831773734091092423535483647292995432298193282891326467180058574083860816152341866613337227626690744718117025408199653036761324866668066362711506604886479654243879622781817572394311790265488127663678649547569196360667229369377563286663445037409950487587181313646607030227574469122307263163817921200427755627015790919283400160169953168532915209487280894820640549911111187662241847757962220744032626443480806231197022582829995039720301500472005625412819419443974931061146644899395712119702879782723665267142395973523802620222359438095487583150034870024096194113563823235033218547141879575022747713345641742995722258386234286333066361921086747531467962908139604509881215756290924918894997844034931158942417006290111164075943018088198027831617138113660718695187241512325566254343106479124964349874199835218481903447497872029668902173997025352149260070623149442872940041441350666584575237270618771976620914237611020135251165136811635260256625324473141229850747590847772761002902795907249309964194653316092923856111113473585822812919229021415294765469509302557606831759964140150568901947908212174024815007117685326455684176085464752490645859340497751269453271583153606093998830466276549980191320724143470342401756931088265238032679702771079200577970446512591522925479578314993108356577896452221383238237649773110038662696548471524953764744961382156911597217608344196100230047325117072011110800550033483774270027975355252428156178507532699093659264894532173598293278851839842959349862070299579491095201094219926155208265832952093198680163501334049819123845090859248938335803635884753634176147057958452522839484626946918188093232346969437178826324126951536551647658759549083370538933485402738193667140866888006213373158399869625381582515154018034059206993506288397301602752332334903485912441926637486768459223703410796173432494457270008669511811205207748702080353828232622643731000718792642349475966901677324991207450273897080033641177369650083701469271873202316935625506238536058908036467934613977227201649303113084295529645735590099470005925804950707238739524932355760383311870946628968392416350828933185022572458470074993539215009104754931338906078779812102481269392215041419985418439554780850464264791540739058032022037405514324529131566550135908676368955471707323454485491746042528941569634268334615935203901046878833959204756239892074036558659014702281893830179080753889733310042773280482158854974550150627201025374823816334924493182013368326787487035342742493462219939032650831384551359132836342711392755199131842698681780635437584443116096338645871603675778186227926957617568165854503394258187578127711645938135440235079518676310963342735208927611780059381589442248340276914313311665728315563495995989217584654602443320214640002129792014181891580185802924620627858472606038913452455869865811234699488034458381626523147778747953910708128315045835045497834033586623972237590088889220174711857215936983369264087380494146144616926115346298259443012794833115657196458606775721612076361257462506501741114162959668892199308177202037525778242354023759912651268765423283466710460111471277123890090486588112231119018938656169868104493145790807136412894175264483183896453078852857596579019411889216809987793863010652967343803174497604427523444517277538233335995089525586054619291835472967845875732583287280110052730596836802333631807201263231959292353772206251095899189088050085200384083048660590450431021545378289003115782415836397022603470979965606911217556788933027040070599143200209260983919810826369939708438890671683004415947194939744469414618861399427721812737026953200702353073643866755637145801928900923870806411242354743651230653069796130811827102790671634634950668455778085137894955051229285297060851594729463268601437311838922032607470813838122129384810845155390309685531267948055303673883082831793684139274644371835725897994192099450509017223944508607891097903446326660576351127553740832574488210792029214518555145148610776199717622526185446669453049592228343008369851190240823540453020625561953072538266052580301675844670005689223651175150112674927078049673991201281803965579977451400656256934810229112300024226367620918097683831641969949450837815270978612689821210352851686286869007528597879648301596652024966112209599490082319491017067304929088279970165678382135733150948577354382760453573643016827551050244557163424713715338517529143042384902741448720642462809592551700437977575816456207305130276179486070531496979402522596222006303230123855786802720507744866539952802977231025446610737937363865041500511172090660812727394402764588245253447762766956068989707228003241480439239040484361261455072468522273016430067389804544002631492607750143198558501966016502939991523366807323492883261999545400427454073468142548374821476368871936767567780047525096204929009515592912788549081355667570746169901169567500743989725320973424990604266917946288712007997315129979100978192267757196499246111047194475892300809988741589848625308727501804982243690906338066904393632309160415352176004308481300465572563025829796392523021028678057677142132952053670493508149130572733476018140257286912290460547377863848286787645271437604687489462773054847663092573834534653471339223802234475228699774010358877088441913630542358632185985937051945156585820925545867727467393756191834324828431414886409500873593543029819290381972079216620687872973928769699856102805353547662880132378612965859944515672526224885213146699891819108027536339931496623283053949299517709250386266857836164221780840955937133200776299243298232510233981829247132039471871202493509052051771583252253212599792572737670072192014650126307399293347219460758276481987659957146940676677732034953980126850824698563459029943097348348723599386255207501044187134602755674753251402720697550059954066547362177929080788323114034650571379766612553897442688104667251027426975079761462341651736715706154474456363990526147715281645804673649915206984136627007161762343458757944596230391441367203363112846648086094156918937135050901810190969685998609001468351325860234900614414926240462714965465821053724140882726900870017979279628543337834031484146237621368762977692767835013514205473456081886135815422065823852103066318891747397819801310423440704725857688165571769579377280374545763415712562801752488795128887676105665240778429164062146435090944129204658198310321750614464754924271100418966747887242378212613451665121126339824775839191841336328673488966734321921800901187767327756580991190545837314339514753636744103957455279835679102816741874485178020318731244470471919446925372636692889273305632067140179275053369331451501430723437172901996957409720600164190352378174674114476691815836078597016107955983643059482796832933315064199310899468931214256910395661646802405806051272328547161197327706808393506322305784809955562219181915292992201509359007829114180860669665949904138898813595151023893862265884056748587175429316886321130670767561328103813536811713616049192796598997293724320052923317879946021733336363660139208787526880555126016601749784634492046048664975758232405010640397105906818490424588961495205989730834676518479431541296066527554098232366398990899766286858613766855721236478969627927874819284867106018964305547994635536861633205772587147327799149014731937302960217681569087199027155997901448897021617254491296447684156158127898245043711587885696221246605705530220058172753664493064842497921639375407183429764841637211117275524828389488780181822575051678862286089410037426805297360443973496282788646830589653023209576423762428071068467173863946622135560547848528094436285822825750604109797485103004620312691881848008839956974842449170999322735208356707559952062071792553812658078175003013999183353846794897535922727125632710335805697229877261262446886391275159234400369097036815095115161961597093964591268229275587724489630008621033038891655686134688376055407171457834552744360770354522342525433958501849292516575979855165056623697008025589260081193273398849791242076888433230473428253953414402760675084228922390968799924149664106471045312044965422985127238275595547281236828588763714778947573609928508286643270109533946011418789392946483965765914792648193414950448203976120290062649388348030390501604954636721687671601338114493557227400999029301953249129734989894184984101927665497228752071767506338163908825819791737569868239756331333774655287557773474290590384870481322925450621653637941154639967143771590762328655660267163021833540640923656814240971284883394593656709135807056046234960154349336431796089347264841184736824714083063185056682285629599557236126284987062741755529700443952789637054383434999766758115632919021890555388462178189162775122766112890468893913753729228622709752904337584931409306956624359759431001527873739157414311510367161364160885968049438814437762568594709620597730736891278054800780594809455879210247756566365226985684738528389213270143308840075856974275540825785885518690333014200331405939272835928715716959228072554846965847126016928363958656154468435953982242736915190369305185171190396466750416753531391107336970243121825727792305717753496179427869661227596496122793080275718173995027386465361009007820798418529200286046848170046362486807198253123609333438317951981503784427897710059819006774917870329941438396873722368403804805002485103856787560866339140164175625136854159798368549178924533812358614324522246869688693575517349458093436762528635517482872655940771688145960548115251097350758764079443831346587860282766173962138667331452296490621349988405476858853887102095251418490938678912270012511243486271664174267550062315182125475335376239132296400623865265844915832592892158796454891374137993564209379174943941234121963297852466286631039642212647013774463250264632711618300547137618349308321690517268308284761643776725263246339387807306068141901266820163258242647883903471125174542260736681466774859035360064741085327392812853031035575965983028380106395395454425576223292577368445778690853039579397593725282615328690209552238673741890081790475662390424290452789959784181458267723369732536382276009472480046423322954686311110448886822434771949535777832937233136938506387250881852707127687711969640592767579239018435056380907023210274675337019976905942987564747189193036003394082396253370513064114413855237985500643053879854451716065169621083763195963699155387438145000990195476601246505903018512544737534224640090520326087712564374210984009500892626908963219693248608415896220629404232894656617957968841468525209554700926349619796084408569806406024995021606909624091126063421193337567460972339633810831437819235593765205380056848048170796528657793018936602799604616614967799181159649998540181454823307943565389117952364797787943421905740667561796040603881126086595088868577797426576721118093433432465884477788524213799516674672129741357314868672187197852182527726766798564345365902893551645348767170095777019587917084588964973538510394586596713167370882468752359771391875745076830391016015301989072159170497849464434068696579141200786092186410210649207819311680401388842531738255564368424988560147139799436115871095373600502334543671486450931254041421088502060516068187283397401216548277334891826029621424202422021393808557479215654645757711334249805391527519253971907987284087325549695090977844722906662994451211946711318895998655320927288492006984321973014644564561712363492751955586834197931766069586670378296103461257818361834256915744087241778978180699296993040682089587397429440662657388032200419082058045851072384296546890478247555602329051961478766667856349279076658429789529436541534165576471032634056445461663313410670285731222531954166274828313039189765830969182532881813741616972348668016604524178527982147046408992237979719777547922713093827682045509318498282151153919520826978224395535012324557830440989125114860226164123742013739924795156923767419354484438748721172467024380661939164593180822340897086274080843019191764158426466294618695178790450963741182377441138036545310263170346239112979321884297010299331190419148604864163277349324036991527267751524042482724709722500364445167546626106906676997172271693329023915860441257815612207757962794254378806820062226940223332387231757182289352679413978116118376955323137048050022319095734359683036882202014455599624996677776674705812455945876238745570091573888903887801805162376223949711003228874299680356327289086231958253885103461123624431014538273768953413374783814317963699744978398819462040717848749826859119068709259750701967049143687691362037622512167251586833120355297333452459608590926654041370236689238603078198581852435216955020126648987215418532750869086561858119759955430377854973053284294771134632768343192953129502141183493141830272671992973298263032626785745928573469779998870442995120010540928855496154604834290667778409947829695737007265650067430166636588700243433540763955075563991970622497441629350612522109352957083104472405250196844211763930755945920566942566027646867362180483292203665672836219459479296310821091500775093995762956010567257789628777575471484012589473316706908522616715314652321792873769846311846212582073088379144487566697438402911956745287423096235458410181638638091227337446064894403199295560297052654880172817163641925006532772057300661582227426665861527970371178203598321911800288261376573406334272812639588455791662822887310742965253030873431591029063097169777645032709059725280033891895739178883209310697109746473453264381562882257132142800036131227937345274417349266628347183229301485097762356883681648577517498793662354416754235909715045107740395861139154268764689389473716575774243605068301672634276546967963627221517081734831453672413490387889545641493344818215789412839177917581380135906951455999458255578190744893057598027735960406818317333692914529678069197570001337643563751340197161467798025800946335004465226804264185019866733212811323668443490769884840430855172217935591096918980845765615655034319265513202250418018286085459059809422809796917834475986725378502799856773346465223081003151426904132249165592930584325610182016965829883732509570876438891155776358677606621842469626123325668091585031776495679773309940211552113186812300831368331820044428027874300438586230948311269786776980935800908555522445987964905801379613768495241226496918488404967154491103013455415522467888180763417299562624998334712776554988917556129844338911423862875329746982841784593538299084223711589079627709815216143588330620127855442978026238284990341490287303624034552460606701282694841122479814933626092050007138761180500155780548437568665392097992895113243369868226368734139733571292263456556847499264789621030777951030124901260764398771130300979607348778978565270768535384819085895152335199651466173804240074136327582561364354297460232961929905067030709324481138004210330145240532337205950675865747459293001722003972070098132790430955566538942360246891187503441899533637572630113787921992478485272814758334279806098859359000184626545677602826076348211965404038372444253214248779696273338901977236171717509852139791545253540589122713743386851645838342883015388481765295448392087991155753000383237834918714117953875140726971281747234505716514566705060924523979166284857153353188116318620408246440323860522868757546947099262728084257942482150277295068678325832988001428701564308329225001441721365332831732803256993392545059707355295461245480516663354711109882958063581251348335698254964712475778913795653853050592315138067983688056107667865404378322959858003682684124330483736572165763873601949932752006065494895819108649875328735708413671010101676696354578053546693759158887248098072565309799572791800600306669227536625584694905415567690214138675603907089374940341577981516079635440656703778361970476614503025266956407721927810016207448227317937611106427538987478649228295905261515264041297513157180263968779213961920468655878898148771672476774041587490819528338453088038839941122783579327913093016421435864278219511529606084660650602730209322841142073145791599894798442828165406391914222951738141749673059432730252949014445741028347506647214033210132380216246525654242382219553654331225942193675866238348740126970470078881325963118456822098426117603557591168364610827919155055881028343025434355323179354664234403705748177732831526695940259260791379919202518747224288337992432150769522120918382546973787830268631556507978843673524798166475105135378203441092824127964795765430612924032946556340221062593575675543462561574383249745704180007523692590592064821487518528064498304246453756493556768437582840671700301812559734059249173003812621292251946479401310305878753379505390660228323433025309860304837988367117022816566668815146446571481362924064940867533519727239428999002096430344827909931378616993239970254965612165963089864846756641329816838464432124759800252038911538525962289800914988151157829711372290829728402768245915091343622343450884123437945110245774569150758819992980436984424129257841991005237440891645005978046087395347937560083454263051731376594293440519686391098502935143598563010477492914849728435409293045307055115187191474625966540903374011547664522257492980920164137352042349703281231870106850955667602418755406097414821606300004639771271443724379653815809809690205666483959848540429619653451706865839826668394687723121602588435262791875527836785513933534600131123381641842538039934114281637618794631730266426771527286103369699965907748281448634257496309619385681918403511466448430564214823203931693876653900123405028310119320953091278189770124943380023855460049759627879330848120053300749653892152175608601017403628606052788041689873048521542309897611085072420061055738050724512885578228647667152214291320431184346515910421092969893304188493781186130257684126505536487197129491549575236333159915184913960152944560455398023268764304595502440539871206312458031908591094600448511423554902359781949847955460982821460608556986894988634902012222074700417806297256603655237661148618634761231611502062615870833239534776385128370739057279098208158166232791613995232768531181116685150470182995893309371314867600313508580292481741905406077722396683807599885914732860132487520590813604997201933104841734740193832565288628588402865087171280090829500100624845594947219703369681358397988070191674671787732405533713632077555039852834651324212760420909462686127542780992452281016673233417864859390055357256860142051908440068002213355718453812930710868666249130784741959863564583941854530126260499588307202581617724360002874217808231942866868170937500372717027112210167876227778277417058178518643275984857562545854049757548212129897140904299866005595536582770120537051623110523871340123825548709536855192120055493189922286731328545654331655924753656493453363662186849274692692264190406660445951367621918560684411302877291506564527864057253702446207006437402487087270151917738346738543658637182841676594303377817950314334133229021312930796948237075907296930860587906039340356216721725694141304083995767577883379212719300088515455684017061614422050055526627997289053506749631307882914598875149399976736226203334566968854776393718218709333732974151604062536409115179419804377935476546240662837239274914120072126064206300789439931047863199900341488427255512838422323496927348991505355750557148731483857817896801025530664168875282523118516262727473762135935685800060656163649448149334134907525466714011739981272260320643522403074266510955542350662217100134061574999483387761091066895667452334233009596848928131163387451176579563048042279734945425605013019023275679392966189920162238077927524148398437449897404076475161664602935219730255435379545129606142810357396640475267516511139432191493034795928806043446735473655863080504198393412354697129479826226085037126686228876393536823415416171376075950330683181407315865629083507847636733629908389522092820510329817217453766897799151172026632323621199769273974457214997426033275925971311478302115587269850629753857065128946991675644787376854196487635435136117936541967451343760640446478062079308946648230609572404701394313020043883060997723421664782656050346950051865948413534575665182147286710792853455562075332812772646983760222305888957053496576277137784799124024846420780415295660890889362708661540933265452652973364706981517751022258617775791839717489064010608422566194633874177575183718315074357794973504159233982821155106808755114943417859853256762604739479201929732063870514512998511960107759170846818504890041550200433214282255638625875920005228010430076212248857594875645830198039051347079109291181016345152362232726996953545866952361778469591175756824809871456819538110173586348326462971745201301980813442915105688220044240800727252791141843097576547735233036477461813242390780268702302330731020337301805490205516771682360757516681415115768953182170906859081040116709932876873965749594640945096808978662579942511853945140309533036561833037633579778200175560262107354659234859608087991275399042453117337081250295792936746828691887066768558035546277528206921907862687362050338006919184367367993486881530343668331163504129369061471248997288790722608540919081551580226306002336211891227607276509570646331279776368193152954598274409843186029137236641373360130001944145934595310689243136007335994618977421842278181855117737570148502381437525101247978815186069007146499847080326375405524381119203722846916485094847147409395393086419730422578692534891521236433887225534513347473513664225405632654205631816201093788319089750779761622162130310915313973156336493295092916897100880715640233917139859634896858435811579359762458078217812012140971848630704712927700009012631892579502439500026083123573388714579766136103082880218300047393583787123549114387991765980790022291609312156078824907929653734022655892017462674736866419741856465446131482551361116698228115480771041741540973498567322262613395098926503708615259601844881337447044840722453031883717332570028964039560991426417526132667233847943848316282162772696087055826563000483755036585776971755868427096202260791044700094969360932046452555516064039659785706017555224250260479010573721745873059265762497532239741725681638109089715072358879139135844504453194036665875101994719343742490129519044342942603504457352514954475423049496753803638976666020457681826130285239651047986426068523289904556992866569001483567326525938864225451658631218094930371904270029171799033568736172922929021214138220753755818049132866336697569790404690506215487104947929094024127740908948475122292257368829829667467613428585262927305632320048963629819844971449697970810308411682041295913576489734035362118932540708288296183678653703790294156354362364661098770134980117913722563551784221052868833323253346177581870655130984970089025211975804206853374622951390094478065085283221902786158400512699596723019813763609570053002665244585078877380899321072746985722533748355104803919207947598339972292015944803719200786204975521979944960699164504698072627799721041936435552824690839647080896427526420397048894992514052019076680307719613670947298666939749430968528810575041103792844471714030972222877265744405874001602915315120796407539915933600581712213410638135482820854849600063931837562192538871454174413718972199159420615634161849756266526106423634448429882672268655448325181969067926815359367455751032707328207115272305743064633580955907550799859132739884122410028415285553878255325500557474752095190675829666054168022277778700012277201639244813732122155518483989147770185826538552233906287813604209955983505393044069975553723840504371730558124206844535090846689009443373325637771115774301171801170290586253204066894784119300803372496527700282677954889823746416043424672682887222017658715131687279005520892226236806473728935883128459517221051017796345298233713259740396323326927703770910048901164748508900574741710710088624686616111597082868516539005382179759003326774688312225817937901031723784662144725475902411489224099231915270228250774708693050233667437023580469372344323004433490726218742088577477890751870509628091951894172067048442852316978778727265577535181372987633965599065058194483666838685130703559689280932145177995063785028244834328436072974923168879202920073561427853507534316306330360601495232124930226577034640532088535818634552847600034335900911791438441900990738250627329802850219832384501173275571993513868025080203657221430757489283777719945200090125834841046152290027081405591153242722996239991426077516550320712678262386421019160985754520332889021866218322856294925516303303074863875180049384341530139473584352714374998381471070420693222493587197685459676070940456418912829357753528205268273463219535987465401894559845534151440242256140300168005571403004051000976860164528794374026881141762489632947634599852426799209962813390756579922513869711113227264177487082561282560826462779612380997732260989545414115563913066983584223583369102847223342996821259136717195210312189214122705577253136902982409864956488515397723765297948526459555039662900258585850096193083464911112303527846349335552216153903117345563337401191430540106594133343082383397127155627051528849477007329716494332701643693061579917977310099582598609135787090217326944544022868148065957282948916870989072276506895882304855053348103056119491516588003295443347289040863558295450418139870615409030823408989716994265057141754584245596680683552251255192180819820425445309407436198046680273007116478083707596180499868543997568522784549911415442042191302435553950159950627746092023546334434841987142982072805271449310986691834586738347488355304344484117238054532702851430987254208194423618172400128884753274037338817009478793623949221628609024793127557159282205896796461820175733994442332480206650115413965848878521711413559005185306102797967326062820760064157479042642031575030574976834203084053093349537778033702708586540226128059834349773930814945213917588684769175467679382508952168997811918097473900184271456243946469404324410802821657410401506372679572576262657837590956752768159554189925152494964511078901489186248494648383923737945007286571600163881840293711475550199578684607070570759677081016814619576750976082347898717146387999658469230920618212726206356443681815917806160874950137497697616943453558537515318941266092909825945333485137577022085045452061645925034362498563041429354946027111442081021241820441535659428632121689795467343738160951456158877257224625137428071430852254567661598769277119660576117471789401025051908565398585465659323380794551143479837173251697158612411022583602157157927272572970922192448387419147655257370985732042192006805525753280086241408341565155117220941939671416184161808983542681887629947671030023554508648619560241621842027104842138801040677827201804733363193996858870357482344550384960745337224729076746467276663182556342932140815473889229058185863014995595211722519208844811726260571808138513334449485709779486990518245913059299036140954430703045437969952843630586764290613475958057774050522494129171469003628465939947285600279027959238847276083864960334004041167135836924490628922721592962053241304651619434075523283157266681205671291862671335649289138536320541140221653092349015152964545139438754322238826478869103293323945731736219389896464459786689645395716179410230570734625523473538509600641672894299011331564162020714385561191195855608084435093715229956935871995002232442207357471128957328405877260594067185478055172534925833640568464794282410800471435565249597962678705312629594884613921584780426736957365701921471255856642431121661799057282163241143236577522319636226296305466564574705854598112803931967680918888567203872056643996300547603577073839246479068784329413087833255712394201120562319585236844334672153295688231178319714516803030075940784353132305873284874029852997134839912739804839084132584759281301398026641691680603531894448227081862785502069189552290507467245123079550386427283840547208615689187866539931430351911148827088620044976507246310421394418722011390707049799916933637400159483071367010495880288320281897648513569477813439447825509909220231656727819230569014883914158862717440364537418580656757733938725912863234192408935695035279089864531758644017427954289874730914115954368004187276512543199936755940789512577381160569014342349176080812877748809634705681099508013838316740554426869256845064248119132995513059902587543403421498217749494448962134503702288306208850121045748322339960862660608089858693621317734106786497051562180080691587978193266501086617472336006975928903812632683789655047781702675598652047118001957682114802325212603613322926104362020650214526714296134649300625272036801925347626786614124962863769219009415302093158318580317816284165213617721253694634827171909881999770951244364422313433097179599663476743728983420078292647082132940608867318638307468063638557661793999228023242741882702131506152861146335815553015478668417044901892912667819480610722783694919600142829497702794368829248240707011155524560635753407456605170603635526479253427544958223887927900226105092916301742853493420626280941887126926322844083532791364590609577649984925236439497543697942399142409222483318541789411920171686941977702616910958100111327580253986969481705218595749344260534778896889899380454751071719044021298697428560406343023754946897213409522901592963814812774986490378268897170146764394803283295172392860904269769601022679221032935715545328053587880309506087692756883786647893880654389731027144816613792726550660541082339354592503205155737627043654281245808475899098041982700356970604182435528617666590896773915692075441351275687057782138447584381958683010795978140442293092178206164994660792120193405397692018770309776598386451731045837678105017201887887577082129323408308943934678239838878762135992571926135108577423282018621880036001654009973229489675079595329948394493618668498155788287407908841692636543999439808639510447166056781992512520929183882731809746183209720611144575054209490113252548562531248820596671182794091087294141528462659341284612841275796830683236087946991650526712969874704665589439445454470282674425225733154717514231201639018175387104248818780561441892957413085818309494670114202949372738238146272686609414297659683295140209528373250594116182510319776919121155386092821934597734251765500440560655494329131669494947407004272277033217441272942829256317118420260572315746125045735850259935421681516074926428745953068402504182792821434420831253833937837770996033053185544494376381395908315269204773211663401831767528606337320833077412032998139825417374453325480947341581678543481511693874025333419309620770713020259358497717618311470518265495409772113254317813132370411016763108223902405123278872288702130454100831463718318768775669949785257850429605895000930195895793771384861087076171741107487049178650452171098398606139325546535869771356199746568293337495585759665979546567241274927367503700653099983654369363278349752922539484104386068250687261046304061640693040928337924411166426375956714652989247733959974035065870505419750336154232792050196981289795839403434786290417974796215754007228838051395138936615297563521237141723097352572471322901665831654669821330296220935833325589534482994595747645918892614553253919718741647484496055290754699484334615999181262693622747980696228670159062605330010214373794631385451985621713951549303380895705612778038174390956297564307757202948422149750739582103637382065730903761185756449155089632819567257193293380787008342802365460570446800537383738094557970875152994446396684335532314285365620605587063470782107574020182012821465631830685502239416559930505688802310358337348794501153455303838638904376649514236594319107500308025658322955236163286279876876656074104561307450740573288228338910547262167854721970052736252215153138416407405255754974476299739465304484566601607684173635838005108759579490845054702401738932339707725417754918671726664453639266154668591745940829360749646384013359484490323529695661186239058701275094101953692937332262103675989896172787001489701039224106781550018086811888148612212358428727222059409207230710807330410018745231399317367640960312752248137493889299942251759164669327581964732501402484795079002897923948897639358361026520511908841250613011116555141921116798165296089116986283901683518567940322041498492230450088842036264831654176738149955994374184524910574038270043961230821367730264492101573150821976799189920052915378752048713754716460942562554479017436238921571028978236174278049421383162261198781523175474007071603050691034259262986908365312713191754985359196410321989148297140072916354528738568005867260848152886069982629914381881072083305647587080175639848113333570059536871548191452826521977419627647557373312645710460285326756094872908827591126565878774793378869260485574772441309220229792645849604493726685298851268810084924777780727986816835176672367161403962331405332314499708090669232142644131960927389398472224780514973421836072013248288210557531376487699412643685685504413033232031354913307441717118777883213229507397375439437088742565869113237794961925125060495912325347384804402779350468410174245907032593885040484165915704493790355351541920468454865869566481511072566728816127716193984882360284049805829329303987430120664690886639601346309025324860772738333914091403014106747799193865741460868455479482485671310337169777951095143580401293114211055499656090493366043938566954056218876395206010878962551710571175640372494266572839628714888618275191108881432400553017610360557627793476296508829681332829431040138338279195485170137846745879041723477969448890447972109742126865694759689500578760902078202048977624012049207974936692616561194723559327002389688373981594479462245407520148728942606674996340576366849747562075785288981688293335237924349397440978456440915902013848993409935928901449691839251476617729784337897079160684055126165741081897186042988913158237606384301359363695070628018579065689171541130941812762532169266505200047158554600976311764935603150825272145346029408206409132915007461831675513350884925191145705143501294186254212841037012618553222530628740293713946273360789012414596595677593187560663202888061821894093276987193646866003204547194116834091526558841376029733087124144268742344829721823780405137103131423796129709664837145765876059517025718759801621601288059254390227749716061028129057578012231548135722794314936951865995565087807639311281049001954983895922997685950192342621432051145475316876878332600381600443600330647760766762592815419929735624915902050003083295928520737181234772665193494738044393514981123907090716101615499575015637610999000393688394761343393028444215234768388434187165939357056611250969023196744122069944790842156292729201964174737067114103323284562575563318782947809149613695855693634958730629891832473756183174209984637229563868872253648371928722343460915665799178892647615514117277237774629620359569900400306586713286777233167519180503537250420994244934166248937832338091199488576496644529379105239496217253438246426180961889591335268873680631574498276855756718248614751616604802330938091886836131212115667351079147637032508433538818935278013857009025915610893492459511950097130480915121357437212935526675648226695586498976392080579982385933041121378298364292704681463996821924818310310609959817588927094446844003763088401311520516588181673200241386568596379000891129495150936584625469090394571801486935133571708048634500664657441900398096179350542084344206740559679988768042314175490371978403461410529198037711851383912028477202913209404628008277109446539821340795547967396551205796682921995704948502217504888975831283956710366695565625295855145395223933420885756160187906394645053421124828710911122827168020973310404030463101738951638333337145230742019628968206776881015055349836561234818104173977581044007864686980750560769854598907099966589463585369135342867061942580781335920559685257534667028338840365983220233644592929421786423466871420179424822356004872262210410435519161668142609130109031126857531465429370487162198153218651432989738227995830870028579536566622510578081814845784650015803184375870555201010774974562539028078268324522437777927799515446532956778665998253976835637945380180446111833142076767813142459559368993711413922286779713550475235379293342055264279578670079711473649781410815851993397931611164809631894526125350273009886050729360295528995546246755826998357547993506525173224644552391515386628656277727483854640511748525797955798696156879784566899837493154812542133721805873949119391637905542720342483589064483583039368162874422728449103249940286732143314047893127952460848242657639441699623357113492755795453548726364079278572860343412898968625406357427721463189860298694087993841520011736779684080863511540673636961044984436802056827503867617403294069570627277395418100872722968717741008918635717024778911383956963890942857150495539212076329215243712597635110011320230374204453399512061402261356963657786610981719379051068865719329713887652736953874679550590089871823790343053895942840624717238877949367094592433980210463983630098648520828343504615780092033723118497893743719741475391832968178146514679430976916340685182859298425834544160439365994398360910741826413343795776523074943165734533008682554194056741671784329231376678034666037250024983334191161424696627226444022525052661863481292984708351157168409697233986993343457718472266324484443728324233173710502335837412665607981765001652356140632068157810567075282178005457394086428987112719702720252573662455856912236685873075619868829628308022073077686210391661179896320434330812819497473669378162462783112410503492497728471347368091721806648103942744743583400009262149021540658441653484155677746813220140087789185761568165771941226507694291141464276601285908980461148449224574592604243228919954228888018571953130548879944397672579798298269333854090468362160208039654843657142045231607792050327290618628705599299497841641415252351370229969309342908160221540883937822256626112988385985273459182162019657524666567879370892395258311204868992774213980790926180869122469070157488523387982644113761293885767710550672459420342285559390041303878819652116771185291965617385808140577742965520511365944362898164267048453886402303403239001678188969679628241932475646661489049189640844888600860839920691529326436559401243593269031005145479250175504718330202557527152851604857144118873501637820905255435729385152664588671768376491349932762376028705104196640305556746678319431978671002512304777574956667294692157447139365239516137315772617612972433349051525205804086883435583697250980457937074163909590766649642516871134538178514610873043455123451094068852473265279514368623636697072361928003776693437463355775632989607275589656767783331435163396242836032989276249823654521267057380041488965557137349724237662915384358171555067298233132025522734412182422781666849198122748141106530284261161833200387523362941618136279621560097447855795718146256169440042072532193925830295216235933442801349645331215663902007984256733042517718691151546616713353391266152515211299183444499783792305722265946808057556140940884433324896211108015677017595122953740044113023180984776144543094863583454838727296468363616574321351770978904697582696669001522737526735856580346433608408251762267820396166239035997588704828207215911639181538415933374582106415196157033196130668928926256966269235180121911608712940475062406397518509801983188297696042979059020202072409757916647668837967376411527932204720459479693711871426304303321614235930169802361058853239571591343794372527806294612277414710323231573089448140979151552807619771263220036529288978184589054028193979735238053408943416927615678886326719630535915826586123066588815053599725645599629074287335201134035075356688663960537590443539647619563974556266189343263442375755424180623885075316349847409178049685683160755822072837561902824533432245740738149172981133747900394430178990651628565408735381758480643205917093769087004754568566897196812439022648505434228071377416838028528225528939638623672528930911280665489537868724909586970632019343542258310283780029798482850074971405308421532600130027808732688731333988083615884660338662037364171553256197633546110295136376955306783630395912314771291338965328787815190527400835821695312323199562571128024660992569344146379497064289842803533564159316037804077459973148452761531723034364486393125829587554961809740881674322948306739933899002812745795312712620682499428032454986324920479056399535360415383548698163849751739621429000294687463256141530024723709028807241103015544961799570794292295857719155099129768521584341098948587013314100123290412450631329357145750483406282958637845806655743083005801881474222348606629795737250584922548311175280132105926783572441833336270398677659648647696347956513714777762737370548233850454243552282600121436294544979174761962646417212892332684484440334457343474332034820260746450081244358586527483491707943480209712297646848937608784948295077746047363902703345220286960995259671624093674707007727809091287764704723300286899837733040619667381553555668416871684128899056743270333676096007923184984963618089490450137402666238767848549674281819899371224268136623399475806495748947927223305006763652896417081298752540606820918404157648940736189178880506278316635008993187385063468190177119596789450373774859594697751457014015655886643020992807895886512440916819637073033103219389926967674086037469446768267301422927297059483854022299029193355174439925751107947055504960285827852204875473808166908660113962751507396860603806987307068718656226778238290242006533270179237343523546135108369697366057391903649515838169223480146227745775132035065452303067335878036671786404597054557965586148020470896277692940770053794014413918598365504224470453125707872506093442583167137948849201252795370527003436787209151088385532268126414157558289349087455901291858040075962996624513239735172882213729823889364411769372393901753847810681492191315256008707428720178167091511315996974940911275279853609184306342354080870918472485875667710368343693374773101506262729510211360648986698216357903314514091796874682408557851389408093123553172413836309602504501188403571698846839975803264234612132809923652499685383855020629036214865044158460282826007696910105678900787136855512050467935429693385212618386884058723768295082479524055625014542737010765346314024844192776056703800326995254297751212066095189990054764810377652135253018382676181850734564635135668366752454435041145704128614297131633293118859323387588518273675830886090711023841656288014890124654958226592352023532823992954942446976000628681683983690787859744217652659209423511796079879098312678900238367131061760795604972505040210389648784949919236678032816655017766243023006393606470671077781857477020439537904779745057261009569923628284531848166836290575566995965275527786184869953929857140185231002007532381015622653086047599661217196342316035090324248506927621574510982420440368806779301970087219325399083916622735462844803991210565867928005228908948276002517557406428754619951506811628530363316417865841893224182848999105894089204640288950989375557447841919141220764894003075910472520703561430314008301623261756993363485962955900938732299458989969963784567247806844399812827811360254268638795230402585775910063368866809006590884429229005238285017410010318990526449802702252706253494725240376064514513397909024768824771152503871892850210256194283742225656762644541481463118443304819139656059424439608488163978941720054042049617219231164234074521897962390897961118419936965180025814976284747434124178424418843481503052815180037926917513499534725936964451051900757419710451160792358333166928966866658226324151776478821183895463702489894981685807233973009540995810633769694080452375874893819008348140635590324908792175988507225162828395791255696198304283544865130744601436318924974039977403180029676866992438788160318560121257549178237350422387515868533379719035187700118476456394836295384455744593217632968823876963678263833826266129152078633718544152434798431840977804963720356047576895553743455975840604433419311698334852133468673454033468843391858631233891498662878192244125351623281064990563030620284884428804141412766399686581844600159530666985288640555280207742259929537029778374560140695997125801678910713283082804840267707564694229719597758755347464178186898616406341048325847302319238871134589760150671952309373985986363017253689713352070745924908648925587083172321028987013777699345855680155476423351919697750979682077750898735469438822521011026721866645637521414467812147420617310132562101131330237969273046616076315151796652213756599816175255775329986513900580906862386307888087869397755226049952391687630139401080260100293254500096930577433590044186504141369527345233335677823820727745589181840100196376492575762944068505469818815320137340088917916363102771187391436976935613106005345363710826338163983184412300781570670947056412864193494108663994927535996089012426729874418786210608638650557886120312364841953959701291845915423882833799407092741689795500472079590031069879595115146365057622745390001140824539211470436406289487432568480380092586712982697335218537699369736304703438667551198179876929374308086898032036679512036593909191372786192274955007367944666558019112048735685373336953802603333742302637160700199542689707503361606203560184366359205165595675886072897881294180740316361087453003431903998128138703766414073612065099283035773056575374118455007729493647686034306084724735716041303341875153712754850710616490517476981275738691068603264175724914369990817183588134083156155994225966360641980264288945262259911006699855436996791023230207238204600992354218021186637264671175398246551660504248251315541435657819438840818909095376760284889961718747943367953749408034563028917241081677352264498706372134236763298154540659020701170734780411093207243405928649336323189912658466794530275111972003012668921616381636504054422973113954713391747885548968712439222891740370874494578091137122507451526477267839771124632704146977950906711294311008506276831468477206765040096826277890315824269781431602452437110851154993535955703862848229089185716158473841152578244442186455785085042905842704373881389925868292406478069052079855995307283331819200235209101037023523419898618852436318088612926942368066891585146431344153037574495832134554880218067776127266861474808891079060831399825048229251481163739421012260827379388132365219924292371407386018490337547050548615669128833342837744594171945263453538025578241803276017185954016131775315023177247901166838656287467315417204071759215987903793320859068734455772216764266056057954242309958386409456491091241787768300016715211413953297530212788052935335141379658350197310259009466807514308913852756179513326618815042071843171817298293427625719520676203759877905767890626742682917351554593632351548212060519219321103606981520543091722811188420337718863913924715048646281457468077652775326364262693690460192524280733810090246125478421815338385262715286015409595252861383315470388729210272643653510801075016580535778887037039979127872613712164768582903024757559463782712292713863472852259304494871683400784761861090698422247131359134233996505773874353869050767357126802346927771142827889705664586566481444928911319885221972950267536175237033332604291327643307838308253892892079232682395033541019706534012786657460203487792346808922436073071522398088733349550487784275206492970563389567336623766316761640879982636769988450299809795541528114591554908446323132919422548220804777724274186944890070070437093479307898898258135688892840299581503481411416676493890768790256369849224027137893793257834343485257899124447166524052659707010768890850328114927872704792956169910019808402984394381887579156359779172831225132599566061023308239487386576027232056192452615012672979206626736885035327768318673005445763280857837200124825354859619810787680289019899966765530803792555667875571273495646032225414386775402136747108033305847537292338064732063970374139883973903899582930350146338702125176681528546833227401314533616566807098931662117861407045450698111523471616472918335803368278865513317571871673900210512844909817419296899163946115208908843675577173446870977932332278026797047023975967067807853666451745681395702385192374602457182572188552151692158952175549146933067349092141710314918552567601075089438119916094826879475597903819435267307409815360807016249254727110973042739559219331404564952831260405036504113419560727563450491053750541394665654490436557170589433635853570636796717827044734788600358922015709891905663465229959402989714105454338795665594237397709124878059793521443558510753930853818474490807139488505042197646475527332742691177214224723278529664816025775704924503152621337743522732227471679699964884031812862618984223420051089544755724756002947473677789636358170207591376456696920720396518795717793846718002640081297360653007919363030014872662562166203535553239082659400326725667655000306834930725145319043244994099177348021441869160158044679037178152393312196677267927016149533097998616345395287166367061742529986530035916605387678521879640683005502401668944024049690687682933615200525367774574031578108295066538335264992294187446285624079323536146195941106635940160938503564196734882708213031924250113130040961742124567934064314751927535335023254078571481924521600921156789426582484214250402773032433636521447411384041785223246702429813990246129443587985115442965117902658287333429458571816807192945424134930372321883423426420374057227662463603857863665892748541425369294285459973087063479774067956841253039736877853517028761777663533610015991111300598590968612080473868829763536494878194294136411746234939541467924250045526457099518583803738319807065756545605837576108850084526943120638281636126790005222139353176050416892563596237533179584705001150089453325564914205212187924672128072609094048880000104681422529416854581428705560793115718783556752120145813362431918867525957992554445940087089577633620826218896383308309865899000281361593057188534588450695474272323167843689284027795322712578253651803538417194229743728386593230474067535023855543259780790531075723924310127407465604094811950199186749298338976407964218164888622870515111132857485353801165344034265633294887109142734221630708632478842212518519452131402243210846702689766339900318816197030124368686882362124995191060742842640058551903880466472698573468956584073100288780600443497853524773027964928339316338605187478415342334633187953130409380089189557146420284076977140008546629270575277453230936416097714755761105877878613326469003332337568139473740428820919154640305386147391950808196677951200914469118584211303910818702809299531851071825946011915650922479959268634203668126817048087420503377581449077641474383487574921266398995738988725353874047333416651808862075533824462345832476200066770711832118192298556800003434168607876829656506644061117300569940812845773385560323269740447793862424994255074790891458754483606536661267077731805664648462027244380046375356444606318856064756110932087810077972297491350419272496283478695423642177576142735947998175501612467054048580820813816468389921966959413790424385332023995419146916497737851466718488279770708817061513209849111784683586678343084366619031704768477188324068703534644496198073712348654435180944782488020275718645910303680747091863683218960395601674248199735781936258426465518923359758642275274506621099577624386931804874905432754536993366771885340139659161620558560069053682560683155124086421683361233000221134760456156903518112618205945742414403972672566355415259343819867466637454339644915430359760608538986607760065622842004980622523247453134564363516012905314534523655276464500297575739043460414655960507590184177214121853201824105262673716446695904036152082829362444525612670754149989600471842820131306905455999855833770916594995085914483778932552909722235885854637816599090472476613089712732501752837726851669550076601620867991325609214293307416085999635888166416283383708463255465921460166275506907476166904565118855966060540204647976312092045337127342414349323821197287821418238076214492152255740109112091145888180000771103505649155981825597174095869328928611705321609534674285168525172753999190592940017526295668626379327887851631017679433879486408719919199120858187892328889397172904028313315435093752665512033334277644046643180535122439744125526851996358460884643834543164473004836695148458067847476539220121534556716517025440725202625896873933534846968914225046902593532804247840021290074582058042467295498983935471895456276949284160049845723567651810829350800989316955656477346277688478016542219532761164299503318807877478193725216146804226336507584069360433988920670791753764722657894091352665349617967822152760110708843028878871732601471855365148397472415832995432972692144413714024569859743275466284357599974491098958981075123829081438688595739494744229904193839851846169734832061537198483787552840602851789655801563553244036361429091712356052007970438773750479129947962999885261066703482682308373393217180897846177684009052087341273858169796441428424804590745356929956600372213774331255341162827674349383097512919056979128243410353290435958597870939728847868465295564903247281106183500131038480047350235374914983484887880949090143906624935859487292621372031950611362930055686781366094489737797695182184837897395831496742553301080532497965956035042408311675275302230931852128598738066096224223078670477596212820013002933807480687042483767370799617654886817302622992706110275810662157889454847209688784405562236865828573142679959398286358506398662667111875635897683747673668678145049285869174364963869774841675457717216645859576891834649009104973450432089183697376761061432265272775803362978388656421034534415216554936443490957807206515259391500776032897046147009144712212253594930866620903464956617599909845799581201580958895037522888714947715126163565628627453496191839848779448848175532531905089536891448117201804433347653075559754172372983209679199715954999517987267366218754988017259882744115486146957153940632832233232456236922219271215919747100443954549294408140024103268613721801712474306156640186884241436147883419152007080177499953382697273923569630173616988131582181334432802934125226094159103098977267060515846866422608665937373052714742451584955177986808911784896419736409095527461772099818830710141920152813178605462209203990413529483082927353188777515420840927190276342868732360431488244640187026721186564736221588817098138784527006673757363930579594325788968664202898710219913930105077316984660320391427173282746633688253496918167116236923407797413328329558038585563106501757225175569347923156601313002333366392392606993060575997654689311816695079759725718364534979514523997767820037630870537333245366646349540906340010200106651165609453935472819167355782960147004711674650694834316167445150165449920765006248517718860398536354346455002375437172011987487184641672708710167593977403668729332981307934056912765601143543321118994502069966057393072425548575833636160971920697241113746160035074646105536842631015797602287648521489941631282636878839599881105392533564578031185438451250745347832902639492589881238002607129250899847099753769610570926712916185341832808616411051997758076401613822803913171639916101562096043777774176867933190220987348566506737864020835620975563232947203997389131161521625311517137109338073250240030195852336764065644521101839887714697295517595437709203695624268062508231626238976054485790055826316957601402954854034646596205738011444755690409593001739636013923362165773672173105049910693614330271867890080410209181764474713789588862623043409557827431610245172912508050517609514892276810835833337221315467559510012457296106670738183589080076705275286001666243377701461900095414191107537054320611723165728268816044702117287097079819931764086158613754292277182054218075904065815802389877626080844429423631695391066283584082510179391061729042499828369265373936234780486143644646859568352662992585929486084684089420755589593325889043033921700195576745950467610004161330364866810259157845869015210524998256088277940512290070860606049529828583258140690425667311908322796945458689593350338234182746894915382779288496078228499731975657143326100438645754052809970367189678399612147473257517288815493055722369760602064750425153426348105601830979047963261137707564819742962653335536336435309340618462004297431759163813886270826600200565563506992275944727769462238804507990827108336465244715247239367253400833785476514898278134720941434584062343194806362211036367214223784432016627194864384611835576956050551788405607011431872035655068551385304172876605368094849120014092373225641712920287848142367564004050811177424429394572246483538349965411416881105137037253623555315167519249045124706548471793412250417110995372486416953489446624700618526813985535893280471991799624543887535879734167476225658412972054161104515177248779438757547001456074599635414449206593479773669434397288073354303559599850099573188952587707870435508460984259768568513747123694984625685801935479785995992860529142885131881413793999563167570925859984636761250618946176064537698937921308037954329623469596021643098688832416578159134909952641420212124290381128741778540004083157853723724766483433629991318236739611566404817409644720076425414062881751412050976605952225073904532448112455452522306860866465408536681398958067282847056225949809242213751630343542131295386951841395754524300734381953630559603422927468243615148774736760592225221166990193272671316597908482750186256527856441860809428412439906947206458480237180862115540638150530313316984350568042255514966625093155250827796734186188353193080107937225676368202942615011478234024976106070990315554935048239816615573538128029716150646514463721074743701861134967427799684520321854953932386508894796569593048308569617585538334668826517280283029732506643683200266309314227326128973952610477472481225150692760086070440689828079813977138170628755378526718608108976861015744692541028204350682942735257367039964895801652918559041033041796548706545111109211673232832984258191126051121975432517352738448797177975776110561345910615836260620901768756214019998341537796104853031840069358413836417651361353318456231875123006007533708334925438742982032576052336636347055144297105718406688339876245244187571723596358870636397355911093212122438647849733623819129934861612496253594275719371278851158132119309913971601084730138294527687267778905150628654469430744924271415074773426030313283045006325540999294525438226459800881492409781051630295367445581827213820567993724912162133924457968301676405464807391873703654608642335765729697537807978980831337552107988975870383981116019029626194418918858655913650079873693950663439659527530645933819152300775804133113334568582031015506096701971210561743197792925140774965563562874723423835008972904521242200905846103931276294663563257986658294687666442535743868823390119157858020904662276038328908386538818658080754621979670121242712310927798210252633158837358646070216057370896638407709428574888933476641621764815600276577175529882152647901271328636766696225424274883782012350165976281295297037558222115025439209300907101855563463884512148542330440464117338015670928700213663050986146643994949349317301199672978095696678170696646180434447316047800239189140682141667438713131708792167833307810651615351508341315230565743210312121825432686486914702522440526830237122748676159285204150332487581410697855991016974518959135976524588227589354539331043850759820860817746023382345703434287816106199182554222709745250882012226226300444682208752291766008803097449368464913949165955115934582967945441297720942950637770451668034042665170975072681869909818806899944119844107567617597577923184872085305847366296353682250175328460610281257698584577669683457080732207896274863664091801148697335515719619107508871366252230090350374795568328830701562602703555092813666020123442863317904649405012277695600488181208267590449880257453379584629683070925315084162837357470346608970058224069784257304453290011520926124218249254688051209987753183093033256515577095586501515301651164377771125526787257528605835541059127086231450732368594759855101329084620895631257766709819610673623784505338284728393197962194092025596645308304957566973149842289135406645313321473465355291726699358387655088709213342313533551569433380957273729338066238062144638765406784192137113286254482861497912404818111260898116506713391424524693633010925153518153819813176656900878981484691506911858132321042301839929671591805844096052899979332350062422278755512752839715973021067166747757755242295900457500555497409137779327611789121425596904426646849859120981831861147945667288771041312829759067689148135764646925214913505904318696058532840636807422523730111224626201754858768092142801062072861670849441602836729541516973738064891004307326993771480120931976438123002910451906212666874581020348372267756648866156425423012022475604022185813204306596529560553199078409296632155184162117459689985874978651627104309305112144113328284067989735154553502057289294699931295736931059736355942476960332371815314581633483519382717607381788119528267058028125026158849089053969817487224184284050893134613443423527141330782373810888464449894693785334445406900152620881831142344426756630118390674204030314634999353831622685407207672517986780662066342024807054706117042255927383699679844879957914395747140872072130350983478866770177148610533197041116093402659617701960135901870041888207644681242198291380051104830279196918128652496683237936975919811203144936417073049083343756188654014320480632506090194546664284112729501639498182357378670593234344009290898240947100755527514389607737187099668778460723870171125937716397615784427460899782453181723295000793430876717105106219265729120339990056038803726269691814001684867670224655545569804046394217550892051190695091863693117868182058889035869318705029175197776046561461041146125835129177237704758502769098679996054381158713105303298336706432226006550227803513271984276944794349458283546417362311001264343793032563865540313468728860538156148301537595027665313267487942667610176043349997228262173025156228849620774975868702275229316737826830383898629212814484299022555484180181943511705852515970701715346472449543324684836112612183824712111302858726966379634048963241446161987003352805101842803793205920616463184056649942720962762695543407275241036710363749265329078354514343578188976186467940194883341387553126928885764590621588776963659904241878208202961758503775595544923974439038867271278953423855634092294633277202728532512773959575339371375130588303938794487284352822020672597509055920307732996248322891072608460779998338191476176639362007748504926090403298177563177923642041920167625131291248984217909715543643889493555126846125855215050099260578019266114236778456836182397561145691919188173521667993254714896442040534320711823428807250655293109316090688893606858943180043400556944791237576268941048951022660114219606536754786471676978909509911329936755454997361341939331780710712088395668798641957024466299623654124977077445904239384568808411459099340311755035570785320489578269685069247721027187813141934735237261570694104206945570286318543472453799606939324210972034670309447880370020771972899732399053327173582366353097042165300293849473679902957042715054313487043860633265958635224506920344924096514805149828363895418295594749988321656018517895694685926690106378870851227978733696030091198431004420190564550248232703497712876498826730425903486881087442215774969580827570079167432040236557265838657763510822678079541669374761224679174318501200071774277464734547459070145216493920305858964613302160803536928868925794878130730562590527698499627892575326355158028896384949509251364745173723419895924819067210558747764258075782423888844034964485851341851592758032152160586234777824775399138858583589786822596114345992500565988139285732753941282259683207013255266827444692398013558097211652184831774301275358653796884724220323799583896284977866199777731594618268575339429158202518843736792073583240984777201613242713431134554244541333573414631913896783627904032561406411873376701062006123024495473243725296725956378856995883821795030335563393700573800162193376963821157599711204403313407128541217739797122124189028595931822142904563250942931314916137000218167718379240478255301065718349107013924429546553391172993847441157854354771917855971149917739082223390393466978001938025867437584822784622651579624233748397030960752397668053186607020753844561688719319950382104752844875536268375086245251274936306558059370079540878237352459628550234835304688300977211578845070833712787609399556074312745423752341672683445311670339921028926418336491671308121260616581508955996597073671399454599485532889606413980285570690238257744008280935212617719881121180877304067966940532041146499531274107104254754036169457849096595124830140585774121311419101239639296913376224952360422914172662968110475920577500843697787587352066147186540823024618645776008297235692556425239307363133237008663763493673527646770763464046220033120304084448619632052782679124411197176306367150371767863231336552935173231643374316558278171516095489071935508414120877761821691910185871137674448898651421625263578160523939475970331304557155821592920688793115424299446381965968647981801863229043543018195136067461342470595295483140716558777413609168374797728976151536139150141646101717409829213814982597685953457046972826031285628442099060517388898171247682100293047462491937008428173819241124146488094854798046794656821550941458128569089316637770202674925630729419529560098545240838433391526528350855530427622922677296992759960036505379341014131656568741714185381412328240303462914443676162202811136322299771683765930857641971398026637791816121452823553465676287964202176275898500495869902296898810835688902745549418091631321475606791445842247055541331285494657858079118987918165150758557660035593331194281136032635688039850105776979175214935391850204865134444589680768661216469064717874050519511336115508573367534369300281649088487798162927753567397688233940521538584778539795880778457772164207559398328607425179061961981149529850345079920882256172445947218800557592636409104883124218486730869947814355604936030456953273646354353688653315328358857061065381385198264955502850291082471424521836230110219526981091157852941189003868047427217769604427514895213429480585230812902140649629182962477337628458734087292528322442397410510166991885972133890122624777163814245567506477317932047280265780798469114518581984587583662603678769801466198052286412479604782511827478175919141306972415462474201756324951918595144658898395485618357674843968941304375022116764855029550057863414338296132369543879205792221585126441638912697999646203698620915385390324593130743817714957344620194831195274716176276357169053270356289633221943421515237937183789591225259334063201686604737658526503865411131346847097935220224114783131938942236131296239461686177676196309067998024870339231791613757356222932099375731824735490890686548707621737204496816438899603128551396947080291089886631687575145568528027036847316748971154613933934555110996053586237884174643636230536586315343903399304995128137178555318283778762424864381383872096200004973865892501003254731129371548084046045455345650124013185486175198804176965797086338474559554081555567639922369503437731372067612760489830675846960133063906275092304654795886233565063608370451001768903965040688072887980696812206261895210547792050107492243393288962686934368342142547965355743103815894473350947433499871053538482164093367988565535716750782838311079341445128474865330128746366023629436568789522764815978152776418436635271425921737533767146427002965857170497350153476740345626839099445010670592277208204423888381353513756873946133536071999326982419131066885707458416639312092153254067418060532198323086510867560504029756852972496377174455031966541953789857603641530253936986246047807064247317469858273504566838079659242124466325670099005593936642892525624332998106993514839383553755585033946519626989999171368848808015193366705652783411870639284987769033292106314156143106182634392390159373754242481317597852045888493689249621990272036088212168212985713411827503697072925637453626791562362570492158516443148072137218041726692610427071542426898715339613795828604457733703057872649197155705631969334325109233981023097802428610466844489543310741358628358127184515692816210245766689369439856085257359073373023248143004133015756410867973379758663653386765252272172580424406319306414494769238028487232713700560179576210486732389162301831405762964820309063735558695987294852313515411731123478420843589257863209002940816230445401655349152210816761453318568668608093213018602433786388144939479094513369105159354231704234146277967371999132829909551805165228446064360512808170637051246417984017259174923013406296079828082072174304573441549722989161765277927000785269764596734803205956605816000859621722684060730745085360987617763207971703531877133872242074745101741019913501012774476737780457283394402148492139096912654637025641385234085751062970909157528103442218266579963449741065626972251222964666494751202097057306663921291414469881622261146784874343696952037539167310978029463309219212802155004164419497452060897064165953426040863465410179929259670839306584701460081959610815547360133320707688109151402134322610572444082011902172608459094577208295374629742179458206585760938576085340847130872610720507856495769904773811826527904929000840094797024925601957456781388493843202456920295331267819417430782027296556553946897505961263357896026574825872266262375886178687418029130837359824611674402335720102636571760238255681319418154139621530861904330507612218130474232666520729549863498716252469689676358945333416809297826859635999390143920461995125725711777299759216736117073883486119378102985206401441260492667552548510386339078817224858665412299242848213191484769735731004201870304136940479143152941569158732549046804666389483313342688187108787276432676178569189314588181987062874966303326683160066902106917969655800526841038864707646061423664714033391038085116873963269289344334294443181932298656891767251001066147610430789587438253256379211187516388823221627581075185957888233044489056461918724475679444300658757678913361828481000110899046930852728118941612000725464354773332543564846847717539769584210510069313813747398910013767488422643490654743757520908576414014242796033534849993402828440248357982997356198650829322350829282213098558761770989700266732143485607655695976302265513396533384745190355398267437634477851965562330151234561607459788645644845924035757329583614651080685464325827553666787632693201009599498144285983566407454760664490154527044531895599216567585701494057663573508983479867321991928754158638693823005903426034502401105464818338376613727039610617047542851915777877203843453997095574752405723586863219239826440810427381289777985566399099667273457792263191171398965685375654714981434617324533899490711131756146100301305021059585245790611717301659139928490459578551554336913220604678106293255976629120065948944135048516118689716432367451299682413941891135640387022963200239346854125676857409485382746111311858188428269434483776734922557757996888451937103287477477610264538794476983311141269682032818485704938648005967244580528098009208283175785796318422934209223008766282141680217366597926925082632949653814436915129286193473248504559508543583472995859336422808855550604273327522328846872664187025305562617310790781657257975325051630956415731648389663230849706828014776899092924577974920010903330771888310894310583502951415000416185115747729382835832292621811956813853387940014772513167268980957574656416029330788629184404118595693358179811367467863563458687778830053804541312953896825387770427038018347616781897988419874925149053743380334600594804331429604141898812599508920156357065306630592144111383854526614507556606765485520069465310607330633602622766189416003623386089333599625864798722010087953205536141817521837096962845602262915232332412066810292244016515075982540457581882564783013307149691923767901301048011155150744032002139794410894254462978576533764096481535126869619642608525513926137974813304663476788918131653260103491017699020646592860851686111262854230193919074604927505427489266782267319258712455055771708032704535837882710985656823215264348380429493238277715502273199227982436328953491297908362989391279183694948885644007082633671605800321600890742861948111357028645081509606305832243958769656502470478067132890901534693111218931344403471018370324833149768763997049884053288653965357709144477394205886255393318255415264963531142677722715349048745673793588787485728170619772941078573470577031833285638661059782651757095564805625741731119265725995762462755858689687441310839748501484895535593303254381140215806437684346584720646871674965721075348817457363648852865733029025863930003269785748249728478039373589544601322628296269843045067346391576618407853585142836124426787192409958985967597541281338412242863712723730767384822393062878911171429410832769321383609151670129190300409074604983929705060605101052985721851717447233315172631874157258480171051495215618686732438964642038528551206243982506459255889794226099091516599042715795197459259210733231158447924484614282389441046987378996625271884884228633102888048144559380625905007021123350229562513457670227738263914167197003726486184467894476183704378032785749542685637300093882119065570743730440584171632158640086081289107893978495081911712298644507504792656367773758840238850969203009419493357207875748465414777596085632795247190136106908451723687660788889512635157452291348562559828753765557015606273624585298662266420204144980627218619303713756839884992096215201489691726664334158067663574456550562586626105263177327201778983873010960328254906131128689384464293251135233518681381989333352009059305327250616259298582360218291110935348632779220057800969326985116009810875818894972685353310009057898382974172283845126073525341165091692757768182768349953808924227946465180867466811411547559997420211613089874548130255376987070451615937472652041183152564247294479622986300157519918735379670137539226440559840628915202136443757332016227989589130804323473254684345980831276993547221219225042805928274576624874062863245393953049229310947044953294624820848109329570140401341214454638892449881337243276999896307419628264345746871885457126559126570585978383850089093830333282842031334151971797330468465071638561775491217511165120662123053683960073833804180934821261546418253249662326798349682677637464634694582385219991502467310008036741033725404266834882402016395733465941988061928664811851704746072270287131552326257789757269862101783736245691813257870091662344701175992383712587011620857180322039656897399393834414007729877585252290851727546919445691298100593041862108676002822186909826763254827543336688499069135926180190913571120342352935158749901329852589136662359241486102649173826758898521095942396601021105365075370991819388678571040392005337583493546126239554144043305800386476119111292421964785855057659011250086171885041905223836282055143080231546564746069451030629522631135474569098815591870872369059271987290639550569108732928496309016253397665003801722144338410665922564653720646208088837322492269314935383659955000699382094962576149058613817874977901085716260017312025958152977003155671283546923650881368237067876331756999232211012610677942459285204745296195440679301934431480637260028044855528588552589526281474827786569170947676027245117917832935971635490842123924346912495865675020484925949949414475195290975255486520798633079441913716311552917574070212179625341740562909258776717074559582576613596951592098603712169316861351419653373700070952567599178683868444232643572282967920994545032271512575750562720867019517567584289654222965879078385488270054977174192186958694967753190523696535577593879880875208761887518989704150838460659032279725266252167927740688400905959730825788827347542149226720598809136107469350845183526162853588912471046893813345921994360382545664472305694226209600023396510471908637013550501922262818184736754132749003606522391709399233334407317957933696274314193031962973141608288890450309148124752323878955767688544926155911146568679969117771596978872269603562237263501322980486193304345744996979276388387622643847472877344864580536913836140538964960557300482953304832834983520111539948338145269217195732046691109558832788171842739104186749011960080815789953533483187446646461138755040775546333455894075675723249961331504902737565593911375683275091878802879380935078866308825574328771628201093273098166585511071102604352573635165287732749975710562572784830844791764971779192622876166432575977295837749828232505907179096311075127907488090852104325248387142205788350018132924585848491176977000065227411636682053438289348360074913399810071185501209314303707982597027336492714449174020983790109845228227692745456139233888574379954906287906648463908600505096831232426076655185902673057186067700998555053337282681470673276502605712007774913524862915235719780503934112980112309314282492614829226856352788176545171769938154333613009850041134642920630358095143827408719295666697148966461694268937667532679981031955990281375900055041388598117922183417233007226491170755127271261678669010876502111484142327968759546505916301079732399029950636013269691515048360132261662502199447907172845957722164743585568597668593489360260561512628788948117826496716049291813266896561873352921840623151255087311548419391798163765353488226170034370344197325554946392389678980322086938330788895350061144553265965281711954232290484860498866012523090482257539500833487033495931408173143298073486027047277944495091278974320685353571967205244933089543300783315810343435913481906659532987518775657510531935551226905050138046531258421670287454740409789562056200647706417446525872098628510696466634878300445311792197502576423339947149863876032447362174878325219196270752521657544412920800288911736951627275729986554025489003041003900334296618194542159397157661084342947543685763573236745350764882144547027418245260905779549680668776966446307654490857771844002298724472233480237072882011940355137449673389532837304443629120141677591176482789563656847834814628104262407995686198405253197072477414408809605470569278526628940263252242389863373445167336856882095738482066047881432777752214357803330402450414760195965138854964536390689687365150462958159648608166504045728706600721805401013174912347116733602196680660374954063486144988651871137957302836273069151131276064922875583264047656866119981493650782056445538032092454881328583729567832553531998559294939783611094337175620873906408499630250367744643751388462672755838940521547018242437818613409154396870584576210614646056290049580894336144899132680759306502667171420311481600318840402183547641660006931796440537974861972231449254054179132109116078879416530093210394682828303238462208154276198101609269527925369064659713092715085656984401296752226614877862235666684794035697956488296503884985471240542591230846765275133551819059020995612851099554276656470776093789313954741411554890949787241601549864452509064743633299103630666386142444801240599116519170853519753193782905984062600152500775381524941931572204870856605339382897778119794358974801093624579390284518825414192735543440328978609230132929641439928435667353396717163592959612737740369519666951910083624192396553030876698003514032400720604281121111179633114044081380045277354932166369001439774102312607177900651049498256072023994408578867277372112260352959404943467123801822029272887534521893502820615540635685844403261265560720494516581008452676930159121242565118093920139587344510521429188445255574560210654351398652240052849376227790545342117234472911549168660199592973996153168147899837426866028655743281048449236962476273778311707430340492416974353583584021852587309223485081868452448922272751761966342599742620631374915518016206551552494673578040097459654199256695939596663289028227302697535180876796211477523366961004154464312070916285595079861852233497224355195118253728413358125039954860963143881216804103155916925127595707096058295443411398635299125246155336057186964316627792701826430557401615235022615979851324108356272521274295206265571654070407304423969321317082434698073586542491744622479113979861087319340596437994854256938330662435295215373099638871864555278150917303350295587879824715647307325518838824941301962909287144473471739409901547265279439412782082698491620420444927983533644122822177660318326275210627698871490936953200276199533497732455114297956182678120012418304453362419446471260551458389914051233970642471375114182507104110390033717784468786558504535405812374533210672549631699678145157724930479739224294817858792900489334901685520745951620091630215055635675339526974067598271418592925306529918094498515374945135156733073575108971089559687033096703572394662012298204030809956763734692299655731475166002717191560347994827108574054245123603158797864835464795112436839184552991161884984191488796986450500423214301598349931466663165976771601923353255718151189940902503968563161437000931229693204067936172674869727908322981016008316830999006796969492228170433297882863688714392934854511205270556530192396644794284688414770698626141815682579470281232272551113543862304757853676016073911874723798647357163547370330728839056638283037485273795785069073471591231122508039374369375628183504484173245956783667899230447549487424173907240211733563421015235313711858736763848924651294936649175228315660622452254046005580372365834578185206084195681324512769250848721498156737819522378569598418863934977114120901746703578847093900914601205076871005266440216072321435881014652130496955358252683576933857299964709623639213294315753158928587118441898262035328907558327190215499326772536535827543233975023230895520506010491801058608086725661160620582195706540000303095815450527025869013384116378577419336871585894106469209094708905047570485639424547760130025886184224068885117499728162099307373571087070073212097051730102199976890648122452455684194475183170079785170418540116783290375591181115892309300795993411233418349913710679485560806716009583768629264704777599756567276032311003439412026390094517026376440677658702236558980928765172038643774906846018792621571461033606317683047010905392988167891887332702641617331692856672070503861147958514326080125485142991546814413661633139697921977501005352623612936673097813599153332803120134245124061119985228792141702071252987812110806485737369113366340119510213705834978421589007504047655159354472956624003597525353258691374878321796577092941956836128738017308750056427678003156359832855450059544196616114008685422393462611197269693508779790914550260575294260205356104741979297564778882977075421507947072566101037416521767443786117747625678032144974874017173953930701098857643440372019998427387584947208415675107832000449293577327914385763299410909436094915187673478928878894113373409029353797497276813317257941944995369705169668860723258942652250826575608587207053302152616423105741839405188554624329694248498753620462790529824596438959931990774527402158761010812781439742565308496475307124895223745355241961637024276530483176790349707581114997372511821176125838055145422312047445684069917122516900316871823568570076462924780977094227695617753932822433888589426608776419775741246791372234261821241188655852143538667048684383979265057487647425861199911656195896750991849789776324215249597366768791619513087268728676468256388726128129620093912999802440978257609017901538623463186848961188778082345773478110427455330491317263075352640941811345908467160461088277855229908878053387696389657704438256263610664523247320697747473918170365268304278033710339872838693081506127116560119071900746002350128465243876748559822836627881763306985296324204583745556355161347907302309414047080969560867706898400399544970104393488689900188488123969815526954149233912555524806942758784669643366217720116888265652869949187168635716438737340900974309209128610236556089668210139124485814260775275776204238149987835921435492807704929333925049586107231497996721268106465386944106947688168864599069574984487800896348292173410402637132660645162334832234831611613927306101885771916957327014973857971039729446478262146509310437925946255867365486153590573399095916602329689023119671972352431375337948207393548394578497624999665110946266523517440680971020022932414564339040828854763228613018815457939598925202759083635582081058633315408819269475659911125519345820162679144372997117490441133032401546224660713480231642790513692370625119865271397744587815052251015876851968669301772365390190662571084509487582388094834187989271084090472947427169749656812710125073262728161895516795661914883707936842170783791664392319005050756063883738064805060109100478489939131910398633843313424344654294466358338046020374052130403245333255031410670177252404771211380973632720287853246358426162483779903265865106699832899518563559487079474519448043905341032315718078029461198976088077948678814506333025098491231107887202399166861834271230145769480194281876709284524057491080756899400280990691818597027956835666021321544364151937011145224650342453178028354272442363745044314327847839258639099586126962984259399137912300206126209103035231392574294054079902712372410425621191821908531962101658233689161215839612079945356514883012128846018233576313138945073971263733262563926914954641775243444735788103409309654190307167391338500492534737364654964460768212257285437258439478612823386302242363855817243230365293197221397027620914747876437615711995670069964928433058335762935337846355797662987785304046109946274623612470094687138911816305472297628377516810757955747693675172026767318530917661182437251068435979584155304920771073978783710531740504488070802004195563100407483229959730275046199370388443094145621143606696126680279237468413925779577006598744411497082833758817736367066386283138745167222199541346165176186007386085162173653689995016202921118804589016934712527131986053377216562902325970128394123897262151660280183955011854514477751084481078337754475997330089179871766468527636942804559806532785562777190204993733458853872579648742786696940214837575340115504309365897055525501973408524496023820657058557629592699161940983619957043035796932200519877356421910271779436321292486963364538925794075101565552496744357910618470741348089801754519684991432641490333043683897039614428876129664541962914035284009561143889732459751118536223797770357415816231163920914692568280858442957924901154765893648217357963703392507740185095814985627348630194998429388392982931605017508930862153814811696795158747807152493878725364686603815642055897609177801874721311666507089983194082427374369171317463869593156946393211464101815045045301470034573541010566553511721949485976194858342945573152292688024642425271293917942625322678067363847515070283467541631885958992861075981548602917265284132218200152610607357778929630484385013688350313689518300838772824395623587371187824640494488530579515528331117941748597805880211219392894160082859974850041747062757680863767107785796730597876049277906535357313306154118853535840083009596697320043314897647697913940666956316216787866595148305140580985199282834942253122180842017562685582868427607638893462079610273767976012380706041089614597308578375206885652034924004614492645730015495718278847598019072778463775940742676213433964407326231741374346953154850453238011710574799377693875917567808421251543217766793778408961726471589292351400225233469523583213368513397417463039927470403457822297878187620621670780710922823183665829972618745870917165490089108480193031636532141504078511787571896679785964568419522547870479165977657990784543867581460173899809035126386373918687201290166677358248465325253754453742357744602798244122174028754914121828570281929361685524718892547115223456542076399307357459705169422492673288986177774236163117573346481997092222569170067144203960636248661766334376971034881058926606508902702369045611476316054334228386668299693595624248014622304807810525763183221217648276983763334505371039472797823633632541423911377532783852360808475588424619103915777583058614165360597788856436521675641527162217748004328067280722173623626183518241096353034440584992424578847824179067424282888045073440238193729634706472601152757387377165360975601773059578874870962275144332321769070118170548198901666498472277989392095547072355373928602267642641812659361931661166866367572002503169669346386713485527170278384652790582919917717220671236357582773879514637505580102479030718161183064489806999504468765014607164227976434741515840186794466583639806892604360143556369453418470622033739992525179406609199983218818980493075123169546058814086565881740605379679441017731846689532368156101118470042787027322238599469020592193439023535863478110543511138838931247309536753513297311517183762232966165426986347257286242194131877371660237336417760413328035961494332719514188334661833018366369380519450924099587017256862343992609225296323611313656117095284373751028485447058912583679607881820398441257086200421392991819865215627235687417407611553497081306902761773216007416049975208808982475167094437247632849283285937428384101386538639845011377797799505800869301373103656931722230900820997759050719366801063657443712283839600959799297404211435856841671990213175926891176710830421952041881374759373927684566651364699406990970956353897751315921325059886532344742785884034629848140071750663956572417784387117933806953400710353534526182123292777182977613690337751350340246831053748264760617758171764934053302662716932453738045401595103140858275933889047843669537544028163322476031230547924255144496674924131772018299969609755770281275605748000280168644406296220056876758003998692608547347647068895071892799552322254817624843385056883673244508241665287985300205066897666930957644053751139441949175725039806458166480429890996955784673602031019332401516184840958800734530170290313808581760204190769042809408496353011532399327742197655574916043788913189768071646757610165898400575731070323071920394419430038152940648803962092169375548557734050839019957333624103370489801846201607786368582579840821511490054442418544150052011747148696283433036210780903455529722774894979692010407777735718047458838036636630629915050504017142963605957703182155387901606809755299012243773434356307859916200788562810541031168887668248217638099282928577359876043462479947862700969144465162471133346224767720078551327980792162324324650519389290001391592652231003633872869494712730464399984407867091275733754892225161071231705907639583890373981880865244583081598335427744006703295793531353321505562986556284254547143712922739766739969120075691299970623527067013656359119304340999591693949801353540687600139932748079882742183535062577496725718820922289936948120923858892996473190985086057096912239851010912939820379057892994520739756557983261565195996794141900905535672207507092483734960697977170547096047613596009271774106639847886016438254060733707664055782077537836708680757209113798073209262721246887466552007436783205270856520576703266326335255910912900259512953873104764639505732056743288631625807551046133079901084065830005774760135078308357058907157272439515526719554652989357280302908017500322820246605219956818579324756497763272188369536156522414584040483243027842095595537457256692572487172931714644185118335814539047439714685462652891175555456291161497462837404348587195272064698774224284369015604939957311923795279745636868999840863664561687902894595300020427926138986045336222236023226579948178756233943723090531398165225355580075132421928421328224865690630417485392791791472854500670673136539104102412473747597990851985796867647656711043430140753930227053316425026927036878078624454696805634422248761257693187533059518946235338326238100180048951888975573783760279376831360032559007749391240343824129702928299878036225346039634808342967769419446865185459896552050335759483867431821993917341522036525473228545664893387296282588677958016349646921157454501837667947390571275249801694923524469535677023383230408215436567362992005385611706540205834461404627903848199296714746467874662881606980056513694288435564741385597952601971685449267745022168047047116113379927143489899729300207693193177177816377785801177697508687629074682807983017196891353660031561312816382969732762257655536415450276673250604133174340818934323084181717437533300795149077348834638797208364580034390252071319738087570635136006921808288766414490154519906338120708853374980094754632896743339590235687913609767692267471062125672390492629100417718651389336018318143476481235882131766820523743926699874022894823369488202687537098490933538730190102214881709345659295320004668047157013362063536396021893052149049600056197459333993561580420696047816264587850015883393009146989398138126897391095229405034540057109265522302921332226803075710698232976750293684036688521308203724148491698748545102380409418461247543002413867058189757591511127303597358025673658284929642416267185152365150378410576241523429894717224279132155573137271205020423173693942227674055501550110384013107080015804276459945092813674757806395622972606873193922463523389935607687326308315950642979541383899334662098925028198901716989190806275263463130599582891637849701045593791367187918329979838846855101839965838867478039937667467445851727996526777607074327553225044397253757897396624514431736349642434039961962057590538650113273267956873776560058318613618367074339021246755599726880602505195779105842188781559639137642658617789925878110676422162829802592283580424081780090740904675708934181980736444261042022926628998218041219337910678296755527166913333260668106592400837459201492181631432560660984992225408994005528262356221625538541411115006328677075431256203554482135578708475487911102871289495701394161306771620567109924042592007431325370535650100575876572733228954472393276627487743137682095903410453295998219046143869970289616794399117359542715426083303224513205443378951746746583737473208669093220922943943153630221632453534288611831320010127315707155974283757614387154665979565749212214918599085764524935048631985184328874910695314636529854347730382283100068863884748721723734741979468863639084808411259857177542456338191549048383979492821982795168560761350183962491022008993843353877238834717123798322254577004096821418569294371083830018581784941769676366382319433236563088754571170255234079468730766624609644999466927666660207213363323709231881501649785480952357471676123218828673386503440030983648216697601583691725504881891694749291013103911996023595546470579585375157440230550567852515841169490348041984078940281185054067890327545762734538195127217808749886611177631929316806970448775244047324682584999181726838606423094693436484318866455317542023875783881040123335899888813734198648931078464957913932768008652403069746865528748780319181404652619903969255962490688333354068667600014981732182721767092984816109243357203595419141678881610312709042221629662708014919405111134359252777213293385960628390032561761020250936772367710288095012188966016056710320347086725695169572482304440170707548467882525786053491866186959299114004596963511361237709311243895606789639000537004577703189245919822284706174838988713385217941330127581023022391966037137621903933469745901510458188544058863568888982538081314705167759356608999899637216643101627525289295275248023547920491415697535476679711438494904690490016671664275238591464295254426495085474338932369447535110233311090042928680938295858379411034541473097879254524758563882312107411967588705911132438120074319054330540572145145409125087766235362685691324638220892233664860443759113166809301268319461622145824969621022888795805338266355701283077617879918291391024512834159110535045377562198071937316868409566236669482587167036563370250142372599697708429057064749470387104554785664116321554095306418883842514350096799948991800745023899733361762068110578934585015585875559779942394164381940921713124646524054103474312078788362498221158553930883793208323047294470919657429186474057901279752431675138874392141823297171718886532249584852652978689997730773565163940219469198098509082591462180005432510217669804834662987544632071599400067054085158243693702188032242814720190888118002481465314795443075130591195207864337774868390784183588207023132776601557086529731817653081584740869169309670923503360477171069292829822232047854002311816154007283391313797279192251709812417360688980434702400320520655897343866115624165633729663925070822536537088957684064529669723706001519722879359837039978560704317678124649938113280077630182313175269451557250795728464538977461311796380938590029611599016140152456608930266263606198218093016872197772407475955493217098304801036717241417943751635986626514992821799821372494232413629513832130342581752336732530212802758777630648403773622408209939452298321310010788436513491065805555925416607478952440328880302134751859880345909630177671902385715141823931946845446102217130981581568582345964781523741111212930359210357127939243700237110530336901153001645633376701900586963146783559916496773037058673503568773049331461297681156604648977389465000131528892517584032474483921349347107802000548704768195903139127097294379751920424066431557116970591095293351286950983983648745864720769334717810309084732381245985882246931664456877681050858434575960354728785425388652659829057161448230949210471131411686878863967772512858188267012145977133915205488568126681955113482285780381555659149214680926040267675456201468870817073418833209490738233930752808221133941077966086025804623605473869635461920642745759158388078540841947875060787415795552652104172714489256261845566904473249792390482995092897803621281757759303943021938482893760749402294082465538808506223511821658761519588277976931239782134750986089357802593583151567454776365557853387265680156130906813615758156699304168031469076212280595707529364180815656532806499520392574248279064404280824522559172250273914785950033893015298307577425643900632771016504044734742890299427895577693351271060349664392845892234736691648222668391423941749367489772216469317017642855291014615117203191910933569561392084888236681300712962735586765209618430236405347331047069431945011124388737049637262347149920219107360305689069435436726011179795167086590358567262081232116427263785066546129841263353488521495355595529279229104813159971476409600291483620571621283914385965865522097497490712725488556956702176269766199151821111127271376332931272714115424367345793033396079531215443432043711876214677006639530906191129786444770927260305689534829026836528237370303155952370834355341088994185974246697407190225273614024725227248907761452368465588557594897480478858694910599640462221196650265832470753692883883324385545728137500651480998452855717254329694998292149263941203547317309708144219957420936627150086418507520703748234208400988926870014742179338714145682311693477312555550082638749753964958967596970278284244489093157694611873570587563291856832557249278637109799853456258138718381635706428057577794202516184859612730332436076950344728114084641567890347241947355607994847865357630193490569034149122019270175746785647183040554433897789361468772895534285685482793235504265410685891276123331852766215487117775787309471170115183241795500569672799827677248292738792491482475461373334378682152692357942492018304179286695718766524383855280156436487662928598918099332238685895257626180672311183809923136160500420666985386276785757313536867811566195342241455424045837129565584282008653126406100836002665363604777248081220994749798386606664721710628261635597373020069526800513592966549233756803233985932408277453792495180319345061438306796257575073293212607265839821291759839824115896265926088584828206827098004005583801886566331993357117538425611263334609127063385125065103509859693805996695642033401303388971474779186980716341767561462286970523627892225654386301044673094378416419906104452518412558137621183980096237388754853957965873586326030866365200367072380968363859842371722270613114453385940742416344442950571166729098043185515397450830647058642713044484310937084608520868887601679001012863822506148293315999292341328988014777675197865617060046734620580946538923902763453041883028982631450390972475172242114800276312324090359148304461870750119647167876530544236909300482180612829901963466000008039966619241996539042303450792928263842156026468010576252071068351782722210270975857364329058663321206996742447527034253060330015358023175730067229581558653142166290464635335687672704548055695253460638623567855180416070254431543274898648062917478800086642843116669564950543962832117135457960747978411975051397290055837408499995312966725346905188666715403547072758778179446680401704913591919589339206318866256310086086605329001631141094765100149486826558789279369704882687279610844532105329786119898938408292812683832150881528955870795055738989064400158959565555038552355137755754231210948271211582533820890679367938508793767355193531896269727623492468665193420802812627243085910846765526991392647283529663550956425262754724145200590864890084653040054408740512809885879963185950052543326347261786944185756405188519749919170612865691204355605642746179688709134723657690074166851738265946729181844673553834795919696342373007322618226016697117637691694655042581386151572835308207581271688252214055108382064470200253443519043228929977970468826977519490999532225842069586732613758767730385923695791201164645146103112964993008652289591234115232587227081984577584514182230011095723415302692566344545959666093936432982446853266368485419104281721978887927965498021553740143994226599849633651967085357280242884477297853760640585240309531738044839181694827102169671806679728862349672624377841634108542185960881986455833100326301642272214079286992106083368233585102672558481395235008276962963570082037872547410902620583803554252417230603420603615702641736294355578721892366032905906163997475021717666049733497011794512084169088726795988043930609403183222816315737399392472299350412310036656623551850448038490449192052991827530646119680720985143542850967692416942110302315347121468119028902040423547245409652561868995084251094893196952368783945482299968188219317562536732561085522151832803709932485494412567962202364716790472917372580774340195220845378991598232064889230830240416000014704846116907422119968673055191201826710373823921853752731599175964271462548731217315329465626274921983164749968415624330430655168662071723557300469077491370709788831917636966065383039044577951077165246573062904624669905637556296625104072698693758177392735281750984700745448686535710398074471166848755350583160065348120309746839592696092732499534611071408260410373793771485648221972370386117632033164363574436517432941523331274799977263531573796529431705989649678490998823462969221465256164879200905689583984498678873076799377476353689548295088083143754997197065325425744204198778535898808909002362054799222041973097795403823477118610423250611890460036638324436223382638144646342809150260187588900878928556438306354687448436266606127922291463946447856291517499998818178720264802232780075950839399472374511210925180236949985205831311034046761441144293624272669863634896893201298846329945382338966908909648129436666371989010804064527316376149794292056227233608482624988687775720757090772499612666544229758245759637806118663141903958180346529783501315919352462731964437743484147147329009368564454444711170532150430789661931744724589612303166103096534150413167386432831842598291627522162315949782880965623620713517529770891951213105392921966334691595978869141185042955143604079821250220485805779664657888447272136645973141818698665619622989448676119351513571529006339176443989223532174245153832703700812271472550212088317405096264130350385030295190249039817231088651164941666825364735440476734866009364002239510396633909721837781462441381289766072474472007173421864869874164743027207607176026184551684321358070539683234244915002218361831476999937829608073950552336246238232126546788659949520927024527970925711898679323060230537828844619980703209006614220000608331715958481771005781825476583810502681232749530929701792599371724955681377073261888768342009809852743090643662412813321477287591263130318601447640858281140502427729433054816955705995371537098871191595712192482703601219792064979929762264005564392753780997988234148777932405527526645735772919174460730445238442930153735787650694080537142312131503368742645844411816935165604584885184109360025077136892245411293256279682257949508969100773801355804965608692717688077635722477663497091454212754425676243207370256504257300233619039667164510513563195489026898465409694116865505094668496548504921272612071516492752507745926510085515943045141287344106735109639885835658856500872055811452380681820916681813269428687563953997687660066014544843388859474062765333442920267898071019128867861613673445318688700954851729866372958467072245224276299912863041660987893974292765592501186900686585571695790431249962439282738593616939602230159642167089162031196076813192816422969849135572367143262601634743018225679168674465740900079550716033933584101672765624885480044043878974907766165114726061889648597446154216894414847275278546755719793273843807393357513338824082978076938186470190857515672327377835254679995780955650027947385536463001987229335277408545694729795272443243796448534822559827223972289866323007831867871481435289525715782186150481140961278922742387637906643055854168355345768742418510872947916163048507396450488190645429593353537361162925513567190436516087907972854734554666573011778944309739885243354574723923612680547146579796216550519019253489852444725738978351523026008855057468991921352017935900117390386560229420524383368614062907823810559948031936414115720640526200011018441099601185292234897487692801645038572215300309046574353886386210585659759563211493694948690119335018828385955587046720856587742308783178735998770024680134069091485582184354800315550772733086608874021160945191292463538510805881257072799715273520934111722620014127210282994660825409294138830190431881602878016701170548709189515176561612852193558227188322837019923130050835771510544518827751892925518547062338893731094627521353377940450526675513296861222480508262364473915546636819182400163209104778838808740193275050952590975270046863738245972302776070848730502546225846033481542761753820608266692527417796392518697843889745943782311618008498553483826523411041258833559647784624840798275717121333978288180692380984523379652979882796238050851251669973552889680622049409298444997983340128924816955366963749095359940950552367243517333499210648255114918103392615770439803048010196574799466403198178043848590041744548898064066919540218950489657873881525111518121187446361771528859502444683057714743747195965063516218321109694577961618233646862826597582304216431209359893539948221889643605172750919081852837634530217191796166481610727065612004067714307090112118160154287628044295906354294104602948995623616063202833031988915561385364787593464586197547620801473403398618483948171430164367837064293489438574558184105531849025206708070838020018570275439058851724326095860022383367443649141926176391079244514919754315726225451216948979116845640169010583778965312838958337596477995814203886798200201632785837081143108628439229230736172198074059246773823592205344595674277211408642564519534120719945535114893059066050646069571228184130337475274830787456100297183152999322356606164983413450265432673655460818829311190330740905978727106634530956170073235012317292044706314837767848909512562095486535424101104773344872101200873086622703803427354064647369415015584596868620693865636178555894917550293196937581305924422497956432133101563487944608676800953015570626255892202646075194171276134170695911500893530862487555023194812910339497375138215957470358780486599748297245780809543115200203790066342351768113855891069778054698700075465501666877980152147834393268026103518476040652555000233286523791744222918739094741029004482670260106518827474893437942227417272837853914448691882369613701169437325788874104178602006114570231711924791661019798015760931290249832446938767301355664796889429555851475998645383781120487359206236141242366705479539861849826441406301735317588314011683221285923442699161192587049940902324698352676313689804464806873606603367907086819681612242182106984589471606459729295036375457071020938618011157657132728469887058402901774920737084214247186004699187682632983252854816316195238154529820308586451214410855550794511605596604728302771031321779097114024874162526518387379370615963183820769392895208669764918201592661462065316100130191714953116108446117365608878644734744198568236110686306947495746594539612569240299364262978595635510790335881766774744475049394263954455267056726973719398966840340803005298642157234142422945752241234855059384937315006978510418587706294521316366888166976671216040517415830623651047886491686040092807866211990384419509846419113265094934802307115060358406049000088370084574723981919940916331449097984193536727783796345209280836222232828859335193405002815242092362818349255664150425114887580614355301964716071054905980512756096925427800620040010247563437456115921837167451522397993493290951267716539553322242234434783222537574644720162883069767144553889975739930144532375876782064356364261949312258660533623846803027795952140585084853692311491915533954252108678770107740056881384307706081720156502796513718724938815642926226246668200980533869870003747173053861864784130981384339025174870621694505837279105515399949682102550692146237231313063452328601797051090140072473214166446784953383008636664101146187752635106526792469650138228014821130219483555470245004726160034985505405424176274609263474013308418910710135633177532937367584768834336176954090713317370590047922849022545799474010757993943350779152865701919112974410012173524619065982677212415325043446915791385091777163749915291969066331987088727661120935139849081294446939279807453901232047748131497535719422607433071089163211870687025194753677843132356550780424675875560966618002649116954476517191791285136920484957737281486759974471129916314486483318911287422689528565485641966240161619119322957208305125406920272154768115796837979238106331773769633215251218941398117920338865588081978836884972370927379351362245332912879650880979469536676362141029820689459119448276879717684930073328423821590419971411845262346133668975217871074176576867871463716134282297745380762331425909743605272564748123772911985939396761824910502510379385850081198567027914371392419443780627141806160075123937554763132675050181318761044623587280402658916177344628688910041917288337521739685310983961827046346555413872378931200600111219678362698143538812127111259542324387881698281130050732669649066660961440575679156664686153269406797562022911749064732529696365126512757725926144869408498146232793631223960909684361216655331519323780367949652375726127086763159821072178128854717690683096253025968198718001995355362468522255881233174301104518500182569943871054617050070776175525354374287488200839205646343023851568676573210246073740289046925706859994311465009773540362655818654502210562091920017171124096624610782776280114362211821678753323903353156498920837844615652866007492888718287352420792593512833484513735863011735128867421492760882041694619993345171315445823952171480327683842510431628233160773923462260736332297227648407897492127839807958398452816640624588001421961440510527653042243237114688454529254090969756457580422676930788324777833108636240826732508797827975665512513558789878007738252555632459258633783451211475795648958923355066012835048206133030815543157083595592609426622053362472185519295774801478403847498616982267749886947499051436789328744901432818562771301558787696453031557630171353292039884467347084216769792912729759929073203985608949613694221579432444330128231651711365297220348203398296154904781155195750704784922506704610805937277547000758649033750523481321030043096172700971644556644416530975495815185468526563125530739179935852181766867407301056533730527271064535342053846828223825901895837744917347767977955037675528181087679005987266981773041622784899428814059913053541124543993069320431933408907757662500396886750102240922885135679202578362955887862434888708594997100055172839859122796673542322964635964717854709526975828159162751469078651114791540847537685372633398306578615572765188321966278569356528509155876933490808931074439979517493859623649405465401399533738202253303552756340353888600311525349407282296754967671174635777080098476317000828473004294378858716651913383619363592438413635866576741539277708394620001627646208335340548406871566374662211445044574563336359290722477278078936383241296327685055789675540402929798981411064895210624062203805840111537951364072046144256951065486225884576328075861743595666462776605427588476862328228652335019196295759426923921274499859394005650425105843377438973658134282341353434426542734169178064195909309280226171404583510707387714287244324250766064315376587242443246680688606808498389393501704516726176675488825410381414855250741754382952355636614870608027881215915924946530378503487338923044978699679948652983495555601115655315643966678376610583633951736238856849092321387270131236361671742716876220586964212774360970735320292730643129381355007542441644989763241246123131700151109018367914930376916097279833393905841806636891968864634459572117158323124267350647574095447562520271280867554656219623171502909702657312623313154589335553896794780904739394394457481014608507420935978132053385121054082653401475880465362162601551006378782242765763153759592883770586889038737850619770640411734050236240377430732783257683081599385420963818024104812542869967287353339169458952519836252340911986994779950504033460106996748472939473421111884626391979886978223511155363279436340073398203993878328026432402269587766815546108300499450806964266514857058706930257886947762347924776327712966126409655239000409531074998393682052974189041127353803224238903533378632635675827929326751070691203359842722192175638491058216682270835319211494319247426221925589062557415945071991933067560122534552505358360122081895029629363184661093126266879894014422164765771452989133059689769502303512804624081598305577767223825766370963553099423571062174444024810865289021485624718969140051400154378095493359587488781106575703814999058255897854675937354550586524643717707187421719772075112127896560745964201707887070555042455136326886127823949245161402468816959147861704326421257072510497302109197900845269771565526190508511421618547565120235234954990581167021767438608356300119151354911641298445857925523554797789473875108474754359309060478800625646925298896324610434211146094459673291267394661354936962062118851233551109709510417504350038006459130028867751190305222893456324259724852787842142432563040136795444704495346891335898293480436036070380459641905564352210342325585362743300603033914124420327837007307636496556457920389979789815431180562725734831434402612609279399687034189781885738752856011776264148271517081336830132983857215479429222336123545333563825542477955796872895209083922766629528418648577666331925378712214459395912414675115255761915634192108179532186800963488809315560196038244118580805761734878309089651275435870420061796391316855888282283008239362978749389396595263424053635083174667880415981583822695275371788466329926988743814801319138777675629664712580694662095762948765303072835899205946102158258138757574286572136143059590521888922492857399177318535306552797959104465556406274248698029218141843225829103242880232661622007875146584223146722472406337473366352832698291039145620264829695571736479969614408654817735743594046365178065365662919239975848072005215617023807002336312844074487739721112073690708672103430582537074910390624865351270005318336026968283140883482314516040803031774723238036439197976770844598018915973714624684634661596364834856010396709684502702188724548928087977014384459905224843983223696311238288446458542743516127061108154728498336862944536071457876263176345914407543097813448836456094670114530979560810898812295191456152734783483578885077646341864822117318059396400644772881136406810195609793866305156194943440532327575894851591988586073931342670002146705905497964095372395912992098316437023300635336591699482623560664985002868965039040306688009874138902016609032605387604333529736215525366295614282209464169549684954329249257715546290605162297381746760230806463254192985618571230726083336761969820856037867896138147112612627948762502423238178581476860245900526891621388136512083395375752931400326639368400018979095239654725966258730453023976041982202273219281522387435790868940594597707450783883959997699118201161717628980368069945832706703940464867460907534131672622351813530889449707576479618609344867645673809849565050127690833214355284344911284263768606584908925052931932937026259506167827588189541051226895298854679713655828116141365437384715313389998777720129964155938873694237566381072554233745398859392216298195757365816901981967030819280553850105730364681761244341942002259238649109914349633316093650790680497233831823599261026485197366177429987323373327428720509832099972451540196052916436500303014688497179328908449960966597172490999998822976569351532794080306021716709825651153476842218659663650329739304308974429364959864449981382887129320303475379426678351726204840853321867074651357729239632774719350001840473902289370608580869003167727726948353815117179192359482627489569348791458198607867079902052626808123564971856333104558013023972525383329037786848754355216095548573217792819264927372104930834677384463876952441119915236021097892953517388548742231063865625999642789404036069385822489820199924009956200630823140052580402966821237465755452478603069574109341624415632420935340350155253645855772852522445771439630298065149119414065661233778598280861990117471761491100510158122363985629635355138187270720501482743149916128043295342208934298439421021901555258459306511798337469934238027586578712272455821651964143115674704605475594654617720010091607001079595183394612992070994899248528685471922599094430844115150553829872747159653804043695679717588112460949698806809686514689388563475984654142049496268038559916506300433427328519022937222078496649679661063020444417236193768877692133737486216193268302778457682938015959594523963847391756811844205446187875821005203190627366912170411447674883485904705615374377464995137122043362700003777533214180095653323212095962045709632138042271997829619875925962147645348447883723846828870303590333658266126057420138132670675798929856111247792864790723265418516475978422891441511470671235233173588816230914325003239066651470141553415424021206874452131917404633722175464200395258405367413906374125835591886236645806760802591929383350125878647049160399037298356071532117594259628624717238780986939510678436116357813588097502651907750252647762427060726014665462885183121038317861329192120498362582841038498456186301658049779274939203498991841032945269214925716144156853778287583755777941640196598805102806112138620995223483490197464478072563441065472711986963635021764104564358451969285347415974924117436800815470459128656626884403770352603952991117342443444698929518667757318004064249973418309593565300778976631107433204504691239679742172036323228742791654932443472126135583901522815695007571696020559734311155405240045587712624088787274817439798590024425059816209215560992608777389075680440148682326619912366698399636486576235787565004129065938724828173111708488606838980752683799202393267333412646330266950826556457706890148473909006870999946443274909773661898821568330126432934452914265844129035844834214330199163442030070487201245150830097614052453019144441751082511015345754847840184997390399226656456591757606318641981620133501200462028056135197675282639753044020237963369663515859929276499039004826574483915034115446390574890390343434679885260112559333167812653304226096971625666395946542774184122900240585094633730761259660433312657006666225362290108175148426274326611183845793105476895427632540990532699625690231228962987148412504543688937589068836998669663477321601705953571525632988769240131032577311138632526613529884727122340040671251188176151567167952953231832212148444830062351720318107401980462972796278228181783620815054673350048354068293958452446587469817541514186215551988830781452168244320619296334463018650328437180544238102840613496217725551598597214186927410291919158708162445992899428296547478087815499441499837357408543166272796572092654826358074720706248325061323058006361743500477153769551462835742758614825993249670986538298276462082064300309276116868031748089502404462372053821730226087328098180964152774011167516332825519164749317868364099900107994512160631129607401656071558571554583730541471073360775750796672199657667278210261636986245498597664003100516664705347652634844059048792528593023606252293075496360461250573086978415226842996019658557995959323633467236207533107276412518265376324554303679122742453864508835894157673569499926185387896748910759289025334776179938985836190787179029031709658598822323294215755427932699631221380389492545633252096476391255410927431705058035649232574949636939093453671178970007733048281748947400449157742815455019584408085806207559472441855135138252768881466895085500160846318675651458639327277584354161541153339798334633827195661663306392388714618736794305070066890960167126788146913140133375784792792338446271605277794708113045951023896074610131184587363385406249167536639956371602584756511368585588705426159975701788927724706224605544220816445387070196796679623376005026070040001707345513065682780139731541845138338872095361491845216475666017605803239212999330735483422289142816986901174460892915821543930511643963127256508577190383032938012061241438271313667180084653280380850436776305940720282211951909638865699015620767796914000434802059499089745674184858462888464811467785231457305327303783467275247649802385491905257163436826907129504340923778988570889220589000010603819839657844027882553226933947826936118513451564290769678793571807866524565483405754174844782459771339746062258158761263969010958510104431538562836865843213770350963101818565918891235468074617720735314062022713186525041499805610817153048266333979152025610024868058812266318677179335370269515494368376209417093916593558294124434477562043573244979676732545953118314437903820276444165384584335077416618221356109694229854000825720779814287715625150241946680220006754634336264129701413013855405120550685755753832715706228957275420408954795851380371836550225873433468058531808364977031048087017584111603147472178321624789480296303278022903346580504971572788480956093484052765490260016433577910497575745170906104685050329766834278727848085464606616489118998154063377622993531671011011160101492763561535216435590496849133644707402034640432066056022228490596169056393228628635502810589849714771783668867721755190375347340798850322385794463002679235737648411563901131781366563933666827476817073807274724930051552989876848510420444840643977992357294740958720909141887803412686372241527403605626250613614988216878400040992414885750747461633747270615769382161429320532347106835627263067212379730905193178741067237740535885308530230884124752632602382773400112033221113583585257265294899656479627154229416513048889199467642049340081442478231127020781835473503372389038537703721129197656780903388258515795347591431036850262160816269508578316560124654179029361629257192887610550793902448705642181921719917255356096034799549101193211061231164484085484631325953889896833948439057705192363996693166788996761500425038516670662104502395679840781580864118175580129671395501790283660939483095844903921784556532230301797200451973131315672441729023329125635894991017964402955500399186323625469808882663547935575984219925208601375563679910676200075594512603248124220512811648524647185822257972622294063198506108596738088126310926302318045962732720322038723353205414858947529820965663417990641499356981586623935378586176125228644013347760163638710492855021496409656855003289591920922407537538327651153303805357362318871341473779081813468988809800148991099304220114182372486760641750128891077201648984445459885093514050871412449096383847725699397715666188849819758975798137791089775929902877384346870723090713661808344672626956480826244740759498342363643531890982198960003166070220307805523823835574595460598351387055515884631467597096996773236483815244530554700111264148142547504197668245260082711253816218728706329568455721175346042845220712392126725846970285662717808981140442382082460390869664573642258339550355867226207810573114732749201615358648343376443761728691619578335154057755819773662951365073568454850434816031348337434123929113488789814207127890124268674659462858477049207861730287214438038015004775725496294348825549077370924083447877922102911513958059846393679464748974422202760462743510117098774432044574139723537354502324197913414899432894773741638852699914008050608003422989025449767294242773368166236463742985880088380534322998237447491675380565386914531445846787507022404952536891975798421624241066164105385209639106950468168029346520577386899034715804032717327461579562832516104146578928802135166199344093931002130784825009658321274174734720826333741077691997204514797077132830896100009460997600274895303657937884755520703868903336378425035068606150996845058498626979421742797206763495535005654015000262007528497901982758926399889664738090321212547108366765864847710292956901972879674930707710979978274207536218817035588093674819319578629457606893193313694359173877642872079264173828238182657839429879308724392955116286304224864876753894492465319219213658087192619637111165593391353892194051389096889359482937509641160766481673667397786916755936102254522157474168182203865505192550311798044254868135500093743344728822175646520015854619256704857450803099693392320993392645826602374232632488121600786230467974498609745872653359974748132621924224108852473130593975459823259369200040151658212621967803162625335010364312222091047643959675947759887533049623950057271424513022893638914418360358050819945590224641721737842755304786180373382310232103948052436573395911353663787173543231259415737314086521850497214978377260589321839362879052391966169525621564735018731684843986273458826961933468528630376038446404739987514920287791926971721958504185106382271735148602651018765010193098314425517074994663266519888586126412846469486504580959847491794879560444690710154606790233305031522534809538135809041946095700288650180060095873178200519601363628121742343944912835749740831481711919933340376421671033585941436765131787156801504943874052977191207116240252203503562865617491163666649892580848744078874771128739611005586261720197634085439632201916197546983873470608875729625106768421771205630241069516707907848597449940790035478593765820303188065016437149202334322647169646874561046757258608250172941740908802611302423100953730082935403248450910030510361363189271297121671086311585265161725614749443753508306089879349677971870790872293412560118030062729072396372368958168470126806379448384229415638361736653448542973922304430697511801735019934188201257107670252845269653770950035227574893371656406672597944288107800428163342877988698739294276820999894377088578146135349244036702705779431877043412492497852131804068652591847129328254841858262735414963061824827105608492867929985683343858253821370644968644779092154031546194879599143219294460438695836987279952345293521792204597921290120202415616820769304328810716658827720748203318919589976931994950068828990753064499030264500554057027590337709808092819038760500010761621024848733484258061531358251469936783683729780337788072723218211974779360370655784401169029997163607974632358205126584948633934380880678783277685092473440840306659263440962210150906218391705039040374368089082893134295594850671164773031720988178607500036045075476307381563300660554112545739936696338668964390619667391305865227076993658537200419392339706672257090273551325720257487811901241989223623309546632625457517039253989219492047275427787303154646859253190421897512058946083668369909961376463233135015173572651248122091796343013383187834532367608975337693038937662186064404432373484895274501774530992063119652885602161877311899850982398924304910766182982253531979245829497884229782352771192553036382765407919517799838581277310591202600825211040826767848318511234693300151397317807124237738503770529152507953434554370303010217507146409152782030692966932851482514866638158111313619378203423976436798828397874633031853388623130383059122993782658427652862925321022079691490157142602478411361055753066186830894320808149195488112731490581719300373214989377795893883928311772541905538909513753439120531248217718950570183111326417838320868837554070078892311778916578518462772687357562104253175012501021069696383525327809300783124671355394883650049456052709569418200262964640234543799870321495163674957316821463691803643604248293783434969972936451785852035084357389327300601652069285691024896770760954863688098810164983157051974468307420132063451260222678314488055347364910476303951082404387085480447670628000973816619329782174104214010236037491053354075426353754748428326343428528434247371796790832423642370583780741820543784597218029618405476631228634151027297746241935253333202427974564350757673002669725450220426615077873938401334226114185637558286244433207857188280939379720016607653987169956044987809316285378022777342153904822965030667859266476635383101105889667314328859055238170832433053751011952387101421331344565411454723282121498208485930967227315914325268481105322202991701598724180103022988699351802887990124558995931356867069178088146242153441425124603103310177704995578961374495588327789887057167763277758331566803515778679247993950266465740339644571545485714369642666871959392908536492885776566874323695845201788125403885292244623497443141950549494637072793973984526942386586948793606482590820511439901636237534460006881407906202087100795848848052555709985754875217289978822957119905391750663047387562018383943725230580333432867636056700105317972992741091159645602227574538656995972571428176992958518056292880317105366587778844960248849197930416531032541342568908471516747942410331899937681067831390430227008963342910903766854665722923151142848416360248201578934062346619269641913004228667012354917315815573619883704201659584250266248184846796983256413475199640243927692632009114418820727466683048185288667875573622038828430911958152189761117374371777981391219043622866022657434289289267949563569792587665980950135145599659350268463402539685267525089997771750861024196038014578255910905207329402481456570609935851797572127803771852762902889883333351769219294609848436193765265960534719449710490565423938424109891218279782593043421259794813977226287603047358145310399312561365797562363894680374391435231927620454867471500838396344050916080247334981398502708476230276750138956611758120767859384837739347062136338902313501160973445118080451687835907690410638023381542139243195466950694047633884043671201831728579413581011670121350731659634907091356763012310950589566746534425680886968875335777150272923990119009123247668547630782861046694477343139650576183273895640638851433380692621128054874751036512408869707943227061858289887745286629695993705416255350039946652175425458581054327038693016988419333299997101652872690650122670264209801805318686107825390483739269446450307454529128474806631037930293567551797095960704034696172765006066896833404331556580196928374774058154383331180688398538300484857169295160261612966802809347668820617816023597330086869946224632759733076987870420466071525310992641842078265863645592406655013197583525649058675956403692186545671139628085617341893398933826686805611016526285336238636287434125533362348219270273779956788782363107227892611828962386426419638174315724421440624009342123148883674230364815126607456150139962956297514221168640289335303671062441387680322609057308401437935184727844408672132791287877865948705403900311273169589168946252956347395862343710797338829662062942695316017872978301015873293547792777006636993506535722939073528780641878438327094065964729476135503611954834138490713606278282451657936536496407219607995795048941899280008864648234330389952756523432936214394680848918736577128280993908620221713195159685836182866126583958808497260898045102889939084816371279219341158681237357635613604960797163670819261218449731506625654043658079258851331458594753317734859658559468280073342249340353778104943281152369467002600292076184642510611086519826817010611278946353690499494123394481605900277304394969580047472367071870842187555066400891660661314745266907191869138814801529709332782431353021495419555433498591767529742146196847223910599201610639224124277184291686020881135674720589867715255191982599438352840684895325000048645566729239836412186586876133603534871691390820558487810265794596022103397202037621336732626252259243483925374782458697714181138186497191849827560393460733040688886143796082208870879510206399212957085609732789848810747137190130333642601104015489832637741039637606333148608593971427831352049330948685320345362006784067932225319659769183258928090682572533458616203267418733210512502689906526969671893797320036276710817710544008093320631792417893806678831771005894331026390003551317097083110468360641216812445560534520090227605287300677065907556389398673858124588062556199840989247498192235995846833442135090178322449969762019798160828501325640955009850125078596373998025568155099133405432551882223259255994132722542104453918719771606129024157608071211820269278332603063559507739505076334614471993404336238198386341996140831758188801079059848006580129771093883186495810815234578940794820999682053793941183589252320906142124587656398769696012469261183927039362825012739134502009328649927474957378159535574446927993897407989499567038944452712353108322693954873247809363641492857977557417571656689382845529437481739866129489312212697104184774411493649627721832209557436399867892503846798959615784517361607774226854379078036124102809693151377626156006367880178628390554588304405956127174255827280397039629749130948619343586311361876598162841091339585357470972280157356336749881888101733510873886853571075829150811103780545265967013671361003482502379316649682577272073641752080301564103835591029145732691820817830628897438683050165966645694554580444596750702046299026554837116289240743783669429380979901338831298227442521899279206201793371176544866612714430429956933801326190934124146187934436253939009234995040002325753679824165041738828975288521569767130869963506804014166760197712063232569868133524499554984241920549834755952879737695161094888866930533827978831547081801650962426483562217261597998824858269791935527279767543703666672022561155075020133433756015657448097939486149564204562351597801747563733980319568417288372055475560409537843508627537160961006879506349928106448103481596501539716265411256926013403024650468116513880001795557197399554616988983594844930349611920296023003541667891742794213552784318526957837942679006707749519007661528530924696080270905561280152337033727654196674479641171106158465361985248180716851314728641387562448326596633932767889638882868459857674920105198685477952788304591574117996162009330178668748089393740697619998291246058988077496745163823140049136613656611199735604440060465020607703036478305138956769841069223204203234477270198222006137722615025348096755563843652339867092365395843030114180950226704160020914425605674164319422197243162976643390851361154351406261098121952534265119276006905505011450563680110124166749633326991761118564642867354704326760789111859675330632924060602601706209310448504937466994101125440697231950412277086781516100323525484894534334231725546188676536972957471863837769866498406126043243343756097890687506466728840840257955672192578823001608540217448673599774340545158107414451829096845130223439479625144346934225668908592066240324715647374908543375577247720928886045378001774545912884470048852782704517826373050177981212110929445799916993104033004500757977446765286660474426238532721513359563592740190253459539769008330690056305121064859435777303647862158685254764366556361002865767813493088835919970664443264923468539476102101790278748048135485330362821664423434270548557181401480114050068672520073542378680936676026599247517823366003990183701957374212448587326011532254581747410076699089161828492230330167580714194413850534300277708608344419667016445345531819513492304542332333760725043266114059372999884921160335596777618522439640946930872501245257746758147166334688586346224664607725245251134711802566719841788571575282249967411970614537241849963804958786923738929362040981840717368612371820002041765937793335215422027414513804908414241761853315600624322724301832102578443199622625577546258099868336796713156403651314163930479229652333694704460949002587879095997886881928078774076946405463769748749973873776038395902925528564826783161037227561571711624036596635520710884591405163616861088302938485354660437106736804770167712097727725620792869528247461394030722749627714596189943700057580260019671742843082613463098027667544415608949220623897499394407813203015174955599886040471101893612930109364956220527359826026814644526054429371907215589960392535992244028549849282635178385875717139914636725914137036934166960251477378490380384628382413659989905777713397087087637203595484888781773626483245810019847313856952523889270164115861037630656467808348930622385652063726551788345616647935590738993020015918690348215512020571878372439582526549688818629880288949291479396973902374074129204758905051769283914041754213726060339777198177146650524807093344376314475240675689369908824246676599836288687047935471673623811513809808985358010051570306131574694917441842910379779413331761534262447352313067977287697977431423394370137601328023089378823180872751866825047606951760313343331594379951239897271383501445255619326556512088954977372901421374675347300273144926555499670837376915494430647931968660252734142901444204423144959510951706657230997509302246177796781612689077847240978374115789706911863615934162987982204499571900212116735654230768099271050930412102711022434231293065046799135806797855408165823538985835403377375706095776429674598106397119815461125161426734988065377328903966858133231211014809261497826922020638096271515582320844847828299639123108665224093933674847074289513117872280529876894152425736818099227250848323128628254391139304001162873087960748301108424888821037640484441013266773049148541782437693116189497233913780377220943320861625464556837561528680384169922765410224122755858480436074792462262874917416757172007792615446385545983036453989918952817235372611820817995897462422949752947171822857557087638285203441532564195463444715992310149526875642593013163605403985125061731284225613584923658819619256817514397554617081705025981538748514674851940281655075841978751049095008300685833282059871356146947883833690067297989875471813924779644720945788526607210706513590511090502172133005967651351842158304303847177000936347679477135337302894898714967135239568029538688684497126348425550708999497100303916404823600526820006405886701919250880798808486124982573768590474816251270299999067849166549363264903037293178636017431064278618538753527288768816599903515142138609274990041219999928504637160682842744739499576758846568819569340292122541389669786852284685757269658637814391804234984165924328198060044207177496247497175806598179409623625204165725873907805264506539174170454442360151704484521363575011033478577535507440842024466481439776536881851019076392975739245185776626725221617538241002299207469661039100285562702555666327370756863476828028467454096952750144349277730123664498599214577767316579800308584793681356123832871948459881899213315259737699655739968536375767077875772453336497159878500880191444746080807617349090160850011593180559760418168806254192345009125118537687193531495412407110313745311409444090939765419289584926081216690548751275310864202197643974411536313119108462114372881534645873712774399252074579686820705419122400201745987803565931288224697713222424876804400369437800014472708119080950609629579617240479939145567400187975636794734287441498823017475806315711024159869302798801801719653967874650387640141639194808507630083409091256693256924311084596816038405035003146061150493749754738070078851535223051541305041947303491354291490965339870586646092690657617264167446873340410191339840162684657383925078721520304307148642546244363573498402204376809589473447514534497242096170251240870567568063157497627074822906050263043017455823524386073573801070964546734013756437583895429891518446701405218683434281242527452477430857049421263908263318135756786307290115391887638634730776787744562108908452224414043158386514126194794575604181186481531032234219978083607330978398023418487502075715930496448890225919802459170475740580990701647398387673411887588707550622473079954408734700181364439743111911543377101128020472265301592258935536024314355231708617933104992025260983133380623033602888053506961924166267464221728332805263822788755830579516507125071547450376031102396339117466443706805859903030525222136371007741226194140462327108283765876398518896258425061224226534842759085871339293548460898069625168241833868227007536697214190658624574280737377685022012535894399233759945741664465123492874099916446190142508418539295320851818367137568468718956084988745715337021304064723027589261121823812243451652685722699999230767482227271110355652395806330701969283642201857150491379044086099947427971214767181505858872931760019997078178985667394658660291224129656280587170696982836420061056385693753830255319144950173163973283627411932157425357646880549313624506866643421173954348328684988068532248722389527672897081775633781036270212194140259471857147401868699946937214248387429056059269317062275875002510978123398108819647990399692458900945271755220930805922438303766666884994991870900800145034899893590822025390385130464756659343628516447227181365424958937172409642950524233459141151415355277814519564468400076682446582031669873153834271231461621995249033543525293682694218669646216876453770558454273150594961791972376121961866272782979823339333128198739511572462341965306563379241140528610231588040152548285766994066982433581489091724240377277195839121370273595180622385089106199615899335504577907900482576371744529945074226915577187220625993815824730929819815759302011197923072147672864656821481316182191731882661563628764152513485632242653858533065620925102977993567261378728524389801525921679733295336428562195837846946333474119977186992239279887516968226092178802493531549256146756122638093092849361677488301237446859247387810637973360169807897250687517732508187161043618592073042754948456036444147095784066044945636559464006972766844786543525132712231068946806254790302111961065243849446858576385343634586907048586675890147285385852081617586693665709913819194575605653710331580415813363740797910339201535041821718518659657375523353000876699685133065016606442116615879577147486925034972210972189873185816870236019307893001874918249733945351982599308901060952858646514450991178632108781873301139864152063888214761519466748498984576354458081498752662534524662424462388880191724905329144645223967078079441747373721980027958824421194547248884164147536204253453102531241324724574317079558540040209746471009492516416106584501500429307778374293837551715292021692947210692108741115076173978266145048430645633782942794826244253770950250735203239124172792765544152140578999327360883639712868597491198448963764626595790469849238362161696473414240678631828825989131154780883443425312124200501009166126264965234855871222713535240894341416322293625284507262295496393080942079470087822259729239100151913223685268704995012124199470783957004388619472496754877565489047185301936194287241218390136025964029037498613283776605135358477697251669516958444329076012683217850455739751573055655634977402267899048276538039220816510421673251864755735172070519445112488046976895243079860096107059275708811213233873649744952504468528202359802656089848341273322212138555862464400209746787923411106950591637169764595355229708550528654588393870993810855061828842292628391731453729701862313926487623532994986659524330906197833814758750692256096623368510550351015176684701872680027558501069946758314565498366427560882731062904121681198582034479994383611763014302429773792780795876103191744981781741334006401935798136583981236235945771846886503170886731382535401933454464672702785665188899702615578325697204733698455791979920564974488160934514821839358025469247272403012240608372342036790479814112584391895302648990897372062195110774499304369449525607793339145287439347884111191837856805263209386565161036176337227956935564290292693746668620670900359136233003918728102233568970204418870895081713600896866447843635914243685375514615836786289816888421100061331840438635171723859438283877672119503972183743466330342584907114949017881218559048830990278975449394069247787696310621318993994449353480152571969409494625650958134364211137547370111836422069518931218675428960825511788063369339596025051136070751998798012002401709545477150571204863429203465587036070194830445508751620620345961564099132253369215656575398560554503694791244872130284792771006561137282714626694131938583378070194489171792999172140868463145885726205852451011569921380897642885991091328911954967707111581755431969796140005254019108773529773810467370987300203865294718378375176426702156645827284897180687637033212643645675591544315451783059338969715909393917633487827992783980026042677405075908062921175428444973670260856479019214193188870981155118517841881692253324518231671180562779108379207958901735749828738058451109361663586822797248273123136946861091446656205590984066979096621845143530791068118879048500497233763814483041344218913772412606622771026064136224720310692165891676696334405603499372023946067968357290292911911396720904311596879248979262276948307207240972993878557485054370508679068479831154600505796375104093653615430194165763717757528884431875079901445835591454557005587853895977544692353994214756603734663215960693660024303306889010487254026370505561579172812779640918998685071497326496315695938549268541170024700447786718654425880238634368523468864428753176854492935179659245869453724215034510149046578413973136579905425314513300510531200672580460514456768210648342529675009790717457704845034797522099267574053971531490364686912064539033495674860110071008236022374829238638770513221676431646097841765538743817216500239463793289118617418961653258980847780585483149038100346874833686399994874099721854242465975640368261454062130980123990929569933454970369437155668045499888806294258418994423822224458459047542825920974076116686551160343235399463583568565911847641686447785741059608041726598363644174382691811345950657812277833383042274059458685581557815089132961153322867637833638629160638539092552464857648496520276711208889367076672134974761912929344544696475063854787332309401857948542457461633028004845420380239880094326880373032335843320552659724881276795084086213440971464127061790271924366609412560169838854940254009563658538494966663299401370342634754540908966904213528470427296076929763703057727261128078917721547049735547491437408049944803228132621431644255449559032918750309037441675540262510970371829645673282410347680989276855135091292375056059426845198450026142240579623330974122734208266064611536971931341515771240977115348913002558753369781859871101059018746417737229522649733748345656962417716993208946094664949282836086756391492076078352048426321125868471203875186758977676344451386999533726756846885632043891119093315108609650082598094919759691246336069600694446197728446256604162474250673218540469322451358831023906745838716477468176285061032938683292494750011740307099113370212821681126890612994825989338723204742233379280531401784097942050657079112767841758986142279764481742857056720105242139995942392959279716648751990915656283616547898278393113426794548876809885588642964314169742306018390789722660512929282387310934812046759123147553404894712666337751225589381370539219813321915262424016855366808051051591636362017059853824279821030959698421799156244520147292669339503978214227953245000767541674634710681054456184705413513616421307695797932922735982051941873072810390450021779326293669777347485680905874770537543522774384190407449197097929370870142999943843689955275400623318459293835619870479753069088448565231709605508466671864706609694755612193143876685500198131184217818370775009377839473527881326743385720949742420442046541619612520456881646204379649986002815392311402365445907598777958989818003090072486504746303289432993759573220818010684335072937174472530980842057761714999766921112123603670590836057304780531951660083028019196064092807213156025557185283811924083521232738824808270606523499590516171550691344750697004063775360943008495974920050899082328140000167816474190638797503444310835032082326077468993174468991169859992311411633785576560972887082394162945099310434636776346875242025839698837736275792377802902003895986166148638757341285836878707647091871009244870746109380911480326704322016416222729389344598317995417708474331975017753537463864378601393593677638488185605761114021032674897271049417760014086972498540600908166496412508933765188214423193492116410063181583145165563736860184037502522263837986412504565454090070491762261432249701122513921026639609720571525293190974540151159364170099065644113423216071461669505425286580947398426881419988368637508278987039665469918274729911558862407058785476599429953875087582321347070346964064839594659868791727036986898423602047782415083234246982312626280447517319733867440237451384675341509271616724876724017944675975152261050418720053764528282163694219505324635389765151635972773402678984666672549736876185974789488987946629315096875844011381165064226617127105942010874141666042734651257954727516081871859467000835589055106681423387858626306109004267449789431859980445044547746230879955286415293041827764582436566209501209423168986716869574995330038401830077256698359550627135140743333633943388689324428884131200726773298296233690108480326877608677906134965768589511578157128616423791860008312972300292210110259555160128546459056162395502653917614737880364199128942172478167584070004805909841881345674816646975201979811885621211765571874090924783812308070540803997445662418955186791385514868936497982362295901652373669228009847359902367021799397274172715688164568351910572790382547033276290846523433577144035097413118242280393904949691375325200731435445543305369274612921148870421472416107587412519781029376443150339996419594746054320588116714399380138144225997593647696652727893098699892671639940628307225700509808534777417801366708713278632454706753326919372317776860961702852876337932252878368377240735794717400527981061429522314482895224083266108493900695706059347588579946435209960173356260015552289293090051017459190834959524273764875326513760362194751460417754410699715162326217190261395477409475643998241113226125476746993879526143867641329956491482499560135653926833331836037813679285812580235305477084612313766936593599385096090629406212148665619658061341520281694176934888600364699708749811394494390847948298941943383586337111115333717762475440367523917031972861767501547427479761446138911999201823302089996500680100294008561099144936837716951595991760225518406884438126953365941276605576362815440192441751729700651801450383029830969754353175902306566229915119414852032654028320667390391194872232547844002993654219843598593424624082733604371180793613264713176394619164358773811369414878770280606592116416940530765760791353647530785215865668964519953150636178516240202794503540664595189235560791080122126915419207197196157704644510532073761392113644416933336647977708564187701679187276198526872812561174955807539219751599031803628208856009968187489686378186959841318601918886533334020200185493940390113571283545736822420440600377847864116018482411590352980859297928164864251351476123623744649026220267568227876165974119775795923282627632675046022167420131302573012216753994012699582225150834538886149955496897487782398033318514576670928645847639316853581563270165017544203021325625823667396511709433265808865521144354791950969678287995146201524035943335200418733012505706557867367215956245290862445493514938660942185031278724103258722486927557770829309046399477962185708285788190109493626647878869915077082725807025589261963665462252354828285470782772433467539494912011474731199457386937098436192548325549666074661146345248917209052183648363777505655186006520586891602749674721911210258349054540123272862845698823538542676822103562344623469698153392059255979982290822251182328003904944535724768919972521879378381212210839216732031522013772754179011920974491865347120374234447301407328597928511199199938486789069990861518492327364296983372581593322378565172276344284654908281539429799696166837669204721285131874986591099497196519559498785589038784511153711576040607907836081341071213882961312804277312436855053774936717663686098161367417110473830327530693228564581865879592623940380397572946639607423849605900573578358740702621717843208968704391554604969554106937431891916887529571744224118428722207060909833365427397088394301372331905479222743805726505447250088369149620466542128554528503955982594718228876964092093897694177681171299231798840665009790483536523299702708996837579250500736014599047022504450484452502334145663329552665748337596358219965981069227786864234053641130729004004941918794768430677453366613647290982855607677830534868680153255132830439262119831346504387101091148386403111612009193191415963072818709578657970219571436607735651893812959380174899977284593024286077309448205673726264545751262503730390366355133616153321374633964299087360670650882119665744297350085922856892395990812968801059531812383008955957098380050630337664448588890929678500388168381057635802071331630933207227125416116189126567201970890491126651542820247028884174546746885732369458952565584074645049754454896108209522867539644994459197401268312514524296982812025998827611994540570040442526859975459067273224075090439490510124723049942602731789882236829606230102658663985036960486461832688637980004097172628451407897388638789767393173012305751618630612535012266259666326708374981869591053005197660657479037402673105029832469099393402090818376406396352101642475576290813613624101864022256328320704208814475902347336021053298333975550991813703322412143270628670505908508251689619590163243667094391791488786489080402530257481423557593632540882584208319840702151996815281542898044681516334535023838319371079583497168620113229568213765106359374177240288595921093269229497355122508697593303013964918688466688926250138039791106181963992843405957759344992397386568965567085169170159099019659532579490416421162613256565193331885279333982271493300772575229009396924595998312817021186456809747785417003047329650192952231345936528043830927794835419494893802196421926530215049705469623747256541231862435728101708366670102972139858211039656340767170434559818724568711343325453683285803198221445576800547970490983725458625339235901092101772669499047456049445616984537163983863124327498525145780274509893031450255008725972507806358984095745295728304715418109338006475705319614211313717092261119291545400105016142360261316495571680855341005155755818002588734096682468470898930238705967813179197826366428113848783186160027083705199729104294489989332464890555850711145739735606737360319779679162268272337379913567030998238634502676389248017659516194855197782151532916522173120439851853768586681800152785418322440797443876413613282148464538988447265081241291264060178112652136930186412981235757095792248519897218375728929055188455872390199604260510404697002449934114524707392866927375014529542302448978636012141450614826618241149739960618372802707402466591970763837674126920725627013141957872019233284647873702135698996259250335853140993319927925828625841970734846726384008189884979115506963765588949126069094623177516000171680673592231193987137863124059406387491088825387770314581829719660571195803946315428900607411086622261067387497391635928737143454301600221859920282796194273407256663865720114379138813690237897478752213332826881069735668317286761886909163756869909275515057298059373029378375809212735470719265183266293522924847844716951173616895811406089421483009027682133922142697924730522030803248331899503175713099197119536252011880801207174711313970392398381487021057374070233341882301575938449527407454966038154677482109940158521088760495203348308658313696745036809518186939796303703317336825366076967764903562145528483137829590184347968036170682365973909033654888125864879995593971846940964778236054328659237943369329941843464834339865138750252011553317580242533928318702143068470198509928762352674304168650122956087329482393551685002720022865152136146722393962486735019541542589161227875286748590516642457571723759366513289454206887850448927513303625712970547194836494959417181250655394504195996468725255440402834148124785876540985911226531238135280049672443177007150545240330496314689606880574619470999972877063812096799632157340881376342379077498479786166819964904286914888026673188064956804530235212982224478175709910447515580304159915612032762109779855762670606891702734844607771457843187089001709290214175605819940156803808087485996842116903282328243139891590941964012188755113333265719379239074439046628055975867272905578551959515941025576006138737154964703821115816867569333895611557136257092744305742513690893355258098703580494775186856509947236219536679147898662074650606691430157805022236064713924708916692792562703617670195949313492237289624502980956472209428531907419385690821254576362460341949818815807928148276579497532074668429863672698926956364502295230945171742891687060115879093027885727971746027849038114450100646247928079270310858974215255435099931144796177034438098526501399227497163857738068278903524130705712121735230708346898635531068315293571417034418514795505077024364414355946216711914250150037275891291784635474938720786962758877386296677287877928925441437777816060136471615712990836297128251007699374515233313492380052879315116146254359353630077516081246431515515956253512873315966960081702359206627136440801845659371417496053023537751029411813835522567810828314508441563643500673750654162567536737580717705897143488738981451377186401507599332801165537724263624535757710958315219525193062092524183394106783022553761899847967645685508561574065766468268667619326919905474176233184963243002960374018773505699803365629886203620233066975226610043696725372716480977912746886328834979940558163489250981465229221359535281222042712827884845517616497868494557283854343307324676677911195869389144900249953878081121681364473068170435842053331358311462096667524983868590077987923630492934366859830465975006536862510672821728835767958528163855426149467004295627281337043487893171393650785561012262136960835601752161620352252954934569438037870377203162537648442539008554211220174301346792082865429467547975974924030179419804000432161010573658834396822055092675372206786622050050035645231528347237175813246434369921466694301787391836201559089029319266140214456471924750083828860000456671975614876015561207234888603092151068313326677986752618621504149955848660007879274055382139131616328133204491410232956097988411272887004051509908608653731728863045167749887871727468606843599521082683822158611839442184350726388695718598840481363015130116970423597892979965174471805387187722435239029660803840564106379042198741885641219304227912438410879855597825290246535408980256531559238793751186295781054072600941301677322167691455830403104285945893317846004725511261164138739093223673273516763850519280179627086946559963762655376963723376217895991253790299024327556365231172310713758847147157196913194315416085981403987117778529020850992636005042180379200431522008269950369913605708656958243459013003395733234776778943337343576234668616562496088268213997876802996238218522473354140488032821555082976170884967961927857442547188423477885934868668618667908862360772893809311273976534791481644223189760149395158014755618279139564472576356444678865629803462354674666729980922792894345516190935729947448180222634883725798228541441739318724342495844561858371956481150073756655476024090949545134854681848204408962830367214219682270642784007255597985934832388624284099156788501956463847517766835343339937003593432517616025750111884316206119703104777895542794716471652960841048250155280622572562533542466254516911429489052621975694236003305396096210204083086359466095701506459490266596352063090319323429469298983113294363180757764197642534563223354204616176987602427557454119026587849126273531750881712009291217645344864860394863664805855794868603416197052729580455454782496800636194295591140840227991516766319142531767724199401376299431627314693017363803143099792154160827913550616617148315450322125101748646358497937858237455016025637502005492203030609368901707150763907128635017236294947612511557526226719663259973519560046739070896078563159078623089353008656109563331873047879085939285938317325642855642057650686226465913952403599672895918453016949409297284099220476414603776471284746511455516220230274973481108248778897961749047815348735521398684572154148322853370517216696698122915157556055494471275618647820011091190479338982332120921387936794056026574236861246465687661403392354271518381252640220182142476911610966225760218343821171831443872405364520382718969729376573837366968966427058373102300925387758660596690116184162998036314957895686081813984507911602852841302160059452643431634805593901957948519247118247000341977875942910902804580938942780820939383545538349952061209303124082783722186043506051075152970003339068999364910735290982103912702889558063245213065623248045209227197470655856316001509678206807351690214109386551274977413477984052636304819613838636335906786429585566222980450175598049963704548250279861999465858287989703088220022204669996245243460552440423206663109437158095663692657921951757667257385049578701273903288924377706434688989797583987874948795459674595061698721166078414169218131841726133310940202903419636056646750246982970513292194783803888272106576881748906063742212967814598251729812204657390972398724205519500652688247540716353489980650778003700032315313267687290885782823857058788362918589578855166628929191889554699890959223615040202571886013238761931792341683442905926607300816762231681835995895133652390041061997294872196268703534318463532854438341378807928101348696847384738177324987799197766534883311597826600519209341272196147826437240044049946159507340242902159052053078017396644770944771368443709824406839200031311016528880431104144844366643540478751955017124385582475107540402399112746259380249912598519054163274506561487746006180691239620429455531728803744724181404542904171770607997238727422124590403961360596607196909823898103048963684122088832442974232601426576938508761939722520189567471833884764947847242773336074650211232673677503585834536040747176651280071968394888423056956255524231095913924509033003400874489433187430876758724222012408250052219963757280883320236730959413725064529563752365832035485951024608817990062050792451518195361849919238864655341889266295926208433307285200232264781747305929648351775884568488646297953949870133524746386741049265008726008783609404487196333508798664624963362413625871541303521963288462097388002915645764599172807030514837631647120049680056972257213269404505271970365708849725631110546711590662280770290026328378815120976972984425377073413823726200215317582933311723500083557546279108281901827305781608777512186147336027781322816135819265854336418699868121966774768336926910597467421666819805999980926482830771598426274187935150859110587944465569785312213915730875531774656584142351216611938548103883601138461250870105462694034612494459014357540376601322734842385074135521418041428952276130099469239595920088513972227322180670314339224286400675370184201053255574999342296593700701277081879001981112007508753836441549879857858046016484823832293943837549547210432548027989323208806484584552869608716858719907198449386784655737984227423479498500075007530138674482136425482098445825618972454489046041686107651776485470453453833883773509613877704698933420733837782257057974995741436903852432648836842078573481616069784584190129947829399899608663815834550690676586461158234498549179060441912513439722975261132494310861406269076984950631921958380739909818748001263740324806179642273774959629507914598640644505677383319487764175225493524727139822266390954303253011267831797718736725843083602586709369525789791206171656352136950038350635199431839846849768555114966010678024613378515677452177391915422568070272871261399805067855935519105162478869336368081567329997359809139063384058598991876446135052864327747767746847045898183333541974577745305091453729458571453809087935013474953057282886303798125445711824188185185421629525358998005457604186139408797148808819429954710425646737520207216285850802473010554560640166806871885686038161795563998933177347433841268339601958274629969572363399176475368164343543694888495682340036575523852621068229417253808402846458641428075954639068110574731843045504158575460982314443363598188431894606261893747004531180522222970223908932446926985977418326444516494029494953789876452979668204615271472148958999333412522734429034167348767956293954370832679528535082148284035105359718517202848784680081692113570728631732459046048125025211133239766316058665230664692104442166220407911037136711535545819947555108119063998340759301614833622565602773333017552328203374058666441055231431663278127438833647899264986911220120225716183122562794814528252741141396139825579197598318022058398525338711481768687551760387961473398964984643960533394812390238813438159830618134179913771883266126680621783944076784564378195833244342774200293825805307144664927554858627754417973620307965702256234838434767071959578030274070348744866556816999022533220123672015256015843728681819117046368546368988019624954082865835934779287361292927073645688659244507320146564853155642869485392399677486106000959792228211627684635356585589737825296904507078697153799726442112990729499498877976156070824353967162153183073214441817252822238056246120222419966959772327671416268843800803001099051462865898159340561621069260134960575194697922676871180786952313331102345565302089177777450517315174451487351131104413644802450280758325641882696537035273066769738249009010328279817471684889580880619972850259814348985033928681841272194280913509886677163414573671827483278304114116926215232442644215450446633242809765133410795837483959965122838325339950874703352300477757159088898200618214410113426470997955820477900845641734116703911171445567992913309827735119538962524336534886572924735631457872896324571118569061859171002092554089686259868401625791620244770720253622723414850766735549121494142491878311067713361742844999855403109432590461562754361734063847553238404998382982038767632987209768378479657762706064289500937694451548301835758247886834700590627206947640044037899455225539072153323111178925504995172789944621011013475704351262329637586323869646333986074075514302134656306443022010862421975349862879016123483663412255139684785421878803430006178402745986585110963701272992423250908526863934011496530627188100680568334904420005591479484667873005359651119108876030804536023074751996975087435397073053249541604371708255471200244215053640426673916337114345489085041923813615886138636714950306075898169858209264383032394795241927590872573041573705521047971749786662859916696088759146166919883442145343167404025354222745908210735980122963308347886820644270805713508572494716663606430039326930154865017190323771021931850806573842559420085077097792061530663158191853979636936840450094194618090504752492149025988191706165549712617608724543970212876020024540694201502994733191592301724954356587106900227796374930262503557688057936722763803279372434677545422795386179346009062609475587158119798720787586029892759870850279190153719823048302852273646949054715040295464190192825737098824578025465210575696763518520219878857364109682244432863890886043999776302919787464384749975599670885779681251783517613593764402531134750941665009963598516975335293955936164070825698725842588777032301557671457604477278397745756565763150104854810455315023786329051619657250920978765601025145858588781933731944175261343039285743411257693403564341626766199522558038316210650639013482912215547742154286686466644348057555718276758326384397913131173899970121549988088593531184272220337404084083489014102008061293640067649458242273164668411821335504340710528813019032930047565485074937171564192110196642264717217173115223817630035201081790750149282577182766325100625855470916680008614605468478214107069117063734367791510030972607039595309314952133220603788800731833871286248962118121573204251837134802528627357036109455037002844662790331212968930242933698059099846876054743245497432682806570275235055562036861050339904320533995242118841347230410910881538681336269200096726247849849387087675000066634452877765714782619101657628854272422614370816856133659122338349983603893254021906579052630384006682356780316637268218663496217193841594336968102448990081194098515047403804251503635097089132777427309420348615176513238632359436264020281737113598404658793046839965158036814311213395971036561430646394873574874937225589096350069356795154134831687209217638074018903770117081546802055150573865899695594414226462764731397264940459147715584605392711107025760525729026665949394981328956585353875367727796324885289868474248664225810092984248835804871272785912648325226275250127455026844781363399813419679453177902725567788388175045335015831782666201411254215050749113547818533473297715468219484529229918681710255842825924257177780219257483860448849753179910104612598926704283859632193012395676707414099395635480880957707964238247728596832168793240249009023009371567023248442003354328922105716208406896797515643125166166641597453971715340978829312755369760577163586613744046632093619687953478498445491031951610025870223995907483137014735717437562536650026393231265428985758471302107122454972608841026281248458192279916811058642794882918926984966155633812071695165084723047940902296982328168606198763547802077113016541473301085966386085485080029216213826573451124017252299023029959476643523207266151059555943173383553588241532142201344252241411128030475261789174947160035170288635557743246463190681304375603122231388600784737523525716512514592649540680848540542921653087939189677816490718173319352435498683670612498093403567713421810037945707993725279508553899308329783639620293490229018793731079772348710155164050763855371992094420399956849332123834141469022782321911324779285537964050161336732879079115138032364185620443765664699028636526985107961027409884867178529015099217227176464927646136415761034876602659527157690322996660331601278563863957985257237924454145797789133778841099676186116677939346180803905454821045041058168273733278190201886451176930190869359897776813990253999028539524555379849182153969797905625870794420816822512229055708038522682701345274936716145154804457782974142466189156449438148842961176736910617826267425220668033654853300828011651561452279990561855692008696048390913349725124294151709655413916263938918754123459860035977560682141217081622557980831946294373179352309460680711860142662441926220586411819572661717379381583370213261621793181370491130733336214438320634011991457813008124335969303134573128414003800813215995425801757835048431619682041763141974612781036127503249380839339555202610774666663283959607168012960514670707997562458956274061963177985158938296635776169965429780279866714342472726308449657293038244516249965237338313854988855147427245435190739473769984709598396349529431841302105784928088591199785238231045142399659298300861895249450240552596764902728694768479796803275105816522659182006871368281518004039220936877314658342793392526639052429940334495099062904193467203965326054101876934365009406026758956238115356749720098460880363136261526878093747624053098160257345790108842568171664870275781903188632782052368499040081589053423459721172154025398766536370613685290592232332451039085122406650126359486029492543498544770348289829671168653555626956526100502749066639274752766284602467514495230681490710794307755616205747705833749752843405275071249100932979349501147611358475347397082291172383047618171568670944335214409671768220755655949467990200285334069388115787122289441038286259301515782013500754176840320837517314422602751596566826508202287627957102147482886338706776554776992037498511284871400730370403908081608071219603319263876146797961598923059653918348061221853393548381359576994982177148812433547751577279457574611519023051183601599481107084281325876511371757971064637232039565208803920131843916258636727085007835477688635711176256339547043898974895880012106532296144107646992483225953870547111899793040570147326324113265065409102381354497746062870114194917028418812447701480395025979539920863999263763848229188162685279810711177166273761503225629443272559841979110474277692603061526522049225192956343799622247235277038827835837480299349767862980162197482418364607647319057395487017435509445102187218622165363192956605366085767778604645547766593347117750352770595544882871524139415033537615490259910615578033676335592592500266551337143775477526707897919336074962034241634522803506442203078040730232132274008836545969270841241233893860008033866216348046007380124364636804456651335565713442334104437722829070072330870672220819191116122326362530938331082536413632038088249256065154796321430784461787381768464717775043735353942849662981699877670067286894351903681824107121335615090973314327763787286516635227799098722171189814360294734501978262480734826340692827780557983428506185577128596490361612495606538714579432076607339427080771263822217592397465554011626513825188724427129123901667330960166752765290004019151823228515461874386932151296744714136943840673080156799027293321831590619443538333159256815222900078820338390332440116472067044183138780786394727343701571013472314669207919523982490803834340129890682759798309342867737987036868001836452998982698668514426677944684455983186843359351049236488317909454331595486994610280858940117849420960941155078350537349595482124921483276414410695734281824784120690961156039035860517033535194618002813025117536170556983477527525376886819097214741596799154201624646442922233220080444989237849691601814386161557045364525154010863949365014157633696844421993918511454796805345946864257223646854069716452681954600175930796874773232831313018056455080803999068991178200534551178407388799399316069726137835089875042287324405959016709582808603591484714595055453674399782368358366652896337628226190054204282984873469130951761179545676480928135008005862446032880557046021709149888696578922155528486270544938219215426940766408604026451469735893163351488625644576430739230112599815640119174106284987271186541778864053269713269347628443004626187683713263579527454389517374246720651996912207682879829705991212999990490616441228041373555328956409917721973132121197066415363240219237691551397240195386617690872582592553691835097022589768081039073215152221445306363113730283457040031783983816558786517167097211330269965494094405081683527094405093334788469208510667473117734538857851973451186824626585343904684185899949183443508112250444603719851379981715183407009660715778691256182636633344815757199989474382246077421418558898957125997015799662775820744062195147593308799119371811433841118657255134717660293390633576920824286173500323334941156191159832622544585716001501319149074658029505672264485424727441330745987697800143385479290341014695070590045788848715055199038986343426610889341178436688895046776537756664508522798275451534277026475109446989701164719641956958880030606415706054040973294735056314848346561018701124770457779487553058040802269129376878900565222831541160745200193904680314124960344816448513865433859524683085904522379647422733980505758462606417893232023657507072593576979070154368331324222637383173731900632950945492026633198936621504340040718789782780469745689996365781011507915826529144601025345637380189464728972666343762558961288866368836568227345499533367116506456038868357946418164128222049143431057536023908809945000037362948870146447946668647126561011669488706517298127167570095820392403422092427432956761900902250263058704327866643602158800938206100848949112134223748191687542541090275356931779375041294179259314170931825523809877045074712527649969426888548642059837618325647992839858076450076401234504488386998607250616467568623398952587073223726840103403135295213474670924854076790026800652838081902501946639968698333079939021494203317301121436086017409125730368337937577759327063263203195143947294876685525055475568318044547127443960937656078835029118032301920039780757746808024538193892871727866980883274183002242534478411878135289998379576746421406440865615826671400718768006922454760795786180474325885103947743542824545049742388707474277359313828096117922314441226767854248442177644183621778001325848460301312128200636402398354987050769221266096999866943962269674724801544074649230885714642784167615773609198811924863479619248114880778352924851423071274188169509405330223988543223660770257786965894804591734906492075947739280482369728577725960668851843896100947920252512084247845236489263827093056052226740206295020095124838005501526572820845167983903197299653825367113862132292358455330617636863571618639465950650173836406803141348521233051406756064421548776997191867077995308840762359408585394273508773245383320754080137649670250929310080416581433364448830197930899601449311467005629370460193599241894525117159257006799929533966106921970692459791065943075151702824250168671707994897307034549965025260589373904370705253782069324512168568209185571936193037921422884806606178025246992745082427650806547900843923307638526486339793072891425568877044401786437286698852310429859578499170032353430724838277433999096682483713827348422557689419392949516010707590321216055806876155352102214430120506456754169499864812702955851875763615621303048433214781623774300119128238220827006106270794524987224007915068871807296649264437265175299193259507096025776583127923518860999198430732923132150018696831377385309582857502220750086549849000747089150150778986965410704241393253521609029805588117794270503473516088419682037398850161024308861759158829072557543657654654899247036968882115611061833393459489283060466416823646225720543986631737224297523135851526944552280909753361837320487564177570435319722644473991089825027930177407317505980674511995198221324264223601840358747364253911646264300811881833264403221081308662298121606571923866404128272777387416996534366629369924906753432088223721003345198178250415561823708928384682325376314326576491147487909923223233979250966824991545240326678545544676940217380331541595303006243130246077725010382242982435060395541135695313828674109729939948229768680092488952754745229243886268956149920659532914962285949099778035243202680464053406683153434731616021969201856267135004319835267192263186348877723317961988767973973403275655296086687104575982312564333958787158617058404277494532914823405650346909881245723517563508913924345812813605495762681674221623976823625720459514819884588657999295696326911379594890349715216450329607188627693838882646476146445339241350653137736962955812767049113163572990265162425906945902539192123849600572114188308784274969802146338048733449503743038309687238755106644327969288524460428504834755469393414529193152178929210228750075091352795077362388943171315814399538372386072412242533361354879014331556036438824813902132807652280799900973432031324383172929997659260944538263853405532505009805838049514740944017404697708709122594762552723998232174568092938120206767201315545794547332122963653828682352340808894060590503322709535338328264690343464016844273834690850400541677630112615873104114249746468788818808858796397929786595806488556046853849152591742806655451530450632357682299562271558866424411265192565485928496067157210944004459045550614224717007099782203415830794578966403966261110820865052743051164448958005859013055073001450853715896457167098730566656750463531752708568769012677071557916258632260417362360558189668428057005817621833207594313477290029396903846006475956346267205041246520808325622044203792104012726957266162762122204234598555913962519740982306444281146848010917923704770709821732047795287536304167275371555419318878864579457152691228908714760500395748879735979105305139998138460438093576539173197352079758880155169936641032126635949409006301925802947966075580516542763368055682098420074987925906625224286082634865368720992581179178821462236433302383027427563620831243768570083521866826076708006657455238548129138787747572003139300520138098202477431816125915015583351082446357454845136903702754544271681116437905567540421172252551898185729430816972919817387850396575882218419960313292313621861341940944879171565599447647168333101648384436087041733424732132533830295515521780474173964213325444905482369187609166726678376883378239781725193316388479959722618635663790287769206985259545400373305498189302590195295727088770886925366054489903476047390174666803381553478013285398708781486163220420360241198669925716738880961694078120780705927714750933133270249825241287810094717147142733760529713733260521724617870065952290250536095605775107936397355078940018969598319571993769350576730385170366583719939587452309974501660490700647678594200786553469025911546379753682195899912490621048186328808296789203621851707560650297743702410893929760358228690599827133701423039602679518296760866687466831222327309255335036962998128877717841224042564035763133158719083050612857523064393904147343196042837256119557390942048638794475033644949683689682415393607178291140383918259320568721546468437555915602009742065042903614623623608167202158448270268998149343362175552223486758546025370090070442015630957732690389428422419758253073266745853555765727515469782868061413312606189661693979977195841180558440135498081710913692603116477149655056269088428150319140734937598438262554032082527249576344188008114224174680646066780897429630599846412201368312618071204296533791366844837668857484413656296322607601589890127340275324487872498473833649568991057441803945941826036184905496539715295809216797956960044815762577961075933127911661061461643387138540540626560753022849326111602501132055037774822656163441112208645698080383854591698878164521764694715620271524909430465962992087542196890898831949852536420398737533625896108955197947959078970266424123308544650916102298558313313509366939307183708507512069795841635833899220670032920830347628516680178592204491728812142216628181830490075388392847636934864367616481259803439244353539506456549923049579113985934530264486511973807289637003540947543968455448430746709048181924293487988678377373073773156772225955125229880382596603496548860769475460485645800895079397649755078947201166953743551823616845071869931254865426367278605182416190463958111158245530055746390293523898654447249052620108341556078859852308032923221050863815198609043843058489115248160009267251467791916613700933819401907719125518981298816419671051360696765115982203745261332695317779758694396305160478809586736602490180205796665362492319679499763789988741043673443718874793650100666543135554033492914190666994465952221348283188348339263278266061631277457965792455457707597836429196618485221870099656993283447100512585676856338751658614504365043703804293942375675561383887039329495047720100463633136115853473199344556554582473699231479756404816622797541306631050454504273567720398419686272862061263989325162570892840095143185616601505841091960883973205129553514776033407489223128935544407024489582630924608030800271224684034954839390957446291346883229300158326911107504599061135499469695251250633724033878495127146518948863375164873569978352516857671825213464833062466729345156668267217143221564214180186361409370949140696544819226246702407353869703697522797167826266849774518650367636955963286367199329415862757287968920445157088319765467243379569933790207062779292213149121732766977681774315794579167174961458204398041420229974727473888083311638839961885200239732838756974717318371374785904842975015554211427812928712337793599633216431061950991481422863138170852349865524742640808956376716886893051959374262668591689347195890778087307710133072887544402511154349452294550061265128121506937415791298956461867254825165796486828729026977670896905266850746280958661293980282550598924992541043670619915203841137008807089743883516951594562670524939010213516690267434613432095526837981330429439029871829016580155934917993206295240917471011226682037897976980814037282619257675833623144165418631161235447421161222485457516191655295577138341614218436955130667842091149266958495773458888446717306551876088084939994435783622658441394335263963780764542550585508225646164486559310348900052288224617991275202211147570836739927815350317487478786618709596679219418195076614823574874614124216534423081324661405833829704664643291066289638484146899540689321416351759391952882042891351985398567102963000982141215341386653203232367666693671447290528002716881412554516138438509065127686568412615412133907117884034380337848988786342113530431911515930898172468672415596585656065656767531148978984314019768765015227196856107524912292830833759355565811414918354001082553220899206459265943425490624207402430866126984075131353833952693863033546560560094678997054249110851079139656371856695234920179841667169309046729847984925822741290612105848983532645131265567321557498120111541374264252489684977212842915911205807943357870391894936385442072945750864314277824916721776334758413968236806510407288616924571247103905077160819499440545734572733766777802341437202265391681581642473371726933123826767009341649482425465158685057087694206686928724427942651373328300653727643515956111563370530839581603679238069905264915386945012457454104065077803085901417909741754205911572865522752733172750326410434599901481498270314810299284290130848132554372255558435091430133732954935989393247459364485204114813136461996196249295876508155727461058262079327367231227974409580444603568638823359577596351142482214677556075779559008703596711550105636842221036345581439625080288687359382131953599448832472440792425392987475689331873818303912389049433598801551847183007475689556934961709120471519239343910047143639020799338649996938710719384416057642242261849248842354054877231163923626780628749891624892986531836417475023220659830009399064201439476854860960547375648613797088168949033971963640076813264185867210502520805088846634481625043448886414492012695487232254213240718905632694427850484493291898818769991399433767506794677359125519224870304518568621695933063235502328034691062716148552318991477167045703103087530182079389706564369978925792413518663428558931710667354199332802697639513471261817084200281385899808079151971084104712252031101992285708372062146151282316474297556660121513307961739923794593991229756290314498317941014934878807716121633946186880567909972935229002165868444350071335247359033152448639466399642706853587286365449751431415261373789774056880763695634176250691000864632043046575476567961775909200983053768321579235496052022302487513193240151228384685372721301643040926586134739135334553451387186312027730968413671530492836282351286801181071952193980523708142826606160731992271428755434144238812348422866746695387815217328466561896450034927195517312247849166493977374275071675258277365594760893966454127605931823942997296986152430671583464365374067356161906030912250492462880106040844852797882783925786055840974279551681168146266226597411717220079475899687536890808672193891404943617558416107265496796245054121466677692199353551265798969644140103679435561903022745109054799492813119421803819797658645421107803825652947138407241607766192836827049585109431865887779137676035467137432078635538878911949766871833127439930351300998903001654876784837793412910093291794214073010709042214019668042988143822574822783700258785519219774366626384317375503995804039358586371753813791017741136692574896611697467534910998603998311634531749579103187064975625139767794322268012986888064294724171896174202486249966500598796970465557497975636148253129784825727042641287073398543751177332425930064746652968221382416285194719860202449358571793251578545433194700838092920726804231943943197797699963824305568852537456273277849074174672717914817582990222031191349229237148010981931771639457602260966338558745183066891849116823772667067455008118433998464460206306044945835351506558272818222945858873563771786849264069043064588644106806220203654367832662458118737225303435852950581666390938790311879023037464207449178575424168969855026811176076865291316871953075194708224628779780938194093686132877249847905047634616133892363617633790155325205265492856631287666244791123873165756350357834354015797970265183319053692803083101038917466931047295312239465990041626307779349268364730236735482247428469167589826713191548831067676673373628409313139399821786113179936098096566861618539745722016624627700006465791830982575519704086687936994000199009896473836486578290586482496910627678817789227230234629048637218315907434152588554971376211925434340921443748775756301732969045845762139222700390221669175489257053992373661051983993326428520693014713529533204973419945989851284842007298562966478697205157642393130953697556481603214225880446337973341674249935566955480666524188958171168473217913028051694189748302083978915793130027527495467786527826306802527417033355884979140243127796520290168025457715523887695564641300077076329256846506534113492844154113277214794156007017250594253321404725577121928179582550665463588177945033636417800908546670987163553484447715175953912456134042471338568388261249212929713797293297823029340258771636346731189435060302554176935634487784406916598849633506807418118631992254024148177399879723254051009048708239476935207213144490273343416186230142953792907540975292160312900278789558781758289408105548107337247527274718137974413017704333502582044117875726447664732766564211145274034324290830091250964465702025273603484767070201221592368666915973016615765868656869775948965858110947598866057651389476633447869613683071430981221831533076408485648901895980234473822183191003853562727409766344610347546918440137771880590459224278668289640906470313699354095644160827010610035846747076508648645595118008710084132101149218317033913752550127255034093678182257254031779483812802357161802547871971810284828028495640130064738339570924923943138626298063154328841264162855845164237508801454250433781339011093485948872365209424027275464226678965928125264129898628753108091032569720013236858242275311135855485703254415238953563824720996073253732935649604927324310136502810229677508631308412074149682235819343964195240900614865878606675898063645973060208767647550646598642297148354892457408411113004884854466573179016204500009770657466292656220808777213423883627275432448592577431787408579064487128724869481978782018855450467570532695555600823505831798962776181072765873230494045280664538272908729561464896525247724986134788929267192873850592773395629398106882309920029415434734553019132935589337549222784583442582659601547816670337771017322182329075472051533487601730478239117584718129594286871512325213098727452091436941486323315177622902143107677905041976159339634860314279922938372464292995668721234840341447154608716092050225274973278169443526883192790702421486603867167777980009920798518974127512996828147197861409469193542528619526225077723267767496299520368544264612445500627445432820880770425714523078806882339316160520714562150641827948205896950367671561205595808164875487833232542580566857320383130088895165797821857983927717383124244006372899963185743590370731016229400761081231540378371507491469068989690410678978681319437055995388386126474295608449858108665093420441775141694252647549883792612360422540942288060624021391012308024814962000037247359689023098613204330052575690564189550187602972366612433828686608086071853875852529358969129022373135558162985477105483815699664263902210143313747828996911521278171006297581039536918472745596248298966605174170680691241345679036145886756284389107289578927077008906319847710768324702349407680958069250323147964926990602730021513930253813484499789647135325545065981058418679010379515548745501937914260588582095287765409585313153466259230937107396519928299392606355103616993166564382931012012503053764888923558952734698864086562944503019304266545347339037601355333593974920229562625693197710019843781312867151031532917623022508848065911145209514640908209918167633271780273146055031134798582248149527265552997958600743717015109655448078198788232385297930330978557921213740843964791174965936086556677065283426924891441714711363859866872704031295627438638982612611933055603008867395703058885131380566305025980586684128776138127723569940626026378120566177410592764145249414503888123175821386878347188949550782768332647902946766465943917035474213326905257997168055901851862284165446097261016704240897918686280470697499736668131298226109310452045470134440289893700391412529946444759544729869045242655605123119228985259772744617965370791970630291267965853940423055595550523545725637846159006873018869875165498521778449125297197465322623666520920812265043297188975779466627434173204112647788844113296527940825580170672033803694020833212400552072427600260836728767660633348191791256182632201708883094654743860113191672122585984530846825409295590677009031479688036841385069009559484456029534926531371565866814619330693211810618461275306040864758519020160488497941176567516932891280722183809537544093471296600135229586159036361822387527483474883719091778911638620137630937433385717894839126067919391828443752037830286544560916154162011055122435369510838227640494243721203539022142835310067978771138623268964134076726856910942656416030325750691423406201126778355436271177906413594066039421793489144780265065382318621963447613774108095280218913313112940642539828873066857151653863782938362395183292448563506445498501452656812577433463869669176499915026038737471740846213680166346762980823899906206737281819895197503074435849718049197381525429123221983197644310933335260304696325954509761366620830918135303524847807877874754989078973447560166255216510152704970742896267730305595896441337841248379677631705471555159229281596904599146034756203549533654911503152214896596211525463927565503030272743626358661097426790238433174429120770922780028448896845951059978104276849867048013975596002384361917649527882594320419674919441583939762373513247901048512612924657337090988265109797527388744796139312535457555334404163920723560763629976062482818484808890891342925380135654820842801351065365517197324257579088644212249450122126150518293196033673365367762669899420021472171627805971588005586432715610296343727286581459514542519859094785787602964705098788099795267276860772457310833052317526924496685398593973888302886653619372908610876330310797432744106545080265225885808526975826221657161074599757193576559754256568851175768614145253779105652220408961264327992104372127508736173608456175614212081191192857244075959145510486783005202914367584621258294708098126965492934984434546080037194214293270381615228248587929922026498003787202760997972914831568640657940110300733447768657586099349225660049838371714187908355980942589398520701708513074218531449831674191624485602825880197705423232775866960409351643821149261400999248746907592011661891072509127811930122607734324509943431423290683408459618176971507335633350310790327246135876950457194553709882899012074512563155849919543922551064057061969967901868366474559586822271522484159333597326962202516824484924518096901832937718895814128608939829287720165431159174779176488511913289357074386473733552862180466078405971936670705823723666488155202301830092994010277107072859934181515604303484780179487410424697106891941067848026404961508271173104085493803304419950462426812871800901827116680871118112868693166546482303934219062639933787070192229759764211603281554672470638586791922632180397185127668811129391731589707385982727963377281908969421375312300220563692133722231153723102457743852860628413442442210712911028657953235132509995195111190218022614949792822735318478714590072150417495329619176460488403755590575635225071181641015455464400398095590587514251794219290950082934214465133076711969493884293490957070728008233032221982787821770529642090002813685395665938950553685991589397141065194878433334878778368692897936817951666032854047944260555337691716859980639035310939184988706464794427829676651172184661719040797870579249168299169855294353407288033357143820357646032264988016994873874338289318741998101484861247336510749396270628154544000896987350785990757730867884318584821713246080280576631729100662551387430444868728255444771017296804357909451235019730442935528441744292149346997371253900984562384557835200308527646036414175253687175274829562925492741094958814232259198538050913245917289273901023968277611459053155244557663388672525355649636108886909355911280801280148678725664855412427105499033437811590931122537088134733695816051038798947436253857965906656360221283823201578246266898969464126786931390513002798278484189427867739896122717320563544039865604647493999608290450256234979545058467696977419517948328251917085911044625505171650817810304331191976326384236888623184101815757706731943587032325236731654224167221607518847554986604041172704199338114221934156566225990096793729331271834609355147007987413364639992381408741632534983491992794501848849284782788629651210238298902504341184674973952703147705084754430990245534233267722198880185120828981132942554034357951856980597603005798501484567456374877479099432957124171838714409635105728655683077375354652063545196153141070606713713195692401695013298992100751011004204845767944201566020922938394118752009337600366933504772085634945828340250123656034700840523370472768592804111426900050468457242189081020754711493379193443213942684484668633621472059246417679036090271030667242696367502800741533224486339509534549746098498116371600178265354828011701850390252679732188070111545258284011949032582342496400822348614678452439992637480532258030256504771220556246366004424879753580934685321496223073864802403136419384953405218475636027095990991653644533217503920637537767429907416825069102976880660388913704843716097008223415857152115394115226660288137034732406172920956856262574146661862959039083546825667228168732855858283394606482755663677193179665576675424400016070163243970195262081532956698953763049056654796814226722212090592653305370295740215664303936339262986513026275249993139916566527243898104876368730090166194613738082743102656730479066141743156010432550559572500147750157264490179219656399010692105047781519234839823102261513936318923664695286165618841327093592849928098719533579132309797395700696794946062021201912824506056168853053939273226198732902833063708991068349809254858761814961553028585857472492134976581702516516233759348196203958979262105055500912550404198501723421160918816332137517631408978539439081959048311042951570312466992660568304362371346263671042612417703141710985340807514074858051916943963800933336460362799264003910141267306905790406581897129677066610016551926593165322546596380946065258830175279154693752122802632590403364125833183998824343242029493103414821305729242246772624871801161274089939529168198314232020351334431666586255134719444539181004688370112051278742171003233074598032631602889544054706878849837379422717973910307096281973796977284323490198267364262979703606073704419809388985345909808156969179932890370535864465303985527552070346803042443496487733519636034095336289584286497151799641025947772575622533502059608503666621074909129086991304793685126092637427755933359699311725973875288817709198084958117753133645985791624135876118268379525641763067914251560617748954495760923010386445489316686740957524413172924853026420941631793650793191899733757875176336257605504719559702125238485830924995390255832663963794661203913080967567456048739882572711363347023406925535475556208307105030276508478729121915783800960904996093990738719080860676024224372149338732484111763501755209618632963064659778430941683513495171050317954817032631743343450457807522074012564666492560768982529942859943100092915819152215741125648574833308302239383653868509661375630208043466000038960132743582255232799022759912137082868082371220574223213127258445873165049318025517088118229009585789009944288008025494422838914387648085025092274837466827505797288084567121142217032204898191073298650748395371022179838927648137943283720346738755719354879887053348106337171314866196832746448966669522964205735121726362646106322970642424639746158182378683603445337051413727963721507249499888315813389101032517522565982851650766192220598982221369110354382306255915063344876320723058495274773194356600592976907039147687327262255328733887060132619564298794624710083696436340205810843880173778792169598694874225956466200389587515439326423579412212915557691399746290572654310876764376561194622146668265719758124674661656191092002053019562974131803313803128104952664501752178059248624074706672069969298402451536941005368800602045300999976963156521472482049967531612127747440097688391869915052700507951264407853739073929379289248200798895505473577502250828048852993432861384972345336330592827224032182091535924569175182693654639471145334318026527782835226646812169593836574939070995921111657212431516912071291668718045103546965329744733768161477362302122632319644865534573781327680637677485145993350694071254089178699236891418965304317920171160301473951981535556390006356508026557293839247980531795276106758996674646313610267710086690660411749295701225459867810361970940152646162490496665025357169964098749446843154951608304013104202325032454797753763674928072050118722481627394277113712764969653217681673621735613300157532215219101133831067797047452110371568566070350030630624476338330030289140035451104858017924088713988330160843590423443827541401591639120810531742155859363454194938953939460633850223782919577448159833515995608510543495323572078767100359526148499093045161384393493546610191382137895463350277455249502024108595235739412298681010912986306103766277166588658988605707407142680859538110495874809448008210137493428357674665789653214066222999486341389015608885005402913813818733747621683795059522080801711792820163034155138292533466288978948440813642415811790522665694114848185655956649220723372290434070678193798908430647645452977110854187710262193955856621983557745077959185364729411842239098423240336456682040761299327897508527979825838014852418191729279758757581962479519761869171345468306841006075302271820630672065308605540282408721068660463295741109640051775678241480642029860142619414258369362601487357623446500212131486354768043712226454523740234477064154187365629334062722593798604676939816761529883492263894506759434503133300029670254525699407161277994796192190578885315350979418863151512157115493820677262588825054188390946136163920886539685910872342868762970968006538832219161580479661770547702924868435832609824449706059530902997217679329065411110815141467960301876357713742254501661044682865126392752688862134343897896039650431013282805044002078893766038825621717430963849155727316532695707423167775589142470403928507445232605046334231642400886077652019364939289424461051968709515412375371950554365783337783355022539225110835105281385177158011105051916483625832480896229813393148483142504308384196921185892289505061919075762510363355229045577946956384603707199401492520663124070182448795258065955095315434892991258253048791734370578975487803526200304745761450573250118542609594776399483496800138561837125788588229400940338559741523063950790473711367629919626178403290044298731501547824485147286907420001892133531620274816580903016276902745478851372626317572314893781281249624624368581703524967645150033313241656184717458277182858133807036208914712324696806093283975306993554489363152316802826118367831027841150251974728388754106199649532844864320545037319815381363056134901590406599599157041262429736729549929856574605237458645687987590526686747217181678978543544244237813862358897969410378063195385950714780145637736427965829217585910013815522733155434486398806837854833812786027390259069100843049396257598855240326401935446726171508337297604720827810110782674055457198956016418474262230723784262912449931204316298435472139323251925765917307374490073398091604050700570030795970803142676803331846927073127669410074429646591746720598207962457168274267213364669296683195585992053846484584247892079677056367869362706665069588512941077019159650969393027914129375168816026986792514723543626456676141461606995922707603482089003490697953938352255263162204377811657934838914974913141454256676566526216116364468097072572097639118040093303300357521240127271091461117650699838396629005896573310930728559511151575491672303983778628097996985811620954520906197210237183075783348030525892804539810798309381939536232732244286737558832232098213960319059131741615332812259553390355331382245094323096731301575647575147555981161668685520627541713587264499096058468673728812256041872242931721947257743791725815826764243711335820959928647755734901436029918115319936441558435093186403173991658297988664844420949773676750078630305871543476846311058577447764446678589223874200467170346024552880228724606279152452568740147213049103539020102433412654246235843803589519557731252324041218291323676277313427208027040061331837445449331453699374530144428106033348234791955462549461009661310402010943113807180295199117961567086840835718650260168586802948475245665460345195678810183229511113409321147795134776614205621536743333106696493330265706743012522976059102810188216234633380099627595538145133760313369044772369753058393284082684447472050917437180666153170016941707494097631135470288871373478415281788928991233709636081450701383945109579117122340933342400925677657001470728817175703280410940067501578533223081389238849931401465154197278996420518434850574651755035476768420595732627037316454689425606552289354553789834968938595396274910616282643529847928943893858547007723848185536354377853642637160231460424347420753838731035791016273005183348067807096688424835369734489545106311553704258864604591209039282065508598853663379707565362138988466761548675929791401469579924568485440670968940347668718929065119697617919050037949700106728591297302103494500577876324209474112528040091572111197556292350339858668272575476172054970291131250507648442861078298067890210665713909622108636878795429915260778516424460302138840256936903405704331894325837787737300558401984240511641470984076659244070524759456368148226415108282549454089436267031454342064005597635226598589194964638001998246813554595414523611875776172686987937282244526189314730351587023811684945617370326212564576105535771405338844698419259823328970347361263890766745044093758940475368391948497843502271285030367114853251374636932318560938198656177457023069895011664560947999875923899918617372554815420334574835954621033693031405538449233836337883646103050478941401092684370523068340810831562006618475023736961889791199550703253269657082338691087493279666193583526893272860088910782627483525774400801150418095101614785182988235057744471550251072434366344965097234648202952048435494188713886894874586310009309453262158134682522497547440079248694334069342268731104847557718847796684673680386155872516838474250907453320843591598418972074101211870227059043848351820493234579981224832695491549233527932280512294085307368547284687576273639804197447579011098649354184174145393973346084488305307740073970600883458647829342553881003007840464647372890982347629091647143130752596790937798777681056101714821824846075111129183336323492651660773339371712960506478942574675189101733383359562280451094561356969240567314460759679248693600431442222895558296998051851737419988622638860962559257938888401069021919351860384062196851446464229609495572762602472812252387844523309952830358256253100508794004064147469752843094159065364706806291937095522675925423391096867638411807879135130974549352975414412876647729558646123481860123418013533745731996638782327127190792253944789882712655403261913079738351692399791575011267909839443794399078899078995551991570714014323623350304735170770097698886858319769346183461864596410176871885585654753158427202978359906962340982551285358516767235676577500675497747628169805917141016385072466321033539191534022672906515161260137111583314449768840641300991496743044645926326826901273940508915893108997567220976480728891909980482019816728118902020610921710684174407549679157062702354378956662623162865330872414376141034368653802189536098200085791755739844589878944655480042653868724475946870827673484915831155320933455822314502920981841040603021993692812674746171093833489287805276073114735448649341309038193769123763939000598634343618046319092724086110556700019309372916186741226059170552208502065307564213141403185911373401517274255761197135426440471584489087511960203200874070452528737549216235280943157303336837666202669426134709303239404807490727389704500503882850573979323646094554866645974830336526480732456060565040652162225388190661991147372804807557412406281091776723701746308139617150399068973369279743183740991292709841908071185370393859465195067984521435122710719898583804753173283807751585171442877763196329908034311842746178653547225133673664130819389587601017775927643653091515621683443347520566948911756733409988150137708519175335138321751675950192333061094945582921818463535192547888308465839843260069612529828585729906527842000772777105645314774454184743981246723365946654570311239401581083094140252457913592778833458853106922074189275060116712658912276786693690675440947550676053357185156464970352544740900274497253471305602222833263827491787372102595038558048070092763642794917131268572324436604120368966963063211854980434103073319641182693847377991880932531533304408415429912776290801030820280233449742502944724527278645184947326070192445374175271065180862485507255204229669501825688896580238611683573099317726261046919358185202607845018245917353411663111421858538386469126817410718925970180476973668215280017924698733361123128950037907729002205213983762791231693097510613120867895516458398753252600253737431346981729823872406083406289697200538622449458219357639008463360074554398325350128898000022268426961095217017710206601400143658802845394961830260076753961823603536671630544805899105004960537744856015912556867335750658767392517223504197352974631736705719049082503719670081307732063673391667908644833318661170489979275102403041028929279214029183288545194105685379351877792165059904879800375233710596899058024681429034454477068654037950387273007930242060290085158457544675027040096684346347424734498649827031810438568078179443571760149634665451923843060179794881955127371275542673813420757988115782927171011618578634793374356326445656062150068242994071945697679180471208683482933250013289951194475550821939382799232042999709127454082327820798668881457993420761415660256717459779284352713976808365524013103800013731798697720967528038859158588589905645497297835693575983192929506159185471613828699925412624340706339739553770274452600052348756851682361133270778203628026547383308513405139621702371245723438113955298797188119476111869985569730549153488204364426848316706590227318092897290108962548810659735397678426952527386981838304642257442397715075570921558540374637479268831763220281239055213540442726084423802845738441658159893985872541640341060270098663771229833634477587939076294773497541991649033926208154128868358453932345642551785451844603683112566335017335950166926624228325978660042853100411934805449473181015528285137333462788475388303501769016552274003755940465683994463475188207867907737957826844081247855842649840259148468673765868702412203833902612422859889972975532250279601451018322571433483826378865344896163569690966207376835683622379258438781704983227389713995880830173589776364800248540650923794410939190732056443965972694050815366813491400527849231271837808690597367193926048953995878530945057512876150884354096587399141538533454875984808073637838011460426734868800422891914212225540460262426453286918141626996263498955880010505716525433542256404081784466988707278226468432754547815424487640195165869690650988665651189907179629223912725478003951333159189491632694846513119999943740810053548067103432135774738048010057301866633929978552214994869500092243204036278890083461675171519766656156004810528118298869619853813219163423103956360997990075262540193190227740044396496118234071510257999924597941401721178999759524162990367394698838050448029025951858089254184749330200406330160597847975699472643045922660509028817988358338026157392672405997671994070480946456547810272164041901437246726940277742755731313988764781010857523982459736316252120955458289174206830318499835147405788941033318284972178282226246122117024535367785243222105804673579409329068212911215794545246983137156974466402945587732495296686249369662993962567774375157280437647992817149347346118086275436761277752578562587929183294636838963541065463757309029239476033975522470511900327632598125896935477659206886606369502833260330451818209801147652172963233103518305221980355106870838453471144007041132117600902858030600590582457841278925679836844448965654965420135530600639469935413629354153870630834690814664445757787519203598393268255536844362079496616893430045050414260066020720468996241323397224584654044733501650382902579999530798748119184411107226308172353239552090644542249707767280227041082830440615089017444739896741810345977772094489514037504188573674556232654580799700561442827885052331175865889335301523072908493351648953441187422440273547644062059440087180986943279496590471921080348261417105817026538772035769651083291320088693732251191874320914049833775043034579719562211057956513287081250027366123051756802635516509724181778139847597668742980728588405825881434568158052962223529508020042184923314649808145481378029506508891515773586533625554362684804401766629426422144129990850334327807730475220090396698941648200151023386615626123689864763069395027472110198933112823527333379974920451616556751622805972462094772323045160267471184369040032785270632898200411921655960981361740480923544790400240856011106364287321961643469333637319535583146258917753144923563631444178507452937812086014795548274582778710019860248597336550321343518605487671269376157818691871124017356674114413861854311404541333970524478133938331726062707100287003053606819343286269250918878930285138533483531441946713466122125006365217355384576163599491240591131563175125164700779741578147165040269444679573186996645220541876628168790239267717018632730761727565313028275023331825152264759907187950715211271050162531951167335462896266658783025882790414293199171196450804349961478533471407717273750220942532059788218196959870327843031499337261563553068399871016759978918146188561593548916663947667456777766021927383880870567292474285754469830629463879852811738715626146331318523584110563706602656675582772306675953919222082781084231445749569952659061464677649528452527318522655482797511405926640412001043112254863194998603704191304840612354370070766430828042751588308396734079722978271931290237417031864011397898070153053126058703672403004712753484402722767424212344672044018576100104856625245458871606450697347209147905375766588476707776328479285812657885712226238965147428918314679630399244733388715392164343492618297191082093322618524594227486764666951660040393291493806946696975983294036846969247627350177268246579732117064549506528370223690485931533574725224369087306320499045192408803643851986126313562963049260706934446748052059475225031797170746022000092019385379016925971452545633240478159904344230862129703507348574162941738937256523593453580041539973538009169703472984895310959304165294533293245930706586712032669536058216865255004580647225312820302702307614251064285071755325255621069484488431224091642112183732040815391226460399762480883118809478045829580078592692584911851924215262833093678278595141654909578321211623948938703948402955434778777856230860568887907777645072318955968219562404782133733254588481769306173182413354665991548502746516518206884271474239767363248289994235680097721640630438440028499761687989332225408402869517191548877152305458776660129313876179181883266153848778987205696244560448304172408173973075101622884132078732348964001789834760199935817768020477107809352904403494704315919448311214818546492508953111493885046792075092427321225291513584539369109715168018953752142272296927902010326304017403192948886736564060698665341067459340099715875932362591457465123388787073226118317865798720047279492240966344661870801330976628898022469109120187159796285209366220931307610675889961066388640191707652497628633424360790512944237552784357414822456634688539450568218988140485287623230645155428205645924893385602764191016870364939566503297159412356766263962376912794823811349907975653759797273358854740127682611791725134923442351928046944019667066402075672408658763043345835036484583895432412780107670298953516265223746370481502835772233037167551326067021903096090644350966235656154058881986110069452265787304288451629481309066202360967222483989117797408931185872033351527128709562758465737414504863302040733097167849412375826379142361995635235226895463114009905937242272794516463180583098770995544211091329922146800099943906212027705401100020139012367544199924304184432264024439475283328356546473850498612826100779694932075349565031508558032130921743277783383331186513646789889450025916035714073269866421656184169410223810851807301020043776549888458910194297852884765359165827161432609597188880542164347170689657232109204172889288337273291504782987821332907886879759238181093307947761643887862188485327659204199787862825791925902407565939924350443103655198100350586879525467775391547532541511226885093663431889484097490293148307966511132020323708086163540678628456933073779716224187608742915848561992404116401976866273218213084216479715285781735704154548203336883047026845545793995419251626773395376356799603186242064576732390748576186843111087648545967118957291633346872939313860480847227452207662842627764901661473490558494922233830395147647129200021672027152883451961274738669938290426759411745617111583608606709671535680898443456082693209967357790003161774104141308710374968334646988653401012005180756590389650299189458401633912257736493624450263110308757916547947171566218510400004265684480036382792168273077261976720442913054905550853370191232985844265547491854734599065731603527466199739333724803381490892088993082757905572925529544702072339228623550364678002787370069455738468237143603314074748518540658303609824421862143041121765314587711594086325752860437896257740319419933177661397690726167274675921259335149594473507539694185422777036843220455188691474656242471830109378265405904078460439417604333593294705201340015751542660028610792239066103573634731895597063794072952458052842453030102976769189242414266548448212030900392125001673646464816201949861709728140259877367271594706793721648285605356961158069553880286549194486398799042423581068246643279474919109948671022022337436138518583331238935506764633174123523129306170169612878556478956636224948106119707478642011250300810945198438667877535730696487071227903797201384916295031124433457785002432432346895622480136438925479052726792986114162541905957898726936706994860438551998703539737396946409908623338187204181681467497073829029424832979652684881870581868137464659081737920251787949957663173308840451232392590300536352140963570643689898753134335648081914223848067603232723681560605685479413942163058479406605661990075084292147377224606126769650735888928404944938611253257665694504794969370416413783559795485873170837061765153919880347745255704567024906656611686591050428191956303889050464657646360944023165034018628120656933701321230524210079235231894941063181285426613909297050585986573282586182136282787568559100171453771844624291337771091789234626889482549875314406342638039818108547571350352624099212635312703000947642769662826646819902307286205110325812097694455528317889395135706555867750742147818431119350923843681361627924420152426734238193165503298751627099808719843651893513895834057407540661239861691908812413729057384449880457043971185463142893229392294781359539090833007029966612036720634565739550442344545456165422447283199049034319131128195251715637817888276078767293012235574150963417306292307324238010224248674148753708839668133241917498813805993021081199069323248732684888089572654586421427786504644745760518844146470470227245079512696294297808550886991497998607182713847212813720078252122753565689982368746993368864934456472466288471394813212806366996086400312463904369187515372221675234515076536093559341020509403931707312242847559857068822754156111078468774631840039167756421189441748580950685315403992166751873896045374381990621831279809163782419460324084473139579135261320676971766742546244359312918839634040485988555674020604187228241993908861765663521452914667425693300668657763112510713820153533864097883951657288202352175474932241662298947051249069520235251291860093359657866686378195622565672011544475475157015495979202952771636799841283051653366891551181224896778555955909717531958288752665633564053967843391104392383430501958992315674463019223238095338204147290061272221613273653751597020423344494575666258178889290842887001897434549019893695303663765788252091765585460841761685411858920778882260260650626145550643455785594471889771271518433884082016172322424815804504768077121993155656465484036246071344398656107951939590540997283936532960353729232446853584442946264651608343411644615344079928110659610448440268685968027517593011585880797993187066310788558949880277742811281610801951965265800863571044647233906052312632835998219965751750546271850358982340778214116350357414291559390159301530043866351049914769533736880568205156185029813724642786032398145688344585195494895917113319490711221022283002404345542338184077734560111194677228773390195197307686509461009375418231429423722918934380598859826384813703628592215344827251014733186775555334050201440181257696006842355951727351627140500960385933425413804662472054171555274127560967283434301391908029521478182861871936671701247687945475365524257480530113625055466843131546467974543338053664742916575386251713212668979771687234922330751790726771674958711415257251801423178250961374378357424005744317269581648309295709962045722325772627669764873048715623950961797810373955355022990531179265144636112779012412413209477836129137069926756416607991462218785509231166012872875353406558660670510670454195310779184324999776174221044104189316981089070419237627314120640002444344824591010026368516346999218593658038489972579016015722986237823562029226079318199665590535288923594059995829859698191021650622786021145183843490799447845749077037517325239277141129016286368308017048204898617164103918367951552247347544346248999780423094314200467838873738789474408645533064135415778503076463377623908007556101526439891456419121429627743782348763345861011447258077083804154161775535872145240139878609659601465059860321779641166381004916768568510506498529672864010713594653557451834804899618578013271889097781894660290560564206237129736977896473269554344181416561163661346268572373493049382423945869807864698687859456496041754707705462879457132361632900643617331157852874890173742041264420617730498872298127801188636783448130879653874730362762432201314701479090511635156756936198813801044727667742219577872216902538676229763761698033503134083277310043871322435672585710725543460030081420773850273054711112537884866189761723248726583853528902339163259245961323532888642047892378226754622358401735905563891521096267599375461883818694418277045621292846088344298456505622930474005051280842617422472876549455996914816924325345904256413041972912530406467552567727230048659567248993787200964296907879935969702991829465706271319935443178938477920268835380105523290501735731369544084335574047987177326179730759657881065607682324238940386308745469461830975857366034828025132082624732001841311998337766869899617158284949802567391122712031797714199083850938366847200368254131853224774998172082671374654728028870898355295495787542217764279110835517656217606518960284605024507451536355548684420753014902368800991438244100000776071840959523209779780503727649584390794176005673042103954435740195972840813050282814734984803640829279789987362048691759812655211478338915659667020417860129545562586069393191736039253534316761417357910590369231328340047950859264636935692297402898748462451045330414299393996787867971437163435914744565623536963357234068304806987384785573834635394351837194167337405502796161527627311775205816946741356229361844880267581831865024316848131377969563030360613993650828787919289032933567610564175396892189094469560541299371096417184500772654249272191976369321224914296992459884424097989649153218467650195488789264170199977836763508197327946715604744041692973236976180475946831295911781081352178314142718131421785524628959625274304456158793867459764525031065560822203591262759356875396485420911542592299933602542973786567993839504450182381594154819487678803170362351071717522051080956591073628765122286873864804775042464374061954297458883203180890239715682694024891374302026525714216818829711609808362400728977560311912139641640470707690817243638482777546457721976498476192305888413457774307955499419157804632442205881206998256145676798989924730718498804727588148258512030364860946353989601392744426900167400687941559710850239165545521624696037680718678424807107962860150908254125251887598557407757246936478289821606362531556450625893896616936356253099015299174890598664599768396912809589841699759649024201455563483710963634670985116725197167616011523827927329818769383286896580413781273274152603086951399699888634125180418356221668561702716653436059103534950316287110247439798240835794225845360983756646090843474022895059694850486534451207365483454395778387996381253747181629497800861885961698576780074924045352944420154249336911755110759567539828138312812754382459680904858517526470235418275127961051272187643745049982384971468311219254069961131941351120643393768055787333897741294316021913134302435965681852402960799416585632135479774071925674686663571208328728497418439977481581360944237868183245757175418434558403983726242700389909918968282741369704737288992788560373718936521338627553070050965198974202584543295109180363203686101795063666992660482097153486595494879094596036021786172648778040680775367261777335625689656403166060724967587094597021106649590098843271420764500900784732202933953436333090553618707117842756444366665328640302890550356834713732037266495417880138519712771176606945641643399552257512858936906752704854257207377229508531057404610190465731024095643678821400924965044022762169682271473375808921212095149721694500099675235425952088325813449802363980822095289080979518697159043416887846132001034985763076957635248733543867099681621873806039505567281622766011845743626002721556540327124644005679226118798808659604685479802985106200275167917128637834004957010033621867738455558613576177019308937762821783595760991334724361800239777216547936131893007177465654990023117309403216232301317244145543215246966474248895660080493467603187538705606490066704264775467599312993564262808609494071695619375179793274780162569894868031428541296345893344790040936028025123411681472188747874062346066130022016558427299452872233803892485476118769999069626025176165091467059862303186058658176433826623345320952843451562014152613373470420943356299411524056729380105687879414966229062249701912099713944101330522840697671200177854160249430036426615973326497413770735516519564834060039993382216623185597892498838658831768951281954859906655605436432126620478402759763083876254383764812379945116737516548378975869586510155392730764387874908954982277826920003638553428410883623178306011779563778714712910727777866539073751866846191695794909801085521106822964397068496649302240284826605822999565893343931642175796807867559881171644277827104626721143159913379681353374028622892476515307074311108838529463389317535907975840546121357386585325403704563242325393267531661681705017482182449891645741332109130686152298066025003858245148784860828981577267005207466469363796484211100580551148578529315202329751060124577910534419962314173537825788866363415822216700209369786991541670006745354700988343058512523484395260776576302916354272972141657910833937380315796354346110785366648957529966490092044401518133296054936016317013463216145296079270203621427460293102816897012902200588589844239186228484246827249888674635167720829785095192320202371664027666124885908386122198732837988921116418051439948232495126073726775434024764381324544152006925320122050354406569687981654918355183896667546338292815314945523228850267373179403297097721462062905146068890614367489936161720508468714028351087743922812191122108705457743222795193356537484557754507286846949982378005044146773765640383992642005036405804884756238148639010304145291770076183270354594832090602305063858563853274335257851352182966789922251856333847386542377991601675321277846363636353638480108321057304832037993525936552939582509564591772727000830161464760622800749551941684848689890418082794205032860817542705029810939721966080524816775315469411783924860401163193974244650593607586627003517334107501091143975762227480932094478077170139103639432838807622530400120043825499495988321001577584564514757359894261073554915168519419581650335605618018077758479918404682143371296231262340218788203666575453225931649089989544693394392882398372875350736310481963661760766352747112744695433402528781961279581632719613237248229824128076880657436261562261501316170775653313381996292441028844252026744368077534206614134492672499014848330277703712158183504462987352558445717212171695233298318237859238404148867644595809941481352947484186927345898672010728925582285551276478199845939550111386730565661625831031495428518761100986416600121302813449441485978744103784262128460182349431140085895083656142347234412098120488069442753443411511670122741887375707871211515732963912470910913434285040797837638343920050151629564756534744238982689975076035079860446954718640681567407078254362040994771593233375835470415935790553260728510867466490888513787760965376524334819104999421107970155694017478272452493359260759874134264946057768226976727290879939128785754760964120064764613858348622576809213247338887516415321310122413007707506689761640741417641831772076956474773660314296689950437791900821537326443824317648733866417458711214392296155915966234289857453408663521192085278620793290783288323507357050250819341217471589918641765784808525606173908964558488613587878708028566621805380145754144114431838547247399123265473852740671526879804887289997326662148120058994478160161194043751395643663663128949342505420759089253561943085396856292697875361255950438781403735416483602259496169956131601385783772536984135962953774216782111062671691344767093827740633819353712310018377901564542706558342992879845591611709247855735239550938391746600568514624064712025703867419139266481091838799718619314352417943821690199626541864380335394059402485566852127592887551610483374230928457284790245824666807773993891898144760495162399491865353309749481614566644264617574307697860927008403981511947575333410091929857066502567085933970519933018253618443908706330637983658362797964899516905061146409506839900011252433115125126314635960125333646027577122499289000292887724929788460956701974688628473480423399007314419260919980542638984231517006409486275808654002338444942861726112538343344716630261008545409790337101797186938018483138021801341575766623385170786326759468067353856018637131072414906433611684419449215886691026550452500251014860783606020762832068932860295523412819140911798031177938666164123423637654708110831901971280707901317652849316738730209642828609671091449752080010935454040157895537409471474301004562897749993051443623580483748699867064523690469534017571143822615711411759040124648301089476474102618961740962255795413333371574053106657798293797671563295628458840955940087857827425414245294764932096118932383098442644674862971580916902086068387818201012426966164849666402713838442164942372503433747343866935627364162316807501912076748311535534640556698205213347567481006978668563552128570664090393508373297368234290370503715970845003378930204291812517196697523467905262291352955527813536333056165066805776312095877391760508010325656869463400609233757388806421085798728671081076097296043746074812750714612691057431890574615035598957606528373572967560377535802773827031978884911756850063304552003555569172034080305628558891446253009297911211056093390716728969730019445508467899011365892143097076067913468154000963891559813851608280072231619280207500502540771238972269241317734390216467613370554308654745499891430273622145214961405405229952871904410757458432059115268273734780898899332801882478777923164955074212710049523244879791475622803162222957750267134558208878128648835181960638331751114978556253575112888203248962736829435150465578741690751041877797212820849497453897343700251296712402386157523836996726102534808612637643022984663693032891261381039420684255949800252351416783469611708267641258644535735918801046767762721320103139409806130506526635266925216481438737056793499065961967482415972419202883461916060254696938215810120570155423898390972256912812088504777811255732764976057784561479929893659136927492878843687038410509859119187785349505727970034448674860255458166635125697035200973542560416316225548120863983193284633488186068167801724440765805025974053257738550422068641034147820901746632796577273128670134588259556572318004024187807255993405752043751191666071694892586821198693665678755955427340014057806878689963893480948992526190638365926096738568840439507987888162541812427829023544368830005486023950783356118911361607602558072706214747053206327395428110745925823291164753354016224606792250502932941249537791255620452510751465638841079915719168161510606447973484698530707731327480608380060982344382354281070466855313219440749959342163286827034481373397717579464259809553254696758395117126714100367467220110862957682982900084449862031444647085362350500839102972564782951317153188253540389779301143548936090388804832604116167159614657153183617276027648814489886289376395385552833491449887311082598336753146916022642735831181733316189988519481156859419583622984831887615165339982881624409309633780748262285105774381360119212875511209571632747568619863829548669447330761985768736254641902346336963678161246838495349147078639508152744732036685536015444972055227318934130281646255510063896818347230976444980683767295158443532732254848566698026977140267087400541629613609695410803210472210741183814192963220585886198549902686020108320860549599693563184299943342996657148979545455962943436636534851217066444777698011841494994510462269531218085837658482353438410910845266731154838705718082721561023580811454535047428977262703420865200827560913492354178591457904586258497546801057004065029078429458689469077082090274385269918217890461873613643834107971537345417053306003001556694891473852443366195501653539036821465134439680937803501316909117524751763835783290345951310653238841845892792981319519271678761171550997819521522902324208019300148556522712886490083491625134990531711540465016848118695655356638583165963730418084083587140192468627807868919420894657965231815562637580177627983570245876757615078369780501338389230178014780415357231063783506678366717099362952745820792641798575916885428420450072989484037641549732736125675696539158133861036604237653294307980923935040056626262832464540946444600080287393623237590109605892745554333565248986987183057938402090460131170455781962542324487673934538514500502872041749924159529945268174157367144462787997011927331408317592293703067960236447546269453250569868587613305274352835052021483383560659337216525484060146987971116624556746146042249528253857366197760283989897113656259649453188137954309660830654666115891920312755624668225619298133009075411098608941935193954203870997001715883225477786514045747847802941745526205573683693997698967277549083257454577172655277599184228094765417521623613193570194800054025580314791303032976836573938117134426213672335183226702774253348964171642671758013008430468017672886114594578564024260850083662265347173977473119158685072765000540512094255462712944644842354410474081095790565875034723294510017047159773557877544509582483108821633514897813219355983054604772661310074042824628563668630182835132315292349196228730072921544048777461507246603445450042090822592861438081501295423156173439418544758954931231724917236505280372888287643112696859639614411443189384453923699721418708052458653076102720964114596766162547249026045019950087737446945399447206969172615900288233539246866165856815956402354466412849576513835543121521346234755141414217509234054446578606960561824998104867893945782130714807337647697565406958642360121804476110768515814565508113608202642588930826325436508139293274700463307610439817695012327942668992364046700581537777980361409664926786197081629985759430578630162743674493669193471239163233419311852534172347431369868766357303739441830819062132078293923753969896995176098090162686955856218442338492957822164134177342581189935813171944115046886088572307078403977282468635199059999033445536507148686829547486009894543392459619637029630878711121751265104961242501867512702140038944859979191759483730105087672805442259182673617343619870326225939348222325283181993254543348139731182304360252660210139217865102131521928133640127145185368460231306543896526215743641235475980818265858024381516485150020804288435206499745514902324227387110222282230901270251636897690088195104684098838716816086605022563642599359163806519801490926239563550331827066215284116078881328349000409276239766134618976575776182366949440287799902811574389878529758939774266562587574261780945991342043737387128578052565851821334854739240153244393547625735293812622118130717471918343984770448226379543201132717665278792863326417522018608248496583193266494363250486604559160529634831684348973820286449726713065806222247020635223137145227394208402575185601857704236953785365760187852707393697697154712221202784873880194641266632822708235987798055031594481408138668329265389175178206361518794408131034743101172166676750752376207684494770249314835556987447903092083696042501783831080735254726842215170110119378875805074022880169727067506533352002138915890955942324077048812009401849822248126923717485237386769877235815657429246400061501420258559097023180977160925078535402502108366370512244537332427585188477715179827180524977611349839396393531187607728154492203298646901880925331041583494537638664166100734047561884624791370211995320664641150042032606122284880490194280372944249000862108664383648009759006918800144220070482304710253912710903136272406894967458163396446680631691335476332384276456927846904335610771879375953966033787569837818113064157308059557183372671845839384003368976707724173292242539479658059446094664437997719003169110314490123981967486980759789409770009892626199269221602614765975851180224876318767126876416028616626210976520194846654694945624662470789029236091600934386065882363434374938961898526699356769787316523805266675629779718185580520793852392862900689917739810449186394683566744540005207847180261183789431836601015151524407075013553167509970674186379676544855013938859428646153585126064739325528436224608763028384380985320899438945052329092906171051380902299199193792186029854019780141044264610734442264674349454677729217408744966711063950028608379987086528947618094338023980253529296785091342639306674356751685177750352065856883271406884640639733125733607512587751990184624288934521002925017189516921709672819848125720158465332275292175891282509724451953303730025920321044647006655502303055797952857090093834686661507068043279320523229044107996920146254064174762963846285158027459440633652622686482218777142141353641506826805266166304191649563631275484813069660538756774308731197410786638960427991321461884122283289704753855081038764403828110036112941959389893069413392845788593977792044931256321858741961415614045566626199241192298805699213565941107009170315600728244109259126149757908976179311974443972576518976254838310066107113264987572409282466924458421770193916658692935597282145027653138171640850722509935487273012129867989106286564915569232254348308576080620770674793795461796959804988995941352272917815233551559266960854155380053630966993371758138009381651050536522974457987540899653685101580620817736417885864588179128792026238829446700577401093302774638200605617702175989221030473826020296253345887049032791232703192208611898114865757605509595452308629970932366547688354806568379628959617738000996409634619808871667442419511768875062711782577209175961901919719452165538419772140136026826089843413044333419572737140733790204810232265751897275837144970412260428334767350552758577371001426010197709939707606275108112864147523769667504273089054992349432457922245740828314029199093533153601977040393807037999045606268325417151483289615832196045600521363059574525301362166344900949825381833902488274269311152579972368679251939392280740796770726396646495400977356435700385292394281144681620179036226797695836975754253293715937201425049174037130019150624810746798612652599568709058520364297369506710360465868650522618269770673438861696282583478222166971233857279705239289473379099101646361623023734320022850422031730103854608601427006643885547075679708072545187696553348703257274943441007569768317960078951790361365241589197029278093210666543037480684797075671788919213463290974827080907664582355711578263370358528991683836148749524395548408571071592496933007513756514101484336319098670805038980792057004466013319642560162693549368281341403796737970852921167361872263832321186857533888562439547443399756332991350253855276724444058263319215685421024014455306615627234916648125968081480883026505926648715281885525285509105047410243384905009487461661572734107200541872228598530978486090104942201823199572483284422332810569030463453415649806503494895551297914856705408772516037397532137017227299007486414680296449428715164174806409967759989065603495255838359645699636018662368241696329668177038739841608569483884544165226665965140552678926437578788950243994546100596158153352091111392605998725357329861501145306174953220644061459181929250361232674658634350438297673968845578364619392698823240920314503340615930522978986239779991345403755700253873822867018077938756974292907651014666644038283969030744253374093766079281989155161658300963433235241869365390338537232998488711430554195631565514139739326790383181750341744831488400911573342297920186928293408412718986764277226925145480725938628973272617794577499165189004607708109074036820919003256729732842533374722800970208990628656264605055308348935467849157096622433290476185511695015143275470150915503433640860510063802038166103997249383868838319963527604067001370399655460095634816805279490617664487725227080666625983156979362549685150479181371451663110353206540542163418457744155921291647652539218691067733927355314376700082873568544030897132079719592790117916967077950220451688422648386743918528839316256921992082779916571321367871907535793445402951769249723516395261305715622109389919975451598888695533342107105330348311065044122844003205413363523412316985975533708106604168167076423551548408839849121250511347622505842395316394137065188713327743147287856593196939128008304298560655262123096731820028442162577240291059329999233018314696776865673665699191379348648259170622123124438539283756274667298991982219298821260683323987761405989412848710852666419758544696865721605642208190067017967585416965354184003878553332321269179062583777282578729237616479706131039469210639116029920020370400786772444676070525988268039470070231613320658624171886793642842339752727290409616947627258580908754294266356845490106195100396532943889448526428022093467101848109810912335993877807824312272854569067482941660291264844580476538722028778106850827203095932851393244005614195704317800519524258571369582637396018956642501918943737554140031146912879557343679832726045216266795659650883520721413526103699846527496832564649017406841712724730865751825030042614333890703169573376633139012597294872879907467064327693508197428292049849402572243198701613157208912146009360166461899548306756203488776865067719338301502277988603108568160179123731297183016432171199193685131061302243540584940199824910819784209764616217325239063662891430094712379265111230217248556703739959246871855070056570404067852401307587266425982398797347271954779549136117324338131319876049365691232715903489084301698136305148932551046684175546584487718788691871747215777596619718282333428518304963399936564738329496871686457320855314705613813126084515042508152303135773284418042351169040531746000685237544742099568813216198298559087163540717463184800396903616963106598116768681005992721586263965538184600459045357850496094985022077092885850852165398759098967668054438233824476230197985471952528452527210614024877231260842074833103653560615667374598741118377498794111732693443804907252318992934501303115679442092134342705273134507643056905513960828939719780073451970697091450265986510258123881347554699163459863560825413118133637708235910723006169134221006111749636750772847795257249548725159938145333993725279821959328658498581117894419711877522976311225754050560557847884997712859458885087506681944651064617676707206330864905012971042810084345140652421019442687450884362045536495241822452059400008752277522463774007820474696280788380566443052052187213280441516543257910193738701186957769371957788366386561124103105128093047440355087268268383464277122878329885201697524827584193954877655472585264850593782523373928822878410698087385603227278469076999745119235501740478445733226136319966526799559874793916177096327724505839114986211441709141498044979060071277784904909940293128548336388802268297360265340692642478913515176603342512996841284183177200462025900601856867721943203880838677792087391148273031491564168251481590954543695870279977357792247369829022845895942103123169556114628041697683042434144242420176515936402212186592613337023252485659246693546455626905068184036734425744801598639740764483583196480938072983748953653551362207250698364241717718702781462341772141017755909406998740220139984288584868676297472473264032320926313613903552963194130766626827815220560128920500053375834900113081993776563037481375460974131304834673540603162765549216818229626420792830770301740645464893285096511248401758551453117897008167133043975961831076654929967038899058995110512686834025042783260331069002606364461769103854919118234305903075108750841143581412289427938220966763951283649384785768843731796637071925617159857981609557827579301375566902175754711084633338715227973320066579625508596218850298943633203002004806776894412897222696835087939271711805813170829655593527587722450103957621646313397187990988870535036929710393209513944467650640444491816515770695168809319397648389655055719520988087109199223423838898236944246658595460191368724580373003743342005332388791796523188009584354182294521288464113506180779282445090396446096434728361085546069422572305786869472593835907565836062088130375088719624826224130137954163285591050068023571758787737457949912230237844407478821961634174556973756335770767448768089337687941150970396436311585873217502365427331410229445755097394133403322854535912044052001954692376313590614910610169455166867073118609209326973899961480434917706203130997132712530445336709535476449149418459445976472934097910650586142464187988090419913437417507524161170196410763580805740178510599818552602516992422186231421139585287328390007592173559976428904174533687772193929060417185521244489668071160746991194450008955972010429885761846754342275617697324464133859343143633212160804879506888874359399864352069962325225052296760037531905597183703299380062692028991573973517794557793784716166202991588836649727142478920751082626353921132841471400908081203607961080898675438833141155009177511306416787462668974739855392729630400070244724106654988934785469051216214191710536805673906038199757040018108164725762612057038361136302656830015939296994665714475593035753074215304052561822390571080491442972195857379627338375249603046864661708916146040564767236024247087343985539445687029452912652839883050511482327591029142965663720749789295410617618132316689124890181099849263264936073761474315806278071613192019813544976374405821263355742317032537210202221692704591023274882009400299204373441634003910303309046030150093808223359670755821786704777124504643332837389012687642181943955818606045051063031519543176021744984868437945338108430966090992661359545534706934973150267375121951848167951231125546401750074840308661845973649649881278841209561140347496391281213740144820668456635480585719591945087013230419108009486238471900383974865781750908941734132947560110489955545410896426708461777550481354648520372515800241996610709876444182516528409062552327152185374034622966148637819586823422716807311024248547218406723200494064385700823203836765638342361071034283118892889190068599494169742498041079315506668120786424760106307662960782046990814313260913331675962944663927370208369151902320544968065542988835217796930845825345947173663128967656266723787153517912754847641473840334030916928113823718571951283105734346227490122355439456373844066494615405647785566387414815876886350484665844245148465869199390618805775334257932698444442300234871528042745750330557094170500539844642605235988598260226249884463146930154045478086576556100773623607581235895830800665811617972891972699442441576853079527292768701081367349515739055327715474970955197222714602131370389943647186526840678306292848055847260821425977797825927038819509370813436057598157682981059325578048429260255982654933167132873218336515733071643323713444217050755612107903828424195537409730306922523876630971004717882301935191082494013307091028892834702909381114295109631842178473727595329639215816545084233465372973034878867250045669662451133055273530730092340034322112078604706497671556191853421204135535360730097155041209403905739935059141994265092422368644489628447400618766042417352918330343086094987913574351525022427251477983081435991337323502902790160954841107283139708259827397899418704809079459579938382463373430531680548159236728972539345452998233820128366556049485899804156655832123426732669855855403228948351941680860681369310078117560506371699661185780181799998853254553752460386684806179893425467174612947130897652607076396359027462993638914928065417221488028270693160882531818202680106260815653318974440031547620317082375525148271317086951699472971809292711543113471055959052564632532141897892372726903328595578691272084225305141465264230422570461868295839532501848476248507923024414351607251679654382691008456558211832283609262105366867049750904322555008547053991194838786737984543760315173494991474258067949845696081202384511721702178587650513725947547075181671236088504797718769180791216506802540307880512224606984723320148207259844580185436327408740231292749067901109048022315097366723667043359448271064476671076677582845886447901760751642322578533262061927724533258976138016232179182048058819020820212687673402207020808822546784923857838784069865776041931577854091259883447348331571154987202520356707031081964341816477851292461262263051983218493512746674113565041263479911391324296524601068342308075776994969752677349718608874440423216414803345592412822817951639563470668133192778162154308781086436900283904298787514946605084963551725054367028362344061099623421504042712237756381501175841486466519965465278718106018932480362479306347879602913822573225321925170993228849044390433963152301764955383451305112400123800052578519996288801179990838567218953115738749703517680748977005140305479143153752950016646920333060911699012911502403985388697538343666992261699146612441731914224377004686534503147107803179396843873024571772382929328586408853115645991114988784268927597036649038830960314734465171446754312589496743841320951906615122299433087668692090538517226227025730726479120652608918606167019308131919590273528503742347944033928679246736461610566930006040895169524557300377239348831393305079900792872285764156705807137372929244762869767047416445877084100127425635312174470158912847707476396692315227460363402828744033977177027377526814661273124969001442022443508946727216782232565618310688468051493360088761565891775466645862397353198522394642063288106266587768436734933629645664162541639189683669056495670101708701843386576456033490233088142592661215154504814505639989720000361946243642946204625875980699473058834593380893499339925151263709578646334214813966926625515638957805384342346117934649618983099707160763115556665762922687249260235473557597199218890179243361592697309341424143889443411819281097426927377957894203282163065356487436937465064262311130516994137232457832136600403753917278907143814921834133528942759115518638295927672641440140994579448118048197881587085930577070826438101688161445812496586747790648135125258055089935100963837912660780345536164895531517141321540472361487990398060029010118062999986775885538629646007263047080947630448926781021222903143100078856492931762389982693624666561664624677210051454348015196468163937021877632958508546033963921492165253563160537518265424727262863972261164642218029373231813267476690935001777800289276361212508227863567569993053685850700420435585132329248499097376956392410191343964978668236073394070164200475376517194441875159471117096295020341115067024721148904861119694636948509425699615904297957397057335299156517404060745592545202107239112820378472687557297824896984268107729692231076717928401342169573333814208468499018620215793043075621353881870105146786362156670824905125218575692535019887868675099264836168947545897977304056387458057786599657639166054760760970395727770492007687982753374913529535592570304384280912592369731929470354214014577518817283937203209181912566449350695394520903881450891741477377364247081639674423473845005863610482200808461584495773404839561908396595701317246809673237686056898736373832021678844182515376968910967032889974140467969106598964617674807281436505366086872587323233890893596885511880344854618571034584830301065328610541494059933800758785819582607194575782805817650531823411914149242469857020820076285077128422947904319257899625373640223939065249094034731797369153056300698692794254886909786614407829609699052915148233625757749499344023356951944676908617468951550649874740643496835229325662701309486965638037315785862948143256059053536047113019229065199284376087330605015183135520579934481282967100384786238989695961162448313792072275097821353693697459726358173922320287277557205797816196897256206877932914664620606131099775204768226805544538239103600632486208168527617879466706253288670481644004963944298464015275637723494627032161671271890841465519375501372503077431692272132433704230389778057613809280226071710079279971429808879514563210978745735370780204068655099428874646837294209038858107490703873014503109929450336019287132017987821178465740999874354900774015824292130248727903997961391805219486632926670581845883812721208070811706777260583268993806317647395025223929395573279387783390922083114059335752817447242250815107755627291329485400240918325031680908632689571142016077258381452241936940871503135104038980770709437731413698782294223778951985266518357296257235410013145189753436266089212354963030852393697908997650073181416094440476623515481682596796634068893831517703445228181403713774055659386554383671499523863931954806648794529575041853959458864025292450225081908502070144999708441953486302842295740871702297726559861062997630093483602075603761796126294973149718254023805118452658824758172009740071372907167103794745498919093213156982512710392711474192039332880527461457234914843203563777017904521444939691701687026820441321365461682493854759893301339944669795331734703593226781363843206702547525557540802652725187926430198634594861533146183682043000289899044942482150059566803509910174652547945591746990434590431048769359365743234338381947858346480556334606950610894797515540054908054086768300907636572901889189309471234282129424397208125751556840053158707193651243465355542159498591676984235815202427270085809140313456639317283607024710579979824489855488644946876714746473343716950202537521653783711562215589961209820584591618604267322207479735565789014969728060923130979606001668818995405546065011324240897078291834746648616293883719709257368584513252431589327798699732410607681856274196247041095296806894705459864376527993451772778142815133693446722121300781627630611705149164947425681350940996141244052591073684183537494286219311436026818779513114539356355934376000045039056426818750669997952228170833481249400240256169337234428394076692252525987934069527738806009159243313487556230319601520733910989715417824607205832053080069445715369274247828349726283225154573812305378083906034412874334906650426096146037394294671906320918766169191822214242544152260581501440239766106198681338296957490332966749673939638034055539860839124810688310626855261857380175785489065244928332393007342224512770401280680701672653384880333762806708520752589891962834153392782243770362572071899881084166325237728469556540203562781440031238231255055722015589000493167281722378630168825607266222207643841907516130473288765137742360408104551843195497867272970967521270453773521422131552098239813897471941591418834979670693531475117663291563653079959508084976693204331066904277413133352989626569632963488450976848546490958420658332357611856678052914958576116615199819969572031473402031584875240724803778846854774793237501194429454866961528708424069705594406801598132722504784951121509450711309569121797623956030475328768406671725179651241910095207360785255907985335469846155479798397837335042116222075915785836036877093529798348180282112368890290869822051547952165547412147327764337775158093861744101272401772540946028293571571005929250488297022037887777963498064320558596610945549362135185415221389007952741787221373769023496385461653319828208733492712765097353022088308683071377251591718663265997471959797886180148215672696886697924256776253512457381105800758841763197751830882241210303871763395522059728297159083111998973518541546131389772787353418517019959837831400060432323441402263061227453879138214837821385687729949577011131665609959083588731743897717580454343997860764739584989941419044431128065268614574892520589434230361335616132528312705499962741312231338679599737643937759358897214779026558186223156360285360567266426998911034846606370601756662827586359939337090402757332334983619628468199373776878794881020596446431587119541382110690362628492693933725762118115587623174853471668074673013420439298760769730959967780241594397994248849779251419152047571418251778210150056493962704347082819189658302271417697539739295029927140850285309521890458341016297901207415578068966547704166660067269149167079698474327948754077979184967383392819672431958292614837236013656948576191671630299812528340601542309457410667354201273519996857781660929383519981404343600448562089381877382750347591214193581595896890351163758773731068855021702060676277264977296760013317226974496513504426411268674598896179533373212869518223901610520673119862892981990449514359803226775950391640966967247306142781418638317148031815902419777735706900404249721638010569151531390664612418156919391295728979919903604249833992059514119985476327258270925365728792461711871553565520447487724359113513274741319153785163819320207967523768498650579539929560627789905994199796325566797340077260501607098106148761879738962429083694454604083602694144554451794275557124518583441274367394579170630764132428987542026048870460218001426383167124819178431825223840272253069932875722949568564235332605570418132851770828726170117060231751384015018334987206841062485469431552592209536653729703776918527687470292085538768732681039035486943752710219769074496632460277269135501044082502626806771106368496043612457663365953667204218551831718734246538669405704661238636934843951874783532586920967940033164780891835322839755233249909540384103141537137356368259092658004906638357482393438792887408607248969752386463830887786546931951012528649862796701653508204534084345336627665300548008833954254420933013346368693641244049495291408486061064834707353804286727114620850419668731459185040172837166655093507400336931805455298179716810355047542632085307106585822269615215827289599172642079149465922028819779800354336869965515869090313722024574342872861636220674449081791520087600307797452986490426415317412026650269030075144970127623464972881874056841332727778176396319781385633186319535378940654944746905247072947761707569067105343051814289081382041869104972601871652704166134877062780450732039333784898177172255800544552175574180726388103105942254720435127571523289607503153155052101293329134236377235648532228353535594373362980152305997379777792579829096238761302886343038467664732977270485790901475794093006668080819229371679263499874680645822532516862057836941736993952188465530905957916157057217377989961683457467824858720315158147722641163344625673402556983295363332721077925954755359949113767670675191182275295930095308960717451810476693153590787874496517546170079918802995724389115261052126987354165089194058752621327717610368548080958961409368961446907918498751177683145828606777100655255375380115403578799141068011816602685114300809056920698666419241344730677611464171230026311324960495488377187015208851904208543979335782927115077218885507569087644389883065054532242502903625596172670059370925647931227110927058685139193904703808564317716358628907293091297165109329724131131724033741899097148265910210710169607110885254081525097419924776218998447040791098541706527432187425409373101767810150905022871761335364750071580717603103719799316188184779664739853718475805818474261220583511886730804438765695373593853348272750195255405079880768536761387710263887639244182853772998417650555373395941763562806500012039534062357941912560416265941053140656579494709490773943365399091245512629568050177151976254701192154015908753679498635109900373933877326412815987078009008486935989871340120343333352988914405492749529457640088639502518132049546112926083933658605703493737000687574237737671380643832832306277234064302434846827291434047599599325083881044677826256080677470159460318992892921961921954059643531496188849004288458940044661344869157051101564585545895774231795049273256411785132262852947705195241890481209534704955560199022836740300668408816896686357318395889676924741911871882537808361654365189672682789776773295754039176528774125087255005567617141142865403995224762835045857823778628034120109450441201495986215022440592286812716026261397497841289345002016480724010904477048249977150993048175551490731326053840812238245292303835164310856158054347650327663830233383796929543134413513462313384744826434607669392238911149162612213844720866877953583131539951751087154038313673840462251631080858244980767646155517682857223914326033849852621480737936434869675112803689204977873059283852482635225549943733689492056138017110822784003759275395987055407100024906916086882548398964482370847235473294466202336493735806182472288121351995311503858432801835223714273586750803775921941628082386054390370099344097285704885743936444790607220663054065117250982913720473607686264342157473782052519004670552200644586947759542933620941341369405835006060612152210878615321236193364532902594037997103175281019047224488609861954329209653239348001881868475682776917516623853610508685191804685123684672394601598186570328254560601056235584963565515295915420665769656937930111126521347365045061996443805268168298189263215765623771252550238101910570355017873422016150095425034942267204186810286025202199220050100891754017463308866752362793061273362737236519804148190161691963851946115214774758388079312190661087842897945123561051269738396235306835377523434469179181838403346238707776383062390245129248256290863088006499171096713606210612440120642441474190586740747280356673066548962372703918893734830534246084977658490559335353988114787093842735259546453414468519914863978112549988620184122037885546507196587044484293575607802673854775948186887331684125426358217792748062948808880356112112798146075861037212329965495061224700705215115650811841376567029177107487030787765529312000601207229544904691632296657676268296585443431859343836905616538941725943313193966282731208249183174790820616172068926978146564543921730911133264076569516133017115350292655172222534287856330840638182622640801447189430846531458769410378736675129518902045446549975536438767047022705522770275823510159787807160712320142499424528114628133362586151761753050757943140597602808013116557504622854129874801466904193767549608095124932949247143130652771545246426158833943589789184722308895976359518976444615258555190891327695129968123563158051115242871139265621574835966802434264026076324980523325148339268152733376858184363832907683430423759870160585231679492924814407941218872673776110180781775676116909495319161555493242972016957956075293143135154866881523063407447356710284728343489560579756516454478870165114172284337409077974584636411539663312429891752192561152498598512501333178386182313335035673222549018493917436278289875231892723075455388997515940788360243139541367907732951890987004448140953960631882953228592633543361895552861800134557776658405350360097243763404033382438766546422919876368759140949521147054822356938971425175589190183677165839566351379437145436058193019725151813380941979451402915761119288744621506995038446844944393359102462643741936046205471392920609580644527915848352838251947742158406485700293905110350060068823574344612890377084676808839474742612374250496148904122747137592226371941642176382689867833519728638658476597763719065635984270441186413446473947556949665093907744143182479300088519468637900741309726834021550486745287477036571794306741402344634509202965505473908372064728574743824991246270061462517241267343203617853674740159436928444949722045054048943512947209545132187310554077680998849841299795495139842915490885964305638316788893762073113422917398216400630300401442171193373376011996456806819582419615343112946520681226721935738012465646026338509590740391789087785210432791301813687914385223371881475254950371949566202084172070048915416709710038265822312563067540456239184819920213648271947632090407115985954730879474908618925831026403894888810916932824796691912246647332534793920420530928799334858055329328563619165982528069178146692613788534930900855412651212031384729825534500472045195210539028047473592199875062543763153142918078889672810549092340338843163399458145116322818798524853162300372323989419926889869698234795622033127092389479860331003017338006720007206643374573986248791869948183190498775318299467192532383375939598010498736000564269439259878736720442523939305344496530151815617825235451298856901095844375934117459427807235321539550009443308622040330650209037153693921328605585671581225704506509208070237706990365735788297325498920893322589803830022563036967992142264410638311897460364073864921284751787020345903792817845973349963956490121871732275377324925662714825302878198619433239523886808776329470261055232277195252553088618891395724163445078930594019099987748720978873364183861705630703213181097164053641291443164330070058673062117193290891506797919095685986870497550939889708398116021050437069946611940405198510868643569642883260353752788375090993835661603076751762898583191456997399615345301439724639251857475721274975946733484558974927124373723406402680278320664042209232134240193480744793685599415031604398607782066989042769692491330534763544937648508435118337976378066053546097754980618699226373585127200431327987713136097860608149956291752692401674712370158461295858864769421475292216425959162490671646700280755883227098310035783770971006771033932044161490077311417368654753507836671682478142996777214186129661602310948764433667102508847859261564953589094920841640204885162556096152173384092516483073559467135335765667265793917509290577679626941774285719179590388511478498317094619132575208664018445677488786302313155418679991371624106194208669726468722040178795186072741401933334853731178893661119910511772810267922025667848120928369460789461385169690567813240439542639684715598894309758460501792721806663416323457224743994640903762104998668515199383425387040301294597356366093265603558536789905368862653424432847399173676602943454234241984424123661920432810203571031581042939957581620717715850893174565876033133335089497053208283692210955558123111179509977545777346045265006733632651660673678108213044785447867624418623019813432911856724996877110947871318812585967226539355158247695752643156759972021597902301885219239977963767462081489135718831068177072021016896369687232388031074603236419391873782570503318200896185834776503453093290406217243940617087532239486722852066573409399357066188640767941585170597605309174127393627579169751659242723977488524695019189229696048257310920839911883746999451247530677924697316426858381244470361642188478289752622905655460884951968161197678169968046313289014374883292829039692114317963919706945200260286404678016225386787413556930530502846328503892650735300638053097332919593907886532999199421471179750145076949020449470617342425644101544586370837103541877498749837978335666901946577850469301833814928773130306901363895749923512276121017836298718919850333552243243753787621725939138995843800494933891734142318275029919093979790300333447515909650360725880951594690817327012763916515549307573610393949323369146294304074442480730930107115340011667684375705440402734479355513052706407509717987099851365983766421448608213227881526208889870873798733113129277608334048391352037693322414376974489289826041048126376914744134690733649078405090647955765962944636737350217135829450707993335950269698209331856415086261999856883215010351205776276406330279183836129181487303389211245451860377857507042545274727057639142009982837189867680083726421546775751810780129209856120914738992441814962072790358789312649241766120046666951346119680121856944424628671393049358356639407963589595314211386141431142409994513554656010868119609422130539798896982872196398082829314172884721564147471117382327780758123896616525947101670432610157363771812752637395232066666383714721676338976727557115852987067598850136937589374189144615041029518760482841505818143585167949377512660806437554388854702979314092385049233678417385609582848473225212570482758348857125073798820498137601373819895259795925707231020539315239628722689799158019189823621164013448490715007561845967116614566213173891126837229472203105040964484098782127026657528791279636101327143894163017147989475533205160050886696929192347133364968696760483276836213074207350483728167545709351685934319592869926063647179848356055442834648958476657932673678850276153787330686582455483594870631906295915671711440926884622938188980059275990113749877783433447025813412768872852339209124363314621331981012922670522176780168683824182416982189220770775126227280628228205243384362603935524526962055990918589761958308825368987787361629081139522881875147234957064263930864955588077137452047619920889946018833002086912366072975601889610019459854862412201587541969198896625946291694843309658817992146115799931239666598510278577481636218020352570323516870608443666251031686531727166228453599481568782839563260478238804905201103275278205120970945356596180712267026732056986764476495284643124983666457548656173030437558738983051235388340265012232872889766567739923816149096473294719768229159778488213648663637860637824044438523152511241836415824665144561480923925090406455712970504837556449341942535625830919119392166035869498817577642805717500760804819435656741687206423797539786623945812331858733986062900333412976455204834190987103861001465312145753103308708976835954552642747450801897469227070290778845200358808653302725382543643682633464959379647117931326432091655697831915716304836940565005802723602932103711682056053919273114808443222873950161173299299607516408855413829091205093338493139506788412702253502878504237110115981023825916528540093802520105725619218521559869885132368066637381749308381893761996117695687354284621613838100437677718615520950190515275879672322643110183686037956992670834461816402590448865993801843154833890337263341943485645096016302135131689453997991385892394668285684182514148331726833567772176938642645555067994333229184315721883872855238906248676153840927703063210060808783902280015639775855760194305409393392970904299663823045635311259999200858703489223487920987593822111891600042055691892463733512272402246219907052619054133869976115346167718990958163374289514367733345228490851878941683119684632754189903428801214122767333175056473725800551073705749784284541107305649881398940969123492863236844966388408372463726058169071807113085307434277291098110849744405039252554326119325897264430340073633080061198879379022907654206800837144791340141668848239251670052586585376957874508152764145799100042539835999896860933939520630919633164043252115766212702973640605657038562492218949630416730489998587575007287229929707659648437535004015680999145919838090037464981381644105482023073892018455719846957148502115554899972385212475669787136524790380880941519106210478208931950472484658863452749719206739888400519581517406349106698033024483191197431519956252046500265690759401986251351579023832175401261291804703545845290781352025094877301899206265784212023767682010143241438333113377753910269128299535581405530742491835208993231694849256362301894291356870424911373697120279740746514336591418873500354252944601216633687195974429764956055312610800019724846960991064412032498572362385699179600039830245520588554660841186847093864349765852450519319359259372481530086263764734654060533041960990571133905992276463039917844969968534867166467667504264715024728665705390807465352012285223835427579625750504619905935293611109190460481252125318550238828919490407159179807886722689504375210760016121871309504672959914564666243029622475575036812155423953323621924444393235354157478997140787898114353664493516433784429026556260724896721305603786473837152332907206652227537864284695874567062694104513478789936480693796700629317766324990159651543256997849190775477882946740275008463744111879146255793771749907074010560073076467224867058424842643540152188830399585538112247002143263192331195729188247320910661177098476846843858956989097911924389190296724838977842377088680810238820296928790171846809843012547135891953377550478830875761574870194048302653319574856045215450715299877977605523802178124112092331850672019441155696467841887777027898743466885169162986899773583506769404029895879885729519353437806583888593509561994863656210411762874970611127339547200506334555915029684103463321242421650507407321405988606235566453754962293246588380883728148486795969079103230595102017777477883019517223134664288303777230794771980824227902502142748671373480838225215794299203416416279811529317994017105505021416882937362355690781830812378153997125837936811715338133694786970065823153465008175691793549714897501145260301993441242879755451847351786344953180658597724151531328857836459425090663218346528763328024908757175726882687146766498009948169208020293202412228765678364993637790730544060951570409530341201513746355151936493369233942487163113641484708329654897275731289971295112846398050970723757494230427447202972585091076555690355597877523150900006459691814495635562747573882087108257147727002837901274607362050492699123921213006337619524059989415387731906064580522978123097059488830782692276656244677910724754559254973561051282708673807997728612919927969142532571526751979343434651076575603500696501596270655244317370621271133521908768137124531219514910716399234213247180942560675817193737809205267633556400546656036581053161834816136501316382811791115286920003312984330347099031147245175485344849127143578795234287990543628662600195888332306034838409740695517754071060182270040240790551119818423791457148922718131638724676924964475467296754223623223350105995599218181505011141111448700003250562216651647667121756574861413150618267114227902558032394450431900248040932638864461708192914099985348194981466124774936138380433220639499970050313371199129127248049728480673654565637901636221417779203739831864346261646073378964045166163475360415341706730136485334188657314299095205832558165943239408049107626963984990215036633867371249271390529801897588443394801332796729478591107255494291122909468676084147844220156453132659461128568413092745236084445171360819256528000249878237716475446560019540715018027658510121190633414424268276697179754884587953730635048384171347876740608890644659819152723811739958188293512135637016852596544387237639864579984055568187288064273949153389730635989289198616858935942184716432246327340977690955860849248312021058872841520286134980942807562180097541403270909313856676689115058364895803951970819854815617182989017134671367577113887762995527018466666001262199241190343170123483623301020171710680520712237648031355845683817909751430005581463590121609210074597630742631786301226336644838432858368028822895712408969803667956837127842250991293310408515096602259098874949092685447907553386297774052217562657103514891223277658948199324073666274073086704654110811667990732929893993705915445765655302178999733039695931294922458636915484662070490549028594562443960473043329010591608259166110227152426317147348935847302064568878239447055349647133315687965220094842877629373155010300266732974446251340212117674589535007434500627121773249537817301219638648034008092665123569233816491264388994411931377468331797013301394055755373727660447751012204672449778117246148508241302216450421996302781181650075491475466083868234748423664631771754699648431333030829655529628210540486548584171022006340703642255750373870035309444544949864617348667282555978077249157903916509335759580295582997346280574774844182629601022855416430385697623619263554861910437845091132833545899570537619718174308659480415334117585697660651485264541668800335060524815332371155035815936998077324264813271199225877846083638409541249149080886426870233180649913464581597803695779295366770641362581825762677247086563896873242095202302324887043307260487429130197642304474225934841833566539089565019046588365437994261599233634283845153627420641975220998044178318706581750796874709533941823638289092190943018087164288939376076724002612878432223035616827898570040150885801832440418453390617983205761643215263548767176184466023733195341022861690198573051356203494274703559352434667377410759228276815293788479035856023618249606265408685956303651720056546643129064765549873619574252283872461191213904566686061032458245082827184719563562684135704669974047646880195678841368619119718055546667570422572760938743200723818509643064012355636416551034753685210557155257308845568132733180784926983819334112132958509633347596564508021543420578775133183567068523427958834585736583891224951088266779342397029176754017689564748760963291258541416219572881433760659097731884101709593327083687622523571771785696897317481631815995648837338423049655018114488541346907645998756632193096859923048674898665199529486707275766367825814602205302024669790754339234206930233706396160691363802080776273470233212780516111575977196095634313193813565815966345449453803282071836003833807652549977349843687609724782859059535264533902193016312983622849794271035352612804908681475763290805925562595956401214755719903627094719277933842410470781328885396035114389424021349988198420718649209920805345185651754104911360506997782548784701925738124088704256879225205970793548757908793131541049310642632217463258702292647623810065032354440643865296857265445477775741446941788960327479972625003990534710437063178117844517996047732675103733644710760506816938017038284909757544399783926339611539418849715556268857600431513444402657704469487471818401785980271357802285936902899797538734113493721349254857643281162624975046569214913456518601000181508239783906289668555099065700286398507844246185385700725928614352863643005811946527660164753748235177656899914262666149363410413912308072465774666008483678488803108665172978295997413881162584822161397539084757928706337494926497766207439039853268790506075343195625682753807921943106615314418632822740905705386340002783115963363783218944867460964616805327428069558410746973721932491620177162568749635218719375695511871394493280368895228802362081309609120186563127784043224921217971302682947094311180714543977475650388404771603170956981836188010590769105295850048486341123288724837295130204651937409941601002949413752193572650129337666563657904200607562870310893014981918581525170107229439562899800363216315980231008829970024022694702449749806203580132279091769878029424815498627410933903974741048644466968924807005435256900202085696041090622596126351434404202884995099145036097860604609095858663812061243008896317085030594691883704547072189539044163080079134624337090710634896305960530071751529515592825120098383784294180762223359769619625188904160849658201104589170546152122840714081637634508685020048432844497417580015624911036067429716917759087478642410321263083765345109435738076929331785640032201230522890163255980400744900384178535673055682823668129800194512711927826582978299004983982162260191117599506895443343249869509931356363359253272921420706231015567714209668137013980359239271871560130734558010862081019809135446725690705765163204331825832540555857483408116744952404163061174177468207036563046715850930861728605109328190570059043145579958687541635185008096644279835907395249729140235580689230140210198388077520075585452872760844930730979572650864848072753586798651319614954271110009504945765197249454940537568804201029940882524167407598657014405132580687354337400378127882937738353183523756688015435101994670777716113341018079655914735831614295899164442087153869985014617082711516267243562695703878640816722902295370658126425483730571018765075773093384059983730558283726447181741624608402987606714721712853949894101252539781668599178244094675904375588602546546221212799167317052827608735073950958055105756134680108721520626571833415617210329145936944699088576106424666692449185872528157679455093678140942042354425679446493619514006245389009789363730017398726097334268586237727429501736986142268949896065473192566363474785372566678444086944136996409713134741787574575471564378564810588418670410880693300150659975631983873261175056733191538842935626200463112602764521188251928956248002553764100736915042435392660899087511288218851272925679327123936091096386419121568013223699412618210054022076006703904665335226459909187555340093897642952999201670345042586244083097922549020955674371256595424904940118687807201170452001506657078485535121343803618707638566462396686456480018267332337380347167326751764304168929444319144555169883910525866401293181705800400801964121525142763659507493565763670331587410150028794877614023034496208542967590709437748577760993859140143664428973885017024019843994785727489289508409429345918024672487684376751040117916283526332148731435424741410705997360420874130493781977423592148107033099060141568416031297976341780575843136331375508476269093948612477764324810683009923865310048927550950768792634904828519870104394375547688597524737987023292368555955647924622961996430061152015367343850216418512625897943359611670717505123056588101165488356813162254034861141999695522932564064174449344890027125550617045460385607711282742916197673495447467290793482074319783693391626029523027508381365591008752964977778134420678819076956115158556445572284747863895209721204571784284848154922609638337373202405791399584874835987455854023342951993378337759801241540460339534011547672945907413679689946980784831453378203561665524335635357573371861876141700219273445238804699207286578972990258600997618209483633818432965473895627034811920542166364333291999026287065933195025130355266704048398705664118641801574038592572603279634495968255240935139012148474619473889395180460443466294231822053350970815445215580971137966700922995138915521813776104623243169549805583722018573635720849740113388465927381499411080756404929116527122090765551445556757095852688039094894393900936387574347561161870835137566916268871489573809378235142196190235996619795016468435023649482986531303176559126922338316711944319274482272626355613874083095674045820598249294913855963082463678659692179274566678613851225518158465949242878120928270452911630762621002316568113951635496762326936896151965890824547107789629175511215514346294187461393283338701441802034597894936120598256322239690609901560018013521809291604460821813662775593234500443570638036878538048016082780225185734307223013658304787270683813174333475550076337699603234993745063420952180293787764156768448981280200056683270659667204998962092066975360219091878896678590267686211164890479833966346432000947757686285197053398183245338415439517506377181223944136667871693795070511822552043923038173665559909419760557358971553196990377514591432643040359544107355058110244630673584076800675877821117976205301390852511654114674692020423471765416386058338127179616868179358805648883919406770435149931564414313049746724706719087967026840295191626735623531502725977422594541309657779820620574154755518840464416504236874254517251290843792686372374538220206579234905317827709012674162885487112055144946142971577802475760520844580332815749972744023719233001248137674935358491063356418177919427548830155264435446901706293665233422829835534357816205244318865919030098654149932984190729579393285948320351533310568745724331372472122557994894182435132885720872954309610398266927463297360028939349394809755089231255391012852248660639790964937380663012676892163349820168566355586490800687371032109188551652216295410836061286195371295253980157528629069011961356018825675152834105552163667479026536031325761455651485900872462262582916577941346742918046759952645670529294237373753815618237045717049636792759194169844929884369010290888057093744155700032548337488437033135743158917233107043328488347506124129797051887289420459762199360499946346972558199651049396173011177435537756858747615191605178913852043826504798320208043579426183116828526304791116706692113856692997750580421591233852881229352202381069461427538117599898144957849914625652616830787206830742279162408987972995095015023020512160235639672122864338003258193375900009981935821932464288442510155207142675233351260696418181298589899643482642598259933012426095671956397962451570986055920848275438463720275975140457046712217805780398407399835084214076954540987798261448931621904548338427176557124485607588528240648289673474529416684013997428512018519746150996966005747917343688159428652210080809601252308584144687484112726350717089951672155949599643415947571196010116642283753969979538100026804934069190178576521024786173020753842907876139165443920939647195900622840521373919486347372866216627656302388022605002769914138380557577639684446741234404515558217409548688934541383096176160711149548557333286104235945263727883330418701495658216547059476517362817234644905217940448635505886377297098736234987039209140136877159106253902686932890731458096746748812000005550211739984315562271412216241020589548514230459424059507633371095343953848338442778195458129464653202635369821745790972954052765217247291701179397564410862930118819490566569755126046241200308347560722424864924259775736127736744764079169147615273989849420001910980450989281232167159449264849074037932755279308974091651199915576647900174374146308503468606048234933672541937662219280236019233511573883192790556878169216807721407476283001773557569542613678668164411594849104825817998245183878287342522259701178302281162525933538228455504527555197571661304123515105542817218972045389055874872669363335178460603015845048247881007810058342418209359465201524501183351233463295036526967066125414513893087682874193091320620939285259284082758808444558829061084952833051436579115307307439410224974969951687901188149243754923987651322650334222850816105838981138084132125402005990246797039340459576735981066140113401540565350460061932809651678791598996781542595649899555272695019757980890172709319249621222519044367570110372181563746477205310179216763029287380571292933175092266101136925377592406658111439682942627997661393177371188957971559695609609074676185765273899507287050796720224742873430643803848613562993430110663590459647594830344061462151131962574402788447823664750741512727518791191901814351302390943230004698675001731646896918092032025708121038852547989960771204172374099453421933890758932582548687699160203623169020428125094464942972754187998251663828648918200826893130182960791567845965333293114224100893974262718962704347435557166026771950046708209877919446453593231724381314605630237210180436877680439399791181284413223703557752593868659767772107533450125782948576502945791363533845242278416005324389685195724162549265992329363517479963124833510901944376467118338687762526883461561897795506781817532932254413972524107909370387664592343047973688693854421498903333132327723495972418870964724692415277789900731080184297739219512160811575211778374533504890889431963744023533678057337382824096806632978803570110551348353686717612417192292859561739193260647495296037779877112734458126812195639474724931237817813331069763434198626301686606399766750512049406162035927495462394834779267994629177657327757044858252248556459767121115848598764907651016001257078416750600954320450585148528990611412921803727937275581818252714382588581224874482020634939068598831843039456777656887228490479498595981709750382291394034318354628145205049774107474419488332024732452552871206549818283787372171854607069790219587864748272287527252425278292353824273761215785269200340573341142792884400810937029661280626157259662347100900857644338004620536912337138877121725769669928176432410433586329479125738179922640819020610487605162046387889725134588614811323860909224382144368127972176049138940519090944773297991368526039744283854459404388266772520105252404864101101535300293915879319228657047389093551572033322183656880879291388962451578506531378933394549396962567809812578457903096758929043415069378239174479529348441234781388232232757212601141039710874908946803145663883633040346361907752703398729034290296718759360851575635015109176937294653592370420031556339424149357466857374851123235252156836265983378828850762763840562185249042863980972944721326596632118975091877621684740592473609125788619170355240312242788051304823428843304625078954694815335105541244454947348013581049539551017829335157295307119585005397156129243639733768361748621879262520083381487351139989739151049207955786273841886962785366860975445865016541511743323713371769812279448531629780436363859731761142310454623360697426591523740930910245970064659601908954363870564021314954380340638419521489271270952272678719523135429758528429946465030104693773488949208881278688409405807035762048185929296178510436533209988256098606711599243331356570121954927806582696728943665853662451802113438192266252337880404934901274552324096702414763295156020912492449384779063598151126708880864175036393539632848131394797512055989489587396802214226407716961655465755272249048453888676058680997876553559326334819580585496593394737509256720631853117838819739795512181183240658816243355076975286616345201093118966073684909374330835051705470851699539231454706842308384334084481057945526216306830450592092828591242194413195312977657603012713442531071487017564540022202646429495262733450064065108864605618777103978567750484655236844922939574338881278363165556844595222640111899615188385125122727909434418711670814785124197997190602446847662653717145084909722410482745567138876606832110580150314914791731635335689282841496078931080420912816534949300100777753915828764810786095360392811251443945319525223646933446212787207563767088956458605587794316749817107795242843817752765468285475883004719917901565271006318579690531074493731607012180373964074191280337724961018269591206859993241342157804363390123582171255685469768197445783978310962189919469866146352888798760735233406573867056609397332922882901706216775495655853448572778124825248133676025323526471358464724875693148295339194388568060315040962383557096891941996893277469887155576383320701465308115316301266728344856929064921723671720011247055195416793512947292997575781383160720621465668394214273081934700075907713375973586238451346323727781803449560557203397392957898690611176202411243513230220151463883486471983308805751510620753045881472783258268930294676521853230616089703893874733265081100169571703801231259440656501628463767816220997450146611770380608887924869109435862673375755931793328354235182710157701809535028745705608192120600620728351461003940219408668200856012077414679292983144504532891070126661218866648392296786875305005561399456544590694574032007578971450524743824529359695979469769224933343071136726707246719504761530226268074697558222119836771160394494206612796860769411374128935448291380082270566650691647861720636868407224316923991250138457421376645080522591229445073276372852947877442383502629667620430946943922393985986635397753716050911970690339312443553769195227767331514036737467224851478340471700100195492932420771864203651536100350503501265551315138694138250195630229724011180449051026998550492440537294416647846381278829272798590152686379318262351537271072368385252252948203708455054452771242554459391128945485597726311088395502973610353323327943295083031232964631164041200129575075909821737868679439514190788635284774142465867307956810099543184849597255859248752951886735779639911623978214007714825054675399196444345093885750844049164486443063986502479950987832759420654655406785356710190374449155297078946691155766298396778665824086817721627325888974441646966314337467984371570684067052241058580229741638134931160640099696319388648872748958423516815468631809695969390249337740966934360867683500884123981469352888211387819562872058366583243414890057828944240309650102437858029162204561024816673808987338037606054245486284768973533292085118681752305594752499107983423561131844759607843880425327709670937551974351774367952600374204860434384043243309542772984000557895254685462437981460420708580542648036725552318470254509970320505149325477792942127078380097515595104518614221529392636629470362040575398774233840826578944236928992917555528107339998155998866380547544777657469793652791919609391394307347204598620671805787208513668647668124045085931480981124393872673966603688874924914332435933353169100252108178779708052646702511951860531102588988350659597599217561255958121315106680059668025106768408324703205641664811363524184727590173030012506788482230831999422234641329130235589804300792531020292041352725141014302713331264306699582654251460154971944499375380716414095020904967947987215831098891433937467028623597486582986486302527024612560764520830655464046713563754368514818482541051296591633061596992514254795674638848441447773816869886107874377376918364333792093884256507986253695648695666045175579458332537677362917216022100616225680958703370440808282452394194739260107669099773842483516319277299421271493800921448922157563136863269065893568676314607763012766013869582913299810322882319464373395475567485998537655815778624575781655374087221933163970825341429077753109917290147966025353650593690400524718151390609039358931147075369417508391926247808275040134940645883318855324850453691847893153121232138563265880399589134655584423221848822478956871460491236756365496684159647547212618156007745454976363316469851501403505466962553411984945752802225030402606645119415268175666843337537499230178026849861519859561596073927330497627826397676429225761794536580594555842014872499992994187282003530159235096749429461256397431365505047523441743657139610697276860419747683329010343833110636566823703881543769870141726469817287102899835275291426559561632268427858754222711575207403923827113151586495490087530690100155531526976463583717176570417081078908203322172555879645945056948446065377480793354247877881704521960684118573557284394413205804910113187615154432282014516646226773605396640720942121336874069687396056675479536309563286674740966424888148053624149516786711602771848301186660437570914298559951895143103072944114316041644141046499491355638277393289461161528650960889065689502754028511667360417809324208447649966712239403143101187275895495661222052751589271835045477049983738188944736174704310857486081310176601012375555415875815057066547630792840316397659466054467558437026974672598905177668560306882282672242289900626397002669445507545034735503847417078601666214154659291103253234433947642789548846437528974696373128543487711323974175487770144344159698547272997546767559353235768491997646632619906631435461569743069303138806916234175392287184870386000643032817272777038314203968357447808654374059240551276512005067642484919098810415930649153498889614748055184792085321833505207040876385747748058472786164959675771857329650722497673493682657347033631653027522425502840163011676020430328411618458973891408101718668225652471272556345084806770482396463075732338470081644792897852371665016419783762657322899260586253963640828838055258180420951879079693046668248050202592668465367095895517983266323555442939014761349260533329794415450812457152633860573788068278406163661738327092779791637709510316266170322935592131511368759671969086650284813048767486926806766096150195887313782969985633556961611259985588205172052387319589285477271869427592578852780821494287345142656335275136969724119966145112309508088873343500889570024056467751031695071442893927360407025379341560040255569218472865810501396919842433438846685182332441474798827451887577455215176128289312791246075869557130633493552629042782699613941172123745379249419502235646646037577158971450050622826142815019906278122972450532084689480742188298365985274465474033481776555827266100999215108126231763450776364395245130501941625818076075080028480613004828138982474285825159531658692017420637221729744918364658004440817327527393343390390029649538751040040978869159411451170319474901279570507011837620030365399705132269596394622425464765613412165644546354125610233471797855206888644892538988144249671535331730730803238160262557166363486348102146439010434413752229552485552219222609290455243277757056420240798215645713465582902461415765623891064957236047530043227880963985622329306641046500010382408461226632809407580197308736998194755865779872676155168854445507292698418607663836427537319878770510690800838114588748071254806680792866685161449306653258306893367287067106224871773792966349001908725581319725748384076597210660669222513269165871095693830968939630421108523003471371561497229532777823506144683373691715072769630588955877624696939049801503514521350115875643294973448611570568419803383944985927602015334558741729820438589666570714728300681125460594129747124584077526912151940017811381107324446205084942596911691344009833177167117014719685025877390790042578319593838824677542320644442216820795020620176078494851867357215329872238629945190077115639047703508526421984846360028656506738159220789125822498994018792962928775535542253199977868892895031392297759599967885227581892543314523194475600218060249298826338646669854562166623844374753985168366169770197618308832778002549710712981353406243333505419670315943442412812541546667274219657209375168568986324525650490797335470990211254420410508896588894682472907084704747969671550105105751665999279276144423760713524614847058674795193346874092578423950587524492426844411118853824185097592324731512043513144249820283582683675453400264374232585425553373381996366723233980594462467447900607991217727236679788188910022614995476964220158909741156165177699493812104622581510472303301105393356006290568378264046667141782037024135695741746990380812591894376632143010719921574452390781257418576024013489828569834548609617784677272956075604537089615648210750569029608780081837595126540653853189143621975459635401869989260407023451205977136798248161535984138977634243244912776410154535736092444213769036606081245626950303453642224479346581476713963607597013659554873989887597255888436165221396179054560481758068127311150725174599588409142033402594241968595398138416639267435638016220756520282905571965244200506110958852648159715637877138163885903166060361501280067081242881587324111566661714609430523738102073638512150575862263335886185151548258298179046454496432409172051132647966776996245797742352596256327336960821914420788824305157512430364181994136064328855312182576198651357119322038178118317485918397234812201783362970681513183656058169916758472926966991466541736130508931427533903256329991367937238587724926198618050545237845725788342847815633686805830216850353064685506059635199212184301639014913463012558316969544842398587636997682818380167777988308264588941108602477580237651629706999165084798012893407475031054049652980820198144675388474115627069201741814999654480350803710052412081216206015555934522224447226997211534938894753219537071860086181668973197525789323953055368473796285860708626989448883000190410683727803475204936614227664002291617870035031200593896217138861906183400080068242495392226626632892983376151466475478197638380750635089113207386610429019160261196367873260163558155737593110927604257394027170628000514254667563808133553339232720819834589109620871745700619115938083117416414146385177363376889047684050433879259865917782158250453235179271830133451832476108266429600875609770243689577214064700316584072364688064491158815018769790956798992527903018205106656731427263490999233371663492454696468494945653513922345668784851097636275889897910721217096905196877797647189083448574567638131741362435429652195565922006088764588521338455156710376337855654611566467047481909694647805578790081554130584168330761282559372327334300539618012650596276907123686645873456693686055339711283286968579437010933181940268808190145553869305348088568058054780571098926303167506732762737393230838606364071897374652118968195368675772583919132830241883534365947610571339779945622644642059689604391412175551085874843243190799381468565612043954194416082885564111743545341888340715901019848612607876055968503296745892261287337346539702084268886456394512312280900145225438347460418160048794341778581806466141440654902590161868789502181165475515556872496242320633330113514128725250727353288299544907507268902865301664206281045257005413711590187418606615811503514403257554000538186823604210948204852850615094635041498872722745599619145990127275428025748927145482038119357894719466503626016122409783804873789587359345684117550948028322566800041852569183868439640381508050089834954381699352838129810242930625036830903553570802903816474656270942468938458130707409839203148666234627659891618581921585401603682286825642206981113061093778427786931139313072117314412954616907886775525639510474133889719542561999530273964243713488611188860087963083929257458679633417651074704975543267237438087059199841527308705742024656954260862236446806996283999035675517089086044802344585305895270906706948964305110880527192921595782102009223309481210207440071109286411118892923238284822610307063834417736615284639174034867402143697953363173514358117360539702576724543008684227211111688838864315971673233027754954795442099353714383751219419436173946238545039021074951209419699670585917893966942808460551156533395269792246339113076225101180460468647321679938968050817585731107997246898050624750573351395352385271140789768120156450136545733735806310872298982397439834461462348213083095513723755519760549988198350859248297732251872994182895555536292651342574950927990772012556544700649896415667146146301940179173869638870286733620740937004296047098387567287715941881801392125896290015193474440044460707894498168640025278566166884946118487740174223460218043688097373304428361089368873272655626369415713111679290008918489356289861389887040322015325549957998427939753789704835587179777553385128353241918799897294175595322235094590389698794884537609841640966724399729537455179573510742947712332559939929200807083906273510270262548654278014661206055035411757792908375660634757569870332013613608335730015894302148010158230970159322540472061375890766780756303592025679512115847250240208975881153965765990346727963270984272611021723481439978942690119940167219014810014190480230059485714532482171218491528492294171574029443154739586432428199973911442818988333821168425385765727993795597943660401764998852354624468143171235428507230311541139688544137666871048673074899701016393804973757071543869537877569654086203743126204752850793820103776871780946681804484417634580723238470951120428535779327672751716672702244792612374004367128683979143414071979687196312750117238581049061445721367469512742994654144111083467737974263123435734029127494278332165071885963293975676341609808423363287215858783295907067932909780022196293207039380198106227556649817092907934143697510448066736509289049143785223595933606630100395516542577899745567069243286710587066025923651179066499775093418891385565002367845182983280917525041973822144718067336580155822020686464359903371174169269516002398753585286612163974714202134474734891454674930943549565046333228340698595786181797711572328303506493893623338679770932722444878604702520353543869919017276555178719861005512998205226394648353995285684752811474364936433085910452030666686620898927292123125688167822179644824999886918962707465265270505155683287365030395420995027367100000704162532319578779655636421864649551850406610938071633705985644178486086832769276026271771583457183850501112003001561378383077777214985966078519006834763448382799412104495107544436847710981244621527890635294122022048854669048940310343219248743519303336789189280241824502200150828468555101950279380283866801540381486641205947178023829578268341663732272489888984697357243133238559219960466564061001299494506859132673094411096343746408564461753641107912301836194544204588363993139605703885900989411335565729021467884652045044451303543546245559155246604400571215397839981197847538816333642618163945519801919821597602431066226702669605416443312423188887570372572671874747741373261211418646059347328049905036734840505255352600438751679260207012768707138023686129368753782150466363670172726981554573069422045055025684176174681528592173064505658395880641568703252462275925732510132273221817258611422131539440495261726280615911205660829011175805955728326606790804078285896479204955760372760161388101955305137109739841918507087933496877646531772762666750935174627930828591193773861399257553353242192975498616225911464533639465262146645546850416685500550151900861440188696685009850888512077530630718219580241044581202757044071810658996759727133481196658361182749716920473024833878161608636556222329730291087981371582943785419443161007207374558466723531832110894119788735238855855554212881068456022662035869662553749247242422187805819669248425990656290754939875816530999574367303206949716134188787549520869154119097256706105468714113943729250649939401013753909047411133913231969876246889554891084375932365770923198207442441339414383629685974645120404178818484217753114432113831436421246623110601339673897642199622648210675777652861955394014476097412111310702900408350448309422519834990197224854839305993442433385156876054758323587609707349438134622596958960371866686207067427068806901019992117901055429559402916837292777885543845870911560021123743200521465718839958059621195837347393458393901156923638679668753909183265982542975405037077196452303654004066080725872656976053557743280358392033361746510169763597502167585594465734090836950315411615897790039767465491141574168535512339510511962460672303642999264716228878482022028445005784218903107499430430440161556818422221218217462009854576040487183585944919989337559465441494456176306176387589093669443531654183712222989662854898573245377132482357473026769938676798501513249654174377946848433627825428062372071841420614011219694738556774759934578738545613251108889855356134829669244906387729358723529808769189510163147007807344297111009900717276902071102447933996880708560894265579635032851214376918551425066276144587746432970750642055517527716377910199980014631841781165124363467614546336485969051850163718686179353148472163201174722737007027178085192656906847338276124378745271402697554290162120491271619698432746905414448197575669650987335795916626559832422745997983455939595974806343035475597113373748853766167821815631066693554095400018211442856272799346387529490970875141547619183818250826512578459607087872094020126657012731668852629057722771315836288902198054885078686539675226636450756926669055953729785791627584218736243861701329514694140551270864837143883321739786097518324422983905641192483269556170653081322426968646817323335445494234066268042701485963222521294812069106361145001247394186506549106789954077893882381441919426975886774100612269005664944207391304281012402390780607787534393451622498818990306003360322448936418398524333856485592781619802085557075907384255908168393122947101172433133468487658382350922036128670989269611139567416765637021010837979830793494937899984574038317257279201192921328079177121416311643981959543960092362168845670881178717056836517896842783251648085267955040161953858477093706031197364225176805621309485701561335531334806428142688729252326934605312981487840270126038848292639889114132099534196428468508762826132739210552970590682638219472330907854290804290587935379034155527459000908083835632545790387709196941599343291718227574942443923977637451061021158129928828516465013466912279376468933028356099841199573705422040013647088840457150482823226418367391067681614606275191458314020324277687344669681870621127564439907697925836674748512462056014043305531449703544727815436844425732256781092204816137085687778817481423134871172204403317931852448021583271349946014366952343774261496546652136202737531642301805821700790493452132920737423163971834608901854936470749878177497570054153177549623582959526295595806092041423020017321250475364284839197393543641724893955956646462395972274963464824066324656607305647180132033945124194571391187269966030968180499993801669670001174343313059613861648836341615128283454206423290063165207301772402157361511995960095213848075844664501234569687958484978981565332156175838078888273023255655600794494684391645196843535851333700297725860750254408075684299168822114621244305204453476115673489518745988620427765344551359671058342587676229114000021628673917375947087499116605547929217147294352898122131890411259382548497627844538166608417764693089158880409927189154940343547186086099740447577882271126293523328252752790465248393675392323777821502770468781812619664025419123889190488176195669689681560997105690498787727862698553690200756139966261606341157113972052395993813581726168559001045804097099452552763157134988223313602015515812942606157251858361753208667847243493760428306746986299631130025364981459041596129822556763077531275891726878251084610423709089813014727072731477296973830391604183683656945211638747677366098748404294819672312065756054178384873602076044967432342419584111131530032516823047182051203251564464481261253935596586389901127271760948105752204125850507684323773543076627751743128624513091044421702489287859874905844758947137333646556866495403327724658406639747485474710437869165362934075529263921709766846739415231767265304703315027538654663772891016252811268132694794523212603071056479133236210915884496730988753248455181023616826248045473298557039900008372429277634354056485818985713776278727884583963238140378833679244091717636665524915996266792850729535400494497731194660199155956326722352681256724186969631831495932789630534637751480501270332190619027496791120347296178993287453503923018341213091030844923848843853898775292242056884680243543319459241856793321136656530557041376468655574152391877267626865663663002657707320671268886840824952858446637341713257688141817323937172972957098386458365808691346201591420546965441415073628444116522643822103669965932202011922649739497924870145274531722691507301057984183195131868820577752131782496999371197356058523059381260062739928790147357462127941980279451624678994850760455851860806783794781627665911363635727572013505274832186533067552295972177993999928176543182358278032987761906385600544404284869430801753298925438778400815370196418512490751604546105981713011505205537254520606048907745950245758719585566743112178276547770957406127268386451906502868246749687372707386650113958673331573101198643025462032381766472637162010881196332365123379249894376929786662777855872526141449195710442777471168443476415175844642725554675959278869896850525003603697452240701709850750011286245022269166513368543215635187770736791070798370741318054028478157642221478246761791060708355515693586560939295500906496186184231525419856804123019228685760429310698316052465128561857960606546692764765203186512082452493869955481746500570500161594811965492828011546472648047716035254610299702021331720323161869951432806640076524526848892170532094613686714931002681500750403020232130492936015127425260360571016672694926757325005912411562352644785798046348700320519254187692654903462253993635597397624199302711405646374891723284322187341988153788820733358722546052861248198975395418399386897512275923464265130048962043697088681243828771619147443179946109166926620401861851065075391803176917393649373620797771528097814050267406660919973002683908208985212551728051870176997460970742003294457488491922266940231337233180751514009472195040853366521733057915126123117962446477737869456002292424918406951067518825439900123094511924206165379768232547507146019291461576490067598618583326403137395563556533944495484185607575000749925163815158910110127494301152275861966812486359632196882722202705363307424007137851889454541928315535202140936793149313631969956755056664720228038594504234974096886835352165955872452083017989754894258977930316475354972227241044616338790969684390279880682821373885849618261058643255069123413959125210732267202576177441425969390553740836026414638235268612554194263288848639776787588331927569771642061324621878371973967188837590450146928982747017559787122147078251838912095583545744607387692150136846609491068563220590594648481851286384870915803159735717401582792186643793596047310515818178087438619835224620212852279959531100546075301409995053171986265955218000067119382796956262400646655188994639055342036683744542069282469468824195039000172014675043298381952241340972867073680345499798955303924381944769112513197140637128516980830540674013943157616589241881311811331106351746116382707135797307425315775320596731218015733503133406602337010503074085957974852258712906459301938468736127469520270446556973872026310764643846521241687756591040327968444350000188381249748210472387537625024229418168158741169590355078215528088136999555260498495046101200930182409920164548695268989475945139177440815389982482297727093363951256687972970894727265292078428597043012290148488714889291515973258492976372272276009316408284207183237703048672537698376553581070332140554346534464100585729279941003697915658949570453656723217555599692561669334115382214743578301922105557714066093254400125605040364852077992892463448087874896752377191852161028517879560654621912587477852146472375646724735969082680210643735323077600499963350174421637588308555012162331161026441070720148951357403452734453436465792323299981139606719799665603314772422848634563912320103507891638671196122943729414011811146690617439535177261833100358549694376375597417990764081269516053088149741010415211949712607336708122999107898418447991598196914651762885509187374168258506601898894364869447572603973412245073191986577271402731463332300855530983637828914278245389131359226722995800186774005204953405090146766206889450196220209114912727539667089631963412159591668946430388796529611862346045852249913070224101024814413386630013251962871128464926144589366344973546850747772680363054784091770305737116596704508610114411800560472774843267201481390337768127612561502415007809516097505977740280542176710753343986863972920246433523543241959542265129981144330843093868564344920255898596812642660845626910921087974471966326584987956219857346327414940788855287191787629772492530291309131338450066565744282941750191900258514322252535699953836431553217199714126272440935153180982855731707363047181243445231892951656500739724587395802544803261426560254530416385508486500607124995142471009812327255552497805445782189523097114222183883280163993881489386246674454788828029869490547359291005115058889100679902029008426250031292159700609945988359511113493837058876882341515457135673973284819905022668423793500160869337603746937976760246302633781367996725035752828047827307851840877988660816747673048470599173860277965787136966836400576584613918153717641675375528784486828056431151350847469562887514366725499261968767523049769454936670111027205799466823711776943558631785182448922684428743070623564201347237221426987978144141495406433854239153451491304490260064791445792323204111099007426578863648897951659655505043856268120720404430522229046806336170926663749150299135032911565610111897960647004065857253110951845680229351026255342929139844584654015084217656631366208261141048378866999608748075048375221679469582171101421269194567769515456588013708410764375504097592629015421996385744626992270814700286273930458176650857326179728118326455657694922007025306015339385818876070260058699061683202904323520716274934597463469142908948079380896080575330948543063258408767026981238961923333914652025255247888914572244664866270321707135584943123435306712303747961100229760367827011855184079211098830320794936585949593309879822008768901821113220587122947622211825278628259600944890268204893400503814059009074245930472814113035587965546720649946009407186866936161218631922345739519577867779701430252717426696382331184571901252702604611119663062142802209016690076779184543097774906490305651861617849738321462379326802763390274860976186664337243350977533317326682734778326126264153767020573532650698525119533249846727132237089725406363963635188416918605010963504690053406818960670697011082029366855119410216073721000926236429112232194718130369109051536985514543189029582995885535367483188589393567128328007729542526766818311566024833306604675482761785814310925871582713012125133509047874779447879660127588950830573325119339130974391187790742647818512981958703108071643106225077744956149639919092784459463438359020141410802014429003239514930572650393648522118173240404612454831568948638761867252348186211517845487262902326957812119553336954704423837808355621964135552218779006007623904644490519573950967102719345205097545239030197827096531620499495368102591919287871810702701099471952119848181759679380257096242632540812773719346140600523911976099910074493461149054838288635476171827123263070330136756024760818036704906627244100752083523089853391685841743195758406190607791820390023328537185115985289301765754823600628904430750218748900568386896607226128333989432661610443213502555990583560468685545594708608178542957802756787940034840714686391331111751510826414609713010761252396968440523328199280737346433443991921253459239430039946929147721757172343793598588565417190359985377614092595714845239101538789563422861329636431683073031653689856537464949590378438050349883139145007163757435276508779732188987320178455119331420994004108183703946874539327604968397591040255755793585515334054743595427175367749054297292676824058074489315655628685835141531982558597108868469360745743066346840028032007086684597063115505168788412153217890193635219990869254921954060259166093138733066438926991242934518340359983694289356366069195172631160867583721170295359963793668058344029233683935398843882306645264615006172244838341375720479680267017645479930265644753042470327537390663630658581458803781739680332145608449171106620908547151422848913559116534446444318378548834041021053374226223606120052587653477535097664037662206041639033861166247357769347597064813742521964225590001690584927543801751232636175862736797450599632804200624249717571977506610042145397191535995243810621573321290252720740578654079912679993527676217138755471494378224297941363758229053856924236809598424169165521204687096456739457912931676153594150320078560908321800577851366704112821373366656099875624677635385793341835246629150156631068138826431080509216367114340270922285273232912541048829806090075964379032783169546239579968351511509101374765992139331011899180370729614712682754700676294031183763052850021290883001430447473123218639027264814870707579430726485500311151016049941117677260641219162808556316400948782814931552047201847863206792819701147674878511197999220485067912110230706543555206759206002161443133071138171037507397228104574730887172443782632917691577236492244357708995427988361235676871463317866293889350406749281478414246633073125991566839025272214876402492952023006156802911302425038763947742154033980526572541549579541488511580963472635843110931938434290235840459958188575819062788430012402279255521574266106898897618120642653723331985625920588616079125982743444880904035310342793315492344755853160441543696908579303225324481322377866888013341741794114512413562806277720125574643126357670415640979495081895285034659368820002494407825974064281534030371518888573635828330072664676866867327894331125783695418938378392982781029864433964262264243874565165624011503122481691443368439238968240652906947431288783041259734522625201410390063451906121860965598385593759324899531220598056807220589723213533849164313985457452138145116174774319139234704657418534917080192885560009591098553091720976802416411855208913970010170810166144088329803391547864226733015672288370188609145494937048224251306603959269098421269725191354844944393620435187480530766266557953385274385932631147321755940917633102132308153141717868515422127936696089258355648378488254986655380548535454364346840051530155493052074434929899728524685154468200866935117394509079780466266283760507690528719204512289095619463712217793461142580054791488235315662488398086855091192333909745740782243741225710587202448402150257834407329324377352881081892063868935455347437039627034581541299929060525431693358155259889085566493206038225206668141025978855417098647202885005383100627107147764166543863261515526129734795575086982644840074623770183238119101050063476270579881810328854106700284902047199038985761632375139933081644019045860577279144485605375599088177076251619382379642028254969708867072840065030415742961163823922739209786685631988816226741019417383790611666526102336566104483604051836326722921258112593648645639757062638563351401252605152717457809673862569281052327486216816773745470435141050722808498953390820702297891426107039371694111484847325230519173122625063762102321591657341513964897565408189098758660960580907970078411023060684423562931575197493476038472545298050925854352516843141029581817639583270600171156076437198950859946449966504028018958594041674451630470276307380238226602175871666392175057980454572680109684218977250248919553946157733511975638455833804956666474578174730141913867191632864386626534163884756955899649952709599753677533221290884398842646435641889109539361791111438432338620320967919237845019391243664026156568430179506762033004692050851791868686770282627837799911919247746345295185626682194266734167204731288443224787226845043484841901167033459020507714917856787179417124982410544945918879295898568829237110368973632070734591885721376679877316186678577972980577314055575567036499073423962274458531075028922495781337595309223276900782207465885186491889303683325840077816396731777821808189231747914735284259153420626053775697772556563983390296084533420286565732171837472254054546417244493339024277936560360105647631586859471374669157746638994358707944233510158229355154186370111211354466081413127868448963225413652528208057387924449499991520811698643457579659761099045225430269494959171320169026369245076164672421185957980967575289959219631954062703712131581893323138304850626886259880078522579053203298836967509367304930572230016929984215416774462921141708836482766186660123558348098101782530313969179040281738600368104443655111347772979378278088361543064492005070160945748286578376375471071574942310029956525536101883124014522418960255974733908120835058516828284211103439064672665683834759868240195024437231456057272141846406778406045294794111950334964602535963597862880868559725037940459386818289299092965482863842819571696518409425497426301264102850413258081726919373488561000943314505154536898169379032548981028277376797444563990159785984582087981158095196250957248174412629077970767442047927030088775885819627737477511457489130269989381244313240370258785672800815594448696741069825945210464311335037463634490345285185714285329219477357981963374203560872580721188929665357449130837830186724807614755448144809707659330461321085095281433472831079919342991245679505649318994066459851605654631075056926109643447566548314131903550281379648452120344009579493866792589152497223141163142243505441077919402386909458768418783654853156834300216461727808604243377727709404542708303069625419224777475846991173015872172536529628070511703845808752188956714145597510805577276176698832500908232828606046825993783672290236023448473303578103992846879188441874504910692787490437740982022802500815765558668003015270162786890417046855999457898853168158567607160988145344776653335905470728652542734027390965692258397013310563946533824166682277591009743752583178801349423267586629034375600434343875116509559471735021161892187606680970646509758406959425186867798900556385138725515253129658086939226366842110250492405039247933811741590217561498200435737200088283853389817748195733653573238029176137251526757494532523124354767981242084559621330895031245342938290343031149242555263690400716654362002671473092547805261122704866990181422557769671894616024167436371766665898636308378975603208640193464176626753145714050925193765076598229567789618577016614304164982847038303422973426550649685627946927136598803947523499448607033972394076174656156011064291616585947434022851104333734233796718962776149292777881092824879121197448520098982166651567453354611927702239406678803972171368114974946074176297644280748758631501843602907073700078345755529899482734881267470100139774108231218591815195928936076242775201956229104871593748073071276958499760290176224301965308821875144872391399228380109874595398027473580008477510087692578410442674913085437032573532406443429664217068302424877417737249958400789080315692677366194303319798176178616153162207605419356856645947051975218375188459580325246713055072787837413015586772594574151020427211265018259454023582740319975416340963710791657217622479161862947046340810502082392130248422235428352290731309858884759316673710424904030498681660863026215029112707765048539903182436698320501846395912678201700728967171792035998490336514845495910538699784126362050512445593609346435887739116699091743232522072847283377163968042843501382999694055493466985268396683644300839991346784208787599752219797021141307821366303995522148624337665891791825804983775299710153379269552335884243009429157540924289085247910351586678667019711323398416750367086666967319875950519809326008566442623765804490182715806968946539771918585714415927550017009753743419952153931238079633643984735770451623146672704859552374690899207236492873885998770057065873446775773373884099835992456950343789338496629262482827074250113746936477955099266037010814277713073050566340663617636173294786925926067579411069272906446421536111821370073034150068667152480900990607958233817662263360699017538147450688749787446456234020247014312318685421924388303764052496108876035625577134731322207784021760825527362510714261000763384657522672419631316361489915144348714423263330389747933724519665794966249131203042902857139647044207117280722253095749476802067736276644474586464493814698137179853183314063570646584882506423827050463197819447818569140035498711970488762164752292457925711329415558170828337639779383013330634185439362746016281915926883699061904781493086704613252716220032897665009290052999986326095235671546756413772677189612377494629500413225425981068583225832217006793234156906669104727509045607515040080250382308181659940763894072194890056266484246413261098639143359695363782425082335745874825403117707892476297815869965606063361327735246106279044836404516632429727538752986760010880525367102160479312261991339991275606149914597484763218911264024866349202513297570680347836338374047138230966231170316422590872828114544738339738059299138443675091828693983705512808919928521129983661487801843446608478365414761517325964481627530798530227858904894571092403977410193413834232451761856648703790056026231367944723848788369639405750428897261350181661458112757689038933657749279310068811308207975962398582577954505784375052167463618241620190972379113731555134662781491595562111297099882259415714346386994810701356152645885398513950033310485618598159411422103273803173627967809487788401989880189440793477610297347331925112410930809071595317698296018174012890716936705020576531704705626931876301829879722508565745434560982647725550175977998690085768498313729923889149884306296904886467309928256520397829973913433885558382768678136035924468055520742817597183888462237846343522387546285852495852076585950467238880513191451149692706501240367080665046737854675411152409427932142399938264725000971708260698688727810497781900075816870609590598242321415139903270913427222225201228217951419273592656933330055497455796725901884234952565055962890020544052132194071008532904107982601640521405610308319835550000260991540471782392070204527832138931040328494847871070659249245470413913538595878458899556583316201173829710163592322853955571413940415358564600561425455202046014130266573756775111513115972529814640214685595399727510358314386950427149992467830872261257573447891065474473310293190359309390646090525021453846442643817699647961727405015684430325860339718703511887335357155917198167074371102438501214572666832482643987548476725225390912078103709331362420920497969445255625953031728878638609281783138573577198926644502746807754523599439563743793015976474940276646850528372952470603116092839700878057654496012540640685653526840834994338638261146398690631177468117030564276878986936896885079424547018209567840129919871902073196506956117835889497766917472612677953573123196307093768966432196365186082118045789587149031185910910701070536766137234051458795015111781722534824152944854906767991400060342631540052045088735114591452163719930740535947644274045027596207939870213030192213961555336059318941721050164680301042665825870692973036128676574816862550980607810116526656382328799511060084016562259089248286369189729213504544921879657820937893781557659161108714733759895237895783417643375079781677883751506473009745520585203365291222418748713845674244230169900099099179882453332646102234084160941363939890103167197773501459824930401274713227703160430006661159568817635910648273096045797681650080026493244292092730593428408249625586107103287055749794780991991668720729871697977049005264560096667155391086383012439699780570325160576145839510736836090730615676558728496111964982006200836836445654436751178041060132463207027148274973776809507949359705718707590746859373461874311490661136951908744409140533653231728891307869431529333332092601527014860207613741560716088971180607200632005640462941434588398526540979912145881716071669109206212229029842606239270583065712659388911700822801977409995309647802131123653468461759024222847681942432944620060927181425323451744290354101230876741601466894610834948724100849981149688362374094912353624493513865784556956081644056126959275531697191326018921275507650905946140856620581851227435664976009265130866226183704814540431701185821326667966067906080404318895091476095099273245104964445118347300014275261044097546934043269115877148447304520798292497585531748182158357044297757648255963259927893839266859137644984426029680073674531421049775705883720553642021439437898456718440085056046908130775882190161678356391814788343932060157440004622771978681452283124025635017787398594435882339553841334334637344984557278361928779496708006374358806133797682399937429256436673745067187223197343502110002348142869088485331226348585266959856442769163080368875056361130101888388446559780100695703605093946470259316672974312696344371005799225104773596944944104032797770565576523449217927348990387827546429553167154207151320842333821820983115960182130020634468770599316108467240961966850989538692913488578890199305129231002718131999779901713526041714249914837870954130973351195414386649647069878512936193445915671436088240615130196984451506788351846839869241676244504377613256354144070985598357806684802770418888285532099361468350688398549202177220766755417975053590394629189866669140795922873697955572195591777829452586991461732581081346312945629827366107256101137935097935433124798484350074252194037360758903449241175138553612482282476222246965029267717840752969249848907751575976122885735712466099494444124134617851673278391969783341521523880554482529750157655978411585958997513611570071910012252865648869453049575292423114276335178096616833295406900870890678898834960048845702193406325925724414269174845469979907880206136376088024713776099971717615922679376121215280552284245971272402402459585443327629090916741586835196452470184326741141802073907621625200567757927835812895590863792307427275441634914179011106811614341895137044446264871194879547744300860974007586537631005075893010513534626202861389898433486568395587414574820548265969709436403885778321611827681444340429600175690193236186942587775231395397724919705945752636609413995412747972945413695520073397225226034928930649526563442346285533579387381873192322363918987352983104007249981375607940505002561871942060947066872774458897519042650852580599333373614454163667224012568470462678565524958126474534520455875881480976067563897132059609829074758082169509135380422775501130939486808338234022624594545828128918958406084698343537531435835597656956123424879700986455842966582863756426202137615391960491118220438364801386192844548991475406411412571673912753107866912003100342249776062567959348155162486768302409239860202913119325917418565042666134834037163682353015100382334599751188075515891123213120894357594591194515045192308128152658355517877244253996558253159354424165485885029104710712926448621994203738858206638035171193891771042945139470994111671928079555388596306629301925738804432246682945729142462235372037766672374617583756399820027704831442470258134570605464181502353164848420984242716186084995687618017546167408031081509058211876750335777104228048433702641391246797872526507525409418577060920731558819808182946617100064892880585080968599514719914060182337604340664652141720325644316604855693824525589594938170896027974317891786902031285572270936007759796437953926206257394327303095022900212481131588127364001280950496269226152144708060977573480606559184927105305480613566774554114570068954669926098740093211537984705125955895577719356918473287119203641523236160123993481999548454494606504374678592555026345189547429121983525619780700872824950200088540684979351186803393609964899088100574642671097208328723103669170384905840447881751715456689096162981928879161758256621901028470075150107162091572409811921391455816039765380601046048326300679487215380614286505439468419633391627798064305825664909976770762699889062012087883492564656795687273777941735451671512602157547875504340632327303032522458880076867742793755113052380456288538815894524349237331410395296955295062731784518552801043378545673857321248871382399221697641480327155147837816991987019859928669073545711053681950902095125891679770491605014874210219250538648326244815569456888481294017327254453570690296874637266112614242382693819337016537842308631832158790005565755680152819859565957819298570713979307856675381122792934471498501033258883199843312462872087708351475180908713571983962023459194324731525168990482293037901058065927803076540885886931545492108757624452735885169364258612556756221767376311638728115241139106785667457692675098604728659208776629303897246790230151892208288292089628975047466709313733180806493872782208696159952241517457817041701019269298344841715553191993687717123566180241889555472889731424251395724384366678759620897017096221712518085226783150885274959267926868943328789828374624333479642112847209938885746277403414332157494507944324527628318203376003556057738894718373778423876416149570597049765921370605370149500444098081808451281166169274111202768373423370576006061741775926500606128011108393409968879446104786613544740910513087706284500546561986885628385008658968800560789559792408525903889077724882992159892917014311239704116799385810579266879293450304285225089456625248101228910499170882724133965659483593237144416697646632170236583378088007004067852719268148104336557681820838546176478413508849719477456857072614122606254086325254700597842160679149632970540617531156962598883568225283717017509407068409944577582989924803462466118655932846741965315213852037470853779746114226313721552777649383736834512865546452396985692816202224208055587979041653675312869882722581034110502729582233294852785480442382026793015921210779607672143652593581367161859504237402687763087818784696197460134282060175712682309675989727220356517328345504856539107453006070517553419239673311166029504706870074604182566645416628386501819356628584470424987016300956543245185238248363156327747072167842046140615871882070079858792874553254002964690173841355041895326614543632567706037261004772231475147859593159210242828437239449469845268939924977189899529608532641914183792374002066875248366491272446016980534532272606968597805798908027277369139730894465807228205914478593021222205093163184462405509779699930679376859391865261455643926486431711766476209335993039382724752186514735801758515566759955321363211232272924248137909531781254486019685296803283955043093625991971410063143339045405332059198975097576315593192800873837627891689567370661716781310012280905488608844758851531774651599031152324664437640282821423574368342270360571428208148488500458861982556488326932134142249513841467581154035061868547940677893845559630914410505647798647983103917211029589679339874169734089499693335657128108357760653118062158197082432870304394184443003274999604070240748818785298721784046447832772042666848419753607594336792367646747571670941835850456416944887908201473319797991260318184542583815344602169634716155428269179577183375863469296981311907288100821533809566809290893321515027883426089111608237372456938352966505188659608743388550145604015929045041182525593388489487185511111161221711613075968494695441752346916048222680546471356978129157846162658864854906680474160766585084697778079282699185732593994446673955420421973910553657684409273311164737213200085322820941147137064217205891475164566768457224682018004661301281589092200758138640494052307559149291523660163461777516545944907851719875170250213808697326442479051602237844000201583115506131967990452231496285848602927371220885696985548539230088484270116260771356886694266097340066292891322055242570452505589704569099045516587205034012417796520487346301339499106412766338950211498364502129828104318358622956287866868338962548007513413945186060383810437210545010295878671724279061839136581925609131408158461704819483779542632563209463983121793340632289592042058708952548968215762661315466346106672710295893992513549669916196874018160637430996085746681118536970874636513516067327428015882926028910806790517832619576562331596449741335062043469986391237271045204867741934375188502967252043946938791669014578393629965311430560450736540856987575946826557977357578715623915840703217101880164108439871688957446495410715133150291254600800443786648860055990119758857468961724294005580313925595945070956090083811714389193368643204034312417738625072585331660416573715576113303428109027861822359651566088580285691387818273830460716125114831523728963524636832060250504719962097139494166343236718737447748163890273431042484798948278820862135169920012965853189447989279569987558816796509472203398665221342060869669888783789166906821464117228460906392001081312530853238931036864168931565823465676010100875188269374908631352306048179959489064697533194743609099056854321340616855139588708611937683834379594428419580299080357117022052130852097982518954717629008321278891095687432003212305917220361723224266203404238883383161512823397132874379885065730973875261875408209497696784550009371947351450445698955194360245801559456224198374626910713550207798874149585677336449595659642980795612185200072935875322304200747575103333530634518184859288047219418791179668619055749487190985890119325020760211196078680460847319110518512511501321664468173090839994374145012096371763036370556776057633817932191983925094059060050822934022868991077757761227101051762711064167935451208961488595877337590133636895374275807119239823554255856318819613402454108349588023638044089359256048284931269425946143209344534120477010702299543969538986528874542517671155724575523481770503884528692201815476990429498352649501116566398601049335050317405054397758736838459824857538227612342606862704177697796141762765516731562791130819980302311241524496585348019332902756753476295784962010055649974780067634015913565696078150793115136958563160841485184246015139846490421784052569194587743051296265912765099390902568934028733353763232941266357648842304430743343896432472896065182165480291267635119221992568470620286581846111954253308807670103003742304961043888953433101954828762122578668468687461114551015774890297523214533107773130670334963764083758226275049923040592180224477681298109625480771151613037959953345454296469158279215677540812014774828493445449829872660302583344619261955177257703484208081405929559783006284882946450184103223339514282629867075920353094622937580652905977084554177593529410220336957341047604904513387001488843936188238461610374676168049046157223868838204941538116164807158742105100369774843927462539884965850510995292025564303952740734332134951381759737232974002098960304880924591421820571290561367676413735611657984685937367806769212998889793158317617498636496313761476293424331271569805695909781178359621048863005128680586486905678216514106787144863191265108556543168184739007877115368920824823982398174928036448544361760812441447951388652032216842719889602961407862787544058066314840130398670491869485433709755554462421649011534341155594444569821247264884744395187586969786282994297920531650595913169617130337696346649478676956697066079935555163176992886622973665548752798109918231228090160488157132310214887635115652272463043310128489011363699980859995429304798241349127382248699168600023864481438112374671961174033593400029678493077490358892948420994409616978140735703820181346769501196679806546747483404949873231231735707782798441251543137373916962561167800399190654199321504222549220681657300564376560345851533625890825807452099583786852438686018048141028141460411212819483447989772094652900492207178062030423759547458429573695281895581560832644222546495547800738275899252212270832937714157396533101450162906680692574444669141388719441916651046676685901748454578121542966348585859447969996562083460852284599494584368543402202853198180064244442614092555587736092354072622786599964702320816343338898232393762601271518520492707226070469239873946699680017963991075492736591065663908670862041564175215332181554377863413266103734148047343988023238139151928090199832205759709575103912265267947455550250614816915007858576506657137127960965093630363170544058904012066596247796913808758988114624728096347895302065663896732314047985738637565104952185352743447961024924115417378247558253059230493895088690717399101805173096544153360479775746672363865421295368004106229176658832245769520235199173720324927046818813920944804232911393463301492473754727430038655573545397775862248446302814734535292802420988711418719684470025793957892300847130294507100948720306156760956097652095403295572912575215291203792068366140546381530274553246448984556268619530369130248212953234687289481735637507602312446334389999035817437379899136279386524793909743312369914133016756502049871435211439246897882793618894928137874392688500753319692190151583868240926868245970824055797104119413422340369831644228240238733013639968724916230992036296883809227122880750993754496481359221245865403777186645423521504467481066214950348377241827056272450818589083955986293601002315710761590875822377432995056010645999737557099597081551268304068756338784722001091018350403822331784424899639538774143522881872091207937439964251179894861830074563400619191272417994383979183281074679734201317172112764638787322390722973480406958428765142048881476515450156518655759881300424002614917665551933428253667171728426632719808644893412101362474263056849037944162659746298819177842793074303555119578996752186185865686665609531282467599606742246565660464663658244233169300567922116952677261123810907777516390673791316785938445715897115213299909035763209379712103406859043428304764098927944550851635948629152596840233198453071814081476885112226303259012291207658498361059715699280835657559797078476995057848358350942047821898405142565947997317015156501205421448567013949914013477792244243768476213273450209039309594726403683394339923444980978521913153935104646189087452745362276012311068922139196507366289073631685027226837219148929516880775327668886297083602936489845422616150636997179811334435025241318014792444964124469152961859929617335247004775948016493574875262067649147469195025617991530850464061483441262126038243506404504832037303095931621531264007779096593101886346602229516066784443882460169117207815000510556955836469596235902418796496191852145418429451732633626722406314569930783493013286796036896685265832679372734429070631218453134774203816405866167896779742598876852758962081955211370611086188371969359253986090982423298249483386726956878110336126473963438019042883048806461806319212848466135236219279544357667150045619532561150480609544432172451162711119504844817162060675435958957068474071881115892055579446675966279995374965162692421158641405821061729266167293197060109927009939465855893692468433712111358692152003225527276287581473429022479138856437823145699651031432934154373366520121747492285749776383779783379902654732023400332253919252459283283759760053359314168689127540321359338677351274496631113947012811892030074001778159642108772951584538442762045359660285251362809781619645222667122152557328948291305826774069459153279861745529641298917556036282918123421935616655777888373070796379620199809562190629465982081179559796162315550451425209712545551810129440913654935989136170056574364441111449906518556408901617468030287376374724647782722097540903264364888423977483341829056448713976139305629952095189986009544374242533570292762225662349580437574762138226521800372108555268581633490938794248693908920992613464917527788278420420232618904740132296709587272012872667025368329664839578056921898227541475086915981737259335893987072236385776930612748943362262395677103507975023736484926535409688242652163224009134319463201991688586641501542860106325664664032815352242019230193083943550156068524069116154455485235783978542639184646045286865994464229214325543246028922107996560252549071191743475919507122344868271168673592917066271402628955502532561664105971084078242648132578900215481475521787903165328121383041349688269477355191889661367151323867996031026141021000218492330454899748115434528768147480821960841417859549515193936484554666074714979797496398881176596043221129369104649689800066896577834208960875116936220316417376213104542588301500465350951566783519001184296557705641864515311425073598373579673529763096665930757783309602557746257015049019272652368321988299781634850462796165050850872313497527382374256479523483068308859382908039991615897375263806549868670401707795608110150925535937883723735091028032112839779203429007115627630856547459002392454297544130021033513310692104750343003905356926259938396725998151923800782343213258192829132988940564942169525121565606745715788079925857403582132870244154130509417515347420318238219948792254655535192555495854269497693131085621821097677010183200743842343670773214018289407884738481919591944589780096110344032131575148833615518689161132440901909680257616062574406252102568019372990116564631205665936422296284891343613038739573531435727123566602669241416079275528141131113291296410526014904533168369940001957192110664124041951502660807922964292065022279645599215438727224847217990217518110740622769788951957305018065039994733471422947594613835166668648268376715094630044914186955106615918264633993232523770755768535420702491319817524296193103598103502822855349436072047236017510852761555787759669476417700778818171939542892036666237584158379841967342749471960126200958486762566993769684534802775703289375838652297341207697728508685755777904169062401261454127535314768444848715387425805261662934811041493981285132728695809920936518428209335257740834580144939199828685961265978871974041025022699602342340782229556674738828486601354367092331789735377716935054998754416880022196750077968195489117079233496744511345292036462504338874060307794876802535298721927122452574709186286178761358282622414623897191655621542008132084612559966900214751519786309467481050224665431294098725789132253418588629541569914311111736352055882806044891513445756509826842613040222368710424503471927871970012508061664003768889242033315666422689182564062538616496577222226958932383209531399565413467509832579732909209879528343929794897724077519339668494032941949673680077276690852808794428636567047925851933084732023572033229759695537007925647204331153459119083306078034022427711872716861760643236248957507828324504675480312954941141780065873979777043803813244644197729409711567482457237560590557024427697882231698334698411165726721379421778834078727425459230177392267673762676705939611272056672283216620584527426700543129455888321812593585819851254640210011154865017698583158837951478690858585824807845107250923104295503917304457891107578172099105024635532067430721183931918901697900584867991660135877250022870543246145626801673136580274448880563039087914622966922546033782207401621290915181998045671403844527394481435880417906276529622997358193354259439698461490403096064924898781679946098772062791573537502378296796487296339346495300756376316962387750695359049666336058121503849106445822672468261490168391989779544677016131424506444771797907884206094027325781502665392194166812209336478705407012202400146710124337637820494092784221782238272528891568527632299534232653374431275497794755415210734196017426912652129190683264197280185279556703233524794020975876746712278668412514903377636163217486205605463804066914116028683794578800663951098082947180746343806093944043347584339466717269055157491925084327581275640773712848160787709087345067865355834365059656271803501354234959180725551312163469638360315972327881023422759737532011752803608445575910344487516870742268930710000503767050618033976728881921198439453473901381221631575447116753226151189240087441388264912756777785586888793130184545965774894126703719256253459073935019992358618741538552686823683819927237263788419399096201713488555742124058212702833276586400394817977249986680918556042221316123972023634363377903116245831673748432045967055872222494015946882373171333198593502543756903897487618186135193727448656364472337689237061452485949077379745921700043685870238599351249148037566807330625278019132722030322034249494631374017332280051905949270847938218675847431855986076872960861618363950389286750633021987849355644701359945400556389452631225471024173278685011234333721896384932367595349531071445847742071273995500753564192275539682974876312303020193414166330121141592020264507324169522855169469624939121556007102892365116894943260807545567525548253238947178665620885695321700030786264566556336282196850706231905278784757350388432682248571661309946316763972295045848373621758974734451271589772382185819988451524399099104759366030733220002954472396380209715728689808789302121313692719043037039116962978627182756855542577294261453407521335355331668448091133477905933753919205420627071588705982242719296211669071891693614533888959937636036009549510611651460710468044066447149688383164020765825709828258654165178525147540713344495167935832987849686702920408774252440346691353751551111445499580344634815560178623827446937275561101372869441626396829974020426575102710789377881299379717543834909558187491885943273101686494241955286537419855332048912831168237680396340743408671066256137314448481469776298743109375346592170337639641113618660460067736880500185768981260196594579813747991094811640275936632408633572666179973366832422410148711010641758096965358562233639865813139056736737443510413936492395323879927831516656198288847435322466490463206808277153272060351866678261506424928210648196507625240122670203702851738347079092545090396832718146570135753685466859949641598669558649562537027999007366368224259481803284866950430048590173942866510655526532779585443449314926066487700127162800214839874529722617941156943419318897744349747130086257973893329710314084799954712587570145896881131536251706700963955050394031207973904924668477926417725167516488556773681271159943121239963643772453403546310580624314086206401755792771224085501193322903005223179854075538619735390031601917679992183111282921178748512932870199637006457747077327999259587275160599659540957629057406930003221288413036785471398342570772834283796341596565516336619526248482305112833068713474682733461010941650309957978452037208460468486135211056140818009506357259486589761628331385186010117026883631731822239046627219000298705626902866120349686423287361024178164516647632418324489763963014639721376240006517329229489091017542483890513180112587299221134665655766785525127398658252960506822993528995178300111057161888031170468481014233432154502650630389331579908817021730057161963840936737544063327141754042072227155339216073433410872722294077312090761529620197725349881846268593331165072902397261087206892559228713131149804887529626992054076192421548150384809055752607853693382613046247797264892476591489485620482034910265192840108511785398580891243213289177287310855906985128029852982876332547578814267834438631439629880786321282330850837819683495768452658618804949051525269229836183603860290756339074922396638758170092678876875114040527903583448929343196648413825596035760485123504207055905927824985454833382733079586115799294093202668518151555786171053174876250929778197648472417898863916017621447385136064122037339205880093247184335910783763185865843749119656435601562809899295025672897206934988885881938547284226005644094129453479017747602435908088238869195159453358251758981841877807845296758298621280052688922360988255778735466508941090439102716139979244758930714061265381235258823675053658289481239408942253186618173466574002528460982719510223396247443126773902406568433922873290676500932222731866331266227990551173958597524605187459480826931263973806888106145038097484548980575116750594928287872021714435258737690780393148677579196958224079593947771104720845320258652852085781899814445672021918649547516093714266159125497146282625673191130262392582229522228587715772424282196645221412319251165031244607024327380364607704812383212776518604788346436888001098661032260746051538649789474909575968052867897993048642433928655513079500517528945217998501066331420650306013833229135164108624898024355678439529143736118194108617416001364396232777583041117475858893860468813559179316174817648082229210379124495443913911556562931108187045989845048287401371403457814116377867385454386317781852048227487993940414324813746003560370545472452916154716707243564330340765918312297744971060004919564184419102277343099615904713521384392868270657168489087543661435023805862753363830001405719945095439829773567670457502225122593527376722046138189079558816629209691561299429923135634096855628357422528652151297978682108199282798751089503305854391418906827421924535048330365248750822397376691997184578230871892046052276938227181002971992942144615695598682823821232955637842560925319563136165584452627056761885077681402098406163668470584354349906586073393444720771362766739357851912964882447307456022566126389379938575187822621633998359995622722935743504806073092988894342749887492759664330342767553303454041853455768728684217474226326051200735450672893593623348209336551339121516779295132900994007556769405339899396864210789039809439252195510581370484340790663633480901890839611024477256288990233701301621627405067376851197459888724919903392113258121139914437875408868405221558962755052590232254571466657715400632116676489428906783261463029112590070168777048198081415876519854923483449714461079293237098848729315585639327495466993648912321256976407412672494846357346983478075552380029417149857627977973824916647094183240819713635406974088958029107778135626352471517339915094860184153845745213750980188874223073790848200719847162958241595924462798296013086984773029465193930667438816604004211116193784915033680317922689617525449529800601929466803804804979282499270094547719778409654264448296360141045537811798838584045903324910570875309702776177348021429858112502106357200542391005863576447181355725603394766602188896975392735192197966349124127022340308529717228645968383358973617070909597226319191897655775412443852141780015012193095229168999725753897936398127901674944796575882157603525443495544367659568410678835035297852236974999657113401839112143910676177346246437988986315009786596945056772822115055753421423506933815245113058768933230412512085230910404810261606318730057979017218202023431815007682674597223302480776755080896195790844842960998862799898447790796056816664421048543895606083496571300725937872059978174667424852445564171334523418787963108322381819484742745247503744251220227312146754879099579516604234571505713990612702228428334925749424488022939305559249140176649410436369127045837761899486011874752126821499277060276654292796581138425206162427258984466244890826142973203043967862559786089760386006418241239564641047628507089323352650029250437436243631747955849877164419668580970116811226883181199257719260755875203276149184316182949194967050639319461766256189511802825468664300063461970187695108754401315349652515993935765505373019055610846866525525075719898460375136078084590588166269372796350763022744522759069918235260824217617749752070110834018745179789239761948097449075593560624940052067749935283334620532737674147715175761188583050489855150150341216219138007511519141511805527758079821069039853745208523971106197357672316141869840128163337605873959021895781764106496026949787674793245657141170886070744210801351818533880358596041371570042717396406693407784368131724625520678431106838494083689432170542657173928559506559154546981349433823997350037376091782406683107246282211937615905067732598090855044049693568096147798274554107708403331247849382172500686580337674181705384761660744628497397950875662049103065662182043911704048069650958409729117155673467989437251149445795557525184742856667629522977110743110691555293123168255637221455144161870629054904563583953340720222855445078631355632728975963226150302468471854210700990682520939348627339146801840158645313735243314729962157686218515458885015985388975912366867614333237424236397824306820860603773730097348714774104118557833295639771214883341638236435279908363302327532776288479955335130753368474103743318891912722033266748149531631286789191601636009399548860176893640487871467654903409344959742723264197418024992353372822373526351608879112830116626136718687752166836486159629091370511265210145512346781245384309486733782871733749809436276987465900743171101546606831841804897489596364981254073419420693565276472495121782480787075049794331931524633194024625436242180659710554455628408914613927001087533948247778311123557480776807461564351165064328846413537412056055727160931119592866142227038891608761708338934300612961434191613635543205239354408727500107038693576287954381516424598688975644900161369023287744169647097625553930039071553924226674165676261171460108377471861271121129438120416425416691616835817273617615858264530605887221295744589486530107868682221490558023646929653030638032908004169813495868036276291504296227269500121415652678498533761875148330242634647737150953690269870005204741311063652970966365573591123016881156653414068648149313173827150251951193331069858135532998270834716565032186325642659774579033732209547522819815254934061950787010872677587655025279709177390369028405908529245436314012075483671223481026019146991629556305219019178099240912414407819983112885111510099579634390884803634465017359504420146869492635564446216704856644940162684884908698424537681503773822493503363298606685954859488276217893639947087714477667926472985233208038675485234702517376955866972630739191918832343854253463882514830902993698226381769722815845621936929868150641433848594111524260581646557693761995104402307374477032281479523553228728190302025627772922900395199729090427660729827793242467530554274533144767954173390937538272341248932496893530877050407319712799815590829983794281530795669496085419299197519291351994310829208018753233133644529616754354730225417015556043272792060961137137041806602482663548685335441053277503695911669458365556211777697920147865399818908538777184742922387376667366505643615888911799040754621092415864943686773092078656164646083257277829148589568359046730986776822259040152217223771737541563493093844072987834851262985089659919909647166904520044942504304088439359519980422076266495900463494815626530883538077722902421631979243823500454005360675732685300550101506629639388563317490492463326843148539467938691739893192494436098043417122585899959037254323539595784042654588347010656774826149506425137803812797901950331103505662762590639856076870925846888277210722600269486207784483617778667135549097603609835513551490830372623815650014697697997016634673072917004724679717806129900586192159442428690353335186721678286077448212292227878982551727971035851430261814580589741093796346747225685157663808768195860391522518108489410554393060577913406817876275529749733069868960122443707578012459708785644375430456396725231989200539968753707151703746118619384657155656589789774880649827167610836680842603024995463705769577938903643789473432621136434754378654256066301691065009377464053347855560815285402735629155313679570338462990939095003665281152723123530436038773505915671509362924754863198867752541150602696634904493800657305905652704324490200588216760671247245464504785293815702108580289941892113161941200869588802666546897319610431780550652734069807517723665558419762578924040773267904043369390546900595677463114912592749832526173734538878228026697672932784152542095455375906761673524757740329567611588798340709854598519868449757824502769459999686732426041518294830180213699138010019818638654763717151535447008309611000285254864456101442815719649558111074612462608048962003010557605727095312761451527679553183199035569617084024216306331062489291423020409839297301874687065453116023742801894168945823862228593558787076218379725346979667053462579798150536957472462333601141291869646757576885847918076272937545653494110814192340850470164864855879310041502935089568042794905425042235360665886293624199916161002360169288211784886413250772708582177430659747553240442140544542057163398834614068685729179075682353082694069816214782904290949878733422711023998939561185879624519576228117170980695557044755400042875612096164960230335559684447231831036264155704528496666981801748561625386074806359342222946772103551476206495334706439197956554888667813881282251309569822178483241711045374243515226143935985985943904978212468074438424366743056423846874186627914269398960732217543418506671631956620474319556361862759761539565712234524500052356999134220096779618327811814233448636050711046943683345140967875853964652367920602354076840181186456899349607506202852075557623166430250767905929549572759385252398478664320290657257650354814506959711710261841096763775430132406444057105494115123361014579890706102551155196558360897428463326039023915433121066070502529968316271435072760014022093517168551320995570205510930760966781169216488090454414576619929872008233755811269701516533399887152964278419430278652331179850234130841822428333587470164687697931552572961979938439639543013197748409347523046644447111403874798036693846746077484658665628897624472713205231093186053350916485364662658754462177039353088394776892726210444926133286279541376925776323432768621288641972634918319627282405252208226467318589485379069967953217386358968952998193512023300790507195924549762609392632826820473131319321829106307925488451144708003771324888601572277104236588052310919845420857873214861649728351672450219675682097019026079221215750702836536398245094681889287156825827776779594123445169486933121856956452342144335913001280848972682694546255957411464012479880813761288148253590653719212498696847672786547818439195095222606635708549324053300710499054997901551888409272606224020297413560599052842382905634498572313678135137650561953003744703186246535347350010143656651185575996980757079309755493675649307249783719894000750535264320767628393027486161090849137064811764751696314792755220260934854702118141705880023416757955587343324616985416671826930427430185724801157504837743566510928605626719113930249002781043300383756021160794774859228213882432240504977935423302198547264465097696506869039035991153288521731845109105239699294758590844916222977566751885894912678041053599167169606732571461131411237484094044506237089808774380400017763873285381635228754013370904252865365101713915000501080043275743446000701869598090022334623298979086364578839806931707556631064456534543540751136016307132867476608397549871983782289914324122007556722274414041257323261330154936565674948460999046894349388635425885074228314039607870502916258526320742112416708290837976367805859632334321865208475857677645823408152262935593691232281446228916341510229665609156894017281134262734896677486152705538438635101451734969176301182191620817017141318449771920843926956693589363412538269795768750821033220413242830688721711650791123102073667467827555332550850082543025023894619487987403675499776811887693657249501722515058138156533268272592730602862852200566700299304835671599699486356217566887029917302911011044240981509839396152044363130419680349062608700142683293806965093735631524812242924073156020508066217043287535798605031934011640158135493296733935144347363072052992051288910294548993487442848612471998321422681572083307344012657202293596704783023778837160840589757209253144439777937371943449724853237019871946973743969790558760417750494909188089989326798720578471711793487767617775738521165936467509408912622393277007845734776639409064906377139056901077646798027648928659087596086017311471346651476570264443721196919538346913304756531410011874653936704498477663170166699694132532320402613663446486518763858034418877424795850465480026114645850359180071390281377069467350940913709731006268857436363786588713647847869595629819202847423441956834237787880829851758882591562268512267408716260959256095231040987673715343167691947513328388127764310519796357206035388575779792356351203122605097229921150703833863335086524347198252697051133607716866863499910916713022860414988816178686280448721702679981096550653500332734909642699755575256698751712156360600435150275120432805559761637912446384281912319603056363111976612806613527611006453450543798855616286744325584260520566401570672976299867635457376338763970976414082592432313425185236624591241987670722138688644891633453056268214287600902536274746087287757732435612009090710945179397215010057398239078489324817214719202093820792485764896781409986020704198584565498140718091171709947847893579169848533927423664465035284219383471877759870244943748603307528784679686960316146074720709776190857215692933955722335608105360824921297631476284185741164815852817522395562824981315998340722634578373807748143169836964588182623618439502985548216349510966600175972621643339769408776672660351288121469268534835271270727865694145930586905010914808032667434340252279636297133366018238645131802081962121256726353757233372679617747576554880725396525053639449636121658950178157507687801506903853254355471148824304255910101547972707716829079135741969407976491388364591519421389323611877233569889756185016837055179532112259185289835667992862360312440666570835254228505573582952652463938474461362136536173189930714513694005908172696710417649500081742147016160578048014243514636485216286540431616108907359747236933530607304896973998876824728811775505467926552986803063521192772067411236807420781171154879125523752883901437297439864455966060098700681672793304916861739561286949716230524474415221864893985093814293531724767020317824946128019877344879961923970882846461782145620254467939349243244195091486474687583655743375976745197057073590706753745523675268709374392660787494993831763430268158378615240241377077268109236584591143797947068805005362933430498230643898422731232589904184724031079780422063559803654079453759829601873569364039153060151359026587775167854986618265593574196214044674394462690704723368344590539245057248665608394670277089825296120815580947797607245831212631407249231526421634296351129445536240790752829383944396647156163387113788625060324889468016121987866132370844563258575453469738962067341106451780598990500758702992322610160314251173546298616859391481819416125987868889330146764477551148070141805317189283653275839486690558821354103568449447928165402462235813593465270782049587024935688388007559061097017045465976097827050877408555737273185988253467433447035808026120715934048476244679887964970269660749101578768386087151140572957818807026090707411946105204370907925244037560542838334154225148406906216784219879830822215833053672814721405887467715268614407767606102596102137060758149570555797138783752595600243008378086168992461636633278536555335896214912494910461025501052122572864286431710310277305165727450327197534177696722867293852379413946821590681024881872870356846925847723852625341020217979410085972664851577075652403851304396843100164952319199839909218716618240008360684403992723003700815354077166013479615974547557949201768303172304486238260061623997088543314549711416535711213571672570183623957994516148206192623927583876266396008200634857182676538380135822884773719587878530170291478269926688255396083869749845144134177180689547588766100204585061378159963428654420991413654049123530405384694600225271386742322113402143645498478833554600569193023546956079193525576593578150022181258544963575982950935649322244918158783380771221187684037723356605561670514554750451623963873109384288910685545303681203006607712383669033971362735347524137141068241431090778857919784732329677818175419659186341170003969931362396346195989643696488691757108955153215788720832394239951691834875328041388452254545446861806713434438930422852408663680583319846381972821921735203999123299688958607397668941798295552659507897821654254591082857477210659789780998097919068058967247299386311727523818172959941439433352586291318631116697432131499723649103281195523851039721096605058578685388103610341030516018169954099172173300152311253654485676864656440517331185802064291904588355966017498462266127183351719676919445610451431925064520491390858928450260768782970376833078802079771619853674432851494471458631689604845065869671482918081104361106644047155894618676224726514615515362995611169492289459790085641315291449334882372749427574877947009661430567529686843006384215693841462822166502788716745419731507903527423337876208213877824625934236048662314346940957222870979176036027794433175303302237343367494587330169892513325435004956027920567237155424935512374187422347696346544066454789254859827549242720503152965076170202723784308239846312068083800524100762645244286372544933162556185998968593890577195834393780536298550463609876366565651775053071759791747243649696106269800603026181447587955537456899873144192365654481027885052367017659662671499080383791664297003706851943827573974331351522133689295001271523725620399657455845679090788992509887230941207802074817448375211757744561005479234619880664198844081165635923100324033129356293780706337229472869478975728745907041660941564141548889106445777987651128229081884062214636585674325031756022326873098717436893175438812386516044841826424328951193869758112943736895868581736204804705786237801101018636291006183498551978492965841602771645645751916715494689979433491897953598593277296976118015443465593838275910700423919121745483527908496888680598073965459345745630773821269028076482703824937884032760642994290472688231065750279046579510905608707775153316696722396284314768836556360549338726349736795125257021222500722156185173537319886541179956891350711452763994679609019361716686043549116492191585505892889602876022872841092381982943602152021173938248514232110839220079644483637683043820104654970851359311662026715926437231690267269546157896644268252329856058671361887496635635607997415759133157350417437803939189841016777599097530401019518279834744866022873848268969397204694994358934885070357209249293161551436320488380294204930326466089176707135493011712827779863083259124359711884552597262148286154074466202098758792374250286244016208457525549614867538243725880214811559107305802262938125647289658160713276237322657424084078917635104451924479261976594196133280332554017293188116926808666887062580671101363945969625454672994682179901332831374517471923254199098199527569680215700363518226629289600505974076158857958316593624774863269767155540550470409558765442534709187272190995378839221730008244700594542631285855375613031223414824738092391076270132476834874473033337569094122712854362188215001552170979725502579657541059588138788048263352941685181614271069625932255626358358558839328915632926490189653573017465866849621161147331205373852638133772512368342559788631642096183539078389179139337892856240207253142924601280753543186049260099930673577706197544879921822244624716758627358477406951063759713959368047518190343280180955935396942604525350400316425739442554130425823859194634326264692739731797754442669901814762011225243729448351967955945879844960952169897830503679755194842628218429875385463682059572221249557596558513988117473895054640677080052783749796582736199103390271659745979562972078913737271677843967341716054644614604016237447830303773957584519938406775385224942093067494454702395564064045281657666129351789476098452081042213329368478516434539780027033213719978020774599354327573353661927279655952132408552031738068344109637648354280006022178977435918007819406430886509186494505236151466611009231267742818516322456766612250233500816486342783651488983033797784513814775867764708010552767647012075387189001941872830846633800439119241408001372813048115968781056539462867836119197605993037344149942257990069438571052513660344447833413600645576252806077926527691142492266027972584224557591454443823502180435450281209893371601889874278847262477885086016421837537472618152163149371405125569090269566745826136999646716626185820937836112550625434370292225028735499514003537080285352498382357715714563473093587614863057214867200976752171662025998144629350582151964228933600983508581381016913429947102081327016688542788842792323365079566042902773249320250460811287509135906985234488670120404530915973707790125791447121260673808579982188389317788701772285824060886412084404800939356418642765506428038691211902291201592208582849290066943938102059000019333583130263111518143179548055186355538572768959465563024628860714951688313294887917523966216075656212321371692466208300080575956214916259949673958761198049872440584531680984826737184033634253051537597243517138963842743662789775152060726940619506887232754213838328522951115532876563067067259494598727924822585740987842385903904370751106074325776036416677059112412183739490743755373619583270972434241181392531061992683887619446248047971165101344424998742720057680612320503551739182045625333493201072819027994786116615826592911174145336741501252306595711262212734806141675859574754772955518914275774604912611600460446564638717549156539642613601449527902877647877263022919110218968356951152489226272775681570820738720670910060900892515128797266430887488316836017212748837460972551543754228441117017905588216153462372847582230883887675282975388362302343908731870561900280743471912598060467882355099121513575819854955119134649366260809304027998118900147677636092977539840029610467778119904909625465201962726358963154075380575836015029429244543487941936193658617417397928006057018133274513889455833049915820467589753323776112854006994448998080981649364633381918528493469722736399370213415364428957665692133865688159163448711276482498820812703384312056666794792144135215317103694776174094672187871570357082146610348478823046410799640331682569293004452420356513964043400512505786195657002170012115592246254075285849327915012498135833331755005932599746093653127872592431344116308780868396999583702382594808927788339210199919282912532980661684397302111297573471925878841058844122650572025028912764744356172820966024389482880754468799582685421023732194690148355574500403272476258715614678232160333172517155419788897563984040498485576479924899073618056626739219453723275916433859436331900802854936060220881395282168122252912456602307579209356418098092998226511107656083766252873033465707341298724259530108991862874421135239629034837123012817513730409820176231029086962338988788799341684453227036846471913933654654628247945016915960171912925027960495606661129038028255250937310041485438771807509880374712440709594425407964203105439595561882841271826553015596841074526369855894670502807696690906143442008390964259800338727066802311285822617895546480288288371390204504216599317809532616545220930749338887459636037364447904739311110517617397180987864166009401381795704557627912411313600965127985671577169464724596750702417637307560912186059294716976983398740406597505961851639501165095205692233832489185438125595492710569069573055871629168340149338546663780297274881299183460075565664623025332601186358847043276391766359041633496718506472715324871694796536910890803248205040624383976321448299080243337965209461799597492421794199179087181401450613276836894392025381187164408303354121579953169442145127788591429330711578291051374392633591700651768084769480402965062325506746233312944182954629087532055518760222340950066806727845473412032676227802004054687764988647566892648665996653301128974383646730163753016085329093717597916991293463486516391386544357796064423721927452342484411256884842933497863009754483943710609999275313650352507585418612775753179944476413902863057621392247180657996024830655991394064715702766415698359938824629676601118323425556167231633347229287492851545639234088800581040117245417185770543689709355538264483708063508752826674278789530703441643705458359151390593600803314164776800373706601705892470125191784067077657843961166543802475082373952593094044698171674253627299020055042314168374500703053687209821960790164982963011284135581762049987912074885626920399715413598092624829690668844383043536219116601311480452584873439615684539847220407349856566403053615820792631875656904147078782611536162414149121106464966905383068405118898620193852640719835450421489633324877183481189663551487160365980124331772472164927323391165169241075430633808137185865101713381328004180537883705440307703207267511673059423510147695576353618953602522617220300090127320498106878607285071993048730698250890706126066553119793124638933657462738459482205056896996207604943191004163520244984376590668612294018896372979941730552541257968983437310108463109071674036867776191501581178801139090472203106919028790327719116316006037374403563951834640728911424099110245405917854222018552961687575111049585623652663475648579419558560382415880132664461803061536090973846671328295245736987935818764683841410984953830745435890035886083557773292181639167730753255621317419276487910001771732988431849053803146600158282882649079511384043711917173308184500825433543808852891130285245305981744222528937018942971176489721248276351116655410603719949833716005867182171134770312202027490920722650158287828660305545250131713769777454197223385789984395898837395021425682628098474372152372857510596074339638661525119721466345629484109896428681048795456940745415918001928958524884367981337743815356548990832790542743312383397860802666810404972854743692041620040948668149318436965268851866681746111334323432500405348749873314844563843695037393196452433286753483152132493765087463284909993020374857372686802072104647283136960787215742122196669534453957121542626589314496164033036638097694378623162990962013591375958768155543516332728240001267258106716996020151102930443375471313385569963122418983452677323115786764854013907828763855353433181649013540339818320908889447304795359861183423446928646420886323260025241860427955394501890274164570097716017895068209891694351621908092585581979294021291530319025004844550447605250918618766661082102579288270709130633941831842805730784355554725245799652219342062660604230209881793157063787273197836769843215053047881562190373707551398026404176853400255555403317203006472311978336257290175926102868590244892940824474031860620045946100231360637164160640627831736339336723001839581603268185184591034880123042652316939788860409876583836854326890116507864749688077657665223010777514061356488278844023014276876618066783103296025851947159065094557832319719177368474256407027639732631912049853893409538016550718692263601193164944752833195586955871885725924852063299837122658561652054459145392828105066936708895736184830697752981578700510083120768532387695203127662502402157197252472094819146965267699295559899210881080660927184657106573776256670201281581597447640710488326308933611617205093207860133856553750092290602287311731304523394733231611078727657879498056481160620471043501365858964036120390132687458684597507654420469453769609546877683713088028140565617021791258706058212686406920211435424762781077127562534912367045381053857537788692429108029555558811835541750419444338434459585087848342141806088143344867178399784831994170760180682758737172581445078435398806832566797267105375402433692871769033420113622156230293144007918997136263217364064029584078454194714396212033909134944617847507970583394942767535363039957616968718713820102024116687581782084661163907807052588112422985096126346222522767523416613310835498726556704614806160315353448077476531109396740101638673331920166890381841588632807202608058442376908016660457736235249141159546200069124990240946635317904316701471860981264837025398899830931270929139762639328226366305907337353372009798889644744866737899653716145997344387028339117013641844156954569519324374661130188693420476233334387193054269061043476543710587819002489997057928113348170019126253319000613598149141487641705061848766830115352271622343850242232962279789757786954802419995043680232034419820249543612258579475849533968625467015122869231450898527685766656251756393242312630727929558385362663375209397735292265678102697132078293715750269229460011736075553573817709214006284681330890162223055694364699465517091195610471717572359333107734913577930545086069981358352702977701991074866658930765560485715675580462071036607255329841491935241897908331225313353234133323382551049360063026823365621784206226231193959312854986244863167658983540691584589036284373601006334697570288700630673978288566778386723888049002966408417474213900669163476791713189628553780479023181454582735645621462392117200169323871054771928402850399964010097560772380864807470917484502669002241096702753021375607926633704133005470616989781817699696621935848040797504516175579746134931089766718989899977384634264154065255404183824050577720109537789581258492876349688975969538469043563227459021958084708615586714251175433399423702361594073189880864275024272112731289439458689296947128819077773036548766538296474515544642445221425085908563034108984872813346309791366611366737008875783428121184322026173176748758071617077921304690731970411895660418622488013403402763007383228646460649063253774321422720071957657855547577601352035555841317011016472867541603741347287127190748752525914929186070864136475267887363962355095410260662911291658034921096833580046082612519980313669928531274542645351450204308247967172053389371761935462822557731026991456492913652672770938204484722168140536626788266779463675875933355265492989883549807810570651604911849772341220367517268568870272220167188880275800208786930095629180116194207227146932087604200088225110765978477639283036546629310793661975643461841170530685185121367750220319579817431133566296622522472099939446912528107051786380120074413887781995372936833746812228499918884800407012433943821055822271301277742594092806724078360742500130924084733451046660616480779081555987976033046090153727431631699520539182034862916415585023563390638505057613385863142431161637193707963549519417336387351594816152533395405217201418140056776377874296012556193911416982859135202901298805789414542965157598904952559611221864411586771139394842832304910575295498252329427378019796166176271380306704325255495928008404839027267287359388340282387060818277203972780916790873368578382601645383717368214071352646078846481154277801454451610778254716447077773689407952010077898110110941916863509068784668220248851231931579188625791057559376259298883671269544043506432103229643822239596785843138476076231183615077743771822340984507244695289955170005616732155797920632149761333152189800744205003035433993123468209933264451795817624413160820256386252420983805770927279227514803544519637718716201921675361012980736906255633307814976891674766999066190616830699005431300580008137616912531533986537565564815785984912967240838048776560919935851865678307753847445806628310921260030986268700200270901779353802914302121004929459505401018365540070713191175938666557064942229845494710449518309646664097612873963047382177035682665530686583519794300519842359631603936340126199696172332433957633990335021337985701284183682133699998332636678918568824958367277045579647993307323343061398139985486485162749026941717238688105347439408601661860287609892053617638518543537432414600479877854474831443626703998170298663362402827032464484651663767600907609012553419521026629663352525104539295981707497554136752961451336122341505645119892103134156548318697232555017980640414160435658245122298919835492934383205123490433549020796414936114677169394971871582019861983324459499012353602668681204845996240811412316976663198694355036403031107463574892537733630529631837062520783958888797357751376581679534237187691139992200162414545596573233780173786563264830641217487853959623792106133198916866143604709173866963546475757634863467731060741832359522437638403658424820518680220114625235606118675144205657740895010001590665229117364312600239663378379636440729618014180665160796692115502341593107122742265119391616722627565411621507833981376351489303044414505562632320739089573156268136423420547424339547371400952511648602650539228049297480749611440915318794710336031747203616418225676210287616843187936068144864521727752447467615687481506707650500933611626270638098934013143698705789517660539455220454086869159980168394095110223440204534641026089648110301283919191687515482867856563508750064056113660964072183269252365604408078342196502314274846711816470614294992057485121782529719463408090331198886814726164472422776532060977429667216592957595322038991356441106016407979006103325921859133773578363779146418454316029054995940936356998994399881456305676851837072325948479234427336163918449443698105754944021484065979504665960992366042204832537574782315882151325255894767147500563142158621647938994668371741531043153607833803394625867765858483031039582483608733650277076271097247830706377742408829699935672193374084400232023267400118618966021530856866878772716365997025839615050398787708920070078831781509825018271592854650939213648745977576518578027770667720236089096720106492704029006084293976978803536742245517028857502244839429862211193981659573797528038384256592152947550202573607049193290075868666029724170371170432306459659689494914591690394607002611947899778810817226289934106860030973985848048634662015344687918290756693597485312350319939564768712723244381791015548206325241121851193830784136569224982072560424519528860058195778564905687285258992715920967758462901165054786071982384102153919382343488306589127022847559290649530847885766187407263954977833357897434144464148452499927247538049849246266117923419355725853030897434203174845741865759411583451122797105203519584430941309424459312981306118532661260593511850636226358092344910711791811386028028480777674477782819068698382161417058837525334079981328147487055459565527372913102888585368040356572082791527679723284761659271805675384475169787144814354026642410798256537755101816964542884367991926131988166012959095750348922058273714023170384920897090480330015780925752908146745997132974721132286648836802335326501368214366455985165755457247494314992266673234880172638931754365724111609987209783818687714184131444811293648076181359479837710866203970890247894897747959602310839690132832165443238154369429457315961794179695379623604708769223835367645362729605834816867389981975127700728989608363348723375194354676982271028211908315212995722364186461629493956177555420648306851649917183903390191419890851641673054109770741899725936227392894439766145006534484063216719308499754244154896730386885888903982830092009665903408964651346643240191085485926324012932076720949643760110838025018943499075313655689249981838025423071827305669366612297549959649093517545811239312363224896746462546257632717528385325396777172594623774604981785303487631134546968476734072610078285289423893277988309370223951078167713444971136003488351712380889969351943880129449858679942425958643783255838990414312936776445061314944317501113152275088343183090124545213389615034199582538791561016431397490870195653188918142369261056437330608232161173351645126947125065286473538936609810813627466393321645027531982847724403553657531484831546061980568252831904155181085500845991517922947540428186430168239160698225323319395929648749732780644704690383815099448648330073609170993179600912419277921579082813440163445306145135978274286824357955221333731449516726810151121738822503089825550591219458300575368063719451964476563794933776544357523717410390154520261520268768098203252096839233512939235119738765424161163671687098904624043949457046350757880029066159746317910446932447819565615859736551534916667572867467346012339842209604694310988028468370594087718560807615035995636286772773495991209060910787309131237530436654180347990524993087215832496669397914745265847836799556072657653045451217988021471976618789727579487756416812112781618503086949968441622930382117619895550790602742013133550897053039034541587864570614521044702256027446669329705134659804956004114072389659111472118847106471262074466745433475072025231358018800414623895045676341475510122479361347511365415139735930341425690330399837080150861515094431604005499077553410358220898022041644142779614640368456419709471108867853759993770372077275819116427999987505794230206382961665826486187537054859641148848443374702224371983230696094842337925491752554786232455266381862635885059377136912219828040810560756176306636562370988074274729509373299862988522043790546260050927595699343286072917991151943481706485923914589063436989588444181211640932637575000649533766440954101626632246604867367134385369491792358451156052837123952361705886868023026019069854273673181447661952492589653276808226430612960305559526341621442282587138574455672659660821975147706037313083141331209333628025234645711748274756628763265021930513270456098904588503309566032980682472041598298711891198682811262359011369416126927136229999772305194604534535044589794570556907980875445912100635898108486034569046360395195354561371866828499747195359939417427363583315454167947256349001079095391968102418472707460193820432210149950841100995416874864892612944176905922687559068262090310630037035985349788459262756805417610420944220449178965940399256448390521828784651570213400039279504600837508322404918493776433761981527313872703046190707086308064408353240604924582791951058238715756140045080009727160322570251376733242646055683797745131022227429971528651243567453460287828496134179711145585946411509779713284521884574499992593303933042570253206636783289531031815756620595701312703518490315807578489282190159314511208533891115129392715864491417649753977375466644266560347639166961632412907581664815977498799753933089861639123550773195754005508401417785064760049348773028599531071060896097036050706435431514889032450331413372039518501960596480392811212735009868451664459467503393877358255569896959722834713345809169899295383508900948339477586379951458048308694689082827367072748750935873454260142730001919645591494837622529847057939026362609321782252458466050268543514193428583655524979599734842654927409997262374956066954367377109805303619944096891501173245845287996741981324215532661205675679312590750611392392726483380275065018907109518458344917886660904306415986498264637650578257147845128572683564733675797363828108942650606526851082033280400292106266559423650955526394532887127371856956381067035983510681874677440146897584127158886395772419042833183712354357469534181441508677533941801408497044820881315309985319442170383346492097862911068222837412942301138076269797904438546665207381308058403991717262336496809461462346496287210203596212420410977164783309541828100166672248238832168077976509056979736340056607656992550368399259039580437431920360562277004611551629203150629066956884433070968028292149945556403700528035222626190966589615376724200266534028506048327989826673693119988008466152351617614282054984707911386039074140495155687317109282642021891577130515149251757840096320074298319961418134917888688152580752589508320433588503156448433472235494576419700627949376600305250569843674226580109625706285040433058054647331824195610366132852310726710122919781768278015576036725786001154984230509152873157354199908082632482222962752033771823686407579417530129543457770585040529127700608335333891648946243090404870917718254527578963003221542235444885949768064622771712383549772742460601481986767929317022915464304908390865712070088001198234119993850064758124678885155481605404590851624079153098222381690635665704235677561824606208789964256790064273281225127796999453520714238175657075353629322758500451404495629575201043523766034302889673688230619360051896797999760016185674872547175697850490111339372938388928769839630670892162803245406326812616728260780800075856412915601490395718936336246266260062319206675268717951126447273577645551633461095099304728675541895288505549181112154520011034120513852555486687191658158674448229138391065038173664934078785946735467371409592129768957257249073239163470103172415214387686095550554880601880200967640502951626518803720548542450666952608473149713601155785494287103593128104195176446814278372153994720823203821001367827589740151569549802603881903902636986305906645447729618111573782506561703250382993551731927589565247055047367537589073135691956264645190168246883873467661822452140874749154884033160136418593732076529507471792849158337242051619183309143602849886192382799831624304744694313754685356964874451010119086732547984811856738608849649427659110671725443612581778115351048999280215321960906256433823815138087527545952870808026185256717766350619742501500791526687192446403255211220492815339165057141959468747414969687523665646351219958730202603796848423559468683337222747912197458342115540327438233417965877804850200229118110515933292144722836000094332156735069993290686532967307223822683431673337477229933892115698152505967827231011706967686001768007434864970970541535523688977863538671417184587580241032254579464426247142241082436359497936264247261275854863718786505184679256718859054521391203033458199659136319300694600465146794315043072387662966869605035485304896029503846404416408183232259528791562148162119672789795126407730464132795313840280234059011457317566022644237031380438695069897433875449522876603356046211589129864705434953492934860958354097238877321826118427951980889738838956391629846409213016643232589184462322293791930583707031622355242864233701254790985703726355732448860920377657982205830659182950449354998436330297608390239885273835966957648440625254542777659673954221074540112174864180726061742037848993090687551527979091037690919810784072165539968068242142870040427795081390330842208861301396457710796944246661082487653422311646876339949730176865673276601374917278478048546862655957462165655697227264609585877845921730775114633835814948716422516588659173893879858528305423452833273452397668020813396184576938079914964140733062524821143722536538367620736423428199896728069309025709817413591111690829985108612533649384564788771563464349795620948277081464810029954316326845783769514135155448753925884002378808272080273017430749250293694100922833474519703119907579440227133203248024146965864778568014796376662853995211678272208946364720513724482381945193425458639170707709097013765263044357508016971752533466496599779918513815301831300694073374143058807067477428142626357749672030228755053286944999503903561289622575355603015173210002347496398783138629388736068834694527019643859756392358834055294446542141057390466677297486166353000067881618528800801923456631929588813154615855507322034527451350750812988464124170160896621180406174803604045183332852857742668061001832376954608773899568825390860178076667132159808887478137935436660678990149850795710764599630366021725771034472294605821504133393043810072230030111202400865637818269438392364777807841496790202979317636503818845155923810434973266382522072948673388998760454024566800420441017836586894117329300484100909127591671511956003397028410302353639644456572743121822405434006896782793317893910317707786814421750210867142363398716253155870814588785716319949724345712012648447823789076692788536059054346906054131773488315933542754845867198567943023980083844921033301806750049715999159747753395983215158023344230308032945821291145268884692828984859151807475066182172588858425345151498753799367592894304185313182322840575689599774976526214285781768237230860227061005803381053865175866180348674113609466582802339654788170300217261550478328526831665668790477006084255805691193419378436397196983430957498169256882166094720973841205585299171676273608597567542557171132120104797754433873062804343007166114553603923755709597766377301411846625430579713108597688430723215140279386281025409964371140232388073259996959930832037381139909418259836308657653525191307999561363975718013366810018093159508903353110683219478067077832214482461136539677716508557271907871201232314955262033464265065903499992269573859300028007513113336788009636094964611600741327287982962209456275275315930584349240407418085122852489002610256770869763900437527187783399344884145838398652183097091909176891963088505354283688063849075700809610064121758390004131019025494287169122326474735087667565409436006404505195951201629588522619566955250384244021997373628715339172023620877501093230995045157409211957504413096809832629786403268642839177290863140143572848298716516515195530696829982368800500095590206749245349511587745995124694473406826560411978762498488536687787044920116653554897158894732654757487377192431545189889346392132784648524965815079686150098935990494955576229312290394244110373323940441626894396554856990010814132292452656356385507757675774412398017730563045143263673960351097587546935462726049384730347394049337846360086801996648750205842174529573541261336992830704282861993185256479284204419009311512723810630865973512461765883231318562245420336416776100859609968448675673495224382104558185964036119778541241877881349615070461545666552054584908420142949593891407927248350485781958392336044257234923440124290721621840421913661465044363411832615425879016915419200774897935732194008927306375580766956018410566492933782738492204223994245771523034770530750639445487512465311864433974922980072855047683044838847788174011132911375656515342443844328905420362943039529743641585659291858074276843927315782276031824789957963044734425035385891110240413842307676562125134679541231695507433097618563518040260567286664749344556848270162160127521302584255938299088694897199145809775473318281369923586452821915819562369349906930669290223518647743015211142544410076745282664201161532538592697398837817774207007028036174067987121156352206383598144405420401791816840198119130415897179427759333759125966484279253185788702961379700846542288388493488385744300114687449219343352060492690178432302938689989808884174686898008813846202527417028310615774649112915021887266448195017805105664967091031313679340397309144417932970769412469312765135331345152715388111234711422632795831685803663788649347388350426708038498668321076064195064971735843844403007213670926800934322247614146495562505826102426033486139533219482835470411224203197796303848401741451260196117922993367274307607170545242170152954747658010340883107483068062838505795861577433315252770182369858020899274794015852794597160157089836615047486297982955028412968881305635748998097044482424819478198664459722544006663548113190222504903990110618502530119027789732724833465959101722489346796898784924101851995771030118589664159117571338966755111639756174300843097235694135004639039405754345953388033433976794573825545471277527510649830938410678764777683327772166441868416433693096414583017713572256435665493985065414148581023836076880415598126413120286697713246192506572354007512851345708374150047145730213438244210639496732205068101563760119548882492629745536077519423288749461652179373960026715228613252299800753961636534751731960896752658283039562002543169599199583153791110687649933076252888359328703233215369628973378963270994890433132828450378156133937407381482720729260490816846247068288747132760944828759333842612787830671225559886022164184635498734304132445075721986649309445280349436065530284464902109119434367791047118931565781578513779769355875280669190062398301733010123935710655440657436236681142958674709656576875635316983885337654330930633414363499474719746258108256409835826016232093311669263327087463691132909613195051827899299987895957168120897590161364600414623112283220077480782600478998303815937192832102014283306442656450238930723631915273365797439773914043690842879870749477471115455712757597084648875257118915767929096231239674783745515042254782615535014375900683099182358325453479096386511515671413758869651025051314151209918080310405132016055115079300430145666182864104733179146386459941213347255322007562241871151958448707734451830065099338278776806840812060129899485607071218472587930673041599139629635900310488920155930504168237607159153784450831120278623980794478245412324886245131526559215495127232377831056806309788341783557440443147617610305905851796006017422616245472838855232858357039975916111242358991028094994638418981138490205033707264647005819347073498818926208821030623800767894949845838085654852065316776939266364942268506147437745883950494394552159329126975867316559696148456857934652657232871811910973552520572262042135877875085056765948721345992774786104322257820959711223838665288742012263733419756393673920469220052045023678265696486172833917596612241701033346000391946644968735279324092171518474360682604483762284332206988198760360232328094205561469260175607156241422181946893878123222490130141078198914848615489663085130355069918111526977329619650765376934308383566393190723059479749876140737529651248572652000459614963324232439497160581349875541499625024645948621872306086524757956776154755722958589197232919033340198156543529938549480979246001495161720501796604240614859455069380850915963656791137536909039061863845601856985196364816096044726374204250669222553025862351240565890436334048653143079822162667636029818354580494247934780242656805603910948646586791893027575313208479231037171568686690282585687256357265031939253767036094559480300774404477381536301770480234023297675244407808288934085709791162265318361949717173956614409540421897663656095246009318873887553961518114169957648926843776956700609964918625419047705384276910526938000795706231296909320214457656446682458832972550880134683828551970079911606711529254303305045550917953380110247115529251927366147918463217926205139893280993946537953833522485431316840767425494934195639094426727620523580539301716927773121933982284713112481138548878400016130272667738721536455865216498501345231891543107238742906781675745676406403066345806720490091136631108000557597400880672532144147610379697475286405920438870842104664336731412922359333165974222220850094809871849068439572637118201150177459072579319710366674889767208024147351749541057158752618248447073678745666427650549498286551078659176706370054300609079636809457730321653878993947856794257835763149887765266306040481993585411786510529752934663637538728844946646837246672065067399930183766463441467211086351617157522452179732030788317881289206813299253802562966485415298220763103868934664405158421105027061336834041926910024820432768069157126378746022056629877239843061849790895337192024368534287695645608970635563444075222076753052906406717982703382625474502348860249818676314396688741659754452601462356824132179957567589297331439052765459710557532792941890079272863452756305939416256244175524064390387808994650555411433141625641928519888180300567531400642910330363516093342373615847628272694354107781272831976792213451394488975086382233851863169004784078086582637344335464426450933354270731222792301400197116019343376923358351717797742191408557989369296780335598174963593068379154029342270575199346014211462257587829808045916429034029912062941196999196962068561145297047494622750367514781037842470120469679993011485982361434022478359407745258858738963126588847518837415662285636513077996813872597970513580881662525539705436744440241862969052784104759719369152537390901721671230105835738618545296254986564377346465392285700916064103994921280052110916728912186250777727404586958668878497205502882073146306893745300287052139940784918315035760868089285964176075860461640576822417499599588652390118263892465566694064984677329787699076809376846666004657818054844769247623428261283278279241053168375251846030241974739551657334558114727867460982831957649336234548530983262632028931772001951538569166591473069078652772157093173638010843470626922671309989970724907233327054593052251951092385352315038089134253207082432410147034629132957584201644873812207234120856546520199752691811218970065762180582699588904516488544801683331489026725989400614545569075065868097689733987907876370226735189391201035571925084897997723201123362077011548506989316193392781037038421574639010490921229170541892572463253366433722038959018071445192394217162899889320185155860216801265476447155431415561163047285006628649936428459343965305467652127930955525936975434900940745924685922746868413295685486460403105661491975137902435289621232880552483708030554863154151905603329081368991093037197939438900765561637779397465267489533821971549107031985377839658087283562613056758881197046078380507649615142424439274549741021494638193567277142545370810487697178919806033332045897856595712226668188234525031547449601163731957467022923813711233810009627817160234650700877194639605576415236987694909968604295202630025450131406363626425645728167592426842515782589335144463620381614093647230462052095629031048458359867068450126392034607544883369947425214092902979435343453863850855797107996183014964129993474703336459043646589651587631151615877750150594923029257192773363274469559051226145740355966095020123917138152157408901585680097515445605575588553493907250893228818039610529380678467022503317011843151093413571619635716213492776946729505660461823545224992573548078597688201496954504363173321920990198397512021865351491948890336317313402092625222254617532467026762587880873495698001780153373047302931026844273369284900182001755149166210217666563210544715502080441560359521885788139291355690296486385437492142492755522467628243372674028334418270039317154795783446752842282800383941921179943515541151843991115950399887453457539170186451637149046037669103681051660568908559255535356002289535015381015361204691864051511036886806957715424386564124205312264933691187117003352190473458442412190663772070200536546231973905163938859583970263135426822510908649857166927331642369918142995247615714202677764482509058727869231369761374326077221170047078766636991823377360749977508616429547013448415013769051019091214311510820415054942522582720123858423343933782680842738660862096452993056516604691060259091165161129845119309838964645986524715890677120317524009907341258730441465898154481931668760077673039045118669348965064783202246437781550128639727044402419493668143238356945715015039985745663942861382035551663707211082516097657273269570426186608945360692284162811362590156383056256199813766967814544534391624265223302615537790081590514339146716758198657162337965640573245899359961930359133507702107789658885030191041371962129126978902690562513307742003858046335355842043578348024357216261078064565541726924678817089745945701433455101479211046440606569848629480205579259356283178349151332111691411838281885131368858630016702748013137100267936225387619035800620717130535574457141100596268732298450604517659273711103366046134344765936188765262654131160821392512715058671512226513994579793927773962239463915626024424271166141923221471451129395737535936211087101537682912711746789995659531087219432841520242916980791470519243875191007203125805574236756671662240132161802677376557740351040968703146603445873367448072473445091022816131798402666357966760775650866596096720145342298487704490672065558099055601308189509908204616350648376022488073007595399191628299484418744404030131875807294443587607874358780827654532537089174667586780727492906016082537893355195649400629219098517129445381783408130672173018175675872592720568026425565731135092637834229192693988781235295206419139097900173020618652135817587662372459067882565795379867405760487919897300867477434738159938439558576733393630860384918582563984927925232486293218905478278494884834894003052409545556744848637948919467736479490042576534371567635261536074889058110173725836059650762617078766829106615280633463357385500789217906263195374364358842768107036070022070758331011001301452300979586957270856423999415802367422322272839588531960419789058605113965345591521744220770245131195861207930943418111946793766369483257559408441049512375607120250694762892044818234982718436584797543039162120329290812837696201320065176677964942531764567958363388356807657786045012983211683955149968616302448982101035101028995361955121542743873603270684010716823532269760710209765748500577478487087959034349313702418673511219300598607411389056078500638622342645335117222244756476361443906437944694779729357849741919783250591502001684769975029249323104894859286279825415743596005742175229472833729477395355178501902385136069111579517593508660591365481633644737798514771595359725219296131913536985974343354092790955023680018491818667217606619579699642126256011863661448164685949411015965379309792188027933468948297766440287206334601763391134624899687446153234332633255045155734394802288091925497563687249200966833572458147084903492758953506922476557975228090526161398079918717849659030847197174139043262930238770695308977108200033589247686101045215513857464201424789966232923502472135381108290891444320549582529730155253748545824807052933045927744174521113250320503146149893923836542181925052549894959093948019783766492384476773462103193697120655956489745555708462434569180445611361082171380218747156993527053668251726790918904510180855309240480527638146686106600603328476029618856057732349726488620157839029246213466904148022617929054773173296255340902792103212392223536734324362582696236874520185374740082118208247741344719285055804036151843643980965270453818611000185902585395786621087117318030005347527406342936876504169233055294093205627631518561017896529060506906890293012955396315257703933086294974092378915545172765633732220252548069982934487754450893620563293338952890892213618525624071104167375500444144501452824476421019249340164733518094235747482090593434155105122403358724341355174517271660062445626403021756506624880476646495859558400056982475270777295468291252702556072914590511348352850516801535062183682061952876010680006393835610198463218259899697259485744736336239167066064596473256624402089056126774434539418443716930795940814520359119752694708363130909409592338239570338789072476301662369726998583842923112439353512895042927922634884118569301880390236221694433576187733798031036402558139957350239864618498598012504383508837379406984115106013979482763224474680863347518635471473728621291498529996023919079507614028514496729066860228857961386105676303915234155783321400751350811239843374273279767946750048090379234319520123924674433370012988525069592655436258210553955483996893356838938640884799802172338226655778988346179185340315184139824721551468414806472203271810183528730194140087828944314265166921124431115690134470873728496101855649065908953483600990658326095826752055028573369698571765371693197776960111991334294295026322733130437030981613713823764400021931770698155238416073647880935414449120898527379076171303426036547622959491232504281403731606804937678155855369165996900166161732966875130425485655344980664424966582280423339346676099492574340034516452700232935641340838018934849009039766377181865526384325495505861541286834029683171895095470249406817157493725799723688274811145497055225202579679171738852191053899817492045155273782928046828326936177409462934784996300748234054843242072312735200390733294238804098555442333615461033376288764235510265675189710157563842845671925548136687104684632773404570748402060076273146483090033036619611574096062649667983041504451195468429796587926150913106312772990469074396109823418967428769007073126765524211388539014318507998407558916643157808681898157354535049831024850444596862145967058845971536002089003015751668428836040026983796958981688466287213987487848573637226786262890900176445738458264187212193255865412508860756788639410983247894966183801372921663791443840025802889025685818502643350426921267227490774474824186245451085931582099323413570134776306909645544259862937562725671835756264240164482899220405611196638153996927187459545428801874824201889203764574678670030257502392110615145113651942674901219939419008861683699571557381156459535243392751762313370239001941602899523069880358783663724766626217994947005580082361432675981492630190839266842086234950761914988784355037938137913344215333452014609175448277930603274764634347421965517305210909130299997446664414745356455481611614530617310246739006985366345170773273536446496498878782673968970995573570443754688754914601412780279119446823577021878484408788001640719151500106843068805346180905274809330512574863760825739508352049453918329074034290984967666126853608827904543550133755808017036933084353601051823451029613375516038357862127002332155543144733800595163002360203263428399185369820339428987651243791324028705795134650684283385594046026904856051298081251415956480953052980022481203522063530088417186575904493921028717483948155451276209870948421859568908637245256502264753904818093446785363257359281362027974667842767980518579841146584122058774853737220306079790058418632151147283560660977784381878023394994290553818743151554682542673387542649216154901724592910803836553321747086281086472082333523980440839681647727430364649711721117758339921331758348975170053522773856114594130386860033985352329056302796265794631005142464353726579005531760239904419846976857622389283621591966121665478026404862265788606846547145920436440535214575106587894420576824840068841685507298887165576166601275248747097845142939005611679464950229329727982726442360524791634876178952457390248253410348590864160922958425149531921750197658930655607826053574385844165226418707246152664524478057143899097621068046677759578917087422991503227873551789217798625799239518884335017695445193615015877491381094198737009176353697382265076610037963978706712140248681509759542728411919537386590195320511825787032805042824424169727392591733370320407667216451552223725564555081068726922423636311988253238324947754365052817938027722546307048990592641536681535891485169894425014575211733903117387023513160801430730077672448970293772211544498830794521613420508966227652803200835801956636025519087455131421571795595024396565162573082319463229119285708169933708081257952191506967400080691732795847480536917260104025499116463779440485972070642739491054695251416526540728905940012802952420694933665504478785321926201469323640277611298003954609858008007907751613971979179467071015291274649083013055209527814241373821545360589925525000533040463713748821312085428963506888735992866849744868344262724720994382604659622523002302419374803259310118291758979327754259240762992650846797354816613342112859258112215426531919575144690577725758301610054182077603638145973355790848243272051322850196114390635760555253560759467511019846949596198688678821598016900015136862176457061883416112369629079517609920205481841825534115643529974665941220995496130187707280176324299942685107647752596953001007158092307604494813788190205907912381583644568740888792054357348152002106468746131366468806928200939883143281624840839423094447844735687929711685183456037905130001487389093213350684562681360577286383168546240657076384361490328013822488806231939141854426601069443194061529339550485323610039313963027699302932126517987727612210519132315204191932746516404658078755050229900187032287296112477680997977024112479829317759458479229964298452048277883390468814544618842903035818600523762912238267173509376403373386753078207309064636108775364355743593091250673752487362816222531837464200975121020712261158080825472940024944523367643830388440440537935913442448490080622645990301581349309383589351549224087398368698061442067750004036834869524291512570922875842996523257597178171898150632588160172284064178190332235576737373187979275389085873885543769084212335385455618833297102988955710733159833467090157497675422543319437361664176536891067407964291115033280822336597086083929840147296638132684697467967852081224060009831719203277437835624076261061470373812178531964158950308281677881263250849249117890148625987356384712235777210432900894507883901171737096172399104162868945499411537099104908104893878160399691455664650514921007055261678716202752008349448469538962470396883411381999948598069727530920230624875166835020063615471178974393183747161308612720807021281455296442945272140759421790628582485560756648370801244133263204576727795186687320220248113849211185007410912404196399362699979803903007786691834718178783530470493194400376291203652599560537635366054358604657762898828173893979415036292383124621650967084809667249506574912922428735548564108421661672042684891970285355474710295314975727306373440723056707074774751160031450231972084102506483022370194282588782589376047171492746912897765450492500469625435903893940534205661746082253001502549631516498948936933769760503506970419648100744777225474561634224070100817632572965451872331533044204746535382578757048862076731836311328167744818259603755922712803102637550072956950435044594640851829244868959694183150806590026667626248952935857315356548763182637729880620676520771482988008070408628946270939817850619601084436189109849064290971639677129854488616296017154871973157214405269483116724727325189709734727117047132767384070161929124260705183910536659988670970552953835032706035908653699609472954516176027331784747819323758654563882836104187121106258272961390338723770619995448869474774835023868049561589649851479812366894484363778222378138273481510493929105453123918780381887400853505125852972301018112991709165807694265817313018043585948658895210835248001306222323596439267241418399361929893701399422075658871434148537616052457630748976437009571196520855708992874316914004540796531230482722174245095446021869998511978889098124717713649771389957235459633762613215186468575549619181703115138473366625835869715758972279859386360643277517818614256674729093839271901532426374299530686617917739015884994975904769116343456663493298985033825788390957586208121737902936692457462196703208763048164360493447693741966228520189926439128125029051234826661536304088698493274459943592171637332290545545840260657744765068983341087714683570625306642519669942114497672097339949856360125598737472425798430038147349809622627837651003173781123541675349390017085955645324285103411192903928468212545039820352790242554038966762551763688217359593158855491794297679453790790996970348450425389075778293570149909059957401424768331876002689800335750292933058240358696083222177967468303530388124188427154145750941719088683956629188682645603110643667851570566909642247630818809081690788495086642904186731822773052237784099469701441378326594846541834158658705941243182233479149163144282974456983044848585256930031144985881487056146446948560701119247612783625364840633193008236999550271162684280875285714350665190698369006718935394796466384701179591086486495943703297998996564567363183123255053277183731429605864760694832020616821730762014719527475208023615834191115565295354889576533366399025126583083155439582232949502038177037213056824303123351343796998815519920951088860882820998303966461792323900487191252553681334270069849673783298111473176039575024938110643325888434028550530499349299049514948076235710032941888108931069542107984634363292728128978266227109795206860177493717251429821106389368478924394390583133522093724226835490104267434824731788239067470469199029037351373140200815122358234476148982089155613682696336695818496362974853694905490592370217816035342403102487416752367069210073342837954779390026959147268248928756344174123570898748824179881825457924990211469353694849963537877237747055411493350371851712792421156959767005946215199817625567251854628515809967779413487699944103505715149634498548661860038689116366033571135652115670050756553556394598345238713137079497769842381494975713642073657329780458697101574999823007595286527087008563782691096233638989723458058515972368788607464858709615735091729777931507274949970016680370007834937739933910353051172956456918242368890766074687816982079860491522067520843693423154704400238719219413295087945227280200628819218696896638393926866654254865649749169860307772383524631947741126618219628166657468978070904397087806103793310757226290554863849605653333982083315484216599234024816453325996197339655830719221888869315777750865239165547461311256730185358041135057865821988837361406926536152685042972132794853532957079554913868293196103394302368993274803596689345662786771644502978064437540418116238268256733039148395075354024970267677130835251987623325325592990056948215657887359876398007004875611505284939599177664714119135196424568606527082037824993137287206364573282844844279631959956832887182255718366261702580793195673968091396990196375442973275808532017054349274882850673521352444264845678454289016325493532435975381975744062223602608797377897135951136710021766691108510217568827821183352981457553801212164008726040721064082749270699597330321784522474980526661924883445768192103144677232216369101483017766416656198577045561034305911340844762730783479698433407620324123523169554698115349463465028256617178006188522592496618823007245245502637562586346015635490920292772887193615684265869351745941205170190625161044867451632300542946527665723785311027694578757636048099026354256349839186908703839865164884862820494588227686277603441811066576477881993338065890696564503472594995442365614276521857474631338229637095378157431869688778230187444600251279044479395958291055907536854066937828398666546340736059354681695880095115972289688907002818307623796923096978245093330571523201581236403707189509945875118074077416695771731180757403592325897630841350619498874116054106103856508918564284547362765992066427049507104593924922898584600817139080701380113237918443429976509371694045788085230007847316364798612093547340605305442722016155496953125343911500690256948115850140078464478929339373164203018838810367864652065222600577964782616896346279414062028025950884407468931931175082521488667602554228524604408712969909965722204117779025655836601831089441371579159930577016083426473061963248365476994339800330983329919055683366490458421203251704847156758570233238277543708069938146961739360634477182118171047553192932273231567002716271248291812195684204818933888465233833342149470882113244559813990252457073422830650516891620160932875708261875084448492561533147310670591187128970729288193509615598224319931412154589998437429559628509371766951529085559666143981145207028652116821255292891772103422843789318473980725090315672098345765023510440060069213750184971394808073477490158420382859674690741211548206124728280038213955830845007595563342362971660736734893659171146433841459535082610787552946819445773540736391570039327203695834899656264078055672298507501443768632274302723142284539788977373244013918698389640867176343423756405816528243770539904764477238995427982112207357938739850242973332164953926196463038828984495785164895182948755353738055982094435781539430759984388359533936913343084710443896706161316135325745363070731773627117045156234825488432942755605784199439953032944919080007702648164072222201403616776289288444452836234087724147359828494221980457752578962603447253924223907857543359700838292665084855699340994499887593119075252982239881194870158308128551424445788172917143912891185241882416445378781328197151030295055223101783678838853646680230146746499904192597370552750386639955707488918291359744561973139158034996270057479007597633957863207231267964502447914215603470440240571641669084554901315715274795379407638881490734950645163351242882616283911810495855603988571846051890289318429543097747888911127967026879816786314526949101842108023503152308257506002813457952062231017082003872375250205017470432077356873479462303060690968793563305500000808684384152830662394807202874657745504683238080323215914038903695870893975793901046933364664535253061677978629940514864587168621889876050081706624180453013562221249980833329651809592782132583806346045044322479319591573512833068535555179157350445148464238005862421649796867557940072584128169062586244151085935045517004950051508546783495591742523924222785492990298648181853358126102126550616102230796959919359574586202956922093557558072276055988579587189944110067062418602962905183871841272745739123615104229020344012247743452349054140315291684990393874564291054639578504258037430871763599826810039407334143502906049499467091739908464789474213039803160533766619885583634144500674975388840963259711112053708798581547736199130905762775946552850155566240283386996428574615251573106611521706458791062404174079964983463567237054895257990055636007536690496851061498322153856092480127802075241656875415963275870393749871266396445721657394066944424575648593785330787577066246249354850092294098253461352139609051372805927528565025491356346078110043962652897410655236042857338209986589377680517523744511057080738039810256806004726146526352761022480177559966254551561945323110057452177486478152612676302625939078772689971915579125355458049996988114887788808505437720662016662152571033152224017921928672125488997159193540116463388154173369995882206244855199016510422397231497092719492108671003862433021599835278321137343044559491760864474963075090918183585322045670293534224143698838836339684945725486042180821260731516637375166861965159176465269125953548138635315550653929064712376329687898897064922539755876662297885639496941944422914136899064853997031601619386131818972594625371738006627545290337227140647209370456363469266087162221650462707014506859720411617656575586020147689456018143259879013191114152399277126849725717395510845865336130538370549826091988264987722294385845203951958386171776285692741680264644118707434599265998921689336907909292261103847867237455114480912391379435458782076507276553390045789758980511904870990670133310498616646216806250680731718436321759646168462523886350780072522238471922823585575152454673276174756238853575403270119230107226644607166283216182499269038699417544907905370027258787732177655063291352038384814959567353161752994907625592444675731373783236654149241960236215828558465316014020637182187903661763746124108092433865091998798870646246767816554518516260356915858399599426960438367557555317866265536621147781866191503888847698174214180020840334276670820667229344594253548571762162252883711721102547828865785414383604524221434613284419041097794311818431806338439490484216727273824267075618703706412397359497398686856595282586907576272109035094156756029692840307505134974660557742466891850382755439305502255177551287516493322692977511544826915858162844253560646951244210068998627693008196779854886393105214524927693197662186291532278023143871069486528371761374513986529432765114574047811566622566794828121584426572163019963333721835531642935794738786320998894447096971042489706090231968801529186075933912279488460703047154721851496484575377246567000956177051955515709726019462914491642813840069572176856345292028644641868263053205228075620586110900214817669031170025946642658307866987489694430862000644752653801156597600254302021918271866967717718528766425024728700298531695724436734387488868930394898845900518862724541723468605441512407806080182274163785464970689863079461240134675929760025514097535412933110558636341209097981230777327147839154633390118195495071955331282927910735434721466741567387864268007770064669974248017071022232735032748336674847341900228853568947341943146968170285894263216481140523472851684980073330800916835839043071290906954055591347947669699462970870184052502983875247281819421498283902963180614145111783091176266995437631180921294508274036515220392187584282751502864158529174340959479916743714818856352141535748135795453668872409042081824060396867923951699372209540275498062194176717255205784524199645176534460525801974061315634493150673407917439219649089955181990211603400059839948306225107409738737166623062310262241502470771351815380032997055551660206055140650896812963854362099475435202537480924502944829697210994467302414441439425489236418224125037831872922094909709266551350697360119720918764593713219895706865005086596001496598692890021763375678299901408553610885907245386630637724930240378097573716659641001370750481666996478371048745508884964452444584121572211720056232968626997821762965240720641214358629055602055089346392140501307016195398850688029832796261294133018816436166605880113549930053711346366978419068509299248462797792977883958701597035921183581940241404948787772700052212931053133617353626510717655270164485340255305973684826966494190567825024588990797216098688661597000011320765842079216900687226233958296403742398559155761244237952293326720048718849284871737206703432556662057014564354322796643301696767688172376094518469811626803083991933162376859404827870854500903181973135288350203332328784502097154151281923629032791798093988150920126722427049007321247006151059113987373917034379378212094179869263757633608907622924581348520658914372169804951334206564935610288187948448724175573246724023155281371914219771460368263041530937279715622347151823530600154239475682184669665750154143057302355759355647505785769302920189280702089845521683173690335502307652913016728652857646891329732366441889245031052540993150564259471795796236661491208188690826611749123113952204042884715684173846253533263516438283525037181292610157479929080167850751486554242454007686967925625509991031013392599317374362209688234130554774842842304958637091638935458588934970200438490380248668931929208045855984097867995119887612124848920932821785735389470678626045175789135109398252529288606635858596290579930103464281299696798740193440112089727814827862119164032936727173431245842089104184059244310503422863803684381615485292463575988928298613907393508394119901395539486316685453340996056656236424184236284636184395791903097029815605354072943977850098974634847173911421476515098601826820956925996723314825660494210157730632606314884641054186752220576258900666820272033023576999680953488552919220235351236396019426678252926483904468216766400104913437937448135632156837555422457062246542966665587509372304962514628548811503789265699472066576966299843525623334040964859431440837788860829430599198924174061312711124535960422809123665990535944089170499038090394711169103613217194778881652093697739635526296405763010055611211720370220146979704711235315906158956657983671717322256819085150824720773395816154590861396686271675252280105537030696022267028782759374708983650767091975647647740262718859119095107103813419282600826852427814287535640180895687754649244560248468507917025809443350251675542074648293066679230554757705526184871047538002510193627235746596781229835200269730347559897559551551560769501924000380226547558930388860192283769554733512422045553240619719009160244217530588962749144749088235263383882408783507330847829005006350550139699003333204452816800252418818283371466660141120689031294567746026033533664743751992955988896295670423172268220148480764536932391261500628207640832447958236999719417690210483634961219708423001371061571384035496827757261186789849212205653049685086351100217894313742721599373239613239397558188587035566791691247278416748282678302798107564663827728814914688981451257193488843666882201023357323807009674181939408049309682562217696332668207630574656949720188312747592829352756501533124432099509990710343487076183640628251376418762363863983786512857206508444283174155388693604692377737568158716773357536108338710009817846124462863009899410607995420448145833668329373533637605745128543454925620643375860918789953229272845766762937478158533859322616676430980756799738689441619017437702273551885165565545139674316436426700942875248058828585990454519566322637759095434798470196839538800441383685835905257581735297902981469988507419389767960380349891042184676689089355722747821713311566876918872765397494641696399509031233696689926538161806138299985350299710266184799269579451044865793647173329118955967309570108086065712412785972496922724316961307783170930371373206710638224789025259014410283461382319048050015926943145488254316509313393896255578573409255696330626707424598210244862501639169588254687799803098248819204654835421613184811430419377022241992632887776972946333272818561592206044418815801709948092873723713800726634541900393880252504049380915278007780107096369319148779404637399025515823100890547513427689988483160185945951830997684403556932397783543126024684574749335187599409099761616028045255521729167737152966126634343349258418885034185447661300768765206311815650605341120461062746473792537772320549691909416453710252588875680008718209131971437118116261196518330144579584152793060920749428257902609123909097412744808467464897681856296677239796854504698887243141423024180342612435998477147727735828157604162193300493606595792408114748846622545709129050733193429379821052285206948575526222998170198294442040795540977933253771241831925175835572938026313044119231091616405925874779705231015245489537700689456996068041348404501681549323465299628984655178925224058856704612035929398953445729034029756929083711223476412010466670836224160859284044912865832634437453773314619159727718113570360653721433361796359986390969130443195525631954189368472409041181484973195208342317965859786107065662881795863409645086265862461684156380204496410125590384367619755131992287174945440643199063125327708192549458492217060748011790473745211065409169757573420100093078217897456932687801156393928015287236964879402106918570874072013899702036459784549568056596911627764684651071595379518276846229503030014344565400182535523932537024552431045348347028034726921250685202745752353248856223629800962811300741143435316068759223993710184292447259884953538977731536240898128147338647717979551063471771325211313171438327718878296377471187745891302111615256808289750711630242309090430222707879947876531328874997031320101081130562029488689530444001290838790875080652638432296264491557016693988725255419067847807161136559074520081610218325419142605988221159197255863240300600868565371562172253971705369657347808644673162906104188109166475173110868363023113364748355314939283151941067454761927610409163171986434777062736883870357351118335539847914567601358666464106488670215735693981043090772165765036038957265277497849885757677142182820451744346239313443419875937172637705195703832412993569445755843702345610534428082710817367746911079109730236980621989560573454083917298995430778239007180652944797460094652854434862952162702994532886280638649406484913215568622740012947301818238536984911051107887408239740370688279450818654015185805325225863100681156874694636569799457206719221831447330666892126645307601066298655049710809146188433046639740031695623387436982403724211940098784955319127717915435370130877081602655055018474071916484291255405542210973025491821743111511121579844139859261947984041327105765048374747590006006238533100996462858589364389814868497228903816620371176917465081905367294066117459326884344559416553136490464033919875352331204661317191224158471703370733780181932679494381319879833410457554700612959986691547467566658649241124137088581192112345049763619622287167701495680696519268949795052573285290327419973570514982499893596327922356073016600728718293763765104711931521246244155811203013909982927262669236335574966418986809863171183803363533127426381381602434550036430860748532142708357706911657773682428214973421187880408652983728868180091954197228821523899840609806888041946629232259977705560373895405071079323450386153826490564765070258898087568977599636873639241849713876743959243440650344396873726516185830709864170633718788878769520614816576439151559747003825316894741714584233942140391460678233954267664591785250840881070120684610683948968793656583837393432606746220105985872039661614834859571781541598281091682890633549274417440524101073960008933507292150084745829222527503795805704053055823477568260227087490736842960929165010812415944048331396807019735784554482464126185192673725216213722508370194927008976909886121979214310993456467401885436307637524032986033345075786918223950683099328409623621313862572594738114774372492482558277540097527340398363358175074450320868981937273032578832883131208378629716115240064526251204077609180495677845600977726518217135325104024978375422191935887871931941503306075732231167650861834473947599051979342878798438870682008251395834907208992809618716092655429699006216976283645132933834226680145238283112505380885571522935852395363876107810676479156711224139937959169274087711983586575593984600863059055786313654172698901016459039345706207476553464226252591928723749583283685829175450120749439620598074974474245300279916926407957105635130873584442507029688811820954069971328082290771462805647706136920043288612881592531190409394758687546922268569097714634899014052697175012345179278013833463454271176152229291781131639779645185527161329575124438586815909310872484148368436576135912357540577919721393212005211387121204604102831589869613909455994874582775902753957292326007111255962271744709817679183832669369682187178950919211678687046218795929726418350938225808470018457192619433372932985271233468822253341836089192216096452127032508428197034864567306714817832723317716053962236006098456595025650799832420674875261894422482682700118674714793958277010482144779656464608499673074773035618673845192816776336818488930419398098075734874118449745033515114925736106814794842134673275851548117270339359224028020005727580515536704180025286732681981787495213199966185408659559230624368240338305597216174387482358474696817651510816835918089515851653394861598246990793477405382158683693368388584953647520179905501109220526925072967925717102406859219492643162404901176869094074364360522811725656306694595550119948791241715393108791690009693859105151644312017450400089447350395412080552916042781641655367845828321022861667303293148806627542935067705817572155041041762436791702321362191010560418982764075744156403171368642971379023024614886644092569119371374144902675145751659988133016384239446848265344999977128880812384228216929470129985613129426141847383233379091111460036026802731108387313103137327103247325644631807141523936102384354982987611165670650031134880400448847543523004143629528553558336570801890020423566169021707340849696017234345378251406512685077926469839640455196999127881872473472803793989040970052374444551469582671283860473096344173525615816548272903850651592965281715475982465218703642011621164521224341322951011162265181199238801620051075686454288407610875227699860488538191169498887498126586790112038125597899064330212200400391082766456315533774420548918264583603764305642514132441856510022126635053939699079683244750964029540814959558210049097321497550356920233893871960740924413744927628188477763802955755418867739178894798610179368807216006418755238546243990803783030208034916578359800317602421877661471819331100722901011074493601451402748879727130851176250982790008958169282427411969467162425002613442685947128053332287442506004650478517098656861020343852869119107628968831997232899032588160494173803250665389383956780970503397893881744102679373174094902468752346690396591375148780461777091251861492607203546852665086085739757169282918891286659393643722489103203537929245853537416028922374978396174291434193105867945320797607637068606162259276090093310975777785299681982436281438816589116680740868933551951452406023552570530179377282672414590737867488362842854001841404968125008072658756865567806412523100535599056991345947352009177748668828657127673199539160403587065526763215739221311158870723585515378303753707840173001582715027317614781313043404423021760243069720230381055657098251343197038832200365553584421127311144461680198350231323370389258070867338984472218576241852102296793800520015996802981838383448146952984294835697900266165495658042346590889577040799420980337497020803455114558247867607679235097997762930775615239970712555812827654932547080138515720499926266245884042229649420499817798229966508482323566463566514619679706981067153742311714732202079804546445316909334010941052544378184984496766225192701052803242583995345748159991741410862240037721022271925916362610133073679057921176530126293645285782972245008818640448457289548508061128772837705682667558598088354309757503628945634924511239873886669220545567759916885910428083377718347951356976660462075899543992795162947577718048663117293946708804413515891640799777786076010926392980498667538442126241532407300404817727151316613609203136055335541557819828954911991688628583968482740716661234403539941182965418113328862372520010285640925132552588961990058472813460017117849621817518598181968557093699266673577119988960000928632436414279850264051535076663575186907917049467885803770455838496586956371494980159725523559104022184159735374584241692655503806755286168553635846135375561151701112008398507151651883802888064996089395692100138932801884088248777570827413265583938185371306200564070364385711710682111840967465398245531186700795159320983558233637469570848455899381690864185365113659335681708391320749614655945903639524913212409798253547172439657860578911043445680889853643497298112311595671361043128968615564739843302349646324781702911767649503265300538116382600616272314568253188216475787994056983080406993723383470946262503639727495801102861686921642566287209143302680765265952028965175478942650544190093761998231519406631825647723395973318299832982750438104936719538622949622280455951897209831081674165405219486589034935121610164448275428277418523505131823077753614468008728240896143616135420594523655762162723703015895647813207187295477708487292068718311138740830196062218719466057983611560747679730376840391200184027824747787697326250844980954491731360569785781745053371531375103541691177690490576810554502575235273315073178164001759032385813799504078894070156567329215077876717594436002214452758656264335776706795960163292443670687242960592725352938721031562282043555992300418760444611772167314644319739019056121444769294806391464930571084496139751950189532555896613636842367996200599504948841774775469725574698275237469346604290313534212894564554312127500161936462418063711017313785199070373019986445068971242014478530848500955027998257998476544104784329859296713893793032079052301293974349548374545706126987335331259527212743472953773036242542881411883299289055503428548324381860816396387979429079662023391747828100173410192764992697757232487244109195744532646102332297093109736083364010124043508251823176309116398316810748311981869990184219703074103189715921035538914252746655366882793090890103978864757608009587858401421166485685456544509487506466125782327658263858377508931347550345523698555868379287751167546561445165786425022944731436775740056417437238746120788316921816463328530447414867688321935778890588878513280640228176706165357288111680766743005408077936035485264361147184060877576057327901041249286511873784994811853933280864499440806547966133038955580472971238959759100565665507463010511764797728291206153990154076193298199295671256719797614245148021836949367711592690846371441404723628357721796693361626720150246155470561556157573662790983692799040378092255795717118839333903128408036199204580881975835501837498250895427780272742191002528614481729698524177983301360853343830208697952462867192977179624854710589577552699277543135372380523849005428289330950401330004373302432332514649005233448504074409879029642843446498252982318021366267593976886331975652171221119307912755047097019008081168235790687107953730484553769425962922981716154681185881242360950628617769811744974711848165933257114015283579060969501681684390653985619634211859831947189366518901201911286532934598522765707797165002839306764986482594731154214456534320942260229185734278062498536188439226427003659518535164334754630323294193875728562775849360702885648721027515680955853108337304546509306676295018938891980463253285210846073156530767540712100117243714059887478962109551970071618156186648974612556587544150260481816297632529992133389812694041283166785847506698767715709938609371712178952296632233883110795911802841743241720357421326725522939595295881481958626835630692619510425031632116634531267239101229500005561871787625643032702737153251380162499271377393866370658371060578002068857316748747413004944520761651295028970517318550194283493037416019147542993295703571110505678576521520365166965272069455206705217856239811601705751001726898497672979834074122719013800642113195515481170907434292586880600341451795976002664408946199275123912396356498842937332886630650556343638581556558582480800942419391654890022752424119348635349566574168925195269981752629295800970735092380854501892505453878525445347348281634372830254072725355511578459890813375530657681174466298468761567873992220242307034949324120421670770050304630551496483877101005965116853199664654942723652624093013842226993849829246852545902751147448938157561890520871887859165882947926984095868988860914711419416556168828497548178265656738363216527580765750363020089236002274890757001337942376308981060056964683038651906588668351262891703313429319140323265864705263181295504280634286989783929045924325497557837264596576127570629489713680779857529544112891722357580646644504286139475168779511307978668424151074759588174099966346756619967914498032034073694716804489484887953208147710568243597390524216026290082837966717766073302709065252372908724694058257811369887036525587646542706997025934921704787036651735263909599100346482150067601432348822510450215992817059082641415496415978705303611242099897171403374384865782685122835082861448635118295972943149857016817244556237702121570788655327608804161185145592531541762988658065011068883960452243038883929451351778946352201926007558533351000594373387836489993021245580407652239450690722270863972715331480216259230891976458395489543691329309193850755659873840578755462019602433585577688536820266397058980234349134682629386433919110919785535187411606843650228246307594042048684309473731811473225413686344868969506888360207812377734747036831993775197802429511976632423983785552381977699214682540692294228364270833263458789120414204213036509748936246221511754328394184085284438161527508243435495759166868808830537541663796167194247692764231600628694047034454055751528600273837628175689743337771042321744643558348929842258460994301050671663245827769516458094424659112594988426589009966092725222573202291127431695827715382712191259463519657897803410597201815071488524581011258942169117839984479367767888721878270164218296376019863037779350077455841883376260729287494899680630491193152085396692383715377633857017497793791439018174974146291692459872249599588240547653951162228723626710152552162657562380214746909433956239585620263165792424352864987852826829245955513470989604477819274927472372310554235864833833837158873076971239131809719797132089043237516739355988917030486026253658849173504744176532457190283542051183127818347281225007735874987472932081872696444392700228450758358780932687177766734673805135599256920217690402031397986180325481570135291056566880511126880752362167252252944296363014034456645649445521489329201272543564102202487478630624438401848672976746135751634986537122384029185622230770472594839621868941143089621767174902030915398136570837468652267927494811710484604532819664983594460307947089732304897720590638618254201243216489983189106055399310522759860468186685011351736384097562724602055712073578844567635054892458188474657957405104638558634552419905603650512829743374292705648798618651222061607036620166480307357177729605256742470264795932544904192941126150959855612288451308842550498374843461708557676230646304106709607194022899565116870344293670850436125650362118348583756945221831643280442701101559708909038464527400417046842404767355001169646422149173935444463015969515762771864022693348342625903026849273423366514287193030746055013597929027264748667024373067571370903752744925200843864319681400794240724311638225773551630894803358378023839507458422978766920768544114698625590275514444590388681946776489871682783324253354094598832497756572833438659454142229616697332782457774558038918258702772382079176743783482609448054210689545757823245248753425149871762049859176872436835597055613924740704128380495985970044250870817460522482890011388899405949072105214045698938051637652853528273549639154139900903366235909608489856950520082104333633934670444026425671691194926467223043111468541771929005238667856741141432209592257889464802301525965398170647503955552195610779383198864285975418987621486330803745493677462871944553724881122078545935086202408266774970392873390767815248155101109005414636024350736536155367601448985674247595361336256873530783713330523784623503099864839213440975497331568601371427289079142252553090260008543523605609833660030981216469535017371300341688957378207732627226038391631495682009551116674423221710518436106005146097097538527953961919570975069296265305207515489312034613487857241126833727332593016091000134708948339197627518777682534293053431915880677369187775558124912196919532565499113772244720704405757936803938010615885394624108285074435558762016489780470417465405437858101299088173691932181218673189105827908220086703752722173464640090708368755616941541394335141184318694865818038065524224143936305257885961831166821918980196387763323513322546017710303684116573571893753435471174768439006461194749282604696272219363825527549095539117874093929495517656667694457942324061207763714235094628701290756229968936647018830717872164830713647062208305699032315918624349128268716190138228464558854110880144424817319901050456710684507350968438638180709794998344495712576256752132420457526066792418121567412753368241887921553787566698046616492328938766972652492891492740276795398156393040379456355968781301291783269614489302758428557247094377332938700147449147644430544865039659837805458449537747420704733195262006983257425164716376807370325152090956597293643082120488507210823013709573890994161247694949730819398038048809866621594302150920077154431919187914823859005859295599761747239197162794225401865445330852283017109347483296803415755012546744474906815274263705050679553207362625619936518951978163762534607911620070021611867263009673090181799944580110209684976207680581662297904625925547691131749154756320152486118936218347766497997939974154733275546694935673708693351941698359635757993425727033409825956720220285324505007256815125256304739695726644347522713246999373547570906908885028787593104070379365184779061737378469783084842967606418517985079526182644173229930843570077656913627329833304833105885752128644451246218142676063393517972399707531149595092839501597009738052395924681158465772710260750966355229691093370476530396289530878643048827028767923784468312068139499196736699344287651889235579639714886008174990555194318300028642387495943531923912692823785880366865709187833647499309193477601912014765090351642753033329213732391820808451604886401977192369157749170334958569866201842783854346543707107464856237302172183994952661720594303813548120057624952877983737501474255977410457234976961647900661192597584502029289645323330165441746847216501177277506967628930197154793303678881249857474764536746298535279187945937579039102442334851422775519084477202559250605161492789105170059596829712737201391172833725746093002237813797552583190109210639045028359444975357815824299422435126325644166077926602225312422000772080590928004786935818968341647427583763572206148054799858787342657275676553843609541032663258864764446908901604468128483676868914889397396628610994923161439866232165990261664398149801700665261555898588229075852642497446438475948167319014615197952665465605338428199361518123420493093726730041490926828043174403327195181091451281956655115982194847502263462843908282547287850951546632527148549552442676415722996261433964510069269608954051122601531293575373949493943863759655510472452071146527757199077054491233091531336173006702860621590558382285827100287366789137826369455245674271967277377674412076302405215563641788087355251778306284728200113031413782022315684567909172667120212567144333391743167807721176094245498397606687029647448254157984178239632535322861932571713611703783833111233270787912505694572174557197391187895019535225808971723221516219630456410983347401251304564422036659915611760231221203005483520244676618734494356640494544385112570988036617555227663213673555611521384760560344923203831694868061125021072576106757751750480620064045254330372306494756272727043860497890029861290168445646993436555190143277484676386903536607229567398013375734439555599582436662976665044605613421430738384287132822390413124026280499637947017214548445550924121637759831164227148675349086394264477516707724769836222980046078752043970667664588171367983578426920913291581018185238643093037988833069106647274834790673738476884792688222161397747595409453151601898024375734696833007289258537161291786841789236712694990599024368592588144291024857982744632003497222284675037218045413365201641131465148491726250747489098367352295793621160893809096691449567978094670247684839494699046769208247950679411193447885720278537710435913448777558086278695989116672588040932800216740508819242596980618157739741064719388662874302349556984672335917647716877228261445469979764367677261580706971741225837185835935602631400947127940191283628566302572491712931907570020385605633907952749818779231976654410101856091470982302493997485575463888921167804364167955142796905962501963660390528468335186803972714167080818694678027786939774043573589482256680469130598058673852170496931362352833417987428384819005555517038264557039998041725726750501110848614682417168447404698290740934322322846718104728097571558055324942880167042080915538017683705531731324992248253680033471981109412550144459363321863584254947224116194757396308766504025201373572712709668585091838333534352192825850737485426318123574904123350524216255701805702010339166411269254238528351349643465849267382437342769811975335275572548643905690227533595557119822833103980106485348698487959953388689508103062004834014590399703424365646104033731499989102381785365290853212337567525312778440032587720116351232372424684434224817844472070607309259183521940273061091532827106893099638900517270368009561976481432126047724947715753175412741045207464746778486046976243721536471346996958176133648425102312033078968259259718051464143909616232834357499298382403587315286696237126165358011231680131199350224280703280755666653077044091737525872542487134175225982177841189639005949978600463376973880245301670729575310165561392204644927861592980943205688048408403532401171290743859256172836678659529443396756821715331351530964030837744929355525413551802387866323322886336677665845894342931940528273111237405556357896667742987726707260367929710379439873129581492898892300128339256221762010630137017888572094406082885342511706939012849852108789721473948285239317238201253016361767956722852981670396854135179658240078228713528526493520631225140704771694070049548936663608358763040547009967351202975693260333253056622213300651253285963859059183491651211123771166301024123582657934153009335113521225100852201001113406954221582880577666785171779806356583719162968346767760084045553065885925747995101823085685405670287573478105547269071257704771762055285018598009376181907949790841017137378339475234174860130789668869792986592649441933074333366003785189186376176606560495810750435966307006546961386065050151187396981337689004031816723034571833024368305530847901963386646163877072445751184896382298212201234667913093472872361229820185722572961373201795467094748969281634556251628498261253205620720550317686484327124685747291804407319778529977078697441367445734768405673956007210010572392720310327612347152086296269712664127769352062676500066860162507362130772852949865053102840561786605723215216643522770928073112424041874779999784598586841524177401212346709640234040632603997039940825425313220178556229524567888599544118461682652095684664249978721908145738134317080016478994954902987284032306043347741887398305534692207778254475623596098909297215634691148831794416367094940068020742965373110192816548617054560774749652422259126810743729267384775335298495937253186928750657084274642928567788747693460126182412948685103497671191320749985499803226642741257394102429289821459286065553773067474694971366217982487474713887108912190124591665102798780489759185769856876533243527847221899109731890310842318140719811183843820162672021328621534354799185065507005308325030453936128512782258319490633578571616892120358624380354680582744708592527671704304958731127112110476880500844212752679549800488878556760075005681674882492523951336962824731211244227597521922065205226106269268728043473704519880728637247779950977101024841034665014939934679663815094778106839435228549418334868217368922529819215483532522650910869436591261306421323762279578714488772524450829168796338355829409607072747681152091011016527669602250161903309473502931732714171522236228670589272077378798752774364712351859680041458369887145350728152853364341391913945239372135260678859661134592202070409784148546034337346590375034014921810596609788896531797991129480339585767423731249869109818756663593513867491874989660969789612435914692603680652368670727650722992619836622029977370657167603508976444434857129900014333637456317948467837613180343718773195477204648909182475267120455668537228331282895588566780552492185387062587410208985970776965248846072554643932645106668980456141210779646507705888404893241509773586567135619037110530711504814667763054501922156166873200884690225881383604967066593382211444416238481374812401391292813862691588529954818535595990556262372762364692883742973301265261048846371584279707700724664503909834180475271498784354618661102516975491775689900044347561961007605081085525526740646902328066739010346572765006059713629979751044300638757952478911437496917561793404762727935674555170920881414391332467042334227851260867634921886656119666523808983384923846984052055919342230408753956954021812992817801977452811540134714359144851687057448300386552761493005592994289503914082052237473611040095630240584208441335942982999966123839758981858061636921509327304189430980668993862846444918344479302428722657154903788929512583385154101824523485241934158005633164723525797284817046293156982351710864623352628630339655349381079808103963130011356356226062328384525943621582813345728165632351623858437478610125060843459857975653281302289042453103496738953142232947273372119734006813278757729987097076480952258274477738419270210424325601091420793752261450518052964075018477592774703347329370527330465131047696594110805618980542104160857375323788400896410959526837412889912817708222469191166827869308039956827249237024958262787747149488045978461688654144835526674999872619744703526413641629884815804673324703635395570360748327545865279399891774324198495311449563425350031800901840290728215754237974819348845521344655137892271900483196418547390866703359091686920754541551036805535323005563903493055692559634337702602792250971612232492274418405650894151219737242560975940128666750642246834972197180158753880354560230987572940355833385180645230462519581502987334868491954233380690602306516034060238468808241022835709351616970821785121724988775495351354692441332070087752851112388142577913902160337061921401390484373869956062351820866140985662781358069627567337565601451603626480262746684414605818827824036109861021368367254847436910310799195694187564578673071748252811631461876754524939279693502519944041498589677720782425501021999383839115117057368852957571868528133004615059197927123769944109757699793737866268189291499185308117524772961528900210855102258442166660989472950547120700027870729671149794815049456795218797761776513133755047922789298499767940838800416735378802741392942277336560001372436627479553166824039676120060958434309295542781311819354079783061529561280352354619088716957691380267651459758473371345567018655044731413723224241928397101591067211348802040525058979761059938780496132945952311226827149231302577549724042452762853401482478193575131831015169826546543446540804483439690436677955610471680393769222592624041076626984847535395767725215346038423980123755496847570161018008932768655754647622402959011302567774589483336364269857530022128933044869831413484605411892658699481989903147755334304426512273738712178494614390282184979521333194834063088525672579110324840797944674499682320604003642903260891149296209352851291597172954406594264369453481936997222227192054475468398542961523040125563648873085564595132120579155818248679091992393329379174761894465742645955496458773021684644178369976947573475387309588104766640290039588178515310491557010344845003310540492235481356017606082155256693996365433283054254193794999264657806497394357487482806672531516937978746374862153438426347746469760335280512013229378420227923116540601766267312580881697508225607620457533255985585472875049905470834582324556199395744669715768301322220280334555087810852274116626302289389142620057945005808576403992068366422621725596090276900124710889177163006485460960930092572550167579022579884773000823508406357025470751029259500446468972197501009380479414318232537811942173898678264508178333033413254572619808677077020411455854531497432902851044241630951474636944076309463576134155234416562607982773207014693614289697889214924296569995793293664144216373278085437880471616514106640057120737826683002438395661314259647036094989657158764094112488742074412892467694144173403885981462228325770436221373073074979919668313160763809760711646786093133151847156027723903283575482008685288431963876109770215231103055088943738483682006014619735462293655199964936603058187101450253389878313864529655300242204637483999844550167168726222882566623150930638169774076003999094213371055162450242950926572716112466869649789462992765337201896337031945869931023578950928686821152665561651207880591674869605900873327921255443272895295674904355536835410227874404289037397095665547275826021886713237539201603593465797233909837956225967955441146260670974700712049460722542515981361866078157774758725193295694339998168857048558018680186861674580681714770045097210410122506084093118109046113359711371626650165803957930533002267834767805727554254624380409934223068779533305960072047595849901412575202138633216726823608254354324474931761785909202325195694022255190419689959415202371873577711069329967663247769195152588987217032952370478162266040867490982691032752680012185764460994189078919104791974456891542079521179304413646798575436549008336936728553466571555359563592530103988428125202828842854415843805972696038751634862082088934795661698733531279250275572782956178050154423873405866609021178813538181972718859234615878139674696680170753230172063643330885142110268424151586964446910117492521872293419397324322491902833323598141024422179208952359683533630307235183383274847038209243638011506015246743587505595828578798526500040414922629270774800351084931048247167921528336475526682575033865073392567496205373604202155830646457084845104586187639254330433697448161877729695449961395283660624887544420682968213836791744469983248246393454683785534705434347584102178126102906391763619163545511438426044563370646614540551521935612043128446285793082401371410363593491985106561673051381935598685554939086772525659571849492236904170716910808790016590340279919563569446699498959920512983447901345969460991007028807409533620047423651093300181541364783238433942194103620942054407878205616266130582249409725538256088137204340089693433887026197256141397881289777190592166556762355862675390763321875979459493702342247081007678415014244296315996590493526579835637129589991193820936368300933570648866595836274857425230760938854956830020645128239736164117279529760532488929335738487206288156881681186740511551700226915373103382577478384173463591231385629204046796378893223843444703136230501830014912022924806330288202720673616890255573573102214603775902584312827619775554705718735814185784629915629514190718415160399561793482361231761727262702319539237247760419166926860202295910242394800945861737763516819928344681524946697995516815228510756695516417821784989137528513798573386798521272344828646862942847690567757624980868683208025258491842531900972565945019249891343968301296148847271239812355575042823091770931936684027254102533470200988538225991677618616906401838374725482175608817189998824873435877543459075500869067731657106679980340332737729944118518704700531056916849437882977514092305116181889603880905109821028247977056037362942532421799674974461394008367971429546686974217956002607325477991670573332173314476437845412731276964467751058973358703764421019060776238728016608398515530668546525919558805490320525276210503031036099918004612922598557920680501315055568645821517149422858581430346312668749980379323892705657320493959760114553794387484826727575583939423552581310879779769519645800633535054483664972928715620098509322576209534910720714840014791745404497504149437601842904464190840760264670122721227504889164498703343497097925341445721684733546863621473530786572866021005959544490155772154777677052077496317892507133468275643685749259935563864693634904713189250550435779591740181591538312975502668942886060524437372496937516416930283765457876276415359427487998253522093512118665931377052826863483802792909691159810819745602154601866968545663642367916509634553981083823462799035106022835468039500981119468380345354793515545504156254366845316261828428752594891921153327815952028926447341090418846909194407859830312897863832842993096428507861842762497313494193620407720998129997767568706218719877639448550517289297040611031301750760086698815178423410396902265319962450714818218580475807731785172828870258530086741676145274306097220772502817064278530003085957964037277595312164312351257925911181817295804053065160023094740231469664771744199230924514092577472355113761602556470368624425306247832108586742108858875259283998178084925464998492903357262493356231196729445847562267333810470121095297415514726387572908701903450421403832427312694942359392626956287044266488436435406981325296722239247890618906252135496591109675584858782840020186016127852919551272823979751917504623648891726001985441080032115108768850225286876842479363540827924624928786471697093521789513054944137914858250870311691187882075613373197915362718300043326622184658149421050063953731524713388428928846508774387892738486369146450885136413709145069859777900606806832701046875465199453926126780183868797200706066909790570500150321653434907080325741614005619059955663164937248347213024544938668994849591469475975921042291910021998076365807716285150787979059393636931314520966972704921315171428057734502390279488134961047896730724737973536587660185751905553056812229494332480375325209010829635661886822366101286745219192966612897563046860797452851989622536056065095847048587604604579934592086678931241515987658071000376781364326251000636900120267315461130116459676579888000876722587698242677406902575029626734885368242609698952732876060789961664574292276427480684663526402810558188872861811546673129802301208380257688097965322963098721478444285465926329032235733721143179705708323439510072473523986625739181685043468988511414628017150289664191169766351819871528649184993086773052639714248874516910828616555834727270202477401280475575557241083628383197347279121798186194790792882308125975165180102664362259450818949210366757524285519553856242381445952504260961015443831727243213395246147006155321180405705959605486743143650893184617747162012126524509857394996503629779519144553523095194410950143832591570415424947343370026077639197903012321965796969488328239275428584315112712095588899864708086450645552718283322851594545355101014351347209397587950326586914788457244688578501081108682079249787114936955809591530210499544199967881362060087805342906469602909021109003875621563648752222061662983259861759168763158876659667712728649048335403425027892008037164989569149256284115060389902598838379494759079529047487140551924309488750488778635494454197163476406718568292452902197059989945625650340844220110139544058972861311781471921112602729497305627563716821194788239602955499218825051333777680936617465983060241025606071109210657286504700813976749499436882909901273757886817838704761617550188048507335062583243134165549543743542158012353717521508165368621795939912243258424060768081021616000747244464708037744673812211573573324924341064459331600971890875207606363443411475513112838581168787581903775193159596817419199909583193430474004696708082823230111959352967256038402130727942848264106463299199107130793658430922499464957829135364451965225939073501344299872430960834863135699717770484336223787492112315867008037274682979656120184816988166708172583993498068673395774103424078723527784521492383095581019585118468101768756135059645155131954600395075237970940258253789643470239398086293990326179069555578512020453182080132881302627460365363105343646161124973804569816593004391605177772994602979694537938266957030003518501363938523522811788683532193230017065911737641483553045688163711540490244114054449035572351485299857257022970951484608916054083163565569458835160314654632174307038096407714366185481483295508004441433056322383649471742908585220052916611872610566942939047130885190143027237141969064480096724856133571727540222550655210187510995520643674207974721007647322065494511064597212627650437487506600118107998998998228161209403083371985303866428479544618337406314537683687363856810609744182832926976489776610483678200914563890189713136294191366193067941417198249916654879806911217243063364311295064097538016488365643466482151552151782159958282229584968659367040261677566271069640370225871279297311816998341907427761202349527697771768364771581319734743186239564275683593024551446937026897237437658484113170109752029289690266278216388824728014702906408408268183449636485337237655709477766258688306708933286745133117422815142224063698663422411033826765074997840913611681174008622354365200988592290887511912824619634784360159976646026070916898272878915323715179630622907711359848981906528922215603746806588146546307941154829204285410245073904118995930500325953179080963709404143358450965348124965176879794106711019181583045603203435239097063452080162083223042273477139869600672958601804878593784501039607517333883722556361236692272814447620388660106850100224594171901592331179876892488171354105844568603864984379757605385469610533733068200194906639662575090360615009248409662619848783947159797757518622557944073575967855189486659498197792017114981578337372815646164760426016607902633830602328742455628720971322013932159166127121121526894062812452035250874685503636359621053123488384973967821542053111677527902107997227319010098973097809745393560571916836820895106869862695033379241937902671037382701296727270113893769295976421672847878301004492050806368325321021821776822268402504115657540070529433216642101129897869331861470489075012056569129854637899459928868076124195041837855054400793525946270687486457609514743464371556194181837856886160155407211491922564324464368133948809116347792764504183756077296794132302337590275175781117753167669408105489702460717588283827144413782622373596151921172920509003302024058633109434237276777492821836251181395625702057973689929510156545276679698041351333474929928617424389750040966489027783250031128105928906456056168126038537081778440347291928071218524201911110960515055411900708564530716046994563669332251247941576806729633771378669827224099819284633096775695364697604688150611579249306028673812655992240519661359446468718312244402297982061354831439025691537480339959499271456804591128741231745410521708950261590150332878142550952909460907428671397552910101855934898202878361477678647273008924240284119775686520964589383103762616140154943909998571947085412727668799585294530594550211564059592538521651243717676548261853615511182694843175018691814751515525544656123915953998985387368116307329681367967192559083830290982040538135244077074447212721957744527152547093661083589030605412644194079846237203264643678800690765046471179618282427393069533753675495616971426532106852559457855717678116100269959229805934622604038029802036808042533651745857908813323379724370255058231987825885117971464953516974151774507845527748222820397130044482809378579941792914271122026132582223668733733815025565983428876151287154068559240101707772957079609498417810967229616015682931292328774746156648759269139005353426140437734623706603043611679675584855421967173918177504608521788924990620669286223977781670463073082757070400612039273843364577452801830234901126930906152533703797022845259543352754515059908909489865921029065553261151138752273909808600457019033432617392092414457839482533633091690530112555646326831349793223643965373300892301343708063572657018682580081932664933263385621869251886871488651241280339970111503897817136582715381344808491166801125846635780968419766566570617819246384863688123324974700318003401972854529688738104914167729999634683811338293815293918798716008488305024912162909047040147168647417087882882057872620914768186078262921008681621755588098167762855484003312817408257294586884354276576754766249169645278421178995109957050866811094184226679832803995832931188534824031480995998239798258854416804873436466378242525135621414352185584661348428678572007447457187554930989269999533783228467626510576342865866669360566119294621156916716384591524166613736788388975761574525339888419561457223526222881346185082612672625806138971715356372481484112039782310760306256214690630941350069518837358977107931347820236916885811717534348399635278251177931258043905142980670990458611672852402821756723727913894342457141996032560090660184087436760138419054704441600191953999457417365393104639454943044464009792259170925545600286662861545658741508704727062919983518216647212787047553739284438847480628014214143207299440496847635883243926969656331272275482201416146139444385882052222785885560185511637919333573534760891554102527014390000512991398370471279124517676583830858186299566865324261864312797155123625902898610915731965276687843995752723778608975225328862903546925839054588350756992218905739136497629373724134257221012158769309509823607492889552804847644348494019998729230235580323358581240450036339557522108548926530466919063504703674754857832029665908543161400087602620843415663427420153125633625915864033437870683510458513066645752532523021198307524520291080344798751479924867979451306247781110973199364889428731135912996733130166951312996758129404711954875019183260998030304045820149203948870420072027710880926994423696979021458672790419370972690471939586180568196374850105581939489550552362824741712073663318131298359419178487903594173033374306184628770413687193834714692392779499784298986735550459057211572156717483322634294839959199551944582278657877936906383462906950010276905356619515420522726605136844275877591313176762647986598877575151631908094715631144373759384141795764717131566185346539008275526397726666312953077237190328579916040276336948958830715186230203032336512642285714403237793041645936484492760567493220144582780494244464651962131619151241599327624048025940350750692465482756023698151099931680762993218475763883217024531812813004016863123000879515371572562835941395961274739693249412012148353499925639019269455860358177135316680965443930722899132028099666611442026461718829645998961760186833842264635256609786261296518253562679985315720493199510898601936754993496457576602862915723179179525129711086136120106184124281511884969881538603346511480956992213884868265239901347805559778713047542174828256466975325082021628981116082531772788769034850567182414140809451566910843153153845597212693901891495990431028009776340870365096226608490205304314038357356390234457889088692574499457699710771377198725858028015760859486250798838799798796783635377855892402125671815616443309902132478107914030237726351728975776009846450537651429387820836335323983564651204864956099908628481948529235312175063497881064463072150720755544170178667024262541499709765492949093916508586253348559829011242574084493151731144718943209515225162015670012718983887143057935207081471262963812320917385502523103312686316204089564878118087509967249732639863094398863849038565803192851751817717447447842787219365866465991956066162140862058111882089011038842091648189778474214017559379044873005724448089734808864980971428833282741822418657876832057036833798953140756152304878290117128649901857475770269294056145265709245737712244865967625930293310489425568737850595366110724891907673400620648317490937557680140053635532419879032472458443624608832317016139456413641148532733286526039852024188661442374967885162266353533602895488661303397571382883102670522439995256580293675809326303663271737070778710570854227357829861725078721302751730997387395363981646032652524861280045351156450066157768980277466966521851705445260769655331320739506713118405281025552295832219765747199279422370363722683329680080580628433084373580885743358711541337173676266520285515070899162153559897282163084912696605861300562658195052561616273805069285252892469102590867819103761779022337136226928471118527398145915373201692604688394793485527390213441404957941593852497181659587348865043393256615688160266250477491985229873697332730843801299194425871174876083878423827035167891550411010989671504510792342606622148680355202767979505807978462523676225618979023306147730323758759788760542378203374445836470090239318228524058406337890254719972589806931327332335365637268292428385675757388869836743186471438456629491008959593065560332207238559362393695410068136168332167711382344565330851761324091668683588687718577621155298041222737027771983133826812378104399055782982184300485582107180686482730806195634647881209947298218330177979883058352875796045293367965911707206081806551138107121715305703714021536774470153792348484986456411304308308091705705426833664543679702771268860849726086090360213759624175761185804743132125021844579623236191664826317118783807738273871455318844636283109102003930347674834377688597905101175672870641964078562319794431309553735991236768223469610171026588481465086756281098966709569673390908747632828005579298571532990178810488920493658206870030043869399770899475473141686294052204951152338458842031956071377025560404263659363285637651695988876018204468423360120811343350689432353863436320571185181650303554864576628416383799053012542234143102638959141839566180925891228174851073002621022791111810952510956180806161621460578733556265057809342573030805534180392578990906200242672042013485760299613051514853750342785309929697648896984190604140811148685494065188140641266637031108365102374486151182970553912900693426244461346253671105083711365273082061892618881269882766818842724067685186705834022371094082252913208880083650254525093125119975020891993032781958737137396442672457012208390732356342336745863582233623502683014304794192136597679387641609359011649630859899827677691201575225089485854499434723840586376536676660192793088561592650285507754039200680499173488062846410748865817093186725473400207400597115307392200825799584390764717278900217357438218802802851949667537608203579146271741379374881728603355665349578153308532415745722673192848001053680345799179845678315911517316212849237487357455492382975619386769688309881010496590188171877085058309925117448478747008618237144567248519461186720566535081783534124121922432667352128373838119303854512247576959799954206358166709560279016116850028407589346461346317802281638576029307361540237390940433830171310357217442623968685425328961045877940541959823357324441438392049252101311463538361361630292768615447043687518743693064043062208971859964505773994338637874011883936689469607294238091826879518889123422746280858359501246621876578867875534306545791215192622260397184608777810339908699690813976906088181607947126122701208508127972875719489016211302551888670256340154933836376102209873455326900044367832396308673738714201723695805361740983490241501852127773898072049549521349320713909250091250597974325799987379006107782735407087553258695650804215690799732462542481143268080077607751846915223998711463696936817272232845345679295111412244843073279651458472102924806694051965622725363281879040194153909596040915933008241676905680082646043771220750740489960842580014199050192717160541399541194664191873827259057752080392149872604160898654687802797544184203161043481533238219932172865042069067824537559570891841427410394060942378611358992253836995456725513673666086295206323813267066004824705578048310419910533312323558605001217112367110909205318773730853163728514656048738802495996876122406717593088202062310038154663599733104231905179818150418142812858582950091353454193941812100936029522838717795010619971476115113687109155870305666469768145825748596040383575506071386396344300882901695104097528086540754852147190548532668124321175340207149771213293017407074493326315338296620238009757634623237508308081729789908834801313046649651127498586344606348267828432850470551224259874682465814354919380115071071581636081171031238679603826541935422161424064990483505448709615525716906516714638010649268894649867567526085145415661287944345061798828683709476175636944511114365505935583741875032268371344385646168349415982510753908875551813948330691767461660466481050906757121208357879875569047414925738609622805572821305542426204511099464877715868070874658288922143714100290512080557835794229773276912633696130137238035171895738900760131651635535464212841273249430089498860059827445290791950875202454631046545383489554941681033739749012252926396474013303602962801086699477636030784660220942247279451103920563147186524918669902133679004859639433358406222609206404915848687006646022178146236626020121113006797574323765521962657988978364341326695607378599540011763375364087301678803825501334031946755501490205575335781710935451853215843069995765558454873399480514454659777010273032068811404917801811999705243322401694682004063062828712341442912312920292313158753879115538552688338284192831478354876242337626335197886796571252185974244662252875233403888775995820859959927146374235030426738199368423548863273547172839650400567812279405801959671271329508529218131590509392130095295808258684189327971843186658995025507002820064417693190384786466014661960463718308536247322488268044451144547893021022014860656238412902105497921942981328359745086834331084153626897244348045989339896496219542823701015657154071643693942339799549655383487253607195248349033876521644634425106179094359604422587132791860531811020250325418193888651037392236207063854561489664876567935112015963453634737570291515338948132168846166422923347663446253066728319574022397806823519231965783082222603101108360746157245090741284116535766826132493433250329930582261013990561930891626841644976843508682332431846867927112270692708256815102029341136571562981957157827221858498253884921592956939162619644222046163779849444329926244635184427692844253326822153212483144379508543495824043733348813305699826230660683079028031722469568319420540568419526105472527162772822259663127384382691952718291401330545553275739600920180548014603139025184496274374707163449941524203660084228264653247524264347327721062954316402952678605570816189275571149683324642266506349780509689360837428217078101759069339626038869677307981409591265482741070609901522390044293585975402764890163681167478944670663313963652283530120072616118603167198734139968169136629776839465135819788347018697422932423288619344193847868430547173793047085242413179943170089618122727948958236561993550897724409013510484854626716677347902388738981973591463879830041257956651006838580394436259435323556748266283646761384330591799111402584857145760963201589706828772344826463118792419791945306871347563949957100228376005025406190030717166149638208154636927146609371933643532279030419484548628755067244928878235014349442608638941728557737177161244584147602965419255588662961027229854505682895652527554243861816086698544872807290905888958173513006795236054446111536164353274154114471998212416627412058852599152602316615237246213546822103499693994973046760399729017876877979560770233904666351980794266255548988180169903539026869421914895782831068408198748942325094672325552626127814325818975995420693259473886662891304078411495510585816674972825552571049127493424809623570464423184362365020929583973161687420631762834426552700966531604599248508685776826902616058668228586326646559214459403549919843928698675642786090000369423869076810030290167219692424641647758568237275713286246628086980339222734198800299397516366830650370187734222384528154863620762262586192739433796316655076835112858773595501909354350984688290493102996487440231932516546503634260242626149420539078988230746984319757368192375511074703700574293194455018240129467324528983503541468511386790494740012146841194925562656903485938043063211278820618298958559285866447635376685400016680891392817858521705638041950831465284504253734971279028300620013246245953937268092019006807518266095570013340220757207991974248337682105711030590752350087055445176628497306708289773598677753872775269024046075012646539407025919192687568074228221596053811226196749111197955809955151565521822139367170834502839308421969941453443717565104716278239496349601786514131875471908734380120896469369466182337091770226081406775703522429269924293627270042637842307869129066873998109141098831804921374109864509891391224158022985509424471488735469688361619933722113395641489445414600087971368912044076735763312376610521976875549505365913862098959629125179210760566649959301711653897894145963641131801875312107202911863290002161745399639761529150891208596306139969191281509424369403265052056439124393810392152235163981649935474510432344871446324815496862139481672527423160339270419573154031152122309188446820551388303992564275984662765096863434974101688969283900193891729968040290918246506922578471341501905698659946263340223249851024063764866680016442918778687271663327870131670168167837911310775497677688986657926938137382232325056193663135383125603222796360207436236458662256293841166528567704397775575363771412566417710495055760300689253057909843039990839158239805943655019487368407982749553702763097335118790989416438063625835448404675790241080621951488871502221187309402587208249594701591414421924338462964629326346646137266064134660162226123221798678495042512847253931313730884297564921337360926352261875709053266240808301684258264881591677805723526886753841112894544583327946718344376889159137080891096868171720707341847632611797723948475485897845033364644483971408511459380292066017415808531841734350295103640071327859012785715180641318068575858857785440742287332631946835022965891625443772376549230452319349374360778238688524715698076594325688903948322989783787199603493985318924864067483101645255998028465608129966918203222152492974536810630985689063856880590553531504975326209622613642219997529231334239398333935405582877781874054485859693817793844614678197543234603109176543446917421142654114273124015761393816594890143554041109817997640978489707599520675393569573453792826858758942687399712580666454010417461591082679456451755281001647529042869154267570241418080908654059825037192971056929108395028131202422415402293107806569465208492390046691545840658717597586150234496282755207240029960765842517749764879317396519006390389873732044235472866036553038507189878697686781345511783581191463340755935123502870325220742176880093713923072223749113867222860043892230510433163600445785160249838537668845860573387116834080121932070853118739680996810321196332182974717302568041296905258150606554021624863282615772566703157826141250624385029702322871758833205321442552848168153357294321690859336698256835238824784312826350653241158650945787153399782039830569338114869600664959688394457381927714430682072988048825781577561066780717018381644891731078540053366761322949570108666444831622202650418036103822560656015410494395758850556270646111759478120106493434798267242990128924210486001248364043797147006383814598495254921720290760014552746070369752306075408395725752187472755050927792212470242002495398364973195453307593923890732638955928684571135020840575018662443379127628443790006627357152825965166952942009018187294551580557455137769516252054221011341928113688570351398704695729624539891543225628081056944371025295391662273147587279700703423746175214661561317170965100590200328214104271491642385651253314897557212760481402324414159971952687613496382000788162632282924828402925733236776650307829081248147062180050600673611485333774128971707259025325482463119831986185273736340870019790271714271861927217143702574670933893138748564888691640760014930723963560783097398803793566612166494720901766810506854344092144637360086576926693199165380488147436889905219862702305087433630645460113357868494565650072111790361855118043331028213839168284639840807857045011336527834703602204691208609406192479476801973779066816665761521791668579495360775371985419548839771597730188013374946852821306336891924728197353377071833778153035102023280472683725083516641010203028907170112372453909577941368419429447783507911205493675757730237720080056850573155158348392485125767565901198722783353531537498998512136959796600660432198766440837970254291383263210348754359016335810881120377431390340441260424943652632894644702171849898070222000753705366866021701269474169249359278410379377707944720443045469016806998193901713226976084367689319027478551285996667878495496532041869636007047370607276253705070578020044854189247814177917678275624431318469632100905893234775188931596809834340302397978419172190643652060024072897237191575210157422908421629385342592341227716371190468005544017709598072570338136128099043077521989770552021821304114595471363893470376805298262706851782460375213433814544128382399881104643783587797589264087466271662119534077783974773072163458549073298664625945333820251980325852255985298184913966783940992924282086545061393420329451524177153609051026823016217601997107825617026156578168688984322839921520769800382512464760089400104217069295109648921336420795351007934418069690124881550686304456241249454874616547921898913145665222976504109247677622159941818748436559033199103760057110166652698258903969466952786176588104991514224334554321047469255039453435295684251178980729459576004381648128014287044361314904162647739580446824596574583156167609417800128302399822821353732833362531052632510921262235870704510449355325175927233774618279863383422738924917326753399738725608557681822767437984914862765801977836011267688385994520839578780802585792990551980657592786749153010703377657879564867149823613914032805323861764239203185017210081711106671253524166098563794425003832324774302533837110586340669438137494717184398995995933631702882774988996145165831881890535057494284624367384444957067560489195206347019689027910251677115227753349416618793555389039153105710077714906625198110048504340822195862933568105600663100730465707680620708802591812329199590848402939308255159274374075070949412476586505065446948499403887235368803281476472291492787279592292617487654461523654819260271599806373099953084694865671469084640452709499353543172855608064330130325697111233586539521524754170583844688793776978251457488509911710517693070995244208304001250935816448700287732530545768797806788764442457303354293357319735567688619542571554037895042950147973842239553731213254946395508984342471818089878531016869933021593676525757237511162867040538883242711775822760043259784490414497395660090999768230138205494038810689781550666683023747778367279031846110425376089904234798193358224481511408084213628508836526016833903722439051416658786554065734975115540183174475332289176559029833487030671638291536045239077847140683671239349138652654975487828543701940990524766710096859221387383635287492532893272310477019164077567518453692127787273137151327858277859036419218704866479957762362452941140349820583880197013878032864997967413003043818399672351092535537844328987040277077578372088935421820362247200489945905888443530930459304180254309160949028033505335826165590849631072855055255426953247424004883714296658036542882418875687478671946063637904142055625174325780414912099220789026459335237271476557445172730154408571074912274990734259060462580201168008650212933602536805724027546769670802740150814928814482426003223806698421699126478398337180856856160974710429613232390082034687213830758366513964915210935650501035784037157367001855665099516557905693413200373416174154123849818137521776920668564843987031274332687084023133490032846794440829714530128523226634082095171022715124326195123608835024972760253343367727825269012503554430455563204624258554611233536602734426319280358886354688410311719349757437002114381164300821710782105133220913203826767505590962747277088689261736358157640155718696900394560790961702197676927134507703753095087035464058094196701910232778059965938857501757119055597170344912746379868097231136700917194831257974281081189722427201504480783785157071421732265992559592706436617499455662002964542171646120952847515767529440163392499132329551064056394242613954323159012311905629723632628406062467941783140798475569038885190276313740344811518649386029725189313579236197945832798562358772294245248635461480196338720855555768264814917776018827202194864692398381618821022562048330586908710733241996264226643415290064503221818323187184196939572497184891731021989268738770740112144681035849998251295890603655597573534122848233868320960105729916842107363370674873631520775515356221022896385224670548988063729621602961739370134030064781646154994077370410995135235504395942789540034264556344004990056893858258607115063813930178984272429386616680355409911526442199431372670802556884687432478166890680120289011459656529094138808139654154106104580973324702192023924590259096882215987285656978295722872005559955486813209568421040580672507045942195652121796374275639963119895732247367374548559637627197874515892526717013217792383526157583342370370333640406211836426052358075522401583506568762267906971742024088450763388172247933250385786471427301065177382592886001832775652909306899796531647748907744743330588571092015644968261181916454886681554153162078451037368060603930365775902035797702054870011861107136049736704409927561963288656512560201796910084657914896271649201361443626336157709192723055090763238319407620998652452616791698975704313148406939723167316516816401278278922854092092749406775016952899951417968643516436045778720411311353850545596146889953819774263201365913510637650094572721983906272816866237965499902966178865159560590337597376383871835497994212813128773231386342790046067342854819818294073669365932358943113693256106206459290803578361910392770398887436522680798857084798790616823749352579141260287337951910837317584967795647753947136740097783582865559348387405676161826491106278971354396046883923697640859569244817374999470905572787525074597848218717013887910864729949429915785261073219828268145608397537774268456514770336537049653249189441993621757031034166261016419000550753373508632425877242446876677585799993508383347579821919163800993745715702510760913408584716671263287627725739656021397336815262459988681959962123267721838826456885308376838301507947382854959776541480435823702344295776111681695314611878133417355709460442066907464757586239948904971112143802442822856267288763661580474302021604937870509241738193364797167897358691310472613484449273350319312980027739929472519216851786823987549484375782634820342639132435236742644443778852876045142424615404971236753382653635809061258151215404770062818679980194794395264940414086671013407867492841679514436619466796099372047812526491241488304612605808985180700268176817206659601180409302771588743206657324861577370592974640802579538691629960019197875898754580713328233144769902252144719205311235218406420279210061530284783490207754913669528055996572425239040125219721256075445808505027644551497419569635767037663255165973421884300675536551335257550734606351755380442371928627832980871548474821486428769609985232938253283856643222167535175262179527463991435883343441501594248915061808812384162701907536267847307962335199147643795630872718200355548570132108179075208926570472995576330641875375412076073806040031941712679502507371794515661099477924868127678363281240089400739123524086272328196371825561406464214761853844218171352791361807232347726654988620665718315268625212659304096962447698303608512943997188422339284581453316185691356339729100914510938686581171385961054891452182755034576614689688283708428109822253571394786878077295213802418393802903322481750091237367807151366488455136134948986365873610000622475824043512236363542597813708747358967748941486143642406678776638783270108561060145702551835573350890788951473736081116221547541768657467095237468802294374934360549068518665645542199831709079162533779780432156926264520092524783989635883642823703605197105964967805197475321289744867097247975494415618659265640441978895984485883627851114711511401629513347734096048809920647745507949108952623138091590483555703409266129575374123990364118039960364109419724862701006365818771185102503506200587939176677945716940467195293298272223706417873824965912234652455498127708336335528774704888830740098769820832001097392319428304661291203066920949740835664772606506381786156548831670253162809324143862267652805226211563537980600318925653658810557082686493338411732814893184007111461912404371773888824872038751207942331227882352598122779316840452338053806371524512024152327756217633288195770367749814657609964659321710595203004366461982736229994607372235040664509597375207387275151348244283139167363557514021398418223089516804507227646761821764875202834763449144067958065446039832202928537163429041685809229413957346057407841213877474608572980549634853026043283688798106097702897549581804937107910080786881008432779438291536828048780299060751354165029280029156730024190409478569561631376662467626041126129619637993593451171338930702132391957850639055245917301599455285451452100901501392669292999615968428979899516442838224577714855200369638257803873238570167983930200962353477547528634500633961060059131009885902196475395725638723849008771225585206138856145501854965193991880968331885295387317141242079467206947029906957713123287580633189143867011988748660596054765173905127894697110464549239781979891780800902987496554495959422074745175382077359443075814235296889921916523574879985525890880461782888734197851519745856674155169818759895216014439552753108947138357703423175501452351935695052636639840761197576795559005039132561107953289841997332917509116207973982790027444460614016684002163503291019569303882698684423315158008654504716602875131228116982514251539254750982742798046260989707687859450539274279053531370336482415267535718103537214985779650761018924340248729352060856040143298446683152452988182242845168658154334715725086358797509653583313252040368679123613388130821829072478434156157234313087309965661442256369005852935005885700116192470250651672451097558979013083396054451538433914861746053805225220336075293446862162991847623158473517801970741863047952711385642578738750166366432851704662866260822179800806456584707789333494346443240798644324753876996103333892380902975352376259992534600274846469509413631750831854885124502808701102134386636602680211857262214503547528392935484033433053060460278563618149967102888001683453337647164995344374307181914516648947021641622498916369533532468524525431974675021281534979828481962321466990333900898356303143109571033451887134615505481390457195373974558337964072421235443417570575490897596561730599376671358493774783084996168619457261044892447072001882059027985570418331739467027167507587559947619453945128087748322841085153897471149791090166586215550871141971982343433929545125452938007586424985706828967361249142028834927540762046201347804323671246786234422849098667794492531117341202887239973651380802301757957572122133158630525120763443698712427304901961506526743496029560397163954986520167669000958017506627903569940993190987513516004438499122166015110988331635583111362389474076829188791225369061006701555654454447793145832134299169646621704943362546431308440797854021403039694474277314163281104195191747558724984002708067640772573489294394138488865029263391083757739312722787553681209307042617104303465667697981837555555907461249322657024666913316056074927345692855173680685931233671314060053366425411393648300705869524181571143398944660805472830723235565396506548465121032450871885960087954039171435548273873723938129985398161552927992647462107525459031167345187429829930811418959104005613423562103147254154334914110507327256349668841327149795864259422251239395656704207599161616601414859783784890485889766400608140642871447806068305675776358361021315327077631790949812614070089254562499489592800040529544286621894503431621427040730746554073747318434694125035485119074639598602428406253873684741930996349733076408442334860054393941468696405532579266441722065893955889002572687632695294143880961167092446937253944166459682134831477062290648625439391781877839721897614979344421516789760031008526067638231309582226536585172133622184142450111100277991711552960406180061960738572745282988337979943263537687494128630499710887298842901991740200172674222851409695925474565630459615684449762970064887841082249970806051831457120893731787927247783281442756847252653392202098431401653528532115302464514844782142953954255900304440204371544847174453645704505546595090566579433127704795557075813223266608738620838755229301372848685225639343830424925550826247006479657138921961360886255967122829272801160733332881024115255120899285147917838138134390085390136195316405802889090779391210210517046465898787135690581708761366149483974193484272688024275619365350600003177223678813199253134712484905609715653186671300289026059794706416447410935290061761941425251249218165983582535478601597554143669514986368764154257847059699939205702077769102187803737846926636228961696440209045933325672857395389278173591954400149240574475465883471810547017310362493602649779039575784449675851113259785451339468151464494297654721218728672605184120857589796092931194083328088900595070733153630150063995849073641889205293598349274349095819932510850567957494175493221050415685119618705011898015797891273789739569461860622307498461839775413099865375104676365426128861334436063915355778059849692916959153663863206087593470297101127014674659053801619023138634772440657748426391319288385421285502551880642477543142885782569695438780961371686450329612981516780675868938696201749306138439128962985353355199918963961921893394158885544137572558785783320512985546982774782478560479332946717683420922883354351966560504279496371846236262190450259729787517188576540828678057759797296252783574986624908056326434626266014515705272246294979288235064160777229673818326346088902882527558512864181535326853902707663397307248082258441752952228464058874373614889370385408262611399098201835153027349393581635855317001944907386095103187698366379550375628067621084765520777860146411614524231085761126921582630701340433110142394064096984078505802188121465233858997180572128191592013905482020675426176691665703399715772731599738780854394468071170236120461057247217153846550792974632838565099512167683999363113787661903008493215066086121160543263686051375910312891217762614768488654416895330046942442941049672751659691777498556895869004127192910975848888627524189443717942588503861696043274925809581779123944112589694368199492664952845562678274647200476389126575595427629562499245155761323847077900540941394138784082501722673310309588114277420246974635411316324866515498351461979922138345368024862012112487871267329341922277551018780865303779130540466763404206492061400245358976357953172920590313150027079016072177264030893388318327535970688401631263060911555264988634321299621881011069534015459554294239249991886402541627763110827443235344773130360690657185999606102640580990725767950087900109623233434932616859447917741254303008676041181738359731639330656771715736150275033043392839248642477105124771168121534594892120336813389349438036836454666897004597625718031926665749564345098370378088841596706269744069604463037884503808673463772154570136478517627799183196008824038326830517986979517455957016793952750580078479245935373348995223945691600239791938467381308836743728939190822265770963802794294034983943052872554785544263098089295625141787702700412215878552480834610084876304243835748589204369496304756469772444201412511916310491736738543537261060848797282986437954802016108091377720844294909241492527481242973393340288468746231547560092531821211168725178611418845478104496811884024180668737108467626307074642198073160323360745162417837249051419225488057297138876296166097538748626164514138287307681340711296056016044882614704142609136407912173226110783026786439143172192798648072172858145543159927486630644217414643622515617631452103110118422653328373815939508904904999585264709934325203641745390146971658244706096389229670474618268485802954537596318216628825615870879919520050568780198311909269803160465619737644403430488551967092009253883969681806651924442279899076945190140374882533585533196065668061145217586790655781505625892824779985590537507472225328721683302055287938541697099841628918147425820867071860866409879177264307426139446359932191734224151875390631045948466257763394336176006709245965309425517040958250887064273089203368644746013596986692385862615999241855887574852787900186475580635755131396921331026692766500875623677596254177953821486986976657618655489239237920310765015826354628117999250893036953994633089806571410636074424819889499186833063863900230147034056114910461633113180817441503427707430802489175690272853685991558933992740238482696370034446062376210412908440581314820791892687145331733758914648768958635430689719004524899436875674341821108482031589693756603116630595366388618857204741929623608023093233076120165834474378426189336448672242893119545422220637653250563104303353283549953708253188806831339991339345029024258971673158653192435567841084673167340503037307533867263071081861169516681848116755066533634914768700716893339606962370504821155894734677318341607280935892410497520619558728106224268137135798097841722027929284859935278528958571377855356991128469547844866998106446569195770143488061368916925300291123807393679412047944147776368294684088341012705520564003484620730634830186592640261208301797188563757572336753662956075771330110357089968656357905716020989920839615015075707360201632060730155361784500509573495181871860864418237772784878866683740757203587230454616853072309104855230365995270437151889711736368693259039337693981938949339989801642962097554730757826230184390114048102363311325222806968106910085058224917387457899926182826350902808906874209115390305352350344996773639950609344645966506877017284562163470004978378735508622773545583544505928521120087242378930599454427882855948527396149690457981660074411806645355294893234840835408305876665209528417656767158975922451401051020657381176903088977277933246796436989680767047883450382117700537292441070148871029407810145463451936415680433674716905386588039072433745906014840982037996405798624809040133739661035669282752759405024355841590046465495797955923196408557909866375719282813244164939190118845905433919256809441953711149704169787888927773124232861761005476636682550409373403705796858646727422012156387878327099105004136007778204411240034936159863873111855875427986755099151979749239332298323577398629861190616198839739129945966970170701098500946719932127674138056204744285305895545332620558817995497278565374954680914873454711362714339194739392069342515300400509536841337327873469744844647238933083011586676987097016668744500789947014551172367729329746067254285335663905716204215371142345630334570874106969499318274026638137353846029407350453101132856796801960904287645675651450269332698651175432695709593457309875345340985028914036919354818154347838025843970402300387905175731156936051242455664940946323154768054558871827228835478001877092111802900077036195637604514715058295468432116388741487119642203396008803565228985123293781074864676202141274424827841850562295237037969632278529043624310514582548916644083436363958614703456309135362664209657015511049353536384742108143220927486381497933253027864023779414177616970356772786118919083752994344415409914847125300675433079887742613794793156832778664297222637613810352944144672373931581884465301350125440201206823753729400790453402075563250585761034677180711702581902077307832861147723041078140192160857084330122397952706486444293434227021780295501370451107101696067113269673631959577145317221030089752694084133775110594134183126620329312088140270091012858126101113310531524212102789999912551603205105467814516417362496577415737247399045976931360301044408338635803295761129763981032272049438085263564631318946960996612926752984238350109375582413896820617108838674257202585202297620737812731528199679399872831957156406313666535738730400832136158502579223823879424544696896566553185788365846652170261816293044834066763447446730662282763850411546745723416495639068623631888419027996334361945192275045164031315462285846371931606762568856328454645056692418182387704490829809760296389546376618867529852503993975671666385140267629588383984972808657244136118803709493423692231616680447393671166730199345704365896149778344286430714816940182325635851653637027615950026520793136488126480971738021444267626027440236608770472943002670814775095762040672417995713630028647895730033696399645607353599905778087540047291655866842571116203504048016761202662307962244240694264142391562697529876237323091738022598615507566239694515069425548856169123700695731509597397347735017744013698678845683195461110553940208930896390880846094250693323647964973676103107148808205791089129007917725754283535541087612951273656497284150910773590536007032245903185816112358411819390575121057413519400123948819782936480191115890285179627329830541030731843666431616564047519923645840989527555285453970261350106166062082239558767587931189774644399663143007656565428332387607765450104486223887928871967763636261836418405326396584795853946909575134070572069196726000094023925337124922979315194590207093697316923365153560008997882682216015530522991569281419637711296054493365204573981797282399917718860221599996170948212165638257002983611427545507483326881936567188371373568752568519999527367792114648121676203533818399177396099378362095608683966712822403771240566329105410055904501492467286967373129621611405830336122600100861962360167410217982995440213588847593083157158861878437766950984510131384506227650534079485211207380528853353566195427889500206488426193421629072755416346451300376445885788150016990924733898515873618084773509798019832437154210398365626883224908445664122806841883482193083766686357662652728696139234366610172245273547296736873116421543766644572924391426403030951899437040694057298741323998721421474497109232994750933781909030879765244130604213376594482951529746754629492884809354440576240709230672519735150778358168522117148927283838064584751255662952610490672006748765481941875908192744948046600407278099236587581336181341797150465476566048738755257475781328370272566214034156228378557765449358135746661017019750212290908066089382331861932965001242037777857104917308370520355882069287806850864435497039638967390448884722018585457214272671862573752522800711877207070638067046116261237098588656657963611610717332239542192132509821391694033755174879545636545602880279336217637165689123233027859044537182832009738678561491563125965262497711089707243672768389443209668052834659281639788114862462082241054848385469484172862320018865417966717870819468611355321589889103448676447781523602368862584596830467249739809413121110407452630020606069010709873607369826788311484132213664252087703773391826673699264611666965125750490804718685734404491328599273446556417427065558394700187363982253837990931636284569377101361489369177228443021108103162019110335974717227435190327519856157686314387966033029644960654078100860765764176477332184888573768991516745295614028176944888144565577891365456504722094129794430146832436618495205457260854165613729009269902009621693708741782406610764741023766304828159673841240084358309602167182596288242988265097580266340169756083734906579461941854358765816458491618621094731768972485522268208851045227096893553455098319503210757721379588474465371344937957280053047480340277195418733428129319502587811335746645458355428215758868857561515969556943660513356481315223345665564353175049038355682296761243698096357229731948552177039266117852347900458417783202636876782962614834111470810466092242727202579592309432384573142063562421595034757151865746145453106104073368707388396773841740454334364106147068610558305853389802562417503872934631861797362791184218946394828381643689439771534943138806651910783003510810856534878260724468410041100615691676865621764850428325134240515996079429237494268883765336848738267400647723581424235852823432851810007560262366496434490537495611941287675633357742346454677461130092432231449887186179432232443811830023212389571842019914929816589234363072050009767014341721777092592725786299964552039514150559354269758078511491733685500369094441328653200433010429480707025404339530067886801295633105523436432633922619296886750620579232501900729437872331054524579360628310305459622467717960998495546592767499337270997023397037976631120665927389549758102311668673217406938505252270983738639568578819181339563364700115730482127281687284600806580076034579802623110587859300918003233226114322810998672261607350544141413337791643411644439691445990930436033432291775541630506163342443660631816094307217923105681518281381458127889032348163491708478917707304917170571781356778740411707365807285436396637058347108386719389206613041678664347961119151339869478919900018763513602752040642207268927403498941575812053978942739867467159001144351164133457548971963474713144230086501602303569845649893899382877319786683588485085231016113894358463747831247367295108773580500605705991448981042080304047953760744340142852261293672962880262801043695045307560099341078646731829442789422265252133974177293495078646365244202321474896533941721781109808034372293178250170569155087106873596231555560981948874571189881865490569860438329078182302365019494412428913430572069477036535684124750658037674163431930962315258619663903721463247762666193641752265674265258327021738984715862030613631046597286236566365649489874160818372581366914480469248991064513151503960292868569044606583948585962594999544413315084814721525472006053380833179911166342283786534145854745633614295277845209460103134543263414832881562028309135052401746712298702689588619256606472095956090415510154563228327627395923922321400424811643422361868011857007929806220115709829341646224301349786092568958267337368207914679278970218064930679776351169589628541750667922219212073223952589361320537976981883442170272465068694087344657717664875433856452193705062185711616382466273736766470424133894544786247641068866605485261432272566996771138463577326184803710256658273865519566523767401248222308758868268355212086145256749003403719678970916131013194709312637331584183928020309201954340651952265612995941854202936332213661361946071252137340170659164740750664684321539077732613815656502220422629047198319256785826833417776555899309908074465535472377922415895077767723602261390645148052520805780897569972383137815429100497511786459685408510371178399485905673268695601924526024368772732724958006409808564860797202396345519618320041708287306126471538385768594793619182315498322336782524679429210291351343122821886683456005956701668663875041874099057280075126160265989607169319837221323846414598119588619804057881972247094880419671966351851877442105754870228153635745704525921307563802371795625148677973392239050557828504792321177756619307704080864582724555962566635132915302810619125839363871745083632589044598863092646981469180334204961987074599479374845598086027448920571349726328553559387136386574677297772625852753578098093812326557985360889236587894728673831879209983203176702225094178927576389794263888380166419244531827882531849428473411144194072222679593630557946600085538301247539584431350403250113947746143082967772973867976196617341068496119411474398557196562255471566466949955941542389668399054065012555164350183813058280144452007434410463349331584766098780384725868435563098585470120407339871847835202819847809470788980182642520146161106476659335092157496794452713202654505861153865741064271725455457525068839738974555783698941803389082653902551506389919569880317860092247485794259738306974946408121342836877668099935165940395652688944641148495200127498242206840966173629263412248752902917303506144771012252541515032952525166264542601774708214954800580679916689713069097141970524370080476422934841698009889631889752938049346914564019822990605127618092891538183400989492029467975511687583783049756150092208653280826899620117668809993234208961751557562936126245151267625880320897274073415050968557267155625454981476949152328829900697663477830527716208001678662832706977713329623256806283564745245526331614074477033403800287123718636260626224038807056009495774713437999306453858314420208297264723881516773382851918170727734267395263709456304474520172506607837122356397762185233883031233021125756142219792126640309979008031769329274504657377559100103004620461387204694070932083397376062172249984597697700282252331517152975802974513672881610618756107277136360616731325148728884091312652423721040047712207278915900599723694198840523258489676450802696082290672059597092730856248752751449250432503234759082569645003907727023733515128597208677162986169610520203022861111485766683486336436849707659080486821382262798199606606450954147237135783409702095572597051114708168371369170234803052496023989275954104860395495077308038549582136839209929372395631218352412615701849324227665391301747772916930603009717287580236881474694131736553246032947632450638882357730042469776874979207874792907388791422999331404926743375704011054266418239157954929078447465442794563914542397203850631111247640250612135772882566730964433494573673107384980950753727117379116542693479895802441326569909737086913907839100952671147384511372659455785527520670520590338398534737603587214975614139693231547279113703359019988495214556456180180959011088806749269163109398405774471159809534686532839426084584660397632487431481477505679820481921463669412936815785694971457743256546127949936770119324078356762138911787013289981391016740184460276626886963276530364045901201960862076307874099219208139765264713993013855536085247081340495316069028008357920789415901591745982055403462309249759459117573365530796221932693762438524232765319228183328632850445272370277173687835386259901445109831863101054686553365170001307609479933851814423670013107766773447731848271365910724604878949030126810612483096136980077338303428605018589709053761151314821364510792545937844245972838160548307312355327924025613004938131344722420289231899278254162695934300241636931045375448979154312226357000910733446673555738725390065122381643877235684174348489702711883926189969082094177236053782507881170415390327105719234047530718178775280762127179507102430150996828020961583067097413519875090334073619006659966510552000295167099678596213764951364971936222116124050759551840906515970424425751956773948363339609023799180945117938838066989443359704601889603711890901710724784662422745700830853226253069782763362701415422038873847578849528763566223512230035778730622140203959404432524579509891022109125301206605180152616123053788294864331847555211365191294222871604762615043921503197086398015037161839251796283405805164398248364238307673239654870244377841819384826638397222044526714061743470273588558303555795187498813351131580035219698611711339147803758679719350172351731312719727944811910940923002775159463807498498509430163955162983843895409914190083901105390992437485086781488994659877883969513917031105398873062719550036090654215760941198176092832613767611557342342600491893913643181971737848687487175046813485814629624772387594627688536641625231973361239087664974765268969204239472697688361828481997067537641899439179788464991381412828879109208050095477441800685809537698626555413083253907061666618595813266934135147395248858642151643500081298794416729005272881160071645282048775775092396902547347130167971421827113571629002424494601953496316330125773416636383390702373718932142114485090541136231730245257080488359522115149145972094897965815069390949659348253544440594234421979902258312498127597735809616037471256363981390466259426759425313097982258189501723603869341253611767440779964617200596886570436002243409751075277817784537008226469296058624854629064227922282881978095695674757477684054412097863253768820345061834624901978101188838211130485787798940900321615066984157454413095654633782940235866128645695063685552309588314467628048110208088014049009009000587939382047767365794412152638126714215336583271964323155882486726106025328125441035023391152946385264046931857203420994672442750247847437153406728574811210224756650009599183451519966774518855320778602539961585852291479494100668018557516191256789100820635686002283791776701250991307228408709748947315344849328627489625841446331459208509824464750171843497467727785480328245375160144090038534159421489951172091828452706978897872839573332050068808376536041292559910083787185424650235938110755992985154915680616066401714612560922328486357732400323742384375609213519658643060706151919015333901426328239969484472104956365519641613579507326995396729193286372406634276611068099800753753731113009165378656250459277342253703280273072708607938482617501582863987937133882401093202447063179103029442417059074919249483441321245645957732812147774251465677102119021459900327430057646779025298821277490639159581270813044319684435330498904532178161461051451593458906367174848463934634067152349417531117024916448906103634196192962951363726896691537592739115687499137348184235780056819540223849625661197139820064496199447960788778179871996352535210584954557980112710822240044142189939512200552376648813305744154588633851770692647877379556937337502686443180589413054241188785756274454927278407210928165617486224689171126341314560437958021279804721079034845774426897540064031914188155960185249130658652662605469809596968080400850748970007487502344691830588347015613642935718263524960197468574968837445664161953832357666726594594125299172915115297420380144345140100263503021288051997029883159518013230646910812619560620548809164310150867196148964711673774646900038948635098199329901379405225577646173116447030544656257230015521827074921431278082279855543074760208000201929842763070163849961314462982012274079670486325133396526921420302586425699786058682938601736172328390926197210694369212684969883377152619907491598449911149413617701250784078967197433815384901460519374066364275805764533862895638194921832076520793806234893016256038449397053226245599712969890017041100578358635375286471752626770355142705245746059478808747453989800489641183704996320418670334706616755588603317945235542626525889453730629834765059981512405628647345898092759777837706702351903875584678353654820151020371870365777099648840346164751357855826186613042800523729498560927485885033951222385641510145712826377902655397686415014698625139885743090558355641870507097715623597324819863467757485318196911252646374760045071083966786476025456102813200656188983119383200130285552764118409383748573458815292087930719543166611823650782186751491332313011484870664001326069449580386754332672150512120647111638976217393487026455340629826397453923991582405784379622321953054880228372657509837586098463092903855840841405063410790029288830916143251422997098240208568106990947412197623686545577392245220806048023081065428646658591295380718315320050258772716104542077546852920357371245703640088913437762149685992224337270260198237268716768610690868835064526787105939319264736926537870165824150473603871134191113624015559587908770509200451539696938455061831983816486206109608018913311706298523496454801109087046625601367482522746756342696339345841636442208035967462437834846964322849542313371864601348099279251509714807461082802956937299376061465437039567182899938938663250296191554613233743788302058328457481184103790327952827472832478673836350647061722967778993997347307515038081010601328921497838591359766582228637241364867887506961305766638669250668613409075076363578461790053982211720731020852473021628093447866101378969217447019118137838334348983459580662124658540862917140813667716359563254994959569774039593007530867753963277973080476367146143369181438606226854758485644353417082917246203084470215212672346891672349596106467286214482209195036474070189863646434737565643113473879141452962654369516828915755627594101926218215568583649834878299581898575109103148322525631419137547556506873710578965556888158964533440786384286710807308434030919700084366484809431108334316366516527809045430934251675544448684880705901611937949714104182341535619023416101712700422361386882821896012927498718892873699056211358801939781272390793552250327509028391907003886848186838027516280013382636384732507457674569367243004962887543493478936777774731063714421209430570616493529810758282483509170898559917346690366229337233079098758733451380217250110471771876703486408395850307308526937137599060808639411808124710406920598173722433373716746803495569508226197825451981962053690670952741809148960108817148692857653209532489026232764887935389706710689847151674958982207830314497425828095279123942366887037359015972392543239098963522034566470244321878780656600762196299713671176277917851316145533665400641829049706335196015442208076454623046546682790462091931100231973929260851531519909642743764951136714607350060713974591086512969174624308694389938672759617380016812121727524416577662455415993101456924622871454947571401638780184525049788935811790140941481559921620842438223169357727263078332392931281836648376090590194302245882943156771830653551594678382330463076202926609225347966451840145510254566007773013337683922438793951352970888697177366664923104898777808509551107254400538082256397104202178218366466903604453304319818885694298779721496994721560918566648968212626570567613245245558685939793314433446026595114793953784614768046427182304233192759830567002396056227764026000202851314755204859896114979374241058490879465434677688304537137999426645836603965629878960497427954523783904542795568805686147478319631773431774642038066232314256940140847414368131484675316287921587856584394974815402130525518560871124855528787294839995316039313501437713310785377207451095082111685169613188509163052670610776669005686356256390606123512837321191783077285911555224208066892330970526049483031400788116163514982662254442741299001554477058661522611308257273306830373508719727769339163005194914141175611533962398931971246482976818858983593240121064803311873520908885579890500232580528363085857378297288616041295825648777305947211088027236994109355453371790505475907796325204772438261742829783905706474616059636621590500578051108253420324108383306216063638801570639129888616066411666945449374414195898220573620210544353230789344370906211644611676694334175937615434562447642538133519068659124659680055699483844062723870439819581137029190899801591523066790215438344791064161707672001281158426709979963777605958609214014716865812133533333406276723248484311206566253099016796678536742903189854929294550894763668210118087381753637424800022877970193269939285619160704743117391507850308733958819850855062024444290733827438125303271563431996638140520287119147828826071093160592444276600746253988264478927562190602563929165434546556616390397684814192581569218068701903447754138366677528430481627019285771848090902958425920637853144676514856204904780737924665419049898887367582521324616150578522709596253440812050602154624185618160663422320821168534832811895617474613138605309704594138188524851706788957380274838490935301986010467039285604964951299800706776377316182176320065855589662676620176825151070574220400149950952891108566351925570477852409149648532295718777975611301665062624396998210508842289741808370260367714987153942904409975171842248402090242628315151715944660447539989863115825444985107598409156291940315827019829949042929119221029100705196811993346160433923646686751765063466971888850931894944967151264902081850537273103529599622246224555130605170073914668446361093037734980743788179885721792699030596779117436690244492814122568030580199744503494826539800417011479436956793133342938688829813586521479551023403319159389107077567684193537738827450086983432332073093822207795929983026546805942453918691262863316750579369477004914560328244023998688102126815593140839229241927657132934933228660623851357738798225561223350019368689195446924121355353109086724385894740195676979249822805042368021283394626409202398399216533826463029051635179940836176276520410824307713429494861976288228214580253388751592395827233789391525716403575100966145013904675515337704260096271569927352892278676392898194371822499209625312624488690006987999730224447557403408539752412173146039505266080744641360560112230127469735842893396685374316079736645287296683874647450289694650947070965376066005853424928734139747404606711626671327680616741152976058479272965852734359279297060695976877314139253925539828852491622815783232567572806136484096386739161023743357461670439125607540160200199233154836224836403854179784335648492760182021690522232800380662236444463049291007861186827410504476956013492823020944942753354129355732127028576142372292159803401064625633658487263063952820734974443329418638416838109779842425589767487354248250948817335431133002519720821769735544679927546145275228110388220422256858013939037049229522785457512604312395738081781128973139692579090962478033628998433131484493195013564233014233695177432585673900664954165631187363945135794269615382900440761972902858440153597825605043278423625446739141042187303291294154391239517034434570342093597457777315441051261067601385575036082484620962530159136345086422780404704384794920153805551001230528928226264856197144406185076388059176488058831116259969527056009110274162981160100217388971920760128451292482066131985320270811625881965666815168379445876118278080626211494995320370737724753797929229288427966243251654464391250802611366868522399392918911564666465790193185774637364147725840255015221579983362343589184288558630774494812067794121261386020052851803194353310053157304886784181984059929088894629820059910032478331760231762692078149846826680208765577688469138934768665736555509539945794637709804647929974098694549461317777374021293512329151736675097083716895244278919200005337263617490389396933849825840349301053335698014550768836682569557452895563582563004886651852978101683529485149276171847750544703937418529923023087654975722165394467359491626564761456444343956700978193965680779802280846744015912972818103061338294251330414077236991951611624813281373001002652919953786325486138883281290370340311602516061126434704516042637540250276912782659584762030250223092002771925474348822172496424357983969199993047740302943058611008511456988189580326151679967988827366438129766188575124467565267629775932345475352444122260119613160553625178790330247833029090965873747514253398777256769160014924713123129992363443078937118785255122687650065720651559102036932663364424891573152348929792978051398032584903622258287164915862652761987089772276320266713058540708326660342087519252588664126020444238879153706273956885173563862223218187812338501319189879505474444491610168577675458956643247341633756969035639663934215197622032623987228454979765842366110806195527687610620935107019830537125206683008754479758532732533997169908162039244357361080383130558640523546196031992324190859093826001431510177044349319975502478132310270841887483802153617173976010066796494694245221802227698348241181191381711544868834117371476862723245248071105246612346541871488485115176685135046919731363793732527217462477176663882885126945249064049931424377640631362601319965675690896739455083598076088383637933339255198871277324353889488031387909954181447968237540055675268340660888557892790807227393766877106289066823083219596535205115816978943844560910698449988908555814984699408228985602084768010483324340258873418629319759222006366982670691523502028671614745441886392590907173842319733710451235584629823661030962272735600726332584455463490339293427578695705207453015441066114060960362216053492877846898045329557952327591964077371978871488998885219735504734801134313775860397542890226182229352994938090532802551182743073029012988716806206676945948793143151895759192454076886628995126445184437975003191696531929955193522178686106798101965223659129394098210828619933984189433455606051106112545975424798521881512756214225010768144759350067764820760483219317865025135257952247748080621302464723181703659332506618542934709201152468695842229443975575149978211440340052454783474957032260247790360753349320824538055448948326849465209825797621016285846059995247431380241868386768321653628111667737401203836661936380523375552529038933401006561261875179177506924562334527940162148258288950058104896573429669490747066424058930139856967645803545571672019273392011975807657986701420659197718362801605625539389309312471179232303944746776018512003303653863699814077751563500698215702573071418525873039305412496598524091993894628800283683521719810377454361952377716896065199461872937437558307403691301797528068883149112700124654010657489417387400110174816175408608604289159801238461473819006988949285081412332497450464158146051931549723155263830888531007637926781734757542453874449415970723745523833446968703804650252891772298771401140697244897337783738211852831718878211591271129465147962759838515124873340508857920251913292122840581564995011782685874062238771658354956384191892341563862903164638186632759161675924320243554594713523913854750480569009344551222112886034879064474351655638036851320387257789702869507632566328457400293464808509083652232115262219995578557486391144167993791790347980363027254812432748097075211618850406226251623904853655086784345120202691734785874195669043751975412377161254264570863377634704400405044513250411040828979748141712981309278479115123949570563225375311017403705422624283191697386555543166121343626810284060518641293143929095497052752268455366444768026689394522421856080988572929788147793177085753073856795876738047936041115903106537083925987222553633432610006304821821114045442978414986038906667409178375584124914956976160842165024246043167553822667284184825409612573921124456303187374641235742144190708849683199611348822608213707301107849580970823173475000146599633103726645436349240574877278468959256645644676406386105774293679775681146025451255005852100156560688254315574554268117640122485437534486423026649533160740944442095008628743215630563184777673817092988391455784159959876749750665705270071897746568164782035871806024216310747941192171389442169259158535696325613695876734125175828111923555817286309606281685813227142283416544461752296784769176602219951538409379790947637944743335922995071921712012238575611314362909066630950760733617625310398282294554862639166003283302496001638952582142344536646626128870240051402943443851931239921582537820567748421035402246341221519497622687392789680502957035131889220798900827913433567450240507408196262081481460249344810999378361964997232126453124050505274562082731928968749170650754743807438283993801310912085748164379803576656965300571026936282283354580427384736508600155110335445107012491034389859119931871686912888421189338185244204049283256005027413134563984019449020147850048614545115101185271866922156716405410536086481716575270581973262557857916043421655333212802357757548105670594424011501011114885833805773581224438362896588677437502533250579806611322279297714686674408267369441773856896314157958657906142760515356824171281467783581351067216698439576345746723305998419239434417627446612753483738284431703012829674638511670438397460836804858512147884503161006471263401764830902725123990613251870149314630339248729940402914677257835832250842037422812651473201061613037122826613811926757442110615216333034550481069605593391683484216550976184903433504416212641127541982260029469574829791042980560312976951189210984289755558388207300256467691692516112844219000414996912574692598687565720527377979389169882255313224452905000617442379212296821574692516322064803305787559547991027003665671070954150290710998122242109201783826864339517768828874243361881430013288316247415385741856940389698921126260499064887790905569280686316804587301841429384336087014583193231698379423718883421775031785226458084960377393678479338162369479238921153737276414833183526230114517834786365342938475766247923318627307839264603815362649968288374520075815166227315204214421751638142868835855710130088605251294637441983308530044884248624606953300627511426821066137296061569282969549826334849109091865247451542583640746605260737937956274657433686561167684053742290503141316577671841450693683876861309211272878069037211555399814403589058719705248964959517251930354216030193820119334230679844203756287670909788721007216901937622151806109464652209503917943460399701905471132368991745571713226283706559692062353114765020689325752578212065809017770945485821059769601179477670158185912811126662024551132214971946575118818603276698242234036764442020022187751635174047944126925959454709213489331737878487654274658999398540296918536125098270579876448381122742952965057857164862568734000676520177392435195525621805544990574592497841553581956268084679538664293538564345082908974847172939406127207663451152145484712143352125626052743227887997151759685012719127848831385799858339895904384527720096170957384544937960433524384390483702575427204025104954066267862459302117606581001650631508236967555422875330306612008739896460844989098383498244940425599670902753700330367642740685807606600317358912808593602344247866497102888373333992654058668007511197083168873348592109953596411796861211868110413883454069491241074186619882815833068473716210867436524117316911754717023712742408557701458606176836595765430493041231902530670637532932629321972777833464894866970520052169842204769466847660780195560768536714235663881464308100256718092215338590219091795913251807269008612813070212009999478592505196456481079805244210180910690787042804823808607622466214762498396821024903727588851163423619037891619908612597256489266311868691557327321622546913261996001666169693317382644981996074964662813179423234870111936396860170859049410181825588541570411719252616562490226989457971508622700399059210881879985878584115370643032975494533689529162173058592483871799272835899617062509249422168904529889749078739075131646667848691111063023293737003627159745313294198993934355795470339613373099839322982872501391817354371219273236192869124688613637428453134684353329486777729644906496675664657956643910877717702147727472283865913620324440823448839669628812683774656283573930307621261597051861416027386090828853849428352812967195869378881767736466827558043874234237476964727037601284217062002310798339929510084289479907022455476317822959738383333720093435857226900858635131900843513156297550039961511860964084900357782074989195171348120318130255346862441074111089823142728340621610554438985244419798289113779199513724630606951355939470219133478942119029431219531966581122497285743196545763427501713959743465124689428601910952872685673084842475639039422627337489466047172016071504432265907488925677155186526665904475891669122489138047334794215675535133272619593753732248563697279897284953772926508519841102805412045032709760618819968263941014723305527268368783385211364052482351174377201329611820483521816161884708153018480008428748527221893506834762448727973147257906055584473162178735963284997010958352139480517487699185912792150659582197762491914303384544454667137352643530304148138358264350366577660928565597131655349361265077471727085718759984477248989098209586790050383967755943919520694425066560750758739183995912993710537730896546659170273746921606100994940828091381192351637481788441196240620138147614348599245834669571659532046641961598850923114303126319315086159581344132554828908905911282808155676759155607726087682180316196630679683036250495502633654607839317299037486678926823483840055456399821902158031742281270886401345255297058052332959078739599583250968906163613978772721603896153436601779232348476826029788298557035158232557019355857655364736271660267183989004027620002192623448813125952944219079670505610255561519308584176035958612044816361091494256587716578250656999845902017180430868121580340761867534407003360109429108900085590276131906953319816556317235564981907552413802077702171056651793593973927132732653769762433113486797301381272898432019604334092243100334461162706907053032592325015461994455949960305051928567962427545705413756700775052784317627054961058530755401608862256815119078604743352146199866104109950443633931042406346028887952107385059034706169016567100438706017759701402166982840819601202740629563457353942025918721944084225688784843301424386685197495637324637521553997761368434353322982552051150612094266317878039711577725189037678244960071910288952617925334005109314996405858382941384840779864619953795779014336517700500874162871268912663804893153924626669823416702204733438939805134558256769020102431492780786946831835586008641545072014990355662525464258565338419493095599104973712320747828832700511495749568840000524860672624410572830588061584895272444956248132169926554148101955754031118912463422289071580737657783211795732594409316147955598903923438173062073897017042049355771058892092334047408762208226803887806256602628405917619948829355244138139724279787561064334951515907295409912649621094028165685721504988492576418499022095672218081657085994514020106115297861322184829636703887907344411904844746832480115957388519621010979800575403263514722311403640847927282747199849720259401829233613663352197030166518944002395074751726806745559678266442994588210467362025554628963621045563888198524093376122408108932589269445097981720111399897727133156702199662494135140378849834960296879859618604438298367656972853758708260863180235704430455598481106556577073827511672560917525809941305154873300304319752785245282162149165521002395198922721701228865054949246401178418501074012881152382258062374104477413851666313184048624126607557113961796076087617383346348784408089279512803505781409326455055660139043509803850934314201815872430598438026652590673996867885313505668297854759835838599677133516895257311787538312354410607917005647172478750616282367287284842887156349757100693482032626221581974891269167331347616787277746887154406991624758243778884305039777134835960951307011990042248503847804847414834232307710940024496560023493848372125383364833606183694582608777536411580261086083174765535620370116961753655889589758924130668900616159000291904570746967874610765571507574349763730752620220988565445488991354708229246166191452802110628880950265656836208940120517073856009427894623272388603552950886267848293670232811362511235214735759522443211110233330846268358114391838246459610403310599432655868580579911570088904898176099805865408786329266316765839139796380392692597310160158137821682514267466237098469888789439295139356469994157123752633566443280602422618950413779160636776587558743786812261932053261885825220030315279101887131809514033503233240702694355554239903974050632159765580088107009580452334419196140140036509543245455576771774354558589929808059158444953184125930468114573039602535023016497276391956160841312710553137997226869248080060069300476766707586334033567568640611077432371654822916984947429535726278829390603395749241140701955307132157967586033962816452538738113066049503657953867754650466115518946261972032067395395035433686907977542131894471445637469187804858953958959786491247476158125255513885130540346632638418950598111513176183463115700118909134777155672919785582867413634094300817843921964283500980039859288012967335879818844683008747271047360942388009326409732957158804402815340126524149870973620980151204365530706735214326184852956236302905209427008927979134746192756509638805995589135211709041813582376058209801599671816556994800600296002083780646003884477772971347346964725457732542764172188770788118196938276848423184075826092731579594217847486244209391649250330583965385164007302517144090225030762329765811151905169534844249552458443687503601357456477524054694208665970491351867032797925076361348852054630144407314965935865085255305013152971960929964890516519259746720177865051310613201315711902004171323964040481981836617761371210254921365170538635974640068527352514572406041149519333150841606557557198021906625899436970639145858121043020467117476750803376945979465551534487794225051309354787469478175619218883789869833984991695644057859452557774007584711016570973304136605843751864529132705066642949541526546714494351904254880809406225794342207886282787898193691092308420268328785677737733516305938158431252500078514948064386655076572158823243738620021442533610782648704159101652358359369375748579527717787753703109445363218854123207454200110358560607151219134291984045272615748014486382996448102722947159280184308245311268554924067127624002924477503524361780904682567487732585823639388724603338218786771882383406071560492078533069103629249735302999361690684216698074614390419740270902562609714414564190681013069020021889814648986518494319687463128963864974236644151720583378339159564214037780320653933101822801297429927230920684205110075764365049271172777505700956325856334134648024087089987275833870287472920016591721026679726580203629217863286677144753110072462231213477468450462401179695705000024421531668838738022410122529464199471307757587114266795901678010191695726690426769571914564362876061206875242792139455228107048270548576991165085121398619480695610187727536241600192191704370597098310786540247277888684548893550987316387753484076443340297801586117954948300182747161033097303341882939473681330312801498309971013051245187890962167511721659020928296179709754250219925711424370403165088450518198286372986593913748539785712101696680723207720537638942429145907898984980652363562460153187063323610949736011567715814520904732923180556152126854299119601787364953279071120863240439630275855655076009667209501100255558928075287401103094015949152518187313858131686745375216034549429278916354364826264501083868366599660014377827020143028434678856970952874650069028473913913611796327803372360139553141537265297062609593674160939297355421324873189129919409391297196671816669934043074998999677891671769924639300835741519014063179978373874704711871303561305941252996621408621135424404802055076602487778754375046895772075892010809319192790041270482117938917037962903204853040763817630874680939886961568174644886645261335293266550570640481719498802384871900475129602607637577127707924574448130910013527791327242182973296010733675090032599761454814294157557395582112348249744690325272821789934415059305080383864307385873598391998729148225580660115615763295522059517713823003583045740027730101519973665010383818767365940964248964542663746251410963206433787400980418540999509522081806415288838692915644719278688141599022228363146472691824372127736295487206839689700508888718010451568467817672309188479867232044420112882997888186134303270347326238335164794161463832734179390457087218016665583880245327343920867528539734504481546147177490257673627668916200776644401452188838249499756748068236948488407031668038357469079475835718200732523765035893935374237271552188271098683453355574017203135725119394417360196870037606835610022149164639475075241949199734975468631312203232152752524616035961561677033622846650118533016884173723848553381020592897774634257691786468221512599976368337362525954513267341163391011629101301757295418999082238728060296474614203898536881046205575753680084095542445560603475678694130326538649337548583726270934376893869519865401707591348528920141000508222915547992699938763542996774300089983584607833407264442250755966116047329122630277736589799086932564913214148404916144859200439348480813218623840631040674487038439086513755961747010213740795768474460186846531392858198547927659916807318641823954079778839361459761708779962161227435783084955142236858779553660043653517139510246086032242238055639851636265406989014414925048611915463762119447344037538521975754294684978352740137502179396488917040787530196298260627767964239494703973596574239934886299083383984008406166467092363318117962537027489370601020743913798228572594787435109036455617938695299975647476330722650793294060516093869732543198697701321673630746882383246179940204124382654800632976664088314793526377202258129168169049486280195286931166406493175629731454474358811210775574169884119370106070556184985814336347424587582497604827651547826810587915042961840430606199974586913186426083288538510026326897671442430140564460671080895683452396329915879439021371813337312465056937774524845284763262714405883056575795005008517609129568589712839350377905810634980215236749573489867658270747315929898585054989854413136508938169083696150630790904625993087105330279154060731727518842725907253790109661167234392431250296970376205538490777211703366976389229057510273543068407142741823683650686709851444330867202394830719772715546158131175174129069110379993267714868942972994342734075494681933234627526418753756096020211947249278584829749514667149684740922995437598404736339655495472831500098195103221623473253333062700682069698132074694529004431442271167495226661030589160586363569215724123681169025076271842551455677300782675886377833972840780377091815087876957324126204492870242463091206046647225695751940388892059203753370091317648289350237295346039326441472050476971538536789897011441214773861319077079166248079827260086153336953128693533747628649615881803772736999933577841161301207064589490889781462486693299764151738542262353899594097981842369969526441741023459689291032629551747254585398375706816455112395430013989942547676359945481356829489250583911350459025115486560232836361711104992319066707816328265469310812187644257068821617365268647554431295487414436451568836822588673247101983241627619365197231740026241535968567264597428884963490060647669358570878000496015704896532123584813605794067459904292908546421343573282686910589132714260095384722139956672247306238001500901433886996617547903292881977339428667176324901015148773417361648197626104648727529026104449183011515738774102007620281014414883589455677231961532062126945308682366194704714613280339326451819501395082070159225417753209991299297796259274786370875275199145907289867297318448536855629817030745283883702862137231348803700582805355337130069372823847402174896570401276416619571380708562345530920004164520532616976319284064431071442233398033767015376106395476263183612371240477915150054738457907647201103744387560901667578012332558569343960778519940156453405080229008993026006784670108286452258740389115976577607681096056655678524693824276999045144847239655900785396210303897258949516213224901469668924974630930956846157858170441107892244777388715126185713000946616166938077818586257327259780079946658930836438722775742053209220592290972343202744428134944656107427671716608084846710766602662372480025694118383516394911952580174110318890639495714399450179697435362081322863171499952545884194243222188116345795014207947271522746288425154881501994698463345565137129389264065504462117415535572118903210744146548018437113837778403986650804000038702412617752188462165081666829338299547525990977423258799156913976811862446244023804299717733663437735715369224139218613404428182656035157085107474363761908693685025553954995667915828604907606820716956743951895102337401013910829789192621692105307518313488575160651932056018746463193318578228526581269844966767875270873874976233987357191387090802226713782733092906547296799608958165191286843198964947388623674296462502737086794750878268551085784991912384962631127979394913114423018383205288246689232815436650650989908389136267882521119122247201796003738642326421656450491347282900321143608533130843776958916444289762771986134741066739697220703140551805485670348580979535804702624950557718554576406881314316333485139448150409264182175042616155760044754778978567907868762999052652660183410162872999996222471230772085856243117881282290252660018468695580083461938620914674833419938486004647268772428515595025454605719527168489993417999540651293677020003365710810367866415374221426850123968376455917681375490017585298976651137047569051526349912022140944843050551368433694559666281117408986014622683437168452244442953485144716913589617419838662349147353176898248140566978356674784737305251327636535071371356092143922718559633518881524094449705514342239564999582279151543742546890398199564571568188473648762420412325907929970461249392329187174107513168178553383856673789674513896467001481603845878896608637821774749852057732633925641308398302351433220242520046147383162240349488024321602617737443132510040806678601266140907862436817088850192715623607418937700636101530590694250514789742312745497905952480762263922895302199230079646671343973910655841226167870745593327782438973421009807958455043663896972581402191223644480701325062021908849233738711649902750856172245698163133515617967997675241985597453799370795095281185753478217773603494494127964379614962594355079222047549560305648264806657674029947533976479554257154554795322700470763186467390451495762893993869352546073253110633175330588145666863106263833119421360402497296175370474068924927451178465466758182484557708326840552100978335368366636681262532484282273226160847775700588782980174607150516556750350281853385385651730215667208656063698180680171026274462432387125469331465981201676295144653015670927675201549277667752034956724600997237918851384150403706910860173100410780399005603133608199341884371517471179962138643050901630837432803321715945206235087849362245844815280905782299507817974693621312846166535865029098682844207155481336894717753618543634131410817183806705888206922888889900030217787440727599854742952274088495819817287027052827248536200001244613728854609404118239877438134066119592804593123480328454627267473939320660115381788294095709094366447678304939537827892443538656601799704235405618712908925276250389723014595752417725457259214255452308921509349385947079888300438155496009178066905297657374791693400448915320903104675761450659298888045616501592669483786388145701306003140176859426353060204490212375397601946943506086339749696714392847085125681641559878381851778880459853716637879608820447896468969726669740815040829717458392480629348669909024255903249520860680340882100316489970868848463008714054551643601489736782887560094633943050561355591992477931831389586758105852901071909878810929206185958782051437522875564426754292934149027532853629954448629354859995556792508144528310316847385334197287653802255200810005057210327369979873559807130824490259391149950194096568828110459235961227869407394076800791981229409972824620019776766098119428741222598432227829225201237807465414579914930699675650865094569580554825955996569163489530326775483444480035950375694920907746192720195248996309566787955070878169306065883435960559961402107070919021952401960074514204571158585128543525008264903447542013980530930935440482139999351859612380959602890098594515763372030232495707774992962671353700367135444552479231541780661023419017248757127429150540376303879894762009732853682006723197950556985095879813452233917225347786935134350368979471596264265998292935644410745126921034293541447226265351062857526633285778689171439420697745801334723335080025932121455528066642857952130926362644213457168730999070287209304860226198450968696352744818418114491068892864084223984703717359451289104693831330933322221953203778093166895421792604911920574856439797596514372994532441816813457239132680683064621121941445712028942979832076058017008533864901781547287395067275024382458048207177823108546467397244259142512946474233460895041813153440413231055857395323618975559408262210698745351028390256744035566064991977182938578299859194705976575887481249007279207793295867926863554127390058495449020794694237519630698606326467783326199545665845914080335001201775138629896002619648126668125650085781152684321405116158077311547961644054418977833107722072258371440392600060051766029875108382834420649298622585475361722656424257302162537391152578816259607715417148806908535463411136696015859467683847707244783984212784882675894780971583515429006039289680897654104544996405065636522504971668680217122963953269469748558917014613299780367040720184196912761549901765842921568440932125263100384352012188111901900180908484953582658499885870173095084178189192675510718435190530213086170082171118227149775849614249399356970526337133455862688675019220081420389152044461722951581491819345229971318854981254117233549079989248575486346719781767930678707012494629592486489565392545140055095495678655870126590056952120595451166124411282684189850391973435160734048685415413320198053884745457838123963800143199346417770561617933277477499966094519379106344730996482550394935447882739403455015079900384036981005866838475520931070227379964368489303653864152674559686432792052974436428305188662535500726488491501702900610521673645309227466491009558352067862553968988049934968769585283874808318972566428826815418757759135369713834050875272825877184385210471004129787368158849706029502980419377283610620550309728802744992954491824370848171363752654071467242198567254681316759725271219478707659983333977971765677921384538710029304281231865918178507155875341556778832287232582109052713901591712883864284375521794419749008258701674500884690771181691137668975160143321393746018007655623727089757519524537573339780437030854557573974165393773092505906477953411118498741647279704747433469015780531262333561306142057126852794940336846358768253920516601013754919676432406562902249267285574341064789995800701309344210738840890505941612318634996053420096800276009063361730694359959535911795360305360873714948292885423748426685072880945456476548042121319290641572034361079966233480917247963111717405136237841959160419766269207226831242043707745855736287936314626785096305531383982041343416129447999625444526486474253298692724774350922875702537330984022510974270985575555811786618178720065552919657326943159224600513563724143430545653354010781013453526950085202924632344850705444310797748419163295040033910005731355573523322549266562428364372363117762007174650869967544113957145362068217150256047357271569104336066964070467303621754276060888004101497016074621799565394937061702421324811223547539640417693683269287909283088059855933201030071960381015457979304926161296184012073531058859886358940265180726399154230977081198645564140671255661443649170524762694068239742317561280445644360068292524202292889612734083241525303796772271049613044042325094581391269175179346975700258936318854094272110683380726406009109399157043932753239114709395734299208409800731991570900612519202705291784285538794026099267113130013479533921649802000099211905330623829571658444138480893972224439511356971525964691207649649751386369135911308687517782638462134425825190731002934760554703403160132233920710017371473776074401587843565401859243925621846446538005433389514608589311044960822240588512346137542170262033100518244769936543306656828848464167776242923201600675318001811186734867574164355621075524325224442030085379517993571564537907936524640309404842138566612875596966248057949377631229800532810633025148459146572167985792921526646533193874043470953804635641331889675805164672399273981000494533389390050652624548275069309279258288702439866525725257682745695472611306660994413583871428798953411601658176722938805413403431971839612959204009961633552206984669238276791908458348793164733861734090941334658212568324617531652581645546972851653457532330362034403533644162263983673628505991578861498130648678080212374760747685324287996631608972377876716476422449091168125833108646185622635450376337787532982766848483529704164712985388902506468902742471681440844097306090903096772007492751424041597682011124767936083976138755446892683984161318449824306666415053729809591167675228338018095235056276552030949418052209561449387127365982437243859977050270730524823203736154415350886758278834190998529543402942232447160190708166706884506325658051025523045003048034539443175363148280856537263107205542779807212302490276738155561967638359677869277381488001561391968984766573762624434694386956586491588637320738583452137111710911256466019742928223395474040094324380920790716440960821633407137131703141320516024526259736412379596077832812281952857354574717179632106355448980824695210097021887061277357039745215320462218925053606769773045195209406231712520792341881688954253747614391580370650207238272026020015232878897769369722638782858912848042074130662108834788858333312563392661578394556510370458064472624761979866326044393701562702633341375709685091906016431229090122975982159313636514909896085685651836414479888297730198491913181862297138849043058180774894069156373592379315445194386619955514619847798743692561524348622826780031248397400026927015639334649100292750264133701833158729985035047809636267338488733468430117672139477349884532997433884595065527891447759253410186770367249069523088482731130484251379196969584371631666619799821075964082527467295054427832593079189988109683777032624986522537588965392950953688054281531214547040771781776583197203852146237106955853512682396202782626338053671238631463686821197440229986854241255191060107862318422901611556951499208187972408803999228646223809416093873858540630151192419131409774162197991902758821745934407439699042921348131496013517179952978983430165401595311773808536135653718495822748641561713920993191921417655419732772598125086600063909416251291997642481583238302096371878951704780569198808845994266780005173612121748374217473354016717431352812422215327975040546482287129888964949501733703233097963205629379159610069371891121967383649296288846417366656664476142160026916593245195829852766848839194742463334342919668255598116965931242829748066798435723341365667283893742024230696045824872738966892883499660347816850278183521581968364109330912934160629623329355560356792044143530593971637209793626776765958166851673696072703583180314517437798339706293984683678849235742865092170845766873360226415202938023876000486103987811545578214080585834320526473871178548395976394113888267275448194118962659932495614103944296379116998914669647789300142526164763944752972567783299190778393535116608506301331187364847697672582534295657630169747930383399262157222022890360123760452828046482033053145186815366369201461061841049907180728465986102660287769740159171326885721690615504181576824253775747733309469959457192645604373819275133198118351238581412369462453581685485490126982976204968118385283673327817137709102587359209095360357798921147050459966817024912999552557384453400228509658040567424517381992032787239738985898372236430276126090038877345119289050500252687726640884496784619793905723219766646599239111873616588791052425144818993820609936676466938651017581195431843233082334175296665520786299057246492859598713554559868829380016575417124859358167213450711043329023931278864057955176868328738326901109046616407640691408950535935983729925148323190335135958264435905869763363987452579777287923509685555859898625167877234052085886123334438913452174923739979420517327692416625412705734637823202266000141531975300600688303095608513955814142847024310531852731451006616427446969547970260675229839515389147021672545188931976557633238069452823479166326080560569161364519903503020576408831599209963841848575838320164888482019083053672949223073537355410885074689568707586550983727213622044298160310740081332842124255271459387474706008649939599786812030813613191969194130013602678004158124222544758880165438252200433269916090965380353111017099244578533145138206209340967291888395905615129127783953853878285158012710861217697696713967680970933532752561654169553238134669237700394452790114541631745287557204703195287627105843131037458867542830071480640597774992116684653136490375177044930521006613828627678157391963169372981519419039400898818192025385784619536800883812702701344836061627165234482357271593895593016996064399216317412438210133257115420371386623651085974742358487876626117245628853248213116555562729145770873620592329766079314455098211876151603386252764664540788908782556444201276038645058274524732847765357585292707502837436211036323341550159677709136558825090976351606871750978307425125652697007140017205549370453268903300131715246826986432177995147110171823273518126561342698617893077027179791070923549436235847900754588019889347085358027836988069210982600432286069371000025323136834702776735307151868406290787140127235130286484541661844432710639981732056952140240989618273653554262752630566519096938054694479185830718512295829829202901026150842377199889242109615811242786216633813024301593707945522195306235612938081655897272256543866866184053517898135429890807485884651870806681832348409831598827062931023793463349188296342454174207860375319640766222338236443009890188007437294194389336149326376974106452507051334861165181971947379546974117351397365029429880538216939330568945429061605245121498300732932944015915316305479859609289773888694439577865674502647280293697567121701030714637157575573596739919851715902240739713507144961584199692534790164539664364467608864065150603805784032669654977016540804365486543697096775555367789255658231440453121077440621077905202926963139042991713437845109751186330633444060445457392161515807010540300564695064558452432434841869336285311889872728631157519054094834542043128530199005143636821513330584500001657306321179231575594450221931492198882525314209849106919576181833908847355108354031443931698111608853321967292684191317921623605967232745469429101247670036649292359755154258040306059931819025780846112006910792083658766057489896160303556105653284440082746964238708014708093645230490815132603407807124821917462710983496798976681779989651947725395036732288822554062646427146657526681036829970602959644169071500191705815323745565528724192946428929522141358847917368288389250023012431004151786831712354820262097603900715205638517162484354553657357895149511829208401913906285124264814509461376208780186559644003116532732190235586408978333369346557250440194501158247809931858065381021689581487928574539902450613827891794891300688492368785743569133747228347594171922023626619932263565804678389130906423731415128961053557529093642042768346032630065529160838437961079312902225503425916755387326120178944537232611575281692853982951415004394266483450169591723200540264983213726822487066478599805885108345791149224290638211760304329812606244437684149061457943923835467474429959837386176081226588184844953260253097228128814980180583164126435385326608109207796394213206759496042616679211140970123418193929197402581407107008222472348554825121884032070368465198488687502710159585631494995203917985044023218742841186386743796165244909099485533266669192013188520009599811148829318675837619922770030830342404535063882596342152271644225107029555753269249728376485138482767504318252120147897500070042783538779015439510614374798562017366171698908365406532104833945768899137920285544499339699674652425221503918448009386552344006016351261217019537788935928418557635124425714717601331828904681429000624079611961792129527594375827632388728028818265712330055343306928012218735250743790475375944551838647141154034459122904155669633604303691856594111591389359977346998169643683500337926388522451942606125506215962351777160209070840325899673862511160136692052124099391056363042704215341450685362460621115408384876424793331233932322933238420052649471343982504892850352163732486405393839633683757537331518140366764991948592854780291461682882977081490481225854593706544048409965757055929581912840722403366640885126703521302685820029386260254514509220854778007124614149767481068386219960289616217208466957925823427157115332168219103278814870614486135834011191726630553314656795622587880064284396503970485758822435980500590160420985914322577709451769324405039799747486735051592990161865708639241297197691708998888043235319983217615558222076649734796046068472039018824878670585654290096915626084104001091643099483386635122213182860884438676578853386212846150324916538743990311834590487005413402442232104987638672773270355000549081945338393313544666316428199507780312974054860914396508340451928494101089053680225449653555264750087836097413096745711458928844769682601707791644010079776341154479406123691420194856138465679393565800376549066513337125513733910132331510474394728458553769233360152822409297306078130741937866645209757260151473570866532302076676052513000290570113348218289174012647939827776346835398087542413979728008033721516258382055239112530082058450310805118415341881073950081227629431223343302983832689430947113523144094286254185686672198402193141239515216894821400650380041656658122237050503328135556977168297756188885532986975297105886419192587880066273673009933039683048056728927550100695189448192274175301279170268100422231884325219666233387594788820873673416347152635185310181870138503795817930431148472912133074020734815636909308473465396247620072455086312990210599999792149080974062970938096790368811630052722290726171142625102515434159071603960623064939429073308549469402432629314191057326905896495867496740685381602449307581623195515948419745054817840111751031518421883508855724109974968690384018165949858434640353297530000383883553339397068083366538378283814582168870910202462390480460816373429977151126659728023221498065304983669742906856236239342277894390489251768983494510157813650711782780896838457111022775315062228977103943895750150535047982725867421346803299102605080278775154632248908110318659831240437289848776666905118695190700823687531167412330694103453805294821411253541519586846800465913529181264341920607772421446522496458980598352907639770885664727497785762398857298910218028340452578338191913346653515953916651871384544209723415433306623679704751927862704780104873634881685394725625949119667728642689312163479474734923867223493356193629620014960428027249303792808302176986910160110595974993525807935351820973823256224613789538775418816475344975415621791897491440132034553997545063717481956679597279111509565512559731464950850082991818387541045487544564939333071014715011715533703857602379888419972789566161218015877582190511239869425141683112460065406083023067178912660952978830754830290496767883760691579321778267303371227320570738945066002441709581460906538618370786478137860078642006461248321116791820974067064499379969718201238027525145349747767407765053433145041713100485249216228091305723873893525977684642197312169228817305335687286009524723924569851513649407856177071451472740533154674011497417808727049929308861568319887202839253137343884617155873441656495865774169540111219976579137456204346989660972776448832934716193123528858805011958021257985574248050748013234204184110888685187322960273126237060572582528990984547020956599200101834561615656071154534276760783946613433943197380084700201737341220810781747821302237886695945119532114100778645247456227284498562487888695470025643582669624737688356758314663294336088097490793536271544549614217294966941874498513725831280969152551874170697003123834863572590629983344407912432769292246792028471539522561932315290499744133381139339304074955106236678236932752931210924051940650534317457107639289947245229055334448331632801771635993548141095280305113994683599482778877977429977051837062699662514304095530684888561809881558282141965669756232161473935033113908681661633778405395464409492847843310416972934869299573763756593017229325473003908553707791641040040522323699013522165380979640960605036112885491716502395674412125638805584214322447869451649514593798074303960263758866522474187157421585340973578133850084353009093748165183508277454617080573547215404355388713096454944098177321575923033717660076852075158407949034553656376895477085979722665963021267380293366767828598438677842533168926536455476047668066738553590519027265036873640901910474224651197621860256455542511820224967987748983170158218976359452805073412338879474336582439910118957805472133768995668264363312886598391307357974391360555886214045285608221268634086494761828653925793819001965574566637890502052797260253012776371176555228261658848389680162713562418763995875312812032701754349921357185826677281434456994209526270048000239075485962446443947280763961041181577430543877059605341536967038537191241318327295097361311912955493527202085445318592831584505308252864661194556639781215531663775116341246877158214018107390623943712221076512770735569702312144616009089290286030433762846303590679076703878698217806593457979933162261963375667314087450097843062681087032099008489127349397173276531843327843373128386269965264919149856679823847607724459686927810455965494171320327655836980750888372565197553457437505797129138524312462545834844051102376038657956401766299068901134800290455841672593214784045877021793013915972578469748134252234573030398769437023728871216820461323375651564046649364429266110693458488348758821381330985389322420497714159554679556970328197774507237907439151008046595549224817445669617642427177698114036647649417068460621590344937754936591890811817418053402496849212091600438042469208335910529908479491819046001980364113798342943197951174023706890079622281974123586203729826921777659985849937813962265006457460357960205277212890907097222231066063000225652264949537801838212900838691219375312040200998918026579392534863389260237203787352019749300293275919708725396767889668923949098307511904817231603099286961715749806093005464986328204806684364975244038539295035824390355001921810602017172350230721281188911298872946833045648811893764866427396869905683252315241198777679213099942668737479272568732342529941160602545657567280436877081218748711164923372125282048390942541965197600302551876327089907016878478438069469137701346455598150245110071838001901076322753268948148979419138052382727953893097444265713919104465828451362573357231133869149545781863425965820600869870548710581714463029364429236739055885838360036471715658234053796230134805623227966384963981323986362833410956281868957254132446466380550898616390140345433577170743836870340019262242153792459666017608916299009904760994485446718991483795727835944333642811546476425246247478944579066114974684161138073450572798116032621973891447920457607437265993913503431493715426267824840932381107743176208672624211144884448015823831202738011828072192837020212931893944832960441139389936412931765388193138667590837359069499296136249073954470009131637591421740800937330682340807848367790370519341138515861686019733807818533028637937687174534447369758137484473384590172251795583741013355442354556607046074142836966104440215011774755343621443035924717875504240925492707842829953698205081784878249289712158923101730452372794537082873835385151022312372632494388587990271485891994817529633305883344624329457483569233748047753614998013632713742517024900462431832429844575105765595531864504375474389256235278926261100403165999827690077954753747742278859692175318933791728808580918404459339478879709936947845030628332400327586933497231842280851247642632454539043133884576090272508978256715866705089888475831795644840021326911368340335273245236101915929619147774339888919028898192714542876953770092741090540423501264661491360869457269088510020404731625368115791740825612462513767409847915663096302118833779684609281673831944334114493489947774131157917923341126182756846534368185594501554412295284443844887821032111005762512920951334460645398860707011802605319443513123306661891962387161231342520525006903380187627781702707187818463825509477758861339175753303323762728005555918292154318370850125003585133666042695714259266138383187188966302226101948620661985800318530303803125217813738021646327572840023756157392863836992324893509673376470840343412784066634612334644557933801103239673386032624973940655084613712620691345261171971531077773243652994162360558071126719115343848427762512273344537397997624638196614291342726886537592815177984659176179170735573698424970888406226729578287334486077597146584554588271791610250053229484837070044583845824349284587816685284084527208587951196894436670663118427901067881550967986543262852806787783813006574185678545001932828215366965257395655282745593368867499267283548398123843527088090960172684129212212781524041567954061961865938468120073321124165921655641699140058159967648278939147388707997852355211973402440064809363171742339516201248598480629004393370469076798436317044382886642978342752103548296399964265268101477465880762742946273205247113621196378194039983453820886860265248834778237019568627083299573815497358076094205098894470293542101717988293786412300925676402402640655226863968599187250624575413405818967082798309436660800279983895379144722532815121499950215113882562938492760076699172310591377002104648548637832707053359364370881259680451513283402564907580979743039150620683170157801065423783273153192256843895516064685155434288293563568445143210424862313471939655062337689928782980775630827515012311739378465714754894582244447871954244775136825704141904530395407008941544197718146517156579251424443505265866882740022825546864481611992641896937305516178269220673343337632896027284024145784103255766282063865342860564070228464965184227444156218082997334264910458253015175255784515507893944078915815884197208191355688144037293832440866039905869220745614020314787362816927018573596283990832353138939388692444805592859911237853298177525326135497224389110515839529334885721925892436309576450754329679194886393002825147626645227712765902452563073000659800934443893836443687401953899743139523107056323669684010462594525902940940524663047170035649557711465084166668184299744640887628278367868840344437647722951335306461929274824359127959321954770920894945218452344753914083879560916567967725078209610573830270305065998836990362918567445922454150281690465608396483651836020518008900070705014052076762438401288397516213354424930472144857568475930165533790452753732857296809748071223290458089262454859683463203313442084198672369832004816593904469139615150540651505735725873312600126462905955551474597690857686422362579495835497548479764064790207303062890785542775720450524181275555651296042447014217503910951535483822361096724523646624264725323316539653511698241717402744337322337663874962983538454765515763985614483777065347547728297371391645208051112139114663504151989834411170733180626890636392035385106332730964953176400216414692694109084970506909125766982185832199581651053498088027415860344009038846748178447297500371135924985110933608068183480840125368677595179223263974343372790075570262303878316942901512486292384192580384946617079931169241903608100478017645151097876269558872063978077161748491263901014933624575271338135448589240267766793065437098089306627737697754707359958516843984607656381516666181521417700337467081524913001332616233057782833024333637962575052054608035598369659373141931469352308727857112566029479444801571575446615335197482934858062078061985024576898964364163047036918638350592316071798887026445660589834709352353821060559489672448402229062618115602624569155104886955795470881057522419968748872159723618727841394955514478834079232941786104193766730003095521021811310291952007821930721680411793509685436691463133145380291489500286177816318567291944411922596140665009266351760317526066204635220421320471660366411069513052003299808380566520918141403259328831582712732474705591023464983400232546188250328499864313012630763084786053720838944574353346474227311955322083770019415679430654245139354143008440141904271823896601502083939363326064776844144676929148646064441775337788174216392894629074124505731385542918915835977343433909760479082657967039398613031422033894373774488891521750265113233476235480366054600009276355021055932914658481412427743758396485079810333952040757810952127776132363425756366426467843556476979405392523703084162848828513678146134419194374902238193276591529615900321129455659987191548658730598697578853546292484120732892853845752807391259839213420378018731950324009332409422796641603242898440967247431620646319522934644580540175103688142065254354570397673479629004908581990765850661935844684613755883025698973827407166695006807870773878140763719402537214389951056977763912568679222262117233407492504761274970398421348570055443941225945959695702115815124290386719968805793700249044432208581719729568001119304668212160532721527203223302820075300499337830541436463199714008729025990046721664346474104886083012140490804034095721561389788485325510309996037495710201019565324569537400301761006854495211377695636196476497562690018004807502089381835256614718269734852317393094327858360722390122476359567672006098576049436582096338732400341363921154092720135143042442531917378922328900045556838958362510825034558721432110845013366030188330415832422543903088189162689897184339782733479212220819073527038474727409509722249365494790242253545950610900310780204733849126761725861712629955961622376051927884437240790913659104503867354508053240176606076590250657534462843535283666846148084987965799581188600306615759992193687104143838276463124484567696783333760717101448034543895394823013729443668513236704364001164015750865201740752941437306597740758716886172737490755975844879461969926171785924972655492704969612256050452779893864175130522174222020715297880360487298448569687342948412341716488406018067085126571439017940962247988807185913940595561726879163311686324723989032295371876585622447634966745741732321943354309548267848817710495180540680161677318452501084467625208596143877221588681200258101938318415318141267836052811798506500942556959094359692925146951829947201102652244741704713385621745640601997788437271447200242306749477152905316795606707241700814577013729418516649757140132359028541256193371544989528962035598574239790211059467144622902461129565433380776944139742251668230792792910829760688756167591572510574270468724332743151129880644620342985979860607762337954827900679502556005338297681875311187608573400393674397568320313801217403409288374870752026269131954720524694117780737721778569608343339003425916504939497727695527552633664342979311484506602734399112585782154303829755164636921998129679112939094996182250221708290200869076560889494922935485058949329683144135937927335447098513832284663792519935845934711349962990371129248024481808509590275254219837539607818614478432820783884705900696403635950496040945192561008457251941352843561349501195299945386047681982764989554199144075091234494729022492427238025268067539589819178482220496583424110874731452426807287056139147103446487166838593891029004848370980070267280671711227189942971068900814580114632087886499810816995344088964997610123362707017863021261686638737887736849689846400457483755472222756150855885854597146003584857059633348403200246421800611872467479128020114322604384415350510958259954924594678361658821933054880099059020006708042527064845949549730286397756347432945903545658197669305775460143066041871618690928074122893518660326600616407388623959777687409483779995864494625898581245686930112039804298389472495201761316435461970384182981626863565127675946536358479222634681829304251683466828803595825938566692498834593857397531171223329532311421570288367664285783800265401740204571891999258933934966682066169438847356570169084301636222453928873933324694847697099883761093121207075214757754830541444158696239030702887186977614907366953100724290622685793154898803505742582229649524196386688194046123956864630500369666770220703887400574262833235578809947894001167320519296000763203701066785697268975044332689822258675508334834096685298956659436485566056272373644504566243582716509709848604525673431155429456590100973119547457924228552338408748769031980493408575171664774213198768220136710562486887674870436452064708045663025675790113029984520011226100716656512815131694442777955672293319615121986522824280113592773324917666448180396280392554997336412436503501491277700222991240761811670712412941624725614752607743682334894690326114105646113563429252759598013427073391726216053411585674102776930554101630019619260459255557388864837267710033134582909933938558915808785836206958082761203452329951674038289866311439471931145881766006689443448911530219603360902153765257727967538633722045584200186327587492323116016351615577488173568659523261856287001808611162178058134610984027474873063953724289097312557527485511171686285283942072694513368742966587190000674670997434089067942546985383826279323172085337339528909722874813567938890850754439600099920812117050882254709080025627918014964822679786472391279843268070172341708018510276519518863874095788682509192122943039604226168953036956973462780939002912479523051977993885319474246153831297525256714751108897129641386178145756986414320040318522266159881173066153933882856605373241507025951869498577745197513967427611131224565961754276250702698449693629963811566045233383748973674932731135456604943435750878590343527697377519453966780557993738510217133099481058753851204999519970352459633307118006781135773057772632243228866466466557165011549138677570077087728666583222314529048964394521601956849820026302204131954104220608508041251872036146572184047742076663333715174436660599161711114987146339129178474059553952401069362182445349438967176713523773008450598685860529609139580308155073068506686049056957904232097742619671842257578512633120119371570921233507028796459421950752698482526139404703138434469682997916060711686282303240501535162501178284055539045271768765022475093489929395460617581672442755272311137047523683612253915733150134370353622415743315911052869451019142837034741335787624140221776409922814759175291123201802718389712325284599907273244172929126597740310338441434856291968594117956334866521585859277487139822860413031477479226916868912504048065645401492690053657228090767212602394000192901978911867833387543956517252154488033843926227308717287321583267082385544039747648079851100331457180368846159220185214507053627476028642275007059461553957142796239285476177919706423516739180413494105976245023340977785181621000932209097004179020688745488156619783506866665961437761334809012847417941607241127888497500074130024133913966105966096823333500813935112325762078699295099685128694343905904372864038800135766359821640458859603892407195816857250307766497301725985313626607813897413470109361356191486093862459611464397076904557359089450343376716124784164732694994438587185557359746529699121808822586445808474754706149268457081090185404800724163254169712972962906927141231047152897129795170688305517376099198730085034707694154515712482578044858739031434716213608893869012937863451284618020843014254777455577150381166612541329366741937262650410931518277602352517599128405102491587261443296381980565265444023278233216475663283857471688671871517935887973687457896441892011137177848469307124950773276070987182575128548440656421490785632696219669261102724319185449878439257073023658532887624942020921843071833649085738833054114396762892388495330469563965143906891255566934240490771806335115105391606744731493589752762282800931836356490026801128910716193824002992219515136302484882571971982007953814964450302362074339852884246830039163779681463680077587464817278756692413735414806190406587785926082124259603600759910297078423720210508469458670868835072238818015972755868924675574839782702069136681298753560049442740786468986149234281206240547100995072655909522404138978030111854441597225085827079476179402098472275322024723064910109655042448381823920934605755477260459109478652134243268110412788346770692470214743301412944397142393938375871561614483146652541589946677629347492585696778149612493601202794232167877746312461058242913506302685963364682840190212757952005733507667445306764984116221780032168973756395956469364908964797422257783477441075452117126418309266909134672711166759675595423150664807048370860266886874791411582505807358486003583033623178814168901592999244941663632034310649927673740553663519910261809365969768033081681614989857102405832262677553247432057273810941164092065159272738053093328664684345688395067452436694997321453428318999054321670648603928463944313385990807948383666422845291303801526988010184331773192186033783259233240457998254352740702196824977973377646031807152345266120049214811622736669578489960455437397653998190532986647743255756897528074703545718448184757006068067583771750828855823348879703245806026635708534859505067023695593655829437731091696127433619875268669336850120842972117201804602300324576702371462016796145871371021474987938454137224119453751966905831834631905047776495316746858129437592686065065989869605930706340416139067833766644118053803471045600140944261267139945615563157389714986887961541135218694830690365951464026834952741693397168971097790514781328887346849093871555287464722408725792560009351400479324585450709980085662727428761730069316292265655920133441040927356119487162603285002237114908108546588443778168244094413487018530232227249916372071068128387098023137660962240345411317067955962286083445937660751637646331610342501882483233952821452089542492092042868734053170485540472128508548441440014552566073901924760203357029462293392557585174547028067299370449175966319958709666619176180780447921361819825159225810561379603462825429804316241109907546957931299755289861653161686007288109934204746106410451240060706704267007351816244292603235013711500487914868855499242351323907977658954417186369808266280965810612981721142226058832825519842048655461475269883039237414095995305944048548686130540885772435122188657027344836749440287818720973827138072478239400897634889632712870920722936168109729339586922958527984450791340252104567689300000552483364366926178815941602939551737602096991634977368258662996629503704357293645904350976970895016795639478721633934259720113098717491789738542296915129498043597393463172547909009607599929211171072709583100478376883278814422931555355690366954843661529140509309958887807040120563305416325547421171856591552178904394360636609465412688857433245981931156280816303812843489155664711299284265878048415754940638527471956593880642351969587596431943912117012173059314829396369857795298925725895829963051214554013059320808521510060622268639714778047622800247447870087068941169742446615178440198755482953742329205874967637479429298400325124688163588958024423836781537467148227929339184388182664477677863678906620577441411317708182771804965951206571118976657354646094391204015398620822889823452731395520976843440217571846714362961320209517933274157784806504666582830451548653999802216770691995250472314949385084811094725735192969503707061586512680649084703545980302347073321641489478122602026614672803388184486041425088932353127547265697994296731656520108279772121767552715057999644569461589822573552674789449315880853992383016297062539034850726680943445160843468282464472160063971333651752378148907149713463405701289307384922250319626980054053528479810319645728468562059252573886870735422884129179199844289472643600492465569937474713574212508341332742434530840207233735244474400776986224014352529420192033447021349550741161614957404871517675417097489024826784283924633406273638366009631637965300148245517200779443196912044082385658341979618078732372129693433504555540923461058165706820699121295754809963198153909239892100078882900884264821142300112222327651089540062498380113442986849547423740631667591787105315359548113914207893981950550771465859499705472657820886691934322357479474652813836945744084561223930577690164008066843595767735950690767762896955335527014597268684420371998621285679445191310323716056960445685827686413640031606899789958960852534318573942676014650250561161991473876768529244320037335510186038272785235350120438899042723380593120561688415588192200484246635156397712562841872913064230257480121523552419007471216916771378797291824188718187628698162942586135607282614366698284384857876321710069616125124292312008134680040430750223624217332987462783462495533023094570055462950234130362824933864112192202198651536232019854540836545098518583454747315665195634745492098355138159337830429100882657944276600617403211984381794093172068361550650821132588234418464314239821131325042303021350296254746234910478429189030234320244336770783235171803904463197280483421133087390034430663330775031901661972910995331521902509838212163172969630415548990380854980972673191663286092070888521155121288053971948140745522106725587860943559936794907683957658576272246753894300839384270541707057419134354935261445428502656164683020158131620091706591362685021073800047538416006351869417495135309107014560709135839145770644754658095679092118935344594447963937571742846968631547438555795120941373470893519831608912395259909364041049255243096001165389593622325189550037661001332180008683734511400534486701122025009600350921234046832262501012722044845961184371430981539054721084805409643999092352130395049358583320528527920439814195760801949395177594649917932286060741612063528995347959930582188071120032952287451669620345870500654010884730917160641801743150168343157446417492262602368494879807198340806489435059898338794580288310586815292758206064576148994738650363237969529083248845979993856033651637507248315055735471366131428302567276387154737482114303877708215996647726314331228444774287953814404931055888059858301819050728605760334987117458534426225846024883720922533041025146970263363140379253960524230269957787881316895343011130628218878851306363335683675104561408980481491279454836463918676542386652942055001122533696511682863141147785353325761777003353346447071319895971417406256248057823549115687553712010783825025361975621605331677396510799945525207852610714387846138430967470776179828686518277589131536972995409421307842262192527481420300123113798392064148549553842856273934887510526458812042053978556535109301951673757757511517077449057850725228410213184339209576513657394604741600957117504799797084620334649322762478858289036868718178447965901748672944030388592731892814201098796935770047339505204585658724374785117879346900440710523880319409748239128295075613446197033413415281103127673035090429601953242660806293648891784980747767359770762577485886375088107335171418132862953392646727929915259450633904614560742207897845138817211385481556502023702470356650703691865534962959934585950003053601074935760992069094791983365094208439593214039805037950305801541139103397574473562639141499625346021794667164770644271222310504544459376206376939951642148028783386031476221456892905934447765560881397786641143020851356562618082445812572728156637874592223753850559298960435572571760162440290030721732310950398324085223944036953559773769095797204663058024646282546545223527312719003471530811310288506120071756249155580448410924088702452400723947068676377993458196503342059876807885907760693699742401723776803707805938161510313781536554233734457220508919536324298236036533942322130205123971675106135151207929783350467503361317390747390536683447946645441836959823293542341582090273513936005123974051873486391761957817000465800819750588892760690142040848977152287200804729261215508228026910920586438848340534826712757748497985851184846148414605909287099159419433293700427036926575568093478746803399032209471314759941389901936853166274519936906150330029898697433347264441212335517987365530218585093546201370039414879187936934930595086527746573691960965800465211488501727511537912385134987995787695341456741050422985966174355043943308671745110084470052633482853389190645991303163359487095288940918605150235405177045000981747753387667572400089113944892175658565060875547657954914651997185830435031286431519677859640568714235722341379872665488421042625280499042508255438628434564084277399770656587394405900122752013182341228850643567491070169688472195893523104398867343083329695835667474256734539098916590448646334230413428103162607014712294157344072832526201509999582217086204922127902712804134394809049925920618517797348666142821461780727766052717138306524986730563206056975344831010609972756480727501217602231703757425559473776392706587968990960805994806180831716311900949248194179777123010419589975651769602859684623063906747902449664451747369779954669850119792425446354157834787106305065994235773605431437219409564950774536280036626696782315002739100538618672222243451347913234647219430040054135192365589280398786036293544129652668794868497997237431806596240387639334181273387511373616059797316460730914743946470799269031535541828556474947137997664063208686435901489113538828408997655589596749345391972879734982031565022392252547857010871656539186852452104267521504895945079904211532855099517935094167988793645660857059430878904628807483349779862264793460718399024728943274799070242352986959796572921227325058641217077589398175200999757081813181857735480963019462690031783502205062040857875525773977928315294469742702120673640955741569325202435230675410672073114096987586572707042961963023197861888696149272944845664314980346751622292229941258962161897937514246327428389468628906723777069164554600154539364386658774772941617111359285422352922530374495902811059807255889728904330866350515555476867650106060991108670047226390326977871903952547432753292656364944138094525738482876184551464377543413105021369900478070955065988640224097797510679870433143761290412175987169765255079017984737025474973412149045949798752836892213235283004100490120075771409609821067291864716382654707819470357453432640912009614893133996739948481248264497952420806875118701711724258161914495263401602769729779006266461751086295992326582088800839000496817166874918656593626053261134428582534864488955602031985323266130376682728918093287188550883848430551378831118421719075826406851032885913501046019307512771790331584302294176743718019813301101032487704312056017115132719080834822479979490693950637438617364826880497328483951486447165702811378182434306305521417972029284452828195384261339054340690149996451235080108252377802408044881913809842672079910413285165746083181701305658868492233591453589915673508209852207772030550545050166433135222396090281236886807015531527173255272691049639731506690441480500468812185590160298269985442383534242262448187903945310902202928992294056454055946647107707281505186687429411143868736177601701810663371041930432928549894990616227211229043387803786291065103678102989023257637607551037012430809845779613863380160945310931729921054725742152341191726244692589174397519419855785497192904412606554098876441725265584536504243861885516431370707571033007884878141281236812423479319963860959922512372030805927264948052942171721059047240193752203433057992636749018559926007890802833169866152943657290139224301314996987825544602363031939515844578398563783847769630002183964620817911022932887086460045201341577673700745420878337092714209022564880276199488798515203783154624158932950344688059711468090939114250566726044179249748931616528253698922376249234527121145728355679227899413471831543162108420864201444018534363940334949330720160630023059482517511525644835457609807584016104569217835272706779707533013231097307214437086451377136560747481898876981031028927126842586362809661619710645523253945703886497106798730554620044866502456906692291081342229320629539703925638153250598395454566934801839145387124527010315617965957494171770692618242042889723986449103738174548519619109373971308887265669123905955901775846492271583132646187809866406869498554486293883235407747649721496124081725445820446199937388536163749705458727274061615647158132261751962775814878457754368434410844777451091191170217873262278877492757228833450429699177356042004903507547824460539152115086838494410819840664917661530300891743581439678893055441173799681375988942834192538557952516874943564390343926528568623464380021202474428774920977977683246319751874208363785861271543676445667499570619637917109323365100989923434358263703391675352937047646484649564190147583170334010553405971129648125519669591072963676397933370334267353125793647346903083667682120634562215352842558455922632094686284287799617409633308625145525936600304261933787115749708833669727336592434726353446301034339345982791712129995809800854438399997849063188374660756083292085945822924657327388053576498104454748389780450085965003227406763964065218988500127597720858689288917233564387917225293440934014063678068631102188872099718013565912101389261023595714600863636808361190640729956897777913433454015144461771900833440308852590335371110233396737927469800796138971095833183606923148531456514710528802877523012992081406481412538782968447649834112511697523680723600274204653878523404235092866011277708331589235990175545549448580451764573839616898312825092551757481731104920524638932212710793806220366828438949251257068836457737854252420178359815318888191045846288771148240866413045787491298088911089990272075576199389016732286050836860826483474623267112474760545785718335939799727076764483909144197478756382208358505925558157894234249822486632183824897222779387214906858192927935062688878628973773602031071296373418141964872588032254882563963066893423572548061797196090379334104721924108447450764877376102126320350070319404848765775246251095748771236745967979279462587538915796225392984308231561349459066535784515039412400303465021060704631016278272654574792725390706813264288428463601004097284397134780896589180341507053367397081561135908443808330025047880325458616876851895766791070085340987165211157612367174860083853406682646596604821009828521734932284754153121555664271433380276041555940270353695860170120151346525649776012391553192932933413778160593761177537608203363920625480045285976615370735877858464032408810559168568687095197400613163345614562539584777802185890761811876233840560107139795740605719874309862746537823500904474349101815057635722570506659563140195302218928843374856138105803178137524738776884077957000573713707388828085296382909054337658201006940880863772985770302016852682279610436437066278665674340109548416977883295256722690399541022415415374241795506405376427524747436016139185042952439045228452108713060978403183370918505473481974685494352775760546718011033033652989160801633835359192994538443698167880260929019922776495564494282600640026538875033135256220484136072671108586575457342207640992009587420737464749718662595932807320446384158438442410903205202997181922241816762203342666928655228329647377226017190361293969935412691299775279225391961478530987099934541791706327568191331518569297864916258384228001562503512115806232136751845025881593208045614144475908797195964902590424506491417737603263293932204278826941836194741385062791342757722973955202201057249463099197898375158917130717330407491292453158105777826884423219996746088671026219405091796218190677839158031840738943330962558230161017348575940067205193538074810952120272212706559133034847268378474679141957969255135830549556448454816407548570203846752342322136277673189230429709076691487929758701024552002960988171936814466335213872720587202225478423238946663004635507600440998731888038185685505916971068952930987266326410064458097880604566636658340915800290810785035139870997379259717032393192967758607684408383906441290391296897555032141563844877690128089315753686581677743802739161428143432581753660643250970380511984403450668824415463018214357314634422199172503336204401161114091361512460560311388435188836156590387815466960813858888380664023014950270729213684726698026825530370472125659527846948922967890304653520083139643583787740388876592290805595899396921245037046049294466061480563004621050755702082789791536377344552680915376436662872138903569821872750951772742432217312834050538607877812634059707846137367266063248422874708805801019434246056980653083235430507461575433196359120617280496827356670016072699365676548922240807089400112599481081999068254608869840805763213297440261229955122454303772227138661220898611749142042658162745378628299824868278648061362444847650277724803127574631041906071178117815409905119216952991382745142554272215710735926233839182710815368324308402329624753779343636429478300912732710741871393237959351359472672360237285520138648154420334861268927170259302874623590605865962496693432487241207091975908903725806189460098023526643044978499955653521557891505568160261413810170156025473603260946825892676750224633012592905422158602699212978421740821553420409570801762593770731344782213906332436799561392178416216325477217479588882789696190022417566687580207398683666932872370407189824305695875108753205194337089090885176775743391168639445589318411738063957533326404786734876044635050707781789667943213501238533509345243811744812510285071632750383618009957164169235859863204259462008533730162867823887195123214320299924429910056030395522332866844679873342117362570366703319647888820573290905162027088563784393238172453972043950104421713180753610858005937644558408133079663984169591117005670556829378098519278307621574778831988642582848069550633799201437886482409346474946279756870105977095895633046132679302062851408091344535515299689243934283551580403825206928269338047237165198578297256082032472013036543582840640999678752251945618110095898156980486602808858329415901931308837856244015006223673573666416085464186425988194650355386725806346903767678415820936674453986416543624416639694284973204445099378878937582591718968587470213513133936126363970552715712931997460655230359376932355555406697248793830471276506409328042533835753968498099081212721769127889910286560603577779267677324262862326735769956815530069072474315405629291769325081925194161700360611292373518524670156208808737715181428921994783060615561206033010744301182666604937838469742570146400098359179060438854101666490963686040957269643350839993037125855120260317273258831105846109014619196159428930238081415933675116955410877722294603500685510667366423380674883240884661386724936178437622988076286202406097845124680742054134057129807569795356446347007654020103564839273157384277786668874323472481938370279793769358762282100727889694881846993874311451148372069715327286996511097313951989837990562594722834411387889827843743420900047068083330947064563318603976793626372384710414901443126494183064672553107313419935317885910466470996103641587045263421591957304614877358137300609112941110761974319897926577252938192901332092869487209074655693412013197827163609370097665262452643095477146817476679570548550078020454021794930869506221428955456623025781433697233757587388037405029211143685638802655971526051611393400356338868808901897107632384717683325056438582725877048958676684736734900317793397103498888974864920309096176448630808474837214953245761589830591114155308558437447901017988951954991661946274684774744028061886780748767513940525960964225881309049461894872578279460017607041910465656257069864356828263771513258516858667563999598532114195995331327625240785174668423033796938944570175044398993967583832865489340107509706067010459564068149854005145265668419367301471584075707762226231482775649668804213766231171860322803197471208367129984490474898094904538015015476991328441273843621040000713431416889158527110441527546424769686848306749326641394396483731232871596359808793825160142310144439194316277831096314256747246036402441943231471067762295571863521748453563656763109973382934900939039037799616756031998051632903267701095628967275899681891163778982120153844954398507802904691441767287968415359017924914574406572525339331892436396427719473325618035104431409341743530097914332192728589131018078332795806542323316324030665541831044201370764557023753265975388146430308944308038120533456471663882482828159818008458921303990227644485097852976858147958570174144718586441564043980934550658170851540654067651707099196856119785756138144350666024140122857883115237796037043229954235588486522101991528113889606435360758719383199284722669446066470285978003169084199416369142617428444523133292049882374408132561559835289445575645481702912629323434267305207433446767969483940079451575914781803948941186032883417449921844028943669633298076038220616714077729659442922646314986792177016870726985807509332830499728192714265940601468611409312601886390995092361564138890109375215775279015300985950999786209739682431346510377200618557097664568714458230401017190207102611557810313633986513441152117950233645794655254993739964698163073540998562131220558095368870721670957102797321245887081930213915734914713748065798425335170353136950884540954778911658912322458839989212852973609409179488729377216258368980462891715437890115973668752233058130222694662678686143163780639567340349019713500203899531381171399661128398517224122090740098878999860525667990321145917762442617432368539630932744248568130766080991195201895571942222790799459547543887963630916185159777861169118315204527689387385722276973183563619429843396343700547244649484821956309915090609454158732451658258205599192709275720634053306899685282072953128040573282323399530388410300108961767350086240270962910003093876282953096754296217558518283784007664650051832097286236727754509825542964527315629589213083986603364509028719926287979404805207568590052406349765344828615812701770057393065266912221185983433269713320007118828741691874085557385364458072096132261793297207529582485181049889732754187466639622178253156941878265538443775391911951479580180672814909802864170405214109367731194789181559527191302891516896428303508268996638563377020822447605413482672327947242188954797680002271967741154508818819082576940035848899204886925839079383310021628033003362949190544539457719204246938946058881645673556646780214281688979711933986936510583221273297369578412800682078010047866849690630404279220204183378099581233780353801523538964904308291940924780407428647877459224644232786843987876309652149048176821872479690425143191380547972625083327523360278998401386804323039619698036911418511173753761954536268322710201178994270932143258250995898977222417077897067753071287890670823729009587356836051931363403738662471116838161937653005755641123230585231167321676491997129973745785979502545050308809287495904422103910940051936055560378716587124444254745887757220791994997641219433828537403644190315875248857056521502419574341171727741785548285568568775817092917896762954700224845872002729007699205396729124192093048190446515110285922071016770376872708385407537929817777729525651196515951849761170052897760849455200508066939160477711016720518535002787803177030795103585843930832450602991631310171018793545704407678735607199946039856055848301442928905412778415435767696692810757504751729646380922454745621868974738756440840366461149672752657678668840136304698764410327425585499153438074352266264849351229879621485168285005436112778546380053057659369704800873442876829055800118982207289368636426109120329384618799136008743492497198908235587751220624617466364086032184829106799266242941345175110464349940306541662261329585210603826212905192119629013536037328490584933763160936117166188904119249254495647713852831841818456816717453777092094589810883917006512950124134572490705040240394624531748540700771343585907307165886765491731978311688115111024806933417573336161096840365598784731478994193534859753444797565327290217644779552901090088453527802860247244440606148687752465327196226431087111212719047595832355500673968046673398176971516240358276701119566526459859157506496279123707425575311909726070560191468662599229456192994217291572118609665213583858779441202449619785535641792989300651628762140170088981413933188699970796060034738037357578425039903655841355384339483096680575133038350659378876286201661629228595629902614328081274258869502449409476862041405741977458049789249353494622942461495440153984154160768780020954074623301134810046169983421420299193415618852153743877683137945108609606999615665031252810752090247544223527460692684598470498382442912390780903541388334844655771970367847315513871845428867166343014057511462949378319699555905840144969582514116888522628574498497584514853829014810338553258274886799261862431370090200717240480901071969236476447030929530307554808301288319393778727572718303836288900816437347238280147611216263905305883009153272451566555696909597197622407005801067530959313863252928360090966439582464549356390951203393268819541536575536746473781378447359684320478754357378392165558241106815441105181904972916290001706146433044462958822665769379063091945461278961202934880332710804792639153037312761170709223185984226428384727774088568290460467610132304051520365109464376841746310776426320030966289079148076039242888997278461805225359161802022232118592954460798583729460328238812512005164118924896655885363288428962703704219606567768799625736494633589294035453219083688648415813807597788598669670647236732578245779048564311328118369857102475361180337243049220654205648691269402747836513430385731882167050837291163149155865335046150516232144369457476865998306687697419420352717323368546116522767048362538695896429464494698209980153443943982270977844853409368443150224067720379265301791289160726883620869312413445463879320273407817542718830294206639207646260187884930917267436742168382462695554946150023954933566848631997867776619630924964085078202503979766237979765367865775835360632733993003278640140172047714237872937877943735519730732558004750002529858539616531841560944856506672958295871626588221936951938340313351514403786316392565813227402450947265281067204056042736126592168541851051237939497551450419972027534466707560731433559812777647822076088833493870116421439582429055432584314290987083130615004296733093269471697753984855202586153740449089405722856789965948560775767470656285489912172349824360472374294208801899992689818141215213010242908958027243486250989247070878711416130192511635580392751427367532784709208585367676230335999001412252642781284237031584548116704225705523665944797066649416482101397788526712342711844824670098906972807296835841764968596221182543953515780666192817564194529276082023707604110259406467572617365840240164553671640608712489140755216484509074269860285757226247323514307354829475511640945508951784154883763237197212100313236818042846274221797867341501189860284031316936032740774413905831753107336128069796976098806994566308459351338939238015771332878046259157633162727294463649853200412716585884652125657668903397052030872513375591512691506713383917805687249215763516642986607245765331823115653894735476722446170034808339839192014547465536322811763468237860061759749544799293843090351888648262856045180583828702353072011822749980501531839964911806601407346124514511997620530250125367142240152149675493873588800444933178770836378447921751382742524742807621589894336441019823373289643843310742012216334326151340023782277452491237233295126653955398798753203901626437614711906725346571876054447786064607131923198668602556520671471861434206695134696751379683690607195433148630536693464147349793967687379388540583933856624620466212311754891798553037521152438647046508996913191961497741101499644941043953405631922827633413333276218430175927626798564399090957535602439687144160831749770249462168944527341287943950332974307185048968382811671685285761873150764298639077477692172261717146185945510330679057194252906867210750649162793430316345921694762422209867152714520955850167164420784358472211549022106391989921945086175776164387704707757516755038879004095720731628841868779669203091784415071266818301635552334444124544048826388729267205982668342118953507832962073504438202396263118335958397193256685274652698767740370940108369932972444412204392673087992568083750800037557506242936189622961558206872304601414864345032620563326413856696678322241117265306207644952743753110748872746249729701506452283920211804748311857752851741184018790096755563481803056575800196838854311551704567303243709714656766034305627497963349197176250974578235220557013666781627676073236519690807043490885280410531254070674111835279194462094803440662463383365590341881836403011277240012479285869366906871353441342485364208465600818893885748432156089740616745845148571846229443083237219536232522319423963827072189288174877991813866550848580241547633845022712991509424603898579081842920475727249554346386083559586062148135047897294142120018116048370748324524135993823923024904439735880611244754873781195309461431830417495782596278792268853208639273995362995567356875172282526578724527071622221447916436106405415872103215946081780922937853928105386135329528719790044153870770128715428033818582266291559174562550743569812441281795891701103766510504895824504948996786740037158395410250141673756761393197615674915211347356135751760997228658938796168655939337987364709605776714804587007582129489510127782676802575121449457118948327949400089892133098120570925096901554955964488710244494355449796454805299820402918487842272838592621520504248279425614915441985829535474775564491190879971707008091599474543184823500416265778578268875724945463531164620670299317109633231542967665302981760013007819951697336988634085569796361499523822139858817457893455837806785679580568982859862664459306838403412033668104889338200840839978312938032064574025962652365548430222603423161680389995015199500791578348848798589881443897722592938240817739772835355222726685619590092643882400418329503754397023219743611777787115173878184249386676369094967373656889962990808702852162876931582588130532226746542013911697152390100909885430138071997486493645950928048871979806151364722296878873667745794976061558757462186022988384030409444460415669395466672540269282292008369048249324574874392133337546269202857523619272952911994574321659946589493882210355561165439228238414212718505467465854836139360958342625364290324724097408624599342345575880675400538737169320336032850877574262791345482290551327489921215530964722733299166964813977952511142081238418889874052885720065190262201201896625428357759448695625395128845872461278613916346154764523710129599231474623595963181190245527231692600254002743067575861709157193747987643916730418230306075278674922236526715587317092196078124032245216849722979576407920658962842848314728649129587229550335191027638728475753614825378007276548490537650967689105838393482456440791963251113905806062955738713500356932968234149225099287168054863671431528117867007706393787608566969155603056220904016618407694947008207976652626155112832017304530298843090142451502397446575307280257290990194816318188933629366384935258088153892578644294687722468874539081499466059290458950494755983284361651111153888597712664111134477996580202648959723463159740770395868244611958339370640950603400623076054365116121400174477293638790867444145868983475352144388432734958033398399408707297185653639268819950549832757953549639716226543782165939751378622280086865323481406041653321907961997847992257383670126044965183450809504229769762214756977614514796567893392017768044903034443099316062959009019119428594218638469512135191331954599981513275345767951303492659732926516256811011298242196585495263695565415261135939101626134972159673758881871342545801744331585718306818092800875440384564105339575080376721765327535564421253909032920638727128714716112389864528279484384515911360428794689311258893559098429249276982406712472159788824862211761336729974555775139105862964023518591190363693299054456807847563796525211265349299793130611816684047693287025085131456174672887562180020518934564509193288396915078573053777415072145309832820682437615853674676898547802024206351803303485899825861250072386297511503723512629240226891951482662237503900932147456872707178468193511631256144458174335227446104375146040002331808715217431769713670918812085981719115224915517781734602440857566288077290075036099476546536864537379029219567795277442594449573212399194288492019364353248960553713419508643423233696474879339808300029948106471692084027201006087390207829407369381016949711929101371874768253112431728124665920984445075266432082830244019559358391868027565375430470946968672526284716040265101924601467128628696970872981255843888486682398118069089190814144007019286798972936693531454309461662619382328228283677847262502626224215856860982934843496992134272119469989561860849913671455871587967716825934217510757740262286514538021619130552328755608458722252316411186568965572758069989217260100884369195563192133114889980809532036177860121073968781186435662732012662846477204812160392844583061817627572027471807984127909481359880467854654394610923099301701713448388704657626145416922010869819532527988372909703713244984107582069511303719085565827305208942344938877894002326188869897714086389307411429712070546681537205797168992817054812992751511117950081175701687392259555951235346822903256959968651444665043668411350040351251776056946549896933162937719005998711656471101696940537674867420418982990470585225578170855319341777915174278771589046663064543023915246502290168417472797042009154332906432648657450484590330124629545000778318394650265123505470384377763438320723265275929076997795655132941423420710134198607267451284681697367681419082472156082129446895042110600339441129403106387567470270855840197888283763433752646792223060088605726533501515793743989661921640277616840399355277409882659229036764140817576843850232137840554127424116189946859861501890050867662248601225823866197585000637216578500906914895139546998132165370135962995113968774772412994863315175396496193237297464094706564683985186208841415650723264849301497481617095613958385484062546792240110043240524225762096874651407992023617086768949137119027158849964800546058711477980239219451303349946594577917803161535326355191748942928161141975667261114037575310963676706017204603208409323597877228769149961850668478858360360541590920922210339716444933910688289432733275454124259089369741760139152133367159759047420021648994067106270475361450728543413204309084827496361437490579646974636284474682886011013525539252269644025968425171855650572232216269490260031781751187116778603775351690592544089012504140845189396721641816423171061079995866055569885196584777146501470538880173842673434464637822903966582850307207051063004607596826158814094898952324499709732150082795784527830671851422488873011850870170583586673469046894246318559142230870730949136850035615262812498827395307177596922989450640778109996245996012979660364981676043344917757601823509524441209004785155776002552760786323077015876000139281050622620278352021025297648334785647663483134691126793684402000891961640508592071483241745250199854419983065397331027045354507940026124074584712744166964946353506608730248358191515548495121473318775175088161640507878681655561328739102049311167194446822094349951808068815737951687557212468145825017535865823913561686854610966034812985937565190501009187419514792109614577344317918936507291971044798081592377938169692418388419594032259554241280838120389189576326784655415194338348844256081086428255692317968483407342693098642022096763557929047396153157943281549070321482219763000846785425017306222586307871836080359979447652458280373664489311837798804525202428946678697116064898898265249263312317625658330631400896380203661453138252043175414868918939207814872639134479445185727570038323730936704621823319912587039900555215149663189834510702110324429240755202882276843919517454696404724978263874585519615039630227676913538441865877451243211646044484280669445547877238352323388030958153392206277492462041700916646279915749925098406404071009513622979272833731304116094464278362687552247828624307480369530870831072552265423892061795723086140560025023534433047326487678733949569782660921884266465553610274996834291482313905430884154901093403877919576045199414877807121989295368068951146970347950078947404404253950110932306965626831505281519883722476520563755952562954321548769788704297657172475093212407921926341681696257132669414352290941388236198886212306976533891065013448837447735561256863589328797515120425853029267883061555017246000766596916897553746737901250817717373848112583029502609264714780861359412960422380911224119573392725712811738857865500679808049584034705581697789266636409375578729687634110700205386100615495464637582491613540893540242355153069687200669665757716583459555751297245650561764918166448537862947278057632510248477994372889710507203360065088316377119273243659798193727454372900575843831711066860758626204740206734069025533282683677330486516071256596195744447063343694010927903687901952090287809311140981213303604933040338997644373884423309191131438438717451631691733478571008517942426258109339455794724560211092865582755207727126418848917774923022609337815105566580347584558986706800219287571027009628316130495745868974951413843108194259675356035443695724408260916017639428640321974244393622936414437927578796058885123933580507175454088900803477287518887399378232932520032676805653182521264135623843018484525303736566643317791305073881600697127809344319413983523408771486969640980232847747403775283703183617346310973831486496657810600670770779153015287112327876745370298381083683123915784053805066394242012319786462531424016167562814078662214208669816952878114134098665221218499053373235477094959151296208150122515674771646572947774667460828075494125790660271993880719994949212672205007148074925382086841658308779223037520763673486299532363561288214712773236895412247948937734264912298231162545760880816122703164653674327104733718590710346469099176573598965929938279382021074985334676346453959016996457449635537268203813117155436428751406692013661250970372145986516111008601455201608050482217306838748281395975600842722491240578317264437331277586550426702341619222010741555272388431482603471483003680338847554991693026551714056540986518121237109484179721178350772839125800058059171251431512712748088983910115816356126151401532683145795926357912247542165497650768371954236063381992300650870932818660372424732577956879980210856580740909427391520203835623363229395997044404205804835406924066807217196248802291731071735679861777508858945791225789899896703876307117346558722631999184523123113330841011694140053414223717530884053569198250144502592400599971453063604819039654891859257166498411355628672363388626562973401471783055629932090154805986444077968935322381471952457903574185804374322690206194106666341376946212726883561509162782630387254674239117400308211150643418336967982313227240936765496793772599406882344249233237911517181703158200436732405192745421559930900461998245595532631492732156615029121487962214677362346014514091112675584803887346976290922260170255853949813514684865174321704503319143090424221617221946810164160199608573230369358907169392436451130273086938330633636042727008070683901336481975804781741061107583447498232034926902410469881399465872524609658417115863455012577224504465539652082511602728425993460142056474477517095305800530298923168273016901283209544612444789239279459247358820961149439576822969217265267617909763885529636061887881398236641635800380811899645373921908190700637811537288736774646014404319567818201484307333138141697538784823090762893483250742473671020834138126196193301689899121788090606752902707996922288689509317840096994674534968081671861671309409235851425558578689814753135947117319775335164989430419611878574090795358342609234089563089099316347080095430827028718841232827785923944201465659121469153804933294922864320390200493026514268643571093210001906337147372103528047653654570547585256558852510130328420950380565135453602801991720834178021000767163047063740691205481583671666108022255781625473544843388409349793722050079690538093224392089780491740730361894732769153919939099317509888724707052962926649579141812665710255199009075718715176677428304067758080408724398749400441070776568519206166374679838457984640460218455893371571065468295326170650181260845129955662280988316969583703399977319374718968148636290257259027139116347941392654627100952418222717589087678949318049797407517385140108334439792744989947919115289264688225333809030711303768019015806476522989233210994226235582434459077849156706305936398537494134336566189191740552825385278091013114753853242126307609782689169916420687214999156502643583482942799486296160677175084322506586102540824483805855455413733033385721304147469561344383926525201464540265584266068491661515456852714797921607288654770761014484761715441906188381541999443045797556316965818316538521074997390885762063396020535852127799277941134135503936192542733542812456475082579444668397616146555469740696255197805338991849347637452576963044773427982473959489073142923160335488591640554907362478670331309240197958248995432569632413022871656867801790055876264632480187267583117491310310180909708492939679608829081250993358951843546728400086505682696064041780679123469452283653228190810952832938073946503088131520519032946048457377690685422325509706281086868052966614738448357048416911843259315691381418581416576043488375218456746184587280747504649577296564092655375623717233619929047649423731993234686880269959244672369252953783730087880373009190932371326421369759948211020455805737501971638407004256834265849203915282962926221182561583287060253566966620614375923997177892347284856394289636728033859387781278507197887511084808353921156916251631744355018236195091312935397647680395276880799097192079486600751225711363530375404802660529627141204905499190690058597605744079312449340101852438961058499441370472171895657473439643950961012460818759290917602632261000883759468343683345336440976381317901449545089859957637855695492461350708553552787794816097325408091144812022396794367421347948372015116472809481636026370289707634336519178498713669488326186756169933733809489811792550413893289834089111990658780755137378201842001070562094691053283104763457884935149095932389529615420498962143454091474566392603361455800834679544821660693877823540750549706603863563120755514465681707033244505016489518007340328465042677034595364424709535639123233286017347811930348052931822840643791525146351880132208257611467483998832996216079633350074747019473463125804728518121488896582799578226109287701456598243939598333377441498644354170932295215883331145991912542205975164586572728632171108388186148451564442382456202330778589583853558869311127247524698781100767788922883228436655551058877910802979761811778434843313780670980352278521558070884943084807535568711119091877252130187649799896702500371810198642955410046288380371811331953992862744492450743346171448552382718624864212229269482704887215232678567989748243353924777503497838305945545379471477808532029278814853597193875159515000164591099601340210532853379548839966134429475172081007345578899197054980705549467806650466995609329715746572596543485490687594936460243993630075511024321438930439680991713630048559771891740019756409997372642640302682660395446576868482345824527988711338030639091575536737868052556028305021836162493155353263152974539750027593893242675964498079685276989234097916221013555043728207105363512929726914298848850252534905483528376633699903473996809574336856040533217461555270641987526298872994710337669243803471908402733933980581003905025616409240258240118703975122709013242015095546837223992263077154306428921998118141854238486550099774462440858628892608918381941288954043411139095596476793448688174644972811679962067204585509450534931062631864520927294512715503965983786635165599257566900164264076016678168824520118410580709514094713726991235382548861795261514933516587316739792077108590923920805401613643727849324995284248851409508299859761315508164822437530134376965063949041320672077402100180747866636364791280800841351248639873455341432096741083834033513398573236377936375856711561302677575802833954967727932656968768412756804821661309702036518556372143905779788518136842677831591574505718675070706894577762173132043198099554852776906008409955446604500733066739441203212564077775776534467553367605690984727901682129061166645782256817423558773875095495867312482083937880280291553029311723989427007255403187822506289133763966965564892714975580597162858609135887117391930480471543336541865527420641276368409074181540478053663392365003984494594012573337939803323937928000378962212672355122158715763068688572257270501711323277734171312090498419012163944123047314084885686723716433138416417132465649466167984337364123904101677609752675798722942945339403074168920585599423062000497850008239375690962737410929497286223621731968107053858957385923869076556974642524224194534554200890766828545992958479872336465906172156618157258772897903572625757436428474860876794130272795975025138838039292842061185064154897262171329539836368600288297038764690046270546441213109117324640847419418479023622330224993783955432929640438901360904183650940321985268742747831730584592908643379894908648221406431433884527561394442808625149501922315530590580216479857651466440609952374338193151801925772229964134610955043180407478106327081638588418321722089891375211035246215791930703199909035364186198272977852984670150309405733712949543009033746901024300161223704772918251179473633546653492612174799411750226342541728754523655387280481833497524940165599142404137815656591520442358150246586123358603404749628901274660796893155042362517980180644756324521048224566758257644772314577054337910632468148424340566256472407179526459807741222728459820751630979828058360975867978427308695080302629230412271686704354089564084489012352976133707026596178009011070794762250136765384359437443684373779818419377831330490142979710843820415850619067026891075906069346202036749055461613721511670257437559133791759304909978459463992244230234299989937433779876093466540632314062591521498550494755212347368534260868360825744391927322694256837785377085988695064817564005346667934681914064601511520796075923420633176295371022175913585956309422382162305544411531025800047750380724812755923905231968613682473868799384333535513913641868379848067665564766584925415556604442505338477949063253480295720098591035599698098919776131759140969338186125632012057511389323539299348644840487450056764961806712356367935328749075895803267265549770272131573570223124626671471850808665778231368410744971085070095470182890904526048221587360659158685486266806161598943552756314703661945658067781354378219112513110582656534547891626392852825252595068454589331311584009416459036984978313066797002879052428025103642564966650342986995477871825700216600686505480124180094863173208777240202548148530815826733944176575303010996634302472478819205837934788270408372079555581038598952060836949892932405843656528541711370506421369095686889348821555111768199055620652418523349621471880138930799190942981322814707757254090024912239468799865518361699887074752293140226596134089096440501755002860284059715364914051350261787413602221836852345672219968624923906738671239761698967628116218901003414785575409350299637707334151428401464647159366585532153068115328314944169583293506652577089578795482818104790489366075867085758801189668544680587878744445838199593301391257592866990386398885420873400156427807323522771554821066692143503838534650106868826513607646812866392541872076904513236630596295246873593482496754813251922978310495381163416695703906039205344789817933564801648325540494299414299617589756322786146751573668497960705257439808203363756449031154615606816361896243224410625361846173044464549130581411548886686338038129972008518777005944689528563603149353588104843347851572272330637727279659287397215343172038584622469339916517908826056616864472733577430018876309801905204863198437982197438225857885699397840722344245982758540400455461987908973528748685037424076289243933774985687260998872896995595062977152182976476321550187740866833691202301619444778156385945054827898154362860053128832779573707714557584369177647094127211140723830344687516917886602131762824664424463329306399355852446683332086072195531937477628615076728374841274454925610164279361190349347061916251869942514725734659908025192116140521359345172780972993279466870200659972907804542109263358922950193064038704960287712641200054892502384007971740408686572243839639833957439707672331463487359167301512556671316972970562161425374904684321795837368987221526856568929696471318565626513927224132445850410426960811035388351580290664378756169962590060686232258301431586417355629724573718301775697013243682336661778210949939961915855927140589887112062634266555483763346887893563759925553761677582491713281519442407203111441426774787397924895142565879671534325155302140264855716016705144380400795790807556853183859735209994917744395335844325966104393187919860917177932437965294136679205273391968288597415828908484744418725806112483749649302599290685158728332017032469524037385738517163345408421477856879556454891591038642196005163947830214693596932290225437475597567746866708429456924847727018906145281286756416180703178505910844459463447601997277164703292079204922299567102005834322737007127423903740529384789021965912929970002807753472884825413652109948352927621284660936747935469443590535457468273408209287977866210296688944968394378447798778285907712948797496261428472624775333846281483560408402406549456807387518716870517712487710921641550650796330598419861106488543113199912163695172337951701661375892053025748493058466925959750473272668514524606018367859028378650279819580916102466376075223262184729678853003405733264680008930858337760683340928525532745843061309167392820735651544305124567746522710407145690307936704581260291348367542576542308372386774276840535684219996217314142139844469275146921660417713885355562369626548425111657415264418869221661854517538321912914925339992040777017338502985603365277426600563270326333853594130675009296908480476767038276964310718566534518169654490643393238009002809577930193970997738412375764053137821828097686636052009903483679153000028229274177889682353267615991321559503109077704793652603925532509845997200970734982304356874108993879689292412329152210392088240721983923288929543420179505257369188070082033947028180056287616808541717596670570294348547225015395283048195500966444591545170570356388926309431523851435494194558544549875488226951464312929011588455099499980677337420880066831165720086784166904231974173254420640378206531795314156797838884808532950092858544879637847567858506670988239956438522941934406588247672454935066905990888705881706741445462868318281423545904944595265318350825416107171459099316181771653535613498336775444855872349469709371650882682545371092178230545175937123889055077949353941764792290565810563416811416318490273682056818299608376935171068106914428674515845044319456707337257051370386464370534850121683026947336326754310406418790262787461674911698471190414105901444247143535294794030632998971834934038458824181025462897762823819945608342573967055446617050705456451104148708232401028084692256311134559998056844123273697700132626269104864207006692176690202833058267626346953727649004227122497451104476447027064446877549754406414150961765132012648732393644326470663802058732922955146317483497573464830397068303203487782898339258384373208456035466016406482734145064014199061498804379385452496262178864887616617040026318617572511445298478498561298646184800252396501159792403546213838492862718257211545001771558077381161038106283189375274483096707186038569490409475363800821378464155088778234080113567840038093107132392304487755205899899337786606297504542118033271650176555605366739035905333135043270126937112591303791287954138037367207384179844047487972401285314890017109825713267836454618361492497321344326028910355912887073681973585718718063096020187023708080124127987093806167270729817982254435315845609319831651893545777565515545157951741364985883960252259466295368363292494714781497443129135676192604006288699005962195806049913149844673080532104114896343506140785767311361927693749785918752880968545843242881208256824931377945631976021139588238350934688391913006791188859741433283753462106611264591047934612721453250216336040964152626067454441784888014089873752454368923789654623584269691919456286008374567652892374009169031855190440714393258467950861044565205162230786019646688920729483319051040432618534485447154054165888658405596624907915456277598946224550246142720987539453905946060251629726213692621321323973116848983263441112125624988841761272412953397455205571379545079562049211687957209020514797508880847284778685452886530467598034821818406140907027792682421384304016815012925640853358299085890572473358754206266460356928294722382700498093453110841592046103196045404931484779622821520056911390123218966122197989019310329672727000023651422591798006593641359916380011193881410994032057145366718880623173904583190970161914804442286762695655592947697455768895711108643388871730877893126225146488990860161956550528619211092045963651856175548891671859767439491226089431689771400174253407025513193029914273496563084394942736374416446117737144492714987616517086038908643180002052534043495941103423712957248359363145985810676822117589243500488576873769674010681407519983750676895173961585059976527039488113906377815838343459795571705282053004087470579341897109911314252612549950929411812629804995495963866010615372968420793676647316022754333417513736216019902539641692908961582361867503444911597550904633510412528627218663435143263615456664899460880101328102354664509971220986058774578486806330345124783333935938071628762608373962131531527428086202829148084431950623674157824702516761415353301299522999768437535631842512935202232495251112815088577386890358926959217822524574295404812302692649801572226424531817995190252671123570888345042148085105004528547411391131793751332448838929614320435415405091327851450745911078148973641811261705919528723269818748555481036707466141691821642308294440427475680102359584855629907108749165119980735271933823960146684089610818584533835569897219679620524129896691002817433269513007724805968559902713315198856131713066949256763580427182622077786759651369019115765754889625427920523359419608153810776075776748971562538960721706564421692072310254913061265608921478259627987979350883173924505310139996014582156337393332739642614483661760428909627972431365679647283227125383828520568628229025305686211144036116090915129729085205818668537951314779734046223688498902887756088076681928930588751843731637682659132173690874282269049764598887206774418223942913288809470202662074658899665123492991976211181612995416802834763864015178263450799636154450174935098443110054744552111108550270234865070428494631682758004538481598281947682883738400860459115740253502490332291638211797643072012848697195855483144973048621987784684765485344169786601759135256852456532023275791968973651242915155277390150291847961008700800599575641932420003944697990853930331754322831142260146692660942225879273789784536095132985736177053480426237736150533139009070701163323732695783855401315512274675393319510448194943842932973625737879752332172186949464124527784327793320583113794961353804911679971003644397790103159592902758967551881696135908151494135376119233647211242610370560866563736536133383132529434100238410464065895796535279037667579268472364315210090853424732052274518112422260373956634163696853340405771655350474881740431601135461427448923474163426952413734284922966517905763647766058120939529108224151391553135534682838312135132507711431760224857936833178464047130403403593735478108957583708698271413844390995254178357559791506075343441848581910416516675662647824277135087320683292784007035989813160981860749903617642945592293246137807594781866490786480789336278010479198074801364355282147349128217498299451813025817899090646378642873390315573842417109499262559780398583435655850657009840091854426400710558233330222290408458592644586431279579768146500724044943422543102195662324446453613295163233376678085469079839614604308468758640849616003073185522379910268219259151512210771658112585131626870461191172970975321233002777710983065074598938478998014283196902200217355137293457394439968147594349809934532062364620290618056185056074586365366078644893139267761348943196508111773428070948094121133096260007580568429660899989196593693604151049285044011214126042367804754652592144809635265306828704586083854066291966270170467342098984366570270014469462020245015297828154321438988730066655172138658433064155516523927173944286782414679888373662834478813520021744378460852621487071075986635586357906849460108938876339647061686790596111812990327639781819605971293639531056666823182933987094754627334237865598628839937990300822023820060723830919382230907051959523384104496937595722979761647823518188782752725114069431254986509885172134756179823516313222709863786863630567695644369933767393950968394830161553557826795533715194079938360513881452607100100557028147890998532062544507445049662166685277147484783999461345792160775406805368888295959218474777467337957222717652090438689501710341498648596822287447282319831313617659930161340113932524346795400975769270056504141365413359889756325620603989432435555541750883918150280271549800243572556256945563731719795157321124986092716249772215484178670037692185981103088464541393767294320430594214386091834425470747620043736296159942951623024103469404394604078957419861810707505431635592645866992943485940135372536877969940946462309274268370438394652216569769706917243270278608636146474931400612411752321715386543789047253552338843987705941791392406378709545423013590719133967081284316791107899546969198963462564368160355626840666869393877853370958600938053693303224642350158303590674387138003533180388626756058296783596692665535204475130864745275944462964352387919762550154717260296299985497321441402111697250791347452907897510971729775746321174840048917325608580554078732247337343904069483921825698210276091658289312685648363504821227033611294280448560496625854581391316696607907208932520501473439210721153642690136327260117796316479037932246831432502549492671239919269585785992823637823364524804718198850499559072199217283274811647543455272032989863284867681588773284982780477680164157674834415948041828739296921905621320654815936814676198543081126496094773824833907564542110159033514117653529455196871131450668081405859860943606743783922339364669148450545806178912776943522955771974441899455160002236796196149853931236657988053326298091438784254532507614640334441282948677005338164979252702604210925126432321924250133694227892623351130138796122233237172942310859572639659604528947543598541586312091536750291761650219804976098244677505284166099262117348861548722721157852318815708322488340861800970786451474262051784137907019008231748004268920778401972603497555461393164265132290143099934088126394523332859072220306789584959891769447144524337338913663984873184496154269356013566582477851042458202334807938190779496958201445104545179248849296916103858011515655815935267233084212230702910377635018507277309251847152207439294957565761132200833269167172731631832462496079189861104653114907823931514421397290218732056177058424593960713858180510382869065253257920374129440822068096170535201489936487623741828246648759690642368013805096907439454086012854044505152644601924070481610284158051301846307414632743233945058103310687673428644425055485061206051369155124698585151781155096659770965849597059857944752982157690529617062812345645009085153078617074712920294768471137677391604359779789885901410124667510777198305763589706077254808530697055625929772522111777729209593160387571116515935020745666992409230860559413927617937583605294355004232522605775521558018626395186475397958375476932647082313260538848897043165186407200036958580947331288549966637046940008552461759389857099189412315180386854747747837185712590419898240580143279882160667847644284969637252702633454752365563024555456357796396953511743946987523519101626864346558362081943559260547164248889486940366484587529523800386520511622809944814910193507149166853412109388766341094018651019117062793349987147503781253567465457099525003774089581107102601973373548343428682742883877268676405604676997326284449687371176820662606394211198175511233470108703902485892120919747600118186690710631835307728165536349341450272304304070270188282638074076848344455262857286086017256698749672704117269922655150233995717991881626851475106354367852497854055486781316678680310434103454593619521928439681335804604899885409096678265017576980482975541617776901351904950687227360038858279257122660548558558891464278177223132888398255272195204246955613687211327541228952173216854554235980365743891833392981586212851457903892311250419947633208709422543747360431727671493678206161284147751708721665931129777710047227762903960400208839867330295273740825875395470809642010266858620521559441571811231693729659230208446437976661964067271786149827310016508406037448460962859677129514260421648912072674117925040771542412359844131259683737200567898497014301121851368182356800170978089256639719677230769157386462019736834049069989321657247659564469785781575181856934432626311215596240436019031726786637402441781245176307238623950565210670260652828598992328355362365652724491297428949465099782939742186429140623991221550627547630087060492904331241836764133816118702754189035790109900231156483239843191996746475442088073089113587872342300613734725692122639062212460906645369824613594662366779853451215604393038258072124692949658651634871572053896134911822469152048663800478745744794459154219985031481256452837021638506691135332331220449452197947037108049042402010238425542363433727743952965851232837544600774189403978994836757133647330608826867834431639963828332375823817364025644021381401391039238871929584980263910211965857258590430204104901520653600651014536933415346819369083247291325433509745243167393410164778830174460254066747686542435681058784342191397718572550824433317195348898315970521822027508218874780428821440023208063627870303978895667115748632846722233897495117967125332822142364350179999726714372560563599806761756900759685597031853733686496435067400919482296099020607271043097476844650156663962600546202170025519018771837799056031152353502635760538937347273559985546203780768116145299695502277834608842847786849167828880008244182612594665813307042559800298044655122390990554627047844749407943903013109651162346024247694999416514398541454296606068073423897559896125843758323510895241520934088912433189580224883608881253632727500701972525533293318177153584045837048826481863386344926519752200948808358653159904496847220155522314654633852999761873682606425645776227194895802919269191167363479797750343564755119559548551720412066032491710516814809306673435350290097416745475856118027286233592213491480426839099520072066197250799287608360024447055087341009567575834149015731797793165681354464089788247273166004136460310160426934876835460042341728474853692189096622501727523084200676525611842361359787804649766910697825124786781600613039058443679596516113390654288742966569635566227564146836364628893667350261845982729158502544452190527597536992377487626763040124301669294348137772616549487678163154287717806243017003186983708971582757693714201298599739806723030469819831343758844779242808477082108811086701094222174874448949091302917457186383032096664617646985657014044799603619784236924351050456753229434592758875199274650309124506915466168098537911923654337890239895399587849295320232015283043976185577598609871162675794851021905100178317433881461163185264754165663874457491586382262708116494692319198322353805443473263399219619601368645093289192057494952490966737992441891558750205222023931294610375388042669330353334162777490215909428891679899674663988699389917568161386827005454974878903802864963911485221439838891168325249235528291319897340066695131255061248562609751212729502907532459389364527411803958302085795930090814382255162677195485861374426730207394717611904632843848432759803632694782382271038877478506822599925841111613273639895227195382658533980255793675945415369330177166886940222444213324036378856801541231967507211114166987852959327000300986726141139435016059066448208505022144505162425807413869001239623037186461582725268404169332439814758348638722029459842667381160508431797260361326194210954941630219495780372428194716882938148151913781224577429985383619887821789568937023344062402951042360100188296406888819752236399946946416534990930418334345235582960356184075465574756066360356393911610307105611097011440505219351400993664203358022621628417565742555715334903743728919254080130984353034453541294259728740089298533487559720330109199270091900632938776076320069695649716398994163740359136615606401404459758856970471184760897843183998474251831401770933259250702224429997547565464128887379191632574229753331719486398322902741228517917471316045558668383500313968401566790782213362298351122389665904244962329363859409814655172566677102251551766350737996697256589809993394833948302726880257796062575499574562197581266474783963743975099742504198714699788705017708207231674716641961581859154921529349661769763552826430501584516356004229387658762652634677107370293677131637838868598752361648782483540737053614308926659913748244087563071154751184215278667289399956904934973981999710362607794087545592871969551374694166618089208786101797028170930515330985959788978145915155639105061228120734163638008320599943505838667475993091359756081322439151467093669961909844118457819823354320961115703285874069360785252997416262148323165654296307950592144410336121258807282230298891624461765239356020385729442309484034529920349952548481177343865104395479291001127193093229423875205819986617917065853069350301065126118903059799105504021939364985286930260696463758981964198803967682625713734605378641170721947383045293316601659970831575748445184675238408491138619578075202544164428874180840867767259875425889266362746822671314866769483832341439130785333120774428388874366657761128929728286634390975170335635210485574408227714815071312527121827531429118887708737592476156693203311837904091217348650299551013178863587973501716781217334162007072206420360487794020345489029119219238193411303237320090323506267452380405636746736225376366658275045645155174539084503703345042527736560753988256432168955426312445246165184122517329190433907042919899516821717230763043549146473501492054515439860730086739513137239445342366738338411300362540210183125970783735804092105185695868741798628372585058566586895480816473790424164722837862694925184021311885007948925415577844498799191240686416494947619592186341525210404280904653265893683258261878657238728988347571598146367189397749898229781418765365660561683002586658638244681283931442488185857748891673939216584134045363845107057167591654408672246115580849406335553081964030901016359416926805114114238832892493193285003494950815750290018348868136904235022708353882867544114940195660295249711600951262200447904139681024965380052764242997665842679961719046608749046374569107474585217913836592746602438197052641230679773405380718507345014572067205691333159200932910042738247083273780449525379903360031091184934381891123920510416086828794222859607228685558816146937575834745731616868281752988140089219263565910594986727531067196580601980405862605825906958792951578564150735415609636738366974133138132764908517865038623566863811257852517536397827910539526333058933543360525954467360236443408990346410569813290951362056146561293473444962218897476912989609216536361525664080267661722505972810560712224951863043516176013565629244207015125674895674036144991152237404070589096821909067116046972313258911752757961306217080065772770188495355499363311889331949335150200574508652561682876399481733492520655334803981057239648205527349357892753559500572023402059258892291694479475456366030934628527093499723793052491857882528144827294038897512606773220373390716000313156375634240243170740423905880667385816145681436175566001426569965055275990153088507838798889919563957870921966471706504352840189859056390239381048943734601906087151659540624453535477991399370054834399354741505307703745692760192136282302767254176985176249572750033752779875741419061456359184952742150837784299272021703290973050858544118583881630008197684103532588361173457573019250501209829949958213379505892062135934160592859883259450183164889363346277394243514756583494056998297032015906379771461325604632108413173423571150728214689549861439025578443104465632606236706285997647162801140033403319508912666357768841221665819663216319895732651237387494209494356522238233641565063053596876346982094323874059048532447384226050327873866467050897179998314593107591102657158288891675815370254560696030762197411568663587470902910844955343939991034090106218433131168466011125875110055039642407161987618456493314259350329294725631327851576253204137499805631183257367787964969510098611334418415617443314579735555360362385134166497113912895437726371467592323465642989556992204765943784631685211940548769609129265573119574283380637138732356409491788359838043337496072981113663306352174102086015019512712899639791791658163755347735418085915895127486562445347955204870892057903634779386161131367606334473217807365945951800533404694252577904873300065564115523634299278922954691514688041225491993245948360586895199041309076606221101328163893665101800152979172971643331068834466860590009198236718981810212825727422523751076087668328926669426862884302606266391242748619388082148179275044346070138001969785834009570601143633058623700647485508651727983080041835130427230282352542598009228300427992248478908727346895467894150614721317756368416569384473489779221589344385396110938498212045357634316996302664302341707887303110896412293544600532796833647343295308758205110498716914975346365934186822574436284940368372268137975298664696843403363819334664218594728608541055877096007834761250807583911583874079504174969325539625575707123577197290568698461590909580427214473611657655323159989997114444915535837657847641253618947602957037682549864188971257432161333118317709642600428791851768715913356492423534237318655759795266028368485189796744100940759087789579946137973511783557107547934181498916886286941609369873777704420784560981512968509259420311722036792300248271230684366876801302533054760168964802799317601888461830193698245574049297826331658832481467276346100788595853037853859642708957002637048815819680180352793706315114112428056946787013839140470542081988004325024827310289396079353851268908948288871924450460090490467323080494348505894312246667902404254598071291533309788362349816761142842217498849087613253482340884197043561565690875158393893806999035759284146951097686062503081938414795509288288619895547532262990550803973849607124267970840550635210496062274766094802244891151000687497227162432701939717381750209855397694979413394008356396227926141076241925959650226505291684448610732819765760799748169488050943504913109155598154721840738184805001794805133638771003752492088541095573482591543921655443841695647835754320803407553279133453324668121892046367935133593983039816727412157641980475610255031981458187990426302886693788768003605817225244000495474867538477994916591391256194918528474451072969651725152953396516487832388112499210749261821389248147737128929783509721229444015381039898723171130188392878845260906391441640562127692167970848781699630641331361131937111418046892213176601655772153484365261019071929704822590093235512284820766385578054170608419193144706377507474913907411703344513839174579047277878305233059818845574662050975157699560789557712571182251484995047549730727405037404234970377529358393974404704717966356546836844636512143044971665191581649163343665532877260092592471766733396486007753008126552291488765608920457242719533068817219132708109673443412026937267255595403263103310822299378490080465971172217695473668984782369973733594539594239304504489959989939811429961493250528967281214372441533028021530882334803450770602859698422168879024971652369277207019846496533830036179191718295379477252430120418220595429282698643629128868121538630000889095193640816416742373402990936893485200324284395410648619756984358296910718541164764003880619494338726090274337778619567303023363658638937014707476074041086503095925414692703687250675728791718733289952524717891698349308968814596897663162249532593695136225089301392154770302805061778026040519701910689435742534847265613207233079144745281244255051000778145558391489660521102772217224519946286485557172617285338836514612176256717491726564600934040907778021618845143568866179385920411175899034452594445904426722763583137596105459377848135777913921504489008697965581201627947822279006119490513649746839574977686480037903121503042575240372714534593452687394878671724752565050455311992055652749031752465875496292166324396276576323550022130899374127469449906788024996960718067847113308499522401120033253619818056609756671934233447704459469829884374279182231634406643281833351545836504947906380307953451613331548805783693409666325086086584388403139343231010695254542357447187026281595295349686609094196592031095749273384499134319440664155572353523008787738260980340236948703364752046757578901444922058937201141620103246853917205365122063651403636333608861598884207074089086369883818362174879979767698008786537983968164902495321884479059141182704041136567347630499402113320371358666268501788912191108129498845473832817087912061634670481007259259406655624993396642879721427540522113816650306321052750816083353099088371624411212215629615217920325388711816996513866683529277807507516724560053210678815846069466802332514463875867702462039872609969758571547720310626242315533481447079836180839689663020988116778442162093123233942686156368483148713164195079420441328375164242925728641019854845950874408384983761213372039975520593404353385234055020177031603733194461343958466396196024530892881813637430992131415285122036495075945921581846951734855776337213800179310748379096246402599691657311937406695440522500733273754273402046044612486646165919153610099436149280524348494229298937913906067349055844200108544139788823534706480892667973114374353066744772772421880112838106735351661618393505400389691253239041506773205948589273600705579944341718851610620281704218982797729414688225135072448068278339881975481985616083139893529089028783776574486923407862408446721597164040575318060818309830794786726460931203922398554911160489955833845864949351509717368002947376402924730236258001693111743961516991073245331083967901017447254058325123948823563629892751083253145909847810184546462887013154520318322130001618680148674107503443860926579764042225011695285631340485479040968921488087342709069489385869534600668642192900097316320436291714083634363884610505663264545742070911749239109550584060940006342645394866566560598000368836909315837551221652404033652260191619455116033297371205102601108886186605771699726382201314319923054774553176780665914364530678441774937617840404555372800561667750310829401437233604156077571157478529334804582427651255563188631325656316166999004152632058483229660306691849588501677952087255484057542648896869113053831158315360682981442721827467805993037852540286221980221268344719053833874487043927802976892954684988011982951349011436948219469440142213278807470708710440372628351533708377170256860820405423903473135140326317182056040695450138241901714008187323291934519511305335703185996561221725385343276926241779335599141973396798904732290820452598856507082853273646440432308520452700945529271959166098784412618774611560671263498210215892532008451116912009533606388545652261259139801649566937897304516780896761951235376435461156349802612316738247622086969365728777813359987703398854266116112752921526976819445048290915526339522872684910953474474145378162194796751616891973941021986085218297924244151096233759333503976549169481409330080185761173175643385145748504284794694628728215090194291117108083859022705886104629513545249868773671868458203912134654857661132502734705243075367215599276442575292958759965732517005187179629326170140450843719780004054734610127448810955774678470116337905259102076751653115478807774428185388796759855879966479916553069086402913082937324971637003292197690344363245029991617166884815204703020516394130401005402151992541830344440007704806784063798510437678288726591215107412427436322149840844775406579347499951539926965438902633945759624519038446793910229715234865726543689446628910089316178808420019085995721769411554067729460765536127608456366567534619988995990289961366209237942279047834639307345602748545447184016032432743976171853140406357751705423792888889221320576883438745495953302054414491320180189789005612678878177961810581891048834342732577157664840992817234668237597642170583911103159691373833329812861352525520246305326322453025325598357507191494270405339665140883619597119145465842964971883771384563978859190688975213678407117668698575351621951824344518280023823533350085956255305620904148385066259663573819028394476538891487335272880952131935500754008047191638279311551149042633276739046699719098397548661659624096157069238399351531147699926654074438951781505352331086125461970377915813561851075304699034711146693149386739604467248766602920996823008833297253054766473279800554427203651272445956693077582811122439218739044262553861089781856842056325393750316625510806675726117129529992782740383938487089534246255837085025554637150934907513517526466607223795908215425175950932473456219212098018659191474658378660550235431687222614323861742052770617409430162692440544697879045810911438268584939552801943969950665945762023788142337204505909655535626332439396528835369687228686849763452380638561224885011840803281485539438767836453562794873560553016664172731337196079500638440106594490800952135877123911422109248558570270542335108332626776481520794954914177281914839057055812661229793286939223005049007901238381775619631569579569894545829577993511851646093878616305190118145503350326593063164746389281728342279057051016311901712691705548983860086079470640474731847785419808647734530044375646811760482411646840248446292661382489891927380035723940821500178520406282498188674880337431749079998458869801653873507202861410281779248453156014294829351280766430771129554375779505164702905419360556904658982721800349651282841572920992516254130258530650819994064615958630047470148108785025601551737797964935990734305796022379613035002606348676554278126476784611070546005971670893143614060615352290314104803235425671553521579462187598865283541208121805978159340291262454951820668854651714147996437297970248634895504124904198283961764525106375159963283568057402235589773170267442147197039353980976059782408538383944205510240874467441129869724733806008441818998761811276941668409476555069193327549172844464720054881187488217699795483051046930434442127359208583374445900704012097790567789453260000975549746694778864800914903528475491488008473242519887916367830988777983860457821333256627379363103650920041732757111109800063059804343586439483437547796765542084787955059562638891480047297223324208375164337913722843071909247300692670646456096981961682405105677796824336189496928918644972917731199756257095483720732604486113521997796946379793940967309181384014545174009998152992264653439545846058675638515561834401037221392492794929724261473625059549444273958620463723148803166907366333810286322269478300235689418265740509285590547214722619452070403636162235506146251737297193784364770984354838080568914327437770900281805564694264227832046420575460793130575683387068275816566123437547994706891722287746707911849719253924637867475949495586508680541122016830339385676507036906892961973573495742474875966502899002779280614572148685972369156182929654557524352593837381637238135546561875443504041897889178048634816148834429743446770874643998937522607678672048861089511018839371182206830043828826224165027165264090169836186068247393277031644224824638281908492340563710009261812260047369712271357226692623873012773419243336008755424623514692041156161360437221648908020302540621599102568813467425205043541510427898576350263375582428357481809579540748292348137501702630972629280981571632262999772246286185884237353451134385147322276530090988975659119013159153776431981008134028958082041662178022274727948933435838261530961626364288760834233860257567048475613202262854429116862487953690300178114346689555490482718592222447863164801683721590043845112587495815719620369605542187835142878192409970235869621892392090992700927258261132818567360358546497417187845687091793395641972257199638895410680711360343785176719155332574915211509115562271078141867726645707795016587747990815412290380724229408673920042184337396471626236818953102914350536814258007455556752869545808227692238564956721141547905111484211425297569722022811220874566186022951431502077604430791675940691993959632468410985783918253476903570839826544427781841695174914232006289366987276464613906591257720215228527741219626530698980250111304520965951501669315230842587654318910261808282342862717735144949393557695933503561894294730733437722728416753570935253232266926818728557891484908304096323333711244702451459782127949715176416919964192553652108614652141092692533694968070319861841034802756470687495629591727856541613442751534645879046956194270452537411021364372596704901703015012371018107748797432240246095532764153580338506928016369940917022614729524768902101884731920404385946554178303230497612322432668564565938640948920833463590635242961668473373781593040495791339564336899695890057031010564562116492160203824576139819174536113644932303982121576678226792249577128959298076443964122554044512004324956219488693115492806075025672002538612061183708048822653056418125837443214380604038572096298527578720810140887032854393856337520268078786051526492996781398107926301914569264946387975088075127766071006841365614175778414017842823025947045582697417437401441062498855811150721474568821928100353582664313654634701772050198682648149674833655742991498993720160515850402405150510917987639907367876745403803048351612888271248924823861208742807308964921077724853842705965809891793189954610156152916305819883969163559621444514988713220133595480896329796378819359044863771686751363107107668462657429369195424846275153533020051866855037085351831894475414752249219784938069154745047114245030071997373939499485997818792095835325373055307249375435287842983227338338535194872045943561624439916434218541679626594221591001777221538958265614625017288406919292317384766954867995824479797230105541975841427642483658088505559382841752738776507179670556591538957775685666246129261354854136244583961312493079467684538226349310992740779192535423946117392885919397502254648035674522893208084855197333876216477057539222640136887645174376677937101883207263872269729988974452140289942563224885675499718792420276771559001911600591844168362009865993284881068791767445235063601432676199116042863609454226569106492724436152225150442946904695422668152292573870422650349774109196423399765819340613715042545389178073902423060294517524479203575361103347371948439691600846580578107801755948779745443470782755177248162051691798638652232710334780970078571610159573567555172470229947604296406045190847728705141863802327611497844084796794081747255335128165276644905262626644738057473228478279322149253930443880840447004779646839310650961185384924980798284291261946480488354327890142205905987266733842708457664191374351291123676563890953436848761057200047793779912364936829170053174222575984233292037537888083161476963917477472168651561917983795750063453956916727638796988877663816061534684030406374828433153855215465425833042109439770130343471873508616024478746064793377265728335557571090407588842872596993745542950501634631672828692428077373556877849634867233091529548701100332772781510745405910035835131263755990617719297570871286094568369517209076026427700412231723453580852201531994192056035294200492903779930397539977478537662996693398579019663098608616731374302747467808140565231604528143417315205977621455009747789959062288153571208683295148979476055957171946225530254463938072375520211116784778717399053058563697184711953708128276445280902758500408834477515885864893477288405131382840482055195152555188649615030847308288601901450903982261939896188761171779520247494097392643023016868015431538777182173968330393325675948916406350114635098328311077184758780464251126252531130642586457001544873807806751668152853659952773091222248800361652523183657876601907083015913371533815313200117210182799467785276994772963509931420735641566609660709028530636834314426973539415413124152762005023021639765169221179028185815493613088977136184191345253914357650725090830912979209678432062378444735144224051145471153903909472378576265767950936486515469702679823685224622170039524494755373978108277918566087913810633857511915417368281816332463313174380927547991508856068825062211049800452397064265046516839977631744218634157939968368599913792671385340697869904876204900345325566725341454831929838404870644311430270432096482511197507503657474584968841235586706935443180219686385930251361803264799066172408356757292690345268326761920040346622417704234477637151499400459559685282426518911375290736517734659568142782700763475024475780969339513902616734812714809841971474364288873672019749509614384173678731828613789445236998385525102414332444626548754222954427962950564153658642929430860682011835811540228210936245156181623030651901845699000332134836235032204791067950945043692039464296492217097824416438127420508976850823670883432947026527950843833141958564544263420363448033906596045044426913939978047732095439258713420806683016969515274424463867663601136384268054252268465821159230687461627666796101940459447826902319893945023517266601559148700597974896550343868444643264275570996562230507854006858053820971111126484878766051112830310674177253786147973194846533981105718020676989624989921389640953764539913708213065211337007694776920693765642901066509169371895685581738988533975523682896495230420947609713719360715049501925231112727388032424680130932462469979776266577255361342937952606875381206668008010905650481709335548647321150541223823077033874484813822256050677642116747469246985503198111389478136420131155389962844933470243683383587851382704761410038993412175755208152563515957912348029789707488636543066303898084903712070878172635230180879258588824828203211153505963407217620336368325557225773709474688736041553116165707787637419906965836054773325398554137279795158068532469856926872128640523595821361383142040942526801303130431801732098999877440984185301937030050343012507269424388341020994104089671799816356026820528374266618163500440485161232287081338865471643793780669310132989538288280969253395127576092791547421291916668903542224006299312953191962003166942963575666640928321648124286137436076669555369840513968230780397736814545335582410930603856388607527511478971098628133453695088309280935890459721987380539353903872105787091115201773993227140327693725031206209679850517250285892451403274160707996932173233249505382448452882886921929329190722593338843095604736382925689158643040814271225671474700768189134351808924295485821693677349208243342086823208098420246589052415082194523585178861273931998849578812434100959530603559786013378578638006282419329494528032294055156239583819173049055794089088228211010101783546162536584766759164666608020857627996971690631498861268731970250823700768747460156664685214695426110406971049620794408559446159631371844872074697429437513472129260124361339196873332779564080026303502483360189267597330303961158310836312434946009236220938731703131965039021110705257413785984245430813252442078660241021170229144013472616290009887789631069144896724861670634830033772553881347086363076342498706013312567848801348383482408854385565835519709126003900471658350543787350664484359128851848911278884663830824785230766508291377327986130292641058991693238277919067392758464013649621159029435907152137734686739794638396678871611162514825153307952689674605760773001778866453970024361771914668686001163369556570445987576225526625861663899980280691837098237074296063633602242305474479798829870336264743490105040666841518016157509165187598419714734196858654132916813858308609094513237658393454118708587577257854563882644323666690539736381492887114533990448316079152449985097235049657081154453880571240036231326757715691577929569140595449252705555546224415089317319365174370403883707369333651967060344595019017239497770375251900294289651234836586292551774673117542033690744437620080631792425584622675607228688889185679252793930073675275529756496137867081557127972949098118507539448180923639772067209709398479054956716719797911539619801305716257813119287328522821797527072179371509000264324454108667971853911312320553435664770486618097464042377266802549189499189609538391456118729479072282160194225531047836229211850025902296129942673894733537328802935827704730685373873357190360094072969770464085864244923087157013606655163889277468165940114624581405077799263661318483596894696818868612000943291168257924527554402239886737678073308942763638595179660348255965774190445015295546729406126938922402102824100082237154657525901320521824429363337919920218209011184499904587241347174160172428904885590892197082524341358943871241177409579605400532614385285832292295336568699868503210512031111260419361764199233723180234884373550423217805024999847977031824824628261570623218194749458711402540417399590481151153441350144606433163347421917174015664942970443619050757714195483653670450381552695339027731664370136850874305669296123431614105064689597734799727211800780162101673652968482941619781218306211655209268839904481872788140931243653155775923529800237644915280520804752940879899143543536293854150313896620441875386681963952219541111315014761477147084616839741380692100946344404460065972504156913607956423940097477025793553977866302319288432934339065454787643618446333033553294970226798665134431695511784775473147830455530169622881153294684059508357647975349693091441972519170126974467225007616206542411559987589939259553551748844188760886649325101375423824879634234654355112181990596094507944952246709035062561295744048110616893940668886425871372991844990148523688560728893477143014963741791571772237738765338909405124122439465103186226644190211580007584245629888545853466718125191805110648797129954474041628652080592943592669407064157775341739802773260620216692523706776465471352124564089508190564436938411791358100504288537757384439153312061708564068272543576648561749924830506719353128632903305587018604423930764738244220370134188145385726635354870061338243251602796106512407558327986554430635644945614120545752949837973588122911923513186058747339182247832465313519577461075432577453512742609909802387969211101785587125484010532936908951985437176657747800337280304357089416550380353689103150613723546070142803911056293347856923780023088572287697877408477241450245182687276913196868584691463539789481131174246250674258490922983241159346099514358368383519073267973361328096442267722500624543513436523569001704427640270037110624602859886041991132928016346681626843563705282366809374821281764357881090574682496220289758443371387215812577723808007391493585835461464373378633723445809916129572022281879901230039273913604218672481031100693071115162619619145995504074560303643219665181784363412374143097355954494609052552885148585352410088930352623027305411973713948184445400758656807617984195624604395075059126929090364591834024890067205475409527108553222512982630245418682958576260137254953651439341951659480673610690243788416120094357619747908109988996273624789019335433352834708415050183796635375563971959926684691301430432560516576553181665838931496886143834854785946250771935147894641120297213046222320445891527095380033776560832865228856098009204470723799798897679274590577096891237850213379240081828674534653575538912360795890830176249433984552744754831810036164590939196406135394894569664193745632783697618298961564893844332848276560036452843480746274656581777465086195058159077875930367725328317515803614399490982725470098349052945636338047821349207437983901536834924869040318404666129150064145447980154479950067691364243343592063130806902009431766949432045523227976822277650271492868505429264608714749683233375061742823261084366633687974952264640770555847868178223506459893930682912328290072084247233880204028123227841596745949424673845829080640188369041364456837524519692458465952508116195680316262878328286353928976806108648083535634313985929014076938841077432487061664724821821744685338990906220212634764784590463929946604893553962011169648998112595106008314737335961554213256155901671745417441667110715087804667605223141412494542877790286224843332881553001307764510356279411566280438112929849594901130472917904259225670934229099365416472581921576476459742898588755417872444653394674262758345381139216156713559576624994797396769597350332781759883455368735062843083692926287968938599073589733391225241719214889843801295955742717439400631094566903681031363646646553562870173176408737393190675691800857029918102705034921477176317937868411939270570142916415386150027900406458703748722488502814223403601413565138566055017103024999743197676205435374486374446639561041443534667122765879688265645590469866498908866756414347298871503148635626938069045242101241221890448998181987837986526963604409210920983285057952743005412699298886829117103214049934097011494928670736683638722129057220179797043761067924785770963949977772650980658409861712495871990269142196842467418551378056686941515021562288690834006227510432252980298306269942783720714086273199082083455628647001180365714734454307188521655902116372404512480010843851884837651875935190911845208372257502472289539290595645648737504518894905144386944193093324123736992873762059547699925185483271330671016357186653711870863173809379759120610719465399621854802924492745732776859733989126134940507620656818610403965183892287280320882028482387465551185921441394835731580025763566615588072841006335058580667499296192560916937540984156744809743946618063922456487613311483878733560375638759321542856099078658995460913435123654624921929208473843739568957680829589481824377705179474178892502344079990325300282287882532165009429475889551718782708312820020695623246239853618760481452120862282682142682731355978647101044178263611820544662658396491058784085277450270256730309952851573321458967652914599170801075818858206523304916455851186206169256774495185084115393665547367955932573591138258084024670372608352621980139916793846188743626784211134919272824820754004704389893360053679278862588802365094307578941967339641627086508804706739160708226328965730945001492823997895559649023141067589654577217249700994396075390873527717719018804290949072578649610613709773689864718327703608648787121715486881996165840620018191856831764940094919691472137435693275997988015115313925068845465226958760478045980301120443425353496718189447621774111740297610223559804682200787182949707004490819638082189728087217822202579526276625507457411750113060467624254827347660745983210671522371538170117586285609329679486876728609641898823077440602435805419181802957592702511288231015615665692116863561982889522209682150626587653620126468806631461333719201652651152830856341223312456954068124608276819499631269939928782522431649079691098274040241678813693548972515407272968984378948683522482686620910530706014464180852263693627599013684829115946971513008373806046532217508942215622978468588840952153027147055335056143646273626168091765610526705159422932772399641371999844303036705121245506411356817961944407100234836445875191200472740357345117163669867606178452656970685249889623289025669331867141109741073499648031665833722501628419490005056417830615616735098443284502339761198306188578296745848614338083849694701664703047824632950421313655992145475007160039604330435094240810460613134309977078647778195386364438802035365725535697894122835689340326911768046166616317045796241447234425243124694501607714541561248594910406577581044021605344286646952247578004430663584170475130994328766263429296590799951520964023127287309303021411374325361195108693202323428662157620765516769529291595941578176161706802772601097983101132690841341668641506752473924961562008034494885809905748428011737630175932533339805601282912957064190393308928197294630659073633492494230870048114887916081246828966935003899858125179343287500184459866958385503130267616564636490359622190434498277289065892952878102618478900134588323845274536220450965193893842072854561259570045219830510106343417297771045429252150836177711883632439051103802266117633551333010261391461912114558550184034383171141401610596737261368550179042289711034348166156320683402255387558797982331773965756873682046590027818158796994455819962088537852111433485452771722702116824073852024119105772492166178717817562462338901886295013482439121675396354827164159150088192561183121994681029798087011053168477869167616569076652844482561698101192199028405525877134211689313705011691806691675861994822009833626978389608759258309863776286281615700347409156258149433341467757877523249698520912559635917616692514800651882272743591164456596989534405311433729976688379415346506469476651540641258963719485183598741551070749446278587716127941499042303142815471764806970852133596994953425782061565022780521670575869888722883691907621766999793509057101979276782971423099185960365084984231833640474291836990280876088026706212450519519706196459493816263723796129005562457657445090198712466880883428911126799685639515837547778463914689727943881742501952654360487258774196845879104349029527364810527730327569189802629009107821381169937202685785355356112471883783635554138465342987022437675372058875652315939459822553824958127822648134992921402142703551140839977434041667969256406903770453189868936495345954211413611679692533636430465359690111628980255796707770134874762286986845954773498127926018831820671975255985757723537476834230112300885963254922709061421490187461900104010737156147345891137393209452205920323269676121294713886632985160910706376478399840508349409906914971871312273412220352568971921028856448104638146881689345826505216785601062275080742772161233667730037991010643883942286335320470225956892380194628484805609830899180077796252381003431240032828790639762023124427336823645015221102605704457533742441200662193956060833681239431104320748055118805919348377161023090237129473508885932702315374010732993925782547651644185096314245145408645113481360243078782403894763375544931262497111500731675424952197527249862587716219620957898764284089791485626559291498055201008882800175351423742645626075773021193085763310809016796200615864316658616695282843863046552447793673389263642823952612032663206217220874032798807227809107873010743564952373672223333793494717985090222339010179023265809328745971900880085423731401773080873756399658092196670156112160355851365328463860458885286708010639423339481235964041202982193136867782749524181240099995040923697411368336888265026820911561724505558325942736615089805770931145564529954693177340570525132286200322070838225301914881333846058989670253338881900462087716735143455559176232935931154483935982492030560132397189993421447644793152856791892449639153478014136869078302930076036108216783971110172813267416338021952153426385759470944282065768523546800974599235530206809958559457756901436209960432847569703615094463957720030708167589179425263519330805255634785246641027345624374039710346656752310928176541399085575268393620336106973819862061639153290826521406166726578509147638056635121623445804518484922291722005970373017099574547570895620649125810880592749326908276125843613812479758214985028773053994162226331714198451294366667656939685455526422607645287948025815631372604180892327787882896732088997004682542577830785825158505465526531225049755416563119565164096532980383714305126894242604184053196058624375522907408575080486965128927227137505486663151698367081874238358867327179567400992168828627755468628157384975162180067326362529359399503997388807716781528812579582151806151259250837729618301726595028974598848337193797306984442063250223320806989981035602543548971098712529803206435884630552329207074012167241632934344493654515854136727609256021931991536285276803335348303389665618581198898797672930224540689917698498606945121428769813529731161500482794676101870745761483676505513845301241205091376084809011408072562453172284325315452975648031087516112593194608150399360054949835648677401477001116388763036736888458706674538680016246477918201355112065468952714192453706556698608662673084011746090798807016299901575327548664280797967782764009876504743630867382888489428846304756855071073409185185430853884975810082872250382430390945660475440585718412352131476802064374829019254637428389667684738437669117610626918915784913186486161109364258741234049254455314022028541727031539609958243850118536340723985070034976211207009428376341676880572679460162017261942070506165174046853600353580153774010498940312109107057337395698162592998691374674521802517627552189884871702486039421730570434195450242141794717182375023301772537837087077376951882481689499289255974102934687313529748145562160488865471524151474080677477838744983346857744402388911931896037875099239434136593923960224447858881552033595220451617210011119135848556102616907326547428970382806541571164490126170237251619044246577119327229392348713060714644712478862590777281334978510689682149628403748616689109749652863122175078760704427478311280506345731020884967528364626851146645503873220379935144021196434601522299699900863430738656893122084724459086606789860779707307469671735383085241731976019283732132918968272605928412992465159564478029131456200537743948755005416536622042905347585340289407883595897037249639307663196231812559360944256266166734222110930093961912207783743280092921539125943157448973747552209608415973598989830565009039971819091904078680905838336055510512189056930978545209181813449880105331586091540269072596576056015023612147758801658255603175809921877650644836898439843832774721163466853657198560787228594054671457862775170378775377256645715372386503634980348129354708981193235398582061320131844083406302668318604321023174426763292960410371083298769357782188852493867009194509140207289410528988142697364019701821501295954559113106928031528412771720413331032184141315274719996669117118987287957311631617800704471782172255498926794184016072877513507875990194603255281825081865358735010844399894719062026777436870288421313845489222665092089386420907404107056368220513074787421658980570895558536555439611249103815567869453509590252387423563672373598515965508650684477867840559372400872628098274654714104238538624718926407601654429898617543795770986807351483252768272307246221777202409299063537168630614805020727434203234573260908903615218935915307578845306858182125950177449188921641292729922567256548302538103898124764590818018900275546055874343294426021646334100577414537122501453805594342689686903349171175641029507172029510440808030142313971298458898697043776237211458390667459781414944403213769387965655241738615464740196708792091223831616153101463445752514310686560996515971711112087178467293434378085159493449675322263257113661584196700756121815240091031921137228898314940566944214576380295943641456383740590782764763718852494372589712366958433701304061430507010042115460148147968355999888751880897793817856060649231015043422004730071922189780751761459141397076943277360395303680658603798008645371617574334712737580501735544924319592602733045897388239947420521063858999610594949517022257298212834267943912093271378201808248540510479756797832687950723643957591317455549357945003896028035207510079874018993757308776274315977960543640136011341961402748100350902404610516736351560723977880962136913878676144871681437872978847897888511129497745004016171213656588659549413780328968719029249092015166302184880991309976029018794927418097607200834823206017831390553696687994333382231852964129376579463108542973991316703096064808520639766362147669847179485557551232106751297199502551222776905879217733089210554192090803547359378300644203095554691569487031271681437013846411625672629924767769588060488782805183109361647504354971436794302033403086346928660374931917991789589552850560721122415685052042965353163898475598710387688576970220125755364417798780443002815029449454478948088873757000717584849502301269419717513403635364841059545374409505187421281870916349621405894328773984250149845513508651282960326161359064174282278228375922930349892608617151909937958104518429503764186743040334559869271166565864829855395225437862857261664537369566892107723776149791365311174340831874695588351989054538656909286141283161745720000189662759547603802254084307561820498959992477914821576696793806401265095120005323969255900562439358898162235397836988950712906975948913598127510501117928091692260457292778912086649937860422787491162168441292798429969951956432584645157476709698278915547057337052878144380060795848778258212642053233800938387586811295072754099415393373892882910965965311970110100046510386873791165674519763033036631867138048145036425272587992755793204424378317845221790834194962300356967257936140221316097107427755887311128731930358332285331923614518276740454889048548314619338766707712698093753632447838345331962014535708138477563213564934502574153163350880861437747402996650027980532088922736177733728700342240583816537009657797369542278124598200781885030301327617452902955749418699387875873043128890589781324706960581633926305778926161962309491021294532881456569253108912134829013861829011575517778108967169927616882037568488728100412782666275466563479861196506621335803247794955660759979559731970140977702691223633282739117140650759491109757206959298379088510839104902301055899898008120789987801529348162192818849718617390513377424646883076843088834601255064275461240709701117014279177813797392759132006832585180666582666461403965278489032736956843812865959084269103506869051345026165892405597266705902215118660675848928469392908661805138865987679013377875834918043136798129762622725856516108441467329688171767614499604822634457404175795071891060540024058666858374921070185584862918372367655580801546831288544645375949708485810701857650395408749829401727077337139209342514230993170549841041641381699069924354729914500022685602612726195377943674357238246386359706708320151623738568926979139254958378806784781952102894947659901943897296580053290240188183106347858387980067151899054544570538512885503960914730103711319172318225958919011491944453998019103015897191470497745431167195527963564437239524784360118956988426382946949058121638789696905979191498213768349577153410078778135401038120547970139613053768137751202490859370638225468079219786419192650958534057313041284060081095585716704345575550482795261791729922017760521078134721168037874551373375292043685342791074441052694677180011384000361585370478665926774717632965012826272043487525932935795963263137953615893370859324559507638781167039359635502972623679222382711545102292115282511067042840226376315902832096860989220504888096878994350268275991793850865181349973685003915591999032675761399280477094680086840833025864975571587713977583173032526260441958839594119330468631562703064306906310934428532463550223375316631923002976530380166725606304503096511866269863214020926243079522924478379034478939388723643402178702150374185127016188543487815521839213769230317363405860016957275631574739250603986746544429608143916420150321611959519383650650251996078035940996248553315689965943826228484598147644855183735685972530771511783035026519615918847196964279165204935798023667594776061533419872738150248109838586392088491709962217082664419929581107365970166629357073860964254462276038003751929303292394997754994423135248733976828216121855140797334216416699206843953240425045571181189407727533063679502097743558921108781632436396319962983159271735106963167189969278219087791818601143340338553652796427835834589464692717758805410203698889514415960598716027977874827067607605762568446276148927854487150192638459837852924693893631997011299652752942817994776617409246591190049586295429328687686905499676698140380743297997940546771063795315120352965629703847763649379750909211743383583115281274044275142736979933112761291848816452075363590655632357666925067380757862076522707989058126308341550342450892671719508420690393473038753323951491866043684056732906197057433796145746423197150192206723200164688865555032343214203368081894516415088137076926675881940006091788413430933932572312060540720086515155410497157082980207802342629267503965976382002446263310895724823265184450268068499522700627321725434792619330754394392874499895102290037576321424133756451764334018284099431729587959617503052219541474442333980798782744482401598296301043006679350314050509483552408161526211031036818763501468196258983126326180728084799763466936709623588053721277780082015853345086246018396867663200188748446542400898262442978011730842496482478386791348717172752099445558248822465302570022961877265333572848544608077809463916718201352558019445923221512473485853512523119898921737816920831720969035680174572280892382215755107882426967792386275531445465811508042537720140918223650346178007948317767193485535353973573944336419104532865402215168618720278538818596914777174733809031562688224984142898032308042018833894696129480892022039904532342256625156086111438137348488930047584559071363742674708868046984082250343069131763892676224552632804333984427413054811789050535423255019227433950226342984684489848061667503536726102372142204676445308343048593357346686239543052355737609861063703804195786930414959779874077585817572507770019325713554472281168800377325536740164947732758184758137435518121569289792097560610833301399147013170753825141776774798129181873794482949267634564460293404976307101851739373043067545579682532562787966098081826990867027076433095560190788190720887396673558722642686994075974877275520113318364559184022905039313688789211883551403699823275938000885522994630025436065649110429941407901516561470352646815037946129185584152269641114853618522643945448376270914855060721177031353870530723574524100866769693099861686994031110126736598492438121925704328364826678140119081125224765251372464717375944992052206625467560179691517373385898756257473477647619233325788184650230014740050321753547759910572470985567403067820056553417987648264842823270450724896102609366490119856968687127290614373340656235334096481644968737630005098113058778200296125378500099608075613555459375604338819748405534092776581826823481501083094755570556386768057013888941757784963456511878907554395706505723867226268139516880061103690389618738459271601316671757806872445943200167344341041079650537530999524828702136484316733306352002401303736705723368766600699403058499648548441279750538443074966153889308682296822177170233303184990727386888586650448609613473053893929940807721653758888329852752777094386116175472966836433714249814462885262571339001049692661101381314341571890841566763211251653949080482582765087450084120940648398707828535898452581770277552359505734017580541480719602988784473139717013611222025819608371162751703864934003968374226391299362104823615871670547843994168055472399143119189961500894948487241533055336517391173262831389204091462314872618320573518665665604577859486134237446368206906521835616383814773541461465175222384320315417886975338361042231913727526564634268127128180210927461586612878175446155583324959680570599988356231493614655436945054097196630768764660503860374672818999145717189522589831955138020924687112484521892830410779437902387450547925638671037787287468301127381176461322467922810408771602477095837631280212720926781082670434411543463788921331987610835699747933409566842849048070422089899134814936356655666180049344183845773979682980025394443790671183653964563576499685876164617220509064932314623628945379880838364413370700229219268444927113176956033213724840329315770449908848305158310420397101480721372243973985659355226208413365024054159277714760071154594370541963064130218782131888310519717648945248712320002691150898778578608374079947758696595047349989855396277736847019818718175156823026727378308226035990599375597003806253113165449538429322119255220805050403892883500097120239247221446792083731317003826389067901823439048071939568477866233628268400522728250896913995563869391881227131004480012528123692071046112932300884888602205785153526117555601980071561426246889643855297656507086433982328672014675295737505013513182765371697103363102332868734258511351881838820723865675653854440356808296425838202395838432854009861372758595546736242494977928442503903725389847043279008373678301047424652951622534867598503389471849562360751840751410477480986355277229512080414145928130372864904722576255913906507143711848635890837491267981375766575655219825908238801407288759674264111662830395245069769585107759186407620537827960959568254576330542302593748734506539614345979133235549608112478445814279782677154084237022241622485096040839407838389894784306114010472715682772417607815531339164460524373119189272394759750427718287397040295539974603993642058708078521972929114157438217966961391158073923996872678292831461786267997965093698402487257021216646817170377961446860068636743411230181746569701797284279012799607901781157202593938302315873476113274987264699615646256368275552343842475731147570888389169198028023052052428690214248306473842082348309096614079756226516595732451465117531834793911490573634458058699079460247494508556111749377721976999050102516583607854829953588320975191440410606852642326467952435909321212029325270828373235751276065298328218910180889631489592519764185206234465401277700292374688054416386996363477546159890433476021924073175611955997930524597586777448747220279978488956007852718375495932106493782022421204890686161066199755496043032087212717834040759413166872489137117333536639461808566547186977522756956288531117022295650161060811364353573498025192367231052230228025396545780183131013586851334009523672111615581833194380469437576477651984267841241790393844910006263467633487726772285086912429970788277815189123066436236176091380586069033791113256311203667633477159503174824082224241604918858381405139185096537765043367996981478330243321846587654420176573564924929390722517283828855277053885144917505394192262157763395602969397059923861650815539176174516793299130663740230304851932365235760025314516095418128286664018028248649564123148049719537751752523659441478096533499746673769969703970518719402731236127405643490853659514093650727550569696729968566462073502133920025962445432318205486180120877306912860271309318440951710711160025117092552076307247313938031338618782037665956862621502586783630055573897131012937503285419346212766539763008698898068977173429138977518183154415070296077411258758445624458041828753562560006760071050882267577300322120416947216822366525340623854753647654155243938071905242036311030906593637189884938101349799219093989890838851641198201596820579362981152924487920808254117225690569008727867615138670677145033876291422274022411373277708657945237905593153964335563333491902192149382043517880884091015289402525639791577831312016534631784261781381379018672336836358537800010366363812240933373529089961464658494309835046637364683073734138910482715882151037218730783073504599809752135289218819748401845843627601828595765343977399518880488756353590566352234084901381177863786403379579113073964524921350625290837055715521041519864027982641715367576815225100067788390589321750878848506589554803798226660955354154769589490324754290479318249352217054271350448199050242661934113464869618586007703388258718179879758452300623262935855105646408360272856166882840984397391662174950910065292520239768220530419926055817659700669128502160060156338236977002531033909112922231919337158099394618637356522933280194079683936050730738082187783073241715889072143020422807034233014517543380637616290672759889817339578608015927766948467501517695663155121697743903806896902911421787850964694404629825973546506322774043446411159018465275816430444463995259854425429846163002648853370508016061599385703531007012253867809656722265175651722994311595167440465959118664780326307439085551355214316894465256231262641001349833205295029250668260524693496377711795558223769979509585106497593067317857603361605338380925427624671741852152778570135355775378076924551505653985511418273052082752173221172661418703065282440444867827553608319569826480618160483942705592725931805396203017163748307007406875489212305030284962722297924741076823341219696889184644506301292684991406224887314936340034875014545493278982887239180622660436987879287302460283310892767380195647835980807826146872972621192313879759540475551249965614844527879119155574142316240538124273782508705420612384967534881838404019636280018480190129860916966847154190245695268672020858322853987574976372365347973835684519887200343655602707073339868794933404828559392589980693522246610035133036273515084543782099508385901704146856062035222572433324469051761189216024264624188841618133656005912356621879126617540324509194084416712174550142020732742577197954842803060265446506341486990446006838914188284824918089485507254817323330618531445263686119007344756012736732591901451377022643794455426252973059806112064394144291340770789935496412924856972489678998270073339597983211352122793687896007135656888101200965742469527889175363936228274958906415834567243291537342395564394905423852168123156706915345176509340954334934124735429296658769312692287724635421019219491687587996673166865659854418526874589722514165687562953389350115034395800510398794400958610121640494580167100906306447972044324073476870663204010764214326515577440804412750012743625775268910462471066803187666294364411322702838310257826402419798905550758847231305108358388653785414966125675689187234280826493102601084888638808894335453694228037102765549003416249352905396020569180969988610523387052500107261642061063693792627509813681713725247578517576317425478030112245825132241480101468205211682968554170107293714863012312684561967865466478552423980182315568263277569824788299283763947750790081641626529707489774804422391518804187551035726070401764124586845329962299441617577690384024425227617685467951868862347504386922156402705890566457717549735456068821615610080058063589407699104191862659189660426150050674867530609194373706197938832328930618836478065715095469730908523716390344418907722119656781301120102119369071417593708344275288240471435491374924374069196502530836360477008374897832914062199870410096267995987493485020316098494606397840966195348837237998628619834915718688400652020381332036861353822422311992682032501035989992539640987316295123133797425272091652514797576886403550005888603544069551436537083137695832609338062329441106364963579537023937056559825866565503614084974998491131010218995740868103186249976679959165946699245592854682382763903897511665794147508285878425532130698990112503744689910369164800381317105078592775190812798816168916979541644908359353064837802126227642834666688323866415822273118468272877124178909760677909921493944519584294772125970233453996710616599185467252984380473193023156798973779556840153070601426741548195934448870973649675818183643655696531921656988054668724961274624403952842052809907017615091656690744815933932746580834536193464218384819749354578777455162975646819495006346902558909251076125557828424304655848576139122940164006484998036496823006829690659980424162181553365905231080772931892590631890511141342791726576099918391458262990658082705471506728984502489502576373453428655167006201598081808051709023831096669974212512694113534275206473401375819451863451666778184996217460771952870432059004547844806198212294785264647948550784163052526700835782191986978401950838613016416299454980046802186860380392148350807323518737708914738309083613688502645145667474427646882926523576715190777650305628955000996485777097930542818988593617652237402057575255033067046903082737358059865609731687427700914043547455066950078700482581322369613312218075252505275627857258494137261762916611185074835325906000233627156930262670725560905472268377335634821614192630045800619621140111402699271144000120967217607614352391222349994555993978913239664802960005824526502575171984527274127927797533007384464650033583381039914226483939363875857063562727704392428769488318874418519406006753660569373665240524754768123530160892055473510644575615975691382953741055385203822393995647002925097873547853025112528767528756993524197334955602063102474088703673288802811382841849792981803980746406462626301118445995684116967758688026130925507125531507475846750287672932855998359741825266936294764984994232514045928221108023663166969914312358671016942301540429232098038649410109067975697560022893228952606932147881283246605219786624700328658811166675074191046509290031922323439984639827418562167249574207623580044090037766310060696812771021934385466121472506881785215650342331631682633823573620694826272407525586885268100904523839478413604972804154962728464012656305406405177422340821058883483044192730827582923561083975004611151104914857861061527986495923287483290489935541440083965239478849186304991595712692037919821140387098579785759224324846488120365935516245217236984341815447647922221655180571220523233445745061860600148295250370691804649498554936402491743804268677091453107236547515478194405616171764431061374304535092779564242387463184540488403868060718673796886262639798223589540557476518631034609765582632307856173082863368356807812694641714458142943635312548361057457792546246703272250823816818617433499502686335462389684006377683411849400006500950452436008891393188217517929250451661406589326750812437465431278210242592313669370975491806788810903047134995415097166134598256374639783067475761550849386085000408633040143028551069858406954882859700495123964638613407176576396489740015541890330889784800184005183979576523558885735103895614438232824509027014755500565155145854537755747720453287179038078281396454353048958588084818297299845475272437655013163545491798522816626823333576042952697716283039937584137259482478453350569270216090065033360897595250114744247742159445055495799878977275446054930319687511125241446840072979272451099158228643771759652885406550226611659997829364807130558437481358074410852718179424415338800462666585011957121482404800079453290417065486876215712867331573109749559391951108901051858991806867802183234737067520807472823457738217449067840227923378346255464492220340390065770958818994225036346555690093394727691146416712759022967694642334467332424635470994995678377165411269345510049033985246760141228104777049901305924826312589049689512187743432411850913938099132192462074985372057700859620498741780201062454914503153054886461192254724499890497739261995517588557590563241278973450519825626648486587210522088837331424042658270134273883017861259860023940924322563967146442654195674529597399329972140247903461662492192174407359640131398984667958852775383240344507909197404329862668920735291829224189578018396432533544219647325155407612992634227141987925831341780560701278065524280277115854331523354525995363753772299040986451383752238199381179269569953801078745901700003308403173848114189391633342262291987188238266538390225167080706515592150965507314950906394664027271638020097671127628595535246125528999322929624838075885402939977082747581654023616940289428693385434855857620322849515799857222521363638608284176553904964393351484524977909298165583795745608723381420658109040803638052535649341642974316289533797402198267041069883871521301027334694692129700688154757033193403602897304252455957807161643629583546474180150194790596369132543667044185214688358347634472400674126033558938914407262901614260637507265977673426676674055280665488863353481516547157852525916871268742741568794575544636072667704176147470240430657009850127888419504448839394842103059630619600252262033415634129756446063390546320068276875016542653779828669928949180154176869457835844609541015750670647509057431804050732566400412601294929528961886227279322000258147782580540617219696404196108046794521709694915277178575790941324024476446375757323169207390938330419233048067354873732518394144794462773582545308799579015078576391999436423737151752398213763064371020683458613800713460934527000876198401848194230252541797795233398649007353698974836173533489807454035461188270868626477621649187633926314754013967235240803093802442717696354174935957800673359295608247542133376511405431590028363103825941110827642224089977728906975471239607738133688190070601116171455023066352503006179090179471431505266168253305895399850446561957852870410654796739306374278087848138027735085150998977512553861671965539796736344736196869855756075273080863455807875451926710671948577912593620504014568683809495440981283426091615097109524934275599055504947033220670186289196929347152272906359780975459074631301854277125996617071806283019051084796096043976837336369729701722315181109502234253504956259719923172198791821530454488753115311658580536022037422647022076976334962511529804903437135325853863909264246192503897746718089568069903155868306115812795592195375514002621387447583241612150106508784861345433291814955288937105602798364539914497581918312875786190930865599335452681109180669039398824018491262836692717476258158466646798581655665850068447089506543634867143375199871763093569475915767869288939216533873728054543280728166207313473142467958738244631352065820558693963554697877344090346463515039037724195816609340990978738629027314857083529358289281237551478278220769966156751551778290765878497980375238199604842886432405414909486880283079545501199406128280277293236772943688007540449638138158558519958510955813618487629805587292890821037617963559785220400150402500392651688569225344744653232749832564524108954839633896894875892796434563004611084109735145616264410897188217473935866841055711527512096978870308511329983527380638377914137191085393223283370751697366715841709562125744902785582731959250413721970013621161040017940635633978090878900585620952786084998652953189979764233683817304334812372063396757174000704422834599432410605886120446849252276991160876299757762871642115254639394514992741923718283338248028054291415137206466956694831039769047060421907450687839198107638972363835908239320898829304858368723449302742867852665809286404372847644843450582130619519501288198961831915772156242956810971377272628884544569309834322071823211941231982458905205984446118222010921822309858172230918145751991241461936802846472469916920545482763664088735868177581864761318958712476251715896143197888638586948508157399633889640233977934362056343726488109872839784086079765593173555245842474955228630486911007791395287279818862925202098453209701304135621780089289009212226664855726532130501002353148297342521952918069729716752949840623087529490062710011765654353704774934838474161439361311848840013495987895621477097466013082965930500057166485508736254897414005306741270043327877324134903285846018845036795479431392812334898071761101338072729644920953407416730140005178442986550017576649212317053719737152650780291970769923307241343390429061237740813441657312544148703493446210820906172239114449396255475944876283962077046688138195414051495855690033906965700326153019817141148985994549966988006936016843621149752221813037866605658291797907521304186170191167211657089169577008542538774610616722009411746433511060025647291315096886341215319899980005205055395335717479414631027588305377686700560866080939483885983841589551828499053414327226765941753744987671162125633999696878645352439536076562407971873226127533199526833361273621791012325785839187436078865014196960685364603054991408038084118107332577098758501332117912062919567507883335092642932079305998035912529176432731944873140440452894771911745221018783570387824634198857818036921338765826554222603215983463487443988852896802694377044021966461101061237644637507257741138141437261071995425089842522495748721342493446071841869830662306856230505376415077651515527674303234038319355214916390122095947915549517837039628144866595491340081847290202953209359203849559256474459732619970201275450153756592902588048801541972818527358257431108976610592543746819101936677584097936376381166385582352446443544823306297192743886675820689990679706435872497288580628103998155707341457009033608884628203329365012782126587513097853864902482069373765447549786940112697449203485064102416427551737062118575751248108610492795409170998793036480353461249362309432520913869178246172545159828701966068806951633126633357176326573937211061782169525831898848024545687893557647558030731084431439361207573828555480523775514651617078194613717520922017890558988101312029133133856119539515044474742698628746725063428041304423143677860620542230171342204755735758486758103449663067137066585905623500751855445776937288717359409990090127499668130513787793687540872791205901828053491474312706593155852084619120496719064290411888071192166213339259399617651395435042401292444833098604953570208213253417335593131015544470077329720484179249080252112038168079078541016871085240250326990104098989809509459294250470193515571220761577890457681286382088232261678828198887320464632496118664358477442499439201682070997150353443374774400571428944745526397385415124874088746431684956916857149399657870591445702663248355545824113369496688202340177128380038408999693910681340247491286393295496221147004231301609756568949108872762087669172653050330496367515844906000148238047546367984482037312106322150882055719833235035171356502032607291938404592187978385352822993554611738054516348302390273764673397700686396199201407123415530281580089778194114158705251089782851139642660619620161797382022602234809248896977906575990587350215704225113911813317356230210823487315217509313754324505160408331720121839690998660318455791481488261230733765563522153637508582679139670769060769505483238012639535176935593646079669168599013138397802872607676278328863201395037689751870633970102492279514053301200197514923193206393631678329656006877997179640816224156360868517774816571128707047626916479423760488491425982906010092366149125183315983477567737715404900711778403164627150903812246766978703945387506447832954440903694115475101011631700756675032058754521935403684229837166198420959760209498859683881992025785948543195515345818902367052667555679169896071361724942750961649827150200266276466479622943130015825035715112830436938202396336238997829293672871514752331848334221910293281781566368673623149776393288698503423770898591968085704073494345475962493489348683258526752311632193615880800251594085757681378996716357184724896049888759985362492356748915241491852409202725761028400458851836728211806486507235108026910411948356693481710447709548835395929402626094862807496993662866255181389408050204773293456058795054880096078084248285147406337034413211966151310743975706818867136963584085776439288677146431870171523701654273069490294109618230178327341113995591277982856243631011232502609086406914511741468347770181118610984449932281128160302552323183861357960202140107715828860445788909517674053145013256354945878115052807167157598935071142148337875336357834053397157982735401888318105450633269936177691272349991679685761566284957941971986063532509101255130502197944164533632547627073963190128325075605498745281570479950422078664186219523446903788625915962051831697766980852752389515591056186330328673855277669759659960324756677957367924608315699002668291392264906967018151497421822083843911414273653663722586247665379243473798080613187661310524130840213287177881418626836119460392156225813580249475241259988599757335085355794314210975402360519275342310049357216138255051498274034766904448488664520183782982499395457413644931546784480900802906763707167971137816609732887534227053592548960255753299347046224052834204536720911145980601615784064454469310842295618902162240644665175852676489184875281323761138016869809421932043833266553166966714400023247146049482908470177417668241935165879570982343767240202519680227463837795835584058933512548796916907328568788322392473830058012562449079605219772318211071604290424228548341945077212606060594460451487087221820663522488342045935578818119963715951928304981251647824334168443341876929347163722969041106839497851814191760360869894107888480224193088024422549324277901161257813520818499215178282725591531146603295233858714961046720970473584687426039285932261444992067535053732691732589170080182322344751565596549804841848092797779991863634080758591203612947856993882333300811197102959436389046528514635880159010081306616344474345151277678201679989101544425022997044962997216985656331283460867982536914007188118810765399087741494561410436399371056121540374088673095173034530468919752850680316839182168241813162675013214651783035820498602394475883392754503816133141124821969662630440537927882460377874805217336845762146124881908976151182197714887684567798474857492266955104284249156050563531958384548146821066089142929183912193785125610526289847055399629804522334847499732780079944241701368267300996457539231509199345952738133283251894389950694757633566405143892686677071245353676083240926377019465544377883718263368346482401086097987299103542762939495454032695507438923809617528471093500798474853274465736645825585658855827442081441319354543333600042046279483525129211131903124727647234237234415333903965909436834293993186102323045497639609946457814578467232827844254020322623850552531472507557436155143220038829125768217714573212062283783581671916691083890312262004273748371403024502724726355661219830101343805584817873467067596658648439487293978365356510419642327833934252009960471283653750119956165533867023157290571293108000411901511968891645512371305266557986692918077752039902491907686015065025075763155245782745074022320206465947048809580084520385855305576558180352785477045253297624203387981468036029217793208599503122412175203043737785239354913495421228822370252145868123282125267879891323003195397487514973424822890422042581377247636841267467848756760470986828513921333830930939993926336828101210954225986822459171359826064265959811394116864201304834957392638747643364027495695145402079030245006432197888958843885073330447006158216410697886218724662157983464286001014375374562582601379835495019704722792834178968624682436851163753789673791086927316427930211706438168864438215131716029038005137559270106848760984402309261151338523845928037651632429306415538115653888920605007184566904034802901663016576079561981516367828410564348917402297054971123213206826713436210727760613781858610162926387203128380182737832978387964715561135013593235453700864896421315821496150086674447206929498136545295254794539999339399307553574594684616985823936263831483189436569486235206096868989018969191339851977466849015230802583561080369943416296401707419028300955871286357613841047193540258605020670914457075083975603178599198768626193557051994187303176478355960762250833606343969018724863339064170380610137258703513496646651949046295094723376171717665372728865563386591527513170291162956761786768524569680024553091041931694595073248433267579161934474264817441915966674239696989117080788316011940401257687938437344273936093352533104856465831815270369178688487787374269475476370647248172201772441337755671220588689373140921667746185859284585964637772628210905703552438393495708601448866158933488246224445012718917097848710648799203885986695220709625850161205075995514907274044253256649677035284476123462920580276357964768384384568714606857449105245507333951593087362368939449862339110781274781230097901805385876460554001556001587686507299426991468092390876212855560640566476435359473034531442255340337394133242825705137446598333494192729519546903549182825144643285498936877724875465825129225657976845272254163659544579000190702456027732680373492376478395470325586815100956484568990796136976745662071389740160007353044320861907082347221588243518302385104767030528235120064740409407041943266396764821084820667623676866333092142948662501131573347562865741885408086280920410388069701525897798912269013849221612440787768966813509529682138905390518732197563165744444483784833959547024765700015573583064708056827495221664725019054803658219481490248324441569448914227265388145322750250672090049248342851087285088043772128408816561754746906248617985071609786978525571680034969244558446450815337039773875870267203756438760739377173990842717538419370015629727800322641649988929767788704211649052612576641934772286560510960551929641193680871777729417991045702559952970194017331311184310315079468026304477017292143005442848800022225873852887588410298450874915751665555123868953135936141033322050458233099824295756292044289433517226010659792875661098767541238578200976652860097765567684310927608620687355772690914176648564397410466833300036215499968650811465440416059650134213640304775486881794514667415139949743726771175288984310891461337320295001821728074290136720294758262501445492342541508228283062382508732488345547076876681825620709686915855246926280078971163503100280218590053428388614781064566024963242770959790035959554304777967176343309989592599155471218888611310006397693723093654980081093123902758388881061836786117587010332302485915040861882898655172590676516818909827404130449473081445303060868383925778629089817936905638346141576443364523601421367550049028570855303209597948660543523235177126820962735578350655836156092724222040177677726963427121007637378806983900009283172524248280029282650537096524058228220840113766145372628097937260204487346409367678715651303033330620632392930566624802120003240987918487001955850935845959902423202315182819286348808979930016243201564755767006533820469408592813967191642783485357560324999219819043933531502734646585624189399434671651052669621621389773786980727793585426313929009827725854293908529116131613094851526837143643559005091483691715491367602974554688574244004309781865347205044457617571234718662439660248480167622811724169061606108314988264674681727419117002924593718919295581958961578384676763099754553314681261871481980171864518865821210937497482064862783197992793059410278392676822117014035810977000643635299913908331763717893607818310142732802620581754835624475132173490693013007801039993514357021809804731405974099544935226201337709399270365516168612677638129086283722995411865192723995027329235125328703718509437726501746863079314022936989734200643185016194874569377155155400379322495758155358383543310562358241185128815041001110020315614741500864405602253669525350696993392936327098994385329958779765518054827380999241118429537061664080344202825925185567116021928161802077338937353499251841656047587172834244399149580144756569442746424214398612750516630921075252619956591361118120521771741687613355494616723344282762710921021234345540303422108859065117887591099087545720306315755142303945804101365724001033255014608071998860908185778169067307741637200597027810923545247059504794610366412043368432556592354274526227954156643335986233428452332362127489473622956958897649325915982676456739133581389226098007195092345403930621889044548442581932384646566727837829466484887263957105332487486241161770533471837448070726619809037780640136030552463181488354760600021312602836152872352417744619577739543490094663149046953564192265212831632090658242623491500695033173537503624702650845848090022205085151063728674805250761951295098635747021214713901487636706870705620465088126050813485849382520284025945802225931806171347608259535707153668102219083995386211890639235022376653462980839297374689865997560230126423522703266637242790002722334951718440378466073756108085989159316981540010437470939653859322524050903011414030045351825703628199617329587454579206643305697917620844156109127954602580091590514360476815004466922174898100493617905569064408415597864958694177418008788937922721072204217631108702042087665492791715551488519882322979695438495223012746191192904200526833905173654810439005982913424949056086501003791586832680187419583500745589100851621022839751041800137760232888036921078595584962421224394754876420911364931932667544188133255511669725420834300541026453083253700972650414273110467851755778563310809911123296170072586318245183067190867255060531012809977550337545445380559606421141797825529219230910187167122254811868061182725663107531450518326522233531487411355044421809527117962674077216852308111682543067904718712190831466894695477384661039181041119043845736616427346170672550294461777685105061223260593080714678333967102665655363374127446417315677885354724953700317097789392858754229933768763639584114217024744211677299672267034235489742172675696088306323656950449638824474424207218817230723915716576538161339512670442193407841628756173798507152080702546673464262044526471030244882119158552155903051468003484671533917712082486301588656357416959817257255416593035354985669101224309292579735356285890846863312384063451783319014573584662737108112222916284946210842547206759034694626951106883738490175206072092621634847960624156713035751231516864611005162886649020983803267767214497650269777015733987506980753840859918054665933767065333944054547907007276721185526924265522324762839098015170249136980229860530664630599406086922450297030553219850286685679950501921912032422596517408229507563790785355376249670219534024423991627717260513385612950176368085071997607954267210521130036099652808134989410336073304653836487629085217329380733045740934427143999554063739838332169951449464246717504769855836688582598860320858765911440742088505451839647630926819102280197813422553580108662352187431677050484971112509079890477889952940742464631765230441552621889434346806888625448254426589294285626606129911349998933323603686419571440201687162523940605559417835262412026151264158618374005665968541794005518881154858317697591670280628973945257092072011430961372336849580102956922094057572720887787642904089062036706972382318291858710714529561074670243548465437905107467080499927954906944515272509611188316951362580974572830679533253739060289516516847357243642003008495147834057921686630266281032386542948522642055396245282011824222968126387002344676886848691897879573175964866010722197384832896276728262511082958468730782546490863026759919224352937114911653086377759042798897926968364212766491275068401863653204874287329918839053999632906113390454506623213965033848730260945736737338174063684587831192281022958294171703834530058746547515324661625347171107046575967836188785226196852102046759050745038194052426645633995628613062079561741383482647458254741590148127676978048041504849515704165056303342845684612010821897593633899812494468887937872481347540882491278536870931538406137598935509623117736505261359039676581804727583537212489481040946025980944078723430382048739248418306065052041885259401660999324515561023059915759956982761229260512871099000837200839836502248643570625989449076133900056134666958049643110635731585707581948238939910010229403797380121743416832237097072484970361971273218537606878301763032223775412257423746276683658436316529174957911506700127141700255407258528804412500688105885853542957434871904131304800987425287550345593873178347721301172439667189287835623065939430360118686630522642468224216579640283351215259880885909064710871584969994651860267232787053564130691420859457278786160688763656519371408929328679745965830221258883788759190009612261772424854224771559816981193633603287626949033842392823329558921835980478305762491287331085330064462157623234889063602641465386313407085115851185727078639973128711916997258469054301935205296720447109489841890549013754005270797898875582472382497565840552309985210721319357553440995296412989278933974658902603943836990294383468718009924264135150238597722429412633393337451477649053058079833249520685366425203650803577559325213181730425437627547044267225770697261618764178512062644813201514989464747257194793975393386332061571682863131244491285050839145711049566350537454781548594196561041849362138861381107245159406158384704703734339475123183658327829987434200243753003571699175150246878975927666479086167287241470408044654689242533256978409849962951649940234579996569939146991748314624743787207005928123853407079551564124438468695338480617564142807401988596809210074085943543113571315809612803848617622616544780313112583511337202935336401757498613751860304510867886885236822742125068367484945238838480511332122668841574698571314015091304517885906979278647203303972924837300710797988666992236503025813378455748252689316645243026544651859668812664352680476792048281320855355912518953192590276300201723501394451143860680626620613809906182906650492169554560549997336711620055420873839485654742453572529858715560916016288274341006880448813723007663377463128725054365065427802268395686491366216288419232964848239439169164953733028346834627533663745092410045016918640223309383710331191632495222016213515082541867959015273395778133176560327522953425284491139142236776263466473346708407180056352016674992390103775287367676576542463688351938958501172234916409933944786097646716193044518360102624864376246251638579350993156853118058123502126347086740845936713107445564084799392658398040203745101717320098516340121309603245925738494750798960894871706336356950380499102311415550401527362189864403600032779440879919213679937235831024621750546378634290894531974787621511177948232324400026030383016828040140479872217775512425291108713803076372807220315939698305290339098822090969424437585792613703128903064716586988547767272733546126825852910673715740106661790006081389834912567183888314203073352879962865155230005230240359682131260312882428900173196573658094982292931722304993784829905696280439910458047875157719539118544081856104944833873814022577040443617357528855732110147922776320473437825372932154245447269207487264315300594474403863390721593189149028661331652555828086894745117840621703451507006158276128751789461775201970375183244295983311809465065148042232639967436123282739004914539899471031301701605996456556646452872624303922656747783437640998513505911681300095610283496377058543767659010601098692136022661851091217305396241729862029323525536078141167657936427802420688058248397712462098437567646911283913520964981758928330983847104449739687587319154384940011759811219118374474952212934333495671521908790065606523581521697497255750436845481551067169290311822327468981157540256131083659223919710718362226737219630664857745411392065896125823281000857595437073507164817297022043589250143537147917811837399029210926554404086656991196509927833486758392085046719491540281334786408069660506006494679940737892471574779806224402783160512520021352902138893959991318545609259126100606380608795812305401636822194721467516849884797743858367713342652109591475780285554713720962899986573962090849615921383363015702597194816319886008961668815639404775000529745473335276000718907755549681528898510966534314659183041194907335568103170444725165939122258934980842126167220127137639645739934995915136834373094656374891040616031674165343221407694468045631590980554921373914406065911105054095909622861840637833964808870776125768558487541217972211956836054707574737762850766306369923506761949626417080594137682474027022111419190589857728848171168326819749956987735120837224239592308974733041770273658085889807954661021563538277905822009993314043407937208049805488925103049281315428098220342604677835817416867481962938483534351594036718931621445461662831537227110791394062268723040332519850263325309967220315440334562057772200864495609852133677484552852083556020854367356801422903946272798134429660821700456511564515584487869584972369652294458529440118472604309581339978014139407766864513098678254060862029581090626090089699889360504066823597529988922516174640990094299989975202638437758220156767299957439555059494739195638650035259197488200428365074911012550432006147722462598750004592652229664528844533862390850686037083352593696691878551208004937585347845459688480057481741222074098429331808958481263123387104855779388993696561280576999957383414759455509812285895672486505765926992164217354223048476573725524579426314100743515626595906172149362516721573374826391380273604399375047455981909907591582066818259547545583868675336509425625273287603749208688617552161563911241340795520994988137802935290754635889074591741090965356222310027056516418796686892815818159725966921465815092017930266062108960901554006748461218031765171243522445817144094492009671372584071135061737315917453601244044944651502032642261594412937157885263572001591881676626678972970808244042931364839729899353541241292716934787569387341089817381713131974891326882063208699040803706518827544097525619053868656040063324042972513766541495997232000739598104876304361365117369990170204392125649258940078634922290338171362781586947607599597693112794484339013786742067205702258697624552794945699883941814660928597587661475619502845272998126442698135135920809174460753340244004864698717221019318343359227557602760977384565076786214137089223657960368970057281152798934487975980862111985856785749357515202985725488519675589148747317342937310038718019199254530890813869720505620507793995155020075187200188489988364438352260160051956006604585480449970495076840271917695819901188155372206122484338943814375116292791789897436390479253295424030930175991833459275960385369590514757022041680302764179113808867844482417308960412774924351014184570113231664499361273256569938465347635228344112913091101412406287150877724538971439389577153276357388732051642502382654430004262584637805159640271353299527630755393616691854579358192284216495247580996801191677652589017441805609552479947654584346824151565069132657182829663233298653745842780680317067945829289188203964472979216165577794316726162009464071702710220874315044708299351755888747557567965647863006987113235015379112940626987404395207124383285127658376989601130387005760993362830931944711342437512115779051610705885286845699301689948030345655888054874381078271155352704527146324431986329333882987915514973881350216724595677920379864619087553171439181153194601739458398967251521794449354969250476216705662003444928198898284655052834916822404753165784152669129848574257093047706479826976404507355933905841670740105452339331196038498461092628890953319925111469995231587342591492472136938125667439140916919735516785620390135492959891602536306690332949293874667086936019127761163995788904499563784445143259924367080474330027990752035136909726739779849300397590995805010976157798028055052531448881103833722623382066993226353895503114660673463337597698672145099797644230553429539816838456727858633019775500359179667096922011093649052486847077713422709122581059779644102086966687713738791946894098956214019159924730569106255439426259701271308172530105670864800469069252793513632884544178719945260521869972606523017547236835032880482144797954858098064940196127091155694151287153185832667468754855623421755191239589937104703827996266354895165830339542566375111986159951379509189116475474200036820992326909776704552549614106761299770456922512079855165013037593385314027867700709107031129247228738401135470837301168768780491841241959382342191813000613875830675659480085342632869927321788779573368354483221683583015118378156208935549257446197855398777000557404659472282703566210483006817682705414946438458790623117380228438547875046210350249338990214415499926998154387677543800136532032569251588423870911056148850676640986736171275499406432625614815868648015231403448774888604244891431715372778028662860037077427962983648165086756293850734879687976150196241802228597137539752625047141603533556630099675885335692484439415680165363859942913156518252492915516098653913142429660445263784902646690559845387408070757934655094217476051349415208842691377509128599434302669378544873882336368442782527677481566730296157365879615253312725303153000732912091994348491138912889194371791514866372967784694046794701308115490077007230406024837248539075364736341037041963523250940858480199745818116529819463787224523559203444441772514180095976706170345791293784150636546012364891769452987041477320218049660079982090978049261407241117532311877774377956361826038245318613766252622422763589368136014077205379144094195915003353305556678434094918205801285632722382221952537128985166087290435976810612351246280781877375937009974872245794357757703491639793908606435322979607406988056214561849928922049459156138531189351729038679434186706489367330953796959335151793627114705735639440844265752303203199193831369023096383779312370396582564023131486029294507246788461322163864191755382222011323903046321785249675789327000164559628086006505414747997005360152443588881017875451776165231064575483381284276161456663035082085507241854220227327741921024098904543226442259236644090227289719566640836371962886877077235491335066533752221425049524461138388260379238944006011615648772845987852614386728991840489761853355032863337060717626699333785994150562411263040483683015715429570350332987643858842582329541440064159690390611967562806156577119906966056957886498626752137225754703965569159848189505699913557053530007538044142949939010588720870971777420005827303911299860893712849753165910310183905277927660427511312296353772142287146188459959097904651607594476177752577370086202203022971275801132684103854692077657603651009669324279007771035282878177028468650284759839080242386231865875352533570013080991849366065320751797927154452675706123091002253400501533143794915166059462274424091181553581246338295376024955150091751007498354862089714404059740695335643569167311303485591309320382541254569162016038626288418802330152915720043294003361247516082067837113077028796576869080978621347781939149095681340089678415503185385060380911441831537682388143539116076902348226957277758921467487482868716196642988838764379497681113550244475870133771817058151990271851143037877184419492908814328054509015564472891255246974054472498983538469902108574459346151560510746927049264428427088069889266527671204249421257806318376528821528582228520695220280933619329942372821759752968413984852490475163689914347957453128870189769121126646796569459675802836298757798099680179274895253546946113010620011504127150440098028091166237136762749048827982700092317957131630940025697795487683460976668333683158955880872596674816049823797118568214228208653883568089106169687760977158573612261767822649703804566714839280745206512293560579302462363101026948221530602229224828778181860199159787892538428664466383623815009784532616314083681592415060629201103666727806570654105444630818832404160110268997907452790890643175787205740028289836268483527588642858064044654647673559190626188063894870505636297660456841237667758681813872641875820229633704924373134456604394368383623085972785050744259313759010719682879972324289164148533637843942660244629746034561633490629298422597122754249934591840726773971700180672884547131635586777095265597879238748162704182207510935072416938456878546595395450943327695451160578369537661418314910736330066695341552670201419506963991423038262542258111360386816985455967584587163669768146574364270376888790233861220032686727054023542064625749926446772490483181174055801614704113828178883576129131633354281918068557729702662205572001225035019803666486523456267971307241310739353401805146747521813250702598385248931517318341713951430312139486592050013660987579903874329310534762667596687255050121991081309480595067245040457055172233163334480025486390300170753335311603366892423331185153577214569468444397337023439453873512546640432224483072255205412202035239910780752783716021342167906131423180366563512977936360353596032949510201816201926844253451265854656147689622556987820431098582936136051026952357120506680102981686414657739426185633772165899283292980573392748852433629809621926145159718723095480508548820223658765119345301442752659183884212828524915223603548124387494306935044165148333929290073914520656822493034388966678351964398104454987286522976951022103644969527090508326179378869417185692567672256767607199129498782849165603139521986708722849526718086196478812492516698864593553732716183406832780066324686739330477902714757683534122885949065864439577885172415563441175449460483789542575249895059724585600877813135367945257101854008949329164653461340294832625179820384407327006745379779692455018156488062883530195466424523092419526579375443125203470846618469076583565633649678425886894258918280479691679676847285199489407617396687769389248476494262666465057284765572600910571688951105806818341517764103301872152866233451920772413912533286455903336197604585331059684179802159355392581110966416712862576941571781311270877932205547820650752193267841002855578659802915599184304276123616023589879668046673734204860163183319862525196982533670209971410853952760023352255282216791413811999621505568351170945823910874899274164759503359758620168058527361336697669974623474643488600579327569079363208632612561520593450218100230724098357861259382394201926708698844213852569043979136656957749872814738693123126041881328869395186673512763512146127901105827824080241126250566371432576898794942848090964430219125887027224991736975860271617734976524352585792488911741161119503802017856997818853724176181630075338863127379453169259862348859726771554054182060606240654432827046418083998098756363782054262367071325757972044304224465988228102542450755950112061923657376756401829770631592608662008265065799468242198063618991333393881196723939146872004111735048294515998493627491978861270545545070375901049948574968177814353099231527990347449784614851374364705135872430347536610495335641188477226957563398130871598795784634193412048224367487148035888265877432873516052703364366113059161333000520542105740394373386997959628119040601399133919600862443875610533600399048283994418420622247191143359238773542640307800922638435822547674301326078311251682172288377319301363444394883301365829041669470984460248397435047823985284268582146848613574646788320784457742724191785286587329506876059784829389738316916832711134830209737534423776109117942671413879506855122453159761736744961791480631277639697057439109014214472505954570621621291055315724081642823612181761282056630159438740899830604327267507050629441186499032799595400935008655430108202016093461007421119587294315722672952435800094764130264363210372317631463968490913335530993444182006211137884276714229017904169959135612134494270266325951694159073194860235871725731397615455236155599060479715050564760877456367056044886194001167992744578237724301229744525063157744563577400439227402018172909813971793594862681903631436847566597408614381265645543095179874015742645836048182145162355531888391008664654856348893954391024980383038870930987458044901865385740005689294976470260914688374765617275561008267677032983652339672932326548474592582607124467677760617576815576702685150840738205730710769320962885526648181453068894769215376973695742544075295915483059976199467039295160946558164281104178151023784773595916296839952233156463666302518997239742330739982187397282128303779201154056962805035990923366254095163436714280701043340182273648171095221510057405327607291579366159645824253009297637780697324239022254524591996565869087345618823114542906244374563220462353220512219103236008644343409433632507676544542958175806807575329944876228723214612671976969794737579699008221961637406582869024103386386630017510358129120487600432965392898078366381583926710478880786457419901881468306615559867927147725875215855517830569439768432926005414465971424699856284945705957533148649714127736999422526959711020617272687880269066817199676211891704498448036668090578005267993917931481851712671770853976313012362877456222059376554253965066508520289594690904762215555790459766026149034735030033105270735970497330743188788323174325458246707525815031039591585435170325294329643590267040198533058223664660239086556026451476425179061260383035525738520471572543560900898214071165169811071998401847701185418016166075426773315432998940402624394679910383974387934772502334189800356421690602337167768303640983385799554534543121326725256245374593070851018405598640550829142221601735560999050741015027758287026048751965404293113179001689649829684695326803194811803121705366871485634874882636559043888331858337800055385176961912797229914096266505054880523289335493835149603939981940728023780722944411237670547449258536915957560581554705064118644039191626625642553409376007815228250910644172430912015134748576306264539721891502205600836339946614325901495772534720885688861929795451814311419252679581782268768009627528333860210160541972845243636570012412701308111742735981477884633974436272829476585110672299938716070495414145903153754989643329009876909383274931899776859314380355168984289900510907882628534598996091722872553967026914303478132287997848795210395414932384112550699958027833216319679424800347672158564897974508891858047970305284305309205810267779810988077595311151320158065625004671115460247303709917498284698162640563773554445028592749869791044970585929957642191751487047529422328605479619762253556834373030044029130479349246234857379776418166957117688095652140092649035725042912966966148780851404277956428456490363269109071604684095461642804146869229779443034867339254402204680813504363988222699697928530881103522483890006182192181275805014139875631422227825193130580196072541607566794567856210529796567772999248542164806682318625327784098836369099705361245894565405049853658533929844396133810125007357164646100370544814082564421385571314244041170863684941322531099277416162466730307147912259527917280692106777571251453497501040122047684994486672145768204723179795477911183705320075357805275420719967807885608850323339308132842070900350133887469031270596136063167299508943979848036661498578148391315196247528356391792582223391101422485055153723691116930389442921123496295513011658793361622311170021848426366920645235129078695146121878440236406077006458760602821178270828204739314344500488796655959138898328018227394651659436825681084427536758717465700708026016905618344533744513994378592457705105970728218385446713987824593274111076052937996711376329797948022827249381839357221490430617694366399478366602506711922596009651157346734997544604608972810681363429273210382869110996104660005439948063099989511156406615801701014918156261564080469115694404369215828737176766117130232052038082477575372750509261778644197115340824996532874359742964921124950775396980610149900677462455628199797794561454609801910328975872966017183660929290988072914860076404439938610551965492960739971260203508238236862257878843656818210631288452545569859876080781536152870076179544038597002193183996861029954691035093802809791361205094815719010251831979405721197181507441345446249698454332175272998484024350730618255551495651366214802019023735359585863941146703669068298444119829781533306031823452526477453520855280368624609712595791026854550956120070875299620644307667856662763263237331213214754056678161157800982338715958343226296338540927278817150718145000781639705966521290452079089713425595253373738538381853449109720103426926769555308137480994993482686303371657719454044430699949584808716548910329457139557260507039083760790142366005545552202070925024860414962732766880145956729709369348161325543800339660528324187722978689624785888522954988182835259552269782165504476574738684492909598703326261091860902132307929370790855228260389725902193402896394520169659282779338365453260333868083813912975242725262858988914302768792765646008520244918620796188250388135802087722648583826673628701220026815125314817352680952889879070810103869085040429309400390897452486211667243344088482443608541220701928856170549847516092985015870653109991851121897524887079756244998981393526138738735637983902226087203032001120629719781657336105446871324891741770761967129035338527857322692603162489156294236413406429568463826944709651859428047161492724853718889135628809069021601976169466350954900930966978773481190938651971033331497365804928824124304135977179609056163215529320473940628024569563996312991452240019858205186324091147650060511264172023181065261292057812808700468734631449860473121073574968742888253935601461332319802593282234195156056103631617214247271715518701528678375816347315702051033646756733328250716523579324130405796898756124086336384622758642615558817563708276272322156432434434243995746066081142623717017207027418725903592149269003052534326598309298170467651997387514154788528065779013514173772319184153315169217059204915714339141131244584313369970619589220766720543683739384709110239155084647025404074232002635674152170176977820865251134455662603783983503704238253202796016211310393148583244021714354686155386731935287906818428628856601707790923288929137805460935240962123891316280377925425239790087509971370393856340659666294916446093307668440563334384546202922887916817754323758657644305827476328061741010278896978681204999536331433974663239818625749212804824607389243695269375627546235236823654344988182708170488481086467521041186472470790158784282095111972312951157941147606915854486567782052304091202084712161780742247624863991185198803677591132802006187213317357552577593663660268751231240322395570437009065112762600278159010164166974814957091581005596712446748797037619489836308313647323853035288872644943973722924154925782803131136743673567930699142482934181087189520307109429229156725407541068642860567460653018063404144839938723430359578807765350490838457551355828385628669388854846282471259708671971435757819507245929398729715305438584604797895202864395347672995914422465661536438640959064950852365663286084834016904554260715661882003084417756479865036669183489311714962278810627298760073393306506950453608102429280784870506397634327424220841132492109416750021987590465525373138157214478459522727931484970759380989025049808079397710360745729340389951144357709656706098334223174281792515209459923878284676438629303020317942192526850875483377093365975866984963136615781197390343644241783943340955353263975661900060941228982427958431651632766752743321532708434752732932206785620865042582821443355160165734963654277735098762524577242698043120073343881783783160211627949198115409230938223889943384735679102670399956429201784388711904823821084982978823857286173384738300880829384496764923418110052764375482729333761828031860000778962193867720148747625236946262072232232879612232914148723230611437517811060008664971871471897189849473094113795168216818601432804953744982611518281658780083853396149205042414654746348935933615527936895899023412526863145822544229660985925436995195892146991324176993155272365126072298942380074938175156871316960792154873182264902263813836936379806882872861865602723871510380550888481762854003892487690182009761034508753263413704199884728257570391677740246724563934769083482720441009137052266684013666047220162975166072714854342553836803561503740683699278475290222670553455004528737987900072015458927386373315003298024885465215674153218663715205005595864634149059507191175446531091503226022823286265777007367627779342777678496572483911068030408000678367150321909902390659969705346544074779675659838351445519068652377763846242044598348292016640139690246766048197288232324187146467427383206213179789420220012220846911211478475156638369612577791167008006436776495749534665692736506861326247885665384733553932156343087601568283468590637982096432422539765562246107137040566209728739456053411093932936465825865159011126471256791258379780996194208434298533409233614889795956556303515770777281054360885332515088409959348343754517796843291376974271084447262362217719900930758380288768852988887178126195982217580749374789932180378324822413410398475919697171576658033235978073082313892336931077161881542687278570338128050996190375292503188122013430718381476496903694925981506538031644597569920117432392618685642271582859847697771471125091438723240188528113501892786898752837658484421483872377263253323297402305829634294684382235190577333392317687115993084523171505712826254153543610801445205132271305815826426144148972833033448478391511432582359863949760899476077715234921917706749997827670495093334042750324984979072630311809467854052481846297418920974795983511041737214194824636630326356625156107237477351816171455833464925209699780418942252369010215554217351921526942452184375161681163765494475101903366875484871523000857146979589465979146413138869400092277735289627916571914284418803814662494666333253099949676722508921439191462073915586672469576388336995190336770714499549839936347110849608452570138139327070065565710294797344287992040836846247321385984346573761497313221095973341230597548863222144449845780211649889133851734472646637611538724562569286669791856309835824554762164244358535084425612874088038645557188302271935979110992189545499925340046860182073556270585654197963846409427568505776693651852483156899623140632029520018230591639516785339816430733953320754282255647887236053840527748453835539397629600150953815261054499271455909219849186802100787565835469103929465142679113519013022685904240031026281812124830901062523865686407802948752182524134488551919961336998378407304021523924031894989858057568159337339314057073678381495468607959450960960853112474444407073349827201811567305365201006556484631317491602880373989001442097388015146976770473035816093418723150032667608980034060256131832815698174891657837548603278101308349601508042724564981989471519185854802428063256821095475386021645029151770698114007330175304372598280248863980712663106515985586625435421667376097135981789313791633670045595723587985695347109138554286512752292921782883028309955646459077305970157951040207152660117636420072358487585692714099999973091159942229807890271284628456940201732251271442839297846298447144634190292062875107841392803478163637156051544503328972357091441340240640891315612030773100758068117531646744473412518623254479977927214146908372474024944309903775224118401111054267498375726101675742684480321556384851202264344679219499623509705750652658393564545723438741395273695582005794206992824425242513107580146100291599287684954881788344340756083893108400780577516143618068878685065788144425367087435999248238243467624815557153562748884882611763094238549029139369128317280518049794512078176041407542018446621565685262849766591614203850472443668273639768664168056936529716382737676110014724316771885255266445496185445255063566955481909784118759690198068016647477725649232320520833001848986911490720854486220503311501664201819472760711703004113242160271195524488347284199994318883042236129544005684573187921372757585149208291305033932472210810450746658648233156076338742227488547675450278403111594816090522802577040996813681763810484475899647231441276421083134749740228906001630427106175781894258618367974969163481743424900581038066439574543076831945375418934291102510719698760292232877707167815143518421915052679866594861870951268740299456959977581575968690419010797157299661774774306929341205796963666185812247247890933439597481675953999006331385955889186725806355586578375029863705039577654331131586635674951166003949234414338314322794651567030719044100344816516831574259156945804498859029978190423679618776535079103803866452354926438686213568970668557560478222799998479971632760863991412069615151368716995206735595067967610197636598482851619045557323570298640546002305033377738058394415426870874122647333625573598122042483847687096861058866397670889411834076594271797005917241254332128675381610581300079298059175185094677094364338673495724792663427977880581608812074466638178832615592803699268921478595052241487281191395617260032752045534083100700486853708233507011424294519669399710579483642393497585373115484257717871544101504132775179884273250987517446091245073328522689708695727449371520277481766417914876372890995630035957403719957170839685607101587586519828950649109475064666084028079022591912767177435556710958685412666517600347044660657543600704384761498592586355530065106288821166383165366784916879396090559689988755673012584348885333326997880386037928523490776709683793808758013282066946063580018677294641959630055748435933244342159114949433017867784514909541823380274894807681707968093331584661311517749952840094897677777189692114773225072747176142131905305122772236838280430244850440226155278206998710634466552202674223975219419206965490991240213780676811275748781785296401772496181569526922735825348656136939892693106608856052458620253495713978955341822938901499806396715441830513381264225890680026110031733405252955427833483041368061605394580835405825275379148265101102740267177845014082400215810578958349468269008283467909728300673086027570981210613020396706889428389466560299684693211353452199497721891521389890157091397922899077739447318117143442579630530874047067400490636598014130337749841818427270633596136902370184178649730614737896853956938995535281233352462694034015744563169660138347351178856227463648500013315879726320622947465656205400688851942506950985774276782941609986419812362625648352684677808049634835481240758268279052843011248330328500954088440409388297170389435153285271529936226958706034211200882736618710732656719575607550532182650551097502909591189303067103106681242260376570505714908180453867867659003386936184563401422284065066111617140660361010135025471397552980680901830302353850835980941938588351591884525068784310091077239694961747494646570770379596102450119675533930747431153531087685806938827410356664446901258540510842394452048094883896706608190973337666258475319724445872370129588804267552993762919497359055243961357452531093477099998391278626580453026177296286036282906122343178232683654998118875276876158156286395172799481615505613779808386395592005624267988839928148758447576143367580833787817876054688849910876115770684058644079293037999575092263878124769199367974003224035286221407414061024703481101652537388824955744124262220842342222512705161465800849308645834740937834682747293359208826145071645108756715782811324364707806208043038761844199222478567953135391833082939461050185994185261665696096277061744808514544858019651353790520142462417473290134990992854723342906990215771010744128634577547097244971391505932524705077677244842514708797613430299980123260648170485052279802476601314589138802879967815349797067564349926471434402917834560272915845421128005831352281892831689723501374941364155533965471432484651602874818587333760543766581872076929856457980830952295790063218967040001056985123689697756388072707927825250957748721198349583261359329774250683233536430975439321411644226971953051150606466741263918728174027351885596327830280518475863244890759136785391109125402535764784449206148271725173014312376506258210052227524407259538688419139319820783438515729757527188219000431448370836027094691471607289534931091554640773574875903718698386163123690772430743871125587886182667552739090384026129995969537201747935801065857098204120351528752817336766911183575464662250222652438267278603177520213228780354115843718500616738257710276336703192031902371855169292263023715534943338906597801188644513635723387748589781959573426444647305910843948022315361792859424635247637858010158503742024642874671766882706478293761112588613369093391352968705240442263898549485429699326276544715352644148301061409310250929748380652318166993647031094047064335036239468120169327130787037731924329933769835979563239777751247916316583770891744102291053182845695362392488726187044248812877207671853822725556204188732648899929394664858052826784101658409445146412670474455421772374392374291702674957745651037558495308717670296569800350608493897401490472178370845449635069835786337790885882733054108351751043700235176275669990159382488970965189786848152095695663505350844691208885924982124862165443350858925689084687347815767569816195417051845993060971212936935170706888506345957086548586081169155622318711183580183819462845281848545733330313620795712962957709826524232657538186174155824272295241961528259966589970849272637016466583111669468349827166395156221354500688275790530018276925023283369428987964667756814858358480264732424239807122844286600523368500648902072483539103456062861562060277440916730894427436625921669431548428312338764179569706280442641044312967802826032272920159978109177331619566807819642741591106611787315636987929315174338185223097922059799530760645529565541347872246918632755498671049508295631370817075892596222642228588634757666841899936149152073067834988510291651387883969292189281714221900349586034316721024789416500286386365262618675762909646871540975383442832163933436099779626835956803743469578707817635792611111406291893522365245568265043724620843413943996704283042977486553037488575040249151794760844270821702333033814351321354759681128990036991797692877796615352506804890704290200251714178284883145336630385800295678099582093179140714632635045793192569476893595396682434407670747365385181739203712613258503226278094983699108039003035217246744811477000441627237724995185937931322330480557196259732032243317871669095848137920285021039841233649611625895939157519380393952628703100511527628421579210631615658864556298140414825835706601293810304647098834135822372496797248804277539067885679553943830227043472815132002944840502575485084219699815885081401179592611583157220733252230536236436951231353141663978294200448442233346124776483163963472498762318828602659079470343403466394666918716466684999650932562059888126969203854363318021300365370292694316601422975720310593289528217656784398830412680379488747436432298367535102654821423480922940309932695911862350998219657513099898095668166290254335244050397551481705619665774387181705470147507251356910050024121809467129680050379522714827193120771315853774331059697096327406270128460365354370429758437305241471640464550068958237146322400488450269110694161845482807933406522886866575689515414004919626259636722440864339464350325692810789014805333317874357106339146481887495969017045882292870640391743530795919890802587210703683512013941345535693698348779208460528921088556550783653198716158542071184654195224345986902882876795524406106845467759998752544549944595563272274960312947160065545564244598507579937770429963129151913670747914897234446203778344183303328387980981991633692764320835939444654086555944234034642416721999620441660762206113781537114036209169269328130051470772890939962246575831620947091476255727948755216269622714391625021334394940726985911780232759664732540862382575745145801264122706590461900926116574017653741249412473135011358828413817379279916910763753419099933244662168492064531945786317106024043144482719020998152106994525491876192335999039319132407072438016858915159113612034943135935035564492525867005793403642382068762108060345363517565598904822393080852756334974915163560083417829653503946270934231057036108957603687640432381070337025719617235015681093509587143953325428670670885958357877929489506873914427178411802953977396241841550271870917910309916145363322616322738520749599879959497852706345329094583986654235841296812519426461785659107708559396120961579953884636578900674423041239191534968833462709170871802155273095971120914573778443246489776937470429505310161754794052635171725179661675070537945232133708077130904358123769225637887467362835599404195261186520233230698172221642768271211376391730787204851907135101659118115244263420545052439093026326241803405410146124155959705987968529970419819467595615137886690233838131347313143070140868872532062548628081388129469197305936733181077340135007448667111808500526596972791611434683940964552288186198471387407436873929199886931548521020417004731593715000738959723808642197949588991649525551465556832638873114597633521486732171183396819325124368276239359781705767071822023097826310001637994991649183579802264283278179315011152486809042603785979380238249522462147364172065482919810140512970248223804314333094133689712521433579844848119437085448009613915222614756157005258619595208298224194802297180465577345986441467171216605083073313926976423226377137654764183566037850476703513390434083688295229972058690430193523888055478504393600283363728899056009744516967882059280569367168634698176538787143007770356768906197028353280448248749118488052852895495401693509935285132798799754017565559445957848113337980717889861122392074483604916941494756880925840527782143187291868804747699345983355514529877869191807024212713777368988029543720756256651315166069472912363353867650470980332096894864564717882752986366716297798531334088165435224681758929507071824976034591015160085968059575604342313342778981528768153003476003398162649666158058023876364092414519592809542989892255503747241029503469867052748667918962879735694308309629751920645735428141242376379093399556387304766058994405385139642472039934742377877638296793649285743256347915673931726621610048523908375066248197314789765595229480171011003055018639642206029221845840854686848476505036270515744023181668647099122644215537022172060865875060748009658396987050685053195525402506162202994055105544248818784679219898583319417402769329083584741847713069910097370521485666866609749868643378595954790397003530610943776156351011395157463085993525308455677443169793154596960457979761312743623473753161128197896857743364759443863361396794883797824484720108872837015041559588621202856254153078348911868029536946570597892069586511940155643034761120064714449378213476580716894951655676723536940627757499443452670063956399181858479685423143884006601508859460060641738394440715922570473474842574125161020097131137532666820724013258469429921508513098775336565984578470130823395272985815397302618299357525038900223297216322993179358084311953164662144518733181612436857793381892845889487145162297498201989282738757472707718456084901008436102667256967695573157048373674128406578615055122901060673519548767077079451219245879149028275169217384671096755348915393602421544309775685570141690255070849676673484619996340166382258894112822838437875607853855156515697663039094270406233616529927555225484198922164691538296665333172905274739088436961054546152559458015019369813189983384285006079146898454754033261622695792425386922629042743741012146668438518964944486323607449525192469037879542016897355858527236077206851397855158198180279905800980225992894532382341052173307222154941822370192664760404656838469633817834893361743075625616532691309377504108894243382142068458859236547264534027605036687246518954338921278434024946615804964106886721768065507163461511039764523913821322447987283542609289258583053817190812193977729356532059402677532771934273878144010440817952860292977903311188989708896526631516223106341790014242537513167152088635118409796708398731699583611578021034816930960475125746566788588298666789708797083644007820688956324732474971769103745996731047258004359610039233473734618427846625736423054895244218062841545362535163152748146726456479397278904011819328163606173679916353853852557431094434228481280367986305032455545059500169011014490956543337320516310291855499564725923598252881006464424583299829446066871724669389228778828316519210689959735160171106882791377927221168458582149053834520742240856175883261581298102765932799350686620874395744392982695189120884885049130024770936609515434995373873837606633254728776316690130426002127286300562231588256195852223706579742722557332854936651036988106466029529020636223444905893665751022335218555442554725220110048148402764056459746847070052610060025080128387976082721234473196900052245989503063660110977067916834973098607169391132595444396132500127245949247336337304700575335038969072964614589362658187148864721862513252633537090004537522488769263953837991810400322694863264743969022548640643816549730554211636871848618136013720086024011811482534845928531332048401810820146812015860745095089690006285668573479157318632866084409539708347051741029023683375373336950038976790400642517100073370502655962994916684793163381252493849467265224702340308261407225638638810032443266405765635662022927989797100256027451359682882949148219604550630042249772622050103034104473644772514627014205603556167834370663319729136018655770670748236352131558863025155212446613904218561554859042358845491065850840822956265257802598662312887024478788188369226009129812234466351280090031879117873686310147093864918214894691194783157187034363472232399008871122148809886966274737735245166032888291297278107704154364940825383548817607486403252854596071622463509782584806583410458003889955460229370994775052562506606724998673804172935721480150606533992462511762576430503551778608980259420200157727776958403304180971476485476256310457490879494806512601105822590534622024284966615428477146789965667686715993936410222882800666112150511013643459346826743145967962423099328743711082176312244452297513744024519414035335262978987322793030173530662245326485088653286561120419748952014523776072043742943130083245634978791372801779013359627363338399472399237471099601003174932086814757865195531846765123302040330568135348452323602868024463220256937124706236849950556233955590214924393341440700913620397017077366267030372289508198094358319492519466626363541465412563406948956891304851737865769051261463216652596453747744708540039770937338989554075534629493791840601517973862229782801571594742467263079580513862020273588368749119430129951782583740362054713009330752304750266572233640657790166274465640770095737490075101981922344891678134895619924316296454733590268487252703113023550187759994377955131372022286203969984008271036489055471337121588062437077636062364161066145727731488692748085328974911531762237597792557607324098333693946319149855432735695966341218477220670441524637901540201458599091913293795177157637964348447685575037547490249079713858145492174428333222257592972421194278526874616459688928500731948879437734294449363975221364242654680048843039375363164633566689029584911701005978100028205290942776110396330475851668177159810144801682255390589273930125694905736487296833225358772075599037568332532497525811757077547505279830728203954207126682640570506109984024906037892292212934296815250153473491782728367839170536619385444519090568256773509227737787527877412044298501498069638797999300382193907216167978525954837967481961628941499844240616754146162596779345522009623039507557820902011837813648334403351555099258792393726118119402593423417308418283511875035308029974405130089723224951843210303770817819842058567276737063901406454644656365642202164928551322623914221459655394863862473084094361766352275958313050038652824051785808719126770373433228542194329306403843022447965157850240148916203994624497456571403484873038969898490453190602389149692519478527347040607725739526158816176950847971562147711158592424198125797889438919555389927242381112382402068671004682673784539992907517053851907425639574856018167828931012534030397287115149071077337139480872547973747680663884473098367488486035647596858508480604127945367999525068143480937570795520276352445170654928561317142249404731387994835336944283875439522185506400371875385315245013097353780348608579010045190252319049856746199407341387141163471958264498975121646401930757554463893677814901525310753586504089954805640504252206974172065063104402430390155441902767805361186749941523419015787191781839849201810971362515425724306778563321564405448554040808518827423591467562607631904379084996913187961216287193658150074102350283253973242841647196855273604512779917575518658743070712493093113054527528987758385173027888191034578584417919678405049232002706057389575739980106467581546163510217886597993565769965391876469699789247732216712187165866399508162083721421329213149290445732704150931411360364323055450738730652427732310243871303336932227909745376559634596220745649591921752607236996733422118447556671738935367071604250108485624516255854265356317046364356967765173527473191587163329990347038426277444196851249831094592117615434044596333641697445537630902906185369239427407103041599100478130493318583344843296696678661693855004303234973098297092485505793485607110315114135750877403473558282744427243721926214730815246422302686853506846455273004034640964350749050073449554157141064693983521408839939484075840048685323316106319946166036655959352952444761590514676442982767165378256339648200138021661523161695007636122653211052647457822067759292687461534584836000074925675489037001569827117156903986410798746049239586971749163380484192452825228024025350178725893203322534663786350802457253904458982746984173852479155520883525506363652557230921874620250157823768176998330310740891099529774317669968239194256095446095781293917613520776312835563361438058152807669307737073266740868786542124976176079641746566245135452181477224171805787867912680201536872083111606876324655920149881123650188904010438264975353707967175250227414358812039798618486206253438014323966522831836030704913016226130272340807233604193705468327833948933936488526622827973983941923370085815748004162522914538010711043209663222346709975462959453858029091821194234750781173776358167844929111902176705359025524667371688274557717435732381557969737340446887898718885638213276444484142525676212012616192734226711560728077214371185164721711681480388637405842790894964758627489916709640875211174926693979569604773566113359675759817905241750993111051514246761595765188973453445614992660744020755462380180056440459593648730672497638368591614574795639635677418812355986098786619077017853469602207665848152504118465817875973666368958889717888692262738961161451834398407777361808500619100093390216753309109570224301499682219780669243928904795554394268803585231846864078130567801930751233146748005049980500857691497068921334962251154975038406018814937249526690355374060959584974014048073502687403938518717383745321455521467581967006755925955532712027734713636776280952781869495889447734889895947368093252563981139540070634336152569518130674298017525272472396294748603942395444990621823064597110688131658119861313754796094051595123489503894596770787709003301476031324021978733965608496725422263817633051220970481500236221791567877689051512179321631710473481723749195415871969644181386919920859534540156621176656893191006875210007459573410844375229128057453649088021999754443329584058799499332981119116827766247658330089321120700204209065252953855540216447471667753080908268975502213723418332880527890425859866264439816865746080384416948860702268332547910217882846499445240910932443106882233219719176884611683494233876654808728009785453859255540935674449015777494045452042171763626021097971031920236070807424840666094063079957547279643627519561830079837686074816765899467647628074007394028697753819102890501303272374541597111210038117362025791638127386095507869709765914598773779152850283021966428336360459074632624683205436173924016216541888955340884315497526305115181698494418178697002820698738550557187305683347675917260322351366287907198156004601990293623231952821547236509648801017940704156115757552131233513673717434180245371923263978075903161074809733203487095020239192676806034656272472720656093070276399881450365241029326395210832624372895784688859361092330326372402396456108314295816836025842155415775672033050290048637806173460432622174132807130293940200554453543395915299165736535655425367748077857622207497391553910416750894017945815095555052226048983914556293864865126753507700036423581901351033887230083336975579584947639685578034298075105807426444580126402683069312188893715798963927987014136866171205852202875671895679572197360083974735952233449847024022033364431619255294245239565914134269336225557882675261779994144071843084622128510054222448748860899459802206261196365875223443858367164120673300290477775101457871015812568329104821370335785066965642546722427360670595268029426013145427554002141301914840170446919293606126951504248239265052603172860819422578975171160865811710930102911020148252330753005936181772981224605558673616049017668805932841854361129794561429950786988860289302564531371507933717392724396091790331073173282411910445444436782724744277511148371604459035540823596411900806395300215468990632157319647506390498529786386056192173764889555096015915836761272434853407814287410865343503122504188886883475845594205726256487892153662158620962028359530595698842015703476708660541232256590098276710621741487260168643471888985977208510826428702959966636934254095647236946547286385025110927416733778783217224747369104268207322655166719858366281153839973874523726917234211051996669614757616705400240795788217256498850652614434430367173849015699087958580227171153073932531838484198720501152192543143523153670607867024473960171810299511678960785558139036909347568566591508332681407510454444809198982537292165015441587252100637649314311138016866548049944082509774825775583323259872889177120714260453410070554001372197372106075908627608642482290421442064065962033269239720143727181559099152732494479200925055573505677788789321408262408591513488207450862516076435072215521325463198186561543312329492253510984405821780739993510855502104401300657850344720791879959877173954341566477824974346906244916515777950951949107925848505183305077179233009439628094668230541262831571361084876637118430791852821366238713944012099912597822623540291586115037067362587796965516153693406486338400410020046412452396493318362379959464812669592795193791518312463397820776491265181073872718085557029060315135835914417407147163942701318275304100953736514826444383904112431429474950274666316438415134921465982735979749804497057890125602313018652956363792869245493768317513716649687359677915643021849796804242018128048117301498265013230416351607065774320400538512266525080242510267817427653123021433020384381210305441849604981875503941186327873482845022847546049003384411295627630735053970070304972742988586354405654994616196019785936735000268944799446983219446296743742406077500305353242536526353002015119318456159144972317251503787967656970114154133498731176555337934439046368429832318585647063128832989828257915769346898740060097852124227196402403986992805075407561948111641048920594090672630344151219860690454713967222101000587513849783770198001340773046281821700327075179066793949120533260823461198147391749158073151286324881022315282497412719020196857048058214279627480794804154877048007642215139471150177049838287201437788387460540541707854355350012628766673953145012644571794749768948702182986855611280840329281382440415259806619774053912548328719884567670143571083853516432132796311735136730978641331464265225842349316520576514599120492448886573004386846902205502262416398369873464065735435773618187714585599456792905300727508233094678583854060347641539589903400977362475268878349230656885954925071619263793730905653740650504829802471013582226076141756937388532438985152548556187770358464882252534738972276797774130584642561816992472191332619463319423782728230575457315932245950168100364516549221536674954691915710318539876663681038750996531100776335578211328297196828310845135655354398633698723246675639033496611221317282723630618312220940818690180072567071144631665703127617811325468684180564839530010350829487063341056984114423526332533370479544380704673821136673925557764223009172924573993240559430303430738255101509908356963385902716444593427890421198082098264258815725991065624722993675305265172442794830577153239435281453884053605959179749905939983313804287455332449601656102957623657055632537766706069642607260750978484982873080967586034686697134688757671085670851967101012994327707400887016132658001438958086328655500622913951571540351459767931453352638422641059046809675474648594245049248918777806735853129760836210027549014762033014807285665811367896140422362898507744645602368561235818744639271434042410405244645076479287497549406064755185120373952875148037817567974071873509975981954184660968170370739760772371808490820715797308173089313359250049464113692161517727879771659031596079802558250354308269965920099276257357388428264772249997789224674010823479635832698009532608295200073913751144246946188054900931964057203892046292506738302030845040299629852103236721984358960204141817421176270273558262295674127586205433221823564715352773522065566771596227877232863331741883305702695436405401707443073583658063569324624499133524104463193929851481050775598992653191055974466262206663675031740410491653083380092970017681032599256290343556784729608389143502094646324316138599242342410989492222979057365841418605382989770940222685788090107374528215529510321139362032778031452832941311241434626748898234054576330360683748194400938600589547525162388054359891098588137860579725532033506412028784336667432523678329145880220586022604594022448840275050316221470207843001157382558246181731511883265149264235576786514064056583711013740227233928985292869353804520408595973827751067127700488735973127699074773256218733210742857931321241959045017126917938464486113659768446023170140676196281437706656921645054708132829058598302534795459181246109276502970572069129963154918487660740214350339108001746193690037668215173246857040165305800100952742147220416512793049252097286693942403906643727264232791989010824185373788403134977132669364523509464534695685066288055680844138614954173513380735962727963456762664070773780905141726878738838731739244894588435224104180954455564769568269140492464658068462979762728969628307651932806623806179939250328057966439559787012827368596881039206566721132630327569044184248179186509864755033130954102664694071520071547643248273066009107306571860259474269233082325162715328603967449521178241703373466057020721730812225838719429152557923379770620313358116052820869971854706235718074878989763144070146102064032618135353818112028378911378348375876111396802855629053056535658234526749293554390627291566034875354723635188688262595779385167082236651364340982512995281147297162871307417931456721157572735075778907789244774931258434656340979749222065381753103284918965443223116255813860741884868707754531160209297267856348015460739593088642438895836683380616512566508421973275055220419369166756312656925312074403494903984217481634640870657395622025414114131200351446776001926823472622998440961269350885205850071104693655644467598700039402134000713093925936274206900273776659104134475632880593585792995749700813427983633382838472483704172243864138877318575676555977906925978143460281575173234038412456672185840798856866130881885442607004095126246131777532621814704988033529754044088314352089549825773259249792637610816149291877702192864394867852380499276275267429865580226032008971659936576445911470992516204625478832936149394646963619741791906169778041111272883443722738961363966095679879034194576467084730747731627248526089234928853909494005810524869851902026211219091471719909210511950521369911535540535279387790887879334816581683396392240502957170601006991631864023434136969350073943781688726920174889243038607906914556977501915611794299725076268870632912060098342616039415162844855382661645529759828265993040810516177378238884227951552119678824563419371985833044842292108051577208757616173759816666021992522964453336693923801750730870081830951053314698682011166283298291617257940414920452894352397259045108923894524068979245739207268680811600649045171142713139014506095541340544247505678608805286795198894493322945751030547768251934371889455975370655559607392220625152313478382413021263558601398698572430223825546715981877253341206084795072908220773755742823372855317748482280519830702068671992410791446918838335880243043899664474846709575312734617800301357035165668479369145922393636661598011110044956218351436937803095355698586920083592741753412726807585419013940501036174068767760811760516569481492433210472771062610776091847366960325281882595963226536923665821410946600341609743263947826686405516286231921834419660388345707832038257220501225654497567354024287495004579041659004545666248627831467711047330637702125196942094861010038597222992835391039021251288442088797590156320640287961797649701463444659300556825198284276454917692765081621525914755620835832837412373692491233199157608865207074848293431941493838447392623670311500337295293074059087124820491055796538423710834298912248071472203402255686387242365361831650957216681974530249813028198326505545197241414005974269001020045482153560722247747227372306990824914840495229467884704253284268387703596559352832323332679679973242864610170466390171610224138402020578059135091598394743624019773303483003553476160190525954679230979267865917213725387029244066606028418394902294016423130930344217962228146398453591418415906098049215913901597073099977336849972008709301028878910086799302951552586649058949938809985259234515081227756608484865821231853060172811691702370672767162712954549552794282289290078691493551999586869018342476034114047405239845940523154248068074215230146973731186120163844078480796072142081296949049882871856912131549985494943868148032377092171985450549106742182990655445769961226832197250919097824231355930047434732748507501261343271790476020044064254163283465839980552499723711216297576004516251382237257388897184203007324842731417740562965240698085091687339699112953311483700177987769097989042102058227603387113938976850309033588821996579108848958063684284688868146651539301280540761611937390323967640662069955143911434209292706286271040048059633029187954452038148513496749307773235593971969782600358473958807268729167446290879932722302583407034348441609614963692530805731342325535960409777256642975878279775086177140239395999260061129335231666487285606343585184211263683956236677922800672596756874930559631953052382735862836559721123549367783315863160821920307203450165970132286740989816583635568808064178905074288641288381642847537645391776825955753116137566534813169104503451603871935342610816266572056243740654931044642904980349098299300350810583154383316316619032397518735629376256975101060211359737862522453656579870420253007167246573337367385351390904091306923558452025792399382340996803251555738989303460091434308478582017320288301938695872384103591267800101767090826863111973057192391535675008669122816384599063081511445887899539349387746670141505587976060374024362468037096018336340834550530271403334193668404296034114971602151576719951193993146657877053392023256661042943681593825930830198545619097062141607443893335337056497172271654232223810465730980310843151845556549234203932941659137423175758490201508145620969431024302343132507876138235446210991952052539323949131189133257974133883599586716879460293154730598724629559869138399299533877689563654834577432523607694351519636739022489077728480956987220433848245628941060561834716307196115026812027945159903288412959226912307051194018001810584831175241598571537049375711057175694557669515744738237349369693613612331915370227696199776841640740089910201163745279228704134282175223758462826377677129701448539976268328876869021852469594921678992630600921697015883077061958490913841586964637222764410769412558782919622723603847293646371756177210270654976807729658982279716748728415262726629721199620166795069778822572784916263832439782496192021636458673648447829181440034833667573082740968589274377227939438289214537707743422964910634608324971896445999067684990210724130106592500810193883862123774084486387532216540046588038648975906255525015799639446252214746204712818649157182937950176720724150892371219080735767008076399196512628478451896940447391374932033714095925689144685956164262269587753964200688875374150206165923977295056333739505456505272057617853597479180229152611550363910705061308761230317726483198856516345433629054334582560126138457863979473323631612790374969322883429043174998069962558869893652005151872336508237669236226251449145734577743813112229960214914403132047860798792003401799745534760130197111424907081288390113698030190404065234891140866362505927098322004170682588904612982016301500500037410336427779959095699912413787457983758716644641272018816481733046513802653346451866746413759304224672012803438062512335212247308530419120267547621948813069182716427723944141467157743023151438239365043173303732812950035303083108406823506117295269635275770533155305032522077812164009000834385785421567707909802710185257225572589188827652370948413637926613205590209257889936532606149136171695307283856375666678558532033796820426322177277198743476647465963544482416537155100939126758511966905539995526236189676022587743557755836338744668812490031795485799698318590577878585096110457848402066055296998112318342175559140053318194305918427017308955780619372265261714638790085875552131098715824258262087646250664111544030993309122558998653983019953307008685036208667914837444274600964547643274765522668115326564583454168740304056788432174142369247316404768569052085287571607927884339712552379416438147372895532051524730109412529627080685695718119527846662766649801549278831133181567266187900582043871041438739552138094321584292221382330543394156261972590545047360376232354337839247852345214542710758779850028234779378114875898387894665732341913966244307559730934634924572158288259167237443099344339279630918608484410422967869193999682218837435520937982639752049762088474110057727251994847385009515194671212284691145404579967586995297260213537492458100918413970549288346629477251664700088848950811700242362833732522728241019578573390285729310525145258799543755314898727457040476981440154428618553171160007883633013323942659366547028634446588145220422301935622955459110628180821477839745687884588082299143489568982579958023996366946701845091328309594707108154230823995607978571303827010034231253825940242265588224450065049519802847540930485042694910873833825437431419815703725671055725062650415814667734629359277679051417026275646094440136381352150528825397674548829737108264200528587091290441546849747986159622399180465828801792293601448929311450458469525816036543673912148855199137407750132557381506199286494833696633821444763675146828843864879235708372823970822735546799085354685425670025365108271637340726570999871017002503849903015890568054515647583403663850035627247633266946496168893766356650573783071883650576734949975402105021407772336118970989483157735999805895963532041659120710417195910857792387122776493234881918458640680376936732463364618348027062802532625493071594221098516935310180473452312046972240867722353374533743456432521054125287560887018249116991177203500100168240620414786759278421634743603548153716508094621758725662710572606824751370305852212694010540639783832571909612339362042960204888024115943764593224092741368686201447528914545950492575909642759581445098371486162101145418471142098497428732177477543812979513227443841389171821171542710482864672477199776588492725370168574785204807317074221138399574117034921009577664201181696295600412738599863512091223307509943920144325645940002730597341405493945460547728330832075023567974226911446058725714616697016940350921215000878145496852451916751531244529845895095357101659627887941575341036307486313234645781860582105602265604532593619383401219340333911332664724814276805005599612964870530870582931446651402708234265653765184226529733122730025854045734473429542609086574639766798435728122171418476145651732715524077785464642051581803920587619575906451504620649636609651446625886750846841045399947638970951921620166184402964796624256357646706926918713238071136870480654901394236649020830593166691919717409799819372276768890845423955240373267876244282934293665573289390710984035824476784774823110425174889550807115519238912052559825784182357725911693915613457694171602558486727197223774865247580704360401969090068589020002182971667408171530177421769152540641450649963044048428537686991870347970784533815731403067673402997932980232499336373308532861599921544954328553078729468489813931238440680586067169989727255576528527966162504017328184730603923718797008570346750551493718982429139906690919726550980439311542742226523479345632141097565151379907759282740829061203921559029618151600054374359921362218713301039624122570107611227607406330474243554328467255506968642663965531223082974932866454535826338649756108110671953467847450505760991591124848663323041611428749658775667506490173660563595577342907294335700115139761403221199010569426189714879585031469893797441958176346920229868624025427849773730069870580986881874135164611111536158794278254554261588234236276549843042221323417615976197808031487221946397174419918814774631498793990111107037626514893617684931119165119214440500818380284677180303879056458974992031879956660174472960771976802658231840026775820844353698934656286962045476369367529368049064712447481153115384096623678061138061762178851049115586432083491820796483661973594898208594678659118609297528975204466407914047913733395514832314110793177568237819231001040087380814897941624922365464856413858440804963208556678478812162777828290126695267974523196124505201773775508236971256617699177586125008446645929410471567456630734705082019534865749128215583265138548337278849525451385327822718507824315874704717244009228722129375395465906871673623492131561306636391447678633897867132913726717821029693239241371955381950521216434466385723109798429709469121605098421806257748935361704479724510704846108326211361198656667335803960398451251564289358010975688561282544178207797960114751200749049924761438008454466317888858163568197803462304384021482839371106405793984740387035099920174282579272863844439461578758391888993166866183355737540198691847498913541228835346347402495699708890656293307449823185726803574314322026473214670343094628724026983838834670313319695438157369965493748067013220297231063268450477129843796579307865121834737414639198642194280471700946206814930469816009230794596465958636458800145237850957499030521034740174365964866705515334349519428861434511001173437250938469873447271130979878155028044688903862759022818812812567728439314891867297883243020018491838513830964323078760161842988458156604816844287080701819654904226030399183927177662714624133036517606054365878476622217513752073428101250424777516795166047860968502587145338128609804013876970170270804380574955959358926957244904214644231041024144934223160750009732120820217956698048355915429319567817566218173867678910590036587484581949681245982415995853633935423399074700532586433005959484454920292079201750640456425041882970935633972288432522062730375874759806707454718387734526770941976233617408028567659801881023927996194543866485188279965697713701995654355121484048504115712360207048888386619311361217992365443057771493587381410176454725677492086388312602349046277354291584349870800537243740852219754880486770704823180632325426426247870433668445136371297971538391121261194553465096946096813297253378003283725690971236940596173662519919681391495835408206875501299631297540759178731360956340739120043985193820310187932537280204207966543145582712337374517533148288642326405383691354376310406342395554149280747627220506886199406938514474951611465173346401255927354860727090732893306249283748767413659018188508723256801347179920920343908798696419028537527528921777055060459120956400137582642156941658692620983898128817865613034313403022039569601665239693391866350802269610845075171577310298308688913463066316506173528995658565696877541722819465046133758174388401497016986757976426887394524453236457447661752563267080598720262835583670032450286016935445150706652152612192179653414568641827809588799956955709032435160325647429109138784092860191495607927045310831647930817752335823447856456541040829500201454634661469635583122950094627925914234572793016997588700578946583866338967546845816695663667086814767804336703144890798893941015606449868580124505868873412293792066070406495174972373587966175492579901929238538679505412977149072362470219011697023689902538961272089402566054727481045424862179463368430933358321310275862193607116134284223799236854219007312520548970109305783717554128589034960918714265072085640907402726285497461583910425994310771102088275288438619052923340187105307038309048698481887172665571900783222196177896850512481802048207625254269913597726946777842786554902364308121848079683930063660679119838501253399031156025971935530207592274244600629400592153423390922197191373620686708706380791686310045582432853463479681392384172238478911688265136397582071151596316704561771113054861704837497782548619481480761923515617751563360928763853598739648584699939617782195867744250706287779056290177806155855120958603051611183417665659260266660527303650707793096198974645401313669113941527572913302097542325262084985078870963980974367458682257809271292891698178847328001474583490669297643037588390505120822297273628270538406349253258271881536270825577371485289498199834663706762395212633166314132036515578314779282112796667735792291281948080158156320071204700709706429906946720939061352429607247559349452595285344334986665570541622419789558830982419134185412614053264328477153940828283595968567742884310950421369262393287023746318410908426448287208231980517073657883352065859292828899644937858607444953674506154653405252203831528380472748366153895067072592343416547130855577245782470721601388422673646320529084550265272542323537576434472451366668432831129201030342477268793312916349196372255696163666575584303264606480207590747821999054145978444823704764009493586703625232906527448403358229009032142738868004472121541234532859514324321358690283587437686120505129036948454915077128540286083635664612692765833445449157453907540651678145833941633848069089487045844787197907313489106276262754879032235104923310002463288972682186198545017388167091110710649486166451532686116269378751840105624829294193299180657013472695313216845883558421140324476046104079941875531149758171106545674203285686814465115625800410595294140957177137053565914655906706186035626555369487361015287598153637908329099450986139488720469971884784224248482491398922181912928954834365895522287275697629253434034640972799023761555775021960001467102132784479434278511512676328804997687587566256390887140789609636388506654337774193974940337155848976785501968167145686119998217069776353650436675754634342792258793247657653605881931949725057679205029756149317388281402722182478899007772204382165123075786152713794930789403376845786285990331165150129074417610951086063315203942680460311810442765798415586482772577590140667967263451645468947536661296925048435359500095179958074964308392258317924602523419672497808690752780254515551331006011721071244268151295167451094485970450688323958637601585172510532719192339829160734977675962629612914453243503376173193771469702495174691161847964961939202360593834267934378889181753813747002724265877240216819195470919680115265899790737388676832522022233376188290805280507755605027487995739326575724455586359057474001333948708115223716408589242728159174170146938957613471759906072911582452298445193961986855393817929926988687314469289657590796966445797892384752840314425187181714783848594653452856347537492462422856534016973048307491075507216318349065781869582965618641242895932330437769398139352103887649752183265569608900130716760072975822500203228323904612985716364266740368785983282358746923161775030499314018180786866791435601626706976555774718920288769868033428662998262359844913470426745310222705703881285606797860593777487026376446031004784070999137320836939825232453249989932645940755601287319477923008430684516601047796496008391614124407007265955695193778561999843497381716392066357666184134587580504192021749156629294942100605042243060587015946386942249558327581262061489333791158587486270897091626549593764140624411608658720283779763517312214771378327389969291140497792964487365001537849753989607524235506393188770064625736765225129454934380713483591959788595458380967237161678542233824435834837343997266096252038770013556328987086979124292695035156625963957406023287741098709188265071725004274323634582882814390898908443746002413111116649302165169800406810795213576737353092830467420041706574072512681870780105293177936097199985354231043345059347550490812047584209120816566264986376216369935006429631454600776313770085633315099897512401133430400621028931893511698175616778909462009734765947036498295009551552275573120505404224422815522776981084474155805233714372717824302871969318407148807628357412222583972153783873879739688401255832041974299541139526442924321611843296855827041028842423840053025366469350820442492551612364474966856201219616281820993369166468400041427917807528570144573221987944776712348076286358010841558429026053865750976523347511291307880839033635067409854073264189148915070340269723064351873044684139486207272641765229224657230375340099945050356554594270167613641835084454678505302114333978371482035502874996804064088838197254696762064536696558014482959998682438750493247277246878508989059312209317753831695385276983797453635127051231106566346697315207470835302893994973824569319834862158886187392635600620084147948300690175213154264830181873649635936529221835800196376581757488157029292644850258207612772622478994324900537136713141465019982614612252229817592417986837075291559948725432226061847174739164695752562098935836200569665274307883901734832664819823982580374636626984516486652256654016648859920492853248410201921413395768660696195006022560965464045387626211399630627848266388153215129325172410791963250775277776884616147245688863964172151943880739033472247859220478755966550093394952473886538306040947172546518511047626588714528555586357242672522691223826939265049576027321159354406395537619675652537841868238001146087413971275779875025895902381268862160379229654678831829109270712685788170831767186561228038942133992196459717702162368452259570597243099587627180356196774558067269716327000872834527569664503482357864164416912153664786019451151025215915170666646450166477254965387535895533335438487801091308546099073043073000172692868240211576953718470382169735223626319465492806831301743867164699820370309586680020142263543267558469047627433440194823247991136803715824262619932471488651000871853412415942294641886157301781747039369038318480453684653075522418431434110867233085424831725285188108989667104961061573356382276131932005295593846237329590530214785672050820953142072044436851766339629425321890763795714871259970412901411567607370301973052005993522335257590937936502889297226963170059080438172098741434744409176088198328224832730303939083381486301127401409310755946106907331533046169952540554953857497411243555331099653506941272107706092872613742908047620829564336695559370691481267227751239545651927236501283518758500401927270441039106877047071744342737618193406782382520694481139810151587321815170206096622741134270806995336623132651820215574162524902389140874791882673635878536974426881980487586399026215852222770177782410979597443586551846065566727315855640143281347983693795660425634621672650879044772471132697419694316381690980333167759483669381970798190389066797558741058871624962211076990863944765073643763131660129336481648860420131092500840831796415978881584958360991328231993949165891732474233476608392290396114690932513939346732413394974132310973988236793870411667777784674711206723502879118844211005397400705243614248191673598744216639005123064399426846311371199854694469802688782586426043579695425259952714237300326702882976021498863119162599298630122222868711274189846958536583851541634725816904932404524683119586579263412785036773993779971466603965432455134508475254399481750464569958961138663456664085461628487454073804101638282010679894789066232000599629713790547234743014696683712782183899387731361094317639454747950274825005125944449620618867121434203030558093226988816417306798593518778944289751112379198353967163443432077600376099152037602635933510410699736631777951670264557107025263375382094392593852674931847775940378336696775561415201447652632210664514502742129486214391036310510272535560220500414645398417943263236847372653501456283251444603595766994046931416395262784580569175973879115442822197586933215992366770765882654036644324321460264214504612249516678911409960702556710936177713899897197922180502136091718600937583770978522796251134519074174222314906789007937294184576963099830046208738827641445781519208478550946419536151790123678444513205281136153311975562489495610658960314520813503606888788253483610927598488108206117733138262636941408140481249198954101754276045246654500955399508766454504746057008067328592653945892800032359599631482987337661081256000301737401414508940222395892947056817372353611111811040079220997071694626987697374266757287681455461478603311941479487525477816555764876088971257833819017525749639884817482346830901959570298405591119971473292311009776680659649511671751294246099826798265029208293868115024682485867813422773188340722496712349768698826670359766342782449275511861476397198415312067873577055349503948823812377286568166345805306114640664073745138959904364792411839119480136447486970496012773261457266616355304416978847078275025934113536217947656604186652131585989028873542154384707978838036612822467141492469252475969184579695892966494923623862203098086679483817590270520451162628529253362694292334643595197460552001205583274527573378822614153383021405543629523560713648586681417901813097798109371824034826658202029776688544594813107249506673900474711849857722032904896902580030201383681163188639165252848012330580087675506607961867168932618886983050756199902973752382073162472548221191404534845442863177685842851878696287997757276965797002528671139565646469560777422592197195019729943457156344569870832071393595995234861303289902401515106394931828706786509323985790310602264087930709804182394313268465593229364695703555865030656639096251917396654646353700524690744177313471482724032712204800152165877851399835547560790782912603601393785098917228594725116915577069025712625887496521829228093008416059988049075258250982821931054646836495860667782293260693840034637037966867165487690469437336567558031376945547887130799332929543909281282803006491275677874861737037596953871758038655292389186373339051116240104064903782342806093391800433215488359356115859296076379638147208602234677356438405907545234456513936096410842061854606700254583952296385174722818948885921439491982349487871925156567464888188054625829271687990407014830235169123801114449547031224071676971563337840525560958267466018238095495537760048766238755617222318360914015113265470057408409712970093958949242151197468034379941080433377330977088165171757732664162257790356024039040358040978533250612706111358189265971755059584472681616208623011722504101514248412946873501929336498878145784240532953314754413927995677564839790569364951442048587719711549475651984746962201038776284028776743411315753845533415320810532566040334874627844439825323452686491465415054504897079017692194362823992593662625927376817051869366148785984879417028128195774120231383931270433160064948649067171311966094467392083914697135294193832288024368848946611946987719108642075552148254881085111236961434174174300892147533398220720387850381946572556616304953211679361272737361250755428156429999578724982833972166422555862552632974436917342089330507214802789594112571230692279908007448331458169896732769691057149643885399975865001786288938540134158952061884496724502796253773175364117754062714262908346340672509563906101784012419929727050813411790164824509894837888163998814951378013558757772864902574367314379610777440026216964710659316334633392780390280763350001710231925009155916479143838987545759099835289344765131580793392845077402003152867693298776715115833303981877825042956431427216320675626763035135401805292408802625118871511748200505712514332499658128376650864092813214729548334092363624536034860265252131732769172206260084469186487851408538046922241762990417935506706274882349607692156732015146777833830481741104318159833455492349414914399008200163771590044152655780749648054527535510179241505691272195483537742142219255045008983012461447664011840985931996844995132609382828207219752491746886624091222356442867547985676244832976488054889260532213835948758971112019115429725580355238936193019618369266465379994473189193739398759734031505380091948536759147563209922605345205922936876349853934638007220538951519095450634856094410931164227665708297906436092683487878066061099201225201031435165961590864850012327224854093461224660344705843116686460422419222612198873109281642609758053157709745001420220252610261796053210897996403046511298264532223272062380703886926963868246756261832356996717535170892509001676462981021287073648327818085847451206587423731454465760912877211723006780448221569573307766905238322052417009652519872335645059922259493504369363787279675057148722877075639474888409810558171899650455251477255850555309287225521688407698069251468135790567661201244316541823052749261838340035036223409857957621569548700042108761116674202976809901257514198578831185464942078387843358456328430062957132186883657226803146441384376565791332068205032032189887625111039414810587710364395406924559254892939250840950392856587009857453355521717585554244963480722095785837532282338262017213321649473350906935880921860211339271655004745947256628186368300352052291314959956033088640669170957536519689069498814739430800194305808485973631319872517826764588475058986875307041577108276271294833966778878299507538889676939400094609217022202555520043636291929837826274060880591678359993076064077210803143712629367268093805835408647852484651764166157688965924225851219742359919423159468317332639035172497401405817779426240774567294622819286169307295976148362313023623327524424106004422322067277411382577192992148803427509237667442227268283359982159672927779043360724398348320180184243539511604267230428718852971581024342357779612773964216276884943789369308269533595926189739013626017953567238892297007940314204094375196265675948210455618665559905106718511834201646448371177074597999287335884818571799202505720763397677277629152685635586395502227122643090216610872970297644810790020996522206196196309838090307123503037988421378735529699464556708317263641813273738735254846483813743443570772337029360891040271174995972208540979663758941884460781708048807416955932228905824147962691700772404381733392754329714452844889968612303608638746649234563605558812999061822821242321904683474418533743696853998063256158490046487882339789962436995767750974895912239740131746275815164154723513436068893153084692297477728331839985918844978340927237149447363242135851264648582108867129683714684264558800699219374121377185069942864931088709113483926316118460455828454047849694312455285697983591548426763333189914879494693036480750612126140823902707276231487522367430578479336068712226546633635469013777826054543573293647252212561793902416038171328866242104324806223415730795203889649222810099897026599147126681162419863025177749161906155294838643312476011116422898990244146763927009936174687039182852044408533343166240034411880220644719099479535569060121774460128217192397535685653779372820275028584825788402095341793443459834305544691240865789369489999439115125609489082532994440999319743875163907374827382414847414328588231599054616481326371586944400848321101435477939168440454497028863264171151938991482056464954597346161713628623197038971964417319312521098416827423980069487939772051122894277765336384865747305370624117762123508906518191870766589353828036960992025736773081468607346796999308891525847421005132304483865446446587914332813286778400205551437105569405682950806541728796420678455255788076602148440919906151526508177220175171171859437812920934953715723364123859860421994563478859969807063767843051917373801645577500504173038055775279037895289197538620993524610425086888995626047733474232273879316669286410322012483342934476439409960416737797615213524401690365543868041970178206566808652217433719381429356961091117195954035930509959904451602140471275179669890555858420737604503689882414386795123679970894857390397669055489818318346046366546840486127948367033134351301357195617641915117662159426687475215477464782835248209620997066298435103563914102348473070261233786094732977617131059605668015420058576345252256611822185928882719694886061113944371494701056539825066298257180692696794897529650945366592545928836305131099443264251350053966788130442331097127720404482522424280773246444445834052795249490526514151401449815539045982106926299244602215569058015659101011248374991977568041748164623689173343534358341255404029005499090174120556493594283604512667761656589955727131795388981897952418259152659611635589705349887015444933295599247897926450126989918224945612701958052868403005116326764226056494420007644441198245127257243440340658255901940811420972879726275717042287529262276918232786674383542008131662077246354356296448344254641124293732028068525972677767612898932925550456895579142629981427930681461369470747891212830085134275582003468821855337645254929370769423829283516306678031918704814071698866394705831835072736563758654661640866695269442363118913537377494537440826390696658773656262358058576441491308641197472799575899743752008379298310184367825830606182358025935084806163139910536273936046447496909822157533569140542145599644180935350083699130809075315594926175218222446870185594602072565441286433070106189489808185979809174598287683423046968092865464336795425659182119989026261659643626407437991593098319565529727634961365251642428108202675908482715579002539217930113625825152281002841214970159216096829103666702865541499730895084045970661400748926147986450142372012660608207902374848483341717014932699645817647379242762568699450063095663603140366903392250270254868530852852453584180698664101156462446152623503383860954401369476402929721788202851549833247876730417402514541797982602335931630728519897189804293363706854125365485838422808430224582003005590129714936656531877351041725034200803366417697163341850739369790387441900897337167149793716998728169295079570550946649125145426477493760377298908369117933566528160527134037787421013830358383494246144163110413690650962715665795806341880191032336336051273546436817564229698765071905187101007117314974856881080597979433202002496863463639200778228059293423472567475795582726145897713524223723696504057306432933632385370620834436871185357431042415241103452693410267007632339376829052085148293972672714845889032152973330169680510461263908008926731948653921590272548050558785015837786559385014180455862395376883565321699249913310793404563843688213228823854682655460493798905774729105178490891923673468030972058572635723556689526739008880166696785804782709230533502222388240435355631694651219706656210689302697198076004113522139217073047108343581280344244827166830751268395013938502586814461401304391844700037375109333758368880419036639665295395213031931268560587041632443846578365770304439647769997948830466531291722083755470806858859623260991596987120097218144146370958967912697863336246782897124993466357300492961820627248521375278883438381559380673136039261242133214687189939923980712089725671160929792985409618823303760198634843691203738669334911951645920421298295971581772470637047919441917399673657613959533484099893893904964035880866287326801003321392568981905267104633475654425998346559459114891720649083401689503072692956439228349108949741561570476285648818035541782528947717131653923296528473114463481306940333130992060858529168173996615493956494351415397464752909836837754184925809121421589632279317246358937178437477604119323377620874319633087054128301874578078101946947318678394524033394916010264279524961720956583843837569318352558917778685684764228528143960573099163439737444489742628183433198624096202477956083930295443686160628235423159588403973290704529254945820173370068629322865391936767181219584961674467427140547325258010423931475207555371329541499819711656555575161581622866739116471558469149168694273042036516501104803035343252490386417915585119720139347710330789633073146449422439372383207944250145941046632225595658666572303995760837596943385990054223965885473485089079595200591124822304032495522940417930605327186791786122978105699641237177799512663871368871931310100802694126046039753890193256368412562635201228280970529802316520620531534250919224657813040659100467692551981977251098306905251128537529302575271708692711172395138319864321248780535417645483580407146195050865387211659190894307971340809998102975207572781932788825154037458703954911865207582470167210012153295463559480451559508812258012677947567456448234254380363734275565434251025349345490717821685342132254401782151709407807050010855227770644098833903926081751996399665611053292136998807002773571461680220673338594819235369947266300171763388333710728025327619613190739441940946286702395726466883360227574659875155459602524015756295664302197906581672673581343538763213111598523144033965319208761402417216270426874960524822387235677963428676401368918028249292962902823671975558719895444923216159956802732247421307547173357884572833257768154902529564433671916716221461832850282063082729663140511078719152891438066239860700770291231605146545690883085100714161207221816820794837035685579000782487324915181801435556569971503500780576820488963958693894441247212860527930476179285787024010813450403381008272668893423366124277555840512847463633324921798915543552049342858272158077034726053712225850883376180436096732594714428151434416122335357373064514070735173082723882168111939817706801396388689314085823919051321188299184952936847920875834616764979768633589079664011629880849533415394237016097746850921539382580474666129231576564989540158367606422022424754704079989261199563302685604695808808268473295070795244850206772340648866333693717799753114171928225084550711626143839157383248531648766488990718013674137427051110203141361165029141449848613402587529907517777929006637948899244117703287652622170714189557944641408323428435809328472516133939913153538283355861257056666343635040995493935500116264459112686492470755301486054971038285411714835626983711141806471711220519447993098583062954621192770023349052967260681204497062350565147002374238694777839388016095495032388317560319366662064417619174443666875715874376313346151377733419361098510820613708925679978278382503734272347848301661215387141925443279062638680728221686713008013820630904832464581973032982982902387900895194498937843128142121375387541226696895473562467998387132664511880870242111128495068868066246523761321678086970758551330876272262834765300333335508862688337891603948278917150386025601901970335300430531381471931248866932008679545143583155747752608483829311714102373812760857025081506912521822331571698733189385880270315931061918615812476147160579976293696307719184233341679111721085031373629625521558309677952882458295316546156972264087153426942434346763668958042148906762245914504947955103698118482489810294375790759143857387569668896044076194387607027892560083233584339346199395813582471741443125738993735535964450031284153056614248005950949616100298461681367313647983322357844116474883881898724643906686240618087683888891052761892988965616265209053491827342968182281873450087524831618519551126166932068886184752373086151446156305203015545377749101207999874939668861422012664661537376310016427884448197033909351725366072763324744309394917589707639154524674484896050331314933907040766035671820175856451232986104594916404002020642771648979378847632253019627503451406328291462260921142102312893634858244304793022451128061672334005403374320252898923115566116724513542261398667519548815396707629656434619994372167277419598052733534794174848158216623667717094249861841687270402401200268886267133346811824887744221836159665630021635302996427674796835452745940694311499651891380732083072080709751656866498037502244921845930716127384883888449264335183515210003691291308442323126366419607702408049227426038905373128524209896028608538687496679105041313985735874751402230738905546316977096574122547305928450567132949354373445812048965576021417813099820305834228712664912921615791972201495409284947887764218823816719841881533935992866344332751141033957968595384102001875828402931744344230901298851450163598589976091511695488930265436496731963058817206659416109994977861050976363545846520181425731180290861005974285277633323309823457235567638863553958471975728747454263654439541006999264338543247240067293852105864830503533248499010703946846372592557629427851767198011106652054870065420802917016426357445309206053892161234300984843373854022906760173461957895508462424380210421632859274171731833926592893310024570928395667870345513806335810031383752520209329404794769145131053740885132701686467167192599268257129024134053823063166072177475200522310992108022832889183903136249425928830648220842578156166443892176047348861942721904458073540786146246220700091322613954140342854009683964222979954235690604070065577093387406647834348944504214330173836251794185933190169263819844644122702481676344325142205611106197517060988250690031233803877487056978007424346339723546579656887039087443348134446268585572916557282496584370910751191211818282772434842627304665007705738763557507405909599756297802114190346137153568583574052907298977172896512900865296124096058406021749559930591649555258092434414038094727141507013948652564186323161405565451968366011627756175533172156056351274953852516080848835219879104474906794927827513438297653774295506902414686082456283555615975331991235132839181227831087662234127837667192409880490482500900569013452123298977308304333715103082548693548541261913573128623897198587284225761937924721213327005015407366506059673994504284244124402900120362708424258213788552343281915422703481282682443415530688052869902166637262241821287700047407176744138011928303424510291436258563861712253229686602058905875608198820910394319802722258933799560990090847505774485621761103497898438169069550874101061183849289282155942703860616316427711353094193243534739917157461188868265953019650356391954246742482387125333870369744213280012637797565001301182736480261953750582530495950871865679430971773118314464426812635159459108183133426885205118341087401787600847244063854177632376621768882544113509051790097792512075325172607220219473633042265942554209243953155609900720641933035617416886018579554120197788207314605536156897765109402316341591896031494393800769467356636560198814630880162096362638155932746403695099863611325598000683777373839861609040902612342189599606228641023987505878582288431499062723840571421010629766979038494279572136031199730683097901833395191642486538565450289287363271693548878228247291524124922919666894930734598822715783109835197523555894489621668784769994874563581579201409689693070081557590342433220189535374026754310089237475605788369617617398738125903290993108503506143989974938617255844452523136020339358444979421947833080154526558402067172844271910560993474873531141626395412453297606167558209855227121885444436106008804028064248383540954298178248043545377608198102331168858950643769634925481220717907382676651888428764980098881116831916951275414877520712337377415347566127761628720550695965063087652974415327747885568795221962969087093259903420481535141728938163972428815875096637407438578909374237983173268047362176830560139077743034889156482614466934010994112215883275771932924236103146634133193189792653405351563761743896897827545301228476826679338099106887431192413024073680837227695953176345662263282357493729680872559905264791688690710654241987291113498283350278560032559688850060996291825375695362655538584988148575913153994522410776123796909811848828698095924586438123360921522529057174073773496988071830214215280628530025751073905249962627333959561746115480643466883553781447603168909648203290618297961935428018727337273641235352345494634116441883715288007003417395409624669816699576832510422202048655636046973766360647341091687067166327416312086919270613482440498700996409049442198153321527167080246955977870892341153397088360004086972957647515295639839350960059648431575767030097420339188483776679366761051013019357714844199343911539895893537164694919903994062400779689749641074496070033087233036395202362605604166327799673634222124745421152163428208517009292182990498505786491489148936365521534774281563935995327482827901061385544437256999896693932523185377591965496776272609322610322584287857336132623765709090151162071676876827480722485399569105328970136203549577343432376135746255300825883611761864872447585377587404815577783964257020835633924724903300930095568649997951896366132232855311538372669833169374956958464668267741281419255262721995462362008740071853030672880343996426195392533119437227827206523011037560929249662934839789578441241721841915177369154518617461042749999017851133949603308975053338808501126137414352928867073906562324072454693371995133854805790767952163867134010399728940522164169101544560399772334726432031815331215634821001210263388670331680522030739146835436665061516883520408655263305837604057582873591311714636464537983088992926442721413140805798475896575190544984160451956068857954950625196656710904236905721520653267281815596515984577028945304658059294307954694831336642461117590207619239083619317780616442504444041180687357390455688737137154511832795236182942507009479116378021335944839262289426034079231601383837615542753662476003704001168357296522452562604682299742880328725957825368151759082186148002723929417009581963759901301757885347338378545140995511314964999058953613738767273778410254616713679115282863479171174198998352178495934827356787318608624534580142034730199298781455255519304466491597957578053395822751408268433557406624263075988354402334761460205915570360408586885625333371827225167590847899387267163759723285654779438456109587835050062540188729541459769150483570567706634860842284953201437771721074763779962186173146704193728711797480077630017154644832328601867462837369271784330173235269760408114169647642660987967501582991722060125518644535740682516919735973668570300216335751792412444536820819551806241220275857674426180353678322343855682776445501165689857128028358442211420245599134776814876652952482552845812869383145547608727211633618328955499523691860833087326122952729118598177699325388595829694565511958077124337590297466277959451363341671647076315040152735904934190250623631192263368973557369701150150316332917578726439846396267502172859013573716867259885262018876921653451824139675439551944301354420796758678511111163048898151600168035427888696326882902154687854521216593394233968241934031645237350659709561176481135746055727671709103053772399469311757407674799961270380415818270567841203329199585638368287760161799619768928568867829705613633926154115342029282626531667694957801049286055446914562959503674997125771990542202433997495366759800245784627997541120866775641450557407270908666550374862613019488400097038650030639670279573381896426639578275415926675581140766442138885164138387134632010490584787820645845406972660542681044831739581827107507590405874037184766863620703269512811044191209874185129616617428743554851047220628500455247908199852987037269657901181979371108738351694121543772601048690872759514523536446261705527737940151602753683018665614917721919735472349815793663886509316096004071902858596151447002536926403560835709191311123815510838222781560634138713477552200434929375901967279537276601103087875812212028419212785283911438033780280476013758605083388473071024866162100997271335460139837740753346682584460092270718585506385029902468918543670634526072164202638736047901557201115226335597014255302700226158668029000176711880821637234086474820441872829198093911713974055134867789597780941562733539383272209094376192304426364938418864684448047184008203224103487636548203034628385014119390920954156998058138166382873879689151685589536679010486071001603934750222748191889964508308808687057277226272248637749819894164633268136609902760288309978316425070269900503245058306767253368757701738170346223302126939946936414839923830865976436454561110939463343871673428161659967696335296190830390941961416238708196725796867981665546554185291156899153279924391987862445804996019770010244122434684853060050954282931468733744853240071066570475949833604822953748510843732922173458820185918142403220295999688424787786490050235625202874899304754764559039594724075017995014164510517529034927975692493300401567627718952582363347667527238783485141062618631490030350658064878874250833840479913178884575052390839663474959984292420232162117116096629624336329566568602675673466197410606050127136148535389369395021779822830279208143166621675345772381380141011552809575562861949813612134803992931673906626297468279395306845555237895183266739440109752521219346791247955213899320289554556434386753398061705500204527126529751024092984532501942774146782243417716269251147540999262729580896924432492118469016302406963534790114495836788655992148321229101513686660075441192040058257035831095705458063093805045962412106420948498889557788083445136787035701178459296785112870278119427490537840371889377913344685660296493768419898145717781592881763077183203459909190030099683640556964998671103722565964115734505093820523998156870731938273268898338716032951044724780698490732099882711152257638047758637363094896508796560382989352705440419849883804845312924995617493520298807363692763316575171757873188106124388112554676054388968871032507597577649088981271798304425781267573050989663042159643810984094341113421281369548771488496343688187394854241305147763934704519133942580775857697531199621441734807293441264674990138483204640999541866421442260640739789199271127954209239782868368425832088409373457910776261406246216466527338011325561766519047170680836353001171590131971951031504796529290246820405857950397773560529817071297582705912067479154773148444888462156469095523048619380032956002304162659534991009695957445577479817447590392733026636248590731055047983349229555457131823730955677557706486433787631777092488324297474704609755638617119567617317690298417105565273497850032370050762543254984438700650061744117193393998378205243040244495455763465581717731298900995946437040601311943196128134816880542430232056819241226279959809917806010533443093054779249279560428571321504565445901042088950849544924967517908321938152696280528024383406933607355808149737619886599022534799777830153937422038770455019941362986908843241665393337198742567798256335726635136068928454354530554755937103366562607736139464139646548616864460141113177308245730572584950912850084432017264573283628758949087787109190995013224503102715356858289890581074454726520362116766825575628817031047823899072885364125269260650259806300636434534807519004981390167573125281850027608928197236533748865199030938304345376796701396028445271800540017472044017311898537803657682125222221094260744942278484034684078091642435080425009960103199585283572776853621885475515598885597465546818833563888322185443035979095574473452819554579391585097998753187812522767484106308515846666996220145600494046026822804595314997426204143563032746079364307318796394880087123780625685276502274201085194780996136866676856396136952694613178135042604225382093924638790864943624290496539428256961805566762349485063838748497410487214058815254456556339380752121086447975531944982724920404661114692006821146420440830402776754995977501250533705882764493942824048664625598242612242990732447340686030220040076968674619579389536945411310579630874928589647167772503953843718478781577141463056904355765135204220366370396183160416459237799823202925143122641917670268738802475071893079775788502609708819796298117830989062638130014397182493898259628455064991484571035272438735925831495841261209635586984935335983516387019983581397744761168112027767301433926977677999805844532103096157022950644478901259542872409007729915488655008002044005751747791320446575178647982026582189234346565299079490393432721300517680708826082549269513001639022351150090581405056089130843982028215146585456917033813400366639196484590748810584421968698975235565675850126304134404179672752580480234551987949826698830653225145955892286556465614369804504104285849461065672447622416522039704405645253600897906769562953749083887662310049650483225419213804474760037892951603621279305628737152858237385934951107236548387987183003008849918934848228462811968445789412798457798877623310985363305914863593541548071867477280787997601062982628082349559375006664936689806803166707752631503212260257882102001580976099920756718911927592859059680094977078350629510039796435961272062884310238225702318716348726031186469766368232922985813016330831211425630298870213160358181766305011114597653480639681110321780290947431459760224395080739321639553482566898280195660095695708688344224033975059849550971564546900053715026168770332897170941172928055637686961023963991272505580585673092396546208030660270425470658279137995291092939246070452692202694600560704832618913714597001135906566093570526959475745378183693546274178657543803331012885174982588217472030566194673200530033610209468164392867939760870868152083887968804313105570654898662646589981062557254887157746825189028877977498655857504255896603516027569611990827172523778317945459810602371584532762222244762151743598603744497746860121140949552773207733812810792519128474800858351805030213819426556627760226386215444592800692483202418154004870927541350358503050027058001072775471441915606115792459610767437074148695638013945814716114879341358514556404291940494899259009661969853646334463517766174924469852238999576423369177132319736183649487360825147474001444106961805500121530986694625727646867584244921357396599385264528516021373855577078509075411136776069431583959747368799523725447877608102619186910161555316934003738772197804298629601350752858996374951495096485772774440921230552380063419006008680599957551246565167169154759207666997342854409613211272422208328062411460395651369664349805938924851217143294415312852440859422709785005748454564036118123290307310844975717682955315267357000299011122803787038844329472124591752061896529888071327857392932120297799421665229898021613681264698004415931832212648161599042690870889722217430645929082549815040572225807005539434287850214878000218302973189837309692244187057813647081039368532306750582852399058011307301872710242770416419764533099493086969328254999875728009728896200821243340135439826892992520309166562630431544330931655641148140472316815015917963483825940899388575291901972177787805576726044597526943163262911643440486685641104552808718287109442415157091631406811768343862628682502853807717438958601217978264359229691135416315613143731633289879728104494453186423239777547526772357415019414749050934394398386258711074989286872316137542931166028787737546333999074353915950057289893604493207918379869607072502677852477658830453763528415292359632500932478881832941679328455615492706303393965117659231180581309593719687927914532976569245772499230320108925119018957715421135263711793243373653858452726341143461024776467411672375447003638300871948446580897479534556237484225136874137616593885420995920510876431410322605804268907555065776612497266120542496881997599115872138614718966995966300767456716194474181914010297163583459063339101735696540203026736414009668580702037551446324201622998715536415338005761475614904797636122708952852724324299421844969088790973561345333185952865782710232123476177845689592737524738265089603539576631905757447052451089688022977981138049108904722864820608169140551566438401014264699819024519095172897591325967315630925796826724913184861438687993262161385224403025264063399173317930524630232093050838469677767370975397612081161680818905906599002711015475981897728510277011271938675872651813404530773585954948300001317527047409962842291859008661194244597797884449150735291373651426988888957212691635086129743435272177738247186298755436794258032937816397994379136750979273410884041425810487588922647483377503587519849796912915033202146377916387028772783473879750028339063211774067299606030021615690017411729282864486786576867873082910490389097697341829900323832718442149927698618950333161484224743575186431083025992272652011032557201994917471193579562112944011872997732558903629305255664152063012087780792474777907886063059032742788766804518563888639744065138174293458843572235784406713687441901196660692178361088277589898259992165428393708053180697900484014572634897268742638878129257882612648811202121743072500714740977124244367747676074697645532213845077768140948076750460602020517615000934195167700182488412742894881658616733040493638411259276266721602167586411342977747213075492848701085881346580769768897944567489111434149152505653644832491946380104049989577695302772107282227626899877190756167343248237029202809127680775585703403258964652113293435223019147798999898353345596835154479233863861983572401904435815964216354400478701794093487194249580194784562784952262163538727029607439885190073998901333815966217533716916617775043038840511088709789703201293729495760870316593258415749061195958945285489184614650360873936743285515845682546963634480092848216694865218090675162494604006602655604770138375158826851081250431424070236357783964308411652039133599415802475827252388472627452129105412687898705881904834769337278127475927707473341959305981237359541814176294912503343208927967169027181425713293361328165873491934936373986542199672712657777128741441691052680614412359013472927676268948950983493988964501061417499762083606293954769702931662591703238804265146781231089740616322594561680703625734277878007280698895347011035644649950643486094214504992360785998796658912514325933655796551009788572253809823867720038307090140174859263768771734644661183233327620919756541530471685323474657624785179333572449797294810889647207068297912364215660786469691349232353659588750400048581536872754507407690090372122545673087307494269023861792860207865127592499449953640561668268421195816237366029764191657736323083985312732122579205075874456421649982214499652506339992799694680167569224127794401385396333350026025763694840327294436195289929810339676274576069071188143969128267706745538876212020051189788378624395354110039522029311488979047425080298982582605121083926754219447076827857023864749293643250740904359929706608175307748636785114372269549498542134093421034666766967624043686598032977357643042244385629361284840818760448013635562598806378535625005614831374784444312131534598552115676288231860706358436545068468836877994935990868081057324560110868591492014470662293820952060399212348677137842269105419807668931807043249701985282451929207786872909650299484211047594355258361086053351180923327378931201554550126010387528866965665336955473063642998728609289877288339904275790307488748805627509505915021841702893347878401058605816637257082597677734327300447853528545822459016846894946671086314676399937650840820449761243878905819448926442207679224372000106264066044388643991206075627563059375778414646798304011821246079852393096816311769034999170393761389105660384374786091100947556370755110471370770415860491892465304822405787858843678503750611269913783093278099490235484672455601045439330958783002500883145224637901146295446202754704340067515391231842396220162210604962213831036322729183698128536050169508640922947093093009678373368188154524985008523065692883748651891383910757722663656681816559143051249574994544749653293479338235674198535450271489368906740821726008392929231569037777756549402746259701560310386404784312443419081918379229041961493322177194151328220444597433202859306099384332079890284821095629200728478635864563813132101900665420176795730427365791982702667833995512075502026300448050992944317944334403129470244374285413992417791490385994540499008791475425740316609119858573944712801379690310743649890499857960043777807655530802714246589398560009537766534752424310306517780243683524918615613540952839787307486880667381323164848194016115913934952859225713537226651934215249464719101426540330498970437319838154532313350525919716762970054374713958921671798925914440211975299035745785670416146483594803845300766229081749347725054197949957680534025006676433983844743476707497218916624142476959317831251238469113747817797025364432758699107163539545515242186717546370893749511764861929361040893158053804188382889456947399192972284434015513372551379637865208332041973465158362549544366901616652582015003034551501948700406996465435705560382720126840998330123017989392342105799034625718647476264840251226241244909134138493306953933211740480651359937180517798841225614160686387406984146690333723116697514704572126963663634062937710070289611752826729306672284372429419248084250972900718553014474268393487518571724348882956431940569285144015725744225646267858554025018693890212124964112312237782435743795875273309263081995011935432447002259694425269984328285424320177098960935671654951658144453402076857052002636610455339394779439462735669660358280740333917786723705672239332660319002772069540469175493198985953205779356994650642410537122502130110966823617356544042201837434767338677819512894769211630275344886955274320421357472536716043159662264754685678455157264311924398304866287888216001602543330701387245842929363849583339172691371078577143778563648210520434958270174618162357587822587313411651714798205995171706357626333487191092763575841761513685834877887184483635488099775330332990690766568992628987937674539007148445764864820666971685334510596180761602781402599179491053535518033812900032330754638350273363199820279226811347410114782530794858674363152067031322718129957819059236645248571478291596710624763447531578709133974813866995010998575694090438225919794613768531657557144209546692786715497388742228702082071866880598675655850115910880293231474307795298589038878967095850939959269007773068087155570929813348806195969102114243562903698511296691578788011926525444731948409050422507443803809226989856855267030189232978978974232365624276485579545122201805033947971706682594918508502411600343942224414935215972275660395180111865331857090857863355256780305486765129970471118781121951836599850886766446506719023067266570807001905005416371598333055694736327981628160313267800000614836458412004127264135920609107675876929143391426642978271488185861499417523764590113059111278148199285823664292791797857071492256599640678520027425749966019012631734322673683166933148418576867591075212654814546653865141405354033582020931228026315983506813314883270025449525002602329211349403471622004000350305732658025651095461073136116207909049765187713757864929326942907190115571246525958331909066607521826374088200092243606604496590377188705958987759872931804020262767416910826337391624334343972267841360576667782064172930994516874739388867705229726938577114128989462232218037699255465797680345143679578607169498226936335065683370286192194537763916705898871297158328727971671532519061373264696370166813609507626279369605580758318185901132503895843279172078925594133120345722860137859212133822016471471643599801441684177194828297924825540897424189220359065392465660329231195584184783994029549108654474474252603107750302140060544756988958180832256411071173094574893341967633918592630482206926582239093903749644013738648318262351954042494312502726840480384037060565152255672146034226284556322403113198212635511720735455662458314895796019015219391096111779861629197521719004745396823175432875712078728313073300851962800424141367539916258813448718609632556152875482031751164130231798075644433343183294454157815320476854043816705082209044125412333847669580899881838855630766958887289542238961762421588434516566366259254057386170613237517246370578762054597568694926561821426896536664312898320803290127439431193003939661534997844071609544761635226014390807626520080942001997021376448559738411783575641268191069156525429450402331776766181064165488689702709027924152811322260255682392865514426296651385830173464375645498617356823371999954444714357538935799037204286451179498349573637066874276052307141165456470954360677127841282786235538323078204576035381149100696347036944947672691426418587758105490322644811304906260622438688594627480389427960138732607213070440557559691693054837528482802554742604263542706705004126395940836232798845777276001895105773942750335269219183749557202776401361729307350516641727417621743395310186378395143187247780207507486221227377532793655936954235660106711158595330481352563860850466787348642529777812773563033956846343525694872554616597810892158885812292753439114399703054795583617443469947349805815672385205069026882584087337434256376020988884797057842677799794076007509062373523308129781930062110119331193921946249443894249939285562173421329654776008565784970976452458038999735517462521390167922428705913071105039337343644150963134547757031549485171813206918522149451042527412055842523115213652595471865867310188130805583489836906370448414452956017281893278489013332600606773534844460657943946964853964778929463600951676924062640953559944304481652354410224683512042860542448996312677059690068785748845902245768304825260776775720688719073694745594981893089783926468871422961053431151027318252370762097399577155354195150580040647168594936965678022990558227605047510111324173715882431226242525625627624060837598590373121137650040444744282276379438141857920048105940553885883121619368369851153799651884031117528499182629179845806907498988146694197662014626688631321686280045057673996869189247920746190535716334632334376042777698681176995533577626328900005479327536831847593495547276637030691846470311867274685409885074738943177293914503816410987581571401422254667085260605867652002326387745769642326804505037398046283877205169250275589968316836366140716396277847863504283753793512813201020078967648348440766170776806330119715809321553097517721622193443407009749691721139523807535780640919780405630250881954750903972292293919242628289064083515248445242435254970791048328849584481915728722053390090243840644754938415322592962478558944644856321763617886553755282186654756383134828783064227318985839676988264957151160722038909042697358719643584007678904349782397535556455241844329324205024011852567872206829191734265158089558337240448176371572131749125950584128136757234674488241329463083123717945345619375942779619478440473029063586581126854296994591046871944599856602266995235842257961607772896394676819408373660222981179499106593475010013965988786487169239475862213493848301317470690792981545363651198449201113286711846509839520077824264383337520617652181059196731305477834629368053303156388357623757040217418480685272372909783722004440878389222090789404177562889531223644273563525916319059233930715392324912252375027961214189793892875404337241467041788106368534375525554891220153671224536627064971225684530508646541128676682025742481200239287967245677080149375756691783306895070362850610872621739215093541283205935363602659453389921146602700599952330636052622930271348659695573187502490265100305418297639111868713279814599464078746554948934927768196683668559151386549118203215442357814600335620505430967919595488505047448432274184926971764950779535664080124018798181528471469391405859782167135724195107045922134885132443935628184003932029245352926356337137109594826159173382899405184706727404763788781301149831112267827525016881825440078383414983809438403666340192513140631010556977295256808018132879473389532194997532353672216627151488611603905069266910635438752241653741978467714016697033919309673357346787756031742590461861940669956834516303255915955269418992744180641476597629979395596780951153293206900929823859645591262747603538743008597184976556519790909688362255397883044138291473303411965385394636824361789029439791746338423134130802666539706108817596548289288349813325850658977469729647168239676144890551526441147527943751834383255719115212301300765130316650669346925160767230565243771035982619605881536105965210863249114150772129091799563859336227194708288462627502657524912693676324978036827883103397994712946331782472477990954167263665802412698630667573757110976268112069482087888941920601363425868015363011183935775790998307341395030544985463522299263690803357709618398693213373798436904384826205061691473588134523405983692550960003848664355995838280412193003328881484320990099354840329913916073063307117945879633356879482743697253542632416827511863438042439560454724344589712027152560056651224172192124365689593653264674693518816554656578340590458899292889059274625098129665370460337241581206664933237826814115548030770478557234216073933256481767550764484700035906378629642160556711359400435027698076392768931320211516008375302311458081216374187590861213104416407754185222424581125202956340783309796658102959415621786626537277051307768523435103850408016943664149964578398482289009821855627624213599228294879426670055022696551701967994880855752789704819949713996941993453083135763729119218697057661055890255909471909723049835261940455724490981397418376755272151480015237777936039092122163567378547457885181862464856409234834668471638578491273537480002149425183231251763858934924937234799535022760790628859083038471417875268988902584371416254527729706353757367015024005633385573239337537247064107257688076140658739987105555571747475661843754066449504864395961150790366988538658201193546166276696088918068033553748420179216622871123666283679051995231554225020591162005520755802153304592557678970990941161317624936089517199196671355402646413831359543209231682566293621230408864977878608330240272582048408056835759147288188874933185868460907070555519344021497485398916351224572870409837863995124676858649268020932007351690645207025229782821233216494436597276193753238802329315023598850755715185765771472058523719483164135091123383801108392559685193031234229581167042240303530042819050345831412225483916342487395039473576328914926713048672041613741162301353861943331254932601783535511884100009709290550805895533767785997297922820289047619245390272929097240050186264984643758486534596269069000890271879874131110661712758234012602619882610653779571432041701531739725577313110648999312641185559573978324880076609209025611504013666919383560302483901363296718306417869470268049345543848809403159970400417757224843058589114384918162848729858402187025943972513672576570131516265502200804592709702744010211434641536979528620625139612197259752248128751154099505904111423295876405050129556461309035736091252875478889414008184251168204588988492286416991227807051202437136136641162471684697168941505184443863858024648030036473685802935534898366184704580370460812304892724601869499794520667339572650157166942247003204626305437617485322570376140864911068442764876879673921104762615998099569868757836870882225774267964236669435581018629024583763444102670580580768587205921746180162440671652721721900912962701932660259197997501591273821675933185864132952816455074238434336522180741074637276283981523306814095397475207491807230042151293048694169270451067636889515601629436332628588498525107764602361170061153174404209001137122412618914278637459843643524465012781222704518606578674684054889939217009072553710842474930562623467109627092299354466937879475651021119729953604482865313426537602357321787008973831799665120094030803263581069575568572160887164973511493801865788687357694120984686813017562815817281417315643368712241417802186859740351156548961359194836875927976977327550797020888843813142271577457944213535696352854851470690494281003101974272341381339405899640867949713374607060811911744334165515274749254597450168368627359184663587232059073925093302837488541212042551537796257744919686078348546249429004509391370721754233735860060080518547609593923576437809171289481093841821186330175528355835592885044023889719199882567925457753983223675249599097007368368977859538652305010622325265591372041655039681044262302967831553678128352799271044773135221238778249088974034828758675919258194910607790708770102530099575943293947858359440242821766654918541265544926573013111459227105123112617652641276787003571807797058007109255341533823934586658076426597020780079527202482673279087361457057485690298731487008165773877364428354337701649090523263376995422442636799523357208776167701199577067445501299747452055371222871761781100645675632488914358425404977852281126295917101843770988579396903982168156700781060036335219631945684417876554979785503392154477453795042274741318421853071150193672662640359148126270030766075091809493622967158904031024086317790154697243089621559750635743933876824651996199110528218492066397628457040236908435760981016864527334726236603107522338236530087238749360234003193087502783014431950875029611721247551227591010126559241537609644430442077531106508769001563423435971105221788205351336308578385861908854992095704853825698621313063586103917377994203225690846099942664595511793131210640860348363193699774326124560661963424756032542777941482944113085514777279858091647216919056403332705967494063332194384422171761139008284655222128156441030880301173742748612435673563649762469269156615201343583077569326376385343065594409666237790932608732070287863273713502151823226791769432418657454523206659715711303861334273978597435710315313389910598614951856744634482166300853988661932748965405986502001549628532740469469401077547867972106875815128231837487316820501498850012106259610145685908099000257702031941536795942312382721897613581805356098448796543602603692878545868825071465893032403352410419695350440460461738652202474399110916610820595730962603037508930248331778607510799206549347627486707128898054597788271962441053671407916471054513693036782336133996679898024278162258714947275354979909747885860893429140381963494015192840770667735108516995802570311518195300918835195014461321634356588459124028032646672731773870854180036262979356039340785980892550585530558816542249576947091385337657750399162202526160626041994543308245904806290839139020028681727561180771478622876138637496007648015890101656926082414822462937570909352543439930779117533521250357182895975599622984923300454283245860796513770510445092276610529065384141606508490987511977053050485537449097738778586036255626525085867076144733873453077746524345622866250091014037561471831349633681510978019493905293295068221860694917099684076896919035051816828461199647104066658283718280021054482347017578806727137060331754443672194539864008210001351145541686005077608909101399834172835882575674519120305657878604954420946174187403968135673930339392422079125834504627691236843141743728120193671170067652260977869069537005819608689211308931968912677808518407408798892801015121572144950711879717255580984341392011929550983222535485646981589700161289691011002735584908037540886707282059549820764768631043985001196530262957705059338515406667619945589556597806766949323888885658564337447537270220395159115034816581877779007927320172520947514861983250066445084345630893248528246626005865472327131374871418281414795824485989432140096383353619845595882982820184646413508161052726004952930943879217142512455466846678461169165163253900915838755465427866375285062092492423693154630238076446021415940602293004573967518169668838601557399866787272782765073589359501225309237712886011740394705468442852384625340665398160429374060003417525236667661325141426252332319605729922956254100485126658237316212961998937589370208373420886242908721803804386515364586556108921099324904064135129075927176833121115208713188177234954834705768684518894542367417559511189448629173049837553288817067923432061135208384007844712554381300678103782507044161913264177388955380622800875154257248185190600888073437416598457639085528957351261088527509734881740538270907112224843891302829224385800830984214066017761788958503510131838722899235701792745850360219343296137345799224061093465720991473562723127966180387591233918404221695546691369468862889866357050584695305650444859284395965061903086979889558392795085156817474926118773372809173475595754181421013549266656890955682020856232497325350594771176430603699743548696036135258207079094016219279245006044156657639457348751633874357127578090969187499392849394918868801009671703467708935444122733931761248038472905980034525357795903527741597282342066024357755646507680586521939713064613340031231246116288382531510412542787914560941086803905949929755159382267491686710326122890740856784419456409229555151161091559007452764083355958758256324974112353651676368316145959371244544041879532092162000198395855185593253222048429955324830564359609900259871439544964704740293144005783555812719362613483294040565571320676364917899016283955594135178254666787540252817536556396267359399820998147390001199356932017751390010749816039064027591186070719451973650119413343517386366735490073236261485078155241348278529132252348543527601563441902317399664452523925610672005669579363354648731060282707001789018118490475790129414505910137468733968690395831570348607446442594887617496896188541138533876477494896533224208685728454806627652364915067208034748376689959776541518751722871316795216172687695233870366706764516196940437741935690576858041242541027525230814907377806321614504530711745137934408277128949054102518295449257647525509164633244839044720576214215480600299205875693982846567195709658073845204105533925566238034436123653045729989660666406316569823488526973756731162450473419221174212113317276283811636768160104134151313445168914821460519744726611033056089559853808338673435385270860926926733807446733492041075486985759388071842248839800429325935223174228306038958580760434657906268145515443133851432964361898859076639993984974598675503106108421218180496376683103282228403227389575214298373300676942700838282188699490969370313004531738655772947916702744744871987684039594952730952015211971147397596242984557859087747749578702482486329132408600238281950271505334570135283014677655979436450747576978094530912259477046493933989824169381155878849421335974129727861044497590579746018426305260791423958818147604315837246924879867809864207491788836978783965354471112649689317529679812550647966343650597645283700987959373694155628744184227403113223016057991607354938776110810296241078085013993569092388597093169577131013582890319365830469285024168955234099688112226710584369098851803981595151749083875154757646941759358192079570493444203733168151178740825892828158789464719286454553674038405726042886567869210055003267407819042485026124345990542107979036776205666081464435931710905289677296158932018936847262535168013383275837283377773634671455802929123219814328466320492458555907145041292680327330949234249454021134627874209970310075341827523333513187075909036380357193060831267592246898902855913600865916054390409660419770761470909131449964992727579157847332268382339497780584748522964242837863187734770764881002151992682912726601797199467719429757509851861656598307731061038372116292095877967934783809721055129090797471214024702893419537580621937380489463237295846221702417702469354236125976332376774033371354343044585140213586996503222191427050917430248605298252562739431493792147753943945858660755505104732393851924975721026316479372580617187293877777461875945887723821625236554468551604436945911187787098875912954767536747611717422296117738977074157895958436079582634758730455158532938179026133950083417114444575701157520428588487959323888052395297979959724594641755348528239987968663810626815458563517194829201524355631353531665209281022848093523121994202815934363612621269616546914840444800029467452104657622002947426386445887670453478380335766383611617649262002317872506225705979138391188512314907934800998382618173665445737401231739328672206250415867191719823226729132228875712154729813665052372668584624679935262941094049179533004537444733367947981208792326616589881105639904360151806861938463999364299743196469374135995869396563753674311732166497256997782883104079626527514899847258526030541241606934398275742709050347363425297138492734342756706958664447207643542719959758783881375183933943626075032987776661565653512108078792432755856905459472568172219259623016542778963924913315081584874104747935873126911747714063906018879859608708174651157883007384688068071471766658150492864698251363029903165232712679733353865917084020790317596699074482661043387708110160495270419608471628247962745798674368680361367910887944315758668261765452850251782646282181417955589958462209787247792053565868129814190826469590794653836616416610727561483203054358757195438294983870330508666977491401044261262718030333894482963303462390689415557041241786973246131137578604965896508623311252827361914447376875950797937670713585458937405814485689400459631421125646708230337286033027396037575393768233776766626326353472404047619458922131005160463576009687394057986441704722640345884492443950060473975755561281277765773654360615609527484080490560437786203759286864870283487537826918430938323159101949956739227829857289985289544410758088577496175656546637236727777148722477428126934917608921386429169195305208342162085262013527385251522426135831603332398460319991002506054409674665923163118604874170085420805944234131176650891035417836583574371287746709902324654262748335317473963122475341921916328558464684222676637458623314354272730723163744101998738377939589461871578511595995051233104900097332669521979581983596874839095641097801346231772935611910562953557181747514441341226108626826464740892941376701181692656633489246106713567323023074709264174945941196964689913387525871972827507877069137642485150113778966731867956815890723619618888081796735564500464690798083688015715287442823310592996681537724634228632591878176234242529808615497924124958833208692383814395835124137694974185833631357897271330740945130487336445005517989398632346092757442777461549049789557562352240958770752575338545961353069919539809551393774528957331037447403004004990653034989485186556174088940443601116195552381046389991033426649418395967825908033969600423331230020323149069229349300824550941584335098270642944519328091707201382015582776758789038798133159316681339677272247121343774457226500453538302059125343600095876972177020224734968700861603973619237751894839003343301697997536802156994301869589036475370844036156523560979998132653427384237312996950372496950581171602477166747825203203719261730490070431223887165142914397754506543901313552781566092746996562263062711532679653219837776587942705745789233588129252643553501442026961901840967075509671336988094668281614923253556240509467979478095997492345358643542423489190403653306414914108882855743923781954417090164820014167521249909280736591587863222453814214807877806739231485877703018910613005998009102464412530004265209440082255562482464098997910882353899250100677595473388881531263841994850241907915524798051178949799120229501788681947250976888519230934137649681312252913522353218032268361713566562652547395398246759084705047908667456667168767273602805367607799226254771507245991390317532139190735621754938348085255472472730366081285306066117511174030120683067712527296877003653832164859190262704271540402416521631115084238470597510167391318007522358946148205889252748042044589174793795955277521063376325106496875955535454311313688615759923075770328909723259553840684700309079025062886419849233544939060643791226948013984144495794367302861508980646337358729230763425325529680572835589307649550985108776744517589604018166032208882651392584754031025106327220374241397005898119319386880944779369795159704167008855697221502322625341691450848532548897671801294283883569871270331557669216091350511021337586234621496794331387766117286898512234918593180627614013267424606220958281267838680246218567817930535247768481691362032148362973354092992090766671950778984786508211297435415335620804095382024362611243612636644822768984741685477497482695270836812587016176266364339705452320801897802164307215210803881357966243488758608269753198449945886714296478399745971826635723353521032103327341666984150189793386487188626775424854352484875754851147985556324081244758611088720123029618827764177038915613236082997722939800996120501361703973318155712807412474321909910428094364502407424409830224167708066417130565472689621562900867583302220963825795826931725158687017577549527344599225843097399575048630310024164379990050567435670909041298334299916935758334728863936042568036941477759832243830629376463219974634625406231353038175107712225768405901502022641982466985768102400758093519848136161882593889477224747865650949978222315963443571565947436022609917177283658506308260457981652250778794645432196705233458896488934601218651165634567463883666294041387557854634114845775865703955779021650412219449850696791876432873110391906614572363397117743510765199281721878836887880944193376081507740615144236662915930018059704411579212589380179407160983338515507063063025938008902314792178323925326307941379570646487583186729656691617310590500095959286557282234559328220293439107602909092169500414392768087714290142137734246573641225178665201431167373610485111586344144313805243172631637730034875646859539377460212578271554417440207839225907557136929626897392678108099451138249499253506794654482043334128857482066203352611212156321234425606809121943214809442446461248879365074311290920380289631799182979665721718158497671068368765853608928389741082598750856900351468401370883170751254861867767694607930585349549609609591364432914041913256886205230232378080771128841013770069016200611967124639766658202848895696037479078215848430765893322846685521491808428279872794217056492882276448187147584028681154712580718538394420970656237296414413547980943251177566344764976704981104872459244763683365734493043631476250136400788792365306368609619880050393446007069388610598308255875621149132334385123962585223781611853337450147820853476344427302605826514359817195618016389529719935101353523425619688382783791446000023345990078413498434392278605680834365633244319093858097155917548383477180683488172163040322748433401607380212240231059733724705980941464337455475016511142847915599169516304911513847324025142336176589936831111741721843845954975690395436974946758865823875759923262193331700944765374280252212177974087303713051435815663022387826523593200976727384605339025220595960580572046620044657901798511396375250738757255683698061333685996397161852509147293436695088168173550457874196148333524255676394508786278651340462888695096849458200174916747737720845520238628108527626658683449348182065757780581358574567295097243618265587928303267077975187578041700906595063980045726776223571281208695027880950833259035168778826377368539704393771181797195554494958666900282981253452606472642200030822877321218349813935533493098475493371998392916706726499827152512338675127792228418185769250870658649640429491292901384769923723189988482642407248326433617229627261743824373399146620731073059050618731616680756920868963723400325106835557266319760300240143577389957735447985993838128544915086871934654619414863921245339420098916961264411192115206747626395776922319422249009610374104997302606201040634152609311813702575848581684841067817791279663078982698512913195815502199160414700401256877139421665260523285925023832674890681178005117370562718425096604765534792310999248602908895043827712558668166744710101489895565521515967271314922502285611571240169007575966709003863490166431862430951667982610455366893073054506076548492839055003559869490744469557189611118523234302354405830951072992307724392868848629256605007138314557053429337210168321553731884530074618043723732947524113781064403283281674340746310932092343222663177745818057830906250771880830544536000071065825781860540248341056804161996150687709892026002652296599034206271563280169921149507867883428547130354575657201859403696991413144282155006429280131336966128344508600639309959694952189035023883964943819707045274170924615476471543370789272043336064262014908189703713972434704516671172227953661126176631213589831964453301927055082792698738008073889346751880820216855664247700640345255665899643946794439844149124235431068731515112359706080823653102404138674346074951714619054191212212237884782313991828430479838256296779502831282139260151477624539642811173776088607358070619461146533872435404288703454618742679482601547562631117448379662782723502619969728958808515988154047254307415640512028261930573006047867068151718895695692592699666269700294399223427826551763561521786359541605018298366328874088078209328162422773389958445044431884623880593927276133501726606407465152767133158074207013211474708036589904627478676917772528296028977069095161947729653128067332856279579344900611319129563575078689023835803395202794030405566598216877896311924383933978782189798792727163632169865201166617293863499575836129390789419331851704469215792405198033165392078781108738316524033504265594078036000424002566444263846133316364183875766901667240244651502202236484975382493210458925869430581979219633778030215618228442913301638473515048307595882826983113090431100429129066655518874606510956252381776995893430709915382941354286767308022501500071099308911822008923880481864719930440411633200634591145736341711939428474577629065138251036438772308860674388052113080402306131540071752640698656711515116514192612035853454157604070330150521793135482473808860452417759765739339588384708777208712528195155539250817653947444624330714812161802996169339902356767001891374952483597569515915892586692087891692092199531465739568316923683333776058408633814924128458944961541013490535400245714181863693685262898875055828142366027191132544871661992954898998389842366937474817263649947719148285758274278080344052340549791852450116087298177808371520913599407183868637247961204335022502227637665289936190342595901300460924876753205642288155752288355394127529996144290454289271019070835042782160994843701817345860154062652164451561553201657713839439115680037528142257990626525657338178016685566798875405087706778566340110878515779918008898568148724186469582367913365089433622574336710966530427332661688232909534625664312773123303480022590163025741675999055353617191361181126756705082190373768538485308787158506357980324639542326454546753883436680644645815532966614320557773835802000929824207853883426356870384423892834296811656260196833855533882615813451239003189458138565062511215568322860301763326702222100427464134535607359708457109333275234413122943766290781379111516648595768286105865788773779986873185626024166888265542862167262878166043330014031622333670000526388271907110708791925220063860673580767681162593560393018107764875806877702478106579311317140560447704265088095744201527571720737681496903606698629823409809261281064069235763448941730712775990722955036473687363260505871663286193809796189602970106261264099896197237672728852674977875492359207218314479038468261130128758038430652160370681860840774755721009282270730141658202504550249321237892073216325249750392797572734954804209392440885961269462647829360066653267723311817408791080189375913364362223141295313095385806645114891968075853440111980855953629023993930434005787837259035940416895253869991176207376472636444772783235040028160884941575439831891048255499157525257007761364192389166116810919706533350810430348654918754991049411238253032860937472424081889819872753631631587174760122831677035610015112738116000344500301396052756047574754725416196302436103141690486340492893019036902261035067949806729570871289222685371774481381267259114504332354467784628840724932705752421830845719552817274320351210753547146144218419513669112858607008723850954109267513328852098325509614103319177612964664883139722429245822079647422710636476507353385897204169889089410045250128149774876270668033439541840940484672024187449304220602982308739037539485740059888898801816022807827776092991984249541505535208748977946057856056142284768968580788777922824382614629506676445751774665337533733085568358099034364766887242902537129322309725590123488651884695313204712773845140704421725480880095597932847745778838761943775235996190972351335745639645382194021179828772376110947461413766439326305819554354264927668267673667238896190151665308183245155501948670814149776694361539828267506323151759622197793156057586367864006404222258293586966966723775493206883520522571544629652991719525175885024121856542734634923078285941623703123531020972667782400322785193147639321499955705544326387186824592279634162941650409434148519944472928620422064377927845016101553174724864474663471740515434438320756331519185538125320051140580483413126909773863215875488982488327421381882612450244252231392825762794641410055545177873449527899803314817912349871259410651769521349623095691977274315398232771591737873234653709824788055811220204516434017877325968204086579580950809047691228449632711943431799870176427229100649671793518934058470428061328540684499230353797932907512580618239947174661945211714755831533310155982701537325563123776748901799269278523285373496415705494124687227368806796072565841814598822640840593017976575751744422146283248049686688415204027620222013035447288465575417449954814988456850907002275536043653003105286627854671869290923234014412989842049984264738076101503463998580654168078489327310155535610004935546820503487747494074831716755874810194669282296494818655122546155375991380446398138218624556279725440374161050556170636339949446945266671840332842627747877859903924093643026805900411236133445031347768495913321308707434359519304226866027827428698816559874233522889289202041883877414295368245056806208205260035677041033135412203317598275854611503336719324115355922212407087248651830214782663891823838347113756742017235401814988733448177211229208895143344380332629473359819468621682085371534436726177519659425116937396228886692678533746191829411636602272261944004777229800122242035975350279944397332802913170956848343492821011178102163599394891610090385184493283309608531821289206641351410968656927219471611969117348204647277133566321293414724833400609801816254738471015453749424450338906162338085305951752296150633707952228238388254478120151027181870031717341770158982706515951282896959818736049046011116123806761777001882963158440109507799990636568069097965671533680946810543339185840176998838542732644324465189213285769745554948590512057265779221098633305695748986439181590096559971798207629740091226824573860340267688683329867678408112528068937684775340960684870016052884273035521396855864798317870621252504360531574156578221630120674056642394098850808209157510315465909749607581000695329192404530280899738376783009515866483358027458552535920277746094596829877483851204439735882973880451570007224754097579803582726666056974853931576496503221307062395905706678911532903399820205742425813703503044155073352612071189934367558760800847254313629450685047097727868175234095038530517584714694786914927292608142839901903620134844014773620196607356160192084008110632052907759292155376953027913011152191820599611835855503270080584959166683566311400190787671697786399233159300286222404121009829826770854375510251297718607287586978632348331859761811424511606822469704594691382373207289470418160676735855847254355604918146395079488881679154770957069503256557074551774054447614713847818387511592181365372180681629878838700739468045078999538350913512750434642909470388854168357709916822632422544212389450916129579546247947127017966663264409116906485603173063682422375935237730846392085336983306602724232786851061570128676383577807722948333569470257398707288168696636859229075230288721420975534091001490541076890357432830956362709719203141378218133057058086746054485489955744698553922601444562857524966103129477377590406791029556969483997090094072575007489568240630158014480144312194551879890880431370543329831908954589849582436895260110394567844245336097126466856763613584526854050540197927495198978856734649346052593556336068097787389519817735383225930213078970985258220605657214038800979014506950810695812201892969591282202826159526481335559333221357098789071325002626610767856612273567634371259186240933776672332703168553166118721714494302706719776373075291060644797515508357054986936738137487457730741123136101905242544541607766498172124833437945113197797617731900101315746075865035973617702946167343958011879954868367818255486175766341647668504333755036209589245858366802575310555986861684388709808188573402334124481444377268743821523446554648099290465115356754048306018225162404979754377765167470435134626464861474729316269230121963863113553801617573047588096757677631992664957954182096422332370986934221713844995942170254042338378563263752548561219831498466581153408922893310967573525090831232215568152738501975467140269425696526547611292873834187095920575909637980336233301801592489661079080627109270934972347323426079249331758325736889601811545193849032127102024601725255247800176008674286621937846341867952586927043810761466815562424648329131386990191304769782279561469258131792077542606842285217387210033860079727252601743910005675172529011110995567368441558666397529754947048713685760140387803433712252951774988345863713329733965969825330209939075196275496841188840555734777495667516616488965934920023237338952258243784501567470757462813404405583757817628468955894793109206044240652827578690020090803632534275645697284472810976427756557276982896990118745299784887237814197241137260431152042812639374123646033989698055330217503563301082293770374370588399832594787438861041773315632978756221363939745685404275475426173105015201007595823139093700905813004212881307231794138140129376506465931272911635304685506929571378953225644392124426548977751263478017149514391209787731769814990968792635248044835337603995007046088864394511444803419315292908746885978850187992523491146385953523185743087427842446227817861059123119148348356884779436159148352917570892284318096920507409045404625497663870991250600128941174769652427818826954724424239889496520306941226463267160341323162728448045566428441892455622670863476819829213883235084920265583022662613043752854489510676593027151092428354767903491022375793588486075425985887744310180137775029510478934997301940839696564904828318750487886902438311887940618061955902174062424925658161457471824191353342130122231990585477495323307843257904187147377692320256506120990609703676501966756427067734584252039340801552536374854644220324112228789696828086999243263819114748658445619435532004325658453680178593833297648451637967305544252282332496247314652361643388502756208555100356122861954265649179437973439141070141843742818534927169517050734218030546373139334068691108327010625058526172228025902903698716599700060299622620808593978666881334745375728116912741851839154307741405751461229121142885682340833887057040942167486723573750390709718387262623310328800475077981260894800431887684036624120514667436489795247043601687821555779426698509711960081887396617828564158509701251734544579083095637654854517754222261847524453005673115383002452942180351166643926175687450285551684859924902426827853812806543378269741761497763613090385368865145573976686730568605554924291891858295568991660828640215669091025547479392370856593794871568679956484810733132872338166479046085021701749902058976101672845021746730722474172696297167074598830304033881724699303145571313110817350580545621626350947227025383854332212221099346827136076858432114343028100344033389383478385371597659983718343873706115348804463849232031418982263976557052023540922854130636494723446814283150962645650039465098504738356006121270131365274078557696803361530465656449247512113519171547768219492075415043337408659700862103253375097712066447768753603973152947834283943900338728101780928560628837063891934661460421685574080118753651796973760955192495563711575901933943439653101116407641998905125917615998537878538834209357104398423702857543622534372044166935967441317391620852056289796990001084579506769163246518869814323941918797573407158477190778236115030000944120548124031347296784485738506694183293521143642646652449193610885517910251258946240304788730050909763408586424829751623177922510645096287764217717370917113474884667434975311571782736258026739054199866965129296344214097847068293850139134954009568792143728325250819248996796078854461290288400248196221072720716122678649308191941793671133045114659577416662018476365135464170093977015489327091518713578639114234881899385699414243083202580010459238991100370950835146293260493477909205430525181049342978079308597165815929264189694063661202598940842457650865328122513423421165471784426547468024044865063466520024426171673582957983361535447192208101223600683997117801446564842760313491333373140300232152715250441399385748720443768926891588858600101696660960451905278360809602782642287539385932719335737839633850892923219426479604794021633759281594651422157082230897992521240324900170419718875992695643874098105556316722466847750507817491619409936773461833264678930136887644332354087049251621204910229256896864628991311125153325465628189168883592925831657787505723680519451824829743670874913944587750984831964525759380001884731611187331600433009651743965206676204270103980243650985368016487861416984605315471530702307450457158852931815753514636104171553396397407410969236688475609407041325506740475835528211913454905444759655542244676462444874648174327772270205440499640449799454054978316889112288469206798500927657592989684255310627970624052780310705600867167013047847419975653771487204043470391020328972174140618625575569582078596183915178476081702678376409675496008305897566176505223452818043239970376463661952088516662871568595251929521643496633174560565955575890088043619564009730019408915049725033053486696453621620656143206132081107360159069680914442216762208655919718703803257550436412464234680844122666784664802781020417815522432466614634163668713616873696099286245007072643149702346376477118216795397802748272300892527511408255086164524455033147742330137361965647003504379342582908025428238552228677195757317289162948695781317972554749307127507000038831297043027372261671155190252002935862995064621372461869039440814997586848404620524996133410309743316736992679640722429025750058703961454325645171685835515517030730035842047265637067958639500430436080124486113334426724064130329584278001951096995643623782922138059152676018283499379574678324764855904232510023185941425551287013934723643396094992701109041959100076269660616112709105676323480604724169901051138495930388371344564999059743055130047307839172660631949660202457704744365191392520972629640096683606660055767464388017598599038225640961961458518225879503339960284653795431975327603190203867196100722109302223176367776556000575161715502621283964530857518544193828239743214183580886315883788966257951654459937522268414461002472090280158427398043082541307807695518664715739184420600252603703075612761378073347142028772262879217354285238502066248644488380891968552264809110079964975090676816685282547814365358611132906907014621379693250551415305763599428920875611146530446876777016200061372576271194102308925418822030329315965971957338314853925088429907956253221677889253278582924541456466734693748852785671020374502553223357640624766861980562835698135690077585617105530669364486323996371013847188338850703275207477345289740925093257353426696520175157550019985976864616161932427971712259302864792518242698739984730712984852098636337091368999491837808851872433448257306101518071505306147846483904358682600042972421778053836287411224782115574299305049891895756655681905641916587713290712341939909748478614832945753089485535442127796765944994583590481719448778565934080158018995192685639011295529104282962454579794412172373564675336765880687737863922947775186372233034654955096326777256322447163193649856337974213692940573150602855286164053896203479570723049041941179853005354135271039353640259387668051255235966565813810393519567714976119540916754759209497770201016817837258401437566657500250194229296532630637930522053376481783002211177534011830922880446659771054409578691407767138086879539928429677083882529175123682517233341120477085057257131160562052026058081147993821238129929027974902963731869548993709418870056247500957585775575578414795385026856485946920092392553830475316176165914954183600695395454113093979438947044331820245420484305164979970267820679982186089613603756789717667194126491059046051603289216031658908239493376565340715284105607950145181018115770147988573117735239866252197160682796773716712533798626504791447403948603538012994138011887156464840295420131476348541925171618953892598969555144017288691254723130755323847460362432263174737235977780535000242268512489606136168974636426176490112164168151124957232912160193998007215642519782219879845592348826158773745361972419603659138460835069395974948954532394714704673471312380502921432334607602998696558972443659740948573712896843986554392370056278167362950832719404670593279465402031707416155461844214455605596380738311607341477479177064670679963669849363757479008669854431969960403686514753382053427651364202130917562383189278560750188628373466572065915403407254915456210149366416617876651273926591279575217822972867169913212477210109376799365842949165155275278043378635198060773300244801753569921415911776783728157739352663904690530806609396481077137808614866507424334942318266530391520795100250695612657399737299597514718677620509088012010867324568933348368451665260971726625320906448881779449882903062706739637176049948956806238644276771801533293862174398169367890389135041970418332207657943931604255392052160204012511655585934482597540906058722834049284440450557115187290794818972051958459496508278633248757032942422173625599676311454354016159457069009014221388469836779021540459115103560600142207319962916336923599495229571597429838400662259126535201197936338730184378227588839642419229749681542034472430550191289763436282266914368029288836816157780254633176514664022634696300598358581437179154490064787585295726222922125967257453320196256936189892917564351325314121800449432229522748155396552520372876719113930141197544707554279369091149295548877602095553487260243634636937076465015362476185327932316037816283047800981794562731162933661605818692568417278243246229932445045442303261416836244665278140864670927850436249767574036110594642927152385857911364895552360209789381015458416270508995142853739827512811756029348024511711503165511464363947186354790027868524348862902294577218522099838482280533484703342917091545531041192082826286489304975813593590769802268207297903741588406884809562347212409025431188173382948509047293765929916794837007224975480337442785156329369954331380451769318252817916248565167976607728358648955445594374324845255211870734324347939114891038148474849549146375588748746356885154276669411081751705014339490059009837507710174323511777017074576054526054339380289554714075472139434605255680272229430514226683629408602545349060027459450400889686378799130634296795784503360084321431742369345912104454104508381808504947675419832315085131274061685122949058988261070910051132847255464808834547610888684534922834161825736049309045053989331991806855128869034784709428648912532556139051391845780562308319967439020671044071322629991558200116247249016517082323593517233132974428262558418264986019512591268503188509832181379891596320433110666378357095050507930446236958060945322593817275704223584583020104880576432275155250517918663666495761862413688524400796847786594582437661350484288529382618412054127454562583490531561663924009385902096499459353441296681156585285758919445466101403712468349494686522596636569213664054810441553784377986883335885572026422683804884954269870040069493768248169235817257119745142783173528018198679448798998090325383965010018789314176241674253897776748180600023478057337011671946679364644122017000292383394006167321022538561085354174149369134212773011572493248150190048694158737773534066968632897158475250018709610348133514130581209255737155405822032980392105093957538005529326355405358734386725525085617310899828849061055664415422394842045188307395605689049267978550059527209667715443291137326850089987445291144935581698934283575379189011488308780197724621226818939189343580365513594855775681800855982142819550409337848017740425543931450204480825564355604351362747194453473370266361280790839052155176971622511506457836753505989211335278360935991371168404721439032062485966548487387128568182141186604250549751667133946714182434728031655621709458488724572748913069340410564234349473236569000573740711395878775847540395859284722558980903807166928803202095365035416522392654530941829100007598309036622853264258264762541132230152020204697157816140982311023465928082460816450423100687409823195554785861097588517412485241556615411041510971085610604155879923605921077594771323641269397203825939367106624965601388234602359181843894151404569675986992443426141325502928631923330936072372377010198682242737679839836979472724254132834235453020548394358902022346465941351816772431872077769202183199487386054732970802251739968437945084046796259736126603819065399440639016294505543341024774608376964788484718669908322558815208806555673178703862134903954209822498556972045530399494101538329630378646111138024405563792574745581642366185319583755626115938211105378206657133742302800381520833579982358188526952312019212231008043767319816622881679897324811287798665308136519282196104191738292922551996796009960751423106885126294188753693868711681777248074762798518057623707880368688837848623636670714377841164647895060232105497739053546659627032266821778463328603448416874317778833920842373061833112289651374935156300734368602061042594900080847901996241733266776047210061468748550707861250288538790009388790054031061148561579955449078249807961554527230320265576432458610143149037827971395156862797203822208088598726103006171924764054079974647775996785607552524745432274177687178549645920294327782246703216000314854988458753712699453628950665219345950774390178690211152403722786932177184249009498199940620730433078753243655088818083082585270790968205970579886687404267601568808157942265090685653539968612409017996333869575777613730178680210035714329361099188083003489352096240056426378392987796855710731735408651792853564608828307835275361082177813100097088762393871223587195593911360022334716387134156847433689634564246059218415698921844772101267953444991958358359639413179034251329172937039436789474920364874083560677828221141827784293240576269233881648539045890151926284290342353286225562196561505757427741606959052486633514605697852988093840765215391088701465236267134744244579870749767656707526540820008374526437814833903405939582051690393704216609983451832144280718592094488684811369599231281673652903717457728642921949722935731708031816236119835377305112306866187016389992149470467102171189390541221581685285052429119664091356319538775087982666638618535175540184327348002728493697062521072370519080137240885913322213961091451566409354450979543181566206519303598182849542487532425638790021353077246686049673527239213992209227836670658850462576262954605340656811673343619209517854668273117274590619926474162649521790267654557664560100831657583573160280122206985421021932581817125249192646082775534798327879555791521004419180637975831498952002631895347613815926403495708659578691025843394641545398529166461219756535895201531262291907866663325451333266240096656484802219068892457663055497826534289869571375702032573352232583789347247699956801600134761056143160905736924725880492962342728699943346180091144272888179153179973615828021238746103239660119979305131804048571489176012257176638210992918772005565023928748400905879321779592052529501439938917060570002388957421430311081776788998589363494761334912526437972474570544154026712844537985550375591815092097342702611172954799202605960911073829533071808535627053746921748606887493515319654692822366650662079347079754534768256570007947738411407374962616893403548291916137139310170816620390511579679789252465326179826865036105605364915064534829763855373072562690433119392520737980167513167154937501335677177924745079393476744602103145450165098627741951456708878095474789035701055336313093613175149247222533686595054859598211019630227993432242443947246846775853267112246390815615476056529894175117091526273870218969728759099812969222201235437833261280027078943131402305257874612534003924530103781798663268946418396861737672350064547241095068924628205766087644545087704276328444832949452152797930109596629155938460090239247959405608113734633426113704704457061610606373305760583750200012716825049329381116993863119415535049748622058511458019231369128921405215213192513027549886432099529311820325712022592446280245142576973402508698317365018803620573857724857079082538194030916071792419796806321452275659518221829448520908735212253333817116872623448178234509493750379813873978061666528914918837777399114730807970635717295850640233113816571652976043167809957622731345543424092052180721439362778970205730009406675081490583328588509316387512608546539769429230150233784242416206067510575692033736081824181718943231487891876267158924058887928723363465829665254410439921324336144589889042185604395892922118490544319283149587099748552307179530902194988321362552139776765410496636142378461727871253914154139689337838299707576753465809684686354184125139155947762112355825731020403599314587306256513291677309413931316197638088216255089038294446334398401164189612252266030368153519524443570186382548841478760361607926633324134248830021386163586088764715751579389864925801800507932981987391017344150346206776176346817055659461723426206163982641092207990651949088725746579522017615258013872597523843697290530779300839118373675538921333159000733787357258980763032005652815367388013331611119790972411944387322489687559337085424130961056071678240338733578761557817471627524980095881757171940715955237376450133425218407642776809853136402101805718129536177746233379700463168944287223570738625845078308866808010463873845291088810697696010546339797994146606017879638383758294927095245403067325730497215498268055333165190776745671491847003551761502350827186976442315603341495648818202746073427536284825888185370494236910690074645072112861731808656506405118554516505808081825998297001472313817057988609508856554881270576547675639187336886316645266946519670890322915779018566611234412429152501259157667639219688973387326051058928961630508427775114144598521042879607373460466649424081819749446829256330762692178790361809414984549465640102437069671248883872420408830637394672225721453786552176976601576251349068211047461288409037652386153537979074646262304529656433476952398647908530517076144080629002367811549798607162960638745162412493476642725337261811713225588843931787850859931641623076439642114069212095548715098408288951753118902646891678263177070986016972050245457121748011933917533577930527269379813726076801703009795439549431248407367801202848779447449951200695337327301295810834537410191209880738833842098104579679910945472161513116638378966591044493832640848211087962949972482963340832145482211032902458228304652005035205583096016351255020826789110067243729694149526906055621088682315001531611877238859570700712281886118217683278088176685385958826513478512450186978468001924368799427604853118361795745552253030292006344864512365030775683215544614178852999309347420684424081876737215819195925578771845448130329968784459608380205176549563217974027056713485029717034084613124893822917132249494474912500002971722433192786448088488215453068652724632297888142092301471334429463422935115318548780222890756097938782371688034840434787017324440584278764044752738825302026539138620910296376788680939990542954359963598325712697638178923053481402725970472226303308276905648852929315127589352885189598448877844818396924657137735758633442877609883240848498762289333579472689203380905943007487358785302513149391102689882274698518772740708839214364366272908054903860003334003000686861680456508002384073148101347609645012258689886177144812141911220293473699317730503310254279298288116743977877730828782325107037497722701769282548462260231478076293519151914681752794907087909092406592213791455802080846985738607837972508576327827856487438755368002075530536893947481616373630655288656398148651302895669918465296744838471277207364903288763537761288755899028076077535312340371141375240083667369415710389567495552711055694736788339545187608390196257559751915524956325022680318385621668385818687250777389201579888635850208117759883898767843063251333209842387047143391657832842140771972598518849240771253652333676818011764161977974475829423359611911980578444651676920215811950382889473961694568381791660390374271600983236172043139528670245993421477910988344591214896202915402548240855764793921652821044101049105271240325821991812511502016256837842922536153745373304648448513576075217173210270648294132298485176241609680487331265481404025488859043559871048005415779763787073636905381281536206250648385823933634049538188355768357880874650661461771803733071026047980717441111930814008599510691521639409902758717388540128845542350247043736883233768256582335968427008509602025365933683090610981427914916309170726060512331400286363859983155312074488188471040035155410428930160176244449914733510505449998369725418458948801777967131750119992443231106574538887675992019973601067648508371372628892235513673817656281755090210693604988782503264127299687947611242995378852225574411251478772140953971713214276929303952859927656613632457878573008922375558215587488217137469782061304531160613966325165452714367022698689381258020096437636043572868637866888179214308538805179710749241988244453481281889115856880654878868289360454634717188064009677970976204166633309157744443290328460200947151630857866130332749499362862236238984289109035046242116305808343879886280718028189401992386026263528038376946039332410453283506558975045903881754408289089317403931616025479028326472753161039692641432754419787072682155891256271676066273075141506496250617293226774144146640742438028168138466866357803656020680604791537010144075956365567097099438349142872684920617456330509381984206941030976823765183638235994681887101113032006357742424911237684557428811444791641088701326155870086095314464152996829441967866624514156975082894158760004225615585602039834077064307283773715644760722429885078896989770640990341445199984416948021782639190124583435471924436757623283293498093910317683702918629414701128238945986058666776533531804137868831396872814199795860126877577469400897400190696148049686362876328050053257027786880097946202015817648812109121529734131391169891099045078730304720001777678575869718846370779469771555569282287394444111677664038856263527163128095509102882241364300559849017474683174011520644078029610002397054103170440632200487697493736066161568329192481168974073146503830102331481626422922775716435654041067726232036741100654734630559310341757942898533829593788374181904742337589234963312487325429972339441034743517830664315874631488087981006375219756784602328490889501679337877877412010142416939700535303797259486267937900800620146577122470796699659483572412216406755118666441165908663647005547954488309988214408984615857026737870495026108002553832065966486583760356592435712955846301584361707323997821476419786388276970250017945993893150642254587421749129195938620693372247347860113576335419473311351186969647799227540764961815107838441034238930941207355289025235874175907118449854331814198354217811501038343856337922570342212701443772963049005813131328371190593660247729997621734069183884427273872222718080322735829502812948914200371509824335953356959787432214461016375681803577931200256126427254783566122780668624021756735484044760885324045074940354451536548201629626776396054467256005177189673866794577705732131311703242868697659144410777887810448358203047918146277086211547301744587167261548075037649027514326219148136797463822782840605483817094420199865189645316226532338236179556460914401210735924489603665462075137599846498318000821393743024661493410274177539249560330854218489649819640299865170411885314253170954564346686794401153541251752616391253727650961699960486608447291102589641626546828843220768101999926354459868080917062416607010674385866436905983798732157957275784044729872349796524308669758610884045026089285442493537853846406400612626436186502691487627841675929268527122315805566596197723254281193299304480461799674628641274712517778904978924692130996277680565182598941299093125040335958732494668829834379736638162779953099401910564109851102627235245474630674864874930231637478849719132755732533087677757816164687953953103522576541157011442795225953628701009202552920967411000813240609556408507514943188582109898033626045789686198391650748120697362663009808237146727218568586819894547013472803364031139582159092001721888148929738503865879807915129355755235186118172070129724082613861742871784887814627780451809444562570611209045460183723684776534933378176021073717344735286330854450223901160114704472034796176589787590657882917049496546409926603758768781065317785776873917166997860189068615532839750346430410048913315095787618465218762022516302994666820842430470371872255106297202171611010235878254728184600377330699469364988098237681160976254406411208664872020605292808442646379214914485383071291748485388403641530017692334389369869859774535750242591091163353406547334899237006965164272446136056819950777451155743430222769305714865966609910510063303162703394952700978105698376254048453321251760222332857658518734981390680401687494213341349669095396603150447365483334344031601229593126961460538292609135435219348280414710253798781454969512209441318341748342502252006204385260972361041006171809255545749359836438357942737418484957981647524062056346278935586662306184038733351456722927305763970763240906281811691582598500325952577765352039711950517094457962708109404477169160949114679749432762282162623056096407910316888881568076715387948488209603864746892163507787094743824407813100706307310694706956575614984416718603544989484971743700391166700502408098075277169217817353066851229092961903465108177612223181588355550788589142844927485352375535735441900652542547522551475371951986956466368003078648097023215425582912270197791947689284580810934588093239523716391588093521459939834300486021991051449142570919373365355206289129898574200906214166739055386075095567009114254767158407462389600673202663403232204810088882669076513727880947326412350273954875549010454400677030843444759015630318391562314595935441848201413612484429910600715507742154488681627487446042019222952153967151718397382331957476541747017497105058633618556897924988883195586692053518217892049799370377081584255335431001859729916454087215050153267886073628540855282082831772750997856689477443015589793970283326033783514251134981022853612639520008375100485791398211156977691461734846243848565864823716355551712023776716101415998357496194032281892392301870479338471301145187545373156338334430327162437811877965443371409704087891869167394471713658535475811818576389331463356866044022971682198320201923356495493665294892385533363707926683691098228755400230959992139888332185833511019232034843877517781443898334087527210385665438891355382207606247938102598681280722244388001735160963866665816364962185927083897847671307654915809784500702854064019064197579025269447990668867870461664029757064327020614731837592277107841665140576946626310839418072187273118816475880440959175845204530273009136456021919743245895088567279472327001875569800795821320555691956587623942490099569562004642623393218523556568795847287272987584052765654651929208798123553004956747412723713879030278469815049440405157039479041463540388461774283509897368926482592762399533360090153598856400153684674844589426087312579818930811098079919270304246136781664946732323290822403761273180286003944964416722230526857677625991267524728430453470179949883434207588256168170913960509414337770967435256117013877151665630652209833447887956010205984474996939824212838096939815898003634267138143018186800470964678529333127455649852835890750371483224408227316303735499050949029823503752649308041988295930183787247586974300838377849805978594430717562871562782475635796738975301672548760737699290490044249730503136444179761604468409699651972043771018481585367143372209718216952644920825705757810663427606524825792603680853911288497433820506221701753968688718844062105363424586242525008024484114733569454132989822437171113639007478039373033277220866630678078323189340857817495070826876950147218126913057786307546798409999211550878182211038715439159582583102677479499284017920477678163002864673336630076507346899064456055983754647796734770002785156701268593139261431210658819280914978684679391220187349600140087732077335718692623293101427205949326431978011133460434241399765765584788833422437376470657856543245830327764751229806355506239595667125382082755628894876738142860575594619880180683565127972192891341929237090702007625080397946949184856216045656749685285776193261177982084841832069908871275208282210557280560210219188610063126542305636434993734742482853016118612707960660755300257686032932716977055758317735642242769453291205912506265848897628932073221801803928181802528539631375715533574981227690822822031464574995055858649124854675825988580959987405193614678123561300724476613964687774566256307724313459037519463556682254117383026532024833690407038231116606841062716103849819785865521047365906391190328233308561222331563641073679460049250728239253805070271283462129607462495078067555311710076161808480667794324472439804340169339192391074429623952440607788953383210608891457602375397839759225468272261433336213015307344498299117953104231331550005011841873315284154396846765267506490733790646473297436640569835800402491414058436661870167940239039397361709323511174215307263152267818069676405723539605845711431756717676545007887644715525989150204169617211184055279864354913905638616396756053733827421388344620612103695604833991117170083131171549076440325814840388047198493863945677038071934372928385928023629481670254294206710276806072423248597377240648961128992806542744233987454617056222364648922492704234781737608295077393152271114387000901839440745077186366564587243855200749046421735634653768003046177276429912492226194467866369028196972269983032803224610307675932328164750576272876485989530855396085337129046023933179846863621512026788693344993978818740636149067627775665342694753032232460397016744480147547005637129767604873896630548531244834856307577665961853773437475865191790891384654267621841236711252308767881522445564886357335086911540153138893732973640087085004133420146757657201030562745715457099390103746394592018784475867814483053586448625137297247598113768480303611658711918657475907002992297699599370834263732218941317758799748309339379184568101996073780131875591901516437863466124721040587435459321546516950684361493589061036682254089826340297939763912145156586807809877164497809342197086103463355493750123962671056441384795602209315193232064934764935309955811378474021089063765792366862330327335539440483058972625227249874746792413163493914935388982752477311372348809282824707712551794953928044113498583007602920554962676096968132811969041064708475236020170164037211750221644351222050262128451152864945235518181465768019032384811678204900794013981308775947115154591524675531589509161269727606032822651062419287594907380958594234578930817725005981250679493020147282087744953058917534014567549533623846418038334164963777677952382127561529093987492464164712359275033083563070520794057879942049360972157937385487647837557137423644222627531464404890788274484412957121241668385737255492407868339169835981126928118476362620474647947284813001485387094044463596872659891992320819849200354244183051848072241123277360953985265158972485226242777718219752291830924240077584083646815270621869116885877038259770827461273031259284705199095947255317433879026032336036617373550508392498422617946492206370699797582114054560690840102914761058263297522377644656719026030697433805478539700229183114509685768524047238115044556527975564980066301328888706682531326926679500122100474637477026113991706728538747589638209439305751000738038526758637275075294024376444719351351795318382500531465367874007710669675662525185162267261847956482749991567000178338508996559793101756539562353681752618133926484099765820375413606176767848838854730174742884161486646053349398980024137028141651754294186478063311212931487268570867271921468032628611985360813868863620907435137729576455121639021746402949709811818730814817779137737769142606336844748184431212050215835982990673676641949710328899395783197005931634640773664342715345745124537994897821076216547264428840623305166191942144567788304402407778230404131000773924846785203945075701210804979972198832918077445151601052076036420248074558389461525691297243347907684810821079900807334781906992857958044897533498615225735477899118220848855736670551281034020445761930365455056127596847233366551644415585958371427527468389852897192821293357332270768197255123593492212701315040362430482747175873108731542765430426559654263967100806290613966262221855459054787479318865053402836985228915045875850350623649656009800562081798462888219764712259491903436910807494443208371204386147776316745342502966013700438130782154039561737660471070555923696670143010960775189926636778502078893729106186041554994283496690476752554940619748833200674004710808886668195424849421766960819284056824334605173681265116611314851679791763087673986142992178926434769077806325337860374729475018715365018299819247753907137581166863634615368655755939276203717206053108802714584804970617605721994946910520230097274447056113151965368206564534362206553176493220920704173423050696176119039040430141280989359328996834749700194531464247497548453303380059394184149644251773910802781760357536772999672923958233168231227180771339999949826761385851121650535993280288006954414722548480963397370304811567357497310329228553291524853297989370186926184710472419529908331852924823721843155947284912555755884271299556945007073514663163349260343060444174389410867950446216628946129339117111102522158017468610140436871037414250033933031925906789275736805786841535034311485051336764309777824875847343601394365233446182784222253913615738941252924785574087675584694198860290086338085201626034479438781906029871582306075462455031642221531116180647946284166900222929970377298929176680938593369581826582190958021627807619597706906951904583255399569021443792205031769825854230480473337152138866226776169123973216888685682161208952358688799353378483711980189179590784648092299925446256536779498016616522730582256565829831621794995669366963002928389606610264536100374612957186462340980160515734471640037492078338080417476804003525049368543019756072739790715144215578632477119791285146880730522215793930665931830460057697774404287284427413350018966616591972996463204983107522274157478049995794948987692490062262690235319170042213908700206537706851096470598479447049582698489219641855835337806211599443225816995006175393074328959326034898271884325108480568166479447156304276123821711967201447618440367205114132572163990399606586718548385385754168069907803989352985819872429290514131110753861811321223773729530050848188499147017625643689556953799617208987784578834802493155364568094317725098520293811301898593796503056888460173922444438985064671279136372319879247874367746639316097394512313683525889452754027645802951436721833129371721350518063412309433020278752672390760937432974266188708046180967204323741935681018911859375178802224217103598713248184681352735073321056079993687308949672548621830432441675861328830787385919228499547684387330246464025736238449147876871309339037107591011829586319663000098265485013108703771751773686984730317786718442527598413587922989782699088281297170881237590608375488833278394894617580542996508112924008341401120313448830847858835444031730586985616341832450469066531607518782470869052599115957764210969393730929714379514985109508629296669767295089474826411408355368415275605482479042736900724247125769663408596887002476355477562948846307158804016443086453490395302211382661042131357821057426062601221227667824983569818270451575360186588914177316390725377819051120207455374174813296851204491443434274840453269596408373585706784117105082453233258368830688576186905350945533523882654032689742695998225186887799701296080353384163833493444021683839230399687373273650604169035214697610688611565083359267447124319764811991223688981156381985922296737681505134409029367073487549787337523153572343306166623585852470642437142814133526136398422957956901874946127783248389303374451165062258110785741603836451257002117705980765384380360610015793606549057618752033285359240846719978254266235625737861774176768786290168552730152397199489481214044918077361034001912854162461716238282521694989798220400619376657472892569113140851535175423667044291371012703603771528724526162890945938471681900470677231829072270324696374715193336153357300700603180756535083627472947256455271096877608770743044851431387563801179053623203360489638358259717181982533799701688711050585239719551792614280328074629787047776261172042950104877466024068839200277122229460188422182481374717912100936069270172236812040147895868924534897335291194144461819184217326088293116022414289437166758123573064427879605192156638436200279341523620444514882584334261811819958583576762565768974731821827997460540621183889436380199152665192909033789273442332844353353427390944511447527657944059148875840910499228419906424814698187605264180491097202081673289999892041755029397282029980901862597404327185695951607534029582247434009169362711795863737948912415270917179236565014957313023989114919856565684485700674423071282664244065536734823525024785000075982906635330554845894884073865645214741668736691413661758497444664979902946848314902984560734562940537803929717114508244112060353651325752359327030390058776286318024548348017222248540921052992051322149721232833450654885121004625446330278274888749620274460211377618215766192603218012546050601542864592526252925221035003920391385205953118158345988035897262831640833124918724817510222512455819107447738346896609857427213336633647653979893491650093706239292792059714353755461469724308147999762528112870523749468569634353726138513585021424427224583763080416579549620643345294589332521993753648428919397692443295165812383189072686086985355261939167603760619226128082340970645526493289727534270624792861527285963077440399827113927699907440493541694505440837816042864518461379777847422686118723735361005501455167546211773062303816971765944544055774617870171452155272747359553168566611225166172544455910727423445981383939352676626257293337541815692252438067358695354327578955646586591384851315232638083976238130546402788196273311764849734179919740723804720411795718500031688203678067011971168565863681355994691766073536772293138203295282217507204040384800403184780582564964608486332769656887174831573680265615638109727645785594102753011437964469297827687865649265593156196314157656678988753429099497950705941467211327010040650944610986194849239272149360757803214404465098519950322582999927195381488862800730201318715359058418558686795171190704008711547762765727101712830245568793135390867837522723077924224076396317798005870308838255841220233441079980217400596432235641828995247757017200605468620196657028163804135003154151919583714376196161232622448504104372000467691035860772114775053292430836401863579150304463108828893337920845337555730963619700289423233242030578824358619575793717222682463894995318385702092694600941586597141912129044309399746858819105149157426136951496832641607993476435336840797455592070874410729052029473317674377882953707858449622935721307020813081816671832371107891248199059221273605877520104401829112067777700470901934374091713612142010573006536661013157468066905040268271474334031201924275893915808477658816309970761402308091178280307003236452064099698350540534884571054569869253593367951309958273374276259325903521159767135450554554620012261999098310619436928782599993267648384741671107666755766401429430074167867858764176472935455818391382321296446260287066598122630246693253696038669020338993670674285595338501818392736570318917222107824185757946973027802464215543945891270744048333377116833503069156550059291378654533119176336668978158364239547040970342881974313096098622333590076983033875963612336067258465914445644370081587487549559673219180791425047329405950049562208861353936513300259155395862479059240712624762705154717175379406757350436966242764889425422651422367033623598758253299696797737916342243558696230988571962097303330245036377650525140619351065802624819231815796756958596950309088730907912014994304205377674248097739583984444903302559005379003857656203663755329092543355405543068801887135705547307896131922273661097229109643336402584458841975864250256170715311006003764420050601898560388138357989585298925817319631294565116574243560038633669747515864534277835669658615946038161818726063605310387740648873590651667726080419669778863475015726495984597052501154683897736159495866791428879946624235491698031692319960610153401759706623563286947696058311971683765886827075652293810613502583324819466065392765123643639140086742727040962003895892017178509892670939394183551536747413525756256905584325455856006426795884572649549105185579065107714220672864637999415081329943703811138986354753587744319183968540323364280166588905918751832357078306413998182862424325026271023829223530320111761794026388033647182662923474404252977642697331177186700224215534330852541343541803999191003184376885530610745016455518176486564929690377263483423783718683267293234892802996189425931592933644377405932923192991839772451542441412240623278192239230808183423551848279300114559107397065997798904831393400159788449229310702275230773424173163652096418123011770143459608054920231991052097692801647130784623843699205724664869183883143457407088341016010658420397417104838972668156293231211601854629933953540146713387711740989361260698399654445549455320705222910002682286057172950397312430603875381368124761211193324813449932950957592916763845668592506971518297251199574893207774062675396381459893214553536821406747262198315409675310209261452743212220502301145042022059896485471226604226916138371940506808065602117873138291354980021614720986441662800444366815117357724523688078525118732586807386718749194596451719160757358858972198203683353866889432241734116014623199275394523325662666697344319556074327969267145568741346053233876681381053978329161422955365450184765286285243029498159163497649306213456328607289115288733030658620269749302346866991168106693156052142405893326313860427727023546999137137920549360056996030363298828295579552135104388165123024314877116334450459907498396035012752330527667613838295658400924039584472518304359223548703815535123521020773607531005131682864933832832048287502298024502881130860603747939597864676485896615790252290147182483666110058755393729712339655539247178597654765558108041244617502286193625997964541273652324514384670409038946519128309478596320454602725247377136535136394268931164969421412327345549253267601444750036681825418516090684269445571668281906463431146305978205358043465085591464595079030516250363656656635586180908018109040270379362788549582624119972256567555102384877484446221954832584467987744907188817996072395390564265083804325140685297479412256964045237496830151863587764578099401226427187299543627484998126943944143128840888072828710802311946560123512887030506648649622347396107418484111744878430216631644803995773293645827794033446740964519603867731693644325455263725833969126016449250144441337943834228824592808591235425587486956693772715784640285373088510601532807789734218521590356294629422966216604001264661369937469077651692859760324498396806833041686429268593880089282174227583517188748655242721050582715368226793344412654489847999190101035736436198371197129431711206838961835419545040037384652226720324655235053855256184054426753953105883290663543455210892040874992085565822150991748035185349947519634622925714765214660190096251291582034654418697321292089101534787693514648545184039898018138091247455787993543168561127052955038019435235800795810125138109140623523622617968247751554057207221675500133414940542478870109972904639649577772869537048351694386844182572871709211239596269919345539412024981872885267253681543589962823204014411533357126876698758555492730215941508651837850009597580844060385804997668696750695678603643991667087565059151080975155980592199394007649393703504214092933182970152896012716341828608202809338444168847145455505271952600680586601732791944862816963241775974210612318584690688201729189569095651915344163175936709139391511981598724976802771998236880070612507243132989069247594040621133734859910574400334974373686715340424419139259436451482025811847807888479386013188588652766170519347878880895223417300091361086600600776794965296511286764516257212158222575976888463705619555013555158692475806496339232992953186352203126786905204013401478273085864445556935992395312411000461986983551464210840069634449287795610310140312770211729880762325814207850317998948606661744318723163727910435821411465749261101653454947913938543631005471379692055468574095278875897192959654950411079721649376764566473400849676695833046882580672345241081242218489684978501541566439690513660639516255386735992644562935517775551564899586663846363868623359405668731205344786571347560365157542175712999755176400226179262210483428645349805688298721377271805777757639777340646921758201509459621086561520532360325076865754931450222001586230210455758272196277123315882446688675304379391460815690318777328839069170545142675122306820106405833916398805477592857042991369835219995843901367970224190619964314665982776014535002678499847708494559377290570723384701418704648780990862365412947787667689835334272174753901196810471999587920053471474358159201679670010129607819482692463047409100137746900494733189879646176415006352009952608145998603741418691740088455482059117352977499079820985685833782225658878067758188006213761485632912960788020413935560206478387784866728144522233297978061141442990990131869043976256270776965863590542727824624717863461377925179531040014625391021693685911570078755668547662205657825750144056385256909884300320865075586300330738791045634988187844765194355079171440271598509605668513801607179413632511178639640150238194989402957346804824740219577239306467941215805821649282827518379661063579803049483164179171953441975657760370799501478260495906769698823275697780902090554986871408200454984719963256905286783545552320000925476954784271896846023243593192946471485563176271644593649365498295271374871422694177763640735612658457685988574702396530030496039785729539532901755938032112125949002642616630885997764124918940156682001637280484171725742912748563787395459440385113267170765238121052447036480307362236513775629397734515267062586531268445483205897384978011263382099411965730459401196945489996073974166204723449226186404883863260034371167343531621089424773788274922318366949951251622574202750169276543219977656496892175384551543686447705158746981786679006902682133694358476508287994529371845074794654793328901291539274192747181803388460806692099412276324888160118465935233039020472266038244237691398814083672036804833223509068862952571514440349314724053040592310333716869181564060034587235065601825441060804391747887118465585896566157342906956264747554726534991150866539720720006398465907752170351130559208247157311684321558876291129837228671413634873758030005419313605556709943443079852698104332568105244749012883725950297495380377400139658145608345370469994790193711952494090275203562128302962061878618969086241889565795191120135125223086862535367803251089190256020230793372916426859195104851009441448420187836142455129015438990219626323818084971367296433700589896104962216145148197789986805258322866667680626813009530388872606510440994437684766318687185687052109114178163282991065940229097119740764842164107485603585028617615791770306419183129889943016684445601799730607057702414873976420030733865885486642853207387744219564562952654436404568034944302956758287497371537213230980299475698508869956117183880042189359882371229209768127052035458397188026877151837987493636040288146048240830787411620770815744308519881226828817855179991200112680732489326144344504223972539440698362488271078301252346632217631147559109374058897111539992924955756555770514125878119016747020399038147868782302432237404392839694261030076191892455880518590409205664226001650446933353997528985684625304956081691967018559155580837448821715613928611809489307698176627634205174453687244638750004287484650954024993270485448482256425319522012154729383069419886142485520579850629431325444603949759417860455235297319486697777926781486888743918668971704119582011874240730039764559869540263992439478770160266656971238613309028154412577991279345004927879880891584004391400880082662703011770348513415418631681382234169918591917107155165471038271873698959748711089879950549142981169630916159209585745145008775693590004885744984439041512057746993246160479863350909486638531662273058451446107330533671261800298771358275048446752614262331507448425994915053716779640028873686766563107541489571794997662274794895668087858413853784212126808728705248324429551114787231636645375233842867177024149365224177368103347927689746661072598118788293614424844383043931038467921435329817272083395913352772602231035340506743995287777115746919401076501537352984365001869714218080378744934334049417910608148138227160545129400382687520649996793120022372604242801101447264152963572743078773229873811790868044308129312278784245598235338456083048343975178322184525883750142674207893571323798549902336812858196627869844990048041263804187713786526605950698767231681883418930275823309958196360725590556918874182516105229190231286291664553156940788091939734316698983552314213571007438991723315252838100602983318292422178991411077560636535447182597955958860529826504219747257286280129826402411760395785177167704231688011327047990016049377330399529904314327550613517764955008018608147666112587861692025480805643442788301981601406783081769410908477960324229530480296152182265868983422703758984424376337503188322651980131525170946843976383788509815192704888512922302577434109120887623690971869310062936521661187101682658440303482064216231086663664786924792242890938928558332609556564065797423182244938365400989642108517572471091358691357816155907506773172335656224300803816513099181378850085389284633489505982191075780150929964973473801426856458531774409528939886237475592251611788713674027628017926678293806605283367928467578684499716136710973325901871153268309654297612626969952279661624786577285462159834660112571292968265081279245707009773927791493115865373691780280299350808316077446640069631356469539293303711707999354061590600529925756888100366200300264641225249924840245659393293236789519336177537045801067271813657994552796896077410031696498029185897814258237937197336422875654982899240067906967415895896687903332066668940241513669878996790040087179523140794448455790948512231677594342818199232850900910677767718137870882239736248868308417087607047722041482987278819059014543989615568711893078180581472474479980718300640504824088140555617413896775168597207180055479939131271538164044760588412656116156115860709176851232380648087230805743291445257541473835451406174700133862844971429864053516491511053313152458806356051201222281529825747790702721201252500757149479246683558329002750251703311452496617185106112258327534064730307677472470138071467515950321612620333796378203728345053313590657837293405243188656145140446453236656870418840618726673540168856455732812292320278903236447902438544311227333847834178269008947942919918788911974766767944309882351507589142788053843485801012481722622999919367697692425058084758637708530053342361269038413230168197194040239960128016162111950482980115100968782454125298932688961222614601414667827011162998809685545167786582638721951422856267360336410688086851385074977265157617789135358330899731835779465944937781126772713980176474347327248623221136398662437871070095000875261645976489343699486815274000570531864932597464046160503400630551970067175205416913139211560491521482971540521370988749646373192126885404554346201891803154718642655019050136845175509807720461538095810910979054678047691023731305173844375580504158106825958238785263366162224541214551774070246936729224046037699632312322914609539727826928878628276176988037492127885743420687759312075460629253653948577148204499188227938219303444859852066742811724474567399231546202788411865951796311747579748952027072792702090050798377825045420428430575030683511794172856343298907291841078605409445484188898889754064406150403122727168912051632251789654559923361513504372729235175575382028375239426740371388247461014806916923239475277179521648543455153578159709058173254963980140253424385756203892324395613471497747832289082383542988564879042652131219017131290355532597623130790917972403286021667628787591141578733738144163199784460238173667601569182472976768140388539364194083645524861266380938717589025226028653785099764671731354013126797990632390533685281216774623865182610320992556161305555525578006669232185024651714598885823064487269520377926849759057410117585326988934766402539288823341702938567826368960354419677590972060580967886684692801816386647064835008488102388674880279138971997466250914065283614338689200136287216183453099523449707727554462476944275244534254886949273782794350300769963789785106651401080386222878844519904680588595643625856523248398890421607565306186839767467167739168126374333163610100076944419854255668028486089687770237217717933627886839953936198433357878741907259776266842443134689514248593487268333117785770694046941898798585608980961977600534563839480042893994276635111567621253316643557681849803875338991484143711155367599921600116312428101758753886563854972305846861846050791621633771022926943630696386805082441400064801849236587644655997175752553840184269933783015369541012667566883227086370636089339555786528693083670843408137281474843790725144755941261631811808001797864540438429377023740569822745941421378619535908376033697995649076695379503580775059232281536380286166151784700569274197650914909729024353848138855182544011070616556381539153308630592624722542844310207818292888111033140337816799914321619217540430151780669034737529648848696531085403943870098497451299753418766973415420492040973326563695041233271524294306572256780572189582692818287210098493280916106722596550093984194829445333967471740825856340905934363294334336039175539090155561878850105518307354374476154423256810594243918360899022792931461314634972177351655291391847197391217118768187329834553823085440376394567062495038628380049994606927219460501561268613592991505168857038008247121911291570366380402169154673375131093597741961328598597634991214903030376126030626156385731210518780467256562605524169494729370679970439294082196170422534624270096585424412486390256097159879164455018556602133798229665779242792191034403342089008498915424320409701056944721321841818473407587853250864108565610462955150280944944125598934276062569608298081534333490914332141058161543890142534821543921663919121337825884703152923683198828686580714898276303535369623769713134330007185459650590876561882286885869601076659078167859537076653994480275396848731630685488635651645379551165180505760568973539889322375726551673279001236633150265444666074112901282519625147482308716901116015150967650548163043231829312411129173528849447176471156822041503989636013993917129122175164607429188757030439208725648933433122393943789870406152845245861517814845123429552518896089196169654978246962614627193263661926285094744231718512849325461551265775880171192464604711539258826188322976732263351410145506026945275406285200761957432586359888651951729247864791381380978786500305197326478105082794519613050796098422313462997003824725431636684736468026990463515664728922589204386682028238956317305176833638108392766761014277714300599801169431212484721929123933015487390741597216052003008634708696725384647340208845083076001799834429241269957652638762250079961325239615820978482077695364908430159926890367063872604713142357620267716927046758234124906075276052097797442124503618462442080711634249305277264437901840297633162279923999113135447949265640353547755655114562778968429928617898723993795871377837162684642937883918411229352840671749782580856600431921192259974314920208932155010385969086753144148311587025408201662683744086055802970633088665497033024579978634504989082238772488022499067056358389025153761349666936506221911421537797386679617527560922324320095932075003836588328557940862338193538364987156277666094914809674452165398375696030018781095279568959026109627642286984202625932544033307765312217248020107994262334275367759041669842069343559894014336966325886268014189327987959943379068833126632433688691625346253181015784253591446827381477197845957893770279964908835348633684906413872601032576115299579582835308746472358768523471444580704479499881328722453292737342000277030691679858629616484943277175376627867036105561129882993182302412315970726681620411471659709366567122003644088198754855464298900997571969458280538619665979206951204438104056225778147644169872756936695579984508518050612142538286780564240087190600606894943236412833214614798472870598370814155372192575122237088146385441983293120010009850706560640717149799658571268115473919934402051779955921173516793857458801304903380293871968903388524198873041426399573517822899579492897368460645852557589021197435974108224146713017868883307073200011625233433140252813708721218933814655252313169975998385391287194270180405026862322003763475015199358929910874954188383880006400057889731865714601169007081337864021987732684324770438622107353433987061950991418920003376193183986273773449894211881026053781797512860171537338116281357015194381377273307424694701250993222907683302219072945410427176052542359987136476813497667445447435498690838136334215417054450327857143945747776935028016496471045570522520555325101024481523363686212456864095356180598128788433497899663481392132126157442485371711051875555134749596077502297405883477759833296563935259644470075528190178170465761288134656576966477255759930323854964056933077947390503160743754325984428236257141234474332511191966877043584213818868676463695818023980830600565685036294401413120448295147015581471785636797515473516415664366828240589656355120822013520736937147776956780372205061406740466138355529775680001758684185372430051511202826749480473199979948948487073857054978887252647488469746897876875842702424406869178556855593246681678178310627092067913225820890428934181468718400695998549266637940022534514596970557103410741893160808339282000427907352772513778574879269585776076494598420435190160062381692152052266436449391842694431165517271929371176680245456437299088103333670832690703720299783640912893294401022896076142027347881658803287143139185029125863526283671374841660717573147464250697922861612524576909886860038170222343158060964686117982405183704110555064105069077055462376929910564912195981735983028625177639798384006673307442574015044427592027878195411318366738574362965033401916578646326133939400569398347117501498947693578926816454494879169040725537436943612004983394401765005544481244206172795249211793152659447208786042133933435358366092797758510307393399593548654356411446867936876109316206807541968505276554205363571304901924706705977616958985000736835151546940002963742384862015931561711544102220885655748706137187621601128329997863689050894829669249033007645766505512170878485702483292185700426639756523776821592578482066680056530268204863680291749088975445461635670387269685871190769048860454727531283018406409070783255174723550454133131220352162830448165688558023348103437110621195829015944358568683351939869958840441681497878093139059045971238114353505648283510002376169111328141094203166255030417182533357571399475912170101997735182331088783408340268504957356512155820247898972976543083491651599302694061349432278335962018585828225445590807272865361228353743510646692291281750016223611956248026839099603021808854287577436766248988390403311628050693173022918215355489251009495970179429684653156927072690060428726008706542736848678346119826675377015172954625673064551123538561213891405340669213698689046641947350603960360032289651794270087079522638523378283495679442205075776078437349633554902845074799864860746031465269720901295496663656501927689822355679700334133735124405931880939299661845718768618925587210076377148022644598077105859294707681689859355002228864884243612333704327888985861115537057296873013067690871841669526366978178080142793545002963682298102496185098307473378940763443412745252368680445996598621751097305287167685969851227872819402850506185942926434825534209403872424682171316188910009342509351161130755354723596354823431029247653125567684672985952785994149346957634872601538142260656346383526750567660711784589359943771799578388626439312934212464783314722725562138024386888747463907324540137139985129194180589585961865755791152196141315690468824312959456750743585989275504879648978561848755306675885364908034437005847012126653430350580723572607525177468026532716329545035162972180102913954823345137280399488257478892542528424436854578630823726149946812299951845954290845522045957196562365832636158997135069407597513425046430731216350561268977063604663075394178611602090443247013831878042052350164207881520447861319508689614815658617474449408873283534547775074669660177003245908360798578354565536074473778474114423802268383558723824967293167181504937544041925117229115616572880433426125079562952311831730189333005033302259577864236507793000864325088857315320803270800642804909716990888642907294266072788933297831110810624884897078081747404419539586056044850413120105378094572570679620152055603181100796556079464267528582512603325965266110348869447392445765452189950609568327675205840806051808735117637645198872309961168624423933480571884245970728180358621567176051004633085399317209558800568457871906835581882403128502970906169212751195063394063530465008803894692602647326263046243739371038120045828616499181979608976320716426680145551827916156302201804484689865273015342377555614715863067506173803112712808731896531150443259633240373746140021900946473702463612914358275042685173779092357217584614610836737086274425780445829577441696002330526107041678500771296680625116142327640297518959015909927924575824758139245502781738059535421134317320966170008421325976157548748412566863305822082523579312091253003968653704294199776326464249443079470483961755551626799496865594284705698623806154375322915040410188926269581867812557892107046366015322155406250151697617842752410803496127313281572658282456784810850406396577718034566757720009481189398165047267730274358427421673822373401024587721896275895613622148678431049043666122487660157925812294352041274216907804093330071696504889373283314603720063677129869438500543510549910849922100433047524052340632635869072433409067991344895888876226767875475825340919649644353676560815017744896354699532767698770926512246335830160962875980842581641019361303035459422481539617028152201452508701062527904951665065671881427732589091576583611997740458001176340335675752712883271697230575509022969562695347905932181994882759762173263595679510235905776452389334073558186248433843578138250850653677503607645369579057657599287527234528322785313636869679820764124791363903254647268864051984862063392125846444264914777733473357107707552651176895238990350325975996251514145679079790007397784889831611728315678708755586059687483829433803548668829052584953348781537515389159347811143363904574501484846229995950257430928773020728421864012499449906468090679302064195529721864816063544653456471619712511427173777855620556927712129349126643168002727014404710787500785727972642682598803623229188886804719215249272495471172409065074102243394508342403360818682411304619397403146306569782658442079383098291121239805959865211474831010816846606004032082182081610591007411459072089424676137117114538268272864763822333135351747544597541179915025282346975003398941429726793305559854487806161939985391901612755887749074511361428505453258597698581668968907322568300781073698190864404222707354809361920390141999484407838006715158801798646592351920077962838381504402442869860866711534574995917413783037364465753064574257921219087388108960467514937252703025501282740301713644589668668882898050653122763013181641482587227085498674581418488145346946678202458819917723273827102715923986428115228388545592485905649524107156042985799587564165498218766192013772766780083552707919757007923984923580262345405783067015834977756941309963429796723303416657560376022051135971598896582143304727279660324082100409088827126474495977597658585391487694030114376271751016488805258460463233730135144615315634005664544742280822680841411769371207563379847775090538673983096631769757624110586858431620795359264597216796067687125527366654680546579735283913014907571565966549870595709163968961316450604065527256744186893037361815529781251884523013337566843667621644097220680858122231754932697080309983732080265203217838965298839715454007247499337712806912731493483914739015289287163295373796564260988849845316738508986716344974550517754738592090398872612574139562567124548649460955804820768308119213450798463953978687360347661818950342339038305576777410948877090972595674723677400079256510510605691709638587692204000233725496509057102913043171303901150667372955266537192266208276495066313860259843570715123806647322973005889403422344350275849316998273952112404806211193680686186621098878932818696754065063383820642727780518387237669404992352637385332509635884866618150864060866002855927345327921795122512910271703301032482522401663434161770664600992134104534977361821386038547478218899675081903318396800662459548440933371669979187829403588976620492379259769661741061117243533063277361696999312553321504907103852049739961767151703452523338966559779508501578372622381070924574508135662400619442092623170076899775591750306419783889066618834991857863679996789085901708989802338737511560466403519527893665102904381342497649853606992877434463655824639328413943961883551588714195638916049395289564166213131289551226797454269593336490130470188299983927326228216224825941709437472201550532728310539270871340519677415120701223807517141494662220984969094436375161136661233386500659017008841586982885639856209335391733924303561217209928211117231406562077536606901892070761522788458549568180521127425935747408424762512714324680077539556795633502148284850123479211285903744031687924674644740398658089845808550526119101332541921067003569942860251304692724602257719740922874877797794127524520802543767486476652216898665500756735040752520812092582604414469097092836227542083573105675776828602418471649267516803863324272145000874844216861676696074650860984220983324160121228165316477034815279720882325057625510619898712780842398936472107141057797062093196874658541656496995128615834429174716527146920961488857544160051782323139619932949422039373635702805658066660037534092555485799050651253345011106699838910100758517019647475230514681979582363430056902578027736858314980507215894031920068561568646148496741952451546659509671502369785154645592906561782986078159223975015172027745630302464269968602669274441431937281295933483088889855517179941874684887963068764890349250554511035930002606314353013025654780103978210017989606459859678281604284467097048894238303523953169134568550032919714659380436971037624216456740871512577260909014318965546635389526808571211879956262535139288010190717214873663251344030032403083958046725972904196276018898059554824060978644090045713749698710972776764274121219911626587945710489133164639635773324827791919858801631532675286976732651346275557952069481202683269192425239029398107396259955009996364878158730809171673056172713047405812219697198399023666701199540803327469792682789639358977895185710665064212803074408123233232913524859891764719619330769914323359367871381227297378099041157301620365602994356271560394223907246628720124937994100793464416302548863834626289808202678594284474311713951426062203177475517093854103222235796988633675346494543530503048614598648011243995216429173063398429940532533991814319081688362201871750443409841299875401412990001891854435902359592441136353711166910299575479896851521474359117500163275556229212923571653144588529043777894811927998258508153646454229174684890609201624047284047763622595085595205591276765070197161654343107547071763726247611545382199632918183569877288667235090193415501719239701663241523132040572296456493463616589074406074189801413522482828418756208941205252213729401355673445748157442294504800310937158612564161307383185260130034264903982773838767750352148991530597310016257750118876348980084226889716141501792575302568221166705897856969308105300473356678400721508873957366315481642755003681407534514918329789516182867672270321697959042636772037192275706740893739634259612508911138543293903439276492166314298247947584712528208701763129276820398592282752455999644744702171616016560205036826983959720596307216291384822138342643660678651224180936844338750792452121658479504290677215775966351831061464427964839818148996107831121229934108339429544075706834677865583692173432760697055178121151756702971794022846459126605462628034866362647434546479821287841828945994523151818530126943508168418211086427724041165618199214664682424349975938140282327075752588484039520808993979565976965189255456739619270395759272240890522591816490395607505180627305468176605357552281603106695266920448509925713589422689279239367293446447150809641060819378614665288900693161160289463783276484077405907214727186599368691380936182959735465736659456556949026168422696946544574001175401831657255199936734188048704530222058656588019509168365424914695070060731348399742539296558801293277685567049648304097723866925722366873949514871935449337027794379797822559090522304783248376084551679159484612221175408708334435506027126875411119800918142292514950881413354189307829145792949216158215956426680560509978699290165194063782626906321822472942663333452076955624025709455506038217315655176801538382550989427644751314013496482633066009527012099106458842189830521419670748195660609634922198477188675597221423690350766232734373586006682607724563403509156558186254216926328329771513809921059849535379471412572857471361366914608460267728572061849790267479034598768593235240285783899117028344970343984247726465436408034792205713932952706676622068842958478214269141164901268134180623103772650627933838958825554498222389501255168587113454519735988029950674169474302922930842044983135205538106821206145329994600901623461960185832818914365174031307232656184277692661843414723377346782459548944908086526203098458154091437210139708797373593514123391774237745318989826250324775668360104045996143391421826790589878021760242049469090048483838161534613390248784539367258134598215389331219444926713297412437619669231120608247867727878093205245998927123311584463446092346036581347661140080462659684445750062123675327444300180364322696663267437736596333704661958757782005226847138110121283302151487115625870087129696044875691211976191847235148818789339103949233067653270891978832358182265833653000413159345826375666614945338214285627318172069652672450905716624498568118959168081253258949778528944406244484150878986927269700883046991661340804534713523289875391137258913113483880676469325128486361592604969002137867638431465454102825398734837014605063797482660850980244554847195375756456588920628531728716400288650622545126911157801153403422768712284583765887642280722382787362141491826082503877618632648045700368556418103307738402966156442329851587468719981421691316315831651156639456164434384046484131347991626477693811476537539190538393308161673781313912774447172319169757923936839426794032605039640237800035450691612957290945849557084158635327421320191762318665142063908831508645519979820340512333512915694158704352504948471398741979321797374122063346065411726197852105388505577413511691268091843817042532817629155283688867815634688002725724474721476043234788903138449616388233727170650243067041523746295691623746101326003207327430249400094295955670106150802802695008977350057175804582548733655235562144870015289366048344807844683758457812969809161495131019350734927854441924091723032427087645829191035591072408745337856750765050553604647191184000763182400009912216365547268648302029446603947248980833498298938383453329736287666433263981340191414390764730704189242988190194032795130502601874459512942187190543687303372374526261843899058845529481923976996891438251305498115701169401982874853945682297797244952721929897143348342895761342611411523353877168558513347332039308175056217481086466733077441506034809061436650811150440787881982755909872663912381859412387421596950081392568846953766961860932254865508136176978876886296574409558067233944754561691536602000101405576182093704691189001303012712075713070439267289895536462910698356527796430688701408597723159033693320490837795523615855776117391413505354931089319312613801870160277515403311101086632742999739527136424783622220012753076232540341667284626574607450679389039831699037466391828552866389628632801431269116164274793757842392983923192162810154490475353260652255052074911444420959410754176875159704825323286014100068716145986546160399363360329748043757093025422813695205709862731346739160374015274532560766229100407584096649087259634813382136466748072633543953621553675169631037055952965150591313575009663207520861910089938186311241140646063558805810306482256766855049863054517339758450098968077683692168201218746859666031685598031394087832947156163564020967387376503754645961838547057730803691706191297995903560317378068534234033782394131021319753069587346022883655895130500114021157621298112352227218384740813522026531462064426889998176026977368136075155248640149506538344270471583999270698290465874771656759364986913388867905732045111811024356116783117099572135813765483705451832219057234687890503890378102698379742570542277328945824980450899620364557728485147922842928202458744195437282965099762884684217351490223247441051502737483732774970094344178465503702804183739539055220876923640808798000214484583913232535235790412678042549207816594282444953497850318427924404110751160474196194626247230967333297843961232168820622567674076475019709731523198716647844886434273430415434141052339605510484167306696861400766708674519219508368589599873949010836973668056823326077679395606297016810568565522757000127461439445975789146809259354376185047773528920927055906002370583560023847098143278835390768284334126942452244663038580875222694478361709819346015582000182102803077662354463798289328587303669823232791500896861748238092467554298732684698354812843484899107837271446181443461068583309838769757118969137230894196628358147730358476413434868446496314297522269631215826624113799893616014810153013385761534537023561699002762938752076461051801415382543340250869924395325408829683516352966740728834291168086044206541066942169708608313520026033124714364827417188406849700443200099774369433892424050783712184826752348526251535107084803348645912270112887733620313179128259813114209420994970024753203787191706235365424764438523860258596854528432894988469058096066571574524886895961750003631184499529191043445366465523890163500007356974036205402004556003014411649710279868422929152211448998338075509570937174800736725708050404739801392590739792549566850074804259252326824461470271539995465888953779043823100378159220972977747850067920507267039496659676771123832349306852152997919003074583487294827889804662147482393889081968356641429428816850212778930311813639241269002918808345691834854175828365729766506066668253574464471032383672262578254623303211547029073162868168674745237392373800202613999039383877159410025983286172709335668533120881458001378326254306891362053351359460234994530732518812617542053865373425360335227299208138248878966474043231090869155367799433765851333990933539098536735558453923060684296790496001074437295831754256935563430026042161207084382896700533384746329002731159531538009389009086112175769698906391815334351832648868741218707124805136988268040593294138413504733341592155163219489420738807345031561595136665451309061511842282165732045811156169890049016764981172402999795699404839462100351446012327545730957658760485956972715437953296054443807777980056988081649988719040041435417285823509848304166269505536895045009618761914825886445811960467045056669477805351263777990165509379006142409671282199127038253065913860048222385530387756653128400990259746931734335273399835935140648414138370107186041945775017776945839708602354041365534573201394863730935015429189237564363930525479804772939835013045362676279331944062645432813167954783304697053155526520214995497281574037575903962392713995233539729839332542122607679371599965409793002694089123187569893823686810867750433818793559426080692550559232390035687892598124911515388072105200718570793327328563904338981021751608218408238135920071956111321338615822328303833237256445241829226099987806804495377025053469598379666745348177512811583025751617259967332417471538063336206639637260418190573566797850909071936667753727488872143615422821526085413532086445205461563680894490703187690880991430894440524920507981176061633441148094623657534481348391969086047099339388862174962601752665158471958654015273622359772113520373538180207921105686305679962226475698846697211569953421479767228119850429169585367172316386073371347955601535625036690565480016880054092235768292032024412544362951309061776656316627887428771310949070602515015458002770329189051220714752881318543940399028979528111672668416181235067393526281236737683410192185214372331854189587078889885376445909255539531041799248109063769936043011973277482388685676684914027596670723934193189717486874008013406326636332078840511873960224934016421661467828399900541558485808343371549255092354176965025158613703440875053826652997938898029128185405070561323277957043427784184864962759869057096577877901969082089534344458726483321364038167889756556135343591312938630483614767897992959125033756429133132907025891448486172281487321352096498735475718907721613396109895002920881228681387008073138317453857936350735790036641630690767777569313433389355521811497999482611220000361658948027231823286696029271467911873663961086557575369006312996745092646943193514815128969432259365205124915270054148467348364459773344888957798681672217683110568955594969027176042245422457359052950686459744421073862233738125171490750429862360122021597321263145318661204489643801041000704678231840993813191534255904061284994641925323249428463539357969700016877131138598910591546052471105568295821513775175382896724915722680661951922391734271859898237574096320210638174984890783648433940421590068041574897694493450928973304696569567010960448870290262743004233664328917251798975783307075284073771051547192759315197528029265031661958076342194082321949403669487514788707748778085491565562419322857264163708577095298796853186704753268066672529235355722822432016867460845370117856131975370508946349102987591235780614390189868133380914086436798003837133678597998023931504357767800188656975075152149962193934865162729829915040542989670491564228041170614218184163528223036567550909681364810237586700657121513368232074693699356923118258007111349617720249961324146941820184295597830630419789140024138145999774847082938763947986784270472749971152730819598285890687898964672689884791340139781047932435928943066278223502356043968253866803216560717764935575727420523900440326120941546492179582676356794587809413173646708290210283558439568164528241964287414566802387459596644265631284827488723007873584376642462707706111617005531336668805901482011917762024949870948180832186552460619266641410925974226441554301733755925083390471214716381069283966686680571226376029465181977618878739605763614277474926704765950576995128117107530570152991992752237238610657446483074166339936212920470420532631230351413526341577438114202218477739108758240937295749956361495295525840192339278959699016268436523147575839347064872139066293180763040899282582595040375968865538380469653864499353481963294429942719427251276194039159822053902387932245445540591743121226959156499270193165027183125546309549283696535538258653470948672694481263164583052777015936983875931246713078750523176356439046643608895640452171462675129387943960729630535426910785241984715273078630573280473562451949491954806458918488104858202111383574479353102044658684563016001494924424331652066402899253140078804948179523190952596431971294685054453317590184432777790346067188595655530862332922048716218687017318598414072237049000735255715043889216841729877117024720233712464205564466955068001984849360736167080124375919009697241388620722594062559598165930332789033785032104786484218640146115754457952268435422789406109071880297757486451793651086002648711367423480551128500116492362606377394218197841790705403236087889640982200935881950460215395636596295172808031033555912515740245392102741070053079406475350881527886617524175878105709148144267576564791866077230712801208773468969557578976451741544748312431247754339089413089205133745196753592649334761222937871120633695683238458535602708271612621147523382076338134070472224314324171111313707784276167872027495580013181927729538510411075072846118676362745888442068665282248538051206415640075696458128776647449120975881158092700600806413317781050329946615402826382732765070988879744542250388426492186529225263066102844527796852082323718002363241666023655782184243824249991627699206797099528738485750569151698696944443480349579610195288988908719079598607754565114071135780232319571254416653653560834457029510984080275966530370351384355705250082311527888623676374581273530875132026644353974976313621678331131757888728541274974936438113416535999472287192499454089417600516454512118483218675406356637540323737611408876697495187512865799579237716762644686051235465530024512956230590934356941482915938178960051351857532223482857420853606328104483649952924061675088479349829280306677886684330822711793703619626051865557810422414631585856718166784263170461379557893919589963807368072401301775103440593562249424565683253996725405987177920928446744269925509158607748592000003438795219724465347856216432713917642949754740561362806329546921494120007169173224041647924743902915947111973734832304548229219026381244319556314364170822845616542821483632367161636849726724340614998500435423983645018839847154943971075177086396173975971159822285359432619482616972492548770447023810990764359785738313159893271773846037980039256684418603945221218727656684711969571255453998937044303332630683086719052293828534416865177832006463419192532283839406328942948389186628385044185904598800926738760102010411680436929296872913082105321347390700033645565359351149540288684511287844333958440741251713864341812111602674002480471128907091284757634183916596828882434973428534504597329372087731989346394625850742648220294421496203202345170384763528641198606667665513397895307128967540675618304830751350940264964392662144175019105545745189215570845430788647978638451120076562638479028534576757707466343157200150524348428684908995685799821666542884196698262640373821806229256967346973006248665912405053474406040771561415937294882674496552213289249022885553083863870569913901543596700293688528322622476052299659246335670806021138004008306910882400042131012032886662413392539605018803107089961976726240087016499659176708660361512335614118490112541365545623006050237580161846449685666584582481476108407955521864988106083366249349599086373610225132042428923684079097681851029141875629053025010356126570718804265709419561547750279407918114531405400012300147163667516388748245654521399257883651834632734159676525219384537049182672856746118221949283013373084313838253577767428588340347766069274904176647923675796950505651809776249650945450469617417490947807386795223892579037428917099007730367289832539361472961262696759292446923768599053718883931152630372499399937945360078081784678064918210143092844004211387742900804892289199733187500096746468759796052658170854410272873111120988663849528573685334139538044462207880200972202926328225120448234681833515071687833626890337071572209282582912600165726280593212807125032317132653723566480266477599362388216442344807057710461059204115218064605608593400234834977013438397793535102135156873554764286547147038099643144858501748981288997202268957080348407482253334829535325169806621568985182279870639209632800464312996493072798671892406629294744199302376239873587914043542614092501972466080768676836978285427411404975816240713106737151365806711586917450945724602695459164138091062981202608957695534178311107832261366175058086013025150155553946065314919683328745024042248713509555265047097482827793196165755461473802464049935564167044977407549665617580889847306914335560038731893683262871981264502736744951102886645217147522314957077333909522311535706813698190653743655122290417221794978273645873987695438736612052616080909303510156434112999490333793419156457978253470620208108181902591606331936525891042937346985415367007286637150270115929234897213620405632247803317557236021575013151059634351960834803430948301469812970923362808311056053931911579738704137515224926856513427942004707042651035675134263492637436455015456513670232065453664481074961941884748421750707916024290011397901712083414630876358274472565623313642680815503688707025749709194152176199601028982268744371947984106326870751174023488704866183632956348648650926905437187698792497827092709399619198195213103037924707598251652817988279164333175833144384970474035975665362752116773462174679306043280489532757790949461697519704258406749177406648418742450017707398262174455322183854025514779949187891803546978193551090855411065954045380394840442551911715641151116810634538402827811472476674024228915164582528802142381421313380548333293904810524336262034613906721943280824979876349232115403461318511496303924006379174748269983677589945863636272225912373428334954582236738735862282244972563550612859230776865218898288609018416608643909931066642338788627129640334729809811295725164204124819828108935307625870182962012633365720792950007976389445415567014201852039875104801417975357197445139626850130992227208186300504002398013008242575180064920794692888558752358298083041394213188888189495214219633394306439967939394711844919992794638596360798289206260283539961846891360363127201742354914422720428930246204916199516687173661461782816846299408672284680218805004971539380785500108007284905896163072548143459392020244753587197166234639324651894012586557029176273369452904940991852677806442762369690867035902296288301163520466980902173498026013714214994112377780345647941144265954270356670206644773766917084895163992350760517399744015998854594356960972373810045201117033404283060606290291941665374729808288746461591388985534788358629736513734630146727592852126899658297252148112517188052499073950782300876197395104866467200974393090101317803558589097113836494035661720452646930971977739276016733293418373896081730339000821317834114155786806498998637561096309217655335525919622828357101336245743148469435631690362569781963513532559390702963106540480856690378151696288527850863525082140920927564785508807502824168225137152330198706859492450073416626446447019414164193266258855854291357127306964904105887276429514716212977468468411677493603984307418757996697678574663233673352817841564861958258087198787598372762751427168984548332908066880422217271793590958305938033457287781679742162820635460518367199725260041456582542374551238609080747990631831819750230665251826505525485990580485034460840242562759945732406679692134823527777588118293600213238383246628226484456165559293640265870642877740482626750951434606973969222783529596835963887954072072552449324917710056016762969907363199529255413812367730882181029777223765646394534294227090456784070694218359433036866192998457125761236267340806648443395216271344177966786823723658667688964364297837466105784975086293193057319398548420629369295587548200955887983590543970377576301270278300141874006371152599690902783121830575380633074173973737968223346256025353895278094177077125972990202912272312805198804447090472764470441317594684842422055550167972145591544544218084952669538006838330911108551895790634379363690355661724717336299541688010002123854674638420903841029216477368385100801977077512215853638249255274980980893073545990551827694329154908025099749364620106629612991977414169277090166961765200299710932896426780948711994851509385744716095130479532747369658206965067026434828524216231077227010640847884337835608049985248118288150767507838824603118866402357212904642856974813155940886062391680560484724794036689963343253743468392328004639512872117878339819387193190126075016797753779131257370530276822119080329547409489572835615698819134953387715613601442984526168743681234491640902705859865899947402703372432144498411506285120689505978691193484073286468169104272166213472468527819521459489885170365629018129655730843601705017431594290984876987988350861656185630710899475607329329997208160053282186532740595039771733869399922934138551951581644835257710661698219696448698880877003213521937256082725096409491439821205976974263043932899603651446525151753567129978639423567862241545115735321366599498189205521387512943786317224732065609375603986735455550094588163143883396001446438844242006284053083623326300275514701895686062558627111597510266406465674618181570932716626632464148719321039098303459484458619740994853304963419217350314289441958963349139382404176372237409491107588055116210043388790572830508572406511596538828172733788570803347246563357534020679412614344628637133835391577952182397902886117742324535142749489180049209025801001451384467694732199706518019262393129436237500973350252646316779469397159340072940773787957691075022686428315025435024097473320191311681916900823134160262165496513743610784923620644285543864468874453651464876754721359616831008219242771610548432345476270864788401173153889429104320214347050113877797389327519246895683169085346836558586311293508282849229411955494457466852610631573483739009976235428372543437449894328705315188614193696046709733804132638126079023114681232702994340112527739007868378190885265865291643158670413486481167468447342648449051668912095358343684826912546849026316260154547314823769561865079747373518819465901556954434832325581474483417957783892855925768941299522395891047922990811212167167631669027561479799825489578954119660075197630411618001965352931541068469201331919145599953934267802650977580562296400720508269092844661296336990350940996978916919294796144679715219983861723586598970396916840497188827109609468975486233716820751389925121808252818704286455578569893707494956867138498786624034052725790084871151778156520700052042521078231924153451571535527574268342328341581038773135007040620948752346975851062985887991173654634024345611847584864742857942125635843038662184139342046534082830002274033983858077621401456831807339592623745702870063265817007432380844789691767622899766641381464113697333662766635564922542301928252666921532265262996057336187789266134279571383893570973535589629644599813223172949528931347521148430126880749806380571222055067898018139880555480514032460800695319067534555519544291196493533566934389502976304558406169066913101825293140776744168393373249967122395807348025629998769774357127072579450810485771778402527085785278785690187846499005745559145022048286562229505555268852274067364935180951628851629417434578038426522298224746652453064522014705086750595426569108196751647796129861881830662646340184686563487408247773302189470753841955960253569225936370579154282051924043296353303622717233489723741714351609512081894645677493557348240005393561599808294182065304851855665951155739933681747606605227785693494901909645198480035790297551995918911171268101234316035403045049393838460775979059719896693652236598640235110551292204792152756757586732559834249641313765715538399183846366965112258052641919264694974840279806357685476146339699304587967508649206786707167062823034975065590086822637256338305607417142102262988562062533059974267774815689043719851826189863864709779775026063296913092415805557410003292804717243169069034528264683084098569489337341516814165015177813436806389225408096136757172203217266103154963728474744118467676498508888001263437519152038781076716078045712815074746556539752388857084147124644371236439008727674261417256491461081529944828345485652373818663539429662004582289478374476074861514222051872464545837795737040880074260646569075444834941600414609687932871160577694422862651940216260818334745077786038249411128449874643905710558262621834925370178523143256494277301393062419694431277581013974884846106003856458745050222589928287235431920784207016223425289064025314071498748422034559417604676792370771750400178417887186770904526211265746783032090284421022732648001907995189001617412964810724589759753552390065287280296089230162343187917116888621950455331541849869060409205053870787359584061180573011326092674875293705115990623225539256819811676563510036727261300636762639830022051702549699710389419046613168585719670464256089311771035683801987752743639516380622146816214363871314539709816036009419016196165554769468768119157878623166437042531300385050646370454960579005618493189520881777339616958722243674556201625969743745940407984844824472721441775799754389079614956354279486676376037305729907419373994149934293466372979686461330595315488574173400155779195003824460709440857883211616948230005526471223921244261785282461928271782375760559069559398621066275246645154523779580446287793116425393089354751640540305525756214800752597023117068065285957449702243588346359479979625532541240682089955587899079781167382545088483193279166275563306773585584175004605716472155531763925493425601804766204403377128722003797013537361706745393354323063113223058335385705326740600220004518285080970134430371574709029383171895814145029545150450667546509976843513853602383085649201430059851523005929816974080804146038967682349014764629263640227530146098635113400414110599220051450257480750281411667377735346294699360189255238676606734033161537821937580744422947515997990498387489295969339014528411557271333741353910169354515424869522414918307319898100260886429603848297375633705111261856506892546519038423348188159432590805574038336690931509363584518775944392481632036286122680980883424190748398303152401524030046895145967932090534409712616196159066773703512034709180150227303798495106847143759334110338376719980668397388351178423817738213904796724813639564259241029257731306547715757339113817858753861744993397180813947939121762906482954462441792361313527933688436061061462892266687032082823597892822876532339461408855545347615239055553258416941550781737893855164065636421008954248014018317605344227092226971413832959146700019856766930217342249681908690061468947023491235716243766136379909393711857077515820670156585127320714366940378035042497976124078889259897851801206904795703327969134415362729766816133499151391594916665625319878220543447907135761214105197019501778254584238282576201802897018555710692602972126660722570998485705890918895721360435527038423405515258170430702797720149223563971222295037177829170252210212112242619921974287156003326016847954298455557897342714140260451574487176310710969683905057528393310929690547039524860315634020406876788753001361150583628764170276050845327247568770940746577564520449317995680503976208743531404761301356060844176731548894849882271446970693877241356638613776493259620228457792646337307934508212660675347984054292927345363091922576515669875156671591360611871824790049081050968309237683505137639196530222222021914585278144699734970374784718990912896586044087028778359836628991227160889178172786472064380671401841627149928711651800735106225577337584773877752988190489598884460168361760846697430175691624245234491274939651885693690739434504527865994080650439511042073501797745348221468517533490876418419249897488056990441221360035177440723903701400651083722436179531579965620429724640690946354106311838826850295929154193404537611367082852835945360355637353151976187285134251930787660224615214426608708873586557105871569489546904529899789284147420585981681758679802116196554177812055716858705518142881339490501248664998039719489070552276682221456872005526022058874397715784979331856155557989915703371330202022005614625709920716309886779170666472685873312446978275877795843494759056162400515726450039233470783224966024100311375013614195763803825074618691976509082788887292084649669833479271742208243724450868285231048669982916194041112031753125886146723797599388810117581984941276228338611113658500699470598055847608313340278474907533615169551950029915350634103663190462430564761878230546538116113165072186536975955903361504401745168678443289270661488962277087448035026294819169819033731231991370608279962925140662063696715260643761006342141750515821959213460736118909751429674983706503125033947253376267264701075235904476322923049218421380762057850194748725554977904177654176933611066694975941031148522532911922452526641623454156356771992413895372963237363790529844812264698291358877249948625664427663500469115575196436598783078652275232180194355505782257075288182785351960025011003105447091840122873797457267297271533530701275492381354516447862603431020349728400488214462596781165457794252635415208124380012065222655162988388257142887258981804835858743398809433083075753951440609372795775231961646144961328252441793004289434999560901238291342365793146600178503933921610891053771387952625200555340560215141904338582266079515394968586327015647424822431939272028414638264062224479499266286537498038118606535405725222291610013802105164338532537818811047998797158094030393190058602895884728165780706162567860762326092747075791359165437385393628278785215039623554717728501122286183402887625919504634508312828447917999173184421247312794164060606524988965696081807763452826362745141031200891805165129496775892990279108467353165455393124843261435150260932857356830508178279055786987854112931597289264455949947086988549855585098452410645438443342717082665181534599132256180886475861377659181467280180509785993550496965351012542502321435066470726047680755686654532585746346749013398937760128354160692017592068302172744027636506172292410629232440927743559106415040861987838260920795318553532085259359077424485301434456406879194039370701952793345679070988058943744164466827577166780254989441939776303790004439320534006796265071035586604280409501548555814143286506880685068617091859139175228941055183644871196648583206209739794601974217783774352830293327028838812626003240313899316672346570324438834169689883544769156543858934994558676097835406054188727672509375631177581546170497178047737127592933630625213404604966791004072137691581745913073596557416639020161482311366438175402030190722995146725065771652179744697674400960826248419526483516668545387859745538510892142153634819160726311824838666891716944076947528261417240452121324738469434595554149389944925338650128608878671032921493508839020864169440314033446038238541654004104164329789892052100559650938895441332207254168580281160551907759701161669156602122333296501286160622190604671247973683530666673325239611464422930358731906327474622564183924167407971790625571194417895960751754890864015396223365672346568237123402798507183136271888660214108737436707343436655469608253022262565077828318949834765443988636711288803761000928309841036929164992422049960991516797783126928874379658435977037273956753156748551001804201113521396444167319989145990440256808867908498962018729247312919310818902919334941470401263794517805528047099614136547329922435294494628667657373351579417413944064299891937627857178916656795445110146126444616186219065067051066496665320559136305865363139234436059801740236586685995704779988174802173004975756143279323120989508995198930026412093577610839530584223616398278754386433726747667706109699698772793134279684199745507528710856153463448666652042981874518323144618354291336076976597649695626399088212770912034973609958400531540287032380711954146022531347753616414268836763820240492429768032428821493369842392070331046783541068403869969835291379060517661866290531400654703094026491168259233444576602695524819890068379116091784168844932197571258478984210216757402680829587648153733061674870901555644775902389341564912923066837249894029501993273557086097276399378967788261530037397484432095060722978225493850790247235189098536736449066455145570199005808925771137460373435883085764346248136070567839677466405015774505811966440162567899928619222406289223124286349159538462709044422727625963606224550220411863966188498490386013329636622040440987974958848622978515091057682553443717176896130409552185176429543102103986972042072050103404591878961318331387605661564330695949398376928561923051188909927971612664481569347775423638694363358725991089254806962743466954411002541760231847328760179344942175937331009642422529591377602847065265607330075207004862850620060208652153332347108226041439510402746010927242476217962804364717810843036311840608309943779247875987557344780191520094050900131648445785722773681309099065753857093697901184948146152275352083325276891767074329454945938824915532798813970773300717620440911060848116560015854696608757396874399393082069890974118129261360570238072915395557063310161536867945826076236601937139496468201081429430634423971703800331098223288651288520188129392934527724759649512189572250678345863376291322676522887293309995128404755212994710514426889640657881526133616936392022364499823048498906621030542381066992526547355406877467788937983145008371658565373633187310084389984530890112418214176824227202670889922652115319264400594831937766937824779448135257111514112851859890306360585990831740007726687326994040093030896160996357295308051525723272650437921585958470663020735285954754210450101907045069864597557205678510102091595516161111381752282842299037994156428888436365952863385636405046676775707013144260459777458232179227608984298545444145214491338958207261662555442705835432012170350014137618829499079541641525630169304518827209945288058636838749666990902163134692010882104652590335635611163057708780928493551769791168278547530903306579677696772931900829422942837583348899827790644111403702678112171575212773997883607000496816506574804211823483584535737168826701289261031283629104032294511177725563931111419793432228241169961148102293225865037093542303398497415441962609041139906037037294397895582418144589224700942807890009494059473478091661005567615051665461012005282446200168355157358228149273291926890460153420911729239147968782947621568262075210545144386835559050694090038632601691731688165068760121151128942286766240285817417431150975283729158984961203202359096592798875251397502897592531105619814968521588529242524225038803801334135702909594514730491044237879397788897168788563208493348757445155868389348099208677131053326686645251732960707826730219519492266117169543607388094994064084235786800464984095288091709920617729792206398094915600325928219094125762207276358098273275197554091733734684982736826244607742320007984944235123267130782138198049794078247434017285753902222131159847339072286081069207048744109217124737471250896505480096595404337435864946979887630448234097122871469839387903200809795842251690534551632205988149896872837750712770016490006878759664772453257659772171695254956388059427294418491232184650204667348733143645686706932089464211612004372065905288943285551651125662036561361833222134292895158255478250110428321110248786941385523372714934336823321098934631807054732997413410051817512934117590390306725927997608009736727177258740827338266844484299861273880416681295223129874121072819488574468382253568096704657786749973976899554475081210272156967971711539299303267456195279857454968992272336179117272668994072932438910489597955027688818281696978192932794537157934405290887719589089187014147041245233939586093996100154427851960739663230327606837907979696658872463139233163693919351210261401266922464601535020668252036363377836411673461027826471718561665708647876350910478533196436907494831024295035597866778445940111370961440601962973059129899099215468318622073596286893587810558271538814412414508184341766632694523468203255240286359049463183517808657093973184458738014288962520935193912220112851794912291018183645500318291519432658384726892722027618728068122036129014434382619880598587341015229359034785529614263403409697651213339358187114688726140033882425074570887033757656139060750961239268181063670803115656003047470993148424416987905690722957223649240973160683359387668379025166491110936044794917120271890379740561329813405816188793200761794246482851713824332682215967001646959052217115416545956564586435654067992950028770578214943128213660737056345301977224268824478627318391316472816906960085060728095113428181396776730987025761156307389396331518345633160658824307890942660791014531383566662493341993208533663765120833946856387177198378495791661960157187057720753318647828685915227601744920003779408050524584601554112661764936098873647053008622533269597144460867272651885862575938679683863972421528503142446453316443430913804462319431825599869417457310793866598291166427311674215403471060604668811477359331373040326475166208882506969942485080846541459623179980459743792144568393725291517884110115211370544138021228570709681859528901480524374483887497313884541072032742216990044769506518487937858564169219705090711830945486121024878889587996155459640330158049213074509544887726317776876295752511869364629963430833582469343065374875827509088584873065445363628205252956167531013551585685614533043523516050374370159434639848392440117633349927432929759101667556985031955244344444205850079072920017758302999008042919158185088885830440475777278829506398957997019114709538457173863536376784521746915585135246474094728096647635911654830807589610606766211090536564410764579236753395617247163610627738051056311935177417553544764843331330220681053073609710234420347172101432289371430084225545174296265178444543159306176948602261653091160896798225785161079201425675750635363629720847805082288267972861987570019681680420997385257564832536151348430899040811399075508311670907383826316226142436805958958854088854360330346983419304835415397788933896681895046366340295869546819845252068455688537457896460178743806608117000751096902647792262456835280709964465816382861715670265585340989558092389639839000865720721439278775135165438908024182151267317132561783987007338980620713706857573354243264719264087135022758777692278767335752034809924589637931853494437370108558658966531818590407384051173991334953308898705889100245017264887221888394782420765584129939533874590296181764139080467650724565206250356970738029814260790221336550639751550777263941555050791437326035417670476734313354259539262986578715653108869842679257794371577147392653433934266692398935109089164923415382442354431530805323181165020203920467747812541564882438401123609863208225619696743436955442978516871005608371608300144290808625490262334507891839629208936806647698223114630627420861182720755053721247329926097885064893607296995616078648654043541851682231297591203757646089219150407976423921843579088740927166056692216388288063389985669993700882424812682627877392429600681895977337879851780746766314334937870578085056570326580983964882124179751605844309731062440115293275409687280118931390422262192476073216978386012215078377004036985975073934417819020240866452709869624476898573389565329952441037372292165306397449441259437091634817487058532143250345544314920208187176578252937567480350682513054228549086102041454114883512152408145811450688013553565531962263590012271597987226955590955146597992353122211455298206995713280076643926207687711266192806407033229672314135934276587556501767287777274832293889503712541705145169205974827012207000710903323690086851888677543675832648158431753922457091396315304092631872153142196859056550893924622490322181676464348901240656966825458648376918015933282558166453683253796575928116553400433461277292858905922818676111354273080661261592160947325075438102366077936079818340139063051238894465662689582886212258631842268322125177981916904741490168852503131177063459640672824205723835546639361667290229078728431412327550030705123232084046704987792492825059907439071035685120477984266540088837033539881381363380476260082426128973993450359006148039708465520375975908768360578403472007909777964730847443092199889122824836308262311217714096277544030936890541757919719597977948463878599741757449079698630498780012456670343757161926477582162050298842670121066053722258541123670200265593643939021956587537266485367402359111071570318388468894744673864685456795014020723316462415723076751178284547057488494254459456663811689077971944681342252997978187723797386652336527402957306618419886219147894342685165743891114219226967551410254732647861237173442166382304325412560221078823343312433617049645559647237217952502897127933521171983056541422557183401977981411753805851257646253843565295166418602038417730587573213468152813700184510418000505971885227746118402308902643694096758762228820846882475629146219805092298316842197840806305165322779219693496924881761707572882753681712584999703790561260440852481984092521547114505456838282069489181104415925507973838792434759159801761107302742268696770215646476486205579680447141703506267967423341704939188174147524098994713694503188716247404646597689903187168705165481599438823274036490613221477496404360559472391621403043704797403259694052748290722438195129333332325949437801281601776619196407160090704429857071390648417955894051095751687481218852852568181146947345655854271631605125830452615320861525463951209489446880001007447061585234841769792669029037911037905242365693847259122010029033704347291869545024036704508313846685877450410254270378762262354355718028997360010482619202708676836353263539953650264164361893629231087143556478831844767005733682105121715706733139092949446978861762252664484342350571298164756600892160971808481283415017244961838801873866738244032894789822558600025707838665262613921218764162555268227803827615835394002856147574376657678994642688018943600252870487081780892128448753666392672330525953099313377333510015876532907581669580674231719575422903656623746719644475910164558987860125103762917037864093075722594501240324763593742953547488830436670196889923176321443663098596667302609353741845784204085251546649787428009054288815083963744698966046411068519878341204359281719952678142076232247989207568602041324367832879698148110752607308637541365249460771531460949587782222055092332510479278627237991407987381020511047817672773253794990285921903529535761342695732728405508980308501828873448751856464793830696662272891646493277867388945728263683574551424652777679733444562365553926278238516797447796833114547504220996114035115183366492989989881891327493959867057049156305984782638670562294264823901888155710994749969587606468731064813936707674403438102155262730249627919393405351347882781603137424074879236590785328690830105178606898084731836695636052332119945368220154252454170288546627991630973087908184001884948894498362566828503940671245842770810147508243694360011941968558061246882743482626219673549345478013623225427571226853211331435667084013698056720931757416838519598152479760831386487694578355953066710085817263359889296183440007551499593919695927336004465641208790206771694733263303289219618987147267325953722369642788924976837602345966675830295382570680047049921921316113456564603429971076478334903236698313967330783159167187073561711737255149294097228828237653397382939242457515774593416013841682623331625920913552307739302187853871646697567376072757269056077017834353188389393896269848198313230930605140822397006597888881306705609818997296237609744915658738224928495248324553118494241227409955672169288454831366672138255363015384925390782766938530310793368211874869962040865890557367086620404316285137791762661050794658927921237847354835850916902066911850062248210819375398929563354993620840735025760579677314246666129942537459438849416507874125885561900816142815050550967150012338232408706743002700937627681203017833375274329479024774704904546922784016330676267826698643259959639670330118899689234992500679911420015313959063755103575456740671397111165406413555010598124450611382258936531476440397404801636783256041810179955373104428155644464018566793348668869140465075845051527805130200940880380285163100533480870827828172369299116449030203071452324943730874049102381547024563073905772636863566272089532129162639876641327353004976860716011311275306631751299276090243835517451575554658278174660928120646502188282519235176645645317211455228008089084798028138871763109393381451339272624851130376462194834847556514975895219046146732857031913460252217861344932826086788346431481892592030505522615112154370549246654138580676889226286757576321003802183549938790785928092152276130614744204496450974749153192112267722004746489619143992867259834354374384718566626932237537468154326003754031656036204014768520176643753651424306944910912807254905969611756057599888699094867865623202824633848885523092713367252907497784492676215220350319505952346488275800271760875889135820334585601430986767023101823086592535827918625090413718683230152627881042452999304635603497417233848793297567978205898945381415224607576501543465671347085681820431978393681019977750772519930801463817618737911807181532412066716495244552007637329707215156183794965355260942078182109615846262560205146967410940969164791615395854748650223606722148228438791257685239081255619076391121688832614436149619203600352850813178800641032423446258077241547376403869681289936899172513278998664975347054903266381467270450014003268905088985848809985508350224978947251070418468412071968837272405388951488971193476690674057623106210431197251520940096716768264875350454204656898403535599435658621208579612577992140340827037403967615332970037877308756304258547309271495367151385402546068386321042924961286980511339754389325267419533522560733152040198666053247847076642949920524741164948343621804544082192616080267985199333835644111220671607004927143912559290577814939510167885347855757150619411444840795153432633000957168364716104579012362938940060107992152593156770374177412498554835233218747973896764663043238301601130482999279454849878106861390347073998791189370239678681999448945546805303956950773870310927862883797328996189836718110930179262985600895702972178685097101340241026153997728107437992844217572400683273631971723645902508253088736065231729293766466583433153096469209160204615646044359076557690798909976003328744853530452217204444817329016103798763371905280785353969331046971862809391749791963406370028740982780418287657913647339044043209600070943419429471218029653695919735911166491957172151838217124405477280766281781603357450947525127747219736097157800214104826672965780030329767066055849938830392234436684698691847127507473320918821563013235428994147159403983939210095338567690383022720587691505765801884417288332418849532746259884516632397061442985628092924294224858438731612788604097089329884555369254589647758941712884273363273415555816360353659923050708145020610350607452429676098161949155345375101341246440455036049146905467448803829347914364243993582322942259049403762150577878084963062722659678338861547361718519132889710901362523681368599684115070775732521991559729898914912543694363617108369337558126546241615285372792802086419498844275666593304307445953897650071957168717167067827725318241709201130743694514824602542834107770002177357265863365479842765457324993447036851713648078379783980555411751142396978475266321426715172407775303515178031268419607039256894752973601651902277465352016117939720586690978168953519207664608191270902895502959272814153626356138240717094640747029146648622480941710133429267818314507692353244171560479492617320086291625477096578865428070519907808281049151465867562996771592839853972908936620088214524309401913776688813367127116529587900555866256516191641751637856620066230521945613271704561519676119529966903949529436159538278225180994863187407426576928796446813149294939597552430702010683115423543457017815310659234456779782918118053929952302283680044455679521835513189252866827449638935474650362015067226015363167345054645003265884611113370456129192480672810525317567643749595294058757146654465581369300315926586242186055997005603734716380750205581456249866511305480182802563142880589750921256611608745732434828040803922528753070988089025878455048475943819766392750614457527472904331356446674608818906041320768995515384900529244292303402445968465372053050468954884858142074086709155797423484490168994564207674270111959652129344848248162624077811304094533889354948647895727441694753073994086714750220999302382321615282883596966542216772222606747145937704892566440091799779689177428020839061988795296436399353068289853614222007684009618590418668926613206245549613944203024889428979568972435153741912561667904561673993213415461459755279276358322696588865051724824664339775926580873250118478670797160680400780905679176655804608045526167308299023051456712239705826068637746563610778479238086006480472069960326889023252260100820238007456853136264285290661258671274489357659296662235514081490722377108988267196259797434337592437382272706398263520429502518944706437115282083108159038003466822562890376780481603177044287960274900568951018536607548358468244311524957255298594218325454382904051736306072575494440114082291382996042918412841799439040522019558515707155965656262195825020298821612328495686539458435463880238624596883698894223719350931549956889061044666226904698436367850543080375577917907659737710384542892218100617846082705409588017704437800979518743149546976298565010368509855798109880976578669846945096092887253702264625098372526187451404663479982496162984301151439193672382774651476876436398560888383646324969210186789193825684082363291706709985899999327990289283787714524796321240599844764876414902347291616350281255715649653890475774204267474406290161348128575047113499998434127531365085965060826539372636107063185102384745930337839678009372409127973691840960132753034284267215821005017863182364169873594703811536996338912718986152921428560392493681995076231640028455874991335954305998649430263953463796752919225419692144800922821617442979977355598048584890323385446159481381888507785386987448490214802221937226642416924754587814963138790889261210518205084456633451607258280179058978009207502784500984716243233354697724105019308610449263001292595914949336729294037194902822141273357232822385496282955704259584671379398501004039998515620846746848926430855275634791778267584603468898315944065872143405210230570927287185462203822304612430720492892502841578925304074770332063633576216421488060731639454438376017999640452649526767331213655667576045680257166166899977645156947995873829705698229203843238634659702298753445026203226391400411746900010603547666667116193797121848522131505996823239251846800983933215788775872066953121506140934362607081579737076436031261431848842197040483034812844610858254202790288484307055172098886311083624944053470684168621501943812705655544500500936442249619246310479372313693580185218744982407825431185642439673221952567021852129433004837778949199081551935864617289457300331860712395808412947144208087131801528871648749954284001475379306611821655019831832148755071790607526962513434707765416648379383745528064642543762363110684754813015156086634047651388101779190277574548265208945970622329742072929272128616544091649072271687363127048689899663985664162787348273324912395428105458656008801334834167697648762573898032176563517651031210881190812592738608651926553765903243378818716249827420213750796982196706034542372671623167469339930592351981400039856117290968336522495654146238889954225013698449344946913564434508980943651662642242041375374679767082922371271435672367858014735974459477304891167718854011888613651931090760331687758902184271050427223080843175836993659024960229870234016995960050313769732755273715476318650940290079566928020884475005302233506633558973370038458065973500243119330755474277292690902011452884766459806118584599847057851393422422479884207105302435597609523572846857287719343942722487236333913766500954387373979601857215347222435574673891159293169913070411556406775597130124820646597514423233978483704127632189122357992060000575543323899966408449474463773434896921472158292178145405207315742894023487064413895675133795342844680086786785528910249207427657346659371011794981222783878015532191581867491246390868663343684463690663386992128963821816095935388155923735193461334543381865537737871747113312785066284226793626034478870921447763717859602581408105939774825940768187608029986236015527756528611304416462325059689496591922493731347442794991328576210543928169715467463270676073019272327589251520322436654641817721225985359462015251223464857390263173032928256668377708216103521123692347348794727308656839575053538170053791999266978851229052908838873503100566660382414476654850555085410880109210288245097606397514144392262327195144863973718324752853080442045606537832399271135981177534909755211974745895363477038547971141340323687273933456983543583558604173072839116911429156696603826384627604412155382807438691201730770592613696183799594598711414104087649222528898912452968210504394897247386907863327848142141656798694413508721695915441427207791610462336948182655995116224469041286337647732852007720842135172295059516916438669102834934821148190040505209545059811216403903032920485970942034603383386331614055764590467758601506180072644539326492472964961499625453975860652260094920420477071309001614693141794231754247052866360839028347928365328262461284837461611387365738162571948988470310414459434337522358903237746819106808814839773549494190451094919813674489004686383442094940084169771702500301483782609216255043969447080548914292498395561172804441841495975681244650432752510756841551818646997121988329785793962721638050760306082668502554361586243049651469433713382841429964765244769896961625364985424202789069671907970146736515643965829400416268920805788550342572613261559957303880851557582741409190624312856441878349969061021538488915999737667372534355888632571601789079069112151756052168044602590198698831331662536868795812405640050315775724777760302879541155044274154408329209741118107663368929718956234818299313966601323711316578828046569298895334088705802497619252386924002425553710906133329619240548198553084325537676134702297182878070680156805190176891090958417683810524565243924628294019164986182680637940279582616985051750278318981241369770309678360854471238263539408391997079972592036144251854052604883386709085396015449782318960840480890926190353692744548905984594817696156586142140717895415790819555937109114766742885208315512463372758916735427708606287311591336272990092641870210958339898490082355814386347377598175149168076562842541035126169882740112186822981709858489117427920515185643577938528294618501650617236522772825087920178389015841800535884760673387809832821195333782261521354572084637870102912002876136523317076409738003882300162536647867251668704752978704305072489411156884401076848453433182956382599217884561537073483327723773527276590210940056729119841080330293019344689267807342492360899095077362904533559417832852445275049348056793500752702544149975380751998661961657625227465386891083313432236831811900220595961877660122409064849593240745965936010133656512415311398364874135802788589926360487991960596485671617645940165651585468259425914292647850670911898703830648558262653871371073499968483206845978254996211191769625989409510515620534156181682380957000648780327631207142964928882320271943193101616984921952525488680887707141062433856731172262275718179072733320308986452931906938326242998894378120429548120539277816397839613686098175168042759382838995618028916773183472629943773197749319588213411433181868479357680357997445153677322794692846990682284745721870045899377940264603201554377508999330246372832935153553515946890769362181893216619987032400558320938475842261268723343790653137208292114223663536038395511935899914045966043225642690454178699376556731886924914624424434926126111159936783799430822246052558019151912479846317643797136048115143572888619538155067187784402053303153986401953105430332003555220352789959845751845102099703388545247092834666500698535616522613783973107672238834117011511547482060074864137418520506460547272360087705361803658746266772227240076537983744989384823974084123044500927252506874500302586228227007513865406795587236562521221383339838754581696884029351320914199976640259455258552835509151254780822425949895694531983883917373839748925948380457383509175656966321956089780964590244409728679345337877372488092651590211853205229285543945703115392901726451878527853940695388736357637296039359546564209203499675589112104363246147827432994625294529696939320863411367602118517270050154218028098067187163230781324788846725227002848320376149237735088330628028224994814678640710903857825013248273258755134845824880210340304919030876366582854547922576912315559195058360957063868209007258497198921714602335848516912577600452874211650570691577586971239447588096350993891002661392462644094283631331642914874723415859194365686303582316295249541160805321190083823266129741027653109684318662801261367312300783468892586650241699232554184248281529872707917213428300075771911300198896144468574454565452187550904245691094194371003830509051220472825592939096095563884765541342612172118923265913210071633712728101093990955142507192764390379697066362989753138318071544721530464870430742481476841882220416955621000736331085513057771790927188585187006434155187642113254574037735003239569473477681202785817245843528941960570629691382753946474180215909259977932806604494439961348740320322318137649725214378582790382709901446764567566509291617566611400217227391938512886172809061305381600127235780182277914238693511820832309704169039823127338689758331284957722387447026955885447828469905493381685536607072675825428879015658925910789223151824659672047426285897982654446523366206432079634592792174560034044934710191192459135297187413376994273337673868192532206545450529556383296626558991589286173762114586552525752326050001907947797486609508786652232666605130379679952000774581958871761563625632402421568294599056230136898418554241158382478748199280865144384596628618280920488326341245739458842641507943707855544404469108683548619722764770101891997087832741067402548720134114211268750734092593062746496932285582412115082397176040186593263715631821164265985819223348677730449776522014286872330188592326458498497328524325755417953230479736642686970009142730432304873136276876415680459246538303093532341064252792291797360537318233228027508547465508285298738168254239703348104860033450884981284317594917837034822990192046175161480094743311431479300698236486740021857634755894574792269583634903723924544147074639558688986226559033951468140607472346745741391414834174610645954791679996846166976315155770902977257939970390479588470914046133425946656011450457854586831929420930647281231946325537933054740665809561049778956986276506739332594088951336434261543020178587630560076052835912648937989187476946993688952183232266409481376538386671529600321263866459222213188817155025619934956835561698547044521862985682942130685121926683438596400631662704291837228354906985548157902797035579649378182867598120957321518873625575023010066990086660767386423904384624136996397575706849802857556211845974821786569215060275260639645013496934229090767047765441985199788475297339593082052109287007796278663358361005735506855297890736093225836793152543477169292713698741197865809737398135024132276443442051249823408139902299150862943100850240900999774678869541933812805323327460501147253803637335397365257771268233720194395655623124568970559889601498840345895907919840386225957415709147077964486999011278196649240739633884772877390176699068046470812718125651261690999118810354589143397727980538786685155924415304242497980765912959778653585108480941313174647874440158412640288987560187340291643941896824375345727258950106198765625335843364830381914122697507459929228189020729981045222768727295865758998661522137592083854636684163656050568397495285581344014908345369029782778149633224703793711792011916910136454243080172423670431745777450126753667231085398644401936986785216223139050701402963942210322108831151224367290619400369025027161262494745248275744613873556246772913820766657249159707246150917643653991726873192206413320757974601917820149407886158744957037612720808522248048095303921248014048475107607415917589000191420494099100410425221389985101192102607288138821936849966190775995582254527941830322316473660686235732819663575923761314048633917243593050879017842931485935418942270985152673284850162919259578062587454510513490040756793654469223862935260866460386500234599129480152780803865377880144489985516603082364635784680199546787729874505029900379306803090901500157733014019301279166693929150563791483978159710335828613530042554585830612563929891224428747019997539755151561644829125417271581230490697576663544526048670117080441864017965452198175079709655548592440806942739926409811106227360370136156138629007299137614565747400481821369510010923427754287539582909722163224699681046371477896950584586271628611750770613638249891591955481491099895451460317078394933566149505923806992778051259617927013984381991799906122341916050183917995574348588595887065004310277444820456982457047791929774374521250994155548712492539324510900624826880475150469695899902298757072933510884880433711549548919633314843387186230550377230954961804028358576216147141435303075587249841403305362414258981622472961096427925157906738461308918792230734405989217392660194163804385107889105537638463644366151459308600728529112848449225008703729554051000678246127075373031516632882827494618469007125892287694586446397349347369511105831573256120579468222617763726360580824353856475131798604549911775731625527845023390529389938648172345569404095264128990255599389547126997687410469663167733216405453565375525739504773294730082913432760952881989833029198584160987389793323511644649833536266680539728519896599865045291040802102634645018108038843738123054923564476453824636401775532085874350768067296594757464782431431423921259511775378946733264681781377540120678861910512679601980487804555130620789487208398311529425773890432560249058524439890025934275782710701282913567263902800623669533554752921014229625788956363454556172500240523855702668638269431501305776418252561491998078910694021727871204901403020277990804882140054558781647529248721570057284483127860642871972922358205669451862866959484087204941924124831161455012363603273323291057247346583304838057403957132907865422322894427695789110069975316520729089902354571749422100529741216142756981877778565970861431289146351629114013971322183112009462193972152583033109985713214493574518973041436252514203133097662485986946990406134479490531384638712160982753645267245432188351365712154919339064464185617350772732341300510282328895752368162150791664642951799805296036892390019182724883614568901205438958018118597733568941709969000342069813356784314450015942988331830434240968581340681564583778693078872355916548935700968439378197132976974914692497055555143074297514128266092073158645507358694563589990415495949789739533817036384819736116826105136391427408742026898187219302703488552147853322301191738582787499345058665047818827347554345371535201861151290381921512007255443643620451322521581972392212768301598681332922855216339195283294947997169737876705688429635079711425567879354707429908117672467903259423791734288080967160262928994919497595321563963228041131431739373182918224165360060748173864512609700867800579431168181532485450700386357880544245366303725536787749713521767379985548954437115557006125677416203009201586403328221080468819766742395221190163260206328589488275908716865006869202336471924825271257189523659681038490501554648832992095462885216065631919711680448617320257049223210403455164387133601206370543150664089145306326079962580543420169327373197005546375403090957703143883324655377874242436770975347025829195480539079445845949169283357675694834147944660212357410665750296428524189086160907502040890270756112352941235536083505977676691017093439712180379025027482167359381397045628125638968920934513498561837038783252075658741417311920603672157143655626655204883342745394225865184117311918118516262599692586062579370763346254444402069445733991683647185810068465359114024071956851756025684018840612636260045292159355171417894059125688058780156189080954566023199049420837013273340369276380451489890700469309908454702423490887704187645387101368345708565472108676994078495861806362602399468116022088059926752366259540900138384263803175098847829803448411803360287352726307714617662802459523020098704772334391348274510492934567759602515468076228484441310563390825462641308184736637878257343581881107331809950894322856199197046895818888177243551330115146576031971292408351473192834967460276472173711360283342545561896846080647160287134898410296808031342448452708836818997278168107795258868206007791879263636692676647297584781521305541655510175468649825893348246924645891638795637182008919833885399884252470623596761299415363953753406147073358188982645446263899725626100892484016086102058938488433065002434668748505944837327235262759286800364960378370106082933803098986633111982555216756167461408599502699978378919924824813809890865593899830612186675800639699793553857749877998632694051336958120364653381929727982992245609522064805082769977850976051262870149075525314450120562506731957581638329148206538474829363294811067587718652580756577170088452433904321688014908940740489483613030871695800611120397833665282910131291856832774118607529509356055490139904456286843287401875069306753330469677622497382264384684033860251566441095085485285877422328915402602528757529559912471566986282811295121853547760277911952730088925291258638276942451054479893365183646146778360064000509542589046106879220618378885572956315342000389516913841249032455536703955780409849376055702166702885229909232060041584029334946999292884262795108295920736589525907997846935949333466874701957118826261247854580960525165103101004694265687112276170564301394036614976878585640556966986407413968678750030309070126474127264197814991642304831439583943013918705601384710448911145265397672556385118049074819535654875078969855821622791965133855521675731058997023654734861649280813503013549325331666448588737918217406205514561525126779751443391101317954680176109388705758770822562392537818752029991900131388131265308210028657841472030381031420894068032572118121680974116834644461495175844811788667727382959455125558597243061452495336864227719533518644819814142736196196198070144202168731740764593509094635741810562265460428679112484043245755916905135521376741458293741188261285277238386216174747290436669435854447791108454038098106769918573894416962107922620490787870267148420065796872943180150824178596923097114693218840204745310244416117310101064284263215243983061758108319284906545089165686856902974153506029194588845131164415715366775284737367723542388553021824304865536512981920055436369076545428702503582099767382256374862891622454245805624571275139602071456693819428445495509015870488426731427534023862516024458687001776146765707014856894481536270787795070623833213150746205204910225374464409934027228025075533674242809724413630350578165978065812722034244462816654451665417892576640464619416567302558812271093159727370001392908112754430126779299332006459002756685709900704663365258781035637588548937389278209189486464689691858167166729921710697048938624532584676680944103672854307207168078862135706554676145817662687608854740079811038928515024647832339405860185559786874215690906753096009873948073392166723569483787686903917254642719271909104902341438328040784758493698762033490902048749812513327663997160394394013004896330240928403034019971338246094469339109887963142335358202862326390412432406037313277943903624328183903666042203666419892724792784591548443564863034890333356337490387430295848813564761437534139126319626244158449918857801300976291076626689107214500320636026079047597631840735924111874575080394699609994540647558323222019609799097742651037334840698969666780367488338923868243529174576055443774475600486376953510886205004463645751033145170116513370203690640425680250101688336645675660421160282555877843897110024587168367624386211010521948191785829788811862732521014565448108307339031769916483185178722547677633725631133103113874418224075174821621935809356872865459947126883697513128045119341496078019729792223553762694638162876581961813451724874399943218934406375200721416496001115108212337400576896993644415263430401845978115982423296376161485259398057348250238081770181523264506848962282412817539814622385388490123257648191097643120561896612219245129829391159028615469358562807759303833477140770806645423208581555840559467051008290498321179210609167370851891739832841542895907175244777427115087771301061524733147892351553861868098136914719519894715976315029787749934786079816596439866278778493607162607903970060272586752594588142646925041235430605265648276367536248868405820502650777910580111909063639216241475395527566779422029703172268227849439399668991369135301670898628507680495620382934890400676692699023901954207700333897539259177431080407189835901927160163113366078894608180997102923657626389011864849586810462068643963816132869924398219829819372601046019843643236034413673186556421370830878664751627110826318914525641603208890013877603041115801573421147562557005730991297627529534055753766293297795173110662616763287372469052237119912119250050230226292891954733169220888486485158537309485362904035098580227621387335138354996829267786110156009164699223577903516357469998054702566700792751136830492317232005547595945155011434105067911867854819276090947262577905959960137714789478118122363120408643190348045866010100597664850259438042017918606216792657055725076375306764516315144519174244732784139137820727495545891111616893965859917245818431813044728772693971331824212190564331387859378552395872122217143925871080056220525995348770261887635699321072252632065721355669628570515467205479526045448962062332041185849315387726411493827920928651903738712685846626099248845895725856739619423800588162196988856213634876042555322598702570547827644250549987533584635759922703260272185143284642021948412325876492676631496330260640825699825181915442144426168789752677675133161392618148263302557133717608004547110239203811475513366161632977828834529481520219342786410850150419107502536146161815439291233016473687219457955593384020062743873502840081366385255899611053901665568685434998751040555474452851035266221944897332365250098867936486896231877849344462685887501126896595303770973855795501716570371609712833759520328082528032476980179670871264838238197554143359996146142035270629872217952123537255141080363357762439082713154704273244971352384106377242737579146964974933007180432768840378284665772015492253968144466323302453107632451898862566861687481543049970517662275497439640234449285227771587252849540984922779744120812863107686095385293401899218837277812413246381259895458068614348824311246166269840317024158421055329342881220331255151266302266188964469298970182383723375975009262825997849579610232524152692946930816447496829531055406405930325122685822845705782342506525100203383867400585085601127814157015052362070825094429396229517171568698163420865590078093096201439846200172968067465200832833475432307233240061986508543447399794855116926422952247377831334002441868765362944542918185473732379115422283805669909249814026936822333289330831663360417808699412717039897305742976733944437045470313267256738905567919653254254756716543185952353587081859284449100068007827522012155054750172682154927180372656012586286591976024483531526079638968472228209742075720524005715096186027695793083965798805496476874896808329518752238708318947744749894459586349290086070935433297702261915277029185280029839928800350140416813019517898159938998528510764098673201455922946001456845699997199725229512855039282956456393434797596531184931870095844907439555078363315751300288733373659068316965026419499430937986600550602443046433487887975924060256633369366411609901484442552050683688960929675594969495263118685108703273231303880337474931071590744699357547569294633242384288209764265682936700486589662318887291024887367705963390699209623987051994345748655608562776200686087945236568257916671736238124298999115884912269000808960360203788321518124904620967472372483146907756904057489239531596466360216918777732062434748103789344951186387256995642818778199963698753995967263585086151790502513401756343002153065654948639523026664524217075815362202743695732071171643745331810482788447171851616743154649196341748715804047021784944831518850414852060306964146219751838270091715306621179439516466235186184065944979086314131337325390007899355146135816195877518440390283803842213750760417200606853650428462313617604752523658940644635256978445777486525085158046407957179151520015562544227368327955206510292617318390342516772975112069703433398170543199477079485083045614696648044498158486664235957339036498824591482375839420733759173999422689565859542600535518362742914166524244954530701890155324228812084353204710038424473920067311565989926366547983064522884074034130706185350057505335384499164406406327879397982940984761987428382131249969040887859807790277224891722844818259965737783809957125249746988559118258558159250438374493045299515754201166706791202522395283297987752618592760046997128314936188216544687820380019517560063891220017419056091482613861860980556514298990736997804426262666753942177336100831753100889021027323477380282148499073622010303993376604029820391550935101282133498782870356922532887088570687375192825985170846599087432425115478870635871784793326567018804252711030304870260957004708583667348273621026938412243563924277988801388352028812265598516027093797207462935884379065887972853094067195300356348886659438003820369660617497657672859434517333289532822834561345036512210582134376974065253117545184926683452862195446757061073841278466680419091493628447956308231773663499418299035426797002645583970359714679570439433421425286210325974868784242801179431482310187033302499593890989557548523442572069671947476904124245925285826868928199562368641951801015011960142778413387919746506282919344541162894298977313207009500038536954679758288014605889497794093693711809762675192231984954899333457453172763355976299485671449559005737838344846048474454407519236135957479993830263235220272510034940772324932505273220769465106621726592627552726275083643891753263738360478902151912926184029823470424397336036585691555785671514688466211050812022740309745324371796512680005185271930426873372695676416757894406186335521762755631591880958140201819032717530384966437609543367149785592386190136753639060522276784651958930604877213435202024206156219429472753731265757582519971639774827986542557363167026644237938463227002794542265371991381181844906477431440185219732076052696630867004518815173011669762308600989790512692738729109778402503913404178761303085986985070452669695806340507938268349004127838023548966099057950681804453690555499642561479346589293215600201870414612000854995050205147931453459583515980358783288439266858330760930856339525092384256654287262863311670602324168431130182607671719263468775838985378953208100111852277135834497505403197451536139642003943626887039778061769252502091620345903360978486244634463152386904518516180729409050491648312016551252989616911900491361449416404045620982276902051241586680017922108709220378816410920071821610540468518199964387363687583669352325376332381538551198904192358912921451017422794453473480994604999812070849658807451595708268160590573905120184294696460624409531642526234868847882284142690160768061061716594515059651891114109379866096018685546289014079959003829942880643610374421269071986050023051254204339511897670480746033580734345246880589192844991414968072332541408898475409582315645881162838109340257134806892671027277400574735024924009920380576262337464955931215815463400715496679968085372280308387380428980967375756784736597798049791846614448217671894376263720400156787416570813736010166823565115971388822419123490360535955429299944244328280880175825386818050996271217941207999830852754474971855366030920846914531703377706568015778514464565029154374534343135494620746644308791066630160364067416358975123118971744772857269360527316052480340676964141756394824831209565962974380063074405662516073641776671336749832165650179642791189126011943434076063739703698453629897837672877777313740400056284846396132191819119630058897569510576280103806567997460410575731829816635862882156856919531372130233655685361747140821712208788067660111905054539873633349653975147796627956534574691106238962901961694771418462164685756211353038036236421249847172590936763420715893430994705303880134194864809062095923901380343421684933228220057475325031970646905349718687427298357223359186952468688480456052862360594633057278256182356186019473130762377065349650458640573536329719662009716470004796328068715096261918876515451682849465166835368043040786725140472938893932984339004693041134364525283858435979112098890778215835200905395615955414175431648282350059823252003759044119825553412609520303233470016014426311811254345198880039805151933295862314577104762091454429418774030692311485569816350949522749377989876053425669712541922439950572438085243466815013627617997200959348304462648284077682399402923939831094949406109115094507599138036720119237814888773993502068691169174327354279011139957149251659406787152211788772084596474101849060327453383081345135360414217446362857255537106832644508695885708885317792104674025085309565216219586394441238954502962194320247584004542562816938101955651406427936305936621604880275428444400772399568429350367725913542654237663243625762740479251598637386791766940879386458615210386197824980767527373421596450452321707886771223382753089494462430756549808203155728038240501571035772382069798520987234636048243733781435072533987660913111377903456845813796745817027422003727051585267422807513030786565915355969857920646971630098966467697168428828430564382085984612601527521443687467282045111519321686846265485421268291040295199915649060037734114247905099550041685777235226277378420979069653426251664544317073660825905855682431018177439796983023370557479729289430771208380340484638962892760075139445817121922301335856796859635849131275267239360631109380013252627614001660518429554842013215608267237389912188315528049169236197797637347740899053634620183532117355202831927660304815938085031715491612646313309471991792637802775363028111694748545527135753854653524176902629859476521957768577401088142868885531136802136388958513649634020552533807786982148816569045751346795619756644492403264489544111564717147732026705672468420874099155294799845263521920656889101099601149394013025341470938386246289275132901498233778784526080850620223974458514568666362836652771388685887983352327497152813516137384061701877455110224358213739846478067794277745605682414527745681998233148103664266442756724306378642129191416862606532591999984199236124865275122017670386981172718500900087920648479095867584464463654457204697749605727409923803367005229154994954980284322608972217808327785572150452109883261742769918467095480672375737641811267540602417639694350306273054711302712330903234529669629256444872401935572175729209326242789956486586431197717932171732168380897853333874559596650893768585959046371808450716662434297710625481957328361997438433444964120608803243502681375476420212338385403332734182662042887817572493939725925318729190405025177808021777891297458556452186468006046628014820221327978935870111945407043101181186608581820885599226653513745404547397158117796343144070935965158700621100657123383137324443609600135503094927351110324081957183480595969060300841441788250263834828786136168810235886879371166288580565000098802754031634391661126512334796305904453227547200875275831828670705105779214713409302582166488360829693766451560948361261821340636327788133618896367271438831054858068495410359610965347171793948562537820758789933927899070114556655752208183807637494790303422657050766606953814196114742410030253832844528535524764806624579379794828743538321084662737618720509471993853222444540459117971440399317489828519378514545019061957446628176058593036049017302013441126853047688168269741465565340999837850320595865410340304336318754268811613322830599048874251918329275208525394049004005397240456461335534623290229450086910547642217044486109683199808449391860739046650960355670019513358416661420839798742891289707592054783199941165790278604835354774894265307846247285494522362205245330413213740228069885031237269998992102474017788516550053125140390638419602192966216049395840316271388425273597826429294129746286902082805859077310172690059157646996944531836803371585770839034725835644656396991394373055843760475460603478996808720777513893219504606868178154954414688265543852239028189345597233417139005505260100080649513181930930977421713438072598924626725847018430650267971724122630282946298819417384584414146931896664818644185172618160866138969426063471449676823463185855178369821466451382864366621552066172075709589400049204485476254805762506190413584050880051442053241980105108697758518151404180081210779346386859375919291384263537073535373776091055696221611706720213790234258414892541686075966378795099851652711772761665057072381377091019441250323494773732666266748251762961945503118113251329591599355142846361351037469355122474734870689758118753985713488479150265807414016154983881649662434510433989837616000096789693140386757806521096279090602053940219554803545115624903103409187749955189806906824699770520021160723788578019408958552562280938781131529716089677973477501917720149939531192414455752372278777256286663327816465154481709035861931873022046216371060491324794693775671306403773461904113511074406768452240027604286882809622891080010924118559034860605851462122989057914149793185714003609430756573114836926347165562495186270126067560976204518511087213476547568917591707159600575194587778428792526902139705429497355745397059009145455460304877886378882775626404384093823877612246497828672725996909806677109911890510033140182580404166950479035751451444671352899265644316375162430553706055888228407766034716145593807324763816978479941908025412629137059612440491236027653260508864576445634029626161749466684374638238906977086662885811580269839812204366703764350356898531712651919442094424375159874919258488722176870838547770435705803179435604061302782896384348359964151957281251641379205991819450942039318145958146443964056683310346800332514059164578192324327192916789371639214427786101857256900313099315509438264334110736672881297783575843669353630477346598390736975934959103685921612953822643481490568691020385341806215590453524777278453220678531864117629874540702110911384008509204737462059362227778813842222452083600318113846512864175289656058823389136986936996560784715450232394850867123855548501163082511688941225479935270046972586584300736314319202076025747140157403753123718740706958057297827933967022156621372073587070488809302895987031915461474048508236444434729393235312054121292495680238554406003416204315361334390383154230026995309845094761956674168537294040003624708862601696783810583133899091064124138685211085018841716722589103109847976512478969939069255936505753632266974421168220123174482243191222083207162489883424862791953880279384398981644284125890784311968641859839773939833447692368273361521654005137193176805866928887834874983928973524074009184440809655666383288089293814445316902526102614930095614476118942808549712735174553644686274056110672856444280770436716157522002234608066075823121470132451361277878734934493055084641894967150833771676576422969033958876843719608027194784096816061405698756901515003066334544530362172436884991325063071723614463417890742192080741687074206137813735508122806093058917003083917874754097956676296892902180756473897002125891820323449068241908266478198982722465079757879700767424008946716027482354938318185453850117939514383787853539206417913610981850680150960883967552665106046229448347998818107340487120229902464609895906163796337966311839112226535504648393867557376105601623108399879381344944655904542989594050786137956642991130153777957491613561209794863976057135046860295857742692253121370678990122135854673785713375167013592994681786359200797372122131567054989558757167028180257673909828352528937137570280023092725973933195127850965982266586682994222461385976583444406589153092507700213758793451085689113056702624752214056192615093075589063610721102295414069077339542863344152774803616852446816894501168443546884217772356409311082926116527736416469697795870167572635330157520060196677549195708698988314456962476144539808219980675607504072666440084277071389379076201243336817440112490589597605102081657916381333260494700951997087636681093636626275298303632328832397873166758701243583865095688247649357339991809932473241946785370633604125897566194557848187689269178078395047171725386448361275817417048519988351917484667632369511841890906398386039240933222829372623825420506807581305040516957864102358323212773255876171818491439490287328071935370717986494511261593349953557651797604251083786159505621647425025548819091344527767252468055691531219262289290086332137646461458166467782374637281974405678604959026112393473435713046957872051950731956815469160655257269702427700234753521856891705461846979358083327701723361674593401924117574402728601172365663310008397130260470267853900452231630066093748172713785297859750086223026939807532300614789593361381774006395724502404606888596451295539816663378682025729345520546685370679136486098680219471745166248364817386014280603159760177664106908200843402559145782600342263588871900231831932332281661190453665378898533994603862834797305013087226182107721556402947338162654738884336535742474025508725626779869322696779224865358987875141283017747775277775725353593823175501004015391338477910355179603992272506888981737013938244493513350771180596842516641357177125239303524293423599393907823238297880431798455462420015043479779913288175807871536254653970167925436906770851355848736889341975121590739259192071800078039253125347544090733647108838459248282424361269608677183807264817615275608849868172985091678073070708395319797670248517848485901596613623888737702512956598139448612744499028936921564844004848675263076289906599609344034376853227047446477301657124367260043031305469755532323453727093407038938653689545131411365423603149783294305139893798915846994853522253927133086760318356646606589399151944313629989180544277736450886577114612005149996617121490636546702988031513061691044263553073125270841627379008908752444980683558849829556286322909002319041744205985365970339249825727036554038902259516868457210996994181687623818271832712599161283288723567039188371197946627095749583142840346109813157522948559596948590066891774176208776980455529056089970371411669520800642321756454541538144232621252960490179868743584395618841090833813857489447754772017668769441111342838571782948078942383829621292459755237647400920224879793089223411067451120518093534279186711835948689902393235151084942916444336045899370636505768191338830173505633148691120423251802506033470067862122968361768487989334143811025664051840520288779256589322593508032557019989507546623139623397849458740669083851273507963528134790435930983436813423205532900186169352474199640333395136367214301043745538504282481976607986514366260068846722469540015934470171341968967343373762859619900130663908828833139374532278562185530234615774159471756449934329459696693402611099689589660362670272710289758932065414215042875513960654924743809347800141793506594943354921430066372322725488895465526761784346889238093762047078000951444158285508253434776988535013160454336976269681442891033451890296873083279073674063060983298415147629957555698027727733534353646554492478980891716119587642553421250748451898847040677753601710810513085982225830667844316437838954372711554948196212987074782387412989322611780586591906206986764030842769682223774421166820703661022736428245902375795269504146504389709870757645906098236771926004244961441672012422526625883302640311002067533607445466062234710269388389872579536728017561420795421591847307535295765113821994347790772033880092806163491748646656645620735187660710111277778448052101194516396251070579655494616365081164166911045147855509929606640417265357716891069818313605207349908317536335875502599793336055700725458440340894750162865758583997228042768132856083038889736009449149690004653153030584036583197305881553232414558686205520813695836912593645130961167306379805536391045399000009950135229316982433650367921517978363437407474010430923668815317955417768614688090714610354663567332939829958640995817740162768153145029987140220573136206538617588358413283927710650718785265042347460704581030354987351392208906120192487642115576398966789963618464147397880165478830851126952571089377913755722150196575317278242002985789659521725541787777874949987431362753202491770337428180694593335390295898006626866843676847707948078894517210167780530910038491411337398029332726282470432251455540409066368094143477279264872124993680467848684900284571900121566081892081499964091120268410489819394256142601594483013382082681688512513959699478593985373203402703912615724048380768282034789305531175906587752337280897695397040453548509451305743165642128357842125296846565241110081006167595723420184520730408273259162909055194616860804261631451362669000796348651466239024053381936301435525743840750379968780517330506704600070910452262672018545087999357755891131523110118016418418838313361954987255849806206727220686438774100060306160880063717695649842225688476172553754337385796104346361746094074013624256367942036885658757491478039244442133306826104129946205490690431781778461578761586589617027084895267153536106112503016091618412971345214576817435603785856870869648806732425774357234020744285494816802552036604014219157277286213349308374762925031212929034952294294923278661015961606630590000719939847866614225345237491374494718696361964528565644456095257220968160953412272867706464126001372050931637041827372686528105012461198349877825085235794128824851173099736692456324406931381208117605667776721329185601948193298316840818100997771203716653755799157238514663472018085008091570372572551917745745036258089018170681737693943312016397581946327101876743256033273038942544010778174923156820120402856453541156070878949340282706319083162860106894639565647794741022084718322402587369564809019708810993082870873339644797045993520896579005621801767445457512004901384096205620702469849726448321224420604851430622378421713517535646244683235233636082716839004996513632282935346823335413761201012974559522906987104378649051540711759291375305632786816418576529605420694271470532137084727718074911891130333130031311963019724440462583364300687998393001898503063156911336045026812944696738068670031273769171543963314629444431316132674316353174441494528873364500822852480802320324051350770119357053646005719723499346535931772165285875090008351918736630369229477999742766733431194630898649359492147657029766388009890847689371138073335104175151494748786250539843531527353686745026870614163442069094855674469251136954553031552186224330585789558600177616129409933441860160979982347381236787834750030239803389838823154994573949356301594678672264578396471222168941522942824427594850185061570276472707530043145083207242862342567691758323174176636026484167407960231679966807108149358972482224820463309712931856846546565743118529588607682066567644062771538792018564730659096193339673721474636013878893507406355329296724820562207475393804225603341475864882613803084158745807241938851220404914621669208929280582986553118601249307741408884386697413955045869110676717345058314629543267963310354409631078124382530737438512899192676035458128167279429287677784443991498729268158905871869457647965615846548053105872959308763670280193453621764274393693581299628726264241684155797004397103878340793641967318313961336322678748083778525371553240329095915675759285344179263118980740222076125703473991211419566818779734349645678317082230940633347597344378577649831702083727399965663326427995244043525265401780822012558202657104367721348464298111628414280540760181259263989125109702365399543353737600766737115481962130655519456706809655017860001901247793330700881939723291212173379265303015804003820573521285227364227866449313507708790680706870148759763130414027008946037594145873326666580532882590303582412163132855503755893686905019150142613915546036778333416362192971569248153653414702454167484875360697929895168284590517218245129531857556640786727403228477177286440922107031446599699687205822168583239502173051397745195457543490315212763729621383931988014107870852494682377282731252374295949228210519461388004647648602655943021676715880995736451941542274002323083339897571290353379929722151128095617498944996908537058742002195633479518087185504255775582340568976134894171750323876937559810021213576547716714025048430047245490070427489429398458798107090778802660076475665260767097371769566642529530722878582799176726890749260710823695202478500171693358931127544107364565177164928094229471701745469785509147159809353750938046074840615110776603338957619243718900665469144295009329721434435855509144839887429055970927796394328761425770609146983684754692430405440150196987987907293748723124521113168594277087698906255733804216293332086701958898830338652983071171311483106427529560137451899235184142182851607576003147442712273221490354800467854013488950677958783377603979685062583762596700145297777783053505170467570725288876274422184263923303166054309115364884874420114305260858349904113091698350600990651620300780661055598565597126556069369443287497488542119165467551881633226901284368280124822988666634133994383496987673058184673154149147821805922585297687336794088964849886778534644121802294053311155637864841673419852268117507961748075437206281654507200291053278181938143054283506590839435310347707790318874212317940110439690460382794537194139290304319727863405936935477779226207077056744727244342603293833525110214004426612715798058844303717845073902470749756927621626658219431150842027467746394225202779892264503711339690214244337397827264017480951941993655865852062901699510471695433745724842090616659302418822810140991603488898234582026206609297123605867450755428153229847184060061351514154307870033806739051472202344078711905198989736076582033976795948946017946899367929202626907065993153096190881343944402915055088955377848442999964787551595787935762239322035718176300830632014655629568294938728603225593409103339351240173604599243257974236494192695633995439547764232272263274641681270956902595092242678960750822215624182152589313388337461654460840798981804181999076490469532778442598358665318441854655781711322576753196162989588695285305011973258161135643610503589907607596425017081702246326772127999763027375195370337804056499790060438533714931612669549526558333599418278906173846368644726133176526014818462286290134126340293660448054880559838528351629669410245849999091553168824771266687497246613413745639515133955602357301586285782532846912682239628661046110413980801353057961391574061879771333141742144344852606963421680639672932109060221163130992272619281997673915244291629012775036054783933978387286572756748261842267339699806391392728716921118550936591570841936756672021478003225549722538427609491787005997257874697231832967783211028185827676782919740725571342408797569025544856688259680339323119597232720130662182249759895543709374992384581343896828729862999319354974502786979407128830734856454260744206333263536048908939129240987430536367029756875345177524916868069243905996922344435307365119239446580045905371033825749605091463938370107576645161931386910820613046439709559783095536991842160279812963780847925035007428841738204410084038355942505600160716482179215975586047334669724627005413206531643070200694433881720674038932932151273766483887025831758493146252016951220759954260282518465497470658790642322054158067014607459206682951618298885868255708625007767425928769724285984466073712578439731537226695349820953211107313366571253785664434494946004551344177532420960708335549134563412580534413505695968011924994244853750922603566858649129358355788446089886108620912182475328182397905820917059832575967952430368399878914343173084400195055227602077006859983442308249858607632592322444816992458155131486860062461287396895174822577103365906983464440544412029762735094769697614865194063451626551081678712172504154444273455389426168004542986907376598941879205620230491217405298062168966910939593580250088364772585611282879394019769079682158317909657978849956319363078079132615543236087447143060271704947176131232038145155113455892396378635683119412480932325249006470054670906949777135528871787424398610148166999827202117187355117163419386138480297454963041783816209428466861651203161912497893248491139842061092051900876207281921455844740596094072219215557204984110891526154631021109041361768289775931070506495629285189752252429863047946387466128944699875028987587718975411935697496855177696930478292548984899458601447204753943098030579208938492001690967080852092184992611371783643495200173779982100630984497488589039358393865284906623567240827488209566080425333998378907813154798535087577465705906222081430894214121123552886113196001823467957396201125981524688221264696081659554387424086637287541597313794097777287118431960774729043818291619934190292912677474242966316310968328927651348722844797425242576649512618041054643295702725107817854899349099687834442169252666437492947212000840398657621499355999870642097265736168930869166689017355666024885865333154417599584405070416987312906599856944741052757513685819720929615738281403171116818803630533775198871113654357612778657540738739705693926884564442884994544144510729645939978394557148274645594662414468773676639451050152792747728493227805339300940713016318537890382279159897966043690885719938430424631230478606599677244964642707708829918750502773757812196718183918685330238848063362741966955136611634322523689457610455849276713704457686714264428237805374845175677525591327105389425013270927766305193244987174276110819697992844718642330520057564315514870208935727812111570456661491228937053516667306396260418092105927476468894432671746740342146285858608510248685940107308143825283276893038695496125102102516817449847861192243286659609731743312396251406760208482818904983755462899005772762560311393849739019902964799873053345230415134971129552380413603209018850149364527593326186941537422750453349091372485532743585879396273113323136998325441232940392143329292309602981296624874671387972834023015984028480256793949642096436852402709914005868490449967737224361827119284284161752634792653205780728021953582834421504496450207076274002075014406093460383525579978486849021384181556949488179355636890943795356000362647697776393729091173017938262945786133902428455715190922367227985487856690658838776760584634650808450143633076655138304436272379989037314086360690223845523825865769153380258958686860216944282970483281475396810481624757375827458870980349822160560045471026687515072333449425718479109700334328415882052246069030537330899110969635189881665588446663934778883843400405174747424766600026568315006029712620502917248340116844083334110074182451955859818619902472774139705394035174032096259578626755979077199166467163269863873327776040584073074226919149937972249327007346005975870172287779683766401880597923169266974285007732680858948927519814680036260983756808210855686746676409970247031028915954520620711764067690842348184489660481955781043726504239801682506925230924841122170587346020676803588384434803748112311872718730707444538609111832947373728074021094216869438660264263509619117638527688368836822013658453859145101256362431899884723850829473803906974146685458221325039954537643885403067250411956443152529994047889468692632975599575864552187148225913833569329188939255923235161453148982759763192111728944754928150482758920704166648312065567720383714402508103609973854358785153564789046356909043598643514644631326844149697856224556754680576138991257532108882617184988423387257575439724629106496381941641193646671054558204665614603666978856259268987617379141053030367343334493093778908658873966874965889059134531737106437787019048539300742117942807081937187892847675334697887243379204458234750644804716297865461311183419310766360333655605339989951178547974322513548174832759932472089583772786924835641710450078145199335755755407023556255946778772864546167068139656439288884867983296978594031051286327189503277573782101304499647257039037447484577263160431928143601920952075153928667101327865748773877488542063716631231176846081793292816238531293806344663176516184124199155663091285646257316371780861485150457192184708080050660193185309397409789204492198967413088006349438752373349310133734388126705727167519081186614311404874982076984630430275604140195947488376476220975099224000074687038130933253933417691192233984269267418673770145270028143575998258163563071568551355364708638543333232063484254140467116443658375066622066295730099716750520541892161290592798953392232552224916207781466667426602500765787196067656593459748035764937823670269107738545608984311399005011946943270874455120373777552934221978743213658750813286375261329734667429677446071660352154914648507259608198573978343372289827550763760026302156608373203946800235338333306050231011639752114474362848327958989118168071748132127829156978202264262215108279065373004501237128859051743573497202153434603128205469368899166219440627530861516159760703270980410003059473217535312681657403775627997954295470685997173382848351336838801124666987450824746108930138797506315509014320219794461822104369778154111670058247500601486896931088263719659541973401377343222538563634327385935649552211160909890827551757007160532597888961715149465062559078116602328619319495298542381129515060015586387042916973082795344356745084510938090950352090887299068505981481136862690514858634464856524982303931232005986505822297953313594159669409266611797676803714937620763860979115717779857446470241539764335654630517313966645940224294270727791616753799644663069706044144482630117367871978730507668163807045277127813177458197572549098839755498241949716056819376617171487858024704979675076227857874597383086018907649724205789603550322412965305256297717891296980653902138913794314046597685133456000785688994828075818857705267479756982238702857308211174518753969977037463576111096842891863658853220457554499875431511560116144727339052409219428065977596678670691366383454212210983046444550175367096852659879684003030044549213586732065743486739165579152471740713133724337786801911300256277015014970232087605471214997247082487176334174164761336630669524250350368264095392985315811453554477166996992621892955083697583353162867982953510884722493665170330557658760469052238506940970479664721199556560260704975121115671696811479103435551879060286876556057011282695186998207336625622281270327395746682796303638356619680544534805938400892295050524363288587516717852736445171923308716999583462046918050185794788164457360121183583480372715221674577822180818239714187726586710794033112959876647029851236545029838121632327039335941134904909763756291960684112670053253832056199052277424442428818136365074269229252038531682717363665093875055775248467937451136716690153692520740378043683322600428821582922288460742505238560137068438072414761835284820306107697085601847206104818645368913323820931493905860166150888521046941812073605164966463409604793631666936493728397010387284772452787909792831256693518382257563004488299401195855570643562306451956160541895714153353337287463834859725440388512037470476344367179742174502649189750373351067009169387214568405142392415294575169205749018232912808013916391316031271447671073111512581885331746071249274869899557137941141610556177241757653120141048556676122128322312276911344958198867976283674909483562011420320980179495148441680757316357873815504111718362715529298492535622849377141561687800329090946366213506449955038434696488727335337921971972391033484141616034538736485644852301513308396728603112640975220547326924004283156464416981049913133120560891491612056905210109812992586223046414981913288096976684326504582806125902059535221220597063243435003277959032404012745281296797013768316464375802151589906068261780776864413320262734477267200173430103532795407672579380082594558036894184550509010961635374269457163561961627444919133671060178506839344129354221907301056073225046697594469227406332690054861807948309259995886747995896307650908500321125405964556471197323499401796577351277271305135021212626023678916158914626364506560889072049301164118490164732040131608354251276333440989444575470478162265088249931710607163785641382093027439475702955093792999052907133336124629615446270219888614696363329253008212423659844414850783964333242453260138526823608248984948782735347604320233855517435824120464230700601594576233943356712396649501415949562183519309314497765974655857385845073311787205950205243819200519429138549778919288453123254581483645305866917825578925247691464386683717872378605509259472740184108093541377451209650361257153011936353394901992468585617314556511403789958920304658498025006955837883017952611372891715301763619591619233169796100056317762869058171485735809778824768068758389790734666187148988483158966663392900010231362371117967252977846438107073154086554700904691963395954263368456157718057766091146820253429312542473748309519681746396593753558428760081303900888703043384481857317104620379914766784124197013099485239100908658453490613144678603635392030127082059145541023902240737772550837927154648967187260090655371195989667751184564379764212559925109383623463081714004041520728859255121787123403239927864662032625209277080555813164572993957977593695954456219936982960776298321626702607591693469439744348641493472762242702158047172443234997382107426670939740160597062963664956597681613638978632129911993923103910560928663852967393355141680117771517062141331119773769097024380550995083388283675050817974936962659787227789351823534098749507801548429552668677904259711259913961598139152075303336283857201347243679899687674191375377312433073335925231990809476622728868135551678290193471697846694913341797306237585961585194763117473459205594869920727043894250254733317468583715880394188794783465893166463427578343277388291256345878154631001964159420655348684177035385296533409001283594099487492377879775045908166423517850950926260500053436013128030533152179899534351513205457320161633970090675234637790060796667818771102187340272302055608588804549680146926772077083073350232854433232179326847318290609778461726127647787645987394436934220152753022819348156576304704472917459767115449922374936482923852481973384445780737294867015382192504681500269126723409768799342438229255873610519873919727186683460003049646913276648299512861614832575721294040618102148397413273640156991954053085928131167032491591637465612431132060204826180603908818097993133633513452689597611892019420345981415780367676130381184771191737492609747266989740461752450029807952422217411882251670965033632349322494892220436527069058338993023649885647345270920755247276093208542723063370085939800521538201774958637083648356670045013563845836160606258343652716476335676736988860818045102681087590394749254525880059388154355512735782954243060093744773651590532927375249901964143780505708632635949748924252040029029991255469320558813361290664809658221511706372354636481834733293795476188300099206779916923423439093991303962816376264900956736946461257317923191880505757995423352331293421490303179112609723186262733672256624939940602736488905043316329023179798307543831909452187634483027833057771375402051566186869852684617245702301825914145732113067162090508546446426717532827805697003374648768532115237436727373602096311401806738428614943202205504302202971837825536991968191389670884419725862093314420560679867751643503087056413474996177620364820521923997885249688161409562372486992199088553233849025614647326159132927480815424135575166627283892720581216462735617817387960206279754307901820473750852853323525233135539862139080848186183751575114045709127930363483371136313720799597822240978798762619980085722765927185334646314310069343873414774087032766789722046066998678606090803611745715350893560330788310395699683016979740818335727810842566085465964940844480038184439712273125448199128811470185263990632094421969709664376936533116780689936198993074492196935115760328196410799684782494858745332402148079374515553276083900953988049063100526919073131099736398906141473697855005896229426151889442302235451139691020388688215559363394579944109953051038263718731218934660745628292410464168959315797198790979849886180914481863714381910244617453222403241479957226388958569019894313986591887752404543064751833165224597593849127939155305519711171493619349027067648521702107191275803902455613207132871466005840049080348447565839237710816954387903261459228753184420734950694573400321061166581831108735351519884635257187602364711891256499321562951319549580197752727502895803969436999506239488895492585028816342903613505359086905866849743297962521321845293908364788721567147635070177675927977993338823695151789543368612537760283652264261341568790880538460544295232912508885740220211824295711148703982166214349202136155011628593725070265015934117560788195040158252788962258685503740333426062062642728504142854360174315860522807669947770718648649731798303154036432195997555999117566352591149179787012254410080140005381598190434342066700005724312878856760842955746264537730714925798659726586916382198024442422994002046379510823032781267712497557038576540003614444783055047100390666032445930009385895679461871284225017757004390988432602902378031072276615639414821190753673674541652376666836350427795239342314915648391921802185085243322236809396178459783094470526582776449851313419656403705984270791256874650198061644795766625648477755847099194010518052534372431418951582863374691341001996228035927492975786922013936925789682869557237933016982944594673742188210844354942118457676506632373888132855175014470170345589619754051967754430502883560072812463712013163130676904562303491319278126795820248951674025514822950556436316007536927645533080342633523184584540272675364344852716028997634816574055461551382205281464550181469742163714328189276445537692054718471595669192014151492582290859955601144326283527999473717023326583442208022340504664240201869427853127125787868287970479594560145818409026032169317973432342443817160958193086798736598883160260349926047047478166250808070224131176629960408289315500862859074354792309190589917336076116842695080922730851156223944417295326500054327183891023794068693109252853664600604563819637146666231898598695546993041532371117005567643461896617215822670184834574308791651833449032670984555585480687461614943443097295392735405744439035899549417100602139187832000300863720564529671637727542476440891142629287612446243476015838536395172649258720536937426198317037036274277312583884467664590043012801437286526917390282371480201361031190187590583796326623738391761203727708443971634905767262217667335418820526672012389314231542817747829242127554166473793489236688677703996884031347408670277456092716408855339578231056422742500557662907432575838769939840021197565462191347028125293265797063459904154912659046392134386609238604108412161426668229682619306527445479714221998082778296385555543935904073326992828704321797961020656517791360448973743896698340668162220147492704269029798286400375627089166186423849114698996771759685621667744292567446306849222888780141240674620011327491003272085727735146248171212785148435236696632681396472178360065520500219582932523472551491388686374633315301428109202496792797580217669681090840020742132757476872928755359169612574361802128195633413167915042605278046851194432019027122532385457699287918331288185802563565647667249878891349856690193305638886667490006205804743936241302788754277248651080329626225685655805096932023289027703091336577875039467958661763548388056509113950166217755571094144329707113502238674882148592617674839178541026466358700366794354641284823506450061076907306964833532738852034901237361567982149134477624345964904778965726773718516870058548361885880204411261442631224369238394641301095151248103877371993265236578337345117348628552120194146305122303397964861618289106631224045365399910522211951025256431680597238162662391269441710484533945842642751822981200188975005054135836481676219466671246861257620968234607885988479170791604700944913591230278067286361477623227173373627492248797866948073485433309369225832757048789444112000344158381370842355655559920770187140421657026956750781215967750205428490589150624833343817272440734415371210921825350125792257457602365435722963872364519567671176662666893933255462515502561200854320687608807902260015282353867198781389217987609869626956083628858013577585501429457440548710001984246850761293639266182816329339243676117367187216608289473027599756711310180306645070677803016936296544037434586824021339775846811104868710497983537132076160596334650662723916912402977840008873687037164015558103323427073415791126142178147004495691701780279458402920868363365125485097858295848594777112952010501418671945596708618957716763946127161287272253306741562665514299295845447588086108529718504519728363243118678548062786817984653858051272227897069702845279310706131983309821210885423249955663539064061596352921001736497355694135116957944951587340447053936868521587043504761594383823072254540291544316809459398490995255837975478786700505099933840627236230450553947060974030262364162084353735552604998020146193806929787846800598890442068784936016906477938714745302772206195712389103753790075494544199184436260817260697881096265801252876799372930274702135698470330147538656384218669318923756771592577687178007512459889241290285613936990902327913363956483388881180796804781901101908907096377387111956235179857660702078869377565440662130512189449498929490461674012478774311741023470709347124752371349968324884209035915750371256503956926948275280205420616866044166810120348856917184992770803220081430270768225312206808707802178448357099225723657914344223689335370254635387427715214759852847847444336999258662925723872624762697292179951376487238420923824545913603072398449348362169193404644747209543621558828282758052295903188849216152362320746322691358920331360579472637546078809022823111649571034189835210312740570679477322981901956087074830733675163370894360739428524581124086379524200738255632893891397194446584065007303064923150148198100719773488572514861774319875477898522837686758291334624902755236886956700567951799319104584873692542847280447153133967770898514000116272074993615142901664885845594262553336564099494636233251349178213221833708651026171912137004392077291503032578426438595415937635004699485889999045278148348363367910902685109454079774133275707632286281986269072454937403518197429215658747165588058372466322007246857950616956869965706022563183892615866613719087858670461334413152312450742273593382374775362843609806583678266315250280832447987905170923156118481961084725983261741714201330682903994046148856101878786677172989599788326960459373082350466777603016712249122768945184547267829559643604537583502788896849260520575805378120721673196096069566353828509940469403173023464627940562515291732319934333028523181896824894824758355349333244902280807292851964955785279568924758647528749199622827731032199433056503473507112198400005504231157421730552274073784601450314453706059594487411152916888011906433235515040206179354762068082090903437726009513040538139124232347374935579376238575193596539754035901103581944450359010893331978579860796060302849059712651703540658461891736153512487705583731052559113794647353183373841518236525942094908304133929369854451183924190940228808715153311079737655721661404829716102016339357001623190696294814798620130323747995086688858516955779420884099943221957948450426442756786820403443311990545251902778100278052418148614891646058338975445324945677676280714235102463995132832193576354594600565527011682415769703327176958572990020235606518359558111552586392875358663335661465849419028849567340167660767618426335362266576691169966664726239629739354904286609633763649627472806395532291641926773720510370595709461734708076869440236565334398343548787490524884649088125886558261891547072997657029294778269018457803547265460913767820859004637515319874174460688791703702426653236196212840716172980284445695257799898955743877038235823420384195115609605984764534547591664913061005400011564415451840118207414263276393866305442353512244857804544216644430596284452586463137029416046301574533545823980165932225340557028739948318132457520577899539940770065802486602305591802558689477448340900843714807794815059704040648225228408095723603034162219233681968301766632191992270128601626844429871028943700362639817296443631461802537044635067888057878503417640336491620863243438998329970754245887756154411829448465309413383316636731696190061773237913872615746998825145253841998650716428204465096441638409056447715313931396534402452715931309846853306444662057011190930124029570261246703053001472670464418693998265116751739533884935130029674083360406897973507250814798022490495439620225130186828611823736492618317657020100026928782306956134841825416630629032358504948921936528041096905695555194981281424753603164468213509228969830182718018544423516393084354089649787916874967903777878664319505385469161191321975407139475678529975702942306059520519276943077913507780113608098878892613666739391649304364806195398871598470605181682827286226551892759203914523456280061145459476089549706056584761638811279858596859715239714532877222078410795565286428446253899786835255010773739469404367316809871887499891503715753068069526370635086534732247048235948307990598053854050539906594889420609836288524926141382849642406331922052550916322316096105997709172675527208385929876376002240257057477466584012643977355828481228261687349059992555337755289032149654967008194110604121015464132968149006026959820284055427115891764461484352357748234717478007739011523253158897186742622527085036556255845932844045641863888906430908118209308002806530905539967332780711446520951309700523838524950196854750802539134877087818073426962266373457521250935054790468347962118658955143225470508624153264187292347840039599413708217294057393754338579740490819290466370300433895928231060328582061417762099773991826848132064052906517238294794033368574580063985693923857456185821065334955634943604023195028246757594437188881703794687672449439597328056599553438509780459369637670023430196316397967791041223565167114356038386228704199445159202243340639338230180189011286797846427113537159373944172913456520583277186846016041562897759091567549613409334138742341063687058305558638457230684719388920400584196332153028722740363272341901416526014428523271507932251240284337305199600740734104491146752850134939183729884778174993075644107375613410694460660326493939577276874200901634934533971225345220066463963150380782863039367817650400847185136964286403348746418563600814364174551985215915127567064723014244313435801914746818466895269246902882129051703183172268015300716166762724314611306650277563253124910360892720201257504976551339767307727218488060361332184181736525151503079559739655473387618249860304665856076464002859190320796513976033647553651640611590706140037297903706477040389992660457274624749134981143981382121275256664874214645055429693554153207727157708032499003516219882312493890055479700974599640794004181839349907735125701330168259320027650008286644448543867594070690830674243829532114527490765749017031584053812667248885210194589589865248922993724579082620248444847972699842484354482181815285465711372365628951774136581965809858435915750959113010746981783278181730571188894893639532156404206592253020926178757039564338926418539786294332410402195492927714676960206604200376328435191658708563110265713114129324842270848943249361119118866369961187798774979316233301581765967375629217992720933372478551023393470969928045088858932400292234849165531251299725082861142294029796697493348400452038004898843854665650769804686884651866510321220058711880107585187726661917308201877110198149668125144897117761603977024572894561618910052724237702698129484197832325337678079495383406229836533807345836636912536026258761816868745411346781075814385735711434524387822865549443711607864803370267443501198585321795038402240895033044676575977457361650080043476888449578694914058429596531653250787174057041615300179169869431871039979775532515379083586271854678476642869244325449822265723522793986478989017377369096717666902177795304641944468930411356866285913933157353265389518545426344346801479190600787348345149330701525953282178469933256733297198656638732020780899329274361649696376887925916877839821449519241588358438827254101396925987934074340005444904874207952186441931383219902382867858797496742890892072239552888700679352103582823886875621726053235788542418753819582241642089255907294263200107172734685622096994120302462130475585527208720347828553404687338018298180094486785592248822135556855092618386516302408905396701069788277586522982128306345826792964100849855837874627688386671523526413740781694033120477502506848531159743703979867686420580454858132011727618063341399779337609232134054386477234976358235851634520749986215548566931181863643755359134150984406787976988539848786864836855305743786789716008247875546455589962766767500378708661579661173334043112489433528007350160968046825815244351034296017881166529604984216722590115598411549523110787143722431219078353666004725530892906008564202523385994005381783861598935482903522629934140921959309305831611597707802692571816807533484184753600019776516745599987308449455481302384732995346156392202248919911408019586787007358204633211606750110640870378017800228362119842969562326635986519141711723208442900262541193871328269806708062758635831623191392030279438661336651071010784663406416980174136413947478211521127096914402177992602926202542269005837733273090396189272420635832754426463114729974271605309630788683776321249205854907879007067314322362929452030131801031146907855041538330194523092344877940567945784953789619386721836860922115148815283868543828556489864209758144823174891064627291347337649740048173276275278445977758836203533456570938322288970993273014778800165492358366315939841710410257110219367969399424600878064023911853758035785567997347035413189970561609098686325551070047048250166605213870266622929972059788070478236199317980337836688460977301809116074974224089419576583575750395551092128080811003307489347682381388752057976067981063170714376486514522057408202861028429227199208087346033040370744355529955448133378359558884632058858784288093053795195477048414180886125206688458229301077435080291909642163734752255937678306627834576750840013442587644187782079050743443174564333034417780315399069837383049248452763926434233890420621367021666484211797200051932408212251028388050517511777893140326760373607564734774483384067042909445080712581622004446941635154543237397285466022649577805485281788241335254400340899434257331636775047900413542232086126184254758113045080579535346070513810031028900423378274786940367623776607776855503245577381188328774788509062125545031389181564389636580726792912445983931463835551866749884865212023075254517245537246824289723996137926965157367281140765865577628927292513992234919489971552959020995431063339695929967171107923527926821566034450187383442967819508465593779927047759062061745682667670099698774358562934983152344457166771115550045933394381034800934177117495020510600574631991220790335787854906776159122912616855142597607726415485176076756684867031978051933091960180354435830387336660642858915447425681570817911762294953393544218257871522990014467629395826870658271014047917282678665459508947983793153760301236861342458865767342863412163789724430327043063854892313598767234219225937884318377461982528777366438267405328020574697291377978982644672520580855652987226398248285882266006962987879002205657933038195647486449825941628210464551838402058176017720584430561066942756762198278775699622390553025256724057652507754170612217831246644029212795113410915683163943324856571072451300668989297410813276227008316878258622546328129997544419491333834088969937786301488613164650903742513260347730064870100387030121718887632235849048262651255841153935305973082112507591078570289513093114352004939239979627101242576957957757446249534870162457556042788533815338255708972311192503288343646666828378383941323116943328754678054576229496756464888024801539137359913928664214735116633593404881952794337508179779958731917623502304964221045805941599582431928469782294487117520673708538340964702566116409513873665929672213706907293333143688120239875088686140136214564184538863185160354999421465702251884902219609597416439854331203867123630816911694816447487043320474263730678285732109828885606880185303442271824735885471215332702938771245029251680826733768328115295077109211010551424231067447301020351272153234838537556598773470865822980334607631802032484046952077792002074821236110012363398070796531739230061612484905559247031226185888687953006480662959812853575619572856462715701027315666755273663572386275950495811932205687779357950845285653453908324366187343290258363596747569834128270141120325734008522919423815261156424020142937732733230347259833699721369514703548193511276998920198829419490509682464511799221856132407436755237161031482334943370316673515182130089822663762362908938240345893792499594315293372134537537551090075577359149938959302237439850024813265669024233958730644133421727917040986576561655124063715666524832160391991149082921303591375670172293923449110083073305996148328689482129795486076951537504570134268194821350564015201188957151028673722792099063530241808582007786252090101224242507176095527162932900007378346712914993348180401326739838622586329349665446285780666335612180522664801090942689458884983739083715539004765478452206376808618891188518217981295981162768697707121909857227776581268348607511686482457236466654573185664432429460663347969357369356663452826373874859541502791903073826812260836698830618641580597337355415554471899503839667765981196766041043963954616714972896849129572066129603813848839449602755819034173835063923886350141074578014364505213998113058756519158275237360215848557503611058366453776233460931774576527882894902716331840517819593669852953011379872326825957508745605221950550967425003191343376252397761318736730626973073575958306994535403233347702929499262200747109455762317483219611462033486888248946953893579138668369617002069270464747656635958400769999160542703268534473092375550977245859451970845324639325524909726868688624536783615057667754856291638580095858761278604103366951822508713238994862831464584199000605594380873156592566120379586549044763221765423710984975711380231263774881547757655948999256784271341782275615208657417487124303285772601488315330840295038308754795308948218809574264651806207311065273396812791689192083749806235905934215580543886578223070562473601268434955170202741031851724931923293911606832577484510838196042473750737704459297482960254852692061794685924938243620504594698947016005150821047758216464546880316879715261331483074241582094046737994966711651171820562414222001785044273053637770387265904328241990981790393565335419989382684379410608897118251466230047840318083845770889356628521256247821485770633643103684009413837485594247042657389975404608445020178806321060737865608492289093675016712785755128560999013097098625608168180512267584230124067240015653441502432752245533326254087254270555637288292048135594778094005839244612478792364841858691325098297874782601647395212318958049001466057901370331540361123101972877248699713594199335138298153617158138104449796951201081450445840908378433368740949938034830144107426956256265093518229123220689416841171594808364812603602695566044914018521801883930370274939659309103484289683032274493840311290663873913742647598632592063078994116023604012202172918273764232982672751820658129701999938339739994786291495910453906813741997690942781439654545366272837485442865694056659962193777395306216510025458665104746427396471510951695553634710006388707419550477358431113404152856154139633864063430313374168272870785659734411896674876468591278664531124869025756363195348601460977529385558126331366971941697778406569478979333505759848612118577023521314444022968409893078428839716745541513191726659294306282915000061515088998645642027738088297049866908072158883053089163105727606267414999480417892196613889598116965739726158821034661044780896441458209605979331253612092340332281545859192872895902007740599107187229140209417603766296453537041948682235896528866903702302383384598280353469707450073448854720887840603804737718759548016632581483747403677620848560516286887494025785964137502588192173079174568184650168894689325661451556582266311219746984975825965290974104011731464684628014076344945561690438069636359437443471797877531368221170896840276480254960492546781629931068485752780106449973127240966693750742121676654162224284276679506658719190845928590976291904423465870535335094769752538042720687142309540927853580837515315288462296760060261568396358892892263547806014174072678464026006434547963424082595051058305183566304722715484190340639090765713013416092825659248856761477891922571084623826557278721240383769915689251748490794081438321727772096975015040253275734264838804974290624445937996336265430990396594188766577140904864342710184183993218036565776033202205594146062987351948923561616000586687722575120824056581663664847997533235524774287337993510471768626673727962434124871429613312459360423794932952665345700490579693033419561252387334071218013179688900680995578754960180394409155053423300838978982928690455547429743224421545122045205891416899086048744654466278614405203505527500334906878573588165442792980636761890307113467868736676099389110132794486558082420828158468402037272479502210466408161573169881425367543156415174566183552684107465216758100615429962599025263434461507946932212110136375771561928298700715408588981178714718508881075637871053615546806997094684530441812765524733243079815037294139583112410904469671443234538599239988488869183196214771119351092748758033111715468523518644679705475383655064969462466542862701411522911657548235397709889169644131795380015663961002157692944864488014362154684956113718247220583519176322927689114211332832444039804101083558978324252601344105686457369675879945942235282038309686662063015478501354163193695027535105240327710752488839598636726405731275116217033143955814411376762636180251085654975425294466129709087785762876761052344296740613236198683397387732502352492100307810813284397775904555679614693003812129717752253986146478951659349758112466814380715351998493477824799096419833557956640520849064240349663196553015839109391586771885200825956542173189163095487963961457244359780006597400535296485682312288223244614321916234731406587087848656532568694794975405488631278863845620944981563610612950929618767456667838610052060689449319740582284173655346675803829283631376214446493432521949416193330378986892961491046854940293196835387465024997498589699038600670144380638017073944162298451136247579517052586030664625059753708086326987694030670004739191438397030866362521403031397172388403402593849488424974586459967168384077021159099376176732439794108633151563343600361286235195523546273202603224201759346639250227227111079653730496185269431725919793301952774973606860342731326102955036706201993673890688391934489544598186254927587856312717190371645688581487609130045017614035817166514932997412222862365315789490745078340269130992575124143515211341725297360480909413220362440136505494875219159814568630478112542815402121816072613150980267641243542753688992841108966150986334103515548782504143972706311107312904859001088402135120237441360090838066344906984929866494757016251442404441733494551409280378888829753117946623685948794145575359567495719737530860853849751517375330853717162368111517733574340446324028951113008786189551584358004853832268484258065561699329780145865212683244880848697777584964500419271925029751214272079782626450904089614816634387035517456164397336131936667592736927831107044451204666505014828175533831368757306362911211220125815864708893470015646918032421639457921466748261247134237773081455727760177900602923407543447107851022803117652290538511291075211606969436090560372616450633045105409979875476723474995522970315099705121454813696631584675288516099059610202147124075480346404341592811546467016596604587819423701255973786002923911884347795456947126469447170654073117067701833680727419688542592137754071996877319168558449030492599580501554422055290699926809879747766159926288945173610665570841304826946850760922498055623865242857143194541739546690530485929539967875556293048344933374761139266727946404164616902425342601684510681652345164724816555954077039303962829566358581618177224444657586020337789892599826348155223613094326796692992824111742972935457292722402205065688890124197546059136547750239989195155501705197374408073320724270489433089224823294983222661696905460310326490853578925258962352203008559465272331503539178329163517030728841996549871641785133961709600871064374421771003062444610530159694885208269798432107957061071452819161675764186317185369401190792164711262486543220288306431358683505006547756503953308028447083626357786180333161831786626844847733761791710346616690527871455458081497218067465861455298406221119630157694070818533036929384166084754123848957844214443157572768187242183385151635135252904536649715551661613313859902237489900792555964358901902240794283989896793436582714324277371513790783700620971625985943653663600768752213100435283615432473073287464159555179543463821805177418726751414663785068109954452373668776338269468441118885715664494900129343104247996219846571504041652293488890222291517246550327238651960666773737220302714087326593400395980837249999734100853521495472924373766922449940621005764129937597835417641607776791872883517856469638038297550823021623063646507225366511141655186049824652988506654196448424534166982071814800718679845760601345967274720202521869421010882035250978071056410491802372001995913363797097279380042732501521646589962653059833209907891014705255263586703540311976037183042130224832657840081815074551507214635737143123801845425428873796480510390998132079974264567716659440185387522108320491897596633076831495331490840535451131509705097500191249728206796198573063802687954927643620154990190518654611784316943536795467130088806319491493990711036964706427481138038984340357222666291691142876231016355791763774035826697499256436596369391853359967838727189227352478840088827396274471796061597264759915696483226371089841516684631028373494061652821362126889811549243192753656779598549821003069737137740295543001036428879030216569399964504961128072085426940089596694609219869459972473112856787674227911081346056149774699466227125178459054274420627419741300000937831592345973215434320799459001767317153314026288953087553676044600981281917563777106087656801302266345597223433018876724727538995045200992336294392600111888553164896320519091329967225710739333404324994113846615605133144911346486501761402999290547699608824769323795623993157955183472007330852722548999862100271815015531871011590087654191946275736848250298291005161915868050814561435351668615922065992736866950184295448088816048209339265059551244760036081690467288006537032154992100451340882196712450890822376217935341005532896831522576494581815558874031748657496322726526899576133764769686473147963818741601755091225380223359647176752983470862192566362475503663016669957516220078135999698438343505897326861304359188751892582448524855290907663811878545270433695804541724192885370935340184486298312636924184863723121091322386275802847251619486177651660171474897692069786000461021001431296256749083854854060724596112541648169762919713850759908277904340015876055875875179444379793770454521710993784531277103805896641874300322125492311899525191126795766148879978220816075740159224012737845809611835891932356555019289890795209375083582592923977504143811731524123146746031250164800043183493910237085173795335587084480554566746497990249026142814959915395742507111558067986817451901941934563750741143307610832324939137933388445409366672118776864792598985561906047853720944217554237322991299640401922888912970935296410621596851646600366866105413069159702244772141386410536608777397290814246028784940660853274075509581198724550994214162566125570440980323941910815822055571624701691708781968151586798216727995731143663774427441296459182354176653610349075473892937516905072569411436890974513800454766887350912634340785158887038968791693346332850282858361501635716571142926167299085940259713892515114993040829564444991240733707632718289612611387294443312149275949118033083446582460535731834449141979143468825375775382334904904893024146283704552309117011078959297074531123768535209064862526875970145356946233431410335321425428178640167010534305937594547318938677755464140249550236688591710437986614729814766032847036946158981228861653660636646454225944181288739278014907572783296105534221041178377005183724175222759452361573982311721557666297235596267352580085950122024537678954672620248953267822114587025989013863251314855910484976159267425180819697095207741987845817263253537114294391652918806948278815305473661519013540056248501135587369343733534790600521768128469583458707870505777092594093932261042091864661226911525521299532972115111752553138655102271884601283568040078748131883810915979690435115177211034033104846863951745185860456832802849551838826851369269579675194844957200570327289763807612834514708021679123110267909161566913994352824946626915130496181756639987164891887686035970472386765911107372234654889769900042577877679929559253254944510521237678467366456789031623853661329572414201351165738039089555795074188771539440323740652814914753901159852436622530594632630258422553688387420534049996259152514740510916238365096234913320895668745585234135216383429562371061652654325442800167112642630703041013615187143769023444514925209907447093398741742275614929666018744212221899453310037180898480147472174083990492365749218922093675789264068627619013544214468658010631747162655619447514245762021901237970196849613045470278235330772684437044407679101630558502460783452155358257744859448878246933670508855305988284683005584654635598618577075333881705733546108800784709678981809224722590097373714275536796721125454904171093806867145377281824815793337289234048870294746287937795425204165317775105674958807995168533712521241755165950051325826177374001298641307532063182595701013009599967394219031015068273811099182668739505737446070885724336504113727934980791429171449780088056553910542465434301765324550560241133061483913111032931370632890077312394626567441137917497598076001101926997914168042004077040324469722280983671019430215552852175870984955094410367573084626996872944515294063258280563830885292389838644393884132263654645495777358323271689156097863268047874090609636191927755900622220172498772131335715116056223225223592672779471959978579080132287140993038974343576618902049852972766496473338350755594234483076673193061290990702104200620943863996683102975046020202551042022241433412822019128215311069575144761439559131216474597348792652900825518768519227981081319446847475883853510909330026431275688814871844362029569756894043471987241996754732546707122565204403984875157150202912584493509911438146350353215283713748624179747646267038723917874446248388648016851223778646231331474977435693848635695891232888069447718728476995018952991165534468591592175822068104263420331547213105833519909479028705712945055447331999734729929332492917267792761323118245354542649307111317669323047459815805849131940993499166317280073800879134772355465690556118325342986975697256289242350714860181633233192456442380019769582503278969633895903297953783601270279891447328962365061531248545907087263581688233171164924059215765523487815929562015915392278857427567752927894728686607315312370005421035213056456726808564918516438783938953886976358274414177222000282943263816693238919043528421352989789653872011435221950601985071831415114841399038147594159983791883525379087211706970351003419711988184492936785706407280645545735666841996822400920390451014075912056748280180582362572578843875047822652143759010153974619186270904606795942677431065146763012414604625123211779094409308058302047782667509242506948592216133568254165732872655498903445479465142253998059064901084425911466351942605255533838198516401399686174087619285959009849271435019510208416606413076548961412383884942885497484377682577505227524973440221483614820715724227385045359280814434319817607398356480887665461911373809159210704284128011187032945552328928221967978908847678354860499641054118053693547898730706160783448263912172206531402136493030703261391604365870127728812553551897563286647926761647794162058211552714947873178167873424017277898246892167393064744495543107748591357547640181704731134847243166094088494202481044461937162160652521361001780792953395552815820366198121555775504364398382291083405619250026166010099287655793527124270679043027317680089335834037514843412511349091186335415375331694802293952148082163048397252200931162922134169940180159641482462969561098052775093935509388552295680220788626847559309072353797315745229646229169158931712443386116542766125358603365366101692870460381266000810315543522937098849116670541773174196626492170719394122959826995430016131293545485034045382387958665109269302138161568412636739607635832511626241495865155960276960389915972862509955656190699333602040781568570726160398919217295368310593070168733674926848685112748460480828945514361035675402632485061448797447410863065615070547963648314590585597576219980914388598405402163939907163037855996574072854280959154196730971791018078911447577478615007496709882709542249687233963737315913158917766617269401733645569575149355487702173674206043088156974478215541674619650572004858536078420075883575958905853998623401198493441889092565027754342143000094621456858664279476736202968408207040386538660794231133448695420053435497392379937209764432828112783336636784782308939550875787203632452255751978518242286372637547946080330995242549670932299365385119945024665051423219522688735788066662094712774166257831970254954676799227874193351967114661939102901621451376572787444344796502620303621306766214971678384840799686161111827885820256569664099849119970688100603743172016172605841264988952595255578557860609009234744444705011502485303037200629599008590118388818243879045566573610278219797144660633093637245397100155440650213259805067555888463983660660426291726168074121703665960518229208383892742095139692746692123124705021894965682062325504199855194418991679351480490276621475244108068837356707348368104155259278520190038691301114660192956764149451538809033006215742892553122300226115253804387424910027757688914790474882684341146802952681289688357905399827190242652420996986070638523965029626202910487764742989630493296371477151710332166205571158144868922318094497444283161899048736635691981192631880356027460969891131672118362311561322127016591780159857242956716674982530111541850942269052585206425718413978117968092011168239895139079003000261067753453663504544250600162805939947925322728423806743212155120281959135209437837561332863935690517576095421677663289299014363423363462719308096549764014497998831163831566453373037242184831545295587639524200337143239722464686727402025797738274427163083100348010348326483234855107899833171118624417948319292893596991944830077319105706396065919427936547187799925811929064929776104157278675277764247258604092987374567221884705792178936437955920225825236007403294809387271874215985181044897249625679804772342888168741258583239048792421860120105215444202474312924613045082156617425221183243742372831105346094525334147624489143035998784567561011219867126621920239152963676974076767615582293119803897821823034131935560906007225933484173667798539892810626113575323623791674075275589964910590226601387463510702185193503919976065813221569648259053327387362720393204282747974809052675339930425215386718288337920456804147134708701450599834223332853198266621056924939329470425003489893729484603327243311705898255394641662203195462602002954773064778757413668227062271789079027506391688706217093304189954216440802307975899087460333252162727989859182602661116628424405294821944688486709008069534481709526080442967411629503460418367235675281510049560963932023560712092921338491407768162199346917726615915936569823197673632089889065680756349644394827092388711409020365022043892349499862612473680595385993761789124868827812674739091195816833452812758211980756385833766674003370161391703343127880287484269679467997202195801349490690996989198229442853075742765519437628570130878775100053295865892964647227228370090303605147507802720133592912253813705197047232593283389544578951300057871910711722464017506693138310648313075716053551843351628075594839967763692993958961697198129705035612332587671522893460486237538391763360500837961202625528136681280247707574501707093595577244770051964842402075785836330121164181035798489106807421892854693933997712096058810350253292855177452368585894559575513943994277130469181315839377299376157048089302599049262361495219642445876256777764385434786355779812268840741894027903153215045059576249311458699361594417057458881807804734161619103220851166556770592669189019541863420754425173476183606821635127389401794404580433738620557000933803592502377987226541987476048415765740730542597422630305166040730770698667068616545111297911327526664219591602238139185620390504312893767439496285357278242940784761462539868328744428686755566487831306115558498653818165279019937561719624795162520507533490540403075171685830589535513518463105324846214388658143579272877815147034745821129302162577332473216484695705810106458569098253671824794816804510434586308240300256876151821349186941519694339400196914574121787936895860325435680716655352862770246215149792450588650070438473323676374738852209475669536465336246296102803935634357518992448432840398708610166201673493575628800151365511426536219727935478600229474730134887978461013322992278439422750799111650028213209102015042401034969664654546425632442388727107806740357738704491271283299952552178848268323036757732313374647840956518358220511329391409118797228572997821943059808953741062486981839540327533153846919687650146750889554727904109100553849569862890254486586435598369896837736904058192037696412169913076963534876223622457787260989885469906555088187265819429293011667995295875842291764112765310684605593391910123915079872716697046517739112927644378647803837371096649276708098455558912417910579474302021389812926117354292404199568701069755038568781374291016850564386626963056884142091678647406320742223017070760911575948638286789739305643056341189552924523297860387080204806187802579080699007016300922650095950066127757432189400950186014974339655333165498309332105481877046282224996747240592258976802417151389910540754009051969741680185955725424470850519714701853556185252700267533209128226553055921149357055725264572411885305088916115600948102016323779983762296808727706764372360677717977044774906767349688469964921139486229070213056547347830158566576535149438473468097604491065979132308740693710652544627432803774914166296347296610594304094517456712308981217198143710617763706525789381566489534692449136817669357210847321760173376526745393143685461333627432165896264349321912084791969500417655731573129170282503529954369475964850820206544593651132457618559190423044302265169032119500210471189472855050082142521817665185211175230742204658802254962624705869209663809070997688517850495946627441112286876221870983839920735136517632044588057216712499978125958486665758817511569559954884177779271286257800271220427129932035166466598438652029993726826132810706708339618035384271016024342670296610345858969428511592625042984899013732183253220698036631945848721848651386793632387417288897662075230411949386569635516618431055797925274266798098318203299356044980952191237344841162683708719172295160404472309411327714189784272646052326621895597335011865295115672537687852639541879465334133056337140787057019752863212942761683739095027297360784286193972928316737434507715448244070712786292118213774199242623784494289828785682568193475567828013203782656394733132358181558326546466857975619791035773584982800143193103671514551740105162317301063526826616134115777949949683716482130245836854352768963693666727378880563827929943429905492850625755255754050316617990814789542272999430937199467467226272093713996915583599872819005672561259672273310258997798613146681175266691912829487380787809491511472477028837618709991980376084765905512869612808048044555343060716415859946073116707860225262174571786082623217436905271584742272667153037670119557216992441487183233165349471196878621224962022902873625485370630887845276053283646705295662965758843601393101564181693362848764251416444453860010653293195534147294145889908439696719469573061784458484930214897921773357146846880766772432222622196481319551327625490016348962664767237012972634533232391100119617136019076189301649261349454069999893066703771396950655309042274066629960723529871262713980240800227254076844989118654012297559326512144655685075219276531909940918541271542705799171323077174050112599561104372767757485361303019404252885614990112610686449470451987652772684130597420642755460687601494160821669518220916479843560025667805057673687159621178437643558876115925434469094044877381198852070463036423007437905208958564035068174316314748543661143668239910172806520585951152621401542567515256601232845133351172373694384101498953501312466972470182497394403037976006923580307368320138074849267191233290301677286898184598597211513189012147158045816879715120616200661736171820270877282136325986011527305365959653286172958951481348669361954721669192776180105566339905926545058595094745628678066895460170228334297563898202031009143249099768916958558668310750428899811193745925789140753375887560609508157330151939644135405418674289874515531783206439072016364885834545006199284890111143044488941283481850021415118458679432273801590085545686381578451406551128464589782603161461670005443494763015664945727841449316482130790141624360233830517847561759833118461835371330731878603116414065919891785990078592936955583620210492695248572178967097435889189356681730098596517113483190106278149293095610741299675524575300782435395767119066023716086239752354264139091690200981956492906022922260053995538512104526303884984509737219918335859753644856458435116691078152602982162094955976426969025208658443095736537827857642633849171824548441144676551931280446869855066604945637172666184751283107068927267182951045413907112835559678485306753000671197487433859587961806973891009804175565549394486734370539946615609197548800094831050066644299310950046776879661781488813805788219450004316810376534812483502671186023308133957440713602293407431225291870013607895975108072643613270198931375721027731723987903216378471412678772192120736579540955901052241998323227864319314287074979538371289414136811929823129230185425259998160040330544485049231627344319260551904879909531376454473142559545672592671329544560086259140940245748462191289234058271115168137847899467292556672505269278719328819391256256269773929098760525716236086026339245652803732646729704372463062767613885377564252092168295135690375791167359264824481217816366826813924184534668716453633741154243109881038515376024246073726264774466729274651528572767034063279543236615371506647983309356787090373709443296653929878886367075057656228198281305319968866340104023377133549939476641278822159235721367211657008772083615685383339935151338240818156785223897227530303624788620029553734199622594132365137769355543318514304398084822056639493278353374797631690990962261783469435568056982936477388735275070763820972072642727184982448648966101394357023267971106904533352051565293786557890484382507908910958452025154824796487843831158384915847255256369226074261717511018091113647603448162358629271811967806881588219554390475587958820564707460430208523679001897233570394868072844321937962954273493875393014005361918136734489443931087274891150209272579606475223989251524145043457573921417943333256904221752122383299131146989943802781308319348058729023284154308495249757465760948300587011682524525903805834918984020708478036600560722128139472141251562621408891084113110662403479321623979548337453737983826242617766538269237583548726580082512515337390201786521251050207252131630512447656501345575878826134857293594879015629188789096021219394572808536624123027490186976267118882304943946768908069030464212684252296155299858319488251524267120299327772482779621022696278355627303476108319380799283552092257508326640038773375196155761981008146293697944796967136670392513737067482796111778166426673287208292312729906178827670123473724447589951369640530947663965032475911052094810610073619039114289339400533870456999560608125869031367859369609549507735119675282825986089023767232172315953890049369350789161866306610019731373015989848812247919554785006785102155544883206034448531645198421620110735795840808863551109623408469513406841012234717978141484426551791411354018171063945047013365780866972226204250951570703581383300201287675943434797419236106581607040667480916753444415176057665318144069720332330770059584049999181822682307457894219896627339489385392598891379964723813072630374399821278662545365494003770816491571044566305807519099878402467373959599535423624721167288475057551858315329020919982883870339033314580403065169285948404850699766268144277732200514534823283026146838508920169723181841824258878753613035488474574507476925349942347676055982419901802228692841979290987267313081382114945636592537156796682473498723571339832547972458478741582053665800992803943874615681331144897988706120821387165534127759077595412615038272044462107442357581831843570856415668397301931885470237707305130421912191979226265127788475547300614856256697985162432447330497385627167775351873996428548106275450364326114004410283930506895516815160192016366348621455278446237646706525879942672706974925026523188337403516855152313037408714446293473903303620940982848743913502388140752596877907296058534577828315228180682555726011550007108276208494599910265396314435791156155893326980798817509414287703909646736758307119736559089825831882414154568179508319195333854371751820000124707095069891740448595076530656762664862061127971553070886626046093502942434751060409560833319281680974494808716750021824041603187015389844063043245030952797897645920193515643593996656028499214635273302725748664539104597567949333902801095771491518057280871019014406880124339408045512144966811981741941304690783253264334353147889045840491728385898909549554872548462965546491606737379607461261082642243059595336463031305853188663636915876660106838807643346246615987687333411228499238408739355984491367296119843548503049087903196609307640440907718273119933058517021290804947360656084896601193930524977734916363596716293720236365052978544006156764150880585461209387933050193215198915734718097869333460783359422690158224340566597991312256356233492140117395741009207984498806177858191843970931586809623945949380963622358469813859172054916737806923120903769858557625999011631286426506475601343174691277388471920653560061556574813053769267911510055833433716243770360713427539177674892818218733187504622913493502377048400053918083652090379815831262676662847537630107142286537347726898551337713873786716193471770903454514258490895433308878618822134063230468418420005605276741707620711783886504561150993356447117063737721584076494457753898866354503430543370680952513337932710452723218490264825532121741334110089267435967161039594996514270675687714425265314676400631410307746599479125121911757517365260095868348917608395885465259442036393891401641696281496634122606589023097043044271255739063178304662668056595648826052404828813335775878569103725288375237986737646517786033582293493535503488761278966954298207667833153944669416671092274603530708618329691402867399404615283056031363283564210068616590818743501364198272481247433829726153198415005473804000179081316793958086929875383409206186475568187748689792437847881282835013937314783839186969582598963687890856387853602306719216902937138300435568737360078505692038592043103524904434760729388777878190770040891813534232503130078274356209437698666531284549654585856064189850527134206884750021158499771190157270185217224385924775871376440156870440040731784927414427839717872502754742565854299068775649767899571842526639437876423253911229466419696715939242285684404589961913492094303076188042773629696722736804531487415334370589807362956414883348802212982956761418114353211916684038982987986995736516858993334676717899035874863033654042890655990802551986795932899985799130376306937369715569326833845334060179295224936480286048372738341182868663963948141309359255997523446038180686878692642243897358147723980205751980355121840222346251050343242715716094639053116626163703986320241308450661543692284909310521799101192941415554446745906650515847514093626523257598680837108084812630872725183497670597624753589496075496864396702633655158109088662753541370934676373938252920516612451706181405239504918506675473661775678366734349179584629859005123205384570093440663167204418245971583594056767519653309628802327783491302234458299186179259352395577748678048956000156244792858584608427728809375845755576347317251315367510023590420184217547487438266187369918762891757845273477190943421452282007808272835150788174067694836499292485003193556198252612407182122535122087658985371424198809581800192433117113067335896424214168180971721689220649999382936936017731911914321465177620452555370572467553859989652583561849399144895459828175688296330630983948943986053368973459572196898925738161627595284610288545828530658085416849152026936987611532645180190645261489876531302268189395806020556347695819674904334402929611762954258946370873589671249551353958000928074328770907971080621452432569071462999387588108321092929864252985503626275929167083761728031689563246203010801428576421006631370157230524786522381131404440233225382630974965311189977616076699384730976070096402934405521099905567753034629146825279297474243197303589957028529285098133493865034080291949432255988641264219280101360810060103757114220680924360241330846067379238044060907245858999724209762963638946364941786206582769013119408330020627289007882784884970690659803768720579225216073834352140524710602292186694030167884846168481861353622456036311007417696743685756043647970797425411013121350398582995183294708514257491652419396229747918049167847509631809610850897690286352257716589676645109615452963266568280753741516453388900165454494817268117554641288863293065356329824455062006689434372705317177084675674651838163790174275254640486233790157226661716141978044055519365683792600719400563603684423197169319223276117705132924673572698316902761004829042580977441919878122471774192292610813128279734474584897540836417620036916435547356726757137133835451709600459743892011056040647616457568010685843440840883913407808919844938782128224968924671838748587291737759213095912818121422551767306459431437472783460465815763322990085267344520518439778382025283166773494883871210474769219863533564045806578013980657202266307157600430239442717032720387887343652949311940197180703377765253121163372079478136334050577329776061911545038303063552619108130080535141258852651171738324364217504929834967604471058079622623241321007996026657407983989679930547155728181589257278384847592289498554198412664019554529662338813892773831258699707214048851397779751517588472937263443713126622208507159874972102537260961646290204760160329240812812281121128123222358753315827805876612863523206863223103342225425333930148203138508283118422658427687637961356317533754711968209558245738809403990470136407791358436501896810108070893669814430933542150352893094662928966447236944004286647705167522096617229811998135002275946765920615283296741292930210332356178542747441963444666878789404760656648329374186033040557584949087367201267794622813525227142470155191200245522464694354843248391818570154205548224390275635908158588174423772782632865399407332191670337040325897317195461634569959645832888154023427832876232109984488958303939283095235486808345590865296204599247125553541097658531840152098251304413469782377646731513307937262833405635530806592189790640900197250751189936526694187778173392715128012892018996780890068361117142136506639439796645409018972159632654612958697347485200623131437362594111631423231891483210335547946013278769802842525178953940776269964388808000561255629831763124804478818929223798629582408147198671756578523309002136488423521897961803978425297129019552363378901542190626391050820484136117441724719799519295305964121236053200661508495243819921401200913104509016418520186867551162078595247412975882442490601169702581612088999736420070241092470825593058707666599135123056069245567615555236435620494385585267379924918151786594686386950036854171081579653405154540960637660368963378719166831525785928079977904541422010548274290240559298314260260735693306364103856195364545508622460692021054036605699462557629978786375614966400246163661534775848071692295117406910772199563851076527646919580996316202880279109394445757664247707878428298295736142958759597514775568329457479250404003065332426696965652569696415249417040112958275249928709211198651644749510895700616576553988041742473243549478970468087656998250778476679133190199042102645553457911057628334309946069337180814175441903689973301598907197332959314858830422403695786960783183979733041166807846913583300933763149819396124212078481711855337293727090671314445397606018303993834153176096790948128512887350118189034446498154819314138360120982571618185546912390429702776470000780437166280701234018591738784620539286690377413112873506231031843202898237469168974034431474675704450965641846302503719857238470731427328462341766921946225169381942033352343723155337014386543840161622954766106261984659517989084547819551334909561875509202527025083984386126277183945149536900007874770004511544266517535819031039001135856442498577883030596648716908890484378805848825599656032631842351609735309431300625487626568610569722691828587373183889547106152308306981725160598782612704333718572515136070241830611018725314847587466134421895588141166097322015000189357801819287219117308337835399044629329800514127582286663458168859004880032078580710888331537102896339906002956032910793243581880219435614037946767025216919898311553175893689717062062088926892438396825580837352661804023771065787408630737931753929401304605371781439617991198579855634835350166663613875359497760940397301514977085703620267057873859459943897613267870167588201746376933936994216325918650506986101896245407978886792038707096412943816691271124091654107443149927190470075507456922231623288506645538420090677985350594134898731991263235778295672058229257064423250966110472948276735410332355256446161065261848124511105772202376772690141766293756937383491132716020679147593871105579461531027585858419967346846420915418724465661268234819256892261275398152276468538983833203082407084222305828109342101078738076082516902439905125449152656604959248222307156423960112538665576909805236662579310530866051251432592862627568223953903593306777288567474442767019993918618786753077885644274464622109878293263382512143443988536902593718706621937387612532333181834916099656863142481520959622418459095465666488518721027639924120852822598214736351246168317624840056704723801051986909169456926307278309099847950094280014143029682146533996160041409175781646598269891143900563262852849177760272029456949868106099291728154500607094188856359480583879243639937668889798983113055526866060036440681848219798205080538683567896188173195721493447655412279101800328091020911310536305356759446137477724585010532848093988056726099235851719774266793812873955864131405933811901957327553046313557023636722494379567629053450981739319302626476044829083586312191419800385621612386048496248052658382915907903919886737444891927922260328703832767816447779943785961335398067455274403949792992272902126784359004063659413721979939401991359327048384805358861105455412023010246832887102357355574528373925038477183184721041666511177086423220448614449753009592360893502247469309037124732157257696899962202566868441884939346157300847379121126402139991522760843865061001453396558301954341229816466820282407439432726886303161867695525338072742159185623031470760007210726924720816511805721381945325128734761705210391100219656407807264234392758840102023354756126478952078769128796440682918307558269214369930622667542802835693105827794297396799713501275017992539000086917302825661276667493690829772007883468813094375892839820221408246759927012813559013704311650280666762695970747570897347006768906772156209640549140912776965414505376899029238831676403282046460083906167545237350356357566142181137399289021770804989767235425507102634739508469652830497242893421283609401800600959015898560562707790087170586063909802280860704713251461661461725041181842516614867981518597421455106507647399051486008345675201876020282210965063392641414184767922075074852915457404651985136293913693822395049685870475216569609814142524732899635385028928080214516019437362814028736619865949462130992266240128790275263834623299878297205305626450326535318985301795990926783376250236086597202331592224244024545295122967544166262263731291489262152368513798646282453862348548709899692148863237801500986538739335631499505628757959036634970280336857265324337433456191943250580005647060282729073158710576157864870738250837328891995105180211419044905229682421543994181050180471715118357484663629314663696549274896496683520358901152914084549886704187699187023693494243634396347637340599338854379370146171261499470261161652759809837054050674175412764531361304808785424046808566287244084661037814522181792576349937836023361599871131606127535044528169919054616519365675003757935111593084420587149124737282779476240417944832759870175120409258296631417765849471826348489396600829071278817805930213108633014671319169348983923486198197117416018497431996098302998100531472378816045228164238825001986094085456645786827890025502026689162999801719237077346368519125080066026218637601695497478658273093153496440999543387165186014904334759397082873700831758633722568995628543402605896436481857273067961932608473625415329337197865325413796029218739900993823475241154781359681928476190801211374732514961685670108450801258087938889321600638666613036757158438165123591892794079904576860397697335239049163055404516259980794784091395922190549884305896917031803879320220832702270650383664419680604379222284307112005775642985831094574738953806084353673473105935738496859586269737853354237446631643911317570215091504363371168174282152557898733720636850536688625628221919290843538438176426585837196064722661385313714051036918717606860208072434861085713640440795792909993025199727355424650251420086949865115214579124231552201347972936886329008435971858400496286720896666005627695795986133417522432788884661769888175380892492812002767712452650402108598038916087934911460032929311584323998705457766116698751547928037476294650171252463928773995438732078864833043369455642766488737492670286541978927505983771295773192667210169190778589970960347386593324444642274508762452870194445888599620848211399287726948891046381036531904535499995977313685757762527977604406210246421554068955968775783918187982171498851589207423967789960166477923498714199174216108946199811056688997135350870356855449638245765130469254887196169846658274706037839997435481153024665614939480843406881609574563426879254986899071983636162785479294595847068384099308227535307035467098039012586552890873085580096255444500982595951182216091342800999717621249482596370749727642059067382416344695603564379299284168800816567762567649679672565595770025329155002031405179459079969485788988898740899125949073368748780884910836969464059137945671005184502590781555152853493836580912701372042233366482154383943216925527966259548045072357246043859720956055081795123263420021483915670199434725080603616776416000268486425221341676925642892111391806447305955352645683188698119371847347095120122906010166513895318361241878506847508037250336624815407166429946244349374272205594859260631012378749682150107451127608284898730683902302049735900076539548982742606028872821092684961698374357011062020560211130036015509729229806087346913804265911477714470391227756432635061246748233201130431500719624938082668920182995692673718805709460671204598480866582182966890095509125023028037131371437881324532920210571182449154332601264843698076063211439863623586447458620838852523143545898706705877729196969368419222524375346876540030578177604240685140405493538456633080035985701653116150308506185539243063291821357900356026247684245038162388957470840904756316454441288694315620493951988268166756610912683886913857429985032911727179991825012370583225205653364811142962488689579569071016954605317317605111669306486912546603288062305332875706878691583002811151484556858457074029850597571714021908435695636800720750475290188704676342180654737849954528099994383395225670262182721527960862481934252959926811776430813084109980586213487257561578219455160572751060058647503616456575245983275918233627243149502443563506010896307307621663358832772431303478519102149307056689164770128370098036227212703008884210058613975102435721029342097797511469383100125090763862256043700715104035887551465231250255830896021708122385127773818030522853154140602190286342631529828822354958691352722338007411064697707887436607152641417116892595208568244901717746625662110178503569159151052528390750940355378452599726788510374362261415092424120369448650249361203018291606984588927275151660179188981112204213635412272807615502719755778196135238850196071210940396894529425190168446121691091439265884341206494176168711684609792175072364938506111886953539007784902193221140444877363316888288553504574510490371994780807311981290992399280643840325782545220205387238125844003152161828925224233377300498752640529591117161279797716746508153670888652818525639981022951077262983386608098540588532885870982870782948341757323003453177931745945020368427176721890886514190080381536029348607187080856299157659578677896615477292148358683366003478250325030451131929757932617215486382947057713586078341794597190555170232203958932056677815997273683693366514244929856332600023033596590833273741047933721621642394711550467720674683174584057527731296888176781428659410134331682335529601112587529636050125459443659350965066978801636476732184103225503929519961007233863839678523628602364575039651113313855077219279679520627051974784888332227735365314132916247445279975863142387706192391011615726803595536027379547757861462914169414343289984217088530078156580451926129215980370149237268627825926160793241920917646446735288711246452998413471723987206724703653478310743637512589138413561642266332583938393290940831757540751656052356131403341625708984077189762747461026211312286575990889230504683722129658264305887402231506427693521982082505697169627510899232732463998544689521657414792844075146640609235563826872428767584767392626890530930228371645008987541734065670125945996525745215419318174764562572308675527387986343402881251300295048682791620462849305763372670776306660551500260670083147526794986477316022473637569705927545522172598751594736050073004542340479917046230355016384532170318403434349276203613786329522414726934456959890180481087052185134352292421285413925026152905233494629417746126764121610974689275788644078972277372027335029028774865910931499473042471318486497539086608906668302315904148576514937906095271246765360563697917832709766852100113898844418992325549757298336591841650107405874003190484359689535070275787565126132595519684709600940903928322392250062992803784444135996096550009539303476116416078755299595803930670069044759929401715825847742319438576213358092262655186081526831072574555354844740543865814538797253550347880708129919262310928975246873115375429560284735732564383185491432905724217681417994628960188694259309638934864034797438333379881988758301497558662773032210147282248003527979244928458352186918874249687742493707854326321501960150943915512721601675401600228064262414735389014171620725886728658544143439068113775884361695788364877189947538121580006485459457390640230584518341511641264203402799547180660897247119646075889429353497311076596636122318745285188216699299235834655116639830668353269338282744881034519961603131304798174276655781968072505554947210794821949390141862400024645361374875255723755638871143594822191508841941506240249157679208378780461263638247915935991280252464382862670645641555059479293085778864792999115861031674686398001081986602237078810328925680652941984539472257318253708788368416758299886181713571789605671353902673815174237621189193353523449805638642073649128303006809594669145092909894345493929112055773112087869880273421523895122315730966006718028251721949151688880558204567805455841648053118969962562617331159611681929729410874203348494751428924894417313403887513115188918620775662303546852816723306174669867765082563053077343475392987550862196073141152058992675692035785647373270412930957194744014936428319650129996305243807975206550820391694449017208927278301247530448379713178092252341560832017446724671881020961045468497358292169429241394532309823752761710275947199577129360585565731682134274800303702146929529929073244863917410755880284733058308679741213896075368562516529396606332783720024355437797214924644675667204449064949965905017837295598676387098410466368736628254036984841307478785755922512303053292204267019625372042378192936057477791047596603590597390653766671671667858090495013163476971513220334161295219101832454999795411792910415514250442577577642633927766818959610866848425919041466846951228570571256290876786186100931468253105158150577511911243632006348439723028134640876101200608623368475916699200778220591712214958579773387062833688393107779798548914015293420642916581708299213251859244698726018263385571988540366810395699579194780316059314066866623958051945450526496817720868123122947141221997266998341751517710085828851105378880020816848985053571199030879727681734178229899393435989675475380205954644276975103975593843713309349579632165810807331104355542058938080814407204828905018233426765036631620475718023836480697401479686990803118309852331191663032091972501742245809250197825674539169843032665731207358073459375993681295260409474947266284766530836687840190935776117246029658424287133642786924618976005155805898689417958810763192077011411600079844617783429635649849355299919860740672188294133232709831072342929990325642131739487401132676695683360783257210248711476893872570916583862178446412784711815759499800449151952385650881154497274851787751838204704446842878561923979044670688378584407722797439676876951112263016122104972858905422875716835593455006980905445712677350274335985765796074946954658539357898884586688501833159091049596303020483281844522277195804267267918118296518628276715449854192043963669343997399218377086687536479895078874207732530165865948347640248539998740814194521375639935424062460010053862098393176871748064156566931983942255599695747186660383817306859542249205267603133740792256554726472615845009708713068214287815917372453726070473287505755385378887893057180575338979755078112816943142113774962239593437107774548785973965783555473447309760548881298731684501412016170674620829855055996927425480147353055286173336549596404277217368379517043687803155166912186004594189274050038899089390005276790205353645896353363412867034920337120568573005636104935912364046139045492531593775569864960763013082215321547454687196273745093032639462544276119968438432727452866262133775930049681358970138253972997039245282211086439578450965626313586458418988348024170910106041104593643094188398963749005170860611271112032230640845651931758772989382671696929931813102156886778475659320220282085186209483810091950641381311682832585410288334872552966925248370112409352014495736120826990677458000337794610678428736202330255058173271232879263292186581521635444204507569653987289446991723969733106537407112226595857127385693228392723734772617901424248728710048413857353666781875923150986589991243056151186637117933121113434093643400034082981399158778544085185418055704203392189263020621166870293773220460719121601035305617046094289939395336307412154726626811296648248039470393556636222140291265842583967522637415704221581402813988142739755219961346226781413799350165915439150640255247780090435401504143932633275440032174500745763266930700296404701317136359245723632963300212083352050887028085462646527439201022929907842370993670097620460708834439067692394059792764675730254938588268095384377411168771937614385212556702424710508390567628697177788296695012774274007409430379087663043964300922185450165583134377105513427641063824824951593224024539526306881965775094411834245412469206765056114533227787186315763258369758659320613488835773568592444513309696283725185676189418349337757339216921814570607695838651583944902343376497156251005135667353757925647836119766217134668203164704606787251411041887975100558102422804808114228992842615922855221400240591235970344338121496304102383282247151378528160186587006475241513158043455427987242837023067305288232722315482775347967599105574717403932528932733878837340706313924157337204355716818804942467400873374444556976819234895001643379732025168767876278448030178652366893056642336115490927300475478756491466141237311423601135246720992777070633169381192766836374900011581745638260674824598079337525481210885899544303750476945670830692872284780799113719130535457741073771684080002676312292147197586200018964772879662765918493507066689380324791983176122439470184775008992023434895002802193779033878371657664444953363609102798392688329203061696372305462903987320107541443663055759426137092438389233660902951131501546199977792189204959740698330034537924131404289694900450999972197205873537383704039470517418079927831927751208157826873732221801991632328783796993493331158102168965593977228976902416860935387499118958898028855465236509489614322804951543069328615025262335177648604369788452659481199735377870276641863875055943576401592348723117216765308293620895578926725422717223579909561193588462085662889499137436845616728316405630231300190536787889354870648156080745116817197693038823145999236425249753718597217134252289663788333452317620591517885582681970544936149468309322912105905078521091114586352859230081206910038314676006421295315504984704448010651705426980860709135838829823617522952691295353074521834886357103471369112889045390371718307553866079392099496200907755451862501881282350994140180315741912049839905003683268297915865564837455752728944870129816905804142294005221757785864151799755776563728475760514376501433603525850211344090843174897302362155749861703633868001148887763926101160988635992297412224297294669895517618308403647047804704408329303450933143414774459034602323681322790741603644541876791019262152923224330904913363674054543475565697748520098268836468199164152721011008487216634827770358953908140523039580244581177349601484187828565320235792282619829718883102383170630992510178971588477165001624895452423324758276688708312945452988439681911625870651216233558226797090235165855149908655936462105365524649309655719047618691878014759567221372058478202880770125715128900248179563708460565513295819180331979561525062971323822986633310844928471438327096035808144132934921356850736160247823901117098012456647966985023456587415543370347245062447362857329918279174768164924698762965401118753019864152006774318661772896861155205343334298092206813853161504395734630781534532310927818460608473132924596930309879570104701104867101759723702081609681197642022557540335120870745009323099415857853415630262985153328762720014910713783033541251229220767213568540735111196525894685797136410765076802090591325263983857274226379212956426280488748964258539222919495266642026548918554046306303547311937436318979056068434159409056521919283709533341390626539683328807190595795281907607015402720858166986660369281996269353672214534780330887144504422714094062182668460168032532285237245890500875794842343014451590578459482337452229959330626756827491291041960355057918366599375832108765697228381004540946540952490519724481817142286729731395791333661586880026871494119591277875040365450710815643785776625290594191305776598498012232649433634502157162846707086012631637281579590291504914856103825000271952024017350717105222080220230640334252927135333949800172849372347356871017159261523495554841575982555050798699857235938747226311986726667193624302895346780658864374439088082610041817955350969700330242649476110561366031164694184974297656145976749530729630469646659272280022654239118302632277159574147952316326323470327382907562475657423140528818212674549052256778876227515665156136027284581435967903826625373303303520551764142879588843059939627122924588665210554156626879060525627993541166572365890392202579968390572915589565139659667101265294532348704016700232306483791264553788146852363134814417359667755169358056780338255621803140498173857321679197676355676026917491081377649491271606386923677212072939667105001790943324481491253350607403877418677605375435227151102883324476803015205783558987259890556161424518178421028017493897880769501505172608691985541540020688581600791174044726807280681933016659235921488038796610922937201572982043346418587046807388105487425302662959280946909731464841606827513676986372119524573061261603503279303139358381254441488414788364279876743906874376254010259514215365160782310246409559385516706443468126827053112356209103223523512084636830821213903994507514001381179754765965445734912875753099407679744462645795388661355550039080094711765816022194739837711898348415051913313883251658577006992128555385022487345428847885036126229047651186993865952050964842551862632460043989106009493035351772048288153795140904412347445160362627158617634517979148521861794174342605293403739586014755773577982743415770246000384900457519606645506061972212806633957264202909928069563728255655372833127979911193656569909461947189326517351042793576007957513582328695497278631813174696417045773532743799944369180850892042193995673922905608732326534973808191441055783349239858970569634860507482576857553088299540358369613027943149016543066800035742348010807265835534635330327481996293532061655799572371425943290179572308419019974219637279202436863816099110429783404203451433619720081666304020136783409297051396071228835752534359712954450949364374778172495930515205118218625684640605192044890802656230608588480318275749400272771478813074168491728379621538125398303588155671310057877052981850799874114592400522369516459618213366107013416048420596505949804957166806460626518553796708298105473971900746692488649920288273263948664307589436642364234859868556671095158192907178065629388202665432445441680368526391377805965010428430665897649913038828550750963418735926537531524274080138685595986676350118946193875327674249744044605615887407043491215608793928540301240068637628072685480954765603135622948053583582065411342375146508658297691743540477435171206542933590449655318745144519204172927419328175551929309439330474152665478642125511037499070859533972700145881290797540636620472656840350284877732423204600074507722257601480328899732459390039510588666110934067829566016471828625402345805570374970457432711922193417828930238370688190517191388225242288987861127987402908874028620529431774136376411249404887838917655841282959413204460220295703015741455585796969643234381250277161861184498749901159397173195599359928710463969874640359743183112920092619577340291634198162582042864743766562761244425696344878183884787287020335890074137661591988034383831323434205052589500620818267021438385171686376562150240915666876068779482351406411020561858704936016127855197589378777260512054545969248268041732768933200997648938581907637644530375072931616159051429271714368010351965058873094388061784252872076171897360823805038181958015178628361651646625264293077797587555766075562958287649724282050642023155723308475782968600211145921449716177591227080889693243913540333364291794581165751899063814805124036846963827510888946636030040845413341801885830558390775967755049891007847574138311918357589283841815289088692835151164573115425341844850900396762851681779727232362622494984444918006620028314914683246904278772485908681654772739091584377274154344543223975449345145297577729967400135658788916608312660431105537372366388711886478930168777026760012139615375990278951757672058569558819079258667113548497020311034207156031478311671738127855498423745330446197781329491241798191544550911073735237746339672384219749190370344142885948395148514032527384357793584310418801069581146832007104717561241106992528603690318222749082451214927976167346696178051818084288783327171861422057577813094309566968280531088184771844288677872941203028696692130996318704920761652526341681858516187576252849781630407095978607749978147054870495199463121712815079893591024186001465161635791580554356553421869842651274315346268194367965920362689349907656784502434395151015778002324847670430044738114559469744580503417195278050951002835680591919511926805704349287043051598111739991159684817617976629300239293726332926183163583994785254418069624926966926273680652088195332502731306887051862116200690490893879073203476630381675818509152136020999660660969065156288351988862742188508343438575105287525369340844367553898710162688161930644481768433900407878350626795517678010816030107395612698801174539246669318804051802097748502769819404718952458246679417789326004111152034385956778664363099914875165916760704493054616371197991864007506166831914997338403232849253255815240417290950593582080113700223856594631960409796539531542428889660393888125749600121837966139986680678338156697867785986675514771431963092195861666958227993014868434278588974843577232316082912317221285441493716299594330604723445227035691649048387436581198110403044134529526095619728200953722290427429988765207190815540760808215380366864482204119459022945228951566597856829608229198894720800004388297964021610540663431086733098044474731580679279179100566022894701249681804273940836641540570751453254362495373664323113960151732754343919909331687928603187322628526113309271846117782917297479819689855805723428098284341285062211491758762547934261048820089015879932518941586540315578910128480860030737276574726806105593998773302648762986200772784939587331636366951574959972804383877222970517585273019109518730799641190899988646240692527095964385219266519513319800797614111761417117270905552234619065638886646485928747121985344002581675996665939453597441666772267120922000280260752730786711033459350893393986725032737616765265856261834078451457501784838379394273946816658699678369729375389655712800468370683248393123456120664593021000977806264662345877024430495482352590850003127577902846826995014611097631596159086344902243153895084912909527743382145551834233063783079008306628079373468768391500256009020214578445523544003912033781237967855245398351686870140768525830242134605247398027751637346280068286631303741758979254975768726654134261411333635118272589459397403233985498480613500341952515984556567600765172435816814974143305182894940893118213558378928894160523789494391293557888941877223267191751656981144673021537105433430855040909264602888952332096636670815111708330092512654809105440058199267425334448097749886096101357944509286915276907408370571084052562392861192242275388769930228821570937555485151724321000241600852126651296808739043979482966477508459150334503733420654529186260445413792516984283191754263834232397823795436090785538066182567247393724101546703230712436659540278129024305275522799126812277620577796837244920009733849146241089285151022675494509488599961453652738805472297695216184755731270626273466288881162107675877277257618882185291374142001785719423531692526640537892273084531922038837021615604365584818165891917797776353999124355113059911560031392389601200839523195788680559316415662075502869195278131151387832673979519641917946672207483691307988603054838456864319654871528651293985469838999239973951776819952657228774365236488320588497058045528506491536674935441820172434040143662425084486100340592279032238094164223772285831555107902033863912052028440593469218348526713261810454062547451570472847422555103273451767414104287149190533582881321303625158329378068521087268580117444507869207182068965360297026387440451427776013584253876013275094324810879176712148203981177135980537213092309625486881789814446129733221971134099791057336884035561306858784807423018464150088631802717820629768113102283165662883762624747377106794762378540171417317499824611166640250172344144153522931905640517950813297717909767571270266939284684461565999028989809125117062478594756863891849523208614539847436256183995854491306094220736993430838852604262147956130941102550504040118263560476338664192508110014496897530905423010438642115537295609675498510417905218609953108121880779398554094993338152468788520106797353498274970546067087300318499670038073630636698954115515800682600135827426492983571827912688575291217170884855066760642723852647736023120480245281618491020884454505232548356215315745943392852714671763802545398382870800096397537839425015848200162942625406401504145565317833647503439350218812218585122821805266103055391447653834409806695613380167061232606413940611270466600609885701471216150098127409090884834367604449992636410640393757800750426558521886422566062521714452901168666174222376665113870602418922078712452904999313401844416904882950204729339752439897792726846754263373009534437389038930220989792233464218549395985045229019973912216704850374657616036579156207147989734065418663463029301943485473095543251080978184128085625690231246235686295161402146034809432620874390910540651262921757574673891739998340560165480115708206465632600909004902253050247903241482194616377554656546677657911876547038492549960750322947342421758425387170494245357023302198955508595335090185777758809182930653304957334703138078710288652065600864785594817925487438614928210984833192268787310870933330522512316737994404078981683168160170388040560350964083085035240982916808147578145265272135496722939115137920284766481020182636633386257705538743741669069805864473207613525107875005896172633793473379406241200710620719930159431827773488516082160382428805283298222156909077945497166992327560469809448798165412243103985238682081854634686087068076022736608460420672554796123750009640425254711190460828381123555074071592761518346306864595516699700403889166294253031533587866291178548908554459384660512327269860988343063694124125815885132540793077252005501109455227081857254247035465731659924643299253990576590909836096613097162170302837079239552458569742986228740245574208120607556094103341035604689738699987358863657406092179517826887731080885845158692823639510911078586810934848494285362127785160212915477689553324907064139510355967719307654028547096431938275014641024264163439782022311164673092918680855438300147685288507918461756446036963775554190369492221956079897795466674274023278665863577309621696980283938557437467657839446747663782972399661783469948066413341589831625367187811467820831458633486472910757352832885003608454276533682116712919631171524484743107724931961074471965311611453345692586890627284119602583474966923400818378731082245103062339419538561211890067080917439804020722784168830876634898881958779072695806014925036099467684797391237643151600924578020441267758603204075594964651062817103143831117762360046375978059509672596358557399954869105812419746696664181418712244613290249833086570627982924662169548388363985700221875952810377012729033112268226561981477233635018015652707628873984542153534823375879536752712837972032899275906024574061866418141966280796782357434567761711348858611857642654682701486849542473344983225166348485344012682291021645372318140021934597250043225618035025701376580791372507000291570882752112099591729480273857917592770131569869055461394755987075522923640943588639200616329213503581134743867978460228704309747742984776988999308925112586827498339504653175957835686292286992292169125757364775548621090460199331384943133884029490557351283074642919176824180015993690598852184430120824250533595262019558707061223357630172547237232775820647670841347707430294963203347776700757040248575666445434756633218011917185352208372142858920331957762703110759005789561294811623939927395516001108913325875927897767652903439052065883727557852970012000118373409538040508366866012994804370982392669812776088699413022893722055636426437751450143781137626564374212839458463601909040663857146224137642237032569569044126016309105264952546034593110210162740946164906053456186463803753804854671044726096210314002777519009167808116049849129109784540234791156786866221597971738555991674199576120546079738754693666511010636498022759052110188155409758001561748073167683591356172460016638039752875655268901460310168922105972077160676214220667400943533498255457961509280810682523138565927655649510486151713512201115280901978797196769454488824807892507567235405462522221014567762398675408865746510218758485313681147454556507592964900229255131587090103815601524090840694932596696880940014242215174736944170280141776481022446544583109802917064856015092434051622118418762807238840517069489384264370652955377856971766844860486945690259942654082738005276825156595649294031396089148031070691965476884332397488242592828995570410839961677482765817397158472998606142869918604779289700560616930021014927373665226318974623761720117593982064188902364930182397972892605581666899932198919366452561049020674201088744349410142473280479479554557582467819469544910804353646620239332413418276584144712097272828040385323829114217713706420644629672655994490112769212348491513525542003400939112079103581812833211362186314369578247234059862624925204564025531123875537960788421694874477561382250601744190819440139327970537073309137823201487379368839779132915289483654146936577801063958123399690386598198254167821214131843894161541205972997828617385095985536129405433282663088702904331005255424214474698299321119831777130521312048405350050523821764953843884875875438393648820982758547131594069489190884158277649485995679279488763276962195243467759456247834723158586529237268731640829944151179206870914056114304905519557538703183507774028038790241297956815129445643571662354655971888057594894644532060974166694539637003950153922386835533660141266064941084045184648667717585965911319238145543684815682265729864385871084783908599025644790625435915866810390223367060170847629568516513623390064646298630173900295266671459258924835306744852742823076261698594503956663250902920540044086569188591642679723079972857180345028443382588097251895569943022874755266269659491562077865859646923562019572416956021743939526174578604874724877229367454046207059680714542395305864786490270880728591365447250301528982457638588429153031837452863393266517869157600554391220934737914615717348194306053738283129520863603868068292757103780586597616695203011023906656513097545178460079891024487519691004510649621960376537691876925032784308336326661814521374801301395477405839507171456482130551344811905634789470335454734749555039976350859071574044255112527575937342800554067651744958050206525153616395570171551527777238582607941834909663965050860609561989078849367212402425261092989393023139593420449390511027887888217394443221379596245708185426003605426147976383649021549482432809841090742841501381348520645056283399464681634016431571350547483495387908395657168179792095381881561204322213922769923890438544874097231898385280243856457032308970472967426702076641902906584812571146553444419319825630243465038633111514467535921114424414958742725180408570102845583908701887502345720566086845460076902874543800519254837512350404051063744458371284338356796973749310077875596127129337101101548978817340025569632269179086515931636625131447115347611417988465039020573278839385436346904788584422090835811147438956566164850337028585213517975201424046417476672367619373661377067827093465802232369895998603954443027536871929207787606353236923350430113655431394215778224163535072194986174704120975302091555666705037580594401972129894208427085182992850462772266606575552348418919005713732042904857880557794492674511643092479109875837091611151094013545743339711129219686494947772384731867068752841793747243767565998137463851975889037032112406996762821787696519100151634198050926165183266338996757734148770767099792967867290551199594193834964752148231319683476710024879275614798715874538888590342576213244228162592190394563154643948530876529195661927904231319382361751109218932627039557826147480660092170902665403365670663421209276957249259398485447405515329927836673289008148497697686104152109173979018545435938810484599307749423224754374280519486614691157093134540664002583678693901179342690508892111190151914840303344384995948746068261959304954652588570976477630607668571475284033295024085265513736078427720087139324543045330986933868629731408631178297010382929013615718075719528764346627540956913989577907205814043845698843056278622157991227405498288481049935241775688016583963165156455578651104913382624171495699959173831058512397374827880749296529643976029786291623445288266717198692007191773875021160398674187927531812564271732805898679259249272968876144157031586261564781178876944733175637867829871254297973623476991895850264967135143143008718836249604570607226568322861594678543575011666067606115173150937544509363748010748532376872284168843397565328910075934449913328385323480608816504000535450395997852312263760165867152342702267603992858452636892850414889533126448128874168142556827054809412753129069924887965304904300966374235585636852504716744657847833919762616216090148575173548031610505931868632111761144357288848820875577222765442907991422831072027338976880270998630892429199052005759443282382701973369477096347408100583345555021396068850942300675994791867469352104964225227105234514025323687091147775363411207484118977042539120503850658110999040463696015017630485078444617434073233813735480929627939586662835096402394646295537877204830660137323617720747656109202813029434968912874389294293714432403978089148049223681614887286878891443648847003216496578079566107349751173979951480670161129925290580904509338885724993593534712036416496059530695108205687115283272952795007869604667854788312392205794993154369669917349882015727414720339223557557596823192597725792003088132912061674067107443854501018873988467833206699930724894674519960771771178784624443652448905540057998331050939018047392772397189057355055770744586908570854795323972018092748968088016283583242820700091632859669402521368491396563240578509596249501961503708381251676907158080127141209461846271343460127915787110320526813911203785292314282807047506002305350855518467277732022204171892154906534728081159045808172816327875707130678895985035635765204394894938936047158830209088532016499663838251683929960137608064649339489525810660327538507261569625293153529058733514248910663098776990517034968491350367260473476600762888831581789767622825888368065107191941687669676464012919847394313516917606413937260846139394697679387251316899019383866855257180975653803008389294695592343265032100594957917642469120426532273369125151572330544757335522933034259576184682398758853344180272154899430911269289145371932858470921257462125022965036669031777522863752774798351362330363611705011667012280571830813042562053293896843574833829911211297885923919809146182699008516006289305773564161852096166617278598584191903380097341564550042336681584411860268978289390160428257737002905112112671352346532838979431924466651318566940345446190215707831048601359658748806071072536749074884067803922627993441171275481878250933882147120339065418155245202861875947375426726188878547829253821386665714186887742087651178238373013144675004947810516569927788258385802397284405297569343429743703936906514772157570283491293180740469674994029138593298980713030294327337451495690246979411850891374934474499757714441133981601035760897588989703456941615543080110223512618370649284061053892813536859194940718475031646458976289847045913467516722465055333314082910473553403654426940851595715826113723310595640861178120351398085616473095062548951601950832465288825199641411499890156221670186305454634448089845167442118572952668966299377952631032291732243984672766218245294656220160680768137935681119132384031727468576329000296764753106223387623291103018920592569136556706927347448640925866123624207553517669484362683921825564778631966230795661706163278039762023031542415149180812441285731051548034485316415191195343300351523552819043793133790036415623049285379874973567306183438032063262490224810350072105117041443432863760666261675368452964425360094792138509154961055737738223787855949136042421122975533615377495909376532681445945190730024048088673488259821582429162720144752828548364586043359385873094733931483266066607513935410949097784858720139345504119329928178872375582658106621633422018341902926923253431436702361596556483475647107851577660470590822349266848158961282336228786026576936901040280780166988563971514381612557665402359146443149767814372248526765538705153719324244904728022590353643350453216469022658845144740454200200715739899380797039587203447053723309266609227714066802312039819339277171792977729413592419712760393474231451581412783130669307137587650961775007386848411513656304296358969337363089701879728894255252758375368890559219144302588215895045904748493262841459214797434563045253645010288249182488001281715775259024921223198852456627536177127187218382168688846649860711000023170426413249128121186518152473384311969920492131871722117248268910483767781294217647082316897759177876387944540885787644232056084630393862893294627080143367622985493995974781205971685234653077967002604365483324114681403997367644806047598733912097486181340738453862041302931050725909383680080889423758913688207302094088325605290012070883239807268650946040795238197335462197616778363727095501919056436667573478887198826853824956913619245687145504172948794247498695347253749732717027491248827419195729377324251913308394585126372796846921067259456451715060066727136244093915427636710875502953388595044318973864767644772551489379336910002374789569517273298753300119465111803528104522188085359480393569132551733403166144244330378120142249025475406610830416947220549609745056466739366205833585385125442741315508638925411901408197166067057127592767644410692325000163712427837955645159730586440880833418317319886899667170645769149397575941706291981735622108519331021824851052797676214115896509168339160422720877228014571252434016239860300996999720691582345636547093626588272306696828743978857786192306911166271950884657520654028469425890689889372925753754290673082592291455951403986608616774975922502516840462953334768590582422818417342745798392638181472549531974622131487928373779167341498430636997332302784849507138956060518359799088109821631967993270032218182219659827237451162267003917960012473630386254310936291148898189228306963027027672888364305467534224800112164422303462363685298266977144433464316924102843418818516699521372927323518757884103965730027890451398586347189354144351953481352466764797538448277903511817366134899710436726846565206649980491370551465117369099763747595798064864736712121301185696257618433073953742847372716050238717079651550276839805359439754522140580346308438906496329675541783785273314312760656361088375622503561306076192850303211354758822820109563430053547986562158501003398980141900525891825257997585911020332536401504023448818108356933808768782872106959956080031883164602336442733062486084245575747394486802547945440670527398553988191776628865693082308347067819755193310943224872494099407348276220785836694701457252466654583245964910223316110760306862432295323645981589842511564224092279714742301487128973292424031528683077403837351718540348656211858727129118083953195128268481114830973624630193928770036022978185868320847041539143615127369289258505940299081639270493947498924474865670355035440385080162992131731626522074519390818527672874741990482310773872827413229326407619871923332250957365828828089087816089313374087947397157382446419013645912080908837881769964356059134209930985607669796050348811376536840983086576134538407772660293626833952375128460466948468091936885393702237494238795281912733175522575941155142813382341483651378214715152168354419990069663344971218516101294557295380832636551417926851064923825051302396946417984663813318524449872717650982624074069998382341679069288017383528070095071302054696735488046593866112004545705669317228968736864527240429437944607887148332858370584918513925275068039394372495006213777444102214421051290718618072267632728229723514144173121067298438016268884042077790083167453054594661646514649999177561983211717982452197648084351884395892055235300697504613264179127850428402745700182778842707245409203095332087568058813941864066194771901980053178565455926818456872091473649434289788736260230295226053154329867829628071597321712540251095595966068408037595836242519876229681731012410635584274988464654596948360396441999018714191979911478450878634281965182909586854522399562334336800623595595295802071666755404325406469545191998257490424259910820195314030764918476841198303289944869281174184531464690411244295431919553641036609603919193947136751438434967315619098146828370915730475041327282298610980948253021604772701877796634887128159493097430132434300045472020744584364541491393077948765977399341850896309326927174680061788049141390649970625861135810033482893717937779382228514264324989981696385612360896498368304992671997732868615348008886660796982312568778470357455780906633003702415613970874587488823399451770416122079697205744398184413816130702110994973607744093371783338065005900869012911883794416961214879000641662720763876944442904678633891724155112467530223163675015155825509356066024558486450137101992771082785213586212878810360998810966048530280551567634836269866923103517185955949988312171292859739408691228162231598274249555630755908894996814694342455321967876799260288560622604853590873798507275109531353871567360649900284843884714877102575310843962843423357005676685122677135757326549564227386488331300744435645341134958886221944378454783311639361651531505446847552542931384530278160768893961810337771119315740739743933206935881045504649471198170341994840193774134720179386575461529906185073493744964887363589487230336855043789451035685666619422869087193086773605417785049317835762506203674609858950544137989995726507261558278570879955700829865643169295219145668939198124062126657637227299060944098129879706385611656911171495198617038683757151312859622377833265339452135514567076812058260210564551464481314257496022973502941335104469544608374890439863359007150092179221936932733789864837926529109843324355763523406933771702547489213637421267300999007046704261882279307789022502847536462733142208748395837968320896736329036392004299306792195844508570617853561423666070138789834907491690913066197631530641269362262263444310267021708698903106234769142316017765910407914315340242474423648218164537483037060024517415239285107914303040270395871589156021505071091616706444837871791625970874289230634376636597587763494904116350839284996180650478367262704236506013087369773298837670854034928532167296358902578443087894024490889975259406259731460371494017517385778500354192701795655904984733007420072752473813770407636383113488222373829029307404965077333888157592181057181119024332108123499250697828496940277659747286483754250645968288387810573780798381917169189511574369223110548104071282014135411768962485934001613702101743919579743212774447057411893466284627538117148396394495584535698069879193738971883204907992189304261766396141685421612701336700812803143016358127033649356969497917854797268689996734853480796402768718974914868966409529402589685880966492185476418756741767209605135687464820619409274866282630221925613736446803407992398227876225390061452705237383938521252480463089609916622946999811643037100798979214404170748832254820351623445448178960646107609753474122927688180911663729023662340010184237490786643345808140835481113489986905296533897581056260553346652451160065002207302219384922723581123011626662330769030938776759093745933050702560565863881543433940619054723768767763727081076677945814448907492330047378959283365518377906864887341635790365436510046085004935494587211039270532098181780695842182801034568246442625795973798039125428159116721936031003767285451916597886284786810463654328873782278662550632005700318741059829607253104215919148935933717620596842443990226478031049887867532415345571978911050451453490697918821398318098889860463990352145459225849541927997389787620837314819874296315163131581803621096377681718887158478444390741558165046943038309435961007643057679319391621654598792085144892285457234051914257152183927628810267380448376957313045591296625770378189478329286135689760574629433221041353807497042800420874237583417828653401634414655879159807304728683839055770897484787504010279442203862235692909164967324841819851747018604900275690422296031192176584946266663093501179816835256404533317923501078320992155984426100492454934296418165199866805855344876904372753473306668235820018562434225133928628454662195431549348254528838264696125755403260590499836453140926750956326463154880488106075538544579679488480822781953208651175918826842805231753987126133802596230758896143448653316503331373063205448322019701786289753525866817798778972187700593650065161416194266937055747320076785525819545479158128116842345065740312573899546516284926803100842402610770138384815411050184545827834704110012393690408400570409610375019325628388683897326110786932738617673941658055008514103875968239583528682045950226130894288701638937908742365785403409711265268447467989098996921958863189723011553496102434717832343002923039206713561703842418698915380746088679698794371906634481101183632349156420851288159695244342518000826462741753116221183335623776654115026612693696721626127075638875459907508005849270471699686287013439527835817504407289975812164213811773286650119776985003855989884646752474166859815763380775368313948686065677280176914080658448443742657978881118989316357711760787866558708178567428781887452729630666470145802318148956781077134588512516266661134172817501253971838932879485803640705748101253302786003483929972346821982530812367655751202795157528006188534973197511054341664068959971018508966611710721056402853116483607806814726771558264121806432003169664023280175246373435319244309450544886479566806218818056875470944730676632179479118979561054454957405512320638660946260684240390545147311283334431916491345472837025377634258263738220101850737099710895287555507881668547845428267630324809204998012411846413935213507397825034902706275604962230056738338170930093427221427048211789558477323971352633463767010856873195114653622203811966177111764039393915703588184455434473160812239428166049209813021612098053665722113286721313564383042549460739784787785336546652554707119578170010422246522486406981555118128774459725294111704714576733108220761277612335797914871664032149493633294047444716476355583092182526594101996292833038606215471599294559246092772991720679450018583521171455873106411962435984780206607940402127328190658782506986235090476348876995926426396467369014810623011236096590534315454785383965648318156429764540322610025570386036186091269483920999193104685637820312048633872320067528526694050855877248426087588383739043776403105877071928825541662783602800904061536975923856648961585626753585904020197731134442270705735409425769279898657099838362706647242720986086557304882791275932715748944526538831436203161474857848001763140726808886535368037062194550156433347560438789911228730728327381343608532613835439003803604662153727840889833569524819745169929000861936975595310501867937519214708365849374193961856743797164723242309050989313112511423692395796098909317693373964386825860453556037897506755353623143267347348070003876781709252094987947515806195247730157735203190977005509716470610100828806096135601843171825519373821494589920819829269525265582504672921111210307939130208449651213520705164430795390947904265836961930562552863694383450934196499375347567009296903521217485217137621497070138485718919784244806920003276605046280804048790408514321824756443039941658567717917585131547536580671713989721076769829322526614883175479458133636066684393545793206979226298731464094935224833510157839843923636833572177909879228297527893241712625912844888521469315317218412691210505632388830578456680097485485274954557236809366327290151331090683780352558687900815715206862645425585294200873676846497911448391403945142055360131692749572985598972626405386723486286284182087907846316739948430877104981756266335832050234029310721466057667819151500457084343312750826510726526000613377747998496526218006394385330705274431272219855001781388550893537050856566559580765539054928993558513785484292033889473174113863617604530690529604630694271893780928437018516502320914351691834180898523111902012587148066581642665468808875319436349104475082358663192784786215064785422009220860196807102209147931547534441965583318054725378769975202369082906071131236791573770918257506521510902194968556705190779478460879821148478793256788054498101669396386918475909728179152326343966007920701492125059593894846324280558034006842747129863329053420478248084249597054736131770768413149265252645412913589434361834161052523416021929054157155411497724269903070929176124665937459360206422016330304004945147170058220980581891521833000722120829627202258120730396464869970871175064558698977824280756651408013385951066413034782546720996401782979920241598403820254012435977568454906673245128800715437123799312409828428105368823036092245984536612480509528571608726088095320039599913773015103030240095215418120125652582366138289306142885989202166584307505361553830961608742990873974528495193294646228599350221777940241310047380933533074991647802046273672550382417961098191501582147932537689887926372471908246511950631576983066056127765864870773710455932271995313493666816264966188938094846085196748730003088219542945536870709510812014777158519679968202964188559827189798670818032552603947887831200219787984759520008830918805685918204295916361676191493352212900915311617440365081001391942634613014751468209727816210060898618174942963045581228315407935599177523392357148365449374462307433467078661554702685916340778665104550757770681111742997344177745925825423899934874361119775508853050611127139634787435977696436013464906222426315736640620339477745890243468179231129133443675563441680678141324836845647718049743046071506678291571963171732241821076499437765776489626369564157351394477670453744954026741980466502192156666058317066132597811996875058724049890325614705487407347872127296747060663481963368554394656748656107225254989105696245230255811664546689239013335120285881905300348677691346790940199767054142294365164283458252630326504207507397136423680154151258730512409246468077111433541732453512089902965415329964988876441836983197066210042111842066538846593939387204494553251692548248687234391994553310699480266823179206592298270611526343515481224684194564095367785187386779629582851624957505595134645763989910649245994536151287863606488237323394091065378711151443925892075746104872253033294985325573687724512141691868035240581240032162613720371839625389544102505061099914940649405054318196577996604944550630172689274783204312463928862856798643097052160725453851212279537228888874577350897593203008936992389088271513445615590188631185360293929863451389063065948115217492480320126606056397857586597301821152987169530739907938236744196757711062863767847228575735861443942782840090734783207770924842706679272329844555441041759213030982521363406364185983756146849239128573204302158033110260004233761721494998893311332889372016063708493614404271825583428058180821422130817985213943815853094583405734443764026172445953046063064081670311286348284055225132111789476273012744862552303985629864479345053191189822551237943205197280729102574444789450504321369250445295068681525225880640607124013631957606885646452140062142683497435199236225922174751335736209977937909104798858199872931916767016296196169574279190422270084217263461961414022040258879090856106742328056238245495532751788652147397218693504597593585633269420594525779762522379395286822487278815492708481897783214652124934232154047634262932512651344194096409508988647947204409671442030984748470535745252919352782865220813994980420715173968413123191855982193401706715613168712469103202689840422928758018829101621808870153166223319937435933400822960169032661015195731998546153791943516031272902026264384986388189047865387815426185446137594607911792707157127358756256880794913523936322610956883866799258944890164041920645965854342367172356367020052111824125725201591227397581856142718320471239292285015626559481291907136318190329140230578516362747033382911788113311123736907287627495777576216732170296051265171714511177101523881931586446096053942342085760832444552864465565889058854927218610817137482854106546055658381822396333344780499371298020587026535065678306743641287948443523014842967756202783005642645587355033471948188276535788852215252319671264502044030738415005036875885872731356226374432517745370414710958202330864825598500461551951562859976102530507088668063167422502640038994383800489321513203165872564551149436315972447202944441617556337238888363002898112168164222970291776438825142869338904311838713727297151072213670729419945922873723468950230489439223737449997640566216687739673650514773676394795256455696219115065532226530191017535154939415718898390135733540324875662118140534587997040095704207114084182914334265943252204521077737254894908545344571084705582682034829146195445773640840974816620267999754507971369888357282297871952448612799287048721335911894190645054141159135369867451251223412427597598609868984974201914808059563974908969403591476648063174200281431959237639525276635729158203954044115582468565417953658263092735531493744460827007299651214360869866832836143660302309888455875657618651057658907599232095168153594984451517486734260029598000116971722337206143170261657405788883584613283987773538728726840214785643308822064833003220689264483832852836090544594463576313100683807371244669019583758938965599240606116165930664776626533543867830054432971505364606458134679087870217556526620540452449485388931841146124618484615447110527725099390733277959966332582747187249705314836332433404536486129819317399773133884932314427369155290554424870590391908798773214009150435656858062136880469611377618064940748630949332124655863988626912772594046565563082025003395058769509584253659760784648071098572551407831354832924341568961013978784861606893444822316631496044125383596841169117850089536467951091766660750129865594327253974417690033844241886947039289870902255456267378005889464510022656549553372464381698399149730514698287939362949215486032653986322087816772664341442348750458447212976589651879271510180946458018233468320400639444237597440281319245420788172087065389686526736479854598544457502201007577072268042609362612697313098880284340984493848036132437129993557314279807667315609084880894006536230774275218453030302838756990945215158242930010544218264553397484533148344865554125044771412324824440592076445373111886583263573632714114845065397088802502656302170126588036158082109388951378475842899969196985846905407030147328923927958091544667654152371851861372161717384361133792385566100133694872324607515966156545715301753727115307248274799754764442901188232990096322747750225496912452025610354971434805044258495017688128886270152202936872859839546600956090631319460412651081899646858452156330668024417340904403811582754626553945463183351313616032847065694692919122708684129699559750548821876389753799301289041167306438936352487271901158075926517562417732236983810199687327204578498785990760099032604013921008503762806640986207258020021153455114761744035727316476293218577861273120990645498725148394606861836187593914178163753005443018533427608548113463579077661296270030100876167690691087783161097324603118398859538022103796234862686964965626671694103992865626100747924150855006794032481911247281158147203026771062734678416769773881745873812521508343547399062272423033812567454490201941213869326794175189423772002573851332158678346100441735673715200861346358326931567832162290405594698004739401038593957785702559223062677907552774739432359707269814424584934664558225512490480406931203323164220658901271846122909772633117531616035953952719016135019087557467944571198671916043219643039211546931094283795431499918609115102616721064038914479601169514188695327945868602872702631354579828122871301574115284949116985707317345156930821308923847190118903491740553675958540243645035219016927264929090088341950948993037381694649000939656615913104062207318034890393451750052020152490344676247545515895887018037710642233626560696414463061007626389008456915265064594733742626800146650492038163166478077614848808851335245144979427972855976901052151339377902958520779355815360128044499824277212623007725258436066767005893218248809055741065136876497206282793271572314211745320140464326909772996940137752464425948948762002516946070336128145934428335920133728331593573064945056191848799945506827803255356630713537158312085182287898887201010353756076981416263701511906768946154004888614327632719484276690290583020892725269641445757439195314795285129978014126378215873914277061465677091591110017709227673836187605797595901839890291035856235107646134981721380270350095204818256293428203408602925360963139652488466060923790411072501328411948461278258673376991293285801295259005582001929314274346339055955719259060404729909925047104836245115868360178529011234873374882480157953737145645551060505579568620525576565739507988227360358933614755330535970387063850688153610249467309987374152605989796656893008618165203739226907398666017920639938212346298546809166391446314304450635470749549989618464114226718419300271797241595714200047246770491898498722042713665653166154238941469928897066301263206410400236053927539941131848199849618267204401148538778665757504790268436454189453321767979188453310993476544866295751307054826652487559501539809328650284560892778626494040463952249524267494498953517212865506869098003401274615787850318276379642164251763424649501647303031314257310267386727532626594362288911390412173973004845979446955737013316651504448870155431981747525938323392469441332604502439512602141945468213770813431445662604616241695755142914461787677181853754002585576989728540276614764933984724490282078735913513721986262215529274063522195272770100674878558671864988571869395898036938057166229093192123278209362952110365720031422117126255836798230444481631209565711577996185250225550038503721330523456848147684165334240039760793249530925514696344242444004766647127275212073623882207417493204561452533590918264169364847556234750754050611866558352975695644794617817419543660174259999147562703281261457525640836908519992949218949670758213088014944569135518703674406257746752283867924458698605285877155418010132602703104175023451897044143257974722185096196498222096468981379611356854148805374240369323979266378081480652867467292325626408468127538818889827516343634814177269136228358987708803494816642754527301707788848716722941348873065089379220286997903739666152421561506993129423896905271270457896998465488303305311383801893908468973967598108832969589840103701037817871110025340253341633230351903863596488157825879175905323211377929009888621681888973466294059531900801986631837236852794042059203237566171252224432367774485914665816788434813731555276416785215955195492677536853754801937498608749067524459593637275513424529573294391191534360422347119850621864999139826252959414011107933518870002182227682636451979173302840510066147048268960830655098024805194281983866596826762006055443495586446179070473936595264563082521623492370531383178627329891482291275676840011617997936940351362403791971710630068623055438195366182508895250269207229149955174610094980424985640661600430657429336823357697487461519506054700511450904004210825735939563799446246574948303411356233192585877318777096831173228104089212369068593545183374475365184017381943851886623395300699112232934581492226724545396764323874500100945971701530012324041864957087156786413329557915419734072631089390927584416193577863650563878239416420149139202943203658736837115740325908886253281669112858355861510848424343809416190540262638561910363100215311225510701159508139605885148866284468822836780674574906423775701164377617140160640664793237518711451025026917274050050304154982115398724563012528156722976951191276818191332335778387731715025853985542406529898925227093347685914948307540841758710458867778127598499093075662418990448362010753520542978704504382380783948706304103326163230617617067065845665974279018195572760407820324679940083456071680244842626659155772070402414548441404034063021330597051344951802237271799630992102208303925934585138060070682483834352064874746215533707581898088589417627766256231639789731363823740152187539723844537067701588277738254226492797702657125740717599344268808839363534469598672041344026729155545053922449331091112717565046976860865774317902273441209857080402615901297958965467406541605434189013895500673085641325822527301465872203308399085339713399650936431436949740309632907883237021787877455008338500533592009876791357790997699129084496835459408593683782285238487840348200711214677788470203799245619173150707988543833698269053551154625724039064347674151608197796633686967472396941923585446401798476601788280244886957775366264130338122891029882902441984727738907155871594516076159049829568803040159552960742243857660474926365553962811064432155236928191543813278890058345445941580210049259096061294679909576750704179197234703014345120257506786321777111868758469900830964020824779051355145246318998335087210382162098186443712532957059560465789280845654037672687971111686459424180054483850705037803329439387076959901852231493771704598227610550163573475026283713765005724538779261449950442405137307486881051323134248686388915130058699383304969277030160188205981415874693352206789249175517946043732155113866028241248472210959154463057377691127810206935982077436282442199222533831904151984175924198896900488890977476197097770687877825335260962756518898207743739072773783600439680455785166211227550387656813155056931231982078927347449305732224659567477160185444178438788330767528904366972385203115653526908108505749838448154543081032211923735469495422306753447140712739797771322672416313346903718413498429822983909029599898899118258863769408474508041909749790112686069870789326210994368286562252780624632212251354713151041416115031932164732388392142752337806377670592059354612199021758684115034757314112021399483269140202381045214957019575091853685608623740127794902041695180984490748570911812971070508725550840705540300607896174259805551482299656767497174639365894814826849983727527551819098656651052015245130007149868072445380964146935495928108083618229263043423133279373493650846647210790506769671674930341037878803600018415941535154288048277328646069381658226852661360138490277688263829397602142035821078349358533528701377167160908124399803213284573225666808254283291535673599735495830765685778126544548594257518485902571675757001992227411335739790272701390383202209739824240872536907312881284021044697484395906289301203312990151613510102503758274203865869739845120406713859750852824161043758330571788170473444074775491398185450828130079012910754047021937960483196370209812489102048309671844883144772683474323036937394578062603292938352893997059096422245472680272448179466472264994849934850152605550771492859215019929492216241062561868903357167073470768474968012203009935856782495526370799683975858148738332892590104807317936772832814660381481389790332341040442939079227282857559646764923533094688330891583682195496996060822587666103226840413040426261584883022912487340645924396751101304531364340116161716793645049012346322856764629567230551262748765314603737648991111992757259535945880141531986641175441913216896301534582477476585974870627496666474331739498591409577200426994363900240470012254415173625925959064684685218190186241820515583174727702844982276448824314209802744610782407306080230913175417232463525824940643937205681715133944446070121539838191095745123110967162478667476409786648005298756013864478481925048283604230912748717725965188780600118028554757725402779069219481259228870893165077278709268194504068574607091471733567915968722831408565081644379236663532844753922811730774983862567525611176449955372517148039125851119468125904921925493189725812105410456828106654438295920934320597010314195076883269813053941238866920776954462108971115698268366242764814955417813058399488102884974793398711391119116244800664487513880780588934758596765792397398910959659512763640408605389119220979672691103240437285449975874209981730459150142443601120407734867239147728757543796138306376462993794124492818574200130375193630237074576671878449796753395453579155905873369491438623736138538966002544328196779180213066984305052125927410615761572364625474971363347506043737458737073963632130928363875627389399136689455860773023456648236221684265341247315219035731969414095962808394539797802634796356956937389252587623220277028909758248766576369668256506567214026059474794063427299527129673070396908908242816747440868461118636954973921364515638092440547127181201279312716462667234771589755633444166398174845446839841518086782954884943214765745455712682202285333582706651636100802692045722217135546155019641454821806270125632863497123354883994128817282706005496897793291467969838068519269188204022124108673590884056885182039863099629207752232489928278635347164252749972766776712210044348775464168138413823734820191950069569737992086561819665014591793787614329473144771244236372672853426409957667279526700612121482233685361737538863083408043898426542413083209678750684769382207391067892295687483104567043571263391818723726332866823981167491376755917191606471670794638664746285039122690316257429823705394526590736452214885031075670224974001054071108404216759373310206291530969877841627479130315293259384972575704273263499197142709342599219389598730203712161377519072294267159558021408921589578009976373337607301115690756179598439113405901554319708339735891613270477840094653290019262445646932350595692423525296844741405964966157466385407714587520188155027954320589997494577766213054092963257722283719681543228304543969949746897492381179468927588749848569913019236195176633172584063147747414067261906679816354945171678311391189710342915150423976856861265687851945471866219831674312470868845847989450076948189983195288169151742587123652318214666912825760586319722033743758486835569762121936715337726528680115311479429554127123098382609444249773838563473167620210245320021203845063376904243582677610505319874223692173358313448216704323418459470125094014182435560794831708985265592797358005186820121389672963199622897348068545286426172249832574707507400196353301286961803922369446431292303261871946516108752298444930608067376771744198260570819900950534840788909940682682922948233580586060425748929387586316703483983964808326710387410867704591887348475800326305998103804999887112373730421746536814223524422613790530352009329959996223088292302492627449442701985539954226825184122952641406069192667812122942354347341380585359794362458276401829048432769166387749491793503555488508003848587086549870149286714534212206565561461350403052397391981460909964403491390639761593412520055190925272139448556778412797865659635642417837681566961585684246266235288092476927362586664445005198888549759116388916095539321255601665649640168567623972302672117852438955839757992864256130866057793477352096374110382583717557463360169862291069677955163338743695494901272060610611907528738794950795341745915736033222954330617271073071454962841179518370841144128684373166389176903357273052896397593654351772436185599585672768462106827584377014066581283071706491362888320783727904309402071343261104340702346319274165103113964873450883310320835448162283787054833716594178906386461835507909220764419263880700992931825297876129406630957089415756637235928300192701853621254688824152628184497271065951865370444225651400294892940273882608007389443011157918307597021051743890507322597043322396344460144181855752196008126367922022663905297125509436690034374606466361570970736449688096327874499680994355045704595836489036611081139425090726533145449346342249375701946119735012470849526683654109123011521821728898110689655159984003922317387798189040312524117786183275106914703301641265567025247099116200404880757176405531519938944478005967201537806051442132458139696463609655803304980141309790709508580243018478792105625849483434716440400519833807116273450535926995198367274764205428101314860005112394507536247688225941082814252401813063195259652437966565491134047976737907572182305428768697464118941514689683600826762005153891214339733338158419406705031878392574626375702037807899416359450678580265636164633178973447147990968540927276553414232009837337267914394860993735844907138433049636786843478119916221574972676920675071535469323070738374695886373559492334409333567118424037260732237951038459032658441794874796138609938790256243766418240699786240613345652901530971699558229599625298592674316693010615729882175632859418019882684738816789113875157857581895090620071844787252241253855526658269550770340622892999374628572156657644869080500510906897112420671595125594083130767127323110628171145557709260638942336073922750583641618454982915471409617556705782739609357108254621774861382910860913361875825678317017006172065967791127667459277461108735459183012402089213573004505305153957203500248907694721670835261162867320246273211532644347001791180211755370779698832035468607375439773956321212538776701426183657762654371573925534700075663555504945294409861349119407361206956273727796082027839866371371373582149954150304031541677040842107047936304173339026555927570511355553742527288392351119043433751618063607149847681065238641977806637359885459362585419040040720329169729662908618690964791961958237042209597722855898924193316745864326350634668703716878673523227924124424528561009562623646786827961891687198847562901977024970397759668521489060128662835461116875215156866224449273553511256731873479655636760447644736581920538930666721964124226684909917857947960650729258375903856774027532164111805240545725307989304427450444072007348574663123454929818519633366492585231256949888764432929162033171403953945687295964272307498247587727160610197885295730755015424152235608545723886983228690056292661198545254344433556837882582783356546126098046223312236228439215287833901104212688277719457157778502756907922529880153680078276658529347809001261341335282459534428222378791342839201173510587989724187350186163063410049466845629745205912016563122722400409970354792478465815673643712333812214397573265445730553477312671337955450093075135992490611952150255660686588899020864057866666479146775974809021065232924941554505451327276223366389594791610733698781040795108515436338706008218705283204188604096747055335946568134476337733008627127366953108376887540966407308029826339360176323307188963014861179928283216221420914787938187042877988727799445325335896393301112796986309190018006854598609392709200905476076757305487098793407137572156689151568126098915075127593929741106465005983092253223453385970214073948776897437707457468942746475832869310914009499435239488496846257766273750996878124805253298818365369485454949603394369157851751068324739085906967053308416558425357385669234472669728230702116159131010279738914555814389677304177423470549307218104158680866893142057342398599326686445216416722575786504473543470755356867240019699954944881028644067409501548385999463692595228242248947693391945123656951496109655982734926554843956884106024550626725319473321981127536243540141293481023020471933931881366573548254396104109485410902930339689034426245487832106149305035063641959205513956590914168529907867905435817782679068107486213424329664561472736934205875552366259477172340919733975772805875675497946874497483708161234286704734336176995968044455624768357603352032261323283785891317914314595178766691412775080002377084802801256712273097249786856609668291816665623303704155447103212809768679483507483842224125604426648181565815008820984358857712223628924171309406434331477261500695476953454787618535849993127472523765443944830482247991128559619322990779118531715356743502864875425344809508422512782399322471229694538956909000269277668282121411440619954837260832462921009082122923504405469305391338241227518280915967630377502381571813704776239027865119416110479578809466414162914238769859560188881661037790787422125711590309348565987281156223830200979282724829169327732033691038103143865419034636887421742508244635240129988881816695390856334119946088001073907523872407680524214834461602889475266709086623411147840640463519002027486775724749528742391568695830353438484420150791961738019650680092650321313917183909173937204045774010102545573454508323212829343683769651512338586019414134799886219626985570254007274346643732453039935637438034836315367516476143142572450508973420082502558988877486242297785777431012092386988447508978128868429316431002228703464073135306150701250685759561609146329511948579100098181183950441876461864076115534290968047043980841489749686781587028978931561125434397958263862846479496184031155753733540350917972114277922909651192941854766322236111209513372002722356177606787678933319485819200623098562667999403336764319799348946852568745917210132295396935630350294220131711802030238471799575490708850730131660052778068932650520586856800133777522011918662378897215013744104941519359696616998314539040986984530619794042570938342853837276555464037288803951783366655576733006856827845211385650104031595365261322071542337018668557205702825893390750520256032782285039322048072513903584642166578176933955826142331068039143841793359797454945067739303287378639691717684298634730184705561166489309682001635066462115893923133503321302386907588709669732353573188801341091197421522800614996224618112466485460001608224805537514149371288647804957509120710722690350776267260823429447138732063140207323106570769445685433272280160689451693126429026460257722944785094243030674017069289111349007417287606390015797438022939836395820412294406486766626269010714698049273053209726730322725054458034950444571422168136930829361840689412438581643375631275778798527158427442472108168676057250275540226451880113733906437934510730193451036887611701642105486110668016804004512920585261719522989276008186785526519197063517062279607413986199089924020786470031558310730860083239139551741302842169938637901921774676521961859906752724518896167389709255589288218105736932579980858145853740499856313026195706496866333309988031072624086374614333776770063966162176488408695587641920537287911415731168151778512915695314309294568273569036808466753133628226300526722854312286188633192385679007134578444978207392797580601946866402535517681912686471007629356933067298826584378864968870310095596347876949490139289120602733525034563445130186523992928201233341955304920017324912840032222639294228052458582874613008472016002317520505254395704245451134765836863862605023923703087212190620488121334151072537967934748422553555454864715775806982423275676954672744559937241083087842176612741540930321537729428484485258380567655190417390289342288494176911689900612652143394331917928469660581536043340234257028301263868124549655347255297284681213880488258366097092465883355469812526385999494611775240187667048430408683544113653087195526357863138162977814431185237199630746877906579120801709925586345078867909916961943433894122932412504417517328898892444037984873603370433680374790966828443807681785438938373528098746976421780476915127206735171507435614500238657611886398626929663013674677233871341941837546823453951639872226309788762033796629526013884873729893218903743246036725999586442385955787195836720731449355495766288194509584355728325449895818903332430083174923620030617282565339723145229490870446583759276190213467733886523842524773844831735858955205761465351076505227409430270005300287057701897082760688767972235848375684552401984530434226414890984108559444877388551342112131947671774504324823087318093214131401840548147593912943289087580577427543731247505533003800890886738893273757080926651121224535253976874327794588380636010007844634444688599617776564626632773774970267912968172949653052421085750385256522917113100514763976278913557348260047807497601500110242665236815456586636829243909182163362660207370910335357523044956032568011562530903694223953739511643556711807200302313151165549828749426135379589125433778938524870558002259270071995926004657885817547611023620110998876090360018289857364538825134529653627057783475782004120627102728170183647895647596053805571010555700728588239685373827874328523901181281648672958315931248968015792421996680656915869579774258517206972113495551736527690480648982744123276510463587403883637864169767680381168336356463376534343191734943994845257385441650484989528241668424448583526266143830580864352911526803229661907406053587377505350581780043282502522568602832231469459427243189154845755999124406182081213026819101975130764909471609094088014588690696000319208460925378690672015956125820139568984885159826975133846887437630658934897755717235659240106647391204060184993131766152128621284165936944274331514705011348018982551048108328512607055055583097976192524930502881555680149060013799220486030052051906592296004654857345426531987859011270697836478051376327777989623250558508739216535905572299685004474650594254151495142796884407509980600146826378156340094810419040579380113674857577601571237577507529462493201621041466366819572787598480693638785212591548788492449814435247204213860651577920160690671086972963713453924275851989016251816521427939764345076843881557014213684025473015892042270650355552457892885428553385890668225083588307955651239504949475320868060158030706590251664410398064237925738561658046246844100643273190049140654825559053062387637296688636288590903961135745033618079385006682002846874712135815361978107957458841158889263329691586505319677510194844908549809279798293589153104273840147539870805624784373069892724923483353174688611602771981952908543530437035430896589388948479053636100648734505930257409856934501591896777651508448765369764845720884321498820081070346898028398001545332916570798301367483769107631124598272505968521716107742034285289576952751000833175329598908004633741456369369087677053487458879347549767804727717952612391277182053575786754598087923013040509551728395410748698179475001027791473686820779005976190298923284716396472421057770379120487288498580957234675195924447600161160260463215640295958094072935649674363205643103220622497027784446956572983839464820450149385454001851414097341357527223793075962166226537119211774149376526134823282666632515710865144128233647670679554112843701854891081966468198581682615680320225433275044990749188287045917708821244620965744331431383997713398346273432252511875898230283435812896682838222557761669624574222109835255760205777828098720903834044256995695152853954800206065039458960104943565060135835287950963871772875087491072403897173815700568370761639116690813594026138975504497766008785967039999523990084702240154099700835446707037322119214015302182877046531161473070126722536096982806555522340360504849417066706541651303264471439433869731521885270479460737638227626540962877576888461104346320751991017471434225366907600736711380904790077741679928619504483930522653408766462171036648516491110166158511113559744578503425364964797467252124777038890808329449891321823165821346394280355709191350938478189047058042259607888888433633787206690299146557603515098552703796981768320042135732970584204155680297520004266244287005568241706474685428627049475766149547491129960871884545101744672316137425813354207475225516769208740585822149193506625856681796371209430775152184616351187132331765756415610551972827856009909533957442798222295996923448805386700756209911814281366683478397631704964253954458937058476085783767212410957759402961350424725042897945567384944348913617592691268494830371627305783760290853541681058531890682974411594566296865018148254047013175223056971090639342229466638968164477796567824432148100894641297571468923871021108659384834844716094712092038116969595861482991860021303261023888897054684532313504541397097555585180749768816362303352863200626774343599629241676042777736936022435929320078103033617598310914444450153826656288288036469903451131624164954997165328706169665894815349576350473515668411181900857026195057547588860362265772923545917026994137554241115242232464091535037947254583496374552612357021653301535061410316817602227650683785972512242522378642159382351834266932371491894782809243873849069452790240729312313256680211935660263002475738457580551511998941892077932681593818272513483702759925614710869931863334531617804958744398617497863359120506251795219767405826272015306593663003314876170769384071999814308362382689684833627102910960678142585612790002460213972280843365832357623264877314814355349140964874042837475374465470845310488241165757382032052920591362019695757486336219101941071278419046014425345438850174743397506126292379896493544989248004910976497400083715292117967675140187957513474904525345236312409066595084901773442168075227706416309501695149164160443719491919319287188875019073702209773422463628357791909423593800757668149774634950282520454521112656393466928202401341619913615006999601367311309649222842380965826346189626513714239573371274184022465966809615629386418750156594496384638911037243747052047166475776719887798821973199686084909469534854110927309695412873796485248303188555841545971588249775239521718752386576868528399208451767089258600520661753374718970063608639765575530626461376205144052009826113978065866456479507072317911963905061596679417150051149543434270218737661838226521981285110421443862945471509581606812381624061343402139326134134311796198646486805926312970726088404316435817553036720401944830095989529633117490181648072613013755151324813973550039281503916782658848002830784992161533450016970243942997678047786300009335327914645046091941989672241014021130385954869452488651431799384126488748903176270783984419160739085528162200043706990790644836358127917573648589366706894785276989162498106374378996634391570208510089335955192466742523567382596654069419902252267602229991547515014452833582402760953599742096106309926513987069465455716763666643081826758302378672124369785401947122325213855299742527765959826732830443237813462798580800059559541196816225537269896777618067793622589928909090581313201175992727146859082138219366560186616554048965725700050084978534205297987499825217950484425640708346132795803882632819065439277491975249177870585064564860361002879024376282579077012992492903692120253814505140409677735045969268678731344836205883952829713142609416024629032869845680259444833404634988406792450629574191435955408916639558884689214349816872334998330880574953576705868110203057615306303928014156248407920790685564020804437808609904205845950830463102734212117239120122222711213934687449083810284927250516526134781229706919725623165023878178286669417785096727149515808383946962748865680053136688281955298148909220399805255749660466107220577645850981900036731386527039727597333272999794220575929609278360571315037377600319901131230039404140343330526705974497388968146800687324775902276294917620328092431446965072464159961889235279155096239727987435270199517207695491925475401410880149181679549251310069730970986521345676032844698011559101822170240719079278734909273795140017804368153689253800754586094675653502648148683595091937551056645745202151250249679389350421212462480465483849390798372580828835759832520603595859909284028599715602204515073804401721460557498723148765327422159663486063816892232536433272779809077038449391571570682308090980041924092909072309959426285414310060811383212687736623914441123895128099157935907408330229348240075480610565672032765895482661711299640374758154188577360339390328279715379550693045667987355603070990315016375755078495725960834343477145710347400805986862290095861596724291597841374089338774103297345833889798844422214779661549493047507549982303291675570415729648265920995228175552023200416213443382948868185861587599328718047828705506616928094871028294603137987842471450678370596949780642717771924890431729882893051758631725177143376505860651755100665080964362728944444829615423890710206039264091389913731660880714483244900750686115831759477671429591989830637905054041760059166780607479722326509364835581367289070572262915411174820144796275861716760619806149067992813681195833934667877153913933823562496485885706684514351416251267522368753875970315132332493149617803250349991804522379471501808864229252949574746224898737136938127270746725435401626331126785960235353025937493869694157395618857260340685466964293434896734367249625752752591140731810096794420703438317197645502461180879113698714958340257455787256175295398694314424353217338131153393689479254415786677322839187282893898989252342794630704349167084030274182575465785649561417595031960150144011483032390416607962708023468399333443826475732829832246352911947003468769259625171243420609582965415876629742334246852613998141580420342591323885417160373021721993369151027900059079481108079763159603772387311608967721077977805998475929863754793715031416352392325527719608065833262097539832178956077364903067650450726177704556453308062347454741920084742543454853542380965344980069308397202076434888023635526893838262683996590071646554826290102189847899075857334744254006116500588991213262430225044513454784523483574720691665641584517599083702111816772187703304500710931565819747213875513166812423074432966183902395348998858138509868018238610585909921874831630392426910886433930801132323596993349495197167346558542511414685714937785201213804691559818776222957653486431335058480710707141250621457973452588901066613005125457010962513034411520088772460071544158664602238941647027880149244362076491317850834276415072720676755911123478482305380905120310043741887702820290904667343283526218559049248604451700507982514170548206927405809667432502406494676788602055561790184717042407502946488722435242806153826698526775770438002467539637880004756042427750687025472656634997516572639562282955047663235119612494788231354474411575878831043161897476557438675538208272803468551649071932686129639284362744371156923677627569668181769671700217329524275754379688010080490000231237671048201873222541493021005979233289165410318952663557627954679722497512934374103872310586540568296088016627219983956952446242609817653256739515285166699463376618015397283788791239646090725285301878243742496957285949327109727006501738934546707770567242378428981916168718706790637560242101438719175902917159774863818113002937674651141816150468913277789838653677337701710794650184135494195618867822079456408008346262881686488268930634995327854423969518091503451034807581706589185973872509333957083703519871440333198469735055454919561480211619930130051774074823218267734626550001172092482022203296402116353858644830658390163815998729132353093724968927427954045253365498071545710369637381430497563448920542681742592131836860882765173893741179384546208057460096309878869090646835093978106871284090731878391472871428514143085384464945288933100745737295973422885170863196378654061386847840769676653073267052935397141485097707962409020112612172619529578066332690742296192413118423455213824885505415944844660492905224226748267919076321822355126243699379675840872635110595197531647227685507906659009602215404764268355678255249236938521257159219605115286976802203635599856853377177728288484574832641931621664697146493963274879529211311882676900632893550142802349543896306995225915292844704632312042569780494415132007965799645693181155384559247597453402605473857617143294487316018468976604447472074369722773810045137041853031484319269670061821456188841068089637019985134839141261982038732527658049834202750161198475952859312279760027070776415594210586215624070742116819561909236768039838327512277240478131790043591046481272281500062512051463080162081213986912523674031102457511963045132514474912496794517682182064238148957642159966405216565673210362978063952092748273463638360752500331105619476097154882486825167423009623747171770837551062616958768342374511293764210663865040549223379721038527751893967910269530318864502832023638444279604667236148233476614646912512587271709149739067975882449187745967469182301295012825471612085959195390043382368972915813375152811001140491553089501360373557862768829002895812536982849478103211476196435717032083432021596891292870062907695293064693578080763016387749358958385889241273674855435445682151907582751205328875444178319688393048530103944463188968118983728971144924199199068807200946991278648515147347796392735111659905599508090560210235501547296497097029396517611822575440411055807708349297867571369412441401477421294056392909537369125750786730537270894302821999521103098739092204777721561909208859815838153046254263358335811409260395423515479277003029507071360692103985457287571283902535270286796808976389634665084579282178970493421153970966409555312878157663018343458648162117245581052571686429004017920553292027999453592467358659816374634603388564655670357390629684052818346714809387130093357987076222701632796460555092051316063670155453393067112761096043542566424288870757218988649899853043057504317351844786640225460495189525851165781419217269512924373210315760198427868699332832865891774543378759914365961914504865525086599610660388253065839388138334197114192216881772546203901129459401478913710752915423430773618420626773142271845217060531295163691657725381457831576631863051808273449732865136377017931245410100442960556203146663639253066610765091890333073060600450876862863856312211656621305160981694786153603993820856988318638880878192658052359103084433433985687451985626848014040486331712380608599532578499900143834363835006549229567515967966758338909571139966873241285384837969676850093305527698545896651416336679630958138256647875129461515402275677570333956320705282074753600159929505949449186038425674912281154167390928612207904336037088991059007933406632245230836911891611760979448355688577175337940473536206142353966968092481673468382554791241837363407555141026819360320432309746736725699972362555897640991321519081507227192830771683699010566484267570478369448345169970907501456425610123146722557649896206309822099824435089548020236914352169848892547423278312619356521750704685947044305392589680327394220092258115462057272782596025237769266398028775774374160629567433376507902866310298933981287287387165617301836254453028905206125059612761138669084162074063928436447408410974246269407042967492881364383978102243182897903693194251681018722207479081906393329867203889384217482676353573604478928200679951077664693638465988065432909649816476038456120040039303620310159709166049814988801541774900320470699967945830108471408036042261768955936427557014951770234966873404494067487246375731111988604023010122989396012098173595460052077899281352261624192135271287626444667107767499313339833721787280002804212033585430417323873470948478101476804643088127600012546913699492724755632044140371209866813526542376814468093062351331860773524071253897237567725724701644049537318561609984047044904659235939255886538775982180208928278515134918626345864661064195301433303373061658802673612767908337658325029571264738118437058483147768539463425961131377934097900491679016077081834636232441835954296558155972868244336835589555750978343679630090703305438541547719871804474302916686147413798826758272633623203319326328678348918832573930000686641376510670660593081906540613113100091865137562780242730042396597685531733829607064056282465416151901296777100119047025678261780899252121736673838303240500234380444484462154694351322301336019690346276112953517609401550085105370380686075638374900176641366666786571626604168439229388539061903023015021974166870216299216116169509947753266982230245632720669128762058168577956505873583307267975091646528885261519561641998725441442344036723426114174877746092058173970380685194770811476155330830898298353878078972282558759705102036055952397496982093811395045437913353082566287499264087035452267328336280945429529970058071970968513708349760607690762016297703608883369767184711318915446581154739428924748156951178489588943800686093986438258497646085987670954377738199715863015499938293557054408542658883640291537862726823653357131662232796314357484894315540661724590453442462192019736316045331252059005044191455725172016825505426495561086639174349391570985005770910759867365860573973257454795598812126534929626237401794170915913229841407746076073282541778729986153088508305581869185528489297973878801955703268884647051633901756382681057462220856279041299037298935541888727971907164485927937707095649782415477138344433377097439515976034459793642513721649163414154004091989341345835869943345089099095563157644564229558934873535769393927227141752577492655028119140668761582682570146663848305843105126709780184012823513150814494227335868636176787274147344351269506311647090865729153939162555204594916221305336228715416582598455784169614028288063612650662265950311263953729648100092780744744898686029704867466393231445859812953618480271521651743782249890571173043857810213892173385461844169864033530270136354454558361472554660663826797402209037711963050534002647473139303763316900469651331924092482556005807714077928455907074859972361928069036931068884485404830459305674256367953927058796724006181291827921195571375394573616929370613464376439237326158020905413130399980317265936285010989312208459913395002653466175676369801595933476105781244071708450538891160681147265488722378217341597441324504347627186590208348917074615981655485087833033469062447978711590809214397598793447082194290719320345600542938151529004147262901359554504630804867122606088398479049837700053905712724947275110196045506701586310607753530958909713899528636048539426635048324723916809914234840819430713691881646309273349997938489221022621669256115534724789129050814039936009979864252742605428297310004723006357213965474534780454709354520086332530275723508380002387128538821519012034987943325066680431230662906099690641343789985085139883492304605300924611412822847579934273565336398388291445327369149637149279144000864904508527075114315807455039430056078503131287942471425929678923799032769388584978484230895613711658279184600109730043814769243792723804410168791219239300955645239805505766876267288915204017137754602712523985835224419038188125202423944950032498628790258081633873517308733974722477634641265848542433800850898964750588791266915184855830605834250155837239373373647238153647777484494371453819234149799717387733409515275316605080702393218916090334834976437344187525584089859512537291347138470292593697935092094608463503858800382876866956353261891734331008297873994479865630141429860418786674646794521451267494270364536732036936127964770754696710281109049863709311003911611077753475375506068734010768222286047480929168100148827945269250417934890801544438037175907111576804912714882486912220728665838442235179585561888945094463665359765455035282106879786204385177850619010128458019563860975838748769326074493320059175273711916130737712546555506553221838788873399666952116747593386706305845419185937650716646848356493977029183659456872458728531947043816771118283512084085345427209862334466487049967740911998204236114064750587096613825221476589799604354855123020404110397981347492484723577382433796704804410638103154072430072683009438304102647799423702680581856979425138142142609538806732973762680861676734322830812536717416469339328467395566439775942402333556829795201162311890539075877314601496267889133657239039266876707488381237795043805742116085390121702997698390620743076212284123788081451117550588437597135885991893283050762973585302219502402489732134626919239615618914219866539409144055958386803305794094893575308592129642489405724593342036725456812432974351089875294762099152477512952575445328719097456361713318206309927457668443417539553529211875038440356867433730788140932163428889864625039218453875749987413184976370449228979521994356209064406462437748724998417661901462048526970312424453978992646556745296445595539072467821072649734430860749148502918253854217898197709775610990185007023625297736768355294874989063074365299077226014082548264615779928070370328711517877391504691325367514976452931585437150578812322769107841338008534806556175278753327237226870696123712838267926055249209641494942585295927554247770126991701809756878101602752918102579280402594816487120128705820540384832338354069887411481724240673682959284992146631855631983712385266920803180694277614453045513293215172292622017176246274166449457760835501005736901241277342161515075454986513607650948725532042667649464751153189972384273864646387285511504456553528046821796137502152487205282181917245079263116233174042750956201865376021839181439037526754807276275108846853472844727343468588998632001536008372513805063079961676794102007769603140585817232454978577387284619138575754510731917093010864253864552138534265715755355828681192728514047986369755522797818595264760545281993277717938085508757425880739677959143607814004821550205106395324105996113319712010886336754965957261680526542109408343305128025524306789150747450968329049305399750831239404122022850618352060664574072386829277064417669388936035688230206411788329693355230091299821633919185935334009452987347899319617038400120531314044646099659776376407077496620539739807600014504274068420680087587409327150112227730839613964254441404175847361180148562467783237315878551355143344832277650439486662917887175606708748627640079537935959128273262283247691315464293859380010328149894534411951756612011325150488232087897142501061199792365695641012395482151001168324857916652099705289184014294895156594744828332932995672712369208674574125528511395643948006380275253523144796852580315883861431903826775951240476044298662591759742092335658063751547279605684247890769347865803267862794471414352647201538492651413277167454919734523547609912703888710890119504537950444249770968335913834305254363475804055565907178623250931634334721526600069379471290064522943923608019537614338458767609711165399007964796914431982172095751344973763524452253068128791193077440010950747730795757415302614781062630787246575059110952197791312898111401725570210303275487716151128806808848803423366140325831574305064429365226439904110596109855142251643937606417006214593877229255754690276008317400346815130306765202408952078444044550751473339747198279673116848881691881020562982205107226437278800054768158693961379162282987779146475715959990505456202014106775269560601801292720623231119765330695156890457455242055907409709646986462347847699712409303209660226945961157028985507437467679645027299287977753102419934669365367322539616514710785839669977497727006114502780314473708680385190194623405207818196258684227453846955921169340331380917936748603342156196493505722208128710077221724110251107202248290365061436823863685524592617400699054586833520134894914066558159071365979481968571712046999075351745042413303968392449289546019438877216213661610474062318644450904769939234504666982665425303889273723771467353478118335764714703641615396033006320698046070727630949347610444446483787431416278053558619379759017568942976301259873521267642496948508468800553495056783079884587335206638745802558239906780009869528279214536725871517753893919223678172362633396365935459816275778240610759824188992914907915050761946679974733061571587170195747641953196655787574692330030610961347625724172295922399902400229026133327857712705627695262469689141777050916417338303427447092102757393321541428436629524816487131726600433916045274189160352336129149757356074072566094236516918322181826801817351821133518530848680419463089453942030193142584512223427679022921111206115751411124172937808913591964383063639568496764645263639424136949168336605460671473390917881101422922814986324898203359343348773148883994719352915470145972870518412837139481921878901288932306909446225358511163514043727272703167093393644495038320142290175662805491092668232032427801118267221123383582644395479966990156826366967019464237333326842708194516601211590822773215337645462973571516537737479514794746705648471246877480487416405594275428529416919740942220323445606646983506482144924738306154853990979803876166024807803920401537944143802793371583986662758155278751461480421852637007227633207012707253346296263149362668160984346492176816123849956297563195397897417446433607952058448584501108445192034944440743595976248436663815295496821433160865839226381796099833001376180623578169969427482407159099588740138085636587169142217040771236516160779017013262654569466121629233183299664931768688672320981660162661382929894813614894076504057579172964149419358222624245080073823615371247611422618531894791010247287080705117782515205049926008439651705939021352669761167723702972965672422284936956503236635805703486228275706299275230160202960717492644568661036116487271526272015519532011686694566925984518346376235226145345449939591490453997927743342446891093967279748185933740379504577004283461561884385799332474761469627137883825949908044418396037420784651455781388754007347867178869742953224480499837882387226615331004579239377769895157872216867764805678613757068908838407388548058590073533716178294194470226497359132186485654080003836166703347259429806779227329760970530194012157779361195716766857510653970361411478588838433908207929883551722847133292930590286549560855445328851792422647135846617116883722955601524964133415499894825443161342654308468510402986196871045560711077551872871209106909348759693595310128499030539549342925940600701676505601079430521898377564883046328052580933312213544274143774112388705999165752349953671349909799195477626095726819243002555779726400873527102991591288768852359754315203246965739492127556093729429379949807931864460585188817612260061557471827587563940442144361648951445883290482465602967051363529502690487232460498682818134879558920800535009364369111756754167683210895038766037938350993078946118163765289562501590184576407409545222243736543578832202427247105770180248786511589090237964884501217315221333781044082508843165360060679911409399529476337301066025789574275028858814034433564091545413171519041065623615758669623466206892545017478400676404332399665625063986567137893454961667795839094782344015007727672933608012670701183684999229753779505628261850530929103560838019658606013975639301926983482014872916420671335182744680903196897989161569602005979979406776182086591815902180237885154656338733091377539512412113285562748312235074589590140409066511586048917520935581078157854561992997221617748571597513042962517554509333443629371988567673954900336181904836594271676196954496200973146185702447259374739593918587638852795740703146738643972835395664291475726455175451020789430743477866599228776752087678087293396059029462489191237034321913509119478513538618312240483996638675196850438495304748801232675264207654699403353410407337348684404172186282269647063114448605948464465026186761316588041579201175939440539729516697495905409754565481877261630147306674058557025751789250610842138931434356097951340863355086535786975274530828054662179321551889133711094736723572423435751628866106824168619696138084166158838879026879754786520848465714527228910711629651527116488821114073065738696614773079724806097457570009298644398482803392621457215151364262214229250138444985581629239127599258795621693347324990233544462664400532906796891753960661861158642199990496476284360628344654172850045804844882521220907630492340722532781614782417938706443206210170711206817513969598143997077860834344736450303925879522312677970195027546867176912370203416998167680527572172025084618320475472834659899653149404280709954929456171899180439936735221077923104046897391249961941542030756987967424295727570227393941195077641360657493627743273676639579811207069459822413645826067587430814395694636859219587660245783253374603711865808939076617828045514613011119922313203421901423531915093958538411002134531907582818480171444784841721304426495513610032985795663595414211716297568094505232140892358727675619633305561265219006539150509079691131310652741656525644233047339807431805761364205512008047970842265726849975061680331785112996979603857696541895730502539193286110408581692540909529667245452286334961125364977627014049969442008859882034496492125733838848668258332034537401004776881343713388508783408588958536629692319774270775879808642897185247292887469904367901746381814676082733265358011588928854046625289501159612209283818434308760868892065320008828265706742649915882044650805128998099577228271643611236886728383506025790742017561735027993035246721235597590240317816606208467676641503388430647282624976428060775640210383865803237332290725461028104783751544341741139985680428975401604556614502482499678856740139963852989872906519117444728812981055940029365318095228447484599530403628483654639506414419081975972717509477509525948351395345833479121545752735185158017658638583949853815515071706128682609088292506677861165214327211754355398211719260621552264677762456261767461755282557000235933123481874558169055822516913354270784161766528778712201183126201898319653055612783665001040482722259548731377109565347078087980536470202564112214011358399157020755341161157884051829267940992465431372050015637522944582252946479123192906197514382783957847922626087098393782080438753779865688021370587162321191111999757321246386966391338195186442855419205970885121316781174661092951457882562130858075213118648936209813478752403661582371931922863114348731903514237540628673297617859536714553020505516236514148991017683433525223174739220684771770839502833986282051205883562831631318411539151331807233710571852613079330133610254353982943577582616578143986572421503122006700550976292485971162798012459383046247884943270000304781457216610994810015962766259011673037272677697759075028692350620885801454663172880036996164784731237522948784154771205586987780439449183208282604140628325628492351928922709610656026167016501925321115352212466994377940288422979970583941952343355897036175345745706154144718264414395487697506195116420203253586663781252630466594355129014262484542793435891915170974461505081850231102989657469093264267302647567718537302041539278557262835195770452296757558294886238439823424893737204106052920256988537005745152205441926832026651723505719286803415696727330918476734868372148393503165115133035634383838321516444049733867099035280595290641052116750949240166790367689419109759073747437511160748427789283554041731493990728378915837502842206571614184780433534066834471871227466723500610595072114638582816770793236901360978733607882396337054622302362154528933905996134866674777894590120019764913264721182834113548274755985569131044482297926008450786672823236005261994245478639428360403914198781116890186624988748172287819745464514472927987669224162441040107407679848712100683525887343021947374745570119776667308349620423083062670883286079816950980376885653190841399891200560022701204614769460461024565136492911478902939140963160333667129554378797001857229946733809586361032802303016973483918731582422613432353090831889660372687181633455863156829736086863862024088254371575926548105819022693286135645427053016685397791936658532018892551459533841901420993933033659099254860656795824034469895817722424076926274219262062389752456707588651008550233690885114313820974431730297051203642931301058992661083614599420270638592278769577205967429542153477585174666391728654040190652219095762130086021979786824778338962647833097187001076149680448427207330519151618555041734209652260124642605915836928566882090362182214975764636466443684776611033143664927473106934147716933186662795980576424597526081398349154007573366154360938272833352881374410867072825598298833116695488447213711765547059836417221893275459028025345505983168412536858849301839428446414513551824068740042049462500351143170059214279782813250127880084776614300916789430848964193053782741514991058641404664111576664316181453751231707563169273683712064108262468973158409706851731126572690356059385105185375874959667859258623534617332134428511451472485391941374241931183717973704043355704233693642245673526788534244317351279547924408277059188151198984066222977248168223331615981511482004465196287184094159572060688142521082860772591169858406831625906107203181905589386565505046507205470005334918669079790311782319282827946198230040716989190317438285015066777987379464329809320539308988400897798449748758742827618888350972410631882240725731726340609356314608530887320553474614184105589298429877034311802833082752800957359582013908165064959681751490033523504378264579053277110104732322409028072958487072402518326557357078901533005660274359355060489037729270038983206683770710628463946447185120040923126611409856782606176849588269952601042274214250531980284751906868038118726747722499738126604159546125681787072280272394472051378194417909063855957193353362382541161715725066356823973731934831588795304845476738591478329654243936152037336907714087679467364455600616921689702067731825560129667926368976415160157509849304129132802406897168977903072565791633701871272461247870285168148164118072261721374047505940845007149661035675682344268587505135315012280309550008077071178538541718723630943800137364978961375154065703083623057811315243091951474928146452247498476500046982718047086539598718622130417303048536860118069331695086900851020922275470342432659541511493146429262059135068854033808438621535509863045288330370168663290198387440433733743834713767474928872198135341580083228172280319163951886691628357395485678843020531253188549705575323873177751417117809703663600663506775038520782856313467104351565646526412329225631768596940272188975683841401128029167613664800201568964453581868809160741193047474663337168622842216276538890011293080764331495545010169450500112104032127452974701472212508259566783743160911447500693517487238623973287812161864765226356196229448473172591277148682177293643467735247629175006198753556494983459667770201915801585211832337756211001815656503307593785994260192241779666815940097730194755012262414942385238364555190889258597824530997881808255189228517901438458183091090668018576388530006161860184034686455837667523502706022383494033772956846887373251137838942510596223209198481272256947125968259717044758093796128247445499309545902207170893267088918250565115542082405577980243049838017198928128810923549353349608336906442525664553712151382958943875152302491183553890023377564997513894975653325688321408378747302684221160974061442171872195874744459235588364288005738927627483146779964602184758411374024437576045874219427355253673851957367208331437842320944154827349184746268532772739124657204173766598268959557218366866932283906003654916058960187176575641403940219164291142972424227931618018190951653580380872600024490742332047059086957430753767299938646377764138924021276361163969520050457040340306004935808080773241362262166662767072237957387313527887495788683654923573450834329408424751209238605940015814387788390078985706954694128136114174584119698670383842651507619015284624518758656904279277008914677347877761388681026398339532821487906761872395899232127578833880195634693637492084641609577906918162284302225820430635064466206645789279246798945751083651714484046273829195195757384223455331310361533300919835188210210933611474005230804728577806680298767251900425678313726950249372513355909067273366439873714425410270886218618784755013399268231308608077938265147260535713019358372359980590758025953816925582299152417302921725552054136798624692317489493387528065257290132323937092503185726894918663933548320413084400240078381746302452091748268183031878755269603351621409363548604003542223109954967858104430591525394704894076882557383098759131969524242280167387866069583222061212967100502669239583033969081008761318807434379305750692834214708368636612006257223416862970231591066134393963104715069063426626205029482995551051304263868294637444460659448241645496524696169920151120215036374691250555699096620068267579424763932388402466519085447576257430860350768747172465747329182893383521730695842975807099663411530261427005776987429953274837527005145431768664927378034142713135076743320851930884203234340330827580674801131955340384991645305537749006000329721622406194580724617572253421343456324490756438905583539502455740950586962310511326920045559350794474095073735523993578020965235883211536448338895810217936534489033020889508086357382194907404543966387927448513626599090478752627160074398585829854167780998759606432434945276491076157573561683271630044190680121277870537958278868108243027012724663691635572621894947921746753999657752147866804332750050373762104201107108084531261015571203754104530437608007025532211309742323063914452413423970744235175712575490589310328531745531764601184466025226062412765648228557765156747079673595785708294903927839218473503780144660246273159756877717125497956904540181021785622021255829459283448991537657234879227030365134914093004897924047023192524307483605376271516504052751727924392961888583008422215061633399746280041520548542173475929023476197796600770283182261246675220147895213258325715675007342415046356820978966100268878121344521029263225499159611097602752201609319322019945752028498926101943312434983351755636623997641412023233052764599408517039826024177743109512816595243194071440706469714763228814321234505964195695309420031609712978742500486247611548060725076079984006536474888432405972805820781978895467123131484120944966157865341131993924575615625026024959091596461594438714906002487591739417466404650090630845037140825643447713543374930025116445682913579215110748111790996661349917885902209022837990656434162669677979372378495400751282081373407278572010800359015608560891047472454573972273069869384018240078855900959566164982171102798239317395078414982040991968400364288111692267776578351007006980900625372334831327787629869037162978202501710918575834048810241089262653195726797653728971095070316925853189676733484644350730363578279785925004464479424206878682069281940841866460971440892967251966726430307058251343062898278870777703187482023177000134164390824088919821537288943904066774836652341246635407841734623204781113356758172547274968194420810073234159191551487413631477934620880059841074094726888614980167729313211849350163293695383799618193786370165480755715232057915738691068362878574459704330191967190408647060070278583221268958073437324520649398969623932309654268726536175711665223869280904333806386850059029905488810373134907503465939619233834277912477328981260677164878387292029070809578258111069363808134474319837163373426004831677691995513892844736571613706395996721080134265513549002000033093612853111573608896085173166042876631464855738635823727914852610186516876475001104817943635982410415402771233317647973298276656543923475518868555624431379606342895828404448434073393247799515495585553471509761995046320932530333234051740771519673253732385913607907338515789892541988797064885642536081628420363034139129847362885280065047942713976188903862912011802391757174672996804599400659248320277075070690166411951232374096825555218936833786391456798264440851965128727262275486211731955067202037640063966010265033831846083393795675883935999367424662224395874499394427407087292500530332677270466420071413068264154558241879643351637373145217363996711602784619701270597326581861177141846881443790873795881668800842530383539504090038311279315638126243674602738841106797064957977285490671328416591388645234871680598946457008359963297267648028114020676753901862760621023892231898087815589573707612851033087091209979795167937363637966173146062290201824971954422291823611800982950988463495331537427792631751095505473032504800854952584683878529274664096967576693784579063353321320180044229921410503899342942226989410005537548912292109387128080668632583031920462372364264126094529197842406628331057437917315569916478586421967047697954905673230905123672858129521302976616254792208620392638960227660052421785925473036074838327861957758857756765771538776667732514117315019314090127352034933153169054471765686956579962745752300771897801910501155889910638002984298944238814169531220354294445068973240860018282998060581374938707485252300733063156224743979324149760557704432134913514910910744903294469714172014793560439321701592546852704708803739005696886566398202394668344393811788354478553075190583303195576797035113529792370095809815552591326215955219121904936346106232876971145334366301661640423800807018046733259598910093880701427929926572895945909024168316540671738913477760797600390167154772909091760942570424045626021640378612707826751282333573724891116462712469809920170498633643038643287399653009583413956526108685173449006821682440363081362742315825247816058976230027915560566264825109978015592298406238121013859432721264214537005350918415892177280071817603237093445223251457759061282883044782002968132380753135358822165949976209614905226549353885961105265581010524458783347869117405921838885853166691678903224225400402724534576816547862358170668455704107246685699480123203531889436085657293688060959093269343335380812707209503234562840523655363950323270856162979212402962732100042878398131641483898536845973565654320467361015022162913318593985034490926518868969877922320831338610166604372364941757636717856451155810686175987336756278498137977449669340727391785956333312169037998423564998647716363486839513341970927617494622663499466857614539606330388996872549838829643972656333850958635372891974569614243006306357537160405973920001047058372042006312511137123317048518616412326589812434923693392773589052638886163802218200718561042412709928675699972425842394178553296763239183640619131382027949320258525044640275583447997747506273845767853902373440793875080527885286779049331589213379943441409778943263259440894228636950054938283523985844843528212436892993015962415365713076687939715439201987559791209649896461946123494550282845645063754198548920594125088151774979105501574423611863825982631239161625910794158166161130642174924379437327080910093070785542071357579031382603208095404390338570767823732045196267463195619397899087751735192033860102672706489081186277769355151393291565541242690779477014317708706146651164476310287192287607077673134511067680809372235384878864654492822140975829088597814625472504243965318733016816398924409216487870328948191650405357182503264468787250160056925965577929034906011475890546471678053626370339332263228328153406389140359398552526361035999181304961377832186674645993987994244805245038031650798827491134466615294392048658292203081738188277587363438579688698652793653262111252565588145997456382110802603932935316031518822990176208443351637774049412609653137645220140758438805104579613338100597408796717442259497915853099552712712106115149988772402256469754733966875172024564095328855877318616831544878731948713250348748715111019220095851962347760460300383262427960471910392677748495325114344107508571946255289383391624023654273296112522183840435859651623332558236914420745883836399514246163803455048567178021322175595149681768780792596305177787675739415300915893241757481207690006685120310613837130265459044733957090027887039008992228498593745057676880313930298800867525561653271383939823302054130162849224599234268085287009927623452379150587296047013648794934552551660572530432542144619168818504925942274098369325956538876439198468990922377044116142754464527202935157590162881720469245149786226212848626336853571550107656626491283029235703770111092863545809410408404853436169526552951280242210009384300433053326497395423085049578469079077081929003047724320520733601760310222223884975869498652501030005729918348012347500363668740441605978768200934047980848776447124953899282698583713101188256829624204542235016080829509675738406514751414371893617038956968654505612700771927468462983675769863289395065888227615166902473464479518908211286133477248837494713439480668386435808404541936686852717152385868554133120504123241647896526390753037343708627792664248244105810757721130622898759750003379740737602179764266948794838901413094043546215841918248232524689853976838892458596643137561111267434237913595916456054347911164410148687240248298219448165647445606384105736456910183781373770040095603522053313159319776647813715083440416010738490236777032322880093581009676010168282235084348273813131668055503341095706992845543728629712924875694903368741235383425363626086434806549021052826788303554995002258939260110118412940424910403514776648748331417964482583828023734843319293876386569836200307558809135955538598303494590536613815898449183526650068725554704543583687258326164450162523975497430848102030860403111130537379512820465320259055500495109413391001154842000759219815446763320988683485208745581408329030301292112977758075905624490185170357074940508597222680794635278409136680147479010369277332957675090955631817030262206744745088267159744214060261440524949104981334049934111456769267079484052904671088559694445824086616291547015467632188118600730229198839349461463818207871391169674224329591009507531567677679510741753848072631536661560894431144147245797536287903934908164433290733072673791432030601054477735050959057500447068490338312753210593306836110262352656409701608340165787422820517388255328904404119949332635443750048981986201180529739507453127690047340477838529865846438908264502684883726261181539176189270615087736900561749606600151706189934760236002227180295114655995760609180308015743611847035625570868795078712532269693794707653050841206448411924157477702628130654658214045802432855664288022395117733309903238871748055686978461260915183786199680820138598646593425769145440717547973992733848963091250062333234259376780951290949471739408658582367473021811071720424661055563549624277562865269012351920367649893281320699093549822440862928924069565270399476810300243567081071701156968989929271882112907601780644603612836324929973479868739768837798432250898263274218036289925024848708005727765845725738778429180780119964891028272458198095233948152794197351394618786119187024026422050530857797609565263411854957793794878923215056459654222049463049315763649674077699717017936444274059925746754699405314193216581093911958841725519363708865168777759446660402543717163689095394110726023580479329820132239207941257974765323432111609130720245853030660723018616637057594626080878586524350906542584254042194083312959231434803572802340375726319386770149343819962431024215781028907942720909334160189160598800137973537434700992949332518364710266318784519802319405514060476726313676031058451689677625267717438291009679309070249276463170394758046958964603278445191013450483052294232713425593839688634257468503722795950320544349412132189201664328042596134810777939124624280503464840991792997096750751397246715468415876861390379236033692763012237441439070753464430494127058043423925961156668167113349455793427617964017650106617758981885487204939524989769156978009003963689632658082324347314549904061945189423551362099206804048257693564069994774549430239630749136886223492578817074052427331403037450350251676981213282600342889690493837802335367564884441148608104341137544060616416121803821653684441195165251682100927701717085729280659612361528704995289771993005682952641764868435567302920331306503006291772091661817927077327855784255093478160337179135173603781795706020131290443768368632521538358891620227661309406977006266207725469866707918333651859269744642396032638806062539892785837878058275866813030016583077195829113500806231178465917004109293674106717031684927366549337884857752553954370512124987360820119002481480981348119894740338701792584233909788069493657348062019229876548865920504762372598718242467028784886809762202259340302243785950531675037633525518951680997287709382903286125770225755673494754370897577831101325376242692583135133269407248887620742568298090149846796008535490584838358711800658542011337457753270062349370459554014643451422942725699634126502484844466539448595165850287804802888072638245457696675995479302199778534313618740987468342319969294767202809014792039118687249258063498958370546960378401087058119436547710237156980406360260763047609763422137186844877473716380592095440303352183020126603023215725578419157207052247427471461111159360664034479334644121498125683169570697144277186038959381774973964208113858271394558321753893111007679097570406108058329763350271119346310956081896458667840784137230307160879385012162055929954556285271241474677871211621313439544834439559608448832073150227604171633003270241050068612961406429486372601448516985005754149167542588615764798984406278575465112217489044270630020546326296639385976404455863097013391009252676717845663107019482171235823709256559247798200575735708059618877527771447822700674692000953984527370179884867313596312781071152144479794088555737868838050140054250873289278356665087315646376759660308670386114301034326801101314912739015981606860117366223581763734348484690014643074087417544164297107602687370541850292830075642390593016463572324685138291732787771489588338027997401471522049101918826457535175210854765469385793569950800214901503648630839379661183630789217688624661004090259160150637668732020461249437224251826378699757159125742697958795789431258882808709523180267294121401955467465842243653793515887861362536909486870001448344207510641706551576793982286876477128453688565204411356827013972722865856250159530616734381565882642631710711912855603511362365364328675820662955246130735541604171180748784373718774556948502371943464709940643694829492073480445708177209603125672718763633471847364707436210129793277332854975507758093426709032318814711848217304631784654527498781362240412927244617217449720327372088504566974098682185415154737096678405212787298222182044206123149037428108609699869511816241562445511170458054157955289677559128359935532118656858640576505369036310421448656922635562845464747496639991326006778306338475696163868212786156360817979309112833769042890820409001094783403360721854459908213945748264030007672522459242886770202260468019337743122942532770606730428565931702820406739719038171871273634199954745953367607746149445872576263856081178080784200879796807660253901823013781903721124412209559500453806606714236522209188837474867331418811567156465361800129771081971374413190638726760949170858969384421400875623890045990178427258225324414975749261138046108678069850981393906731770437810741068129939999396072606929388082454107697381141110756618778449102871090685862569005490510331717012179570918230126885402361516674735490678178596466103486938544605931978919551698985112039330158151063667467928852829467243284466113887081239065976544233762914476363962303374044626263928905630045882815332691027551235326109858320480733503874262858600637451801364440681090293170029126816902374242598101794567761275452850760945440843728541714114663171696304290499514276064462122535675393750988637999882687861328378989584952656905280131626215471362347199087982622769614066037982938760273540422739920081291987478466603436114029423388576692171913097628696539737671068349861600253419626375367876311134858510010227630119277687904320363846146990574599899384541309427175512210550156150085148018210366633636823485971754702053833506073421257966788850572475728341906204389659243331014918442593579827282892672520821241071522989781775962975022563230016386351535395447470771464444554751960341428122174752360264582961942637093856967913151655558692472535677269173443718835275050115018659107870450986464619439902115006644966393130508532751793943563978830761908163038250241876330693679151310848505722541121470441265433766901591833166560534594950346367323089441007732618246673621757189999914872942895856718087881375682164530898687907450728144461187934920851925674829512253655810830585150228290913746903789384164141364555491207935294418562715235087668445646136144819275223116641011227936377311573727002344367656532763521154501176270197437460616849630844267089900136222783002691585235178146269520754521191591763814846412188618351712418019450504462286793923874136238234763537996991164404355105207471570794064689593434850310528244698858341302360947175448808451100411161477063174830347955066915885289582059586697558384456027313766043702468487825617288717991702665535896020671718962283156492067159902361407708406704727549906193852644572286689363842999995525379614453224177475917554983679880526586506266734320724360120647625123525513293315544580106323181772822603752916361282764866334838009285991940050817713976399544759864703700758195045693010535862845650926271955405544626525206785493436613473696713648228915506454589362930361677184583632809071227282710946278995475734551756716439092007889485859392521443056183905872567390566648947771138284858471388472548745701327650283208716229177056010320907437414076510526132477694046940081062166734182386559529652742524636166445736889004840010735384255862496432175131554148782253033649197644132847118216403214789139176499911907369096984033904892091725868491809805096898764457504147595582320458092873664859934467472333299368326881780337985545965843173512310427636039262795059446064627564732092277800190722333569180771009475382770012598134551018909892104047276238952762010206920232004924574301147419560434246959032512884965398394028615880314629534095043171946495808220299337371074924296438017639325148638408532095414607689680990964207759367483320328220443422864967908863512746639931859717735535456894723214343034626980073174234887594508922609942042473808648948974454539849123983976267465996816116344682326059508714827997055861545099177091679409940489041054639248243304152214289890477002186217861076849811564897683956144638200197667897297282943406681084748740726802966189046733769230871696581823276817809063335755869422073446673478426668297121938927052443704282670194048221723313549512007635521906896996184943577781875348462955090459652238486712754447766462134016295972799535605479876790409556028302863345462152534697052623025117538248860472309595961712327949081343160355684117994261153356618828414188559098134927240779706425784368672241243969958908528492505640150042806965793911208762951865599748076973560602366971295798380662316992927064096352982504912417706611911263544466241601381616989310973537531757075160981601166795061794724664309092367546514675021312853714977490457408610248060528113039357071897762086523945839845232385969917779544742102383542257232576000788539177552340293459533285905374547333966811673978240916627647884571654880309268305188612580476103142949290960177353191377047085005220258659898343198820941302858191912679847023862857687226625490241880857030685073960415341323729192619572174194457922328202717155367285233772400858400712543838931117543120965557183058160452047100313886577638581730278177202026307579470099760014495908160990489075026318159019751043386309059196617523685018485142409340846214144836880291686501841765582399004364604534402560507185098562372580624744664784145717733506361485379536875929658455902038077545396102011414754899067751471307985331396725463708861830213403053506101936843926976140903786702522687461160032505716857337312466615862491507580116115607898010745636920836496436433478407222543780657684552106470551081619801641649690495669929525161612980557912761079727797708949463701114280149380121050968391526350557852606676532568933055617828069626909551310367034287436938441725347860269734052347521166499003037059724135064317002607699217837875247522098790433181334057099616310436669151681292695950817226231687404842657952999240005014983705935191576148575764804263733906498553587039406804999191975207856450558584501872279801213288464443729246887470187380810942027940311302113651581338899726812380640634199858994725457032103881503207759903124915444267280855537006642821203052322792837843357233322411510415299143431194323036712722455942052054199686810305364434588679717268137768083017390116006226765634811450507399038003567604926546697978085292646535673351313238976529054851314797188572187322984451980376173486716732231859626287072263154482462991652326980600682270927838021416953313749219214566937354745315289736412555426350840880518619867162607831382545455628944065883854060385802647211367483930265629873110608486957926628182412965895479020971911779683784025605362390978011322954714504070626749056583305722134546637672960321024177840700628192886069940476619900902424583949904560893352985349140800398020460246382770594383234888093349909356069008885588507755296333254617389658214191355475052028264013757820339343819630785372072491587195329702270259405744317050086826766543693299109545297397636032515248665940587449387042530142675671047773593962166362474247371512984525571324366266934195950157336070328409273091893032333433428058878852739677353947839175650318538362856553537488139753748830078032123096391140279883205079847844453386523118895495845649128119368911185775311862295635009523057490619719750748030740421797416206489765438762655254194081183919511449698170546434320965881247636519201817443467877576619458072880080652502152836817272502563885271215664245798604318582114848033060069383901642242348648112684608645111265626230390931868078323019678562954023990142816281276479106788846435100877085140126199858590304938158460080845874628405305564132093149977470186154600723958145756346912802880740508343898059247593134515402531040389619763799410829058394122662994786466245861559308402948555335729273397272545304936434703674245670419335158246461517644854310702953340090885111151159147997315132564862808857593111463180552030030223388458323279871514973521986880137084213642147015406680824951470301469995391789682177295069396219137094737189628083189393498917595998873238963793314572543977719867638349926311229120956135931138465913326549470907377724385372991016264805337910580068334660088700586786002959269275239916572599964640064254040695843187137199080897593034763514299029461529485760687796886540022354981078593559189731885353454731175563508311768139226289927883960396866937952817741170203780573752466880497572903878915735018395437025598203630147493129261152866788645920619506360784055859284794647379103152242516081758650309784929601508128406288013033722184703221672939185881198983663676278249591012769312674144931438615986301917763863286024812932919508806875156054845974888926630762282924190282174100761440035792980281805840011954759708121137560787930551148893547262467016672242912787650867015901522645441474513956019776842923493625397708728413268639819185156857367855962084423349070144334417369865455909584079343027918362196166908892142685488534384221247643998055376484007522983352395639021792001476074758793459442209312247025226173707920203704915242180434751246099786661931128399234674634714325885501032606926027445343180114245627489720939723216403270007324280420795405715676259714564795094345831884763938698730102105009292184041769838512537123384170873532651826560061014235930486111887324106782949343974687903384182246088765228744427550930726028540397109044027340067723157732600577455120053829712642749208812639860317269568864593536495365357180059530226340948663785167219744007431489419842127498640362651401420335409268699192278264026074766725550627911465132977988290756593987405695278109217315472912094339261884337259875592456842016766959728001089482035947557032404288916113240233861092047411574506988239283456861466267522088199749345341238682184690781429331445685245775895865904799607088569883519156925681771950677290848464810530394222232502258111256605265426421869518917598503030873930240379397619495900446085171769100836747772328710295236845025347105518261242973546791034626219555146072416617781551884227773576431831098940172781004659986643542585307207661636167513393224432860898300487212933554566906475611346669793605547304617750445171682169703553816308545402222717077210642207603765967912502807239167503895150223846849532765530124448585932866552034618195923716520619632653802760662423928717658325901090569665707313577574728425381245174312360631970266411594258376247160326231331470447093043719396313237654736847137705449741094782981660211119637656580254798441005159204428726456352118680053184524434163998094549684874763932865734426929510416564999133457882314141272055070851241932747674041016591622729540171599027675528730876225509852083312227225966624477851714115229542147471394818124570381688560820484838370369323164139526323763581121156665736527293007354964942618280523956721610786771994110808056011116261471043561954223415315422512653381148185744253326080912295761240832456175804151316260121624772284550672345992438033245889321495802938688835972998308878182155881109523381711658521968723279636191248940879131552700635640440974621546623910808897058434133529603259782046513717519204226846399146996822252064949585175866862113199108124034288121894160598073531499952374382706402257783708625445018730899258266749280939016876702148998758508387332531811307507166028064512205354741911200379642619465848270477127162274670670700409165659779521438883046582596912377578068059609101200957725807718618820217633329155363309691767137442631656091551592221026985502065039244053995609549553115756167036630574223161809614092117052395444799557047089652731427678046445722153832606722887142744075816644033053556579733214091883420934962792762593878588015324605240099877933638864488913020182320170549773353314884657433364452385914565462057129527212344156394839951179687349143181255624820883211519632975917201490941420533469236375810059549338572119269169344541743141917811403205551549069975296488871567738045583172904458355873727493059120594845926433734799427385592160600530216119812648386141649050895880501295231783254726579369165064914467939085537109563746859660185288236859803812776950011578992704014761789762189792787532901509901782507755459060390749966739385306895786775505846552735093423174999128631108343664198926396994197668957126041580092868577052854783255798248676234576567607869840101969524298551415554377318406153016450979815968703734819880833516084112553189424353849075751478278251808466874848100814319270525278809412779453649576195563401728004601385772006570723030189037536083431723988414813237926378382411584612299407681153420242594382971772988353513080177531848664494984415329665044667601817837612971666457533958483443739960655263554099844676192680397361486724431844290923210741297853110292230753137660915876055117915126632620567007790555452650429380135858126633148347320240892234531343834076790379026646856634623573690460718404295493144442061658779142098228210170940393440323620502563176360678334902160402734209038010474350907767873223440279490952143585949445743582979431531101011992898325222132874469176640785255275976241645610181396125397649972663371787918364756983268120373506875070903346863022991766778596270202715089651238674746899525473015350093220903266834629642562330610269425032656069679855022125837411330172715184073568060881171246318137422918941679289537625688041233471919183549127316814330466203778266359847442557700435761639098476707932441482093119251838670333225306287287797034304942175187464259669018534879246774454440889514406269376424605623333634280241972252610681439615183835208509887102640305871968537253653033979512301989475242653601299705296073439893846288014039454624262429275368354983977101441076017255364690228743967302001771581099091834833113339426895947143554533533412965322892795183687344523859129802737082455654023012761287839808823469019455309793969348937480556783542857182077884937858736894542142290570328467396502055229054378565110766272456685989838956786303870119979495345636009681623036169736820103694665164420131412038139773297533945255533880163242590436504026504811397423180193773898669918868093658908610331650069843499039793779562429432421282380403602645313849332939424173464610433487187163256265800081112449489835784360735885138074542435511136271785664801271687286242990141012923359202312263785839141425290660117334363420899746289989601656189414908021446033987953224525531453518778864951473451585600119629959489652020625988990452090953965742149568527506004308075961194729941877731362297774600917437472725837663993624030450424574483251773835614120529192635556285563935133203005419014072966365344410409837474982805476743249543199485457819804145583202494805500339897456446401093867790562863346268793021424995139163667077676930646246160857794896648846262902539092114364936559029303558209254485697303891646976103696720790665711374296967421744972463968117645457472461173687198876467492586049159348564575667830490450000268343374020199455141609109403511252865500073727237749222968275862808364241465551317729595856258727378222823013283513988283405599679018688594936380908532913118656662101061315023778559686976853555611050188011085649422476930451075552461556246698153571866895239189500467499220996351758075208393662802881013382019233030346219250157913472935136008417477202509002462439189921381051378792360784159037329719310574884229607244855970642586931949973983791362027436903842801545492039866098438867027550670448788056372414903537731957541661298329281187398425888255240739325406639324572320049816602333965639475054702595065823575805445675271112383449361253895047734585397292085209846356939063019563074688693123042259879471626119639860664950030698320393525001364209792836107911086727391062379939126732071709704532704009773562928357591800354449904482229501984377616756095339950075493797471383378551452089969701306231654730853078605660044919508325315495584577488076043802020880265697047046590394679305301161253917329691005250698681693931217220182035781026144931499766733882771196986814444779033772292029520068220494139476525095203844106325817509640752790714406102300458171844207288800293339163213270239583591602878554288953189627788259027114516383594865309693977093579029162412676013290393461974946836197340600532088624593456745457323443732752820449701846019391210253099987100835560512420757452648977428069906765446309028855868694873827073715594310094372911782791463334317506242821482829455945734276491488003635427206606869689763771091158528489276547552180866185243746105771705900073371772465007984437319832631818975895854002859685675510744331194980132254586081361574296909470179818575801164284532611724410525052919754083849412203217541186321810995817827338671576382185377481802410365092758903530082578179896601855245157372013424518875079820577024166185524353739518062965416599121491118052374655303926068680338890834474036596214309200089915224473394079067852262799737831011517463881525300091999612661420768204950473854180130696445343834811792687808232183047042975509884724136701061046466240770688243751894704613560319896474588517059387998228712520755718378189850198843396193963442722273165589972067754358269142838461266462158573460966469669510058706459590851086474169500443081075399807743305165942419428686350903252746420877435214858202431817180520894582787273061830320834088069963832417350285203423815294193698916786014918298652386131922359522575788502140539777949658619179187206324908614556869286590646341412155282680186692011352747999209206315117966566262222831154040094297463972636841604544632156653530359718020752772706655216475910119140887324699029051991410399758283214635871528202396334973992848475033658503361294430924368247398183729778414259727383685820923710652370513785406795578832721561143867669612260256999165219191598968314209914063173093832222673578816669877281658423427552135190422562529579038825861996755654442944808205223661304566821645255343544994644476793216108778828297917136981987986150184622510509487499343468262160158774637331977354436791595999163606114232800622070022828776056860655554296165007430871620725572134453333131725265590848167452977104383690781292926548399203162679505433020849389073256402093401309570636624361285924476083777756332426236547518168053442448213312071625197434428501012592587291194314307751339728721144282919370100820581330255215824707052762595965518147869344087220512164306774298192052290757486569136440815429514519081246508719972392585884894503653688468440627260126742166067498892357143138217443562609585883356872249283508645692684892218202062555288750760668178892665288895977432010861559319897408871891768391131438369862738064796608322018193587538183422197746894505441781333226556535375596181190749426475520700543884725652949450325658599298498747398416380842585347270089860088044112798965672455481447479289453890244492479095411461000201612258529783398978975999451863323895931125324296074001778564090427483800348902757691712045901458780507641326499112019853918552685891267372451876597712490298389212564026715733531236103272746099430780015579684027899492240429066366365696162720234348043173485931390090227943820202786056611142496724667732720303528326012763376873542468894449337686234110943613843615192707142571633417871995466651573847508898990085776303453190198363504651877406837698902426992859110797798852247425211539857883839841714595506301605453016708952698113622427418251044294608043181591660812014207410387595524469564937146421643315481077298455899545966421923713896024852355836260953024399391369059564375482585539134008948190558665910291027823948003670332286429542616973936710525147647495174100402578985029838894008777504368032243633838215818371423841828574061006931322393122407135827068197488100772589101986695409812618816919559156190633650254300096084730329989253573047914009651326207366319327232279124223213788529041588157425351349559230496645855385712149677832716176492616312441844285541242492637824357213499883327248771986050561689548416904643169029011765280123170791013086185262328912871739049159842365123282650346651413126794862822760596755244754119439035590928544574577177364700891971214784595475035828420929725305182440000854311064374833985748912021331416080752537531739356844492094631951807330391395480464182508499585075442682811260997181192964645186206406132829689532723284727532393030231516118942413752912103058206886034414679626478993056136789656380607365810786623335238705559704402554862433043720431233473538624432339962332956046356529473064063857446144781996868416477700671811690388684097468715247072491475439138419928009018609246048576687276752346426939550018100427410715596965940979982554294066774148465818369589720387651677817831156089278275112305606518015356081907233837240198323021449167496038437002444568282815581871256476030733652741405833913397831795114316145502946784199037808176797634632128405302541770051276383130745999205215884794273663500897915061565859494819759146958257240776019676875047352366396577642907165854425075210604517427406957639296416282419089402891378383250077315385517175155595502602258132934920025544991015668473170906908285957689560170709406602854601425191171995361821405273079440248318473185173164364039605636222134583185404504550806777726974289576504968090097751856543100678630910442470426989618409888938347512959209568153346170981993942855808704482896466428447114423935260603997065096790102740434425196174785720505460783442039516822748724195183563138362537302713913984891441457086887993516186122684204795964321409209637208233836908709025174717109479823513414722307708538802191202728211902636977559753984126613571933520678590796595022608783736089798456438042370811824158941043422101641233507828625120890491988663036436172295264673031383093047951977289054722975839907821743221180471209869357069404800358453781151084331228463786545519289855636301602025551605300438016202724538411345921181169137051995096510953019528729028720375807494888664907910437979990036061555662481091948919419722574911086503894227484028749884576433725304899201017073029960463946797460225322405044999749604288952651063003415928331346258339237541144516060500023214077260829794021496592362340379519718849446252661522210515854510559196423074774461063645967861596977854814152206194254429642394941985745411880761867172213145484947860491314887053988344725078983610386960727846354746730877166708737609055927481507987008714104416422213841731122390051596766155741141336404145177675408672920044078033121534498091242894685667301001642587733164324933628235931161327106474094520896935050582047182898470925772610143995370107849799276703364715473972751452781179132693223984689902847826765101858490345675810439893987068764054719572101065934681044039096998447942188197940452119165775373906421462937638935038549401645929151079268866472599816120000000163922170460136464347753667569739001674543506549616968992469888865981060316445995911390454700114024591901074216427712777143626169318671253695536904719402415019177563508398240422725802684664351802222689991296303002758725285356198404825033415982510834678095225760173043640330261824752228070663932402474966614942805600135235212249377990836195913726584860409389790305661468465401601001960719716695079228084239361576994313089404558424727298244494617125841878257157263618428291793214515274446806890030783283626098581117363242323816825518266596223904639109863113626797300487869904006966161337711647038610235100533120077152424942786487412353644455954001034893154800809601162567286514952763548409002310241267815451695125691551349383239266081502262378186500259805430381342021047722610349128198545316123628642360310149547428527290814727372823404873121632292654079683609901811596010716257756410586178532473007855072691068454984207500183834775123515477025151597717302313802333338586304715937312919322815951102858324868747995521418903756770058400833704956813605000163238496436996530357539082898207584940271812119536706445485660838060019270151456296449627633623494979463178438474450292985957839164710192017824894061674184411039721374465908523013013579539678221147440515393002267208147321186428322699342957370419502587814530981576298839716866012506755451793404575001000247451953211676131993763039868956654944785900979127828266761606722575240217947779056108834221451035388539683079302282199009202038423784580331604166783383093719788540237449557447666387408494315468729796645592129159263391557284657304841073279964362422910212824732571045116103135354061293404941722923130401163966778009629997692278627042442884307068486434425851129761448825948932942112449694261381169366501360577862423088069743699313172455825037623365951133265898121281385182878543564661269567720279919130195888088501427520393705231253494131101938973857533684884260655592899860544085588137768298777176404797425743828785314762186930118459932319750273504860953375570402922113232440904235007149365370850043190887673453431305512764746600732334289036569735363322905278526438050409233480693013432098960576097945778708258291167295996851665757764520869195940138923055652289911994539685066860971458565950632630216399297577349479743843261018467074875323957010474082732514693631343028090896636156653077347805564047877748626831616868130744100435032568166160830748137391931116404065421016112439722271530805077428714067933431842189546935253692288811890076799365195772701551546977934006593242504295620585924632923542917680263044086067662840066615667851552517676949112271774321231147914815129077920021963973293953160864453497351086123778663078693418727829412179532547691564589301576260854684867748592943104760601274229649309013602928384921409855544229371051547699394612549839250941136296336526041310882297101341720201698512436846865768733648424757407048367311664636419233519127614899468448905976747308263940757700819080930412959048161408028432105686207964100137586183021051081325971730927783627765675579129588367022208900302207463230421767061918660145679749056346064725014676590120462239471076779991682855665844466791095949309970569783458429904677425913377445809318253578407788790382193827098688816331891162133003887713807067529399055075702615686238782085699357040559618735148958530386968056819230471140949920761323913982973541689335243600400502407349143466444770856651169725384551878300612576287897878436183357879319321922119742671706412872526145952468323209919171773743909423689290640312153648478703017886809704144648031622336953033833798471450947010269589702661309672936620177260078358019259865629798596162112275627586514630938111041914830807257182909761726873922368593368035476345626058477044893761440708489152860874439950514957016124841415759576353870216304394069465578924568720031233167568002357850071969747896746257950098673932713025399420684864341346496724909362683163735012343865888813151898381222204911231554560232074800909343309052176387390842601864704088477784800241722440249416558575457781628105095580413096656343661237582788049545487442125605950553977273264892965887142992686428452972817688790923495663751273626713280933110554444349927593881561604295377804975068535008250973418561965217899382802902303969884382021574756167134212136085640867246584458725530655387737346990841457985635270229645550964226981566766701135808331960254436531098016271605816057996087721643341073188856200934745684847295984745305959216096394172933007229061599198377620732093727254319479827206981328324480456355688420439637514736715673849600601394832072152451936757428101449849294698425783282841501618641141873888453682034740190181291637057521657886706960395302316993604400055390420530362317594452719308747743426713624453380704344245285003576770797837362873491643413051968436331194149270972431646366650177077162886834432967443779851315650561359562620287620851602870232701939527907206793305556210205408269812756349439682019863458447972074400562025981878076503874002424832857163749633326078788137683802918655002942691048562994900488652369836300758073571710926023602401651110561796490007297703149672405616217342779778268796855524437555418811336059134879567344801648159693073386050465217360950077425407788388173570484867187770942206948696542157518015648119383406636031443871162188873598368569950732624730466056192779857052014899570497264576105586399833366111365972332923469982594578139686304493779739723570513194154409236234865125821630690400592525489296569507456401817554017910152419981588112156527312776008302163770532552561583464328097792132494718164691491862205897383441088779461474696797423349122280226218336755915778654492522507268847882990775280517034880897550996714841948529566451285004463372492027966776682921215882123491716124995490631146631521125294138967980423230982926639333933829685369508503510780427270818341532894460409049276018966459672197927126864192056219618823957803810132896172170334792576861964606722039213332465348360829747720623592643698643322528674127820509085654706609786809454784359757606963338539057728798365948515640313413219886566413552110937995333858205834055130908126313899762297595782533153185912488751851590345498920688393865363193353646618740327105174435954672481859530251484838071396696991517381912540828231182537348617417455318511689088201320349411233010928157343222055917885591426291773458212230244880421986990839009081006194242658734347783110610202484665677327499122819136206428484256450386605209713050993750630417970496002295032311638066441331653985259700953291308963597080245730451474266625272180561269124418438704656001312874248611460950014862707564394664684892137586317094742118209263362199841689273552880996041393352726223020308556350208623746804965677446604331502076495592941797464058205140985931055589010611497173672884528063863761589342226575549973114791177005064926893740331412913387702658056240577763551511709038685400488633000722294697205158248466026691227844018375001299684791215777391602327626102318464131124808259535360825890423538232189637349759639449571580238848361779916859805002445499997318927621920586499716640428467768823689836973727366408383171411492352842886994071307203063389019735081429377272160328200316339364570006614171603883160038609554666323580933612855120868477614312502143631446124642421624445830942286663617939139019991380817897825534700398297059443246799741095274760349462064175465614845795868735729199872734845417137240625003709843769935739782917008890382798290385800126733701742709039768992734265729948848719613240470776199918023599941353560549991830033502163069677210749621046939197713043057993507461933256651027993847231170581604513429436021317736316424604386593076885701773574777279458537008575248115606050874253683335186309396187797772087544601800363927970773142952560780707023345467496455532002247999935593362616235897205153825440368762398545083216599989480827121501018807293126706646711252274669833546275743486347091304271947997405231356418685630252177834771697852020272551767996238087858094831212558973623889999634300038430574612783605849589738665542228026068415609687764476740486532389815249369792858267609909922326984931293025511150428501737505768922212143737998641600488673447108521117237914022710699827809024821643541022585096816922158711433924042395303596399756617299446363669658047607423833742344366925870200777990689772008163391142810956797674416603203419298785402158667040976350253364408893041380021030028976798551349531148277341761946980602577285573384851565846150667211510034453371562198961430703886834613063807803547531060584695864672315025623247433998821500111909098097835020009560051758817970737453662256191647204016599939998744621505618318804035898843132422513070673755714684637120085383066657654568968326588667348041900392941306664807582265048482641272456075136112254128171616066795191207724459737686970685843534589371451585716603437465556214017582854591935355765160388168988497011574051751139728772813360559180892553059709113147912505306528674545249550273101038964808976260924102221948373900904116786748272788899406021164102814553190667337013162818156700229178794849428745403167211591167855867164043305678952116092488258274768889307617207487508939059028178249827990945531447468910959249408777216781187248430255348361780389658530004103874562914214535595829049994730623829851717474534934623863995983449507364773103865299007769982315642240635924756290064673530396741127379534415192654496870084651491638930230117962972232344914098497292966962046263786816144353407047183632913121663190201213260364269951812680307795564246857170975970682310630081278588668532274557628841397648905069076235597208452682668932851366394743137839806752585871258166473149448453698522791357486884884619184779985295094430947009853508720994179256203176739413235483877532579617007930276841922418031342259180012522434716688854902668067553215259121457310062626241780212882538983442560679362225512221164615311033221318886981160573949456265821918470979563040712696620472818704018219062137184892912954459853121021686289169546985688662305013955095014621128727311056129743346195783376831278745279286836105197156339178279108150175623594744015270024983812350295995325055741387917199362491555687584757037839988703745675559862322185191247634258200195188130260580997347151572991572378693236842635251839256131988741174674122017048327888250137710767114768050522538438849250588551863592523137028066737416221081540355180321330010290985861849021937375046414876004572387039495356023980694321424018105484484493213587402574803093601512871168347857205780527644189272690480139120407074063103506723129095414096052756463010471295460261986318503898833260464646572283097846769145475762024842722894159016532483229895494400550737280412802565902118700636858323846857174807359538963878137250673166187964435136150762153512779856730236955591799784455258187472351452789570286384053527345083008953096899623485609496330077400079113453231201615493791269667407117445130335469793297264144040024145827593274742958341160641699291072185343860674620975942834936642345718706751431165647178826893157599217465276036633297544714457600288842938182236839289426171841653180850118828406781955840641719414274181632716147062495253765334831334674211768306290213309046242275035433070794184508700876526405112074719502737258782379592512939378363035657972366931946890471854428536607751684857889291019586437667419832592950377823681877910326488962207883254288793449935169814076978268438194990058432826377816113312833544486643880318247182981931256743368015604128962303562540469906741557222870213150007984798516260195163185505471007107190848897053364996964884158634749315010222421714591017251482110591847704474673633216119604946532118047477041873897652870657832170156524129938930883323288272810392522756597630496652446172739065429061466675543973237388881648886246245926316433571482635344752223831564275827273516518991827673478460115376044687799502708386228149636459251875859666412764016406017952372552193022505778501881891376630171573569006429316609205214731002919191736977774353014169982019704426773684224476245131064270595509637200725715464530223727731847795729717051817939551759881245782161005219360112639236092971805031963980306802506283877493853933461790712642840105174471838163534302202488831846705606351460870045711707474060548284051028185444367030476169505447302097214326745957186336041282422410661403825097651683571592003113063757904030278673938158807281689679012761844814502788618206930734976541453290671133080832183622685422606570208419633447744280334878931976330663784914715855808509247568220737138306636284743810836215162914470400931989720763974729824111803475571598742136388395468757224816962837578001402267382892679388888906994743312923221250329322078066001148989586439773155409178476428567131642582516343124033770070319686486843997925542914239475157675833945926578331144393903072026783574736614879686979912216323408792476387525536879881448611660140283914357724314667328493195077682925920129116763066490416089080542572538352336682608364429932954255367661816272781063756014284907887090489130550696792956069929277626754638957462176037533229173062343316878949068546187084170856256009395124814068661999200417842833515495873274987940846431546759314326300255198806567096892629852979852736917830473400177281627013114375292659786777052039324257604851115489540186037125604524583031303691145739124372921533844687101319770142042424251844043187313275954362694333875671148207657993653574406032917253069092692608984460635541746840330811175220378822438400915323361313112812397975526314308194625569234527838868286395457199909955765562816298049992613578999088237730005916704184478253418111020160472653439449951215185324112808970963207251716258085729856659735552727959097869711449212565358941105833121067980883495653070700849601760900946790416693158318920455176273048691927493416016334818914952583365377756228759949433698457955947330558229957509885863584077129529128210435945468036338225218331289735270258557645518423700396946887901583249064958232407203938338724964653629082219256059033089333863011911498797733440628559157905168384570758964319948023573879614417562471623305136714354559002608914565329051146427851613319827705262705140067329238334411576111011898451844743512846414054559400007698841679511063574387594516909523132871602582329132793175158957383631003382187205977556501685859120466937870866142519569630598348929856327110901078608613433041168011028211529169727844159580825596649448138900540840660450115399883741304577944011567362843304207957132656600162028645052120991192691544414559754839243967750253995947281632716810201757569333943738084045693251123124540367683085402708810247579500078579237029602410744764765812315157996256014372412220092434567115596905485752010278499529008138507701454805147301942040184517653915043478454724186003316072101547124143690035241850639479466207109092317268875896059448335234703852623356613644472071400520356310231717970678690288829716888691682590449984992817644118046937871039856789338561863746533366157838683030984565059429215652426764316624588120384244331350960166822158723331941502491682061236375491307716270396080810541039400468807277021863598979156667180845239064758320077627406477153233748443248212187232565107458098807706881351933762731124134044019253005469449046810870626217650888485322990617910008139969768613878920047857365611040268640644503862249794523047096480453013953689985836641392043773175006890989172766027820562796984275508095972912718072767964365528827381546876512775902037180494646031247377360489299250853413901611582010970667408368892888439508613848792882412990394854440759300719423058905118451399190309151398922519630227672650761900628696066207028915357551545531235879612382147591110098505155831023725250633297932190582296809478287088791227773001696128999610316053835744453791728430524404720250862334030475596963912157052256377693662895736294708706085079975308799789171796700914659868344268029384552626240462747182739274601885002295548553229180854467635962809472092635814030070709453579511461209214652038866195446689344314198150849235824214620131743438938406672521332542084111901601626792480082432210557020967002034488235460585562625769530134631399641674275173582221047629135903662071862750615793736496044756206495210365459815575332004045214363463343171924537079841199614499823815444870596577919007118032245045231714645562739862690065035323010588971309150956995261386563433074790237047412141899121251578704982320852454573558724243919374006371243530984182014646323677109440090405151956765764265003618941041614383076836613443686633903693065366939304164679136481991278567083075592833340636171602100577197645136968533096850668384667578463204576203631196847346456889982337173003313272989292330756607816921723518675049902236240521318762856358549400443593170634737187637711588696635590836430281160701319220978802756006820824264698650908930774241017354772889637743478760530333010077651658465668468584896546711468885637891814595138632513288567975845022743278935169727374029194817328385704684795000028481955840013207965292559116319353692740398600904393438078387022964020630255198559235434094005848361826652806575742618301957454162290778114346053686030106693108115242860128587095903097099803240592780972960366895003526198810795088348189846312726581506903374430156594960360281662274114423490491033765933859812104422962550270154614546607141827971657512972414709223502050543555551323920475493430341826176303545110977487682375211240435509047167998293224856107815930317958739500104760428756321197665834694015572737503304072388951518951983652770455685522276812904046501855716138924131019150581933627041311812386625955698623776824528518405152980413351337668515864214736194105942713773854671713617233388081860977447533858636043402443952571473810222851136583355562692034899326833663364286700992192076209342600471497156762901373162232259569217028199948774071385904317510254738112730495651429375523973339907552844419391841995293736074260096936448205240488166367820079899924400944120600240899377135095861593426236684443523795878533467216747895230666701151547886367273009287885615961404393421173567931590611824928382531397722347002901234930038085833720402386327204227061567131533997626628255517115303654736740685462708670095955454420880326890013993266060259327037052958351546020416304103945515562731035157480189990235924987915121551130447816616352936675786313580342533360076947178595952606313178149582191087822810834648956757927609236135275311985775461679815959754487691194489299410010330327878911984050385965638096774604921417603336303154577959441305341439821116336199268433287341652448956877996016177833676351857328585397613345197457758653585774033159150244862109394077981518154438398052360130697555165473610672239509381707814261701787476534141368791872924957294628275758838137574379051504263409989223665141023416026140404758848566759668162992372774847658156741675497284963157344697076578194833989739252605257898854447123344212752331976440538282152681525758257479343882407376752568423843606817824062315435688795732106018069233073015699133650507994263362256990758538103509330235704857707270804565773741232430582108209406960653037348735670695164344177670607051466270762640302595669082093060812565303594248662931166126911850003948745079876821945598870813161161484520636010176351928013549793058660245039824827729310391513103602853849725093184859632037792511084903611635249976155071701400124375699129004147679150562330340491608842690884661463740645684995329577527439491984593349741967689116892094556973975129015158099417312489142929844722177147646429801474608649052530783089078252948978509165417930304518010241326919839057359809983779536908200779585466223019541332578761383554527724441120420469975065984746911992058991901047516040545612973881516350401758107930866527951423757402837630654094311955178608175147754880417346658172014760972070660009628485941781149317919438878251588416758606324886470212256708491860620931867545605090989518494876434064752216747493655815625429597065966464652399055044343131784491549590263059729192671657556340070937429497074453165990108594908158408762977262587230575793540662187810192728835620282159950178148343411659360926778486187660395900117101696334634738893623795985886548327195663838146011801112382375153864718620683677080739791583649722702735396538207298215557096971455041559884252840147716091389592975054245670445575204360751827218460020997339247284877280336308762344944966855441752564959886558089013964749602809363545137947889840114917641930612852076796993491146285671912569218879910987896947939773320789833401797774183665388584772664948297944596947086757040332289856191878760524814415406513930022188102992994954897718023940248367305545144677727067876836982581858360060125421299743894674371228327330768933322955531334981086646365788215811842007332022827804607934394528860571443248131852918863756116231669495653055856160695897706893394067603401729631036380232817619830741362909453689999443734752427451785788905815489921929252065605629334896012667271073890391497546250084099345445728247463247453665344970977061086765092106973520307849114206825818519785202851097391995729412908334599594249714395422394597847821157067367047007020220066284407169775848238760315293265722480152373935127568947931179697576971324591846900848458989555810762824612124409010955218314966246961343046791120109540065513616857490429170762440161051807648605920153341323325484873737431152680763386735340214180956737075174414577438860017265690399132189997010151938978824717133144368329386017536679394794544318408058028711436350941860443944203859629643816763300487922996227367809354825620287621890607765139347173144187417232589464492673981652389153916529005126287499970340446152515469716405433107965992780812475647343010125546137664746443515787302754110863801050982594913658549741445415905384961535321107814591459046698972575541507058157641851559199246347694380916988072510286511345671452074144916549789605075291484808198339353671049180437136760735089838119510446154324286390875312695201362717859084521779188016942846405263272795286278822213247266642212904998777000163365915262955746155657929869790918863445790567431061882951663297377213187753109746925272135855186738499177168358809877843211251986258800590052024247951372312088317327507625033816601772569184585685910945442556642081283800753150189158833392308269426993583246926959304865686748713214432595032405177763696001273221194493250989226351078749129591956491901223153757779926816960796026032030305869252547732997254721750694228029157516285189542233628148154124102149956111645309737044050830398833425005418935931810447945410061753190254840535365808620803835443567125956201275584198604016503856279918066715230644093394299129857245604981682322870978494266152912500485682822195344595136576967725367429773765061747149391259001625805180743173536049825644440812907598418797840802177373954010102383199874387674905777767609836310590365082565790844265603481165501630078225785145841159533739384418787531047301042188921053997528017511209884244711551000503366854375203346991814211446453352224383255458882151321363855889206098492581064317684392546862753631245385677738416573072994397384015345442237877787037721672364272079332341968185027915829326262110116404060329648636406009032606334771595689390175964758507814390816220685245529858240053498147999857165826094191082083119557866771427416805703474189392723612108050483055659310719469358412468058747046166631456187445027352226019830067676201452774696098307617187338191513326666129975090165946292484216332556591845894005182852992244022456862536242382788207427727042079517951751438680903880773277885514995595390777466189690545208828772699034944747263374035505278503971815482977179005046852447962139221055045030689920681854746321766399656141606759274729251063992562653659012065344598369309413063983913456993647063796156125115143374038864237948939861322734667839574852102190763577868151225323018968070100926740579302008750809486007257985040601792886071072889090466386463730766189262408139957848666756940658252605270063443201362507531111724653251178193940987571654770828521950484829874996218414670317547185603084860360986139987561307465308551381632788198793919568582374007127329808148307228269669039057977658040158906542785428489677895433856774428785111787729103981070505176281769079896292378638469473213891879868599509264476311167882609345182395534454522453624122841904821216928163083944410416056087787560625787387028659619832496412337097767823747652011582508277346528644032857993583815423748130329788461018885907469294683625260254107345583762377376069010074975285043633767293009388352330443585118434991427563006611486174456911587075486761960233764972848084072389061401749532154144326052430030964929456786672945913311695220793334495154786596325054192686648434039468025851017164512733983782344953074498363624617166901260210354308899290801578218681351799039324302406039474248756299689742752498254125446057953934548910524904921355537300398196822281773950519093353461844294353599095561012617147591767571367216559681956513128832116230346732195928375633171546751429994588664174666406713288251920416124218222412046540977408705621713495799125817990307696102413339628706545513862529738297778822097941895367584026651823769228639770565608603181273082819498497884533077440187604957920348904723765221170334809495146136942277062183288095300305255693199575241939595339589568191545572080732122643884888044971236981205686775008496543204053319152448421873846173790664959895621025445755314597729353132069836849421992882103021415382747337990398157654606943211701929172419824482443919016649960897210011098005536696950425458308603957222678307152545049333269936320212886047620863079674752690006170302262257520143392533791070422868691227810546781598886993787862701449179112804565404060681472276558867262287683698058994735001709995057319870225954751228380811448604156787289983797683416309087735966652994817478748754763469396034681350589555226960848809545955302241466934814105523099426866379505492094972280073763875997883461798486499275958896493409811373357782747619737873630740240033587007057744424574361073880488011546853303515840707143991630353011648589204228511154813868450859528640964858487347914205568446855849926909355552135613328404476499095364508760466970747806237773595683251676278562819580192070495244894996166168716160484380608067378443877446890905494694478995290469708624663390866250699546119878126262548203578826292576573341511250567951996899262882615154178405105670822948270449064646849840261347377541383794966479097262748965323577762511929368289604127227512662035505332867534913286211651082973770821274121799897786790576797084695493361447538367562060613624422175614872340232147313589330586699330826223079892055436987864881442896957160621010395792663601893081191368081724912236474681902093238528713217007418645976568659745363113932312593353955093128997644214987465034422759140274871955048774000601696342466668966105553155108288962076971778157266531543116275748112235065917376223109065386795790885885106400566024280108789880758120976787232003473116426493893939509297609423078429989883907882687310518661615376439521273809651511142351343384712786956290066977173837426968239451021428984984647452726950543002517804882387651553881623786942773953369183085897767475660203589963637971916996401705399241407933296266408805733121119419460705856964171936049925103894933257724561036925475054095116946035467260913151796669817344548381748193048291988565666067806217739781240016613162232586669647970184424516125231881125900550966718698214455168928226537135304523537403485514582073798717870425686877440834482288958730678082873109782646464651836722808889131599180233553747069663623753983259498541932029365338369113102174995741919455617027206383574146656631530299218291326070291404021781652612055649616064122506375126291381866899721856346385893650920378367851473199114985453327661094104219001831538935081981541064878083451674537603583596915274290441465078193626175055087644154718526505795048967602270119243544069540271000147308890983893423627353654008108421310938966520006332848731692406198922840843817544409330874191634900052840497301986016737440621171550712783701175951279228033971117228357810865352735007387041417920165878403977812798858123789124787709059685844429277270766040406188563885154297175170404794204157690858473474287643721439606380186355938238226755570999727453163682015543074573057739901388777296921597330015009443838509016463375914579338880404348406456347824007059417205053214039358311736310591290463652422966421755116889786814774727604355897290073379002055642554915976303969633842227346413256888107932318905852721755439987248871226183518951042026701116196645159252256528227984890516978597028029862404344263439997334591662767417385726130819004827364614140902078342172877897510414542114447460055122324082051861237193333403656513696275734338745680178153701114160334134003222629196127354528369461860275971851371426287805935627643213977730559252522540014302493716628180895621178634371645626216734553249310212985520529188923533588771049789575844535667140825884220880367971357122138540022417563922976458638777347855166592136419386174133082730722471452780526835661324182500452087746642148143741276548148615841185153669946578423513842977877834933660376073740416190204469206525837698598858083612230899552177236568461470849496441943892228418029376948941335744666990479310879945303921876326739092433167031616482062166361963021709641809913971633615152717345948301701447106958477260969152677583577436571761145877601764846482898053692192829676305995301459949117471113974061613716258963043760026754199739526070565684745797831992262838447744478698473836393757106967512342982751260940521911974360778707786789316667293925379650553029865952200605771592646230896568649380060849038240083975735295517171494226377456509042109492420595922336384917093090827912654460426564114357815031805419263210029468664701019916185438060874458272217908267404111629217841293644187958093217023141158065047713683635137033054029012180236641774697223992187730472333732938193491338754669640688410018413232046228466936986686041502064457471247913353800048195217398066310000204677241786405728495546725537438114515763842014685062162858871082688312826119144896973898026962695545761684068983160006697386451731989847010198404691005456145537733920264960837988030056730479371172885903312971325469181544219110063156873632327170140253589919944642136821418712403908187763801605243417257471077614988832645164235386301908481264400870053834989629543952773217430382411151126644761127403191979743713546548445280751510564843703013092896444431510860073266215415342972317163167569628329649948781532711108207454003891312273310049849910812751096845719663177768542441133982477560902458998064197351166721502492015543995587373174209498799021802251211811271888129508414967930655232915708653534937530035965382190713848255152865993800753136758940258058834458461991130556869338311346166241824794842051547551125776012021493898014257499617817208793989090557926253572172955725729055737297357307317436099422445381424464266585535677754775100973843608288297431730513055364962643011851794720708838131133976878701831623999003337060530026912034541062896988444697718018862165895440515258547867824014869769025057401745489063206169319615774686404767709321748710548038045345724156625495397677994510988735709330059122156397266593346902745036426358297398919004429936208900128131834411580518702121752439610158575672473998157552886422336420106680384430262095218176880140704319389000960909991095052151465408795253312397469111931421609418670995871706521734862394446322376057507305032776896268522568511741791535834997862284358806709310456139166723300103259962782462609613099290254467728763424123656325405261581331514074779590681635131400653512988149076234446155843476188871293686058711391761161395581604560208298102510064452982827709368357318737404629655784965004075679834503392934038611426141829241605337068762461364603944979869369576168171574771278293210703945529663341667203971321843141108920098038322150847147109973849904109860181458576225215482632341449809513173902420930848410471630076997869982342616020890839654126677546157687018060159668731500294044061815302935174896106483892613830640361839942596034377320016077602559237547434109065138533822251579523478578926175615711084710476207041329640498847453672628610705109926888093468658930389856543546865932716017003186023018226790808501593324613891974404615196260913685756293287720705950396866007059248685342454748574088353049746711387509279508695852956183852919441341539986408638201259855716197929821855182152056738171113189881600318370324220215837784084688992249282345061773016982291210949203322261044100606893454455350013211909759232818898388148603976408792643081652969228464588582893188672423854664875800524710637954739175753339278768175429541513177029898742511009431834594208678892815702612917540706755003032672431903012158851073588455518709866951600848441555249700279121766906618455134013822556583802151794536215557451571738263937046353123769526326144969056709925484598155421821944978187918128386505622874363279493452365797223738954398201779444275447490217024309031165454174706635015499167119491458471954933027694044059488588393625117547043971684787317774507125535521934146594591487286840881856215774398518223480730768063845467614401157420646377519731927030095825673156462568417342904028140037946506534371533540193754079677278428368714143524026295847425063625982513710933651220958929817985742744818471488777148427252884704285511991728032909673546035428397102545006205666421029921073993733046541982180601810432098903584612855939708661439073477779010191410787330170080309162587130595338632370354664002265339353657866111456210931525140862796420925059219591529962120640401793835087434159377561503769352543558539765885067217446366402200322315778071049009690848943959476920392854115119851248141214812855243454584074056746850779740604687778846939986624431077680188098481957709903643571814314025252158995749588121886937535165593050923620583512355998383174263715831574096660352618928575701059989579412077995494511376050868671203486646360399804457553241109211338606306123506727887674630899218482481305010278243041213851857199068962837983909269217047860009197411600833942880656755772597400162498211951740080929234712733532575453366129609198876287860771720198375114917760638210987393449328792496766115496972148344329667851788965376492946592817957914991987182667174418749570422273471931910748370757864197352170310829603225517429257004518303048844210791739611281943425832438831101752339873149763687587947933935062258712444660301977802298140035931911957525130434202442199123478435653106078968541033278087657489135450958522066852396482359095303049811281458336409356187179761964468834855078403467973685123135288434816848261820516659366280804682527175209620830870949002878055873527295013201260467983792256205062009127264634806430503398022845347094062354754602448503017491577361558855202228504928767369409664974399654043628521763721897074257937236959737443029469012851861283644475525743684632130367050513406675176321731440744676920711879030064573585818898194500759673516853988169515978225269413703645027489284202215647467255160707590469612507304787822830232653025627744844875428016831094636952496506662646928341228928871230206154477702674032310727346010805320293952642942823560366993725466484495574520447729653857990057711053609363186026395727485863257702055664403574997789843552287216767136963090175119985065071520327405479147489777061746722215347579566619714406046928994017260365878092372525455259435361754631851367378332486234245872585908974622446809043850840729500155276240840657801415335467999543477215690511645745267217881249122668246502047511974845017004149621705054404253791917736118245365146170770300789529625839242333211870815582960809707920852435423161576132785368830709619060625291047888179397936112561095262893649934974955141985027581059982564055609022346055215253233193329487019372134093720068604791010981495482209762497962595044363203216248741710798880000564394984299747352856666045118140279619165115341778951887981551513863384685830120180386321470403005041852116549537427570922389684060934463929464277508540081553659531074151327074468347309403811756783231164303988116892239723146931435254126870524447558533431890192881956491669483045459584780742897413215740253469238432399454773198526661943629689527202204445549181871840320016101983584521958807774875857876792948413271618695396060789505886854753953606680808777664641907573412500031071685089449707546522735390490974602031438899186854887558621851824654515482997834369447815376424155365169674415622529812369185903727872985836306746435903558788280491529837450853301385282479886656164155441782029205327114042504454058536943103488109882879021053954785520980483583094797650287637002433091446642675553398951465564839765452061811974001832489339999022711429356706420874141976856346544147692511454392473872198827783438384416708185042005671912235089837351303589645629401335944889801941358748031190605442557513331211562978647633532917670787875752636159295918087835982340836283913899492503561624989470329152847930940379458376563505590576823839699672678391318636284726189900514048714472071392687622699811370781808495520913380121665445865178523111815516372302588537386665349519781970674686543771530427254812270156964306130626881130126069752855685726296384473380869762293208681802384221976271722382332728575089297205999561138917141129670714730143747051242060368749249970138875253082476017922636759668722916739142367449872960544334400618958217317627824715788839221149416483385001583469852765332836015487511953820253788433721218232899528399073709595285774390440698695408415049479588805491481339809694523096525351658159800605390918000028166579075970838956250810724878148884443613529580362399405978747378565296338410696355262416053320964393219299053387357954996147843173290181315493523724871110186088260123133609750367091015150356614995384117030214520367279988368373864660842481112387312440208529891544168270993051900888651991675025022597611417113144963768735114115781742939748071220205689628556576019048978841884716181255570762203896287279004783735054119193009811858838617267045777503256232351301482879326108234573211826736873059710710042228726584819552859059382255747108896775954680570980984158913877625782067856937450617862692745939962037189199694746815162440768390716425840326178052679865853597926507170552504252002667925900998376824041883085698895178395397274108493498177231321965965601789323149332264975638070684610314131335701914782009470215975651575317749031473185800737576600111747718639940497535123308185954584186010656952155306644987485583647528451310187254349538243017131783722720646955656561188084410233500433872817292625716229242567099512244947258367660638367784995581598323752212437336238719078288716468836062500802791927131782719448171071636811896380589217337627027689195064445092515480832107401075605454951489527960494548448956118196701759303481564304167797988506678837135337386430355568582220479609150458294174071021967107149267606459147452103116164959041991681056639436566553894229245423170645321664127846649070193186523824219391876404976523130006403190131273077125619557173244510298631510222066460398401969127345703824997983417606803527178456898679243200866921163384330746099012069280518592981557232223819580206462049259209579799748138810069262999784065396319778431157897816680554993194423285557833754798167508926141325800873542743990380989386299914713358546017426139425971319540197613114585609212534706947785910289415222699296134307573652047574846187935814569187929632788627981918166655969788227698742337627925415826014878755183593802501550923151167458430364758212789254767623455968548098482917399416295135202376580346398856107129611121536290802731454594695870763964285326453582039373269264179610513360715407922119743169901856016143895646938728730946415242008108324643847173092651174102274059274799755651909861429994876839616438999665983117243028893043657639086275896217269722128759656708938564538199429556282153113293531742689466713224499745300627665093102217390203862440313365555166806859534345535777658011675221997611375225293224774423072548867689335013577410052258734875461315098964026069963199937477275665095428548996290758253701482847583967333654586373080818872582944508890672077345295601273147064072035353222341207686868727369080084275392711622580153238983056399942722645665128187576039424817679705603053240399834799085222316819225625457303178530409802537029738710313457713382590827699989591512064807801539447575941034015087960985159278347921161467928345735628424554201129484256710363031511022126621559945935708158247590060526328360021785714495533573985078489452454721772994989475437051500278388122979389895330595340117409467780693160587095963612058077632178122410821269782759459261120274275907589143795600939379208033553496893147369068237302162369081096745450946329817449060247472186178524179462461578899786593483193620832566722421901042608891579411216712126353303630429822101576208495578599162575313467227570793882828199566771034126416044902639772703189115500551894770985430758491229958463755636843022700191115475641777547331894805986246443850026080886793620597482794164124326772684526141835217658835146587203829423508359842024341374162864835243052812786129533330285183720672263694841181438195209315390470137432388436088709304866475023876493009153591968156924760731435729062356078816856236288220891376936553674271676229757948255273482633774278124941166431093423837001989040710523792281451295786419976778549858745956509248020591730644432403820453188314354576501218072932799805118796517854762399549113429288231611946309066216421104076488470457780561770718344041043215003408635413780222620890072118662202253050310924406270407061016961307489634738303323241573589551929447942323492033719738905262133514200483248839522413687056569390535923125948737911241479966002951961273281939687974476290607584122755434064087276464737603676158857298325339524300829430673282243517678844834662075668131498759986883524735392895754839756179838571818240179174989498523535055535018962332449684224264235303464853873637652729827780967713006778923622304436712935792926614987083338621641439994688103091110002345690166446763379695980749774086028361495043930987925161149538622212927157574695187352395546271847665632757915285539532247219351711506720824419900696897317842357186917367965048990295886552167159368867182184253879659141272943816117911131584017084499762666690487573973972431139809580907163663770052955689259903455973447301957770518042863874819314314851155765545733898223147629410899812667325516615414252001317469937402271585757124694953422486414628991623429885735470194031080268207369088738020989670928507614497177449551931056376818384795590083281943632977023334879682554912756836242983297737484373701961826517215603457344067342884546002496044404803998038187157380272959633299958209819045452367048102441800686003899975075246391243087764955612087843548261103338458794446744639099520153282540524539223151246783435254135938250171884626990596846294533725965093923357459580501427661420147145617126624579707026663652459524119035060786126668412854002201506703351362066053611324960511498481717704758197757898864709573931585297061146642554889538339285754442382438309607396056744859684722855419418763952724055296422981435754017501259353186674518095115408494499275368638906076741717089253544233726036466378597026309034737401861067698986524034523665579632232859723180721484489000885268656338087268757791644774831148666588018532271490228790590907882756903125040386419894293857416907884176821080375919918455347397909494351501204099490283793464251054048745749014588232356813517765008717564408298161098944726175475144920618172575876405972637644447399568158550229023332566386358919233590893198124165162734434689189634701137988254594336489594876000063072927461818421372232463351868837957156087314465097712069479964685269251261722022549060923264268134904558782491182170815410300256027952870024742969002675300689180525509480090263436014695902322003647800256041243014393626254197228613130192308152506672619627873410802761724432766316785551617090157913333654645548800949693733972806193181674488871262928237680786610058361449686609770462761599818490373440695761326640474716673939295591342749597545658931947419098023787489888399799959259130919404068959999730817851832553801101999559497575040453215387850426168985284872206098064662851453298415531123227072185592247587802884708332300472541303588179713711085118227631704280463012670830155884221517134723817666655976891577709725545953914932670827438960245812482973856338826803753591144688067669728896971739058025092111280579820777890051402584565842970375665895811208721035316235181863876307518516107674754575022469986440466468413549252935914826632175505488789075654814024225799529393763079285449411740067455807752977963789221639431581320159700984695950736784877765155797252421367411832204557760050385549823853195731222722627475723439598898325919321825340276161627867162694199383619936334768278110063040454799176176029202402556456270856910421563731556913696135028553398520694134335765619753303821226550702575098815290527800155227169762062587401441215553185495477142526079813538703096927244366034833727987310332361504519004187947026537397431724651541279506619861810737727526989796351239684847228461248464641853999086577001861742552422340094656876391729855811182547103104381170805305042285488482833560876378590420639977757509692126078931217418931079263870647245952582622673460808054576929708916546460824641753887023346472432744244659828693787137340666508564579292574020945225499433737706009524129927904466071220928684871239007046781668202104236678419815173617977236466578330715370361794079078390615784970033948548016638894147338422168593784356436351119976744925486956059689402661811629212771030463398704553362392351985206134737183259539668225815958954786625774792777700403732686469138440800955229192372505973777544903460535460452223318839955199510334237554961796910661382859409097820347376205286093070676386916596591812100450170157214465323398762030432027149562503830537509848029313526125975671277549979105725198652717540329670273127349565428170754518139893457136603152546239980612880709319401265082924587092276411837165877879341367397435088905556037182454699803665582187748726807592976944672533839908827055977167681224222200452095777604442732126324656795910246785511548329365112150170773582247783495067368148798161103501966109357467346569424178197142883339560096430321551086252315303282346981128898252372804656386617305311878096666537168183602379576763456973109800716423526947339910745083292061335581115106376755902546239047639324165952429328956509482011915469556629227166746619168444692821427043229445597562514236725340634547298570297327242234961983012322072018393137037728198093986454368926020544543405544978489304201113719421278278695632236869336379967841128587416168059711847297135372370031307582804597788165983867292751624027301028549381045795535831903074359355547772809060491006996319131431369972195819935240410680689691261711820441664354604767931053338071516432944798940736727864136150753313820579200413296853370807476605898298099484719979601230577979303826065010758567730860471650967782265654799435430553165016628185416274775827714021703066719375254966760046005271752958235744259316130132593340072440444305320365096703777786365042178539312875277821651411349642062016657028078353425585447993435057872075698270455325352053133346940506833140443433737841927342588705551564145622725620292127947681737914931476217729869898253535848444970636763636025984053701211373522136538593416036849780246794307897960776510882149692576086800924003616822859048859342219521899199893018681641044231258512052541782577177782489680900528757262136876704028486226560704696778348620311498501846747661160561938967523912058173231647144113137479594000892502052998091843285527961801651966767928067878753331495328895837646855591347235768399022331188511155632199082755717790030451948507046546818782001154235219105849233775252051572009784015294544964196891343909433063733006546301424613638149573017099119369447903645672927470013644281424510292077507805862423264365179195786477084449447631450129102381784179269693351395696900054654497185164398187832054099399831666783049576476430740931025393084926126853103036972160304079346157232741647529530210695306143008031836569824376030585338178093312886344827881839151152195944183202336341212609134583620029013334514106564479213215738545086211959431060659666158485406408877443412771994964047384573231383377067267486159980968292426864490325975207468710471998323895334774740459174255312920051131110460089800223437078135801513148204822543689743226248780022641798013972549289738508277260664682595367580375370709323503297101866141309575236635383489835835055209642367652580356822690545332600817583143449220990531433652172823834428018219796953556291541399917503878261590291500446698974788272109024436123919926122334075680270239664592912205012825331396480400508915770909559350024136854723018574639720653072156310870906646054056964595458693511112009605845573637741888778331605246127586192955774004542863490167119107793090113050719585826323146072554805276908560868218491228799704813201189456935837436752056773453504644855381520639649054571035645364973032881539457823988026601771794274374667103591959397239224544656926084857821102023829446340384667888599693236572200521891703399384829955002752390046233258902238207652997229242685027754103176657571004829162285299639971990538105724027369156602340384489299486621114172870584954886900219487417174164025977498264115137102424210887373251994779714733586803814362513945862337670927327857268279372969932762461105868315389701339727141607295514236446528233884709481080861702404577774888341062236932742772064500070027299874678478836859305494843379231877599847347002636693282892913909436078152661897936914989352079891657316647515244049400400926133068651950799772834080708655619408623031187736382896506505676990653302576109710721431077895026544574678315583506113942220873097229609919167376096934907599314458764795215296316729610133232190664313327661529642145814376403240262487800602568874579979431885062014949758569081479314763232082297305382484787152622810459260095118406215155711701789069287493489772276556278029905886620607857475474499457186244625587578072796815007121415719033156413883256439815687289954559216561325163989391718646803379423147035830394343076070901042238055068066744191921410361962713149354351892304947175082356373543110521659214049090887511577485223968718937680032378485472641881025633563118790863607689380617834805288453578142250530312510123875666131258665216604146857096528510369743191357439021949682445604203583572197954977642439069261074820012201725994448635869630614194826179098196338802195808994252550762685553868153342012328839214078042696401143627544574348239911179190995694151998896474801123132742224092702251541875559247720725769929835576638310391528620427528618494051366911140070031298917831005977202655679233567543893581812758277978123587447882831321284328837341056068382941003083959364877776959005373621669348823552148958734673298134600957616800837396846574053603519217994846412084509022880581197998899002970832539863535144525721873734923123755130136805080145915966510007646767746392887014798549805730115186387860483501588459509718348534867859858533741077465952529985529628956905589599299940662086965037909458358539305589844225915553266082966883483389335758494536595027020506831413270703369898436792701815336899063625108672766645262719785480861321266004589244204586914736251546890949915176340339704299399697786213811685936083811314630824741945340786729429596402304481319763468399881530837656419006328721065241619082515777377201649447566884167139353453444093369466647009433062217634194082483035676828467284370561225988603063425371347862080527091692565861246896187126703428143630687810749813454714784521762846695404074895197740781239782045272801799569374960440692634011344242670158756417311763547965710216254653865952874488007338366487743405670958198203667547353698903771713573241086409377330089876140743462066393705700119928519976829118329053482010389073530014437913139597504782887388013176546663801297179715597299793491372480945511161397729783136771519237413905549658744886889384739825521908645777482709689559859444464589602976490580216726590234325848811628135146805834804769046882371990684259721507307250735269443398906939227482166679929053134051171872883373590671695350956937835670493128540323848339591034944844964555112923214055391768120468051955267453454866165959449073226530951762075394474156943874214814206747058094084462890861312380245504289841579739782606924596072072176218042163785555701830405263118713816054637558836950524655348460233840477200796550069616731584878144663959281197184073617417500029491156066356644477730067928390033276472906094460433273764065368473942383305933940286097062328887963898812125936904135679332010866129376636111397412838563445559895357426069808785581340917337045341208896850432924923616355680533381617644004522303398408042703112744856380766268254086336347624314804734909799313439387064990845679243491512094030149126280574958281040716994957746201340743496453924597396937593620867541652825309044633873612838739055330599799235834111989995149356257520977453766257005560783897196261524327277825719907867546197887528083155743911139833798687619043788675025479334131977551063336547869088858640189423409035328162978596588320131451104921719223616706281855119774937724981688764711665976344805940447467579713874302457731810932648409506059594581481288247344358753051726278539341627857667733368476074867445780376592429853778445530463211068745750779008122777120726144142917096244999822724854090051173821018236962862605576457051994853766004185841975964374744340130234924445712335091981738322943957570854028429825126225700256314775514441287347908949336405418698458738360949357875462156158563168561786876336586820186497627561407527856661331910231039462082069088817976020723673838063756080080225709889193953159609361409320328013513300404019228516310868198348696306856780044249002685932366494808492913633206903299032574752776417891466443710148977306258872731837167244331271438143799690364263796285283953699251607932292365824975351422710426860484012938658006065049141276326586546680087651419799576972158865006567331769403330737255104882545884612178606479853916942722665073571228807459145960400534951921682029616765190976815023059003984089196285635440493987908445242408513555948472009241536953589764645220108193066372560944832798992442109979541126755084253931996058726346968650994936815433244483368235722365572154586409733719005878391908785755285856729793516600570273774261190875432749139229733830193178070687134252248777160523876883320739127917395373500271020178545475904709397539303258038824258406453065744282588472208576319735581416409429579718436869857790054926089693377646232994858761470971495567539904797879012349064608746698618778726381333053466582027227871468701224397789940218513623186461191899120239069555531535779933335544428320501861476022167733817283839622374368539824948008037335459171475626773904341543765167306845752878585719245986279022862253745673824923473901098728860820538035687208004805783071546383899118494917256331566621883501611215004220566978813216586887871553813844655706105005732097955482219922320185968295718805668812815282879130737417804230218847425024679780485891835554941608850875371787856557682974497337613337569778527712744688910148718101696179401214331893004847056698736021763945996350222004155545924558983337538478840076234963534693170477680017456407097994437437672983538434703424425837068034755183439839505069998487790728739520552300925975214306935775160404245222148499787534045097524038635688564199321931366563392461648652127090114949189140123050137770306211597854745972115545488246609004263669437920723121266651637363231731577726170629408180117674615173072997877491720135672124221249717668300330821381260778086903467246627897745475198574074855117764696073124604170565362008614513049602531619064760818981216308313582395546292373424877374279289669711996847107470570865631447911435928400476124501405226750395107202770532968073200751975845451924096206285683792667957561564130249557234630845885847945281734640985574493633225360575465586287111464249049536454482715308408651944202309841886259612193691803796312683979611738844965494459605537685431343279168159401773169704434312855143126615838157054826995806823307556424705286275147979623205998705017062895984991332550199863695195022709814976007731886067789211428095127926158346061432412728547289807842381265653562371452951098747738032131087894911407919698197737826936913209189499980323015494958557851871553575840834887723196170162759016331048041821928749207249489843665967574320623007361343118890951314345164679870726278197835197343764390252511957933432254541878180326433728867824462175521074906589418780725073119604352140135538477402465396726679862864627512831932672911133517319240473259530780519092701852710239790795337187627515271420418886303401352969531452743783724508962142354668513934314219561735711707344645416368740709550542775330174078641049082550967485558988995692428196194545018643885646922037036765164716931780430557504907093133423278967959699197905985316247939962410520235484519836083071565928389530769627625904190605083183223934130517587247470646567533405806050340511331708385591234764532375291826997697004901415022116938341575328811167161464573734170838794720457565496492377717096011219861145605811172114703469678211249865103774373181264444419828669603217630031693344294498062110042124271288995700097017307746135793021994030939275857084821758303583346340243215251772834400872428683795909580772864796696485424520562307439100566276712374753941472003098873541155519641598403989151343752326162513269780827605920184843436857554292762030591339426569957836352432660952626583779784558690532317024214347814818812146810768459107815475827760148246714776770598850853300963907891737806819431932484457414068372311505785281079665519216279933864128118545382006811799332632411266120416490025534527513115344572978595593769931873490080835569420355197609041813606669350865059103056259991616950457275150714187122963256773006535914455794011285619093118000129191325336004572058898952993283008734231383108183562559595399605413892846752478535049780700159833669424249414446347048982931030873833202865594450581386126939730573337609210529271707359572294718613901871760967285514106554548709270755982538241008033836054344647916349037699920079650240404383716074878005852659297981522581642172521365903600765560969489795042016216790717906439925368072107487440314080106004806086174207802256526399339307759897977096019721672555780317827043331192873264376156406412645190188131745791286162194821951750405648661907024109348410245988248321698388577667418234993228569651575977273919788817088493196120465704882522119923229142912674155442316611359306207097334759759271941213675456252118899723855733200102630178041147387275196007847830535213801932195438909253191463904055967241521765676857406097464498061370105708765522395527373754091444651024497416190682501456672656058619990401930094548005570431415167228067076768530334179275103942038515367457003520118843506902235976292678378957261363148801940039574841273163831566924331023630857392921747065595793730309881083776185603031937455136717780835225889962740317113562284651206207745155338384650298675408660167870767657137456052961775659009174486214905277691830764939171283585812220716165114802723920388843074747452727133963796432037985274175884826237068997715706740925888752384696976622208864695357969387443411484757877536062511475402368512163526365354606061574785846316379324952828766897696968061423024487950942439559047711475660177519693572476549781390099257790407717999836420297542948824167098935574013999932570430102453219380532483174995842171613451195641242807930370257695796633235327714234503670234216611217543666368601660473724373582304605122759902122679934927321372749912348431626779499191005104390320054369245364645571956711095505640506627683092725395606502768065619373584941786486702473301834020123793082760265589998177220582132231462373436948350363856984428584887659533454255204031907806791774365898867351426619061281312961539112803098080372335683339140374853593061004237116583793656520226286005026147869861886633795920041057715937021692140384027680760276708874607214660809966872934966877011342872944485603274966755776382202222458515181051913182191715416598245449206089209025541241740708671004748429240628042940306915434536729171726635687631247969429234867310835985580271373244363760858466107220060943593183010888481996465254628802444806866332791820231743427304562775653420025601656631917408341810535347603897273049311194560111754995555464005688257093399229199866849685240047404327726342360043614260801201803118138962247254071854050172716151104779856797803609027802028657228085277643983525195533447657564935742269264698750581188323823036665516665299324251258212259848761373147200848626759441768981964880917608294476044305394508645284602939871615219942456570877218177333181970703339786276638893006709931086982432851145743756249177593258926438783157188958197049874442706379440052438925771772182283435500744780818553622933061021810859869266159083619841143477398913872119425300030303459325815299982384071926628716299685097834172236616837532253879006749574435391007808968178251926067988293253751152269762322838517822055426820550336583397595497689861888818253707024102240039793813539966186259306437634716916217460862435514930873471654159744594441417612274446967120940386786231649849989616820773010997710413649412939268830919697849326144951871798711771394283203764602340369275009653999047198927288054859578949131778573404195611037022368360960284309650175863685001124384087267632227272640613756105227169034388215276691435918624209391389823983346227194452552907772799570663941019567924632879741869224185062937887949869532540362338889314142897540749945524915408338219572207324256875946142198151036014753319500036328957969325142369750408221772218673569143082514476070235642714017457562405378331243849212966796037925907054963509652910146049801122511180379737094739648455781607671637026230577044875992540196706384255400262746263870289475548379643446446932390916594586368501780220225443194622574238077067840115441641273948137030472640488506122329684647218134542884508186849617294506577627938868808454211996698553923271198872559492728283631236970019330147238124122995595104527194954964843192947124319638736886078627823509483415567378327878337901155657331662193995953020580695649054180673089452043447658129875408873406204378325953125068040049062573091198151184683198278716553293998965389286437893445531626708681452431358153277665303040577842494685373812887912118894403028653109947881126827684914433691775552746430011474684324718688353952361045760182311720333511907741492728774916967861821471483870713912754880821748614070678462678360973744293521607930744327257177161224471415385258768729503844116872565683027244711994917905722146353034169380433756630118084020399288134539869778035308025788560498316751400634976066926824111408707686116789352604704499235704873234241213363380810522833683230979945875881545533287522720754386124207247542637653851514534333217005350989055495977709284336992854484986275033899128038645806096721227870074379718437568835176849172355191416564928256800375334510018437288887136234693572609748750097081389204058754349006001676250475397173367122789750934532240582625473639105956822512494883115858393684545752750401146842231277758963528089439866528050722135495417031342859390796351432551440904527649419225398612985604872173476500058624789979501149712534211936275395988530833412057336589665297226901366504511692878565588249829600700148258220683937961618344722000507535130423460270628409763056734219368831094596458280967532529695277005089586117056799522141873044481904340991588995926714593366093713586449020725072600542224647306772724289766129459259988343395350883822960101851595781602926776896189516536904308474843323694983970401204140169924439337056290504124073640751134229206535948454837660026365105435298599595371877911274679675652638908624162198782672272547021733463397952934328384894996277385893636632669209906947520362111060768821211418860963628354420099728545187845128080220289674087293179136223439330424665140302559551311579399867734707054246295531488402491087146089058836952958915533019533731284702838922372211964665531873226535200545500577710430078284438243581522410027406880395017339316024522536571465042681272254379361081425565919644662568420093485740160345319111605529454715754220024906009759182508806291767995501942972844752123942740840009707137433154849245779146071268703823703984942290918152912401622231488051275699687027117873940572685258321605502934900136313005879707401805054433807922480872820099957460321957711445041272720394808805677643068585040611224272109105478707552470320433616334942706281518392218510508855664515203036625506009444130331680204130502616101754165218457106833419111983633535588271928595309080825172623540607778623903425630480511634289238507168552277512180376417560215402819324361692377940425530548259766721747482501059021672919125744007643835386746383002267229800702245721984411607087708135739161090331393658625975394248059869686376586786583524165372719945689600240824657329538699627766925348001306509816690492929270703905411872538362442079861008275776955601116250955205893793895115136405229516719747706688080893266079888738798536440044088398142952211836583107992980973745816250618987883920206375026595717990526775775973355182467310386133013343481365497548999847894669382023549011642785304039632790432611402782677869197414138478449889141079199999870283524943936167248858410887078839597943797439734977281294552232247421717116938910623836131365614179086263142359317100701703308607532392873685113026838367513912596752841608087252569676465782926390493598238455130185868209717847827442317943240269217015058204793126082657469318468249649474399323333015192841040378158108052651584081274759376205952055156967884986171819568291219917328844589420032227400204065244390768910935342559014418844504175143314380207282873731937442689220707210613420467842705433734989606999220194735126136511603286588149435270746105855543240037255264622025950970062869229774464471597972657920061540172931828439838701686722371836972992519391347310539675716873375138011086266683225798143711543154066425871320333994852896871924160824822832764769079502611357649317938486218567464143896444151515726114431421466802778498973248756610506502845433814458226066751545656063693793887138278159522923969142759003550328852485667923864030286078785633954116228980427887773201918369375795124253007669099472350242805835015436554787643213184117644331590311023220614719624029240337385309943678062992852607832603871702410026201285862198217502704986788575542096115896332366682740279228417850613059787147374471568278148972084102810950762586258297879658668555174859183994905369316023478360065513015966204314647198279251367410861905849207592047354137570971100716312335868506975169385432013293674469576228942240758167304935679078261959599820346524578324070841638391521153237315721824647753349357014274645276890315327336156088398598323690962263633900096810636858351967287860104396695978574270725371726478076661086053333866825713073983028768455900642755319984360492940194034336561097245450723341050067582108275633447668977463005399130371494052856753609651103497606533115541960749761314530040381244018838858658508737379903587617715532254506224490878121865098969963494531719097188372170119435543727583176479263192204355365685271683210636310603522054227718500889819121780563884133731537357886304286122556998285904446526996591110129336250741373266591577164315954870881915619709891739226180292745119254719781366235760921644909596516357181858642656945053011321263325410948265249824936660363112023529254182739639970658374333094728691554374279647980603977483717467623861355242387157263782800866597588171654401490652522992329775265996991545196342165591466649771935705135191059348355032965916581428320097913701220759106291556785933184076007086142555402459958072356289248447675819832077935444349100247914906217570879112215824472191102473594987466891742950502207094224179827112592388470415559674179867031987966871727111964714584211293127872762068462293690184824361684321832050891535579300948198504730682745766348728875439714898470431371162993308441332989465815199120746592025848823261459233753629221080476447973792232739845894465206195623613166375486591369219296062611458393031507249464549683936050744979862127603526062874927881991098484514657654459188279857569126404901318165356993959359656110231854394391473409790377980262129241680169004470138140814112118698141853431645749339287598158567969502380476588684705518761767262065441941918435681931425550182529194169980653019670365760078150136748492859269528475293689707174665568464454336899725388943231117716200900793062539555579011650352207841723774597155414471009305997954181027400639110195040177613767285624243141834682733891214951003754218102879538583310882068527885952508095967471917934149897140909123894125951444083222372206616875776910421449365415108198154680949094738633819966619567303904599644297646280259984284536903120689000540493178631186954728089069531214465778071608126120310371424224355537607861085034232742140448949116179780191488811768319536141125894710751819198468718552428990362995286338295726252598070123427302437100623786977775434744035579257148227626205273711638194340082867496283194838740671396225307194944402050432073452607269712364071583321167815578369795931487231074798618632343810458168611317451467198867570856854384811213312780688766849926752261561256014685582444613067526159737008940650272601301412252918286181339233077428682372869206905144636748987621270802820873419543628636428576583254119970552535999518323553792240763474874674388267387892093625977106031615753499989005209440321487331428404525029262240546976425931853690471229282384064992598317761249938346436139730018531509663731651112429381047022065849625104493102531786048867493582098125405121680167643174341599906956919183748648650502683808602385685057730586970448838945062468889830089300563240059738172650398099569618069229787877757304335564109112773189071227663411028737281941266174884380648047840046184188039701995831037397244302433854157058446638411596944962789413564041970396495536615722134214793942445813125335901575041578600506943280288350199393148604468980170000121191771424847092227985819292832759717736089544189649548320670157221809388522597255254087547054066654943613798061986585956897398577198157762151817863890090213526894239868613517640551125508450424502962601551825050765450294560715523174472964520573299630901998689251721499211238435662975266739505508104675889444489651003245875189122306943101721847783875286283247798958632460620602638565544588667140017671100476587283663428975852491229469848974098731631599605712390834959735917292030697948369964773769320110870550810995069602628541363930146682009710022452701681950146145509605144960508049022474069094190071719124362859503027930634591941331522859713603506233908283602505727797829940723778943241255700739987759411983524037875582652650210790320327191252119874383697848804149464890592886016517301438036935843932326336842232044858256035458260958724872135464538811058750229916019752649070445969889692779018873344887516758799725714456003949055817627687637937655841039691758835942210364654008094784136840872877440098220939494615810585925248747946272601280597312047846159906388646857176746289423081006159655879472420057106371139320738178237181152799532327932429751458379568935192485558051080417832476691529146249123335700022678424766053089129628329772303557080119476221306166313496867410925033977535319379433578720394634514574595557051311286534635109543732293686091085667943025275434630525072889033133335791228900771669252020056983640116670474340793702419752966377256871741460723688769210205325994775287136230402587621362735510631246249358887676935541727891130669969795298845375598050974371709931078740260007552201566882434800478769086583553300422348675821496999195097645421594742599584640135584847994196903989055501414495705512066311754868439084614038130184807927317891385474110816911520012953017263567795660396837036815281942290742772019233254142139443997138360879400825123450429210967860749944786548967894935543790804944796511385161486701652684226778935881375516740865024042995308227160058925741963540746449511039768744579174626299927891501044801834023943641199406463274861221533284922766089587560061133882707483558399645441914875639311064772724881402279123498045123208952486005410624657827129939839836037810027918335170696391223881010276971922454456439905388516321919322767312194750822034695673974490865758035902816128397866770766642912837011834654804922386255308385408753661400330262070107876896337913681777094395148443192211374422668190546364111323788190918969746745943450558749338493399173424674726376789473571153233374100840858810101781034709292608236945067715449321730166173068965558532150573987539467485300696451576472223611027525265076526096041468039419573752924181402087730337652326953405478575229596131453808701309965388871105915691517364112136655708975763340025824687224679049545256764181260143698003291609417450190569394090153078310307667787132143901252697265525639556771826870777443288127014491484552720930762550992180770398633873885225145872265928495791600308707440617980919244718761698175769896819040711129374063418033320313490446923916914493715964249436105303162989829646874405248981920272656792199616527093310018807366529933484789368522628774905952439001761297668879822048037228059526301819725493396426028428201046599175890500564825513761110115086156626084274158571226104565876113985268003352689423421516713536424693211246565542160737153805377131555396849904078878825794633484978866809995174326347474531961335142867540367335398275969047828856218251779877334327867260045667324744573519368976072738965697291706905095838555222063842335256654173868755653926447590744087875464675636333013505100252032079530576912323004235397365973753957578659263114981193905459368058650677114096181171119682107002310688375666815453226243991477565325581568014129982334690599785100860078832854037489061167640415346353479765185898785177086874195442351687308594435110664262113332281057360841019306985478771119429431758527523795485393682271102966415020298935412442414923567159582237631008238432975305961789287379647898206266994074951732837001292555936007239868766791260254041267895408803901307000935662089816151399113754543198029753432161074384364465246085830708793746332750739748049224009073585310126656494143151572721165695927603489260378586101652060508271661776342733017501146000817384169225338212650711412130771481153872552088251345775739614238368902502757402932497737880895198709226296451548235020987151665075434802641225257268467128753475608798845303563699590737407470901372879355105036972978972565419905846226652742372336997797564234541983544277380902934486750805515657155486355612462169051728232309573480264423699847309604312896238351188343395265636543628148315070489952524124961129107959000279359203229177276378824391105944881303355717452156872665995592961129042551174448661794062653571789993768794743327053636524205111791046714316323920686639369598965979290086408276162908333582308595816297152182222133393015948002618807209057326292143512921934500850105367520805914855201204860065642535299672813004136392647721977146593559518554591135938734904731232260967509286786592011210985084004938087974218967036748978929971083747877742382529499880914520988561188722297874296539619751180430740114649029783794650662819342110810295216540994748807765319314883807170563796781120093962791945256605541105207998158349413382019813477806106400519841499863818883867145970822094253000551984405226693425448986159368138676105400562825114722607269165237844767225144023950424494485318020732353546127484875099102015616831530468259164845178775940882894774321713612070887561348466172919028587934138459012541546697412056552608985202450823577506969421915218097422306545859729085387311294825555513312286813153329009964221912506892020277746208992197307006213931104644219995803403891294113950544303130706107221384805993411983997381398775028105049994503983653696064387746741826788819854907273962734943839906887653008837857286602279613186546316435289437988527672762953007253292162084820417194159680817738335705503982418664903859091341793522220485950367413709968687105679192237178815617175972703240536310100860881380270185390583378983767397327758274787668627948867365088533473437015639791990909027180058044738259236600740858855502311973277764568393428590706808352150308099332080536586842237336483556118602694238659674561812153447016869338900448248753143850427572843854987013627741565376324136150357590448289838138472622825607778616613856769183443614559464251278026978611555625669070196699039813951305169916816368268254753959589758559363779639400898809327312569098631333908396666248050290928170543661101640673944569689589813622359511930393082924008369535019016012262827926885385010387586673300050189543216972085374795990719592675781432235798222872874332081603572541899025520439238767293478602434175886246991679062057704088882095113721821328549110647498154469838793809051302275366233799774924616313210405574230413114374197029608503368531274778631693164365578826560815845264504369498780307549098464986975292774033302215026821338886715254696450308135569943875995733333627308826563661211732282435386940436523738074695213179239092858161081397913291330924839071059130556047412420287280733494609292417238923628033932057390246531793388679655365695189229932778962040097912342580364312978612992834747199356827789425421581112788559875896612272467592024433081969523590580748546866259762298785488635562801255792974933413653361576415523016387106085788191125647888735308174370687694836863078044610860190144260042987517242565470041773930179523154380185659368173932362039307895703341181459878756282162998600787061122334127589459739014469047780048818515121489804973076204739306400467442936038196537777768276704437181932294547027579795054755457434639363008068052302113833126922423396368935606806935918344186855835462164056924498311428139717293514167437332051537794253380061174247076895704592318835884259240518092163569782559728850199546300406221708770092459111904370218856189266194790092118747848902672992455492485823392388086353779690454423332099309811273524644120950787957930386370242926174831361309205134614619186478774872988662774425302196134675766144440688439853326241362482470410908306983308712726191342825930868802358144846888290849250676978317547463262859018062497713599578172933725485613501692740811089155161238636221501256395703932124962091703550816251759199943835687302428123156618362389242057434176075436583819568888424640206257759040004347800910120638766880344199199341522175580264889152317530231744335282120341705574129509466333651470622876227181653074195055917525339869899111967184944588659307188026440039525555506610141124481723346994876803363346026029255011400345547215541914133880377248511276634155195356498573187653621618330099342997376578938120669027695567793104889101248422550816939114975835735591763588125922106271853854847692529470165071961047310317315571346362893964706646945449647588037121352734417293847740972956790599848827273904780074763121305108831259356728597439553940018655372758460265672095605979598327586944860570565408350478252040709584466151813401698815490968475448800133696448331234924216203666906668857492052503470854879845335963031845109854216097222290599010390712667966760725257065109948164031132236766763796717640667754673255666030795339889131820779126863666137734431403488316779977968877091919658824596015762642776878877416364857494008347576565438629068355914467024496003945985785802106270232841704578050942917802623986457443052281367733503291777194503027010889774735056560218074114092117048499816723587114971959733874266332196492211919874192969884038212349016066136269630660183064652283298475718085413800600854878298944189111167017998542933982323594860122375868078588378634805419376810647621433389885288785318020333709494901984903680046710097184700512340247872700041161489930152077340727629401719401711758236665136221862667022040310112339724880393088600052889006057618825853665843679426987547584562774173918705448976914055228578319124740332894437509610220122985427044406158107069703829059285717645999862848255964075725482270087543755936315853382603071637399994558974763511055139344815079163161745831039566958903858866856019789694378521929389840468468892983792001813734934201256157913606856518374407934346579833853970776884755357291178079331920378751317323283514950082677239033644929992937889715380046984228804360608636347000907141160865359441762343593853757906244863681152529322708063864269009869207001140451467341113702015569714123830647674106961670063153284004746611954968907477577937980556917950697801973951883529811158119947150212259334330981947862956904667789520648493838698027390317636995208104093963547285693800686267974725985711379599418021244529288849037930565985996079675004742847487070981089843696870613996828349954858378406023920425134681742448128131332122514007763325727396976370848243231026447960722644148599233970921851919484145058065395126080309746370483735828876684513744862116814294157249568141844285700437464977345295647171118436476504242099080835854169123239638805485497521181686802382236593612677668945552558344955158165629869352056559828575294465648251979648984849484698801680089183399233043324093369573355896940939363743794415950106737277018430909319901022305375044773982285058166381013652558957975998413084193013276620675596272623832362212019591359953174175846047302104025059701785400260413782515489015199089903706621140683734491828773896329942460814399857861398274554951046248471030783557830498822651286534975732819844685363007690845785655229826521159237636526707065328153947177455156195359392406124923585865950423762712201926988971174872278059339056800582917966270495383702101054196720653216385622858097048912841310407829995379201217141498608168614371388843286663534805037799660610007375092726129084143121305858986912724435159352145328345844512331663542068259737656082534828624442005856453433034033477971849994254922462823561671932830532459687693471312748038033356661008836537499997616909344523996274208390108347999308945524020899163025160321677008002156050750133560252017484760602971565420316746212659748529830305594145349156954682263890234030827027331975370582667557293325153391262392540923295332105271428087043577164077469185496721016875011325245140067447409069825821570303511080496829119357458533459482899345526688215141307638708809762159921073027921824157048644758957149064469099494308385260140245778193323000052286922276074905289240598885132373732378859880609452945534541525589886700937312974445754339767384265082782028540390474526566034920344419720103562013834801101019274530898957796840514087432189819449917141610497908668000868338397061654666289006572400279633657382669341236661030449040440513833779698771962597762761859232668966711627450969327572827347227627870689565191565338864751104073158276542689160212400396015473668223945941519896233513056324938788902644336872258808249067787292138402623912721466127488936069910335959804868606526257191505042337453178348688501228391930059646764034204536921468488496300951803998814552814426253408076934626521320390231557386905775494341188072963752522381403279099888705114091070376817384827887857243674505949462446910617647539313477302038436074781930872385717950061400080599195827129614513155733726307353132617383059616629952652543840269858800252523263570438304805743213380533985086166604411923264295998284442475079788065268288804864883821968360207864227577152891129139849089455981341562781013031447394138016921837350031253206456759112520839028676237147404594551090720816549023809160782607941247739871824835694611342815848815664825638842476309295538408546421439015253474845219158477721452431727828421549417355962253307598580019398632028105788930456963331909913730253556961157212665466215824854401051123593081306221389855952248768055125474592760733175443371242261507644004840221959479483901195910070681985151189862404802956120368349127871901354886936635088350264085922003490814891630652768775452567930584540047934305761866707943119657033616562366024195434095354281354499090834212987445826148983660173974063765720320400709563626975896457854760182568023303660588554496544325839337959941896910248297516675182425658525061237026864620036510967605644983256391031223226374426165637527373080644319177109619357609612925272347027351452704841446873266896053125758702546558526126228353973903478164102667488231324462377786548089512708608346038431127283583121658708954223828758561440987982943587259380818657385434023422972792922283011752171518874309665101735622966442771172571442589581733844083197417654400079290931234405820027759011211891927924781479129332230898229184616258060771548328737731618984671111190952562951554542221124394197275475104610006267100256413088655225084725854109106601221921708644512781643942406386370689127069144545322221039989755873916508036287356716551125598957943798228172158802608743736628045233187473767972729088582364190764186626877346272026739575943437395426506537600848378100934301676557492898310831853708166140703928056738660755041058407671023218214520745992650947928358697275954576824217182572773617390130273987216323689017161368969208443696981616358353546180776803918794517569521494183060326116624518466248622826946780928651568528633815681237451381378418135218170409639478588000193889813067593943905511995428071288825414753360789228559128931839833898023311141640869020943343500109944679437667931590252380729088857571265945002394533634066297526377374583975306452000326284269689665155205427791626348764210420696197811691701220773544361622011067382028468200150314261410887474710517946013621453477718792416126421719587707924350835627461736580781686434393000714887308628416149680697002862239105468111735826030623952388582887447353012490183044934604692020998030234739122493798736756919483255622628195221464735590138135003614458555721701358926720240409516240849335844853475594447099807962471563603053156679299894426493655839286755987981503986881326697896786468651667588706176498185165505396196264759306590092621298876575586436053978871820961886691820016178769542858832968793343094439979739318888730212737745054614296238838337901922220190479251843305051645815806343569351621733622768368380775807135568556365102116696015036721743023589310547281599807543609541550497408863125855790650577119919107237145675218453333895991926665030461456378447210141827352210319063146364491445723324423903924602841124463606927837726502554585591890897697126559916167307479953964147185743491848178818349267874256833073126524753620996142882355577672261475422544831321969182827962670668712604038822015459183832917883816985559214785110844347529536850983879856051105189738430609685474676115141016921996791238278923790055753833546466568723581746352958863994873701685371816987233081978137577230952423192404036664046159998995998389202239642126880714348840968624291251032811355702251787535745127065757972796428088332413822775972781257065246799346438427705109187172889291968111271957274002792274656553617507207992152092676656589084459245186105443013529561425216418715827284373119760502466772690644761734902258576024670924865892467555895962181505191300205002862856411549851072976161512333874117168269235671211101094289309221419112740741844580010631392185069386299950119910339448726168135525140349154695352230399131121308769747724329751961432431505792741501090544183858171043152608452640363960950640091680972024570710409451413006457985608551740963802144513228399572881539485879966235621575095544216705574491238740402740046401417606572037164772193813133467922051446940910850770930950002735633516169675883370561734989784924524530496876911762676685792604821757535716861521709452769082865892123737685429532651510129065477084916344226626946996282757584999684643005080184997612753230418866134499984939749173177776257090639349786311296960086873121058504438983910336210405853490509859387740190723231066140695812178780690449525508906626041952305847574804071051201682431928328893224916888138564821093435344756281848748030632967902626253828717914966326388365407326353572006223730165270378088314791845597886989442337106996365938088244985424400934511465559431216737822634695259780186294663603391620255704326769192749067155498647869217509956288084482940126636988365338346057444708796972702061308126692267309173128814854051523518492547826010706043241222801524671929414847426200073403118454962832004160151217000679706141717118211478194366224678712643759521044938269070329098196128870156396611886023185072791375266724917557076568074914608368806809469192159495010482627676559992044469180670295826000729654905309787015326885041857160419637374564496767207972052685214790490286847347137894864482384924764640606149831408259679735090456835380220366667756811773686099685395852282596931212366774013486439863775599260502252142341428920623891793996972007910506370912028794695675072189184138443029172679740505979452345748335839666054436364587630956445861922384572184586757972251067910162618713186876942054715830606531414064222264797419159237954796394854793336229594606168991566537758750462684104722734973144713135170279365577037929345487439862658711031850786822843793837754602628451147689411911968070294087126024927812289894986173183572494814594256029167982386909225231823871826076476970480351341417835198484769801709371112773973808061289190162949270641513378751397589636306981356528140028672732372313002051676548457795755942181217080971045446687042732359146585337283544717251373178612678724502083687059604144403984388636024271134163653931608249913938993964855790085971606409252148272468902233617403839731924939504060615110324206862975421426193180966193586409183593023693258803355014130426612173467988644685349035254635350706245057370709091594512677394239062438084840424186469325670410009736647556212771238471399454015904038275222086247140047766153365889543095896564780003524338611549787409023424514593081589402409461763165404617533287255901081472367107450984637337512683237058290130057631297316549818995406042931195982378223198213447065392317713180008534943633768925498340968142473161390654315295386280207113182260915128852860767320981703799660236250682607975359168354238980151187270228078075203467406828113781139428814547438399151902156159522391556049724250312068004553538373619849843916113943776557009434453129330234405324615350775169479945742707175849916318296709452795356156642160516282576280934222833918956124873922376756298736624417700808336557116788073060494809525200162742829831689734064904652468358351314605205348937640538879920531851500251246083409266611511628782564968135221819044505168515364152608456712715572586290643537402451439917929589473249398980756106189834257457518146086266625562819769249515972952985761548449485307113444714130006235576257257451762961982756721088092627328645941576164636964342210681276393299848084681015632681154399234548925848336062737565074754800063030752411895529016558861810501765195973664803028656280833044716350144857700076972495969742998653305784945034660036243803076918167212011673818641933659381457283064073126137889861048302435860532007768963258242208852515143900633148333802420396986075421504388788209713448541213688304172990340164377888548434892403939379671187641891821262775840764609506905711454645176669526255601562316293812711902110257375645335162532267358789151540182281036085015692122843373129830852197033172071474827010726039852435579361811412497732191281718856482533790434775414109180369179640835559338985941604981060822734233893343612442427828284442332987128665061961532628004392737007147246149881314728274210656848346194854788831411586579495331394080076379558148629215765294562146521184938458613761367524825198951098680204947941029979847940833925903466368665750059560119353176924535736700115435908869070992667077013771316897591202293699803731460660736363793828438872003606508341788895831816465206181970889362658129327453407531283379699522489153747010482112944103342937098239751040381710775145670213093821352920056374982023040935443957976685929936553286464759064861330984887853693022810476312394549925924083343238457769757248964035134012147830665388670799093556452727386979711382663579585954138040813234678641130733749975146519098170174747896926904288770523938314601303210906389533039690898746147412327437398128270700041180183138291491090348930060968991205054513969208283559467837932385950548347125437002395269925793095653105895593357236571141541224399806410587460051219481709072366291775988881361958153231433382581175845585472934516557358790842450937527395447535071714385802645453136348330769753119608648983178298982064238884950350547827359088938661619651899037825795855330260185070751520532353134963674389822030590777229867348369125282624712938507930852927841217677451398226214327879410421237174594677173293238017247407710895926926555496046621884194946701106918893096067424381230733100724759726803445138680176185566900031195313656389183557877988460896319152652464143641565030193211981292132192368087009652059203120322104785586025557972579061747082598927270815180890297707455629763275226396799491522475023606303831018372852004409690123122250059753169179281948550318363460130889501735619338453763045881028070151015642988147963024529860240907886603082149663358478065648056984972169629709476538878443490809745775824687909792273998371621730580128994409414704842598944072237568060480605908734672024728654352095293073307629231231496106048747221309735874745594136980472178894335005336328807336479314543623387643138422362409645126527088973304886437956624215235512303894173078892389324414351352627013350407066448056787617961122722020081614564855540964350447406503405850121353771808236444272113246088888460882740006043604784765610373839229264827855926170741647268659697813751331233583761536569063773000250539428378066927177619721968726914028973150437197997759434907843534028556739365191873367143457390923671148099729434177387610077507197739883026570050142101910614604988987848593945661841120087225079694103281942251403762913407087077572300064765919836684774776010268944303755467733043531384053717543654232349077831721154379973238129415411348159230440805455511916612148375584141564745203331027729995636628537505399462947156326633290809890326111511842297031771374442058201629744475019088643186195685680942094990589445750407621280970546022502833036722931980606918370942119824647455966944174943756490005283172683683231486742559716347480699309694316798434938161710194121267800433901644196485896125027942178101953256016683170256486536880336043856785484522764110491436728293904703400101904829349342005854961207332501265557111404313204886423469555544954795526646565047815939547302575201828683143848342289077847941216077909917844056121427833682629881514894746876739831602087162319733975978322602148930977749346060104612125569048651293464021928605479073548023503573670903299634548059033615129406241046536956005553384654966279968603817777376290137910024304571043969447099764719396150298627011129882413843116165252645093886891730180323365935136512942805662407190530247765648938203347701400748246705018186570754329061855910936212053907265445538283916016114007776229997725001263353222162881084690257912126256960329446425951590203463683452815721647910399960744650977026561290741536609764122117557795636527511923900631349868449867016789927040822782697723018533953885441744973100405523337476638558761376400419655972216245365926316279417677263762232094653815871578789391695573010203068559072636192581825001783755519154067786431628335668190276914798469639322226341318571212926195558750442039482035265227380348386239190368455552759188451722195902470984476927834285411484306786073012897426404164338782980111334716034259394795590595001528352790889553800793930905105928775807542074858261797912099895975593836325477809083479703533123504283890314266332182059120541768954193954246816256883827345315844557509708931032822731717409908255911796610625581994093501125591217797165695518694130919391972279283325280500299695876119831407445951463998277343184654564209086018190187994499401198572651423916184212334682835258423946481952696326693919672980185866777300525621165609554982545928475738098931449985975167268718602347948547898087409989120204624552549050137860186535515800892420409676001272902508381823814774005320152385597717719330598015231900203936309492979825744826564109896455859494124722969249916525750304355087224385182142466587500785028815376986250107329926267025272114480989915738647366005942493784351488998115802225486511873467362929621565245529776239066444919199136449283466263475022657797526185698623822323926716220647374162278190759197204606524364394433452337105734951231973966188109078334240664885334471120247074478315536413104786908922257145878632659938419926422199259587512305883830829358544258041037796340404500072208355357625056769876743299209265426921486421091802351635282930839010105398668918879596768095616091948263055787611008935702390164941466455611395987411208509999314019053687837735408926154267201531208353160897412972354307076045406042147350378761568720937068679706162506213366303574097507935155492631655933295994208274812024673366910459083737140793091009962043004177506632640164183748479176542002572458748361810497277501358062473392421495377404813554205953181383392123203144524236490869447474683534466470067716842034378639073560584341274937042314648018104622631481302626160157577405326278936851695795041843363116178154384526192420334861082468109796461273990027080722878374462511590586939554026001741051326534162532101969519088624832834176301246132023266381634898928940150339004859870658969910644017410870348130403719020800064935465680523801047605716448099925189966564243526022730134280801848576569780125254749119133926307235641826208851928712799976401263714699903311660111021409468441150860646108291629541919129084662775522735346234453395808654679586736779003154329097407356367302307937510965398923624001724154076899743877256151737880567322867601260750446088179314277791191175530839382793763456570642467443134082117309284860884696911409882601762350475468686325038615540285701167264876533639952325597360274620938982208200068203844877255040721764756635923108578563038757928665861797275488864515945537840465274435711473763453801452787539244123017108388381917212508125754414325648482017204159904156876641753368256057174184444699819061653656332032262333511165161251958298326319328096805179263612593269232799950398474495946801945265658682014393027492150567900319953336267435334138370542602178141436775900047927472030850883887437071572900874844903302389612307482610630470240594761901921240297483308966103343571654105769473999699738046936392986563061403812711159668893267794409765345338629603968818027760868466726226903359388771437196816567422643996673060995663609077464498948453571493639753328065489783360619500611669648580111884088964580772543621694910072881655883971329898504945756950382302867455950284151600009980944829370874591470012458137202535614483335247246334684584240810853464243219396324402746844916753817446954197514662687407000797783614754513665079631150233405590395060876421136831866964171540232766374305345517802132314301087496843095931868297335460015798674181984901540492554756938278986774112813187813214269191799863783895708696024558771481971078349890735178840764975541022028965584763788422658211802692724414870261623258249112448249602808093903744471967133884645897658177325472433684061750782489321319171118786600435165826548326241367746001026020362149351002028852050662016668984524103393207963281279562249155878443092546510603472533829235192214397796358348859680667736034104164302579812979006181800644659021626311754373748261106709426451864153318454851575559247306009133290605637974762655134536441162386904361554709530018144763741174728466105949426123771301858678219198901833970306869568471776570721541443393593116321237418783204574093636703398940229953361333093048461927070009174160845420336127764017706280466874529708502004726645237600770149464149587653252109746038051173172031541549420224811666854383060242982513997910316552317732067773955995112669378530186135018728203832059238243139945434008228165159004031432457799296747284402951387158796079175366380953510083167199438321504676824044744403159641218746590787784449470577536366380184253068183300478567013430001023279711139121656217785450373916876129834573486849014700886324136825652509512197100673886210132766013743633496174996476387967322971700844969546822189313290711986302767745631203513543334143673130309617413316234623023352519987326258121451171627078270681468315289158125698301644863144252527321007250231603932900005043257928222283990928569336241706237187007479857359341727144021757315966403004774374804634148479692799062341234367490790402772802662606516970699306525243020834103009293579084239347154217943384226387717031049516993914251436378405099337501148440704262225873575022970448876956439297207200107667176392276029953447902818892184187602596213650428631999087742485499335635099065960791859276721072911692537140745590880311274115630302331639965399687220677724841691976971417601386741735230238446970094750713206481603906780215397345496380314763274360793245758554241735647958803464869167061997391485345823159233738718964558017900268877145708085794422202937183300983552229079933677445560939913336569791551348672683724453265485099618221074186923041053358409660264388976707477745881369291617717638923841608121584596225462449378985160370423747259397580062446631565581142381965352521071248221972872132322839043301703984866936858661901399310886214181199605342013383807728498677108096260220995801384071350111882041962833775144029578228708740716392288657300287771781013308098909308021385848045059838252334514707390520082927658616649513389432823105451955377510076466864328954315453294418369796993097805778140673519383134176947301382222643795877225518044630534358399582974080983027551902407906058097625334483353874891215429188330397807131473326424353054394225982579897723267905772129587922088871484096416360589574562631365980168998745970488252167412171931990175304301131567903977308819134812142006205079130526133434743746937216207313259795701179555171517885062084042016587279379849859797958293471971244161069113846404151353788551277018873085081111128926644137475055439232590395782183532014006033826990734012674226667694106196149839299912011662675810530512088841643591653017505169537379549964772000180267061706140400551199219979838700591694330536953950896827903335915015347509347875027539525659473345415549860843481489981411004006061330813645721775038915054140394089336198398105544751267752134445003945815196105261294208767076824714068075534955871849713744346727135541909823022190086160399218423252893640473314770722795409810923228358012940833161388010404220706656225730757625846624647802416470210586645884441967161423657111848007372325920960882738867692904462024785213038953244510744018252952350076864493630434496724934255955414367296444636181590334574989075674670047457016619725411380151553092100011166609481898942755156974735861884810716142695668318592085811947587204363624948012806487517132004767986370762259013937112521070747344817368645946075936339116470063301973839586563257103467137579018069872313395151391197827698690394616152808251306887497944858491880515200854787496214061442118405252864688268202387698023226072907498741347075200085165413905238549773866496357051750933434891697739440450858988888379584464891576857364188830233258344636285527297243410046126251508823449043443043253013186361024145659682289707351796384431553322505344848689014926278020796627909675932472391631039972769481365203147220381376003571906644037584533338455100928282097642280390546528903228491027741856051976364302336698200535265267421646090482302923143254290426645426076377779460015278774812385361414436584786599520196038017047118196654113280471486873449748955696823775862797677664496174136075907232767622794231939309854743006163649149053118248589074241951077739812555308188363479488236441256414980461444631057730399377833546297981209185670185375011022014150994652833127282770064425708403995442837172109073570849883567312928849761690440075141252140734700861779371005491309365110681713046075662637205552732541886637801492419636257580434245641923600400410254535574856386653118305970664761614282363811139826919305933085126820079624453694114187817331625819193675448885882913451727779170665951328026534530050200413400798160087083317446799435013092539622795335200801509148416948842307302899243335159858671506160769917870480569813260725727671074938432079745700962791011723801807820630474050420371140795962763652304361008751557453344859750259739443046343904539725269161628603286341950580568201187081304342206703727214620514565406082962868219900778618601598306271830836854750053022265788075509500782840533222523989364367259668912613542400717710755761068611044463097467491806623431837511778723418364824146118572850266360458070900998143019543178111021712716564537755318815483698772600513498477879618285665832844266565095735771859436901715624219997971413881671035874941441025996233075585733123462007753046792673418508575881070949187709706173910668860300739503419450131043605516802471622503528926716629927168761373324805604438112224095873950230963636113360460112391035194984084564597176661703663634696872177049130748829851429259660302481270269146850489889875129989325222706009405120654516951298269223636671693479014991900703390029079249890574460343803714282124939284362845800965545613324454313944341433780902364740612799532561642174587639301708090765316261133136946719342252855195064284597973167307813586178763508426386205834482016122930267899243065035877784784302342914155337316987041097690068870232240526025267513465041360286376097398791242024500616207329649866758026946208945008130844389435468839883864801989854725046072477309747995216814711886500713491190276795445910387814106334604474965689303262890756144313214088207394505091402860943482990312855767047859667156560071081430965109588218938003759362566431045626440209007363554220123989963390427940438006576788644411619275162675184529361955828084021186974624407651083318973199189217709218056913279380019000941114760756646271255993703311043795324528578390935285183372170642519913995888831998660755321730397054422425049464807874375614062380208587662751326354749519533147142398021446920513954474240319538347419047654040284021429562170194014760093418134996467484166616634290767334453353671795355989939593369733539748674139895593278305753441751147080278106581568911280911517014714759922387373331526859850913101596219133034613494833105661371640257408471093038753569370300764802260914734969555759589627904542786218504364023549459135958966166543604967516755860879283271115542572448675022417585047283872158522785174707062339876710271164277335327304319971316593436354603510957377607954294064326188837861015042487733318469299921500206307669605566686735203403896154216928516592144634972833500065350349397965263990658953966966328265384072605119561299784624255338025954523593873786955318117470456591197920030468877327555175025110154540731415746142213137649086759525362826096858063033652098765072276853368286343240712217893292786927418796699437368754611511452549505050516576300835351489551061083858826297954268659788644539005553082578125498792407199743189396633847579573275722679198440936028516507215303772258024431722835845263709581692350299006312284958845478122887398194330271562783286275930050197859113954561695071531164420560674540909479839507936379424383638456659388246182307520723736601980346389354696607791724184925825104109964774864797631939514453779273091742413504826866513241959315720598925043821075349031307415629207374300441253635600444616417523209173911853604017148014078182400501518881876539684289933831013054503168437860676740189844327914543652128400168598083740270809563282980571452231859018607769175169878333686345075645922963448951508441700831982734511888880482030066069687089065032901685229604079006299207396714139672995788961220815602561759951623154188836024119426410857958194143904768412723677807412188324696804747007625143568713177871740673604824381130697564328478336102786219994314357903183550882523310482710881284846436814674059818810320194709140464906418952660946534456547660463691950568709129582929356216655067349335370457136388551168777069029382101963313561243031166963168707274231177537981764054130592441532777796793881378614255077730641872572099870422054991752255752030200336823788446343616257469421220711886979206437115895972590983157364424275591334476609390822340281886194528265923431141060934960549358364728674257180339495478050686833491282211860416594404090248499581497900338511268755475632437464509475222507203966298135616672290079649154936312574525731681153090068544217991577994611218909826260898315296662039347133630633288304271592044947635553907696297130799539269692436821749651203526839583976778968129499416617078548322055010534450235497596877567098885596357829848562905878077750954685227152811469027605242848541379574820404720468277109112050282148779687985165981611286159650930405411673023990096402940843222276638194212774873671540049358866872336002817909521694366464189544227627213476548581950950765602726015614698267424067262916655837922836530113501637493273117400093079247657960909871605135678680955551036678650647825589994494622971152773462118396656405929877113649864097383696001969814523926186143291989781666487687052804596049810340237342868649139419907531056757113770929704885829070338771386599616366784676579743576080368055074136207432395564766973502172916743798802787737035124526336866460115836406690454840825109938714074878188057981552721330937244433429664230433198257429057514281990860028626404429714112801866613049877507851406427819327948256912446117839529662243285089256981164278888093681521642068937716729966227231684399521708857474210139719599118615280222344339596220049048539805331303311471998054114864049110684747824533532014896492261775530392388084697467491863901322417435203586950306581586139516431063790924821211822667476776423861557075392812199970491157788566632594033528306001394400174615738948970033351099889590846507843521285718080894191334317241798154659780649889946222743304225605078790439390282170569032574781097544652458903534355379239781171556093978018223021590500966472506902968490350426959994117232970160348880794815855846425672487946428057236538296118085293331674134086077374445361144245953720721148475208391474953109530607173478996461249602136218263918027316364008975675868365419479990054827638681579776599333099550616715218529268084559715082193704081400629838379320808693676067174858368086851816823122954569279330321836836515497230593348397907932591255207076927364218370444888394970983309694411013206916721852751916084083646651528076723339341862132159886864043878266747187474154359060933114220593982907296486906939768231001275916377352115052977171336731439046950133224281166149189589924040800614060080475233557745138612535221162218083979321806098084431202757111229484815639762006019149564199528428672318017532816152906186668974376495087173940225057324157108722078868791642393725305430697700207404421359388521088894205523205617767889287711181904655626439969482635817115070333513314620171070398734711884089617023384557178652432813371165109911062395697492068504485808735019418568181676595072949807661809489156164534909713500462135314154231459888448855405867342186941609747903094694777433311894117515685182401790636034593017094141432628995925035052211476160051566163584551374487878724193935953693261580056914897531456856638498644282782266645627043677304473183642610780037674464922421748016036022967368629686157145133321823249104755636321270758668468464022146166349267478084157202313015967450204771539324904936976104731854096460183391069371666382256578527939873612691642430235314307397703873140186303717542738889413394941930560694823685722679980513682252552870937780297585788100092730239239287672831317771919964482923670581139558260763980850097308611135732556589457506389556130564529845490743537859738440330474042141227791106327031618943699306934550661016345937238071158321657568619950670006416595320381416032199824139924765800878915544732180867828997459724804456497844227540173534724978508924426732063179684810315029093952160125798839708323359838839392332481095493574039400905570263624395926821275057258146912208266176385352557297136931681248805777027359360738955937553979027812238910067513203560189120720776363826712922225785690311770796488233006033640576914393739564757110826534579635599134767983956270292849366645043065388602998921195664242034010654260245295647644223831342977717049366817564086427326078863201227618292597195227694910225956575632608168022487318160992316003867494081487026197165508975395631468829643771863130387771501880023251572182131613677060257843243726063993183710313496680992644997405189290365961073066065447816880466507660370526776331658280242025402997384091156907197537310661306958732994105560034781213474940381421692766356295117469108435996021448159752681878823531905544462131690189054856488132918718776957969619458473556111901572529588384148764969331814422309478770059560377749343455043510191794775749238007836689218616571533888241180245968496764951839965079022416048955761454310325171105453349452372729983656797137431770595587833134482740820260020233569550126051564353884315787370150750963225582474776434377972508408028573275962989715652633950341575805455866932102889254399123220654597238772961017080090506522038496254562535159843341733484136245020688030713301835976030427839861314892616330691720196247829724627827234185068557568171390081596211163627074068865188040868953610622731104196710163784149105140008848821540070465933416287953594979451103064234706791035742145233461196283436209383914826966466212361364625994775729206142984884858147998484582686421048574322657039012051184362035274683100823985025266763844060324020099749805578894516034206068955001989206276100360869547545705368155602163245126164071862117841206474435892774222229167486224725793932025954143538750457373988187869315035876801243155660021912026778462893798794535637090724045816458806705766361022090647191494596894640217831696394727631297746123957440140593132941186163560107779245497586651812867424598010995742540515316899142683351552044249278852335269711427485909313853499270571586494610487677618933421285198907887727771445320616725069191848265365091948788553698492833940932110787224195393532013904684092550844985937479117083335072081964445678058508961233211982013174975767628283018237652767485773799225704140819667700222744622463867924078131149560059625504717231092379251994871838653215671930723524022072541352659008428306472494088091230820541150723994094898298094583914627610411833849436680073839454171330708017918239552761004845354201410797531761883502364467978870526074143101705827210293600791946003406371994865798936398659392258394857408181602289051380274025493477946961501640211643101663393610528705255338707632875283935676434646922259849697446491029826411840187838774606074704918937505793391530272318222319554686370850026372582934701793620026082954021917069702869000442123518114306995658491838968111140895249580343269719518389593961070152396592384109810704841996416484724124550376591297367542246377762959853688950356249491092332198218069362115082202559958304436410908842159036810499151496697529626292982089166152274110015162296920665626336681650353108129980363211605558074606010034711972420754785150233557155125575522939420990731664235486050614595373467967404711536185754943017629495696316055174294813623299617113746863291768382914494278574555906698524084703619703751176913669068178016942892082988956726271076625579160368518020873580966182441784798030614841673937448102152396015565154986326080143666573214690802895251662639829780429733348454297120615087962018490763780663610971858303116976969746720613702618804179746871786596512445176429124193557622592922878650715958285723072028786175650933675929096612771705714070660280502112844249003814622891715665181650194786692717196990641585854901023511487677456976172108610920423523464263184358056479322957420275452210653939667751259188084438064104121250735748732772722933236908838377988515647058154012728290947198967173827300080245252598122005268001993456994091766117366827670797520668997996155988886257150164377332539948658321886314581651927771682950782328824603008215125856517381008476736777147383036840017166789691382143400019824865003633773610546988268862146699613597380198394023061672826861285135383891311357578819842945169556481862613422237642284319617449577567161010270779007332560049603051969980740444163725540521079533112350507728803387399733099714572140661208297775720689752018442147972729952079989795791335271737901509636475500062764097239195937126608398810257580381590399536503283478385600343033077851251821328730892646215143607565256150514870863566610751052676313738308682167146159366671158153578401379525329264418468401158741396188833683578629255522020671057064705329002402476648241267365796314919725846751221563731332413217965636577282457725159327111374946887604349074412746908106544523297697060024841227976882230518338960024433020759908020401370638875691000443458264367073299600391831035223778867216745882093861787988274736332691059384851113638756950365318494665458159694738327650883847502410767682838148524881208802146755649016700620761511111231138022045467750438390315187947497016752551192070028864740247973954216304806637182553492554243341222872929925280453590292808652878342914843742362974733228568256921191152490312466679639120271812107106461280710053871459543788877794778612784147408229875471390036798106929728921802282886726942751963224058726823680655365329770830336711567931210809930555667141150275164232077517517102120966239793325770472299846368915287964824185528745951116351383114054081203888399728793976492262813810628034705236938048633818299217716323072184521275914681995711671202046277648422170781740525645831577858583256958840562045859343285161925266301659882130200608449806116603278536739366347518479866168418090877867555762036857967775075907771387693323227897592607274546635848625303844986039601204641569539374838025622192946917272677182078978706964464406685228407939350664593802929933141395189780896108621735683740860952668448066493268995724882372861528258341422117676805066814676190806080858328005208854276158035836425293983990703323743956328492318776741881493001829065074580571761518648237421369075865245313918174432600707808025211552008333914278097428909487354578326017378766091903404618202101616296223309973943454317138977618327815189859564331940971973495697664747920827195870599184349442678822125417017834545204804042348556951273431124182212624858494953523206305067396440461846210786305498126319868517522697387741616360691542108646045204108233595258291794073453132278020412708699745766731404862393791420527936594552515373364257375245307043396374304054424657034582992386959538735255289963982628866450010231234698924413734764333513622595014340686518855830852042309031169473785863817514490021395971425900997226644509033689356406954079843752590757145781725451793358474416522011969362880064211267072707952939145073241662936323633608089361268805301353500553532531287894787201680881233811183492540161833971358397147304150472421937293067896930263890584699254360345037947311950541362924816336644793580642777196093489635293348503808673319469395317736315568999540662896094683062187936727913682328310525445845178051779024607165246770154322089776956492507492725869008297116178052349191262703754176884255328797469711383264069366388722842677851395137858447938610333856580969283708853708267033294877622042039909302184296802955145532932790290409343979811823778540047659228475797888883853614569055687609253316882202773736267453514736731536195905929824945308743774398779561887424763927280526070841187401206208111793948108698302781793930643047099361967649726548814575269199608788333808434939409362791535548695898746331880864872064626375470457364308009745073840250395605964350834083794374791849522666814360140214580138729863890833244586866949262312727664258290811879555405510928171916877426237391576675027130415513752438068237630147699998053959444086469946181502096379515371916510102959464680176234273757084947086301784058707390439653372007444915652990550770930099423666077981121417925904383838236677063516989781221386928338152299503282757236711522845623808162035711805437598643101194486431553717956323728242123556577137995572358511751711490907517584207132393111153455105671503822454839636008741749265405789068811608060974225857748136802064069570390846141746855716262215638938333146128869270422659604372844008463572137031203613994763039907687618559489148957635504937396666830076142392773284859725791228832359320627955736803005150189830389232044197023970415456437354457950152809627858183857616010097829704048582140740441404315773597476017499053484270610109953271413204671114569677496131863022221341862414171069437746643996731127979857894998297606711390625319507829065093866153352175230107284333483483544140911044469988090086731522578400055124110044106985938646829714552491648432959371655407038420738486903100501692984568385062270319180623360748664445974935738337265201745069187955806609847328738109923656662484460408587139909577103183023408174874183626779724798816804167928159904361905240459028851936899519996239335638888220447006040287179810268030223703073690759145773695615867632380677751090875353302784425325259749850668606263270093699107130381392951490950065686609083724660853221793835402816991784298464892209472708920717737848186989682973424765902652782609948026195644617888698889232420927617293832137887372799052549023174076279458364729116354229087106280641797231000881924806967478877202228447653878799407953512377898943583061124730637039704638502007796201722275384422265190981218062964409500275303583673863996347386198486310191497430109394936607303520058593539008836171256207251258812697171071588078282922469001704594695709111340980637860309564493190955079104522402090772015179625462567770558820775283445465053806074498778900139342195378395276663607075163313163534291129663898110339338113238574171096735381914592826560866919184489696876791668107959563033061068612179040142079722046395382050387858234876029570882021921157376020626800993846473748477657568051427091380059605473425456089629347637933478479861001372178801410756373634345985477835103398146004093619833814276005772465001194518591811293495915671647747473055600219407154834670273474794616831539074412602333199522287749894908428040321081630139180077367635388619824916236533764206653086586464979567150964646302732151193839190228653137806023219713634279395475609569395093158669191045587442657503949111656821352277205425763593421912892925162599418529559463982971880625535334487502280670327340433586953746434685720296129868028325236998402239296291814561007447128943427320700148435228489088905344812595159408978080209895964657332484818203447595343700430312078300797635443040272372530771193337698864518261114886596322832126993140456226176721746170881474516842259394623057436448075464577026043751874378465012710996153984822196164773678441051587400292482314445533499524527176585617261728689177116874384604851041650071075424903250123546471098859959580329534335808960772873367144323162316481814113914157579653588815732110015811244879955101471624284107146087039507425511222392452796208670223524851164231146539182308525879975050193132751076888182398932400224466665536170113875721470542594053220765028098767928254219031591251828491080710347310707092873888695165243558747226923690001441483845322588142994189425271324131348707872265484940116544401817912201064619694919967560094639423566120854713453207778621300637377879327228254901123491303078525604825528247649183624473757597883783671924096512362164246864308151813517044155823420613155363263718618422744366897186460956208963694176698247040073318974703671949760110078422089093526002682534186130964604754985304256422808202892918646878369803172019185570875152876431639323387927874744468418550223242092543889369512967912955833961228388081753656132553838648615581010683116797322073442503374897958905413770119129037216302676543723763857448600797105126583570112620011077569898369521587570217323009252128380350855236115022308689730097537920281634693697255740938506540845989837442432704572203129918398740538002702505132788742538089108668083197756286786647335493264449051947488934518266822277532347183012769454873178403863671556368462237159132071575657561433280174127889467319048568658116532049547529779390628361678579499353952228268194709545403019704558133389734681517732721710072298541140509225028521551473161287192419942936804563227334865428045217557118877934354333389062308043677243044716032093861939453249970069009569426996762545554505441474750307755222632452802014336837238787185596723062022610691491878575663448935439538772040421055330140823400363051675062377353020455721242090719657161894651102665379923604173808528605578230257190690461313986308788985356350405464192529982471294494454741806975051606281779398172567540539615805365992544161851860404593861121601053153431224323122995247793050595067601727823392943403015204944314072635412498177270833306121335900893081189704540913746326295035166998273393910911908972450879500432997857522610223395849645687918142366989133288468905067117804171608262401545227450720842385944100844035448235565009125436769636624352506701826763466298819152583628713518105209023093013449036935616797392326512396294746812348335512334678102389320800038588559196450323869117341017423942335414021471783478627072554488290802940128696578289647147136847488133651208250974944086752657112152615325133647292273161492890695925924279221971240877437462995461153823031821840973441633389222227915420104271147085345709751697478318193485107986220877207691589268703789931085864504404855611006772170931121513784037370564768661411444519118826357760361269908286984854070708465673238087713351137948244743446854435354667231497491427107746444688717049338768895457650842076491057570604286166907991914889696749893600448996294002013617755285432174675000879587165039736548349104028611481429932607541183879168465062761691224288452926322936792004727482322617586888369983323791891030897263316924867541313146431153255029919667851460020294860681473477127150548894169238514675823820034153523233909769255313005446906515281978755796969111415557333847533088550966488260300676841011872762953823591197991538466571699488701554701651812670988767858720593062573262160496320648763073027052323155840785504214942454758544257671286165850103442970667545685873963698524956904094418609122364270338747201107228980482933700271481731539099556313457850640705571787822882606902478364478322336961573443969090835378397463000135491030006015902197400744600071227822863649799570840525346291264663342001411885559817144216150454667198540299772484247009085003917330978604666912492372748584978015190877027606990493450995301850196486314911699515786684912835985224154524670085643569797606428681620789731630786644445244581080221266076476988034551581291041230354069618132425088307120548746121375745702076125129508956984494845599084624372817241716594241765968581641519788083546183718049290992912401596279112364114498583647579223785545724807172686434356269303478125532063883643037914470917759156760525040755414450595007298561611695656169006942132785145966279215333242116245021739343752931111017270102305884343496470668427947603497834443340404112019568043592685955751386238430052505576885091450349384646066131784193527126638258866414415344736686737406039568490876222285865165563853914402403735137411907039503799974135507916280571507036941361396950692642419241524090219278766906413121248528719819093451590671474311513564067828937783363290502928093712464563979701493684215949035955375100779739346557696004288372425911208327949474944948818411520907919316783014596771230783770995275236320720106404920795110687385164725690540952839401245431762427601032560216237183102969197943954619799771115382716154969340708154514805639548269737027434061739066444851742599626429401120090943395034809538788592588909769047283301164955348011880923853490884188678883614476581312365056518565188184946291026529750834626167121036994014889629400123171530389101172695879942431360271948992944417162382615998521059728600660587835221999174200436639424524305625693120937211538145151095638549319405680934832952524597331432948442951399108323287545878673755736947060160521331926206679075293824689943042501636285386089716034222992909044053401741371278254762990644239376338964262352226500191967844974250818836311031723487722778664983371640522014031083680280952916067256978200304195200926876509742897069251309413663382095531715906342214735924899326112652228308721580749211414594307889737364888069719610397282416698414327364401047321254894071213307441524353266873318066613452983367005456214482282181145857653091717631995695439584279894920395129629733749158627669890677340741269401398203047291154057856925515909620770022413343978681384076912874569314543116895969031880171829894357768718272222275922640172059740604096144458766015689827990732172696134495670873172759245003786080727065083865342680331131850432529046052297937635837823045458718856861055573484007714696120301665707372524417998071029751991524529351972619365375818106772216979216148850694745915700930027277762897566351722121776477341615173064195701908368525953534793156237820009749282783630690362087820748652148071796158776770567375655343647142807398926324822732398950070846617463926062644767966968935509594250952131642443324066636598709299633133553096782622341097567006392234967194075754660672204870499227221256495847659318892417397385661233603334472798476117644701946423795909168889236257781921753416228665664167439860679866716516953114732639051862895164926876069198287786668163215296233378905104338405638385595188057508425892126804359143992037953072409202715642780220191271703120337531780217059049098906754336092627819791425166067558382721153103841951414019744449702632363634565736287814596907030405924179202058057547555740501623691256892311399937341098740961451282166943107499772769988386592796199143026164146890439636304935785533462822444336237546495335668412793629612269128556659583894636915143890224987505712721355306596217046880761733230622509620072046337039724505545196488418015197344509247693095191221631474898102535032160515399196065307472553147771237862563399401162920814208974150963289324822128652713217756477661140480503011415546918033109637108597751987856942706783918265157925323426571490985766640508562572979419104299474240378675134829311307244689378456361892506138188050639564193973569580922145341916102189774743510471956368678558395224077323524130932748242673320388592469139975372087503869054952740007113388906924811996006579397725853825268728381255248848570737000140910783533229680684355324796031965379899111962197692504667266790810188365473911335443834924087303965932394217538423303164272909513290806531542685189446128730497560004186688978045701927463165914802672694636273987064952792173233232441819332487959543129194819627872396123584777676973565250554405078910975813254756449250691999464962819156272195320608856583717734170941432946862523086895389988476058522602148744770075961703144415838264309889363415203606647646293389663189174573105256499116869214179559909521584340843313145888393326693485463883758672281929845475826549133054186470199311653393373958950595289051433062580905108707389253133561559996545632851491563936581859638925006881562540978555111545933566271946395889315302603820093925605637408194195374973033193597944561357092297550351570857534750410852396832211108389636339540623568344507746000905043670790466676847396765869069375666347185417143510555706903044196225331496128358252691475073922976657964803720096732963451877835876440306384531815368990955584499585437666242922105477442508088753406631711500038668211367304891062810006648460099145302122108230218769305673727485658854073262133634493833138594050199291400013042371935603801878519835858207574773351104005645671147703041709696930467021994140056229563087991098816334748256775246663395743514166835357934636810236202933691892563198425704376673917293427797224375606452403189143181273508270700019209213901119044598593428634138721374982555990394219820495445336223255610007585219688073397888305546323269779407993472195917242887283027239912254124738424522151630280051640623879651594734035263779742876069145791997754952463493219836692714512588883516166156408594065433468959341621972748375261021482982604588659879443311585661915980043580896751294185254794487567830200828142931415191610667331370122269598382025642166319151529242072515553523991050946354216382990932381879934570158371970159148509044798995079197493578987668172457499118956013571526024400623074628313196066447663556344788479815216418076800205949355784474344062714335902833578535019938030019656641920186135474186237053046458073522884845856500023598736066196709265604092403424012049618487972775624680978275974478223688032634298947616149901254592660690328672598909458263123133181012863666207953351577558218811026621566024582907970924945762507311886860497714631213339836035613438734964533280861966544609980572799131208990185284473483349042151905819419290400344309874324471899840405669913246208036425098685254194017249248401124273029253863064650933759102386318478985361210766282862338678066923140144724197718759309639404520008759968129593642615985643167153393379359738901453520485496299480233026542090460778940688105113885836731364738965194211131468588700313196719862426921945828514235373755827607884876419662687518348181516355274515141136424435685399217177422868165190230082896337905106809256086250329369031018545182023043669271656374019808024539397379522235532768865138146854663016547876757948619715969356824987503911547553537381581825045828351762101615680151746910475268741032234244207781969568987869042626868538086132182504176417245754897372976778272760133597865466025278353025698163452692094219689924860628871642563593916818130524826804145129924399752202120807115880811274456469829281953973864848266764652350537045029724277615133319881926221928616175357750182899733490057149680880096531464883923199049967051860720618919385206226987860017735013903989281341369468949092173830139573489813678860442555908940163369288079170778465229559601540773233117018993992142836753955759908238405037634766160962045181668561435896792656356607438803273687525240268651771586095705860843689377908930652878455955952900881606152143962302178359012026600406926619931513416579852053452488953028894141249276886703574765787561532507860177255581844609886975867095172439038395278233278135374116896865826626083335113929372862925472339963582965162597000638301343454281227553464773964636149702542729445031108411896118048740338261719046277918637688982617280692164676161545897720712077371915031040972125971319331679438839735140996532444667604139121940130034965929469343007262761545318323226398301369596163982352540269899801958998640581905252612828868227302553107244281287366552264864331743574687413257713891036525999912042203691218557911478001946700969096562096848496723692442601300998295061648910894052263716401997013617281379034638406489240878082313789217701484115608131975904376084617835672139314524874317510985756061497802747918202639958347852519335322673516035421809834183253689649768093653573507792797291258511720775863268849691092784992032352881640407915882180587177592839787618783872310162086917329238167428567759945560369120157624530515714321477813870152369145951516013578730759153327080374221579604741309039788100229883671930179902864440618276117035188926966295588601486099577934831459628036359584895416170267198791579922011747620091083832470467006900778600673797463989165818532954284654474822061540224914469804950864764319014891830439280675741714631957737043246009505373786406416201676662160365248357182174732657842103247211034355204571456999310861962224290590734602393783408803981324135946068850640202881256648827086829654104406539999914928552798184544622309725718380961328097819387957305549104267095999406595491008451066230468156975665745939240116218012464882581574308503859652024375681350075573680057266867603537132566014961498356643226692321986172526435575875687579036121081474140245944291555539376800985248838281203860089272338538636319394909909757278726869623883628379435623893713924578849858218702556722309593680125211845835111011934470217140915849532734706067139094652021491809781769748405699027893281294387081297932097403075840171970475301461502267914637091849801370958770754975171120483396584102217379817912487831414349423275813721905653332236430775490004079061718671433324613942084774558854973694883054061779334965232524150152391576970772818786065090962715943153013095216040675441956707620551224077233990161632796681168035214833699107206587258163231390486529533970333211954693821582063682812013641077349223719867371136406600330538221336270906535833647518025305875325432328641882282346313718259045639094499487894430155731022738996006421363765061880716205524539685079352878324243422834063739553560498301978074370283168760475290754318175473544959594521422405630074693303932778084881403866163227825916510148405455701719648012837751091674480285859466244661745078649483695326332410316043936253595168724007832757133272516536519475821009441578885763169225526912846420523026840967985339511527116514325937395277789434920981660769965940282617027391017902435303311520004937868663198789660157134779692789850059029105283448644886065901377158352137736382232766413236836849672575355102946666038968081005866652025899834864628647313539543784082309964630274796726289886133994221248134213208825329519552594757403991982284568219953302095520315462834509609654568662654761741192874912697129809304546900571687031958462495689179313267669509624301393296207311478449997413571834181343592902749387692245386570369775840533668257110825998884331335991826675037244431868387723187854530303851432336922076129587238596351209133227571821891337913309709989093834599339533640249905409717620677551903521670002915177424820385775517828936883901124523611310053446256113711003234114972249424822427829189596074347132197318098627225142672491998632315015535261912871550324659191147019141615403500272694312000256432641559437011685204997714285050382754425262340709103076856429406166430990729161295043620348759327433009602270462998674372199088779584244458995950268881598521640841595307525636593889782819257270744701218417781049532908310476036317541665027267372039588563379012617761887960795031977050998073664879212708971460455513897775959629034805750599490122581712527676556457498858364941495090432682968646587557473382252262099374881851428764986903673337708868197616296579082465200931743701619709260066914546803254114023151976835867242849113765971914636269619595249334330477286662077721701642728735101013830403905326344254507114898796749419335690846533075626903834922665053052864224027921345238202707422919320913473249985619739433268402590537505387424480047136669790279515912936929348911367383580410189040568813701423673567946203626804535514623709813751928848907975953071201369999595783344319862932251608858622122970753705399202291683589994565485038547415324560393088048225547590587442954648481909264660883869584910844214477133989663208460688381897873245516062927167061180711270891649823811192162205449858210411854440994182532672471938076641134362921142055962040458866232635610394018760743758756455828380264509146546260764375192017451480936925884242854954345124798714808523267057925020864348778728786695754536627517050179089065729688024162017265739996430672254383062419838116178965164706192623012214747219975893259150542609828630628643671155071581339789260140214446553891891387501919971842121064551397624113699064306625843450436865870342908937856588407606171650799923188256894674794446205204600657817197641672668618454467151933465904441222172722146256959043503180439786950728027072273571380355194092539931278485572403048185551335943008559737742959723953382305707628758449976057981569479083487792693694227034979337014224337970688693681721813010438368581657248443214435440710795189433935417337547938348293798369186742227746777144357404826905162362492025781890714433783815730117103412311974517220760056135715120443689176877328686681109054622789405151588614519078586444124035140625809123518437378786853778820953264435104587685282215493762240746029894421829627469650270864418581480736348496818484614158921975995148680542847864851120251350265843611792550431334600572545762490764616752398316732983463657785826070053804019339073949568029053278232946339276187411867606157140544979310694864901768356457604744056455365442197785321131668293901318975436520794925159739744602733513138842011880678800486518421048429116446707877060400063717651876858599273929999615450518138454166953935932171179038742283142904129480773489333451622191023210051567887434982809250293033054079281237071764361693230587384242675620894724506280521666251269210979506099678960741380537019168151280824217390838378343521889258797129008958853389640917168017877825001642554591829870789819914560504069676066042675283074380521067007206388761290868646171992623313097205708956061230076138251639969669658526345607943702950600119046656651097427342703265500816641501980314674285792170972383493051228834190605595766966529636947847038116297531852949158710860129672689075737004443039996897580362548848704324983187136073379757063936701692489412213309740861870742243333698813372045960896117804448118414478504341077478425016127238941451741252857057311612872941755919836721382584958612171240504089743582736417692075559373496932083984033023163104532146630464133547811046987387114648730187530569185451932466736760831768649351273921889659620296851504543724330703599019648717019774489767986935230262023198899933635011288260808200108645798290274674571066360939625655292172798845070693238100804134111758930871663819668893426453841419315952028732999813153785491696107387133713993573434248009114879545763140832179503687999207800934273223784518028068187559566625555635492230411966242749430499011488779623324120661215283719452758849495421916712315557124088283337700998611198888157351082441857886721607282660570746622855438477970098931544538485984613255813124474604663176954109812766826336585991975665223453874800924415332026414331468140241510300017766961476008966025854576949581775345955128843500867424744011407320928466475940950028486954542689581921436893591770967873337609521629504724566257759663900306713267485386408720897968930864787776085033501625167583951121891973570725652027106574229060179710808638462156435176693421829064658307457075838825426220027906960699564038319336002802119103279693577412893619628845286205095383305409235868930521724243114358378184069038535618738453039852604528825767564753105868160783441190166573270468983667765261920604149471513270350854945141994295266915493049452599938375959471919317035564619328125954584869047574813863331386132200353615480851291269969516359950421758937438930615470824963710207967716790990476353201959108013210300434363934939907211899011940867826153124080403032493450621201157411448138383291494453258888529362346856444303851462230410134496761114471121466694577571452744893692944463525743224881310399460556234722728199802150590698979328915226706605203126131085770763213285391366170575931964424195498203416026101899062352381584393285480752792754046299365548443288985569537091096672070171284018019402267251154123918053075028983882357696058069523620474812801523125571200024189551202831710571325238855560648187757441693804625906191403710923305327394022526417672485846952010231451716379201197219370337869344192193180703307982781157848403161516110262583164737202153921496088906798924406991298059352472326260856291525720733965924673156114781717053726103576961776142660411892131805604967819914866627282869653387261349431039851563101145289097331965828687753606083957566497353176390038281826105287096637247714276997584220503661667139498143362176447957629250897229210427816186057506978550067190543589207848612393367283254427364247185924381480212246725182720292064131031297769396434099702611655518425456597104551021276344238537506272894581698502307839065619550632986218897914875908638590674200575737683685352514650297302201450306974782454835411372806836820417593061719078353306153064002799125013866023682941826262209677150269241475345934726322255529393778427838721615720831243757441968638082549846735278844600574577194656582962926134575929474243538497404989352383215157351264579734675783814748829256026075820532235970983212340181690950266342106335807068116702390909607108723017174032087596839876542017925653911399763932325718800094142807894863693975473135239409530411911601430335258814023938317861696195940815972004671023536509404301134773155081050356893912741788648128086968882248654768403971793073226485509954593450380642926190571080334091858574562351124238611895395670946250734152329688711066059501258360222952980365205529059167869062550395640467070539777776572798366604298709442084287789845264716324291274835172010301542170863493014534985558774571322880988438714911447495829737567344779151037387359879626275788231069505841630935221582877168645757731302594246950627021605025622985327312259124079657664245636227925497858690899850280512246567540248377135361039234199531404558915862037713615219206439738542378526771008629355941872047185779607955958790172534073072890682717382197171326702897787122082708019033052712675271445275865091690732965681240404731652717614131885538514886371657417522314046080228995848486517158298716632592472656791849513517861220498383336867026789325783032414895822971317357780924264186650093227009368201113518782700525925996394981000563518317955127869765342391362090720799780563129588828737766869628746385783112419540782304540539620597678623318849526944667526081044124159469670183673306347348091067590412157913710722737361052374850031089065659802611027984013837126446701319703406716267640116208363661746668786272390298463641040517259624361382167315885330986120467496293122359916480386671800726689246970044983902823842628800662523883998679088958517775236187765078203655563769147546327464185585971583765690282556371585700004754553463600787919205996994797184638381699489518969300988408165853482926904291065900608673550400832229661360483429572375843507154230651404960671739702305819487903745154663200070048358304684134876274256750277114801691862103616207010401235038637394104790447440917832718194911315014565863149465233011123531785070805191221004187826137130185366952572430460660324777539367829742247807233907098951209836704454731006686302051044393064729665725044919212015153060209745065294308532079703889973567552358032659680390059820475175314534170228367283924962738520857642789946638653562775255983257610475592295377551887800703670614018954645814533858455181540086185338311658153813063224576402664884620752603002942803245319538209997319030782585180109934691570716530222441676374059180400599814463462918342453546878530818230059130691179232533203623737344186227316119574875974920387480999261259987079465059381612448683541488467037811670868653242417439975559050777544134622593983614715163324548986661313701882635405602324256089824677259610089133313386457360337697480571173017360901177870907372995802112607146397682521240190873370763056292448698206913633356871782100297555583297439151606029432681111018469290070456143215788553719473352629228939697112461432235689524371864897315106634618787337547721810671788894070280690232643660586273705929252264953152103492122033230333585500528692175836558024967133678529577144203246218211278359183507903614393191062894006126607935993356689210211464288932120145677026810780787040307733472914234895968570935561346147009264793264353161099268718424075731399778314539088795454616441920801991640794371406189885374178690228495565237622720379671797021563945213163342821453770843177119937134390574300656272271778630587868444474349297650375431129551922271044711298418395110839188884852467269089091105468675707228203057815469826350617125862738175265184130353694600108818259973234173051050784636500291390842337422053421619989001309282809579851130535147523004920551934738417470930764196651691590630948519533319357907044388512541225631022079831524023970119203255381717137885870869047726003531496590846150449594711542765896599724843646402986893495128019139430255505427252141797695792931234576950963752843740803970709730367831671867829193612098520909967331390136320370497365129465597410590307082694862871386589377243060498396934886975232875996802076230955420010640753913499595595493898343488566037669596892185468643815022252393386676710219587545190925163814814423361933050133939020198933848176309459634407521457847559804486800650142351577570875765268459303427077678289352775645885501598813716947898345609354849991747972426267551283877238834247880078177475043172350798032133831254638466016749558323713240645551106491553440939475910412796308473905247706023644276080276488043319896303159842171942667263370259798837994737005528440361926504109568651194237953709651737852948156778139677258969929160860518925807145910125297598623989725218926097460287875254840827548952744053171483588283797118363551482780462701032950368839580988686723422102978314457382061203030501762377063853206212116745592245126393663762793883684861729292121370826473026294144971615603841039262094712581176874958429568737193288558713438370120279707922507836037389195357469092542173659913625229264725287660427253267060145947753667266203821413890537934912373971221572665445760721969301567325963705461145515382456987769573295748852309195124609530792839141372563078782932717612455208958167134315440239135354422218432782883701093087862441993201539163350286432348861720176148258583938063017516401330691304690308989970576268521203395376733013407768348472188574478052162069796947036348885511769635583375521682179346515579439848095098864159911237734224174080275661033998857009403924506347969176624108128945215771882212196054251963783722429774326197601853350554767829582837670887332466685129503013963864543082730695892911858318634574315863088670275579098628808571115633300528630955314577631073772868977912869020118764327250287133738976426531916814461824269272141002942599484891968855836785110382635895546839287235074155220283313342986948001762824490749192061236892238889406541122803887181959708829978550113129936639907640930080963110209687684103019104111095491911512093407159027176988005090285459171238969897994040780196564479917908658709546640127366072696746589350802916044567498438359831051869558974381455143871649078726620224481264793047887258895163544537027989982616281993144946291580953650552022821884127759450718353156378736024519953960207702383380640155296840510377472284069425708251624228037546475410484265191155303177942470729300874032274839282524268861654038822338818650061039349958461676049460790420095330534322274363794656196215740795233309106436396853381747184434392002448403843284685291611781942003759792144285586501535895825257472943840843082318089199157270819612906292370055106116200627893713148275501936827644088892630735848024484323946902452891148165056932647967569389267320448863364216923526418448903080934314781638985698790586561426347855483306702484517976884251282637624474346229839949047127470310412161651545156268183768131658971031281392331943051847379251600971615070585815821220332019550491831614638750552117196107139953787809365442483764451471359863234815432165626234989223852786420477104439817490605793366125109100023521796627151375999906016836560345971788441507983828395960197606456307531830225445904620472580675317983793924445276572372926745814974030805356677617807167053610790407104494516949353985557349475029025922880812470410004407196190299146311312994285339424105400713219664916250238492115267609068802640587107285652256350896920419782024664287320682385135247390483715429085096115142121221108555609522679100804801039767735901642901850270362300543732793112865102866232351793659291469260953502116821292333096424075102316170819934962965892713827219651406043117234157388094008231676971434966913349292579348346332603287677677062794528847820273907815759229399956028281364893544957273824307265255864987169764645607763881648363191560823103101387669938832847451688279565886826909622756835464141041613788999120956391789807038153890771718457627450295687552418462443839246327108821182126246036364307798489189186953037125858508818509321965339387208256126511515167177259241009956231296489557049260518309691671587000742530140893475203832407676222926531534792410326136680734774137986199632091030030137019447729793294871913682687350659667910937013945869763689205115306121998837279332206572481995462988941666565542173099725203011240182741395798230304775799225625158834579456334828117632628943321860177746434646401090887595415180031759381219941435678361392829322137569846330081733179666253346818861509422452023807741665012482613926331691331023287682123103125544637210052420310287993588156097573224798871116802382047740114729827254279142568562756860710415477537129160155121445364296419719666634664173498670019537115014360564402206403506970617862507269927564524227401177204789738806211340456485222461812653380141007009917015893430989095438362599891079994782161910632329141903120402604218019225440140092275305656550308615209340607987486195053054257820892109390006134474424888853562746105248033304322129803343325665214709513652541046659223275499349916467924279077707170988890916772265203332739885437583518268482554839765586475518881188577064692559059075678593559930136824304874242565882384303301764173627896447376656728051060561001403002026669066309253197567780223337862040281975389925541029045432205943793717584285541428300364750209899254608720648538184222769244599282517396630548114860894447376616774479612282374078165758354571531831951688270271640834282017188262954283737788745850206557889043267944314292081889099500660885419276323245257804445422298649093377427423587145422036169461346323813501228737393418908189527322720452807243026712657263795282237881837253090469567922399262533257633408536741561107060662270540117230114639309566610078085024812627970385621826707538949652136904979969644423495809996516533262397981819891571263116325433733388110563385390793707586797235480952359374839405447535858367166203154282063610957079230560315905495146700946405912699525506942457278620442557587931521935561470189283686122239029824227386662430541568988372365703504803999015419372490508229286304751915942340300736715228264157708296614992039873058220598489507396300901627098175449363690760192765233096656753981708259898706272378332391775382056411042837237274321506430702857446824498989685689385454397337716890357364098865809915747514753115605106438850398099290755609117411849915615650043801650515983649179362682651540603190898676413408921854634837323402842033877070264468164586466724931171900463832975895116265215983665876557761558361930279327834375848714347730439201535450692634244852470545597012660178016031101026026934501459911874106309111973891347845976432478893318312753285378286549077840010343588075232140615680688616628132273342703744026871819276812259314599065118302792121316996189445652731192505986052744430431509881214631465248234617976716608035287496384381325086908713915611680655858929217587605714176731043554422300528127166943789914770781843106954902241046559851435369216547415933286708879151691689172934808668939715965128583307325784344394415944966531264163258801630100323010176466245490515881994828766969148014316122160914093339207927951692455315928151423332350658549469710796322108631816042659666083619052758862647277207740303669668498473378145055353026169686852673060194395626507967722171756010520294409250440950470328061715390625907712653603467768329817226171542852313206177680347129862337626033372008772570375590024052932411934932729109360630804676282166649867758487356372494349752277530262229008519069922002439945179363753239717985606253161902396710704835391887486100958234539789574467159956207385822263196910528146084594850206290745303839613965637789160390041402854590038355227969361715914989063404984647803433305515051474212174878539275922781257553895218093860572365551860865254229307653168847706117849319561095961794689748652453986263183775979904905125079831257504043000709766961633520922878667283526890129594710830742171485290555214080469506808588927579241812819836470824044699413902118807553241860160209640799102894977346673435804040316136184853940228951620341012917521827501756175550165718635512565077865703260361794619388956645737711829515670514666968435580521734643756757580783439265449268779055295682401402490757387606522529167781021904596846117654147516167669439291382040521032698898097070367865882807190333944993909287881979970666055156278983536306065222162378228351616983917049963920983396556098509680528279558611658148988361610840946852410006976612183712303540703661527833818423465593644231842680243228364332920360249893783315536533614465931414783941738579266887728595061922113340061576403518008970133977085222556168097506083663837884090415586916787528912522520641790240511891638401146192828688157393413915178519958078823890048750784476387219941354994305687872750183549983749236980883421272921376817463607550485020489703013628845085028720431990967923837915437775134127270812450364561975120549371814236827085524168281733683387463171033631993739086834948836202499571698991620919723339189481651686761674603368943167511893012404039092425473838671222622055448650354311478465760478936994286828469018321733876687452261930845426724804672835317783250113268513206427837689071325440704514269452304635037659186631240690343460195352374726903538020987448324609022297028359839325358839711711908838939294270704642622008576013635069512447888474574010406716028127348060712692967104641816607208963969010233385142556662523947593093934809053648908020296716056787373465224147100595024659151420113150444902298276370128276692834645085119502022603603409895110642931874803528624923814081934865757270282727457871616147926824586273939465865826744258526042448149299348605538688447914896731845515539362494291901568972825822580334668808140391035881489753881971427438432902454447255387105862498212100219015770964518192198922558273883506801460362099722368687018892034403964228866428572858803927128985907587672088873880112455704578777467768512682756712822123768162901382377577203273925440819500379995313896816391718608315605844540872261088811754123403969774994020913423337867790184332324257031348875073177409680683884661430594435981169394280017156515078584470705229011223330018279577478218452216394869560855351375804280778093312451149159983968953351917791924587864251492711374786686891224476542034353343992568513878284824193710504535555894261233628666584235229468971512531902325440013582634459794276856393804052677131996051377798418330449194448173709335925091300630951932226261614980142250440889354134242451547231890229178451590559829023413339413808803694000647305006338870122759054579845616685949762433920261693249427273179604050368492165167375238614414820540335867917468926470993155741980428465694047585165725390737006610417039938375863615166778708523799887811398000638419446595952124094551666179241940484417184054864632148500859079067286296474167201783895323041787350160910134206744290269031687479450937796458990155634543603546062645261797137927697097519919410646158881580823869854101372130392097261207483382181791992166396629744818671656740054800967998621290325461141385233168592626178731074943901798421070453125196980778346732756521942038585170524137291670837550498748405352429789956897368423934682981245876178728672189097886543271334098634871217006180191376153130471529264746125081452774061015157954860022413751814603694644542318172816657947841210283731920268241871934004814599921117334016426181079204935190523051045145010362389365091158006206268614381467244533420182263989320369818798521625597554931987012818983901393536949691897319772897572092849375459225732682861013972435481361701633940349008989775556798051324180423596333764332448772095848452054338780483032811977345688190834360042258428530812801691929156687196666613893409427719757192885669684732301472299867003362638474570019612451654163445345320912237740612936056709443686135880678211701858480115809191600501279234060410067069751480451722183284300282935298258229998477151912658610217894095804664353528290861196999962394477469191269527120317995610883428649990273535776969062418818734460799677001294339201840727803576879150032004363537407345339340735791831996954014564472618390101271022059941713609830687662333436400990549442127232407244228858510143249723649259088528155432718156783008108477151119785787713417239044539439870451774093819453624803349242567816744084200640710884305865791000099576939814565690634883012591467001647246819059415193418678923575280545933107431091506953784343576947418038657459917092076267045040997702461927294576779255059632486923127502978320850099974860915071971131583790556234640803204598823215381848289271539160249334822659806071843256265384678085083155279478129692399695836173553202220461442771602967835732002713732949123131944332857212867160891517610198599849416570023634191387232159333293644306744768214704938062827509538060933199470827021889507682104548161531803119677790972073067643907502188740639992266382286280481848768908550401065752731406748042662267065653016980738914499383036240281748445759968003320325232378881998920130686045382057070445378965228010088402564713653772373693306612732796934833685716059537096917453118034662102177410825487116007606806219850031586215411117643362382133286319884519246447377238374375788993648109108808727707470205054300767727473824941203319489629552450421496643730697150351002371244172982837630999713091176434832974688540823189679204761047410145609019454430478435823654781812826283999758043953266557499165085086478685950656055941122910214083519954380608555498614003556460896594090375528772842981326682250649998063263727509016350171253231751014177110816648731232288345990874913907613621330292589481236971537563004541821447129952894514685396930022456422629286488701551479851710612052387923402421635026949367699757756953650601782851039584819656438471591362779454086634574204459334930786377572024018507923578145743630269936582770666716694530211711951518977723477839224817994634646535927609423618594122183848259320064380573865331733733798943465550712194681210756024313684708211513542362191605367442569969112505722398292353605658417173590151601013014792925407252469565944304293944618357337092837223097411673762127782672030327762223654060073179548009837817672414044777807240084634045281291178541582249020332567266805099127486538443198366813283247040694662844220532106696927023784554447657087508802633772649331792673652194693788753201124243402649715616917304047524696794749744021807180394753219435447598603976249864539246128583955479884727061152528969626762220856658407335030992859512776908006490152386281601178179281787290809474279043292909360473343914202447444732468080402322764194053314874287798868371271424121483665358940592928060217776313944867896771331599021994900381951941720355682467975262473679921448014035386176030515298984603224233240790916973475083042811143133060255262206491531607091417294245028356496967119194209150193217898460258243043856031965347645512101562497741293446581459784073646356587904079767109332009332692715921215838426973609753366891535081831093987987440589901207717241047589775836131167211037221880175230442340528347133172853052563977692894321668048986116542380297743322688919137860761638424260542059974862233480847407433606317509066633095009965891234993937488689335053223776649754689640666753287301508067290801939310830925275523674513792426542962771763047054856913292206357994955395664726589979870254175402802883601233520626573815554951642189544700197983881377766570119746255615565629049169215352452695775744996912200381631882605081951096366348454750293027807830251541509743000053558020004866456354072566701993044085477549755050901638379964820227618386819185535087332657777775249076037229305566862998295437322681879283466129195489859939580684554035077599852180815227791167415716742712698083732311648587251887217844856994761899406025238572202127192627588371712826542008449809580682021064956085094284566315609399438446364825087689599406059044025064831282365591744029040875792848846326509965813292619494477032758629268681313474882476510431334287753960728918473213759700604211785347801567257691376063469207322191797670231327253315446387611035279683168870656316472288597406459599964512235062831937288910386890004141163767890983560934062567376734994942410985360618315084037499923254255547290466083752515647760959309457220434719834788357037953585714448385000601726297999531251806469858336139418678760323111673762586245344386802634018457162494934175733175802989759768658261953867220393733316025266618046894831420247850061452653254936560146819753109811306416908539995360958580223641918700981037398005258894304700676610762459618699802187078828390733085468406668359055875641800332756966121678650010471069925298489527559353111888368101073872707848230537676047434123928931570817996040236877072678789441055692170866699823193433573808572764427858602036466148335695589136136687195634867999676202912856984950511844324940228254624722904454912692945405627610166038731748472235698249739411470163849306611611177018970782777514396276798328382358850139493919822496806832586744931100842347300239107026294593882020015099203530867447138180270818416197651450244447008077069974594788201530836374181715770737435220596574430095865945698202481026252701961686596831734949604571372559205739420740542161688903123380459884351097895160528260114712811033845726949940009181788369785289863282816826875929739091849504709384145201634732057243239802708096622863601560980958236078405338918507671372001267526437211745806451333727613562910189768181194962371470064746723638772794013784431706977188855384516754193813318143213790804778432883130712532838547119465043412620652687083916211342475715429643872095842743693037923858258781867113430227755425990910233454743539857269872152658607773938668514959918226201967755604972038123227735347172241835740560231643436211766104351082707776799154918713077231635928688103613273114174647448898792221261946478425500581093455452398959611500860003517178306070942522836696787095634976952374489854762243155390134283555749739190553706652285812906385153158618869018208518856218709125429632024569809581547781998127969292959157136810375763451738872636500855564756771233065596216247736351526068432641312399529523222895120184318586305844917815366633199171639705026179962226547624937670114315332946988118913292941988028276800164557672949031706702149589443151207510927931949734867446316441014525892521075847083934719413942725066902516965639092890357870174261833024010439725723640536814152016041036759344535259597967308318913320212061556807567032732944362692497798368249601176044226833734294115429349594399460687363132878376054578893703379262803047697152243066082822847590595094480716284702349189027765038084751790528405804756438116263731791134004293875499296543319983843846094195784864420839211949743260100574131056364742524898048551457661344764517711174789018893141810511947028717578566067892867294043100559588162285746960150768395704597623483114670911536844456330137169695966966721473080329858180621910358795863036094591874685347693192580930427809825860034486744234197000802044732864908690250110428789503480708248114168629588239844938072088201564653144540483496863483338333858332642789996461698316912601613076874760998104847194441958855797845437803957566320259934738372205595793014730432155850314639148653558703765417972577494545162776641960181393097322181783739903131695419986989858052849381272680744205546992134998751188413453706653515455014664760833594026389543290958405591733494451190828972370518644406357212561188281964113903176184776029810860983647450048494432856840962100700905776676157120116239128240402273087768581529688043954668064997179177060135550674807216602375791568585834819726521136969584489745005220654370581813315310973262364887946679693974996067384978783817389598335244644506132545634224370028578287946982591404127073753307917260946369554477907460954983183803837702486734396629696716184067353865191291958393199660077016050181677787964783674346532892925483398720400851543836416699428596969590477552476311361488640350281641249442373099939281575855232006832550487433890631138759931698593584088939659864265596594708820086984819577539238625561686867294410449006785904318703773190073075515422250534278787656322430214640356989748026823367135272217716867954621733605577051010224487475443364721766241341512724747832860509698926794997210467985673098835933269066808953879100397198144221311980285258178249549416004838896931281152106509868504539189279284594766587003224793911678456913672167166208191772293605398270647875834413894770056382121771022398878718999066555865470841104332443142401883185989463805651559638872283408935791125309399448607410993254245791503376791216933774907039506146586032240945454209285383904451611486903728284059239329199820649850080213586509116961743848890472247906833960681518040423454570233404573514503298271823152733447283854652639582725807526292766419728050004876604775464485658377499786302831645878159247867259341698379073843917684308670690997615924142427466434053769841179274450160043986298854874492502572837904971522368044467529875444196832810265049129011714246907336886821913182165011793707957432779850495164178208976055530162776573708899757930312565728981820070895207539688248939066824778531315945890330735434758671118890061953001091678412655558137225069917133974293739322726385738514017173572423291478573422550137421251932860022300534361897701934012866603726867441495503827089147060747706403370313667936173773901791187109436037524627384639185462378157175444790145934720892881940055176457296252266221633123357313014433180005521304151446348812620832892220161251331523691795416798863487704346919892577686688467278691982276691168780387759969378735547192782213611299796168463696708093841866302178114689694516178428917114692232665498343834884070162859318418987606553651889189218098482349105949628302508134652969122838761662395960841401405893868448917155292177122734414605027433194484253564220688335144998458945287449198120080580171563756110738420161977878916266685949211164480602617811471103115235122799535959667369868705402938833213592369161505168382833280977817916898667036439662152704304210628109731316637436434792844871329612499028069216999186335578872834034982283467034308884110799628191820384459433084434642313627078241434963888250175592598643437160182759410121336176217094656107848251352944168882614963848146859116750584070982162913596500656342939358444158036899209589517867935482763960548362164079268000797800429186456888879703333160974084194752567517749380859058149544034455604269157163606803892969200196580292502008075331376207951042836704124828949575556907472216696065127119480209211772352919119479184816563946022322160102412438938489307820518034979500958974246352786071726740900167892205599099291408978791719761109917260483008061308274676453529769714596936750142433929054513587163857319232730263198313751944382567265592427627152328598954699517558910786048019652159500730182419156107711505121514398502827300723467363344268162814260197102295986802708505887741681275191694030000652311224165173080174703354316718628794474538315955016416795635707682793229736879607897384636429277683381673913715006298053847997012934972479725163755649745251032371792748375421191488104236466864571698925092893259386785733115567685408302049826489158289462138745662737467511412616027457891380368727901316215464496876213094048609942902550359027615571744097572227990788796016853262449570619180047558887196117629624586837274659769670479917011678924425319355407668572146686774799964581333453527383901833601527907181891778729762399069769502292780100191064005117551775480693848807878655837810638523502480056339728514769256778656938348487571831943472565500660096893277696941821331356260609279440495129664128195625095809078408193340251941838496139753463528470508603332400402449432086436794308502626247429847657306531589667822563625857365040949699548642720514086303822020769064831925715847687758500165047324575072573461692217993566147914121412735671347059235503777593966136265934896648279044282824971132047207587406691809096556904409442708685456378202552602895001878060961149337344935134602132767309808810179914100273009906090112107209444534275839761251953903030495039062172349054958043937457677272023634025341071657652718475713780670892951276163629716895059601609169310719009006318276879135366580257408204368089162459930307597285652119619454839193615686882626711212641537547995383868141076786706845264239837255827323281301886388332705660591802485649985547768566592614120705514537768031337922765025631402591731450452476496575137296175145857994317703201720954799671158981430825594922880499753229126716658808599179868425834629082291698125536934432690757955983621742836974878047918485700383036447192191078728236528218798504411763921733547747708579885773123527608118596407706928685773135201063400932608047356603821861879067838542211279980979790293685850717918380672103491487266741543786486443286289236848563356581234953922633781945152403513242141099188609749498733109484649229746408156545725303833120279594989573653008949023446231542745429504504532547282078353411645412302243521797798339972175338056603802651205445991726661369456627174001238817935780182225964444203563309025867925874752016239787761947288755259657718967444502897351398223800809551158460223772032799146789206525456967814793964065044872029393731321374721455160482168284947422367644663327886420630685770275397830387407127969368860197521254490783558232231626497720800190736352844384392513890127044831458788965016325371783828371213485645845262157234843081358625295059747414418351463137038523021031486609439850113481606011784366017913042346657602410611208702991316410282340244778929889506187173717358715783346553732319037378257900365206783606603612173508768522968048096417680976442392105618923903031091963639931430679614437317312724025134713159607559463549798004027374317100044414110281903389937619606680044662871513884156311756126414091002296675153891966312783574973376913196709529148340885576685816472937165273502032825533824329703270867632828057786062120588153382956984118743135078955097780637092510086470942978585369710588930959332131598967868540293674833286930463956251776600984549718421429589193157083045562103931249791939431275584457011835037088639061215833731324506158020273866907603650026167632668236370776320994218532849749816096671393670466692222543872606367337814986827356953517087950755499304721313185247660663254424827825021459032656432440264942409305871686606396662448573355595278010913655346631600026944559207360699983305181150413201745498102662382157172314703518851987213840908967522553867514392345340883841815553333826941499109636449702299529935842869078295126665392604702320653423875133377605528230582251889752249900815045938376975284656681682406688854192981697094055290306687042094641316275969889146550948746147469303491886875729844116184128370100809147594530352915029287964425731127566911593705090531731616225425312577090039344288412921800354979596006675433320774504066571045292092327565204082043780082869224306754130783746941404886008179816783368183653632802891960369924901313084071582509517619454521221175482955223732017919925937637985791470870155163680779134717408845693783463730046056750741580952437537942815540575870188314217299174839774581158660316958752255772838851349545213753448688565401545258503547369416684715867791058740168668138836199275576450965460021478069599184882250462473493439438514520105229439926909603457779121425987207523581859776144681917754631204446635639746515806212820503731745148886277183928158519298368423985651659644635747587767544574357287713888791499635811073374885371119949265303181532411864489861864378090375216605015367782946480460305148779731895005371135989102515580053175076073289840326087711336381417191983198173182906594467268746385538289901511630846159382757811570522154498328933865521921693210051727630781602029102361003771462667398264674209236140388767485030485499658123544070380531780377432298217920053519333909771735690020109323775565285364060477221134298284789779456414457988605357065176373597172749249581435333307868039949263273988917491073864684152090518569265056154688543371402041000099867428160035346086067384838119277466094887218943367165873209332068801574047088789117453232488017013861866795680565406848009056671478646059641326717375974119866723963888959593489886569902303404863806744712956863628207381366740208324813067056827351134876362102061111840165285649463288165499642102813303174876699060224738643790545466934635831294047213579033979608798750916684258227774964732704709323883412128374646531444534248139742569791213056826787226623352532413416961790584941393267699502907521000533041975885994274893120826592564533285288717587217700851883190615706438873319432662316283472946476856718890316603136048018080401911350848129917057150007760357664762911117201487518234674539626778772032660086247844228684674469056741497671581847515294937797451047578213009005689386891416399432588389811902530794692713137521091465936250746596404363442333333512741307769901379094988863514943065473974658541038707377000713206802024182135625219886839802286940522604274454690592202275181465780720075361919256630301538624329976604655733385544477419355860100661205255640832206705883949626177732344147940287208965546613453113306901792427600150918231328039037972836038448083883968539851405497572411900871931896730838485721013305736572216843124674387528581447563264113157541341512783288773959686164242021789719739532392341154385061662702015751922513005402771691592211621889235723665048843422373125623301295153792866062681729727990515657556576461766772745885010680669802898942504287118731094317965186899922654766509849017827854281852603318149027277350062735114822730470757497200154587248753881613794422282174584624866427412787128224585935228239909319057152351589624681209411023847737516326122674172925544870710901165936245838385668067280539719725010507638857428407665710582341923077645636294387084979739674037400165962880102563901039239374663569433987670306658643646287490835950945374825612469494727543776525767424961433039306980286893613576803122066811309580619800343752812450240951239324300388428227090885360391868279612757794596357451628190152009762659549907899694832472853231754757286875085410678696512198536585805230392668335453805750505270844016920818892823150594901864272946394117714620418781375283627419672008237587965845838268423416723640289374408404212952830770210948510226740632023136324690138379247195641068960335658929797676166104476472224322502160798986181763699191680648783901961461799535758634179007751162475983044117407279747515822435793509194889878760709183694361085278322567269178435307201784759509925268175947652286092205994059152218685429316185124630942996053801451322221323823037125670253176009152616438433462402007369443520915429528462616474115328419586168702786370366225434117772849916718906510103874045599833749473680182561444655915581619331887216897782903963024034589666874758069992719550954462239108436230144329464881305344973350599637497786363199304825366142708981104820714127311543340343181327211671137087512207260451997161681570943584814075140662651321734548161265883603316509304230944944140033378164991273478659338313850821315184500513295653122384779345656187181203586884435805454660904420085272883128500048525434022872980020642417172550143828063617821581521844385328186753368289879673176617355489720772466477235876588239820691801335495693081726892841450240950153245867762187708479955469531962223369572523233092486091393041461829587129900723183794649791494909920205577515966397096416270243328431543943969390648330164891715722259886356012982870461284167146387624458551677063276271486847044319732703634077528073563221878999855031591542285861273134521205139393285072002414966376765428092115157380358323161652756349559430074474589818098420220796758892213146528093783248849206835923404083559867224751941784533975199218337138569778864328203241236413113234278076997269760809106089408249907740789145409662134307690227001973881437986467812964375030811590812340759599717661140072600231918592376925885327375621812134286246110743279717493251707256700886377231321264257383258441727717746324002930990540240251060208413151745188657609758093544241007667521343342308423771121781693996690569854696586782259967846513931977868527845050716685292253404116054718332195449642392068140383520472838096073029234934023802474738716666250916250752238985630888547108983515914508036821721481761106729547870598929785759969166506401459029951489732159000325587391939631700359067587354317341102337664298504729561412808112614473548128918499589026544532929027672642247753009184341617859164559326915919518649884320190633029272033183004100135481307205143205094196440906058000199724035734059173798255687523298110240153680148167021955072468183013133458794900328724037956381394737170067242722307416890778372951231549485471766440769388881004942334504325108664927159583977960188053934148048684792980257572011190529951312560726922258094177097347936097404211782151727680491763637555172218413987465787072459481329954117900466833756346978686655105443039304462457403950900246847348876659211442164659853284100815879990591082324200968864967332459663884580188189507242501016729731728172907567243217526338560563180801965821769431856010063743766449243247522576557585852457874580374618158103470437680906325580054217092887629080441177671212544028541819551011767349339074454223684094715090514471934331297221339364920274109505586068767832536943477815737519275500358022932905436630190307658864987242925269299273189977682110907202998826306709466307799701582506929340659012921078404147049497156785597949042590885386261256984864819815710982116906249666544623518965326152242574287843059085195665975397154230672574652701107814844939598282293148329087949958494645076729994660391299849221260537128839006511629401107649218307965817542708663993029173195410503668877890930529384193706340878968803504560129894299151350120192616069261712162370203331040232368275096628932560562964652324229673452344492182646808218967849389268722697153353101317704883616947003098440818290060057337749653501939738023372501033896573656138284505471982057972450446191346839046549138183241341187954858499446707656186651588146071730755346906244606399875489021159564409783228409691495517565669692130606996597847677285925521515751026025121618127414944933370365650016558564671574588875194939728702746819339583091960971715465693478456799267367658756258130920515098348052090348277736594927684606220791614926174347008235329360464865514742796242287019289696891135823808972296585127703471269451005047231561048710376220517990349321383532296360768048634953252650226141906601081918466793030879617956025899458737018428587580827202157963904890202728230594010146082857688944010507584570114266899875930810454054509094677362832716695440234680711855021335401732636075094153504016477881116926628680993595040045746311153208997270664401659147183881572561439925348799582566076975135393671738059740159773393304321724655503511356520148263023762666158739497619868117729942707773537484783932731646979081973744012278784686807230464305121591082896905983185130447351966445530914721950899844258846557967665442544285732429999657984800055686199423237043231282729521984049663303037043790599915217812995127861261720417866937661442331049676991526895854421937560394930157627070893977520282106109127191569362574348853677739656606165387046066656614086637427260038793980440157436461178339858808339521976666200254381864822323805342652121100130969344578873947315692396813645279302150583722840387317719002926071219585964300454622023871747048743632084490232355196426660563466512355799060297327796213606721137795043281930917270190959111857432628724542081676821694726358129496883790160567769215018445487551469772701471839129667561342979859515808579745793437635522497691892098144992016626116401193652375293307264874137330876634894519778610914125267711290537443533525192975199295998644347668453456532170665151896364945189583740951019497326279798613182649153087645712612945271869065625385521953194663638262127063543352379372350367494049793069724963084359951687288635736797686451718486135943183222700595473168346390538605557123384683228706180194229562933339017608955637438010658228206324148496924742073578398856180727596900353299813250159351148438915089103327372217474183968129510517182110640543605810014603382543560843357157202396773456153688375258889694678503597181103295647794697164317680035124142320231281158516009696287097288057895987652515604176933762527059773118696900596190641742188990207063899899673709140750614624222637213514596136020376605751657549321165872804250766879819602114531303224698779933126051056146786940029865137963814573534729889229966222580731625993343570864233335584428399646335389589533617558865947437493152107981660509550609389509638094503159292598990775721435174590558559438229262856957166081683136365564410482950238641299436740737447689932918108407645563041530411073069210948143400574869993222773266358894364399516785887223343904857424892494780707395924105973992157627420866958285373032777676270105244380855941226182355679523565157350912349074043828068764363683559246161334281331842033715575614299587012671197747515300913087327111299627847914608638092094772591707519861929657946567481691316579821453150816408232854937549748954763637804244670354155832337344097911774005033993644342993144124802534357560285270459977683353903695990170297668610492510239420937368614628494142106151222242431900620010426513376780457631534228293422038095690748678569845018763946420110959420208981314002718655844015618059608271774042423461104548671518768018658576829616571579890895895889073854559489479625116486787973515822153462780723325598234726988475705291724182413753279634934411478172124441290554348755114608566370030611516716674064630031334442432782598688169827275337927950187264759479178144026488519137342460839584708293222327977041385363876406239715012253161505299538535240448652823761557667472726173009863892122919991097168348410811687814585522687044173927538316872263747632482339305995243256879379263714941427813857454901384540969940653470897701667062035121565099277636174353917636707967553183590451706769078019610773437627293634455930383163451060499626829696482190343366061550253276638162084504610242623850876253176095815426372348833666838044672765260960790224891521978573783608957770631431402785135480415459141954839917603906080466048188303732924837758004264689843393106532449168356659997007357908282598408184720533346467249594104698496392958986912441837923218446405629099924202653315572242225697141010750068051903827891168561565621197811441874251504342672777354794650622594497702052367956106228331010509190508983741927615667235705533667005130926115678901315340190284007535229913389955443412395677571848132156002314233992283443857922184905520763761003340824630566804232736751707240829855480396171121445078276420832013058027629278768222693354614394415705296109273438688903682177101561954280468715054843938543519126710298855437496216989929122873574923390623384926373429488454755117115224256818410614647190994764856301647063051658326901195286623018633594123030406059101899927855800020997463172911645639698243369107901094934189024720873873576815445846461049533998923900212113521834080850031651852469504475816510297735062555016582074832856365749837469101679541510985986610046220601926279662753395106710369788367797429922962268385745402314245655713203220339420432779393098366958043666916500368032073664193653181464727557449774193437374723392588433370232103652997151287445643815529277413765654926657817134521482066480788025801034877518155501975003706577731126627253050328502787205987123359956853429970600329861395307297494703524981726046796330658942502020960729748628328756266839329084437356367840399204439614147410020048748360997089268083285230506683416310152069178297075560792732235814744919447297625542455729010699998824849190144282813206334896658218878190079136424197609886139430497660680521457848210454767326722157322929964110637875846836421318034650229546218840847090565619961592596847383553794613307354072378824913343873904842214263535786200501798980041561667205116831463773382988673621637002351401706581732072503919147701447663330706868239503330569576629552050526306595002117756453639866387231856498039193654966809415837960222443798122302415560071680195597674273400430767335394067458231809446625570331251271346093244052587763677372108940833398567606058942620133321688966510482265718655879331576394295513203478990317968376161753962625250082110136908306172572201732302665472309016739512413879731329065365465437714298729050009576539975387480157625528881820570102752588695095821461396012165208972223948874308035798396947906362434530683528639686842189993650671401510737641368031718602918225976054974477062874581329359390923583753287596996214722318346038777561701865592930622565771116270039648950166993438664969572926191078595068061627338351117136607874883736581104124374535671570626044706741074912091647888952844786827131240402472401414118222504906886549964697797490097389874408740328990247082143448968873431209652909316645094602473832556458865545050841154999537329567852025675493866832504821090684606057992460092740414523859129180948521107061637344429833718334530201652925637164683833014227473222042226710915499499416548303211608749929790572548552401631566450317303979413401180403486735487910442711795023936972914858327574847675991907313392394997564655323962533864890153645011173242925966001022532820163807871215506037948262637184756091588975205727527246735064553245423212391899945167645534116267665355506677942676664740733153495234618930462792594435363692231979982943082488862074864727596179872200321802901047147782988958046614221563736407454712471270181197444106996417111923036792884804016633093377945438096262909188961819049724965796649942942483644355883363367115101101225171180574377898306541604551653571748037699060260139974886367844719746998580688268259245458327418890748815784358558488622449255473737392698448188553937590453250948453889155251975083399573483787415603251114778144671848524126462043895441491599408769808620233097312806153408173559403386082025593992960501473076896913468866080705485895918641308538147947655720957184406396416211660097600340971711195402083719385836649573611936091712196006503691426065726970885422993878981870404566566090742795978580182459737924311728993619808777630140440011022137919971540225189645085107695741768784661982442000048039838590966717258918312837752117770899004577528203382493410312380744092667328035685090397222043481429645738002734199417668828717768260022576287919696403816237885354732647410550837965739016979627235009708027191224246808463145654391735828277600645323763658729859333631513138265604827025468541405059820846295425115754942880603439331664449595014229130989592541237591782141028570995101559855906060041145407752433401935776025492771037296125110083514687719598203784884781742500652755099304903495897298365508969986387084099227827057186798585733562980411621750062314859365763394723061888470470723314888790193107389099760072846732682227553917972511246997611308889174898408785273084793836137467521535364150342152995231354891007121080755188003235072073263985372098861268968457048937952852943024330063369613322660363749547198180675423627697877064134965129728277264554159397213172104650680020946235829656950388332005731552635154105945881817877839314374425323559726486515835185036347742304227318394207524085223317490604984707617582722977690768020231439158840675563358054196638574955539393819897629920064430519852357522661556678620581761898654918636528368506717458542001194878860033964388082057000601431068709783048747414713934454369389665913022032098680372284929356580221681339010749094917907078597968003435662877693063237058178713748658921038219576725787862919691973988357290821579328963063705386924087053687475130247214358302164077445841222996611863897534355662279323846894512657042761787933651895838893815877745962015331810078024012423191871664202124968687284265513177768811989601232033274287599885161538109592854269868240967417624041819083689855633602472801306156368477503085057237211692549140943348960676052157500530362647942902764223838803971965811064878772346783228638501032468932559227702757204524361686809560527845451165815005487694457045590891195228644691051209397475762959003212231055296478427769456906632536001621524087681578618498336465212431933138708164905106351539229299094716822540714566893555160034623434635130056508116149591951541054061690526687821063756024410443758976724018858999892677663313980107833838110710327527992669722091016645923174001606210698359614334071221158395668845963495900034490885931306020080141725563916509051100066901030717282268876048236816374335125544791131841259772009873998662475655706344986665380196956857547545319519738375419849840352406613443932487484492758061958401377964062294909377076992480627824168923859394980434336003474653602540102312789960969637959998080313916123322848256030355186893264755108907233586021356315434292567962033029341529156720035849595301481842295890557041062616130144295713636424082761868323069003874969075706666977696589757161871152613707298075300294992038562452343565317978837188299741605278701778452170888983175779586631024096900957557488050215703121737520776717239918942738307304488446374971772262771208914297525820290275228917204310454011627097361725865048258828703206886164083804144297734340267632136496094867703854273359896943442948999308825532091324085029327296070399158484892008955843539943524528845791277720209007223452935198947068662314724134902687040414807312711295542866026557263468687868554932757951476232258532423109164869790195005389095436304248132659150674131755318759210834296140247994838046538066231491958912109759054526794841927705739661446622028312508823523921525556175566768776882190770775228722874454483774084376691168122153179481918590895529320251669524453173603197893969108251782935833728440458561926704124273740081154823943825040854317287975742701351888697488236257214734620272816553233742857311996154494483116158782826468496581216397663761882361778944909796708782628248277372385173265956276276202657877341568246050817511203417845715621595704471195543205314861683528086866019594567863012788621440211165993896323274086229138753403616040202958833630312110372596909922138247125621113390449866652364609239471645623325030601289646006066085786934492704857564875477700242862414679227650610807252959536158300877576599578089775605712942864459393013918749688096291552843710840329959056726068144071395597055425835947781427126072711142176033445884837726462171292056198289049474101980723536893090368625939792412645058087367489105292486285569270427079979631291261291413591558651045786047544535075793200316598915695296429013269571565474353917546963828149437781840826448268100220700213160841969381008743931914837819153903248377902084198264690896255231390394846405498280814438811157752036251376936823410521660340402568559277456287482112852860658460612328120870061331308685939222954913577036300305424641938121867846582197162454966574583818200264623129727505045122730190676260893907801645203310739303938482528484287616693230798745491914437251672396202179805012749245258939885594429016215750529207027052568951676020647886394162628382815530961602169624518463496576861415759259302040469827272734471920243567517081317727218624494246795728564323391479397140235831508645766976027199573522302470487673928383590595733110723096492327423170496483331997473352831100059150707990921514415651352975395290191568294431358966401885353375658471711909501783939402792210179889967994925027082972910766914633579841482426789870764207126005641291591307405167238795174596529999933263212492156153196445359338259938308612562478603337575327582211259811095980617127401038666691834686022143637898802619278061700090607664522908619859170354440196477225163777416462868049626564316214143459757905351474508543891919610363443067355962380842188371712307937382877820229065771920553596658045640580981902059046058781754478117991477548388132041791743141925313181744802718441049951643098756538498907907742779741454254902868483245135204752943511868551166665005100217330249417643054259303117288188961824301902488589257511321055377939998427433307962038884957617603921392404656282774142610483076768885386866601822632380118830546735303205843944485791881930006826761187590769616325448503007021937457531939064354740168496287813693635646158845292517196086595513612597621946715436832056124425299740456856701475321760384683220807695015420833659251469853400167069783157228967965086860467862522739229214254979514673585055828043396019894833066777765792774025112536806335806201272124394142700119835116900954090321695467494873172597796629847744262225105362823006501756755232619220593514538724455917678492148953173031881848393079773522419232357622575816404610906105466505507808395245850218932905313510398599614475158257935272144726496537850944353268995688475093650077635946115806643369264661920417713588486575076400876477961345697793098162704739538797667000502262315709118800541472202163896135753488870416723723635761764646899903044351226106565906658372626338894660667560977594456482892368188860545266572449754868057026732937791617769970064924084375312182745255080521170985522780377506816754287598572163661525729022657150893360241915107920225226504579338697163695510206375659884301518061702263573742323538682213797906879776464146235700201905432784056935992940453414579130133711854493319697715771840171052938778512192505901657962884925977888768183529168482321572028235622941161116059984964583246451423453722013723570292136166534119813423774170176194186278907262636171168386578585606300916858142156487832318078239355252079469067353122942760037373777611532534122674993940295998714455770911780672719961002067060336366715616030848249700952825238076685159599686254584432312141281835530695668979467021546675366608544111163046943990662139283983117361006109562462445928184162479382564307200623591552987711912898994524718752794266024684848713901870223784699508794435396786124559669538142044122526669811007361843754541618787261511363019284953224122401830510156703562327501190564965955852875209808882975169847730185006582698490365696013364789714545684613901282336590651488523148177642543350898082216888900747487907599957389719499170153535350378003984853495129808700447947768154092863535160654184057838892509499889981041200452266449102662570318059332309596604969120767317718075085200350500567642962807577025673865105144773401277163159537020695478095289619417582376460189472036714644745366195723951677525911193355770292219470835490953885490201231537462172717677647539721777091785178641272859587389039278912423925127553488986738991608216328076186267561944383592776813862593386298333903406429033421920977743454080572836385058379569774744916136859483035017388121489355762824200397086989357930904302034853797622722184208341989028672892627620275865660260670861026506254683510223099722267049792080150151438151940046822225658059012182780714292320301160031807421179050685017753593441338028763960014028438429852850288026874897058139942115569710545993182002438294212089461530480618339745952299280411276874610002677067749416067342197269051163991887163854440184083231741362318937117039965223739241056708864344550295723403668381560746622074972709000556885704117453995237937933249739472530985216007012380685516046540496402614617774214582553321179885868318598309274971279416750493094898891399265946052952793848039667003616540932356340001321155894481274149831069591278391805160304096861133187346780571952736543072669386823001929848193415029077277644309568810719356366511205339123906201769973679979429785690279572408770697006419926555883213841279058282941164125157120112964029323088487492461592033841325423580800865453364832067009415493394828216933188394737672831701739559552011574074518843924669640012373422984611819514735080585081212740466413118539596768811118682589054660210122982231146601947162782024978942513422840741938243682710940800355268529310264248397419109593880326269315980497363270001889006886679701730434981089451020202790022460572500270992097900123580588084389569738307657258344969510134800329858352210229254048206539698695696970025939605331673699769774798692759522881222974533950028421880409927492686918468609549297165898390815349438487624218948394337209952989347604387265007126469689896263430717577334122364360423247990250264561252041061062032423306213573599380758829200613555451567938233981851857122000761893299339544532370799498075453448920090657188527815485603682036305482732260132680939580280228915261994136026889181824272509121787649480921952502232087397120655172287214470492036198157252074228178858074444199749144997940491467329937318626605532725741401965870370960984830120314223630449975130330436139672645810215166989099933175010614607562059315243543394245467842134740636410597463157130926566878940255364568675654192700396015829868212319350407676323081098116607357072464698261699558960910103228585259703818706886801452641535449759300329598632968013519404603861862088717350565031735571223380306872875020533245588399262813525385795437377523675663159284414969849116605869019475135559523592652200869429811748582130510388652455519162177635257631223286718841818620078264140380975430284355281074120089992718514635130854321868797556109716386035099753026276568394566435008609203456714562526733618392142921206389415215303526523673650320222102108003876149859194964054814280159259340899910764770304749648298804738249513244499070047023991440715048815953590345164355340047105782428015601530508584956411892741603526139210837308721884822446910169968139861339367176001048084294076994789109354620816853444194348946328332176985623716729533257453376249104998291751173311404835749951873456924354607041350296699604105133338662956103366496215014555660008912720999544603155731465825466638970794938743364859400961676186699622754906604025764084734166052596498806098270234261605299754778029533671585086843235113630465428900222700321943091938178538807168097700103671366678200763112413836137428514974624210492306470370732518869735873421434603272123380755861850189639232297227648343373292423340280308909825526008592973340198383459469458483578142962335935693413360825338078380074858976164553567729181167583287106056589764965601220053345794578694568541870505076022331586376836050902090368568541053892631104940600289412166999673798048750566297758690302049162062401061184198386685439765786468201485398304099787894111045987707028870434739597778143452754282466426634085328562062286089824655212986160895482794666482677999310656328194725193920070683469535410308488945857537867487597367122416330072065826697905333433427647187144214441939533237419338612011998270549462766355997124223698905420447031989901514573795271675543135946901010865080642515651845295442692213465745074063942848063957293171435826357282666731605079824444772473331534251410273572247187349970315996738065447470643394554980937748341217374672057350351352064217008968711649439225007272207808872762893806015600292979324203184528533868425236526436619009278626450114784862931912214193516691123134414094731025309309546232526951246379489605142972779897409053015227384750735022176608467370951731708583632186936050901830412503746890639451493225065800268658103031780887607861396500467697699403807359418113004638534333182055233304157484728969065600817651172449699051667007051060720980995081378494948781742298450234134973905157379630673448710478574875232591990364726887326976243312655085261992592096144233795185305654261373552259902531315891143513096665549856068207421859738121075117715536000228677588481810081954167765312188838202721836351812953098161248420098212541989537104888513886184472909107390626227891979577938655360323611007313353245965564971461350110101525336178188229531455841668001094076725407213348211581107587230683853355246755051222228015153547778433124206884446981012589046548538867877253437688580041911403870062703634225072257698998149638705529147327001311809515835560248064698711141053975078043919487438422708920357212229059338873153529439771087957407932280749675531504124693339365154125726821350986821203789216977714260265069502934867355794343074878242466140863953149027293518975783315610478043165632613918158013803376145093695368727146844214424934556017969224499027997723354847790484108465740946410325107233555524355373646001532558134114488776567772193502245961664961664479549242688473737973835920055252005739249474600600006632619999538864837167601861572477943120754343739170093534950441279887716949808952072590432023220945603457593889723836734957437553826260444983828909399315918162516113714556461103051557510465702035286246630048752166163342992111222401162549906913444041265281781690486926125660619338730659779018902331968476470039310249607711929572179242386485909500818431467000120084884769600896373745994436016549190142241775018493384079430188202109921505366985205143292765625708531772584944347416646359258216327288526790550753917173651878365913283969869274665822102527049436480789694591311064455000676551031525274333461285923229615704109232620733507292942520063526511728223353341885538786453709395706349520360986249636620805679251044421149807580590113151346481430020036970990263401883453574922551496452997848411170142634132917645188970198169237166530333580406977052380379973143096259338244791760456667320553326175620675492978527563917767265791684156371042227097805582621414562892460296582960694907490513393842908769758601053978178372798808881959483384288554065877832142142685148321890260888541257890564115822308381664378047565003234798205401955986134144645758233206618123958331353250343740573728555732466904900587925321436133114532909838174178771552285932041001290488570431232784618544580620873838100814846192600949224365141964535201846835386406135177919850909459893859391863381397121164340101406376796546173998474708677042247366922324655102410719976766538360810490896298265947404210508091613375748436227964374647404885068619756713981565063523493713495524314452845001608081053103254056198476111722404191323663078403973775610908586749270311162719075282042342180744842822490838852213575402404791169353981037954299841883544750645615915517264457562190888477204147746502339214574826648683787265829011126601369617534661133213411625325424470013941379902091527650862767968428395568483557830425482020307104277134315848767484037927323821592146909374935048335656418915513207561202393506470211149703746194561473833858779634480662807661419069397095476906652557578349572177115161326464926558478383980550352990161640287252450948531555170560933661617102231643040249292410512192012829797946150047717671786907613688166956461082996793806106768550175082145261518106021381497896859507663686937382088281340354885966654730588571061021354867075130368695227461943621936231096461366816224495185552236225745731207695675549579631654116239951395915408069123152584270040749685797926431347427536648320136576209062241647355794016163948904647839552074414708975834305884689790120345777996017487065805048661906690168618402284802516757028398871570191783746930386774763583819214667076914180900853358420003884938588658558514959913835700523164726611280681354763530468660871882561897924216034764374996040655355912664071813071365767130127484707585900338554410902247744328543153250247902800761045755295477278923761601714574836115715515634560778608230601491818263830117062134570481510702443236070166463178577005674289902874105036682984921111135211158580420429052344770941507861894970318073928333754234178346025824844175667182066493533798890376078261213287126838405239048497504008621229230606207575379495951836282193219524840253911646810459122715848040558174841176880778761835865946488000628865345993716840247365785437573447454718385123478539905067388852708115098857710301747403706835635079327739464216350001377737377430559837440228932296417512180878305322393381822458108570153462427153010038613292014929152404781467251930185703521740160130125225883129063046729904418854438613540417135922786414722526303446244534048767512726936154871757914111814059794279571312673625244940480690152457693412378943106124254539236441585538575270635001926925458042285261858336107205511765503511368208824730697022980892831462356132849912968588638863717286411079572754967985033791499768318567859653189932920500332555126335604237341363641764948769295668172514647599878672893905215434953083366149856565503460114961619801686876376656407535507470488020679433738903199499912742878427164224964409263946781555081844655780727088674606430766636640795060340664784007918853277196275775609495160483223074580022775766416346157925256113845127902303066541578014245933242781505425221417452189477239225435590138067729832952976940708302366404578702782580797716495726270695519959091434076817063969027329675825864761063148705197487751498954473034320043268134111933046488430489991260315268588569131417023371337390859942859566725125125209185064193569598814721467002659736851010655994289795712844162118708843526349751249494666161353921410658779737932166893226382823208778691941871012559784946984325933033862674347870900149777266993726302023922610802667021545209725535218294532858580550262596059846986354872187731884319016085413386295509514716555017963583459699909884477117367164503048886968819411665667764824866273097705944841750340523220483269505608053599329125930080183612374815189980456744505036288452951969902109681441184702806638384548611838402699183265709850202887141443945870704414742416734882468079339063498047714237038661625822652473533166689997883509269613120830198457249735831065642526215188976676991865321746691070741678253906357706760856998257084839772544269407292385804845740745364794042419097907326016022818835660310125412481064034709577731468584387193752486187636707411663800270367708617576127596758967806845763681701833005495597050999869391975777186007996884617235993225018539228146845366518215574177117070520795008845946274955699122507000828507062448569555401041525189219506689939129904706987094068946669152606340886051282957366910484226352308750285933808945027991554109275810390853378485885033766268598997035618999888237397508323004076255056572353541971337166369968071082747512590662052978712902561008598112219238181048144798730874377975719126115557496677319979548096810088761410646323132089593014379004482743447575926416382605089199756882562130641338944876571242036602014829303583675406868419925584793663392881502141421398454568890360279484403978500033964406850945163338395212760481602583709283831089509229638232398375029805458558079629864119449079884531186739571837475825979178899592369455186144709726835110608506893800042500367253702380004840191244481214409914652194156482539878821751339181044874508083062508665141313083240341346062195445891763830058990649087953114326622871015265420231164445650787909802664769250614651949015564428165355651165143348012429662031208739259242438989427544359135619840686116418987598562527514172407215487594000242955662652192758607909352324526315952737874809134888705981762794377418696051238816546581484318160145491378763341936172799932471063108230748798374571406159428036088213202212608793272320841673180197645358850122765313166371552150425034463837754676543389387884323690855903464371679626393095311912556476665165335850474387599688756932847301810573146698793408725431930309132759424626171147672235976730458693546134453590798190144333024942507254504556137701790807867935954983243255347613795075188092499970612484176245869994614711834316126370212820695670135764175555630265563703750553489596814299127852286893814916383888834509219753779535375409691386241012806763502837654369341823952647894752642754537003910857062534540960596159244690508811023714408170672076453192794690190233590709664598195544258923904365348287860926486096850628931285319779532722424943411931042106986704071824084108291050229319676324723685505111015772673491696700513565881152762748357886097537526181618932579761345477550743261750460791206468463771474557961679416085361996392609568042211784670267383087527752738499526516325403963302948776833696814744536907029272311870745726628866397108280678824463904215892576145278745562707160867345038436797675679753672317823844053998212086909017517613240453281250529997274130405230454648301227366804823913543163922295740299490015259762278727654968158871642356273600578693074533598775259785280498995609052645073144005760817642454694369992658844018514540192096604013663980734542677526976868816626821438764236221790561624952972258362451388073361285035493553699471652590740621202793795498582531788924548735313286197955337475586564627098266049915084532478048984760907643520712749852678637210362167919308728335100861178372322954649245662874331318743384175128488836145827518936267676413021469656581021447651937223129791799607264588547955545683945896822835415861306018195475453161540636119788806442807332297763697056108152113666304003673860282185025685493110945121650752409479142210796681857732182764877716697113211316411125656387594952914036675902634600161034192031260256355250577480701205828917900474118464987710976680457921123085106223588338249062482023283398305631312881381315507820542924065401282773618470086968281579873820884690834521960101168359579534162143162130196595254952222924801748053402386660036580841515423125546994573165826942245238784846792440646406972442236204145896420875295513338835165951857020608866220884201047822436655953936409116376693703899817582808653638878284243802425301476479641092797260866324839877184040868260273674755074125294039942031292749414188187632739127506499097782337622009776262876116012584922024154716938054043222809434277734342619239255228140970754316372601202711142789842710867324065830092599819333252005442363158253728328668918580978542102247774711098921049020925461202101232309808017031939648503489869223293703260618867170075620052267237458332987879873751818938450427889784648672034414516054769651850917030280939699646833903463653478004444698307241178264986373795509178875406841259828315873849781053439228513087652061663626730817956246719966750075702500855218436081728724787023119767926242703611874866303825311928133363178536237909598998860056200590382828786265787952418586109421561982805224677420155209088277932776131649517174983641721952086676397798220087227188768301057799885795881791147635784798234391889054396285929182177136539734187520676304703706926623123444906212941929724589557704747516829082964476122585292421585568648973172954631145343801485080718294469414672359337068258016463578860140827669410102311191685709020218444023417581029526876217437803020556037163464323233126043857818590838399228718693560337988960007374042789859059016951127656408680070181812559932675527341855497568764959351086506474614431170345450645721447908478799446961747529461581780860894037344549441664150081742962373118046819206417633339474111459738363704341487135348051786300583580674268466231236550510498053688467730960394693860979624543143068417077811235997685883565836477393620565338647152815261207745789893258416662996837567130492113554411027833231776496929861962862293577674382090019479084940799479465861805382728671104341956085222273611022599536647611330181171049625386828122860148687753381591082109263144681981646058455051623978585666244562608447669053776593323639538162974743046832953173936459200547749934196935481090217640655325273839184358594688977050202455379061310531605316881333989029344171844218008237168252885134896281524279570656250910585876361372662683357892602936757494328108559112367822860570047332823627621305926999506540512720197963230387703282051449731309192876578274066603789774532884425780035566143007456593516134210008118819024617277591277220211281391164649316345717354099846777433720675958168062688164968552573356428799550107751497641507884578101385768025710798814773707498932539536659525525742251431437133862784522682251091332617574069562389112289952050279878159777400070635543720317783833919373339418052948295830536148544202800776044854353556079659537268542531946311260377207466036098559917773596318263263822209070478350209905086785960593285666715579488826763884538546716251271141978475753274662612047361498627987146692244307835182649078338933258268157402528595915307101518579324944122849563236093884323774847676926207857004517335268536246306772328879885115157694105400254871646004516932780818439490241103555624018522504949139842703060492444327182688485869499346629131724991926620576524864427413851747694199841260629384457422227659331948354597349357195263885574529051916057689830223014948629464775897504573656479687120844792651923481501457894090879987103629410709368297025506997619726703932257130980660633310838286178252458597123702223845602858248045715537753502331911741524844502114036897698302274315182960882924601638633621285648447359696173305725266105435968656629193890105331233068219900460672041290087266744840574199901231986298650773583954450281925381584433281180860933579346202502087272069021092274916020052255497996742066234215580078680533652066089302829748883164778847930505407020668705747016374105787818796237698270692465691454577977508822083540508975759153675046500019140730636646282629287959632975428266477781409451198593349027980124517105275971988532678428294666093824413347398635245508967942410993659022886133792751572822182594372140560977745161675993030324563168952156832263363650083185859414223224146759777555575924329683521314145197814983419112100950681005192035350443588420492124518959228097942718747226614467630590740765459294413307848272111340626671521879431531889901641471608434372064885848154744054608878264603232541612796200278119576106238559784170269854963804884648563343851393117630190724560245080189948483865604778505917724978757530763432525772818214264922426966576197950845760379276234615219520022786460441921174334670125054150510591042942305036215291741544739647933066500666133770191408566227661715142210805794164051141563946555035346924383680760246325364686609176611031185512956618604652551787139681414287528321386079980387071882865309906919567557613721616125079899427727918660925278120610368486759221674339779163047363674841121505622715153608534476457485327417050586570270532348083391520020858218088561131403150067675311051948859426395218925092232417095011696718379352642921882050735106963139744195316976915460563345578265127119800109666258089008500721327200523051283352680660172886603092489924515634482082428409169531142962241676897288372365477856286645417103592272082120125838036903685796810843306005386671760459988651417562804537151560300168619616443326339883407414297374149663331268656490089050694184213390003978245054186642147166118376304743585667713051311710743187231380732308609703559424564165606919354132807573121691624404097509576860268227817571177772372245547769259061526742630643562045119707146427441489054867967063310278601804777383194373440561607593379955539742576861190560429839678483003430130519164817001171909869337884580892005271385829120498649613251330215341773550850719035046512731684025734836590029822420042755209324035738510758346918121371522401907084260975247667036732875509560153010953891815856897159240410659953884325283812119377706972227381663178148806807051930281286352454375044314239896223052933038833617861763593818747542819688778503962999376105238260439416671025742346829995391494299055178795616761534329598937255445391173356187242189961489076395219506715420261118989089224519721908644974219485230662552185021372014229902835925879804092141284842910870068566142735794702514753820448601705822833373037928698462435986778490611025616099769386009317295269780527076465339943744419253117142901109819129427363220534159607141227884388078936115657007885434843858722387238846706142674948155885025859098565349985189669890953665775068330347692083766163090871648877396359436033387826760656605943486290353534685708333542541907946322819417934579940060155860619035128554313197381527008524853837965098356360467116613578823960433049612970408659458147154688878665432655659943601617467366975803318351082202904556007687819540756686527311170362660009606576806877481117992552463788427404607843404660847154082322356410189936514973807215446876258335527385077847141942431023330776888558370106906205457041213613261008808751527951260498673057094260473901438273844159956478393710729341268797098887929007469407384860066456708694889437180726910413048026326522018627687017258912863702075317649774866216061462541538833610109291902377350436693280920099984354690302254217545921036140402237343444074493737023613527018949989280604584853979251067975017004222425928418191751300047740344214547806347642501870631555669889605429057220087130449122888081657220882877683355127764485709202712843339636251567094426973546155850185741388344765663113624865468802095044549851100170659733988126669173737105797999752305340417569007076344871595600538540651248791251169261404968248454463391578905633987716438460298530069691880674740285046249367837693362845937700566581725270159161528194086563260710465310076605135855644739120442403507890060175847058150487764047939508481916261224523475472919272736790977393639987742833700337007008182441763452295212694634621613484586551406261658189336158072081573311331649098431179518320151897635615443587949663770792666891757099984222355972526336990122733722478307820550422962794514964746525961589529714664190733803160129056146894624711137710985850682789793836307863104237937475173437206540852236699889830570143216059286721214680604110949967387027310738977055566574878204067148571302024895078581088810082627015538414533070733706235728908929959173147521905340990705126698200660594820438601897946325974624195315517401680882921827964144379515354541023959824807753768858142863030406068143155941479893071554542599995923424657008894011297316074876707255866816844146625454705121398848096577444200235593449330757840755246225521631384802165006301013991972341789233922238920113166892852894207635822964594733973413028960430822022167916074212715078648617892093823735708162039063598713649925211609244283727080270890055819241274700291689226172810708404137854167193818481225995623374293332579050958032415391290140579866911410586711892081924433265705532644343294768518899864304271781567087388843272502764896119902723649044212641091695993644650606492299156749921299916442286404343320666996824175613688015614659322720552535622306177694446075129416205777920577677081416613819711889338558374491157301523741620960027783920939133575032347376312455159913634457461150645824229741512105850592473042956819995527305333667608650511065716094138920714207664780572309994339448098977512280390297632087963357161490344122983859273223173407005312652369590997192604614840655338621083938258145726218984220912738737179944037953405926976686113273862083731603290421954295740476974497695874096565663810116115726204596507519364844884472322664872750788702127416156721894251423020823044494431285635111440175607325072731179701982893138899735135262282766202417966761422013438021714047518510799825800295150871827567325255111430711215516643266210436646742776395110468881644627260946939138725580600240043885647996988239637428372553600046167319985910809530487744013356069973122256593756569566660069530316003683382977531113423898312247331141306261822063433507619336572343183106630808170346215172965779617338024149005475643799560571638030316702815848696699806506205546754408681037276620429930295463561365604396262769524476128882762265716887256811296207136485248130624859895707804266255141348103719753893760495342781871241046859042575769383242547847429576473199883015501346089722992489596205735190815636490293871872688056400101711217446058474266582083768072597336655152743694491817196436222040956533362420820491224033674771192345450984509837754561676294718081488204798135046352859458728994490274061564112636527145988145907513761131870115836953816424840348087001657669443560203221247959623606011218933495061492575910839257787212107091036022277820089588004396052880662045272233039445142046125491541818183627858147743501017987198341852552424038684994467293737373766322963710203065615919049386939202758202802668958132638850403991896319284909958188202632097787560157508081725106191730364540946478210528869193610592364469796971797229439857659570551692790791300051445702406460022513835985075807019407220657842246448153764999008716273791035807276881400138574872539831558183851771845689397716236921667780308490843475304072645606274250404396049394379827341362330548507823330407313994081307676969377684117544235128997663805860219077806723081809348225824725120859222883190029833850394590569855624859312279399497166253042988583477343922989757914333572816616251720163089940446748775110291058766390660157657859481993850810465730021447040175159490163451636439472524760862645412086566060163465845644832072167665242578135697240826827318184243456733009945489976220879247726978653311139041488807063025404593857577990518131112789923401824909312828671749397142504123007905781806768608655699737947269576160927361905183385867156415286473765243263929264263357363676417764648723208893652451239809557621215249902125123163267271651924809921826301313539218896737594848479856825350235002557128440299644998139255113165588086015002755427359514412415592611316749165295684747880934397096947237572006929399479599276341991520630651132660692061655907001278458238973264225808797350486229133558164404541663238283425863948972778429268514769168314637554163038495877443263113695555540723531765752714635375967930192951198981273031593798089540471024285516216565591160817341508235764378688612030005327718909336550380816203835405453324873369507844379967534124574201411170950824751176129747749072885268059764501107587418998539349016062552545080506423407390769436058594323325727142104386279924272705017657641043241162671788832652107015658332257758349693504182136862677892183077456351028054767680982552468626012928458033500449995924661390155608391551040930286625830893430552470843363778847128587613290450136185047062171241994404778429005107845328779441631147408077265695020629353348179462736478350752449810390063476813042192579715104642247016138746284016190174265593022765670343174540085591847952966968216559966072291711791026459458134457781806658381524537196261217266010184236375818233244314701465498205169278042245804374200370682899165625822483864834547553958765609963118261356045619814382408109593718021169126773271481779761023283584031415515589717227503608218049594740662816942097927601271755100921332743856245811213372585610245940913573979505886305892114065037094950854169661846508684734974687813860908639558926832640626363937317172701839843208135107893521779175039271194780544274705779188482365726452189556779948511430990533244320480563429695741637209096755497968536234878040327475536296322444050444910627697247765885545192012955955349886054807846623317081808211983712656243409701342644556221019795996321402623354402710550656560945905570746963697520763751699134684975546217444859919135869491420567576546121846411206711742321244882310438924977263951514187164106642392957138578800142808981801117823632380898062731772942217038160451468336641414893418951566204079237324003516926638091364927545884227381472275523594077741376535904879930316827740552718552884954722254903716654698541558922145885208779460472184815646914854561147380467324384606699602948656733390849381073188135659184178016905515591031774035945810175196081000670307952287467238420157361959640292059770666054858676186058177945575248426215675771041597109263418372073123634260357779337159725644256841279453416580937480339233260757072665068493904197764168953450851396340610212034780778307954331460900479685604250928816839610010363653465955537447666726013145781570604277965989539032248620642744139245055675866996648421795598195214392258330181880542184920059406795532075048094685055300188666460463727132885425697441171908041811962853737619978486439376344613344035613599368807579591097595814284274892973111573019709443117965435638333033569695307288125419989430009150583223438928965576687972348148288058003128705906323650791383624828187478861992206155994444238352373235641467209318554756305092592647350138716448430155581741424278044548283697770442438720800525634311412375932399997184826454470334198317694287241187014170366469385315516341848068029272337042930160025750377897858767083199012745704445925331678977846874959248741195374657131292561133635775258054600161914788613038823411151788743316936083320962521738809195120646757581475528343897618762300149237465941490469914994390485437017780306995557378175943836166343549333602599764544603334732667322449397079533376911799154379843003173276188841827377987885232441541230940713672862486823584557075254202804627374154726660375856182102088748778332027378210155148876073598840622771455312418020718262820853591445542708696158874117879096926342216633152810647598637299057189936877469164361798422232176569807221868964747304844760373507557122808474601969425508285009071881138582197974215785712368933525515324767820603556914841027309623710677811008976891134458380916670169958015073937295864836137651274110043487562546554743446967900523909785424670533388927290960823506445983045632795159968417061629886936383940391405756935368639739979401509366265663576362796626385491148381842847688594624108448049847404540016411620794429418298371349013638197465402447515430895172975538755746430094171096630146706249785814920351736340276894409429153078857103357936769729548058461092356808523487549714650313066708264723594338727085587532650744988016033751285911585085670960389913522610303160011134468995889633257228447666810610230191207556899370521516845881707708867351949485525375901288610434267083978731720030590414077285175978033764690481734701823904109521709296054508999241551783157270353653372746864512928440600331012534441820872303816266381040740196569739167802754023770214893046711565609269713145379915719890199445298964019494232179457029316824762518220228999705568900503683310630433610534609110800398360169900308746894994161755057021271810272921340920755790007078756508214174991519954944222282538690878998673094055510059870718547478504484136858145521555641591621263745166735711162665132167092345134752383461424777745826406976217198277788078839997630453775796561890642703691869148468131578230675771141062060886162451066492160416883938479448633781414167103928838284038156810837189528317726694194843909665072013072535254228335246487115237524240410092917358098580919379656998921096036976856050593820795543188849893292781259792424670107055635450814069121995112356446470340951375597435365609546342063754692855187511960856583591936942394684151096213391176410226396475206314673407542896960470884931231901814555925423891627321089186216544847366418941474138501940060663392328482354647938101607299414644964617054398247381283296199902417394411260053542023823245888933116954952587929094557892703215457133334691811560770487723723568537637319196131789476765010122296190742555229992659668578101841382669360451763747187676464110276757297898262221325747077124457419102465086761559985892694777964524447058004532316981413595766992721556297626691934909224650191446459583170810770670503303985752331535182477639863862855570454641311608849945856421345957920900121159626715910976976527383853523710853441474328163748238705650097823285143261607300487424498070371665823577241205450492103397587847771426335711472687581534564221644227523290823465867654469954187637388485212339730597369424575764266526900655305296426108327563280712743946777449847259567073106137517532143129431163653398566232947324424541134333365349070897514977198787406306841385850946306615669986121988024967240051295164880763454060267002541875020775619817714555486744565636694487481394074558616345023141320567076154648874160612981383119326781414516442666575763022244583330120943823885624509269675245137985094130828684844965951084056595927659095320085810720621542242371243485109845254915524421412773913252913239907870280182511504743199696279567802386506703529789395727729777997979383336733128305075364961801120591732147848505571082670626037416777432932747320933012662861174358804693976626396221720072299090497115475134307899846570273241965569565212799674193998649410068935384680766582444796112528397272527556711353399573627001392627553925523974856012783787843638611203272678732503523777670543151484711902150240068718837310038052761762174601623835404628119319264185788320623535389173158575823021709876234797601855981240864371666229886968586110417462308665536765513011769271640227048748366010403512095574774604895940588276364504902941332653026050622405204159882245466776985770362432033131102124287706233241862548173088018574022004499204826294321222088931449991700409572694013946446140519162991868334834566176953108125803196344528005881855866522926748881001641454229457756723359695868008333114367637111334955047872782227209615979542002065973049040566944577351118873305400019937247120286392610029653557323969862521328814507905814530163129463359500450416118802974540773014730854796410606234285897511442060501272269557332276647200181853777334388084695327392765762728209992035230799762259069976800026960285295296280285950057024726114663997085065316037021250485511631256236278562526119050536119722501931169822624979926866802270724211922564536070447103273298430140905630978460350334022638850698762907651295379316978762717694064874295831820641283653344606023197897773097682238078198006889719685562188933135670715420009144338995962087527656523721539500649778884670990562374018075728425851486200143085125248165063944434148121776225496608826582143522483675766523531442139015020335494076787533928357896832092261317849150943049082821168758632701124271413678961744680731757136882760529910380157775367094116445102012174425308011537776484442492797259947941002550431329268582902561973089019997189796552983481661484419072015618354518712596724033722073151189562840920455485956802308615243436849412698595459317935386058066238641354630914812644670486891334858760962560532490924087108616503452104947847799578932542329527689971481819835054051502759317697912170230900974963864947289514159793850757786321995101043358782164525798981155088324039959751362462691734469184429996670206045859555732571786592451017093039960004330010047796825273131524950875729692972777251000093465230274367464935234725202929737461441354942647936719976366987296886498052395359392954622566654225450544851841694750427485080912440330523264370213292851385938506863300553599703712823110863094469164215112931542841477275302748556703252923195420190015258807416328092036148277279774548044971488304437906245454369252290767824232427643514623706342611358555944732093881956816588385659827776478990381150107333747531673852498472862283415422570360222558342182108078307203856699848421719029209107846037939237834935672104904395723470761437209396377345707842145331132571751613906141018197822827418612686807900244262399491328598834629407855187826244504756803638666941570810941638071928743145845069255950429401365998790699169390829303796824348527550299655485552223911267144014509720716961515194597563794253359857855866486520774046678123556366962415668770826064803294208371049935920205245150167239998905322055272678465169532365385238840160150156635519386743196308331217463820950479585105602396411301847893958362213296100687187677485230097209040568640376370882132041705838276496033000497310541669752902394495424072517957548298210310413638365474921097926591252804006796865853192230294147204401979206501694543925267417407551944218510564733601761670894648154306759515659406511183096444649616850931362092432231749128522270168011294537900223176900513130493183062884685710886262162109908238450681807541796924343131917336826523393611580605096460929521076911805230938108599837779583742059126692885177316868571285459898702133755784882470561082825097132360996668152759482908097603642316505446490682080265990347545682303972930405641298213191798769514395548338373676886086367783865483102640695019178122232133869180469019394156437289970234802830610921053204792609121353174904667865505039065486860756201982236076144215054318338963524699186039982860913127464454927929557703379311387862696830322556049591103902143987911002923370936616105672380760806868714266388379482053843525491464559428378520337131414570686561080624088071566780175925723104492586057926631564329655660604458764339183548518313344827656476868524070039096983954729483622222031446405565587930553339423910362116716140147089963547102634066060895504044414980433656711906928819846015334340232635642999952783010475103896214397864493567450657848654103746488157828509402157275831958707833508177148542254138783259673219272611626588743394753477191345638550024491896198268752910275747518465601078652372170051514049266555414160065806940173714483378501937607445508090462291763637125009510417624850418546374136349170792663295492059887441184969887115323512554431531928475848922014734029635654954692667607085228958244415823214522107332604534902238561863243426371520222164268292270870031928281392683731938627978649505406662190504308166938421016752059443836840621645637400740916683928311546705184366923726737157618809660046234183187343850287356754783971732298345916456450354147880349038446750437660322518303633132019738427705461459572053057176839728204117949096582365457248372497315603959755986208300957431487901381586499484528482141165520040326717408525659564304762875359394488446428609686690525413449578756661259481606142082173686647670300335178850794696853767293892051622925536338047232106548191495814053018706370222221405907080533484127355247456607909067725464765625858022616242257084307345353665262863818448200623226287222416819828601531995378515417814421585879561084089817750845558582465659613680981472805650379655658363390005943577333566156430358537802584565861746434393010534127934131963434593977189155993719715006436905294012847635335612073143519762174923395167941660210022529138638191855511234396784020195640665525517512711479343729041563070720220164500939959542311566778991874351765446105016717554111298974278547027129452293752807927622613537785940818254051953227740434111528967462583210118925540529494564152590703744428623951997579571358003189526569129062082835325283852212528077729400676209696773091969166081303092544036188732905898519748474768406613675798717422634002163569212461840428306708058558681221577508617534825153551734621994351259739714657743789163889903997989893605584490708309073395173052402473842531286284175905434551231563030330880880260927496931058824208618911088968631213020586049597351968257109735492645179449764323308644227397119976441005289028498251078290345257765212641182321265117503848852606928743539059140373972507358488246286198948393804044796507928944943746045263906133859481064364985056023775908802679708307644602045988164237286627813777395914923628555821631349008534886985444999920280112561259450475502946506094722824671282047476902026670897269787887972509185648351321955397265468795271721857204021944306608293983046635176721451540514270424279818406380521584094197306300546300403778177769589829173567768450367791201386515774197477303919032463411082639143223609350263690069311163419571163570891227447112521337030308306516796888253802484257782720807410440347891625503433576460117152310073874212009900145956307631563335219142735352586498665212306108377671126545859598085200354447045730522318816363295895172266726119006490340340928348129742842535385876561991454422347587529056280977695306804188759513477401218252746367803610466904406691624500580856510488201316862827653952645812716057198780199265642236588790331248149084514577643440255959071757847814030042388583733431726437553930600129675665627238196366081647232752097062655670310107151982132015751545454484775457830353547493502137372282495303275977888582240367434519646414717816075278092310239546063813083061079337281941256188020962148775010888105948963570737261429195777565808783062621309282029541224088102002165845410452120837896773209296053914248344929049905822202448740000206255522275773904609851784055891779593002720832913281653160393372077568480442741107268856756593118137180222846525798111808370063775586014592883900075994818586555960149985589267906152509242073535842405567912422056135214172250617805709296480993948561283907947157244256902345344819328269434785774581784555857520887818180223547724652768867828749334599595854962130685626661452529992556721447156124971293547316059993296310867321134001628590224377549759337211581033873628888717187191953736482557432476777130113484601952505253446250914669782960767087772241801153555144529107559009133230013273698167053553720287314637934091510445103807762725676828921708707111757239041019552571102327780183143166944799708927564184736417242429682911074837699229737671853682564082350294125813653766845489097396345448995814185592928598437936913760451205448773765430390789500493639462240213653318309896832061460583533149485479296589978532789577143047319484623663592105062091129023667471594258558455756920350141340292162570260468769007556591261817379912493474776178539942243814284758540388379235344790104399555358849776714201554817794778599888134808515158767819943990964606330657316832033279331005942694604012934004667963839148554414732230302528729312040700000766468531881186279007008762442950098674115401621027206706966593606058089330655380124094208055566918448652228761378479176285866331485632790317264304793149995504860332664331624466246188452037694654559866664392502633030449017692696809264274540071327048487667757971817380217275442866815181735992531187617761902781079200698379166037711166965000056412662514441640396220428206415817674445739696519411227279101442090132115536211666910646279419331672199684345069799740361630447249742578173310914220445323336466796142000849614446235888021527543830273682272236877834027346468722344586778338458655330209573918473923122665396919498693310606964937444416821741806839352757601093204178536093598587853114425218440195353713705584688857588876279687923028056610003436880987991743877070888096240290740603172250118929423147911323756214635223526628103310586108718487755648201430470102290247524768881357937120117460889371263644796082504087240431184049809024046251079958594335816888119219201897735695588498354962327834776254083236577580855244782937814086830104880397040255744372639332071893626474207477542904094421567714846157579478600820430400422261439910097795598819672903859651666808686059659396409142878756969337475697461139512124414044014198765366042603834912838219892769216542582591925979182029195035023279324435415791591843530517512243792269153520898485154539624173355675205994218192604215898306541485744679552309227232704981861153767085171210170009527683625578844153105597389055184623336983509575324575381017090396900784278062146114216049178817136835582776719018510019322535934495107064685829110116787659542921664646884789647534441989712257576144441095357383660085734039024549365198607865540294898561681749849997596016493194742540292799405022760351312774990977086477155328739001986584067921050065051943934537309858421107727295292808157535689895279419886270378844313428888352315484234614064980017686045388944895507066922439110238770155789751605265311232080673927782384983214006438470392132669708989750178729917961669929734825018098893408451225430322973980260938708227579515912954153166128160884164624141321002722538321999124506772764866860864984818629993639118226802506979409644892492909236814751494720618243415960077469928425948545221545737414774335717400968778531221116569568213191288796799494114276876444939712986664942114467551667545526480869556985119081228461324869610217772723044480374335395188711622737842123358058330304677152486490254642908764396378784487508002162952823725684243723391059060234905578011974945483748373009662691613973471777114798917191285173721265815071018559096600617737648880272831313423149186006170746636880342246635172367759189051253907288853195857423660375190093216564479507625006255612362736500393387336667670945230679863462022956040633175468813598559646234699424711885998282229362760135081211855512671888622115915339181578474184999186660826494653607477312797863762951718158343957966571081919297339851693830947978179873754299271516917020747807938250372608815782054971465509954561322581461992256550385005442206184870934423270245428167407674526649688217312036538626108716246825172772041541309587800583700800080473552276744067377846770923530445032890172588041991032943719499422601459405516168915484405774282825115660334137160954471282413092621445862678043141229885450815816229726275203006179065509520524116631497018012388907838994335576331866413816304194766060576161846815095080123973074145578837278963421822015249780185305984699143324071690851818823877696810821189107621384017177308318621379627138265450712273531593904741372236094787180631850589714699393054279367298998854119335131497969165473931634292026805994535234637680817603884498763587764711362770306922893704307702552130023255384838524767400670202390745818690860768105988126731452198644317535500149185523536006746872419624109058358856342208042694245593125325297780284559571428819034593080743618679971051944798377935012518803454773516360705884202013290500309125097101773752228764953760139548945156703909148866206289824036431247353667664188091512499764127740646809644660227307511558514345423627462362735004874179185732928795217963455800093636376120172457507933678674589347370496659682902059371625509147948672591704767052403106578834681518277467355709952989187138107931518456039047502471008761281235968458193362388829986415486640302252398331029736498353555898198210395884716329893996734987368586158082003169171836617816280463158183934680299956990837969422072274005757092144761948592674846246755213171177108748292033246307934097427136676128204978017762871118689612416192486926454751156067312188360258615043099697249746398048116505381390869158250011040963244590729534760858037844654219477111446192323615668781509001818422570204876016945110687399446205602837641072179586163048696488326857920778736433420788634262108119464089889448550226687734135232567136329234258828118553376747587176736146896810051544973653625807946561024808848499465849694707105732788422636612020690098049635805452642995707354210062334876846182028282321449006950663028305438354574588497240860020481415315656817050467518963776056967388543656518359733794065018547564565504981924506371054777984131449299427059108373399142799458265120971814654175730795632675445755333425214252179550019421329962075094522660898798657708195670205889304955572104603326060063913197812040887255632963833926802372729033499794445283010042770995465480913879670489797742075830655968117066443705413088141356811063447600532181797175832403673979927023549390403601316180603312489308875533827938074232457141216696119567308818241614336057566669799738475071212824013998090902747739311846199084421636736040401696151552873521790906966175601930437206544582608196292225286737620383956368940515262805251280473243231600946092215016413329242484917049700666280563663300975046237751606068392720201139467723841319828030126791024155079475745983113645508864380689697045943141313350029744129726163225739409727958161936666726950980196644486656922143006430407086842914669736749721972677582782495415327702000092936579713169859005326535343873944792897237317407852091105213425480176170494380414061415055379258943204292847200201878039679233032098657612701707393262914611445526374539003006084615430925896881205001696675300078471621090309297199497601260500112216278429118961873127621372451902328321315456844831461630521241245681974699250114604553610097663618044775038275911409649576594652203217323880322621522581808212433698104720045874318091770114132168836705486886035083145931337810289557442347387662183443990023145365905501460246314092183696218904363019602352588076206587163748856246187863133049335610808995427107882188948977579288341497088115685655675825405202062267634478043764116330856382106614293862516335905436167332410206359290173457686918531933573294737009392880626339157247452371622918714048757333371975274069866519010979324253563094394565956822072312207463496761974501071472178013061862382935571490848464951171044803123835656335109750685245217624894553847247878028145372582864133258672687544933520620216142074061867618003232883778199278165103681583891529337269861167462833921926873335947555039145247265641329933938997020724648841364131944422309481745055357451279963842073612720823199622347424603826041751929821902008503630335935511146566238740629292000514746075283834828764960179483408289697955032108488337107211979270108142709946373232126952808877303488931003677278195994866611298905045834783174919095042928746377918366397781817254782193888548106448346686279758810597900781611232098698273934810443756908783127727866985693818948515570960785944499500711957030257683876653033588261892084860450579730398456934966463553533265349600987929491997745362408851891241704656155419244802557381896791010525442650857467955334695393225436955167752152114474352183938968462590834505144119542434965979873527784365011190967356623340307092368887227308930843597468911452119030600952670269658683414772724576096595236178592996677661167227695118061425314166776383273475690944037544920377034961168098006881923127744618344509371278442392388573943535564065403577005145976889119570193282221096989780088811992180234345772593853767516915439289699512417284659679170583315878876820007535863671398114295251364779834564607118490266625490910625981828595357508174446702696797754232542212705116132015143354750418363357633904401779117266091430711272507407003012417807500365471741824779043258528889279694024516273801602712345812850644435634427341390481001120382500471713573477766492913038280561382655704049894406271110038493839877697379696576873787548143542735638838436896952995877157976275475492281650482009228786929461618931151609472675786101786055960228542857298166046055824703278128235141044870564862859614996372129386795641056540454228005835460996853243068980248107731998648317418026270541938342482465613094439091829167368164857397877203636311272909120626671190660948889643208282615807215831242533326303952953125992109873771539820778836363737861063625214129398716452958218267133461888120801346230638754939423222426798344111661814042119047289836624962970937174194255383441243319475707026065460106871722824146403647187089952797127287616077201755354645893676444608253946816799902523605880415601255524306113312769098636398747027608227076990274930311011702795139902910787681369126815972198240785565409412549729641600579601888989731768984757754321915143976701657181654700876949885066137388037735334050921771567299518857264424109599168741237782335514342657221352953608568211450154323451216622076613120356261470362104215326744987464098776705485708196190052995703465467975630162407626346373623589876321654690893075462303171670259869244301096155205292103223129880077212250695053627337560301579510396313047137671387684341435986546677161980605033607199711339838393535193537145686588604000426308327969500323787871344809623214641046720331763184835751824926540254978526591989906929811343113707003369231321845988255822199164063927560444588789951913813134159422568789914023445187378031899394292272822160623619863142654937069821972808373047172141796689365927188777006715986300455680064402242499978857238876901123223399038286897796112946646439172835792044733303200401145408059508714861129921327690381456771923249794316316373510511857363299214863904571123877553352215024203240366372553877593138359243169474231824507572709766042810214706124539980462822273045790089432659221743370400075947324403351031351001134228325892836125016103407241682845346606617374858021105948843825759433227372213331473105654776856323932677108182944055999821213110442623548400072787776377897018103931601013340117774135049595003293951647738658473421154341094165010416268924269989813637725683383433093788378769153005823426480718566804836000761248062240955425051990044237606727461878446601831417965769997157118439524891068692506264290937636269120094076912123608925630971740336298625022381129440689273075968324800297353370860320684281845202120199169631030979698464588388944540449183082923988381385603006522470744337660569439036932358288453601023423173110509174609140911167025107143399063181641602601269232649004544202669531951213675662075534702592284378743236897438251667187968569740343767672380458744766055506277796551266867491707496401649530537255849315596758763665205467666236956060902109997071152692652391619965001970691026112366311568182041963747834468151544052909162195840781426321253945227324032617433479287047999942711603266036241822472427354869775654968545487986161851666839327238949284893773011097172559955941495293501539266039903806901837759160894294714443995145880121045727908393866041335528057595281922304626631618528576772803348190599635913318032726349293491347394971515219024290457884181232874574116142606596363714533096653565100332362023102903996547697251829588375829847863024259498821508947770258095868700904736378800059259543882650475265374949122838820228634402128552405137631924544528097974973748840507871900331688303725612870888445441307584294149010852811954869701830747732508560558480467542010331006156327107091711912056243734366925546958446723970547552480148779503812006665538015416810049580099673054660421014427783209623295695805667467764597158163270693222950555124914216182747572349265653008144857815810291534194429638145393015016048764829007341893918299978484895656822334640271209161315106289923440560993152090268051523054168893077184107977101338667398392680022990359786785722549382607168116752287791696911252874990963173290914256998879857933045119389870601011034294454091500969682230071363679861454551538374782580092356719043840246021120196936516036380920921745478061765072194150919551328143058377261168592834688082960618991901636838797674785398609952888256478682571088514731017955221208242282952034467112361524388224673415507483174054775608646727065134202860274885855498411257681423392857656753933446440133778654779311721100723900521695868791734506931482921643392329883539510188320305566301741503899832514874119452608685175348571177595764455749109730478167952783779403862952327857144028707025234108366935481066778028417627416290237741494390486362182518333923326976769960413456637741700637025387752549244385690946647738403934546519439491132835223347312369664216535533683269251101104883303752267924284345996502374702668966217079549867527458658742259298495805139298175998242491088654665359653381791857015134632487343070956838141678701119701828780659040163127522238805660941321565082082488096691527462226095930149251475058906153089432601579875419332865230880315404254069104482702595144540310606728246320527700269301210621862887276804772164525630774900856448196250786188669240109232459612856192383286918313323030297793748809855556734158983350107319438217800083692410997821902107945651164430313240414480732592853672815941088779545991262636775926226569343963989979894823591444744526400093854732193757745674904309122575622092232887807687411265601480763577464587446491613419137855315828473244221961768501756564609484943619272665791158222281506683662413087023195252377094813782125606933756143250686527196563044597037614817181982819063855062636541206375846928970843740794232669483881619330046479707362306462343387497696722126047134747182734064254064197714707709919966092960221822709109005201756319988930362828844560673375945227338976399711247414438441179184513444355320325154885545983528852873194535816120446354604648615295809093732201286269328677028437650197846801167241196874419422044489134306970460533649472388947029721981887093160507535593622347022288745357855066500929935659947759007187202587077016248575265310492059648587154533492981692949195261008245988325409635723019553198075896183285614677547758003956535517092631071578351834696687057881411679984899389869986502895008151134080009412587664561026803281150303211526704769168490575485026949814780998642154134680547597535563275717154760154185761978368284379311740104378380564491318157453530495842942113658130604242818565048881346288825853800114849774222662958305469886709848755735638352156052923757568149941442897545525023547403601207861615349060142374888371376311800258214587822577988965426739521247322629103786356386615672296653201235831630794747823356050700791575107622677930766246016252361640638139399061499219460202237337156925733982021898506414242896890149627096223912201333406133038606459365042960575378111642861300650522559266389712458004057350785552901696692253401832809051621335427708774008818230344329217238053483464836245609595401958515893592421025469132398257418326789237506443014024122399894849409447450140339613709593562089925561485962994193229216806212003309219795154098582548235375791793117267839188907391636101119681027712598623682663639670725297083148398611488146023511514246778692909533618913642457614634910179232280970070371077653256860755669032238470378316291812691887881084219765346314727262648220958093206627641088499830686553979995912614000777008051995014106237325608758871707399815766280481847099656844530628165973092427710053659781450587034163278845556148986458896171170126179663779410553837439770263959219251896300244620837830519501086126904774824011692835552077384907646115799308064729876495531399663347663474737395369369279644677266114589570375978086633834207085064681526808573351492273180705944538631146794598679193851420894305016270179176939451003063324924988188219784670942926293293775474599328224568603694195226524151746128106767845484981397590025752951408699457223585488238741190871319273292003251325804112699637124055993805664919969345222466003968372854619901367591318048166788098908208831362698778709168672142677674624500509116320611404482766855005354706641194768599484003586528547530969186346704452518193182036178990190138211029592894677873494830596570395810065663919265083608522584948414706934051945205532171133209969501713265143233583090210878143892437297720343447077854435848182366175099787523121014718449945462909392819450800872349554221620162512221893611674274415059791704174890088321540801201333501179979765085943270330287933935037511877367157767972266719177565152993248399183968979152996609414572959685837727522068611176714468282159684427797654035763780363370767598136667713160264645402271466751368589869659176432417948464757301885754042004117947735211401771302406932706519252931793531870057703433280718609631738627879954073827989981123180362973312778217615233785470181478022651752916703410412148569104813028884996086994385069292107039220700384693239568273319429606610978721909516315233496187832225891350666465735382850994465384338564451992624451015412264210254374057336280153796753821157444230417042830766255923579453555002017174319542031486334294447369635994744326265884364293208918590855416021358344609344467017952451032663534363909117236871341818676310251211869615659940400375584080763423261861150637443922957234996713154469630408821915439440065314584703970566750042148624710885148946802648643748001625448312572422952859074699996599319367203432947078216896142465024142915653245055693276180611555266340775243315593050306965488370975466898454921599401410385227361523577582239679037711316012399280882604488268368058896016176018280044317456127688735375358008853326016930405463960462053177658121930958906205413825094148136275873265686040652811147232183586207826489242646814612849187212245042634468615265908232606107074827063030455906668420483437510483636010600929650926404064977464398565041144344891035083159988353287802628510240914187488634577183389578051130906278321876276849786257611384941795735137638107865244113350225607966678297775451548256089421206632525533374905826390813918683213206648714955330457712668268618791204638527633054957847458387014686589471162524030339498275384727304841182135198142650852267121451069508766969164112020452945079935593535721565655477445755528398558465277798399874905803269832500964938131838563954732872342867877276105445003925312460869806028731838930138978958706165713463086016278963521284091686611296527847662412142757494224972557703583109628145338612678595242769411583441831806616690399791141485529955972303902490590962216092069491027277634093956884357590984810329961166852257743590349112589339855714381984046282949496195961482489849593066967702470197476901256022985234322778822918448349911099628437596291914594077626079797370800214699118420044995540368011017704752195637347709150570123197968565928317539230261494291634432032552463665912035418785778034547023763295434265970149554408053625742446849963482859315591040393304077812356667956090948390985981749499104189680643955960130367401342387682352036978007607668853575632952468051177521805982065261272301603310479084294335445516270190751247432417480615511784417766815473479682084480295629258368039018660954465429278913706327046271248401732911907739885201054696657830940604533351459637438271198122042260304549620145340724037155601070427281333672938326847845115637365807922064230664872842879714971147900513128277987548196818869793298447653987211984067557233942469960756274686720267375051079102213387575093480488039236368577500349542647483960916808383514301903970476804149854563061531226969233120647940738714430094500284687588261969979129502030919697624937495832150397113140585994227494689156460740584237464945752712641705305785865499242240466829314571915732559429299296235867662119987745073059385862048293511629671284029978256338550651175325876508354314677509696709784369077656326928712236462359336024912526641205311323363150052417413401565311331519472791137294473999606628768601423799735201450091462617642929921489726358044092804324777661410471639456360142559010384613976691843930529255834953376533210585609791532891551399823196402998939320624550602962462069651651859902493331973192719943250497072175580068812280998146249581527314557420008073804268154323518019825706244579915377269049863875664058877194455659139786589271382667307422446867873680067025014642206831906586919926660998644210369818050434284130124406212187437241120379294959003228321584003675098857422284637671543662692901169361285912845730187839212675784457856044857063746284473038867712343352702030432691060466652531824269476308180994102806939994459471581588896840821577462898475789462386326509812104803216765676872064316078830951636594381823533373721526278034184290154680723654136622745100563034288378921392150745040376617932722980611505459628900138206089343593023460241125275576928418667666661940299690338761059307437933274087958117023519268352466789880012784739301944831074765393668238888164930629593404387280284944428300610657525984018607396893868385361838002719389834069675392679944242030899344109373718535302303684292698139811964754668918933207363093032854974290509484833212071448972318000220500803431556294798023919021776069516145900130623882828541492838595348905139053100728830819016965886248025488977586226751721051793313861115492365533869459279628733382804896077154486202554955123960446249866462184636213658765567222101807392945969107747439674317202598654849786712027669944078299891760772034071632807248292864452066867995953881028485867282832626460894368688553658225476211501791695732276797727036878944566397753786146617064071823611058427461056339945322152405701672938666710537042790174408973271109495139642243493591716574150455698907041490335013596755285603528084588653394841755107809329518936705139454595268337356180064789257689162749767291422780311164294211741640990763295136106884986682340862293765579349888004301581804511066817016179105674501586527240708910758537750289766116771776802202950048946050612556263347144839404413427821620736910998927125609623420492396494179779419370680860092777593874518820327142003755054562207480653494152312742270731292897317867224943349005794899442586234683267163666233716029195651063288762423965867847360903412345608468498205056460835020343168801626219529206124214042974963258202250528443286344091146794114284423186328978299477841265483383339203564271122549771151284481926170398437385392780515171231720998027461144634635595172208856592626243227471884231725688757048035066641548680180401904937348283579104452696417682995702595886216148842032745730120977300419977889060586649444907669929840687420462929845893730851724240092883634826315835841992566970568208561937598548773920635718470426903671335040480436285829217854756259014745377131242213703038251971441763983458806291556544103492941106123441176398101972702667896150744027588196255632893072944572876015114327156868894544395192345385196291338097168306586574112091539167336255985678897132183536169493837285541349787774303540499385636782774734227297645637147797075332512804256223115236526869177955371953480515648717989382125537226523848340994129913093354710053092592330674779536113742968643724907363300364671795456759081426708920171778870176089930492949903978151773600940736349061868379721490884150169875724052423443892010517362322023052912603956444888669321321562369118158568688299048748718428009742577030641601350295128538138508646442169729148952663829706012480223163903520038521085517135391806626391201224782355591409427020731478380068842275078229678330271729656732527037135280452479470484836174456479778275034561640463831920268124951610896553093844059262486421112112700286369008196617353641486229413206580478022045102415198221411317584943287462640043125402788555892082346348846089665729194544058264640881727937961075629847261026136441059174777615489979873110029795729980826928199447244123908571084891044816237297901485303169777611433895541426559084317432794589920773865507750927379999633720060134213200307718653360700399359267032339001290908349689970645530686140384314602628685327361551624787371350380003697606584736896892026518485139657211818342982320646933438664052477165557011191914471681415977012446868828779325538868662701914092671364171549137370681562468967313053346595222523631908918857250269238581637839233020430361627970479367419270968576143307608039563417881558715817276952022055037358296464021844363489706611496170012313628196892833234208238020652498046822756812366026151166968530591853270896829411766715482874853484001753050615049033790461508565071751703321786787849762936531503276424373346043520218990909167898113576026224890260153922497629643906651258076083042712257484936762773773725683530013321789903353803586241441439311178541703025561169744595359600869058780085966473378338183674598322433699947616198592088588464937008816291214364403399917543244344532943206725294826653797481647240811722758762806044121397584760002921270975263501532310487567122624142773919912109924568586515427919372035121959285440009122318774346662450964346027587630797870961533511989056181298912217622678444779958395335545634783749435104611479280459155083725980320813803344331939976067235880908311079194610230110449474511343739277701905868344616761116084088442815558788516468324058787777712427555817075707603318497753689683338704526422396079567826887508101505482222604387046911148512846975729638606745429630393646948181254307051434987532596010043140465663767081106258546110982618456095899701367052360126029224571819623373912889051476403067763833387241891726923456232111652455468215007288068973395685735886174481788809435030085663868804207470848431338630791054555764256601892618051728871082599531845440572766229143326149256400199909569302818567834830113845943149458876528785038391420770348947007383680544955378397360438873538773789909387567538231397654943851499672820496809108611413919388639331478785223525988777099269418326019970785315064620945356554824828916403781360274206910507071799874431814240545860503979501315950602829362845641965929853660607962204351647619894429389213577454749649430272434700967146574013663733412651176120071394143697595232859196527939607007922917022472398947549465719989894247544633080926109583757754574509436999481212966756437868452046153285846096512347966361140921064641695026101722064179327242649654622519645589558984706590511528519057398063611212361876569958388282122191267210786094014495448240459810201999302077893987188504188007531518438695649041988979876317192476273044958358594824442151959301751315850336000727666595234319601612870811300426168317231861687569542742491019894370046157769936104841335521785044603390121137300813850159426008624399059821169042337014196671352836478355667910765454037085475516382521153224609004615558491029971279691659308335371466732955018584871495525861519216375209507911357324187192641844888770099239225473821504824527971582382306100791353578501002544340882210573968147147521375697544085630564323660399611503541549192337202600050796469289120659835063091244741321873127241639516756862770184640204253789928957753757830772917793807730913654516173153132579045339726103180927667428553356922878821858487629456527504381126989849938012670488932499888640135623693685102148290229409308099159716695766033424817697089756615192419896916400853036829946802237502422643554453387585917291072955259468401329936652647419587534145862694552232948901773984092820300413615475854905105832668944730585577206197310680662663774699584156718013261516623926394747950647980897419765349845092355713118692322822919407123290321954491937757788568952822624979533107988965571510033755634673146931982253779359555901116252974691953621984434560935099951623210480230501230513258427197382885751728154976002672550185683080719287022269487993518040916607262778660503748266592973137040555316110414031342405557054675043343166136448051474493027091017353774296174858789396619384103948885602168668448163005032045527534519688003859466049675762610336876203354606805887089805847051360920281907142294002327800983384973805745463015544874466605165661966938399885768379522859545783755633874443885130199668239191882249405258773895187511443216574706270556759727041946183527184175982823932470945569411557617870926036152121144871200207380999288645325833241530609706764008492219717175798875470551420250717014377030133533539457843273523191460746726573352568349416799188902979335139465725336556511102962641117094842684133054907616538193069862210561585570505731833442520509642162671216591258731300780400250992229819561952112187881099904167181583649070747848013246989091004203626717992407832198522859512338367104698612982790387664008456860883847788820143948703809778643264982584769033366377945533616178243709286959297589480087335095039560097273866376017886212940433907595205202743528348950432382410942546185618040059382300942236980112604910162203996015916210418832753389784293268252210664273283938982576859286122892578247201930511256929719500517717546546129939044491965869103573234433920859643126566320465404577662648380127104006195057628942011773288899796429199462668700196478839122549190620955437417746149364911297210653502460630452207931104030373895760416881392490283036595943557754358744362330827445556880388373087998960577776276225899535097990783173441948630469239696641096191374975103319500251642355951953413775101987748391424352651147271747502950295189416958705630305929827036692070323056840176756357130177659701022585435759104433915253240155155562201648934545227181200016027407116376060614288433018404635218407921067217786270553086267510337118520022124033318784766816713501350293624587718215439821117608231776000901874667289720366823120004241650548704612686267190771616215735619766363151065979925579693336473324178321498703860940291968947054122138919516613842493065491502883610812514544379765932424831863215157144852985662835603754307814464535587136099744924058810984781643435262955322628416714698086497058873361009602335211475526478868625807572369714170973777313283582338298976030864900931446051073905596890593269578598030929484960503850959916996711648528443991407143704852591274087980664613051296642264799869375418720492738801094831144297902732670762006625220991802084802243641961369285292162913465638457911564128625581187355845828139763428201257412221893357843002135192128180256666859241850016388004479261885711595878497745429990136258448260514414857311289557707742869665442808034730566656106682421574081987813217026303037159151095021890587133719991236375723841112887627387995554780148206919190329360931323053222577792425205269546377728247063608267447956197418470487679249699853114577932691809963689350681207530183027385327822006515041739311223788122391743801437010989357440133839391251180564405431361283481894081905184853548467102660455131531970436081046202260906724633401221562847291750876005509233810879754683609164258675729641046892664827895518068667747481336289126352478619003337207095907534393192227053704738585852267724118968593822704080000223807158250142017156599318022872930874892018855096299372668944117641268364278652983602761254382583716449789344847947003351434858840653542338946281403509372972722950652390078429605925133023606991852558428534720843312176529080306197007226170758016724148404237562886305992347882690141718291057867228669881957033310240562603877507793049300896850380829125970906078338237779338430553987483443664498524294989460638542375326509204687151778382893512187625471159929683094106386144805876900886693581744799864448784578686370981294673271943530846327015970599420722121996057596205773229996282461854367920998075472097504923631244829847156152782708680947912725540486109266232478573176781805634048777486589165459978588510076172225130959158504529184096569862136048603190564460001806505716508221477443556828606730984192521517232358887284519335324518281887784349963822814943625305300503524375330426433632373760369188060703165753179341111144539682300448172583071330672411786815856326093699796855983509709137782232885425003056466607764138941533154903872292078349245379177427865804452963737197340488376996612818347602427055224045717043595419026541683368312039955953638974507297239246576266990204056682202672132545097781741855108995333780241606791915374025078674930923980613327614493877568659323915438368525109866500349826196879513209833540860042608704332813426260278158534387943828645991666895660183685567280446853115430649206601312810046322102546920563394735172255667841352016110893286574398878366969413257760228118269673965297325870975511147546110028353743458027137231306913887056097020485724802684474624044454585882701645648941473406948018219784008070905873487502385402739739203921242080357937256517587115721468539525946771573314834372969296202452050391265503816423456119338341066939528840597291526441243175410374615716042670988806149193928686667000921025787181132261540543448373793668894457113701679502488679599205722030111734573295149338195552526413849849502545540221596962228416626340253275814713429317637709172855894305788247068361221802446730501928389780646897365117934554152534915228301800328562047555243978904642447535704665221323924264074122145984643711009571668447549866760588486984843732557163648832188568750186231178949674456792147810411032800030366060445922873157378964895036832622587453391478817729541849791413934963136020456561602964126294580707786480377309819874096787860182015245508776097553087314710866436143604751328057220702450928752969491139556401909066550076333314527387506114002760278909308239121050036683393024937640153461072600444375993633474234367282366728058225145900074913605887208790159040609875764048876627586657530782343728746034880929659970429598103754440600583873461345195754578047366459952014788122690598694556054625498913687769873455063880633549706457354517226973033208078047295145872184422716816000364612805550448706767580764447418736513743589095974314351111252651759023438211045119977667780439356513405823583728530770015965095897469433423853185499162636649059174121234183290467500739141511446123170346696195684696408205266914186874952738085048791740420939345831980750580988428674471495996336367615157101336025698588078317609265554726302791247284439947123214582176503950646441217594393921850196593171693983508948866114284809638797687051913885350545718331837245044889116247883995494398275916225568934086484927696366176634788281670007025678252150803159139700878858636774980612255861567455585632465331155191015844326074894341616928336207230069625576714996023006886322416945900298149495964245958156188037027267834215055027384153116081449178846252573474435262527112875337489610170251801497625836094307782924935030258625432768508453108150179020542643958797659499441702271787734959635729204959469642793906434556638470848987725075183788220401312898580579006201495585547675992002263724703607669312406606861631352276899971047307633279762680565566686284078932780454421336861093796649757805048268375767281375499664753573782391537839049349427140469656697865340521884636092425767425927580066391148344875107860298073011894742528495346170277190625105619648934327720819450384337100210934106168574085103446585581429572327337016483868003680033222652867372663453031952576632380861176039896661666936737354274498823895820747494770005804288678606489930221738204776836473399866770912643785938870425684885029287265007835939695656683843621479592335517358031018682260777651213465753956257039843162322904910129780563117801150646257061339627697382222822974481724227239461230159071382833640839944954558458305980580771767858772874650496144470890248611729056360700827900427494604556311230164509283972154516686942427398409130180437441873617701863679586305843823796980441444878588466195484151156104211713672946241770761901368814340082445121602243148722082582655838486827970260733447257374160079664276754419256388286259101083432742361016638406648976794382123651950894905644566068006198502602412491791744854788975742798237573339277396633875403080820753122756388650557635350355429914885742742453860720373297741361418771064201677669491696073810363834490434700681042027367314858401645067703423880758504395647857127363214815754285940790696392704131002395359618597001891382416749859505887916022773312525395396692488767530847862330371944049475561065547709907036557606036609469899849140996387752041914138968464690997792390062144810076444970952604409603891506623769566458940300537990740653232940176744188348078915172933613922862836397837849454129846709949922255522575729272109730688981790417443108789678012151152237582891263326282401800742777167714128328288329943854053367857941063966781226452168577591411422749938536483365808238866931042128166544163020299948702242492883985074230088235163373673491636976213403136766391694582174947752498901697541863029382777874417660396793220012503267024763425614421919145092419620960424866937717355994842178155042350555306561878311842845448772718548542247286665479104225855602975860573419813598914352973416185566180113539122385326036334376222591327766981689246916360433706758276337682167563860491371351903754526575230671350843481550165988360696170575993071031434741281208066723947714135733250356561380844851957041845150102704671854381295096283113535332520945457761266357114788782222337943145438476719779644359745770941607665055525652913738292897295120695330722081263950005817249849968876875673831895515572821297327122421049574397326347236363498677275448749959976946382303806646392437516819001149887716576653854901728584423571264342377673593632620883749298070307429589720239689045351877735583471588543547042204775960713354013475360622586545794895898019408031371666634474659074587117895114826944076456169542222461968922728423859742916013814576640146783245623279011802590560905548985741099018341013190187266723293165261712895372161036316232819020976140203514982081831613336166105249749368408810851364530273362074998807978280951437685375826450108126600068780570763761764954253031940629500726511773603717877944510473967498701572954223483240680195678923012097956334382152836349611790499827087746148626040028245535952981548494723338367470510941694173877978954476114176617862785500801383585456135757823730350628243142668239167526752470000200612201386969424203102909532353511484358377135552439954364992421970603459940278805578508279695930329106505150209638956528472133435001066729130906331306827857344077509047610392215418561739007583961495197614177162055037099365209496436513921047275049917169411102573158574818151153867721675310737300997259410279838087691880067149748316910116916928111004558574437912885976087076227920629032222578136167192520188771012886830563687303796415351165588383544251888797635868015939163978133472512197066050571438705605505953830147881844186838793700399291413887087588738905285640498589358143639412197691571837425462490654713094410011656424952909191617538756795487393640356995737738422985642133507906829155183123902072108342604892243933114230497941710195141146772922258832701162994637669547190392038827646115554881414279503292043907025459819095654001267440956929811211432766926615342640484172017978495971508325801393704245943026410764197245685057146622908224473322515196847808496476356966655179066858782325920529185074578533235467296547001761467087904546530346280676858280614897821089883965393876234497835371661519488960235263355036596488936208750271870815799235230443086313672422250987346817781662753357822668782580783791391551619080721648762868836169246998473476569634816676207238414314072319377705399347467531097198120452289818082475192402530345378058583014777630311366143873778198332478765906869982679871417488170547408651770028002506819572799430503716340570588705268417384630870846977634380291535635511773382434749148180041452420873743929908390798695042131862685014754769897457073637231587038466358714730827932010494957316102549721324031647107738144227403439434287181492459202013728005062283113630799233264937277681227737621939329803055536840480780676738883989251302265684748285002653381152524958963602896039224359108690373414285222504095270508533064781376734466440899084187741436166321411435192231159726600705097860640240103167523401052793912885192506564586914254698247850803109997673976240088816451343823194076974000030748306777508655682539594322289113267152403117255441878135166113327212059351165867693256375452737937430223282932632817544739243949514632792326270470787801485729997755686661647828303841783215285842260757133142541224290003124732198406385073399310991108715281425946031203356815289179250832602490252112696758136650322438224556224532337491238713392881033068866077051123020435273125936937245944147807734760102530651466104536333224540002974557130615961106528025567289779791794597778870577378543578834649434637747558244563403978838985216092099603132276495423753298708009015558405157212166994352810773954072241907458246123674556735317119363973724160430099162507308530149463127084045060871925643899907361637034519285031587058693229627209926941399438263927180031282865017047074063568458302511908102853512301905281261621211972685842941367476122709053066288183605934550537827836373823594136976799037859713554410553319851757638993154658424915897790590765477179203023842215352583332247949381017067435634777814309034055831439505255209371129269939219864041817829274361702852786053692254439998318456844046907659262684636949841455983194187827403763763280452324301079722657628632707073609127631676154387827639442229791156286949275017634609390055358869381844719582890069026196614347877115494283910810202819669671841229882536788160847871454573906435708481685395063925964059648515120490283386984979424465959060483693452149975464878447981681337697530715439748765379365446594847329301211180567415017088979763626859788419653025961441511576941240640316194797712770191946616226014514157620594674632646210454346173734886658766053146840049395906251050373966931981440156546317592236316087288467058504100634875167894698633105585947948937846918459643142531053671462792894411875678073615330078588168265450779209627974640130301408018892025947663001924298448198358051112451443766595383432126272453268391974293070732737840308756243792710548834344195661343854112426780654333169390012483535122249336631975983133262585718246767621962825266755797104947665326529917453547342866197803481613476240160165493302213477164996748831542559219573737949374324810892769883251211163822082467489347695161532463388842390763223505425475038357401757689436489573670407474610172153209991132653231038140557990498957860227510848013267130656243586387266856546699515049960630114852729515962940375834164224189788694705032596947697986867922152196917463999626216675346376983081765539221368322433389989812131957321465149296481563761571646726000679021695696630079247008785990828995750975486382076590105168919368471752426036920042083827421793246532722260670641450098514980331435727850501100744666510614522987782862284179063634021666040556583772236315600868951243948392399782189073823469193827400733730802016655149502152839396793439513902339988732963167080679550891606761301018644378060350459393279560394069097846738749133736054033942130208833982480905653434220319272666934950096255497038327459500770147195892623993780675542724048753933452885399867707021230934365753876445629173296591100169962375199862435121287762154524224415972334386453216385731552182006030947353599209004917984592689452474494579754066091413139823322907433244814656939063990931500426924315255837630240503534559550141626984250354274785416885510362643337339553156569282675106220388485944484940748378781196803165031942627636525257335451846115123508667216249562613070767910299198347981906186868468040950516459428464310377973634133488952406939310068377299405979913991168707714904502081152543213028059080494255447721516480053180115748181690143006688917551445474334122942956687729866054548726813774038806049367189471648892045524219010654068648335751213444819378204470345261586716507601985774626270720077780969870146707026083129766485309364658761043226717931548462844785713941159080063901682431676032831397671454406547411704887386424048613987924748004864060598177420049742353783789183830982055482217823836075387951706564024837267429803211700893133578742116979916105375453407166576290810522535884728126403365373854609645802723189076403879477541446080010142011310315908018699427449892888961316240985052735874784576135949887450625225503100196883519816212326593244739994637608420683262130717108443038902768831768208715600379967533457750640966613387198015184102602459713051894580768894983329348221153215039063981906094190686669266800526620803523119929633246687979105686446122707953087237810238347315078744316905032560211592527015053891383528789049643704976837650717842823785010929495775689985633798584922075139386035539367107955662408283874510724059899613319001151016037544221458396560516908819557551961067353053226633949088646780468944603426598203029706646340112520409152347074950555244047388888801453340851661931724556423008607439997693658312016724969454837313616875644013234236551997875156739731911170250554462752145425921452855241669492976197209924928687236089732468541509020573759144999670296358319486699303001058427845530258162035046154199116384686181920135103345976296306093838260690339200375052909181061658032761365491524621015466724022422591828280454690167251495414128334645406335706627599486743858808003647420397528707652018782370404572703048386861910048331650345210671938401928912070981253034511233174780023122155818639944908819210846021302720403630289270248785324963184723489668190198564442023662919380998177443558282318193432430184299050220917846449162763313869616871639121982648738535795183988864319442377858003444532856567814663154902908637817737486461585879231436373777378822362447696965868992884444953994145450359368410819214140107795314634338310009727050001050331468871936758215878339786109164569378895714567262032869286617768948047862426666356510615090525275285490838151219764811058277395623403387840520691421182945133371811143218192272248776055488557335753616737443011284489190563798543242838667917744334184775558179590283620618015054155891703700659019721433390686768318750894101270869878454255145297837141506806555924554421145306457124054532102937033400207859029538424916587299359810952009674262489920882236082453462780795920805908313878939443845997555417584163412728612967929251660036282313899271985311719304884171739700643928162202920309654158597860978677969129447346680038122697551947968110393428546709591825218035277240731412291005670394959445232599655035221606005588935240621911370580114615390478910031744198029352924717497601934329814584700887168285134804738297155469327136756228468640487254663416018887520815712724716683252759771899524799335074861895481132351926377619045569418103089438302836061814998363576667326843345816163002678965274034416972632549795379208229136694480946098669337489988166022740983065443004012201581997335683150168923703297592340196335389105003230934409433262984540626875745206438230469669948692867656888369938625643332493457639846354970579681903668807143692119816654210093792538180049756767795522201174388906875092775488833328025459315223149284787354535670786975498951115085432017777623445525982091164930350502454730780024297345770386687448094306686018220574839223463549852351767697289333271995511596371419626269852727764111641715193522972106259238677685029673056356683022906726540724092215644078888745920196414526175516526616158776675666644598833274603833050820258399885082306978443642239912069193492911407780780561192426597154910710228283739260014958614876526148254734607633464807205347317321376241249629002093985502747315061383818136413867462338511026566799754950706384098789098805235466097121570236527147565462230149321701553324919352532142984201073144895975838394196238522065785278802193373520675335304125672460758221917266981777305692875077016673304161128415894059248895898378114846482456753319976246062006959443955913289738245808710059914603826869270974555869221727251080319065221258244874831235574533676635574911373510317255582047750405005187956916234260826852851630268744138345096802976931235937780453715313959013031510311832395384787172878947602538822550885971075786355645794984202075307690076764521123984059030241679174517143348722323349884378256400510569240168069330449576584769428521830166833538824577946319050316729126258903677945419280814235779403562465953276644095152970790030030306682090399288528515456270638383225415157164924496790711274594041867490135230849736476067446042340119096268379673601926991381172871555627458401375793267149279184504836232537272129394411122212749498750978708303800307211358208752792455046187833567795403133551395835720473363619075500207883225087378628956183060498433208374033777821887918785755540736454924111153303871832362867386666653581174708864797536793208798242326902345619973905755716136927236282967463416640353394537458531638622155250263027252888176663406630810372374952541505183990938307797426804153943586602835227500490022792738228344648924987778740537897166899271986967732722365574808244828519136217161859583270089384741644400951017810782836634969467412316477222791716002426000328668295814666855778352048798777883658009934602706893965830356579238151820637302533813188532706397823857579558246849079545800741793509721528181669739515461137045229333010849094111678843099056912496374418756432694566574854795125740152549556285196667897042641309417793331361914197320173901607253230608727807999592332910182049776282416581503150783712022953825899553408160903248589739699664026138433939750582916167396300657078277753833086550842334056027648703771674061347368990308807870511110894957177210049879643397133525980684297150242213269365238552319008342855486154318687404770466601092060326837924732547610042186336595248511473340421234963872790376889037102257079368579647671855884459182124206702066958729840210442102675054514953650438294780947499556282053752550837326238354067307890421828555455634836558336726544004251488221173808397425595080775138841480207401277331975478252247200786959935337557780243691520164362409796322506448595104903750649803104809694016948236753980956738009238406229524586849684698177867775920345556552690779392228948029643357624766338438242150430286298261866446318640070296145740274730169747723897668772537850567050102193639573093437287761905512974821341649453731778489011768996297497013351558587323972553662809577424793757337890021571099064550307664748332289134867157089696409880099533220203634527851725543235072086951272533115826978007039883774097748455806771615062499283953244257973841883164960221670970970590389634395703557601623541195271641690901438568395368616312591221319793816872107221584299249030654997523187330744971743563940642203047122632679134887497132499311153160310333669631722717057188861621286741524020098218849346107842927902863082137758396897474479977513284581777800321831284909658720323548676093140364523045310301240443551989788224597392685241086887857896494227068304758763860921256759948531256225098689078469041641970211209153822525427611353787007877357854170024137833047764345471294310274762853532787419741644192355480445288137963897756721571074746289499739119997692837017185880734617943369455064259064932706744969069001944912244144561224834642145536607793010950129577486647010795471832259839988907040307179135582894885131636158207116402849068676179376634720769197642561946668429858108690869004601457523077749357853875076914811269805805188565981951040578100188068659670232278400015092164614822146180285668180269516996116930830036736869520231123594730546329207796935993224349602237643189705209431830278553066150323992247896655606311042923531390401409579896844247406988902973074852662758310387397234723290006696506462336403438649663027361765367480457385135075094931167493531131959037782568622440824514463436720631555524882856768152918835375741072666270937345545314020487919230665532679938988734499218334473620495594750308464389687949344900147539039600416670763084805388226616172095660417179173801843147760875239026205740024940445280653628645218604966704556162865670034927960910776967339796178067425923682619853948686499880159224245291074374037172365754579189613526659360606786508994170432529290144106226714774211007638926498703587153200706896506953210624366573139546521184919260068236654914780488425087379215705042747476532751991769936134776667619263217074230600062388302234226412585464286214129869263370633696442086960849815501950431718598846140466545156805797674489202236277165539258979865647374273659812510347043027626620859929038837337948992727058367068268992371411018553241210488206674933045511620796327126654538849480727504931510760305294461314307758542407723201880827535552229671209885798600896416204141290146679858401030046892691970129075454569376180603010873689892309224480097718808797609403059182582925842435231460897927370829889645715929159194301243051648701985645685855641652610563423721926489877900941644821200423902241938391187983460416277670928472055717414443276520027021715412352495815363336345352049219601912985925080160218470734249279183769271033515201696628356910154091232046184502383325296571466524134060546160540327151762455955609166414697209867188718236222169881770780370049820046548615963632357067000598787534990175399076576573630454325245900654369782840865731743272334930703485412182496965862442709565525800327002364983620839478068265131168599118027303943248639716152241034250372589913527541226973301687568354769982501196576296504584267833174703124309939952285645670354665752270699724773494355178666009531474523492237619976495598812056630769679276776655160269782932939494573465073325479944484134445843957446262129585794819432984115064741125860392536074183985010286042096768666010815463233308504133064824997669077028229154828684763127125028690871970812854044643131852592798691890070995254714203671951986346947454015018977669965889038142592717662656407811734475888872239138907187861479042744144866362112625377323393618890330978805717990402851687378564692416891529768905913964925859300939717842278289681974444752132042997524676647448602233694916322312454423670010287071547980453910393219939455126619812724499329359314065060170833786649970122098785676990264575395568157266802702410309299203360290805893524201683536606498322078904806741186309955225300728244649056944473046664099256648682513792100081623967429515019357413909371876413503765111614681344391477718100504926814077065487429086362820322809010172761739249623972447128515486334163629238796986036122506166868309464903630508361894124847312822319942779007426743278954432506001262311034057539427118543809822858703609317217335473992318157106291241795604258268720989680422446791198736088412684224694919113974687606032213566403859820415741946585430457877790767375975797640088294946520653685336362964460141040982369579467764646342406211965743614204890357881876410932395396752709096828956483097746488194819279025242048730576010980628958302427600748689389081421993882085687679995306813099925792260460508071556996786227780693871156516603214796918379132269801158691325900672869616060399049531716848057101677638987353979845541373720217562804579893019128250977221558159434973369521959781345827324038948820717936987839251821835502621849083073442800302092524508078923430180578727925844556550684879788244000521180826469079454816846632184580407108569146218488726631800428409004401635592920854335777552480691621442922045212857854655824817658066573850120023054780356514004953861175811371252558448751067218312756461530705293036379482625452383545474161741213017178089170677019958001107149883564996514382334887643415346954613758108175399961519967845161613922177677442875743697787221028617035843023061000596179391068219192740406135615340220204556864017481817876129904526437965525044942192281618268932817480040193644115072643013285688899563447206049014579440810679522144755441953534756200635806974046777048727955937475874193680618093391474363352848669485876900189594544346267856014404036731924139679383057549429808469061376207930838531633513907798499076867895393484393316449363355304426907108513533289040436753051243796541327103298444861771476524387886101006754802176540534589370278928835102069702016501529803589978279230694276017381527488826634998887040719074561800218398759315476913930349124399150730489130015117251053071990129312718992923592996835000454481304439909404503543241594711039473390508147245295698125247737606514013044552926478740568297345578375842551513107654332820560830965989951124060174877634381866523305249929728740778496259041121394773363848708726288736272050809812007044557717046330269193041438277656768750966481555681296240335262723871731628469245553001627424731153651955735346786539365247485090381699026693518047800139070628279087696795878734955402963134489174458027147234694642479263572237185612011036847695606418935218107301169227530013127713288526152825422406167784255255261193448319468818188670579508605995032847527018758784027637690304334846553244959331759615417800071494104945679633058188883165091856499325753685817249611635548428967635973757281955237276305486082476455114561288348640107358781099885545442138987507575488711201789583762419223100262523728251614853126657037385238798409960135985796218952454491788395886675772766442529026668001323671825775943992821218935336767269550773192415340141088563818072497641990626374755760186112096211158546279640983123392709200867024617915535303185630336934638049330601143030107664102506737564425883497524068370223918565248871417660933801500827207355762931668549905933420033008755270311202242680657029621826374260972975208149517043763255868704828351525473030493164253702997067979076278111489647204616164115591067702314963279520506867445054079767829447861356587122508369956230851334169976337089604149373693893894925395071765992901428827091009000523218337667217624950748926328817057022232466941976428999055531867070473979332203713596403722440004007327688707694650501636292647368236590775611464055164069677343137600439863752065198857799536572653081966659691105574411617531522070863079203878674247405390970259598021524093862448279404218336450922466013071299663267290197556740174217777116494221442562179497696116647846727978838094409681533263426659926253885317832476206195783865000657726716561373898637581048771503417727002475447104033877070013170330903375501065386214865030669341789391373400712064458373776014229141096321881535189445286630899586328066793623588049083000187594405290521030193375186429850628801312713279419032927528421269699679275531675836844886907318184175260646105787577601886120580244275107260400239574658484798087492871818953220957633594781934872820760595857393349529007190279841752607807657639075393804022795655384422073831453076882520775369376359366895754279039778030790228784312799100649351347150723409677985493594183510202380341973254103950795027293764331449658180764428250773367782859941147875556888899455963251716487756861091956967627838677480136403751960603226811946737560597751724622975706093081146627189447071957979133941312563283711939649290205812392575880143699854528699351814056080512242713359668162499362703342841045638961442730628448942791389033936080819668551044123122196021932101890018437188626740319824061456378898194850441481137992856692912143075085971514013327449500994818649113840777591887382566824479787952913648915495370906031589730503932335559789465016559492199843646472637972179942422621200610278188663589391011599349715539919027515790002979659846364746746001512797603110553793532168908150814274324305218330333761251024632640421312256610935328798995634761810616199785425234785084699437079623833894207716713346873199010822698931039125106232135537948061719349145477568250453301676474248201549684030670417276568232791889044891322468307402451054398942440110754487497373158046265949814430862741938431092029168228835274843195947870914567364295117583549866779331296379028535564240283408723058351721756507280166549125724239827447400904379230378484523695548119745589143736037009263881502038080421806403690169958083930137401886396170061118176744507195664605390600792306955312383366460625217311354007621577808273438881687530920134137667790202145335225433681539588897402818294240294199747657005463366309233537987056989568466327283924487404808662076716895327609773069185460728571202872204322910454995693729558419823675838887555177618553363756445716348198029721735307801688895648839625319861404691408809019933561823946161262455948434760387709187672692637750398209061163826902571876537089001184153998064948788740902036707499591630205151602937610617805568385770566571017155977120701700002115653889741455388509249395311881094607553057238115977443659977086093545772816265764161893229043349374827364771565257690262129590782827822258934356524288609516351442627883211494383707285380780291485355750466752881270971714218054896976464933994489709576045797315539106360187623123942063494545818325341971446720529966205853401027573763216720476199909817321881339538665266969089464410104174058765480430189448977964843474358124113077380832270295949705812276541882777296454946487604508578836889955879615548410042589423890748321715742980351893712111148377811072796991226284648498785849102418227626069965887802347356420319606032091622900345336827328291581443703887436857374019460991405945826078344201084408391369107085835485362352873637589111200214264477216134804427064419378535297849895120098934645644461872500789881388440582067221974826443525536208126361645340279675057041022768991185861885788556235897622543312614115301333638210308800082072685807040898946919834310202387932869709912562071292048442816143581013846159066002529184954460736103528583544355129049157026854559504655683214110291189752018850973559944159406572920431929982272402713964536499721500850124963338741004811096146265975789652964273628373804527847113701291715079914929946907959396579541314355831998198455347110004818967985026830850925602643440272226729845625368512296511399887755233183215355753627144163368711268524796343040906579254424081342394596872024399332766665577532513510568708215956265849856667487645156937006613840759728336673319151110260214149119776030906207805495741039971295881109298045118413958908170258245577222574374981548987973839683608496237761844769107022060013418693799243461659728051823083983506467668324968422191977941458395077398944190036933481462547275178857057667647706737279179929268502013378221856876691018959779340877811655832329431869769898359123454378401957823081448978208591826816991730225970213346058122088012138802331134890383489002875774025655094422597353278851320660439031015752314258843328035355543358591493261856319492760267725165953700107169793647445406478078039703418235919939215283139680642800248910726498238435372984960500197736923116290832416198528936347200597663396875102153565352589505717505452083088058099526676004039559071805266094601084135864741337845505227382816992117998761195526115517108237961871384722219309240197469741501725919805319647746780796238180532309465834289279467473435800551806386924162844991485089319017615477555749785619550901509249740409450095296203627074908941331245674673652152580589105914668582766442862824972384674755650239585657453247571431768519872949572281474583033008466076750483448548998244098675586547940012904689878209291723807632828474767440959988405209622554067797553267791473249468455148594060125277343788950525969813652210637173780680660394860192367736942901343006947501883577811880756837811920267771983396694324127149653114804093927491274957509234593604406009970476167428639234385383217064999258731820714488578883935887153446810346246486182523890013398502713480335981280114553405978731489376795831623674669059202867325818523021921181092598819973209783693106155477537411533623452616627025616173375057400266650239042754919077833543505034299934733507618946927607618504020397337005303994426622518668848121820243460209840435783243026093914353936029772489214167099396930430261924293520004466974529216890499996921186038269991050128092186192110447581863691313787858317473431162168842736245880909487700973927574922869647021590847178165954335668676746873656994512965673840618794511501773261128228173981834769986632099247768162677371426120369670545783350369970311670692091414398245369808151266490147889507255681732099791884331928772998123196781492953713466589121140304154891087961431249753537724631102468784080110586844290007986422501979704791799251815111687846381365324656893919578780787740016572190831823488985544421894538700498867372248361058062312612959303282686861756189173652087797412318166834607934160465642879327056581917699411296809636882666066583338825392553981506558981270822411049603339637090650512881841270403638780231996556529512053788926260327470292137361395298523988573284851432840590412893293244453430993478743153227197747032826973928343975746979472926226582459931051545663882317375827314685628627988751408800390904452583496765250990489834883771877722638028077930669687711604715113198611226951591772242770702577397834567056049755052521258312594336275895606102087896969279729801354399595460550846410988231515292832455019417235157071211166682972974014647750123917223799478545139650411894014382535785203633324038088306167906122501143577767861325027127178368835868684712261290313566341732871133980301826679171870236285487890206448110902273245911131343889366433787052789678734281325811495691369910520831010018900140283217664861153452436227879481163592326011814313482342058996219086667168586844860116875833095979314000451542190148079754269943782981915588351173950325451433691295247264472132438918873224504154319902046709917918335995171483350470813979126141855787710216145837424569832058063695538336644771741470964929213588820690628417254737221479262366304836408186513533638732929541765795951545006310406310972893349885518336852514405693094303409845666782859215078841048477154517337355437771061012671619515319042066913820783659458062929872263757838121551492166740176755674804482865236316759979352189443770581440100801229286510511830783026105403549561821579039493331711931355087587529125958378464084756010698792918556561737778972781472405400597853556040238178212519304526799241478002398608060929170855212094948255599951513760186728731737397614806672423996934094748677240191229176578435918913250981783694931309548349943303451189146302471893152369671903164718199496274092800698177007552067028423987733583963812992169636955421363343947489535227272333770411739784350537267746074301139442631860052238386026386007625775622659476713467379128453060376803002020112572824695153622427170444163068963651988890774596635757232381946245176676098211504074208502082390196731909459623675977361449436138354885012208666644827735995091361069327787971249344719311971630834779795097780363645394655194119287174964069925517838370748182036090465594909963003113300728518223885546791468523239981839099350362530950412869327485064262004956453402478838896114939369771340603186383467369793238915982818639707914133370172711738421248031642386749872090060060690219899422301970552020935464816533257513644768253619156448943026616224730928398295636900419852781340407996100637145229358507247017762632748635277537067560905892461812494201365853943021465907648699873778982625925780507900940048282003312257342853645349214570951089759233348968817992348538587860099610530734035833731377933086670394333116208124433258950208388224439659723972839151243372301596264119723197331698797617016691990331561862011360813824742987613699818939535945433501065118254328792205216142298796530680045723503486077027093243421626704666786836822132139372195579756545485621319823866666517221667261476353258954285820220478713356759112545388675746413009183109911554496898943841221652328404228376888848796665155720843891421235331086518975367155717453634317297321779801062472582395854343411218539259896788860365254602172021885893913303342129547255199567663931467096825534629847351420228738912833741771821670616983011268180072073161669941912570484050032082048871819590196277830658110212635708137352317794796489779045029344539465811979897001674924518744125112476696275562412689654399959016841732318511083735887051822823197104516779809279024599248378069914184316191917788423969790163104129558625582765436355802575662355303503292958009864602311959049143574916048176432143821794931784800000885747274543805722226615120979421632174160266116944278859491498696745058818564363698606681294112340213036540373030798194631489334954084868085475709861335840875294631773497125662073393885084350442554300752665089610686903628805516715949757287419788937158628032090211250264756550865729401585761096920538341327017783513535589438624211508157438326736777690342404435549907470917495521002070761973069973431316731217311944559853492313200557973934376095496077947719401506331937232913608608479951176014488796580662032028989095029835035548124035858328221887755723390608781301500086193596659619577044694755506266889979681338910659371132613907133139283247276713941257423448980517275486650046700929873950572574542723068231960438667604407967507255788757858049905741983876259440142201144332020468012567202907172209522405491249334047261512080623686759419620658519018936263347703121767455242816402134727297732104412851145809738548058043303145800630385688141296053194991911814260281703880193697523081658257700354490981924987494894223932249653483656613756179646787520396697211205253600864267670266171118070087324803461235919612615644381327685839598601053652324883716612462462899130177506888067602498577787615743685609344978672408988188428810497319580455130985910807338891685993393397800892857437837111353427428896543180868475990663778865030698573918539317048746489133421098919405536449295226981079104785484388304784420580426128012202400374342612490743590840071723579632440770580192328134506037443561686966080076830784264559977738772181776206297641153161397017791693471077553864450291362189712059227087036634038177066265469701604781786422088664778503020116872802253097427225938427245033734954839207489945337110219304381082146859248700741964595286779535753758004706071044237577782352247283503451889707096496306866216553881414123216235622129907827107185985971941116964802133815848881372609507965243840550793204995105963186164406014648470909014097067938520579294888174632405833360858829086072777176905819285966452630687679329911485267470730711458813008294674618435718435280413319214166827084906104549108269777119817412513624082509827288922962576469392397693403221236951508556978368554474440690826733308646370351579479030037538192126539593556820359386508391773149005414510405481528025803052811500523500356197924004124057233855966851583881484553999457620383098814159487524923742414827874857087717152819438452551269846896790896514229030903464111623583383074643185147479875093121101628539247314610666498982751160505066253378967291448639174410900838369209718704312029580771254806802303379643347796222107981943906357943846911905355068779823540426593365514151014264131077756694215004249174612280243900477466823486104934726492854973561431735549748937704247249411104251188240354586623501845508663541777570774633166301722093960604703361109805763092762912637082926475377698055843313412523144920389542800996798648989638861782464736593521816800989480769169551538354944637146795956109136271230791820982299431447938026040753484007532882242183784034373369376191987834018521818534795318189436460317691488647172809201946865753022091317002440606667355467831446468467299207116498989801810802963666245364208769063501652505446815582115519064878442003441930664488206181817752659617055871100172074919445113370997822959802675500452502056264373652082569647933578504216868954263046165456638944226560966999056496196392561131814219022757367244333133648669670472835436174773277666606852987098227252401656049353305219658992208219977127507017704194033912746356584286311979770509158360121753999417735330779659217732712428487412181003830014244630968570019055414756912008049023551462192827333229577389171747428692602430269361242883436840770809579311124094584021166462904128212603237548817463537306756758695259116473649521915930784302639420848970895951443875134845068139548116639307447883791611563278888967960269955820706586327642134807065861518662319052397164805301304885790980134374671058250364396927393911542041032492934286197249264624474607151655612456605596148763519770400053236144200151968692905690282886790640867291241606855406331290172271307622408226828861162821096021522248863859813037153577587321744564105831141302647243077856896841448349777170586211736336770156879610359633231325981901591757307308569270782948247050445296130026080841065343927088887533044668471316894299432233907484905208349550315702148485066625696105471105031198044203865726895919767887797165862837785973201909428759096014373748936875420755656021932583570286434151975372606008385078518074669751906166433496076718247233501179969144508135419331296297524594141459793232055719994574555314936691251790176747008710059043029109143501264443258784653039168702005897351318979227980604781880265613173915048570892657395193085799691919755627089941851998472183860831860321307515495839205252677681747278061378764829555639341715998603106574273211032016998470358194446429208297775935195003333046907953884551022873538027813621992422172918282798925035695043636572029398973687760648521841914563078490165490582867510093474254648838382615769701381237589503407807581971672453436306602591348835713782133044556465753155667998847933674902386913423196538845675388208711204154467469830949087718518727589369222345490951944572220803773857256232355519465887099902558459057557042090722939999381721233588801396846996740880992779029103043609365625169405483592896742311849961511873389319852144466558986860729277244734768668116512901716926656797522248887918511171799297047431188999306867625097338358671860473840549021962398410363258885141798214366125395836883279164733602679316280161175269889644383307497008234389108384392734715020537031532825588933439510096280239309670757550204861116739873802900586440973991945161926789810107694907959516227767988245092582268543615511909190778999699886928402500076430410381482844168737605220969863293830364777908997475393344067454499497084771844464419366117059974320225931577966171182192464259856767365191913753324476005345128222294708419076903454312503776852402593778349426869538851154393770784760591737607090941448641092062120859978843037411544460939825525499112331366747797907445132774654022753400424600159102321167227364358965885513715492985691597112406991805449768161307619085324898774572028767859174591343409551688756394818699238480610500238185455990377847189572261518492721408051576936893757494836282560441707284707174576037331953647496294634373871180087659180968746184653735117259157762725134727698697698815352887189478804445145182491165679660603767671587852183752951964767604139249432428841161103391182322140256310637963151466699565580271291625179079696799497692138794903090248975477761425465772420614578746274350374713463212495227011265519625634432336841136064433287137603278474905597106009277938711463413779329145519868913113630847341324427919648521395647931096063574249346822247223795505146184490015919813107624045449907963452695713569066074467577688280931671926861218184175033425496856024430101525027515463186930928231633582750119471832286916752368195800523628366089434976526488292673687528025330619381800062975260339022161856628112679598552899880382770234219014527915247307870652794513287645574125655876558927424698372477162659310153294943633118714695883342980828499553012694628072563164847478511105288404288690815811436967419291876725401015901842503174234658030418878654810836725741110309186530484801455045936772116817517353810156609409715642067950165058283953754525627241745580449700714341954749157365446751024750951199849266010778536121495608748682878815943509439701405798986196014880248312087706297082707878124844644318756299588628090018480651306310418384549514019821319207407850613720977048769164308066510307211817353345177373085864004230347778551564699866655518744543299333731929835922152464873146137128955556643344122248745214508132056179938053452729115549882029814399315411238464085483771096290001025697940477250428005729904078179024382538052301779655012886675249262870074113525131778989076210794026349663575256931312472651906515453484983297271361739943927056127987582683322203862779653824823955529470174290195827452429172419543886071438048760183276547875696134157241760307899316709320328827162639952498022570724894317608108101292600780862803914196734170836141811820397501559354336073250844257855990753130670056099412502098733751617597385454832946098561185343027726691740887851581923036976831674249642220841254788147678266218798614115037076736351004511382899895364539216378042573490595647243487266021268597672451011354798741918896597095509161981878498129409158536700281979660961606509427260283728284260264104468539413171493110384349824768388862588854682022650420507163453828394851631634384733059266877276769603042497877718927384935925058570808697733064842436253168540154991914255930368441341470924423505758340394151431207297600757940319373671299218491986403455443103122872537231070087035185329764285272546425899370864398814443014356650842127095210690181367131853121406746020156628801988027647738446062505211387738691648870454690714056641817747576971713368237654652333383192078011392439718022350289554544181935805498838177717256145814590669240123213101555374867537701271687864808051669885235693741036745120070015139946314397097657966799441847949817260501909787269245356003103222328557652463795218502444971051737293306474973495173658760492819531599719184218543764253963748398148722407900380697909426693986174807851213277853072332993261768887511513395954631199425765607009879907835194768669015235785767145893574882627483063056509630636888240451288653234308070584099554206819089343122949909181209587820987291887504920712483931979306578570345510713067526946173412008011389393821905075657175503950179977781776320123463719820278443884572547470985359680487234090905807364558426704531049176154695258834330176773702348930452149566926532996315566183751560419712039882853930763219985704131315110247991025054756688882706244806197651484606347756464670579423942932743731881855333000627103540533978188962960688141222283445077502322024799566693210058296643844663831933600806740162882639735110124311922952168946586775749562094847029644624390325282614885780258801102366140704461986891822030657574786156159422399124433837807606224083219093994097574509516610923568170598794130480586090394582941906173690824134397320399939694822800831334420171780818953268993910481236691380415568772287092479884854877138979445248028974679693331102347919059579760157653197299011893326107002415616637814189629943458098581515152896846740845619098191679405807740195637962544576835640183607295057273332297167648939554220881727457739754636913249449641491175474994759285813992643597701787976710009214431652212152423270249098365262110079106495666739310508983172730648529314330089501654306218341596228199261274991417058632723608945330367714157437340222481903890879475762356183484841692270460047508555778692444866820418550851136192601508864273469130050844196526370091434125868347164187679081363473344112431315329549455420172309167625498208937028221563485066959097456435751119737991907835885870234005454060529969397201748451755865428350962514863244163750783146953032002401854245163372288953129422140242597151847363246244210128755883525409380288448371502111999384995606608248707879083087058133950402000023785181785715781186307204912142562064779079231876708062112158079305665206450970423362118750897521746745947498453121299994229452571115048995670021407634545576515099674342924343367440975949536428931038598663675063510406035537890953696331997038153431224075182330368499868904468506160824280655197053218705358767673245085099463340696404859864658090131575759060994068672655870200936650417183225842886244726599309726291215986086531746800858529852584617733308857184738668033224072903629151951203531315876862039473570220401977309117210347197285179890948747706041974558271394447182972382941203987637150762831891880308918733726915894910205962984682793189311011586484280383016790510764796076397840308201839430613922544073732134868709844837474635602712419853348472654397258469322384067631257256488813158928259135180637575118266341388628989525222071204143638375048486666278882980399930253836977816312175593979100042545046947488934743662350724626600091298081561081429890628556350880959865369864744189625775942496181505776761421780503381837879167176286408260789175396474960105175098326605814113660992047338234549048226038434820619607691017844797430659350059322883844075396968730318735991713600855320415758055290936417662735662575362306284639539208319151225267961785235580085774215128900050029124933925368493800556799533994164644768617984074665265071685101392718813166577318895457817088196044285529268001359965487332149205780316602930822881031107140615824238339928615031265467555781803104808173170193397716731372094633907666466009883306566872039958582215806232773843432154491868312570461407831777263810624231724220651526728267122398231602846469073949646813191492424788000059597792670851463746672279934174652134613512105241826861740103276211666503837493929715631186174556690203409281742612315127276754262154922998512390085819635688178465584685531779937088471105807842201360692475332829304235049450473102303457038582526744994900078348611107945691210926726198631330952595207721474057878995609057401862276400966758474543689219369070435880569812186598793235552709001383258624283094757429615740873109558002288733714872269800328906480387052837304050208862683308188588987172168838405471225638763895844151637809745448261223569846820062867433211830962402364465757593596090728014603405962050945778919267097894907819739854553768401147695305289570722544073997829297934281077357489413962377355660425984746453019920952634045795303840955646159843272884962082330869866297217828782148234792939274881412814337573503866968638051648028122223211523352476806473991029715307222350321580604820919464192964846070572929789224401375180475033238594769021598843884122351151082648931523751748051944800713049024563578610442846397265810452461866868861117270009149428129758707600347741068010990014675204811525434330516343184419465994952991048988423845596107994333308405752899717720431489839262228779907969353388598780069328894109587715422232376805017493928227578697539026934983167919860856977244514664958196592526157401881595748589011520269847313371246010385830634064872591566032830579862366225833694268428072430140797677135457683724508988287632253132347799878913365717245912117739385159712285525713777843436861378611640252103446087659024757886182346728227448580240569594207626914702411245880150705550196080312232507792783185244009703862417670413856472203135399399919779626054873270969303193380878041254475715672346301545028807014929001825706333916326168909935887952659756478215140184728198300085509257131576372839499249277567097897800503493547294069349147071899280684384341885066948995564016898362841663612058420130041125145331476134759795341380618218567034736942253136438044604284622040065519726899163920941781867783297923490337985037777675723042823183673873894134338732878958719796244722996326365325277998455430103814538171970670697559890233540334034861137751792570668197086545852795590115338346327167564329424152409585884852504607676054053505586192457705186917193432511970594242434870015212637093405726962078451020415468134649924791432889799735376145471678759130586222200710674393442775660208759488478529891370418558184905684903392002023938458877761666209878422511261047897260903473507970656140963829142508974227937077228596845790505697526500165685114660494867925000746679274076865327361965691202281670050465754270110835862400822961628495193786290476825319462273666541048400083711153831073544995209316754994769489507656595720781920917977463693079859244527354344399355798422602251364947002357175966411704462764612490378665233134714567718803387547553540286171369182176614345111477494347000458275439977051022706675662431299474453714592749489466139013573714489182284315381189919108719767798687468941092311943242497434924361687713600106559364852779915206652590324943986321610813678817342564668929703134863388335889685575909999942825145062146539501259131881488531609449241707206965992008191429364629884901212683461770763681756923275028444310673110049614002101037025143589749364104737566007446568186128610232491399941312978705800055416990999115235044915570842220395992913630952686910768744336722388337044461939261597072989653581304297187601053052624461196099185747825636505645735637244429414843888741618783369671067395634631351431560279211286552941878284529304101740620751915384133059587208948788850553301141404291004482709003558705755008041177358049495356649047495231583110717628935984504056452031170023297455638460517817903418118005915968229202027877615140099000083119758368356605351993712159829763133146758588343418284712152300009712614112410357106016294935816450986831498363543220466680395315343749960589384900882816876462648620181377927739914375295046104708618833575598223352710853700545559829004282324207916365028752904756760414281113540172843324541886987738110595458526731894278322260212226103539689309453768877647497957517448757816393620091950295082706332372999687245432973249415343124824367636934066555815485879892464135639642407772705553095064185794801059261986589766146674800590569341832077227423488316665926640072112632157190755077851822775811205439512362177572752525741334542758924060687547579539858610325019880946313012531971300387523180651330509477192968067893729720688999195443696741531779020361516558680402101656418807815026167132338666809292406345164394394938059590888737106190900077926419815052152499625597137257837488704141401161525896582533096630001828009613648637534863603884645420600518762684865207760224464043235267976723726876368542334325236419044891758671638586459169962949902257112556737923553260512069763328419571730418510204445338739687333541968814127361081759835751932853129293483741555403160041677058938644935995555489739264265177811594467344767805674664196034521771805790816866155576103811278486199947049621022211084797074292720429306432352779571885746717254037933916013599835594168009117055202088315926431775873300662688867940470663875288238116097571268909203418476049399590642422313633608753940315202504603230148404067499176896858402402339186571535056269009051947191811935161047269642756724626047692914701298132009813449712818417862425989228396042213641901010857323187359522987776491100992433670938315389732576814452805573163551443308864150510449315840475306008080145079120523895095582416964727164489534614135825777638066874744927734725051247289022920819897858270086011303728916315176590650274919528693943507127007509932417516366984939760637510913688751806131271797707494821792474429370444653658842065825659165739124626712469503753960639101101103293052345376527328192184466946473966068942845177750739824540295107987409315918833458413301168840427467794556934283315496735204124016037142014487375695791050790555058909928724233604588867753543316947037522950150697473317488216252085145076004463483223040630991166360134921625503344342574409008383888218962528436269536738835185204500857971527472282994076558338914008029315786044651668660630321361922915670096815818157029497914487652902766549356930987493116938736863715546956256731800209645183591860240277621697678750585835406731443154410344145101494699150131850440169589332324146596626451109438056291019812660152770967054181611030835919531438704980663815930038444518461665585118178935863295593231180445298800945653488091134860867398980811907739042284635537921767120501918289948120915036276242232733189321504063148148132208761054615056567064865995963523144099276084278769362805202012430158827331657434934552887906746680289955302652535793967605252394553146952965894004322393556501248158823011495978863492082245475722202452511147485888275813483840655445992690880798740715304565473634340285216396877355057498723306312049672052217752531916826445909685663642360298746722445661640881056369526414011991288453110203737264532825850138402438547517185084006131407405271639565094258724808583926970473427881717555807516681210454838966336677178572760025316766409292686309544706262539897724560428742888839940578861279999639427462729898208529658482534300872677770266917118619407388063937244731952173771455511559402952662225638769335863408859993510567369263127632520575535230650072800511429150307495105419106675477015575082600122047649866218646191931070614880487746942597132624483438818193578121210792796947652138138938567545573766987848507311239485103291085381387570829305524106016197821673342706958161003323867703448611397719382967795988919059860977435247521423234443504731385050502091607990514920489838249753315648499229567617870045598511978041988831744648878475889195393365981188890306445901486511402067284886365561825439219358151490907461713602695847709974228798440033256691816006060161059393107544209204880980444726162805051750270914430952200217854947700169776387423414254321085037811210021533000170833879157400644780242723198061820519805002495689903003069223297758694585204043823145476316821838187827690232670080978507314608905846395259313376952124434493898551591540178561970480065552245550848351235151654502892740135169875303298211930250770448899095567880101959283234904881054568494997478176693974841865831445011253921718560430434617964647033253290224759304246671443395749085925840004107033682157642274576101567543549879128786069992482447150338436694985642363920802119441478156438319478762938921922884543510475332588400618690199735682058690937827567115314458866971119524112594697517708273838874096064140335551597137799690529257326245116455012900440019706488684902509274182408698199002569793596771063520221818550458830454550655328141876030093274644273472309953942846043562700816837076288330397307517680264076403580262772259357487934012180447292735767282336083221753344143517145244210104108422200598372394900909772611510551529168551026354135296209631362436598781844039297451866336512236915573671323079251789266607197483166079863242867667765225631184239510860753398992859583710095708895340372913116526953807836890528044330853365455430466286625928164513742751480080907012472706488100162863023109542331369823920747048658768847740720085933416222731887749146569530517340512959853952211903101566444106572262311499262375960015688088437546921756842247415992382330945702727241390584825165697782954210920677025189405772573389871908001155433641131082508158798439322915896435693960405566232747065939436958250497316802026570296574008600955976452931590885004669435743060887192173887567145510899278810956696280530706258129127356959467241519104052623513707858149129958769605812445476450538751437074992226651018656243862874403847209861444106223536349204110960350330094467993075095269619851845935699361699647780918042592748615211768573374169713077193036685850208606479684834586573731090637284803965535838766931040984779881932618524317927964747582449758811329195472445912945462870890542002017015765321102997564805325219279209254469419743934199135417941030235915960188677883959456213485934666353549474656751427271169015263230118295120647701838156569349837351848615619427885653462906455461262657945541574134813384238895487483775721468622280369701251011406787185664219497197488402421082285428323574022424092888721475556696423846677271829115834903758956431765281001783907955043427694800967211200562267022820721154086945902391936202032545531113549148882327897068564166588261771293534039856368037209127751552902397634426299376677087726948876182919135988005025922976017443520896288802486446406608390369511192890669309314961498721872396871862157083135355343054827825775292680083642205342321355130804364516649474961515468900169618816510102819234794072853192915833197200090956849825789867089789484610794140727056044434357970714007809170934742776801159783329507718908929843239854608715224869655964741351594272255270791465701690438268155949757149435992969043299927701221044877109136577983403970089955535274258344476129686251299504661760145416195042060960409691681224733030907542938578478669238710843889945950737095844732680027462566968238554056777632703305606365696746773520911072249771842164619803447107885497275268719593513802306217687017796306244365273036301381095218514262949321010298688460824252756094169141461814003188078643288877686826302886312893214285738379713532444283512606299857020720135921395885096158105365335620059807733263170309114527052944237825521273196112225385651256251639768387379947074390182237264585971830313333424730817288971407417249368174345895614076669379190858432488037403628361986636368833517182832224087946366743833800960846861867296748140282648460601455648373667470643640334680270130929570474997253798035026996466105178483451966949873670921724796119932576374179036223074924849632061814959068256854151750884219451177752109314237236119061931080109265848245733169735399203314294193765240487001907663093123452071846754470038238426440567561615445477145904106096486169189785050475005166988793124914231926235600612807640498681121993317730381278368286632042817054637844708350428289742637965413734253649093454734163830578281457989859025271037956629553583855443994699074267785228103152065739774286426302174552768816712235329875476055383771827982378042388559790717827022139867719449130645555907036264250540063384243336075173526595528475610483303144903685821657371704599505955749941017069903918214196230873508860399249569858875653033027674968371432059270720494587668622202541372714889360864884337652021809760896596542913371585480445715651548915748158709711415846764919142596813090144989842619122610991016235969415465149628472719036832651434914519132820064309713625207021389769793347026931721167569633998679860626108933453333062523709552752480716329448235071889677259740337149622141991095723508117068262288158296526603271926576440094490771678641900308663300901109956705137704178084285727718622846197984969234541012104235618763314311336224020813704907147951311491732860614426168026330950065719607223236125642802991899551746896187158249133532368064804533371683945170905970115373602270441315757364006416470747452286791333713837737068883411949472234290917420950535958134486050434576211022432576656654361837687800422750229863362197326325091480882182919479087123957702868616704126407021685223614697049259611244012026635434579149547748164894140577687207375261898751018879321849457293454092952146394125259395205041294117515655894841400400795732568690502048583666164655839236913845305620894440191486976512990326787903726396748653728680194023459795725875950143148762995330201104956069605404439694788184961712376520793182235576722910912709463696027328635184617219308404107724893847476704396236191758550054065020047781704164108154120720732328599874491924152576683170182313446169011202183951873429009742099732720264610027253442835155469465480074937206285351079234652316297338321457520177671470251500309411719501763100309736955422239414628100736725505742053656232781285378380821361284893561372495889505446858529255835596382037058947887486837879040431200280988896765270182331520247082608545561385246597617900198823992305558310514075264297240868378196882406028392763333668614998832207333116727332121818560951976583950404911204624503914487467417169102873561863881868894022595867806084897944251576254889321195092186079034872699995544904120662367858943451856006251305055818991572075706758480687828200046488101678146161900858291079148515052304028406344150196852489095418113859600977407986347169846732267229850049307069969519081651592483920434445775606630280896387463625296601835266879963629592229835073156376180566354702243801219981954450926165807880193051914710861422572096181588031072882122097039298754210820312243544830008621292078440408528759835318873261054318200588830917766603558221495388811423135600279718983810276201191856253664424408235505016798161115735023009758537295129659980378523754629298388488852288045722895416565954094712820653732477946610030266245021210538957604955955201337361460912436020237653615168852227028976553907016332532348308909413448769360759445299439229886805205432161399129612358066743807364473532455277668677536982565002782928702765065535127060900260424178243357055821644082765255149950524830251495199706882559255985270430050265427053183245058496645658283635035866030788639034357632061254312897650134066534218456725050728362464587883503470244326322108220715546757851890676148761375530237336481898608529062838060581028835519005462111136629001131492138209400962120730369765186933847416938751774343156788643792114993492118032334741087410423649333607258498796359869603603476578569280894665762932570897436842067916738511559114272244434038116756544458729591623006773373783161264263044285419975026205666359208023174732775220886673834024723773793041172831289794959777770406813138181026804073305498703663942253770128382777216011247817609224197068663547962652077088095694726040098525801120510793768120050784750262628112967555180955912132939126058003681775393361938112303595982316155334391222015508364616327732484131524342345877929404790818813091370468892148197926234730935283789419072232917445169288080040416189662049285671203849959648754048202806262324436734083046708577619634964798359654526232186272300273692269203188753005735700125920641474074492266320310067634440363206893419456434197774318650403533911865238759615600896843099171239711630144811954969598136590970429975549116707788467977733154496007137593080975263404927141917862992969855376593807513723261239162196004728979914197827362354945427066342243960291337892688923825463198242307435002650099209184044380675513352726116382781193046903446698518899163320314311031404235178703710917595044490724200750017040279978873367578276214814934356876267345037011992189442339301983868152814312324966156913242696994835798123577877282302066429745857557010653785449287333701603922029002261624075432351998780062967700530262771132793301206280687402067863814650910170741416204958270769025556595863028567613385795206310422309285582004074102341172921969216678695945742900237599162236102844591892795442769846133556586684063998276407482399456415468435914534604163140217903889303702582218437695136057393398648903407527641974263424492639799951931622175194754745158122140876807818840523346768092610274428471230128566211125312712240151810661845088430769302824420636083078995272832895141665134599361579499058551155815558148091635771246545602085642915396044845426297864037075822067490752838639609838084209105671102631590740094928430481142778762117995184441777377733431315697649119994391748209390752026864877980781395857738084257391418079756596416412048279532430870110882488491873785966412114607735563066154221249340385469839241821526653923006968240328667403939708955260067943389776861759750587839661725508831782857939124438809389493393467588721150311514177396618395120086173449852500592766700383135125816946453797134784313335028581315658301875473456451048272647573471306077250096437463019326158355949218275372069247975016075225455411949583581335090982472432718478033512575479980966811536927530453337565344505218169580948187324706053031992211621388124937124762651721592023527046000790930326329036391297364060047186075672656838966741257492589695319978923734096585308919056947160413168695389239212608993823240971322946123918152473266530373041740515288036450090843958839909250922325467374379893765598216308459929183934102620294939294249381087837763782540125160339242994273811278559242291706360628173421381879320809696031717414597445303986494481579011886618388575784821014945262041171077381771209444990984734083388534376083086010088312106348895041788597164728891173972523529071028107240675675085981366621293182826989450378494128459624980340308640270423413503568542552039548473211160808310295087025038055546600710229704673718273506670659828136450194757276682458675404108414907054087850775748267918293798010692524073211537747699353438856963107549917373615401635619060430791776758605018844186119247808104657076338307180104482573653824362419019256414603919107432871490939319097141351717016534788915539473195054521492543793359353421029227496940135845010684527914712272291324753123077888228448407670166115294423733130291131957152650282527292823281168150298820944454472908088587390976514852040533461414769221658741613282275641908829736836285016308247463903869031262325122609991944792977527570022801863987410314941743297006173464140767482992560845276386765333212992821978448434792474041861091013923477877419778810792915251556405860526243736310725900279347630151940149557007621719330177768066826846459634807987267700442703431142227544918514756886621205664912467616742730713523557918913450448002778022442885487276748680715414407988846449903107674584296520739925380788458040060904469266179337851407890119403694958409601868261313862726730298617473137094670924777628525485831431597423345858795587860659423196521995812327966488481478047836702496959976793859586047328756245244494219777824901188863065467338556610871974615702367536774335707703857470901982016745287070770987798088506399718413253673752422205352518392161500269990963001225035582567142248183446106572446540107041274226449762296316508127572800516014608829262068175212257955642736963262608077788084030479489850308756489973367738567627537957260429869554254844318182242709257002262603506840440830553662690301835702335882756450802568144347723173982012315792090844942380852562289637698839834918696034057687318336091753251554967437559864412142777790192968258914412317160811399407271110622607112452656357430335661133322655794366160916952687413198379749506805435330125758250196704620732746213099654992317988589037471427625731090902218729145080634151384757796680036352329164411273221136989642689403890658858403140737219330232100186515142274092699639077045138833876518485055904004567784847783641357624125104925427326005765531964586762976073804176076482159437367119469675870543322764538711643860965608264430409061930256681140022460026187862922327135867523531933700718129771263996334857908199378306565243195289486870211531140686868092237625915014483256413625857654996336760439365464474345450442774175980589149089564301178230840648183529588310474368274472589702745543651244029268523776769766910442475149099110707631769446908395824576586421597943052046054703441135756794293215764245697404618762810125069403846018668917432800354203534864914386692045997131765769212931454905084581249926948455596099045688355798562137020250493779294539850698656022494299609192132905578419903962213546288410738125016495005285982197028031956372590490199096340677837182229487998961099998157177052572402564587655301578951326472200754995401693929429013636643879286475073325917396331757675148831901304391606608833620536450563610220873911184790631519854564717187006521161947716736496242655428872387082220676799489379744596701578140378191264855834672058566108936985805887801512053137397723106085657647467175139245371654102486670923066473583387688236833904149944753914727146458903220142362362797058805666311745760200715270015291937388725293768392990370798419689827061106951960504369005505887032778945029640997110394297499429915514855046557866493055532256587826984734349096210497407270829450229316362587579519952420327983525472216330603029925704017308845044960439823325011866478962476131120687469723214512730736409753313442075484066868629295038337535215078423639271058475248828206664015598892921032690718600574729484356757743265738652192238053289134607210086445381578265216805358383812577771154310445357936635913114654288694446359062588292911141420182641316611444847142631283676650940212248320570429139554231275538542748047000441559493443970610758133010353728217895648035437050301645152596251755139389371539762585742558794060761831087277031220521754786007988339628693722640354059626561212194893515477725322593666180839534323766529164418807917935391280742515931876647536323883959279829246062155937156300664720055082407203184434259717361625476093828891714839654590846669426548894813215478339332972811021218784607068162872915845908942672464695413253649997032541593701458809061149138350899019960960058114162217093946410629427021087595663701729661567528655524767685399977452316373066570690784643446398772550401659011452833585291025720755657172676329043089586460578049214162842501419574196028289344272371105450892918944823443755915111736846855713308884060471425338264119380039314892895755880737109106323061008158995712462271998830655625641786404663362510763868286009446917086342017289305446564457448728503081865406526419656070311352075061822670296387652889695850461706242602195348723743488249654757021956831425453954007405426576688566790113485743264265084541269890244526284744266985287289814913172781142103647339411633139936030796861122128535486585719800118019347461848439377231607768205259810622763609294352643323948228924097769109330798649347772113068413381055723031490773846889492913779413305982025094543153887334242449531478608359055024130479812011359090287585848758073772473333881878719474554715097149800061051993127376327218848395308772451695395752665382667075296863923930902878076614859846557080072455208226007445409085124395809820814365588392480838669685978066499997951224083906313716151124494941896368013361175303614725460881515202195865061570848484379538181352716224764257815627310428244719360712199038387981656678973439228079863968032074193671296107316832017773330054831610610615198423659625487145941597558043207709504580360144717683713632177920475841926354683301147051278215668886797617464567941843613749081468148056332370046157594612594157610758038824401751310110057523465061275397467680390850379106780084905607948458332206282489020381941963101827197866919956246057660377147111377891699949900333620644361978846031663325732901145829820595267761853074290172313261521746928948092899467306212066647436678099638600207229537130829303496087583805949216821806793739406277752356277280146103796999843897386469145378971184216214465992295589344001968843550117007654587761700554845856164785886701701579846715465897533855279083501409369135044214570463849743159743042025408373321414819799202555748144972549408973412864920553594830783219433260069937075669399806597815768394735941936069751193922316368569003997311006231272556951412012004455685360904266174456735745723579879124603342306966262554006906333061940984554589045978647516491444162385881817985387013852436555446404388042129703176639174861315259157814446813691374356436007087474053429767924685013879949691027780123012651085557672220410737208776730798331642142164146403005443527352114680059114925497904836137065830036087398879711716151655664350810984843579017316901147557221716671750318431662907687902584609661214719037326197596237511625307522839850393915836783227939397784378975330304670412857367401898448712052878281754282725856626293823447497555927920340141075817297676782689181867243255295178112948774318887518779446300363462872461352301592251854317014734606805220197880967589712310311108413264105745127599057670638314181334253693853682562641864551408278691971912600596214054025230643642736202126456556893181315165250851884367573990276364973947478913158982363138876243547075978613584479855357129271926029270164880645239073737718394373051162134309545545820930900159488125361861851385736098343803179340132097073471646114384396185783706058973129073315940772217105398168162496694515159049160857285221172326486783472193512297534361695277224990652399850005364727692445049601763466668012317967865175515567266432211313929639756826944979775505157146206886825297601099260460001854679322526542186538153802404167436427229725403259818278932267081653046009492039418708839707972206598493324579249533918458719909416285250080488074371760340105131352792513376033308102700889183487008917984750814284337558160236506744602070986360715057908755498171148362964826834643664458777655972402156591577848894018800301641570527740839685503385039568167781627148426594149792089030444617237371401818921897343281014127256497795690201872500658460571826099924316793979427143369504690752700061276062163243914503988748678826996648882068895617161383512837105869438050619025957412294034610233918637084376220264827248033620279898091005347244325980373093187459763471641326788540354461740651956544264167875571158422530091817462158418096920136518042146711842236644713664709377771281008857248039419061092814444513192800876491356894202322797255312428671263726660145245133791171863580079200780481408014448952082846852209513023072207713047126986398399496009949465724023517317954061825388227446194269496963523052453915946527024614795017907149772852756720723423793514034809698794532825679887112496912301982197020614529750778536331303718090530026353042018765355065173353414271341733962817917701076472813400853093715780418590459374476111911779957852298095299816029520200498149106028163675965738715810445681479302516845212357947745636905954832732037186163928539901473411007518411140698283704612726048604626152175563420278071478832641920371609897013943292933885758009841652715433522086020898566152938397822570680471312968331306342071420275109257659332323417012674243274556905417365861706471036755218547559837412569151692880569204286639537883193136968597730691097322869078386519110618492065157311571895212010973464525177111253891483068288466225762420210444366330234746470590038608745656297540819873433864860081747989963291483946076881305308462623019536350460039728765835622379864082103667631214478465330661891916287428151029371460111893027692207609711705864211448965794290772040027834747042694294233954986963577176643914128737897693467363894544482835960621855466048506767389703229176921816603791016365003827939919468564835801918172844289775183831452588762099686256364597500870330103880946223163275005387416543851878865114123473033305150234143167315858211038380900670709449831480253930679177139148401369800507820827882836317170167005160456388778983195570031203858642632641007014467159803837778825598980618596898880209701048954283804314899891864577381674323512540675426644820242865566162695167317838057550209245457324304293689836989900854915787545715587858271279813529598445017695092445799580587928888970989860527778542366161270137682632925728845952110965887889762169130116384121212796071173783030886398475619883976406379933795339664943871230135297649627811931060039262934120296933383797468530246449214739435832226256515553117463236084260957184612689492869054185177166957654178693815300327341249147138518182171960847799974967982260338680107823806791503103609291010228411811161034084078683604367134207074342554310835723164879223727568355465427857859369045347817717166455208296888951352297829604805692252318099552192923291335883979131965216354760348779981463973684132803191986724894622974643736493524632620365497758645613128036598927776933727698836314007691004979381369154238595301263818340809468993292226746331281997824603823526412396191552380488375258306711080587506836955164245670713621149898450011580873763840446071619099342883310188220884620346880971333979779610928663234072119453357186810384720063953701622723896057840654969810338266767615956627466705945625218709456512160414479400585254507722988838560614137983028297186959933582700020358349255208658092172180698544297550897315249202591893047235432248203974769509708196472855104678145697443804186264154368599723654536263815595545835213041505392580411952151336183011878463325405643770741707148374023581533600718851318491978784042294677722162879172242482652804612336730517271129737909822003068835353140443997378540398632288061451995801662771648721204731986303666497422161263841227179150987792682292009856016800395510887670152288235229527616727204638681025234687269378797719724172270652770029431733994500264945178357098126695736746314171094005713881409343560980610249627515786956193085012347600772105699227844927831467041757227269028919401965935883998438997114307280228147645598930875627271377960869391230187520366996620134658470068268762586198440023079536536211262893234387410540254144667179570966474229445187076293525996227204131171300751915109471654900556789062424108285887464538044896375668954103898581384343448840150100904441117950692161935953653048584445116358606627124403253040059252504531541186133143509288001619068614108165735743391277217791890256886806481837287387673580893142006655029112631988123842132884790596604813371146114697086788733861392501073506002365783190614564042818970853412194371645447417630323525473588983415742085359193441619901119246471622919830977997287872090184446607863493753737642525632035557636811559015053212172680583445328784664668912305413251916912328637791847037447128641706525322390575398893682815062338222482321410535332834839035307527114011388181852753580004372338411204426689363251592120788478981375076835175224682749150912763293838980684046093558599255705466396959815643937619639614639436354351517991101737303786525611598133721990430249738870225445712911533153734502789067194312992152117731414746171715855013259274180695638469034611031901020157121849346794430875575776411820534087432467662364663312691211473023556325408505416878219938005188809063666985870643970420631521294004552966125323177924361688226628382082965187882423172057295064770731861901068060351391213083178998990801762233230693781290402060778416184593086434115791309834874651621389243266053242864348607336562206204981233602267769600138618193573648072658211878481283917355251693878478392848325127654029107810796281430789657964716049642094558043062728248799177539747902721779662629716900274257740214021159841914551931933229385098664538294724402937579570889102444848011854266544522249459477814919239597125076091813821913073453229889861927217498847313389338108028864260204069204943814404894228598385342584743880096180823510018522317951777479707926524720168816034063872120394415012818965268267688641177118046702284632133469324877824331273871372097207731103259634384770482280512123572583970977348080210774202358163539408244334428370502382546186131469606143948073498191968464002637235117679404389041589148969644980134713027444083219159817852798165345881712218371673436217781162640249735659274550301477693168473612763032878164692223697120011792648607802816211653978655875204571524224960924883270001963648924482578633158558531606877123803915457350329378254844997249516097176689929738292811676464158744012458288204335956899156258169717323402743803979835516746677018261601882825327893166286594385046217410607449866241330683633068593595053907863141364564175014428596952285225052934069759104773622485579199266099739579020578121710564922684411525035111831356930382482031631483642096744219980638537171630085237397428646767726747360260035982499931613744994043877738980457569188016678381134996425440773080374048285146421087752510278397941541785260946645460236727365490671292142623715817968891784271261834575639083514145401213584046692939184094333566668859521581230230256165608197472462164231721555576228983129462224770976605335561982580741160900781217436997675790601812455702563500523167803602238984708265959289623661271525363005199049122978541772033393228096450213806888497970204158524431172336827509744331019219700958835346825611651033089998734445813457426868706276215701389573186249562647568482933232504267962235335152231639590272230526668861112531162542762433482392421503660286584720685187685078843290773045894874382256955007304248312723772313673546009343195834684147791499603148766371377518407731715596657744160248102917334197373546140174827762243925784776116550277160561201014077552885664723839970100660606619845522481136284891679905740430781507469170751495485834461770427569039287428503110937137023854502376489213621471881273279996887086620651786567414182346042634968236380635705558631552217929157261602327289136240199572451104828789868350544754466705197916774479767994979364363135657595733713292526134944265444145870810293416345247661469040268927080904021925215729515118565975268031671744047540364310282250782191477091067647468154230700663359002223265607805647949271802851894920322444136971072112151572064291898764689974601755935339999291404508851701993690345118308696831324407106986429887108594999684801276923364728712415336106847560882479037725798885474706125704347227271895258770186970879548865370421102918428078776276552906786147499120796442793726401089181906326535559654641042685716999957350051717599365482279339588376423912585264328600822687675647081813217526896296648015105642767076785173672844998922771199014068496516288638563564206172171696034266117298383847473902664224772968621101809814216172531484988873606356951422026807714534949532666780196148224711623675606753856307106784377567553747200088095707763070692490535435484915836318987497506650825706876423832467175428685337303666915652142269306068837925822872628583062220739369430944621886511008027134145190968226662415740940600256260406941876706958274762889071209074371263543713875314537846202618435174840877513107391644840599251926682768517993755816215420111113382948592932551675387962293564733733908712992281879863811835042274991879906594060388194930620394090312519743826838772648776340179679918988781743030266488332477011434048437499492146612861226627077443928652784333816241185432891920587158233421318098647228407580189175306871571833008566063542221238602538300549124192031671503329497760705050831218506514683688409747732773660341746226897332743032488532684377543931890058925697946203248193157874166998537304862541776390392678515970745207639914377865970266544708201474506005800367198859782830425382841282326272442885718621147182445713148570446805903009469094864676766460019677806911894307925682942151340554855721708070803372881178999808868520356381065152719244490917041938160135224465260393634106706979102245366873257799386459755923819073351404634005532695984396212527488586282656993382093638049850076997241278592372745685834956638849726966319093664002941113534808620178940956695694298525981037846191405995959278537796477798334102819951334863626576814107156224389757663381688188202996056398975388573720977693843282207914009229048475409806113042751826849804396876601300171585409313236168986763221979669373194833254839438501933783838278400116900519647770263163251202312468063649009156833971624919814841809237130167807244371959197301907739032942568252935920177708320162253406793646686226505898676794396751910570415783909017626260259975169167771971638382397959309885858202594501949490740120533156687267213684852485667005441906911889604287950381436295934307938595855308222130279024890608660308163991262947661001396430051726180249167532990787863601754058569074749578914087697036425204505606518680310225708777161978846057403031834588689066802726249303917223426626996617876471559549848198437604001750414864094466370549465723558413020405800726202841501502527194501876891380692354511619160310389134452365476163891407842182238508058309601891654381239975000957426886501885659164639534458741039774588901776497113257782695720014279272390160461587142201025646860181086401956445063088138319325926229151259259114439073521829735014538279395842390190472717965384738550783877547322025577859138130412381306804838069328953589917834440766949096263552215734928716037942614451429954058573889769107209810688109398878812662523614073190061259381743713599801778785084718598469988277190727299216351742777938453509372401093256251393605505957125858555462876693830657435883698678336931252929741456745373214963293596447604729625423690473196307455285900804779101787445403049301229057902479560632725713517724228444011925501202445109727323319362273924179095937225380824987233540531614947388823168995111795876585357669113785094051114360602128045742587776283425449369318234078569677862499521173173163695301012353721254961854977119159836185895313557279818956680952916340893727822896299291113454919983861244941975134571295640415719969933281985560759394142858450341740664428038139709924515492994393052695905926527426186786080179074646313480151678875876968542970832590192456624518137746636508910704997523851708691789706380981653764970971650674891171759304451566815871054979777430461808121348923778905747095475036475306521601934100207026972435248765841525127878215176609813122320645553577001893744931795615507712000591625940088766036283781057014182894372694935627723215626693167287646146939474470906360530083557878374568669750436497550939937885735624813262806969269684870279819360872295732063040599987714215082092936232210384782569985888021958830522715387102909207481396966536404033426688187186358500022309560758916545353590298054739103985716165248802835517121121083212996821721676050276950058710420138132041596802844756670947973829410138397137252003929708586414035488186989734162350830214015479105674013593845232705628695884673904633479456731141949951569964001134794637533856041186290529897586353503453334139001960207966661922546756154713755588733461649717502074206347029780218631713103605673778791037372289850375623172776245411222345144111280850202366484458797097021874110473195875057129566517652171283552722413064647022681722906143035580157551013868335364180724352969625388004229980422528778680747502574846093891769992370856859186875881756722181022779345661754910331249648549487853521419885142999351386724624817897370390107645113128881233602471819212941516584050032556006810687293017883491415678553750356591661968159175240829316913565791594130045756719587960009474287420050654290887800754955669322727469397199299588433398712447705672339537087736341227088889569323541142726525349768312590982862548573375917408552685906008365142529141798579637248909163421363791404784053550833043935564009878008450526353902707182093528961301302185832544226486608808427688709119801079169051315879128583633774423771890226880539442283944499143888606214757561691925251280213268793307014245303709400573892792839639367310764733950525027689295295006812100885193974997004492273437688839040734976004255710762361429336106781903161240311989093360395367200408254330655415037140291625119115365893697294905621576332139107563732388738890502937531620281146213822858181228800047252092905455536680726277613040549704262732237862957231074262883543526892380705932258446349691349621877068791964697925990375378382412477400142130235965909637242442145131220731353888066305609607899121180556814542786958081667064885945066121295720761721815110859166054970038280053801566266083036838970379046535917233328545797332855006497594921760568811575387734930839272410098266122646919301824764358288224276334011431429037838156152346519522411818865870727164779477758400080607717753494847633653141918223262601490749541978690228364677613823721513648300354693122990541474891069737813965744613657560935995896912234760908780805635269572524413547478708112829496549907920087303910936263865815279862594828924829639025481685576059662772270034410516566251564809518994087422688360664947906587955045422258029165463690144217920703804865818271315518285359555908508381880338652708705592766839875353491082213898321656548596664145889532823036754447751627945631697136906459320268138795965146699524172371950899357398527710848733648022867191472445914486271843778490373919433090884231425606933429224787019326385389358150819200969910231891160275548084759354365062889695665150576616860910131424507791272844794730625015103629500711566578275808706314135482328773988726569056550369319781331543608476849694800326779486938510289129243714771746334428470748440315781507429775452088763009315945179750742936004716664524362450448894823597327647256639680235537350195280144985659691663563752730238759518562603272338579529516847023431895328453127546969647847140743313812317447032083669294884420445636476522687743926368839691381865456492109154399888274990072680157836973710627775481064228411306874767717158826097989437230096322004100167176096724386709275732422163640705107780578799562582662932669888489272864906323457604839642962123537206966035868644398401884027286243386972797437539859589502853431147628928867186432852733197985910537184682239509454901001715513302627930666643470517474011927372186640786097356887747661213325599081218264059016174891111304220945666624795375013834660412751732241123740927408949623633326590916700465383336618730779920300369546162333091416821625888866544751828977810297356593072919240147157128664666978848347252308305298873768737481614751406354181129622391367988767314729284108329824279690616996386792496384969861572310703117519988713832951048812260456851887993089333127333544705498865696184496008026375649154049652977602509339931895247953660863202957551932244207164776470786539895527956457707324608130440471214267212170674622055264373651358021359445878896845621461949911147410636053238397505576802257465049138717970594540929744326343880597097306459595731955382493333746573813153370308277947492953630041212746462411696635424392390355337497962798923023439613944173399749650325317168869930540112364505699349065919505051493963012521661880929422657300819511412345817349527222874406781493041905321847263815265125531829494626951863350780267211777927337615183911939764055507551545977804987343100236610496854716016884271982510986343687551772605124723667659187314236226609182598550733890992456185199658085090004604093116959382215533101471774141620047087530255869182674484460856313360196849121151707177472787050754931304619227971746493305661546866765437383187606652343140770067701756449472633929779317354589428529023760056203488355361783908812572020059412091304853413160058415726561279229456055640463537979000210893110089898227268820840087205789995613529308027376597177428283244153512748171918656188987219591497614065676173197847519993644582351541387783880447091155562071128715042296167688294031083212108205784453327294560268013592793784384414977265232782088282031275589214094019213017060620619902908020505972186858991477351007676469756603313013065406964733546189108578270231951548297411461925210967675839699806858328571416042268954240147072204130049936689625224457461042827614988679213880215220941862685774277379022619968365942913390236216872032669597234493883609857939010880806398334865624211893336700075495438071377740607437332915278836611058913889849457656475997575821191446246210011357049287728074842852459106584706452623817747195270338426575164295800865792821282755364699082226374854844277118106808212733337344954548386080049412332422833040904482516755045285278389061547969392560546695292260013180958614605707040452883245723960065690848345844313759161609927545989115540013123463924880476791841796181284144670491874661400653892039234999164000309943451777370615667464688838771676726524490610348962343371684915512890445055448784706830119596301788140853930939880600548053304491348521888290277703373482382103680618674702574606316432739623136956713572775546739477479508027486981857569826347979524647655093550345848318745150234204799006674181296753172456684459041035563758453654565226033966892576776626995710166099325397082875637560466401699975347906851175199973975240383596828338680525255648645546667670404622196265146069634494501830706329577238944339317718152500712436006289494278814190968571230976484544942747139249181956312895882116317139192615151535581084092582266435533175389317476538029635887954239653850055847423887490507584421208473812389177635010471945877530723737051792759894316622510800279291729536172642753033669799007195413347858145113108714223220188370866545901371361875425583016022932187799771826552898681915933688466064569970284478842021588793421923103910089277602704251827323254844142136274740100839497810953340483051776170875714417642634099043515552138492190891491990841717612472405903564221798482277221665878019824256627216347598958136669953730049076312602532036881323159006055115246890908860588228609063126137117120034548052206863059366093050209313742434998454002129056051349151417932476772173576745950149243046433900057763602062933166467527280441393682757974053318189255799709906972794183689033026915417869995162648016895108638661917315835675738959195500306334198273157776514906607344519953053955894913102985916235139381256142605315532212814128767456169135000954883287545523684858622068647033238439861910706094360062060678148542739498176498559235362606623727579418277501876443615106767704374891666801877347462841884305099309649699469457111352001771702572126149003034167253811852403152678019061380086080855721600587739414204531020304729266500946178052157655696504379019236376488374118095134592185779788823288941845563552830816941033418064342560123763621811673562771555121200815924304869133663894709657264355654586097985180854974609130150855069765959745562452854135281095171509085994321305072576835195220659216872281976482982870584395719123377611062715466671370583105918655086379468010861254375677017826535658089071054659328254209399438965287459691082092018302904617074676541816822798429806110302196437645170310997989021304181410027879865229856232818782134026938792705003547015599441753391939356917326339967732429763845843836014909619440013190590949668370003093807833281429945232650101127160010133319754544182627548074092028833858741885457594436413160622830939708118048763723515640233452683983883879321125074855529854553093230286914013960784287148719204896840946392121198195566681411703047505927192094110978176202436975720847057962499608092637197608470946973250586599186163795426795964941710918837360068007697684716242106851799303247852867327223232513052193321888090455394584854872042355249045722183256652512635453916110377215771027084503381967549253744685712645562540103462178421255826373346133267083335052081972655256066589755994986861615230712533439419450664474132215154417478874496500826026390713283228327009981589230744228663710533496496957040310715747632980532459231179315123347735993379582464905514604612880456676439833051367106605888252802547210082179662665501538531384439886085169719228704526626871783919518507878993192649384883961344695242936493859910215334598028881298208811350150224147081119754463346745984544957095463505941814356914588863713305716287843067482164436193843028770899186641130600406066389859213108439199195584105843601257498738485040033778489935480368608022835629762235224013356711797755508641118983307020733762263383154443348557835872125919345845795786973420080550571538130457573757320158630564543503901719322628716217011706347830957138600991369346853037498479037194687958825060449124270191825175842164409848468191141248714514725747041650895708321883667441439985894639757879629039430209222441766832110090443277981709272093523316079211569277018119002935131244770829835065787933105829707049937163626430084302849420642308653740447746302258790296745714463047872852334101621326673288660542288138942966569455605935814907199087345738854248388458341034014196726253855915577330281308805105299963993540733623278911689546581639044508572647449244905061549350780497901441311312687945049340654750740281282615419527917569904884920041199293944487287867582892835878206275390517150935178447596931656053379902894243896439853195120998377082010417102231570919222877391952230797891574991267114649756269619114594702722497580804393170192383034989866310711740629177495576841175033902519283935722230720498289738274749012106771757464983280932416732653453966263199395906084856104142147480450651947972480208815937706300192742278845568122451429845340286594136756660036134135020097289940043778143317570211482897670608560361319553788107191648865774913054422406039836197431672523493213389866581108646805875150828321161648418948546760996555944590243023216536162610725513738609219713307385708660817652123916717850707848528956034441296937417416822982708136107568594422399502292785739742986030026021724521098688671780286609264262368621820161240946051981670671856488709991737522316804184098585963936433921160865276231677115207617128636508369179838939587387056778523026527223917386167950454743546127269055661466559906929885227017445889805360464544786852832793311464572765742615861914247765492201004075756327903159634456050620574840650257223682432373312679860617671625165285014860689074686079029144601004157909104894781449358600452615126196551367613324489157320339558051430970810533233435398313605908970786215490663507355145182761975114890547520600991424697264821764197448146521664680077168538142907524390118744731922248616045372962632564924669241723348436017639026327448897449521332669872712922896879984275199317008498671105268872561422063654886600139646958236365005526110451726284469284633548091165421234513837361584412537449405198580663565693843854028518097431515391435074645585741572843165568041385760246423974919747989731388026196750521669856819760883225778607022093486327730599882193474426570544825514503259693126951045702971952089926025643281043475504418209110904422858481541562469333476152483901232288906621900376871979663761989111404175154205750149194850809110992639078570685501191391615677287973994088724248526339470372789654802460525946660285730084864110551624108909857824707812279256625846595723124878312148741909163493644699277540392996157304215777494950816060634343804104405611601115032635080774911519237972865140638273277369219128771742278128663555447479766597501873000111856647213203258995883528976022080146241493651707760757371766059528659047716968456119273655631416883256878354201783167163644748428089772699541503495293210342544410528216765703070702216534779824055646201911808132757248223485675784861803532946923210001619492577417114318304467564495901400529345089067772476505212885853870259166702031221652989549751939320383690482785170874464764868605756430968922113728203346910315240332655353699210087540320924215765499255795878102644690073257911019618306777667092721958179396284024603140141352953042457083737537398581397528928217358351264482697892711234934731856021111567408196586727381182588042718123206927615958229131230829771051431227121815247392371725932447066442692446990155430231093451226547676579980088645315798336396989852084014334598769688476658193320151738619487567908699637727505828426511738684545962155086291009975056222003203947012072553231375373918917992131933860650266017664813435855167176361898182764378190048940236836531430947850958229934491423879952221879221531260965716572706266704500119381346888446619278967626511636538382359869994439937857146214272806955305394303426286875607054660662974574394858495353183770797562524592619299683149376512972410615403119550198663206348581600083664579789145233616821036533771474545388089915591863695348843597059263914813807355656923267249447423083241622734544375895735061609502390294609607552506491151621285184834071246062684313045445219748129662538016592727031036388955356120152964114220232913484316708681464021318920384133028712168160814451331165916899182023858810340829984001071189691943652792664760732048430381126079700154411352963613179792899238793964785691456111355456273125255260254608268790497263153106759101177619707209995725888070942766624688946206406599330044489923527740058795215260324972118260527968387871769270522481835797933779698790820806806291476530276967609218149492027170049908531974831425009180505422489707944040017654194138268062921511260779849449705996283986733819257994040982073140655556063121937624079962477573437291296135618028364269517862575374409957064595914156762924368031083516564596593024534998238659861689511425081550822508278592608341813636037984771639366966589044060777068526991139312903785621139838610588042357761570146627387821282879795602337386616713483526842814524894869739671995992384039278120271039120525420894248406302065817085444866071364667512503042522312543639292695213411994542998177007880186652622199216402075050524264933816815052858714359591758800205058514581438495570420507113843629107839798708197281835723061975253976203534498174032019370936190560480079253320098261428377337819891194511463708040109597806516019132431512832069267080178201360457119153444527740218830631389189305383287906759924819669131638536991568396768383381724124542791769536995919481081291173981606411395215170167545903344019369063946456999705147146607034722081288780544243227831226683202411660345139417471447959375558871118489651648958899673647056211050984524006629058596332428131014765638990981166756034326802526490378322363775362380585827166163392470935479306699865324647960511128310952398532884151073318939871563593717723888644486666289049988431294524050245780445242041398678553347342581181721543594698257328991287735085307296488013973995524570378599141282811408908131401331726182960459362539606615634056379671051452959754368418566587396464778361566739740586729907438207894865906197812031922485752699665704751053566235634655867908136802597775917602071431757293101261783786286566249710317545941292531390180885659808386212223592647989665495298227674293051739516834506864738543524867757300227662948743167368505485824522553864599080975052879560116687150966413180749432956741574079083721484548497666396470559059150701820489454262055130995127450581864341027572978657720037385194714875871177018621205581706559672497214788678900216185955594866344944870362848365584264767246227268486654697499988931874295068794174322213031445489597325751629985134471267689129901778636821501170849731132421614165623571489736148379708916149213063055802756911982613605285990085903433681806912658354618456793915245745425628309646343616725144117063714679483922538492272885786128503583339747187129773362350434840654401294960500570193833078747064997892316205565917702314155651955743721001971644675973638223956798149114033854125341152912971394815666830909093046239910395253042679393161151562834336588791530071760092665429629349325838762913687727086242028353408769638509779911756819776471546106069727848966017965318463599324104856732630746224629444360090183742368071001902898372118869908682609726448166635522285905689811253564209489118421230404041178964538605703403608328914677819343567144268974549128777289837680980066897120693481666015109012548440090634533153124108800933707939795187278091337748093131573767655733856861544114451949306651900232987309721219286908880531551293301445248555324772163876904936081253759683664110220034183955882866120295105421823005324613305125107224772506005632572530551106519109917572251790595157298650944522538700635191570069069633831419882403799080321037539265220329733338095525719311272962346881170350381608122545503413485263773948970768499264548266208694989013738868233931788761310949319612801985208473140735928025019655676105085618551592671288896907143808544766555891742689837129943450063964288199913194734875020610830286905030454493179271236359350492969029926863726573294919684859849863195624633605170602792887151326299780270455734148612011063218066836575083396111176468106731922164494592499605255534806340355398920744963022063360432555744949562999299032458348901392986937232095382599125756497973611781658082548741671709024925350806044877990569177921795430942301183387313936909802026260048469777007018430157030315396953618919026157311640119574738668582569246883945412950642889071453104556960874998143106927827977578355133425158295102132330067816364362537930161710456112328546106975810446644089305388764196619547478674782691565988846270664048242589613818225024771623758042186654179097677984545549741016725247718194462045410645151389740266653464694694295979628383135769272239846854282326514405448359285756818803239765688176730764049974805939475480988753891831411315452140095505091175312967696694700738803661075862867137956431209924216075313643193524358826722458176482370482070908446834918939504664009961557515652350148843406882659005292501352274773045455447289663186118653346049752114399135446683305261000225483692912953968558051554084818608800442526396144486336065317615623954408004200334004852029585987883229882046430037614563623972402581387150822437378207109764129299125270150194698461320424730947546000478291694358641618799413900901730255505591133204532989348416947654231346212317836078621826986875790013086870335192847304224366262901637394362257498435431113541742706445293605281625455922782244509907593754511313969440731631879213287650883005759781176929585883374017595092170374281676525432116989441984646874624118577401359657104555750703087644849646895003474984250473268905890685142806936213030658171337573633622477976751441558747754638576875062221571842142363819370389785028307525128605685088544130111202703285057814508189164460948388158739309999633519982461797086255048751035003870560578156981757596103543805266370040865756660436138008438062810680051761068118439167316493726361888321913803116829325494230548710966414511817647328558748744507069644467440595838843099974176987825409797216257946367380068259636738674629840144920360466735165755044384978958516317393184234211402910851383893498819515159491321561237474574508589641153976473591785406559720117847428908472420419598545720876161740300689067439840737372668929638417753444561435048687925367866665542400670673387954638895612494462334750776512617874835478768067277199252908066346237855701647802039334019611223015612668770279336355448600907733903273395446891404336926426128434328189168936587230358872601773562545772313852096690173045382402744328945888322111600644316371472050573230798593749025664936372214817609151877348379679593057662069690991878443376933825313912633169775381468556061133913349480103741261605847177798338631394381889027558355025095872912322519617715447029430834776250810689326361689227546416085274246150180530991585049449806748738423080315607035319260107696047547668835254048466065389082181773315580941562989916179912984591177147549254312928699565953056639404888480998716110662842854171108157338189061960236180509680868304530500192173196407153438623412520808662187434899171005899233546969229643930807987701416881600637172737256604755885001267725479215675616380628672748725167688860324016575717944030288907499821397365702570479819431609556458596594577153636942960966385008580190599720034217420587967746774098885618076642289757136957032441877137063472991911555346094228135946113479356939281040797583279859604090399806869816542211375113362741311271134681340219557049844126204593978578314205944041476081827039086287724611520318443924665114225670531489198848192480891969747753580676280637608007714750535058395880047294677782519849193404807631754715573772179829333273226472142622094479513620676151243994658350819574519196785399627895334765867955394630280151585820495542685744970957206660489899101497902901681877764612437652584100798061018590931108765027913348718515129493479231825871343993060838731373160163359478469761314937495326095986739749653258482358261326789687011072018249383434054345757787128736872016460183313059241199710310355334448653952785851912643591158263443655594550420997766034926402817565630795768502107931934476422453663805255329726650017439667262288418671692419097441431261789828266846580352466543181001659999346335918125406594090884574893521589247990490020492645400220819518937892345565886789511727614996041765140371561877336562776452421638797199155282093365416598420289186743226888510497852002539531666313606541926584036820882867260079463468222150120743164806237401161986775756318055486845874416791708680794462284722610554342076341581531070597665410072950541963899812070330901610338682940362401636891178128908173571941459894338605004804297445417934233730694346822433059703398691661754136801095222116617505604486908142462081412344122506380389138631123849442336686335432495334781369762740532830301110772879657907500699038245729164228694621054982278147855824937528412244738379545944136232305598923295156968683106097035901424217981774486784368149486021630172517364356434123297517219624442012154244205676751142186207881362316884052120983716905747147390197876252371786531294910012819571172276584084195901709247477230268281696122733840766146263820889858231308370814147240272291587875000519234322055011271998771328778660961697122128858442145041841558496554788766875526813552104582511791407035665858566357625096473218408091200133323533352038696834524945210840022139566138067325661735437623282781061583127803582941264189684386343521928029292439911104871835062350622480114003504056650950571927420682720073313718084714351009638620619335802628088095839213617864913066365387753659774641195504595321362986005686807558119751638485363805079707192413051773618919825598950411728163640407135714742707584615803489039253698442595864174767572188861500685765856963257194918444459723244152095658944653203884788724097395554074128162378010110705355354978465016011000735427745906615054250747884112209096465078699174743206478223157596340223086780059154199091402328925056359259760454666003252498791204952429195054009967056199121985462866930995664325073085713799195486634331157853129418222414592626875415321571449975192717917268623806338188989028499153151428952298068733532718567024910236853432273034329846792503528134431775737112370507259836539484894880274784081857274626401025059115707792567316497047089838763315427348607333925347435647677116361254640291181666351628346386371759730585177875361084549079678300884197786540807810867325647471367901029584089273444019010141052177885736189307766070582861074595992507300505856621126149751577994057269210221689438962150212377348484682465894443876451759890458717430894820490790070693968822001294260562009930472582944932061645996137093906466845416195426361971780698751917017782276005733096870537455393341786887983200875015811446312821634639461357792513037250106528915195302507982208564681838457350342405780427613230199534058371606575067101921520099217235865574443028830529229477360215524079723751980466738503727073311941104419025023456918087520543887164787180082424110841894557080813772901247518688643402030594792680367331513439275331249263905104985024861052142824099500277961642550997697729579948541356063923828075349421931861027518245904525342732880696627274587497151835367412873121119708399767476377993771543031565882389768494582788931683072354762473132740747425620882150421594792716694790257263879512905292181962341682247772470068110855259042798014932115673926135529512425260494251878679514966857497425096609429684382296536283590903226072824374549022059628172847684888037596675281788891527297744897179039175845348330663128045199282757053945310578366031094635698040565152615306867503551541976587140528941349537060946310706370277297129869325075189390363357339211209081283991159749849955687932647512463863254087291616038078234509193082318450573540442936453381191949625320148900962655695555608252337184008431515470595724472471533056200948626370414828792715639759193807651032658392533656015480341653567451414120581139714440363894348397972978579788126186916638469568957459335978976383337447956363117219251594573309361586214812132977821988779490057012231295137050944601606016363786618335972975464280906897050068417920633393278559785543866633513586223359607634366759046740938165471499830584596656620270676904243435465258615851757336030109150782403353803002085854438929097119550347239029192960884639589209272208028054854429166927954255320367600940506272145726566695402668973876583665337760471600779455081191452876947126773026375800597270777909438167670908283236695448525984762904444815543159858242419022442059340555211987553218310053976559738280239285492846299236476130363183347392256969011812171072438767179213961468013319700380708539928686945813577720755006055734212043264933272953512891401784363658007485378349132774949505710620018233007606205446069484865103756787654118213912441342195969501473975601819427236503225849442160217541021651924522240352068109787750723383420578903507145416854146028176023482303824218247358764843521554271792755723824988711259965109809877312067048748891658414255238315357255245453391976666020093740550673448072328760707206846970562475196459152150570020686606387523888396217417926127823128506709434112986525331163212531152679405235824438713771142048974531084632083946662740544501480926554446873301989697937540267556326754115294269798819155918495753488424592900701439276825284396618858594114997863580754095958880385683866047361427810272295642221658044956961820555207665162583298311834362337486841619897084978615383749590537171387880626878889066816639322742734606936722673485967959093313901174253245444669729800951748625258115089380763804664691399122895512535829594743218118480701121283328244022311794797357649019384602187415145378025551867424636589551229649031161385426865207285450019161218093863767587639920942915547635436794475507527231322934263612622847095896097959775994786101867199196314087404147380287925779724274819401492406887471321315936376903959824929928801468522142916690990451939246528515135827874523280907738658905175237454143658889620705879763766618061388769931952139877608031857307672076629438810711210489656909573639759463081165583485663077016377928059674428424558264735959892170429292978780452052827341806355460254093103776583546436295800229379133755342304322714693294986954297734563192079840725753063077697105020639848703676770133812770170735020135410650535099137794616695379335732286096790675048579019247447827408707944926040892989369221103644339306210211988931185664400625522410318436973567885336355674842772214648539250882250654289215642878682037399575621545800653065192227039636139249142618976082230723679403651120009101570728896193367357191551863818906373435861591458487426510794443432725687732494581273566640555493089392029595708095329591591525838063080659593226902913972879046213770999509119951957721924871574334858559275034043890254076361096721521978861090906620049820273512085173530107027438502867175802581787081579239730629512597528987236614848840202894765081488697106802028668066273325994977633863984160648488705198466655557126164475508693056590556776628115223735627403483707004584023288513621116930914368081882965349103165693892710236221537381383496012160012568004877682125298516932172178762260145394587299059421954512500697796710127990852446339601509326613911471677565336543313710931304821431591786471294144011131204191754064846880733990320881355091331193918753555661844550527461801311817597120950230424087488391382774573087290690858257922530975416838278325163815654549510540827346230868742654829863329158949630834961777423972471164026974162184250132499357053259020996508814325508728451917668721527957922098980243035870089963168897537464729901956098176630050038810434641445580317161682565484637807742280059074324703490747868812310394047339663226362084467839402495063271488604505376299041910514826785433767675268906807361914310251566931191059889202164478343303156301360435663469624976810940477427253389078355239811492667383039583981980685753857121796212348554974672811216476496964798233361590112553453100169341003718130075831024321495240896226124850426072781383884623254592416783912153715393901419491713954292864409538367651426342019421072128247522906836166704811163678511984582477972629688635616293592479410512796598521389240722263630970176066550958389978701170477442716294643879116690706513623819195328055915055723738014857308357805794462295179862117203569028245850503325751958172573034992713321470990283358568839543694341216366405816441977552393653924444350280920884882108215132956954545897168891734683710960875519680783211860004097021046706616777177621669967020718945012444023168819440266673951533928200146145995069302908928745922915376576521585788345805626949285451503685362309375024043698514492072711774596530968024876090233764693869413339365125386314742590501081543111461912227722019842058324035965598661729580597587624888194899958221959400114792926607695993791396522591555149343557575042624536859960810220297058549993176337904742644016393604541770577979257270541012713317575028268776196301911344344099262351764312376509351390710617284204499931653873445588083129991016419944446374001514760373940838458042269930071239963153958758441640505650384629805375508459567744933714630138508203384380235876386976014631011330872319519542621170805384624725727803320892920303820206003257086126854596330041572483683365765658047908584032049524473552361601053411457381180789006566143106236720660991674806343435838534243857542432302124900878573631750307158239929925115135908143647767704845483720096222216757993799273246652696194776901169646498918236990621640758678362036419377947702767519359181698118408082852936576368697239377305663643548111399751954131103476599582619949587566294208652970598325686044670773823993132939535579353776526877181328622322749814717551207951295614367875819920575967385159793301400859246970649147645650515497072732677943428376397031558543564143074759011052144513088517555681300875043830667529067377724925619473409898164369020874223884143425261764381810131524477416063813739593010490811599891409773972339136111348915139751121171776425017701279896677421645524466224030028716698399689444043375001709008805751609880494266258173901398959261441304015754391810620766678497457462618030651161518675542105362096239115201315362620617721979953507841263577968141087331056049438925926918084702634852489162369661899880323483621612063269228470064571444977055992651299535138527847162975566776161644520852700659344013335992234759719355397542656567983933924854648033652567998185547473126850330784580021308528888106282800770960204908516394423611972230029937024354835377965697318106219828874750340139869678853808840398416580871928567334441068942515264967676049096478184494535166290592989477487186501695121168894294453923534757219663334167640539575081604974917212140338161836636434008285546465767708856901682942183250217924578828570629739954485943135586997848269478241813177993258400031379831063238583867064359585003203267278006426318552993728885364415762122053473120980334046646480350038984825485110600654102817400254407456657263754189372497322559110311653781354732431228571936696504546896351621386681506909745715596102849777347179403443223363797590953857185863388943741741642519661987677738851267781249644223301579621527962732208404661959852658703230451819631748236392853215231758976053352023498099469867648012607135595190306935609279196182733281068909065930330799679844217029037127048937005009398708766094611453983291953512231340261944268601501297844141239766107463652724899245395975327895418352235229698527980378639682335644295180349964672077104328165422334344820317049251340143918612457747363831922831783521174392561709997646865660991560244700045287318773533748997385459784664418143433870656949859880331992971787155982391495580221123911126748234298119386617680442607760696015701472546587294815148511210249941502764365390915618174719669282719243414594764178047321157794783175733822007208285022785133708213935357694787255537085227206877716248706512667790301343770401393450050519901124917073742706719261431223339465395907967262500529154558936651790574039238128756134699297806320808326737008503346197519518119367890977901743590749737066162375896854416547381482686597742704341761478214269894279582754183428285419962800460553504985360343930865188321180852769910409333254499654728958015820434824200975956448399096865197005404599081168480590569988559443480368499668482304099751302025456592280078809860908551206215627531586099606663173249889240764976026326494474757220426954797273044465380665053604426529732098293327765299023339313021471125941957810422230562287775126940069682087816206133190492685301221492202952522824153509273679588183614668536982176721608923605108272930535099615495338980301922823066416063551718447958899887514023191202170818407242113678409216563565691847759482488982184376367738274911405113418251634781794030768382676845252898960707690378145114219011152397848416407709959642350488618734372939165980107200060786920226188949929045898258203130781405241942985323115491249779347517585788635229316940665204213838320971591795643650729257256014765278097015923325185177201352216982384352846182214331167552943563660368746144411289160643624194148889868387083159324851787846077605938916161483417373134232517452149818122065424634419197048358580535978579585655542797058631350987982663336154355277208796761056402412220636983095395275684622151950776053741184246775046125151177481375054946943194432793993478490397640456564016486375537892541060856009786340847679513759776075916871332744436617829794426613097554810521471017222057620108825249985523313179760638887745096218243821650226681784464067144985850942794744524786287702318697591812446568518447733101882876409254966427644349662295786631891291310468244409721859715251859263072297889785505214990202441693790728656045201065204489290690090511443202096393277560873745959265309787123950094278961048013252583261524067580394910574077956521239345528952622145343870253477699771936023508102044210691322153562952761845341952646593433302676927041010046256053802262355961723159776047744068378235413339638177422035491592162522557753827030383755144284652819498026052119550727153704387553724774662329105758801909218573765857978743627761628875480092682053298810786806534274337439604008372148144946746279066434417217562387345035768450863106427613228936971465691144054471620877080607703301128277541803238336952972168544459314273344524711655521758378369348180123711377637824209307782115108694974921431176400806388145496246895623745478758342895781336271575020639647415875998330807384793338136395976063495452236690706649628738734976553320730897525383439778583056379180611768287777919647479075804137931191081741914162683761439490137801372815741327406124324868730882814672771248605139015039063399991695176445285865623087542340516819512279561854887891811370527904976829409632877395997148585079171840269384470857098375036022261712737004407230291774873586079585838979095756390299713881403800658360262140941767280863421995281391941417243484467251904506248536555410407547888287998206519499273191293978929805139383332437348694119387433858861961357468743230806888002728411183264509329390799955662926663776283308575057841511293893136718312614378995044686512846740778222643345537077187769593194830521683047150712160132780527609538171334426833479321950227329271732581216446788617340407868067903862497882718913693729955979686325786689859397013240544782275789759608351038894518649276219237663364650764324108976222987753585447806667799439300598020453632965024569413036957877548894126174626560556678038356409964506306935637977570673719059480719016770981174771610342937757113287907281561160948994975560638214688390240884958372727631601711683678143150907948206527696008817433447448018865325716375263100658797451903569568056849533325272741862488034797135538726318564116633160238695601021823711568304580178234709408482672923080055768101140272026699431267629923096866842053131316930191803462491658709248031577232302498664221503902179093614087234581435457117354754705601416252261625059643055553987825678708341409411395218709968202668042319895362632486445026485028086676919032931103972776043537785031175388512410130469185313053212599922942799948846532163823674453218665147832348546397516140760786990316515003616164603443744303231653687099003799144923681932488776800159591075423120352843940165160176528890119951477200426522412952147519679729053482611614944085766911328858161857535703117498851389657349979203064264508549113941877910872057417346851158322362028320947234489056059091382448375890291582021253075682966219865138364444143929645537249464185194430469069976168981491793976620935369721535843111963159510938453585964638524795704660461392027881104645282430129134352147937687364739651058012726484457844908911427829230942525136187010140197602548629508507423805114511828494135304009634606944767740944586497464212612350715124126200728980900506744926605353549774332877651794195912927732098262994673581732451675753295139633152833382557261162013861484111572875844336459628639144862159572266823570214081946651675866959396864558088620763255640354633769115089846834440734646469872542783183812454779062625960559712602872688308674697527421930870336295417267015639663325324618671066649522631925383187460029723236963980589489949612565971940237538013437448686377207755225653031685303217173792859305816972017547773306635375049843410748301026090543819640965290116133101297951759526217590229910268192386900633664288090601300351505025888142027519398129191970708512732506880178814190801393364139646140396791727889380563950194185559067542366915248645875898002259218834600784853318772066592621655660775812211027987552796482635306738719334323051674613882770688057731885825520448679736206553188963484773953239440679030567882953930920711584605133638299462632667807254084922946080849316787330209302585928750540601201094296999234441893899908632341461492052432446481406001064857359727892864633550872531933136999339110741432388195090316319031316030664800829208439329154771020499421554719780576659062769694304915101112094840727303378740739075706868835739670646619191432840075618736639753852661622028401828025385577581113932823070282043051465407136430245814703414063922582122716149134124632670198309594969251818718752285878327763808932279862808786017985921482561659436619441173778167785445152255500128209903043801562140925454874346082468182856430024693573394032188238540848657030831174964184991458761189254387373738951324756849084873377506056739053149726080495231796280071359471079656365608390333246359252008166467637433515624115061536326109865661544096452116478056789311931969129435457834490400750998089042238700414399007988156044265077008513160307654492685446190391849054556715100068311076504736921403318802156198608216559183657612891321404561133275283864506716578045978340357058737740709921607332310791729543480853443671107111582712739143433354700762352972896353246492592984577326946003185211529278232679498144206782726595332509927928865663783089632075495429312228593008145781699450797734555613150376298527446169750289766943909849053176674004596931341857004918348344219473624747275526547479602494021372046310626083005672952972458823100171251988315658243227744724490934962282382267021427293769658279393582380050557102955350435874418088549576315742976190919613671408109076287370283129241418544765661169488483719696377035905473079372083259014997929944286291286279430799335906308601457455296843517126409496321111484912060938591202639054552986754827779451416090214817160725235973937384929715749409853191477028685081697448032686282498098278631598929396191290816828444036596038477727342208685120517635759971872222296519733909856649179421885739592236785182324822838950303720306363066365519002568322870251492107446148951606728451375172655761811182962719761604883977516859926223164853426812814145231877075198155865302685762192483522168205515760818264869304702319756454891620035795360460441127964443976851704505368809474071324410438919434149615197073531375087446006418071996057002950742850775710774178378672146460937596887044022959141171726491442055522102865613800013151207489074357091482318970553085020079756040049018350189485731162610176683577659903212957763092277820184938144493897767475376898656137810353223563228554172928683011080924621165768987337614141607024509779503918563694969755369993568228942266843674841279874901856490442174681288090449656201247157272464593679654975423677057305796780594020763704991509343591358997397130108448898254659381586948351278080386964555104486481506292742156468278581774851822048871799755068723704462479109068406774384771993169149348676890358611266060479068286394360139861952675141867858397968094128341278055990549942803413534071864418164028265022399126816732637438339566226376809688117017293559334956523455273973493232446813880497162853475904729532792067392053086426160903303701613093057791449755976194482862194638689875543146335031666592388517934296067901671069717157361982821737952266239815510001731367443582158872440217485835433680716522232177082435538527781802555777096382263960630786072029614464018540327362328923103600412804617579563096776536232288492673538802262931610799661453855633418883274997759785629104735619464669428055256247441425963432917716730061298675932015962091899462795699692746046433451587997504199421777054180037957790566686952627086743114590886940755496445713613895313760120770774185726749802602602607990710145209528512715951690751549786269680788897708635307443142870433504126644943704054252374808886760434866639266976808728359135374996464316008651553502203476583469536035956175757360977417211874385423968421685826138061015760986179795128013417300226366867275710190167505688330132783410556204222440626735344546592240324723255675453822685545058941887552403841827163059514350222476502488907635538502908729267313191165847239943240266793186613423785905563605967220993706498773045253484004166108126665563585630071363173150411370222021199776918058843509572069628699342160036632339965172795667623557417545199110931107431802382359450259865577109611111651156693378246151611204014218585843869824886412552798146932663249599317147197509645251317164370083406765526773660473412409137295585094484541005761620476698905312228057661007857849975575315744192534153043186908122784054653810685610766632010692752318026649411238161712970103257949861752086318189877229397047403337080794693751517092998895430568748440606529959632251355099841145784114986754479595742837741877115789120876315912703939845662115943614494063049984732632580135189394135487129719370745413040382539355267664186887345394696522035348713893876624951595105507271482871327858591336951407222311317841223171832017814936067606587508155450159650654370436668518705521004723830253771465919651541386163177608038828147484735520652790049721357673013399342660698332595526979583891796658064326183371534270598120077039973207859282529534467562602258261048764718121388058607713544811234419472852921303149811414925966012153678329632847282877459397276002903020066418841796533824600700106096680865235852154586477703214056031647964825734660634097369048333222464937394232255148678886142160096587224705297405581726767028685883277341213579362146847135757894201076075213475452615227002827910014800710038294903177336896379770213359037062645819075318924530296856372007422088769865086669085956566401837262378273800199010414727654867527551572263906558662062530871003697959343386848633132465380642624087248323398120095528122814639511534919730009709049507957667158338156288872991785046557333143233851083049680784027423433047298019990485522947839209444480590381268048098312860338346212390598553321150530456062533904225189176646730509551314825604610569307279188060219153578280527567836617889608972624817004032314345061355834419674848671799213384996560889358889543745170374737880929183327804434164329631884233581444903338900758482106350492427410427031329961884205493036209908946432917206189289482705469945414936316829870259850647228820804440932607373534960385836115663093531867501055947485819151617817345367758843040094501275973703762896015164157246715816908987046548809988813776637159674898954224216234215307718164619594694685352381817123016014958806424716840298159359361533907383268449969566542618239435801432800179535318546639951606945912669932273724636299539933138863720455249194771155225328938757070302466105567284963363085527434878627183784624553502005456519732650564204444398655417292294141005892774833582493055802608872505651287800421494345291420369546399510527049703867868789336841706123149189316513095763859857780153351938740075638640624635645969524484916126561832835628967596242496503414753455165226949127926994671949754290295341281427845228523454427906842291249826697334714066565800859074445171399585830618250432383553635102594858800400626033554155546806871998685671089716826774897812051161877445555276352667686110658509303411960999471995213085389068492794295342775282668278534886219188480601912040888082046951302748620780921459296564359410754958088153749233186292235205294015470105103529244574586333154588073526497280216195763227939905449918642412237560943978439209943757573162187967718818001430803231848227123592381379378700511571474260005820940261347579458527204787386092999057538601794637035992201688779570936267055324459008487105746699251890042857288329880950774889241057052464255517779366274282712671625278969729178260640581826353562751670898295542164231288636590710342160255678405393114396640963922520054443094052542021839415898726421935170297892277345203996727084527261794279666889029740057278190882541937836098558081350367857231887207994393325996166118232644377167913831600567226788957725171265858874064666951671388432465885749998001113154028001952276130829264196708601846866049578446375293650936176881587196209041363225912341896985455416551014450856619866423425319210807909417283145143129955768037108269666659058088047164566410308684452495223976813466367931397162724851028428731934477191677108282571245970843606674417346490247257960474873798213794772591520354432998547235707268964281862693839425837220346028563320257105962348841115125903601314532531290573797134277376101717160543596166835308953540732351907994368188729834632791068989409782449968337920788907370187691955794146264892509280689041760736788105127698530415657021713418078428407312248154427255388385770426844397626295835757549425042997320727699785487421127875881488146692020136108487626184748189453174844710857936624656203813959100701392992235430601379526269577171568612069733810550411893731634235914459529963149628221304077628169284526447286403341210780595875441483180653902398661943089856534443263134701994940408770268394223343723165370145181312941103265456076605471339800011558098213575642150082311921714606565474146659194486652118780643978958163209345329621673166078039344273134932650463830343745391526274903680990996442980550820105248412040807285522001203771122671531188708105805937809546358388384086604289636061074350798947973058324414235588038438950242570143582110277218033174642163550827877409929463719469686029976902095478178273661368250568162657575201801317359708543715575179536297241781659983607142763526295564677365437767739215458551474971254851695888896182324318965034505982455360402623978078060820508597295664635866642502522893911834496601151041404431298097542890606293411420239509313513873218670198498371825582069637101593260466160706727904416788882580331689670290843801138079324065738677193094865533543013460058111299548662102141712039740035509050715846810923398127124376451858093811322208400739381535911829534188769731966438526103343019301072140843201990715834607093866922471939068858405395787849355115965424021569749725940396257714284950098132428488277164179709732508338436802880983017598438575601997903798389602709965125486930231503695837504488778225629838436551513568271502836649541487329253665166704122486663281953525406359273394495822740086720794558317592145554760777004079242018779787503419328418567670307409909238761250472059858696665583132295899881702628418373344207223330876702716170861268918820479840017169171711459129251928692998430895866781500228105280811267610316279211800852994437866852151991582606392887243672353286377660294230904654143337014828378838776200979094991853940681143608039208783457509989714855839892013443666781385362392538972515394525717098137394132782387302483021560545216329594969524919176455089817607590461477782824777723420353224496929849746287439540304805223798121803346837354271175280856951248505441770381855802318007387897466901158623643782697694533179450735164902216315639607719061458065232132414100604136816600379356778227166030649952819054887973494644162190463108060382797761364455470567089432531400170703722322609801528665410854227239076949810488306894178209788977710606850533011068480594771807644708859867989060942540036078438201639076814443298372375510655510155056617603097734895858370705002478049165560423561047623163386540574271453196865482784414674955756483909947213923755129273487617239677764495017086237931535655738641493439892382767666759048097147249308760345136564987842517269409629657177181641858467092852473212585744755367088153431526911599990332360668656328946089815108109460739449822441612603109746328984459331857470932027832533447618341369565491179810104823234696026973001080684542880286505778882348947070389945448966585962104608881297754783070864365444943431837937402642273179470262175149197879598030868931642875748206317098194746792871220454494566071773766608640316832297639552384755213216014858227374036583927914662387774443409416269357733538909218003717995881889970395306064771687019432049625313171523697287493918150482774222856280650336018649352595639876341846254148894097926024922441853325036882231211503808616611939721675119504212241643318267881813537575038710257971514417696695119383113965724771345020171501801382792970166428325800841333986498592903629732298929431796841073107120435263919593633131626159122286948147553386713945230898901454884622053094995008222069557826489673916576746848329739033467012749564614539101969608514275625821963642670623897332323479920563268848415071169679584051958805373583617603285232793978768574122044079910689969260810727245051906925775203035316755020423409602336212682040636947834559619601760086210445575756183390334574138916703626651265969630746382605690955646462529542198085260162716079473951514455459665051179962060573360863044739329435640079053069864462192298201152307530809842792474349344521823374886029454617494373403745367354840398171033104387844793757980097657159997277161728793781663900368172023633440577090979413089450176057791671001600190724109355516197452000656895577032644721955644937378999440718940267573345120039730892680019481029888164335912817732273201457837346575252415007606642703922658575831763342950600983781471938434560180127728102251381068853702770617660405028886555497873084533888622334055688515920970762219575532187958451575439756026860526962729994653278399120169163122517914205826879222908155550074255312367031797065396539739530714889908657921398318456608952839791957924029364836814164220274720980446090462540794408929255265355261122757148471997574422497310049423627110504709711408131650751056082936255305281635522100070786787210065102158478576872252943931438094497571260385506423043821472324268901593395432637757298268937053522013568690305428050426327250906168982118766599496102393402964735013578030920020484581105405478548021414292195460480578317453974322466500550541517386736104943811602234178754949846268588070919237678453996885120019385689194694042302190171217534644111085203141395844321999143770422902524322995534171531081553368060874913317781356682560411380308504087318123670537890984811478870071471430672940081331458069858441023328844161116408267552608162474784011242368297221353652123287295672077636980940732265043792769483773482268620761404701345859438139565612896277742539236313231680665696891808560432633154405904747965492926012213950669839842601059986523445660510692001045586551811206461589480653391275982546525240840276936783988740935848452772725658764582028314198480174672630354097409360783762634854138568166431764915443633713139737108326298090265920111096929070499062883861460347185793688711308300081305406568028967404835762088344191443910903231354131414662991058444426337847682871694465894383642642934863103491023178535024076769521265515929372141971362222403440228028532313493786988709856641941243462767533884886250896354825431045660945825962316780714424130442909517906036595549689499743678143591139559573029152107289516241660188204662014264054827454285687126076946679444916835774583984287244225278299033084929197039938177437211400966786582384565670199945070394257469233501381435905206422372457920698898827989277636178674852097571928697672020178614846521226256317874313631977942868698211307056162086915598431205715575672992829396854384015410232006307931729990589247811701638814909236868632347188721308668947394756759674205180032386347738722136948931206237457272931816610162854494897177897801206659084787047033043999916564736652972967313892010939124931985558084922234818506704002802773413725136274661654483293099917588109892081810686527190402427451597970659293834529386507321834011236127111314552355598630440917352277708855758618568965108427190204289997654065466552917444048359799253741102257892212698860899120426548397783642415142845732569277818985099164033982800672013913732004211185793836104857113676894423110846855115543126445809044765033976595602291804136621436079601217498967540339467747601993855752609889339071469429156378721699358318185742577238588575970856296187600736457299269103774518330566752544612879380653458887042249059404288376549233613745478649925406786234125291042373552269141385737413053730398043673870956893113705216203051553651820841587290530087503570044898760469875816340139858840764000402997114618735133698754561473872984552632091718249940643463518038487076052602431380407655201622940980457606615054012232913355374407664616884425897926047926102919185694778593893195493784694932988489914046459759612478427282008028016797397522340291659494497837404682803470952512042297268844304535596082534466848048339563984453979077393646687914092737305725587221270487480809845579261834568101667828628858670459391723414129954937928312365260698679778775468915366292866694954823692639116689325358542370517227935667904968964139425393327415960053942208646406705206146523816338742755331474737166776700010858291881511847515334034638356636207525837127700686135588958055762198495986014298916119380912642245465361738411440686234177083417727701632449384586659789641904690883728891430863653152848995491639651630899007558621363797747891212147243664768246504952691565579293181750664106221547725505483853996912752482667657644568136205422044230199674081373019383878759556718986963974215839155283655477715075666578439329692167422659349289348857243555437266635161700917198636156101700597219486940769631554644626351805483591329386870465386055158399673946443515100983426304150246010637590086010830518474004747385834648045265497029307975765376767322334379153116382655456548282276652889402419917833425437256444561283707262415693966860762752368664229794748258176207539735996369904641347527397989671335742636561120908144390562988210923802530941290919330185400194077373183412630608228508636513763844359027487980773287464067357899939272480467475194782442718015541784150292349012397280828437504136416674738572925012145005122275697392909051817146708556526676415272321026684734105174897136571687158169570773430672514304444451870476897896718664891806018439831729310687554641391384429956891404364728603650685088949367860870460677978270461962654318914925949942619648791677611936720263510358317900909935918931844308358627192091802061918456840112683844727338666206733041666033555652634947395770827969632790348734272609861895348415881136716150044887867758539931903323674068835937187601659104709802349452864294442418060717955078767763174479030637223342485377281535076341966795403840599354212146905919885364811329203571961409841074795358366135323529999434010485816406286910252522721792449187473583294209005921849995900235626987215048903413665959567353981189548852677120479981992005621990674656398310510226608567871151055392457832772504028916205948931424875247957128338660110326370717728371350746307447929026673864680017023167786114756428044051163664382148873067135667151444529901710164447148216581793472169254054499463122009251431218663352824317889819495182441936354260542921717073886016730350244416732389413001775138850578362706999468488997921142896559746758353814039457841879206122940307066224639017427304032555163089016114270987138862499607910499320753556323105869033363321908372795882295315479746580762880288095217945682573681995053297258728591651512982888358789924185035150720669716071293946735935373011081307517847365563164759929769915224700376186997734103299092607785680972894195541811452671448608829807796417151677080792476284792058855013537008686450176305848706110343634809339427051881944861039175169094865339963093113929643916093320363220651465524729729978578642885715612507884527855961891459964845353847915135244637187430331581770102480934996011834594880529145892077660827660085175939029800750576156385115692644587214500735592370797951207767971414510152517551513940632018316768791816901397149972926755181019109587620775434851284817285687853467300224462091907490145280336165791873521960098973085819337352458786323380670103647232185444948312012940795892721098364440082276639931484506376354452736356613012378196798944637117538440812310566032980163728661915639535201815982470605011855050618865539476394949592427989543440959304460612243848295422405649598425423564439765698658049407708073634121439990650662333491215893667635975219163502356576113684492345632876571969195333733497937213154389496681278315400098730321926580048170650258767430147794058511067988383847879493828933934791529077874272102504405471530229705124702861299955951908436712454878408920191630176213290819180317261884746800712881313103188364548433929126901716676738681645721573324375434335732428987635585385174947556262244252746503735647387061125011748721488166415072738499207842240459101712401117253121372376660140954421322199012127299702971858430430154492757778414000763335269088215843826418182490024849834543208503038623311435245596765734155934323384309437500476914320496800791781764966021408849413747115949250870486541294799748769491764249988281024189906044586810033333795820062888036162745064191783655699337583655497409132858380275930796822993192693824653527145594190062910392407927393617308017237617197609193539261148955023925083842793872321146299458888004146794175101111478212260633878157187149497253175509168946789624856968979221455790721444295207542524253239124316394308932477912542474923962887796218535398123170163462798386139486297923166046575714405397903495652944240579898591627073611411881412482365548173541414435525751098133917707629481560926968215524062037107681222487571780091607978932472996604482885645447983245769023021694242925467400537024680769639037646156559616461907273485988766470711707039543428965131524890560886068545470266086634848099049980390039637557241742706837224499759099228811223750678687624709025718898015474642075010745118958901538254898439408165382148034652726444275484994535743297860600630731869480778660949714977277867777105076082277113389918599054984434872833426543962658086262375464263010269897158534730898014165245767449624161785753603458633265040726398001983751276506801729229212676563034289436876440060796406954444102036573641879627084727628312930363842908340851645342152902771559830660406974708799782379141530829145529239193859536249568942002096670392915536140966113843186389009462609930576087503098628835106934170643830013546761146957167302789148946534040424522804507333351254683518030065053517359458158793749294299186774004355423945736492012047890446327444040040761112347570956219906085489863251886561056844905943438104209032778551357349531553436307229613091603996274185684511883296605435515309595733643968378955777517307137539091626457868739923974485230805787592771971059214497293084464910800104097075511830036216728215774609077811868312225078066146257078255219431122191368958243417767367066544475611670917549143006994969848231079654217451604938380655335598826590446806767284391801724170711338294274447818563584779457169308928740693686189095077151519738540425780761559043923212200837485214811762650634447847716018934327848981210996059310503518188117408408574254526095535910072486148188727035382692397271416473233360910902658128351140314529092623400433528909978521599843803575012696381743839789677513509823118907886702959581378822381672685724802432937263762880953813806027437907748069919682481583173461906048638636860796898259963433871682722460314996406885902540949225682867878571767367035906026390076056789247114659258268455522051894396409662596273277144456162513615848388187005696295518706590282446450138352024746373580909768038952261261340043386690928380629924917881166140475158693051697219348291233620154424712361390779344451460561755361982994585325581749417650814209704296617469261753956234752219771402811594308347628207195443315611895248733076592670544967991776096510154119968261911477477861669030241328261358475817790918636669985061207605237634813200155352945947036625379166065575276489481538199167474879760461140424506283349953303186030051117869723552603687116079943248882211466683515120415753877901023997750695561057641100125471630293260297983826807076214551954719034410888437026173598129146701594033267913467954785330613809225121579356070207967834937115931226483782072626185680610647566789946497332789926884193438941794770563802242457867986364149002843130653412829123912229295896373271176825170812513485842174406976948928513201553757744757375320689453090391451648711273655650835306280456064965226614347467988902294999122463111383975825680324232804354014525883471694096316571369772308852075873045595136879890941344723424139700612073265194824796954363669198646870192107082486452918444248844535703997735768492058012991535266788350845086522233130181818618532290321865545648219163954558616934651111341129664110255255543917389935822244679424714722825976375567903463252355205269980455359179737827410972607775708973847847299945232493286655183427723527946437103919973497118696116012137280769263728740855323799452495720898813334525195314451372781686629080655091440499483301416632020254736461027095812508839268937960908416948366056916803081764904852930853905836454513661121776499702877630632174787459446542353012201890643586045099281841043964705555898801831754589155748724780115151751529021469922306471034508867357058331366975260838423001894922990177035663369283268856526499186522111427504488634510090549629066742292043624337809373954262089972862344775840627503582102241944689471941867852538137166799055400933024014396905824416674312136824198021085723720395264180388728399386609645466683059136696679234033456709699661195844966968629285694089792620073381803830669030384755696763031181913328394851424375242917514462617755845864865392502644802855215498137020447736103242519831441246760853620430189851541008684427532031597991533214686159431443210280240836762436992423593420587575374890109497952868229541187433072449609610156475260485034200674581715423304572200921961956267498425450308340422101836462351015606854930310099534405618075630714566473590021698379156716838021088140541576189757085821721329942896866964691679945690675740542421752423667142995878452372583140059567099018763204604765364309812689300881902877561954331470167917627808151818317171327318912180868746849699001136032888769402189014824163369932735045733928223751852351987564483333273043444548948336182822787538851249691889893606443190771346319576634397508916154688733825070129858020786864479079773792048078635560499110253678585305760347268584730877073077955716301801501256631609514136715802774723048838059729286346633114393367019357273242282695446151360573369084473412712909551269606645462800025182475600957698824344020472038453999659438217424845903552151245493537025270898535931030313744475717057224498021974355633350219377254820744441790088654996960507967817843131013217297466250357589627038330404293063154406187310499859363430409351711717324061880107189927238705334540349446043205270903616380708623699554850020242010488101915441705364121702679436271005371997203594673541202865263463079459761666163871827534406680224118293600977873934585809464098857798071529853827087891844958803792058784782622984401323354242839329912161573943418318709769867627262923764703655581173578933696887018979183869651287241994671898735765668971194242058342543283160805694376523827531545947214570722470200073768598752057443122439895019901938653912140627934787790465991676108420838540410651790964923346617225308182797673935416619533895558129030541303037722912434739223449098037794038295458221817922916059554983898060850828000556440557816887734034013574137920579968388950810510083494006180250208844661768825374921438021404911970762025900521666805036316311601204927053386324553466112175365977070599606862186288133145198003831391421384099575912689124315468635584342730236380829422726704102931458824310870095675105991941459897349541201137049605839279124173776482674234462118948183252486726117413234810672377010782470307167280855118392579109217891471875477170007187040424862516943159160697918593345744065247675986218834838534908624449839256210850164707132623986088460565494231796891644629821606576439313786686276676080578460807574428969653482224202976291629807748146158799266878009954198933791513422495439098287922785864642552210485512971615451683893905538590734591183107128588816301124347777144265830349351425734803414683333197723289775066029454215010187824846490196696964904423693454620514787908024124763105474330810353952035773264414237639900142939694184474320667234007461959870166480767923281500925805658679995441880493695240551005319268349044945825820679146025690530168720511722997164220464823791744359198958426648397800875797378958967360833622319538151545338155376906417109344204315663327823584797176889920930970613822222839315487791111232738989732086767054357390347528851774851841170179345774443647631643334821636275912697873970905939066310396724820520251574143931900888139871268527417433280602390374106485125900478871320878938888845403942416802613182537161192747768463604161189932515659141094376094394316839905813531980538386410424598730770202734901799455552196739303693895260996842409689626296162138769143010957906562175028382174175989876882981615154448816286827806301268609960130493744827701473092698644689937096470253436813178565285656740412922512507567553241784957639193012991350276976192028391808816415710719990478191710139354338250599879262952056825121142200908078632587247948152096008667984446554233753391840773960891428081971869484345840594643860628518633131120446554704382461088009904575175527343854128936417146442182457096059784227415839322384294841467577860866142725467586147726731476348707047658490112115493390369214842256598019869602872227860339614495396282531849964553018018445027876878609979993053598634666062272410607883419624038684658154090971017570158787124573037496702818759670755419681938701521378415293008078211517544805835600444652720041918820932747594095531639416505666213525387059256836146269170143605837201747805567449969016195551123522321377518035332217094784813598986766139638921230354907910600548675527660879568236397230761926328119498103278962773001157583251948920524636864483347538403358424338093971980897545956520500233429488485829283270706841341195078523493643018866871473135220956146583143295748716992800948134254041504061592385894295087686681573200170766975492741154334793515855105675779932490110374292973640241340871999666575197886817662965658378373322769298658419887992283612015584187172858754161797109003770879462860325290539306401333255688594307782059510426101108111564628619540508769999177574565121228630593297959209672097082270209100055725625678131656755399581295483026559432595204427393548464047988868564343304609068402127007554848462508604190371041939891710040090868474056782686008894532277620319493739106424222023216026149456036992808551079368707619747758675727227997621068954561768151517819811785703327833523451339655996100496947089380195955749893294026979495341340318338648556147548592797565031534681062189787673049320890725114051448815225678256903701465319685355778929592854916155558126519584469238158089087547039692306909563081130512609667329740065168183263349783530728374181576211713081576601307134422702196794303564574451246001069804260855034472794778527875354689189952474828615697831222025471786680504606279621919025749557515170544157474308842774143655450648119767938289908395080410539438113218111973008589023236061854771817276774371900804578113921005226716885205659045645261249237973554184844928496488728939051447831802866815879082021643468937010518949523997082098428454728971984336102382171438181758539752650486377890572603893535224806550317482286684632928736046750587526299640179533407588730823132632881328096402872484847525504544715289709678921320746204397268451051263982753366416691003534617107394584056335230831888793312865528734549856674890739742941872550608857843675170933628622555519530636467751936973373652721252847615041474741484893907721475208856618819264917096124025160710739622526474069144905243713164878282492446540134397066502958094770049884886093374147419608455878016275811651504387502407672897453378353961339926522065363667598644746194267330745018263413139828212067646525598225934816147041923659444779090649540781216849240735584448129654783218263677930115346137642389531692251267552702963616098217064897334578864980187835648900061159990650531202818417035724874669752804687124257547524299629863518941207561568203329293190801148525215102208333877398890513897829281362812651143926973279146631041520361331577555511697787879488289947089075305153357809920568367247385165413516753101007088653228727534020786091139289963902789358055336014678986462689281267477608191909688488379505033091990718096152182151544721013623772905715048810124370250855541444085896817394468477182879374363139828752710169378821671981222219554427518820000939644983994528605301214995216104336870099548490166122354611926969776200588575864876516482723697317150759093666422122301572057032638408445648117192694031513481387561139767684130527485833919761226045420548836313390996696763207635664999189070197046911706342656383559763742305967723875873665973866012739897287177609269629086181250293333826939682269637320379540246819027943614606145111847589793897236164635571619767971800729128648947211478900907367342059008788450200309821743949469875203684339742422668386974277631781813004323528992722800187705844217552051845551511192425301204128078293213421800124999023098112206716691382432986864077145612764248810850166181320989105301666073896695083575228482159992372556730657055998383501920426662073264076749280314425476665704986309519309076348027706429993056406066814345078614292085014937330892644134263981734008581058867361492351528222017006391166481454673194581371001175404498990851321312823806341709276252207668831481116321062586351316396757334124675374309182742195303392407484333807911536757820737996667760597668778557798922904095983625541730821956761549698072270201368568883731781704381081854444638249465985450818259882343701198518402604593952105666701883764646818149081358330444696144104821342786894250319039989522265269962968485840925441348747417792059504126808772755812939497691462014245731391866030498552161011586257682683698463705475461960347237101758269254878457306602511205026067432643145157442348177907818736390208720309456981156436206270674710829966505760885417820154876522718891137014034142864731378405334984455860095199886295494967758000228689487715187900000278541579447594637572686690093725121251083302257649606635295597398096658940294944099979156205065311322462575143990048085771443086791720311427732110052529592218406431938012360852787239644002428050440696722698540501708032074695596794100075677081764985373381309214301424356386700166135904676892346635069458508123113931293298888032403346506978241668682549286912599542451231098660410992961091749440984345045316409467781823869977227077078652733441737525444516758989302043719506625317013444518728592023463142456396238359410588688363389684727307065175197418285518646997559373749645636340611498938245440515093413716825576980710505193643156516055873262950686016101814191626457261614727166757498095126182562492290254928335495266050368908193676860810163681682983440735058413932359095328757184432113643484332864202045988044333426093559174466079835847285510943287435671018267863502286112293171219785040807722539749904448090617999425016959604766064042329418983336509736186450090816065712086438759660710591244782645038424471753808186232490382743724631523476225315050641905860577260457299711257035299435452394439331959778318476376613262472743171120817735059964479385933913260887786340400711138977954172674188625003225020341145280974352013293244793576398542289351285217549374867980363807622273787627826438161139887032228010715156149092271192999740349473706778079463338299589521459378533043960605156913761024173838084039952564117958694241998996467221239791689270698800090315494275100684173980456576553950693371018249586121521027289540458173825332577073431476746564622694133039522092944209303356739736543636333881055959430712716978646550513818314566044668556530728276464377454546746333727219414658620091063658192521564298411518666756307026540604987465760963983828785507517777368729380683207081232557137399187746043685050689650546913084213008651379305840144861178132652423328854509650465172101414567133567703713793782376478285658828997919633573116334065138472960435410326478664800385681525432347548108107748026783768860321008189168879377069879438896260078111004269317185690361199409453739950351883793471936864314888186920578104039416769900827359880348200216303416459774575015668299289360705480206147321628602970164078186280965596273787848292678876354233578302547707553063066365137809397118270925824383218290426128293666997199428497349811026614732660448244238676574640563113831890112386696666732256500590943869643152178413903205361080530715177369386863537089126060308861407699162334628769765586955487905841986946673554233244724985595712721792320399354206220262343473567611633430811647310459955588787563039179005374707333340869474637545112178165808440655336024474180980762507446615171166204445895259361013073444726161855444026984676428063790130836883628123213989674774641034103346211982995160210214727226250996267082348662754161142374087322725339686700607636762829711526208291842087765095524254978768783877838859131883505654315830305175538287500852800732593346320425325145541065061216904458091938987804088537310152199604992591080930650429915946449188588908016946036623692787167260422167531906369073115444377364679715232103542200360509393638404796402474682281995906238034921178610149603736303037366156078955157580970091505776006260522944598420781668249376952809578165412156539919232446015552257207426352145543881797252873512058377251328686457991136263702492922854842761465420647029612352022921044720437491885647523983514624643693406840967165616517951305935015597095240462545241806223182084593944875256242090705701086923622168576149856245060373234060487407908582000658427838729882397685109461561981194467569654747486890702896187607794303697315307225944236179094015358158788884095133739026188568865431718352793796056308636477458598347911343351518141450592885467023514538660291965047799584715636767231218826596702107245598420305892089718691871649281579153924229897856908148550879438087728677438725378403048283531930879324690834680507044958844008661193457865212842638921522483845557065389251177870713043806127087943032836002501458904774960101597642310357463533550591430027936566562476764186739058991187544460284487882212138635796846311416635903914286146823032642506422657415048568256776749691945065368693075499833182919496786965434750356019719693868823900594407251336879925684634727313215826790743753177922470788425478646746634563083761570783001881238168376695030243932348236347873904098639481040766510644531720879396669798690965953619535840544692419633093984903050821097856297510687791485478156266146285952298520952819988237108221849780580673160157846393056861627792463314933129336803659090043122606104597052012266336067655904903831632017574747667412770257976606716153674744288153607624025376635702774924551948803698342574197432731574922931180176973094216171857736922233240356472457596432203348329854074988631754000727536526462507974043290833411229026592810069069496935389787746507967358118928138702783834334888650553197373826646651732624775723975664724832046505749821081056318907581923939912902416571468036792170308159932241935897441545475689387287606682155782374380229382691818201799879447413639879984049064896914612440389276953426049940329539966600153103489713332797043167689241720161566825732864556112083228426178096096261960708386237502153344154153198701981395184842079955805568461949017558973826288807053126400684420253632184868436523975650130936289903469134509354966078103392017482148068182935339546348215946052299853177842342237702073084690826363557169984297655056062242280327423536129228380285311604810894076851148548869201550476768429904846102875507992435803850734469251735248365581312646721172782473862459456461694691982701264668253427571840657575430552593800573430207330340203481251961932216000802311390397940852085154602315308625222163493792642001290976596853136745273585462810110194529006001648990106695294181093221890583137578366174045741833422323828253605115731750612299346135856297485822142896612120054882531334029444274599479090057708649093792872377522928519913798543844567092874917462909529616282029063064480711066919435376065877094200442945502305761614929535999626645988241763003774728230291385008537263894550905977842641346863312720574630995962512294274517024112115287443685015092804586156449098365596448052957365450537953686077234249000221360724913681623446873509238194915327204648175166712044014672955873564654439000750875857969296288810909410057953882973387353540361684794476445755315798655551680709164715465030040659284561634917238555586371125645118469633098056231810850589958535743623358947272674622779047520127954278630182265904361771245639436811911130853859893040089643658733476138520212889484829407182603131166345380472697165880482726288758177410320825653471350711164919535935949379187173726576368660162771477644057092758766225056458148733349298132938272330935528598604556066123770340598779610521140798829831016139849715407153923916534269121421046134546672598627647523764431128711546184914659060124641144943458113496177923943041342087222763319572241055414664579274830373934884977620094475991112296092886392862168435042792293298151692613118151899532009613485860271767425109969036137897314216589492998649713826772270667038820628325903709309174761218385357018679763131542814508119888497772888478155596097765594895032947995960851233893408270395100679770538700695711493504010566207135978800943498869796332485043237520680383374808567178213105732674548631672050663629022632340708853751368851927005150584614407294382164235764335272756182059139658135663571009147614760374025304017167303196870151562151744309567005417536915418156406462087500212792335760885167225454245681095139827846456974811750340198985588987082030491279011561221060694171892239069879744908377605843780352641137897184012745127695063206678567318660083119142211030476931287090698590281014609455949075014957460808415450092464976844434440445292230122987320350433654653768523554958788905121657554868545025299456156538220080784342253156601732199877998716379416980173455646064603202951205937455644448962173821218992323585281670967599571302350557966743651506204840895668320866181677550085788690059319226501692157965996459136450382572828446317571275431730526779138784517776054275137565936038144208045007552143855880232443488444202302123553173413582974948413230380321947980344659961569493142223423174327421018310757262123791521149636253441623969416680229616847424236909317487967132032593461736958429110698534967497498810614673626583693241975342774724674813109845312460641025897309332607257226328475132138918999744720876775924043368874864960608765102741613921091451215769466418924332897357780662169066534940914699757417082124069850409111694610042837010451257328015334599247984470590236345994285267346424859808592159396274079156909895511272458166754845938515434183449911379990057460133593151744894675941265332753091629397053588755559234843737173876868167420198310365266614042020530895037676706206552215563380118421634184086406858208301903155181466551422312098155875932424361129279020450309275876673635825603559390959090851265364957276648908656180534690889525872936625922095209659506757054982742924699066790591323038210002843946882012189481354073879242401937645542378813768386051266356978265807173015471040534776837401485229631425622593447965022755118090300214955730753547360606761739074625473022207348461070552426005609117162836442161630678971335527078153182374810498438737581272698526073368928133539257069151500500393851131779273455773843926884464166116352505068113429754700329270167054837917502916459966619588689476772274869707941641596087336060960913217755811090648449794135963667741685213194931124510548807317648624734699863529127542013058923609964086422568900960038943525176992060587179570270657560465024648892373653566149530101014973211903138936011357698929150510241461108668041248063332450805886335575243378046342978583012154736121422543625349574384812067250791288820281878618773290906838959846253406802095601424039779449712535042444579155558606442715422512784856062393968287012196934838650666353745271357444376582887712089392150373966913189973720221085049932588611097471362822699584070285780368441177755786104053317804375682323516154869660206805470328408963179431986427622841263480505865439154499769608685459406769985421464909358464714899298875578216176520329653434532252095100350715848788654754107658998306774279292938772465946112827936640625258034337775945252544684458232205775257452268231878452286289489977331881709306441289936570524657010881855055094089900021072239013793202103094296036863467894941830341333902931292463517299665450483220819412192398619046898699614583471806649419819547292557300567679049449875509547335571638978278299348536539609904220381050362509584352719944163218420602118656211456947575372235007967102118330905932902112813487551876289495924526920024661854362275116508587290486323679827355657446371573431493075229950836895536255008530187764489761115528974989252016180243722365820544184649863251797274425569288784346000006465564744588847725334522020767269253522709301125003599817053665661623735315248314812939573797922365441119197311422085408903482082571076303097848888845300642735381355714707586665437278233434381403181533971519937232595027975830424957428449411849839721206079804700529718330515751302972571971642395440889887336674987449187139305634324225269307771879445656447157485462700847585016697608355563519797342581916931267444100413594877752077911251024765102934189258272094529536330331836907593918145031913506781860021609816408286196723972086678015519637053372817172770926584161140027689876592317833924999284705419967815447216591908514082624673645135697689375658134045304595836550009128959490012047832031216994943139723669312905685523586557663441845481043573995338009305612598330258258986827907340239262846874796328195390938389122735506620805918678941750000497802137035569686787401277677231136790832901032729586402752860436632918245183963684858826001833251480405565092501325034641105415203364100936607659083302332329830669678381963357573350676108239953697314272161472197089382216593204000425643951084244967979904298367437784244403371734137301992286829594384626117011893478065762734675467538172008785584240661615026515886126396130101411478476429962812671685165865038010212101229710149624325464855382394088466453135300425174884767994611355972094818778943415350994203015395426896399311750625641967451718922648889838456196330699067654936987547360821694647476801667200007209920561506988977959654243418876202567642744096918164281896458279196485381672716055027526352514324988952835313339101059450601192739212043175661344547955867833529397873527043530226072606849437539682851742560734167663326114011728693033122478480192425191955045301936516091093985880004920313380965660906005754480757523619018598243496546659769018287551210594270159034173608117036809981299860632761208906679879107266630156966139917347506255733242112331060710747439246110112259359072346953113466785519726074296321723330806330723815262724356498180618934096262534608069636445794418699035536888260582396222212608467584961463096151779293849037985654236046125398651971391499748646345682813848935775786988435533029818872639417548576830291647951286198185481244148463725409631486117351351991526230658247181268131411171890958639947247350977321216163343319969434205006377928295615347879036816785911011609114581887867039513607513138564244267031135942557862155920483177094181849075688554825862434864510258726369560295091017091430285258770236931118557308571516816341989996199473581289706154644121426713094294869995560100907540824013686830963550317470572723902766490789310831702012212455580491729912214301206649443276021150632387579678806101489009742108503875403270061409690167018380556598837079836659745721676649967201393070551002757223316809527942802292143526763607217899777581101037857728804609951965995277878328038629011952287502006875674201067108954987964755229313583924710681493972723787907388856429588802415662550710432985370936123758728065091126741391406395251099487957931053996691968995339496595568889299443390676241847394345678551961672997938227069436816836521695014908692546075452206158130076467083087647593565726378409371966624401463398169394662412140265012187492700889710078475885148817142035319138946151920321126295873211611319954865547250095948209710034913672531246515538338067721465243984602279892827496466880741079789289819175786887604963959899931184716907788078227341678876732522204510289767858188462663271283274891162335706193350816863329005921242494441990734019469900932431456700183886025696282886970616783691338358945268103897442121470534421369236915298630302292524650465154302992518641129192246159688959491795796066507782376891300555505582098787508452623477833525077793882640637212912386152546728882075390120151555379110039891490291213753580876248193105184021880854205113633880839488742864851296387969680536756625168494242290357970274482606226271722647718853762573612590358754022073316422799768044176579981439802740671400918205108905875750796202937752832631790674420387024919530045410096089811311787786600817759121622351357041630395224306394323912324906426111931734018064072585392492540719744827190799516202735575705743587380920458690474163280326721630240956228065537805542804316246997066585227305907434501804266073215821468324039729617010658170073912947783641543434456992993814138807813279463463494670321794367737303583725686113916305556060125414671557611895218727214392161064786950266560721108081251396880624859543378527656607159343780440644401087477569056774880283744555927805158216308604687828831895760732851981080267049414362392452388178652419300967293989154471639973920627554803263413712246756155180550535154936524173109386540851883269482879587953717067497632964028794422567785411290777537112749385704633868304609234250778885770600513139497057403217886052435012948778446421005418514206351172524295216370650252994449800968385264318759167069292995160686004287230649700194007410932482110944901676847438895478653565488867091056103827890013777202760803240018850557430415814783741445094680782378741481110640023997801827844614510781287892529661492511732354167766197595622110078881317343748639154818169857700557300910422936303612482167509267204639725921240688268002842569343805896144533896503574782831550944710150316566729418454881759216008639517966323845881313010706529083590894232147536465793989329084497942196439357215391028059804340346995182991965072166901451162175939708173801963518497159606568713350297105171832578406194391585023181035284306519804523898717879811435398644931433398661583898410762418097574083758903192543977149589389548049329787384199893585291982533041720936845147289292795752945381006833327748933076344148507972584916762447843918378486446417140789537387986229419260688324437119624645180597059533497172216199593068477939479624582607982391085848169162546207189162511487418951092568997805496064604523373570331799591056026693987067047190253307518668604743203916704863635594192811075510550005663497316511404986866272286086305698214648743944674842852742538417488306729583233251306831564071029577845811274812014976119833182051466830145880881616562156153718193937996314294019332522556976014178970221914749171381415525366630114055075853262553588392205197026881849401795459639490726799394629834806383619913439724385260023730378943410913485835341429095900855524526914821677171600925830664979709377237793979221110217183027133681827451213151123197355977012065646660337605530907579506393894094190972275813250422478657901574416851052697594792648683313638372353108705621271566962965684483658710119557689285850938960253054493542585603916279514314632841748032613996227162040064546286552900024815405250122929912181943891652867905318635565687408115868717297869795737901214448991250535412497064623001874299018872218287434719615752434656743902674838316647526155673506513643321036833381669782437327807623350001542888629233223117670405917647502741082367238736730764816669411026166901174573767914428999161297666889675357385031659476149237208047217147847292346562613931703325307710605870096164579918061392303663581991557809152288288345353928001756433056058520240833784284326498576254319222882322891950198384617751915114420387394573174666952384835866300452779771617830831010336083734823003628560364808533834477249609531647033898614088380666319916536733910710545281112234002723600483744086532271892033467290452228402876165899989580018107698045744620433032974128120019561397314141116414385920472586449466146283543994385584419342931214513597165636633703686296454296872920193721366276848321731887965483270755087480588562614716548924892599400798993296366079798355474181539025384797500450799059934301889815266300793309956823490427897349396282018016433173251759072189751356874719327884519740712407988622569649215892326004930079411279518986614019304013956178789862492202761878937554542143609306100941253802982536944836716757234966440483342925419950782268340524075301577026166222683151359241734752325029449350611852385087780755348028936859887073176070013924130020091699816142966644061827241702754217294567318243180890342716961864550439877098942370855487726640388093910712787204418294379303635614095752198508387141638874121803611006093443263104369924916001422760818922736342270632546951712227000641140272137570582267841409453838843569975590234502703229028029756463304410978463534194958818655508357363522416667781814755322737716070318700294736420428878977748876442254951587753393725242900187084998210873487798423547645976697258281162208093360700505026070547794780543427967850702178964684429107065765450360034156583339485821860336275487467035090922606456337574348471086473356781299702124045610589224739754495921014377143832880710795161817426913130215488464535187507534609170987494892726214958178608604960825935998106162954157870902810162806272640496041640255891892457095162692786275219786979725208280254097613487304248855293508369611132332515777347847873331967662538270510720253025647410800552748342054428263386463809178832742983042284635581399840734531023137097978526088102785672063526312023214604420386312194477781775807846788547282157691543987808089241969258502921510180119371668477404848971673129745937279925971813329893746174494570173481817981456425842129220820478342478684935766174082370521756570476840804719573054400861353577855530534077026958840442704706474200147089846549138302205719720630364012858243153468614666378179150218004216883790837974572836398682748913293795515261454219293919220209334808912172581801452370040936570289120470366298143811557742224703328047594630303622274972230249599733825575551545519656636494655439973687382484700288647650961267300569155087053410724565467079418669437185745787440157131393848462720423743142205208360568864214356407589811994971381262550570869170377297049882479317866060184523710407442627488964828663678239299153597394188337076772859232376524785615911570591067227269111115714582359435062498275977395662468248210990166946013607302918176681634299836442683454315966392973259486935202780147029457529322619068251864096591427931332054352082814584231449658045585934754113365635659858875865746781135811554028011046769426722217740886730115336756088696408072773436836750259002382834113611444562513692888285072089321865895907785736120570142395957458010888832499069981915413939005444420768546554644262220598008261580892591700877174403768957060004475252606191780076222953426367735085146266678682626471190946501830340981411915297369654768692275167523649774007185573814276122701719738917242183383227070745795824170420971607381367235297312992617109708117562319067011273373770562815174159214212578069291892352527547537934346509819228509572402825365738809359053761990113589419864026294574955971919405099631792043582840369463032626154988120116931569004815757295255058228940142184861589297886241703793556966701139868594937067165335043292384876147732960838151997681307943594284582787437955871466099437925082174703054057956589480785187245721252465032524388427773559237505666463850445651363840863868757227397025904020661161131369868296902210384134773589529472484589226197378379299558656453073479013175543919729959314913148330792662314109517902952244191595591803675984398151002753695289316689467690283324946400142718035464101189599528081750875970773526884179849691732959395588649209292575269646467734769701710536422316116941420250883184305621606737725209818753457314871632188262932203820208422856871828328245774218903097528363552949349847943938629171460161993310377437001971511859774214039742743960006277163581373877155635398071044744517646496625274710430614382484293478663527641551729131513427796599702201776667794158462460172690426833423619281307504273038076687289492051615513644979771776954730540796385070387512510015259523464785103989034479279783314786308845232282943526294231972315173108406559191054162151190055430494547766688131305068726994733589387216321522720029489723956567991242247171729990913569287596230660479184159949134687257541141917316379619041512458619769701460567456986021065411621933819278402219931048014099228503211031656993082208004372096352823887718099458034511974665828845074855439737704511625043923471643235728835557472679451687614875593278369714282665106388380092089457261216983108758277425329525040293420744750572951800144943617843758155609664574714125492613407247065260698222590490573307494737166658482079774307721261316455960598852709256216150872407941624797839154066018129118645547961935019062171276785023076480476320749175335311540376810439650039106529690233340197825101880003106234308012396636745016071318731304632848459613559232632793584607504576661201778752905303116035985835045269636895108830749543525721097026059878655034887734386533561401542925046639753016135684544996675716667697538296218626823071464231669859215359869084061669398012301235543460288022267147285386025986723457921282744811388112551906271075214477466093839192425386715613532764863529901986410571587479136997140699238700747415290658684806443267135313283839874267373883188846367449984795272079546298233087695033391144932140848825401290256692023092587634516267296311096791690272990482734117568898597704280328473110416033290998156970179645639082252842992406098155187475774687998705132914567805308713622681862882200908465358082563521266538919557321073246897893190565985271531555371234878356343806114968413747677935224552224387743808770840585997350562439136582765948265523185797089454732052505175165882756203876727237998982845075940670827857265266803705505821736399148221347889819833427832392871858905438680246006911399038275063036979538995946741177990444948624177846317593108667501319200729932586684897881893049586563998165241093753499846380802984043413717482104820824614462297639167592107559929504660613503902774137021284062323132410536409657183793864800504555246540832033096481776868092430212548371093480264320095566525239253617524902035604518571355865029223886782693136431570303929843123535495525458189473937646702559109110783385084928170832754839957482351205407358758254854111718125214453730006070501416755165280884566929130817857497425905231487619211254647712032973293498569031860016112730547019475019928785490806688389851693192393269529385655083437646260730946833541622767007121092726822891650257628055513451644321954870473241028179465597318846525146048602442948859648401451348137375140981858455504951252796930154342007335785566122869025222204395102217571569484996021617851496534145728757109762333417961892336763703372382079868724087948307539052349809284839886980659822563156354807594239819208779367885671487605566204625249536194079659756353068853767710737633385024186021257404334869980631722707632593876544881408695310382751013920708464467600534646347367303945360529904908002417012870253505187758889664055969685455298558031869353129119536450568229173789595707800256902979004465552128529289786235060163312390209365159664571783464388278183296184331211856864072067803477390359685496953215833891950558593806426052627287957553471360323890410722211488828901019023952021081963795698049988046461595670448673920574818384267602824325218555224789656892129046350808961851403478281296022379284348241048436049716674765720256140763109732142050210521463298962751308189066506181724565233664370769035001257322476789101211130029434367674561697585219907128417281109839272635608481772646666117322220811346230479098669226794001618310318180372518957124176707843598028773268546148653598254835203949137811468473457266730403318181493746006316787150644386187718371147145642516774222511010244144699640441790247452243855626239979366828655110105432385441815896317074702745082669314826196879506531086892849537916478891992204258456745195322299579149946706635015813456706183409569100439272303808993880785502564105031196738336286375527147990443903729107409191103172924231515911132781864108384675699604836993392482815292460740426019163601265705335202047781017355372847220146400530067925208473097891523250250320934833143564863091753964394669751351446418857618115682106137179248415222058597406552313723924754236516743103934669093429835145681285396265932538651971384465964257694514981656376897690723107187577357618491549166820524075452647933064958277445009776853598579934260094666079526540949675798955952093680189947449804467757940388863983650858424047603564799929206768544974104804391717872287828143468593244841643516993326517283425295816534466714846868619155631575086723089366848447683571593515669157436981437565617768290062339007300213605430417239198337901044306995302659737103284393411708365368920535880138228987589134056149391715974603682749043902125270756356701560725387411053183194900043249926547473407337214043363967280107435764736399284299245492636822291714674076907408629182104402526559122404050857647637948245381285568383868036277432204959317767479086706003516247293157568845297343025288865168236819036165181705031685164255786008542830971861218929295588856702617112590845610004643271427429047488723068878584853206019406154196297490536223711151007764364255908290947534076387539009327538260030123207280606406876394095022324188198620900885671084854582365563386932868348690739941320033804903426865834215843995934763121879015484418174000344411973495840733415986170640273016087427675679925310336295873053061547540339875249197187633494955323414794665303846234001540805025508606148219395873157080295604569571939326151961687950836955930711262426511660679875028603509293110637704931956975162710747893965733949399997281125744100626004077073575660183986616682546376995132489640618857508329780676374579423552711351328679892918080132857736609006297346170186886808707313992045027701642121217813877807009418955469579103214505236933020337814403959262924154470261469951534978913028909420755647221526187439073483882669408399608407337755412116316442347355793243331067435460716380330972355674883876822808673202856226345359068794785824351076283109853543934382823179257915077956621373502972985321070326386678779248190398515358314276634843530111757999659527748141811964280510224502888134885720173335200285597535677929296592688142862016596661142437130834803948781686283126999532385899891065224165403268757378693628553212725841060513245690486702567904493079015920604288908393891923349204323988153314720482201758208949089196801080511197124082084707133262558435113957607338108611330426105442136914007112751384213935443163218734261263684379730445230122353814425046487935635544092207297823266832090947397122161589764693924993871514957818093732270538595861012244592316620761685342109260732453632364152715757104383283405623508427569892170655932125329862809044475947921923904946127534365169500916511944134757602957736442608286876977931061575909711458406683906428023957769011251178991589597878462750046212115676352285815453384450215186573972446579767618575015345398312823885598419289525094484789752557497688637291472766689200342750959105776932342468904698896378192544681798301568858630397103943722092013374343350359046724345786911412656203288945955720964642931736039577863440335079876668986716194130218212909235356861455426464967157423018409888701771126698542331713108251189937779476874614304657595556818997995748749482229833106100058828549962045329910000778768853563637852162666934123942209630946505204307908519966819397276875331456601895898719486035205827817885746470320194519993494631341071666112648257767927820064830967152097550938008102507689194112936090199805683523548018961996867493498766777788986132211267174466561103498232052401070903402395063794002035460799582224173471511704568595400813884600198477427161655163653428338502565458979630797353808216739537212786543743514497524401942865934534306850484747876009937577003319357001556521357120369172279570225181687745101067713734828944966905799162844504385600891131142490445651682191609087442721010602207966386474805475680576100045772205723689289687643234462128284938784994253200552624319452782124928106229704228096856801002258496608946769846580066608350357833239714586532106435277321266261896189303591450990548255607569941451204664675527356422103776804836951066787437339941396849797972620729677086775943631261836997382414676299665405993840992803625835275697872565676115578637011450027835136490835591752592398943702164568372559430113969643485563214130002199748525349745325861309878587717813237465054032896939187574798412653047117164319423220653963365892428503666665831150329439258685883491096759912885325631157590599214297940464955487003278057430903849712554889744810962234099015910057306161366542896690295629809284493365509892833144740447756530631196400564888929748509769906776419410595325272321717923704570302487484643203111951563696541618046058711554160730575222730564658484051632912434766616397592687251802535590816317821042483045093240862732249087091811943153549382889644285733711094102606498544475455524500877986385946413689195941165933589929228853172663047230872084403960573232735142544050683042218455639420478831775433651825555058217293512571253688063155301933890777413828050500990697948470817295599251477688654393578076676568387647076010468367161603696513551189837540999787447108904508934963637237398913766271017081555895837170973992964766905295992003426459608557025262036141899754186047227397064558423002858793707609036541749769746297426100080588502833213727669903825693211819479159410397461351345765444807259146110248281735384420811112300603514478523720341163908895196640879364135103764682830202932951337561010806400021192083693183556862423762000061640645305447313805628103803697847926268968312859209773187425336543995630304006691008132990501086860218229765812725841323734025983885470431900946481524413770461901494536951718544427394027917059638550262342501258107551001831542662185825591916362419668350761578099593331243438046211614514083183641784010396187497821911371756599004815318680362523095049048112794717268197419099027527375534425376574004975802838871732000647881712293823306708483772582136298946525915496703553303740308196238124307821015200682028805686167099979483643866323879274280795994236414912806141456854053111754530524551857668770065068349499035671757883232040337616085318514466219990918037539676226180743814868903162187558377005524018478091968744892826470223112218105144056971691440582223024644335288063929910525769505622346899750579940667598973130405363514754501562806458164597318461256133356744018816766089826228423878654109634146262195777028808660845868162870481206051726051854840781125848515254765838014869749857742675085029989739985767363301291900232553587663047454641812556170903925500394685357418202966095931232029575339865073323890601268085939829185022371845072654921156552525950783044210542521694965264239441861663633883331494878387217064410132456933494621038534594855379338554769886147580260963353339150373716260188571338173864314959702487711398769701844034034687633661269828699630315343765054617351329347874838543504450893851593675490222856243950042565981344060420751237294291362242040718249132097022537608692818128801311998191766151159455786894773018951529808628751805329526784367495465641823165912012413638485534896666074199064233963423743995950819531075317416042485262472913557337964651879748479280343254095931197838962360121606423646435671830901709217299489957415540249886311624586797400187241693940721463113579592323104806260862076240862147002061864816378516215927733577807795966586096338666733943200072465527814407549861902501051474457747884101122367556119782105108540146479975590177192112647010669054573475898856065798168882531031610752965355466093219690348501249409981283802584458292468886679251256457786556027136280105561945341955168484964144174052567483377930832062275528588986821436550191152833890704035744649941591058185751870858388582225966388751465353307341144964106792221517872687470494463001864797692705003518425263466597886898114259483629315037027040509792814208275075561578943732017366715564502629293613767516402063694276633457036639876289228537938165906734398908966428594378288291202881596631499928589926806209336007198562545163764720932551351915673298398537050169712994058691596846186207097402350620260915370527961849172673043326070593880941371475654633138483311462614298051732934479479486681991836522382089302994878571644513981585721882706176248327426153675991252417458664231928348465842130348953956821717345103207374177751402576363557167336548304256227582521235147470183626733328177064247857583843636260310025353139760421896197721910460725220388568669065068585206590282090391675312159722042095715556454669422014178403410745856506204802492049775373953630365544992599313455280706332229586767230778570104650313823461642015976981539341401848632510832627992012950192658112381248472617718178690006559620458592943580050804467250981552413850275037344628866863141629200462974444245688729718198256633342141647124059756565257591439419619191986233934071003078034663197018981293541277416013231376356408822361206509811142339578287533907983987844348141324930913337848623297657047661815305015790811437840639571894275250099072703124450293256790077721393552280881361067706227907007091594061233065737958712911332497027819863440458464058874761237119485074290694036171485636275115214247207257214453606656802773459224985075369210744779282159175491510059108659775918768694734051112575754338862577605346022868607052869918668899435814644809169551339354403583625433938836328353145305561999935306483860851290187033391358720446019688544882731679483512956333615765323205537076755648653574994733936525096243633586667048984928145441476410510629479312875774671683569104744304966492920685639672198275802729070840308512860289524465939917826660246720899713018574937390212240823548344149313440441828918565165971855233556696234973309156285449325102280776572202940427858031322087811974251715293938931232758878467623778890134838267439194219765248167928131878636982161434955997722045777809660410440926913795854539662832590663164045837442453199602055922358831619907016492167297089735674726012518364582037896769387501588541403596121883263149977649704566271929225862048063960613795705986731257742404208891509468141075281535425388638826327362968539904437166735844630410783577391836510256281706708978835306798682133665471972230410138657754204953889297563097992461222401129812975302523919940629936191533000414977382057597133616492439322068354626490545736055634975926279429059795505258502515012488595343694536556626178403138234675779425621550729904842287674006208198232218681978572778884183335705348097872043201766825607085879443649590044099759682028890490074678883013930973227752235138429859177778831558917562674083100396648644015587311807599177151397888859056553730143287127861244543790899168501948926354237024001826205163237145239661047472831768484951419669116314584393941783572348448892936856544935289362055405393099090774220246120377297213933351922691043968600994606657311785525787312645919848412916074575354718549639248557593005973565734104993691268951418010460621666277301517310726957841225906753736835611073955075157829315589553628362864800019774101621767032861099632295847003107722165658916463181659879060700894669287194321208177394706992093891379041851422533817742412819059370885088132223907378858504794277671675425614143687109809084287457044445861416491355889172934386768657028393738906591141353536799557805116260816105402824779805324163208248085154997890467269949169014735736371798147633695123621443181672232450242522180103091293801945952477189620178266756945133342270200936574806892046034211290643803407447371624311695723042400453149412764555012491402364618938711119490789920291201527726954738984449256256444729273280469662190452972693985860871610534455241412511827787754502331642945646008836786640822682211632420744846488733301911246803655885074034351526523010563229483220167197063235896442201167597562753042697431009710296124850928409213850014733672407218878384011922806169103320321112602046505430894644104490409506826564498531280798807371266609052236826757145767151049587351645120028293731805058104059392512621239490612209866944675173062745509429869611737133949371957976199548764931321207335930359555945214956965722233266452638752540936872351325691105594184450158047710149619810265790802142509700477719884127587087472507093910574369295613466230159725130155805020491540648414923334831446196867401448870678105013348461356973789105458103379059973601957394427197474392717629551044349713892837464792296812684335542304346620442507384046623163664700006610452335439434958654043942947055621228373771558123856879912103704825188380285488322242429219712287342548489012156702152662913446522775432481493982565260995948865490376407357924877970726850188319339221699348236572796836218914822335814522833888216126322720033149256160939334458956365032428535849222688105811612958905741302477185886883797673239152996636973025480833064242202724803859878530616822244413048097551370967959222909998995568988697549486620721949583837310924658531548170187659106461903824814269441061006042570450119151148624143513626874634642627850435634000270990297907353923397712713844963172297363503177340880701963233713219653320308171066162643015596973850687699924657091617021081918937844800010220699983474213095825240307991591702341082832105571876685839645552275518818558487552005142337660258427602000771971083566656862458663633899201365472394532979308581956435581746136524751116867309721235946436672008511261222444538234630006562788186791243625311025241840974972531109430015884785744559286698578916654468315359658900437260298692765129887282841713084097063578859660786043859418466777151815891735665934290798627836119529343367976793113957798626524907333318705930319837818642310987097754847449556438711225814506822165869884624901680441621102776985463061784001281708440014051014181904405267436680501099798640387765995490105636347398255747466493032332493916869630433358392733254942540772034874184804682235017569777856217563555827958364366370460744820460944002134651464697074281522378025707411863596022576277501121067924659850651443966475584148336278335876465240295347310753669209640418497416015452024638272939665942359034200712879607662502499181330200305059543874889953476060675670634301076738984656620057012835599154771887091616521646671539091130596839954232776376481367752656926196898286064793947959206846440809028003542254104040302100292712177198821993672276398380608785021478264468108475148081897961884103029399376952908729929226918046081643419606655124020479685471226240721983369112209211264744597228741876926534087073316666950726768186852346459231621237654255874406659982277615686975097447073237308729132796638484602322129558389755807889900444121804480270927245486611073804015929650935103924490236126039308612973125072518312531492908604571342041338745645176938690485154822161354938544520536395539075017883679343645806809623801344028202472223011966145901769162962914148490311289908826632713564431806104479789803029761419945947661374612179402321348388550088330647516573900034033889761166388516799365106951161433584033767988198604000037128556476860820527624793430341166948857121125180063953675109664575904163704797982349609336632835007211369176340795619727775845283860178509837672209538809387216825153403913021186084462131195036817347655958897889546056415378460190599551849977473929195922215278054307903537120402853401924757900956572370965794200848489622598102994670742729380565891815134097140197356224201541987999282650030130927648838495992182051761455986052795572236245985675969570158134597387842022378884091459391395072721400069665029253474420006791752504407972127452723357015687962532532695441668992472926932600194725007976960041969708625999190448070953240142523932203384994940903010666626880123279714450461313163121604261407162819427308437199755072465032882559344164467437328353053321820809660051483370354375128105426944385824565023393816522573423765046827978005641823876588533465077254020760138800281159693059416653283154066097240525323798782495180872030488293470756128931166679953421156015416005476025595342070656412023880737433900105892794346745269558267608076354182410376277175404641599421799357833380522445925137623402043274428514480299814081737408602280531607182678851318632007776545116220113989464149709572383717963859414704809288908070810667287857634559147453764701375232439993966925483389590300196672235017532463063560608836585033334805556618879540222616298359147839907390466649787342140812091756456836370042140027396786716313537011343067461708451844180911427888146524246813768791020645308128858435484859498628537757516241533617313281620518593246806089607820160953562016864001329033086384368982985198691625431633686482309098891503550492232858651832520154098709030018183910796453404244165550394596060336483635962176478573606324936368823948178610668094887798859261187649037115078228087145617996986272527187865456836866298048299948362022118407572224567160302290717487950913830693531615547697557288146254837792785711452286141084758643918088052340061236738306206008002492495332822185161217968135472488189930314098947870214429051087480544368504857497058514962123152050149576171549085821641362461665182015680271552427690613656728975007807167136453213007201754720492160796804519190970519598746882396385138650534575050179659017561930545046701906926744788662471452567619123040376228611911364977612310172366670999035954729968784788770387846036402024287693759349517979025886163137657253814883792052554469426308198672089464239552501872152979004459096638055287882145091076188878826559936086419334605198076841941071759466818562467804102149496080950568616656198225234133908739261424174632649438388711861273468106641182289019136491783822679741505881265814253846102771834422672613190683365347273027788810214903082440021344068560690292672829915415891890428860078547945939785761510139355706828839192998884972663381306837425890968615175163617977070144174676366432382276436046295186368140502905647836453848262258162662389097987816636249685035505574983986379621761444529349705447808030656697747902198136614753286170913670774056378411992022051597188299506205102338624424755083790244359498107518462884237130223884404530290690133771813326291798350193233320490553189763428458139834964665243379836159274968149288140414824884412520040092362318226939739030783929648689078733989351678308744120823656759646561977433089987978233360329073768407809089526324192900282745387619795322980361717448147501963769290763529498876745125389487690532519903609330125136667289328813411077356443538646184646052101012092150302226825978461832416305458884753213699350215624818798036773048910760078845512410950767713271535761531235774993865213942232300662905409986630023437523475511385295476069738521432827606734543500318309149020127188370019907155838731133093538853606451165543052554173472153686375352240495385870217566335869349692421719709407944950138576021245467026635686131066762414082789729109911975120644265196435914734982962954125419038318134837715881390916127314498434852732959841671132364745074687282602042366195318895353276129134351668900040443485613859516103648960267640784029472692979972414353678918501155811187419627002426306484532518932101562512213130605082289052925456908599120506545261112278636003812541086610308530864958211034632334599471159361069321724870307449350071655403793217226506110541555807044517163799355133973161475581084580386029249438687536871857236331402552922059574691555588688651575712827265406623204636909323564080465900440571480157877732562581241158862560438387404561536724006282886227863791102253625682782495654352390300768004355787767538748744185471880447604881086435954953572407500175556580945207113268206850845075581111087836193659328751037280017981968154472786549905900287282499605901320588268046966447490230741090858168703321182187496944746023763461887911172620758506167795077638335354566825880025881166260149931516844335806814966025194705510970970560520911161584860492180275557579178786700583482820282715409662216736288794445082884573476946944061829333192813561868948859713279869708115838635852898525483159932296858545506949259991893294877913699445078772602302824503253156390634010255940243784899463504502965263661319939738355896535628800059146164707541852251915080486555655594448187550348012439273890869613023308334824141418429681489867255674373544408280983401971388651253786904445119563269238939057574840045886497597530173780213318355565139860702291290124090655867726515321869809025070156388085242826806500993065139653859136698533386456835121704251285264831544711647306478241433761761272593433292510116737980782387472139803289300652540160671128576991271224795988596201112649695289223606402018793397893178107297043012534282315812704099702688821492607354868431163306977911083940251191661119278523761631200752949744168647409055542071442371204671140661912153700435399252468785169221195190797261984399405746173926035095376960596710737405502364712507504800035710859371067967483078458933533574756024695211471981798775197051721103113075020719242899750785270173948434195556307549330671980099336313771261301427761451229643188881646312768907933992470209777163420867219235072324845712116527997663568669558232261061672257076615521758942504286095306160190206560796349502081550481840593079867265523383576781183164906820980671889817404025893384114776589587662796345260138197218000168851756230480501443145460831201718705619121553331214842154139744063403150486346508083808206331317990746416410171350861645722577034272340772432736101052748999715414638291095554252721265145833343028484596555498044029073525211147968691126140700604185327422983638826504823049554811747064969213797707717888942571575951019433716823941624835529452118002123492053908626128670167040745751493397746916085368787061806851191100448656659597843341801275907203886214858119883040103664367960909228204727873795266454852995785219407910391938633457212027105106260196319268793416941701104680280127553050524713049034173251634140625714039392816865762703359271854360200186090901840619529717232437415904322063873413541493058494151963613207122186042370382373476830469610030981289951136126405724447114516366152437911515987511575593527878977893764551216229612764720055007955908503342239892939808375533291331744122901200997807105622426510170397160860462348588810191701678316559432568188645473317998361335670061740630706333445504573388130630852414324620859837584826572252074804309871796712069099488832278467648327240044822318176404923133550210510397414273743752359661225077955173383592800285903471883916819712876904294912542830366855240304199946430102455472791879748347511142152165921591248682214022795179519715549005227026230659459973317684493827063045989564871062232601486778278540083586337453843315464541668515590200506084773694015596736097105393498299588265592026289021004818214537152585495975733344882716727938619523265166460686082126075963578820935610253750373345669955935059899780150328161583888093233751050898790332534283029384560995848674297660270035876666510663270425496741975649344069819558980949435850309923158414708561168327336028023790869312950756294984703649277856487204341448022559948399880598632699950889236036617451886370361026215806477619062542261471472104681250401539986394834813770186989843788476725560084053671468377518915972965476840398267354796370588913403404792905426500563975002171381640588898388039030221685762522863072961026132262104243239659723112334559543973304876098395663436390959708071177181150026156392395338796772940568850352132537960378017406311505281911615490601311009048550692056612068140953406290301562707187032668327685339409734236118541177838612938931856043169069377908376515581348578900120073221287757800709889515316325887411661771701048170906001476653125519109681494130474764039524510469907152236429881662991059339573299047524696458507640885490068083680056920572325588585450140424311520454812372735249190218090103905600528293153458497618888990901512552576996578051695510044961155620843308080488659317117189626158163373962788237071490200743541588158957403270929864686282738775388947772685116672428260028477751315831147793833082628758187537280732003246940351550069596286208341270491122294398867130481937866432094049437562483072109291924107292895500856101563113149946939407756613648735060067248556517919517053129579490479857116187678793531815235247453652692338152567654184493733791313169718265634274835888560110568099564706066068098113271582288675067410612072070855688760069048729704968395354433199216480730377947198341484114435824263221463639994317321793949158649577283374028365347200999256751870570134908991018077572129040923153646895965091365910412326330912650002243606450219224455630521363013402190709083637004371166411525692488143352469908613755767955065871888511272274667865560833000277293756685689828868386583024919687717549276066265885568515201274020247644260020930726897065094861447624741801741775942627479386638719712140431887084097908191776660183792988134800339478905601191645785145925065417807457835423612508313126471921471022690748495500902074801079629345116635299444012146356413082534917013590288508022547541514636164425597390290666285120931046060873637079819380377886745874855771187249992210804963857285546933370937995625335152819611294001274136933995706676325486791759990374206579134090740824239432936226282472634740489445144722522630082452829752336666927337082830278340416704125731682304080232371502743117873460922690620015776051681256719484557204160585449457200207749636754837761597681465724106550509340552640281498176543522641183941747622303724270998095003665861487749201240627236552053451960563567552918841895911651390853188227519019191763030311803185537512540606892686984637226733091902589178823191838236582572731260426129969494198579479474330289387040889171320666832695406411701551149237089140425511318734760772625922118366942292375408797444796144603994292744975550324666535548724156426738681501928653525494955117786339886987997641423435855579524461031534442283865391791940405058258176810189582284571074294753319099842871562087628795695669920828185011795402710744577680632134129609251311375386077243786950169389707544637879325723672225893027009549736728411794296834851244922391511854574668281319744480864224638543436303593289836746937470007765246100729263300927514575662130580630890060530051709272244641443929563520547167325356388694689059316680796040765288803310924070029468321287946376546245216226234756902398082871091654476914673208580414386920181221240753716360814464531992735113093377162927869206537106439780069212882897881641658999674124096896536878982982328058894410763771485167705192452172405417029384738894511269023882663038429659050545581075352075064052519882269350820017178642965480611972548177377566652134117585327926341740703526873393556236025339545788614723130842362875267277197433441115687159280396020895713529633495943138161821217831090011578851292641664993874203342418431909489092661199237961656733957088133468102316815922258926347413413611479250506902293353838844983134221982785753352704338986671443485465107719695070007243761085482878717244617969176440897127036045318724748310417114153015195888218337016215468762020052891302037825916212201419024274668027129001049866102854583796212465817928674384716778529344862727556938785812636898976872870509418088527271666328355094357317917646385363811277690525219628766434997967141162170554674898455012051399507294975071251952330895020826802760049144401509657375431015472061592992170958250087287027391947453370408553118343666103149749296821149863836726086946559400514589618264255285363611064237200158152859585961231968651967371118165340270262343198452861855448119132977663306218185731759303530697970505074933959494293020124739466608498782562420414553134045450577002888920016218858147199893263768245667519312616949533115962324197655353895169719085111864721445353261021314864383498067009689244619113280328972359546312751499727378442787207056278400963269481562650243314740144779537434477137500807168004255955033984635318625480559433310823808995545958147466397025636954375975666602587127556581184868532235960863022711700367493932853756687640430648825990233377234977047486151109126980381676101653786976419530726643215936544390020978493012015795025965928755043545993178503614887847578223301366445835467957023336552513812737635541018436478478077652747867399294761009719133045100335920562894538198650837994211368540139280905696499898495644013008721326104082629878241396512774053216898241711117367817239784363697674301065978596195447853569348171637117717451549894687509959605508377923249464558061716315565411375057037452280007002688261284123701923734852817990264138124674855952913438173104645190056903437233622856315874384497452835395315851392574450484485390957553436901862581763310585691039220561465469411997068941976070585550993455479979183960783448035989035177509666344220165585115582875862226814489545078546185756068585481433605312084699355124857081721654233571963926747274533662615977940499050000762775765497758720001881886184959665738921723670291026580732256971038178745356784928793380887395144775111414857480089825375007101940791467779008280910797140205616397991856310049874288572917313110933313598064970163647977593687621660671104724740694660224506739053610356408693326005527317687801194975386738485792430802190907069936028832458647899754924560222239204204766856300024047324487368388740941915566803672815529713570550070318093110190267884927817507168784585442126293436833043849929639729712174203560798594752085943368370054448992075313071104507740674811547963947781288917529758770984518995959757331466263702798778675550600583129616976057092250577117413224603795583696333192503998545245821426871157529912465742441208979508324799241805163416284647434261502497023419767495264288981883902343513172910736849449566547588430867621376125395424292089607313398740112216335630848756761271308648348554877289862691812476496986256757624367114026544514474012868240592538108589352881021853343898043361342252108114516520888399703330932199568489307998524604399952045061281026297748732917772213232684829033710551874099973298694259045695942603798044367382448766368585415878719493082542490078891841339680156564610483885692962931417666358023922978288413908692347249668398684971639467304489696187070139585157135725071522179026614486360511970969199653464376900036167320311001905894366540909185035987376029036111447307380283913029723682064146431567941624592488560299148386771760855194335825969013337444632596706410111616365383063508517830556721266535308690639327598201807528379183494881754014612447078988544917496428196121919755341117483388596979039164949478513268324548188494273626473898495857401042092884846873937907928757119020209898792618286923413192969074515797790408829885058098264794002724044195408637897450801330761346361403382623117749490458642519826058237260436467910497098137339043214320463098319363452066833990342990599876019582341234980195327284602938922752539515236703490266342032688528843223384528289943329096644893029610039628534212743337474307116409577893521449865306094854528504265606115024693942948445627031336394765385827758749607681045881826400691060201718930869492344336898246488394317915482304429603816888441207277882159494622935262758406631886867081036791903497862947929881493254419373315379819307944618847709393958186586432453398393451370706701979571636450340260196340802725579242234031229414871477341419836741815942927782965022111538193917415814729023123339183795673732354959393095229009614314141408717808239997193029776511013671915556619097561285094985887797479496918317649641266844828401061138475890877788804366994760936933544093784290319359564925976423909432519262396249463591408829405160447633995749026881610667467768413618820953427994176459831806421691496605603889363532768596867674876295991124086883763345640605326471544644622302962120442410862150234745616978948807194449278900369239643416002661059610647184519768211645855827134927192449123789042009029467770265018615329796265714726472134419656061312869347702257907996799011615120172605748330345019007192595290491447675693061255935577724063623934435397733038134437802808779834944275150201199279262002311470650759993467488722662366267059664246466094178898462031637565395239309117607382361599871534538634097676048105661195016876415155511284734800723021887283725684409704652884138960695564701500461997118182669743649803366631767053941647337857687027993517212975150034283477843412097559812353166233531531593479413626553030510957861055996188164887422085286942617511504692968745328019654121930181008635990164465737465485035225554359530048689386933309498239849972538478129954266422635740561262663676993818296290872407995142179230487360906006973511625640359445379687207725540031833831061084751686413247898582245001944807767739307201803245715726540783177243133457665240883339989870878305419323350540193019288391746122432695781282800060252274513364471561034808865550420732126466147697472801203837059701357952476228575211038060053512704939840190478757186144286984401346277394556947860261009778942970312872196029537883857471115122041638505211239625720519646901896511946867842558191011945232562097710362880304778024645489434116426860980820317030759046453475542665160666977201063940998247054266126644706960224628295188846238783897144889701721584238778100819189215062448690207077515601758232195785433786029171062932791933105720433899623474369152326708331433385977739521730441555752246458033902970427710601464595017844065018548805203744065049991692614617837925759297900950510377020537514651870542272796257990628600014338621161486461144270852921661903064387533853658509647545365826471478070346554784888553957362697686492199140990206183760195175104080909674107933247022082685435395421889587475302962152181803119539243819739381599553132006904135693381567903688541131758106581374016491373576317201401403578639528584214970408104263114987583475143708304057206910917966763565758163752974695919481780292684057577348696693094335818898280017726227713216941802793391342914701758647907223551201837547441031037204185130920341513300641747220648999133768856115971730599013019839307640471760504363842692211229217314046019646017516417663101078092831289691283228671164777904727999252809098263169015122666510707541631876074883909298042356982766864325962046988556200552186062350590617775807262547082064559221039864807469889900974665860170182430586105307755057232610520146949441527182606736462257592466554636217015938984395933221050444130032998592570270210396171672479593784021161081152118930552430029273950503211212618703979736750040114655526238045107164355008216300052668380150947307061338814234187185780760323184992197062208139519207469926340778153187954798880405696476028704964915780816567840131497349495938580026953760233400814056973309346321551957686776805798701296642171479196045917563697687817574558058537344503603229574150626797124481042656233878267432456011231331171512850479904940835677651903440267246371447096643506057877098014256938581823875752714177506699910249552898010830349022969742903851539034765665671219468558944867621880696882420744911180736219026618135810217082994807853265850068902939641227065238022871249412772972109104253932179426642482309055252531791987573130687488581269703439398305641211603632357768690121818685539034365886493544900975868439672679633364371204330366028127965380937012783858278979137647623151454670828667205497203323476055693262040621722678751074484157949551311392029506804079872630166138364286989744255408305084678178795253393758862548227260405328243340436427625538647556711506367467788361118105225319338223371717151193672216869047496666353895001630088155405608401795110192334717962972532446540329462625392690631322283644626822140118661004780230891227483176034855527868390540941982007216112474545239378503940308850614314986515122190542034707842484775119757671976367474951251636817348402756545651521232207334618361561075564236632030729427525307213982288201361065186718363400546614005802843118098243840919406768636583850198403907316287540841131728959629299205958783528109341735415911994732401014823632291966493578129673037884361122335902960189760859988408384398205073177813692892181002768529945136335907161624132961496800533405617529298099081023730930827947635698596228838379465710928072515504925488241729941361225281477183134383853149474780852698316994490325159284480401092312223278675344549575294999683555542906999101828062704727379116950740131802809639517792527845317735962634151474080276953576405630044954746578814970557176508457694499452933867528975189525475501587394922023928900007212242781047042473492924490023726250848626893688109869106390961171176499095690265444810026978461968519907214616372794735552010994651293324910207848925440103841311600019641967266992494370989084405528954074797428253778045834204627885547446188572686979942618255478232174278880797320525325343824876532392011494819330444489525596039505699047528198720974410971113435008731617023661127029739238792257906493942836974262850118731959610741796586219138430375043864590873497678213441804930641669727777213592801849193355180348209799736689282285142138787550685521449348294191989086865385911507858114315065025137835908815686776942383893795499861497381516117160211424686521622057658264322391746207945845173403715486794903933882610781208272974262823610151402765858640917176161525181399137054801287334580667033280159184009197375876834406879042789197168696353062124773371238606862468802753734978631996460106217160114431615914882990420073814034266121900122939560776012365803547727922180150312057462178605834532654464614471561960223878484185903411582031234212966732917063078286377975596357131668363039160440569595209921910545670646000953646551768898804161732855795061582436562362351861872340795885828791039834895310485159951381111492915557266448251796206634550530655930413917606897950237177187241906378077797414268470521134030062668957360932986068685009730407187182850722180333268836481984014510904860362485905259991700872121566165834974596582062839233861930322368923829646403499212270397160696657783130767278486562406201611356378500784256700497762776125048307607518455539536211741577028954141607163985710487843621936887469804166560956960798917157687387633276624700470282374539196986574776019750990471090424542020660196273711701080031421407794845616995019723389374488834519733347609643103847988896800531480013482758019457844087009459229854700293360041273428125458265055648132337042800518517254049101248400066616338540943085493401812883197417529872317922580804878666960580566656023342013503493261723812322216324552832814887515611436031000791805124817003277134783522897435397867632360641912253798254800241345406971132391375994967374406765149673332479959155331543273200150897533859738692638288784172548346712886008915040475946808459320905062852638019936081504490904543024558270500956718465402523885830186741213770165646940062924430472588440173963432368757939898250061407546046597214703974773507643563284799913365295444382116916978641912321772641917286181146673134407483153362058335004162534369226065019093385501346276730447314446175603568099910928074409531924290020731959191153433805683190399363030517865087420281106229628162684525868292752737136043281787045839499961128384763023704606858251657847677710790779141051846329963149110227848817125995952353855683685271075197883389247512703230674446843688802389425596254863654601281346385774244693073697482479013180654604826791067262470559371223595404170714322624333158426652951122907553175307119952273217236882500587288126391159809992732320054779327630419899431425758987043231522399815454487700151601661184464541440128806006247277142185295366203414930358249466009315095578673738672061032028188587583063141714993320615306105046813106461839350897577945099304891782196197292597274953254347253509024889864756519639651761702648248761555001007720413141259219710860482813237305584963701699404759637518607967181035611617301086766668162408733676149365536536232406058761841210319852419285473450433105763420358655325657700681174389847885399262086569400440572110520995485451571795192262009664048930267085542072726790917192498125067294817542483143918181582418853697596499368580233935962584637185844057107996911173281114831308913744693753028032469952804702758379872109153634435976457366025908121616712727974467627861226773696985226778617828348401184311493571844821184781507576181010281136780605907527448928700150193894895420206527655252000129323234839644653445642644261777260792890526556243043633261521390539005435190587039058542090819048608982058965019053228789639074700066708088938246720151174133305992761853753638352001992121894004907665446512194776069136088816065019253222428292348996484602709452172858827110523667515065473410822072273519593674233026466095503789884109754900616803827728203266172241992736901405582235685842534976604288521999230975087022039976368190853428782014998053282770859048796784542971626351719383166244099994687358994922111809079178499428788354304102336672315012948614138173096082957862984492314071059647857935733429398180332191667718530882315796248042334780117667378219192241585329106910545963231214843579668554522302067302469652414041421599306623963185154180329275340876128154126449483919417972318424052137437480096897073928225873884738849322229718354752903083413515044279774906504974293729665268910257890873083934974840779089749052003942903564170240035761260009604280467140404590832481102044284913420936198072381062571635420620544851683009438680933350175967896641463504208617486841216252633210569310252984519576152000263303645341908796305319616334148819200750734972421292952595564796011974563218011530711541590387583445593512261845469084916632090360905911915010021672852349655868052336515006965318859878327228204295791854478907998992535205942481812116624139924476045512552234902829234370361106057068455096046262724869407027567775768945065279201350110047954634854746865454345106693632855452404913609949821445032242001837078223875667720420062573999480617860165330521601607828440922795597887155941240401524748735502562170413032183392353986439839448502451925789320495324773794291591824827953216172557530821982879067641502498697484267593139698963336928131133902275867931756199495655919793949031258960361173960289271828436515941826546628205329328385482327365446507941045658789943770426197922946243022385754642418698477755479724128804016488836912513900072638132853839416540618990408343331235869559418463607057422825132488988224036045896719270402338090069494248221318806470775312922549922841106511266889969880863770383026108008695758903415872073747483295987570122146515815061803032450953103521992778135955564952657995083808625422695221750566210743569129611245199154692747796087063375749524409034440722069277184953594281726119987132852329097322259827098756157622578853728499734602764111964851427389303757037998845842045920115360157427394034541039180818050178103545619723532781705956412077555482211179619419997095841564582857653141779001570577266330861009386251089012673818604403712538103377941656040447813288190739064960672224142347566864553435538246099458964099230326920404975528949159285134435263179581807257414604090712251352470524562821054338435348097084936557409066131169896825261485248775377301433595888960571411868477635666061484356451376869315472192904294909108780655741183214808631725878262626063438992268246789221299520316004221206607899342019981441660003579862860051174131950368556561558951389397075521844486023136008170991548113029297925911674688339175795177550217728728466954318310319338740070030172224118661664699410329225276835132166645135428806253251242783332895889536149585164626168613800947364578992124061309132302743429816157996178952336747708575910884606082817942278224269758750791151683323803519702927432904734862576020864488411084632762870754712534604305317969169781214637099667943841637051891227698257344662649211490246542953667929973180051632183994223616525608278467361200962706679554782780406078422352650744356373573335955257797504211020925160574594053948250925374967105785070336806421335612378112062826997520826663707018304067705234301962196942562854344698323930896139754217707030617623687576601788575646491456590764240284189323756688205875303152648782950620815337640981463907734385882258799516232462833227206741734878160566969373840595218575030307301839625550804576608203581629023230538154049819262386629641381745606951028580939213298731872945647471140759036031316806647899225528349195575890209888822880092568981276145738758976176707874805492501700045471039873178673069707658742355749009771154837212413832149613486718949482666159653960031016490857288295502903817350137462680180616254920585830090393037281718303065274993593457292825008450606233531368333567265779816289061033045845793640378049652767814587893223743774096075154712511328974496540709675908402019275058074187725865903484245657793700662431147387950573268541716254132499230249722133415143041982466131915121965569248578834749092872704085628612071689406585237915975276354278409242186697438340708801166195498753202822067279810397408123030660959840249686536630949394391790634808601472253192463141184918798728298584179593951571288170534704723607351698256371525080924791316951839898877340984177759786219793699530407762201323448836052251617220563671192338559137045398845352093685235049794082003998165250853727893725599697515976098568977092500908564779734943248766679898757831762178691367732632825720760707775924333697340989752186820206985248631876070363037763351377453557027522284978825614725951743659585730660959068655615897385595161373518054779987607206586932051882074942441684697937735001660131106644273488407117391876252389780787105020491106060126445255731083878725413321255896652190754043704025626179800952262114620515610885891175911264722780936413212718127776239985195219391343393807541826213414560960818093966661468850632235032149565789015017755367176758044087969575023596450172504785116368552988105485536662114398559811668708078181743951090409482369236888413758706915468440173623745553779681988594507314992697810890411618573359642415774694249637773107366286208787857800193422178274236867550108306878906126390753976268215171421333201946140286605957316649761332408862973543724623566898587980821417628443141210733458991745660888172894835423556193359320487365993569475495404482688600215567896204463915258188284909381220454690719325551106191916114423357446253836825034313130158643593814098764940524988248365398666796585943040527602721895817563300418406622866245631203261544840728045742550335634251748771095469036927081475247052472605623220232516926348964927793857485046538168575037672992073991953559280932397678163892961368104736678058302189259255478951653476858036654467780410433648982740201279563736085162796084976078153400756234981811956601280186960582048598255479829983525522964763985950850370644733426093563364454396421699593129131016705620235133169923508905804317705285128067866909649538430063684924676257176507542999975731538386040640909400875577873712406818180344895686578978687249673459032642608395731774614003667007849287458700782970547340797067054139593076621339577577657280525850705260020110943726555961007152949286352103263560011176907519839384049753627822474142618947597253363926321682956497581697120926379047321696788871867091469578311362240165367289778417971485462225585644216009808299682128627657836892612739337324201328379917586088551363892636348540832055850552112196171198621747125228778787524939209544038586146885345266244276241895201324190931429832398935057688624111614939744932461971770382988495612718652859995563289512867108710290189525596376881059882554448404940013390769974880982662091496841261192132570439515515560993701938836788149397593178466173444374689374565983286832608805440290304446092518265423088255934377438477293179567417167579905997706728091064312977861005195021292575639690343875717781203478538139479302519854683420742019922941354119513428680373777937173396130249111354931201765094092329608845594141282435103049471729407186922287570732304948668645463390588580896683764314064718629787741997202055728010115307531988540865563355293129846687832762911984727467328900258969150446603235737727488005140103782035903493345273133631086586759023694975710616488397823889440987224756119972767353832038834950637663185482649359410852731583341006264502714281439962467946334013077982476759535155974411096309148651759727831515981315580447940929070763192881771322199147601865520749325983598238191541171032287341651135958838859924564219782779046871355479534975212989727224005833600530612998834110068684375198273120429862651370225689367282198378146426565242333056312567194591864126991917353821282300288356023438267096594270030180255039405604419663097322086937209424065584359480501372414452133322689901861160922192514032666521191308449543160819483979957110932317297061702007773279331787803284695474788200392144461116010358647635637129156721487128305726073385578173784969922578422854094628135540362245447756621061679180211403831377689691162914909616659321438560836539804326079944954522752050283225633662958380671117683400467689453782533496320898183186840687693960030782304682360655121016694544593473213863216952894867673082050037680678256826322834599255551751555658530358302049162609124837508911274550086670035343954882827283855373918697652077281164033269131747314740906304804091844275386279431589758006723998823610567394874453483204395258997966442585195680461475186355257502931168309611207685824667675174258197462296573162174739611704089397571986846153703213971363419100934869374093207214772198444061667137531394560156167666583297339825816572066236156536516016205347138843947453748172949695500637268718558356124365996168554840048210429300788629984767554006961927181176128775045407950643232132098070010322750526378202276898962646896394556040415562717890719144622541421674279724003624262315260942405204432886466128778513726785782378254754542365344901809349112340503453946140961104260389041808031968232938091938534329510492150848462937354647140780632874855833510771280792669038920211171167506788223478718218593006572255506674019366769208451938800533440263075184812482718537192450072485807156507611737289966738853079508217615154999152033391758907038523533049778417404098574383907498717963226030179100013521901736259411905690164737505436931489954603672100596054577247634851286586813376252053367250467627070734046290348625966807727988271764462659792890283462104696497418526194897473947054219943528301253093446564031653607826050161829382955801482538918890011688909420155712217423597240332646675769222641173723140829578642959457632187499292971178207568171889949825034545201405272842947508941023440025215655448256820840921604562642286027945711128001732690729801961184348888162538633690397708041324160193791763705385069822706547849974109702707534092575378588273700900978118247016230735974891627226133838167729546112532661209927709151724460281459258670415236559903098088091821905284403412874758283105555528339059566988374258991416412309499480384829172772476789229352749408787785975523058337898395146482613625158689270788140575249536792166165758531249304773524079711453249035090140152542389452725212196145018472764378788280549480702982399396596976728580738594453967904428246080574835972592487733716444306080807926647662347918562391314296310124208963835813662010168138183168172349435002808148240028347208392234841891956007095363878252110500073676677906478600844232921685371883990177566406620967220098803130190195399470347167281655998409916770698316855506557600059371595666529567051820433011781369321767120139089689608903578076347882352472702206578390300132962604379192440639521182730248899031502338737751256759699922580334652864998333401724673857030723388403355831833739257253025442815732212904534156969376535834839042322668619875807621968062745580249254515586284998115624419005444310499490845920189789845168532535894649048556781075439004772875441947359888029033977121014994168142503312954018068353305924462077880038649038973202854821993080309451108440583596127123597203163880235010719265027175246706771116988604881093058547442055597347291159713361485240877126419905041406104554565201452078639249214364049938712689903483028252275798557030923660245757508381579781593952425219907104007741602508202642459426958689158489697104941069904493847753519213978585517213424270077343160515695500516956021866182283897375786201146486833517428317874584566059931296383227399676996807594905433948443967643174343425099377384333313216138657002877750673620975201307043104106162415554001939289828032592409980788989333010731749810831263036560183569631605985253379733233936723537146246118068702465370560650295363451463514171997014718560506005963889887771960362615432292356369469911453445082903431179989893024945967793390360067341643318124217919857740882074805236363910232143538109162249767741982840143913806516510552564528503382320294429980512454296070192467232593830964746965690103587863110409323435676841877122892201573842498531837335781352707645142776577570774109878911407250258389255713453128172955311184612421524071880800448026020898519757371419445671245022839026856438877151410517677301269946959539211002110570903534108382760255564056976107469491091567652868180653061382687135271774916920545345236667593986211944335575270857220495388455632174383185629081913362316607100417888642546295804254449955155841099569848802568458295622564605940477877745927305823761295855423419229694888696409000711421966778730221571870924856151901667739757794839378157285121973326622054662255346271197963888748554212192513251980403970414819637350366124543167286655184204679515762115307246245605389726676636431677297915304697046530819581831273708106008651380853321063347958082501515426062177359876925461108993106337722276973858774691012604040181350688152971850758992728669404290206858037429410471798956328898327928515549169215915773164514707283716511749295812126238788399096787248033242506000066269687617967440005905156785824805834483260842851464525508610534343834420920675164086518240723837796777501192944379658220250714216361582320214200289252096621989969267402485741482475133691649645709981978968061592786856750110183404216922568920584490781806907745231332212156302127273970331022678931008395406804467390113115072749477550668066500431651637930471528939024619330222485115597692245263315828157804530689835704932974483736884103127170038409134775043263987607484876653845692375204174605200629950631867397114322028662713273062249745302610316898354609698292833817725284488851413356148313566913828301706845355102128472247644247360455937576182106997491426919815287110865362571810302224904576310254233883678496926585486899789537945569161846251621904434029590743872411914498221190851963305833315416482134349338347538981705748642594829107412288296846176924462831405948088988640776537212238344553891615953297370194330413194789683042943780792493600216907879604286918169464217284572586294008226159766683626800888680678320651600756954285179492353846545000847008565164754646091095134349527478013078758236879578346817261840780355392039271417897237494780726718461476489347174345840512836473519915421958866577055418887291704091330771519344544539041403844074938416319912380415387410129205571631401956316897886634131158790713018246274697367541508405925148303374851670301882872672465126456520410995793071672135414994170745195988555193276257673662006234565888199562533753803395586972465754393398458195782895638333956097435587357310363420277270585425689226084478713553984821892861891242625555421480342840308302409024421125740797755048808309282902800264546266780971434827986043391925680071227234600250996309195782620147986216815606247823722209732735859910305775654035278099508225627926743914459567448079240308697333722213421523699907410239619759555210298081499842646032875434874956605226401399825417602284874579063615597192900117508401532000950890724054541123925630419447621856339151634907016993941957656666998805387228610603458617405864103111330872230244960091637294101312098748230204813616332879312519079190845978674545321038774607625764912286864687092129472451839460011970452403304865292061274286798965140460551602236914323857777521235952157731740993370696188340758247233859760091216394659312258159091338488694751863317685108618561761932270773905591532708018961830713538835498787358655103132151587298679052946100943644984243005207123259193470742116789982769629362481156496871762127460866098149767586495711005290635559436056668041738642309657042113603595977608642926899531520208165692968075268915215496410557041153320969963588354144160141987826487283585005067993305260939279100394186692320656102508248010452529784691176552094903993966402808255261601026647290900049872727248479522993892243571925953547615505581748621984050571414123449267310378905922518231923006280191730935661076288547855100562919462986898622855653068700168242867028623613047322367878663212139746397899987607507252138889753313397565280969795433231204534122592512237021356771899640671369435513074342805102106442634887830281882439408980026786983640454073092758440027178402082270938919659586795132527534645875556027940873932253253234087072980302910023643071204662952595010581236931372390796533060286084431066016199008955362280139962590369709499486957369883670693222587814017529456128093599940840666618963278386351590384695849751286836384843797739664849011450877403008505645827671508282588035129510309042382762258796782597404712601696592626822539070080502625713883359015543129469552628654497397504243872134429916020171046205212247772727996679138393676760808122510277959426767253029804718113154661073431390429324222627516103858408331112105205667602294782706725064626994575632218463030633400990896284453162903634845216268461828990957508894745460362798703416133249453971602467088893148918847602469903494449993876939040367542661249370808451488039493574219274734177182021417379959694970870806678651956751511284782995208279693158034138392349298098970687883662745011440738525895463153099680217848377061580194140533547881867675339588627858879935066084299082864978729086740926092513945194286428812774303004525199278216231964959140279455942384835858888139832214905939608389289695017439776923587758908326314116393603637137500947613504912622175950123288542941858976718774783595846797722317850648635582260711120828210357683813209099975783214141674364477379919464396640820415025449618644825595063360933037541523721276504324216839892776558351663209211256534990696533574108069225284840190817124494936486501887298994880935827765188602355797021182715882380534147382166930541083497982744297622081821523485665649128384178680856174873179359846549446049685468932318440180722784109760545874385097102750921795665150372452207684319136236502918663602836757567875185050439038331540684355863864403956411159270406465646052758998792775858755882367404314868680564303837009986765474814405578915653642052503533276726277075234680132318894554878517240173658327309840822303530557324353235194879664890263689148042733408529004591402241422023825467275100502788164519549806264759971405360853537380946475554250555925369095988709860392005445823791346516319473668308237819730243376198898556677483927642929574860334520665239173652646087796272876005648909605452530457141297681292606264792218692790153058739415987944140555867232536594131733881454806746268591333386288409253309877167573050621300706841427980481666574560642095064184511275192677970671679575016071460177298338835388447027251443942666176442984678009466234640844406450883634472423067742995186134579233847945031507851397212976465774696318842733996119825303736507485758063761984445058920586383828805438133913347336222809157525189905590879169883910697466770298556022067397174938203750591733139789780761362269920340395360404844809038108412192048181354837162840770038083732805795978473368658491847381997203717129694086952581310134769277793599970617465092727093034962393323447215091167299416875533650630521130015443925002952381372933229724813030151401826345367068773704221440686352336563725880759029612772679196594143852936263285827425856266182856651885977799858221296220419957230225990815284725342076433887012508880669164561751595348413386988614246630938923579998457730880981527845133698062176489389756912775443062249723216937525066297768990541892136359804973885676299118112353542910523817357517302667863942157614980495683010441988752771502879114776185873492132720623203910272911983111216698714626647982430757957867282554789497694906885492551683841607379294374964664996342444950890174327343036833703541369662687041252812015947692468048773470550024117253809661078287887731266438397587565300020967084644624970253707742627417823620619958508961341937835687765554814763210334370562964584792663914493095699421375582475346179763337234686088297558374062182597232275350457042515597222809754173721357893074083063840329996554803677866598932235482963475862892521671294873539096957405841120534585080371065206268868932898184828685312188133136688964055990148186280680038591920404995925449661985585198735968446614385868515914568119538210456116833648668579274531597737558800704083142290429523782005865116475237167520010796211057123866969414121484230782386705862378023258547197447056404300424375620167261070225300539400228967689594375678323380236082859570510313242660716120855998842654354091526989921612920080566237720488946989412770598261570745641876088504066759692117908977064358038105273326427173227375576929328141746570701394159279679826357198989038010055383636314923389383480252314017787156444408438253019838055188253322779092978513961864872179350259821396661493815961385563999780677264723852078912910792695009746482150817802037884926775107139005702718440388483202616022148674480121118252897976615732030176588673184220593869276864375299346045459009029925515929490397695021745821712489325224811563455158430511414844484662943037688713752406409853985536243502146142142362179790481577106347639102144016966574950666031475500554859224462673522299655049414519514139450721668548780190389040368728454193711166301794489393076038187999844140436929006122253253240387129222394401697546273021252764452293512806405027977729823566638522370624815180240569439702822128001277363876375707182360050179790406389637520168572682013432262539196059982532567550415140025787763987839823197103052363220515603844153356249664575080811106613549213730837027454509233804492211899698182253649719840094832567968574955354905872918839072847758447520994980909309650891895797709442808622791604978088421856186025841737974979297740656739836468541453341676250677745298453166536532248573613022789237328791306830765883840786001417841067102739272935636223203309476420241661264395493658499020587088096346246485047443755745951344060659589914538518641956570378228255392810761825848476195723621705331352176981676177827056533574354068840648379561851734840891755997380139129602147487169255085393771340397031405157316301696293021710173867974161097340792794792050666649699683999514896284943843922194585082119166480138611534379573634133274675422766645522539104653907452155209387854323652953226718578035686421023238443079049651572726462703943297364561057565013387597904197067748883226540785742793716211487742281200035220221338552292374498461951654907659470518225409401743589940929424024076107960592578807371156894925307360318584422474263686751664913705529180228280621574101362882820874250453579626800898298831534745292417863443506457749281753967190637270087148978848855604532623132201071361238328809288315035387650000988415418650295649074189783894962891269119112240241357172063513171998525591240378721586743262223046930961456866840760201657847210175991333344860866538932762160213315402716434984504376009227192692762475316023229190508663190098784227876798662820320079762669630287217152123596741376017878096442607957805294610422739869619093635197134899885621467119538469089490020200374858723398032187472076542436887613649714645767819249238841322025714074778271669878843922203554073400817081355225528563166024555039090713315343822922515527470073854767552823361739806602115784673431456702775632505771312929507562957120299423012297252848561213651161903812046197265823666306121518971003566714860489544321325954801753205574851161837214728582576942806051864843085554134560474737300031938068917146672354497326979002385609081380480562642059199599170071105072593533855389012549755560097449320548897564208153973345296357893499264969130251480854686702980620287777978421436712509188958536331609921972994723521275367713250875891060687245924209958397978440699048815100068127703524197110293317753181514955283932844824485485481987438199369108820960857846636054625288998283127080281531986173530166328837302677290755400739276654986226079118232141556174770825792149437112880734671430820902012987710515677177516388907943844102958759739992374024089131145228977404858384362675890632090506012710296915668888877594402634302517213464685295952777532476547066237070593955277918878399806421469494319712010873156228843046149531468489545653854641041416388713698733658910510847766661175267539167233367247266579433868521981279748870068984006257371110573364432396940264806459613343022083702580206386444504513571311728761787074050420129176679765056563394621853571498373750410951915574255924100145837496107370892389532552088700314941132919739891722825430497888715050393747307213953134821553924950479957656838615667985569123393522703562421922775190040512119711935008176349097168963818898747524435024571361403034845411437847893333534204061593594109853638012265666909051757934378291150943263555760801115061038831008684749522607418505420209445312804332549075765638466136554932631083617204850068505862931442371835683749446383068651228539691268936748055058263972191452696541301229787945725225022064552544610386285728061997396638342997971771480394575407662632641815318784212664283157532746581044278102694743827562539119195004665081867205716666167296989312266542715040116473552922045778117889912660540614505497576936449872643046027463870274020895777212739090408263199260194774623144222970449559133166324331009864265964688069103570303102784465125400115010237681099963838080516381930491440192653059493265825414174291320395218321338708604295081298199563344290544065017093050988204640222505230423697400765656850604461843370285769259117038330034219526509520117925300396808466997511967188782888261618295222556212395638788205173260541956883975276715489386985063207187207740929706690054189423381204232257371309144901620514364494776726056982140036270272502420393503182124846064255380158342402791944998696739945341969402169517733024310811294588171172172312484470809079729073045259003935025833175318910855647231066881340702608773304003745166926632126370388032672780000594820640427013999666973233062245076594087155986373417325666542322389360089571647871788763290252215791665481501095977183655193303529546648491364893400023019519743946674818587336863603723612987842061906678266493078817744653850395628522211964707121423418537600187208224517430527781100212117741515794838809425630218776734280713681944003434283550781103547709360028957985238926858573380266638266345870517720656877786347858998686734666326204893243838361958386255447427557885228601405625887727976527292616983757619595965291928553014902307456711212764915342593479280898630950927440417341380580731485713723340330864868942677571599384683538167031386737590062879261523941876256338114487601947580649635148924695127400477987160464834994977220583534961978402734020493013327873924886528307898182070633076125099558476130608010542651986600556340954692612788923905562227454321984119897661407390342360278317445771719610378789881383091775126576985131564333609229812980647253513048580833875315266008102548526082327091911493134048685310349534046747386943926400941947185659711145325790835352198702640293856667451161801522210493212997615310431220074332564980139383035839135204422873268695777938193548366532470407373133367566514982371926235736860081975926664037688854834252345839983579300472810358775247795302615851151680270665500890498403102140082417076782113418725643329805497515585831145711580974778308316877474521083129674042079677100209235084263385646170236223637257805047958594446593048500039660464160823451717578460767417162149386028353071282903746524372737177033169386089327974256301918335420024365800435778162909974817022583019154217414707224500382285233732588260421842835335239475541822857648806045909817155534167272859710934817769915063626543358720781425495022539042085532911990432037411391647230961569100304881858994524904698693436704791340633891630424532124176151688951846915443284009184554696078248559726794817283933492058196541526978921802363620423531487906065826366747598803520911940431018584244514993992093493657422120886879955871039685364411347929971138529546330562506319320465274146908271899008259233375947300639595050744904338566687987727741412000742326383266119906093105738231721060830834369979712362793750108880331499707780694098149371973975430706443633362631337881702069427909930138203177268113158257703161377259850337146574402408766190953164748734522231223679207430444133438793839034558893415750298980655865548737394362858504961292055331146809516877269363079337304952688609955616465885914396880656436066671553954566518112683496613950486197616858823581250625628766755491957211627808807902089621347582989532483694592115934889442657238116773035437558912018336795287144920608332623540619038632112177649389378543649508359511932115944504151173075033545381711680882912788262582319936810050563561190026273611995762415481797268900731902172335369269661005311521343695617940790017896328950242116518966941262332361113391172072531064307651661557859958078668082848002695807184678562536153801437432310348967165363242368141290724385146110909832390605661704324322759675518041197272797432977291039922140815605325965672488255216328516595495867706201291994998657446582225921217783905312358745843222204688077634174047923855261093936768818301727583175688282822626798118199417181409598568953896445189147810590729567278805857884871512658794210078631813506446099887494802619497279556586638075810141102750465061102365771064819865506355196233971533473977380675833008445605119334484196771623948972447383445884609886757386002235180875836909144259113772467309395643801212017232722808516441356886597336510684883328842129298186084434098860461603132017808608447171925498565435335330856433807232359324327746340874121051068137293268118725463300810712378666916720719108933516298019308398545900028715301681610921874555030611964194470392518110654689814422616963143954784243777061713182278193453323913515942854717724694737659937796644245092799536166902217990094647021671691509575927326851246157095444229323775863061867638226109130908944449382991683689425063173544173524169296421049930149712092590717150225206823551352701252894484873922979982445870186172353783875520453746541322576236706964078382591405593227054567039893562470040703107052411461352750374102134663648968222000335655892136051956907399606329105334732029838499087022096236737804611760250136823650505101483043420730702634715610649582786783835904217548949658451506406857272785743424039800313047704280349736649108478249761190772161774406771462315658953782769717348379024708858430065182292417738418412957729782319689254508942145794111599696091269916984986326885125947765832731264828275555854232068668361289959433036835004933939212889399337939620377857812824456366916027656171853338681178892811844094394930323992778834828213770424809846274241171538339740156059752066629752546225620966289188167151859609034353558424075402335801544409461410537540112567844296828106384907642909338995875243638969484479912936018693609481016614197655228740015382648474179352499540307727047695882542264302918415906408664629472304054828229117740323700165422035512443512908108053782923230090284740834689462673215779358649287619481184006005388677856102509510655872128591601993621904700442668735015654689927137618796662670547394724054052517471481846059262560085303895433724653516675166041554895208574968141440634066145341155027268028695351235973125692999439247458643131150327124282912559633461409829684810548756601191105129015104663460725514543667679644856042448268451610100318951686761286954712812774054262759754054147001034401014757517988513284409721053912567743666329284509118737383265723802235439148791700212612203770478815746340247876796828205638800290987641087196879412781198483763531412861667646397125558050307850727302875768422037666869858264627991786908440214731273270211367140547504640455802506944435044548949428810977141962600808622248557323792336671637453782526585005507683966690135211997201978674831062156184778636722458996894811636405074457589605143103204511339498957110805005862579660874750496833532701295417217829601366225339690491875814894327456163437442793092982734759740520450571982085409521130023959798363697187883234695414411871565219822385330458699007876880892811807111762879866484415160056467791833081007177639801706021143678225094238381671500606910711635070798855602881963763093710761604914981023007929640956627422691296447022352984188641786465437101973104069604881125769345992642952538123071592133390064465488604594404403728349377360125931887596469756495913642986422177841654066452812905261213869903126069406490254066558381174751058486085489710622139315921456767348648251001696935224257122643983004221861364328977977231292464590577494023180866801877987886270794797501977291156725701814530013406253720444409786987662960958057412984542313111526081708317436119259734637409559767279044555124759114238740217932870858079634243596896134309176614981401683368451564377190260836263432821337191591524817723789878520303889649304726648624647653519492642767213022716681526605409595202495686425208067451786571200125953474878003798017619816278690417180076623596042159149925098999915965683732142100852823533909538636072427742202202263701894238654801315440681366230584006729889271308259957494771187853048971496793569926993041276276522776157321836140583033329693561592388523373707584576441030613590426934945118837622167304297655121241554974786899430164199177057986176827504472286418033805521888911470450331687245809155576907712969925208583826260955907099894224950161390109984434822548115717264362574141131965109885384764611287513835403476363376391667383254529835559982855560946829401961180099113752222941001328999738042662376270229321924728189862031970179121973942228053369219091738067667512669726288025490707174536698496194786635796261463294604496943902068516612189210378998962797373365008929028300609806907402898784053615678358586989732148831608264892271769727982425629102327699731566006465337328400212448054331259322167506420594338389157747802452230700368989129364084979683024011157957808280431325242504977579512722103961800302610228633245535184657343507868643938942268408545050971924811788711912607277752519725165630868311372915649300370191734169756923461540576805834410186958463093332158062578188982156283934410672011812631506183331242272098848759390544929855796745385079111912278793917696799127548171166976671862419629013385470929747386609089557395192496216543785019047832229183110462469213027081110826177991645362906527028528763008183686364700590319617069975151999925952202681564897545432546422109965298401050259608312950727600620025690402041126687056874341288737714869200076027421895392113248077413371913774950168892966443575174977901148851523765419805399049956879620578621785759100887388745753307035690928435047208577573236537635316523616362791324298281143338859018130722329552079630996860523366892509352314279787767721586862211850425793459189899329917559044536888594472994322498462595217740511926397530936519240423052619720091550492048345327028067994896254398126851649646439701192348133246266630567264770598362549711126944713112874206823543154638905513038773706384917414251873052599146751600058794100087752093019147887236536510675052527568336555898956834688977456220205684201684772644898158757022980669289263189925874717790359694386785659692441421115519623525284814737230041570040770031677993788471626938969814040524849007158929432826182021592516820150442662333600479052066994050671625198883813637980898884034019771772225229959828026822664359140936072342599560204914884512060477502454743805911322284005306138870488386668269133591156873486442931434741881728267168195146181058575734790481223289987487252844755828036495941852325108803322659252741611751177215863327674253462157018862318538876496664582671097524858202026063043406995352292500086630735324768668822387429588617924599911457780190846429876684434175190529055990234242725029838204467670635931722164857844784408541772592761587437453772483618551726836097802996235157487372088211717995620867197156851339346278466479451917085178637512546041427716473751704488194426983844327395523078034806657161456019978078141206914845003964875454423608012336379796579201109483744697637173172893652070630482434447819909947177609863786991325088972708628363119812294932078705868019148076437435898429135766871315722155769740678780593345545861743141030254638071850585554349859199350171488791800081802029353406958142202136284156302492149857566889252927027360383827304972892022442027134517458072280747733339145049733404296875806390459299179357122946079253702766864769246901095004072510937349873341246095884793481693570483215512880096533277189912433397642656108735189194557411925096244349257320626186050844876155178034711275908391844257893130624781834300697483834618286492264189502840759088483226743233121786987825930753137961287972025773061110249526900667363301987213993806825312548314405610981758010537447948172106603484122193975960566873460926108410102657085695280726569752288805300555405997042448768107909646226752995191281374331717691022741208645882359432039477843396136351206264294587478525844877601794545264756583112306124585306403667250053365394517150507597458388370383868948146115304918835303174676768546494623071589137439286802065700761833803250653441596768633262001549547688085885109883801093938907048255878033642571704081467764867342330975487696578172355747331664399052888229969715803605135973248119992066927335640487349535533686308726352815670217547311574555525242713118241595827753452454671533426021441671983978680549105965858398491513460256301824110604451458122872601510322806989015585450662969183167570256340194380212701448685100066198606018456181730566110145322211550461957875568613603848464657004502766018333264053981263898277953467952540915436403162662446937885751544316249851665537661852657205774460254321630277815007089038951203897107261289165233436743117240240060515869878084808500479482511713525154851785299732810975686410064562528261371278031548225658938356367435222724064920360504191857291868915854049302663440267199454357350541962755088335503575864038325053538952206037281792767207801812047577406863367024148387824539469097103063210048532698027611087697003042399946530243690917492689001527168600924031286102048093858534312496873849690105867523975239281673136628760527222354083841851658493710258017876649287905794118190969617491766093556228381763865499135582681542835186993736264396768038569397398367641649608405264167745950711354809581911852660359612465679850384731698354721695316449759049744827407263644008002997618708562675268097268561460340728297361533568083040569475613347309651437977593719137763225936175568571119970549265551893181872316153899141339195383068710816715214187224850692582440304365851764381244265670961819717043307011450262153353363583666728407071093575830278606593152975522061717508059010512713239164444966724225381001311792653570199431723283049424258559270912427636260035996312323780161038009979280409018916754921652332239650370383283003721168079583417514540431189885162080696794535107700583047117244183688805748713665597851448225689096952753186688940276697066866129947559589626030248309883950340156852892255554851435601613719029826474350975903021603842956311050636750031167931931236246157803386468628465504860039145823997791698901350884848500204436890375006100887206967663215977115607624955573983597627412396883249799049419377248376244358105287444708975053621123097941659974027979010444923329787363905056987127319343234026756327031790573877862652693984494597912293773941556684072636317027561973143739092498754894089141601386396576116694080700973470848684803995358242382537639282558402308305304210209781844460328413525950302885160951616002330266041475231824222450562174745814942877766978686957265508428967793664303276852898600535504904779848468746231280748000689602712062463500568555970706592960632646809749777536935885536914967587328990618264358338494833033625890177055198307171417177207800361333335460884193346121704266177112117301062453516083309831962560495183213102451374161958633709143725317680745372030980725044020674795796606975918115997456617624701314990889843501332981902204759473476143184642107775294397312610059357381704230247717361811473749102585957371494218803020348344711575916885234679600599554953445763151077831183727099692605673216276474039298984020665825374276563970651381211665296774517146735209505727396922065281719660164095827019205471287247465073468852104279323973475551317103233757672951625268486535305278041700693146848487017911030945060907599315676737168253008518449046435151256041886720122630211758054861633671016150202686714784214617126653178856421091608902865817646215648200995469992896986647715301682313071445464916208800411981446409113625023324956945850777873005474312594496334365919977342753906795721319557159469042801152953483346302624363386704915846069796238414785912837978475203548111649797001904204487654590443416654380182447106011775031147016279565724517485874078100649584469424569177631233010456217626127073935245763062174724658482409178767896364566249604959182611745694253281674731178217119294923113991946347756114517793111299035043205198958938171536164618794387466336014211682819142236765303880512955458611362596315485587682028834772342939363204362945241213148569473128537072145057427324415061028862670793544397911041073998007980450151870136761721774722710267692260034417346587370079649831251318850569411326591279475487768076386680039041330234901875722259866921847001631256318926018126020902227382708344158019968296752795001424082922476073590573680676229619825589408408861495191164568282484292546746069108991976667439142783680471139583914816840366279848081819919386754719731221224307304022961605986704688690083156316909852230542205708976766834832683093272796093302464448857181702073340524671215022136073561291624162337861578322582549068462900789921881141622193254570488361061478453497208605425217784530338815646989749160384479036022143999027293683900130826020608557133436364128561257531685775483208299849756167684736171035280477251001869651116059219456610587632925241281636102487967382927803618110861100550340004824109984738596935865518043965238353921765338599707443941875812557623855519291541917934690426963837062374629088464002981983363316437870011618571933668644711845283749890088938145929928887716006517136282744340225277788049535610705562811737481698213227485638684118969950477906696627414288568503401669883154394206839314194818518734849595088846105348621374835746188405474615736298908119841364159063787871093323413989515526432377895449455976806213985919227544306612422368642622768513105774940781523549824720223291935032677426146143939543224282970917283320084013991839311234703340960125787040426294855830777297984357408782524066008284462217742745548275985635975554727486808448239598397853169138246749688230795493242460783440498678035611728648600948025333367590304645438187415619998510314979279072485901604627231297697807135437798068075489315844019029858563534095576979918987947115154491175787734049639606888969096801848589029672692828160899699277859797851862765650223093961461077005940971674786617379492870643989247127877467447842051371936572775614816309646816386793775501560703675440051313295582156038390717616284769937795244337389734111556050287535423598681368537223213537143248170407287879919365871017482750582043227870232761629895508931291026390350671489443938998524840359193192048825136060431438586498163046109988746729885145047717446252184121606289719693379972518903554113543236170005351310113347075356333310789059187922600947203084247549112893514052362539683281404297770451192826995062941051606963897722418939574177229822283496912507460676646976791265971046143330442486611251881073759080130916003312634028388925568191040572883381325741812081666487031040705551956990810553935236593124478634969884400217056002677418046320249424696927665008078540610524206411396586364654706893490577303907915829939142821002864274491585617117030329028169229873371750715425263078528571247687293851879604877515935983654559944752264603752692778695158032918514089859616366568606957304591590288106793976208152710859094740801118105927303604567072034929533497818920530484282130513093673527455709992255715362550088180416868832585606001199777184989198169016598442396988412605371595182766862534598602900099535184242202547104160017009332463143274731603261015973493751645440276025988511158506297749483781824002868684664093515170627996082807888731034274463441586693759229483555379891901241196514965866916516106547913717039181858082196101954802461681934694346554001700683307239478106026094842158251286224229062978633432488891411645561131734899684585852095248408027574259543615763659596720441582076095091805403157391895284991579369485855638673409069360951564996709554900162360937004610436005719248007733594518436713355997793692278487416605679456994192946212709135792329666151817847886055954128562450830663059742810903903005563096690947548929160914021459485988408906047001796046409181724974219373992035590626963701237723284483296653378333506969650949650644743750408360257528987806282940794976946248354612487030339815299499071035946701879454901219912103198046496107989091868326124891600928726800692179711047576871926271595243977686788098157087771873154149819597877843662656044182241763993004820081741602392266685995862320892252846436537808179714264311911813032166481078750134941909186133736020648905687714755970398965437187396975672232242957272637507469900804683683811544385205244990286894494207362469334169935451010657115848515965491293100681184455026532238251350762645389824825776914662596630726684270096121033233522985030182742828229926453712621337645574322613520667608590875372256994665356108140002306494596388920891615294198523997440246602771701307812436271942627803806576678953075959945869588451547597815014001902885145014911240221627343278489600580129325897758445627217059682633022644464827736921574994829020504876048999411678913990752133967505515546796951074289591727186929270201534635049231213435047032242670982367586043224013541424731759101380105594420536409304086627507289515077886369807512274766373338233248834792588251073654733382155163233884813328680331207025680658986395024934294226607259489203806936707154360115121396917654659373603374505433331924827469327401327950734432508417159201917664025185587168835107078704584787433898627060772986548317442243230319512725534379212336611645574573402134151426409159981365487107103982661633112096798678878381812855276726267819171591537242201907600148760756843372684627605714558391548627669145694772937841900743087320074188612332146473845374338728914219304409799793257021932264708372127574546219951866871154028960095710798209686462509916625990888046091363432884150860102341377055255866007135898339469882886462637796595784818758635393093282706496140960600869398108441125820032129411462782427265675887296375266539035216739491474801236714523366920501225484352392982216862903722055801063562391865846773294951260866358546376772961370297354698538422962761954066810789594725648646856752124468462988259335572431134466524074690621027687042565561769439044817625554353072109997210578944486713993847639170427144516961736259525216443987584418617364505226986959068092421663532643860729542516470822466347591812997336280477781089598213801483872016279128815718023905363357060523763198545324466928268962687111446413400620564811524913969975074248739320078213107212134905353407088868449809612034261103809788565974243016976664852690873533912080858227819176725905337786793106026213271740802214427515375828381432432395207842375362729535896192884810715352983572295287436657650870078593689740272982028392313267099303442355497373487109921319282886773258454323036156587037788894720615614931552461196889552120731915884354715981185898421993934610433401958847786306744632431159344848787031981097993989163026510628799206983428888186641670255013613141894581514277739647420994468664897912940920498895777530532949994671899867002856412246862734409738597572425377072961918665259089452975864541079427726346466622957798060484830066848918738338082313913785581859090037971692592961263955069305294941683608580115852573546432992907534638829206557574700445996474995917750842538999924793103397647476678247944775750455807105484979909276351716069865990171098015472740777771150784503311474510530622921362667833060233171293349706727663164508452117497255800617195755013392168375540808864114501594462113301880803677946489213232207415304936753129080618070050118873153943291136938587639325981360220102530147124197095693104183315962745037559618206791144612506323417662986944797545840769606999732284452795960200694142168654156428096025329754286670391875552660904266062377108876640178035034890488139904780075454304525103915808404324852903402311815718532657239830214481004993440492476309112425956160871897478282857723063349797556075336056237286830334938266739046867184933026192738473030244980463333262928859754764443137102380287828679816228491212472235189754349090247003647868294278418216356970753326269038966740029133244810634672033023133870402937621082716985813571324495161448987696094248814486941423027696289520702220409222129899382284662618451878556579023058754173516207324635329451599529504305584828291246395950984910012835843843226522291113346637710611363007259842037254307930264502772797624309432070118187563121505665145701578981719811432076822093491352514979510832466283798256928466817663289997476948834835828876677941876200772489779162369318189564301104056971240964090955207725589719481812730753598957718383327539731493573469525565808311079326334898723468980653342073766183613926407573215061308415126434540545918839282935203045112759580074465450891363959600269602374256405936560564040799389500305302591629743463250638310150432449388261996629911676609688704606243281472189689828017469851152263502806516617250181491842792991856313261073919116831373282157645584796344670633646213740549677503173477395677269101943208172198155386296759013141217977794525492297633332548655670619146749947364073896797412573006902917258079730140231065605726190027308314749425678658778059806564058889498571491628401899341797704187671719109259577185212193036196769121880658879757971043367478716045223302555917598193939354404388787228377376604298742049863153137037927659966240021136263082236395824592909018605722668554059596299556335737625982547922263780371431386424449007081294155304190013843637046185740353576466499555734890049046818420642544095878295538790903691265887246839693375807109734847983889575673771329284518883730788039113992872632001579847962341343544003243521330907481695555747673754253311045316812511118113042273598613236360195639074091747504968450989244310731208283558980217336652348740470691745855544242630488213136888616955377927206453533889581595236963172741737957918802185889530974711352804424815045807996071769952142651498446544684748496577738316383435399892983429663610470063132647988146233164331487371406601417293663648761694334272273878081707439477692350531416794656227078459376911420078378519486612976872187495789879702788065322267246130234204136858900406312913844540199917460556251862598745506482255688937307647941912918730189669259294651152846370930167600995202272587170996280038329131596947189535405956472635121605042899907302644420907867948730108198353655531291041744755901725186830146200903086252951048104541825417740213540480942503836759933191957158122323575042434002154921896345522381693669120178546405737874405461316560768689435031694764791434363875302933225858806193714706148133017092192101528349327072257286139310987471720499872437270664141401499349631866429893841805859627341162072041131869882266989099265698963771581793109023437857104677445920743442903077935567929173007768863170709617772406655583422818032555138021547838852839815230230047447816926427141000947501039600363516641591638911871867201434253956530461831183140593785568721163840258045228225936336029513254186672986896615390043714405386785295587840958591461888017812844205888028404293351464394019412516652081248247743674489108766993886102004726270950767504864753145377075453694589653039880066050326275672822372024960628876979195911481430055648280448803687588404880635823944657791908787868991709367936389313008292348928635725766707981919713645104468814564464297632341679924762876850832863213492325455180015317877052089228373791909956612332202266931797211523160770581081614692639215068894004253681700668150331339678635002723901273574419391131943503937071036364277463291743954272900780570863649281042733647198925443211155453932983287423476259869728429159832719437533658554649807246078821343761247319442709572378948822252223026735317190577524326244187989214912616592331499723892199982333642852578666598624690566528478425436191954735004371982737995925081997743071743905318119274021491937395232869514824710635924740237983037968103646489731215185659087877171701940434308546056578106329243372583314807202122225340776455344454682764549110455257471076404956952826982603001367112865037657855820301534120325237178045095542792596528629785994044686446053988840285569926734258410319748947841763719098229745097480466966697113824506123725106067034277720142944464844388266421490079786279723679173067680827450991578590516247822065016818829235423204344791539088073840872160369171258397000825912945058592578999952400582134639642341349555179709323727657515027274005729722559042711575789009875589995504948677062808768586360463550560257021643383782759039766173317704160616781020003707220828409781655105959093565759179561195634684571757516980659265469596609628565388024305789882549566581043733867683862990780255839673371221755300096304264334114512882044457707528725087507847726265493892821088443553397792742510540959603322108497919170679714458328170302154287509849382696809750403499017008257154441525520099263378364387016793058551927234943405407787143050513607573404566131866421460178390150123666133863988398394073427793307839799452037357688067802332608683080171623217738837612304423870360968471572472250999342015169097860447959717119993191048790651016258224898606502986316168179069525481296043442110598423877116809818466775693621635437766452202973201779363264415834852869030089011862622396731000153627596835286720415799395479977513367754559521341271931095361885265602044789084036245583063556201815251870493524729039528763786683378719273138136277036057213543294958701150977622811469197806099111497098942678320536249212643356967236215472129338799760861209923427029285728995134468436443015253461773277595923860125246406204120787861401599375645067808339530964174269439191688701882601466658554808230239665646748732619147173197134174759338541395193897954586943336369755199943044604024489981567184555875981458234062490871582540354087130741193409302263698104350935805112506726604111589242178516890544913049744390529551716536051822344831296728292595481827907523710699358728560009794806411463333020957630116049172899028844325874072010613322528971984414023353705647797138820524921655783568118714775178561011550084670442013953570863200709629612358380804096269875060355448823029646004236301997688909020207921448243843041719964760060496614315046719518012350265506144120608106185017775430734383026994796515234997251450089888956833902098409494610742010323493793106528641690788576919786372856236869233904342598166610462811600156236642845768905195008749771930927586004109388439065069870984575375589843261697548047020055395077855513462803379589139743107768073442270982942732036165168186070931896455344808254214475482292222262954431886360848592254592235225224094889790177579162340296023647839925950672562309384393780335624373371798439742115945509417239438663408770843533390125499127372960112528940784966755668194867701775518496185375138788779594689638605760745829431705607030258116045379519113803247852969017581151496913910021534725818034482630852891618872931845076019776299323004369896982789950304609723779893095825299602308777505883850100038193194418867330705623291277112081632864429480710888490648021132331222208104938750052394663800360198050782979944984509028613277465256563168596747038583607358123122438269631451687327053833787526314942756594195903772880654970069590643294003530208710117278226188734820162863522823604817220122761578469916274363062522715486326656684044274477610901697139803323080148590286885482248135138153645478484924235109729019636115413008865704536162999806823345524556354044378384819459112561966467207928177623331270142650676557602640078514622485779960485877694280020902944137012975979114812025324302492622991174018016487907352927272760612878022022654576618576814085875866043471245514385891142236481374318110974854928613542904866292461081592720890660221386705810324591726591225540998775041401110039637061256682953906452548012905174677701230831227807174904569205096208168739895133676808293499621103521769557788768638748723885172896951356044878474031513138197297473522424631094382112282176090235590544988403622213798166667317723675713447040058382651788241484326718427613563825782482093249873577320221879066764619062600586618879041984396679890592371189418957625962160146429298173906692169886296434277004582165732970637254508132579266256274560046487680129242208132868369689882996986644515917874331353707520971893286946496720344161897730756937650314343909568372154449222293600223943266220783156338610970208119245333458278297221705386843569862957488078496653484330434594947126453011330215287103819078732197544570191782841050339203667786547396259918528049852493437778836497657635557790648433660156565476114322109534554228262874465143704672988983547669808539929147754962224564212941511107199467351272733835182827213808954179542210240980334981941643451353588502553890153615774431098849208622560011024523910626527043963323062328702524966979721205865995943313974983058060218291925305289284133096496925602476590557589529915204132302254360405798098271529259501077553690459777684341745535902576524785767375470215899723489771491084478178952428164109196001654892992379337777755384831954309487509146320853018846768903469417697952531728305423523701964583572456249598062523827921538382564988327591277503162420770041671848102573532069248314042212801220669692598316203426236619531272535295826190887865894832435409406855156258247134283749553463286035885219050438509288071305241000085266924625511910810252324302951401284137724716514321379622396577012440520773212259510713542986325699492527255164206438002759078283003734730411434131119078822277553424802521901817227122764411676006312721376413251935437038912433728118113300935326240916154134086074069343590353999790493925338969531424577769406570212193476460900512065813295781658210845136055260408631392818692805424630013217786609572017060023232566223370617881956505622837780666519016948479644224937212463580384841784695868779334180563564958451644938493900437954435925931941906892731078644919174060449586537045630893066099120733601752140696734706954006838627663975844941004676046361663215376840828177545962569124360379492049712407713391769072915015840438517425759590326772398833328381297598167027334889555787683684176766405766954552944472377125952572908965225492618447860841397157795865298678450092873808197810695528532571374096775670913397826402657983977652179832849957847985787390005164469960071166189970947153902271389153333458191354901783024253018243566703815738494416824093477238048527572342825512057711930773293273419063040271831672215953405774801632580276436081731171262641480809488329797256858385182328997197714436509079885467272764341022266740546208729659167510434428516403316373495119362187572930382967208538968281305480425347605065593858730618858577866108564595331752511687196812667824494095574825865160458562931558199085172803824820520182761505617608088909183272957681844928443162627104515656905723550724878856762712264691608545209219967270248707543233711318229475955891751195914407464594319659899141569702782460607220782416850530568995405892109643917038090074991495516067341502729050214708789317710647333651194913965220340478345805105620118097763721429724337413782714528755489647301429097887087633000003703313462029173440483090058982664057253775471304617538895290736068170631756362728366142477908394730498771111026681868323564484047941969727651777547460626818168130850154059893951324166903648935584299704935780444337368606455681592681241874469498467812565523599203376022751445499867511874204277207805526123999828216492550470425083066681199082143596379968264131116117555032703449193679357026641196660753324842860495846597789502216601965452276984278189399555524130817718746776289497099740703218391463155117617910106250463649909855155492007332851462788277702800439710969845932328884590062621281200505062729096240593178135738986691839819345801753780348544591524839997736336992414346634120126340432097605256683618948336465624366678118488423896186565030353924917295035834279133392409035444837983764329884422173458894027016093418641595606808866160067842427465584653064677186384180789801440428863694073005112951827830583417621801294999818932667404816497899037021461180488531879553203971819109146617216635808729779019381499511914461280219624287231326082633682244785722441461159314788109131220106495656343733656719258829270494151656138019354474452811695961193321123739881325419672324623497613380386092274544910154317297317657297966033885157037649725792502116258192598811336157221691836452973976686834160921229830225240585359338593612468064727018467611314557558284310355196890836266202333350608212698392965425486916882136653734736660131525822638972895622501485469108771686619706521795988777770838142441296542979615767581335796433345046905697031923073961367644712597604176223767221650533039257429862073489244823323233610318994138403733170045463968378073958191551649964008646477497349685138805552434335930429492023148989687138284005025244740944657714251084843762629682273414996291141313468272417296725274121156046163586533413295217096068156341232262667580790443933534341035270067028540682776015281673088585779177480772073031044624890715988745070340906456288221464046411162665132238418873760915416291900070656746879330297477292245463960711159679474511042238235520429412124126123625064926536548628960145214118587794257606312095286152757500516196126992012563667644478361754392728581299405864137468069868635284148557511460567090732757602399540523187334969610097101180023995830995481133109766923799120413806968267270889102850079871652918340401739369515852983139612621249183064335395548718560627304291985189113565376403037915013959153909799418892342658713974237703296781590788795658081336898823326652686045339393436766094378977992810901994863473091784212751504231942033728524116919330045879866678714921889311729640271481324779798170376635406690550977980153114867969435024112415374289875124929140727713565382746210439433970161671579012186941305540753502497726426166795433538967253712548729402434771943857698429010872144337490214492080870800332710115139691708917732120755471662515054121633088551242684382305183469633334837321550030146568398730365023246378659820422379419188656091700527007042203622172972768398131890260751956769907301013983209857473899138850543433974918289235702415894877895445818411074615870836697140722897538639892282403534190844362025012815396424748455679195602015681314531519945501631525235425576598460223629253633813361352896086842410587343956673754397022672233852076524781159623603437709829232677149558912169735238738262252055420974540335291121009239477964163325252234335486951364792968885256359715361211472578696595249899911866084173050549808056562540427962699331054117996670081231010025265775073310208672207941343650543145427550562950996122357654383254611186321869748273609924187644002564633598531954284579384734295945945830365528318448033053562284519599737094820210937698725906228013799722636313981935499959081721972919562224588449431502399786001665745095988366631565958468387529005341605932696912954074398528143016450959866716853206150889809285604534364424402339341663178029015765032073497448852879524197111712070781410064806066591354072396882634512422811916584835089258515203051631920931347552633261907545789575740517540939136408720060260157963699067480034122747287598912261196103930222887461263389847465357701844674057074049290351656855010403441367990259694874190368022709493868865337658643312531764249556496676825053412362888514473027101882269003166676929595655137297030752410248496331134549645622215586927403269871906875163657912012974934899137963849448373053248018662253024692913461478202917234008440990775663627520366770763957817363610779692213508870731632698923042462468860461215597467772779222937578643726138350367173271164832045921514751851401027430917805160706620569667847159751865989716284425603861704260921282397914023550102420044253919154521985418329047503696062696911845968211769414549383787679347298627245371682905935968127185441206143371986180711562341177829754006008663485320854487983953156353413714167730790488241413548360047476623520361100277176950430582667031411325793985840987946273031657213601124115862897182594778599030267189226275858391184597219092426333244130489935861705588376826647101951650476096982768727515034400571497213517026081406401057480205370227198436470116565852111923761260501728475834831994953651159346711625293473717558293225827056779036478949935637871432437239171258084852029281418021366570844236359455394567383964079306612926852795666078955801918083989712594758841102394613599335867157881831210590580882331825458639132282625400501628500899781246246982638597686805896918079106323770865704336797853116964517152244159252100854551823562681729410537122236783023796474242968804952445802116132884292315881624835917311431685264300845409001387624704378376590549574997254206368050150684060241152852327398963789570397123044807035229516109705458556042149196382662789663831387050899071569794701963578787236586143109621918887907044478106132043573173755371650174725483950055286163292282912692003871037065916283722368809804407764400750581539993570573783434149341826258375484432679233278910354946512682743556368497463188597678270941853589725868471631168432759818011623373135916966761924678375310992865082272309812522570132102969228098657849935641712568542333028429430116453953585994079186685980408818014587391664417264953745422969332305229790402470130494809218129940648553219041936111345826981496096777885613703846233130649795386582037675777370049753065050383658043878671922565146629934337345163635189711131490343556074939495214819592055872105389372345771605795982260235529133780853081564224774948911856504714920468358955497614837881026063866363015712526683768907530126778199983497513231200737302153352673852119915536782578446614904686935332340108553726430321631724442545496995270925074474497564872788411561455278317659591207416393234142594760866091469784238711781183817213147212872428577087677392149326131536686879798318532540385691045393101006208802644952477249680982027802023006989184343292037644792287320676224171803569512773855713209250529293061176824514757340809804992230394144720277063966877857349920473606660352088689197261683623160466318144761286249854576130576658655604364436459032094547566290512678049980385327896866896484321323759445189957829088599698680101481800141026708276311779098467268012228188729866227516998234073444644758662514401661514726884946867796785069527915213417002914775637767347609709979305515733172989655340791019753111696977272900514508695547707572844867701276153561816846646926266953664325941041852964118439437980219845548493542039807936907677279660125844581299363601291670058094129390904572821735609187431733271231361892258281255584300025089859369956628634227152488031643415916025744331699322381393084524136662971989498634784750015422724420401852750014474466313893183767584993926381838910863521545476706580093874272538130068133207555079642390872601140349888503717376135217300551629287740180198027074368229646619277458617395228638897826621306275401830231568355450448944717515128403287492985239414000767214077856771770419393878761960858241946713831927042382406287231866362230562339752886461074616390688750356937480046120896066922595661608661910878085051598530457505589681798259999668253971923456554778025246776860111448970356565245143547043378628121811762995675547419099681251780859258854815536435609991351618163172450726438876932057825939487577440868148556350448435068299597654391197672522380510143808705310896101678728992422435301382480025664796013990016409368173176047498896867043979332437844700305229966331861154726945825812764288267694531477038741678159692664255970545221270862490733415452298475647064112279965969266970386750417044880023504885970351542405350229161172757852004305300006691842064219440464794467406074577621689204076146090036562920864372628750522181200274091588277391795247903217257919148550209321427109981006696131409999772794392058405023671908537394521658690583904089164717552883983675022291934043665195673289719458374589478930997703694642202609132770671637460046035529936823477328128111205670117941324951667088785688699487541609553017524688018505559932253369740241896750101454260239850788339313662146614540689274179929316456471519115767279217594697257125849174247923040405755167036901548404176487832617080841437449825780619288114454540005319036505485557435200616176250418072736887397409362198504552694522471661494107014549947362152741858330225609618216872682236055769427475813462362117790154694563213923924018364599209637878053249463346624948170772411978284874888521338669936239305224570427377886183267275817934732097968835592395407735882761956915125463106873217371284598512106434444351882201131443114126419177571022773733412178442234066994716389100446901754778451273956270583225746842594388245682993602930745710492156247430400786787865307858140510935629547265002733510151064212085841846715605183107090218592804210716368553006504908069492711961821519496513002985783752269627722724762438127125510073850211832653425524686689985331124684672373436138083076559163014275971154742453256811793974667784812353291883645673610617147916782658995560187393097277437585485977063384892883450068510122804580117233788183605596151210254585154526993312091634533325139773569458673790743558935194496810145287655584805150464641522517250690002229389790432941574480263876667749278215871123794101095638399824537100630484612651174198579131762509505584212007217410207380879306111386491281500092579165771935537721011079345649895928427463634058527582920057650759176254794372001527647648448137152162693103879216939065613261034708211648063078668752653214349462299557742964411880170451938514771763293418617322099945016597318949277971203970127874644407882260206071653079473796865271589216894322932856051570155748137606125669092442158970378257786094660852979784294363134077250279173299718520124963038370147843866734194013859195322421590683878392672847610010939679525140697010855088515657276713669799096783729376572149044078875095043152882736088514742827866656392255863960902100293660803662166373264128193586323175156007007347752686933897858926533913945332245822984452315492360340947746798576509655973237507793584634967975212592078116483578605397981799535804953372457856977777453633348745219025680487179448187961712442675376295716834207808457238475802704993835571700944416153514937878963562165869624320621103748834341942580223482464911791384010391713802753419178318685870730495342793144582227828901867945440953317559720411935103693949343340031675862401150771996862411094275304136544787187625216503019909975814644118603879238795803557703027902397195335522370425273324329320129856031854343018435945625460448414063995438390933001987529415664203094053119905892969443095240166191830148233353345333825625843637418861454595910436112777599384262287573161787972958980170532106762949569179727243103764243150054683862681714841981427480959678209426164833871532048666650301132200651885393332836727111515872791831785497712810636611456454760860762117906970319557224791802716981525122620325830342215516231528649952388852850597412477926506004159463813212094068115745456841094311540247739002963824906074167558895639908451799135781096732164284097862219660419077375588006561966632732178605423003612986626710632948506697965540897649844875368399451506743438136379800191712118391439654292483305915816850180777102300584922257871712155736718557894152706928312193542258009548366019926972683995077615353708565190241555227536765634362245198639911896460638782769027745157311956042626354105725867120998222234535758852108662895916401835818414161119287224427767674284740500831198004135316453084140923109833037626779030506832685797800987495770689917556986485159036854148256522471977760773831862791076871615467282937270153946925195178004021714846994071828483707755711831424054516985632561583327722326341212244441792495796899832226934952320317715351548053728222316231761788236531136300550449674186441712770093913436792085089607452646139547726302249400255227591429249704568626541797570474943969979444673774709287120194586011895503286122949505562048313255541892538166065892143735745437304100968830866211586666176473498218189951187751768480874590020740721245427724918556780329091690348100288483630164615629085121181452260395405926120371309032460788381961688807434539021106907706902150634835956912630415008764740017058428921538649732332559845932357446271708469547232605884607162035350519227835976689965536738714877883046896021665780739142170671470190101004535665236492959031030731299833405900533575782891312112491403688342338632872465063321697954649068730241299203171125506683029290644193772164983752156879353197047780048142101834325258087643236852516861468960726142102534742894545771831500913919291656879307400179563379721269983923475157432038241120451002134796269577777828075351266548036969065260554538571656203915125506177909562422969599275504295841372999232961944382626110381851096992719096102936023176977638912230286308346416782417328777954035725770344089212893633524148102445713417595837810724084548765134242351335112742173176544164475832684205511294621440952052564949155493712398117773558758898518583553814329290516729932993840571951764046750949688268356982769664891687727009299105430777942119444808004428279373151109442918780476539862717106643542474444599787429882215524175041636549175549524019833608670534018865959548319900522466136586221108161543389428270238877331006768953424717374978265699273615089081405474030070491310804516760496338113339794484652390773044707786182567269428937436026542477240525335704703009294272035907007705613583353294081510337040029495421457438794991013899152235066534326958391317414520508393301206319055745624793721870182657395121323582548348128584984177718907127801278175822051752616935206362837617768317705080700475689085845409533766343838388305048135718564667608120420637711824237857679499213808431810147353765459738791666363571385391374486522395127463753149460510439438619568500892993325816987877321237464876264768983061112287341459813279351397040651329513503656351671410204026638544697472706499661362111470111910126241663428554418484024156872301206542667225918638391657826054485472379192314842906466965538169953328196717432170441607126873189740073504211753891383003864999539526036644087224609775144096869201338431208042914956646568603627052755701702906462474767453666821566929413858201593782131784086310124787458029644594051302460799671453258303031090537161640020109506520898809988322063009527099190169281845133981496303554415807749534913165355933261004904510303545430350105644184366405452293444174380478891597060141191953297079666355870300398968812988665704231907858504156687376205983412869881257353499684891004186827601521451295752422548501004616390396963649373634209191727670747091951768587561828912571316866767416853756878476648054194076368369430978789498624450947801305055686126587488006882331446124733982109514686079077621797418229301573258192891767938939029206711562156378745186049949453402790391734270705799432257944747260137032011536218569372999115797566416488662411344213733998067195935386529527480508438073271735641745659724307837320596741991809744813633609067111060020431428519437260163711881974023985726114521239688354084410021832637209059617842775389007353692090965376937303015411641643192516593950747666592243346512389156840617900705419892652941357443231500759114433640403649393052746380318548380162042626261800790804552519143897555980795522369843015027525530335958016720421890610913220794781058236430684838633133844430455380206465150316743313615869446664868664077645080299074293046302219105318713762026923401672488197888569925594729037813193366906343385581631287893834134964622253553012030710106238981939701242022008655400578556414145616079763910619997696817329908376054617718302877652630034791867249077213121615967343243551560495318521422136993266355844146367779588186147419679378363087993656790220785378475916378015049308999585204264774449385504877221344492168548706351867995150410807680027370190859067119639069997250092440596671061952340190276635578469913264722966530428839903385784624523684438024805746763478309919635784360681796701953005671222241414631143758279651492128189958322419513054467934257569414949173923017841005572041794434455044499230722551006803796103230668950285671933177311854481455556245626130883185243058904694921181039952035272947443593120270767965735970487431655017568762401489710403559365109751843295516752930709680013712821324309494795457004598587758149038797288972022474279585796045733056269681819392359151183911084395820236452280501877020634812776130224394952085009489510131886895029255750755516795271565474373079929526026703918214685573098214124026731407204990229415517071401702854489380715002164641609130062015512225439359134471389727367175232115654008364325588925169549881610945326425555129191932040667129045155300808028561761649841401779703984692580826971069541915375277806445921967375848022196798524328442049597129920056462899119128767968932185963284083717024424357674980326002696565982364030311492470458358550312676462755846299610826065865004427426777160380553857033919405474439668795185325564702700896094144987728989071959366844358092447232115616826407042127695630532449641465350743229513396320419412161419667489226323735377436691622144482500213709354482090046378394077776932361892664798464257360316335990014501186227141571019347350268356173794486197330374864261217994359295458625677738895306725442601320647649655107143986107397549405627542737433429528130326292602672630269130750668943764997207291222345299780337537246992186589171099373087375469649721425540351149039463833671089910440737403211160642695375365405485463658257300129286711709324892280403822479221088432970873628864167130302997663411180313276653071727420682496133154265272861929607031393548685178792389270496753852244160035597824063977440716053600370231895923990651631678021008169302563564504611176126216615722203445449728490394414903845734024679224375549811310988305953350128058055693762060685357530406347054312533093644728177334772699529270193661949334244973067755360549550216024401634576136472000668246422612634806423346268493839404349559912185017298969870914249528801912780388013846449978363447452190678641891491154334062396612323131378864021362498284214248091418325847769499912231652693123203396689428702432805136219353063691744442545117417262953800407255250831807356449131678458541126902714983840948393150228995243181346134193094366461481252629690422013482654258077440976312228840143337586388859508888773109414398494779346832388383678992044743896069600925563950966599532716047302246612889356532282821972243048308960059494274660851189075992562101744894135210804196329340641124807179595378542264743512273485288651821333978924855535102801102994854832066349450951073294821083635552495751768616424937450512338224318104771812853875894344124549435348133925993269634000826679446567872677017367327878559560863804032396998562786188949044110389745796653256054785364308012784176673504875795383415492264890642443034842687416852090785931020892961829777511290729069120049645885084027445562024361125487030742425838689614472717054268220452706532850133533308000194050739452357758821852480651925926611166677427701498337226587576135470243199608794562558582238716903890026860632128122783381776937714759149047493544389306041478856483692406264633808412140979837661202273912034790071897509034202848087886416687823570257537251360891849042943205304853482007264335379455167783683696628005029827800332053932940964260755687861825985386986028518403683708640931895159020300707962842361060435518540670239097633534217295544351440479511582744380379067696060529458263760398528940447808376270487380838592919830258912928415642256372219790937866000104720066425094055933636847076258250411476643633329616307647394809521963343691822717999767506598349903244594254658887353766755583832223928964704891983965996766378012664351133701819792768018729626922885152596125852774576745917384567666097209484868662038936570500065400231630533133514804160022885926954421422187321290828535842060505114406282488564111292244414806083027413851671344628449427975485579085326633582127480034910965618486814369647931131377249377607272710639774948577401160409708902195072543937488548282878759561113986235919339885259898773510134031005661436680401857948979655064906311747884972743480301670921391306692151202799362075798896978206794589779335019611242236268248470764846321447383806228775661512762347443057216369357674440761162607625181847302723727577485328924858791872278204596820131246112391372850957811310189598670585966470250337664155150461324924152761341143008193729635653901045054641789113563078705125979789906801638742928720277145987634059354789959950263169499931019247752810604249737179909883022661432643322296777951978258965642089167400735147607513827444720844413275114348592276640093316709839547346611428131852245813611673462579947624741089741112148240744776565391102484562163350472261010135820124986881898358221619012084571751453356732328545052983361787561235077928269329951916189482062971712560554722205332835471943121414135284002943283532116336958073364174953684825611442633014673503851188592675204329387387983707479876710210107678867697163067524342181102714298386705310859659668184586026668323060140107027461129070923382014652500609618633971292793476894552369878590459117255522274481333314840206177139735780211089687924782937236408213067665792598752611267479474711181355133922108990524944929408456616471222820066624882210628119029313482548668082218351252442185138613967419175888357056558146443345935732326980724914928466041671432518592322805732480496385575746120519713468864006929758773204602234535477288937104126081159408630741026994940920038947947198415337944630571171996587491996029713757393627126682948140147985298163334509942042186874765151195932004805842928538103052969262217390561244226452424382281331779703431990944878081568937213013699573247300343531455585318885705825740278997058804971729284905627960751252941104655423907175972011830951720229663322686325033329552031337025726563452027435823643221303954730964656915409184380887527691549745356324441321789670918431822719726805072610889525979736974037966112762869741625803326670529701630078798011482122387269599126263338987963603402417907873964876466305167081783177046069740619710382688834160760731579828902147961020298357547392561853656840171375981025965454749669288964736015256283911264418251834759642046042984381113398699860502685249901308065167967354781693823495744840371289547182761156493693339983133254343695526384798312858028520939006205786601104016159817523856859519973910060482744196822436663371480246329954393438561924808841660429368426761668160822630019191395481999616853451829490495636805225514515086771082492381843089265758921229493878797556945654763031709564033698616575122827679427941039505975102676337493139831320505565031875323357143098409016082678927174871999941718747192170677826232592868441839025078837137525437062329292269607763136253113428253364894986966564834419025453431579935383344701836606773319307299478230359511869500214935613569026161964816698110290685076887592067029521928525069006022699978080383501840365750521957234591096982201358516184468414266621092295863357947149219957875908871039356103361681259665753400653332359864545647935755001437384050591415841584987287137089480198951409058948699911086123666911561107924110863514085541533901071840237825744111591313991229018802839062252401895323700460234932853539403005727115495493608599040806784485338862221612111208216344898714844569358242541403521572754630337283164048271406374844887523297349800673298129077854607505398466441168086553946277969896072062714672862305196427095007658720703851655716635231101096222398133175733882356544277747685770868053198288974329265288368573527751348175792337725801679358323581727287655596671423585430928429831850981840983551676157991831187044026061894307510560823041015049858472674699135167538989571561604529963566270949139439148073427131762480700453289989386179399643357282859271802538142353636007687002611688873525116729463583307225425361646785791957525281235216618921829101799978993273045699453636756869673836035830435205945631350134658998151260222086532436976144847699370132694997603010273192531406940772608983436280558047219039237660417507201439824838370411192156438937435309408452906587666167411148089205986386693454396114443232976344758012555725773523342351818463311941909034506620111529079933361214886547261788043388739205015604483627650224264161052605956597860860351390924212399361165301929231306415138183119489639204191536108833795788638249105811843711022761015454609088307766307149976763117313724348392282678296819613766323987770574781449830790009942082674240802834520391182711077299218516923760193324992157925796334545423794136436932967404908144865077442126164079116680880282478948273137538942658699127537561425985132243428813183123451266280263789753249157620709403812394110308488702932268844639252652969542699883687753454564177117360107275330695762082209271739007758989053945235713240990795860590545843053625364949536431082083939860430349991973889006296098969095567603438849072159116208532382889290042350866705551458653381463414568124322852289498558071766508939927962304206230886004757141574601345921550353212548402473240845547199523260798784257900326826928411629660879898109451569706922327601689132093196237910600038419213468796977197683563200235888244985574378760144432313688567523999415274192016072225442521828249583982818620125890682479712667917313319182263255313910677507578436642711302955252857195665135194377936119655943277431241034902409131718848363398179657165199443218685789140877471487844947321533919415105092434433987215658882245476200721077485374731399293753730082004614161296134526599070964406933698312252970804937318210090582457948615600233670382749662033856153614343222346980127976082271710026396601769404279065296923755193637294313179867450999462193642774841710314664188198554210834409263644730108269380458383842951111082818608079290232297354761514104684021690561631654524020827650524123749681048856053986050669757673400981757315731695494781102818789880746959286781973489508616545606062588301152821353470335540426390089278983512602178956647145477327028662893943072693647754642745883031244089708591837438655442120327064919098091431018698939612448229891432149062006386934795025472878152127608413279289962919664680909941450603640471759898355535910296297920503047997956541304428909872736825818602380482031167952938225954126107380087620425600701910921909315703385130377551707579268803147763659933206161803632590269036829137135163987146849985419818699219856025098429604479318368466123411810114845449852003710411978819348068781883928749150529039570561806541998455856800448783229874619166819772467358171570479031452088239649004816457149703992321514642628185922196143371488816092078828054987440661928681036682086252949258337767209271667952577855064769565544370412143296904377483344917708479248056938923333729094143910678001461399544975422365290501009292732622548321501629199481530952982553729923369802608692973106259179797951753383210184476342583967713364891716839395048684718032955300199461523341009951828279643967393595939870401769959382047405974348474568251852327575654967629637675453715782328184873314686513295958998354214313393598382883507765762346391866913739349462077959283488256038927251902531848240176865552396960905682820726132305892528607442835064989926659014848515900776661197940716673451697243727087505161335216952336224337403728190949667440189759068076281217512826936407910938984803626920293712270360664528867989217959509917839479492085881770108515985079451763707220025672560409932390836913603444236086366270220711365000542258977985631866560267464114291264294499771170966719026153651436169973796429641883836707455913131373557312806985494674526189842174775740400676135147002901076609332168522585829983717394286080717723342434142001367058247863482322421126280152139616661321346331296781276431491735381749266238325609623495914992234774387028332975666794440213293627014598901330240863809880896529031418004641741127632324675858050336379259716455958983894554685129648694731241397898981198804878688228377643437922711593882148301533014964579557582192717203426460967912272187486893176873537170118951131309435604983370549956845743249245829712786795428610614656651043600459125157777217466843332626149357180122092281827177425611965909969851995637775775903707390253454060023291545006898309269091368607842418285604621277971530102137848823117463793655235766634398992657825040665519610175110970865018147634219698064882214769104005009084529059051666920590326338544839281998527616023925970841003047494243128902944195963652919723432870800071555840965920503083455842426718134847242038726141291838758852194870214449155101597517373001231159452449154837531586016246316405329676476194738005215677436397763311806859583741451619212873778911816600429983238349777194962498154463752644668785324425615714550074303296234946884446704732180740220055775991548389136444085674337581845519816477122928013497977398057663470659143408707039969120397137663663398663571516088558008674161900270489971933818492722944935934931910857396335044226260259554004196735647361950529509301596271386141442835174178574871580692563404390568127329862030976093998142631135617162137852842096701430057347015295094399074250010028793013766261314037154316684817085768046637353889611011664461383352360746770802204498642539974220804334498161206748351111545020842514220331781241900660840898326712075843143972094866016677466438415240234423442476829078918791812143954748454869127395295971275503046732842186798947018808071375625528649288816180889720163271546662384479507206909449564359349029672946148209186818329697884213864498590359518580246836309045070832946779837051698308995197743148797591641765866916016051345991929227515166034215793487422954202592703570102619768978639119176540765317971238670337417764261275445311330236747696840716232489197852153203243290192980264117062156062572199559545773787637774560000346348245556427182598322846091595313947885702056654315206687848897742951693479490027610057163910846126708004558479216197575608886534227381457870328096188285923956461981907058497083765073693770199937209224105158526985779491218097800029541734932334104277326489909082619807361013471809698783796802270431132514496181964754223962741699661603872783088417708254449644129109712360519363146403365556328698419984831132337484422671959330998865559824592830078976511910194395837747620602864351783087475938400183470416449285794351554278541781838073914886641678059183554041340624907403448931657224739430541380789700946923684805171198779027029299920505335397101792864214974035083375323555485205529614338598369975186438022948507196194503091723281772479319705036957678288177380000792851559974170275891951651828848210721285354741586142268894993531481918257955362570273382437886395327150271722465499483998867891659226073614915809455833876389265831342915416378576943705464651378554979146489604996224710194253584920496582150724407584696321016701578446491558039783073513542791432297782996153416776868917843413827643971808308734743496375585520807952454549197954160608091610163909276471419550020083029662708033910208297234495550917669968739792073489439781679186383294237329894117041790280448226206530429055269067591856659594106654232679059641636338284369692841567323027735870754528568614494400390549664699831785041683673650733368100525314099676491332673423287252782437211937074212419545812003259008248222051964313455619938482277850541171947162403669156792182402469311087695270230574498406139415044500066734920684854334305523232783820735405836275898994926325378675364834697570502155969863998791798511710198186931028469964548464225918984335278282744841153778751171157053958735322012890992375735090646005947290131670717866640873205812670606450135759311979837277841662394484477203801983286003586116879146535968055327940427890838136497802429042158144378718913832909133869107249545367903843180404915874892351382462234237577922146056795529099766885941084622556145528718302424368452913034258001782165892070328983749246600251148461979445931819725749134257403421932409019805599311052065450496535372156903121321416172434930141431739775214591090264681195919182210819245832883315695596429805003130339865137421058851517054533438579943195435755735595191574134280631707122905314339931776833893851057171895244829511515291440856010533919550406749772288139730861105465083414421200806947217055962723234485612512372887573849064299612422975056768437815705618686023984153098301090722893230162257409717123862177277183917715919607527863703084053465078151886832250985845883099314669672171904018236044001037613635404650094222086166445307091713221847656931792482808582962585418079479539061326266618476953018852255783723807830696241456961518064232287104809639865775004669918793704823750316321842314440178540388586544760618013508807285392209810119557061044524884249292069006215956975041164278870179481933868744889908537193261964880506872072273342078928363958714754318602366305426527268597466760511746031702418413917753533055487168266043099277266411247321697812487630921381647553247191671215347575418692193890408557947447051483623361628756081420379136574693793706655976869904382186290971482485509063039922283339848191433692071725926817115607511747573753947142075468723605418100613741795316759079385282349019431817165914292917484740119910810033423384340785735863200202224175204380375364680187344719366500975823494871716220337882048430188477825974709578313853479974417930004674694799979614666396078263632849772399766283333211094291887057764089951372032155067993881277280943085928370695872505833977789199031927962533304436969035542734736474274795974313329313566361611881534787823064980026361893478298619839308436866458966191336769447908565940272784090675333441576361245579406159766900893079858276766568039306138256921055651406502755832796913534185527573920580011439795817470052660795740964138485795668084315147961078663474110808303045937822944767683649771665094373871412697688129796845505491205335344506368310175966043245363639875007218887488027659208047669913383729793044082984279281951545015015281823489793427108262887196270270491532400896184251369338755034947778600094711983104907565944247778856000258021915321880122203327495006740875303116518854207375254016484978372584513317480849011789515814881894807061442899667489224731638077030241879849424682239779272326477815609586519633467297929811241235157529978802190498402234224232863226308839071138379789766005544000846198115175423010796411295339905158360677988350956413221282125616763949241374989133951403696316134698017121542139788402481881504985486259502306680879259898529324029074850185229173897653343636602887443464397529903640809408776451494234587291612134127733313848740668933782690500739799884718861683510351768894575439671148646325814373729540782576708125480297864954258117374649652929089501834669312026306576303551858431635211672404079752216728651531594370375553596501646515608813109943056811033535291868162267695012903442479025810813715321949603941412170340756923990525643371653621118482372947361556665484306123109042706393974408723995172110160246611149206372497621533851738427179010182368393147974619138091988789327766334271781838844863428157931657658211470693893421384836294621069068895084962398924159003561036648330497562533091734536362628647540319377266139399975448069796677194643523227564203509308326964819342617392770222035506017051096546987755634181609907035103656023888857436340116503770370161831699577488961501644386597229979539362688745073368010275507015469752034306140652728793397047718029836367559834414914474781355304955722848693562715072547836926477537926170732878820538557780807655082806377771675831936270931303817086059143582529868214000026187426227418741508222120965419035306269836873506533971158253000884990214058032586646705552701410377068480544587757284556953384913987926301874202846870327340007114204836137838489909848596542330011417569145585752260712856626525010509263932669220451929053549265313976942116362248083601462614165339712529229817310809954089106996638645244151703735660726659986826644711988436160306256475287412217288363064915443406676542379301749454583580328703778229470441126769914527092057466220788796278763632437324417021577027068917951614535479584778028186021574315355300284513428912747362896782617747865976320484337684220491904753383193013646992007179707695531362603552786487596428587358514674841128533853320778942707030019732589535520373112753721154370548441763511981205891642567800567321412590156803895402016973906774012438783226093166239725996765571021384018320765876785463608474008277732237058356309645746429824975960203176426612535010353546269593139337397343124596786218932152737844849102797129959097055561192375006329117689692838239426026975717566400874038986144514394689658528472353643234801252640184544625406755707037004426168264999124869694060300993126423633598475748098343684485748584446760944111385866859893465615536407913175598630809965288528044733025279775256935991205084296745288870390824703220515347894818626756779624750395995226101226746371714385420636495924578489770561814883844469493811108882379964757208696228420002831608229203897819727922099704587059572109820607625981955125551109723333328774528221861503628878690676287321241888073717321961296609436619905442469819600270122606625645034024691758215502928059354050458065510099328341848992705539984009641441557325206800361947541202114156215426717287806314351941514414751132040585896821038561150118869710982770900100115842004642897747666128927064083851131260056311954867467786500565145984490021764032754921083341868612848353252033696448321366569371232520524773482982280207151317748582104240921091527132215729750807412255276843119049256407886785259814209123062922401345107363294708156978661903349767866100698275494510813827730429884892704719376921293050141628657809349983067944895414661060449825393500301095786689084984746120772857360399847490304899485081572797123270800071571305316494808941990739517894143270289776366102649013989155536343859219736806113032349369187298526532315540684287676985109178312368551269177392424074491762737281443928112093451586706545538401910446132676808871641048525680558989289979491064760389109925326435333176898316693376911635547639203556644845016909285494223484806955925620511669557383859418288856868910894223413754344558776622616583503477428735736051277882698062111479231699917582465314977279798975761796903784697543826514556101360523261376086023074312486029649044789509176480469120778404414784875295844157917617065853514907877765315873132041014722202115613895244017625799783724435165233321152420168187077826958880236544990883265779843997469624919835272696169564188732438603981965579861726207265965888455266745714791425539254775630811850328662176070284024451284639669022248581482190975790724269792487374883169404576915905279067284408167238859800765589398968710947427537372664412102168026061221012407950206546043877271946857185394356644650656079273078213335581960858772605167915658381646579248874758170567579513474985405035725402942906688383537732498656097190511316780281767336661877977908289785205845903915227085713890831470086269380890972346603083182065850127015458960186058293391738576333600293218400262575816504155908965103498208794928694928147781021370457678899666666709771621588859046586829244525985089229659699382461156571039595690786461858862577180396045717649932736495395146653455336311212405153519579515357578451043672884719723337905708840184486011153455829324615023538032613890831039034390021444832569540531147894804795748963137785840794622667646019452750044683870283557117866345011332006779228659601639825824245611582993669557792775203782238980243967654139530135241794182597398043239334415049168604034246401079649611725710611254432978567911175015312385329666690900176349513343932628409333350257551625894999746450414929690786990492647532043771963805287722028149243766576508352211502481015556549673859829126137157704792659374632370422775107905460913839812931900940177664572017312392362176703385533267239529705683216685341785565109369725929024774301725527658762854567896809733671826494241182026840242967240698878724785929115802808558314636095960841359649805310580324797967296703811089156278896106575411123734757320232499716455863933531086387588622347503048434112576475069087260672398416537882266865318729776925102387831205453624780750590017962106140907686638668862983615322931530676823843296982252689005381721764744528715843508754062582951591989396311666233915693109103302641336506744354122920368490945312690827448870871437791299682374683754907652127922044224930318026253653442645904188882008718499858978697147668621316363590306931363876240250480953939597683067069507773706075404083562330198006494308041928646143247787060384490247165221155218914319346587385356638171279364383294372362249764483425830834382832511230356409228123459523383728310598215021718295116938586434874496243696846425286470274335054937228940181026664226195245909444203318270465181391412874435913252159380072889088402836660256645905214829479409785242467391037044538018791349174339481876463650099723456156123116349991067738860985830536853949585085421888509009916155879167908374893587371069963014223661132876764400006689423232867268114495112134064162629711387151250085120561923010450038174336056008703832929408516681188488948593894964859857958410004274855674108235000113947419403902816812432617882469388374761420752467733578560687605203134054499418730872669117440501447559790371240131945261981385306340676597751681057270636766817663411977318987205221643761675981886326540718457527512188131944913936574764947893717102508180545217964092245600159215582307743711387652257473084538034834631045470929689761265776609733529817042163528253345421891872593776149402278545013630692338060871314714725117179819605121164569896224211121138053362384485147397049544193632009316167875210740809131446191458832065160349335802854496106332741298213454640780017727265299334315373979929282777842644469967455563558424075337110033513389722531342927288657189163835737562793666553122274202127902388165668962307027410598332893886750465663638001791198149548022569457824078406549000473770627569314300870768887564407278664388235934352381489622614633656002311865011594517912253391690502901854431329659948045486521815600225047857968906467356188138453084238066327056762136558881078929256679191998765454902921963886818974595008512712162065073274809124026145288248730338602886213936508787284220894839560523255324138188038685697094555025965229224795813295224074171863494462696662055513015766619100404195960942043439840261547066363310299060137433997313635518655906577866997626437584157129726264245591691387210795253331901702571132908437846911998469947523098689640106196937685604682808299353639174428986296847228679503227839627253962260468392230556307384756828030165979150025570008226469841612715851702412121549445493305417832606291938933898918692437414646602007088792781325946284103823327069850051547114890260154678800215009089168843291814269013236330497528557686252198462222676107518252140699635408798428653894200512716496327623915164174391314747804023520233845305564294772448589409907884924111150975378503725683018833348714113680047540194107375371737151966708192937151107092869359963311364524486504594855100006884708655470342797693597600422890789405717972929391502291385144077871273354306217532684963275630768369050821272021461179602054242947048742017460157888102683162238687501630766589975199555437146432581968248373958462073493434182523543910764924142423061486252864796561442197044303064720855010915552043001218881487573299857999793279800056417352682625173882637998368600517656529739601860722893969311031552355566249152068191998533361585535408265419204720606564808949725341997665797619260408630893824937404740087209277248553723336267861363843383189734668631293429229738445709880684825454035254103163750855729130302059117604367995330198995445066712675349551084529149249898872960489951242188727518776858947534349526064067318455602170475585763641528893405551607628309355463242697258631961162735499793213670456624324080647486711814655417949443068412368562675235914970104541607628849582513233034415691659299207118758304473873365015656355156587191090363384012805342698488711547527660253482972144483494349262104593504616153233582486529397063808157117000375201643250434802503789371725165779567387949592424826700508750561419473453062741354470291669867716397876482597528222532807193537439970361634211006881024198062647284588456729649184934472490303981962784682311490736686622659020086343984474365368368810015514753692451905695036161730515432109020324508766290809552462231823737223765809087145067933318573034354913709682115254016702191555219774523656173750678510364782000090388024133781529724915246997064858181238430590535876847084771042045690792912150571541809768228802926395163716892221865557604708728857654701995557406250993125482811873091368698099923091490877929243111775532495502672187801040793420604504197262513714938243401282613976869053786780739157381154203968022355010702495723374066403288338513567722068647159991935963680442633466429836750324744644983986403161952103081258716415009960068348003684823168312072433134089976217420559220716832582682680401129526645011445920655163427111021377842558857387165643940513167445187824961690239147888317475897337202875029584835854341529159142632980712101555034672772800397308349346453020656966455898628844784115549104387040451715688292246796697805790873026902821860872811454019516078327319592047084886550969873859996679413966111878435922902951238680847647360983139298437676019883771366762398907589331629107398668072374879523633074294678356822830821924035558215249428312992049821217404687880412649991404131953407699331728439115785033327926846490454022676564930371998701211661862723492139726644068184185247271280984444991442891488195276925346956744674606222998227524760769180601720678090858106036427189447708969540774217672627488756986129660927156661984869610208808712338827401269516482582295584154274252940336803097101306242595263158262334608020896337630059026650775251484800136651364322622029280652584260443204800052126635494664443021538458414541539840291688026759523061018431056744610390028271718101437708520509574618268138465581382469144387023795535638494828131719197909693222153803190563082067594456121397440695900219980508604789659349157145938629890349268882007235072875065824623185161582803031673914516017684719313367275746604221583222079471773497441782697389415932509964570059795500113597563593479041457898806088124560879572921744560099346696504456420871394424836613654129113187952757180180107986367600504252822396669523924229292917201656918495019439945509752170697058410581876177915857872096941507952155603780395688872796222355209077432454934680651217861213747396876941905444526729837277999104903340127764686420796378964228745036879250585342976354822251528141678323415897264574331622505183896067944538138694263094623705204812554339775854642553453452673296120876784564393738683518760948177091554082874012564247313006082117000817985435836763827703933741445236423750931088782315207889544526359003933674050871220702657838130608870596992956841446644194321483402880927622562825915712853448274378761364234333639441121162463076858511441595092060943981950864542221801465530373156692181654043808835698899162365668516099039800174494498146026316335715579439495415185751130934111937014073525906093774424796291304705144644165034807699433362814464561400273650042261229680163215757201491391189446721601808947928255210930257447808877853682447904673467264831568658571259592005555745888255245656465099325829834062163715523214045652710243031280998111187366368269806011748619752025264741635272134245638674387139597491011866348639236540019131071226843283722129617041143674920563058570961951611458011144304362394111009644074212611802257371375058651312417943759767234548196758144556025111922002014807818110518420020348921990785835543615921434386312157234475012342823391916864548277595994924897183974964761341467381547664088530818123035802259809684264976492524571294791072259056338251306489694049812220570960267133486671390744372133803191645048041746911467355403155289751662673336089099138624926048127942382750820831534725037158030353868935290305285497162989958240609298832327612277277052306467263696679728314268964757384863794472652696454439107458075914266771599480840243797656380138910541507966830443390027322622400560668400735227762646628718519363601125014269386239168629062432722413784788126274610989511002245060327784395880456564778925578489965754241733014261258319522652613538793144197443283153587856987972216766787839942386079664415964188556773159813898357227606296017713757534931149403957385954079564666414724384232290284585151467434703607759111870047458429167309882382781443962009480717554653030081051191369539370894359495644424815975642476331440776557545280629973296480816145826631004926073427218310099393455286295553109469991740954523715987307511078159175750623579442674914456343823279941544865762527255920585536846284691150486569790709824891296527796651891256124646781140617309652937103989011444353782364832498679857639873174724765874403768613434854090871459561013843242018038374097491256734446624634123649717938794449569472192219023609392629376662584912073987970884966399948136733946702371890137779417461754069636303190121962441936958281357648893595288857623863200031963394993384140999083595570950169901459861428700182382618950115729963468338711112639526730863997049355431156189263353638489658149698468071473943534677946946665896720819324218792365630618921003499226222981555456106919148441476315057490612367087472878955349646027564979244025205184947614010970322917204706587053502454143387428134890156917826962699218874526969249782668126970218879450885221908052565424313973435908092158216563633724787694375919619163612420822542700717102078497371826124472126670275261805260653879542498972439135397099736969811268576629227053815776625105744993007832340122569827448857805643602751638568595021295337923426486271306611125673887069009178897748322834404387456807847429750791452667736339330031756289991734206027715165986427273918198244614646738902486733007528740461742317704840376707595261155300429085941390690540131266192637846273018379429708063071274070583007114547003618183212956981833620375569064098786691415631963893364427686346570673179077288617152938888253722220172924160305288509316999453270099381298440985377947162990966626804950958119011176542404469467227588736006475038936939532323433018982918077691445001316147397042073688535750589602301504295551138820490137268911945360811026566493851625037924578182797881729246830729273771621933541344839046115446334241685697508545775274434925897074022382007336523035534549823463893120917906285278386266418564060006252450263098067717117802053715270959933452815634353902906953498754256355314885774465798671552350891865086746769936594354583552248303893392339757253074502036853399102849792800958085209639230611421028707681694095862258503111941600832136500470011686113928841427227722422865860057851517195859925465112652436694442613224918762556765399748518441549185680835269290673628629580139260973722792422635425751018571971486917282203225106144748942532602320016703624980123472925533255796877861054296524176231450817233304411837253739799852433144682599015159107790975374435973500233869618852590950094387746271382589645018620631994407162560292178816531892989861026866913161857174781620208463511438839384108473230403194586195335974852069729126923088637094723134536657549131112648448462592197755808494022161068937777901313139832752817431185100481985996004944192987267074124680676646690130597131309243751059419259913930867126076490895666217408056581651007535438270138026923446060860263759851213990602836283474507296927191288132069039571575550203083311775430271978694215650326874391640668345810086641464055362135111684855412635130500747017721783799174230380719568162696764342965550381337664075211132161353629742784758155655294214824442829622794269155742683450057187992505845752745023489058777593887707131501709784147697082451071663217431240997983288512521087596968978375218016011519285044129004253377182043850356872968184476637108292832324729541956515509796277863123749515795891174031575629093007252568029830574278086576991098101982444043391435005653129228297554861460595425591302536032702214412314158703086929117252408226854385274704754147282653427507959068742267565992193703424589542287862205306017244336599161405858455394372980391514097918227715625119853359231642937842555360850140107122440650279294902590932598124494440878949801321544687856104945295087929132053372946752115948952819928138038428344097102223755125684088842790269028267981092006988130214636352261485385875296105874669123666834250610424860470261207406447825721544911654485838094082909616586928308592015364670156967162289381777401918667633951251669117028464538677688545228115123704934315466656491475931644328931609052876651681559877888152002526905197166999187407776158626553792360569799881051966383007091973743278731507287226094492398809857966400365736224889218471412644701094149651790278831549661463589010730494574339077888143749426552524185885175054423064039273944600205490594101718041165622417377128835089627926414340196781549086741720213745221232740544219490359026818161967125280472177440958920508312021519089177447167075509951998773225567365321275799398121469614228286054383041649320172458164226565884681288257396973025920384901366663273515778923643801532443678957189442236654730185306174469332832131843073866480648273208204297295391295769346530918629586424903762315165983331823064388291294667781401488583607199936030709862646062070466919170667906918089640654928832777441896021252298423186410184878097833989097579557281501904016833991941248185449987877925497683365487680429936587315544923022947630723088971219800316498550984644468331281054938809484789710947613142288649859397938516325522548075033496649848013256462560352070149377266920231100952969542498928756444852564443214853035236320959745362542729419441972937323394294572405351549412669004429630023130849954988129858687323239145820474689732350459852309056803966325217616743618256244993175295113189440364417592306506180509061918357189267219394131009486387801306067213685126944217252132026804044159887066993179157270954285570105165236199082483267656806738366552971027168482712479364424588825640823201593955813503256490160272179808481405301519117633016251414973025745598622242363853690464022349949434531990382191096133760452082392358784169082238351504906095559208916515667593141958019682414859359864143526620223520401918224708223104008858086701429076128864887243188494654471847921384988029985518793461091038611841567167737794577009434613125217433325087592891108349554846116865532690647368257508845082277346725213777980426663658252752938419319939757923333314634182206221255677085182343775225290954446905111614206751646074505083904540339153538041486052683935852317218798533953589952308000767639290249386242605627130378125009803813900073610627488305284659260307532833784112892984276649918465515798634271435693333984589023968011390774182246313633477401379677377541447250206868752539359652464261628663478897220530377894202370140427610340692295783819038451829793500663684125364176785692312353487401582138423096581715126872100613376165504389715788309495986965717497383523257687772632791331422459307239917565050644949674374521118478298942516635851169857093051544675845546433987240790232985557671392272102584848340346535730110203422887011342823535304760779549605386946241453905955048673497554681669506261286712437356536145334499798348736104829619098107662462702032891208641995343324364205277731294645454892810501751240469355672183325883189904778300355746341391678481660000383959574452073753060853898067742911712331559496206980222753001374965998885383517856179208438192738111856113585319911304463031757942786294187833588218584358056316507320809278694284310723613841071558045284413690688958109904756355099737446121587171650604250911646030964826797192602606296640973684200909648464204602268713556149065343270018327701645615722145721164971545771589108933476030907517889938113419097281999285656188124114080400680968046795142176592388059105281334262507589448848007917668252293929537765808195868150394299960590741756473805187965699501472794361212875983020194327905897070876474964368870663530334136154499444927651573197336901578298896185656093147700145127685106067513486351369616957925602335247353711218759752281689189831951399148494459931275450077277702946875739858660020063397356872426342278597083988313957453721585799185952812547628167670515597385978310465898477446633669839257855683306941257044295618659276986144763973154125106573318760560681605761611327504510727611407848813519211693925623264338846180139513990885369647481474115549240207626878508538362083215981996033413656875578582210841311124627314839310781465460323015884573551414177695850264778418685990164425212899576882009433140605263954210037525994333682378660029867462017454403100542725849947132510338658082953162715554173951744480196017665352320056812202997916754327262346210175352191997748697383552258832427706577563119538241796913849199943334564858179873758002988068421406036125592810644482909510903159372582562322152098599229916223567780439398144748559620293722240926677346770391660005196333758125802480665845555992289648682291840455964256311620998706011163710396935365170601351713092769958322238382172662470388309236799747498044404930814342692594514815218259603593840445837722086616614560766296934646324037470756281477335756986083615423046138155519151815074250683215202816094882459553504800263437034109149386405717203236637313452565911281594151007586102969435037867591067025924379415915445536377163794311747429035943160368743568988460620947617953008001552710505206382738489015521913119667792338459039473678838585797890498893142557583744556567034381732449386451186540700266963114235110530932665383145706726883837541828587487779511297314706502601600923766637006348244166378247691507938572494103960209548308559240878870664841064059686482948570389133294488693325075024876863480485490061740241277159912719956219490793583879480153172032880652387515585476694808898476970697557947106334462653949732518359711229679459700479670573953976683267376674693077453020969915527403743727204190333956251420378059785873152334696786676020592859051979588344167823849652675142072161169490329639058453822010170316452439489316254012713540711046524812617044348540141161130264737509432352871599375379506004828140216455409189924097565812886715129503546759700620416157654356171905769563664989343290006457544937617325296016352810137189918603265633559364648632376910676193092511538191987179783541461427396330309638271762282389486894301420097782947521117980685680140211379007073896842015650465656670537837889802941591661083171298550942939732484693193866644279741867021111194719112224550805420443945800537244532305447518991373833097440285064269875778211870434566040604202501162995051802914988846280347940247178497807140289007882056167057236424692526764843248181799903241916067565655598980285740085752177481166579538597435441041332419451949211888968652803480628737651205888175745747489397601758928611799268569637088177306518236241263144079206620171349382737156057751035145297437263742318175218160764548803330944302039704086175279540875241928802739089815744736565917421119481954355997260224449761187994607393902932088063377463940535931426805199437895060245691479239258182344821686985291245694721462919396518031790903897658684275522044748482097323091786274932849160166554773402856005547505595144564333006445218490380740043318471078518698942303048340950258119609282283932914511232261206675631077332708844828814026597159792742953295665188950237312567653471695330802897955911832486676967476920185586422561654207134867581579991597023166165216631576028310737889768018220254781367166492083069262991364004825659939214514141186768774860157041576905136728421590743980272385576395585377078069722331947676650370209502699349724017582696837645648651807489333565217734257010250484268802661092848976982315926111947295781259340167028124633127882687982193946108133366319253579173207928558739835582289080948482963180918867563242863291547500235491514776573380493064677378990238777104675436472341455091992790857853310289020906861661076109497824567669987692279377400638605055180538159203759202187280655927431896738287160175681445829282765433373466806711673862437879973563730718657905246557216717496841404700494827936098709495270543876441462804916479286608588492024662620276874111162465996381350508698857156600420898823800635433801669236316900416970194149093786392919727961936777990831591193024403611923343696484575495476728740031017104993295142322814651958532565551996763465364712447301997167685022761015006299629493409634157289708102222175608962113439516456945555272691853878285301332706641160682472702323998111301474694945937724496810768797184208296538134912834926151134212810521865281104863225478792309514078955475002823088400845207067837893613407648944531881270670246638413228014473244832028209253114368634801551986604444581121941277440555858926013237246309995955765796916502941819449565343530223985785747337276443275963884804141167514260819222031337841308353144254395117985060137085240669759726005854575276858752408669711854169135123447596233713438394522874989418357688146778320388071325421600912572699292635486516735601939535326067666973879489260426465606134124911067705276239103636964150164461162349210213205009360036244575457693895552534596551883008420462647096211130605958731811524302571369142312520082355518956614349090999061515884033677835148077671956800160810872705100685086517657396782952410315390549606516826846194147661385023434430573355398750323399790483217017725030728651290038416679071116646569401029761291589778924718565118493595905799769395870888617745168130052599441540000331866829736488005517599857963737117342961546483677408553363277285007644772115511943537139841626532973473507818752081719436049700740309097344781817894781510965715260746903730209488406680411974912549341382912244952510480299464711807244259198121743137776705219963001991650721442093986754599997123574390479748151950450299259546883176698033489303625730953232443378783104955673366001221702713902970361084265900553289197700023032189273095574429681912167061709558009625617663631048099043579183404535084902911768184541780019293582659744426476925382239866761646187956638716492078110907435601184640015421331474446970035147553352587820204213833989290909430972129113551441354078564028587773181124858261852265580161113107587165250471776289660245507534063232100096284986830148643033534698984623805063344868255945946134344647186443622711339949430043495833021483315363460692307030028495697545926830244366386962689665275920445750078673450613733659698088565737456240695449719210427015069638258850624242236807837469299595197019215400154170741070393959825787697913489818525010174284051787530873617427036194110604107398725570020527159682337159884291596648544829831712372867378412745964545086767399318889555222062909999909543969276743572485661605524538480244894163439894079189350644508468602371550073830564770073760724212387673334063210045665266176794974587367942882787469994174620224478635496395128738560050367598978747737951041479730758726313426464615638079062087045195866877889026990185752749522842441683098372299020572611612139127999926194110927017117289456547288265530049485229791143431980988715132527685044154334992097222736151221434584008173953327711034949839001172232166022056858824014907223782376888035801232424282515971566242696981380666181684006725815935052397764527301069444917313821678896684569428417260136068046635100163382462898209542996048373723032900717294297614198951568066818262759575524770113455434696390588874995445870089366951051090623182100131619137766975937298987279533875719455040128608940658847282971127937275279798754954486576399948943453015379822630463217084243130462496339655145022761116226854715904633011901718623671006821478350260689754893098339788798742371865092835037449067539280457655007289791608662221644164158152427058808308919020956003164691414203709719577290964267184197098758277447258746776213194596510438976998946742930910559208158921614263437240064302554622338104489711617630004366166001939057454472541090118232712503612869429587687232336014144178507726772624767294994336568415042369942171371120207630983299564360691009018979342456568007178803904565791087152798841068073070248203693818130278520918801965730739922671378965162188404350696164242420938825698176970261708418728467513831137559099104864818589948469430722941348859083411562119525230528298845002062015002803907620338487745745323132040386907590386179617644439863793806262121906144738186171639086772543252128427445618734458429082347296116633670197524345447398875550665279473350519546890975158785367361962321351900370997734880780382192329821055045362500907892707277273174009542875825899314534805280203737113967395120696133996856115429390152257026121859051503446736651732863978092354633924844769517804356108045212651942427080192997290310231867102795065273910519318109901544971646940047215477822269280137515139204093422885734469618538860809917080166586555066734013585287773441328319233308421040318454472165909599754522554869628498419257388537409737855317178494510206519866874706026620808478101219828384605629192624743839561069122716092048035690961910161469341235259946527118946262674841381122841294146990560949137205413443897681451635172056837644619653206021178299367000789430228562168103526911645773162514462530613278287313344222090352879010015325229066378310523283842831018305958996343293167258757339213975847443574240536705166304294825851970407026447928242465710857534475714734364348804746392151613102175622793218325720334752876041710590830689684473482705249473683753024585499610730737720557100960151830642609120732544787658274132223123734024618558722685924059262048181126425282250172452831405932849013188819402955174107850351297890369177499841487510259698112631217487734915448166446971771330408600482383604371970744631533696479015626816341215069457222774626731456096915692917246007811655190721849140079318546169441960640089793538202031180245020229998130792900539195389359328274341468367474929696459168061032264910255113188081985865233535352926477673357464938903048166347139756433093430937634863783707753479703827146036903077239842942756254475348776251811962780236290765316053854046613829906113248856611788272192552984623712875989475576441546515813932560424168950889103477049409380818254680097901067614268945204292233139745601684653465554942218464997805164621706293824470237100675579154761215694337973348988010094144382418730357403086769442658555868291144499922496002468830090768262265346334658084945309943297198327797584295634970720421747891165478161771023416945500235400110646850557875583751447656850562415586803559000093011734039592070505107813530088311230763051609712739003358562789270592842918916509481857288065021671762405028007155835172538667123705855033464108425551736236164505064257463536587244808999810993897862292850670032337315995977148369480009714552195640087461525234576709388576489699789278472684622816211346617823742911270859673625880305196871036641431934482935134288649835237879072717876905426377907319641655063169913558138424422163181166938181550671980836470889524736397562078540699200086996234150633318584694014027883790408947132573490356756157117143534963280753639692737908139849247252091536387716919353963442662519365056922356748688603969128768539873165485474097153296849719795752517415795805958045644540288054062825123107266026426851758009020703587973049713470807998001232662060031147154514746438268547077097044396012358334618667668529802807069406147136127763020932729832721133511561130821325559599640313890660681774529009878905148932479238433825075997495748024864900198848641905109252355253753523824819129640282961644830706413700581612698799978370024295472121398139012398896386741266668319727300301169821777345288577778197013158278416367419135235155613626864980159403671750724413814961514306594410765029480623640201228747621370221704054196299655414371313918950727567304648844138100832854612337109139235014507898907923848102082363249589585967772657550801742410249722132859637444423918170884362923427255143084414943701871817250271557988157163220045500982148582151679607512930228754715196177799688632525032944712484558870442776556194348660252433636757673491126101256190607678361800755156930567313614622805755113979647103013270703261812810286650963427666622900215916843997395763199197602511859968855588508201348049474926227309945526949860751240056500589604354734081819118399293225656574360194620289723040254243989246140735924225075819910923676722206024057079120691956796240519965417881823037422210594904261544385344549192054575454565270708287376124144850839943088658609046677798489431135231439380963376568505191933021881918207206827396461920123463509922172144796268594091933650107883980795743486820055817691009489117726497221406439322749372730402023363661608332485285389280760308701649946805584857783134623719534745083112078224058384793118273335764934034223147692140258389565641439884463686230663252816760945479582300717053718634276369126406874686892055175615132870947177723922345855564018673363746213125308845738573352957282529474188035496912394301249846477785297351222583553927663083035064849655193820176656881142273572645211700896150389562467275968435793049236092217406254438792244370253020159305447649352979122397544625526976322138029363988447506014888111071572883099061888347428015617319850627397335005781591226945181777480085302096960202900042583982854484955169823352859388509277391312514066440663778240327825692085200564810797751531303522734948674473950819589788273888246418105760887948451036845956990299488410816904995648914512850604501618537913902327586346869930758233023280917184499213672759249134430587905738127650758404895119985820521160319277428568194973631820136135418264507293560823929974258807739604394554469471791060119252235662734119298281272419136199385612649235527528996955422451750728908157236415168397646258312408763114889139374378610224441623760769000278659984140148750132424646547852710774095821332527627042438828544055052068039294604108208743711106908587443054096550499312680743180560191229595839903580807670888395137809012298843652509333459024658155151403094214305928620747900873698982297906838777879550749446127950914482880857292392211517457633255813932730604390673224036913945483919758386218336148524916845914945694566872343755113682069418653685149401184205003938711590235585040843392000337065358288702038193787603258256488423881840461570499107371719400003602659847906440125690928702082441220283378355693324919348393178893297599859182231865314074531075389466608623683457114599734545918096830413692871212863037494653867611277857132719364240731200951239054891604172760965494116563408295520084045561908662445678045261983999434734422191879388330697147403496368337842020875259677448550398165090000382599051831201804770198665286463746285651663975601785526238618820428333041107201687912387280183397425568409589752235253911484637003713313316859446912141403769948990405101023794480324439387785076490552213468276295349851918046969183246806139044850107012607510173030392519550804851099801919458302049821571087169605383742608506256988782035722745503225239793770015474210020465592244417701432675825454186347882577871639732385311101971717998824929923528938109294874191108144896908298058074293673801718131454694244117641203005833044584394096376215961173249882357776141840258030045673603669277422026220365414398643124586342500455423173545637526369669975267378567453745788600606213595964429603109428916368006779160282971751421821684369968167688994859452474249031244470532730705588639114601393547520416573577039954907590886579787519522800160198405043653492472497438567739370600943267830789078353286726713050260272715324681676668616324106074238624461501123393361853561313546028079536175588299251460170312373815331614264868299169357666382205633527929901028553808546685910193561649998272568667144112783448686592528920319019548234824385184152560023523042862382012375046524400708742087646418898308403918459157802063619638835757613602539626715298707517124602970617386731167935118395285071332893576403395673261289393174538529786314026320348713326593025985172381223922924538734159369393198919352000717243169600106724264583424883044346847949731952433622308332859108073860678886676142365438181218495000433720202740697393653518414139255487186882498206927801406852482672637524151610230788795756868224248334494240086644628372155515056103571117224946149068899468650322917818913735423625694956561549479276554060332647943944932398525157748713236275641535843701347780192918277818973569073217968273353954166065981043532686198273282952302014498349236283676617431710810661913167311205882629686682506809461470106850954750493150696478939077589767023733137523930666092390412674809824910837202881997929725117885689031498486879572159924669625059726481600603436430574265633578837818061247106512715887424159017128498587549504654336659626530091662059992236846643800569816522546778747900980201741128793910530832002284917888700185682994180788026999101198783060481437808794146425361096877799927832416570996942270049433383489379229678859997544462428950345757495639364624570974124919266569635962047825028816565389270595885058352855371908219074065640488492040667858074794478727929711931071763526226377125462814127497164143652242212290269046657429129757989937851463811798832845776942430234767243501631882146943563251971504979383554589643633807596372869497415699218559532530231190830084262308929593790116712406001598719973516676218005546136751643154378458845528834985698034880976270812044540130155602571702958445764343757242200098797390577608480454702028947721531919281742478000150136616956961228927603279010987760948234061630090865918688167938730498148480649272291801994666896478155173259010621956612157397393720797394622324229802878894481538750679292891778100915044894889614183370467732953555782775848630854450155278765790937482972139619745379847570749191480535748674143343761313181749979757527265166634822291312558290521547727597652064366540695275867043377145391296761179827594370456259936613480665013182441517855937077231479008476389799705672543072280202600187562549806495605947356129263943174375433944246778547763499986294612485593854388510754519793112675861465607963946933816956385837029591688475771951446386024754561617726167761261366451240066798294104668311166906631235083585127038090586723570065902793132059444938837132969989188326418682233974534779382375138567045974690848861324012025026000664829227449018823972784129511850561395143968595042762473307447839113963284830228097244170868305556749285910145711251345515891362548787831139555043175136975641205706063132716164322682064419081864375347236474349524841733721695392655126138383209733309682578040070410209397049672154636724531980403163869984375657585753265107857098135150049072874020761707465446310052657632512426918537581481935711521603882616682131248498375890412409465412309339096913652340149188448425135496107310929652915955762165107427889099022740312562646019787497797263265241072825694462510664359955201978674025937386107829476547298017614344402453150258800428432973585995779460067132884784590593925346954055302160222410772407517637717676575236833127330869718957227905526119390180401325088063750052248775116874704358272878609793179652802736225781792289533211507219984273992582413224492718285844086984183415374047830552223234510271750641551872479245046321072709895447107893161874256247253746850027930354037136079117183970963428584061197834516782538018401912929991085504242806582260615272705191545494696697296121114811147111445047212812307867637584723265764199031466270695213896729427210076006095546223535627731839869739031519248849564284911880786368186676719034065005261659180524889853998950346944186666575604813495291910561383165884424726689462811493463763665039300108094549663937044660152722908110340013485937956436143511537582475957447889476986173794084733183310146516728767966380476367780471067602253364149020383965544410838360417800809664994442153026249072071248077434743147672624791070713569344737106721919058181827771164420428199304406328007422918192576732630592999631685516066742803142056169557717759025195600457822304551020502560937957124623218018821270396160395448087445165142840247667866188179531345043568961194840101761044753066602193541122544490903294279456195208595693208981479999678777736285168868206533327976545663725379024743168206814302788813168371188086638900800630121990890266802974438130296027174596437025038565321544940631461008568074856559409481419387275715012122985071137229476023351516271654059844750359615286296921807870485541688935290078193557734151871382917587491564405408808423151586396407361746359247731089197589936731725365467397238704013378066532743061715961071832604475341571552136754072321244148450163001674891367587716331419931377362902039476092710005809133067465710003994985730655717894011080396716379955912377267378993531946021762382471472352768156728736678894430817188228010493229223013492363386795940905124039750556374475542494355021097504467274132627312420132831802480908065846105121890588235727837589581227755000643602867388972325830487176859978164036688388639878456801230456968028848499209099395979374554809418329139271047464834265955498842470947690970055940319782189097066200980066605984697789192890357637945500957660015788618563666630192731354293040624746518904478881727076958161496759019081560656228634880981326008715816956050040554318180397977186498232549811628201934544239492489191244895075231300396113782400353388042235339615545579044781564622616119317046724015017715544191218935173103970861970567134490876369789843334270821649758901236392958874289121943917444300664833652335159352697331517164796750989476571878616740476806915174679297163575169511259042387173762269381092687664929572346050805953175956062052272273961925833027907515490299251246934075354915382630582455026282431232705001152940216807413974069563729777087006878904411197913559569269184988077738143351711993105510842840134215917528753014976833748649958767980652144360219949446547715899072331387867593263266428118822020692239731346256678930047564754495624996253520576686350647221227308041594917973430375347581244422456354126757870789062005062841470085693506339959026406145765151096152041623286185159020253969830383292635740077481696709250848915698788176333765446412424552875704369616404097824878628044035670864656076044832868211893777038261115994441367528468028016198932128248768973157822515616022659725732050377239110256171214589983765839556785041312112140618646375018767547560799738776689166691567523084932711242643844769955433873582035259736746094583405210558880319382646109440193646967357168673521123947060729530353738584492679555848994134128859482081117463656763844724288972114083063205816046211479102845912068946744355335322377344511283197014150050820734024775336478766492489068615299370195282443878115125131126767397834308349397757634369700027781198503514749953699441434900745201864923253143910329295532059589339852430082445856952983582847792696870749441555244977822155958978342364455008306241218946780455680095164887253166772899802493380259061639968555108503902618335912450701063380719773253373338407017837967189708344027119643480041460554061143913753625777963657365014321563912714985316427332809571222560399333686060715395934578743203075789600007830547073674429396697075742120500099932952498343402056345867036741769933272638083650778947545719416721265687810107369008863252833496118615501941220756679758507585019842499216770332128338922958317236786652470435097876454589154733142818535376139357877463880073632298459914319670159377414837777715133440143628104182549092919229976374881064646698170789051094757473547039367828383539813146916176073918695528595722851675484030392231574597189904624063452005888946486347186815726882560253790693632184403931972022661356900922146832623186827464247090665444709565512361176751672637901753448984437136696071632388718459119811026937000638642682916524318903646036525192578440892361871558868171806444553815913747880126873787842703910456721234350298215565595002034271994226418483050811969176154921011912138053354374220731225323912519405911941071789503931584803243917425627448735475057477399297571247608032306618315325674500976537839630073541187233693775764411653233773047097424770613333539116065112493614274610706917874784044847069379173385646881611138526333934854829738628924933176795858565615884757336452206223875980665296277246851471788585028968653249221477298028733567137837399369709850065267285597491325602084342971755347174972827531897506778994124935434501648795507495100374350061498137583544683932793454620707896105572164836452760379198197833155312592400139786308545120830190587888451239107443693196288400683474842428940762081510694296660083130484198752592768692544339146247832252547033960967064068168690858724375376426825318185915077179998669950482347127909787788485656036770696520229702076739153117279115867364730630611855837308818340306544842485449678528209574842916628387645206073072313579309232980104548343430861717469335906685094393377384732934458086342189357938200178333239433490093007090169535080784893678592131689467597987322981142671497242293939967088955169103887240800404761401868577400474881723047449418574164505826436941249149107627308432324714546452936239933162153946122918238038566962057641647889855396032475327207198546665624960057181590712171728401442206682439774920604480028914578789101184260889880518166955817150331836148555813953241415336863498819728071443991506176494620370061935021424956727805054706375152706875684256400110347251477073066060367125068271977079451322878519618002449588834978024327871603660676906449864112134329733660962800953896773336474313085474051371942532778954639515466368779355937632958523001530550971157146435256971051767787029882510296202742035256780934062530270841835556845823971320383278806945510178807614752007104727921243600743004202501051451789372774436662803473026907350326997692891831113409610981287914050192808787539843914665286802434448936060265980506297930526857843290864147924803278153499425357161252000299193299831264084232407855422002165429238358973004439149949375470488418547662421154162040914690804567986516042565998524815447539218940721666445016168821014716617080718617024640730695483353644660979728849761345750496129708889421222334715746090045602254849657544730480657653807792836858674147821653456294780928335571239214110728408730318243132599060025493843433449377800472893200589399143710085275392671593809409679649449146807049484282094467599191081795110584878725184107112572818364414733353371518612923692967167877583439140420256717860649201268769669989800977005149366190887256551088568525289904282682278161887514571594263561804040303772558772831981063486411766688593561427253566127125766935107718868996393520414370197282904932043470508563245975733822324944534588183432206682031235240975245205268097788055065773930343982622297181146756868469667069762032936334230401283642064370389725564000046636818652275472952076881986669198303269047940320301277647054943542035469316655179173503825528906487512427330940911686812619752402509766177314638824460032988643159622995686456134627049813312058199227642857020514561919570272522058259714863058058039528541198873693035585640310961956685050427470633664321797099023505975086879971816616378840557900809044871876931034671448552599870003166066026684027000343592185599041652770124855676544529416639987714639829037085127094178351714260236844681144229430645296959305485013999713239642387199683441604909529888212135093091835048384620320237982199136640644380022818204560349037874349435855469670908366706226572310828652167596069457688209910394385808856687454765933909010163225958563372646656045872791115780791536937620866994241713298914763448099116531435786567594840494945304639479912215302481957007037586827779157394806024316338308192673440405737875655071747800689169332706157713534822880873716972149097392053971790297274849446017773614372260506594990195494135575355509801054235731797940781166092222866976461381832268230067782313051314893439247337896582770823000963620967626668970057398443768129132297013157136155544323531909493466449861838730465979320409100511432385566258653312470391210460559105642401577668869642831673892983325777296040849483809496776461485215815689687234276610318022077120153251342583603764491281402994209902438788752302984345694957389534572722570164752586340430927747709753649861029618079585582586964664676369423466284670183129912040535705529358943117414907175085694702736401097879534921944519366354534430744143897982240448907742546629614904290580587771366855391371923444604731948135643207086775837171945408455640982800763786775578595596578826813161900698220816241257094239228854848369592391458242231549958296050844954434623986278729452429598302812608386972889262459771058618830437717579075149021638920221948949040315214689202897875881267772079087379285131980909167419546950903013349816833495807605994553474526634422417569636302769905904154515439642652201704400175843808177843239422786588365249006788975701669459729682355187377817314804808030260778817510720211698978345464045582384887565881564173529113536034318654472097000974265731026852036959566926376092176756122128155808833405942571329886514958672740025169288407087005834409918666067422725050254417844699009500953854815647301133675302832840437548348616522169373715696655447493212632658862626716010218867389406031126015829972981067567977902523089453814701879555573233528320299442039488688597498766215288362654930833707752016421690907645494743203858109671872018357833990816597583801190050221841054763390219417382563348387642715434700140949961802977575031669288621055867239531545433512061949194642060766938822694194252154499703874126416675405359559824675408593916890155331218877763333170863405561531753112523484906896865953704301910889476582559633034529209339612605545067330808941821106346179683371810631997358839887616311146055716279448619857184498663358452733246481318311215246075785195455018429178439551737812386891571128967864324434291180607666859271614540295825631176926429288721636107892010035825978870033958727287397517476272169555982811508798323568076517632184944707475706708175316168182778876357614945782275932269855550308824368595859197079591310646956118060099992721039739213740096864366052857801267890552653067719280311498975350149799466247602052186635484196219234818898958108844678981819905898271811319915364655209828497166116660098220619960335330271079104534685254485386592178218178256707725076080669299078730657771578122229312271543553886720881344075389796810656661865839317542388468769587965915288025699154327336073272799448439890932023974526867272281698034849610328095434376441819678173930702970150696311068627558514617367052805862776179354213086043743348422195541421001208567988667619060738759136790992462982366511610765020910077976650868707105585727226388796022023159572556533373019163082694636020253792389952585512943102248468218581351654368398892318899136299934012168040953873025678748492691921464023204880078300236924513647498153638484358841204746318707275757591584434872389761252848167354794318799679820486155231332086523932346328386532390433726229290987689338323527726202691579541352362890960932743267168029194471274256143865323919138921550452623843354201741016340679816451815054437396551337027719950824871220613710005412138153451518512764221491467286352082896620771667659526601908342899403343280557750008354983044923921700971406110917724460699268927771078038728275167194253376261210805229171745900887103978134983767346860311987026243487462961062396834038521764105450005770422362097447095116429011363198964814970959779302364516002761068802719860705192682923604310021215916671455848920371425020796722164727778558446908435292635884628688111867466482578635663132771604294549211674138441646524667174546133405239530088486319136850373102997840371990482897580794640720565688305496988512399576973660268122850103838109254210540386109115402124422620251722546765992492851328354682210270493778560696627217008183091856550212380594543883510362673333205250973383642712776831559836039603439298123784049330409221702958531076063990655377759573078384696793783431998721169849685547835285294188454638946085483046765042574711434896241065059832385726753622111109718120515214452282628969925144447437207158687377184446586364184549742935650211278091269755309348086303510806762631887770866036138112556269012844055036975376538222008552726177071241780168920932174770577033202523869999294969946067912620729177238905622348570484045108325725939899946969527532473889937127282693608493733272662290093916445081195875651206366573666156215089437469332134247057266442947536409174119331569650746034663019422197306587144186450495016425461854869097903116665577697848325350788886490023428901344476343382383233216556748740425853020334799210407287754243394156103777508850988043286874873738717617738563719656502658262980489400186288306573198270648275590071120302688572530162993999088527984671306397512404670670145568741876693945455896899403960505154001661847355512260455045692178800031695150186450733988810289400238783521337878452360573849904190074806848441334298672887603392429634480727949107300224220088188392896352800094871873448725350327916584639899394877556635727293169162396546544694094468717533548342897621991169896930105083645879617926705251700682016049099063409336433441283027319587837432790487525287707034929449092521283360309639503653833821064804190431970168274076103042007250515520036257735230145896053011300252233432254101783640624755981770310481727215972906079534423647912957699599527152064442689196477800768995180551351491277801883642300842108925651630956625859625018071591666188719003372151441720331830486651782006112804295337595869647737168793363604651430090857133393011312333036281599950387209690674861697644894441496091779188269514790656733409927419198211049935675751734318715966380801694243532972462961318993581742613547543080937086554078435880203782669382712145669661743088929877849578949966794361554408254400271852587940714345236836352399968457186635982766622467629263520690821993556027352522860776859420483177783970423787282481773855336225217516578516067700356426543963845107954982293277342447929465269317868360159941945226307599437011894174010882472048073350679858817486969967080363630749754948485887651274295046959100612620590323109710254348630991412551524851239420017954181891422103158839789648798447912739600550854006320645917481161802568719141232223342776547172387164237706686770533410166744995129494624839482929455441309305149390647320599348577000452186933697631930080993042329041363147928994268501722328165335946071321645549550308623076695926346856186438797344128469473911864708673238354548646346250630488020827469968707952737485440763983367531993276932173833076056411070281784900050125134057172613883499193001413843038154462190131902882588791458603870067821052012642178237201589608550333050692620257045746797071382642197610062121970634389263743925566391321669870573730632739568664224298160745929411031457936689370658304475262589258671143646747510066986805429004795292423796729501222143845127039881054467923311460166282742013947083357476732628068009633730710363416642622839420741743267762049946337690419686923785089588069722667889920166237813315329983035869121991681820809507694892741830451816675998771165616407756067958129142063919624268990146452483191991488773315444031364577324783372400732066153076332827596003278580403064964419895360390966933086411588445548955504420849546738403465169887936470182085944865018096266377973228531371278158953076351785554675768588300926866400876460312049804093475882226584414858203442833622830844250434116651797942111208361607259905941078092330489410211849662737388898913405493433737984376452954871767318802828891882983951886026601032757113095647624825124871869052451339378887772920142048344473419087269505563909366785527639440541775100709237787474541155586600550480914064615815841760347392223199824968760652947327598631867309976964441178832041708693820458154080200254283475527311459160506804828683502469646244357793763343159889450378671255688446757499006740069463071182702953329023918023258694992207701060980222721314231678706149251441960219183817700390156743670127083462237725138566283106195916856789149345155860477963930881881570347327189472303413317155551550546014268609654889500764705910702817730392864954600121000885429914234548848241568777081969764959827612299872949660336780382393484304002331118097181302240964794390128950615453294424237661382462717688527742922158062124951587076284449805177324380631722588891635535472332554193285814767617743628825289196107657735350490113585491434413366963953846746249789752429167456663709146008199101495763487313235147679041723132778038787925951654047894424131004432170421224428664867083809138479674977437808097882175778626106696535017391626135570248723354350344310099655212446304176314848366061563299811214325909642036953055890466187953014366432920030172975788706723665611597457085308022179216680894837510208559122570699130900221926993095511469573569434017699088460338728794507109857928765307058139855939725683111654553067609979837249274276167465582618415290782966833312626477959221063297992814563778060085435310922196762537548059290141379271537302975341287361721664158685556076024187563304538728087979268964262064371781289571955461638461953104779117881793548348196299032058853071312127690649333234153267755563625790779690786624484550872874461848913498307005648396360781474314966954751481223221798930945280848457050428562223146149657466751319200796658036788041333524876472130084469892932102399611328261745216829754153297744267447074297221374745411317222640189361068212834717992714761512550855290711855420910986002711113827850453340817370636902689211660685573025909327817126597692144553154128189501892126985797924472843870452345109274420886598806481544185165976377457946383949873396754869485613980543912992095758259906675670749746747233222075174810565228466660812862339575145411129582819498346649072822302596917585503696504534114255015658921693706491473054632576140846837498331093185978547625296541894399445597120943207890377363197672229351334210604269327410923420199936697210815222415193930653757120142833842043698572279165465587689238854913042749653069706682870286531213451781048565261802920158427856920890185728517092295603504458852135682371324053239371898001362686150150533113959440967277090120859457031912250383862247517873281330831731485494539798290364737210527177573776916276253339165223459176073671731279926957919823997193764047116202958274127863739355649481397215285510349795364278498881635879223754807512685083943231797411585421894465742494473507759857893306047978845880167111097344882597346520584279314173650746648178521966011762637881687231213071883419079678041382131265735058734935530947334658345736405447924609735069416970946460372891974511644809928998057163206593665688633514811628929921259268765023479943505556420584164357393747812359582004231998536180613670800596360878895341844621855869775773600787275580350694767148762094734377270284905114822090899763169975599273944683948823046302749968962652388287366346102761030081137227723458049301490058375129486607064057399872500314675399197328245487877655305595551605555623894319248999483482329319092763565352814577373798274305003151345174903575127055983645390262224563005660285086567492325724902770261995548201459482449920509777882050540236495777314398999587330216664366266585120749593940486699959758199474307623104686930082040227523747848266548424468386773826419248812378395609959062396640012106562003675080381153608312902014833465766502051521039846326383276229951037999696413537607221519822709797036239776747109121786567685591706865465810565915929486363243799689547568033514080780546916152455292558426889776409315731905261314100672431224676211852853685497565003135289261034685594948306487997007741273246299477550152368053658736450265197242871229118414542583404140905363044161790129721988220677573445857226419620979713590080505605290912771189299278166552245311690367647316240615722561922148199687624949928740474424220396322612032148926390153718672641624050483907791048120177093115319727700602115324024087439154027061161097324435709757931011932160313123656850622104772338691081138029715541450502471362900885279316805917453207985525628794750766036991405749971313602909801998197212857910973962426862150665304711513782235927982628058747963730059742205743145393059764131109095509179867247440104972271020531151052024039913695154149556230498798780231728977966258349133890900077386815558033890951658985595359075012489596751612504149100108144795321503085652203065692063614396327560747163959034976468747040827837369512765857818267532318915755564031881764662873043407184205499809364847186473433960041833612186040415056694887708354188081367412400911415275407559444513004515064902195412476870342500947431555940094102604244221480456937907766689350488380478151258797377651920026462898309048684909906201564296635266553222417880509748072641970187781888935294099460894334888898080519006775404737516533986893408593337885953821400376613850351262242365614203741267003324685926296699526513427347401880953530337790812003446853330088345780638290879580199343382068353678662435921898108296950904272797733437765373410613638485071528352018438001315138833225800399444570447029410687546056972527102808144740220664275722456905947643642739934021800305954618208251121105603318015909566087349025696613317401839885112994289451065745348229942495458064319473527561273017189372230364257582377607797702917110681784450652593274468634869671178829199546028364055324667430956837404593966568898277220845844101738624970259622812866967000833249422380181830232147214614071066332227247477678990619190476475089970992825721470626167102034826537619052504141134940405215750232035501089046722221272274747015038158087264222652351986573961661988538929990216041049182334945923748928468591216913114820190447211212559212112108547065156436011122798623896171365122396360691602808985105585854269046284809034837033922367945487278439251645226249449392975214713542477036084315460414598735966592964763271120272249090161225983277770936234058735768338330376210902797843052736416999320475045656723490628867179981186043689814975838574961748099519465643161052672289578355534376961447506255075241344784852009937050861630190681497793517620143914667314959002775047632088109348642340287994110370555136410252392666308938371571103741479898619636648292305535414284930136907431554912120457833272771644808153209960911364206029372469954254388583550882027530496399918683168729430319859980289006097987756037715871654849890663262183891446031325544946659317673551169726556885266653058825503732377292162645608107885288930787971934015357138172064965386551649529584242582911029854677274645040919486135737703207264794591686836760418442370275362179269913889673383434006947664982294018297784956013785922166210712103382151681223822299762557370432154062737679255900925646192497477447105935524981503654836872455263218874395315681156933977282398550745816682131326696919259978494519886278916116272989803276046071871810115751492248707129406590252096781126739578799443108231024290374550453102298729342249734236048290178751720211161030251406527646438123828698265068635015038469596026953523305706731578096460466842531438185226551689501912489465453949882541373390624740613451086983365830762257169530297614272220536641233092612119277404239473400947224287849678601014304546967567616604714787436981696229840505918777065070627417983714579499096685046583616963839353257452667079529418338084026418735406559865403054641599444771478378425906368266382655228674870100744133929514948017534596915254775614232714189657167900449612116053355513788965741305932297767429297894487399126899063493571669155836677035065579188780529505642411012374833884630529968613448465828088321935519520341066553979610345148923115254072559807762978321888375131322710099246906409234429185233632115777470400502215901527883503359351465368061431563790854047331332839186081861186372635676524019890152154822818073788629610175014017877482173048051795968956979511889250706434499757362615325333307112259447988303571929356153811436085456269748003628664089861351584005009691636001273266592108210622242171244379806846638698018004918655165013453612077998261641353813355734958778826715544340011645950364166271887726244818766267521566002522070800541516030458670201686876810206889369005697659824608040191052127992242206431205827026696358143590855795197039952449381701174384123486541769673101163504248036741393942401942571233562448749493585176328371742819804397305133705521989218601851067832730071246704094070960761274813340201872536131560905575108269481591022984509966817914605561368276423979821545878538187231713823273208341002007271917805180747901884197531017361297823926326463921088791368567037146127179149093737334915838964202755322560238825152384056359051363486840685810608194467029877462089079362985160116909897271923815141926846158886708711204499629331511228098540315798557826475126157630769386144012139609904310543662483789760963593669342663280943867866832379895409330583169328618687974654822725252659583317875673195971852244172246757190927263132262217207623177711110475513151133442492132128321885443158341766120993788124712780594431441051345195052291900989304266380392153486133529587568363659682892425768451471185930434550964169733451472388901994932869086817773574080835224508679138952744253122899839673959281053018583129197914647847573778328529606694759303967002281596008347778119419492361616365623747477499199903728394492099477322852514428692254936868586808009776193707884088871261061260240356281216088583559931062833545235075705291135772979245408480314771039570773170902674484453530012932944301781468401469022102656238055214032763837969486445806916812921407652164708901401146233914251135498926981186412423229169929766428587316244958588580218561972706771283910528124368271648383282320867132751501047794133853929814325838440680865354972038110410067066661556448503148850003450519125609260731576997474172804354025559103821466195025343866338400006178712301679468754623205771696930255716431236278024249594024764921164100733958201199694531133518376544505921250202629584838484448169687253344610107011755363963258671362953820884532587073600257977140548352928221566522721861784459646017763407824618716329761033539570092571235589767653129506411261844206222006373381329718527444960139851819411998248242806529163513107937376463502204976667826268542421651420146369140288253111570604799855486646063040013872847157558193191740653003138981881933883529973056741539692411144965554954785131651625764542908648739960305004561181506963583973877679963810073606773728799028535691307267871014942684234000975843946918652437438949215821437549003427079441757788359033584476753953083281706587246578161850545416710602614330024328941016464123300297308852963271509408544082368403844231266226120506369913589642267713716501740515872085136811625080071938646659963485378845265664919563987094459070845265164004675489218485278037169471437320747647522451880525273862823038692919792329819362903778094848331158533276962067768185492263627346602367543823097809071697476148504326278393704828362686418948193414387743037936339346542190494476737506353436068577724262933516589144698837214368958935452302787022386930953094581810025344687112623378585416010784415332911131392074586276259765318621367201916170470729086455760703030683201570251859214923331500108794471896628253358569819543065922694674523634517310651196582868760219629681058977964949864881764152748840598026659950824526214955606287878164261130834992014838137117278796681463505179766230965738861758256602136244216078862073301277646362924827049854627055919175070949865763707449377549397677992526006903086278989762909844688796205381018492439047877769334247578946880121748679779832019187843046626886458989748424223004850615423198858177721112172614567436685414603573060122373194886034008779028567548366351177015360082676001995016060247165330849229159063655126437725276234631209847312818037963631976725417874736553734612502823962690795161607437114628106552962355904404730266644790163395766495108610304337092672935051933479346101779841108190304982067498305951898940149070996898494094636836925083399723034940712215296716535182863374296756676752757066473596033128376023509574979230072098342999515483944821368077030995547925715865198892132802732843434216514398069976640015281597555689154881487314973805181389830594870108915113774468756763778184496137312987292753335674198385061289655205544486647839378472951846519350422077518066410466332557035227371227651873801254825002826949401040056430689752798952038796433415226538247456747578075048841635159902022733373038418226447609620822188564894722194127467237635348253925260439623222111576528170087771607790983901819772162369620684609431509438045469078325243506499602901520129643146115160452157741096640127041081835821312506328108865322469917060591471775784179838306064964373294830015073665195061449745023447828662296606227850260994771459048288854872691733747974442313401988719489036794218894964860894957027208272808013787445380678540185917799044804479668358104985980568079843495388717071895979704764839439188435904049888916112048596720925575849436956626169126474298078063089096843241718017805866289454747393183377459492145674477405569149757662301383063429845212243887827069167695840419743783082228444880973151338498891929241541753732623258454004611885440001255137586567978279264454392209060569130793039766046201072838909444622052345757545671908519226957812250378233838296959411091345848272157379692327382681321142090377236818349044150147893953068236569953186629977922177273698134164308498224327662878078365705686074081779872269784275969790286336249362196718224884093454978506634395857003625298682661340608700380186191903628850025236086957260774305184764086118769864698297707618123912874890124053662401732336846441111915613986147457769783722324061006456965625391432592411721541421900031919197919631352059327744027062008757743479838464883071266901305267256125050669053030051927761327470328949613148875488591918117827334410333621409761466434819478293096426790582916936263521893319755861874101946540571744218330711305370643870744976861087690515437525754220690339626339222784152796607301884462847189041284979927967437001358001168924068664052484488399159731016643294446082701285040723459676250647476536510802877746707332598664729656492275900599839574573551984075649371680106725233767024460729325341225216286664444155971572058208546453649437813078402501064018948212647181069087349349154910307088335786394706236726543076095826999643581120776785253872018128186922805350243857054725580461973394991060214890529250658076223159587533431497998486405890524082491098872570339990128950189218951229156844250354646642709475231682375212016429125829419528027784334951773380688769022788939151978679462123524063997535905315086278981484729507045679987564903975224234456111342148445913249288760288278993833359152894500290610701211934626011656511036630984588636982035821898326337057342146018184313972690998781315287397415005361221179157138748424588035306648326736052322412550902272816359230729226754090810257028056746776221647024953053900675734105443423714173713051144333837037974308921783717652121749727813330221287878267085367803777348907361374659826260625124585764957993294348490004276356891387301274886959588038809183444805579593799198980351403471711067054158877769304468357760833134382977635849032546086138396571363335046052149938793165421351885874811304935644290874168326950226094026117855113279023579603386273867674654890469936052726224422511953298902965792707648999712947199752658368626928298110663956304519479121075367899053075784951277521699888325249566492610748854163332323306963876211117238937814410126735660238772390261465865770308442284578788524532419962445239952151086432879664743025582278808234111495154001393184881690349278947460333057058176008762686842525057592289667503135443339347178678479817347536639508911364660408708653791900945584765418924616635206650012032845373506749351215871811024375605723242298200688230643777040045648183676869075667541676080125250987535215654909079323239091664115483216913837025900530878818878541135680269436801643432992904976756545278360015863959408424472742401193431521851702520825571492390732256379907630190525488183691028402316443240073357216232643858776539302022934264660276331900055665425914803913874599349985431433447843371271011804511125407869538798958762332653153250040010656270882853558998622263466799172844930489235746021336548222251186476642562272504226900287484088530912663940939325130387121299891747244146447317590477565006509840559654845994647175165367919301797881888871620945500915143830292109721223747812435100271202973118364990019150232827237736128491573789809763922125280469224944684906558216678109018135857974355431302352876764287452772414813490961574647585124501203401646449794623275620365687876082011288485489073854453450772054077133256207814293167603864221969824726896871819666829545090635993914920854628653673013311538815580255228279733040882866318662665089593658315998380466752816420878247542471922299490927511647384491057648005857717826984338722232661899475551597968927193245121951403737464901911015090297311441789852330963600666132128847483651274699505896146940293175365106227524105729016969969926007130637363272983602156964486241428807932317698513734165310924669935740403051946359554110463679037447668835029694910861293753708371455584097254962298289592331332819232094990617130283637258659328029913736661499309621995598581269732353629593762249544546202369922083983638261891691866821690401166599366760864801313605828524058386171827001194570262852624303984822880435133438296547101837734205453878945253171531778772063504782978487312412169602703443328158550804053738747864773548436604481812852780282765307390302583961082596949885318470045053202166440075782969726480631775922305115653753663677422664330629332785223808870268974345745350914629134286562864959855958070783335136053755027280269035846374814118636628474990912864044291739520709099227651624376361012962441185997919707136329952968645161022539883954574343312880784944949600368102999873262858174511799683110678734376947753394863168352140172212120981332414584803343889169124680168032687818372147552650432068682360368095308529141501981525860093874942635344759489540417234187036833328682954805265721723519305515777940584766238260633945428259177050295059968143746061413693286889200023012566841478554053996285214279191164894585601042214494889757060647667881580541640331656860738313556582979729338259776458774525113465719427015360886893181715191347384352208041033321613304642782835306322512416351116669973378815940050327604610033722078356835513528914445773200506122439949490818663154425497477126405177766621923218894673363099528379087715247269233145707805028041168795565668506091762340344098961502555420673626777734978077237827737803747187091203861043549559996894771717688585401803274744521760950129556168855535089882288150600135866367732013314088785666661258244821712592939323078055576117204374218352364345112320803135992957915218919547272062891126470582638961342119696610011807958435923739949490946591946633828183515695750752536797359044383353303823721731291854075981609460421064514190874459542857618575871646730282959201284777792834520395107843541157352383559682783852246609778864146573882326429128209730125949967554382632367014752431752273471839201497553284764438999536218630482931802742112073340388040388824361098805901753777154214220679845833320424996846346960433053115908176723098005517225532606140227545798599953020283647215875611770873664020226442420720522691963983847752150684967862554386531377795315232849120166848734629564084671046351539850295511687397197763385282352667727469282887923370006125157748391235449862001566778097592276900629947495744437376535197719034363988514018904644248061937504285639607842528805935640319755768841244559664051780202447703760159936507142979794615959661247365354335841826073523577911186291341760502834466113268445143745806364261808640854914683783082190411946603934989465776540306394330783384762714280764063063483490863914783204831821209068028590485720845654883787660818107113525766034651270779255326496059093046239689632350228431855083565484281646523854518743542000091195048336286438658188743709199662484866470305709807387481912289088916008757299011185713711001483795461947775540552227440201542023737944945801275422386261668754903616544056366677054275800119987142168459224397950908795613970065069973438195859702225792859409295036560899514629086145515747918066143275423494406997326055020880820892438712195941358490999857403241273759631193784474408004195155404123454277904788512571624096739509993781563711314263641589294869182483644003885864915816819100369576982541950169897504761183396052426482825841736452737504047334097424770624350875935843700953008841464061363388685686049511282705323850452084263876711468816677391385746172870959396886023581550862714655495886053969005027862839070768749777575441666772976673650185668865714846572842625192721703060735920622782921812581303776953289363708218569525146180948346046968001034547500611659652399930705853064839003381830653305362623437685037123260342746216879576255912200338602873453954092480101103976116281729899855116533598586617539858379726609636941291462017754097549560028712040573470873609080561781827472250663568559307122144140254458094396265434282499269370312999683534700472517012077091143452485252323665049264796789719505584481030662377178825752504996765294266797820839605710787334616042471214825660975055270856669131991731739417250366364979872941437618859044847858537377935961633587257981192462444978220997943999977407964575212338632046859841861272483523316083264450895636964580207365382743338289689243492332697075128531473291323923870345340151464042894376595144805511929769606759887615244229330416134885268190434349810807448559586272429998064814475492522406832478498310240903725959932976477438993744554343986794563049842850453783946663850268634170177091169295895713380406377926450595837845215457539700109175418799929091525281289365756251147916206759131489237841493752867915236130489755002244168797610183513836451753386869361828398596062362744306138800257347817489025439398206537225223525674132966650783124952747790054334798054228841601787028266965768704320062434965555407935785629157638256613123925692366591226101496601150822705395201921969696899290722064424484252497998625083480638810108237318695890424385476487944308120410266190656980892608391525442039716286816211062623061105113488498855952610658158246954176681503942377800826721458786031113121110690338047351737115385142454674111126575037989164781306490677265049408282983636897992477000581125207586405150246928623116404328172822762744295266353066165233708056294582045353376486021354335543624806995648737092386045281406774851044464230583421110858645013493103075245288719468424266316528714708359734299994861398385459681101567584532978844164938053879206487534760988143033225940879855999567788724219842223070262445345904301552614553274624676067805924397927938219271388368438920885709687033450347518016913727210705585563637933845412091720947470913815449084925236106700278080525054064363972035686620489718331823045862564972339144025029004577839764981695855723006643218375875983188721329973181707162505615489390613073573641824479510079413615284702988469187358053204605546810906480557406533106435796044061070155748809554793228475348120127829855999856426303032249375570993168092514298220900593001346750343970173588772367664957196987295679163866056289349675469319810356922692723618386432977151749043597455888248085837885680674643208735496208568791320525018144366178128098388254622406119987061714358815844654102613393763716368145455736732867792272398949872164767728427173559588604595168228288124935167324812284039145948412655016367477837106084215827246196409564005633140058331360169162272653861167903764165069701995942273638454854760780597319555494074600474376063682764485922974631698802894027606960338170583000826568104246672241920677418864148510462133658871886138231622380639861141277524663562642893178728921519928551880124551469732836495174958549363523265993174776601110057285322262779638330960162158928677194771578567514056164907660600926252150914853136506809313587594220719774748730758335191417726677707254469444167917424051263718646239158827763733755731604235834732989579331521377679956762250818529140934184066216233679865832386230921995630666833625370215053061393489322656823769110344293335760002323283112721775678635485476677839748124895252924238621890334972303723735544102101366551622347035329772029444916198748517451707316931085146614708168742885488313343650001162201308256617972007787809973734488549227233720776126231838226879372611797512623307076367378460856071589989661652268324071846147578922135129502746005624089841795171706987490031542665746365216888360553894550246498581416355818019359131767162339471970941642195326288484275307958431727012951044979926531776523097665812986384868240880172783312081607453171707520981161234733082225633157429748135862196201904790613610131172563849081905489409136058254796896760597036710743422680011094497997613682014436994595219671440496995402709425324007653462759494432990775229242501602806213526000153265090753075355370088067620564216043945312721145156140193232779578507679263875494005113038182952170306490222178386092617933810775467800460398461684259532459570044033818096000438897185585080930368285537180297465873300961168258660688226171378410953205174689873538918685849319960746804991825198843342452869195605500747584529596952244412376734157330553047617591204796545463248917868871446559237438869895359273965316684529957836909651532261064058942004030746743160904332789506285585393155250192303289567852034417293923299463926955028259369189334659811352986153960138897902472306579996949185772304104064584789401409427653795487921364773033126310621080966220346201181803507175423238501787591378516168810541942556934977796299459282695018293675914580646614528580166290444716840228155113792553203158761650092541928594861060758852891844926695677227949833203966655930264387036064300585806084560397209024274871785797467772281386614365633065841221397214468439781848890380195539594928913164357240837975506822810786286251186776033205834616185333697745920190710318379405734471737508354066289651835193513643435313034264835294938066700178983578417512673437600594473823080851415430599951926899364678651280918997977796943225234141672394997263131789572207329760576930095166956856717539350229152266541887961004948049538965609556737346370106768750675805692818435010062605574250973637164195757934255775935247213764880216978284466942306053171044873225122875673305879342039752586539403212523374975831504786634840851090941848473809582254759306202059931802003708739024662778922248463895340839739428910983629377714615474498809822885045432711702702083557509765529250232363943254102763437349192420983111514002038115484629009237244722902655868975436920512674238494231655440430353343680615963041285938349817188261604211094038197247746135214151955060222115999666552202347300069709061028431202333411628293476966459048942404537625914089999094755791715653218248812471344130340546741994612421635426373807942526639577179538652472672203579599794804600219975439487226004351405487918830119699311327116528044780475573236447793176661007790475183308230749603667120760261264908761449001398971284932328047406410092649885252649960295007741763934554451951709037937468581934287502854121082377746681852309276134825739442034172934762276719799221910474423742352613630841491941559942622822499422076393826803549119899857753754865192812812046425405046477487944104845696684890307759579820473699229546519656127395582624931904814168089923439633640555777762461951097616631213412874401949510330196648144042864760818446520163591480352007143568653241816734203320701036257516214306064042316091164455572530763632481454854763722308706000827170727019719261124141412079370923697996684419472938539258928858708100252784327366881995863034262238382650558816420202693962310095457017730636653472572451874414203651852003557633095034223433968935609543295631197664736553949941521925484970943544665792304631633412603708710154375797627581626673860884270056115276352276320342216254350289557570718013816153884052791864258590828746871917631059927486894897754067845982853551053241267278503556084803934500295032371442676225713233221999868219014335932709169041721450898735964813327046261610735771341516910732676341651951580548954478592638204620718563473285043097128282207284211033185047763539417387525972361535559935445268816372322158672469642032806375951661057039257769480709555867691227062009981009198652599693794208981535187598436865499937235295579717613029326079679014939092422192941966420212950825802909789801132764644072343623627742608393617789595474061763654189562353024406520734915437868560804298497606833504799413796998981034072682647584653419278759638188495207283170977554900721898252668657701289497137313690888447078874696446761508139236377429098388037906740095995845990620449998311983667648739233004030239256314781149207139942114896894784012182530560415652754324233455275459343106925795466253745619673465932483282389668936203477649743187876659304470537910791874834477342610492389278428195940122209543704479420035951262413896639379929462404461404235840062848290533883225963164845572020892146457664514294516447440164644877584881134237345259893678271937630777593842753912126124683543230813952946773190338526455210685331799552417986230201204518867261907587918816172062702075910680987322273849483398708964574554330788761369616766065412357649754663577261677858756380675234027938313882224513316041879766071735683301549612408093635665718627946136279884606961517280169983518436918807401772358011316145326773248646074155938561170383702475534557949786457561689821142388014688312262682655043651188802133835385872719152917214444406905644384869031939013553632738438629286041921933941578063506633242863521259153264720746098991586976661247809750437916552888371610325163771143974582506125931615110275018450392007483235733500055335508128184814795202349491678354161633264763117011645109674317715046904788047958868300659199982886112033710580659821556948171451339371870251984137988746005946950205161939046318221848548178275534953157777914855677734034048389713454824705273280248028797028212584467223269445082603643943020428216529848249036998503382211531194701210278834597446098950115749621796221412572447745063579318412684368066357344962675398344986752037623566218763637328882625408720064805836216258641859343592348611145159411552546634640953882560253217270853927811701679229822886438755349087456818619702583140026450725316816939526349382093448702634965704315089199308801103730554964746709924308361884072697774011388947230409269484790075152749966697375700956268471535599914306958066411014330257150588492947953887978698973422988237146096735593481397031513793281664068749612238840523245010731696100843154264461355992579949300965965981033577273649348748029932728560008284609382743695493103535264073730818848509403311092211852020566949667498814534072368712678522135262220805609884385618842473905263868521459081352620939823332850652261213433583227093869227002261984219012839376538055402370336834638165247248744639469644082379144586683485336813884151102666495177776457447205344497971111100839488884823106409508640357051769601290714579216319381152869284129554274520650759154778094974157251934601253471053063874129136213409013424060533207541688010137030534547834515831469297382520302795584527654853045005201139562642503865875547607514343243636727281266017839754978889557474203591669430239749494255922420936808152664630512680575399561359137378562203234956483832158550562798522660466964533750967102996835824087801213284002285887773754204943372190430232744145418307941216790910882807468726216975463904959323231394842764264210124067802950952940088125510857642133222602649993525846103888908448160283327430502794935003608149494609224371905215962866308695997651714224041407377166630020102604952247154985091269151452929691859329790774448733701874696435655957853047613084251193662609928435332330656038635942483348899419624229822747152827036563147065384551834279947868477731661953150573371452127107713044216969042011868908247959207010028485088779531685194690089044436385635511983939024047161623129249891694898702942998942562518504227633358094524615314484735356805188297702452132980981378355659375201954940725812127807693315867698337156232977261201313766868543270045167686030506060942296585010427895375150857430820335708111231591051187947085113433503114087162067118185192526665454581936445157122296903748546500176110312809247082479164197243115258461252232983463590067999881023061087669076872539122726060706920700437038588859145982850035586153147640863250286413261925165879125084036868143184703283575327786114129098657435015369325053562018861585925518430689742235554250164285279821046807418886504045352028152211095318154419674749301070813235706203107011224219957433921769911871126987922407358126819817793751733071951175770495301086795619662680309230577755980744454582131357445672363427984078698286412195849030711103152136534570442841111747183735232913696159785664636204663755454557045901131017886375083638050685262882813288060864825570370404540945010947853592654184529419157423474200317738418780079677951649695615174546429955450277638875597115044855362493951210203669179738448299613268074733312916678579834521718919430078242931297476310567510292207391918484428370906625714540101588751315739351483190077879368586846471261759801057588194302490626108285449011385758496516693201942995508484542605587742020914331089858438310056958415357807850407614074807857370716112768589385058089476508932596817395055776201385636720503136451563457989832089093996715667584844882109334439147940161602180565564399308179415682244859135689055749588914161775666250273968494660293943875526011332656025369405245515663412151792050180872039712087771894734386560893069457234341728012646391245154049043649052694921909242517186582371855569666218545904710635588790564638888083569946440167914117837738146500092588417535689800632966467743308773512560730633167592841665729319523587822125001870069263098074910770820497793537677011050764625612036368716297652572687142729020592014166698140607821334551621515961946747635440100466648883952008461434580608125842140310135249927127798449311288350102482108726549579435763277252699528293698922510677480544405589495239110918578633733929381552716582883518163005689092333268298693574955273990436882758406910561916195907543643894990146707525112508829501516245755405097136684067247883757472212308913225897364961902443260290164659910747299570607766160018035254900094258611479245121916790258130831075375196463960626066479710068787390910863025979190459330060159911815297007791574941259503300330582175781387942717697015513396306685103537201334447929900945270668271230490706566705953607187364131096873292999812695630217776206084884573001863467077230523801406050736734129414317824452287158491550215570438476002579392104147997805572543908900369861444495728137328594233619642530215920083632611454740208047612176411918535910224079633542798645736656496029517256920492921414139292057977233871768834122419626620087338367080939345266821594804392358860127373993113833060340460027354180369120758313842509784041366069017671519298211905751698360307093764452709617199898163057157487965110571976603639082305326472942213578028471494110608298249274450590621370838602165622324704078355104379502823524376723808560150022810645737447425505898754763189916781269988996644190141339701215631914035635324534643888247077956914952106296080412754914430149911114226991234557776907847794608775099714491563291282505226222659725055783507636224284957806587348667185248976138107635152623080490564967173754216832821923787851915009508405427370824908693413093023957164512628521209983186651473741382676477692667477412682291283542217117164178737620753563499245036628377088060027926051444552414922515910302364725054992752627382147485831228947180657013334033940083784035808544227490906110141679505166225039963402779137453884265049195904277580398147301277085090375422089348984443069039325590718888853590960564884087037057493583298329435852790098305183787344155580266659677422011122944714584178612715805957173096842648896523921668036808351192445961723203354334932129862929961004269621031897458449117891922430286704230836944901848587173033196890967668094481555305186168722409571859838693282276798009056296332078670276561992995486900592610035473873922492372274847386920102132308521658726232874220867273060689434186596951330257442046709530726624269948439892705439237386881323967414390863186634791540802860169917448337946955016203324668918225870678997503933111597141076178798751617809729573336879299813389031395633712995588352028899216185367566571028196795363764442573253587637033319009535985254629927424922306362107060322679332233524887465175658161155886919225634319852500186596485960793385742572343942629874662172482080397919498929548626322301991420074749652121478072341841995017745071656744993403881330979511975041075128221251894654061935803001008463612705626495277144809591786934340203668539938667862477569627511047530271180054467354374945926211265126792650726788101532789606624548287163002472089889135955580091699088683783953860530650910525965629652279330471782590030777391657302703655847067901035825447466932408078405951948793637145224083823399980605033107309213905241142856788596722844835015902395481778575933308717713549222664932512105181821185132514306529733824095672315693996643345672327020805882729900889789805444076934588614672261693453968307609644146047046020836843409372537656865261474049128680994827233880589904821743913600041107678231267625855682757662956220627435618984988698646921442731099101110493966108088333852320803238842568482606864536249508163277330385372891056231325845904262997335797595856993807293048646435061513240167185498963701452371382042606650727397349546249133140878828411270581287279582024953779421925286504906799730165538364888519114788649771241936554238032864262758228280879395988360701627815532782622545732496674932972026778648381691098300215508986550929322420939097388600584900034292665593189932563520434849817881844451142389616262515000708203163569324208000727453839463610226075022859009119852534738778353813594684253058969310085547770182514871137586727429974232991880887522374369976835115469599892455398271912370754269911190771003663311191396466419920323341615653194096750111777411900491326998870586154430311766900638316990204375479699365853761260048627238858302020876528709879790044065561032306097584099239185966784705275924537790069885287125170014341618779731225636357551338486138960458937408146030774846910138397882262572233638963088109505417476052384941124825753669684103827644409662706982944515813216881819579498346040550293456202166484737123293220013144450017350386069076220641594403156002410388392632153590999306815988628476253890575199081155706105447087508778209816562430048624213505787495395702689554387197781900452377633318063082496293087300708270632370099969918213372786796330646727871743283076026615146664064902605662414680038382889661937121913516980800216583525635025476591512999349504548904601061265241598213103308417868587292086229330227172399099567335105277221266737408795962264963371463104295846555407021797116340937386069519529071397582390223136077907663409774409746622815482879005204124549855071817893648922474323578309572468635587397049068794815690262376458690297516985389453008096510426598778464270510652165722894018969470503804395310345638330606916785655586964236093293443511803781516608422271360993634419793148478633212715641827004894795285473758347123316627301800671406338363158335038553773205999637923576938139098637539597263616279814407249632016971653845112779141422416002231981624073770552999065017647380357271143615710359982690449536053973021927793811688841177179147365819309557752103354774979257127969825548041065546707556657502872315854334703681683250332524249689443104374166226606657885330145275961758520237608723570537882770675929272332094560341371433870317089647431637826468897603274829535369681193384953209345242709515605605731731274141945059333789957018612711489139927976760396345920125233808080427960576378579621963790687453754211495742821487166179337289204706516886430455116962762012838932566969681595475699327728036462546102298807471418359349963053677004136423649838876271451020180049787516976299360809920493394081736015872878260364177294853193274250517721738122093559799171734514765532776243687033895492650982936655434236419569369684873571234657915221161143108793476030405319372129466712885121904487687457643501428042496036577031881556673415795240427282199134929801977356442634234812396997682922247414707731453092656926140630766076757998396493993004588910096767943420286267031937193027765251932834851193763103433727368956075884270624204157896068065770148014147840258014732112976745775026041384632255182006239365428720546720936529691659610003154304159048692882274389130771600947061345027394145966224048922332565937604344323566285178611660113565358158850424222817611924386662982812297602225172646789908713473509118089382765400767185945003330227821153232320975076572239659714382123168782361659026334278765440154399880859704886137274430633313501789979806094313306334130133386814400980972865984929916901924283685849574518827727525573982328813902871824444131779905226074674032108084862557343804849733982913151493949419651418530476950322524904258678583022284362495830788052933106260683397161331699559435586058038064375491291659802125684811277572468974994389872150814952316665559820313317023522955429995328664417620155433701170418028469211722580735218420684633464070780426382795566200817491423277824458341075918389861180318940798694625619776530355488099789523025110670761027944770838490686871911567778156163111981132907592191912421858614377085616895406154850173969078261745574606709749353489216678681054070787708364176568658344403139615343091416601768736704403992826574131392494769302799527589267800902059521866308718171511430405996880911376577562067941350826549805145919557225592257757001870906846427555282579167879017067153603882853079408082768980829471659889279529209281548052196742487568774263777593257456446203127297300171329456764187348054851672946634204801958910593732326600763557617795783276366131518694056531636909524146007763951636223828859391157668896829520648736151361329771947116488083119728039142301701658005167072734692918090725792986653569798585080656250706734256156535506412686884790481717770537849858624992325767457273736063490558867760979616367924424599091777393689602111607681710147643280012097969459155490126327641401875061469068480035406585649104250675442487250131389723927982778642567990763392623524862696591514140804774479588912723390625068680717081049731727206074997805378739401735503569195874863080913286424846837354608336586374692337218011871465266201861469809409604025883283400754431965818779662611378481277370204851381969749429579002531136440991963981070576531004550049664021270798247880604220574663238454339780533425463340509682250074754298165894826981992144498305397634274077177723525190957299319119563784192593893141693930365756687382084534403160603761000312102201984639740727123623196219994673282677206464024945049006366511886435180026566199151988902985709344978935159439403417391161880981665846310431809654681856450793984849541928893569099656191880626781191796307217735197664094825162740451310102695314269301921334642663573810200687799320647967487984718680131179000050398545724329180592347219641273538117290557876693774870001976348314892783815567801121939919657490172165631878107599891288450589908101072750690713382309344776374102240683227602502041789544415925695044654789396655439830275007022064191365828902113443874812863223775163113782256949056324312380594564791272128369539521857282600967053079017233240024018166321591582170899497109420178870811885898892010754275543160201268016005999121429840786979325625915837209392095891390828143373824806239857790470263586923429055926366075011056455856125128799560594173783694379950762967521102197682617278618247774709989665889365655787587153143487620471314960868679156138789695188294389412769294932922917856119680174672666902012294819987055370171835730290560210946589125086157457838745966001213203397982899661457201604906526809116174407290028604796122565074527432323688737835123427621593415751150396302038845465781736860937244488642607420991648356159921773794798215974090677626434551336304173178159506410289137853864597682685332970453573287524167551639094541509518775619250986243323024831199588523303325508374237119980400082506288896859490095507612928030044016621441246643868665112964087090931373986709365532790085140973513923742453503798877233701954934374689017806165475724528334537001997229781867506188300015369509977341097842116775500110030145767712781864861319716841090337593283667509046546845684252832302085925619998522283822792314576595339377074503720708271566533196839487783868697275567183728104963681188217958491974991881998484680039874026143733714984057930411012181573902251165410670343089742364510787500084440587951878158619800141323786414009941011265086122679148394653123884569603205398098317777557567466120213941729881782199009920943919685792879303787348537852567129123403523088963857850588270057666307713920114676649469016396944682277646244439094411439741178073898941648452749354955311969850260815980541763379993081714245611907195764875186408054393938854146123769634174628024217231243964899659020422639610581082575992022865967449673584454667896709973623879453923196366288626865129983626023570846074737122526581621100985672073529803597321460933573308769819241048125960450968320223462050583941286443084729973110673492485873535636109273060164531671718235215668418669541617236737194014780911910629890184466349791041604825544568499706009715140861932532007571664565845896295703005959550995053337553973763649348541250324053831543972452478121606540308038327725391155820285715914381135879150724850936202251009548467927828552182895647580903738211360662948392397941442096125615874664141825763506382983081199201329815435169013015486663197725030363134089166169256786234250613614995476449644711564449644957427702728452118910009275355325682250594436596840812609042266554780903719902201171767767864974964123483238748164306431410283994051687684611132057651659190176289238855508824244720618788428034900206010253182695060093143453591990978522171441175016298762785477618197022740983046754178332267414003395655066274059022790662519359716845329534520260537074560580739178517511823214681872945760850836511280911767624644336217922049748862505393818013702696201315658895209047598315348322921704824962865679280100012723818305388481189519448584176438081289930352086883038058009262053117534139274001414306456777560749576206224997073102891853421829954672139454810225858104212004496897316093127844386222926989473966281281804522226556435847284616279370033266420451137227054414285869770473987457613408073137244438044742787964228361709808767986911336060513320294238535959478338732974388239757056605309841365800436016143205227434244052285615306153335224433830739016151189601731129834206051798487881747485284586616314743320758039484909833004595990310133835120879875167139253026811780604503530906458357402107474246933447988569393645203266865090489787426309670635455011369222895729773890930950286361926344423009133112288321835567832723251838702904795111173986838355575941054268151251193130105335028422750222395542187131698160684686754730553826648728282777358718871521173541610488841552716798026349089977740537564080713090160543923049586093552125446054050586106882251098612170131342435007949574933276508935257968875655627318156497999009095939945723877369961648619992657651769384471662904069319999612426757941428517022375134732319541083945938884028126390287175005536457507902332239165487393556893837834234047005187300537644120358863147494939704396852952651217399642758883177850881970711486241935444323865157383435784240967706661354459169247720386691991665783258103375188285554084644323181636374117942393470507750921950291420592021614930576928220822640121571103192446778256894363273668862389400655336463802405283187376673995488462559825449809194105087741946153422471912605848209723788790286204923276374250273848863717771363876344879795710540349448564112524243930431135665520786088153519306590197433301025012672370254629891940283991656279099704266427251002304660287721606084778043460686031683430850589712735210570002784850940577352787469214293737263578050201778436823226854660955382987961671448602255345136325050826405336627732035937299705911699374198062216857310994443452713579422878805813521384824727214111089069830231317816391756172381796264369593608264941333038143913101310491168477849786665890900298479957770770293268954040968832468319409479001488182751276844277900448677686252723893508790401602591185979800662433734496981409077762129447883793368585875103808979535714331118338664075305800055458705817137441751364436447876327782167369600480634633184126962070054179244105331244799628167161390016262437887910574376246542942622007340477530208256590737298871240276209752656887625555002814622387109914812132874365862370077636147064313882247912562774157896937221020428228597403664209879674854697565582770293747222278398758663126096247166417651056064013429289111744847057319737527163486190327544830913924544666600111929873060345246745662246064099588703952466473979426772361868489902000212178180735010500645242433180785120165700480813169433571874211569742994545447778197582031235729085679105659567883473972251640382710145478796243012690769101624745686867247183575601905828281734166209402445232610665886502726793117973839269197882044925342923263188800215514888311106677437926445439025063959275607522516345225583350168606689274866037075140370204603381644824174264706069888675011597849616723466921441475945904632290302974253929617404962370236892679561789112159252807955932388051781768738525329720603898843863131567068102965111643535711649982400640862904396213551146389764925081314383621901468476852157355414342205843943625518511184349236961614035577989682768857466218943816280460716260572198688458407030966029844214974411249692681296925222964767260159368703604774969263376134655876610816746170331362345963053217552641639643927173625616334547693603811831078507742002292280822197028036836440496686821215669482689860913892716134876160835055287858281117462879852345683135100341816506472473109509235427615387306849182325247037053705750189423806881887844825410307407611635798738822698225617248212921132675058510945502350710578015387478900772003108793385003718027602548905004787340622775582914270656803734411641919032536380645917079630780552213060099185391296372871331850542755769753394175675487792592581797787584647723550159850595892760803540187482326985755613219427056183705014010288607844812481386131747783051677575031471467149830998837926177263537172701068440686264003412101174481412337972735621134594106825012209200303475190166437810123669414881390386181782791808126720320858001497641344070487117774262370960815111420881263124199016363090281154425118074183581865157001281003173784484638133505520531651495225548341982412467697573018138393453470388381898990969714401411747361567090674328602743722288073127276428578497020192679273699666692296188348120511905718943474530387468338848511816032050133018128612785966580706348474878798429698094271657501985547717863634928691553087797802409376274903875485244902004140888098749142779888259300151153036185083840486069059383878205746348564405337902790843257748638512040659422113566273339442675425593248199221689672378761353457117554800057314408597452638424282994280044770349972887319431438109321938518757309165214072109735946881148866582446304188608214280982203143949765869364746506235958540446168318385623446485710891771642297681993709150873483993680694661377193750294210631058724168560813112152655699213389240079600173751536274362030642320144048553850876026916061882662109286485326538857067324227091035558414621895609942912953639915232197428071532082655562142189364870693063233260132410796802323965058222351371709709328057827843400675443927316622221317426203741953371728677180855989444217083780034588254510839701937479447814488862304959658885215904045388240494091766474530230173813140963108265125962865545473067893182226626689663760377531892683930265176745101140243975974373042977103309219980429654757955645888700698309867132131226159505166440731408478065426806930888799686586308390258520308111640686285527878910122271691874348992637713001429920085144549750933345027633131876423860307101101394459841264437364009624385141300219847003237230003879331980915414765860802088832985089123319740353995933039420477169811629291471722407495505296723887694260319423744611370401950372154025414479380891455081916286837626737597715800162914865749411038870107910994873765327594439866081214889514969695029521493183928199969338713721571143150673441936397997772815610184197364371442052453968531267966928616726295102833704200249018033736512079344277389782535033028553470216578253462641756557396320155621438576921994381495795246486123032343313650163409000724834375182980986268497167401908678815064936511745470471053427320095960812856767427111898200987865584848772688648012308082666976218017314181232957597242395336759973209434951488418423996875750755981092967842701637875879341588510724313197988369447546645476582598463009589076732660684662545377305521755124650423936204263150958788476547394324979473892235483015421809157938385564477396302147985639105380941910312377633584871416395918573831323636136135641873477245130064787217357556002298133011308914380389792122604984110309806878574904177920239688856810754521995258929738229605333659749527818446368622600732441299692690067503157720465315076805230326772493978526601625011745898885606457288321840947944651634339798837982883196891635196018889594570369026440366537654711021922909506379830098830378241003848134597083079968942568196705282426580226353820825868383702633211618861705137946057206864043168942077617975436649610177135224560816385486446112707727459939809663907570674156319766387015949921657931067845022077653869032062873088849057576709913043511365323967998634026065728783312085321555330696485890708810928950720353005250179932585051023832660318601843629642921444616118742177506800277524483701346104861204961270551177700893587516602401085396771948866091665497706301029960735879743426702068753214712957395936387305596321884737503771948856313397243508236981399707233181677375949770227526829772505207659345991760540878897647555610495468246273073803807977203585712570102870318444429646914856949659313088341478600166253766989955905012264235661898539649868392813001294521381237634127741049233780279188861862452754109889478098596925116185844305690161695865074049675136346085133109542704952541177685384118158629289490984523002813206182394034355988613140808945632923112507211256083305846289800216864655123975210062210862627924858816523292751679377758953410575380658942673066547512006194905889896161639956560158433086360614102417155919006953724693842115830893808571600908422594041885028585083876394292734573012381345215346557431508986036421698582215213952690210617633342549862103291624599417399074157025849398714017087524759537485517376638623606301914421700647794102785618636302216630157823878483428501746971151391201385840100531631961150935350694839631496994500180990042922035143876418623129074459248282540197156315489089438746638893233117677914319600175736249030485149230531739296944237803235583946517328282004903207887854592051260821309587405841483033064924772701116464486878506806333367147427299434290880341642354304633280715719092136442046384620925331619119877311993583659705246566355197756736893484869879815863500133138739619887228573222394691567610420775849204114898096282288808162631792415207788810105922679353650497144924131779556238157018700397098552112128802225128437182160952372099021378350905115270736134924914770177151063444433881456018716026623778438301925236607006861343632151501590659413124203606971155068673885561238484652501049693225157068228877439731237060029471474593391171550253614402772378319986832875569464973276050324535106900556090936095756730943663789967741003895922118010883579894613961583881116044298487212664075793782961207658262439592167833279574564585007505040258921849172460707933803554383330235468936228987684765095546678584489931900573033520838681343540355537326524088806341811454305698061632809704327762052765891034181912124726367955978990699520006810364311864976445709702677769447794991935129410899355251520681269745085286704653085720062309761462572289801787009339198317104918075794282742241669870498232998761691169262988536843377320558224895105463508064035423499241087100875217004893423388841346891016502589424160569290929599703909528575228921308389647524697670201117775175270200007334759930615741081620437287274812301965664510859770105659339059489915098643477178345152696474376885514293040790740200772331480359078226479010536829651734962242188910731178186713547995422558540350555325093467722109716665415692259048346395144412149627297487434226539084278462451378651660642255009244696006359549156841400028838979524735325705751777321212345429757049910984891011040560584059366127175357656930406515319280454446070038757386795642782559203832271316004811963981108405585781709542644546896120194695607220349318870471899186227989108556207398865352862805499028327023861842042877881768790505710675059800232313480454572334936940557641485145565273104994120946128605537180621261480579572380944718477744250189267384936721617516041097722782947927387211162041624171918474293840983632336050738960873073421008019522619660524359532806577617906816889612838244172637405622443279754811113265738682961620563669245375869589357518864989413336235850517973821756030709139327758537814172366265480755656041763988473669136933858504212738447798366257844910389301236604545458332339810918105235660644685008129837938503335446548657217520708012843724785438648190563091927726283621442815605942533142385788893542734919450725144496181673719513446914534855781500609903371851362649982363153107131644479826337051828735050901666704188754802287641895498793578090037319915613914746716347136550128045224321552952888516450794452337822025417481259805673022755516069978304620592374996427547682095337302425032078601156838860799053343217030479741048477646267167085580708292081450415861676922928767178116306982413712347452070937664575403955129715219822233189674630660682930600443179906001346811987632103067559276846784169267475631939251073839187509364231493424856016891882187856440393231172241452891560507993042273067163460513284942859118733573558490741178280534778103217529620991174600825119354063614756486546467636579389204723287396032035127445098570518452902266420197998338297263695804329478253621851595806226334411555216749043227122928566104390803605043737347625039064153475523296082387637763345973984471975864367337943390402186687826282721029919156260513888416952555481023271824845858028515440079624452154313927603784009124016347285904039817309982936436311675607275577527897528629911499144478445646358149659245957556367255773754715003545762110919793060362207703612962424836268044267449361898975414008677757118908529846454403998974277844510141061073694826214124238682370911123540895112092070865265899597995795267548389772177716841963752213806191956763495461955267621597396735579323928810902321698194066443380975266514006885245230560237145862611688093188376819459381829749946476481560304629381224372030179973390398232779484952800429013261460456349704099756701096640304836701428956448958129567774956682022607250388242776809326866669051945402732458984348094087117749670860178872681095176620313002722288994869242983053888072240598481382641133748691853015821815521527559363174320964382973455139829076313933098221032904257005168950186799249410191111671992334514408649133574089754562096390482528026785529982609965411453644869300501509078929597222741866673646857963777866506767139280947842771462720751434391968694608579267236961825717410119041669559981469807181337286143129615113747842334399578347077550832796813419009049477228251484023150413964586908995196132107532279179146311411850475894092591736089772252446321043280886446440033255546679548390849242085580477461657658665758019187962748906611603870712906867478569072252344279286577022616685901770999596983018577325995835290039135830945051074832891002849423456727573872406150052240129004184028899130971344284085685258906033112254551803310106969976133271693998072953366133070143106349683243632966859529979148715830863552393339078434454919637380152405411918381839179821353272124597657902943223386810008650877934698649453426343916192018318671479256188068078128987154580841379906232802242912091118475572242044556996354600034383197165837393765864053733600851129020883704392187887693555105466975386757756859543907205074950233971357678231409996293931799329408274506391665153372520805661550510134716037913017847867550999856411197605757974928407891546328169866378707025613564627999798699962071932748341439159263134738594829681035057982134110537513135463357995768029117520859290776165604375495155740851597798895998724327603018613932335336539040226273780123818619545553355506966325798144914810296975664346528187533071231468405610631090569083814675253298857632391411720587347171002521952940203222373847823110187880827166763318715607625271585517863708554854068480423212362121524483628196602909437054659984513532618373656527764018399333003368112606006116861601773197385144057959904890379044442568278269044886333112571081574140519228221166516204528922324967864993877570227634551967223289901941801066859041284332447727383532566414215264961853896564457018802231506349835713091775023800974903668827745624118373847903856628809054373842281775263237514696721445261789703295467671553536046133152292245628845963882165824830218393018715635563622578969602536538435617979607930756140192190483034558294575674638880465730671502923941836710433556372248988477889352202562958302011098512601981971181702609853931573095228384491792044438096791050087891211066949867824051071784020372240414680554434404365559592473825334704585937790096924962294206971127077213817252381558564978634398090687935261813089121243092410351885331190309427270672698941714568916854422270141386524991896721219563437632271925731419096185926927760564275177611904707057747040042989521877414764242610126531943617029041539209145811212546328945470661345775923678422470162797709971176286615459215032770409873181700105680916808419026123353008275303980832641947681193366153696376920389873802217177415620165520179962098867982886185845786288704890065515635015461835861290795037462389414923643173497961309739934430225064743089107585575974549127468091566339527760493615352025897755017760480608809460363767647761897601806695767624791896443991624107887392363777174181839539213113920382017065419962724028258310664432831406326673538497911154489620249442225122712715676531732344161979848895539806824368065462933028341206823208753079847846442218413337543124394706493348335973650136611542052296697765021260374565510443567688899911385603641026679970124182867517209162298817620053103331789564964678125177710631343925860747601137104972368753512121502218907065563661807858784685222072753882953560069607971687907546243897795352105334548431129708815508104651834611100066196042303023587931289100785443185670530620862492228061822884373073950897453745445090119758356142964318021702575002415988775063993366495053494491934216313967648990561397380011894167925433496361573240259110222391331406168388119019307110131940088144629546004619074996638565023050422240727929361596481607905524779482402431187385199055542853921270608990268517278814918899353105271844385571201511860838553656741388901778147953705460154299680826861715566423106401079460808294002706778600324060612336820575010299090145043986029902098249923551087692677741315863920913858925501090367302510251522150871572086358428680824254571521576988919223864559218319999648942319526025532463062117110083470293836490412147685834984885373274427649838288532704491447573595435712119437642458045638604160395277216410316664417907053769350219244436184736122325002356502020044499501613847421904451225677686601310750734044444399406264439480103673243476522228072184184597649744383362019360439257166470078697876863420194503070066007519156328417786658663985892520922448794858030557501815077349379999284323604182393521153380960671031320838087624412224023381469478759881365739526174280926410318280537433074864061852078371816435446807406577424053813967792320614078204801102308288363268263832016908600876392506782639019843241797922224712187963196285630816977708552760575058129327676070545371031226779908579034727595190938560110835698492900543048626766365618617770693141037735633356755673071301220380196747530901720715700143984265532467509571007241148867612248966152293749544930778775346109299045852367722956857147142890187219662272587253657397578517963187563562929370045873217115985165969456240476496843285964950178415171224487123795597395994163603251876827483630312835464109325643219869518086281847361954850163642836775762660278329186667995434674380063851767368675626888548247247511179444521878976627285651814674455038356879771525939502439214091821685823495725407711515663744649859026133501228780057452893396596915115930805981589768747908269557020782454394529426397550454372929845901876584915244834033452885244133751743784090497823901821289204580338091685448822745509459963988542923280251843118630625746263928951835452871181110862419055162801792805532737540176115068542434479032301407419642727170034223626291577548554663765542723175338574079812201154542409072800758072521187481160321827585670580398024817677051642300581172043702622362466301778788173658464985025930679007907656427010139540110295582798479568990890767860005808958701186674951894026523748837049197874448455260936918450895422916736925994142293618022366698970414129565188085678983485174321719472737860466802761607120358165600304046272236617054818134542289651106691280114026356853290599497460779724517615976537056850568857058172852407760766104195205250502966884366223087788495397873433967626565696446647650729389399730256669178965254178161332699117238015039819868883208701934209360981739883279298132229500674584554329133222589303237914599163324097442986674223542016563101156524418037415480644101024506931105937392211605519205338232267462431258858679207187788249686875338563462142161930644020547493783596632254802595940324100230492551176143526195482395367752006013007325595415523511189552398839713572821790807041650286153528922422974653690781474347478185019294134832970335091160510931527557172988642621725336376564468801775872476959290038280084054227159202112271310259757649179172368522277261970180551704602465193087339320053275093832643667308709687669581944341704430525780765315389381507570524917033771530588440583066806049855306679357970734485603215902024967729853449119231818053956261024610607916809448919944113122798128564103909635799646931087235048843957513019217901584885335577565663252042590987034174525576290121058763729432867121669408258835147992353837286067054016396285982229394125965543594379524686464607357029917081798043140416654797361400042707625915192695229576876213132074795585999926658835052369101198594144110592738713132324922905466078290746118363380822320532409202538305591324025166587993120065549271936149955065246561248570820318290285598190244106392716991861648366882485006283782284206949331229994923494441440061742525872266035361058789469164390487715695301086977476397831890390201983010827449517848346260723806188818102541029603460914986919622679360701027722054539338917108649996774338114825108715560528871771254566090047143274539275717634195215198411169771385208825578209052806647842765043936673694053452806261974326048657782294807076464063893372995644072962867148861479499756840748647655212058993663321582004820775385354926840229738408924985548155818210161609654265372800715239633020752604095087408783784286014058046305793741960939788536502282484844765567113122374137337002214628989295482505166053685139160320817105933431410292241022031181065792942685708674167160003571848934247630424016728017554804599376402716143268935900394251152462125782363111135846851738379544028246581728278633426527478866926110675703341726121433225329129970197293247721418494554404955089598529339969867796932058358717781731063848234143506021135419544844712153962176944385235389497949669179977383916690935981548001117009184270978532208583648235376243894855024440581157659099654048263578888680383773505973022142951843922797144928132820739948837905988398165402608955421026234598258433726288843178592897589513183481504812571677802060421530773095900931974703803121328645539990026969048440299131652814127167541625134551923138702337275268554302953047635665931067607037293720688995500134362336465953201355525593408690656738443143626052306879940307370750538718162039713843145673767989928960670855103792323938975673605676562201812020597640131639536723296996738734715660507996201728365697643389114223050088038062808877874070195545222199276883756191843745931759148531540508303746384378686980335219796970528313332032228585371213930084518916714571174818532450465616735417475732066702014074867000073677908884401836850236476108761765935027313404038696090984196503846314054929298157576394875363347183206562513970882533990462268015233047773410642103023665732473886252678799930322923181462722509904521327117525574967693528718739714780530339825081237558812527692999381469167762726975034603535763120875985929741725241378926106379240727252340089527429607169588862437235290545905050914503005206323244665337845177011449742035880505432659486203083463825376088250564274060153340528553816917631772001252427741516065682016133041533148959393671404615771075642307876764767777185885990642648385849911715629704078123071503353116395061889486694690384727418387263685609948060481160099481682919656195092301290992235286649746440389821072714101739472736743454269290424609553427677268424577978144172367316943462389474246392500575283443205047524018196062864170213691238736044282914218545138143472608094679143274324140324327719060903107993988788193765057459590706352551017772966415902841362873149180660685572547843538363484229974824332554231804052389168711677351091589347229626837941782654987438380273092902943497345024478738753002494308671003544453851185338137864189613850940430795558322253403513949212549009827470725210026762489583895177124568100687756806203084476667680265708209802110562316086392070164483344408497170078460258636708801011669275267154258644503495962124741092275561424043030829283328751266255516607133260708090183902392365778785918987136918102512779288198399017696186586835195280942222557380183890795240972175333865419590626696535567885238314998570077874548987933353256814365178828259986388346281875862833795772179476306721897592722032615917322572562342296732979613637825311498349086073815441886161698547642238858013803157949248197486047029467155265159801237354025349443208422589581090926864077154343368388934577527143074914557055399899149803838903341591580910976301269428486711174996520528317022944331349906828364210021661644959018380467376413544938962574941826728319917090248209194859440390625225607618168564987123915965067010256198040041011878936685368240025242499464162744311509169779082274771685758459311214434953490124957296072571279645151108321257311002749562602087731645027433543272915048136348422788861144944884825995546449536652027392337851014871329957055063781684561211201425562353937260327798684888460154560598039013195098948116640204936532796694436871134524226661120525064285481005147140238451549537126224680311462944121383006497363469867670592949243638727278900257313811217956753513615340900907640661673399871957068421843007401201520250547868972335383312058320064658644663730902100995358706259809696370873678065050709094108133656187539509364538820009182053925411984600000814513261109923648464355396919532802779326866046777446132402886087804670181205856172924652710597754630538624509265343337690517595907100211474279373266393766420831115283483084405721037935295138884852462564995375440223080763831071037701413963649392376027423498932030437463129269230821671898039572664221700023859420377011029949729410591832440959433140788003438317051581300799028471244900553831441792015205188699965866004699182772412359385549868298457936569361114023910350352880970336840736270869165715181381222625240786143038605645475684195543409649138992461463633788693504062936091409413664503215046584949329426116816273070401677943743880796483069029234017009448909986597577312133143623087008877879217935329239972891690933407055283174973525281910152395567552699190491329904069683515860996543398279535929907811469197540185078907357034195635129279387313292177604967072232992603892933570881687141946794393977953606191599497242194412858847274055150803955136783433833283120868120191828973058192651882497999273291738093431133219534514936815609731891236803907567752671357651892626490593830344488138589365858397704748570400459134852966598633239702607353827543472723608240084661777908567734490353426943482917748240909454068535282272414780909008925351869310229561303765374521679654104094667525596530621203191083884427438387922491127211756367364906259545514307526595928626186868382496723122167144059660974187949500571836324619166207135144428611418871159371676040746162054066342253522559214194472659831117090796108927982960183397252400579013915738714859725746722494175682585345986335057080011990410478210731139354917142783082119031867987623838867595688745714224832059396229015713461058221258279997654601185089418414429769115757019811065020661788175316575608905117391397886004956626644591166490110315048204857791102509483005713899618173954658836209440687528890601025326804281221122674338748244724107482312012898147544196397224212700331229799694033884858937191237759374511146840537467140842674097337238381960638681407479977598511156500720055077725431487361627214990376063561978932225084801119336617026909209109539648243329646367484401739890401085524185678017593634229651541984849907341441465307116985432566449455479090115441574196527488687400913049630467526373396645499854780987162950066996566358416789579101204976768778367850419030312136698409601107081843829295465598436842534908872625812255811046234160391947852161993867569937190429168485260546483277871348267135499338655724644877614854635702232400056596371620457529999896006445284642866642548379551120427650920232651917171746111258325584326368070594048162114026497336663149694230349533076833629004411228769825632210851303015236953937942518194646327501736901610136129194301595085207996208411677852016627830338304970333086247959220086648858241693192174831857104513205290025532732325978690674543373784764168312431262069349033971915029625035945712436675166928737335988192545121646863521201984660045100544282175099743862768661856491633055788569929858730101175352356425254702472450553845383512237456374407280210256818848271948811812832123077669984165430223546152744822155908311113913530030674091027473173905541418182513122941394092268104693452292117450849908047884424189900528156889289088928426651979175227383571623218582763676852528659861536921805748986543851220335132182576780813470067443716004810416115984428219323606326827026885495675843471022852968398411673300463099612898343970741974613449980235295068252798830506323968331796493353668667397595609657870632686258653443596862476797037456954212215419184771851523964658452003343530091637129640842278527454578900987486820423874705482301673873791328651405975531810908011296150954102870634910904474417116916846899550597389371270872308093917780118970694257453750881412877206821983471818035169037714575996783326123081259309493487501708036814187238041050535598426878388735274145003033222124902888849738397888525876773645467939206571254427587111644194434342724491525256769444073029988079822835521274210328852948810435380233020534017533211616564752641119815766714633817239626944363894845851663403821873697435919072436902180843687249163120189217620408234919176726489892823353771063069026627545416687014446301630401303625063715006796032679175178653420957402509856786321028178408353630244771664602283376590868707809544045196806790039548036834738467279631340146671893062902764275132101231265427244796488250455239181284317208100170694813168405501463816590484555883894336214383661357549911548659450019468276085157138240903040184955890786327517325402312267834928611640084220985540000880779163434234736108663642572270609112490625002843827612840616517474647674612990832867869824406777527243149818554027389705864407866687953139189709970708645748588217922180848407117267508770333725677200141511073376288839883363531196070322259202061577056868256850839000044452644297427856726283940006959012819140025229695148442809912933690643603564753940660955787580515035106604868535744738046298711678814325194032457825524753192775724121489815355290429117428908442895454785105737086301190762085770228926036700820159937261120830678478978795657336678079811359246992178196990119552022819766305818447926893512439251330155704420498299683265913454476227952909200251638986289620295793327049146470938033021515439080300797171771812276587231679151472595956338625400839884766151412195538386550003798706103212781209138705269072399450298153525942616432868400888160711105117080517282336949302306514297620359520419121982056483762488457911971199682808813230178600587272904749339486177263528781018668208141714768877927520656809380622418935407137916588039621292071209041216772438328854582570598083333571417473783237724315916295644929096195770183036023827735451702784813436371221259358677983100796343607255931091560698125772174636485432622982060647138981356386983562825608817041260499293001589672417307557639849114258858513941576930681079787968751833077777184209570620456964668121846570879620375925390277335231718315858539675517441462465601009273672874456112146470396313207837513571866907158205466387475372433396058255818127846052191713654514257491533193039456127778041094144129756617719915024090515844620013004953846224504748767582486429476804243137170113280185423793830538147449706300798292052974965944923668941266926054120816181804510513946330764343477897083286472251658588983229963707209229555590103339301326925977877855782442293895856548841026556924341670295315817219936928667903467069804954751454831280858462637197398204083097324448241238973198034596987432755581500617528222837824749229826702615866139608064373296088817089464302814487601419644085700598752719821668742610208513512584621953048618632550034657047971260967329693717077988648037954501444418869379939617900564812158387531714820978395333603487080142512493487523738390168783394665239449596962495941594652340741088771718327716688564609703738083271040393540762858362968146609206996307383266631712072848158937410536933451152214562759347177857145854047522028583384163238678201085131637125344265074886820368353085999876117557585092268047994938273138398195444255744394565832344215163025519291429228708666714826496006885345883704301326107119547988244841464163486555436459366520881683800142124592245135226928925906007210902848869667681794606975511447637459407784007861270824701907661205539809663892105424752241618421423020921718821571878240988420007732359592970473840731961689205371203522466949885746852691649836340736755154692651911364871033487442077005424933446043892271201478469757593368220204631563463948248495265409965162503119906834223770158753010589973729510513590167665888752255883817038358483602937986171188166009748376179677669330849011405039164459603845781034829044098956029906404592351175121802180104070506113125038019891638475573748013922546919607398490630722605683259538623797189847856518697225231069146788562564946630377164474834310995722975956001846521717610621082085035717198075802976876889323068883681532741981830421199351659076899019807240829305756700208735261481744559630738145431155237313887097743779511258165167856265944889284791998994075201309288846605657491180539636424016631436699590132448120050537990154393287476561265118126570867862378065812049317996868943592285760991878691366777021048545606904369721803822368554357470368173927111857113971550509985285248949587491335452216022938766186350669619862459395508450327016934067139485820654105448285360667000450621798304120033806216384605710578017460578289599486136060536241739928649482832870378610640130239296460564964229601690975271163630935755687558382720657520236245256840586589218775249955004572482187264445494471111352447892505268920207161208504654865981308951118710190535431609710466562633185930073227890238391721997330517519628839521573522134497786783334100841033425031576626523086827120966355724138592654024342066099460192170796767727703504057037862176943640931375949590837209904797624385160339436258272885301430624702552235424073328451902004575012427467436398928269396294703921877637798532597041689605971861055233018004199684330500529608981315861064829802960257788097352427270614669482259315753642343732032595731699422969670520669266248848124435921622260684118849000561688115455381292500957367447765921462619578295408054371451416395434758184028935220914437203816343925717062058431983480919034622158722083186778947973917000200951916307626876847402634617831727862762706728760985827115360041483717111219519757310408993500033088390481063668667684837669480338764782318049011449367632781666383981649361703776631233172336990027965545252625625627140601860937962692086640108793440367800990244194410960187522024046783516552892657141103234513666646834891163220210599783360332845057524598059603791177005044625578471275886782754117997839087915072310130431796884405026414356501869694856132140092399975053788920484249861413642902731506302664050346277214512657138337317695104784210581865717438128393389152739509771363898591698409813030948131183252655814461740749308007958537360557356280118009507664683200412655013029046824075312085884533787302702116059269030480829219385225488805481949437217745049045003779489388343874180031267998687390922874149056815552954372089116581351986871479795314630170066449158639648336073581612693687601664099045483194642574012571688706016944137478947402978123333617286605528529541744961486303268460447100239754645488471642308024591660637255857569524695778762828567804535360932250943038376316078152412578400255269790752211098386235531889255535631321970898113373302263816574299289151622673146409621545807796763344094085827517682903501108839007676516797852026019166860705202339726919873085446688886524499749672686499715728628471733538672028513235859792359544685092622205602623042790253323426525297308611197414966699426818288909120546978880821092549363335351996947269999826165485682001894837276291876466043643773582030394969839443614255602783139593466950316841182599268688105446067937368631387706425619968682366921416688097286579215316859832365973512528169968295295383128896395419917200300963807031471901684342070831880709873490847995065465799076370137864332161713986807868527291725463285835270620896751101255622674767166812893015926333105346241846452999697470403512278020187076572766015898639001517057648398356109787539554568759469413793882383685919167794766054402614506873312897944504530113796518226538899486808730389280569876318032213816529197919084255329404393770617861754019231774038714252140083636317006415775810332058532485227962937861360272285945130900645956534860864889732754491520258904010269576506639005559110340891087678283305858474514509290142100959523299815809541703180704540691293223375858097460364404520441472213996655972952243205446695743020483701080353471953326053335615670222508529449483947878982608283731139933997274448780895170099219168692449909088237676946621499234405412496393556329038621014859066718584504962166350960006922125496826465450581650211190580345982480571326474404847034154259831658550900409535897327436113354411283037925206386874482988498959084142345123353700945724529509009732770178719592516477912582345368172528199904311378025716009728514341580789828288534550313956834706096859437291757407411189832470456456343704610653021775523730753293070681935215833027958588393169972052126523402762618943015085326621856623741703190343187683820364185329636002075688479642849511818648441611060913415650537961498608646522204943359801231435986953470655141223289103981550371087228579826680952866728186149091104885469510794814964487591574987457502367202483602979981579501361677429779643820023979041315630809657617836988169121136400492821891839081558060360168340508596235057061405909118391111309435311110081534491847466992362270316564877371164427880027298993910464049440238199496607575450413681960171957321523821934147786915453480276810475057381753120485662096191327120683192494403755377008433580565463722817082774503851694090198254665443708005768216874688376493485343622111922662165390673080186485897526000505808571433953593436356046011771313120107984598923862308451563974362152791069694770489867491562443228906827671809270126123958424573024556553560257998788234593635427775501782244532019060184939459714859216767638525111951444044893998614016583501956120061691103619358137871176684670452205443747948818579904032055819260427658727375420775972304033370619617651149244752556493677199081765264705742711165128601231427759055051073417169476943341819705426181423426675159434978289257723741440137666692939570938371757168711514693038135408660010185785942631008086881477404811277883977832028322112586049415543108883638005196533615558098483335956537951094467438966451837297470408456179692501143979580942653416186915418457458240818739593737237407634656445727765710704960344416187981375756497891464943355259665374844351105199201180382557579629447378551755485488749431827774732507162787154992146457386702500827585068960927792299364697037987328008997263894033750557137877980566351989814584006639024057644035089405162252494143746543062459482874983207434723861858781848306431390453959935586791012982031702645784213757674879660730291758297041649628283157964173359089875633451830382569081092966229929865426892187433355470703231005584911538632578452055184279702255734472282801541231107468197631930626586823550130997224465441298924983716298494923245738600484778186285882109067537677731821769745942534256091530415554936841187068407369334406323097786214722222176517921981454892213968371224972534421574657563151758553372323459655712085639220315705617874553837626611410777761841322280335854518984555127677711407575805744331490363920728683080765538626979932319956782579913439897572836822127498997256818952397010545505547393336264049672294774417987575620005104546274978500667439886796015317370087294202276726841572547490141976347138017655324633950671740737922970658330837211106361365526644876919456073376069900937935947755694287733824131469332008707635466328565046626981354586684939100630391503892149847746067735748203516809820020401649092841696850720893879857263128445631961262640860316476685371820966887992049812822308479218253247047310649521392974210561305338231964169609162045689165688564052634654014541146865949107715645571403101058161483591608633914542923949313916662382483485794842038744505317495650444568558490684615853039939469063421468280522734045076580461687682963482459181803981953811422807796613487133565136532304359862216421061624839179238311867669493905543480099741604198720118793995106591560364909165520697050759323581845314938130466101080837204417745564529968108093195137294736560120186358218258260612580218316963855825729012344835991444870370620696261625049987709188623181624353972590264723487519830314848004651553956840037119319990761520283022285466485715946240786262049167522050291035753516835585594304109728030451395680549523732397607979074981250839451816136150905716565193314258218231570451253179443091549339759623262295762644154967099824229730986435431058277421290209278388067808878127603875268220202013720032519131540974802130154223349197003921829323609116498179092497916437402452237219750291980004308049850007744617052069795977781536183983619841462253823354922395392717883963379468960386484192502849114296310022454836859122045526019918914502598875891915113859209621334661794906846794121057052243022071447631099500961438378186348880003688625573538248570964512599997360080097877776422565550647184062553512251452532593727851733010990491818551343018680162539076310416463149706034854000293869494367052040683309280669715496801718653374857548891904037309020348727621613991539852182578386843103943551589580396347788700204619852241691220524742911162426232390995726163847486800564461428186095109172698686558531830740159735658935016316150869457228631932521772256112650242942974100817719249821093771734910757215323787479192323631150840509256462457306234107792099555896140485839075128995679940631439993493689272691388159546825065824160088647809012761015707984179770994841256896043044684760922694152343913787295036059385082644251015074448881415751049699348702618278771263737550098409028616804923143726144609219647092216159601735555884147949643952871822392334843583819309254233657935959884669995424573757036818812668190957588177201276092883633443527912799149400930610690057316991965390474908475846630865555413362276995010725801801891325602646335907953057943545835511639847298602745666649339978319374006165570482309001662566637738231899214939198860186585549179291435481448819760428727960579890038943202689648098086086375850476360223003508585603222121003380578587660373690912711125433850310728258433421617393659972472212897496210530327870641918014751864574682443532261521784825539059625839487647434875825979323681463575930299134242420664786568910808617426630936134103300520057587962398717073582736972615423573407410999862779094062937344938190757232126786258058958153720673116916715405837468018674366584316952227483246363421062300237311599035352315470058464735878363209489719493004960484623500267948552671811628689995863647202638563656438192967256951541704727154726105624138749175452030623000746694270981365199892814865196568550967957220979714155652709027747608859166171026569474595466404273902487052901021252728682039672098512698959472815990389279174807905721070810152748672634543894915381854954270530954858302157648416477504554492958375434935083940826050116321918447075199061999606054901061634106723138913245847654784623076605071518570299686076871027053488456129346432763266243742783272404544334985297992749579181378944177836798101831363013355547432072141173649413555869221318854171271869519468770561961640697709750689456346176947414473385243347345383135267779798646939252298572262326244085926289510460787436396375563727231497908403695995586704921889407809250553792880898014927824200792404083973737925797731489617968651955749259403820113945211450588106815526098271178834174312027829650232684266940995967608620167852033058151807064274538745265741162276059652566334211857735506231412288273558761877377414640293391573720262426717851340734593187493605048443328879626515730766621220810457064463451563852028346204824962879830406017877783731971061866564633260370881198608220076843314134594934260358865841488613796237937012070032402075045802848795573162862164142573180676851484291257467491084313001172341527479839572680275230887430489196464433065547579581575783040686804123852927605252570020043069905653346364528770777021158276239589458607904325234811736834356688636941669593911845949714382689992801203053237694440018584891726077422378094315211259817968610696832592083244130087548618397545560454795427664214279876264085845873619309662208440404027871031995584668890904391328361284494961328012446784657158309151110043309932522709348092503705927044008453054897773006518855093307683989931970505831187457363449554972767923730411129802891278813526010381919795841992451411835680052553365392549050797248568717085994092253585101853733982546648151874110069513482215187418071005101509965568376632364020877948586463664046148359655234714803076757592401068082017563452551993851656353367661242900910999798703020261034541220771040981643956580121156096151151916882357463822176265908418343699642179287798417564866822085390848064387508551274997276716528077146742482048357752381363022298417155411354532875202893573685807871655718499530058262988051394392387175957625244532052395620994971900793474264623654291685531147517309094975680736291670540126650722018722613156851469127245803647930372933499654434467726703674343103703686456540167339772376570154968932512561868312308907203838870343894481917765072204645259747861374666662100672666611865738287931716010222040837692277051083134659175865441273722335571082050956494917032604556456592519428338095251427368049165087939246465841941062237280281047205218233965213946741002848973382594523540071174370369373469880177916950750863351043435836115803036364785399101840895376026713703460151687640340384271228379370922409114947753095988451690386383026731250574562774607559596264990361032463858844158063745896047097716175712358556213492888507649047710799802274483105021098374649432588103138171967075863693837599975796436275068949149011108767087747913226852397278449374117105422833504560352634872871425754281089440261725240573752956156453585169915208761873406352363208439856429104438317165213218910165869463487502574793527801132413863198828500732631572060605292010046768519256799519911313350102089753161915149719685883268222038399871930045299533423468484141796564875088180616666303052886521633399187084544969091758255200011237029689625891963185661570686592849720618872065757794467679941018056363258093505543506636533641930915739326455665410768317358444441307146524839575348221433938453493572336952795765343653427657813764976525707272403786513981061812893042918556910555339747929758007314571917764520147190817699730868527910668211996978245581700539499203802354362565870794428420220107738702915128473129783494791616234956553239427674315432073766268416357014553144574669038424736982489900689280684089557789918520476001767081959054689881171461255898039958603262182984594331768073890904277398987658602902627605024923378650197992436463090387920528919081095444163556974357104336393284264511520633697095687116297048467132548871825806832706215910405952512846160223174975090694985140249138324534290247397915064095357193120688144576907530655834446539470211046515900851356362894710480990764916916270384146988118548871154918926177544744743251191985431446166120468872819311734674336899841631145066073750743213724637501738403156909902513520477065557813441773435218495951545863076929657385656202855550326077026711746339302901537544283830688597050525521494137938487804511251855160737384096387296144518250891461680959029219567536521153089254748090652500735133001902051585444993942872438987548130423009089268262614846756748669951962229491016675947891949127370123408076527011807584224280182588860482012507386654169592435806137320197487039639175969811253304572885675905533815209523702557005359214939233835150824979293834654956399670318712651057096452828671595204768993526858436638717183521228377625012488897071441250808868371635991286530502037906073294797898870550101319046150899207031192509421621795204714313720690122089357380727062026504086830812420847345408360884587153405341705188164049825684782332783709722296756267036162446987557116095187660341190205019407709885925640542150574150730976246153731101776692470050589168941094381011821302646389881775423637299259083349497413746023558580193276782430447928747635644231151607582745109886975822946864073657473992880595120178549346784458603790053662389115462081753873400794422751811167126857818136476845786044456912614477189848978599217014306299070706956611723824625499902611855693307156588651479151912188858181875516403294716272979056285748446609302367259099107092704152511066489199531033787556230269799250242323761343782151663944205021899713392093308814781831104182202186563974987242209958149092848499676394575766673588776228779248843206501452985543775504543481804561286800946125446181571469047462594392398238024840029880479044533294534963952589530557652842605707575327477843625417418440133116869652721904309998182179958134135583924767226926779584463259146696959327297635141742072399435258243618666870353139924540522218765011922275084266190541203503876715623513721834991547718765804051544839136688758419808149920304521704720097614629014567361855344645657394105126795808823020133910033765068772188579249417503583527139196735648412489163415442140504562690945613918321843469198829012384481060161878249689130733541256869182019353956134878887063002953937723032060213152589708371083871014078986682107861720859680168364531092676365205228365864018856622240994320359283959075549974064164394346760818665074724844029677690677795494340761185779724763899774808991869345804677473984055241548313941644685870303143713106626338663475165320970708331010917188540161596220345502265903407053695235498302372519016569279176005322532940592408403830041412461771221426419370031652836605356228778074208326878820336788763935427398184539316650936328480819055000026055520394985091511606665619790284008927264363967249827865804946768168902415960091626096785455811421444963670515751860646085708254868023222520863588104260717485076233961266622385804119601537354215943728238561916640626097245996050489568599233383332288423946609210358234563570613985702191360225741210262208452621357327883923575652124056262178871745385441264992205400576823392858158079122245139769564518033761710105230715956784536284236392032028961636204126657230893218622196540578332769127583524919952685637577766126665385902217371303844541783213086578574312163694973341654579173214743332951878544850505176417280033388291478083956185682885695026864731942494596316539692109477559151580858676896011628918113363337665372706288507812659731407013628127109079706778509125763687271762569670804516974906067669623459484174425384556796104535907931877942903760379313697734402795767568009803862910227133706145925598054767603067026087054491433367863023842096276096793014833319888442271174615621208208599258509311446222261900355090837237806628315727248376478827768964125934432456061727714075595755722944855757696936008594064929173136389031058980180097567950693643645276914884502910662093807377021031574338605675594677028512249864140670133817660354558762368873295772692513493646686332480188253068163134905911686902537647777347878639505005962710951806363056303313303396967173565162344368803542095784364747264433183909391897729084350688792863626902194080887238916665108797756622733207913973231829810068141557352150982968384402745167792523115551055793065168514075732521703233076550828954198942467783194216020373768379998737829916559516288500218364858422821885545273685748563485478566903686404678839378257916359556147623385855107375870828042029372792068673815752814023138509052969472200192243488310579510597063382021691138272131106387709853231227933257754578567181784678698264111094274087813085656680019757293413025381776047660754825525045405857647131261059133091858561533550351008472722044283264514468174813650161353712717562690208986769853376588995355503565345017577823752904429890045277368016443178800255252534443411260976047579865686050847780366119932395162820973653945483275244360212693740925894284410540761905061285086137334434372024788760692925319432100874131767017792652772017611362562023680903753373087972323120116292575101287301203281602414512034447535413912649875341790778151979721431790854105928088403759551228262527590163816668978719473020430648257780527650870283140491093195429186980591074805286090295917000355370336342066188281682026335663532872190747633210166405185921379334171170949212277180279195816405848710656372341272668447585551654800688760314368766911200617625305754817566422594657344300410475766917150695487105465293312849171844521204229422396609957736046629367010697393306160040253657210331591115100539817101405123330734142344011320324512378180176893813248302157883701354589921656722772725635630369965065712337615743378275359984840388579909374791605707850590089313893604496525714806910286294655209187602140633606982707432600912057507721121123460063784258314995915274118682946635467627723950774839301449869129748271695395900955851416681240208616801391062006228985447616418561003255391205266128761207345669031619166656137120326473572310449474255101138190172046879122989505346356897162106871352318764362761473743064211973370673477035484995707653119546535189472643235828752105366790123482111251218536194311426236696663752633217406347892447438772792328821232985639351898215601622033925794363083375537194426294788342007810180912739555132599261907705133585063178811066695412661359985829483813697732537070180658390587096724313642437846011702350969883289245307623305172437345860923356330907362754449528057548937408745229194072725716422018286485636165013485511152786734074292809248485840412021730993641916192138692438950527892723903568108446768015555923340267382936566900062161361940152488804064806456686501963010721114302872393148607123915659504486709030769511458325937401039509112944002081261688167718811985021702091527740857630972698599829805239031015034052220943214131194044889565846392838726229405425987711634327639369791420237009789927807097198087783275012267258359658067314658447685931430164090660913255950647467421847601096624118405814641583037924700177190173754807895810995135803994082224788885441859482815389450873749546027255540722246738755720974332951059821416039834399793727451554491266672393247478181765302232667661533174275442905308899741827448038881193360449219054030740911960058313503506478824864477993565220595074972804072306468601916840636218686603205492854807520706061387853507791034548670530343454226705398367332302818967802090719290429754081186764934526423315205892251219525899550092682120381584681215556640651174641141114978170830725693499548923223228467584333503216428056259446905737654581506979955410670506486833921599702896471014830981659347698600545855918667302172306154866963099502693540154478349316043291964470059907073429965940374395758990437221421090351555450318756442751025345428155874528152027825285935756201862791619419574431168900143684745380452222765215437208842485456668257607031357757812453206641875399517180587683350852340758190315069789944308358374257796210671884803673688236036134064532638600597169469095022726760431942208383024895600552741631907955708999823840556044894637561028451024122039009084455019710080596749776640815867923922626176058436779414443779891073280372267037187361667616062790648529399562321283704061176569212405232151031072587058549039715553877095374972346719785505093435799949145923470994431884707721461222670682122506226701770789027729357181940136654214504685684848940226987127862692026504404630809109216872882493885297980152637138832458074693819225099841732720697868946348204578788021789331631447405070918513195739995337586546733496074754411738708252769601108191758127018290733890776182267415854470563602131660030981586940525246956710621606393408003483362217612380595470768131080734962726142451042489528346934279592245358575569478477127605077817744912556290145884480531648603501936125726768542293443531221819649915367290553969149644827134904473227633442116222229537756027110268712856226961346185751528825913620795133278675535603169866452829268497727724132270684183040638541122029014019381021708965240515238558192537261361351368431594766868573940813286630455496744307308349316888376793727481931643378872934419059591235502471591151910015297598799489753873907754786640587112562407056063701308812484827846870907456856686940493563371967381313051904957796602056526610649274954935569799078648087064794203982438902401107817427617444096290753802593666913573051873100461292329538985751261327384765552031831545251981642132089632525253376332976752685895934939773288461043619800216122266658170654067949459590215673967569401637615601670707575610899282344156359983750591198754174068853667275354556207768519425369938458604382571980334665672764280644601734028545885362166441879648892910643846841290062605613773177922251247884757374744200645294295421020704274423603658938646023539474551892843375380534053054859056046159465208238861274080616601879107743427867373844021391688288873865767471428396760946708822506305130653046692720480595537246201909121795343862103970216500822370775143880830155295252927657156086694812193529500334621867895305087655630542162400616230676533167236912419900105730577877027023474298845708013414179855948861845826094953788450664944561965839798432975642660679454417547414011241933543100656693066934280508667095062864542953085502277008019492907866496967642889762814802936717740741801677666013970279824670360432743314004245668505773660156300844172811985518650877343234500425216812869148846510798616922524900725022463919768739901893692102606721422084099427378366145446073465501506595930076032356934365225222512090305223595307412773331644175715395184780326285378775700301356444298432849861995549239195859351405025655203702448019184785121962461872888808906201012762888142441609784903317991686863176581582877698176130926879243142206646442768817825534643459521195586156356312328289655881326630816723996034880683917455069199262996858903693595496068669758349661584311117320239621485303672872966364158133350835715395468695964539351892493608318331344540566549832513187198633624811347132843666159534154074906721296037396745454172699676953371388588538104393682651518960939808266306992399887667247240519579010266890980039087646600594218196640817437134624073729308732117130122033478767850458686960157712257269182315348378882121921409018041612876124331618539041894563709336282560419356322220833514465419917964033303194253148536204781560391707979804135132303600086130787448058142342801077537432489989377601846319417404416449075211239651384216595406299106436166921872424507842692618902212633131976880985715058129029147908080215660558054761130605007565586306787776561338656290236853038347491351689831099937477790619756691122703402627818223818413268568508005141166924597359660757863712251793950403266537232039790973349273422708031237165201458882011558565786200939018118450648592325191818441074802174766090499015394066595730864476658042740997921138089618708755214408259204336604904966958985356289961166212736420838019902060764059192157392313501825913916244836151829617269629653271914526472090737666150010206937089833355202058864329720883569198564477541038133281185694292829372087950173154746157485568199529507809263204403236651032835923005401527556783409304371082884248370342795944208740700567055655887178313439496049938310185182090027660337464430966499650102396944849064400474306676481651701491208261438702664771010948350681007265416391695312970060599196933897348290584968300999476228119711548261302703861874582648240519529260277375174923293806049190192132316786659999423510592538353661630050465308752043176902160156345684347588359451082490019487628899564480898837241527278376422089706471154600206129629703817786472607204339437576869990679965061759502534485543740758482301444191913762694136330721357159346482717793257273253995581619117573638089862238416293785235087758097261485245155268788434220067621258981090321578272489016155808311222295178791813790384066898725048484011869710708843129384226433654688500733138878882063371778543388607664389823887447072066735383821847827974674967838877049890685515981158928478366416491475543988143273359499393567153602556392884193346426807445441658421661225196854618546703663595415626781970845132889355881814571594745297374456094831978701611050264973943119014004008930611578374444459349634654849522343530154321137167398205437182965400069483322644085830667543641040344476371146048793102614650472941287982757122793556783454258894266538995325321893500370844599440027765132588021576389789624590462262644516785002577490198677711323298258275069392765436213191387997744999057616550698102908084113058526921298999509270322006763303159437280173991377302410267900562092457811162665332675013192502063740783863574723585628579441099014152285077398492188821236889430511853835292376010555777540397773261752904561811456260246431102789096573739748529791289604371176507936123850175402577949369775901394430572951169406358769809869441943449587115730344107106296060286083386904946508185098845645669369669335164333556412497525095573004757132151528654851618817923161751494470425340477240923209016464693997446975126303324213730828492839206676273847505411947521190030674633777680044001155191074917289042628932254452445492919932550555009954251555452659718570615470425137790661610139869043185766760441256527637342957318727708573035953884423277408252576677006978525440142318443740822862470594717872350571111013523317956444621664498877796634070601954691515632868609075424736198158452510086707950218751850251391180095538852212682544503155064036713714034518622539275529977103575513867053868413797086940538458356570809637479165263962456580120106234264301551243534111607018795470277808720932453882429525644546879161252033450501401148313586380322414418477129824174722127128827942765203789294995371922628883332536740433775798967954342945293331364149003537677695587059850158199009650295058013790721849159328508782122040983242792412160219107694805350914176824955633636951305347365756919493455534714256710465640893390441614690411335347850579427921376810670759160730087670640062373771019832982229109455916092717861031480839802887008445059860270965390077779631317859194795561901132239868836054514463723298599865010944002742059608104065382456866457847584666913080918013552281887478955276395215898424427462947380782590309884108491972543180015035314528582100157216858940855394074340966799001029810845786175405411048818710430436385405621355835875494675307566776368896549959191243605227250555581795224911741171115395121591493040748614002720848730327324660875455954901138336562376126021876554262303942071857669776612873044424460943659983750545158930406257265657576156746111737154140983998093370389929874711404829053822245433261794863129306585426542757547449761494969813589340876540687670623003192982520996745809945115139905846620230494573832323663248846945466928705573069228672560778201251207131628177979898084372808536519521014913949082240828625356866225748548616671138604462632738529764394105859715467127039574110306275520212629629355652395681018072867769882051900362298782708646105450186556528260182962082892559815337270827184528297994857915410910768803075006370040520575943642813546632677799277946420877561914677749201585347464661301122960799436494059400549440694934489960222663165792019281473477636488532301494813267556826476451207929568528937189729216563635676652862849027716204148512345421463517084560457819076476069881567509139407955698792348290130513626351806984781256245935213192672375850338175573415869233940916258708561699227330668765849909636266426794798885125107305745049550609031223853778398252485759932579244807153421717810947059060147113860864695114598998645219220347092516006982322902585652269496565059703998530819729983646147843340809619965876160870234241672486042938576116313878099082681478611119069534116940214408547268489494550025536057004275947934206223843401716654861997143650571017962853310216235280699511123763190571925857693623761530876143028927481452725498223645156915315349827356698385004252566838930219729500725787333864607579823766536753492705543857577342955342698261181428145534897751957527495882303977493223540573442240729702687155647137880541606708326337518159414766801310852467725236246856522568910819428367240554393430182984775266849620164885740867605099683739729033912475798024209591476759152811951973579431279570906662001369605262828244824037899693635351755586468520656214975623782626057184429340506592923990179091989351334614390417610323383772674170162599150638230034159616498321865378177609804777835809946105493072112879994296530940515807867145316922800606644507520481981530377015788792325369375551849252165939964002333070633593029416398589960656621534932704628303205265199908211600999317672935646609063039268467757598437080339714084147695294355012182640119728830272043279480881379655236392855441637333781064883785286204625799640682938850135743338957458904482912748610454597892012476671034250862458966167358596823377572248746889770328181282329400673001984535483571446392175689828606112110989677548750501217381793363623589806011106350646149620352736914420985314313683210370206271367134577863195867490952864141885161165389651314238550673588890293827997300488447048948110381114747186067461517866714677396164336813913461024406378309725541795779954601592854103270422624655238240674631541958567651082050621395955485390973204709080461849795076181024032841946869672117348218306993800133621549128902170535441995461007199008251237829428532471786701295433941073766059199335330227194767973055466580451745990047615337272104665347602864030215358653170830518707686060661155746326308556107378463184343515944628158531274978533559960303096408836048547447137674196643517683816562478009018133335441515416977493112479896767462097184060590022175977263001023756904754526715800646559401544304886248190666299007923911338984904101966491282677617666886105113065377074363120634988346139934349544803729818430903071749662903228960508946592497326002713707117645271864308859721916317293360225772904714277685626476273172339914517082661592485628355815894191767849111344329004623560716606069320820365308103967235360736897477036740412952818304114014432735434103875321496430821892938521340323187082128023513077552289261309151923400356909531428243488385906306110927980146818962045476183334119251131496343850831012781534545194094208938045936369881904434868470283713473617655817744802945745598898643881606045729711347148172115746243846583080955195405622387800473325874292702226913828465799197835462053585260055320895307079537367524745440912582120701163875136108891160708638293518528504896828235184466462828054535833527837265178305512243998275795657176655476473028241201058282799999300443364871640743982982241880184515149790171757607271764980321112007282702911464977514975800534926560426113952307743071630817233444083759138547298423280561736710749053110030008265853877192578227346442142496601958830942028392912005409636814346941861527281387054727225348452541287161678922204243884960216257701103447739195636958982328501339242193844365884078416974369127671061766204455464859383248062381429062655671332219581623990902950394921019205283730981426091229810316638980180147213280342020860713670554134848091966527401441345143790985269114628697857095743409032597746259436260888450947895059403186969139659158768041139301159918968409042968354295083313057962835977099726360051086787932025731766296623784063746108918436423810952683781035940310844444116065157031310577442228435845874184759106552498755548700469439019888012047118733506359752799944747094211960844802504680322991462220588189104042895032777818914946658551343679272441700563910354875304519611019165939132726578435730007079700519364915336168180743275581101862603790963420208538190540299344188302083231733693242415584408301698703160829783785998969817436896861609698299180814184465689429604004470780137883631770268390033454468704372361264339289499914399896492941762795172828901893498814730515276429280330039702899948781902447304991293434133539482093907119282398550751539562644641392764834182302552473229856341034881191063129336092135172113323542377101588273695483880619192937373555475303940109919419426628936228439000557955712357936833645012627496828364883987609834279678946063964627167379447965580203774540786521701440800113605507884562779305075597904610930329274896242109350598702413755778244254120995883755844778092034362726492751651495657147457772991083008205283095951108347269872834942308022035229599496766914451831601060964693074450403569165357198110700341820280868222457091486720050555631007564513737729318914526746848739262981758469404307515992823814212817248087509451320574066021551347644913755333219813221937381511630141510971731579569902218194127589815635018554013437749067247037484376458952563979199329144645642173905756200467541583127262972183378032742132305119900503461494401254867968370227952547417481092248177777887644812552845347840729353881333451772740847380788795767683043269392135284780199308185633072876303398509520078372924519093409058417376858784376858854331413568588777401351364586118503456950127742999719648522737569141107119552097915232088764171249981627201135433496923573038825451651805687646974765437752505927889135088256201926287928270501936135513905445632334966642093107395920963156775900248141168915428338857344205943135285984924906240152979957484330296997373808994945135517516340798713971028583601278551411484231462181315201165299858860568956893040598621508349602052722827317552072476527588616049909580635479015479618480698501501075525042599728471733597426300139487772655394979458602015427515265043199393598666066108270849418446014885803694111316211804408439235430736322172305085769372556210926265554457950668315472297794102036268847338180660962153328428406844192312520008773929448799925818160436196775007190616584045225580459338286953109829435672593257541653269894959074313336541873141013015071437760942495949516705654950952975511157680397293147044751537915284314245080526883676775688993972154683468903275197258716533459271134902926717023120747359714328422389610062118445466169433071812020245154175716333760700887634392449033911091121888242501514318163824377073983684407320109140727361353217497155876944623745089827570703379330455823590103099310218100886051789930342315991440827323301977402720142773521931975208632229220922185716276254849371283913070924109551287166277296745843260136721174742619190990368527488238852797625726829392131692069748880389778139746087656028903989866482381865309188582251127134240627157511124709242641583967880165907639655435305087293703526930542746360719907508485604697338043320705484339834302659687649404890458817813975689130088771118165541834455105033963422799291397937134877663364344817731972497220107331290234805850197997835921570586292728806591526918292699345310568481915977705304961695773574023079179508472680858832104212688774318188295446607414061493227150480977240195195137577612265181278990147527648283466309731705198890294335616863842762114807932979505562072092626417813925583359024726462044955607146681562505678542920204953811383660617522208132812419877814276398023815238489350183931965769758171022870629999205160380429885663890216574224064724343491658800003308298378807484211820453840220238156098239624667061549155903903745681761908945290685356097440803578124619761360510353924007158968288875666909923051375877410652709293462614339271717676221280252507374665577415976261774526440414962521824427741043415864029293027780380842532052466341512798740932903664089648469758047507268253631465208771141414900332860980294586785062018629170883664130949437722512591266122499184631309117518896531662255067747655925879194668099195198832453976064262038734989385974495453217600554829309536476118885429828378689255232853783618657445062312638641195953233658248116345246772122205855697372666560657076763816645141939191678839716087725580628577288324253179511094132916984733819864776249331307314396055486836139159389842729221709220761939552123637251918560940692411492609368431888119414541887770324643196486991149422172400789391242475440999277620105116156302826303923753501080368950994261984427940285457182063690175935479723232391496699507228975363493666543226796097944652697603765934209987682280171313293910536884205353321414994208923609700647117762881220579386390823368790010885033567546790895484248229514611147487460344079260822045469444370506196004304584466722165278470322681563704185459316706965685274847279725263543458163519289331468987179212075344619823264076457606390171800407885750064796977654725020264379957873785182325703929065433332773736663731872428149042504137999255309043112705560839826129418730446052218253996768629478926140633978217335480317953736394150901811713821712487876873428419935969507389526937014347512293847268169718554614887812102879877810260206630135221575962270335512268558401736300520615540653540227061550923241166772447090224975665966437617065390708353335679952717097918930020013823686644379800199993353481412356241039267287786090768466831778640294860124467366176549163909206849082380285346245414225520169359653479855292515838975239582130068602760558189934260609221160488145744253668142583213123460107525153383007491264616057195297900686455330218331372645804308502117639884157824409459774147890275422110826529864900051728080849721980725625368716460125357397904662975828936073155706191464745444521170505289028873342422740370433527807102250529580509298369115460254209375263937763540052832243583582820258766872002506303814633428344503129369950328683173261885957524667040962360115449150941715821810640622293851482824347417643326272487078534660977666918462658886760895792170602360377223927013746581280791582174320635464293963558319160496682985825880901782864982912399440991674311439919687379655319778511339536756575290069640270133290852884755622788728090279524352936415635878585272897421344250463135928365181986250638619103658594123394451794544430301199704072071200398178054255467956802661247929686180371538339006382423071806698403867751293186700237880838650500330466003166823805526054374627047825558044316768985760571952121086915748518056866573992265364434634868398535979512292985724282875452050216191835996411747486634453844912010394556620452634231892281676475764008308845179916844078468376588794097877624904393518197072334042997821769626294518752012986989466123157407338131093565235122765170807563753072217287175961742320412925695554631831616709755110092120124639866157213177280741751786583927587121814936766011309340644345573310001008785222008812993175666000553604538921719570376869131312874817140438047763597743551915540561544336469244126940863715915390497365508184847834676542625832019809399741553478450426049799858989599642716027671055421447407969385486565543029467019574076617393934572283429544150288462873065197089777606981270411585955415431416010411496652256859758223460374214312430353433111364299736612936911664631822036838127137871985863806538813856990971302098066798335229384300998349157158805725688116740702641012762716185481857695212266255034188942512354930918796117600330300376017216506426061481128715489290036755473493558196955716429354546088739156326950891333511537330913146621503526811156023074953772269625126053308638206858784714622683716738988529986187350364929739539676530964606445546751157792670886535866774829910252195301578459805408212644809928314418532025363015961477011808661682202131509140934699133752419488188682748019042654193532746177423110804448418423430656299784858097350850611663065822621372731652060766634886376069373105425553289733790783522348824768595625963029792366745684367856907202855373413313631710975007842565772481197651069554844882621627780181813901117786612541552347958151439659100224319396302524876751920468709850581587151084205240410921429389626307772506860382581523006355929572002824764466943464318918457996040387899562210580018152351709382917144055383305375597152773001176330862621592838583764474853743088356352747950936819832857164229759157511234742790985966925166430735620852218351074412318747440148225750620576724861206958866969372429677845642550838628900973730589553079403905553227761097859712593806972632792187889244249349910596733307564855209488544091102272245702843050845530998119666144730507999133678037956910957321526921390675555262886487149416103666015815939762988313214593735332890590991306323917527402246247405299139664238888341099015651709291393171835046852127641118858076253997238618785751869167150263487316101458686520662248562276911430571111168569965407257742200684364979893393744515376715382296903044515448090030771978241388961300096907886405811263359036212495622007390820182630684674960527197220461888876597933022154321313100934723413070447350315258816527412515618161267644451426195783652011656632941452545567404230991352882299725112632288426370286206141817156865978645964454343555572935899993617796758796333556796745359004030879479824059436708758577183466846063076297005026828393432521841936011654640581253175398401041802079371381958241300378083619801791181643636834324004411933405776218724581608370238846790278229159836385853939204221457020659555898910468137584284937283945732845679517792986670173031505622129168666781870576127221619025618738565883180709226164047927593142337974544693725743820901069260683518010293409243900645776595567840048395353235677858798515213703697172672374905502731271318442415445560261087223934193311245595976077383959208468710704896589723971542226902123246140812203473378318200319697201920942453148217021366579139418516944155449347509925272567999571400938739134676175024866507727712471522277102851153890441416292527785447622909510880890399397826838376453279088218825489247612736998188987267040908695501748984624630806530361525391700942920796583088991570913307328487995048863416991623195406158733006539255849806383715685322386276052239376254355968966563717019196925257523129717403789941243194442762934385778022445774001756444607093940200301084927907981825953769565330442976988615853874187939625421187296692915640364548131070388774660832966909325739734979865525546550782793492145588321014145909260349259554407136383773844381195013865070394752033008829017121583650319463917353394534748972105544983821929091281896084618907655976754999341378294962727526079112409989753009410023969902302736978604186494195721825410692216285421208766608841378333659286343603232594071446048286797334219886200481512029876086165464434363178846351586700178689293122803040462477644680028177507192980318182846059147849262615470899921660347801487495329251800817955614902438645118136956033221838216297554133186168913210734115764635504604632804692039772669051831262925762463527160674581569969983732930231659065962357513794698721975663017585021129587656308897232878522788889993204879637332977884562370557581090424795778396723970528935777126675489553662743803362027384726345077609150873830693069634093399943784388509275880529871502636837746186743695511720294534498523550248769748016712407949868224350878764885824899900288439843608093628495787283834775703406918116391953153449869724578487294120191267392522632423088264520538301156288950576165743081642483100283352990733630172042598860865033374548282470991963411533608309082669993537055751720298625623501832980316896250874867718246788309012522008469152599249146879222564225362612518186133582952933807061484950185480041663789678850149997509188364668637054975228102781295885270754118396162025387018778001939992269480449899702899485386470376930410673723945393721403720634776024573268050497856098795868123305017194450015077325724222660257816612492991040589608837006445912212877433764933585037529077899991595066787020501870222232495292268858189237515932027286467713830246893694738943471987321298079780350405287702592511441296997910776762166957601717977406062374217321251388356727916049143028146335110692682641279043045618115204865822628006078782721381784593975768190097788295900266799796319786869615064172908678707679292027716463064422456745568273620579831582110568741113270207444292326650831525654693679974243019974880250598665251070347612441334529169330467992159111669086650894107227049698210005651551783811340858959651194981200612524786259139936367619254875042335257153939353690371404062288364217292858613550273997648643969295393117005775027739657306130179771868675131336440729645320431316043573174465865211424072280771095377470311148713256170988608830835587804465090145188404125251554490216577222085645914923258149070975906882346944342643514627549988629688590957373467865645720504300370832730623429983618340173367101527552215029897850197417147236347722859538710335774961852268749094947698376004319043926340439141547534002000663139336911315549233653431468929957137977908946883839455856482944710432947180804279043609845473732200825148117703275494414355925702325156401134628979594512540645948345684834914737692790519743869033365164876404609446526003605932286748429749595548070607515155805971197314226089576735239429878438957312010126119984737507585285544166698884312333883251740335665218548788091378558238676828296421943717204684638596923370289315199837693481298900753461955875329761523296763231905278091367604260249274181371142134767873946434172857280460532266516244169422837399650941795449336068967699212081761519979059234219990585015051224132903309505396765530920462591999703344214894864285032922074081412292497857752760506867838491008758305619186603685063750646188235198862599681655245745537422390161273133059481785928367362756805512169991909992807388774714433343048575038635322644993893718835768525270743841749807978345692706049440377671772871664618573075248213574704206429104079633940958487539312659886231384064816976944457960882339580893355858543749182093471073048952438186428949248338563048937584554830474745488331840166926383928707177762395711814483150174946402272680456449090475904278215447478725084408101620597062140463889349344322817563602017021183676700175376016814992812086314614011504412535627125222917352852691519024534121095211415688345467374261005788707930406731474623922301152938347273616849060455475918283303289926668419658215424265759234977234575867779119856078727537890084618274762584211418306307604444632792361759521580663016546492798861224523503883004206089566101727964822994369841164088031866583557988350583674115587244915555027434671097582230276449327971368782079475520935353746806950480207766793910748370685711348820910658130649228909944847357601704931635837088966919720263736922799837400971180001081045828864860849386038770007896554156323743778353826748940269505284629674313072337547926148179671952284363160400447077229488049431043884722054620852859711540123672084235012194647412698420358513077846044557723113603893789894398510872940952827204635696798393740537953482711753716640572076428573826003870585563065132085655985896275287925670100261658122512009550367576547928722612079366893739388150545323862446545308223871609211099175760460310705221658836202725787475409950629353799331112405070333726364352465260504487621677622082407868316445308983467960639320887520517500511274410159829752520814036829613922174774264054388326771769028707041891996114721519406380015673360843624348320300581498761149426570436139431209456118064539228350382505068645675373950182455765907302005777970907142485221649479913617525732494511126209601511257098623283021558289104800151378831701904385983211437093510705825608629414266047638723252516291511298059033431519079420454527865679479553418327674807474767968743710514081731916082718180846422183092372002248478979239245792217056161156354747679694461996329831943912808101059379166284823725154338410226640885870690803508644253324381205727649323875913937367091749382027088626698122889861032618118414258299845387244302609653688025973740150215111056313639042163139527641975787951644937388491813826748813214674147877127541813811272703022529325174081327891817848260896309385062984361836686728571966307299643641384583572635516328636064551827099419793816423444887741965074872292674440281082703079745009033590265332643901006389294217663501720130183042420724763276710061168872343949045949589469012797392764250218905089574751107610785718577542745028297195896693504620330517307274540827919110081720199051044811926178962292146465546918537540558368623309984680606624315505860507325658765700931496128279305059531919600435194131749113037138260973664539570672461625636179525254502720812629066334459994231470155339846245055944414056446660421907807600746587762388086297360490604201681897533481635093932862694063182796054226358240318382798110006242101523684437614491369096680243180758735827504689003044552890058745766666386642102540649677340914559484116043592875971848573439197483718510272848124367931650231690766107175411938720966195154464854833088078957282679656934228153228670132138906540315249250369061679324664550025552220552033378936356646687936019602212955642586729888665127471151273926681911592762635974409222836024334519757093587149798555185212409415614669809039752117662209164395853134588360670298082493243101032960608767990724220670968387318269305815088699046940810223774205308267897767343450654606025084223967976987605587318344376792744444919296428565526360231634147077474927281558266224957689083070184013730095362744653293693195098792410899957287225846035691301158553999465531111081254332101661814633701398527215914577961285183370641166758069898990888028395534970290734218933916615903337370836583213940307222336558430012815120566525810610923722238155476657446443839632918194714298374885906262740588038796901782388802926559130818913553113462160267071402696687807381747945654472158948227594911618486206723955629553582654363603758879808556888473417606296866780151222723351249344104370925848202751040604168737759624490677003761619579516728969119473067271910146278739812962297623876741907669962445105032619386589241091047020406313827434062360579250243824803873338040920199465257473348803103653272790942145512556768150818118979953008638212037601718182487094541132680028080195891451410831563533425511003543702752562029874509280361427008597960925058706263127624559696963131237665014369984328477740580432740954104095817162133853719063408914005125089217298977413995939842963000112832798608740491532205092877201443392770247365081244201863123240566804252227777492847266470291643312268884398424993614117393817049452751373657700142347222822492695922036102288397791446369899159878604281134009869131034559474454204991609970855660251385903806493201101660502443352515693023677039493237919143636427674409755986721768306962167451619294841867785066528925483792490908435480707655780141818281016348507521194619803098053832753508741822041517141287155568097786864584003220889778388171370876184526880866770690776840635924457494145736857487821294965264946526159144047402793800845779615777994514392571230799194080330655622501994050074577460868336810036460639423755323793558229268939348858301213894116915678816889634288691526589811984557211722198865711485609873857442665515076585437077914859035931712463474250284388097034540401542670077840221461093581451720105829809892303532247860296479195049481571623063286071683526112324626163897610702494253877697707692939746775353039289078913313863210070475864735613422102822702647274025087490223063793694415964679084751058021728545030375041424096030302818334161251569971003062093390749932780722912495122104877223809376948215534749754762516927371283004307326806220831279466173472839636206306208427472702457180163967450022137695415775782678782402290524863502306017784403492698826329905189640388282314125465212765333536800720788302813138990355790839728146264058695793100168662699304557662244199461330963583048019089854272059678837932263847292804385850723459927621685166477057550939673860999835792438201232497747233657326129737922992066923785948896218865297170935596423964800056350934944802838474128141516111852108590663153040020769592209655670175773623906475685086026930389246626471359929006237090521991492858550603956408715522072069485988458352535321356941601610266988551991591367156743365542295769641379852569776188561861045499328050080888961992139473719434006749425038922842228084745373341222637659234719491359213034332241756171951150273499210727025396893939426553698224949809120515658126585338476943550219993711281511093788862793276383881371662544071393356404202320644935253400805678415893183471563657961554606690865816071944515328647931160905997114893341073732984546139463119554143869018364738322099370291260960969302682643825257263890128006395416033568162084391342442217933053159032053245098278025875867737803391115385220592186040695476650246102596536327631646485074648510332138706695002997284531153603440259524963321930136180748136007445525076365398782032266231951221278778966394698682462755448557397684630404907175787466476090538460035638780391560261857073349863428891281680658950435055982397037282401030795786667377761291613521241892269743442353479125140846058334564081639253873604239052656614268734315560109926149390079740642610810022234217438353980976301638129612868080783297863408148377247781716132798063968879788180865105459951524823811079871424150228095349499059092931910675800611203301484361674356047928021014801658764868379114910762930320832690698731626940612824848146526525427700961959277782777886231597246368254941119857085471511492545966762571227705313271752682165689216452138568804063462101607549198268732017122437013318439227181828608574492708495095485063628129090521611372193390094807004410190692441237795260153532183628645592126347173314418507087518726408597409534038244396668335310466533488257878646181724019328504297684056312322155878612336466828689402729439904275729913319218055335887033397963196299628198472807358543192374619962040250283391617753169435552629220227382562517088989271565925136114478041579625836020509933995762178598949796841818629104014158325728714847861718614308854224930134557885854410548543168022589967723266152212192400556202743379289557371947734253751556222929225461437035902196088260968582427672447949806781161890614004481272391559217194973103478982411446933146389370073728523598699276784004854086418237703131361597849805161973338250291845420665313048793140278716492926778238245096158069531692600211422624489354330521271236434210048635782425721715912024050337687992765469437675636142819944830219601852215602233672272991577962900656525300319192346928659818343906122688612019530422938235240729991114501660702873206508278987449751772817079805324356624583848829635546454362528193803065791532146651091391440482321570604502413812722091579788687905093468220595561784369682317156781019101150850881609729617104257133023908773732791185689426122170079828383965482155807411949695757902837271401064649829524895626059443961884999016324463813276463801659083444955297127984641053503119893825938453770496459290768848113380210011231438792934861356529575287515457270222890177583558669875056575222915370069822362729694739188092504693691670737559699376087699533115271749723868954480450090975989189164631625133678483860961431524080538923836497624284988095046887497878257313681210851977747733774922839755212547734685278680328632309501035375212302577157996481311361439108776205188991669066220312491265878992108284817836818432052781682080343504363458270585890871374097102851093820404781741936284438497081933262361302086290901917482836524530736426778627934864625363683969533464282490728144542630757053157196646420609425997603169823721015441362164905310341166610988889455514524468223264235335760314031357779355501023196913010095627113259570076929310098203866634709100400949634955811115945523045612531185298287521409336813504013384084576295459718443740020143486839881382671400165850121207477142761806249554065178146148520471624303548368383593341378773374272993574732036962067600891081724513079248852130586224501841697120048985446616282396400929380923612856817231876986509545980132307643068337421008628288953080321282989191483115629181006049239970876701958015390053971128563742687857059595576569530847944773586915756950278699444189785156945244596403217371237569362964261189887850541031210609148730281522017954324781852992868994170468465654829999804787278102251872851275546853062142932925927966330671988972375123838383268421615310294461549655419371560828278840249330632243733693128493986364490957273410639985677621122055884922640996782274573090733274887219313605684591443063687054396770181473746523097702381093478654599933922587529246773313203225905519685194407470571031027268779912450753972806420235598258724927325657919420494189453033146725841352880562538232832816609489511847251568055258270157413055663557107888034136372877134271713197744684372315016907724437519189014939572968003726905603931165485347173253904325405958992467538914211904553354729305440896127898647223861139719263341839444222988270300907496416897017918836106813721662355286450461806561762396521608838061693803761715398654368942267024484661561856531884885006819597888345471883768371108920367131147779817467604062121572799964446940597550704070487519985767316202185722195727183668552429937697226345222828058420687771722571958827364496038205281279776065837698789198724240001702038718783824059740332922228099054080529417476848089821475543623550441090166185727530025972796005565569090620250613402194077711439205532103504534871698185472970681116098700242317779402563928247136591226384279535681964022132043144401803027791468529624253243029368099945634194513440150551508178221769517955258606377009109581395357059028020820657643502534961907811809100059121183726994074613669197511156964969948862192523872721736533107530549716171420094552090789424377775834550087003583307695671928466415438608315106209969869456803069137174266209964713748706042621856649069958096358330642438786032272894127064884528239696345072155006219635147065629931958678864883335943287949861575071858570966723008680309264530658813585840329040097722556151436996778882877731089135619836942715438487272331452686422365215721203749913686798378000868546984122450710038720488826289695256712648503874709661729891155789151483901974635929923081926230553608873624415378492188747971772448663870644839304956534879069302318925044542557360139768050961143285488295793969534585657183940707257714908549960346310692362109842323456108192385362556472203677273344846307485108783135158097535318360934573583059333119148640819597569980386460443815714169957919491388566453467840054745280334526902565976117226674809189753724262689505854216407407098735452362875188727425223590900204799934993335635721062776373384715182402441696051306062439447068285157952858282893770688618354144212794128295708879046957049096375529675830699904027531029511127732135102564879356401173209336675259906484260943667493223256316648452043319722130148402535704528962790782591703558512137015547281755742323662196270106203512088801161419171525642127258247924889199332899475579137558370790581670738522883742005039869528022745260071576377805103062656756870522650282606373856054182309308561180064559080821929903706088539422289757389083090415178567672809530673302275801824814620097118147863550319292887793815376983143559886345223370233350434929037526669426740155442233469001202303285801985648808421751090444205005386864237607951999953800675302978560169743469039463025849682676845354609771437368201552102024423847005923547437484403702179682619756604174422685105577181835964101609494324067567227591193791053509076781584234439835074598486203883968815364266198815095642593530121212303093794491831387430511606839530387410994182918086141757497266516872298817437347002216601050451271687824203121011116530003239963613910425381447057315906422425474536285592987976518521632265655977984661597602488424309161090928444460316364276500724559009445289877080293822549022746497472087273152580073140023260249777871877501257129761198642692526263589935827154402767520338028790306121652267058348326606910818387194760122601171224295123113368533635439509329189078906635739961771268650274445220430260643007784444637317680139544220649338775044657423770186247142101166224913078634002710810413952820887255755529774352912500502647490986233913420523872050692066166830471808593785695150628319850307607361972577048650561858174549358928502182917059003210030833029659870490133121357007855461341851676545678529583073724906642225643998860929649503538998190246840731543578996937776533936289782850751614922330401545464572439169687241673623149257648549142549410904813099182589498054046049153410071118913545118565617842108942065441089582779790026873063638127414471815168003383136357054841011154699648360294464455331065069194836535972495927463061539773235226718049741414946476207891505127033762417882850628037267300169791616659358214922402693900289272951549065596085817395520476514555963937459618093443015781993361937288503953353967060604055912019098376356562489777325606527333210713262176258584011498082581749259042208709543648029311681788538464576600502513755791018138612549584031675710686016875099771655760031023071020093546520127846297625355400826294543848510893003535919279197065769423062014000746021205335406295152809839901120153139812664390094926397372056615077947818057935464871282449142400597787835844733936917298027761880700357141012898153977340304640715858822020285395837729091430945192859113632217679447697052448465673218320516880851300163813220800517950209957702338506173886401790439726005217913574821960426372174639471746438351053419059224635514421904993639281464285972586880475508053540400784195655233348154677374201673433146129380037461347997234677090246299010303832286006893009548514789716255956246641205971481204713981655830870394080749829717212461169788130523428942633373110718748227331456515797674694721187030867107654799381496424788228690926633485648227363435757470287834253677994542796712761292349888052428214349257699025209472457475801789302241264974157495587727291162393218386052348985216220395542294792915943084572628751618172702430083746590702619927877624063126795486090474597742487599500995227677920504505628005878749894360492366819589520004302239252298741969081639160136958823601552312182955888671548573769827195870679078238031328330632348191134951185214571501060549597649626888302912049757112386629683766241358913790157588343670252876248453988103874573033165787755494370635030712792478514156004415966361170530582305221110646827108332425278071405846928572955710978715505907798469119868740703195479304115437620670889223337687827557734068668879477682406876967885152996185260426297584415207033748054074713402651341256466094878022078067968016928144520605723944572401149064197111372308300813796924947277584617110925889959815685684255942279137288792333225162049053685241613195496862276535602973623610964682571098988735922370975117237776187733851459620955283566477850532932247437704725383087733116198600484660660550665488919350310642731722595716971936601594362653819321885064562654987802785850234720628169531479745165117312353584503477028743125184203095858821570217516826836157179932513962695758905381382219680787972720378516279567608005215288012070149988383201415278934418957136884555695917993839325514049745770076339904143950839245963313978794868053441529538697533301550803739454547672568067670742818134112453953376642847757198277387810498515545884467445320565569974181299348407751135547336332057252869067837827145784006732877199756886692771438630283195832744115026795086716579677645569187015745391702812817369838592687090479874105672545119082736210768301636939140889585726402108168568911718549993469683833525776541112411959774974685146260918292244526053352669507069123565027150668547316400485476975148767569842275972279962233187276953047973702601084367687603998666996594947770041993521014697655179851435553032321552195333330462177288201334359359155065531368183166135624534614686881553086678768641941398937489523217081997582181330870661331614857154077516697321140297068884954832160730658613431810662153360603544683079612815589121846848416742959007521509493834798960723409606976229400943479668276171199436435208394452476916368159729340102501481388956906929129555589579087189977942626352353627062155134687114981349284404822641366697442631014400985498068778969013916481811410819550584600411907852087638724480083167630705593362679835654266698481041743105460659856004114302659785126321236010646737728819055849354423628766019075887859807802529631306340880235296993880528318038955607559115279831711994381937653580254437869042661912036045351936438250746763546846400866484500923892991137290691593242244642839173168244571392746489270001100298222453329301053165571632893608336774348023233407131904025045736914485069841559122944456148917623997631594579649342771837673480557351612473565296782956460469298898658762686237632954082491078818808375766821442198812254352629549572632872551346539497088720043275725628878837410688541022123160921109660285848982723798982409832037035426712091868704991828437791460892140950677110270375479124399380667291745251436228083856008928366765735627172732372891768856086018977893137995865582709144054563566526352299572395827387574695420888459111560673163968834354185039507556333310866949057862644339066094051238377022258133137731397778858759810559583955197676861219199658486579815502923650383665669568683986088237881844173962107534048653368935005657568639871623730754817514919431529537794812822374901287860260909325926448398911827371944852105194822717623170694451332565971713312281350830280101791115487607275886704664744107874552249020194718615039621136200450634048443557922960565226903842980495492500422966830110741354690742727434303989490993847998128837537422384995452047165926666752431014642594864601977479967288716819459032545271392578289335647070387453738799895902143577314405613365251212537591120384713336046752708442986253935621656173492409634422593794574494842431405402795391492949942578031326671151663477033893990058441606535624079844127136033554722238966913547771755672941643098952697742787827877667938424968064966237902912636106901924782345319701514297239266602526551018836058534162542603575691973959904514315552318142115859008922760396980545483022712644607935228456494392022728728350657022044409047432474123760260033050799838595583446957114832099725368274273306260736564683802941343763389782969376399695204808946756192138493898145103118132977495458977605291657557276923653493326872381331068673039004821086721498102107166836125232222074425979370984393427848038388176843538276535066562225260337249667266771631969786479562198526966153957117373295279093374060313375271808489684284310655314311877185035387459265131277005223344524445967385740875844129187391049753513591435369929620544849290708396106050438163971410240325647784079294707016132444729450150640023884450562168450090769046541118533745666420740599414751018778311568993364556560817921328822659060108040932146909804254082993478078409237083643969204206267621779979576802236825633556479579000952139349828033255860637803316963969524731888662641948003377118890159493890817208506404648626167279462682564064052006560593025386065015615497357512230008225495335032088257742326626869421295478213353419738352165072952576857642235073426370277093053410636481411727953295468792374084079441558385601869282851220482579309053786014600025966365090657885625002636078681362988786113192299687392300058067366483479220713764357465923059879821226693677624781435019976814664726610498587646772053539270147852871786390961263024191286622350043178083600982895688604046034021506490173676449046386170662956850506404881636044719534644347943737848738846572049001106718417006777322546904452104192213109686452313687038839235825851484362560013457576756236319043811803885628173419696861728492844071896385720006502171500108090372254995345598091701169747938646597153157460234309814215878008471460809902074831475664419525988505725818424693700788942614213591131462035605058811494011161534163622956332554572512800785718005931926108460167833157981819106727176869909158015435475663778451813595243554891912621845564846374921978227764736575715264510681389632318797164185774389180698991712643869790110715727025147235615142191002812612908973989317361050359042328135484160549183077411909477346700511011505027400599181624188000506831831275503831561146841201938837856622735572942216122804293077932767485885546605212038249639581379407804729882015651783060547121506832510254063085934476120442738891650232452166797952266929757779672251567234726872331477709066997509434157417328049485936374858015248874294543634643746756124509036370362951367517616574583354685088022888941585373841239469051401076459144355109141452448786133977646636370278134139260467522696383285241884468514520435124370491265787445710263978283895251268983150026897977532077437163409800239212303281487032456889878666687201094002640034513267465041421963204834779490172408026877025947180246043110032751693957610427369035845521915634244630210538671489577291445954556765847669587461911260532900890895783038237119268146310625405080452927683456945343036595974252356124823261122899061655884129092077310364619471510283843945118307322464382282233856943304296979203947616816081077360139436719735813953890549569809709753751990207911050354904317576220023356369080821952690069442583876295871444723299372906354596331499127309052904766177524295382662133267819890677991852713156841327697333528517365383411921010171928798864454754284079856769617959878358260171993634526606788128949783227461494219486385737943321135504724405371581887891209440429617317410398273877477194409421849940753533270075549569732832798510920068257728498861809058591264077705516048488534126542172326328449621052398713337553227900146869297947391542658972595480500137238011209117036491587532668765774152762617178018718640664738437338982098356888766492380399947963071540366840136978931550254004873099999975339923783487089433338468109467701107004248157020669430350055569219600125485778819679996588934945827544007828102406739402267826041886102993936664007078434218222454990882231966560958125993489338625934889810937316934491029070509474675299767639518425142347356968666079410588242963622288666913756673470644126726744255930190168841921780576220784680322469398603369862153044737149711297170981530227767394048933796190946240050527306531335466259482767324703303229034169552106533496918383503336692722878812037610756834748135642100655061644663308876532987239652754750253143624705259233382594163704279419217416355556903822115375799620553983855776169423517733373238386777787910040578953733714761870637098332270396748747806240966368201498066872775827679179528647746090353835957064308519630546131984636682760320233477207361767396704645519347758317881073079329514808141130045798786598523726231739211184959874515351802449149319347273790794656606439606465321521550266442807608928004259814697667562067319741780107832785434631393863624559353676825423442360577721502397801496058184141067152349317654118707651374787212791470545310184679356346170593470370105404730001893106798614733043139899385304946504858553729314294214693020413551959413242609013337770073635627994770650957127350240835199443420962124882371757395285954960761260996047388122384956710532739695416083375822483532318542463419740781556696237156485219422889898961249754442967961328479710431534291235278419787252261062561653114774749676154970875284107055982125102405826280889860731965094087372478963790169324444578649337875641019771088222222865600580260105618244593628163813758562892605672758349482434675180134751970025725483946384969437587290211208905346731307751707700968123542054301166990197135695268115393586423912421894867428762000559418821528712307878316384477619149800217904147667735886081404350908650899455278093932043584318453035156619030216102000834464436753182859276629825341534638406678791658795858886192466090138053211813565421126662858082142771922992119650993044437577961548247299926599827554767257385338938301618699712641197339482494253717471571876078579113972038858122661252276928874225304754369953257089057560010306700120173805782429551717923401884660966137773909730128639352506397068725899836073735565285979113445098661154300002568566637666989063075723517404615025841733052654981620918766368250317067411103815342821898063724624696662303897005977632408086198840822998860673330609659671105147801017965614139597631051237009876776133592999153059891529794978429629742483248759122824856364823578399729020785596065856354367686543006071993006207013976720949265881349427874763553360504309461125584375189659206392859093781482681322721844769855587048136715615559657176343004002658051426602296342895682493074863054295411373814510620206053665273651837218572409798759686012111012075191621830049828009119462340150420810720467564029756687238274775396432503695175519222453605117831405761699540296090641193566257760665527183988217949585562576935165462153486688207868073232618764403864347826011099998787818807048778956282241347739072715494709782241743840792680387060642271662853569513445532780017934371297614275311729120983030897063614244061228623551738943983598635737378160570097001897488859365786191381134019034777910668004011231960879411317786395751462712031452208466062773356609785020716357352197328156070909600664976892295238929155737249551779080895304104453413508730140785441382241095301927989131380666371843494794413701702406215486628698621903843604340375129799704948723134893559500163267658011806123488477364446368091550404256074973623724796059949250831200221663671707153604673889388772000993221659008480993347575048134310856249405552964266785188563220465417632280808492558934444929283047292384315949189325650572384800980297708981771619900892883428135657632932469913808607496596527043928175927845785633778456479002998966973803416132173125650022238326675546500583115235134321872028263296365947177619292342953258294916340397646360422895169131944783042052831491816915863465222718460332829420950337345802686298723457191614285117687133205538653471245851563480888765417361119905886197460063458117611898916983467493006482779912173606749547721409744708324476149044988434233149621749023394775440094912375406921400098704648395700062651163813119273666014374551345541615331625455128769946012162157591536961987350759511758640231048309511250656042154313884916848773353470289605007068494755412391866059740786892536097914918498122225653090492521753544727661872217300887814840597027731879701972613818101856463704075727364849897071316461293696092493705641468428612953055790200726352442363804787886726949849815189116083079746657450783658402002904827037984568650959676127815129179921655506113257752918897440435475286064957752689596023307483690821478140604511799295140112198781020368038506984208298970806813078867738801888385447716056825881500441919946951007109230330978012205046038172743042075509546767499386476226088945919210434192560348605360858192570242419491328721429816958283382676165959848004589788121307342938304717484343449032395755827166316761995458059384665054423925918193146420422471485827970773378526989630463158610181152025959907160956048241257176829408183095522322206583765436052287721664683116609507401652083525967994705367661666970457004014286672271306445710906205513367119267478843131915033381921261689280479632991870654371632021487754917602767833220447025975287606892850858932075058426442720530859969175450461921361941992150546954841096436629289648658271170635731600834104039449270417897909021898980890955162774974957866263856076150628092188195814081259424176674531331347391757676997487432540572635022060610347793395695765196036853520683514051929724958788095392407001625669137219981880175349844162379662331302289670854093686427531960086220915650039112884991468775961207023505079418393643413153708290272220394160582657520265246847361163786123564483551856575075443409887550585511587277084918263858717537961244751397999911129406367996246103744245197074253380636358271531301364623806161117087529855193090384470675748843332901877124138349552602857497133899170380873830764009258509604281287968482040431304236240000565280194807093283240279287710692305816925267546553491516097240237989913704677151797211154979371689251388286632369467097351353572022486650538121349831795311549366240150967420802692555593413181302725855924012440397130967291293564778722239305867318665759663324329634609978634867791777081635292586443873727428120438071695308894032437746732035959270881264524532081165691836132482009249626020201492775592059085490357006254125327692770126407815676455390365174274266547333246266397487811183010411690761340538719836901321386570014508209648919553994865654171330971965113317047490608124645924729673959622423098303665327518577173832174952466827187318544100364503419039637916052606625980972690658979330771351276249956572064186229190014749241832463502979547038665618298993568902301670833417075238161636398739504772534373990145570018377598246840239344821308894969191631372987400862509251042716110496830977889144325603997643354035762452878476127400520784650488590243296345481337864834054428921882205836909990422107890636875058432044124976598575705745160392915361827790521457032158471051334380159512898965992332633269861972243387136294415174275294880376345759171160849638055330940959422010347312201102140215235244650905859576570454363990223488774296315107446171075515995946609586846965186565125583878233139457402506095598922451976779575924204236257189408969010943388092370144686931808401290072688772042906753996111567524350265027566042250971890688485049791766348459788385708252827680490529785249296425734166048759130531021457816931029885769332168519888446816490756109916967623455121514185506675782434547689888776737890985509604743061706353124153929079708288553550680485875302114519829438942626606124974459591892430672191267622959508174007377523148788099597028496058964740613634479586968687918025161534136336016254770766865843843670289301593530557984437038058483197966008174750966896153786529936335532855314427278005433168702192884305601410033225578816714456149644525574199492226154573998826745850019412818678805218552061135269021218362182215946600198262945783397593812844381996779310075986268054203600026526828552268146721464798722850768829822923492150422959878603906295227831287462297160094864221748408544317786385630903155424329886333090486476631396601880781312673953263305516731671102251004245493567469698715448928648196503315910171745586580150781022628499806548473527873288183084826417517902589567378758713677916049532822326434796580661867264328258893371892855347905387183050884678850790632159600979624717885992507525656622443739113320297170442490585110061137094216330566302620147633197932449011805213644904659981401428791212870684480406175570950279200823360162335750077519539067511788017773595028021561038862366010852235634451474581409893116165240090675642983626558886167250108594472342271559303803696635816085397664001921918679677359200743803111679110506090103290312600526889814190931284817470610114984319440138969198810088000865872336800665126403844663455609490196650371320611976835650555160339180946284533078329297402000930681368910234592300693514087899297575777791632570819372274973822701537309391446306109818611366186397852767708054787460170230294912986794946781037424848979395738125635305998233571506169230833321272105180263538573094542150511436220281621858446934580697901944867752278065044402625235464709032827592430210202765229188086984004804472957231344561271766724164705958363437803537673661408452138615639371230139207733028303291016583633422975626313682606571086085736362525042565787195425892414364143634489088126267229256494734742356510895183418246262662492289204423764934712759786083855868659091368360440027281836477222968153521509109838411787219732817083332409946955698701512872139803469796545413155205950442283471241908697741553022922720757063188078813856057616169970660205947233059206102571614840157365061894577610680891473972225596618275160164246163643552658648048699357884078183430878807012007516708276166796180033061526817186535315128684265853566868872609109374635641860059986375115771894679014768108919032518778870679672698569088843658907162833805598500096519873486803737231880122048138297436522197848235476326574798697671519908108803498397423737267445758937092451965832523471346909491704637363934965756813070318357933922261028918795080726485830169176378305619352554404812150949334188977618312925850854842650175499390977706373636126319046803643724549228376983713484635620035488923572920260098387217718251653116463781015645936379284803134738816246779078510584499115867131801765593274704256376611311903944362867391045883753039674828320215863470648809494734992304272554567796509223000410903323691857641495759365206876119257059069185552515654923782165310223628214477875227375604317200902462417009601787334305583658481399608174226089490854917272956215667892263360899839821621484647779860591160220862180641612839047019723863811359358708278676465718657819251381299747579808723770047092753236442676416428769550286945270765455619358637849415498391796653494493500984805781668575528504051136427938045257872760446334642976854038302220148977622283311394590300475535336713774497475992748906364166772512253801808017577597796328232983650827682530167991317128691514779028015507914136926224353194770354321640270449400570608068474343315665726492918256197250574200488425164052928515474007389710232083252970514839285636318152159025279962620058435298199528079790610958924816260731173672444026957436697740101573350314672254533313713217118765721361955829943069218280530962443966038224521241006105247784059321357772622232705036032156677609684651410136001398415403269996432942476769742370016907797054038000214315770101614225173974319470921225079103230455360287166505306079470603937563115244497437680728352987943119846115419336512170750360667123381620259943928796597502843447990843231413830599535022977903079523014619221646852957354353831117091639322944200100603013845807577166192499871101169618293606931222598242611215452235921460657990271097831558564186982967034976510749935821659342305216703704683629470836743977273285756838543025960895609384129491400260031698385930876426327358807188362572757269765058201067511582145546380295287938094545375677010556641716352763601478191315090837079700170029375304939323483220583849182746199556717889061251291113242979252476227702602505176695547842999489944686567048337581632008645237023602577285000304406819774172430134668107350264659673972427249108263947731911764224736778959252869925935994775284160248822183190895623078168285790819138287649954744784994301311887211817393125661376001656971863454861938272574908140454066204957843629320533998184093900117580374504221938133839542439489058963739751256748980272523962620476874862676656919565462758665709466108105695636471707019003158277606444452021612073412062541573795361226421707439399659414652384322532534244976337528671583517241855695647440330360575177359558320729812486682408330899859225048014055923307664641372619412693876236624265405383676949027591804284098045447748008493797690843987913171976375725297917504717174585007432678381969193109039240769388013869931688895864804835109213384454663459960015870270777410668013784047919677520395462135155128338588902135830952942106161748942371688008481544330724886423775877854764833394221106356562909151685339476821709153776909584513549642102457648139487657432925254368882206486201569764166312456041263840845830136622662040020639736841115641146922114709851094919377341753396408962830757056876387578174030758222114449652379503032376671332700284054016476817961180883559685585127543722345769508419863214767474252091023793282773547211449079564170448274570954578851211956484955977087123516341084544427705880508234083009621294536566642823971690072208394709448942417091153194655616264663647460825612162990792703221354418486369174667344159498019188913320451478452507969453828550287836865898573840921584262218876576820598330175223085864576754726233418231942509968666096815607327847348992756920806829582481903866054641630226249171030003806632463743179748610068755783067528051761272677036809994761609920622339977404994173347633137863336996524662073875600745135575397167568907752989188157518905195288137632694330765979982643108793995315802752372817255506727740236428427516592631407968915878040839697445137845552391713596484833259391217164843023158623934660714312619912772604406769227433139480440781991233288143200214053967408549452481180605483095495687115485817403621682377616910554882782025553800528985678662776878855267654145170110097676053069209455536803790552322829960047635804335663743342656771196573989261843793459504144228663038409271677158302152393209007424140636697257392287230169694400375022586075987794947853559965775402092528431514817875428814814559511239880102290473972915407769983111453993260314999592005621940864632633234312245867802056551616555429297982069495455367940493704580405363199394448482025026169525835667035496887358534172840640323480083220788443794162743588771568980188450877202124963735082394247519053528425192814243799038665442978641797388367024532941030624916944852377034612441385440787484567571529840410799848009784822130216219182085526690068091445116951555527644641024178416398030963950096111347711767326468239009497661276141397133895831438668979319894345867223677452550339231470865117965344162797035436568864795979625151044485108602678380852383680098304488030478217649022582113058225090595458743065485568398629971004684256377775579808206942722868047580391067430352950650625328504362507763462634857151492586872912086388123351642617673781466105987572356771928636215086722718421072879119133385853756008030626082046769860825332929201665485154269762255658549181515166205732098295241530238760790101172949488731524355108720161044815028882957093120884643805689447175190873527171857019453270149978569994501950098336514660048942159696691505134158816765743601572305058734563372687158868058068317836181710424485387481720878622338651202258001960837893244878523156038521717872906400134284146956445116913722163576636615501615520702492985510862339596568673961980068375926968647140960370127414911068332411020147508768313555100002138763685196659605286152147501674853420538115132858224721025830759176960987052103901091428195286701345861995168574542380259333788727632088433755452895056134013476209961160617860414932157557888673046198415421201578955144389669611178644997517340604363039987274961990481544731114427931399920292618226746668740556790336820297969927785648837963899809801316493549110946465702946832181877184750079107685201942929356140150608579406012512604137548574344719532260242260173990756017198954329727625339864399826357548918858331245605911247916744108649210509209005562001918287572163825943147870298729754626479211198257010715323931977793972443101751116325947363340628339845636375409184472950118523213180257788333345693164361022534919161645397144659404495956340010285307420504040959790934259019696977762951314284635275134421528209866639776050809354753702346049268534667341681263520029039540356975860011914784295581585082336364184869245668735526957172099637076532556348325573423672313480273597883832483314663006444189996765663333114956064885720345023513471507545024254260086995407195164953422621692990338183600159906423155172621494260674038985166321103883972309447301216026120929985406963758335417023576111769214389823400301796797480880774762228240461582218752433253756514129548697495386241715215537234721673032780174289452823698364861352865202291172160329043968793880854013826531060008228161545470282841010156450903434693878513652510421546005599192297174207008667530292057528495267346861223076171530972323480018366828101504958594488166689779998283338798104842682509214662894435537131602074157156500790835537594274780854075829939721611666106287055329589677103898356937019458005260257758989178088682819728194418177989614798066419587303011956046375370343714232700928047826139399378934877392865144694107056924904633885871831908311174958426618369132308535098676851016915294797893794115203992665769427850887233349608528713301115151661078724031070445895760368624375675159523174648093092092861604492970825671300696958221376586756457876633796575973481588580078965009536780569879328071165580157901786269859670449533014474906855147217141195954378406755933613388287982185472331686843707155632740439808593329979007716352214897591712353004405002692001406928121918886625581839700653993844763375639037818866404162094965915724830459494117601532756371187742610579552540760654335577631916089767086146092840207452590099855734286755152149516119348647563000454818065631023033281117031680521683561810600584782317720660529878849198050015696743027711062206077358270357149223669694477400759929941626108650625664125359998934567947140042989584614745282937391843197422426486394735439259408782317412309300473730163304927875331510942739929154283339948796295162842522312443733641500272961546731991895821298711533538456306001488116005673128032770764253507967024429207771693745162645993371475422161370174247231123112884925361578249290510183611795356397414881327376068310244383544327612418050679159637369712902551953944139309422099665887347629652720707495137391431245647812320217341810417146477294014391238403225502425354613610633377173640673997770044392488355353251188804032900233634041554050825273479733310648634436612597758024133247157846268859664235259015576931759821263311324420374145144154161006467421540343719607025293619416120988116464756907773181521043944944835833004888332911287499666589120551962585374613705601478968920219085945304063882884461608763861355607418397363013063553251036860251155326523245860442037862204479022665408791121680167696038105755386089729168809669073832467382705979920191328733203368506048011299149043017434957071256235727567785816236491638897906793560973769720311468287905970954701435831849765911166816261146091551059709408239246662027154955393007965736516178123347075377829837632106188701513296859996949362286563890304466147381343512151600484532828660984826884984767650048390682185793122160846625860433450659540749823190615013704115512978115889724115753579256673613978534636514143950797973954060180060061214816527447463801823666300587579381327665483584410027838331486377345958843803122616583026460776616270238973619778875544901248586965596850498537965631944758803451087960099282578525720027914112491814613377171884332387309562933596040863832220697437740961647962677682608766441175604338492822754609595337947122977133037795558031200553980812780514110192246835972140450169022848997039791403766844001249566397780886786474068559608791240656540702771820587073359228676659402544303770194533190258963601887104700650129856009741147451019645844283273969261477008253133616038396936903774106925412381342698527279535843429608426471217219429960566978066998346771391179505941974301084117101340491524179959423099774505345733246579365522307723195044438747811526201028739277318171676931340046326547645800809928486280528830379067506765512897351569472883816402985241242836493440744454956490719850234992105473994190551499649735874836475385054992108058622672989661322065312148267365485375364979667088160693150072094047806129714886100636526760890839990460433731574685511552471997968777732672510658158302017179862227293438466175834994427773646550629711754373818498031795414430862528831886242382836783387808743654232539137221541641257639269544363761174389871716402770346881399927527996655100305156608990090201596175884499280705215342932294112177219314831488001710115253116377300299269197378419279580691075884475678361503064477693307975999473152471643362230223271691413424306464791245450629546067801530819107510071226566159324499144876406432809890247370772584788561433758906600839482129808969929079555106851356059528429459436999621139214732971436574716392130916420864573831504270115592037280083972406131572728675486003677720121670408375779574868950581378207845605757899474520209775522966708452832531225914258677649842748851214734802876978868366008006479995181726967326410339779546958277385088535644752687868198402450393967630612224806705046601971419192220846820314930620309549716726525070031793419334112844131567162786627548921180399107162119779703714241936270963209852640629537123125909590559169393449987335872800914981662850785427614422521040388881215278134572031560061204970166974675436786732806961424754428367373422163414954438515667536989687992523645498322485688617741186397718077731397199558862483105017889170279322197014672187016967746720310969480540679961331878443724620694927784383304800756307437175078071537197520954665404582546429771083110044768957970303068470390803335487084267109360314663890253330792751499427813281017575929306472339636788273007841909384840838653371346907909373960261230006187040306647571053389510154557967400478465978525298163909052794089626586199129500000306826774229154879920658919079420728123770428366796768092761601886828810086719274408216851565447958315241693935675305781666251950977353330067833254001556632930912043803420181889051215124405280631194947982429934182353942407875205345614764130272214926135762166127955054427110644786393041966177653876792325829609135385444925746225858881253912117727036958328335715939019719975178287446831818119033816361179862223984884575195841332992921486958752332579013433509353683651469454919938304657143371071737951876491831882298367328228476199727275460651218846631330160374833085589185864911874584489100116543822081857362601595769245004064124279419851585613704038991979874546031849698875971813585330938398663220738985059303711967993674356430436826626432975138200297828151195348109765504572857367461177116707834470472740368764078420296635104315497933638521861137722066940492032682021925050588623979455292293395851198304478274149514145762625899056941059912377611601078669455777688536568173739039395478745781986277782997631808600382838906336320835179748062872518587651383802093025582433698052299773023759554524131462782182183586865006831502927449854076036575705435436109058333079901226794209993888005698918013729537973877270109363497074009604325648869369855410993839480384630676916012076346083186902250876741593831972489154447309372189074937890738297903223134514856239703671919827285322732529644242349320097455192711884331283642465755687235317919993658877445598455265342998164802112736693051592947164213264669686974184719861290234499602829705292475560137196647841035213871237898538634862452817421858801344668318036485002739101780859088494306626488055782883921483673266976700217102702396581098105789173804900276711343832631383479636406781652701952792024462159551074439094056011339256618855970909204795301986242275532706651986808225082395298683864026762432864476813179487116343491654641995753284250881791642289273502058423048256370937475062235891330382420166305079325580431449883048976162550459109372242174367733839238339363907398001022691311858248137886950405109221719364003145137300050481877604313122042438782952566921985461848700431675002116824497851862202749354453575906767445352430807256553302516084835206174407018233895999330077485530301292122107596291274040331114423571135908633694338519819240331878822841699301113642877067980633616050417418266385446970033878768594797786702157061816785759272769540059772485462438164747406413157384886316729956683475672888999888279174104117077845250727871910758589952486396665764615296109476210843887376377857499662559067342542421523153433121948890867064700353736018047515538420835125531740491634624127756101771471385474559539671281231627016036398510308734166603363676664951356715673595889057396014576571298813695275084490884955338682158727904994802657513429841853558329618392590048233638029895495771709769894809387847671832958094309209870997812695806292255753850491307349030364919523729453653076148868686167169364142714218937383601848962695461323782612961358122127122829916736949629597038362778436822391752396312878928648057742503518999012581609482740555993629260550040272761733755801576547103242541151695110240648193505679760356093375642851505975484097453618365397922613453091870226216664237587901492797184590698448769507389874128667073647068812512655652602212633612646674392031447700678701957120351774151910111629298618374083049576705512119159494363478641998077912771126433551580297993035618506644262796901992388204904442398946150583093466434954929437318893661414390293652354782177026664294159457143764752577353825414436402122429232355929652438537970598190360165848485137597326075319651849533869460969148834030472447991020622790957331489030663492344619093790923064930546547589470419131288644385218000105934188140889510197469194312031026758180488519246265866730394961081777719197782664088470887989792034305576847532095456709675446648508360025330213227890349063266547139436900597930132333251784118818199047167214660061824132548883087847976226145003090385231091162917744594608263255402927571694821832615789689947335993405702144141640855177543123746745229056372680872408335130088139447498510752042251769727144571564797773828019615580789939383092076681532886493455228643699037149248613149679528677052502077782741922968312574529703914850542125655560558385430923589482668994775644510483352907408374423898056647097183362413937916761480384460063979041141122984222109593013654531297476804573477136970096900183166566530491880049828935079030898266045722746683326864597601950849946081715758490772225266883153834909147512947761424965618933664614508663431409796015879247302443896070392223200989161734289747661483820343385009235731376978216492046418669582568468002327386120733952583316441913204119219123299771527336958537271246587899575310026079245832715376169585325517748918383675928208975106606531525523364824969137835239091998408253568617530452766893134776537708437151569279927407318228595707317507253291276505840970485582546290608882665687649112660526738320281009541018589602751010980525146450759633973966057514218819933718955425124897208860209663836428835481675951782183309376166122419148537557100720969990877293729657397713990477231236035606898952347125161807448754486228258003486444130821800088843721005380778222344182902822187368791840564259894950290013726888997111819683140378191369527123276716892926972521231105223943438093051600727474649089456687678296132172630113242485563946808341602872204000962322358655680870115155712385706753866252670524911704945216939507970997465495575495928724450935786629001915661559906908018861311802565170152949903695898963452089378204423245293465046807343991321493469909252618416327887179468807045778713842765835881097528415650114598237689727907833340227832487500312528300632097644803064260167279251818873295679138948567001367351151999791930359230405787914730061186817463777040984772356808805215977238119484679686640647849276828306346954363408155796611097013641086413874033723324490188322695890614380237757398204509294043890640606530052807689118746169413017594411132467099529052361791065902308490911502405244107170818585701254095819987527761345433463939603609318104316827518022875925835131485867195161626519529644474947175005710928605058978322469949496386001493125071455020992770504597794645119112526608059651724708905770013257141707645861578550446999593614307399870664582708973294293687639529925622479626449987992419985319566511286222782826605102656878100274607086038215417732927169225319774459044511303917411760112534984600996283687933005992469918671298480116979806066514645802630418400354364024957609580198300084169914016559349133506574502220116745358689280317394071571027405856853677686581752800174483854634129042698044771003120140367950810939231948621986707842326803815337173777811032503226355429243191685806944533396954079131795413059859913652416187793327499392581513453057651383976681923804016083513866209750794654142145822124723824807016443336080091247644028999072488292044507490392663002364597914914435108496503157080097054545748948114686080740440284054096478529792998521406385008673712309115027118045424607961040500023523151207587478905777478288463327341606813186975303694731253897369776464058773520380820996890244812715998004260382067658194347167009256431827202295686793840553387331513446241627102965550554368115918428981975117210170054425842297214067368855737869500514828556538379206945072691419029946582078802888937941092029648949620078887039618656870578559740168594011786669805940478632155422815953139685463362023923244111019725627575765430631726853410709871953205565280586267500034591780126959309070181528410504284327020784091476576378928541868842422781143809743526976840117472653574240663282813061188321912655199576787694781894752699886554335926497869911758867025983200569119473006107032280973875584980138716778378243875987595994017802359945433923391625091365903033529262426123024054094273924216397401907884087444616652434616958682055611024924734228461072874073570612820728456953218759777436299011452594186671262455631591388092409839668298198910265409101321987979080583563037315089762060801698188411066688112832154349344412821596890532169727743786956740467105441315377683727490555215811787258552569125153344086479522271773402848040681648405257379000739954908357066298650211033690821560559687393846270806317077521962621482948431622382496384245660728921760095282851402765926763997981908260438425600992827034374199410287757628801473772168666627711095416606963265516627672246520572467043192359784318551879986234896687585327172430473746902790405494341796430400056769044677421284023030837924454913064976704325624262918916318621038407164862817205170527241315498077157199578243552277594771727105335709859862218601781012310240758512319953100621408007564032702365137006446205959704698260954072586724849209673690753462741700052235051795630928768911898056639508279286709413721819019645917673895516222459732904828555584727751330453257863075878508683029627594234037321940684147053128927563276349342357029963268985185997939224550172851548015376215286817645396632573103183648417328659677833766879409536806671105635097709385049188218798722210699859365784415752656087197202533744763752921337764094945429760659327196440771461154353394364096822600879535792753882059774254604802536801310872640700200870495237700032190534736847912744841169324443586598348433248491990385416550860198950049609396872250649623345025138597678971246581409055478592308198789423512258611301034036769441264198063139228201215067451973084415586861508599467795572039972813155307195234277093891144151335133043829184086763358135249778241558556120294948857180341333565826928419152614627428939221436799615876504166488826692425646875761264919055737638324793574637755710635641043197927836780303715135820782238943132552416307083237877287702589754048392435746184411442878653023351306414030887983441277899884383997801108181464094741748898361050026437013395964126417350870074482619601876702454097405414295117097458090732887585525039817245092130114162052199716394046707573373718135373958472523410985451440693071146970416670000215476632997267065183060079434461799531357728093662691816420556506751009091668898954624134653584538384227229684946848667556974648858303206133019936762420695358978649864031905392086744128420415541640299696282059570000993306739228833523434264208994509893948875040082595208486449635535321698549071634451627454826387095203449040299626204734906996999982054407001006939743605588123664172348811042633629576292775594542444270512645810367034094620667123430573332429852011562109454489637880679628639197132244997235370706016672418288375336084699855403938166770071949809013144143041417641955406220100512737479441395649090514271868095607048673870687692968749415594599464509837046909654112383396730806791454349220994243295505915183698704848616894757592404082236034012400566235938380064520854585455643476572209163443462545276221255541355344963261363643882267051352401651925541611621995916582073117306920927693394666882786450564414457428982475152838066344586126030698190466838792341692384256346892748783364390824507435402542607646917035947623206174971544817740110216758977865648654519952628354872622782201732254071101654092704348653830491678779900990949684726557249603991097982297478737722797383889275908899812948901167783758349139023970328019099786979363733044230633998746907578598611047810292692085994389252975664153299025364639460952732035879672823587349182893655231472725170905631701664961121788834498613587184181520710477998018865443185782167127018155265709866720214040234648016966512433619588346907206000467585120123047331710388170772093187537078611554612669607389385574144196662922065550058373837019941125868773173955042110127212584383198613223603938344889904113075944733834915459390268716970184763406152995438772665696656408764743455640362290638068484358735799206077375427740498902818331525605423762518059310007595661940553457693572238349558174158030916473881451618656098759765843377672326115404711035573328810409085797468977880959572757864119853821403590228169553356865700240174982853853929371731344075540018717663288159448025736292738983715677736835817651380254961950846155848532194341615334944646649957480136043843801131747082452204426890086345492005036911533729043883778183158648658445426845000827624876451746718480185552403099033853009544357570499287073025344255164329471824118326398998293033673126684101046996442456569826664151480881254490531980877378936240721812326318645445459251411207188643416719907007654553759824721122208394157339061566340811691543584115486219376372246826167737865607346631087977675730221017380507514883732161467506521554548174691371265904129508362483854343719530913139746655949483424808568245419220643602745226334033495549089426739296253146855801981462949870153823916747858634903481961418657667649706163339095408674307832479868778809622012559557679318347244987530506549914534726784426209837179733233875643084923790911140886357528569064136914375628346553585471648192780590570811545808496533111063283147764985442213186321187549325510517718971860990502751827073501072361542538077402399165573272531878414116443363971169581214011921694349231041777647459745385020736857998769209564203387987784137064667905264665136577441379452664876360329525435225713793427254470279026587559344625935786525108575011770184717219775978978103945734739415954942210935999159196594286259769729118486889994250175482472454598133706413487391347852091715688269871285225788072986984769691428529222880211362362534256751506431438392001631002820755359150628115380116485690386463142339665873668868353524350337821452099507530493484788064876137018885508026332549676480650125609068638453614015896836224141654365189735477360338573091822605096720243210153874993315645666980454155792255183976940207683073717949929313684122267046048804043565101521423674320891759413501010123290324592898718093175018936283390646294934949279757497976227061779494318002371522833080486697790555615351812661567188267651165326574172472801443242820393993688747179116794823868593164664532303797591004759971992973178845894847703824919831427043865260996743598668977255366542891263781813058963235611981834183440975194446593211466906394119010590947196335706310104563686960848860505604099517727588135509692741262545952416162941923795005926526196859530304206416414584727204747960169642320610783455773854867136616606144468391504439901566085615822961587492609797974222860433650972403321661491549169196450951362965381460250304303794727921715018631521960812490395997177747203853785800911166939716008711660457377192341164692627830380378884150428179955387945214387786457532933882044869369676921860523398970966981447418347929161928203356906971961442226033829824518712915478118968276899730450201088695372713746022382192740925023426183974542748052905965467356983884927811423927051577845241463711796491824090620424876624139032967463652118732717550127208966025308882470446336271909538331902318926322325320661535646804010967021702630907738545969090180818141568607821626849539768224458081354901185736164221763308896132878077682358941874503719379744510609203253663265798504764796111491257650106492322159512826149932987309284563682015246326788614743195198669254179816253029440146762179034813876981500647466589705114964742537777511967597178930587636421159849463826860686593888729572740289154994972343752637263136271090954122654465521673027087079105447496555021184795213692688907520455012647143949301913650538728639083084228959778124142767070663470513879571243172183873180255791031947347601339835404057686758021007398132888027972930078120077695870556897650972170314541912169858551009837518518075640254161995020136179744523783025164199538914541492374328251263399485315041222541686666020205638452697969827695415570538236529366190340216896805146737114932200018543153962499720498020699274715374257194933856575340581597978649845427157351424511990807088904461177022651012918101645677956934049393116786302385480827607789284058770304628839157401887706961671123588109979462114219416420799839940371637362973152183582670138601610809566377552787650990048868514958501708851989314264509923537442385968771013466638445772674483667425130252559409278342884795498067390196885467750242612762353915321937674802541932766814783259384365760049698394481127625052496882977346385356430516713508486946863811337053432298966810371762314674430322830042051371627906809193691880208511222760032075957628927060987807479405954456405683026088715046220374405076548636468316605398161874370573012099851606863083198689566949569233191524782301144750023767394447159829091402964345576237199639392163812211325700617628938533910661468471034991248328431804459207867194629376971387122678549036874768100852582340727912751109054540006290972746478765680176062462350192907628533644331891082396841874138448469607582120972961539157740744068632110606357252682558232311852718026650342594656379690908260555974809733710658700263538819911190022810123433056246006746179180523015432856990401135160182401848334296804861451736725834152844503792013992334262984396121935159404418890263559561985657079575371378596064324994425178311455179789789083950977116531250937054417534191917480308631496156083304202743468764860037313498191276971296883171340451333898752588938565437163136467955467973694589993502187044889075341490898156819248554953994083559017898386038553123175087633439633976410342880163330578218900937416682758960000482944915576480901446367155079533243104848685171229890400465815246972136092136998370369397526652614627508976202402096926169472810506219748326025117791227842939328670657196733707515921407376097013819325415159489013128994254049925878078299825503964962154253869363575956312915395861559042114197620027821212381958876000767528162710149618712053821929100961556194406241888763459752592174304248660502216374308128176990265842802502188726825635497794102934550132839245007535790292551405865492677486460187405077049574648448702040739745720795219624924856519807997651172666890144584874823514361928707259361918091697979111086957294974309640524298224268084030896731788965622506246445495333424122254256624244641141829324934575262493417966816343184152159674784676471938758774439339134890131646823904256481559901801535580759286479522177270977652123073725170494878442652918632423551184140630663752210060665081702816967221438210823220392733124639749052481684405794830497924299233394702849681594487962714895336433953268233054048108362121146348686257330085423045526795367926130654933551782823200960659427628768158837277119947370307336195032330541412724740774469155761587383956123240550129156565470113300771042415063900525594581699489691470976417280342567844649781041137905929779776277072085637612075319890461118366440679275143862469495319272853123362530369638747609713682585945761300606108795765156615872190574813568728035258148856242687096283309951604111862827985904592991777094048915727240449602769686638283153468542460862996905979850888812883842316796319265819101393123683573562435002573330983883176636636621009852740983596183289066798363520961136486877032585920656881914124502335877415071363079984169701238289043385706620000362331987508781350575916420515401805375628396470135830584942985293385345716583451169761663659134878023922360164921399917945789426627771723797809393537093934227996193700658285518206391683660081521195001961085625563788079334344364987819953217634100879417444255007715483620662204107723137146788160985106407454024684439399553187544841352334144689533789705893700249290582507349113258038601788616140237873894748775575497696740441450268337307350451076143029716141917388926681117974332211757310432472186506477558296173846771312777133746756852730832451425670666776356823040571958371418282169137730369864669920236221860545506240292788836228693237418175379217116245299402492292238773604718702541730277499827516135581258049945960529973948758511039803218712498089026774056962728808074373486068676153214152359609323165285732914638572431412291424566948359390412618885529661377336533840049551970978585950216742418040463660728187235624940531021069263511910432157267509947038227575274430438158084981246040445242324352396516097936352520534634108650805295090089605266833007349923587424926461602667404855904900891131701027017112844858066662996121208069255536287005378059927863197964623084878880808560083594977003796064067798005927277224285082327419165414883324854716783780068149603690459111172427614303262120476152557190274376975819524534540948863844607286772825466504208560090530092161768862797472096047375936841402884202345605258546223114812722975068305095950831633460993344290438152291584710494493913502728837521775112499196479191338153574489690817465274492908978475149624855466935828271354315131242590581160399963681916935084392841892780429439243028606771716400889689838297268939897243553824173082870542297639649927813707350599124486836437253955862056591571248366680209361881268709607926347466427353466418824691462024367658319061020622301458432817836267497407392564931198956703546815945164881276612965993932620997706502550274399086395761943306299115760017752251972520013555171340543566607639636563282469478174087048791239045882499233989568289478488226534257212980385414602525255469369393264937662171417669554766651431980109309706213818682035019918813043946383697013389024574758244158166278139735303350416358882045375635166080611269245110885756263854433756054795979581367740209720302637570648055919540248162247276018684143098117453533381306038162491525198632690146661473258689454633205741102709612047096959917108653012358908719302495302266958227114010613892019556736896904255544626079825821357482780337570362855060998852156176910349925142352018519772072572629605208155554985589363937848869838331104846691978745315212850074092726919062876821279823354009761970771143474058272298932071434957972122784987074631416099907796418423790865500312628818786189204980097376545419404427393634792414599109374686753255898833777677246703432384249638932481476435374471310044543558357635653420028122082836952157157661306034444322046180596065136213542284811986738002481641311239680598128320426037862198881344541750966557337659365637813310718313535192229053937954686895704304339011345676986398498469250695430714493202683453648186308015753679807315260736239498822127997891899537597976297889794038357083041839010603778738842684612179917081466957885061366080575609209724306423323811637042298772537646568658403264043356264978248097497463293733405316442861276796336029365028710972836487718018813144160299410875262004525688228932759253858286534750910337886439173903376272312552483341438203037218331283029435190748899469261184156469475237762342529601155610441607516829218461486781357977738969048044579072456249295094394175972347830548520295772075290237275849754418646971018259362703576763774402189454750287726429683978046577400872349810962442409515375770776832265550886338111451557103887812238703875820778110290898148763288828021622475993223061108332832892677669365885339307674079567441805594512747601143548258298664520524601480113736053805906103607664666611319293204996926439345226163720824368741572251211912397864314062737564561908265617226167470798127538069148614371656137389355539672669751346710978763508053521222351308403928381837236369783989408928175527684248142453404769044395995908310723333709970424331104945586749494864743354089348207761338954062933499313962538126884095740709173919660321835760365443053517603021372689950663862977168209746166781007180685616093556798544587056522037643895093994264593775438351732258935357327142621673322791669405563896444518959857081369359963584910945258516229590512070029779721674665328374379359398754564290373599460974385565254634340794266699975496549946506503969847279857825442558750532683284381261428793223227563338902366968230934803931208847135831576022086425735360647321254825586553538442030769887641308817407814900500771605712275070175538234338734072907773159383506215804957811850691748161263100788118850742316719533585426839838002316142635925669950839068923359799488339318685186582429591428574853721466338076993433716218948703951189403995366611744454596515450646081842029206203961886518868590798500281869022292966715637948865351595583851827261210357524745751098054233496908337264006829020205847282760401068991598347121090482888537514539540683834951774125555117749274200735982800267629174245043978963613607857409582434582494031146410327458679966400935903446593101641513162959241470190579179066203097583994155656181826426251633343336773017990215828665937715839284598217225538130089359930015077935930518950365643530573584478336591087482999782897684427353417997221664289555903179136114188023946107708692072112773547977737372826855771863244389140132669203381923974012488131210261062921787555097661678708198160924271626811516016210419953674721703603352778068460199057173288588081802877372240677151658093749299385506500061228757979862471393451211643651825685078245938242840074756871033917559305448459111313083464476289379022101584282519783749084328678246688683171551948028409132107728180100254042491745931851631738687451095272769267637439524378262488498307530815166743133311323085659906454326955903364548818142802752068702763863477380258288604989837373260555308231032354656535713029982186480031931990049348218897053790518545821591875444788785817223935150226534128409970858954125190543603453644112265339215273927511690995135284820887237039598818156478653784720162803356821364087359035679661797791651023106670943254571520677732492615472234283465292612493083637972120750552947824391220223863344167050290154036864789346500131436913176523065749807404663122319924527976806301961807128083554623518529228565517238126074013723657555144131548604391130631561353284018543407976319919748827156276223580469547142071809662594796358009029960642887080288520249335229594026264233818715392811428159004877714030096042144674522931363876100191151753012379524142087668542525843786941832920261033412942606397228870260842334770848414343834703902831987164577540633041027413294159938853251775578143157512480593898611585249271312547450277096656194468246352059361171370552416040979166283878278003746937786205179566015943053932392610738987591559924850287537086419705125246104562386217917457852734681360295020341495511843614133723854089857562378268473499337080887746989362586450793161069652788010392423504440567616824268698773129354205510722185109935283173281075500866672157419636741346020309341217610555667010946166500383533403243998627258450352916652374843858970446011128681033914083634359241650071365509513408140711866358417446943134810787866519774524192310612411128711551297946166093598602412603910663237388451633629483470451960936150339424590863831638066039653472539337683943123699914003962425382335935285924484522760629238932629966867481006542130821273746102790050000224801411902709181891902297406903331433570479260762321853659222152165510889503760556311917020210353841965611004456027267819076615435702981319500158892722191846349687341622102688995049736569121841645961296542282510487802362645954478255219035493449548874866562768107626986300557135507798779786617881333065193774311260984681396149834407974884892637963661087782037716093428721022430843362702633762813339922863069584441668392832698676356236183250895576858746380009207401497641511730850775623500436001593030352208481743871343687042953654204728737477962107989279130206291502970703164466373650475761335435386146401033351145835638710794032126207149983106990923544964516539777624086397667936052617428982625836836048496756568605143487764372556738974059262869398084512297438784716791483867825413751130540462262319288060233143968046925353210181648476359119610593575039212790077130709546059751897295910103726250093139521656194828303982271894877284196312753849472204917327357709821962763131781713196939950841425506462539719516106361479072433215001213246043939625259008208664459812776828923920486899337371141699227022042304084786980820145918709587905122546693446863790826088302567549462193638373056843350546248806227096486334196184023531526835056136407300933754091959434251944932359612501617943948442605415407194622310138982927208714468999643438017647813170823377350468589603608672912451315705649654230424906362091129555942451296161353748714058557725043712655297294210695499611547596774010677440049894126631574260977859448812449756486384827490685633979209026983191093444906518714098555821838382681715652002730140758165898029616765142421940852143693831029774699553912750209014394633924017013715723413796119423602863695396879639962527820713401443640777365881842220456077171592643693650885414992596987551703748916197563749078518132547405926162486807303877609723517807478220845486271682061679112177285804572263453611761404122724331267624713095999041122572317188381547542193782086431067679809596175602497555778649802634775440696024399846514229161543355142303732267547329679909214850265904783589754147808991198660575070591563248338276813982868576721671426023787827977873455813654167265876001858669006657091902895345577350503833814520189274615129180871349849750888604167094848877012312066079079352263591155393605437795690720648144904948658319267314559368353065816127623923219197158281354941051697858366848686058092502356673298449108737076767336131683406473749578395139614329741653417970166733371686388899596303615012177980465295118496974710876854102332108092349744197675083144339119044539933035845600563915188869621802116019487148812417812315150492472535346141836157330360307895829460792117341179897324587418802644925543608916251531889709707994825902803448206053907254425831754150524317534817744805612928020525627092797407998121968774977680123251420896294950581477169691938524478678899072933926319551741542832837664151725685821454588873696705272849099475000023787748284869056664923999287996771350092356521955200480750991434981505728866939302415647239296762821102296736396013388230528156035533687651321366094057049996521503544430224953989410328846731219279041118126923334595550229296031495443176688961157574846001277565095858897200601068508726013013863801904698543427134108134276131397166591144099636538402595312621471591954659180566385954971226105105211688026391249435374132615288284891164308072174371994441685423393605122309085710772664245033061626848719276315133652706407057111108180822049134269895177487599200055768480935547777411519280579042096439136174025474545723025524469533875449047422771262905673340501637721589541528456963858005868000919835412835584672333429018136644884680379352344271538122484999160942177924491421116369525860745502237410051526553556157631717327129490865951918061861525443352583533292060887809682648969346578997687260158998776485753571546222324504393754417766729502987087271348340886128688233691161615583725404882079823864182708836982930099270797136839047806595171669699997405536106689268648675731096904608810509538693976130606746144924875332716626945643740574094184775259350736467980495972603292054814259391907016714235416793385572534105825373251822674556562248554385716340005286420797890804072219729887469112292964808956118332444475502629267447582925956553360919081727082834933502322232676724086951718641650430987906478879027707474968556650114437010860633801450447032425089195613484111451933847146226973363997774081457171006383151903948089258635562244687293086047487371496869066116761605292959525218276031534953285540287603505538379340221112112910552530928783855306157208481677148102608293682577729466291498395555204664611277487359176398159108583393104702106384995940930691472333814075188040962141071408272077190095648851378323325491637321882336588614033623859534826859968967937041227826436464577347025577829862916802313614593141862944916891921430404622362146576185209366968255765875891850307019861261293089286423490344427406337017581783732534283932169807349907077331685983282283329038386083431003768274669816808590953772791322120356390634221535245848291987289737731753897243462572482525771180828242941861024023852344785342456949662016461877085137821792652285984830558942576223384341003133313226912097412699906160856000866826752448155752241538145569837727500123114591225159754674956435436449507555926429938238963007058090727250332386391778414960353028315818464845338001460617120378253173459659147439673523422018983297018529352508790825512778897349132255826144627878915255703780827211935809172739836746536416228532770503386298561497195865049686978974220328335140934748425890261364182656819830161798493123419973540804818787269081172821627908940949682093546178094561298773371004214387703031926629266977599770413939919539079393795308419901420168537483980327051757738463059715036729040401639799258662508510553211006192438757729460066791523118440133454762879852330738663048301814608883718971515196881496585697105455131405189784965897596419438984538293758229915677466927034086832874850433715435287910507690340016515465056093701537634961369394906803582602324738644566616368083698227482418355177711746414368553722516414925873436919451593329807300717663708882911032429786877426344926481109051809436924699677822552816485651389962158182647744827296614546321858779906586343426359264128582195744163043634244084850935729714898923066622728318317974670516379076491964707613639617384700012101771315831024749036995202982117999457125410106559367607538251582187179345714766679503727046168498896296292088768534581228691084170969124023402893854114993463223514189080595542423135380209810374987497979121746820414312048746875008998957551890712835974794655723847224210306957722723145091280503960425552081781643809406310489002794695297682710988374417398314760451516884410509526681741615081848942852028542392439084945887270903641436036856142158715846754579650382838818152426773569686285559547194271342738172156037473762270714413334732924282629389694333034624716994846532292512598438725844080959359217227275774743387160988190225878165028086885587132092486772830369252612758084051780491633031180843149308191543889583499266665227525841548112254535298255800175521934861500603212620623889992169542261239789095169448171429969252195660771579549061531467665386989493897161546007632887656931120316618945996766909499905530012613110056234693656919719322910278978620357935047894641761896938077951852390849820758711204694222706722270802740939261852515988332613310611523515739038818920880214101180637947969585328731194070748928257248557729636895708585550089861127943866514884628969877432203292771281561702216774164145820900697650691924073215546581432312315101749669546506483999068701584867043705045142886878624384170520141886503055878885280195068745695446987781291013844272115115178462861864249134453375449249306975987984879259978633880465766569565654779992470033560687789271841294997626781052343673040540592198276064313527273396806355453775919033020447716474814272701758964122469188100950247558267080646819870028885718666403555847330523497899378912224647007810727833959875246907377619056925010801023823977673004006791109553997277715436140927559970621741225546297994959873952986735407003539921259283126172492928154680503951027351232690145383275406465286092882213891511900637451618423320561915811957934839402862366222396505837412377284895470253812782646999091896429585186836378999222322276411319224427208534659679954983136534107893060850360927535416138871489468599156905394867078665050437520464914309297111288959753967163794709456520050879515186973280854936267514789340353397840117330471065858646839414926444997658678178448450163015591791631637503268604010999749113799512526953554281719801606765343250498942378534289433125382734311824230895347527419127050179493672488181552669782487501846644140704959344630794933170059797088829270785432491925605701930859857680109781030762237597073206196531243403464314142048413889052812195768613051129614630618418224415911851991379133970764563367269930846908819363604215788685735589274444579001026623282346407363871101525679556110140026541494137125454208215153576804608652985670424854324138832212167458773214639738390502689665967143473692987872967401728022853941849513879627608045305818333453199673680105641693952061173751326348006625386915299665875990849313436951456574914645132645321964061731992201710391515052995163434946816844789363233073223806048694533997245335708157597891208618990906025014778279439297687939263106689815010332205612894414988515341851547809965093277216130597401857558180167054507566579630861375720151084580220733044953487156534143726903392584491758591808837334310257358987136503538545038873095067846231683946189594156217543441805370095357043762521213174516923739567927472142494129215953230514564987672890004180150087400727651781695903392543691060302542945079207638476870364788162563663327513237908183936795997658553515557239533963378024928985878155121385236242779987738000429198586532958823287312068775919336654961562934991879689767895240470809819699066756692729648678168899985347798507985504391419532852774489231067248354080779466148251635291727103181727716565402751476397098359232280559617485829594745751692660476267256550860724220531665239219222512879294206075709264716348787864920622902492863692568035794072084921434954862409217897246738418307163935690311357954551083039793458979684740372814450419568255766032683221700727780657626678745997458606462642985330161201513362609035296892814327135692868810537031541120049713283311544792909699818696211212517335774850573850679449274327113541209098559418476436521252417722330924278995839663033116600412594022187320810723850082097828523036085202222002858589048531317418883217426370316264536872658654761863998653505183105845185810067995683915265998756482752678179605561993104344999792496114275557157236198598529881000939891506302247845192665795730204372712578229719547844278651518572827176022252223603542284367106792440151596904222823767730783688843992649983172075981062539322868828280162376830782453310386194225663389291148865029397298920866815273261575375759367408015697588834553983079698022313982798015406683752489988748467664966480702828683303149514135036669081213977223147545242511423722413141084636982228461509332584516709920421752345500912545194778392490056018264287314945621015847108675920167047865770119339788862889088184579208859041533897673730886868835323041843447870630730352000060839780221940981721309185922886259823210582621647856104705875321911562083689938928192193965717913002083126313156059170243033550797090802821760496057914530648663257010519140778134069713634492127894812970006941858861087067500878039967803291926071658484872934532842416777293049755738754240637396045045560205925924193291632681045830736083995102933938124539214284959411825915990740934998157650154380693273238277076207283969274766541419004335837661124862677975750870605258793080800508493646071830346696399318348895378343590505718397276271322446687162383679333194070674329773661378998146694534834078893711055969842251333421677841558877267989023532514717266098479746656208685988302604292778718577562508602371199066213842557954643949494150869792288507393986125275131348868329756295133802426715240940049151857087741034263982639049431852662309681365530328381729826183128869894176227202916391684818849629993630458118696987547990551930456870285391608887158007557997971784440466455874541382967371326099864367214189485159108444626030877591860140033469677589272416071882131370059177461880711277511246085855795037074171220979931602812120550131425343026959152554537625796507013716493453056028361985683803450352428369454701545409785475062793982548389606160022268166544468111521712520652780314750429379732300711312250031291963964498659422371571242763879149588059377694266191160543154905437434477580716593592926325555389666326698925339909423223734011872613138957703285104900884220746596701463013488570403416995236643457115267069368247743292609505348689036889401727024547688921091345577417326462296637598322171557801535893388506619002049381562880254861100091380328527207049176708291098074406512059208162433560655046122770220815621497652781344022061597393294390611701119869512793735074188296242802116190966078497198615766528878656985449214275432865871660159494851497727653330137137090691774661277483407080440301245880498480893782064754306916042622878455441298484803887668853997567464514251747622986178189588096646714132670725483058084576717325630435359929311365863527661169379578776487554528087947104064123314789580496062318253406048746372175093793744304158523002391804090048026402103426675392829938895373233144249608734410213833229950374073288529556362987471008798377743571353879044681000334246760324381377495271507750558275264757931421529469474236715313457607730794778097189315616881637250624424549380988139500667385896082264396098468626485340462440246580467940169565576272933054274876331472872277148249798431325320388141406215791461173988392603209713234256041211943310494378964121425500925692994824897953875318304450528210128633876916219838676090725196586073421756710433127944731478204248343239422596050178891926015624406008290320217657954472908369592611799085023582531568996570111010008653505075849845273344912890998201271219538332231671051854263959508765808003571254468849750937426634565859039789345050111969805392550015496295453694702751355412324423128316767486524586626280190457170934747321096735452734251929071742394379972685475936453147169183871002911608847394835572441473330798898538230052354968561665572075618353333754578952000586423409405742253392381760631852469522470244130573358123528597531902533082610787748619844983145269739278526302039834707090398024731314577064054451070848924875804691572370476663357818758271236118004826084374076553269453036432412856024602310738038522555139373003922822584323275961878042415672259861145940317319154501641496278966882082122227273054797103217681509678647264507705239339923966270631060255895419592921432115999165084560254859846891590230920217527609465011624005669806925891468038903571924208651149297556356246005086213855049679910520147595308011699463181796280241708107052991627071459647762169714069237398207852053940457950005850511961009465325618846303651926680824713803955086129232758116722456678825269430626478158087351862091683932860236854532393671329202895168600693809684886695286986302226327316724207618323403049675316222613708745708370215946622064892687325748530882764289648099775739965977696360560418337843489208809547587935315617581529555228874638123992840085654577719198502394108808094834929084178015250104885469761699678833295831305570042615406716245053789424050857229581963774897706706261776405551797369134904431177155827851063651978883515674576088494015178319023938216263373826532403517058367319039408914223504843330838623520806447342660407436480357226554991386887895287206866833101239022274948106394751534203633763134679419738399830569708158313501641211588587205449239986688349049428195522452932941750028196155605819876492319927546949849418041526290180610048818057792174849276882792643078672740468348439972987832455409013330651205949595483894014404407813138694366516207220389327504166043919167669826964862587081493146754697169788162395691086162140895285795681923127427903187653588636303367934995762708653764254811909921474923861924224337801660824110378269945063716261192791608174402946921840931272570451986550260538257677610399551111697143931702933328757960821941799551100931576187064653629285283467796971421274701870997480780974213813695546578759270346500783001074626677882450297648544300452412045048043356489098163013073343825641627400636105628055868971708452878212391183567195424435583011212821697063974028124497531890868679159746093460374194868671266099221506210817243873640141787572712958049102737760753382368198745556952285137526460087295952158593371989763785887669605429198936034324812008558550936168872634982669418665412916413468885655177295724010665301038934371997770092960810577149854073540500356054909785502007399706168247469248583645447752194018773012702317542800261177516297764238941742920608681272203719307625266435131860102945520446645083848006427316517776564462230210508211308205547881601384369735800084391231342712112856485487796929719651737527704166744056249709311839975155581279666744639066561315114529990763934402942769835010010959368213867262674781561886679358564530901262620826084714184692218258202160798847716247202402220766236941079530468202574480980560860909319174578621838681342548134352372478573581921366865590467047845367374011080632949748061923400837516286428773082308063651221735966254994250564384761244433641642745154101459333598790907656491167896282399342116267647844216368374013576721695968965184834554649820245687626556829874497183921185087081934897691575126249286135190489875215316533685621224286028859456887299074266633304836440824591355739260005573979152935470133254830507774001417690039383427510428753664479169865968486871821605557854685670163138048809779837853447725702356201861286944668986800487263053902879650093656946544275966308374321076260999835565049001208911335564701846625371433804575628198974019203039880465403411214584325864634274879598579623379220703893667695420943097370851192400500163348946390514459044336637092700147410687104568218729874692382912721416598972623962462807299330680328957410154572810682609017646024024424349336334255410617316539785064050066941071073374481818978660487507184842863699642791348398434075631591615124147790730986401324832133706741408234895947023626333560284441028187019091758660864570368366602643393983616147918768568690179274686301174164286148844774272438058577658698614411398423911823012284156903735374676642685229614783124384454393532266218148784552903442124294238484448051812709951913184848019019466468068343728898655214829214799181110636537444922009676660792773686609727736882981550141467067383144597972570931902546019527235026931076759621172967213023665725943083924125472625834405552505582349985123598844778172425346409784388430107913180017939017470110598348317699313743594776851429992844786015083068313190385546912340487974668350378906591933378388542343921194655438213300966080929071710859662109730813728392506036102619399625126062997979020150157527897242612003426324456218041960784016073140954455707415982854018191669437439639013591442074910789236196647793016650278269003243347521908853318114263490776546385717423118816640430926752463347392808593727179001726902504463655455933117039830526103805400493438615599572841444744907322801884284862165580627596906068981988337088385136096652878629034850833749516032793919262060906725666626345183561865008697168882966876825919657305021914911480924005590373888120252236769993940835463631710547500670887120173599632777893843119539948373369928040211433038938647959469961789741576374098938105656459593290530935552686351065039570383694773040110811088242482465651861618341316912917284300935619507525506691796200724005002080387173974588461271635525025403847522684846561902379214267501116499615461212728639032047472005286769220426720119578058743284480808773882903422447894643142214029991889184794144224608915017204906280361000861689031087400037336256882583544184556232212489565406455365725087938561863636867786642826655838533182801586535112041243851288828973318361804798490765796747157601467713912310842269739983297555048999250471641621760449101702374223454538781935738117858169438795089232633267017377483891333717143222415192758959407140641538245123160990969418033957333258221048925250104061232708814979161889205763707185150854374943242209459327003440186591053678920079371285115979328943494977398611319371592544807402912459029244447293366826710733526787858235142040049464754817168156694346002129489188461003996548124516935188907580528014496990139021950442138533540463836678232627078816743194875280591225093212040611427007510991377025239868543071311942538313038816352949895139434861722292863743403083280780261318310770008329344655900988018164511191200216096324815578210452597548274936050492637762821679924099324429323713106099738249771043921340523030404509310133294659256968838325688752111861366050766886859585653001702893058493363867887338364882826417234463144407923119118706006744593532939453298613686018516533714111703554943806888647633088110965291851531102506892960570028173059511408326313671082754385678422453915761855272884498727866950652958560677392849537854530513700549937353993355382325197375950031025468976681271591297379859110005804926879073661578196766376292251692410177096120031377947866803765852558085269859810537779289973274274485596348152201378564132640592304780723394115024091468571059691882708015842773722613380874271511518664309152674422487026952364044534714368948339747269752670389071677096056085881652587265760904960606947583742037985063593480824296934127117921601844079810312550588967911604458815493409463342313589127794574899221200696287111493589646685273870152634880383074574959113318916576039697689187601917597043867212632979689399774730556907603430941944201260932316362949783719086261896440275977557215059995897286509372471831229753273323926800697739924718604489749472524271858818145932805868654449046213385352864256008282593549343426734861643273549138184306307473112178643748680636848858178166998189254898886336139953060702268192859428542323445918643879444736244396367532246836162954145748149926228797704492962750682001977294854513328696870938866840892227050661409944474704343085603838136939366579056948626886331737002688692779993440049545575869839969305666620328418402754449355463548248033873218232658932571662126277449341619065837801108965485413154294544408315432926157753824483127597150799926264601939437670522194004269927090063181314147210289711045614133561470852592606617624533954320668262349336476145328374331960007691482633802290489792681701032958042510810444668962595430279468616330409359179093568379052149708212444672979351705282525524783926717209880352867742000952981056452596162244312219813794326951376836818214441945577600487478444109690484608670987310068124346284314624212940796127297372181597038698062051740557605435760405052098779170416625658948329327006085186105973626967223639978531083258644010264262508038905489227487310241484234330810752796084524166643491603518218964214862311994519001657688469635111074272582918430512568012522563782761047294898747262574125405564627330753820365477300376686661734147060316652218214556807036769208092841374366349981705007744702491099262415162539208599461162619282675766608565230928383949071362706337354086940315741269763011548753375113061532696584544198546449488900013345325476870525148544967974000791613264662314738923860926492670955937938276343468160637447702673765484226149582091380787521860253137789049004445834994067871232025173127715228327897626640979933180183113647595649179039197537677934636358393509305670794356147125153019366139089212555580300187151973421147270216667584380652319325342313386631020424743330406102840901331497832933735273353602027703193471194007405029279588942162508428937022496779921354898203514421299814922734592237245459793318215672349747734802595463769441187447101142118600886758069501433973845831759170613862027576693251596305618681045005165666811976862565312282802472624711322968781745542103677406087192107215988869030200248634356752943840241634130259012659074535650809460457798888705136528646383336051664679618177577791184184682038193616869408325618389797962342315061347237540504497155552468311578341908006146502589227529793641814121418132833751346191114590856300437609852606186637068970352526733818121908313371458121073062415436394125152068455563341379017616280776134138924783295920264873624312480972239997612855714412437850319663967128620478324485408778629023123162710552812066437178857582392054915073866942665976497791950736005346740610646097106430133121922085489481696240594365926460182972862512184197850636171683236770434567150762940439929582013226505596811909797000861100859879197193454200318098725847603686427314203716690757266702295782728824705182487530708995674135805918194293454151845905604569861625381901404801575162344656478111756183896548261465572906521911208819020402773610636720855548121221710649791197897737248358078657712241473484089394528251961758545218592262996165585945875100607741146248697704241957033523662444472291924371934809508183009339373868816414078475333734722639241518965524053653951581686186050199340315363228922471712432208074990969614416721822278231560272892375258875585604922259222838288870758706733473348238169494383439223829260621122966977621100549321463010134180559280148587508383937140705723684381927378062165524729640304707581662790228110169589897113062016377921623270917727621469714552894985107413316275775062531700022031628815606536433778199917563305601784430244411509045116975202229877990341272790254684108173334006031696242904004429778090952076116732680582911022144120023300316108356959735368219761464369163473259917997018328744392369216697098186814260037919395279912625988733339971866746318439008038497057527214977910033044390355659389493482069840038568060108272657278223636597931153520810630799076742901824797329567660767883794851030287753799559403097450003187265001183961471334243494850364113332510774650473684853236593457514231697250117925977902857966503213916850966990771553942570262010982314509823156529429513069911629935587247452116972323843472850347616931191277973732477485066148198444143041800629948616608389608264000850003346616688507995090593918157755860043060054753417521520752944825835362927162541301221413927751211797787833426325710981281702237618763521338122700826243631106149452855040116497146874565392938989991767489958178671712881276766324273737252795203926038861481549595304587066849288767664882132950299435095668638250385362161965620629236541773943780195726936286289869920213295523538306747231202245346685896673438635858301022628627776077263623252769511528230577846759513783865307928242283363861464416421015636333530041699903290610313730788550195762751314314076520889771981380573529740199261576413433582056229541957156405741794251013411185361760427702522780956763579909367289009883374970608630643949857765308587098043278549629056650785750934841706803168773646815684336572510161769140360703734688213530534540657322861288808539167217167974954091429999392777391392929667391257765615843734721931902196311476406977872599437868369294530060038614227120994528647810906316819664609702682142631493766588784741455175346022725852265416265453340260268736032555961667293136510615340706038022039790949027428930647183848564421591471691190010585488817739426879405765049540376547694112978841828399095508536980068720016185490677683389269873430730126457723807011611809072096983601108744105311173536723350361571919251116534621517465610980513338921157287723605161894781763708605682698301582053053653467138451323538090720876076844410856081708118862782497429339911565969649380363253169922963551943768710916025721694924607223475718073028980277140260751235330007719616695071133955865785819196784462991790588074116673592486329990395286184641426481318500635512776715470510947246863788960155689887457704332093135379072415674727816929386464660995693092077651039111688476985462086745212159966149287694823161847444381649658984056087246735430234161073137660094559452092636785503343012529357824617236993958079742171563945103983651793931990107405797061502357854161598907810155612677139753901737028404907324974608775381454011282222735449344907809706542928933565037202700860537642712967467570612933491310993003042370455023499247801089412188283238772306482076832782883924235062600315291395142101285790242582495259097957681921747121635830841306331369320583763687328997077421385372287469975675658340813522601970119954452949648429180182159112359730713934851989083291540728464595643027517618340687353170116698436982996781703740399877470316118098353442825293919377980375523253752232164612360949552242722184050927662890204006732432509776470241708445300009309855003399554875804627764200242802732364133388803651821476406927213163717817949361088168627042605827473526721160904318144254705023461567459421932697252153519390928630434021702518627048912964561806582927031062372756339687678216486708778046494033433105491294995433692834398865747641144992175052488467829541672334774866717828952118102457096410526840834044468829960240611558200893185916909639898022784893875944427546786723314106150417899112825821811299468916502386715775852664283617503263054303373131473452674565977018396922359589403931946728616246215958672831856117541487832399769052092727613286822384913880143415174792892329110329873835481307677489185035917323998093258761592056511128595329418962411277875847653768010882401624969246900782034090085393721100278826290602900930042825514837106182521697742828717108393310164828103530660328025443450034101055488818796701711031511798306856758992609643568029645947849170138516231650885844493082424270923606385833463694773983435663048398885610094388082719755658488721706209245744635534663788705108825011954700552814845110786058695771957753750321933698528877054776874167283309661310175042313907503563343208090396487927318111876221219080925827386970302848823884760052879586149963961908129939203248425443920855814959887169260635213890372259980379467891372150275833789217084901547181392686694001678958436465619546423062258584663321065560460872262890252919490496435960728216475137015134690412014777170679708203633674372995750018798389106973093525479189853762963029538739438731312140241589692347085659357376453652159348340083251454766573139472185804986257013909445978080193625514179142218866726135267635368642870809133770660905407369707558286836342032369193839344699820798705152010707508829349010292885934114851523895571237186538253627150181683540563973381626683957304308494724278247855821594808408183200800679740685011244076460629052158263336210293542520073394601876257194902129795325357058155627224974026404027064517577663836374714821346055701962034820002414521448996941498386679313347538292663055474503420701169771039911123988571168415393994303656777808891384198474798353791179160380580765421114925866154918857794377645952849227145957816414468751207210838337340997643343824050548476312520857652069535243044979493668713573474623184510131635038670601552528580861865468276573635728214925776559692422470372166674618258792052743700182687294762931717488822982517102643222870809737352429303741014578090993724471465054514289700739950561934656766383318518801364332676822471562960790665350850473073417136716234922273010198159227126259137293725828497483393762586536255993975194060087638636067013836842033842122998204666191926811804469277513974843775166706706109615801366216014730365025910354546640493825328182479931442928297459396623237236219284833454877789926078616245544113069536367951807511359471262924463617915476027161488533297097914660030808288022115433865818934033812018787833240121871923351008677399814495646385283165085347010645419814706490876361846985230356917114497583666128780226204697455246568397782008715497025166154522063600808298202198995274328072566260969929823596808487605207557326944744288567826575454824714439005227133114826926446360256199888937417848046061408727324925359469530817956626595631022894619040440903270305986962755298089447089092376015478404425751019142312907165368152920560097303100794720717324378496482503620664805999185263803213725092823092817272716549426907990771592967162784781342717848232381369500726434558113717155772074330267962340859312875909263786324634250370276021961983114424244838404753114677949228448591010172044209445792340393384359445592786560849507043690910055763698769229827454407707039015781126766568145732758543373323986250288661803801756326988720639616934902107775694279807480262308643211083282223897647166650942228162521329773513246735502678854860526364590306783703584421473565036086661707662889643533392059436868637948919716582240351005801957249827715305153813300946719228749122715986222994664505889512045057404228674890916172891164034047332935448727165485132538224120586646973084965389813352449614640995210658927623578543799230526525208098479526183537684536797802040359077376993094708000413738641590606733578276370644752429854680266686146460980493098889490101594299650487291120733586767732921409016624462938036219089285512861589866245413865513279554825740591306235098947347986855165340148255628848279542332866176403723197193220370427571541651232715223970483622867785080634315829631610374902246565516964096862995937763227869118147822889647932790929476787514934677066920099190385206314817205640774207039897655285320158673116223799046139661408164784881017199244241217053570035252282021003490525997183384679417132176788721172953304556634836489998733476442478668376066611519823755812609095745914691318875902865894107214225600959097912271161305588995447259225321483058536648679394875222722051999209089712892736485713880203175655328342493693728108887391296534101630816033893400310692384833578963686802366583391958333836925287459292850801322379863247157825123073871370286582263678927355747591416283198122173792778740193304900593586727497336371930333522196535307605560833259532611726610919209327052245276152245725005470221311596884644447086890606885360648600185192720683698394181175560373005588921746838173730517632826929801899319381560727516570049214194223002332123579300484175404834193005440421317850327854108003835369648812757470742349775572375631814136137625983106982977610357523733954072949774651693943992593475080725963667372480426091911317439440074802068844530706174028124165242291707829877899384294983444544911587669806268581143231758060472764723520528671286640148987833425914653574992655987710765720662142908350692208560735345745312845595804645038584315877071313741720070113437480153588351067555229976441620218799590846020255204384502030881246916186218745959192699701689521690496997460539064810652031297273873912098429343577060237735253580621818692781616316194195915457752223407893931593392521200968895815337301439165095094087380425637244037588287035457657178652143483845529474950017356650658617395570076866927747892117147927603560760258824053990998241710669616962078424190014047247261372876751198068425170321492338750232725443182269499201520278735948574130804714125951149278121946838261886968204049170376612895037472891148604364698630716885207075607044776499121363163606896208343197838232304547565728637170662388977551258065778742850789798506778692585746007619385565175160718003833681711353262057351850701174062732517312280457120485429622497381905789317402337944277585819472263667016005320635544808990543789652879468476851845311949102630746081507739533943081203594878100382246256362553553154720066985167338743595046140731929446364036517055115472327025237409568226045524674136367842761712635942980206694324278844347719422089580210255286320596450493998852685763213647174142214588681829199992233897792590663158358195454689669105983592990263501671033185874853541831454986980444783203149167130520162882540356097332022993189688142364687076339759233743661790240192793965063954225746053339395990459345978534113108831346750257171052248093858734197928887282448402106134063622910654691893617646700260606467131121360456937988177496567530302208664290306179611804391579970566789894661605791856892727870866448778600539853315319524032169026500136347080234761692002468979834699706248078708994100098925569112607437100119703348571124472688692122312202937977313639289859145371971852585865573903671074670124314846235805858647249745439401702466485521467693943369260396990116730103221073643693719927623850502439798688065675564401608787252532233333140480674057681011556378416423492578971203633420057351267449124681277628928175677192775874652962188824103190249274715539704204987976842967608656764965203428044769373233768504362834472412028909057294044019846278047469684813970623938951882844124229182787275202893691596590526051888163729766732452989621181816012233372809652839385677228312540398374081773660593738639385971070077763057804794990408181715417319754245373078206815222843333925668641535684597326007562460441963997353239147041393248602542471131185032598855750164090510134497172296852082034963856855937983709882345240154464929445775714729185214338629151141050595905581827192142761905788666316738006350603935970406292665893110036633367981200529161829460281699844134358398435015022067330712622822190751106784509871180155690418162174577129202377552810794605883559407534845588735547254221942626200102984882530985179961479501692651904148615342414420634360361905005290718045220279369291014840270998225025920526334045867528789423451827259377295409606598476702106002192373733008050171801714775212205443592149904580356995062307028173326763201224263225799594896916954239638406700238240970152106534747670112982210122016494678461627477156320897546622348528910466269573417114791252662134697570139377574827335150969806910740082353683446506603423699322142970390345937162941728534473693121427862719994486544565557356097004339486004624100654248288622033865256859267035264603438607891641235700570929156485076681328066680244222455345584810677566664608895488106251682838902186810767920651436434542369039875882138626064814739402492808948688528550990089177922585988585471670125614096039202727011057166090576714269201839986320061539317830024170945677011214880609734645194427709914722698774218845586834097792409920233955729959784022809613069964073162279077513336113284011901551482520475424146648992324110610193132187264761206830947074047092696262068305213392073347035184724499435645368626077501992431460292462721380891147422109322985022070261656718197953024719442193213266140804386807519438648715253428042531159462281446941752930703383616990023797089800652732959846748077723773458589946045114496050752187265124521907837820964675431201174905816900501474747620973026009136846420031463609259129995625942481163367658204310883328534698105452229319866182466505798631598626866020977528728376505283479082096922968388929268500819912380286421216731873863100311590555601019848665103751694220716862121450337518661495006895606100990445196337505007535281442888153789187714506418581969225063651015415447698718171571743753451968270910484436210124572289735465790605087448208197709693524953825485497871690414927557705082822116717561049821113190479731561877138709308988302442534683223488583681679615500336086198517868181230870126216430082473526613334558580007621093905064776934396416363027091483182645042431777026179743173326795915027367446439110418304684155741498951905710258490918926694432891834684635100487415439554564006255113462273342403734265947089059873142856493757565379908716514309263487779727649516887353363423529893804474400612257515911485326090953832277436981219755535322130566001389187788054599336973189273198876919428285387534569085081900436273730030943882826785219303154755430207541914215485381626636298761999695798142599945114494214875891032859368678568167542060813195339469466419911474259273899533560170311004635274725590429609090532845923912672913093823882324347673239480310221049761910374682398122677129447339163624125639918677055737048354660778216338275673861980393522648856306540763194063113603868738566793211147604686245525299205552838691350742536925399429414790966325884788524084565265722153802697496179757407153899824876958125331076114219629283715413708429899877045055622152421142510822941818862980183599983809025619799439571986904926732310244927716440259498553816573472786944117754497164946460106570240180272884266843987406799826352225157227308439650754987056280976111637965759197325006507103117965814944590631827490540127835628924322252115889740357751038127905069641410461869824765150790340477041882065446575755985480381858123918878166036396826208939528082766534869808118732602433472564293854600849385258448067936885795981222761389656878378048814273313546922884980488224899528760035189644784891682806109609497986134935645438415200002254540917312038768955416724749332632816130943192193784539577147294007271665104488907948745895864960707915118726483215454269612631075211027575046612748510341093738100690826302815147553871633633551870282637820917639067842786680521768651562398540647707642845621612044644125432672655989204885245268010238271157972245607816836405827787400443034168972881753841625099628593433233211866015788853063976667254692362579758923393346671162232163141924476212385126290439964207370388146003192201756752020106038173405453952884702962028232371881019328624983758493330393981635857357412757307200967781711581292691902555169296972739013515576533541342129331037352681270855920633088603879200286869489126257534215047350349949926923446716377973557177611064309192687889612487531874822296936242519402880180729665206367024484570892733500802768956028234397707052648859803635439569750922211572957480114030501761369652481933969078181961946922046492410887364098468072904046052778658579928269285238837013338061470404256789803410057177081110912868223810091368608758829543419939452843899030601566466071714020331259228585614426999914706692183860026846116455329470594516194138181863475540278790816507512344774535006428320961558400281743550417905723785666334054582922259452611205795550976014223435332186359639933033891543634094117166940208696182764193174277764390627308557389743548499003827253145554407685927773132305710745261834502671609672879175863640839428977320411887558865700552658724199435714164797812469730730839890167328814359128236921546639013658556738840755343577336462246089310551217760832540417535207607591812850548964869842243772472900608016625343069559876413061218176544660944069362928916634110520724163434136868902540648056351874036604086565540564084022215954724442101661499548568678628719008142717601827237787126955636475418223012074358036494533887482786641591104042598093007600581994638560334176532195779555425354186185072031363642977041721157027944209025024154738525227337366463885038266984594646409920608862852610222625040201632442981047770946761048135586751550355889874979997226307070707785568214037445836038210360690418335716166956295571883516681637834840102850746870898326584551275428614184250281657876066295439533633093877698669056409782842806064834022483608388888077051112436704311109722916051608395713952874975555368763950438333420558087025777033173578419717668451060409545697194773491120322967729858979044255897356917260942224586394644854065065484775147911743517576049997861990815728687005320405756086246319896201392345013752030913904278780357276030422014525651730890389041944494035022420200629340886407032624069720367678988047657094662624470480372800203794245437408590231153238942424437707211449678372177888244052461400304746293192329395176324494680080263104425111878760486626067716737297925447137859963302439688321592983679189598439618040457999950567601072827100727794633431844595381554680504006784198485373780221527966800831720178990740746556570022281955875742599216522779314841526350735891461093737115253915806540370314690054205727830687773978745251488921789341039889213161345160504538780749087224612568679543694290229176142794322443750153118135814212302763768755946841060549400935557018302851233669768673122282342390173918327067897915505648080997087979134112484830166925448007683083142651919455707604862185923187546888742342096003607656109370582473006195467900771235611471809429987976968765446781857855127741515838813229245705694791106130659670223793857768553125331514947879887025316868635945703123411466977675791950620172769280378487710392082696227294952738762727990928492815218797289888406290432763905148168409348163502140589173098220114460319082689330035794788622303347886571985191681391739085327491084837195106646652897959782365006656496327962192524686022882279828432819604215528865177854735769370190934467630319379212334913156456027947013220151741809277143236472150963527441697704701032720193765220106297343738363496951890712803539966703451407486698834477265350181756080865257405895492110997119291529697118976846356074815850512262738258028779012746931334232515418313516638239498198451640176932273214339418232370705838069623073563977135508451381935063275541029139522705478450311818992074993021481563401277704947318146553321552988226625520413036758232525164836141307173134626329657739737891467531234467923530886159729179707243830053202305310434624814602486461687169398797978350800607769260622230356040248887970146736394702893460240317058441248288373381779828375550399532059085264944835782955547498992190296908879595327381877974199744803841675340998649961105629098365848949318799013561585817403683382556999662542618122957740271477267286468884322239277820301182328024910673641053622521950935162389858216544582293895888747965125230397126461934347948704340771583726300201754759907608937157766228740999204788653566663695242183058854368507925748319269767416543383204048067085836168926880940343570374060388990097137627062720192718153026175001567348120391090197770969086794010954813880868268458884518802833504738052737253954212157738244748093731696708338536000316135902094025710825079758824045518374653582864763150797652669984457961263327945699578839492237185935053935402821220302249899286766251023386799321669360873788370915567084639836912195474845328461850686570239884438109825229857456822373452242545162891754002517292891421595513789498497618835426065957026310636805841575814781672659811536357537153321946205844294579382716125608601893798600734105548347147775421838473016167137618014899630823028518975877596489830030351633676308733220534315958847375448391296725539812894908493492280549442748849537428263913859663075869196328250499659224510635091199181618401638527868895074079238356089223627586829674629345261157115925504175129066850378066080036185030844946996071582218683610804821664089969803589592233404484086373792676305202479859820868623148633637054382656676312785756628215240331103492068176735971406673832967534924660082878530645314491453768019687754671160671615035300522113292685185273691709648956669952784201585313623823561998221854994686015058963973080424771046611588934969533517957959137011708255725008654120603595256749435740542588675429261784654031004282627642921086139270960400036983112131788986867565831660936953735374464003572190045296305188185551780087084087632673693215598988300307632387757986931026745895148336317511433702805201913815380928531371646372496959003914161649908738551111360619371031435651712625673308695927462787731125861549187027438902164304008559042413627098058836168117293359840867643249812027368736771199125187309128684870569393579514419792626251923616763255017461966583240392734015475018337070554578271472493677286434979825304105499677628357670427331886923793817360685990151300867180653260125390347675241424429997746846666470427834305433117184210504463434496769117392782076034683491286738259437387261681652571593405784062659320487350544517555051947354127599508592582216506536317298478421829722901179435673184845566076185030436049696912597845963061089737714490035961409875125880191189633259234198152024509048064297661784056549294605984449346653494582585189744413249749855048992403432894840375424398035846849578282360258388722236948790855388286617314777518915456617450213852227658050149815061133823744151069255258100613531121479038906413549898764014765686283278520994978932547685163814307854419294518551497620732738723478409207203517416759295694799514355841401722638967395882070834822811037924666975000626362643143066279373312238244647746354954958411057255810510803449528124132157332171419024738116272446444563944412438675444701510791201146741897514531286036959663749415526361482543031922877440172688908676304564053618297938593747158431255636175543308893880930599349347227985027257637206014737181955839095931013022051847298793286004398731160569958780377144888309832105080455731442099595169840981672937936584093430683079148278236569747958154159732875351895485547598555091042666451526975186102771866558578725936642542432827773212236727840826494371715677438395846803928479775543982195196914896725559091447102219523724785107930235298612843123199205497083169330718607613094520485661432174843102869455447198013046104728433706310741438740166592695214416645524962329305905079671458074776396807257218439966100767245358332906121025099412915527024720135861850751329988469118286483376530908770440062108607904791495728996363589667792601029176735542624617429506222115098601751860588451813084105913268222588782823813715348481387449534316400631945936954853431259593379978398830082457765679272889527704038618328076187009767096489134342207441966228102361413703073097366997568533346291887562816922016101534226942761783691161828761866227172171843177160168666733183207804240807126664392194029092349908642711926005278031306045231050396089978382352799943743861827427189943496240163623945078486397557175453846147318406112710005782945442245885847989343154031494746382016986468993963504863429597096655277889772037701326643352810297210974577552233338203455971980799870566053426915957529118851882890683759618109848316654846284532145080035075110709232242677732799342782712196620375322669203757787443370028068171072998598895573544599371399052996009892902888454822990566347300405961319556006597121558501388025568176873193938132774806803804635119854550778538218269287753819022106777927180409246902352291487854766710178946458730274280629907575809021657005467341357737007192407015800704125448882224421430077396941861486694888950050070320503500864164774473121398087964358403536833304379143722891537728566666279640074459889256107198868484296845949372103144853657626181425570499747274416003762470460870891915393735493908915228896419392871498642857349952632995289385996161128169916533943371955920054045574403185132029029887585693903193671821020732616011991772901450025376561870337033535012850189547402635485811125468921322136249755034013048861906669681732756582078928756047225142531822337978154865118321996115503123423585362149985128945158369921640097565198757717347465624144975604594663264005246770233211635576644190930460863918584648067942307157147253605570159041721790864614858359749673833107983362953226516299845346630573136428169561118621333713386654892695134194902789046500092078410113887083125850862274381348110803183905262047126968423896755469337898242974641454793256616930506245774460225297961288592111758079689691852561863885495119054330137566523688646359584923358930742004995024560698104763220977319878361454758779868217382890192159038014392340531732936627628865587708472828070393070566939993673567437175979685833787792454090045665683153094997531979870153558672026712119594842372632718579137785173463299270729087529909575770608792992473309469940669307699935607009456860369564942130701511752591206063397107004533060965921201187041993893054154085131285228399836399577045459485158389665415800192836779355734821383793958540128217217244465457259102108193314425932466833434409203197841174475422552556166819880241567489879238371503151598666623537535817292311777334652420274148826000339319488513380419971525158519605895848374082063713842488645537450323499769318793343702534585614834958720116877525262049975700732206421432561533640968900449880340781005746381316284422518563417211777616706591686833556167448880614731651231793852094995173675134268918182509958843292518092104985710394421192822408659647481488415255236874345990995122485369631446055843156384101276390081137609105606773691729870326877661882871907580086641552527412711388559287728656145970025923944297955265399065544954677748158270065469713935862607693025779499618901278060205187927217731223435393766262570527731681746597633939472696209943049069591732569762492811656100748247556106563949337800490510725150914859024009025891897604084498143799087334763897170101350946425699406857569182630034221826353595381705132080152543615456572802014005027912230357001964317517418940479409247252211677081004108734442528960141309638990756397584845163438913655062673982269652628657189108593276244442638357891535434516424435861912527005656237334897972916136403382845871803707486707780329640949396328855954407379301550415037026176821729687154718813169561795958659716235742399303668099127828736029797005885995453095941736468919804513677938593876455392519920678917585893662991956748732588140806418132346695372844974586482707762588183402834251016406899978074940370932783152666959205232474109118111398340402929473525587066704182624868698943872684445435795989445126098188504813761568173544261734758981651704837544015721979729510663523185417560027782952761770133622657834813155103611953431380032640999893143202204992812792895303784075792683040775254948036772363818398439518247561881375189418853841281771926586741848383727922892563600504405641648466096938004169453791305601306331269892038532789575623266010578189364556560932332743167195768547697462623534043230700585061000149168367932693091763201693733032850544981674619359978773244065223545482554867120266278222630735050011521620658200778753166182975033099444731287375681625753702494041697493664305600799023682082953388558318690129525022523419172795901497141931571473858614347739962200081955776946448947779247910835186269778811421755877113558606655646911398297098400196712173489795276024020942461802290190297620891142476032209337525010668237866279426196188997122903796716739522847447810850248993688067358488068775858416562890738328597335036514237958668762385478950716661758585715053426625350369743757875940694761056053444156476565480178261321586406504535269544311537018457013656496573663591022170921064054388363657691776781230778163783703114305645551613042872409068010421923516637580521865221537653941936290937527607376691263400201734747204626290894717251084106420538256113388826107315219705672956222384578016275919281761523556445672089189110028655295207564726395031400354647172782723822875673027743163949097292238348328798176499219739728998532004297583686472669069841676255458634209534810348197089353149012014043064702969126935332530991940324956618991804144872209089028068666367408690330725601654931080498066702963061085849694709782974844632596625715093902316514481728773304219867063558780947903566639777430705185753687754217874029438359496127418805506142035276977901855340206754043644818234594126613920620839056944057955731190782881001407882420465149552491320115299179733127484934114792646923249001210344604023097319568222068184938508579715443282816776444099075190974081776416624976195981180762640337919006496747496161119198540543184346735963447876830705572798313109367606096815737391972439878712443407547459680032346128762748251796238744059839102126578520516295399965502984651467436418775503619304886788260803138086754406352748548512979775565230930138424958963424343098183618433359118706268429948881153036002814279795621982057201053633594912260312283563112817492437600052108817930694333338680110229036478346712225299379932815157925818672738548440759231740829164900475536011616255706296276525701216485191558510640740681304317502935489147126044802334418202612932095413251469507132934996682256111574250145570808496083929023547363468044142524042917736880309070952932608293481599509101636789317938798019495235059956850134248398178326299041758615433665235642745061887688606217327781520465136801835863341545818191133900133167386298418783865317905501889714977655000302122817078918295029653804373800447793126423515767460650074505533097413976320127289732312853414398679448362546693896124233750858817998815340567585820977429734807296394368283708547716081597374309128286241668397318420755596979300455078576444037804010439284410815650562769016351793764356094537366212950302387917978860006482207745483592522212855965013672892599635118221955179147054061664455398416612009606357205371418504781902591372442620076690670077946298119145091939309545560901909355246791010554088209014235162676117624771547099367223385177591396011588170929510263195405148330038509283440122936436358446483738094706679211497009295630646232125146874001502833363267231467957957083008676305287866221825878704546443485210654897656158097074890650558736988800778304812883831380614840026248889378070447298724503153811582038613137071808490520768804705409808417112119655470174640141616760896959960223149114843073795095845706918704872926743348804446945441610469145724126816794557224596485186731859794638992045500739359517250903580428732246635017749655925120108799027954321921000877213810927338311968578680285151993278561849195340498400072921649292718649950671648769325153402171022780096114892425935209279111273007262867410103561696369168061444207566122258506710985357422582106176983671393300432995897559750926437886815037187159933926402882628265744334464069351547418201762716048125544405221426660771420635563839368116896710607415895131627926362908983062090720192250935089028231370748799875726888646753958044780466057411983633999744614666838973970987543058108936889869017847546060195344209080275551141375248539737473979615002176107709567831520008445777738182341213430871955004202716267685065817116270772355085366587857540601178724472253328568519862256553863627846636283074092234872554503991134838300617353094684565395668493041282552898937578394335537258978049384552978610176953932053073753694642702536607665714925848995353067874730810449341755810378938533416880712702882289972849029781691997937849443775228343498544927458193389258601300838321201659037000190201037469486609228336032765320403205922828543180657888167889749093967363985769880150021818805089327121786877138390119924360749925514098166094731755473725042876926886644334614100957542314771039046457470065047563650264660245190547580440624013946644823317547921652986044767366867100946738056645007003120154332175279852822387759121943436177481037047800769660368372960651551767142093172676862888098430416714225063420949733253899596659932383958176877065626268962057434165882534025697151846253062416008392728449441249417172276518088878081988785639725598715097803718211960010308216718079358365291283211068909364147859651246732396455002809276720527748769969144393862845722283323098898392220180680484530806604258332950915606297686841754668163366927947501666977730139754761136609984856490935957239307462886962399871359107341639126842465197188810250707811430790761650516296065445533029669150186705448130670709702374719517873579161429657273297686564724271811565791949078084297649583492542611771758683703530056320408118627880981115920721408288150588062432632427574657601018687250281405543230759041551119040196151946895562469747268492094030327371750829227057062012259766527137711633731997691902934731478845399095119861790201990775833164310364715482925710535437911769556759294360812669478935876891318881060798005109669144812973823683585644814663524489839406769188942120420548715489600543203237422119622168929292133214342623862939783242880252848729090264167714543664463664792932916628693246907493339344041109792872820751535808168169346707078197288763854680278652968760406539196007060055819527478991209939133583639643940354029047131332968471317730208835031003730196090600223803056652404749710369242344728814347366521297803706288055316241130065292519719200412833348776358468641233669172693375140747072801399557077584536977624717346514456592855303313919785063508275510220043281790357873848213877811222524546429379279027631829519226497466259920399626061972633304403157728921835459004817706261148566352660340500769080146839269538293368759917460999093248692852655576740645018909824212223043305357308458082455772842571655425735533176621425884071268170185216676598929457398941152845128784396531596866966919916180250804572818533446798035638026207373920679715050763331682253821114244113133552072896825510034183075462336715959343253181397529216701786973405341885301586974920827536406591627230521958731580744065176346082051948808589583733793413990644005081914016901565029300693302805358637137867767621146517917625495802621541260423660613366785460789819918268804780960542519543957021395412574578400091952774117255149945834940487715995788191293642507908283820665947675475405131098352684880718154604337444686455167867156517556267278250224651826921421537622721794177931716333470699815200591780787083278298387243436864772318278307864800701711798024268995343108493188825538241933289784602205526643593238266435696190442735629434421063665260217665773304851384542362942938260056766163784707053371326536855139469779904172328220306615987635677525950789443142297868979163067695822133015614646460488948198124075942362252213548073591453622034017876550767174724418283000605348662390959329910928947697141386532348468933062580487496711054545210082640927361717663854564920563073074319008375281419906791747550879642801377481945540877268342495319094568611565840539318059094417875851080923614651395503495208053712159304204705874928250362410664936570194864188267904842360711479782848352505319154146043569898946053883410557131153209937591963278102955053251360379053035864843824516367064054913762942240396355399749671876095786813987353847940864234485874302353364949405510992997892201902075862517727541546473431538874981904258287986651726519016275049013723430478677592856558062479386541378278309520102996982204056774421132712382919390314623545085001586224171110112130252154589996188749200792173291760478749397460684519395030006597402701828248599643279900253593368441227388953497535815415252865099896794809127486744397722644451389523338588199458147776863811789017647393383550921873458862386320984224715134818211297252666705772213558083727561870581214031399970085564179778802899701377209466129505563418302553678766799131555620857205133776118263769656086348410105556416952674327929570657716378060812954730698236142814930537367148731109954348049238798207947060746823440887304149876856857668274509571045703312792981389547739799948749853150256153178711399341615475092048009900052285521665049177336561364903982439939497531156799054505692478096138511792801376129759817677512621105866731837240759579072402653859844321004500885062243542807112277760365839434940278687326733172715473300178318529798525134384450520432789861415840223189549217890125657260261283503389272040276544756470661580322156128199067384567327771422553607087094605286838990883226405695522731036060974358756975961566000725726452404547777290011840701001764925873293506929371994995831881885032921047302675013815919050932401111554096873810342016452009008912119616327416722585554019734718333331864706413205016160388460672713157386440833140327204215564452683118155089830892580274427519360626223759559951293812939900106767783563268897112728004339535199864092853255996727165665456512821089928738050947194616312369762629479030242483288858093410225670275670517357169853129873739886950159513554735446305177375769702316676347822602221732339551961353933528427101673432239516394091523318734479943994199604362233492921735694436900270279485714543513434323974057481783694397164234624179733389282043325335832396528151068383142565363157914985527884604810025430560795606510019176625248755877575852868375634752535730684534740105114700602555737890483582822585430243940751727559664456454816947100781286527447981776348712379006805463879755233372482685303671784139424507596445748348588517127495682305966102219696913689536532556451559483819158257010490828481803519032118560418063988663166691179143716370803001211745303087216647839038364106495854311981934752128299703216211174732555965606641960830750937581160848055060955603079225659181846871633121684358218920750242475930408620104857588229757329623482541479825501415103863071173666134550621006952946892573635875161315129528765588708077808269656826991631223742600216563211389023062795757581241991072280389360041615976640288259041410502588457344289319531917169045043825161372204255740168926301668353522873848069274503389549544879295207595482965455572239430198074820721521324617747244137925324141352597900304277679501882697268528442511035952015348392140733270251683930462501335049834225783380272366396003537136911723427280524791586079295572289058251030397901721719563377743563392258099358220632074737514820929095030238454590131787983682049878398897946478469986470648877477498129565678100047217339275224788883559344489993070344765193133354043344007601620508280643690154719248554421149741386582556147931261940597129994056007389488795528441648472313268890142466412582382109157532863874978714184445606652551391761818157135079823847675080689609996870983181101891608051626330164336802558280426169592058012647674613899834658743689100863284748404771254937016453948081348375925328579763492967986293900120355294636169926874096200134982137076649199948021788809790734242721565725679990133655700158462583428006683878545245084692840140423288850925687958409823915664619235599435971297793881285204769337118557628529092510862974508091366956674439402573380614996139294099226416197514756096620816830040986745387912204133324501627733504278013387473314991152628053936719556244593766382126188680348164340496724516324953505514619518036724194181730137721569406159230709658844172864455544403225752836195834804360833136343782537610414611666258012046956194316971790885145711827124861768944463238053011725401367010640952368897478062495146196596264402855278903239491474166917079044942037130854720258489297315116301055106352661496306432412858808779629933242326262672252790000554977018062638623989348347219195594611396258590365009166478150783921046113693713220950356659707982715265295933569399835267824075251573547658542079770811318428556763442475974604975715018017575347019089541854374480947878774524123529334616975865252080973693315826111880417470146248622872560055834030213450538538515637917684573056944231006267344308500135521028593320581996044714337189875564355324352426164273091685473246993986581222001802247931100913710723133482166667559040473668019279176268117353100002255080096338744538641066357044096258386941828412976678446103025880442203903602153232877387029251250159265523160895985850346034084672429625259531882878177393410449165233806673433177912474404716407720719560567754135857792272408878480727050148952706413718764664238665937651214470315959495633226849011337308622775485280342237624223667978244233492824513943845496306600683805488680988283453845339989212552438313161655707288285268679958118483483560727320659778884294875177021744448939180587197143355195554595394644309518796152105405763779444807316989383718052940903461951378554779039689702468420263448012829420009556647933966022503553549583622359214648708081469794841999818425244276541186482282681942133292475084671487113939014846466929508388242845395855350560521972379292781741880560540156417268494167776226688691448520994438432602415670535914754394638683018977240001037124907370606432398466310306742801136854934415550844062068880715445248820009098854880667258209877950945681306383357757919525974121167428224829529186368004179517759807734158555593706677869762902895948371373905749550069644431060275366478014416372253784904087435388171894825264330441321319735256515678703832785047642154373737075984950709225696905230374733135514102701371778520431979498359529180783781835178539978442748051428645848738867406339318210293534431603871908159678571053717824962746571672817430450184399081985363785040681447819461010732321203983179651027994624660819039648603615332398353953432465414440374709417605105385816842265531787936557816390841376750925752143728694833143216909282831396434885594350814956382607417564727047437893496181436353719641920087610532629887493799806218097681535386248663586887504744969638461545974140374659426603428999431485410243931921304649775375643902083122391738976221771825141102104240940369963515637850979894551972842819438925971395406945574105756002277098147824199722791004538816324079637563266087083986219518244007992921811666608348450990168044449904181726034816354285958621424293964088315401829217903725929270952587738871805801053319995711936462007535840027833269812089191908875063117810014729456716793776305646945356319262448026879167540071048861522059848488882281356443535035667765375135767247826428587967155305691961906613813707647553243473577448390246772729967902664096625585517570545799127261307359949518018774179483277557947690229790305646563124748596265213749840737764165261767395128966183829917731568948035612248260240587918357966045462087318805019042766220059444808248263409836169403022442978571236087443080429801055646390619650847484069341072602326046356706290322111534786078231355693349626452953461271504214240193593295038234851173400073613882377227611165298756177220820537240763289988178159687330121494610916333969697053177736287302076752619419711130101961642402544520659331852373499521426968812539979353276123255422591332758404314701740364496361531389857646851293112945846192150432766460941687035952914233902057317889477517036818306159423977483414949753706196439063996353954495163220206346226385304143607014138023274265584323112199944690466282632617495150074508527829015731257279576011554788836794648287709444666667825901704125592917481555562132844952318382043482826462647889532776623002936165164828001559806238702507003239686421707934727900114886487939121902188681847740914330508296636583796008927218847857695163797769644537281322266896668715784708337777131317949041703594643006922574855466950617753196611088350125726888298732955927843031802256109483249664803308391948119045990313416021520786154535527020237812269149396498141461255875462004317600039891674720911657720525302264563291585211669406170824227692484150017416249652219123933176861709352640236199041467580254640967164247841438931199710141655846447489216121983309037844845543641395045152301932889345998446844319338066905002102071903547872765705019931036234877992570181473579849656255795631272880226668107310861285333679349979456309059767548739457826839797694837329726621304421676792518392526742731865335951914529597316090272842612719347699953235810355417454679893365579987829903521936903973333599111004778441169545570517709544858723762994592134378095567081134867032050739259648363003081751394469769971643064179479274584618313639255056693993130074403514775731338831817532948449314238393017052615002581450964954205704334681724646509565473476232106425081552465291120937690104649811832875163548381094720049960439606583719889077491859683309160172747241333187162757732125628508234424231172442657910671792026928853529966555827095637172191124160889081033886630933987384298556818860103341821566257924102982969551818936363245086960329412299469183023375650220341566762567566386030489781846416609446011946820834803823658016108561675745441005491877312985950509612511210789355977742183874776179175217277027864620433947287365732808096282782539453087285110011728000377860878841454932223896292754481055265487665803108732121266505857539600120614542307599787299429042919405987877693149241314629136678914925998579101228960323392297130798279647677608385916221136182768028160029812035993178550838151421648369384233601423565269422632303815170871833965392140439799771195108620945355985732376354578013526173752545997956964004162328488320736894236823556007360594628523137450383190561588607387173512117105571141463088633186875078407451039598772912172821299262771215848094665481527588432987585589259273391438699032404436733215009582550480120309160889709290815593015792137901669154600672430084944370859717970268433860754357914575214243443835473230219858797387353321288962373809067022011506699424019118528714051506509385472688745230212547491589008334615305243192718275762223523526770438798150018135764636394523038935421100932121341706395497843640371040047155792009043823082876472589045803580393847504473293291780741577390869302453072316772986568906499151452521959104334064554199508167532360751933329071873693356271913272294582557118466054780198112765230312943942062287646017554407119212612092257947540665254961630565647323739376210705208134798865202625387686914144084265753223340910661245309756007884557722561532426053924666382685258622961846066637289967280886817784478674631988294342094492215016507172453746073464666372592355399995495383637259320151310072980433490714288093111290360524098868908668633886043168330429498356420196097453077906843983657144185671877792383252252133284810241001744632305539182263515914479481335953048069174781382374223756938662114404058898599139150525743345276235481534740272337505473463282230332891393666846920604448946759019768548248218471089847125091490345242989402493410259421121971483659399239803442781169700705908709013115221288741175779606823738698875093697673954135766981772032241049267474039197828062121069242484107818890036368240983441906450238502928172046755598495923650152133155124102139596374761568083597765655665925049390427859872292971347623451555962044601417227735540646789595282857319669490516302415880994146702041103588482247756734529378851185597932987512721201746682675474307607410140230460666499224862329924401306883835775318689678127592438817237652586422275527767154099366640667986152046985271988769779920506410371263905836210682303624202920148777185833749226094748951059789059648330099172325687445284993797859028835569720463842053443208108642011770365591697876366610561795325257047886530569603578870754133400997164965294087897251175732725502813012870633427088742088338631808650789754131096984674717069736754356466493709109283053542768064176384409036419343778273194913535417694644960593535703374407273069769261873643042077681148668646583629802684476333724769904600652682019938668412902793986132330519990107091484630625775080054543416978170875767980136176003781567663205460495793019084950683898186643221235436873049011464062331553553429893148655335376805599731014804377716094158205180531901428166106228240021546874092125552783062415966373556206601238171404255604588105034547117314714911301939074111357349803632438992726437207701466772362263663938202990035257230566815743556567862085198549398127270280086407197905163522915836933718495872756038973269195994670584409823184897625657581820261064699637009963516330269439535518703485064035281760432860046310780275584040343469509954132227444945850874491360172379894808836347645112268128700926577598396218617679270762957756835205201206175752409447231270434755131669155868744292216051789698314261519381777034686706620293672592232998891355991457759425793800007526580148379046239686237637872040900469732922696877183805881312597294076589501462312781325322011331103282108904904781901773266332418247919509054269023523924668956274926546848055057462013348363105310453651099730282388054918354980675588822878650336559757638232074573167596093505367663140960858932988967394776671556687934501599104653579010902866145472118129986507937185485104805891927388098386546605299016196826704986220137110871416285818092270746844524759703985267016339256628549719682093244456641365818470288721071568647795445752284684106104701578692536178027859664024407919232340232968663587629887113266398092237033212118402044408116167945408773137992541488214447826116725569795274257684704382482597185380180369758048798695542018077840978541631691131995660820104723405037698508472131873828749036945715716976930692408033649797995363860757370362778315696504637682483233795553147247742171778028776143946075357510247669646788230037567531735266196879309884714412757803106540004413415980887094300449529468587986922732876099117806384900958593142552775201613176698695199337858835081403066219963088447738382217559850748567461748594828496628336737117284684321293502293299941935167310201577095760926106643691002073819944118329385868111407977834476044465546468907721039430009789061364203953971240426438983453078493772317531354903608264854908516943338882156481851996971692472884746073318147158240649143786672352908209685634815150996796609826736410315366300460330016572339912310514304512995945692772170941621020952862640388217251475339795987741819349840855187339632905985970153812928384210226055243970073738446787366479995820227390374452581277795697814257806796721124828702912871040103869872314175983272218383083373503188538855472597122765256509995493170070848331168043931469922842675144403827327005619220508647860082419762611381156394073073789107425619416277073231728336748187283040773908533076303894075623072259408039270389866772481749692331949785646613462984340902019330970695142205855710043830995836002788727427011133216070217341361515509589073060744365952256779594588377563279402096482350794062186746828218643240272271224565544756340743208974950899613413559608528621673290558282133470606500248968501368543590580875616647722003898021332975825167781184787339478494104745921250711667833908218205378233228850044062082813641056528649205033600855709254736494828816529129957711631673972684386328728477604832833341191709278236410233947211516070190679691435838755806409036236009570018581665791818006104742442699420094077827645611824689887610473221733065880153145078078004889083775084795280161954132564524744233303384243733547559355268089818705772533679567244548898992100338644312751578378601944654461609692659364445068926525782467743606346307229543598111083575270851779690696395328006622183610496915322938101645252622767287626970311765058619094148962826541774462846190096139830438260841568788565953047215759583162819206782377355594389521926591305401557321703707610979992475812783482600480153736108984722172714006782424396028543951347165803941946823736084859326033018928093183698791899976814538663817302779031330598607378577948028922963491423792801857675312681506612137545886990546090162617139835308912756636277691981008992753341388515660438179188414448312117010068715460294258894950155187057230223532026436534048362925246615092623854899828230534946679444759345143676038793678935269111544479205507263833584079599233888665310276866635383611868357826572572299265543221688412477075559732499440718535972660804186438838487756576426919143936184041801444241390364213617147636535426898026073088133524207289491031154695855913442620111102975629261258257735580339540034100963963072603947856597333788277780451768949733032964535021815268209438280727411639808811156180430580967614883541518255481339468806404667970620706405959852306672837940737353975576421757825039615760083100466324372724202784597755266118962128119501212004977457887338482101332770268646380342618444240788694076471299379409031716444601007251289750037969265035911216308358867563654647504783510682837622493999056719491946042008751929020525256286435061195608298160390661859234676809315928315256789290641868515063066875602142967713355324640400945417992128819769854060893263265588652629370806941009363064810493602797830689678038312803103196265639285857629888616518352224446646035729696745019220963551347549167657168121734078270906105272366554830942722226705011023400697101742698282825006428869503998997793551787660166090853896476002638363562026328224050693575188319885954919199844005764811964108224153535614682536906793821360090507827385786637591368242623496067659314343093262672618320247795895644514857623781799155821414574118003087201515196639511115634252779890225068726589562634263078602526585294657122326205587328050256203892267343949042738966169746890089527712625188367894095154355517939001971118143530767262467939755276415392827361265919142747535120720451532437878285144539589516697049963063104327089323536946084579144980179839535283505011804905920864060445362029981930011326871800502063034871044333051053446917082737550961395630262593477081887634471320373095437375059493965678942958861877762448541429609837676170315422674786202532472425343898565994801118624673293293339244852234216042004518623775028726645698867278385292144425750487427850881346376435163502614320955678686915826562428174874750702588536111822261046206818958107943456847374167817772001977560650831827683687796788397086452834171346133889392691932471790866406558879688235562220268038150715459417165759310865723477695508835364163645888565774355473883919571172580920773413911877589497809163967457330425263662543256380335734055501072970468434054641049359177762698151373047084674863822770415667983165258818117144343447371303757597935184616411918901342527157337296680860747376173768456819817834508036644475369551174523376489510520446943598566807520119699884118706007019249860818830376569971244795309826612663776258366382405212430435262918834168907643597939754483541507165800129236988726619341663177633330523666444141828105882745451706572575480200956928913063222770790680988222830469644716460579527349216165607296675056346918985617695009690072569526590380843350947912023288406751583532241064470858401541879723967019612328625479704219281340629154116462029566475759919429496969534262839982382243768643631246269932056895937934419202919637022045002046496649585291617267806594827584548351216262063255234101289935214300521412836757316171820173497483201746070042081727732085163098449402947187195863468870173623533066542896204308809412323005222136841997739784781878345095831084630370101868713661976419168517174488702439079910760137518817050373740948531328217316351232412538922935409189520135385087396204718025896578876641705985828054695263832235135903367575471640851831526437552104652131702472110611081120186770431049051012698925880625372031186332141669593502961601927614130402269774058750540611140308398453380278827921372792062992310168454263465170583101196961529734569929418363876751418905601919842130789180634123485340706807349826293616793867919809193728514941542810985442208802251856831328215818797761503356258326477142095602512469276401093475554517586255044836782788943454947429021563500374950818577783889138537045648408586371039197734200247819953269793514584149419389807463227934540960027331547811786718056241036870185956480116539503521474505844778607762507044013664991875817905701323594627560097340649309083844509880099365704228392795697455267022239761516003971347481513408894677558509778935339851305176063021265924106781205916835468004235929446748721626478146143033724856864964264952911937289207810319720207277447665999663023144586747050757574844861083171775151547431347399080604035493061043000468362600233032708963253996159787650474230274688941715989970653177082791573178591040877700249098544405779045129549864657236427301432153235426981537481297938901646341433672874744689493401228980568801506402162952324762578534306834745407810142630412893144953770854158837424600109582520109201338025222290436981862329771122973453073075547314365550231659548753754054818061888148250792773847790215833532095329027585045497804990078895928354074882545198836695602144638675180097903417598566189868001156834177110370259044989935639416415880039351433519216969246151707400288205422284656865816841831452372741009191549729258903890199954306677137758049725243406105920400151806563592905685623332964503263295628244876715429307640543668002591017752818678348187321330009821882690861693924908095418607324771796998010325525152853518985305343461610856187635274847762570961209204886745102615090753798205051936189526868556362191630028727966824210402444018011364235260234796868672945153926873315419139065273166120086722374437647030666597859116581157582950990680900169720538585100491002108781027717961912433144127856341212925434715938382007762636131714766760771561742358689708572416491965442834018004224084877499391712518216453184944529080887948520501857508331662341982584571653391597712769798690976713148280528881363418961067778073288882449566814509460695116623912449967539149260878583415976864406960501216812258075328302989779388823235509884310846250146114930667836107934210355721994621530934142842228138451224385089495414795849588952765460927865032093763356070540785453450370654152240831251241502434475096578691380808252044528973386754149684493312979779893226596700485817336165000292723076662759679622235489787241328629939169727981071722915932686789844417037428874519900089109097056040187326639578354879458010072909361113531857517803486002350355304444731617939594154690924459388764209779180016412137034679523731646417869018389676398435185239242600623954399802534541965128923382939694991007837393743502959071725493276812208834572027842147037474479711057370780602092757273096717730248142931037480497613021225267698286366691153284683249936670345754387613663505859927220315300851795778700715932967793679698235379411227874934640508591599588159544284078242323676065194036385696524406126312603670842795115723971596612493213776828402295321992082486754586165364227632209861689850707864364105798025721308094372297045508419932057052099443195557454179464946512438370694396163806602951494025657190064369042762805520426520424653106233849616021247186180450762550865217513845233223023727661836398089957684982710635991129601740474608736781896617532867275849671754762869806429353452203901743430563618850961695705681244466635340125991353515034396036729030116068802566010062298536582026919759789575960073974033234630868154911131011631241327822967600442862876466150090738593347068369776829592258979782413537993492273998930172184183042148322646229948285283675609924848785086625146664150940991269995949077873492417145314241305547870195193984872150842165171842290231026620012044618471227398719021157360663122275515344983022749506845647105281762609358763323955901660726527742788115186187227311724866941493058187173523863032851573136589852898097622348116796842206539050973883846511775604439272755480220135173750890632662014439233349774641656282718080517342052918806015667265599262495163557467464732806911070213753354441443385598270245303398561951587496724987394910398419331036242469613504590180313604260477603664979761648771764933638482969702627418001343873558138399482350990223493013107335812895664507894231637681093575948720744307635751717429371153797526917795769750751594297175797908399806213203509527186235329317177255697834732449324696756509236565317485246812818835845294145019768540766446441752271164978087823365300295868472395075749088393527704440713177010115314146228119517592272621459369450834477350951758870058423753067708569645228571845544008154234312830721214150339179445903177537201280885358611510258056124550176183168191821214375672399313018511104556274765554902147500450923388295081790506446511625117690240317279051092686058400878870124368080848267242139999628585365074034717909368078351537837468600049891691686720885291555951634491996525399741369942169147435072792821966077519589788378502779041152524544139518609559345333851726932206489050381987415930637928029325586944190607038019332296877003661120284828511796123788078012905083465144457805319428375858038324617102422901460951599276770286141807698648910261530037192515295419397974781070507380906084648507349779599967709086700840864343565442494005503968311658357334192101267339988725157420445607078511554588475036112620790001667516705405199269723437484828734521037744404606234459638386932048002828223753565755745044283584792831366562358152837702444958709839084567778591667782740173509430181891395051140631615121384129385317676494229179970492102156737238241381795652710138270749380632602004055675597181867288939069820860361792629289776025787609508937591300175222868059560952186119783852315778519201993522953635373036141785440974396126427057776971961050275538435922464953337122002644417037234774953582259099435844155823937323709503315195996147275441642051230019635051606472715808130783418391818812764185498088367448674755096838524492814041300375297128651208189788157064938850604630233945456597746318700220110912501984455362829634264757920391049834439379006255614997570927495102360000797978284958472309665244071670889706940376703491203937249926548195626947434218380776047059655210023850663038156510371561504264709568247143980560385524523251336318921777150886820542820732310414815636888795391653448471877579895319775358068122652752655132618522790641629435256241053578987506279299843524551919663791577039151646818959020077052413537781884074204606108648347782092733003148615148494748794824555311180942183078045722851905126907407831512172347136778484729753208025261324014483716885309619045252546118443903905690184406635166303011395433158982272772120282126776406469676609101711448380067913089625813633948287721518633211406185662800864136377310154338481599684261251569832655550708284122430096266302776608458575063689222549126223501345253122152231246565976844121800112803699382431608646914936411985230865026881224484773829110162288351176897815140196612767628489958096692389249987345939388768002306171308229069021733170895537293418955358947441892089342598672210352265506699811129635511053455722370225002540155140472057151040870963812910623319625809441301011196487654408797232070839125406106089656314430577790300872959673945144440554343632711371872803395076419023632862031980974892336408538239010555812737523459159915839279371118627872104273894730870038952734588377017106659239408087779293952557570392948999622901615188860706150528750628568890901934989570174687227307265008458206513378256299315140711171072629962741175136616879835197889888291005041729126316890583916990797880754270902982054463811132573968561311575540245305628077883072329245097051134694555093277323738221606879371703824573134106936332717867919614716137571160166184192043094178116442794347701790486188844589318147318659625091109620977398630630397038686407443806389781853270904651953774785858201752652911036350138198983924238439517501067167487367647347071468443207099824674419955362122328212400168491191349066268554302957388624029712255102596421379262632841581349325946378697327747887997461751117225356906942608929244795506287726585392336822981507642177922657400921649665266277129873005189366885425052404052939311520534751945792120042533073497951632173998515811733185309125992213629616979944347513445939131382424377086910522556406075028105198166046363872354878899144930538032224067424749104794624612224189741742430820791701990705716651043262475149908363903917936049087944431063394420145669922729260021078385394913633524735411350014891714832167131354937866272556629631134436205067524213008004022804057379144156608026006506172401661214612679750306170260171654462198134809829429399403621250362313661091697601453180697661713050631110603116819022351110224459797427659714820178288701707818335665545877609426523743000615058160803624632458285341542938625150072707618823165231235179894773713288526592605352636742819933201212526700761937315175376146028969524822900193205429222009352108166255540219865678027248431224659179012272903738262175249946099864696610744548872043219518673065788112747367806175022798603359793557416842758315208821707034825728872306088466586629747599388953963642443031839070332943422168167478990077846225185482219732584991157914874256110391600206220545039341228342727474878781550597426570096161249498710608405671760816219929607042077753973707349244376044513422471640600868987734894792501118800706308298808406436075596962879218762279967841779957452116280229065276705149346194994396088305523802561640381767003227346717318978304012496895187176290138391186251153167072844923869679475951943895117174683841476336796138002138779877984146125710007744244140265374725265259222229026867208379887237904744936450203358035788794215819058795175429659207584838432377495261334271398133876464742454652892016861811600962982716004226513528359453279250915887739739265184729701703863268705277668324785589190616446298090190492172885299509993521708123316022905271426161804745030905160422974801191180094916867771497847450765455516220961026554071350850630790500402257792450282315736223187747695350563556286308800594205750280636854391815327041665326629436217337416983854516781236944953798470306217018879995891585133711658147839201509636492067172566839891973279998730410564662435872438406002527603272016518126584431838064082282843930435245063318772334688610529293307540619365923109623579434277812676564669821798927032972805175033605619372668775084357665078967459701890337572048659733109958907190951186147858210931338374887325691569767430472756151990764663182792798981293674352506653325047962618996742274860381719719665576036786706328288914075963935253778276066896191270431387178216513168812157898356347198999256040526681803868427995205698504044286268409385876950153879310410010379027074856295537003691676834796603766744970650535063665950517128492489870543089553877608446019001009685743217119008310718065253941016702161817204597165158772100166889339345297139699803719535029063652080123748315038076147570129889890949243102131544940460226935931817132451089876824942361167927908834701277443674640545839191562990433573280681513824479345397746222234398413394610876298806375802367828063250709094712274870994183809040557950188952759036141719468975232371952626661201182224677652038448723184852901032807616026920010092111229523152988085771788750416771475978892517006524500884001286921327838003748032316409072732902488220243290257538828263490891974065008121474333690423553313593656629812919413357623341095365041905009398638301513959692935098762721301463344305541816776286541813465218358613592721870713941957658335356517429467362628264502812803935179643516059526391042726155303075919750809471038713372961070992128426846663098816160135251114072239028987858120838338899454408017596940185111845795422650162478504361757976846003590800255993281628695480544640495884320553534856385213379137704207224922108658952719462231342070146814535385779718493738205855833643680653962371447391742890203338903703217586415600949544431516449586618731834733493136992059613979841385951646632182290746374089159533073180494906914379716555512535737764106650793635443580964073094698188001270400627521620168588427220106410388520448405619270760723820627402602632735126882554602136226166668535930612723383970425829100595723209169280401658921568053098744853113304933085863546415638963267644007200083758658985539488981650179220885989153104859906410339611118017711091881843488013749844727859529706349063174086919555168502980568197283795386639954448272095762019208750863665828255265097013200772207914035653314224335684302006284292976393366028666432239077272946232192334870094583851355043989964269425596835520263062783630830980751584910108034876293820102709807824980307635571123659441743201071386958786043925629769048141180430881138461109898596789012602127390233243307633707831181903644523208215634182496291464419975726735422516056105088404883764951818872024616717957211632625588996918398967079034821613498750044224345202644493308898004595959654724352822083114463034305524486807396394659255342477602054974085339159551871263488612008363370149957493160098825913479763515491898063590935793442901291451723442801614607453628342890068938601304929772293558170257105531344210011220007211112630840921541428621694656583871585683362054099968266837287859032853694749729935551546624346433905747749761122979225340997636276574966907472005097493421041510494268364112889727459613753948365631413739772297016302694147234050278317761507693287366198383615325392942511303343413678390470701874306553416427030030712880928371988195790051675705462650146177316276435933448887633379659303872523610422405146161913275568803937044676896544671021591230602415684129115347474847466557659576587452404058894852815738535611986317223474768121394679060058378497065802038837139610013252046408333606504752828340235898332408533403679877508567394554256044716069177445792094996426783681352848808036119910854832191195747525260514361753783450478441088549585878844924089852498533339254616927676892789944732410840844544475335409363496865229268808891044018586177865831806102968168209352534943951401605861577844363871479152687688549489988009698088029322734089338435205332734080530108042195581326643314094902624166433180605974390404891900719521897907352684918171618463661136784332622812268099025677509224374364884263382725539324182703686239027606123709868219643386181810388720795962421993983041835732162731643166534930876335356510751954153115807718549963078198672978486976368081073134874537373657833393174317446235582742768750607594394490797290793747346122552780113992124611536868489566783212203604518949112092257736662729359059351950682652589259153297335187283438673878328587719189384979122867657944635848937300557817692818026499493475093651316625572264912171331926266541341872238532357149620564505568393600961445392984111531460075880882394113529362238299821475480102221875836312647161979195921096587457021639621415690839666722908691806641720008674173422469677224476995250767383383760510843190828134479504520803311160820353242108560900789344238171232934805681229602375011393350788137673019595023304898778387917812645356627566788965615293868052331600137966275352475958704852587649200344349129168630108105309628984632143999019458298261649306840481698787626793762188942154345610633964935614175058664690020404971067781281407982579106768951134901421251394160741082334098795838936568414100086254024058838427568354208687410595024332357437833372246955640200556714100369258132945125304229839261674287829749339339808830398391879673690219716932518453873515234944990559260209464750522002140117774985039215227894900459085550453162790190465760564521184929257066420788164018275070962493569385785584671460718042436662366045092099651687490860591293049258010793652764527655428280571041965872257179824341933620664886442923867944193081794960943617806821444163075501146133680021073289282234483096042786898699226810739483528718591956089624275959364879480334335169818857020512308155164222763403182390049496318807003196408235797847986398437725901340959476038970095344064661321145017764523690064653411415585053578697653798614838810752948799576618724263908368127299486338916166502104219043406250769628925640083421228872587967606514083898190765564582698070086895005043723804979085680602523625212144977471079256793248550529109868806074680193549629863658275317737239472191037755943304670689468513884975920911757007700943314026072038631557091900052773645719535586126937664206492777642798871493492180425445324766825000079937795995064944336137170915248484243569811160398759304348556171751384594323419351078463758540750202156919989822765322492634971770908560807467470437397090695868721545169299656035481740415392230291114089260596462291363542829112400878155381673255697807050527608295698292630931813948794694061600847374749100206562515973519051592081706215256987422836546385370429732679684429175962167955996330069875806729677176999957415841801248707560586551297026290252989150625072585302435217115628182965465410436810739972191232625175994175967274178516857456874898484485461940685124013276006846125677441975068698268187247375268213562488519296684947170725405631532216532927204254801495649133517330080322986062751107270952694304490568036491349610201766603218296746454488185360984675416359553361736353036861966475371201237310319342647256105388726273469856393393532291801070897482287238371040100901503811894230531291721931180848867079546899462701310984540708029158381084963696761361152726816508633759059861646594480823786554838975096806610206477609891497699469730825812186050900729851308346724644539532423500659013301374956573722446466828875562799078120014390994299077994275230053421324969667968118177378615894388852079837342623455814026581691161228747011498897957006954695118847178978265886641296263579906424471439020849393551945415637177600661475152329859075842768353217171634022421256164510624948802793125084532215603245177690790092444504019911554671688324362307746901813893225016535593196052133495250767637757517930087259089547978869854714641145793274096683515711046506191046991350260355136118289437952946254947880318643831111479644759641694725589176386988404444276332465337873441143951281618915531604402626936146824323486325074652970128487159626602001017141701638596396377597500719200480162116534576411967682303249747196875690230459558846778023158910657060438857715891197677177850940862064166605670911242413848452241728470983612486053783283530887969499166440587880620043591646731614673061178805415766577563974259782873537219009685174197620654839967963128321770473575734631189424140673083513562273659717094161387222545357757383064271037851369396596961192223969517252044187887907957288656734217358881885029746214907758626004403452382730446522169414876200176360619611078634071342263773582829072059287746278640447096784653564917005551563455474024717357370195491444999660678312013231524094312349756939765154297953301035883628978368301496654266225009695016138081176365740294826588548691931696051660768463684431817041159521409273111267828565794148282653586313039984144786716516796476300414428065846733869718890741478268719486159231073485018139271166268584118528334853349815029554687623485773547602266077916505401357161026161111771555993623095813211521929718483093251097248230257233874934307473921826382865464422609200393069156861511003794291760247376060344376859999259207410228224037012670388918722140450633377077772103315163595284451841140902855235180644789703754619175672136956202193009592830651462412696370247914295260949425355711594153921261978064620546596105082829542969213832086783926979806680708383131362099225450767220996052372559346195998358501603544275944056786585007485591863735628007763686641744892234677128433114013005223730304388609852193674358906172645594722155410367336596799434117080824213995483960669594986254262250729159894689257749115513382530915086668651638869849806419793789912027026515621867634483996056862095224715030039164852753568540595973157355738922842345200021641686844337219819319429235130335993117085680371418594970369652773994888544742813681270895510690186289968156284936270386041401394854792266975945569897546454088150041577608645149783122020820890821673421924314737578616118058309388552040064109875489423060084620614572554110801417757116047426065853049390218336130063788831482623023137440749823304710413180697529106497606543392488181342296170434708860128778708260107063982841426137250090062047853263615477764215852365775728654628154215088014302379685640894250786088814379126029815618523505019402598250585191325199332961595276898716180888382050989695297277791939638258391526859866695303821963661443696919985075219769890333137347662718846168544564654543337694417860202599782973778203908447241424772181158657645901065016121373001841737441560935705845218590727697483090312859461713666080569019312226409514810962590954952917812707315655940519484621797461680646971109370687611597243731985165362541737030932586563739281442354294558173420427486157406338492720674585215674027112954775487750466016118906531711563680261676215892545401902780605948489032571788715641753031312290231082852532491784142651752664620583612876042453446765325175834306754223481949690220447842873250785836629007232614563901593724477882012850262441708950705745253005792586595706100413124001069688803804794504810051899599651081955087826948312648123570587850100721812107502234641858269852474937023537093186303090800430737985146239156128118267341581480094628007979068196733046097992417575207165069257813343112217757622595470514723395146468550671513631885660610736052005849016541310787777162172310871467837523406047480946465794841366368115503184551233816141727744272398700639781930137275714169905076461965282491016892478212157351988845942603730923310888177288713271560861553552561931008815400934295918969515101398304542629550033738558964559594589624089814983072621997127960433264590760597501322584352089658542030356544577608996494117152839147612509693711707030526726773054850794460284419999626914502920261159467611500497489304338894499156679665866770271061364094532746806282921354879844650707759343495613701310175702394329183006078990115605645114841722776032866436926004067436431005094285714164034107465039157100027932982171847521686572595897156393292955586849940765748027338772445800191305176099511988101556167058456723250240485093540601467726165787812942458202248941848472428789939061916468317975932605175542121813621887719155907286217010539449137015602718150474706664166667656853999461013609148635249848805111106276109077920720570466354577813778353392379624946471485310643430481407661830681753425133997509844085816204856130020570951646081095953783380205200592558410131927870834871790092939740185312898147969546115482392699080400555353086015526933831847527515871422362256583625893784706473907056451562272014637387303419922529738554698580732853591243284254092772958088447288780452643954563078610452778307253949473880542907006506252138639410086981975335241406347130403145544933429398065687983483659229340205989341581283999019040618493819330955992015464335934637309586666970316753299353528099087494149030353522555326840025122618921915115787643615980323915988845858367531107611102479705467801941077751006680272890206715129309073288970096208155334166500325129997376621965178518466063535730919442998152443387098776825949906605558992167925302754206386111143147602433197790938682334769367098529756155492463647639199929881690483870945400125062613018444373368955182099983473799537945704671985698875290457733800197239109002929292018033299074433087689607590538954967993548623342464539537565442090696264477044890973423584681215578948327881008081593372655030780158302308096561561358333662981239969913666031153543121706461633769481949554664853449043545103514304257213308933294992352215681816599690762287881645839566039026123354248954436755985478277245062113263215240894774649551133465096005987771430063605900207438734737876864939195547936863798441742938621413417119269824783118746191774505521788710109530357681437036909265892410510100803088287668020886696731512338968381897634424796462412728192986662173501340512473083688590997736165851157268233785830144867168630479127607288745804872262820897414716164112685710077812989977057854411418011635640840120299691884038650148382106566985252489656631999258901124232423613556789848262043358767515660495942206951745784837201924283161915817690940714689452287944370152998580661021547108108576301101710952578250222879678968540659737641461762293683974963725776226268721188842751275259975502419075383152188841465599649989953068958629904352515605872758198479583129207664219193373199829285117228419304803318093567105794770300284811690910890271995008613695483590706598595752775292399232404572637422332777749754719983625685794351164501870338549142491569515202189905950453009652462296487327868845969829515732231373098501377952960397073810284041395269085173898259687688934590804868732232184663995121999418807269389119913825343216645707745738272489324440540267278665420628311729474895077388672306453981838760684423823366823985525644533080853991327427710700406477103612859707807224098742473049873095646819679314734504310282018530123484404346212466161801040493170236540248234015110736871189289410086307983589132268656513012778666511087263885665325802580407035931533408793875316187690270487028547626426086382385856824806009883362590501996926020395005158741570585355889766320512093357271704429009762201420023960193407018160867083205952901523600229893421780725121453273351394240719669798493490997059268596447771594298536174326010108161484385992084025969624072143208198026735632837902563928953917429727403245291428079138734498373720598986692872997004691162206410175152391615349583586713139238081312858623227112152106019496124096919376671547838676460653220514804846042382905224243865954972235145812124273556171457789106611832733815723305249906894928615857793480637036214893197848880934478243446347984983129716499547003700536823013577318429391849749565557382742131136014072676957835532931857358443459409355821002332463726654473119235415388097783958985218363071312432813650134265484689332408477062017518004382327782088520596963401233257362589064135688109421449687280634850798451542561786264737761406270167344460122269849879189329498066576346155972062474985740711948256926303248052064357966116326651141800324623218441498723451187475670405681898368248519923003577155575051475960372687804191660716549394673906561459823293360798797825844142859131124953960607555250999348936505998150206956221742611883099184888705590856864659804800781556571579325868762548022680550031555292994542858066506024964746262655253057130165634255805859323738150440420311826690149486412396533558050908180899758111081554226544891164716599672333464867635509671730799344921870300535985793776276108213177230356782610802703407110294589479130852171069662854339367451644071428755163371958692544056648719402024502992193161683623085702517865269659049931574662699669175381603946487366958273300296011462597311265993264962536702775188679254525178219562117553840315826370640315617039316395298571645338286796503085691655926659034703801032649989685922637978917199422428258646019528757572884265600054458465774991182007141736393976002334150614155616273528912682904371827286144925709105881923456499898722747390374392338204942784377114043032836201703554340780304155241912768235208265043598835600074374390231360044303157492216758588820654029104167096259757729966286287280263858958483594592235107449378522864966552435098148782847797224494087055064405039360847426569752956088998946845130217282539948307179869132867639730865071417633779851496157988076048932319792757377098092007082828316306021599689647929173910856840599775835066936518485856144738358004260627826718356309702142386634601497597700500266821858390076383990697046441950174070598784062522863328756414320745961735041140835389093785542542110024261998467825143426041843246020688165514499136871647365627184745904682045884061687712476547752543472266599745432981936475058088938863533429812183568589672865191500503259545609614875861570744531843081881313852438889757172147219871188215717051973242284844188232553129732407775055102098001419049153060881286737848217732054555891633888935320335424228061901753392040331396370339433546375975861494189597008543392362122165667135174356983090537558308178676548454531107128159993154886890893073050095885625172313880382694874998918525263616050532971731601445490256910095710751235590715137005323880227189386541442971146601990714812662092546455948181049081054776938888886254707260792790769272382157515964724733528474584806384721673939546641347314213709182191032610970200929125972697469806287461220760336566835609399361042128140805838618633643488491009614837240675503561552227520087520032721486981906082146472979954488156968930214817103356896273091955164196422953129100400194065773462755799516550453650619607412782810983227153376648087625569476437962096713006683640967361872275149715650712853153566647792881132179674644321419114570944353390396634323714389846283360114750530880098697880019876174739069693335978993417798930287749607627132511232302365086173527902213169900204522072957650380931261199873055032832892861341879981866335473542390483094182219543236975959862953875799054407927963380268954007634852925531190595909649543821645729605131850035333392745980879240971983840758874312197561669537098258019919074682337404937440072001471847945697934278361996590915570335779300026590861211004434863459241189603775512835505028040808378774149949005311890065611581554249252277195728004906004226261722607049829411225270179318696864036816427168984822798390424591176196447938171898690127007349884890945209235986519224752968591924472207423238474803744584692250581505460059296137558235201261859508301933651463826232777836005584515660208037057120963943017678069800390238932827390344628917037036406045571670858905509191909781301550080046708727688799782790727090068915691518953667857370955384001576164829912200820421915762917829750504642871991212762357878969624890475200329400465786410754068492210720456781516343003818718965718338967166917003134676204966592104582338897579839177199281939787062484452903407637360518561225196622062496026079102690663975331764170236362042482851574134799993663783025546667451866118083587953093913831404778981664052763540059586911803348511302120794660679919872600645136243971292201289251823026401030230599675470353763915369510396491425924416924496486085874390880554657746999878704366989541280371043907868071716093355581460863677475288497808246901885378524996098851964816904634727981532375433827880594540666510352920653851083696956423071077585689584230470089616957191805040761234465291297665528953201484066974133145550485590625417226771845392039779107437148730799569843553982221310295789603642739855808556336868666398127316152669192649239597719214875971996150992122610417345125854894120736066659672854203066134226483779956892282264986029288025628734696436166132107452526120426219287696616535567157617827806204335817291902298161834164861381247988492949922334173459304876857366728684796692451679179070786967106383906198984918826747252860362475222701295540732937962875706376380802169778092801471911215717987845994270393392902834475641843342845488257291458084592362956273025261358592235307731259380357730388214037533821619934379275050798229868412142967224034424332461339146847242276167232600696733122850802969001051158218454146076655627006449706442267449252252181530319003101602145412515228256310401969515906587454977680839809685084970170096609153754605592745457683290659219487717421239688582468636603992162089662737701929363271090865826297090930394848171030508252280612025803965053251038157190796132374784218607958453210957426121106005513680544044921075504847826894946635403413844033491708757854153673228411125852555040318499450134371184651124655354041102361646009415044232052692014077766922088692686126255336186491117421617539897848438657804974575734289827796264075954347006451893967725676061396811484667133690646104297724313818228486382886648551008239751354973119674886813352352758094526086697132312942478468393602661453682083583619923874478809573545037279665772205110926423184998904581767201397845697023843764960183885676163709542355565642615249329091245085371606815239793141523395933212639816016567669043863127501043328379074190372497262318211643046214977310096112309605487627921926620715588484324476125998300099397984588696485209557727356691712663577138283396850864030573293136714561794127862487470955268359403463052614687367311105455590454747481734359723118874878789233950295465363365083244355097066232728012728230083551282955902725114764221994194461332875391033131806003926163031204419409488108372355874531481548990700049553086107037987111033092929724706899746643209860691156757848508698924137046146723263696062553551033603160012289604720996841317929286298337993852171854447649735996493403697538119199471324546011559153916092434012509978771232077604146518743046073923400189305718566231494284492074725708538733644182804745617004499928723702211872505144736442529200054999566433501761757274239826397556617584523271794994486815226810918558650932341377710391039144639330446832799323829351030683727512484949735333316787423296688391614396133109736518087028351842424045269506785536582691611794309352940437398419817156535198185872769378147843530020965650051855408987794900170657903361354236557843715968407621309552336863065459177188523435885780172141282505405801593673450790754335720468532993810605069200180942917252691775899344187012846840363980015951225142855502502705147575303585220345578631825731794913586103923177436593420566663623622972635748149452471487944983818711411960649604047311443207177763401788159292024321224900348865873937345892961611001001959562762376271689103591701490906501125433432793274722063403550714763571630529350631018516505738637298315513781478924050055874228574747355707179684178407249359579335678909156389326458976670265780780960569571010320995692757513965090447129258271293219759206381787794491933212477285438307194140555527804592256953691042208013071325239653261792176778017874863927965449356658073618194599985506850757944980133901047660074724795646993020667439317722757231924530221730581158688043318367850030371076927944177644421264099119919167589378164635708697391505162031979629973842089845141909120774289718634790255817750635001054837668444756608724335138539592150014816085791720677220952704092030975947967385877555359479667219360334174611786753350241219288640685819046089817385519034126496362718182748720232079993763597646085515651909677487841895248190546009142339868338390147231130252500347351789032603000063622343761368658024511611283097511490300949328854458750131049501578313803935281587371546541789740720833295541248967374067191824467487140226097486011375933538419370285571970849735189482919607590047084778848721451111883914482364855503476504847320305900800902951894712014034839118622335235557729148929735051246155761459979947543350030822048721799551925077996822530505176976562481478366432890650401030173106453520101920825638295377742436202550511033010008686686497693029735250034891700087283910636207307482436653749302605906040325545248062087687379409928625059661979510807618704947384958269901419407019505595695072746900120830772212164909287311980167800821144328593330997993918777058937821319180228250675541553261609197409165749984590460060026243585946214310928620073396834768425199750471571022104312488252948259868589991133121740074251606990250940317691647627000309352930915926221842236127912380461726871245792704181025373304250327770835418585619342246307627409214444049804450246300089038943828223279179992003178998851459172808095674350558169068044659009485401884844147492663509076696545261923699880256946935744630660505561798320637365250446054418552313572045017932272907718580061890407803001232466751180641221185287069894774582877571216998648644635867242592673875829980005221581530605060711233979807706528376274048150181322994876825031736184122637387378005625607467474608702519517135627782309914756698633579532883577647220650264746637478068214483388373191102647550759074723160880939994627991315381355430686787638638556949470411243202045000063658697613794746440127273384709921686973792677772444902088501811086581199352267746953406669090686619453037890492648690063353049205352009218944592074636792947087697934618641657098423960522669199201127570892473643199985485589813491507585078019504586510827338302314449037498358661859599852070467583278095683338324770814938567226268111632958379309860827967910421923713368744244603166972135435651691931342748541822254057643630919316245030555332381574610705808097788007858038513912814715335918540769994333068743757412299502267982864459254446702779148463340304793113075976147775290686512309094599409097108703040607146331062359957926704043418738557292588183950533962410304950222412106116501207922794137064440645831155324398175590111266828934418710413732671252219658838138012623062869928498514600802090359874308221489698749252411395564535690155956519262322759590023674428842854957835081024565821985316148741289882399523190383540223169769829172568524863074859482609229382435372679873549451154183803650344652518136798029845474994948087372294816125270211551644561335852024016808070097032826226287333021131799506275429325854108978119974998404648011034168807512916582541958826242390390062579338526819139307233835938135027299171412341257730273364323212806482081731731157668432158008346543873115385872159648072510773842302504248869421937565991849852728136286847315099499247196817661771415938360297118385352086636965590700419029705373929747857975460485205183045486969844421970158436067152500661443364520499513727903702511491766340453609931229686954965956928063936514310006703604826862428138150867507816361881751263958859971716234703084235572904677608807166014247182117348158782793433070023357132291800712700335557350576441424219577732540122080637705159172870955209769267179920295078043565883797534533404007965432553012543374192323278937089860483565803846410255161778943192998039843855728832200500166263697489480338928414706795353980110418686095161862626529798508784117999601676866926939972740556948333573781976833490097202760302400465284288339781060575969481052357019582494299772756349513268917592303335467045865671540504652368723837313926912827750175442166621982833785201222195448252318684739735796341793237843565972694182064615726632923600934835841399400127893217252307006935988942230225529598676780075004436892591059389804629560816299695938955082538384246952441504843234809185395869592597915946175964924101843464559790962524065372154319711107159635775890368984949893457755724971183151111041794213200977001345437621778297401987384868191881660322432559903430490239993780838786967463563641754468882710957094436781938968661027889315744238652600171419826853536536898178100323229044687293096062661293916071069038851867363423804582845222597927913253956563539205308136681353354943590937054264845618939849331959142916390528249573346536248833331930965748495342648787430427142273644111581860357030513072012835906427624769554389679832586497427527438823959266329160932293996835438859342537701194141076433421426015254868924198742241554431263648993284470147350645282776553504475281697068353389908694906796372013915962715609451573476122825269283171856730773118071414568648574359956945680669120615339936372042276239786387434292605408057419444304118895581757718156293101727166693008390335031524283522301237150723635181105147948861739635621221485769783429917570817636925194049764725008828663463494795117753233232559580903776580968783843293799675395078998900174792611347394464752011572926503486540368620544643186813529457236170852029557001619830592563342696802292278203433485374812235823693539236729803062845471173746809368544839120215598896589183318770758109949312099435591852070666715915507190763965742063339985028274856741073573152892080389058144639873170662264697271825120719937612793798228071515107334324700561326850694603297302425823108130277537012799614769345105841233368522511231723216202057610401828580477629620683921211709648500338017082985473882783822816321266169703578344988969951079747614871278453518699095411995639586241789912948512422992552338047987626850876052744643662323666615651206647117193980948860997226136688898269637464292942599005824461617699554395663539046386330864564685522305506165176462640937116771849593632395886882643358244642815418241198775716589130609562312546034945550806043534943914199248217675480233797321760367493268959815294870446076388157037957607689495238096690261887763249693553372380416793115060399393961470001843189670910005083571918819229026285470489806656860442801837925179534426113983593867501267682347540900849159914288247397268171423668061276827584518267069812081190995739225434756316182140044033305456115516621634999578317040757431099199169991160096531364469099462832838578131287999537128220939645773109909556158251881987119556015727163132024123634451140345988822023606099712711339748138451156391336155716512781962674918250158580139909085014455093685075577736650833023550989972514467184559880382141991809886109979500049073190926977418276222962897828268836466431982234237849835502520484641892386234225062209794591962048373807651639654258682652758613926404809043454513640911682919628179274610853438358777281660369826909357970909386373057924510848417649911468567691469604742918117697491996146393441644227122176551799586937567786378259937702965597102383572982360532603291925795661755957296521813618274406096302520034129755591220680619856260664029681241016483905750486073945057066323582736034700642786573056283170327686671429802132703750173565118854289032693094361913013059445789024377799510006161221992240500211596891433894122729578649499960581923505572146078335638739423386373517373455962068598152968404652150199906274703531780737157029045328111620597499692726973498575821857698624655884597922846484229866691798145138244375692612515707970973754435616181136276254902844166712886603207979593424317006233744140167306791057419126987861336008996483574598794754405162074188941040329537019738545262260200191166832656530487132331127985477165833772593147244811099527024303476855111792401486346183644554568950841003966358900001868979998468886868640848441015171755528776049588886936329183995546949720795219441398432940199744591228104930171211443544981485305697729361282290385846323405674289136649146398004930940558022278481164459092462656503462221517389132223121976480871479508986155077387538753020137356904982031068583432546652855885537553120811640612351933181738510457547878044809573645430876601780229385213647775623470989735951824557800185390577393878520793533065093933528019975782944846337942630846949332199376980616174646651181339620316206372022444092681855743507882833108444566247619198536616172116727349165539438701801346538053264588202863116717229959637194664987146125979326846188916719107390269768642082826712892212005696654902970587136485119285044211119401268124498746830813210650350197580437041833247844065103210749446123440282518733738453962921798552404482667509620570968275105715599917936900521355115045790657278210290173492139888883299496409074016001155377903029267478170156103274750195105083231525250372000441660023626849075057125414158214806313462760157739617448006315239199244349228469663943844764785884558321166917048442969763845884671369390312852917967651385846293516974965939736029617768571470234269594173430706390968257609672885279936143371923348239003203098422145768053230910375134210009120997362954861351882552472609293561177110636731908735032404958970333714440057972238465757014808233739042108703524974244634939912132061659335577831636929416273921722594649340532508119368205507821649117425177235682776522744083209304148703848234093089905465394780025879890643839312053599817135266535635595349653041472685512632849383413087757804310859442791334900860196319344981068822699980959545662963386162686772503384809194916095320933316686834897880019462685791395527304742957365177699062062935440452316468070131729893075466672790136914617570374617779821919303259342275459196165572030191423208050640785965647751147875399534874920115745745469134443955381057776514697942027794350846916793816423688872905754926572935288306698345052550318222290394752009274450158657917292889070785795420803882434014725818317853605607614292299112824668905735773083095460276123744662965772318552757736226768477938517962568648949296742719144914629298656086276134310188246845843364589260601764404749148825242535704169039475656178272491099881105059502224524938305537522625284985597218093239189042593345034625748647767103778275195623005500184807973185880770998006478183661643068642780738926961432060244559096666252916882735273041517641379680392720960824256289357899306601229843114750046432592113049622937491414347412586100246988485235154334726591162883795440464109383152082488985677802965413694504666257262470856624547382067552085776993931029699774713460338648322766120910362483752218278299603664383873755123510651570669003801281780625352942311197231298989673376754159206612850286748345665563771553656712581191221896402512490672985793495518105714271871613429861020209309826847381548066684119964421881320352631264786805398193437911766050523035301599336428540137302493031946019953469207183637550178327218158855912686969813510608632803001291859606700152032250532969519895784974682916946852133930054273431513275674912100843680684393114664508437462391273737233825925144216261533770415324275499967204757392624597870037640045514611736142575538974714229421605884763165719446066118363346883206942763267411439685349369628415956743716144649164716570067452932092957016571531247275459947268313478912629285374642997062960536356133568210010631316537461628304657559435724809136650691087382033446521333754274000276962417574666461429881318048759142612193591077627033144435652314915599633371878602790281063070583033632446912038931481188767067047026214815237362417965024868234417845086504526946307339990512902924189180107183083525710259126203828890327414677282800586384639347878236983749314460148208576176416472833470446347451365895366355166915175460427894850068056150059053650140152986460714140404330288008490413070011592360647475233242401588333689370517550161102259381880895174701588895244173824395690549844224662305624781910924508071689382246032289957963775162253940525331537811282274587676695609314348808795823757219790051512245856652974037148003594168002719307116881583822118047497365909330720683741189899704557123324016023145801516630795401078277018260906250447853925468043648267970794517869122605646192131892106698926499110428349368966689521351491980407288068481246768488050423816580636902837864962121955032005466615390707325276214434501919447996243938125815927077364426048894472786054137208691176205954143450304594250114057997612695433407460853284900769411424917250514813373373544483343955107648894644420275475195639430942705386578955584203791657330047482471151651580732044910107601239328192175334976844432382142722657306019344011636001003769790499175514652300814305037589041163875613643336325127191157046874987394587981106878298059070145015535644532700061172662979826634116999067822268323730341097360817364230496629033010712150325543123753076017375041042469883610568229289806631067680864341738525652370730188963284725320815734931015268206387548562334522216866959174127280310898259348427158253220510052963400995030811382710865465515335394300447417905189940432426799092085137798151942070926092087444310797033705963593727326760337079372793236897868744821911638263135507071126933341617571592651618784553075746517297786783940062283358289225288784637579026121507925077460093466082145949175196100668273751170739821853243035586133680242670390485512731461364090303909643594884452596738798686169826161847958832050115502993153677735959376617511990007197691588193849452015826625911923925628161711260484977746295443925965613452547870162140667530401739980462965820845482005895075226608410323640932468642629559631233733185365908439704020405076648396327859512262952505095042905535445412720620519062542460726563202860924654403159648027450913552213198250543657037770300870643179972097247890142748436279055268841046674929753430946516805029950895383516966870705686497052438208581857068886060502848429161543995560813257220095507774262770550340628885831051767114749324830340535082428350922882516523972052043887187470233111498624014793710687726411131761910645007148981561693109215978106124638930890558726691495870015232785490924114781150988081441734038688619021774368461473106851570547652281500991062928581535573561323272456255708970278976587107737370628370516535156357795219490474696300738956843179995219085239826033712221367241447240571755706471205705899918833294754325437442167110510975331494551885930096473401558191322685772680570288892345403479179419235651180430148072107799118389217834938211559379775565482346657376992534254389821509496762953945584650565175691386825349431041965433772937957912382822985982170240150315711326660741740975428994825532932143594682023100025625552532831381474564466032878329287776369174277493804139211283248053373022835092049918628039286486270909140613695879641568907944119367391021039051733808819485556537196562180948405438277172793198961633032070876236752121237624483205808355839937988094144718692214524606906696666580858592334776071462510484364150302207715884566619626066660361537465601733030731402852746464998889108452397518274359671610175288669882455017122314114608746608659833992929676264553673322016883441916511644460493287220974726191537709400400930088143150549551915536480937039293077734122389718270568302434580090998951572052728936749785741739940831567738842395405829726502001093843492606716093584952357788841188715608400617126215858287589322606811099516156221093885414964426644101156864882764226162063646329827434470550202132642172569837657251144446420798047779534721641779640589624563535314810882492806761869237760378648000095505875880201144597720957970566088124618812942951869565483792490106822889271779273819207348411077111266160166823737403654372646543063780256552040433891438744326644954848783366260845785629843453830935208965475260140433970541539623606889253475776757577033690719160389465059248745783319006918535764567809469894300907297043401715064892625149037962495992036174652052962142081632440637502499010225670156195272689149162898878934706217813892841758979424509115185712211233708873528011656082380753918669751955929050808010529027597597901307967327238829893837820100221219842113153637443553374218609515911659706973260365611870622000474953942345661859236608649328485584503049756515079334134115141263461486749701023751746922671495039176347975229453339683826582809893653453180453475383840316064515665186465937313484518234121461331100342539675161759812795760433745384042850149657358037041101020267691804441903706520993182848556192482429016832829690839753780195823275524402941983626018635339173234333421554619972898600524358239018274738504194761301301082622679037489913379128254109459306216453103174215633845607799553206052800987479868323706299266973168331197295036368622938542492394821582798708612305474611205617473767933261981513251166249462572965790656363841888014712562006703913054839156771100609279453504191136033355438604793040714118007907233761109489309410211915490238285052257578520791629997012064092703825150441780473191139140991600341693551748097085597786974571778981285118828105752546519747971057562199059553557692502099341166067879815154034498153281684376269517658042388238637755380014482538441533481007486539815627231514092695314154322857416627228401757390126677683996931463892511429950184248280140227068727900151478298095408548535797134603061186228007272016175278107339242014728106052752237486206790277785988281144691701624771992053448332278315675695808604303265751885908725151110168241509128619989787357539241856176655168270601944730875466272473964384024508053480563694877563126783410447511329512619110204675990091149535019055378540604154761061778101712802786038619261947950510873533899097176405908307869940804682341973149767508581120585798215807071404581535200918574124446744432045224760980170851582948168534177829486786435550970383248981538052901207410245793497929367239970751664341001198080103122508881079068914985615256434547708497036279784392241082276831053142483700782839515418565969085438112948981291093360624502209874208663575901544246897603783297862291082658987209208550546609605438111903728514657177522266674185625345876232511488397012450679948673550648971811693279857606149498349207182516445240332470751362149072801098210138681257797718668212015482377922254683164983439862686218525540824418164267328406298346330289238388952250646875531467479521408646578727926463037510742899587955865381987210657322691807067581831590433142267305394471233025971154170892662606863784235703086412122152945532848396646416317108680164604451058949383325062557770732602656200226010458087177256291132286121357868252154384278190429734868852035424615317229821809986809925077181338508186755013759752633416931688357724335181203784225097381086074445106619401477807158881592807867581076857560501196353798754733545526254542096181314498521342331135792472497140702208837421517273812696446783383213546254154507179745889994159065475039785446721009552928327405962605875452856904258299155014110375437919510230443256284833062082957141232136592942049664706663497247280048044104446936048943047988095926638506618197678563349790451995054580365509988257426194022104172153941749015611236705868261095198434832865876691018030692893740375003275512360350103767449179346027459511681818655430529327488294381498503843864604560465036135962509505438940921590892806277977494932814022368634486419936179172500964509565785215081549439763545889251814665641284731725904370538281014467997851256396611084096913450229105454160360501630072420443530817917002226318785380838732724058989783007915744350602866017544191795930460502840107587770114136135759208680192718033783385131987053057409776818056251352093598291810792126455849298597863132438319388469922212901406249013558021461917343144184961743592097513181507628125976637121245865768146626875336310645933181761569957576679016799311439979150797448661475531294042486654954096051751718458438088304699653690920301576796151665156472547370264612155300305236229830988209615578275139530625079428049067703783199651759284548702981341546400005299044727490608521113748970073952050166011388553187121024280371344101348389866099248777515223539529355457003260271660178630470057242895306868799393379299484240127485322973525903941127656046546889011376539759972461392272178752506338568096304574144917705211033542629708261908355137850839186718703750506531264003729115003680799602704325710964326691768276134088630254612573585910457548037408962406847814775221832182237461754794147021280328903214213124916098629938255155733713512961510694160456226286513937305139342154062567030733265668392363262232956547773745942513166234341222859114265313534928688168601082737184378924526924797978870653969222602841901803833968956796519991699402872710139563447434641937685075905572928333721851747409955142595137067196167510570463903601698664015812527305758785575577074775073816012591530227599129251170919550182583100680420096856981633806476370819256151907002880488457242649405050543736123848298448279513810554115232795269876739300755295417459838452766750536691701006932865357889105272968483899275921282100320137914646978501194225989266042138045670252621941020839738193121868352209029321196572839981621069717889942975336313301062812127153696995147955722768588017326039763307468898299121794274684845369726838283211048771447540759544878838318029426384053166889044102395622909101532869967383154838397804554280164463176294826353952973672321371835940890192587669314400816097540984388874683097930576072019666124486665887116157371337713983153935485818151563770125155748754977934817667468972874970061672321857165179296641911563622151998730716440203011587953060660360794674069509880791929755019955771043704259383797849893940176772543517265963671830785636180722354406266538504585503593114863320528668637506639288089328873098886233438638679493874226444263091108500643213643374607246992183699618781041142242085019668313032323332872901733990965841814672352747345886280443439679976334683926776867917990796958888921872938184479702853120015126192837715864040571139736797224490090442038228316938858627111262565962387800242695747270747129659998616935997260377127080425432376067262404377124862665913792752380747420156850784526964043918864261477135054200312894158789970976722634681100683187132936614034775644681474746992242473162987044339372649192213553207143138943406664850774034723753067530817531533865499922847510953979212702258543303189301730006963445647868523045717499459075276294717975416596376135125184345957261580819797648464583618690823947667861299699564827946414281231958683603398082431618320617068110970718674172795624440204827593930268505423023811785146794920553448864312868904260652107331209953278505244975434912707741896297122990404196492510169760987994800906417323852656094522045335209398923824342679601542028246766167214067662531013311666254965018434146467898374262410518109625181610218232963955387082558067059475422897976914601936305914571093297616085789278464974918688705969329602720886790523856429419262943758427298115109620095677079262744140378923988674385512737578794548336369841141890995555178029398151733891502659273162169693395689475658071352801598480297012060354338773041615988163205931165395618402831352877876822108715691233096700376683399859800750933999142953888248870495599917052827675208821044235632044815419579217602229470840494354646883716788353203083165242920211159006977747735997288500898437067864307343907598368495181126395039381945041488998067466620733269428678449748335766955614187301213503344973643458967621752973463861858306802522062847339991272477763227282088241768254305083786136203517292373352931699547655074821946489480890969252039022412831824748538286188008752143169155105841589454224010218381453521486678282274594850619866293481068781263452725617078738108916818482256346946862155421835155035115752945197699020892668477877215493281814838224211531568351998406646632298426162820896875516022743188726066562426487142091255103073396486181683319753379106800706594253354871020919064889916321436489763923641690664874511902261822181172851756284815700986745355263525375018916279944601911438190860130713290532059681845040906995592048808767314606251323579474173015716770109007546828246879289552311947388249297491951343868360111225261142041066553442599350972642962850790197356775322885105113300797494100161430843536945258139355151216705110370000659663662903352113406313986675061406854906368732676676015774423356938813435674506622128457884899591455099444575331092520810991576290133909217683561574161503492196654879665707278777102761307282501432060818210745280112174759841909946274684661801902552008241814663269118968159382723851488973970199203112212747718046666710645978585991063859830051317703317535439212580635929450425873057519087514968747862790206773173856112652653716871094966425215374327073832954350573509432104348724393626447783757922301372956389011759717094358114620773052599189455246815477511946574254650697947532267373036069401677146403589633810467426630930940161397256809205257440735826606530825567523825915639837955583850974567725462430322398894626496150528539862433230106457757715102288676766999998806128262823128438655559765304971822148144267826763992906304824152316907683909959376867725811320952069948755806825094591911882750514103864105218702217547699419056750175833119544454059580021800707277840637093694181406107110279459189590772721083449504621440269932777401726549403200607688256561522347310401746845181076785691532345464179122574160021537568300672682737733812509171042703639255081940032261747123383459476036916282502385299354891035388218394013798628733761518781644202392261762212363963502480535485450199498828413971503906431562338062386915029486955858285175099150577442538931000097131716749664048259798164029274637607200979292473226845203391262438954293100041666217632055918485127989226499456001348316310688144365844563218008920419021757541950055703687749263714347387649991365369900675585141871426468064844587476111728774216258542470154847435533023773841829121810173586409295474495665655948691986092414452111497031110605926238327652717337556070424081896379568109341092681694378291887135091104342416985035656465370533884893991226880734334376320412543784399912285345449550439034254875263280864615517842033212164621513806757053383575481085816393441106743108247750630261121861372571148512005220908322789749145738937805292473909004158083450873792557545672098611842107985544443462298546507116618139038796185623322978134983160791810942748985451690322083073006303348651724200187615900449235454552672105152653602658657989066913907095502743075209252847522323162073128881429694519451666700137843097572267584252023874107403300960264120636637106722743435295116169484459917153847612701359353482806960443867474412824174021718188225909989905096579331038265901916683681242905499830074322089845794028603551173371551825349880515202792108261875081099175413081901374858875557355579935154838102244191422456108356727248902556690758275305357697243282305165691620960640310496035516686534084011079969988316360273076920708650820726927275686865129544365620345094988622719930557116387811339744306582305923306721902390329589850959911993330803891326991790716991431119581289835886490326388647867873772866199228806940779340690623160370654041552097611389637615206776633544874054254264614762304487986937863190872814458187381005302449809271615683971191217498556055838085335161690025976929986603320961528180786563990212576610238428682068949316354379636460128547369463714038446825719178128771123743502943707964614514583514233300245754108883214234201437219764259953304156757325941871813458310403823552876801745056964330934067093020227040457961520908301475214718300674851888684527245614950671254782625395377714251536920419978753452417650942680596243115714593570786742348239548678589766202620114549925236646870700089501508148516760156290081768242728689541735716968592695320281584742985416600657547610353352051550110508550808912707430700190218688633306250851113528605368458298223661697277031873195220547837324179500648781266640735545877619592939247773049559747796976102230109171325881836120051445759516558492541881931387442396570890030485149337039440982412489134104132620949024937689688863704293429167265561145711197549691560482301555200400767383197239346686712080293115119739663848404105304560376585688722820495199953265701299670212137583934878304202509861596862530123256621187418007594426058002842263529109616585258532291187344713190647497630538165102379776778031853367592076351740965007575853321099258654133696910256149443921514590917535331176016184727089463359518337730787519271818760749606532059925142118291784487862909254842660990850393791569822019459418586592580131207981971419394947196073764162884329376092391964860204395522410427154104981780111468727684256709555901137399392323848042068260496499255562065728162673990363913034349864419209420849069224976288144445069893865702856226871666126887232475170080773942799713160390055761295613604971182788086926596488709811673738172030139877740810599669413069088061862314861095867277274057823857463894344053872782408786511432234628498572276061314922879551928364267096815873423773043382225900328299702068084299915722754513077756593516046567342722519726865179286378890725423806881753568080667672988952922062877312298690171813868070586584284433904821203166306181444302965427732910496770841424396805965782488299640554211322258073739044237152600328504257837748998580335155091069232223595070467147233187690587107887984952581716094652314071793255986677131099920888460298016543575791634682628363591570888073694285389310262679055481468312571105224804144075286304666386268876567680891850715809532402939796312508962522430706752689367073544289081235746153360979881071770744338560256213902473773132110263337236728991961558717940234449333257273399262038389955473300900504760303223518881847745834302946616649756491008179697389722776365277376597227819455398261254998407099254512075830582685074558057566872393800582571876157881030495647011571762985416741888014407021975964875663940276544810661753072447881661508476977292152110856195119371431667983868673527016483875579574826917205788210503396983276947466861321264335563189060740648747335817673917415387131640532079922413498487694701293583152875173311992341241202761605836377656470095755129041665506444619479538740447586337078774139679480251732109633923915146363452164280856905036068895219862645820090518668069351961843826128337062856431334762498108752209997776538534866799358187022210027016823148607506704716967552738635953994643258993451547682103238332794957555677745215744206431057958090251748065972508310151990501753519651463483194815463577613038159090225368785991479518909609752198646542362858858755776094051910492264590489097573419620826262637440340380658186852754145468714214933147000051891847024893648123878520533249547492178343629114764476385296072790459688050324454184797438378281521697435661918987741088750803578584049934605451911096046881485472454329937174293355889522935873553010883066591346691723094065581921543959525825861174686847441707016315805809117325366237117404252576107864933526426268876083723158343755906315876232237284199057326375213963945061575231443246830091153672250923894151426495221737338552615692988154599456579081506647964822524022034715127773734849420816041112912161739487575813131344766076770040850313533245312196248624864354641330098333142654817128620627408985354484771509004676571887684607403164284091011052585628999195683549926499013522002211871217691387166694503703822635344611217508843065469773024619908888395994168184821933716845121227541589968474894479825763295683442568514731982088165132938150577817775491878736728738657589839217167194733448752977938123474825581157034450518334218201345034492449866650408880441313559158242336830747869369894175797585500700868415613274200803845424092058950965304607706226090351164504096540681390320011518344119130257786212123840114196742321600862572124935584606850502928988497406435692666812206886014174787625487087096677456647766968788755687530338978043088482661282039933063329407359247571726741498939255403418015779370259432090437711013205917516684993259375380176292994315201958551958861316621381001782671254715094899092898388071269764727424011490226817780655772962391322479687309288065439952475233787154878925908434768515599312142396537261937720901925741828063023148245589691917845261305833197509222692650063272619518673820905274276497903280184598713054356775691474104843469730884428472311962196987985866963717915262374611889492883157756958018516788228951622556161834360236590429072191198076377245902855531765184117545088645430200941773358820820980745294629066055989665907874460967071799083555572344045780744620981423558150538847420954782103459428659835058363719601700466554230699968513795814717331829009975543768033142197249205278369823865109070046559290763632260688818627918985343408689222643566244913241785187684345987343361132634893397174204098650253986310581761999328024473205486355186092340024518028792836504776888036687865949390817413094756358796027640912878297762544421975556105303352889724122209052878805459677277258395176936691949579490589728775900293498651929528359059940953035983000988365101599061046095932788889028323876613345328337363148326693864329903869330471239673785580294381710224108582698405564363631692659979116726345825696275331538092260512089225706610772346362234785646109759597059478796662829369081939496299501839463270731928576236251174968301627963784244919490986531996194496138973058466227957097724446790562687429567132958100520831738097802656515703368514021528053435243126942421345800523837276344271481877341214213164567806308431650063520099417799724398688381529829132715972079822402713101679475342986792044051743558997706943198862609193707381178733659593647552582017277606042996182852832132176773436530647086978551386156894299804483562623541936925342264444793710948810290313209514836563932075880857281094452017494819932955832493216947901920402163772307628376039830655500597854955181894917299046677259027363108636588896448551370301320529445128169468540047857661034549714546120007976308151831235709646655755166559548532478625584848133096882260268631124586379390151088169079977862979812241883055099644132917790154580160692415521071748041344321133110040638707968786217101142382139148721752714838511919455529980232021273176219753829457527529192933244614633876405531606462530900040839669634051093762107016879300815860150119559202558190020045136870914198201231479582594078420146286312433810747632568845775493779102212198812126673207662677591608360862180051911490000240015066212634763661213733920595603266918300371292431648283364875862554121075384704231711025046737799288693864533499363588250213531311086958499563764161072960175038031495607300821077968293744491901957264936572444259584294239443981304523838252339072645027186845462445588466575875535823658285651080140644419759648741896095833943431386153541728757589843484696553934757458639915480690598023281537337788539281214352410461486836367408410769809155417958056787172513012618609425106057164934619184372311964882277615444677312779090233930937982614694306366668152796853161387660964705371397987542186819438533196407738368140454360521867694660693722760665969125265475927146815581727532348544048030530445655964261042048813150104067450222584847410717635434588108569899889624045784594602329569155789699964125843425642545021842097056504316355410006445083695849141970934367970662651833890827932610580720057770018058052250021992279389926195063887858303066168942597740899517128308834295311362454099750155984211960178444982871180295477732922874140459781540971286730437719070654656898054339057417677404334300182766584543474358009807468418683611151287576235580015149456047077665885038493626087032450647499017598171721632020203500530792594549670007095266790358617624290694831909462639946488941705977923963418591033637859562840857652044085773314876112569006072831513323181340554193090446361847188600712618991183132442612210646474662129301241669027422128839632814498673118245017840656529250110763862187483465865771024856620045896437081041150217775749586379276408699219311041063622880905347402331102610684885724835787290251855328877368296464214910704939498021169269907110811719160781750311395004468433537039455402094205021120976423136905626343822862926340834657972678058417326381094940041803708062431479003872629563549838982970708045763184946369857764362316021817267730564550787023832842072904901327927135710441023325448047144192289716810711383120945522171642187706240334654019091238483736983100783125939559366128905741432524333789701902741725086481579979695077961018137437907170408603932592668156906069286955330365576200334247150574050621729887782553235210910809320310710285473490434818972302371072076735267940022514502016773331293358048848962426208156839380353580136948534564873182306445590434567523298930362869033095341532721704046723850970673717818498151491566442041254700113463503034978209790764234306378170475722048180291666635910414680753313541360900195193141898845000386327098557820115024602993871751858628472902115119504496532124467260111763048585826169242056182433544527985725998159660641436368482831473867528477740238708313716305957729214996347365855228403196103586114517534172928346600482978790546948405583227870018839875031076478697593781021632072334755161658491324276953972382118329931553019060498315524820322698873915288422386587403145886580925766019983160472431935992730931336469007686189145642816518867922373419202294814549342858714753956656546179803874893948482129322137155172746863132094139233109643040670944497952590540938078679348102676962328533864165477210145141077240770968951059541192452843559577038388647466798737104498378934445922264731387857874299313376754628043840925809029953591045262137428028204549680490186660181418600822503995342471539864548849459782246860748908654030247603068708850232472445946177859029586190264180739247592403645498534507384812582715329043395367544190027949556837280370454953893455879911523728431448707964868143537113434202634070136702897276785879771731435445189024588227987192905155757485206191781256129070956762955610529289411573438455565322743254820755264830238206569776760258064283786801256787404624542794175103461247224854311178726801245217847731577163965498844769536329720312507740711800757554914061378607624081186207075719643461666060629201322012767434295827620962927444473887433303867170503519065914474648696341257101179955399459066764017608926277931998004920885954360762960989821267612046064984848416237200323365635927966206838237291608078230495895492051080181871482000244081879466054825438966586717282721664290910722461521051703401439687216050496786832821483649050428158671324782376369640720392967869673681095070900457440791532031931504620444536474077906711767508928392779335325991555110879295360721285452979573817245469197817991712555861438068169109352567389964186426805990358230885999310917436107646961422380418740214647699425321638144981278495950310776850419885662852422128939195279132735393341262328843162006820264735977398620279962369716794143777207627012321867175913932819168987166670145193076497516265586839940202986849845084533396497687376488114988098248706077327880038878159235248929192445063634330019768464464126054954153793145561057313885168823353257115044374239374791512010490181196814142165140749929694779853312616282019399260472470236413018541947956750586364159670995588431281059900016869686694877934456230693061713076773216312770510036922191672721480461528875862634241789937848799523406144722782256827691193485873469918682460291207831337492909794377918849575370925633469842861901949216905200495092518970291911886671135469479880029382329271302981317313395458239112151424932450876923141326723789536438533985323343136678979749904174719610363931430387708633370773705481548727665886418263400029927399379447963908633107218762761275229251115838038445296077086632395048726553017255220807847495195226795204861443904469826234162146890008075508573422797128297484822095108911179580477517023475081020763428932336540279142696568812772911305511776374817893371104072563631524185698476948515100632383525326711656836482988697413668386747337207055000724600313782112437884058549751495414679121736623167023296011000061336214635648003715905904925917171532729096958199690635612569622530069018934357520245644200215620476753101735047183547788824240055210594425010534338909646522332156696619911294205073693137116121953070518794556628468249488953061216668775097826888020052876601494742531115143700717274688120945899855430798169770830112082078000641264847925865921255098238719533277408616133640392418910995279970821787669466200595096822073435899527586170796090498276486245368026460882910771437154005851945438764463169606196554637676587367223060343318610023169391680044047050288489107980140893736831410987332114029101849838089023221692168263143497953498200984110775812534901742276760972715656757020300187093505487918617549949121971982396049393339332382536525183550987108859974282806576218723322363531888000486070190083947167660981489297148296658516983750646279273534564765256287545642476844646849713776741184985328196023780357595784223051436996907819028138443030590927912191420046459373634060010583839476171859641318415452243898141234029229650442791967126317956120790559047000436208357697857565948651274238272244759225326018108303597704719252561253469632815871015810677884319988061387987624186705624815421003899497719475693750429326929263591270666265139539337869539735355333640330935274658314560743610139467629195760023350114141292522108141373430734783488542042999674726645495871381926560063586863796432641167254907248432736857805894887351995493448526239862073962122628160667447188891049928179093067376576546928423750542378278813647625230842064749210085762669347042257635570685344105151513684123181083137390682846193583081856650583185416990537703655998536411350449773326239005415018222303611818089904237322077044060634143946471882233516350345428930288130140428228852869620783181185534600140038547628460731398203824442037474335307802156279040796133159397362128447849801122965619804622510434364112275387410120879737175363796512884935097691856571088366530024111674302755405632509561959893206207141013187420245771687364852206933184322737580761690530612317305474082138632822931696617592296657728259471493119590894672657730517919933029827830446776748536816885800720728390799730196988844704657808009205973627595723198386710899974686593576402647185051983972952427836217069245298041007298886927029231600863663785437644058854476235343018694027827662803460413333646159990855703419191132078244686541393109810874638968877920788344720215006718369212327668068754822412252799719079767876863001932779359039671454753855904168879874562605532563445763113182256048911075983999330298579843804727523208107692183573605293779679228138714814496807878509803879819092224657303621801995623453217381959602948670897138946030446798922561400562387814001336117789367294829081513889348037895187233176190077769980351851318765773184030698853878663554973050117027128339307694323790811767714254815744010891673966748776467174438575973734458141411233972356419908782309467610367539802155323089634909403160011601991383561436594795934554593214615460379905188651396706069859913936447993210310935621194165032651097091943942164690357573503005943392056549230448111215274324766201884241130542910502061891985291025453652961502352116622277331712015626695141661312223212070053501977505509749509684211207851702891935039665090295315337193588148087088580343946882099178805667405644191799593842302388269252479803698844811806339494657476434817928819710029296015360357688485084392482182735686290333382708260060303133610416073938990075006267800540663038295828390254722516744818611338829200723580674489608112631484442841571549448830899589030375579724099975394878274807965661556152661775961164415779591274463431363541597653514685760364259680754579531179509251610159121198846297614898395734156340974883320671975450341694718815399026664454571919875252719865540361338271467688484319939670978502832617801348491609539471242749358034894446788563315976298175657347235972390667786355901464800373516568830700776171872025037291025825683493673070169228243604654958654405048309523475131195850776479337005950465706017432341321024502804138404531755291880615479220399315028664424468182892943905887368534155981129690036505870107344461588016880880528012572256471749463308767057471445193162361060859878146477258628273005406515530603955640954483119277549887125473379958216586969576506223264345230827852226256858232142463944765563534246553724947149637816777697101531264466047851404382358790999523084455398075366648588637717619183630377906959866023224054287872135504043148336434054245114461057695028701018958757807946529990931515504128346198967293085877014367726054143323004207199534474262300334866490201830308695993760703216472179228512836015359080157260832581701093150447161277898205663451363428662543762052420184153132131144822551977998647989893065045805682453721267409986370745725299056860953450794293587482229063449890934589567776788420723243464334993138523871874683907659589688303068690597510106855906700801167061967148112126944963963593386669175420337225446692333864735854226775255892032217549582481487671556968969651884755378895176458600141344181384177619464343561002703531436707773074718028097386999291971435147278607992334954458327030405195424229530608984408908126920954877447841879952715855094573825913622126600525885840820605384198866527673146807132727566801124185489704445322803583029357423134371168898340817297425208048175761147954585279315865728516595187179820516029562808358334857223912654769897787805153892040844752844990030414401562127549678558667877057465146325090137548473653320129434789336184589280290496843658192186426108971006173178305555540028872974616741175821368787913651160677625524637540502327765005651841006334855014421233218540949065956981623286395128375389002929433699564299057727563282925563045382830204989284884960711014612369202884022188244074471538894793748093241798932572566328697869545028021865959341637554691605245246989860657629812706847193023599848448002021906831279462947217431944702759524628552958925081694226831919660364454602529929854503825262606408322559392520565035475636251895789453898733774466845038769256555079078038761618875950517819137831805664853065108766786586620959080711045052367419985075778996784350496808016096535404454378551825397101104115826510253485323824325058365819906808951480972685641819058664294096644484113588387050993046303242725123855934421803029164495376951832952915193037928306540368363834709391199708297091216114762948180682395257856080217530689015654139971053279646707639613226049874139865816831294340557366886787562920794605898727435278858566788735713184851193787320169443715493437428558168144234392773305194868126521337300739235517451688410061287091689642456450738799912828401251001112525498415392704936476342037681503630044465945723791969083189702989650914607044155524584534881056153725126469260290533720279905933776598977655705279807300828603854636339375983074015279902599791124287685310331784984960726254645172643335564058355838833188420881268530438149448914943267147054630612539110296394313831868923074066571192051809151825737269155540215137272076164876867182445358164759400807903664377599656843842248669024335735831360721352849778654739093102584374004590469588385313785326951344226968536160540358301248819012025095790911434104481428884540954954145033754508203433488575344503110934283208716527189186182944187154754470412947422187364453557306907919256437915811743540146093291784473999536430769854386849956195454950433084716141897591422454153656729278172761359250269407809160295254160908695812087232764582095836800298642692362024513212019282361034101358494478574168282102225767520066233070271930458683101817501925467469053085431725388500090252091558750009768797473802480301649487776061467171237143657443128579135051714303696945103921138910108858334027596904781919287582203831035172032537993588462768666690505161388869783339485438170926373777002712463273862596981941377139329781729939985164698424340141369570228942505761289046282000718959259629295269468163697092593919534513706009807777018542591619035879063114777357302922722153098594495742701282178633107686901649022911146333337205000840269573890518684617873004124803338852240585055098496946962803597377015465138799517786144019353130420106506374788689047333955890735747828122516422874312793784327864115940410501412634056087340932263228056231559379084540865230816359086433889060158598089838541635318369009967498000285024238065498273750460540819696958624267068418548533398335228418849922576746158683164406082937867393591109981824239759961936785307001157678380079440191062004279764469230361539893542839188599802625444762268707566977027676620735414609696109279999314191727800671412151971922589659220215675918911602774445953089798628550277292976250381785550242147969235877178953536881915348485692295233516125215359007883336762523082855725968041502339277175110353909197199902404013768301936675124689020709609505301620406002985658095611744185600344731043989939032520967022455080538949856302040666994452937998584356377891276251585104358551700358516152748392870753914058431702084019496500987236622899031223382058721467731559849367350208736544841925382189703900420407242241124089082097434114174287799676860203259410385965011245398415182620728041988088168863410601832472467232659244242223274144418246894856557996166811486696301877331542703845457110144521866512877892969723165519778536361944842962487638332640966850777955414589166202092515657507988722707808795568888943897976210294450513377715978697065124373786983827144499173309637609358551981914556576479102298377240173087015806789792739050237482926351105779303425106889401368665214603510730800853437052035532676123690860217580976953715343121583010190715606953290387892392103335917233497887743130904273663018313184892421393136430692652170115647403835497487610531122673697345868450610795906771538238405266147610900628014061026059262053848262235101060645205584182283449326163445899356627527261910095182944616853960839603291356451171989855285065841203259198030931724081638435340184337027625795456687973797841241692210146761226216855901561587464111667958411957351302939475342379667743025776523247838795296983451422183905661645497721734465436868023015695502130819601579504070165666661824166295515892048929604114898981181529827016889066962453912117005218017756542203532596786463338960936190806219530169166301946688475772121505354677116477910430083192508195816688589214917268683700419354579754336072006483077562354657464158040428326924428630855860317092329140649785475920163732136879571719461450031383947956281025937587687687368050152740612860814477728321662025305286169344370411857193011795038365487020951166769393212897172811150260234503579178035090791696101171267900661521327916829903615310507372020043248819550129340120554350059607379532901592260888662412324587850785706855315535572802017359656833695560840297524117175503254900762210705792326843714499896047806712416544389239292568821032652342139943836195817396909139160366223240282658802537466753799865992266267767440685170182874001351206371880842831111514311474419815637034578918182740773198189607268839034776830718432657057731448517244269067382850383550607432307254994675987183551766625661013890499605659626308618720778830194018980046639070163270250665763023774358297373646440011053548918745022795081113129212639218932149936610524485153378226981830530136584994466814537872203165977114934100444453286698037366074544023123794205811643214962108265345485933817200422741317989311695255802515470434366806830079566732545656005976234133253385459891486675888393624859785106052554526355668389031584668473589697028409414313765058197716461975818792813667549396770408537307970083571495351201841662601093475762944330640365805237428497493784992995742761493842221879916500885294564153202318142618411617484943916623897962684902864563744186578014598073991187356176124754090801050149268875216381062560821308123274137348852958468205610309590711266252923704733453894318142347824771800134662912089971753815837931332485630146265050671752783423335114908454030938818195622297915447783567881680374433282643916389674067510648607185453973620335104911746810423886909108154680252410218128887587816314402373208419700966969287911296509545861527071445705353536484875305984244905116320878805128240284422754494531813000575261425483860245077330857074352881030962508150190093002204429675311554072359330984449151141962400011135720135366993150171719019156229446567618614954655461969305215127535291005064656245957932347310060031093722770545426163148611660973153592500436943423751933687146523034561417997689479704921877829307045495736800934770374710103121360231993948530822239700182157811904035150064725911341155172268567671639822967984986702800414106382501587119577559776816998400834824477629097975560090757649043971733885129016718370948213671772005516508013032792512762085365966239992450964511022076959796648999619618539717139383740865159224407321815565127429232377970028866722817934116120471150759943514810879219436021700962996144000750238041078761790107089763205270618702069113381159039507393784037634466512792573189745481826420065051034732585044192640684439037684860134048479045924123337844031867200510711236476145824245600843693043367587874644336532379858020817444330352710202931668430951455621165913883803283572965830926116274303410928693602496511764450202443014121979304862611438195849164373452885596285153740751273792855591654508333234825522020876302311375173499343442972828698326339439966300585551186927517520110824373481951240342740984562618362757226496682841643623920832838797508658162711591633279332027585215008274975394566191520969185168771728791973847751710124985255969238901292241977924999468456417367786506861840990783767978125008573025592064388783061966479647313810947433303501873868176276326107958216676015015812515574890198540604604404211296164700025908309625972106964633968079381281892226936347381319460756880553851762736849084140488979146773446138172780834629165358645960717821684036916424773884350376117227567131637893916053095302312105133299809308084669285380857692161392051769013819921395525727624689472379883845758349937911976002349061998337935621406948189557889608331557741660737833298003555408658101504294045158667071065233279046031067900998469250710697984201518678853115803186344644026448921056615815028329115409241450456452947947366897536967874928972031465141434857508502892776340904940678626849690641274734428071029412721115204120230270206522363645164727037778691678073622143193023332822576778726656281862216077141666049840690689262107496972360410986945774184985705193467943313893999009601719799455805246468454451017547902734067754635467794815138298970748080220051469154668966568925635772030857024923502549169086160059319710334982365771192787176000287401229643901829695918209108938549456198190162046457469699417850293737922782114912543356609518792379653853829688583774004091773804193763828162167673423986727451117480466252180632170640973999559307691163925287909399872519686492414930081270231004542247139968818723790881551589929664545340772585780850262532906558571711761243266608197250032351489144554788814406499710215214931456014684764769016835952440619647381304338768764473502998070288438590861952387871723373922504943052334924643205807301321513103303934615590548866222269347067458257547219159559312896571434403192311961023085779788845433422820320837753004030848065448553993640689563891849231983928610056113712225561273598055514013353046666220322921125412347024470557001255080964557904790806912700437500745696554631627652712538512050775781229231374866353273385941961685947269576945515114280112093513347819549305868179473411037412743890920776076106919356015407037559975830799769435718429891153185355813613895859508573844423689809250984488062341881575369841598869134217310888457213015165602740680961092609833065727978006155582371195673417312104178403932783050462500399495301020939954907101474441243171015817601547458188991482376737485964762802945458425663594611981783976196889268583316919845125503781924044731629929919186782750215167686472775105538738090286770141715192368595185192541726467876693172590445457994906415141692284305879589325380047478488318115848065639663663423883705993530890582955576305670887924803897350620083926836985314482488932057335208939751481957925373198048937749801972591452747933455739258201706344857799000689036781072791020878114707439021382424670338251391632773357903737119604860563259951981286441144223218291596941725328267333414512334086154936933099597144236477809603858164076620114490759293551861154175594996923030754646211497475672573562923990013520571218117450719794973138369385847988064732506171904803123206572275989202085571558460515900231915744005878325343325670821129636897023989642872290203261322584536315073290293254776506576304018191643116061141259461068747773786403822057797720100513411746980808934531018856733635974705677227034891735529245771625940825550152978523011525470420121718778183677815740814676598376708023876064844987125165274273257621157919697809026727385793618552299549298225150560600556809949895111679443817553895214606746244465269893655263597737689050059245650295103906136201630320577295110303059808460585964457252819092445727843501380790473191801819559584164499550964934824927751116004449240356493301758115920026871514053809865544385246956929812121462917736619318400331393637811547373530633769961047802209543642254258089686915385458585814983190211871129158546231841625085957984632756848985908582698750798076308464429611119860540095990700350380676309222766047415582152722426090977170349838242858602926559256749421364445438123525791963810922717972588576810755475851796821350476690094161915838846172723146162975176423818697114354022328210561704895761940158119583334571649420287518771861259845581989214810239560064680324295828397480365194497024843204482521960994025866247926430591667689741441841518484171258608960491537710741728897612074514690964274634042458878952596686028271874463574242119249350635551089299942895026321173733701683333664180398967653276544122902252461001305026531547163501492093490464197283879957368981791836689745597115125746493113512050587578052206709136556572568761241710152012141449958501494293288341299811288339553178610650314873362192450345859103166479588669478925128882752063067605771089470146778766415153324757697380678486065221209344251659973980540995131155398472617620503796457215124973302236375025241101271807646170611483023150456125957318256747242762893172911297480711442529068971281072533994436301138611174379363592231618600396669769974945287883791626223224506878893085409475743663059739345039355489967867657293795307486507946485855626258606010624253022817755679513055621913845043143522010714169073178004123224998236083941703634907674927075194118222168275724457126993854086682184761305091612783836164657148393805223091617171890248864362704427273203877568126290684846166954632448854044627552757085777466456757950582531469618706623141363677050554547666721587731961276744973746969167052872553454062538442341077947146283631170028468846677117258966212948165213666042316408330982600285305895539717083226191019325088225989478428939811886905902085139643396680029520658305522431337102528391283476672916338344350176391561323774851784379063990290914302660067639165715212431002476117934296268828684819311334449098542025347272031581149962262614312982049382727115797142688924335689547531483241069982159163451935177215082527746180608220086523859436426843604890255758022273220460785409400169656264403363030221219963540836598751859208547761572763083432325832917860601234224415487603940285066057575942218393871535048417039166427647409339497956696639655175396686639103534380015653790703524033518174635761297841421503928090472201036956729943994198805924720834320773534593174449236632916116636154902971990013234192279497631484737003322439421347712356907697715021744963457344561747859719499726983204296037184643814335414394393599901302746386244295810171065000714839939018498168429288544262112017617626956024127510443643227976865668721662040639113608916936427729013638483787568999399658782099191740480196016658285102025920693787940107671446690468674579213729088288519612072953237094806952034465153559016447415290268015136197498558724992739199322618270721449971471706780757958996453044340746932483691912984591088873445796206315824573993642619417424419353196302137913094543185983898450829049213262718609017001681781096739127243158543232035326131636056454464110232874582054983241631726527214451781909886289046031032096752823911514031837384046011324464248741411071852464797758447982223634874404996460972666989632182982820548365213579484653957590503338576322981399306431889841979098172141570513496851677598747236304796715571567299167933492471122663727160091389401098423114704550144431307047690753151249779125272245428859592802007417961103786838064683224537115297606983435101045340347560720907662489353607721507627536657195986120197519117092837394381375037654673364992970556414627094941577650966753562055719904735785221522861863316899188559968597879756880915002234660061206312905244468659149947115935276947407319608988960324928226482623772224351110655280144251830864625103454653301887341984198922850009450155416547258707520680602879359460548242414147423785986311619037247507795443665087385406664130773667430205673756302877608503670364677571447753255677206830527561505967701174059735135366877908934725242035601728109538089358656417255140424746544011108485847129682969160052599907712587692463850441707470844952850491680885134793879140875976502996844314987570288135071776165718842579343564724119414150831937986221794963462029925185001829223947941819595279992244175387417337825653221540062530949929164022297466366936729142605805249508822559831226928692626806090128138205645305412519876430799607612099728243380806129980508167652796418476591708804454365768519367122631566524944360374174771494598091474440955463025187754618738816114126649177213013592042035565892616807985396616725811277800688592184911322984421342897733310344807057094718999350583395270694930811231112761323136921016049081439511997700232855491865338182020419228656265516065173670499904799204774669621528786223782151973428948630754080316577824256939699392765497092598554012575780846751225665169119617262009677314142017787774646572041118156207181281805994194162109592638294251803621535428676748526695148528780879340369053769429162721687952127509559201121139894890283859735254304798551268521260933347845727551228889399443536952661147673545420907427742965153064307143724652530903978129916187198958501998558637816934739249503849542323744452214593431182939747719530108160949904362649663802859192031400095195233446620277511227469743811828971812817350787841484795892217619119756254794673320322246465709640864998566816563459932489271758648452126689945439705410149921448844524243303174971306846816727263903403936847296450859126297866708257633559661785382482231869189246549874362124389676555219173832933059396879154028115761579451859695117663449628815337813592496764091767109319890076296865632345255773879334766309065288762797399738686725279048250973529083490469743413455094343625716051196337362319043820093066149548160546294947036929731631683266785492759002923447588401500514722751855429902745649265494330123961001580308433752079575746187968971787264755743814202553078739697689625419643362363294251301363900162421109434915018031515455999885936275752727489237525313494616876304610779152985386794218374487061509670468041574647689471763658622076270094102789390167486081863611531816636061027836781278442122265200974814447951325989081946050582456909117115547193329514280200777024669807752381695322617590349454532872573232881995540693611489689226220850497050219854717764996543892662798444881551190364466311629143192260116863397353116894726233098837805028318724154765550189167374766619506254842148629997861678012051905405315025302763997070498069322056147131443179302453968444539380777081897503531298442873149744868315871357593638904930477026402590251107472307165292938596101462445102824821388324064410139395652503816208765292716915002762051789565865753908414874541587583118108033142798118937041707975648744788789427664461342635679430984615903551370194101406765068686453051299583652629612832777787615643145995258497598976454913681429267473264820114506780744665423815072050268276861165796778635475533362706179593516377222059305762930270994910060264605688431907768597627801835952671276543813838205067525847797933072745963112698920888762345210121012466633435646845878990586292177202113407150786892855417257644317849603886596659880716932655950351538041782001649535732906501038886724002821809529041244575568924398425719590662132683527175549949258513505426570040287265245209244470528675989986616820860148993156366994285679536564509617606911961979813732772280658720886978908711613520031788496505151512834785045437047386746762212927758805729662435777787304191560109210060754293876935677212787148324288083715228416632018950975203067654804557617622709786648616385701405830106402795689553762011251558534842649537309601494418853920673425773537926009747675026032654785991811826629195565686325181966054990341463227337890686475578767819444055085928006431112824370116838311487588781912571788000840320505229897713045505909113643530311493033195075370591812431417128087021396390059498173397189718699452949566144971488345508520884229098196970430657768374872327376110608931103068027477334517606627077644369003839995929835389421883624772973896137889382975537778884084626896106307477006668077159451471106368216940532839058893153132236871745185079418497082627546586072078999477710907873424512413993597191461229926408452719222202669389409208013760207463537427415215500313347752475269585892531648427477973637378390646652153515863340500834394984196456530700861837773529704833111699749459339759952019184772018453431177617904502489876011565139926928512953308068995678318764127191437159055062432589408817517752532473019447514825595417029238236871866094442147413845879182124927435521339653084141951786689494808977914961740166515657182438396185515510975408111181687640157717217610346001268350710917786703593399871676091405021566794633103619653321450295999312700498729712186351738465689177679184545236798062065361381280756180988080373702661003062770718850996792959476623907121238141085977417959203248625853570970187226216810147065245827363605247231331966297394539057995352906616853523765055283180316703943347047046536351735942266503853987076421751708231597215424803989967877217006602101820338026953392467790072628599693140063045303595791600244580177949328636049524290643347878991046972411738999454729898973245627891317559421635757176013692906682180736447751164185379583981323168728803871858629043552570310555990638558364684345857970492517450605645907480604189110856864858418985078009308445960204997303286701176511065176977395214568746409277131027855272556183972583445858247476783933984718320051568276273994591374058452008480695168115634634202026921142828512394295421035122957641029646451450086061064769900857034888340750574399457760553847927614087977316710813175770203280813722989417344710508194684218082254036898197321114691085260027911327057263568957954876235582169869434627694959786682957876453127384061883822061397349491266303330289959061474098970824887940636666365894696510445024228756995434416111437957630304788370421933370216011773056568861331204435519586906968385507434917074048552391876790928220423050063615192835279976639039919516523484402496780221362058154351482281686765406838003369993817766102134966438879645082702169360716577968067391067023898840467787956961814638518191263088615910962996216751866598406713646667830541563742326333862274623709032597949010477434891363436041198490232532054757384194813802698133531084185739230535877478712242388543053116652165066217545554846453331380394627735255539599571617826944400092405326229796335280572066840712364563938934394820629898502820847441520663094265125625023344539134632621504475719062973504749710684503173706099873013737982891648749920995312943733241827737453574427006372849090761440619935928655265702308347664662673343399058603848162065209687188723390990028208698538157654005239420434761754747582002786525886885740370414872214068457846713659590307954139307554270879579567622188594876007792853252361348990943708253818403356306180630320187796632298615155212205405097513425351030987179425118902872876373168551161118069328448830283988026425179986353411822670236503554041012369080151444793343255034029630219042882083887350038649759240444860470048152047196575353591973260319680790383887482774073014139455477248021693630971651346627568686851045224626075579762089083207551304290035621067216785927705013736036642333825522704721340339426773221648847414650376361451520294502926805794007044054312380319698924702457088867002245071749737426336164293782721221775936001744932098507722246792886354346640079299595088041099156857351363369295580738436199878046981633925627683415570698963946645527016154535786910686790334443900781091200243174905013349459433336022778572635247937621228675697904414714208600166474967498841916254024304151859184547391852196746716140814463994833885268881689574664324001695835514730435023410394370555574599141643228179560016298575208546400910184309144707458022022140444657994549546494805737476779481807943206049464596433117730482058305464810037985804468878698603517833453986665412283602036705448929923871089671139076253178042294879390593081600661185008264152100302971517891485147697675269983163900141994139394134952717280968579071337393000094712078959630354576804693670390999252556458336967048055346787801145759074649430824098837856520066085699993056899511914172535154164395530022729648979416666058784857823220545281179961054601601581291372312642707833440897945178469759628777474014693251230672489992594594791971084175351176394212521205943862251392873675312466747045468579959188077306974296138403019787075257803622707887804142938839996887452610110432273729415101298288130523026130635538915626324289469369545279427134912169521360950348489234159937850607847536886069974896181028706552533108415455708144208294201948423846118387424336697912736830768233383038191445684754900825882801870782757820363906792043174242605274788120544268902845884981717956190945090892172159872346815313539051160794028803249596758933918050832867615982602836608575723969135829174403503393869594658199776029562633971997112566284974081811733389911107971254634926956382777236098304476843339135798235525273335704991427273548205333562242305760242486904139076100457902128386749680235524322713371426754860129166569410382831465880644787899843146797340576994155751450381520171500171943386276527874942444027512650774971528766457012296527361663448412754420000964612158601758677012661767994023641601295703725367745412821643655723304525894126340513386814601922645020115511442737910854481066030986600400855820832565995052745521806430204454390327117854258108756162388487444474641697904307937788464652594683727074945866058827883524211898714561575674987486310120201463244617817828160389470066750139723085771632526434256949900596958624871798205786357141040666755251515200431443138267056270869132232394528336602783167309183843808789259352710376250637242379809851170327027661027420863636990917833010956789930666552003065943351254327329465106669887614121141641273523280456527789885763215451865989480965459705045775383227586390469776744559723681351424100162712334066178446694590120790193701409567091726913298697210402044971200998052942959713977254180837031689318223040621085200280187051453361558810472127477997972692697616729314903828885752267782685945856437197736807550986902846262355065349523418083214213864298833567513295983913446977019411224547018626305936264541422165661246509546278756315909948670828153601016269813277490285377906081869954103548649651900275853704335232151517793473095725516268130579826563155491437689944464610408128985675155399422340865318365347295003966556874012331003676536895096016573680104383926704837978733629663809005804822537783660094773134013135029392540590206732691801302278034429742183919217709057139148591630388443311729946996459032675045666371428951035943418968901191263755089854527096617772078263663668408406780735496928578815548441865649796820211401967804133602102334323806615181191061277948870829733622386679995484907453789197738992704413446879536415328780869135680363692310796130559676385826673404279052098083063782261435440393626447046068429264623431459485435553589529899685900409052959545579282645409524325871200736639922833746598171343953361413731906470992730658210826826835512278941990078088264545862359354724263142289554741252351088692947810066181449474708540960328628117763873756121077931351327701426298038978637830108600069042845020094236839112017106243476172402121685919094429245606796699954862198076898571249345634338652227941102162616669400953656812472186490961333946161932844605589527621000464071974434520458943554907987482115957864201109928340399488853027981793007051405690681975439716827808552136035048314465792397584270260205604967125228765909342382148810553273774766782586187509549777868185343780140626610610090619799244311129602214482293208672861612253172490128286936718540995704749871196468963506057190777614557828958050069277965999009457244774354893953173362670689086245254539062879772092088013166792116226703504039833198891207481331106539551656071014798525712230792629316010389122620733928953946686339339149766799236202565689792620451546546743965325081525399377104833086292320484813867138808677159670972045240833925887335149597017260134573774404597898036856620906519220713635376251061892517515485265106765117737134743699058993861977998196810967252328217481014603272702758568509840592938200257479486010602615188802682732991257023935205195683350432811902841207657723868030922352159309443728284001396275612729212434008609217839505502952416988627629694008484978110704986408364022284723855324591909374734972046736376361566430075463093115732505015854119415178382952277433774344681784949526688033466614503041377225242103136108426256934002807375244438515173783030772594879416763722505405651897729293132049836425538003014472643904647416245355394160099309981232739120854983460944664314191189889468679770883514827430610723823399700745130794238345626022020273738669553460320213249878396509119280227122437481230611536712976261212933338948785581961257970773610888674385903553112858543168367550894997684869317841056330376119437904764912097296120261666856067720930029670319877858849348582263480958821280399595880136392390893597135286330794409485983424429328897238855999986744937599778763238293767530960415317988454349118314990777041712659741010680125560397260193107674066145219457819483269564654485877472231547808334029216594083812497921845875570327879676161346068931494520710862575951883119972150302579245770249849857174006674890970286582945072336722036924955297124670919083798272432840318011294068913791131703122619373305969806500795099938887284217376531552379181529414324456339697650702914629702155858171773436748457539991714217244138883477251732805166483520038585453234395904369986741218221148553320779074335703830168902922795369121693513669043778817980009979457641401637959494745364367187949281779097730414583415179459043852667689277917339669678941211964778999209196108627918772415008679797043279772997818945919170438239112632876918507834280972809273433778576209119137373542841115854643691136801489523353516991998617542706268619849587342958057857032042868633790931387185503587588049180567190809883588461886321378216950948593871462930787253965727508164606702463530155695961952546460723044084116491629886448001183842495106324233165915343482642309988883061349447041236924221161946805956741845566084607573366518582481511612875072433473299290724313294657376471861281099297189290321054028152309487386290415097190981155030997811270764076849128865136814637915000285674985435422905935774087422320059212439597777805650184937682679949898018305561711700768169352688102831512089237581483133835356025355209336886074183402853806299270080838439779369542548885631917405429784796499017772757634528865246719678783509170302385184517011618450105596558099241041741830655306374339398192504100900761122736057791216063328703992359116392288386245193232289897987074699430691502583233172852433433222524244641862940472014764547903972372383215201845505707097066262374826063205872118631272787539042485211462211971292509393515412013349810985218104188956503903658838313091890157278651280019833512817030812346504336988948304304269998657145031507355336411219760631236355943514517028024863391612717038269395273495926605184804937659522013384142108700763527023927396532616065511630621707990827939100519939299799859916598862643892438268952707788100968975356310279424368337958965859962070156683944234435460753652838649580225702456926859479335298131298909827655591459644027491839564012288622549057566691427923300040102833509183490632781935090813053133111424094385749068895229240610592197967438096658518392657445408341384320815171626230861414917583587752959282939625246291947015908162948378876444314058450366320393815732407833418067702847684581872649724479881609428009143564978082737825409826596890325893683246697729390266768573693311359399955852776276157750943106119003315552234644282612439234600795811114119698820429142015943057784098489357812471889539567428289474744336434492695351963536628542191055085086148950349513969143510681824696570208475876930644046555722002738342613437579356390871496832833594567649873738504030698466244218524812780875670263168572703145580684863301801859742835650831062447609292107419615939065404536160764480543447888322171282952147725325134607060963684647105200950420858244314684655655533140739144364939842891805437841911358790781968551263742266978368740293303693951078106028805258412288383203880981160790703592539510108367234582333962144980633144547776841486449682844295812361806377645072588369102838515590602835615874739506330720835558885497491355448979974582951066678230117812565412473898578845921231186000934910213243650822667570961485924848753143306971575577658873446492328925302362478758979064603037418304935036094123117111221206268546744284937652282026270697368341026711050768413688975858452409020532691467480590882892594468022164189470292577250679916407937047781926452488200534523260880612499178770324351399225044627482081520736750733797033552126433144301403419736635397892297267696139294801961306023024709949878010371421508211975290678932282860659455022436371513278709560195595608136606603030479574523588202890191800595125481457272341235836244178763858238540109700506086213167961189931026348529172831424312338146924996903864166172245657716427372272866156855575838014149683417407972697562265223313744087422496420742099398284405837632878832395746447191672242541970215947022578074744704525753002489552668537919115453590577474380136923423211758810238595144790775813529984934309011833319186489421800407480925366015927974586231673324402758625338354174396186282987752689231774790230662450914472916160742446644673484151103777141268578163737290025580900908333871041093496658043846399171300138510718680423476186940563439586988070977425039241678920835309912359654042238953460091931312896601873742652741208033375746609673871235884511783685028077737682102917981480122373131650277708783140206935803382185042922535110434031379317128132130595846933970372483145371332349450377510111167895910163158432949242317237476468212866252233009895450299929247018102924168388447414574050806554323939308815384581612643295123092976033485793099222382455881897750597642953866168481519992118217306166182204906636613495621129245179585723517655273419966410942576150131119732170810019903326591701058509022163395994328418005372197340529994060561198153038158037044826774855197049279479046393249872948110485019994657101412731801495014768042641666095772616252546024965110165330615642437807593353742305039017971879067056022410375429106324626133589087380850594473334513485270907690433866862775543501218572824781156764115017004483461495266816601899376554386686694000255508830184706622568697575408082374894242338092049061487620268629390810776816135887870152616064732323984755546106076900381826252565106401352945161838058896416127048116176190345800200928885799021973977185840192611715866961547491483081063497587633874693628146339261626831916815260943219871302495300937507092857434056385907431182212905284866399704930180423963109715695800933792978188924816306444280076942073577490724996904908726820071610347309743201269750712147856863032443714142180779490213213311207529342944461711046405941696015822549370960079214892124524014503350045641116209283872089362572527501652613544918856831215471005855145143811705679488778356313971224270999322235569419890916038411983802219910902863144611042251111624247233317012169237212836117737814309450618923651237699156337027067325430035404660111003640208440861628577303906248039964448430949046042625651118102156850169970490623427433919489785434400300473765624569657653871425178914036060535792863888252814987001206799489892201985626211789209848646180133167560512106740317377838650828489866343075285827299287503255249362615748150047485885351872499443828213830964574118895692405887926101977560795701612102485862463281800853957990100048867060894766103060396023293970522836574621083185685292839878102517161372003508364801026452519688148966833595543322169937996286441515277047452177562625479603175547896867151381080869757507869422159257988456698189897170273610542072060203864622265273703123980389933968187028839305494321362761360666432887951993166285926623782581825623691799328382451746346911529322227545187622809016816299825750240961317042898939771667582826417131720678844746280498120594951986918418686350826748040670108119118465545960494835257499513343362032877667663689088251102514778072639900779812552328538630175375133877494756470251207985041856974154742582388112702775216736202248193785307647817420359143547675712828850620294469735572656764648492325066210226762652321376683721674458267278914877986454135292623231818844709641815349212759904635811282456997555682041427692024392135370270324217329471014667447378076566400799085426272700193903412902306096140336220979276604852955819506634231645920544893736429117688915476437266894776994316391372785895021288007157124973288333523292627277434985841530847485347700716790509084913129149505138227039464829466442361222588884206414909585468982220162001084501695480072660806077630964936827840818496047718912762019486324787682253364085823194846689326150186586974422529341362529435938040218927239353092576781703508353497941856041774170713125154370067058694116818337272496300585075888271087267577232873887015332765257188672281835405052847920355090900062611200666411266914947131686228131057209968762163757886276253153538604548329289499051692084078114767170771416841421721652911744114874717694453143988921876837042800130963294671214469989670322391721411148154182834944864393476840244314376223049077725649240663055073620426015697326562871419096812557459882267042800188215635750890605696681783118870789170681367068796699836978988790352217735671960721395723830860028945912724862504864060144592394522005470202268988870939005482564669382785431052051809591428705604269368897641379009486065283953470616195705332798296737892057441888475316481576188766072570038723078373186773336306398371904388168521799929283672569652372155219531032384297320634061349254687098491807279900797218900278751269878021906968876471251711500771145256012588596227616019913676174177171304023903218298710704669621307774644615338741137420199746092026629230656429633862206213139437588195009163135038002430776244335174826784819676913535032304496416069019646154591635935612514154085005160000889264040025049548049094606770912687718163447541053262602493687903810573493910079605144578892458583678031692023424261824083220263693001582812348490763973097038072401247690593447272793889611921682369211416082231307102451745381374348183413081259863101249059955962589539015563007504640923312714285860704219852388557068265996743837733216566942014564570101898183619650629904215940715829686127015053176717467241038296279611825022885938821927505228053170262693082112468790297840825881563762342066007542914694527410858060083475198648841723904066121996182078358139879372580026555408168701194961838254161234682941297010319123562152929368187548299481388082350998344235524160484166319065246571468812966165216760722473816403965764361685492528733562283931079745637789998860137386331196217413171344596018742990739487429524486554050320268020325410104530583900555883247616940123543308385600587249330493252912375865091349245581168872065470938708844914141931536014801601549291901678707640366122147333337461805727227123683427993010300833138697821964748669861427788007590181591821418748228305867289581390653914789555098592089007635333560155452232503839909088762140231518856777259759538493361717016560861455256298363326879769726951152017032683512347778142156435547187393724026779305519990603367041369865575589973625050286233181489229061307770438013314038305215179404656501847864618705431705114079736736598617216108254901923710842059118088145355408628134109025082730428669658921414978065663954792907894540591296399092804718226846685882727230589853567412142096548005415420597936706851460795145666244639287588469051614063253831456381619985044255453976816666962469946642553973058154138496253602214158741909531497347416747721785580670618535406281157078067783406601216511429637930010382122105195759776409940620560380419632949722561833155780795027154552106121407267134806492916190565534410066764852344807260987919445613716901071682947391899939016978178176992034409347264887118112884392311570711552150667889884059494356534999692744910808408388098784773529747331051689861635795978644527750509154677932290109861750849549301064443515266624419959663560218057938310836174105864827302251984612305331845900701815205809820686061347268153412736598280314291669794472518375277145792834554305112734530640213725885873189116872370201553006743451585506911895597378310588071634859522061946387966726497648910524363848285180530138736919580030934433845142517080744409926327212926139720467206306429521304676597708377448345030478098261340973516069320125475363115123799867983937244097559164063661588957007150062813416354428393642914423037075453223558715219518736872614391237174837155955944313592257088420783322780666243392203811653925911252335271069575327313093016449022178510813301409434822237149453947399300397633225734215598104319330602188662510773256217876850993763615444301778166592890950132587399270486232627626425275754495251091438148645147118679533747975346378119557121994528619252621820278372218285079116559907109388163436101473255298176753573636824322867922651809755385723741610084494551892669267725403257605945242643435345978502065219218002991144916615430509073633651212194680460678899674641876135376214958738951881198931856766538888661258846308971022048243680912066737933804076451046136281080094503177831896367487084385736342320099970309997088181256632493367247017586437857672253577879669169945258239148205588130662971075679664017168583356504697603274774560310545481234045819803334768120160548841029635847359278142384317453019462896664728548949146890578143740740192765241684138252392152754713882700269872431240839868850164854104525920951190253303568034396186520080451528777409389414852230813499619598389733036125912293269966336205145601599373487888840125530432096242764412834362350395090877733024122580571761212444830503412410028073457966906180838332712810434955105300278484560095824262439950640789284271928004407140031031457101692997923642927807993479027847498803769125137015124229885304280799960604945951119477883634126564507087446223042120638012335525115336916466832117364153956486376360863258688416261921514117217772077885613908194711176510910665761882433131550801382939486408711399151338216474438538481564116909208905604376342522510918085808246475885288878132839286715806080491204890142969378624930663920482189305039976290315354090849269367704560685693544995194687804549541201510984854655964230386834826178792722281564288434500112675180392453170989477226865477736009080928327941787448287734353750932649101154060249479702865487359948579238957252222727569627041197169297456136982210361720618937433004608669722263301226640498434627855101841214559028829772764065006774414516557794841874563653342698084426025193175528021427763029086568781154683171458583483966042094299052088474474865028219254367289132754014368862042986941928624743441596491907214148359552514347808369279813060912728534613695173160922927452339965847388115746439805317950445728854162059976268856311363314181566900944411723439239388577124846553964368535225180638488297046721390029454740200451195659888613293769318048836744827899849174735166817591121116243217705712248971099989781262011673078656459203618252213676650989639242695237045475315309446295169184442969905944653013197703907607743861532833752817960969492168987769050623252972205578221896823190537357155775236039861145766661982118005582430040227917101634520705822623438635663411788172176725459676884694376215249844531353746686122543725837694519364932658175373380478242427801236093955781972239226515653061941102199011555092820188728564839181015625791940527637593914290549122199197205512953127199184750383225720067822584206469594235164868648968240258605854156307459017150744670711362506870510682380758401491937865291717555087714136745192819811640713874951461880223176945028352128885472341163273766866607613019577567351195692142821315950709145549015778660356401181372821844282349265620935053287076640433908236691277865618972401683075270503089783632766692026728025990846028277440940848048345697859846671869467575698245153930962013754360306581593032577531729087595239542493160034582178623087817511057437561848920893890062292186617758583216753039233199759268333683346825216766293449870031728434210567989138413073076059588296273388379391592853341024572175619492518531262182030032002134905721585878819269840971563293055005136962790388596189425040911831485711376598014965576653723665175946763344468127890440965565932576765548704550774835893893501943285640392669273806528255214317106179262637956405231106461902523379758331035179491226293621080476807702248598732498307189207202071261600697411542802300125298590652757828212575110790910329728622521115765750100526156040066765606920814653809116134902164487603035314730428886694534192860404294868683482937606060763987838148991025148525243914558977344160903327702829274792228678077353178456810444652828201031676112091782172435104894861097293166739580643927779890139764900119116333906771059747961110268132410971244601138002654466930450877698555968093662063122148906735963326779311961617573792950911552882095974895137568733150516707882433109359571248087647108022055109268710010862894834161584907838574034828754193540434239099476678317651919987457742159890807651207287158402374229438242832048512807325320913129536840842283313458352660966669097578968087258700333565620273091335073896104795317159911330152727177357536486531668476239526084481612644330917135549401529367688851011841434200946491758516484740454992182500782267849575898973823568784132978516463309275178818679821810695858423182368199240905198195540388103941101446615881638592125078564649428879921230336861955381947981486586534296899583815338647579335627157944701266855788682995936187277534051582982881252763950111076997833362724409726390808973699195575832704664808760092733494351318090921129707029790427084624223466802828483152479000606798665821151712486271586443273804767204626848748029458508267992997647541328542514182834876433440596198502128220152901628390404442705312486478044717537326600719403918286430377185770642250964850299728705532786178025116849082246825144864312362455293658499462547027918251998762527468778017220791580752823659194046849612071876257477536009035895811929694168076709676194650953376689845526950040787583709945415379759378938688298653463566177303486997370893199049268075512734972402766324560241211454567736613379750052750556973665311968480851762686069309604690092663644880882812965996250158554889298720212648173991689732523368906489896895327697298820142916236450505348379401042925605924020343439092202569650887525149959776543466406528009870349658766716220612568631412805762659408271162570128882583338037302489508432886741022909780084137110348403160097825759407860546271387783143494088160669053368349212556041957202754162201869433301778822211721340170541830610232176938926003007930891381444726952396698148177657598549841866929550884155499091566506568878455014577061070446473718951788209734454205745653390082850271684910233789908507502576227988793719246153816905807960825636413526328746195820368938045883796456224335307668291960446777764598101890637532017304179435895513361264128528816442106782901362519906599257828320130605170163244270521368682949489812744838956837810958671085487291583316054441594878947062073972810180222874338290639993442696437208889162913759060358515691230685204053686989782563654147952360701872401348769142276356850672640639854901359208457791722588017625808879729317844267639231455663084883678042018516332048758281715694250860027260164493392191600675713666557646295356578282072546891294110294947532196579500001673243536226330870891076720162693191726768584412784797967238035819414109619044289120156224858208408032407567219377962704099487972380049584236278264752948072031040103248584173612857857254965011368433571854779404761375396629498041050285783358736424480017513564108808623335494657304919215668434603029453868893011029132144202479028044582896864639269633350246141617019533695557202743710059944453448181627268467034919489752174565769533634886793323093732255799648587461711016344996640559755864638719472999446560153958494570456554444616888615108688841838038032623577483491224981158046928791009176297683486531740369923380243722028267615704225041742692043073956316343942184414780316790233583211578641617563787797453375527283021368107809778423915579857171133930302861818645023727883385640775451097896960900158536537949026641694929160559346493887725180840195416802142863135274798375660382751455295306607143447774921851815793994716264514862248376855941003582742252660531269163588335475522967248225116335270700907705150745656227990031236298694456651405092043615111854988767652412100063710090371072289014974615416861734013022334186673508245060522302946122834366123281930172288103782688556545236970178662795330707131371604927624698199203213936203946134006460029016974523093470863829536774954940471218265521474440665625522971902098486782143981867444728590422311268827618516738752481016763111305762559582031990138051114270369873624563159767211632096981065353594537877542858437757349516128646895941898781606719071339277021670274978479145946839911418267913115244055415633967801409663267103609586330939503533626283981044219713950186227256228163351827810816445312742626454768038731664395776444652079000123758391536756903216880299194895084956950581202951426404352725592339143508010586626938996275561489363973462395887831050405061443905884326793991102206837501150566500113582106544578738236623369775537534044978036562620264100145567111491699860735235529264761941343698679451718831321879004613570331552024406644723677208655982648384946871446268235315178812057453415295141398484308389048442063333213012824512289726038480923499067193498896887159981718000873043278398800163862583712755457163685955660884592814894185964770032324308696126974783116463247746424674757783160692487891158026849863440203674106214120475276317004195545132020660492765343696178391127835552796526579842857916964229970300195136765087470308425955794264008060745362661819466223153599956947598275998520411873281270620989258410719711307957718699299844689245275723234191098722786941475002068774402948490472655496073834952347190572848830001182057730088727558981350387773814520586477479789206064321204605730238270016140753929637962250453856247503836299878728530583759703893506188341313431528626169877789318151605574969867558440855838435587832957150685624521953049991144428690941021387652459439125640870087694496843927259612444304226800665787522533076878443115382168110218148976020550050483786652690246833466715243419271787021249394596874566331732097734106359407291080273027818313366490426918056842013461250274938511911442730971372785907110347911975745425092703730837717071126900832965268364417848745250986691453783401359381422460151604960558700759104384053644182595343470850146622815698337858216627252783721661501810434810519667787205867290377093447542788226734037784012849952543519508081039203793624486992010402241892878414250466545109163606486201421368406764435922942292752416366898269475389043924386665775826625067499655716669561586288343027910968514560854172030384582800392135726914793782105394585986043985719772100775009113611402638225102072698749341230045007775543818456880734498888715056398575426828054361221440438639146465578668201260378807037882408081230426525381506945495947064372476697931053799807526261936561690789902417546261823552732849040688225563348847258743823437714305086823408016581023384540261140124534117009437349306580121092370998234773744291968018305272666822612790933028920517468690255178214833316896648241797843871616308928053512802957324931140311722150001568054421813109853695153970518822356299961120982298889968040520132288940156091628049189256621611191058054947331732028126566863089481407258034978283140591999929759503877957482287709968471854177490272505440107896655896114727346995574059354348229814261945328014507257807490768130973249240620995283680857493952658294709687256985154219736012666019505368945692754748406555817982536922997816621574566474585931364367094685798239177356274354542823266544968388967663986426462730828845839456949093976514476814321196557501635576163095055925582529275903589594294287675685401307886833773174774871665242738349498881680084482684930761892983696251763833242509649733402416025955136699542269401746415612783436599563890018720784130043070529340044073162217315545692621617142516448812575093797643855542052098418450397470885792005961708283072728596394577270697599612557548077182237082361807916729784948923257457532270414156373206552052947897776895946696627897364080959795734635902501205006477638885369152508113230150367414715829713906300134067468944272860955076929055113693160107626827416450969716887454539565742015167421159092493696462876738656657429012114376379003846068641367119844556333651901008156836082047924299560510054616231799311468289507861275109552751933491386967055450735776350568523752206389899471007762091959862792719350022828828090424865937867680726391449537441097249542033185566861275116628047708411899493195658863344315052654957721385863119671198550698803810636538407063360453947351899161786086314681432488350868254467557351264897875749627290925301258597180889423363675471474667112444345330604012066966144744361304625713715935264097657155819151654865312417799119188486062343820584787276924544164652250249494439595351894939708914711729614982032519347133298065524960347438738052171871398474884129771897758426864784115395258545730551621180576977005608840183083858674846881362544586513243500936755233784507532257503559265932032556010002668543402789900312689400784298282306060670286248139238787013219884970804446324760164630379480467882041956611048005966517270010757680181577117166520240111509044785815495585184317221258799928893582592811683050011645241108903301814737034149122648380653529521905169481232595641461787774671729803787045805681052854280163355332526674338884484473293381453744932518274260499474531709442017835494195709270751295786765672891592250153686464010480233426846602190260835908480095828524837203786671798860452581890145777559189260457115611944281466045083132126052342044935786822386942891312488553153880513244679602500455350990409937271546030654948171148457655708016844047041436029747933143342544074306198783951266202267089004157910124891042929137807085343084951750510815941858148452177633585042126228076623426353493170966289917533734524839095093826797032165781242969214761306103570138466546502290152386345233246128853951613064157765007306846467100514302191311385670711315517882833661783195337179127005458019924076966485944834964674667659994858662053525504777146176378373460496557653260583533802037286386443502130540909846971296987519838103822457416410406069972762247827750521481325788425971449321611720257136517960884883337025716474033011758987569969224249287775821394688925578283431761424594609068517775434395988097203103947532564035546233978006985642331136056943181955846724733656952274223176762940163684488950132527524634854735993891346738745160495899219712229130274475754226440509363629851376870364472982938165528199881421132489852053725742044207669011097704846588550886759257246783535645981091934098017324921645086623417312277293286047002039912464522685440573996578536172889873771605076671963484481424783079961630917848569680461859682905591581095982333920698596564457132623439980250680611764107135465470449767415544487486645138048274699513057001281731906071367586518482451617347061555772367171590375725654922674218817611150143418844019162025186098082009390249774407133389854585398456766529114928359815129307201225956372357326812241394475538435501418873511217811630692104708343027497519980105644116697632482881656135757171354723236440872242337796772775693306239385172787936927923317180316594708218914778604546507185686455235474616764651270273967797168350426530272030235425286834759943377044274296482505204648681655597208481384050728060522751066377633378521581008726895185704344180666798194752061124381776656662818858090476988570636007379454007489177284139352641760207288368965063267406038186002332212515750698684728060806557101014328435605645020965767041727895969021721243937504296349590206553542240691851317692029439203284453506082890434778187618628922919095170083593761632318224820848712614726822631163977186329548551638220002202184540335682494713060455937132722719945397038129700792691486600588353876221641482021168470754115435719166622166180827336657224444693909722925799733432126960141865587511217585640523928501206114930572076550422443824370298830203610659425455318982339093436986590001550219009826556907693163429793235140956595004945303056510746166695109249261737223851535419532786744109465849181323668487901327788429615749975852983934086179494494234106976322379169653163627491270521241474151870727780664595972746042301671459211413825416413356316264054657611755164736861971785806899443495624919663620471303620277725244762863531106125621147478956114007264612694895593783658014035638905216428764457125633944787044283392352621740177099855191800755293441802342939120998751486305051468743939822499434072876767263883125837952803114653193341812230724159182354074675722156984348863576241271880925553045965336355627987636971479396894654180638844723082218736705289402996135390980385493430814297226918144918742795918426326538163208987197654435986491546653775718109980340851925773869329850579493720288604296219503987286264862755357356126304988412981250667974608726813446749012306453788053944920275496420095640187658780257018627356327932930038811340171331854510235276692671021817418038535075719292083310254797091488659388009132564310099001129333052256089467188243140604442692366289388125257407053834958078670726301639605811292942010456706740471609127988441523276246846793057792816123641498281386100923235535032742991381547641762735795212139455598953457465044762836874829549845335823080741087702968403946573124312489804324114194197871627392467734828556009265517635184435228950048074123657753080897429489392883554578267631890260281816230422802256119906878442410706839733945342720235404462214600140436363614228515760082053833997341965810977106757456672907801185452656160273225414014767718417002197925699090707374968015927701427783539698912181020835868794186249098109701745503991638481263406618748974900185648745628292397889259990722904334903753884874395556958784466146278455877981602460807847262227062343682013469904285098367213651006118810791066522740345207202839587233598065155222677221490608754009145088562810483058894202095251523470039154826335807498060893553402864714852724703209923229796651945915457356965023557259631843981343522283135198283971649776128458408291232713439158040530526090006626287606876473057729396971028000247812132011923910411979914128461044596908822182632948067786864063601441771284523121623525445311123577780967722619832618763464101784952275139455618782243948080312589402537393792248597107069527503524468811253036345644924918017306082316108712762171128130842652675234093532905267415209638114873785940776099280679273649493287170082901100770399674845444702455279374035225341134443677486358540539998279249030243132174503920888524936871868924615082715323100726729645802338987108361846296085978811631840231409249054861781652748162161656252329766588010299736342657643552198426761187272180658535793635753546187834613076798208441976046403488129452098398428628993270941917796376003101791318414961975463714650137501566665872666680119097867160504898104077374682241947243291125661651956148094292527400471199285372312480827769077911846540854443410029724272394525935710070924566011205820802056970429475695059682774889005605546826998432334473895289780418947956541992460671340116937191557835160459853688062523697423430929839785118209597664408598464672030035390142900893509737466073379529647317438717743854341439061660063385486880240897701192332027276073471080551348483095164042835142341865032208599467676623246323085453783419380773335858167231206005080866635979798447520519676655759586182453949554666501869159151783058554711174492532019497175345023324066105140353396299809490689193222239792708340987302668114578311808383154293755362020332041435099936612514065809654167591956534291524529805551088229546674120335787651578626236842482149463381344147447999314830163753758907678712709604926538031538208992641992607993880404824108690252108124816312403979774104404933369870546882699751222979837267275741035762729557278339923813473425392479697976815097348972377645922935017659636242177670137359914443155034026984502710660710355000752422939143706723127771157439514457413879778381310743775949904122652051743837696498124003614675374363782523897815971368111457799151799008870039262739937862091346960530207677200206042672020825960503472507357477073380286557532017814891820876395215770381221542586316494484721156097108873934587578948590869364198801137780638484951079337010510702886666360224301503608656601220410657707371337263905209078637633138195008344020566749315997089975094680519177886952304936965842894562523785001979416405786694048404600737636625529394671730112756122669820362778769947640724983065370648999757565327168433006101361556993715649529321811782285630316180770335042001790334069843553059394530595006725014329160784641785443946717828878203191859400931337533295863302622038231847177122106193213855845260345855985387832769776874827744089199899591935015197362139730199790088881741193298779224985505940721761676119855991747846161052263250780529173191640105475663327484758314754449384752924094081738076741479956912823045224811163766535020532855841433300269217006695935627950457668892552629822458580622033159794817788975791763447082053437686499101781888693365931769544771791814387911224377388965606871561067722714663328810601614893586110485275919637718071922971381084683620173983876323826561291792304033967514521957858245884468844393129517707967821266003468650713730468014698215791730373866851960869055454933816574144211107633972682895555843279955810642628260899782417249970384506131413947641484654145993952280937688860014054310686105323173929698692553986218497107630416524488578979918349615822674317873951809420415487008206935491166691358317219172840259031731779412581305606866610767076498411252355659754596442376576159109404413683060738095734395711376247512830973336056979499688904630590471873631318579103670225737177202211938592379593696900386678682357952539841930883151250497650592818719821089330797787036045236166722612061489972890248662765726097935997011644091303898536620771765265152057142207097996291828962477558972912485666396217626576796706103778976210750409551684959536877854895782614299729559449153034010496568171912724557339414951015370395495257479109069517605891190256245587006534801422474471825561123999441213100142159527413194802772021669106476853977190285301537824450004508860944545751773915300994894109108518232815099647699972031013986454712880460762845641896725175172117647998415547442947668511067259720446314203690468904163685493198200533353523660419312604328979665159446668118551182766538699776292852105466873312902007909192532891038315948964940327870701805191062630593111565653691510760833990040053951080678188061302326546859699631989307737658695365104990922688796062987837610182918119747648315146284884040092222848446019247913113755714778689846747224184895706832474327822704117697256370609822826854078939902329787702083923383321300267899933111350605784944790152437231046458854353052044716505481619062805483772724770878835263021034584364538577868604732203785019197739054168840465651774155365295921382185350579967420344058795096542181664774387214336724510284775527987724472560692889789687288394221545057087796678356358224790723352281067408933334593468505833060959895055437568673741469501283008114551340584878283473046737567392883239773675914644875393740068813270484167363644294669287139198661981649299494683016831811628863154754496637310266530584057586569933277129869384004961440987988932991745172656251218967741898861824260989729677642736359477010186882644007414112027798409694493877035114284569853907503646539796784102439909484077410663037534133132614966423480032220927417118583157764311292488361092364754664080203254253443415963872901938082045371012925224181742696818156168024171007190173783818285113677218969367603422504021165743337045517068753943809838503251074547885728107883344134880012320961236068720882179454375543225013554218387705284760730890655437521930388409093490021794549717380600571625182611445936101134157120728645703375168188693246405214271683238157071656271717310439797684500702223225114008167870135765930139677276418977971285070102014280127957420737566562458923175713397816085589525451335220388340700332208830557166975733177492068540901379111648121932596952501870062788228372286600092298123699557528871832933579287903213096956688397790380375154998541803682289183379715309828046293937485267248842671735133106990542843102699819790233299498637538132279141679723092235733977667419505640675037357927341881523596202552250164463270799717437851521502377366529364383974527337156832690790090932279509422107749625225458089665128248890632096363054359771352969255401397230164240568253789629364140812689369413378402925152162859068179260123045648649821349514117705759029357783269163074851369613637866310947191050977371449201982049957427909726916393924225667936533602429676642318239298719592389996624505301388952631095192082031746214526811784241027252643217860897425380970893002301453009805974081196859426087509008762948898585813282343479986311932609552502304234187862730616246470264546686813256407276829488037111597939994545010098704496242943603266169535099762391715834630799396439383499875026823694657140448755559580726470856081495468031037377269157136056114433613031025724580704011484781081076688163323699820941699375215883873142670239219248311866654404690753722393115164563620703781122689207207688545478687172763504932796262739404698135222533896002817871881865806681052008578473155004657096852092564338768138495256184058389713958042919317640538202254646507606129596225472234024792742336099000054872505355526033005732353258877174988480584813634462471952838816493047473172208823312963356048254951062193063731866216614006496337393093845406692912451476273129860840807231187882468679024409030687982514605172307368591586671820678000726282346840752772355128091157163789633994938634070180209559911049926292142882298854486126643022308537065534905204156082563182571312265342833435068238261576627405402654868364863806080240423547772630931276261288104389783585213173482493252198162121637297213465779797894529138635135249812021196694904041514864336192024823426978553570223305976966853312621245935677891795150209597278304335521373856495886870122865862421101702574787179012477372011072599410988748837323083803593188849728121969930107704404633787396328540061351018242813261827633527177465400204401844582371869200386241800528681428680339874045485821554948077364636306765144256393028032700642750136613061119726291770528529842232315437836528588088979880006512282327371466706690111492241319624778596440088016231067872625888159957664186247489979331446245820045208828649017862326512459141466937541068580951540358979757401890660799175995318378565549235430983158740445617692636504612321665002395386935778408918610180689863816472996249775832961801902904947560551558061855014928581313676326557122659396812278390606377471988538706460750896208605437095222638997061819460451825408135221823863842316126631275139295583624801685456349865157661240615675848766569273438481588656811226445938529031837163803835235482315847441657949770244737261224411870269414172902637880540054533287105862785543321849934242442841077483351194861550688592939139605999093027600145828152822066924112456445981095837118351657741043898583294223848470504595055965734759256097595762395398545600271726031519399728464069075359703647981051368914996849172945203535351912537072909989224633270985232392800175205031015668007995604058832320690321009873447021024460853539483516023419981647432555791704398061350247420044761929347316365126370472945793181131650891121448452669514723541175850857244118060069987886839875140110560027519223588456989242987815201242350777761296957257478048452863079797261477959587144508068546632270981748180899044635562293637157692187499884796448635035453980664297848438690823393863511061592372594908579366157789895473558076776151759373155519112035367770098063996620651345623707855675302594367297256081593081176785321842508366138816931690654197152416601087513217690575985828570110675859104782907463351929022270356502296400053781488146193948970245146696180323017167878402996835567212392434151648435249079306868446193724184809804844756218867819682119436729963415626407928509477424036970573722126138827811838182546643646413723365209632548545588480287496938349067665737974082721807418725868851220579119275507422834923576009941799719725021709275606837920553804709417827114290377783629336894610730082097448848947946374500592895084509727910328357920328407593235058435551241546919500211731032000490912248215038051372013830373380964721805737746286280585782556056787676016313363442684613961328880118661212361984670893107601896204252994832532596455046467995185534330043954611031632652448109795623402174403130333684980255982585558482650940332743162702108602991800884008453604501381053295638920158612145513017130860152633410214810978813794840887270735015778494453220709993100120231955816387445251630316451482289939659577347682422645187379221640686132228840507374984491191322817326507448593356669880156369805353921399077547794751729418687404150869421792613371815758248825912184571369507676943729347130207930365543181033048663806860130340445584018021420603347044742650478941325545766264184978248303630157184028587719483771164610965843317686324706959270517731002260562432625413503913759459068817365740127493233209322727770623777549394454318948310896050388614205028191855561735471543740613010695808047216126286502740713056723698169405995869234939931604166025870552903754609244150329509981759459532858488979594585554282327579434520369985801335090479180276132877061775938619270101930627646707062399084368202986399891337182682959604171459970298826974847116347302125622789392992198886695476873391175256446194330760584998688590809922440851130561225182012921987428108111756249337980492866811085906088498076228850893762128155369301404791148708628917003679506375714525719710959607583119712921568363862935562004486732344566565883929707805634764082038095959817817647467091394208812218501107768522183111257197982013373648178910451607462448880621054144064751510854983869969242283384185300504976092405688613281145813705142944195761884560181770058965132501474746580374501103228040169496626405688683160026240628209642392015102591876168178358327930638891247642874929101859045565953537885783394629673099947915651350638576928353802782147420336110988397360932775261181387362522233816914673044983847921420026143000165084186023613474895546161842543086237258003978416132000658242993349953935342633828387447178350063137421244767304699224908282323518943592441608625343454992079465146268286288989844715933713219490881355731030958509200793927902504231245241481285802213327575782283896314414923591261012269279844517868547877990193670582557815888957297008518599673057221247771000141548118292716312151992133158646011372895162942138027135750365578853530125613954073184911167449681947859766310939961826767318208689113698468732241436778969809549713782563673350150197654396729934073381395786110700522262432507256104615096736072494092949684062051831201565944111604277426836329401824912886552156028373595399361454638120948113563462233445402846051369591515837178915115646186579725046027374518724062292176936940078243409922841874592637919987189849291941722870008747979226047747483187490799787440294843360503563361631080924114069821281226732385150756487583473403234375035516663046667852181926749602678330315501922470730362209867673643342315776766428366189652364187350576890713904571283401406049347554345701406373775069820484733582075755954463667017300679018275213172584102777555433487012925706433825453844309351751137031316199174402136639933338512052695373598012477940267341382062270895031417210658974677009227780632857374211463548227892176395293848491269755396925928278123933890477184082545141932755749675096349892483217770312107927383979425877667477856367315359046663578055175407069018640902189115269311014398928665485158620780228721871456250142416266200956262456389152601904509898156074596277578355212401310478407118516540737739944576076810350231252028010334796534167819713526272265860292101529320032197486430596203546360042331954706763834123907657447186446157968210293854829594327601666223391945990220900725754941589605806355829639244163248715936170860738757506194127036336073279437414495507173136575673523180683990107742874806777972300236138051991476342660133974593326509995921760318553319678230995758007220680765679583486353245190141633366513188877468785532653995474900774028810605217065013478856462295571474706445954392142943109550918410518201009062349123871055276519196991665477371460104444467257855280214782806508046974786792451224792422744879333439692093103634779122389282678697971652121210617602293807701724361755964278825750060212055982771376112673067875725208217579923645779119588323013295820236598778462852398087429163326286583639874158847389579908659562013031011655805402664690292682835662604254160724038847944392808152634679839123543618026060329834823605161571038450862125310817478951875013423667604997438318218258132287336982346896030193267084058167990460375858143724834622842839775378241321531007097069583453874118821391035299936370707854214554926940325160199596414189509385244014075287464156152383491925018014998873163298269731568855817514163008212937227334294272070753174351255966341604695921731607635101964871225792209765387020676015413595669982446448387721904862039444538478769221848524783400414766417951594952500400839773189246553930908336237760873164236380727730813050668370015203691395308236387369497217249218469932282698995307905001881582168304696243605509783853781068616988110599796222252808046868159408488993266601640774782303888250620221819033099398258857515608766749805005379475271789613108958237836093328092019529433544081814154621337479012057336492725188171817712332548580093100233371099381950472247077796352663019034964180531088562367064403847145312433803792024734700198103026586493772244781259281689228018065945232688358850566350932015632725192925707459540857785658475581879798965705000815255353361640126064698909406144978019613597648923360632078498811819731222130872551927702245695039524883649023099745912350375727066724747296840720795115474167212049642355721753663445531013576853797203691246838098730674056021915752458100258262185095766935592358398789618613632425282458301111709970358975606284428372555797180803696397163103076808723077941028755816215781566720332986281364560099027941874845708110091502851548576980078938650041735410354434323705912026824266623977240277982301320359533468328942229378841123433117785873575330840067486423043235444666503904077287127105552618247605821844752314186349834716721083373199579623246250214584214513363796559369562454760158242779535482954007647182808740940856516495856681343617815600715772235199873156075074587448175780577284629799771846898819395092188131698752375633974192103934576496020126953317042059006669465250836729170454775823473090144516714146392648067657221276833562535391963417006292303418413214516163340718606062079014073507092055945937406822661908799810310565648097339596661750750167380654548712208562238082813286903983720830054428191819057470116608013908450453386202223804201206623768944216007623108017085755305743861509517672384034375064651344135847701213569668536485435208040949131042641571128485653194491781249444735218604129801921105940511979782562538708204901363790734604344583177571465331293684299831927807214722779732505219136770702625043031996627669594675799876490264797151972525475550084358644957707024383601393267596113954140464419191778352111467731859747643144595020145618172933911991527922002322036289516625028237596352236916004866575359698548131366963920361596519237520093425179291768447526572046945305947647753901597446395327402309062694849043041748531000429797173005837223264835508033933496604146611087718613419482845977648950049491134513433086019072603020951623149574507968963703814255609182926909450145946006022456971728182093319250704071726716184440961104618029620663463852336434574732557611296607684960992924815822687778136929550046032383445202481081069282196451923899627086682695366097511980135508821887537175674347148621991142510572887708695565488556460544592831712092322041164120564499678434570159652507246557513111767027679777676186860460740853750328419767265361917094393694132669529020200959784174115818191537911787969948105305367262458767844453247250846681499123166876919549830294641344400812111821152002537737672215597649721675978557401410732687684323011564053240036648248388375309977467278792017837592697552536672594004482263193418589589677752693172106845176613861275253767039234931848014246769743288629520683936912141997146626978908001343434210115294854465748967999376502486090455971319131339855449162332699999452241839589543993635159291964210469955296102401269054623773985073526801359723809516003649151520784455460478451616856029536220106982525561048535736091864293012719882815272281069818863914662589024493281282221408669800796728103203942971096514713840223088310214739708254288604911645737039798413372486014569810976524498768532210272178577971042002534473924572795438637944501334201658664781043850098530029817681951986712841460325083415359211868380509758932948116303108917537803084714661769648027307664752753790987651610393445053411111847444862855815546370447214494256214250219300275757425044644395302691976002901945896277517328582376401290157027296159085680123172347024735934954343648469812499273909235498585226649098330356927386057573113106259978768208151888547165867080476763655408693598917536705500145588232910874358867036789624138402315343610731299410393188030108239842139003227867254217892733292611267966805207693935014800261242966314361860897544259814031384281313554147158501670742446580233849727966882623747997979043369623311386272029111022611849004412835994024797234084158113290603857677627265283295327699182059544648409456013919634053622707961569202918543980151732044459010729094554989820371596177121216660750543680446609164454570505079770434846880600427794523441791502727458744474380825913376292433399077444133826750292851601139144542770006580806397004756489422702357675523676745619740893376091320040393284913794982103270209928337777749565283400428463238661421946121353326566997267682886981407292277394287828433130950584196058880582979728771765969618493033544459825429059063679676406076713958926162891525797228676886573179747015181881041101452748203679556192112207319257981402394314406434370551459285102404996587537860379466955285677553381852094690284879461706834078770270692583227690013373876669624236656402039811431130933961095155195933463633094893380307926332982728362097056201147060362842735648672786777456700594405995746079655939846444446472718298880845422503857257674771320229951283928596698833977781743258602012898880734170627376688543406419819590535911797979594741217815857124643417789901343827512997971544963714258284216706318226739546078104761073267875443544838190707131578901817243693504260378566307565139256952077326261540569477473789661656812985430900917513615369228858884429881992028383013927266504090651386722180092043261463326562687506791839500877466803024948817766806838395590143890935114160982584224606631859052117130919687653780705235757273550246699853715584484687540285101798796114306122602636245676623438695914747985320216080144370039065567459666243787155712253868758155679863194567879057616886067404500696375418519752444755280019900848254650832906106474080782130948351409089128223072948044546276238038979665740191999826293215031817432184526468930652807510718068545449092670686601734310850509464115018510219491960771899127739696178596202165691225365551127368437330158626456498331695357208461893574975617736419347987620018579868789263814793158548459127469256855803873770253365283461608824318211106475827763600440684415522725668059672814803221694184010734641293535584509643483774415555526430120879203896300411039995162224109701223050367465699212193506907406015881303181502966640696232316093873532095245573293906260374099806879588135623773497512978421382529114356852211300695649837777742312514089147296337241929752395564003130073266183234838668197840033818965047434653280633814810734531948067282208668597910476152043760764775197788616000971830736585138826801736967818282868294992702684817900445321003618685671075593122441436783302871648105266574564072442169315225044348764867347931847417212813934600259483353165907662716884174099266475836533541988343579512048065400897772727505411536439927432241661448636946344367174819669019115514896276541156904449177111121667484282835407264108256894900186642541969481683964698538961761828864853257288069293558544037799014912580274431769957678429522900914388198682061089909990352440643370831932585094095272602508837067561420716881350751671849876874223620104107266370152643814581447014604038138459249633218756546800783141473347992097403532489268968557716321732373825446804608664204724797642548917837357795986291684800402915260460659244738089822754506200008938445110332385985645245082307661122940597596919404253933010756407770162738105401374505479724785730082332732648537052146375868986215287451776457866760377133657026056497176971862446095177942700046394566331925050067093306198949765787719176590028728616751765243041106284384929256667247997273571095263156070265450024355487206823380158229120383629492469364670788704491304448306741951600414159340646940722485448559262923066607268502010393734799731737684783615581309962851031421006109315655139598778967929352811453781643643460132717322827861859934216989098918279535643900794609619742046944136079093002884882073867324643318953970798507832767655429070746233576879840583986126833246786531427135846766154103428624669304597929118794802209861313533861045275064422629986616593104866937373648575341964702153744690561175982473860891955692248940361143827544100640459705904926337510479657503941043496000152539867847307327415446231660426027670807846471930357670475929002249769283000938202972138973032515038468624360689941641238215722641178821929423378392041710190121718528918480434846966795964888400952026893039360159279632429762987503164361001413723599138299966633140770965516032853484920868792206257136975151458339524507817758434360688254108561745645674241015969459552073605419708847780068184485482245155748397267906233267560849039645311180103148311329490808748589160835477553959799395126498132286487574330347078592334988411972163905240248294058015398646210102171005712010836178628612822642662305880925060097535766867813163304462053111859336772154314665842738463310909706127512999252361284482874559650899532094308719732804594612425923054612599021552058872280764751178054761494327396940219741965183750712974696694605127663799071251350546800889123241045005988688844867605542157620835675199297611034866854274363303585941013214948391981476235138153472356412222376295281111540087942287201681944204141339662032349905885271774962641299226869350212561711907235353561269220345125494743828255535860103800543127281485441995088151199368598830663987268072216130123476316976125138300985611645405110295662891971553056922736456060012413537358612413581771817303830527352271441101198882691913965543571588435733374261901619533495983003363914914382328305228060298895143241991165944591657444265285875389988198437172687195821242696720729600552379163607156175360109841028502620080396241189306882588053897460360181038568512923281259011228722641226784119076804841804247216052096276061816766892689546184770687925102549087454625081533445986238760135816872875872403606589022231990146816961005460459622413641447671754442952353308004664956285797835998822398698209172921862923512553451447505912291541569100528316785181632421258235283765563987078628761438040466643268380636988337662105913265138410217274014024112735329148363468380098130741487950159930599230687481873547285650353819025832327698852153364082199466185201598579206780583911212443634906081747589724447062298068344900567863072743703389624323674591003401083100871892774632829559917650862048048757667876284542218497314804712133086644846471020427871365086441905083199254725979109891441799876470949514555704131363857902724424633521018928656063012091866082409378328136995571982167395579886754426638308070153101906149179223090063454154231937462348135277440435697289506655067809565962072999891449221457514180546734383833779047022858461833566462449566341115730206209010261408997156152058851440145364395169106542737301012327215288499337239874321404960889751894228611243538034003335760118889885160820543423783701682033736228560649941683842902388995323436770024051931881341855053572099860332517594435107799931834039869108621346428317987219089421802478948212062543965003434406558742885440220194051570522011974911803401442168522071402189468017986249175249882871945588615207700012660986741435839877260298611985360951494518377008795889151670958413966677918564897624817314907511121572093473764417501271884038625310684282038708961043122572008144590442663574726782610152366132912152341845629855799105544593191025312845876067494465820371609200412335311974927289118032662656522951696099211309643409669673782818765753939566170492308937346022913286497083560747733996819961810910804497842962533766432994435014787859268263057700936972255003281440238695758606262248211029384596123649638622175776580078408630357438573811221723558878958977691509556343762155574237822865747582639146547262007617515282550598074627174019704313787490046767761171969949585304945832363155578919770349808983393223440534549268730753702563173337525070284959009555442283987167217855280089234017541820480595951646023766376144916946636054696386708332012489872496608481963446887836073593766418644002079344876220899093249797904013556543724379538575413831479652851883384426850610744809838944003391449354291413031142769667675945836129498763412093411420550845919091674956120448401904536011384857523986841378197184304954771363800065496585687275131032576375594514085477527039382090064103710366806761811371517568783077323057478358770970243209519491416496196793010933353817594640794178060498272670170884314113892050155961230187241796872743849335209488605005680058171662309605601771695485490692505715588540760051610526749214518875034064933285163673794016351538695847553107439191057825994501059072011364711991564078213892588917326305726960273536293080131398678085183459358309203152233049619742162620317811049861209391548798314205419128895579509857955310071705501844337376261082165905390360513087079300786561138361616367065136408544137035195340846406027940609972677667710268141383486233436210537141762938748766391921460035622762324695604693270412396119270498927816705113688463745535564928960447852873904935596073034887088983375321046672304188895850434544751377800346400528848716864682665038552020732673742933404084548027905512775259566688490954401753933800987164505966046808083772833696125121612511113539882977383572462881175217656441687797231891206452940213616897782154883316458508822035742675183835120896853074586279999915369350997128344817513694141515499715508737795975156829560922326333866865038156509933006358450314423684595552976323486102556483332932880419955640907368904810847518323204394329060554906241728830804337885909342741694640170059850169619075277157362798840894905072530525187462824888230789891894881740883854293120579552261260499767290964813324925751097793556262641992331606610192853929195085049386784180142894593458451385685859532600166817937906920450979120900684179316713450370259005810769996118514674648978368941312049622156938454015027244513430634981827037797741880703636673626813860379491223971141077545972571284780927962546784672673254882966454697353032521114428891573601499202326423263832913058519094001615189371225446216209597780748612289420607739484645617709806667533398730546465673039418563048725818487658867804609308206150660238872246223534884939666337507456698276524707365351944584959369675124249282199391853066509374612203761165573390830183249384983176058264784908281435145293093508154117760751268851331461443593252046175626590336415112825424542578672998020588896552722116085771366089166186428232487358822047869397753839194312062933869577906366886276814081966749727704086433556851415656052434250636537603899777318378455023240040697918499591603997329967870251638795769401286435831656114835084793117731896430781383858676525200940542469671937542279058696907920072257612985200169483191446952019086217878850764025896139590316619042293330593611688416502630924677809704710737578384858041096458439476314209490016603632318700199576167825657876734976581760789889228858901096016150015738881585039489319683129054960904335534876853314557764465497850403119924150200469380183017071305226689261147268265015577081648649156580569424203621564142306660770367196637883380097134498673548641431037677149937705916435903422550946026450517579268196101258293404300648406765116105943726743995946083938214225675151404378077949400224321325428198160178712733649332592537237830324034808100536156403719739606431545149006351034100519160516945356349429647048781754577453881249795049445159020860093398956461094724275862510507784059169173501533822954413927934836562077330893357203056016825599729919869260526865613945459814072669582629251243017886274759903005746909519390623161696172798162180257702342942160805895333419927572744852159751324747387763196878354779163957749186337416661080988928954319858298572941438581662110749231663876703049636150054111258790828318822532291447809697185574762951870537943662977496054178831716823202188536147719392976769333918391828118691175221276117386651197432319114574356561751861686529970998628803272768419600796274883827633214968193085078061696762517963906408215188177288551640777320475802867013169330543346513883207548550995471427856347537195321261543175515704450601860135011744294440802213267849925831654681507202958716119729712417011229059898080332096939414967132963154413447082159598475336570776673028718174959212863518723636985554697831846205229639602436856823565001551116061085093811460573774068228478445521507369755991413044870184472580252137191815705852503981118659808828839033000469999531883726416582247378601997541174452371878613765156123731513135874063735082283244322586878537407029471686071284500351169212433545227731565094845011553609152636702035341042047996118858636171535643084497434369870138226117457523480896415418677510744255422550231531710967919730182169750174301937786841649484198918395312097375417907749731191293425153024429350934374429755880060064382315603938850695110927622603491989358957852674462164584078484522913822960747085938600896100826179549026219029580028119936274471016093942617498943229292458539654274667938382434278303549817847714460441347167363393093236134343903511375061367236780761562191988631916503696163769900513981293669095108301245592739774720218762779363816640805518162336955153389808658870793126022067323925193731380816529785167510154342963224998623758301946864895582435321779409997203395389126355543361068819648751105828856458879800048319125103428963964371388298821773810090270800434296872588107748125881273855638339386371076374839172097177653466892488050937248266596190897511563507065866673846629294490800193460903174453086628773870605173167344243681808256748170034975499002062905531173547619172168640251990911364599768763694930984275380020170141310003893920289917806028137771848106492063294363157420160344144285418467231309155272890870872092958406041434724218195105623951690080493594051187711499824771010075262599419307718002274079747262697423952155861845559614064989159373788842900498307402575697022958144448763354794902650770522592940712766716561056387686450418506581919640167676612737167135386950742240964063542598448504194546428417549522228719778128417169160025734726981512500661139634313117418815367297634931322272319308584806889006402327241786422288039862201614371652948895080484944721165943764655792334928716916543035196850231756521140927039171963723623512800541846071782880320270556987295689434570553367923069574625714117806714226314070711312545018446465852031930837529726822879154346731078380614966436346717020683489670885640662275630026363165962098762257705067890799428755839915572909786411917996968784813751323585521422941164394565615533940336358852869551381479154501456904289435638643488434662304191750641046745442237938615311920445999207752548999286422374777850687623980981015872513916129650424050156077552475016680027834374953970054736706991188054112889802060482070445867821255992246466097151049118803636259105874947946564761964043307516263189266710995702120782207571093308503893075502125676356330868468269326558273834058332089990332482908895559569495298415116370998246088322877653894515853220982807870070603574207856445912149645428382307807007543777980725229188177180374808231226431210352456808181455977844427168474651740643463970761359584254024795494896981922665067328123649226143498089114649985356507589314999820052146290822155090369204090504263696970557186887588609171753017098619919722264786682977334969705969609098057310347367644406684304523525270532413566178290898001671301477293863183497708875825996924793125569309785777147178285409796040987323450325434089932922375170553005299159443311123237952906803556247752084010215860249733630707867946305291280367376703462988532335146283548063957607420638924056735536207842838207866994394165790704768193637252149799191104347155320483374336176487745670677474968060954755680092847852782970954164558609755924812082634622161469539039648595332107989645647110600294897631511100993753140243972339228259936343963684033413998766377406396016254645308526266210997977968538998626391674525808976072631624929322920575712411802475617341784878791988046400748006433624938708785830889600734685322375782465534866483698697569342589719526131790616096195871177560104310275061599047979625276179874983705203822690386533558215271481050500880838796773446718202599340919245219986844496869640434574265861384527432949736575042523174441821558501060704084327343333059928458822814458284495555010169847969926049749924035756097078687149285255187667596353750060313201810779828090621335228921845557704184924524163517048178289046001950705241624847371021606797271843755054790814042011093519903930560412175608943488004059974280231421437562210729510597240572076258971217217175536318024323008701959919111876465099677222610861667570895206685080854760133141880286944709767321952972924751966486822390361399081086021056404601601763298638578864200325257988203037496803696115766347580902356982156329131361689722018799495954089940578216593988505333385246622200859436646123435301283726734983936429935183607794035670079773650848134389422807121770764630705205845236772875503036944906704333266488049853590881074355131782205574247348623042033513003837501888355244260520631761656126660478258407339800317283261113788912304711260613628028234857877593855597091433589181768403644422680801175092218922879600650038106578793882966135284643369553467364549876051721086413081038586026192503926941607242598241317631651948253875178635193347359859408307357306521628213109664813178707202820385720150270980187168758299878208672153579224836741939218065279845139922787806146908415421860877704712048598882032976631154960191502072090658294140747933378545791012775026355660880927389856806188290585414907653504034575221517294006620461447916213290854726415841161284118362855350922171238368047614125054942869395655580821319744476094653878696336476475261396283333322686910469941878325448881127862953190865830279885225584195381275552984557302186001681236714427219012136582240484476705553450959568534373563531131167059931861963539811172466270054866666632975447542240197776164434053681908429604102143633006690055643590184292849659467961367101645594685040393367934373051379695429522371476359249851161748601762808731283001901160938860881742675119124231896007544163980190971635496837618203064983653738318890013858020881482347077004960149209428636308646059635161659818237619732035055671826157365657521174192623262183047569551644700876232966218513582125956033630437868801615196732843171123181167517894439685141334830380896644286617823849965593817506226178257862603913730605604503102603180935610808681663298922768333981006966031732513960431386392015331223692401160568064616949004243879672741709818627019285079268388596227622805756684903622940346276996023479037208778313915568043040007237110739421296142975415862020326557742072616425055234773903620987722580642529410202958875525310674985329457712715486316524847523131397374553923649815926005022533720510449855206342266795445083602179298784620315337272861195774649753689266047500719546611369875884830925606874019642966036830715630588418874894285363291092935797136373707137499188638004979279032770137827447659230934360810082956695887411702057833207731196554189297206538134657924346455841330894987920794369942070983862606504497765770915843662204201763833597803975894729276849520682192136426854125056214700281237365507312056192655311817679723613171195382110280985550958377054355281035398845022546562878034662415678109243249969051350749480582767759421141595061464492350017810258801504499776220156047376877974086017375053608598781802209796538681075553088198636831471089268512064385259441396981930752630841164371385014238069202827341729208204525150516422668892580660577422959512612140876999692700155499937027456031372228039343306171360502974222386963192588810729173010728793175021212576718458541861043297244113931524460026078663119748890643310946894553199877147002424612078349573345226226219638030772827643043269414424162584641335879628214425137034526541029977498928597395344447778653416798362150409607456172088168043866898793348558446929478050749213825739284725057464689992709092823912409059628030324048467293918379747580004216479456488317277011503171173734179686084065961611420596270276116927104046331954223899124575056004151040024273679023217214306501675011145082377722392853273336654690250533893431813712834640679132813326862733662447460103551648528541034117197860485086202151217852312293422480322478003753423166030616333015043395198709030779345479807868013023939193749050225974599764912306305160689947086060131581208000561760481112012714888207842201700356649056884595143082810689237038672645697116344937332520659077505765885686969718368150972534298715534754254740251756139951409220037314071639263311573000876416134489536814737494881594002751953809876887183289044428908959347473340956062938044709849823427188449070490378494036206260152587856771653145705135689588265932555557541034399948467800479774668721068939377062820429033574820529387098659344771668493468180894046736570298003709572736178695405344664038336633940040117332748098691119676496193209863701504296654564956311536782401297227906529758454449164052959786993412220110493607979567962513589809490550034512483805814838035055435600704653948673255366488471423404903190559842335643948463037403215395510652685573390240007126968165365076231905826279910662052255865422994389559990262756648866825771984078862580218336699729676505221239729590918151460251270214432073747776959170720577973536206357918485074530335356922106893622556272132101184839334473746742196617104080654155597116297094337852353527047870528347979538328920311771505134562671151266357720917929376170893263459628230529880568891075049980564393887508927679327818276199234747086189040500260233114286376931537454740728433691110534986379548291906528657238549088756128194451113993946063765149496157261953525765422536545326639484077841458360103847260441968105501277993027228306998411763808421084083933847248210828845771478091924567910734924785370830739593515159329134253652974803317711298918106505217373273150527178785152154072502214561340541881748805575387028448117028811693493436357805937661560183796123443345618890216285864229999936661131518238523333740115243722431811503570144558665791364533510706148102182796293901730940258886987111184801138979749196663761900229600056332706576559652368130815804650248084212993625044424545977548083038359035249510443320713399439427403287821529249121691271042864389452672533366476767232396654611048549915725866640981812422716245058568966631603030913648792874639123095391760237350647818745714293090359533705767469132218650434034161318223984934540932562045999362179603411741345110409150999671547069300259180051315052929560522161523598371227553487294996898325955990964310170597824618316186739362047670722022673905277936603570167419329942582681639307501858493126265808464413515306963285461271797661540867457986963535999650374936490541637592935100313569134366015546059747189077063512496072441852726862555869907708271299388896154022046921988086642872296082804368550116332091632650396033271079983469643077410743765688068229182750444231332167987084566250604726602155964242469285980483114392173768573412699877099548640400807133161627653330130904986695545423104659281151070798344048977072545224342641629734837495013627335341684284863074560474705380727497642220941324905712483747013516444865085570185655815011456121117260134713992036804228927010764557799318714628308726830875103175599075012076486951482146796856985267674064913754260053231076959439860862441292199476838432294095738510132123497752358978508689001216782700092841221168538617365744923852909804748704998600364367897579332202463336930819154542197750480892143249791678818890853725350448301034855545869551364084019809069340500430017762438615230619080625764615127453610835113766041891137424689785301578931230649111780542038577092784430409257117129961235435337001686101872264328198945387253295075316080056356523795973007944706119578357534875788369964622712809970049706077491037817448577330693465899592442048041110718468157185928366184506777644369948103889064330229591203583088199989301668704947851270703411901374791098229983175615695194374627650763948068029370249676428531538669780914570773916288613051150118759173880915825713111076114132309086955592842565286894246042336456789862156273330418706655818003947150682009073793276446506595180779459258978402867937394766706023583781633640952091453753367507844451092450045433631116533176448893505560633758429652220510186407090452822941972101768307898975139297406115288148795621066674882698366891026505836419404928942995316272797985716982746952662603164268555263453490478067754433688562775972317693934397806992783819363480654273106861644245390369685932944658548717609666255887486099779710835720951165175032956805998259945388143942961894001898442611105036230413623086173818811459687992248552664250650439871943959910523781414367513369197097841805792188538834355092278994729098505133092082384096137807702337604502051880646801866094488965766431945241438334669564880751629962894869641479647387091543944023009946727149135374904073289094361131261312083699357269501977295207513328803440505487310862386475008097632810649178863868304046987984229067961876694532603334486316957642119415268922195582063485992460343558550734800710505276044248943039735022803538860481203770139640302432862491248059507929054014623060942336281709464708458144224672477110419026922222484671993551052208363355117531424576568544286977975869087954080911515251841254439732565296075291136941208436424795902616351765773416691724052027977785090131099524231923356577545277253310792345722609110942482146019101804051464211875709146208893839408727886361125810976935280159274986444590234606958556124456990139625851967131042192442978534463135270002376497251048808332259467930485533704937500951309163440068529731962325531823965958192340680731615103180878464866415171882471889475745859002053681153380885618018846872326804624017616382268987142280034258809675236402158415996170539932830397606058004654968131211699225186291203077652766719177898821067982548319753385122612850865428674981251901590268165988923562890375316278616513818656523403908332909654068142001812377004788596150326818574219559339235897949581762523115268966693688257476466390122998916817374406817076568114343434996124035616531096942663777477261149192682500708260314063628662952702096665234413369847768018724755926464555037782152828245673140259694075117291147087387376770598352626578962875554998097261654719652281495983289936051771968884895771761972759126263754006503920852091502130763221062393392583556215514927576349306482115646628624719020008414034858085294833426120467735154294136962887245176632897726272921503009850376263033598248475077315752655580811623526001668861369119109668127560993291084305596609000389766023744340701141111563092414100632738939567619366618103443530630231764783914923885814403088748138344687377003502820941897568003864986288967701665849793262415543096335781812676521120089028991918130513429698765314928720742386418895275334427988034577948999882339591050565724652590103645558001774293352125491451636597009419618586604368229083895637634576265602227010152152479327788499799218129788854901623923110506147476461999900305741965363621472624725158933361627516651028600900003975874155479857827270236324125391438791346178038885112060139639797288382954434146997959704750659145737033553634563431490767233961705958118321679741466460475387871692753069033017422408266215709489712340435220469682423329805108066096326760183020985847641728690183790938648200932855807263575092097423416061730222980544786898149889960409920048254324996717900207461917954477097248626753834591955782971744948370930266778840406999253558625192408532974618217574052296635254634180443927990606185004114978159100138642252680786955965206981897193862669776241293094020129474732939948761137989626460984545196968887047737940574954073402113735747453101841400043532877374295271566283567440571083310049277794646099690988538036696861412911602510510270422500688012102511464738260170401683911569005785888383979767360496789246751917427602119435926011038188087177770735480379036504392857091580703233927659555372435638256764271635396703528665933599228830318929606337350447767113369820436533800223577869896218462789464240451852765417643139614860170006005282083385172641204112408025231629728878427617518347905778607760689689961294578583170027566966655975438784062595557302693150803682747343583559686107526145631783136026697100250147721654359963990835631035099439354590932228917980285255438093248172728780851334133463450947965699970667581707951243721353997046392037134266591530135876967545648751204666362078175210422435651348483966804689498840917807916302967689145507509781497508760565330201665535385759277715787695286819831681785120143268953989351265376177904915083085790934739900567794947730553864379136813438723593073928535840219709349225375187346448996332077074508949298991231062150100870076792315876167623771501773815535196562908983131678217677977459296017284955344858570181078018927605654541188880747052772087668469819034366156105570875640333126006841655888162339889256446788421366634223625349300452856477864712261281938059566201640370889980221057530277594078940383743074207493079886373081216766010177789541898341277258694200416657985889145580159308356177138445447734469545008679632906625394461960008791304898546092590984001700717647658767553906932164395748570799115387740433263992758898470995179261283186699750421702148523517342164785373220488729527215015178986669548474357441213984681107220772651463926913255865068451458121594497646554450563175742868556139264404193918470556994324268539339213946947973320583452073665336728822068434103191922478648297394945375325886290219111517001724666319468963568303721849158186839225202059339981851228182286696975657548359129187724264537512645144699109079302971669626960383158239232899886847562286696370205499574302424498429634738486907066541165524772530145307924266363896516868094435944506041537772000552478667193657757373865139997318849248086647136485202077970733354830380977781812850036561645956447274660256624705834505852934619611632762362872980228277769759341310263359748017785005596038346223416850201702655325690657463999958125879735362675221507553153322821664040321588046603385381370401900350801253565055560347887789149999334072579527995381582058805960616499475813900017913867244843500002657317832046323460970359383537073366822036255223845437181161436605925829774336546400117468492442661832893942058554156158097365273745125734547872058554309623233707135320195495634675841852041764156866600513153311664587078783564181928051907116653869072386725246588322789485143306663182456890126426731375843629695152865460185870133707344620653099269368464856345515295521427055069278366298836794580890876452971514732938302103636544772987018360317963953982311224042137144053737159706004808094883379441075214161991036157216129418518519388957865537073724874870296120303969279188948368011403112696439855321263134578006075203053048692161412514225623994936938911463959731324888499228640064239629553276422817310382113367932526355016872995579768810482808398098796464365441100389942201515849755554894218871005018587698742013759990156967521639640526287179651878302819267794653962708479647785589887564691583601517094247249785871257214897583979508491239952836720354794052843116193614907304501496280432201522552873381929109518288864996380859861768738855585273409608129944964123599458887772943674670828685541210727022182064588820661923605116046002840601402728458801691455977824233230805762993203485534639152312234517032741500069948860485756403411635577322251281164823634937291254996785688492996704902934504141208602887364156139174586377627069746527012064636077456133932805471861114682119529973811914939774713482522912278071496024720577651308783589985553025494573114955877516529398434717493690037004782981778753303449724548838425878496531927227767388229735015450997318918067768734927447773864759694134113494763239659824832066073116945597139717722958706577273723797228733618420310322512983854492502062778272424548302700329623201965964623044135692890372459235368374763577068542196504775572628450155141380082468834292342235388572415730609787124368283514096232175284630591989132945017734453337662290332356129012521428088838234438537515083582237760896781197112436081984424963905956510139624279563999436450571130308908992029378967393621917950191076601810408208274046417326414782748673754071241830126162434736426671384912634751885500674870956705852923404065078019662273387924781012725698349984934354996220416258079843642565554759685606427251649024047200725982974971141957536489782165850563795070835771092353263396766561299393182171749102738913641943295064026639540562021353372224876483557301414302202775848000544340741136270101132711867522136698152561308874699729862532456316190957269609567306221859487818224543009574328626202782420737020509603615021921762397335721125297056323606394824721734720245456219517534767128910196434907667797400103127673450980124839207982994373523703932751915829866336177099452409015081289967813876365494850176108261948036955272249798992017473721499001676204802282861767160059496820066666355720420015759632863568220591545190159564239816235505023365098865432030648321453826373806965559248950058499192820383796386904183859361067516197515461636962179608117981931685265155887839765822859978896296905300684993116309336209482810090721685468315333721038072337024276559046312141902865293802009255154926743044865394240414906409965373507461134628690951606978212378570417340238470403861551075173498439900404631267297455668374695403238932935651541812479253629379014925921898613426274509621627004617169359599502085721403465834064676876137825321555755378015543725925099655966446197163336743779939067904517859807933872995597827405696976061021916858231352904735943694839562225095946074138741015063842889507883358099599700997024109909417100816494690054443219698465527174380164869132038214432201627415108331895447124673153701796721909430490308849775756074374964145529495890361920582129140737720979164908707645087728777310726791435286190044376090699382412438586056120131623364769185074110239503226844009662459528672361997061442705670070351705529050937124913632623827401796196666349195917960711228489867807289732835593927698067319348067589590044144158811929785266799780241872225379047774429978009756406717514921611651094412696053246732198419853209689372601629883263527813088498618662755527737340873966188561809497705932312310531202497319036356415853680201157964788848388018057045394480430236911163849841689775840175026637904257841513341446000393187067294503571183040974165388732323926405699205965009404895241945840191345268393260260738296557187003814754194318323764412928870498991855375509469187738445303975925467096413617340556779128757964328653099035348773253881432712825440366677768772193870811358232183355884434146667226370011585981671924692132055483051061900178576728801827895461263819859714406671197064425605008011678807182221852633112313421584928660616036998644215722125539141141919695762171998077340156768050852111320197731294241538727590469264288518704525967606415882373386578240286718873079897802654427378816543737533204424294389980347139277887314233746702837916883322676482412838711697606116172199788291333718138343766920495221058950182688147025997122402159058546858744950876809793093346139952840893846472652627476632968900093224627181247982417179061040205405933256262520267616943378070636334825845971570373542767644933188485388686856454210856701811196085124844730905075420604945493290056384693262460705533005810188235266862390234613893753313835935091306495678666634897696813177429493462719910719921815536126389210300622289811958103126947801073316672173403164785821788775663718904791060768426089256470951229475790009934974655097023236415197521202864808841749225930213690151756305243260624474193262217624632685342848743718622944513617496163903893319861368980252741573820503210949984637852185486741895904353394553192341744644563682468807333141870287361042357459841385654310123713440552071243883083911719054199236094686535125746661878091724555151780418694472430424015171807374553089078417263402022217028527573422594252587541667879717245938672884926966674331968873549599476294854132237262044768625946053010093229750383005544497991808877345230534190109210729373795534604907762660888666661594671369450722162807059141528494279695688960958913850060950267929318682852005217996643807498453429411762092762112589493189588158782690535151742498800534063071793215792200713301598822582771910625013183579559748236139002083917028656183781128894515592838614674934463488202572141248228019503093329189355903576437744181674858807623467146489925818812747019148705616410948908341401195224892310828072349966442914406411601705866753284783512452102180357797185299220205103259322420955556051015081546005392887172715634642532919605282787754375509769997606364536628087525356730543787595830906617050518871186781181331234784377836501244008287358030029951390155509077168232938554096755129685400203196785566104637833146604885323444964697507834045695037876094995351783857523667760710848110622184505970189960962377542857236724144584752820922838972635286572027173683420092671163429841061210830721822890678361647441163590955121799661861746496424245603043521145529258794407511746986322068406667753371110313592581726690844447417593619834983085290240890134181874262048138540084646977497388137432647629660487808072883906913258575335789837532732591784824964358227856327855372133070782811328817619472130826408154849424008263123590175655054207632016842784075968411007011814294360829236628047144555977914145840911044091641858060096015611659406410211511256453335325391103684218525429436417244542965267663570414643064929545035566063920425474994726525223408723441442738920739650446288572445476115739997675588415126591227920537372111651348757727036251049357146992592562885190674189809458997858522863682427518364930852281175782791311283855407032723362124881817511130284146182013156363370338084091301047286314634926397741146671571062977366423425123284702249060659669150113616028049018876740322513448375659587783383974464098846216190093578186968857426498869367855955082544132180491405566687030888655251727879221823527577645331738474651898250912354415572717492125122075690334422666936166381727191455244789928020261668601159232637760483590242984343122571953066097290521369010838919362103741504248962646582315081876687122449899090791019683082813668291372909970439280870442558116536574605504664098943610821550495121247543692873147424630308683790796158363865444016353951975524877356987266181196410930538376035809715510861911420388335200257937467625321138545698574445791612830103364856451421338334004216719067535023029201634070968003391609365647447154126761862157445533034971883641443420895818987879953788588224854264968423375011966344377159452911036997032998410023479060729325653995721994835444183098221729953692931409396790281380185525249593019826885836163010210590785445672440257928712167998983265473903171436138075511225126891043700029597405232756717556527871085016002384829007491887730435929945128493223413670110671616258321952212367827712871889822476242454563602072037569718976714085424308368602124295327252229390610451302971777628526322531407249846896311809359379132126324714303851545172342345349109061175189960479833037768233711957477322902008176632825971908502961348057803701068899177707953671484084943883051173879904941830689517566416044202458251401534514917745022859522179193909564509871184778833531734025660975248122955617098722706995827760254189833289040735738676832498500499632095979115153820188800784726157359034431811000035106394303625654775444672577346692197654835493528017264045721689019962397428760638243021082490515596682745312215661146444874267103605169408637458919146927492969061591826464864041483294843446931885442342353448831652986845992465481974310672736860810038432278815681156217698222085707996303020883164033847598043016381961943933265860167320817696655060518066352986871995908505854973416981296485685674496213694174008770781532912102912715220469340742903935984027353478146038707582709714426791433050755638919940230787020811593218710558882225747789808690075954903428114537810785792622534755319294478888762320923587402021246662518182890478532692312426721692467526432136303982252929133078096288887492036344618274407265179549653978010695906628692460257060052231211637359793001110517120459628490584200554386871656062355415862968628579111069213735346278671333226203688854709366121882147183714862554613939772351565971151935270247749387495663875674873006314998712989760478782444712925287384381555871232616490049246277760604955164109968773786177384950139136124225369616813724892714192112666523550415068360532888550928830625704373922967034953297987842114151321308275462067004462940895041360353702917004774094126236968317068982518603573716131210938951724331923545412335448610782021209285690649029688297414352414019406128321855165278096593058090054395480207341699969974960519991798723784026418818028055961330689521688741949650911854160852107284746486594791376173311459611389171842065146658593494157049497550610406789708796685942820991159426556880202683902151384307370913326078398775873712186852667273442864889921198758261045533264962626410413186037321731961801304527763691918462958322767619642888562498920911717392315758426344967746223830817934978936404942152111660506561982245420536396350913769236778906943247614308019297831839840371641298138718262496720536869822534204492614279242825126033733194135978723404192197070988836787479543482478993380005427279013286167107109777312827325250741082351902127233987338577990804143582073730145924088991314418755112373607284588025220732275618645876444945830985811053700377912902358537343566643689559090866977498570867960367319478664275677705826689925405314803160562469400512403285836673413160535791034449188832147211388093086674405333090280946347584230692548339261824313392524671003321302221389107808715055429590097708801169751225232620229288191215741263955123723374786032950296653081040400233055539406588003581717429075025826133484934246516216170342826464694271827587924708098617641233991565057148682931631507460784022227799732650062206691928700669153554400352726192545270972154764722036697518411657119580488101273867818557012077068692429984510086507520127994872989602459399573749491785840197601864143675824480512896712437470100613667159354497711586127863692404335653458446402217310086965832670691754781687159274472991480554867932241955146480103758745530196826437342060040035077432893221829904095681127129773869767010200365542302244452624747766027994920384122871380223879806624943595625426587469312211119478514767745558990546458456974331430846430909035253943869787696067970653802778626410946437915026033265512173785190624945443172778061558457216758369645702288952042463319245874865133711346053515539696455653870413850463694751780447600606058001995723598734560652040299666956052022914532046785432672151496941000648218937063571395885741933246533367306643489139054642482944162087293416196520680144764231259438505604811043560693893310112831772082985339103064710077072696726320797062799034741987694627310175832351623919594564530537607294059375812209830043700763356884765296856452397574254584334584755321466287105609773758975577230800846683341305283317875903007507000419153899459495472525704341304881472827776523815296620483395187064814972573969479286594771033723107653618128317829546265567919575988002263862845326583525225341301488793538903496919777595827635242027514439117299867209258217253038579432110017215682567937218119057093440554462494763367761094152008205068570550523582241387951546791684425920975930509291666563543202990604184811082935213328996502172930079865162037726863547672383952567707483535387885283508114261307232736652340099282842459213719815595451460703283396743729656434724168685535394878956041110827194424167317003051759016078399347863678233672519068391457705052511760173934921576000117172410415893392447491086703332268874136576344124977061509906406869582136141774203249498464415010448397051227617863851163139592228075262464495166507861567852132917772663400018630954695390511618979305952014602652717961083901373516501463292410232093313035845498841814756028566957429373785441340980468479251479285467146415502604200949138172768315778000685536820791091002167404127553980671903719671112950044047059956774459373127455355350802556928482411036370434265082596692788756083044210980473987133892363155350478456251511810141752623713758743452613703305420797593065628850815794806159484770714435536184424483068910735267372333219758938014124513448360007902235341316257398899954592122015094371693756417900602025357609336715170878706603550949836842474004215142364861673824677155196624856943956636986748921428149427399411378578504546042047494826311084793176295369218933666648643391565831152670963332030213542859960214125312421330275146359267845007746930411651942079043806531613447252323313524177630219013823893400958278471348164473260919461308091880087669117993725781224116373853477604993704145259684742493241774321949678529219064762228010565652115695848529454896814585301881094919210783736641345427160412339190432088562786170534187485482893309634647235932324529982264115216329764358626051761955936716781977776522414720360967090809050099519299566578245682814606797471350214486312666921454919682696756567075656858695799931865908754863771683354131388156668526100928033685249046706671417172197816539091828970127620122429463606402659618087387597380356309299631691985889201132705129538250147460635933308396747528331710921104794018261961135879528218021061197501859296084571897647161851361725262296397673498189365898459362387249221238266954083256756729203246277115351913877946112981290983833118993003965630701601464084905120482332674683942049101479434742230412321243467859564679798813163481280512169547089193129355566661087650543197639152409407117492808975279111669240674859514847722854170510385022836493889782769708886403938969681193432974873714611281686511825848903957315488004725921780020801940384613626256795365720547114892065023785768587933757474799337737955010898103168787433599616065164623263992358221234022703155634546930443771774783451786597586712479163817273548044917399015559600514768282024657539440735160357786928707154839704543650841104533404273187555312690748407785681263467415942697536199256578012036652699157622564745505784599759858917774665351798331285114609973293214767008891402608883344285304061665140506824822512641095642367280550453306383300225578753515052428660054153765000464303903661883482144300873155940714576981782832891924622934564459214481661219459612975541876659170764416268500796842605474575776793035072786246961758936484437048423828903253235288606016317030776273588552125186461290165089367444834392551646427513184282849673919635548021971634718973236582338635705477562214791651077618416941429162229617614547869845677629761146029199329607740345591684844184112916564331861397062543503983081230435257506379014497014776881824010171253096938713286797756016742024369297800242673010992459132112993291223690104648333431159646252116588382334547354894935819370143407310789151310986846126830794538975730086554184941829363470152123251368514133656685180833598279458056690486288331693423239608138488747469363045175173243179802332637745176013530183275195260365189427208669149715336847050845863980701266525757278034608844709739582872055219047957386204537279754479291891708367831544327983479426480826317292670124088545993539979039569576392795444914641290780601798432466581725854223030042480035053809635642639672737384101635904384668287497714343681956776227038646386409303589755305269618876615171294193573334485626393153246945346505828945020125576088795715896490096223338033672905921933207098334042305156899870758012484109418037270136865297380569942445568160824389144470107822019977809361576307698283681789883079274414463933502365059709939423910678837061051042324109163843939169230485784912744302049852963118301782752382857567065359605686696273376433523370454980092949250357224189626631563318001563370398407772093496916318363672898282063480375134280744127151769308541103045166984265804473291830613101850962525365981168599708678017124960606962037672638589394451828449944692477808444468024923614797501130508522901744329834065455733821400638618941744040594922228476643367715685176816832577732259413530500015918378917789778484430942812173231321043055874073044870272688429950630556329765911418602830125017435396290922929793785014550191594443651978038990218367587816072439316279528902336647893640461288141508312836068584312014478109487981451148441893861330600385984618835040698142102102480524772136266996727351884907765440097032873384653182229247345588739813938190030881460948132746671327924616945550022057394090122192113280682025556648586017826334729280520091451181352098685724172353475737906381193743435278385722559251570982264128829876436371770233927686016376447344478498077544629033562563334433418888658112284339468324990994891862747908181622851350535046567166332434208604130698129969233323818064322606129571929740869611966448358537048955372496989351212023718101750161762773453988008126970723038217199552135797779142242918882971311716165633584859412991320660364181453633719941098203856908949927887674220292694890251328825027312628920126389238633423130835221414011580492198887839369319247818680751539442566718489760991476134569476741406018335346120833450494605261052022839848899758902753540106849542586690366792441991542522059657197871012824533715007753790554458412288224708346494410616263448907025348853052892684968878866582229760481365509723594825296483718512603700298991093928272599658513287957218915521071018353643188913419936218100167377338064325499391367967627153729948815004608384554864450602591598954339377180185868927779841247487306920196705860939635863600176169544670024048219255428201627302609948563006274046379265990458326561318103593966614498070808542418642988759213425235110525537879190990078575021163398207766119560700681855563062428396322614638479051370349954058127171187618286361444919350834411247212491270585661285995951848654951383067901527637201414327383279544482380319684994780309617544009064306505670208719327374023191763377735884708194831419990124740324788363541401414452529578143571291835719823755524354973571341722080347443783488095307491884568383535894289555988877824648666645352899927232669461387434807429794082239603987668833883126824219536737572409033814504931916782685162400727620035808595248107420170677498126979643141679811689175042813542215462666075553440070679590155366795767209758677769345198907870656345651439445146341446825388296062702695239870885337193953569791410618180895802292094367272617069607387912559683129477951853190593057805432850596337206055264984634371608459106711777793940337649915195452856326092794663209471780111307237005816715487670086412906112959790193825345470423918519911109845828915349665330121149930561658056985348865542303163510410999993990353292411888837140714853300091061027806441483439697870790186741545688584441987748689355245831426765586937382579191142089586921564052829346520730583837484049821349414390864691699197289079798127816115621625305971422180414603492800740657432076188263783328644165006317483833656029270197829972898645945496008353334536220123220019562365618663056196760394492390862748435724830019080730163607768708843617729437248629024347318986292258907663004621894657991410827630619090634055064221744770759632841065214956826513739141197978878587162951803797194070380228409466630733368225953430418017332157170126222012378852781773398879736049121597936211022702913445517570516079921533031209944321977488957518750145024348367982950977462378817508780112230467624107452260610650074637650984583770614784807535471807632103662651410650168150361994927203170379244657953937376236553928579678151687915946501365776192295281847394476391981551509884881859017417232919335286074635928835254140486615169903579063878908743161548039728846646084203109100324319723914886667845241133150671680065092598498466835319190001292956916638523671266728922506213329125209327767242044255802226203395206011520652761524271789463750392488704791669927797858003124656458791540844331817287336938459193381520652938918187836636919640902788405257963368878534803785118993054034334260675984363303931743769179584434456412350910268769172378691240599071475545215288007449096442273965134972139816622741669789249081551784723887660497290845603777299774320993548800272721673648881170345760890949472303188491458446141893865848761800836224322578006087096274709718720167078208222935144905725675804134464069421735583130656774085259081673914592637945415567634413995597831375256684541002163110925025546440744339106556776527766342537470312232285295231995478758093922714597934428841169984351586028293416701517309126658900138308808977514554406085009280342913942521117716570886260246523313892834799360406049224123002736869367218658069845172511793909766086021707334613309234539119808805833810105519048230219742576631653226584098853018261017022156158230496984469669207991228272146927067690041387093327983018230205660478606449247010879857283240226699738542600719549199501709668799976895246988441098687638689085862822072496382604124189741503255886802852711939092672589609894180086161063490609171493278763925963837883603216159758913010445378021400512576086277487548155091001411106615683331315829359247400745163855942042455427898982107021786713913048172817929057169951092428462618672189945241842335220818753171303409368605812859148015528893760673189901382480464913085252616803842481005558531531364824964456499718417344233365514502204412324619850709302743945409513376600339729685862208826556562807299846433597269017844671619340780888123009402956258136414813242853624363473472721859491726161913079661548880774023081799396758874078871408611515668512669785426561085149384623860272563458525406544884866028597577994141719847486913635724122121075206894517574555088601445640359382526826164160976893766321145529318037105311816669021623324569807935745444793368945397653529725131479376155494455597416142234371765956102544789546362908744768001622501526472330503127155117337676171866214990242141207399443592564544816078574795178446906487058104317735942492274417267985793916562502705915374655026869227421304426459130578752194245277083178352833301492694779848340210486194564305319957637565139712110238284244842775266908313054234925088881242704861647703398701663055967980284727008067272445632856442921167826642075538718599987125793028456121242466358714851771241128170359991323056413390543945895400029682168120870358968629755739586162819466651828289731334236890858708116311840179984391232360862457385075360704992427486939381946373175335247185512775788621100767563752950121972990184760066189650623255960983738293299935169557797241492851256778544273460774004480324864646581458444023884332352508784398952942515732754130098851218791726350000746459054451605598952152980726149739530170891912465198788669295007540512984263793363188314038860996794881366898479592527040213365898892545070725267507535091364240929047043373819332168747623123568821727940282297435217138177548576972582214577642207987269454310110642961833414965815812518379035786163040370508406890161373588185797876174529783661302070689015941922145401620293075790111612980704898999912518763646109219704372740049242868449042591900197199923511614932657958528705200327475771661967791350363902020767121578018196742595234120733449035901259543842755941969559959059495991508357691545990001250648954065580011907195133448389411929091786479272549172154214458002989322898597882059115982477083123594650825166301215947529883692684330695275576494093753653071029652845531475068208099343621512052276928673057584126975047384403386749694730932081967318960586306142359323168771518980093787218352883696308659618894504834583489755381461537371128650829270195723840200848825544114180666579595754083999628390545305336691592055347354485118980442059394542236776959394366466080806222954651516667866384738471789100974811246768418947992493499317090118251720649350817494078224906939137178691471382337287094246296290258944221623535160591107798231350900418175773697638797596901523233499809401190494048393975772204739129587390560558178981009239169782238622356619438050260359934899024840000498644433102106973432135632777333745768654981829652825362180557779566567039732101421281469601663190999639129768914951503862521776627178801553551171739709654173055119665157760049450793025489160674627333854802368420210391456247225704314327871848285634160310416920157988619167186492572209251596038176706252009184388920158890755493470578505791828593508346644913136384260377807842287468388442836786565605235424751729043065201772957180284665721149018373835744867034403955448274928900123602343674141932297954107267438204795520907415269738233780423320217782556960082223538561887455321923847344940876893394540387058545496447998646377298173612693052870683824816397170889599224117834049856817586817608235500389938159102283863422798864021644269653984450207343141676202247218530376250804930224159499331590406462649803940104515511356608480372100999096056155944102289101835182722700935222848306394384208427592368066918816338712555897971018649004463235763904556006352501769475009835141002222230579399477072238791970578512258772695946303049975899408444797421045712517291070831371454913021759634014063420260563556176925651598390935539580553645350405678130517968653194882798488998676362887233130916256413804511180168413662952890942215284910643123448591956343900597738747003520765131922079120026063428391603377977621476115770745335487121365279130334481616796600048280253994604530467315880925296701579773518370597880802556491951084745261960473714746631091640390512265086134987477589592760968908802054502674385915840674752309957049765547717620371588171293611251601141556156171484778191704678293800211251949264611516297688091922752113284978692159298776670524727756619789245090115186127536651403643522191317251464785794321142419425421164280890695086654267785327951409119560079684070491812860425311764628372381596737987512535786340347562529012329994820318182067214369526655228166240122821146472014391245018578754516210933331591139997779210487871880423642953088802531936868763595162305196061980591231045282077385482155022783818665253741678459393319607582999540442832902182931974556379764343129592670300508553734694525412125594311987344932242357824485246641019736039413111977690898886364567685353415338301652529661497648406586068298198979890534019584559453287370699925227487904078236832967050227235557059693494188163003201200577580079863311052463290409241951353629913346981430519460858676143180314819909218961340145768983351660910968698882555553537020006915705157779413480334629377505346367804626009491858882972665032800176499185989238929314138567097596771248197869056628757934415549255089236539851949953497903337045716419506792516180358473863816950158893883401288185056988793439709810801239539496862448620469360432479343793545451762745559943211454784205839586305460975604809160237697460326967710177694610776590233109992940307011699409719163173598705403101599218569596825302205714616383543196174978401993035496877103385834801758087001926256071935998573396202727423766735056340789275586200108704274573858829301092931169919061335943259494463007781226727836073622832504256450491552286896114589780112992957552423927654674274314187764327959432681380387220966365176751093403774265842652034075032461046844482976270210211205306230386454057779623003120338113875175156198819223117798821896605032121727561533332647586460818660987587677289135919651476905821306377451032425337020786503442029094659680090303790882893844135269342317990826781222573216322154315193547896391233513194457533701168942988091358770055240504652020847001279330011012673361828427560979350138855272829142766159602378861109320579085057445122213759284383893386287218976352832286581319248934665026727322876289203902142019504887493256539804930309919777094496653557949475254668981049230970312378996870056753258663071621971256264410428390307224258219282687652502852454347369483756229717004104716231725195420585127930276005519555657758643040595021528753089269380462284155717104485548140444810622156518819086052397897908087774029112909345469838135550713043076451234925354602700102327796861981099095211529971599881698604782558261734653488631125709180040671338617085514121068157818168642956595311565376977830139300546336781138282913232221950125106077258686620761365947839507015951054468081697466000487187221348100243151697864706300836801154556222641199610204520856825077957607424426053122771519614970622494640011351471885272568089872040955968767354134065800502005404988648711733548388318445053879528008217453926724042254083404076240139798626141655883077298268317742647116833853480141962323225758147666711049685526313894767884048611827799867347079804695702178266684810384818637403416198555058673542313479408897259264477698789376733374025329572388488312407644733251806373635984880751868518867609387767057000184691016648436855656128743631336818012052287663931070920154681893369957743218121312940249825591292261726925496951645925790479012594805454555455289467299065825302967118906444483944376892615669140167876321765126771406526617957381006023816989835342451801868429870751314717014384034490296411571124066416322162925174463110505052756878181600633425682298359574437515425017818857804306121233469232182499067846281911070523082232441100788292032809135762385638251199359942428514879697344661714214196812984542456796460143723964617346978670369162910661430764129504622391166508039577561642332623068953328174998299167424462341931082304975587668484490417419263258155803210033468100130314540733286731420659941696651132095971948227266525334062038434407006450950848939421499008271370897012743206183133844948498404259821353176070612924710005274503146235915215241486726760463367875482634770087578009156698049829526952540494648551707877291120559062916817892531672857768187509922487334158314613598104974591890891037714053890142196694215314692456394290497282051913710188614944848479563316467059559181044991457910443079501370965207713322384631234259096937440029738027657177209128712922332577720984409080280393782939948445239696204000710481663440631532141182047848460554145065617948437856998043144984815269217809713351022785530841111447734635616837936100637831779896661502626171647881867994356924121545512429396193604791880332626705435910348670084364245765751062151402052275116420628220603485399164542530700026316835661110564385397485875592899690260518350876219277613655907056945485004703959223236847427399647663621689549741329600372069335650071755793030471392088082146820219031101912686722278159516228152110446700458013894398967534172787857542371008062875277529026819295393462286468490916575182810669798261961927290434618332245973148518841719045802731796889833779652341957323314805753295247823784856258261667565970780088350739308212571873702126560692311679493334021881634588026991998044855774207168313866677636898079122810233749775645113342382214627445423887279821460588843227074422534876926711085105035413675461235494240782081793997775649059625247741485168329414251982896887387030672633622414536056059074180263596159857755710061055439616272425812867813607351458826297295924795935903464283081719690802284429688386759245962406295896302555385358309776577504420269805295660278016420559508727318670029378383358780126654915674645304249272687423570651161968239055359204108734416454992779142882133913695713763624163955755739193283492825119832089987579528299707739067081964012208049657780413957923187439717649663392602464932329097666955060676903220264938668587084126874983697444299499354299283521903316511506367566713804132389273653159502235944052461322745581575643809259446009419641236926442139123728712778444897439846936482581923358896097321835296949519316928334160758543660491193113674530599284194247766999806023003391054603185150424955939935059008946142718319008958142625638809633561136455544639335809359381666225880957195908355173720564935371459787550201975155692011133556388001043115114840724447261424943294611936568696284196415269069446669347942802592049280747429404418076811890608329846979196227747545320698150962424938753284757747306655068248209403540839649544521260733100690428083182840833777920949292878756557772126392952186729684294322964827870392823046093597273597074626103612770152443894865765621479511409892287056092105278215141237820598357977485047526238115017675738055547580463906980397171175961890231808815294792544464479864588694984007566179044521360031391268913404613725925031789211658594683835940743324186083027415839384494551609779475770435436489245158315601446618591379328716924011723105614840680741228119729040177294000112042829855909527816626936823656942458232560399097465311950389760136570475717889868706218219614100135188433438848920308472055402008947008746332208487580031461582664077509819220849639000838388231644236288072700660885748738244096695727641866548310389351091132839958574558920595063682399538668153905357589943807259586359717296802655565792599204130129489966018921501191977166567381268383608149873178480013251066144817025140806529286723468422037899536739028251291788246760229409090529092091266793100026472715053856720455684797874711743715875610578620424067183968658475631332726680563405442938093179505434499004501239161883677719670854463694199309733688426199112071888034935420617832423009662849414364067347085789401955403588544720980781765277028881714755135957308571040605165394468067635626538835956256598183983503522076961037765832274187780687196316599731619354538455228786734658030024876395740674875570156658076483272473072194947429240979666278712839063287981522282044761840217266046113385369412503476716200443143695929631828858486471588036072422680045290502886068174489774592836394976832987771848195545951549154708054135254974149287392634218320604103555212591872515457947420653770124203912150827964088404021208739718683525624482600634443015774059147202446929175647859122150601057415545097677979795080241936036783992724111075128707242964992074082289455297591239830329716353549123496512310731206763708540496088735968246298717175689740442351436827806619404060511780184981774801476233957876978910920204237161468351204137497222201075382746595200686366576560865425378558960635124009304032244094280013360124419743026859639185588004841591092358051313610814071829658581550958116244121842363627666323671273494586625424756478660746922305819172236181672831296581013957042692350608785149702830100804309460976031947414137931052047482345871796469938176353705731061029376540576404255052966502773589895878375285452648680147306367815687327489484519202459684153974021858931214182414630239438155555933880989261090955481020319776224295717068513184104679943499393968251406790897379779736779031200520831241749016019956687041597980967686381132007886559748793345924430906543904680844508949393981597370680282024154147325746006088942835576256289590031941278643886247729909017650529603139194112963054545994949778403886027769042590426987763730761157647079084964073897789845385958628200332480578553224904420588163149496685603189801463780718951731757156285048015524269099871432536497745894874186366961210417677439077177944758517350837010228244442646248778465093692512555147462225193596956491821952074269376746102285076127323962086406935950130928753667505365365493596449419770141543268438169996018363120735313910477407879888888670813901243584874314832029665563501531828634125154346361006300680049202114815580556368402985260909923252596319346629816016120809402882602168024694741627227008276228767777638259298268892790994742434738094193130397894459325098926680985336179228308909282855268647620846274964968172649327517708748707594956054008438273542656598730313438816074128179462805857451044151939191311255676388958981015673334169566824020338316844603063370966456700087585089936257425694845588992161644583325399760718525582525632478997276597460955598382486181354277818797333881271073921344999874982244625453512407757549149199061872184870645195266214405116862625173383642662552506237907091100718185240914356918526718516880361541276991757725982223646009474772901475924974060565214323005754048564556794497134232037326373019410423971631529269389879112985487830389133752427464377522200149716197066718469192717974566560988910642686338997365365872764499092422145638995334075533963653097273883253935695344689257326067471613368299667785669677053163155577638248156065523432701833596159914186433545534376103997937103437816805528964317186479796276443780562356408490560134909274630523332292822689300935623027028646943328543336116123021703983034887539739314977802352457999454615965148581375204973014422502753350658743522078162314651563110338616608702099278053350907191120543176646769901161562568519898917570112599105507848608424766733795813523993604030446699679091240434604336972677736032563370884901273050424766833322395086656067090126086570409532683424227818949973863308137889318085146790252830287812293121832092751753741525740933116591520909655633910497427881646532168130607153885087773333347727531496339843477034259436918626072538713391436225035088517599682532191190057511748328454694862680728703839687608889416538364662775756490612939269493352721243355679537895735299311882557400041633150420702130876351880826006182493526661528502652871599088754562239783477899176100383975484004699442661990427281192906887480068012309039310122995922128676725499171116973104006941912486832774781185307220976709413436425839648425619541781386709740532964792652242556073003171383328462844426816791089992355630025352998683598159618161796945299401299471369564035967337287953660744509146527293737680899495559798952126194444911149970255560710520222992557189895170147301658261685501835938109384005419788487441673076723193779775594863178731963659587297754226175798363627898304958604217541293780287070560169827926646828490666509851149031830794618288378234171353824810535438917171167909563922309182239201987915908304712863316946481086276941940051136936106977046617963851231141976591895117155079579561344768111790209695933347833477230693175263173315887065818726303493345876061043113360750413600946025832476986543137814189422225491663123764285286548221784543099781534059601212686844926642597823312127278204580489121791477980843001270957068379113672111728598337622011907961323775512377897752327434117002897554420081721774629035407255679063636300979098497138041061852344258451960543055967203144317276626540170908893067078713473097551210209947764846762416654258028379039919999879730734083208109233998842764093397883536683822583453234758889547850227087362479868990251028759072869983384589081278993832185410749238955470357080935575319958302318207754878728116945073078911350016452890235712462880970545999513513999295224384341202889663148306348329820617448720041628403174577030357494463128610146184246634714074159795075608290973173242204628083975728087828649363593012110046540785978444897382656526212329511324282124622617758130865780339251928665118574175116689112881324292494635631596788621483898958269480645458166222410403551411158052551708191767276826021809676214740151561319068873835415819632996722275600027384200437016615275297429195537406789424047598375119898712384351629067908923702565595565149562467213288094763737677203139134052412238509384352949790509586785474781978489158631226200597786423950105484247633872128023450759513955658486238015751521486124870603411892906228090013252207648322353202281249188785208875716514801706222062432699362212044776234760318143356669238626086878151369914259807152884561193103693357016650815303696058839416031874705890038203983964250548895959888875104005362053563349375795455133010714914861754043061456294819040753469078574072964186871016134342496209119023756145582016978939829190794432638971886457943750605625151196237190123658291768461402959782716247597249366408385395354536413636627039615969290113971138227979008978954550155558168664623181737942547658283635360400319419878122705515006320895926292807647569823634436336008040664793530165787902551441150993536663929433153226050706423986895381593483476321485318896339480831278046459335295674660829546050113131079266983917438313013127807372973191921275269724290938470733981965864941105220853060507348464906902878580639877752735660903510420406529879795696350552475399691071421140258610574925462652388238529865588276550088026789127937586337245815251723053066272016358594486023327643207219484373643452520998993057661600614227220229743939512140859383347014575485473684858699248862585509410465121410408466140384409769676977190106264490736976283823374604892475848052852254336613793282815751504604608747226082136796371534007650523693924536733339182643732775027695238631921613094320731715144094219866328466480735735797867830083130624974690418109407269803683352247851004003092127648328996386577128958949672271973942555379304025864345581307639359206059456386940969478709606576775291959116091836110399456217917566441850730669500235452401883522188556170611518948735202432868050885659324642401313674482858915677883558099919216090654689058927861488513498437449339752538007239885235594602641807642903315839335608629109200454621594867267869580291717156974685907688615615681838478217077259978514447252011900020994009141975726705278025285887132586766563542511750019303281012193667899311045466284125290101902556263251893335238181128774979018602426906897682442172877443894228706099366865805838844178967125219700471263845033441792307013546148220454734503383236002454012126498075502039574562764463962302758634791757268984895067345842746157866381631990250413979399437260314174175939411461893904844929685593555351554514892602263942265849985184267991731775502091540166350371257003383608672655994019464241998968902553850340075643849837004060102956659533473459332550909325704523395367627655663567592570569628088230998899101235820027587420835744843996844386168146466979658069197738757235825906670522150147488395624928812811093684283347181066600002706435268856202991246628899331677371784783504332375921289355419229787815520925521091047148441789945740093954321315735677303755493445974982898063540493170289194588316272599271822733602265598100651056487821522310053979660279116788748683327971828540904719279967716252555965867799946301365460455292995644335910677145994679470385980783825154628262855845658313569773133204982168870088390199835201665246622257342552317351957700754181207826823464422657170807439274423275270780157427126603130507321817006303645677138762850452471735318823267588024858663076187516365069325637946210610056678429459890167545996369128739653782291321636202388671575884729663277894043065143866695715195774119161992596083188807158146483065986896919234578843909685405791270113213775677185901304818279255837948028362950720726498360789078569372450354776876437979840383197268802698288921339215045088402162953740115840719785256255488890018908503176241657491410904490660217291235882401912301533760466354176092620354026153208517224327268644587376677058757293108976959391398162642250445058589211195371913008681072475778508811711542734747616061152440000660241985454987459898734552343617964339542789632173830437269171576665768195832415603425161929007254207368847873862988067645283333546366861180986204255756356825912976605876239279919049514526084817506328929381849946524131493530814906728755479340225055052643721954618209999619869480509704197604828932167132256244059980028258730465132356156064896698070143986983258575312759513571843075398477531664788584065690607015167364799497911692144576150081667555111465624084730741278819121962558446825395500097381326162943339599237637166795531000441971455568606815491669947991465880082019951390365880649574029777821069528795073713692463770960806906472578468722841508058952351815957486921955004875239002992421263793586380361773762341483685000022783063205959478876578056698634039079159298032454618483703640704390047374210654099681562347695417074522020284680965855670939733332740219253156259855697492617600376040547975396434928940077568163488607711615162454359239115414344397965310567499205079790462363685582882603284158252672302645959184999422740128127046363905239678995012499049985881636626374888462066942644654291016205426055775992599191981442004116338457913400389406012256770640467778749584114452368456679649356797332891185192809218304902011057107716479134898096301039317075670084220529044631603099975158865189468557047455846745765236662641813294607634358975132271646058852198358193527187184923796600955396648734207136844438627315259099357518488469783441642855663058786221484582013175950534574639299993188495237739989491248458125500432339500886107055947458773364440482206531522082435445677024423011484680622550382300889745769792935199302140050927514116742390849643655857235309855677113719406801361246033070895006019549160014579538217872811432018925239653397151291890246820798315654466620572902084420331041241055392906158743449563745898916030419313299476347166156821206255252472915160977933628280507966718095299424528330244766296763674366590810153309621759952297458426277739734545621124814072032465466643071074122187264465358840283998324455700526218229768416508927044693389463807486400979937105762720897422786706444332660479158697630914465200082883376255597404694381728494124384420731090444701309282472074060407446726285070115758632840499102207613443192699761173212688024222937225233356806933690609021935334862048320117925038486263801280150700207199209828613627229927090764781380956107147683529332687495393906562226043323267990402390796174996458412276240046368687739707720566739270918269538912353959084714707327964316718495084394315660127380657486425205486747960016438947628755860057977385308243465211340035741073996670985524309145102463447417338203812022899646078240628060814541138781887568417508030712018251311015605298328914206313344927237174779703789776179169035073197299458889469901750145775563921454303888739553346582318559634118950720695816783913879337914429261974418431957068422014364058923394863708235397943278039407355584189997975025417374407816477946385304075138147348051753105671870016274035103694509735938211780679032976509798585462548075268794121174660201565116679941752904020049831596616531376840097762974404560909301355951067609638923045708509308094445517718408985111412458342084308073136008008402706541668458947144431693572980615454801679554474703816612120402179619254673541050542809355021126695918509120156526202200899976303861676037943644061915961548968302669066079387580292498551201138280080856167738719766810728834708426179341238311030629793513214969979914739322068985008320105961091307489656597765777756084418102187514416574131935653583197259775844829581685214582161608181586290263299456026285818514497952236761324700489254376321876662460874993536753594898858747042111675712744469555180885497286717590507641911128083368082519701445496159181412613995200229576090749274419438897274340840411096501803521615377171724952856996220957839891338679321978769085248036383056497592670078888306946181280145454210415205851056658610664608427941430691877148143772786717572675423491822844494635193026362846571837993279887469405450031275119375763049333635988205033716387859944264107433491754761968891101347665167525491774479771072083544766915603847051498186443298846433819802014075806912801806834620092618196343988838077190585894277107240514144657629057957577619553356576797927533593356338437332415124910172623542954383231373647034480485730166351346177464800413077239349134975240253074253387976383398603310992364870516157677091203431982339484064994723802961494304303883306888763433471130955984303141255411679777297050891087254336704275858898254301529219861067517044190290164014525540626888251950723660713816794895000002583258589587573057673854260227909913420456817614061879541629199088590534279848082117958687288903503067338633336188127591964817155611534778912164924307351058330342890860544372781026846491458386830395865776765821873320908347532130251990010621598587239931709099184518164086147550318854189095796298187281940257730718286685036263871064231022782344653790156238866621533640331092847135649541209749709838913080207226427919625611603202380228654986207159968855368938115679183760986855691117975114683218191560959613308365581929231907552155238287048065577088254675250782700034479968952055480913851070495337908937952243062015303262359345589839563147922267350906150463990049095187866877856256992532148104214193588243015555160367313438597653393499774735191621812373165107580731363075048094360453194775984072098889284592324597076886039170171939507606466174195217087638180915721755635577631178863266790896968791635437075088846842637923417729610083091907561877738158125064313095975736992175602364261477851720137674912085987494861865262130279189061535192717461813783415002471937711677130408509466536133637434361939048097407328592581044125999742571561867305520179547321062512792463717684602144860336402565156782876802943337656794573814294684872336396334617281799451633404478573789080169267538772682934199946025772076383013960127959136037695745577283224162922988557905038533515378442167626234855944247022964999570001978496898925838427011331178551019538690733013159667264426207140960296627547139103014861967051008843331584277978711839593523834302921947570349656932758137734242237107624051735709890565025104424700359687737866141889228770949520568808102401095994902096311675315323630057615647843106236903421958986915164872156059877769999789965581695559939963624574838825404567992398221284547268973299520470775982104596339766079128764545922500057945457968596504069016813205910503378002563607275905914943871046487976670912996112320494376749408747356718589314843079257370927688850540847687767934744282895651804538211800825737119588478611724353522039001381710847930877043581536739577002528184514119582024329320899772979899762134805544314153931162381968240226645027207684168014085061367564854705887794248343871331248923608755524591411400987868250380006927072515051535040010150742057652690966719056610227025210500049534149344864050069871041707799721975622147615600373443342720425172431895302615417998467380375275920720595536529246090532285529282534794392256562327590734853855421613838398710023147404514077049493407550652109354920359637990483311709326766888684838772351653446816168632250736832222231640695133427696571601754400585020890854754499579111848289378131896822416026372793677976019081512804679075038442677930408927884657855721377882535487812993804757329004446795208502053342292645256883194151386440013741679197714439939778687395799389038196317701731279640837279917199320693784000114540208552553905433764031570924031860223813717604172669187187457981654924188889097439075380374347559231876863769650304694057196188770906190841894991739817882927977339828508465443213905444542658420321345268226342304014136995904527614332037188049830165796617122210341897813884908297311834726002892038962033399481626713536388007633283861143635758892183610954498844190775056984768751330520267683791887601612266970891227748616064955778835412270429111920320946047480130058978481211330966176001369394284312721840851425459350345970655872765786075189004932434742673082818488064585776248919776211213459664694606887761376473536715620115136638575622829197900794317362760584311139020027543166667171977263318589047574881499351299836818198808858814049432155647755359493212755951383747467433317983068899822553131635927121111577806638907272797147147432718583286051757526923122415562683262537788132649958707908953964809066080534260318777553778852575143823016144462686500371158884604303281872187514394051122786409054568767830028786266730822205104329924170669807824530888700040901285462737838643209168611570652654959565060116406039149770222889298540455115559332254159112924417487612041804483787078724280389046338369887730838212143439980852210163237887533162398789170378415962212324430036478526295517857033686045923273727692622846352432026370372967055578440435653647514849157698208650529939598219104241772612895522728436485950030747005276317355410875430151677266238665947121166997016482131462232911139256552381342345845523355072345820857803868479571336043186686437581150977902186926563379826850787218323091042822564369661089124808031242479885955333864685955944535234244086141537241768138219990180167372804695388779640331908098808940665236836092563017997409123764445122572269286893618932168408390623257285634391647051343365345231343300943551082884343488174158004814939439946602324378498088323781936722283264481944420431237284911952638152789102826620873310362171666633718123558957062493406978355683851947986178324020735104893258509609419458610475364805351606959475833957221822379876523016377951247730717903776922349200266184181696748201044031399542205844366483429584679314416107325580740143084451454884632203129787279471394169062364508097076918517454040195779019747524279419701855800515759290272686663682481276085985510861639240428558316678974549341790972560596840870538568375665304203197536834335592771935316317234029923897764396261788292549930230815877524619929657928059580193341661209413126276752723855160577087357153982792083695938971709445362887563623003704988651194181247945416460345163106867526660663922917092066164853351172390184629832370495024830009793139059799644887087301549049791217086011424578240659841091338005349899745970043374515179524745944602086501902069356941150039006612777650278009957995720275840823533432788359361680981255708499891022107633663153697824640853285217577313853622427746514092057927733516566311658737431490926942771945889903542613166985212379961152255456975239583207954567097135150642150017736052077542618868967451924468588431222092936471572503070433282430170077965542843197156901429904948997621380295100706327339638205595327352711116618919955236829241113272582186566059212296901430656385439097813404362005604137736581723443132199577092449199292986941332428248222773718684679332328343049976051269622467161208323135393111400687392287883235691673769402250489383235629652996446896909305239074816477122226525272400830552792173354433043214721430678800215152233308179083113765264358778113516768887250895355609481372306301117971213165664255529928337648583916303085457927636963420918673997529949792566354850697017407280178903457438423579188817739617656388675670049666876809361605065705611715338849750947468120156256430403269458727082852557574237643404123835626345833239864790687936004268025220810234814053272557508884964190540911748835235939571133586943989452774453467335020280784970659677274368961093771567441264830495761694456245693020291982499305210400722604989891082410419121888674718374330768285965104519049205135701043417593460843349348034924032279811322267481766590720202789725870074495302640740355212212627405260030659819416787791499149658124813936709841651073383784373136190784646053746199487732578312908259484408238347607779054282325118795443195057840548319891883613722721930740829659169357320081641932675632856193137685483981501449853499952169894887771108753920826366503104911178409348527812102949703682143346128530926490454425163389070126914785146474701628839487886653054838692120352059483283052794868223169247419023156306542726225450329140572395170833753273481686411861463912163805914427953251119944628028808314167523915000771127957773287031049720503457440731554386731262578403275895377203780908413819679268404616499671666658350416328611282505512285207891382939527867998764663007817292894698746211626873221592523178216912357084760890641177041249115338128816344170570653868174233279591427818669211486177447553011024903361287316357552593773323443070340374790270066212910179551774744668662825824261115820472206010215385121576424620398798837961103684386113135746515877340005275024179134599642863091560145161209480706210486703203440041982672647076779759418722697194916366550404503158566400361067249192444604899207403546213581903313731078715570278951649023195640755629648867857101231918262272525200861423121110395520005884309902993172886986561407378559306698760551013290758899030939615746388855244870257184731876595343669431069210692953824190514668511453968231470013480295081142640187800720464573299765382204220620059566260359049587699767416573022789282718167312323248105280556489043491726826541163208002910765325738804927305777533878361979216742010573138814804995304332565429668564299726099354871832259328315952841487708450340034400670158327541294620946391990197969915186379876319125829247660311918926037862879432053088495181902134820962570715795980477788310615739194934383404056513291519710667910138914985642825750090691276220785260315239015924946503048096926925514015311614072006071226920923252804736100692353894630743923266195300962251798497447117241324864856920873046349003106400409601289505022839147174437074109017978858479235787172157625380628970614261067016064303777655030716135246341086790345620235794718979865870012847373521433568674401396967952652764121950771944753717819412285903908937606935638890098811541599154887903877487102463689450424633809466623480518654394777260556081370884555727635781139253992851958021603372631031628444626447440693922731431339559267965204206578607865408434399420607434603574301067302967271081819237077903978976668595884240239617672696366325769276976391713607942751726218119010445394775407905182242897819008076583945475757274131647519967875613687031153327754671845799765355377095245981341045271772656683204228928817500717746837320688774953081122255993224342421918426775900426918180461431508166551934357162767856986238675193721937275911926480650689047750733311983683057496358580738173756976447314669313474138412214920648129581452388167715456374664631256294394605530566949391458682288063203653184841194520963240230127929269494149061401343729472625850402660060369132225669289487069341988253041821041739369955072862079651582550533041801658854920172001469516630265428696742315729344973277759315116616089346561111133501603476595756749975298446951065607196725843253240841142524866416192641396683946884542461735176254812767916815401386850945765819326427312603689034822818323801056290739330134119254201482553824847696201140281093115503693524414578543740931149060826654996908770455005483663198787874041435020414694194504624883489837396737393998510988492473483682418085386939519861908822582156862274031784605047484135742696183906277856497447587930190656593523797979119672993868013272816588905992614277460956555357657337954463336348614737267889043058129642580328933716196074721710721792909514221159482488485176736732175865966031446598644572142955844522361347609860813337080947907840119181103006094342495927492952276909370770624467596703754780209310387174066151283293473319457317223839467447687259579112588829866323090620406226272776445546837108872631800508101297188026749547096124315128932922252927599120435015335899723133971473273810403001153867301135180717157361638574034477262472289204299222776009021169946968092753732939979708365035790017710665884770005931931547314764496166864634495825026007417089380806736265435720926692850449027452447163539059393179486089937904502480082878236984260837061810649488838085818063064045932794065451160332891847240680213899118903136848102004468672168715613600641741501175665174668396298187914257612473547093726829710686924214457088010836691109088901443112363594954798743639812617084624018536424619460272693261646871283474418468918156848879300161906584655283153818797837908414553611318834948228281423614170794178873661279424322027121604044025301297460395905063601408981284196948328622716647662684482212919601979746711536272962202172282461530523928751272696116367052906319744478207328930252027193914695586941065209173884155690645418283878543094057938525093083613780607722301664621884106416590745404545683649712921858721639544894087208527037842973662626460197769724455137479923022498396550549713132089589608703111954788378754069615217100616931983930438795972139213617210940776003715683475785035406258455826037662587828299766865368542316510369141484789657601366447967282425446974935227435011368651368089633103496670847108115943781871672943987142744716731294589370651824054360400993067176069396262324850632574799036047902559413904657803156700906692370795586253065224972572513837699318839459964261808494931508788746051189118724255252807605495519966062122473706636998784455231666036094311931510027414661498714526487298815505812398512233027096079775383433531444098905061499802148786512449162610582132375654317089303754050850339500815863521208699175059775731388370440093453878110544032881579594802690562945324072160894896119801888750048175198201873024363391778645649061632877791366267113551168631235134724866314629002350603414768949454686588766362237857367590525831876810019843717262992023180629987246432240739375820531672733993927066667165526307491664303079027478849921227545210861022519219718341921511965023472335984916871326809463265936039696265284813387154138765165632091897796091699837468939198336667924324243742817956832391259998540250841193510585761767391783898611806952203369502492888296916897671632018094551194640470424555969743208579154935492501246795170338204219314230437809271171119107264709864568675297616889229298014977499163424418289012690758231292963923960445629982459234150127603894410872362841355847904887316343300688878032128956204192176639104952668830080826756787287450070671664523792368325813310443489537692474353810400849832819431659262330698116170604219024450250861637507478585649787080480259434870941057915456512708674256156068997506723869704867404012840929691132479478125189221964704554354017756507612124490479829856451570415293708947017182767751119908348793445372008125709710393323929517084856926538531159228261120886285945129911291730636927999040593848912667336318881021436673356724204597167671290727473984995763271869751851422571615343942029828839262555910009077220909983645159806975084874364275766851961724525297819577394681605674446784213576410714232860137470312374728950779110968525081451967419522223929083826534957865224945757861855385580601210732042441314847329791897683911210769764752212599121584501169076323729539780547347924613210406919737922941712845220827859008212694054224385627900092634454072599350806436304848819825020828156140074200764852640259085622199440936757535402895958356677293080699468889447891321378768031562064821037255222294971463552729133557327959120570183954066537720864071554797073030180821869946016610557631102097918512304216920851658780620646386929975548929241037213648160528575343359609598507983858156658688833333490549076335681427727810501637344398631434777113258773950583341593256980235865107363104487859511813749007100198703915489858267606947135578304095731511823680292765563815352718370869492842510844467312385330308944263011001601378871802912663794656374681752712121546007340828068510764557138829765357952032026923423063494706498994240785475955932963090143816367749822350683386292700352824530348610779408275489862734162630571555623264628544291819304240510766835933623011930191200082648304084755644498440962958743936308170423405989715545451414951849148363162768395854540270424690829583113339397767106221170784366841706961454640387731694686102632598870783071266863811998149082007245005229549539085259175541687133658902867291419402759486158530523338934937590471952355176968969914375426409091827638237088820421582649831749343803196761992283649636049697004600112358171499757386561395323378312770599973697080019336279640432299504807249039211246195667911985989202388872629410546242354757026225857738267006706129649468543621481034206138175591352628909556557102481962086829178493587000311264530244470879766710526648532305334853649292531001711934743565253010266016472255206594883239695347281617488181734601385784326992225962451787755001778881664987547943902118489363612070273495490727368721472673511121489387206376251419005273091653299194134359621117162174631696139613499991859900289343651515945856360150832374749042125824137011051807401107520320735969282136784885197192600222594278975503116370406513133477572337673288189046694063247786745014704223536851593334504073937662197885507032353056711298025028786988635094024795740399101784896383042655731140362183000449658247084847596652958252554948068978689432530636895202721948531772441570178163176563237677371464391214257603887709645783955561700001437143722808226214868644459763416044413368111632653458307992114847381721939207901038528981408818677151329770221301758884672751467522935952059876623948591762349817521176260930662831553240515837326600292022289524906965219049325543803951721308560394302581168057614464816699773420968377228730001891683851575948787211473297468734021121275288707392442098020863351867512856873095000394903735142414612046360144081772709218603005320331424193088491056869815120849682346808160315690915062405948690948942402506670241724773400781050843041427437743437843502112258885103187810851490732856540651348265626268688914654546923934914025560058096582746025335010717341697954101199671606029040840691268209866593678504737999079093520074069989893270683889691346763833052949069314691640550213721786867709425298066476683242969798841653043071113822520150407080273308736929631890162628685009959512482135413674304892168930326424449192290215398587028202806335138121640646104740505933430721923148555004828384279354699276538195484880282899110586080792192124805286372327507582970429424815622288066930349655102888825380149642397787298127784195156347110965058448630005799330414044087171303215739118307793634801518032888227034000811582694182051088441819300802591525335528964950177884026488139625847354869759804328693554560373565513374688219307210716647757423025118187814856252308974911822406834517204745296850543161412353159685323290523481965198740433050509346921928835273537801874301018620451291119962079350217677796831745865702605964255238137079715829037258026074970884062018606289802781425718258911435911986983270741234239047579382616713985356841962530359428142097607144634290637871274094657326869871738779629193194883459885742251444477201174356485183705659232077818807581437892462481835783458266339836487664056411113302952715125348998238519637082277767691032320618421252120088488042006819016680416322474366607715984846753013697264203101278845032472224288941468873297892397353542002842670578636141338667095975911264358872423970923392896741521576925061948031290491737698538028310600553620950379869939937213657404662610160304704996143687625143917183470304345285132678015302472419608453142048972006360477990620165443968878466572836927418460421137602226736815899973939206389045053976371932991986347805196370630158281063305874779811614549476676614250000212278527494972035763827081898105149606924530730759843715161406080489478201327459494277169839332915944103246442777742553925345991731472488147189853082979606398538369591288411227589361953892759792699392543251624231506390018727212125640781387893246937131891069568317002279141811543645700686053487137904108615810377405891208183690306837326666058952115153680479566453945992801110354062827700094090670689203860752350573073078127476748339255292273803927464055440123190500131879585699536947780473743749121755533801090814941816232125724249225760677277209987087374303184995259057184982079478130228461453804020822834941483674766900700293653252349755707092037006328994746427731151484625547706732877233770360589815599418210183322116554243611276035047881714961736259571387330759639993869736048605201467846668787206540156107490844379738501231104881063444963141457569894162185220385279525182009000788360864280655498658344029551338928610051924095679576061794774148309185989117821689768370563720602464636392486525928099240219225276662562840060957785038387338666794834567524115823950596106798743811320989194962810201654288469997568843030442108886506342874232968106414213176872031860283502834271978556077888811559971340741806528582637503777716545649016091733805705916812401533914080717210333002637493147164906745232872153775180112889382774025382711597421245124451239500310637720971086080478240064300535236051348523385530187205280850315306638053100939046613679301195307172603141211486069085304167774562593802933932349484097297565206480534309621275154232470047555891298493113307876262576274656590926775347585223466549158703665163997024104905686129774658136970479446990401436293032550388259652791203973296288787661668820585195639488797435058378872379465064376465088592784056633589982689665645035247676844353949862096302454692634631985200719783777224571093683570385607092322663383510055435079999250006911635952317847240675165082226540060631983420870786907939198548617864191032696091073956452570629930997896254872034693731404454418546223340942180750027859053373262754505232421183761953842311097752488580905886927347617643293525299618822473040789598009601603250519186473858524760995598435381576576905492993441080416483595866171180550005673875022541323521218792866226597831077985159141895538070146145035849472765484911124403026934050138190129544386227592749670138065316933505538203728849340489410170190165101617577825249460041886278674682593513367153050281083130588132375671819664125807144621060466465026369275181179226947011856583345194358435808777526862681250339045682736686823394232366689456029297673206822350458153646981354451974766699781164518290288933691456300822480535581431185166256797562058583929601157342772893197291107353999606193319459727394061370197129078245128733949441122229628268046782823880809332181836000745923567441839230653996800106123744989613384703672626365309429672317182609254857046822115108785749331036263230363244500113587132060195456276289529299763370998527484341268013510754358989830108556946958027003872903316060122178330111711185521113410009594032847449117048711076226623116211386780730298144505117324086081947531197140598279489340539997574041559346952825170978222658980766069480679244046446413221662906830467078875868721826478673533111584153452771649169322402994878845638862501556701778234157429411206490159737044950703346848032219395009150113345717294360821371398373933437439483942513828141325191492195362768327211084000802966954835045754297445563669161487621239750828745730408168043089485896208181430156304440469735859688858349185399225495739457297574870673992606801058300916390477054139452714171120962118522384149341523805418274297297970026705297212849790716961805132083587420225894300398270100276891893394623272578291611710302643597357391102282610958701237841269573292480088371922173451800268642833153936838485167529036017298897714982117788084341835254900789803395188226502949651547461243596859145611225380753414053332444182006290659641191700996066761517699685679216280294976632761082921803964190327498037606806760127258163355682812209864623594707420195313638314577005314326174507808491344962934651817422113451955947702845630005562645152205747860211843282281173691691963636968537067658568118752958759913943488875454684467462968414029523235591148729057280638925728208543425583740767806357372234960030586927553593051107455087284707687356321752621798919983965372142810745813550848231223588135517901381965288369924719471731598453402908488154276638251288280436146747644869406992883388079346607366586984252910058563901507515062807731772987914800981853864051908279103967603329227032973899413103496498544377775318592901935167189908491924293607199193690383337996222382929580614828854121890414479172207317108137217455220460251700307711506120735698596327722460191359878712495234962404690972332392959478536110423503865369158718308746884374025408125631822507224892803801512817125677296966000119162982766423462120640111504794915748077964512591316816924330572786344176999709829627123618009472309256708393113228214864420825941614026373227369705521468584837474946877034587023154517651875286499578830143691397281131875257352097695621081328577797650872233466096749047486508703630761511822276913689052121994024701627787053844923936423850424354126928037965677419333435753947483663206826723575207126374580647854177754105606347665512659847724971130534403694158764073273342884977263272589995252662078823513028786029845421370404244357673258428878153190408349404266931428143058840079114572480678916765622509916576578720708645201549958136961410367085482554041237097766988839944764964690881962881407552221981905792724615953609969062997172548922094161319690307012241057868689832877147521357204332681292942050758673167160550241868665439691601358624916537241971019510399559851577714057678195592210729405491960269608547490339511140517926558236429185340324453671334499062598136137577463025704659082857068242339021308981633595839780484432094476671690971648488103271707598403197916296733578913174607173492952163162756593850791731864320756442366790391739837778848384245405454098658518248115770691877970591498704732358897085315712344617280148380348879196182835732694489535166441379502674909563939936653601992716639975855861246733495401947399882666981336130904460304060601980333143221510052349516361105838339083237430263404365965284740155368225329172048300752059775178040485959271879238121828721019514951784189245089443423305796609043224805391350843883021921559858687910000686286706424565583095021837012845716454291912953132975695794210212946817066113297072534543287840520456058724443222855680030894086036599280155685136954786418804382347138176361004719162882431276743291332316360099657261374775305087422037948187573376045804349385349298841461490317339908145108575183168376757462516811307592570660705865069867339163095340163509720256515279102438639425147174460256662915990188342712694385140612881189790937963290070054455878614508570353060093414059342092134206259870378255538795232677439630412961967667394705920286156964614014732309764148346816968046073061462315804812876517244599709131213655496887862879739818247995757471199883020854861960998486891810760735208659073186697038129391004169082171750334593718352340864864284166261986088231733977568025803532124028147802663237769972043044823987126955131527276727320521408625801902293637204558333704408380098874175820121100285058969277057092713522803219913960265293427495476027140799640232637611502282962410009739844750915791319235315963358458183958301361741391446936443763759174600068003179412025514831391394620239796383679023567159743573425283255827699618495149840660227090346279787891893028976230296964521955226683177841941060225315012645115534961059021881837669375551622231485284842494771237375755527667721786993219040851496354465631958925483444055590660449975055471551241045573479329978653363160871963751420228658722591224742198496028580073708013665834206913370532997617823548894747428309150099403639303808478894485864874522273366550920460179191869150078905476944471476819495824513202352814796274029441368957165608005432524668708198086581155151189933342766074047786512346953698292235127328484138779729526100083090785713239835109592404138397868627759017024464656196032258542046151046608152638582765034937627939297273420123620907262013421354863198302038816272539577997161767204749985153455002064289232416883602978456785120666998136463609606230937109540288449088282945217871650473488467955400757638302804693818710239844989799901149659931335260974031770622762109241641242996608033398123088263560541056081132658415973202191577213916239090730570971938971032528125364830401940020494534589828798791823938410605081799638884372407592021419698752363965389114030465593436480652724681250529273313509574989117057079899070361610991956855285299024351408205093410909014762076839995563481230168113617395846429112227836227669736815440157358835423670031953184318915583622615266289581826572927732013060639422799023331014233331123834130200009380922051749658187287769120226744925401789959558739932176676460622359531705818630448029559425080813926781055426737245466463852263716456255468631425940383442595034726279074918430005863305174966547518927149520412299409127399205919476707528752152635186773587834648875103094659080795007270908533582444769832009021781496124846312329442102191496723883264517815088519788010407924108585406669137080066710652473059148490584646707882666758193039735735331381194388657295953566421205810581896907349501131820013841344012672740684238060222978193512525630903101691924074184970900057419987643754770499589993533612456913340230071524127636285997822391624327259310682324479560764082442147161340700774378140803831270400431929034359495845359383880811218713140874115648335564514641656644436204355177121496212599287255106973080018818931480325258741249560334862812697250456092385893544425758940581280327389816251162952833639328443551845478191992928205892821692253266805774428635107039283552862114208557810599549224230541726811639980557728673327865229317229880124391351161366737408367093369881555261933125571317268703873200323999269276291230249902593722112140352258391096295924862162526030551607631531360435764632046746694928174402579991577837955960858819104396477554843989353878615861443395271151990925564512199748877033208033566932096775285843831170697757485999157644809040689052228847267569244478999285060073390517371586190110652807181063418618564967028635267195117879671123950771766999881039279920730106510929958029474066648164857794192566592236044445947708960944766190519953700379526798368201613943861061061906944230385728280612822229510069442235210301319872417887248741237438895221271568955994761577034200288211953860285809821936777185216590595840328200816733643072198589281069570816198150463263592874307883078240297457957187317824352833577808485069003396801245461010805752243193433684506371265110401334034284233709980348348448987221494957692085935829427124183422340715738651684809397999529698259961067137588760069252089298617925826250028122223902306737994570090694997891921984704262987137581741465633238326325636109769441014141933527903243093243844240077314689279216365006862428827655765529919218904117517174617248941989738899642255968467945214403011797949816950131937765472279527110639270176250868995019324408899469088238265529211911303686256226729032292399689665706297535440621814009016844685915858968898315496332486573396882488868154450419957930806559494979087019815340814897986625439166917812800037868735430195407949367277884416204145378374042601367605205471626687851932352382639947417127097732125344221098308452177913539701701256454595313018910364402802048167578081389139875398588245983885210900049404110764044952544345263131211821658532247377816661179446764734888215461245074383120699369155312040582227690994611218118943786175846006252385349495566368944045220140980284278572069209918177979574176251128543691961747080680051902276486993636408387586672243006969951382795616864547821136200876200099467516089512560364948156257160321194507065287526690743828196759703483391548941706944995276400757487889281334746020486364721587971268853541265537230957423971430254410373986101553862211229359622927515066331552313637349885867203654064915565501776421238151859935423752151152529496155450980628502833953300202751751091638686436106906419560282654564018881827351543834844099759705756371818281990272064290277244375321959751825261846921189008682146058589094109070091957179702886510891957556216807914136640318821388587871492443268788319542883840449985257158988431692536043714927046591040409886965126242117258736348877376204109902903858564281713951315933129354155145339030143023367742415361531372092862797566753555615095581067410764000447448592007546075187254997177739161820628320505372494825267736777092291144266627052233338334468634731391540859635033944168374248542055472201847131111625160996601333100869333549999082455301843049179531466688940579896453327116193414117110509980307639584171886939750484645184925190012714473295850523591704127782246989986716719576741484378200201197816498027527655749363874765760978609634538877555749289513878837891255881005114108741734334081599256587316982648467981008432461676287608241128652861193364842974658158277075789903985595468203201702061928853845492810247856560368393942698280244519228977138856472616851591337063470479492129487763573857461169676562677858530295203734635952469072974875540421763694208752165650024780625508567133874620551499002150281744907599279492678219864696545582724028253179738739856760974260221775185539881688414172238053783877129733983864822650506724473569438528729006036759983022646674344542275314315499860503370141565907316263441470327052958206240412685915024358768334203853146446053904489606929778011222748913007406267149142695136567743523846208025016945892807637352552627106236143731846339352608168334347679869671046658958447390849761462632354987237553532850497151917574002817600818817148407719115594416323018584486031949535508286987598054072027332122560794041542231524007072043466661576772034891022725702624604784154787011784679191260652438052455195643104121911589868560038638766557621843473282029252605243342186398102126061934399738322235868450907664493382574691056281037024658016007583583511555800125319874564802473746105024146120660657703752663857171638699792739051018477886145889667146306108246075140514128782301615979781655043885085036127310639967979160173161685548561397936972605638292035682103488642275248122141019947804793603084529220210460097808696326301377077910995003542178431988211752657724408609891794232524456771937318787017236600286723947265138854876908109332536049946484480714635460977589297258522012934196055228581011245924069867648356065425605820341223668896025655543972154729948327467376666380838668545482937608421224884335641956036413592834737883233604045184265933177692007314762263412415490698847436165932289383796188858944678522619514136019135610573326880461617524204319662937751275859756809375009985685151703758220186070848014239957689019644566976608721620382606472243427875792647832021274367283792379852013646479573837920784891025917635732853155213369634136786500770926833837541994222146996440949154630964057773305932074014048177802220330403469145709767566329716500694009396637901804808835823513466116125329720956302092816524831164779904962734383628506512065660337217914213963260354621328501735108316014079443822617196028211831817679127339343448736662305189529737019574251256784777093909382700035976406108892709909699019968521737550104136668013629288435243455599161904838598538479861547054429217809185942224095797692448873849132786673823794373046411594760530010811595641369217334970744886957755696760639523129629352440246050944246383573628845374569647406758800130421619951152414887399948289648190771559010692930574872446304810575118528475914310566220429398344235878170208493667233816244402945540026730266115090244875472862448016663835069133781859799357405001181744545858672254696221552760766353121855754924419663150129143740657033324697082659670185504633597621581681809525636024915216707253023653193078766156558970130676756098756224396031239067359473999571113739245790593584789471357927077763968290265696768855941344456186629169418065757824428056454816993287206413232278915578621700808083751441253989475495480694440732788095789921007938413477941729923144442920104823703273360707257059925073460194960790777878625709787885411330787801376983527562897648317503956159759346675100169978601198812849239952161741520471357856188504049407832489389570252728470615933292892135449083642051722202182993189805645751158687186188036167922446570401740346793228600070268988251577066844003281888358036867283310721333693989659966164438558761438140903748474338495740952045168400499871306415207098252530234012350792842410571473697120150536158243896700421602713978659076016833428838875919071154828570832161056967340862587053557059073816263702998656619338234454284261660252190243574403202520377932086497122666901399989175256003655048682766479290279583735426961488299385768853572948899736680198538788290964476015886292631927862823728579747456678616970484945401448279289994763142237278908804161109482089742035932477075304442485101426506646293821316231776062418427034898778446262590788721740396687908691070340117047016199280543943605881961383370980486749082146211732876491631692658581417025821051223294666585518030729590173838539362957235102955610168605523927484466225719573840321678765360551365680789836071155387132747224276172185298177890567558272555286168243408527743135291506688171500843629378195029298732113826887262177389616125038305692190134211808115306311565476998271673302575208601873297483152861649843052926895042515640564554680944783265291087216900878615448613348131370245808437591697390083176880013859512857769096993502165663068716437342292299263832988962633197828552469536045552001127112918956724320836830066473917013041723329673537474692544330056412690136295106759792837426931926783865927349947333382979679033962287994140087533534387203425312387330289657118778055935126819499533123659754671218980947343457515061410072792750436340465850616527599370811512109608833266459062967692865473463594341524582495432967775539259600572271544811619325200101056916993015093672767564904184097428461663604765243756917888972829926387812525390956396879661061457325282357618863260518835410103929496294424699501870708042031693329711979030262244866378714110857969255257273399920278898630977515755955980795405148318744842687423178675386673772110749750662465750809475996099963725056713112025729300929701115555142189302167799945146561090649579867092801614967784625976002512625708056908909088238708787180170959150408548178588744715937216668961151185851772140794867596191667167767640894549515234573685492732368130982307792187206816444282545425040061860835601936146722007172848334284023746201291627423217679807746018322541098874123855263204174578862774644162875826202645137248629773893112891710576916412094463956709324361615508023771896154046402043619748713685535158386092710620959220627797833972330386192975204779643386059684844675975004104472927592476983878659336203332378569048397575431503975109097568842868063252852765710351412976453772654832671785994378590651100366986562252938104261712533321864794347053664484505814708360255608410411756191026997683952734337008767820242213975732926930567557263200981717759588247997204868041701756831206859950437839901616997954581975329044455987720141138616502082621997728310507875222718961799891977411639715630075333976876341575315167509251319637628504541061882599169868939452449060373600561460015826317891684934812461948097157715289058177493870425464642142686806322948313298399695173921023170144182282899892475803482533952920771185829854241588354953053604369948970276751381445679933228088365800801561954293112902601824680460236577744092614577589605593282458365891071014160102175752342266246465834591936850637318390503275934303443693004932418318137281779761004041234690035396033356598766600902231708665361214899712929428696621366130382038997893644106818866169848207801067491035893078161898932048896193550532234723024170597041363926151514111793767041664540844096812672316870546360119966920557244207220062504702729851703484638354641555881004548971234211237751502085545479697294065384065305563647504217373961677226603411035886692688419421238869170290855741043012976286899014400897357114738443908239427972033862454492411116302126293468832512199736563589062119464304208610411944766923868425499034593920162590532474353948588742180274449226045971139522127549090481454196058348941078598199358061070596942798587502099879570947112802817987787568817730740590023371117514452633653606686676151203716270767028472673755783606155640408901871352030297293358339506504109799954714056484545055931925599467285267810666816918714858303310025747749321360843488963913139367217055986411847930787876321620155362554224535701396033655193353489563316961935678037625383528503046757901547688508497656242665670133645835555544833307619373976941752600473644240449271782147688457848268111778712115875641877693044711503339169615617875937043840933730121066379487179422562530341008446548982068453000631536133211901585810537500388769639360315662577627282394409685507561074160755384035278017846447912917252612346687182705139938819180241850966552087524501301398358702148304923292795315451432638022120696496020645452097941852389389351207517145331834271111835671481262859570728648914168548225407818146656187410373132475199103405034146542831005392205731199032689931853659284529404876335859955544274009809254044234045961150188942711896081026011240476478155476309906262506360487980899439438951279537310654674942571052127696982594242714907368647761286703918353901146286053615178027315896229884268041022502762426298978624683595801657098577537447785802955320816897117744067191096573222071184986453211967585458384076845695526820256390388904503617549288563753847233029124248524435276268838404569070272792425169803892223545100109487895487475908222624257282733958243606139717800249172851804948593645088701255183767457214770104786651976958836205001691463200540653684620980431683105796635681236269100443655549346010790547130714281006025128210295365966299650793253262239398367372876407475120851052412077202065400032516023507466400514969703877478637595765558255733300762856102945916475025053025887911092499689527454946207255778074698990177540530901838908195571852733631670847238896174977671254689200705189135510968061530771230639856210609830506820361031047066141406795062288862721675412768373575799112571971521156732836803624516661799741851104785191913994352726838916613442197552979123450518253683553850398468136682225153126671070996764705940748099892160983888753099034478783005235706306785254042903417168810452747756841956742547930850302013123939922896953019542543740648419308904398019237562353373124018683562435083944833349649702168808940530117644766865733152006736797132831667984784653035456887503191167170957231773737639701173794861903542343110072167128474732438668304349660633095374103441652775295878300052187840925405998982843309364427116824914198788686547523414451975428468371963131872477601042668233936116556215858234739707785487322947323277055698953583802816034782735014103265039737918473419899208091120666989828836104918683303855479684812096308605746513533229604733097588932041932215356254574271114679362449672365144402838768986788996350991571267888781835916815806995224947343664503110674542146829914146321329885316472382808925785134838806317926540838091074245604338043451360293657796272054314089298114028332601592268440769821431968293895621105682368674272213832152748006466255402858666015570796141792990849060948398933942197301550838872570607688764817294346530945596788520676421575583727329835379528518441772518466773972567227377421733812777987231134130082356780184699168287442359362142538884541174892956092218545001966619605663298061629996377689762822333747879096799110439053967461724620112028355918354833470217776881900424853828961948890479686279458527068106809043723697222056961835130133487622922601167485214938071393443591086936104431076258409421508222567939000203257970889149919399909251902891007499322891848269044641961465809099085060905128555961613295079060778112109645750583983646113277359173168150483608799273610113021573764647086350847156598165132909499710001586590655776371961718670878571262042868040502554639487866941862763249145548623801244334137558523686523689994329184616489099122477606713915403697706839755791768728635123999984117995204522441973861325084501020428291615641056705273094757257809958088994834254397744430203994757250784891348024265833993517611977845834427604012259743850763589736899012843926738451415554851799112975070252263727994447554157650816068775223068932442376620755039377331753338605144172921282447856215652326240409945323131026039054576687654352555700116977983067314373656650986200207055948192342569022901322631695668498757971124677099241083966754587295131670325252873226168697190058495531410830501962416774572471984244783475536060701101762213576363106072765317044323655646984349452224351707530042946563469121127001714072566638479622467538686243813420801046469867288889551014190828257721255867502776302937183180010995514374878825867974724757147056367348572251683052650348738444925567842044607573886776563297167979589904291109342709693692479954659248326479419998144237514620475862598334678346947162605770746258648285595663271836555220185916817185452435601655805044891539886212910541952469376283437930164232086893897177558606169918441913373654832389757916620409235407130477816727643423746635302471126305633487375083610427509291589373163972950932155988662306738034243285239364853395568442645626721343342883278329192756914428153745604686572786379543957443357145278792175850765890099103939705836912053796871362058146351935371041434682876619598168431125726296141567156142518827238219758996943842936481882472705987662006561274694580017299186749125748769308871847518939748760446160365397402219562221373978203405503708936680018524023599268937833738093688124938303120433539802960199822846849351050916982013796874931123786614209727471912849254885009795771009979851066568389874337836900330125607417229887074292656979694807399924026152249008806073294292041054888572516855972126917307024488118245393259591120441118312772992110795712425627082676088620433373628433391897404350194915326795451370015969989694045865967157045588799377997765494668955505275741071856040883492987267698912391610429308727807969113761966030372221453319597265040288687768635145128110644365704759408224301405966997677250901396395543510149987277693037183075134643831125467658616506153192365817455730247945930051885810711169764291513934234217687976982790951360365798085023266475575753840247414874530493823017783088003274443304759572132976637556948538912269905090168476983866609065714330109607588769743777271202101827736754924951148320119181693622863288832116382814959918702657151674616913552508088939351054923858634528372724247578764786842193813376287438641737340205947228490366349115945009463236590568984581467992407505545748893443091736271527248021276016679811212389143450062343834262267369512947348065463901362671146453621386890216537263653539322082151337861833148833247050958380031842858048913012623564869034716426811710613958471353191271653190816276717326542218343556848033511943573078570173005546285329497847945779403567505601673988053858825712263608331509486147627109129815410856561339953715172900316495086641139448232371873946445245589154098430939911702084518871314764419272799740807810394517712614269832471278875377286847263006703301270698817682679245506220033531206353684451476374105624219326574791960716678741697050669258153450847711445517639012803790667677788924648150605659322320577974870549286037128909609982253850226633134020802191367303313597905344108261906240623866066552921837851009641908900380753053003789288131660959869747465800662528987158362716783982309530826852810869253050061049073788909944197934088650100273798762567096312761299945680323578060012134578703259987005277518480259107053578987761380037756554728901012978151196254113985179984305563955341078138043624067619106571177157668152695495627603696256822434570617155780301620514111339534322418288732863372888630379097769405649809366447656998495589751884014704453487669672511829873462180133572399330672538232227555503784106672725468545402056814995568578036814369934581176982635492617000849496731442615222527582582739475316540768745177241183546042389737223788153722207085308909517395276955718449327369285557646989261238656607116377136626681509652406525758575895762037204411510832630441164588966908064621723476778522310709904443847609367594879822486440519549799394047025058808729037160387506646452958930586268664782318121578738824509254302966993832104768608693805563181348984423413965110160182510879322635144512381016273224816389382138115974359884098405687036976273360407516710309963444414173676180308042747437930085141679724012503800811145149627507361650476231667424663655872820957121833704943640904902580076595249211857837711091273662764878838577419930683467315125870878362239305502039882896225823122723052852902592068783955155479227931918013084517490960388001227421163320064130697317495207574389314207435688241257498386795915935091285306612317140865644564862572106790656202515545227494114354105382542482249469381402716857201481936268853599827779664724944665397414637346232297416680757057046577650621863559326364394045312593384410770420406478243133758773716518038034776293603171108342582300482022142627937720210767549762592280113028536662111454987981064609337394480027421202403914655379744979461894865547712128361730296406567591684085626624884060459896996428288397634680252557998799375456280285342312198719738408538816871273114960318666427039881271718886095651106732769691898690854404467604817684708718367410431726867233135222628598411907851462582646101311970020448143730268454713661927142642065920417728993291649548114672113033526143948886910557976532246083403486710789332109717869853829968705405624183694469267856588963383981225293165654497086925337166939828102990597326229477789897699775252536235763746496359429127925287291797856579078199204545922493756667354275583676803467151369918147692269662532410276307920892717495615355956936720709921898816893456348694589227462563560099289718252063332627083006824717798917823465135104465550118789050143999510791344688361010735232301678380053111406365250639921909823344248602556623919417188805677845446042627780106419118408044849415378626281305527139409703037086293191800679396114059419023632445319959962263227386394886401730240923724429828791794207465336298349804719387029525893861413505625104251919271889018768684575458697435303372088035838076901591906447092976912869305912967528496970231851332069584978447325511975191103827157528688947057380603336969314094026434375038989456330055185698265989689650406743081518999440389462588727368377476424730022305552559652565231613296010822671861678127173062430868293959164767399016229491003987133982315682425918343626936940574056969643723218088267965667370479260534977459935873897961654544212706844585026542705702023010252811615106853435986552057769352920249332455680212500723060414881055276309042792742977788290549145046663472116220522791570883506971291453212989764000435331706280403845756015507380218737001926306499721195579942325007806533610251512182381465716986973258865966276985819456174516386620774630781888313563608092482769623683121827643424361724821989561825107115858141085669812264794447733342814583045284837419244381592201969172569190393584390940801663629197716143066948284254818907427864197585738309911414245259390748237570912955150602679913415105028055420877756300185761546980770447197493461988845356838572464261160126520440939081558798458063671570346402901037606706745558936059280288648085065071942568635382186405140017110497620776854592176320435064840038395216425497264608188922107616774873365504618741735587647833821298948112710546711383966112486155209094282012697057443601489445517269266134945313215015285845070058060154591546066227400537743343133483567041459330684866317934345629012173050252111672650645828619165574952026445611895851563295634760484012453799810663320801435436418290048092367710725859360179078183084267917383045131786244140412266581734187533392220236289747916959327469285502028637764724126932603580530661527681586047567483690940996623124252896313217683055279615335463728607705982315341044608285876598341011775535567815996481257095373117521035003147998267301543530825359614574995925198862398394630160481537266241486102973580036914992258726481069155025796602255174058708268261385180729426851190014030104078892784796585827616703879749830880310095728814675304650975420504105913857227383882161852763286462900264286203006923859773347534996435455882470550501613381731673997894992562519855622209448232232978621894910612417242911247876181760984469278928169555661298411240870111220109473586389117521485505778145258658267134783431762228596268439030029273115732740797753357370563712275341870779193601279551867320798341687129965066840103237723346985621209408438611611408475974462525951976168394860698019014267387567196656893999178060283662455607983408541034273080791322379925167294575728295783317961494605544048536488979520820731215565031730966353446360158388462895175962626892833839877901942657658226946759931336722625505438736585524702610364000068025494252097527666339669100407070695278368301735901719908385414309493209414858005059551241704149172913484065436650226378387844461434546256692042022947634743616721013915599531653416343141902851368517123971424233022886126538272982138159503457401171469531310367622191808168439440740823823082391193754074598068222430115392260227945520391467356251877684228737758180122213534140371258021076628287387079060825809102034171939231645617485962567886541302544782683492221271713437994353806930554608344081570331759625087039827817637037182868428710283737863695890139709706265870422497466764935045413789034419740372517378899921130392328524609293896535343667377076665629383423328874093642454800849576507269466387097951126388416867587310853398223864689756553348239567204155348717555032873204231835472681889683017160289440821061047205030543527161952488401717846995199875300824405816307054785787875631328576641105474610993531385181326770460452075621361899667334841470654994037488130274361871945219303972770437850977161668223507281008321120244607148549510992660958127495994502808477021639869667150012025042061065747332568780623595823399073145429482755945353679143811652128875257200696475251708535195897719710925704533317344312579920697099906147511927836001039823727588372680330852584084245085262563247645824962744256859071284397564485445912336845692488912751851989903518972476097184119534864102580103711056381529793064319542403347806755815826357720163276111382272137554528350767220413081007209676955389400348143950105185193395241720300461559296999343994648472522205269019726903294908450869834582112749040109853320813968207419144674600034824169929922664058424513632911930012495310181040900171147090711314252346951048733857520455341689520660030210796156290764885599937659098584447022668401312405667572626509253786255793080216515286285771672835309351914338220809764061832265802606927554870479344774738656411931820934858569143339595405285791014214803630090061576213908591203494528723475630043166523517682395692759242426989515132383047824832081717998649328319414842272309414819782291162627843825075379236555541009608202796734322127996020773970045874526076883749171275866701066200976480638771710537151382715565360919403259593305802470553833436591665147292106954321679166539874265831107483710510765437617435630792063044449808565812973075739018738314612743028707038750263300117627016581156392629495212151388431806860111672557746744455480345801271624914352015263610633669929921895109545015000265542115947170656133165584578793870890520704499546645360459374408505635347954849127322089501134042384637218630817120262136418545689857792035516551058121127638762681832637692211434611798990224624913589278039682903344989279249138282219730423136501816497692756655543920032901133576382504486808826621129128063687806751487496615640577288259912844434580491483516137192857332467245241379076627781464261287783174804718734834564105872199700449635367785800447401982133092496715273333930431312176427240440228055911475629881253839087983867552879068522921928461682219738667068033273021390933005577082957174301682443042487642534856048203371591503091672792788129169368607508389764832110695751135972100422671335423840669054611776488839293307032112697484592557769648500756474294445865582776650161562673807952056778696959734123710903425299764778995139569106639400781722392055602400102949378895434711631154552209764621156256243108433059535820263478027408468891977569340735814807670046851939589609618072875215332390106699549485000249325995289466726455904673917311602543093678633653393019589927687250673093235800611435640787883509514631796282991495377118660542306323028845104949609628362352968118248484296622993069226461748675324117070111751724188317252075272888088952791499150198832159111078348537325541073151951566414948093442843877193164696493100824405400724347366233574531780877996984093387951763347129394864805584305910935297954795289212393701521062046705757278330455459351990359142014788498042275402540765853379071381719552614710552279746700964518256875711365671550750145219512102622077144359848123884782075725270768385846278961780378564996715099714415322789961089208011631868839657184013815742269996257146697573283634341352358358949862517043650977778374040103066093721663339642378398566734487680570535749488166637123761594858841506025493330114304523353915499347661404781421833489997500223955439482837564995481496375041028672144547371247126670037857530663376445760651554268771736086812498907511567223832373395892270639180300006452632633771879350061513760555903952213086677617663467496363670546059801896444102258902556189374522271873642422383252883485740451685035819212848532996667716899380659023571596004168602608535514195206757566766371686118274161361164521831535043920669584003010006117504441232192606004740410281090130719665442961925615782997727482542022397506123653841875578380612517104884976976785217533111293853716968362698374019732664291691146496078131541001607572206356609146601691475801753746216200911468966246473079675833090345188759721671010693338939560048462362320863009962327615885319275491631176952104317965253174794897504114297418336570093978520164544516506254370558508790290072890076473778279281656601256052608188644624177897594034318034382022291496170855946709328699229274073310858703236223639215601804406787957699910666345515981408993280259506569602670207513448248480547336369505519500045649896949752862771075027660152964191114370757915884986562175112356144021663700279177770313840575213950858425886942551985865716483941798820168038780045245210054339525754120311359461210507177348808344799033844189115690143618014329525139062070799709408890524143170567051431070281112954571116106588509612055308946583466805218786543095267311086333730017417984556338762776440397833250978266369444996991231844986349290309301858452326594593692663597350601936165737317126702689839771920968945810630034325565232443542238540724554582760338199268120009763806431010713772752093260763375501387514862133171181085458363075247574631593769989508277704947708747864893645213593946988208342034178754690716759421650939327880922250700135712906415500699666174086369043492967722150264061531600168945605021385988508670931127751611828633541266189622016333171460964960846656446432357398455753671772796885562514415779535471527534154045560579312583106662858500024423790780492677930485196346848940850556755631580854215696302868341908633286162405974413827547722975983173597435046355807172326772370238850308252930115498041677592840341372371611097146765438618068125922879188885100837861380219458847316887101931820095514090836195161360327550598451920134600532461944457406915440489192579954560347306411510792859526994987030516077353639612501362477805877680850716769166859346090430908372806773633471454329261735212631608671596971391438021238754789515739325754411324827080814748185885971539164190109408658947359019316528828637766269396569061613582108495642105505920399316906954872509110392934639503910679260989495495016797922024166985463890312467587335923688393778413139260891129845003149714607186428801805204176039551513354602554374007036235937437309708312715768173977889960029137712469247837804887628925912222342967656597404365338101690339729313937474098209939311717689539486162412438149685079385806568168401234759957197234037810186216352788022139515600354383353212219697520556038213728712122170594641644198920690340788951439979268646528841960117311364066006139828958232910675233495752509805300575434385455929809393428599765288927987028134127944628520496276133977061111864826821969706354931415863665421072074829477441167533085811766616355141472631102059083382774529390640437347233149873792420967044956049796312531843088733118841479322765753658229089858921474573865289066844987992314658488059950444759473278211165343893338259469861605585732220886301103946838471395323424876775373262674128846351359168720969488167064838835731276786128458727933042457252944189196925683227124376202631278009491738564084577388998808396302158938558932047920949243257430976403339564331947744394493588755129474930608208945671975562893788225667878010410740143977970266677883154769971931908067516065084119940420024079286383715114087729990900984492438333852393038354111761014556650695485173500549585323227966368368166945189949023218308775142972796835723180604904691163314925857650869074591762353568458784660506712981943508343352955178844644547879318414761043566482530431839433153135327953125953828358507531235480995385618117854378717667982151280188213390924398837903610602977503903199362664428970382825803460579944505341548620803366663079831122012580875872835493060622605647515782496357058344875643834223304933334499474923575009833150103072352482194602509035998210746517611224739554393959189306190309638024310392023689866624235338390595306160039431729023515607506691662106721315219751768589588311530928446128023492228910258220980142494995349479008492846203348572564454384135539128649880747047379787873800825256348864588290232356531598503104428887021377496047626807035696902646648990306963999098624510249301760172834869313671223425297709086398825531595177013559743597810802056829218382774868298687527415121904242687707524399681824349879997249079243501649670180816043449378664795203444585609119968816724912704607461487668822048040209328055504925595987379472664974389760183965393085342003940398930858899111284798120281522034311165269005970604416618904661909799436661022915301746379347347888759913990473433649276885927655531599730808348012610243781957441981729431440452639169603984231882626224196881759783177315578489586146233268970832015548514079008443539984214770989706125155226570844770642139618983976672909637564128554285469521922755622893950882744015162927973331609278874052068139118033293010583900442695897982007294132923576989139832701558676674285719403144180880122965240581902536941770022375373691304232169576628640077277542949885177066574946390890600346339200844355911898827700223681084111681403194251171092019147813126380220900394188209888732895296821435951442275501704453689298856956664445461456024107109224121304397042550136556406420380346587676006822941638456002794681570607669873131482698680851586635632162906273144570615988821973411105910357900660300617556389323688745153506868791597020517428140607490104950999180086094651342970159359838128626520039215420598964104396723747155634715566167641754455472132802326598986895412808858990717473794168097577344801989471422586092251268603924069455695462411107322799345753980426029267414209865049270546735601831107852410318208229838893769422997041074881138651637603764991996311223005756826508720634387098693054255766521539363201332187937490728896330902956418451342108303966507753367479059666747739319532003652362459206402922153049190077498687898130373772705604006323918334494352778452811998240530084633199307371760019811390960244311577727306656929611646584160607911061670559033959944135145314237063786886663799863237706358853384104890044085619746069244639452455558870399231657520163956762106808105374044688074675104451827634833953608473762451497844736936593516035935246016369931097644908422658989411812443314810761949508768467595523109059809907472248583715178988511043055696209127317614410325403717802507550836401382155726546929208756612905552063281618999383858403516777139768468981640622678295072950876981229084971803622558062616892307832553089580220526656532528052405450360168149271772393245040055213322808169753685315744957093589860786266292284274978419626667380645932457055966178053057901734568840301652966656830741258572205664286111469105526203814985771161239073070318503483536879202286254454412062795699005704518635667057127767001149268446530224645239129757374200199513263512089106930607644012711716949130974182971148961214543386120054537156947415482218441186350877460384895891711232297042319448358162145439024558915236935562729977831586330146573919173209975318057550673598259129800045633075737454517526234703946566943378152377486072139623580464927792535926221926766640040968701564135654063555489788943734867125678747249712621997332680976959526772518809838943380284006115373266757014836136762825798952817509586389832058985296785762287485096320442480609472272836694345783346624263347385232180046606665373207415995941317593942477986436405650585476214842114833831504645692722000884801324999429522929181095788462795478067314710645410852947173957741910728958176292982382640258498132095766963064310149761631716501329721904430424010413124479649471181564348252201773256133725523030255257303290338168406685046871145847122606209152552286237021883227826954716854752277859175896430671272286341817001005091530814370251384797592776751350687220870386710427521682982136756394758735846431518830740198241259324859799405411680981366577087473913057281950101503004673189048829323963436033650162043487081265536451236118439266904072726873772098482672258948199034341339445553832996050546426672308855380026546719083865738064266396144994786545204242968597873505273956442640357284083335401232905042648920169844136314577703452093902262405765028167531983949195718435745623781778240027233620470603392451572276153389593722635321909509778737936153288731084993282724546217741137534179854844242684972028074173558424367367981915737494497285466161914539805138121248016043567723231307241313357954056736031498365243461156235113319583921833891485013508537636483947544745228565061505075557209221448074052997203123936667390838835196170421848521650260753608883630183846752406769966605179707112222460328913310214201058003681126863909793843705039248679874398867822613719044579585709232911398310154915009525918050377476356722412151500112120906411171801406724750935120602641883845174245598848395456044741140975750750963930061744244712823378981371748406936924474430265517937065262393000506178168869785335021293997460176868201899002335073557718128443409585137714980811560948094301231989773600306209841047407297789815440353678240808379035196131406916406972119465840867207781834664753424576352083570095197719798150940608534611622288572523340419438290510962307305000844952930262828796948090323322548864543987825471834749586062331438278710909968468244331419434222215219532752251940301899747364996475256499865543284560686732924943582822975027690469137787966751618240730243894586135422912331874956738254893104825633236627685748385813027256754904147139124110862959740835839403501926882997041647363045926875232966703473908517743383634469210011117287126181965416093284780446509919915316492416920060215185843886619548041306757450554229657184488650976821495851981806152254833059536377603709374848992657526587128141194505459606050516529851368668198093239376547360934375842932072022507338437322109953743979340887500802157085376979348544057007125682624244527968525347497933576981979085769530249418707987816211795191852947949458946914534098217966131698754057654626333005244550424650509602856203011800540178353773546214945497988539915089630783874335501268742452347078266272636463025345665616745662881733244435548540448175373200990291013701314556615156582699556109375785850877306624659199473669143125659759787714077129246497539272355855427988615264298395505164242419371720885358111800918363247018132570087144990036065387217846987051140178997573464769675158030740838939333511460667362935206776272517604725241874495903711376975085715759920431018623828756849825074058204484841723592396654276555053711215482183035498112689061676928260286589136230948359132983986610836386225508793930010499671242518059626489272696181224779787545411244588263672584369773299869467999139542318638897261470991470030901390942966994876483633143586472052443899399286601358693892418243982385926206702465094141330046229860678137046466445194436697262049042485975421942290639078466605197803393010725435392922710227455796707823568245284854673806743936063490012909539772112721929186003294567768050402840977538377699600423055090737182751002242018490824645221212153599737270542232191362909284783453568186124778483343200757606076086378790794534192747968256396410622405167264206020175373279979722831215502347150675948396572176899622669743955789077171930898800634666636004110057462835562400122975217518917172025687899690528632367902370706331413010920207216629851489814646722692947802797511292026229198100937643316513438537644593629749562308880490329404253965125614978813676081739170463803156435353171230800988470137468272693848700915487717413616735094047574210088769789562838773152289165363452285854830832172914029508990774937019681366890367935932445689821054448202812760326778378051427958425053910119873191293524974918133584858287684638510848491361366839199329932487433437600827300017894883106214846570844564159189668181306008844195739555190381437338757018608034403372826447527165013149008920959095115029140542959614660509532512214661797082065424760513979653589808625112544930518673987036979951892207834358431903082274544344318184150173790369833695649108122696279995425843266115888380237195346078214901195396967237946247460113784503313956523200479555710284754386059471620725381401079192401000556043342214528198546517220974624190984565070254808825373993978768504195775050705237673077275016365189746662455075292000612301829150639224878649932540420908755551897053174904699702266270568307694397869939265524810517867620801118903890461151217334456718944439000134448256722428643006893866455668632036457566891334316768810086977338498186102776580505719036631176719435876850180399018301261097998824884829630671477378666951052037176026693872694722705598573951108189414976541008349273067846672296068414385279789798157769472387448736898920911200287507812165554686659423642060157873152457555487126469661178113466148228211372475551709704966245070517060444323850649039708610965503701187924449575648636835239965907274852249355257242822831468809596858140838766715036711210246272114743552022303070974487033171772821869057169462367592959698331432535425815014161720820254747297533970380777809161860531225716278351427788879457615610421080558269308090538030467026478053222939965451941848009173977211969250164468012331925361756627484284982164848302626858329401018424673706185191634126425222536570192217932788651112430557148296385349322350089529927000168462191253979892528037414270014118511524249210740869672281071981968769331915906358682565524464784564435686431184977227370860547989293920238124728921088109121386262344005048369164052796562042108767773102292537827259765500290828624689991040216127166238773672290172247971973258915156012280895756631892717702221449942318690108388307145288809524514527415805088580614374348900795896076625537228833878550980434642928190454321112688044525603369024204190116810269674690194275460489515928525852476153036218421245181363407187459318676575100410109568605805454781499356292106619893104228823829777751165268892713446518076883368762921003785877654808627270770124594959674139444102663330886548303788635326625775520076375140223455376877200783124699638405988917503229713039523190378625516485945238368958975329751566492753539738049676447819408199150612439618181544540472475913241595535767276586556285622121592591760533395653179298304687650786749049859576647469492603575633288222624229178969111815411286259514113158755407537472876471688723268438758359368871932287862994754814671425142111631550116964558900117939023785172544193865230551257162585565281869179569626546609594474445592770835028187891457453554684129950115422334671566652617453233095990087927957602514845628368642682491167954069802824721555888793947541112831722678584448309808879712013818135718029243963973771207409700336209952759841885551035655680887342169018556665236277615423684830435706903675520402205156452788926793145868764239841332547966438324898665971758232865183987768718508125080513039866313748948856342574080068570412347041079271955167600366443649641942866654220490454317543280464561494064480863626482469214272324915080402517713561638053694556646184949002439137432513887508813155284046234071934807684088056604355469046260513792516871630234663352158732073037772738207370138259987721204426504812412565069225034576720351754725571984193770257109822637270991543798579465689649262418699156946208428724062379967311991428649719353792729256332540708108671960544704255973465553739627883654875339456881206642963588600329239048962495208166343070152383360481756222031275248994439880292332312960288977903364653708599402254992712164897653602377257281784049270037707388797149980231706275384695338317919093521364050507217470616361771448879660683859891015516514701562327329937721794344286263241122760789803798465336089177945523612964706519581266794026379631895969655870362438276462002936804243115473384773986708685363404433883368415926215539708770125013070799580480886528798565107078580116011863624547717358829068745185639323988819052057149383766286784269375705182364717817060070145285008844486399319704855624358399022064179620191854780101861700067604445234586329426457048175533401042338839507369769679490880428791414498580493364858453292999906096522708569911920568821608816913630864373571732302857714343090966867203275794610401674372189158497235439565882765069543528107921018956843287062582636384190364927937173321480265441104676202042868030504158657144278469404320645829102282891469570910224765216375994928908681215721856479087511615385827386004463837135147173695301674990680999924709418081857948310408372100548654375621910550168219688920139177711563822189396012742547504509504710242145306716334309833390611592143334523453809185092107144192717282323678616335930432258255702619765581363580777240557141438290674722603478199463049128332790111590579039970522356095799538867205067169906058699831185266625908416504512657212790591810968007484755018992764886331949092790337401156678481479811669764569392118161222558959209650862623005559880989413121109898703933643100350821437269220962787653848982542800388272186864545158029547360190813219139494453239751781918788709061392479095244109552702689640643569653327538977545941460755409588399444925454428587994013891487171140722903417617953855814292114964370566192709605617845253190516546838030125285417269916103696410488285825298498599433355355395340556022520093911319556095472857963695701123470143902190297453456017665413147688341209742694243697541924453374929557764443230527580971590248174195171241624881492631846649366139722791965262688419242659680370558809885631190763303778133674258729478057524693034727404306405074935332048851647637166765402042386509175190384719781693924027449826706038055827121030968514076527295502964230088340085126606963349779492136808377511527459274380040531762754631276393796713081782402111377085738038349630211218506274289481118360296730573186892240177048973214350066532171152873619146900004132213808644240444206896043848858788058787228792201244443537035588427464691655574066126352086780337557845286767601081862506273516809516795104242331165198212931323725818759629214755678222745310017870329024804294466989640233862427477463692102693511237451004314906770365621947433158905177872874260347810469817430185058525818548204792081669980317533243469001337258619512564662421774658804959667139716051668830667426084101340202701636889602069707246384210220261494887413567060627011100280658930855969958700481991266223965354769176236362165813475021023079971062002007415749536350022691802675857627338455542520744450069041628063263806942209199254625887419905763646407226606452843809491505180627374563926489774665142265997194543961222167068742421151415632927346958981225811052662000767315972799466812409934491798022437072269830876417719037941412315816885145063519577729085603817961142902413768823366652740123555803904904315503164273657172810316005790202046730110461616496093795119527575035189176802528669783425248487896951794051107654197693061040346872019679602753225260297249125507297235690489449387753020058621708377563181675076060459173853503501199453475866895064490023102427154770882197664840876315321260868142484040449780773551761107495607774393072393870679738446176841161274104198561758356950086267252482102734931033616574853598163265136928864105871680242332375632754018038841925955109970726639777625415511555054953606933410639642250935440414928554066576247407443307962374944906024351198482849757242727167273647043740754672735041762426317389286890976347857411677121116289021777882851331078212611396973944645515935677420854310872007584127722845496730624664621167135043767388906435265897113621179662473197597734340406398484013046223827958906238660857879147135096130623934744537184026141666300279567274357231752225166342506215064972534560003823534956109185856896740770107320809122867818000789439310865174067052218194526010086610097873262081240453727572815576152903856530397447109086895576576080331771106943624977799664544382563779372027521984425495905806973049687866182593938371311417988570085976810743223384879265153743732603022322401656664428925330079915705832080853923815832987137856722625132304196213099589943513258732125058726025307488782651997937157075336910077868444101155550496937562234916387042643132047946356187033783230901320266391608056047283778246744042481725313458615232812717783716428604265417644927170912316205653623883271565807293229214051016713854910024751630072472175876351393765479463338708295571427785776740121464604624727835898375375930628678136741831131192786099535465071238609109956735057414978360936139621882069055623431111932251104645921981845236287902160307920793100562885842694378294072123136133099155216553295787864460943293074219309049047056605534263497810540410447212066837741695237923671256224942985353431210355958961568592425647485360562459293401525236210120517336276436717529225668582038902981250048023184264257178441492711469387409472408189263769693106803311016206230178596608046921267249484455121555995629002565547035195695787253469931217440332977745536285387446156398222179397652620935284965292044747657544806497960048893241975543480278427591606717104280321735144467627588862501171350164327299515852782888710158597071384704852463427709047320609274697835048599705223356056120907263267808979103046635550335932512042388281093323214920404421820499747043336440968111779162455964043532239015911572321362754317239790329837804554934833637212401890683211076789014671485647614585508381453420449753626773288858368244572960821912187746455848285452241835405491017045416035425815072905416111262389889727717607249389591884071286994264861854593601195391964888231419339428604133041426127275337415375399772195902242755168658895464794304269885075141482426843518876564586810411236596050837630771146933091374117425882888394904656813729159661908196764457459458664389739352905473568831609524502571096347319320268505429201631671682378077394889961714709569560805828919284467548712651746718455034801611468218001615176407502351109452670021847850010699309562897023545937062559494379737596080087722600298892025529401166340975220755640244285076414266351166312265033823855818340189461691096512607973705523906160578986616828342671205593984526089492987319129002220375296551849445795295109677417585795025893008956859466466852681968531613775271334238514882718567849717723171931262163686859503946371703209983759392393449006540224975141856739987007480634073382396011588010819463643095865497678585281270736847621595386355695086191020914102231180826739271193639411299313707662738735670346312984553461675255983927955389662675682115788744197062240035031168813827176532958268061007466623752037698741097883984241685723679403271713708393545033872978775996622123315586703664005002842684612666093570010813757437470863615471714021392633375074160129721059008279048185091432233039154993762953022895196183021037819498995093167146157447645466399770449079049302586261905105683712723745284183774272759300316270839033767124094348884449862433131641079097817997844584200378007650206630175045706133783103739094211399953217230293728054820326274283049453130285552215008897722997102291211187045395020565820946714743729314616653266823205195508887326233357840294784080646713511648984418062435428542815168520112735013292402418236171829038252488184425038376596109563160140402669014039374274461486855936166348012473364479639542646060492106215759745103522488672074042545627723483153763272160236884132316118756349766609881076911608020174684133298764262439440435428981168412265353226831368555366962565574780972081237192205442243077722232550308008145483100572141176322469507104185031139246077002681092870065683123466701674262675998636459831563417700295035655041645828692044006309537508097341224703651224556852715993532403943806596658195531866767550859391232364477211178895690755919197688157727843951657950766783812470237843825451058262697526002218672579699684374542678482308682155894116387212548278873378570366768674382964261384425087395926440796280890556585350995936497580838585740534420818980928207547458337775544031989284793668075124055565612817686452069786431697914386359612537564778850191216752243460731260526353679690212563172224361703793873628901083898532773002351895960818612064600082403752181777037403339092534347712562965459010805782582261990639473556588699431280389530667697653335159014816115536126275541694797873048721213547166948035900391985224583796993664037583167733683377289717059994013725542414346962487556848660024324272529974091856264606416060669297247955621499473736086870105329738458904468821790875540605249622683047112477910455209409226284481199603263176169248338788456086387728777887831352068462868718403199116162083311821619585066572791968923485285354374281949286006032899039798746988349527639902198261464433571367319444385101906011496889914809408813557632531061457217978976079857092783906206033090166745428083872140900917130608114540565429859145988379926697456250910198187412631282308432997841416431382472041064887025866732809485069848206129418580449331407113331637049909108768825316823601926762045360591007488625873625592964332536315846002176134908930701737000104426259802600098923783470362470655735813027992687862275607205313328812990403441615122528077743981870681995709026796651541548964567344671137555191951175287616860450686654173748848127739850248608076599848256147897398601624610977778419476806710181222557756757510270616377720942033389564429835557718763865134629231648344310844513302378128351915402321101748343348173407902522427367711272812236563841123749432863438713097455292307646990832704383795289244000350353867587444325341437766279468885306324669786819155568629083230466838165720184968238558047770594132280055218298373081122894338199042002930612081466225985922729466347803296726929647752927775173373574163970799553069834398440282573366543763393165261500633779683262853148217318838558856855542262880528793416817085288032403048347685489703767431726642607528546709880248961714281463339176759804826522245987210622166807430217814562136257349825088144472400019766429407024289871587703111786295569440398430877772131642719483160972097694896090857834294653317592708113902817212608748644340033315546545287453109863045581109914952592823996984008308843467190590968386212797481068597594805120025305003841006728432307295946046702710842595750774036004281172470961932246042760858229088546752714684211649720121563359356058663518986842429035767885617246488567222921753204696850561163097050251661725596113274887387604559516821642278634297445956809363207472961387648068849589065372789457852418693499579492401312459530195555279432618141055881284674373368070825334106099257712394360818160147996988933509820997558494898825201051095141315058505363438627453087316398066852428209465230239041068384837676632409338481600931133801081301238680768819114076345021060194319710493948473056596592202542608309491761277877057054448230055011160291431099110421596710060792348364634882732843859871036074439549894876535116440747083215127792388394609348289511187295885765769639926175523154730310278330431704627729700830568246945742459209509234684773110167821560934917998889796609479237689156575809498555095383287622969773719213068767033114084261173074930509351311607007671953250305617212759703250951151874919689704093164877891646210750297152270162036857308862676042946529070067977067326670298543622817110473267515846159160402330109232405466784993854385217008166273031341724011387127202706239309892754294955255436103456219947416341162385623814970055345248044946728611830008858900938952598511862484894076079722876266128564323811478502759084985333188182454436820892032338344848723142775206325674782798662005847615554907087315562858118205485071320822770720284378284984739392066910184555663773564644973993097188833757480988543097355224759927992976445602925571808160268333943905603176928683673568991608904342313223592447633180493921756625327326832951363907905594772669676289529310031274981271512317704960847362749335328271829461047505291703273643855429959615280470231639325396009378215360341974301635858968456172875765470380792084094770208533305994407930892995877330200449709008721700875130036450870788007726661590770069772730208336513107138324217670663450227702621915816130965068485399143129025540925066071676754993373457242696074188365119074071156221346546615433600948415590927666908968594211458329278729710076246224638779218605376240724261742230859414387742200183867377628795410894867180886319542982566158157030832385991664900264477176650865795143286463934488751190383225853543454304817191884205308174741350030147799541199958527779340284725360689002159307149077371205870219954925700014811611590435730888912259503378589065368758992192211393724676912612357164884599335231407786499648685233336077831530359079677619173532394418053098265025203730799228217744411679106823244489491465198046867201551740794522370362618655715542834641465753805697169350640987067948010646037638703564276242037787156365484960057755528072654002521562289359899704895096797282226301946525402204160625812981476714278682052788296237439628821811690973966799991336136853634295027674493523162292449066010995262998857728177943740710426991122279430701087448351642453150960949859312406965633017522889433597804999223215222355732385759853969514485854461536822278864996402583994884888874078372214254728257570854279881304155265041963036436657161416936406948344809493255714534437381126261922107728352037029748250693043789823167962892785138343348798209032188839377506876366728890209511515800628720875615581441703444405348701930938675105570610128182391540599469850912675476813304900674472986919247648622117465389650052548326640915895707438966288853879657716942122887854696156381307314602793212152911811024821689560285678241449481039455120217777864772907302609861889277665666826633030754391639482852075593142868292824634230504920898342727797131045187872543175051202071635485896714514324158743346507056741748289482643573465337398800665510866177429056985449384545119066864465214808859843949578828859584379460221845156220465898717897770044393601596651337739740375145587658916028548113035876599507372756430288000912372916698254505475431336815362230698327985358054947576241650192341604299615653743021492066882507509275693603593983955369479176015345011971726159829098508778006567415470135581386487422630986399680733930687055361829197228016763153659383190734573585432279311672631976327542481261390890113015482886938182799913908564917202776515708851403667848797212393427555702060546123985903386067447571111486558321039442179793189166518005704379204166818292077363421335740288292216681779520513431131726825831366769316252357503836244845270473487319765976035420058970047414395731619709245651992462859056062312078263235841411870948709843688432641016032276242706291356537448865346768753175777062102220180288225306093600040316284494072607794022980068351185461109571174473140107142769817734701849729804023318522955406656941667648196404282853888439104198306859135635768689452837476885686439680513063512455613755992951837581209052942347588498216878059143896891696794831170099758080957820961780849092302033718680766307884629480139482473291112625103631386041123549388793209359353751094658143316882601436087688571028636182078316179419089027795741709532470685751519232353322195832640720048243808671907361812270287162087504813913202936528755212160024963362619601235546609133656298701938419158570975140727495415151715102263966142433700767963907765686496435778555947757142287506006958190630407010316733617067726020105316442468418564939435357476081659780751960572715837785285305292684172208752777807325629434728019991960135586190677211390940066850451237059380379326461742304123657819195661176395917366006338154189070474976774086448556296277464492388717855450997955654015672047814643314661296589916059990122666253533708508074917815969750028993199219784358740368647428315015292008902508108845437004294348596380770628968119356502189984098456713592464111119472547712985296979096184337544989980199202895286460815554535262844771574659667463131739279531093377368705922429156124746028558585648060533258669932932591838451595755958749745037575692669548935860344764543926061894001698489001946581973113468218350250397994341231770416857590653937112165469490379299043407901242811152566521125964441390933124490228694911269112470342846279588183144940009850503839452202714956843813311384275732341702152370000082576386541362150687116337494131811318619543953678703748861993273510024540353720333381287263160652234743829815254457352414636411285922329678646665842649753031541106883033367816543186866665044052100890499088715008729753013340775981369337477645012170099591701116603228657157545260587939454401431926565582501025815425594448070316467162418895420930641330352322250913041445079233517574294538480880224722747190455924592256183930069702790172280411463620661830552641944103921589867240700721650496120760948695265715941125620538423429825242734804455471141930295235098323450833273392097615841818993720452948481229911377781816896402652683000286891583848497996663215807568301126838482435918650101029448881225544206663865179160574766446094299770997807549110629680517297934375577222362036979462804355897512551512244125495927310471666779601157131858916999896851309871086410226488673618144676416218059924659355889481881270913013731450120836813173386365715384674192790705323513193754896128607896105672037132929099762000976688734586093823298301541776280831132698800707415886380245840000230411105447693301459487353361629413251574764137819105064302782145099394363768840451985850190211061392685424967488592710289198134828923687293911944275023689618541750179319585614225521394697334195103787271623561575563115420549984831359829313414389978728483526938558614501711869362142979928976162799531700606615339986762221029583201896778032602713924795140335682682077405222619091085375921158721405964755584846961454381405697962349089891207368410596654175084408470540038281442906314118521272339718881198316750164596199832385471749422169234168008250007318870859470165969272791938822620740198941216687117512838772761994558836253507739824726122118629143394996540906940056669704598835025533491753025234686950437573961237465410456232369992461650300858631053039003710626270936339659458393097256985556125972406080104892074818443023447283726398428816146594870552256076606140666635714676383093689840057916050872623927328642939533418398940286181071048819357372808858883078563966168637581682218560322665911163488073427944439502686121155559600447239338013731702472416030758056195044094243327148872429322339449907212392179685779272637070066066808364237741497129008732605635016804960116780304929597803928044752914120828242358859634081426908352300218038073702988967990915133798826672018047879372751522898272508139201384231789776997147747683847047040358580144076384503766349245766084983230245789557325583346808208263843420310440751359608463300700408918331755221813133021639796264423673229175354111354428296952850791679371179886211459014854673192214505993692840217587510797762586814451231007528259208004588103021441374979282446535934496568116517279533972923158852549772928006455646569801427865749244771280486678002794275749173492452233716215028563956136251759196960091675719831253835980737069856190860871235269423727486109010972358484674214086166903234881405595475762439267240401976232838238947450694987961627153718430793021281012368675470119713206922311070249362476530098692827435800510312552060486469333402667884463946866920832933755020430590475991092734850449308360879453352928525168145863765263279164987616089532660499874829092952933738117263926900909088188054084766476162947048120279573233816314719044018467988548677061159170958677450054993637653966848024154602683612425634215121210434593514878689560706180160514118051264003610549167123945913491819960603315757719792598221133323372410620817346627301256799688075035385561020304274057790032500444896127686056998189681870169768624763465332766448002756156247526724335975908893608740890941973258293621809163326485323892376777514745879654110190393325148361812345760534629883998435239840898774264374404022300252025398545392309641965011876356033471969847982026504507831004275318647137060745197133516520331466062013891753600020467394988234033907897089585422928221792167575104654578847674112772094586033788348242856015262807264319639633205352631376304663318602971545858845412557000896031372645440483714986395183244838976810029395589380023809791983934782671188838686457447434810509481757524857244584768725955998001324299819992047653740203013133210283546028872157736654784444571752394210713685908860709286766666047627055963415013844922580525250335665711707624883696589147707146235596538532067889670671940279355309315659543241145300707160946693406051969537943767322970808243363076176047860833762687510270820364338264349040604503483553336108587442883826185765361676351348104617251435557478929465305443449326167711275617027356101495105249292676436773674686014087882104210636911753531616263129236019197445892944261169385740409102398456006870321925659973968302871383388523633389669706163616591221837641634991775647859829075145849114541824181616791143577709353504298502246054848805703771185432656231184574830505311927404953960335023893949503290001042976352105407443575195742673423069278103540730153356797556886475359015869178513742841944032822447586478017789476950520794882805496880657137812391026548525672091368846899581582633093001671081309490181549251449519346493476385277443665819619340804324875234237380997707509973152528604063205768448579219248763041220456213361564625157549692262648141622492673369287787397517572849974949492468323376409356556876650234620795114297630440727404747944603568040543684954397950108253294292477398634028496045304880426673999118031012360738535194599577205959061419392442275034758339506205035590845251284959412024834725178586696009508157568455171165013839467716658233846795389855011410143426302804733389250317707494016229024379104511247423394484184683979308370315444939249857275357299276615991306375843558727923753305038582703839756673699139366074722220890475766728159502594730051648813423985341598050428742579697881553369317621296449618349942694998271588600325537861864095240475284516155011790657577402943038406289852107361025090760752482762509904938697796170654181931986040559770584131670036696783229724392704065922096091980602172786241987565848316143998457162179145894489685642691691663007595149109893864148968312645813565875963270744054888387231840474781997999302214749918387105118804508782395247184251642586811601554349210901221662885394581770874187576431965386126133837007670819335426550359314009802090819798046147110098430002004144604239902434476489974005946022889359916932336931257741346141528826413635974901560138797886208489776712196356648476745165076874819373508833290849026107804856310083598883032906975437634828599543551245867273097124406558912567380139776113262564741274047493761719482234477810148082597474526390513309453440403396168114078994008069988938792771516967634133530337353504947727656818982976508802075732405088053804598290378632233607002011727525830580429044872639056647934641278188051523938140546607604851432322380343825730235277623335852141581352506667228287531732424480306749124976511529913916758240618943024606089299549739640663324215613958909424330781956941657509101796017773500650218373702437530931921289185531394415846373003074746302418301700790918278303268533453125609475920729742937357445686684232723193071088194478393635815030911938077964869409408419292827062399060992831610186244342235743058339738203789425215286826584541475072810178533346827694313403990220473229108219543932186866769041346934360436621096483816434848561364207234902511043134675644106342872449673856692283900252568291975378629588718152253388128715591498115093528556888902625166080355747514918988931696427021359095767792731048709822530398094728809181314084771008079958109755903681769049952736037732880649720123882344742159232286424211341470099545378192533758414992810554343143907936392235017640138355647567212364791383053425395814704031961612581301477925457453129928559361349729149268372997463724384768943348296664799494335639166289878142829418337447271184270655733831554086512797576319983842943915734450732691557733866643450918535914873540772204393432134334113086012719784031759569138261712981086733932520179010922331746784608765398580074194913158178514679507989299524899413152189962311272409976713684702311804845271565042640143062877316157403735663325454533848691531673379436662085066157202161432578368408503569276843590777668162130765255672918531015754747929344611668236011068362724962716301878178271834384766873961465561581621007511882966256827395115327892464185461216818985149862443951929096780724048648076160673301680052959841328668384730796091779854291507865694175355181493739054581146987575302847968586820093966037722813789007286493687699441465850695854492993099395359420290836226782075909143032792925246942734954996920842460420451514288256850099796986550112714826420497880878723376855733858941747933837848464172634675949221879299133039926735415313904900644402106016007270043350985526498034395711743660243636212992346434464052019539322256854580493973492595817311421430020060021987121387112241352970578763417226176149985782969263627576041703984560295064564135971800906122134604107062057734308176004158189890584186170123687167088020632623382552892000592499509857557014938592313026968371648573556031066413774438395992026933444195787786005681517675969192534937205130169772331776357164735285809485914400341699960581356449583934207708987858039101568529840039565959497629094905269638313072496173370320916587679586499070372354465788390146727211518551538483738395005668265890276933872213665811319213717186003381539915457786917446421734110285492632796238817003481009209891786253310648367998370776745892863780990986559371240041777526858425922723448568895938575843720321179492594043322756528169342942937684063305617710824629750240856615718783425151160804572639195116549501719038816863290184655712341284458753740939336187475552218875550844428204611350810429084398924283106162171191211742701958349813219616684329344627097695731421543011118655772278884978225019032931108403738126234308189772884195364335622408490876483883011652128180307866616315782449995299758314070229947590920351203570574181576251717724520473283845927857947479277119468362389285501008697122752915727377273574922345774057995998196016565451041213853783257600723479976877488877127165451485862334129857393031295978175260093402920135647377773865313281685096044117131728687201633797810930601649518825485768620463067073129336631170882103471047829493241029693052823539753069449798837087550200910481557571217100608992849820898971510048477582429620812853782420519111803147030849542532350573925327672443170279243611041679562422797902232758011210381137954103198320702886608739404711238149769320882026682348600709336385115833460484142781391712162874745035795654991571575204842368434293517997459082341311608290653657924532290359062179775132982922814256857817309768916629898677931502510247907563409728082614788351367549427973186502159398934830823452292747553249197720292407343723132322477106200722565560679320641374380555991936616475492368616343574975812638883406861002272382345143829594758314312930041296448736504833362475475765864852939401973649740358166948200163705033648453493537243172683973646808156302673965052497669687071579652357646033810965632702519624444497258783446903971633050049502443768034303319096299529032877739096684751201098464232459495477365178520640240751323257526957684376109434779587981898797749680137775372973786837940305524764474346538130094603156709704327960121846084030357662648485862362999054038888165349462132440132317969130672072562801523628566450550733496732877590383781088872303479533090740422650390775387071772696301225015861077282159498154669509175511090903714391725030210010199577788923784438514991166788307521493288767162348979344221929652685666580486489258105136816715491624221512401636606081020982683261119141594188519518443287574970288533302189949930461736818545644362107552327500011167461562299393330850674716475450022457714841314457631786202187489198782954128316360425109274330837361110251744783172813646484359911488288076615696980549871585073968278137784527823497796016695866492824993761718942822216517580745324808581333839575763474542551624065216788943553875821825020034794020453316363738911181240265865634538543832682444409361040809492781509699330767448898159255208924508223910591851037446604547731034726956962027805224334221226986026561172801337716724442383288324569705011548180676614031977532561078498628583907781975037460976399904928882481864388048631003906316463848882544317656976172432342935928221198386591545615861773297866175149367899180094713502526079752936563714052238877181357721207939784406728190865053558948320850526640639160998992464869777655460679476653546129980484849162926586507439550626696205059435601557616757516122276878427734786495823338755562393833942681065829349074398655257774746577334756991361788236327042788431558651164334943928309048226576452810421879077629797334015318184944619997323786057823480943527063730138002102183075644945214888800355039904541284295426646505721792140926059525352350435771126681263548192944218258174181877351823049238662397565238119317344909380602703580619192273459598333953121192434108747032609693685388346194901080456241502186770915232985582644317121782416752428056371274970536023876609782251191505812724532871766702981513206244681781017634166353931332056729634633628980813768113667451480901717399706114875295014133248955429322863679098186080100942914181477635474481791305677521972094542422498102769254011997661108085779093822370212003456454331964654065854823135066421021769385503491140588229836303968735264692780789744653858163909943681292193827810576187259184512795805986872333391431524312950818777876520149446321548173771378487544042325612564229446818892389599408659953028550948116988230478473824221946599387355699633851022197692249049746577571726026041847090220361483498969827774237207341202545874287663729523120355224729710721724042574800886495971821892388340699814245637819371451280076795770074050150173128900853850293962252031140732661087494663683650465051792558058804971563092749346245829553405946233935451417336290738691677881611996384673912845775504360399216582719735440107555541837181280027563961662824588073213967113660724734584398135235404164124471396348531052824621326442013379654314942538886958635165670179025521615994194516184392756995174569545926130788642831113643212517069506779388104337454761940397625385820047961409639379318558071724425772561774222139845026128568554230643177284952119720771362862820202025335773808889271231124257801068919224067290820659427026606680353895270066233367358266129586995850930867194029631259857281058696063950382521704997732176714694201643003123247309460404949105454955489527844588407400569350357063877694202083283977065668518012143325635665506738190544164359699846985183745103307442119314015671863842122956362643310015431280410380219158973765112944337493275059435739910452806054365263319247851305351834710345838385111847254163153379160276778065774067786879322316127193012703746699774412216639378257828341200056703027852504749721336275399161572460337258939108519594720644507394777511140884327703807430005502413132409034293077995012268489425084185183244353795364333098927975339713465552189531818400814308595776795775841395496354402704479514019190720731942848804023715975688698821476840525125005355176747624809468530444917611517613436764633822825776484046256562919194659126399930916569789958323647342641631563294399935613410932329344630380816164588061957386230192646687865070993177118950054137365537985710442191784708532070211743985842061327820287719357214229755785653684790104552215311518572393267652809312658461855984320805264552810838804287847423832752351183629531395736222306635381742584923512051207458650437546762651555196935212782583365132911417777331553140412182873473966091269910767782762026320397726312578721840981066349677327647125994225172722141304295340690545979301369803743575967557700842832042027459646441951482921861287725824310973408638829408587424609908330465331688825878058017479092546023033994854355495595042001588483087464049670434985434513135891705992527734687857556379187430954278144145702836244429744503522604046834277509071514654997592417510827913137422300104037927952446548002761003638604140810441148261137373455385356518719174007557561790567477135599811485958471114608247043172903392329079947401069148927561696201126206315968381613494312170756828717784023633111404886627325907449099289535626893657639237157813865928002777316179745317736235000919155537085905766071850798607341699720517749235744381138718271344484522961024771243716460117987711990566847045059157280880063074927478230836174269072719738255746793562746827855059285988251190276989969824930282055071923120356762663759487929399566864047219932083766052758616513529688973637895607715112010523903490595872291196554549811513632958223389982764497976971534998551816089091806302685287675866061637474617845424256013027335816939355497459788970858702093709932774250962772401039236459004392579048148116186671359552637323425341023992763502266740888815741211897913206106193430285801193705154920747441398192276832980444551131343564238202026827582917324218558035943832060280012700401048439524028021886840437693309019577362714206638112563672823729576510206074968788942061119631437171611938194666181628625239881140724178912534784367913144183063768924456574557574007566482126563135509663861498803992382369099736662566634623251080065364091336929887394405327824739845160093885815267703644970383970715108927149139631008955503528176115031921200016604671440826610807473569297857091733028622412446169369832446725506493661139146339548034163084748483839623356827606568675431214521718685223366508295857612485874735354985844029168261151259849580919963103006164091864305990523159547428623170422909717215837320689822982261403273068547763954162150978174571471866950859266616727591699134758644446978296933588848706312255927529393291601992758637955773123849513078462185698602657399565009136647036470661141461442566694771388880611113645905147295021081138129850271604188426085065679071035828787934999078941498212489000196153556446736427442325248631386984686412867971604239002527976508653263598852180331830717219818569927582002889073640152039022121473126157685821764105235583892011797637582816344910586665763553012501475207536654988684048248373326870153992516170976338780401150977728097767145056457621213291905425664308749173168182048270277186936068300619103521367699679453344879642656396265438729332090184667075198321946527521322134229657096753641225450368502298971816790511888655817462067442410946774707415468112748431811385082429337854342348700714361426628883900474958629534865048081340291431791789191280410473517359474215417359507717625420923300461324534733867447463712723905068118155245119757908722726228509803721230256137157252240499677286472176917032615094137563347011088085342783396516997363620737337873699000176834850196320685708561244216605601608681745882225707392735311927906496903631145275066600321431880571715528831612339134014468588116052372471289538735959076626131915853036140524859641771873199740942488171448558733327824890894224613613207829413738592230436386520825883503150433092433208238422831062672114594558782188024133767156553000460587832355614042622677320529848400278674065460366730745416196755573350517990817890133259837220640505054598571680166989157179226542774816080145848121131596474941605302835965754998672874591580551629775764644230646904049410066286437337174058397316281912285263670355324294800992249695428098143168305905566817986071229705336749675109093959297186798690957872826008395809600359671490293249072998146478704858648054516764855942908744916968228296527641091640169687317453121421846723150330879343428209197736751279062642009819745966286936426523753595245750807403189969451652705640681537534768646950516127756366324788936603732842870474825079392770331403122596200951278020937519902109705784973067232224074258546941128646676355591089877942008789169501981351015432366585982186067477228913851437929269538471909091486442647681159088686804964337173437806041745408506536177180287487091059702065948186821522498841967950062433183129187116335569305978803646410849359880104886619607468552250777255595579417574465012762900882083606230441572094660820565222190982458427020884350834445731371223915338683682650898868409696296140877724080815596638773573912779871399717427718609919201347033286229173518396400660076739443552244169569218037978013434916332782260157456596987334402604185711951072523289371950939676492414067826583605625998067451940997366039497537206925909251556580021425062930762679183033228203753183550113113834658102019862432591386536647080793692579192122975370571516711601963380093932465672949916411537574664230611892261109363302206807333788712917399227015783570443151461264783656027699339038121631657283443252417894282715439110382982887159601040654077355646034535963131760960282927365779073589444424691758094274493523855937529432536228651152247523731936438030529642805439549537141015192510292596019024474050126227115877682663972551678011811862348658668757104301362707065100227531641750194487762756219270343569298018751942925442565187582645969677548951395251818594585396338656766828085419880625884471180477093047642399345950931349193771730847649755619825085253205375579362636147365635249443518304806485389824534252378943439428543855128008271497019304424233871909690144382484497142206261224247397596501631910019866991256488139699310723603112720493642530100403971937345394667104690849410794079746833529797985298022726967920140028685344599031649480333910602103924466612575958136897265889801012437352422145045485428674005759637811837993514072999205990324081713695559678656143173918081470174727316396167822820338981682969149094825547094336005927172890917541755505561037008986066826619198862161114958828128865930845922735051881115850548599034253588833796562256581058616162024495179571488431984252990911472435851223033005088602775781285978940909760315361173508060112116941941524785620439314450225287070908235605037772036254914183467695591333855129984230928151002819694719359028046896460212286803200110978302419978740263490103387234329423334241950374816752087517228150109646187966126562397576761473177493232831466594045435006128954996590524152187922770600249635636810343550840769206984073574577036960363966159202656519754442364736304314140236173232677658956440378344891901156612362739325957397330290166321329612297883246432774717486157712901402626738920165939584649573530640618997181623546422935256348985999684904082520210422823082933677107174572254197830781392206180965823060683483126305604914791587988203151303085915586179149473896141706475470030619217743219799436575663993749982391713522660090896204457451725304088495605786175421173055157453550407023718934787805435980531004321635999413453791706258514852189981806135941203733686276409247366918350595306625946683605293073852873259846756662201936990060538395384240215347536050184811569942590693955355454220883770498258008734349321144669781605327880653809803925621328593901877919176978741141935904679746109451238430170888883343744763063021855042036301805180735470589812487818705135696856119562192055591233382906368920209681447136786991259865137850352676209250347797960424697832162936866835257268421439611299376471598564529102500360287283135725715358687205471476387604069047864538877101061059356180410325267961355634574238816780830218341163453887444374956654838753861165248192202991254365167302376456720467680160622886509653832509860722111586362998596293558631818793264614445518186943601860612951853606354822624016228907750635700479683734652586180440985355638597193622815385460901252017328073639036301924395152733622704127833927442842282884518172804674859358537889858827100854065206037583607277938436085545311165733092386735489999371020288839774060487387638615929181292866681198877054217768329235753380112265712881710688861199866671428671563541163266105320896398753142519853275436669160686366579748802536572802208034598278289359809901881916779223790996394302750048469906018072690452440778885190915707499623330915287642914954799715919310566946053237179780664293128382934533632566074498732564585897787127356529219906450877504540225020365845824193267414222688825311582089852576432524099660542002122703497900547545048020373413229768913874071443705661647554828411334685765813487355900991290539752382543645336920568703192049433097025019878336136628979234099719803533565852181536665053661619219718822551163574667559230393738542430535481429259206525084665089703721736370007103101610699300595649862635519239094773411768903371070665033287192413319814412522010033733839273799806969840065475741985034378106954991286855825055429270626861502202517458310079400227625744277858502998036499100103249389598312581683181582172321640704642571264201557048289233217618388040099028034161261985615689728609827195541579271062815539602870600864197648407357463290800406815616936335722693391897260202289521131861930293712039845313771821416377575960763513541937809453770192205244062091936031153367500794161545579555460948873827756069450387655535034141260480993543774848829268935311158540277367586530755474325390212403704691105219684748466918593541518602093830491461631654708438053943380160781820355858615712924420911905635382117712333034814001168021086864706792446753716387115024110325109177118081475282423514864999274575766935720127768693666582322862798049479383897196175532307761458850757574666578668689379734466583403494185845237274497123466619250595926504454394569372175557775070999515637655708137541890855646238957611700754271656300895673275586622299256692007279840913582974067149314615342975081525895741257581242928533051798563235499931946081413512984293518993210564182937639996263870067076566978803844575495970241351268257177137018979160092785094923002545935072061995016079184819340717711106930394029388109919853218302032505883221081353706283831406568859020054520201366782429768592224876048837367971108996770483551122162923414576684470117959736637428920241989462178648654091344766416502404060927559834835234068844433861751860956394749819835704363279478646498532211469045618691589079218142184869388138937831664193964689841410431940127730624381579342902982285420126152271757474765656602262264625176597888928979815491403231994130898584784079183203790062567637111461182922878469768559708222847372579100897138056183230891018624646748459681988413156903912242906918248857137945805431987472699983875770077759440848132824543528687122485523156263061462391228535858455507440455011292787920029203866028303550443904556060267214515649739126399856438069752060602428770590403759616944997274247484934161551674842692628925309715422340742997895504719832488889735824480189785641582967748198276003299634454582692552506417991416994996243677752586591946530863529664409967052842941355506872927730307594746528988565728151545642923886705479835945363995731947658763562365329911516837725908203142775561622418143632948287154140420707532216346163586793917194267262100348224073239218014674274089392211788960790339112466273364477235115227142740765874711098175223036644812890968518282259010216519428139005751599506746176294837785669907185779810978692464351294584943904808881437544480752869046434744856877642727852584612310399629731444357968286057900648755249773413412313011112422427010981452306555095046326699395384588490942531698882952971934396160224821419254611494701525708974347457666673778468369071831127431720478298771331443788643036171718317359899019946666269876287473664129114898192250347205326116401402611066512208654528265064958083145698772651600696072072613037305560216080794885435097112423080812028557885500523758832126628910685212265917741652973130719848716532705218863341007116812108194568995747115951133854910385237559619886592774670049577794145096627359790983111140751232760740005142340414931875084277396176772206169781881639391863753369867857756828486040663008950606001874989092452352983971715161236056424545642553751896456119967563308368734905663280182287010059121434905546040253337870625460310786229202081327644778917762983492143719051777491071319045003750990333910714486121105967218594328034049787432292142056842274251246905146436098709976280121819281880944606173672235065052785033209096901406916070576344197280574396252775737887535560073574397738506427930742694263010670276869569920531337460790048101347632740520173921824435152093530698436585880448205972778040389192201748577670066641990077594527397025835823434167271426258090562327745169601719345451395636573049801522972626666925027138329604933075701690510481721210734822834676845816860091908485758634844341707076114571784490377921565799558269968659425394703708685829535877703983444886859338520867161936220117614936262760321964362946914929806526891678851615323567238801696294518995536531359165693399758981500647151951133648464225973626687157753752487618852230979197233747618383001827863209989999997822299984456156993759750865407634498826307575126265402452666229132412434543083704906871412147634069194116605846143915016731760927587710878456343167401483318319176925947336305233984278204185751751111467748399706192640019888789511974329466710080144004660154988320297936103309482730648660102941529179430525288704596422525543902879298746078524926265063101247416487135486121373835427417065174657664829605510433750111796287483675303270807703671788190296539977878332190092357655195479275114504179848282697052244044812536082214323983231776941285875003036112751096912756156122805720804339595893579903648494797364968235511301729047221470986954452148261531090690567105107896744941636417504577385125564298264432530450440314457125666166209480586499724137039643062761236139815083155049609024898674154399977114922667364305584940512992105554189885099958734729031472442138906971346553420255270544068815196136231782785609707750262646759102198020079106786250299641090594477480840331330802869837812816855647840407821452432141209583276662944404831974358575428377010342633611984961657856271233723328566720581179357570830631624406876925225638995162311313168586091554871964722833308513840647717413459269729292530996136770839432727695674899907830615316822147670322344687885205439237383362778411631424126656188974292352275324545883542610845058040564696202622127843994437268107774804420410066580084823632134725116327991609699597884860426569277442371907267964723407952911373749479824126838318544680727544693141527485467653133657815629267638187128128662019550865874523318343445503101028123790914056224917530566913107536028023177058484146494453211955136046906848324458460170884113525093208327481296712976388390549167075624834957146108158980771122870791939968980673607605915020288482174400392552894416648124560772786592247687975847489678590137922326853771877329869726576931617551096404177437204441162460606060431203189818182301535267432921649542875744682541602258805641312233812213807658350133228277303053769744781148707248835195958336924624167369591930682342724373550582617758425770263058209203246157734303535818880872653836560107127499592971500079744355415436331822768718125067091590814486626898508543691628105548271888417394513915614626223608274351072750146361437032174935708893145615079024199097417557674511734183488108466264342028195584941014899475524320598184985346013433304277727579619288652751167485642574059808113575947304625165419232530748978467073042903833665724575451378727675451330339001920052148154022673521361009471826438368253044196519552905586068028994925337496260483222724550874658048537913329812706472289451056145437681548339259033455759974158019069590006619677111056607174580203420122177394967956730560139993389998124162327140377524809042095305412206709275907083255468867657689564980553220964853739589690692479001903025821636857590356253832046186035795347355078028723336105973873398930964396181724071961250505809650438109399714019037844540442547318796597654195360136702001898403358577901368779131364819088286941064818452561507981963313304411514239655359462145613964955216135361207612361513722612389645308064625865376711773747177522209364399523111923946226408852618224084154401918782336262375466028828590609458147993578987456200447539584503531615002637602070373170314798376314676499728883084003726492084153673024341448645654119855791671624487171799530747989442082756250384014376892513989546563372400268537233466956492670088028077926114371356335953257433202862977024969996076549051483548181984498892889785027303632309433348740614363543831809666866467791993768983972074098933671935720079028327892592074887320796437159369498747632144047467394373712866584197089332351594333246802621722266674098836643768019170861768531922732457580136951837977307174994674597691374559171466764119043229985703321810575391684176762439604629337620337504629212669975159573643717296015833652080844448801472908675420206371819036079329047883426976160818592190307927636094178907741605912929808159843810630882671934950201041768700689046231444037373234973969372046221751362072308488106144044432218467847526954181369646774057630271362041235749871016486902047951046212582872381187061763621897920807450647105174929618353588429249436082347331643492431675836472643166684686334996090333575928847808161825110909997851785783130704335006146360286843294091786440869348554877683314400424659132452736364771310914282666794732571565541383387406651703689880949164323153000957157720624313842016015030254720982528716752111323992372688876707698388832558925289186505074022364022801467823865553340035894519188421592842937841725071669208804794613693226550682889877146278670300696292183167364564036025732125416924735065853496981245568626338560409188379683441466659704864015294968660492784222614139138611668163026759975528836207634809624271280053542737357894240307812661788199380629078632258724090062646411222929837853060581400961198149811817024293022012791097196750281071746959870478122648276915488081271822142589156770734938840984350363344317553119112745102665993474848706037374558296775632188682107139132493437303358770406314723882652655816508854460338104582244450637898542676045664393461027595000167197621744207288453628053691543965044484749672716548949493468299602682503418843712373755907048523164921469441853482187733961997388229161296496416639639813874570134976405158265592961983454607592721627862376851027635735439174264282777214779728654851762169073363958162914264804805007019907412478553010035235627913516700612362759889771538406771121118889406294070200751393417442645493884053342556616441988168161203562267768173851978358853727543624178019666164615184030023306281555142366609283845713285162495839922003121978277342715850046969915468264209563908930650758437507118497805547911759765631372676728113902805373853514056580689073823449417579335404434840647659753033202452211403423697787273556062086679213741195865327219421284545314267996587583988862956485605351172016558930395183493238017709234060922886956448191480456146704574455568146452573765193952519098420156415930897792039574081056931116812771924298009681180241778173651469399109770562819182536314040681370716423126007257843302859775515641783519996972074217368666141608912608179816546929079752374287577586601970904429231830367827413689987948864291873406626345262741110432852200587910698796821762214056429890870225064882286314417783938040979521165769064836740041722241002736543459819591557240962622986191961164976538035254221507389264039105023723345570731881138197301237131776550270566571855658388821762282497887589906995330952806659846241685045290560516828023811223039089834249881342801182954269623459959550449117699713832819205408753715447934492790934961138581635759489057077971270699293944240640506256072871082198370154761750012062533820882694965874016475331627564657984091245349858212027847363976011407787776158958724474171228193680282287093511874239273242506554839016248073446616666482700600392980819924590905021531461645374830187572110536060104715437016555007318077728303390422309673676837826151610993212641642887028551792065713390594863943302272014785761587135415106799874576098440900083140318046140859407448319709486481958470918138802098717478577822363204951764618109523099898795841387436494569836106593478111888684296041413807827568543452298516547747005131943161390506025463094428867111656128332994959248300167763412717003298276834217015496633008998459580746549185975654383912126451508579219391147200285177666315142222103538089779862388325818143474211456227920136567572349433172555118595428228047252216974569762552660728258516123553329130763123910324259596660454498220004514245075663839310104524631177985782946069153797260791096147990268762201930860087723523827869214020572734650223791011796502722619385335208312595198033375364028865628856704265818190102550628251361416281783831092433793531618845070036026010537352591030554219016205260371236448542209549734394044061640202756858076031863450482572333904996367205177057870655126647650770892516083281610531757019656809758069291664104539227186832426346818746215689953537908412163506976822374634413007397479695272630828900201897143206544072070747724611604579949854840480749326007560078697925904100395137523484631327402340566206719405497706656415333530369466978945501017087894950652666209850696082170056974727950464195306041858612806818722297148769267430449395420613653987234960812115380246378265347660785451477576270233865304151596135201291318768457416412437447303824434585705548593852995167286113706414728976154489731658027629553265872078920860700926319895277333543307944473242956614781273872123691611180862608724474824106428923790253434763235781509185459601850082479156393818540240457867704091289572539627003626029241479448405025317023029130466198098411785157304555605696863483498449197461650963838822233245010574962661150239778222083825228039700283050704700182579374232902153296800551445880515913840696483700288200219477819501187963922882672347554042415157181257954220200512684760207756296011592747406916641683589419208829491293014196659944694892426222184768099530053725273269398468581277508440382389162446533863396846356701716315678408153110903502228796483380224536461931702548377804174313557401068907082305787887596044256153977522984834033779108831506410885908204234286270065083456950492407987964380627672675321177851551869102142113416560757774946000128707962218561717514112999927108710758779171135575111239988497627964397824901777339539545947982323982082059196107106168076708608311846254394789084459257214154546313667098741015344389466322288634835062394047431587544582744785519271880646540989382470478860770971463375116693764344132232590598915367878735259268687476361757466051650729446204016998263118508539589665608804492636850737145815652791429715463819090077684104417941615433234783822521532855293861847529289360841867243654022692604882757221578676123956396092872520341959585413329973459298039723906683809643029263914841788207896580261788125833174544641116935728687319117925116852818895304943548271137917193278091478695031765000543394104536427535024296414077612279495891339763690885826522842049009245932627758473224778968782996231414443791587328084407425195789515295739988976212200984293226830506451438866811662636380038514670430174690491934956115852036216403878591642511841760340537700700369394771317867223476338934992960516245051126303761652720064661508802105960568250951739641355601966986495423871552479569224932262880969789531943100828790182166461691665383965372341737401279760945085739762810042547484631562447506431330924393041964117174432042093625141407924014124992276013259016549237124556133822966719768120159567199842101186516355722893027226545164152150968000193595466981156205345396973727120919594552047224318709303319905201492663262592658671102930838856312786667295350618035403063635027310308385614963930341088789219389638464513340137382304069103119172861062231387658046974646991538749403828556525456859379861338935684590547770722997117873671479533054984824646563528467210843623305560141705587003517351874288517535859151687686906310051597842441673791181205559506576694247087488332667392773479422867536142683413424219332514866143398565340363020307513494766429376643587758427098041423743458766607970842052878754463816353447124494651902809488828222564368182068774939097257068405016116578906526608415094945351577740203549315180393152605638027947778985389894971402434419147769104648630027878859475888029542884463987615887223333647434738189658106862752058088522672957332849182495673176686206479207431639981653109248104305183910271914416158008560582482620368277927765835507094721426232891562385954922047787281165391150124808466010925408750350980438785766705736578746440141299509595764402706952218128936049104131168401642936470866523082590601191184580972859183158366472813546183890132983527695969434249579933597325073389691864429096093647481920237444770661338210009723647051534660020957877688988318663803051443966866602422762848374414481688424376779233075213650076597224797877856165492320093650726964052938217928428450891245112704694226832910485202392586548851668567548593162634881805015257563685150013094709287869994142645274786874938890466301401871711741136534850106179906231437154150442789819141839605234933079638256360011760094042206150783296916182917998040444913028250468617364321435131792901320484345611909211114920999468921958147673545084756665284143137746808154184503701512468175325762701406198279200078062767442847999317199860942693563274679405036700634857014479630223464485000068868544951147119564630855483565104180298487763777559265797404981137999830640664254307550147700451033703427136585530230554864310711508764377750810004850884817165411698958915074422617339769469303721709841871778031834296873123044391401072928315391824315604440356243744511491279755258959304016404830696992009741946227932092997293591800349129204060004951754134184811014012992760771263402469828721342653173253666933815937940988893564821959532138172980142802472440996302078456838758580345798743816009386922594849492145801326167905297618859557577511921045682645255599932031586632450451052781567342633143189567431272839121686409165403396845409441493811324765193780722662175723409992946041093479015550734789298984878951295942815954926990953605972023073842538074380149909803461340526483278205333463624487363652328755072552664902852105521300074568435512910893032168447787220914356478028387860806176250292511890365968100462097585532687654813203644792792886118253653152550721732609892836645311059259422915209452534487477676378354822124691818077078592865030682824245022141432358876149752912907381767558431391428994195471026501774401892476283144016603160232218003406351032451400063746419868984350484134813091866106574321640607614954300883772794387852774860728774354733642444042121137516137471480524147706910718272295803291431412620524019259857060140957936590458989756480501966777514769207818218480679520052540116757147122082840044784942767109728274423827395093635856255124973007920284158826837205535282433702957031159463074076023832363192909917404002934323317236437140563243779640830116771418706223868367105776913776122068984847954539874843355881727507443922692170299755641648185043484409215924261829248067511065102354032469868808568655043401417081608612761835169145945986769331119639803539451597136538783991957182184361081300258113481383908522026502502774456606778640357883796302410315604797802150779422995124526239452437184134682145874941902065493723317469290888955350380667422921279999787264010937587508746983080554486045342070078469016242054669253452205139587809572897625332112987061560947164959054927204043633589034763149164853181343962510747138158666213928757228239448815673537082743749588042533365687618296860564234306463588440446229709196210085577276840738536724786657147118508400511753572600568817158528120975007695671275126913281708459762783452551433069231433177556089356860713964562613833650853601877938344529977509153400649396769187121913477230692125080777724546781969369800209411948084237062707144704073902930801133693226624162723227190411490581447627670002130369185144424033110869300278664936004285198166037672553723640250276128210281096391618762208714527018569379640481461546811738000072869555834710185609339051558501109058709049615583567105860259296842176408663628903891346798812796285411016610331955800694397867020579045452485110792666289946107907955192949968948428277328535689110087942343040746981582826701649972375621180686081486744452062905433353647516451537111142818736491064968153893640539682706188917756784414570969693712472862823197851972283890041822243713936253819696483498001201005071843675126927070249478001448138433323528440949330318732416703042727422591960018147990013310631682934553652493886626397896825001360852974271183880537714128936333769579471035114278719469565472192208109676491607034880588487775366832939446353338357599031285549610534555195639593903506161431524409896189742200894255669080044504033228132789423130821666861872758291108973784592147142458945874830099487965395477811330659375704996674010208096816652939830904501774975387075611712173381800636237975047802676977674298090103322697503367753888652388727462091183462770667290661579793539324543409260967872173101317168614551179533825901758327586643585176695419481120200136151846949287263277296151882575017077399481805955453929538334553056264271582773462391789753958629489857521156905556448095332809549087190359058846604348299005266878997275151255318855723829631229279290020137182597134041386777538417726865659717455508566972099664233395548865771954861784958325402610373114670135842461262421250194870467484196749040162826590333355167937266138714303261943211256108189449389629329809629273214228447341813039010037681317661254246052125458984784515410562093339545497123186147407254162431472721575458388739783414866433935882669009948231015512675802397721151263009719572502223620995963770174899263610211955423629080017840126590304990838936549960347255127688246125728242247762973850318033131954486239404348548040033339371568448085642965267744048017211313114831718072893845223055368587681827499095585641624077355994807023677815635631522255461023053838647696350730724160752190169245884282187353100554613617902365873225664696882121168285324958908526999100280571968602709031107181789357184385722536582997215393298691874274079781116378871144253627072135458125416756807159875846856487686772606287234925437281513083281438028246334168593390710551487776990488970433520701912860649931257220854956521895038457420160199871577108531192142630379563069080720533827353414600655798680225454676335123013374087263126247725401477393857307712661717097086525176506302250290873476321342991675162028329661689633267834177889011086229236833153502183402795948560672656733905891635188382854897062590811489869838203741188923552006893497550570975829284931611672783239285838645838752504150906078854404127975208517495013641440042002083419550699465085458933777556002844627801580116105480209786933584167789004194701574691938747275077652905517704155028520760367793915724389356569124958202693768002342235697773624005488800883728945141366584819900493577377023265609090279998513852703746896972066717403702759231917398867994990288107519839590350922658187581536402992546073622588310317786978550544705694186944987358029283534019840237960458051420210985444807330426024019292427873831499155862928989012280660082613499809555081693179444215605333932755338748125603779351192440413511696971354245271354218807278159256506469939703115357557337383852707008419561770030238176817566681023214276681796622828456102189756588739035474098346641284883104318611479613072729161747352069172522479587205253772096697729651355086117036762076285435797443225357070466954387857332329182115763974171419002558651510933408596283514189586944210663547252344951103805482448057699637353376758679927528013823647290491819865733096893634190122484528176091759611306143349649289643566050868984066507370684297006980674602419302018522468113612079599850489429158995017950006708491635892559687486638960803100972950076113673577999721347822700916412856332482925759142370397166531150688970944368601156738018345093350245892631236888298913475467579882443501688684837413610572164573141208771846348871881407614248765474619978489977931747910493786792863127925989584309992895946400637837005111804210345059245241943347278657271250650969406068628307821547868712525764587187403833257463997743310746009289867750375015317731034796393587362193884228208307943327553826024086821997004286695089603794193190604384007303921938271259293924715008021060279564714738956047545327517977461967491259414304818378267483048595467855355529040636748127996649045909720388531843219044567665055375800890253656416352725931399176303245105545693424996295098172044640489405172800394439147006445616476709638486683115330108964906747525837603914692366060562820703072910541396504741764217320884726337702087361169059436058133787546776881865678512343072784394713939226251208468565612157394803482857283501704717536816076099131409103150807375204183805578648209669131231690916539325550775663351909952195885554935238819286752116258144105077097189757268393356841352764933621408778334055947816097718238407620664839154283049219681887712334318406738932099335278999105442546357551362297399518491673889424077082615493549221477437488107456167701287270986695974167054090240597963630722074797552914615685029494325815463271248817755265409631072303531951988732486522561816182286515471959677871184484656672669184211853595402109516217399919268501861458072177567193101827865304064177511832266305131057086610847721576570567062717568367773395951361511143003528085910549912974119726128712039719890459234468158452701159840055348986024294438777156774623199395611686734023372945270824817853588111795960944534862600521997829016537967746604435613019971960611235816481221735148502376886741538389175380039318825411070209893595688785734887396743610362940199821724754111649321702839222125356448144987531040535448167157574311082053428937357025129425961406877793084087558916110045119167957636829785921875826681361199554561940746616373027997407345575204119630278482419405421550162955024797014934348512646120192382149107844750203649703406984336823703041582685986909419339723707221876938642093236813996647570659656208264325011271581198853521613657124021786711955592417848778267651970393141181178790087821309779802443514182357722230611879594845686477651488094850645206206370207803465813489853803393233134444816413435414241409364965743835442172816249319681778040211382858556805457890413773479255413496365955712186915824263692160706179568287643109092485219657286128077233597891610117543237974282354065192880511671254304336326167862270528420311972358866706521828606526020333810662266524077055494012113861084853039932388033907682786076452441650869161518583926118766724819733745027676096976037231721889049866789581984490956654302581134805971459049289612795423601558328621107985605485687244157590027828744084425273312660027175813341328787544332806582271037991073461771246747896453743699697986712508036782873409979473602761050322644045668422642004722807670607068536416906970687610372896242134149518147487394801230976323028731560001637743685051801339261614182088524196283987717825247163830933385240498794096006697876736339463055215264222679582983494538317019644745531299765206826360264600932276258659914752378740297382490352377120140241320573784151473488884954718747815107350590169223263384127148886569906403501987817437662811089180271962994508428640773837085140673169480453352153423703035507854618884583052357798422900826551016459342917048718130601480658101708718550476480628161843011370315654896443534088887897515287881061904610224149235845333966712615919869490943381055225925384743335916881584523756383223538242025771379804079081996767355141208934833241866128150990915502071759969624999414667219019313447845385478398155796646489077887447906760006905652265923695104238579316204015539930130611274392674867487813810804161829421276082880784554612974535961611206412917793107153741267138042804294238859576770339363746318225077621425470475702398234829914702931322073084911938279097749709999424136312055045177132900375999825579361711254594402195907644934628442054130507086421635135837289648524537801954171380605262054584981368538846583517311436738270673971765451326351462853458266299421455790795648406549797666814914955773643852581468655914925538216366124225636390859507579852994394097251433779745524581386480435280560670794609186376552677150441179221893571923611231870042357277933714820388378818116106456340886715428822564379504268444126801851175070937200839708672574494780705229993015901272608764129853620698506115625920141850303018523211143017630116685066060397188292158468714897152487983746697008821227775945219989958897970014698544670990087312510363490972859222499919893581413096815855553075770922199703857362488251170064916580748131700726968145755730229770739338624943703322029016076795810956454597785430319137296472646033504628605790657264945666503020995815712916852253646730045018235112217396578864305591180280268820248994818085554376934884979452178441583489911064057756897448393428578539081315003299532952653140076893738192217129783979076575501101680436794882819480049709862176457666236701076963538419038585074461343838057934006342332130326383850485581930576698923890370252679913984403590383836022642074236889887271982790372235758123233720846087518371456906550524582320874397471073344435195390137357900682353561805323475433245314778145021515787719142215006171619597173525621345585347124409049913843576431800948984338365755908583190257397357976867919414911956110499867184305582609900222281284571740406995355974373737228429309213280714500553342807250243481480005138191942650737465182143609248481905175188551837667936262327576073960034742142821897936703760230749873368089564522214299615014533010389381159851232148836204135881896643923144907697436845527284918495928807628578312521179655749782943275781088861079879189839152077570149060558006132407946059326570680514690769956524929593473509867397114290881160090222114395265098646840171289274732053193406126492858350540137374284500736151632334211572971070803828937126961234765375519513582622417849396069646387107891441554436251906934277491212088248508409490685582004667381420391279169578672034117378719999094100090770869849504727289718320438591926447441107629609718142117387976828679903472126023925167982981172985073628343037050228843347498508331782707835582798999665780923780394554164709435864944728718921626231703043032529804945009151596545554056496146729458192952420403436713044327915775045034656386994684864942089418603299950729041013974986729088739650926444966756535692518620711824501435226543208201818457593487730356463393365050312570304288258929319228493557456762026868334925054611809772029068744322178414510118377615731853270063866914777096452559754370961056027099384218367402592309797900279538738423322223314425413177147846232343572249857615799731251866253166370455017893850756405631641539304848624604378704399933025030294147880752394175737741094348198832367860817138232605051150619391238610450409409097650954245388447555008864712961714405264280910646186047743204198951536984563742940454246785633366029156205294761708654247059891454226822437399045256772807189137451223391652669152400381657788810556319389861317739153887290294094904342128711592194640046024443258262241380775068922276073625379916706113986130059306419293619890006641558203764177450609406167839698473436269055773073019954744817840541434255041708241621857085629969297964069083914032022117753957750807597232773770741554212596364260006220933814368282498982353653858452740955422871038555209960134343369495166304061645808230805962554548379740100299035326502108125019342125028934992332992137065261739740458378373333540114756528748864115908603068112450722931462018324728474543532568974319368860643124134454835271595480324074498083378023386321241374224851806568665940770341794986506203734167099212031547529521231366722377389684357384973906408922951634806423716782898317099161401224460606096977016491947214103813496272610637430071868733735833387902631522841627982496607273157771341352317530031897306159894885803799828297048079602102081695004428192020975859883028045581256119541707844818463218256197411399636091288589551730558998812386766139590799055709334784963843164484421149695814622041670039311837667468859153427542397098476689643026513615285085579400096534450358105259060335150053003756197197679655338308204190393683571024407424234788338031562973347957931662335232913520319211759873788394582592653899413316475676704372402082367088135924297881245883907636157274348120156409070852964239662214955532842757727734942394108687993613013212484740653325541802077952904300850320445500407384048528958110645384109676290771728894958352954879371178918314109477530285623567600620477307285379208358537002388400850032331820822488886261793720977214154269826698729067122985195414847356255137570511029628045145741605611473708384464845936383270560177872155487487627614625733756348167229969408927134716904245282361898560415492000683809248541895584484306361662792999742411145244446172367416996918429604862303851631801289243374134837325466016971378082428113833610067187923357768651638516976268462832286292201505793885419489360067398834780435005085117376999370297350845395017749644584214832649444063567962592647624726741575925049245771598101434757239003064659622940550552756347798587276279295976603724921952310547836926707685808307059398597606986172639124008874803930169483486605633407900241789712119152345630411251250645153622183592479039090972184010171125882646132803616321882805281345885981271673616154021858074841765630198669771179762314090822421244330609723216003555600280743905485788609343613045030038227370815881739155977732641022166380073174996735360691110101586117923384956113366104100562858835049644559118998184076535782528367230154152750327724051897952208114781671598391764002181341167826354662354806492297638307535257855250727963138088287815935960264579572812711922894485265098691196211215939790309920288410824928788599797223081703880857030748315802060711684576151977798925986009350353760613766800539956138200571456163071611824232038366967000557186103163058287249386870308721109020553592828761440058201309169697359110397325735691364855323374824938614355107151154483839570304370727584354410831561523191046397030163014244666998639515758160446634398921663859397440230172908524104298111345672712730090985625497632715492314486285496932981666180735453244441951231406316639335341413413914458422024983159607740876375393692407319174849940729212521919357911045648888557339955070430683243140156568299801506494987876107990051772240380824728592632631834191507651087173452581990793571540053056562251451713689665555412488759459477793514982227475139617912318043636134797283442781509609627923110279033111515438418067058482887602214311225954845918337435171507159795393309064709178558672660449367202543613517199017508995111372598021089326484980529263112453943593116932313190433631532365392395475415626665092018537231296727529470258332325920658667238785214051464442356662236498023492325367545870137333941183673792067485123626599767146181523412941293120079584138652033132032158450940670594173318767000016861602608878837679478809524017076851632046301145173184708685272906114976099815398145733272267162238806239293935514511142507223844324287342001681378750965436789122471604591810408766384518333350392909662009486450918734129801218681594143951532150376541674116020106427941864951035895565003272148509720616397501158217976612828570220733493050983327040396954741831788739816617116245982606373135190957018992652419204742082980487768311132628393375914356677732885604086270884606269508508002562118022553559502476696421419894954940234674698716322704749185162615954234803922530387681697361825646299719990523625705608518983709300384784287787937306577534345929544065645472138896907855235876535617440428703934912390182509384891941476088822294299012988596410621951130199076132828412764796233670836578172997900700997382769479666890049963201456821413688843045463084329588662358839337169300376158113690724449095588167120328606259381375852737823495216988479686339369325275865040424915225069263680935253450025385275149658710285635073218058188021796807861785051628411861261601742361250397968659894360472482046558119773474737713778372611174253031845629079304120304615045168652459520579355875993604236001776828638888501530287543758928416745084968944453492539058697482929501592208549074487053202894354123568637043082728473438907342249885405574108121184836058737831617034191419389309228363352972645798003453296679445215859439957955663269063484158220403766095089056830531256918920803260111573761704280779863146156466039247174921970211009950160800451999935924529420546732348319685607296038201997690416713828199475930170559333094329881477293510276048035196425122623644201376314796990172837998176196379898190606814818606621853362480413249827377767782828577466466550299512482576735949403540719387317738929370523119784139924004101701169930620456241550385757255481163461676189435089038377251961067607903913343561331857988063830266176178300056298404408714178819976800951092271896833461673772013923086535975667366924378515460257685514575764456924493552068169026699900534562928278419762748984266213429284737184790336698443002044800289137069010769999989930420640501346856216541376960872242932990876922593217234247745080445332108716526774614257780244133492643528175933868264329034595311959985221893644513607988331191327141416350283890604597806020276026430605965986840269310897024085731785328303585429104608102529821002535521707579833350590664136127016884590459057107987103844836959628444989920913356856205222947453936299176320284227207055768200253168231536101009406561237486874516904333132740783311815249064726338508511087374078005995666452520094282610030553667681144476227370463625581873458862155841781516459619299392184802245327265174553734877283770552124537442984823321554341339034424603490881246384960476937950041924444955207552109812210582491963477342682816764616088600814149243583615493549972190938259293327432080311235013099963943589314837647053992734871428816886884518473278069173398789252764050302708407715238023278274404816023226129012131240520978380061368278857724186968068731791970226920581035217296515644262538441905736383054090658610626644997523715731432122414044443764251264906085337611205603402031415831760075411779096935200408989482922182847112816935853458659354687739065712032324194843593501389366518374028758932684732997749338030829084379039336251794933842642639847441916770887663871483704960360282137989117152555098026106533219324262994660816296791326279996995361355975179841102477736115039677206135799408396378441085312257901523888048311730232051850274046788459915224254544327704965333790868626402982721402504961030078160774330907151130732098006706187340615861502650242408471555012631694802618196661373798613216667706134614413576446134941077823319763881388571618998577512517082812265177589155744011844615385950798835485681083246467059435163694695906179718131621920803571325637206947809708026822546976150865199942122654215131247771345963672187688083335848853209070919921016660660294702050720956826465092205819705076673726207740556373712065353498708637340881252044334817764147523916193737744151671591540769908752829649293427202904466149409106092904082610326527295893201059860554478664146587593389537045824709696789645140774664818435634496905286416486596499242967799372285472372207020896388298220434082061873704849129087643727473367716228439588723341858364532202957792393044305501675391740391865234887486743397328958587534981897289525565811862285942494792416534292268728083204330131245150086913961159489676771560807092461517634086525186181884616595233188061084464548238752297724258600600209580028518756883216094367481453977075874156923693736889047087327224707291209117697377200315890550749471114230831833120934717693010227818095345543032685203987377114221116832625259737419132133917422355254692617739263512544955381271533077186856629463975232587749148688652435185062593724337448831347567718907254032618885052940734514249688108864868740886385142197081792099133997639464009107571753747487797951873079168905570055689096162146223818367007502597414200433683222373647020570486293582736805320726243674758573866952744898036179425232089878189512456408181582488410996513608027317572660095207262245828176802493147253544757544712166755625564691833022341548321109502020315497272131184580042774039543227185233357843224869625359555772057262270831297287697205499041555241227714349917947993982125493711096845318028630012941999137220704302349549800375584567216153766190761991147742437951665505183788320119942496007006053414280948576376462355670411399510666807038320011147404715810560127354532901052268401515459367764080061338225407917685161374209619431437705213652034397192556023365448668318159755891241657903362637981364988229580184880938727761464626072030558308929371832364707018011686363754330254872508840082429098765848932915344175063580715219256485567468804007789592222072207122722223652934165112688235601898179388511562644499440268569785321400906494465483990597139583126851298096602410104838822398589730335003559206764189886608589243967193945060679015854809060787360776895235442151873816545037712660647707948802166542121935899002404517439051565365886180368761275729683605341055764253768013495477483417275018607537406453068380452298157188073596671012520781749191370587958774227703951199615740649981515538727027689163315288458218428702004131105949230515557817199704509641263801842442601707562453702072296098307884480292242595674330336707184838671644558080017638399432169195647987179622241526593912877286633948287834445921111557061961940199199973277325010978480716772366114752778440439826214585364545969964302587913752178930505262531533928487832983496037303710453069899620402799498225490907109489979763338774874072207200494419807212836006957662231079272890164950809584663507841071219566468899353957921953749634780077690512424808468229462026977958490742794568590421478027526854340573990151774188953512545731584246043934914538980375860978448302768047345245397135420438119212015472380005263243523385732465275393795111778617942930170466852752176847396234179868854334622650072142940766492642823376780179451416382956264618023155105115321108766899010623957834868712666681100544113161446207638526480607394094408749766151768365825353533809112640040582756028191551737680095731415309951530953901957788836056293781079670894107101879080661586076469282342700404127656628125264770766351057315052941716521393715173488279874314902442018747800322657827990694347277672354264010540189250849598937461161119834016112765031258169689938522493981546181718224726371235429511439349007504838740183550618973571774270038780036339073856753981364353039913203530002822259519289566355161954051996768109071110286633591673406330780497842725183627158648328910835102909490848213359626105739240843652940526596073499756476650141044332919661146288904670313550647207784326668112246343985895704385803115501211789196078006692145997546643821111858043352848553247301986999972866310847619707344112254611787650184307657270126766273053077023014321504148529924861135837515980906439656037341829516019005809107842754728427237645246049141055746590738070440297426475044068839437163920624449184623745272498139122963238835984760160196180150908691898494106301432833218085417542774573355926412189449947961238065393354677847166913025382056660647476794727020029518445461536548303248900734843455157480196758866632827099237297806301548712351138008917044948216054290292542210325026200463349538645242853156391239694945145648200461676702980233585206684712779475385600924877726937061777873998481906816517218435230880379012749072395842308787905711358498201355005549662039081175928605761029368540624709443550967547622805714869416454946477798398386557074053913979915229088016804326424237670791728711614356760571702405683167874457414199629836094945071133046041033608604843420536611276199338212044034310152972538642055678997412045337781284870171510961909789561613016714397022266701364013360637476902561593838936483883623266180930184002765091479807057745441938806152081902736379076261814063545798232688267857840694214492781208664020810470558660558283171592603683369923514301810864925713528229496284381797228241586612921823638405773893566591738294435553940385474899935167781872886502850838513180675901126088462631033142149567709148652081228705907939661868867979863683057813411218716508483550224489936652865012253026408236328411575476201361796624479074634919159245527254848747022461494796562917733281374046343864998215067185603721870096260168398362855675103109268202596167043961180599849655326593812750626095620449326174372216599070706851007438831226426333234642728726183789518137832511044273647712829175470019903472254677910795977092994595841976047430513520920480029353353067650300244920593764504466636813823894263723668804152984003570308013285953310235662677258034534586877910714386879990296548390761276710420189137326960973761644430158441107338541878431292161085288696007783689118082895328035328595437802574696561657670310411042722752292927508917615176639502192057319620753172198622136904792931842076789369642792374428924967950510760379881788208839938737055336054995081075106312975080062936097479275825609375151763872282601165168287242680536833006420269367917234561407863848918730782644576664660459729599529782057654148736269888231452898046172692817768736172865174551156630513261008803810369638561083179695026456117252630320826410216916212043155358231279142720817812777951376956235501446918212524184335178915291954308455596462542261598458248516641981130350399653521201436520809016484290446102456645349481937684324628661280983967291864824236681694346694740303462418875338725216142356966906872490940568523440667787842961388855795809125054645680695425487841971556536565705676315188988043806508204699592540179259169573075089474948467162420848058256087066984987444254343543317494503461712746043181409265677064565749205189008961938535074216524158580676956318349384918502143570798335354809685056925543712347428707847248130972049162223845194029119179006589623939954500881239986790298233718167571870899423686800376388527511974342150810613198400271973835078086749492510179064021591612768443699933240888100754714123408820435646207885378561627439338942315753121335482569320805889151145059102001832080484949415303438882911475673677342026875388131970918869905552732281884874130683251575205741562426875597478556440420617457040276592746144994125995586943564409978244799476694389886217502264149465876105846679074800781985861019974874421676318286485420315111207526946881022720053643440007336974504982257585869090456477524985259059842508911859401453662268409469921562064150642333033813998801395697682031447964929664777095240651047250396273810656675569750499633591931533534828116039475902734166657713236362897068627001495110072260895454042937366148749157543022892337846335002543626128952713881271511586977494530467152621987354431429242568958568368472519055585898844982778466484917959936704818039138881361085188061517424367349918390413557509717408244227791634749682416718571469367381040004834270464247481728339999321882777914431395421486013896136245042090815299798952038972789049403052433355320014353103601605371487066856556554111847735451834009790780141494773550253002468047883302357516763099163955106347677544139575909947362874018072897283104375602035057232848508183891145246147590301280223070018030976996154758810731112699029409943093031506240835332491239846773076462440047343671070485703320744174525321407873930025754239038935859498238709395539603378670264367472792534031140540493246320791561730895148363044315889981351612162881056941365983209419423405523531281517582540507513228835759972109883785350907704377788131221578984984236009881690540843800406525989309674386943626736920459323950982080658582348576587167251766989008261147563584990291897376185132872307321207948955226459673656512988608343818922035538921248600401100421143268505934244461682780808965237257460623929596480659268713118587826107082812828616515146236635559946073817038171104323319167901604222008901223648816111142247559048616533921198757002138559852340816023621643154057676190706632092198743241741002242897728305519678458719722522081575618761161729450193763276252890483101240150551679220261455313977799039626817917729094901690210735233535412189862350104906659760603326812889662227299069185934368015105365863800778404260828091730995685448812175647684638843679096771592020294439724301475256959577119159661121248103141834214984874562512130336568692787523784977075925415659100629597575918834483648066920804661492794060400368106909909872041919666532802577896862238183918509834738818584624039381926837040181871827203550454213011823781591500933991316267724540497567679974658646146382056432138905435214969524233569388807809576672029225669363363222754639682754443745698583593328894612862205472025990326651503991323439063302268970527707828233513493788066203496257695315667508440451964672023381488077953483504072894071547206202993187126961583542750010297326060908899842119504988820491504678850711489364289590716527217281969349890350903927977448203070643785500860624902297584854601919981502623088179494882429203401542475441234564556613904318902132486027901340587459452382686822387999784301668875732581570478503397751808423791869788259535007147035576062503428406792251676474039569244340727999434234014797930874674499034527296217042612499875512710571577423666907356470178405543151518115229697045616254276476122254874287692599991899525449453038633902406096648415804702927680921701297340610325797644933258625078819446130361085425455874471578385781791135090200220205403499777826673027102014352349589598321728087980308666702562335422093272543841247649587566871477777762588367986609252459474362785531857810174335630416484858907387404952962930270485467668304576949594173787825996889209809770310876810133969990082507300844179438362611746616396455132652503027600809078224536323630661517570358934510660532479719002481920201974632580342853489170881001728397445240164032907948315273262057199183461402598042493453372110730974885836309164341751413983636657442662721998070989628173308923334917048446150723981681846924920442895602980491451092334772253357364662387795579373308385589698771404626404520100031715868355589580226141153885768146469933916656974458284707436013649810302522209292859465064920891644386565397192109969172312951497857248082599902149933574966780607756349369721183154470609829741388496891117221253817027115252178862914081090396709579644428241843308553068650117170472868079170215306944902454417370177110351023821123384693100756238118634456223911061269572179695609107217906079136315292048135137424311893047410886844862202250584016463191329886134025671846196664624942164712519071307095158992752257681961325972391794245262880029807265525355864389354773588906714623643648303564848843181158652258391912083331533933174392005991703253127270874394849562233097001947921453744524655164397585200942955195625615423948029122563704915898486705271617495383560540753308307969336380452523014760550047721638612084873321289749187701116240492815281838422893762353124538351300822816187938423809341720128241921474963212167556567830577830555506855033364068316261643537646743743208549342417089697999273759257514531046121364150810633712046663506136566736288256321751061205155578826265820974559573883593172031743371060386945393189825265358134918020639330256101155735967310089702536284653200621644419101349332324003276390796606358794735760167451375957476588769465977771676548384620606573699243974565008584910834743367809888452830068572700539608647715268864393305623151995428016257990162453513600877302721762292674731882909751197124480639078232184364296523628664070177637269190855320263546459528536326095990035293920414003869582438948862184515838348070971764548966726800263112307271437845257703817519025871121334634750815731050661225834329523976192391659433551102116195117166899397673247312400702595496297448864770779149576433549080098909431500696053563670809597675654775215860233247063297925268512861135359149629415142795347861040767829167637913242365822159455284569981467452904060329590079249200840466663912694741019883412866616146849939822802820158139273502275081507564416223095845461341441343173609034043702437916345434568541961064742413767769316650917864155710929942982866285702900243045326198958651081867033791008025646906931203979966260934500015305815159509562729667963528257129351067714296748810855505638448944952452326104141768866714398791180094066419874203155917761215021602206082851240353761251374551181098721094235359306699123881773003865678817766857931541652198505144039918162512086294299891722316348317104360340891123745891989853631216714154528186392343233584192012778415307121434517669554516824575162734654285498733144743610276467217174775046162900806068671376285950690582374650855995511756357612910133555346817971165181824090237559914206700923723512601292791899339358050750941321748740322216777557796120959796004884253480508675595180580142298393459184735181542529588271777921209547490463894182072452925876619164276102776847609616485974629816089581764964480379835255071503876469274286972077577926806074093910443941413793552941656292486304482078803462834663472225170708497832884380389441829246480226337181572870746398647652795104463547713019865611869711764298913088497415950690319185204343245428664129182272888521620017006897422212031529369559460402206152135045979771100428887732237678160965000875161061165566021303973142807505316405531395207531829872538721430661169438793190588560896157075351415472625411518762842520856276417053322072772162299454020200474472980135574329133420763062128793156685866919038608533406491969148330114540624237834111163517553272599336279374470242946447364804422414967835029339310275472261641593708272496396913255855304641878935650213802331180487595207478413046022667247300894754661648785595787417147388415321429958719875735305456979455644378577488347674546706152359504728389334555287398715597920956841215813277744241719362615865489812912305819818544217095446566126846816355164436589988310088995966435477604160335438381814002426192818144805311858863319449640611865508422866045952144667844703619178882103815557688532713430416496648120541110708985281094948946563895753889157928515838407940074587395590357102934632562495931936360936810176449515883727550686260040336000176843489406611684950798238909855983674201764593346922121814585119710124631817913640192024352792925674341574722136745954336619608057685783759241593775649389337054140689251963926348417312147008401089990448685769818763016906747627835888439173662713159772406429756686900146609880206578205458315716742978320610461371465250493744371729783302111167525057337125708854381352924720737245467153951245170220245926034874069396136283964075227896739447416511251301046222072328325679731602578128696815349091692143250725636883318651417327161897593137415177064775278606393259923892633802724949277071493939375728433369089322629597028527406311602291676612731560592346936374343641481483270844677687503078637830311117109500431039727694629433166566845850511152961587276765872540236151087989692662335571303489073554022555535026674184753598948347152071772280408285160108615381069080587524142253954957693177146056309552421769699416403526053981068464734965118914857696305901101004082202013253288892300736409694052807595237321026838190443401103529765850439652967014242334599939577941481482894245097911304962839068016689682722389536495427490859838859284480855070565117229985732802675669688639450739221543559017661446629134600113333172815286204905590553994881392814306352670222673433120658436085116627303528927021319226618407856001115096649676544469897979625492151855553181653160710893687158528120267613270211737140076874049455534971796825751761120323394592271537066784753519499892918232239434754673603941556138446960360193162952447119534842529600926478316286403738124551655988841577428661918005288726411538930770056421541622770623033295026688132855697814938013942466620114285268423719063711431269484136342643552272792622734807574920248688431535582559111342398346498089594570117749217276620440722608390754848896727203393172684836916022816330207037320973421540648936534468407326258837272082306777474980524244557417769722523395260443316671487692506362348747697746884373594327692662732068122091750306352036099353798211949928611389837555087860572938462523756421102531304391208403685698775391072768985940661765484522825254304059901257934416828537089409047733647135514600037508878743038039391111443880140610685419693851564866297635906842577658753318142809794023852262596470922910548130986103127815942952663960611606722130629374282730402003352091001612978589582877490490557592345734156033710769713527345619936960513960404138796409348813776785727916549145240832434885142715726278838489552631872325338147091361598293141285150020059787808855506894207511879195808013640340072503442314625660835614621369119171170010763256967200168264391608676255295813339825766356255259420766781670550544786189478890408603334433135106122820089760713348091173180518026728577320201360343578948245424365113583135995277316486672585047114502268619862479891209577238419644336740028356603647847218553248034964412916238178033879917926212632327060747964012393484659622305276637476276038595984323509393770077734087095735202295785479641204024448107907053212327254318308745979441847305901427171456462959496378932995975264763425624204152791652141206594215391420651852614754006163669622272775951300245084880607747554844761460356233798374281333111036056285639838447634490320506789159460239202223142640269994209226406568515878578992689344414241611554700459872188883776271142430283067631420270321072379200042361378799935075278222220677406054602833893905113729330477998718438390865720551958919148278326516702935624042885270308393191859494331730868522982059254924676436591194078168542537854937060571964261283196019432935897981706156480542590215924496319855964265139034846433159191596556946972986783079791228846510374363449197546726042181369801096955713621634389031931944320647906714975031769095580581874766414291321515693018445004253397388923207255067630211078813856365870018753065419838468225273071240571038313387469627707535642086471403366549133933451682206063379124697439344861804334989814194950076234260315960673840392088455901168317318614459172324525706357573764702670385425176866946444691356588455570060229011665059739465110303997255102006025048783080230149803603920495937807628442150418766377065596841771387710063650680727555693674409519356009853751143362042308043582387437477707023076702314687700835986842881640456503134730891252440022194455159951775546814993275439849860675551459652829282160245600963915593123852692146077657198430345688964357364407159853738020762997971687616669847488774416984711597829947056184407431591070824437482595183818063750529778767192912977165613354522999808438832895369367935264659090596393171922311093544729471007933751163445500104598491342227386426334485789012427604939730566916950867217646799861731025997207369846378475845935076510195665940311154924496048531247229160115607798988301541106161655535052677696411928706254854075747709210623282140293621647595309643197088137881547417955118242787477390705200111367739524012410721235369490948268658133869389170622131217312872481344152946603234821023970477768095625534017440049741695875986676305325187807708568302560729812709850075674869858388089645316398058824355059691892958764259824942287497360717229439564335547016281955053704143169682231614237882064755811116835975347789731760595744563396487009687126950264885203054883314927826292918427606413039233895573761149507742156775489216873362866862472758235428621445218273452276629754391265885401432181173545769230878299749605337278378788019679153217514196334090612263550459361760151796588116079259598091353316923528298501658866810892799473682282079613097471629793909476780410865650873306716387201311326283118496385950244754568683600908721893005213689206692883186038923061654602687243914752916902488949147089352285557244422388122226609298918544749677026063951765980430454184758744237597307500074682690606976055583035783814686797784309249843853262833314230189662487078583829936257164559033077348928750385543563887331344211441739258074205742731059173723614838049696915078403786666354360297204982768901718931184291253838960639422967905424323102040553790470713844269259594124662886650979841824065287222479698538302371289281262878380072765755082197071591580271093538567979572212448763791940425387500517392451316418783311868050406131081561179699592121386736487880299320835018411446494957307160709450287769452719947294571840175918731279991405069408851400920828714205582853867201600189434524972550095624556675516266058779671886886237281273582435248924842242338343800387799005683606378748859889353014595604898023652329358430594360797154597972669445922295893577294260836347417669307240569464161130612556591664778501721310747919469668111997473951706074450189560386864680375609066627379474182437287780423329738592418003290360369170567116092570719959870599918578180712112308590157983048928330772459321953718200277358499132986608375255610438557228427601905774502912206841238007176444162816936345032385192313982417395961601785792857840145874503311164770499400743480223575726848860725557344590582795581376064533617329348619851330409027431498609261346040313139774615053352662628272657450143426116513457390547272444919574121720106793519763259910617730893724608185912570886369800674629043643772035900316420401367165377781541162629262997087492219904172305340650870342320973672745119907365802866910997034783663078644435349663510079647076416110018466234404970410517348358431812281311841418108282532878090129634158965446775076423672087096158554907677605546042220959179177224190177568488717714812070630131845639569293134110692210000304773622627205955732203236386561830127397891659447188128895322076161497530424059193364088168915831699585490652242489557708863471593619658789794964713913781146823165743057961252755705142652367336710416112768048488772174245683040834440779638745640563031966396800217841853611163343658927631197148217081914638521138613532129919020752444605566409697278960751559722259999330086402766670209051148415069313875122823922383185599066856016259289307056234803214009778273578950133814404278875955280841379180190686603134905159504490204613217257341707174015899145353639254831489658762306956876978732424579411175830598058271144810888082710278776344686110437563636217353336283359938826774166850799617614154604720427868728639583106392172107226376508275878160034039433355186054343724294956740316385453330874403386774536507804481023132297684563073357190902785565218591600553420121214328819786806642952525704356173281176434533176536859252860882399944038087547283758911763054268206073277398959466726844554672863414014989211226072594623218183556475747949851436569865101749673878445973012310071870064395314560774563298857014885660311183253559817152024778764067647276202116228859474565844605079623662684559195414419047303804274837185581015313947926915340863714911336583319443306068186963591833493513956739370883278697417572651335179347661161968639852841919130683220348245337969661856428647605250046334671785224442332613349532310576152519479118173182520517264672257779078298378271748780376784869723098459756584905242008325085669303266444501635538730944917895317438235741274922743826765665398624657328617870908581991756402316869251630463026595045245887333628460477682422622377506989342942263071491464349007794296886969220831642457311782840070825926297103695947487659625427021072316186475146149861182796460813829326469568404353432825233454383745910792180667081038173553089738267962878251496781258301602448947484329037332187977824370413784000110261313445727139410059595882889332745350933318057070021359865991737334689932567570907155469919187374279356379722213736890273586802067500087707433733916427233995581492945644976964933012082559239800181365978419529453782355879300025565996482662265806265526204669274079103968806130665866570909624052757721381204135098514392780711284596014014021866521629900806928222182755020797575347873409850302850963780679857915923162378701432577034019534052903073145914271526139148935485911244437192250019799280450028780280795572548420327657915046063471972464583759644049233778094985283413691574853474158691239235689586193647644652408370651439138455577772423277080926090467084905831564674160886678635586552183561510193096887979991727181172670731817950301402140022808785990504550103205442716430525160213001987116145512620893852205089518034991962599596277189121710050549543840576212669808519272498317668207032429489742886608884972086242773219179006925801171016439704239238974206351466600728431398036788265672362381159630301862895695634965849253913049433003414876955655317918755767486819537780291031472244130669294912077770573939355368828498097327865275920471809594119515405223763200379358461252796919833201567939766649015509480476586778513988356237218928689183608688324898668763776921844009749737157125781499504387745748465667103562053375386852777049780087422740334782214522254610054968687812928911989262324604579757121083297427277984857080696041141519158718345793469848663198282633291615933039225734090038234617099862703984228920531467589773438759319882772000915854670517943779456652094491619058370341221563818423908418174030478593067613622674335529202684536156719969318632581502142814564588252126733065547162773634532745754593008834224131293193948164206585801563431373068860362874520643065629476465145599808401234315682616996047585328072450001102752143299241394340873872198527288802089730343577130428906863477331874450876557139386617657530200428526899886901208976771994246880961602343301840318235676433984990433217323477029381454564800325958669143039448898215940112612859125106596507500787278466798426368925320198972722208761456537441189194348166618004720340872461032623018009236116620080746643950250345164391047728387474607552512494352546249108307132687609028663652861336094627486330344017419579591880435371328661462092197008594561216131596086386566368143192921221372650596597590747939568492489841719925123937277544632415378062682902892952170726080650718624330205473768272906103238623566044309327831982796550212441715185979969648873253420698067966068783833566045499153980399646775753834359839931711450225231949880356615104172942429506864485379356913122584250823332805197355309847530324659897495835404393785302935385388165724630736803259749710356110114320396409847778511133109614775434708308480015852583100284010255792748769662467973449142335926594015110123760937975110585790097581997901160765401597566338610255272093833363380240063932554973879253373559640585636162631765535816915629287321455023827156975187117582154739667047596314392413901295518419498357572904847838642168216543503486208604433343599725322061666161777220736383506361318684791223041207735631532197750611033026446611099437954199645198332630240051459640889114976499019896833162868071502426517316238744647112529409213651091128464275298045437690390269334695617594455663817917788385942645842904558263028290772099722159307261556201465322686532326471576183849521084451703408718707289580773241616208416895008355738999796367906149474635931874720886495153927185050055281680252206218215770079552979679759214767190761692911456934022221418344708664707525634395623014511148505552018468920165847089814725199623169820043397542311981278772945876721070755317345976211266999910482121725364349011035998310541603464833334107114517125062063019128335240401281934289055042471708125188591860718629757163046411388909383756685651248862700351911938598331431056554334129952232524970110088460010010430645344229982004091076655529075029963988436531647446510330538984895469850434967719725801089555527728597708432720311137800998022331041148981193273236430797503666716190355811700649166392439804095187457543211159614229403191160649802841432187337081381220497484358235011293948126782969572693571826801945487650389235289196527868484416420103663340608582034825555448171258290190065349348338374394217539698935713118827978836063437101949807517981021660877137777765346487360218006588124229581747365469585781985867984606347217551287287817937146907365697673758464555656720635626385519729226424012900817456427519711040594244302989699797644499339594488789306989160027880513599318581431349211737470371831113317356768254366938563715230717823289309416763425968376807587372178490667194190577076727523575691744531838314179418136575437442189719936697211050620238583802000422034959132674433461231938789707414296456445753449499835631053972749222345407231077180531617981979808568808865789601723861723235705056695914827588078843861072629298808664351802064363424182583736397212924683936349975556635017954471948242058456888247047866765921333510054767104358230294498495880424831829275638750165365661828613362459949292217110885209784882696827478347976919549919678304655453821859644292227227538956445802764948933120720014575832494136138437207266674124132689528243957419827583735987038449455519933577920825054717716368168664158628101990026942922828362823115439301355315847161006269152136943361075237218141149185585591573872620464536113481019275413713410813360655983343557112123523527392095579672205071585990223019957511580408750647798364050282923710435781780035553502738113400246342367357266662601667304774384572438933176732644637763073040873819198189671620450411623861718018544659155073853979268997185946709763819087113152127452775378578837782114502519806690354846546614424718569924927307158336743120989562402545425465912393893179526866607563239544297273515938481441918967633026281434340665343098580524411385559941138099821474416363526614994823669290172019092199391198224391172383617662413104008330931197179276010322795006721358205812573314402822889146003490087029144121275689783108076339095171073894964419091522974974156984745881017549409320696641466192342001395732689654096646191299798575928645080104001678104844693556595061419090836428939846417521581651408082413638995906536320359019118936662077223289253740568671063052032024012264060570914292632167505609625607148040494145009277527609562560396848176653333719024256630809341951349446355666959542074661387453059444452624301473536992442087307844724465172681024779015731414135244362608026269338857242335351177852261745844308746567256845171762464421656605989734436718628620333412516921151254592077854051670655430546744138968641834837496607707481978353765729585791827900604925902850790509350498042366448433232466937668138087750955532914261418076436507527275038481154172823494661627667099456016702704054477745567437085430152694144698395743845355356979655983673082376160179674974143106730785183663505090394738354867879900379307891061483483004313281338092487607648762428642980589296730385696422732716176493497799391102375252096792788002299076511841093958392695133340792862019777115900734089875126344546888699626841398226120045094076177511810661304454792299723223287627381976632397902321763734134027076677747938474573364017376390591300091242936131107917388276754881204027409800260193266414397299779470934363782689291107239864040196575511212675194610220268219585881886613880950165423774370700987782738114184665057946853996758044001660549713059437231858101336361430546922965335347049151176008333618356281925627395481335420677437395994355159930113532480827734861002078909438970828885059207142359895786435770443476470386860939673212197901220524127620461980955114389238248058762722724090943672469160288309458431577347012717049771199122920454586716064051854414159708122982125427202334067460462283201197278382718020262691419716009084804018504180183114727159082284005533576720929281442519076110581467304178742371194546308194080016398014118556663206741403756155177534722374578338171062095484320404386607800488467192174287461372592459486870525312060662806057704944091622208391626634847775608761484064706872939070110253439556195904950079407817785979082820312031020650337475141736478067681785169332751693260855323441538847618544595837930568942347934006497336130078472282051919822398636349835113711297824537947951696788670729970206544443351582004221033431620216935672902130356513731512058796225551624517842775537544512404383345633145988272450313727556683151282426766864038355710660458483590317872922100566192449329381248754310564431301130921049508715370384362868361468083636484381364291860076896246734242960818353198980301741267022876366862016183898926359399190642758532901841404965532406503393599533952824574917907770988932179377979521955826178122443008987859626151165978500890291240559468198505450713014302087318741541865908557831817782368910824437958980155256501156857763168588025101002747894448536117703228286224565513554756382148303211746926486066628320591203551110330930801942460554515656402125826226711694363235590055742864428221094503928083436198806994841320961920048722334979200699213386097636773579684944937920223886059219208584067718023379937708651087080347480009595625336796691476746569794025272924236140287921795510870680560129162811883891494431037071017294264066153425386691232345077689708216257666842780042549626576520954735211484370436996882189177418514678064762036428423962881321270246460120272422606055223889257187020054775868465037316071946142911262131655344093699150067985539085963760173950047683470493847960403203999810292622962551526623034136558128404269181961664696614924962821035049045550986703610997594268691787350749013127887402638638542936539029461913434813684749058598187604537943468013792112230059333659254935181581371954176667586607967167517614028141401413162486013481062777883129076287728141439214903440935717697176145232749847969169166423390187282278712318537808925580047061974478740282160298854933905930673079694045466710010368183446404838169248735809055733472317358494310180587348687411243686678709280291132954481922021203232028408908974670353517487512721883266993170358850375485999908213186223610636467453690871849229159921979684636587460018067997676453662365902810770957712446986535163562826094573780073492102830979365530833171319786577899089269718791111688020076643144236201857259974452478115969607749917365831330625564868920196997341826165498510313232046596472117021977129005756797269245462558184615478555673567908638293016982466880503510201700463849317642357126827241763374968750065181320910911059359510490579808229644824145589946802976167273500130867634307941213600046531174569628622261435985647106173718465321221164109351698579107971117020593096951673985666282373561471551582950057114449863602493299950730851501430653647134351043845954106909595797354975502762331937182744250873292785104676030813714102636969409482360949376304948776556773941574218977626602792541442140247467496613084161956060694417451731326922103462629169218482529969741128730677235996684367609933833382123474225396511568467477307559216993732285357730660079445561112205570912897396564360660054704392804366679926942827508396106758612447379869950944973740803615395523575393262707579899577929628793923521891409832171769617095862062659527804454931575911473138163418714566591210945818173238779058021812774850287050968160933400040105974745090939677652937530049152223357078491454994882796597935877229973387859648543600200862921507774228217406178369156250664278218286117154441639310471597324586542088007858556000977862142430306446675011304377456830149165681866105169072143283786088482657750510848862572795795736615450948360594672628356091736902691694222522449426434171382466699909423424535853131234208029965963720635035275626997035490314313186298209326160704770453333253302841636020076281720846512202558572708749844244367512621134883892203632882731094166515838212365472402952466086541405863657640312388559355836927732926903418897667241866250270213493330536648119023784698527757809326035469224563923629295199550781248224616392313139669334924286785998077385029717522686510518257899079459532134158929971774418217704380213185045494980130747917452972354635132214318283403991138176172097538705424831199485550272988837766376932007860658544465094821728738445269114256356159091820974162675555317132212822235801696341042427876680755068333973230125754750458646280887428362843833686350573152496024517996262906528906647095030131550946305416276173557580858740127789427243089469762478885848194568477872298393020383885496559006610094754347172663273517517166093728155403638551999879896803466984272740174632550544235847150199598018018570738430096755907243496896225997930514468054574801903688379941302063915348078497559423598629194056005865300263219784258178893129533757024796133876912082906438122265323143385953778021239480646208673976449868739455037001283718750150265028058292499164108122409374594939232419070484822775002070411543433035911829204642926183065512861217436729294182124065419289545482581783231526248494470199296635854121338216860908247412882166014223217148444816965632546667478880426904715923219415607845463285395721287510254654650848343693706798803974963611191808497690322616718650595480564016663056229188945869426213229325947869302379193702394981465327390513452550834589677889525386093196992328467503010223582894925217402030268093012480363089414575109863019916325918005471794974300517374883961139692405689605012181491713101983831650191604932407580425091632824128459199803279919569668773884294956885704239595255924319888327781894509288243735625311152917586730355720223882391342416589469959976128828840804141654605972178071410222543522204374131946579413271833687624479721466612270121427458977853786419019700138472326329774793071431423260013382192665032245183495308761660537342371622581496038379500262184922066591108338511241758143470716551118212649509980546020918987452267296362740391120761100418781169232042437312536201629698810096951736980354917955230263732597043540170025119830577095031524665427109214582521474906580307018430660016709242894657728278606058432934622943600156696689445608699179395357843264478447831420376919492253589825744979496287524266704813272439904655840686404592659445015800777242570890270709884233942664757450582655360459105469096596527765841510117198954380356220050687153805428209536326669061794875241334596786995779689597842432566423032395321224274424380055903856139102832244502885178373339139042491130504792333258777050963026860831229800351195772357292598453050898762277839695851259125954998280563668365948162134103892631609437453263415994680778711509541427823199412979693272951911794471553743881857253714090653061923391734257894028426547692308075328698208045729921440845874933482469777416171763624770540216095712407958309733261761634719115966591787470803628942854762503301232456676226599121459611861670421232003626531738325760848911750422125966476683035150352356713298560358273807571672637693288397643629169736576517718647378879920562432083188920538521343681066647150064187327632285570743797677923108255997342940539407929739079648019139439390776243421779407182106608787683189934384298430444667378749591334101699681738926127138202374788191025354633521951998922395209817931835122761423306451138647872851422532315092988210378050474984675875287641822427589509784686183220792120354177397195523921870422955585025626084685576556611970082051752301919784156118353632613104002254582401806697322886031590939776699988394764528564409311369633050441170416996693998480596935143539958668228543727265095740822052523601187425645661961395078147571596050798809928953578850527270347391382028377292210550534966700475553460671333018535629901420125335366602803724889126272852640663452553768255097209000020990719965369607045858858395655282578737715498920156245885131798708251867278332913587913836751655282651457688016643002368946766912494366237171939072652131785283617335552271670054359677609272966278775796363544524995446689354149467658784011772003691390545585826272533156647063028853551715398680772702362841074445948402511785531601900884882044895867439105977634946214900422739040079686147536493792015356376271154384758025026600559315575123301407607672552107707604579128397543575079249813921190417985940795672646357038093922042276138726692706750705921988508738715053958851234463559985457481616513050925444454609491647643625193217126615054575111971531797308901385590508148257745105080142335900666432008080286493234467447562984682633400596347596162564464552821597016470524723917166723689423783252438885741544504631945891261506071531815438778758900266746615368728972379375496728578010187310270202787763946325765181405729658286571649285794878059426357964889953174810435606994301860454347153384642050837792070302716140287031136619728483642999573403037541519841228208166453883711730092822216325537169855189391188063785180685199221427320328514101552010922597755657181617133704622664014245727250589937214417067895873178181468162192249949372081239566218943200919902837609889404180489116842154634716392593705430389419329847532061452547905220873513289057037830799672221519735579673613864816283463476568961559841650473283482960671121802158560586637985314961188270701210813364091828630828018920052563341220312377883703466747448277104154806166004017013749350358031491511951182526523270344783645563318254082072653035057299433486519354625235546740779158044406400341706413033529061883888694943896087028455420970371952551599963633543131374131434777749925777535662790350719868098851018912579773526983241728736006462137360483163916657913711327938869728043684624187708392080277966025621030811449806707035593416179969114343165826166633781036949867852008138029683390545865981770463332876163390661657972791465705031192741682057887398423022491929326004063300583155491054015463357571505895071559426614163081119129336298043205914542920641190044753908242914026232924449507827784148487504431912455537491529113464084986086991970655828607518876561171846901126349600340462872769901176923438021202308307651718665568140961148698915246637881633435262985564958037875341999764381593952067942053050258615504638052412936760091863194030564738565161874325282773364089958934093568549756937134363535754277625288356320086021376704995000906768365020227273011201111359513935583656061350545494199214289577213281228771286708605481403214131120420450615991103108162188961330762272657563321225570130292336941813371065289653411436244870992361366943128359007911599026818470214451029119810079807255514002860167407671545676082911860318669790537586083445974991781147069447254448437714914055420410883492717306689266021810324770504054271186962127392803557223647243760012518050392192163541108439061349782130317080256928986781921999850382118036867031136953982962620783599518655383245630587738284038067136881846314154013769027416919841149044806349622352959108413175376949203659669602455679265827304265290562164603635697111229080898428485208089000702845801071353299515425785026114189266605996234331743339489740748502860868029116545398799713605558704311163112893114936891349498971869101156381203762268136990261644691497670880167817145083450999165173228598491621230377108261299978279267285265204363615992083466175488852170986704439283115425552216635469627504042885466225503983314661020863826385844944605630215763162378603037562122583204329755366595029900216086745563350652863114525337785622268960326067783707213313412213520874355738432566309196986132058959477430617853058602936985894185498722479249588508443177922473010128969029800726077473863236000986851560174135187120197959865585060890369876031644348978767242875941156026378982352406850412329824564203894380583908755290457210768594877592626167484505997608048174355699504657205572662786886969507359998152481366836648396896221037257763091568898657251941853327055892884521116162588148969421812616094903991403271083141606160158512796303565972011254599638318520242362290685245623956436512062621740828995269870614198557099275776151294779898777500336700535149548593038318968157970774723908126012806978354548245410365971679866098507803496308634231530317181926171775662660474672836503086563060601781394293000876462222575238711347413295814742404489812460412359836940762466676975748871875007237313147431951890680312624420029237173524159705808846535171764352818845237431898525860398117892116582506849172143775044132208433727280795865654521658787523977842637271431831821521549103805487473712624474561548917917916986372677658679996353749959737325512884636108545852536648600570034976855429680887243560326574756767074536186734297821369963107602693956370772762703756697941894358117834345420826644167518757904087740274983111880299799119231686377183128913365939548099436364414508762102600242834921156720096882170828362132779353173548655361829161739490692781425251227466743416334602595741223635574573010356775409308510686790915126894803165976273537586897098250995292663003897128823781753934400422412832049267924350689879982114076106806868421778004449893457238430267523870727739475872108633696274241388660522856139378437472308308908548812757780901806181218006237899860644543203060250038043292295489475496141458521960383652434972115526391567468627998699325067315916032616973582003786490796842699908388492824028988629983789641623575143142692971370349911407899175459844479188877414959099199829990170339057335997772235421577684010873225023372368137113544215959254034048020684534159343335514685149136042553481048436464088167367712226727750346772232837172525412563942824228811228378399163333808703794427795638678114800616021724363899612730409367978837036979957668320592966557472792255022996084891684474282178788121229036751187161486903478647493704639513330201660170039951687116347395659040532288823885288654425220158822155186960967922416367451136813392337230951261212992553390987259963358917433995537720815731722773306643209716577925919571061075059769730430503980480373904820204999966472956563160804319136606306844749649731275610733088241872501878551662914070203896424112743157891408095815546006851357636363084019500792185234908035770187837901239055334678047183180847606103396323408765184398792752493719163547762291907379587964684182746448854200906515186900775649148236421346884542986144568630523236186869796769247070919208472998306890807673038037381335950000414431711973131692015424208097647991426941006606876837696256278775833797102341359227397565860290956732606640015172434368867085118449428457073843262863124673907749085612107722150357724169510673924948332348287347171632069132830503217179743601662864711554870787286327260927238553936111516023905021617619720977698720244185330488749405832938001631018700290414594836739872682925821432826548158073141009721709747819517042664692328607212881715211644664514255876324328084472638509227253014228892672990261763021422057786652325644713879467845927569168763377866764462001741091547675348743886865931701380787510084046937262253887575246645080417626227798550448641407469078303502986137387332641540116195250517902714363467669258649639755892552903126436746709873984997111433145050210233690892167087697801216611685123635406235321174016229598226421774803033461834031476652948470387009124667014823841555155039285935609223561235925483418116456731055041251194532262885457276557953138599400869022693518542287262797107657635523549686922432960626317930509904621919636531435300650436463585033045008128845946677130096680433401831630629385155002806283013657727427761738811237243763839354410963408620453938163426416660420047071048090613500162632909545757199439841266261500130150076571380097033195670800192587405879836871222484021105693466280302411343484395195963871211528858933212551508009535694329672990834121953595300913605449299104435466932863714793237244615766545720056455117101750885092635969380667183704045060970794202518613103447153395820786781089151208027734731184544586928511251979478759612363310464960350371580716824629790120695831035457429185577614007753245557230026887240431958542649796551394824812032296935540787802482889164630280411319852264726916359491663171284827011045336679374864542168617080533801621558857367036315279730047331812541174130835240742130859868071755795124636426359012283344892530756743864025388039330751177635419007045051262535835229178975360627907665790048228375927813814895193796134716141508875493516550734617657469670989562690595790239550171417167640560145721794472092271763293335351012128234635755973657326633079320143348168064511512954366966072587131952563838444701409024887546523310876461257014757811731797939838985941095804985336484174549864990787837931580509015456389811349503597264279762678462510523345431147432656889887838727269517097539624886063014274368702195589984621370232193539943877811523083923824535991308188970350577989089776935638615269014924048333709346188199850538374517404279615119662801842954626117962871805031655071190541658765239614129976903311807969282363758216392618571371792132616811642211128687539933181998924619941941664645738566624053647812969966544767882335137614346863909253846204025083146577399269177678760886371421358545135420166020785662927546405133385566335928118354288189284431112719517312452520048073324376268781638241013247077425548021603658637323114293493575899596834088435868871238169519328610428337079266242725622762010244822251620601325732776244560213358847981654630653077053309768641451728114212742918096745907551031731427415427334207558044772314906622343847068719079619831922172881098958752888131513145201998491468085265311016642773497280489081579189541360106835142524552761118077593003711987334029110697476259095781665840787215848624494087523418486567753956348101478361298690818059166980455181581424576389563930886787234604065987771813519225933704119231075094779471029617519259443502335126029167711457974135614485383900642687127170082418085830757889570346178518801826339617426708251201857566915032944877260869286941830138311881996262346188965601097213106380167774169773067098187573386757160953943109508571091482969450544339062336497025365386410300009276313025569286365895453007362559528732776214252086529480545951028228569694575921510682368278004558202873266887834567455923439270919157872854730398334455718597626937271528820261778050855381381519123883472113905048386269587954911098635904323429255222878783387366920755989621131452947771278833246880731946466503429132675119708768955362376137448079720766363601319194321472933776586553994335054471716467722384654964120387025173083982944549709547814474600108437510201794857197084814150167342395272660792160162967962237204967128001611084283495020559491120347797539409424497219831760783336631110798633478519901335985535299183527877928193761478130989998661353525099383472039672964277507477114838582436850568261182079126530968754571076423979061292894679970837565975970451622524513742980994114537501870547319411703942800792699378669785095025260612264226121008609821189485904020790398198005320430270791165335728712174336884225425833137468973023652595073143806217824978226148014229660658411085359586423529120447505934643178963885997324938030794822997648282706454499026212650670173899924153082019860548592566349742771155722828241280445928733727949654703336223989952141373788726365778294904997220041353603911285729386195236614901346169286926254012160888139560896800776761255698016362449622123358117343768915625592172323003985449990442386219315079140158289017384232546659732828705472045242027833316582965597455418060573460618881021922189842060050734606232834239102922763166351890494797497653093728495116720050093432952862926441077274061180813805535535700576032027877836710087648023460881078658595299452938137141178029474856842959265981086588803109111955592978613143125723001605974777572893173662893476659924008406411371119830987213081630343545389980480452092099702013845375474205802171951197881310693067061966352209896499379675054910877615426292292852321911301847292849114298121480297198865677638637620444496933925766626622073806579023699349753434264924707867941871932362039993043727869213183687099421371153551936128938210349859792850998784325912791865300608815811886085946888624053552974766532666322368947460137570811912618346627070882818332207213522997227536793368455960867111465444632762573596889244122358904612054304467899041146797451478616270781412422521455515228853427037616852713491097700217972744268810991152658800829948001963615325120930440065895082399797364001106789639769882808630483501933458316255405371364139372651334507044203639682510137033725193129313390033448845297694111295606904913292991206771782914617972279060187289230715371949331749219194305103619817680544516557608753243946891842321446808683123522519172212722593717358511043274437802935213852220005108591862518897441700802726621630937709998527307656263392260170219080210197922424355491102030857126897295123377735159604120872281385042381396333883600408241806269365950770515830673301651292323758500131489933934063319160542491126560349757828086047165746569178220519010081618194281614262184941436113574386994704593712827137002952520710562311619976128394871009615171369910030618083624230943958028929975784164740531552896230442005064968344216804214695284692769512346103835520667776238658959606101921424242123126643478367242709272347889474810712968711612918777966058635350504192230183734813268228372665701287043909922087554035289134782812640561208453867948999015683604944686862037708163043703171829402230223781253844207094199312232997326696764484970811365935391462956692807237654492184190566082638952198385262469872144422429151052535273003278437100225595404164354759171688481676229576477223285743143918004709397757524414088576257815970118719381095260756006861437041441246132130444522649220857605130641989567156728509072350019016859950562299986956961815845060263339433491919973862196940905512136155604699005810861875865961805436809675461552548669460777895485698496291680492276523182759083107901116238036301086375742835547184570558644727026973956127868057128512058890373913076276177248588354716305306948298329745957900974885534370970383281196012123125500082607814414265490902671020599977149773662355855752100176048088709405105690688634253714499136836080480698733802182677738418782973108306449816489249564658608147650419428455661683688249299464949530492371086107606496066887492666581632931241372535827327104946622581003189747244295055789204716346121245768843491824500928933865705639376630864967573333899353207943917025161469359337199056167705480782971713221547440440346999530199743569311965065894153895671653477063967888000784549558506503123732607273324822221037513416527374795862053546019109689827980631715352556142121576050837145676626792374795906838600824556472804763286991158059760764562318978780571621822833290387705697917158423578253062023994123142987772977863097573694983310181097670166532234393682931070741127373574018929341846109393345293550248389920997200219499546473196944078672387810263375918102676297939729552699041015788197042899023636532549121717078580090739265041564864576049581747226352999890638119442125565351015149443011826600659570879242616536446205954456396087239253097289590115339358937628690844937458024566876742872621207802767962750885877036310016349615233766838406040576162408262375099337364060327392617561460541386321429389228579164205852158403428284620741447086348445324894249832754205520205145574009137363889943642586165659928467166125182704535636414598252106036453193366442508098651763774523634040274980711833159568193404422890059662061341466937664320970811423603956128413085477697065695756252575183746605254851267219938097138843218846288899816675312551767886972725084660134370835032613259955128411261684804074702648766125344440580524882025649614295480297023430417071856276566811202068697301837794315610947124380268273510966416312267360462276970641076062109898230253956786851159314618789224703883495908776935150712586829349782326091428596286583666479438598739540012117903744330878346633170866493126758717123638536705051919657839079083461265379125226361309246329001493409257556266171045202415826727744624139134172829165964591526092477623940494389560584802171437356468911793302108920733717833744750502016316333055266657746335490603132633154187846066317034494481886651451327884580123401968755606958026351947236353852758708563392953123172214902124069209611350395191493529472330806281366736885741568739394007513291444137773903683287622105964872318705931253394338074545620717733328043615960001282548924616915600168039668032486069561693806979690724999992088048131448957260240595423099430707883274027100943151385691104020418557417736821744174396014173892365933664456082104983814465382866903986272357332486612770731508106678877286490147209040606902701369947247480064606405200768091837328530706134494624889760383098979772861061821622066105690733686728377009589340212752196385982224097471474792459359327166091791403623296499690071819785952497717374613474384064008635883657961243806314919747562361704150086569019704458119612107228265848697612324108641587963728726130545237693965502925324744885019120793984364054645074950407839434404079603835871241262433123012522041790021909671340772617720110482444905186798502267039974542949813393151569904451304228160665293352348836561453509554318057102651194693985922792151450842546270779619716375582384255266057939323093078158655502635364712980160501977739602831003518463058882915947769206050674257517045897525187947637812256653880505385453074061807922384638800033545770162716128604080247828480594306343811932402810751024359254378740117434121154998492363863845814463658966633683288364677049263496608981570401640870306861431273569210844689803265787988099063426511817870228271936372103582920005598646220834992208515998844882997455448049416569928430276016243095980814053653201521411504093489188221669457079745116559357831717742739409617550820935537376859551459563064293423915087029723270198792189766116272787687888538363755186073561935736784872765338894474677277001075753428801109140303748657059032738180457529324559487139878652643277394670251901983933483274984732422348754699577467965203764906841451678629444301856069073759508449146671781439203866323232756942095822454525597293241273114375375921989512267217966070795193160030693707344516957946053661411576766091307292021750487069010229781901724236181788608915760198931490006207272926102310468978083793384051098633659906906745639742740964481727604943128937174940957876152044013138679347538563694818530319490738993014445978503838152517877914669229197257287511841698632621703873594994989464056953295719960582306275485668051426301373233297539945027531067691789859821015382340312920933146371627110442049999405065238862172603156879755413635355496527724502086634777966475487264045931486072686651035862536401106434113182163806868014886462660201182207261430284957206400873325290249711098609034207665010823402017046362139942015339598329230201804359637142341398637495764338019898409097923959131181512704289766954069705056293923290252145083364695165005155879949459356350550974178542926641837940279607833699178545303159409769139309444195714373454409712566301186063277209376337758851106948024684068777839674526388159892455428826089473966792443160679867812347518323087213793657130694947748820380941463159888445082137390689528780460596280720314983127695843131328978673988482469415058117933124206973047348053531996326844346232634894349345540418064564619328797938189520547865809935378639610691802329999267963696898104887686272012494466545467884906354989646534310753444091599404995557912845935041335710157605675958716804075030427809209862457108797548660794743694013093913516829822485107711717170219198287958866939101904355241666662248686611779729991157715097581607704651928089190380621083630595973304467088463816611630951009339332216272704931668637127192896227277847206955715258691827864472112358413490070954770289156345644762352735820271040245220703068755981067763845353741956985821655633961684314395078603357495339604549796958530949716327893206057310553987457709360104840031489646723176766186544887787968550240023252212883862257976369720919967480421580391237636542000268218514092536977118164727593987375419572540698838655090540630917726393251753169830672435875867316840812880382560834307971889959700611050915287452934229609979437429348889854619502880223728154552375885464251429596811528048140838545393175392511490411761226242941768837624394859045356665735046122472751818620266798340180005152138456569597768384275324898462299333746692288835177307346875562311216325263312205956627664105452891320260802444554861383850020949308825872990108960819257090659129866549446069792761205506989185450038210358380573305164754549298774655878737849521818377734482736610318211557570463501775881015328992590034315052529697755919851686280173747539124841950436274746226561404407120664114622770941116407116117801312365522882526027879775413252187263859294931630633195218263008032242516335170669496488673748555071594768855938490113588743200231849974194702488261806166533423540955383597108109886457876672888284259193472098361388294867541603599787510960922269581428903570330594766083781122870257354840227809082841307999670005533775190027469409285898835862902778090988087154436690545938940717770167044768809553230558911146772026293616084295672155208169487052339378580414030958676626077895143752585769042032941801631346499740132126958077227271921086449972011843569612011917484615498866951968935362446568768394478684997936892703596884709056345779720677075332121649206399256330147942577330466608762964633634631785503941519692433799420803650030250643706305703875596398099165404984106259188110692886244398833272625143620667779846676416258375427628138876980222943439821342708654367372937586891936662705941170618688825682868137019924361502916298572581189575409085062691500705862569609427745651148420606976532408415459049604653196118232582207804201223969498957029653826854420853184502780820833069303357690041259290429056278909531084465346669718997478018772668020198076567599968405167896729612178231075862044897752921614896609185143987902643970940130830425463454937719684096550180904180073234020436252896886176487962599025574663209363435782168556858390015262881743540824356448186068088294493972387471482029950727649612394280330820898978256160778721557484297687051212838887441612843198730351020337736138561774248686414417733619799487795044705125055528849725862862902976581863101865245581187890929962116104627641969610503655751820670885337867755190974941138039682936140279452920128495825183465785829765554130245798145059247705452319846864435313853088387568128566297508938006138315060738385567642818934676337690853536829518367721382023905016170608010181352117369921757007874184910608565464971363205382636138305692524467922118997719925513413731631097591038322919991597113490630199232243426207702653964525736519966011351070735153350250327664818069613962627308668197913262933662799128257916117230996546992473999305406143284373492710062994118371149537369719161347709367640317862964829589550438633352917341791878682687618718382325284019710206195060067969511277156730723518191914815647568451583759338633513785283821010880859984935990707250860636820167785471968564541263046087513184884682337807632311061719080040189024187654760520053958909394826744978565360257087613838775171325337190977680029293476498901018754583788762307965847445026241387446584774531129791281167783453476313129051773427148986810989378098614475566504423980520343627001663958856305000826405278204018987496509398196964800426968355991568229342122616610257874904963016835469545525297486890357844246152864287975747912732885839403917654406336794859710961795907292905472338422983257856619417439878788898231003123696130337509102293827177357897303968530633970299535671712708043963312872234859665868598822251797887619425464581360581643897097217108312657732885450091376138131617206466921958957651111100810242432987904082367736127957069636244360662361638652063782540810316352206648991526071114145870966239992403004590292612725946920547324674259724998160552326918174264000587769912907948793243394300825192795383265677199142045004173339092556755693161960102076763823119222043359450718095840876378518283313650893652027991571879828660925546059401412953346020458551408276380338835669518907852803797148395454854744168080600094467307390277358098537370666923021424227016417643193538472343864649038703591699014514029848996163813260414114423389027905336720290223859470933750253472907639003966635305075042492497095551480486168034340477092454090413973898381126903698399785546040202471855710907829251413619752350132635003015528382807612931526322766293130531953545737045255745613599026312783412187378595267427747603625118783346227768182267870159769165377796948581008021931311704536130837827388979453854769550853740585436676956954158499781826084827500894940852719925005771896085873403375478138644612574287670309501096810319573944153934669709347476320703938530853444265542368015985037334349992035901470002150678208424014500348433556813747091811994475352620440508620465681988320890370164979666888704454438826681593992372238841429697109305601657634864135688003707431285864866627730970687643612918702875126510538352938981018429079193465642253389257994146472844254020802885775292304330664776127196224018310164888072923934518846431889764118780072373449915505974973860911031730649647183282600146919018429601925196960095451538594905569776186358967608722584113693592279930738097278071074569017604218685133705193254826186836375391233448960490295462462384460891226815240430013844808345438157127781417330303603246233333772818145768967782334979858063332986539440004247262793405942732286093299977470650660041778796339887184878800158680164996120720273723614408973718937769281713134061855864352539281913785238364029100335930854257030226791355219202119577167914194346013980646486423979966429138221181892675780442846434970316330485544878832025424665071968059420955533162465632297189082418306932080996194681694135442448830304887118705046128402616707041640203635334492424215149942890760442873569875716383198398769665396858813387156063373450672674601021464614683629082352957622787450074270005141645839185163661702276812401320611467794097828007302228324162753796529472042678981471524817230534405292368333295278266887230798530614783511761972744353139770924675490400729306654902643328469519427094766434782594960644700127618661652181015268711076954084541988556219147769933568802988412663684340775329215804374206577003313938088913523515900511827972823438111164723174891221436346526860956542349864363452016977713552257281248373739469921128228697741819271187195393069490520351581070278768570248653382640467803848054454294518739308137569061132860005187671092748515608611600701649719095711613661298438007204371496219646097551868148461447637466251575574441877010615099520793727803062824398782586687159279974929594804518715190025037671207695489090252261597240320154906570026089604024437939439868876363348182192847555613361301087876974564987945813376885792666528010253351813450827625613341311875054759564494671393085643743462878510427827791061360083017303461551010448535838480370992031529699096719464013717650416128700003572344068917341971543324753039829838747721932204195870232732254764587148102984415626163970523273398412614515211868372407657117291665475288465919676743742176739648808362318977384411875791328452641308955599322710030640728840951869161230101822977983883305547009776601620179356142950957357185374706844972478384365383112474042033787986925667013326611405943924499632148745584248213627788127335509346332938490826946666674780921650799920120608389267200342441565258605787753282654261398220401944723203593316616822921972355211090508309008874276446368120813064628058251524662246146095554251415435336444837113889546976189284562502047980659290283077949923752915336353026908902966903989253864933157793072444929784157666429004757435465029927985501535276758810051759707627833534660074908409573394431828458893501210861745869002722873387292405181762752832873171717923218983297150702259895283191338548136998286405104221878526505043438778824476445803702427862390159541374482733470378956569074527365133256719083771550971570241364474981313635425268035387541809957921981696635433609972953798925919309363478332272555922401887450117798730182976846419781610356796401362181303685322715520905417859973941817553726746815677354556639414416594890275240517238856573792767407572256309613651514643134241541094817909502072688087402496139990199891304275945989387710586608013655681009518461745919773596570635088620505931860821234716595542611742880457139674252570116369314713824683284839572904540080459897040822725172272466402969821447366603040991742619425307336404136624678992582597756180650770652961717413693866927715254622377571697475743468061760435274670613382783727962377153945571457159924253711761743128205912839930757709559504241271216184732167783453182819540113686843424970064551652243541825772292178346348742542148789380942837777045918795357360844227828649872396087074759326980379368551621278008135757189300305547146065747448804256064576978065468168739258603524269694690168431616022518127520322849565056665745800938558209634264373351135894618150775649024908738086967971545089429363451853346529122039344628003628254433862694389845485649348610067729519965428598415517276424796293844685555014173631477586918574252839608987967464636894172167936204590964054646054215110286040133897639709832759004403793597214012172694403243279167567475192417856330934921381808121196426551343357672219932000622974529504726204822016199566201016525452397718465468414944811710371729264140848472162812545662239925860806197009911705116503440758063183001162429477308633962102920438717258324311576554428089762363989822076946974293695422564866460957914543350957294128761697941160868268486092666791476681696148748542882217935322085649677713929942752449611083131579056664271505220661780443721239828425679183139918800576215608664463570526992620832501053196658765999930067490596533886727428545715659661022534715271586026198559933666247406263795635529155411720996871982166981645478266160362917417516927808883387239090863903791457987641296862881738549274951150075387060158631875439379201867007280415967098445200108058856956105955606276811192805448319439320634962377469915777458144161933725553146951509694093692368378729382037198656177383113060291950695213436446374447860002497521475128743249706332704059681116533496666382209747094080033243233713687460627152968766103451324954748505718215573266883467071208515293722050322051031539657024020296328924827630393369384002261715383898036627071809892629343800236686210713818924399721483481520469234730632809919166553541610849976233510009473386122592201440294096603817207643003023881324948355289521985495371249124294609569042671616720661964331220765388773280726104025052179951354485227378607392850453604943414602612420669305341975708794218318688744989821539133267410415722731295743745832515695385830211760702304442728392311522032477734597716392301195179547139440002230922318267057547434635344668914483133227641979754184404243288114128385147270127642052551745525904448194105379801468721854515729935051483900394773382908307457172668743080387011273326456417321389715177300090164777003455754091471032491383537548238454020020470150957966958085524595435155319040381013405554051116693484466063095117812773995979764015575017619166583431294421578357017920980853321091176881828977029385025324636008158862945455928234425501847628198708682404227482518387667639690234084113655677627700673039909182672092196410342007814484499243167523509431885160356612889819953070445029900912928366404724995146725049424060348194448209271346006918212938392553178830022911058306783547933642094374747436214903070701584163240950503388554016396642865787094573354053353789717497327042305416105476523997174548497084411734749596295638411986291211866277325313234927235848350984658625420441198596304877348750988783626145059036467668331471188693970385117115974152418463054933367195874027515018305625755377223902562102802031861859835227674076045196176506630360318472242239484092175141793636547439285545486614849789327727429054734929419548610120773606531764892959994363633931936782409190498998456291974729292131261049518023252221695430645125052463961948875256080350876544347900809601158937761882347342499676920483238536052525352444757387767540540009063466284074491020319898761051584884344099838530466544455431728353466089854728611973372656054016965754626455629662998185016772815343788121753605034145269207139602331628945950464930447452158191922379302870932973152949522820942228964127183943383546668468579721723196163360680914407971968355350582485537376885913445760201078455972383640708048133636282734273205957713547645269261646039048722880789723604277648555995594259765514628477340537229486828439835501124996350656010860892573340940228978222887015891813713000153568239907570597236344578207292429169171222968480712663934800737168275754958783922011342633778150137138909678378565620434625006556751673170704951396884811843040868258467643749009422484129532150287121393410251525947870868787502648015744052245808381738909830123080182133572673017359860066432262439515374286634716506621871811178275288603463088217605680164874251511797392426990929736813056204045317422775880835023334134266745595761997709845600563645878632301709088219818395597826077483560619185902277213448289645242426943788503453698577886488007155432750788423891773492467313216894428850042690240483940304165878897894558522887785391070675032775825330603339675192126934054506301688458532425182428170057963465074268075795232602071991356792714793243377059030646250497317834491014887537551869309230944541532523780813769353738741285987256648520403546544002386643078391077686742934779592840018197130708386237310270370032653376538069543217626811807289042374802396830199952859097062873716594705463628091994751851986698913047081842157248587067300761736540710026262542334487281978199463951048576016993907542351839405894800556353681964933956871687204810210527176031007782564751660707355839091563975281865221592145759034043274647217846841805608416370464409911258748864825861419927225185231609458711988147801610259957135512888138684225148033986479883328151992248711769781212847459276409528912646935690096646366395448909291891254444253202245574586858684184048906375523721925771523181911242360724281700012617317302653111307391014962125386072978347485849651954046899605407377063808265503286408672101080349932263310960466978112673569784463684607617176427635684325709665709521292816936104204336373926725365846527122106140615896086916282680267484714834006085604167590800867303321642394034184580524583401501705653074777205185943342607550006686747579520203045947304746852527679211446077173643957401813593725913778347351324713868562674024929424113014687953412151735385677837907258713166979366369385711839131759828076148427336868630801955603404307842179516343415913239386359417265643941618189557209796109965127852457497742702830069161378790265466779276940595072245541000926118844634119364755191768056365938571808287657522834932360480181667335644260380341014446828348251508646450964908274609287945335117194805370716106224909073581331249910752882726514966508906464584189594757748136580277657069460139787152714220085198117540590219608101793559701301419778217579087105928608960994834656950410583379804982696643884527086196545977668125509541408136144580864773457740376155023091298068123988735839660996325399083963934005012024825759555074845715857350351814019446630752441387302141464479432351468161802893419955253841150199172156459070946089477608954123012994207627683312746951987843744050145373645380515185725116457141022910306032023774496236683616037120425554704152835813785349393414692126571348981245628465977177332350032371591462849967816052181341101092197851901406340389766438754277239913071206467870897398161296380831883612914574512528125194108174107920977684726193117887676087396835614519936142516497430203271203731796550191667507699005289688971868872539731110276563610677267460778662133726630208892354782226799366469645830057107808570973735351008743290738844518713906411156811965950703385571305519336982504288136334825314333529319155074045818337861256126903798934252857403489621248544394997162287972233364521394744207739277667508546570449256818735745995786647308386626321349042141853394751657602413940301016747835026285578868127505457043463396255807625377836913620475930444758016621625400314216915263649779326196708712601919179081229538685008581249724686311703532983741358954886134959419904000675283511668843937803861817517318392608863836274684687450193336551684251144264947541543696595479921311915144517930110161986633121336724703370804721278823689328661016591353436790391441300716581807123753509606823721717956992275862831609251604429559055676707440141536867169684267099234273135701010071245052775439605211457333253209629701105588081011610717997057510420692906610506789613591334845915374292543472141248328984638625738890736978393919865939409892678775500227891937599815101622957206613848765818993220279218487327472337190076708494120775672000993400392020643286250766426362685746102533502878854362462833254927902244938201221893144887411484936128567283017883135223897484691892626258176440933984311572300035492585851473468692505042035097278241713663236687126551922717152214678862229442130558609852409007105609252917218534669189356921842756222886129727081400886547701947348316834148869726117604805767372782517963680025696209312407918764269297668110902919946211091272607429136111722257603592371937537367369925182282539915742931275892218487057891815575413605897611797432630923144764499687677229809430684657676826753663403023978082908363767732216767555481401628158667765594246535027066165382136014141001593079192155613672479364367415252921491804201073328038763424029820608715110885378775103332214598957352437632156622405223573787226608317746919439183179259103892495776791935682525794436526777242638972709203198729072565079149623090461601822877220129584959982412559954177520286403835009304375535069572622266958847759974606853296707688400833412395507747393281494177205201758607357262723527001054208616859196956326188010193448118567382574131759947902157832176079013538731383963854444083493304055246789000227564765311433753062686857120120765487863953237673779494894529738007074300174096014629782238502446426755889585042907521693597216577338255715450037713449049331876050518034841523056182320310460269729542857207808439441197687061237673133226200171716539999759239170705933077832221577549510074806392098402543569808117530177544232216750401189757063455156674870907767329510332305875551497644429728236861993305834604958774338929342888398046639023309557230538994948452063210474467787963255607389885299541895960711750634365933947701421465915911477977244274884556378878330679492308922518719065513843521568987123078556460518944505708101563430429169600251978595547713931534401823935098035146275467594530057342389002400514771425685808891246462700238641420244290312743831785148354426015243614373076550924419091407135157280388949748534899627044513664340942325236390569255888034242041421115533495466021205714432152484284505078158460779519682566425087143149907468328739554303019233374348350837103305098644290432571103182298313732921986350909511143986537186118639818882586701417168433471848732300674254741666525150482877719785074372602488259566278074517009234484037578559840936430495658055710136975265246214950314395294089793883108639585059654493009168721708462992272319030779373874332199779592901115108368867871752524831741098606299960363589256396081087061343658896546932987017151105790350232785448457417501098464571211137121954174158670160931439146461396176641995580969878288391479826827855715177106512764012405365403170387194672072965393896004484480795399241072334149220127068704378169730581714422981397225695673381574407795390890671395419342558187603933208697289189020775314398381413258886165124876693344388862131848237698389042429995053934800455647763025590145758857459450418449761125193550195065906593342086167911475506743234801195418317747024606099617601872946084697452541473326029131014554791655775166270413004878159345194551541565298640854704982885393417517914843055030460540381722368378146589842410940964773187138839644474078980710011454281490369650403459235911058852632858926738481212491961482760072447228562666051073260469007146681339735060596830972870227482287644436370425230865810325224626941351674430214956430416099839087346817018944008530983446416041736421820211392360816329923793517718350434838931684398889509986196375929327393754037318762711037599414785972415516684430391796134047996885661094865183537074070249119426170157880656895216485367756435874180769707458168925566280737875713379431907811758740176248133065498906178344465192038837167600152161054896216734801466318925792206519791723334054608192695726183970617912451735546397145555368101834275684864435866995029785136345142817879533374533506898726436253083076141819032474681539690065596624317673665859666833843736794992826820777605904520145582157291401564221574525364617988774787441120570752887190268144919168914976641261286874027016411785671337129292598505495471132448650599446775161365454838931951726537592807805989191605970185742072341627865790263564760685398910495669698466031646186078418719602302779242495176303240958606599723409528457397063426177417361446887398382263966239275663764026859614845916351561023325715207136204247892386019000613434164948503798662659009277592443868777913016558424274135789155666562793955497057477325700910222307427690452054317760758655216243717043863965419075131294744178354414842375447799780481379585938681916648424780817201762482078336202753494892267191714030016255315377378080741791392950867607362235235318738080672094228360887218100110990915927803266928764439810227354106135610947117640316178155122119667491908971628709093733440476418091485656002942278149033457490803520440700829587005187769779347937594463982639565821605612174709262326587881278713047804178799834360301899839281624194724751048042012144748913082214896032072708290099622910682266023244558318220888127609845962773423341758581944144420475534491320912247572155758937029778090977734592014763133572879669544397112097935010575341061875557795556451592355216818236442024448542568584353689374170074090210999007825219563213234284077707982440479916556402831550045688687366755695887195863864676972010510855696219670146519744663830051631808737709240476334470954734227146969564234244496070371240213152478995920833301344120483463097287619683141025495910155785639810757965928729080409549708095085157946844309515850455817256373020702199562007051546279929545613702899486813386109814088074862391429661076144105980563144253190967176932553691587634445064809470498832711103710948088680287913154490745167110686077474376108649302952741397310910989025818855207008927254357380903695220263690591275702146087803545224757133634531679354212021942976551883655083347308165576161480766360446521081096512224566635340456739277125107706570676442713535131646659984049592247638358852081301564410020092934963523715882561198801640198898463349146555243970809077707268752132168438254393372954006885834423656275532709624236236919253020414838400926973913238909057041868630870830970207292430307903655319794786272018161135248083482689334841289135955506889136611530217655867717266906061233112530428960659156087837857456741013585796084006189936058445953562742553854494910042070090097512425595375772170248759143210707724318033155068786531866215763478393704686126654953137483662076018318198199114365513659818177283052182716335194639085080564509954141208029681858547385268673122752289338722500847478967008605235373569942948215818726039125972438488276938339242454453011699645067106104127248502784677288056055027269568099002540991658120312757051722446805610487690027106200358445584094213456482581932029093770384135128371823918232971083611362536936420502872287980653654772108084702146333533117785596667372166196912924819146310212462320789017338417835930725415582171110390730937798849837637380961042237196396812233646236154121051076903866021448037892914197661472624044601086529828194932750043820138322966875473352298213421369955281521509171145277536502854801707298048710999456937535401386957511175155322425599674466257566416760791613415275035961344585434269947770299474049547747393449530746559271792197317756803080352816244943023440509355875460077192862834626926384388996914873522614886005214903579226037924536070335510210890694130169249528409240855838614053110324664938064706793784521307286194408760600110163754155853907502690512027043511174537250771303734092082220998145772890774300755137652504251560590381703237116873096315845597451959997773870913609828275359836430102043487528673476939834635609070151627812731693572515400504252790913233570977979308208578843849838833046857539257552432916325561955730717272624507446286746253727014850291942713549592026124554842810929229713463180483600396575341767910535228134224107694786312291825392617257488372548552092353973448583420783348573291267340251181661304924713452480350884040694383991934373564673241440542073256200409254674801699053429120422541014774807725840523862332191549431528987012896673886958925947714860568678073621840667522695001366989502335756020308461476330273213902014316513976961291259270319430992337607075230406789855929880599946293040458885044122386213839511688526857491154118138483221198271226959927817077000039242335210349313141806771377982880484204661115698823560363433633448422819750936066409410952432802773146683338637598301958311223114368688074676413121409333764990702655535882351393647493633095695269071402868882741181859284779813945063530308610089609791246979417067349902598029455539105238725053557174599922814437253968876916910858215987635382986865834113587506532323827919973100404931354739733129396994724054774359851673047131453133598361377619274707798510673907147817772731500086206666006961314813119267777732858750819418653615102346362400953901619264887192725230895206754279225717346974326641113189722486738443886014166104064873053312705524534898669416392615395370435184460469702595158532905917925420287670307702611774264356215974838427638684897219489558704319936314120778526680797440900331798022078245141378940113345213301081498966201774971827248078212079280678196687637948603524362401691179249458990990137151783828926006640821284934102885480348614028585358422859166816767499482285004511296820258346355846191785981993631100237080406585834277651996222707407353992501482821274249398781430199209331294872456192308652934437367731612781713796038829294138288703386154828447226305279017886761205793877627134147561947766393141749205997620164087688617497204393552694823683867292254021970505314248305645644840542469818108454388768317336538086106342446627775110515423021381300843292590044316557176071270954971056016835357841704237754242740417653607446112223372903478995763699633411074973922286329607964845408554255718782356909541800622844243189524081874117908770111317269446210042963567339383445312602107333484482663334924814326610746363716876327878734394079289758565990034345075880152756938372450045774593710438156815073009205647512606623424101586015523024033081391382718211345153427778002803288383261254826649582557417842133297316914426330134771540375680424078887705634584405882130087437876015552423824928897548205868351072514683157232212654892141372690793855380512059426778245815917908683081969969502804107607977087335090437452064742293243335626721560403713866273206607110200103697094103430749776454360990016148860374610776524333900490170670507778944943542001618894126381857862131069021821693380484723529380268473887028568540915185203611162139705537894882854923862730840133962772412056712066039203837375824141977156878082811395097755352596907021670998256128547006949839172641331664839503159873346730437740161125832163932053072508088761996204737475898550391319540093735973328791646579686117086774844975743017051669502330008305582964598675243842755040358950220791960277308744578685104833312138463287752252044936922370237389547508602974461119955888111182367233373830021322696934702723151910148734489889015831088463301629310542780883685013775555119171850971347412342856879011677924709347676599999906442261873372982737332314455623275190145216720635979708301728302376748677032269362239444779998862856113975315019573441732163733833454780022295471153177422920053581322885697728851579135805513074016622391814789172300009198180450442868283840254817973330782013258105069881902567081699640898401365741254106979965915126286144985832819400821046294438868256262194902977274316370968566964587167462060460259150616274697184159973439884391026000180366288734329767782321766955209848952547717423747146060310127604750957167608912453011271585421933762591531247983839457351845896062450562380660032609441862313433125342767284518535575291633037766089867476114410375795194099472607996548894416514401789638477838812855781639550207317867600205862199951119045337566215142550642061588779498166239113211738546805725022004433377747359611964182669304025035882631462569716123024767590701962462177474511912945950425707248877081735732294012217759790066622683511252359378889568027365830527100584084005798716555399848328967369661513973498770523516491796866635985742111753703824637162326989524037546022446856184694018802426370446988496044717129692155608950995755923313091504114817960215287091681877720728320408205115234283386856525455226891963191564062464761697122857397093886382319588399912540159951684255284465156134217603540054439945928538180600777326988749236876399987321128811783254842431219884214809629796424239334824074588101017911580591772567453889445356420672624826237399891592302319952120605454007663956987815247932853419741789535675791166017736201094188111775937870361701986713836935381956432364352346854490198311184631041634850814383209721334679691596657431329242282917636002796414136319244409382596436346851469174175448809714430031919629248458717960803280277083370908079374911959919395678573457229733703793807232772943893387512246761947020400411546944266755584031689904552473366074771220430668361440975884024013949076684988452377890219068530998416969442910945648964251285587999942546052041056972008362059555604600294303622644327826660247921064341597631564650160724034136375319333976728997555062942891927611102779359952400132133099823242657129131612142030588239506038837996586679860378482416463987670356505212342474576866203053736170228145922899597249193486141215628622829799826811998656842300642703465032044877496473326549915831685663001980716818629632070593332335571694885647440382914471818476906506330343595357358144084576567656664012899313560397383473301191696349049117750630079657062176104058865520412889497386494776658041665434085053998550329922716370331647833795432873719667967134332524578405060945674768599910841689205820413208467552412483675365028626657485903331022237390719950922636513625724698782628892060896152019629870774532440657368932983407002255131922169333231415121829785314818130463020937541088280271349808619622763512832917186686415236632401917506848355861484749686130004373782540454886701298438947323454781661823366427639515420708801153340649345173505750139946500011342748727517112779182631653507988047377556459504247233988586992738057450912376030561461838609678391331547179866266820191924249168859352671822202946778857163434797863237944393443098153040562525809462873615276727840673920186194884384735872495228872154455485634830611870295324820177395608330376752862493090539119050425766171095184543190709789825963335876822567861041339455561365311698027127965648545643428683109344118514565510863540614395075423515610685631358366503080753517871855687624472790535367725667727030569968212637589646103677230554130154145273524455507158441117938144876269327413073805439875394219009536880780031569040151534454802783846196068535442054795506520637590793700951127272573068953275560371627382619475004853229298843788283128338518972324942878512563391912448138936920616144274280628803726096737786299414076569364750167149549926357836771846551076791576650026323974397164199968820164707820024067373475406091131833521381858938059970050544500487450844497052950697381337411127999687363700327996060596545199960364109979916245693524071474353286915449486013087261567261072464091372194337037059469645458049420124771518791886725646394889696626618254602004807439439037976475879834778408334515797716464383074864490416291947308042943644452449907356506832266131569062465948485719352911758312558535739829978883146587329351269389462047729405835143076591709901728282734212404794234202130165091099737859298494417618560102754645163056114137021719138351935099898380240632406886001535468872412567533452158105243850541291541271524783619050812934986491909235441970852855602223863328164382282170256950736563585067990570995373365082021318931614498730665814613520889695840952470747521267002763956459252053761761963983023557864377126855677504533247539530201487986424207948310767792018051874443406124403374411846293513473101911937280588944901227897284219582717146299770056815872745884785338655024087801800587977200907191834545507237952582740126819124663502076136184410480334412557491431615624484889295527633246947062438303040461508403382848706727574549918574127219154204109353924466269439719398099665738615657981328196280411887961254244912095959907979464698949885489728698595701535626188251599178001924073445723807327333896904908264034287568657331446020714295095772682901240788147520624143100520518966857086924056611755721814652325645814491857380538201375874845036081271449273502095764314368940479373782250830054727477020463599199879302452730235517199770313339905511862310080886594886360439641211622547282508733106290924594639816404826022436515920658599627616910183150011165200146145169634932182966260890147014391903931350090307315862209391052109477463593186635273215254479565606150380086985489827276129175240914408056362491045913403796761572978316469120599127326806747922446664041074498476835264050302138681949172727120865602099820583564136663119048043634641970222227456466527102069181305991019090536006149938492953725790921345526177598547631291305496638860701048904288253019978054798511620032899158649298067990683035351769845549383458803885799202356890791563065276763627275147698081464397924650671257598520298976601135731640349553831367273269728251312876951340970912502704126539924997480142091533630756680329253654866686501183181465927957319251940488863389623611738059652487318338908980980478322681080933419063655143749048340786279264171752758097767622928962696013987576795692617224133227013672015450206776125759665253874269709699106073426885992474797887275377521374448775404508981131343622754593871968351196580440388563485076413736153020031799634031453030296244744606060831685851500348269981992437385859067139105378750575921835765465232656543742606066099793006903354412387420781979891238084127938121346228232972818610076944646695673613777957703455760549706284779720622779418519843494025982044282446838528692718760829013734423197426399921553332074623773651185992339473416278734465355796822233730762398802660224268200047072188480258052015550975840892848902007560413952294949098805209314225042598346702678510867121930549949434601419430410256462845026109350972363573733531046471057655648269432991414295063459540413335498806831023549325418223927757401866972881873053550128503370653777039326272810857657860658587221792127183111182796180190891526014556999574733040055755065494671118915249621414112580636497441368147347776124575491691080924081007659886586227300841323301650559629349678098787811347567119946572854122293921003618018679108281628702780329749463076273099736083698956027395037597454848677393555946874953084455108513130253401396781940928770245784842302865819459981355953179286907498408811947392765761088361979531867496834412583982928995823117185610957182528683465393552636000917505057091644952503273225497855866229521717298748496095187833260731371905799175392058869367437528451892498293497090894673680088967553824581080843883664706364161044551380752594343127072184028776077461857416042379821843713183917188328540138154920034486342018454828743200268245879340255322352787176370054229827660326899593211599189285473332848236083352250591100056993608725976588888946039279328562971355023715817864073752559594570494822641080454322592932404409348806363673410164912502164871901740001339661103813341103796389357027996810148353136638996970287482181111107726824841082481393336112742403761721672595465892937185819355850848140637480261141511133057482210952383751194314396276611386793631691583965729946535801415843125652462564882406065631748713994929763931385873349585249161549848175020444565891608131968203448006502145932902286239200114837558993875840929720058818265004737436748668462913105433549247735792740538037780405618530729690092096747172182501781540202384804578477197582479312746316839318300651412985936916859201023018028502789382179317910005484775487595742077421644823639739554154229401084710608628316737689705663156359537831979088644635635001410052231960101639340418823663380373086430065676594151682809731533032899918890582428692930535184473986469912858920704111244725119477250202778140756479715390743568330691789127786160539670990237693945537447460125932617031209242116438766830633959269288758539372903116265699779449709592146507815622990022266278958731517340635615431839598990098098251783136274319498284721492107014772548052901420530312710703828961632494436185139895828710033505885480510933784757827132156000075781832766263263014504009759828571871833840915345361111943840084369676245771865557435906938790440256881239657735224126053715018300183215568170599169078211376188045806345645435772947053428586698771286017518332669327125303451157139620346315191519316657545375647684193995197834234560922722714004536251356913729625975936836919529114084773029556216600703434303617583294337815251302732039938810625562131841947586476549689697221827706623340863179448288882332165050651772878535125772499613514041318506336574399735465551535478678604411126120617507302011144620149293101071774639765109806627618159635906633386688199720302147417150170947329343258380222910731389048746328741850020883869198513924857742272756588130326857385268657938180759143882873705269397726967484758726749152602848649782221623005193617718781198383950506279996648416911070759774084742999916129344098558008983706475355600041476579583609569530258683332537218669815799682033148558920293737697081612792682110120049364438098713424026068449442979660536567784547265715333617298753481825702775807005673230162143016333362496669241815483312111250438938151591584705973480668156113770007890155883167772531023809791143621662770597393397298763347323629241162119257982765183196407031117268548115075866141517399236134319162310508453621017915392065270289948687014792831389891892049457494354851322116085078060069496231551119367820520776803260912469271072295649110810611101703530551949082046183890369596331117450493553841293744368804979091439096216258747134526455085921806109416548187649951984510098427085573541581317450788201049747304514361245184694158368686313663413300121909906943964151747647607233230129105517797848620371043712260580690362069957439117926188324773868658429501226384154826489005171506535086609503773466258092549393708456193397421770998650231579848409456250748288872117731894786942485902482616108367073241657556055899183053946089039232009600803905655031622244846796508708709693608442792981215383290996844924050887750394819718852015936552362760334133945961923232992925807137274811335104592351539292254125560082689881023272051406032301407848621046561538143117301232739614912780739411985939543144257995759749534663578556728491789608070732593808836957970543094860663233249430872669537314024821258668499165790815491253452550350386465827865042772303641646761332601869138579432037019297227692525885790248952163332954395885247602244921754391765225502666113788198457607289948761451087021108261043568501246483420167758665102548764555149924067631329995905838982259732363059916180977181315690128757225811636870216122314023600335983804039904131869982817141972830391584611707623170251059119325411915420702874109083490980484326648634119633961082601556545368577757235368024152979060509125588091916649935178817302282976007456141174513519609064574742026665891168523194011772851949572806881235960799990522324319360260481692501315644934777355467929939021188980832846421136193933801299504697307584913787842802456483965597098470459999971477549436612713168028867145840791056827130128747939728871101374258482537340920068768033200851065934285380245854579981406856553876798062103053094712985662061418524545238840380562675560189805617572989597554661226859998725188275177910028541361330360569542422596937281369338302996626790102044150367761873745765089759298629288496542698443786293812776244441479814093717928226750380666913945611592553605043246123483231368830578295802238606586155109227865872920124727107548976505527000114304697502947104270648795918203007075320836807107165237429866667723275890113072355110194287868037319809572576627484062752477146447843345564102160537648814556157259863781987080754176840041497115301133900008126444262940522465422232335778875674345961129988988838693236406245795307651281703313899032272621795510538245200254060240013092656821557885756663732779935552881626731679163414071168586573333325881706043515016511821598788689466954530134649910120570581218327381409265858546264098490904712266502166795265019417939080370304758214321414730357184720736936070986030522032547483694269692476773337541297448766471393523184352492928549866655255956659772231306424629230549290417713773055225945709266129895565484471994837912055180464862646336886036479858283684700555199942788704307615915312412598550003955224674377584935221774786697120256257163570029769769662794695655660030106251707820328487618318018882275252989696685540432479673799837893262321592750074500224301077002689281048641018029573430093241992072885587455701879653971770369278956911099876853873427086485051442275860848065701982562495994316501193271152308480782644098234767724351653980318356294791174862666691625943543779917171501628373680222049563525200818136061075093992680750409754381156868419259331632061060001644246077651001895068200383555128453157630779755309915603021898778256582947135838254573413004957347620973237827820721325399114604376776342103787465683167250057515435966775929461869419606451651384193809435113380868565423438668927361157228512486148991580832521905991574521892027865417909974879183791579789407838704178118085823764681929912500673106796737683928384761523488695223617429053659935734583158792715056491665227355310016572001035046889604321768563535183069568524091551779009559300335607620707587774197127777343890843552878259522451960562791728618985733488568357179028751131534901840858782371515801323860530934361787082323568827303393759085003996678800239538226895892151627809000228346117483269599962459608686499821864873588276641680843829507464085383629001897816805120692459429745246713489209559866443246303467279122244766948021529091267605450617395927898293239272674537465162981201679386458501600651609846230095975289021826219289768910569589062981998467010632156662916130619443242793884749875747759414849178023793064969307214312244328766896215692104724976179119447650414313444303936720937284253162314786956575535728255257324501642152430240033606577140077068827915820004908323074766162807231343648071891510314897400141774900551221940281495016296862618058907184439850293483250181765209500817896355370094091568648433205537633652301034267234324438842443489492050919211209707135877162135872885808763075118146893281578369194056883996516384469303109167037258815628030767295992084799571623144443073401737237206380455317227972029372204794980359736800890358387417088687463962824127723811336113498313103170449695711007882450515708524830488070388569699651273143083473854272855301238423375291941215103074908199161241583571019473022947446564731051853384151694337730999843901726552777128616693148803791564673593163355619071280441390005505496513700774566486969715363183935406438664159114667473998704545872307030501889963021397108086784144357324840355446429702253562374797066040038705901363087690735241286083043749223911519490231117439127336603012265594324578145040915467000326903998189675457822333728070816343215031686140658419604530147924659107514462516889418798566645777569194720580984065610698784200696524641520397798698314625093695686975009878125025202240844008246754069005283622834936179796289177157253327008179062459842652019070737667641667642587670198320041815406851716060001732009718633271154215879756153587723313794135532626700007096825296099047064444932038408066073812728109187152357957290538088946324936606084722459021955110296782425821107161924222704926652463198831026242846375999603221669414232700666864273349639618564772791941329370175542708741901521466671770270905047972189535900301484326713354672708370264500496409949427764407334609130771919494113035975102362762133906894839800929648004629782408136520810114248311520894965732425000790479432079539020087519591527048989419948764322696254646533084475602468425870395987624647769089725460791340901969781269857761236471195411949541779772429876315992616139349285291349833694951284508907236306459195159403191678986366838502825437907301166052419363758576864613738027833270624209483420819755993608338293355727391033683681441808011666444630088937380314308474947805671014967305999496393629564807174338448742791799511546714991528054103152310994043499908698747940802506273867347025102396108475027318174986302732639161155047221194079078759601812574556368620143088196881444314516749934891283206287641289496474552805792232228636646199618734509512935887908489720435011119637653456860905775894333196089641706832795438508361328942453650234480017065535634123508798874852477229274243981040576348002614524724846684890882102074381185372880934173325046287090806960251677256315256837674137761885628577305021084732772494686558386111368368018673837157404060575174277414233510189508936497952718155616440119233825077623433919915980096368583651362650593954829840896424351548803268314575239665589271441154227072327497115139768197521834918760055754797320024965730961719042211124334669562107498118809131763631088410900451463158621934483678205070226033694861754538203193417265681512555654494281780623744665715460256756120674671910236862144554881597497685103698322204166579328219748698512478252896279056025714675697846549883767849849995348878040809697611025810926371942344905767354654324193844418961084593235489294954556464495582057275730934909691701273207045068746593309484469214596221087927968517646646270396058289799883976423874148586108115797102890783170953260673593677742505185723918811352056480969590536692001539780173759430621777913407337705698745798801704878973450234026721719548128493043800236677828127012578889385366728616796322397386962891526520776288518437300809928263298482027244232730077746954152568682389438033136562679806495287189238762043940971187028136319039272491989560648793081677960697174195261524561467365834694037468825832507969507267892018253797920395647724221228012197738855735590537667389623652911095100935003693784762195657152170874250052965827993683023659194901044602918842348005970267210743977911330661563806934263598519291633258323739728714604870278643611048464199066549952495985853800699052188826178684698945937507586670319889036287457832679859899147688957182244405789030739649177449848976024850743085614399099898500705303080336048610520658941777661543124379293903745931003650813604325019444528058338721837800615077588065287884809436020804806482056872205186778183730919267985553940367347643553487140316017262832177703549439334787322290778090940872563483630845722890980145699416184459763468802845002953440555133845348431463553569472166474330968174131881677034300798192494801123692712255906393936064648929206268002848025550291942039474666360377350131892827263580052541609703619524965145049894809019421329665390010074882971771015985190263962183065329510695583632817680248385600936361820592532188684892642337638136931865987854571588472481656399690208842109250161084266667558622946634832256046949902558810672110029213530532967558942281384898220908934422836957968777358880461211988625748562630647871841700642868392124329132159534810585077457071767005732297462099775812230284031461183196277309952997979100768020008127804635540966848974327569573268210845664214352077383254279815476946558593482201924156327801788602249189971061450657750871554538484374471205828361571485983360531851893434662822150599276702754552668021920985879359458348172139014879954413352796495366316654305379857176762077034415462891826226185361606219880087151054408838292993170440397263787038853732630241743206587861859167654471189168796581199406733770698690519708929200882382668979226056916195720455075319311942103655608060924379139944112668821077710292193478510116885117699125858600391900783628705166488841056488547806743616162077018347279726339606650741175802063806904627751518114314709560270701740908670316738308103044545289669644397708463073989061929319062919778975229129672642605463725319398063907524862791620238958610051886241921064126290989514685322108616626790066386300495424803488779144574401601706482662242847577527159404716151976304622685281357001309001952207641725485553889886835399731198734132821375882327655303183875533978752115541075962463214902507744223396386608753067382963226341409961130865613870882877830278670781795973370889898593676863519829455166342693692568688902125281008119909616589199832887401863212442552650010304733850209970789297315017820591981118655061813519768090754130102709682039588969393766255648493834139713180274563782738850237366635595644084104015117334340913173088443768614765176470861828579924763412307252476012275361542616009966822620061090950669592562285546183563790132356894549792444290124116806539024825511999737250005180715301777093282884333283061121209070976782233888473247938982566432212684676426551748949699927236839557952554005887008087421834376837419978064563771144337253614712859713629497170694863659221970977030173123174568594279756397640321674904261613426164773299414294447739529979466067362672729770126730991112666808035582739238622711969427781971797132036708446228793607230621367026380840465881575975326561894147873344409882064711185443941302011627754000241004444303029513636407792879051114198578379820311250138923404721622319258966869603357447005083501315625015894694267760199254903683682052873478919556631901958677410532149534332845387764125115288804133169554957960992393838059057172441295063573108306495205943076678257915287414738609018239734228502295170026821451224420147054441851908798143031448617394459719712242255534996184081719010193088126233046872477118330822285766235521279019432821928807617938743498625483192307945391757291021967808147014941166365315763076195241923804024354984147612439668836366339476948958472334162923864529452297281932966455670555747641467307999536943171594882617243712377679048632277083248962233237856511082799582322367197654413156687289172684008549439484177587607302017598697457911524426251249375582943578568735180151606427491823288037944425035205451256821971314399067233698412664154357465898379430061719267459372703234294120636732582007651932681675507167509531880457278549379697076143300603218847805399702031327676545074805077860456345221715726620340091057450114506357596493137139029716128187421984550848280334500876360421807825030720540954901946307322424037357575901282678226050481130012952118728137784376055138961726106255194586014257452507543904245218202938499403372999270608072337471520843218176318011484708655592911268221179149253278430636499576656956674379086970068525247931205229100375331201805216333396957636433396673607485418764870451503975707027084259053996388345138808520861901393029900887712915869645540939225846668165335186543748658080259714752378153945232564922310330926696702728992466592233998326509107361152326811103741686081848126003355709035396907836986793281975539648280236902464332269676817176199571626819859617653530565122652161899793910137603237366513963285146886515660749148930217935323786966705332531803079508654266764499145993959070945367998067777532430090480575057656420238353585601354715805146887490148683843465488806063724713504836366965449879570487553434702591182562644752735718484757848187638465501179813952572411361667846405449961012321731484526399111976514679924158285634010025291612478982636484633136339917118350483229338260621923823232958324443514478304094523708377591191136226286378777074595041031719015422467150799942753587419579642700434457293116305043129783538995587462721471361594812139621167153095890905523343696166603068726270450856544658157342349958824688003542347621337265352313607363737410138097415640570239184222691296067580981838566548005700651068190921985563276076496211438740469008648168766477587376310939588537890166129402300728392031846668173935374203312673196648087809191664963598852327162856859670324335641116518656820987299104985550426642267912705775413127045356905934600640010708979867976119801475923156999890534565158566525716527373026996136140753378676790748246408515837157205764173062297027711657338390694841551573258066795623697319358919833020572963836814054511990372378977532250583260153264443108933566889465530060250239281250935296071774967656900393593296757614501506852318752576227566981144924844616723458288893499777376377505615992870879276435241150969891333464367456693779921184790559165859163270080872327589638619280133420826847646526538781179787999997861670853019889565502029618975476857782661411750485914074610549190890140981199037226496463006911523018556800579506518635052128529537585748833310470626729342430511963714676276360938737365744473022617526904464007686314636445394458835521014991512734453299753426856638300699165959634738398521785694216997528859319325358248694045690504269365526461858148843547156995039242020600292566576459054857901898265634059177569686582351739639241820102358542647812556742071888704299287597453392852960478859867510145559870629059490150631971920763739077318540230846192382766382148360220126631031920558233452533680345196481949278128103738012137979349536810413997517694289145781718641339978380787547799924820629128373269471168380947359985047414321755161559630157433305197046004828283586653007116801614222530808371870615832972520660296723107287106388296535506795962978574857362221548891354446371075929077485115786821181699667300206486080098967183247236939276290785137575045692321552501260591792962534704559690105412514921003467127349628241763112985303121027249145918670686385113027256176331777016568705236019300920989122308888092226870494573705287955370535245695887983778624240753183946024411985171062036233847146846556878983569689396201266285799393623246605410449519905502269212826169325829335740988429058485710559212359780198694265234100949029360109939911828497492052316118890735661851948713645695018234492366640410877789259419013298993576484171466536789748872892991687188554465209350550545982273369507090228611637655892346150719494406997718993700636541136664357664019150081922331519907798297702138662572523650766612325237713947946702638055126688339294819540476548690976919497123051833281752448363646925403729158199469675195855281866398220806920603542764881871687215834996593328739991002307360391712252491729732739188470616252360341357664701557041724946972031456191463691269699372578197156754367645645048331552126726798154020917005941503532210899849147353623700650100228016119777033947244387696165529678260038672036064831839061716404611567063145296325431580708715074189928478259506070014657348568034490975554702390646369331304691249523454995529138688046507435433095596939127032278994804732592707274256070749274042709828164093798006598566113814291224316796833958881036733685540533368025106830075145470013195450738745471227089078813499272279305935094261375887871569834949447656319056202194132801205739831991921657223566330813142148356118727153415966217979140496479464219930521413787138680755981026797479216254810418733223111668995875020722171411949131760879562511590903144080845994386482138672818043696925877362934132021113201149661785376887291898363063309312689208198100327563846791475433052222164700981178995191246244986671455155919031552052939281036736864375692061025208597164203673329724675668386343326816127113881206483430374017380911818667343950725279957575581072111973523507891850544778275052158487382441752391577750457575177286564644789692768574594811641662264908999911165574381338487910953473507017415849031874576008052254596028437237591294273370687437717877868335504287852192397256148941965725994296931996235981443951949097146618098261686520749906525210405640897107413397466263479317820759092745241601893694575219769285132394404895120185220164938362640797166392837953866765635923544969086710435389286955076307672988744449172828069680572821480642362350635551162929797469623837734800716390908937675643445854104060756728865438269674415447775384023122323786801572487270068790957217126921277461603658520621342603632382587974843538112106831486235518732418904137028216994599538177685392069301942508354490641778850243422684053087595339078902878516391483341062004556428957713537699232353868991874762883140881416272872801295111868167402063365476043388944863117265141380457338694336498610674539897456503597441694439544126643500291326272632841416251003289974899298678509223032591648407346957729094996468164309257324358010630769325082549264356280639061319818559265836218420020014455302171377818954140874275652755760311633915445696275196428113842071258253867204539185045511901212775140248308427932021852510620825859877455411265847930083198427492035452583919177509409653210535009356496294360609567120362237158025441383129241945058621466079036992819153341292586532198062835508476562090008888035754997092674224682886831193537363583657735518514614907477294476188402472824025767258066793718556671015581625467155565770570960445191214628148743894796797714354237654958592752136957770465316888039322482200661546918236315293396297904338717674605770990332892937293860617990416908761507565798451968314636744667713822683599536319886294003941773732808172613174734133547477867823408661484586234783071146413916917096223021721490593246840330456208706330198950993536973619224165010502983470492152751307361612946237205145622786162323763368014171919743027227163195503008193967369700697804749805760623151199645837423481712142418907432579539225625689196528325168001002690737449670150496249399436988058059797254158702347621181244067828224243341828189395767514848562097099683660953648846413447231831056668332253744652857627835195251972693774608668340206412611124003169138517052001051909698164933830546318672291165479169150749175872596304560931429433069024277873413283389574990990770786377140828498364433010196189996642998521267889440917664563557250778559391859376751905617705340706779007001339720952264518311540310085936844972857487685661684720526939519604360031876914387386750861892997843097860683811470358882087411398419842710422325509839806727244625991499082885024271189489543863378118117428743621774453151246436171456179578278019942531375294326982976644270777823724252292967284768974331456637280260673317860271151693041166869708817608607338872243085706813825695753715469943043484685044754148584989995104119057643844710387280608178073493092089182157963392486491535657251133337234263663266444877620735806146688445202401179364417050658716954692640996765757187093955896930285404099353037028744145600323933183307614078042889417944987760340162248318415661509983386469992663377868130127296832182865249347279857930879571327071808251301136139329328830568248632556873477876439823107004284882763957712853563552188203007705146524935801485920780635158051165746494716792322754947996200225198435975994567171847956199694561490217193519534697228105541263514298730117626168188326201302134438081122053153800214865511237666786048703384164194171794435889071547710477675348049245415853346029267764931899544682404112162786502412687333478634380346229580715602091014868436855049566527811472567524227770553436849156020843075730864582729486007045566984937874613934669894350797456260799141231164786161004017456011179726877932679143453027635065536824359910544067387942587778430156189072281597913831697918763383085022577341692465070614527102085500051339237057479450754140843247657641462212010210100979464774328505015210460398197706961085577845450465044696189659032448405373492824057405789996870195836984920598326972230761435873306891365499384076105793743780389593899696274852761765662382879116469523971530714409834647433224223616249903356636707594467765801915020023585890244938449574650735419572755636669856093825940338532338439473389735530471741325550410834225674351101756939423761470445238239049904993659947731154474991273859888595753602921200116786098477042310669145741452211016630130115292280582524253244076145279037041896614654185305435394715755426924346162947638397866185800685108556117675963690865937649378194026852365843114472917682227094896578223915061554978970911629242981568784408530659664490772449806876538003071995990538209858434531280359263657068199278885804674896788413366131813282176841449803601050541610378354480874457273420213456930165092646470745928602213218410423977857068499296772219443381288100507018460060010858917104165913726875356804873792649627663310004983483716873957638084273479166593147643106484038819074083487260378773381816828047259243783588548337935923103298518658060388530857909425454448936456469293798037336197686633701873143274812838751415126788087619407556853855936911871272561390309291298113726750236016739519482000508891272632217075294386467563639768515858821933089089652549114247952853030113920951498739164784344051217515882472236221575287983262103586684708287198293847577730129969192774126567218189553989078924032699795171643437600228444607507292907199177635705236666172238741270568560221587508893832160909957137572793576977377513973986758476923619425325466650429635429913677743663574034188818329308695319984223558901965731223166924675283288539443556042473623219457420348514821325764685774733841603359569309367109335708251993749514061094335453262098334727696337955558095303571454866624763939742226390816715828625564540937204985071695391518606817337584761873598103864060949282920075334670618610356263062235531846241059717555778353533339418883617178058301420690896486178734740857364405115881096623494332144111103357381074092684590931881626679239272540152793358285951928048054904382050039984546602824427948392331982070836877951719109160951698747299665979472246956305457007467895685228771523076128700594217395791223899545150454769305527019834821053756008463605577071152054414516237463294307772654170244440943577974703156585109465911435350226014956329424377748021937853729280591118164829477042976607562542249414084989624894055749560795930195200477338732620656113392731322029503193941132622966912780613162395306053609894773734341570320781670827820297926357599479159115689841113097794756003603116522202310160121557777469163337304891135526509343958375099463339970976282158297648740780478608489056877414903326735851123084935785911005621081868936898953219577720445352900406889041129837448942311862323131094513169686334199787640320788505208613798051724089835658267062950784042907186350314864928694794213486832012548359557172684207845967037182724048120465022226300697115794033197144656489829095980730895956571967567790370273302908163449294466993985736777379088545703461517951508460489056483686440350397914944252861724825923488628346109499991634331935186231891050344385062348930975386794126844111319300561333120303676177020244808000638227849382886122172822800143484373256969041830203549397656384060449749970509718164557839900040120601655922184122815848917565162223545764712417375412719116689239907074166923105177988140931201607759889981749584924885890572450421618955332870436622084965093225246936973034875070637229472623639302329544520647069498219324459953627410266690528722984557312236625244662248102411994275245572922128568911725838827245980415534484910094627628465913102310495968630733999398937813635515560183627083348801170170180805497064949748934588111584217411841322335618704416128774565944113360934843691311554797205454608550107266520950475816457491173276285105688123453330784628618003905950446002242485494619645250719989841010484586265456502479989308228393723230177791853775900370776020460531169308855687792547378089454471720507393341803068270680052458059753055223808554568430561995778200761152424040059916123159852861437755496957952862166988701535189091162661933310195633778250123771184068695833629516861035027459349104624066596404824269704419681658789855625514797696383640753843697054571993134810870431660909331048500491647441414751890396485385801726308776857560184773043106614805382978220024724310141896124602600718501645407386681074528993101632370443769672741421781616172942155052394418441540668307401847182348921861371861158114436925046572531283182073217428279989804105471965762898626211023702601124649514736729394310768602618997594312260615914467436462809976253559944966841461733169461053620665271521463061390371240037634507495376978055083078217075873107962798032195882759221837214238190367234453210348312065103699731203547343058545632684443891157642811132645920033927550639728311760661216934787856882099773351258681161124007382897107057519619061033284549632486801056183498028343001243194915393423932046758599096809563507000439852836834951914883161089476437603414529978272881021303508217788538703400608644184099984005337618905940366092095305488577729623884412594717025854070977671253417564004265330127653255616293751978059960921508542426168956550518540617188534833834543621798547456429850974872611041148035132657330314666862622493356227366126847471037308051700742452236491880330518939862240254417561821618773646415881368671658466460900020018235267265397292289964127847340535379800317850870020499741116443922937877939498596464076192277521022990192070364518616864213193088022544193052523215116273315991262902400396847836342948668870038625152722890323725459726863877056560257538247901525824213267910902885772316345344215666202417473866692139537359315758691281714837058536964081963551007682033775549155009818090345181592196117938493621339076010931663676294204850096067114250225365661072826660702553231137856091364517732340350681491941075514799240455025653623432274890527915976568058262489027160253849736034661104404555058162001200231976013858341487063699770745558349732269262294643210869389365534794218790909058137228635422761846159534954221975622043423900162338625831643317902945739409333216354584824179309755848298453452187932816544950735932008384368155781231940213793274461732705441751445498975411862771499439538751966221614645717423757925772214881784941964930386501333937831228580056395016700567443340836767345362763439775483903885664043224901203667906904735991452083289445579690039093190004664941740201792982294761545411211642592549601116481083979925890720254842597868372795212934754633828533926561605633187791106631591995491134335553507747392085018204660746778661363007936845269530332155779957941481345478674604250332169297673499834852414800614389641059877368489308914587207850210547494442015759909559626877701796661922791051373538266818458674984787228551888477079267970085452986944350128650118166305151993040742897097551438335412714062617683631352515691590984278235190177950456597956207415835423392147616527466356762690312970335152077952826871694520183790855928663497509630546802752735836519081498413164894505725209086324641277811939051556386158902829432369200221311425285920069878224897816488512913043512250088588887504440647566168681667556823040670392021858126281976150999559758528601167203306671008600133973185896600337746965972836166083470870845267990325376703792582274111729868012361966722641041375878378485889607227450589382251881119544819211505197306709016222075065642435624353079834758149888734685478874237040543698792593578881165419206388146263289676444261920980564327268606092997429774754857146938999941907293645837129028911525894432039721108698777941034479039843991854436197722949801126930029186204360369622546912215978564735289049537695624350769223054728745616036420624172363670062623880750363153997101260877078490251290058116963816605192112073739142010883879174246461065678714663364486528494662781776615090904177189550012183625754837424476411115787227787614324994152105660308089659905430157464502399970373854914030075629993750970916206748918971033030756579237579398288643274691420048678986990875060452126195631082111741033674358013928481492634756798815195554812938432142802976437561314869546676795903312422373406336995585339901283662790800638516987334023990884926460907489752691202810304162086002120999739603694453479511905554191843407567632873438939577941196510826916855232162379663415880443087610893133804568326675343240299448973759355844030481047596472439144310348275136617770905958207961639529979284409769058946391520311576158519103153851182977922792534236248998566915751184795122310250008579976640809782746456969028514444516815991269573609948485999320823394500152210130593254957283730966874922330527333461585574978385907135094246055885031294652812214420929967109095241148358622629110399969032162643432131572562330633667989709996827372005128131706876676908210731064462018231027749606279078195020280123715473937753008585669669131152982745293633174670891301297960593797128108518931788270891492925038251139244989513244540146014703748643343519909522233245578715480653771144218432601407827626364778684119843819145334846413626119796401765569076053167911736211798219782750498839712864145326331011901741688570470411862733983059779178839700128175232820065318734620145308889443713419543915546067831007083703926549384321046989803731965680397287246334623224847502732122315668495688756113817237995350012802750754285624585980634839287721662715774168166958170845165596339987380453598898015905219642983391689808869393528486662512808291562240816083144921381158095619332342650515588594562293760167989229437660242365263641792071462845453544923662374146369141982142773300589048705994269828425226134272912154869854873574041038129573015287746915502523787552361446900228533806300177198275142631478028203882650533925267139402666414105565987087282631660706186270629371418286745506860244870413705249075777837511405197435055179774782642484983481326248840510952825694160620633485397230622925833547734798968912222071394810644404932892435308075965466426480997434564612927675018268864516476920788232063674216851118241793666704073397282513419654388670466974049998343389007815537230895966489508645393353404716346441314957703297109985532752153248367739218992586429696611793702099383006734482097041299128004346615707990933068992696138769377986776866838468911429779687736582798852674313101461939225189451853167185866451112142835847298887522637263877419588288879024429051463941659141979008599843216502977775838900752034375967863566995194083430894204815055576685948280622647894390897230358915920203170221128252216339315497758274420789362948484035175955188334538053311340293103925001267878587356655022528873361138050808210962162325211184669632547965820504447114588695231489824331958169336966266803144269062214174389842771911497167967565898578437955357832194992514952826510459432429295162370519001609273610701028011271793693518459668475072170513966271309738630191235728652448582110844079162498752731752388815812490480309093026728518715404089088830854825206854422485981725762257367747669071222922653390155514422033477854328588268402176693722626580423489951675296731409267413972375442421612769765513740905280682060633080698417092664797446837964994619719018941847294828075031341755623021597685986361095761002823436811983495674436706012118724522524052988796359096269387918733019886065405382524887743850474325784784899366537444770856152784767036028816886888951566947767178722484236993175302484603921701738265486759421341971120318749817462252583741745372551131400487953589294091971587813249468667397220226672229769603378432533717574273602012078972853988531666179243612961999316819169838793269920254341726299895159716922045211551668166942134247566276148297362737861437059308597052873347225271775164112475960686324052770790328993788232333726772991171274794798415316832308774794183306821421681805453997985530261442074645581635945534805233372549441216728241724002789911310942731055122745637587308279761056259631390688083688614207356169529250440881105598822655756128079191392770997786553580599027198681700127004617584468035752520055574539279587919643265484055889684684407448715113987658162533999195691589347489710573514967188293647042314667668925583356146715240383366717219769513870459344464118708911433430696104597287231500142241985388326229642809160856761730478114169614648178701786965011410686191032048080694798956567581540324158898792531445151258196434404071314070845286401466159488191883093701025345759227956477936623114182585045580814932254554680907695882362555667379571115346746386665514197735977400476451865010372316437385158497788297788440713194562179044657963891155801131125827850929434693192777354104510205040933616068160545123234980866210819295547845111114611006185420119991531917510768509191744459424535557501702335919893599329939537430245316281040147749434870114610100942153756538812891909099284481167432348457768386996395499093702303143841288833343496720294310065123055690391115238873846653547888030424340985361260057898486275506594973283415837842545421842194978274441073071590877324553681996548736646981027575958616736562039103486982151318062521236939790406807373678547602828498288005574267003511746557532719749644788045049057858805984286773274385934396442152229553184585437131275915719988047420994581860538093195633249261572076291786028721571756962092484510801178202075025818103115956546997275989042115436835472656742861177214910893276689973106575727600834713580741124466881502132743981383727195473497287580939944217868883981261722070320920563954726880878624733644633430335864662800164796779760877613925876504074349100473197304572347547399480315404386436798753853472956042374229982595170794206129779991214416072312510286672487268436023016440337246149361838149877120601409955047458836261993922282045274171244264246470620754681520642981570062985644665884737602143693902139919493901959521684311270720929819794639199786561342636823031787335983550747641955018662696845286621267061910734725908420077884458528899035775709716207049888190772957047708574591077292185748556280425656805589877214966753983632342429544868562209271261697107783880634139459295782098945993457009646320538092276938308816586149139818129715543124049648527294677691299975318799376566386074703824807512943839626379431189434800081897012191866894861837334776554840257083928684139529226846249809527257165810523168666093630412569206119734791172183305687032817391856967173765775801024145325448388941684184228642019312208715162153005175981981257790909673207127539678452769571578690944566508070467149115862984387685872612995027871166920975752661808469977445633502150041074360623727704539359805920456795609387195719059515549567472759246554540837974066032029867483875194024249807564518275644772554018608022339111854792358740134747643294186064557411957828834910031201598325875859718936791909714685888418340211690783581749448474853520175018921408168274234786629056365519854358516202518782402880513524806641249058569310632940075897002759349135635405081415782429896469075344981463746088656668960697085634196419665004261318444776759264674977415622584327834728941753980370124964092920259119395972957910565324636758836450945224135909552659590691332825735575519157699196546693224195774901668652598674128087503669492400561711029755256366084676458264668675738170266971110722129414872936567281864965517847377346777564773208489290452098504704374389000478129693986597455838735421350517157305221141444584433070983699919561189097143884153017452087489698865584479657715541716273798068682397267127482543107334821547832907546402647124804082986649501873421468027720477085498200296736811319131431566989272917473584412233184261223216090347118789909705599494256364150678156527222478798570816056965916755116522910217978087551346620648360080661432640560465679763259791050057561116531847025506184636913029494413397925141464821412698759636107608796183632171732180846113036961465066593547193677869204548801610594161057330092081311656832642963305986329823557346875047758117288591810370084758381157587715756816318001402631927799397994031201645728399558498071413394183999095912997466714704663303262145033485325194393311977681931914775786781936477416512967231039526714752642522195886553837807055579324695346668832693806848709228093070546500847399429828779411534828960454007899820959930721094664441582604223794335286263225192541426001473258240324808454245721628717698188469830482342202194039427733043721237296108667803407281826161304961044068442868594390814249919906843150143384908007604127771501379079472941677035473239190289233078917624778954456156706835380492363552129327130797081912546402495157132982737866914585910901324114735715296893413470205341646013305080366552752410133241772765160695950952510982241641655958427464625290160457829892022140790670452357753203210638577544723950471680392038561598502909084679042183060149055932251878427136891798685863432345102403278888833622527737510684665189851981715734489776581129776006409470620918514871752287659008462568416877135572942538902038535140039229031676631913857159244590624563948698195551247333822592965146949861739684006677240276426161606163626655322875468728476457909450788347317213321993937097896925919132545373814558390481759067899112412082756418935330810949643830931036271434148688998761172173728742044087567356497294472768584879576624035955102426083326151358371156636290166471435054570338510415213556024029355747244808864372126517825952957113470474187189404321420909174394558311700661247713796831215373687484821984825312829565151667573463095883199433142568693919146845044148568369780603672283361003591708036120134495814946492868318993240823124191587932348519395354985369173778464948400438036567472611852902894329066732107648206351283225426392759299568083287915820166301342790552193749903848689027029198021602422805207764840318605083541852002101719026929130774994874384345405065968394967465006193391458912493923719460667598174874951215960035920447864498030907522638896764045668031217253796099247365839098750277660741770172201949548271540491192414684421114483425495001353143616538534043990348637018063912562669535535126093812985997096904317418873148947443041058903412916551099328489206824448983376601570412584908862520445952812516661010922456163011495212836233337334852499060378295824006425137864665200702768114497277388037879182713866429973070128412881267820614106302714863356723787918497631398778335436609291393446901948220993070101201293189068966856823921794543980822971557078663266112295136079218080329067012056098159428659380472379431750380849085579497496694595513819798959007863662608949775107951417645436866061808364606440600193434000817191945239492113550309263870696624729309035132391618005337371716168209719705151110419445135107847075333130309971448253646559651526287758379688175338213370504057662726007864940194300518212038057803158486359836315432038631408459620653601634034289193918994287583490175112586170881984757473541126750799612695774586939113762619391045062334800285689473044681381981510149740232737533221294601008370062751090993097862385224996633814016554156589229126444018592915074222566454749824470001311418022565304308735936363289707653676673479367930444096956472796185358151297252778164584396893761982496991221777223224678781522506043238205522608220984230595135743502962071675919959764599923111702486550334907230295938214830333964339053034360706087888079416919687087826584548297426275664045287146004597562603861756655962087516666357214525581202081031634759888298818772512948725688106767821805035749572558816835794216364809338563707998183993752686815249860760005081800781443281870636169524920027279658729170377695924878607512298880275115199202104353709364862731991669504720898795311982296022364167106902993750878895994884268100122064441817408582192718265601713289706941563381756308516944617916354954409516987893226043637787702370959382055357826285121665827713338361242575502559076412203764753999035820926886202375318528793192722762176575530854741455398416369591780561231287955005509434369308167643293119586090084548446609491749218060692400860375793037892922997911192723656873899495406294700271679559687065130594282903904220568854662532856088477023609930251579120849364325094765638559606844065975867204719888868807715676242402276110021635558127051714125405517262589835339254945208801547228759482272389790842973205818400591255186579026320305919869027902224063264372644077161953029170240293277445539253302338390553056529747621791964067309230506750039011429016859092667837387647629655950269064286125264989749569401105969823341986987424749696179067758882314570866776949214213893407418523218252421705771599225355508501958527917564153883689845352556597269769535920155689635522270616228177426609372166982734354748556231572810279462109172730202543384446049887097610949853455589469092642680567379150807889231192671475355470522942768506754428042934777290246140609137960602865859204279092633383111300092778968487988334990733410972134192487691326709263933383947375613229161250232197154790056075440211688598694969509653757281702203481581597489538371346961844763452387773923358695035315229240963862860144953744460048910565617489699159066411881947256279425378008588489587102732341692637344473702540446206438537524106095754840361363612871028568012405459132664148199096830068362768761545149273356507424068678950873117367390247381745728189839140117210796773926553933808462031440819627274249098419591243417747332398366845539314777911300724900390100630991563820141582165681364890940910938659512789994490623607244195483726768981084263154355462619394699367306105546214068272867934172774742012975326733548601789161177915682757311996917001232918826361715026590276113192612391605442051809634294403479623160360578024445631844981361859844295791336004722444458585306032643372469728578055232038676002407902667727162100163443414169909720854520421752345637933048188809695524106636998373200008646256214022083447711268681570179427176436134745422114037858575121612441665116619278914272976422240863555002653396921826327150869461001524652240951957076889948426311272635652727808178334731231495887291037625422545042319463346713158397089007372535123112291452902916636857970590722409402769948976249813638633418661514721947414006175545937419857004201395484027490825500946647894439466223494705487248017784195520946325853758817334173408987402070244529489518995539137281486537061428265019178504112590316333407350942804537916235709732640667807585798484606655162086720914112088054212796811696393198639938558634810494910711894144008858765503546847598388563116010301229511298213622803749902566276200392848333637806120434803873881629126210171444345743754614031668939655764862742745305175049026751539878130586234165318005590611661343189012499063565850812179342287730475664943501253644988060255809124518770478437994449647446438691028334385781548869105281551158086967860504745518013760859980565667791911769516692930672396331931068871015514514543314853955010047863125865513297177081712557098033822904388874806674679394458474718744761343568069169193322003929657262941976241943918645030345940174425183632884793215363774477596753012844326183105425888480216267845099079481972377767702447489372848211220463295121960678720366577910506827509852557810964176729098182674027055187447842080521603962991126479460336800575042897806527530810054980487405157115829025102227134484030769633104594600889344610920577398478549650462466411619138338696932113111709997513684178012661002705828876811647063694430563917348096671543454240914370696837519827040882929068410258214631738048506669150005133587684386263746214166006244686180959093745072455024663065255294712064672330793311216690233928279409652332055113747299416413772008241100268344334470750191786423642828561753201123395599677251698149459563855979233662247340127745780710100827209674412242612566206682946354321975527084481042352180665517400478562716526862979429829721871286389278981764770563359050134663090394816894120863179791794947194742909770296597710559980956433333225728418524886601678809571485105984856400442466127598693464643140462236683474583188332049193489909685501139940300871810943652500337642913695942857541971307347321267517932013438041304402261918628855020872098606381851164329813011209234082233998375906759320209051841108882567792600622455770331510897589960112750145809388958831273720445386309573754749694681077489351613722778096107657977027642837611464810424980990494618202007364230608327621970839938771659076424147865698014566571923863413922660447020599439883921127954687979874517884402451891775814026192690227818069471129525179460078553412830981081411906576958323027989192518397402829437792722211301767887769244876477047030423694256065245689062483263612788982853146313937674179361252030406384873468813038587637753950136064628244237558358134053895559603863206305093327921196026863723342699413232604835839350326388099518266774124839632772553000316794314378706295642580449933930824341579486952218754912901235490719660552055874777941747728537844557645740968600207331844529639120130076716796082772074932225350712077051905060669273937567035076362099594432479841612781076553123159999188938026434886100820535340697493723565669132352474673934907307094894007870144574531540285256457100060537916929766217321714630613748814627759197265466351921004452685499224246964574124143193601660505218849924461813809777641313828317816619441225669522056428745629575091013110494611998606880391879534359902692097941915869685162698286157691332713689449418461432243712386847297724931228526735918675823969959765055655527229679171394468557636371141371554322395897266055631350197440821873382040343142087367543932478192808158040194090671344454311555871756060019534837276188739924360140610670277475431017071110742288872944311653513386357225325360810796851873944909256159897750261985087102011043536249533457289658945089746132575747419961848154510555601347284203689089337089768590819469563399398707303214192076393437496938267359128347194359412131767719388233393848434940776529085556399949968973094486490839269206529641515705407205333855301974421217197401797714127501105189760221011130200954538687465288864512727615276994450578310034278015864915253772078570067672202710320056340005783765330988740429129480101121738457741973841823260307485147228407344306574305367568261055132885854591111626061495996591550110919075587176686774402560880787248587577561526517673566211600104080428375974463968894217627741304461227456726847666662010518252181391734798114908755460470599996554898353551571439677589168025974554939270031257033127653097411577103964873556884526430040249165594959556576037617148251053598418324946818658186619685734890114734837003847337287089755117581826164371406574258657518245948617727064900257765316291783131013793232006373118824486859522859751392818935876675671575824298432008529726386751047594133450214283525371738937464489590377967015952604106947754695307946321846140422700225229275625051213676159541122937407006370273441571203071119026551889253727060316221216516580122913146675357953490334072323040145082162457294191383380372708834306090938936505563791307788377051722086200289327222426768479870710595305592974567458721887308469119478090677108130542096863430659515579663240133519694743810978539775350459802725217111137549556577941811580534266544507225566626097321259313404569057879225680435002525736689681666117399569139699681924486725924314031047959425409117772259231496991613867140432897534208673155677574428797958929237760119003131666500218826134208247770351898229833035104179045793012621102173747024256200831990881186600636919746402393176160291946497664737790379565954321599732778007339986969542699895664830465372865079329536404119388730779019615598478472909404909679335668648808946187221113478324665403552714101257293366050854801627267445845313559326141453261340678788558779894986572859556015057324141789246295936371838182239103098605643460216832160653246534882682153130560006100736953759648582561824192243220122143000498932263976947390140153924225699743806583978737927099440859447522240475289522652387565402404664160536714640554958668627561976485152198932103251698892797645901383611147691957657785018058028591687130319362373628283989655108617781688096585693237855487442630684026651971351323103346064640346049433942349278533165735159778649953751587148187705368922052932361147667801574609944556899586876239355334721427373612989852473558628466252194388416230595660886295281988002063922701297365918672209829135791809602535894535747683945081927203557787248345135966935625283264341608208222226501915178233277432883311366861730211544249803770955698470531474115189525267339351233244102010557736285577903959490360887617354253472014743721455864569109357447558267270604414088254196369254098349647159516116927698333030492627715365936379160507831866678558931196793769218947215569857642805782640144364928593983095269691257326869444147865846956708006595868279746767851415918732512068537710683830297586870587872473933030276226525294544117066995780732615284440931715530248141929173121972879894103929324367102407226104550919844491342954921201170673896201715807773451957974739911285145758333500699824374441970339673185600925293539136967498306965363784679144156956112048821538768752710659957142038309889914589800424100343873833100761688940341598056178689591298628982542238865574201227929300363135286999402336301228992118878314230515974518675078992488094908015482174968776228388714326651370342897169937804066005841740788208779396424589362933898390349923165560551984338558200246078106321177749920900282064192976759591405905232479838086527282203969414500250050914719451750904336640482495251806901990767493849093831098940070628843617043852333339003547593736583962345568577106611282909454447901467066625633355093829880792492735155907941086755734071559564687190638586985216658724129247927523716126297073280200376442492535440857289381799147316592285654358628894909583937611569530484737706508101409529548531385073638920734814689946767365129602774338201618712396333278334989042314877642464716803177253804374732008172418050979472164149014730532401766763684629571997505983370086335862405913692724547706026266093252384637675896843283289707465351194673922520724427777678964735910561295601867378359802319894210853016199515786266743446726409334982668782537669981223547099161739754132015214632484557670376194540054472894974015199706956381336084386076356284216088370028114242986866332496846520839163660485651541361733974018505981184579550740402096122658310010354233225484902187469561174080133605209657481060312961537824076863968917994973723866820065038180711500138504154041507794968700299259389263783388904912913959007107951586581008756444243808805241766559702854299348803154221254000348662964024675826801773079873536732291598686212550273072748276528642876688382932533533135250066461205273087354554673990646199095547637371994176850814174210957368293645885021855477583910972089487584840981704190620797243783337910188651143581202785135454098510958847116416130747546372162944367799711022131451535779872850127385002324863802017738812150037625279476177850248247137303982407570127264553750199138771192344517536992101202554151844772127658871616841892767530198107356089986355243271975117132808281682118222161360604648941571792051059526827122361934516604715562284011656595494533571377918212180039799693457777353853463199797070037326307851571696335036890703520206127161972773222874612859721660737425821272425294504718905865447004674888579328880248087541662391140642183850514144097628487560874509532777947361049486584302134787042729806269245588967838683953197333606350614164760514707501023979094885822054815294231185030670659889288422174561260263511263785822665390681409517178233247869426109706286305802193289040746732793579010001803585004659992446182280273742268372578530917077987423109273093807160177184714538506799410040827664593898182469849023260244580251296413498114603520787457151218486486316223943149456714024463032009014575951377957290749604495733299383716269049056690457461842043010539469596587431970275657211997437582139562645434541325892228722819720987356501261915375491258857775229558842325881478553928126416554898030287015121598187153640200315938974673159606311436780501407875174277340435247024809372366657719698336192170941696482633581234881574210227758716700990175903013893451132322774352805100636944678024446142383159628337159568870367768225680034546708443920112512902069309965959806565194868282772814985336019404550189630279331881427826026476066808818066989988179057839622864727028374920777525220436842274436613630182265039113665718047954745782121975596168668242284845821506024213167765662678224646908903617565866501337667407751416401750254508525792203326510496852270157299704501554035408780968046447641547682275771228006816426895020061670172571355776862947802239809099413631376841548317437835676484480649407763824171369529227705156298006853672740368921061375065326772150197292728506572842376736848999226036610166350891462701655653999626232556403359806602946464180966606031555251120352756038570548159836520485293439475047827888550558443766611106151879021537361142580169979163708557332572866437526093764369317672577309508985391266982971836841999113274367080632671757862912623929337495217444339809354226579179120636330942653825917382894182384393391794358156564051423764310955579476834467265141666349460517342682640506037278704031998590856160986073558543360755748715961425823922967939990573512168386298783429651096862718590657812513683640205726834349252720861649270174572396881187090253243647864565136421481966942482148685335510454466710858610217041370770383327943319891127814039458267100459227467458323542313712634105258400423266856859077956536827485395902213460878634664042353731478330803311755090787827877008342040274073340347397815118143372008927828146087279564919494362333323875604416134150173517668011373999885767072411989999507555625042992910050564398741966592299650159525512199484143670253900960660301452253245874655490471063716879714369970827102738723606970497031870933853372478326018072908216371648955701628920074974530077927378674933824038929334186514433608941276060370299839508476948197325466056461323087834081793233642666802620570501208944960502700443846185709430922729884550009031666333687965160285545511843240247303143487163392011305606178436194650094578024213112764042308938562686619866306651864577695026341646642144937081864307281994998967401357528586146281487356236426497117724657614758074280330383354443379758491062734036980138790299782535099364584370955739134775938864187422322524551554251682247234020884450159138306911608201256573760089162839794102328387402993943523958839054671686768577752838317909660869664875817325449500265089592129087342277182192228354683906399441786020578289456112024391279227489629111151495456637955464935320577011715608197718397925367707694296017989443049542234801822772617024786064105706515641466740755734118315629554130691125532456873523833059053313832878591274393391140538152278858278905086723453005932846879916133067282122181300440756120904541483087148767766964831298010773098390574644083283711238304237226595106119629834580476818571503104987102857376300257674177692871888211999805369361463968769955701768226648387724847805155858838494194166002717422410341811611875977473143459611293600540679242251054761805530729285957759792282031122860356634437879107730278762021846808318252787373991325118813260556994765386120113534549675329684383847659939216552182602764048551225195217103727954143254573849763067567627024978797434456582671559276618151739071994472090168235168313939707413691500694770098349573044703058949457036027747389968216654169705077082529055875623043315850364153313614576427657677037542800263485639823002448597824904416836625803970978041516541769498214905205532043761891657744746770544187711675565247081841872063942612433247232920169915931581743013271708890184467328628868153836157597548116290321029778143924456595382178491053148339081749584124738073839759739648789408182236008602912312038862949337280163363038407242349537870930557225257323448510001421011451301406570317740615751407110026344571091794862650621518728445330446940133323187410476544162460450573216237666952737120727813475382024426816477071781359209280178221958069645911586695969488967796272501230400844689962701383488979644420496474884761736937326534295536588868227171210451912214618619623744731092137370534819109645100957351010086339371976448119493961546764967196182537070484797407960507803156369997881713395023375093690837570855896790002183746448443896543116778048211969034179404309120975966130072161653164109450571367427064925133459353206825929100076015388708434541186047996768128411952921116402370080037251336678439872889327483720297877676702917520304909683723889971596894820776233473353009392830780597918304615488380801347338390364022330241662505714778910059156855450442861805604241799856505459462492268948639565981219043327993710273449817102170653171956546038503563250308656956624394601350499483962649117356588571679097881541182433368610674517757069146493794423098664812311971775110190360739428015259588472643006797508251296565498216921368484355462972137442530233038793547516020635029927185771163736051376179235899317256927644774178865456570829372416090811056647464097019599343922970521614227346321751880033097708723609128499489908773711887726600464137572652575180862341180560369016247380202284722303581176018942281378604607421305797392446844016506542052764989245008427338046966903201153447440899585573240030395171411584773061269291717483403677142494704315888148542863855957064796788067364322479372983035723725164080465199288783344320773970407789902347820528236111606422527852855321427788835490509607880267218230784379478771994577813525043599231288081813809880259439933226621657315907061549211842251754629440978310178975293407440109603513403918898349931016517636529151192304167722992285646666317322616234859291017009634253441037335032265094831901032720333775079794519383674143743021338581563025900814625791174371988836827443173019137603761630396008853112080073256729775206038615966531795635903557826206272224973577294974470937027709061916976293661180979546480551172290172554603903643730908558165456936281882026401463328009941967186847539074342311866305377883673558974196898643974341055408815118500410780832060901539972074069016913260003886926556323057194648046398136668425144450778131390736865652001934339943594192895303330510579542322411451780116331361186714308621233188082796712521024769662257197584821739691128056034218975072670352632216750113590891947692359540699757780293517579804400959003424652590108536737600521415227133430705004340050884812058731351167776049722865039377006673142419002130852645145486241465886558571256950057005160430068132010557799847869828136788683138337202702929707266276802391622045444997215046481211446953464317166618597598506256361499443273195988138149016733166668789533586592710449280307305424664864053490326509910146286178595938730352983037609426820251638985062550944495958500462696048158325893707462467260120258786431738444614287931112961662507891235506256706385256393433105552606953481117281711700633591955793551452979460003312690349347308903615322383375232588791057610041908868055540745261035121150705607531450047604948901863313125728024431353530945139275984075205993684298487489363474096250023084802052663328857344548662894458265010670943038825744418395387893573239485296168173605462777099357296132264444101208033921995264225690948506929621398528809156786708196707127538008541269934728658396381262571219255219820874010074775152032482773440851955189454861136106035975412547507851326766084884265912634155936426674500964820902977804344059732755688378103135990448383830565933647145472190672662219394640922444673101072882667357729719698901300512671482299501059630148847340705847936694333239646373941101162484034600751628462121879632331640949246500940158458601431930846922938885708976932360590412432124584779726981267681001796877432995703114953079368681018248858486318315418835803129382679410369276191146823130729999810450976614293367351171590794925470550094141144953266937059586568519828179759405664293465880907170117358848542648083308753923421604638482935261542290333558311149475645478861863852214480087382805511039174104830084050368178066912176131834369000304570833081920293292116393689089309868933293123175252942456761123805635244130996110994836181165678214924824962771627061043602168499356056490019677169304142086184689092014665581132238731359621259883720149072343444428707710659415725377070334837879487881065828930668971717800720179682002104555894553549596616394816113056082623449442874874182142077567782547554139127150319539332631941103144477295844783549315729530309646219918550854630708578042474380676770583557656565870482892567234373012778470612302573445837393281868294585269873546335283420666154940010339140002566943037223262578885418118678181032820382692000074614728048388087028012626854856058532969589404900348416103627880370933038591995627920011463065293571464962838706712486509757645497143919395717209592024569490657151186059912728135209806225071436689638485121445594001215005269391472203902901214922815868267965088905302794261304411473652868653696515377450151313639100362461721596059280467307407394620031431859153726767922309643098059008783266772293530740711007014256828031879096563986908990109205042918619027500830216351151176605675934260308482523435718815382869185696392241461259487477833025006745218326616964721471092144556460313030464703000093653453818858327124103695164563941242815009125156220645272072252156461915019212494846988011080874448922426295317161502092737350113596935084989705833271261218527717400928165440580491374531295164889085229159786271971590033466448634040386485778743187349173302078542106097214616171626524377656272033695029224635401669537567482114104135613753887466311600509659092009217499946646897225603062892701476693889169482835310667523502340544796478665383641564266755681054916150611471771629479593968486680797666165509518451523762008978946004759419529827193638228113554587576064322541578735568871087082658550460349807061822846376288507745064036215546599795805407658322479717865909984887279994803346160576836268860631084070942330325010009399591847839434640660158110982282540815865634648885651384766899584009837679666083249523044063333785807028273725228408391534538308369195729166877915682223198324977290347635414456974384037183323199034156815699293233655881033828410769871607116893852211394993266345469207119020776391225761974779770435671987128380469251763199820185681959273888769601714439658674423886724037601077462549169736952632478723261364203735896166283020971200173037143403265149789306486086237281674954372920850101912558327111901486491199952268810760731872048112471071170518142841751728783425964515356283325260418706194397962849600811884684331735861696924759222370271067223195636268593902995105561481989664441788507606177842594219252226349357979427848644456930762115114541165350120988890347921847287795479350949789264711091717065122824342752018413311590560583413168499271247512067709710241841647042811835231785703610411695763077191176816928892989565966875485995050224230426258400621639629595152366281028890565459568671411732056461602203892050832339955372377557121921805370271740949572207418116494552251363729385590441830609879446365145989807351217116730681398351313265018384293084223481290480416232156949897549380289691805165344410635225923187296571894132253158237711935697911838046589775661159398112797427586352374704832262089907103019319917452668471703486960463139075917341884591739676537899744584860059987914287439396263881683756612126010720086184902305170057287697867663195762232555048792672506074582315355836354481319480876408694737000853898591278401116994990158234131561911839183781039322688399202987025836558069239998576953467375483835494191820541073532294039513817175767417884054056786024108199382816808962998999317542938083077596020567594820713875916086720832658091112233982976097820182347780300169711127879014500955803677835651563775781536431403341753544653804157086721022705973035478372704881515805383673720139428244442083715938516680325150473476919826543558978545772691703914315522410581905339553862954476892172134554021425172944226929267887292216869693563174130592344010333093142693772469859428707933513029392253602401453013013579811800064815753315244349667185217481926258716858126867892444447459400250179417544680318909170887251050549103722711000329496068183098340229907139265540128984822794922746127346792024001928676873878049862574545768619282656383491286340440161216921330609907246606568815995697373003202246446871854095533546632723388382738752830702195792397410033695873131693821633802208245978889538582442306713505653543697181984531588535868650384881289273408151510810421830529118083379209789295441282705328766047598692135249849563161982240736482049818785407605801669498588955020714197638796619031913313299761259863146438263603298888749899299710196959514272959200795528280998566632114488128088753914778508294456802638648439900790851515905291496963217877706684926769987558884566328305702879699465075689039468988453798795188687121280391890921757176403100190454826487716935583895678647190456543284028643997630867165592419749424496284166119665750405025750607275549478083593181404583060955671046480283700687057534343536049579969632944864130972945622968765443659945778176432242165443554104537753992405485750563599884515157267650279442313828042321701143187314182699090214065596653617586069407011458089188305011692159998573717243445124816829345751498313139520911285228075160165661750806179087874427164677066063200906930944592425494370568478592538946723772445520626886961045826481672869810233223432857891926585220411438239742824503378542548705090795629335912991403389072758635800296125311927745750820727299544772061412368735739484093584774875217250017523486023227998460997929814583913062139056921108529776508609433483841695515835339971521434030127066396717204814218616486761553784655485746187574234119846553665792886023625513174923751901077006446103578933917077882220390127963643628517103053556856412631335349040966985683209247345912019060138229803960642855477632775678902958066770448159861130404984041084469488509445057155851366408530024291961879139265167811769194544893116521841556486329422179740986354452394540678482397677707754797911906710490628060602791046655140184194439701832656619143916569650566673298023538641923252202975385537897961678815523356578389503261714774547404191700752485679186488968494620323304630985378475220235196600302983005199562157486290878660340436449633971368625585400105929153411890357160153431412783471937402642116006385509534867336088746493977117290924169159931934366065572414242938423908992874094786738383998705804645921788749164968093481621349664364415038507690010266697131432345036919793644501584233222475579472653715352996038705045060554050060228403199727137367977042944312382876710124779565788084153322745293766797676426370234215500031434936015273937712653486073274599829724603240709361877193782442623985627893799825610771275247379070254635835835174150168054739320539427315867951685883054350402454264927405223965445436366794553414388014019240856298769255720776407823010578830614809836935639692525463244629712356455373137862715679961090664044548612141743993927394673037568712736860055551243413049588721827013145924763312943786496446957644390433671967309274161191117713164289776797020158532414035717721597644164840377974939174760281882526930997867795587612092885319926362233089727361904705543800390777547903117054243155196102152410313525614813734849107246158338689241891494058503380043486431652158341849078955097247211689670094240272590652049580044841258093640417830071359275519256638762365186707834240595799671389707932193356450508647593124002293334163660349543195230537288132208238762224609490479751905817142717594723560575695331166590948492792660032114463754021025643663184385523184711276267070467550930535455445650227119948173503785767611522076734968443186739589133421683351769803649099668546004900199103251276733162056571008537805092562401546601175331030968580057782601049549398677744331531894457253726679188041443190804549850256601107570665328508175193464442171894794357664587232824738484403530421229676915173356061897738910805582561346793736540017864911314431679738676800238468179087765886218672328623618422955202993177833540919887217624094739209814940545227130465680992813316644034053279909766954148865420570745851543889001248820816409172408629015784397163803905955088142329144666548705573730578984918866174890039187258476848431190913141146566157773430459256919111039286273296293910935059094805925241877640771858490563185028820139575962329238710716657747393526386998208745291354183727550699392730648022968429313535398460636203270989194844045683128838365467019675580309693548554804966698137843819308422218844766852834532270590558539753433802646595738332920915356524544080037673511063478417786779368247564592734033732803194150619305389226001989953786177037527316979336798579024164521195399552832949308116110155635290456333980763597940282315285185683114413189592636663132108634855821475131102955402879891813274983774930069940494691094430443315440795599118005826291588207985741851586278184358607268079493339861544684701515623732743277442380078621980605373108933323849952767779812063796270203929632540165129712538806178614265082402808329604901339187259152178402333382802207187361317798369807614048317620236076524045494465547179051961555097471787969765902870253075785590352003788768922602603505269736950762763464850644537534006321876280726485645154459690497331266535751849450201510792082708270715207331310846573114279494095632427355752456301467432701365555804449922439503822766876870520638730381021387417797131732186270549331613694130930163947778187488301403245456914900099358665620259269232316624634944342650929677344613298769030611726334328292333018492179841814962939162119400616692322627277341194755638370974106003749132317312435116371163304869912158875942830510936843748970209014957276886877439288023321832357509005129353360895032101548620489327250519528871213369188140598546389487118188313307033660222825969908655132527458534219897512297194263678089348011299305003916247648965490909769415865254915981208589341785429819209906825347688380064164105681837070272357314256237533259431022612830239516901750464311909215172917609910466127287663819955436192856011381634579673731986086558219373706340735991164325088929900403160440579931258331028430127122699511004696085358722584990031950516781687496995920447790199212696217095632907317409789534095588861138612701778627570574512374597846251839868605623358076768075758790000047576522912149246725681377067217288820073119692376439282828121268793250722631455171738622342753145694552547471891707544579058129913300878322783987755521143872054001740686563045378766429835730586029001935555245086104291550192230692419506340552889551901936240140571796454221632419034905695495501738288547585387542038812857289085398073710368616476568087252863553616395334891100389113389528705930308118441432755449464499739068369164733358894080324362464672473597282637209139859728895062026200283225681654957791582670439469410321456616475966376179898642710687381674028336788420763075758945932337872474051412192662084754869237139207961804236105716656347144837550812075848596588370802346587366152175556464809176998269186726179533688955365018628455917317196832050758783375102159061289639074312062767010161300975251553046007614938572282245976847546805312336990391504407203521867589877258170255391277489797223449296499928361233615874043633489132202240216568152756175978685958471513421735024345377805378593906338022385444875132116679771398474700522354313240277321200610857944056079668196762982458364154392774091758890046329755792047783929940477699429557602827080262686647253620226206426177918887851108389543981633363278204802569487802402639159605541902350344183816358012088764042486219306681438589199760202997277437965509666768693578803374307546145684654081190370565435072937865674780309650930645644381827545574311295995038393829054532067927923357518624289369156238575902156480731587755906245967800031406459958162215677003581172293092666511713419933218256862834226855747782127793856864988381458230077510025052624385020366651916377528270300889799865537111096476917944797606644220881935437706894926512450036991028059520884893705076456586439547316248541030591567109060331250604757288752962353668882601796975131426232788421468385176510012172915830972046477776542509269021679074603670139273113502916036703893215650115161258247983645280387859386203222449887473107331180655219044017466199448549112500889295658597933670461528844319861612261860317907074605053546382203255571396792070742078378348330925609466666142330062571172209589720338033931241921001669725401775666579951130439918754307932707078559181407554528972573621102117169885182245418874725418613742631019819756154731012314079765278397368028042495660809525336917712250820276924472395358087555243200636892169067083437480686374433825008779517615129772521437037916503175199570138525574415362374456154727148317435373039040440375927525713812054384377941045348359569994710496905624612813437002009354814813024949143572712922747907441389657216861946935514087979350270079418948161231766967401640094699426483208120450374322644070214181185778305685908113317813984034799854263623441816472625076681140216723966507108053563246264101894868944341259311307944649213681152057816346052169192899605380676136695405445466830888969162907537123923018062077099255005565536492535782375176042159130115872047306328125767161327134332116086253342319067383581922240514921089633935309444103487740029928367953502712684163864887553246269812836609927359391785724118241005796695208009209073637677026774609312759961642555731112190933588287863558832402903699970095890691020422963464714160862383367141968388428005667249614222553737492287758447024925038052248715152534591389389144091938193030309366496800339709763675152362726889548524259801780386461225894733766783571147923622889117018179690821240015119830398889179541672044353571243853008194371075777752854252815452707209816885944701655150506485572682610350607123184208486894739854468194793579137234874159225586147980087647958426223187241177754921217387506213015526950543041611272689552976306920091753716045178012741838468494555632283220759492314306081047259746687849803885080693209702355771028775200318828538363804538026038482256849619499751314263492853506082445075381567300335186237081362514173747659782913150553049496360923230979574932559208142238443176597336820469151913132234660274083602949642038754607157186661455349686346496267320692446379117521273038610155073333756748640548009405343684590519805407655299911931108183378755397443075493885963540030698768629709755296437528458098173284942120049727336196628138511501864854267804135397494338844284447468206221855256030522398842015294634794795647216039963071370797584099511024132677548135398721863893800381228767954075914794674828993214877049063411582290676856498827435986824407372001307571731353137290465112425605242116319510822679994217132564274491177809410271414327818427536418880989082897138100299565993596243559448384739258001423832091615596080218155313091125681083263765266312700953024946831985385391332828178418984946543300710242109716773455416486190042968863716394951368510920862376422971096975572809536773970160456788016156867570970713100142448385106839466138664578646483118699847178122195394429086928001506745257371663460239329305429234004401248591713854274312836057740732051198495827742272074881653659382319200576228595145364569311026145105160737119147432280744500321812320846557506714102071769496458691636355009761794620482050513210449809790484105934984193617959902735929326575214202815810649914032319122495799421176284892602596853716876616448665827338162252305535962181247162693495145018233253465217659931739162708162960705295977779310168208269249226262849822327624080339877915796694877123386937260782023096643908395654604145768127438757377131057541513008555962248622298617729578952110727178106778844375670274493000482740005044729506607419238558345956217770702375885957336305875051678202526856042067708160106324595187739891762929206543941881652556755475257407817644355829382020804871867664594033033793978965900241112648866537834297192287556204068775168595025750916062244323751174889209995634319670921485849184009756061212689921149608862802426855417376437153475704745633393469338066532666758708663917606445334975130938436771715019286367048842911658846129277616935188363144724515700293957887132939325066159186796932041025864704777133055725856011437771068405563836161245872246430838959350664891048454395237673860254954112635876871863833887484278829772678707341447145329788260997128842996372413960403006558351231081946520485995648967396139996999935497955601794352428032423805451015266438097674379694312437479232554030301719317807818507970702128536648823718035531333005824620757128285473776053480108007527011998580117426382658424594790844719408669315245246277125745982165286129294926498179762845912479936467598361408789891408837879486842984976610554428010310142818230261746104460132224178973659639945656131643159635048967433536810861043933535026114202955000424100288646891757299921537001084936122350195306997859102829901939043693355384500935483581520005185637576327099417549717112771911378511492522581202791758452685066861538190725343983149844844185572668920771665659074361507653487789382587983320824469131645436989511575337786925014047288015973213124726360600296314921481010201859003633980091534846204473626876398553934898139081465180379697443582002737167343453769770899245150798865711638589094348219772359493212565780746329795650293048937001150413555418222876093761375121094733034172635592793392982125818429764103752613372065296264013410057154051908856568108463299424988584070507627051368150589921815553864092516967006589953679705073166105812438872548979312338529642100458314901473003775327510097653305377753481089502836410540363467519642654900554980039982293275200716594934280232425545874554807045309666888187733006601334915123563135050053443685364495489558512873849038611743998872229561140243429064485931728407671914065614976970437396034950619076396496784708562132705529889590022957840115194368757711933582130299227847781581870516836193468094339286612431185179935690553784073073743560286335670128473349304086852044965991084551281623391416519263009214617100490495334400892426851906454179368020273770108333692840383546422517675203301892920464582456363120015180247592548539400795667167701805590521473329035942028676076902894771132273525127501326463575635071174084226707859826468896400084623843965592040551695802945353906713358665150580009182212058709912015413708055509596139639563837443973446522699421661489421822410517023841933372920586187510573822472908690040037018105530155955391006593068603564276016519275713373298731074461435595199165560528980054112777011163181325593643417519163129904616109746620011232157545601546762291126880460295665867835436077339565092298724283006948641345470215765868597554714032766345844690467534437211143363132762357093950822161299791537117970525462123986455852310003809117466733061434041375763276681646379653326516598217301354877378735863076364060955218746303213359554922903362948282534730826591685095314727044255318259183938240775218048757688717833448202617255896671049326429597798305565184473504402063626486938941639954838408234588130111063502332971620444336046715790666435491198600681142958843236844613120377055465917308761858037847516190011555964703229004600888006426528645739005445688025951025067166445204537822295216120071696457781552198170590326992284364536978084895817398334429013493297101459102916408540208783197648359979166298873155553306055902387586738368432938540270932244478615132161462025041005598559224404318541313160999019629311585893785710138457753034280121611210949385974686736667410790938040735152450251522394658269042042295566136784056850889570155081238391865977336204435406426081466115921963288061244807671799101926047870577092088836845960442746697333574953085780821298762947568401301678965682488749955049400627248679510696309167637019446429137143131148189041351399005918325097450995287282478233133943027713236732899518219459394837876039300678497525010200447960077608366581770712427159538097803570096302518147705076498853331364610716626377332389032777508937066247520619264609290475058040982684792814985940764172505384940502258727185529649633402385839386584676360301691552454713533865499888430864189664769035697136905205527852588024899273383102354664223792243385160972021949506127719355194814232981953758373894450858936449464266374379520264801012309518566876525429863034466176951196363064484296943913754046437982540965631407617509732385545936008389156219989586131360537888375309818372550205602224416475742180859889263348750650700022385181181701751554542172334402656691676972251033187105618965722566647436476799424111273293673773745618662328516740066640644207993240853705248248466626555908627174874779277536001698485253274117853988660052066362262679999036290848699058095086223464874624178403489043042953618455116391140956713629106595325305561792939636476434093260746824773844426089122848432203818005752091024472650875630155911237907508737945371451099516859445746024689853481565462052189498090910103655442891419522013948682886764772523397474234603127184322619853277264065234409424590107761747216583956226990580887211491390262594334302654668779003749275159078892376767705125359102492301418209116135843022381745803049558008734978329906452222131421070960892724729441193932610546743863575204711080096826141887681933160741288212911003043970717467839739330503389339702080937670703568968527106510948259955156740817553958108719210179666019000291370253279789274631773601294738996178063630254912095802794235508830709482819386130400498187421081002578468531084913299002100536929539528773271037686373800702861622781161300290304229539275947284456449269123890017520335606655751086389106455719332473335100669938467050728166786935466133686059928434250768916375039168839532281582989522070508763028721740500837844279818566814873424664817456425006354727002782641625786732774999998392098983738863631208939517901130777690172779809717261966684609952731823518492100806193019561660368274584143116489144723757575091012193027425564491924588520630714866908088043968815568798956459554923781271802467450068593032480619840206287740590450438472502523523595949644252631508666214862935990654335968332290773845727679079889713639630352785693384828811883289089331455886917651399532246996444730100035359018092574193944448674151770817075297995378588335610281510535841821131419494556397194887367237348836983443026646673844177490147720273171327806466734370537514748390967233342281151499484504159641401578999038090316303535952266343881169790656911730322519995522927519083763578375623707241817233976086583404270354155603898924587924670306073886031506331484093614686042997396268936476639206470758227230158597758436937608210461858383282763108348299985558817635688265473583800735541756150547094913366568339881686293688310205077708815609556665946372374919485632177168409337700118069958230330630702293069883372763459028784903171983930459794067122725340447466133488553560970115873895340940100722806487146821735662702158184107025036232289800859807822978124072776469832512147405562912436366113668256386283154432602470810275144968804522087676598174548851997190003649274133044308613359291565955237721074471295715997002707621959176150848547870633204452980344654221622493783644016974441400111763160906423059854787416043762993205210880764167989560112349558493660416800097524927636483827892863072032816312248924952425921090414924316271888504351581518488226991770215503467884460469692589967811268445425381682664312536484237740251160623402259365424634419670000144604408588497042881535177210334742895820764005447661375132954903848605188008586999203407933152666121253377607262711618168485296752343384496761035746979643277202258897923473044505265097372785765682879913293191784789705806495881539238459027872698137374812481134501746435068167434335299029499935152181585853768956229785280380804037912048803980912371212474733375408105459554284994304528836835795568958449377470383709767172525243526525265072926641018370177077116417812748914772928999117194447076561141242571298506236397112879858284952739660517960770716855901389468501291058098924972358720191579141211791886497036748342408149899586221507472126473447950096088180404988899855595413249271930790320354338826166260311067460807173709311108057888487371719238994744672709816546344709488466493940889676887625956474900964861706296299527400816512441370483213708249517863604052783189850636005334559704318873287059759931993253549917150393981873523333866773714788086614304850680061252162909427827971856536984925998298030025518441853034145392030138028088080488536182639476966531306290747071842222859442121290953190629287825271352796867440135617997187662101031588797992807215759078030277719080596277448234744156213311205392818370726814009991713644994515643733882188153115515087899658122054978271318417545614656824655051924675455952146360336887358187273795807915432087293028177986863932195815690149087639704536428066812852707240982877734251500137267518410495740936309152575359796671576591471743823820252724434396613121068889006176335385702224214514382114846146639604160766383708502191087482609548630216908489990613012607631793281397549115635077622170710816405982734670846268993769395506058755783859728102899674589442331696045821915956188800910770854498077276533557527755422510566888251967228541871270020434919932230292566784504019222387484295249634075973138305601002551450072146925529708784875126545995245559924912197704049616392533760050469162472931086465349762600233452582721924698673353293292936519152753292185264222413713188607570216167583173852556621004835364110937795311481340510069961979026532494046780558383345590740751694125276284668813689738463956685854277337236679592633693696333103153498681943537678846917705878040912454026057415117582088589937921794931666664222536978083268570610633825553231867296214349772669633855737608852483738201663235462232621890461287938669509218697044836651021648424886036282783997892884862686783292835452151784597517971214709571340610601310971583968832467164620914887867462560166521233276685258494379589435072754072156559777170886963444924137483140125669753941713965646555990260196134580251077197973582331558230762137661418952593202299340426161438305610031619264724448389291627289895549143550566367526728538135880255285755286557701421564940680532376761422263382763112033775077055796640288549523052024675175590700737234166781702807662641986700968913400193423862718661885441270441281603927387196598965665116878840294699536595515071471475410109172293577096848699777223624994574623944064380601174851045232604353596416318831579888854241348246891396111371099757580657638698626760562776640739187005244630107024377753513572799649637139409441192709847269575664306231333895607952114788989794875830752505650829022544562768490829073485585462806669386824928923419471230741898192139011850359927108064517047973594041626063306781087682618079590896897464484628066356970123523136023411118435816157714479538264160439922657205574082847633410415571358366442488251052506390829905893242241555771021940766166439311383203983072458233670901330724261707279955704054441482175137681154732583826616904495377955342116174140558734583153180449417794920393803118995908030598523450927584835185688065687217071991859398094862330633389306831442863750199929585971880757264423418400025210367727006553547524069884439469026529755081309553552139707969614813224480883634892797421705917040568076000880368893608997745909897515922567773139502579114690661034919814070686558839052533102387422279166108627920000397433686849313583616163487947114618504565167124312090770327406239965335812222838143660707162425574105389611482661210260972196945572623425158388410921733361033986954475740501497133065932500860724226316268326252970004494422472974901116055143400439440152407690693389330295690548881159702554807179279774312370295054896834503144223898472460914151265135037947117173396542151692468744990570602875653217089310010509738393558421056437934233368891370021865753034709144011360612982214194613579618329736413202701158626640440273246493158813615551917581264433822011585237322953913143395897950707561656745965900133065509270553202077743101181444649465735602831676721152619157191710343932369824213677638821681124578318641859877482272072839652450952995624065213975759775834353291027087372451385290167113214763295966077763800012962561125797359729598823873105570069166792415827300656843017219110439929672118306292654673710922097697759800037403801518338725768454827171548773734418315487129377950697461885796015669911336414390504342054476539722322034183339727666119063807259637447037826994208420930700062779910182349920109277482762627568920439904208295933408340737044292742229394315466607558549277700900117761489776413791115542811034475845761118266443761738843726420401971689621609761636378789507742014327430750363826251576145336906889619224579424983942239561121715304297418847876292294683944818888089219503427894518655833226452526244333745296642698475205509819687668898962578963354346625431369954703896331130721995902713904715169271683259057291306094803214821564652482618025469380613905072763737721907468239823494795306138457114893168657140133946693837507617085234592145733152689031943452905119182082033541728355199117012006562105119198729703606329183995908271143165801953530447169418008363122220546712219361789930420606820629388073489525559090484733908435767639569239731865161215717795737780096308124720067562198748263052804010665786520255846165952756853940802649413303377968480923689464110597902853994293520710074895391131196134106754544301112380307800432265047650713238390012282651183252845034701316469304565416102059878240166758277621046083676967989300829571786297757799257216440001329405108140273923245348157738734863611716642191244528434448546855374108943082231396210549898058052633752886681624072799262925220511039729825934280036415058819811887763149234845766084263887965423432505099231981974958995125303019815268159950772316823417532707790794873020233653250646915077232402423776844585828899322655751670544853765352833595514501397307457871729974949729133797571434555481123024951560465875938331277730494949277335034841948739355442985189460654093079917013571010588831710021651234500273116213137078138964384190106527389062814550911549719321934539827887442397926914022352345454364525603472893338078809487795018626624839517429344773275173149881609775444930574132580217131862149902835395541502092952355056079871043309102892198146941736365702293257915930105461501957276900698232129312636480809844280369752865141524605768364043482929107892052173705563235804801951854411895719515252399177429750161742842453630887064745942528081526602715633163396292029104727276461120707141530317309275452091673380365911143930647501224176371161311505816143990677710384729342333583065334513582975081168599879817786523987096226990844756515326164252468271833209037938010217983440850509119506599951593251496727389178931330380278962069629823952859600084449780002798901298538023796379320674281570056803679480384845634456623043565795296895775738165818810367766799592691215437601224178886470363342214359184448703758528612587599804049857703468380628375633335150148496062896500581834208998601115364576502950542346414150443433683021144573178081462125327480692548808701301535562710898062534835084360815954402071886529197160686209990424952460479520610019310546032160566299117455234296773187111282552913153658552215821402730601922520369288686950246712042381122761932185519759957566292518071679560769670047882755728285800604309992791150617608973866363886611824845546377168965058175029362008644784416092676643091051602478709051664597205583027362120071061073186432776595313862100178325488440964147380384640812223507073546831293452326126935065119497859768350145715759878826514218188870593239633100378200712913644182462665639860068145610667878767208110826355762987303047516696354965625750839874647102027575363149585355170596390535656902677999543419794277375207673584582496104744599801724589273590121792697580230933532935185632829139420446764904920448624217567039347446808729277238543701803592795396045280876863806450599170270571673663321219065573815924435495728316074737204450149204257358427210431964614205872297493705201758081552904029699119311382704449707218514712707401087349630007544288677224331003805135957333443064908935914373454716564834578759181559182484112359465475870750248203696860285942271381583598948697137940977361483140510982068514497890668973283096580294865466545671955826105260121761020546699933625007624695743056794190646931827992630300664543865234378209774892910597354492909447342594237365069228272205762873869633435707235050929299048625765995123585715804204377947888345011894380819180949097353327127614752313914859518466152951446005483036416216979410285936382208972101332497278168740406364139992307892569943375389131269667189584252900770257220869036671260692534414990968879892179882299244819371246238779111818175874721667950178629498721345564092043769115775983233847833198319606541937283565428200830299326785485578523411694460155664243561075993666162174424444288963618902123574571813456159990292786726910555033310407181592480452356617621468280192556931244885489098555032697809374155544986191384091375831583872452270336129909933564082556800649865752351147404106536772014173013213027665217554049596152491939264537642386202051242887495751178125235099414660986154389645399734063387225799328314594987973895687451674160861596853721019860045805305528374942046809746360441873056662277546694719222752995366899611738789961365949334346979168429710826323673260764653558305386320927570566908169310703573097029097557748371948559511474840335922426354621636828462284012065973522334440986447196247160351131861295872742480344384403672084869410861626151713981875067142586739731932351193809282475466789681646539422667524031618029318229332630569560437162520790607446063903188663921715335263920626080589880914884916027711806646467601460166929721429834027558903867739031351734593197728685687642580691109144715471676790026362425055699949956839394527405637001633140074975525325692252533777464593076884507416031923873311427340669051735203239767340729200894152493005916584793617270081081816746361820838963641204392195243709146391158116119328725417927073564098386810806801822268302711419140357448320529578970487732487647554706885146342213481166999263388753589322518084283820562424654377183205809785177992003886275328038480658845079498023943434442097373710364388593777951444524064074145258527479596232483691853320288066287584890258463054232829061177798251950014622039603020988655687513467571154747240339299370356555379884080274956382343236023989643582887294600285249364192446374483004168720235530691768957513265701539501264227805788192256298548641958760114503733912142501299176695445154614521572187686546432900752769076998188300595460046587316303661349195013464838877646120958547918454079794515974036361912519472431547033056890244702254001476768088234424793679852684096937613271546154015930426361081202122905393030285750723776531747542417276054614559969689137926817100529079700760594457304517066437328683055889455071738335637336883106394216233494612109611071289161523043291964082989158794918210263693339706068480389276030420793639341088991615401420358894745111286834550256434471864377418195898798927625990981433637377145738282105918205364907764478613509049201287276144836227227482275310830338162218805337192889289547472680322495667229507877889427463816533495162804861402881077854567809380467576008894267381800620404198912594454282217995204815500445916932139659025113734008031755475703335261633253645302269861038598998491243958448484775887631237058366509959022519260585855999887943038708260367465178284891808479164769072964716536265112860314586192050207856679447594051167007581426815185634623048308705354270814904153405540167313939349802503059864346301172596223459762111301033747144771854317259520267549103596476742556564670316359338347621188429996942225571579519587358328897938698953559496823425883398202372644073710224495665761034852424750226371222823055220982612035146937007736634961804411137089787149774928624844194643908539692009597652501375038150898377470880928648130771731517583238791392987453338460114230859716358819729577949610134736397384634459697677366481037430186260187160081596887806529411910027089076066946766059740254104618922847643787221678321948774733219708944503246131871794906939616788687114818403596837334385946098078216510528227105701633076298325289184848150870827756305703109926887659266924304917630943471973693084028751204448586918997318293886557932742515497898054368272042779525054572878033296364096535587770614278197299628952926959953759322176152354154268189460481163860896812020793791162863145776971684947202181413198546767400055848731603773648719297558046685774327170817316116283061001613891071112564730695469200435792975834016257242357080557328057869232034436740600917023343280845588354216168673257880636883018664640524905309513649798966992704072988250714523653037622062278342184505505641695926416082677228593307265871446374857429462406328116752955930311465401458701228446368160414395251267029460735177957359536650663935741519579696126943513589126872297001108110100222237252541586930755856789974919910439339030711052421163052065328122452475011784050682917636567986759975228906561655140362765258997369280298103089816664134663556808186799546315374171324786487277830391824359925930548036447361347646707379892619855905150286432708835081565319772797955262333887542109675527628627821333139643281800092913392015541064005293502699436777583186653872176606412579828107601050488017276186566627017996136467310850205727518778018577213047199343754353981226142955563178147936484717792277552231453169265939391981288495166425681114392434110229731653789725019528517849849303305623564423914513406602754434209419507338176462178157514620092540121158134261696311307677831797863085455380449794716715068472415502550940132185732917969038907785464453327544574840649750169715516747229845694783602287883034629907619857497264014555067764682790088615153306940056547603339849555967879474157186805940858681949271538233340555431700682645778574001922715740453459668035897421096919581531300835886148136841866694966862804916353055599497567748201027375164547450791353519820243820848538280086442063454101296333947304672316750280327241012996238897993374423326305370846353671401989552778668654378995889178658083898438155355564082769851594213724354709731824841482680352863357754582163464942788853019645377789247469624317532404031992497886192747945089867636787697690352457740980675851446146977459440399669767145905124049215228730573991427702311483746473329812557527549404726993809640329854334130951416406446850353739099252906360408694016802549857093701194012290505173741846255136923475783215132597682722010509897124124948087934828794340432951587939235200172215040026537083427265186110617773863133380588825454980757795135810657676069299864637021969284997405025482367974407474887521418162237402265529545149118591224472509878692115573988700433137174635408496550342788734085911547714652206622458668297648675136969073338935141372660766111789619604643447023067121660297849994486159906070217858983068347770287634471546939661739565127798526851710136920877979195131410434455052091579618553925417621487775770911269221308980823064905825070460301293052147315189167737706997640427560410320367392139142531633287670631146886483114699621919852897342014235412675248240806230043701882969376457907141035205599515979369236230429355466949651733700822192653449309480946748892313015115013205223031362696266133275137546075483734345731609645453210662239487915978196252830403727713521038043743006509345167826202981040555332004046137820153269941520161920188152282068262017702372964977467320947809693344668990659866463864232030190807965591843427751707187167379528479535134203567671569378833364151026956991219572333912118234303698223150595868078853617603632919955270484282873427420492033280340421297910961296134490969779597795124631650945118048175625427840792427539608589558850019855996321608841880052373851440144605861616822051853511909341804635314893343816452636221112747826042179411887005146632651689534700496676360553234013187340475714562211707828310316656156547136158768601391928521854935546169498498747700647726167563708127053092974941208459601330480057614204704490831544967051699131647399223034637016218519249060640991470144284779580934606811011006918217268167004505818765601924411847971120487016351252028990112712694435110557237193349599621208601007061975188296680845477242481149840929313868040780262522915235037790321821060029950173031894221232484393289684769863414032657664739239275329015002780763966666222771758351935398150159493217348920341192132857723117216067232554476755765440555076500400472099900514830666299779600635654146349141108571046450183563594104565908299952281254244263980632396297412481313564640719226370662922294219231489485941050764177255094649869658433766544075322844862768606028572789453445318764538529326925954957975231961430766607635865506588789970123193804092898584741716842077170227671590980868841483023183656042485048021193801522046562590387637848332048799625247516368110550959123664587659588284928736799565765978604753270849897057609358696514847800532292342122275711698675079781400023980358707012187778023375285656715047319245599923427325987548621005624703402221533103449189209638948582722949777981451071042826310516099389298769426781272957437165097140743968344047486050092445036105615149446482997931284247985750463131737420562394061392651678127544201636295301435992308486650075808710485578154563999137786175861156816047488114837765128745252861085930073544780169653443059157244815666971752712791288572930176676471022158250918163818733356369959532507553038343744981363436591723648093321802059475025932133131398634133179257697517222539046311895084552531362726420698718478608673444945606436443627696801507985085265939935031959766178804101249707102174905004941921881261435604331204704510411767358170142977022060743144987421490776638298244468893135848248564417956790898530082439482092957954992376759107656736657727172226068824433739339758465479128866597422421450047768607876116867744496363369748036042009644704118776692310691045110654513714491906485783584335986844435142771203767150689692897205616979102467129464407690657436568875580402312530310886233522229012648664196595968651016694309990538251098965299454655911090637775612752343158875153365260810724436782257264133820308862017855766006625032985832458650602776228373805714028829717758802233429538172552069414183190090911933885893066519392737379555030013745140415792808213437951988480122303329738717888242495532100074816041975412069097249179109940757378852555170006572111988181706823448163312952375460116576504157724885614389684748892434541821834401904664948544255372762681852795800691199704993447023046181447635615617572410957979909157601537068171246035254015976331718423243876644478654846672841061066395351998091936442328130502739222955054001336255080374087521450049701044456772441743915769606213702221879680439867041185683607727941188507263901601958908055408569120555367952181066983851282242016858397406528430834842227802847842897546510122587268430317269199428140444798669556424104882097949313707838798078903656596813875837919235008008995610318346093558057284337213026898728305187403271612399396121520098025453693241901066130761274952650286822070344261948316257549799087889969836107667512294128620004160396296329491236034384958707813251925862731847683325047499992103290381067361402451114001224584649025600932810616717920446013440488023005153003688420343912225670168078294712409181543030368835204006174312940501007773623748215471850502294734161073293212053975209254024392612082078920714414656848965555455771155068607305567951444708915798529002506630342144952200004464402618428696246995577931092349772031065650999989603619120720462087203934005801356770275906622480982376446632165837470603621948273084677787895251137619737570256715729544745536345159366163191863771709484283482362050848480289076197233226929911964266835510890843595233681389739660247785377188699257579017825354218563027865736035771190248900176876566522578620368657146853931285492983401614114429828497823587566654421693665999588673185667199205146197498211277996728762959480026780516419234549766179699041486072151734820717645850895704933041227809778189192930362268558670501497045311929389323313844956925412354220879907583481509294358609735377635706637435195835835742538281175772948892831136063516266691533040339713629830444803268127796333657326610084670986629271196809764051577619558683101764465406332330368765621239842136979102761814325274877865183880592782400998477391349087898940443415136852891146901964781789075742119442887205557528125224726213705590709124972335677240348922154457341075391555313903526851503127717144079942804925012969289382837951433224161482783396693049642394063167833192548332574717484363182815488965491068866780248630497215898927798338257432402628917571929516914014598540468879501571516293840848948972921797023215237098525211440206406140598305073329895021773515979592213688833676065037335226957304634415774783770146588841278024549450084501158408883836238118614436810769548744264798993223397873003619437936435093534642099659015521500531932980452633818751815316837628334877013838286181880922289475330898920354046267601017025527652284797271503814070127766734463748993555500180831435446568665036261223623944291232137049479223173639203973275639152246314506014786222064983246229613650788793308327914005899872099439560784359560966994698277088286924736047400129638976027464407198233505305467552052161166559148685301662364080268620684725503306323610369827293537056241997033756703691159004374285222711991605394657043626387324404494889773849277760004094201401813263371083596065247155389750703351139663006002679752679128122785255611709491649967032177544575351569001227638569759613153652148252105025448274357629263233557535883637182721997932403545438598743074769322098376187214639464272453877070368766619059214135738268117651653761141085643129891541887334351489634354698227100892910472039172175207296322054305722120599961584019592394318066399722499394508386785310033010165274502196895485189885306114240006658056264946281947065853325693479475060493050927696875636970669234792083687231075848889126400251477448970050866820813180537617507386965637805813596960523850724438445513265583863989375627186290644659413038870721748226307337692130370288043070697838191633264043039549895889065180032721830545245454666527936249112499846138290522901962591253020687269992384789762213977990582690780680462294448397820351864331327815028593640880972989061606747324470504804775731078076935645497979998962321306829730313869936287708083515827850532525290038767256423916005904962155906842779958022763088737137037408159270857946968415200708262580448289862861268483101556415363559146759772453202992248461611194844025436947193709339739135155590647761242740600863672969159094809325471832967990800114572677666954809361705482912923056427708366097121971219221574909404630363186544589431385519166842948158323755010545889354710066695713224720876572026384691327909974158317570787140483735658757198559093648288626686895235369881447311209621125647175959795192418325886988081672974141492127133733917521523916786125792356483224524901135864252611272899302216458402472489597741572145210627666377797782594921798839819450795840246398824758896115868365874485069611321185324402966895870898024651912606124653093288654145599136403738337974774536367435029721292826182864277877814517984104562273939121270381184923586195309443526381382211038127387168262624731195942182982360689975947321027222217073660285559662024893296021121213465925840100451435080297852952238605421638828026988314477768848480129648470607022411533960006305120890103604505784585342277949278314010027191677541999385423467214571820070834093507913146240220308380968359850774901642130990781661126743086216421740150176550418043380618018848912726198646024101697160196742639331858629301060632768757046163600883105050983520131792807204290339374612765708501541008682577117746467176150916901653699213788227189456873013222260595283087700083614082087985874084884184263541600911023688822216349089679794771952040160318234839070975635916548953218112075819554079586719474504570766057822951171582031941353692833670380433771450603136786196367769791552068161073178472634835069373471965481212475508618919143419260786071259968022038499885469035535618933652787227848624336039598746140362052863908116492694654375345641237918988031320077399628033007945315663125569369645557858494496528071532452948486322179750074210590626419252615743210831518804637646137164436606060493503882684322230866364127925136314252298898374698960024373432747785753047311647245584782073697655568825284365540637707548408809519044344082652734315583421433851058823756250577025315495121954997767960298228396470818220376579132767709900762677965315533868836729063477869693213053744799424458009486652747759823457061943196116042006004925299476997419351667682723109081581894114884166770058032987083123760185061020660532003925398365134205169346049442449786188472494826025821925218683367420356783218931918051153145636813336788149809880739967511017511180979763727692614162670439686073591607836922647333522092269456913649593951848766048799637440224984553882238892447117929414527950085911234213712093221786426077838767876561825050733334181606416479128836590469509985111513921606060570770657279691294643900831762075275191798633881882094072583068289619252538419925956779724157530835062812452862586487184965829433474019521306546992837413290817481679834022054190675076770114218008638438024010031463555049427724865698042835161728740127133923564482764747230404728421691323020775690176393248788374438912276215639047277929846992149296572094258210072528428512290912680069344400709418496284693535003409733788957059846986266534242604250535457248861924178801950416994756722740495841812710820993401081650269493180721143958118390555662515003834474822906311619978030994452006340314125083740021889758244558628001780929741802976766368515810122923123767535786383414128622181146691294436132958687373137264504409398766139467749634290061573812716507659794489362325967228755525848639176981825634497766765412729174008304997697635235008022218856401539394639103072379032103047198159892087406684081842613915057988879571925915743623373338065645113905463615704356397614121459842981452971379780035574664034657592987871565894674197337202565560673065973815998690933334850114923403952184774445953727685541800245252137444161660100327880421947116308647965378417421601933582158717291330757979218178928944692327037482229832165255171312851483968646445958486185733166452185866201016864684790061755093234804914752386315418280640594498970137064636938185757471753998479575710517528704264983244386668115122897044015280305147164326181763835966785550538912982438752925460486645812733492561155240221720271888651090492254694084466442670710827382389114718286438834121544394342539443040892892449326224908549352203864668644452801205245513862026701820449046029562065736681083262912677930728095658846675070070881927969259736357329663070245443953541606172634846809094639844435291012869930482393244322830145228639240748186708461630765347122932200094346214134399442917266351243474849487096959574053211530979210663224469131329871419691655696552643101090328168662475652774226134714281792761125822392726618389880081050364254559887404979714660794821790426524474930172265534098716942635454418256131844992695377402780738226186390079236715699049984864648639941328602298961325397333640902496704447764939779130475381836019132651245910687087842042415572346761022079518448343247827141820391257887973716495383042227231833131150404186664133452134609826874346077083824170662194433039361741895033436786154072208463703309830966528247512607207256808381194342127953172973215766316371905455656806226254897026110791493458275694285526896912341853468192393691702915837831869880346091440601460060102061072286152257007472329063608272795588535770724374510298512675012516636834248946945243864040373397082774988621881550983782481870111783954114134633711241367276039703546611592346085820814657582698041204130847720495579520831734694469298864615894274427301556407440826710564019269668582902479042094164397965984247298533523881384852576513910293953127033706251134026506870127966323465513525710545224404865023176685798754369242888622164843471427696586669049971022173746588145588401275050030157981088093613481340443711587098843123866402569714053131156489483852362877650930738653485809895498415746157792536080261727909449373660360186985118497156521362470485393961167486058229276644733803278535589129078582610511603756667178787966704866570728359969759434050349392538810659478102422340648643926709055796118541460057670249036560791861269988765720230146093621141654096834625723268627793516443690134022327814262112372749400133400237634641249297554331308815688735938359431332769350804694023840715997911116508474752511501512158861766870840145733426830853874121523308788389340716677363214904171910667092883699799569890425273993832609466578739814111225773000249286061374128002050371743905438829955611952410977983826382768672904074367943113467571384085862274172108512268200132364588506510190497956431097715907118544958493386690404873408399334427665833817570190682060940428266466214655986195964235964134762600508839777057944421798536460043092563305396506307088657934628268665652318245195312799597801131958914736932302165483331855250785251027871413239649727197843366510213376931835772541429200359567775042861166254046004910640077367313977097929647480150977942737666427591739929846844591219834869203366531404557040324118311480696515310597695220028805614488210992291443744867639082082958110955131012594272394889825917418584487057012430620551801377798736540428398092459013674701977732212211543791285659211386116999439684585298743837148188873363468468730652860995741964652600337407786627118868364957067609985390979997293955335123580678426287034118459553843259950764035244170316480245850799243469825964513651065096785215658180869720497374552676602696919674895840041327267403883326299394204428228502547210857900256262096137814298130239756219578365516293832358177335533462479677113500590590925322295118112499102640808627813068290312633666751241327740511627645563517782022949315206487391825156874080578426897698806102132633491622605279317936002166741182500590200491220090090144622834339330037362232246473048019862672237023129861618042750690490126182736015373579137640474045152733756498781518620365810399970385857437015784293361719285160591204718638197526894534754609403469094796210658748391463718144866099265335355139290805622150806850124291089239470669709595554204802701577805254785056050697887545127827920978989858143226649898277628354808732213503809864117818023298472684464852787162194104907428384249151212258502643310938053093341158678398513751472313036656455953296974846320992942994592410581916468089611310481264387488183151891827528263906355275307711580525626558264512129039539487130331215937670575528236685396688890815065115731789867710689645738263099115648422284725618612820158302865104873657430066597566565503422802635179883300939554090067916692827313993900972521035409237064950357011912085159443039660783051368747281557280790736041646223600549211334493300342611833074087468792771146991115073011897059528757080278371355136636369366464251738973857264469630999327993793981592945179771770332683324391972780240445212846887260480062300503536712335768056865509578428644976977210726823884683791446674222034756066214579009724074277091024679871464226824028120720321182008855681029175604705354160221754976247342315375600568701947359128297528987682908012676589838631503816766080080907555178831714728690558176736216553260284414152886215154880070019025878841425548952058754497393968115290119250646416318743979290238213093798926625356615670852465756697591093154162019747294577666611835409629220456500411724949420025381421919278348859134102390082954265750905647259089729034289340109964722855378549434286810003496774191391130240085816239881732954081238481755094448670011606311663978702100455940632623014364584347208081743519307489256928920076985926309576242795139391892163985082101352292829765578358720436517590663967537268896868554087997525525710832119761870136012909327556481278292563195049049075542078985531807619718433582656927474924987900126278917473143253144484982460872587713596252119597065784163159247951779157246820563397897623480004798983288109219553758066211206927742112228130785671354244624988835831417730649358318363516689900856089691361813611823351059597041092809193068676835315508120718646276336300118030738752897543439026733813061367251214708268927204633372279189633879835875667627475465764868306417011966165181264030679371920060766836412094101604761461069045552302062829502809247068961638251433214814124666531652297280174186872902678329739044985006180965550804315856035081878579996217994371548280781116325364109853568501051070767424786780388261182785887272697933129481501738076540846326052552209114461808994110038475986948191787755276594288132423932532740606116720737859255710583588642692648967747990679254431151748701217869521038340203938620584726913147183193527196045982252493413902489530931577897333795308522344184800709908357367634033879734924705967060937639371939502544904687892229165513910446715098720577824406822804893176056768195800033766827527330948747477666377979900310961219650922372001748921190473494936323708019707547996368039711035308878856171934397886458261168285529957189424378204545168424504343913652477144228114204436226398502275524132397721378537694633789175941301493663966453377112299204219180869315448935291994781978416131001558807907260329008017704334153333926466600603485839198880443942068065228214077763449221174714164855297833634078870790575002857631115212003108759846575233227427649863811102423603493172113781237451121726009235427722746159656696853752835358980292284415472074940714779479428971383783538920961120636719984005163554191182077101687513395231305675892055281721717922350007273830596056946113633475307859191929464529781824274292966679733144016038158198700202582592923633750630189425865367218251424042811939360255923588045919997853003339898071930716062838211513274029089624781613172143445433450145609961004301227928068622102141175773441748240171783652940809005622711624925715179388560033340636555322819146993310919124534347215922774766541510162754789636520987736491103026578141929490384041984203491885043177726087589517761262226314047510399381079025875260143134030980081960042127197083654727334881798568825409847545247405107783230498974195637657896981942141921687252259723461045155318538929035827268674202031332588363796697029906788478393029707314114548242503791395011518221095690962632181318755589108713584684572007575551193034849164793852792925853991718865884773548375458958512280969725242626610180297119372361570392187570388148030821526574739542433229870331204659178308171077744683574924610021442865590861970366652814617915988482202279190978427425382211125147108683824942832945103370372369174954276046985134329689405243775273138775606402576247940016567026580505045770316895554690675682385847591528092196405537469787113919758368023029534303062223854913725579723508907894046651868390022472096038112210493701531359117443268329753925666502542557194683032548947379751888530845355840224329411434189376442385226719196926634775309188991228371515981080114528898090675203657172181053001388089977177279241349131921388296136322893261080303352289059513655069895070894965367231756010216040455268922203824906677584657350027712438315780413477660538203270074213294423498058258320593916322702335204165579089608629679720533887836766255077894757571679682079460197909079674904164724762125723645930522411685022260910927838201453852520395021454159941356981570352757457855467247106734099702582177038120123410911965106336802592590695595300869292178238042696555430877302681046608927736818390323932625146289703243257818965917465437933329822752412380277616535508383092201979483637380226567118509297843253337240025405649521115706128045992550444745618128003820852500336785219588859772146711805929859933437664547063324786673103085438919185446108045470220495740240427308792268206776670261825986964050926375561277903177714092867918826273015228711046883286505032376656273857512662831198885259850649960708095714690114901189124438569430180163411020916346634848215677474193031037555455473198985168097575795452546726232777906489817725299198448540648807103517080216991230185062577745568613905507372388345745225534362800485446388182283030718428449948533953151270380586767171325856300169457679741640388912861639397950647828683354630098743423051153352857406772001939243871348906860100371499767894518323981143119209221690816370588367643572789745913317497627766070506692505447797278486684367635385404547763913881404559530508797545493672319408776816706061914642506573923196479607096847660688371551288130173243086612043075781322525365811084224120669618770812123814486439033818115328370552049068924425146471841590983922029320960885929555019074617977673093095816970388483158352968600403270019225246372143317243534492992943606573355489880000280331552365150258213852338462296624990526634391391274960042783871986381448468131586701853331882870146749071150602584488727081740422621007346797787512311253162211632960356096199833987030155567319504162013350667826057056029901882854994425077790610503497349224853532273169034118685112949345701475340491209403022695394347273291429887332428804093072913435327722608839541102212131387701138883390225066113584529241950023499638424569707475628614364985180081969323737505043814695799029972205436066120202683424260295540618341808817585599123253334192327656399703900311818797133372167269915003963465178648348777159364217643086628079240247597293170334864386629192310270497991694291497631252113679329838334175435897337292759560161799559141487499514744412492056118065426072603138722710890561923477745983867827689697766854957685016394610178452735705466631793537408645880920633208414019654989288379965029591229005460985807441864859688556123687652847568727691669902574363073140247081454584427092200973819236778660640526770190742215387230592904798161601120544469832730555214921849366744953223441625975977930039415059758110912649726987794709997598323824701788657791543685740302889690564271894128102941877141814169514206586965104398828221580121403687484429284824078839683178773563061699597168709019468983345138679922862310052194521827131717895547314758893906542075132271171057042609794079010625977321793871540881148419681077053342744768224694133420458026089849705313330939195000281910891196709029319258251816545013100260192682433356482379888025124442344180392174006531193576418676284657132594240542263315444040478090646416017835054333329024274245893163838945524270068810090829299175577236752131363702572084972102155739696608165812854154233570043827060099985651944429756525839596299755602473592604769420245126389385956673922975214283208288988491341087690154912345374420038336753064921581747160965321574737797041002163596588079209248414767978899855401663543201843975176512238623956290579481163980629079192596771539913550119315123304726586530607710094363035172376825257991565624073777672769445120690686328203484102539757293250186633476137803818669083677586841764024204766170798581520570581876872055901646042918670489189163753509122751218942161386966299598078038664556774679596007245637609357854317208041076551555191324417820142756544891391196226127314724040027462076851646631496312736190567302667553910334960223097105455353515471681446759632172614958331969524896779858463282436410516013444950930543175992730728997558603014489304839038690022301907098894826412370674208590397909687154169689696198617248849629520215380778350820783879130211104182289644526688493836526736597766700190389998703914900112734569670483937338836836641443973159937342174838479278851528805955379964811795565886047225868820749808950537364985937419975085905727530643185219491785810748782945273952660903466329992392019670381062754614058220214657869478741764743803124125413544511358265897702345626673552472812951523565069550029759662560861842070134308577443795740805966742333835704854377423948884276694594165595016765950158654404022333305298264583853892437890801274398842413529194745287894185877143028712357926155499827253132480548267488351864738891131082498356579948794415780411296359182002646171873104023358744297310381183801648185519989356057843457195021833262196170185527449716922117592149738275827042899856148045348520511752190580459854759897813548775341932098760285176673825091655672394808045608516294126221052627995646915925770076958006103510359389697841316685744712271022288745590726206295772727810290734295215332482326862782346514328517542017559657478710684893253214009584159148960179991259155338450970922965032618438709387585523331970655072615143590007667267542064381399678532057271365704644513600611368203312976345320594648787410918812310472641067320903329582077643165049191814023368292048004060955815069584288110130161675132947809809404388539501120308308654670568414501681460227614848457829590929692134489726650551562412803443583135589344051234536591757488317098569308100303989059312528648931297997417636322614568764898876362737253970749416977863492124154608667338525564912259463945103039718952523137956513957050835904596521397961907083684536437280681885201111874897215300339495559474972624170904905254192531650275111907836269031222940267393733246282416578301857089475758903704248456307262480293205262891833782885072660803437106596331383149628406319399067007701170209760193148746264190862138256824645376082891475877439146862265880347761845050057163646838254232654132728232407015943561647488546861132016421885991037701499958645786252570773058747871628289474471996605479209372535167618802674089009285064285861134108703194784549049806213898071049716092546900169303097826083531383093742816826026203043769925679881758113565966949443674744534564260160011148324258132235617730433546400148049147374566318063688559792054848906958972819867554340879924419152968738612414593028518571813708594972655342039060405228725658374474270064136089538993050269206563240446095413355948913302453788371795266486043144242171304561276511556523700526950594356474480040644817050612462473617911650027578815620366211915951559551805182710667099175372352633883182669559217209072774373126733177691882573740709005220410465131882044972222669956736449432113972814209623477523961740845985885214405211098607948441069818722469396900394465557633498962774534273070508889978291658179359718092893751595984686200875572226138991918103760003416935073560916211192639920705543110262687619372032513068684550756733244257165419108912056360534844405126065684882318236148343302477136970000801398970690849128333530023758404200185308154414841626263106129800621250394929477222232832471176241233768051563420435957610525804922894541807451488027270377511000282880373579499657331629644220955523851770001018936289779765984420050348873239582935159895158514869919398808236794270203781628483316183439556649706434016877630795328048024096694510045289500572166245030458332400857962474829678950359968624392820249064958159787293028809776682582719536100236711255047264422650523504471630380373363909940725617013580848850932548650613222313463625566974875117685729691865198807562750225302654760569057703705461492903778039745990052396338858164089316552690806386706010105267332229088298282933668584663020401030518707209611656081019465061162421388788388038313858095800738756516550716430870934766400976016528887462607283922909494098409857430262860657040842619037528102121458398353986191301318107901052680804779360524261476604430656329546677578535733176786908689222492798549361208947478449681470983181522380317338427635331706586002943301440880823550466227448444626326780733771632254333654354363338009917216565406021739525875970196545229397660416943731104594418916719019237443461967289258693964056600277948291624160779567980261208052774561442198408956760628099651361629217315886931285067718489033248196166475391954961045525899537564981714589566966599757367141154033281762925568170301675767412230672747728318195468143272398336802991166232951585995042400505108050779821261092163504960139005231994240281235511979015023758324127860408511363626978453875745860582218063393622799830686918928631270608741864043538700235106142554304094889736726581234744937229535185935057401550844600322422131177016556822574203214659479047174891790777573474912544882191207569632653881972179784764218859694776431641069597208635779711577066009710582980513896445655057838922048105896514503760750944204188705484709830565127046944866986996784770288181401060649208953628182944194245858097855417024117485250251900441592395478515089033790736879758769658509653726733476143970787912215125788494371795415163988036808358121504564269771951273321618449689865074598804327381748983789709953523927472606923530782489522785596029579699774674177265479521611828555525681645402253598641448468967268862383168387646404151712520975272184385522457063271326061662017161538575428721958934928782326142332513843968854905782354171296274008600632715199116172828434120572668431101688306388728079878731256650741410377811807292233318142911285182420366632889146847021031259606720921822694511920999916840721794260154648125075177389813840449948362428283978506669095775988391354988143170775739462912145199669472881245753542175857726068124926679550255416299118917138578761368830750500606546429212777422000664366469453523637614071319470102749670827579643242584350555802904083273275176516959744637299398893889144834879359694037526672069494323557252291875919557111156932282790910762081562130858535442816311123410193973650714895818568269572865514408203734667612072513964392356871259028287859315699311453238735994013228938569006637455063774280394363970092102894991318701931743445657499436799832052092989157412754912952717025770511311231029833425252835063130994132644806036701875464910836478713636817494974242710296197022641529180433706774755097205473697159440165225866457067007211225253288610327002640583022535129520725779919531670032025479742357557092898784145423583461947552056601658835240647795515545768038326098671265044343757908123064901481633046383934140684946557515046697541630518943613559001689299021762817322239925020332273091654476260758991822810857648573445355425884523814393377542710006776042221208898138943224975606076772613300775512740685199585893664823946885707236310908029880964763183054737437731912821061086311975858189675386248069941580616885460906897251035937140944324727609219029611956746956406396942082136216616480938279915072215156454413545372183278156491158599236270330642823744827254200303872345084322134609777869183958059803888882101538173967109334361846790954812271036804665886968999098048117230992230584729138451217601023644132423710662611349910335333890929019696116230804973445859712137954281630799680046268352329254995835362029509938413849567895789195285884018733121997697804391027832793142206133028497850332222111011507534619829765898380342080964764045335858309604539895126231850873821802954612073822166389266189132812599283550082127123267115516137441109637479466177036250129014314927621313985608624564781186565170481792323881563644653112485506538279602469616895765292129989231285687078315178413290334085036085262081025081162957410655890321697222434422411906034569289606638800435311080507571768507212670046113844083776040636445355441037660395451662962763015797866833970043344355595334848431332490284497520806769925031038455658110068730396897644210585371985636516253414167803048883756606999677694961952322813171102664698903221214466941388939893296868028835567664723324999773238296983091655567621032843375256114772551917532285720506625058968372898939799223557985851101379236690509576929718026662001451532633375688544986334286143752434849716955639997102301996439802968340007074114473922152855610226413022958028115637240908207077516994900652507498423308246203986731331555373761735608878116419746747367455969686459045913908094581283229098160701104978649656357332105678168812369556429095245563153437787621024016768072586602233683995278578819894749578521953809394744802563755278724901578512570244361259830324996242860017219814458033519637098503976471149416157960312435796557553236320295026459387209151862575190161922195817899067039315079095224347529588962731824052545979079488008722748203121125753985980837342840031346101761268006425862917602687855577460230692976856386397781427940085056814187912885754128168562738948646784374566549715564711415084503635684451387973148745974965227689333629376790949921936302027662013569474740418801869734138739261322761926223758206503833344117237833079432795564225308948718726722685454458666537919206203759531863421985860241741112166279382896531897922414237541647868330227757202921068033528119667668292577166402549969186619407440062666303914093066627845073351520875980426483047774569635026860648243533559215986219943929184921838562530603970141366054062180538814554403880606984337838055356815217078281949450737133756665596594566299879090834566043831365599665897363573835867779160688855156005586665864558662486325523316924039032235627059684942150973466702517131293512620639316195091492618755397940295783314478167571401786074516432164383160437035582724594406275585325666653670227378903211983380912160821777180744955844305443020911612012975555723874843260436106773697948367651061575188400461161719966010944998162240621697668515612535148657706433631201734376782587601815143059534168534067120624711616464172114262919602649616790220356738920599902555092420633333059454658773407028950328400275292946054919977634464782970028598590642279148215663129921127410927967921827107948355573440061431558792032762872536294898353453145167606103706205206310493065355691102915468886431215010919666822681598872769708044066470707728305459042565070649141508430346496281203575276581786576217068337025050537106098306391027578245899096778749777538454930276261085279097457860457643192669055111088731341007393199367270166731266218329450194320731238363389233991891320540865278923239123657713596379714533699744277104500862763833908867833870559548578306903727283011259839928735234382876432929245052035265751766292322400775613818160297416051874099145126267725253983111102944136929697321777684971891788284833082701820002348067352467189244733605786060006976994967904385367434856942346826951636228362543929428610274286145894070564375432504996243231244775989577750918276228969830753394577064768119466836593421603987420106221215270387403999637275870542224825415367524034760850211192365013877609570784898287229250963140982390360468550945817380676776001270555630855936654418120752360289636253082035020864821172535680501057070462326164269293099009614852227267864225142109600499620622785039804667333303336451652681163730503155638616815206761357951850509166787792348384747303819183554342833637269096227809083069174945399151783553973892575896406409048231321744118197609655451588135011237903565156455241880261465810055266550669772842251995415581256991853820374340523197178831605045177004121246218589933325967935396647841266544981173307736402816428417189977271620600480664141751108183035723971570193444152503097581011513223052614761948050457808543547557868658470517163126341611489963779754108403545159013056044748039401672906314946109358956527962684127249819549403409473968674290990180617417089252807348090774595501120532833421333450962908794031845532327535396717967325442188129200145078574643916876488610617623228592805672561096266047911540866346716357490387618308030804436480300255252140105844273758794338482657665426379749586803521962298591140179564340588043842339746586559520844191722616293015289962060740254123631918082003938155493425366184754721704167634577543331219324898828114022577116825628473154952083905186507429913919463537188372087346872794989882898063362913511159320917441897936716408361154244611051976909038659560849263781431482131616666852308202351485843093504486673231247806149357564233378945510991763710220390347750007285052295128551104245706035010076314535428950608184954925439270192599197525340564799446579936819045547027339437825002651972329156809732726558877628504965343028327004443391745204571011142954407731851190287931082171950642890027125998490537664831492423473761940003582963540228329663729028371679904252508379227258145207197930503530206279389668724802452945464296519160301250856368598688838154450669699436363552326641416192613666113014384115567607019232759361460071842793854623092782985554273482281639901651876959308606413988182423279640552151494739121016179406726867737004009040135392982395211291861804589604713255336197969167361538102266014501881343987921785074022678446254469005674716836029737290210046449643057420695722932934261755859245828191788850234752274416672396240779673842546553290221729831892550661790452269453074724263279923248670259607907740343137412773723583372106479664513353339153951558741344906959219573881485164043966138720055668059420894184154630095555368203929251297934487081804073683642764211290972698056967363636088457007920910410660144345659284142604203284249709654926127323209253229940729731826619515419009750747195924388347601677223704320058496885041600029147860218719665930662564470515390752351643409698357138809952192427513754163179382769494555325068737034830251827658991098178036325014033636941818578572716294452611992081717247815964594060313656872012451626019036822241897722861525508534058922397864645794480892854626528258159129410504202112232542710477442297825143590021413855475226576463033926614956689261652700558904135075305118060228027049862523692649775526067095983943146091407788730451887392370829386066264833478301875699566944706355147183969804302921228243542217801912773479892699055153924056498244182452676753584034721854045629188366184987374775390353717785921908561632865860756101974989392420551037996631698545942410452189942951196395110176589266031450594063132554200683243090153100579794922142035145386407429845750504808572448385632544671011553121046418990725178665872968270890533267803784232317962750034911852760061160115618824988352589600940919638941256331262413234693383761170371845989835872654383017409279712259806309709380674354223142565834920723919373278012092862306906556462205419167764246954469930784356352337855564004678231391885536860472031271061978314416329569141192352320468221355082033471583244817257552479686381525663883544361746146802401766469891144190625412624531923559756092334447245401627485220333384718230768552610027927405886968546766738400888287786805099999997218601536109677770698717871415815052133347075495542770345039109676169211546592622716201098562566449501648536023260082424459418224382607893593279333368574399654566043659534952062970888734959251872456859391758527976777067809180527224764033548613136949110060728257771362422552041883330807625706783687691831178868978386956826440023299618701784765781492042797106326432107017273681205045892292559821676028773194186012951400731389056518782000455239061001726306071103414881770693573637123710983283141008972533453841409523890278018957772722539259368878216489610046684892542061680042371172171692748794249896546436968851935923437755511403314189085470162187905338448653398510293894775589507157030048976820638393440501969505038866286263749225888199811730548419767014376513059376665433804456894997652117991145703998991690502778431651696960320696577514350155268866015267140597608541514932158050742266589011227193236867933069773731836115867521039539803796945501582913828085310258523371256538446722785408860458043309765963440243149965174576583263866380173761948951981409910456657055417040430754831471530392702712621714987045535911172148201651295812100438200256513512684457419284596803113455749118601774804275065326141725516550842524891174304681002607150325444639761879409871466823303989321539236354553458291960414450322119822650349518785373485213681537116763060779122465477405583636371517317083443570390144236803042061336107515464605334954800339607234260840785255633915072852046267348137237613815912699273648901047344410804554371976101855823967988547577400566043185039024336508542805680801936088886581312712717105760439919149524909870930634368800193498286934177314348356818645207741231497430637651863612492929583109728589080385873326738390247892652954130375432909603227955880800173782337308376459788072977433835898932902122325993487419945627287169545867562617121457433463741600523391794471093282846622284990548543573684620882236784664007310501968115881734600173163246647869421439778641310459341833985231665485772245896550067976885100332589427044190482569185842631540560100284441234670889825215320079416043150468327405553489196004010748388530870534163760359681170503346631870052509305906904043836075616640949739278157351864192346492754033765670317786132158231068473698567270956354481097979340969302511599537231977012579664030159664097369248925017315065996229547612503102942562689666106389528390147395433463997573676709173452109252897095970811148953860442642262320647049955163194326397608952281294389490963908394454125128088938883851489840273222862469936493446319408714932091323511242509861537731754576499976588664428683394656819013471443023974219299314144174345324461467073144672120950830377054530314867456751233888646682118866553098433611192629644203558459621801573195847469739306901375032729652871509015534251717677208170734698233560067663311880997253520120426972524560182420888656177355268850027269566517490194742952407107655449885586538606205135491182627957013144882513446072869256587335606025741684168382653364846474676638351569256734068491452749374207619292888566325210541434104038282581684282760346022808119817788102314627198973802109466511442909353314443673254359176067479072777100176807554649380312813231981381624572008250619149619722346666796713554344036291579202062858359922591256197660268488093745744260936272022918784267961143567191624027606492209882562648178537076643796707718919384869144016206970456495655227085577436285458005557228889452552196714550134738280494445208858998460185423090472426536662361532173496265516136281448127461043051485434379242744007045989122480218146139619218921413539603867252174267453038621006076646328326939304138150600175373887168413375440814524056886244873949585236108505074087448336995432233252474146524963715949134126957854208643209879975209073626115321518207170855452459169772402493510023535623928841651013185316210343774934977527856820817090499696045527401922375609673163601996293513602111513556676392247598972099172780730533979171540805243280817422683846205558852564892816204469920174504806874220509501329072263884453251984573989317262413864885410334939571653982226527696525056879702654271776470638588775316593388008636941243444686109275380530360148430041869762793510718699311122785438316207103942209814390392100975583283450624145435769602056427857550630884044862725953977467003143180326600882721459008083259216962761377275858399336181124877752711406573598112829068483645099183428285573785676631107040135798348704322407586453204502660480850395930175383270355620289810730381678504301582195403443268269690098425812177051983456675401831835101342851860598484235090531842785797195612211565192564785532150670933704484534527516535071333238631817453535243892731554580642226690707448498938040727408201111347058876735722345680499104959332499823226856660719261298911471527596442464042035065852645913445762848463668861991612884949941641261464531012151591413362908777334566913309744191098428985621574590767751277519595124235532490648092334523934167798987705788237522637709486809893949114126342927103063010585471159090277987705860524122414802699526362757637135355782762676575584274332039764538698453124075922357963896015751663389359498314398645575013784000712559726420758320318160356822017490676092203500365415762729360251632040815659560511736056753548271670774305754403114079801349865728412361691625549451422520814085458981425027632367212881905592718303820992164121779719800862760286069707974619297394881008946855959446646588371923362491504059568493616113141882519182652602506642847818530195352208678052167180051645118270723885986148439262933091012709691977169960960769895730524460647037325863829324885556190343049244265774036902370548304227048657504782229763950108917212631429210279342417916736512274791004552565219063114248055818093129328183913016914233896053123455342140173791615902696464373334560543631235319027823982032410775410302919584292879003437837622286775943912331334573594601924008449795514223705174395655104790109827269067270707354387626951696667680798480243186723045226663227482612909171325887281492590841730774836225339068512951975960568329638542426578312685647584299499232147637158511474836881969066815077375463048651857377336939802563499733660981017373038856783673045586266671271682254280295783761782654176667575963100099349251965586140772365263908020276587509954822250025487910225495945544252621088909782803349787598907846356091344022788977937681488434747672364939734018643241536096247426006557801751435469689885398037034693546639577391114762886122871185926348281121713544023566498604147662896847550595211857299106535101338494468684099125537004171365610545719638415814468857479074738873624460789293998877319134949291181264599596516654633598775269641477340709487118884759247133965983683853199251497339576623241227010966512941546692678225148278646734616150556328203750837717568259762186583687396629035208791841782541129184651428712806270995284453405400121394308633822586252377251723573863870919144415145589777045557110358414417652220384862571108305961305248495696992474133544623777942210761886166717096484371664650024326532772334983813222991839800691908932583762617135730443058416396135673405624079942464556759315862856809013183581386682434572224052134304185877223974853782712766377961946547275369204496125211606529160579448056286322530391294249750057455630779569550409267496989924377383828030246035827915257737511988462980340508376035312916013974289641672955651803648964696043741586742723382240743770519604370276121120098319793751194029431153852695192034821492913986664057302874823460648460704834860012078321059877308101256925931876847326730909964058684143807788759953565303279477277903267657138035434902475783065357828191429445054578155638505526786865299182644802500030169894035537197689772844351821016116294269040257683727568262850097389262599361871921330847750411209902007699477254942455955053115311056094124292096217496103175203385500548685192375566342841580603844919364977123094010033048158936801431110919206265237975537034164018099220933247683129461255748959097867440358454339704200345444574706828990835964941714727366192673605585935207377897896364580609226758592686957433235657499693066362213362638630086156792817363129650588648360565919608894821010303583871771984314642851535137062336502569271936249245473662554216702881152640542216400148142702535220086239865756341665956084612770231253783453399145282958334810228461068163189921503356261927542532071301210341013315800188215751135523403525086030448453863004491909061278057357072161427450164177280681710093384254713120218610294573983090715585164941254157775897150697798562275746913421156812719684009753087896754723746006272236773743511696730608678887951291715896045792067726812207729156732570922777243966210470451600310323143234452506792178468879350039130648921439139722615413676448661465084319560628898553743818626920158778673709713245984283958391654238792113487663165738448019980474275970506303396091401185357225303200724852453253624097364127563366240240352033613351533261728079067349116796138181696446551344123681135014139594239904143666603116457423485009008741897948918330424940857958579033326459973824152188135118554135473719007545623637199282543799798346726108483830803387804718000096483106353388078435683277325600582767418720567380780589942145882331570541592194096276266679261772595612220888775445324746709865941040154198080338153477909755688203709708501262338584937564126318501387893533892759592509869302994405503545622867860408262189791696844676876988806058417003621702765714358374812745958735020182399845765726549633132938204420297905854351130266900496596760593759330260979591203757540329143039003680780299124517804826603285209697385811059328657609651429234340589383692015363834186581624588809992046209138080698096088980370392870693273235278525294937878410302371750764205516227820769289201869624547484770806022920781603548613677901569293119115775011084550597498386750970685314571153398607850771744306591438316606164544362835972402719327943104227807206244085492733477249068019459441449735069959495427501797410011406464893513536428333316855880860299564400482256949375231039544671486723261651680645491896563763711267443206636509793341172477542836808904877716157300419297938001908653828074616748632639497545037781165591221491973366749530581023010948943820079961590470375145495831693458853852393459242273733461685741861691886081692631152993726980824205265083012875725675861817254265219926094654942152031762933914475895218393419951048301731260206506514584411161059220636127884839239708221589236427018608225280664373359903364988207453950718540668052095624474287197051597060644783476834144605922731718704077286720462161386816375671381799277854023820627515007189354667009493187501919739033987212842377136787674889119821984015375712782370671169700577184015004514087917332551466924802279948824353169566038347547291947472703605627020677092892337164898334989774656832311994116074419802575693375104532831163823581779795850432365309567014159175725465343579949498269570879661577346713604482821599710005259735171081873736556655794972229636846866641897831426584443771002722363002968578170965856456013620969543254197357633847546069265681237929879907888541639869129402814612314791426804247293291047453232437609548843858483744271972804021755795928607378234807959349498708768625026625449286443761325315023515282153806260482346248695447350375398343185162991534749005465191643183971742357233414163087012300372492258014829129352585498410782333915589312486286271832207330146307054918418784740273182366604936870194636974030344960685293172831537429625672416817190016488013854006842751825333571038757123332500066261922297348948865178972115894823298157791175068026377676671597513345888148166352484145146007265913165384055096188229151832733661264832026838521551838042474946356516470376066171234952148094729397840991948153116089928396209388977472390262719114792634342030507774159493959689680204281476073624102060995728176201252324219920519476076883450177819297101983074161373617750224127012241648336035277496349589257654360913801176350072037583333997035663293538209541557513872734401892019270464690042663007154024666556181616993516168581353860312361833308588877095767351233581755239034971275129884861691239780992522331153086573631071418582448814601390876248899791402841667288987755440358501604438755045911004608780584627418948009100221416843957339655261690759432661541972423606059739582877551224476477981391689136067047982377237685813050786007394602227014026281824553051480191073988104858553310433477194776386931547054673742027127943103886418998877323228407248923158539752558314038168700211607787545525502832044165853313019975056824741266213153400250211732102514627457898428237260055411816139058756173642575672427159295951745140656918123566025537022030524295446853772055472424176252004083754053926818214110776025299923279883227328246078106263335442919789976688715675838449316457168324639149692288434773057877996478877774618719649022523766130109864227122250274978624918155567456159868710510632102592743167024333154518056962142376810066046493477500927562699800373558423914878002166161600004227230810894514190587049703471659294069047387806082539900349824324680610078397424783329479825053620535197846822659012646194068055812629677389359195308480725441645042954151967236645415019866141367572386051050959916121851015928145394470155123557215890208142727774419830282016970069042859953017151043930678320807175664883996287707836087988632157238340937644160812766491528779621373247434391719169331809475116881655649955745846608361228292245908944780501243809068687953629751774633914808828997881245499476114642646918699234609449243880753317345039748207667587132635962840012827725760939176483276767630934576027244986433708547063974620392197640185876351079464099981518985951419456860908843876543997493769819251837495739086159095879608501664443925759563879771568400966051516738690862568882286562658072288267647587590697291966490715416357092075330796423467302267431075232696280973235461696822278704748376669679134165889432795504123492118584098956948876078258210738595259463473053267968774991618409407749903499567151346843507624371993545137142229998278555324770889632020653356269577151814240565116777425278472886609325419574126977764971381170035716455284325359260540077528420743397514551878246869312929316085294661092337647760053286823291422289826535656082819509793087338010771444797681317123257911181006615173533211297716632856261580260945523583644793687566727735010240128054096545864833353781699593777518028222187574004582134913200351750979393406639855101925412860881147608546264001113090764355263132411879953778918798612819679764815584668364595035653858749431420796704298408892229075382104104784076907071736679668291875660836633244386993264004268608547219224746196211255803490574938545416820620144920844532789015450433250464192818923143686539737158751536808007732839050925831085772622496516235707219893678541799938597765564419380413246449934554384909731638050115842579114284959509326045171577652465764547087220036424141018108660429518040494641704568097861834240018459860023163427196489463532878430919467615128370484703628647010672261544926811277630974152505846612096747158622246119110978905204950346986087803870673636701010701184400389602307959204552319695874785336801107819228831843070657292633106150243937182790129335930906084325783453886734134172931116144782483876775667027948595776938266135566890873765127797884210651089750479714225718276638149581598809100374718181972974466768599354738360093085117097401319765747973036262912520965565326668069715717406717827258140042582558146215038450252954182203372783981256914166996455339988202482247808058504496207090799417753832353560636968574863086395944748512902681085190426066541485351130162420754632866366382602384582520622408706545090224598201984230128086882895729996225898580678944441317884281378166008921671979846853410206461413694887148104595907961849520015786509877366070152865526101712582664365602822112691862618308298612273542986404886660612654763058439340694143211169703421913985026282632114858351851921363120527953111074472860322702369036275793203875401800323017624547295209980645688605899804358263944440743400272377532346549026665262615747607761550456874437681381138983038634218702281694877921897091585932728264355329111520799302982967449080639141194879542578903670496182233229620143966112225723705396889922738424287912895437750886321184032008770356833838706434794806370243138192161929881123230141427958183841185845339321888473890459797688590337174382016263858924259496907130590404442529623242847685638448995599985206259810172358836556071657509635972555447098476664916562655530499603761874497286740212050538368209136429246957903456224412105858810603949384951077255670522041032850892825326968590747354025778930357373029392367370926493841295434979817813320958995536376430997735698047651570298630354107997366131809735037507673575743724660194621254702795117606491666948018994255306713862965595251977035596393730593132940200649250551684750868407943639203609020988385094819529715130349130581223473388913112812766416142970644671340502804565797127625908607935096860557589399406609877699922939568685811854204560929966946883407622403439020148111842576398232400382315064509532169672326881153155593444344480129421256762953865869627292801260845118363880118956982178577046280432787084241100893901860298293916401954822036213153434831540048386696890792501770097230208914360687476890544740067467206489599949258477377443377128976229386923149960796564564584973267043284173995013794749621612381207897869325051738079457711844015291155356636287942848231213150764324443119616069199882488232233000985631518405228668368115102319476523531143583339604349883303367662093159071228362551537476131504069770742196230265907273565997449921741356416972053819183378088894534517129272689453267164864369629537526736776681242255536884419534045217690208286630883652098902106066667268158456833965947882448857030005426168068628018188151605303284300048708690850494531082624201343976223706659971468885282919848290109137388485917884224100128744036342448355387880229337422704957772677513757087088791708768696676944702424959332683525532362464969780170259939301585704886202784541525904515207246796552078732966335505823302344870451032343117930364615966092438540345515302046923097241126594634865528800108132706323531248199398955075020840123359520165236912156899956209535739347521750776970610629249965851821553438976375904280269980364892376969640991162042452967596758682739545801544807840301663018513555816851968283198878321312287832256855423688180361904495123930362347379874077896083801730351069245676946247580408543300045104219769467489735493463256901842210550112057776876595986143651072552324012025856079837064487680708559938147895519575277676480202351848525975297618977829846715594362846892507063320505154108027298174283144916751501996290807311650167566630261827698469847743077727802925096423921462053085277260078892895313684894832902140209391517206776949526163260468297587840235890179559280920630689398124450042796150790461040815492130743090244977320284102741482455115378508758397340862238181755261951987883031518933246807455155828320199953835636213730065234372494069083242123050871861404665510372178607253746727927918105415598376307414977890581931804869912575441673957065578081027663386052580546605166499581358069819681446563124397284124455469527997801634302045525340211418293696656380803196368509200188026669917760755283631700659298134079077737068755124416955429254023360028388913802174322011384774528053061966888747551600739447879748629000087160787615083783412256448717451115359934557832720961486049465713187087130437115133917773733059275309353204866405858803032443901458151134719280199240725448561787859507292425547623211227438733689914799718542482349974948444625449018503823220312774819161911070830374376424420615499781559789215314966867234401295304385244552284371407503905505064521448321358660098646700474386689102754594868174961110193468103863150344533189113336033343378020304944666444477629875310655947350272333365650892851386372518653619440875741126917748094242912655030750559884644744870884115983827634021391838787799943199946039630843240784230298862820030121900025613942550959296720719494175044326666974668227084712876460078041391881937952791748989106324682428164710431752642815509462320188622444069246008841625099562074207189414186174829689757551030980932224048509386508156006132555375786363786465686841407183038320923359829140476923842128943436000264331442266285845866958640255361114743468285831779053506920455656882496525860215465536576436784099824530368657726469337674226619705379331482567208828455631145511580742180208462652549928030935128301709532878316413874059281314080049579466190427454431908125743244815530135163282410692955517683228613498903536863716011373982792499451104122108653253013012910137577422817580444226906054795806220824591470480032475500370034555383590057379968671068229023822957589673675760524166942046284746966313099752175524880615889535389342617741642263801407447946302532207981473253820336016819989456009315374371076229552804873269911082875299829288959822138964686877990657169673110672568809501481948490101016348507222399950687486377120176028292234985545347694100094904360990918170412426449774298705575145334534973149098231852190213521153005796743502659560013273108790834864097501273232732366882350860198850818322464161778681018315193164813536810666647429904830010939166832785061855384211482824197397310502264888669036625324589221254699655692633119119798305065830483868142312438314528260562544878197574117433239653218591091850667490374276672252079358438092235978647328880034196069942034026097567316068669409774851719711827604836143280403325122928810803146242355032304231951894717818462053088809402767886952365441252355632601307640333813210705721141311433389288072211279941426394805328441156016026940019796229140619140283913036346160748445336830826958720845423694443204187289305418088681569810737293696232586641491532508957734397391118777754964388011872075856755928043552869457111546200435000186358680385243162690929597207957689400656627307978158610715766374499846389509258175138737295258886947980120044611901177893787134432979137991503886056141481538298146185615969926558006720006950208816583837300790496138028217517915645232200467127362137668740591544090437338167277149435124201589411056027060360480216756820030400799950461374029555466584021824126377725679717188263285414257732511682965316080755933715164198100440425875163700741266714738869983960454405054791450073129769554005128520740807680554220778431115429109370106332418988574398444813531206988586726054023546543841374612666383550766024432898323450332833407725142086587295262599572856136212369828244421124951974829171611532059820064841546973157332969379921816832914521289321920703202115690216829991907051225884483762242784504936661738038005026596016978980494888730536419876791526060195451047129238035770482295502833711061428964048852933701348164912615491668937754441431524864658754153514304170457593395983781502764660178843413337004647912198119456299944785503407876903030795970708222910868776358273592769656732219433032266349381575987515929874953874126384785792480708911057639521610562229969905574791237697074738937716294135706746386262624244025426292062075845699124531637143033178946866966130570857378391897031950980837269571062923155455810322838197723613154535850636451154075906409133039853524662166214961245146686809394904655358865840722541526249937537761326892113571686286973825598182901706893398399924747826615311370612246934155466236525409099064505011427322513768963179588340032060991991887464654107965546061278540457084810626606706581014531999153432369280479868590184691106275866803181794891096654045181874394969041686128084537959245406999803566247892679854423448890076697891204657061817726964404439709455594555213687818643110695049637424241903620846966286936480743863784244500932639405802733126016750002976270677370422492285423979335114801513525630313083827826070905551389181851303000610476021998597012698631425629051978157821198365331196808447077305657840338175269506423444444170397339566757224094117425368097402002309854438722962119584088330526656535015537622843386900666084435645798686302720137067518155115200805931570518480472344866231090642911839873616732518483952099720832558737851353250665048274540336808255879275691920805805346566358669669608460985320431333305296302309117233670296827732009424316483385417011323082161838916357739617073856100227521697070831540306834605505037440155772824483562183415808236869331131230833646264770997472957112354990149332247792587278364357434361444813760483754112408426431024374415991711935172655099292594195734760779706041682573801738590469676842042741606062071265294213883911725818104957167784508880136307875702172411199870128769685176864747105411640837844548640036376072167458023392432045613940687545324710972084424898835436436255179612588509409715194284408652988723202969514284354218108146505841793519869692961178797290020772658524954276290379566260533299933148220301937471207417286422946942379852554348056129531011557783233666798616622409214215658842842357341241453970767176018346557999577636267780888081833972529305896259561366963158883917432228748748514475145566005906898866158268628437324578699916422752204004966186208149151474099016145576068151786866300994756821060319150778398658674491091389638303146558225046121846545728028501493636425868479199814500326971873438454301761510767614533040616127806265911001601204084546425284882239987142323009706043526437977802615634445753629552989682890881436111329602066934665474249585504800748883974527924270329622826699759258803559529730067548992021243156647736646193986951781221570509353602895811311795767189763263794616071808680194787977652975411128029213051207938502451421249505185197515760147469330034419899911341032467183243488596332416471295299707217874453880821160681216218195014176345217272040864288581447496382027665866765574057990305562090886183315149154716273573446099288497006526363680047495710338543001408274803304457532245713797516770847259943890562167927029206852391135126703556916899591448479976757179968657172507568704964187854179743098675059803725330411606729220630238041105825612857201360775197382565629248719222497704892678280996863689731420717813591253823977111333093137707931493472104822476049287706926185068967693808124766808085582078959816984694198949952760452528015526752742324730726215909387404129286295737540936779109645457870329179100310263412999436998592408799297711374694139914188441500265927521069874216417906935011156110816221790775863665708886414858933742953673877974464549990635795230951343155151826594332639897950363451177920238810899407850178910233633689639348876151372612025992389443355318257278599305882703335096405526628844227896610350138899013754945304546254318311816695778893383992675929920705157872046064326982723894708420551860625637616138518432192875034974264394461624465577179328601229220166809506889720888181257060416592340449121646653428131849869949664681721832903203236795694490733463152647101337213451684364658192488128738726568703378082196236666011500838501928240523149938341200221886168206813143748787001446343057632278155179402023904765826677289697002038708652840883347711658825434158310998132219205629423932654381482337131223956663399878446563444201483079759618863319887601153654804315961839429667653600837618834068431781977162796164606515379734276885336550304011808082150991008066317882228504569047318090946122914167477831094401906691162920961546299451843107240505520570904839499537128359880671451855827009341148897490224420930384197392001269502238824393358079305408839061938922524457513393922963524732931938357918418588497999864362917786588439482868775771163008227320627400919164869347062828416974154137905357939026470882797763992652141693926312522678847644772712607299320597688464221296728005542114238477751646150246708516693437407474567072508671999247184844828439593349087220136950365288017743808466367999390469410933581034658871274114622950277233821045998092085620101664251721649997543575076489824167417989084663690657563767814831394972108114674194435096654912400173640340104267162961380568535027489915986566582008675052965995964262612213239784414479702349238921440863087797865698685839363114200031749246782667839188114194193504165301890314888268916030624094602154604567563452300044559129415492702794076910538712687998465051283711984643808131584785478201648180639951859604936616926179847892108412636506957129594181483887287904207687136339188091843923135799338184680533045613786096006028367262613893110130563158027995297469539276027027447892097370698620456681775659946461381386686510044623444807557301095148930155845533639538360396496866161124885068181384996482230740483421778216974598891231743398700889851135369035147497988223385757732222731684484782744382773761746708508985361219023937846669141034961314292864181514202251056124366981309350057243963695185950444956415806824620748042220597990914937801444874533847222596531450059491710546522978506371118571212372283168202154224582743224960507809909491872140987360365691421844461434052725657273663580234992953225777014590218665075074148526185476319366171218518039288799284593542985610911003575973509806471669531667328162777889774961179861518045712646020353556573275131270191024771378994879881232401352684080965942320126254453927135412837227219132256895975372890797856203133547710178161836747381804475759715944576540637435672529294942451921695641913335405066478390578299813077369262923732386306098430369230563683499895213962697831750001340718531061536961590978363593733980802123392508471016355112844404467917831252141229628601836262971750270947382493094438237596951419692968036040902047015021831583943409351672359531455227656617701193952843570432102315828364650535060245530515409514561160615201449161816909669437764178586397121278101063896840674480853686222184851324710366331498614919650499015686714140830559197627605412624594390961154643736223777084576480218519992853841778073278018585873483570774894113431209641675920492397838981620034559421086459315070637933307519262414762018935226371499786462847667489187554849117663334617025068496981862955451335799367852923909911069918597856265815156713670423450968657111711457788754683869218703925998309081175020116415245378530247477137679741040865489810433371946750913422738821937749313476282586402805585258006123512805099463893736474758491887751577847947157752382147441611754571587962516297784974797241981716340490431069240151368197321851852820177827942526589132154523791068557780675603785323248775545688020914641531962702004718524575366177607329955338995784111986241851606391339972278688711294615273997298124190617387922200324288505159802372733922022640481305739778010923503676190915450075262742098587007209426184506050040312581195574087431717733884031805896049411109244646723869817589116749084718401420184191707727175627095353450935569493267821480302237223181377829269861421651701993389623834991891279248991810763990578356319052640357387944167322105315814255782072170097962476159203189232589887224003300889855090377025871913372499378989130517681009487380734361678256392959584885035444547485118959571188197288967182124272676470308712050682067439871976800250782902959644847878125614325038711729403068481347132196622475395718660339679117661056943448093903695348062967488443398510296535098643777025478701662459763404212779948529126214798816805013763728349983609935443613586907667666100222057215702410841954323635903987054099175540595541546027062781045801279936742895822568797050327084995485060879517528396620072014122280149649763135030522688849096123563639239527709584115439991748123498834325964437508153596457390117095119328331138723413257446689232601806636599058560686725765460917622951702515712830638293708815103895477091499424081798117868994958771462785500163543392890179361271501659042602670799951284436523513093660332508726631328288635577019856664863737320910843352811156532850050719415791651860943352846995456461701420349582267747423726648861627666429369694784672474983307277331030347942698209844869067620615842357320474207799734531960798974158874452516926647270814533388943334140276155027168833787147730763181641146642005902313967021191115833402632270167601915851135634550017943069106523445028807624990502974259847780690956028395897063763918852110645339848688535539621354142073702073941096397735212488923164772628196122656552060377325482514174127041185870142055270823611275517328919222764768128271021770712518886526832620155993275963086651804301095255186258584226968421179770797346054615093978969897823776628755318483872856362825989932617889047542804993079764825256628089038817702135675644570354172733405173848766952477840497678353883378827587120033342740427491122036295951864614948198799480400140034448423855837515454564060480760555170550736441666328532416912366923905029028775250632432623576417614745920755951842380104463431200787080502278229244937794946474985719809928085558366127465491050298333780907379470883607486326901548226794529768518292039498638431067422539263049493889997989985757129493064191024304350323796650655851941804008464708415025768815431201228937994066033487382114323135700103527913461646031318214275049805844025675860540959535262762780755085154027516134883361464926903399608187938240423871062423120380723801267395146520773598967191241468454714194320668911418956016838883264156220409088543353595706911633447825300998218904929911378595590414255864228178037011310336273490875567699116641484063981971660969727236383898563130731245768644288889756136046462473082237678821587619989358525691624658704423511072520553409552547317922172774658197782807893613615689628464605387982704299043883570596305109607206980613613440759472137114389132606397373172297144348732143520161242458963683091290047313511051036067319240648631018663834443603899567380179715845079957447667503077340290245514062436777066149054357593923939651183053921488446538652402916877718269584761868118762224188735110871519494718505699925627367839540020823285867669723002782621064041796367232651231489581054504036433011695407213177519455695888201100464856813039357719398591477587295310271971970934268702878193920052106686630122456106576542489143244587458574253654664875547203203417207138357557078285716010131971958557587216307499490815992436334495502822451300987691707238350443219176410785081433393691307869131386703921531454442297884408626017025690942241506298126204527199317853903738146867984328118767123711940610054125837285914280582063854625664869943364873675066352596267956964682434714254837963811586274670970397874685217606173239631060525931108957043899349612231522468949792782835491417178853861095485281322259362969330168594750674875229372838660800276467662739989636191042368042089574662369618963893532555186534211431043739127769793298488708022571623623433906871789178894871278768457001568739243939174431072497784492580243580817207234987093842528982593070715731488545190618285366270179033261632905398265490238004315805716790673755689305910737814940987633196691383382684571993176853108915493622667327486267934001884119034172540822382738132460100458954526006229353753605661503780390570215553245461479347907070040047200039284939815990503474170178794747861289908529016216153933035098840181214594891264943468575012770544221315955253407039227996492767434005957128263613956431667182960150602140089738851424104536590192773527310696598833922272525531467277658474353851837824009622773778449626691211327244477545696033569884064726106394087115257547397534221048916428043312064710318537379361288519084662416018086247348347684411436020773814003204567162521666955134579004163506201654615273774614952914411595825547692456824874112448933940419586014406126464173998348481080595389065047291195627917544654627692498682946873447580056214636437996270253876582473177595234455591726457482800113153100254759608871697839431018061285635377314260163442841023343609816630400836878469481788953159455551000878425592764348706898648027280430919782741626054096634138245987124407152441778805528030105306253182940131770920210777702873085011995179892957112794386855862291133558159562724530937769679354324104528012203991179043974439486747879569372616416787354702559666324631528947195029100973047324531615679961947721748456988218192439097709929859897725603183452646852243726811436923354920920300077589204235035067613842949937525106091335584878954531234397271148800190213448431833671000121540524176134467045426341836489066967942519579835468600093458524876132690684538518972391326117719210318407169120716501998800517290619111694494896615795943018024209875482565426824320582135304456874576775221715203028957466861121105737879874491418256395604029811543654646740048074145601459766763315441977501044639537946839579617813192694807204453559670726123565184647011869660858619612728101572810609535692510489200744876581502556330589394631875056366886290643794832288343560869250663655563634056415519909172692831325790569703206559124111303654191258455722657690143946826005629425129685942567188984567589244428011938038245760268906048645390244024818714270402510725019155097368917636080225957751108924319506338947854307660200537918953263850952722917872716729415105757509504540891143504245935981305561684063986046484532186936566175384633902157686608140749976071885473832267654222168096399756311070235654933312942082682072207866555225734863568459668785972425407331772189146443523598178338133336809566913653076805710585324901956573560636084697223524640864125546183434236531722535541212843836414321982981209348741251466919302004026396846639935237989539714054797403919975657745240535347047272497853366713784787637340467965135749065678506382501190274829079429138427466076744786242035631604480725848979964849303425258592856541030405620795859815525571428969655994092081960618550025549845507683777295928925603154669718049195704437840001012906995602618675050297007981101562264395815193337064458039944993595277113732339721312111557579507639785720240867566727547032718736835097099276312922384844322725201146589321150054705575274129725042301832687278766271754288162588899402349951305068612366820534120453698674489350788781476852344294136358401457458851854447166315501284866414341973977346215549070712232547522020757075983893562012544222997257131457944320472970801239630427381069725353240112443808077541692940162515211276735284460079070714368560806648912242461882653323970501811853711127070212924191843509099368269393169001611156869575676399086696737344282245099749917348418707580504145472404594734711740062807453865171406470303006519382043214411680885953841586077426000822587191667535531267821700515636010367698686998083205345169964769517143411643862677180762233543316556308588440729395988947525035905945480388482515165319293670059817059922532405658103197163950194491672769373861290486448940493559178847002760663988447436516358866861738258854426914720326464975740056177737765801345907618255824986169176875533398727009919936017807656124632374776429362636455705292915844910023188703459320048717020014521560709608761745445106878431395994326663465296334732905366485847566018338014282170544977952459005082231978960017756437615275263270437828727015888042235314181748781405057358560717658584793677797566195612943846247775145979139185621704744311099677030668596024249740408407160565177084776016753762950756913197513450900291436468590078401065620667785493258186489764557093944953348342820969580992855793453270007896708780285831435588654754663868970282314855104465612829807646263334322096625752941559026118083656899172399386483114575064375625466840061847760498346948279989035061251050261081463543304203958106076753464777051465294291102295161879475107521008900427936208613977091849450516262237914487194978073920822324876813069538279150797359445492026170269396735111483303864460850100546529027319788103769709218834030959768453284498797342267836391099403450520064654736084085881361891858238755903368132369579961657854774905920994508725966674719203307747274828657004464576229662180796551651701956160313763834235233186645267545053764114343438598972984341475320028869081568146326783804093441866111878604183266653321997251929894036455275755386457651613247609090276583156338679265016566853693488734661570652740895313362748022817615344510955485963831315062783407395424239916322165024807159310945574013490956321880894295198976731189316765339017728459029080952056242942366058335246035766067462170297368883513417092423747350642955805241527001068877698266094554802001451750993047240847579639914286799582500811112992361164272170782107043601769695673224420080174028030083621501226098298217977975928524592520413559905351686093864035673951130068885109695387217267250011019710594347302850941172202757675560548379311187671307568240819396587700165233341255723410742732872589065935902910408303515239375133753660441104409459197133986509849212193687094867655058228764763519692254632928131972935513348528968509035161928950180368465569532200439397197839153374402742647334411568421754732045842612282228044965559592523788093973983378177571224282918981530272233543725687364148566666461216933080826765499155287405705785881582979411507885294471837705530488874255289670582874334761237501481868938664688292211823276792894708340915015049384057762366092239908992928970774225558366091280430023912022936040323760878413025119644958728325078679933431736523437845261868756844816778759254213244830129627157430070418260785170180441688683526581032643247174380143297013123997603256122810819055086656049018625147814118194285935226758742253087740747030224827727571695658650323439679680411368398807323774960988719835968168703969931917947047135759969387143382578133096831225410361866094189270672083253270306759547633139067828382547798088996639483774623595481759843764633826620864869828056789610010766484154564112616103139776828313633985349780782073371521448295948175201560654556533318008976938336916814429299346221179801493070245669960992571728320472040744224878366883472938436544480936154940292056402067612245108673743062240507115610484057732280661331744258973535617382772553904183267529459795358427085606975883184774617459051267786963222295505155116764022129329647568986407393480066749272900221566907818567072016219942326334770913244900894199607853585401554278296459699730375610492317435858382298648900295794982717403145492485651821454347017574345629682153192859200763545841944766263031349583294722519544997997174077927204334097156144053955749881034054901255436276123248990439357999225191100670131057824805309233831383673213660959713323992997893272214267032494576505365962900504346047369480381172785500408365966929398213637998851277373289668008389958175956060282277140764077847775522530322903561243338006564935385900933429384635599657612746694207783439345057275757514350388045491092045671320655412925731846666875902772679665033122343297017286424232312812222380878877963134005787213178637244056991719088902427174678370430909216831313387336422233731112366924665800851150530039537036852370220206196998443341218096610017205778912574456416442993415607686465054006296482175233710172953964219234544350297555281654904296692122301100299171190791598908715001552689495877573694738713184333034825031308774709775507909788947276907485923089894329040595834689475978164118656691309566525807878658269904594029271981146777974217925748319243586186542110285487711031742461929652412753068685149942038939098165462255617642277535785612548606626487055014904198341349799761189960820829592081959775263410145344892452126995229273770674667820480863280229011515980694428544488175272852255364029482193969915850240486569620783231309915440603825191338925535848099669629107965650186342622490883717961333047037396421979028316892763169502942450443241535975619878995917816318004094332558950592243972857617306210284883480920850353942990644124029451547414249056642703772676586132776463185216537671063513899821731357516430080008105205691765741169145108384080350687873551674608740386643939419695684491835328423946449864318100508540541993525519234310895662797578730244172545063417926429050356241704193939939528895874647890089804294655228674078642803425506368890913226959287789041076621116727456910149564124014169549237625873828694717667431476224298011981305160745308444511256848419723277886788286078238863481288499888232139245659835201981558728551077701720544158635028322529945395295126554164437283416798775132511535754992559105282674195852619555738917264902635120483936764016678089013072697212090993235368246331345724473450301000426340438797163326008275043122976623309559354277096313256999311796712228385641561162468630940381741817454004584193213810846648021628163710743179299855367892415295382328970981400820339736787764272494939313586713635833255803978866593167483992555755835755708128188895179469115044724894821471527698421812452902500755616536306224667299576523073292217452055070322304253593908751642843745363305082220847131819273773362894926424739414776464266417062265096212251664382751018256446096192380665866540128754821838464318350818099054918195548264359097707582859342415840680544285486691798084446691660643238137411545272491858831816254738005333594064532399917996515630527791294729240176393369737197060867721540926933811772476668076679171327438270198566673878529624706026201295259465526118943963360934893760209716530670317794398453896780519543844905251902405064552334508167217882526241358252455684401631303776391746681584360310930276528626264401285425895364117756356615707679413656559363193248939688683153445505439330484908508184256768936280948384871013398675547983031445397503005463049188688277601548429697544235776795250100314016720254285717699675832066661228807878859218556175259777168672711156554948163555250835341826824638375787905314729078696023635790009415323778704263485880675075133441653577571615246357934012447283439183020683669900357150555200050077471370880211475439335474671689438590194830368501283216443172656583713953043762484029412344519957249759774158720780293149534837271954787866611298983418846139180976821671402599723654784836680034847720802617506394285626592158339305045956385707978500103130729096482320010294402755499658890958115714734891652239474900812222686083854033935409195347592437150432586616614052969372722856619931472306843172706402127948296965896311863654661619867988059071287905489906168933060602635991688889159105699696925967437628883154685278826146715878452201037500297828684478083414275672648120200733150475579319515657176906787200381851010245839579313775336977264100384414785717681428127773361954937668109188331340871528241252415224961153626049958330631990619432714140964508278772437492105004064816545600873126255043159222120769216743019028215406850811435925955835674237445469464687695827359142082858358197933429815301508514133099018098978147658574310565217055231625466707394839643145220950478171665351109606951527637411703881132698698408799395200350655640114980079091664605648950927244415632315886092940600557153123290348101245237125666187400547766089729941307487323189389190832443726689713139888097596385135189377338316150408641302943581684652083391401448635135399745398878040651367047751593109043060067710008856533940027401625894235542582899057349566653684926239686277872215440379000985995447746173782819559014036901226942589726114926399925528800148221926955033449740133919073178053836253999071905653485922022634460391398874079385952827861643927131661170878293775172511142815020772218336638485587562124799025980892902295500674106973891838021571931321452368245390284651312764552269143999181113642129919660717131578538584697101017363942826763730217786253666050279716710784602185754724254926334889702138901768140521806107755267254020391860128572066189118958669197216525927881446129250792287737119795884698760222127628301914347999977643136236031119723791941017329348515173056414882851876066058717459043063446789250187237163075281247561670014197483426253822205345851786484338861924545836707479394143651015202312605836590749822786977533150391551142448695473463338333161362005467273529060379113670352503324722849415727187814583227664000095936840434046682921441992362357931374170717364337976495186765566271032276832525536131963532269055218441607429453240031936888271253053535651261766402868087303403855388046077492324032534616956855718544636409748260878742812137751708227589534005224774804983598619933472404346685309856060551064061178659758305771571016866932140752836213335815869103390300854467709785289625801703459040606061555545365686182860533387570808794929403508100542011798413331316184376064917565628736508023314451575061523462081764359914741071021836167484240789723764794485070791373842641178387929989563666788599831324722984569608499178926438321908655737023313952539189164481143993399727361889777273108796980677225256373204386619092701270172079350785784292442772109660868392546058846768790844868758190010656546032239925631946630528319263779436267523290381951817200578063176022141687938911810736376969445007424704480759463182562156613257230402303651003112791566280923338332089589465782027948071093304967088023435246537567224713630469997886401537611622444030766281013421842512672771668790218801867936485866234266611410897406539582261656582133189104489688918364944110082317546256030405067067913769627908457010749243703771329872340142520447615898762073317522481096081793127035577282770424989735523048950081052660981429590488620420159304160088070190794216030929511671442810651358261771457758361944648682772447417064891117401185265217451432625216181497648142882370146854350688990945883007996715158461195520141375049537804495711346634060886083861873860506371197985948575782667661368523684971291593813971413867484162768797396085534409889954531831435472772865032958403326231914473617739192615436860790430185804114290169984700276279976092888187300392354275680521890760796865166977928343863700178087248596200046630749969509382909117779662352058719159323850000674977608487054570474602084118597779775637261262527710975419366962413241278246070635117974709157418078296931900986710075662798512742436033655342447561577854818246020266824618409669448020837832580743329997384144130051358132438986264048408325526953236747431506246573112624374202614806612948922323684206180947735824053933833482487152147739013103123365433903584918704396584210866143706463011882878926695311620434267402643259927986181787054391012637325794452131848003036257190184573049883188458015503189779976477381126892131494382651735222582506517573766470087594765738310169001154391694785797999640515048553552756711630228951475737533422610000073717100157995807027418416852989172953847848738910603380310833776883017346046973673874652968309673946704505284154400687076466878057383682198611748536127901228632527770156988384428311494895684419483292104675296980356712580182189592123540006258335243830451999644455456538010207972098006079789832060984312333631422821695157071506457194647046656332406721353567950190410010011951331016879133830115095838033629344727061620518466039311330981816901827888547472627578369958441229019651985679958952246094787238838510294052871137498916145747475291572830911540370930481213338686056552341312180567688016044694753445009894576854775053166942727579012045715763854589843357102876065543420163735994502190610547799389481330141798638238328028754487534614203065434418924753122034543276536406888185857215010005493572310844858070180172789343317427633408653233876859719933382883956940422798574864454818816564539705434314744780649315949825408968004632238184509637170867469500259586777180290182370481313694537750733122795466472774526494225703440432000120119348495325352627843977829700779581976522734201630192427293572011619855495453584316470508259350544437076359751283580443775868631326860331637931035739085428433894801340069895728530781136528052049788459919380072933518929786137434927606009230235292922174311961836889112243934584733268960117118963837622357329390666005217611658486111021570121373803228035099576343130961631243349421202951965408876478396417319385125360527561087952012612771492491101550914878093090629436328198177284082346336489029924365793703819191735415293523122682297414251450087342724533230929946469488677607461050925845636723028720321141189734958912869557123767792440832903101880732972930234810024356266064918124901735880664936223119406958050650372306959314228219638772374659911877891901721298406386396144280549590590949740551142668443312050718109869876685689400558020266004397347873253253020023701429274208481723082316890005453554079006649600880111582332629548754157168895261178528532225364645460605374209477094677806348995806230460032008525672786877156709701659991729313016402922359553003012588797798128125176579881803726175262870051291502829638365631156684676843950198639837275470285664190588122325012200903037575788036408449478636986666214031875753526694153963609005107948483469937888103076937155695316563818625611353307466772434925189425577842234173653479819715309609010492726622762828127325282979205697612461104630558428679762702647254991313671395949921932439466042355206128796834998962031964244377963174696242976175025253743763991086070743142920448809589402447451889210751599661166674574337896188077553326235990296101834494165621535573413179465248887905885077825637520574008194463424745247118022180832662070412581620233193332710698472047382976495321164487877150126975878092934603742862611996694990556746919024587438557917596478827240382244646330953702555817669357150052192516873281762385537307366351511802705928376463505664240988245056761021308776401944680653349344314625118326539960620808337656158190334077722677379163803818123815352528274217532743296692535894954872861437657153793252888629238812266340157836415530458295130387141608792455579586311548393013792793213302982511981685403421418530201646464380190853440932034074884795637941533396540560176948935272773045777582519766831982620229317028381529948276382600055645277731086113573902678730617986834946863148490969949226943085830746651795644970759624548137857630334356000486076459778262987532209430133152354006776069372470022064036775088378040020234350231301484192368033809045697153357811535851035132987357570176328585812705600508200331294924916373910522001313496310467459092280158932436110821409546917879245641685829106892976699443361226113240524310354024784990741027614932123373729037650391260827032107923866543215503528986647837305829625141271798323121015700858070315408632353851792856447781959412603462051448319338037815365690012065820644627455733721012649585233924238477400581715441244167850306396066448432388479236291314677360200632617251011626259129343938407065031221764493433004119307815964789376067071969511162022927846969830539938862332715839822316243069076422921590600452508441522341657080944749610675403734981361505477925217253328671480747603771707389710798323681501211754454841785572239099070706078060283080542056432635868412907697954295218512139159872994410154287632700356693880885131502903442614545715722625049166271652415151224021571809231483724191945209844979275151149531271528766301336993241632006798862519682109014134853409582667697545001873064264805253296504541503919039841647176754692471119917675996518289453555694661450618747454953605091485992587040634966129232343288351142135829422040886738142211396974540056694722053435488188105298566895228703370285145049927117603964361361564372477594299962591011079542326408760496901085725122135360269780720419217261188960823420155787574818235080785698275677446099717900899888497084087857036270741523185292684373930401872710831782220018278545322518055931793594442766990048360472413901010431976752074009147261624682891983661935747087021200459709179619152356677180417680020552134075419374989158492432095276790297103681774955077618669264710885294564282558073276429496688411262362898113946389091648243460101927841573518115264075790508990923330195129697532432325527010981672387365744604789773828455056173166797736355878936095162134614525640471702592427683626714514367392256339912727282510898815351925100389052915449630172985910016480614487222803739043751036366484170231489312548762752913993835782227752426392959763181194891428472070488888378920715805772261348130269427138005441183544136048496907580481471927136665088701741078489080867856168582559177632706708501590925441764893435823249749754117723845967945146770844809457919546458532828499486184053972598243084300984943946822234803768481197429660829263501070011361193145037078201064210537259157753346325307635671962048978474461147481988141910444979835105949781159557654437047212167358501161287288743321060351045066101938085395488739206270122858554734386073360477925354260451616996944378608828898901617791268241615451097396596538866664755639487011947046080640960582869260003699717513949316745184572497461341083357873452001397641030056769540603184313823009880629010581132912091382901661072007465947685221494354359995907144272211921581202120148305734100767777235433998478280931430119581333114255222994008091569611899750304866185324130361369783780708074946220096790398582640443069140919897079690279365314554399361839962813103723570840543112135060083546988231434236438761091056584730915561104285615732299482685999933503284675944512908709263401226372485679516326952798975438546521301655746695629015300713957558936374390700757638557422202349942929022318754136425701939543104886774886921156658916295652689086394270820552260975821834538027770449167848989406801689838437451004978813348756121393608369700992663920203659533154552741499545967229010190988407975603709220284845783182703896947274732412530057098560622494600477637713764155313288689272953913872094811220315313952276837011709823009128850273805667345203633581573518858861397457901201349131881247469194173879569834394156248294036672786632499756724342832703141272419748410927061102718910264873073201216133737492009664433266313135269457727385121015864787023452259186786741442237166760979670166869362038522666348349384062895581626033269423236641132764503324871115261313274353605237115592644264219507024682528138893895067453163872949021509207946284763550385915856000123686427584761285005583099705145046386343421942004871031473929084931951735943465267574235700622547254725733583247299791814082243364559349751625987695958354085432247001913975776673488887139248289130772036706821910031960846740288319896997788473473849773592054543270949007347199599172610456250687588524948303552759140369705238155985529248259528507727910640498675799215878158006248035739184512373001117273171781918140378474326701679704931792018146086188540170106689882501127423335336907182280497095447192678308378942219088696673525004300152705638658240746783943155023063832118583034382203592064828286823224140133277899880190988256012634785573521216808357204096221120017067534427095053928967747756545351802363783033125446758442465513544521385311690826559403066845800468688334295884772739329875334627298298164348867357800683622356745234937648197952806831432874073899531413987236618262519118815004523127470844182072703997149606231750155275427949397538448359102599009288302854126189584439208586182635931201647840890959499679642359407058209592449742536358724371712116562121248362484420338514079488701667840490774189207420854254630288118173525227686713737670972530818476450892700869693805391972784990704713441757105500223848874006144160394843636573832659698930889419234388659301630388351122277634534868544831187071965223414930931677738190683943062961734582085018167778367837044424346062129388345430373260268365311533596451453394647681490632538762743330031028219177452512299271330309275248197815744616985297285946251790334334651697593801405165404143784178041408737884695437773281411639381481395374304569708843576127798086986715918093188373518137865830435016094364808669847426337042942684892160186956865121063469777973127995217597688877880381716007006842642247272459136132568600355836628494331111902092003020539735153118427810631584573121172526284408537293586304625168040559817251027770846549347568379103285983676437264354154913085522979167152608062340527846170047350847444168960790425950881728536329181701209314688347948816715643876092873008549215301123211897364127222913979644299242741628264608145869573421563314992819071902092056245626782158447713968468926762414393064418924545264826045047584839556876326820338621048485676179064075962415521467772006098840549606043751574758024113938334937277076000474352390555354350439302229167791260917372585573513159148819996017730461157422133075327209926579897247127792113110584143038997061407663352113629005235076018872731492962927072653604703212971761468920158839560238744281045244439014351779554710257578327199591961014188914280565819706949253515387958095552008386889609802558012911671108849737060523386308520536077038213260097308511322715927763390342945932760541025304283712866391255015256271229779108560603104848027345372788396110725185048265151576682084517639330402790255893671376968600470240130937029045463936649229088818567694192680449547976098704628182701371918102457065912462938367993570745267787261778279486497781821931312615515642155758290239714412732816099833588753684133346449065938125368277893633281566052858337716849488569608960122443705461743894155911550247854720618080621258677337501066810348073769973094005444085413716956475686819501230423726926104728680140276847157772278449874605295862781747997695580079278092382287800623582637062980745582794710830950268567450787839993889422609275954279381726378804727806518499809952985694355807031802455820059346202916315652709881068244965404725611296941741646332883786283403644713312709951451127654959554212177654950703074905173622049661696873389611638308755730309356623086481965075819506910931087071103015496812610617753688518777742924451483190163922680791121934732365094838819896850318235460233526879465575856315358191320431241882642722889403820933855061376857523919515628633577637110500838442862469323482821610683689407269860337299475270439046104309373468124357848218055393109043821262181737610876555733469580892428445459939807891800115409590604509494910249199125186982906408514567740336710688973480329596598096221234892603504324391505193933492569065783364748143769648284118851257816719710217438710395981213657168315633967206540488567790268815674201382225857931028349546110344597063526901267717209246290814151053483042649529975198283026988935004974799025484825445367633271937551456254496647510591755736507508964600519411814485233923851907440187652653079229943464614868683765964236603112740989088324992665189282010025389079572134760451274023972759457975257437925096409314839828618987205880126838249399243901223273211583282881538585393431227844191225954284586854757161643475527886030854857854201073782172347729938998731752235260243029557124990418305428509281257538575401544906667522841788387805557588994406479627646170757954046261709448439101349539525286113840147840835235991027863770474545231168088262091493673353400827775007057059543458549796859102745491521001075153829727295673166065914496780213224019415893196382377891689433815045275295075320728047293842600719824603124010525665036731407895071054315195068032069321656291748417019416082194303493822260106905089672489256226421299394196365327706096829259587880493780097077236747325928375011344651321032386396074694447949732511138385760252929674343903855380272800324971475655508409215905187683409942090146689166802174792130910481435377453510915622881690442268667895180688874621392195097702124996725847852024213877221860461457162906441732825225302865844284443858191040952160202753177310291042432214193697800382950763605470647718445893894486948053955086828646567257692446710508810787580101150467792336687018651177737928818176604863574522608094252060990113122394636662100678667960112024650635110000775950523559000718995516376159942909519569469483205111066749204055438847103711515238649043512894180590857647808853065950366779178089629884357505648975991993678808570414145612890435244336424137400362256631419521858272073799229853192986968473254543094671379933155278831567374759011659330472387246140553679299384857118392356567474461515535431123069590298773775949364187693927390869694734595764275360238668859089233150451364130262242237462422978442423095300827198942524098849030448796521221391395830872603393292660947768163954710154305762080234740007687294009135301436541043797202709262930969197337204073720890276640533608504351694297365890552620636659300170376373588017983065547667124899307681863454428526121768508480899280178158509343201193238635042709152513606176993837558861754550167422454218595278698908194429743313618691082382086900837577109014324572288198886537600816324925065725954051789316838935230436651576027882704893375241880564065430669071572036208611009508690699217201895251517110249776377470377036013551112266812651844758911719429752275869390188850257828824678362328179595818037007748562856439447619348199618478397669201547624959493916491686903853503232392948366339896083068742601366809463916232656085619131299271073725340029627498996108774999676674942024977809450328186008150420107465154409347850571385560432676146561219448559163816951220484898115395693196035745775851619887754913727346123457208121958619987751363394663960990021388452513392500605233152495531403166523270836226396746235858568253665530703992126892421164558711141713020045019849330570297560765615711874903619418235423064075104891671360288600704517108446238535955494921294409255735391799983851738110823619818318467997077496056598275013063033797346700511574840276115940971118710331533311367887738726913778266671080803346997963444370812367036219990659311971349647701065624569442141764793200984904644961244185755982222548002732486759299258331176267039587642234792028795599476857804963801184263993963754962112212007384515306020464885778236592177635298951967928487008793941238488732101615812873548281939755745452699640176632879092385233265466680031003196360680842574430437717396015788682508505105146554531100413169404302744193305985620307924731966300522906654204212899991711537960114663243016487214123189031062831080679702819065871846119575092536262539640618020100413692434544800250706508285714487551953127349984694572789200227081395787160042819615166900718023974636640378064920307162265313048854243211314995488008549050654564615045650456125201287659479678363835946191665539294631441819819641279775229725248226169839087463917741034564440744519924116190527846959942102080286211595642802700598406367230992396928744150463770601861666147182349093707607489312514198407660599811790940319012655357988369505732153741332592556031785039386248813680484761842718648456653181990139779211528733125584950811792053291675921916013271771571952679121398119694336666570496291837569153119956161413868209570731176278802644668179948803863825252115729380278086624114363525250448250888318445824856828981436593139487982924726661981129887837213572777375513254905359697182719340641340795490753964098367837431906431601631337917977679303973570183627618767221681968127592576791770320132371577581331069791222807721629444156069079195651150391664123748383895258657261512649242850921288475755516813183702611669435361944859619916813446933471436214007238848475324349854534484268030401861748243167775304236214331088434962186135807777248075979318059461797181638400732124522256087107440395860519213845073309675879098339716246805206509447571915480054823685213387326687518259110176948488477129009854383778542978942282185270926075834587046312911348696228157981162190995087441259313642546834845315026134018022592643300206962461916485038913576543968424955983712298668995206304682299419451578101258911319405088055277904269258304966461094452952518032634151486059563183577534382141076960653828191883630632559861514182562467651486211876704103550101765621342148383478660022597231162278274093600505729532243823620736866361619922716896858131973036519795278854122734730173988308219782232996928853403358985031915035037783669607196700202491231464611187653110746248998987052802589803633091317820009747849108801307137737660154272917082228340276902619320866542626601888611778002286520431651559543518528869534303144185875078513407915399454701049851553892206880875947636542569252904849244923003469557166905574432350890767851127953819908877161622951097439650329771145391778194880337686447264008229660166415898519799062539279524924128089394614087729619972733026357863643032145941004549757090771680245386366688213095404672282515038089294106371330404076766115414245575795496186368155120766772600688714360780295205935161941658775142607313037692988109844428952484085852175421661902576308291753091029136927839625668684657836061593372705927110074986086427206728018578257789002343733086368272900988610341547209431163649042191358916739167142339156244535835012781244982512657377507666375515425746937650867873121931407659839113098680232900849740467727394800142466251597700413243648364179096780317517428821154356213375497672972984204624029839247582753485505209943860261859041958748745688778218981411192218104847873776836360724229880394159628524311035454724678713269288583106465145352880949674146554680948652717506833945692881639668929084559739218374265421589931197285934574449405077792876035164664454370657798272124218661273176182494115021771405335628301344624346592644293446589683488536538546486702405602723741059914650192728685975980394127970290485165615913250499640970326658382141951939489088213946229414283384108756512726511993795276887338577955399678107260289340522045730278177586336093230216731864156895266534017336079902526025040756589783608834966522048696899135740693898621274636412265675074210019165408732947291744755715132009835311450386605525018134202838119683064728372570226312405679561672771451442455917150333752168181858871445191306083776597466443053999930964893904579358522329197600658251524822891844967250015630823048361287293897320137726792832928874042953900904102851225590203670939697681350468497825020003733515914327961648972214854510488924825245662935972570091782704079112553063144439212347104270964418215082564921267613183346361495267855384435488571253509703797145592143488951044045855648917692588351367887528388802097281427074629169917654031398661881128980205720909509660711996482565432952442053347699055479722828049060962989937195980778501282079619345421028181381443619935582355234876637350130869027538281657970250389160040333656283037011225043329691178395543757470452866819947449863489038668086616063752697854875548505944104895081485473480878483477103945577385684330067481122121482972913112919768811184243149592072003799425693181425003598614589302745332381640718340724934400640913613931011381770935751953679146402924001753262234000215850682682226566937994695188961528447614103389579299255110521711088446168486388350040942774682163953929479189251262385405663970730547520682614021660075828371974477980388468987813152032319184769012250807232192465739411055503333350097205699688247563466370561726783221479814808296134322564129275106082113079321596820153674644717503118186947033533116618961266621460624870946187699224932719859600216591750009136407117092760169641648558053395679593419722354120290013079527200506013758394602657734453025917817816934836075978374546823194186715653938526644939043033968345946698056487573528439563490561595142212350292841164044536606567972549288674399993011513641516218266872260807955419951622827306520260095649797719048702320455401139904425014675040765990289949275820591344944100795119299469221797759806425369925834413723522955136274940792041712393228982987727214577378806863084894271527011967414371351867519146880779679992381378793660853873411217847089407586203094503219297448756173950186408313713446357337174887813454011586902476466102965615366655591017506023129927693991857065945064250949952373196039148118603102370005013634721993192545203773513473808542275609161054556775460126362119350057789425768465524526504347357004477126583895863347914628263011011973693849910274230595998677895719568253941823138746779141791660750298622743776653669195854416212975273073633840042178888697424239305118240744214163408723155793352550284099600626474140652255194138861818547823510993328852255057595342614625168144967453955624364144292015269800089346247517161242316851847403149778372310401085373454802657160366528216814444874423599733082626556744275741614992747612795643949936370054991283916140477839328731322244454549852511744044864422305762717477966182753352062496043904738525696211673205512345846982894959426912246620468981239257715799601824833423653550148213460401177166520384033369797097033323156636545448079877369455222246063133726274096201177621664830151328736159240091577589385622993020652927299609457378014445878271088865858874020887932601621489500766723424392379965629364104257501713414458623171928706716761987917883829502829560096668552957975249101731959294997394173924515493724469291562217437292660814223017308047533021366268135274845585149768760502591917437804490343612142078092245080547479341462254656980738230384655501024498781178847083740954320950490685502221776139736632575678380047435469912493915203562104391015528286712187525807557786602554084918515329125306447566539709283177569745594428706114545268820540802054142554772074269651740736647830939301094452065690088752620848523538177139260394997665961147278943058541648592097380841137979078228734975561913179791156644831904050438241801732838990542562064418851262275528597933157304592100154905313119342325604330114307576330804452638508361108003851407200575354158431168360818471946594385948754140585218235548245053789767057371288810996161627538890112742715020591326094602327607331583050515513635087004298138240039610486766871023104063634946906580562245958248511943881506629779825269243362823786223086285677685260067658976831938735772775794065296638471003647527046251105500578639389922206909858041883546409799901393489369615617909182776980680777877330690953658366869034825293045465289821303145492904956071385762402205992239236635762965746975102068961646148957937500422016181930152591233445078324959080042264409854323814051091036544174748502865153116765697780973256029966098172356002320243654925194592196078165115287718592571050115281540382286509678020017969044175425198968070029102446312281851995910035189968061317101299732607187030609643565899410446488849973742121562959496395064731634482427452383549679981473991846031528423506041616631928866760590700854449646200444424816046531332125858423252715444191020824064266187542613929721050863284709345006183809683073168285619822857626955353437760416705805322183176721381822943192875483962730906872485414013313802952170386002042410393837566200122744129435423340530959600397893888915738009655594913647827776493174564024511401036620258159416301321843989423283723651737336552324122564739346025998133819728233923996579722926781423158806295629290989671439460153264500969234498446532932620605821344993340655016566404926672103942409413496203678106622357003044357027579676565671947410110345776164752796992157198461151123438997141823553544494594432970167348584369178930588185508650088813954192287823950432372475387673983649850667640152155963592273642488121324273550768365854085773020616240977015658662293177337330998457398057527674489005047450199186204629194857082188229354385122239645010627013215694883169582133831219725150001547147742559312095753257185404498603852894440564390937046538273462134105894491524269475986296985923826425833970695823020019806482199605584291424926254418950979140141712297413526257603832384381524657010617777784329038478658034195429371596813738883611922836551332656281502039455866967661300352980277280679174779197747386839211039045790919643185231919371089747914656518964428352887014799913253313917085767679922071261951298231831053629904159328418261143151467935195587917303565719730776370701783977949154844316396484720264879860977096523081178341939080717164384348421337965914769293563894496066228483666725556936854140885135186552916336625068748791290973022100331755376863241159896006309735856395237998914965812989967348477078085592515249864022281032016794814143377187310852114556295512072161302529495409597683280199435114334747923719798411098978912787132473877088418130212271473195104529010864694769228429550872200898116124397241742260951599948480284317865429836188674393859386085933727544742525083831038801372120886959819308511665619066019077277026405554339573267002185635273949687666043133571851557473470224029105251236703015077926507431073628216616643596372420278674456858723168168179585318955107068445889137308964828334813422406335655674480735159899481203962668286676401020847341914241463906000371563537617981619344671798494070746768512547330268321091891754762361018101687086282184237174167933610748543667041366566876019051766347051757971144870301407160805584042183008279334254856130281163200210724916550676669784077815390895399609305607122335958323500058468139521692666082541522138355854579788762587045387671074477275797592757810884024198702358438364538399123763767857554451405177065462318211222909142782000172419467851793486463080701363258305658783830582822256585123149141006548494101248771114296282715296560376803091122118231696964161352719574737359809829710164723264235953831814123629535923849693122868921060927424306620846027891349105853767713069952044952010682905977781961072978230602648493227791171996524404505421724379429020513365199282432145364236047650405253102735549799186629487047181365349935646367866058220089857776878426732194838370795469870183270321169087586523452558178842742539116224545568023016897901535345315703924640720225328292307430255732487491934589865378943117407074229481988999913555311642497485257668539107087108627118480372925245948241113412549750149194043567790043620245049917268689183707141937767809786085719416953275625260564358068981761447441904131913259383485364942485440241732027073396917849670616098092728877652037550405712840784109666708183074412924897194385535105945544911241764129582621351336530362375300878005494420792315730832045815739860830737742932608401123806506383498170776757564057252595760730199461223949027184693206053684431934711448884151844844477431302697436455120407048962106919846975126381333495786895405823306617671488295100977886836265801216517462912690261204861496937051356934461753577506047985687540918840868035446050645820329946247848328021042803238158936358845685669787383140066966392114055355409819593559846735814397496003647064425688631839855352684146917032088544279136302301512326046210044904058204065462001262613944679377652329493662402478591940179746700149939586654309270179443893394541131110719330664828673391169071787620622447475349192076340978472323263275437741733302377916195049082711031461278124762146603788057312399036476036150746944167818384154012523460108307567393136700876936989025179047790983882785194804834121087046326390416980271167235385607812454154086620401868994297964950771459188260053582149775264657764797328912814087467714449797679604482344286239021396304638954609114744263001243305303266127030070012600695610452607613578911710537349309540140783220479186012649217509217637997756157237442185095286313651861398842392274816904054738425904685287742682968220347942449639822335350078228690078933398599964460859088089702741729673220541104872230419962333700437495411722468155523007613643167927633041901567963058296594217670055883770930356022319811602222945847783708539918679287934729590808319954050114041440484811502151390999713282263742710547445753563827109959486153278070791635868212328245254080210704127484920265403626499572596959035610968596160957119707412636945577485027625141659184509844306157503197561844170265279301873705565817609021774249274768882408157231012871068955342988519064186950572971139791368094409669914812023596666715533951967104830027941289337411531286655128439474159871005250486236567651370960489865285300632893995359679527565262236783582520093359387859349611419285688950740187922144904288436750445543221525467465397713846099128358534653034757367165733630315237404682539928310887819279246430228905264742882140891671477796757521191786565528413991052000213424116280680750806558111009236139284510950048654450212185319833794776595368756755730189603438011201919974404600226490391938309539783718125195871264525367948063337143908403664604913001065551271854717486709932137740253156285915340594761679131652976082213963090179427058213986615517874521026803719290077549388524701446142788913025965933206851943929697129764618086937523297516524507421546247419039563780593047282556348860801612658255270607611188570555844687259076919365356049124226156066730462825188002879531080676487577701627054809247722124509162607548734363566723621978895442834517559121213080644198861359440605960614388788134468531610843964522049003425685839071536845900888256105981766576878716965051632652333041400774129613187277070299534848336605590615847825592004853154694265235832973276172201412122371141191279900415440259281495448031500392235510980748110217010573379663883646990157049887531920800602601539495580752245116547237321984468165973095810867394739200396303371784738606128402425696234784445757977612045884800125297569829430421668245277619877199470526883433600409448126042458191041793637944576800480965068587815062973956336044915339506297649508636067629692887662084827500163343255243692633702933334848060641175657760259801470494859513560279753893366834936262252324291373147164971521569887637037221173424365940235996418875779546728760316158228452311235460391753107977661591743099706210770021421227929240467381247266912266667768776433460000915208243512526420365897764036442076283059085854897381097515588862092515295804355275533077897951143254236737473527675657547766287039136535164192631125418013228741758373713739646139417244930482178874398853301671242468980366874757182178725236743829321547886421521740919889752445889231221414153875654954831529229697046963828451697690904268364568586105532282915583866486775414281633128798027081989722837373731508782819863536566508852318471854121601469117863592498971560646190388686868869629806603871122190990769983994961492881244692344526040263715620580914839113993088335068006034682870661380110308153871200864132877379121513230206071639112765373874978417320650051378951784289902834604567386738782416809075282540631027577313888063064495950504004152517138033990141668099028232360487448821277012191720571348726562637215722333104989531222409710789255896266704618837237552617831339525200208563128355608016929208357903132150390874239200739554743368388655241159332863385755969159172793876325575914852429618034211481850219488132097193029093247307124618190664103492805205614593522857478681327189932507357447954746209540995332781434499773275346180053358898419691982182257869987368281959975834618507255803602124643938718867979948721661193016186218003001784879226094008961633707035262412944621337146734115617918351842713793342491379489123680433154826961268330324769950626761232340601367016396326468720768154426306271476091523744969618696677992226891062901419613300002384433482042133364959780409566749015098722061035155587640807517654427243352785945022837064268923845171856204866565687452733987928166439395403991590248280176961503072574681540253217893123222055704541240428608172094502637658103508356147056864898240008810225488620116259902922607247403559732612184815354349581345325517475538454590200317547896717313604839359395929204351508678962411167915803334735807723962462945009801690955298365560974746062035430122869529440668412144146500578792111274890438289439866591194500575908193670468320933987909201492258056491549653703869680763457897169993002225663161494398065503551261539994157304918488715912609266560850888829530084964449355691426509759029695608516529325647702112321749027250131233870361107695950041416453870849590041177191886249054050295051211733651849942373460317475052258776738734870939577547689865762807492675559848351228299137585383783235484759569780636355264057740943963581628539322722258175232705347925901364485882112907054967118830186095340642144901027534341091138448228165292428638702172128388844971708301592638333363119927363271165835537973010724474949495915868609644121881529066616964756159847483712717379543010554123673441959077875078961661564877385958487302539259147531200959548912419400506435520361402285764250817341141857483201981708067238404388477406488685192775182073355068749570918915879541890049620188926914130099659202543907565306716240825894089833261396930183298841826185326472218541402877692182744384483072422705839566419953525603244854293933188574326028830011290217013053738259045064355167499316845067547967153023403094146266165192619926725485246034999571277026578123970668573302844862436343250101202289332513959640815299374764860072251888689756762157168707703586806595131010230653640367554863551017392733061595673498749377470361978820467056348076229206149391845523904447325548329228145113190355548465915318729627934406456183665712197151227860923892175273856841957032685972559273746493479711709687735520004306821481374834058694288018567841143076409512182228245750532269796487889531110999690437185412216598318164983584761098940350462390986812189414473319545873153449550158951677956999069709563533750260929511807648040335862022654026362620737288150986820278494317641994530765187116408484706007766673392066901174349798700457459623748129563215435652421735971494503139489570186997541632386385386519847288265653284117672425625913912105009019548372643994250625539919883293397219263283756453575272296868651422931456983272357512980473740373045654079843291370966985653168807611524925784019884404393007057858022628445248750615872672831772845735942949406412378898464224821445214778826201899169646381318001157495704057083344208800534777058055993345562934346392301238115804667253142094320674871708559355082766734496514911258692206219521296757466867190955227511469869740512923606981578999290895080874194618946490421827152254650447770449835761645061331328747447892213750030499194380225850868535024896071946785070255844702864606017257021344775798537841350568741051973583231334902793135846333158926018133471757974956545249849197088082390087962885372651708444661066211246586626919082146052875409343647200607824588200468259361834915235570027229503659491513915356102646385115847495247272842907704901074834464791776208096318626779442381293509009174714338825581489272628275314367923466816210362871825673015235247490793435444538790134075722468592638903986343857182617252578179978489292105387541564538112361368739118614317369608313895284014022728498515308578031078506962725037442469228055743625620207580011683741213953644040986502249589212268839810629360410836853170047901229584922548873236088526756000013409781757114129361964298751820829978606089790471836996309053446494830044811005527553518585397459977433436777340691092156600765808367049446955535180374304799336965682929401851743016112481576495664420186456884301785254554308930800915516639415112136108619502106119689425009789941344539477494104232334864924326607172451671384991371544590379834607782786437642402595300532407494159564624171920440503717625802453848264360158623194264101996786937248373631795651845801100782851315028105361202696990085104813583840451632674925120781689971633392509912201565210765163654493862005766676205702602920331406179463467404460778306520615808655869701601686347398164117677365146878821302162546714416297060329656296982563060548404764236188182624054981772776436316762535108294476515555738369183295065176868655115416483546178666199839686489551853949552559388030773455067052587523177889174181764650963468798441977802205290922269976715453906266047224575664697884017454741996624963564689327745759593874964744323463265256404569622472072149026454991926835590402457247835368475418627729102815330961685085099046939490841382994829360759477218241123541289643697934327334703476591292870131694859142606948426111058334016306506156798932079628168272245163661798020359096747740354287316745978660259755086922556020941143044519654249945340524961654171638378098949179711023238484837460067758351474928466707026960996898080474447924422606351057195084718999280507524339436765120087981013747369745507409970236378077311475594378985716761756010052465094359080027056499002292558819057620896399899176056149671949373860448583966590991011774464097926950031959558992961896806628665529450043760101696255793999810097849094477724189273680083028951404463326464393939900822160158990637320091003699128615314752800389441919834685591510845702240953524421691490112631887475959979218302501848585021594111124327959906642432849513688714479878016112989584545279312929209820856377735890321050081304675488499647374000340009956340257371372092472117109606143063174998992465347649364137940160464901857911236383363434084602740971692555312553056033936953032062068613488822926419520519717064815215664590571367943813673274259360373273329756178027361516449863314450355239125382151736891203899487418000405176386193523607653562414059883719725812647023972514731243713056305133660183556386323426704243898923348923241940690855540821952665360655188086358328987735953543038667879748389218332735081451510831854495136560696060045062217239413162957669678800354541156817161680177046814755464685968722257281500640345595859542290733155183166833670836789818370973255903963250300162177084600805321241748829901609015797546803617023059735070527524454576876808307361534221883874828235169291007245243922637732727405094137491228669005192989281478815196408707947748046710514325418957204383835690807855971903083486869252948032206482851387102014555555829287900583641242816152993542824278483423808379349355657130602665280964989041963909902468561002494403562660392169667706309128377461066644172834596079977956020694374219125033733940117368842787718187751567903108393742924472082034769278834116347318376951287320610145153044012537131678542839905878549529406622982873360239549969716931618692651008330827221386131433333723424583737876353448971920375749260080500036372498957458909307141704558198110205718057154858524168716119504621619774120940218610783925309801051792658874055003392964835928237435589667629572551033937007493806289517628798965385954749487674584079436151151586758113033647496074915256813212579902153190972059060674636365335748895974323591517219057735591096173608108863673260784080445042339368287463171315563657740114697935025757758621577774992856096586416552352653872740838947442468259884325157160850371207986370329201668757409178398004075716008874055493236318246171309348375517665176500768212700424055260702538195107172050840767794521725343694738311323693073720409388998433770505955913009478820631539047800539974239700784006464123003516308765193871496952411951136810829191988265163920094769520172040417678277489869027421010948289644719885807451882116700564266298330032269491663556892327142165363332347589984698722223202459688089001308694197952110194612611178489976458365948567821500618411067903896744809455176661157203470517248386054310094922779723194377721955052062211320929506302777917015819034176623418726628201001552678670388899639569841873907087643845062761556224015080499635633024462694281300765250575298208103580484430599482560546121767733863890461996488823637232460245642992763922877442218062724440214195870664207219501724330997694709629406141270859795260488529868680024391156092859024476338147870100795365504257743246516242653189264476247080408443670444580785876516957668222035837116167617623464480545036003965275370364124672945066627885259718535575111463869953590297271482273006964120622167905512585913561753735091288902093901067709334328040657772416061675652934197753677089349465037559569863990996269386746654796380286634079724055317290835914865734013576684940009385430973975665453927415900968852687597504639756154471078773751824460581968842484213500670218836411347112920040457560777457185830410078118483469373072555254193327957168457373405585412818841020609272275388302463692154574012236890839037440319807787429167389245374943926761385459943738387802711398049951713622568163338318309547711960180956487109311090765035317231822605413139935654233338536812846024451613528847091312543081763041248731252326597490124753993346085929056189978311602796700674547423288884592824719763122089239400906841830955629270407836873930821460387884652874049914672596342582479492430131323293176349405469680505646292435462310238849057534979169601176052478461737978910928508914384263550728769888447856469331771343318569889111598168366021979310936275466426308575749068360102545886108357519166666937081922120492411844870417650911510695722505951722575854455878250138224496223557991385748372698032420015593454214921779659437363252392901706040831174339381690764454191617174242206833759807051342295583331842593774843375468719657146896211492237505510254719823604764367830523788290444760819153411047394373144551658395229522292807831536991045167467400168192461789853187091636579283112195017783167135296439322246008109573490175064741770256769477575540470443819028171660052349618788554145463648163313516467858962515883806052686574123178823632228557362622018683591482067838497767816991609154238248549950216682298273879698229613466869900151198575208619978557995863331044894410565716160966769593417848234117033552155529478044327876123430639060915291056182995584466336963419603151387827474550175423614765753147073223247279249400095836897551330975706950200858996155553712528072276951713129379990784107015152727934124276291001253617422988311183875317089208093972739018379894719521774851653261425403575094422033059987652470303323606011542183200141144389848667136796845072857086158016049221747415539353383303316951025177571777231880566106274820814322653199118077885930071842281211486502171732881419679879511296213921844039901891513551998223037573225006144428730021937344082840408856298870723551938519927989212877531921232627850403860017048430906993232609572008169762703564537663330384345361618956164132545105463271383480181854048765511815048431756250040000599796469920760395156467344872338406565368069792862983864994051672298167875835545954940100405667398133688619653724750537070244871888759364317916311550665088815803003749833949732325507852755232812352279637153885491381037451162404213526951458279336411297556751358228337369131525478237740417468679751601046563872205766878733828972392322988483478256085612338224451211180002210647854397215521481058155226587860762807700791126390525861539334193731423808503632128156383130041703155054453561229990130592140338586000495267999562929076501164625718886990889083665122094993241666381792628445385153077240724426637550851992271824255740956501258263215672745542004309276816886140377947063143632805277566950114966082227530618818685360342854546748427948334550223312695780451600370542686292026076700180821951346487493812281272965009262320376603367056270016125280375858868446495564818308231101367635744434054546378508696402652555740336533724669344964130139449836306321914159929778189668238602860524060829745270972945501561362354874582869717355642821527789690515790362819853824133843168729668352918542787856931932162450123928782510572216170437802244884042560998637471355686618135532661936746339767819259064828262125576862843647781554027476310673414209965940282834009593028365632852757346718791607482838526182365741732197378422471255990029918345591266870772164460572678206394570775780622501077450936957039961435677789974728224215801676625767202060446759857531086223831795129346114326247387855766657511207002414527239446359636191550787202812243762641809406751192270517388910263736088882557001479689417131317715419536300124333276816756911398963261995257693753166219883290187514077882829940688822270566835180021449001037763907829663801011356063754775975794915881434838398965265808626627500870878727649165025958600219221743446741360645680092642747766542556717091165582008446672783414411487017434477859371609495128816487206641949395424789213138887099389512852253945685281975565399352991854765364516561061907319436678089061852198393329772393563333067980872754114432075097120515666776946848055646111744436029632209541303535277483712912350909943745729111926970725867357353152611026444194859720397477216754498488992060244794068465699951392479459002977144155503219454703204872629242141928103050552417318489325850095747518134890557249526795743030290135062070552456189112704997811118417131999389724465044997379508514723788409789154151876545145754554497647048378437408513126319479234940954078825309088432873885349351687158553906520412084725103539581859686159362592683181339291868879371963192473496508800396526661356975435300933440840825486765509094048475878347729859636768896872708415765640094112741942093440128578295343537340866794281994361296392128530137844853084708115503095949276392217843736461471757352428597030185636488106478903065023759026573470889193984688798365130970632234861969972619081332879828259680148349900212843498033745958242447587363671435544170536776026264443309877537495715403245961102154358148436015926053046346205029487454125369746584235334990479525120442322105038774124291094895727962866300521622588552541266741628657467712395976483417480830523899032137606803810673944114964777814894920775621881058703083199126697541920077741932270965463359988796949200518472259983093655172313054240924925701025004684116339667432066507408785954841580577011976585987903539493956684132163847688455091603624004638091987727551197441010955461889817377822590735133473301639807248047401005067005958749215802385966922842439638888061254211674311882933404727519976829321455257242623619445288724870728687135290428200832426369286761448503130803360894344284455528952438358093770957999532873980954972147138698560180600117923651509913759966386029578734621995140388719912739168771606303261537436158676709784672868790840230564987978747146324984894179070433314198489919010341910637236368190046054224306308424734857793295124859733218172127930676281716400189871240818382920209085300276823348695710246274828724661915897078045118463345837592430476422470046959726809468298397381858383866382794911888368125967916602591128798016938150687612641794627385058005145351478480999985294221567200693742577663876332204282203538884885249299703918819995378454038624006599572999126067538489442011877644892755206751276222551681525029308906554194938492547808307811244539813061872449887906728687503236234439951190824464932966371484661526872981968211613525485498392950835049952621454896557811250988642281631784646558108974822678110681292652911341871315806984254218903164906674253117172986617293095947440878572995082593931936051589508578951276189924048586887448821077879370286538535555456880510021579367507452866231269037377685001280695396427803401471882272362849026446489354259860429882200229160380395499212648529155091994332034092433180651445455171021855875939215274413867674562546981403353983666545325490720787014715365286970397807843050819238306635173106372302292927056708697607797038575947824946320419739611506343899115902493627102881591527510780366800553155087350967793567768933465868635582075321539000084420857217248666047835503458215337008694230746447999489147015652624986986371301236230633947704104848341520138904075071364092221263356120441469812754581993360297169520215938181064835662400166905574908110307511897437886093102161891764457293856031480667793479951870566462644200793144048120893566645028118062284358063430405920525260783238500683192824878195058458137771801681079188029599655104588574695152194249881622337438200933615753663875827104360420190074003545133473774608432072294171626059114896633345168025406117739450375638108735244841568326655439530169657802177039274729627041997094990446276779943128818184155042403051318463903534933486799963467275691328929119650638078407869193130351014359870627572039563241072473238375547244634698731208162235233577589567871239793700902432490095591005041926308102408112937503663159484155914454830111144741858138297637347371368808968438363182821073853328073458704434412462506128896849050261553417700700296831058606006059936764406973696959622611871276214476855021809361006553126108085060416682844190704131037183930967316573950911079842533949990809384991608912777528101235736539307734615433173378422960196515942920418201456822465388345933845581481059823474130888013652246697587113473579288429337100657512220825972660666995895717714947141999740794661844439544695945495685346037496414855236422940520493002043788212823320007849607264233536295617535452178445254032664305001526855020262677708683707439742696394317891766353160072392500557454083244448063540542357802032695175382160908824799923231205342975513168643161659365081889331651548904589284449429841714481456608776489607826588001104548926645736574651222783970789896375476704301498281182950251455787376146741295778952105447204537241078735226980056350847752125395593904565394600238094896533677749558170087570993211877867219486759240673424944102383345187827801065562351316316536783010889892285015268710632097844596846851040792013186914796650770733779959593348577409605373242793287137747885101786055172520594640912330785735731067161506448375679658493127289891050408676462858532656138080547777725691518469130148596701388976318952503881963285352491526647872553303055379237380904879993305465666676769006418079784517040495392298025614164127195778419600874053939974688094831194754368353939184077219445807840971448652039748285650612884992966656344072549713616256780519816437834703041594824339057727088893972142816930909036005160871718655466732966969627129531062883909526093998075135940263842641371670598326400679611850001385210037154673548197415455866771295734241381937807490694621125798198827433126071519472176843716943866001903562295384667487770789485710459703192403893982529117592836098049007548069957408775459173702813657593783625088769474088594437791804702095856133941421229585238082891813559489127231393623147662193621081147616487297466522191525549554354740663165837423188162852855323901675573156424786089726009584571774206988034557200170199199063700084546548299994932447979570833256758604099214187301986006747845823232370345711735694038560478675706284519897081137618686498965336272203314939801151475929067413748965114864828112206505461678573738853270940747477212025813073483792861011425204552880643130252773005165922435116554376623951825754129007966966554244694507985858108826252716335638490983343323460189126983170813799126241093427073672261356061624600293475093507197526151955658672089679639759135463401954515982131352263418648439544723561214933859087603877748511546610818040516125454310658594034914728444652772269890502055504606581770027948839975836133085151397162463302355902097181388622623825629280344657757953786918543502787783413366287615956242325024336835453639315231678230754548825851363074365327841080906538403890979619321043457160507836102292131716183938240038500430955920500359296284413141978342535743333946560407507319329708035316739464317066929505703364341140575653828492243605665357661858257643538137809241821977209923579394490103852966969042117990530492730670451907936243082687738834882002258930013000377011832092420592521834803078568739562590810747054648798935979463705548826285784426579938744701701719297180875162133716125710156821027003438018637514576012978709404198222686612040572195099606798201652461420558750444921028628918994122770344924082380458070910678746065898969834566221497979424015704737776167018603402047948712835170087848036640488415876955950591447394365875084391577695416328144011798465301355788555032298504336608316026505032372411004959206341734223925857816056221464808778562292766130889637181975560517925307209112943884273035896820300445859120375271501695440829377951114684431650966713982100220462801123225004339184448135155107825275748426265095949313969793657091643650975087388917715146770696522393464980563452217291095872592500403207624286389150513245606009639554313500710509683480197569019162763411770508558199697215352959103146951786290205287982736648009675569717610001313478312077599645651084452248818914366532717279813990703325257493594983719178945026236120675481956776219860181457950215160268695851557694697609158992670122827888856731426739978852754180712555726271799862354056740947359507443614279094722432069579740238210215808460951041851357050922212098120758249775259341160850101220845454258090152992589165187468659755701119117033970942877123097833057802338236678024164666279784449850470449496403671320703163624349982428381357362578609091500282257402160622026919085293019264983812184813595612168160254431379953915996503507214100309164798690634097630089367956433993558680115892098301443591568050403579688196366957422290541916602680871094579251546223372054356104228139850698448722248714539039035192980781055883660059921939601293804560899316864695171476689960566176892407191407676768597459746574750806167187807442272299900434343672903481349042698515718729910395505075716373033124947144299207399643183018488902204675237464398033141876861878232016522095214248889780451406543735741821635174707546454078286030881524953813159872267268208095630846029365843887036315625507878994383124015789772446011174570360625014063558850064115993430880726628035630719342668459583448404143526917724733252930770385569448388365380346913132776075205063581839732479987698416862090736044638009843688955898564386064831545595780223650669063928474333541547377680439766890485976733446756551094432303728576593021606503905209601850708902352287515135300912492069432463587587190314219238742987485184531605924199071788630091493381824169250145394621615814812944451248820072647882396381029062959643412951246463845474304887790987247518091627762979222114555508236472710917609270799896299007900347817277659676090551895819386970641907320731562484860584024693128402393235403839416633814300346495130276520842397750371854189414353518982195219345656142157408788189024019625538839125937713723926268786715050592648359318984147577644311263668905954739322888719040672088669880667993545007507822541434209656214504474469194172737902569537613945272831458755310398856080316840862201076544553869078171825917245628631422293855730975345381531798026832013999698696439181537176017854136598863034157073157480930291445405730738512914760617641882744913391860526064569401377350812708542152084119115820365712059781334527499326097000551124804127117645265213535696178254469732710550161484182505533004885837210485724357811421825511935852912703394645262306480068346347686105061777258555687620458691344311945897060621201129380075618303989063778871105462550464860616414195683583231996056155607843604842363171504139310138133174846229504954583035448294515693355334510140159559782198518577121937771809524478496889039453276466136155479721612786485034189226414068375642533260684413463030593232258656564505592003557903606074265724922781067705542512305466237434498377774333969282890974038056525684020734969647576519426182480783054281235214696855618341550595326877548150655740904589261219211658617657421814042119827291936030367482652473655730734784790320353267568458595918876659397906302688336550147998778964238113083792640249027801403215351811988350193224638537955896948144933265738275206810403665139179596780246048484654207494640956166747659505701293691641693637142896577293954324049142440612033809229221961334748561325039041802041121293659660556938020271751257723042898935072016181276098350672373526145468378682715038035017335720869316192306650199740033234762373225021528248015176041512128217151506176543589197106766005409470183151906205541376727016076738366335312537665514337929844541790047367371418471872396987752456157497315796138990098133823647159185496997968545371422143949969211818377700046060500236297436082701305635387604947980903928047395780175077033164079077030255722319837451386415318923088126004734334392931437496525228947924348023362029488824768859944559031331804099317219596709370698511079023499016765620703876618839177960959119497684798517666332248664575091829490681984615698261948103018966671969504720269487978183073874956739270057240578157401111911474997657196029031458139299448029097054862134582951940464305022871187496487310001590058669872510699716958736184443876068780148049507411907628774860365267105610018590895437548231349415475523041796578042819524616330120854558667439057282539649934007263064253592719788223045931723451416460648091341366231112314643702551894895423026788995109873848441753761786808861205967175007397485716396524659138977163872551715021337702186578607911369828616868640496902846677512389335478825308012956114595844284770419461635289543351311872203039786009081874326630265077388521830534363324498980440959090900686719895621888863498954730288813376546320757946728755942623486571635784635572097651148977928402349441752766047978063548937599974813634858516639891230139205190115527084611663210454179868636769452463717673008033046112187324263822857772629860294713372947965186075728430544629992782622531273060196659279022638369251192049241237562616237594092269371591295451249844310708545043288369349036055374058584728949154640245867910669327722481079453619056992118247955161936130398135325750264469753305289444957744693672316993362900634159410095669074010460938497690222301563500362364892780101441195543687793115993991612763234510277833516440063855078453811392825657572025768846170646020789585725598438989562652253607256018693126556277502135200567983817325649624531484422051947374616756759242945086361205403353537536010267010287648244627383946954638648556497007414500316860231163935866383927660534703712186838073822483724389123335804751015902175068851064097325960341655853313722575781825719078221103360789170608650287667521770904784125200425070906738083147505138561871114380378952147922419422170958200118998864905939234879256709825819105927154151177095111131378855082579361996739652278365617718916085411229556340900329844514336087882996747375369561078133046595936736205457370356215531742408729637496805380415571684256660436292270822601554484139069040200737443907599227234569214936578998497268372850423691218965967912149851107151869607909410825438790308170307114474975892888915581321313812614379049052780484501404887049957578667961988984865189288786401314510863101804305522746723160762686120167927636552330121576261060773439058254708012747702986418372549247790075153074739919197334128087859295138923735338865825785133968519045444338165979145980565805893433842935145305585312579535335111718948561718319589238139394109905597346169162375649899560924774145852393310935249066628499008782265661301950107733827074306210097205277145990748514230292710638289321074042474435369728717951921403420483822642183182712047095398969188724645013143446418114548001696472099048752724853870317098928179929370551270219041483016454040023844214774060688072171322425739320860408871116587635612333454809145054343132238906004197780916185415503561932908305027249363256592477218619631837388339597309132323747761144117348862251782305453476415612706717143099228771731112119467541389326047729651661651662907065999228404515355828432084953813464702631614361781977727213253260736810513047628447280886416597895572876903224639276012497984881207735267420373618440389145927814108635485754379553236420463017093236764843672971013904445870692065625783610132493789222188100902843661988445972885152772207459799676528685332663027918953186443008728561593503778002166936201828280020488612437354047693606775351053475090444863697730492992605927654825677435628438399793277472083877097806404470096603237725554922979762733029819066717055476882804747304906375049597330653775816033377847952150497012789558619984638753754723168189079641948334630952442628942419931855066111441849696566886838530475514483742876564549625689411761284208325404613977601280438000609065739192788268854717853604006348453768576087869317783450089921108952449374250229736745535235542951270874578995498350412926582178446095411772488097884465996564934087947313840970074159308764056594142265510199794365699943676160090086629772392680023396909725903511122666448532750512378291795072958251728351635115687173666206314829592377239494696192035543339619745693235015600793468193748283414524602757659825794510200336402750935393684989834605155540698128343388451203896544116790717654841273282526208599438902008055124633920050846365636779517887647588171538343894319819658898342685955839317742305716726105519001629888389618870972410248480471178639889876314029035708973072992109395648357718147361349056889144873776488010336861578898996224636549207650057475068427160623061661336866079062111315193865515996261313779484913787301240625598987394011883543975411523772048884347158499457066210308454344741018230669316903381047834572190743279754598107388467395335463083339430472095760122785660831788822155853707315346280255117729596095323781043607822117911630881647232547947939380687105978060892726876654495135678473313816746389086718520163317875001157740943110784871022497410803180124714896776588534290934972164020133185859957228218020981789728934136470419371623609212874390651560751722946441808490103239618561440359560180985191804541822663011455562849340340550972921399209954287646790295790504468352900261776743221339016149315179290387235140747634235758500528733788044382346776013248449065968734114705198096573063507444371467435695929143165254639814739276537913613427306814925416591924896161317045309984115359413190201697918140403704877588431771948531905812687913510413581372705999499784328056529328252535409355213972264013409941145300017681230910377620773633851711124805691918311156574149125925952040366614914771118587486590157614777830306124707970529781707508756918427327091930102166340314077089243709774100382715256751558144376795010173759194300421000695972331021960049792528033261685540554818601753951714534156613494649308487088970142730830466522611992405897788089909042504047497007849643667788869551533558753312557917126864958641916565389510406238667649577579954715109065775000857192218191923215964629766195640259082104040487643344065544394276366928456232838865845997648073064449123459045193460047069665042198778113868306596579827673788867716061533506934663496152669115703798649193945608174118228082108414005065007216551396700111167092927172569449614720241850768292665928385693249599633211556688783166978239069193410758496096054037894451830544146092122622322736481980685732016230761607500063257880711742564598041075070487526967350131503690511451692083299205897461517051660345317102727246037326331775016201422832765421037595082930548517434058052181614557719993729654463304766301419437218152099729802431586906274766440242309088570163165451568566336847748591188160252693899917383985688716451188756620202065783934486233714546805882442360546558691100087804659730709379985454588695008489371037228039907691735774668657434852598332050749250992872461004103267258862695422887076689457872090852398705355956037675825797219972228056242561187097588910096586518510316985321665218845855501631555678001677380917030349950462956672701274640146781927850805712533461198438915132577965160206915962516703689313383994132081248144713803400499691332063226843347385111646684307801339866746346855667635160374837262933593709320801018011960816416767574520335944154408430758683749678109792304868522440778143263579999051249331760536659286926068102809811678143298885595424670163432683930831922143077549943271005771371802170872449876339051789632893068823332400025255317058304553177694475082472586651950336478544960706426037731135020378376433467888341157107614757599223069010290123294460554231049320767619835202569574447444671031737924321608270814394410220171437492490552436355657785336934182327602893998727516577830185655580210905186672552884321564691514244503303985853310333113748670990633315759399124870871995856931841903634953403242893541972614979992187048227435263288638932864092921474074741923806219474813780780177371456165513888002894607328559194225246043179467205428168903329880532035522110898067903651040020393575266987390677716714984496642358377249788273676139018676723829118898808689940992195869816608547003686256416197847188808607794283805677288698648282865024533535374215203617473237036314605829738369140825028741788581119005383790055571003580983172228740116755464381128334113655222513764048645028692648937493137403480567447495900636576691471287501551585846066978123458387604266809475759692542126190860564207886528050985183021844185002887195366144116791210636023748444810888544291690563089994315278099559737243417560268420705241391933189135417896086214244909669127439881365486983422689795517900909516977923371205048021412889444637535151375789222986073212828645431433772831924600676006044661572364472036437623570380334086405152963803992997334507620360714477773184722898027769694221652544403673373615887806603149675539386313322414429064690564246974069310110699089643345609464232591080583509504889023718277090837548206531084092793177316306402666284070414252595253345560155373393221305083389559884108790073491118713035890489931612760178609460641051157414212445131239290327292984396875319237064469459968407382670312050010288576937331985164220542786301832276485317069463609036052617496535040128927374055003384644063462080649942275078235384859198942945942206471643064100849238673824563908715176410391058355023051225505471684352569404190426671844731243929409410054422838697397278893533324746854060486082179646802262352849107377804604845729575236120238280281331133019550496713302759804845504047580644897423636706110147254002719469682247702542594886165873736130633440351648711108685508743858892864176185441172544588820297561111386641100589399963812901336249120632736086268374814454233454611713524155382463924706401427414969307264096252014377509781378835650915102896636887260816817445244444977533702455099111693399902929368535524301490668415890694533411842882169081548056219317828983997446340091528533114095455089111161349864813881841962870254481740502314478057888517553454331006934168477043994788078484333711122499514236894467293330907780539173523276910574939597533633286639645705273974340886941440293842177302893794258139866221158335685482144530049066399541327225901007678855935046915059510479662491132345822190353826277371993579349015110345922766076418823098739578609333479230376504404921768330178159057251793012445442354651920309389543950333465880918553247203338344019496278971541960150625434625532747036802731807195348946198855213002684112886198722524701958718549849352296099269993038512564022973140318734353120622376745808928143538609031564467924753843180234546989614444045374581367929177698935703456596621890920744332370507047639369710571278769201176882397237658158981808536825337256116627733555426972746112844315914173219946899737778235200771217452960017800316283189670492282325950067099479320519186068117682258177483696547110697766755358547257573535001541877715668257400220369799266613510346146431228475627944697737711205955199423319694203014814503043222842087464751328205420897050483922331232932397982567803113675902248690457004798624678101016786322891297291684418742072050467806852959183419108329163756129446597206108384399991432597187548735047101615097632540807124582032091559403835551838521276448592088372710220713714482815281093636737418664390557269928826448195351183547628800519807134769731246560528583322291092725982631837119640875844683240284927680392126775335689741101773142794260016000738121712210395068854404929764239892890669644973744348941437975983810746737329873620971186776782085658127548552286876864209699469093359222720872926481887798827878754384309562474762926153090700623593580807700843431400815967641443420679799874840338777949891112377272098905441916995758544577916712543203028614456910932834600922561448260552866517007501665169922024655619194173069116419216444037096082103214175266854167739322915566083855916637091522574882368292142015852144883099665569237044298905032131472018771316865879369588901373585180096637399939051087341831186628986516405398043001376367566705496239419997623397050400923910373094688744612236494499627749457551885720478665209472295330978942061178594688413930155373565339114588774919071605745547889368849467734639665873048866992057981567894419851889450395974902331023090132826120089258122044698665889971313678096167810941334197060766527172118000492080044959427541890440899308081284009581347646482804313147930088807407822311460567565222588446658992901103486928799740755635419597113708948571080969122837339809704303974926579583556038474246686890378397188051466672838765554081755792688765276525618867448825179965440673553662448496469338831021008481305516296980077575065204867385468115221157019258377127499924575977536334809097039128695905821787636831715423967339096467315662673821705520548518596159207953423978961615165939623948909739260215728686839510603570668921368164065633041513066788229657561127216686087894726639161368339405001186210200377869917399573960073778025834647528824528713352245631382611018750698785886545552712002571082664402322435583033764181992773761542574255646203668566092640261731111952916606575535963638303600528476229785845836624387191543498624553481559866199398805878157420818982979008062028558901878106536024295849473753466875046464833253284553785932928253249496178317629194168587447404172915102489500936727557085500520579034813494934781339312150448325218461563126593168359432887711962918876874277803913510203245035168224034438987520692451089971292603657802023471115701731376666218969944852226272524204521462294673866576926048582726548142904558705630717025242646052902228579071254440414069061427128026620032634242638610690901968173817157289251993373993065727618864434306259934887613437840946127562445967280532955862695295049761111553484097321060120826186977227109652256852988129237171132562330245801042333478326509444622756295865440264350625385397708494733944918688257624361572097930434849791942513308864896250013845966772027279033257074709288127904687185512247848971384563488054915943331750272407183936298610603484202814421016965175772027395298060992346332904868815750975061695612904504246077881741501923156919054380690732823413821523529570385694535881421894854841148024878872451301468225817287774633578035418338124564915399058876229918181677195946081624763592907204267818717561308397900936239542480054607215799562184819598912288151979324229791065912610639173696166792873839385745185457413105654347654205913952699948434629702078136056095116347012955869692105155929268376024634404863693769440426450160703584490287960859073193982853045333148963594544958442762929230393779098319421000751011290770206514864942827199310739139249767570778219621273826834630532276032440999118034330383350411650228589925788935531614673923033090582007742950032253254917729767712851028777564862467611554166565031313805361191579956351874370126570774290135866290429662251966204539132789949357130447573687727287368485796549282494080160733902428236851725224229498635483924007798460441675013708548545680184163412515485953256310506318455086441763177300755693490236357679895578548428024844149516821335682911995660295122104554033221667936234895541640702523499997200433893082949803430316366857448869156459345304921286346904903063795486090885827427256370066116162891517255658985518003945017477956183042866186042270933774265011097626408726021471932768927693816976561992761388601511552700176605072566515981304450002686570624495248155697219163332977817243802720142957484917820262781590175823633093812922276413597136448268343777481378654357279495548835908882630568377813011636388494991010721546507031275540929487160567508448517879151525353570985819614698026485376941518970295812851693301109802780267436079033991144399027793748342596815188129164825223050625785330468481483742749447847678901698229042006490632694104090683163333212160842204972991758114475567911230959062705843777820392084185940030697573474957404842750970282442721046655540412037801008977013510916270345472306106504582013171885123839230822317769800265124971305353047656413539347604859359566042802481283940598088593237968694416029987990238231695279303001932024587812116664310055097807247712983354884312233870942205527614691962568376300963371232262317758216253643429149390803381594734893808549724321702019846438070708760535469403811932653766213705344755427368051432292850652669169421203716729317043806593835623685185549286725195712356420214631919211818951080194831250217536045473091162500416472449200584594691661723645456877364707679201269485504144091450548270307721804996698406807463972124901955474858457217482736108647770751782420470522055958249927423092324580026487540667214542676855106645305211515688862836508823420753401921272021836564915275460900745460178058713350044541474242145210622044480987592720720676453888321819500623904257036379516769531824139576837374477647949551675151779774403798442306006298255221768985621723591673325495051880678113867377910975957902392024050886243727014022847709083480823464422371784488898546862708016142604992497738102463464571102487011933346730095674758644142856261385895506214021162575254933656371837433157168114655857750853351904664342090833314680955990942901677332962344376586629502200961441006413997132711345705437299010262096288824090968598325353624941046440254639875993658824152069031511560971160414395058420056627757318670521117440448028077197865763038972417418960280331730802216705001089034559487441125193420156133391932055456552972076821601053717338831155130921215769810416511754628685836557861175368179020769505111647360262849442897885082053416587694844831383625264763408581161358747958378113052866180609580425892064614932422227496542666165003884530986947500130058161675984170021957151644972851649184827052808561430939691761635678084164570199374367810108977287896770804337312682801125141543840760986707970415311282300370052009880707323763115821073774791606035112024366759374024390509936394345439840271761880894506711530420833810261493118941375124611787880590225338916506792224367766751739790542333455106947975060546808317749872151808311456032325721598298472814301689829804531588856271393867781927239269608252501984880897515349706125857467052180417901251209744217329416785337983190773755926348342016127900306786970226859693579705495274896902253106323732434257581218945477363902831192073150324661032024449389614364254475668237572854677521211552902782792424263188339689198347419445088572048085781562516730534152627372800518269745077334707660174761420017262020226581149663524972958783056372235175857590814814929585456514431994840346994009690116990993037495331221988821012989423867638869947923450658423781616498439963257916249473733566551423980503432152917250043774616594341714949223073271172490936739625462529048554020283361170076631123608599491328339316715114276683818123254890654800630339517686242303132253003393663199727495337854355434461155485178092602910660537499764104975727972028065452696371003039737181493668851245473355587840609407827591618618253522139337914792951182836715340552557283799704209631400165652862173713687301793927911231252203933013496347625390913775233273804889940087036146629181478688996739604911023386166386801989754164687183532149805517419324961238890174112904008273550592642414640040584727723336337035493743256612394595274397403836614395919504720270922169207960572005819828996039341094631154752049604619597616764539634194284283478163723480336017472270093359806540465111315345976609282780723944550887633185678939654580521996410676794313247886445192298820904594028626158480781505014515247884286228765190324888811430139140159839960633726157413194868601013235528191078229456834584526737440876226706544976771424420632592061493958750204378580604019453548071892489891105476990386941209876359260763301446853063647882120552385445112011894192389261841491829929756078104478078337495975423931988241778213973194475143052016982766561742077911710596036639606190583172078952572891989851432662360709146397115464092923046192921962535868330666128731815663065719374036760351555581814875464084348423576938518573211469783883803467168531287097706994354957841647909180561732437694843350447026500930073421353211489885625683924471103003798459125066557789207245497177645331657248518160149029724499383850457147897746760250422073773164125363542571970691563529092601171897751910307787960207465971286932594028720483614084015097425064385936329278763025542621660593621810248182018315534062988359488686787829545156063403854332139630918170681452454384488425634918004112045973954509691029878818908396137179425501981611386044280967802779700471420637617381020486874564790895515714856510292111159156550705350871604070058194325176534092624930083166410787666921109102845705071132211666466680215953565060936371402430583156908230529694313404666877912420025495428433869219373882970121835878712957962416110639848205598959972521321469694942490719703419867802159898678360320722678614917753205079009896905715732620624420828610072323236294364329054810096934970951036637929088914483643825308539764503314355464351780892405136248179175005600367187403657481324415803116966013753497279726147141943334469420861509329703339098515518506026499072892986306700399664591885599963565823031107111684476067125557771081853369615044662765849010297953680278172080886570881488019564086647466909963788254761943881917395856540140064114164028868333168481794403110914607177463275936782967136089417082550666114618531690952099211633890651479042318708866543582995309837450207434985082824587030391176307182091390809569119438256482689883341311242440825402542007658395235734559665866196396696094247719301410379289270156513339107347467975847848300418674887428822395116868038462855666720174992952555365408625034209757296490947334488355492174214687510822763255404597121411031902717783471607174040249109153440686348275530412294160292194482316045601252921375210556818201050371599814074863044489215623776586412902671876751606584101832365329023421715579712399950909459510055627034938854857675516442826552442490566852868604064861586087328917548571111840036195202643818009914679705287154327482845280736508883820868743032516816996871197546019950217780140150196675588326689884096383109318792557292812452812375192785043626148516136491032140863067532722497595707466843034661108813109364034359115185590319766187088650022847868934270216248133294238688997089915604800250314337843011369321465934298684671841471111816094932113458136399263452991390504493064641927151002083638116279956182931830079844902876764278615564571552870767323495237547003616096471199971800996991148262600300362989288574531315994066708295785639423186875111943718570312026906135796953106680956056348260777202294571333086870920734159732064823932328304604597756646246799995770136095487394887204853764126333981476961877420972038433027534696120023886125305380680344322653236556364353286156283965241717542764631083563274017782484989041280704771231642484955033810949567265954156943408559658114621860203185652634594744384434828157198185615339135896899611248598881778942691287170259987870391225253120743454865476013875808977520011080694136123437242029970899319044069141992841187744122710180613699574244627667705510997215342451737476129713339906299863877769425672619805480462697542055060714313516734304927798866763967235278144956645738522044133115481352322962015253743272340478710345997215085126673977099399154631371837066793523674107404710912350412376340938757991076095252703297246731576647317500554674116112468286317245802775405216874764239463341391166081728241651324692516014528252885400640310165691809148994509090615692264184122978234201141423975870189130049703496099575336132493337973926057357137845167158083470717869132750486148532016851614296455561465508112302878930125118899687256089290603714877362587230023870039582474246825356056285646374554580812203027465108463134627747966519509892640032790816656051451746822630230306523027205225646438187942736750765444179582764814040005954614178461352512458053338272396142416776052621144431751033616164597572526100007677518695559119370267233343436420331119267661805219867055909146074302652977294642659987376419425059557946369448034482325600441359914586682803911885343036445455415488736167229136083068848091245800350162806920954348072861277885375508223510508865485612581646226067540936241690207835105954486961851495416569355878995907578296957685238700015510170806892309154561007926159298342301951470004570371778170258376013510754757722518152521576903573086513129601733192424763376928835307221234861570763975781448224446859837352897388612553321208412175269900620261551161252253250176101615789600022279025938447571409976378275951948584994896600854703319872164738626463071449910917135455950491905445657669506956041301968120199438704238754114721511564197017922812844237675219598604071576446431660583451563854481474020768910162459126798870842791118097111892817082706918678976081278861671876819224663937926451386987037933521298701195581997296658569811848209195266822224415348500499427611561624150732020274230065166446821242929210262139608102158672859638178290370565956075558849394896679237208222393731669350844247438855225184442536254046438353879419350779061011549309340766420846447046854806036567421036832289143489096177216446456512948122607325478464841025020546519206585706961593507551658534811912768974881079336451564921791213099036896255506866175365003895163533731639009638437698611425213920569381495372913910002613792577036872631926327067328222657272103972888710772215634523970353090331928350340548288127562168460697768204549852511598903725630713554292901873240214137654555306556870379939307954841063044072191249704531499766957296378249152483245984495990455823370210014324072723509738955692370465346622685399389964963258330114053347092367640533327934050664648682139899670122090189067278351300457388060163057522182026731964590671351149504370413544590749140220714159662845977513007964621896031116731364908942350036975911175064844181873866540061492834754594986524463505169192485433010194539974967656080423775182571505207163102869520572645818410961124517837196083204156378651395315265962565655919607843962260625435167521706658876280315166019957695638987263288692104666960486115293489192055218897738305276348522781517573285567613804356365492393497912140954785121845757638960334126068285082744406314300176713088828279584642764646120821661820546602590047564268811357830502562783199299700313022635194917750497415822313291455665387980323876120726383193853863317932047028023731310308339237446591970223676338795190142627975751088978110181695137708194919842677704341086946323900480036357633399463041955511414656773681692187998773494281565160917283979683150850567488598114168855348175617980744668198872782465003585727600234714103864026317243118887360279281572951187496696746017980988602316050777761711122283412342437130985589574432686380303663289890988311018012022168862543488960784595363207402574265659479388067282462973322610960905740670722448436150193577416712765134842648076458109027431680236042210959092606301061392890836419741165496017407216852227927452336333790703446769538724938898999731359055503017507234227030937814529248902040291231915298524608836163199873924520928979783303005446091620247205622515830184392847030582247943036185565667540586248849716761424326806977869539140000904205061253653527978579874001098876018983526230489812651526856062442422950311339382945538086308101368889591742420066206664470219621100251344537865680074200967301280823134458651802313468342439130424867830569132703693705317941338301285848913419350399080718816334324669181357060796861956752931517885358863107840438337308161803385156758589925012844025723670286349450850282105709595439880802347325913154272374429382124252686519936609450496794310174669152292071055489732813677803980574778333402862273378061485320404285997600460724263637479267371578496775167668758815247584722392111271264398838924698061238993812471950249931488644809469931692962605106598572082960958665390073048285894291124440555635722027222713342057798575039950950461437510696455313369173324087895172858049917113592466145621471599396120047575766569938501858007781475412442196389640922594900643911174297986582412660165672121983716154550200782231051519915479291928149424818938106174870676814094496059619508465380594198414244308947122500792429792054438351460842636145236685558674423607444252125281834763442665625210962281117440806313901899847154241784087961886437062333319991713139037623401761606054402498507475435070811572539319553298847661268016871460937229408793062290147135473946856738215908729230482108381716385325632126055633641113705949623412646058369936719958414131373593457464798142028565566020669183653682294554642055490910149949557088301739574935469685162264776595529956240632491305554132214866813600297516838783072061510839869081410521222707883484267347171148959371056936511225672085933438369420253811596145898133829832552442850690725553934405139573071684993126593624169283281468395664327484825437993939787117645557077220650414882606591843621114298186924611503947745257096561750675807888803700850591173937129986256174982760849770741787213828047460021480121394173108614299490132804068855810678871339400168510053843092238321889015016464604394969999969989886217047561509991904793207629896711689410875353274727576466515840488912004890203842564033583571536671004948320974009282936652753333298147504775634060623656287588606953545117552367882371852480081238291773124020273670585180272492027133342852473774375410875712861862830131842401929039899719343334533424507055286358022774358001249361382021189400166263238097311803120234334859433501955679604083818061771274747683059069038721621524008182520817641560341821902850807434600425159447172686485313406928201284249534926503686098373386229525297889815123637240580875419259652080919497116821831143161429612284677867327376301053182138406608247151938561258489611988830500487371483171389184441178480601238860184466155834686346997650094420058201166727575158828126198674339476704945402475557652120348401252269613356510590804148302035903303137121166798202085365799916032957278668630843104542269779640407489947734147224439775813345227232393031282877939097051629960025049421063652487038822870287589836349918615210761735813747513023560256984801442813879081504337866907923863294441498518316051810357653673913119789298742373371523816559397504658917806402881973328463346863305902127648088220673967725270795620295157911597238041920956783241760361668109275327407124301584389994186437432659636877137372094086023685013185336259365938312162685038509685644136352402162882750242308903804931414263984824208934400212391540501223130447939769948405717403086335285241785787450887988932244998169575872733385966494479015733040938385769213345491699190661319316002788820232135670510082984296531452526867093101388628804370108410146366607201413346308739141718960147278139273287751827359964389736851915889893590279611008396767216456373528176205374213155387410321225363663675978747681914755798772308498855085947137778777677244255833913848545777555805026137683280546738451582357317209618447977793379197313393450210346335478673388396220945263391504468816955261256597794983888450886194427454840175518307262338616183582046643483848598408920414238917053991991437939261031367256691123385114913137698284477331438946819875337853852966545274286739804019309438054141363156681358290879095780207196614327484529524957217076095991252274747734158256364861738992763482224680478523864380645748173424905684917414574834596246672183837016955354312258795861457642003128366512129568684805261219984088118055984940562206352955473143508037217600596437009404366498251210739495624313174693761884410559576632316223912491941091100569481264811125907761954101470274086152322144320026091409439177680607382850111230881428776714876444869986301970963236217630104927593001972310133492786084357140432510022380247661562747536520395603151868778218852308203888841422386059458986534803105797915880321207489148195535121187435890065170320741242204912786134804622434787633613415124429224504658056029724357499434011681159737146408863704128617681269124579749929128286460753239752022914749521693243960290238653903428518495729102310578905112592392758368491204063280343056862444334733918696507771624818985238406457929454920904262355855534196119127003278512585470447009180954001238544038860910681545035688857564832058325870473269018504255316340151117671375178605066752154869019291122209516565243352298926649197237379790838473543684966076244122039541317146250608127821743940192411219682516718296887183650274895104772655273269674727580363142700478580225462364009216780416292385810452154189008609016172308477402523676456074405359865535906627655900210951364437166033509472280107962943777579457610016177995932200017736680309878548877658068974469933533293920469017400453143927501200389729297908297782329229722747271148831859146248213437628395128152448147919955531758090925258751554733150356526559739588878230821627640649939428320079847851778695355716890902406143917326297051678239688138900496742862517143387857265392424286649369351597859339917213261312026776590815918364885684795091244919086841647518498649906683271543812169404604110784848888952914954326768264002069691868095195475628175228725600668951349344876019224125641848886584881545181072819930232500823870079793074105393679949474787729174035634713724671333663077130543473025775705863759725454386906938056998527585049822494934678996130299426560437855209625296082999883018079340921973466985291512222262267747632034643697208931050068798113343036594340126345818321811843593868678985816370885718799365278723838017142119164090972766100792247563942029447906526381355854968364250290569068474781655437405173453015924223582160956805403595511660795506491572807443921099454479168153756880087965814885308114443833323209787432286537572154821659008350816472131613567897035600361637760428906942833919320537396214313522917673353666635255849997094286794695391840549644399260560157874566727307558359029295247082524834336354208110187030173124221529802435886662436334414490014047723767599207572127378804791742547981755994122256355653039094467075463692343452954505250270932488695281012997542236520930769506331898729846496688633639209365004569450393204238749357758518910557927820204586610447093937890817282643045204249336708888889947852318367267073473226441458657733780001055951539926724476724108185611534643771442706384653243067781316310786323919868310717006086732546123137804828659069771092068879749663517762993801265196338730339720924095414140190939058376117997331625590129863028668744195069786096416620771080655171293643236396679993725101951457236036208047760439745748402026019759380192708860726467901287141751648729854229025873996729927172193823550429609403688053090214852247062403281301570902983176455461814198704533445901834448712110195752480696428568834298748341938487116069017635670536179848694766644698288249021503319611938244837620706311682793203356936437840281188563070213216942812584201350538834308323817265094368956997668727359139994156352530683782332377150881412045219964342586010289795676371336522924117704436387138973835229716236916750933978207556728678485485440288483126015779351907320444991256661700004047271682831170390335477416690181823139198966843015696532886819935238005750448468627988651716146149585312535513484963530675152174002995445289591318785378845608251975523101195981095979088796058844902871119870689701592816585244240407297365450310481301528886242441346536104972791179074958332985912187657379301674131323227392462017502036043246749216366370760747168329278858574088750915016822727816897093194647061471722692161142246167532127437283610935375160485311426324037958397746908680160695990147569996617339144487878436631277032886745679228624197560629468638447222780441450690957874209656573204443845999175470674825214663010803534519978760458289080673148096689177582044733947904009142942817709027580239271512540912143599674790415238470015089246961469322956370717190131073616656495655326744552009285361939099066611110514404664995308044049976052675000570483054652078247830241976792588575379068203026498431306388101025782723585630774203338284944402203049110664416034226721429259023745022437356365625707624667077444181404767294550998914321582049167717958150071363896053668518072031311572231767693957383214644701969868980863739417766772645900425461655474475130698683711477932296882406688753298621751357147929571465185884734157189202677455141299037311543747162445374345335674070417151191625103497772624011380227338042802627499783470370551648308987805247076836149793079705694273212508273743639404135069032068952401857738150830072148799790621998807753622959606191268884504005972606679090492576559416626509733803542625624259709262393447569854915287873488702253265581063972819481199172436224297630145018068898489029372987407225918871556166965879392168425520316128697896038706280223417593449651658353699124862803499987298530589839284853165083010730979518928343456773281298605893756249229595799738767025442261603556282574526580125145018416082709362007212052465595633482436862635334099827201006495819639106812215771421016219404744533500702714709442116211540558507849501965655927537686272688829160756897779886640494619073483336995448979075824228920042126271265996874155631808813754739452395674552009391577780506027987146695334837620393390643005594987353937393315405539669270778820689351663887962175476382207992240691440011510717161980264693394429141897695516259276552559165950595015066990198587546248360959343411721306593711031716201154710007857423547416174427956977836896672981754053552456561168815774679373817424108634396143280434370505519969403661604665895160328187342492209096330714821595674984337317672105996417095562595255407905686563406586690812123464832246247405345284082986934585660545182913195073676676959691458650322327055789673328584347275356801364349204945145566898347062610217331922525488689797957209125263200731861610272215146099851306928738050168562374992906214971247801029353937765107458841786529206453424573680760287792124617913056866182314592518851865453913798573542095233337998685659523116288784460766382959505345299259907342964631061027761473923689673828637617065379007129166416753103201571261155742658077646061887594354674793430798496547949922217649039831147650405190913325638276693692896346425153539016984412033731999307285012157044003039801866312539837008875555903750965768564678232523754338750438593880613642651220464206486108605510252667634788215245598099349205455268437351277249868215044704965746200755507759060984961376695949371025432659038028670211512228367358799387804360935736798216212072414225485320390156543077378137617223934958908526768570984629304842308573725901661647826005497851744591644210869979192487638377088763431541069913528628659448565896931464917297335406247261096756233233403903620300330423006398136299368528721751305971202277134554887755600443237088489624258856261675921737629225025130254780834428478450474646281015067298872289021867373083343716309884039532877328198116626066323119078137799878486210750664587145370737279160056446914674329027433358394386580771739293834548792319302887447349090055307603439434614033211581182974403909465933010545982038043604981889230787653181263938091090761802503338098851305725608269155848951863064798247174258757652227737146533562752160460055294199351161927476696646035924021524387785214813779529392731579602997348841456373709616159879938827422036483911996238385789378717755703941451280844310770778970372159760447479901556755598033209021096022706728400740067953467292993983782297802103652858086734411745744989996307017694132748103650838449705959990328498245329129465746839171252960419444079898612233134151613192542655529501267662345686401221314480398279294229484186605779598440401679302269362395155890594401103033882943008803172634513063396943214511877456012471508485512175570549503865002690243302225018776388516675436333997845840099756899922120932354073217708869329129258813817423461406753197413046265477681903549841527794678233775514058125590182590522828654883450869179624973911558351487145401011225253424967038573080414813913367687748294988931609316091880798951873360328467989235669982321529729619807524531083584570627221989945501999331545974415345297439961827498729067228765128195422638027685051487806608849236875548729316096986925403267283566608076019469386725239865761336464532813167436792329379399856791134493137680797400953032608194851114856438274455707928090896808273757437648880135923932675089015737748466022377421934923542540639177418519703976214170643910443325723832922615624088376723663584117607390467093905916453488170988131064950139136012361005871424348855202197222036014421648497745238171178687488400602071919706905201156314987338080014326828474641289666234482871397294110073156786191585675318527550626704821309565566706365226375246495448583207645616508829988111315091148766867915484859054400719097926568299850871496458735899515117187803141939134066146172178138271756070168606489077934797923728365171875678539670879897158400078565094761310721130716166172230032162336929532685947750108066373084364483754272153241926835219214128994385029555863280985237190269983608550679472246653289109884367104839084206414952990574418924295628602548490441253753024709706329706624686081234701203385350678773337032404246905170686241247075297115172733829238959518134390798799973648472170772841214882392209407920231213864654417534567798201476815572948028703092183600546466287224639084908723978864047323349996351133008057080048600085092089749559374041582935384648577471374026218018912847253079516674260623163731224876327349955971273702633382689822436692349317484681396625246642754331551853264196038374688889552245977238323629494731613781348065002524488941078640758486585602124645744120658385507600690353645334947220893624304810494745607981405852948744354961505247009621023563957219362119223496610054930349650424086522888199683402011070449227214263276332317451460532984109059642106205885014052036968203994468789237975785584242149675179937282450215671971157940528624288942355918033170915943698724187222166903059039424706262929488472338304198639484844151792255345293353521716515600632137217279141920385925220330058360535739958255013437680206404029832539196745659160988715191708934741164462717915903284300428163661593292586120461725541218019559017079133407966693173488630160963759828590606570531047263211883520008754080214474470568492724077058831532843992238561396134416346184841554167369297644347325009619301929430388816024254912119381843519789611915771613127136326335980747303561686534141940627240046520879290896117372857111193923968776202391030919444523907915405005076332812561029610501821851777072094167485233600065472414908058023546291583306844703838658860536521069060292073216086448213375590585268132899217354048347070146049996072039248013537039957727316317412812757622528322487454178882030131328541967125455222250523255856220779188257336764649429582742470159607098586205967307217772548660258408856741450686150597333928024309745821061054799560179683119392927696210337212630920712015744090457758857839607028521199024888819741159073422940530395095984646788961056467130695967342265657186616090893262136698356783459268051269369845095649503012702688164643961154994920207735557358037537852479152192782736591495202142255539460521286499787561689290173438495096306522929702788122625974423657181200461201929211026912956971638962473138481424818371009525968137911824107524357642260636498346506842898856832355684741603272843376178742741579279232045149611408403624870137441356213017585592473943416492038664362199520632853605807144663690099538783772333962022899605689682709146680669156274983094810354779450154996595981762489926390445319876568009005069044584978529742796533597971637787960769675379319844556973252685758261411426685926677197687592537332827358883139701634645706208097759677769236459119968835880115435977970110002078649003550454157723216154348966468859673360799481175485990783096627303415196180942726209382890095712994966745852867897948600752315471237496874442727909535440009507674257092851533134396046851834093745129208767090205177320839314857349599061269495803479687916782896088661390832423492069162147898480222446778467546444687906968061437858841661702676041875652148177044978659981240915337281564410978402651956757517803048263037668828088334368080976045883547739448611838732665405301121390680482314739509207621752384209396468895540164950812238065874321116803493238344655272513079635463644782613074701948982657163307158830521579861818682914173970714637699357982820740130514787987621398014774477719651956464201169591135848915389626711037297628896257492307917061880504072922401004753155654797178333439084632498280731166516645794838736795418207662862364980118293226516180154746458842436920883473369539092334246580452646170259404908150427268476032508592719944895891443740744052019759553107766518852368748606999460674374857113322777016586503371849748982591789587513407063912202089784334205475969158198508626780800746812893442715241688980862355816089933153997432638976375229774105917686758308161550891402397940215557186783249967409800347212572951050196896751316417667636539636353127297032184412885757873371782644326163636747653482918932065241265736011711594568492003593506142518896084327907396790958104841675947517645172050321191904301773911787983738473620658362299918889853456280726324882205389323263554595297129419707638891766791676841992520221720125197427831990542372345801521689679294323559204849741913476595420256491537596922246914346981642667247941765797982549638807672219119493765987244028097120903966903894942458977250700574803040223861936870327506367068557351811965837645982526046335980117575817749680945680264273509687814631308436030487979264387966488977624303036994887347630993870118592727654699059500930424420392424181365907128537790885751140358084618390712908858420697416692440526174676555945330061087083473586498493572886718787595140233726266675058826184721822428955484546546317769467798130729469526530283005033897147196406916102229991644465888198226521394516794131932008181041174904333797744774731332730985933970738342133494622054516978940377379289854271283039148807096242952704755376049598746387312552386285516330639136494568039343767554743619795439771045127317364072067641261807779927743899846382264713963414413032999821592483510711115037311590208040475096326847644389245557471420163770506081564508540469549522628043988850853897718783008080915355768010823580978040659807861923028636030673872778918459525512817289826815565931151991282286567699656835928761080457462193426628142252587328554065924961507532819097277926879247818957507906274911186188738016870167684179477378361323874969731921257768976463943311391146179420288698190197518747432342747662262204056195117749200560096918236766307112252805308239163446413379823751255201944681446233890955279827243383925829870859773971670688820500532982619072765461770786970583268009160194264400022853143828568709834683347745287550222814080880665758701617720215999787837669063735227309708883182611231037506436963578525180554444216562813363444476380128274748791295805458030665749141326340290245819656132224240160886275963027846654725566324347840878340325939577410796118499388982778964880565937793824068722865453411562135300317500649273562304375187004405155375789011407933819755883503695578159347040370662198135399994265601332982666028286620297512391890972661371667094802080385927873128479240284455544116861615066960567609561125605853988434521158648683753012006229798707176210555143810196246433519354919776225395611190775054771584269205285629550987032851830724177583543916143083209217026392595162680635877839796795773906324522271068409480783246008354141009240364940619546073929180148487933930760031908487515556515005253596577861823384606982637407090165881147980935157922979811598716435062918522934326895448411216674583916446440002040406998746329489576068871128655578312082268965642253734109833299718768768198004299820047115580777302206518551446011334513158597602548660053818499780849230483087446994348583971608599844032818316425493724806238644081533827155990289707663403832128461847221403584772468868432107023365550246819562426453434354095661729671825329143361979999879804214306346010161827447818551432112882804189378031075497084916304228058877420850578256250708613222496813333108539498248987629898777379944659736747869600228804422830771326345290216623915797966116254464916006153696379959748340927547051434617996163458732370968253146639390947716108293031073811839962963770093041993814874144906511741850133785332653659385061639342743116442564834559422146200231046298843283133063670491179434873826383737852110880642944158080123384895537097627424400220027300024087699359048744071174074600892564801149976268308673903531976409668381419509010061125224655671046390382726195243575884761812855944761731057847786744600335580521178679997299351037601417079313334143243748576114098780577632427931813429117546029628688350276799576425984614400157216755735381774001861473403208040377392269572396194048196981246519727706289564533525155376356197792014366298250399106516189358584076367928863416948949963533559639434169418737183547452113218953363328010128220216283567858795874781997796714828721521929442952974658412624552123098484692000707888206241924317907119366644993645706750555378349561429613711689216956901012114747858712705584625204927372651178186057902526531532363357288451478069128352848648662726491785415242941237483043321618823191797942937244717311799217520126389155895459237038634081876152322666122944772436480154975648073714005217628807770164599791983116923164288957330605391359748130469476271601490157627456737334880185272844277251107546019744370050420990250094251535422880190546509991785181175317462568927512527044148197041642861164130927281190059823284823960147347899997721507697805104360206211676601537807704875412950875616449374357209487466554347846986305771900326353879261387150334550893953486157196198554180929455653094703029774245717498209361843497977549071115800527898279200227010811838281381652018035091348666292922216458888584823294753242284673175609539766060725175339729871247827635034490719753579345121086301080144660189245793880884099309076531547707081608604543368208960583396600291886713084758369049839936457152743595579494131404234779515578646033180166808280606647628351296396425700981205011662290452365593522990171808563191514074670976908107602995447830791654115440280103559842012536040725862561957256963887196733067677697131351004116016472173813264915877644250500738053492991024876526087118693717472523236798731219237450190015707571816005561677540631098211507098355038768216518436546373078403473153318674933566365405513346422756512901800247519048095016750365487852501645239421743864421419720916068070442157625180355764363295513625111551550144272597109951962301380787933353961786494028345289667259085008290045729007998775733158757015950365692802311745119824245563409817613530793012286744080811312821526478795153071305260092828265634520604012680406741377508353336300379120528310777183227045297816676275522227068690493910844129725578105506993610498110455186318362722433148048044982564897986315228625250344483420087079939553638945200476728191051550040918942412827132148124175900200075118680662880014131447567270740887044455473009860702783790036329661256010260528093978819339374873302199486200307987103665130709089365680534251032335102176519256055062699149036642365897859442402646096273192653858332305928152772603764349313826638353611981487104115787674385039290157904935792292936061211953107403265470192457659178001939721211635076211437183737146296855697359267278917032627939249969905055106834993892467365813835573554501716860857225006616279133353817168651503007148181447512468828435918817365217787233910011051184096958371517303105043726008473353471315949257428609621553979617432249503368783283628534622137280414163156804357117590234161783609731050978735424971309098146596404491360210086950561035242694931261603487223141112540216927776054116266939006113468229286602680422009011986776351091535183631915302530994424015364690958122669744440774689738466169608194864830433402893478132606151164356636235338981060523147169007284641220978450759650182514215164311622373355035552286992333244318004041187156769397300325769582963999612042799370745208251373794204535781519569298730330563228943617798031119587221659211855229298933625113465154438670451025886833760618676791054582238526978309075748805695346514083893198969796303155143571732602066051685892400545844891488600226554244927047964001976621244563604210613028652751369169008245893384752795530609938792279356317875998198285168456653128316681930650818256481555057064111172044692626539609178728611657732276080272391897515186112241433390071598741709000014810434499569413701234432989361830000728357196571005592179371077556775021669909323349964241909657133071075063802932860256791011661876803457602340013879668495727000081174240788848702621492266587071490618827169095447700162463293674640290144297274699609720483121972208619165555452205788311691410197374319763468297760949234575449998897992130519608964895152406751600923945015478942185126112445060914297761293146655929011344836185488119913879364778621343964387514741039069308169847253929158589221619616427338112915067041097743177490307662389390796565041483456903026428782135902722021812832085975694668075519063810268756086465808046922908683117249065168086860700441432954908381717503954039152639848328102983331805244319939587591485815308415197055708716673430325623549484050402631773025741096527207767175344964840542394722139989343068942867304472729194017010340563018371105638450894587526295929096195878498736030768696227762476429810067558598839224391867304093892451868411538534730984385949929873293365121592057903424696568798401325772151472514160361606748909892974696787300008755397540351373953113962336482273104021844175743604338138628036109610853740564468410368043273265208620008635193003081976041184552934217103132630714181756491870505552766571686988980094760882857351965613765113989507155427540917188749915693799221007576568679543605468436806819382964287632294026795885855800501540496208146461780028316726579628163824010498270617775742725444373078918444412844830099738237634722068419685372437593773480993030080114883797544831377662012831155367256167095541157910983376490457114130080984066556222484962258354867811473945670246154945417854955295888742491284126827355164370623988542931890598040620596787560863827356453852558249322876478484534200307420169342007976546209410507249213129242087263775801939945846364393893982860181574381781825629783393018483452050675085217900408713509426231717031055127394208646950714255446274385183647196759270585606810289439502821283694686631692612117316588925203728421653437044706895694348925734639048114262038144842470712155000810490671634236346561714370574360834073976233830642549218129753765223946524840856435268428190363012137983695293094681969954676479869117648269917272464092923570173501281526391554395375238243243101750350092379808232476861694116444492693560140077991173089287622428037951286999146908996447884923675377894409743523746993985284311037204496178708829749890363390406345106365274218836740690068032756021431059439552149428775669073250727069313066740092173171365946731986134859122903058502409849095680425752736344317382679389500629303222141536147043712585221054471654720991875025085334470587019365072913760058946238273327519018557300787511319343801030308022902177104454093930634561557283121127928502049097595794049326344052012468803199842202447278369028122028965556132571087836310547669047145360193549460570042891699973701595072192525218660061597967045429169436706502950656503459319637401821866654476592964827486462751229372164842635982312544884020112947262377540441619867196994355050236086099991437325848617409926335950218625906325861224382561236909927564585280408026774047611847937278268768661384830612561521866275919706865551836754868193294747729966829474211553669432390325344351880265163673520563542938139218423693677324372214371530409434855437845950601393514676627880071785108225155038342863033065488438933238390532935295327580066076328759341740539852395575777050713232027915169408998886727599359153086836788497337625128800107464897726385678323896904975610774985949103164876781464085427598708534854998192524945515273845703807541466774730686048677733241495175716677801904248644084620163108065844136968445166286107018104004177163431940604431137388804162098137940825811130952287988292472762104137972373157635540203343926826116348090965924552625820579167766924051929127165079608774135150331569405883880646107354262957123946538386962727731950426173803479308904529177481574628285894833106940100988260187654020645229030885582904767359453405814716940316527464737161727999486377612501660349151719847606990152888366818918576569442861629174507269803183963978770178772272674297547826095922479602568802255719443283809825851604854203732569887756792752838645585135238588676199505773265555360824400122912398034601574515722464909682340180242599930908131126412403503454873727688227478180120766712497850783461133503430922546897247164607914667158774332112988865747623655611511392499533624212746444844352261259121273497123207178286259743873951001091776745712704183857920356909472811383723158659706295380443308628001338012801718787828955810198038922800110550442256897765636862801895016273103058655321366219628733894140842413215916459888491760773534217956779898980585063912652266298748116071557253628583342980991223063213616568403051602694233456935410870483139760263604184845423127204333745258531854297827922609992743294794700234807365688505846605416356500373863029290200045331139394264163326239276340179163060592577844807217085667015650299338705160309526661599993095235130603709298067900133680915670827876695269564365419064167436262390003605566880003244405609833103359025270896999143099518996537551921132337313009937002404105694503628728524936723630323052026921616045554566583748681444493489245532372571213513762372293604654677821563136146275210273528596052922965600892326101267713055156162399462640433194482240370376936385190570469228002078463131238879961132461827332164038399626347658512737608776131922708794450628692127025616306485152589573123005464299077255553603317136320613427865946350828903320871836727330781342555233354583518043678821251680839312272539966534679376218927863148336912584316694126614916094837773442241683734079386101101081270266506618960752473874275621373404040544843412397329167970720223967676924567498935346598410592576823042658373096676370483908399398385269351807611042447989536040044136896242154329976867427522038442354881743766127702214465714115661570233042559464166723553893865761005459733855512903304418154865859032117504927174300043678609727683519642845250304225181987488297332734744574904677633798783865941573959716339626636631108460494863582943367536013914312863463670788715997203233730775646694917635143396152001259741355724071602094812629008286633131851783559605860919878206318256231984228786455358038972376075062325975738342375173754628766176772663528737501725349078683434867626106826082131299467296919329987235289867610677327082354262616834426176715763443826222830699922700284203886351345319868128516131748376399943160395301274690804518453457281496375004297891490582647686710930658901127056082702117096930572818225069574756789765225031324992683463323227478069858102307256746113495913875579422929033287349157916502715532481916759569378210486791967393995142514028109519596865132560879665633290986735974347851865013440488816756553926739252342457683158631290697968691252930658084289870850109471637593854225360337449871344574861975971608342668714869402624082142384298540787828119787155737035731472988989919926885781280708352586626045724336745763805846410619291814125080127745713668515565442406754726293328766848264336835424869672292330100951885322653241275939854075536209471340733565343218490566556199449301200843360830930785008814445290649274391060961950047821711674672641226798068614431423979272429843131190394336352116874584098090095682877235015428186674947917130509662496865826217214013101555345034572018354719273145849623768288578193811896555986466974420787970919734140867429822037259024691204109968926952806090416354289850575624139881593190557780812456716665894700412648887392596304241717455605815049602389232545031958601264310265387576449871441652415108962320725551461437152750513741095770206674160478437679988943122143937039791689297915075388329716377928198071467987263709477335649232081047243744849095091937381037634690472826249246001500822647105704959973337563049645859196961576738321070638615706362217469851264639333562246512751172590875086007485368680606435919308911582677537471339258402320551364638566396179786242468838750800152557751731029346122113295047135429420940254550486736942371858476147549009529691171828713135107202511932717143145463084955663695130330037402586777983300025613860501084511084727765918020448595010448084399257954944392834997909149590269491080801186140602784837239957021425302513964211061173325279883973253063540342193121211047167987803463979154606408539422707096117727681397664716087731607185309430143359197465832747990494908272690253858765632088594040202055288345364828429127394154392664789630062632646500289944539711230929742941438546127510005362759899796020703640123652683811744270927567282841485210639707949691421478142410220392673393744715963495880058080979329811071350872658640505675963668477490259255388219825591363505404055679748096268667454114628159111366261011769433194573117760665995903516365980866758135296728935659799366094981434498190603424584247862498776716421774395900973652366060762119441231864079520136291999300307128761552047092186485630900064232229025694152964227375183294051069254735789245707977353360597138630708361329415132743940654496601238982119685908232627252769366788031263996100821788664922566570796395894251637589421190888946148537297496746711335495473584619288616391463677899556166044780250130129831986295644536209406140965454301454940159739455164196509510430946214460225646185369650217466839700623412818853095349886465847435641575450926609081432390714374053884994372384078364662924671097406723229036977589656159707241761229702018569924712177951336101861187266592661716263740496201352824060187143627990327446476176663077538068442961836623434315741041956965333229462415393920354342935608304715235407550684440369111429060263120402200466814235428463951601226617858462875699582736718943252553649259207886494849892240887183331257295755007850667725176257365060904930340504447315519844131785883352706650333855170250070303009031446973287365731101578117521024486157888521506670987491279865467268138548078072389427936134631282712257742206599744074817627437053431444101800387605658476572078476331701324457787010207188213517192881650016722886124106157965240278888755350796701129093092099229421543024377745595200654549623222000430105966619174439820926180726194249071999712142240421167962326797767210694296264578731546362163804852042173947723848859136402009162759368633809387883565760652651179863402936952375293840683808635943562678318237583538589256139885359750426264107917063094698130745762442030561161294198887219638248611249422570495050000846836694896507035939338578527839085382254575512030217042110614024820742687476940567269725869671130095657084627791021191994639736823336539929200825488736746881128520790167160152790428518435437951701230328373498161977513193297714327974544100964703216538856988289768418531517638036363870564057614203243642766216586311960939339803468866806529090148525172063875956802914791239865346546614157114279000231519502736711373062867111252517900681780952889662963194407582805155309745622392482141403211091894347480504454068737670671890230609009819813889783575583803254541548692429130607541661613202106313930604402787143029426609096047333282250534985116108715826256307270930140284198818238698095085755734950992762888822873670563668893114231273826596555053166099488847195086656572780000717925496708800085654158934284198334711808428460350663041557630411232129695878506793961641318945878827879014870482082200533648894440817071060799540505457677417865260145320300949086929390356307252799006001649041574286803326509768523066369686281964831168815684768325325437908220644564686195842237287748906538386655295709753669023544023276223714540125810449124371252837725374533604980233865233663145504166356892766847065973702806261650844036352125890430919080910989767421260590778592797004850864564476700473108281100330334343012657365943036649559867409562330227253272247496623775023165650846324017448723758688642823939052134686723767702103493129565655943589551671556272906685732600431508736429324063444373430080240152311374514067136222397088626266711483473022955542644467013451965541059294101847643542888665449535458147193270021224951209045938069388945534469120848202727711971400820022561591408147706348562005584618905194989861246582487538790615599870107600364378239995502310076778465810622773567656182547519706910289934016948316074316341580076887522566957283787387171608553121238113537645949073673838761951290648214493906124150246495240819009336329492029289734967597406145511628125510203222241058069750663979987235748579605058882624459258150813155101470013391216749621628463068079931118206621596944986400938927673883278818130307943068596278153284307859310255294978061062799046343249981321994813601270159514315557827309479340895664872237306049463885169146952247155607716914246774353146148816970554155487664607415189851011454787113269699869788353933677344248259014461339603407268549456078163286440869559773058415849638104224306761578840146766057377252989491651010549487258728174701437947310443092379868015720509669850138869299972860803133699614145378162969299197680351130790844309008428143852735336674519209236033656646648667358485209461759177394631490227337734634383569827109750930168103519038612576470985451141490543932229764840778976497652221252444023747480487409759154022088403924354433797573513975378938093112424399691360696309896441416115068900247799317314287606608004963938938010312915535807964784162844810350649620720401568049234588622051954247339840340853965722302802045946988505662636971277008981909535132952519243874164652388554753814561507338155022509638302366481369475356820607212681359630182057288462200650595333122845638325938775658520082972337668304592031964186403551616770848839363440116479897379353226977501249545270817568456040965618355834242570413349992207042226182980002824498356149365178663982947695281032132927652120471589533660676187725495021711759791769971723713276178897447596931601800834687447797349766686863915878885288702113448216960690573325935176464522741834730698280352824747628429803351842907830795520304258058150263976951315823029189949395227702112738942477126672473367907721316066722533710318434808781463879047375050370190150805246163687599872151173436133747233511323735479396769467217487378017973094742274864239666289631207266933039012461025458818350879667467610225054789467944988537694412669254690656142429966964062863981816694651483928567031168064936090985048739655812046969839614564190598958757490285260500521500356411931335308103101721283819887728961342450220880003171429795001169411918502601358226225547318902332600663584554684924881195827103125151690078599759154370262236887415360642037036330165620399509254949795251014875818814848107042312428483100484737473782179954968411586410912178486296665757208010749999364043638868770107052128973960125199516593007919271076244167138808114667355343177815209247856481678111890382717111835436765734652234183006975625735570130734694384296798038044076672409039508929113947887763199485352343990530791790298116062247134388335520566168137619446094295979572803333167857389781648941203714957004326702918449861829389619333028740024671780950226394302727971850557417167170606590396594919464372789198143428671063768197503977193467640767604128254436918120435715240907308318166735042784055252725804041662974581320232006007617478560329426080580053960874688556296094063884473800957433102635610990580138881110143841775478679658691918345468562731328006604382944122813377596476594655722845259143078970693157044160433374765653561839063312325552935643063879104809480193304898264201185160304014173658337143943749294936469693784921818544036873185535232660425977959330210161891982008233045354520376965697346036969472551657467266352452641087941160630890510536600714738484404734969762378568353882395718478678389650696913642169742587165815813352061411808439060900636264522394803481744500585897666184782037558191922302250642390671960584935786130820360232935812654820308460506417114958632103913748578000394160162405964051518652532253366569041306081142437432604325241421141662265185364375086025653627994907776312732866505801360488701439133339712397059125202618864120451368424986284181634171698495608259526958662277766794025828535858562024732823110442206375361080059623506846532393963859728744925579914629712781917543503683377579621037733236823273402501909076191152712590823950232023596015335628416186195575029051754890077420987932097361319634871059658310552914165176595143330594540603811730782279843927416332494943264646095010190162594534711796407238544731399591159742134784567329598060080619246783611846255962871709726675194169468985423292871978275691448909814439253494529238785270124306826587828869532125412701854423354593647322595508365289646016373986122657242341108594604475290283234904206272021282929898551967963322243067207802374838197654648569300334711071367319432663798530932322429471229952392995682535946045736768102144702397097834651207090753564366980501532389294524084693803508972819595203665468701047896854223599325060031126768983913582725395237192121082740762118096517860105757445896644766451335135619087508357438956112762166676942353917668682163806026583395111016047398331215963215657792761634446426131933897230124452119741253372533775271726568311680306246213901717361216909921516482995901297868069308501143928629289663737231987547449278739957005847295305039503286055280682963518664398297825145110812964093587513101485834704955381473601745241489835906793357457996836791579552690888419301566179200654376893593338939247054745434709944317045752675736629254930406694070784688519940583438847551132132126387726152783807146905659808606075493380141904389039335489795300975316695160941516576776311953546886637947328518388212483373094300343753290120174092101691197387385406584616741607315270772127582842458749393917705266745485843855553473767914326200272688862350767016959806781943790158711941944904217774455447483897478182702426901553547887101136106511312674161401254121766287411760665787992271906118630679250858295019963869094235924396092484509133578272071998541972142435768088068423575520051823434383367781382023339756897032544286242075935861180348366403957958988178264897676428942982479030057791417244576251567521908710341322803669673487285870605206975568852516917821290966690206632771851352186015653353876214721000326920213108491177169844101027996190796839597366607751644933134611708241579424165397366665989671530275736142482806371175584599124031117580066457437020405465997259833388769727038215834521533483655147792039916923122766403704863198617384760189678760844940641619419586669229093140208596418974325457718303395739200925493151771525546417558841632600436700410026084003299617100853059958407399421115531983400268684008926261641136704066324751731355457563717648095213239151570229368753952381203835903943424770009717161370160073483595434514331841248108135724503253448416626095503787331587988324836500563975446497379690283042351344130504556105214573869369153112911127885706482779438228629755376539518148010843401782344027438321326441643496534630524497538800508282331765365309122857856389234934104644242606100720926542327631749654648549258253683375134561420904709140520033820023182614943442911779504791253851360943282543285735564203027769621065090184633955174689335580314785265023887155460342306728593778949998219421129812414930815960419272695203588811995639204872439990824083477005796876653401252955384453313954594364369938021806134775159545193155046187404832821911182185557442207232265898695212915774157879841940300058217645916436991449616155945381444669048925008163741465869329788685757156357209297389578955563924210380868381660263561800432011249428097839301224333380986143328351955608937609130067584839067622680660229388264675929868180784249013222393830767691489057735162593729203949202493083864931610664439028429238471749781017349138474441181030232428177006858172429396247418605753174348169825220625671247276273557018055060200046200772047062083015811583339744696087731994260134075376703716960604792068758056908275002828317852381882858786259147651519956763020279007530030042954785041303397423918931391739917766718929601648979018109127337134392751595353996951230196801687050606093629630251689700209924203587973181470844685794201891175291387738728016049403765475987332500586953049684709945557966553851819551008575675877992012978299498584772705562580716764263907941020660296279032517625067370657993526607242265086776337596977252777562503099850125144890278992582941018665696762171594957545356408592181716174715710425068480327406578406317946905971622311675718556213741145692961845069479876954321050501443301378387664054760802881571838703699762222476472431714917224053096356846206439681905961091301351005275461078580976516190888542083600609476994639585068654130624668303954645285327639999802376745781289832184919378960312430307584216155572417191268868034645593191179151463895965866404333903372912293582593256175406518206325361702442342257170930316075419618463252511081394771449724736697802271332906888269830397007038176766522801322610938685459008232668098078785889423398090357942289771290463429257952172871407339023701471837595440772238925948254990832023931301725993327648266773804858858834835161592783883467564392923429022451429370858202948398742283047435048695849910197939372697462003117558052112999718932665175881774727592570129304618582419062254728160914858743859551449888760721063554738494517498110234450228769167313037771302165055534105828777565737745545705772283236658948562085314011391592098318603420228552099017978322768733646322943921316924244781227082864763752867214810493549078909731533286908465710183310791126598882072802343002014657823890261921500149426479579368289296367640976454244133993508051159298557678307671027875613139450108446782066895063733491177136056203247149873192162614194918924848147283093329816046723379781607649774606939259261070560964716808007513602029536158092947703228966859099759918748515780763616504490667157821899806262105665747795228047538732707163887752206288762438122145521401659844553328168094850233585141929041164219601685356414345311847993192857110231289396384781619550854741738005803767877750345241839139130462650733109797012171963072906359866544965327666824664508866000890345987292484869703302873223254425164286306718595705040960014771282618444827751344725787122094185357053894091773252982589900308828686105804146210799674190558208710090941663758634722173624475891954621933904788372523374390804739360979593370966668733132200627509808608582115553715918006041677913056253121227291354560902358201681266268775268450339618461944407834888532752730840477523978518126148039823666975040656310158616627253870054031244049428348356103338766526350733328449840771889036667514109844498753659294677551281793986469026218989472838050187031650716411729611009245830948062595364270897308560119558699176130926279956101003286317906050811670362983735440351214422595813032412036544509572256067684777513705004873936413939311444301642500697067634192612343578131158853387157992536373204854677967480065688685859461113146327946906381369733122746864169269451128951520300185343982444754051862119120248189757929454431716731406419113690850166820457793487818751434161246633669510755719876811765179716066690369681211465443374169893190208968336526532509594742707500659083603829624519121782059864553591740303048896233780231014717876858149677662191403711959277531507169923899154437592773840018484814787234288348682097033789562899460932615710310620105957142315471996591385777404581728661887479533233717757052189547468758363947956089836919929351816819005997213235348779709143184323774790890077388804446932737967233978615882082809943575641645585228397517887803793963185831879466692491545738612201985530168188789090276965289853109673198723992706503787104738482409243255938616745481937942449963533307322692665369844803721420688530177658573604026036989765051567361540085395676164252837038825449536369456120839457828021308464597280715784257564544594917607020234839328304587463660218993860578112997191497885453149915493924694847002334559558666795344634262525606475690177468878969489093039085711373743544768444439942829768850113639816034791311319568598369336208572513542574032293050687262904928560043975494005622858119949680732149786440513769978318693850328706213022522244342264675079233389244220086281605582044565650383949660861734222190281103609066996636453267970774566647295479154111930743143231291596584688034312979618851680536714310442059123912662035008891596118362506730007247568217876930085246986370093904354153532586057829233936870189959511121515779594910021900938064683339157544657006558196324784743958554271232044900111085420312618445534418310061874740938485998972127752060459224455462170559464196156730402802335448435023079715141752219946367251805892839228061181197766280570066546348953512194844106930283840615070777490794159648232032399655346421821933453200497190035316363807877298411862161003785699602374910047466100916392249293521683206469002632263697271808624392917077774547134587016966155607679296507588768957038071066361757793396480908729898718909421044710571827527891419736975960702947800474857129442378140829417179136188551188895027696577926678999633832081384454779574894496291387133997467036174994214248342652652295216722365096520580479454496099356959654118392481275096044263496116559121365242007708459374437558426242927280638164713978069120698143975884533544636809718806121896435260414287797792343687705917096666756865946038251022166359839304023078480071219015466805824497869089286311569030922497668673034426703642880297191310907348677135993641408457895054902203639967303159672679010331101148375099370508106009575036597614042088147249333308223754993855705852703485206622877154371793107771537159086257538162736163489273921689291476239479211301656156118724498053120371093128259321963276741556935279589098950124649365939511140922052176900493176628549451860490542307726218339514688244016556287104605045945663340199663355667341748400250113906435544153441678013755181906822927029463818912452747748268620291315169158935527169537875334021401603540571527867691070731542897745838405208938033912037259819414030827333521890891790852728663615979527758170260674648965375996499611646969055050031789566376346667056516433380878356980506187124051858905388425132010721218873533738633200345092333424518550430036947312444926843540303543651215033633975206523635594049912507242913980344187317856007153340786241281787393484480587143117443333864574341909546906858843696837504542203178683239121598590558771790800086513415779492720505417049933615983298993883758749463708602239164980355861553788830563516219417264974780753820471037809973421360926323929379484441740728648816660588051028323768019776651080285518059188508709104193915995867790673337409036047300813384864325287169109820203949809751596013547689720814550581281044980987989372287449452833116682350572973065970977511199596161282550813495257738904453282695133759210531995429495096149939319932720725022812760411158167383321878006377709583017516001819448451104640586048657046248646067681462524440941790217349358558892828363475324865651269840195629683539570210091677416931253022681434756661162496553796822441852724329914586655263269079512739125141978211696175276551069644442123524595670187836939265129345030005521095935725326193861128580715408056125222008419177200367570201484978330341741277555891070788478789382633262799365701413502480400179494791885739453973232269690534280343409487766955443550318647498507817054396048080319058225583457728477082990678814860373901172146739401784424360784337531443595906477687807669263733754332221423662267491997208170350411742485760950035483271085743768840876898701645574008138652734208491455296674218897714487515779476140954474160739158836439621437155865389672519575070820553852410212878037167610286423501112199312639404862678249225762416810720723942908999958593104788790936867807755009252898631791189280327766717806030612341439763596047023379814115997231469117584549306989748512450219141831285652401269171845242803250675853709480474189233261731192471113230002674123332093698596346846880133684463840527572538731282093999101624086744643521180940045277969550959079853786875278048252468755641834907828127720042398727246611423340020344841222356536286018285509414520207268583787459796499234455351668526249156473876527006518509926978196834248211256053342473439149329511062913106437790767485833339836028713741073349825394209176124170146189443740684738134544553500344988668845695725020677460178656838244114072666483485576753906522151453326761690828780429561095881828069475307885845439553033458223655652484072981970823418157193319111616309867640814616243930159020408751511171290007820583060123820160422362328877213141138504949346168895478521147190252100915875145183060436445188728553232796484386101181311000070314717470400570475056124174054189200058885382531542964495921780618642073982011617236968611041546710552510358058058567850459614588409345310704226609573254920900325189595755014081580828406763608507352703009445421740788241792275792518690391409897673354164081144212755355199810113017133977419882594084505108001560070845018605000100425544121905523892800973386435972283179941067179843685878861106719005059760154039490622767504755522481791947736336824357717236793341783886878167980160462991299945350537746552272340502076337194226687731490741684873291673213589564596919037151347325537961068078444338839391275559265079445485785255674898054637132387428213374274680088174370021933924355332694408319604804622834000721164400737213836118287784902208665429438375027554514519138813285675792039150186916825396257508281227160784838265697634884627575521324203511782282089846828484935804107472551117603418349378706736074203645256205716928422933403387342622998481641580484887990816507641541186958750491588939948249075251546234815862076913360541943852959451231522557254907232654454642077884711765931975558006223867825675141965048402229069111446733750365894532617430368600179376966052839604690979127005362689090008366539566041412557072249057787849046841266185705813779854211741461624326405615630050238168909350131468802842268862341180091224108137397613868777340228662457347238039514227373853158595853519259306474625225592705805344660715104969062151768441259809860908923146253854977269208688225955906989387939022309726149457404517606170398797088526063447861273168762269054182348441490728494354088464536813400961921074636863323657829576235760879017373543670416665994586231974901754331444154489176544097627885804435138647471661589267188310329488303757621945887066494086169180059579052076596598043127746822548194571911314756524505557912809786479399740656674687937430587239166206516145898531984260546179815708821378750951316935978571437609597528781229451612823973478946971001603270409542394209857653376970746154450970129549744103253694115079091205781761039406857517832192963758334061687467595180034837979554334529350505493260852936951753793763862353970598109980923415873943480441317139924427016381190081925427047605227547218176567240326754622347233333654778012348821558773221631946109077852053439018189888164235442761713823050863442885898915275522677233446084796214370141253001976285317321369316202871126304351849972875715708801151861185720556503559548809070437876016282445167284682706963467810388236982425892947358882068250960194024461632937721288401024983760111254288483919715291284166382044130973167034136263288580629386739805272261510090707339994586720061964083308136320853305566092447931234042256628521672716957196690980978351486371460903502378826544849594619441167478487330378688783221661338270244681320752896591170264633002412633940408946016278861495963540929464970627003894756821771346433365718664210654911638695865619043141973386905662616008901326614085896847338436983526634672580763470363947136588132664308991647337001741182111143013828337755182160267776207812107927357681569805775779838276947893373920782493560594119879234303237576367625198156531860630121768992422461936922283350976541035543463584244928222739931562878914840947742046572959513050391897023367896426532113228922862527066282215920145297609941390249732304979319033862154366254121322958031480439104710201817242944099940046916012274742000392832139362712987391912261053890851929623186821688662676692008097120920874461059722909501996896609185405777337450669681436300523512823727516235068478493489805746054345218995759434608890919877907936475045112272921891724183702243705710619363763806886603339839457295874186189974197091725759205381150596831014334875357011516277919469482399325128226761029678665800215728040939400149309790243325974446418457563905980533211433954302315940854681833149735552086666190398483399028477995375862673820989268895618234810515662243449472503065578188462396983404937546568275460849581649974490519921707510760758567364984386199662079911973433706399588066006165968172282271699802232767559551028169431171548439475387926772705007756255530038248016568962635162824650333757709948536756300640290065905129450376023493991585084713643224088024092880266651882135815255319233348385320032570475811619588796939499716341621311084127112424997733832706389194096163762267716235495320856761117027303457529145745539167870542343328016498737372069337116323263460238409126156198293264751556670601156988455706208169761154984588315137539971396726590173517342769905545197361214278895785879022053037473666013025901097153685247739943946962620047210394719165247638284109873629871245254428443919221320425084401250481026336139065965707687626240211253797343670241520688957196927074521894626275665423788901050721276255490002772024951776697968579049230508511059013587710756260408885695527383324279768880085125109452578885886485174877552833726318020281077990446122734197897571177752106261095243255302681931398367604073530673101402195701333932545643022904799520047856798811882977697543962655426074429901313058470642485430922973219318958306731908421396778508392311577282183221246718587519378219209657835628477752863290829623385143000768135969878349058784169941736541891980923147783366747750614559116801629208737039378220177032582435884503343368017029428906525400313961589632818478968654562132613162378040488356646158447457466408754048429369558788991327609895797673674414833194140205889848297898091545156736360411353926784294997000068164091086104289518949348512880182237591553607234575003124741609741704950211754137302567660757818901030551960002274416050215173485931684649938964385947298999264848440384953613203312374311450946518426165889615258071132462017392358953176857111459552147644543232805385252472580675370121737828423456920837395221291750007694653967312701980837867616114594385338998953860982995601674090285619099258742787048854038157464250262859599935747482423242769233223139402628877279660540435656640286565886174532253601803708086675964597801162767707403310836121017514161427922770027871166753547423154222747394387095898910963493797621815868775167998220968038680012227049069440046357674910387543124340530948058516473537424434443958549536827534279948328780481440569126154310510555343889276798199605845691738612359088343317646625607788451907997799545904914991150389500655839058886931000411087940774211698023933953312335225513039197738517536195226715535645839612923964408004650502406038207249631609102519139124555920976913048644749114409187896769267459122239914204715711191840863126944877294088576008293445163787982559157326865312800702990123679178299003242564883953983224494679962163415650551065409681036168892180640370092634735584975951522111886389329462226910809828058941744696522369134927317691694627448559078410984337721539946256801623877971664974011727562567603965986419481087816107504157160294882602910618346051630243532236726063376838936881039967607205619685589794936850919691744201076871672834047011415307041475535447688048524053483337082758854725593510280569151531636779964834406533652389847174521561842430367072275435129472629042692357971762313574855797992144591734070264687338747266822223621539333672104072490362730016097137176435797251728264279895862641944286513933486401023529555334923044266479867292238503537796309581758422060802016475995137508575868997890967980610406691587063950177684192868166748885714386840288817474917235489158632781943579797784575498114417962707038499699884150277950934586031197398053864836833405953172129777950846946517591604457076697472018269035004187344856466021891627292400503417149005335422612167677142879669088363182429851584237519413051059305659678240164129486603776082890239587877389949538221184549934865231058560417749548198770654853109935672756297735616457851143426492654280577326090492583844673391694480305365685996409177911516219967804337540372863220123056526617073153179169063075114118047757227341527241621252088625970209822303891818021451715090529491083103430265141847311785380120644333113164280474146159452888008741604795087304342168774924035671052557889182931593854886713518797325780534883888775247858877208563548351515754654342123342307678124851435195424230184850721855955080638654487147177756787081807894954477851629169829384231497017825545936066949791169604548383987447575696664586381001689811673124326301046744726233348024480740660760885094737905206203220649427817317528601272627666560727269835523914663998528427016114694989334248816836699692502792319093682943191743213673806998522380478448616543660076475708491808032105406094841219685801714170343523885461262168896142102044449651721509772437890522351230742135386013287763864168691016710379326502016732497046591631829406398174691312974890899399571982192983258367693669915889663386227507190941304230482198721685703993774685781821892042091497883688962484609629887858881022738018916041753738296911168859971902716182847131300412382449141920179725949114314409674971523015053586362357773249947606186810485439156373004716471140239685222310277980010916174631023894345253317424016639553549243398372781133505073413821605084319388256150498311259640580166066185908854887007081955433141406302515767784129378743712899217847981419336661707553547295758622488466417270702307438514007873426382084429074944484755860070364939446733785325314233562464783180668982896083836316434739767047611901145939807288579127766332244086591529664340687239724258148663602193642445879521243505825705992770453010201155247739542187706750892768920836584244535213333430046249062339979885544989072893248843017587584668983449586657736848635894274279342477281659163903493727062272629373728372812330323861143908686015467628713732058287496857842441958767352523341687043360176281916965870777874841633065552080670232215259645794753034101146731835807677797493969800271680252962186760862648081245578990110616110945890556235371498555124601619678404066719355155736340237748509853366021626406397239593554673416316522423319875262189310177884259066166507572790819654389307114155057826359996916656535540672139045037354979818493790272336928178451353133946718921028895529533964021604920272237133875613011217027033859534198984535211689555488252500185008937696507388776550341535363324590831399533045203311983322377624391276477198464433612000721366010674951411945616828220838974883053349393636911584187800625937616623785813905357578001593353458139884032563526880455993281839528433986193575406570708131535297478597320673838244281215806777692119135894723160922788265700316410121376735933393436022238351787435973232915825773684342953480291518844740675171448736612472494071639827518495177001467377951573733521545620238780734922779285016657146086505391777596234836893895049224042120946692504068380954053208996840631885979081565426882180306971528769972487659255375247980886221579619250107867078996671666064847046342647728095524098633484529256913853116308171993050148491682408574713848439092927331759537948888598117612845878721038068162976595250380006999164025413659673194492910531123463648457132083048434224682393888510618857745578653625886628902404763380009701428583343273991562093802203228368419906395608242807616567651805240919951028126396437090446042373667683335258438184762790428659317712559082397526511131008154056881741861328655536074570775629036704406917455912812545628613214616263296549292679271672838954969431795626035522922560554479710078265979829002522414416418885318633330884131840681587041274452583712388971514416803778607607463261708206137857152059479598613887835631395808480288370373881107356528562986131546482514153685979057523055799844694750504618141947311345213349041584580140762699443440940808264226536535224968350601955483283344291504103326548366326455465679910291047840868509507690536993772599748761098534288990678124733162687871148553612606086121465042736109659396460824772951945150852673869872496521169230948819296963266823152269031816834162042102813291170452672277452664860176450227948820522977525441744345767968296518887381791677599897789530671216757167346890250862228419534580925509120964789871155503064944140552871522734626217970008277678783896972536208609206598591799393548740474508588249061142050982885539333426249427272968856589011357882819864140874750564731345126999998137070807829869757181912962512990875698810749576974534853146452742852923446740228674148268916841659620482400022462795986384871752275595520325311429970664338522363476484823115994236560544786519984695122334269539849342355722453341458523231533441685352863992613388871821010004765666374989690049980542468129805400850193508474692426609526451335217596599347222193187719169516161665631654748955883880000875661224080412333096205299109325734281480323798675466686606053449100646470464197288158580195973853477769259940960024554966849169056327284835927611815741955185152951064154928267359978526388490446786215380857088908632355038550795130797307148568995355932565014346914699646496012270941742488986118984238083781836582981317135512275334917977956977065042991661738346162325760922028912896017724382589961378676387117057861686468226267703880332161499050838896360095260039823134156550835643292060178195702945408062733344064645833087451172806563833697645773937128125033516959157655048268901697595141386712935677766775211715600567488241067512440905222126172497903136289944605022091662111079446988400155884882011491300973383286211527291449645575862278633378118184233076085330524208963402617449941362512035788377596498736263843886775857505236678924444041405157947191005542016900922950693263634289603763584024583882900517713709323839671862079000252408642594969411815693280118646831541004423848544389569959753954832711475583495431447571046863241939504368167706169183342721118390233585281879272904140252375230675512641031627393555773281701284464224570474124566888159958911023704089056798557706574438208393397655272236557588171837491697639919459563566242571333733435142579178721428065633020484627414737625769905393910621938534109237131056421890016506516171481071066699441889410910253678530780453752419932096016994211474629737066350829381580217406671152275793220648582952973369392094214878219979676527975568973846465734510362965027754313987839360683328403224199477806967182696544030612754093039036925317574878897455695505446417820481956821242781315883583128679670728849248490282900313326051089366510487553046089820280871180665798260210408059365497056363923316850292180088406321140006509952454157403136083470651460347996046459934673232803323277847828173891942750758567366077623533563820217081237706436731943457877965009086106731811548590846193367691683565201157264019881221684587827258683225833052778304095146543516174904293098323795899322236566536451480563789500622199583033003666370450189767362322333936636431656777875053080789118751754458205613866555964825769887526152813604385075699275532684485199507147389460962260778338932109243809677435292478051250685326041131828623493955457169277329777666956633108985753406983031840142179582134814440096554884287612504959123995050448888228922737752119788983433201607261897467509981664764780344971367041337091557586113629330103592359525838992608207942478055338574900895362441760610524563991431347882453526695511234074289526038830208048159476584051873874521761457105290124663660233720301771754903709599095568119615292363301179492688249194400137638628085744511931289730462282944076206779109965016290849195564068375624476583851407785280864615525807829651021417853968796146538896633792063385820746084633715895149814471183051427930764884453867526507164321691509226253510697230773776166768357409386193972422712729076365386779600317067687513017958907543013754165405069757000333304496274833696153541941522131275329183946531360126954710811908527219171865719380890693318672826117101212063060913350017008381088613736101175568304905725311836841683708143517013671402922904930690519181803580406473978373233489654529167068210072546608385247837212390776142524836530502351017733754093594039040870949372197077078334226951315416862908691941337227082988531348443730439511058614424447825523688493481897282646126140246614511285853056161771861492568421147663506975937635060434921588071606023830567451004584596072301155273090307421763021046901644933902468602415967577352963218252390571393572881710156391106678354492758075866301261545108945954198650180340248451065698826870540136344359750977308374392669726875753026725994423003802539029789064744664492809204482682616165437283266750818285775760132217977729553232070464860817417321983907775839957544125695774034072074824053879410529942354878289973114720504444619573519821972642515861781382947925191532698290113544967871642291576895160774639406037437325777630276814810405684788426957187294903398520946735669404585947322898168607797396351965890339104961479183905018436687012394909057693851751101310554957906477197446701249662188101366004814342609654512708518329030599282778166443635636805439863174791145639755262132612555949724681234440393517386314739317894219604295537651850575500584762076500555571034492645374541610521851347452729936909057840787888493692596356427307727931797398030226586467025788005100470327950267615524950673806405583884898117461978876072655377306448477835238979356643993952983525530653327404938674498835711725573407813999770480877396465538149920622582350600705021582798039062520302023203850161348269945252992980041857378889514400714428542457861467703769735962640266292409914443041400679594546323270468473592552322344690509823026644352553937461056869007662637696564199568124883345042693983400543943806913173848496765343676658142762975897330305798734282263817698328379035172817407585891406589856372249200840486564472163192306724862433888899463392223913162440814656637211698505324158094716817797108185877068257753507295232923619182944380026909949731684783389098888612832189626895624069773669313885313591735263780109540717555611431280718438086147105622280349674363900095974081369795756609208924513037708310684376043187690586231719984060180908484276326405857746036334545658829083107475392838689374460537220926190466499021427445972428289867027266647714014798827722095459280288981321751516785783071566737729689874065083212784320795936256749344168815893567273202387246710704917173277879519653734940362147076206490217915654382163022711707574937621675845015051485283437763026062367234606778444372164663869058171955591910436148694390641468160000594830282736864071288291508056903100123199189116494335646550691359264705621460366774625465196549478094195386149474437977032009627613750944748883832771378294625296411300320215054749626146962681739104960708888920860191811062549167886548777836714636028684584832903556385960473493703903039840652071907245282007037655642720514142489201090481788207899435394334024472443607886783222525993530816710318979791164171106760918169825575274695914773615412424386868606197468098941416089231969940344544193012824397404977790854678769215386517815651143464764036730518202074262310100859395048156297399198461326660650538681697208958394654804491295702563749539954634462808484630642780685088986775651265176060069562598429898461806421709483757370155769171458266450857155088744666543891580544006517865335381854378434186221664633824053063840150487510574271207813605744031319965296786711812921977008950679323696352180913615479457835314715038776470814005767656584585207633372874247257355811743702096681395210833862829842641526855623279683907558531223376399848824000990074963581758981203043127741910487049058258076678064633193010716368702050443804552663566391361677522414188157341422224991620891996891386308931587358238207645035776860358163961116479007902867233737471602709464743570582144645437913041629057174432642834658643035916506053182093239356872134863282350390923900707593414395316487174497892773968874820889817321005263978218817901260651332988984147036850510092527235091271081299989481109195167242517250805103321768455404110348358381144880410983686520825586503746639816087300849154691020284399787335732170006072170926479406165586534530996692337358881365602976572704844881464917732367926673124542339273263923392057828226453351007961307135417178556150499752857677076442654061254896895799603481134393008897209144328408178242204012830044479445999039508241377904367721659066751073307160091307542229218863203728563989126427891102860909914244880067657540472125025596439575314819504459105910593605997479697149323529484393621210539245944322737353069239974978529808409138650250519668350781282375900673412687274579627271095482077179495931855365086552324107447698797637579300844211338648657825675203670717971197456053089812087803777559011776061550346649237481582108148905857790245658306187029528845866327106290599645500078881763169730332418944542410907844273244897272692706944721967143475819993881564671908635154460893374390086591091308219469415900947597918550251782815260872321726830661504498420664090808356186138807018208340971324754207322239428243904950070932022861098601481602719761004581244894355153922135357958344388003427493616307469304726837864242577066990700868679755258638181074240246858807123475901007384893355707034835161173517748918514565227712197912076631730421710022652273868708613226919455198975277881832882901173544171081211112823526937915209474292569223291601420661646054575748928122012086520185858846651219695300098522221899458869770742125886909428771125880572699332087561260715774709906347969415572277945639985833370959471667948427388353730530998665785773112382828577375840307694565965381509594490741946198206550633105663889485150857428919882477332836267843742886074839934669950277339190366669665759956015296750918005764646352792413946289071796322668380984033666203568134033155296859573871397101442232252434059544439883646465067180309235067927654256580803936845220774061395216675104926583199127840900443488678837195325382227395422669448864045714337960733947316110936339893569703309008914140615207009118604746997299603322586309494800190158891862523717187820185239589252506949671782196040697556058603064892821331660560134121538016948493952201721336163555370403041128698716416256852564121890832877395453595313097275846816066972928247590752663544659686638181762182967795032054010778714928416124158895482240116768944737466995589595508796859622744099433393711171406083831100158757709058091156301692951572696768572333315929446491911194716210636570048349021630259148528702657635376795109416834008611965660615149020942859803385562770156197933190938088212340877485477758779639378101149369090655619301214943497821743775328874252120613806893736341704039408575564499598180244765415585259693700856560209373888836604372054139825326259256653156882707872445198969902366606178553804845564926608377343649865071896357739446651272810053412198085768527592497978840346799170026428798316487520152265196231146579475770464260292352097796112019103526254602588022531164094865633511518957069983507231260497524266744274417359609039993132602903192983187716521597667454525393015683980406814199036074104525762208166417665467453322933092330426728423193927111126829787717565781385217163643479679129941327369789647674942363556373273963118991629053082070741573747762204165125211779017996135638711690659556971028157803852655578650753790479030580536510925606076601052448358218614453165333519908257218445296330787938022342643578602947993237783041416627291517347584003691999469973540706282369088773816226236345656621068311183156094360681859954159749840400942478101448472646446775700608888344106660239403059249503325044356095794925471017689984601473342673120432729249346992722898797516399002661603730902283127415688150949249912646990410573705111976278974392735180787986599421829801335546937128043368346369631473905471985236229275886307028773674136576059236568278717664803611340264757203825392665898311077680153090175032871864890942640609509554712244273403808654762676295643319241453655036537153150883804824069067733550432935240662615857681931093912844763995096576413912765932350247637208053668109123648368499555914860745085057428276572682403930042760542073963164855248984335273337596065144326958633580856105255393544410363369307569079209410365009996477377196034143146624504871231613914359339374820080905185585962752205716309101372196015663042540493910309083133254865387529129964047555125679175674426531573904981301753430096700624623376450818032851719466348230100870703346170443296158054504560930541036025878160681304982885759871221264933351485016607194458035567551293991058975122474804044282910622232321665232823006445234431317249417697771054586199812336290178724527420826224595679101881938704609689057315315666066271456991488287951704296370619940972796421827181204813216326388870175890700347722836909610085744698621929996491426075019487748051595301806756546017834886099583242695084043787155372322693719671038491092295413509509554420997508493780690998177206051995039731940052891414277729278544120487959807379658463275361803658781987924414996853459560170792819931066860963206266915588649837383877346195322775102323780155037309978173570414006055414743412178579092369813062135962835753877546533274257445595406775488480505463305247622251043613306449122697671398188845275127140052524654533329436461562755399575719428246813850473161817223777240196482290174776571931058669120924058647790641532568232569866276891713666519044818410190553493092086051816382977804524414978527661539187587428611000921613838679633798036577735719715877537684965314959274581973669956195537285355824684951775265377410150898269939646889037756502099145124064990803990975773904959172466539805216620917949727648400817002008239079213590273422922754305079109054288755551998313951696853275645882017946270504708395923634450056415770910956451246566903884229668147331570471439173901874384601917175151802835053329187728495739601725995000672573716825532425678812315173238244160626098591414547968391549730440921937550959723130203681968886794755750537942848393550334909606548462024572719324566494084502747675207428916609967649814266415030490247105732518901053363907638658552160926739205207209858352013687973184098275017180268552347992221921699149066845821720966780915105968196070929248955593981942135563362649975792103904931353880607437681195817851228032515028112861975503875505790039457002173938171366270262311953556632081271925595138131254034528043513016153658640006072941488144799197284883322315706644127934346913443415373347167466407419033978920173861302919174183638396761025482819515957492990316662054787117133033584560568196987477186782706324653606653053312688250139009787521742237546119881605864348879864450395757009545909226133690767763179943882761952607631253883480654716337396570044982864738180267146848454177995065810142281834165332382662171749248485921235688643913754115820124342105555442425006999311764163836478366505245499031170810665997280025207781024140272621675756672587485486717512838368111641426954093362805592693783783417753345276424546024769588081477053054729778567301444911826086136347335098858552612448274310586646443057996560948597195975297636755049764927149354602124000060158759176227027455234924887326499684431913678307529963552186030137203318549454375075643240267170168476170401515197735807056158584359075524772382421873442927407864348104776812435899078456759025518627548549278875071765445773334696688624424308621534908125058497244303832961167571134688788056049868314978130330004334494615158755016537226434959827888549538651758847061030924668001579349520084006753296442946745753916488515165856581496260121153672000460662395552303040890927628713726964792503979110603955278013698329314790214906272841669755907179081237545140252188549381196315232887705829406003206688340350370026808957084696343743667403994683938814940533279368085466083029252596706455440165905092252800480718084714812064676794393385291398214068648012047478175597757036457681343806259275150590500114432038190495715882969702907353039760939014082539390867125833417336335999014706299538544514897624236820828487171438543503646507024755731518469455639392484768712452599432333409862166873658918442268400851395071227580112323749343403802583570309189203522782209185445884841973826074645346799731666416985261489489230924519599453660284405438146075247810361822847309148448413665802718438598732504428014034201986489886312617944518625164684009379947104747879362999408423044579643184416639238514253799794774350983561524578153765694894783880292121099216080135270211479452113123350209408437726445285053185167823548880479282236096902822033930864922385085791605924378030301694189400972695475622057669471268388773592467121112610636925104568864097288844086040330346274420179647373823241390466980625399894285604104303136101926950538534408205050072537588504891990127403777665246956466124067708240252325473202407852387815467463953760173677626801490213095769680813129741165288207610631064366629954726886747298722542040298424652217617384671405300647446062354387718203894955896792890067400530062031021897725763061609557569223099784659124708512591563281614256378145206273031181518652023876200530328043082130629562816511056070032683767871013183831248302944669771848943699053977584270462906102414907729330809928982200399523184010712093198905220374673329054350226445273894861904417658661811603711674752260374955765802984771666898132424032807800368060602362763298719219356967598263088942955841687971828409577032509644908403124794752072848282153298340846126898543378042873427479593639222460051833496667114200583287145540619456194864824210542058639036349710366717410094367999521922195378962220269890780323631280072129457113633799521319144787545473378886643061618770867649287167812194556215617636344034324930552489629448845649874179577579478638288063798202323445887856654935970722393842100631964340133768846379761839801765085212897844722481968444175328514039968144216664341909776416617700630466854178170110573055881959987365135131920763714428902888370932415603081395799252601365978961094205432223343404539365158468281450815114297223377951030169521678072041988060553656617893143524205992695853971823449920364242294618773601415531295071965777747018305897624522739372426853165956607704266192176539981864712148313323212279703291823090898563731058973346780889057971232675937755237146531788655507071350996701362824740112486586408822471686537011672868208031746947266182733596470001472765635215256890248387894989671928736407138917585616726555436512690632735087359675226347131782485559365382521993592188070545874311145699313855435050442949185432968166836642012918707680455107091607545606458251707534212040531400580876923226642421874795900995976924436930027253573726368301079383067849953974084915523178798326927824378109218938858079157129498296577248983014585937468610403455681838724303624658738387099494818366469402701776132290731621701910499498151970531395969124187081488284980312174478731662751312172429197152353540733650723244235333383317687077781858715575072708813045585466412668583465395202474852742079129771550970437535547896870963858351115307252599696525566543712092234401925577091611752385265581752274439984700969286944982057451467298598158940981442985162712146571076731513693201329905296590698320139170096295879300113799106307664819487797832617362594574723010475350640273957910313647557421972535183626602822182371309710007609004419437151400851995062615295851733179925671653610681146850767469551141479099279206800850643288442023183270106008237162082784760732826671018562069847549314841710461005519340836764655878984154272133440841242956833044561393666529063469408547453117306053827460702189847655529951486674156874322893069539685276750045545723594471641324353915832231169350830205508299463705433036828449857745653075760726537920378556978314965280915435962004598748445702409147500036263067324773986309785957259779215855321427709807912907089827535875985673108081064252789576044581105361236377794775282330421140461939501568443228077644884790921535115135695980462051447795340128729267379649292322449393206633622110997584398302637355128781279875043531446781240998769594665905185166686011113340175932663160568790281271245410102653087421938628425193053355348342861466399652582677560028721543300593319862660952465213345067986958411890882233623880679790558016580341711637832751518046179412631416035802304970368151050445719307983414474690891265042629953618345412183197327295048859467866213896635546559790203794719999720933489001474159348986682433592998048609513928982833351117369037319583486229857160256922157135956589814065331828517040605468686762776534392976197726746000722782283631513180363688099336768731231288214910027295977062585064159968682841133537055325775082358409416101133594782337056257459800377522205498229360950582326954701727724905513747670060695557849369670427689261971260263208436182892752965522897672105680779386311744190705568239111193003759105880356014762008592216175058169135159421889674738620259677541024669917563522554760960805728772626835041793138115194078379216379740647670435475829819920387634938499308441288849978795310249971347900014570816206365475715894364198202852357346741103126542410700690007694574795645021044872406359521836074542414290372514324750189177384884720265495683849290088197498925175162087023527456907351822352944588679382332895064115094738467580417058936527625448606540794429489614460100755310824614824511394272358105901919638571360663085867058652638341287965554859710412620953532417397934993390023550538958576335894352313225947972278184963067298026142344313868411876891128982465596701756490212115419402826118406615603907056682239520318798477518796554273767497179358176119994853395190122617551774991491946645508124703551597729272292170992007672895592978229553484979744730192011329785151463154277398303962933950774104338372186502779491766996703645852758770722971504487778613927391700314914541935134631143803754748227593611415777024153830908878358159889491151458269475371809793723723898374954269974782173687632249016748332615184686262518079652829446163744328390562974880348760901766855531352410231874719184595575317962505289974157873105568215140553923717389734275446359112733915145368632828421401337312822411833688230024149590049662509408042199390097782828645411963196810238729656569100815738004155190149569085447783928286254539378634425132777274992953089551728735912929641952032223397301892361600590620293971084548843116682382269378090760427250331208080171192705522953369709061065638448983462752249235572537239539532475170382651807054327658693388114560646192672573875936338271964366551109217200734719362711581315565380987347182074928289216150297339841256226601763138264439537465849435694625051000570539279371661143092242627837820619776215477132222770029107085839690626572415416173319882168122082750879497095772974197099202862985298202228746190082080845663400996863160204675763338905991784819178539847511138517431609794553735972627124851164194062818107906109789103375533484253495191486741983183730186750722667914265107898872718868406875919198762385409181538534893597595725252110606718130235081485837688279178478921989265372465740513203065041542911156333212245020786462850963447474852467686636176869806325091265702379374910891444993365971538733476636384911935555908285716850008718188687168241045178384571100938121047961845592105926577061592001074445386326683965385588534721218952362065947640484375638683487375227915103212056979732960678348057545593750933457910366028110817768447818783732835048398291542229208874913932875783222366420530342735562968457445991623301935508831200960459300270967368630014686894733804340019110646588593602644989481044425243739845022717250081321926778849017045959294851509956245795309964754882624392736614380266895784550557766851153196920076156568900271227006670798664903223971670552213813004757544174265757447500384529430557404983670081237088993633461009047674338737035368965297053228461574885550748723390705583733055293029920161458286109841267936416085445374825208348766744866808678157766181631473694505003568933056634265636026421116876797490715590138250995546177218540877226327778994438783951564978318961406975783238707948695868996110697965584767922684442198342704632417666340230713594401607338648108157109394689644868151518951718593793507161905258049516837548875408433043580463039831634687957535504614816910975980402482740702256288721360848705740889271174329069240939655200839876729334282982723276687539684458731299879760798552926076966847586655950019342265796159328726011180108087578610537128173248296438557385662042511683196863138953251279737956322692241399141277493759124007829963678147284366993411887421046981896051863670992522209155114943702443643708553393563152304964334137593004316929691865910805494568350777815719114123012530473089961311369397991011419428629794613409324336678843111262357835019203290845583910064791100273634902538292195047091831474535452574372427685068824980527629457057159211372158218915290681943828467947668376334386682651006661027744201670894239795730852415978696582544000994370153214742380303526900364494845084019537441074540892624817334346904460690880096223762946569439801444783094121779701552431135268568522532308941130896238291873376076219881757651429967914655589753176614845519883165323326956035529752382534252534987068061103608394535773947197124565532758792976177251968086603325075433454840197862172340882968584414310519554194618153201992750491359780180308998325774522355036605999568567605170016134474308743037857781828022789493202281943205589747110212848262783055317206028005562989998687864922681924768051957131481785001478083832797483776373415457796811966525825430218988512655225123676661553931456422690727603039658477726393300191637387169667522891290361509208935507660624829229596946811137820937941106575769276325166252394263217303322136991717556929253074970766371780147595806494797590419974526040139531195979535561811803817665842040381878899435264280025920666603570213216540819973366000019592717630688078875280324030366524386897900314437879465545642284170196720896926491055044985519354127857528292915952595872549296080830309105793711567154907470383548269514739830736682343973460732702599019100250073287725161997876111582026339939089907248643546500901811512511844900649608698161201165458471290848000631999819849262440864048272055416145845948099803213055799505565036301274492319071198974858686713730620299123693827993992847779902633417429824621661907456157512012227412908693949664794133633725807749585690942112537527055740396479614921488523335361471161238278656625978114016516904701575140287009622821611638964348949420332201461514455800515937204245018991191409731868055733070438585481780423926543190323545690663127866644567436724348038493404540224437634287986015650685586646199493189316515386535168544711836280432345587850813772404623846295713435697276038462747371051467465507990009172597596354221793751099376743310930948430140673424306069999158149856256783369523163651716408266522710884493784892805821911352370873437662804057950619526853947326383379745801861017607472842133965623506005405188406260586937336349592660935081508180071678398973174208490990129809437995435414048723515736580984743500349335387610867077129002781323278564073057379933435147003972900974593350495662283082144401529770672859051514810632831601264160003243651570582800051127393518597356018432441835079443306743731084547353856855178580747937286692223559993526910861683326215322630911936028869551374449533782114516268771570556004939872924179335430869531385315553924848987562967765135879171843415675414669762009815899124888299705550736656625127022230579565328513671574964761052468989516786749773821753602737353040862297286999519008207852344890637325686250352583149934233257864862821106444086753441728036094317896314325349769991171896377855524042185781629930284278734018926175135041477233692634077861240230860082149359093669367554527462583777888378569329283678719529410031623442501856211180833345598375438535620017125194750352204903903189341596561640931844941879524268212296029391948606735309355691821525710395320783469866327488790323251464175450912448874191078854544610598256446213316831959548973356191690965321939463577998666543588773991064073724978318786240608745650451634065204918925772510222615947023326900402448359668732570299479576156627817894294820878985547475318094680882038663367921280684334996897874078631450728711672852081799304676007650113164037722903937919534860818231858839985608181799566005114885715018533486121238199613320733969693170950567822902981614895845765614703292004419080819936690386136827537196096094364079277772073097068830522690241123831534384503070592532453422841903543797832924252143209714236401149847372116858383024723236715979009985965690964949417096975618039189579211544776019626736751757263075146953890621312548454184219595528194419487037451789147106128956798048639792844913250123642605352747852213135844631177463869747310640899157312016115977081167435537390530603341938004884025951865543860885424168562768273810702874265848015128658714238963579206839385331365518442663036064487840745841953790815309118650333162086086947844408221556197399643981961500960330244139009850948497228780386012494287169361628434851820275815194638006237615120199187304245745618770317956262704975126087713105782794162409737121579693765435687733195395880051295794074326053797117138359751102633229660462605560346492092419766556562764505402468401827221806398529011249238547381234253657373688727391501289181320011744131111866532104866502289412133424622529519585762650787644726751490503329518750460947023634799881390162991394452567885072749448107272276061727747229171054589472555769777065210883253794107848071140461367400622186530767712599596104553986575606603626620775944195046250838301813662274277133170016911083477592674410715673269123100280231695522087161530434995442325542555169187310022579165107205824815074144249027805979159742941666687462309816766182503051426561253434427817135920820475070362840665732621809835333516374843009105513960651089357316839025640452885710846983237986440728784097013498029512724144072283540452392911883213054012006305201376816277180495214583929013814646582489542275264743982352017445713178171021062584330165668231422544658724837124339406558132077351892179423080555344557054275625714797252129155433038721612629405270573059851517223388425239157907395529499827887073511835933974553789167548339881701703603134261004260728970447993483753130488784178585549452161220691788619774959285442191717184395965618009816848699497337151544901338326846790581227080464019205733176978794184789100165746335472796581093685605192226818971937642534531343474200112405564121925223841900826542331002696780194744808406565290180462934649321294649811924948531738174105826631968636917326401751654020859699384065687066099204446520759489046824297052404519613621785121396034603881263635008957225418436578556647918462349177577271518193052323782278632030233139294484993656718270278977889310281783818363378507702931934364400965958084029089608337272269159728121865162683790631919495404057788123018946397362349410719135259355120252257409555360514223518559012592412011072528738402073640741991633320090988687724971889429840985194413800282232914755158318653513550555585074778521724706775593850028831781509671657119835453248847985226417862868320497620356897467833606544730790871155472011312669966003730518908838899424228278017669730225217391867545372703989478766832698843999515772023925944737006765197857866495539046399988628827120334842684605246728972591226136504973052905229567101729689682693031213496197893386489499258227587011585689905116179511449030599313536811138574779876236939568017627747301055164939741328725166347823371974040358110406986645428170137520365272373832824735169279351702039826883209510354704207306775536737668104338249299513789943477502231198344965187248095465152321447697018162258377636426612632430453077872767506514409421118504242306995892495564120561471904361499682612518260268220777628922484747100132731456849589789903728669585054870552229423393807456074687822969469477601132004309289798808300856455004450948685960352915716521893199086031240252125542454621746010962170205256638375041409114030952669907341737826413955721636849957412955330869409135109761666974287827375105816405471303483826827891683281330759651012963605529607565451654503204552481940716779217593754934169381945990236288955722336853955396617953001113525449150376934486312613486116855023131666856408664092502276407550491135989893825436423793000002101565584458404254657110180561793277282420174289578237989137565295359818609995325436386152180388518711346752713214288884492787639386891791765761328894237640223200468725599558655797379530645606833613407961244180553643616101834953889257935818901005946584375861636153923651278903478490893444316480973677230949372618433342979216819466002790370563970508418501004224431475219215494287292863208391911207115596954098515371437155956200879643098150614844438371286388432316131533474193033036537407999155565627392966173600872193152257304642220294966480960796696722340003562884942426359424869933138876210004730447555753845326196776119804448882960320405591960816398973196631091314678823069881994082968770909218069444130626596983875598176003783386386761924488070273824564731825759751119415018639875850636946432158357874524462332755988776170723345828779219804736976453452357379903807747793906093354997147031772833219790182376004609915555714926235729809210894567652098546822072556213427711979558139439117486910929806418221310452024006835774393341642989493827889126752212697739885057821866314140438187251446854683551063796159998471611987247391667413294639812661861535987735824650712663488628967322184945159793435228938309251343349253338015173770161967580299168354184736009893482219075147104981368698939555342510590264998680915826252553755044561904645067413249979030641394991653519724307219618359254028684779485723324667498534705205033362825494424127839501753037605925423071898106076793296477056245790801636365651222053884444091082937753515387135568352958352904750205598735741875266162825524205136279770546471010203958912455578662430248811232869122062516169642436166489933180257902573938239527028913594097872902843795077477727530136988321944963712899976550550099189033829732247734894236861577877081691125605882833779806401974889213116046834002682949980882311921601101093577462829136157068966039175580058466355542167632301246904751321804330337147965859786855699889265267804665313228095628532654799016227879313270422673074857630304179961396392906806621260479173144952162222043203972450514336020613925283089240852240967014184901393253155328281565930797384717175353548504111340976859179400247357886244520590878114681912010471093316844519258249133262002978015456417530266721801648211196881936249428694710999079860169473141403466896704054637851379252084695311625372163832605260540286264639623977016673460483309691558867351968105600868785768846713166412186637781786560704940151360126149133546625367797844952358254109535844410634545100742634254646102254703220266086877488087907656764227215604688896793238453033494109414910610332628439496566669971112792901113300487704876336546340894827030462902952669150885364010252804417742955661415788176866795964731017616754682015549477186333920510349873957470391799692155923834512224743235007465046638910898681543867234439139717851118854789865949744865428245564637313287542939906479980231569598304061578115222001638293780502975530402925224645078500576734705216073644660009529574646035672925108889715016130960158792128091022229930858733566550437668926319160658971806668240184305148985626614572167221244631125232835856536947349766570288043099256290621538171648437830715086453619668330681691509605747636327965214802207583728011823036618374020153171887837839821612058695156324660720095623245445735850003273606160594093919458156757853409143399400862395967305562486930110963209366101027887130913892732795013226610919189747938446181437582249193086016514750318431167278799656665257604002757407494288316014350263916208022065475980395941464959091035362529384983729750069635219883795677638585695841170986624838233760009376224397938777915565224282187415320569350828959244586316415523674964192384165997054344261641667968137405309098835401725153922730008905538904674030484413977232380988993600766422659867409306607763866368943720844887706399132109188299967339763352882153797318215460756149495798007987135307311626337606132016395501227764760431389899860897366981166952779552582275075819579441445992219754869302091807435814348135487171065011223685536777347071177046107437976513942527996674365317708563284839909027476091362483613962714102211295294002872319665383708528606243458920101076973293406688274016554250215471473074837347060339790010284321879360868524334001045502443057419717094163203240508277969908077320408458265973967937407699930505470636779398851258061577949043292207680267698437182003620173368001009206295296635112425566015883938984049741832462657710442995933588877934151762844364820705653386263515109658878908152786589037969770166988212692676665699175301411363278483775344036977140200134852300613475081849245789792695389191963568479134318643012570338751385380340484555639215188934195081840818823515829728709548143515281905053447422988681411190711336106079054640237330821441355112222522473582226698315377814997700195792365401245331393835929993572367172729866489026559569311381395372337577954203591154617163979064138364613812312946656942562456842177868252144976883450437621350175075581522896147037383854048578152328355131430740680573436017086325929439264887852769693135128613543313815008820798298336926917492859822679431972670607153786128242838270416455620615917927176396275822870438041680259701895330718502075045374799156006388291932861622572257712463142086842187464895669224293075783718584701422537150056826284981810814669808025461112503399352149731396508935099579983982521414018934289134539088870285448166963320823991752852048689794251130459687258913154996018405375568096791761699778206966082739906187793044633496438344619289587255495275218580516346169851267746894655445663432241915735005960530236360881950912516672838741968343723980368826542521553707428551456127631863489531262715677092918752639005995417654641757633819822736736235149825501502107080658770359239113343616578833428234614783866051992887885648236048521016914002019499055648030148591792144749701255061869168364193644349423279841338557438721785095142818093094007218764275777278403658776588515543690551331710752799255607690357732792461345456840236577899442578834695516279353439394203898071588004524964324118314789152510608942784755963329394367102539801049098354447795873452868985404145084690048650886750826174683527312992814868066663501046688634383130793710115565327341187477270100444029636663771999305164409426404561583164930928678587500583957630087909106759954047666845234540072458565407413042199896421117360778869258665261101213987534442910388041095247589143459386284271219101967362708449123293471528443875299543942800489814467305477962877866009447814099171829374535566369465661749046409960621985753598480638616316150838641488324391584680524084680412804849455064101149994342767436910235386614759737121152120744572547223947325319453338567113324361120158651003116119714486952807328657896590031787524491292008184535891889112702031534259745629495378651714967104802589278477193105591341084611136974946790005045701708408363034398026158981778111833593654514338513357824350290706144469805224654755453375668727040839459591500515334732050736811387386025227717275102981099470388923287044360914632797283862152553656103741958332827281743767393146044649609943254483071880628671311833406161363132337915904275101743600252211137440520799628342242754564728547228612124464446787540060248945310163935576132719417950876859549130353830915770856984747769677820337928489577512542672296073570051025205980011703875395512942708214659852522802119332596264866861133448444401904784541518551639248544985393430431748657878661480937534236889308484586459014997690645579524191262145308600431321035781655242415920973649682740411785167466176041064002485125263203389780505826198008852497235667653252620472577207976388666235339761617285515555243080560698915325687753504333147863429109615465591483123287913183365170600168374702059159963590851703789026941801976065289120199974562236619304277256947863233902209215001604932669526292031227880555432364995483186391045632490474781441378810096074071481859859727409615628576229134644877676207810929719544197159223316555765177316945680114935515741880075702580355239927468737476114560717589844558376811358451953568262429796955249204321149471978168559841454888792547204650357936269928808884921105770218054414808540621805732358726543390220771125928761268580651252262454990282108007616311680192080800394949284612721346659797783512874282153402367159408706341881236827416604943325105223390880326942026605222199254931578033795617270701947988987516413014699457677351867119743270546359726801343433692798893387968454043671097272196802249472669717337322022167626876230345954797201996826592682632509309681267127266080925555779248046121655360356440460403958127149785481678944162937174939799329432722039600203168395222677695829765910679265058961760112144500312481937362821785455465511870866645058913407910600391459418768929821178955596599042454165323446209470919399714205494691758520778539272687568862033840970468315041588545807912364739369535717773118130903098203225240323864694835318782028094884049356187188415131471392724974582386702860197582295891477138665927813269164795232703122088293525205330372376476775975060000622956097593244143932000059894771712432426618289777988606661756066067037122868493235029621131186888402925239756854471798270605278607722336766948030650038653012402575092803422450106040012860137777412954172492176693962372702263703843099005591107559631776242288442058739757404757113725440949888733423703453806941503695049915522929592241992195363204080248141270695383858310829657477936304130200143391189903364824166501849212296146853100806002090775666335828868900872761273096510860040030921429355393073923673755231475048364745076284357196962857750895038215749259681787383560110740794621085390385206776382102588781226236548357426496372955251700208347146740293378053534027699101235628471750423023813566946528851251820142692186855407658385419751042885612912556362268608768598342383895618406067041339408582351836393517250522580400961846613496778503023065663850402660001467714787673968132631192886930202665941353744541305502391309488116364998786170668819224103362701872668627817008795929511135965446046754664981527365139574406103582489489795760472857402649573522824450496131418761141868948901917254696477259943074951845707061294651591127275991059884168366501584124153757635220362559662085625676629312259557261218003501736546710372560419537427964552188574924233060652671188093656179853443313323142432368637728653545773130669400878582899225319687067089658243318339746910149697269055081893080113500797825321930266518712340938956323109745018790105824708020345352915613123221285392787461805492737821147997395515285854910825550763200168618616997404067886603960441342140936969451615980685158583129242565761279757013732656575915176179417522708925250872220350788111375152842393671215717481341589088052477955759496409407962200703804970802473798595912355798647162994389057830540646933673288992364350035932992775949953048416625072152770762753366495487784592969275670831757503512678858852804947611995932001125886583141733930686652367963742573636109924104539088103896568354790506495661478536879170477653476390572439185681952620286982614106289514077657825284135129618923890957574656209601310811639108885011348675770061503395032797215289938574879932527261497921948457044819442085399428221971128097500192310477050726580809519356307370020368552217090077652101423206911822038675714640662081652905549323176555227369821448040327862501794604017858942216811243007017503970021465262307609269769407038014832765438581922861978288935133635641349073006538408486195473783392260352301590161238225584601642410793497667731964809517979718907422836225826661521992547466563716817029321804874339507848808638332409108719437457531371096163669300882951906787479138729022382128885467832551075487554176037580072694774791205626395689745433225575009291973554190334767925983291763312904684789427318846550843226690086894474918785921878109364305738109432878007031100709094600524012465087243716460125317755185213415218971357343603928265012474736834483475278821257133489940971586296243558806954010787079174146004990628609769878741600247585009802537591799317591767012783655767536284143673479748038772612591915594152924628412971370587094001319229051494695701160579602472138264555074399185348733411255063032062619348244484472016794842071213701882485742438495610349609061515038474147126746583798608944624336771306579570283453207605858813238952010008352893661736596927135434951608721376255566647754396371117959778081755439457094327560742001947680640212613124495065798350881581807031315178517979874060285420894032990810129098906055882619343239348370356291126929765648665688711551200334074827411718120502912762642076817682605817574649493500084557637130513900071053651683918222343351096015758635998619011823896020357028073132232260327745688164982394569586880861971923838000557377634509878225434702059243507910182814852929361482789811228248484348466269039651732155361200666514800196354773540009764339797859382571004509072298853190708174339002927224767899174192006370456056420192331369164472378996137969104442536667132493692249473724638624938428627600165163118232558434952119040021245663055306843216971600242481117524093619426480494390851150683286139760941883670760188511194642579884822273384253740206822843642082373921085677997569520880669724638370718030619582215576907045698548849739076854136420918984837257311821265528916934571848166016353905452008164137031581567882707745761056317293688961866536243902326936235995510511507931321431936558863021771097461362346623190667567684432773670827412892744131553347679981291455836164423151329975791002734398543472514867671004266757299878491393927939354047429518771700977886463850728007518365168895601218725496797291442485557457968925648182693602267550311971393862767906798962722740550251846298210549218969113468928106295125786503249177910742942978227485679399490015874218779894071298915165525141364231366961919073043784713219755446518408450559108638798112265696544283911694393235043007480673761543513994300473468872589316287217128331540788389872240696024724259244414140926440472686255786158267488704526987514245368751486753659283486191353091790358661588755821742599411399203556996692741263926310206235849074551935322131565404711743026741879352275352484994253862145507711058102338858963451567636206405305921613350414004118556865409810509648091078273107894271675774826024796860270232818961380909723175454801770406993333024464917267967693713618708247726183641481221961524717010608863072486925275493106011106026746016685118151616068966934228395189072406353982363916179363650483321537854642743559050348447053715530245135769793764524972440724548472330972866808660974216496091213960849361929230820121528754705532665725411702301701379558684516959805013988213415563042268247736853332024819030122037137093882111950811579013985804317877242068160102861152874679141944878726854219562059881668177280997773297757277199786946371910420787518230282348650530416131328837526419834481947816457412176554726002036609315782315856171223169961037054766102858927688848801816174529595453819856633841961506540839081170337844897698340646608811200911024176770095947209183968827305980198508657383888814729033461052568891237847054389411295495010398234541047487795941136863164642785001287683369994302811563204488154604078065301108994355936003787438606667925750531847027452585075779141375517646063908900644435225732108046504531403700088214639856384550670663900979333375451439109663478256231304198836412176437781237637969454716606069206648969919902163971312843613548011998080997981166525401266349387509012320552270282619649940078564191309341585221667106843863596746398583393569540568849846381388940191567307412451023159499932280272570552620626801334082305926401975424369016493718309551106643417232869913335293176597739677645588353525410059201948758974396055785527630519413546718863441292772489726767489961369453654347529687907224214933805873751141696750536483392267552454557906639712411038568910202646489012295526463037444677369217257758766497981688824633343690869556901338169293718443762435471256907603518100101148201648447035630166643048085780165787722384140683395371144739681787178742657913852685437932090722000132096554372141746031179654932909663306849368273468434585526829322671765382574237156246440874165738069214973222214485877525210928377480245089658840118887000238289348084090223408457874980377716173232147382973322187567974905919032098810561003005677752575899583331503517079783371278862877776108953850081791321452807892699834059582268728026420239812929178495757235457495755447961528759637179002377340059046340463146092554644132036116548755406120379249849196671602987129028668773120323386651568132224715524226377359092392282183372617510325271210393535423273530082957595106231207989515001164585292167415294474990123036701756147761471327353236603433108229993278382991725761792866982344757626679092671722696482151114417211720902513735104873539970310166027572388647022477308754493241566671687707668884021777152602078526617984100098894019339364633802906359753319411485579077936042990765869086571226706724452787640428735866918640679223561227097475571863540527482920496670261266956147453673589055734822720346071561543663027972377858895328394645062520121641542537376006084369625514274929179337833174606068480627200454724304276124801983435216486282148490828851575776259320146068036466660401613919093761043991687027721618787104777502164521128745238458491113365648603164296369478095289997399750951870648104408849920686999679162900370644500633014799097526261129712379991686781334538124688111447618213676336581901553889249716543953302749634794721257453531815122086163282684024838973558355306088262861436250828646625059185723342841484093163998561812423244550004246383373274948609438195244083444718681386380159171529319636644647534840564383930202798832140437769358184052498007982007354336817722894414544073771858041124547205836584726986709902636721253294629343654099988706802124102907466952223626883688919597765723165663810686737606894702026618996129773430591883725877219685726596840651936910338910584584375603758192290886134903089716979000313908535672312792360752422239395949413191593187802494311933641682360185528755768219439670924390397802971619998981862764135601042120912841914689519455168724778399545002151231416566040492442224556210060988261306728610507039412529804393762114833200836277237001360111343555624202409621669230868375489397103588024234850007573118663248306780524253106005022908935380959211084745529959196138528873161533446083221732702935095633710553518392645639435957321342214281188376399359884502386331352727002511510402525451455105548255333529840753641796977472718332834179646480098124407809470594596026172762672979422662723375801478514294642528301010993241670295735309616846474948249555425279918387614842024419038027357127907839632761356739656140804664640811012771812446656066525141155425084744432640241791142422486861722840422634484726329847712975513235258850528067866274394665622433873245908475961510033347972299703509116099614059493797820931310264211654636211011998729087859167661388863652160539386193723272452542941096809367258985085692951651376913870829015394667233496696813396869501588683531212398743588901920824023983458529916265207494310478541941716226037573669473260099539354722403307231592833311882202696265820828066487698835379176599729689942568146376257251818531009995900320527818574132499408156101894816298563619505746626969170367813311457742110547224082741852901239869648432267994433673064174555549328319917822043094540431319445288035372252876550173960892424343903529762792784367175688873520304216957711646792259562049778552510639755473555751137644025743019018044673012685907838699257799367883945337249299816190450335478397797688644843793824849610939480457942316280549458173481686356013273478056464400509486437047957969012420769758360763636582303199392385758866220742046271054820505066553360921574189301551397560427430549565542125498077235989810433260676860746564498471263523049437494542731500603915865391510549427353993477182208284842357920157554313485810277450729665947860125031527890885966968870486628804311594515344604334628449103579240905190588824975428464480588578512796977501825860123404930279080688752350118223848951642714572311650673430117426254137549534602319324815703848497755743730901764608508044819487181388819641698315548547490578471867946195971972117166212947885649375024100975279394555197088959053811309060004684639580495843510784150162577395482687699405460354828305396880075459374455812898982254978636654311832130357995469293253548634084295717158156661377903091838922866312425723756990926527338733841711527290722640082641996387639052931730767506789000531753447358620163332895986062051867909348693217478398969120092334573940964401523660741818725067721841230324059907270435338455895692680625775337148191381106627988779564420708618293288476258848282537868096527242271133584711944411870689194875078997451364675255800171286024433241203055294646419070354899370718473868138079724864387150655633800432907882857948702237043718481057751353698583060143006396560084392254059725521911985914200058368585650748634955338844820406194686091705286182689273618656217500558126282647317837700482537271762430252497037619003491299621888563388676120937081897116435587166761469465750400536354651867083783955269968141855138868049828806258844161317536887577713013843892582635136793492986704103771978996815282361585223762694797028782500196093284676246723023151047596776123369393163162351930409945157930932209555244563524747084756425473546895356676217271960212487125373278673144983119071026447107833034079628889751764597315218133303684367081282274126434192830779638424348977759504386261798463698102328685770197365209985305654827416700566133523707472657201141798921442747385429164214039139607515183828364398651046879065648405151126260295414813124811618687793223116807146588509088083356788468490831788329249488950677438062514676651488260914071853222584921401810567078203020943716170486063011649314453179409816821966619227802395207692288210088541493471046692131700251121214161937545695439942643970667928012118818186196223891711507952787639564338710758539373042735043742147738241624617100908454324755611446105290106043751010271067678279559722390553032609848854036239113392858490191821866866099311182966068443464796801744892439638435257252747175509421994699011222537583518682121275405326079390053464477544303751671984773671106409608018055526462097472871075817458911761790246509305091946633216452111781634457808805009682980888760217194808061439911534851300061443512078822776500376037050486899684730434237317609521337887399533597542541113133414565863422293135112495315430662205500689295482286297931261159811106317853628674351505590222785399104417282388299418197469417217096378702478725289988317818796449796839177432758161099243911462400629111848924928566000014230324803983374483643942235140616647933679371050629030282107512147866993074536227907387524447998503545406683924027924747917214040801489197966925975385214389473952628618494595911531600351890289471218806130138992232763503490060918262883266773247157825949370696135201501632181333210921474495164380678254773712196791073169148363223296598443309857585089738555299380234398003408043620586812812174990835319751534603856401260317943348360076360503810178096455131291892427407886139673119264507687520971917467054267976496786085961795624143977743278267638687756904100078724956607788124610034993330316785479131086774997747427676948067322710553056238866328137890997843864582312002189708969966972618655919855025905897057102132001371643972968362345149622959230098736199013496835939457649020626575564128500703716872893063658714277312424377974611301063150157317872647680091233438017671114685791153890679556091847916322369879628289459879125369615950778537664933539078690535908289561261084245637910212404369406906710517809418717983026599407055764177547054693297293682102644033852158488188683719958275938507352587246270780429822762644076248197255807233559392548004391255541617622321179572517051963138095584811134897726409493757636926841767806277994953003838528417568532004969406957459322932491955193124353297539711671662065100352836503774572339269385346902143753051400592597434999858494639810756411871995491548563019512220627094794792644494876697224888846414356935864671214393170325694677234202571707442842264566201398986162250655902743937530261445289029152531969161537879198494233252999961562985923479234266941288790207775829345513625524889504237206596716825676777718318446466441383973266241829772291852393826784729114063174326777994128742800122886794795239681950593390834344282935246057317863319255921464322863454589298261910247041072041921682128875932722878415830954660372054145451180030581351426640557494878226092800055564744988113445843961273145702599025842031298401124183286869657258104025499698644043374337489972932283870803220919809719020401545395010964932904313315635392368721817875947158572672153874842224611310576477721172813366499701214027015988975807881666825242998389690576331812818429021467058806585695172298741461165982339833418180631906108987387205921292195524942974676531526974226240640097861722971114015233705752466020740177993958156031966522024046189591771404595559773149364161299818564131894042548637604251500862978965852276936467232823635178101615103093008451958236066584252420345909941845753331372412115907401915887842685021665960752280202030403478130592154943513529546899478881716456930767019567456547801837946522766887248391899790938873946472538726150273298582044344164710765954963143672961368213511434132725234194792800711500769096509586429206702290791709255545203693199203438132570938960372710718449283645480033201504581128008001173831768560277742870068069060633054935447087382970179514381742247156975348786088486956655392441316459633260672958483853217347160643843795664208863110140303988474921373507927315173113626398198009378405522989072222704098327987265351016220363258364246278841391047682381739805008830851043168620176097608165381300876677038529652543414210761026932942630953341179799627024686648315176694819849404607015569626539821332639511003403136603098435668533729569760487147536397251147415927504753710917862604070056865642098922603913263367722098852344945896879224171198311439259494431117177128528834085370839864367606402862545117348000218537012999825353290174547239700844426459461306399192554719804367670801404692353887434076957674858876526697216965101688796036298084056934849049530029803180518108419583086005039808900916832189300788099173031864896676539231953695541102101027906765843345524798356598640501874074190029232361610047393709071115389455329650494211194316254049686964517914856229757839398569979275275224630616536659813435401027695946771592355178507989195509702151345425040589138682747250863647237476388675377665135946694470798548858125119696783383710535280617905219073411705678015015501893032524546635452479325789782800468247437225894039833128729736135704820510875823906033895653018860225072484140032135364334341313353537224223093139861418255724670885819746080848539210246753379424113539504794240492592630987511690442331934690202724051886445244244425446315164795445613273741524874407638844502945502532188266374889091045469872177686812410957702111969920351497756968146935318859102520389171734998762248871823782987957813449407993950319583810988994654480554619680256573284291667703607194365299295972550746559095622713986327892088793270551705003361911998229764747159469560580647888097873583436267107901349791975774845361566743195272710014012072774682859114399157667880022398758022304354756708466188786445081845639640471454873315101485003697194850186428243894943986649680739209642030649130178475374290700176913389701579539343054341384217440177693062928904719517801259282521801371830961497408564906980309653900628667342276091152920726216824496955483610720351384880648630010395365312161482893573110516658871490885057729402968263430835904394806364346699562186832092517290323501926970657690655289198286487879604230038009638886499842035770872975234183000804148379183781827344888118428692354749271783215523566445330198925530702484534260407679357193014400934141343169702878826234003422774809272232406838644254960486305079133925994942315720990145642776934157424225816627672901792912946335141235328513822849432783698569253322069295598267629132816826237984313479336544916887105761387898502865698896020774590225261774172086444933006512351197085454279316655083694376678256082051159383361546468325079508503042217890278781051506061523125400450898887819428929546990439945393622362524583338134234484145314958762869806125445106367270043968844422984413076790244203791157927659180306460435785534702642027125011131265676101585263624928082355140048974872351146573330453112842554045738249142010761556900440595964710281755481931852661942903866009067270806992998040546951802183064957675435590551268452869664656150574875303211979612579104269177021494403975979170657917500261967376414382972991410495677508286870592552505693370502431947113607473815678869849552634532680958528771172711148815090366027994488375632025957017165288056427103128737928946919722641298175522727811804665194404773413625784743234944347723604338229811283608835384565957554194051616874220699559719977540381759314477002818851813427629723483670949661161274845102880911263663508509746439118165352042743732346196835046284782272808007076061092580492523559346910138343335951063500873572666597885939444659762627911310768395445984965060724061573933141452619071660418262693396333981205049055721749575630148877049398180933702569531251995176101900257660138481764115952211554952050230604853225469457175351072606040595659966144855567270462905422749718184859947216721107813666173061451906898794586984648573575107669922765416382037520486301325870032011686489058985668591893685241416589944951848174920588961701071735578573548680172112733944374932647451480048537047649034328140715423395356623207815493863888216745292270440259788331022232051648107518922791339166355666920675874340328339337643493723953434489238527688874048901003842535796906668357234019248919871484834816155794212843998907924336888337601999373713399102148040696266361902418070023604817874656655931280092468949312869686179934966924648344239945137203234402994641854209830332470828685933902457256226141851384427187584145515231718023389859924358076646402405336839801129308916670052681798401310651322004748018966383861017191071318664486091455469239943563632730537917004461904919504742649901747869412187312511269660640528446142667296962712379979445968986099620711164066754222147644205749879481535945820291673188795680025792748933338874299820966061226245791233243675309978747743520952414393301782170706730412161983552886897574431405398133659539441051779619646466313074404962489393798741195407601507125577811005765654733168765715073842765328217669820792917010443583537411218784022482422929394077409900583556211989083611180441952187949140665474325035207017845328262654851512658598268957636282587800068091277854123207396343698691540568540041301601542273462435769933967282366658488715210704622388482683874244296536558279040040368120832203106625847315795016784739763025187230390252970598366400274999669291901401564122919705478696695456040683866290944679258033292559401340917104974793983072393614029259495123093485206752687805480393057016014134974330815317246627170640484575196354819301413936151696634641313139829647774013971804911935284421446534359211075313587582587471143240418789009623787031996724387238521215185942270212785742128059477686726369116516516459988980724573596778899315436671405423832341973993985581637683837841140105428157475979872344615703973595103636775929095828034829927161349805743837887171686136489528460005721960459090875084323188265598952460193471545374562665340321634661389088868363918595675937922078984179994952082508539114570597829125525308252865293996420494954140961522087170239977524087063854234264347889417844074405635773947439534066095216912440678095709121795906890522573690837877261250806346939716500781925673753209010323893582676327499158113311950793232937342663432844782595545979478303113213650451247472194384070287108196350601232858059300916317545603878770568097121812447671432754133086925319235106533697951792176989389079528510874113643271263650627773832727533162176615005306202912332401659173731623117668292242305125347124606308762770300045120553188540127582335561065020940236520108273530881208355580266640633208669777833627664626278642324106588867527357322364411142862915442591453191850410517654760997614179227380198585839925397486497867663036018064771649828470407971979045224633906490994799556233625579163644897022954757329781387912245428177957100168162340952291366029181653101603001956227970198962479853023530840579006239587318911173407280592513727047847300882204070512082820956173618852061673264245496406917869616701962553633885548364186390606837654945999804350628327042548277762834759510573614087698099776545974611377386348085858492114063259792147086761128454341496454812992785003949035465128503020592121599912849372117663792473824431774147166224578801681312345912230668456151794172416154848602263707939932240533645391246759298724877349174666477480062701524243019462433761050359295278996407374965203134243660897025385016031412294537381330924261878313567067852919725012904645074936958587396524770928372008426619104167666126160122255941894195307847776136306695066961724565340752284584104464090908999833025116430136277056337021619396305763707160484840478025963847332352881576196027628546726972305384244896417676240869193137570228199915950119193392187579611187584808277157382931789205991017689979482618454823056014957078022877248461113953670672426346436487449080748549863603313506828295094325973655959879580772654045362797057871234793042241224667992261352485082172034141748337771469835004542379644863380180660156675909828611817888912353913377917673601610010654064310739344448428354500788914917572040166672635060575238534227776803663961649825887219364293928901579782964514926945663845762556779690918258941016842782174327691360512722395499410330993920674712760559096537643176292251777960432788850376258411534343062577837261821934646059897128424496952646339484811522114754616673241289627596602812988200649139319530950237019770424997296750535174325984601049062922981949421230114351961228312848066137882869624725072485773111832246255083254219497828435426351432326076162663669491975101143248467463097190919362147602073088778485739273873862456312213516012167621152711291652750109356377090551457047494757260947799206438883498256738378648296034266958520225636471109675631977082642115488016214952301892649762618489092154652638775962018014687946381863885317168400319612381411244040728902939755160171634990146918256522407440597530247074859232460180726779028973922196453705298112212909766917260465620149086918236976590584095154404313388572836437152024440131946321084183989832019135333463521331301865212579012275063441008211295039303880733807809927022533319152092426200950018323270330936063161950976016135509503749231413290964882614079283363826537083377147378700550401584311800481353317881128665119478000363099097646058335065770510909334320145430308308300318714727506809994827004058726474931447243860642965009207229784029572483809749825339065040154041027985136398423074029194841057799879642942046278744909866006265044704513200915523707027350305338316544000122949514844687831391541963154178929153216564626183369922936934827780651369707031156781206903179272596505866939611284218935392280625515420439130738620940982361765283490462960684335052964000758271102265120235637994810703988755921497406564825651562735636970855637107129303540862808687911381180998745405141155625238904933012578257399130381165080448534303769831479001418313247243930308162107030279588117501969241934983923835435037232162673190908917410424241196133171752805133699643751614632812571347288040148678310550163737703928349575760356025328919332876099640932817573313367197600171665573087402980501743592898054062441089723286095489663132468251121380579389735812030496722035549220059180458721557725116157606694002798380693671578365147266340136223967157823823812068395860711439916487282865798040148290081608464013536202879163395579513858618647752515197263579341082200405554636357599178512363641494157876372508430568654332998477091441521238954716436971167194829621484272509386482157323347039288008031237672470394794471476794041113315214675293356712494855710615664981944684513410395575719553286386156656465153262069328354795709112263376848784910068595312822437537289446661917149419254823873870025698141319666362706834762593271921954665110612229872916654692079093417372756169737889687956363193702592160272289653969522285930609839640740421711561378645964175603031797502236031041239647389366589098430728682760027283010833138909462135536056196446877907178949014278835124807483276094077231871297105110250867227193305166158076748388813881497644583190643023944186250408892232335480058627406543303909530959222449853904597819763209156550372709208701902046723850397049783729042517955585233100383196084524043051086745401394511273947706418393270136365990867286413862889495452119999593240693820910336497626542806119749935251332199531995658963496794956886743891755857052242798114211423226164591459128125255772131207482345573805130420971562611824437163977215622826363282552953115310283786210204685273570179531525168701245823892915235830771926266594307884726103442675212949377433815385655439941027240509681424302218788073989863660203132610232014009512707148028059866397488052224408643333382953191350249296182225493636125318829606581968537441711722694636020174543239546145648397900081866522749422589888605053936027751919370150397576497266712726483580374801108125218698918448033377970213737040096986324326752941462347774779290193246300527170716473772860088034172744531581713746469432817964570182369242437017377462284860483023198395824471540805559982394437588218991635059111233047918485520116053202872273253699960194571745264193203030859117222728036997545122603132606398294134841893459595881474934545175662656811144242769762667111734809590612646911586897051961085546930572376008740507687972343899166262502709993925903610210446344301516562765289226307525120464415438440183935587286315794646827100918398305086895496145171402302785261129084220615052273491111277964623615527999494957054426982872623283078717360455498885270558846904819414218648565335500785949327893958010855839794459885077087598045283651553037640979554418154392957498460264987718411309257059075990000691270516362194532033668683201091749729026523973397027493590632582750609416697901139244434216730065333130028814648417955102242679100070984963697695951329551261152833722463016452500922162467705880675700984383300067194922889668075786399969569628694133948343100474275532352057493511561056504164818598862052554325880864779198421594499778735134276617673542858529434577323992573875522068651169010026636427374654156926062624342884351576304282902413221693382295230341395461801267406483895807744171283011945458205378414636518526676743298360508680242115538158231156440594715536342508869052278824424740452486008175534834263577345310408471152723047616085010782148858245980124031742696338242640185019470274873547817511281277560837639536038244820128280433039453018622489845959782811267541726542731299547579202875912439160864047285047631625383599025866675605355389149258890710911291501840177366199775382378106389905019327375036879596075927163377076081940975746618712180453550757208629350869320911284036636112229390636418128275304891321713944719927883651155607824943645102519556788763643287992827797909275393877695940851456737641403942004509342474662452501108951204363469411978443528202934038842071986354492412908800772038223517737636430993658526596479422631070043062402891278869370420329507627310006959453083674900525659647472953038863483751224148793333559279405812014415188507278326597344388770829696953771059510470734532091300218638933050594358588516551217966376097903574061341837649796383377952052861372361425037829812860670250494774855890661651677555903259057032465135818660580965023208041326339364007057111974131082356226135091768400907567324233631231853999164434000132754932745168497013677847329987986184177890110609318117576755433083173821459347483265295133603489854906623316089139645779295674443844743771042858391362395817308317917382377992437385679485735218818106845138858116983963513489944552348995401295736376807910441248409040966090244753878437593126680218203148465264803434623278576539146335190787224742964385574429004154646050628778792655248181716201702448580869401652643421540689021208329441708586500908377092956356159550212878390206516828065149412325413449565158367166726140691254270722636370887272104438144427376434952926360584395163010247540481018562093305610728587853146469733387324982678420795678047325639102109983077116091552576490721352946279546096834146922224222938925756494917036269594034644806597760978679640524477458873292409098404850308423260096419770327918086832009801312018212605893739653624725798400588821160985619806094735960984034345260573260195158386123129024338769004996620827798205592723801688027650649689546517711561659129673991208736665588541509303637725530684981478220780574531846769059556426007685761499235865466484416943842704625943667281116858042597629047823623245502843429295610607400490372635251201435191945697210636373005517829835854041653872130761407554046497593892398886169914220079458217547729783247251776740637455256185583591430283366060560634560464932945374798191845235857779605527822637357300579703992785939953610695813774543301037258991444465119829250228178981463601861690732727830990098677478710491234517778301396099264941650799027825541448222132406128413718273167356565596552772059500772755427396755847969750280497561827548428442851931811551287616012080583071549317412174880274160644014689200044688642957953936242601265495669572070523344792779295146743851835986593856826242545604994209201160884989099624559054217392790064678304510817318671974429807444056598777322243351762013410123110629632770075532421155315481465096759700371026211317889559401420136399180739123548960439770009093815322205867671303091808372615213995835789133016067969601506704810849821160548060910051792725741137406148376587957887572210409214311661011284523460053264599564583584691932366706703071409287795967416165736501031989275965731622614493159726748285741992989925539709355728517314860613719604056508477015904968287266183668138224343420070404398422735914585580174473606090437516762398786717508061006787445192614730391311774037308675442025923734267644087193740688141732779104950174935873504928286494763597807663437812213487486456329268347438079201413373493778199887350863964241831081726357038805624384522197722312156361536081170311715451126255921935773489624200330502249638312598380983482030942324175934704069996558390597545889928773222630074331296990670389010701668914699465506353254836027426947740948027293514153803110987770780813238649296065659845463620993775830479280710567689607425517495720733946718086134559106925569817305760490113650794319059637776025659002992638470651688539922755551125153762073917540789553142953003149435527724985316535654481498023311306676035389813292658315527835044518224760917070878551262279736326970896330864001898986930644506347395345465073117106571912617743425027809049404228131719183725868690900205449130695293088796458790221943891107028653477730546095959781615129168302358241342933914945672049002452846305726847873056647304626448324801015183260283113409071881001028157730519820597558843257385503770208573210879315102631718956849380141927326358343873976816650902104778704548511221688810800320549668180658257028588146465269285118725943366210809532736945722887898821920653568267021766305617139033003138262427756748904073660161821476404791645086465076495272646713905189926602054970706923426279081435151480913625257601649616580214591300111734017684515783382579584905289427098026763794286238967016215235219608997539920592783832573714666923350411434182964158114172385643906247240553025471893195171977519790805304258866617702266455491797355735617504359703904413620785744234366808449129493764737500427360579412971086986910276386666429135336818630872337855325722693874342291473633271538553289186954867715943761886789968325631825705179705238949818992717116113540319913470247408798021864848353745414131847824970636853604396289798893236628138482700396121539439597377972995162073373595886433836375817384201071595614566164832360741212461144345961072436571463290582832418112187648984573333453940513800583045484465786989053791142223335967827491217058153965034995826751346627872871881645178999196116068636533872358031156275928189268624279767095838965472444526849479207755367808356835516535724768410688387024116809139085584513471743883414076489060274086033410672322468660428881561064187899521685257287638399212433987580655839286707873648643586798248594944989032648592488490264643681169382019486615139818431665897658874938149355461618974421412975109631273332409570904871701134080688058075559775380145178048575657889815406444647346550418300949611502432602327686159142342566461869673496762236341309237415688468697417048536621899486096122541616225854837925587188280576006805929284331421168874480043387531347325314589467190813727300855767344905537992631746031590189808343131059877278902659723803168040078385156660436261127331365848822695802409209989484052425492439543689015652350721770835046502781986187644063372816111929222523040116691364572022367505439640267043034128734016079783547072566291509511498148909155391435055579118884160508504483560585078119552767612924619665333542040870938032540302954676716688542724131413219788044804333728675237662787574867077367774228649015449433928506263372672896374741786191456013195172074622375267269688074168505284678231999923848619384875858334203842640902967122637075225956314384749854363576501348843416650743378646352502353272415808117099857714165040270779568223088969724086019639494446990523157564990781240891918406061393403634522849639963907566849404587761873704251334376040882245608142240679962642572858737620280222332647978891014843614148429473765456630204663588744686496234826609931341744029650340474923991500152892109877556086169658984773506337313947902467617024150770017480507664642547977829441971385664220538911436043236590950525158989541152580194089126120025526587165524606466040405660088228079200171929024806661832020627681818348121359814567831522064414323558452376229952748522002063391483740438605486634701380486327488470426661497662524567048643203707017195861450321953563995521173849672116517884659947003628644605986803232161902808567227210619951257570054545879501659126368971534701166952543206960507082320671432879246805596959066110104914180902129492885620205623827422036534480503004837351079793500262714934834760266652252513575518566852735554595107690154032361287054395408846354549323825314047342979473335436748483588542631896637078877082561615339038304504831158391805851427935599162432104824316220261708196665196198410350776963957641207957291774737064222515152032573969839271866703626207221817729944216009874709957275555234064614650935821494897372404651503765707048825847478218780176340251117709618914428575616864863454779995161209588207319637019687634829379434450190990370015187266990770200287941242359277948595168917622744440135579092860988904020713179510676058002430514814569750130173592775333088401770047892078936648308905212199534118701303764385862939995086122580880141224706636396496385291420177695583580480671924215274604666827910846215283816647108384315420620462903045170110285463542084192460592333646116189031334317461428312634141844350590918899250092959146770114436904520201963731410557594467681849379747829510089176059164815773173411229532622833268322301867694310944610711041805052094181637449042348373556148039661278473927556072822177616257729054256020550185992917434404086320145821807007199890309972669103634015225951097567275245114200253126529633712121833345147230512150547100503654720702064586079873126382857192730127649085167251162293086320574216400009444207650864395735836778399071656178837098954314428788487911534296323445442494939244879120276164661587936633170254934418409539312820909904298645403453811608418614995793769017770397412248576086753653419934533718768466555579920095827250102345105495834963188331726985334461862124916766786547760874916732111815398674319832343650643706650851726794509467118350667963851173546290061103184422173587195654928002115284797188259081097179114654404496618444920111139544310318742738866889347374568550593693477701169717402198942628535718112165054993995867009323961117673738042518747278750389828160907894032620583085070990963696831084203133875086083213447965175568649017056202536008401555506061170966581743755215237606489182728829106522167290319013129816908007876330443074128606285742217962769483969193268807305223253132481445631866177518641258023835398156867675529509307299429387377420661530583392764535716675817120642654054387738579948115289850399531430400173360393005553108985849234148540812715362575003686468198304858959960564840633240539938360204167149918230594312148170516852705357390105382404677644643895539179993842055667420725702371366733139804232126909486666226355289251750149221847394731107998772259031436787389414352268956616940475663169286289661089935522546145690029661630016168115939833456762456166504731787866283060794766003924074192115068411798943696510416105996837403639602665806893395084738621289190403271354735489634551942414709827889974970574340741830618188102658318553557378602031545048126839720627594646851285865049192824769236851647190813063537287745867036761595707596401338172937910087279559619366976289161858732814298196145992324376179575650993417309535668608391461872556586048039004250581821955215453254603558793879045107606504051111185311507311217749149445518960171853820394897132244546121558062141741974816867035868488490262433110941861687244414425999076707196928184360728662129874199729797928753650596933798330802196527966270699086827166946405874075269909858311024359077443580272536356493475293237728834026496098921855961900424714915044271442752148712942300924054319095843007721678688324080312926137727291889372458672087171911891969808351845375347624105207537503727100499340828404455439283498792598295567431953345707961268219928682109476789445991288257205091741404056145482510981701174046331962644398178778902134763657591241533155293291570278143376767131997958836334624278773607762946877063126261289325687484073175239585512868646269793545309353543596357192562572886471456590147657862853765269903773656089756068178374537041388909940831982850189631833969194891123803928457285643249207414671235313147210721689750124227934424889999794918756954287561155721767144328057369662775989483077412320958769152850486245188841852502596470283275169340473723532907726639931498552534606627456114395217353143242408773881356920724105697040844667968643317083857320656668649235080669258512423588781311423984784365775440311362160767913932726624424107744079178036352849738097012119254788757886460043313269024384065173395510389373368624010089873411473311186007357398742627374542059992765607864984693359609743981261152397420503526059200151941752641937887022064754426747487620381303121818446627229192452254008888158470822052450620115664122522370542182853451335774520943267306045955693056820908534472622172822200830035939941212153858230586289817095357275535960188906577139582085675378671616713850492172055301921639754333020797174356586966749597295140364736529736664805837528846776780838334404929414066497632577014156233639822807523392327277016059471368506544727322361978487173444310264801635301727965584713015054492854546739773866546769574831469470587178974765929002657841365067966543078547682673380819677817611995927595925532535625376724825855418330898316594985390290580805697915675225903410667288217036656756549609903069491901053312003599446472921929252209108738053892327549845090970433225473372437233728504233750648271780524297535980287892268600501449601296304305675623131078911121922919453475929170420166408349797967034900204036423626211238697545222081882901380455933715979378414504690036140527434760577889681123792809090670292687993425280602339142558030707673953724560642447217427435402953836458521129505669749158089673055298744232593438334309634454272438495637971647098631791136214890500110677235911092396750420805846019056615043849731935305075491373385925024687005600431204159532054348653144261013134026962588317630061686940944212605467565274645230283436851072685309473989139320012371202212619452175363040548777723684772922304676751316926152202851231723472353404028022187523538888698865322792635480551771885884793687055980470480960441000536079647746909508645714065528085322722174401537228795118428258174943917603531727889342315975414563029826749321905470439162263191416120114443631637071937145030349369221568347551082174700518187595290998317021926529338883485022679794628945872013668128000561608520141416873234683661129957647602261358124705442061532094940187940851854639200372718028657203387752611678634472871645622314816637961358382132659448215246019313426334445803698589880788014419345557920203535114054020165355409917799761506988376033601397428745051437936607867637520430292185550923161635905111639579690872880619578048397386454337661604575860902782162570058326212051568482010724636479022424642027491974705633317116963357600507617438610138920119039048118777457773030780704019194597134974363400833705108168936329767631395524264950943358199537559673527858320296197612405431248817147447554638543603715174788435762615138296503368265329061529279815155829388629821484828213319925440110960456352853670875872946979949825550796989504133646052846448985074900959661538739494112806068148760807005644344188846318765752013756165906967228893004609177123801218222533025780603700967616507878027514235148367226282302030238262753149420465094005441937390637608389490312607555839963756973280104917407487066728026556338893095295492006170359558601453570366364197451401610581145644084081152249788814580692221080155500693701500256407910421273668631052824955186600911142229244723020352231754925586147389694714383225898999200650024394030037892825517535369293469957478106677672455114805725567215054650066692675302484489955141444613563169172053841427145732382596551598536584205386759762606551396328579652115274939607304607675180720528728259319630087408319484984845270129381337139764392589385306794215956780376360492333288273008681399068318920294865198636786097087271675676047886608234935488303055041762399322717613056248997459185019964480102678004466815645964377874684065764790958255969368071168911778307175260503148832876260020383442581265128397732673253401092475347366431916765250105418511984286055154003247366055547346783239499206467461915644637823563114267401874004533642915241341185787399602050104704970521930319930865690384709510674116757844642027348987427580035202486618943649308712922969354102584338192292194718670997524958647301223805498233571856901737811630701940144433936205962617604349693768645715035785392640155633977973207261161235429017779011561902743611427490632881572349616717953171754267167889660805909879683992333401370810421233109896280295149471311607494124441447998700587562205650642952338054519021091105466046379202097935597919132000039015975509139890987945919571596333900368478402281285068412882668545410074910000271426992033789042838441169399321752673493403191921983594044796287759790877430332537083313019849660599812492368062999346610704514435000993826867075490736066131710528851085276935796497447976517161108794421437994262698164067756389718570942723561571994894997678889919198282900897602808448426644320712892178610866261102249180186046827777661454352150832366038526375042665800386557806231149939162547229527570240504406886481142579510817982278573184772424252872230516964723141068128169297675606918233562251896816382336466386823980036472549316645953921971372051255331430873839212779022491879624370040353356720961325210356733993403392664349726144008695240707292135676639945680755542825762792725957398122671058101359086720486916687088717632625840276883650751275564250288749001787726617035207967624991120674195493042921405062049949863888380861822228659929795063978304397253990952277541046462694364822753722002812546344401803536413315037249458657229214594629971811046096079560950707951587243356582998506359787381647995196327904451758105641071483006596483598852091268906324988575631701952524165825270061700141867981678616162551821304489713864437904192307758986922164558303870598232442429561406595437660792558906108030524660660559812382700583807304397763884399697803907886840883092992008708976451612645547528184218047388464465763411184629557406556478668118751752912960637237839032501803430090731410250236284312816879765499381077655419027002901021377372754855602109427540902984198788274306930797275737007458072836326019285128148159104056833626776315321220048914973276172563494646184962778875045519014951856902751916601205457461425920237707052458810102678166045277398801302790330143004994643164960794033567006653793833750746319384197391552935211335983541834498105640362277142871805716761179152514454034642811888627450933345512787767229350470717678705585372025607197079010189507511404039787127215394461522238046440383149576574718850456508469955491909865579207646258208682892540032784672905985997323683824306019352965481441645538789195227773702555504743725165005475887274332927357516785537652825684649133127672721912438840106391386522399195856302974512392164266449415887175100269020998628696845380483141952977558697421516466401330391762668194870150995738335628065669031550164619698278848716748019007150345209131851362623041879658211469506114801759209353130584890568724653533153822905766291914148498200390340924349671832149034955635657391159842900451741564982206374700453247429486031322341231708775702977969596870953278810823038300495003781793985166693233401976143629063973784958073235434739636016891100871699273477381711181778416308610712209092088401571982800670856963115349294773679691303868024858844128657708596418113221463870537762733033995737177484139742285555461937511618445280294094437539256218512142392813144743147029375173891616699615285949629798146137498109798008852681195734558923069847717710483572785097397198428296646742875579606396201255020146598272928296450198519955231756629164939122287303813280903682715082599669312447510549832927214657273292696960479481456739129694188626573664338890797457072124651349707758384805365250966756018996456628130663899664742517984130323766861274038051172061471875449960382066566457506225782535925684523739457910333315092242691802088086252615321846377174227344513784285273909145171413094849545556884309349057294395409336658582098508850592903606901103062762574697667010191462253548140061489526253005257443259320447458253947576244732409193241252498421135087908673351573813247609926298128505513664312540625218280174372148397610526039458786212349836781641511617477971040786967509071028398962884324680705539790271588153456997908474312002484199639102282541788479103464893358351858497154762064732071862099441763197445208698118837476407955855348221810291556708753579877729533992454230325048828353569233044582178936496848168415565578149168816179018726430127978366448234705233140153053906116918054812713922984304846432352872456261406351075840853985307254193312296383640145009659170324355112520985705333429969620958797024747718752133039311634828818819824463189730883821020253207161587577487708206722067163877257654443437053364213483027966377097490949268043514868581062668907963207183117536987925518424096558846413762344010671979500367087113622710656265589613731521820026227243284249047522784454722352551590717489905777610289875018319921286742675809446126197521220920959792819021929201468942636153967954533152040562375947173100082281492715541484986602019229524977223371542160639523642961658024496063832374448052207530785324609127458077307462606415174291092551136574725933234428421114110047388878761412611106511017702964165752207303417222690547081099118373450739311236619463967208169910730145678825136813513483592948518724081302733264351084894694804108586412846126605607937207884138828319878506788474754902595529383370996823486671133149952201495889937938964368381603006836877378354339370595975058508067328453154312988672109120264238286641307746273347074337303609425623095693688571277599142099562169720223696356980508954829888427782837277665233446868666706982031832566926958449432245463474183740430683314495420047808462568929970331004169921632643825840595703524228925088261453236133066489084549001525165491320080098625404395508813662175053140974967495974812367953116630623292792855430111257034001157048655771275426660005454808851687802780789397588605242007228091093888978582949787136978777571975461224527500346933803027519046684444776440817297206774812187999744511002307621142853874655264628997793775039073820363836847005191998946125371500437976629438169116443851889082180168255701068896986102410911231493267120304844532001901172884014559684240894903429087015585588297187923787163734074523054635770223749565913264543678026592537752304672774977255910963651777679944252743989949758788425188082529902355369004604163620329761833031449851966418175140534003407077248247876635311515521312740162608756472399883394979507746429587000585267952658733321122272948002901074935291398352996752093567284224023120944942159925524029147989983865305819248854580074151370028990206963017946962378182146135077245104845613162403928747019069103894663205018555449049083738491445395476886409561362781056355327321047991025402624724159911476949583747191666679881607350180626047933882306565060450153916667063023837181567336000169740293182080334006033551563828460460501148393096075068153754194489140223814382831993187636910812961520691925097493818582306913276951717868175348774417074270311827276679765240365379777576853231966682126408194899727602264122266603575918797415892714077536647896877656208109082490168029067379508773056988789472776774968515924190249676337829010272367731996318063220672617630498916362692104995900677717706943802465055947170359867364476453122563263546642077380436877726253807819295031517858028022949025224127442403311026384518935070165842568282591972145903134960183512228186237016280886330800588746180438666385126264192442545000290582835612250277784572109044654610282889621885861116993038708635850682052695424904395541611444285750069134817120470272058493248600994173420012965202390696324391338552092093333135736975980736176055512080094309944228693402112377025707742084229398308983246483875984660753282039683728862726984683872458243214260928583714536557783919727387132997392252274278734374642570602082646807887518661815046319030457701858740137073800243173404069823978005810198482309497722616636348535921010711490389958035961980350741119229470898451994212144942595268596083998610738566041670580879990540236376394758965751645784489468538722127657112650492386652441336979468705780206167737836537095180732872703776317070340016256407665239929963793388973996357462207569101845288153198733556131088246064654567231333642165383474917573876628047094996624275924085511376597358516043728662731486697928310425910882447557614685059089805987865402832230455052322965110200613060171817218564122276486351842922892121780579165548411795279045385563693585047806501855062244188147228525976102008759117101347815316096922758162304161834180412253861428394195296479310679110342899665632002679625351576832733175834763816325454379404604950213775448339417556989529365424509072680032850188196563791922404179194498558610335375287507562284021003679389363417090436825759279298707150320016529733593878109428936249924363853646564114716239809724625540704686935255109610949989320731448752735826626562355934661709939610299515834679201652161215036893146123706400882701087664845586851227288815849811902910048152651681741539600270694968868276869129004174905494265011836853023638541566732483697126112421439914845590554848956225064635127720780429323452169750062960235364163793852635917638950676983156714840167610279340638452954938777236471292826006532178585943068881005586843796118379616399937874997188774936213623644608845412086114262274511342016025535380095657050746991843180387456748497965864612708358037086293806158663473926979852797914041550551384008600440054610136902334146105055735996940780436669492211898982580500086670141237879298612676930827422642803561169253387510270680556165763608437548294210077262853249814610555158987493338765334450482838919288623955712004629906762407672294690710697579613454360010484464067922551031691094255810334402670262800832773391318560253531214256731559803513169085955926282677995245133971784355634102874854256000834869513986406926811078140008501103400119845792652438234297375583742569662152005331550285998456720744736161003963118295855293539687356964959744905538612409827461804351985529342241436737388829748434711916851109400997125431835323889607322623991542340596476955629338322000148796727039156717771408708917897317452702312287114414688793345714028795757100928227542164302954387841718624180170811414919737195442901014162002102499108908220356083916200331542373214417033687343461709495622568525412640337893580743861974824292451918809082125221476564051262535851936908120816422468128891331320089323544331261906675211975336107469466704354806387333169667109440311381802488947558521522737414953653798901821573906067064168742843146285937151814240930996609828715547531943376013957024855465056165793667979123374789528074747299878085015842013329231934180164330604635452894076977790078712740856005767040756862226810530624811450931847552172711211625842584448474272844399187584128695247911170249048213263365189593156119393287810906661688942807793895841528836824191844253915112132459386589415849425083395979588563099813654946913678938861298898238907813976722038651787192265776518588853231536834101155603815221460969028905453553336088645198714819100481445162935943266263443898035292687740190953636070382727710806278741639666340337864334870652991333891842175883409710528190304225900047355594520990900535741613804630445774038774029974905640976588448665877308731537698751215045644083293031552856743023427537834183931754453821007975202220276588274177303240820797974206472848853599604074675447939126625047694543091100482273625256316977073959792591150649478244814906178005490431591480156592725430427929755484658972152054814919812018804997819047412474397023173269592913118135096977324600533451103948111716978601868463626084839327168053430980477063103188089003633910697738476959693064434584724563287219698562333665742461894361260071219083887640042665351903402980738516814371328263044920855544430033285168784851243547697688881069436217899601305102450390012445154690354308562747285395388270580457197506123501227996865368544581260442239823259834640285675260302712397276645687283664770030901288782062323882632301467175034996943680722823010868041351201408505806217602995227539448729530192199241509392758553431643021079171038486618584831408590972093673227181058665665887944581225732396247701386782082211532106553938209515269946201687632668242800287767584042920286756881422246499166573150537530119950605456563208188252155846513790417922467734993020709646173592939962053646113128149254227179457235050666252592152151000715790478031496321534466598419618718717289592601302062679239409317095217739776335016618613844373715434296089846627926266633148925015299174311545393311049214129934183613862604163435959464597052785978434912076377234446296697140007612087199156717733756616567789067993164602934694959522189012876889096350198741555458959334695583370027177932346781415803660798970529191896951324617223540555243155061161260778468381150522302495874669583046840591942361990376283496299682470272179969431644981511206828127464078902546227253514625633363213963901922324100066610824625962167604061855675197300643354774036721840757986432234092619646774613791313577074396248471202857573858242575075361293595608397411781284976161728525865580218664342739955287139429275709109045777341912494331825081438419017789826147914074266223865323937852712238434835705356622104097499248692623526810735185609878671324917827821696643425633516321240788942818019761257200257464668365310434385722446769836951504367791400826144693875165914279374794172194200955703517218295870301310838642141230951479535344901273640659817536707777730734630956421071031659765651499813937536925411153397905771623025814209821004627234689318350946322650838223035325604241869567157230543042712632711318422772762274828215431528954518926177568147213918677200614698811744954835692884285027091150694327169878065224498220628324678280854158659166280736399305323921904498151363519249562928049459132858295855848684365111792012296132859370419330696102506809293858511163839042428306882835373255945993459570480462076746263197825480106245558334961026213618008148921481597235722986882743969923598960632454189819054239277942142175182235147689700894511503694143989428819369901059166769199566971085529779022389482378894093968802626083105293803686764088602148873273480300741465281201969425659369990565928586608725736764280735994895376966446192038592035433568611146835275459761285755757049196938979914849346628589354809508282565061548492047214208216576893159469778268092104407288669364657203375871252962573423108144422146037804827741172721360401427616107788755378043897558876945478938068110078496456381748571337568663649536410071946922659043944553591729844541943412309855876132019482196948036664189700980414451450392235935793532198360320913183969833497603067039774385714064460674652342715302495691212108188500355517784628691844485299208595745897407329704003625610722618022318750870653818393692038290359271469498731816339268003567496377737411835007495413979652333544078268151446206741812635789083894460373649173505628713161339724377272499976616233834489838647848917404944224625079991211914159683460565826439469495743917449677180993626677845366058631638757662344062061017159330599411711494785104082833577206845416491493895850532936393355757894133078909256083431492085024996822697849738223165047632731159534057887003152863356196437183349773076927830703719362856693377318904528346350900041721727053179304176650340475211353065989843530122613497067723967721348581195145375159831906062821373654935407348254837586859779362325079146201220413961888729468810956595914926948701038687912424645031714263128738261591205073105167522056442179402282030818774057996616107860617893162106696517204882906378749889309891276157935362525969229526251348153317583177758467194071556273153354142740045297679484486048370131850695445529457291516425156658783955234365916092405272555062518437042743130696431782159744345149531390907688043953744364420035803760164334974421110691257430186472031086403660944683977282232798686152069492272458371377112696294698474972950143547679475886967102091292193398042898888404846831490956740577917650518373645079945726881357169264317412089015053033724902491776427339745397830337143090536008956862765416619078384076187311573192694268538716000880795746440679987251678528360003256473989059340629402993005564210472304629430725509410838192348466499779846328816298231456624519958987778813449344977121005594581959545542656090258501267489324748786412731161915464527650222926278849041842730841893686785875360685329672926773943250801371306945935481443658088282185291971103987166036181213830495838870558556334083309787642766650694877213751737530315744754539754800962359348641378647705375907062616080964335116728689608359588797084279331443570623035641562494691283364940337632066789602676625886207816073865550551822746846330269680515139453908207543254694787298901132503042025238286315828462220374817277312541048446219457003994562736900373382892151219725938113674228303751504836889267372805930550784184712778472791225577313103019274067570165752050011046179525852227509526860719428420181061941044438494462433017465114876618081834955353517887576667936253144971442927675906611465100973082914522627444585010710825849331280889970995407105057207625261229965927331647479802635198082775666352796309012040185156419759730915357447686160395763548737254567844119633301707571550703438454447266299767976782269567970322846898772920076044262963479626700461930770903331441268673781754315235655092728337336337211325413481531352206731677249264096634609050761191030250950457284848527041842485388062509540182618715091551034642312287072708210275933721480857447256901941599278861561197926447591927279642628744964055230733531710236451054077071207767570988294108756791016698001375562588961178888291598024440380130987541998794439061979472402505645180395951984527909287758558767277410385460854050361065617922478786110616155547079110190540126836232636745116535983523233723555450940736815081849753188191104147911911480201908174509247786196277181399069762221845785598691471063507793977240468269286775050402692782772791190203579938098984489325499632299260025865089474880716895126817970515124314503855188470417660157149688499579391698797473205954275928180662966999755056493530237418847248046521958909959945611818047804329228121952623472197383856339956958107734466748467146551085436948566687397656848027103042710113259628744348354165588411282925753038318473428075199772347666358279778716389571141129359977364686680537089470477201043956263919294732643502761786955150162804870752942109984979646852659696568015822748259385094708633946330862577253436352415190188364334014938377066246893229702694618040552530266015830160276372646834534167909399713487517474732534511520380160571259849396180447856895996154643140772951710424005991238065168963674178450671256229616459419795141625183945142628658088926542846164306617179619390036670893298955587371069510440120008171572844391912532959094281562652770043500344221686243473871715221484173898176216784740103775038261200595538576149404388061171025530005543691788409932539153839145800995886567506508422099390197551026822839996236041554432355115543804320332970568155470678841682007084349316504292289224807323229436005250085401525210572053593121369828055189973923472360958383874867419113469832787501067084842001927921238167012145836998331328246013980565258930008841501959830445967348607866140157173695369573108591964898098418196791069400662989699908827396330214965668285489753662831673677866252869224070589295680871683532762342129530177809724554579994124905563460223250910792275948985972749134985441313187566275876300281260888085080994602123193831464749974299128244115962264572609067215231600768087320530799716162758660154027816941703929569649644169732713198517542618496169942107611336863668007472259518224945979901052029328613172695836464897064845799273759249590120523408431513152179456406812426691720005661884281363782630215671814791916342690919368615706740899244076495693370108248968607658057463747100902031757224279321284536317893046272262693931309175129665233900623616629105603262820767946878178387192687035751473620696558070692890584213398205439783557326126789281276083645340695566964287529020526605051429090090387241921081117361630283351454846128643714229075834217396572448763640478258790237688630194800066699619963044424981628761779717621965306099499299199599976962518852112734998830948899237191933626134231106735615353889100379563517251722619125576295517617445266632288176753062312315536909504308826179266006672673809536044422416501504387734955864059441229760429383862224514278920805248076522816628146658283409464239798033416585187657795511666025736387302961980713169336165269340557415112730671946104024998628806151778926992118835664530241688460510199804732636651986706993806173747894663381009941833159070279183377161027061515812296339222676525549561392236798172346799409595408200618699634966202679222750986877428443987720910827979229247063260925133334125544375264054315616613483757583131011047041951267195950241007939841920394844224772152189597722842689210107381132575849122179770616563788027497209140131100683982775535909497199856212995822149618145750748541277643499194394864693646605325047770692731634160739945156032923967872411707181177417922807740328169200154590572144735407124598334941597294809828114554718059822686456449364022851516904546067002313830711738631124958382525261442846069001126122815464968630889437952394796207060152623604509194298224803122761315227110618129190779700988303727686430480837118304323852559976216479375770570356663740271765868498573542735580604832152422184899771492299488877396332608074178694163979929748725847247142384939918740422514316800360915757723819987541013088824222513941795584824647650465437827727029489171571487430924896219293494819061049792099599586699259339318452974489968770282427336347967378480009096808964940974253093599229937734507802781318421973090679450406160895357705621270303024416326630272866614669649389250066020123616288239687175523127563674112662213146524657283629855935388176273399869879170524441668001239087953515278152927144774456297865571972002532211090382036654762924557648047469764417038748876805246863229249209234567271296928131303738524540430430737617091499754035017862939554201844415843114338048052020924584833275720488366672127465399134924379102756515704164334129278731498594802539478677383986682133384073263982556029942799820732022696137288443708837444275509697231539766392619930802365483150854272021049136656512760622067632079797905559566206409656232954738540225595459382981608993783968314119174497138271922527437619145792765144244663379206180813478759695344092504239111060369794296825904855104167020845648625907068488945320742195976393189837960035899863184453567459901004524565345447318137657526282692834630251549623326874871560334186506076337560088636196387387568465085440251850686842517900221641010966411737100059537595571580902771602559853767526912136775985644008816644782120874786157922878704429357923900935619391065818433251578777846135890199573236427139020404643094139942691242933768089755481860326245097630203681485646931502407593419703543392857324364285864920634590229878198767007238673981143401500509858218429059686873821152086750244820326304847138169618824823919766217073634420048885057204666729288956682254762101227433364576408548785391921749752393447294425447570706353168012933860646611366124580657367674198872495638797378186807092288451305445188541645752264552989573469072890506522975820652164295032844456819444439375580871112827444799896540882622675911213869356050966775019916925021690922363782989876846026270878440327375709622655572202594470427474184163765131518498861327570113828902142256410691813416051591231499622675352244423268234177927257401451525331835444226735021799341877163267890220673455680875753504282511715380861212610234511498157565795590251051766219358054369255323538063508820538706999985232659968002988889716514162434659427701199743473825809584345856210517202758033687288462725177784637939833539563523686808212662876082748238529357335614601373601053945915977623844370581853196044572124477416162795336378478263438171681443601426698165910293696781842920420852513774903414789827884001459137161003279693039244238504746905109209587921931722944943752935532761421327129981099789099957630507415956706598217686498967114756197748302545513824803448905050187417979940442316001594536104465325890074326223923813161543962300212825156312557645377485143202037066310230792386646632094456609586875812789518104290022223229772657845962476145039060692551473915056855272206262080623400975541050034950401004447807154763712621157070051637998297099059166751056829810050802690337529533252581238483276769065109371559113477748276513755451490978842101332788582045171872602547924482449517414322683954628849804744357088425035095324224772826908500378910695773333364245897757135767004342226554830776475188613052133244417524807470755232280501646171690311016589914431399049724125125408150734370702077470589720831742681509012590797921020742801644277019472427246381733520923907721427529769371458378643944187211338237159442935182288223323426023335328521209136579595723530450163835114049446910955426194872193183980275145873210791371682958781077372620383363366682640140431301560840913330295473296770796664847802261851082598384026799109502659053398919119672170346049028196395012721889982046769749001445443346482150264919746375436276847530059065709454176448200356911409340916605199746182211551290315861546306336104617430112810961501611282072271078180322399604167879243688397853772626109009849016657280131237871415764535599431457523246072976929182824710450832232190152459136021869477697521515951190721517704989602599206206476101838108129762782750332271996477136878952239241023715809184295245049103660511442861859436077965354354876322077061093736345745791442174012345883257863521900974872616588435428801484173437855085945909653260980212319198496873949695100100706039978409485723866440209188245218763107024465946589402918245424185968234709609304904683865405194372575200706811020430957443832301171141993413024625359454385334670699866404258785252918340098523425072175765775785581894416540880590826845974920090820900892921652276258170380367444896060861939658583850304820395513956054354264316099033301868886873157459559051987229401678778861642619412543236707601830036428926916260929858682938533497279306607597618727353835212618913244927478779005799382689000363104829199725044716495152759077393044782216203291574079290147763815695567654942801567468260346479518808033776503192377702503517798297201688671498990082432826070287453614660940336003430405305135670727838120161860855606589018245266742837262169134570032259376552686065228687257723731013482792029092567411051971648108909201536348785640418754558740525176280848083236832176344461841789441741184746797274477540810416219247994034411104205304800511803443710139930633312307840376557144737326041167453685046811872888682099338489248327956491375609069490137101906529955964283245394114681833388049359942077147788680610380986493530448125356654605959278860866740322946917518423032399975427441637360308501437461690322271600980175178791834072595246091955392594524982425098750393359157285189300022535705690033372664271787427022394360943694208624405800640359230338021886942618063828550933421959646374331673340208897699853973730712590117365974461066074218078050571281446189118725808311077044679553948352308737434897023357420691846581764558173805421061760647350799196464471054981765564892413402735533142466337951722888279167637839524937963212846069139451804914967669365518651100059732257742355392620488857207432447565730924327086395362885199870167147895856638286423129080634487449974864551447071540587565939024222933058846889194538004486312974148451654154020205631047418004912996732763537407021642658605055478395784721554725684830945209180609029673324169043465387176640713611994660431989011477068366433841038534475492300877377342406527204207482317140207752076980242830177826644781563391855035394849034563976168487176298162027948348530992562060806995404843874600199465378911705395272439563484789680469334033400286589119017785080655478990194356025638480169116834674641687916371788823126383205460686397942950766400411204643157507729550948779569435597946689817086270044053346680923435714435364750590943816914277083530216949046774136726871519515906751301823748979169801108905610665137197358955105377738085082593018832609620455999519568308478671940086269876955201538291331488728910218864956160222854278451146373615408925519660272185890685997837047516426820141498006051999416721238238659903822722058129717850302534502803497361527666233662602296491469603962358335327908089913096017454013891322431770104278284489258668576102209494324486557339861257533517799102370945421923354858228402785462553121768404427098823573713585802524102598245373044523693458048891683605253663503770603552013087340107710521892626776711306733408419701345342347117057007431780210180683908399013475995226149244717240322242618488948177496062293602255327817348292261113812674188966987280908776903055178381679791186474265048373331165292627526262981775431292775796124395325572399728926185126623492214941273625326790093093865647169120405514995402846605723830444232970526685439838357141760974722742233580313855387137658465405158140896384649277850626708576806983862461050321322484803857139268503644063647681302889927111663088012708078125116325692911899883788231811468266944702597171634584167585572936205778306834992226805538368981408949411186712782046530059995771335628831515514665613547772886297871564661574336932968113811462689222080580200376086358812459389825183472584423475502574849784132072674413716957067622932940178940024307944679317610894789521617023156102579538639895475790759056183605766146850787531094659180538852576371286997438234681960165189145279671657563943211055006338684735003763716885498714329305388853255996994827986946108079052291481377945637638438005443179732491302018079628422778079818191616355268905697266562937646870178458951339999081403233522314910124009500986112698410222500740748646765428507595999126940607062769207802654144896250826499741124423035875025334670865926727861581972441610237974704915632426228237514696523946533490053128950368365718798651242054531876742641962299852004884322913800272849456812443424292667013728679283485927600849844101083057463327932505235283095411653764821498892939629370209104243517546314479877931851801304677890644760304118843447510477749129224611384434406054966241244338294472605989627444985802918613378889196598991511389020910708481357609097923639306101804124127533779535222867650338011547098973858076660873719891362015203402560226700399847221033209214958028042156472421160525798043813971102502996798527226359935593068747249280567155946819619574452632287712726279525178940332288229615033802447676617511164764832470322474924175919108446489331898608731378598475558664010875467456306816198778447041064711257081348904862949956660013100246502801703237477328952345706858627445157504012164641706994441755518272868105208433181820538210970945282476377684544094182520988890383674871952473636732602003334554737766088442876457064757923694466648391858887852657629182067227248604716415631878280922342089478978475560725109803132935600447499935819179357313146501688543330609157772925159516303657155037281814369243808370740152422967621481053013352531221990758815284899868322280466607439516338295545061386339011316141921904686508798477405495884583252371040986164985193476793530630034582261629389580954249092929211449760415850300525804894256231268489478946623593693713339341219588504110233128513135567838966116928401690202071307500709694548718362686849616834567883528792163530963687785131877410121467594408795222041207702784935442043341738384125452193130359034772213280043462569402404749627260478099926491081879871576395708033594348561371333088432584105933125137912979368122869417579033872623254781876183323704207282970341265696239403531469380920860027837070316320152762368077897768119698187597143908600288013827195732668219680299826365736478354073230582173102647450589121490824840309291824060075606905455429993854814496184859959494639778357348309285020325545792155987412415794261455180580534163555838880540880485722022237214735223268546237829483326471810128054498879386178627872535597299866496578389293598585110108596695802543924315785124515933623160670312029711317837225131424009907255591601973359474339072696993027113605306017850493616983126780133381107805258545259003686237603232532245111993576151487172461195160079660827892611281222092705886450703305740373765958137655788868472289638984161616357294370152904869111268035483939433034437159459417809294343284604359017843508622411275851464504224375815958373598428072153446237843492658835617259082413555950990629636713768560362729082077219070824463177036910450852873205076056862328683471318733748754312764044694319073603491410768150006816490138314387229824843190575864904668706866620186093511534195786867864166706396369790432310181634211894937876289539553223598601512674753353189089441661748059064469041396508273394236186722888182279038117218932525325222478776141829107114093907205228788280526248535211597369060495501584704417767667173186790871062273366658467015904970096969741782873093275801499273142576572434712925052877532927063062305636456417023350154184311711108106231511413152528453557453320187848363158608444520752599204329822341814208717486820217231640209552635025781466586387257907835425107660439460144059382777890199440312438252099198787115326581681432819983302712717816278597717092685251151557335406947990407457718216784433386719608685309407363381409360545879422120178008657240642996857317141625336101363194343950231506868528964654814598564235516434990272329631287806712816533422330992896295964530439089428628797522130273100708493886056223209233430845199027138729681711772649701723646731544379076798915749204343433717754403927627825113252166286826924869386386341468304644724405793394196323352316033161217325341819404678582455226546045758309169529906911061064744653423659424816262714207371653437219747143963256536001723190232557160727593396642665199108084836037088492885688897708330479508743402720704509912046678699406977099976308413116470012804224526237656205550036067904151854742508835313810342303334092650907135235751429325429444298086424537761543923546189058432873517584896282888856622315404327336207045112192006079291417112939952367561278855397180791075435450011549880558960268745849760626958832687240987466121570848971555233353346919837068734603463549648150893165763757425824402278776271241040358581618293783798883889756240639326438138927154010084520417271192837810845980984598538509188588754542544414170655388885582595804177600423121014814779795190280521188023458094761556293888643245774917330071021000322039662621424378841744986266126079495310361541455064875701921809024431554353079694043127750806679098816176151228060999511368858948334942991680241490045559601060712194614899143505463351707198914666303562684752183468099038261403004666544256860166219234484509802809569513129903748383010796275638389062381214158242552384660911100094061213538870190516436046375909844591086603141158741626161432430425156782970734199418508566897106499286023867245057729638765113221822038639195340199482523727303127730756154122126612412554332095448673022962509243699119372207233562442682931825798226152331429849988584776000140646565782034052548576627223491848583414812751731560388342888106524688364662643069153979247749046045977231075744222028801091294734521708435329992839431747117355648940987876409432208162204705579106804144020700499214020007591447516615713978237688215712607509302918125699817992954112896475729212490074573774954814003357550495205573997445173545141835238728576334467374335425453166788618152225774135831896524841149007626550366941233808948698891697814638401615528793876960925770652160799053835904776917683171433663443018395115137706021696362276434389085935252353537831831401058002932419083926847818693086237378730986766053066300589863017249736848298708131562931976762845554805777488997368355766592406739977552970288363892202627133799174424960388927232236553183533678309623187883382074555586438550938757402626936554353062556751178460810680753432449481750885527796083496744515862142242605117918377352128816897253307308945928460582652142836661554932450911789830196151580748202872792728973811726367668932708549206984212707504126042472309161351473096138443921355140063385033097686864849284436195800686680383108100588782087283420103915661404172577631242868195775046227793306184914657391979040404261362706376318590220694796144650660344263979988495089749890397480722867892634861674224839976125383561031867356956346149606495040809202242169448382921744897277476908997598424139908619605426732541048511595249853493461481083369758684066590660009454538213347827190807080492898982254197207246430435729288410684018810734706515518145782415811822638490924893204575265402493833454227213816568485033696857117175648375438080157111855545587476363535025102023378735025409129044299504572259730973636385335966692245412933761329573022061392378830985303665884472567867746759468157895991843327701923495176606867930900811700790854449980486346011111384539441338646687490891297832742553597287078764162971020965554772022541965677539372463958902787003836702890211551206740812244388356636304834775553483590877295769453468959506638929018376926267156656906475494316307886014656600808884294277176338584447396523711634891900945720056620943349639928750157180673721236962814370382382649750329974220947770511194000600242129072232650709789816591013063742006706645585686663349545509444745138914594988727245344507043816463425894804711407740553033744357049154569115703931469537580787220792871383604174368017049069420286822991973333623297271009014150123208803404801329318380315467204935154700581852717416117753597024860607993752023986233140725783838933574017989799811795719536044019965483091020294115412521161303812066651358872621779290144418732699678728120149329419054083264744121737052979462152972905530075161571501980077356957076365592014346447906847998336382714294079719705119833998398927331601663140764366139056009841742565011932154425158557485305868116481045351585048154412204297198278632628246609758230247110599015672705848741050543968212962120486015201433372288322867951274630091179289196126748461801038499935557987428901984111220983525323270406242152405931116103051543858566306897128111292488042668905943579347222846814939487071966063406593143783679327341341950174322091525998560956169280439834712513640906054351769157923533440076908026942916349709876601318584349963382137884769707812312630814065217296556298124980833095518738231073265323376399873394462578628758154470325911473370233241325179508983020344421921047233057627521409369197169428555386320914750769149615983749619662654839172924241270508627911272613431147880817725283735569149174403276598328249819429369404637216001377694390892548670578735383158427011049772662198002810608620780936518139348698103958683052637689672369344542509808689997645722169774852321304440679383929747619304468995773682622702576392313485049935081869387635976394848770860922603002510461386688025526524587714359003762256303946655108196507257549574466717796439063584752271701005645915117683702874913925460201295928237882584657775429976022902191672437698530543175776203212164253826576318873368966840289674799963965379701104933458986242074670578156962509784209001259894701490916359064696230849701255272208209421489143708914148198183673352999707988903151482516828925878078155149135286526708202492471168682447262360171957978657432360489641675337383553543134054774665511505822529526720698916773388810687771524834978757691016347305071232349162491865243212187399063940996850723504355594872498154151744272082772189658268401483468602506058927022787921767896890421085504576774955043996751222715347997529340450766279599582005192949011676248538224451748959407276248087324202898109380345656628366279213472287845938941249198745239242608249667579470631681605438099463183387190104590659924577431527947129872758726410143713762739363029836776384572393874585701771027745604411559865570593642592266534338207569940371924696723571599306052161722932340102680196627265453260294183724058890719146094822484368018156544814862348375576652058398057778146806481295209009363353641247993539317080893848970205285854469467578934174014529945565673422666868471111224329150823259420508992632831969290812007811856691272169603900322148729280506310814271498399587308394822857625762558566968668333352433516423056470187402462118079513822599782106408895222818899381467110583882960934116731643798392631447474962275264825462537453635110436828197751038330980419158050365602374040402047116378207417693176584658082078060232364469385850711862726930574500702521183309286559823190795117011052013044999002411356405636476770739147666187864891565907455230210585939058072038458355875838816170711955132072659700232089461808318841317827818397562485533240824020257781100166933372694462312206432822561166546597688441157154838761501922107130093474684779103465076422086580464580156689028608005942121591929281135619974112353064492359348879300137093666049906992286730926156700497220998412880583589306081721500324406091206337877078478180565842960231811047780916327813923276707682746107832698278918237352043079297540471226509158200877203597982212074080612046667273497709384871363306283202399678921659612836854210541060831554860855010705581355700608329026260031780544115667454489498401331154835401400848820117689856559945282436735841988240679786565298991059240833161346611817314340132458647276943028453910913459729004046679707776715314018123882202138611937028408075015363626602259324436471487534176675155075548932339044956380850121164926130131300801439889582299121575397963711943025809202738318015238711306450806486076804634509179625808571524884315346779266854563900414766972457002445571387461307012600571994616415469634156297068333852230058350336759941082175452587405080313693633223219046034458241414379273905824724648781611566548479815818666133809218407953981707523194936271366171869764838250155125135547539914946215957451864686150664593081333594870152607609010510875343542405017727649722272044061974295254402727832498510055622256762380423945843184344107781058117839962212612868364292773950852141991838598135882521518448303342579864684931806587563115509666724847071120155970117203460567700098036998029988771213709457042146194264689363884383969156479403442685561733881853434073080282345177496953083397257504291534738939302092104756545009884820128076211166313046765540373585691477383114466096686638531436047066391956735321513955574571540900845468074778580127209523938435479034194982394546153745047490800713316236943846834428643262481130635363759239755946196399148745436375892733364563277000513296566000500528162055556147322158333203263492762026990242867332852082203879720537452950754676067026591535970373707701957536702576855351234289487138527212334601919802993786990899096241240087205575666163713505866643648435063604216359540282748254313063841822582891919487704728008037807563872821239985945611842290166510749586283849348513731821003054902601245522396102543677618193056033332093793716085190693038742490007601782879042443007937626676154588474277493891423971952721217370702455578465051523093971528336821109410189416951481852642650730053708179945671397161678018996013127605143286585871753322859945744250381999043668270669073077306106545423928984057092490411225170179675642979395760793950485116962550473123397236925713499291130302307221488456713742074751961701426774988403296119446657342563255577788864890672352899779641592110006321760456921126781790425363089410237293248319512982306843785664549844415865912021182485043155496705853434594263080560999469283701931815778960761017747306346915033685986311259058700770781909202495799657113850518455969707297461907021208675419133870190450379100225801719067448467595812162512515042156516273037656493040670581758955407328013072929873031553228736676107925028259278870680357061552435250909695220848446732714248162853646877460670059357202075307638262751832254211703282954443034885425048502229532359278427523883454057929608619314239551639343465481831521145648387688423909661511561734570391415640608109741632077420438142576548800250659293231950131410258474387724568094323898053081009424680593491672795734762513469979606493356459123554200919295169438733686940793770733940256535067212239361618324565152676792783669769906838324541245023104751726900999697331247847001653735637960499380603780888399407249019884734487425651926812368495899733589480037135053703315472982605327787139440353019537330418127372394659933111423204373556778194218409087870707992628895255850348059013540589758589022737285060954935029515090633306145534903433165409508591887606949838641960111434400613648436224952667690075137460529486923350371527080850659041522772569256361815993166952086189576688693996033241840945245673754545959407707458893569323205910742291080191430593176819705733502367960703798917170509718725646643548259018381291141543027759788516628668715565627178618009025965263750808059456483741934551885631081671604496405283635252717095221817842338222363824478047937734863472132791086177947107005409076245142569757002472382138556514339820624004647845216846805043193109127728374590996240772381471228317596238533218981073371778339056286010919260495239403023307663096009529354589557473917455044935684286848889011314937260770912180221952585710543678096272644120679080865449001124941182100332954148295688398549338424225979229163384570201924012730962822425941985114584038861251917558196233202294498207858978530564840069803315812162576264565176198722744153863265278168363218100273407116230958385486601802179055126189690240563081788857545690346722198203981285486077810936669229111057488335857468144973407780235167238028151162453124653179171623983590701863692962669639766743583928245833507061018229683660957578598685581646497330145367630028198468314401823566921101795088930196962195792699495937536646282795226501943310672892639806133964827624213530422103223841912708991799961290664136604147263195606569414071482070114481899284291340137465214872072081399142641504264290669235335200871367338433802834925816095193334263250666989855218805765287533101345376961719341939417416628421258032587186689517512475887072020398359721622818169495395776537172207976509637487274764006920148972228224858972383831362996974598452998407528777136320873016276458620650847593604662639989323155725974029653954514518658321786653459190835602300784944863121534998203425287579082119636378806220441096416693339929138128879804176712901238764130168337462259836003666927886697205046434006311151237459430521650704962982378453577807802096402773887720688597323562881190994866820187025072417535541835142650355264234433102418820564274651253616171488984623843238700234196657198875317343722166655726908876010193704971253027655612967868872230779867148738795645068829641019423673992268147730148482468818998421239061987503477615136141784035918463587979526318360679873345995161466554141381404580417196587059227763223665678115492369881764489985263642552353085091554394785249792804600199585498993298011930750424684693341463376396261142756926632002485629556457344770356103852008962165078007450558687248798290855964912919739844029687215331764405294379358973940028000229968012848688430559732050414259240719709418126782351449032894265743453502269685958933324050232660652490393501916323148713064751870453681044199637539097295476420145617554357880342995046489895612144712699635416573524856961767298558458722449469106078275908841513736577944215883755117372133240332774783667035676723979421583035010943164563387418600891724668187363211265754050247923347796244080780222230279093709977018518931306241313491258220617539191884922251580173048156517528497257392215542648448554904169213575283372919709494543180228225000280919341535431741839413648152703472227145959279890845450571311735828642891525720993082070068277864210266682240938880165913899544905643435568941373161398459921513085573014527264043171136230440730362475543497020574712978354262424546030134814583570500947950319456360108160659900936103626213231231732089682256030260835459717217863190077334420701170488330011566427416460577945632589565181381320820675393980564787488622210161488292294302020092522629878061546017503847865423998863153690065478788438717521889306005821050641919234481579264157212348871739474514856400009389500401493036872917060878268977769784644922511508254747108294362361603280500149431042573850177746806021385127445185517769344722710488514376232229865728181379016970547307133529676904177803021820676488225349460743063452426697079262718869667697844673235077994628427691167300417246098789218614849670487086733019279127395616525424152651088258149114048186933646452185732199545253815783119819723806193868846613828407025386255116009735313360697170244771392236497311109014828896637005908768474992198898548985173583180479050629487635256201088762140046292275410088847679203375507450101807673119642367433620888188721348263778793864100943416783373012469968215720115080950949215583551934657488235460560258413608267864905838251625331656715764119194184391235789649649241360859042557644964602176061912771250383299273863247742564563575543152894747824434392972736249550892254208001686283939930822021100445038842700403644971959601187602524706752870552617719468775435853768099787790875190022752687781968167787098036149634690530895505310724940538672588523527021174832586443912596463009187543422393555878499537580997471372429161370468957034225488206051255584811062368153040482595584351427674586327239146563920532633090306959980053044947951605763772258984971792590767637458494083262817829903321444330222826905650484004074421975586442646518474519387503246095152794643613287823485567711086194031946082023289908518962294581491948302166118467885286173253979697793051223339683479840420150539655227359250115638970694427791092004550549512793336883226714401970802900417165368987479205912280626280801083435030695986447950398149687216868377683906375508884253345686587264846384129774402990555097458949852508954342754848543408801967596603038298302305386087114082514868511581897365286596356728702384907576486043354288439892628780902619112122727819008856465880391722007412453543054882727205555567730528706759277656583662109178037111850784410163446556580449837663259108113568730470068601991971545218598454196404162549763673134910282933050140704357110902552737168006630962338634207251310503847048424145210158035327598190257125809940778152896193108454480010827597396189921142534950816972887898263351790181914591803909820083648135282300140623350868425483876036395370912948439438209677845643571904013272267144879390252273399251860980962024670466542778973053955718405247421149601902494512859807204558439403648018637556396108925746307399051450709856709696358255207075669646860172079700546351433512631829278449324962604531467507803521342544204019184974613300341438094747774085371107287297260909559821030087436673958009780334764358370586242141565015395717562087346415589621571245787704895517322663116997713931754910482042395774172699470041882677102985543519045246457603062084790659964628543898277972195068463386035985557785606202827398624452836937126652425535227581947688667585495805993163155201732348081404514662113539261633945354731604268278316026751291298578449920498359827837598067556917731727003729708851909269008477267316072856878049296759263384302802928916225419872631513951474176467621362778859235646395215717065631127892127596394741837861174622956928216916673917432517504780999723788467470898948016244300273823937376762646817464749242735211911129521404869429407393618464093229337275618224933646347133396701306411480957663210658728476074127582646431128566988928201111941775502877465724856459838437111394273244437782470488785312532256431516865330461124151465051354565056832336604215751838179225704399539041840399112155919018733194584868112390217272753997380999836082832776499703708398512489282040964956602586807670071003532985793769882410318792146144284889718813807684760840647938656742278623402798623286891209957477179690316325616809445114926990252417179202171963098422694209647974778406688795482370587290626064616738402444935008568464402192189116514927736811503221137579533817152554842098257481341384610261776219793472307048950878861368813582132877232135486576224985233780748104428019593449602054351352260922987220336642115028786258909159166539116229277533929716914541148184548420257989052057395993885336504632167047836459672967837858202028063967532224139287240457297480879227086896777689721084460922839135365082386295294726366458264036981709130442901455199160076675080170934636133539576245976466347085904380691387773000836626864629644578174817211446295295436424668327745554479823089640779130397398966205762204616199550883849775936375423364181776389253430389110097478898464431511610648569030315673204447934364531381913545582182163501186268990831855426459967342253465147978737099432886568375473100305844936553197784348639032634332451265786457686812321240958976348912557230933077366552645338879573178327795428583894164396475237353259861980564925764068892070476024673642487690337195034548626608803540281281228775118109697060065621142285213502722715448908470341311103006412636886632939699282416174128351692536475645778925777581190430487441267654875368317585726865342638778781422302102875781770266792939977468166716070977713332091036010317508357905730239750172455507791396414195702346687455612146121025260326798095071199556897220225943940608139090474607513968513404410208394260074380737044805256851315563836045796779667091072726788580400849754648599367696106711158686190467171732663504496512547768822935351956363807248233095508318549578116721968305985916231937040656144413880752444001165933163310230944033900510241059066099180894272659275581939099902668308345578646027573486641910234146314945982791253917987903431540018790436484193156705185641829885884012162423829257907172910093598200390463112231854273231234460119754912049952890382451174907105142941002219285691379582612242628167793044658741426151425549927644347752867622243291925504287928267886002262004291465260113119544812564742071096331440805626188643400408703897278284984243423941239756366763742426017478092975746616775498177388434188383414147818075810522461792141479330653997689625773604204194138398183870742768976927819276903124542768893428635870278798601259413757604599343276858271301326374828837129140135063531969021581437035180705075718405407537371356937727277310443452329537711213209066432866471365629160292941892738858674613542006728960507603334775662316997911944774082267303006612290931194556814466424467898447004456267542093824140873952824025825142209106863692255318408639773215137944915537927065719836653077422834298575868491597653032235537486693328023253644269696835071012086437913574048361301491010672391058459395301978483827943501206141241161236076612575858903965090685981297361874994097756412282164163835424801932356678593871505564757937518173862066574944884263065433538197728242515808767752630486204473446178387123021018016737422652923707135046581188163176361985154785501739048700049019016918971240920264219173488664847641685141274841284742933324451037531509649655114256801003200272740723142126270767532864133350125167240657365466941414781828841140143793753904643905767457270622639293041485592222664619172565163012960124461899235678520513779098880520251869876969121688428712076061548150247205696720730034004615648206102498963074784212192148717712356097837777162839708625259622212125556363884356007899027196040663110664367123451849906814657935345266079308651773373414963115440258629546037730904289668964313512232967269106236020190431924148328459214004511686497275482683228262503052886769614664772663246077409894147602099045316170453959985970985068062718806486722595785943245229611558778285954920545460796686984460525453978294703584076736624073110422394208937996546799616693095962026677342082569492425158821072804421296185380236462818333795126550745460039079500287393463009495434062217232543782136636948132697346539703520912174362533771716139456767956174784883470615620598739599281762452591137146129777655702687062099459223402298701088137005558565581622645091415469303515575543203279475353731287695316065256642401111535033724990970984613942865276506116778888562767904790254671359195688771246068535967832730735943922333051433789359481762785818063319252194778887314981853481713277972192282423913039894533419599891947660107631530962194074846904677723783661626234070913542554368281146721187019569924687931017971937307267970190053443613431441548179009789032908479659068896519088350691895746173842394653830425823700791041547316255981734375630728962550402699855362645337803403960791695407130733787059668172086497726383583814254326810444728977057831701889799319443679290534658539766135710238249603911290363528946453300604579207715271010015643016298449303793564360118049404670169512433442147679812253303682418467406707683398407348421841945679324600912710077346280130040093605860474230918635303538337117924839528858509064003918504559956028440240811945811622598171685117262208177956202454667631866046866106189908799341702215457105432266398177109675343101935504633059026118106951376967309061796381183427254010207282672794106450131197241689251544100278535481458286171917698532415499009293917925750096285319624196410611471758004503359050637744841091206414998650936580920503125213274770718355534803087705789035230890602303461681966267523808984434579015623457998433651795235922867693430145270157833662927434653823491114904770601805252811655291971295435280889421943072203828280096557947377824963067371178844159952307558176552872239825967388657826055487907602784798498748974575986561591840228342557997640988263128927571316827149805849661353453550901922861269137733804079739388014837594739583796634237784357540256857898786225639964086702890443196473257783383682592085755249392588772108123917498507340428573624942102575275596114132905141340083201785737178341420717198166185321295556086270947369460341379849406709785458844591840431852433554198916978801323671629338825215062979200172145956240381480922587441469165142997855544209651858765888936458836563360398635744770564544702692389493875753056932089246852362459365054595131373178031740838799497790862228086102386880075728780212685748152123185019037686687165310245135666007881972825172149402071528547702857492318196268316286811179523305926574789310710532646181630194005849912373723953723437156715798976503226759480617374894826405537288823367443723280593630031809618684422609884047702029794157859886831751607221731334537561366317736915680514799849327183623597914584955133471304625051946602614125998548093365569846128867009629473271574136417212358710700243528567948162014005434088898780392695240068060263386043550072238534548857334300669068054072542975533182209732532974070029471463937803748935286578104674861520434495508813507188430598973265071701312069251710350790255758576369269098549780613322371677123775717371901316880892647158960040543094903840736778095861419001966778493622042938179778895357368363592915210943459879483404922755763273569923395786306520192756549701519011830291793478408226446409469781912114751863300148296249963404996391200555766744188869714332817745938554104880816653477920149169297550425884593694159190705659898480115901288877993795880883576905819840503948789001042069350138678211587868946843930628529381832836066922688758835667254412711283904383247113478645194665558570855909659847578682269723650541261058059096339758308522025032723277913891537344426174785519470959785976136461012325682727348758894338001399250646190928937358794794774568823845563564875546938317948993126473085416526559105654898489171629630955729796368734091996757531307038128203846688423534514408386827674995923251350052791416482411532035116277291275927186783103457367046530319005015891941722835025476410965283830483299780418606377860530469449751609132999054232560155778573307679408620917476987454194428831499782089954713758856663571099000338069408053490269508032268038676047767250969426072076697655144915629607763768961386180160103698014520433346168655369638638719544398342934276575611873186936967241181629025923352256308615889570981292861344419619129666787610165055867795332501374481488253971960172974859275137135933270289892827238106925254124982719721698039536545136357683817639347976171278528924676398464096213158063868834317867812104876934485147125530511911080774571037288762659909680708646124973239119273737974818369536775046427406836566976823120981793522137876338739475878612886496352646290286645513318497784716549825929272782807939180120815713418800486873577823059474430331867088363852047152151784646223645043895722724784875892739641517306445160272956238790750803038852660302822296689206747720142122628445310693891634767711272087558648444870207013938782579812550158423260160300865323715881904829870092895929215239270513587107120378550608077639800533357485360400010150201795833070736296864867609754707957019280314181809380258709790798181110722389839421845127868473392160938100368023772083701263239765454140522354820035848488513182908253708850015480668467236620114907446792405916862964127588152828678215167809077255340827352728990511880031552031744395338938782591892350219231685841551510149453243540137483687164406191110319035147103649837469017348940741107721114278887932457591522662638110979696242558040706107346972477769776611932432485962730954203786350800670117272939934982639548093896865643738892940021637580966984595980435221194842110585279879851489342511177066078738562346577643582954777837546329614704769930253013031806788614023752928356242964085785150622606266943422703960315725337552681532781571828288907993902891572539054423901367200203561648168501916777903037635211578018362088421639806399465305729405362917815041941756461893648654440521444645382644684112927141638424339849226288462441834315784674957888862379694502630443707986413316902460430351548869984934896980789641869484783833865589793139785421529936758733479975395653293681050573475587517059176727690374321156533934544238220401361654320376046021016464870958227642993742086431049915809420759216044437180663961009999503345454526123396786331963750887579946330780367267308070723149450663358721621166848337500266068178692657308060846280922701330814365688151817946536593180553054663654846088887116669477068728806562008055768749820181882629179592226101159608673944236532744857624717095753638206483162022809886925504540559854699437592694331326171453584294584807712294551642908238668158127597997850368062971273840491521519909067535384555032776348461579272678995855571001826528753233168150743352587503164452748899497772285409995007881020662423073921913732169468390088341240565399373287708236461112621488826364906844749893338771916238114177783353485824057208002142676451647169152103509731692450115984095690159857380103358029664764528354621545872912292103573636051217465304520016133915935849131164910766395024756828318766692323112710001358705377422844320888332835988391433250568318176994713375872077623631881621083360351960921811690081754249683631448190952857146402423156179857933342647364581269294245923333386050377924227722844664348169474729493575501199418928294671913526264656360467021261603393271428321210045438900379514609369011851926972394377164791534739935911045096741370499809701276053614139510550247070958714866514222151971051905627466582337602445318408904650713327045510748500094473891831868019886605209905896990853571567582571532870124350790208987114545555729220187769250655779120052435105958145399237264897492375091367975880939775874538682481877084165458657630970353365131076198199051231605840984036487913487559120730463936082181862725811638773097443811947329246954062993777459810399995337355063305047647068104423528665249633742985282508297402200949866418667218263542643974024005185435106953106141061458562471848377177680309313192258131342288506336017728323417026007543232398031248155290685933145863241797937762205177159172481241181611816701764577128679150808308847113460433300536994043291066078843580896604460054979768603714105687963502658810550092933662975216828795564184675716024631888667811834835565810272314167812229432573598015447262125059621429809725183662080842623288197815012298626637667446719704006034633766898987536809899142534694535129591661567958747694835398443450424009357549437501004398635727379206277562424236522904620982253444273095302629635159281329357168091122806826722883320208667436780049456286161097231206390394460404759817905240293991124116782833403441591391412648606316527870854986606161444693851638694522978500686350689479584717539251800937431674969236255294708498059865245417946618924502344579063289992734533790118580355366345320688290655293309456618436692049528118998227392577746491843543815666762156549929482874083773853502917275738652427418555977760489765293349163447050190952589597376741647477387573264470254195685888780656299963504066925298071755606630296996853354457922712386227162824626680296934079030511835202573875222871701380049112876709786585752117091650985396762332288007814853434026418698922546878307600870312778176864902105109924582660940289735437230496101228524394532123142022683760701517355953900728264242705472213477961222749340778565557492618066801037274787349797443240704592027393636441250125385829196447219990468862174656753018748576279581559778406351342902552336331793685626688935588240424863776380200193858915863839302193572264872207806295497321456865301221890989559909641179550150375266465716105173391379263823449768075795478310094939203349217096910468317128206197640679698614015408829708897364948195956059096823167038096116165243368201377705160608133838823964966571134821821269130405539734903118722223661718616363097500783309173089583065415907512346654995394736409421586927661527055181302759485573233190111438360011350253011138747781271087466959134016172356997660824710468186754242885105999985130800933802194046167012134063325235097944631017286148028596103754680792129606553134301238582466205698023950901630853024906868886487794991005237699015535565178979404738805077540450477101646240934465865341213155862474233072851284128841738909802641326081275084474078535230751275994704179970430979684347598851159228013769286819549036399506280300009899531305381403910006598146368393017635851201043534110369317187005632500279422187747169349988272579386309070644214726200335514858415695339989167405906719586845466168020760793249786797438290016434025851549551008733108255961925126538843570502210477825273637081926833674714918553639251321444912941391893076447406729574233868807689437452654816793492042278380373750158783481798142799590781680193425636559201901280601311999972836429515399205487790588356247651438374894151072908709527564309093807712683150785205160686894941927951610185044801934371982101507573276759974762168089113751184915017839763969944126734374327129619531979824249682193162498818104814785092648118538229482258256589305415940681980077586491324663831110411194986937948750824992266733582742340043066317764107663291960117842957871367172798794725488903545694180548300720561255077727110822734909389961700658258906342390903683471555113826423891373206586765169054281905512218149947002512182197739450285342569469074773528244501018968276559467436477372066105139042071338147232453364374496918316546224261801521197349094567185610063223053764240496760187901024984539337949029858020299905601473382831798733993001320604271462129261464050688495153554363282732471738383683483023377651378460364059482581776552572522984057920833053528602979915595047821814404540870490120045235898026150659158732085566361793671459843542290593240577665603630119268908975493609150875195692841311483291133247511912445880144616724495548572829078302761842937320942301315090159087851754270908516257543956059044733267478272719234351842270135047616619655179531326481809777691415051122183700218266073691845247781733525393362554872299726889201711215132289882518315899374433682651929175207642399256596369492460627416848643572934477837184178472457312034844926177884943903525608316603339666893499374876723693809175906698222523226288486919527894321539526571563410308887837829598957023906536938517608009612701460521146821665940028318061207656719904334315999376940872340804032300754012231155978605807115725572416851614697192681384379289621149852679417008679756488626759724735097572274203012745327623617021036284376518294999570140409123453555726696252324339432342184381759944184494988820818548117249253968354394190633653578468775811400925949289693235559371097442755668160307725292605720288175152025583077761493615640100786257333506068151404472000446845935426866743685107800344331961359507850176489685174868791455603734420980987936982473322602987608313262730683342854603871827294724223896995744866092668814751435704269116044528089401797776318978136629052781343374191342845875442136346819295658144042836728552959861527909986326001299000837647215516989627518408435215999511608303229858269711610028978603585136559571513654741423701580808465056061183412539003762205840825983357896946713506095002339850656593330506560228744483017192717280552839544913212682871991234911015953694168621249242645606068258194253345457654135853567762830705319606997725729456507712023633317067712705506299221252386230203438169553265679802636612341981326635865895687532633083960908066076978396855129392405171308063255749613825706344613000734501614468102182790676200867522815865791882110685351630317717094946942103854351585248769448689738657142724774954329640106239060574593726489579824959104579045963420616146239777109492063565410735567566188129690888636169546393285004599031123555844748000029242355312775378304766822559670776691043563842048167964313147423755345397791327893393292393146942425207485724013731603293375133479103960886645212037968442448398634975883937023746490753149634598607979010186890423520056545274187936026870949535548235834915585600709829003001113292575324683600234252779187199330759119234157423029856384171339747644828943588803673678300173653594141556726102575530559293322018158458256245263302450386929434126915105273774920403289809459619762091662910097981024915429173786877711403314480068240997966307106235844920914312340393142835306199784907869971127405450508958114142575646885247204780175734266760520981172226742911506931864744699518706643732166569344474568317554115137508092844047415510884045718402260759841771205761220492181910654027954508036626465226950300948722540401719961348498780395091921600882368979894856204666179317986197381678726973996145531749854299666402033228360285988215601319814370407590538382044053537393414375273866861817446950735383773528691420061849395106553878471840832968545439032934706652026504030879508479919599733516125009184581134576904918837655862655636771526071332907104858828251404171250300413363565072657343724309683600112497879532566427529704360970939856455084615001973507845348789925112061462489977611946307561912294732723410586124948335565451968859572111699542756699954557861152337200278283338988900249529808328659068126018582179664442071956093971152671532815621715276507794236597881782466342151093174848592003503987734776390698613232606320068738025077233663142530191510146222866796765682498846904755639082439216782826252413530437591552467214430404252184496131087283153288320013560503183298116749939149672883989173146625812372728023730685494574366015909726320996363708401547528154377253297923137836373014549314843502353820392040644977747755350313362263062906730572636150738537392637863639117640168479085503692213594127080388877355533817833444813641419077342121958807057977451593913245074037771559286809656956009737149853044345851691594405802770845982113697345019047345016113872110011681156428662604998527398270546992824678923488311480094643465031143039295556654636898440330655997146456005555521501645758848017588687155454602109368585414111689067996643689193588502880723594966782672636858472816629545289894910996655472784044818601064708351345096308556608358087378196097031459427687287531530596060294810768042682524685217440166919818832873471014592054042325603447840800833120298241138704650194481875894477708368210776539053724448428870763133324845717808435545851093079279360823009123491369127324470514133312978186121467015748972853884864835101049986296862805208802801347442904532055239920675307555399941544783135619340855897034019026544146975290026577784495754779716471978150594232063683351714564795048928721260685004909297528751753975765305916363212244386987698308602273114215905160771675515121915594687485543972556660381894373312260359841702687060010739462231377982998143265327659542834612060727490050036293095371341076985596810598516301648541058633631087658308801788966671323678797733344050855606332778672625479895592228913894979316337175029357049874121719975167235387143031690057586771135110816381085973215253474161211837219212170013218361245133017951832871098375455668898606052226606764024017757889221316104223388299217099874457751983230514133741955892200696390957088301692867968681420211784953544065977685321214862776836942144955655063255220986442251535044913395635841257157074006914229958249725960889997023766438664118111089497414352715900145894986069643118186754809321622671780959673471844203520857851130799694208259173357212407025931847989645881356266974079990148268285095618650005689232623506514273213730221384639438653621626172325435906133623706064003894396561921255000085861718166615657797914287194947072950675119598378406911331859463026962948516660615514055060712247125389540139527953103635410621946317512089940944384202902239226570396391886755554664289246763991728993484722611514014255538758982497134132195006683977532912569240029897181640864732923642556773995531559697005835750843265531330185612107421645907774182937788494425553708411895486162681021844388673678019523108039918913651193793405710260275490461224387155601589603810776508936192687027610359910270038905584103867058585406202429809602892260854920173738399083836821853174801088335406778243068797344562046935944438570553905450339540844215832676904056014925808906609714430889946196059901442771002772061577800796434784792625082032159445757019688031845589018296639841702407207607867060993178224887793491729938709818686643168870648635563516636651947357966454127209458143969872867938377915459723871436637162938529476297080027578338880346563653495204011280160967736731745748467721172967958082061524084057691200804621829590315015116420831788861101922258584613646368639807314466489330826330118046283004238078803556228817735839948711291097041694387607058643983563632103123635394863723724562580218496097493523145092158154023402643386074170948291729289843058319276472258760702038741149042298037997259085808701024660995769633057060010144379816680095247652050984960140386650360447247961190580729441750680775555463223370599622827585371058105183685521669291335450357738181673937163611941625503995856410324919813477357937054728447082569313221769431981882269589605073306551668856048223258253881079852970577205945051640851019028794282708558071511428265569206967079542181701672149506246152128687155865474554168687418144524797550741504716520154449549553583439135910844233598319771811952366707995257690692715438791762751521198018750444239301839463142513707416537779305734098544038603410053976483438875269314943960642027871123709151650790173945124082413260676953983543433579440665860174161881263470821247781212271415844294747095508109725820642346705033073721894207278624288361737730236055967166822386721428899240184460524211772723655196396568011779260705290852307834134241440854519468434005214402873130426498510814487734856201589214359537167688484676657836221252967897918638432421248283483328647431999099941284961351599334037287600212454344521812320196839596758181143384130349963995653827706085391016199641235166705103640808492647804201909559659889689091609436061189876810534957056496634989476958198120406897253527127309835092199374558567598634401475066920383348372653785570772152579895508367616902405579437721716502202879546275859320814621748255278456047758978403010568316398621351935776064356062950450490964745981204362707797284762727816685571317273397878617842552269519807175166157904965768188688896848460261391889797263877476209424371995388800756061190624698830274224899029812143400103708333750737168491079591299168162361085834153500994434520277600173036686574288637047930071525071951729882094724625505757197558670330821938927749486797690279959732274402254473566107295859859243901673474545042312839253357760381923743321991757227023388920240240222039764670670906405945463134540011866801316826223996760076172840315117596695081420935690382050020960360211249028637426753114707632832953250485278385341987305622272172567582837207535317306756902596177049214417799566378613124003437332186547125009846116354701021861048334967377406450913905629701762534330982803712668483902309133715306163490956334237809058696087436509032217200349388224744552225982421333076728307814071529872051814694290446049507648937550570835668727501916408691822316927087741464936611780528986737216095624124353047081019691248698727390416099756358878994647964891453293353719602095715528650564443661324359572083648935297684451694867012896021957690030451962731954843956548508662479786622093208614812822081374848312245720432464667749166111170450830839509400499524761970955707188164967157668161029248004578022796958028283084046482384132995466805535803033887226893068380857645547562303403694607457330916323141244948198710826617591823151740494512491003425492837237218876668961740399630268616501473197802709367799321197013281054617763609001728384539801177125910170256739828004498973865713081125298169468781493102888101019250978502004225405891516453239161737160426953633587543213618422269923243581250956444878943567358441154280436898549516051470748040120393251245782657282810927412992457051161240275304304960163016210915603268674301441563276683654936180248300321689899917745523601564213944886500019452308791973885227031731736247672864833544674785791182858778398370326304883274583128445369960035781430214844990408004390121869725175985003844408421419562449416091036255447938052121459766698182935945969912119456180445089950973835222980514594006217509003229279351211191681949145400602953223266939209693771418353954538790914663189830894119987495762113118437718861368816076611674670687696819966553115491165789015642868538748890124745484190598264579829684383780299915303715781407098819916287074967618180999298664860496635017618275824893564067586825888205560263993440674395651180935595108672024519667878224113577664780921653064087135619173292276836795491791269167022034283218374442749987148675484603827391918082830699054516502771728500342863495026750363076218986617666931725690814427120170183443815952946104199658954127822969331873639676549027654766866174218223056780416389277269103324946573490941876346020390739110980629931004081632615893573792247517709392745294724015231881799462595311225394307083509135846950438751282847658075689202964154314825370146870925232501366404709351379258855665643703307573712028936206949968748252392751655735393687510820509843419881427256110640179786954765281849194883012583375574764530106593594894032555631464312855114991353587068157994761844052343402017388777759431218291849130284014482489786355165848679198921257158295085658425274632804523764227871652258015703827685632069980192439419710657761063134271012885759504866235658327168153009781748529016927881649656295741588610304405145987117257983228964079855206855976165024019460973238805508333036966049130079875409154625171250026602835456922854091931494825429433903845858796690088366841463759044136024372282128479007415915572946018097643166507287169006035570546879927539437326220908085039754133538604547523583770518588954999621642444739761929152107336926391678368100200205753984900130609195726282479628419950648466451022260372791782107051848222814279599304706998086001156259205112913147821088849708876026976608404027075831051110564417962263358661121702480370460328220899066392124377117586094807137278174933225648372565498389129247185526960809596850215225760983117893302138539382930568422005090141666140040617996437603880650462329955678449996053676671269216896643570452050211687555210910456988671384582162671865280688597726740134915265498912061542450630535865793724712823496659100788944956163148567032649425101941295345258235074052895416604127495176125983006683693760228843895020120680853259759327985765390178297807898932345357901066921221636561238643281428447650727142421318967877181610948436242405931554868978628421711091786600477509336633633533030795127164948210022799391428479485104799991478121113177029250936797076739760878674265718812816097861536809193778693384283125963263021642991424925705030470919195004665519688204688502682162081338787451165868773134476049201033669170166017848401773228191436542224975447550492695774926059170711519225942799189134938683320449842639397974529170056184065314526753738553074705998662233244008314657207202825371122827035667493061296493160823807942474159150247634043276932307049128156017287897795315546632550931923210997655501175209765584518043224389489416194060723843319488638586465585638582965580314884151738210557284476306545903262485619887196878387323018042945865970394192604403832305033122082411610412377668170677905124568040474875444940479195554144399835166879868920932882456968391162772774172652992335046815926921881031183087638784915795649836759220097291674306456299430223956334184789373578773912649647828437772074469438671451863932490722374535378281852351632555264974824782784869180515127597832395892324028975635003948747947378978227790922364126230861718655485445244366955110528887601360034771847651258518457082666974597310888728716329961178398204408934924300259524542242490040813080861324303061354015587362610505505377360516033608800342187989044504044367691721834292619542951899534013777124705938834941911684700111799054372306560967256704058392596392304070758152472962879483308033450102225215649147026497371825381699798422903409738002084086119846851652181329608940249344113564817940360781563825680026711758628041611038280108819779780279303363317997430821557457732936747158381062852870028156205747745022547153134448328388391314221591130158808306320658861639124650542906088688541242351347863297762666497317102926195349260364064909949033772909588375699773510627726768218222962897164456839967680327547712590796990823622438071291976743578119720514634829184571857903762317785534024603251044268845174380045429054140858262979801054639313355476810590439035965457990170291353544938574779163121639764090091202414045399489459230001167547468855070937297501372626213802285053805055387197938437643525868047870069433034281711093922618289462355238443071163959849580665699929616944476982486926229439625541865308796054148587604825788268994847225994953462830150394649981152359150079676889818891093196360921944087715336422795124711196556151266929918022577581395625978796714961892047888444292349944088289207118917820612853078769729353024598699566673273753491548121873350910160117344754962191162948034296954212084180943533061768359035943283676008729209864835743918443229345549674502253208299473930746863574022188304115607503925684911955771692443960577569793113910882880804451695367973207625123142350698280909810652219804875946387749051713421758152480851579780114417693812414196245514578294161272079621975953300937328972763279741991356300352874754568165610590575340070854102506867667973488319231822764879245869549974853091954215924833432247731734450670694680302263809688831500622932456775081476745527087916533426758650173017308458814705552808779870687303455973730781972547081108654364833149396668420832962981531761548568245841679614765529390405417596702229569574585383020405986156133454944296023827035545190694109825080783017289263855775105515920149343137024175783697275299434036284953514241758974294732146867350780572216941782191650204678607715787343184429732683148035099541219961405331627975641991544485289757025630795363697526940587856982246111497016213489531812739233150059974928425932383915770085164574930655095255483967912002334188056045328837730025781314966255090503724654663072214440609000780674541531673719105852516606502204169266103024764182246775962696156156733727038373385820819200220403866290908959170798340041460469211722763278847405970596144813885107920744868565295889654994018261615508500387356797256249226848887529742813891837778744040085810771985540571373974508212338965047517813589263357874161449299165148978790444450644716910500319993308070042783130298844726887148932939515308577039823539071525228284234526322606396389014072299576012478661883925393238107751234470724042818575774569422096543156624833173563240621762094279174902363651925407905616871802428393682881331206128280067035402637217932388662329211564049743726502517558462326972954061565885690527057966378819264813270779338208444199351105337037114587735499436921154791915607999705084950109782178165497238247589665167604091089296109112353146956110110047935648664218831193772521340837587710607180476923356316699610653946060094531255725154971715072603268116658761288073887755969910233825104388168793902149221663635604852355391494309793822439368621591778156324799000056703231903939800498869828292668603725004822854215059531027986147494864316515879759614887273926996998350995047509800045039070722963238548071688676436607047345985079794537679959170882874996660922430605990313132487133889623157217514763229203689642286990349118363155560609318521016013996845457322076368439552851808568006732913161509188500431069276004702331763106470554255360939980211858975627863984919630694060796115855732309095450199764440483437357441338097051280307839004985974037923342378101887247226053796578482478840623648377159062736677403044951719805864380096495185249683676428198352699310072835583356895870086171908726838005622275918404284044177062200065606905356144337803937706714470213236921071802565584026739735035924998448363342974701523430971315356357996540941566993132650485530074035113331650700825249500819897192208796292360815004963656129796745397996910483941077307227172543004135044291877319625402738935172812743915778681422708328958810659898793478422222176426436722750320208225511573494026440011081258665193428063096172602728609483911259069998515648453144778017812057794826295756133437274401335157281713142731352698550657611562596298226869227508915237862001968832331293947569657573911440309485189239231775755181134364100031261430815755723613514331857481410508012962397939550802323933407559874467246272674680653196218422549289583469055948508408132278235335429492066471579866817563111438329071544314049954183763497389629847632279151501513530911098886085611555195527355472865522662232091259761010340195309481340065299376779606709812608239781993611952636361904720008397422962559772757260434915555526093124653374215854916254599584334477019664838538354915504136687317898485501924764663300710112644002547467714897755153614564884475385366495745112616594171574208849271494573077553909367266297852995687540238404587139033617513089673823812696492563595668105937419699490788915159333716115313303099083320012170120530762393066177718528783213411091673643352828110178411612544125918146385392502487764434212385260092292275649942325539353821305384213493285182422099713009624293413327399402138450450908932930728549970447041397941063182484284289953416199475682748965672237415401141814725837711844494765820425057987365264259132544585191121397140220158425565755000219297779341982188334297951990192162753323242205202374004867771963121403992419798371205587036358702985925461716024718315134987509728733163772798333243827180618763396495241096540816733116640107251315064718540681106194251130507224034909555881273690472438479139330178436289065180984331194879358442086420148942959140810374810091934271132847101812076551469807567416050139029865057756516036720487573858524101113315221480631811917628413249772845774590627696398234785292765644869604068672698198154055185640377911039550092268332775494118286820900029311560794820850852418942072881558342204887381164962727233886180150876385972923662069380590008135541319835164389327690458502256652445775843474818553525043006865857294752179790786916132346308563750479875570839699135015288874777734866057319012511358482029071850222660236964593363011862268470584261561980693753184468532890436501201478166985044823796482932725838437647777495693227639051070427004767383691904688393979035430225992143456585855822973143243345670655697213269813495038984886038310176548970393155438659966768653009592018742308231730232788564467319613822720743504219332852363361056595199138288884415455628029654716031957654086646962234313272988998927653926310936270256932248712111519605139323996113047923136807416805599461536488257217559372870149232568078161507990945586817327182039872325634335166576314212830169438557650018380013843886122952337838186035115773104222647703472090624204107176149160646554192052246666751445768590098141065802683367588371416500018151480856673602690709441368634941802840892169590872831024402166958825295901697578442940988618074425587335220625703602595862956629737749779247678053214513454650192502315363978371006377411167971284709894096573463735654082625009544853047270439303224848072568215747100797179665541950912443900646474241067118684115282653188426400830664495733253327795077283373179873609421739027752322392205416638463835841368501670381773430922204663322327106928925887017384844045780988104311801573335041991739639351304218776632150771691198263899536591781922777402221965183229328732430975890074906572416804019753695705448986878385650803295883468432495681887202319588980093387097040222107250343379802365726117806499183470312476118999165483836298264731186409609447076096215448360829042017206980203895215982580827548616264001318734131413421555500957708271571321898331823552012863809645896306182461380329064795783600383545840137014987796928508761894160668706165478142197868577485795431398592023303669974171812263019566294576195101083634313882149286945354991487153460104701034384559757743861726574404827969825773272508385555102145484459307626542194830935213431458887562932870824990942203941233729929312284809253654285722136768188397758790250819103158418755597132391318581017834300426732526321430575679110652378295685868192444639397357641773041260579763940543114975460979808082465697309193195954189756613674800540793610817337378446390577643325682921221649620600754458237964518834820578383572286210089754732724703968522806620698228711238042143632980622633024191492310493343457176935602192969233722582972044877405048087413025935956036148006801370157976578102471970085485344172182722248527577484004389713088021002751797532930243520113455358516890675922815216666769535445959363194951032616311440807440674909393953538286396194460583056922597206474712103255743253037267286001093496644952527451146844669316099202576537424368781118949988992303153481948108740586111413076687276164576856132189674466293184729576937006462624359831740713587581741642135662936005546538534200709168643319900534593896732013367032565057049801627879816195788062482962763415563653882308901578907101773156163949773233402771038059605583789393036874328696040576088637736799603209822417975448803724080415498444302967084261590159711748898654215564685689629166243185566917154469680783080648533211884282749076433793599490606194722828341925142176633034894431576260498743505525724973856739120058093968693239910016000697128115945731304353479100413756616861488864408949273842539576486451213895375165262469470068172760489144592404024477981506927772218246019767924456129008614361754721189837966892371396150214691998667797640377154171990250969120759336315067285049476551983193543150251138239943450429010448397618926705053232613270067874834953874909672720271813991531974522743070656160326055175533254054576210173109039115848964308465849494180329404372945680652215839918914834957410174583950607931140483546308217244664306610211679428089004094431012898819217600186191472328953355947903876368835226767927844372595539822744579312053638121818156364977736548298511579352609130629401024734413309649305923710566876756247243740755772628468386175826405709329602926945645766898900474942992128411378670189321239948095566809846941009731973876421018316760955989108332151931528508582676459070304500431187598689538488253901736558627533916431150696759625299464750211461257994374457445678853989091538654618585417913712642282694823689024165528498018264539454182303413688039956459956103090845035345559502188643850456038920835541511728116095806731223860268086372640783393730880009726880531347277087705333631189245598032715331940527441642133582882416010431271022521602593007319240816718431025132265749265926886985328277133704884843863722349988687962634599663017849659423356222711912888807205518728834720897211137771511168626697234044685708844861700895802774175641132314389272294286251601822647542711527609777837581953703441058284124148700215896202794883575537367442208291257631644637657898856988142489736021629378660252164947401091660462980136328836260969362789025479146867286594556491814205504104538834729931057086592760624634956745056492933867281025366477700784683444278057152815350927866738935493201611084742615140574987743533014648807956342260868732219738618473804433236078758792767121942085992469287720592657463089553630723717875495733962817432041245044679439828519572055068131692967349962567239034030163476868702854936241843791735105209316971219894715414244003307258202282830279052066215910806308662080023061155086292930606013099562378199004898346903005786618482135016202187754668578465982522007017576444973015034495519750745506814425222321271610864414960193709560335790941078885939786332380218436031436651150881688803670974159338318372714366456665833760398561461318982613810788197019736697519839108568647085052755534189670571924982099538859308274696575750486759716734466256738596765370045347416413143976157166821559546523315560818223378117406779486220648179537448233361146663499772961466509288409503689250405372351218409310010890598527894663221598123226337455031531937278717507865190686205124790436282504926608517788591934559105130420795359506169370756053655995573597811732323259579194075077051455060416534332145888498604946910069600963479344305565731539681784942760977207090181651226049706517546433471529150897550897003373803335224028589426726623887003877548515087016784651323208561211437149089208883959257859876799522032669263964640473798393449815531864218696114392802500568054837621187100366271707658153978133336226295249894561728917557281193270574810084681899560059302923172406219649363963239596860576740502975604482001521540354947975448905829851123759056403454528140800058037440963588166508076796616532780363096360675182160706987879785691662306330286039014956023489365013689980409190551197184485082764876302397011940681432196161942913305182302803951890265247202162800694135833936812491445287086253427906441592210339561676983933481396826428741079227905364125032367728755295510430841927839057298072530186055501508067613446643934280175954548442138293150452160313400888290288964008023155321648479197121048582240244259801481368685029776671229658661807295018098513335355728339951910253344375220700040975966125924218920837934372953469703705802939265336772310783313380329485467575906128941508497635524950612104982602150948018043055775573173178064220993506592517546063072558036291384199884187784348443700889121690307907716604964588615103742277568082429464571701211443297329751839964648512282779648319627136760918113285655288843228474697831539715752387380197086024074045457766516700325448910113825743946511754790578339513503622219965543548287156489357148049610457476914025338745279536554210383705111604825059154037467620631883156762267678878776598326311720736604549462485302586500576185863295160959246318534053666776519923392563548613164693205393635871881114560973433520679679486037066605328010469496493504816290672945732206101521487459767282127249272792700709700945333015051365441335483756641774675677385252768410600013665986164057251157645453693187874320226142760263417949597449635427993873505811309501113641793510428385670861635221142548581305622046279514469558066754553137064273810601540951778278722950783015452293137554921349866386661845567470758820195816616937285413461600411584938199895493715176734982324174457155458174845662872824940883809670391679908683700297788500867134147504687574183097044100691764195468773203901591643409264521131787842334090781373984714685293315038146102633991450891139802046180195685656870521081482158491066357502157879662649853698985057047213701799392632532174314664692960500809731736895557670530948772135728938702516654268461876097758789771053735647321720439102763599226863107276886390329417527180529721928569564703726332700759411453393976989386489732272142429569150064104960620751162266263180760325712473425279822359113839013976697526586030488997189344045197653904474701208363543390833115570573895001773022694737464526649605608361674361908520205611385566403829606334778588244469594682116319452702677935175397206642871441929100765486711078186336749421681384227394281184888430489123186196567195952000716535943719634693485732072399692792013192868844514595520545669190586590226738537600630086404262284737552331109366469988857957759403322191207210453917490562993711590088156139446979949180930929534816726416776187302496988663618941608038887492021446747225171632789311129801097558987816479890685741505630855886734553022853249245098946723127116170989566549605519413037060796303597530245877277226828265857926949646965586121380964098266513640995426144096107907373221686157911428875427119866504770719367015618975472888021814731373247058841959098551807542716265950261699137786576233918647123764196959317072116684988881077808514184966670110372804915774485559920480904380318860079074655065354423215462046376569437422799644380407337881396827621314247567034481326764039670610271859756838005391527918487652771574276210594862175760512676306765782207113682150251721891858367652486290145091343176797790324419869971930143089480839205700084442482258067202678285065525764817320361233041506583683539703713917024317513091828278520727110958782210093920412779351580824333578746994465626150749398989672786503156240756167146386419385247993524099578486604474223539742224363037399006577851088018907862611008269899923578863318497171482454764465464040630798464195240470864663872382618636990714005066290338803847967357982313504049017500736265085005094598322333196313385943689411898286160207795117410225820446259015432934713822586847651042931767554926368499701872184557313654712825884836781263598220287148632567163805288908660816106816501355459718920251151673313306244856493782256132430920403863828958707279796549071522676939364590401179400374900002663541160094496924023810006154025620761034828291131095651062601314344728594063020381405888010132974533178985711240809342581389116123238012116714084177766407396278595946684323300934794401350243244751786017281337755392305995168813198169023748057654106692032682198149618407227370832448256738083293768458182336143856175759338795576030247831992707456259712609200191303087223069448646916795261340697028172463219664175814488249219168931733292801039595205457491848695661409907473658417693204096185499967293656676280393068855130888022301396547961571215054003962599988211567363765033924679376460724948916206249625893640307359150344356664059738510768856854702204739919714388649345489736827637849449800311349283571551894618199668695085344718470083749416448728769516116114644048214726375790950942930510330541395974968616482916564695812607584101810296305340347649127904607133537534650585757679313984231568687309420810793184131721312693288958836977021046243695801183737399449154813343538160887765523908254223439143538700394466271716737109347751793282744040345790233108458046551708161584369084285043580298023723897620833066153095808719062297551016460753775943581240049644252620963586927145044003721897018263015805221480476897307832252146294818730400729589503588770208846794022951907776730921673224851467814742211450116430510450409970747949839724946657428722516801807800883856587081280498084658630497323408938221665657896449637024084936179183027971730607892326421751613907957882904715554397574727360245044311081845972096790708293439528606648744319307998949125550663907176420734202822003859060538056562224327693846927167329218489764507862817789974181131826025946200736721262359596513403545777631468752267815031743174679704631771943522576368076897176367220490163939902042531060809999483228495652192535979465114826852844331679188068923592751514873947416355451285235750854008925572229018442313794383995939509694563665821265059524219304153566476449173151516507768577868632519104832100131926386165396718948655685009072277788853479919372706487842780148207910513328414215901239649731871580867817567606613824482937695559739730043042218051247210563860967825403594292600404291837931094951271219171686966436299564634259310575257325274118911676864042376097223861475602956561158458480594197645706962848440262910232013349144039597576190955888654858403484481359210884675784969602656648859336918665308536684603103867918441370498415360154313662430299474428457361157647861367644214702519220829832477843797583214112797969020199702615968616010411847004938961835649415870529605337938237635948311674037590974500670360120033296411957190906722283751382605277666363487263212190121354604455348842014902760029921415622006895840693402220468277391311565217060113766934229449042587897336438852353963604728602254890701391430990639813959229614190384110084011509989214141720464405565986184363216089928601235891175502709799902834862993633215819016363354847318172735462881953890197720545131496628389724595238120120587396165410127059608515707996641156707521973240603970606964418383540168836136775277789562688743089511133478812630330431303258617270875514835687522197678792661169247695934060733083317710816833073579018277326098732567515160713592956970893495097670455678908024620168507570356979208730550562715505831165282425872043759586521501786511491445333060867650367019135708315986775487067790074978506727319763788269857821258675620624328438401976530827595025967912444795803923174836906964604551450700670688689041286661300292356477525308383965807752480810993101267561816136267826260439041161935300331566811848567710370867374611341335634063131186228331034304034173798692224872198175572931365673159370669840221422704258975734633641868590501972765851574978816151419293700578892776288107840989005077919798770428900200291781199505424273378628381908728926260729248632524316066111648607517448557839302625376641664425969402985030891428381286064865010611909808906813923385293169240338825954345883533026781695046742771054423609571437052389615326549041008001711605456060614520675044610265094598002041606702851588692487198386057857791085337722191191898077159377472763133877855177222223776088529527154186730537794135298502232658046301932088102791664374720780946671209768536144659793428325761901590862496471390338984243267096885526107761393450844397823850186685573283208560035738110770259451816830483538876280421081869235329459116461136469263285094142396554147752348686184470813468760301154058940560918412066169224160933042628573233321973474730395085291792083967262125038892644268347847071948892562959833749514621097764021421909622593772123937237753185328338378292177582724149440998349144281088923202751927201329071991964475938910958836069344435813646806475359146002336018356029192068264761612613425245727109773843503292843429360230968512067912719574458928502714269899434652532163362092810748337470496464268297585076267534456295066037303721953642526048926360454929093785207062630140904168830557783150925273947394725181631271672208706995306938413803167659579135048951705885208354141963059970504935411627420330117421216891267303284277664437344364090326616848522523300795130774384870169986647849278572138413314541105083275563858775615468743062486323571044601806854172196693620403578693170080995293281612308225614091410054290064210412717132531754295946809020441026835509625602318167122491127840744770186490612539010640500187972576877785638474268225706126892326864374470890854505548797502596873635761448437845392659226068547537539029120965114645028296197540677995555322642902388974784034802483641443146813610954346202798501724348912031326094478239826756790893982660040518850323726748924223122190828178468250317710480502188708290751373488111335158635426459224339563836323847471051320653096369226796912077259658841932859223926239887187106736170743464881928690524959860774058579708096649111632205510893608936919423105130854711705571139757337969279194974167372802886753868589860584045924458539338360757549736296167490860210382297457969494029652120934861199682956410766197391564407383937573948174911114261050362498710593471240214167794707939034163289072922898664826159259182786631217607241558993392154834253877698753047193680561384988362950972224996701433136572962196780026900469036560726059427955560762840757538525112072502259742759161460456723323283471735727302041393625146469893073529491943552523508840786710100858749273953893047754282023394070992396241795654773311489124597479911527935415028748893940580707226954989530123942354796230778486294923472427975896363880036100240848970420742127551803281925885165485763786035447643809217675220548840953298034367508226338791584082309037186425652383317983054525890641872855670043128992524565194109915304467045638686193224803052937363784908367948709486166112633980210599115995629112801260035720562947057940455561861012320227116702975842507495023730726222980756651525430221795823180020637422064320276881857509272754744165169137179949875215303650406755551338995145776467673073137785942729146136968242968781009131600205436685217773543113053533857764711433756919782805244347806218742573880916832541386817746662262386858901144759326125122847606721275007792301456486859981147664853344092480458993650994003092090186335904438677412804440634802951862873489505593357079905444311601605043515049164140381035151589059915374878170871381169934115392808359537254670600632883048513008052518080782088772735621152379682804085796521073644884439142803339765354190302222529045477852960480619734014811513345614470408389627268141088228145748042502007519164330642526039622811886703883465780508807194469765748483937850659283100924599389517100884919697050843342951541972148685657254090065106626991947541316122696115488445913800723408004694256544058850402615167585365202687092672915839705280365677837080549858653413341784480263164830045010270298007923771871837813729417127671689388215428490099571986803025704531631630539848934765433711114420035568319588513540292245485728594342147026563985230018022112104748010912554618450620611422084167306354544233366563919193915582307728358707601711249702824024030673074645283744782454336007954034798799937226375283973678675020179945795624569398050065298060737122736336997476193410039483156796559922600190122461735043902047314766070012254114017870977745431191346421946136348801340050517788544047890185776237465828336607018060442115045821073012308332717665190267318338400861295098032385795762177705830817332665644801598208596922497059732291004886084441597709144475980135755748874087666746249343765008983412250163123241188693985008641083712794257018044655957000772454825503629375640114216854235302424406304812198671289497052497993554281430002191562599587752835240496478562957499141998138807676277883790725108412017688970450207775294409590280768196507834557927401565184014773639619398843256853535870834884087896716648575302062920987328294669316275905213647829343844987623885438620798380117457868493571262384931456921060396931161124398478328481085560087072511477035393442789189510548289996574053975046709953030132256528847167217109149405323116029942471549553690913150689464370816986581900649708621063928721447682451842882051665588623922129978285064321954056185200303856515012912731205592382294564523641679878687748118906166618063517418127805436524901025152515091086521581349537232639094522780836386491225652842059144483657331609400248277925495121662316316361534776453672164434825177847789114781687164122820176734960522546955757138384855794238497902793637347909645020765475240380603588258732786201559001174873890989424109414769134876813339866870780721291924975641346253010573147856282934501051912245556234415716585016173987463339206000505708751673258036275675516281539958472871522017185497335111726853718479591558276437247467217384757069792551349128272449355424523912843344078009560019569613986619773821840296726453729786672986568465898893886132094232119082722279964751604153408718817255672783197863214058392323278443854679988192704481770956768005018798052080971200662373430083144085706023114398174528461231239178642905067693132638904590779097359835535262387702220701039583925747028503899736640044669585390653082103876720364128847875747584397949868712868095303961694997862632420561869185604476718649188292906518417829686256323849892735267368542038199097328913234602024013599658480358619547300787702683192623076560821954334896245711653577183397201601333911613684582880520901202898521225019700348348153382434126096463181328572094403949548421132862337464158041195185027759712811719657944383807157537430634980691739728202841404548739979603133136614775744402599939209383291446040500747007403526511067966573736054166998297606265709243199622855313302219466831450921373350546415548432273219711330325672061548903308374106406093003029759737041283074561906543692794677715219296084962626005208718379355763534096349475759343771512398729441390298414025676660400901059160883879891359054208560595916988749045256950893077483517970622363589932829865727456845051571294771837947839283214178726851168336373440338478552948445973564855704439416336353472860837368194187509219247755821319887610332433228235887578824780062455772722970452129160370700190190283156640866576357781875036599920396268402738926504772753379422847983747529083723495236619365765403500118865186415611170807538512384467574690124344711201582506611081133634292341072065609274034435766574472956220277773982017167112103751820746404237860072853070500714275916518246327193376867073831864053020907336664373320244088147371569262253834997524433480284881430596578423926702789449727534202429712400910726162151444247720773753274141639367150537874966183588657940405002592022771137338793235574400876230588727820919969527835862269428788079965701164566313272688000052103068451338588915337518865766787012252801533859153365532103035208730051001237085395409903541875773026382707770478019093164698165646361247417792054682138268515776088891981931231992783528481369556388237954310351342576117876781602733553008468038957149823298874348128755665180832565639862150808949248699589830702459638363769121104498169213055316242718856675613921724730827186337748048216364759778067798566476986648921127907172768166538833246112417165649126728160878109678098236167637713184963458735530246872202908197473753825026421118998854730320723974928590782782222988335247042063060649215872199005617395227724177153156940500953817419341808727825683344023945927034521994352972745009089220241217772970599076807687214920821626885388805956291606675681127736137641269453313622989186858193112608184346490789700055077573079217768148859900984773444576766041274780348602990532275237188958218941255777190090978068881679078245104068420908577750828998508556515053730267255467481428362014894015763053334599501114365818452260394994961587585647242483132423725411824309001712106233662973875149401703504254772521607627301098458357831271421106526103667651735845062689467490922995044890354233762357644863696949508989657012419008150590458294802191832204665800336285068231748966053865835955431426204781994607128650417282515370752387970027169639450263589083968337486061578653710099446187051130224382128406863352635743680860950170282558607998759634016461252032008115223933747964233466268204068099314133128420624135581300044098660449300845875088897849906926962511536803120890816083842347893796221699156466647715121886979225134176529243913292888126023433256811922260388324734255926298907328611557994447317855982173736793787687049064224614083068846214345234315299480272310451636324411852947164993121164645884102555416885394187989272793046260231920663234551648133345586236640120565860539477181753705892591234151124976538420522264165984604772179695976897022925690727296379009313341969152199197575617469932027188209764337651113785975308338897765930271517694213234256595824343393605005948594204695381992245260011930643329774233484845070859900300190492336975228131876906253558800033587979925601846940797397806591847591490327281420465872075017354980955577447195602873920227049838779787273557893479159480558464967603742409345436770022353421521313249518338152748381059061899985123145694544003189376119205741326230154388622505936539318132954157755614845205363495505348473262706012729873976918977731570284265626426919653024103521254952084556027772169498660617115297859217302965644429402278059451330640195082406658211871508085991685663253020355762259645985672412244543825897406122062421081097332519350285285600011951247284369601015031041825582356296825405994998490241140876518494316496189241213092900472291865991007283135986381468288948315774934785074402340418527767898797483728123268462426560868354633004625429481151531912941035579700473240252060307431273006323037347287789706279002992916804218363178313732437655666894816083926532557055203977893492372346050145679218926470887415079436940115802792311306866772684908098336754485588730333443017474516452575754337065328345795975742738226620044292713257076370843888716815962043182882752381541295838898990917971398095849574496302094103317588382239476187235230782547360240618780616556269986132029287445477557378903380764539462341951536444996260101506010789889764569056082114157638852089704288324811637827431488556572002135825839016905520605010745767657415781191438157715906362847398526956327598787373778666568424254646239865054562367494147573254338991822072272018293591068187973463075140455687833100819508507115691684061100060151302672225760278991396660752545863388295887075227546423297101701693848501391772919002978684442394949353478309879036739721784559294977430266273131058506865405102285922222827302278986325770899075907605077605371554510061487090586273214803202473894652318715736155194454851755414940970473745487233183886174632873462082626754983975608530267922556669738585079168317473708609315688708318550926992652427974979145506815657383201450685577083190178858529402581076107326131160524292364713467083100122780810005982658373303175002502538404796369777689318033434851109382295099346617540141709926641545544721981612190374497094472093335948122196125744368726241339293200287601398963861237096204922480990156071190187435714716217958086351511094782597113030512579333603648839911711082564399792527329078818819929732504761416277931202190485678429025564782457234644415109258667143052562161191949087451472975809946873868448107866859289584608028461615378029678129819167709280947089621588881456159245321125137993362879638925416841797669256264531287120003492968472662361581596819695344013156561956613638999077298282743495841111207101599634993531255620856890322936905034554496374765082755138371958187131685093408139012589782443734436684564314593629090731871164157125953988079375561622108320978384837333655198658495067114628576436099151925225048183116449369929298533151185947177551542678310860579843661628061820157207744879213916787326534317989275978104583103513138874343074298645068860497118483224130589247495608265331367851481434456376803426650856351658421612156667068753449482241024190692105314812663580725126054554796140757852836023721542443466503097009888862955784975199436096154132598159636108851846611307244992833918812929461823706478580898334398582870735626321408023066421342646645275008593305257056945190049776993085615536138341330735751577959566686702107277432205076684613954891729305610548261143759852413269245274647189672063366112334133393123797843366492710542770923977646220517553508039057169008444473846811139265098853534122215114098932172659529544487510816572274802388607319094998260323223132014548674250791755797773804786596718933856138757337619050754116058150600886452146009200385131797661002511008074290291614704432503090912680541942754336700642082572712518906768471845357228642287159076160014759550606641599676504409634552592004719845128692567066378892262311827132442069907168418961104775449659770633494528985803222006699549190645467440672177835656192956041151212001465781442173415067358961286288151145651436277708287882600826392424616910358933321282866587533245766573811230200560551750268829393313702126486936874505752760854558417519752450075225993659874283094799374771843309429665869303435958344579552781299597666430104280941328451288336092426520033801889870701263709192645538611152381971637228858338024735415226334412127461848270095968437001774579124526490236059682503772036525196206048128961799424540746984003483447282737018530213770762273006933350373814284898326976652041665299033304180380911161789004071790927574190830761309297731319279326507796435949957659802373408495270873296898822567808727017028907357839313253391116942321822893526984736861253973500715783341766492341148404892749233961848491921775975473771214109297042293750376807235335591193732074331555182652772818678211077753091633306743935044460832573807436996922173824835567679549423887331223988022964739713780656051944306461251038397818138746166283065515897373248281071789869375048736219603190015837018162242053606795371710682380864303304965951047235480223435475292575131446019822836465566878227442490246329782376112005590926899817880193546398296966464706943933900069956289844251548891408236137789174388786055365091495255845138320848238447037310110787590810958226555371909016240327846694893662020458023990728891591257487740752051573245575088057007978973154225024716949788618665053283777392626379424532427933212171747871744663581310243592007614797649875902162908387564518166034229344531454618027644282722607796186446086126629718230725992987158512131041110639641517671006729236360899221310296302838454455197683514225087229141535519305094262127169326074385328267743435776834119765206946741131419619729965694292523459377689383864452838306079868902413917384271486579858522065812071199990447849035605334920809166283436914667444421508840450888763618605158592400628163255186217233198095318608274083114703374460755005928189230861036956194394677648604938913589947113928065903612608076441388229982050376310827985124310781061024377934131238878264630999961883071305406855532989539177868720295741740287705063336355887498192508513014842612726132697632242768403776441376941991373006818651830370701513937585951882700822861535644984836165726558031897390427912281028004307521068143780585444374914546038998598196021098855688419082395474613323363448795960116492163000018275009134615887092835462309848711913839375785525340665184018118400976696278219519968240013449004502054235166680507939420396550186280748203291144917512819637699269981032420089114085820783153147677532067012385926639689845105947321311173184062983665040305571841433914000222656387777672772016772486916101710894731483321316056612225863391971645226088780407199791200301507658772152626502635357443986624157528230397789359890361803699426190960921157639131123052086268604547581371799725074401721510410028754710036034553394615069580506536310852415843236516810531402278555451646030362173496645465360753334884683188236037987538886617861919270474899118534041331880425407746469544017660281500745619734429048976107280186651347573760202955885696941554775247256142169490800307337421792135656512200793643026520656511250461810405876350179218730352109805319148005975188643872380224846514394125101170029401089289598910910077535039883218710155061898787781837779960572742775715910896577194952083830248074469667820780891223724305400111785345490049148526868017980334295205520924487009637929802438793469303498376636618529896011165334406925072371444052298614713878124418693101229739031926408750131298796112619773477563254484258387926830409705992438942863638212014308558281683174036484842773171650633295942523590006925480604667780497769286554558814055839614854768073622783762105707260107312046708980952843272805768557293270306688372307764244602340321249879038513515192222686194974153036770888220132300494437883047782763453277877255568152839345741656679862373114847827139154955265047254189978734891773363298376367814146707176001712130531670628767001833749386785024806467401983107035993987847905485034873259895322454485738769601883624815439833679813078846460701553971132729930625087925550544964770648306818264735637626085051510040479106480970726573287497292843605894897717808944958591336325613906112467599596368811393887417068491411026372366720768019260008466874194946849639517569461123317006408556652109526075234510769824123651201850829911145784200396155305444656730263762375469338215755111418962164152057550402815333415232732518309474719363126744430503550737827267864825139982478416566270469862895977025402323762113639549189230820234173860460815796968951522208497581062261800556502461451971576669077464674620915628938901342168635946120191904869473999706586115901836944086139737921621220199213308934412412151281248879318910815346002117610423135409184000725019794259476913375276887931044628335800556884156277713380564290125994887502852463398243413759108523300461241888692942446383015945185004742102308345486726289474922494389361057706176631773592469765303116051373869355701130104165117224197228720907307236724993682992047943884425148135782404075183079318710073233840810689353512070368127300513622113243392553363112565725110218310534031368785978917633797235788424951170517227740455846424227133110105101512397462682561426123360156349004652859699540371792143740796578325086482041775128529807006502816338348009994116807396322586572523200564902905291131354871588250514093959485253140813784140571127482810816407466173538475093557977501233167535084753438481551493291212067427736420930592761299522455647492037554291046128813046379562569271313046479031558068180401045231941192697792077531207143360061349906323528489726141348841799084778437316119936550484885306281295972335051537094695255822108756643094232616859883686930484029239385619141522286017782908750281301955026696109867669160649149271074216775981808795275625142236395972882515769073562867799621806345603460581280833804385209374663437663288810828997665983626248647212906001590324348901589769462662889824310027350095712402299816249088482372902298319834241015889358906587323365497393220948643113212911979117755526997419021085193963385558523996350762823993003193941263995200682189285539281552816088369277156774780988586497905575211546596873738667473690673360849331331806492962158569928571078716269282389520696708820617022598560476951086064446395978094884672419666933610424643280477579794229556103138169334461740089664376943972593228236222243341030347229835934806540433648519344108502675819991742410943558532019118165830258124343777415820824957959449325637110239698996926425850688961122760902901624146188721430668610571228953063784995248500577974276374812856471365798161080259579832405128504877564736907553869102556496554664421944065836219732412491034707897127139749432069512909845204389447755694309036140804838094760253206589362520508608005168710619495744718527225774458634219796073868787048960111269125272344503757455426651579833276944507525720678305962159496100134697898080256878835259919910413041177829686403397823785448216997340860522171723174864048510183607280483647160441880948515450925737107254091285925532324172699545514891134761085843418306676628753048618877536024548807125969429793724686332060558002022380019584826055360748929562074457169596421759304409674020295395130049455924286885041548675406045930564110142981293175124637594245176579013240324609733424913034688606844800650514037241471755697878566752700251441162323745341196284943754029058100625460172415022435639425374604911470745134951686639670851707643369102990860200124017269336494616508705935038762037089216361760670674824182711163315781422557823586640172344673695724250890156227778217664949627949898348835609979554109246426757423246720991099796133083319862497110817084451705995974969927297495002205846341705266694164393174180459986808661220819003286695847830251524253075467841992268173877660780640531151418700306486679643223612292839409330294691653434548106600204173529077261351582497615457594025438999360802571604877572578558530551608893884655944340365110965704031162180868139129889322539161450576066992203783112644438480069087968195429330089761673193585618656594721410055350021333433613305202982603700021209637686817542922220037935207203509523792939312497196418788558011783639618359995040586345823259073678076654849460811833046897421628788761408118867066777649376225082044946810778384199715460057822974342500644266897899947543347447633793268369369414854554726635386746082579936257739023563400800258102025677567581726277681936065444154326752674727465733019550799657375559244571323347908136140368268464039153855227911388280589835560297924876487357613504855984936321528318067520428389023886958704706002624191944904190819158007832499301078885583027648974565391285115771525537257025363345875391763712029292684381483601558620479224364379110161710235169995382839370878123159659963472271158986368047647449748458983570844868175117526513175530724145537024234396004522476000835002821350158925000759183162827587351973690835714148050793442956551362838029214982081824401705589722136372271523812582534905516571545035664260745027981927176074872558710655822849064608649649837522614214839680142174587107400294423423340385488668043187437095785973552084674409891448596018319286831862623459253631535108540010005827892037790886114436147956979996732751516870275101531274120128679739949177824727564243949526578824948094326171726328817944704974364232712548447355645540700952743944830019995531293289291290752742771662346511325822711354186422287619908780883290058214514702027647797528843580982949618446610453926206791432353783431937640409351938894729668569322499389740256810300517372319325443020451584236550102168373014855782816712885741618326979538673118550935702097939095446753041442030037591402636111881048661240563920731270732629546580470621652556228104448341912858713319933057779083036525714574235302392082018497005503511543628795471564253913003319123599186589901438384057948783229418963554947196424487316708081147933004765793151456157760663565507405137872512558608395119747849387784786124298009243826216878408550343626020539725301299739261271518870408439278818333705598952753668442720050456189935438580092652283893470638549810034953537639094442752050300103207740169493756199896576949352712424517385838718653943446495918322907664399131953590221630382609841800569205142118237357873154562011706460016998399187525271911546416851584857456084136269983954873419515725975311678214080920214782469749426944619342290501057813171736732167383542986879563232410475922674883415608237475206122874863100386336796665646118200905347314563130303058664419331982074632325755294770534790314087903393676874328537221558750273809488125290263784495115191706687971045397709624258284358043745341781993863711467848424996686590522267142417364454010012008787357060024010763761161282280075878430342564255859077510922349457325123035353638160134615474509801238130733094896204222562986967539893843668090796077914457809991665767730186922219945959696702800183095075583179737901925189308440696357828276270331397527051871901360068940713743487137450893895996448135568621868027635485333332159793351196154606256510484474527703032283659046900634923497834145058318113157465302848099842155040839497777805359397129028602261430561620610686456958051440962325891287024402440143207807132119293108700813059956223459062354489413940939956405977085018900414556093877918916826087911607163256678375618010150763151502541616369690283238897783817163017827545251802657251971896511862936347319898421137707707507458660255960581848701462910349875032002824929793631197080942541504630039496497576549386225995766465122599283191309593030121276972594396179835428707270898550811099881637215218421628949505717832874110753256256667763685244620595013590284521739788529793813429410745507032434744171617188215934404348508252242939304081407175252820866244860352628125738086140335177448629191193403802582434256238838669566226229553832345611526259034430666962494510390202005001954187464328987665411511443255447125435587897556677928518169488428301375694888919473402907927173839459926459152001410171581220742772327511931150166623182599298458933436467895195805251066518731327880348027729994951138532567750675430109115219922442877362803376139429222353668801725891371689210932247049349415772157638590360958243583249382570428740097059359889215030994115764370069325193876978519088012382210404306766951882749641167225832823633906244401762613115722568257613829236454231161245898002867072079302547157879646579074644679014191160997834484000168094871347468071353282646528082115646194664077692407913815228836310669689642247349056033730747453885450844316544650964675348175069770103667134398463282651132166929955905656826907871234862411543607630341597120597040531153145376774590595834112117164671024243917003551782003873890132283216176967329457464156500609712533560005333194420124715437414039516471440179100733985500516788261388507645357289593650846245773131992821093291792618541247760567810146290736971385989220736615802596393629662391323177862169456451726842358911386070013493461769073961304979829209121050936096958816115147939537856923740814254069899357271058811328251336001845520983177241383698289434758704848753443225695543601389215742532528798926483670350227861799066828412152568287547807167187117142039879727429546641778486892833806418428599783432268508170111486394848001254917139457555205596625645955285780891906484169755851053503660752200819306951228523759475643612449611407086852117946533361632903784594827523251107263626180786545913647573446315391521590962115489784535242717230133853979100108681869174743692737697491006464950057076961522412777125393593340443321587186792153283640199101140124130019124891936926565077398807115618943015483227029370408991819193217548430901107415554163759782184823316637246288045962055492735225368317659563840399416990036986286070852385903357926892343568003816469184162526043796254622752490468283440380903010485568808162388270856406861793139486706730723366560543838163948085983833169587947325815355522866385608403974505072133454091942108162946844975251986655307584748651147873903924284530504840445059661022864089390778402234537457090105774491095947250540467533768045804534021888810167542512609355716321072220378691660254759946985352798533046880047673371265394914183709038586348703965699841763768971343084699701763098283744904112760938324779814139158921756171246230551003404071236586461353915717213333339964106711202887621889538594363089991804422823829450287108602391726612888752850252085770889705763767845181366300722833769811554461455887809930989535430641015497693511126859590277084621765301328710242931494214650436246001189589705341841086871006134413063777082579796163825323435184824026259506072581397232926964674704365347123324064362849527290372898326039504915771244375144953599041160643269061895739399835213206351405667498045414764978088667543580016307955505100261583413698720052226944830764343730047031586246629119130428192997887599873452339287016314048893770975546791305440361063408298934922751430377543255287672933082594041695172045979434782901772506652430269517817697357164129385179518779381063630351573754085611830122767842968889937905631730416815364489684481167167285798333108347750968119425814479128049120091127738395806841136671770396250424899730906285114781115802779269998337868974530933300987221164655971732945782547196999534779568748136508822155065538678829182564028223726168352771169272968753662900431096786988742536467395556733989047602847923426264901870681618623293727090009493827057226368796523898887101893748587670940805733773764221848058034952733166361921490577893406772595321111406208668327690372337862224949148052036364068700197270213570129393355813823125569030208984439688139278327947676922927183337957022576857917363164673046266525994497549931496067861469397159018235541833831422515235566151377746812342958991068610154409169027227567919026879118394286103111799152570700704176625560830776776730019145519665814038235208470301000145532060371766875419566768588950249605444977777186332937686745260334552283789670050421001377157302834898237014458890096185333291180829373876714072596452848601317503795880406382993430571779445904041985021741313678912379636780952486085453168579171118839211171095588934521185038585210481603902238210915296886557676171270622617826735592398351351999858912708359917138799940631659737475349907613633514492399948967967152763032703839822445041020434009383608570538710626029867595606602642405438355564605532500656127717539863435813140376367750581879719391320743532785503381837903454646389163723156628990354742192514095366633484564380339612751668066286761737687239389677441935518473652590361014080475095700599149793203434680937506213933774280037987688524192226848143198817355716997083341561323726344550730314645363986196352675280150702706734105385280737901481028626449355354982331033891518703262669616331713522846375927492060486381387558195652595236327819643615438707562622558456417325720068369550148831808696313376417775505373874521444252851723250857641982112741437017744840985158816132616369813585562289661434654106838224346533907029388798773607456424787919002705065824410649205963678813837660757407690825228181812016911068748179689193799233180617905469741091639523926701817897088850185233186907462016349945686390637463718694821891988223459781451969655298554236930503230789862347261722662208720727216334688562917682880760167289463955942236910381648254757679051175113675981758119233300317578995440859209110207044326150786042509476308084484319710481003753917698670009170020421329666114823012584138797304862233148614948239879239670212944170740792730858303204535257941887946600927127518317266414449675597111599421031170093501406073487213384803512851558982469590603100830687959694331717088284707082292423114419120481768119762196376223814063172544631671727525126841593144408760760401111372380810413031703481346056682798771479566766115585446323075650278970387948455136377175434459922164323223573003276374350567454888479962822781140635762239942568536547333557063227699429558971116456538364979750902360154195640784561914517377001243082280619030550677180380451435194569099498641693988457202726171953424103115357254669131634886082217435065721392972592612761437070389432972112157376275039402916718554369765577586705550041130557881263812373778760208349831769959560402766042519201622894120610640975958024306530978970812189102770440802477219513412121993306897530275515379458997782403160697924250973206402231391717976926974254253167490123947110821635928647112323526141867524272720347980810486706815812707000463277089093159482732386769806140240917329549787991924708181639680862945275566443743635901199589041924290720955627246348359235871007187220103495431190914666413667405372887451302189040754347580452411030667549126920615498753386474827087525131364330036561613902199700665880613154448503058208761547754783527053928298042798167542545542534687082928658171517253365507152523777478880252414250150844776637313174821693336045878807687377705771264286945025555494264300373569942367654298469409307754900252034206394521455285223016206334517611891301805141639072161650358135471224739872541734225883755374489136289420613111362501563963535971837813865745845421001272090851647239810438225417738609899548242688137813515665288155885283039229327542093470122080996591398981538139334689528143279377049732618982020322703012894700454055233452818441079862495846058875182312782619006987021286799852057575791409830442259694638846334693454735059584899986418206205878108778039306438901728198713242145243200955975404462774382713996786738208064256554262423343527575953620071524426649791190200950386024564056604041074960650696174332603424546262886232835918461297427858788387944125067163584419955034493049947611318043999079589997127635363965771327990019114423668202165856425671134758893387575078267569177565704002117614306305970209205291275413955590319506908643589055403571684243700027339964823134164747238500268837417568784005474218981799794415958258063526544610901237105296310286405359209610143339787288208735015366642178567329096115109320642104354777294331073206109548367611096334364863828860000886539537305297395267474588192116619458733910383068676899691285159648922497263394447612197830260255654873948088353507006874576386571306412204905448969037756553185548824873838854277486922538928504847314830821653027830697578902469813639825357363549270814448585725920908134581204705354664493186552226660352494794160501223453993538606874770600335023215959645357467335420344525540545480427534470960152263286308667828607548567276009608734865292852597573147515030399863083614598474436021801497869491267396532680450462701883982468581385598078666512596769013141451495917058531008863389778821397559950559114863428392002662015071551103225457677673906003686289265514367886323109400921613966083777607063966832168406298788874721698299910342498569478581479087397803606524320337504954246195142497278640874483792261704094820345958381377061548505026317130864047938792054391169152250387450834874773296343559927811165711491836456413189671452783068498714857443804128334814974306791736030238438230102052903378892261557618256472703036926000059247798986734191788221146680602291656419646263613716354152020783470835423079147306546857413397429858615890459623078515745210588085353560012707643663392259758030301889610215526498323442154743733569116863034437448019408986094417377578543868909376247016300336170243259699326025944049844269071676696505614446658954574191776528467470354446920230824564665785867050568590558341097259943145342987396661585304529346595820999099961218567320640701742969045361424481781133453617686732907915582019489342835668168593386125025367073089456914246555476418147870335974957923799420425334688710625758558869348106979584109965389340504584079380613050704846799058595050163784773688653043947405941443239687153006754024027564800664540991687097449024763252203053472563818702006950928104385750629839657373499509303342008265812266790543376859231160883844389482307223771825510225291899483246702768261743763380366734584593053476018899864560202283723548418410507824559303876697549320533909129290715466490939237507873617518659284898772569548564443748699910214784235076592221767401411886312324760686455219981836676350422641609304493995078126378127772698593519854818948493763011786151521134795253062945846901421436265860676561011946849174094748134998074022353840896363063595011182827129141273232281875281584223658819243674537184815079580649540747650721353241715720402959543824722060331651569130654388967908257018298441554221701833799119158444492908338648069382553265487050861566470166466148119576382109887467898464900631228412521421060375197726766578954818491749843972963995233814878950922679735178043475950304781939132124202729306619994507735462291862245262131037648719003423209991194246345113615608757526479124215249060627717030133956814352680804128769626248120666740924868603899597049547203113701548231019078654923062976733311167398257199719266206865356936689251736878998035618390099740718410728584357958315989238382985379297673386181491752311581291063936480764460208616235596347537232868887622759044344414580726596301615268179485842714071657014495412778719434466252293811014623349751647203578305351269994595131590066883689936373172804675487576457812339980918172349541925952216209716408074381644714679034940824607861969038123030219260534215376963219094509576569867008854762717453948264927987823095036559175669046272789329342874116620399329371441798720455858812598859916603393136656861925461698090682869224029358840520434022431017771926387272742541069176482404455495371414406201644503050519092925491106947488795691090786185263587406364389380650686288404314778786785033346287089132159534677405107151048321502709702696584441870704118795910884645098800607783584689566946684186112925338181636442867129270477904501608319404587789158943987478416561291353245328306796429908879155424818173735134741503343378362562172616677490423120963047959007681209807045863842708675785539534957429039211633353716373497386029514785012996794004267175867440147707181073585852932976779548846229413208941272433129607482189041788425681859033209004343768574935361578592560499991873475463428285506644592383006327024705832523645113687436476419735534201060959846871028035336770923756937637972058291174201291158447001006205371437701712490669148482070461146303659945793553683457172435840865185820970242939030015969286751241246470851492624839130737001905306722347476859338250035204020185361566509540541143302925361677851531627273665359321128766778035059736675178814506270995097923875427920655606484527227655536428047119634104815548009561657692811844029609746934206100911238260493596341740033656384850833064763442320604561304093918364480012780208978604414806463196299656574482198881704053580531774980645644799132790142337814186845909116462191235917810535284052539819528142850613122341361811822846692865730438346084681147185226016125214167911830178436616497903864932044900624955302972488357483435744335544940866867293219338089933297502131403923572340479371491293019079718198974286136921570223171784660979472425109833390909873478704081064593943642198478091355016527445311459536408009063586731115696178578862467718524475615154483520116607784418146924168010853459355594048491339882214452737451791865637054442189028800276383032066040787636832048513503681450968845333200414459222854295634134766197842303907709907289997163399675123621735509167661125903617723935169354047515716458300813268620121667821224073531163421097467127221648954372540731516227389158976610276891113672345943768190586111602745073469328648795778581743536845080923206916099455108750186628966642357585297736509612288235755198388573392655013130530664405573251227129556117135100862207854786852129466475604836398740457919238955428645926151502247602806323639248719311599094496166925074501899492177662646651322500970526610751052448353548592480241167240608116869165842726535424279156469323068901550938139833888055035661744841042415220957027859370757146874475443333355093300472531206558878447185326474821066601963538742675265872780388100942682497435027996693930043207245966225350778558581933664683366854154505519179260098549477312995820673036275331978109966452032817772767552841821998585580748073914234865367050981672551476420451951513949768859065690874836745648919478464411818889154110522480001161340524964046622459289688269129826056340345667282174992108759415195523619859117125548832191566284140462955771121480926518409437271521165457677126224753475926147329917546099990498163408806667685571555972683528167450546433101138774088984912905776811306975823598584278734586321349493327135418295166679246607214288746460463246564645954503495738373305559993248133287071008512305004926525888343247494604147480470965119903342006015644162449547243383466654824386385511267230374803855861000565753611219719466404310826637293547899929910072011122807366675616230265706988451390550109575953593433174821665016197000966727189071449848163266271135552547763585183643753196403230510234210661549559335431703192332559387172375762828029374246358621570830994666801867922380567395167099080404504743109429816477808530581942995427871948146907313614380123176959841397169637760111863939929311279188028485886297518274027576192857305097973448916158995989225857671168227382652920434527144894630219957522853200335584595433191017608012638858798839339870020257709045411352651056641247265939650413291491908142824493782466981274728938115846035370094072686689639513765904373573698968190055523555913358365040863174791697441786419400344446288181770409108228483836480921423377741831435072886964757848802052892958342436512808256555938939746663597971935685097323190191807219542056289033637210570066971172622570234571848667063729415711702089881488364178423051235308362975027919392259125412457820743831214122862933398303102863655733868744959121713291584258149486215664126637790134976470513728339055531867210219772937394221041215591453722651857951031599245511478605386603312755913904003747572879265634064378819246746326088944558541924839410112631189967175621296062800046492848237991905706135429216963249179245843977630024773294755039750113498141611440291445085060797148664869317408309818245852226371354726916659104841886416319646598796109600262847043083767384117974998798249921339827759811498779216193358554027700916946597297796752953661982123356619090524168985715050283382015673104979554858772312001643522935748295447589015443177953256477028638925985376771487273778424106288819482765052745612246187030131481237225158262756088969828914034082008537334393200202107228989250000416390661449809088982332778281296763315155422289103151544514737655163358570924975327352319200071956975361666911424296123970299893634665090074823083479536046988970752457597835593441764313450595219303710113795309603179056269890458885057792556220435460905674244859960657971602223018515505104140755878653003077154471382007224648007548934699333546653056165293741697417030482792246786834015649215655429752944163108971419650988452983436197768389912350554067528233705315091043712292982914458096349394463997371805058187319453461514268946825616890229566700188257889733665040993065203398654597410088208046622756277975177708342370710713602192569941364154542418719587216536838454125814662588669446200172038760916386639009674273573361887688890376832489660952554933719148691002496470573427215341123804622164509044841398601996024308704356558931661524817450703127649447900006474387021439570321334473094466891630061827869621601225666523007771705473418861185909034119292976325193640546783208529661876314628940146625573967704748649891080307928978224484395427035452339952651081210828529303924553421990646539400652811243513319849653540266461468346286149615662993156528118034934848523336816463040244949476414869192817556358379301630485882297005264256860149571726839303467105763354857728540325699517049840978420990018706070912669515389356919053298032679033104782564760637755846978555199921860313784981393480035054836923649871862778370667714953549049726966289683022599102685268168886007878179362200817147795401494451459432597427323373006625619601197135545027006542894647489584650846488897602221820358954684989284338711274129201175937609577366953759897930192901678119539933306615148247567605177606774083005996302903119863176409632650223448480873651745048630769423075743709626214674237782384263170853969962319538505367313389622199362348932019964798256302485196892415352631394048051728628047196892416762462829115597454212815896505672144306729247387866398673710473030499314590019242707852055295613652731006336858894909818495985797163308221606364826204037235762993271718039185217128237370423130881479648869066600579331603351490357210420072293972978125090052004349336336604695282855641048953251598947077512459825768765388476904534407926260316455613039657660617165758864902363348354936636586024723822134402376747992399649221572508931627912335418426869228644294508589425641816477264157647477340025212210458777190564114224016902412533765540232070599742369625129858445836152428008943041438962841494738209913466696397387329247100227085935766736015749673353616124996688965825919936614732630218996430796062663125706165056641593967557477177815088690689415019457924963185754033133490625612073781661181389699068550610102803252600198688364585740213501195265244811485219111294717985044802850684967053699286528626045321143411474378867479561838406214813351370776070998850163395285444780272722915466064152200936075616020974438182567217905738311993257790824638226807124739605772923518417118421746461719893117339733472195843773520137282921658404833896939887387334914075225121466913418108658857230827600389094569067858352601840316848467087203141551910444708004792653960496577608037683578821581103589006023919227459396115238124984082504269094589325759895775517856947028377799928886982720798516596953339303996125517825231376450759822607018700339582336556067337998878683543757491693681240341362834153349179045631897763691058506792778857278603149090113489940771951378168840921894748510625033403549079541792953110277245969559365149575190878722690790724352919387658950391955532247722517598184294842249266570285134245285307484652610269648515102992535231226557002170116149075958161710585589322631089211577433908313343230357863933512750854882717866569956414175901091134962751339560162471346874993939699053454506874349623863001266814295676678919567387777915306292131319426291160354125341691982190115209601222959559722977166940692077891147945737627178398590808059522834336441050445211008957535988420972467285445159459870716451081655880618512321368316967766987467128254511763617398095676141722901317873853655423675992762637417895701998501754171661520916253283434554683361483494763868488129049845598576223347063004570308914661403345913288559309514543822073193810375175397379499971536230923870048969816722628507512137193272334894794770822541908144960402470340399764643022445523464624440905410523701157701827147846031779486847457667585278733502384089807017172319932496962217957831875693482902173613572543243681538682501004771402601175435253624782675294264916600760368943859806336453253805705127594843188255094530212364406453953153411527050746098808886778531467119644097049801410170074823480561663361328671958815483966789631141418145968680578126085539722351884030203167458368528348433293898905906970128253199331379297981326846787956586455655879210301410876679471952045128455861999473347435413522704849048065892995294353546629891007313192758903790588437276415736348520682043908177278373483885455129790129295490010793927650815286883452266853173985167052543884925563907846371230004902840333693194844329221653939883667166671540457245853903317205946246906080925516619784882655764470191202427009411299470670907910208262365481112104335130828599557616440688878394118265680028487105548701432634196351768030644897012489682424859672579322267906797799045268519764451832707117988180270309223267082884871849126444576358003404550860808962968823611593656464418057046087881605586685802747120296253464290222849641920580939658397586056446306972231816939078436179641893005300178713843920190600712152059755528789914921248461567286304714428005817300333881294392190386253717074768537067985333204815818640869824779133558948127805945685511049795947704207490114133612947185599194472282429668061119628081537307919779937937588963833141034901767828217599502125998948756150980343591798289135782717926128357969894747220541541651404621333977425643702947778415874599260718872836243217573508962480183373044516554653475460829378377244123755346277872553295143202511150581910087122146079715698574520432597992037771806651391947348326946855595816529492470331889270215769868987314432705434275226869878684759625642417974623103420514007797454528908757352213991112172771516199850472419651112524965900089980592863909299503414445659312819121982224789371918502102898275569849324215898521367752638900544479760612568786255572280601754025839695884834890598231546363805805743658639151410247711926980159357412133751375417520837834131225989952285817263942078669701913415672246514349846488034810948759466596304286364560221374891676238114345566718222007790683232434501974095233962886091381455183619939574502421490513724885625004919742789356583891852846838636720301160412622585686424311996965191723903292001033868883032080585989713609280455894414571773680812413695333513949668868495935416125119488788144820982615901656599239346842645732147542442377000245291768759132164822297695576924263473536056684119987086954796713146198992139172334132944845441275579034984982716916948339786860656087875033568481925766662573515476004702813538309667019570380977792451384186093397959934568053697906750067262541298005970811124627697057772780693671187350625793958269032994597729164594025396914323172349056161124058504020284604924104457167022660836420337411588593727269219917540515521715700461998750234958146796794202070650059134852892903459183080825317884744470447561192705301540717070902670906916498853695461462539917654061710957123055266427902871922887994869279861516225564407488792342803772582614156087810742809423841268487680233504114688410948458377730510284337747639709878876532258188883486952133164449266532089755720452911249852469442023743617127194421596730812683384062131633109480859211923116332850723294327388159146261015307273798703095223136666230302693561917184407524092381249899582233411798324559602417960043786915547099298529353943818974370580074596427501915978631688841797252670657394103840811686018730676579577476877955308294280666597557325908031709095782039472216263739003146147443479654003846392922972993494465109701814700170848270400110016044180120111351264211883113943954754275955232597444776654676432203195997135302693576921872896301104606376153346151204661618568991984505255608019100651008282593143115226545202613479905807856077269119709663690972851266112915938012290103348527478242541214121707343345443604719969033411714913774720681786140322616665108573029546653794832456204859319192326919874302148488819142785599475024399862567868351837296740668712333094799974294832962188905904451027903950855864873060285734608827745817698970485419880006513988102299839788653271731519638959831165145280667631327899922321097005215949006930609893351401282667702953399759970990587642160086670254845201897253547698569378438156980482835426118266962910208761282692996789003371396613644166857336795575964631047277577532364347145760025191377761618588266053158556393160568987198768944790940669348907755874893390755206933621840748599662630905509265695325532931986420087910074486823090703067372387076683316939616224460247198108301651237514151967109294489061248424936916117055664704941342893911437125660527407834508214793379220716570217920838843717652232413200745639904094900835080365269676889098400529239262778188069413572559811095686754895129376086335497475619325021946555849422110684424419274918590191915284000304911881936057497486325195905091470877836276848919634557801832631512247222558663944385797019715009291207785927806829673637130449267340878292922690715936820091554604192839844766462203954734638628067453964399200327415503218546659890743949442118696143894141058262046758304817703259032646877025015213312636131979570787825179732022830528428842994461834003661368532362393902329199674382963489363848463216652939338395748105272814185382563889162571566102294039346383991624965697114565636388027326078725459253592244004389411880267415157760402477105466323504725955847418444553030162576795700467299566277772079420526694589251665139894543703685979769799493920531019533971839134914866123121343520684965126962203954602892012852729328864934484588856938633121405767541864277576522498544292469331131105195712820263915739392971873420298329373414131226956150039403612012303180174310154264698533019964238158100232960564263172248638736224211691748422472418517746789338631341485859889003442176322094727797776281681757514636738632632046063916603080441428449453811887074481141086048800462100984991237378679487918239124762527231383424485826331023574795884430910900244489231374554104387300906436039491469464622965593139428746332341828747062209700427648001701589735541925006761071454003651223331719499444265045283902104157623748791262278447561056771825897830978492149123754338242548777788888956448544570104730985696231484666431226522672452086077624911965142055204436819846255772104205238702733951124427481488181340972426638924290939872974264684979022687878191036440036066496762127745439446128299080042891178293593239324902498219605241987771760145078447158459961375287356099934227530462112984420635204537366158232530737790435130413414431204636416794805025147573303433496568063418268989999718072213215234292977005601231884406710757291334340058165790624076037483724025844215055801631517669842075686466173706770527487882827293211042722358928066743465788710721004820848170656994038859618162157863932430706589801614699780425172422979123815005780294862675460519360028002864305860397112044369349597809159298030648620207660277522059331551091957595186706106018795680227233273894111082944471171219728835277899005368657634701540098152705213291989433550249960103576657793296341162843784724835937612748254117980179995193458025347839682076885390946160550032578863418982892236179712798360727870125712023700691252204733411775542442202003052627972880204235460014525946677325479819623725849893184633814800191685699400817283811001384855510518149765552535383595971424291043092663237457502404499767668191856334985623416204927028295895129429397442463726941056971271653964296173475657042906519970219022161533371319201827268430277010787322408134482463243793173310120149303566474674662333155980368374926329852801879065433036191259533200342411233557037969065404878074128725958714417104732072056451681860377512766798392907378650367087556799163675189558332774012995496952461813340482343701104592476355449971064138618437336394084843365191986982874342734417850478393868846738263016425097591080879523785891328302241868299108721523511236879114235597068323951779129045616644661525120949524351162150611564849937774794930280259470428028404292137724781846654995506889462294074866458852818602616150002013750569961814319771333161840696124744366110576625456779336532370672067749308897059732078931884409987213758994908055879721124663848517346343501690406410820161334857273115270069917802725684290624264479477254826351714581156408518936703847288714303274459516798268734623692322206595722867780573284850604387187010911188050679988921124368382243425895896979402694256174879684518402520940013961355982355698808152742925110451263174686896790380906248462852752221087126711877626752500938905360912492984874094896922191071197608037888248972102453656975345402908803407939069478423792773061382109921854910865937852873387884819479890995970048339774725329443348829679236236014888491306119966535124935874357571328775218650947421699293157842889800275852414135547076885333707955749027604071403444010779153895678935868718283958298745231793779946374751287047315553134597788481298420676392406567011278723847485376548821364644053220475370203720089909043936459571692355176603747672953740878653438343244455993917144930397980731601762604584375232810239707593745907473698583236205704715840270911733318615565482415186013094238271301012100498237021615060728725377716493409485423344282755290019348612860989752421446722142224979305993258905954638566036584699989100746684461892838965933002987575052382152503995873956061528527867313284357321038056352204886858991026758746764890022385653046272155444142030884850737918806808324880756896131054921420906268729828956068938462906373378414267765305099697323194519076491254480152771147101470735416958408135938614320467400001755291279819999622302584253893531341730529093969335462782299025243245522961504376522582562286972632158688088461373662552507450128525598736736996767888558847817554460770706909675765148610451690624181538745529083746080115884981040230339333565345146628348853606077146536317333762722538461805998770514571161799127969415071964352345320438363763450104799002448167937720740006133707712140989040102298295281952455746541032449101334081370558356613731125302864920475264610233979728191982516575200152939156137657863069331891988692940114609434890320589902642049601121423788759700152743869245168401946933589638089264722383409628476257535159254462895917807528637768137706657707089153090576906253577449649652297196114562307919729361768681084805187469065238486350945462241659706228753043415729194215196000602108005876953863944435035444445272930846215146010870216873224496622298290408305286852552760350753158943082966051175243817227380143568739942587813717904159306578134227180697954883336421394818593228921803590871080742264185774873656748239427371826366145985443355014542326766183861529033264875460081244145698887373990573700888026441049661870752197933754414431965425667341663493608245356210477538488927640129105052453207887441279689788242625563315445797031245537634177950113667354718296366030816630646307193280744845054916374535140193425106311160744598925549745617070340574281458679668083983525884569093025076458306568296814354212267106254387354221623321846141611690276203571703137707813824156239745929818918143766420282260665852690138802766111684038787804966041004042661979429786929531665255983072540312362426439609848483491124355448027500068586381042025625202798781160981453468275377513857830405493116951041680294573163264243023587406781088990926260428597669336547187262738636125376097296067447574422786613103784848409917636098297144266432644419422405661595626988345162155493709096651201836214799153974792762994534335493686986085076879505116702208523575167602174869466618477740912454710964541095333913822933322151803167400936034876402376332345632801027988460738992028453996145840224694869669429646988204082502094208908322274974072431156417993763778913225912268836021146446386381681691522841802983398873374165810923075886525699700434450865147164302405197648158126519267887027671318433945114096584512323313736613101382436421015436120200522635823779050383565767109803052724746879400636656139472009322146408853288658593365712329343057549944216905241370406521446098521857407239886042070450382243592976313638613841595293410042559979090087170144903758986672144420189332988655638280359973640722090264115834195496234796157017928664423871565233623615334666447198450233465048814643324594889064369127333949923572116547072216496806797849815645110087022506539521462834395396866363923951130158151786848576524453694374290897371735390785196859559691874663005494639116999225435534482690033775118761009548703167440983046544974052900341148792570464592648929243872760211197828708811061567842265034535724427802795644873709322552463584277308544879014167209825947763305968494387992416595729771231824840010243720707720245877103805267418410747150768883563039773160562708032383913313708325941350967267399272692114140579395678823797427191545072202120097356070136158087091689967574260497409043580200979042970269526041198865662110620484663905878339084996608541116683868808990674037682211673121843883820036833311754245686547810741544077737010801221280421527452162998644279156028135903469381358307602179168312566911066159631937586411389326444921691283466894838789576394505327586745561675487367247160355156980841847676394525088526538787645447125219462611964632969101543873912206304410863434220179727355906252132256592030410444866137338609246193539266355415864759471070218613321396632326828022431665367366976745073115165725290097862062302776002488935843760059324547923643963828189307143875598425401001980371639108123238938160313318825901681506538056810084227639842911682804440997741730786428853853294871004346607641337831282168307949394245251019374921447997137398846605039077749590623654708149448497531208882952153311062088956879337133868058127114666267223241493062667650907606832630584638454040834573192573734438986171326225297325160398494155633732767524003573010882539119119385722818912341473438690333615064160310703944741634878816075580856392378768304984524940827217750793833080885275571985601689816615213581664412122370607320482169666589580308681821313604784673047922551326567665782769288750562409056319504997588592200263997106143463645854126218696805309286580275906240604970233270312110673223123822299685141707721186200130423114052335206422326912419853332473504951748720407872457383246354556753369917160295093732989802237852475261546516152967996610136478516236892945765945034165427384350795867104678823568435494974956239652776622309635073477399207114928740382862345029613622284986891616518808683213859501517144933256219732250779415398710214861866205727627676025538590700118962676880231924984466081733503231325654060135921485076095626742253208154863889214207709941655419642016098472465522367961408116856170190783602337014587480205009800606772389387572864519708093920031750456150949679196139663745285868451982031103627353286600724152430881723254632391357459135343851008291808165777495668727215925554026842363087671423113209782248252995136059438312185958271016858768827148869822812688940584649394318460475231802986980671708460204103508912578121151102209467533218992174949213849289104263079057472704968677614354374519555055355274216618559933402393156664714222477434153813889928305962239523679363300095335673140105707048375440159197493993755534225184766883323352485508752949072448889687808356094208415222182516276925810871140553650022365528622199143385866623663995534496198427254114102272613280426114896033417427586218461217281352667774661757279665680712766242313034608188485645126065629096156953714332758733840966522034040441479494493083559079796527324604718567360438484343954149225182059724478455248287242170614016355631162394644484760264388322970937266489446331632210797199664870177463776643576717748361412971055382818090822085845835672863337059067474585410755288208904330590210590007737725041487274282090810206131280240873542452268193369060302815325548708728180847174536045642052283886976285187956751884921002451355881377149676686032569830890550590701317099840815281593574567176484900829127438210112511350693063893742932853485220654246972691163428392303463049909703108941782594685121279668680241104645905174771666571481099232807109947108011484826183946292384450729935533808300992802474157571370801974706942076302563981404327660987642899681897916929423953306592024890219253346658381404517986057255709427641378788627502647297629667734647509348411294762305208184589167721273496267676255931661778411322584229355792012353348861425666815555171058362626098975519085627810735243585724043918327021953074462514762454131588090130762184062378575800400047968160331281960610119455878931788235702281732401520314683600035895355050461189299196140586328316459200218233594061684034488579485684349109687540468886252945567875065651707103674718079001036347771845811222433867335371103136200047963824634766707408745858364312622157162025354814013102988458057127843548143777052013935273320027034711548096269601015923693235755912436259912371208873164151248878117955339196633451741458655368474358283197120363040640398650151169640122142885670925924305079699317117316402198064000035206386031617757059239617548617329942143300031118221200874491373902142185387846827248171937226248553425527599531396074252662274315060033727651143070391036073006404776482579094428810256500301505361734488756964529210077718468559438390811207661359805107153251573050499729418033192504074974117726765008776945724638116287681213477334811256646607866639754980446146840638243255746382135673778029004159990870195330526794584690731236868969805230495605522092377273643643606264241788312680685073050218214338431095077032250428118074085002461213166399577724535415393428864729064425408867352679982440727069211155150761826594813690306460126853839734506675476870376294283006438780283741833742770392772632567061596413005916699215067756924600533941163403252579846567427205265200016788418544590093813264274172914982021466207736225084960911201240339332969614858094955391011876280029820943583573518913027933960623435979896291143193605327552535263536619039642172021219842249797214083805972452096574195768122525786455339590174316291261827481831007767695719213384111437781736386764372620830869362969323666957936782655828202280483267751877428677390267401356354227690972683955747083032594004371960656628148361850156338684268732045463338873821918279864619484735215176358026094567683906264899528313757579711593059761476406675127462067192049285619534124383406832696774499352544117943342201098049691609611396750021283209965958727168790056684118333018110221428833529454873603223720039693793610519124364682399555604307622341999814854043684787041196487279012970547279885528664788568503644289451506519060958480643212239489126312574123815107886608564835787268219905629139429704940140043923330931959773182646385048236395773728924813371399136401141861455381191099324578175966732545843138531550414797299939123261100462080067533272789273887697093283618246489627073080284905315369079152688755028340591826455517647773930062905790445169416689386391742178993921719293360600188022664320287401136903232645484906041663601169226888936372864959019485774940606890198652428157310794041048750028038801632153235697064254931163015662108137258597381800723243362033341506358859081917885112195693850347513190656169794955936046926783414252763240234640970665177767073230168805205886361779513911919645547948791732610228949850497334607048337467309726609457969261667234488663096743063537897783429517229915256179441315640661714597917816612982068292103655019973548553976778361332932822142791733269468733322140420972037368419727129572437811066702461055688965409569202815523378055745633363081431136641793046881979283330516390248234231774880172918214435677157685174279993331077727820816082027936383543126081213651668265725874192748274472344335211455354352603906380617844586215210618927557256624972266026767639580839141974347943896073132494876521269801534049550960958554837248341994471473815092727806162650648625486424841562610260161202947790920710509772958456000397948409910960693067353762458981452694524390667800458453168811479162563216915200155851771458789374323598058476342032413717949750686807460653456383758421053581605308315850446745494102007002264380833149286867313201839729646921307937248373426662872964993973571452898763711472562708411313645229564496681088766413142617281177658278325141002372312081336973134339717721748950941690981597015713426412630757210367611455292112142089909698160976619148514101208239423519898797229983728897191959507875380041945783388388654074298676329013804329366353069327476872275341329434646358446362933073065753742889150412422297657327836763064583991662535513978217629537775642164304586028009774470894967872869948491342140470031146196080428412508760947128619221200308783099183817569559106887179387897267137195074130128148613971514754149882579029898146444752683048647192745143717757058880643036451268005124004643793473272091486083877443655832421345042886558872566317462420072634536007368504111942935433303444793395146351640984750377089086233892268187845499954524991173388721076652190078543029354266952231619003668953765441590740321276478565505454011495267437854643743172137993227226415757645887380299813104175614106503222486598212026948079404385317702874495330223395422483517824493263925326271101066745491368615936490119680338646188119033764581761465979275697595942962471837532217436742263921706716204938936189106563518683906963455049370450710758648001311530995515181657047944345495086449287783795024002347918246428714909340722231051238665545703483673515367192186328282240178074349258418246219662220025035876757892847400019362330189808120002073709778364763916817482844035831838512490544095091831211897393421440540779859732300088847472694234033663716740750055843089485969049528354709088645885289165966007563024971285659065066423712620746544018664642303699964173814517577590843881878112076759482778705106650240288137576726624740813441601755891752692777004555091734624824854096386295776050260105192649544421132411203393795681255428990774791083576382425622169443441824047031763430895321043953961194763981327030846901336913594836452561471797453942303688347228387568224094130370861077364836739579768797760298894758379086963896340575944767914025224244467165432145157413857590880019037468060291176095122924726837844178792680920152782168660047099669676027552245444121000265214578708195678367373718228578356398134896005534470699480765622803736623175744736982176972105512513607829405399364528686618954498588956838847504605492973424813077762719694885024075582833439327503987258769535479379959405458689071547593286268354506990314935334942574091288223956176097273962593080434843699551688376092346192003120366861491893447993514112077676806207240215658313760829097460586943348445870682489457082502406029724298387711291870825321170895394987813158550475696993748214636099637049005088098708371030530056934536090625648655085498226740966840638949962700039317846402828525743466846686984877292468128913591733410866168275608235893109083504134796651770520525928284686633586882473647824679003679204737336666917975996285227795823027703638217283851286144489899150340185904447669418482554739591246493205048556127896469435797758737954170793394413816592851989233290079747741638759598716242888075171734340258394099902689694039194368238716030771013672080495777617801844222578484024033625645382461197292936612217323580444213170818340774206041367950305476348625467222585876387261627038929511511478556524614319984665896265039686868834731566113989303932511476821106019873010157174723683270936814687538015774011547714085004909688175523968025140391421163393475357921344053971948332888604403818433831513740820697256107882727306484876042733763199030064605980000792927633795259023035320951662681702442232170636759669470557093459559251932009163069269417294850538189714262303988855180728617469523674161033599349803167272535461853840247607033852832245692505442174179877951343425943637719163650639980677109684144594058290120292954128546367798743437078896130601834717653646890774673840006068122625760444868019081443573378241678255998464224835604979698443893194246229567413072857169849087796518034558613081873886041498887746280510970679351966556459956337418091937325361086296119031539823885873628645838580387682158984431932106412472433620137739820906245846962840036671940737110343402230557162000642990563923489206775105347589215476971639456298151819204494250524364845062924855410536585777021200456793366290338553234545207215092240389465959355158467566901225667502850014562850503988103851634478357287689619491356393969940467444338730834403792392779128366225513091861110521050929576042671754729366390751618398021795044724512438779251258540984131355152954701863964698092956142436197157224450979942859292323355696346252471755376557436325903829358089465708664303800165402782481793614990272069412145191453744431069935078814545337691553683251484929079362323518444844918204211843208263669886177903647731244318015745107690916225103962732025442396741912889576799544692153311230055538066607434421294480765533424932598057056092258018726227499863240529364043930455888186287996792542569786524497596794467555083262136681513208802976133150817881062873224923129731662402406271612506196084443863798587693621224329435857463429614230797159920096990183428606933415814718829841757356258850524078827479246277241553290102301771228818086302204261816547099810350421208774712868932589701342152448101099649825548175219433591505008608662806753499426297244090293205007584294785575561297150525134251185479614819749803444718163255642130761284470971191458744259797773272912359819436711238583525827762505012652180463610914730956390227413135050488994954524965692541237134707289146158720763880540139623579885522212752591046095338471217600329715786570073929548844689248292518200024007971623642950165030498408594706557186039055536861144987372657295540659173165743918933517890333165567630798403604111246313797914122529638482693356774125890462387988352856802015568822111382517478903170365803694033338425265927989972734852887560586138955538820798809303633352442171004756198661740136918982722028137667080818408082884024492512212964475913108433014892687907829935265703041677193649734310385850750964242709986247338207648223780924192490054808496466520132354891186446310073059817888913060737098932020318981236752105610383837125202202778405462136513189188439908574603925370337328320812650781704926353475258039805224141857997848159812510965659120923790220325672921392347353076691602743572210893296820017936700545804184762909055069748543676597593289150700795958533417938124327671494143151343334033427673685191160573557958537865204224032259164689378509607330927776061293073408756845614723216966193718700145188879414548540992860959691641633881120263616878488371517624493989079897148969866475426827089232582239192375158287329139436045952107474493043377766806593194140068312550300882306447844894851692189433534535221727995125583697086113990490973823763281280151553388440837808128067376280746838957567817011557039580500232948451146332122791152131154635220448745317011327076425867494378839610650187610215275877689952782893873915638818845021442262870414558364012753841869838055601474786371293569464732893460197035836207329271137341721028510761754842291466785296607596511624983922024562349700358610133035048922665391161868843279183800149450136547067958902238162132524987600040309684023186167213677610912796561136448864447011688588709750229034276743312821460875603313945219441453999689464424894426367959966900712951426549795907919420141838908309761429119621122406505314159840552915968588685727713932624922558152399445946042108450136929498571041438100006402272909736721882891553661071404660569237950159177453774342137007445220984805030058279207075381977070363285713425708675538236621420561484839923129449008931658464074446708128004237321809718716544429634228528881809090053125318236779275586294191520806950165677471528706484748074270772202844553449186071444938839928354180735112864811590033021583083833693837276318951919387077215114957159728675140253748715326255746118180716161735839382527375999949383135191184541446668790982956798251994761628237603245824086555122285361141295178214321185781622718847788361824031813886892074800411119277656624684298418657676095761445154501495967673633612847413669814056481768710329204323175399645333103603489017557853353873557809228200584739465847090663735542076003055189972813844506771061045487998944045296988739384205321765555008639052507505452156950911058656964499106064976630707034933727682320160736542465953714441377414282708248981010524337141942030735069617278373866006548400194979675385223739979765194387819588662924066629103546666661666837099294875679179590642468310891262129062593815997496414351561921832309580235103813701611586292423161325012037102040747886479920910898836018800924678921509555882897280312013117938156362058200569479305128003144283630355892603465426866195870447399519130283649635691156365148093285378099750436326245116293004499431010543137687067101543247942943545506120743018902422613376073801475725280357584517281898798581742730771045401578720532810173537156515152623470436023972666550936777850976821969426375538755694171022366447083666763133637486941237030433615322822706434860522234479069108181799394212032570834826630228624148609139623814396016221363787297807182266175723553664327177281325158479154689355567668349399102147566422831055261931752775078745925972846369861361151075481252775670035640354914087840127752717137542144206862622646973095581649810748322736429993044299840119187905847734929490164603353318155708548988012680939596233721382397882091964366236883236912786421943744365656078425462225662785514234733732017394488929641852107834688993992394387006626122787497320610097393571495408172368738949991414385170248178881438148955610244754668518480403436329671192179283151840732768598097035639100076257725736000110835385383582682242723596509748347357647864815037723329356355756384811793004428198349529615068336113021037112450277385203007216848600158842081306431573553710804269232353501601383908940414472703985338289248331072553997693931427482761200311914516951258535735572895192212368319418464035144085203768218673629155992708624261059579292246492019222051475656460344495705381005198043076938177027544438576905121651182553249530474933461776936234100270712590873378587100953471375050283874804502179272562319619022964492289275783016357132200116801052920251517237777828658877650381829108567832395626338110545933805538551493058287619206103994848106596819073964400423590700771725858322618653287684534594222610498887435525695077413733039594699585353092877740986382644048168974473531987654114054309697363977060028985246947612438882242693871289966477672666621982451553701961017977632038560430188366543363323642468379744520757646219691428016733575759856434778606939757347727125813763112246117341838679367901828731171485930460063865973012011989410490844004537897997314545687767146646443832486545986500821191794444791459459607128727152143765138628502468708354224712694666031178024782021241719675704571830120006726473903576615398852883609485750516941254747857482268814680538179912521465870605378585589788529935101006574882897829307021670767909480447376347704612080446385147066359282359597336556606789121946043583188439972914253001320286421582380205967598840435344882730618985807465370164995876595475498881261472514838637618217679412844572303781536528032523405840590024885810798066218442684990395299744746825528188386777995043652258241828394055161472870751149154317982483376081354894963290292043766611396328313634889656183015771383813444823766917073696303983768214819726324874931263624064273709123172820436953943193154725721667040180850302454754367414782440078112651128685045961182820488342008039173853671432259453414949455386111455464230124143892805322826521224495712096360396527439992851550749844135368418848592847307138466566122553649817466359518526602519242835163430382692617161032477738918336473004334192815176606834629203620254437379557650644024969015338205595166250397519966139155349391710955608846609933741744073062474348813102844006092449851716706328519525472701662760750137204095375425221671165640406606332742657060929589891457820937781118183544646257282734831198549407766473690553619082812912928613890212809887438910063701067107293100260889856582690905879765656302681353560392260820190516876261261494996891843253941846342414926482577043328186824898152870501542500106861339580345469689445205249998792621203490655851024297776852044043898129091347563086162605073779004962574378315975926737855802493107462434350516183326577504810373916573964913120403711149136733763839511811204368921422068027689584098242841405229725748816219291124736129722818519456027230401327488443898113362967426938412972247038703096441952403299852993613439783806635201920701913518464985862864187089361448048925598216735890783964813785290097337357481351853614707419639685844583433462889725254245454682375800173313921634801817901450368468382236475500155880898447790427886150193562485381165201229053962345162941998137664481189884148097010665400346360047455878678943927572768187773496731082209078978071685527189426270255477387706383124753444757570440674993521109674160854755098146620586792481605874616602194859925814512723999390415352572098227035315345336861866893506429834971030519897861560011730627938694161490347376285814321958273634516368217816121273266748905932303358806437795066692980469240941888138541527839850856449471146255942998976069338408872765531697265311008419707030554026759256471846839184759535451196393261500214055754616065570412332851992560215983292524681730358965311672013382117527009284402381213404033486348603428608220474930230401689595073362583320358479684824971937824443680244199737823103664319491561443001730458393236598279875403000137132558123455384114814117291500828647782464295687024314872985488949911013446830342864426113075637841894090384635107678347461353260130968903508407529011918351991253896083505869250528888174586482148017322013401334887603827666895039661340494311078868783129436623710852682069521932713494574615057215052517913940617008976756294587037515615827852362825850055793665780653246660261797626772283919788006065587379626408951376881235633648083597133600998511530511921177129784401559700342389985601243739845845751885853553088455882421271060384204891179332331859453434814364545600710709841801499104391167763699175353795955015010749644870504446567451624929518314977906188991099398472420885606552511600001916326731161483752938998354109356467463233887553316462961753438500118743576433156308164367411172632192812266909209400222096482682699517809974463238867636676550565462018198845192031544208032294722359856842742656519047695777947139105476465632546119871296744364379442900959429866919586794393171164818758311389851288619273030661889824207746439066797935158788110858992620695543200507061766807575781601862728572730650083997486954458804581538831587357196584677215980631601501850768677006096635671454029418695712042356545506562643886617286758648754429535164615068849779007606998663658323877772608407112066521468874505426828932366105433664058587889123663783743372643531504714775521657592373742040194336114617370699023828113163338318235216286576272245592925248689123903138216567107564295408583351747283688411371032856339822879407901148043347252109201386245927096687432798011691346520072255669427467386256822635132016949068064251581648114271604018164329997008070804609152862753071324375311784096976353729109479749433732848325182503380740151318398657981683122134207084355710161665652609898264985877007579151801358997536164817248977199323785550395612631848998620565456916912123105565343535095391503557761042194758355733129981655817900097439252841376927351364593174472462024047482236969281377213195404830196024947654735389813101224142006122157533725362149831943533960096650453404792384064076365436492554677728762675146253382213028535092046219000611720902128563047298681437940834005283242399664962457011381108553417344675532729133202487549675599438997434100177991488637388666557013353528749426514009049626203922166427810435080522804042225369035798904557289160100411747319821371024130128153252289853560269573452024867006381805576443401607817827537912987980197931224976390407087608703807102351964896180225027619319600495614382967650379719402653573312796747704916932081373675983584423382355667887007434039514647325105412313255563552248240336125295347632477620822509546863843383852020198447386810427224906351847612490445056422568282495017245388774701948455437095691147431294648583026186936456293621369909031300391850180949444449799543639953559538323825149801655093299546159542577032254776965714290151301319232936290352851246963897548493371153163727476372985477348871252332345714808406489642712484854528349881719944836238796787438332326126614040216883230680220236475098414953785505184820606484739880920630756017302705166369343611945525521390543797571882433914040113393157911408851025516467683320044462601459026335634081764706081015182310937708486205416795743390625499025498425523484759347145832652414095188508380614552443227782642426755281985666263699815888963606950699492193006699416590008524113653040367681949087540261967669719509729353174013969139177956300607060543428489451465162197277253004552708072316190099174526140767111354366022295360528284213668887270293309390763573969961744922610690952199691665821589831448438656973613022201306974247200191082108692208308910114520050357218125169184800212001611429285173248422700441777452434838889313477421239029310483539892543613394462813711815305988681685647297541589245832849207483633791505745904032992988085069913369079941985323516426478337833712044457842066397422585180137877235450080465244710396298438365125327734174964334504302497474251120513356276420113299538505546550303252314370792728243383553604738267304940577413937012864673223581743436284523682155547489201555858087869774365609991954988327656293762687836860171757237620514842784190958241743396447413396184459445955256845753917181625326127868739226318929758831310931483363174644964196149240122638477184758125203040680099478988521567940366353614077198161045450852338524609051782752932261784940919504858662685826076002962182855667096734175973367222368351787211404093672059014851292780550732879007210007441413279396488066477830748110186837522061315687893166818308720307546410116247907870186506120714208084422687339754966273986585246551901262422161019504385513165982573439988599843562392573055848122598699799980243757500634796244308323114693933559020980955524361849396023110235822712617230007651273245016495561443425751433588892164159039611423643933592245147084446326677447912000833892366641045547786395259295028828691365747646767036968245161419701497343599772515522634059881128216311418080285205866520965670980654173447338357959388786311746968471769572343682783101525684171998870408799374117395511886740856973324874837662877569105397985444110738846944750651076564699027954962536556980163366170484178886580686668655091023870045902402813489402991544709845609410204881248724404681910071983990046572005397565424878069084840508214890139007637296640309983971785746133376498235004598801057353016213431141637052891486696351487866085818830694398141535004651594030669473143049338474302895644848582672850512341843615414366400449188734548253288701834957463149923021030973336732260821682555946371608036315708041702408173611029565334979429159403829111048504788365894685984663410890185445587467877896364879170784642381149637862414881792383782541640730362407235895069302144127283260641727468713107058862011106251387107988814507770236334043225994997135548895489000383991997430652292547252072711007427145312798748599421250874148846554589802751412416593165818510603936558190686516488549531555487341585429801286677689779517728705216405152469881460548523566858984849978623842015706027369662611066342224538353814802257315277628530865255774723646760661494571762341108240403225285590133981294121394831782091714040599615991504009068615734545347748224448474910344804548956458149456633839166013224623186595357406908432966091781041168800264228739556456424959807082759964556589491550885274178989620987148239972662225984869549954957913207098861621272783759792566071751491180850426810808222846819391854447416091530782803354866002114575098922455643552008245219629129160926672272484924204060385307705902436919587903232432285584717469140657303363494725679614666396877207028658226833498738168464097628101362850117543335256145332408007737596610851315884782326696641326561054406333454153989589555477089346296679598163225613928432694094978246621880512774203661654550445463376588658642562140445065493460597729091107604018296137733521937177000051277901717128553818289748584635835797735821807665653126081907876145804686011957957680577991457615124283059525296905457007368937676843881047694636080137555770874174361884975694427001229266493792824689998995272343529125278006326428310760816522736190951603541716033562663460171015653554997242683437340616806692606673930478926286120620583564955102614516787243722876319506671128597536965310126329114437386472357256995900577547134578155521081905127502830052602102681079419436226480767795331377330084658989433882422679259833941334892685099078119999032183425965739928090047567986180595469070050852449113938929499728320234810037481682398876069816441981192107661109782074137901440029882522875398941593415899446911629389213513626681954286035221663516564371032671409657791425017788892772425434966745937074558737248819192787217749603607408435200575008613039203286199077965041530130676912687523779672211474072426962332158114855963708191852214773019408846234309089753196881843065107065914159916714853066972275401659565456200429494758445812377736901103857390663354153606895247750334407746993437814783053706227652102083486148484430522371985473421640320498313659229749773878381961659586728577477469717153464753931041193420093281437656522903417139204307516345091108324819646348519889132410429535855259330964029165634634409146821275688392596065818812770010015526353883508553427395206883956794432425318831612612086733310224865112071741703579274449678965695257613318061957742859436743776628524293001467990019539032667342863725215003077555913482455963999145741455821194477227052780238088999076933026174862934233293197963251640355700375573937794617228664889780206917558349655451530847512286940036601214363731426437426926885647014277645167363418928078366337836694229493577348270132239269588399242819573122443212633715537212992627307713965512436925323187543757439909289089055437964018108627316822804964664664012883515784802906138969364943377453539259771462176247970662422357752296003942281275359050608394316914675678564674591824144051126409734648776725990947948369191161403810671879974748934195771629902057278770790184802965193129773648300780460809582514681157777871687749181592277608709201806655447354697387635762951557445642655567229499864479999216395224179338946819206581181231726964476043037429774070365202406050126872494720732854783657174376367889622675205845519701794237665457203812944272597825484918083299759273248771433956860021279702609837874401124028119745459269530182968898244299945897532219889612600228681697973074930514938696082783370172463093449918194618554290594491933310946155699307287318608931275631005017729220641084951324483424728605421659550910348986196223028166690566382931894515091002197831139560960287150308738924708986309696904061041655807265273559679321024750490580590532355413112052607840888126970504046319407686115271239664820377423128062558778431418842313493533877589739844312823980907417354397295880979966467575370973692174108256569625861394786462215963745327975793279288226328597006249376564246092499555704902323101060671429699161487628264738349044390018170276935550723742244419743158539906463348505279446754876181833611428737164395143403399135895194836031737828464013930307345644130846620126001835519347618227103737319444201252689284060714082095162729549349476681748514040132880172546076417108031681480742851435744224424214207338919863949022137251546906477518722564691520159459827459354441320975255776855816662483350398290892373505149651087149578527106157195462002424878513580339707056289950566354251644827216079089505930887577918351318780219545386601757283895780890630105808471079861132783011352733575934223929453120248896783587310043707729999688219097963433927859099844904972880210350042485059615438460197199744962755453181297378402684901920077352843852293871429402620544350283687840867426551486484198472202944861716504811865893182939794643358501672645776878093133539450116368983087932858461322334105783608773375844907508016446560967669958660987068093728912810724332345917059315147242581118356174176366752702490094196225421669877211325518344873873020794673067964159544401418256030779615834968626206191956345195627443370476911614785223035193607483768469365277575554272485408914135553059447219134894408049918583595182282576735120368174957819761579037025576235027872435156818142859437820987843578942943608749861046888424117449662537260624212707073092526986306960947414966442088414178594241120940884130352437823581091513712664777089422030131213113934331569094504774224283728969934136229455365967659604666547892108105175796117794693473256907438670083305056432932272177443320692809739240166792811497237514541207757131265265769895717960807841841079644214384760768592845049696781732260748966468498009699433394200028137526400746934978145135825959312929230853390071476922682313825404047397048388915665708003067010886036625444022313243309187106329961975600744698009988887462141318577077204131286216619677432146690556444957468004292777655855951751775474861762748531929783449696994575104929442229596192850734274678923112638389138233606427312414608030623509151702406563483238810408509323131482035841924348222159826983051334857550187046490326964668804638375331692707298478059648779740095019935997273557366689027860666637812402859928147894586264732280949646961336010184954352055073217985159053988523246535310598628641247738275206539792150962651085523512226845288278232884519832231018304026546013354016616799497019110783127608023117646944445622638107574465933712804559523985425938879846713929112392313903843744478052672254922304359523992899774084125571233994553078068344554434417504773093811410892616419136726542476326038017799509641114623352166282317709245618482258525915686403121611675731570800097805770502826147009898119085752638186098717676127721308826600409107076581562665422009089981208668602803207705846479682254474099351817730803337121560178143920270692756940834189889531526556072897649600548351380022847944906917890532923870792107112619700285106292513133389900044663615656907010530160022975403824640256244038655017225317433463036537105708354075787090884869483547472449287743048471040868465073389508110657773460748216670907794920863515066240577762026628775974132609975528555272462622925454268138576547282541932350146740518264769714300215820996307514552176832748232559067121481384641743799875644433877096111889937454340517973696593198204289074379394999972408994521664301341841553770354690286383320533312770590261562935710425086821622501069013441558631791018336552482588396301517218034614535633375109065894681057969083437817319645285944262406909500610681964336188469104350394465293412905574351353705235485667667867098354571749905481633063440588308242828005805390068602519886142243240548097116751499487483801327820498079348843828694969412453727053622461310384277633017067852045966755778202047296484612790315777271702582378988588124514603431240014283255272173591714862960649438645739080407210006678713702072869556175397874334278377207227344064546103029545299663656635507848496013182199662940635926193867109842166776617499660609869889385150844343518561979488646293596279130653356757493393684387312371514914323041134233661798466302355803203324688949587646325289475646376340608039431526435366445068623059045203110004988722083559682015858551985090312718269060652131961301787292701624553264716712272416183847518278338612723992165900194432333769022520162226775513390046794041694772898227338238203839840524788303315076523426335627967824013473564702922902589933714007420257533842217813096407552547244345317609276709878137135004655869616755022000385799744822978573573071258377989867326052873717244050536397612476781759895656576275863777944457094986137824458333783150085956252873287854076056862152368238207735726736658932386601036887136852696770460810849352584492950480692559866946289077202288480578253402570936377011590261483568268810370961654205684053796410669132185952416202971838911277910043428207342761412290421494115533493330774461401561558473116666380808302378396420298658936745383005877007907405948087313825665217448140456622802010849519486649851585492093014273896202180630796581971417728964835215155267696424223765961605435740295526775321466461140148256925732727526569705231995002649160375108597255724395301131291289659579464636374771764800727318002885221403212955154892828595862578328709037174984786125020327495940627340519024180632205708635372931674574149090417856545590380604379637769165994008667821869996990281759851866393910702088044871750895926226873779881699478866456208150516137821585283686328000776910026320824624442776672108558421572594205931029732540353246650854642505151238289843173620341501961389012431195212982483202955967363739564551246275234899692372190579303658085009573564934295957239201601233813359211502292653242751159685648809237231112704666253465260884606500610865535758527720765527507300631494074103287675543215751263553014886722658539102856256694468078053630588856734470056513870933292925382722194452491870721913842543169746270563377343714553423160140898811587929835315609396344757084697088641418212228502145179908473231555977249422372959055678346258216154999760382135217993380476451515815981511651553214062835892861202091955940715323671661674617750970930027868264501956316691468694232133112311409938586592026109430914001949781792935250879523016732182227000592071062659641120562056104653754261049562355271246971840973320750131278837864547144962163751190512638280736995409762133617925633180447799884884221129204680923807294337950386483208113945476090754695294604542562212954096615343876320388208573253089256429107006613890989353433140858341089095313402053627666522950082850831441778050482247771959216986816376683769060083110067960609113869705833530520929433173460230061966141234899837650146140075706448216928563328211986896708498265724185970970469058926386350591458862634108617536875587632216983361285112058957352191549085151546751954852005313464568819372274091053196616885520045440659610562041094307340269614787470822468377394226853640274523039884114949925009783573954226389704192241364810714609557037954225093026936385402559540748360258753341619997090850550649016575244565384407677196237198585295581649046182702163945829253174849331501053556534338938186899681979079237983835379720445594554964123366207017108787653251145558352988888558921953792176261978747546851647289026236144134802476606755449411508036010366011922803558988114832383679987941585694789058014076959831464144138835193983400163477190916367419793769674946074245390016762370064249131988427162067677674887423466984425123731812081554124644732594366634250911318914440928732840517047906936672618119329964142938793154231939942227110188781381779536744941451523804867504573597844524665601715959524061012266781287339781219502384067385838794961628243175769567448642408219880199664425536671754209920929460102031861526706845628185684174340041627662269048272729719622006960149816557360100386079180383448634913968764808381159672083824102873564865812930844498999021025062415708362131898630419325542332144551458925065127770849368653206695910922704033555203713195758650332732631606872530469413736142169338290361551854862354875605316866685575841243858113384927141725389549681128945746089943600460734105392525112366458425334672825869128499897044814518002058946134704529401617467093663005364396437976325938642197036122662065304012646359291916876590220780241642937048058249681712483344605116828758089847583953891880748718889584958764479325943706469390491657966726437608711071875872442267586012155952585788100974442629245658180036002029425185499045673758650753363834819896824623036869288982581135089560338502562787737056758599633110952766328304715609019093857253167407193703085407160221794168623257865791543797487846977741586624308843683954970933482880704475205731360183420017001032045573191828388182673694485352943067733856623075992777720919412666185653596045307312280664723989213880351238137170267387818977124546696968286865594848720699086911743477276363154413415992423571056001992433162047308685697934750762378156194614572236874009814987762481693427902704598292156377089533390995258787403350565865911713961394940499120868681265828829640361740558976320661465013000761462178335308682240976173614230243798500666889023683571479916582232949546814405585246358148992193851055279110439674329638320266069540777850873419805242627716811752258174818224945230217243284165985979156409183186878757406489511860405116354283728059166862188066913542780965819722582970533879673978014643764973332579519974394240404300593555562475324760355164593415551299521138198636501062393141983466923773816516074195208604204103693489048498871384731218679797697091519791509497300280589518517310365620437847427334941801759571685226145887727032786145403637255227449440288866378885579363978721832659624191818830486089519238099606474193901050300963700026961102663593711678636116637552081647926618979690063675568360522737888471372433014598952376704163960665877561698454770622607884494867887843394287482716987421217212497335350086140139395872187750329709160667334493700774808169886194030730854910943987647887550475725031617937090397782109404908296461568418013700232584750901877064402539136819763931755841553752301938238008434926654260683673759435542396355625856769559527049259408218511555601536238296569959447689130267628843946629495296572259805728178647111912568407960681805039044068633321558323250682518982115336618589526671119803134366252412716816847231878358040451444030242796779181596628192777423059711329657199398504881769949585280047092928523399167499472947870677377581635175763140302960771956165385224441603135262129857242127768255166150738976611118447565811005520434045161488424744628854457831529487490248091266064267023008647466888669474200526692554354035126472313373655252103877041444473681400187241091475497393023240939528203975342960443022129976677196534156382857686539962080989671275667231908611728189172958148409626464363412153327285232109140935161434206144266561351462795120547503829045905976989673391482678671034570018474245519002844257833029708895001233869544080284748963543445871285033078723493053013425666708785771404681468731310142521265377082840727443188950835386499546176881134752204956151053236351057757783538160749827166269875747990026615511214701993518017760910078162686913744550600412106024157936739408556789975455535490263852829762085895252656400058780719944297469271948641833111154113055676235521573851381366329884521141643770835828700273344945975443166994768247324840442633784196271375872353359871263284692452762373822188416865052842541056806885754861355812353242424940291815066342316546304211355170718517764012186255402272719320025731535008648111894083276920465737577856693475082380903328342009447630083908212650133432791874414054903191376379570535015492858979041925370814080307427394846736150167304538562587460674907274513835629179765880039726257800210681591684163200999911810178622409517471126017494942441456828450971765534171268425593219038631225976807051858122235725448947966436027154929456237143429944718612762644404718424849407783677853120971194908864226378582330693085684753726455506746064672571092725650533523803781136102993072256796285028151376528687988632949819465082848411939462876583753110562101876176520464333079063530130569438515343838425951322172879118671076968361943099952292835830360702555294066163730308769349930442091008753201397678086664933140212023280023772312158873251474921994116335140086424217634037864794903761626721052265624142503030880699612618989228879647603327545852084606355764325685876395795679792872266772925367893370904093447704528720056792587761005241309456586669957833939982903838193324742773065543981437195864451046304153269587175949759814458528442860464645215884118067018477005580084264729184989507483169016859121867005788164771402692970331850566530735107743601386325957195704620850178513891665073141255946390979378736257363632534190283216525822846747091405374180645505681017709957781930763724550047813992201925691440919454873150902045355595917976233370092047311752250556337618811291532261158208090206559106860103455369728280234428120358377627137463704801904178332611754387410092603252819054261555306955509927760793141062081422278370311156767785327003101699574083151375086134263861760812679213044906974032876343865462459086846851573651128416277631376309861200520409072301676174028201347389792287872260269140704697368290409465660748754797724365585171730327848692608427914486731408942308114625021625263769311735120215588672873225874591848424944752660826244099146485443538778474051418048344095006713172744473642796154570871698904548386443096752197562451867682830181723857407102455654167699465594052531771669349061816716036530170500077588000214201975201114730948236554685933548778054317578665746040666600860871514286494119355328078933491906819072166940758787203275414705796380546498670356628116779017399323018538626561550640374703848375719809463926740009759212821359813576614518143487261693794973308711673991531143414731823499784212544121804032529364415727485985488874773334890661248917400358421108449164474580653144876028611730307945946476462952021150257135763793970174072356735309945781959025753175225133292943285281624577608937008374689905951687985147700316993971867866554180291669421241066216739465280086733536018129721179624769500109977536036933115371007056443476686761926442070049813743616220408891112624301975617883957182826194263528508301776590244390281187716985167470771373493487634631848141937130273442833578829974244815791904050181707720646425718380853760645508057923970287531715964452913623054670843924166082660569299964587632436706264073437426977203874671287502750693132273735210543388859400636113928368768328147823446067177499363171881805499737362716681182299586862546225341335581970127552456325866084747953080941525192855297140388638041577282916034699526088723728409175155302433485719294372929870229080372501915659063172121871747166103568053691935661284451180604728919322124073673287805729400357661866863511661852442927584973401105612491832294063226937038581024316587768745907822275525049060722769629455166774051688534874048494704151151726294507184030826955598954301788537525465313220334144894587008957450843878966842550031090708556905597855546196177479276311895968419958878816704414701713843411661130415613408535064021229468440880205208919335372655231123030245028677657904222582641702631796275053383003236603392041332146848886794878488334550338605305384935949534831593700146592230127736212256176048672260949209463077223639796495266376735152655003577119713678332665660872519381656631726668649404981428178639037234085268114525891457049369760277030480648165279785721644896360414362190380782274500019114867575345780461505614330799893433544200376153283091573881531146505203469659379016578868577067051989698561902587877799972291462098464405904797405601255063095481744919137671985486003565316193076876359850550165310178653839183245067900820320748661058486359705560210155571113924335202883049173096018367656981466899063850910566376995834064527898467397913315309201971003281621054275120885901591705731635932947759321643275418848657643182123378872743991704024182051999545001219894194883268236102109355352560169575173069575225122927361324491889501548671102768835214657076868143225226491743866075430159002491373546592241135291945906442624601562117510597398165468938730108936574549481128362386313453134512411514155131113251302525122699622881415994772704498432825437122634251756353431453455282579787392447506177076940575866714350823093967062757669221026911672095065084529804643148335426129710065542939830570896147486643097148356353661657660065208423191466612413766955095660331365253842459994160800363205465021308104752274662145934030990688075783604619275335491527696194441702819386327251865494049899893246742813888105241100341491340137321295305786770064974515817996975433563288733925875820174458532198158926926120041490015350321093859399684729513903389726190103806019395631392479769463623998519694996673317491836966384410886543209775841349625301221470192083885195855054234477190905042247506263162764852743376270661039703337756956510014277293206562755338079368965634565317730764794556639229171231957279308784389353894024161747988800380797395385880693224541467554241526754047654397990049996785080153865441759130640836812926231770722347337706584814955781985302597535776425669794409313165660021927105846099528739919478143551515854743875302069800514576605147492695107029088627884143642629505145649598737642696860510787999819681787904708269568936673510670817180489053230350408346999644537976360895678883065996908086522294100906899765871531709738215793606401838459718484126695797610120654775910429750511923788455763792072374526711273804185188587829580103818405288056408730006566517452752417853310222776009713529238380816333047452205784993469073290840958360206924135005345479287827624090401971253610826612903098530530609529089647999153577911048543319253430850917435832949872535117942702936824736105374172966540006686644334412236794310862729144600341636121644655656209078246473745615962471389881111579519658913905096948997613752412159057217063790949854323328604784593334074676068844641697266832917001107829268300395638772047902469747041150529094031846539283090063748085848304680342122373790275589467880787782486179846887636510316969105918872301450493410818955169073161191633080273052655372505850017039442964313784623070830472008180036771221078882406432061082365877517045680229420218410362784908872803092640329809718263586777518627610966896354397369204029724667257727939757688596517932845103416822785178907105300661198898395950187231916310913336542727508298128650100735344190777639061528285202210604946479689294691103817477742132636229790917453335770857979803274626210534518623028062175764382427109286004485043965375856536624395008069271801636993675529297693018831199867463416070630591469430881985220897275430830558099105723489790010046957533742852731971879693495885550129588158171166722945076196464240751456161312424888972477449852849375407991440527208500665822642703583998977762358348006471110800588624151645401083966432380907212897514847802215136530005318760284390388955117806173255227778119221484254423030090913701140447300934500963863924665524987641659672422613973056998405188410293668158318498658982959833220871254963817769665266875814160023899804013646504324919898138084093664521586889122713649873600642179643452203184161797844911442894832007210200566469366696579852236570071824036634950422039230377432262233692688958252468209779632863457237501907460820684049100745588739915833348821399640798641468002580299684775831327114007530352215657080319830272957902366639081732387495843588246950726772337039092067256266363002243135930460256826677106930655003459819005714544356850056932107012695768813922104026565264532992685666240667469396440621483309687094499549574912494016426936768071655415090219519742490949399788903266593344085918533001431800196393043564152995601975382353378757791598029517188703032057848633802609719765129805795233361545584394470709642389960929117464089587570536663645235784982797133830415734692049893212188990726894062356787875003346754439302879337154465255996834266785255684195282332224621528015354933211000243774661978871300271290058235171843200250883834511787733557128452267568883236843246496804801223950666991289236140144399581519225492324941745589048195307015509915235489155385228593455303010822308907236143021983549769349067375853044680877437640313410185121343803868818103463282966383583400880837762530186712281780352607271307119590895808551496895467854342022329549577095522775117277992846389992864173707280773030121011247501766285094598929757922057366898355992665962974629168560244285808239889672499366302703730563879869556930565719553932658134222695830298629339565540607819535801058860956378139906767263395929487136236385503374949027450125854882219036838369233047211217378069617189754946002135960569784743377236631125401153616784709409139420163865006229864946343619870288555036108981195731839779203060906851609592801428949777419040133153957481128192640905397266217303027309679058603105937775480312788514416668594893365654623869372896554501512754786272740472132158220846736180865187195820298601699762023142375345963484448464258255732133789119667148418759095289683665982112957199238645344594941092094942042703121883364051475713660779821988859548137134106326605889768181963406771637820050684570087617560828834336375600965217617652520553390262172670366072846630005960410411830108566986062394829616315797159430088260027998472200803548664492911604086842288321176312255919208824834637725646450497178119433900563941152390052579721520708581279689760623776824292195284030106082949182094869263075950359868740397413778757712395785101002604395379644599660850632773744400407089126600012589925150294782562448659819904098693966156676309814360497735793864616689419870547786524311776768016640557907403744822384856770860825025025765516982257243552000325833974384848673120569960703653377620367859479839444912614831581118797010212505648022985936524316615479509599877449431134280408922559523787623900115857501050390301970876862112116512270027854415418055311682861264808139038341135180261705688520017396053904759868435148218884184026708812882297067922240799714954780824082170271393724657232041899282315729408268775180811927952771422897909047282646598329701365788207757216901654325064330730353906344371799027962606563738658415082218114704263920305278254577140946468994849451061617183678946400867120506465579269443907784273018167796230433270630763552147296950979415694233525196549298781930734877631003039538062584449850613349362398253796244621474336925659888830988909353235278501058879706199012074661244711473989808247356272667990378151222996879528631669093001744346900965856374037098686496935999631228503188327740648187229909461050044123523212831403258084312063557929031190065048935445959681428739396352990503241301714846369015608951807125236608586275700373789018785298797358899038918572297385886167279532836546779753919120353734073357957039093413254600650758851117775353043413491139761506068474261478392673192936622616713190807382361108140593992887184753455813615396763265410246529712404599595938211052117568267941125567022939512497750766556814101454312525598458052678254676999794626655778046074622279715403775005198469393986641181907666872875720141967238179602493311112951494821391183888539785911537061165731914645537778140728563991167187323891827857042410507955954391567813513808169881433186190873257218385420368377666692027676233703240616874178438090558219265983156219634450897838357663338667869847486911182480539169234798976185807658699927573791414232188095194124272307570912821977850509979227911073665380961390558903530738060162434789286066026535910028488570871547490990932280838943040061948283862955728963324130735227331572028938694147302248084355022041103187481407833850469730473823894277099274710199063505380990891163514677183501048196647513557051705876272307548703392820686544999257075244308738747128203734460138825219761584880213990661768630161005699043942543202014988269928525867010701474059607194963789664324279004289444838342438585738695228135008443894113758051007026234428406790415240688633411036800394978021067428224439880389338551705664961930569133285777643686290851021885399367151064086499539783878942964780470182252072384282632358213720758668758300421362546591209116363324936557877674812862934727410650076512566790105128938512486270427992009139727443582473589793963304756047429580105482007473888670747702178558613624878920786512071550855895439082585932286199033517932285648727080843959303929827487844704931765756794787706259261217807964442535293899601003006538694430241195109057983771947405583722266211607403917041948676411272127895237554846677415637954425994971531078096581702484203138602954851902737983859119398524150685808124251749754125142472246187852132012248241423342416122425148210017697780367738709900454594466091080203534260783842753966241563147219291000690141130254043684726770738422303539867239868841683359448237051585486363720138526058174165028219718714123852170338128898497609879313750186629139897210529165022605538305364238024961562939215448224410271508318297362048354339398109187123462269061897769715632358006893258800805853020753531956935636702959500678125086435872619178660622866709893555902353633700091642297053517979177334394177840487211439506873082121797025381758838141349760939104215135020038056790408394198029320425736488213967153649633740734134145096485505415190883511331375647904689859162147055731770624643414156574563350929911803643718240411324238288888577078368191277081052330172102731903101180394607153167285197066220034520668980526499683237986684187176684943840186222059190731184697447500582592428402904821616440958034266593159685347306847535557826660476407565985424636643545256619820871809646660729275135422094204276035133540029797368628548702823535960005054412610637643074434197253254091744333664757923426567682245638935687868965271350190733874104891238967138964692056192947916159639542284384509384754931481974302779216368572063618724520849072197044441019072883273170908791917363725519341212184187495942423879373007561301591765745521174818630000947703584716153918869799444230937786118013165224799378133214381933743835818270021537604225593328779302293299070193178070879220850332348115675294211295013760626405755193360897054093104838145635566044696859801242732183450941407397931474734338973089195733243100185819065202160363608289664486766190002891834613633543707724281726877733099812294491757815931127165215439352649799738987467756306817881773642693240548217180800092526753667201968542854331451193550578976766190475441885894593141734673576261782853094592877214354842846396514862131409024426668830498957669494196085366180619502811551903418749690875763646075208158602863448203014076118933335801208766344738656283778540307614547231987923002674729784370887405959549393823458889965768186348156610891880420885841128658483883995308886777959520349283597204012698988957365236508116893668987310918550963491997128407831374868947281464078087060633541794292916936430839382308617655998001057292802740320148247165187935933428836983215763193251630013844910059684637758730564281812881513974721457902424911045761413658932537101168102196738774901420922564490761245967305258056789145435926423210592230201374522117128054449107104937946479720749661114120765750847589179761878204532281799142913524519612238360447181932524301000033904655836155618307158783363237318432969801272275862761206918174286053431040176948838885189209573274070356084859107266830041743657018669383968377809478215030974267122372436197705481677483895667550418282515504589467685548361525499351780738088890934173890714815045003220765647780480402607036754477797908231118447921233411722412550252409387204099648534753037603522750411800287120728501960746534996178309855818255027992913910076536730431654299731997210784055225361123441257122619675095026518155521564541570081444036838653302409720762104662899193426405723824113882240375173435627958912341041645011633035118992816310684544300529233197015472443565990960655326915183595198303858330438827897896710949828207868148636367791829655501659243783847429666639259545883246428788596859820465036465926910333714893573334409775366032155217596561784160878353950013828721650386527278773995456633306042275077196099929089317972355877018269729244811398550246374906657014679333656228692473897331438291242416456156648428624909684832418533995276199726086906381746004667199815537958296477399130735571827065657031886425511631080385501106432674461519147344401005612446871672985638981768713568525647776278426059954233985637332162490297056217856871379581579602720734484335658421364277671896774672938123998719317290522346703686368591840584037508646399191026659544424121343660217868639795440807632253640662430370594495928035095599611361274803218251186005378181595208759092386303188121866747067568493936632783851647509484894020268336293620333257248216616953126787927585060277618769961511225858413564200077408434789858687178801152705999196945795375614762779471245359107393281603894240609928547735108161586494277857467871129290094644393897558677478978302132400943446226976757372946931051066461644327197092188960390805709082403703090905756652266396680900408104992229301932432811747613801004271798399854143567200371096715213835299172041899966145379164624730644669656653550298899442690592860457552731754282581042025478557141515532858782935520455429122153581396553760949801382578757268040438717334912851739146639185384536347240640848897055563726225168816855432800315025684298304572780600883923311075933010100331697946496087081364137422811986676040042594084592334450151204022565322572400862226061779126652137070504876930389992480893786224091555900590935968741117353199790151688452191512758312919805110668068614402547199593814157879236416533808524555549691430237404546407467160165025163693851722216290495867259713957545142424392136677250094177927642082252552854790872934593283319564686228126810993861729009321353886809968700144305643799674016430995445536927624141382135865497870081564502108802262277834330354377555013814391648962268141454638555823817326277862609053370828240880998329257607802398642984787403646911438692181817298005878720604116008130333601186631033748188692950308044003672182631376160624326999404867105251073702517649682721853113495294223321620092753328100290005310224416518486727588046653291245547207872779498896142000221860396817137153193645926783696672846458550782206821090629854812340027930111931795583114557899574986640511134954643840776268332395256302728753052334912486444099424442026338631755071469129497021010909852876070598952999194226325639962188055806450454249589656429880725400821868455380779480320434858660194926445329038696330975241747589025137660319382157888544568141977886583513628550189851593136261420161248520570816147177140626388451537181598130875119963891979932178527143621064000034912181280251254562673052319773571640608729258679169633778614741127157507726541347493522672868111405039753320315956569929222996808479493600526964525644183509123039079793040502815206326764210807026290877891967857429751475619844793081988953793233997244187721297081024321329463802151453332382557549939039480481249177544885600201811724794295384972033047397930386719584357093745524819342477918279981397882710170204066075867444429600105496347859352203144789486796083128549736676456009698195861510259278335458493879355652940664517909514017539626219352075699946601530135057414898361428981076863944615931656555056710266090955964226389793521326524282787181261849558030896457784143755970642152353055417505351259560513313324366370777810284916095951213307330294267751789448869864393238672143876652034073944040807603634571912765186964778299239725830982120361582997637112283327899128037079127454317236450721605885125576032144344816781623398343879126260085187199527331849948466636455640209823122713617641498954469960718324373567075408808914417295235652451822512622950019878544854920917750952065927705177336168072583617618445775975835759146481129583831955598994435730217188459664686777304445310724514927551752468818961572717958695367634929407896312227779692720406705548728647048004185609707975476513837500636458893190674467625887902800431585435338909776057006302912863444456911054686738259765687203437945001137903232165324698632140709492728424334310122933105037381536346958628842257778436589118624391071779635102940898030016494337724180852100987420759809823170277877639630371342460414156960736873833359621780054590628654301218098011691412226762658364894887425289466152278189891312628637572781711920115580075773388768640431093044977603268881326438178331629865732650088058482335770131236934660613791611131294682754608039167241171494184994613895287723108950284774848988886695780350632860146055069556094151917262708517274385894682740381106610841044043256731025456127317041734972754843674537713365161277649491615544770238413922104478022568245573934923094906654371854170368366059978223850622415369886985937884071931148191115903031259189061390537640575294041166536723839310107283810767278061001852566276957311029569103454074503624960311106361993073854290422121501392281514577822075155626163403136779192674234259360852860910315037198639451288642658009057755404093160562794479809848871226373583498684991267379939242511041039602606326379931636266841648494417809390469960832164694409740452408127867332209449209732656950165536725467809009038162115907153450320630735616912605595312190532754926631507374217438104733010769205377573957930917517105910099708798570641707419386891629477188023776360152638718832432985522641900812556268201139753782986264738249168919802210866044436128705218068741837887789793863614260247608987768442766642674903706918144461113745964107383479496362960054458914157319957885662068677769703778557011730738329363979382720362094470191067842968425969650229405368023455300604356674169875116360281880292129858914587095815969829024131397145039073083082207809719104080963327718721447845272313416126044129093384574647230641740891472000669687537594485658685110565374242998324654268191329776354558166968515394596059123022531648267088768884483721086105418844718203693807773122243977393417703950277016070441311988633496930631027918147804490819591546508789402098562617269497717042946371343894697738752243375371389181303931101201443409253076576314419258837000169715966885467020988214075084008046635799326783525746539211500666139942752775268404822993877534444302886975225379111114959132270607424613329987867511273884149386383503641129528214336783708777651993460373406450741800368584540306005750654607469323416961023284172970015093755665097609901703417395330130572784160378881285717511775810009765501485106711309963192376667150299068567011751672530920927222155789095729647405113442293377624732331930852950302867817527366846507160302818907183743856752732845435652000262363648644087755800195348369998422336258876497651879964707094464332079226562474712570801242117991272691915514533898889696281720114209630046875168108544736651699090364423869233878694661705754872935455344687468048949822681031283742986233715281773418849278765897441947520527628582545259274916718608695041481913647040895977047082679685477380454264062148371879482993888871712620034891210850138540737874687392232487331181095158843003755689304966245757734627911330193792400304701839930922004766902424145656636426206845500293681200951853005316686065245343695062215430717540400047689153930040182168469318601077077280841436290161880009288448877907966437971822474877164077974482574424260948673902998524955021614433438803799535384019254174164563192104403885410453932759675559796158556228162498240251268503291436956634636752954263500131071748399015070823765867611770472636266249546259613811305778715868506606978578391709630065969805414553003890250894215425876149253384467389587345300673287341311854284370974352641700875661846078603223864921542760208926794938107938045689276588495909051908703493627181469044246961284883890979625148799084894078329812979445430486456007525598740177395007889669894662892364727548983497420399371032765191825085020822834924960375422945252157783661287183605909894251808669411751808521864478216842581466276658883232746063285280563423158585637172846653905440527449688071923611771842921195657407991327464431635865923523957394501282780549496854744896351919863267357407877784524820429606440732001645045761613876041764891153916030968596404064343854977478107884815414196249198058230015632561613294923075407089994757682156491915612644846281287996371759174646922213162209940791225387781391048796371349524708484029239934337708239907935102335418771540825747697110047758414301798286331063866995467389160686394589358448007012907782247240811085263898220749521898828197638257053162132602151924011786801260961471539531833543220775797523718855122623898989446745108013696402884814181701490649821760622727253313554510731957852592196166888430046808617781573857049146499124681355481611793909399751538167210097677248919928937003779934917335161319384526903699354769708510806638780805842293018332700856678204524537605188110979694337297810416592466871913921358988850289809526409258571649519513696840541996383971434630657390577029544609200204225809642305720296629191601585574712132539581035545005025808454931444307307709753561809857085103036424233669872312356039232230183594097201922823456665528398293638504318921603673268456391008511729066703572770540923377834584638947080631335701603115476800548089564811791103575252699540623999054700025312212902732365076496133533941319983233351572022685855863964697766181805231510981996873894310764033301166952775979578727147875716530389279354480638514958364971985815796191548218696029653467288662846265302023264962271826548220780795503783940894904547277891787249498730297046269567552020136391929921721849000433113345028256360886853627076344090374109148596280241710507840539360935610609196159094671179129795396725114608060026336281107873379465909829218890324607743590327604696405082950381568789302528439980532355501384578997431241373713245821905794281574494481752598661791260540172610256056430798783796914501253550288535820063756414180506383853977039828205876533608876457763597211889496381528789678643263022228838879330270955310350248903902828745694840823031569872845690705002592612793374925834960919993410402078022058041213567809497750587444255656401438484933234897287079687583099838128408363724005121404600716922488478719328881808489311945844263578990713852079114498557425254851341377705407106214567785072981358578498881024702384420282719291879927360263585074471735424835563296890940526538506325173512617476751769219199231154989196366657624195307764935278295596772073665922726875743979969859440462752235058981512083336988475821144741194829136839196122334322328464342125533114469080666954477818548471011179888415008618961138610379711433384003893063980640502358926364714254875868461965459331997981529580338145911786351246846980851508442847936352320386298023947391585265713854305088197015316898287582792419765046810049948452549223852610595122777690051888793747653125458139880481582864201433489583189755173804643610556455091808872437200534279599705457300661711793700244997088142861577841540075945090224486376963743747170537671693797081077059842754127348040777434454233090882925195255882374577038902596050006565171784901851460436362251520903552824645233276109255465060290704032797384006610323787883977579428250169792053368474780826199092462020670062353590649402276253992645561886162336607614387499811795107941869622829634952216928506128055237277792458171610129539451903496629478372733988993466851893252828930120194659748989134205165724543794462356930215290590251682692368952885877855503540202333617992144771692444674882953993655294015975805818803024672659955758062358498885162675676533486844353644366920143259522366816565948884874257171899890359592861388625315764118701838132086980491576518018974514729465291090001188761746667609361775576972422193762734806878207797742721876458361656802736968343796077705700998960199453906915906286992855998688105614646668494698638458171980707563174738919022406641359659621114732122989542417960051209380146062716082970123265805645912311693599152182586911000570813155681089414443326177676487665489382954327797700253840500082653528849211473953859970213871319855665757360623251291719679787241359340580098359943698654279596164052475018860185448411894608508302270770999677249087325325967308599503155175744480307173947066617069921622538172785356200716005067163258227270530557540139202858450563491752998850089841501722041895674251237404015271706001256592469056446699041113066765810425064534181285794016106670250157698092431436105389345561069326915308033118455684580056185620518549219183872431941800872349347988790316653349108886377856016823438476816590263058839448379920699301775673342296327237034731486167479904468780110150708787196886930471679619453999914317943660202925842185830018173296407177371733412680774634411024670258481335668370039867907824775108793660249511714800500519386935873618177924339500418627249848174640417077138519831159097950643371703972024582326327715993747246112962598582437413456010945596720976163658052393246720177772615263522451349678163806701167947425537408152523345928751842517140381603714330529274888681021473362986739829461104857325689445526126390509600329183330188391061627266074328079971570844476924222358267731547029770239065618700296064833180262510525999524029150068783192675375862206021486960455405177303460087522010331548783820386825958078950549170960368838546851967948188408492462518763318549987286088605577493899034445300102793969261883159021130552469637595402552415914399333441124788982180179055635417421894186818969540224013007011701994264404221897350059683531948597010547973354472665002450668493864950575947623233935575441851048621898208084677252195629914264708914568815870463349656167339074186259799864418172781538116085538709813336366384539016831240164899321072017762919411456765847841272790283077867633386449916249658398835451124565780015384244083260976415708840207235315069492262103563171270449481766510248257165315379471883033352966225362020771741379333228154435828194320996209734192925981908542972636185804595490142219414211679940014205754090621559236934736285699671520049803531034877821187823568526554122617655316649449549579222549808920856885376978064608223251412421757104732689248288071174303385862816350761309013682991844738605364978269430756308609200481049117973734981512741834763983538199582738127672686536625430256937845605609623619735614858690902928892990933286978168103999785421506276441300591338280497668829563408456324249283072780863520449606180678824423616392999211826849252054836937435493292439222334336809148759176458651458714387371032840395963710739458026582481249306728544645340509951729599703913064523620595206753756799961935630587376113887261479240548930031356569524873072409820147299199472855457184415191977023783606771863371537231856984309062513488974670032585752663973991659560544725382205168625725452867436308027673877764255724482423222152663012782315515539466096432894815748217203152605559473433033814208673290994962618453146176827797417461047318046797852891474920305419263026788277675335341010357688648850953066320818822497379559837616183727330443704591153288532978032015086321807550199049348588574315170638100814629880925104005376756279326790639873165663951572048611956880111427261673766168094920471680034092423072085030905838907247398474262594885498264424117265217316778345747612052137496559685127288572077681506700874463327364518013804560617085012285843261084993739160204231932906038075162604442102215591511961420905705967075954994957742593539490287063862729687375567127668301509948024113641653991383761765890269655434666842032004753569294426793324900025821058402081134907932016532332842446945303633237596420262218592151373129262345219044961800396500152110539724775441035008019217079006971820004243812534730523822331189226479618391387488476688977441386603794142686337374841129071490855078003135406723458869223907776783921181896693080134532881268340579685734091910476810644499086878553455673042717894793206276403089378973414001497595756515098582243895824602477030353004314045993539168056445015222058446450670532735071419966454310153399096729239317109601798478618739502666679208284679726109677056367037181631378687758104844004580817829133324905916875459251888201195514197927412447660967634676210020360660787945007331337267663424727493223231366297731229111408279870489110215189661143263732459511577079977979206702540155022014991575295748915130682952554277573734474651767739832121333541338659680842961864158972034378139392003454470744124318698541959727877180661402668367299234948394292218540152712150226047564337382083227195138007341749791226410783469105492492982013393613559921898595328444403146502368674301164645706061962435405586884561218439697646290114456916642980766070189332685984684298816451088377951383783236641050055158938360442555089650327592509381158013477002209369658073256828088856468043892306576430477343218514958358197607811035720154425493864836078503326255451372719252725795446800528291086340606994857197210268870134815734658714247938620944224917653735182494960003339403625451477240754522687169666147975199368090048365675318902571223074618675091501030888875593938826208154309188514405115091589655730936274810020217707146746859696569556299194559371543083172721408029383686830692659984270579302149647250658268607458684308754938610602979416455505338254300065005534037066919415865759371932747271023827374393177238780626668826888980315466254656298999869081823568191152092607718869546615586255742614366388480786863900103034209019858463604320325213676410309385851039428006294133811415412426320149361442821453599527513823963001489706113880822850344619372407671284453313017992692574306479562332241946304224539633559091920563439878829722781183202800997587469507785302944541541461451808615607484762392165987876026370457278664784894540839916649754366380387525458724957984841711061992202222806967853463874711978955535536298078367013970934597529806465177891211861054334180098331679865744257617312788491372957450526364862886560754765517971544274919187916038460857638432020732265656721653774998310867986282810385302176448695894723714100526537313084889576534533799990893242550757450906369963506054387091802162354045040584913492573650771363447531370737952547374489459095653698044001491283576427217070987658377070149271396685405340872104334303960777668185970603812859512992882481383304252815167772665057230675639532532894911248129055758791120392157684138184400560460000994180607775049461563293339031326545378923273687129448533817488141469141509672019570172378924132508713165635787156215609031694868231140034473605197561105136544715705718317113406373492953232250325093527672840834697441070673868530318445641201275801242579445519763242877517801334228248124615524913377265698363300492115661784460187044270212271659203909815318181282117361288698453139134647981199974031662891709058109623812743632293899635995935379834260701335198167104409422738784047452525661107786725965515236564524455365266646406677034896321899393250415709723753324941885300004701059836628494908776129329498744229286031132731446846661743430582105162515967818538025289822347332339954315267369634903454042145819542254271463722025896577346087610715058168257925635533889945368291301234260297260381425433736890208697977189993347912311084635888940522931776089065271588136267525909417317412467691774274964207643424714483330026136011697804327859774161094524539505113619919130514113680592635379802952270376399034763582033832498115126789217748072932774226522331638298893755883027221660101018667535233941974147195945571353812586100272306471192907025551264669139128751694222793029087878280038219964123021402335361820676390035995035389071564184933728165212527363415666413451783358189611292940912619970667874013910870068993132071182939869777811954032074216450210560276066267556829759122890977259781785255180727652475983316293031814825349625739074609363419139859474355452996457236717000704774981737939228611228294255091675538609002778757849399507110187299115559427945072222334024139057250402814583705762035325689269254684700158529857649680295773736663267351639391329831843424618934305274701954428814837513087470787523581349926160257384273680517967218450361095940610253295317723786441860023244027891858959509941762947622776403487057277584602424845930621488623305859636087505966483496328202011317085803492646950877326352603180371167435815269539399718177795363577905881251532082903009270389188449074507452939934337248626228948063432461691367168112919509473681195474668970993754869176305553309638379833202780389140381134089008160696632047111890914139830828302962638568034445534731794867556979738717411114772163548667671713218869235742770310863675802758215759236398618171251277240444126910909970398277079919571824833747353139078747976067789901128032661236072148941241911549915637836640236096092097150202987828855261956054228583596290370492905232103128507302129451670522866884305017913539873051319776283985940349282697234798653605438304615505192230697678465734542326230945207912917773188590786033708546450074806991271791020134760431285254476718827784972360674909650860242700914957464268301152759246058037199036600893842380782744985409215817284143924398290716474895667996650811090794407889257717053100290925710552757132212535678921292593328066265082267868396302396394165592868069237872818070733449673560288491582356492677751534124699796105371924993370631112134334070021216929716086150041027581281927748065213693422113131532093636867809241248943337847653034945011805171402566537599661840326108070283703244669781750516111010786205372589551079495681460425810631313078889212628595114094023476787881758937262243349530946184649453623389609825307607595154889875052548150556056840089235906058552417132247631375490390395777995900831395159005917202309271039973889300074243065547235439972101925213226094905294142604348320777540557549670723234442212221898580511571217535466940262936265933743854775536673732995495477082748398413203841233630100893805415263673426829146224671864328693179685145724711940554501214675217255668206121300188038494168353158682301125201697037201786029247578914806592943213865253788445783821897062149923505135185199936416327605399297196236007111956420264182181768021161289488187892023177909117380756481437942217568189637161182785536776186264496031305879959516112256018165184642786326535065494193060772076319944394475836909261757504494964076587288000200142058659152190197750676180306567687045729533728095202032568419559650189029070391846268438440185301789400505469075453127542413618071013474766596993412050545487834975474175232884571591719118509040272902234145295913383247114421156779453242807398467443405567150308502269072753437032171140523924284420071086367550906422970089549855234188229103924275637958171997116821780339519894086198261587780038440705611929914650790976379564258226833993065280833145457027314193308850093626845234715180944161271560339021352466559608513883652105400891895341501675906014166500205894912244026490844155870655401876250463493598518901240594810245898958237009435698322379275072892750303177827017566713790693240699497024381651958765739793400742809043854526887397508960517776052040625317096127725177305386464513528188688321917446036478859422299389340705583320756522984463178776478321933023444944973389530658846631128132107289516338969054888472435438349919646748494177709762997070181325386930506734231532898215691794120704575292690676964342190352943413810784043485654068142018078087126445309577683836603843142147072274424496122807088118795824084353695941834653241092045487298830122002154238262917685218212192868944791599977690319804670212522891079418569514565188549507322841319104727264127789619169853015329752113747942406767087092771725112943460193725959608130105728420104006698714491006384356092168376355209845078111760028656675161121586751974249896759876420852527091177541072017795502234592345011255697763977063697358898331266849967352259475071961523719011946230797590037613149613121488719674346852409542808308222701619678846837247049661812490071821817213278883931683182919873743801058856989811914079977936934360992140271050473951158731311599018190071500401028085711030200524818544475803244049513471966571155030073487736898847464276802540215029486682513457261217886819094573357550913148233866123790339750559410969952782129789336588473761732259725010381713608902825497847731141981377570139840986713217541600738277211331806988170230492155992117539439345198152485066309334439061152898042415534081532114437067704294037649142973860597384638154120176254254449063745171223413884377121946194350521726554501347768471989400653260524888849444129411501632063131029048843683986337582182431809262276191459288054833616641879673004937195296150168576464135622320890853262855953942880633259792864485338614841695397748394727066593769027512931953270858370440972981739018357970543162269135233460401351413381390499716386709083703869056741444971456352064927469718112570249715507540386640088313216797739907920463461130380959753516922426082753866176373123316448550955795286144876123641957413141519459390768958693885985139234652494496275143854975390916729980333409841069776035235671593749076633616636372070004404371004390327888080935267124179703213943962312162783963005208257044541070921638531723046688820168948256654729217655572092863169121069564044714425465797051247207326815910702342978264934360616582142873993800746310639795718022409791750384672162236900597277695507082577235167533193446825531966686184640799518673521981585573779435901503620158808079202931291646744619831278682007279061669376343605730755581770046310893977477509920593824756946825475970630968392161715334042924887289324692867381975559350235104898792284882439473885440628122839729889856762601749680633972949965440347479996723649854896912171828310021682389642003440483522506045190432553440763233520762631889753300959660403870407521599983568903028863402707319480469034903256015306527969897278302753324219391618896806298490592556131751573553411631454827717632982416080448488157799364010821891953718337520525403951533293841634555073881729340547012720237805783443900004728151138446676731754614165690793880064513423490131172246098475414561629352094655773832168709336200992913010070435349705401531050122881044527675979813644490028022278027914280724880546579293149324435532925842121448304174830407285376455691336248676583908140057575464225248790668897832267744113513563900111182397906524652018084278002111709294181445410183400442192194942742301027582480033662361826453097843612633740609539694971355554284875511141053007747170707487607190096578296936414683045734635314564640615883178747117762652430177326507997340579856349745468120059858277071069844003539822892488191210461021989641222359203363843980538100755140820380980211237561086525982985973653652039313876540862024149943132054132076691306939731503265076080354288866926187993118129625579000261253966480151744287231703568173828836576713771400521469979302545621902945641220776999264992363041380628475215427635789062307999929609864208911782384110039596750511175885326111136560387522595184064922620788528799426940363110647360507156758207989305348726787801940524612633507371799139204887684482387994779911479637936178848812489979659684776749456549849492565197497670322422708988126493312965772340458040538546993279936340148043825274162055461048881367341932990164483338494945847233129472810756326365758624018010749184840158397682640049683683967277810791540695833472780279804573923357393794578620147749143325827786107137683590733991730475769019036370173279801532864109168120400011277114858312645347175064817897290691028564320584513345350580125754426712085732669144657383981533083136552250735489061201145277688200384476111004508327131363073692035746933717198206586247149616712468136478021978306086845845127729082873814342740555156780972987962665908912365986785721559848354873603393974787484659527181335621509641082809449790185659796854328742360266013172945513260782633314665810787210929548100071265046508765363201444440791570301965150002645279176771404961699137565332427752392509646422713729480648487747394260905090586911903601935370393131336667846096556387799260173475887332712261660783296268127370709664674238463502962249044575552896895966313903865707836283927798654610156178728686525751182038024044455245147683393172257687599449999337573963754092158661992282612851208505150369480717106112876030791632261792587031598319132928584198479376417041128218800704842443431687130455388730315366883308764957225337922378608159388381847392834970270064645549925009649226532495364969951622518117806418610870607761554288119435996902211989088797476440725659446323183017453045417721670899547416776330885569101049355745043803405386425220552992625146453352570570422624530959953598328829081462390651593173509510165851244351365738279206929247086980831110599613501825714811740542675349607172739996810241592315292940226605366945684984591667702348833663987804137453314923881588737757015766526425982150498391273447046353981178583646547845237600551846430921978933705847406000874089749549955968931324881722727140226461922316068328168822267664668856131146995933116603371121761757820545438904851418295881503534195278622938321028317859944599199048349473636726576703024991612111932899083409186924701810131210714563017297101326886964617479090879870902744857423024536946338579115892061231110761289590740352692980703316993679356437197176465066153707376925142427406747660504620386203811490268620529533852429328071044148922068294026378672039090849077479502817475012555700099700716193656567498383395200386579431146918445264664629624366148358863735817934468125359483188913485513187399219975885436853721110390372065274340016616623748583476160229794897451573610132022809381207900773172554661701155545353265143486917565637996166919523693382582463602170474150735696423076864849896232296174674267420427376317032334740514450148842987767954105244916510797635158492304898099533986897033390866480888951514902066963615340347192443051456494120954494543507227358744222178268446802013605212904922337181128806584077930121874951355817078600951958573766270785557558325052894558746022040516080560586683912787903888733418310013119314324094133378939118246917405114633950381967333634501650891746298724336170952319697744918889121999250946988334501932368271055869145715897754317528966490163548669341462968907341757996358244956324993794712577298085416233906304455308429059663748846527092841795307177862685159661347397856142004100811963294914914470709142054370449496420273837407815204201559104509940313053121336489022987545559081676690918282036003542079405742607384911897216940987491338027144718800816598648493381064164420084073408714964089922485147053506571082697410279994683324676068639806269947100230583078997855573356608167259739694179646292940350159979541519226102245064220085926056190580442019398272927315423416046810779891111613698767493288086328101860212412713540847966840175889345199946991154635725839771446622612062690363414685920410735915767465714531744732115630175690633238773383945087090133137136614072589964765942810858724762002142045780703164593886415321118992231127989621320331227705470064283254341714913435383091307046984529728933783533327147672047010153834850583347517213251044071041277264000699848544309702365105908961327650877777534375606257040260799478370274731696538406718006033435431133726269672638701758482492623546547992674470311429603938438739547077017564548741925528032575461248308256363345730149716998853803280100051944711922376508779063181538042732364145789383661725918936832548808821220655287867207557051892429375372731394752566378577443378374077952614303766890620008517416979520069619647796507420528544931186652712885331924375251070420931623011576454433752896392537697310274054090636567415553472647616679011541103686611354820649608710353328798816164509825010575501788755526228280913002819762898297779374825171726019891196211466846446861636995828426373692999298795422701158504206669562403824575100510909096801509942631191366844903341174254203718704051653662532610702226681758213085005350201821047416305823755124607384911124822311845433139059704379803960554100826091578611494082952863318766484207417924145835876936065150819204201122045650048910278348593967729587352489225920316017311530964907114711619876275443815347156498242673182093468201137541211659627717589747127774776320490093319478917960474805093415708990812313598756424169008977601067939454588712812157508204315338225979883424309134294121499364371871858405657717794687804325576366470482302918430622317333550607755129288129670579185146482053230822615099092318407867556443309544589339371771093851499743921274078405111903517252137923757544221391641144260148007513673427868351127166017673719688045588063167946660876336516858078175033541384638484569863022975590660986298896620648172511326618652260470103469748524917095978776876118097597166049760301305719317580518897436111160908532326390297027605350749802416884681125863553481996451084295435112407276301627034293872959773801218433868728861794535081804847892639786318165968111339178825756018806404272027813359993051271995601241969509941464001715200446118201278397781118611361420281704233507956495996374225372478714308286286664171134516576244717839596100197456955876527128762759458330027356224032118603416534705607952280068922388476140404031702510730822346111708463109737824229580844031425217067681244613138516172198941080270088970005908543427908210270219947092921800608469013184652199000002087842187599985919739979328406543663089438453866905993808991019638923367299041036139929716242653620866169309232383615068207042368860612126346572962042022035585417999951543432381123830860323772603477812026689437600852564200296128404089657422554811279052000760404835800788647690290811053599076863670171735260058656094224400454829415250164193787662946791665020272220899157852698814397247407216602875450181894249143250165437192254706649263221196130557594364358656802060062339266814669646086925198389409307072037013204329217681492230677938722103022345308375643882406956838238091852432857223680709248159160898893695055781352174653494320258678006481035638669280852644563359023570053591355036903359367413408705677403510922201247780122115305798824776433412607715419071636769647973991375034811514723333658223663723693148592659629857090864417829282279849174687690562822308722359668149157127536444525305616985153622164691089471829977820046691630301119488973205232016092656853662341518944977888613883240576486420643081524491940173292481967216083998905449276486776568676167479145731372127320694649394479223692373542169206299241915038459387705272323007134470413353394550797488667106988652217290912710367383941339711882232579582290964787445278176375316022543800824721040181896368595311922381225925455763027058296824955510375161908665218185889411373496312573034963190099900099253521085386554036809989281473239247716533481271343776293405277679688265753874627705348962975343973367796365608370107723317855669946617431627199145271316867438413949936107062303115591743478185867651345789895474796399054563213317167451558744840412211350434981877671764319265281367051867952844332678024798431811981168364848119260378427356089763130099912305635406501233628038665950332336838685922693811180517066480244165043259463505124394309471305584673891418402054932651495506876349734725174901378126496863807375574452331037052705243309785183388263342611946891721065034253171787678109799854635916320406841702127198404188189892760289178303358680664398390421073021008205102273553660384258797203036086240274951605721266106114068125106930158206879579144023470713251445438765017779980208389630582716047941202680775444749524958230339694278331575338797251881618185991462721762275479023492719930017626986013892364887010308590161095611339727174067256231964224687161638296914838660245663236007093231439130562239433946370993878152791199646366594577900306872886501626716616115094329164709955294694094865147740722126595406969821196726724250563960220248467641850437287794590991491323319716359502699793484267299024685086667765946121864307108173464532338419756917670526209176579115044378388043540201065709625293221910379272992977813760773636346182579445949774673016850127814218700156709192626489259954131029816697513528189254952079105615859007326523445574306773694984191358965511062535640835559185788923125066501076580120539012818105185251690094942426922959478456880244675246604765778434026671851614547617359774877150476540600052378156013596352695581538095774510470849152365411131584103903475534906956815706942973010487387643399063899526063380787867576053890145540351460780087264586070089725873764224317423471228339034529770224595490618039771959282749687732209978589431604899128525899637960371416565091439510389095139884281294183421049603313482849566540429554500948698411209697175587217804253613023153311099728328999870962748419010899762870955722894908090377233006498121035947184407549366104647564276391193713783446854346219057438291223557329790937629774767245107317676594852646933862975874540986833877451072429305793832912495801258109041690001437309217971949221613464638233191891034352401093758630916770100938624071233017376849395421212166920558412984618672899387750257213369935370040337376099792590883256473613127298768391782923229357091219737074691527194758622818444471857288084195103094510819817970849744134797518353476299552639270768976001333195726241419917313978323741708474431503828821646469989640742989172903234026464257598175609032584196541894672071041856349514639022693772016169928917184159497324356923534342068413471178256922541894839469778668580200739569981466515318975023032876297220631095454849028543257235925452725440732343737106104398105790000537083140083413231805844282429364129921539134138251854998182273092584004956755694480119964618723072771119606859672800057254822098172518877824343388264374942361132417024201307679904825100517263970680025946761382777230166340160067886386908180486639660097179087477419291670358828433414950996927124878915538487558664409756409908827854204576351734839927489091585421809614587869164678441083428075312265274516957464315227058488563768363502134627490745236017030220935451064338144355890496014172791367945900743477486309789514786240115440755028852184626591050201047746756610108090674564563184233905821074790888600917816715288241662025028026541100776253781828461832131911548633564245024319569076223136234913731943644385996722522678219625064136101183576465772943597794839740454791513531535388461115357270219857827342093684308940342375059817742767059421062704846861395350578003736029081269187113720982166314621532681114498712087886526926800164103094771435384378989263282058819428616795558432293969151376433651755114680402876233552407139741704734784893687341906550953876739469310008354716788033476139704871696966524736420838200313084161525297698697037497009085164790833810272768985697144500300903081360441638657613786762996357860467114240883199951850763810877146947749587449830014654349751634024332641313504000025528866054222360303873942306370764993030807654046675579420491619404739399791478173992822467059285109277543839536109733102260275158208479334401775820457623700361074223348361736279157292553495523956846228945465959541831736092187814923366481568103011259348546090504606340796217056442449802160102614481413333997657018438782140670952496748468065027521318004667958629426364053110212471025452101047274623186901291090094582429715246187729403966425727238375255803898577546915784695658595476648851645568255278191319478546491554971564996177566960244190012622498034249413436231902361100953011187601147413729087496058748886882386211137984945986316486532636736835614950031489226785980910542567246188803973910413286988630614170222373559892905733843011623707932343843296866815945416065265290641119159826448518615823350540089726547480914082614250466932250824050188139517950662955668494026025696529631295921159918386286070274349550815481088852036190775863434812314708101396882482726741778857680581360863968205000660390358032492951449817367564802929687026499236415229788396951071908639608646570058955824329345284428473905194307621027239597790004301526204107304270164230618933012447030898101000471711656331965636865867755377763809458380988599166223883559687927908382379882301344838374373361994065776766562925150715594309035552323605922129525714428506395970295998500903618113705556870983626804942275492771105861736184479321813138587483366073508863731073533301085562638488238797442387907810177799118857340775030009563907657479439131091614142565087132083374105440985249305513331270116358122169155877215215634653973394014565935158306789612774915679472892045645405428330106176003966468396840660625770451920708052248738443896370994145028778359418722067852494815372495709382659111500539906347855832595779984920679243409683261158488313504639577263206622478010986005642569139053842034219395304352410993432466511744447737820326964775082562747005882180774402720247892363888017182707880266447683592073765677731517168260183095771695557597555011891504847517504244393523895415967229634461901974937276587552021257381389550660120667867884343724514584619473823920514776975905478906688932108058303290053890847734706440272366935816542866848814347133615735832693054691682740097049393295826733389663505811248492045788869746837663567501736330873109739743482816516598833415643595716529000933702197488475045633494255917330091550306659104118014565277089863005203368024967455989536236256122480428534514458896476927548726441163442040786270027826373600987584825649107251925677473046238147525283822127980345824257864274917407540269522369886238738795709171591066699428673965919860703583536784849679241540756406956205051803753827994939741566970780044178154717385884111043554102922844051124544814110123781483782630653081809804827201095460268036188271557011740834270591492186822099683966373498385308468446685753419777630732154371738010504888640822325966679883131434068123913762953062300378571417797287383623345701918473233713650391233595457310179112392650187106972774593608693150162232895617307499013926668615419765826458028067731676417734002834107505824740014346152582732940493258870361685044259988300700249274543707480891557668029884545196101513743244355187681649844831173456280883187086172349194846527812058674108220522389222549838830935552629917845428696905633945979766873971108859200895710804029776127689706384910941509905246621435366639030643156731199610284317518664841551802095210024370456645881293522934055421162042586166389896373625167640918156220524651103676308936828102303009582075916656271442664936963582559647011746879698116984538689027153180899550123307539674708560077715156952542073650136228944243880178322641326122141252660640963184620627284329871004931331036248743304884240609419973655346647344611096398222017003209111709335952875806691215029758546639771104198882351767601836352705920950969759101728268032926235637232924927811748381983659315497237678365407234445087842464375062940180192086494702071445112354421081280618539637167754078508472223624403148773126637650726761114391532862808929532628819467714056077619038641341623417099598780831413310088478843045821207585183591141377233763651380604299947803760271762352964703612543001678764321465032159748059932018342671887740503435713903400531733371088522733928295121588648002927281938502033780644213935747473478079915754586306441497878601528065111780613195181717422751093488413096054209670138373234513597891572621489388528604707950878279396281137832823689391730996207527670453110491858405354867814393568050859546212939613262637846249702419291611687540890820155644168900693460889617271681290305958449162111852876595428583452965550246392109228480193222514031810714354671359764461722340259334485028565260397694746751050255114439319053970174592364968057570924800033029385009524570983824307169035964201032124138947133775923163352901350116089383621248402049470030232583880670460797380894565301694746350598016227351882254904877751908824315640498443965943813930986424255791916534582183613494571266636802233525340783180364936182593972980374459801879774484096250237277125233155496408125848253128597917147787789341985564231648387255870056171608588482359152687743936737518487406937037572111672430579830113390360695809428401499462173933868137460038194649149904556902582021113142488014848744504067761782524914427266103181887145122235257535330565391806665928904526241893904169928030878099798518255428033322565087372573669590374863853676184797449725879416443683409248529476559523120159364854333555392076196747289710359507692611799777067893517792107140630885881629549282396354461061709819430186737480927806983135019607558814548835299342030832648227375879420774442287769856878753350880012418251789486588383993138710500330472465933320003789093790439112054635312839436024784763571590850342195132403656400759061746108787047803978816699032735121335799715176444864279362762169127318873319652961883482674149306007601744607440063965477683976903403595987527498531231308733438107889157348180988344153698679734130540966777535730436454124128057859203672105662529415632356238953370120733898810805153388637495261021351148880719013850466245316283021343487951010545949756920331320213863544565889139645107038352321538330916881839360839484581136539749708288170834835255961943008171141106776139333632185991632071677437452944207900233141582828622872662441102417540420299737992197356065823726501980672102149137958546496789658324651094644404453913320698793964904942642490947001998004554786828910032749711725936976682797441383154488808219336063928472099215787204602265806298507934685117364747239668774638827682454052901519017254492823281635205345932086650199083250356314036494752864792119591447156758185800920447368504581041036517098508812117141349223907070912959502241967369282655433789031531636479943854555157674038283609746874627470989550525873240621262512788427734050413082530517190441188778486672641318121246939822225323402356418270151476677673481978687091191613693628657452992647158990642138424458286994916232620851066638491160442424520351049171587588597447663574991940254191688102561466331160331811664029226623747378924297693546460665789100843442945015854729368194071401697767701378235109863354624701436415798156427898561710575891122159123486439832706718653134219082859901892700801315414514656802586721361995177418143162800195923176367504083498929048542809709223953381016715864693258181615079989957219996946066921799707834453062641877392082642763245013722513332413685796971643927214543393864028859018354607789682731123242079076605463758935115063805944764941290153167585134411550236285458568854865271928583748184430668802230030798411787518360990573434082246226693986779366850423284020825357831337690249905736711886230713936216140445480033485830378181243499738903722019033504200581399257275102450392404065578236101260324584847834400368913026582863389776738027679760002215379858934962367248807909370404853613331624496344733964849886919471056814256344647917713712087496176524768339569217631217169314288521449287655037405364306792578436994045901869014290404439213842935853553385105594122032597652634169649525857167184846806678334879805157137033027383140484859003307953048760946389929096932052991350263684021255844079597322684256690144909518482233615046816894109029969470914953487287730848515795697426041080695220236893371936732259420414624220761984238106799850704807783719266631303786607122161776214774754102494372754604468006083397099279558909954941558308073176073545675203428546160839058998516107231250171320991842499497202005708637224464624152642518109604609231934723622678996923849883582099898171746099975688439233284185052809345945305602665266098387385085893701923939035161725084276301331155980299423219052278454602211852875446409753343919964576985730277554990125839790075118781898244779366209045113546478816178699693647117006878710544355176494276842511082115815456746126454335223484402046648549445565084582821287944066884244905671501679958293232960653987989047875013751809534339122798181809516753871746606667247101691611409476694023566471410170828023762060691684768685090967918611128375110413732302779687525907727175648970634724745710854853165835606549223458852669055571786211512613827517310095788545516795578041919777362720950626923601607858651423121396329998330467983079036629410551380835167684336483916493994536185126873598168536943362556945837215028637163258053032490308793187371470172787294509616539786053351430463965155188556304239246602392897363442450367336474558570409332046625133864691222443281909026883235609203842813559979653903383170087657955271284663388095127476986688601901190037886022423087815496818150957280326728269204837169757383769066555322748220000011202631531494662528232788310218686287531272589428216940425268549952094900157136345547253767211993703210285141083057993994267975978561463277242568116740917207727222126547219243969855926511141241007504630194639837707888688738121187315285025119023450679551523695167462292593233513400402078136852801783805193536452867550928311103804136816468139350895273246890464123778080891224438458259011904518837806587245047708350976008979811162339734118086070167328702015462357020997918457044602579057323533406989114443956364870185371235528349595272573968194169160190981103048843589479445342326641327085356589850458398821828063798404896868634824063512658536403954385272478097846926241400978751707962275598223720572131729081494076670196594728793979493428286776558932191771346809316688676929232270447864941332783237720710375139613067464299747485369869320164386907261789442515021682109334880367404816097367219532583530979570826135289893867930691019725579446797512987572211647171275815113457069844575953461956187880668339836549555013880034875875059114405639379406785300211541591989408199020831258991976011884942380084651230708346508846415688206205051622893770462753686600228592636436581559499384676393649237693598462656170069785921073323578212324286898766916163800924552212538668918842918485813100236061260534472525854144017946725413037959127208655203120661294431464393083408826476019296430858571502454620457034561900103976028060623637750630654549283896607363362832262586302869460034341836428653063881028047283987518366972041947254036959527885448152538732471742827200181946610431791300686561885661133229770988901448396784067496837831312750136976531868195395635783766957465732783206726112131146869419600079126825150706362561553430525534768599463455492927847576378040150884982747992602397030346894378985897082936677950029629719151287482435569576120604984296421361311495182586313281389973704138389616973948647410010605479162355293719856270236844202216843566728478601142939262541032588062141130759105256071102650456224396416293582725972800174514154066473969353200040780688109323216341927328279170808996890788055390260675622487512810129400371811629005457540670897901747708631190758565287111932472103072641601434444033710495452574836852614355830619790201075790519400819152619941628824875965788908522570542997070623725717444438305029546147245469276422296457570039802459962214128388685337361474200698779415495573215092837426711811355028459331015613242321764479712646736236400213179389073283325524686961121055572143075750014247702807691365735926673425558742854352517482095246822740406823047232012564354027218849369068616630427479570547755066963143135701390928993713772453173081055746510208077039564862955397813846986218831330255862406641164744254150445524049055229086492080498905725691066929179738217682655749972165751950207194792112016376605085037175409525701100166098017606206248966095907418582654648985693263987921596559930797848393533521189745597233777407313401035842342036260787643162731117055031811815123265882010168474680901650777335116379721682782460983832478728936926028282238155347803913052252459329398696874985755827560496448951770153053743606162890966504144276322430398615310483064827175157534726262358921746995435738365762595064848238862359655598883238822849546618857702152519906509590914382366935687870794250240177237228963922332050587912752669121189352118646276987823798181211195442761544564855670554686880327703128656317464672504874353549986894994099367129764501766748270125619820326411471392476219115117338768609098117102480971834239288254079400367708783986419315924024567002396739769777781663022529719675113445568836637843372799924205194681521079026009585285739302164126650950359867636515254983752839520940030892136758098639495939719030649474025307893546264057002688867428306110458246242752429495127898219516874575090455915656361054978552897194259307402672657986380831625047481063879111324308150778857722730294666030341026704759242641452807007758483597457178188392989269512888329217093346274011316385117684911452600526805093263642030762785435599158969172856444645877920208893692542976511775518879972949177185807821804772146134530784336233771603193419717865806323693161517949179331993233384802476434137462279647652439472588726482456133216248821630964772588706364091137206526530901369995073932458997072618080855275579553431640112279670978133261891292424896353534676530293748049572776698042122837068005526635144761802066034794413281777874954176712298847697943318410666343472383096142497891939664909221631172506097977868295346875689438316969885849292155452911913648146784507122070861308235076909525573256582986188112341370831027075805721248233135688983490112683924893993406715648827198831716701548254637575078187661912657414768424588863897749938184174883799745365671820595168286292829711744862496810163018933490087048688728800685456130134190130296738152855032814707831239393199254999846707116188638619682402405160370768187506177852764743237033477906542818115603505013868943305574085304410231466656325183725744846650995152827595770934508476155029772528433122691469052151206775690452089725226988418802383858581375660512009678281859310298678069461962198849425930092272079687519098668272975721691726827553110103146407821197195617150759311507490573602857162856445954810140876456247622903539856590769415135280515910018003121838744483264819516507001577617155914796158970951520631448644297712278554385776454459393317009079193945559349037305967991442088133631564142054127180039891818339336909813635202174984996906683224224567574896586003545744606554459541604252615598312153121755577318483392824188595995364269736690180521014921391137749041377210833545358871956307271578203912714426216136290476115316385840707476198387890300934753770793370631031752833961172622854440584561132146156831390733808072862668765821318661645884126810758021640177274406033024608031040557899376566679476107398866610556551807256048837619748805040646351854860085743531150040423894636980368321477405681919831151200515622129864264663593732683134986207239660136369687827345389379444106607372579458063099260022001913013149480072623740474737250544265373148779441905681939136656975657666219685469310662060367414632562844777270411275693157356975796104925298279944696964418373866004316068540255568196217718188309909550928112539575847405912434302624265999911428884726606060619128150307113935662039149296556095141195364824471636159233498672470657698789539816983653673454036100773745331977710750864320587251886320337086812857835286574748022751080854092677944983885327238459844502621598843188923014032437350681941587034438246026597621162962389792435567627007806724754649437512649775304735108087983490136017238886592929721226617925976419971950250097472662576251558876943541857305151134391506253228697914958487762453446571020095955185246992069044945548779191781536410312027384142456161568346788168073040440897580472286115447101793521823280320865416332911525659986497748373125612697226518591358291381619929176019221914939973766142017313522125113224482748071279985704599219871670582098224569493607511132336057798282791781436704433873556417585273222596645306223085011102793711419365272614050152217326311555312256371181864705680195811190316205150178385304456065551789124079986656998830859137551878766765914738072972947988888664165474309035238061502984786105689667784669439707564894040711569884235535581117675703759268861955417258155403276251648209834518849674607505431313483614759785116198660837789677037499996592016069173059962971636093130483282054949706803475569230771507932762165652595404940791946650322187670723160675529069342483629555604433962815599337385419525301564872551534122313667225406877451600501012263763208739871663793407839339384485171944104549622250117934124561228520446604800858728844166944674221911976113159735754223523208286821866979097717432977127123925986754415619602031427783403357073539109519834742322362692235459647202913032334211878401762503901405395929640266786362670317268687303376194688427950971499557056281142903261949483875024937946806106260070721091664813475053953908034387282601708412308196234596558920118510281833027684825581959251439913484456996342554583593567785258451898217539843723976734916405243246883966824919009199043376409342017683494597177029504095365234108999092064449186336584888484874716272869975281610304720959043525283327497055106228551206699605534665838770536595842814607770954949928463188545537001320256246699492744238902599218030838299454649385221778972459671685889935943439530552600299880012116031374070785461151577499315893885704532313172687427262333832329270083961840961139593145874510773741969190839345794470411062945962418431109355341714957125708584971379511385275014009525720730776358210870259970639052190744835493080295306226739695007814664287537507843772191772900396352463097443936563154953312921392862257195041200966359408420054553807339278250697322795877497100683036365072480632619864644741093197941055937750405290922576331570998848859859655503318140860051129246831004765151998197632081239657581199311577037102908807898438499117544451473235841565024214414905787673165612421606848581273483219930387902238496961008763717678729177245346196984260924530855337072176624990811688739117462613500655229231193147823282966958368826433483534109286358475250984778543835713800968774562776946034964362010838417860340129420135474767845780640350005430505844396796268942438219801290639743744497991483665275239408936978687921083021277843567263967387606554400083998851900215657976057308413462989027390931065311899987796407762083995131137385802498782989428275673461670454175996889812002845064949217155474574874110295188868716894750150292860683415115993665477974439731718160516966425526910943019806918593180012324968877435843750482175045308708654613780527947141993484856857407692088656739133613970474789732792805256203925414341084514642059662808539676997741026228066339573846581423143380811728772252517092011554156006609784124732177065226342567788023779194290181541936740701508147058883246826323480062110468152323096745936934457881769581112146808871506774863588426094995863374658912094113670209984600798349933310835796018142238321619623483751993657744761937275177526935674114070927106111645390977651879944353230704615577014624266289112754348916951963598980996401293745537521592907393375015793708148690441367747288604226035800844434750133408536187797408541411170460559633534316759088971218004566961140509102355777638989925511454340305485108924349501789912105980974303519382191606929831176507051437432786191345272787198642910131857120821794221677896782678599638334900709108189510606806667176873818817380685502321968734300833929207641878850819648139796405877761574320207688427555213236382620571681519694492378862879544396905195718861707220905560724923123707394857082818038146535693941243889161578404459357274255733326188312594613105358245238544315938611217264314479608470654568957983439244566486615786344442530779706047655667550017503161572769010796011748059257618684754809374104506046327605139676440296124199298839537261981188634875526673025924809569741959606935552128509759948237955515932711894157760194576879523646044270006735930854151365585183956074796578691903432614880308316358394114401908896618534928409719400929293727146106142491232320518251927333381815015013903723700548011148049937432197299382446229961244887376051122246265779938993302521136069039180016815524420736702168520191543172994005086956782291897905140387726097720397531483252403097156276121806482876037232648118602720546294292470919150494896887670713329602731956808894050025074501121905796477545602102514939701062984096060132343361595228104032715279392227277800294105551622928360198533004362398502086739428031899071215300241758209432834061586326055995175740973607780313899994008051203186684011150548983543534216531421815665247088099387357400287610514931760492180507491343317673326158365710360334713215638971056884834465376065540895868765140453516642071347165631812949894837034246620734488236251239350029966689602704226787943848643644640878619509918958227593541866111851748851733696414645197277397093110408377765743752119739216104798650824965090608375648850457163947647985869419690100008036234936565007211658944399532071459017537204496837035736246718383123781374694216797797137925708358982064851752143744556337241753244256752626524697659558518408126363165577391675243151359515716124942262158623064097834980388607951362089457250735597108607058622432356447832270034801300800249924132641361720648614836045609340247000900680043280169929597177538683044176933122247916545406741321123071517902088713072239888766092946596558870853760344378602248990988855555970834990853795879356142671085871540189743129176385677790353612599746643446421552718843527505333832902854154441276190739529536113387210457030464503884046864815570533139263164582290521156226910288598509176167900119372387610276022197898150349690909024802572805251925413479147274990411012804918135476309309670860026365356095671411078850041675130916694553177376436211499046987176039057423204993697065524990600005297075382511148340825443382735323303861494506216740286409913243916327425451551052321786202438961105897368486948707157612266383484816475266152862435693168439966286479346840354954058559059436502510323227998122063980651884340036487196400572448085506726079650790871680138687406997297765846082494633738390621436155924462192564338354453889778370959565234291152960279960287455648571923296907775065315209277871042128242552387396658432481555764820743514912909417834432919890032205426638238150627674104209948496258057082940680690296854469091284863750656910597399590483938057254248436062240960621343513410086448191439621013571757230867212239591559958512854504884037901632350240922996545858325295615780000724538919468006539650400184711901611469483828796818136170895009825736834774209277450780605060568850872833630776930889662564788698747595111473987997626393797499857868893398223629932656475493585464736288277426426351786057557155098402829603985465105135624163766088119004117199038906432084435319968140017553245083308233455602563955864102819430895145337141173475204346533292311050323778654164261289653466004000066264903044904367516357966059531500834758188877108981727593626986691683428587398504200524723707657504584498644804039993968489265336683919786542295528306123184597026831522239181970603173034523164245116191783984402266804912287992689050623288327930390556200028763864915274868377010194552748886123965903847140057855437988988705334003463853640839294940079084449240830615292168448713875937190079130785644902169633036037447958818246277246276034516063467925120607005789144727309168550944439830710802397438876485833759657504459177895627693842756319369175196139301753661699905898711876841099669455573394071379377527994379277158530007477548108258495460296479476446527291674871045449127209180939941028447417689125282342477950654632200920089182692773209671273659617650111578240166139504539148925862181615749158254072286674414818894787999918878787831886523901234916857875424167419208609040251902781390417999232637574585682516624176794416243580472370324358355832065693948177421146278151142807339531384601480203661455937702128087836268655730298463465205413003751236753823016919706586195872344875727296772754305194991660268325712958878788312204262458580124755516958857316563667435848096772560324397469209539708259873869204758381153713062180297410152552812345350677543262610294529364507292906609317616125287656138265849950198635692754538944281289112729996565413677057771583850763891707260376293670010777826235323993934715160959489555772127867964784012923824470273567844346335706550817281801080030175484242067370407079341479234380198660848929233724232035295819894240903751307112580787696875883267119928872032363035152257747183369920891779490806312614950706372540659846264946449493185570956842914010638316933042542857187607408878040975466357447288062819595310587802531984621775657039472432836351068338324930826507292886755302410843512117942102899911652633628810135461785447752808644156206778851648170217036817361388833254890527367121153465375009608778424368515382625073948469068023886812561600343287927076770219392045888837783629594580152083046440579552489528592111606560399835832710612456054468021944773402111706025512243879332419274732283315999137355861654200458268195149694573479537730918092819151187567799160192712187972735334566887905917657442474004581645857632788868968266916849281314999198353240214181591805813420501666741999385674402902438688428964477382132253203509126363228411168552022607448508044264249211364450333818674989648525615398649768367079146438402324749998031857594878603645317220264972135850818199426315251786984213003903097618643143063293209882200174338940885984970439873111982400799098773484639624133232104188183199907015524344741327439004702135212422249477897638346320380998789194100128054470607288732616447242323016355007984029368206737735522112960266943087195853510191713419308554790737693582983030035929846747541150032026266384250604539591946452102205190542443915727406231914770798672264187634571430841005187888173398798523361277395472266860218966459337040958597139167434688807738411600831241566725434931951692395730826222619793695236291515523291991563505540336762359512117031675454879710064702675795624132695084233588945011551766508622708141149893944748312918367531066322471464779611979903824510853229160726717554146798968704848052686436146270716747455454023981858669221047691872688667012317822131450521127753407132436423457759767107229822144778534578985619197007799256654410886765400011213213004821981950444390369331937706011380874192053396591459082134993787979144394935652472781113060454587714802002990271987052709505200728281793026988601115467085983845684130574242032167216172072917566577930268089056686327898978141559367377427812911540942827830541063185037835139580890266996868397963870239551594032245589617857210285172254068627993869197904464625063929881642082634419757487028654119281316742350162834043860250764101924039737646140942872545569316807770436568522076903479229273924811832191303021204059319577541265986929401325668949426195834752348273811513889427232495976544161677912960769752336243980772731657530581822939171366903741386138807182789171689827684186143595758557004644492161422243587405563565226089327045644820480164103841858232213102588654702752471170092072979762492458684780461189391291917677620960113242883519797182404639616154399073923800952228246496147429596145340309873181282083621302716075638244110059089929368443667453403070069185615844601518186767456707173039243322918209448892905995430205559373439570830082904666850106513098302557638435801549765163818528868713057322470448759951628137893125898096332564299024806180529895932666286722061681421742438936090606526708506422002213206060963519738892895920780407163617036290300255914513195415871790940109491179933129493505213972740628909311353497189260953751602794036452439705929840605870784126642903054951739155401621959849379537358769675383657779052974983980761612411548984065561340477526188966619782491224114430028347497706727218503804942250175194980120991400415729181171490955314032655887395555409865086063069878881456186691791347724569029428580772322793052774072441823198527051035381432569603428402016776799862400314058045220855447532979291731959291088675155693770238239240044177611256630621861626194852900632466706614008118448041117127469607645025916046918671574186650821211627448283229600720217247037912297716793895954826424763137824430777301990842934633184574416939662686694404772142508932534605637400246947830607123461823191556569445768153993147918148780520595943932637398916375588187744910255179284459257705646043639838836580622970074635594297556901136343165971586171326343218065072311637140493311132792571706742034287425728613973036898762464041630263974191801253518642189571930029980894812972169279180274556994579643910126264112549817518434629667649519600362995702234304650120441426153650161756710512549918311228049131539647563712023753669839798760922239502067048662673146704834532042649632863490978171776571158260134907520229249698353477509261307881996450152465623750505040261145227349193260322520393196275216176872721363720908167937840363900391762596266248918800221637260054655803717609321406057647561847913071420366267047260365426703731158532338789381232638247796590933120621990091465626874625551558596242318761210442697001099181679622122737947870390228735116552495471498977458186750269960297906164624565777329626522385550499563356483241960582870152219974838952595841744317852440326053504285237724437841845460508550639281944707858754319527951989147528526357222174950947762239459456558752713798750185353038722582302100281475650565104404074784149248183048926410579353129332930212818900436921598182225035246017221483523830277798421791604507601612336040849131341441474457765456574294996244047410141404993811260036069540742629721392640077619727752432152336969326255807117003804490448439340272029581906972015474564672735130671246558288956328066574381520329805004654872643251977258735483904396392484440015918935449319349498723523769031870809757500420731226070336290343961114310584107213281885021023683541434165685279191070361736224210147466674973352434500065555637496514293299031368856187618193313992006679443156131803472045498352929116302832509313989997418520093249899973513380298557179674539531039555534817147302339974573502510795376606879218173638091208568347548702781079369920765887427946622344423912408969596707735472277235151860126599495105869278199268919924733438509791463539564932515971552877708678135584823428506821135514235007918051094189914323597202334639851253376603842728111938308490813923311676167200580446974012263846114612706333105904905242621394579990373873163504938604454588460958881787101341155616500892023954349089841072338762416946406196943816288877478879916616501139393308564305551111404723746731249724122030397590553515639132142247303704047089302573473526181144233581594078966900180426652452510483704033975025148044756351926260164235523923142579948036572326186765718381914167316359650529099269298836120264604162855194745703183231910065028752304720184432507314064321987146230890676495344542489375412271379937572942736423111052234256852205815831519576184794681978894412581099790653517003043072018900563387887629807595881015776096571653550814255493649741055273335375906540098721541742053103861166736491859533144965352509829598061613546115107165847280378892673459388762456367425229387793393550276669212335684879812724721891562066209798840307774990279058640868890012157755743950000966363371090016501773200592650732691300852905438384633239039811033557832683076219481548246371698172469245681847400961135753652099681740448046045489688587775053897802441936720945403384627747492114005962834168722459844509820667390519674302243172771917867166148636110094153695135749141834033415391134355715970408116028963061718930096301958850903860589233187092837532046698956861050808261783336074952048556839176877210255584938222100928983101828958009143405265318235862362628688263121860817753250604543346689856248785387587758444226906423900210861019254982743703039444235002946367028525725006624104153316304154444692121290923357441589241288432460785911134310395313244944911541363835111213305569501445770709611520537058341471676274786200518824571618094924033822084742688817487787989188714213507052546013961924215939980261172843937887575642627267042609660114631501622439488295378880297366043126647157242803609059060051885091666409623228318890911234694405401164229670559406296225312201481700344919556577241410034800876429844087417235335179895553735576486577254568113601138407818316423791449159312409203668486382852595627839197335514235277142707492751134749146416190911021171681745684011289087674953313413271641450867612465725770878728954370948390195546895989311109137118957278488062178021899831367030793405491180745319252256451926344835052630474153140713256596624045122568886624582496023234581011312067585204967599073468531798113123721603865328174775354083895880505885651138200941413068043609396019350793955146772015651978563567496150793930281907336114307176125113681264436821471600855571265773890726999502033544632491792117903629594605975745262290083254368920494489962045439730819916141358913462877643227953061116954169574965272694378116409370166511632810611555708840797529302549517382786012438821808248166366557825685949397156969241059583832140316619253580733794779810874748121517571756952258418769330745526562678722642603036744595345403724427824471239431724632182255712537891429354793358924299996720654352618597912704885863259204620712328545265695726792737376692076101564124111153921464081279990985289987917763122666110896800859559250116832891326627422359152757499742843903671048310262545164602935254082289862427223501967919189371627290568507315657651849723072714589783552269734650295882077539541995174371574346585232319383443051842062555992223317325817857037787226024169077741813605261404336162513913139260507116187395772977024258893729611430258954527344288835396698513340615929028391197123564884924582013175028796798361523267751105285652102553070087239138329360589925244631648636356710104858443661975946739599763590247318641505122510866126505260462692405117584160928790255607478326475780306291255963831409378019179004312705132120204724273858911320025983959747620305161030897243969444782661167685392201244182738323429323303053326803548210652946098211957784963905554066604499133249789820764897378878836987062056588548662984955007137586012549283653840840664578423369413425841755558328143859164391193782935334182748265116768115459602260594147046755021784386928018725883434092545798845426321896031732834354394709799571230913012890888844730832988642036400080458799950251840650272235839428339116501655486485952394261980493085017792565485114482174430126083252058275248622783674262403784753636433894724866977395041191603995916066090340930186221716028004606134903944874563975962248852864738350651958212373212900926108405104771908625019414987495395235164315379723762092846887147677607402653501630602909790383559308615090651515605553021126525180792677882274322002897768890407813713505958122314448965251834079427086410323669470794032734954434916082465215306878486335069945508389216200645505756995706791193164275111006744351363443837237835303649382355107732477138508366276505355973111247587831776639672081442450985163097913717003386073666478208462884805292740880352559959177697996480916637411339418866673318095789586088061128278680764205556360836953842693045011550600676828376610559159568796193150823810866789647351266125836455492200710852627854988049102737977393173961075023006928972552501736455239303899285964354610812096635935969377876576493804598429230030445745746132109795051701583183953478202798576403211926847586646551803209126573003794305050028717777974255144262134291298739868340036115025395988199943442339262433993386602039714664247841188925000612465105982526874625999466617874191311151973198873374525745781899089017208845949337387175573861620002189767869339747752956376537256389870969612582726862071446734236325739095728143024899960448950622164235611906213905035258233649258605914843753248163063419338969288474505139245511758295820074446273099882164810978751526637180606082442987447338690757427385262855818716663016883942542167464911962520363726367284957729545860925294746455248330745776653970639955920787270601307615956607123570623763475331829789522319117420844826000514872235493559522245245618030129140823580221434562577896712446852156024204475474658673404248281812749071091281017762478275829023611960670019812991772120883446367998953173299535333886527373760182451391590748904163478031326054033433356663821363308056540290099978089127790317842151555441346213736733827890188610362855161270303094842837784981872514203567748800620005982325659197703440369746239540386910266847720353301923091844988283118938793718853325666481153152429010448092937583628415907267811986416395515052932588254223893746766108736000902443696142309928429269045316369680970421402565523088726132182434982037313941520248237246155322041381005467364620114236075182149740958794501410721773487490655610065782331794962315149445117267873379782956570524944432822425984621215285546277984800307142353839771951573277490444089493023694626464484618348518876951565906805512403739240895661001229574173677438059271752455882937096708731030352397577923979949015921689159446262021326275964713573573233572337177516761086148415480342500397236083773488771672629769501062891659257885174912070974453657780297191180487334780658049803701581996129337628489448819602853297867502428011042523618502424616965636443635854204545852478864621822661034224277353729933520505757738216306380324595753614237034136417469719480584401209575188588492627426535831014350649806443023212561272862521816310248486705733951870965328066147376636055204126183414610409992060827228775822449973414469106739888576637459127703362382040307588340801377634930451591848199329513854216615589757091136846787396829844963620859513410879837723325442029410664281852912408673691833008874123112884252242096838102685685384534987368714716017680624217713383835136139725937486391767536929075156097794220847931084376861805512191921715481916615600187389092858477459203903319719895440329406096559368356938051753654043654695024196443124848429710271500634083092840863536146464049047224186330356345715538667330586744046698393404966038298051800310804758758061178451888660271506597680152422273616212111162079917971045996748473620113819479400477094611294547593899766405513391829318929605351087120409335401328853776382810741430588294421258747176991198053890719079967844488004041490423356397239868386103797438644126784905223189814550475156967402287227933298120316412768134468284596998772510418818403377032939940844514507686604841445408498841131578620825094573015192752935472145382064934576036813026338308582415498279056847825029402927039006960286790013674700653131762060383515661816888602670360557777261886944481484562275488548304265496047581021010503099613904601983248634228482233390201794279426149023179838210622785530481226951970683661869307933242831066319342918475403136571448054798885768300252666723663360269145271314489425398377057514996042185751973730255401618754028402890844304183873635086979050873500421461237940647199923948780535527864024597341631673547754444893197441132394880475101936774932180624829459504960601375156407510881785931052646887442250876857100185259708137572006723289660220255909361842419421289863286929878189315005802370693877623401538358543585585133804212731900489452208324964396135392891166787660084058760767478408471372977529769179530422026990362559846743712624061442909179773922346656814133710129433728020080438232618774475842680086538568304364841224310444359497119911390188438778370371210033411839054934472061520621980690673167948582025800025740600235733291981848280064686654076875195184007128650771108433896068028183954216407454253452387702949202390042251422459287966396830955079281396665771507518187148639174359801001134390901548916130344611117526199673364582119739808977040625593503794411442133851521700844862241279947910440351227453729044143947013656431437013544378210704189291705771790557250822131636083022296154418334494442040975070793472346636493275824714496367803391683117833180706475646338876302902285271662174752166639001701344899887983406123422039927059967197061907734246688675760524443376375819943545870761107268400458162590463755102760603282494340263976014928200841894684907008796481128187181738627216007080807118831037996876073411758008882872867760836984709646611197783414042043436478647613845182244509759214603087970816255955411975152960419444034626696282349458981242387088425816858011954981721756032895817908753184811650493763269195486486812435526119252119875307477980959833190945556273237078990115034912708115891913949995715347733378578829625733813506814568607831751399835800787999303391857196211478746994657319851364820312889439804353223904144458736224249958050094571248785904286596639845968737646641110053065634323252198799710428376303166429359514410943753580321327394190896312627051601278733626550728272217084703065408177634142645880057578807731886138508535401564061434901575550009667120621931797608632915669204021313894067101267410897847787816770844628138772024983878685115204359289272704322994331364801781965460054954794793439868084944698533019201542020555098768755080045762915642895929558203961905405003439544780408710243127126577131217558661673022174239675180067543951442275645935966164150986451174423919971276906801709940255825248175698928975221149178920521394353776076243188137533018988926778494928482196485615959928296528707732620724047853616852041474182422671718486365184860003797671590854733116435751216223119602352887284002687229929376759019802537006260177443523979319367978944643021906399616912883931844215282092600147847450003872104246310887992284112188435061261124647696459772984546823178717798373016013546941034334047235207642273569743207317011935553689086966155769685365076057473959051371329158860410217426299709603158982474233300507010513666117162844762719594950787803593819923529462549946163297279382085910094654611275893475369395969102163970560920129292346255301759712404746158330303821960428634862690644213345532988378886771099777702755510504231060572593577465756872519772379704119593493556622313310034660598266075102928022199806986072799369131709769892563831201155625293034466259322804047304247537635080752715836885510765868873592480425681058311140844400320526539533767696241595847976290324977022119644138735341447076949699892726842077139406763494973058024995278941919120410570113817749120077055818518634904438013736292896682929645952685629064459271626618579970830221661868623107010340397988071568870900051345737815158662991765977816073679702029879959358803860867048294534378710003897637312681037816013521388962554339769083245324599604247474477509479709410923008353068196418477122168645989013914221763131506015950057090372739858943141940126079657850529086925386902501997255545786450819505210667892285117937368678932141701865225421571801866261424581150113144610923845628093870413973108406898420077138684418649226592880837265404548754967380425689684561085126169535024009813025784379291075491650751116520205790453065670180515566968486883924630918313665626754174068412063974189276711166574472541986042860975725660251020917583048410912546897532503139434738574181584925915926219380663897266360868744574721585822030623303602080740771357540011022549538157071452066325936565753120824864448441552960045202987624530756147123478053877139060481181715043084921667389671318923966897591165385410896101757037547594147873261621323807819847544862584835164490989127963951344407384813642801751736844039692145608808019368551358642155011752955477913707135945417181382427629912196492550592094112451447850050798804153131089414237234752993347670119880442276812745044699261518390904624155978365277580141110561154016203993244403264910848052705445621545123738201484277260852523993159049834468276487454836788265214339631323985729505383464409470926762897868264790682642898384503907146596663649797505790163037400251231804164905041631596782968058618669664353757788076359658772419277412690450865058177653728928827073691680431632790315202014076933088449217787330220112106546907672261166215566675743201945427559187416123371304362519379323207588504877802225446936307012532433634518756055009692443643019671618789511358709243281257471278376571007377948855970253668441710497765672239460301984060874395108258540470421450888478265286636363964755589274609197305396899569410417963528676733601908445023599669021664888392515365870355813062217853745921047635042551590212089369314094068528907323202839746284023101117237596399145930268601205393473019415116601487506770569286505423407172252143274449420317150613773052049984997782748883392610984430405708696358016764011571552141471732314650427413725366473621984613738038829908932560724117697257274970816019816168729521007781306094816894015909501493025353339762551414089079280503068695422528423455171662016193874771003029858641291932568531175934601505257677027565377262572954740089152879344258999049821995956449062959964156652908452163270081312802034978745784819700992505172979038459535831726808666823845188021837392797795789601171224715442869777869314945618011039634708703510958026552457686587798562742185355390178231957046565667373316282747901200846847320041272857116070479610984806422516915345832732932998501986406200305843359205954388402233878417685258699346853110827356889874376529551113165549917252010877826099961387624838725788220329868746916418149987585450962597803775628121259855251326157004024798305208077234994761207144916576887610437671108819155932506703226694401631281893041659188002569663124074592732609315827650620043285478549604968348762248863781371606492366379684488502541679713789744375529305733563590947875891993507441771035468786316027283071285016563662865332863646296483048845870594627896677796144752823914523076285680473900853831505145268271715423148848268562643762264993556249701208643947034850179967043651287337250673406606647415516495858740978051980044234673157132874719837274827211971783943869966116683096863946662651828524352169904071160969023859769988488356103748237813539692897119119755803238733383033497647785981160790219874192267769340787724373983370290552799958761738656046842635723733595466117872609075135205299511173414431709620989876553761134164047154338096596147862080875045929772369967500957766508659967380011932374704683871585155237534983256177601612662632179771901652821273799966087819516080431249014456395448343547693476925722087980911656997418252181146805140775999290196087874195219795855000218789043019469604878195347191010220843771147775156626320079264052552983973416727740584224959642031731294469175214749003363781880688910524024117221162549734211425301167082349561865584295817692027133142718560002667868721346568086194445116191573538154455316750471124002866364956640599365056526379830644917971029483987338628288186550380057415933082015055717912272903325751134347454964559435514358574134095210614681486913062417469669972227220364352198595312918119788237210110656790511772836709155969262913818021745594141613198809965298079860976587436909908761964478313528877478696350599349094024267444488708315782023444228616144112605331998394679596914588456510769759581763399498043359061743266670510956545109582361380414028348192266167703930724005844374721752356994845960156712048269047414288762826371440806170681834368636389427038451742646351256697198917362549539091298019454463875963396636444281515917558654960943667084956518644166869170706611462534182855661685898099888935700224808494750940549197946443437539486169014312060438582544875356844010655775095927595560966778734034403581447772088678890670149872996217743430496910086096201393627835206923290084447513649543026754295832928375030147223009435693599406500348448931592144821748087144225405422645313844975195660382233652164637588506682652968924193571512825877665630653503171612450978833241282238626874335859105106255471701533442806282060434477126243266449651436566424159699354446746688849596288344809249079537775584012848354810977882641823916492773073334579558392047631874524142302477330842876586165592402349172855301964296378559583890662604555398214943902266040946246673002474971925330745917903857932292740515382975846684936981829795205153342477108436635161591117347460735429449488087285913900116097677419625755609826095412026040333171973804841495179626513144353439730362314794942509498297348541642728079133657563002931570699288454718389353655937777900034062032843349420725580665635151850817222710909184239921163908878616877052584897823414127111967160191167393529297252926619870221415901842347296578656968440562909091511886862816232516300886065469500707885314558074867257996664869407144790953408104204799964619430608645545264609081663704138844193548392529491179665377924544842889192203030921486010688341863795479780537043764953919267764977181205515627783392710119041445190763275393450441325245254901999735604329553831196791776211481093171359114555612152358741451329652738979469743949938853484373714278063567705220810361130470563399845532348986602886240769824547968693762353762455189170974326416473484439389084084374183845829815246340025100834953005103014168276783626614261844853562933756817760565659370156304089593680443775200692033660351288325585927571315374078756251333504770244471820000378677776805147390484220090772675133018693148915109311878249727031259464118106193281293265674584964945153537957720204241908959669134898972831719710211048279268737779866205385676046241720125357564663587952888215387879920625188243835642012657731539042924124111425666097390739254990648112867590773790271690471613294140025636070997566429681837860723304649923421395102708471282564683324072647890024587509014583524398024750040158910979067256489607156516644058476397591524405811658854061357246202847937773371294458158216119348985620365772430989596679172997275804363084550344976740123390579923878757096761826573651331652772556715005297024293391032842875270096768724581072979077742688927570223739044849974215111271516500866328647998541098670550601694169465510839493441745191384849325734455206779768210181952667674529396303970744946950495755272883921136671238965001578617381786351857306414697726378686038869950750650706509600567692001678513767616262905763453921225097521505973466016275342143727791060931910231116526908539894566629871183109018197624470192946872439338092381926195039444417276386231757437207501204011931017147454535466428365591937177968258728338243541620091903303408344783735743790837598639624050303944728417027502970807316466163944399236122270980436112068021620939379152834879326956049020201614659294622571059801048142036774933939596568821667603832004214450778579685689881540609350159130610437787123668015861336916264586100909063002915516470710235388385402013903380017172639726873092358352691461968146937680035839399635048997463308758805672097275177283971795649795931862401809336186392329690564555967127494482197526296812721468479501703857652915930926935427599079418048154523918618590639900536968457866340124519296500623681043505160626914327300157453718035394317738182410391121827800279579836477451703788766466913172394512839443019590495994994401412708324847542508352660938326231319074695825270553876226082749029120701253441351307600671987816734258025970817779813123210687875861357971052698877882348762961264333329084483456236086656871750721424258093975001206776672070415665837997157822794854355176031469684802235043753898791708640907868945556516887005489420703560092160444999754464380940865276888116220799255070582953298658985391777549623018977103941441382522950550301349665672206344285493870135926612396261278581246992969136576519426650416625314545211425154624641603019098436352912001854072007620710643314114638494452813508761312025459098438845111558003831604981550387137320503757189386272002826922168326848965117834847068098766007427232181038805624979240228465440562338948335188542533805376163480485788500399460800079137418618370626808813753443511924398761096945405695927388451492874826846681715681032856197080823070627407388156244738009202245503349734851351947723488563287368752015513940524057874486359378193233852644640311636081475915501860896703863356593434971918592874427311725679728517741894028716057475542515451524400230095527214151607688922203906438070823616527974894474010489254541621495134908582764394108316588206731823763820244639884099707245260718167196678577614590289674537670032854079213417421012398005220701238882870416427541508913937112094731874121144433571267035388523419435502949449912521478244076255076978873393565019053705086020091878618035367284366028964602401455915083728052946513380536145119576132018638449408541381822010923751746603557459563981527872189998774770549543906059319765229399994850339550962529629462525249802745102225753799884453635753981806843369690851124851413143465909622436324751373634311959322811662365387993400450135649858542198942807283379399505033185307376083854111700894847409721070509100563848721303125566052922492510852395951446123671454987996171682352315845543985362389119059834907698447474092007110442599810609122826309276317914674204661540038759813428024256854029935355223482254852701506194429452102967742133977065114389938321243401352520807790877802799323675132717811571330551710206666503920734800932835077828579933805431656705414939552621991308449080410833268515502974360047882885139231059518088431325706490843603220957044750708935959000792480444810546408077079829761086032412157715769357144721684505453992604379532995454745281393744634421600229974810188094121838861767521567610488796835134279541373863535340190448988577028708326741150078379563601873057691324407717634311934512793150963290039125567569025566157707440412159116747187723975806855634371913520585608681048491594150375194438926935236809479422734240635953667957291661393524359074842171509169050155703632732624717524922966240463306610819418683991299437245999279061375293547971513858771872020440024062453950572105503770106794782070951310582862006596279662951656219742067907041067843235458466419467895760643353230444585246276890793897332515027932098099377154842367436114973178815375000797717774193229345647986827712513960289900109796841568609360862713188849355621878788751272843263287696618395398091787281236143392616485055061507531860336732443262915548352318082534099075327890093783896812504207653348466249945565589654189499193403739847167052448758603105297051264984087975741895062949363523474972264412083596603455044935946121329226915353181793429832957984476889408109328048356026811438005103740665077346651079313134208750811336866611454565431408131286069949151248923655686153156293947194149582232808521017023099388164808056776216400529272973868941630105918372549749348833074617506271461692330302635427767337796186427984840715626785740775076795508621590102349668022085574162919575167571771283991867667589743647472201893237600034556887178893770941873560709960988767126734155596420871834953109557287373170940218902824188957949341803585816312573982077241338448564301365778350995004495430473344607703442971529544639310628743244005098078642854600115804744227876953252346250388358662428368032631900386837149077614010706085144400143812565243522961539806021909823195701844851343577980368833539685386938851511862721730471744785362589293307897220312855758190380004603345097943277766486806023431926872551773264797664201808519895338768914346083353446629464903792269933033562878370768936446179073821207678741135348771967479807151327832319324357330033107390032058865478357446274731024035597367493350937644916905263343908551970852563269490971905055545414495127899908208870777843924505858808721795625643445841970322239275418044339841093628121366881472298413270364453856861802127124607883771509677253904786496105884014420149228131262292575406519939878765599867090833770763000271413932554830455138153608601461491176559287516076874660645773878643687568252673867460513990656918241575472381767507072004810764980678099448472744337375736659366708838531170526244000500205606142743959105143655940337304422561503071909285152964376136640441871052910457280830859488790605499618386001582153304141005380360095688310062757560845913920243883879700315370812211769185486034051238033472000261521884944226574277645624489259169412800060005257262153229091291013046924938672068200420877053619659105966229678684143177005505773689752517743737220080757196242374054462962641035870446594283790520724760049871091827516574407087908415638592727166717355847942695880923148362780845512338881378127503681440756843902463314704607068808350742262051531063889201162329399638845539415641526866663762760744574052057914738775781087601170115734907811966527584287082047875705758573142824982384618325957737193318123727959162866994441420152622716470860724841481150628322153647815150678842563423781725910856201540728777614292916163928430936156024278940834989163282755971291462252407398879214984670611561282069027308845102862137378133674299754161138884491865968563399543213566857103274017974554003457450254489701226971054529665822173184446497774628922349488824691321760524615668067399727169466112880741478045130487728691432480148949043067144759238088422949805671353392557209134779204929782584208917210817975664806876331903773391110924675178156735534847042077610640742072396019673373956833231485507346789433182001020683823156699981733678878426626579512194025420406579324436162370387065889321889813899163763989853522533543344398836569323820314149169807199957010342416460024381663629496567568852470377492872111293012691556646467063325309082592684201920517214735553746253884658865659702484934259878027434008051606095684783190149732208625208781458443900477869644367032324270526196140670621426624115730768105741331001158829102171990342703701843311837862237378301120607877641544232138781433086358083922229459603313204233699347396555186853975517298997891483294631154682764861231794048828610738702523169037653518935648233951296039467613098410555598711059237030215545582142661892077348919058841086710529265158133684462848416056926908338287653994221898504048453073299328625998207443246298850158774127386738922138706116884497724438178643129176490493468381469203566011275405809714057524417581642095563634474357187386176868219383645046289515690900835409451537314695409848820442078759183289248400292498538155257292790247530090335056856265828736131346152971441055407077487897851117979846622503932387383294158672537313956520488948218296252201721333208730115062062347049645212895418845914479865395409326393560669505376848275496661054574402595436868235405338654240892863650368727540797898716313199464616171149060304215334781719319817910210136652917711542743138212154850875871049001997154443310640995835815260138000924876332140218825876422133891163550421101096011385139422908834941078051301624341488417252937940536758029222309071980903873578306087278108976825087779717316381229063329883479296170362061363778941798143839886609297736894226704947998729637869252915711409803756374431446431637335564692107722162301534132457496670063984971746635631796343240326088463457672688371680041732025157269497354470065979046170448629295426918651806319277564095428536486578122980293045492338765264808683623537848719644483590134549549754115186166630831811512841724573482130064223155527069533377666551124779513033762426694137059336549006790952528212820771631889893635942117737360244812376978670723707363783765606530616541707642698025125425084374911083276769756704913958209792488964438865295262274704349775595156492024058289338868138367248141965431224282610680700699748447001344589374767788052726185578309859130580012133008668109560200894490541891276951843285676276712531031796888139162374820271881566336635574261466284489298331004735536945687886766033669927135986001176487221410579968610798726855588246913999058700282924167617843161463562823455025315011590760719877467651945109104798174925962653668758499002246935824644168526344789741061683217619149211285546511887930200530305063985923242855867827806840409874016464064823531884553720016840623141139944805156510462719444524463975939568523780770786154087231580758491924745011911087143204873761664642680254346135775300497648218616719258409021146313023976058263160711721063134749973976482343149580986556789705674087111452096726250255434242059860583310402952854842845662382747330208692383716440346742571631033242431576427322740316323263795042940719241919039819725004569623525900508906895531616761480050360028931206800077728229052321767605865129809327308562367277259806550224740108587480296727836891175515476260966584396929557313306996301047006315516037605583766721909404281883465068890510243344635936197620658806011874965502717788043835780666088517990650570705626968778550790535681668687700135073288470342865516254417733062108722620811732562298231622020167956390881027279366311249387880665260786527718510572890619580480915927925677225244788127685368157392166637642923725971163674389768202176300217549643450166315222226896931642756552735065806421431674938145281507525649889885154688976786407214322543291674010965200681375976934876112176636305933834807921441804880209260269866245942882840669017066816329329011821276691260987120823117304210465794359756633142843974405695202391961289785579915796612296127518188617249650850836378100509554468912669979999828790538194146024137866694587717359645860954586460758873121021732467415470990820575573422126350110280619888992307951812971630845175655603001311443792028724741190092453738418222083209748945718509419836996526976139631815901934777526217573224040334187191012353160889149466267605437437762162535710656330588156148186109104869574249947267455871406435188549742436875538421676676365064343457784354894630851396112534502417331847751442479362613212834389240530320695997654687003540316023661418829521234441428480967433306785031027660725231548891833080835907670090990909587710363760538550789456504668908377063306756891736928172863441871716026766277994239269714616489416433879872847535047273533972675243960263516716208736264008363253443204160802097813380784593510830904858712169199023422590451949159856908662934119406768541317566271552842189574244241486700345637370107931019384460539703594271957115747148989305911675803636594072452588453595192933745893499303471955465089135863822514530612564412418014985129686584399945227103621585114090820122565166334562075853975258099052109012831528412348199052428970987649809641541270907557210996477464307611153712913219898125762304676425379179452603751403555289856261250366710847326184097143800242755308287101138234450145921021506694577811460029436018102401628999182979718554993071811262971127290123504729235316894482833221298504755179559250548480100967248080455209182242440939808802974399488763394608192497770924306053269954339326695972162976331197860901941298103862552150987956662116928015707113705420725274442436289610667220198943526629450166443488221963984371341123946162146962821327985220553729256432726751763147026055584961474510314964595075209079477140226270118585453606615502040251488546950946606009154222666734731080307949784522541184598951407103955489341214845868723183695133143911281189239919050671732307009341464337564038762879341249551341312059779621884522796489969732841367221267180366605488893032873279658305607249269362199837650839616308434918413481098613223014920983077039960574164157013527566963006535485202656523185240220123306008127500444586633511276919647740532103867623236928730481624018909589383538134707140431801898268015113005819889327715438991934482575796274431026735247338393456400427054079699132688716801663713211394748404451088283858461702438128549632076329617293102567028164939529361376435353637326137935764849965291854497635057827620604009143136625152840947911549475124019691354236050368419646879180469447911906572746325932309445031768809640646283801310700658304351029876102816790756199431387673271217733059514514083262822896736246844772687586292964829540011347025465513543615034869356434845580211811579869509042342453021397589984093886783114373162684690453031435671143717652581617625606962146858372077253958477734650463031438107359879510154816557329620247067840349592456794021781372273625075733441772987235933181915834561049804386937813985726850125544226459972826072881999030817588229063420933806122906767829026046674359798790298320997505992492440641681427174938563342653266759905605777713390108117788118095116796037578496125893906014558159949466385657110450313955633678263040094864239607577044442394924216161024108032599126925077139302888218919719002263421794254132530831083167533390690381014841078770870077643993863679134524990101038910867649033553784835583381457941164033654404257329622261171118784721736554280165711603842892398363720026582520759935533470079357276628047849271324691587588855397131571178718263100824121561606429113317759857794104023770146105316605812288307053719923992495258093722180803168183859159360653607082919480120288034206832316016609448857978361638619473659821086083661671380002189876399951739099949377731728439341573042992104182651960531340498272891277181734640708988923686112293495585885183907028609048935481403895846984037328813895847843257141664610127347676149244988786420987118135278429657985416373419245479129884325369406273408093059097871496491982148330004335281413944456100740715606642827979398505968801721256646024674578437594528316557682489089017395341766424875733781777452484387783187169563766429781803024628817442340562563584156399855840133127096142454413883416448186416427136025506543960303455458269497496148594031260641219631388997733692242131570299563263584019775524356804687963240995270857730379530330387676405577781502122047243828279366917357416462706387149545208505560590743753919869418877699541226347428154138389082330134789493619081845640023803662709089412519465138396413026465141484888075571176086837144434170472045498406236653566207150958540014800590719695596566317715171602690421926780200678555332801775445260940788838392718125162704696075883411948647665059133250029861234327512675697486668474322681520908091361881947827638366658482944006618185011061491587753638915714735240885578378511691394200239193493323859961484631362214954671704182845466172758546261160500199596709504255191859733517396392969910784658410983581399941454244259063336352260852636227712897818029498490727936634812464202897649059725400750637898686483074566673246216139129744391627239288009378499289546101565353292980426443954634651367692383592303050931146244162303719129666152283827417868741076434901882810345922899626982828597527232987985645474066129664359793479104809377423125138145789572504410697198087889876952004028280695566191674436117008365651577029760137032714018773468432924436778640054073510357126340234494793514667711860100214632903781497909330830312273463940820311788974906964385091595537349976465711544250473640847366885075228930054265894094958303897011597249157598787913048798217012198111409546849302229633651803206505151582125044673723154151965120963411429752744909436690318691596708471560217387435972837610104501699172326544231270358004529779836462111905361837020825965978761312645332582004487288160207477541608089854081806397453094688372755648153512018100876674464055974558267163945618768005067569838800304104269367641204879683542317355470537756784856279081517332910267861319993314229417226758223866028460097361329370362563490697072876718794033926791451028501643868465492950089339932333506827314626702283930002763166946917221817355653029353916898258898017212279092282596093221319389850398443762672421412333208371293928819270647580289548843197235876398874185777196259172675182905640580359624241104499965212211563129151887985593566693528474510598565209762953894560086573819759834531323490097699677320530299688877393160998774378799878889828580019188341418775687313987809183359230858363936974122759497067211042136507420439817146309132727682132857414700709165573453653474484121449782424165800571007578545992861631569683781018862225789404103496549856013633144518228274511413483775859588457301496252350956907286331401907061505201890554792893421954825784976698286503067377290313931197676456743394026581605568586011397717686692504039243196851858723715936056072756753695052987235163746307906635752879572319678681412390995717364017647057282880377541260461823527513090017042826260440447611159286629353938689818456706434839934870899698330106071540609525767929549135467392315797241265739220820329325074981425171688390474260787970298672963456049673554002568826278888401249408003771310551183770513403335144719558745412420595545223049991035062460330930349737201878717218807584944687904286108461318646250935502398871326628382273029319942762775217591498551597128900534424675381116065685606183575592361987628759915036127327355450814604449643233717076254088998794623315676981152586219311449895387611700293771303633116337955700331576427024514177893373188614010083312321574777449442044106138611924431610715881875870453598324575509801741488968251788354535021956864637752085034303215538660114682189503448808830330281126878830837553941190088293911204255947947281615232216422692015625008128388077766654719963977370028279744972966381118471610940885953872544579548528409805220393748099666994299935303711164891284206390624088115462393839553076900606497466014791266495549032743094153182847957228374197659439490291452770485348830055929180954419532685490554459514609249938986236249072947154576818886560372464083862781475510352139757304842270592665780575935239150832657348214401568001463586105492818291687579283839436685123580514442336952440689990013218871897428404587247574859574057266208240478132194940921402201146768054337071587568611305700071037658691147998114089050855423648457265552003448450525952836568847991178814311872268308388886705753096886568256274087058182825481674079091176909527241153036230427178920604248193042508895939988712934160788558986307919523251305299951654187740836587127816560313169370029724407929930507434096003578866133832430346531576835035011658188233637137244306778570624416483828834299487066397310703900150248406698993496125677528793919730851700150316605736285324896414479575792669504854068721333949264156886144277279543027872793517827936289793075453193575188279633099026088214826666123326282692776552335181424076220885977962895990650961574445951877821580543087261317125112472074053636338777775691411058398953493323164895648646635844318990578749234025580325152241294576774065393774335057646471629793307515417433773547894633978627960902651396942014427897649319030092730801875808901198152892753154564690493214760807809433494044827703819096936530862951176281889277292210627733261547555596262822713016604153953393910150653596576891535086572102503361154615498878617890813931723662987419548211435347343563682857604917788282093257647415796146213865810989016570500195421445991816711927580748983958024357550104355572831911456048775679440563345858540775931242051585114662480369446813685136805761724556594435480315780162455366876297948042758859545781867792129186868830861761964740615332610291500889764324579544026093070425871692310093448783167554191108707907851760013392325686089787150972972611190352541265315666487141502792312241333569067648188083962757970353959398282648740530252567933944925196941880115416542474680945484174674070156522822877719848398556919757560625698094951112605182455691510884637605416996823700674763046591385097154715585039108460550960509948980005249819190583649600032204997624940332420451857833488912344652720916225930243697728672822639936669054844476525632396969123802505558944256556537983831548071688114296977337636786827960811541122031619449557005015689531032278751762708550296600037919940509516180037755424368236035596794579453183065656678795823404949354191796584303929348160837656528450403264091401920189391782912247419722968036978489382584076043896742887023687488903891872925137026688929082126034175971041183751535239046988472646015357799737187276274193490520635805217774084269587158936949671382798211129501788987241420938904302911626317529781491255510325164928604024990119545688287098282122837758681765042916455084977654464986780534400700489035240984571328534208330798033879908246911431550625370736341343673349760779060609747543054380352655702828693004857674418555284068145265884660084263831880445043401439335697089336451693593349285414009644347238379099810524265379497151361713511927560122488545299230416341655781252028646804571768470606616256194533549711721361784561159755029484954187128049541206743730805423323163040354436235905891372688203201187728974839414604167992829556622653403646671188059949208116165915289002738125983329595042194249902991633765026814521922793302634271798953867974183934677713277678585814212065546810479106441136993339537521505097939529809732826882185223405646430142515650553755657955419199842347223330746346073880984505464536440896482499423267020320600941054840012089614437955924427150745357966351642842471859808923453224439731313967997753479611403922144887255741723585903338230546576491586400297717175582666998110381957544186254418291164076966018638185590706872600572770664009034876688979327635271867356177043472545762428012744074907168107520492577864568223304792784157041420180601796453921402803512216202706992630308903640286452591404222879081942768796017336014272679375672408401698853696396145183410995817346875591886447319356791821243817979753559034217981299127147259660429047401677836980062442423694345472151815268598679239090535824101830504236227022738335404826105519078246018750831711556697318501465113576572651367251852506148775476652079876034793362325743494706730550175118854616536948689432083192699042617464759942112753448074252757743440020202227594115601553131307454314069789439853583444410486590120395573695764601857270487072553955181391516442186094567669742644944402714393080093456197508650062990261284838210475202133018219069984990674918295255411156367230790582501785336453579347732475034150048605167333968683553283336840996720500020990703183943754363452434087647663705220443579178787755667189683480015709994478226196196011589296046972857477586889815820288038873756341809506163522644882886082727202025423128236942064304146376540476814018586208167854542561127021438117924199937384941122810195743005290146335113605789358788440183802113944517149174389372854809592202816149558688378018639400083458736441387699611616535910355247874333625054000587417811501564081305393254978406225138966541442131164997476207812502641945281382221276803160694174798210164126201237883895452933408638327017861301369621299935844365753348399427053386696997783864435095173228950899145982464488419160166147246205167845139727560814911680573341801252775982532326042130012933778313045529343262740576420137398288593454087191424065282796518097202014650571230078557427398662286962068007331445383596628907241900812614751272972664052782837516527250664292795856522554513008817058074829370792848149687469650509213339841346444215467248388731935829329247281842274741462556296853059949208181850382008994216676609540166105289790355438259453895346268842579439507033763775291502939315647053308802654226030151104026972764278502896152597701645020892976591347904005433848858122350387183469116898277285963830630067022888500409633995648681073152710268971911982623082507637127305921683209298817488837837196971881755218347177957598015953818813590844036021065871087535686861629315256838607248969806537792632978702123915931156962369199968814505820451512550311422061673600926033706496266712798295396953297413543957994584533031439181630701999883524634556757278066969622068375265512135004979797674156932348939015634375557517733054647248961112985125831750710936804892786725304384288039921095189462443939386960267016189068172727701439016362874742028860949552200549405359809943773127890362827233841766112216045572829249827887975854211477861786736836644099270153423995655467936808701889700062857417266585289375461278680991846244803545813288474276492413196731963676866835505696523034056120555276755948543802892187892570988576745576501724068701255598159939968838439628035960078258111300057079680065400651685667361732586354620063496749809032059961284641107147777523387084389466851270698881238590343353841657222725965732325031925443790366434074548389318274458109106564580937262430277696385836124187827760711433775075012265906844559048555759081606798333316831586882795469712401133712627917961626934389126547991156935264765069585123733398150208110646942658062699197158753585871678890859582188358496418520917854753814301428533451890601708194897921567862643623140009237348398318973641658540244017579606661165228947579086849367923052919922530169584933135755668840118907641466658154782872337239011787181643407535598838182172835331800432400200866249036658318972592911013529098933644978012176865700646623963351041427517607685172043510366511364095907499353212459849332896730761875630952506112368049414293033695919964901694676015645707765310079358987902266392522836030101972297613228086962801320804935839372293742926318336931098452060672377550325518410428758501879941058346414516333900440965692712569171338162813429775708682080270228081957443011538346602566198472291032798275706274552791024039795773858680296832629551894481619163924013256441330679325143587750856545053931272094972582751178329149327424469443686556215446594879492690085472985166568937961356956859010729570945439668345619124940678845294383914919720938435646488634685836130451946087318078213496061551883056607580558935457960054899689334698888803492486653328525482314462478580659817693074585099368270304179255758097941622465856298022902760409856431960256844952228732672495795877462099190244910530253729620265060250382317023097800097431855073857904568595083483776421611365484396983997534313155232142603942936662557752374650087184427602983746231856090512753492930498971254971590326661260791824193653810472125631865115407929280817836947898230455682121085479833951028418033563299869063471416458224699171824352605146939886076754326435875103378218912133710114325599731453744640112539014428208056108392576075562606141300729005410423511468590391935347144242004692090114484198627615787661563051418031209094907749235569220004039556853498887162012996068137622752335138226697667787250203651958911567354414360680687694775532135282873642032096772869402331368308312378778541213568302389902814552447188232572492998123718333180884333225851954381207411672075617516102005183710790339642074912802841505330607738213556071603603944273801783281315914246620009912962938179979653520909848325183777330565795614881819627983892657171143841247494056184785232640845681316113071204689091494647246106617402491336519557828032865788792649027242952093675445282879606707012874474429990979700522860955100856619234947793412663940014715392520147576404942622344708351644842982900525747050235240976606310994833757414248868425171968257397411041782842980400563926942949708565247140789851044570132958968443988403293524967419073341120971791777753568402133419443724392022943012109588541262808996539948505580264136234675866172332547072823687899343290784258687315086993690149331636625277769885006906958531007939464249881749194173632532750601432313359804516860335483644294154343233639785162608025106964525639862569281007885597098773750704319358276231940345761628411217078506215210134263274556731425615164985226439985115112688142504494656806272453526278841545231030973021615349007241469187592292971515851731364006495514290174902332016465972607409906251155899806600977336893823014345536994493626329754716518608147013706761300774745996759713500977650339911008499288966523705049614633909253587715785139832934284983313480865163401524515644130022207132375871005469621713091525922135906920916119755818505090776241505249500007680500507096691881567121154638750772041626635798831624379311371935256985515055835359191914742678925540005053285056954490458076889136274642679311969159342527730739693246555879879368571977955687766298163584140312877057857222338717510185775511765000867073748928267728948129097538394145129993237707204262035030063407782193263524386299836197478519894674395411013197598051648350321946005051411113752773196380955154862887306482351942112263024118921153688261963858043843442776918640758417111545938250836621406146490948626643154301789100782842296973170917772601737184405788568192108604843558247070325956480350355813707579244053463820416216200964227897764530208115480171923460660445399469696342401059356566844203988419506864395968554445401167588293398548414871852456778735966903018764585626237023249333313167792492049349624276740151949730521212827840652575428761041602210367829875525662538823702722457180318059640080146475010798533071304046387296545711151294540601219536795666028356559687557372930883464536556193033558057692717998270751559524687498063571716868523284323727563606092472577279540270098361270402710629381075918763331844390980403276712006558779457869132403766932283870351397183930889635289564126878405290061586392500341791642167446030632169748813373772581271926314437936170976052383427030791666032353654229843571407960926942915434203416906731289576015522803348280792814467863461952647512814219446145622621291883962731055283017591565815761775422962996533191366912210789309420105092986245485149136285616770026280373885030635006560558285250284223835790125091250148439236151628191982131489383845063583832314863345844243433011177951922164951503253012622949536573125141679576300037271304504367980828863901719911083127369401164639410453451404350996378983946348291210507065241405005443447523616714371788443892159556855433466575859222500556316669763281911325346781580954095717382154379045370284041563579310226646425271565839364274085415478591027733100273345865299835844922015002771671961764248177420842524376533427047452615267028313992730027183373909721156296336673789618766807846809961644787965464197326245033671829320540583246333420092042536592106511688943646463286437787036387657095019399653240022511098010858851345672527300633755658725165586537319737311341160122128758069472681463962320187793268060277889933475432979693830948409533478742177335163316991749994083544950559604550340668429523002671500091246112863317719133578420500232839046074180970868859242866778110461234211503636732936172291652462999818528617400121632092515880846073730354320763718234142601176228155922252244384491274089115074515829825865570548517244969195391210769908451278905251541670971070415339152077874514184464623997645744065884865550697409254657149149572307260483267782545163428967412504406056861236564799115723051238308849303663190237628272213336103655890204571939288144596586526664800841276936136811362923289763757397666389628923043563510294709803703586159821998568113653303500511034381533371606487337645886354059802377756094378023928964924647962797252833382557114284368998624977560946223820257455353514572174848725408843299464832562982806223241258991316762019918299139443827908836568239810768921292052463756163779443660681243381014409626654490317006516253049055280574300843417197706786124630486354360985352926933811609276064993947081849088324248682415982344209868281790056946759859719798362860400538168106728123665439720464067700615389440547619233696526506941704727633944212171416004109912995253070045944127227262825672163455275755411215827763399567689233148761017683777045221577902848347381389930458219576419510366571499118098984280923208149686791353244304286231278379642864529015511104971313347897593222089937123578587509257108069242864189101394224535626846539987620289913523182128732901015933371754412096462641656419063858002447744474456384868570859092861158016527459706804565115794918513451375845044710004110234962982756055779499184860726243097398595299159888793773400325307281612114803851232827019469240736363582863556332017492511054484398949812683502646468792415552832278604781879927483848994069051310013812267557346747787924151354883122894218418788251175544596433431950980058775641604375432872282560278635470218643170115103383033479372453545013554839200773030787504453220335837946949769629499470370378009096949312679805346091079930631677705965699576811336517002374464753686631553081170989458330659517112871662877445616457531110201840399755488797549815689645452154417805960805461551136049645275834789539377419417974819207880464188395918171495075906834972782440793506630618526315558745865929965298729490852588541770076792665570343251015374182790134018393611344636754590669987012546957148147864472871017138960823635604003032547947057142564511651554884805806185524796315462224850331603491797377821357340618794180938668407443760314106171543205598781619287755057814088470296624248015494952119101161453207545260877267216489145709719920167879153729484921018527547592883190570153529815538815433027724773464632457191648281493519404702049965444967903200563293755691043518481324893073837155254579515005209781607116476224733650102925768545251626377773748804512458961518539418671824327445573785506131852196696536830085633723767918847499256868057681844021999753622552290592874290403104367340091396951949630669144677782836154704063291406102186537150960158468847998165836861036517069990929123648266295443978198581374345146904236693208342050268515899169667841506832650244982559632191165694636365092401119876512321898012365263077521540998439488412997007655542254147087977678671880700133442084484483159311366007715693295096257435008272910619599169531221349268787775641820985050891731227258161317525230071889566105413295065997201484340406003786527430834517505312900534863959173772970527689137143094557948387835236055686017872069036913356423212147584370461537139679354306959501708966833602104444232173061229576222830552389381217670563953015931021966734241906845533429310769728168756240055042428052686166497462669038266426327510913888249065928365626813568637743483633612581707367475598917699139945702558751123790107276746284022341261734281428161409599925753632278102788090147653970468292242769576491376767973548851441382606584225735530243606136023407339649424344516646576169888595547734551641725839049325762253526772716727488237410067249534882812635640181547744163875776805252973343368118890361994528415389806483556856569890023462486706279503028876951394332130648421709954955900072971542966280440220606828530656494721124861295209802413393197240427903673193222482764446916742415992212445420088166608600122502078561592945117077868152613407599937589950811615588031196304876842987714453639583688169942730906738215606649171954142977403711186468468055485504683042306713937164506481183711412089903318711227002904685057499320439516492882803262013665756039647421548875065971972335459822573702627849806423195594728634666635620372085168539342908843071517434477218696871966877998741080477214374441837244793082438055066113357300214210722387673177442136299046359103290195835593762595191055685509950327272170405791709407348361863419554471073169348624060134337457253046191228808889878601176580313925625402738220007291578644053078677625590685171978226056704322050730972702950891833603880534100380507770674531469594661412966167247486440203970992540392285029294510542285556353108750539167770321135148404459483465172535035593920856771434407689409978409037318753027091885491111523148969950373437774123118563206068361983714332490528419813189045096151337189621690258790864926891158727723920603411792854242062986030863072524726595188701893710965051096766265172895974772410317884258554378545752047118883813547179045626804319055671161998862057634843683432293892954399501047225266387784897204624811131111205939702195639052765396630027292782431830438772536596899388937946474742517214215435164580345415930998101230555405227374173123064645626537087323550555902470612647963627507077295900336652517272756125000367029126433837363664233451806578473014339764884332992019170105859104155142148591663993454360976055112306045714120462974890882245812627902280881719880933866925774728976512560034690995068482329571478277731759812934062010612860851286568995527224120054758049132955867529244141305635747626684247968923297706400446913121546542769469918438588988826523605466659063579260260924501499687311131574402695428266954522271124853899174429258311958337714631492875040553476844992881729154352395281665070109708410209968086910943019739143259348113816259264929061252594935050468628658523396997801682724762242966231339958325254082718909857608076849451690613600599531711021129784850406462749299512819070654312916432655142878254159262888945572027636705753599214658056811748835752784853032857426189210356717889323809652014691417853621008177557107335594689293346694592413046016069054960056372629435273457269860973377116693051506478986069577210275229390522019428098704120328719728970746342165387855879518965101230435580075975955933588401006345161841026826357668550326827401965005427888995738609262920537519397917907743235877809615250458884632692889710831088795873263543504963706207382896502734020718698640278833793256809827888400128366625669157910362578976983168129032203016478326072211978516560706926665293374836997361424742359533858678947597564880537964161915774486487114903515465915901597662452524779566368808167905970106513891683826944461889559829065928009227005113775590686866794764465818267969172524080509847928820509292477272363103641046368317716340616030996334249734171569048443078946675497811044526819439733744436509281851322554292830499608740114827179841910260986414284006035396535732462558918888716523177194365557008263343170271515343697970543671262272474795773305858712682839169251713571660617750326393143837456978960734082476518248507035054181334409323636181178243029077231355844920220726111409414187788286039854444875724218197168742435148615526952153660423949729694874672600410663864380745882078959977687841574051566312149063331970586264806260369285009338960779571313410586008506455708477019714474433267809626229223170157134042720630194722453970657772913513358211578493849042652622047817241889494186580213292030377137588553848982196298649520566380322412986706964716410730147224310000947653739890991464634319009120473968833531970052225175073198529417187096916939569368587561170037227103703276049986799322649403679979993726566689446420830312661412420395402883112397726993619888650259616349509383428660101163966351425263820199918491048930795715796251610043387512457424460228430741261348391182483233665188502721390681528284889164625267898687781923966534334383873307410542726504641515347002434105527593474562591873469299686087577386057261413423260094085204559654704303920643656127643581292540575217337272714933198959029840452713104537843700786996050540105142768672074449129659180179550786558787068517324437219338237006303460564185489642597164346325646104420377505318339853404073140896086101911810450430894062743267417943870276069303820658035519771124212578411797214933198607891505161018190774329141603163635668665765684428991428766137923132119190949248168318958596924612248155435757550968445250231751297349869606720013439769454531683694510742404204535643857452732634391755893161734121883248192444253277341622784922249984518187570835677697567563597254550997366828863953303621222413366987815693229374379015844431923109546528120500730125822084382672776879006978559467012300531835354496535863575726345285147020271615015744736532884048157816195211703655552943833797664334379090930120560207812574744168684056459176301128587983010384803051665656203727331352764093526249375712652367671055643252051181388667685102306498823241333831316888869142355907476703710054827202751508761193419606466842397470082331253660024147339222086199111665384540629845529216135736323431834095916278714819346184036676513678320623535488103140557245545885709382106286595402025972478558081491799675862961582567544237324745197575176506418149576924091790235146022550356929668168781132698809559621963802278034784496131091249926121682858316034850960965847582862339259321787574932300152216365021300453057007595647089326633350554723599362489712305431861887828493980723358708267320559829760552471100771696339756152025780036102329434256489780624507094958199582840112470024087852970853554607758538968429854201216461594263497068362398720492643890734669147557939176432451626215169468672264153293335263940779220448439901857603344034194648751872192537492704546883459371896057750897136278257241532473888849323819313118160093111150687851507838765612299428475914446759183734964573104696415157710761570449944842035731791655341428911994567129657763569677900220594519828044244773916404297727723690412847481651427750774419329450072854541574242903852321049635655615952570652744621967378721152454103491101326084820095050564949457516084049870089380462760387488460581615080429116482144807492407718521935360980323507784077150104668838277591126255838642357360407257892006030957333966348830297364039841063363738158938281261928845392686663785480055224759646255570667592995864263636000326510905749302616960863550257435010379607967962303463002962478362443813888586767724175610520404929421027778684875596556926962997138549328375846979446670321218468794324750957956303682259988228078266099136826599880858727024922896641461205990274712615260685573877692855146542473130854840394868433273479036952659567493266951167501201608683528742438344619367071801103498593190086512561878352188755947424637040479297878095460911444808284409881369252870915492071077849367732230434303586128943303788115521395629317962566240469821827317968914950685113860673225444757708314066258647527236352071970564674572246495015569744822391528405522753695501551890227136358797377783966333092290059578645392627481892281116064895330974738296443301087359405743589266674490949430024821209706122268712367930237155073150216887585619523890885100799260522199372510772816301708100710355036046887176399069629773793973319948511200358325090056648348865038453943581287308685772654710562887006625097642251493804932510913572227127865523165969742441220535380093820940462073911989882566512382437480677796871317097451072640523496485719817649958647448965051905980828369628281875691764134841118371631265144256172411278978901244520363923300795269908032962087125043865818481624801617089672024975186211280389694598413945524738435553284293364583495285117056060147842910763950261912025164408756168981858287223171224821174558343569287829652809023740789541385309875584512292533712451184587808274302495586184437655963286644758881095700004255054469838838099981163210037387829955651359155897532436302755002034082197459453170403049099135161881285030519228946918157663149022808114797987660622307667703237125913006789037195980019198278019185138272036782871301867501440116795025824763627034827475744900856911725919926294382474365986159010889576174262443744569009687604107007744650954481232625740488660642619577366488680873447147067482536199804847594832806477313596829846289973634894871517498024756346317034589057907543496473032623910911440644435041122411317515532678225421722810534570035305702800611052320804833801749823646829898144903096988437050015150481064709348178935704187984991726903473681040720484590150537389465472015844605094224325507770182490098763124622107160528456550717950677063735609676445449961762227300159409504971533554653647607548286284587793134638216632758761593168608528382138895941093509209734800258454688900854648836261585535727342210189445618845599501926609320635503594742870719690619366503422622540175093161713788447030940830076135764616148616526550521369935627124680263093636277580095173584656790255173124149688352559875507764235917604264072778947155635366622380751830847845424276664945259171444478380925488321965437440374091480203465256104738705362370118071695971024846965734760571091422956501377776524858623738259677688727616689469173730268699366862320948016695488958479370052443656165606075657937146936885291439000783587914204086705576019308813485366054532576282535309741863288459370016454928933247695834931344308097216472978188655209589789880903453200545430949750950514652586486000851487640177885453353315949076062119196748945773445937360105741173021284062036046828164280458444139856072082687543327207189973785815382076735650713950207083952374136825859025276099868500291157718840585403424215419312381795177716427226256879639975696343273501537849588177284445048170961841070090850771107646215390512190524227477697019749375278123552501928453612221200181469497921741856877132067352556542370595192097168110012800098213243782129832532012278568771799525193309721194716057271361679249429693960251341266529028066010604817814072714571367145620982179613723226844098814198418391998384594386301492224872485189772904472204531730474997216491407057162991920571287126376491441550615409899005381109571833379973438757582306840208809307264330713812543527672485094386363167054175526714328376408456712221829113297658764087382257741473693539349670515306319150194454498964346441149300443042334078135685406553671817291022370320680905508067331809331963027389258416534730402104544361327441482496942261674745027814532374273343069373565138758250343225881813431994922042669917138467700321184871869321166104919347961922995420162144037616290782231767639041583313517930614416729592012204842351719916090813869319008788016852835492170424774412394383673554916627348183627215146313129622139769397058154608442750858358055482609298776627678215445676768729431417009590177806653480933732181240599153351921951815015656099027692749163898704248308330919715178153369472415204413588834095814769722161980683813380425761122843795187509327519501925613355085147435576021478432363318231605227657303652587145702546120445539779262952209970792567546342663401919363117328853271120599840498025187129168938071896799388779024359917514499116288598956658372602245089984300934893418195822231905348128389595695963469146141675121773723111255321444081778773639091227813077844740504375503789601086997946369052196781899736958160081575018495374865935147293124481580857572018885488676949981773319058993270625240850982820152090131626461023200316276490110703671910828210930468695728089706583893545686284178914300308592623802978819822809827341825858324366876147997215156410932725566306938857915942781546265144368801673874531718015854133888133140430162925185265911020773008963735628708061109752216851373702318493150273239137717700916569236933324852967531641424717224818654098749074215979737116899091298601712785467621082607442396673351717004478325129859380302889217834723069632133023666012685146754341016747104619230570779874014259691251346929556378655424978258450864198042919484817035483038244600028496868211887037526255485358883488384052661839461422989134275175055166283736719081053852986601776887083331313174438932557311669076973758897857739833188928364336125119467323030818429063416935229038502684888585946343862615781886464056776250302781503738596909845733868725526450906474920215009419614809034646842706089955094115400079678251729704808386628311735326204691288203633411755407217997822841421807668425922984065015610570853396242653565160295027224534234571861353161447546821670174574477130151933352621321571004095364480834267043242618949206192213099331362270415711843546717557356736857997071390480283495570398217873544099158931037361802323681968743594786572765742341682082897644893587430458684696303928398172996635857075134083880706382320887055512310213004225997272736149051596464841000887489352502686156162503137788653261527470285374269889794342884383564608599619947732176086663444699567677746782619301502785031059900295522113719221426867430535179608464233913912996048647866856765300120135632320501614573302583905047096425096265685269449306414066185979400502352067073124330232780526944266321677538992307020904392540358991990342337896534100697006769691858015605262598054813679177223899597696892170257356711050731084665021887051355320631200082600404877213859950592750158227381186087414954923072831814469554419816360768707400104992547551708582476619624713235289117194643383957884972855109670277185222685093941581118801248828172975279381371787227494432592017509017794469649745197776925220895968412487972441157401392658986491161770976665551056847376691634682072634584206370841452022030472964823534860331040591664697075415454619259795327688046462345445903694901785304197435814247533906171685899696285831319831335755922109289734598221133304509806278934328989231064679787680467757065653580844288194237366418941925104201435510445777848653243949956119570266189820851708286244285181779462196137481736085563218053319437477247638516856212151738591956013194467040864225250602173641790799429743824989982326116537364684549941738918313813241312530748987135214255726121991919143165021384304048945710162323455031170281557192540080711597895569513401220170218717200473552683428564959949381502135336425361715163581928444763903350188856012462102550188674965153526714285750192990148840661580081752581727888347338483983032729789737065902283225614533053789863582364115364473563977355484964163422604823802332725733977972021564971652822959440960142903935543074374681098617571443201952838120503923772851979899249801078359748971232654687851273533126157153618618696612349020287335523242357976266418138308036431331291911167377590788420806143886472163876929526871065488348003876315631551849150795243411772057608768494497774049098450647296814852385438381722808282911207254233795882147558101226859691908444158104255070727090057898577661613981582202071569912135780263705463263449297376310641969189657042130004329550624388049370981548358689278772427948332127043607779488818868505053679785261724863486066821784723739837554639719903295823003253243960312946242222878912703655361053021118831276312092324868162935996435071511510478205140096239436446068094687354503342426089751688116850173798577354642361138640194234637876738506052822290595076986609063017161439156959675875837312980117105789842145247798558247027876725917053853349172775234159244007865254293515059093907089739640612575821936383890504178740698055676668699028441126089841486506191887370113180430318797858042782987425847286112191342112199265556654001891263556956697056095574293719469498247222214342817488280263241832097268170371858283751013862798967791515387122621223454029970430756655894636070557004026419624263336500917996198754263391786029809081978825026310067611322268073063227025403726364974932978570491673463608370299133086688336202023696676080815201935249272160191454198957564618467478659702912180523052654562818779904098230448112746713490492112401119580805561212082107321968895884188176235726932774853383633258551996406732679476168633253037352945556278365725668654113240194457029787873477841424558343259436570581882475189896274006316418481512852292083821306142282852219761450272172274417283220539867399765547120957732542353079649948014726286934313139623341819016746372407389667019090399634130343355236160009210022215337344697434692454507695560622327985662053868035543479489787092780488400953842800876275383255002536270446541032396150875698506870001859108018413001084542384630768576339864175050654816609189016345122508382890720224873965132882100066695526673508978537632452930057821043209318485768142553796198346897804258733212287932366847528123552108093161795390477286226679383723906768009808666277256251586708683313092516664593461859948220313314487842354084356971349564450108357973613291533367131460955515573805934245752285072345213917324767387064082148482281830205870703185986786181142506622530704951984063192273854786206481998481424430325595232844588907765533443416944507918682359377704359611229140828979977974376577248482108238420023284695949263113562709271906654717315110358997909187503777530621549630456891859280083064344149618703610588544450629314369662159848213716001129704882471933346353798915633875724200204902386520263678066104437166871689580836637947199845612711252271343836093699021390096819233464253760053064813842005993354165091903405296729807010704766422739486595638950073634380297333198783312009629418547455921263589324134641644940320907740169220471303057349695769319281217147852565287090256256916044545009944020644833008960423531547096849532387301294930381375136320006374760349933963299597015011183604404511867086413206260318069631282689729942232532211270446019525633414512018981060341470918179563304667834689147879880507456475793872032754471142042333587522526601518649764853607926512936076974833562378858464978708899739198021954060988276372212663173909855384368379198954050303515870186005814061634380373131544919725170557241190379584003062892631098862056725035200316661535410930210253075239881501240013468992834156508608372209141564980551395866389479755594406139829938447415107564773468042313442069707633999802829092715980695767798836138179590285227217845540980960697657286487873545594915768851973853954236404317122262300550115452788831872279163979738133561120762048410495987702856834382640883500281957327999504960665431516692733561844920975989377492582550286746779886334987829171161720883003637188547549381698949855858529697183259252453129786062305308878945451503407587573882430988791072785536281506127418924446531039597450052403310838763278802986397974892682373553658319437199208852303488868289117023455373731717247498806547147684496152765264401337355814343799151826513121389069355106756323682962004940623711239908712227540361970401686639949106642279412436370132867158009749217637233136765532173089139978330643170739519288286429828380607393431842542203996268002437564900161395815464293967468945878801015174980118482527331617394957148499636425411963072823400753913137038654351410855710698632789168887021136041785800525374224250185268910009311432903093096118812868876700043212460243570689316412650423369673481091718546113471932675677440538303814207866109149512720757471586677625604611811522026117354715277118766284087580604359841107870053492129780049939550086924312653827148893210394638137733017362495737805413887971473687230070425966797182084790249631496582441769480508988475927530317857231024218260995153602804139139121300698694712030547716472682261040636486604309612246515425847487957171508608373899031104979946041799055358862139835190959856140625246245187071256622655236671573459565806424748623736362992004153088633922777360488877836460471530580402026557776255106027294256456928912089188206167165174287646010718387260630183151913977758358093076657926588082050207727905149386238490860734996562556594499549889015561260054512870197818361264555610005543967287101390465208272705168007538597223061498117198951510002817794522271778868326483296354530530602374496340389615407797495082828450138439693793461245280576478300656248152652416008061372316667664546092860346084113112019335441703653242753524120200694015178133744009126372174704412096514432327849304035662071049740326780058189522592501607704804719196593718404487940778952623533357219038483565133744332042506128245079023880345519988509222178698802794919852640399003520627702442673448890819752085915208916651184135567926674392203307617182919944380173288357691502016634587889190418586986200037329602022090694124222956214545830468133448497343056933043741545336353163268868807781777975205318191047355731131158276457260810071112899737016737265380796081435183745126411999891532264985836766062775825474637327395295608556952169148762646561174558243886255530012471688201992378261507054706913779805094287975413236709753630260657080256106778982315411477927270961717134945707983413971615469923655965515925661503904258652271203445901487325284848170855256574524060175808746181148459118926204629532185533091979677161646302270444777102295059010063905814185314003659522332405427441725258698321059388428963760814647652085142494482173512926522928434734870465005470282109701980241526167842205454169513092854861050501569262519980274650694434181996954396565189791948779954222926040462024790634107368641241072250880744372679382598945243099133904162670973307624767043160218882153229113941305302557401574308679469896540455014570421584471308147275013833669488055331452111633631597359529168619858184280475118154830933173449718195197449666496251266478586715271765854763303554441146280436910922452390648824780674937185629709527076447826972673979885796005640166524579631321326950464143394414945097966797638487877433762243792324197304630646900410352458386436536857847897005128194620000547849010890726511513252527522349348707150011557596399708079040125479744897517557511902588590024321195987910178290345305263254824278587896335352277972441318795856653498536713146415201538395781316845343290090140384250368620504567835642305523054663517967585145469561644370848482870307782750684237779542437019952784770951732631555775058790901872197412935970619473219643588045903827645353591635838904019390012885187164534810787903252209372265330703563220056788879702865766482758197612480859702108715294209551005832999634956437464902654602972066927017379767875753293156347718342159466365425336454491386281878339907253920814111662571037465616116773676237501086340590099042670820839649811546103923352307942208439742446684206027949290290738421778366090715228040625238715142165502868810944841657385418223165401630026428105820585044616691778036540831539383812855814537465802796758057479503420698307722731726951971083659318783106556893500682696327439277119821544377017161705942737110507067226098908534667547738795297168923633735192343089460327095913170514671142584159301591650537389327423888383679886906729839522742657711471131512783349936718929869846918188862522223460538683787402100876402957725325931082925490644905122027806706943679523045467774120386608311081053962377044374818303853197414513874758589297804083942578555870122634359928376284147570989136159696915260756395658993067773440053535848903300601952792120989937220437156283581804854325431385276260765278959240955398722470921962086890244282976700281640049432233504848874140854385195412114480761418725562353544690892397934541823235179019580913520708713161711038541325267273851101508088563794572631649375115989569791498094945884266241920647946085208842794960176289849929683442186631954197316452236980664400971581344961924321251387929979763917576178220364916809113269865768849005461896798910574787929084634626469159539393214370493796765104721962132997331557310676402039748573049716141969368400229016998131733613354111056469959791066502293591262239541774547242568903596321911121351213502719055589807825656686384657018932691168558355640501126294950412630285587397690763661351299041794167098467311823867210546739691226455463511049003192460972499205137864064327988959237952297554072484227213249285081706490242854991005795432054421143172997735487808454554823899807817718546413176322064204916396689272753715094888968651205863446959545008986696808710755111363003459045531078932531090754805942041105176944934354009082058196383822372348574029888425160181622980040152478878195245294900122153605290652217511819908529953512945135817897882027487330244239384996381961179732623612475798039111367963817379261322261390172593234755979099136084910313934334861313859698883499932523774698130872174791595222233085222288486288665666846710633265352514714312300910048556815522405268479314940626581316211459357435467782524008677837423480997039585030096563643047044315738777158880165859530046354710386275002074018094855080392009829902174955249656633518292864664742282416198412083713705141550070041341522329411968874405248623865277766915961396137623760014623628023586653309458994506198627413762881536257695986511071640431499774040250841072454211638421256682662069708988546036841505757123031422439857766251153143725625028924988409411020888696601254152501226199104642174172808242935140620584509608676598817677703494225724036434499361311227830892966972249994248528936955334611858900616310527182036150162745731418741577877335642107334466665562953032027672504919869051140271916216281319264300862834099378027649154546791932450450248154603012301702761858390920691757588026828883045429964966328761342717232460588668061721544329424977113383972044257167964845365119814762550984548046012539519111533671677911222879742267470031503228656702058520890689075088747578444723332848049359312203123385799448582952615183063017615558787713825316995618825987635525899630103556852361724203325257450932155521748155851198133185123338647761225674821591113454370651686662833704154663818043989897506726955162762325046867421680273720307698088414312005492952543700660276956057039389193607411693625034220368492609494684967326515790251509619601614585917590706023156422977372102734959606414858717913057597795956540393094743418496425709593521834910916981674925108247129793181003535881904240449106774225873195358541492848113990993615991851415729741929861858253247238169846461099268953828502186237321953270712148416177112296767912795342837959302908028569964779425976693561619929041723048480680143678859439277033886217377971708928523459455174391931883224809789917150223449136692517244935060533709440435626009809003961617594337998208533855572084675420619627327620479497161425002804393036322324962409075833419333624432249404653149225269736692139071511620705826012817952996122884776196379643507930438846527426305041233491496426249146007461105066191936719030921029294420164292514466203674726379267294953598551882897925096689969870345128262587860709513690370345537460805251206922537322779616137863615593151070790384056741781940216757747417833859678141701596189588473793141835093738527288184685988225807813104677258019735855493761509519368696934347350300141735332031097239155847095137292407348968643643990827758309020442599257517277096358003412541772235173937328880518595637698195167968629536658844504636283339223993803788706966298802961158150095291664782634711155276989494491672717137551954704450429836400638613834387473818849289277705069119778093070680796469606376379563248840849152125639935402397344560583754281219193662576642597334767332684194442553048746157374077582487252789128272658961224084492074034935007630896232261745145142772420847576175901057210537736330514369145989406396938044012313812865047251772203109078370556849617916641561761624396730299101909657417462891508251724060577818773747680019489745667327424972175978854157345250986857355857601684759989190078208246103276052721497376308889811618353425314358656183221297752438304772156367922699061653652756224266190618671908194709776132984150282623976829822388647227621551343866986110183057120101100376006725670695759158836691766920792525116838997173378056869500281432874605504422719075798838962708431549282108370716596366922683410343390109328308508374594609139261707499105469073103484460812333353406780092481428690668309360392211549991408569050534493208677419340563879480172547293667510534791912559734185249902986914600358855103745299177711610853098121997367320223739093985869310962393011722407346598368960449570628820910906071944759403104245350976236724736321398386164989774923057993350650201820575483309426218556640027058058674976315511015382888390572661244619312930829866677086344172819860708320867462325433271356893718606498248453060420908665753516129837977594654856909400631744471315160359561921948826919864036142646572327938520382361432242513311110271260074724393201489567673602888180418613871076532941620112810246322140864571758501039541620231353110228311284687499494196246870085202901555687366332278413540307349825027576317568326911754446719037525673816145389867981567380176970595228476457432537263944150483758387600170424269855829523157597403581122081363553130542510506632151557744789331966083805101076081907962544212945155865329974614526172211237540065674311418380304926822691525979749706815448032891359860213841301768628689660449391055160197325597932568616993086872545630466929111105397601594887315188972765013336691024353005366336399750671395421403282856413244050136644517800721420958636680684382578773180500811251147722336147986556951597029159237256456211638548663880070058664029255689171390245249275961592973707343962489844097100875524913639995359013319171323836132771187075081673444674183196988001354512626632978984683151320948351749446223397411754113107834818556989403472159959778985733728958798578991356619951774657056644166404497693986648332414258901537483917484414600495983063073236588123635597576333739624769625322125502581783842920923685730922862331615124744164777915023726948887438739194945643658562422513939643335505582250213027251147036441556817475014750068219909588931959171902159792690792666919257265823022615709834460621733131624949572008559506244360000113943863014356464547561536561766127530368694356195219436253059396352557926810213053461051352863862091892721889718654040647525167653130230222782996733251874395578345319165510321346569054900021322548382405382098417432213300525995594013719936693491638903146560190171920532660525830813775894469592945911125606093943746530447688645460302405236268056195656919877010124798049800421714162549349587123532298531438328286047157856137461515558433952329174008972478819241640995016885293219617782047416669520820383857361751560281902824684766487002459219978183048532338135349846179830851464123254910896546433980120132531715616672393724571923243768407029321943284957592964584286060025104584796133279811305557360558603029792711015063520493858137210694453244195984825664674234240141234193969855911851054614921438825868662850321894419486137194140057202697142641577674467752236258864619584937643756172156874055642381447356409316204786461424214020396686195644973665351557523466278983316915850668574572530910865211122928190306240851456790458796415147892806446285752962397001667554066159394318381143701822317939522394257632293777948777044931564567608577030145558488200607588926611433139456471542503331910895880894921678011541151316385703667124304211097726497086217840757959117754516610975306499700195772639044790578608343079378122251472106469025121397462816333484075086921182710622820345569276330704387165485362476051615111696870144945927909407301868103330898887069427318464410086748088170123847219015524196040957870786775779287441107760354501889884656615202859768950071638555361787563193374026555351498054762690892152102196163039034465307612203364076487748321184853159302022658042385699384474152644824252166788432220170643674704048535777457121095182899400966587253897741366016132576749030692554845214164846038448193965255824645230921347092847843411558696712129737433225673120613160290201305754149849953823327228293072000071407930522767132452256443262617775893115578963901791328366066914260878659021975299574379067444514909764730541486202157126509198871565161870576933469730191135740544663908259676955982718387819678176576346891490401196119500107288422584974440923510532151984796762022511779215280146422220828058806632020265637744488481630739661869976534104219854871665220072268018566633293325711205101649254299330085010410892077455900592725405034411775104089489505854919155026694459940893562631304226426559685002625380832273244112521446584403449384625652936457189648767539334440276869060423804637479103435914305669460486331030553972433975843749227694780572372850681380106001073087886080049420049621450494359264241513177139675911793146864323643798064226751537103015052263055643042111072531238554049168162753679947831845790449007526449718763742647525729220186010149195844443097447368775459461388137731580030097825270329763707041219375568231937341089415675752554024964191647183789150896708755789151410016713870040288802077538865799149308350152163585992208641084323960043545811168820082725363630420111365527383400465257908569997440563098347932203868782725615882182700736972917647812265972652149900484922665588291159557685200214023862072234321006034025063442725124271792989931526513668225116276870421942699042697593278662123462759392333794737732530613069421294905397168547806956917785737748710512311090476392737766005019371687470175982543785915155571542410756290154103403600647893547961967313931545378386840884679227541285131038391218369773625100506654853111159061445894917351735156878091460982160480064763083373435814240942625544877297446187990400519466517457457596141549198308674208234338531056071072235114314622027660437604634451324339804125296352424543307872335214291027389608189031534832560852139294187135521814009717442861042019437494131264728859767287475019201951622648683688317511138034067888202867074154240292145776028909873484179626502316347187498551000617139985785808261721162240099421784033039306829857899387624742057466434181631478054953830753393410187501009484603180598913033045442822132591386154668163012474816826803354909809003614779035934056804087281078458999844381414251240953486127972186959887851157861489262336481898592597772413249609738896374279477251267387359863360106275388663956236314194359272787675520099522493037825485885844892380086804560068716778560173630392263873303878599024273833886224765372420532884877548709626009188924138338952962415255194189756012333600735560376693036239785943152585442050798460554597868497006525827130726743747601906406829854965393925223112496325853896677976351238716039680074401173406858853358442376594346039416058294460703850656252723866371427387628838159171477066329462509660520556209150183664803404431279475468879442606249173906119567748424165342300848478822158663169905501443206550897046342320960787078457996132732329527265297438191641143129609506998235267404927855846084663649008710023086323451479186452393594695254353385962307420572409077861477719712002287815291981711695271279201954603815584845720143756047007223678746361640128396709632563947081026508948919302595892860765670602607329822004633744540913811244464425374767152097299510786805603150803115106775499592506973792442241463448517043135236209141963387490390847094774939728472879865874352957885933910443746983195316269841226525719049549448383377702657698080175188473465662129055837059741048057713107563848536265791089100897403765161723430337397494351890799279600361979101378572182275597053030329854661094027495106720684316536541066302736430240109289992202314057287214048869128339893264517293955330338097233098071124401646355369925468867649629563612215688907403873310827731614944898952295064837970057205894287796467650248582496535553651696126066921312435117594806085431121801462806077803440890962476769955554032271690975115613027638444301850196124466209939566232487498961851710588322512636358437667121507574272334886978084145092784428142368789623371403717174383443032072847556831466585431728902308374699313380414301758471043523215973509802648471714892651239674001977571359779303250887617187957271499192740364206259557763429014967919319795572058070651354981552631433687945761546856978706289957873941637635878736520116172021205200825464796391803235467853549855978282488181421812476765806263702307625286216052413782297449372503098198067776642176935138504238015424774492863874257263788162211345149644386966352345027218017041606633385062792128785124522934799359660406808392610290417255605440226220619168443867428884001082034202481600720566082228225875106617232326615177739098814606432756334084640355833269132011263140791256723495712054847705576080059779753676961810555401903558524647245881412157066038947524970472135230689447487528037678113007223963402423009717833263856608812758508779380722543470452226469849818861383800931691240913006695149197050694164517931178102584330872041103578720330923454441971171585499163723726132449110131563948885063089843927874982858984227392202552689236828265352400377779593831424477115785252873157051954326505716885962570907196324694684676363634741560135055371322998721028515716553227005567517819279282423929924384515803055523187836359782478735687191978803312410695045474412113665744549012051204478703253910761019665306967860456552379328215037576559437695105026946511199967208280833681774668834294137855577172989069783864496422269557285933527726954754649334788995056091307081737329344103992003160194709754123318745711484889110239465185935513399235081532852728224091685981858974195060880721460328043974722703016177744700012304866194729843312891574485619802641111352884907631497607216482398848417489437545569014601143199563633120804676364102807047461616974683377276593426580368476690957979852444553492735256577214425639567597999473751422774530019505604273336244767601374394748515177390785592169199850250772755952087658275103291029997438396431401977378941062856112036264622251074783290497672008902628598883882844465865551331135850894178775646532981240400086257285417103741458725353714958630589463602296097513536416854876425590454821315812700839195684728964235979990245810624862315468691622525784190784923518591324850414436488141617039962250522597175490599125130712379351282188903643285538181095960509534931889638582433182013974952600416094756694335682402374491737379383180195635941437084649447154993905220392545379315622394124778820110733975830368675121823175392290683551775988554255233632953933947534481391318080901989658695427622111405986181520354464217373039588698720546889120192600096993679267240203330620078989901292861633234035445531001966164538587524112510100867953814304384991733811141687361989524413592668598357897139726564856801484064545508702814604254850728337952023520984252518715138672971003709067194424620978800119228782215067220597124014766614080709953472912313817925071706278777082213213369056364545037480094237800834091752945751869395539503381845439048945821817610876664456216865814776463739759350311742505207383196414459813671183672931287997692103409589845591725498981315503957445090153024464780898458909222790457395660921237101951093156456193608252459074260598075539086931036873464961666246911680160890122543200907626939174303975142198227656052234899925378715184414250160688410880008560530104949744753711259866283079259858231326163152044419645551585123076089363340657167431108301433041766972171582259252872247618441390672794420930739036884536936553307464701280076623671942935099863817219311296275796698532968947655021107273309673899003302327780888322971993989692773758125281556418938915093448263047638151458487140895379724330561769332880892589836261068194499757877081776992355243270655387277823565240764118953916655149364775870953062517527987631334802823144705054586177132306606500627787397198145437046649369046574528477887774992886879747736144148207809250556714253385602918665153390765715041102128920015892903376786938545898573856791001249423050087753774217492292896301789529917537841195105603251434850376147398663945068065395346582856262148964614573240904547870765646264023556261730144552961292647837482615952382286760619457639310546334044865222620206832157202144415931088816680768996554243379097420630711273798536777988283560777919453006957471723773665169838058082285473891874299945731233998529085491384505744841464622865356671034866707821222129379604575685563393809510360116904096168530145851416443182142537523501522612701921592356143539841573847681280780136861754167951383871871771272878008678183200553530685456821004256687053806896502478756637994275106274070025796398175140963370272677548020161770434239940440781751376240855713051863619111453521224521325233295461024782411961386440404950810648395384846372681422848114837929284838969550442054403103411059749048909110755886388395522432815253144854517023662215826846265464265102460552664546028297097374769142379026124823478648072041161796665196073646869695909111948207818533090318225656728381228811296662805557420750392005371500206061241777904238211440544291929397803475319884209853348735115943434153799806101394417344002062329433902590842798392777270980976176102913464530983867386170022788044305406524655019179256797992258907667005271908598648428497516888498657709697203425250535635147296281805900347348419588169369786159909124660695086269044724646808355474115678856240802710807003671484983478187545299542126586565798113592240624822910180947564964705929811745798611439004698871770654504424367299372220547875695400131435289453267437153153823299025555191564939578220087467703744467498706711989221201014487185227679890515613070904544241079183310768715685601233373414730756356770043906385588582478449390149504065260816825816499096047461003975457140821028696154202114546509667828816286718552721677472914163327866971709845004950314484226377759053155684099161288999436958663978528228264670275540873234014057589732257760153594114139263273567572236248813282636086351112556338223261134296444943343473452667326652714004876529735895778604939539606068198452959473184259353161086254873791397810600694806035241067631355000905959606753955520254755249041149875192897918974240929549509531363820008888583089895667025766670731653173464057746978276566415711446792646644083050770660121827403429205250492556191228428533163443348864172008524413618878078387763602388155138653683585043494188352229897230396088235547801354426081965610018052198345842611973983772704361487085614590706184263334207661320137402834621254041040881316160629964704272925299842353148451703986419761835718742832088053269811951633541187313361652909099143741965378712395466650338910980912378095132547325632531442190400607461423366191548464206333994549358499255934246326896867294576711372312631450361551387767119333482386653394248892015092296199055067622973923043909786255136918302968060830492262257954119640872868292302917628541317448924904021342209707610791286847684198931822085457596325666793037680067925009877316232215477115519948567889110166351587518489577142952419269753472726128764796565392554317877401513794678205177489558364078548850665379254756894243090631168583947464324578399226110026599387491531556002815094607789674303105500531930647131928877011675639921460275587578910745791920018655239959741724024180797819806467269962914708572513846240229988242709525388102615845593481455883098829422256421809800860263879616682818332643089373835591073529685623361180283232005275563175226652029132023658885947014119451322941340635410051577459093727081421088813492982184022496610493182790016282206326664666134416827817166560152587028901706056436123147436451408822182657023375323247038883845180829736838844723830629459770932384054334270000664131194162745097109662671922596978307676670605331699369851723007691078448428530990262480252762085045837794094427198960494769919516093921897390595018632524847258338471579809442383179672174691757306157155640831737790901975698472161541013965690901419896536467473813367286399318546352208935934359003402519506194118523577947989017319534852438367613356004449461293078744711397868228669774883499902821252912710051314373213259372697306649932490683837379434046109252231859148290072480298054857767921611560953036591673066058728572001222632191203809923591823885591207774333599384589990587865471050252463450399372338526726498305035794656741322914114666065835266569655761876146987252069401050697811915327493597257944227170932266031448192217192670971690696393535787989020595255352758604975770979708493882311735120445390096121051727040445069563485228454749522668071634239905687512413987821572988392617516259063182224234292378240461111341204460834426674313306403305111857239784271651787148456290372490990881818879992646297107183956375221122640217169714331776150219945262101571275003302256532206911518449919379476840959793889456954448710053526562968559443940380086949763225155291290134738754674258360830168394236914445250643732316646623072102956796154331892448346004069750245895709088572896496244551270923187514825285973363351668079275783345578638144290842900377763951180877182888814967973459672137840650669126197753974432290203293231926917418640258977860446423043090385639099978537542950926533529937874751150440594484192219015116933350846488718594279293397597410344025234155710544741705493570430371640498891434298114560111772498392641341414688773413595527545908574261547177396623838763949697608969513575839667092567400513819734569584607400390186939649374159909263273737156563575889573831060191076309798713530131554492414613596136950453509621884669692428979861344284683517359109546825880039479658264579751859898409895152704271405843866662945456690567589480113422689440576946110529116907357703757476633173647365189532676578183116998077828892412278778767471097243950757832808333982790471556937023328571865248759045670875607741691613900620117402980652493992665967010696190584332477420554040074965530450873241655605947744056061084448525624719827279142662573412292236757291933862113228113752655018060405836755914018009812301682249943013445901381534750659768682459946987467063193359150876859280217014123794348589429653332081297614668456452008979370431187505262931238671263219806639207213135569411915778503939614383101609906700967822780297215108074528985831969369324613029064645570892428808407103260737740563914008105171169439479684913113001280138573365483208719456620167810812397309104669714146652049305650671142680701883045233880460961924991170094222769312867292063254350668884017590928218559526614474693072677267414490524003854444333468343398888595143225439813688077950163361375192271669113638076031852207641010919765103553906949440315694597985277084016669315479294085170316472250891696421353134199344714056749155829106320230117838378085169364659009495129692434934199728214410614091310994157760667173853301380452273131805353710349512830530172803900691976842265281762860030806168145524144111134252135925784127530550891149501336755139658050705928449337908770582398643014453022967662032821906644783397443232250433081184928462287210933323678928002902181802558849252245365719309322752511664271472064416782435247687781879915655698373679229159219245366175697811364641900600383948484900838757937667707841583482681210011721654114474858068538960315316386250521783159736865481936484762556397398268947485043323513774847040133727387781069222350935075780056740974646847641367193251441047962175439772554346514863224208534186062330480142179642102425517044034326287691825751363593624222447772885624771319406308723286548229052880733721500084763232607599029459595712071798599117626446967106942992979072919282161588132412712641466178587069757937136590491906083203654739105666558799661787635221326167765496646377611287557172545330523723878906352973293147183673441859659811578231030455750011740270757228699011441746703943802532833957149968654798511839339113573031257980550009232112549435449779347399598502290054423246918187650273190387726093282839268796032034127976178621374190346664097885439427009752001111275385324252225681049573187833310993189022769064297008439187242753576763589569050595838356894468313908132404688784425521283269516375811007956610681774924075578563299445266414810791496830884353624912030634708626165197416814051698165466827922655320654436470646896470052821031808266807692116737757835281153535008403693286850645795877492235847689353826281679634158067803665268486335053729843310355881464271722275414305462410939378415023425487061573618039637335329469653423083269227987339086266891272738746717064611870885707695114230649602558862718369404303590516860574546473747584239026495948426320432138168041763792852149528840890169784043095227878814786836844956653090877728850227543882133426149893682641600672465806239412517671002601061776281344369512013761332138737262109891392970034680260827745375826459752946854245916344940691928811051911104319777408411842165212222590354227242494803488560892951686197051107095637932882733236286461999554890791261113983311188179910399081829262501088950219159603668146801200619624599806934629189491067857736608983897173368779386957923952182594538682640667488951182289630043775403467561679034648320279389550903788867385843263573012863545419916224163194645228252455788608158894270992205355970928862460312920657035775994681176446319951699685344688143273612491047866660193562974612726483464687147201563373510621420609937661729023468509359989151804538868396438789038662484566059645080784932042503661164356881621216799196786549906173481524109489848289201905733613159318007170105290585098021361695686347471394263904220606807316190457564663459312997313015809395625242996586932809946861847403695989023550229403622545994540323528885376691015064027978474071311164354840691491298811085878179693044257788818105355162049585915421513878645868392236999903482004059817340827657956134841127363919822020930336510438498342295197626279134307380896486707400609388745541728472212308958639666566477382666543134436353849879078691718337420850944785290878702872584710039359844742453990203076905989031217652988081854116711506697224122900685939184937782328398779948762078067168629550730324056791776877156927020682804894063565554799596258201284698759874583528004844981486492306682835963070790725037859154036441475856272341077129916088411221777467188839011171349160042019409209547247198149759314794988063511757222784781752391537967847154205734395177185503229594686215385425811714488928445415810992763571155127658169925683769249157347725597318163844255376431180485498202987583168815663409374662887164934241465127246922868107216507757242584633693399132012182877636353434775580097360997674396386170024154489455740898154868605339003484723911425239726049466743594783315914056323025465820746934931029715057188571667541373713846650225575043592867418925913093289372542500574562886728172087077341108341333272686217621099157563057295534768921220343037074855100387941702684335178422249474984412696572617579873480353064267939095669821435757299604287710671070413519539575781949009662498563346200750542600823950399622131516795975860216562162105708629369970447875047418864893540766633289775779787958986755268588897996641536991327831022645043385452942737924313638326299829704004047461157869274347757356014580309191813884267728758237076828726795386332201332799645056917075833839033920322865153839455441851863983316150987865860188886581179396675143278532502257752003859283684094235122970494156103504436828950589914706865433108947346841477669651046699529815429718271786590002411719331335096175112465678012685601226390252057338199183902257174992725218129401838712578062719845122484247630556861291196104063809437813607726468207645873302741900563689214004934745647724152140416876168322852000858282879967252639423114548047968594973511479146900236504243442473441960459117216598938038152730879596856100155443886796847863000502931727671846154914736266716927553801298905616209475410171132226557129547678143799828876335110714156183875545040211849457753273565607789095755412788049916010466407366993724171523229857357330856837621505256017263375552541383360326617751379280340492264638535708478071058499639953488010233240757032322919926313663237162399985531746516235492935465122854493203240372449563806916195555682389399383535139071879142477957447449739925307851947145911504308457277841013841401046189111685059198539822829693555545677999937621044311724978980159301095608757226110995815841365549997278601478196472242716882951188269108639478949788592820408492361888600380833027045389468776228353692394131059014873510855570962292123450506438077698486384195049549924981698835164663160507523214189994354066685609708366139713651193147850068395966889568994449809300799466848543927380854572857208606933482889437570270459985139531381853254763147529080737458210853568267301831621175064797971709732025155483641256807834007627089095145372791221832929405359057037719984186795864259657033814568444910178570734437551055460586351362902816889944261140488266353768918837789611160912655064053647465033678481256858477757448240435958589199945446472224602777333761726689294327647156155607216007544381451613172609017040833626762372343540964420588503373120957835235409889707958968561263946659622779422011095365572238520020557939207515998279676651660864015300954847007740791566450356772846730822203650540734307503573313093970934565186774819130966106826514991937999637358233403768367936232710615622518826239277293071663248062409105225049658114707477923337684145554828153748963195642011774961426157633855299344982373913668984035467099596880255047760734352627988507199012442411205454506727695375245624803589683836272654320848741383071964127514297498349000491908377841960943222277627289200649864709966928020292092017308675184381191910791236661719698494820089447161301648811698348896952814747283083650118112854049593504888508892087553473343283388178329781633444335339976121103751923287728546683635389804615038903344548993319145606223213645970610488090356179501614561817678647951688345349873680456028284414000400135758096653519542503085239738288505311030246872187035584732801642374318855663803623296557007954893314791982731517617344467433346125944072862784706405693552671814428744515634882681872726147933785058875505367294685473559234669307693157792168163395025710751091777459642864747716732290941254808011586793037229294687299443641593814800453354734192467167072435297975622709143808311971940770067885632392515335489318580845230845835373002471781727296644974867964310343754794733396212403326922392065993270342969983765456412707578959512539592737075143663437581824334559800595370395810735096137919157123684379688334706468856448606682080758634787598417349932418130027685431508825588706030581223498052401541254765845156807298953406887149473872260888288831762663410945753874027954061305298848323403853646444585925051259107091450538320680309796157817838291884695036488076351769245660596484765031446284578808479996170777698053791078658577847611991228975561721504804448892939517659507877878341186420520157140023971347370294666702488479869937256045925075360602508682777126160032454865144946799619083274152455877530465579856041059100023070229988166473769952548074201055566603927829807984249696095618917790779358023042043131696863794914742405109735685272914482330982960009101133496244669875412298525176522886764259048380926976253279011478951540070623183173168214492291824513812537639627876997917262553543678705512036776820079246874170204148455095706724944973455319381047893677282510416230312362371266647364722497933069803031597345209565765870434789310663744691139622244871469749325620601439811793637159357176009907615302317266882300104448591632013238728916584930712803747194595544588715366996712584336579568813713455931100382231569955778973232634969320236198517375777143374689936502299229897587620508866834052781125344751866169505938331491967586538897524674951935962082715373683717064017574507263989814909026906172197823468320184649699434372923785571832364683973060044330729774233904274350635413320260974241608150733342523010458182124718624141306134958867640618961971055337013840932023427291995940234646613247921002239988997402514947047600010461258545212414664989565717260355976142859621968529600700800046062007353810209253984135572152503347488032158283798705278178466470505230651014019523818330162513814419456209838113814573286403202537200843394425215694421167777082952360080827539396691613708845958885803640544995446052449656840506849160026513097633674919647812250706182630091546511761957928412880445076293771623808812911016964188790679568037101506277220321041675943021441559767413770665144047222495746310364990678931918438591189574419975819111822953227928438241008356363199902204123447411127777164140214206687656358260604127103825230130026546206006011050079288218470214279359198917321243165090259250658211488943239141717071314636434978495357836214485326719077377965356699165625484612119818536322445124367328602782191700236382315113530810877046147333161869690891133999812575164001527417658894224956582054533939232218721196518837731635462611925627775814191678878217274208922946223070540278283768847273048040099546080801056595072012149171453502170441552091109073069272625502793014900451882530254287059769615158430588248833358186211655962930188272421956391233227328496085147205352412031900141641082603752875942999661837674812830475451273492989135264889168544271787508887884607941304437358133033498888930397078634070772490756381008235259428651717097246770420188799995721999886917248774392556823958514755912354754850581799647939178358031275605431667304139229132765304833474595219089806121228956651895310343478774069781590521701109518443742934555305613543279018301530426535865486812036541322493564658049696647618747291788878956282808145747375762792114315456122175464471613957669070961891507942134657754139399195154162455648784247677526450220583068780607619968864315546452578117525015365252908845148453911087528909600381483834874571873858800435324076678402890566115776211852568679791780636171805402922801308347637882357542192151228288939268093262113700728637938410156550134862532977658011600061554423660041416353415648537466007393370446665616276792843794263731404001452703734763649570145699729874645559242912296880400290417596384061777656914329701925122859976434060380170999849698089308707191146188385694904079679665252679998333413318927411474341846429311190325690925569863074617983881572177784164605931641541957527910104471712218616307675683412879801254797479651677610602433407121047929694694906733486925504510557959720416336978660085779530560778958166456439462679950589775871978986794380528166210633648027090986943920324529352528125255427090535106727121730683052888653263266039967099933318279478251607286600467873507110927795684890461946432260571449231394400168884217119642606059906235093009141212393663054015709854941914741205306198812910067851715182319372775925633633880264014225876686332135328304285646083857003863423436753184812106833616724063566004823293987420211290151654253435334277284934533175920349094095444799575771576957287041568022943488654850467197385352782670798022378971432247772362220060209454194380336084113211440610110516172112957726455808413855184071527380865173947706685112779817351196342309934148406132020007481475179480365021120606490243362228681410571033105489855579240041493983046701732845245735212502860167021933299572959789591307997101747530325704369115930457132989837415251321809670610438032124219988551164772741861392292942059808363449088732666315974642103846572294611418964109415628837332491395806836716226541435716993327279906462004655161855489727958846266750672287644385376707129728938982172166021045565914944926565542522118474158436671381777604473633882693296519578849934333673716763607349950624425542289708999895225271679869447417690167700860636107079336838545156838587938101866774213278750139576664572639887407095437859311899552390303568167961884989679864332351092327534843652016044629900369114184145365954141187843178601831551028878649174921024559112147643660651195124862500971277606497571479942996684001601374933854450749452573914672754675470010824084024193470293235831398915766169000759440795172646743770675985535548048740575327684529994564926836068002890219524742245890763553845154616589742751289841855020266096500184575140129898370380274900797222517628526935037401811284320934880033244422929170579703603829529641001135704430713246476504207249377475516406596860015442713014586794609500119195152138617085037785564663241583211171051192432158351548588827127635742805950794389217293032089212106187169119532944422104614683792164707213671775841362531827324695162034322837600326134992607419999900030857015752232963951410720466770395190541129455501135604538013104137514717340281250746033991254271545167766751573307181691387133215023052245198180605983932477424792689114883981609928932182393431512607218008912796807644651607933776401526515300768921591526152389829578687961462521137096366476452751639853471820714481292432435704913224685461493922321594339230153318741296082422229167101981602959478560214393249222145676283577468445394932249455711018420765200559657216055603685523186106521892585943024548973369497878296342022964203739014361814662865630518899301585949793954854322128807260278333330012226572962720369578300918943793655296867328235080206931821540583779332415738815048795545786395379291408745016312506032341807398242111654862481356625573573262890957184115043179263420308136247436039274327373100985919473800500370481363659825334298926547491346216332613250161270295982622805333731597634343335124652522024591587284398642524778348700602874299343961460689679899071148858178023965261911998236984465078351986476857407457882840843694850874008527099860943663100453601303456494629206095534830219584581021573024670233117393158982034393378758189285623565330783529675349428673174041070132357577971782618305833017094738273722544085399817733078182202560105185181948884145081785261916486001816967909500376257284103202377398138118834787060252107788343819406181953406380613653862640508651234478211038145661389408425027229985620420565160911325383321151970452007258245871074649159236472262169418376505512610805554194440376084807925505882700435585729018914846818523318852369794661291726838702277733765535152577864696096499582957570910339912525832126005612755597682723781140233522587597334586870111997403397085885814903416445451169247065161226641582588661931904147904306771230136534354822355591857677042331682474132284651188716342258007625351031608682023372606026870783889362375684791260406588467941291163672585128376806814432881344811750533829583482835260393171727534197572769828681042764294103327001537052636709863160548633502730088935055103613877481131077794820165223876521249017498444590519244783887863286826843101521381473606015119690844714494327189069972604370217742330904217111766555386631719159721413949352905564251202540933591600373679541331912191375378395741258970257137676407326225050608289894398220166837829293502666776327769729795980097927290815100778972551182356034899334755712400445172211987560831917461067412879440440786409682427325199073515760276110375254893200351044472846270163191428657099215401743878210192226643639633503223976555264767312121147312700017231079242610215366590239297522543244543696463603150953232200424238576717560820203729724364089138690709636638199564261095656598240323266328080608365984605162886596405125722500261200869571041971749376738037704541804330323508794939446135218031289103926342718119451798687195568867982353195286332106186518734880481273476227983812558082732035321525133456410929798509352490767626045551452309631051927649143663828980158909680609006284883757420670835401177674486582683606828302558424886306959467849710651291692728303282652649603076038325277919732640900062935097230368673919316830019159967589084846844993801795346922943521512850883176086871770141593170753730427608466432656509988142242999902829718705106021918764924438786684464663037505752721658425853047317163782529931440439074632493392998944563469137909765776528229076222239847664273493617759283193344908788950641224577514003375332355464065949685008717259125884976017669543517472056060232119673728170143261393001209382182515113076371290363814704072163839769056324766737097394031071087595221843314484479910392291742698570109673077203799161726163878167475418219576561340978405070967381139009829790777086989277395960741705349785014150242580634233179906575293001955709054823040765272699841153791438273581964885323912008473748491240506206342023933505833507185932686351716507095115011508304234737443946801981061908112361088141516761110433074800110334999039562303208439018091487987020145534047132009602121509996832760161837793623916810807962920026647701920145164510795900391932019046313218673196903150680777831362055504423195658892197436778581256772394969409350281636578339276294881151402934542813188008200262035265804327486487834864329596417001092131616296037872116420959003265835413811526821597951034563352978525284183384106949537059735292059189706931218188324024728456065424630110636170993159143641191822629106102119352199107982264133209000165193289793769762485918690285458593238239465439769405267305984747537196401728885422283991322435962727047101146216170587822887022735320041036183562817673288615413679056218265168330506929365834183721762343569908874505318520950752499923275295166356618538448981103146818263641612467774106015876849571409490991799484471629397804821624872096774379312454762989728600281803649029472415789567762579214250072920398151552902928877509763737048953864903041042392034440960776208111402771406938675089998691809620949084030225924392606165342203529390049263897450892597370297703160633275133105493916391467820528407712325293018334538602192212350256129994605355864062359783485573772760533640440105467498695584674862293016028993249219922160176756663733716794907355227070445878483729674508781397643493798877964529163614985740303294268345208344434234318892487107450068728764495073949791670237574913027718137112615959402484374363282363611982822458599544932899763463119576182942631754993447176309991128404605843895237659978698930667142631505404913263366936397482134057790538001149692579643409970178122912756232796277156970537764689162657677452996267114885636839268829091571126294387147125292569521522008316239981753051740923098103320534640736401183600526454647186598649974858112586049497398825156220666518831844083578084331499333554651609046540302659906245412848620221183778279506120954597916006102450389691204925564506339356671620966955303075703857289015202568661907222131967721634469792681817720628626153925606289552428347229191037583665344903968541392827519540211766118472938444794838644118774540273339794956270902096178306688854782478568476572983274926508193957828919844528326168781858138955634444657705127790546143537434093152681959726060000052518565480245055529903134344211044290457243016326461191922459580646622212516436916395605082377686181248726295032570451759707782922903542216842042338328629423166425096048028654195075614076677451393295337432590992238902006158393145466886519741807510478363027551382059604324600528966523435556990101340008396860685745996710920800507446473971075490707472397291832220537159130290517562685652164722783600528844906729856096883478739642873343029393647542885760375395157323951015024150140501730663702490026954420236264149420942135849434003259613103597221626697265270616950011989924899167402519710588545860586653668595378550706767076717531560860137758308745845906516569348547757106888325864326079300144213156924949832033581671293475537332391391937787046452024507108224163236719740401179990674496245666920885493269570777466956132319156967004937537098126811558384066779192468926501060161840012721524221013628592278227942653711559897727791125556605387263551727566216444739677999766452369630646469648674948215706270553290484065640667650031029126301310481543039408363393258886441174710166256960657928219970567946830549956931366043012687314431675387638987077717044953780266899673831141501762745651601490202422301038805936432963767889950758229984764336963817513578647075686072034253672280314231339914151028799254433731458406533313165411616388401614910192874337265954284703965292511719800471553798418427523226935253411169503516177058909067876855127356747374624492081104925979354205690157972664747437994932879889612330894703615350428329817812858921697943463825290675398330651057264433692348394177200505749907154580551411384623446466447033665387443134095375011080252599928442727156905858757922711362930419136523879502048522438688199857908228847014475033128219984262083617199734520363260212655119331147048211485064366322118462070263414077034137853661108902520820790922336252661631061074289119660842316481332353443267361969485966713739185363167947347915992443345827751708445029484523434732307676922352952236668146559899262506548150729517443624061391942905898204105809623568116627992937611641950412376632750846954912047002633446653023265575011464954920411223182734136904112432904821194445755291892000550934417328849116997008187520558651232796210204944172627212622747987782450715138150342003623671051517228557776426669074799008091140541208089090971825442385823244803002897524548484266514902958952649040514169605447136229801415574110933765084277035948196333970122650811168046066344798848186639202306289418045460536119616011450897665425780041879588842572100108879272994298026264587198796309211670247132272272575724010633003347148092000081906475455387460180820880119495905077195206386713036159565681668817863463796635456972087562218601601234340816442367038733286917050025194643561978184303026493714999292862723058339197760944180007374233957006812549755514461977829887137538941135146849044248687556111447452121629583422512998940803655490526198215518530125392200047773374214158194263975459351117390824503126851266693708226708050754641724082835967808762466149530030047374445812032148787060765903339263908924631578501581415920354181677231515596501651036445452622686036511806011336601715550764624612088176201553987628031706403897023750349474910389766746273789579823555450061835773390281833551429357587501785554544414415389900737331437276688276734529452194752868661582440523458491759097694447607961323470903714345120116645357739873832335860298974203813807848641478607364794954551197355930008066218316235860133344490448134035580635710147848525905094015456222983464277149280400956194934334849721729075423711336677458130874675065290397970068151287560860368460069221334100003490986285098080602115405050517689124690335224103747255906572195296881777350733540177864366978764953229893834262132764068286633571911737513608845722602827195669772208870325852573298227476510621826765701942228164572699108405110283140239864242918043761754109942947841854479416894896415574163482719490524894219509424130512517138025388733569450872162387417408906546101554296841469828802093348371139157617019911348595530857358470840598833913992002064621152803923754826627527398772811174208562724364237892946073055318150974712388699690193789146853949067718095133767070409708247021090562248205005443676264938434207852541809360094833752725899824771368294761795997372456505683147527162724768695766021872915156126896824494696672713617884750256271283006890584972247049305563213140708962455551651173655134216473410500009456870496628091796499789029286460635312169212158590786513361292995592042981808955602528542588129466521869064687955548410305576162809541899605069937335348275815029695472397885764380860310577473520313757101496055914351331041178235673228958396750304197553401446049695853551170266637511443555121616908008103809914881633443308847468102966856711834566453152645781956730649379357579237493015308730137602579084262358617656390184467520250735730946872399101369506269111269539955040829785614153125918082000660060942199366614576880026789028340252415894279968060771251004525995294567367204582323176939273659083506345031000654770380386935780340446967379719276152944830980106421205257827747596255654146464729436217754451108389803612346493583519835110951683263225383040148822199953456998614637060148058292441823555386033427965515709327456154918400368682715641136184561001902279861910168477863313889784124416421090836875871476318202868031692180006736784515819226143647041453913761513098311565402952959213810095653305985370879412287595994542329789930435051312434872686225249929206010483165757967703877487093450150859025949966955719720190842965488431135504171852298216120076037396018405156904145339944827402638189444428086227250595572516867749889505312994972044584512045169109916259385187160801905199542002754202235884566389365072305025518495682096636165117678729305936655856176826634264349589061404743055888733696878776684113528965598518106843260316189821989393968189988265347492519987236256279532348386413412069801291455239408752360415336829720824821427447386708570775865498085755872201107743870405961965337835639107809840704400353545784557567536900253411658151536422018025278040056724035708943532164050490089586192358569932922565775046603953863169718623819634695287314635672328376755633349452322569378080075784527952444666930762177002291484140194230932377703442909300750229561460985309804686799446548496327313361479911691609316353306444803078660602369986830682136863301560239233673515216361064679730892872157921368177597889303338997401382120931200333549565657973803750062459849731267275847220632476960525711660415163447496783087730738581766967936908381040706257042356089835842133058090159234213389976410330813443333101410189355711595290633918010157165344724979076901491994161461342900096072145293356065109549643853342347550646550881819905008761554315336336195314310474639492570376430860921474096973625503980072009530744217666893097282927661788820420508212962216912139952749646828338122162541505124825882238082452354645436921176127841425982625423713511194044785795669889704779931279438301322127367142101608678917715124623079594813865504425965366070715173496307787291312952212517387997374277583779652731567365460401606977712706296492831187748631279328440220877236392700716787407715999633134590144541931723884916643062955497678333236854916644663683711813486329161920913354726714530823896482421010942427936368198646172249423209372072270488316414520990086859619971232762686892239962803434334574272751733662205810762152596463649499130836013169399829409392149798909556074726124492224002977262475740003945250162243166386808058407074926671020748967477945655603552702956985112072799290295956492973465300839425366494366777767535131803469317509786284313917912271468801369030014825297929494117133944274643689902633930332878214687608349821253475976130784328258009855821351023224646664795799415784394803835939766048518656156334048871267677056985505308769185217134034384012976663589220977616004656438485531636653142293910159835423755810141659771825900260095510332304454485069675977312057493834956413001169178733239949783575137737458501956235407183933353912058377428640457388192409680331724249241665789467695949761864855751620076064051344622008564757346182846523473044590860533133438459777813688856620528101385281943676832973318164542429603124687476667588292936101946420527923723662973864138772848053158592897932888480526381218774170990113869260393198242981711703259131874231422805053034235603641660380744018278852350379875992782888917620680945006515382577409135599431175208261160345486519183396295718108051252640049774676203129957602983803841154338970473404768525846019976522304351673163823526612732259807822661282616502508813478681073997220534684864325235562242476482642517416366615752530759056373575598176431207381264677453290545245109005518029530738819983441685388787781863625981126908962166040881414445545760796338946625920041138723926597898162185199241647153867599028976262376664095752826747490228666948927993802647745472901697700625212392811277749929558031481385070611640884847063914317094148794424587294886675760500161455676033189715580018552507270012517529276118569244477037320616475547208670515247433755983578611401503828639805742011908396833848813154348793207539936522296341929636539999030541314621465642303860672469799786845892447984861392750092007486896671235640125908805336166403098236607975992036512628011309561208350977126333465468480198630061021087962509456894382846890883292176170415533245609336572502804476480221276621161290001363068529666133212569104931858628372740736268200585991716732577314199122667717403703630740724246520970312019057371223836537127582839667774058376249585357378415466903562000964327227264166961190321403285805506451893566889854960104811349432258914237744406059513463202846850997578393670962002058734580247341385087928849001696918883426461361393113498430129684574155263095183664996979987573315051490428480848303965285164603636716903728507666243885184435669129356602040317631898313981110410266240306781396233273931701883768969273144013452292404766805701582752717394777977498159212109479713323299358704415745096300123025821751484868798949319428047710593710540127224556457403869340011093235835718343456688661108020898277210676777259092557633075822021276640146710269081215127423185590097731204106223924277258785259716632041281642150431303932255053109218707166650373139026876192997202649881223452262510772947141897417612991778290417111140946208840079152825962210341806620881463673052645769439435610078305471385102236659541958114934100931419386381687757811902204694858112986139879492849040758775243662519861516424155800525392553587832443551253242548888895570965875928324277930909943440163469251704309197568847252297327322187026229800425223330948841436740108725244761818182014635676511291031295929089382464883906608533870552556134884941865161992295101372989965463229048046510473069014963010845953689651680772422295373061166854817668141961875527179950398648605456565717364400650142581463435375967045692730379069994862585452420716852112121454976577354088606834494126032800652902651710641083756358286992406943957403184113251108418609212466079420964581575333711545756051197524760415086649274913984860329124848706320724612214109962833106110253471852635802486907377529017100879651588394754463038730138821351559492013944472035884378513900110484823298145932372869427118634764650277040061505192604770445428432826118845766077664450490258248683737733065014269410474561425942302905322973412404179476797678116826360010350430027964781964352965186138823393172574510952977816954786276598727221143155053219637449945959240325985434435106745669289777078672407571511578610620758525589350339915366201303735004138546260682599453121226565071912587259595595563190391225835870422913047512188266955814095030164660096472432178269234554277240933422778186119741132369856969110103904364599812790202107620824871456635541323978639790115938719988643404527346035275720673417188123631941931687009924328015918700870741117390130151414947909574847823531705839841214190344764152094694443469720459854929745839573391646540800020877826517221425060060482815477464319172417927536684026745907040678247004717721940564330775944184925500408226005727111668522479304565297329367939858641874660641046420368568576608656782640942415016720183638214637667971804841470020991196431907650357498896452277461031245960936075993116045493418129631487159435417627881455140879053800144370432700784990383440665939910398729155196513215648420618463840943698416788622500707470435378126604873496311726310690903545751967193524148397726517730892795171237562669280909918572735133799477803108559750987536156185239934802216086438479271159603710112978156551656473541568817506171112142167510188099673430764154572855911539936359333483578569271153349498451204936421150118582230821336640428326050588101415727691980717938362500978546118253255520997325766954254756176739565180059512344092085960874552307559682611056388939160526622864196191679727076029862025069624394333558448657743874857076790096894503580786468679267679567776265377539708864349001350441119601727484237012261536867521406205271697858725836983912613914461177993641767583239862028442092845578617742145871406421821332395886522796330371250739151353232075046717302275994145995513573623857904901679337810554710106835293610634294187392745931385308389437375832629532734036519432613114514631447974836018738838774329630717652781479101510044723388547048180872207753725333610807166020327181218132777401913325428245725430567974759978502359736291303349722877177606649272460983312927263089112671674413401085668488178637012301672939502382256090030489593934891236174647647466095505100070989157000280184279543155112252323158038445159056585620851791086079890405084886890268093497481709989421671534821341583063098522567800384360605154677128457532671835311184489330640393473324163646886966448147542215347754089868668304306400297530493358465978371610441815568232479177619486967401636975122985609874742887546032272037116020732436600589386949577776886234262060676751540534015084919957075649397529390055381094401406859326568823509178425198821098027228927750558162727941079750236767702950859155133112871252118019036213911791599580505645272700034299034401025744699627615973223801622799660799892802327772589424864281105315381974229433129385460108436648898020827367136903123242710867204972686481859448792932853484720694092386612659647435090956522123832060044838822309953645124400895341292666289214448743865510859741576997163836010464685975240746501482218681547371660710144065252454497714163567472537442790464324882068128719310293434934441448499541332536287986266846019458962224007427301054697466807836765372989577730931332731465464910448292367262300948142443463896791369456630120726167224485508448979074616755888403047193293245482621138489873073077863285616291763290158008706329699839456800177197290217651358804471725528442233232062212970922257812002983138774721542796833730283681010806719276786112182447874537075476381336485573548241925977176944942137285840726935909186709646434327833040760651300406198947919362513296618386591723637668105327349077000657737637946252677447201453087516316434146321326964661438436108974544922862389136845739200762687712541550154933013419367245497426756981425841458386895380271513818511444020560351149004496382297379242971460660914091027797128773361849223006236247002697524158183498315804190454973469148518360238421897019495228556690311522269514533593206942747155495185097634669954514333814917859612750828113481952599589679167295355445069384587459382026278423496769708351655572394602272517365457231894040408535469189849765101901848829465378644276254832089036318419395662407388818215598623699415040111982351421923202003163188363593490203194409522772009997747052334152152185720331095346057923014140118617726523702104340688865047544530092032963783535012499605471982679164428280421744146301245992930958251433283860615831184157697122409133817899869666474969438843354327368176940789745508835835758028079050001959130739874886891415092012131207675952355317336504325664786615645454472624213598260710915723282096884112579395619722687873688820219911076554808148210738494291365335371729923147026604425979250002210537710547381155323738205660040034526927288254365012243312428158065735417309720701576955215243812452200620931404304814678580645373091559149128921167625320557897851385164405485366497055566353308820193856893460224512803986582373134884747197508637227351179164654289949022747762213127100361101407212089510946360367137804644265378083036845987037743521438934055802577114571923327035996704216298271504185208516907098745242417864158329792228963278680406726323611293643109661134271750544162404482013932854072379028065436570366555366046216118361050936596567089428124180837018198841229947716160566092420313840186607219839687974487358428285288311123803232245269034959159016566591381013615351160375128655322421545002802782898621448327630855834184917936090066496166101207756598034431012418926818473146600233566648572540645516427282049688489000841015278108629570066178203608006241451527538197450115481505240113356917003053893886248098654803702531958072677302257729618431640084881116402429529320596639974010650240081448469205931608993638442694371842358288524616097800005538912519513079795579613422719850498967184470217514431440193715308465841717806417010502143429552717660860264668855626196718385761975366519132692927323732868467567870547792640149521103112901878859084999391106054593740561331652954225783016318518465729958421561565298745273361421528589088146088589033291119147612350019984144618066156637990105395134773973984764769042954830302241211140762281672430165315906877074140288047137065274895369464304425616413493138410801966935332467696452985809033089600975759108828365457192521668943962848617799233764150144580926886618437611565457264715520733483606198364102187470428697931167428171627873177480296674226507293515146712358273096208210719635565456332056687884686103762929732440438842356374766010011292245785051174985526936635404760875243370006689828493777456013043182314100407650519673016239010317738880752861437701517927076434459419334282177327882987245512014171764253672951837930393788146090536369309838788225806835377597522667825344701166472843535981220616210625812689027174826696904341107717893845452234462733177250529317035126585185623944874320025503068718895062594416675510025161861530589913584067908097403251201988877232362556158752634165919516227702722243208424263458312342990284640104165693591018060825038704352554744880135599826153661838000586783030984470012355498861835628656974488666126218325803007095865355185364778706520983223356345892997779764566674878359513420814396673827284829334917776600329389664764565110477219046746251203369702931279447108540352342052089186840890352183481467783103773380211861324013152170747549393925935927437043895687711383729747583432591123016425064650192776687060963157097390242464542015861022398756682530918633386273986581172729071936103738171181402540297390023410186181234713260659311318033567817446611328831780774588959505006857425274396160075505312814976043465614280238930956422905381222906037438613060533776194200409232076398549518695299966516572142030784346520654691199153840366400931367960875713783777530364556797257532338610716738562176060281512941382724769146419017255106737094078058067636397101639316889617511474331574418593768564278127071657297955225393222849825495014856901553332566894689633800740116377036993501319658152426961154011046317083646782445008854173648362196220483580976407906353347926711453072143794416469837779717863162989655045562561505802521112332982178438279449005420300731870271172614140808745117796864804213212568337726014112447300503992950279563229335526945615729066887419728809518607677220567465882417288060643184318609999639415010883924752046807537504139706796550349241598765760241451891107738187900272248644995754280845638192207707055054559196575018948855660596883090279474887704981984771228686423665459898263234914728748483862850562678962299849824602974096680201957064610234468604314404065840568726124862914594093510122737285654151393753176460991686896334953295055704131977576441898129179689044581292233081342345764537740334845265406860672651105288361877746549287429859926614740895686302071206831155570099532550798823678779950687172916251090035019143693372729466053622819753197489050864714044600713850524720104308743964287823796805291157067284567366590043659047366750024196933456332576599169043115629475017005398066587923805579538097607346790018281231970291634021316008787405403947242862289838834437289344453413751474349350569285700990669696884934247881598069990089609009544988003942180490902109874211138244167442561410176536345445332721340146562595532499413869882049326349162148808846845379030927403296957783479669940650646994807222250946690302320366392554483802452856901727623594352901757186532893475157196977761687805289422550158007785491649961835825631050068617446009476887362557403276836733370832500609465898350460535318201341532899901357857731811809037247018567480159859400453370844760821736482838903796259458973214660798472700100175470010299518683412206023513698266837222037851974783071826031954513121224579231854053140538377439688728171622056258950502518877788734935220389775017437864097311745160534564467894187036898287185281792047252911961150741619794111081637943875563505817383809376184059068790849145894969888727431246837629088514657918508900166102705566405699975077261039378022384053206022555771919249596563716696870808771824548022026316777393066487829370317818306782626989256648551814823489645541205834021902766931937151778723279890528604093383536481418935784353480955903323616304814509439620925859958277937102157203447166735206688849638610139165993705506783805876259228290704807018909655058461774237464504558643963206702628045219298835569200510696985159234768986176870762521594397503414260957241829557490456796515177896856143695936146035535753028477047194472800575941692724397638316069693655507469650271494232218569968059800700044443222570303372900144222764243964973488698925913845773498166488330983985226135788412207004822427634389193900964709194231417687551008213473606369963056809563184819184407342296889630718946740598422985239686444624321905115865942443559101459238976738735191643030666500151817515060545470126416394170419642100222143460093021139939247083718747784132530850280565704560836401750357596388776893517911786300047125186806825223218603595703384500460144029180022178245372858212430533416195948752507347482800641399325544763852702949494774178602997717071396133466090853476126224911904023203481812888722588062199657923763843404104834086400087438638482935525933208086676898660482480412668166078420666002505061741671539391705124165619678267625597920162230653424621766015741098027690583913184552158480527937081278394308480746764810873726276917014759226907790131158899517135144016218452583733162866417253462392100460944721283997786179994310885342665975542770123303995858446756679947866794282702288606067687756797908963779192579780093190915713979782573720468659724019139183972798283308926263448647415631279483593518030937423133425066797653013457748971913111419157011557383664124111165305926487600714901119870496055713752039752160466332682559585411766057627038308000501128344807461901479166874544192057615728728114395273978974325556976780114716804001134205431714611245601003424234935065685379536813420604774902589921355578485418270948078324705962622616142403425067574269496782802084964901010065868257248949627891541751444699032945662528949854611829348982724158952220530002904928624582803225072362964915124411457574294310845341604283072867160242955868230694532634090974528030765258198975789840569367285768169695190348877421117447034000697935894901460990226766409155951868789909222360900340851092896799570400383444883640703416083710865050995450659357611653815915848949268421517387036415808149674845771895683368992024570500158612883851026973245038144968011036264459648707722248237692965838545447096679392427697540779587583975368265306262235193804272396931754519739396401584687177628456097952082878094379103107080181868129649601642268835894266803238316458292442877388883513538373093538869788957477678967160087244269942397023371900396234994260228863599053594107339078850549936194436209152927005138465882687484249644736322953886734107535306051095335301659385731015356586997815430754203625857870063237309589668625649648992062438786358392822797744425939607251105979920620804558701997732878611387307541131272506551336723727511467405642769192014624542028111334044267940655075955252491176813866765515284536092740663144239890022507901017369073642268879000307089586511441955230549725896679306577284259782907346569642662604889565443112299301521385333740388032138527002349235660723369061553349574234499400712358201261947794910077034015823765622862573872882598566224263270485581361198574761086603509035334920172754389287459191453086719024364765461622546323500834932409570699709421773119995646365589107618009041280763452898200600120248189922611785748640660366930668185632260272311602536884154282079318516799778930545639546564799824741624353820674577193888765783368522534621117213136467979298473038747150678516230144706106556325495970109217562950109011814996659987013318209103157846492384091213914913943515398591395774752293859602166364440432212612419767653047810557143374313728504551819219750835547160539470882212720760584614262605413348574976047020824786723183465592460836665159702731029215034182806451776597584349564848889237783401415291236427834706465292635993862717665742061639294150721617998778196569171582829558797621181855856404308104045265078316738328539704559631101833127045266894731165423047321069377234583364973287030428389707920509645104758206725791231625793813430161567063912774918424746466537163237304101093982396557165347512240424097066821115787809864169208481866223609055698788187883055092869635100552001016248547332834038502765612309436190396312227890273288729038516821142604065636562385186098794568088269189417978681549554851268188613375248538382362596012470159587769433520736232049205787307697222205899175563293601840050637747246563604574263172757354281285513114518306160836938792868485659029590149012242741666005360176472008363137749470138196128461550787191756639354368832607723869104635778304572430658145216842117995155657145114251977661164948179428780498380681985218070789330913474914022627718909391892760677305768567296814024981427123845776241313794485309127261784320072822955452650891907179955476343757494507845556185383793222172822552977181539071652281504455440567733169527763420285314960170281089829225142464605436907639763798454132105707172066560064503277066709830537698470048609832901577633459637216052609037619917150851146535784858145796742929573774657947163035552733913612765116005289328292865226312257009317378098150362603802032587252782698022526716453667540766566076916669875916614765621236711219626366558336477305378965542237793051092827398132231095935094211431313382894542572149931787353212898791617699068145732265494022662468540197873891597846200679258456593532632885816323357652237709454335438444863891180423590506244758787717747536970492909633478200581074270562227734424637713614639035325727694483480001067359640925010404116396723066214987722179574160132911683259613530551125806401902962398080152646078297666917402360426491560953545009009032594522555220325755358508395145740874249746757981742233370094093183777606350473865217712541306882697381093859674774091516537721382057939207774499565708777102951385903005112034751093329396451336669322773009340029585926119158471195122487135916871637701506418873141918555793021967625461085243997770486136698615146024394970651235717602395957170225623604506773114489430699073858850730973095777328220336556149334687274131852296951889219588438334684480919846403456998502767683748527238493901520258719613211790012235489312831162569174393573681075285894200158581806877151837644517718467815659048301139513948331599409650309424550444203519707443244960742038822855759266148303769611442888766236423963096345985019208845260631427851716416383587348889841880961154670164456506435954491530927730519381103895044122331014190596239176182273781021726580556513772855240064182253584637974986996829294897490916761072418385824376436416512922483052516725088525018091967773832019172593976990631023751215045370925333104595665583443346553104272541960676307231035304511959833698114861780351553958898954822178936949203173512807292134980963501612558661277219054350953099503085960270483709982493355542514142158346243206834439719876859766740123043607754818389907800292255046014294170178840048538101017040179515807072958903531082683970944330271478119570744411454824920096112749010568797198702997740732268682673398586110566026596932598353829546321432894366128875003374429990262229727936192659108239421543724753878675301089661017168142036458226114630483140936245180576744870650517157587164448405702918266160620875308196799568200617392171224952898960888363586931256280782971548040484120749456521791255086850806742089683501570480488675626397715533902770839572194228553560811708370236727906009575096201164848487509006732873817313273243580221848341141163044111398946935975624788255430382382254578344699597073015232063131373326186114472591138526225925391475916024127719096227287979977255084459893816609287796566823236273163455736764343229651897059362600867494673443476557013723198338617277042782660814956905838234462081166118521343686101275296181605045174393099283717188079891824189680570013285814767240772756087603453940868215168303835504530296210839144971520826777304590066406117673586439505061121978167385912143735762081444106422211603083372481985141165467355628910351398596354068929607942498126391593797871716000154630502805470537580816980553218731925823020566200449584663783471654689420548300240170818531134611111029267464916486108008563268741808382918761209642221911515499886566325518298162219901694242422340595718601616418491563697031974483213098296393052507344019111713061912702329497695476414223737819837960252034782493128294497817346817504954222611397625081226968047552559740774176910116176605601291361400561504646043871559946595558733062083075943878424675834029506205591999895823089160917779934501828450732904110953250851165013618880173899059682657232167628747317258337729008924188931045968679824782137465178389675781139035484505836745550126013835256200556614257940135280682711202926722218438281994797715522355114867295184728401966575346211527785690112688473280458592928963800098825624626730897999617979890995259850568211436239023065465356842077801055258679574848932638973988281787772704088629721230249076932703840449965167120658845135935967389561265122022903541646551725865572413237237865936078408509538001443948965177819527110198309747419796574625676406766566009962166405211477652169524884556972833908819422746453407251106720861679539068963151665738299199171442071151337017950424291373786157422865939371959183737847621420670122218004217142836109128541867119953701465886857605644807529542502643207310837031970283125949972406688499508254350837336368324641044144371991040895198126265855415557530359481183205560619101188995437971418844284808425483115555268859015169330693734564378398338759143463743743789523353287903898322479707942790432766033190112277553885178430756831868324557678261490300871083190621391234260673963131229504716834052458903341616763775594632387024229491399758667418580992796999543336834106133116821514467138292123585707656593049900158900204545309806092407153079842089687796520535695030665776463796201246797320832567978434427684053842694159768525833230862797340041768711383511341037137573047046010858912656416544090703929454453660975888436175286109503718680684815503600161510231466194055274143049413128548364380686946863301003702493007421746696871229359737836043456705559721914534809657502488919897996700544476309393732093759713010638733680398350391748079981271820749893434722294985553703564266567186679486240667981223843344134481177358544184276852260823327599925976326152252928062627696995720258370051788390830516909268097954879714917250467414716613297623588087505371544517758434917573638885166354345563674488344181939168157537165342895757464615919953486385895926022435622693661628392025650890263229740675280282505481072481671748022272789872932834100464935214561659491164797390148577298270836688765266216155717663849003399962291855229296260814340578051243250917665915505249038896783826597763443688003707750438195015229858089147222728896731282805370786278483510405635499710814262766286951054289434508770046029127712436033121622287064321369716218427158484288140044164339295909408722855429675381441057761125352901130390650601071614555095760070711217381722260507289886259129761967201273545583490905253922198668703767516032848781043981604039212636427109406756118160898862106673489393987764296256846003172173641211085381447422724615091650120744654213404330286924345376403273202832370797491786251626894393977280082627729482855966001783434723150192019220416156362845059980534485739771628055485211834815840027951959764440400401661123947232605888380678507239518332984783624511357683733091234942979938152999710870456933523463086059747238575925405633344840426870239968821301348845654791910088380499398939530392372508254045424704656150101901784184403542611410636831668467120921886845904565531052630797409727814973865305203138781873964561372335406036108159651440480823531451996160845186065840829946202549250592058119647938712497671257843598781130404753801385837755171588117888312233118841126052525626483703244432294652877817460541290092714290915945778296251286459527939124641796532485643634701149528653124560558151475823715063346349859780002780251688213584615735448996163517277000281522777192482983736833422811178043720470387334042296675902477271421830175454466524153452299520000260469529095848423468149056364828727145643690528610383979445527752272652376237604123096707537087262699174429469092974323401170036507553431441094701672923747785083161811289121621084957843152687348420582107762156464147202423374803338791233209378144221580651808524357497513396053819327212420163632063887601634448184833685828432684520476803354802493916684936788056994300127364576255756414681667750297679618262490537415043647264725209391510278790434746968717800376125430235334975012599274429124018106083738654634497309477993456544618197488484079277149673343291221700851161171424389960382101665366852456485941647966450106234551216946783786809025569901419518808950217122410489774727714986564379832737004593582174156733377883282090104919836728902560662531643384886196865422290167257607900424293217609390276954051612078127468971301099112254857807183189048843292989030121011574338728305770193761088636475162357541254630521809704447737009968695355027134296946350120264555629922628929436208122519830917076202119919468041162001126919823318274195519810717322013762054790087355245932670348417262366649502086184407656987109029463966175187942735935286202016535803200196790223226883207032345615950813017990136604699948107599993944873781523513947503600159788688152374180497292299612098793662964265488629572548466046005617580818758793324658999584065697782927311122781187405678160609835721688111351490014952623865540066470897272338995893200062648054157812081184767989381366952460954567977707472217708581337386766252906215774653879856230259054069822810483812259742833911208817350920381826737414714448545337485360934230654794120447199910181517231364868451237346236137299942181540926740986947183017781933867680516635443821560943939135775938250034636256429235872783250276485298125030541510360281937952518936965149996112928322216391817215845710399530733558249772068180248933165887864268458819724634823582651773242300705292324385913171291059241825698015306582951246771554106413443027158758131791451081551563589949527075637808046785310332074877447918528737507404376645232566020663831798123007309604654222916947694225735572133255366853561653477543842867625712724901054832600465247312104148292708079727332198330283590662838821288206431129908370271252500123700321180030814972412716722695582266872178013386448530779385527711464979780210003314343749848635537640078627211713807387321061616195739299775477654179741057322492167974813485591665398897954740327341067183675851994617000765765946456407459829096087208632981526944205829994050824546790046473883741194142421947929434437679398541944201783850138333483859761813055560975825737089478945123349145128613368965764498744289986825385861332396770354978974601189426375770486782241444713018713590098156462328642228879573426954526716689389172546701424095016198025765625994064097640465602017450783801606340714265348324459417588146781724751005863179730527628346191385166886546510331386632050032982010060794896422681247158143383319113223683408864576637565166506830479080969572669484552384587058228247884717492827105055809599446266655333231308295628960886532575584850259168880305860590946194766334762688276948439061702374557177266632734230249316806066637142456429843759249872935235298972693632857578689878011128541657176200791628326968107299384397650628858281587027771095646238340894509022037011723973047247780991106329475135654693127670832922015296251227475349368423023592031473956141194531117282594557283966626140137999549134445046683356094671936779414019392693719701046906583849274381452655938399715589973672444691348107274474809197334032838994090237383218476540298327353717375057086548447859555973897570462950745381863165964776909993913309834003900268235332902235817074082431046916294732976298562782883567372822245729364552459536021067408776582728271900927899025580820700339131378493953869719161675253106783396907469073810029110744328588263525748588863210549256116152508128247445526984130426348225055857828777376038262147576638330856589807166120192512897393080745849748760441900570830150879550491590646021414362335377321690710132382733652220848684478989389622977855611187669057251202631640474919010915010806202842743220382314873868618962625310913314258078606042281872041313856110379224434077227931024857118496319991685976100779860925163911060265588746051236278436872237217032690523535403664468685208636455544982682237160850658837797671978655588502784772950870283314289376170256262754114162573939693503833212496666305570165499261302541938432043743930817341263074395545205501594388064394695457066984791633539006485905492710222991974573462006830668116717060019258584393096009677547697073842989702997274917581221161123967506380394544220312589906477307181907367357866655676348661791913383581092590963735756813314468465924029833130694677530650435950092909724978139559715878749644560671647803874158720794118592880361632531648993402643400333278484042098456602497202473714702581810595759107753314961683861463711913776490977817916923152485108337153667900704024191263126465068058163137975792444082693443340139092157358800384436365430756197443926020573363633052909531693666548632621956446147451922118934180665082926484042545910416177011385197404210205006251237514096903328666348959421963242864851029543685505868318549953566139401760264950731761819507989612147491125577514088142115262202980452586541385746051794812464924570862682485933898511317675389297864354559756938620788782340645581712762656141667305824030036206757665854721155556683203674625446706713227188685422371574583623172029723096912320763227740159969590801445353640909466393556122078905366348157827443341598413603339646474623207260055941303463083388332844079384521015362024054086631182859105932410697172239532670752069109257914126223559952173483660311262258739550765009318151761077804998892973606139829992290306611075360637823199687050654930262869917810865415552120930123858976039973269135737458772826676481012738146625124888024053251412422938575629290393396627340620359255121946846315877613165190531806199836185827088306152997611416011145912102013484616158640020611534636280668725805429749818425996427236818596429268561200704285946494544074265165366785370813640292167814734773538531756849793531822799050764383030852305428153249911252157740471253214889624012925498331718367795282784220626273990179418503457675617195487737055974670733971827132736981047609881853300035771238000341614186555427187397384902665598246100023689299962946844175611366413317169714165657866428697704300401520815041895439912822537740767177844218216095800301881689812070653696368155574350083243776792186525617126131939867969414219938949851986970512080590779680023227741748790058754419692854886247822135449014223050463851197774672216246088937061805376673591827162260245451223989469071154386030547660341091266696001067010005451806852557351419992588156426964099456239336090012380007179151710954880766707016870101480584807916552837519663678678135550387889444148705971600884945547737221315058278025380691816467276548448259503875608702301123699694894227004638852311618065904897642309585793834175650529362813401445936830307858182005143950867060322538443395074419691647605123374067378763714560978197868209741278685289737137876204286418097282905340263375193486979024113320557427385125841395826330980212377658302701218785738117800677386345007274863930069097074906560484226135644538652214821941762485753558852254455022434237916257612693076033406304606690747149823424107880765350948249999256153887468920877118559976707363054418285629970598348185980500075345550864146408574062348754063724752013698608195374100237735993581820007163416957647224477637997040279944506028531792861052531872586704819735302086499273949433003150587501375237571278051465827526384579737306348800978848378056574082754100917713277941575959896422332586928749889390104016527137062334122936457406636961906397989498008189044486266103369450742757043639703447245054137751285000111576050845452491786575165849192965609206134743267803337880574676735420777496548217477976920979933385714069461516110242369175882928449854487357996988084238521249344325903388327418451852393321465974483060215588563216491599052286418900686475351872502441989887802944489600954853368484424475439105918269540934756578688997350876230610243534297286085706693113540821233401486906109691476834960919964046417516313910840597691935162846109104793149346422135140359091336992985371919669957147030640102429531998668337616511920141053587367664825594158336168980353699411784084206469045275338656325630288691118902100480865077314680570381787724127651935860065659538653662105125450334199438309254503776991658497403333403381772487092507934098804444498404061605444257611651260153423423111070499149343863167032117411166719194959150078079788011179980135188232253805125568168185250190987730404688967708588121321338151425504132167214284737538998052551735639648638506347426535017790687320956017339360385883761187520338566038615506263044545048454887433181392220241093811169986298861833742299266277856685263968726586102871938720697903152588092814588491679045331981441887202976743916835045832367168615519465892080567646707770021776699208109071015666743812259091538037690478113053942298959746231275821598620981696309150932930897338275674377282780608375837521377204010990196962979258410100753473308581113684050717575966964454380452999805946956240009503494634045263722333968661662656598136034967157683751850944094577825534941418624574553041175018256542067603065063368132172034554112019716397591755403148567622363824537531923897003281798027498375812371841785718797826860285398994523402434035611662817282774184872807684400445298259138492525734365396231131701959078530789266664217672999947859660880078374783986782894167183461263851522876792469417315112965270178582839133242260597643714137054383720847029543219885803914514198041613005347127284495642263062716909858536584013260183820838454746786081815808122340679743042292109307962105572283123861303942464147680396136423660716237225356047709281915936483908753954849044796053793752809920103118946637734541707947308987051014117870142814015391221793415679197358844376498049632391460514653201210272527247830406114517588192648578716057329088580395752060534229891047491380322456088494146135394632320797820956044774616550942846257306104634137214761366124656778001976348169080915079368281259617498812707262577857230958148803019087281696028268179576657090357941563694252364087831537240566331712688987964433932832168813922446646256687306638842795240514298507165340307077164938861940360518690814240511964548380263334607600495894305478406554933616180592887897665327466596401942920355662733616178866553764488421962921144433966124727883370919937702733897567867607569474900906598537424887781890012499300435635563894424775295063826016645931770711594241214293391274498963129368855375284769398839960957370564444105798993620965022292340878543787554395271629427752589665072453392560402435705996778716963891724953567510701640346150898114413942366236114558642073571084839080295723325640234769697972426395486744439687904432051192470675030758375971618750740342753440167096998839449374640270253065025039301499447562250984871342272640724605087601107705426120004869276175334067459100827197984949756141199232222457109910155841367027727371644471700177704574787619542933862341094287195560913894002927971865124743359956732717069032305203412092765915683793032404345161100942812409359233571100482165508993956004921834311667243489635653995473086915346601262656623115561322620667221649481513767185786560789018260525108219678460013167540090653698300790464487787930506984517590048762164154193737991921659181175767535567976162105585772750665937534685849752815993178918636974166858946622784460715119780355910297806126330557377231728782751726715973795182130623635534697559920066846169407613393304043362578115411237211810389876427383328643164239584184785487874108824371554154428092655815339830095459762831230064042179507270740374827972793621816044029544665880326531660557304044265570233803067716176630612534901114690338157473395378789978686257047441393749200421609554501492101881974121606041594881260159072547177015512705194071554617895919943114473990996471500333980674224153329584784250528834496342681655820970129483378265924189075067202423163205018317825075787967547606846626712800509664527805308964016517653247077361159272957483543543826871498426234298857971837416998578909604626260274840169515730910645034508044894204993055937115900157786245445396480054078000669800734929362369185744742428068157705426968321422272649017581909280533628097888194847213953060996882280862127107847223199942627658755677651000305299544263385675319782298275820200688021713141852498941712962208122012957239403228208354263475888884144470093530517867220848340968199392095500581428536539493663100976184916176250771606416862201139731858404892750834878487858481966758105578734096231478373130673211914350026066001519366282582642223153083216797402464419029554373645971381892288077631096374479530763275827114603243882695242908063775017568082325886840365276178170077322228451251657666462468066403099756867135378248157529130240126491023021213227783686236475011286975343294223806376872048222228354851517011196060830021621970337932473366621905560178954723672637983116457905097496355066136377355624731125043149223638740251733609809767099800439774935371833755527330663467835335011630091055077568785531184989546663326086403709819838199799903081572133931271625126606243137974843544438248797840830991874441502337488856277784190776651117476914089311608087764081946618594052223806148733619909111279227874019043994796976586111459136141147280834424887342612098960375108473151309076838886352890664207429352704189549237214333233173580003586640313117866349290956845891311458896818516070777433268104384204417805954022269000051633795730537867346795659101287135293058880970339702566273811337475291786519755497394111086890155207923860547775390243493704803231029223267944363263742605292748027000656354561507481688386628429688921187364282903284463436501377955187631379505500341683924409555152254314765727112041477163854034374952446997812599516071579248006953158104442504846372054936029970507389253778327839837735611362446476156903480755222101847081343844493021547365054555689777902733511456567666440889646223949901902996542379722263068152930821135100522307772413086719197025500852288799857356089151686191148182534362022562649824372304013159289850568293667059387385332986052170956363714551188403349276899220174304398828848090579575820158549048787568733204474911456919895983131150347052394121774733095971413830097278181169165520896566780163828714607849531605745447445518028636319841088536258283111385720159239476414916395017291035124068206492172118972737574918842924234422295801459503045290902840109753788901697185799965835926005043488043338857509457376967419648089525855798204368475809495423405915851808998191356573750354484175028733067402655740162877796436663800698798102324754540900341413685914083374903976547821452277450615632581144913457016596892070999024198833032517497389439509181259688478025740052415358506853427409962364977264059615943703186165013771421391193608227573143579744423373519934146171263324238815162485555050670716140745958629409430066404244402545126626079799880324712876894056245783344793287213048723952724798840987785765230440873247881169253514888836075653346557578723095824644039701194676361866744237022315997515943671084855143720930431967037995236527622294067125526552597791816571020216038561896660571057577275249454520639253895030986099022448001457668715157633421928832512052960780432857254897728369230508611621047452506040903928544906961615793839221938419148759907248874771058064945685189209801695837661598682578637482856786048516551303509274533607149591575153714628162423185597839787546982414863535175852475074847592064899959286125778080187858750848267354091520115996129369300126931021860314124542493321089008847121021554248550333137307107388405279903779266148751776859691812736220153524854384800397428820217625282907445533298960029577623053379340199343171589870959898483643741904097301201685045848379347220749271720369438441615522473965768102969265833273105481463928696260620163850438358711934493986409892487376468652048151883178457095410944742393001670753789989081368322001314561900332763550010467603727531552677575448091244897454326228160225768780765569433782525099344846995170259244264947084486701081024525031023374416048286379048905024491391250268724771323945733654806126193487295195401928828081275474527354041008656523969415886123034052842618547958079603460514006732076363888256877530175029222385531708038974893446419304278700834900940137015753320496823011736514322485391907259753029941943988180973280608075593562480668588391071446695694538549473427008672166076221723150469833282293993207582808483249005885293221580061970857244668839036791571812286769805762714935224210089421433519779204247979416531686437830025458209200833084477596334811665652765579345478060148445779588179055053984819419919812527607486428063405727419896068346603593220456728293566524421378657291805104876416522452452345187262829723050473924699942826742306771840125549495169539605544996076518253255382234671019880937359837977978082086644330245435022773648929882848554654432586454579345871061045392357173982608664359559490711605730705833850474510046639978281855277776887880956237379757862864506202548820271457200719631951727701003038208425166121613277496288536032117339991795209768100347332298249742989448865244276008816574504440372271952135178466697539646778823264124993444884720844116072059124971530990084928358578224866353822584014029822378458618958621516960605683868097536001831487185747080650412837991706847964749518666409926781243215515936127510450260887048929340513539991237886559793090519789254503574695786404093485067894574266685645463218832921081579602756415056953433338014965423274245705628608803130662328674534580426345878641316777358979493815119850301232567599135862513755785678769138342238529405106936137663577439715031815295715906515370834275148092152403991806100330028387309098205290015362015793962207346088404865496605078283822726975686040989786124264162023124840104113624591939237069408776088726310275056201078817085674865386848293906385581499433064907523516163088176491366434994586950426912883315288342702544294744026374262841755848721419158688300878314351451106482404794505893071912052791788105628690477248096479040045854330580273689553206269215358496837346376747901449870619838765240294947257625946717297518868673031974848950553567982634706112848704433667635873560777269205681809691119994128191256289380558919029833209140683718779228805082125019763854968994995343762644867279831624880837014185745882516395432365923666345271733415277539108692484021784717579546713393755644534896011584157940383146725171102810885687820386694254975476278896000754278886388630750186998958814669908563952286988921874129181640902749557215517608238255121450200900551255525593151427662829065681254269419642459387706124549594627204818875906300732412956888474461307882087814090496584116723889490585262263269461590784662670186473851949041173737512858619494594690532883809328346160620072704122208698523183869116541905099849587755545515791317194648759921226028461166845763508763422610225573482500934925695136657628643385404154911155766716525802514352420190247274468141369798847723678519614181135806204227557454026216407713009933796933586532003367356468005864034997642303983276089782028273683408387388947772672194553170844360112390173022515572220410335125306475349262987324756692925899626547979460720373969896378055146266893064253791482621548011579278182413019466974687222542144735604472107922465158601156252832025338397341701299356050134215033333059535562629766341136610734843864965912092968417789268503960430213350926642978144657348522413756485284384523293434120101527266569934657291833740238338013292286753210196253807919581126558151531873846228202422161156396365704517682002527855918315037568542278811111777550395251328354739786124143139837648645792746775338749981365319596885375402626228923067873810959791871016523513990237826089806549780630758228055628134979326030157258674072788465708105396617487433583689795532352063342070539034651663014266617985587065993611139005984402571307370564051568960926832367882276184649351798801381501711908765193207020094750353262637308119618550410950942297578055628109649923524243633393607429651734278950583816163387580240261202322437572294910673259294623973856632609837405076935172319150777217865595701201538381494287543662322652917514889309937299031497580634307428491711614788207963995173302726009796287263380668735089006308446418505186380547311373780435562305658872392683980849748751370292054119886804539424260836580649896619574486317905923415764621375174493550117552261441621620393733699209441730698153265828839793126976855725019186620554017186740742246330017098002308242988104684359809259701658795838704683360952342049161562447295741963820097766021606589064861791451865746485310936203467952240891222168644072707559766265852960897603332231404915228820024349800050947762282322569732545027988920279986434633293756012868362746847798064974381308062013141340689564023604249172338847463289249437716716483802901414483931755878825642096499152598545211333918328827929201706310297852079853157751730461781701214939981744032347734311269418815089875782392575918659525899770773011342423429292657527697192418063762223792042948967095776434144818567063648800764502029792209535125492586808545922915459048469873002639238132022202176523431895923012949411830583130138021105351521989237226313148456702824124055885742848879345290266916473785105219805738090006296492618300671637324422653848326001498157326167853216665608578207129329306207676951091237249367550257663512742421757485325122204474100675533147190571177458052982080633671953122797954099584879041172434889524165521573185007688281202749639604815915328824576510486062784687599194256089547455716983839374359595214544803721639944374456134446993329407601917757702377216658112346443575822665557977439959589261501202809034627136861142252414187445758514046943120912912499848123398432627365085067433801148175816290431729077663366202409741541683700240862325005840616219335266660304483670065789361339238690256718783362518533905485569111288544476431223141178236756966423426400466909564320829622326009215693005769721855076328628100739309226229780485594294886371862146317237668149353621382195120543874687996534749993852343617099027031835239341340654274333441751639813635117831307950332109383420354596800648027585315384028223185335437334300301126414740724362095315687130338446511204112777027483768679984169034377494004467395121926243541814780496853043773953312656325298145300415489315262338919743698132652815020349077171746906175265170881170524498393014760463050046036539141255142898719024005335838959738490037008945412969673621295981753598666013903920364510805286604547809476977496476853579934058966452440305562941728872796526074618015272891499044644661515861071939865363999427185473240165895527889697185786512761412711976444897720588136167090410729953983989254966943466244357791480416958710680137048871945346960415619512882182465247038306987072027137076692220702309434506566227875032354950123641490963136948049987109397119552543067942438213742295088255003053203961901247082265020435860658473388699624767466390725733250502048645133108396723486761900615938582013059667361799940581076199023599020830408939781635844494837001846398701026847211632038417186855328816471941975748177994882526972246105909558247878625654017242543675584145409742091454727079588169961876584107915641974626693107946918433437544094212094857499460558474175949685092458771716669693895885596396490274928276317953822397653063138936799886128917537529668306956873317324529069894862621184037024884739770290645055109093985613720306879293421244911088959441446479704565313545041972346342387056203311024372434927855355414089603339433186315140778053587713177760923729226225254921834340821039814184339433323259564316120459603481289939929382085020296633661516403244456521422539938182490130688395917739714172770639337639000886560806345275343790627567178649684831889935486515894664328948983673721183060309014369496833643915549323861580422707274383243928819549582896412742065614555839718475211341267942876937701613716060436141245803364247827463920562810592601114633861209634543897545082981869450562339977608848280143611393904912543021860641625002851695361079010949359735036303864418808372465424313021548857985267239390573942412741123525893550425703723057854570292536702806331713548778973673528972781568513403108404657638160478994510857467546566647988044062422065007157220355050475281638205239052030154763878719871099743659504650680124383372042977423232027941410629664260542618951667055374487831282044604244002214057271012202754966967454044064606535931404099056219728446914101044678920730856069210014976665880873023559909174774160741272579349673714667656374537713943159154707985875560561533436800748462913138293256765088118293157415448662792133065134876680558581188032679587167554195750307079227633157411467538250011661463467029583389688589330542955225115561152695790014055168713799161356491209438980383411555165941726114441673096273492995561577069484591309612032290817679868458814051138298495995571387810870220751092426046214549071907281142166930185784849351065369044292061393884551871495733283582101038453073366160249154625202123873382191671245013349054359903099180003453373191862440680690340203327114173702634331610511340025054984818188257744841338382896276985783286153462454405629630630039975460346062603518809005139280291785624392167042020314620419938879734158910471760984213817263942462984723978838466255624479999554906727599670274623334091884802188583672530157429988379304831034448278657291067653438662755140132262012039172828593385379404200229006872707299227834276632870165694108937771716193787676327556480817125313033193009896818235378940415410656822209090411331369123348487534422872484330865538703988652643586833711990366892431558339771412824604500490510655349100770188440713450786837992016316875825577275366266998902378559093463906387971706114727143688315666987142861137934664964491110908386473817414887318647256355922066078229530718405011288903989924260462041057111614179061770351813304992133834533116562305832387752958544240221028559446391840923888193502710894310991120375559631971345677277601882025428966163506651386369115186951681740534015343987391087383054502751151661933699346213715728921870474193873695789029746287569585359297892952708445745541533822878432761281777599871672362785479190146660695061462580401962407775543769523185971943631555470171824707987219716882506696989243810471373991139008129738094081922971809475487958098496796046521580989150749924365332124534300294678172744473007349904866061192843117173451682790853816222823142099910419498367710447959935620517175014887156469939723190043457193247375208043865246024361412110439742004260754389202050364399495154200247969430593763073187733531729994479359853784743986557552260634949805174786608469557605154061656275646219486751966169933356521927958835498154810823381226495618983399520752980503141057876681571112826094758113944147867792599144321176710094837355611837980197368304134566781205721516269040042549234444183265523284672976537226235010558086735978056681247231326880900095840402880541606446858311182439538717328377105264604489233970894556709040985588587757149954826552751692789499456188920788738792570483528538033571375531199275314675632453056232597011448530302760030937907984503351127205141157364826973510726686349697004845587657263870416163613356371456210999488578345158594347312083336511875909214015679875791613368390160071079331018135905292195862764649283080065329406103688202922857591249703541165126970867674745619393770568946970593739200737845270978810879971758422582093042525052146043492443491493258264552957734717598285663760039280519927913458870413912942258972339701613553254905324504820391971593089861767577492677837216012433490550610998772444869035665158714036071864508772115408268187973501059493697612718210558019144179619405446961471737496555743629772308280626728304876887013123971539611153172556300631009651615785277577496364471265135017888055907093309599454343555944994409934659498367721888401956366681435646698739783971387474651064206089447803727486215388263314427036203643207953205690396791479480964230571424557613467618734762874800037477794685078203015651060029871750436420917011302473810749677742483973865509715141795561564273510937075203968184859974485412953587118003037570226577989300580001970598460402140454583359727765666911109908755123768498853814677427682029885580977461794385257098159551684550531628221960551954836936386109998218975339252109106974228897330695177724549234492033563382744336879864010031044138807735680776192832895354946040712830015967245128257211319638308889414635193702387718727573615399898372628539669210270875576249001461795242947385944542396583404203099654172756363620337952497464148123704118285485213776771134123346844443850511898518972680458151424344052147578072461368965843723176627672104826089449064713582955945386331774420766663067489501837072950362073971301617490600717404259143109079731065927277291974664851192712413784473865132832445386964524765009520006654614772805720320776569491778677769113364927166447169755130261722831196073628349340067735792966407196863048438973170842623301210262149523224042478554215974812761805876531683231044357693169111231748136840266171454703107653818428429504648998641267591175276530236922844813989082593985351527251523893861533450008017210218533803511995959128079037853512395983617266098964353611019253422189735822945657214894199165882576533689157684700685865841622857030840931189777309298432432807746021762312231105511346097955919782158257840065371400515841280135331434988173301353587637531450269804289024501140525579509112883959430092732500922010361930841026585803998300383995115043795353706785491228760076842763465589221187921924029125077842454678919832911343425030357424652889287274596095371660125053344367510833023807140847049393510601568977175162443398617326935800133647934632315324928659521921615448489949117086225187679660746579098893159875144315641836643731261851936042197259762780797069829654715548344169818619032610752035134953811247212165181157212960054068095051148256336694967668537164968140155309165942024550425997088131629302133293317570459103190466789281997256474516293793559382595949599555670939654501436813896856526846150182559638332627646067914575261414794936212272232405568430036780172130906092952594613529123821137380419985418179987313545697185220823464737886576660185931372644830828034260790265455347484045010619835720400327439195932408839592703557205688209422643675876619195361211825912312810828706982239134495479322641649516878365820018829606264587921858865814904555656568245885218113647284569125866057394883085435756736931885891987590229173344852810017298321523413799087305279453324334528091006829597413241853643091061847440407111895746810007188186837304354173389151509462499387468885522865320407493388897363344309452070280501118108442427404753582348869370085603622210797930561174388046047601746510086014017820383109701595603344845511093762611279695828833111615946048964930283362248805004247974236336575523320554553602770309833224654007044474914366966749335123692591753280613346465371405759348386710854283263025720257404086277386554545994190889571711383665789117076991883271699447671017830565230933696978009382704967957889872014960379463756863186397099351540585226416317383347624469506629585409327829949697264019088439345323893225236973028567887223154298983244659224424340167348070850372860485699682390255897671602412020389114698140639140794047563193850930945330036990677753673734384534951693816856237777823004785271069022039387862137024716219407675335418616460648767988101504834656340722995980207836612938221103567292356115059646576327170089038522457732041301045920532234275082587313665876622776078304517395113328289475652490604950626160342939448527908802963011283922514830391478425068057585313404092518052853463840110221006022262319134626655979382223127038463702548208279998078964269783215811164715588498453547446163377671493466346533444473672361209715660323385551683860588339252873046170132444577563850809283534725914049683593573814086043081271204444755929593204558577565925047500115656801210382734620314476776040793897139350706903687192216031106641730430108308363351272552191397190273969891890423760935454505743726497293965200179624294090020610750527972096148283370286999550850674512191577409578756326039586488279672291720658264873373409174563076463595148064453917186015352261087767909931240380610040368681954842919812937603069941887685205576305830269599666271742842603498504261096409681550739417804363307301271558533359213159195560073703330660007600912375260518372631037826907624360884297874172399125127139072262823476126552468873458185560345049598963412061554962221245633160476188083429457790972009264371088875907820762781015200918244476473445329461869060986792644916631289132049276812387911047724274469587267967628367379990380710835547650777237771777883835660966335229179461662068396168977033950506358456138053737851803600061924138934995559927160219507042321897920734211226122716928358472727211314285423405577139348159718048539183183801156699375225602990178529529382337526977379359448898551923720361060146753105101564558469240496100625724788764268168364511685573501290920685380979290128744459297418655155334173149830235492097542496893098981459846571937446367053225504762902597292591078316046056301072584511870494187168445821452184922353071136383747888278030358856256070491678196776189041684850302563086148139524023635817519894140912996646953848783362036823228540634049660847223237468104074928029822758693168435415493418245178685153295817314272846878144645739583333113004493594816897705045777373448796727192934699830360064543266493770414800958244416344101078887753687770418807420068506989478340419190280228429318026652650066502178284053323155515756710371725036304888026188566366699245388860899875151963931506043928341076066882261613641893485716280590405054941788175317583071496470294908636262066975143227666574901433430302355005884122776001497329821207635190141615567346325139833131054619648486933598949184122188719587266163699559762988702842427623119026915804468598821585913095226119720640971744684870384250409599848578213010831088460334690407949234949770471247969881135246295771730158430517419587902010712738022977195253144090144597824400590547559749665956908418969988491879044674664485364289435658394481201416025621598327668544203161209840852610137933262638914497377893639967754733204357711752815065452945396446276906955568937356077267827226484645864109616644365562049905767853506140274385255539191466848507860405806118874968000996106273029370682022320226326333185731057878119829256165743345206048414427747959250323690942352883872723265668787234313435309755750674311680901296373178689330436671856171533427354291632646270966100879115549801685881613039535523610844894311878531140506209422371664783894058976446050009297168746808746601819999632989031237878822561729152439271402870728777486532329723751081518740366466148478079699954493249699847316024031537577493721067533199949094267996484987775608585178720349447426756368037703528403190741055306642322544014906375063777720938899487679128909677832044857248308995383671882439224043192226261600785445353774970647819840514790749141888885989762764842099642100273123349016652282698794012512473148024998195960694034666418498735820195675278506607190547157377607501620545287813573558095788805120692844430953828476780368072001854871787143929386464185272945691949108787138988451610700899326607330833568267599786710631750125127837957617514378995029888555874497577608504601463339380070545519899386091819668637077641830115821581084651885588609573083798332679092697492544184968943449381474227561798428962903513707975058892439157391866442968790496694579995477773795103142005113373828379465576848139519122995169305504506751952337703304090954117737833267444846871109922271508199186692454115325576783612373378029971507714279875993003900219511611981552604218441032209555272194138082300016384937385546336534831535284299007317076975540892953609639891184801436147989302549153563203360964756813770738441228810253600727287248561621361737850386837182775910611455096296564607625613495602904345387652889797087668664025034542963456605221023836377740751311583143513684343350135075732022704531620749255090335723143715700303821870777005327173377650630701599263128467320188460435097999384168869851999880143175771300109094551728969991724624039835505910389346800113755301348286835685398003011370763664707874922940783824170996263302075214294731521406866583067111962328352056332405636367210857027886190014080231369341265603892225519640955807826952667490845425315083362678288401959335355120108560578847773697753197627475229428578869289980348523065674974463511837942893831189331935667505143028781602865691504055967447047824791049556785230778652187862262035043935405377435014021503482487640100587474124964049233799265090094319248572246830940090076285160709591908095383207827715855129726103299520097366847651959477627480341930133485451709748481179692275572797038494479038229920931577055325550904302719897535372853862689462927478686050321390707788034890588802612448750065442499460295158315115548996686977566541317491528113936820947434663128692692994311024523785551403190447023243653732400749411886256819474509978285376262046584556248460924397487082696619348508799944654245190428010631148741745787477277467869240324458770976007201483962287398224250891608237010769953081131511189269406683487276193347137793288506274925278264863366827359157914726500160810573950864597147689835035855643555286006308361118791444755621708360299809431851112078774677082877193158198365601627000919941163483583986077667497401851018336196339076545529010720695463671305533460859559532535268475260856354600786967720932095200936033272515776411945084239365317483461377152127123961535039629205473118606884033912353674499869106070517208861280127050442993926739007407552296030427419498174313321700156714079076742473922670244564277280453061621703142308192710240465555927149249577538351895020472011613328929202573591677892561031014533029244705015856349665239121015240772198893028719907816936870042320994201194777870067260870517978815205753734423812372682075937927628984113132651544429400791860214848206479815494092065641725229734464673240316246464863872723571158340285878212325319418659826864269156279148767539133201119982977167885149166723169993097372954217415806665454942508034392398824511396451222780527701021890822070204088814000441619913314874235360041818512165709492262819547722081876935029712669698344818926294991622430315991492117217861308599991364709201328504132127278477646966225444349251131831843247496924295291947798834146237963245332169880324830125783576926041819595758261105737263661662706909821270723433006347110263812758681432498587164653052758250271474586178962478291075088939225461223576339979869873679022074296475155130901365285899698300711993928031720210635835231500893449092083510094967273042986535468644285060925380985200844241940181368867084284688108176166130951928295496517885378279531455682820940348870546032019379588020616189731327917282986071690594395460065797846765345066388083720432553175502751519513795911867181476127287589991817909355864764734638598069626127389946126110822263259161511323565701818373304168092797530831319175129271672630055876455125723260172360525239023408824258455928140461481243196264718623345501583947157265738462846512352138683814679680904582962216528036793456035763985961755892925318218075634941795670893283311611830651791240616191993871603493572076598086776067019569485848471808302186650982256595941316906148787245951811290823057872887066264437055042693264337425903200053605247380580089223566013330497300111869822607142705830715365876696124439772825799986650930060578964029842880751769990605110447041314858571828358993755820102121655864445794439626167160435851755906237459220143321225537592736276892712156302717078164130463034287795721717889314709099334454248093360496623545236102316446138916000714405222275881224805851895240710728130418475831850972021822450974846237245753053353447762401001973024330614748723649241712073922522963481035486522644481384484114393585204383191508794566545316634386870204277483884001101726060467275497245007580590630422356851229297988264686891356320836546526415131987919511632442602342740806885032498702477164824155104401449148582353306897883716569860944655349029532252961926705139239905441853213424496880395972465086203971720753185843787372126128853648623283141788818864183020481341142170396932382051601753189699740359327326882565647867837501267847846142498526105555649977577237713025216598503810520236540323105596143851545108165855269054655900436074058932354248438352284460697943158631194297262101373339959831996637987160043095998889949022800649603075133231061552748886674417330854472875457204585509634398765389794880696114224268248938453004859954606749985459395935824873565270244912193623939355407677425629751446024984813797542405069498343511163030221277900538165147903950017633034029038236388414918958405709451091620886516987952286522187932481118661306633225521443051847473989863709879813709397589038849119247797097412359546974291473235658214621137574661995512529711804098568814112493261496495099479962070593596236067060412802645496389221118093077299169243277716511351477754646172599568856556093717314475968802444047449832987022176871862428203646866950661266819967053315804415560293948800241149643396218712841189682105015512715074026908342780102120668316280900451760862313418819997486350556060565375284816424772898073723437404660318203174865393843520635350365660211971121546925644933947950676095498485038806714617839914831235829477789196762160548274947844332784694210680828174988394928096653987517984175525558903388440692510358319956969331515725430167833950018313546117300228514853666670553790940715206930513392949396751984497227421849140930802041250046026117075053465769731537662639698139239853171851348669636607414973989350311494013006234448993184826970386700718244899051780593020755660936772058766000521120391180183204105299030860611420148624872527464659329231826210854024121658508593415780329941985821632836710135460268916679617618190606209221085805430922606223651520757928600962337165212304235491870395476400691259234895352798326883940823045286476532760459930539243557298645996310994285304383141330839280334218489381208261070179850009341617509197887605978300386830191760868789046273703042418299995977582875933933495391128214368847634013607031902386916028281747984232223072953536516373321226916161909360282998828793506937192189613894210553467310790709601628570160641440196981854530955652117343526354076085639744063809123600362742424808770626926248330739022930735271056368388195653040939794322135737340282592561954082671997492799566426869315807656141816409905576518567577577180439919040553933650508811957224827760030251173234906701658683853940640314548067383398252658985286675706656008664735860453348731331338083090768373575024699403964558071235844778254842099887792219675304570653254902116661308057692779602583509505224055450706541862819873186821547751917516262179409254721133016168729613303214409657437441481211960769358000127930278486321897790744036566135208629874438351149166464133346139619903608724148948286974714470473159043537656022727364660318001962112659464277338636932801889990868874026140065046603189489901755998012123599415012703742672117918296446116676759450000849746508403204407574108270464854612574248687208751219281804107805188849348313741818123701653359953932674916556451364382241131821946515867306753315437378099518290602578483312014338930829181638818807285909726676030270162911236049346412675021829368163793684233761325931931912030507422994397006695971974181457800521020505000199500686309020001626622368901908691225337882197130500318665890546009816574185294375286494131812648537835439197973217094375031096847178663007122001249041305987920122813990626669750790998477349105293089331748903148158851501259735843868121578581707300974539091197262712748655973872866221887971180303965782229374652213231441089349379106804770240592949670270267551129834914939637837321120937618018150409412643335955060575857265187053937839084129860931696461661259784523826730678184169159057481324892011054316912900309311746474430456487818325975013592842285039656393058755956380174457330372180634074985086418342016807349500675337270515712880925766319365298670875393147797632170533865218520875238878878318034343696215945764556836709511163238716236603918686426856412352195613748727124046504575151517374649120499144657396894727361314490921274558107329809078166288829491415897513959156353744269652105044510078326974111661353401510452517217293398282763795981278058612915446250754225273620078887628974093529966351663862192001759010211866602602617093759445247174843852332384349368837534377405837391333506197083495233021859272178476497399806757827730874253141858075434440149702662052080308168590194856219727407782851116806631702983583734965573791711761143576116453646827076600298357545495485641148650904012989557237378794586956448362235748235370345034133345472232629710641554010507256210629031545630722499296899601950268898875042805037244102370512384560945886708193839371564191435603305670790310424438248159071017189807595591332938690284101472995195619434715676142918008621626039041129250449243231239532313833244358423683193215877096141861133608810038308985383984084540174932990366761767565974741336133771688268814408401751797017730313732566788246220870625496186231562839405460255752678396043849036169509835468356806585356508630239526722490355702642271369936560013265091242013122762125410766361475097918108534923943815550618519358648320648825287142360012389339288885567462863824313689436980194067554181615525984242956149517291744341991879755945671622078486328047424652752672305801722588205481289950851110787998767045091812692052643898475568893710101227390617388374723022110970475723777962346806616481418002261589748251210199630029228351950272157012137144329580832355603746738623259379587400538252951789837065919193933588485635021216242563104027689833957973360025476769977093267072732841515580262000918521029418104117049354035640843167398336911669547623901321682298045635608804280458934727166480617389165928927572427969830415893805157695918889763640792725622809104485948367298770639757133604085911837209723029160171822401821522431728719432151818794536107361935188960363037593842983397051538979170677504854880565759590773852290571542466369026498570881770340908988606379646727840635772412785808444989903756591978329323252673131076439818297698410126685577912631585470212593839725235730088171237940642040997311272120591835169774859140128860367031287205254927367677394361524912401627551682257329870389830238495032415878569694769714977479580723233998170683868889636363787640000300765218117377951369054111563150612183148143028941067090177398934719133279609857381726420901037154987581366579643324945249625073563980425194424290765127762891134472191957539536322095869712431568446657175432777985130917132288959973121940317843650242438986882220402712489736664884303730868127682538980640180376749637993176080102554485816493172098957958652873082980089594947588285175961684663586047502988253247039995441275552806156896654991962563276646790733670537304831585215883595700990479049788405248199377146237101946812186356252150461621167215266151632140167221704145008232688857780316678010214150725726539308712308638092826341631099434015395699495871421892400887294459724498206391266464973782581844712924598913582697014820161671377450854708575107577462396912683188043328426613060442308859397845533763327734535714403973981066678051967249216267758648364036245030248226773989001777704917493154339963768413408242701682504009630128367885265331752977189379057017573670940917055483806588696194822789077730173740027843773944089089215557953150731225731008929710025060558609722821108263386121891675514388508041195038344829754813142106352609620010603575064436209300691539329416936513332384997398198342736557273652065308564426073626785190613262203870951533972207431920214653256572919644772328944503975715464678322612462754684371956016589205267959072769673233253150931085268892147658992444693463359749244011731003653418508136085928875272991085152538922174148027471518111372204869064164480717154535235889015240002734457804503821517364899291756586233198277176650364900300652049711024127092105200006764532384384575465914095526980078564353948198578788796335313188365762659535701274844300494351577064748747972674103633146418455114652664330519724351894218718673463836505403779576137249750968025588077488756246516367607019423027390949363939850694466081460613921698576518666695778557686197885979254915086674141764399992425348830827137713787349154932500445211451976060421472863753265503712497085192156855386018657019888320654020013138742138121817048535937114950159781765286287731750287946380738589481040573679077906994802982702543002415870914881658418914302249658754093525189301315964212259156820581427989408180414013405168420684980272240897016957741584271137286257501635297761907301891364691973112820270254662797050373574450093210084925349002218727787634407221827695152539647938967418408376937649931083248652893253798949324775108695250729869548359657952508747849332139958137292983761230692241963635792377058257926427736440312441476724876970060141897945964582889551348420891538249520533533833586759429966816689366249438949199136709390661463718020799285181232491058021345398931274698418544327386778219792209382813109948190318009228278220166929693699450078688384154239623063724832165991687790626161122639064281385926039536191475125114794055272643973292269533054884733463808803675176928698994850766464317224388675145566166975711705722997878888621950460704684538929019105281611665779046148858247768315056213691924587239707221840034155449996809532155765367598064655706274295600925380122303842891060820596240442981596740761122617438076574666549765918781773673225554241158662725733151946132169815556346868652853487645922910165773138774504728283129744935046749694034422053800913643274985100235879660758753519959726369231146234097934536421948644767741427879367014265616464560540222088011775514782919784374839993765812343473935997625793780072430717613078597772515686861023835642866876663986559379299170789970952988146023811577363945407302911889856354102147797183697492991845078006906199270454515385324621976019284741182011812905742043407752442369357950349826200087842439841591686402332569644095222547819609310716169396982198701796171166861503867169646080397213955773740704069617467656597366536406993185591364224712729573223046726478650419443252922451354148774958448347462037559410885847215149298849159966416292224755648295369637926253305770071008438721170652842266513915572701892674511083444836633233067860343467247945326309702988462322716145708019529630361211308172095360300066359731272368989891618634284682631464440664087940517091594201403901607430536512495479563977552875724587797581199213145046082907876596934734340048242755706359842697104700748529227240357225077952038253704994951918849088468170450582198741845459756693238913304664915893343941244038885385549264353246527042273285364107400464787208169007878898286908774797808295216187911635893616903889150256311887750174109176656037384601607763160167240787951050860429948506196509861462070929350077126670618930288425811672290661126900729379624931886286112676138746137460042539693677001839403666136201207708776973129947567569022993140442219427557609060203726643822629692448086870692842981912934513268006581383538567654662586435424444610826830316573295889476497566998485864759573973498947112689525324581289170174083393432130117913415772634548204128057204790679060015532508540704067942552014973042752846282494268266285839290455193091769607816254507900015159505849665225553615792756446124189312507779578784304758254649121082079481169473430421203736944541282732762343860290710640267047580393097469600527029488881222083644134413978325142398987334044687737491606245302360389487587330194074249309524781051232248577369577592853581248996852374030298757170068092796672299041973816747069566848606280469069382272394798365613724232321358573888309721401880795472165774668070996294405592254853699100837499494923569294908418842211180511500693560000114381528234009144059474191984225566646052737935211448492241662762430517423296519829186445409457486920216925923078647615517797671351563027705631370060138192126799090736558899781803451884870975391587055465940054122055604419444050132054327816029957444470199251296330622188207818431219319214400372192435566657758932206642323545348341754714066060065454569814380889822233409096376381047082284053730868914956429467307146694950998982055481740298907119860479695683123625659580110400109165954073116225206325776420322698426183624626114979498410600378217749725619440290163788858846611517357118292082224242979008320946800439296198812856339134185813647618781549489335596090270266818474386856111001131584731307133712179865413697335058218525982430297228946694077344740862991257512636387282425518090436582538446213929236585828202403812395701248226340019966848787002934605642937080282213574999563271807730909716189966846995092961489847413464882798794067796626314898684930669123394282234345822627741866878774916442225967170585625931909247283469896482912299575797475352556846001081620821801580848786682652332940035326282651250600815943881672901679134425173435724235521962809139460266228453240897108409650256823770123438129589509731529030096149044544363146613341082895510437899749470286520047457290205616346891120631540070362795090174390888653622056520035118946733961954924482326492470713239348440752297724954353682268909287357961140077702016388349572126222455743246911119821495629267755290735860947681917546917104837008658451486745865987105855278035930272438008897002239192404110634776903112189572399210370117821158144014440439689192908824978146714196857083035612492186312925540558153712014792981189559701899592799097257143512761788342434009852775875605763848571833450773078549019611380063841538567788174757462520618360791090566940937316601080304669799182823630738816088603625870402318659730889682008636211264526476128213091849319275087703918466359217858110602526377706418919550380147995946360460891002041938017323145536581685888565479896729899801160962564797855183352168620693872276791026115596104168162852359982758934633096082462146006490782411146568988898784380731890726367533911188858215776327183731405989791115968685960333946340280958992694596120515229779008495873120468014295821548353382520545429827819800480923117941753157518966787523400564424902328935075304629964071663792702327485563852954615884635856985478943949666519316188197708860789834919521657361061581085860444042035014081596412192646727263183783390510567012472164838312278569679871886161514412104695580286986400482809361319950977526554245985245496507509236304032849025688004518102679996956272861833536385520738619042432924994912337382706035336207201521814205970251617373532315952169023610673537321450589540105563650877749852841257109358135604839535366941122919894061971858394372229937255131536684933058781101298858234377240933920549719496608529188237782341888244183546155952876463093245082581615158022308292028678859910108193311089238097274784393739011350975961432174826384602555725762272655700971815704792685222489480125439128499172944760763406136467877946888941841726616737213890950296468559432323831936072834601089115925304388559615480782877323516532972216907152907942507149937735947531321616859874464397127207595030206112797022252971795626779791196108489403614811885602928057419489134917409157758363763652402186285935987133795467471867343343955355484301745330360501685433888111465349005619098117070050650970011110625584449491737262725232207488749840324496588581999626005954497449304337342851752741649439060016553968735852904941279147841728525872473116196809375341970363428203944896416760615096370385787069748155292345989034257327111903791461430340802164151869614760282222115542159829633012717138420091716867120683135177947495590629891228608840726420298797585448937032777525365801537211635264419965324469702874253889847661629368147680994644052241066536249553586764609739505508551050181849601315202792443074531607731304327491401145475782200319589188954019003188216518312900472564349989425000330987171148868645313577916246543085726428358794498071351646508342669301873877774182820715237188850955859094155835066991573608936418847609570536604579243227378580723908021999916633578181454625235155469910455548940334423709381612464902132863946177936435885723677160177257212670846096766780795114133443637089922005955949218952477592014858811572909143483793369740080808648632710080084349081095009270843052431622979547268238086588062317541170290675993132499976668548503494438580780198360649512315103328926861683212198687854972257632260583628187857340405645881008234183823272118336463364091410609739211847687168657738493934586172622569581602672975050209434182231161253215064076035361216508163005819629337066057003591390635271814051457513772808476346718186990454425953650675739511321311138804069831121455541987703114101787683498839915764189689247313993160212285668242183269683977049111434174750168179866500748328940473438383619546283372552148422118267717826606803362798265475818943724051742971464930161189818456361735981367179675900665617227840368301489091389054535053534173477067371422853543152592636095578948323143715529097334942940232299918714772821589425146838686130961697266693310679025988795468791787197358563978394425597162885725688123144457896313528025920220967255090512774279128189844780871280246861309322696379003210630136519932323089337042909892701356394213424481489583592534683809932645175049839229375885978906612035769913186115094858586017948036592420025493411890018865762476883749873304861465440001724705718701937027989773639694599185699745353582452577411762488981654693629320482032849192318665122608325073328877997576926176896815449335500148730002199079609685292759140457565987967839311093457346088975158817145163223905202956374873962025410406605296281609974715821279978125216577383234968970442579837597274349561806873010440582886640813446654775570162667028913414450832334940093053586090262139613553666074701977237755941586539035751745386386567401651393386354737551395569762026387009150694006971217494640811096854960458768296958960000569204559958611841502976042424850296208922575147527877000426362153891889351440672842549784300553041442069838242377747142311706897949971264022982574046729096271504482938619954833489246370362991722099330524444061410779345802184514754351832655692841278795708701800713837374891226692994220568139995829932541564309313456188780814724842291542560950143880731712072828254515486769618654155928067988228691960196958922059240817299331969601154550032888553689895077954793377484001189517039368529042996614732052914514467886609146724647572254744081204600555356614616524976155784593055981196959275103225468736583067587813083802980945163731653659691638863069836517657270108066270059933923266823450148531868677603539035411648357816733295048049356312392939941313351706714059687978164420455904844278723494128278728357295679237610233114434182785784548892167937192419695780465708586438341745042354751807230377252318444808799057059730332385925115292297669500579808827104514623752994194404411849014524899853629661279492459231134054832186897557013848440428705614363188317064268019743070348648784302146857056046819944203676648609040772332932969852906143425752779563794604485553845799106543467204748358958106767679357937599695917159198161637148009298587787316938126999159191804814609328711382274991261301422570428918894587862133278100391115423835003884153219233135291108930608214416759456340681156365086124098134135114526572903695548994710854663060104798837768055055677532099546320128704460070239572058988566504501171207029597709485536707964236949704624173302365190061913475266232360200430326961795353539474676493851241310634335331811258957537720897873022233919126541459122020027164040644381480049396936164017935768050981514763840748173043752549975152737437615197376445461090607184952161655250394826962282850576829826788245841559405205029075718626194544032883419867869323443628155318250478176079225700280270024927933407776449821878456480308939618005016109388531972956092749587394260306113343698830413692778600873649391465409783167531381366475936606166933176134574224912793771662679591864595955712262093085899901817684494047764167378982083647774851851061735546972921929051417182854037950691537083265423952751429939344518738336232423910564079046980893637604298210771176314585711267196527901902688707390598720190833445537540251736814790775133117277263976301212166612790486764756847401251066708801938830758896173981916158912439443045312376492819380944318424601657620878075698154969535990638063936580371526034377377454188356317538725230114448925480526534704426338510743637761169121766048464828198208835432715612464272085481981692204192168618165336634366400503160548778154193995539870024744688015989779002379404704890218630012351601587883936525448737797744744566199951625662004761310739156974388329690449306038880281039372419832426221794613110298117802830866543662470785491909428218709629982240905805643294037051041174557411422852625197841826950399276319744236793151379384172668777244335098749694138426845435943742792088075613915742045474600812345626934056671599594598745315528415466953060920230746948720859230681650268182333516516933499197321303629480933605493415193214311288243713880018380500055713700107730529737529417446333410223676260880490911272980074895605431386045730990425414133624554962644042089714305178055244662051497387874353403130396057314658595017720428989892332555767847247107741275407075149190857693212693837056923049498129150674890373159866702855345436932322248843444250718678613746831159765977186385865136943406882442374447932273202898057762874893871724702954548762446776524719682640140768231581615923191060679734058686798519838496348554259633280340560251988476510894038057454011868068378836653296238690989546159432801061153209236878862356667048299918943374280439103303643195797221494727747865470278555745011968583518636919073504911667711060608180518063014590286243131086587187529028507145894186671525643444806245397022689933250892346415752391592546072915021947250560383042789479144186368492674646236700302196163351621411766603251478361142676791219028678263290845650944146255725259189321924133160918643852369780686859665518221049890687080285161773793880273806905082348557348516320272351310566740480101217540494143020404522971847088100577902409297974654614851775735871574372250204979205490305350011395438640488870327482559087415694978560595041746769441806060244575750417841090441091018394921513453354022158786822180574430257753287258923706801544884526756423025855739366764448996188114510399793348520124332143117987515473304810092792805495540249102783821623720491626741407990749207515621894075511542210444945970946170579006645528811691416221560463980928179431290513170137366197853574746225664864190226010476127782858534977132043892371893610133052039459227010944068849941014230824475418878207428284784408760412063900715532109017278121414424690024750042217440070230425477256101911969874131757834794928544203651469797610615159701084554087629291400696912208279231312662534579423393929847674191123244693269592541377084420130812521156764112454436504248996335762719392568181645018844053928015195853560471557841772843666038845178696759147397262960395949958586407472644657222124636352844938663039512090358493421597506917069396171718814906712764599357208143344700295390367622620105844282778216477017505915117014832384492492524614542843195776616968774440896171532515248153088830610857014521473248175108597092649903597703437494215967987406248077481205749414623660873703779016344564510863742030847319913274394564230961040212348901546425358300478111746142162459454376074214352556627981756110567798612304127892283946599195286167040674278638850321124651292758009882376232110837369444233554728799577294604815760260760779231919280872517278032764369526886521044746804087651126108302652466813060511068852322888077128773422300832258973361185366628011946774241376945725910914759748433455106261789765746094654135281511170106669803847178781343543227193979565683504188981798027205271533699965738078367493658299301388151480329005849087887611905520098223641033515084056518585271868237121400773848369742084284283964924400290349886841430806733988282267716473871852002686251148443115704630488655795538681709331127753602650659606758353421442979417557893077661318047171940150990088553144354977471841039670274655592416934690128177632917119007312016952602089575679030821233321035537230458933270764435927361858578623347831199975047676507504654371212219672345406117493611559027878344693285946210730911864266438267866790837138154223581943305751297670460942338777090990220302304808100133206118948340783756157215902863750648471781959556551745359325485127232509891037102537433967126780184236834626181133666851471952071779893993387087068187675357989251989123449293042840021336518193777412023164363253915169214906667398210378169120950524314487374342330415098049376704245146376860390616129790372701785392241442140086484242608225129045029512519536436299979417765581727178588898187182565792909337818380740504616520323944749068518412908100775973612095572451517017195928184540487662560017762242534051901132947684817737028689679266691788466671268814692752787912797233771621048640881708329063560759666485996006875873999455170026407133329351105468552420594614227334598543139250404663221263336940302699391605248945587937822100130359067796741269408013287156159871760569996838386862802852395508781811772941031525594359718216788712424036648346776916302651901627595403875812378057936884510124030957204286576918006973586471049607304307107279356382771601606819784524869362637031446081259645136275728833245232003046123306333175695743795775051822136191753080935308953508105808581581368915405299445512743989575776505862841571853511894980909992024544485472403543826206173226524250002150887970078908088913684935008405800552451055441636955891394849076769940375012605584498628788312856481058506030825274694412555561128596128447834025479500662927404050625515368755728806165067794212091801557293935812006989700054273486967140916268287503131458255676351169013164474331935763877455342797981461947277039248994930766226866643854614522101217466252040841226001529290600416837296248549916412974807817411171704719228323881533263753825533104022375847344460345096346543348394565851806620330639930459291671168270301386516729554673079444279935402400400512201141019738332523969624785357532736779795998479402072555149485771658835511525672174145259898739036181229853115010716995525375541579706647166095764806423745010201291249748904850191496438925205990333309089289821895511976192965625140719900997603826605902514094852897919727811421701214028198442282956170863130967878946302555560965860636395007046974898179360137789247123219005633116756358152900529045515800337730973501727794075658687443622104933972771498790021040019574008043415631957841154496820193689985717880190138713180986885425507653833421130058757691514070544475267940906689396751558600309524994064198352025493357845874826940346333626085522023337407316514649289476616790459741800456959915060733373320744993372944098291107760907995916933103031066057101949606782675886224048854624332070911304668850591050964486943906896344693070536831696404691586424690572927645124752474268264079300082381528441080148143527601013579620134905380305499726410852183534071626325169519120784791172957440714512173857820209852458883687602823066717142957847912329752648133128789435262873927378523644478029201472472268752809145619239012857430464022838651454244461407810311146529633334933370585222004390877037393127404304524899265122285682513877182417615531558498261271728960864140311967640175596252575485031083717041894436016743782923442171674574281540745685490892575113622510422166160363075065991323867407458281607143486224823738505115870936974413586360039668722948449611975524314207043150700125831113991662582297610824962998265221914892191660758451950551706545841705861658790679824182016068992305675632390783028778046585928609854932483227247849551424189789337263468234457462070689574827665564967223811935474816422800499148549307977197275421875316897281074806745110972127467230435577023775100888215115160362775677319591407126269337220837407592020508998651964493622110039852999942408855265343407446504396303588090353057961602481914729706258477173377325856771250603234307276882301081108214409204433345399050063065273027953426282083003158164804106867946046435157984915843766714698943569630928954989751846918641363904353469018239147534860775259889872727040250456440491748765821095484740157051993530199073809227950331841535358298327392146346876105967738274897272740857833216137164102527345599462569060576124078274086541639469633548520668342255964702980984086778836531661898373617056936716160361125603338519866430340083436601434924446104025820270402133414844783384743357180171084988505615906214372449588704924496708370245649672693642186063562312358146588679771802124902204709196344950273962721812056693906779216414260902017333255720634265945400220163613645653058774198698971687219770014072905640635032269437491749093889547867425656749523412072012279563451282787526601005375210767397512624732531545956475181093829199551849545163002169046644282971850685771134489371189540209150758246770087175214747396082595381335897271422599093869452910447429560316146129977105951504636716356143194874865184925161806226753309936491059286854915776633267980222539431541079333446611985682786258657847112363713908179096865966323838402693315792270633967081833813069665036799186292287559514911960678047501497617651421597231020005579126215170448837370041823138071421757471372549375154202348039390892621198931581606772055995523544731298386319321520595171167192350653695871615245190847630173929076233163960145275974239525730725559338027490664636214587870849974923875203805424277339311710661973927558205712026819557131079120470552350988217963326192737589345307484974289222660157560305855896228905663470709051418593292326172144511963336924104438888682951369802103133886165327340770342900891201811336037303896673676947180243459420708953557363064063593995839736544161794553520465080692579218754798673610247023588001884298752437547983259950973214993246121978934732076434526307178364351322012327607808315539504458976450789916240819448050344802866284096546695209510427928610526503694706172870150062455362314521985234922536940464296389557908608095568834011659356288042446848852962835957840311063519535008041244706207135493096144866562878537123228974019090941692701743397087748344887118855883967008869783400032798284769610908225993758218894037408980222187005507754926250633704943927414889564675211467960944400587381139989768135483471466692494621631516211150890764172369030805250972137712344330828652767579276607152637290385259181230352045765465793292224283525764910174173122003808699693071610765737738820898471701513198065858720895640373203749380991964465995746592007921570535882418577324346395729947958127034522691144223724114538507826002334522647455634686202704306641748689844835441839633763750406871625358769340250063206712912886765218364213285726046199798138598347800359255745571888159283461936297692918960168012725155037449444488450976302134733289709491557440194966964387678086370958758095309233747843849069140228603970716511897703485397473145870789803985828791747739325966881545805596572281690834332149952127360381135417062277418525400373741218383841967557537076331201147507918828204953576113174790452015692374515730067411570035268948302947648840097442644125738524061195632059938977007604790730531107874104357135828147300684295832080843237859455175504062098421873002701186805473517741265351842966319951450179667719095324680000220754435136533525631632054584503920575330694624624286327394618626402204324802500868357322439752769055771404934967989419798855649340437884995762128420466488391415980350559390217587042527889219821741854258506249997784945013090167677602630275808116982043298526270497951696862644742223926664983421244627087204723409618975911109587435910840821398921782455917886615163534553216923375712383880036989653849828828916239496405571405761272339184721442488113292391151853698271408719610707269996273273803842516500345589682765464054227786015517235432379151610307189885007204363775567420174213534405377927617062979735955353238129464572769369740606318104645015388020627496132899509461662438095428212406059599529161383104033617603863572561291918247429249097289833589784303151615873500786141051491925823262899853997090322014641288340138953861601911081495149704195121493343337443456361657682940689435841017626979259169874564924973372125232087894550987658694288660539679048602954258366545726787407506728541411224843791864290937887279769607455491843691516327597845947533545339510946572905462403632247138353757783175838697725417884201877609480468715188987874324075533049564163391261068829451853104371294384810062155089754840455376159957916509776107762421345373250053681179086847539299990757226670524473461234418933260668318911460903462855817179092440208555740807991414180762610498431497113479132884325476227213483411620559382720913848038020125711698882471436211502709402798061108904194602030651294318954132017837997875671940315511295904962324782445054162434771945589929479739147353055998888617869915443051594233395422271987450113783441345419954169897347920861788330633176770990237648931531997238667316125323285937794513302143949808687018946917200564577094767583776333237224391175803330363865230965279751959445350385723806693812371388731524344472764886869307907177356942571637799518692892308137771075566450259269436361606763843910477218775543283375532928215548161920002042057120663223939605162852915506142135430211039724931424263024435584561834056000753601366723054748202131989813350539944001051731042694355044700660793930037446416997447021659434054110128618509749880825660405255450506658794978242158555659540668539978571796175828528541018106211464946203943677392766399752180295277991433835203379130598495034204549238483986510972610098171875048579256681581552163963291838768278028996021637158217358246787318655079077292063505635320610980127340053804282810085949863230901124610670464221241533989291602604038489214071364312123620519474544606831754173361081816027722139209782653816087278158482477872430137768999628296450867109678765866898093929334514290212386609544350775438135646510176495441110598153217627991737390186565340437261415425214622442006743030210275484256348422735593367062983087645536684295926685777029760821622258977481259147435606413294750145209030571781041382747417264338599951439400718819392943901241072750257876480701488031288610044168638307087118786114689892759246150114961844523860552874830750110059151648904096749004696378702679001747735621068775378242944550678901310059197022436398330971607522115321188070436558690138995503060520047933737890953575220676297659051426877905881969548512459267371636068552865816361151900173813088558397157928171622529060729997347793145717518716453289328838315928577029137309250781703091218845924634648035016547993803422278858552538844884183077256709789670345869013544912009601572755114377305937096222394031501723004261803697110142123481858653951078865472656631802453683669694064476407159359158071009537613740603139369538278165192821587828233322862789236465905778662304411182279906431298781915024947843686541549632758129548522935648006907014505146411613643050987822922803400755410475112046602874958991667911017263557159908876967746915751871112536375041701238139663383571977855570087349198723185462909200929548621159525610631017714559789294906698713946751556677783497281689696421598663305959909120305761491674385590436874636569495545738263191722962189217876559397955655889903747839878831993218517215259512166129648552763413500837075323666413820875774294440574492979968987379584025418434083662504278141616075818598611822506016517330586421153880657605982726191028371331540054905118600693139096730755840181310302870825531439347645131594192435574826030344701570899901595884404865976690158614182337842082057640212672683759083030463089437469507763849042150337405070138099546984585836043764710416019303190615015007425655957903115428829242385081091053794998183788059632388619992002030653457139298655310676619826814707122576684928333564151842424037188432334921404901569258723125708977742805727817529013418557020322540298488516308550543758349447012026471134358696667131296841177847660665421852038539741013111611720320263997884725714298504620135713072305574856778947081608213359695229553655859647218301074885044892376586524072855094775438663940352105998096287081611979538634677169243122678401439626173625775763098246063202704005116874613451778503808987226309636689553928462885685601546186690590509672036405455858548873302176645295723750155134379937382262744890612147088903240702024025558267604532398700623894556795663795909450913242439205537697667388922001373373958486574488452345256164444237050233927654808679598057450682895014874876083099385075664468457723245687546270035731969887635712886535368874700139061000602578599396000752069393454853051812256934843807360049479589546046926907729396496658939903586451169126015685632046971504336368450612382289250553138529011240457982341152470923775487841662348848165621124301732191635603196668221488082053039503381412713619941069834257633694441477802668110025688507287291101368884498968521928046435289894792563246563366927622560304644386883596673608301913704245616164508063618211536233216333607761854700039820311016403866158619824327852665982348787585533354998249660966470113022466261168522209656813132565151885913966555236466001301219442897292445066382379256778779241705832385670725323021282172348521633333830648392167792656638625854428638025159223818043923748028188121931167361966238366284823760577242802653447471775845584718501751362250054598831988808597122159300322539350108937654713797970271572313933047135031057170524249710506073952892071876034920753501515039514315059980150921198674067307904697205426381078501447451309700970074425250703276985747307590475282202624981034279430478535767582387200375611065633273661502888458863243627764638732325668619924667833745158164853067394008183761165344077726086194580462046757902854626117252553179299677974387217371320151622438115039350528553429791832005046705074976039317186043401231106344588320830013617798058538385224753075795993349595340687526657482641794826737296311412731317994074940601269032356791807060281881436463995121679562035349886037903051177422485782981453604895171733774153959102764261776213137095921471136354411649105927865689398865845388243132846485644271452635940413056022189681648613228452880115488375052431629293423744156571554197358049453473035792186120576810171992057266905743410700720820631626114215035521186163017610881528390334272566676596816961258086764797267975274780917666781819950262562555695001127039245512534788385101993924620002809421692738730708762083082681855423789495177024146618968433378312951484296704167424235877131033896663707739941820201246826505861578073303949400503222200209908713604537083254838978667251674361943212332148318526253261166418211320454766896751277889217318865018284964721730551208163173550268520324002385639737443802599568310311754972554914602305694587880211865014583187150428225018333317741772282588000462708056459099299156052326081700243818282528320153917761465041616900249434422025893410189292677771330260683885915665711342221077334842127993736971548734118442563505846380219928616727507559644428708161054504449274068694176133161855847088011793979293747429654806702747502549666430076338906160515973483721919475417924699289456315236625123326922198825522813945775584742312830934694056330250406455284425912951386740319953107067003630037771746911353598996396729051283273175493235751138583792322182800077117748996573532528675290842713953734687940672955484285077304019896465242358026154325268213842043272276643991046895312131556455412790351831156918110135620283938427876129412826081419602453759904377394008600719141295190072715724428162802702270915809462717135953704017300780600602700026504971652647353043909159563116108480401597970665015985594599252434192504775619692567981368690819759342475609041246822855424221673937503960541779838307644330236214641531246392112523356263300223297319642242461773567685971186947078035972404456631641568956780122759317576741504303797230346471962998028613603108710867322308766829005662287317539693608997654638077951573869527075454554063781219551454547081719660696812713208892025307544780550641839717595354741844594268848191225798823605811226316403656804248895464321858463787776455443900061486448507132718470684394996104293837933851255567661116921588601080355811183732912294066464151269947973901148664838918397887338438306931128793083526356460378912268541450070769851145640821981251539826977880901314235118638955178638965975459794692916154858811297871725887861520351030228357604938906013922842782086511932896522983677538425734930048392513046831762010661206511566941317270180390217418015905423710233355354321203496182971130147009887622326025312384412807027102790784150683142782507173754403266000730143438739981139845767674399397282402144778065229865774379004026615864902155677774234424105586350559882092595649974243500185378786815809878173281796545520493004725191357877376554281192308297489358283666762669303422247532024234574113541511845560597758830566580055759912518786762766240296826220248055791203363640449783580488785588160691690389591700722787938282306959089296185699200528412708653227761226170705520137999779442322031872181916936643793924722171098551974657693876365883668199360181269684345333005648680988320614741209486583895522790629266463756435004336302383150334294517399782512183983400221699965879446154183224708038842952167083679402011517949732077087683188207933691362605080797232906201588471292803114142507119808522459799617944308374255075578063367973065459084001982198433526359511004497485447337764523902559251099798017578596384134092106429337699953771494436403037152784814261307193672683002675350798933906214287560647441014633030242162652986043762524018023237681273630967052148339666356986075600001497649826645523725839434677524813721727067624042484837252071992760252592639142386596332393949521378354369639630481810564220971241413510497273180708522488551031186709091872850341952591317880793431659106180806415229821153784617995363834127923842858297145461299462926532598647968994756602543881767949023084770147080613688859641910380770497428218906455542013905087145466758856534483900000703724581976022668050382525140214295084123813873317927594119683699524217210122316186675092578096112263427770697000294338989996086991786047513330475277431576757168832790524693932849810694664911796940781914574030536440462704353670506465323092409796775324869350202324285050812432976370521826126355335996097954774651395810071193480660415843123556731773876507958570524898159460660391825427956493683225459826951739676092609908382969669177243551970465553961801392458205173293204804341650690826471970786967129303095600423507599904355261222829132936340631435208691103289073684649322968317059533504636626889562778451966090456640381500849816129486755677371749666717605739115409773689925814054213982417686383074932539236335800982592406884129151285165649899274865258653832551795633435419829757197523822897235040157225471158868717103867846552494719043119447189806724000363419907203075335483749043318425478310638251250981516915492623732338872561080915640336687323891770516467421031239189312724480089291537293670301044233427661649650500218239434959339962418691336437805338726609927362732319834914557989828726295891043597556535455656535157225311076173439555739674946085599693185377862962981173538548585282788814441307442614280633576669327027114448309071259633606907637835165264233361059976441084329067100479613873693751366854507258280905649387214602468869153252199605735724598662523873032327670336138884267668204099007007991494052987758346009556553317826939808192029248014070250174800618755054332514502745969310233018011225528971364312658462308694401392219537217905970926514775593503906713514687250386255292243119220613260649262630375968707497616736789667419474399058933670679198775122679792792213170915130723046438790724950756280506930810625653216142172644463640020055981689692064197569423694803515095302612883730455400414818202806709289678378215859026903337453693306734831621890343838935810401385766619812198927080233380572582759507959908163532461575124749825680838424952790367266883222227008060156505748785060290397571065788743649285908544907906969441574676691060144437043105180726199842799115619517796807059540178706208684344070249860966917932750286461939908953485442088102409857141929328441654094981094077432173882580186613737182218387123719014724914281960296253826945755789291517308877029741927263830254071601392509982966550987378224006225120652451339809373779756640884560069565161898680623211031918954460400897114781229276934352714096095605832343990820204828950628160142021555649827920008451140660158323177678798734662855224563118657954213500783264917377850760135490788471922675787850850847918471398495715907592071652088038285069301515770671270527780183770704338750892940522894676247387139171871159665416967613285421812597881777485781916598217826204274209261457337912772899637519241763608528058025690536310343162343530682851330132467781846818863902234619661225743660935540244453004692507007212845301076633076174921141059000406259000414247574535712704946561142607245733238898994274395777796257844584727808639306412256744048194144126557841745070171105514820193858859960907560111252699288512562121467064114691717937575547007928415185132887669314846412849867282174262902723999999336511549360500098124825907024142578792949833772693808396599088831455421328678990685326466140216996159679791341144450371456940889177943442378370413050933599870736816700783567017157528021531229306908671083240635427215538816016614519126239793213794751011045537798674851925102531170363330191988486021066740046624603045420143858351996285749080242365212462843655472056406589149456663616942805437315241270322270092436294897073921763970154558715736184361761351909288097991005719438229337849766381291886295265958117341186975226545749750060349870155496987997030069562085332438562069676700014214410437962596312041695532533335414597496462528486834024125539837617090579970253561354761836182396295733201559608562873838065554716058248393833316448573643285581053193688457734230732871340029962953356845440666109589476903673959584786239756828878002796221554852371995815976714462539859917253276795752473681663554974827719506649338676447542790272888047558737902938539850841965625074448233641483635903444791266449681630812098752658356176587568219340084594733909929027523889981662653630682236047877173387485925637701454018815624641304663524240721190282123740057893192716660548618695067478655840926123126455747252732420279145406597959497620866873387525514789574702408788046192497343909104391874463448461232899396987480594255793853650549396396728323190152818969593371680684260749566151591387636939747589896947636640311708799123846238610252929020125884365603626779737086319458906357552515024129162911867664593289904859656236722417073983405606817442216481570551559388427283534629132212245342120592230048793935525765104927436324198142806096035371547350197207314958149967218080761456658307655484781485827244670574655511369365139545223850371683423870479269006264261439554175834245980804472810925153785121186235886380127318527437153944757419978561290094798558316480255621020431893728181032729886823094569947220546438584795810966558838110148016044296405434730910945076493815729114700603459815453729567217738475122857868202194730961369992186028958533548097009335755695776816262457725499262538751136134961009684655152344037635497242516632955871514434361502971636255927175533000956528582074402707998852405636193889391786510350826341033306819640150510723495534377325837878923324717714255827322812057601004607952465260793921191912347293162496705086364884630122211138424559759245276208440754121912956739605162221849121850936292471766698862041052494223572240295027157882948540977259088089605751082782933627329792040216638285620993258120746930411694431531200459050438289737389727390771893884822558248593493671158661722100226117255060527777615129698878788735576930507939987912774054964391750915328285611000121919209831258699504392054679073693556594752174288693614922039881438608175454130814210171688156438545475362877972192104128353888608447513779153987319451448759725673029434857251069385159322838600203046164710044318222888586536957766625448330199577215746436213096197439380154243640436766864605880858240671690715862676815531024399405736726276027652901226240842535435168588514572873980020011766628757704105538712403303645894056093661708084387091298285657162625286850430762239658149269728062948921341409983766339397758109068463350576691699815373732344674707171764597832803531568273602311576594963150577528739741807282026054216708933248305024647181830199169433327464246598298581385815584237962231047001429963887969939165272686153797548814369992323359868448604926195772816448657962740656019384647297546869712934014959510377125119644933304602481259479611801355374611079888358306563179778472991755957782598796078552855151192219638175570533875221452464540380193921760394820615148374001975188708555601501883116340912181290159801701177009740513441448698504811550688027716161311486867536352114833308100577311588190916831128502318741060459872120837887414670919719770991899443238567345148949679134149759350659432947833045374952873164153960988319314789313364857217545898344129779687479517209278936021602531695379761150192432578383735767738944388203731154598080022759283999543133106664964036282712157855693949634276369426864379704083456189633496898272191123334556890708209843119611287608457780642967520675623881379106264210820409601324521746024742125315409497694007145152273396595247766362841153206910250918575541776263443382980024259634984434223026549091052040154260460009958998051481753056138447261532923816494490894693737806989931979613089821915141666011610918732959459005352734416314640310792995294767348844378472013822153416345794895149872208896869175098135471302294554762267081167730497769596906472431245369994484597363983534852578109486118101974534775923767038098071344722441387718518701020643537685196000049150227657080337755857661579339449903108683809015534783864472902144257429102178467151723150691037768809001297153316767067931565786448528587381457604037291340738249898754052379097982359014652271395206369919233058615444533835587523545302331690849464200546962553577085997447900142280507658628371365762911835736854180586310210285683953314459564332255872369648345709076084504210391485453794168552876920314452679493602959833987015095407169540381596467946071254957288899239153974430953362143229451731469690784033192553528615685793306158902646076420702591029481423843356655754323226821403765498058975362261987190768395413401429730314847465645930366151643097705198226596151563016832664740181169709139613979012013068558585648319203572198221596798034212064012270852154154961847801700278895248362569692325003897144977993557426269388434605257650754372541396739827523480153926437156346411794977380487544794439249333519519472185512697594146312668283693287333237700877611032685756280650830930609420611156949899463140753398012389781564062240567933255567072446376657726804829223799456432552631450339910071476403687605197332470901710318378080209805020949482602033178886657452084227753561234785901224448847445198364813336094030635557692572972314772211057069767760819118020947569611090215136871591345807783738390691363652723998648882214555247355349178363433547928579097157404743638547539320958210558286820003324286269399023387722237435320143951771140348217828781717731507859850332543251413881556618826485455477558201862577763527547614213376927282771510118231334808407954946694983996949467358882034796755692237332459043240262730499831405680929666653779365006265283819652766890039117756309831378754066116558007558229462019051995933716635518554512057964533284596633056807298145605078068171919872841410405301607369878513288094962995769525604675421273697632694550097309518813790821352416321488682066711681308361645314407310502352238369294387958634388954417171826340707817209114443495556799889251283943654644664517495002645210682059259816515451449392786882473195288004906939249915098305979642747517072567951556939358921102452928952482319948869843069947369653337192719776199842608000079476989117299852158727733869518166541223478806878067431021942673062665463030232340271699391843418374891899623464419603836094946090590109824550276183665050047643757350656357018872539749387965592797523240494210808835905833322556082480530944245070251368662082880921083074377938480642457768881101695952522879153460296765696149645190850261000447860131780278288925366354162207170368766423204269924258431348339239158062372575305073857277818337088185847013354165913981417463287256597284139216714006625887571412082819996843089617068017474196502868457454643597997156196810876790330387500085175548156620967354340346235077357351281727256771591091086914905237383719063404634493740819755614633676288625543473363879060219479418336237044536468549790082258553728771864708014496068276612811750563237885796569325922294777580555487502301715270096752288923581770617441484618937661446738802097766433445409989140702613781290305770214400540271536958715855834071102009508506345302865659251769155407905572158977521639448018580715637909850032032593602749019369622242686248437198647742232240919788445021297305322150700696330714069450815701995993166454573159094305599652692455236841495556617684985061548146111769682086329770079805150030530270839184890126906043231397813089186882810530066419095242949370080562291428421187070605860227589431227216431182377614987354000787692664752310783453027287302888012644407522907312117150226654411332168836375184172682904832351399605007256964575067128062927402115839095822118372186710089783343746181268688990915016949718309529797914234251429640341636871871431245445270067341938131532474880703885464558234001210903908530050144231336658505599169194795156854046516379652723143628259657986872012957346875549847617398539503620564957650302706859920921438535114921685658878687439297855192986499741179155733990407273877119715244133422439123006870918943964824803477845442156532626514655632542992341740247242854326905158424200332871891862321161173448466262308669110052236519331096979805152123799995413878907322240640124261891810819776231723749780428512118586892438423474008280380771305752626046841315688385180194495189816402698452329328108582329600074221659426459463419583537594824727503823155111352250188129494281250668097724433553711882952970652683339563742663402666766628992266037062259542455550489410290890644965072819772864794710973046948636514009395076123079433407492611795791263618203502332394149251789138240462946465742095335065467345935190284222065083043873919122195066085580978561126425132808169791748303690288011460616116666263317225777357901064448591548389267180456122729796388354310058111126285984483164816765625671957062224202284504345999482202009686280188838171633171358614327730415055399971645177057203077724287718135417307560624476568187653624762947147008713181377792768977787807810354167584813621346656393949490952332622365715966657849201464251174846962152321082478646852905102037120132191860712025064923119269704932279039254430632072774977800615458611031517499254528461436893282249798232940096204641502440119806641543645016381777024047309554288177243931271239251731179609780299428008905160828415507395324942068558223864416046097386262728967144050146471412064350274827476930837815549936038028762179247102465790853522206135858507683187309501179554044660530036466434452060860466202255805529621954688198908280575181157159861314924338340989613879115678128696071621357658597215366416441664054763049119383207162158486242638907771518560456418408372194687448939999749066169278650409395253319107121550096496367177383835765704602535654592566388485789008607000653961569268222641115854531114576120853111221615892581240196158577529746786187300963550395915525519245267872826460209216409070399674908474676363226562229458907260723545875137709320950073085481505399427309658264031977425736089105314689738919769257037284763571614432588151793694685889870590748336792257778698342543811054525003620959287539570235164071967513855853902880310638404234989436079570379103405974138502620072183040965345901339357709313641173612026990862518747445157708884780167915452421165381030922923681710798588331333745879247440942832049725471248575637254059216603554827849103587462628545904819445746692903794485195945157092323479244730529906379551122920805833408196074826081893396394978616971889980772560942210978286545894921197752716376940796050873865439410727092894896636346988115565561316223583096910715230072217959437845115688621102695472382314768228029372701779887334549621277687904972578143028081044600061997279454544125050472470925185459742224823793403809315625777321818641892421981149853287938025380923424881834563272318416466379309533372334417296958086905091526914425719906897766034157352161773915631189902764486588689926529757480910116036051335865109929439532003156266609968489927120147844932957240640666001861454932859704794338118875805858352506837281081700934859463132706750430293773417837434917534145236074981641587188194760870995531088011483201950279399179452037262182917801029740556253624827889231560882817724934933947853589681338131693019181090171613192762182288907317092344754726230151967182165257263648264811862596185389865805036705693659893470568108944631646391595195372709122073152794398614196686665284556635503757428027418627208421128253838359192013741470946361159624969813031349076004616722228765118586312597111192811840223343013428084242393731739278866715706300218757391530279204829894940563767935302645021884417166127904220705456398556956061012871676985302641473915518957945170395283916807389745859424253430113276328472567548516795044804733562131891930035154280239055364795213656784844225480607752950766968613854783967895606486200845154687592123059007453057142739754676655798772721719316317607764321806607167799358487130191154676795205657475446082701792441165473971287817148774058187413286292741361319542547130917106478321707216408659310594706143979567983541266143589371322292914955288637993296702202894647103598736092449511945483505909807350728091141350429640978162106646383783893971149964477257069692324543647636574290179025633810622464399031831228208560694061785224081478086054455454694892998660168843412231756857956264523811078324406333031780816801622026601800433028404588560265998904458917181923632731894758416723877626865807493499177896191605911012685200305806716507795469658235322715663918312455843822580472656479950043822854122988865834870892346794625419544646799165669522573432817425673034038891230008456292965879507795493797356375846441459212407010962078945475978891077954770194365731823694500067112474315261620912737654980697580947834336866395315464062433376430245363679788321328595888497499393270871323549507053914947963578962888217090772002916254674863719281990328360074495954661164018581634538806108250473067116007773194961090525132817963062383549515782124843257890201028551472415741219035019504861807255221324825812691919124620604494784432519037901155618018199629504269680907822157747517619041574281394346272423481161232854259739078991972932020117477437501933378675463523578823745623331735679546702561954703450924788182776998421445078534700942819498185803042163123472554657915633635454244987638635406621966880943824765172369906302107237412712520468745423773480021216761269284091548923011279922774693017068182751295764451367498749114707213427471087652753814167361799955203826535922843482927312308395150581651955178189729615555585653019859985843521425577597132292497543114176255601724166936645196440260567606497074832654537579600260401149140961449927875182169993199781287704050433269846474844331886420382468296519227031234831274403881053021459873697498102691497190860394271426298541858910223628931207491265511301273900853323399953692915702327829937326394342734295775723773194654006547505003475282105471342387934111492494733604352837793024300191432642337423978817026247951064041263979766378315881117965929974877012362720482806922907925007830670716556036310258921493475994547595802667268070281953655218875062385466370754972859668384088995898728782326091882655006312467365024277773309638024021029563873925841015149519839689467016741935318259777426996394191956880307365602840188997111236650555958017251854940527027260497126788348997423158244413696942246522445370871467001341505630759625851029220874228992625443606118443616954560938653029935988058081874081787761058606948639699680153561807625818111752062332332129276126470782244471333854144511500351382770256807384529361245408708377014720981590132791373680732926800112014554095756905315824529747606683014556432076826397142720474851107642963616939112478856288894223669394786316192397398044349932770560970669540556977973557380004978345317216300353070169130752197322813681189814860316420918553594827053114753648127018983544429599952527288717881363835847493867730551506712895128281382667970613195048141979501278587750216467464256014541746824311033101760679254025253848061487421248497369068130276608404069861003874009479529915430992492173943086332555554652378947113343879819949677359348578020483266312821931234446125246885666034777693594701499578584434893485907510461863452064305582004627308874608219352791425719981217436731361757261422670671114195021721075432681524453618778457334097097153719602047616231812902422875772984838636482832007927063286976442604867270659533636089927950337148979154253831593696604601287464192018162095765595157966145818906630739347559898049392855074372654669228636687948413562405482200879150304689820505007592376931927978896694040973064249410793535778051839701105576717101889516953522136055910276284469727838187082998896994800802454784686318733066338062300778674814903119637286592499503797390984221772942630631608518918541532744359841361240135711335700030960079821154585248852370834990287780487348468648336464626805214652191111949468475038019408704575186265564356417642086325817431787976429375326233501834553502281464940547966169052691336294888686533045960995071174111206024574706499779871419251012849949763459850278167113831198083287077225137185156850206117316487805173447358285192154608145630407673204774582996374321360213235834487605641554888998179068795970232649822696039505620363293820311110610138911025275474245121443038633322563199191060606206492492219676105420547747426282079557386377521257907154577160225912676717199675905706974767640508586260355919215051246853800977906292204784454165816308925149859616151625950755600715118873773251034739160169942501028070402965686383373115558041284068307125684458964949183587623366583683616634775994988928695830141096534071831511154626774400226540534163529146050021911246905188461816736941227733852934776283068197945951361652722565920708105026209072310401998557115128422727377893216664358715644339958786198139737671064804805439365580068187426655015781111324974196406245154878300713223105900452539356873681405375261133462912688268215671869614368123650907587010972464300539871684627914783313639046054093580883469244426398940148395455701304820124387153771140785359479571972982570516693549879384906631047398698822378590083644757674797407090372315792456835600851072095081865875482206692722535492092147080583492151322373713247468919013286623667930782273468599098579395956887018673093159134684785044300812148005984440476558581787353165608135120262917809186458906293660959999843930983934662118108219651677461550006638281004013940610843632668613163129387626999288452279140706209340948171659044050157466504143746793439590717489336787653952297186880882229027989296229732529642414993328307824590901820131692691387985684874114795370937573220914707278578377834247314831327821568014260245156179740491592471828174180732796324701322176449717055501139669468846321326228118828406346163744463002249711576977475136413739493302494595972116563156221215805538245912893648365374237923562265886277624968059620446247638970568711306809657425356361091504626309711226253786049057370642070027959515240339758906511197468113670932745598107360685682793599555287643851761144649595021235943400443987813352931651175547730653698436287745492163102383272384768165594697644312191747066359918833848373000461454972653073259220045676172111236373809623747105805601259725434556924909982777643280980993759736838749193683700000691612634393003471672646506002265701248985735728918863443810450815397024467616013818807879100414099409566450157854167570313242085411057968570383850588156508462254806195785958252441953172833226461059385806362819663462711941825617710518006550642747401322251127353234464968495979677496149395519678767090072471333150215666865757265363810316703369075827094985293182527227160861066932543936370863992533153306842441928181251720164118426393298150305501460401977323548041100563771392993551516352168843094425962419964228873647799989581658068583223621339969461660861745111939423081344335525387964825126871583679857338459855146862791310827974429692571242263592896191810885159033939520076421801137519657497125865851876498640640250737693304824955936975761040266638739105859258010020302801884263242391404186231660904190478292841917447007676815474945622383847815366332556773979947026329448569548170187102523541919934175855650793395107391952953387787690109788499970827803928684162981779623305856485778407548401121107905607462008476911653254015162105582905046623106838187292724254147287595407119428904815912755714408200678259033689505966227678511295298920471163470083822492505889831060578921242442301301019064310004599697036431445956350925224247018548598986203252162835972863017653780431022506857368829024475987007773974167128836025022362985679965683880764760819734474967753580305314857181408940152900173748541646319819903951571183790942829021318055091927403310963397965143406556073538051424075415628666778861019802642087428772282668108363334980571131822022960097864922583070071676910234312213770533039508657718524035443253923073498926161136421124678986122402555574413144109117776523679050252808258349876304027317086402949620778809828253846943959214581302508492433106152861049179222102507146187119790295615190102493541767584385505413688951094668369833807321746780296870161205042895133733040083477899507950550214931288555134622076191685267437039149852105132931111833475662008646602446677172144177100359047679692990478139447291088030609173322460293513563650727822874125001308916786144370095778742272672583250621075286857787136478229505826225786515968684015049523450169944400530134041201533494408137118242908213724039865306155673472627895371259190234774646988745575547442966590061498257884693423652603906653674100264084371808977088100480915938626487264705669486148594809297270636603771633867902914122808846661419170455819101845165254264664854509070108251208185207258213054714201265660491269847145401004781417401657792646895356403238544941766636237709389282290902437259098846055840704596043944139867098251333413708569631172637506224666798045661455937461687538374611020238533598989817032762467654111092695540313367185418228815949310606843774981834437556116900745245473569979868402518555906036860095055219279371941988038120108133699880827013134540461976327043324073909236863138295455413587864617940136045426092971424716167501891230484920572920555234212331127192012354156943821356320274489576027049676246474072699587525044219377869142154646479148261219070026298110968298963695495613062243797929706231671593548539292263464845893542439890887953944360234844108166764162396829444163849394193709937660772412284949581825219422535575919971001236368299448680927973014319423776395514030096202951644206471312380022426034864362006831239512375459005623107223825680835774144061632108268768934888681650301541730699367343127482427737535160941214002922733775608972222233139307188550343083091193843048028347034438060931929734051733776428474294086839483603382895244887593317850358593230997651659454085257984980297268522148563438742050404578980921136045860543010882919111097527516288608319357613523942656571481572598975848254486121971619009210369457685787673045727809481847040740139566193173259858470050665745375218648177490234253651400602701824977995570113686505710627574470686402635333102114278805728287844883084643212158735818846420512486714365876602447094320020828789054686302239300412213215743673917517224775250408603805704625278932675874835977527465754771157097914038252420516205075199076330404893949475752851046985034891282669471086071392903702207100309034372614607063506604574955798799473317803804465419292287477568954828277206154516011502535097930340817640768509051532697508717628261505123089089160427496100898591668953050347660102832639836539167215916550045212674587543987213878967079390344874274798401411113208104110659961491709730086617014262617633612995202167512075755721504311746696953368048289476308529799671194524873488386502845092605962627708512363182602576265140736016621806046272690949134530436367668989774131615109685997707451147588873821748053533503152346965810248642320092555994469550312038077412316305484330684327357148810647928110708445117871819972603740994317346759486125691027097830730729614196681859987675818704933991244384065949304081914729841350024186447237796017179865375561235438782873314648194958470152820024677993576410772486318416814170408491354011196855660503923883498591801708382598214067877411822269170925499734390503415990358265963456709644423448382042632720599697490637215977478034871173961829902142298886377420898647632841083989200059289507829184483579166112751055343965384930840771781672235198620897797973850094850382412870960899162845935297715627134040425058053345972497547110305364544906681608389679158404677202361072571732729366162972198718713943135994535633100752481587317263100567860652134960484475719569682795547254635953066254655254539208991219540280523255526260824658903050660810330116843017040006284672065470529581932850085890381481011037513710860042528727550187957144183979127016369450240855473576511424903504218094293840104180798165216219163347381236596835422294447697783087394419921270351514624992664400150619529786571516888927825675801682404702253962510936100648911628797670109086661947734677659715377745263667249760000648980605904163944035379890075754620285774484734562269745588632531340718041039181107239234021304678162592236504278047763597517171750929130379021392267227925028969164154714173803789744868817597069073749258786614283855534291681764013028069933605926113248434963690403792080246086318037630180007891510934112198841711542231080709447701492267191572424839473473477946732490789538780212115796879610227490862362165804161346278610874450468263603132923844563773769903223822347153385383799098557448387752983839032086574394274957419222837374154339026215217926756374792044527810023438054183616489204748653795651726487144796001292491768308087979293922270477565040812256642802665519965617958070685864636547696198524604876511912583892314665963449349403471828229339950963258412612025755264751773042401797089420734687067830091691433511512578343721379740899875057864547306850862067432094808084184895919279303669831809689678392073136403492647270507104106766663475996561708902329221455019151080846729648901905743167569879154052088493872581001030094888246995113403809440614194407248355912419078201382321584142900336936504076435775272205395894987670705339206782772308227997808710279712540616960842303862503321256912064372368162594382955560685946646791659515730364915404726913146937873589183839592137402724488117616265705893424313180557609350798246722737009382058846876297130781564933410580440066747848075251663896785570672442312064011618972971206287392583538126858321008606890731672919512301999436592188650369677304584278061576148496516880421005694379367521509055307677217580302714755584472178976099619482695451579050536627849096399554927636222068456380389332562707905772660889330149525859854717625054941222597956892172615295909741769381392034158165683701200696051965619649193416240925049105815287100364889036628173525036006201133315907859410011784570808284014031351359512147432226448171291810798871892038847894223760807634602739220558409320585152226726189411264681213252770953874587175128900898353374617155883578253499883231577191289744565313534379198086046984937707567833815195898050516773758863830588478520755316838684855132121309674173202667662710324786061729217967168359426783558815493298943927633077378247828786870997786155499898016907023786211882231057109715342522390242482809107020656288660078108321323304325646299315066072997114395179324253516830898133944183127545618321437632713716424944831705787168479826308803811599772627496243759469194509477753627149899677712093506464748635286323714534022770359750203884940334210665159409740200383129653220842740674210092654600030472093724039311472385675509622205131460344671250463360069379526671672595980726139516391008035514087583376386227462686850998072823523320572889602013392199143280915640350544720203101640410115418284651950655726339348393052753797266433636546346971629936671354113687484181737756984303104945578703185497211020376911856669475745326683843796516728995403889280090803923221597251806652332441846376227493699777581018012542907518626635906001349220536567690544062629742818224105466957761854176647319256408356245240625303102945019869318182293601594940204225617510784306356172302688337553433167531297716926103158333041797021529637488558661611375474626142364825336016466377382803537608170903969747087553416247087778990443063317140398026472316020828821248762000576377104882779380727293443403595850957057392684521141757156940940289582153523123625277246478342753608172316354738836667206211852782152831623194196963820784068781810787264954036861202879854471000876712391930425306242556613051386095812585289247593133283847962569493445707372083874081276315851102836821886249780112672453533829821671489014010785947829385517539435731309490063559018920154024471410073649362696937140848220212246207467701462931755474588822620175078955802635619877322459720279898720999959635475603198107069222243187060009703331142980771393876013771167098099221992849245267705240829305621536993421019714179406180195629002312847750896572990550004361726362559366286443905366410286849420581671190100337973585838767795191885677575666453733570229459121331655561299022741744337917280057224181676848704508171118797076826685175266502767222117849626797644234674503284929231804799447231402442486066637330892665175714252258431658361558968167197282193859161569247106810151178829770001075471273100420735969646733736641003555548195275041781462974120748371469843727489293034725738879886398555176909411051504481076772203619120116917983549500869790582024793943130396507989093026167831741120767224525746491605032697964027559683203656654315136264750205589423547822906305122588748232405987217815057953879330363038296353122882661468553257709114525608109069119424743289051525328627421295887633541535320661035937680392931726469622478472303583783216624594876232000151882982206200848664155765369127297872837737781481123663344029982244509336148697382707649335054066787372567805393939726704290380901813535258076456923066463775466633499019406551301512972944513708911593870699943139792354810262569610738766611585273490010677252187577710036546171679476289960951667664950009193832336201866353248191660953247927320343940021946263264199673617768754279612577552332734465767160470045506787858026233883389126828451010542001313771506464671914215405172777086977408982834976167831541756553685359223819001730355105528318146899966681197427701767623248077828160719619604686203176259507786432494678865299316235669340413862520781283253784344819431620041509740338356410011257226911451303786026685837594365941634022992163435006395136678384570396425615023709152341583751552439935968194947359305780694571732222626851168467836408004102732517172703522419861924622841065838319235674586183664259390657662520848124498938807709230121862291744418855279333743405903112188921006564789350638505092756136922587395094146518606123272595393278838895505290525125061620137889120057575682031090981720562553632158073545512743789936713628968418495263788573856937397396344170403062017141907894856282554925770461371269356060888151797771095348064198934689792916646568729545565793850274408690881738618904319308732652352262116647676411742277316631444374142049884173968903625671852240897481778861596852112916662666123137142836274593899584477851765074541563505941909852062816667912137802062364555432334921720840322769610208538951203160147726379903520378827549068339215138372263694904737936340720648156643019411921396539988631753619840229731301940264038185578125018232958899912926934537120517498900964956362405581137114458636953186333924368231794217928746006415886431777305119656998655751613669201482013109379152957856370596859138829423576644662126871638023567074130370672478820282723382278520298645944362180999878927132092207154986412181429567054129676531450740060508879043513128216167861391544524923341944058590183927113550184325138967731123974173056745373243079564094728231872492196937464653256110984212508169547606671075364069449214675994629636217566972311523048401041101782114521625954888583833149140993388841059849338389894789683704287331616570522323215442876842458630115719777911686435924547031332304773165178195990338333972334157451716964618504585551654147854403374738394321197882848959488483501189442929938921107345156711598674434169863868771143105093448905941429196780479868912555386416478223096923720583104230807998339256089985741389941373538824392605664123601279678991707458649080659959382887632232283311740029262883129091440630393676318759340169768351363596755435076188690070654752737076362598250254920293291518277467133397959652043280982583042980222927902793912053617891472733700644757398889679228086722811965689884695630443339802374661132247625358502725510967350534933562428775577016757300078656110261088582218902449939283875061399677025702805603867767944552024274507492532074321348842267432609621746739098833544931498653108842245899572511572196748162661954727178549455326960522710945377687600022312155087849760553812778685812420072380160519576842301727126291783416783674631602518220757805040763240618251630147743704799561294237152019100546743373230581429872360456524053893555332363617108085676909663235804870888899483590485971910702118731260702124378315351302067646675266886202469984608193043822316569918249195814255247800800292533727436029887786641497757536087294325990939677318374642376501967517115684772648982731267193600101060920555279709311016067696625910569884215588300105472681976913832974068605720407266914326312574735992814740630998033818153283456294558456335891401745496805451054150203494113671585014762036360227805504552451770846372374398044938256872309353638893793394281671146508350448453293974776110765533271630262700767332595512764289758468866612887177929062965430863528573644771689599325455450394036771422795326112123141043024097456342712656032263477780869641911940371445811300754667266026631459001649925839256119890862088154345238837547458754679619076757731288818037863819158914774976559686044180438216350706516384204915564232390797535589925566679251379532386462580187941893461606286223468537870149464975816150693019066645068345089348138626953405469209139818195013496840346881489824699402468296647934467228931627643002207076539007466734261460320301728942605999282002702952662733610913140927866017407212683333990300345479884479360683130578199551744586771102709953664053287182018934579316519507525376618132364822429133821747587394129083173287990287955281094085571000911008723029156840341821357568456134975401747022663265797249366053986287050708055204273502612728081723507890486032872998442582975696777870221005565535190350006586176771198605524903258030398364099296578869740318611277585904127788153420376026675356491721366193836697853918606107325484363115471585851621613454182184075696374247108523419013709063070417160683894964472767646070010210616038380708613234742604676281618018551310250886185503256897902466579598258599697903167997486451608573844133914583751857824062365461378957142547728559490228423397754584673938508545278969203182784338815083295036669809200849195503099291078067219135117378030384850637447347793659484424773243750573668610968645305197325941360904394649844919519713693201895386385631589220796174927158638076106335391997514095959837048080756462076090542286140109230716068112569495340681991777663188976336618804193330444325017533027090377728785721716507959770820784845119863076798848986023581159133274763135843519336876667234641474009184712193062817486154879779568451028719823954954445860922119913183388304773865861610661594622173753370083448918961815366461102989061749098487440628863373845969990952439868549814156839048525329965395967513550166531376125808402818263209596101392301890107882448291297601111377522750010241198123049384313692186941841298313710017243032961084095374906873440437946563208579770026051723900747065606102469653991005061425300080668572976470912113771740600602213829332448177342312355255771143656126751800866136017041750391751469063197880570738212231057087176979255932751381329297682759313513465973973915964604506328404080604466112994817068782011877066529868869660515757467801288211086917770769755242481415172921426170212489016387817301308299194986317083164844621823516839345841934104312099505266226482818900874014121323229098309139958560920022644626387193653815026099709670011989981474164942713603376533138683962646610596999377639622152511065608573177948165084534267374154051993826183535492465450305683929512300652799288408404505741897149050963840167127802378244757461645077529942380768732760843793331639558919538187390075937785271858500523852580923810865049368387244541011044614564646330571297126558296734730640669241318070509079697135194601770235481150076514290930148525389774919603728778631455770267589599109762132493909601442859817952845204556094129849340540949878276475310651688209255007222339696464026643625756997557110549434017094178505412931958417299754381515195942219148545712415514425104790935503769842001755147046891672365979284959435528645635010372823873191613195669047682752788343108164432061394007462816907896354450367807580214230582246683022329856979865998300190871604247620353670736962474443794436641122325733738231224092990546860121640279302411988522996773613853227189458422348730783054889576923708671140657027833520958576852390840801686489373479455918080764222662893087249215039777346576800926966098013643555695493407827717112211318916808567931508943772792582224875602814666154792062032519259317653269923309814906901216096734229024446435210249754058260538897093419252897400743259940868349088644320491352363248737801285952725144053304498894625667763283179386938885766939985864371851926416049218439190704841170966640029225986312786434583253931358353825338854257407347142934789962513248518609406538768398688028182398098263186414262206123850002566550036179359832983584945519603208671648107381993277220333616407955244898744931928000023559842330504381968643915744546928713398590235556474805083276901360699942636272907085483613638564682537354308604329791897493261124238886467818508436861153809119723979213023705615184430607289851071810422769405332845558322493548570822540893830673840919323594690694414417746295850683966012100428868059945067982679755409189079737961545996459987351470076230567710241348640208655689838190856366586628739741450788779401108468563961250520047206793912653105550961133644895123953388273728019957306971493735885656702308304842491084772820900170445446104999512660482770909845678259130733873074551889824240426206144510595836482770622470854882086100288880195239942202694918729181147689819055495904177611859726340902331590725140891967020801653379325174501866900582416567438716329649701751121077784322517207064982972136987231643557699250297341783159778098208543312591298819051616567225287427229288433826478887698971595105841809750039977521917371435255141352435159843377794067994380570646224157471321068316647332990679964581960712298659728592050329176906931617821802271640676284508863061474269255876029426113781310182197456562430062691747953850741177113525499826169720348006099906020235627498405498854744506331633852148940797024410657537119418246033152865035478145304193406732110176162548579049599222611536635415279414929722205307913248280579910574888158161694463160190934770505815900826295702978985430005146868790269642107868403642053606407674861475063259544265086696297364544637641356418083338348385448938234604109555056705505851641663545233392805742900455776072240881599537968913180685628818517136207371493652553125030288857821145742340790088056954296455476704914079428177875175402328109581178908335271925413821952581737041184017448901013500560572118815143303715613554140655602924850887416820270791633573931092115816242073909132116787192465528897780975575604665556706408696137294810053461700575110925289050089228950804550589199481676591641890492313750880156317703356153047614722369289314675710849343898024796130555658124366676795625089119287492938279893823213641980895298280137020613948551158614607846185081736122628242794546766235536604092065408709071111856714108780322401326056821289262619804954164314679380644112721923081241629385427089265301290111031358896843695479447294969310829860309068965927208543751560521812298184461257100353270926933934509850486383645525026727269532803615859945162956679375686815119696972506046079213888711644755099722523452432607398136529689001900533246474062890036344292292047695762453639630643647228448966315558772307088554940218660810990174067055214589964249772532409669983705384185655535721001872051817835858584715541892980176244484612370259446236982996335641212672342580051662299063042780729197106591774580791995229291859731926589110934157733650436090464096642912380624071006675976757441955077375450242330963336510722580054805280958536602175147981262139704610087680014662295034505033988946788057014267267419530930697976296515246304316757720610116398670661429839408265655634185375006899065829087462735263120613749254327177973241176165865730102837752481991250887589869954463075970960040292572005912626474817234537865811241280132472513506851341586785292001086855505710069677649596665487527279707952070833807297392815198070343786595924036122030902375598217939307202140506684433270393421277197643895271726429507594852675855007644519354149658218076473837798412328220986306353309773912195610054031179768167989998751880069027031846323847640829212218592659125334867978893597577985600763404958252702873004846297442496453898736147185868507538317003360212108959935446611423594598237767728076419564057041108491288437131293329245004448195497875435062443397582709365727182413641937894211719245768217881645018868958131108975101527235276210358832482820845182863054576640766218561582883950685668628528233575866105045877292805111350930504650562947614505851432788839872376587662066212694665646334558607550078675614908060840615510926558729190270428809720360689282169824970968111264256277917517869840382360791293054488080897022662634044486645680542317597216974062922327179747442142646996673789635851864198530927508914904156900483877876284103882843479803459347509139934221053517481545286596309573419401531991101172450924237917979231282755423760751571907275418359461581336423666797734270101495925306848174027188810846098102244698344273879338853424361122197059486264917078894811618173811981763844433534803402395701992740191649844572408858993364812125098959031041389665620530778760826926623207525189540679462371211061402684747160309359204520183172930564258888116623308793575140627157344712959647498392986546755571276368601004355625792224306663618710849951538851181927481595208358540025149630687402816867299186089618864205605571190050217954523060546805365068493539182990321421974895277519171331765624512177116168152617670458736164828324262738765246354041629189355909490530518676559352534672103774404151031200951595278572463280717373448030214191946439593761080960318302957863965109733446500776105033931417350787658177294193415315109643524394961193561866867755019551472485556085486896125661787812926195280349955567389870723299290847214750715436266812674100354072581121569234981232297396372234359055520917660348271171855506449868801271856818194603220457408360751946301614225354209660597902719793025961599297775080007402798778768182255671445865508798022791121950780101447158445923321951802162186527155827691545513189739174082245053177608370914358296974746653696135232961068584551382990873692861768561674054532543787851931290658168414483539750792375758963700265516991068463100258931022454665795995586677811881850924248537383844544495556085618901078074105987750283782511276637697489160164737744479240099301467548272882374142424303263931848833021892365259185604726182585064161486299852451149036707615789117196997318141061560853265452342964777599548918166540871826294757195843444787875091303103665807368795268614139833120630847733016104443560788312006269671302641887920553498289932542881245340978580729819507230324639257499492933395106945966738352908081894699119208041532632586687821630437207825788318772037978253338691437992859325376996784394961679425766242666542734216428083750023803126597734630571041469088698105880218863921377328750327768364616614971238191931270589266747387352005468555430704514804565853881494804084245463681359810094080529934123289669462369829933433104933130183801236495340808929630154891552135499363325213548347480750392356589610747670329196605225581102469388810130217317918266315387289276141251083106642199534767796705182479301847083241186717292904376500153793157550209651282456898287351949944934242922154702907618514993037900968047535821575648903830362229608534962122484428386176187253915783132466690394091802343463779843405650612708499750149193241254800671046216758822203191806738150383966736162043614576430945861126642390020320035969005055163143769067599863723115500562470986481288398588336972890345502384874162196899388694535777885007723120885786635589521129971998661688318134546673122840473797577487826887105616683027634987813880409844538063859812519381966684120936048596872609686339170789965672712054469486549174453384974005127704249273580792151439754124045133887964266503688670238525749892464223657966524264846280208337362343634632803474236740886492389568852204948961850332177494960916929280940597193499496060105284097032206266876442461009786219915339498276895027084165324890899590108270526456779019162948481490776273369346612263290982981426520885315465587405389704971897011937107822672985528455109171370600882081555995383297823674492855411906296771906492341499717531896093854893585612241226571643844340034267494370306794970482990465306469117045812719669766028309218721971027370510391727406717143600072320649243166395946547758118012832690279010952811572065846888602921067500749776169168973415671182608908118284869155116529159797282434231692488155291527797049992668130050370953141334266531258868397132987136647533449001975332595276640281807671037335660050169637462597225661301980629333603182606276443462232509976529091677984531671509562054681680659829402222857722926698924841394314650135344825107133150001106412552565722593477917680944167273847192660761441051868609356110060672939784033705696607847210728756817495606859921771081072936538654306211135376230745518699295793200472088889112284276494909619011983220154628504538567613069622886367268072361239690156364569063738886978242600888814126576544130982534663632723254136996465734035466634735100106832410159974128189771977004968878876268393398469137115243371615738103470961719206090116412276204352077060526618689395269700092907280802210183585767330474983191490048627207040407695814357335669821983669690376914124227585690114229135903813676047639344443273594628438930678009518170661605265986920318259446940994910337345583349492463077991441097985563022866752682359626176050131233649626564308131458671076212739835226320739413264253788018984602740490667873898656281091346026083827289742444030765678435410514820724025301205189680259381272435849080015522006624988621653333248126573377769169732897349985142236981965996388096047307402607190985638144694925644282813786429167326979068339444261293175811201308284088845255088740947198174019159575977072338889263416783787585964349097755580300519941547347349195708433989256387487047954269606817756077972407959394980550823855600441255843659163983438288846229597221053132278166594420498478121994587739156479770671092133362659474711706003101136513445062751594316558883508965633179616867861066427760432237819574150039710737028036924613312045976491433411502091990292889574837341676973274595989083793060634152115136077655738256950159283463849647877872967942174359313636395912055392682248022947262303010681105434811746277548874707193476420038322043244642457334102084127125176100163100886911707306860125215487798299897465712018818875830700000306453632374380961652987029081440942401761026532366494402310759024751919834586231597723580116451959631563675213542853867514437534421839824914708508925555874794318506252410316499971937533434267582880693814529614060092336616437154368922664458892827471373044372414983712215314921238664986683719007634918166074357462321004060715297355797991457737243632130677459539712307760616306388646689802170751249439663669252114192807458705388198772975651560660161700640056351667664771304005346842222710199444522105243501799688657228944385389707807176199028335379748150107485395350485876765341931703784794963972821031229983166933695617000739722102258804140703759781522262827246117001766507587683860116377195898266933198371451058830491117612488819223043696019239701844007923064982914321420887846819517361814908069786649565926647215745967613145567730628497916684192105951874829366114554189589941631166778495520036944221138321172015432784088272012364565156984909734419218748942819420197160729971850283338677924934067584128365386459888699521605754671437253628726656422055060842514839130429253379568165600064512159639436043878993794761547721291686225017508791355987476940566968830523183594928844175499526337175923651943521770698939654035741449888615714903509636641326687766906451481034044061224130898134688466972542670670868319115474843274810446605549656328136927525561325242874530657336835272956464429092869602682145853676342837032172781874723498185316019396105922893438109551857903134773577204796304076361839652412187337957913947531527445958301593252328199202287445189232751995570141208443054678858835573195763917614949251617254173210742071214133044999450371206136531164550332460162335179250286885370870928191246958534505253380546293078544312020030343567205171201270896912451328585114814862805770401761814500658652246316259552287579250896887523389575271786273636917716020173174936413313151346380443863065850360807776314504396769412119126229897804189371281774546686591386742056801080760682872589965667568269123047582502459122973373491989395121870890944140352935655382412191303828383227979046948934190128468089112395804440557070827835590401301815948114935457160660881551564977837993623905769059276412622038757452503407500151365824559080903730148084261479042047002208209603303166093954420142727400516935216509071465905498285172048415888516507804984714986240524824193618085439615697716254781958833320376263446419046366969129744176528773608988716047940781470128825855485544940381762033890841738092594968341574336023287098687158171202486232020572447515605599243631866062187339092735536418075909802696475305915022087165258076296105958773305431611528238285757481735960512880049025569150514504497793280528843440832101245764854087277427380197847234792602966751208751371985106598102249780842648125437331221651087585550446873130274505845566950351711226494925246764734759098667567498159184699305296174766870272458483056335304520713421609881064571905829884994261639037883871722522534761745095458717227595043526410409173812327200426682939695278381574108130144177859347048430368049919825857266622190495790165698989832940995432860556376697202901479184569734422016611686826074674123500646364957838689632001730120162976868567728897335410697973981063230823192327509832376290474336482776498793146103669054635861401387870732951821043510531516416593626328398311534440554549572609900315462923368356366746487374234148248481311414714651604069236966432854505518995457578904617433018763982844743813799719060924443497433764197289278915065113608478098206277456508800590393419783125956881088691620371858857059371000501156859965756408473887803395401321226485515744530808081459817566908802909408667206859111587105428862915447391554408657985804238821420900924482392836648150771656605572503186872024614687545951271341095416113239611975096678854848589060725224886381870048484469950103613840140557827632839504766970631480553831983188313291667543051970790820253387798210140891825581597546424362961773377871202852448384392990059139008108368455292816757615534152024848954702248017807034516038423077831214326624451711159595298106914758386547976371379274791226590171653798435486722897490612875447196843801607393557078967033330596489206947849598657550304822040632042523610656869770348119349237298865081914163806596145426434501238335641108340766380319926397578127234918928330721548454438403066950538184640509710826004630730329100955213218635679777099543523549719251297856387214174682268019214735469075142641819347490202110812293926003491940223479453791518360617833401868062158971423344524693705547762341538267701124490202015833846266860906600723871593259777977446481358222711026380205375701647576698301147802279041214201877292899104307345983917265105157436793560331448929680762695493246881814036954226360439130892230772133680287179874146203207942621115032414249890602808184440806358697632485747136328209570700398745270323976477199425346991831678829464161961520893794774378763510590047711578916003794393156807498818968703566022649152903002387628176156107837873678932613581116670233146799032354651150478617478913336983472361187222921073161320780246074478605974396671637706698670922591016491044344051972418940508549278193319549098769909960503657789605393077625902026061661056149802209013294048458520066375527713189710938643818462737661611066903166073174789707341144047671943943635071439930753622032458992343135587302224384924287928355797870137572436921468407485669212969708426784836052590666148151850796778914297938534197350505427648915932813093085853937422854164109350720600312569999341088839454621794024752712976802560017274235411771171892742099364753344294579789270935684918408936435210002937919482208530026482759204540735166859847064438840368768209070147975103590782805149700139459469787749834773513571745770938638038156779843887468905883345834420794414694971242827066942677691888473874903958743084410264086867773429279818210110256939476662840446278855389219027446525214582793735782261155721197219839821822032182347316863365556084644562861190297821782911292329951970309507067245100846323565082617422365515245625575092578911831077811895862944064112949734370638715646821417863769478226225200207596975361796172276832563297444694730120138882953515751586970697302968977745128344764340188783983799494769079071413766708239656431779149338684498245738281051879326696322666144791045247973423910120696669871485777790657402237369784201828736866204588416092957451951921545692391160333253467673099969276482261380778403084483976497548353289327842791765908054193675749828609977959527882389473265136857221957746808765785287455950960284433655610384374097936739720044492327534402756853619868547006986609685457042850204987691547505657582453160200318286564122068275689486633367994266864872980644534701062817515046616345612495753499230077423876401537894605457302547567875954019929851092993067767165631587809022271485490158586683012753400293852976039778263400419540179584497978594034443701695236768135735833931989960979146083602252843454245367901230898946653666796615940141515440991876609718984897306676805588593494505174883141690902537547680224727995457979229223498840088068899237044834097803492423980787806372752027588260052450436047436436259308181812736254698498979060949652628446686703322347692517084949544592263935967527680398303338869319138362498790307664194815064243341518146897910208701491955758516854674278094147731224331990158599175882120501618671274017958851957312418392070480772358118853772891573277678123140814811623693384965335811016955259921867594997626612126008614024911082455395133010364363475125959134145991584665132003873797529164900471710920151444882343132345575324377067000877674251966268976037410655807249658410622149449616304206662996046019350719522069835878092743631000297395099933944217935447333809880979582472727851563056679087988423053504839315560322956851658015346624164665440323049722261529586316753637459086998328288390077851902469407206396533350992696439874889881862425245900832517150979258428817101167207079613425215141161716900274393803826480908270551773765442704882934677990801217621443490248011783285386095516660071619331432979079731588716379736086925545386075764679141952450917071207650588269945315874321706010908317349780026587772238749052475349071116364154280924404307657589281399998846082346888551379488285875384294461594893339314512159755708889476788220228386174974305870320598549630538292707724681783448824847681592564540200041312650343195357862825186366293025040537548677539330186756590321544509647209965103247897559048449958786438289646852257152327250615433707004341467381371454207778687535717623552207831140551860895953871575339366859436505003563915711447717276312800016311546583891707009699728699328700692368505871153871616274418043571982421258073258227638551849678117588306112112319610220356524038369307560528845370989136799863879614735706456187434482732113363919999302750846217829020075607981019438491418846140136416365607210598267114730251299656006386943342529689085543063412793452880497528194843401663251493749733025139135217122726785933335115138086896449275958466979218098545783054291344044979699913474794846876650285002257840277708989036066995758002943541469953465958070053891453028506767405837457027360758965867219297417067008795993834492933492454510845798039367281561355751174865435876312431027008169500630716556566743583858268405840969202497835147672229351821968255808183996251884329958938922106399956203294856768485226120124614849500559668924110598866407833157410929910892003483613569180372472282058665022033086520607241479575090528990271075304773060913814329952151213857238516027018051756690545079977759440092772136192405234855605234378867429714210139057563724966353426234484215294686157548373928870912207973520637003724352985211319624740425617198069382920437714156155607762263680347268345189991106852932399179503244933256805118153856932588575576831272335930379676168259832427010710298113967843760348741349863033490547577825423063060015689855595549287255057047099593451823736080754392318895444128698279085624424095449849704607941712437547647566267219072845680992640133393892247984845014509438423773188838415938967297432089678942575655364819369437349614415526425424787239852261092500653126828833809322421661530931427397312000068996451402790539653953818966050419047659900176459018040541952898160361435555711381578106065047965243966277183031731757143090512611226660124957670581258705269646804025115324109552342316706481106011420700578997308265493526500169185153788137537403293193029089815961470949878931538833502865868070879850964705301248794898211330478872721042789763251028899028625078155120781631649360880073350003046886632515556576991917897529579841832070405804245458739907502217639557355774593639273684251594578818541365662129767619051572524130171033627225101256019092797111019949738766995027341307966402026954393773970066556359255783633182207758685008686354252032489719857189152123704832480895690568573299342127703913072259488735047007563917845286562155355615646048034473113825871763868115309524654986024862163107416351598077421311092146489903107190036790633618278982803436792565754127749022493218021291728162982763887546776016618325814271030401956989120634067548828681006708805400464999615648720397825528308760306527175306352140107009687922100792920474102488263437259708761110480207281886354367034583319591389495210495726799589071647213409044389321793000628593012153484517653707243659376183733448481022383030697004167155610256869920766585055563863688951442629923979764667279827119324958520275300552324519396028442197620511734108187532360518359642986201451596709168217618386256413326857135324022380482284307582961322970483507295513282244994189198170867326340754710356392194566382970910420716596856570842151661359747162636610352813348489823031208296494831472881752529490623400077150062450045346163573890154293247387084341733308048798336877816552370215485519842477383962069596533587829209287583366654351939056438560171288223957057476797522703940730016688036976854482080337448880248145112521277565004241418472971077803153478904771111670383453649873885505012667276525661111696712528896707755239749080563438156791640237624994786514409047987857964960818331970844347962886789816711038307337722248912001390177313362761971754904194812665533596904780251161802446903764031112811239693100446597261806310232047883238031578475774988035557761220709240566823763837317165755565876603286948168799251807035368368413862568463382637426419940650975176741206714995890650971004208608142936081585749667130262092114099942175121912107860140156558357868066999322080342153853717747327667064682391583296312209058527747687836612990535281372214982363241061737309428444968681788315727592261828199317496285329622719092220460394941725813970431983650224713791641267200729812609178472589845823222552537010412980660326001138546239262045060674533641625533394287875579330085916790478672674476623220150302271837110889622793925242131340505080364308499093978650607682930071869415093286205831610812281657776547754144616303504669718775268150757486907887666470571653429832495908450247247477407933896940732465652872997330057229827617044039718664963011858592130300158163401188203464109006653694762278251091897143114643904483258825544318178294593411118758698581214357127237681970347558553741042903047116791950736349796797193489569001493484392077857622491377424797177317512285688125819357916130452252708135097988963938699864085388029831746142514886972251342032390076982338554802866991106800849362804778356415392758405189997801212640394743057698625840115063476336867308859093086986408507603074337145785047481897342759639217660951829323031365059659364303822736592242225129730768615801463595360978139105489587145949869607311043529864318783906512925451794792009559602323551120314174670662590829771089662118605670600441449651388110009928426881709380532123470010254640105729740202035771672102632476711490160207169768463518469783427591305226007403799443070691928115499770267765041373044734157755646846934669250705981679546725184621301080011670219633374364429715749169116221886711119578044968890929782330592136082040594292690285598896842475512626214740640048835635492487622761567353345269512581596436376535489565873314469484033239591025402694281072999402727619283848601782639651888737335749759873684325863047867211413452571234205018916065536769707026296915008282302801644501700862801231380282010247196485795507024639066519462063304227870319568275926316141840982901790876387857946597486346492632866422677004835244901386336810893688817815266724794917689600992277017849900614867454446998707917950391605441401602186566858935237551098034501324117186581047592119395419158813938525398056728676510027162555520842536290248833730656571582015116860133548882329908663933799188074799805835496889612498832054801237499609504656473461557464833451886833236344986821693759304698842145066891721113885590485722258900900259880359095139830135095805999208171944511136566894437834519370007703609231180625058407985046694056167562965289861947138868679518907065751853105896920700742901076330116881860563084955621555636086007387193603347715150116539290728512734180130554912158149466905304071897593859273901886304805127893301241474009546110214204196439047154179510240466109198930710056478674521513633037196787056458723062274754273411181335963010310428757614403144519476490775786739936606566860853000259820054475242388495672209417283764978780781472178138701766641190771722311312387007737995985200752934389011773626210986570062674190044488239130858068213032567354318335355884381930101512497006850802649352686006665439938409345259422477021700646996922914595318190522225287943911317727704365750178124546631495540886660188948198555169812327298173402785680207282596200497748745894102453477015889947882584162268466063078493307199469912936754678035586962461264552593430171874031756759239986215567899821516425587009169389626915693594276335916980702033093008920682518563101084280918789442248604349700390283424196038304299330530163548156966175268566769773036874765780560823128703790589267768163000056026978445774401692398399524347713615426740377014848475978015588119980455077205464961986336733225400737502848494840489062811853176746944843962959973275473927460715429332597613294474926274240586342058472082365532659149382517928684489778806209763705218202255170789153490795882571613110758932775947695290897305381172187561249952906685934442211391613249438177352481900339150757667068166242428717209432524427256749616584531339891628692021011651053419405362421598345620719284338303663196061836563432612293837886263135177151622487246244839672362962335471254655671362156726196921029249511695713943630008240789218103291114041137911904607675743176850640482532415523815568407509991585152123927882107316246244384117755725412842089786489417305789696788712990535263738212789815055582415804292106596843834508492158285194504614867707590066088369986298136980074265827546068758963815364171512871187252902945217715671049720346711293077271665439640728450190542637486003010261473380855490103009512172212459708254460932148402582756273601248782034580733696788658615484029960969824342438496214689076769325635300312694417008662421170651740398787030801340432857159702579796611553978948615923935640341167194462956118299821219094292357525143982229473682262050125204059445733448781013615223487409859399574975316646945885140712230966224179581787409729625592459623037173247456111630445775746063241669568884932150762925084007111615285785007616016418355202782925913055159046229170047705852611401341272954266151369560188479823654307156827200689045597963782316901101854473441089229402582206976031902066310166003212950311339119915503511190457169101032701856321683187806022899846893832750678483289917208415746089522276726779553992889809335100692726281932878692965709473726413572997686329489464683493508834264718080427613029103088601594127783825321831033746989865292142929711486443472330642087214542544717568927767530888399869393769825925972861684460162913738894061502882115056016385989680311046638816922927759710268102212748568603686874674088480712062083569589047418977398321414596421409821356704994238083008174573508497964469796477988114012661913209792534777296252739530611814511880890342786377434999995747858796036985435342481136042233392045001658256000392183505464715718942632066832952932156083918537125312315658298593072130594558563780305432705644778498116175388810969949192231191666356379001679228565865407834887749920818547007295208111836153841140193796029201262126896905504400745238925653122278483756727439664438926558735178218087464578302054091497772342360747455235372332603835987112651790557674762801379787732412124173412191338472130228609651531696461916224365911532829194923747511446296499383784757397718290024028078883918696425138875576109529253091180573917246828577212987915700034915551634223988195937930899082013344689281633806422948054771746166580916209146671986388730488912308793382866856299413100637349868463872561200696824610763341288527424366441305831659430142975578929761803420047467431181743294207183298803567102384352521942564080644717563607536107256446986937039054999165309523457261863990763460424910012712219511541632762000548721166744222734635652142827855013210992703240129285445944926477445490154225087532415253553279906710014971092596956789937519288751196805788917667443366736769063195697225656346653906898889788497032003786774405278330744856588796323936038181440759363462200053496773478228691614086616413635433636270164543420128715055404056325714516294095990113610410775515604716286231765960523663159918497996205072132467995569563155285160632283975858590765013228580879172203011220612955961118772770190055246305610463258631936106794511572829646612620899621043389831544943045250270611347084085850890702937716902505196720311389223950122019537021243276094403621984382964206371962565849256550680596334688657941307600949299423104003408047472389402178364264558798741911726061287581432967155770961490439822202869156033177841769296652352635092592997716935228720677199880848311815198163290023292402821840286241781414269321076263470749602442993441718724237028363712033242884801722023515325391607278380530655728120458435227775473997126063641755628526272773712543048975447915823242815484753063713393493764159239039705831991132170994168810012855518633955048405803850290828138028809891730873484056607935635650214380158216024465165010790859909604639958331607613695131213256000849494269847009758461641529508945847340000205260145637280773796287960932581901891655239971663421501600617881112900591206945108400486029223607763504920151323356868167113410033459257082695838564630024073216892630681857117352489930527412927491670117913832878267394863992894990085086242896729430246731169352090835627020263433394512134842753727371300017119078164471167088579660375129402835812433263025437310880407052950113980750693044794952495422895735379868547955025261441729118824218836463732943491925981636204084953313198017116706020273539458903799009728829234977241145845168130619212955319469930086375250756409013319872079285891200509081410812337992366949635988832107177367031197052035391333499179837376052311204837022765766374409813029010374843341490084360637306623661746309681134985786943078170042015175066180581500727330032328826466192118515454612819699000582153801372430807854238383488289424415798708410503237557680591164903547697059895936077325320477819107818610908184218969520188942423277988731206098460887804069958116198972853963974662697106612126867613927627901845403028361157224516980954106884676398887720154490161088254898574702004744926068784325968071857558780621048920697779303249704803817317231282668945852251613176489954143293619589288005094023708717708866646711489272893113649855341731689415180501112315274331142814671943033603242290478486339531699915734922813580439394744768957906255448146560481323029055395892547419041291270717047603305304981186894639000860846314907425861320141750980537701401646323508772480076896123632216969447872270469737911598681684166630258775784484879122367564321076206773372795597373682132503244103155980110253387692893802310031004103668682623371627051479777135965902071623465014898259840487578032487863555891696417301548410191538161346774742471900979474647243347958893655658284274883242805532514968924386592894306987704816207846072061336382981456915904281295025068617696305948615210097991289809799973031576739752455767007013966398570911314230770973357501322980526014964922269569761473828541594610184255437848979013694384787346242957362722663090837572684142001359622444745194949102152876125108735739015071785099344894193998259592577735294284976064779897395664526643897960590261402811945992504798035989853397434538929356336770739188527571991321993191868859457294766005897491210695668015814086619024225981932372796530993684427914173498427728368216939147386557809126604646425492975925432005620227351037985909578804910546467560210088233280377867082414815224042596730592469740495377731853633173048078713666983721610970160326851871180262357329002635987079963160998282665904665976837621332610427899879640334920915614121291163626195459791658871254747594379462103836277860573469614760539540818282504144808309905827698336726757752909823572272781608978099716516729129755433117930496873129886429704688398090450169212554027354730497136326955653741641664281074111797043902693131932030767377250589133275900701319130250672405507080927968018348746540038540042519121256741037733484021165898541398989009091902593020501496821539368348616088942735614535460570258286019128684961946597307744551163806119605097991148190144050731896029225826307300568830079938730751315225572108345206224841660775710716573930021192321207078816001382449837760368855295999282303433632447761732578067008632152508873349891991562888461936075465246268104111991713844411233367179926543500035638582224794938377803236903705551195581606178316341964682108527704176675908232796604305903822368753091849410460051258447075056793529520182915522819246493694693363051555249925801468054045889982746901176930576258365271711890295710931129665185892947891763977844940634737888674541794358376738779794244325611497486509458435327405372455829979506803766222391074016629017239873135537650768367833547514314698943707661562241114018218123295586903377506270950310792915227099541530781031771875465688433199723706491153324482804806477756469877089597366926062607480221137838036593171558177622917006046369258522738900832433219483063183038948930407755685136028900347792275851349423579589860290803142975505407155121169586163880813548210217704834494444960362669818978633804353749146866127527831438261830924539741926832037612327325079715630734494086536604165451265438971753013307521985395309887554875989404756583212176749465656418177853702945068560944318029127771028117480702293892435013368416019473815226330646058659681559178057369677065794290792346812289643994197963043746732229194429785012738275122363432185788625709578903008430580581728966340211180705127199645889640857741913204941712960157940770179280513308133753807976969793010520865248227552487575352323743639139049690941298570550165155577486797762881907561657137391701123827125753859202618424619381650949207162338537989945484634133746614169621048466436400566654178557246759088278266988301060742586194427819626483544789813260372674680274327441816361504834338473633322825962581110834930943692836002137683232166746283150775266659804567039079469365371642753487030682524687327293630921547288356560159302379483205600068004023884466107721170208318745496602251840236134882202275614579051729877679922705143540714001036959849132846406965058299963308455541825453405542478239993048160649281162558955539930016902481223754053694738994129678834403903555998791360448594557402975037551008737732921151298483508647693738384624330363457165503897198882240246486151902865665866047267782932327016820385601305636153411884695870994335668467952495896655922580831937257395702168828244217552853896860977302153392762109027278880118752517508109201422072255416046936583405966678840650193516341705569190629404960972326758558130746478090565207965750224276186603729333730107586574629418750491129169067675572193535556052996994235708645939092902219308533208345072695742742963427588753228127285496279574514894126140573547452304262887820174772146302160212017524849508698036933498097393103285616352374215431798030386357381311664299263749369533027134903886446539163852819309134316448596882503845408008359307287696955466806338896369771479872648930582468400952384733196279270763840646015933710632593455716840312032442174309524236894845722434444964197259771943629217804941864484874302420917423760496690109771752705760331625576639198252088209466345422334835194492655178034076699610800457396765107880793362072852468640078917560300513216044596513722743603933583003729692146599114067008990877331436742557916658475858627811073593823473063579706171897580948854152072288666221061500126315441477479660232577847390450383816434173140411268563059685218373105283932619556016166770521086624846844774440907175230804218142953914854704570437101274902218043501727171364068611861371782456345896270148181752500045603680116371802188411066322488954822305861815465288595377600175442534465587023747939555796843527655043986499590830200988344277105746708578884963219023907252839120549618555370028515264330660678036013318932363352009528684496031130872631782667160454639657318239423801196007509399071797533583981218236876489959389172571730313730707909574271275263197530670311908655612769395962639162448987414600092730336839133174075461125588716235856757930986583396213524568600869309143113921023419308064347761148968887427292664873365914797662201226968900557263192755581391577927333767035582236043131127546112467898933636511431451379609039463952772296446098019204910674549131315841606071990094801698890968528558967094715049232051258411621530909290485914236485866960659230394223434355474943350620838245363966391827664698814040919502449658225166665271211637258216116626978837796006456179628217410477565787411026668779365030580277412588423583465477876711538373853938652373975470962824138888804750603707441089856849213420495707659217807052978290822594755454191336587496479861854662659213069129152213261095869821210917080732154708037364402344411141763316301445538625305469751128756497787101725749319822294262075995597758246952706224824721893950434615577088782886195960859978912089302761757152892336870458140739193573026135854516857634975846270458913854395963456879937121270728498564343493109279808503407280843176453877125033637578515346146293271270410506934455602180282448951330468901001157200451287022136961633123309804357495566958535829347198731043284970954847417456996636403251459724805295487040000071022289650309893502353534926855744598325952881635763472427257945974947540963542238824540799003713800572762178207233571731788118364461343334568656402097500947148812122839582009794452234281196242567941706059870874506275692263704171086638601258128938330144034384415610617428390755437877097564583020970905416765463211868286730327083354440143857980099561263180835417922148581250197892066431394966168290271701692942133335286360502862791693422490645272949134134524469080457944697151933038771061081365844040967333348608980051557548691752104729986432794197622137486364987307767273954893187522451298017163711077673162438492600745374056758150205033298914000420909533636291566751992333327449162731882724273752088063650041838746349487439746036674748648376193470217458990657881000639358878540823893620212442217091023614612945353123971357502582001641586921717701257747580673522384805153652963225826679649567761599164964774873894248583382069012070660219460884663644971794001675715768334918857016842355177971224421611457920623877988535142984456909190199676973734308592082248546848235458711061711912650997675859372953269662058632949880089222495408431305187539581314020618499023981059883972204755863076588365719966114348752721452139576972122656739888634584695523829786611737975098460297452276741294892175215322321999364344369464907606775779603780740151445321188680457948602933510616346824331581979548210732364103956257322988625897877502340258796781074160682815335513984503315369206841815493355243504073549272784840747839226148331298409765013716685872878243615696571028717962942428366878177094903761935450956509239019481331641510624856949831441781440614838563352603800847005573844956929286813733369796419340076666624170980428075580456599662467691319561642050621797080212324201851353783857766686061887985922481734375576495606660528466422662902553193958774226435178076677253708159395038163085150949359055315179474546028427693395286862068795783604431594913374683984453684472959408988412584294928248252408641081324228440606949823145282468950948343192054539570421043200120108674821876615826007067489675633508859516112121291008205878245454780544522773324832308929088524241716104193513309281922669333372338131967496239374684847887150392360511396915823295289877180624352080738472830132397209772521765464051330457595017071803183350188859811489036386467255160817396145928741746818172987356534753166352237282555294412675503624568015053575095156347733169496872210497026704326317160393341489540296881757102544225205935377151626209142370709799253911748555141091835567845042427098523714474378070525540172616050202152271914395948702839968005593546413928476980183268546040772374964323677910512775896298475855128923523658473445677685324450483364701888729543508886855400707934628937140989828266538118182561661878752893468618063560696028428565625049182864420055264538620679799158988398485263429521974286091152550832858252885221355924225280932199304791773503495253308053422973716645566187750607444467983247824082719329125478669281838112474384739913746116198909893071018754906239958431137095904085024163377560572606752765388508675326290680493410636026091229709623080785675116207725966658252515300967453886767805977550758377610339106911180449468350602353544847900564002322552976496275940499733744731383262918845392522990197084067634086568790725554964724269886243932572624232686282584140989574598542475100977467881596870008030146321237854302865911874073923858445023253320229591122885049171630307391431118893264414170675517991802317210200857301558084453118677571735543986128350350751958035265008078399660542529594187222083740869861816159256648064936446416967831880090579252052414011098096494094421392841238238137902349720725410879886255111282965061059693214645410410164123517702522777270286872359953328734484811636072622217974851802938756682250298504370295635519010722250099762733182774337139274933176732024442613390864493474399324416573415779838123811907376520571168942847421761199438082262980858336243956745338727236142449385671157714826989601611072064353585231124389012173505174484907824739254562900864189637270602083251112138954404569918272054171789044703184417752590226227511760295502923240046023945583168685161270678076418218617204848341817509217738152770928709185822149382640115238287333010171948075238811533757789232531019745305017147560087273989052602124465014709052538345946023888190250472819958664270776372465317869863561304816575221759372210362832655368011042543467762974064469808057179563716948756025112513681433540450603935348485270931573197157314128192522575116450382413429777230339068805471231537669722988215803209503965758193704893087962712352940779006912976884374072878936368001342421939985832399263527504279826159672236909471590542797817601209978409920442313025321275462414889950497887846044782846244089167770732209763348184357842753938013023911007278571290197950897290423109757447013709286591001818990127163591238693987838054273443465034163655151331319733941736572488507029315172415947173418031970432674744791435396462557546669338269920519911966439490330883392218232512547395402634220417131217008391642611353697243405155269546757303392171687850282537275408564745759233926535443534459185476529525851869380563410295012458598538574057061028475477867344497842545316620625209086028840208099522897941844563031914896953617731590745954147245217730848652291072711819628912740496127328943276131156515240245602233459108825723848978874287349913249341358854971971428369471991119262913870997047452608697933756194417689931637905892768295246407326078972783766777460130210705358082286175564262586902795013686518546155299597190462175779001864353448254079219724080188009002838865933670543469572509169495448251242827971957721695426759394693280078797224438142192192416398249070040329789562730958068423544877140337724794255034560005934545174836329272955455824312702165380105128162260460255753597072742405906427574825238133480763776257616931364976472931494246457146962939628000426967643112489130933307994137356543334165652475945589893461011663796906433957554562827330167433670021353943439181136765198386834341064074895125725963677321675944462288173667019773037106170494741646480785573669972333789916016526011159594487019431633895063579323096867831514494784731552994132342979875496307331788645244514547138751177754230376006863928594656295117835543322522249843000252770292784038221411559517342995482647308966738750015233182831285612977178983479931321739703161186892539387791958934816687488025010379893039423050364750798226576509833122901721634492091095481957215164207053960484802112408697977188546378362361114913157028275547415664831568384470860850082477252719043040958847032475218163714142969310800798924599594928958716299918507151135610042021479690964093727795371059203062358781738817684505592118803133694159185197773247013561999635728991760087645366016718510071168377503691570658852259658051848902074959047002337922279108036263925105614199976255207002065849230881931911004834581114697594783395445611206413468219060505097625480334161044830464851606498690941657614911336764684916212203806494163680347284711601183229747936391115668715888372081653399365759049766065896226015961821625195546080783246824830505897492891319012530484235697967646296514328043172278306366234848520032042524840133038103245035934479831108894899790939528558885937601604324005977554699317507788727240846929993175394898083372755414841475039804163969422931821648925049767171155559418043732697150421041128939805752591202407458910556683597813588745335259354152791057393828162117964682470296726683568519536839440801148610431862950240282073019414231307162863481395663029706643658193827081094898838084989070679189603569961077091855389743569999747791490187676904275787524246273863606500906387374634510612420431075634031953297452989004467189791504096218077756009529826572452126001878537755544981841156483439829047834799249244675226302836185943747719800124423969376845920895353892463403395545233046478006788620502221784195063522377620816109156500701932240820046304531786468216844684042303254494724161716414586746851350774117101154256246335502528976450820654310634497725970304580557453668186103918260024053876825443950661801625259436244097257333193766925192905773298505488119637158913318351720944042833765442460725239493820747192394616401923178823537022208526179417415733092005793854165623782460509177005368754868386791937465395514251942847575388384816266481004843364951671099996693601479122092199784855187623014764516709080046925757694884241950543844674412531930468235249683656017737658245139691808011569945151609597611526424893957744999985516659267687120062689417392576121377640975566064843629605994763927937537140500339782014878060979571020276984501239655117616100715341142192414831773444062616325151698100500763295005742090525644819714920293527197636894559172289951784996574898803357575607891430551895616286285767587458866871193682505829158405054983391105279576777833919712167218284722177467106748061668591349594538400143282107115464931120127081343504864180150576019897468788935986024067482324185083978699061244631535001663163481001463312113800617440648339754944164214440718036934724350020411203007801359305902935609453279137705654889754427109182989158765685957892246185054494112693072049509496271524515790427129214330712076655075218917070333269788710001230578399201356129643115644395205133957322807302659372083249153289467408556390994167217929803054178169438269033221558172857587911499610247361244945920502196386580468990960952322371235064986483416882762267157327718120749135497443078131858705568561610670992805529894300161631715430007862364369140359369212664216092233845307017032518613973604992150815133056020708795696091427324913476634611373528510689289565657603266946518117941932952510854745305224370451438086475487246366761955354480676453599974086264240408743369725128297005812670847333989024635595594677133815701089275521166114053132156119227657080428937631490095019728617713644425804299016887154548566780672439163794883724583191864272588362020157087834643324411382305427677372557123500511190517319428683571376805296773057716343897915570799458243418444731250974324268591839181057811451167104052850942933205672351483590215467956972992581149705654632529698627807793890826825884287222964682080644571685344222831978408765126578835636377344588924570846372236398386946930056420587520855539350212463555918623461170759651960414592673636835303634317095484109090146696669626608115245002914667050310724074842387997874009344804761509949300979723649656542697853244524870606784210847376783333592712627962348472299264275161084759418499743835453695152637352953289073385681398983941081600639286439377959661588316759983298032291589420352931591585835633497008919737647181466369129671301353879744774932293460748431873033725401048265491627123153864195878348813356114573081603579410857873070218999405390788680826197202440996545031746937604824670345285123226343499991943598120786355960463745348765086039757363697304614313907338964044381328366794881107411232616583516413916509470663109640705618708528400369534846207909300613414645374376913077070956358998429097931420475870020984996914826423144267487910041328298616637032976518429229957884103012296797336420346187751915114309111941340300496575167485321473637384744515300849097062164890558054916406644609616325246483767069301197156329163186235255159863376817209327190627821629426586716384779117570662518167907620972366001702080697624239109043712798019556451673484740037792529493762012262735105114339364061630003160724020790324978923469049375620126062583592214595225822338533460788521980610111173665385528626533558565589081956097501989618864289292000355324859748886138021214078160220132335253660137259388969333150094987233627283349870340806134121666291355116722172877271082337424429604154670659842748221259027362556587429627352624965546744505609341103635359734219016894808452742519276396323028598671714174577514396098722319664846285744229725947333832119032434072569240173969833430596144697432596030560220869639624659874610596006523637461002145339527705513126110801310357795849516102913483446126354441459595044636942912994132796211154494245730420556689402235708142121592515162754625458319116868449876511172448774986817444314105734435139636693706527210596498437309689978505454959758618458305851436765128889229603556734167859622957763968776199520777579002996940357265597876412003387137291259620250776794874540883861337335455372920917338321973251378392229322942220795384669486951019102216631716631867344955412875521553859239382760228277310635525220503961024797705350641395793809339519198483405586452502507819250277323238795637236772286879715801274505361695760771169513937493387339974718720078740355673186484720214673430341105073950987050996236620928015103932096630580793671744106466227800096133984664021124087380581515584736520974858323942135165454937750940328382166451931016301753039589047884474046115358833764162820314763847423122825315237970316494795494254834748477768534147904346845714794393963355367774607813616334452329137166712748302645846724676184105446342326822994372459808882988880291181126947561560780340619472679478255335137819036776813298866191129974694952922274932024390524370155013663149226790163794243628902413897772606031031515014996529792188876323204631970082486143521238954003409582501673466256726078887259188983826868003869276040408042442170460772805506086056213033412470204873164844692297618805382543262637742302573516275719746908514598266279239531289947383576556242113159985487045206536283930014688627393749140548105034599120589476396595762454044791388301854498862224009533180645623126751590958899638980603117206552948398792591504997380807572212671288535835800717754086465354021405935634657400315843445922807664684889611432559375449542329202568566672519411260025852968948319441283669880581899799248960877888623583037971491699313194303987424957577506694489320451669643897036592022115899489169211975529999328288517256378247681206501671815937717454766489216822555810624887231364891434132350064876030064246307225316250671418776593848384520218296005114353691786056337130025470026231192566158306351993872733530921525254757529504576640345191500122420779459078393108145505479839032408294018656822317421589706555318624524716829266918695777250434408907244967570212015299337149190844566649100714964950680365518675646114226333228160269225157800348980248995554719823642592213371435316467455570450543348166568652285323916641731359360394163332164809463098544827073674159474752211856023423278239745450395152925966464178633322908003532521163089016493447686094539732304577478233440933990937827477143462355021100471351091107156627801185979340278393097003328410248367977201226267433749691085238816311461116409030826728458450629173807428965767174857013485839838140218335492168100630233639994771921820562295707057949104096194215932319469992846855772265780871021553680268463565223288813435164966637602798053310817925292642095099959648451723779372865241546486723601289759919358013542681313935678516740949871481945813610086920853391976293536452885437827860358970079465670358285762085014781323435324466707204929708545530302766239527666084421038785329049135966678754545537350895937901113381177442064756514036675167365713614930151021135184234242499706573125227088529304890957241967208658911152402274830183007108939142939617720594610442018486026342131638379320652332739741134116899181164666083789681600463945829765745385235763343506110389388531419959078867036772881998971586934293852004997952554303833081961866537811391609092266983889778320086901068118946379952235386477910521132794628603111957013477304552089161594476761070562800914248930949389145579532221888180417177320341066615033910820457895269467680670771738836976066268220183630230153658179674680467736433671340189139797924419617421832087191076962360925749905253707814060275402948603708721717497252125266922367482217369187842714225233884370568233920147191861183173424873898140501301084213060116211439079382693725583980662824243881667081299833495837338999306159226191881225923101349548848766919837662872917365807947017826477875506652878664756271810286067841811859287613927258297149411809250781863097672993432223478915023519861438119848626536605310477750970984323629718844480344644520695661774987372317877392915491919586612202695225182689959420296938070048741740540968909256047127143011944941267119881108347675987845248527182492595019999658289164089586049466997051432400258307879672877960822670057699350856457562882104978638078685261525154654541542688863252415521213800808887152061274391281408176696180798451462861884952210149479692143243881218863674114580888097882586594366181704313361848787015744036357328450071470893834415467569410820985758603066554579869882921540711155710669023139187257974726548000977415556295825024552239887941259503556557807150886868439055390478942522303776214330127626797819101446136113067505271101970110130625797304670958353843733896560421200427707129893966589714839311602716728024707936013836761877980231197647109963672081835413560567598512036827981185162786332076477683277728250878304228232755747433568528420272434187214942797611331675549613037483544701516597013618321489791882007007315618027334924068205257391759864600365898482865817603360551588594059331869787416356856709120548724822346280549110922839912875751797490913782871246442364171649982982112059229937589309214370516703895111535195782147625817891942251854062139779508153841277804588813138384446835621504679211795817238685645056810154078369430790044249756468498543849215398976321759222590301512925024810523379525666626046677277583085763400949949696318704692958460712399351351175609889264110925058389019264945073905838681223612264826633224617269829370533736128930444548704195638798548326656911218340374938243026746563330402669912579171558371017753617239113547318448825936489854049663071809107513454722129868099237009588136595568937580120420514012627447198688098909498613999512559844294078663734671780588448290489594547939517864530204611412199001038683947835165163593778477887352513496893299750151994885593140361369540332251061847886435953747317394317512031667255115752359819758879823012269437876829821700943399311486125501290850664076805006468971490120289203415588846174265279428253515026652795734146232443127383376854260460692809748809137969496237972026038821947280254257993164335960056272512119533317051083410913806922573949620288868443842618472339701549899809715840529353844477518881922530636966545678848294710229067255177291129460385081978241608137409606576564760237013605762520325700086921795042201310369685442731490828983336664503010945608967747523182627311441511373542147119929640972576450597184599713596915663750151316990557633197230194630046291881190112131145324485337399613093203641948274617270250457143840162367749913822850411072285598965272352071614780200861047504751780308647549436803730758584126699723259097230667719250365599346319899889641360730195059535629059514738343418020645808609594952346204320007146561739587064330914774175396027707404160013280610811785273709955348935203580841881310084137938416721869807587862800989096695148781609041176202389756542807477167438344460768252580544406556336570232845276886376291645203302314832105648290154506760579738643443577352576133119279639560431703236739427453376278516265159636140308573620471876533182846114093276502217640961440165417236387731844413491469628722928826016610247002365823680875165775152295225833239116347419995469039508039884086716597991781261688899866312732714709882128449714803399850537494505284219047438075819515846262825941731525074442165727818418142863404430352253092055909868158692062624910176676962887078451049315153616291310180259223256247875603952315351228525860592964318940458420506491212658578347896636534837624290378165442399112235434879503789573799672903917399772904695008775293173070814691301073843256845279325387339237313089213490438543170127268588382534383944025933771862754808060440494030822080938747236529137500087942830699777498027253892595923915564624572219912806524770720315814655075703666435616014453246712765642154042448963807637691767350662428565460766155797038689931443346007450560139923075390432180722857371584472895264135591154621978822109538291967125922437704987184132487200274181493050600733202668336312410310417744928732846762612866092722069625607829355378314708010569927499846291576339577155897676364615204744042375555820648740050058133339999345928890474472756527759031171995973554264722988714276052091047480624084069988116236926948621088206145808187394228441699106207761505737173447675017259983348712426884575435407317566376148581095290479605216603501822349338046162979120228820955401076040808839738742826074317767684264520338062239091584300162634526851945056038128083082756491820972049591562706109602430903270620560681594667984501894048865092807844354168540510922849887154384850666281202168600960499008668131045053613910684780928270226424762224132977427026836456502904161184355896238645415370029996388994912552614511595035234303469909493072565262352427210188463053002688420133837150889326577810306422114207788188753370068106822210280557502230127466097969306432693802885200730570072500683489574091642191650575774480182582335451410541197466138089622253918642294589415856537543846757739660627598261682610317823967789753308152459937188220768678431638304609088958440730155680608949272523555293073338562998713193448710060862493292049183384513362995828088563477283810039383015973149008472496850357767377222151665040450713085310286630556678808384263782638491980579452263358898961256858154622755888268787213057110289357351482045243285039906351123808940464697193669268614581012063366409654121962354440099843953140683784946385643860631478391743164580131099275551021611776416897906801457382708797245720550603403968903562441804546495651301008743202957596541533391177725318356137416885852155668734924726292420555116361416372624791059219229056024118683294430962562171514908424299709427167096608510334422408678893560299509983464059952271983576467347990038681577270520012390146192273891899047118831707524916875204889166477539775452833811333223086349416918193799574443230716526288335624794122637452413301120599374295340889942038380741882386615538614059342168124147453925532441579406384908147041275909045749627006466369757856206564709184480455051505099449836982148512148903883204095281812679871379614331078312761825793084336765013497315288239806330585577183783632281746621818915172011506152869433207410828395792297016310317086335398025521572008542011274286806538346608943897346975824819832711905079023058310952645318139787361347000219093193571407161734255867839667802786313287659124086495093690221141115290021578712975112425783116484463228042182011518235720995810354992450234655732644612777779934161316730438546248197719003974070727765343110704968153694934266660623076942399896326210486148071596368206272916817885793891815427539103454506351921650660187575668828126569052159459598567394987258379511517537479382367840852288085732224021463880811406175495280169417758195081130309026767272846806525138984548362079456556019080143526025438397984059762634917747885155284775534599123326963168012561439989642892760488269859789123126343487625062580103288144969483915751750741223631335640279374272402145103286531445083379522991984427859206304952839380189646998995195324837966836122900203140736255278731136065681533469959640640512011148683165078828094042381354749964512222995986851477939620625211890541069455400884432439242108989989388355087380667622558752228043976667698696078074464606770795924687941133961391063616239298478586092909685786958903854088687982557346613099498223605897698493173203358639027842527015031422919748066459456229812201872511056814704822327479945007497339383431330170291432321682049636229622034381529034444967894617426339954719325913625283468714485480052499982981919682301096172402899993370795813243468290343734271174051371421362838459170060952620216268360364710349478073729375543981532792155978633300179435794787532540789864839598168635922028875463011741315526159293006283389767102257031847259631319037318852193833480981629050122032557447137652350090380779466078021731104728697237469869059177125003817888625043730456732119299598604255216526608121643521266134926468015298846336442562674035861623755031262318632221762048087231684385566874439808670493233178851259625362876396943961515213031883941957074486595619112849779250025878095676187042897897775701664560830253099967891523978458095999727612580633440340632262554711505862963408512137921971310774409856716666521621165489600555799714232682870326702641127340152875575736961864798778578735711564244394479152067170201658604895189902690407304828646016972653138811768884435461813396836272657913753815540726792784892559153780752622469538485436020150508013120885399835122791870083068522333821632212885536255220121224489620683627757896772187224655510271656240116150619834424574455185210615454450058860407100373130429227397602168863823575900453164877774590243301629302662758245137956793365252253168738285429819260622897763742256126118003711846887309597926279330361441173977853843950988308613170349981577774370705678242131411076338506430571810424729159594804028058120416829633556948770010362567289185160579717607693260952196268308409551086190198557948795257650526859616492018342666885540255056478803170410247529391293592362470330388525004982760727316320469538251605374020551059094738763473256707165765388483821275992298165005067578589700222221229210701136432064231807796502530689279991961882319729452452545662551619850610379166839668362942726967688562020885809816591575083414100599706150806883760041451924041433261911915292963804365904475660827211908749169416702836095195481899436886887411422491025377227000611543838761950551060789164886015074223972861075259708030015398233785213042490910962236601277497908826497115264935892827054100479142489717058056694720852952831454797123308628403543659956672869470090714216110440588335539320657104549102207193829872846659521719903876946071345288331252173212094621500188193812810273707314512022931637955428157137261173910217830887474114078507472383048426966253616866113570942707418157844049805269256058162450535651646083013521715769314941324962436675542055702403744623449340068434604948332386754434372509867560356153866507212458468006603165352624618880840608683551759388904711922436360890758842290396253630790719666443773710007447185396571720094509782684937260751361573151371599553055254841386026784036756555330081024102463924349537805218722289512062451592890350327047729120025421753822564810681415765219891325133439043110690071522432274047887032407292043387480689101769627823370647243974302733830501445191845263024077455989097926205024502292860913387149549133446910249136256761871601848175771070003973514490601114398694532551535211878874862227327860738913232127584510120637522088259936922472926242613144233732345119209683154323685280490640495125141230970558764069369374106375680647418130150686008937732941975925692897998658558027229307490078100661683069717283871238381975539472808166241878453032004489445973163901005573161801374995926794378442111242298008645988822584799059134425418146587596708847212106735993424357453949847041931241156097465314286340905785308085240468731590336728418163178165795938530558205195265159650635510237054216765434208937988849473393748195425062091820489889018799731652876535529129794674755454703934047352601611757393787596407320050147450603243375317413099495981971043077612716161107294752344992179420320046192338933436042556658979655114854833532971758611932634090951055488877556244275674735872637790940248066616174490677818921401853099654778601399717958243087710672445999769538433279952840766145261558980351814582513987461057608343472623852609341078226863316788845297853356329260828569512043253213773409426158112222950148642418785392975260255574750658440524423200370355729397432049136097859514974012381099003425357249277927461031222019131372153274973487157342784107385555060432769166058494552728670925719984407010977775827527111466461024147215485851465382200433879440701605163781422158123383228396562217267763381706305342315748694093273786114647316950928793357987664315330758400101788366333026532991406766500873608899506417561474176229170856135368183032526843382390581405719825581897666826213395879908606679361541392862760601444410414072004406560373430751174171876322073955151514362363215354082798008420486916665940927497606663034737679036123144785880792272363931496331183241857319791576427175071088343110208032346029433506639970885662089515103598503215634857928620490463157954846004115592425575828621399176663394413575888437862976062451678391276127096105227119121907864284122918275486789646454420153204831399511608350076057443740555389813329359841725512598457228613878236915714261451624541872914143781615394036093753593308767330184512600686363064319342673656983641379956581528935048541762839543480527050575947316874618020301006485922251106416029519332906052828596670764119651056075269482736816672992099813180518284337869603059817838221098516095846696606291977535426805151461392016138858962504579336518898772435174342006196729143238743989654926758717553650594612090151571220109235422011810462860654547958717086691678351901387522774615660878265540633045026242319273977855063824238910600232445095884633911085394571641235043673056877272039431328546446930648790207885797865299523392280677662340118577621497260903869318428438899665050781372812440736407926042064776148692518167535615495917782543810266077049281009148513574950067879246223047785558957207132959825324556527259129321320972777104783500776817838775274437449043575442641211294381503893434563412029580925204186581981303149298913517958565878061733987036198895723027094249339190180557873164662426739966501466010988476731229001196188580894599224045247683631733682416716034270373526481771869810111319216796209404478324913158881562151817248479472386538295092187276714584212407794860178519588996833751730229781091427149078526984977038883911121146182121104982685072342709211169652634205419504201786680822505374110031121102243889900212945066148759498559572101356429137175560660078054814181974349102786144846222946192177983637261866399291195258556056715330679670389522583413494125350116910945955344715718054173535091470271829247414820605459367970382830410083058289723143866521387446944664900031947908766597514220244104949104369762916975584214233889328199579535518387018522626590310370714494786436283665111138621954252517384378936635936308317398804162379858695909066892357690580194381469871957880906050683539957790913675819126152059936344450524168305926014883094919392471850533394132507328067221074033202981236229831553042802091555708412900402033250436145140668931130070050180182428043161603687333569736387065289330948143239664748362160468862064867167286654926843712276164844783247326299099077113841824756734161377896574888730900940473501295700620775935993345833299678807999216276229833934931988075589632408479917231058720388937193624065911959287621511534320957760435556702472331047754953691322199342936132585451072026273523241307811402998959157325363271986253204016566541670704229830733750029334813821752530395860441909049214453726167336182071841078529538956242328797953334921439695239676524675448714902492024764249601516285896937848517839384696341735842274262335615880633197724368182967616504969875896059048622257189971777660159544801147767196613737798547344515674107457208704877494713044531331974160492002753411586574654114988059299805599801511236967629178557846075137308832221378192429322874555686270807702250204421401112136552447015995771282599382880186602697865336113083820362015359664658257759198691808925941002225308312910310842377239693197728076631991620711512041314517858820128868833087986826459023168358571982892650638221812767856558842729273308328582239044652148451400554609626985493295176362257930983274607823638015917273486608344980843573884571786690770721033137794735999639700759027864804639358386721926350216897925570233243308001381313730316375353796509951952779529856706791485627282709660789223325997312591393518416429641490725368989039413361286004464215959226526216980787708326154757259370004182379107166892211426715193194219097262017082179062633606027198545984706570854528921303188409130051515143990397830346451350637883199506501119189982514336360001868825113258816782142054351947862565260658020786555498197016254336528714767355924428609658877606385676915233297347330802157741149089608323414587865919028724347414941378866065086337790853350752244465020846098161553874550874838385410717797156284058795804706345038734737923306893278769703389093893735609236742600835401449036082245023804305508073511291672839734077400738701163830441406124586033077680197342985034440143807945930363175499588722184410135225848399479851079129752227194654024355893119529653775207229051088137538297845328053503544244159466470488944719097124161490061406105578004704388886134787797435403184579143941010480345706997760576869635529573214278973262124643888052512333035443874717962532198424088004711773346219516259953941797428360145431232168846012377658710721777263649864472009900737822337212230562807493046130318791890713219692822992475349539433609049522676485905130200316131751450355901762866950945554976827245459613360917885476842886728029933180074574674840381185606371102420895282756836472852355600201702206526611132387830649296368385173367585853899425241270854654654844601759631994918459786152100365584464828797425464375025152962627338050321308387092033539935041998654950331687305674278323338394194601125986323968018958543375027559371809265525335947222173805537739237122975392504259511248828932528177973085528626653097008697895287954873299635772934474371616473229632526731199072014768239173629691707446631003243349497467338183476836975963754117799102108358642186978360102665990593060934602615023009714849000233741187040896973011418688050831502038946675100535885240632210005623846056515226938889821633816440408499287577827457426998346810092072971538026344150318526404914460509480879807360395193990198758570990433012181183193091734638759606351211514094239855754279086582983783817642587141641793765716067243311434161551983861734368865123850446625294460457071789903160684505839262301673826585525860893263955484462534928982290624197937089077037308974277244626849594851529310391505927008681092095923680892943744668772394340237048233346300152259977284486367091293434096601984561938007279437621067672455597041876537516855776839299215785043213912623129559691190227153981024885459765920860277202203724483805180821335622402444995575413483365940477915060166055283859764625790903667930263613609720895723089192624099764946613565721868314073124488563952607626650931565185350104227919420049354185244277508385923460296585623395898125049229969679105174498320660396734129301481415682139397328518836890188133539292708424114655789901652674120617647379932487212150601344079382144048578012070566113011838904530190704306673706931083064657293874961938217041664978061458960629769077832972607897691015981360032861004876247397857249205054152286811943749357251046879783633043641139927437819142823889588548163909150234149654630316905245648779921381829343492504008540952390823415579569888826475821599097238986852368371263146619312281851036574922047793894025905112940733620193786791059265156330900156696941365975031706418660725457985327249173031928138299313134138724032925249935656454082297173555094283670290949944909487923272371774461559944498102695650485129995062492307853564748098689850088661275269247385931016938380488135138128216709231360863748792870443701958351120055057243956844584477322247168577824015404674791312256187168605066829557354128738509101629795422958334478292533769992688861843903807536584646992732944743212989194633004716174859944255201402238154297771455606992142480573979297174255990758307489232067495339566320066159534013567792528786903249427863559469658094640070854806952197494581419899114074567466190007918225160422111816832668381925383254108872360524014954817094900462118191027368114074545316300698457591627421153751293693004466155773654017117996281945628945945753497088055234512973493202162793805086471342117882515408002599313588313940702067820419825034659838514290338968935551947054574073094178788156474516479524297705521240325773334813277716854449111594474539070637309201034372482465903312894505698329243600751426335802628144247712894967472544298320737504942597860164297463012958700989472206864430398328383340500218966436694546981115802772199554485824983548029612938809951947511167296966258322721292682315830281428202446455967615205841995665037661007051502904148223037542995352240360795910160443802834721202399401884375461273464800739743482621463690529704029092747805755462491840237375047732391743031314055306126916698972415837540463287810565254847860301541919963255844296338477186520552204139785756137832408231949058997163399478687058171715929398452289123054761430998202629778425216054552794214850114629175155639291284729394409761172573354962243695770581455053382441089045776673648335525417550592916849280273232479885588637751772718371774642848650087196558371746789372697693803553054540389082690646283091065376723214635957719370820340899592904676450200711287313531186207670848759719740844665987905073324502037103626969019878745400593790583030554238734213860272619503260801376097297666013714249812163716349136418397173742820276417487854859689343773800153266670393898742187524093111626184914654787864419675598384879754006167483847360055804774442057469069381342039658044947017978231392811945208133592810081130477457079151402097172840515438843563395217637369147797082230256058459316405320360455714210112707875661368730408448068161717878825740349373934079984976425919450992254479592713445981898370903682038615831570075474888867093637733096752895254536258334615083110819211644478855782871094729986219360638808190189001742233963022756395510947031478120858915039229317417667320182639420884606761711608856525704748438621444390057883412896257590302032312151374855757410278146463443731590245529292998366007310053263039311510892122502121271828153230329783833925264636870610136728537864968478069456564032184162873921872135616913932078989296119106074198680344905990176841712828493507970494743163802994932976940113603334203468444207059415777192562698648263055468971146118381879367078438934461244559396139362273717707899514477340439519144228434284703595718535453333246848568395734051806458470331401225577186984901462701274117975490941637838934945013270115807360977443482300721450644376848255405854331316346912545142798280199557736273026157340874532980882674441802047961519022924049060995145731341318344956735447761776420975071649492214922430537424754427666793619284389063618120529626737978324175557317118565078039970976596340551139609835359495111365768064608888014924170060277104683080955018717472326359870693477957959371012592809085203450819736000942581904170996863437365046694801040626453850787636741803738102371769588131688732472336367638990514387316602592218245579159723657796849010758630487363605145366992427753653067221437019120004131981768156029586767561216792565138922628052702903544166375443024285141303336562693777713087038993579318897511657840732358175149090510739778211990428301575199066356508062463629217837161021534473647908265165656335698474787097678244715122118414312471499407986792383706974967918288071975730736682474229414547429398227444253540066491783054718056193227531044551909256789447922943265592778899676197301197537886825368889817422622624039839730272568270797836500149616562689489639188923730363329900746586398417910912612297687405894228140615274753758320018279777070897957474175506359459406960019547083700255937287709048467280220958543640594098811702208324849061562965643086527270244031469296777182956162874861228774672750555806445015724815464152150318749542049557559653848480984441599123765064687339933209628815882492271781387153745794281887808904322051687885008740449617858703460252493911121921068093349726642985768327536942535375705625360874057280367031759412037389263935489373687999416560570111378939894927577059060518206415826600232006102421957746411729149125854714884719746179777403840883122439177322429661920229516515458823436177861175967141717966490791374636886017803227515611097653896634390014954970422860470069357401745575039712828920512424713359380840078493760319172807032836188553015206267207139267314512726906929126295893931939267208212798102507192726419096906635069835557844545368297285601899193555477705413744374062219200599780537000979830987243319907618120692919867754027078487282196681812707541541532185449583273840806132810333539367847373520305640013036100268446184721444839169901710262484123910997365858820972737506829076555294360430494804980539335058104007548047869598073440658972835903092388729436486745257316981055025690403648824211971949364735561792945983861884642207169617492392142936631103168995466085455534327204113256693597875034630587037932142360250368160791551658852135897063446247132166137097638480661688409873095393138954851094231582194732355007850163725460510399598716742640884971959951755648750280606157024423734883945490306579806526343843212701326923601385043518622703512598801226495407270397289292973578872518045398897508129853360681720349892526073854767168676426431525034324818908792953656541716636066975689457264861274575350488894712008514927227009160389317724812934235169227786276620514570339066512528656099431143944124803673607960305733176716389942281637076523614106589453016131619055707139897430929187883651873562060606284601097327574120603023398181386441101760832529787685677932527852063896287317045979556455695245470723988363236240548642211869607247273157312484362320957932106898551141244040349870621814703800123346575237875541619072457463834176649504554111608798845491788880525766516376165594023410170405360525901596116112212390700384859429963245641355664481505424379304797801382191863796446378844612100080373954505995688926523694747414587750781268213053676552786955937386251786403269430953357016939239967675085643839288889478867441415404842926163358192385378068475122375025049553993873927663419356803725839251463263598206385048580138797382894302226691745274524328547107342476857784277712143943778956310513938669624342102425196574067298638588029770262489647691754199705150181571242968735791286816559051418357939489508233309926622398916868894360698383273322976235849291293144736340932455891316971280256702604604474080340594966946816122967407787065463434426794159891171756851127847814203653554288930759667020804253841507768990888843377170626311732844080531471066655383241827427725739575547718395915124643826119706312981683872141966730319259372563903589732394871982854603668002709056690919409151167864085493682069584151680666672433240155628111822256733479016627698662278102358504887361811163259963608858346421250474840486430976270761164034647402262117782522297705660291818091137898657545641352803766920143193355528277086494504505613078366132957841937985541930367640090332244574269940370888994581927049633304576012151060651767851229072637707322882779170242821377684652340124031377319711955566084407276537729328207794528601954574617775223648916498221752691045927385533807754180080944744958885302303441544754112653222068452198016335198864456637475273712628165145260110964289934391999287141755596518815885786746538432782730591690115649502886219851353747330114550099581597493202326286737593927699940258982183779576205089523505085462981229233961961040481725771352855419568087885621896605030848000995874781156083938560536022759196942396334084529914291866831226033939453442347615036893539439714957751825049290754331765042928224400752200183706535556817341101696986232733626977422919063129859792972179133322609580434297541093961749202105073787334533646466820208898715411348144124015718194177730806724269121948463882735279233257568569353404386161703428436633033248194615250751673360913854340160715864876335108313273691668479868729031698283683624943125748629748300987133636745554899224215010635917260974280336014772495779441291664047723926090646235326202245340558359548540470869642229560599512706499630725841094436428662497213289363250086775145243810500384844253861081039438036887314441776019455693730631103621882754418983472404601915270525431366404719679264888987439465299368740763831796231985862971579722747641486033349696003108088753229218462052326846122397141096721850084845389680260476778254977315258720484267563883670582354575244245498675486449695648324499393081307365492159116041378077430390272078706215059923762739084680665732257758788242492242071324322879373861340688796898625921334114277485279110222366210479486789685684574860040945203592951450208337951772103490192161687010381691580343814352214112804623303729224574249351840664431780464546717836716798979820303248375810353633045503345625677780021745433319931150400274173816459074791292999887555113054951586463661032382721741200723774291399203529257268346873230429978008620783078081187503017865547801117396273412583447090327376612507247254769547120527245309771242515874614509849251407409602008109324276648063123697918787776289311515821006581964451143128494118947136637909962883269643555299370800283539014026068058496725936403847286344787833206611844004559869270957613685677958584012338086116074263969131773506132745622441175261183821306889621585497357382390279231470960367644806708605132572534982337508596690575968577232328934488396935588923568207782277588831511006620784761422110517192686513536023623419282988743190490846998263789274035920710365713771429040317872881024380202631973640550977836946790245804987396362258367396175279731647517341314064185082240770086133822746614754041236206254678600057751090864765728428209626666341061005688533005359272162671872365066126086130760221906925192902020068921086276427971582759008653009892225238809196723130856263556361861437572996396426316546330760568119332556667293987064063387857853224556316230115123511107921599537913287100217171399489599842446981907186591304120070022796662507534024261175085463974202943112090835760952867571516571181720200763905615800919749241553627265423990480764942721846368627268449627296051701808691309073899590499131622912146644803519977441782305392949422230719956180353891965247095493383063389033412298051777557858101819274264077570943365531729916617442131746604690524986317258834459871226411400105073980205038042447664152779673594257565494169301486900857828615251234806698816098002318017260424330500148944016441748133311688337456045977805346199536948429117391994773037756039866564919176926955264398096746130667491604981660832790233205263684809100486772318653306518915772505059331960185569670887583587938421920908886334759673147298844142640078311105542871260659974713997132384627192391890356410265266725749750535621386946349715526475948872066855640759097632475182319580285879609689542864636246198622554598644686672818881906957025324420484660058963565481027076789010862962317377844506532016411252209862651989170460038331475748895530675529754384057280848498002690477672113522483722759814034985856734509967211499774975347416757857976300154517313561317372265969755504789845196195586710589687221926396060250150002488629848998275511783921668542169227466464252692994675081147431684251448894944183211434351546067157999272504501572432055057797981770492821074060573001039173409199313443409016390562092751284641034650396602184815511200270218960398971141561659712238495639949418784272368034689165646591760572407232893296225366709386078807197099296169807563811172702017355835413966050536760915131190249026048502043343803807036223546304953390377949466624400037352307339815107955260111020484681164993864446245528319377109826581001189392473340951421501929301615359932760938444688167492092373758355391496453137426946579573496351418750831155062064179732345206281427331315346955827788624410065708176891978306323796278927243214430832081542367731892238074701525903009862661904168806265720719051839195420612835858581513812691637246473388857207940572668523847984479443242901962806166508264855370902113053730288141521163240710438944738178111976457982935522714832037655532231818089689720473024529492198046553434399682674097002928157129971552462499092895135143601995317387011051862540565251691797638378851016650138794707062327117965198973459697634416485974419479207986097794683074135355513892398482167634924236795411055108870466158038503008004438526717201373028814768397499886108838931103745837831850351965291818118795781454386311411474391595639838235168575280472708927834648149607854559495463949231478960137806304295313884341883160455228286909129051151229826436464907899474842347554886328870353654950149153987050347121038499293438304976390898707691007333640546495168942679197762215996129141361585437340421103478871762963431853961438530761719109603755748859080941564067419620214652568591347409600087903313679346337584973486077276613819237927233505869271408860565167787402486881578343409086775280371357829105173435658715682394918729895235578856504723721143356878767924667435671754167536158152934976202064965287888478162627359386070008278850721920608525314695700458601795566955073713374829916765358354771115228499395019224681210247780281463637094934017908746950719525849162716924620119111501227302339596098220141522119482843525700223474478540317843087700028547845562373141277013567894008763334902858008546357101627925422510404207332540914446598442965336338201301779085829441776097987825809434815511123979875071495382874279167330923786194688530872795015155419949475287904024836849663684911183494326022878804709360076073509998722747458838267342694996072797297018437870749495983840324103609802580598149277112921606810568300776261120117771877573122539061284009377287315819930026942434369530297081824645458837379363466100617348564592201417603743998874249491322650379970711241860062782353255644723674568723783925131175631182602177602590192110942296913098280025341599228040161423893486840076187161713345854542330246086365012651715068967906342145743980941692738820928075342236533332382881474101456087818051158295854671801128270617202027068759576883160643808013980936759229966781893093599984153636170984931318094016120621896448180301414137155225065907755077196049137302256616303152569232314736775184567732663479617433336382046208781977833666704612069151028743826456850753872653788115504877925244304475846954102639839972995569461228173498883453638217274052134792850734147987456077468797295968765400418321581346742274156694973318691859022172559789178322902091405660890123284555885612224082206955380069047495112419920954423847907995205635885671591759986039648705468770151246644240820364637383517010875028540805122878051222805204975912734296108062657182699493428799793316930314454580437687407618412518418505350915174265255407337296658000888991229716540713375078885205596961886907731537197672468434887987689176301674280792756672438275786084017867096510950438487490249105503232155331210046489268613311280911922770739693304887611134457984820860676911120804219632951589855687799743718364220424279416004727042419720868852183364300051805732079255931384880653472655381230373212439497754191479609648989261817590927883290437941290991070843771404828979466549551758389843383408614952847304874246992010454617643469298571993439404986373877772711357496622994674799789223121209418456396150145824632582129871653134536530456004499197302370057164588091635885931514182223082366046266149212200829511366390951885318766498740550708273729884885988201024625584476180896249505063176588603728710393343072843057784690209230215955140388370916674728365090511981831772991694025098215428698783043063543129040443098010471232029218408189728889964057408560156865748742545781240360689685840025893097186254061958807184390541309196312290443303687306715233404737832301573348063631056928405910742317006000233998702894804772072204392526803615552963862199384479178055381039672400314161519461064507336354079097136875796183707588935281484664235748249624312820311060893231641821387975457902490403645225134299749454768622477833730871481945071693729059170898086849370457070435294440463375556467733604159916562681386302242175385496352698822253899997981658764844802383771939192824068996934696662521728271224176071992126080124886746414269673850407624114360204013298291895268672746544971528841496121713390884980014970134604491169235875872882295966937564635562185050486527663297839365975757617103056708031053921077190334168856976518692619730536020590772022258494503193939984472158217956531711989974880373679317205415378833894446052848848521690350846487720711626438673156346275027021562390058052616609071387362857205286374782439798913063891393772867581182709831853930436479359399969598119342836648060182898732768526817684134563942477441655645910628689673276155120583435321319654460760797872872004552505332778123481518700746727467848242804625478027051954985869296202100745453407332767629780961447905592369026906630023440696317038383351657519563453495088609527017176760058274042451612736968978830062917691870770437380361847647952406399218940774564954341094581204020986954711408141739538840077553328837408735057087487363316914929833103719376881716887204306478489897630768382974918301242540502037743178531748812181826724922132847238316315252793256697905164384092065999783792065943197149245886750895700151471486158218166839631686688641147308415111031396364442756901627581814792723282302473089245049976362886197350412734435068933927034677769723892127304447361362579503186182404455493889704753589223654633678298079045763399794377508279674911315211143171519930065795788425188852759660401612283763491893448739583728887111563185500990140292211017000088376582063528712167450739731672494026431336565863369328451369075562274113643155913424127096345255534225809971418759287354904574465639746649786903188991953203985462235079606800782684269812166952419937967539046955944130950748788734673261853855749217809489604535756762574641410396254047429879601404262257259032303831288768734380602200810184409894705128218796450586215428383149481014977178556692858465980008455849879272997201356192797017326054751561725858343904434566409256817191332652489441343841508278792361853662812413556317536467709910022029285678095615908054041730259741482239791859699955981285207080225236749000674061829016385403570456934546049053594648866039434650533315162254815621579713755922148086514737464220648875750169890304504152829056222335320323592616490601433615093860912882593873262231848646464140487811120341638583482595203472487147633460640258662681550473448826597222683496696998312423712713025700595131535984674299314677254631084779791658404725922108159566401618177763623325362576249144204373840822952571511943828291383007090289875621951560864648064388742924254696400846546943145034088368030257508679237539067728927461793983749455717624384910193961884468076628360515378606798696692964870436516318582108238125146235684154332400793134003207813399649988085245491104091019358403174220911486922346306868869980850720712113064925987529953393302975045805350047560957124408637221343197832280974767451915866426882466982793776153190879270484920485819395988938228497901596649238258922836202796464615895627777932863939819140821863918359855776777991544253778485272318342964370152823713007736816165883317121533928751540457885844014493595980666444142617299826125685943052734887673407482599735477385357681896138379901588933572041568199239443510196485051555806937417143490995567964116112005196805836586903790638026713425272793050097166069370528425753094504407555427317191469465214373170087484949799731348054651050356858861502729904395735794957862046717917908103671336404302883002835792054191701589894012616693901807930774363908098727047012233701738878044051427273187159009905414744495892141245737486097556648851400471295266718330915514400673763927692716149978169003890700300017036813249487882191326634433017291594799927670725271525465939334094288133012945423494182804077455632317830177817027626687519892757964151703074568666146768748482619605003517105166125757598657798235009159184471901107843785902997814882084062876732065933953701017626732455722994073626481975987024280674562112337872918233855739710000325601993461653729907293913775777715972209217338918039886541042376997769270778311354955746345557756047566969694685224174634224918625094336065835130889984127430114230504187854817893932661158339846416710055045655590989614904003862923596812127884638075337844207594028156212667396522247023466051681684924665495857357262272820869969316783187453382238157631577202163724575548449762400669917645740549354857280112700720548005082500361804550946758325622325823141988539083968566309124413747588996444796732188910674496644231261695660889743900213674650890516715938660898724881916460200099749742054611094528800679270817796127736928270893190830124500215999282588819242624133249625183497564041726653219912540595742667816637955166165592728564090711436412343150525196196006689285777603851940792397053584505695823794206577803779894101168132508762478288389427858810902967089978772615194923307516572250227014859022742120510400642818489983669561967043100365348768483199933865531216721520952324401398254162412434632425977882441589376731195028706446265728616354877385368016561941705550577767973210345428989096880257324156409359757887942951219549818132882403941046330444480066632991245956726512253253168861382177441050278420336757437529998901632639663573729201292064131590945668843496288340206749607283205790201454940464354305232052124821742018319478968174737198618541010395947926912414596735630210577124429305511676457896663055887342456060175833036378179678764546501902144196842883457243950161871789233516991425175809055943051810900217845679632316061080661111534261759263492011870806323642526190874539752438226929317545832974877494773642372149010984229373670053677785946505280275658241120222036548606301802237162373168577154246756726699951169479134524296953847661748592048525701638550831362831773005964972977392952568683869953705785700778934103192613060106982128953694406327234464292758427779062880063532832528083347831611215227963974026247592861543463260272421631455865751933044462836446422390075897186200575036938367656379685242346634075052888945405834818610417075206179545141677062316693704998291937262302511077323816253066076301781839312983817253995225917174535234038812201810689102882917349880358177111222476658932762503991668413140553950110655601226498100620070363246119361600058884541756689055039487063798854631651477777645250405004395912480825309996196340963208843394069809530140411494406112970167174047701992556990198955867526030929170408684752992229488326289226684502172890507434333137392757901979174059306736650084536814989278724937873157795485390440300634731763835836917832428701143925462934571966556256816344815024307678042478291409283972581252580489336942605534590085264857734440266056710657988828320977194614671653835843123744371327677355069108428634132970600976999947250992079448205861299252287637596585585706524340315537820561936566891305942932194549741392866778689713975490504289807674561053236262260188857602429729558702939392327843975834283528429548876298675884535936893870731782153167585460014985999366870417263646969397025890806564828922581926901942428319488992793332816549064944900362873424188341697751764292617096163957048666136857058967271428080028135844545807917658433683941645587014851502278341237876934753130518859392917867943441428798788140433089823765122340494169512947995778051757036920925258634383946256170185078406078947648093745670034636637670685843093348992939937430921378836677674642660134423909189384639613972681934648824542717407151251826715222888353062539217666646128080364250712676139671432497320610259057893945017543346741963303486815198818321421661571770054322723006795216384988159726694907558609671761084622659590538869719765036110929326366457113749550585230614529550944498666224588476800130072114673255056532293124637273529113285268897434006475931835210243421352142270040433390302249557591678093409328844498232059200384219714266164090725913895096900851269200785978598535421874385682340404495368396280136347423273974799422782218999426500895183686032757524873795456607676114276292335905998701241643940008472745772422756871573378356535023629174520094267895793224347034389245268758500245974081152999981470537372143132642086095839295455232255555543111660466947502602763198814678604014941876575400071300378308478755321359620412811846506090798421155896985148282035853418054105641831702688298625660037837249844999050007438783304692581882129048952161034979904738144157547090343301440797274385063913126723386124393663777904404802934822445338552534408611929793083386087449237001166918963427885570803666960557150089708850059265915410340384896581632570913230414777971141270168665001806319967442157607537757409877267764706997187330670059411606705004170357091536833722834607019357802921755961738167755733544013314588784318581022277627544452057092689955097183777593026288770042329656554393452575994379387947729218106127175393131534327863251087441322926624040368687440027159364091130667852837385280117347240441449582992187411332143403613073695108963663465642159079003973997745916117463572889013256514857637671456611448579250113498853519435688268816369811594531774514201956892352330315369568617937259936100120409159234401320076954456562535376030633021404950561123750467426416213450089355837356838241369323826376873936912306443499857566256110426318876800868169155899512479987124000345957091174406532807361772032232210167422417249235310130764460739524400330030872373397552985573824539993546809041320605200185168290304719868512294304708410905461309442989025329114133944213352009763328323299366699081738037864304653437829009166710029940443909613892534441580501541672793965608732013376146466161755392025053759228249030000353444438784414498397389844360473047626068250016069219053599254386702505937718497401043942064548317350538340666402861438300581463370394501549286882166533807723033492599280024979364720547301924678331884085773282620854791404508947304308295605796105190019419788380550907796886682414875113160374679555379806742103223243461004793816207407447118786409203860670180893148086481475446439136425274244842855797016227707876588479975636558174853312177905360223922358935400747061652093245560835099592097251328904743464409222752168021544993331113976423820721056614783320997213207807905877486424297749676226386625126268185218179421386345452163937617439025487080674057654435685064569145881576340981584850190187283964806063796298444922643274966806286401692926599672454242147165253156616513127354361554850477547735093315093940764946659387629096704520951859748627522162752334267763766027171402422593407062341208753234464963362114618230072740695104496676941818807050490636532396205776730264299749510628513620682993299460337908848464643555552861027238257562160799137690673634001358073869041844568905894137377945205704069575894135473622303184900349968802869752485289934675239675624075878928246357198752382024701789679832901374765805273278460458440943366135928941824480225619658289114653248944552493784250649040343052677166899292421478871737067126743884761125790126041891782901707030029197579395063672483187668404215945695981026509792078273884408133405920234383222717354102979533032557615206627168237242706666479786721034435638434249106488047090437098134293372656477961490086440616151603115684675735690884986534672183685993219538219141971284996681432130759741578078242062771843662175670497822146689380761893483066344447269891643060476676182237119722207700267352090800927567792230729967486257770979731056767585730629171581641302347607979982966985014881578786073442569342377017416453723724182466453501020800503657607828580632670121992434920418594397339841851932211832908657327320972963901268184234250488043671592514596028339790837616396365414017371953027672857375739832354202332590811499403435348102800975158923368717802771402084641158600994391622007230902225391843361399536708775338375743774012520092783328853427815948466620483441853341784197273036126560269718351954042526132193428105397116306382457468919218302495346324482662164993290287984693252655550973288953385105521586492155879130543399388931584652053933487653877109810846725380687572176691862429745902605945324059481620175247781436554857535762842498322919537475589762106532762212671214236511048486722824618441438861242984645374742122938967722916016106255108117324143912970447854200714876541133015769304475139505314652695457639022633513681881282393368113395262091000242085220664437613638729895862390925037313665858361134142157976453184491808758994292705915852163534902640076312218340956002554380361230999861525681629192503357561154095922343888788125468273998131944844486155094479087740263143359303142841054203033078796022451154701908756371055364421957490294477086193783589183272988334729706576671257741996906800414383537163148968485878066103757821219179724965881995700105210883022287745993542318429105041056680948674928320308730645342386477206091820215627284629082364144570033690739852912536864950296851642236714890718063541420453569193474988973724086241882197358909234533918083066010472278017900932061493505368369361432241566980397540500836342659837199894310279514786409216777175902736640148100520218099845130615137225325203650882525357699913708768930826315286995745177190807487727432232875873085810441472744178396030680008963628554246165470450205843475571920761772704545917242171354969765120531673096170640292096377137637037031910906578776784938593034091791335272772867677333649708946583673834733109578239420897953448752597454382451649481819250685790840845179030548401217613638013165623395000408698501380745700083411172902887698908224426973907934903966040013764550240340978422917955281970182109641992386523825755514021673933382194707186708385978959280079341099931876686375143599946587419092580991020058973027221601303519758793558843197479793876267318556075932342546878740527187985354149530190629937468898276007152795725908219354069410640541810004307131398769095406439030733175049885666568059111411607221419369641747365921297743512963932543461078219879721582360467581656461202422795918755494027791598563741886053032428169347943293766474233026725268121078669735845458888319988458525086693740380215599425751507089286158989640314752272215303554425826867171781112687717559039416466841017629007960774744914168654982794950591163210135412299071262294097466665334846450019822865221231826066615732138625228703556185179628792736865783750623931871699076270485576352911015016015520477989964981777165650412928239568237827198214693593456415516837809173443182360597760014031549844333765070648881548653758341807545506740277838791572982129929952702261298170987396347770041230289342121295067678487397534020143343898639268514778105291096859895886684278352234994616945090760795828469361799679550150106027185543745688547009885941218906339849796934275566261583370767479014622729532989993507196522513877249803058006193471011535564965990861851988739668740146457365371037708965274603212018993089172564660108314876027696310360426518006658187631135155423872393038215695493809812961694357177251966266434438231509299552744292964417809498997039966645202681526263949810947892822754556197697245249788532053053383404986533202262482468317954603290446822557372977244589630979998723010430114848115847264066099798462221887888366143990241170675667609964410639411456188746047498449975713439515596219918797566187594280773109216922363861610534959022277946405342765162875924532880726732939902743698871691582255852899195697748446057058408196697877071762728378089574581798190014763838670009092990877273929407565123216109300190763869291846036369739269766487441932840614482352046239119475886817441912935719743983236280067933641043816255262170452982409912831925333054835682842376790382057957370117444931825306395026083770798690384196389827306125261470955495308476770349921826650950697694649752459649080987702765878305693169197274875718866848483689877229196821323593644360993358826784195921202078567215358803207408594041226195485264820420202061111678011349651419521153159662924075885370158488337042434372810804730393078006948485504819163676380573735295241187835752902319093424058460717097829495659217431467721534905690960156543764545515879101603954706736714705567260338678057927565374039957933900765219812266885131472692292693144216533165158677786687518124972535961038951843725207039337932394094895474819381644198542704160264742759907386396459109391393108073590495507874022163306974879801709245126390317062815690916403293349896374747410781324028703007864457865016792725835630545939179584612430105752864307010132985647973408632814002973198526845881240698190787114130896994679422246208460225799934990900765965408394118559995542678303633648079744189221589529498040040210180656403134325106569565395428215471603084022459723741412555790479427079445745714010971850662763972140379804701600021343888949879383577998377543222550716036857222943907892533571923202095000123043357456486588654551106539218318875138539118128445962744529692335138491815128275287020331144954615923660842818641670430978804555652317585452241217141140529492540933086882449822755762749084806800239868022289731827034216334759210261146730892601641030154615541072752462261574263239235887970885899227585984028068069499669333259307435459503744476249893237557813965383939099216924991949280094665956558841844647608133415793025928371928132769891279610929436195751583386782914733425644397493813332018274517113861935653710909258668882109460175441863364281809594066316212692134606568714241555322467363454915129069661691861000114376223694676803746261568315260032431868657694780006001618341676897905958411141947142503451715651449519207409553221564344542781605747948417068219460429762648554253678584041316533125861384235808025409178289346092901776594324727004382190172967127117963507321042489324600675637799865047103517011402038640044434450081980442437193033279032555285585481979871944853842047044020351710530784559353342307300296447097705918867934969717027403219382315013996400004777716140848789496443296606286813111270010074570771809819259340076034637648750799802120667740904001618757814919171163043377809578155850236890341681233410166804791299574649999906702063994231469708889876968272878341005984556478277748677563664610110139065893165516142526579232144126019776237461654475046068810832263788400971744134676518826760021175961474051422308038619337994855634780132206580996714781196876170783857470369864994720319295655083946194798759326770520288694401553421078317790499125380971343381944203222945301264485880455255324522136225521398646223010007236190507131328465276439905293264607923707506908982270073531843147378463547018345975510272610264475416935941143539438899008813356187829859001267953950676867268395765693857710443356516562536626384875061811975379784572833789238408318070678594584360522643692509257613559207916729312906065466049011739261152698850717650947648671523627516463012106621839517066696234739768586229264500286632234436296330672131290704378999463216115197816534742104499090018014865708553454784465269068502426022793959560472207317875983118152607455908014597918779497727480347227041278524913039720991018016499128675393261062597188902859534970749241777909132765333924514666803144642640307149051262684750057243922478901824970807811465238127313324687692776702191629951915838314188965834410238967743637999359306632841036509555100741941448394671203329721223296390159125123023424491674347724433440596654885165985123182507220075729531582647979912466870241308705791510842730128225393663331331989950674502800685905729268274125971960465414092726177460854008789118119204305403131211096183229133632916637790496205703912241470242448635844486348703953938496967560224371739586003347264740981892437594282678893806635099728424129908304645331385689790341807614358616759294547682791677813017583256707019656545365590555480108836927116050676012158700753719597713294200021810710923358106931656055307194928947803455301406613318317122343437510530150541235779681993724334524025242159454259322672803275129860700985199195321071121111359323046317278031991423694009910392034834412009169980100959052191812739396661143376647604788627643764584861708660988553280316308176167396916044105780394161079054097662512795111389415587183912077872588807733895419035323230815512670221143584554777963400994473927628964836814052184799951313038649604580142425100962480389501332364881921295439454747560983245683951439732907031815750831746929673262148563716905129103640129651067206561486994457898659871457414490942961738468177348327212751771626562300401641741323451313961412496523592162302930816866216703363493253318249038009470338908029698696765751848418217884744907407293209412475175881102418957125697148671205016109378849755101654031393546698327838945777960468839375054425123026887535344075152569323651643811530327788793647830687139941814194445459950297387500700657183392452984830927112646096190077202550772456475875580214469467836370259211826905573919544135066159711210296437123953754774013290293248013014480589129058969627536492237238971902313674976999208849641338233240161006221596579952843850437825335880502301228658696776264709869886148331768012726530440277768362492120430466861863083548883244320550231766253289751216383056794173696924028829498217851670569700285193355709282886521730495216195114099634387584704057936958840454652306688330365396785210102043633027062915126028449470642342324237048266142380121470662792925552975292646817450818284207640525807845306255394385772951043961972565173473687031345360052531463724616216551974768051417254914775123682045399989740801410876183355392303924752080381881571706185078048915685405152140662478571555401188329935314519983381235139855968739065685831678868072119333984679767872290773444462492742867059120007407499241987138089984543842701383213736289489788211906192956190719792919136884602343358116762938577594631250360519687234106307336003850052931832823890190125233090705239560479668149580428114492915598409970157641119834239510490324111100492670977498551740359319793567113356415110030583416936551027395476370259949287145247975149619645319921211839941888924128762270032721252461535343468494327804166076702712291934750239865384900501618423656461374348696082183213958827320579036681038318586032034795543965859514151246771917562137703351454136760815255071905405302342360619588269546097707606357197538604861840029156615426040731423029714631529882654226048023114667249589878022683894718037619919390118223582069872180693397940511375777543493116692345716538318790510699190348215677622900756796670756928496778807484679221968253345642606069142894656798888951684176497490292941981474671575378557402023395587867287034406623077705515706883402795486402182346451674973761740158963914474100931452976566640903127614634637490969528114874901325060918890711040105400743903562232387909816248396821940474544456782086256210831298422427327714515535843740168239043829238725120281267049966288736417919567739815426812432708485016599545351281421342567062842079896024999625087274205197482335965751095048599090724574800394683019119896318742472358576477088500453218395367439048094143878815436950539589151720282839061605780076146437087104427345201496595908483936798353529681434117537941722076151214860494828836969395326919751777953209792853788512753259640036983489991179823271031300565124357339072307247528996137962353744716009530040345802423648084639736650429160048361377949258320234056599474120394538824952885805806235300207147323148950570345269909174385330178718458568184023528492962182778798806506554542354444152781716987707543893955678951959295085558055173692146847227054949862519002952443720075784716723284449922268560687343013261206084345062059652471713666838874306090005453981643066459869805026962978155524073170865913372036385403301981863050254175924703483410763512138178891125057289054254476007637898927261893077936231447008934978441557101726411909688909311741115636317232622255322483413374567667601105318794287137974658377489525768150300970301715330515383980628209941242671430608692692627587968073831058796394252324502014709521065451769268776372561423992194472411167618840826198522332758402446142843897466935573107213478251254319528435741791541730070742266362824036000383781445490414270936740663595968590695457928400374508442127299509486675709419640267465114651822663145893013024401381867648402899362489184871359220926824912116501488187455635294869180217053163279540857884959930248068480844375458539374515896555785519170389136871618733052791059156737983689598297595587007812173305926251397608824578136768829012942742105509324270071725016353533478738389310925117632474780952611491360747628971968542539652610964370676560210945043035709990481959704461669028319159392634547136763829544659044099126906905913348458873341595043087800344158130113865908560129422800625993176100622252464708070614371195691307310126075905108986837607559107173263902001594944795553660295977643909351680088952672297338195235066006220822916550241932801653337603559920736230738272851242465782263490508711685817517851873272410537578096340612726688662708763950835006324586266988904705658867936808733732042970587584867218903782403924802097751304809399797082921045384267260327001266968143611951339073310734595881084512532092190606569953273370184806452274519212464938557182955428885834686485118452240347411195071320846029098497719381452547793712937004638818002802442204651399858462158026894531718627238477523670992669872611711363119607386016679490303058231021599397224999947551276991136584842043722275364207299503800986484292865897114893020386963488155913565003553727518908890728041654247416044395100912974482561100801238574366433322800399481721183892350742339472275586091397960757129194130803900368865718693888812818442019189009995399676192498678022247820466438980661567417357962921785983397831740130295534904703138052764747621745239766705810354104085911121692718679494622747141178060852951313103945665081859776358203452479707718745683724164466488093541531303005548392654259706573498497380428121040786551716601993053816210371136193372569166845631886365046760235933730146307608869105662421794730969701246350865699277886458448923371808944667443283540668067990095876482389112895161657305870300216206343156560842895584378495233174292847217495078693687560225603704430108514837975279632121958319723215446340937164098062164095586467754235401325110775054472057750608425916457367023373783112951111055234792180424671789068693245902740164655649380341907273998865499740348854971721685042071251218133450650356743739354278101956703552156595359462066868918054046070119286611248956467911677871254703449512280602507785476515987706381692022973514995891561502599588709102965498373244075278341268565809779638846792560634175756107636156363899886555899360206885005965916155942677606233053282653315136744187083690699603670949643933318663706798905287089788635322098509525368509448243442915858492464740420098834297005727038822431828439735090358896683104159760609334279904113474304479493282140295160070860798056747147745265312834268850293810673928865241403849807479459019651020208745305171955169232486407576213284952859846358867054116609445581009859401825091693812140012013437507849003728524245688538714215434093825291469198311821764446310748793662858416770993983600740362876541367410054050715907956211560559828682924134367615593139219682327122410138999179617802460469920794683809911927321005627585614459827966827053605891174056514156077815502973397240239732594995760708058197109451575799565411641911483284307722845703892375590113384691766252325142185987452085784275714321940008238829441634015858402167763206102517303876917667980941113483693558752322408034828938219739827462777314537486361876141897531861598104038088871392351063367119851515259263610719336574524954020082139578796401730510307009691963377786327042365910310619736466616617528932575341594181737090484138831172715653321624128901892604718163603285053125667735673646695397317867433212147120177865243156390124418962345919282980627600660790518029478568940197213869369796676767075806726615581919277298905881418974626488914500682703989862632290557011658375400176456766134118645092634596124691629602830868064353382416649471485031645033722435069308247626294876413883763870359707662590278966337844429942298446535935591486180512557940266765787371155247764279002519999222546551187884428683757266445398308624700636837503518335157731824260706356429476586836298140490588743659411902452229005588545318623038169393685800779776892837897451880231577603769101294923579457550266679901479354427099287778698731062231936256042578104968249662815053910367259263833446198005901563592511745004986561837329930996372590820713101038837063998260488063941377135745626382772695467718648000723378674522012694825406003191497068791757980757437721048775362547728900038106499228098129073987345810975014172077326924400449675560995239586817979370669203669880538250354364231986990564388689205948290946105804115688904326966112501595952720530023698385157121235264730669659517306473254934533692275000751039581247232703071454843295880319719900837031002857736722461135682910503139872068593147311771308867293144915791732423512119583341304938484423483774092399448979863618617542991955564178918492812960178201415314617276791729970632548900863220531678106355021159252240414609353306364306015192662520253423849727209349034329184397678523242639803263529870330850007983753234921396125684821580890995387453013106742707969256079152248487500104941876790696120499596565651427309433045375199511339331335018666040796357939822506888471563774819230001855627768709326533766920623561461573374361273853020945433798991645157691013161415168491342678152428255172219890489327909226255029413107482136381519466864558902096278174614347637463485892236378163767098471200456151010525643439962898098858636153214176188569059205052693056632432346433608324152499799102770914744782802360951229112010539583172186332820412431980193895061265990495984694588411053487507954059325457196382270291906951285714594565394640467855187594480514393222636544823618576075870805785654095042163849762119908550252086570678152294905620290345748723739624320364312686250340581820683401763661974388326446426989745801915614037415056995250968164984047268561186251486971599147952176037693615934600389575645094221142785620238787078982588621345365030129337504443948714520079634883236820490461150918803463314575046692085697557583109100756986127879570609947273879075608159643250721981945958481302034389640416554526924421660148950421065739141445838247507214303948461745672871208505295182056385828788730987292875109078872067260122999676491939445730662943297833668687898753885113716692487687169497992173738315796663032162786302244969874065269122468336875223867893938462138814996987648580797688435597280284403880209305492478126845958710102387432557562792080664649086456893013387709153473920054956199935159844891673711400984596302754751188950341820421486169875766864269634058920586296288608276979359385696952275056790135359168572549460842449303315199337112281669517368538494227473371026482820807979633790896924442756962387391472818709591961089301653462341726711898396518369653994813485040175452925298285501844093034690934410969670391190488144573463760043873080789950128369381316894977852909193361668919836728275416912460346853846313049936169995761990097674833057426494743760423224984087464058881830123018658150352453698184704754203586650792209627607055952004012281574635782755435120011971555248991750380756601600097923341002578716713578431211677437356733373985617663088432556997367940375289665718659543278107773610776210875089544613172231754230363010737216571242636556199882828248208401743832612119035532514785442659001659342768717453110653559179925707031702894860173585450460635611854982798644364912829612580706840480066458673465938614762969355540085595104462547746338399642955732024064807948822132140963072031875111929290835685049972356363336120819628588817331990180258794927955549704833547063802125980186296204418106673949950151814716962333740647308095003764368659160094498789016806348154706856905479544006963091057934247554916381595568398161415925398772769460458691899527229382896062435396591662922136952179219167585168915961206768661002246567172392285641576010773850080666246961932653203377581967335521205471632831163541154549614759695065033868560587481604757876542545312651708241876726351361991311958240974077364745259656977279069785534690550710942765208025969935629531088823416504486268149462557915687092812144107394524941930229846060924911317305368470852663112005216460606489025503910205723221980130455354980070372395183381038883930719435083234552289977796582964279377062712402773798503566691459533406983568483142240956883533248963287952864024828305573704937366335655572651227193908182943608909712639268447078507268598121450968735431945822976784247690056189365651331836176552012774490545911160918794016999990841715525595555664101304888838349335932262666208472285712630297007062565582214699444083025720857532357507054075987336809698547119017018671668127134432981523970133711584281575166208209940211479387534727531686815807598290873136698482870950763406217373643278505432046069400848116544730091316955931485993930699928309719456648507250860117175121600415733487203343314104805393880326190888153716693294219885221714385971152304569043615189050514610485516641112883328031517552670363490848899566443425929616343759878313560581621521547565950366758403282214155279355369228672814652815774555911011785423993330267245488781363761667247739599511290675482008384526441807950949025903975536235123379746993323460993365086279094741086316471201384541851554900276713451253103006397875122037853065518846561042779558887084947200635647351932534647406022454003558661527446586342106901181608171366538360792876262144186448857117990121878064323726641990224209315086257208156562760088992913235801945299385099873914007414785404202614529630484993322728410170111042243910726435397639423617279400684627894026254790252197849094945428777395531370345901300537986454354041561515296572798535583151661004808050783077731233835692671493345411904568776145634524400724194389266831657489697679050589154820877005445861838199267873212100156216372680390142180395744238561955348352044809264738649089437791247123515642401631110346189073519331697338650646294477849444912634779193025586975037646477111253184217336301061137453229906133559661462513233052945474176175449941383212051660189139959791313364229743959684926489312046103848547223025554518986994684048968223370750846005244783343417538129931845982441014304953551930488124834521681006649427151787253101295840570810713250942985218198229538263724549678699608090100001697143881054927556476401685081442428545500651847605553884390344969724490639388783605537748118290705641450424728437676403697656502480161270037748977334989176389276366755218681841745429589890396990974710736320829264178796747437906808335216349909215357592478063391375146310147990494096845665934648239884387499760169910635515418028620264844021499991616894499539697524959872644225002755999126021829725960878556432522174959636835953523967407845714981884953473921516926434949144120873932004423706074724959763445128003126587508863988079114139553343934404783076482009773741767335514925554608593018513383480362206227540634349577931613300593313558424122495000373513932061972630149079247214009678252361429896247132173576022564310619455062904124243231204054090292334531066394797328674147150506501509453385627878844091141974329699654315028208609740216446163240885451861559107430296900757113817494662509595463963893215114766805435167059038880563162556888979845653816125598023681439952280013720105721127289900708925700899552188672979674865835409548351431148376809793652843555650943306376297484922572613075456947720993050157443782259893404770281247367466949835530455050658933090589028416861816965598640050455280910686594555467958217304247284750529390088906612406512507551144016079245104585617585446042989763323472701284122391468661616942049489873322877534901846343097370946387127046647172316442135632982328108971570934316745313673685147942532278352862618631330447343935654334230549941627406910643716693221966105122352424925381611063516820912859473069117266011246421222980892324933278066904582585229555331135621454479617619437010512212303021900924566768392981232576010779054151618831689877027542529511156273196140657970810579780485820541268689601972531640084754737667263948251550227823066204445160802133070173250944982117360862835441770390176847929059762121326717462669115346679252014051449484713229173892619924882834960482689293625448891700236382772172966028462154209634978253815821628995684624765085337104988236937245652408057930136161654055682644910633407595299420945878195357166250082327169996254610519969856379183573897474130681682357107465859687028641185244366773056965156283864806478134610297571800442870389608198300403759236234407910600511726965249411015790354229609352217082374643565687322174108781601218577622834758678856105412272765987329546112481628667676425252913771476596685058612214776642310912980091928134228847112611903941196528656543297377576216288654626739932508089021171669827191741986936868011101715170492852791756126293651607715878396169500021967940064153308239436946155485851863820949229774457628837616761453000274001574397425727752080669184462394510707486871137464392399324937313102321791008539001204895340495287994735164197630333487004507567049216237704880934346396933983683395834646898904357461238059135256491871631470157231910836565513716549261948587841592001891375254543877491822363845623225345843991923091465056242770728120296554919026732400697186805933485313348436158353216466885967438559955741234555288281409386864685461390310448401528269515225973329765318947518982097872697739415547578859214442065337612040656150394901833299313500849568482757014174419642418822720513462651330335617924300989842925053318206311554714648686569583193728283542208274444165930808202338918819193421695613936095101926604749410831529314055986304991948830916111946710846045993671202984043250017908223864416624678326108776632310848805541342911026684976748166302712094972234044495538724904018086512734283520204485453780919833448971733719058904153150100767948215671749906461483652884010950136014448882301400941692410118702759781378161694200829825370474194255662390465577502491982828641332873740649271827565923737498494984961427569649805062175583313965054246128300339270912219803794980227074433604603683692732434727997847355885863549080641875524695881180064586374605347737415168908650819468657846121181845423815139497238197186907465365428089689787395103923978869260908175692542958146997526862696999713342317946186325036727654262860661030217775971178876625808681096170716945906687077647748149198459459758347474857169045700485028099164290111596111434308965030261199908484732822430091967310931515321783347237526972434064537940547663970547188506055024036248971945789183239093252932402609849353682664702770139615408473957972774954043726346239474813958979759165102621718887794282341930469445307436639580835165851574036231477509808987513304174563995264675097458230366383713201979216728186038587770494391059152989710693470852089248696196342467366559903300907475346905337388359788185746771334990509456351864460109472769256418461607432217137663531587928304164058169100848490115940198834815839927868490779935495419454303261398887187590859890477032601443428686467842689809249563932065023767614777482058254914173070850064280733734123759240884587842215112616944579159991504938316625722737787797624350897056814162570149527005073601756207851926139824167386641038132060640272040840809746414797894729829529454994281552638674405754023094894212975393577887270689186877503964744019278045050366661970036749017039328385824462352464772497913575705075194925892996352616439467504538376854949284096989988128354821751967041311243402675909476521353777271402794556108585156749301193686145852298981119822500208557108403952740473609009414422471265214704046471682250609017776125096020696136248296985344501082675990484527858218756494337327999590295487917010217405801147046165919437165901738767177711592050745205177776585015476358092253036660906500188155721192963815383632875571314939523436403878505029331957022482077308518951571284278385613078548452675822335214016768136990670319752363181003371835966480993416839409883904533480321403774608286965112768463891776522408190779583043481214828536839953486918729003261739832020585361794864823662459820177143473972389740367102761342279248842718771345805850547818428381175697254312379266729917896628023717072784741885387159374247538640058202782320844017471793432673571990266299493724347329077843312515050866306959454732686024123009497532043188255891671758678718970508895889833751949236816048773484286088671870234383717242740660449633026187590954821785335402986542369794657473726177518068507040725249972096908797649857174558856639463962699956330711141914828820441168985811737613614082972983684167268621178994000652815828885943993493497874173052009786854578958546281112584999055063332141989505961620064995124643263625917922022297672169692397918023999308235900084553885459959358182390745158070860057989214721407623286724607678748293783746308495555081090691378326074635299218750464857829532933328223881525658906740117843246709959598497401942667768250141737253964097945372873943988789356003328345472637017796771932613798315284092655708464812890279054296534478148381363280521666984422330164575247778386254713671681624130556391359634509380966858728077493291717640368369091469697496890164618346454826770997832120790564311883738994647985567927877821622640307204282244915743384808157469104055891205970391190332123345472720819631122650963275324708372032323920442672266973312994325098397357622312685628898342357104572649563785747526408249052577093100303299094616147838709853135075041037287244700056479825214419241849269102217353779378261942661655346713732472955708974004524090521987059989130118083714384133309591449632975915613411068655760364796180914403127479550133727772134954415599036914950543077466540583285965715052748928519801206486357649040420704137504359923221918234439910658194053246808922387558522327193474221492583218614625454794316752414199599577520218931564103418007883124447423930295053675522086808508316384775726657096152299984189575081038057026077737233222107160104104120211404738507263286896149522764020368177199741468396321131777665979700648042644699158132096101651570231381718331274650800435942475735315380604942733837294320699757522453456543228278840753257645475256049059265573553140325982421476757662938548301610684101900328832847357026985102046116882665906356660671063489631004453944593325150156715034504199019493878885678153680609285819063425596307857827508256413777985315967699113543006751102468070414303191486366203193082276652971797801059576455694901157800422543792872502745465489579543098786411812780555044443586878681929027329497641909831897536173003519391045997760948991171357343875269767839574490664932615943242145601667844541339352974605328561750654270662211939244880496533307731819188828036675328088557313900280971175834023626754294003596123905312229750349224612337148850152545055528503626307379427344823865297961774353919540847201715134214938648541684054715292280117860763101892474397983017203057040504226367120173275727217385113176454800737816085421640907456415194311716217792424972681779612689620607925289796597005545520640072397024338744667797123426500657473220364323499341459667991245261109732282648477113819070484317799677151870574130938143220686046913004582029527294037666458934121389914087328014435346108890563467497490363253516915219209736109195897426982633441759301476466016468256709546890844748763602053742697456023170141108235060014010282034820700028027115810313330801504232466291710650450809831680282601730360520669153666377923136084887267811558636955420832615849424847951463515904110295630284385934301020968796681106569828387895120973006620820705788532920279849200545665705241136993431180699873086298645911918496778145713147181699642071913381296735624083432006429433968626830761759335973796247483940334651012050195880245643281823513069503343783618523579899503389958856019651999865482392187738059186105814737293534899985301272810414898234088184092812760061121340054959530549495856917791111304113807882724473941978451777893349759647381328888464842412017639951147666597257170664015738998719844477021791817724866084716064497291672662982327693765971812196652316947710453583748049223825240435275292837105538534853794251373167648008389914315087748373611017745318325482676812302185049357957755100689116824384913925046038998706871929122524906874707048791605175932930545431412271934801765523951912538068481776469491841793521146980331581725718753148444513445395940713210492342235495700747188816078830629951989057197360313186230668033804586901361207946931736406223089817239231509579091253683370997392261233888677843841256742041862115934516842756451165772078130254727336693416712682740084407735734844924647733505472614268774716667295408529821779321276787879983677763686691457725172067268358907836287147466184072679936584488445826079238714637898099387263468674038249422552099705296256357444017667499688922982167242711556217927221697071406512927852475547040113360343766282057799671648160266150651681990176659613465073239537361449874383775729979990871255659505822444602268511068351955995984305075966176292964080831620036100596408559739000086855145491936254965722991946494932466270452672022597896521587801954280948791694644813879434428035381951632783611070850262313953236090631648217053480563892934212696681603660061424365971366508630026166924057496379150208266728692386962637481531267034798953599261267919411999956930284687730510641006106942778890404984795745160291727600387145995867966301556156847696229321380375126033694593480764901600755940937962978403988313540828253925775005813652090883009834673629603222125316935475526377264755631417590567523850964209857788848583944797144977364536619277938267895493468942499931376081157572975973421420954227572173189035051182361410608726164528134305262832325567416551278378039149976456536569030329212522162172730019308304852966999609772185944303167100843625261752932079440954428932380912810749278309361517410135282207984798958213306995487647996317615920985069954561851913160675023325418435783380430220215843197291429263759528415619073828549511860481494019212930173715827857571739850483335607889496765962682407711754639090727471301627981412913433211458368369287078076984741760680822790910970557463093338278764718817938975189701244518098147892188149497102636606089989587616956453241973297007227501826719212575951231805594352663464289083818460227417115413008120158909174092092094528089310029046996297604136957579853322799976328506368309434247890027763740391373365020037989274783920278714409085911033571537221839268344228987117877190786924109094682605321543971497469645815410832486532779914247588433139204413369851079417953966707075861104261119468407069409469970410028025320264996408686555555148908351692008877163148936825716333017844275187792191620658548082509173323408820878159656606141173696766762690627399552471627996515974690944816081964577594932795053075226332609697520609546260431530192047752119215489139017610029559216094334715334373623564222579779490335833923436206894096757300014059053327537908567225720939158140764928865143506838996190902445667157846173778026165548175806339428039393381228235612081574414498788704744230784411252038183977605867627269683316931537323741503251567040969865014109659944115770448407395861222301097910128921604556468474751133524543941701752866175377410763644592845343685569734994527158282200795940812124004453536912773837768594127071970714363769788503250299493894433191847402247994599383439439686754660789498732735138950408620921670180007876973244071162152528472035652242348795387010956502976746573687561083653162315559309428302161396428218848811390065503324296413515241218742740846525839313558712482079612268381076504342775294791922422521361809671408902663675823362137655256633097221742012793552746223745229662458223809555700863728961737016738630068210460727132500237812843985549495845622007557572842074013305541606316835789433792504659090748166917300635698626656622784544288310546449031935204009627283578494549721306705984977637451338063544290981108170619608370388377557250141250734004274558351518631682288769578957953299330373518930234496656198165235871755512935140946842065079498619118500394486081523994974429504810216152501435944052267566565871004647995409709154235994745175003659019146037009362389255093649146026017077314513157908566741779858284274585376941912244271768331998897948598973863118473946590354274386865767939926058142647401568517925195905165437866878971667410129413811250718652492653157846248626189319643799687788808664768935506083357237991128330544765256920982025990296533828904968858869716155272665977760539784752094038644379085400578620129403441779900327039533519714953500678455679856235741286769178269576489693735370785392313512019272469561161492978862506195979562969317573156615222705326168883370222358550535246456490145191523032509402211329941941131106731883486292497933548532936955961974364471891794761895143435059930689564861922788517976419928308992403662171765247723065684720481467308244470517119875463176805805046428304925002733166366392035643546416170156164351033481830784730267374161690036591444486992806444185590969559805258590845077420858695464993564568302728096212441418131949572037467090072433574289242989823677807560261105998331350339565638606894452601288669948110401120467119363516941188174724421085834685731093840434514304346755024928731966147057074545098197354223471360878138049187468978440251390905059717795784357898395028847945244107124483649124726134955603445776674469566334030905420701010645967637595698505004784979765055489156484958064723611878781234018885984107044366190851397201030760847513007609707393142083574032707429668808076639791444846968783897487883831425176738494790818899245270235874252911999503586211984126663121078906170056158982115163291682339026086793967117323723142640311993803926067982748786863113756426657841930912655255075372286449663573794687692240710184733511877339074905213769672359732373631181292497293628936539010673024330923904559628524181173185884017550704187865940258399889060491931828768153835478675123195547307656636967798323730258368644399977490439236888560959825949334747586775894205660812180757667860391049578848188076370148136557365029942010918093506678966213953174196854177592930945101786516046679932262892128947677243146800449691850490713112993964770467227610525036912225197340456307037582886978706469317492462288073069696991667586244230666889531068906947218571541372192336929108554483147466148122059206561223664085309244273357106540245245641280958529707057478739546313020774279251774783841808173396718712822549711828542177912378374925529443093493744344659458804403168024013595667892818603645704748868121711123039400832660927594149695363149776102411887352038500989402624311208646381241064563037836462329729177597418523642651676056909199061405986834866943487882251229048412810241864493507064170717331201083411614430657988971713565625094405351660634079378252019633326657136711822711062799732415367859759489299055914411107111906310499463887157162599002294733095264629136468191578796735649366881115805720752688845754436925525190853227262156113264364405942478837043278155094966610960975844567252852055459613771688885763548883928294139649182514793145698179900714720289244944995434115165303839421186729562324008577286291314415602581044655971292525025987559565745657001079141706120633289784578845100480621813617903007535808883395944952390038681459535006331113858302106087115253110191186490557701659847326947579020486325302345027100880249475809189321106335389675443907619021085686874318438351528083142010545315626458893068815994299073187006853524784008725818293724109630822366353938682274139759817407480645814285119947919166947498624633457985721407691744944663595901959375554037678265105735390521130773973756769989487131847908249537213780073180335075654990143827158883498909011934552694616994943390732262072940984442664713335039872597625271499423082418206802714380899282087289157347558185713767732146043862121702210846807261593878223660026155159423282849898985771653082303705900104865298160034859815031866741961727203943693688340713852387836329340568283682792369424204843288200587563806369394229180885163725569547495595415402974694247602500190510106738848711182500553180025639463563547229629014744099352770110601055178878876115409451044244337113546694990685484896261509430116468459119597905557008059473816226680077346070854372204798596874501603299777110810243751231204287818953150934817716446774470195626116687178512326250201750361599806972350112344765310114590647310796018673696928324158106265654896637936569403434597865590853900487282827824479130011120252788030028128122606374326700983721415941930321414329609094063077000806604981699755947733306768093208486240626397633146524489352574047608549398656908622983236443437706343215119000849899273569062849126921562719576736585971813391324583774296984415635450916806749876084770696352778487278267385342716432479768906088597207304455303689032078168625021701255955256330200491208689998467285887337012318924048193299100379670165913048261317764328213463771563171816858476286165353390178440556541310752310884980612324674661051445379429128088420740577039915546760309021854465058708543973395279148053718849054404925731123796607354542815073452372481090500197591700861109934421987164898373252609859050412138835936359801022393725287972126058628725400236221533360569488736594204488445936168152248013693378007677537985185299083293514562407203539396970553154039291645009698891623736446895669006241381147016851810180422859565667825587087740927269567157288050451242316563589618650351391318700933764334079622223249271767820493335619264871172498207582196229850313780533881955290898499780434553568578729629783555514294636173049784343704416829916447807514902805615558497396254594508120952809372416128947312703637201512327909760428205139235873227659600453579756789456126641168315956718863058417458152191992010965283023123254792237266625351773459286157441234303935448738986687595735720783220427812258498771637738197187073864383250044414811661346073854601327562161382752681457412441674052411881445458328735968888869197702417790468994131808630035773191419787501882790910635221679104923771135038276041944642530817616249812866908466913228641936766318462493577431503966769083828262641479901927344047492216486532631608068771603961422622165987607916896750710076372530995221846553479676950829971900927275580026085294251163139668456061021216701795706341406044997861548569130145511735273293072562258934045375030028285019141806486182650152343787759978236022414292463896082316299085513963526252006235028456465872891555513361548479057969750350970357503731716013086884408065314394079745811763713481770466095200896188107159795903633283441226989963453927593627659128797580165743133092871147605638581233102552743720032355098265698476370354161229054619795261348949453908462537520312659110759592406427382802520859610649443464904393570631994291755132136296129657690753443894223529464226432391748859203856906017081882470122502473757470038471878525209431591635590888910393166348937325304259164671406653078056677616903131990783990007098098841018087004465671362475866189969925133813091322365530606230804580747701878845413644793270349383611589603162984742149166546737984441303953427216052429519803515926421857351691182573170276167421686325893325941475782933363040944900161260660451306839441623340073327186479119913860210466748846255022378495327309077695082533978323426961722288553843939886354193729404088179721076182652885601741655570024801800953022532739832611869320463966956389146647106397403251394680921483122306727004349435020030741885291252445841137496802769128138859597554999267926206390413361845633271852528099984837810504881614137564533916228708749510733901598971759545068402457202959126533919193199053480254190398461747197327060480311400022003679837465038791000000347304313562717797230492601084664817898462010007344191173608558021109082446346058184517934584259994285832272785482671148426000246039292855639226103383347691480461847738585981537563406919474263620404789115122809530585664766715050419114807073949497148220524718469281221734552389157567710713697235938954030589369542902820061247673144304377516308530995819102562650801049403993760074513650904072997232265320087858002923825099974467546164207251350438702136586154988400466971012666169761747532394592339815177625377810214438231684311654154899502219644186536275355428443645416003790629949054477199651699744425553769158409314383227036142193013817729334756642817931925069965005130613554608597142520512384725995844325387242142982730479172920322767646116443895585372495265367597216945234086710547205084830765461700379387219983514106927167974771792168558670598438639453425172708751973697326910254856219286795171015848208097117322612783538063496522088816288836607858164029260129617817735701144609139443448930109023781205683650793773660744824451314329512901242309363149101088103478066942512395829508426139394135961980822056344621835223045199772783351934260694494712098270545430225795298230698560757734675446991622994300856614141872101891752098882218003766876307222388484136818308461889432063996779252674061548900018379816266952771138338342179121020716520478626692602006724932895790815247993203860168915060973738066154336044443996721643312162078831936377910664438496749165511725271410316781136013233281686371401462006793759704268174824075829995435685333664858005757924084975590472883998740163913609474886708911983101017141227735439451588536298156927069909882528889472293632379280223571319208678697258868273171092741738817942063324448872968912660462467798210452821697875119893220457736907294372524616999753372802521183512950392608560264754062243617326723698543667180764389528697178230466756851313804748147640851498044754497632067504738248696711119846069731118028769653629840355401023398673139877642345211511922987162473594739446554850494036049149922684923748657653714485850677140451093019028813956136383483825460447046289633750887236525103626557139549416369504599294946321234271626626747202253221960914070886529356998266428804764094282071440041594631994183467028726790690506572463648190720799118762132505781115102482569396290172702361254803153557214139090546035382321070679714538406790680343553178203442481653109831356054183577671757452457048267360439974453206222045887282439235466615491364889812221849132267438924465852465243343465117830776144357728674010858042217779998244223434719505567696153732144514447103220067113794541133901681755413725404409067675169981717067394630176245622273280220794107624358023619231575059679073376680344249406408081908187528958687091692363798826138495591063767242451002880253842901096275266872020830918864256660092075752967529238312262089768014417189940672929913310516937338244205682602491006049586051658416946665000951697816334189103154370779360376328568908638140902486222225831655540523228191622283766735875980146383203175465370844377398963678429346946956153635813681892076507774994985987707212306855668683478924063345096385573698018246254572140248947249285349322316939463160466905315639850982689984279877739698779434989245076939221478373132465497491665889901803683619875529831636670059402470617814840036629886432462487253810510200847513572984730319549009409105866015608716795936082598529306778138975823962235931317178130469244433157838712087407392429618528472297376304529404067795543512466312246251414738318596339596806932561330060613793672155043259201235651453411385467529599338220855728537028182667005552993950642643075641129928919324097532725376643298043071645836767325701308579171204661712763479334666706514640383868621496427389953145953735397951563742531869701757255702852370868096449209846745021292485633076787149640612124345109601590411796409953134660842089222104801922587100206412705094859109533150011865366887263027097120467689804178438391204481107655069954519365545992409159140613113661179764362581411981176537255718606150966211748039267125596919726517672967174356735894430425184577301604166264474803942843964871127094406944914406479080332119017073541538640999558483796398596736491059384611671580930126365294415198767856643126491149907779611863192429882873366082840916500614476871735221917159151194012239565400216523086040407585551503752715995897270432364130487538463752752971370638012300360552920167194172942712071543460794906160092491771728771974618906503267478263996491122797499132812540178323450842111272420463571687853544529995619253946347333119599457787330726501603997114168605819963802175887819949954615166755136969862498208272284388020576396196768465547625329938785893838861576295908822553836097994394602820434839126052297664864476513372835885444718370978949529819023114331168332792808606797389664967224837444153951379556277672639543876930590062586234759836161037460585059593728298876050231510626776252362256678548644082445494567055754221133471591305731323065612974272737933424265114847641668273263006427236522346832394238263690727247150455900210254823628338624657238865182993701175176551468006847810579035267016678536592802228828828615075181826710352928876123766589661667101644338557489561965862889602913556510617504411686340876064063770278575443980682689569886207761123740728214353283791614498987167879831694291157411236039725478779721513549676558336900311361312219721829533277744967816037991469011419495501472780840221503857412428003576122242184597528104761368833530731190071662320740125760486706400182128177057612278100006366705008091991350723976000480444185976756847778854688369346818639696237970780539611972518683291591947850288617085308235195741662174956940385105473233753170229356880156198887488685425576141500814667747662681839481925145568490576566163309636901097843586469852921195171603633462883147235171715468379711999739680109067357612320274768328683461334705544750194451204057687304065349872914429816014294202382440555584989233175219552274687639541578042384353027158790300662627728951945382714478964439515736445784833215295098327854272605947954691244724478523970045699914513361884504571610406593974930704504695985479560607164080921558791892552665557057073135054054520844307764570314137636058413877769066806846865433539221180861255394101234377757858839652978453099362646978632197211059369548111268400805749167328919812052022508802322498622982664175465883409257281925530919231615114464407443771754025487421115027000737721407591152322093108800992366458962498070945017667619828038571567985461279082277772111275074664733125922132391404836764157469765336729060895774787851630444070784404479399801655599937189714168789363997205805498410587711807091543570328509313198084527557632356561014620737300798697607960302673725194403105247030284051779642465634013658632786418289973703596344966961923292347658856560623301666031619332164966569559009987871025585258134158474953434433146026871768629015735426704088364492389877728195529193517742439285492758792871711426548878192293515565951910765586169584475263159218276166486929106527866386120519483769817135148676132454564298941701158221901563819758278810770943606773617408181104470805411046854249839451341687946160767564743342021769460635806942513721875610499249588344084111845342820683046032920328633935817069821596104856447556336461551363432685355076090329410121620487558012123957825542909485714365155485638412376281248122932369766391000008496739018788236431945351872697015242407294766216934290249896492886939636379792680472139652669899636483853123089272253456922992814223356138326376256244469538948597267150446698257622418015413089933080945364159157651339450295353799866362318160852930499124972376722683818436193224295789343163241625360490101430103699462492589868208312519390600238948216460410287991479585722433338603462306277038168441245119508508226801488048485645537844119424959861541501501641199424515520795697301322942815469477894701327013392143080137574994799201373886602551730460397930448891047294047884339509957025028412344575726579410283040036197241141025132974547477946258483358544720280680670229312716060406865987172704001253565939437300513031427605154022455073099509969219310736329781607881638908770248789470419926722902113897493271888571648259554826228026472667755136414677341000043420575683750884902831296688911482590448634815014204606751775796791742788743182523984130960754460979321630327924449097560623483963344807129451172482925007253539233478400171171461099038090159909433228082698850644300198232336153439625161717224277886201857915712004935003017852246091564738998510860164534888368289612740752966046417298713434497111141742736746659529393392505536575531225912212133592198446563942935411409714257630470071483027099043412363782057412845732465173029496281014077064076160730785510661927157592518845315940477544471341243972642831748379912434206020788843929347383179411479266666151070977503222948613817943462628016998288604056647038951173981449632099295740280780049611041824940787085297885652441200506632860326604022600257481857875244386648923262330440785914778237328683297834474556347338096987532999653153206708640465809447133507523094978897293735453856194896996377415754672644596292499573861047858453666444703896722449262563961078001873128089385331838355140537164325973584550200982886966042544838426287901011756152430244619139949638432568365667543724075906607200376043765476717033796727806841217102551875753686550917530318801902845575821968211051602628720558833121010251623425794305795427707426330469969403653755011591817019600944779825929629100890021439837247087520807540433997273105019417572263799634545444331940136938007302913078839505495362840190455352054011192570816804657046716755232090763730615391959849451348761235947509884379405807455849551344940773619591599543603582919465863530953187125942874903028728194095588402829986612426309291120462818653908442139204284507201821470845258480091730034915957500929225047002716305370944335960300854809500128980662025121302375043909779957617317017247450911340639162502330863086469483560685645681145462697310459352440375231072697705907518218989964942158970374357724249596664900527186019741531388584412668216562589269041179459481528023139644818097321659893851932151698779913380815210382884372015168410614471179319924409253623939002763929035543488101096732902491745330067508108803623296704019248425319716857028542603934366692866568897495880948850629382222881869004905001392591941775825134986493854439163550725499187345243174598133847348683039126342661632360651336345061073203479094321924047311810681384015579706080530621012632926254900474959990765857857320637462879297344928237968814328585918573222476621326122844831033254623745428383932608222912602275502417242055535939711330674745014121654550976059391690151871751025835827102587929102334713157257861720519589086048803194795885666828508707720328217705873389403128163750387468078868343114532480722849967520895906869807444397373977231863103812372230221015741667615864538166599504331086311982278372429183213848408554898904441437939384403524330892068599098401090993135894428832740013602414656488177001201423636808131214119237326961696785850670394205276104289961133348759692390415647458361990573586873097962553817829704635275178363218032336286698048375014061461120058362736147247135847210462895432412569735984102686282655971985172871055710343435492766625581410833565545399017771848258216266932012963664803600582869562138367611870226533836464868032703942159296899875168801341360429356929949055702926368806103280609426247776620582280808509148440049255462923582622936909197688845365194367061436829728231020252075581178172312882304600834311361579520301530110601992545203749616856325760094561250527552008076826377254729427953321791592840648567275116121625702443739920350378495417679396800128413675110378280650414484310536482674494554450306754161193004146598277241255413579390657575158174481858627135538089156495888452884301465938047187793094150229842423688659409056113032066113120271974314184527289856878284227380399421014218125423936374877586868547810487170955552311388173411691248408129542289287891987941105217953282282413685015066073661391791178994546596374140977887700732860895225458620796376122107112087616770761978100785691495811343492194343055209181355138629592563446110400473445003975221518739432101428449606071630063881203085221962096723700255249763025883596059095814134340255661932044827672665384575234596682999400193191565686219069304670162240779910058038671790170145702110539493540418745476737845486126684890883929546618179779848978367038160719585267409570132528247961886187881038367986903647375175505680534452193560173006285035327975441033330017455324758230914696995263564136299698636108310579205512412167383156908099437633973044251150227318750802952386504139790577530326834814033439878144224114614995639725360153758860610928672226267171843548705949674536950780625744037515683176814136031739764949778129109565075177233917219857670025202289567680129556844655281072485647256554413542828774379652846957741990870542713099450464249214797132216119087617112367361795794079066213763214937088209648775492535317929486749482036410653973990459875749305595480534463567242413667485558493253861844307159021327612039091462029775165197311694188546245292384386211629271443319278072519033684314723394124226376786374690194949796205670466284486556791843721764368748311486611559808014878665892598625833320754988406865177917076000640794081381288695276343612373048369412166718168301725108409444958476462185571289613803818625641033928777629485181364331217406536374991168620357730117111757634921290050940472060437566542668249035826884995942129297718295320123159294140634674078589997801789447036146595793546961555375519062889964550924436780876709487859794962802340495902949596529982012227281478912646362058639203246132191701454738334925741397948443652103679284510644249203250453672588824841381423081203639896540742935857143556488241777464760801552253350433897549261086731539326058417332842810919162118392802473896797562645959901008760357694502278472586880852880909466760923245873242267319494461940009166007658498999737056674846546681863663157619227476073487548259364790981544096453526433344637716352681288393151921495406038161281677624687043044488648532861071093295795307424913597099855865536926745196722415896061575305700093284189854157791774812353217419561274528400742269685031616275562317277085658167741373867598909386236368830767936236118159583465946967013740850095977522783700294827216535228671892843326443959656638272655509604391576467915860674271772602253301710855812458371116265218945179147648739326463597858131744880888709663996727973697099722985834558071317200085669796534182627406942515366694961872330767029641745028094190893756683213994552838614247640376768042253725320130996294552641708338828154335994189979027456333295720563267158806501716536090589865669033141045053781519222674503275895183597662448823631864408926723418788965888994082346655594604513008415974708407141022855860129963284253754089475805487212530501774832727326824352190975026948989711721955748455773921271976357767363483956937982842269621021957259720383049918210597671129536106162397935766563568069888740443978263476743627265229046441391895332048024699452160075626230002576691659298882353170501107476900292610146416902820230585011254293849469374573938766534445053333111625820003181645274738242585845353253478267965234446817584982787541964387761137976976354668766213027451671066960019869005408031120594377506218077084765909012214508956134399564933033729574477374719847508488768770535520857980269017479086605729055043618031016110323424487050989738018170062651092183628893242913389155355154516701740854106770111894687171571493135402838820973588200512857107418397645605926725584791770042610033964443194870436243984609719066871700503106498069265709812207411804229892844347346738469207251218744206606750395583074839570228791405233403323697303446837115740925186941027004877851560998432568472345909874809562869165080607409264065977073317745372967539611893662496140046357713790256861944103934325283582108740554494775937885802929308819901558030799723176450047930358068698255371092844675545623573646242419157050573121393383804549601599779616637779264996794870086459453573975219063001059893156833614246320673532256826564317329526230917398856982995023187076815229735712428422296726564527216850590076746485516321744358061242202479165407397014947263404692433193117350601678488349650790333429071267077688827341422134234350388760543070353155517430374872912174741149752197678697535331667489376476950209142758366821201533776058343220610820437787705535827518789644484938646694480010149028903425687311882660942947973038013758667817243944787535314841302273451739275732604719974797167884808739966964894611269703477020901225793341433316531819022741307941337400490809986571761293992017952555918277837703683401065179762133690258398108948318089374980828343056594669877319531429526574134064458599665143154731888808985925930120038182709996467882516473551215115991729835282701978825282263270954094523151903810103136186741949177843970465741962374743999770087504384389032627207164957644002058690099740945004524248502411508421523008103272499109576334292066429417307994318434938816921859557156196973186683389201629774070929879077477359549589285281821885974555828644359587523751668267838460866447191907874911795618805998328125872065781968157954356863208150740310347383762443229357863184204287571135177651066475567767128181305787022013339460835839835214190394057146019395415647082467586458832479819896642005331048649033645662394607577160282530531615035094305534203989073255357426790820832905177245940378807090060322859028546793544588844130729988537311025089048891059248125087602539533227427848880414856539845011050590439271190499218451364819768116195610609472530698736628232626119834928806038664967287091260564558303758534158891007114376311331192101596495564168909406743761221227969858256287514339146707829370963406451201699107243415974629888710008439488405121016369336922442328910198443881094359414171565819526072584880164029451758399454038146479458230420912408645731713053941699636107067142610523327859530554488655513392079435554711356496631339936744582164442549359801524260187143475031081591466699357398099834302798609249770763508133249346544481389264835600347700367757974773741991682467725451108557867208430005139814914539759673433009083844528682707739874942038123906095370133839508236924164739458037923395046599225861126184391986187273377355288729978655048795333976211582342470024804065427070735196903875386423464322358222705217483648001709901159607373686677925695175994978113404436624080332515024383373604146413996345238991042766375669182828243795463110088541831833133117782833222599057477775821066493440783774911437589785470834578163751223384301275187235356367328931894290799408037910665137745154633261224239789676607757310242965543071343953924524212414309512782681363248463192094709647525062464483284794972126415993107418658459334736612272595540945513758582940992949752021570616037131731989316367531865605666238863615935012805181985243558340551345881403378209226522028705727701383563033750420088026138943438806642509816564234823676637396742517040930453963023642283867635184839187834504083940087368129426376832423771903394376343263951367405792393741141287886053844858782556069839439812465541390366266647864816143182154635850800229824968262807541812542042136357866659629592950718516717851476088323928308165295547517148067961392735497244698947519280288390210582710334561429364675134098865032321846964660135661721649902050442523580498177071285240658840615492064965597287308414047026447099719345557442037714873026807813772955522911033883062748601893752155200971272931805973994033599020485547225347577622779979233477380703352053827599137505386144567631003578846837567451593369657864092993753352235048111817248405448056806979068078710755284046174648844230396562567973093273733347180628917731790018558757060755564114006395087646003804381858296132928156711671336493788656384925199377546117513592587981369973970638991099908509696678134284455180333733254678787131144272191507479227837315575875977927811409091477389790505309715197973724581111842915764132404515827068342755506758163120788803135475461200311437348778137254927439346948874422822851191892304425524169204032779613494934419122573439163156809681877735222565571968291325002382450463427125378725471170701385420308942123079376542884797694167670270117758529124030488358615687232316821513077902003834503710310836185921625165549754073330852644826390955011366516201679510513744575513595079084421969104211599600503010750618116961144847129382413210457387270996270845535646570322905333997132081602980403755954758623844475243462482711773411576091726111565302927587445889011665397749638944202540821025537119411570234021329410842376818820482852213154917912605172865060028660718453246728378910300007778606643799383597305848272234718633962169063170341702091637999878369307506783754355922653689490274274727373941046890513326458837031456994754276487404311743675601667177270394803528350437508457785401895633940896905635587506395691691252129771867388544618205648188412214612223275957387276700505212656035674656414927883859279291840995341830407054230800489747964292050637816166028069482453706755955259454842804343876008423013534179022502404680450768226034548568595249006255280597151854878619334862068796660933256558765349860732224960837923704369562555472176195646449069128990517815094229723506023227293278715302325653866876674211943186375550098403861815695202161076046417555492525122067351143307172729235791534773194141749002974920315913535248999194583617006440575876345228152271990010925788811096932784725985275127229084428726324516182984722597584402296788656725226645007438897779269848210580221197696228142904656653800648505761036825582453458335868427323830564249029165354898510237273008854773978144058606881460972759291477400753574094352714864455678572288003893163851346867884054247983736955991573560793321425669853674253813410522768018473902783221181533461332533378209640446979346933561635554057053379044964450242163941516582970861699064759055252750351695640463653102493234169391101595936597988898640009206401392841269940225269179142796594489842936679812631472770789514123999927661236760581804273408175252701157499242615513505015147562638143757915999742027239315890269246183554342695058601750546453806233094305147528744012161947017086954019000862906928718373650209339626358636738760755544163885029484040673140504181141567983946965310123804809971761636335691903346968902967814264362225350519016572543623668329561144563129706351983106111783693104420580873478662358746105878931339955071951735329157443277929373262159347768439271252491097936030596883748107823825357076225228034779247929988085042416206782777306250979458311079303954857542030785014409090099588379113849220840898496601264298597871210276721646413092887504130956321844473756747139330915929873611395574957972210569649329352963371701033630438491217239241009998960276338910645831290196165006638269827340492621808519631388709436739366561046715115684954662034510250179050650833937985266999306907667845053558790955080828678252161959105446242663779756310493581772442227369870008723707591975584543430100889200389786113127499967882503625317296905673536863995129718075338301735019881525784795501626111435098419513888611563435315391914227818060891171824386252108699748260773441579286531625768580552059236571921806376197651791320400246610323823729078676044322089770551547845158540595370348607981757716546951791962156814026151803119050650372353567783496592086216587828156429581185075089494763713899183660179916013641388567245840161553386762516112691253566377272099612256859485519042841226220795518814633320257025175164020817810001219313886110781240127325161358435615600246290542058285806692050149238594706773922289286791872840643658832030078350972303887019399767808129745219401953060708396750427816373750562423891970613449509504417715741177875221553478284804101343446739896406607679808535921820308088456577125708391284541250356971235859427696845852824738298513471287273654937237349024730825922217298636216444436790916016963836690849579805891723496869996744352053004425634911411142675698120360191990079788380800500687199047908061371721408057230077891386635605097176736292042000865199035279032485626167239208099817740437633213043969105368096131153712871051319381827828065209890774954496383713296595810750794648605587301018669263358131972375219772732801634396981326880624022565750164969882223713821832760148473078279450807789447209975547123025586540107181594518773420931682544406271879862172446377500404089605777075565089718862523163548982818757161423340567781680097745929334657738603434622153629027795141081645828372430384223836201520543926275779766300343066459486316409777292431654108224416713141538905623086707746418154933897541583110370843296195005941433304188374057510910585759257603226596207605927820913065692081113887217900917314743655989689906395373043493811606832277545279956078702604729190002207794984042491549651646859718500587473959538774084941065063983340000157184091234935276611845152334802392070561103238712501336541608625697196995424090938829013315088215508409252610069629454664831216508795803076406976724852342495108625959165725701638172776421662919651871079969509693300045785054004850741865922893818678153601160462482552940691883746236748072431919016580371421162266667968205638502151915484188175727318927578527255830902006499934517942723857117610724422042589274230837570371598852853971955863318019731832498869177574289093525051301424838366461606357251629830360126733453403288304031959171421029373704393523437989163535972837057415950324874496681147602317296416146664015087583845517176616827126346074230558803739102685857452498189285532732020585018660514021895299496255442756007765512714435128831150653015967178889162857090030180166015541791225366818086650882325475144753207530845371634020551714356449332357713361807227070491651647128501106457580202056609824640402321545408508023102396914948980399007411733155451380493646118393722289947298137692586801444441486075586421771853740059284544428866049154873125705678338868414897698714273425987962444166422730505929315709152620681416403770113170560393537161557302018180609335640509100459797521969579993532741115062498368746545500854647379785294384648085144356016266252819887508544439682407341239108159935778161155371808947804607440683855596515270109481976433636437496652251786361791597658299277339301878054973132744864032774005211285306491444182858234872200650036950105436692924352054379724813731510169893389686741752794421546299928024513789664240645140681901617009575433655876539370514236240329609704590016694427183230605650809798908014078768791776212320742918351167479111270845623578263513770424456979426976440175030274128747358941735767311341825067420718890006928045215386874199191380716834733585291591726423904853975162714847564640827403921218135343464264756094681717428210739603742500283119233588888606444591073264187125630532028890306961589415842077636606200936024185561987973794350194215778769127001820631380109290521766615732537961534251163622552931142921111738896191309232970065884179398534005986143825600242687908778246431970771064612592758272332359154118551109127835426069685645494677186648127773557426655549847322936221855987536235931452740076362236763042414479433027955061434520653389428558471580476510223856980911291040419807775523339407307334791918397674842438600105584531089644832815965033488060016088422147227941004180403847454621866334972073858295320855816429751179531447098922501754583620349236404216766496508390430105724147820742163062243066345225998626162188932895286978815733769651587489032691055953793262073174109638542799483537097916190520751411828850827646317650430977981572979362761882963592090841180481172159072715010280843594448680868364045568606420769934383206891238083061030302443190051389686055965173067104146845292027317010300266743470106076121220093506421432715062330685064564221121965145986280934189718924938061740872419169173246380190222237092275092549363048970925260585167464365326225003549042521762259108643740972171382453088284003608469857592882804630054314695513591771475376219289469096426170986315520827528996123047227334244230575628580248573384700335490863666223534792569977975878507865718415830043808334616473843447119815268367910805163945399686944437480390852102922831538725921355707227151339943965925233718251966463448578624078845972974997239206210102181963532420469995199080651375332961525320364397346738297905535011502354557545397417682428133223339210500362030089326511968582985368500549333071329336082154721882553445657633331224361622435923299628505790762761945002767032883332465310025945273212117995622837504263458153896483812248190472403065128593532266412913530220240504856828590009277687521895000534169320960783928560050050366764845577847762339253499249298991265093109360786540572251069903712760730915900942620698337513416276923539809619992169263022913264535017215898293449102805798953406029880390858367235467763293605423052754776362952837663934660790440740708739080853606514875556949794662963884046125731800724646202799945115292126504116405265621871361891073228895608064901914172455761575754008923452761435256148059415686353473947960827744769211596691100454558418053167116775538530450644126130297396152336846472309122017332350531225769253250453927675615622345038838857593883281991234371877672593242121070129219649701067953621409762459599418449018158311984585075935863408933855523236525229229819578692740922650333446215414746748765642466435013328443410964925354524506292147896873007355759873786190451049489437520238659505444868208094056980374178584973859460454243465660918624374423047789509546759072944035341691991155386405324174773003065193420166017164143336123096644468078545778614238088168239305935335903863487846136589201594013461936277038878411288790784972938962899738382320605486936167716577822949147665601825353638653768184902504700183761225388578088531182412262986982607198478738565096244985882332456008945158114067744172096022339737786525246632214787531550156797430606811777470974323627926440754811738668767647829369868461864883573547681713518457957160136577810298641353076190339534263151887406843830609584188056446296380378330193678728588155333259818054481752689540548798257570681388615902567123722416759734108120721749099373244705507978465751014042914887672648467092566422712514605877538179963069931714453651959975225535288965661149009709842216422445038920870954834307427029283529425929609146635843945079291411802101715467627493061430837861219578493214626004915183230472631469787234682008922075880476603192833913189654126087121213926704794431538412546905277703530235561802708464857797817973489018683221383681171989665397054821619081636836521014417071776079948755794671380810407999237913820559620044731625976861552483963589210840775427110494747634260811001411613135705248932077396882783753184598207252642653015269617576703408979821665637154412981110877046833401661826643182958279898597211123821145723307095312260823268696799998837411952243027399599390288843902326543470859718482238556424483545493804043306781491580753302595335133092131284213518909932323585577408013449804998940420797477339007517362948498223004549714498125033540797516200643139625815908018975892158864057918406369242504835575938460383543471826591307420485465717032955696346629513045788381614647374733478508554524124533597242321595011145257027714139970585506874008464463337107836012649586411914529905562643125681830771865482947282478809896179822611512982988544903427561716384315169235053425162440761143047663622702193666662223947227787287199894067787630232309763922457656746599750585381558725119405674872193297748076671235754337928419265356707572531701248014205248051281245091556417212791183876908159539027948530621930737973428868617566852916475129690414040912015154416679600576189678628043331592278125449492471714225019380972920539651381546386123324214845132192037346973375594577516045186916640492638787417432224931646140815913471705350096887915268589326384423420215916864770093842550301715557849275918687802987827508413700985452347229081784441513486454867171981907868211366726775517022202818174615053053058263757271370708183541432053506503222364301450839750061536548501916499252449884397496237546342295828123416432196901529422066674402255362962532265870182995659107612088214814536012334248657142618208672376562065671633806758916727117882634421278375440960345311792089349257470628183661050703368631719586537069498348614971043314132873817586634087262186103119460388673944936913484864875801075474315040583308114612499147395844212662631993287519957194917371293611814409004943679999938467743054792215849980783310681556209376955257929575961407930698175115588241434571846072277442039065695029422968668192132746821533245065194152455485891293393770163096468407493057004285978143926155677655221062989949426809668286964369398345515283973836425312937048775540330683607354846211504230370471551480668928392589986207136349687121750466722150991917389337810989927628554419000689079166034283451675960374926081377465534356237674038319246159270976597623328606140473567767819772076708686510663935994662739273563907690162055325943429138752745279960170390131413694140958860702543840466029901589706816045929313812077737386588992132424589353576891612500950398033849061299727334634898178704479079309052377544559082360720169925619205119374414800864652758170009693633535192549480446827231571736238989348851587586023605119986645597535630848678653870456494287195916282754911347485634599299180908503097823063704190143396541288248225237183128931319075900439165610650691666262627087996165377071823083100136649304193661775065091695800089161640422007959146501139244979422655890276452048162412211815015702270644659363235171861677240009760533751550200400931049051379985046994458043644162174955037140814415336093520398923773245420184513902375738607125381045058804118818155583473841141137881924849607982870693005226865524874387721207347778237892323851911505789586962310704321932219871631272816601221417374303293715846579495417004364410566950882468522632499706576615973471878939074257161433547934900093358468176395010474992931973091170385016529439718828511643708648497811546368130725471919888192094393251186825659601203484273194879510051649807278624184244192380254705440669691440432611687006693601906160584140258264400747590536660687408675414488831717740836672525589403351804623031130966501817560721456710932050992255851202773497178922814361024767615488328032979573848020889874598871750644591199405874675943373592621324448585209169935351944659498257086932094905367019138356124826861322262699765098160806412729846679553346877828206642788315803201322986653476599662981594131483403071402578761808934648694006907397877386237487214181836314057394254205007416280455538818996450859116772060832047944214837026374012017648495900341178318938434698733586474156723811432347131968906230577735115265699215273091052741188999539874745811511609918070698109137480360177938933099744781131105567013910515053731509501025731821350623066081227543434638055192271810528544401157090993643083724717559440297278176952853675896331315684536843022893781545662062260974896472199079915158362367563318391320739548693921229429361348402371420390933705796696636686837139546297801474525582262523068379646559689552562724877308237264428335956589648587828887463294501950918605296232509843818922830509301801377554641279875192542953174229977785203115352142219084953682013703587171288226610114482886744923840838612652283151083922242272192469471321694589944491420139774905006829752829266501179150745160283309347245299836399085423849925188508496084584363721283152322339594435206454058776189541030548828003133444972990222472932237093660960516572748200211763984033301083661664856453351903321217766164819227495985643568986942550875013167658222122491476207401083968680032381257384707487192175523003745718991244652766424142264164831349260648784137997028203579522761219579235354197343619037044825502781474526743270039059991985274537524147399731855988093048570997300883265883523494350088943016942984577476584250405696190902270878480728149488708157394016707717296610961326712071805490196101510467377579589405408213784031089870039870722393409617973591887958659379532271935582073119318928859193110984333181369905328251996318155963638316207492250922595328935667047286666126714723959203419624687484094967853787211050670383543892108965683686464974970629631522116043548947673188418745113297817475481526062697538957853634400009153394307966961679097808176740896964635518859953340472853829362031273992473362936658931692373812890569654739109632613183380170049083658691043828181600148879746316045688093190589351555696650017958486365353610443976103420267362858647668951977203379028819864305849778348974150636989648000114059674911338809873690287296030333485617490058490703488803131536797722870827800522187159356472632506288366854870588887788977950434910321636537475475552898712984251390883832344524800594024646060589502834301591354019938217160222702937710538458385024314789782549277695742988989018792121578144008573225822665931859903563936201089556021240892908014003402362444368219404380956656640895986002596564792497888947501384426352314396615616414864763225010928999590818937553635608899609669333418801308926190008563142373796787205206645220880134230250832844470920003100242354348781431131240463167275674972580872789829961071504731888526251594678169314559946937791563456053076949799081704182996954929903140793306283251944952165692324428437598163658211320262395655511896285149261646905206108852376292627620878722244046392060481217837894795677878556367207201252722484251439577494322090612543830231135963412948165187013797188285184944628007502370015386408928662763166861060478751823358079040707044628559888087919410979606110312767908917054405729751215048168128098924614386579541401247081633998063417860105007744177627920153368929252684136427388457580429572392237594536757899562464729270521347848017494844450877862004758362010033060041299965554787856694896156560826651759174394460888918842523734631875271904933453423496744201116720073614395300157859925620570603260508347376980078992051931848148499675901437123556153673110737319228731354545754118858152272724818693416952523984689431199412569054319546169016099005599713719275402397750119837690847284866371797265151221598443352639854220992900424897267704999599383959757845711004859097729340957344559042800098602013821948000859195406982516629304352342222391362058173479586102856105643363604657225599180101094203524288425553896326905502757796287704434745976658206734923076127163716700663394896800920771959494340784532965231282617579807288366962609160916088088370419172868560351792706994324987405835030008218183384614531183892251686031299887854754311048434529744202322542911222293649561670655624532484695268464331412049659560974239598169811458331083350206596957168032838859924934453058591833898849898492038199808187600045947936530436907546219474961783309071327104756260822383860624801013747760476416401257021375971279209202812747761265990081912599322462106900415613554710486228921741046037109037287317925429946230364256334428074319052790353188404513076794580721416464481785196955478159602617387092710574432986677451091706375945807701144738212183923303388764307273180611979873447773000713797421845067126923345701755148183366881451400310515027446406964770349522864392402107881702924954643700801680844459704289945955655785800622215163892106940184881534706532932732237751603447525967695607005126590827578953580548520741509226665590533212082784537942682753954051983951728136477381899849711695271261822033158018178445574576962992984253189610846514307135868160529788343900731329011517210360389354624754317754355553278477222991073502523043260462878077786424922868999085800518947208110302144900187905546769923912501085941994217330166594653832032066170602864626239753722179406857145212581133749781005820644521321051364568888463801620287512386035961363421113342807109679777729525072548402032763854095021076244522708495398018182780780512289415445747098163265261397011010911912531256055539566588159139261847699369405842455626746741341782792667147964900755758962445901003620031910101171376751323778418831635106252277745389487561216032195137076420027346655356136244979873450304565081682374004347890013212586035138957683413845187542018611994488475713657095446399066141518155956463335187413469256985852022988191238532013087199805005354861892315924303635967093846356068138670236797373381283269498704303762531708879172872016746753148008189480236937633122448174442931937608417545239751922601176414481644570579070518561559770596445135591939843567851470344426192855514825624738982136057063957366430688900931647435727616252923736201447686963170681901951734493703937976976732846995253934913614696781386550489534126073343675394742732877962658788933718473247200093167984733770376629095384240618734625220279680641688414010310007695130735643588176389552154289363896289025947286172246445059447401806393420045649210840073418508868036030423843104087744487451968883625809953559377984745263584921305493422700237168392586207376607445939887245549409919005966791382702335728488991005166626223592658330031845674657831050273402089924543687444043072232842198239061058097105980038708491743882806699166904327406940822145059423445587549861760268723355968490337544005151654469745904501827997759256856815917428215543869475862826360543232261632691747746923957440563229559964136757974121156020237396664115113603103845798551131670173529582198258148607413806018628752029323761670013766703456788463990052677123167979997195681084246631416555575280918378359882333649853626284143919230049861543902041651176613327850105501738847453336356369922457797910393291291299913904896658966311687412415715249241825775944318020161636657356600456544482151728065912278046205484967252543990841827656814659756090497949886864607633196053916889228278719924619792482969721655284829605103893064389409065758425056412184230771744429023975539453532140994190205892085279642703951618363478616522614146072749823690523394940104089331095574172304699322427530110123562836054256963609724041832376099017602311480084966317227847201252580919307677620453578249494072513757579066446600583372139413415688267950219495294987778190905079953950682101157595627192697275224388967974145684590600544853584749897086296509428980163952495417627646582535398472981939230520976611107371973587672337946136608656057214138026093436858008685941028584299804553415301433760000920372295741543713165326390859672077335094823684983111828250378000275180325517769733222515955858014314567451619504931909959088543512344354534040756882563804367885226931711111578112034767175648231798989596585041043856129183461133897836689712656970236180903266322299919682348152001277311074060040262003472311984216492326694627786827721702370402297580126543036622933079540431876865507670840055828924299631743653649608736540406682912035495662879059469283587697630871610052777723319711135963904660687769081967816025097514627927297896452502662297716840119330476360275430082004170000979458738852657651983255656097339929613777419617193452445796709042772621209016945242708358920970861952685018530527217358732890710743882130643845558757026520161902166505207680375216697400467490928825639837843757067282343606079629417436151824997511428196577551962587437201124093127242606392612871756362921127617952400593435699427176273616341013051577234914800745142496650953692072078461323032873336639416243626846698294987447182354228439896138560813040501493893423812080475140851269870134780696836809190682779337007761472745981952154837557519292072029012353692416038782919852202496537597014038587945512456994720620032713065860555922291441629301831864281874931309564928910738341826653420802691137624961904581973130033522637268804092552994083168537760178370187952789107184482109581940109509878642541512831962105169707500336091415210493998773178187233820433428014651946980175215824340233277192905793795338290548919307730567181964086282317083588470829938308610561826866467593222058017407626001757448996895865708679884989160432735730732710815376131560160347407553644297413582124372059748161990383864622684265749440688549243171905048516978055369658186055991213734273313614794286284329192463349197897680739299870960305093529366575075971065551637689896242683296221824930736877224056770024570859991232972135307830029131954248629602579926350580693975750200629795999587930244114917016123297335157437456870654109614252971156500708439290766054934705755926727788018383724336817168259653624026628129464463872994547326047884874072729601209622380168214189236761711175197625841189293224322549598808733285336577345249912799193458725598508826089205504157667392954238465937653059061986821586674758103772072851355622558249516986762613461650707691064294174093951011847354432783085222457222888500371650109288076382056516917279951095354565960976827745608523669282635593863365652144352777695160370178709246513036831487167343715489988542284450070182472891130409449550978579222588574000418218805840226592611967512896551684919770260782853508402983885830276724475750768830725073870174809989702323674595353206418624824572102678043803436539991537034429622745001999744644280369326133150512891198187147600959029181933862361055281852542040903802280893009336918429061500641775838976738755983277041430888409872226962971367421181829395974423499820062138243730973575741691604606929937350579115694407325912418456608394404279604020330134342846030590361566867016575995474148794909217264587827008708066383063772947531832101264044448796475803520149251819397817065944474723708816873976002540540267976315635314262436974689065933417624234735861601274354760092382199345067265906739731832212796918469415998584010130095103737452457706980471158590221821244098380038962791819643143867515468447980270673991238277466741764079492410235632585064180463908046499205418140685670221047582881840681099656236573567590654013783714944506523080704906969079588313992235639084126701751908120651894394986002276143923633900340631319248559209246041148531725913632377488450822737018453936872220204803514727539060662855662851785891031476347042515691570498098688323820244639798467173338313360690449896278503153176891434394091649333782642855388660567781761579431523167804166540017132130642695935117336242461343479841551544071557038892965455496750846884022054455473339405391077484504638561882673147450751658351885174263226649647938409373183976320130759990500664073311863768023177061500675732110807241557208095558018356834264559663408948846410740392308643264706784081554334244495840928810586007087181929253275912239657712356324568795951450832183292738745712374713349009702768425744239439576571158513441389175452204254410411708370128436191396340281455884056924680539454863541666478445358530705398694588191655025359094960594059610476736413823324750615933916727364270415858071744691181311112472923037000576813629531656402664756422051636090389132493725804554165278077073370567981256416471919108262878760151971410174606453843950449376559141895155366249369181425363060974188052724038427879011946055035170727489457740856864613315731960961432377702242609780008434691091389223846261521733751446351751960341298743407553500945610013689231067730324971530417886954927330595862507871748275489819242495248537116419579047208682509093643072262439018750278824279193349918512166466955202921213697581233584990634089195277692394816089285988801975304203846554751928206659433441618031964485259683732951347269102575958626056097722660902434322246603923827789822001845351045519736807730494343942686083462070627744783440799733848293360567055361205672222749462677663238770390739021542825869745267874802448770978996459570614894638909718392565603955370856674063353517450018280608607591624421702730935271364750777220163558302210918406149143706428988307665672769305726384255538684788116268791077256837431821272578108387093938761796259928876099499717141460420763652649296735081148583204119369074642722981828283171378325552581208023055504865038236845945889653249702334550462680537991760242866697926533452689845178061168464242110169889686880244094053239535353824019130669637495451405744179837551756745436648952005516767794510279074820483903100289261797125827354916497863071762514214738876293462450888472440792808893196658404450998404258939850879834348719112508751096705386272127481820985750029475126112522320053033556279900049713263159569587984452860387006264937284695501004462304043839260104071954715918225477965920985972113420328454668004028291121672528327991687163990607216225356822844972594890830522064926317636112027241187448432457827893094878115839249366929830685504423023739204542199826043499431382019614578131051487629563686515501553271962980595464035189647923841811704750672691565835580328358161914986198731516588982200970229223508391501728524153840103135679801463083576092082212779428856356700250674044966440153101107618775395467870587676725763250791071332693939563558471275816463998325400694901506819324681070669574224664723368122428963831173126032925451435659698587985683019928258432513866278823230262745109002482527673488929437782667959718746370234614830868291877544832541379428896301339893716054060014501613834049577969941654649168704296130412752236528400202999266929332750027709608537177701423266856958804467621889182757195081178581166896648967418158151755388145653632865361712331328418449292361009279859266771928167874318871108095896857028265902084430050046585422248667714358698421966141300517217779250853552019284455088714345979542443352136765298935559056004250671682524337380217930142317768127622484811162191421750943499723675712848821252663044757483545271320660538960026632362697993471138510090960337840169575097025128199296810972305081023447032351216396784216829293351623907718174978636607022346500237561494056479238261412097769127640417345096786458945253559257521905256654565567546067222899602810718863035839018979674949260838428213327424142065539370902732611381920734081148996065678961964271127251743682030397139670841540849401357069777101389523184849113108532208001465083101390263912601736512982104105654863412026853984453657574095980383086309353789793327169442700746746847338526176430695179584166990941182458454095280847575833028389781312622946937042417326360436013682423262702735266067100131282081987358974282584714235832611712043485683577047255447405729383097204876761678274402789311671278363687961676338681055733502566106337294078817850340898159758359080423797957054375124407110988553243785627329120277375543251269514715521822331017598753917198837442933869654451953054058092176234842336722818458553341785530822962535958600341756509019796356636161693814003032052309502967573557792625888808533320091753791317300275263036319577864718673870408037978437357555407142375297226615631306869811534513814947935538497939278778408951469022081073476756816230494695450079133519548458878424374004595551911103288699284323871163390404662954805542076108019771108134917954686857219990207457389417666804991194114582942072370584505809990755796734613002047558858919037110586010816286356869991723499440988363842798829364556493792567310544369681408129827912093658251319988707010480523883025183838289820192689163106722933950378032819232748991730719706333302306572204204547158188609204642348605549962191886715433724628616468046205073005161755795947368413349659744575646236560414395059711108010428525992247795968666744969104667255209345652387775278653621347107277017504817318206102368372101261568464513238462191626318225708200699258377052474460885700868422757248562934294588959253456825841467325382317437442781863307630183204440874296853352780889090547945682839624739270915646848834004768315581556694258946659829515913606979167206145496493095919277968640948030285311109365603185703034943829812444014150981028571427494758029638032423236547286058652393284919575240536945424940389822483495206383142604449988317260458714524303158767111948406236592489963107121311698135234606114996740372348850600837303876987572917435852958306742567691730673507095901120803600314332723032484834044928286679954275114635459381545927571407097546588004181462946424932723468620906777599646896755768977831809921255162833057965440522066586232263960349274293226942451989904208320811917385101880928600090415572588338375580625948470268650918962855985295798529056733364412998070998050394937901423749702122154325484240837873079325822182304871458827505438274156408677289499771847920829496147084876917251767191249622074248965269442094429161325595975539710799444284653858475503107976066207246038178920672608570341475651773650808759966036915263793977289976953390506062493618025781461122237107987905148404770123204621378268184565001404974652991213297653298850281327171808431701807278267649107321347263144603328811991949375262149251430496945189719497522479988209573856465917875983354801151843756436036484664709060514448872542503755390478700605605457189315059507226889760250574342966837523184585074216680103187745331121489744266698797357346997259683248025576747831566203046859520739338830884097812473806053571235702290349428872140863551081909441911375996519553830511447488634657838643780290559610956626368809292688403625763103409012918540016961567178375990946487735600015867818568979136569108385339754302892302703657607049271037683452692716930876299795612051362131947408952914601027940158365113777845359038154429311602502123322477902569388000029391979320361911744413834020676115112476242637552239258398438130320577552734846661870596069088666824559369078173010449255204093057276865683564995993294682704436762324243109736037021853514560097780861479687752617035285202845059786959290717650593596020262531331140626202522628008442726047302924153490456134897179141772423212177166493999356089943891005570142221420100817019417833557340365470221219730112190558338889951876885572104541146496834698723716541652761777837141688671252103700441324873131721179351701846472232256491782773627636912320670125004120773437485607339252497554314820954459673546382087258814067271637836945086553702139139642158075696219001767025703352542536127661274689195058871384398912053712219008687123156176064631941478215082205085854403796025946838398414540826463442445420009646372450050350829008083462332638567826434987470082372797209825646292953474280491083338237038281578952021982435428443489608759977691443742295578427359021606733081405093543387769325005607877933550361254917481743318812413464255743483770586398088608264320540640105679674899935964530928278331073957395790842727392069482676135014692456958556599046405741427406196152083820639403179265982306930283585318410026335731969611454361170024031730091664841612475078003810074077465692923872668026986814398791405474082838263913965657765627007924200564154261873256191420225987212277231463368560477510490136725948723700255309397114052109325551565074979869328635745935557760604495822192041236851674418649519370802730285801058957516485881674960369091049621193678887903130320986515717511041217024986127441818937146615291099228057807046231039741513857970913254150012139434607994187687732201766057623188077893933234564715469403911305192027356186555733287513943831615445360910882051075924611657648822846405521091615308359741076841673402749378121172520073740707906600337439921821179349957599257641306036407030956325047292810975378746321089589660432761478846071520550211700054397667734905543772918760225819185431673851995313690920735655318643535870831681968592663592996574459924999877428529594739586149691797687790525260827188191359270805902040015644752374889751311594452213222949002059681918627057141607079856983079289847873070210207833776290323876957181091799206132103517295679224022534284394815865410524743327455567219862150650532698306996108161625125866742730974022038181853353011076098524371174800266454130473285770539690627219305504706965864840080633302225564713415895537592466521944505447782706331474353743084820853150921664721619190137904767788878095134104974899238363964722493158903114253482862662187235082062305524722934010261129202534342732013588802706463901663714930230123671383971614203306461160810961741200403152719209830138588357713941274823319928569735250625136461210055681924003485476816608463868098646464536959315852281746597175809175168962624041863462131415953703614480852835456093070718506434225196021355708437922579891786452031118497600870462705947226698707618584302514954934380335177183701635175727188821886258378801736990053740811003212964524829302304070882235031907351332081706163407128441401260166570127263601799739070128606223710423534590853443794008541657938274398081488891972506848210417824671288038397496132081957631652058228782424647856134446378787227668928260917107758195544179993905512763825926218700008831554217845539892508076953854128240537127519978438223598311204116625317606286526911119341070894403647820936781865315931933924461048345424190746659101640129711308806035929833236386698381637029008695381666679834381458379740452677887730736406875845113008702308331960777049849054897783359361315004989854455236094247622019500890217853103863560215410062566516787514638720980205392410264323473728295180980348477647328880809382978044644483645161656257222730844058082775024147533544166796637025823431598791194577812570382319561847802744848871070765487677835454828119586396321294962568074933876487645426626752484838415320995885013263598832415498870241203978597844993724249391691851192139029560173885534045176340322567858707648417359790763687873377069994292837283337113628401481309845737851432598151026300741434351629944109053215146386681772093592709144052613514940364566577396742434928323332665874741886481394064180306919951976021191824179339962777415367142712150555859518878327629974505626350037173435997329537289887235650610869116745705526391664479451660687635505786849770376940288897740706836762912940237523706998812803032501427524842203755218346566246538795547830629193158898982797088963159028657088048683567950337028045559187465869187101069520467606209004479464359643485408314247194562079866211447049897098003423643335069373818994016407892860167711432365399638236508553043335438702113652064105564828347918685858190943240947210840998051346380060566543076134979193949233661540517493511730010825631420042238103111921334457682732872975877579550531480032367675638764518760314858315655194219761451813413353323564962038668798078999902692061090209216742701735821952680806839286623874356592330838578923100040126554492295884534634691936026017608544905603375113374705900275688613647482464460790229834754132865258541105278417075252184598557105322219234511076325595562209356353957531829543928898548163961589841837184379957303332112454286811458420982103498610383242400518352410521396792690989212385276855749701371664446285765818954083481430651151853887604217203255660380609288114276060522193297286438777675934855293722583218026351120709503423755569768537098847209971608726407797326081773149528138842627750628071184421656928404785765865414727041239268616482813213362351786934422624269251173475119942404090351138110793593403717001247796699864701112317454518572503493899793042179363781262871728981885176643383138976477436444545554474672746944820398517482660994156187701001503329839795453721534236214335234186451538246869753240726028691319773964612436583826711795420856339174853881009786894943664118147453220975129656884643492326818195947100828939958529147272439033362665808457200299004395232686136926867165305428545839912730732484973392308461699712313630838950896155689496056444537495396139217206372528171736766468489160535724575778449489743367335014086022177149279979904522283476098032900732503169720367646455595585529894938170227039835269246279234922890044033344849903267129065427747114518385698513309536457131512733822392281654202871700841324890116400544021221108837019029916679763404382163101015794953225654019800993932692428575027387311712623620574839886151299708296725686876307708541111017783167090356278053994071230602848855594572457885678724587518197250311101815515136058905695127097341322558833220657969717207264921750271025672099607565408934630634012156848924628214985208593699456912360785347415204366018643995481222361599183210332911508937537501932571670335253892554701700689957682452455701876280656746926597441954381248816037439970812757137342722679483701324518375618821722464801474310238486190352574541875392469125164788521681751589329543523198658060748972946294679528107845703050449077294567436788150859139463691415325477818665639934734066399187236763703969097682490059579761333030637103872191085459221172331216527610247329885080975032624598424118267491740357581389805088926179767519691633661831208950645892416473870933209707946917986638210727327901560044942904802373858477354597708649401863072756049868827768190471325981277104662657150355985392020448044548919268763543638311250646811856134512078319317409597764394426317464988174161854162372397848786729643366636959449270856106663698066593309364405869529454533497933349702874241045635578968067360089293071629900994353791454589529332661213030550444204674480764491287519338731936195354009148772467969230767885834329090934656883920031608037859559492461732208550082638240674208913139008278753944439102532097203264953580555535962162129650391837831922354357943388112727617393365286031369946886679076451389891182061202023538153044999406010817243476313772163325193148583584339027473452352829156497112920894430378124002301620121513372532370411480598571938578648001809735815525545224626326311821984356503723286876809414038922648131451783867881903269866252054874266201216109379398348554860086742738681554467939936014906151524244822659932039206072601998827357068109670624892762981793411401432834499119663577798040987795064570038959675059370804773530192119349502777769538303425269907276158879908697907772401430188765592583170599082946019406797502522817141061951630038084384242220577000788324362982563372699411761701486344003452752899924773467556955735048049735364036100732538821979518920450362059561582695947276070685009479277690193764599287695780113212255810902111970803391898675817424724707571263637358461872309850274352181621494500773098640353346517260424962357879362390203877716854562021234967901831668081662879208670302397890732219506072018524751333500747104146624424811334801895400912334435793672498162850307791517417333874205175299325211140453788194388437134150859547064409333991067634203427066112550701062788665488087750176197203564746652582033087823244255835876314405152425242807610840523093088755130047758544158292080988082093230673713574898375072560675388181662999428017487792768819207960081537942402256690238941120552077552663925184065907824196124598417259775818446007632927395749967335080751108346797115570024084538428794928551886179056297560470305419242455767671148390388723346378190603138421150288536776661058312683218903056316589601950733243526509013955577783487884419865246719231423192343532665588814690063178329964763739739022798517448057717178117958006408848116990509475134782366283059871308367133133640125534084784986022478008708849083376562568574269787945967532187438665708986131981656889371380169578793518923274248135640674402614913295028822754896840762117023431230359396745057839304161226940681512523387090588884223617756314050491169305394891866403546170575649773928026540924118214118879108160244845179913122682861436297515184114331211162111883559590639531620010201045368849002878136283863276788394008569655637070968661285306534976740846630297995908779663532283879201235418505489656806583044877068623180435429710819450283662412516463133626526362176235620729776628336442635155624636777652197918055339121847348117514343372281605693776879688168472276688450317591160669930169057179626767366344515971944819212807549004628836309365394078021105343847646681561834285634271835550072672696807608282030739425757785228701668428253035447632879392838462750828743433424943919196338686267460234493524833421688124077851347883845084534767357190276232623682192593601600066142576367635380843986626533980835015460245686584312203182719557558202656854729528727046367440180888418003558307965815302456248705279989446558607091157224971845315968707378429399523198338311544968964147768895567922682443938008184064794161021794533455908821384436253840231299287550116102599133866717415713572121575044854808811351662207401426866800164812389912746377152895055854403738663304545568347628598489198895816714336286316771884440387651459432626882516079482324908900945513446382886228041790477555284651199076957789409707009700673478709020845676392830241344647294857382590565085325333018431007197629865988017192845625777773147354592498483919076317842955802171683663362094647943652411392465444938756974626000928344227853609746770119897185465126464886390699971566785113520544223072579827107704249093772266341410579770122649115581276569013951046623277283956856223248538565100538764181957898447592366089725726268966059701609848773794891674939733878146105151261135528207526943248699685432047534413630000872855904747346830457723811952560849304443165468773812965951676522071418713493971848822439509384326193936232979469809805882928406802816650979159595870420717417417892213646052923139816843516617804655561769382755823051711472585772008745451609989015469676076645439649291446838562708339084780087927707524236902562958327492950158490940167288464470443350443673984194700657561910641102388502982498940797631041457460420217991812181469234114158365980513967152836040428475725808299503807186059052600184113786826451545258516158260036566723445395612346285169643479404929644601415692926434350616864357717635731746313259204419160783745358409859929612796365626201918538638984829384310754282305883279488530200498536811176929615087678374447936760938305305968683851424714698865447303646271729959805649612854018191727515169103651687239649846649316540592571967261819163810084594391144162583368444686747860706737946519841835463186321952016308400412590293428247614878329924108128719981092550999365816131556651227813416225670991740955127868660981869426663413465600997609560733229112712884144947997253814894256009265001592641999904296478182632067220136883100603312714635990526896847119277358583326965891907945617526771995351598757107865516372222569814518821274125738216816043790757267101914782432226862906320898341002996801749251246284553407318519869946353861646886624494515331958172473637014426144214548150253250515339827682535261440555397756016030395803090387939336961082454483165726780755429185483676738770850118035761277006451033646381363752259322380973447071116517199803693719562680337236601393150874118829870799911691980519538611665738242174051425166840038884996675530389151629977502565716348352268734728921613718262495916782647340468105596314734576527164648538648918196335722505239302375292819330856944230806044087205891674665320758555388576502361329734901216791876557453047360244467131346256641390339062398377589593429379432540862914201358914325617991745779748149369070418107199718017046803648127922223809337691309005148543443401785686857009222961353619115160191235117860522190406210302157441728243738107490688652903218684680214819646939723924752021909399240099574339600333329489801506190343244663217130878371387802177179345896518167815690525914237914039624730959376286087346177537992283980472793808176745463250267806437263840085601272830234084771210755206602922528257046579121898365722023285316137511684109395968189126046776508937881918502092452574786576356872957297251671783252199913545958465381575484280428296115341519383295141291579445426710939928322508735417006255395429528685909721436936998122237970802039560118685712063664737124019541534260894522537539217739829972828890341723058869490490891032013015095684313164098691701629174343424796011692006846939146113501450262959952377606137963727485597122151162741769353236508305496538025786719749941397252638163046800027550487086126895371331938191664780390525266779607364387932377549650884157263626628219997707294091632920076547460967192717842051098107343841953621847436545152695342996364961534145331058214205241604182682264611678897822572884152735731724558735486013523390634655476193164512774794334432267059754457015473426380274815665772685467047697250923127340206800411192388801809305365278152584455979643045071392207421128032214038086252580869735324695334320830488973476787114289409851616017595483003847376799091686843206913931799486714157391657224504475458722389619300078856160530675669883282415476001430170591497058689964275953909860968751461955368470235185463008745652110243601862191332878533817551728036214774372152705832886680906487348543168327120643756477037859173961352385746529042850950796466200363152437416435030623995000210439853833274024288055017870337385808163366069330559143678993118542318078554727019259900248458357310131796374267631998602178582975169644494104221059193604955554361836221175128801160698272566400069992034702728844715453456197850038568331348470680869517123477362562494281197075858999847824394054672582812499411064468598522778157535992940795403312012578643278310943835113583343420335718628808996631626916772775736449975317018595318527080363573533877338477516567094495806289646489253325340427312981111162982539465689387150077129169623220067803530961993592863241845054918743544094409404372195639558850858319169502175331367519445642669746324768153718196350619808881291550641149174801374300836567170515752015324915009361538283362143303882586942441450531282464669399497163449804418324093013943186011344540819668843719174373677745544923681364943002203417650988143459538833739823014504435156541739389287927833364831889656268848573424236696356552512766589091966414562856197308810366937521716485394170420501341678660887089706127784227904723312646459308646625910774337297327965635146498389152421670994857785267810566480397823165909827018016411934857653231666667825321614814792910505900386780385694156526438333814712247040409991384147885367820441719281138024401316352387183876597041555251033214897300338736664421591711791653284062567268762246692626304439362065815365685806129325601500889241671852575473982337161837176388629484454705253659454536609706278653983468476250185434462181723400138854966387927567219441868371673912975560821501110313462935258115247272103651794814876912850066776723082448075957490753940202398685531066869691931251489632370766242796615132318876543280466789655992859472481283476476501555894261651541955371398004110507519916049670846562837665882354342658879816231347931411739547524269041242833098981606579734181877497093218515177999119661140211063470449669658091606286552965437911833067771967212730594377682053130331350474225121469379534261852762301964165272689073939095761665118486347271740400066914204767928074721217410212759465901253787687600418447533008123572383982038974656478588944278627093789215146764052587166585490995476384983372765011724566788401209296856961657527590299978381585017207036780340505836025945537981783185113214242441237781550633867680827581530415265570865879269685912058424831903173503541028211816123884304715724371915137413815501332892883873745074113579058854018934031116532822650874839596997773775584559989439468213123576754218684766099945735765491500256401447313787615444157673292939312104744368681945728631625521461693480280279052494794272919458799299175096202442786219234417812593615512645004237528591722191970927376210954325202494094373392359694637754815352895205118628698729940954943305614529626474110013890018400086012583816781433718223897489723332498566011183508017590758112915925454657377636170487985441035857492714762004772299623633002153093967195358371757620497972252402256246073436126833520930138291023339700931860979183322694765041836196530426578250436676404252127998884045164120710123031730951523110820382723138881055353677104567785885643086846726359037818139256082853322626214834364932055644832052240221275283272191554437014765673320239624910726587468845921878072752711573152054015609610436913085798811725522266502238775891025933697707044431787121081947229770680789740271895863795225369487635363802585896205867544314799846469441764793206058026781744568896853978211885863888313895400186612854736828916544909575466260322443894353029444468152307492282933879633100049501023994692164004464676889786207668706848167583095094882454086301116167937327931329531000302854132033471592919712150636704931114436342897989607758719727537421761037162574116532731425849812938897970314233013795238750592104901092952701942346792518033791537850295356753108108461146071225427344597867587081758255428438249374167392546606429512265986539116188773941081085808412319950440673578734909208870418342657086409301905537413073755553911509045680159061880107836030678529897701211048256275876160982286134671859743709860262162714123926842947210319565540872974966752439469945069500377070719490493405000272872950620455086680054288344255923614872196680548284635521882689891712323384519277927257242430880676061363092769831391189739004462372242471402230462619434653772582772476602336639368457776380004541306911277923205609242745873222573360828374605105217563589451444803919376407210322989395422416094592849420255193188246355922266661502705997369681692975507581220825804046495801248721276978885623155104872613605957145378472761370437155047333320334766110944095444000002805082066094784975274328729758257569808718922378986900199651523025036882843882920909018719633136983111775045915074299797711226989128551812503919486059068253937555969360046706654623377725097961490032095334712896995026610093212214563203161808064464018444106842445003578218612120762123365773644658158639029262293894146532288997043135476658571274034684526973012853335802370418753511171101247891959681110829690901934478974405048746347204771768321978243711431378916091724471050767731576710252493009887962064912051675332140594327150791109824024799099681536608155369259064583027231458498552780860654700032088014332525283506670837061358995774489930360618271091598696417800007004400110642604754110191919467433581490364532323019461855984810634991245532151660002469863633257351965999585132396834999161349904865183696039328637008421471802261712287892821689352705318459642899419373418373282582139625980435843623960950044928136420418565758533471602896161206170690091064392107133851333650982047290112696170256731992422916657956541947901212005863578046892871199372765743692300595755987877396465176245746925098872032440754231352460140198043681816702025033360975987300666573806327708648804742577162408667473424211348379134239139285581227266706494650381821972262666616426884221518022700795602116762563696589203544819701863160389875587860083138228354217199127576025727677378272755473516911494371174626735982469531531278411724151994320454025508160312326328335747925113135905831358907374900299920890209544082498995633923001345705116650796695271600789166860045938907175464351401228340032669420305060382596411636101889528620715221396242378096134283992960436679885679683683390860854997595756205534640979216048143787567218666720871193087587794697555821335629454486309726823579923235339934322922930402708429730723917178651834355575877452519621910684380264780236035367066254636873745629510930019064911018569817192486986590547829994788220567693351624595027357059516058121264007824609944230813917337721315722442351531448087974114496237899602044775014102783236085243340076834458533009853312238607378685832842666178750712254228580433262742591779430204295468925994585706590860893748261916436281744904301578483939229320166066415491805803590389996907930190317308380193651729760411249801414197363562123507264180715321819945453524279081185157539630048406404232737475074155160863335554782478328053521431663147296208796559215987770421682731948212647918732270250560405106962606816646881412872754738624312081653737627354094067281470600036211581120509823327848497257646147154278708317285725578003041453104498882559995292136786121238036471155847735297181986391243799900249461393283589694123668818286573910831461561534772522430720441301647023870385168326153369979246986942603740886122046088461175670473004368322842506950493664933004488589445434902443481260726073061437509029285364008363861980103109488129032362184891374935938047571194487272596618104898353063269999960094306254436887227966148347913840787822776749270973242669556538004377720625571566675636601266734488397762637286768442549378411982513882029760450447799357391267640515148566826738609717546458796294473566189466107580099291566736761314168420649540222817299239230995937694272739852827726279632687407925913952706822376454333101882085717220357252558755807642620569439394823694655510564192049678338279066115904660908178787267646210318017225546784250233059632165443375494110691485982617155929589380190143488912113762057120384712446616427650172385700672116206539504970122873274001574998197635937440947738932013118319818052226754118411369339241080469051193760299675652221123293129582863278120293798713585751008640444330193092660869142685351177176238801111429979922927612155675568343377515029047051492640525780874211722633560966807681690373010862392607493595761080269230056868975335684765261149476178574619650574640310228570366197464733197430118207666040200880507416341468281143490665072686385096243255680300097055270327495318756065785726808772083445737128252873769382150449138708581734613055745299106515063856621784869599237370615419962316686868326825511762344147452070976514756840389392245847556763138043584294653555594822388878114062858985458656185337811616764554728853363408054375376353417988458875459686528380203262974654836463151506804476480375853047701311172276224960205299007374365858223249541795937687011938063687803487533417761151606112021477372449688030346461558337350254949459749280972268804526769257101871528893596243346602451712305254640699740048942839715215608995755454401062992510391763248664716453775810993290738066000430880665010580879863370919340909787527636752040934905030706163666971386889635580055654991627561192038301935227174024510772593767940339878097921971389994335130728244465393006326508326593039345508462610499695438730005997319982329957177101291525102410159223420602648788390006420870903160786970454897362910387591143185548545806151236258803603303019907241409568375311870713991152769121373328093417103972685468902814376437929151287168238944858958845605248486678229483470865157317753275695818944879932427151313558800525593924213675744768867796361646794954966866747192671657654926995921694025257659287197844867231622954906338375226469584687236146773762583611148217786668270856589080539866134936344623838602645471708632040293132921784444746137861492399959050096507773799892930119353891477211886327947021463772272998799358180542017170599616232614225232826247427355119034936632515477852303913832759725253258206788510293926532253211576917458072427717938080104782588655785127982208507554712685252267393123278944366275715929576707321664578930942785778786364332170131507286065755241395280557121443065177287420574681058958366507932105553686638987153294962750836565391985024563208822013832145774067646423730854480057606768408691953398325188046118111973225094645211469793412928990563261517672902477742713696144246663660179442852445768803651020334782072445430414306673898514993610071795160048847894935297115643901640261861945705365849296740263088923105519205839275345300557621967600866186250657227590488600167109089490751189599059009236231972853738919655456029943484250211179821401964417130861863630320389293263959777781734909490152492699333211850815046200116533334108406096422104656848594068851228739833236856690601244339156826603776988516464256733697741410433163876829748385135030148308121944947764974089958227203430631859829251846656155116716456424701110966369737629261039916933197319916714326678086398905174613256042321826520696854782927036692957490322106350060893365429596714818621269607184936016881575061460101569797031413649215381844251441777502811669801173991273504909811575686539630798707558726781141997853338187209267961225187134805620455909462085812473104901251300081362420322692102074112339715290028371304289469455224410254619988692767036083156900261743032442272761190624984065642495264803290599767844216435308165255997677663036726163274397212778305550274191810093980428710400221651719291127926066498438731161123936434309666226116989128090243477424223776683649195630426574018003389139872304840645927750684038726323169749563133397693341615982342068500423982507042894222563201402183337433774113172128675831294049556099260424085664396103884433799742884419984572204752281253866910811777592627244557204889253634106031751132261647054216441352202447080664749338344128575332257819792309024931376020786045879813742131340007907541525166283123000333236029150471152169284977388362445530182939912522327490594214878933750911640475508387469059793297859161492619081517176966191054533114412129555242438100611135206954966477344774869881081726584501915225751598300077120316246514153892371420539827796701810363912484968267953190381566711169569696043612700407572158891346532843223690012364967444843361587858621448850003047845078646765303126859993569109012641000544214514426198466088434721111063559252681307844029969466820049961778567169980058817155431857794771439835113223105134346677490997805920021366121281622155359658173802719734871292211099866090823039545993798556540107470852503890857791144900843470518470007464510017207151720375867565342369373924920509087993235632842398204418975155084791825857169313920411199079520843127410512948491999909967313079160011725576551982647202033699999401421181038406200870648989774043481777060308922028633119511497082153178821549460326330245661105176590314355669957579946947348760043026159489361961532194143299411467829594503291961190787309038122564475730229099112988453450978764082555422943014318598703578599518454794852427408842331825451152948160928002644402281377450489206415702399295611668625389472698485622750001733933414120432588467981244832142854841866974613108267505163657643562564139102031473489077789689002450956990641617089092544385654534201955798145809505529667290757915310975847236423062775128508401018873712216189881246671702954318294808833653088087261368792271545200582629555522958871066818806935197097641754978268937201451678142730606408700041804008347540951020781712522415992793357051710539622150551122135074170840607202193174113880665044798779601675773726879777585440912192967476816854741589110820672064008474465339780359106067552113285285821812363138177559580186636533747602689795127176390282753580090111136494966420358724399701380713185229755027821980230781886189782732431953711109306226334604090175038267177315940206611034405269516022049250420752940726682262769983875029364046444777092995415713525532094885299943650010439913838183702769984959174656514637530790306872036094138047444426260399314459511863319784269576175576019484404363525889408474689248866892022673813112021040679735226972561035235827162084463776423339238775608174972185971441393766848235748236879226493795067044807236827273760056455438442009749446068534273580977126561484394304369414478161557269580944363377722232138274949131742794557260778381635760997621326940420285463204903152814609631871610320198112983340811771977164945451235679017189373726537920783855050004496450241391384432524647252514682743424721833126543539212403089985542851979316625998683393882957163914585298331005959739407636686462229159955777998799336270693672644369865717753768994956571968026568034753153564320789495273399669202111441022597209685375356807999780272904151297942117218430719529694909602523719853507419511194936182367538999429911085778024653223740710756796725316981136271339296671419540047762589964172863444697641221287238133963042218212923923383398649701710696456979365955052715767115017911149672750048226309970892095115645359757293630232816786973358592167427675055922236338377622273186087699035353385626097720594036346439726236620506451251170740439954999771983807109683868453805609131808048289397750669593293651348136941011150229109369527395577478058802302153707170387964133049819029291369306162633353732662643318565868158748008384731421916433982862485568954611181712457576413463770693712526333965987224590946929363971880221303164085263698184136786648033682050494774771290559666829150776551221038876237938008603858109288714265368306502032004972471534345013797520847990664898180083729312960384980813820982288907362159924954063558042614148505277766403605174557772624252492806601112720187080385531996440223941807322308639172220909410714896383391148318739819141662739624550373509611059752368767272327435120501471126808119406296347730513718328351463709300165966114913300054629741970690046581436832350167708175421967662664698268906293587736390892768948217430748138149153727946374057528177378163096354947578270295301917540405364401932565154191404181898550342969379476194372485891943336510925373204405607288789364366233786284827588799077463589086124617759948114746140778591891244420808854595431403727795148238899534239299542512307897997483033576154187562877579949257125209773025858485630093743055157270371402090935638893275578764243746015941588292467926362553501516329287381742148585240465919112248694608177872760663550105824927647606250017728748321371809203639614393876841915629351606647651546121591712524771326484689557278942503287964109681801254178245686604132608131487575676965167201241955248783715388915680811805109575977778432455947545470614693046300050934520158582406653401036104885527630810718682215402602595264332685959133828700845115035604268940145030223770891677513352649776515888815021513916632816999289276618452470196948800655964296133550035120020588445030189862062958483816356892997461408018059842177449959458041562200469894559275207481803186299902830245236588293757142101583177591108666776558962235684439672647581610337919477762098381087961721891299101642970716322803189039024289248044025518989694709271446372269709929707921000055761901875803454273297931444793000059085783897439318449743712623756847615260321622114021967974488510023783098582121609828495006317768762842181247194158707985250023627814403590022518437694983782083777234915111693205722541788114306784874112372513894051619647043193404596230671986811873015890263667541195805806386240573749352745915772847355613941648130171903641738503180901780815876674946297954548715404012487187856055004639058107031738965511055666511461524985608079828076461013114762892923278485446984559257341124085489075604293125632176528841325104625472863953082638245310927254295735704178739604221066680432257814488513742156814213331160450066551275943074443497642391142096081341006338296080559054105988496239894643570637153276585224606097321564529865858792063090595413912972337425743985204233747862223939723659780516809240947885754748072821172592725657376646845954616354945317211436237233082317569337582779291385734095850200776538037461060178251882603491565271385481683361228790877414735898357631833386842676156916962524272938816893182770522292485161225142864934359144826548112516590049724548224512231226563659693376315290634954081881844100457652228622207562338086847724960281748447251288294916185907001708973810186871336581122501410428199935892103570991680308660605374601421705107112922318668729649510295434212968928659426570988776178541120096748278694889866908880710859552366496216663634052146286047311778228342490523321479959763040515518604422246272678480667212578812890082338180973386941827425571917777061808638351375546820566842839137007308674209403825222580858816536079982856858387303258162698464406014530337308053635211739777167494573452310265898907795199414604428574648187537882071009733847416342061254474868046660706674711378407176338526681247730205449229022316303917297256078117526930596415759777758377357866825865886181064873940768087748477363760830201241031787471469989261330974164950846442829008079847253120859531486537915060564060607042461268197481006338398413535346045325172113825662240845296921464440175998930141139828408048964795057534638029064562150445546677488855497309764867021523526873190500646699622526396478610788525003173082381915782017696945703628317850217860242112513890570712686612699610348972621513506255752396635406322883660528889815704243939883655436267870749405486519786171399753982790066486786959268594702466554506671073000256858244207433240372652936324752893712642967568785000144827071224179210439362169458227747224192982706418863532499509856633500473205318046591707853864479815875260019556519436804641126718830134323721364801803359440174146662238517407201014172844561013345185555581491282704245051092780145309671375346959313208481463435854525881657285084805289373187123409315439826402493356267888611193367902204982328648435834806100056351868289677172114965088630454851696315621539934331621076486551962863877737157855154766856401211100208561634153943225425905000060924799925618773195949294134688969094507530727702127499390277290792236343707026919181816509517132674158042115376382168269347027362220101872745665287126353763347187323109011915584455681112804690548095350490659569077507869103517083125309391911432546915370262809756983039147827794841862982153760372117029933498133929270196266204969254719892090687739768701822716835031352998625991334945422151657743483089587184970084403705147209890583656533914398119033285209146029838891152033067838732863461875104985617666136719394422768470327076663885387002032134048995950367322542612734260989258333519651470944465201188948172399109956934248274553593144506454244667344913558478178523324050354637457527716428210377973622710926872256113813160525584277831185114714953665574812287558940607976332614350892926245585463754555871394559959614941442668449249244987963753783424180755925997130279492561343793541865633633698681801748749865607448186903596480936428070505824309874758411483477943935524533985103687924159276987041197698618230966196707051696372042213145787475639630332191606631375157656519492211233074442677639905174211962558838891396354971465006896611603400218569892991470255823435116686497243198694705079202906866686098213479077592827725386423874204141935348997301913400229555117924985811690489093216049443363020641853083310970726297088023842368904631134830370710508733466212908530149461435502149000225761643721120668351365831566266358236297967698294397522445528833018273622244638504595741223624590091946917282284462496700187780214662223894260113126685248636773899870105731986816690546128626556933468708301144396707767600018978531247726445931819776978773107938081491029925592891011214810853829289674585926072758934893176014753699533327597939220230428175325970477301452124608995698535107149366872407376692909511107048101443866861674921541779134372135284191175338492082548384861568083216693573508672389369043742293402091245510080913530892260355203004127064529174987226319557910476092886441182880962925639260347884544498529251529872365049342641874360494847704839167438004837975039299988550464159873912363830919074813350118720186691743872224210491996196785152291364382936420107921774850506496102803245375591141997730581565216844503375395944398268074937831675070084766304021936706969433067627590773409456653584228365268425589441468645284651449303423577953672721828927504307900228687811484039475714366381636407701925526494770018727321519018554753307284244287665196528424480185174424624181970507954771523637289221153447856579062856458215997314794295467342191880048507904066855396959973042339516409848046564930437589390091696306114982228889416687720396351962025994156733911238252363555193313788458871708684804434695116077303000387492507700130648290722273311861374200758239496157483151618304098838135517224581198840997201262692795372370486056361801845458831892100743673317833182894780833788382820664629435950428103633810591950480566651374076083870179333023326753091326752869469539094468177146263941952469384467668670380396223088493383296827686063123929274947744161587490667322448113633383218242760615116290308581933358196758100891139096141042782212510549966363512156562592549537076074489679368946757649241678568252690841029597358219897854786777722419950839127508869855984113045836519444893909416378714807066607208764962852378963327419382646916963145906611455796902547614893912578664597963721912166457736212582460119425870595005423638020330328041238428519321416756501667717856707176732537661003530770948850738248339572265398503816679487627088430841586847383402633546495124102666853169128726795917660485411138729940369436533556120720460854826557669627439138718911857584583745839566957008797687054015873172978550032561417443135059657194853873087006203349293578631320788383944508788436512568557005378364243543296435309453364461125690764895062421492831141378854721740046691390002045342679774334051896195627199701633609912051058573212603498977751909372766772744595458189080624019061042124209806331319497505247188194255163581047255705139951791009352224053479916146759590315102911937261656718202238989762427778116610661976211631492747693505275158552413656547304234441838679953316331535310327143924376276877464070881630101896930073927416495513352863988417467711579510287575733637863110292213560908689812616720205246558478097130065337649448561263803666356820403119578330090036043494158991264277937322954687845140593657882494482767524870928238193709678934676187977135985250811674623829696843438867561268375945809207642068959331610163331290864595949157289471315849570520960951115499876337344195117452149080661676898335670248130779512854978429777075281072449854523473406666113864598595979254552397759563460232875006574616151026054139479897242243018784774821809743453667474294288206049538611471794240680859366118864279413584214606458629287389500473945822064352611902417073947489110145318494413709722551066803362632782604575190733199412569097738965741684726141818749715942825816744396525853988903758961486167124305830237980470242931856785403408503286984721347615786180239390839678388755382405163637434814835173283801652689482493870818367442405264626600646384952110933132208120805038911702982082572172678536693667898971422005971105009655152550488966484602798187031687683880023683997007060944810263285147390073007145060720904283152668913039995797905926936381211611159556473631270961097839268259734317177998233958935388281552406830284615127583350304089529342114240483753961350352881555450202450406119472338844425018319636293342063957855196363254393778876884917527269691036822365059217848179227701616458228360384613814010596594735329021429550870908762106532645297689397653513127776303959748476386116042144063265261279723912795558734228992550088766201098679603466538066741434482579174146479710199249866214706983570463694690222554114329032857457436508306088816501205943798224643851471392689028161970934741108333625897372527060139185039743301986824916067089951413222079701945988788665331676457774509498199736713750723273186531863219394951393047271530049584425665286557729192136244686531894978842022292254232680567006919683986542183035448101205777687078341278280589494252317624990213157335821974821050900664057037590358213939652425159741130570198929090042973974385612418488500573907881667777815511526445341854219551003203085489837503974428485477928734165052463471823919136841000027664403655550251979702396385826506910809163019069774869904231705517449284814833864406936933686127866010762966841192726884083595767932573795667646704281364794933259105971050587984397391241926385438067755031011716591444666060522225983800756610357037026250930551125046303211612833176416028071531681832101413919641265506519979395897580047021811575263407147610045000976988555501238429453773843608135264079886036403094043410651798929454226482305242669586036134435696833399723307667546710621337774245942448215122322173841511120343915190139277712656090851231310899947023465705277392774641033227033768202706472910928957521927164460344720454894243131974677273590628407270673947900448520454710666080348800336025768041972619113624327209005104814637399691669461879610719462950717601754897795491807368027896154502960810589223640874437255227579572456329933819455096932331931292798772106964332482424142263584133898717196361132493945317377759352837852382027255584972128387464486958814244120432679565400465029200101874865656067209207007111898751360552686005806461771585776975123143534520362833819299980823078345517465120099634566137612070848916444763741341804205275087401148893677422985742178633341960176947740771761976601953876646429599620055862561534796733071410182483217485288290620290584920690935890793694401425145229678829764203509140549095068976065200585471345140993469438515908241785719317395378036330870368795467466411548553671972500674380959033313729637500779488252548005477952971733047170534980830147173950248564877599935456600695051514740761862772833036027788552091770501452351934331268770807040103283868724874718012107880567128921611219592418742239738506197325432222171389931828862726384861508138665492038039559380186096268701986667054940263719088438158916793922062796550626456389762133895455948574384265845043741145617021190104895794660422731887841049147078980543898331640999456988182570590006501352466273548650615313989588044773131935131610136800615813134563347654450812552589144845875338008202790692479475413350076718529461505700592952351988978905518211951844230046357022517720934210532942605659595870082727009149410724188472944103105798133043435204986765988632043754219574612632319821831231915768069487306240014892323206150932700234291605498313265426135290496550954851687339854957910030659873189429635112424531982805741315070528006635704495137226599901254032443028133324118968418128772159394749348603650275648870746094469740451841778007836521737757743836264320085018966921074115620524313760448631580359604128432305386269872248035367480315323339759858605299631289687134001659915408401420078316138428200623587060732689802203119340512080335221489928241913683163703797395022077789283309698245981327412752769175680296665134317274155261777031559470545155863081623897988687085156938709587358295097942309533945968467122285598269023235959810004489472725491642705952987595908323783507869514140396928607834756005750398603083898831803203394987513823176811894059946680170099741242218765083836959505672442649733393715519106982084622449460565467778982168988072061511231851945617158479230778789428551137436678258314907028110877366280382049703599345319082442459889526568757036807892003346494130968223692654315777137524803666926525022863506616867992473237416454094958791020617075163754054464816573734638142758099529577335564203764690296193481435329379787113488402576320825306877019370559862821840271789449280547354524374688015617852447377348206468805700060189693568115708793617073099684452308422587761569508951604308104826295771051523715268111395330117814532263477194154190030423788134304178078370950805311157302432918267167924143572364060353986227385077629260037474908237239792040176860061675712050657349872936513182275480818694158054883643234146586836002594679576661280977993435989862462401889977370738764513167633100900073088455352490747066846419648257944737118838054804511985246817942525283455796028353252842216568648521714915072803614268183351880209154355288598357867061840849884566117143985604773949838864009784202824947479029724285902135566064922161559499109684856339504448021319021814429570668401174441091846965246031318384692007975630368852895727079928607879919915410431031405831723579510088506878752452016145583884585211589468947605180252161665650828370796893162338719913584175640611174563340245007928643298615961760343827901003945238938685073172663839440966232861475162761246697173659208455170612925251072469282089213184667997243468165214068448078323892958933319511084644995750867678467880584424928243698174189169308976510766814589125564970433617535708835800329221558531558392910981800729581928636530913026099657563504324916950970569906629020176323942722478003218051428268152892942888266146253818951161517242502371067824933951633217898357652648968893635249223108484002266081769762148381525070345261019720929636882796640572704276542743384101745684845207457977441733871582415630846972332629493004852989870359500514771714506216024958289124485633986426524577778135520281147597887033987241046442705708042139565022479683327899411612010921125100871111395039304631875951112990491457147051228901108903209796186926008512747157210301337195172835610526020617138354263964058043558135164645220302634336190756963547239565129990039415429540183861666224183208361448667473394757378653998446093034391980975043136553298772206470458848359524149664255303889386456127815506813510850765487637135590804154040242442476427981192632640946270314169410467644872429236134748304836554096611474922928674744568925291931090898092455749636206073601998115766567623269140639811682572213684771017642223337683210729576876680387007054790978648274073882057735800859401237706968463404461575358529663041388689919477566075404921562825020549085233993611133521309350492738279209682426195442789611725303648214734959892922350469375663845313063905104480039974920245286978969379083145109095869810656112118267979051495207530392792699201791342039498498409787974171304171468075144433918413811218520843037268361813115697787732186225265601266031412254322226993142588429034472998497205594732896948809836528793212360097033099474308886485750759528888147129557349151561393614959489326936408709480788132490924945488041727447160354930296087356446644619937038258911724598942688296585323056607337617357438212884931391036592349712345588088240992329691544758854315738296280698828058216146146307124750596616134094737764155844896208152462400467008778291253790650025897049655265738062194698434997183665402504831867543938173212118094229251828210153490630770915813677711871159942748820718476362192277429634999217613098922465957227323295300292900085521998213966592491684093015795494521023946964797686678698944436743234828143582729468192693741921801853118838902117941487231084522104375848892592263991259191425050377498478657826704188492184978039346810396069948895918381197524475948256496053283174217599093437413563619253451233636956133410382937255293926290891448229349301402764939547568381675417474781654702995706805900535938376963223357631968005174523696810476581298400150667201237728524608188703599611860273796939540085686524042763037573973025191244864034133019279419420638098750139558425505965131121240266031272927697199465117088229056848376653330442985441692628915327350620418370744363090371166432802415625610760562984926142053963584082549370973194326026980154973949624702171615077717723879304680165691966313975536293344856059812080066572972681136076702441588494362353058075316918264056731656339717175559111664630956939417348302603224976151371425311987566674634228425736052540205362489717487202085273768206158205860791590534613862506468533531877562764361025869345706094515118136569406418482805651571286910658490187749783511754899697963078279728115279681693222325241310423210297425221050189207967588225912883215946417569127703870825069034025109868732904401782557925273543835071862224592830616076153491891246528873596154240829689122998932675375132046288613759803789854070148942640434385382859493279482035556405823343129874697856374277359029569903127250090501309473579102696598356772707335656080688299883525422698734032784019873549880955375302792113800746111231060328901731260138261342704947973631704424574317210935699678498353753416198384923134330956808673706868793940613237326824286589695768510437388826086018944055088150506097372594563129772326077053217969945433261527304206995189753529483164449722703831632432530126633779640745547892877358616462057102833881585464744371125004267557711153530669589487597912764954430996171102868231833896758936244962196795976857520850997291221763972664760707515046713679030651789437507304793679660600863414182207917917649111552141450570291329630797067097200100911928612055351892044158756625566120283244846580402990866087770619340218666859844563916672205958193672859999746128061822242542474580454520679198465519225742058909034204601522033749077919085328333622667082707185577113397966398053167679347036002645767038524790923004669453711399439811562119774291408782120746336220565506266527064862562253072808425669644165983165163055886622576437580831364755865784344246607950196696476369987629988612686350013452875033541987360837352887495906533331640275687285396277397292321234812484530419000452306257890753383399852366291159275722644131992503291524449066863214895557986530470421146067194891616323518252129094081203101023074388058016772889073577160302220623264461809698397438280860161408518940867796392814025053322143886314369455752073806399712913715207385572893222446847880429774865442686017366445461064525563708291538351660361686870583146553159522777542126507761114980407992033379803734456888975848621714353531159757954084673652755101132036523734500541977984907131581029888642125187641626801165319562748483284762294890115998365688534440646202588087169005524956305610717446213075617391477069520191237927101635983384680617927128004969088045513603316324669518319724701962632667619179327295213751543082518320463408822169661870176079517371877793583669305455686662950433071103283746902755150628935613506424853945065292290043749548984298107493009807578651823682291280530207142789461629364189675109895154248450206650394435198659774985270618468313921049122416744531135171450288077427605908358741031477246425821240548087467505201692871302677838047438842108946662414794191289329964408097739527585751114911512552853873849321903223872600147000179179955898763178453476483609781188158570704058440266473746227332436208140023953731670052577374021166201081259618489575782683599098612793729070338477637248978126681588504670391612845820702837273429647058868758534025937814812425565345311787469933055461367868185353507173447367357256656065442568466026069450768812496725160604643394639190578113607628727004012672608722168886532308694791758362042255458882859182373560158464430683067992988227472149124849085988037657741512200849870423317284783541065466973703812746785925954562382710592765448717519763757384866102731902272854390979715862962097707848339320142692157387182679930526146472478743408120753934602740861073493460005471467581935069376011331429390567238762338953721203255200777453551659232741096448725879158908659787451167900645428169453024855621489860555009963128433853126411214055776428785353630325356779580510562011589353183706297641880073873970486606590357403298174423450407272019715089484718999710978028231556668982120444488834666212103151708758047877018981528758978671915181405248260118159149385647784441078583223645159083734616035139692819426041448085817075781867196989215994678927668678484040336595715054828096671125565015994594695859512441158363659940409859473831819263815905572934080048726490560904254524600288318053122914201085606542046678886325067545886825617144988760787070470725323684402995570648920673138835779230325608890262445395222706387748355408208059833694217433761063055960898884239372600258651761920267223936338998060194967310261235158342132902176463471134557666922088935319251787484282935495192265403201475196178476868260637673403838882009130100940418843766283095443470376592684364299270127383078909998297907222788098251048282255102601394165091373448584577095920197703063917381138562954422195511783480468607052139997418304574001041928706803889815810605295284059069554435776228612285598305816321980126794425973722135493570233247206504368200498997235314692538731671627805181810504375887394271829552137510600965505316315874819830056946629940916102753134675394773617481958549626945611167246461309849490158567789054260707063939436568361937239654246018542036336633467597588062576458463058737694587809846076119772000534097437471256945542304729493382372958699023554638846244644658034743050220120020288915690496333982583052500659897163628181955652652692052360695880949557314174146892750980447016851743605381330532495691703737335867701031610512985569837064895253024972353315355744634010637580974311067611033457367559104826951477146794867815822167773627014090883340446193196307935440088745202235744382594261471940494140791822560120815322554575885191894009366244858035781222493427681514243900783143534691315170487180632918740302452093899742829337941869114889820030773716802319600763569949315693996450502575178007878509799006430302348302438012868647119201574862465442855526327907786522871198923752001629168963435284461835610962277257291406513574160492432799127213881757778419934934693967644652959885364487995035530779684093034586482108632908396314695780901384280479241310354561984756518184633837296353129081793982323328248997758102378900639572329108458127697165022327782211625032890093056279476659696946977631165033277699436701935247477542812156341671580922817222470123797795501535041374916887475386777814407404271565963806202348796991939730823454057566529729693463237070747420238064139907911145703909887654074983484158387722654996084332921372692519914101035652282339869863556738141854491027563060108183121917956939891652674748516421333735012454398304150762656785362986302520574994291916315426644333678438241096878735540577196407133132183276421299893738915828409512367746682519715824450319396336663468177902082028838013525874440067872072344649030434449086455144763847088417597417020290175474395202491985519978504999469885258858714876954914201165516478711068239913248638305468047154569854267297295833160455559498519470952516603143351993975359143973730586677522621109914425302235453046476644321271369309602877582528732785713020399425152096543792575556570212192636985516133705278054742766606896566214287358412862777176089955566368328805767059620304432936430462102234054039785793708107561595059905447619879495295143950050534478629396242161757634273666103324862674063513608299874531374783386309225613478242532658110651431101245881938785859719073540698940538066326157828608635756946884596754562729420724154766245600961657216600163329319684210283135297530019924453152404079050522173825691490137826634170563563339920300493007060512460808805875241193981583886705201707303226638429896491101802388613885403431514101870978027697143513018858392984316051568830950221444058096117697621517398851777969808252545604295561345499598124300864575097910476387748952334667215725613645613423922664531436317884889982206313437758387423995915871391890018065321314748589980614068190812026324384751030733465109357127526291994505097135317606423536274249469778206826598146995088205597069340774955418580526049284009070022202129355642272022376991790885904758496313402119682026573740049945761459064407623735955974861213237503541749613711181384358617065189672273033740699704919429397986969272932567712785165798382432532712804046085683901111452749282758763184445318256964562959917133247386499154882250864002838398736000984315685848378471239830057898921775447256515102058707137357789171501993347962205982240043902619596521466525992634550622809442028405767713096141263931247709861674119747927608151317337245462725286783140497985081989603169637840103523994383156680890425129067883215022106020461912834636022342843641315069590979038987897337718243663822710763298895614089818665886237057108902956529534823167515297485085764184174755872425286908894320965885268923368904382719327193415094306931627084682319896266790535434664420689507813152766640599693655922053438862114922652215730876876908427210210525170354404361117068157042117643383845305798954202943913105689505753788039161435974741800135772567150850695053991787812268575511477511867261890478852868507001754930386320093013206043114306996573086945244536967497122559355315583994604391281264541896731750416874367750872948506359616439646431084949385610166582916092285768163456538990809829430281106242137433207518505160357862257884929298344589781462299650338933155292031046846964608078830595171961217766187834347770284771191583635560327053488417863423108080721804413289367678047284164588682773735427311574946083528837468887204083790484117048180708074119673883776914605141107948289456866410380746382720584225342317697627964809923659346875089532409325495994811664504265015104219489279803627555005424122925246117592439977214395722187918854015405066015906950461042418794047640090051624864935907777641617925597588567736244269950242830264359719802774393970830289014817703405278095797454722250221594137755203193477317160033672443573317447272147843652044579076929804176565884836638839682904096982066639855374639299063541724180375717094297615347492666909064242073820412117979943932191869348347948018250274597638231895689121579532316759740834436947057260690077138192990914791826379193895997472663827513299689036828130155509977796945703977705665774873583429886138878466163797569083790053686931187764187938176162071169321468690896113252388946461872734747684123565930270217127032946242795353461774146983453874213101246872986211890079033335313199722717873061049448037466901883069370343212582544869849518213145499045405123763422516640461409338677088806393330252792584861292808296174057526739030846038219074301888587608532567919692521879997902090291031349898088394214313018102655717807504916597526061036854232957145380273910842493806552012096918920801819151922006208783939212757749902853460538210868934803666542763954778138122231792467110586514160790224464801787885141295534918109168794661265216347899393003116380322888930461904221660574335038275454818122978145483941781695850558675033427447968635210966795552768356270563656780911310829795866103577973069760640220421729095482944330561069940561795824579478449327862891516024907377561868675778760266259998029427921691202792117949080780180635005877918370949474581901762895467144852287906844208892617508110445176485247628558115733233596833520892857950457181908778647823424466326157186761200673103836981602646605150673552650478361214151168233004586090042675298132704917990483713981100436648432731673069661926001998940976066250950927437653838357620885510516008437269714933700264236786449293498868695467590322225710088407053109641558970108658372925652942539666354090342060530001224653385773325670467181774774413397989914970133216314471808360689443663004502655292368337897587311186928205384744219531076598414542317736473124262386371374299258357873735340885877656319471548530520422884854750675637790927483171513778114433643400628128043774934223149351094370556415701363978811407762119972047049963484850718544261515281086288866945299585064535904358917825018294753005368209353526174371815090739341533236582509551189104431717588593064407210386501254370590572894599013061743879693057058611600677109552630641964121277167142837780876962733331640578864909063545679353329168405660173470368478820682518806661704598169985734339063079423662668909503868366587672049034356866791043026219495799186013706959314872970504882418913959286075311309814685691402078609213144989951780318019699241397967696189217967616501635713307034287445330418189524895989067490431843624110722071892796760412507032271537828242851977623908098810349112914015699595500528992290103572688838873059981203490704484079833931732306690140002429625632238783743749412785186240006259126279327942379463369659894507505605606063044387289343066150642493118171021647492541417632826529328425260740588653907939103414181222025806741501271938231543863977855431552275842006314184020705230263445080719628205308208934018535657285958224716732019263141295322425610053583353547127468822472351713762888351291612741375270305825428405641204590994296619988778924095976476759146952360384245826225582918779881217097791303120987985266835892084309353948343548892754500263617036308589845065235164219388853851557441406590431885029955845022577778467939880911433314424536758706858468288976254131077646625386592064200831031513444388118114655343386271223128298465992451900706374914637378483488243633378377544227703908298314149650787737997521447528580547009652312016855009667623561849475748498459371497186138316719039207387257645065973488328471751232634299981843113694045591153104235331121362215177783367634981903198596813275245191934375929353743204683868104134164396157342933715016770430680165464390475112143185501224214617820304038353797606927383751956794527972474138066871786410531105052144338564978293127961509440958105581241777943650140617620921229242025685166045098292791693207098180245522681305699629790446975832545999553318628682954956521867318493040801016637837435181379917955043472293853226367680967818187276768790592071313026610212499075708705193169873937516550731885052431380194111717927569797017430012510428720808053877426015800915002028104230523894542065497422775896927462822206572678150405091616767184210467739186384685941183294904398998429068521147723917391975664992292006342626721096463105413741157009579932100012930080523865427392073314601452795149819779781064632868363180169117999705317065700093801434906481330548254221387147390780232536840996910078389280407786702687131918800599194577542460195054287593152464126705742899995402451914424725791085653477905860519275772904604833775181817514624877939984494819972705985186626560898541493406212720000933761054337154130623735999557030651153274478992545608586782497281626815137312202072753008300572435495399038069191885573646840497500580144985286838577164198848769373852283079410104613466606944728077255459738331205193887997716809681633952076257944750312019520096047448050065846223832744696779092320699354507726872063431841517672260990101246168086754865105646578273737643381654286480830034995790879204757654511699265272152732300793521887492600589620657819517789341028513509703960562809668828168360408981923937092529543062106611321706585207023497780234832841259276672500570426746843197609839805762891360131969232558522016910851709391586377733279344106652967716991024869248541124035937841386836822062668630855626237014144507408104188853272659910047122726365414003936306539183388903130513045487399946587532374104880118844071368749047837313579750185666046166211323490390113801057123395452481936516908178775349232574270802819838040191732522202852326692171348726206966817832513268701390396331361355443156978408336739156569920749162777468706113682160802032081620005430779447623568238458561093720105670277306661900650736481925768042131048484123003054561082556828974280422268314734769659705256619626411391673531290112680061892840264796771064381767189877366656759545058269360188594496337540549822615639987138290475434162510197265759272013091864654011464524516441942554223493304619910185054983204239651591746144191751875272775143167650932104340285089104595305260993021551137344185765135698510606374776439289282813008233694848721806059009147759461889513576581920900774812693235234011484372195868756353537519973713567225643869546013376170727973495031689762036343035629592130827511413190982252559856001683844555080545545240767897263339266683743700512896249248916147800095024852262686564439676613506911111328061107154030362976213261758973207332638723802717790094715317592314013853049848318946655951650506313597562644585781984396773939039940127891301665589908972906255150973893415431660817846479992827904414874639082091986436893626647403549052460172597390846248547642985535035827305911911758990323071301008290408480422057444209740526281144171712971680831351379912855080155747779566365375738988896115366943668490377107716680660286339537430871755135760017354264416441418400773913205611263146413872101743290664189552072511413021101526528068933190146066185735663815770593672616484813928394341638011296324188891301591226324360255423659094989816459287792720582495165506551323180473908627025240436958491899107651564754215261265528634652622235307494914460086593333082196457602425707219511991201536073500898599380980522763174429130206200198883876249937065447975055597074701843850064592202006085439252976247114585339772920572728808364423996969769512315320069554675856788198558230111906884004860902596243063449929643358036977587402461547985546651513151088077456120405749614013881772626610371983794321476228668275321002558457968179411947946823348344993345298571882733672690932620208890586443820958311831791521734325977952205785543158693866956471052624723342611011575228700511921824832537771783974721652976949987696542378742164173395015535093077167266287675196663731106587974167290193372212527544198518818192248753856374356768172565456673595393576859981468663683272757220104934099382420811531085907811774751112527382701601851202962333445146393901560117666367023968402886801701200243471765777232049289771684197064801871165930697905512049678453353277799333628543783738872966661447261117028805670110556371640589247409485762864968659827239701353376698974321599091350038380348288860930322898399185100278466916985766639930511542711146986966834417088531093849376061200198000992597781336657109861727979107490015668590728681365074260066519116980303965507484357735980978830357390529554277113704566535167215271548413338939168531190317163979412454986553364258688049823324904943643133542878068485383890736654737108445905529005228638114164522790041497487600489059603255383863651393240048939422225739202168905735888124645024007592112252411565197205972150669100515887236638792153096764531268239940465335475683170273082800235979100866991914127906964365708661354541430968471133212920088060480597567046634551872578180437661532147718438705973757704323831938566905536071970088259430366610065138252318839355529831324637327988619066557122675785961643943437699523293183546832190553614442167512595208420098204586234666055739223817065922050357046206185775163804376242681873365745734144363915145976741193534418972308762426492071916526576709014178009598735547567530320105022966033919363036459852597552176813797475565346079534611558033703062581500127247834712120726850924679046900944715695754935583203230720593375798483788674197774873180867807474562156107063559802971939116435685297947333197859483528026238195453253421621717740491154061872251132134769910690146590892786246338441580621052398303652614694237530714530027239175873222998850197326389145699596422957590698847977210018869236063654095845738587311191985649041925017509326006869854674060365780807535611536385743670582699382540374862066736182396153560465910184423223983610273383279876319370849320778577915102920278748102787379557699457859724036808299522881652553187599715081921412427591424283557030953524763653719828348646814907469294017339939874674237005644343403753892215714635065882136326215304814386859459305264289227204227634981007709641976097536202711583068157584395554408294153559326254626354961881260264676172750738580460132956558135410487168695917146927851387191578709345602789916060175502454364138310875348782595774793567879180998987022604238280995540311600476469818727850924737667428302610490227806352593425845204572998107696269786546476803214393652941301132300185450158430709709393606566540246238110667637600314029854574415742115347265165531996058067598313831147013287701256525973258201421841564101545860137975292401281704977349362892735197194595685484353845175481179621780044196054663815635973146839895339169156885331794177982055668895897300635909132618699704849767810237657185126290009607471490945903238280658138602447486740873692711506987135289794971193022010352584319060156977121866065025183261870114186033762753589658342193233404393111968346891824220414639901031897848019146224826779417416089028660651661232269870886605454944177237729619654103314043060635092953752930642369818256562046714192888249871999271035271566083488879446201577340501419402591982754058853520106795594125075016840804263727413992131059763837328946350259906326580892949419548560575011106108141435248905218441794971853568324404929358911023143889112032414972595560598834435825203563384571977138705687688644594123203991146027887428953240755177745507319967878502678608944759927731973905208686059316420537878754817812353182093040908278009613553880344596163039957196203308649234790598554753234168324067136844784595639274840151114989310293568034169081132651995821213895833558374412413048600357029401097554747229909091055393939452655785313301754226321710386682108471350185832712198612258409231074962768664190283589137505269061667305507953388561528035939809525907735252612226344958774255120294709482803186502493440500100644930469458324503939133496947381363941966918236249702824515246991887658413833586577649185591654808996817356157733140968334312512521781712770458721536395998197793856452090373521355571306897592963665605184365055939366841779568413451214393286176465475088165521356099627036135295659187558314440642937463118576311522138280581999943863164499942695706356025390901022691443959840749892449691851764339217583885805661337669738269379611160828343575202007463930351199701949056006804757256576361231746887250084430363790071737335620955545357685854143247827608932865103077815337949583185761796147048975457611485138371490907624845564193523692532918519921207782008883934576704458167811587119657727086675908759701735440192297593952696672236264399076173657444974594019252926493808999834194187952254651828823074844907439538668087588172659595836784754240642550029041436246130057655438448502040603892037196388808841401884008246986105850443756612847022905723481702619948802180257894833692332547565992365347495311885079551280024236305690348129421665300562800843400866458782802955843282205091737961549654076540560344109334636312599490296721587876257513208224095785697757857861746334319022089985813017741046772273116988909786780211136095498280009145253261311941599563965169682134144968472249396003827895844410938908859348750300813652902498128851951098922102647532809001705983600791255532577775374116926470000181948455627839978367825049351847645164956054151597359962259227168823543425733173714072437829014196111771583721407597033060474002938569479332041441006639091616032709399776603483989389346112455893116871461632590322020943400601260667833219687803435552821693259449914829887130244956789895372455398338047459387590492414000817004379340585595855443821930589659801324358291842629524893838315486561736583539077530363507089231894781658610489185370984361912543742210504550877211050368694984909615106232897570309089850640941035898701737192869565194811093261525658832990118927651874139752413305639754713619327193573313481961297935806088224609481306890176692963567788188559337811238804966099243377883457904608179495503660305537385475143543391252789130066788785655928479976628441904302662909321788082576720592564841311997683672678974976292865965216407994738127586394751795938051177156751326348996883742939949765211900588492266484067452592024289961293162337259621409801689670364076916971952391533518620112146805408255283763372600971691406386151689938456153687929769735451515094071985210831109726224868518343600732425567383753736499366785644301062244828470831253242209644799677599002470827647386195861294061673980182421556828301245137383985668640728391503957674263934244502547553937434230250791845160330940897224413170921751636389675704593815673877516432330026224234294429098814128956060603424513192779118057890076545104988120152039414702982013488226867383848703819021721978678966453148854233211665410287472836221014159699742111845175411354602988788337003042297305548598114341175782514728763787567983887464504312809310511224569244569831850558272946874023858971135407627006041997322693938111745492553389162552956772975748535339920207721515863535465540918688635522653617707757462554732797068006437050500160333072673652264540053078415944507023170070621169132212812564910922203696183393445034759325965035381785524704405823422740437144109052788778022914412686184417169699667279402932454571277642643079616779845416921623469631224097342516873319766529873311730282955880045401604647773423084515141771540786704327446753843700893928464784458215456563858553760596181474439826519035868992132410109383018818449890834997078001347129122516253724560387465533094167452508508653928046993610360182941880799088653386123034792570680673912610362331046993172632490340571362920193338706998999669821660560037422004059331958869852220611079795530264175297846579814952915299759871630613337970478316964458742022910856136100188808210838782202062056183850296887227552321682137703067151758251962331675101533653814357440326199658994476501730737329169829611945030223885071246868376620959128909828462502300041787800106011838232697909654735342019066790362598649158930268857999154689804722159083077257747272998970505818042252355536173985932680224638462786503194079661453268125267507918299698627021267400697092515353881097316910776178960225338178436660371102347572148275885175163412789605851538585393350113057379180085663992731946793956312251171167911981766902463496164467591761520498727461831741817358045302294295137315784342081259282137778293414809873963324062782708637481977283935203607852958268754772896357202983352606489934535585003013133949637434256811684668323336496249590681903649495477330836337668993260989941695276442789150604514893473015022569926868091896622293372855168509397764330336991634410310333448821730808993669603615033951162622783027261636288682308968376130711110254759908216067765770723097695417074713138099331828472538985637845213238940021878307257177426463744107652911347455064348391824745529226015020755266152707182571340918006205461910153908731625266497217180344292301979818882055149571044409723562716496168737499880520722420144824938834101968527035444677649907325171880514039907572875224068236273578545539087216226111234284672678154190895708989424636223483548700100394625175556642734828934258226847779896298088984978106097248809589565889662867890888853447055475241327200312082643198411570668629213314414653760123390376219252176580091310911358187423850350538077850633034109464756666404042536083593856246513443579645271315663543471021371496359619842552588480947933953453475108320016453061521215522846450857281563702139243098140144185532856202144195028739194193721729556941508884884865912805249787941568714220728768143183530368538636424311145326856317954437777675707364772725025087165154391359057498729970416193724044715412178947439422156875842935622591146357867404314204415406192400510227499705443116709365750009560395286105997041580280581202888656365165473368598390778215030053995570263234926556703904270069048805585015566032451527912815547536266862422371761504571590573428274045718548791286307832549807813134451888170400733194384567647574518743524944123895966364418649636226342930615008338680484857361402880608069631607993939637993212420722663361000131507944013778058383229666188055142253901053023120478697684650499960229466539280341148944544731679437959768421428245042641939482297333016360449678954665594749594169340391289723903144043161391779297893355273956952686200414531378925334798543239091268815389589285388745459516915335162583998044992180202374700252149385478085738454231813468819727632006975810221928704346274312044174576894204383623238613736604713407297128258091677259752236478205126008902526571257172242345691184115689015020792340657560472710860545773662914028237423328434666249814290096182146592428218537801535393349121705358547788516558143413560062812210943147498273712039713598637532051325052317656537969255930639568223116033239830851308883176135499208277680954449014934327542992994943588134535007977219301755336687745634182595762366879920227920460387280004568003702411593302568705555773893655655916637009204644490240978173885297495448015825271877762044492107688018026099557671456149072096299015403030353996136851859264011051465826098850884046240256539943743601175877812424253833933796518855073504407280174144640324165852077986901591801971438014850734128984019600068148560583673979778880262515220700559237103891676627841927977082459839958852641455919131367079596889650096283554014019015830919148101247357367451458756855356785615138498421838657861399485338795075092789414974158761031768823646807487204119454013779809576665247104691806068180358770806462991832263511787776309699131212877079034622341853230678396389978897808123713662272962858943372043545597416795434745978000672534440585941273263196255651542275824675585640195456947118863036889014225944232209596807870071062757753918084071509961650826465194890887505782906898456100553744578042156001385593854095721908989582942184202870055495551375389290068241951938930340105676560213729373711340486856548111638771581335600289803207099492361242184744610902493101988692314279681744798108658422978870528785070831700107788459884762213657031762090134567910483053006917575411488179222759092299653348978985160047261041463568168186843339055586928918502837724904481805917271920211119050124409462423734911308018097810454224000720888264237804575099160676859632197347574086294280609102771957183171913797960266474489774638226350369773283409933609417305851709623366646662851814456839137204429388874407130797915337141710152198381216309193524810203836120791095473466156396936815337865488079634858487652824744488322522776523952557029151532714860133598428494840477412549158016955978548310519330898557857079300128308550779118988185010157997610301994450627144409171264688651764989382087948240582650096797453638738155365588558160221458933975643215370393204231078149693330750603042056527807859096957113649085548687592703366798512839890004661225275900399318807279321309977960609286171394121310347563312846646295787817502709416428439243332672921009206511937241266028694280345467286874379565237501880682676389517036238697813071932836706818863184249953976024662893419836815786330129414012587696753708172481887559967618569412201065809032918324658098831194435775093291043460300770245608259006060352440175644695163587106437947738230065547201340650708484293381737057194757870554983206070067125246106121716992616900614250056895426046762255950629055665893582687426595619499476586048004096161024147667306943053642368325566008589635221840910452220066448972922199184903194823251744005536656936142745139991170273671785387903435301774809839873572720868113465694836607017529806619783866823105504620611329238003258702816166190778366216352583124187048229507140825591073923310727251394963577251672858733996771700863093315263992796035301188091568870396809377954189496346178899696096095928353960493308668201363760970826662794557826264424169698166384050777933748180454513321012778410223228767914014696952112304409724860357524290799430654759118131991318997467061421512754335927164554026882004357930944860911032944523604909174703425073934807570483411253222141406888816815404080271393275859701073717146077659253618064115995252319595836279244402476131369030854729507376307415508615433977815752336982624207038566811503421438426032544260671315740472741313791613768469927253071180352947861789807825913564784839932316994181038392020678429573950943889440446863768079531007636341263442803385816670557113157762207558296954326656663200557342907799896496602961244837576324025143398303034954217770111548607020171721971555652859404616285231952029639673306151016436876159238483128717600776251149546660044901385899759265215823862202748120479499242709493502255208193408892179722269243519691297604861292951034411110403643516374696427187273607996677434464442206434258763786503831015246113010231054986819751303850979236399089432341549935268929646319222991560576435160813485616125566070571912328640272969605981719772242739198874089749762648955746295738785239911110774923413672539803680892359989319154126467264214098868665627085475944855083176647256987489355162917062158538105418284075603801510755910429684279966860125567864492709517273955623559068540479308544245051504255178151293531497724987307890450381436258879454725439338772406761251526625395505623217127678961715937516798056982855443606513618884373795450325382310922373826512619816332669389198097671407748176587949626033034318290178105996749236106839769060621486866200282371601540017534725187382671224970926498526720236840555856849863726295712671204638929785196435539916704151858229256089390650081358238822642277803901183269131110748417842441304461068204655434051453928935917199837372249206913006990519308398841807892935563966470488861138354689571769904263266077764555217402146210195065752169769946513116248710753580559124398181362227132651174157468613754320810873029630934775176465055885751881433861229669887030526734074350335692815962138796383103631097340440660106584818365870167994255576617079690679442497645280521762674869006582565215871347022577018921017948931412186787180081908753927416827564281375224487126718539583345984912439570849975944610363069074625174820361883367938270196205757319189278032735240274664955445893914835407867911951300970189805348718395478027675346352323493919965095643790561582724220973478724584227926938104716508605610712247457524365532756406799800292342135847809494449304831110352316828058809098344459898520652500059006629185550776696901095247746579450582205741407314927909049139707463808226936878636246552588944323307853310067478210332860097584729962150880552883924707684029869104967457150605426054502139772368704469090437740048012096398279053503098397080716541093539113714045767457110668052562201817978293760006908157761651505478606731977534262950457381916186759916770975646254101838693656127273024535529689054771218723512505326920739619094024927731244272902968274817149785167317717659017686822872363923625559619820730586301616018200853586780186765178969540538506724076971254546961923718954360467811554250701840362272323725697022453259243271376876758072906562172254282882528661608449224110192590271106094131069453569403560200682494155373489984807593140236696452429829649286900800370352042907949600137736538251325215297855442711511596691729944309871109672004757373748142915581082424754897561575604298853492928676234400655675540337291393030801439179824116195971463017485044585327098077747307716726030067126916173202811112278777300970215517595657766630043170756143656859503590703314883022644444078477270143927389616303791379087697905815796222339745864151014911622879285702629796404318277867866984273367674933764762392746540142862155988847471958787727516632895912998397091146761929849976849476433042536609744205184388962094893312601629879669160438739608500379124931206354068386631322863067606073734930550769536740060526532459005007729897147173737794801263312377058409312635736826779713634255595864583898880038833400557975612721886530764220982690385570085383669777055535190948400342198656145472151743758843664386028885895910059982800928691583290087028285023071175630756935054737202970977920597810106099877818377383020516933967079912171805159553258251895586630969487739690792980837339952340182184215388413091511557986905549089609780209506325084721804726879380049922478507217542654503087613967959302352032954765617434679286240348397845546561954840490194931271601230622634763268592549593545051954002844634134757563320813898780078824795452590430464371017415944442279090777236242976572503735175501925600178403708632050462864869029380714921859790906628854473309476490662805520947927359861303013631185626508601316722551446680346073461384513405338786851519894055999760316893116128894144485506658603163021869560433133548441820893914607112618395584286326819528639612805237494511983506195162593096751262577451730621520682754692450595453756807342361950453392251407899748685243425356310473058106698571285063236767914564668683523962027322892789272055358085411085990008741986178345634667243355437786144265996284142121577138969494298524833960510398541222795571150654864264794844643316889976291954226728107603326974657627258579863966645421943027811631826705734579296941106318730392864389662686550602428557351140767089323013977938174945683445403377114196097009830954452296912123910177095135569720702729462394341287614245662857065362234319081908795943612249851400521531873911383991998854787256746510546208537336115010031249227070412572346130997107437026014887407700116543486793128380502812636409328608398915019123801454115707936754682814855729761892430072006927501929483249787125930585111736639461084633143083280281633168248402418748256028120129324947296995988710948547445378700253232582110973817674060288947120745913553505940263083535134402872492818484725222931957998987659992680090864248573741074814226027321747501782044327628479410877508427098089605517422813043981736983683515074296299235845282491292589059483701135917331657681406440196991836525567575704569938090431149929552603202890306211796373198972315743296647514036551198966508153832966807515425068928720269737834963323276373849137126243045971324590171987995488268212234337388801841129518448856119471899587454682712435546875437569748666416382450183700171630859129464762086137345179568605424536680248861563285484302624224213397458966606131810803193842783598417778206726834812492545557001270817329896630871636402449925410718217904276478727024084391405835353642613136632890321806305178696998096569034361677759419787475728974949047345479342066057914789342988816115237344948147462094504928934941270038999115090594308023974001164855483293686898022852407121207436256388282102746487105418367850616092569099883216298303073516545208371301454613736008201932799201641634916259559730622798583044065437252223186501734703703477099291909289865030731646956437039332166058145056093685899456027766391338609201996304705768321979142735968405693284395503023292061967151182451225266648297631797590874522784155601937758478604207284163959089222150456748925583319596859761913728512376144068534879264608852104596191792301192252467534177706297700523900904470510811079683222376960429288248267227036792708205815188215672613524954375863876534625881260938248702161320260817245605783070722461985399447687471849451529470278011967091964941871175317876526570907819904836671669296636930297138596737452640778981323542919918371270742524225646573786609652426149345644779815586744418792192451430890351366795682547466468437092357314471376889129653055475860434200637055803443841068227904125354441548981713889714059072829842345801679196241371257873019089030452412563041784447541768519220553669544070706018778646763982401513548113624160662895344374168194941202860014105679522776138748717866005499804830838783399621814374885531768848914270872603232499161132133051204143325887373128194972456623927032915579621253885974968090519340489586239374434249578894856000042362109650808523502078964026409191534555452602931089806596239406148527585687307266060165079407006885943840663449614207063721708599516944133625276613458540196558045180606787472368794249503385326445755215710218830010606696645742893845213029387842510389933075336909787852160934665798682663034941095446059390592783438934376100059647687647491951218368291594123715239128260801038070412051012106696095873448982684241199186684239568164600584697642193364697186319264364575915297619342844838195702345609418532796254089336272512640998139584967211843031249229486397196091049085986914458656082289414540984236561254717846107993660930813115980285310061492794347870352305798262973675436872756188780232019292843857145196761954138221390867022003483310326181348658622793582547801250947915489257989344298894545655563138253122596475864069866859698543372345039678769242750317587646459137671273640721192452312072514482082988852327512915418565180725487456216737466587045160144067204812771723337274402520911223917479829659459182184417586332944597559600739273959182365765915552517310186539698676818955970721698002884018003674608543873069152238410328671152922232178618961965949175677002681045325254646362240886427445673485016940693078500616029308572921847572508186332040626741966691279901119940568920453663892733142047353590193097449077857085259251380917159495088596577651060942677303331431460693727871039052425386670683279777963913676588078541955907477084428037087303586817600505866959001122985846573526542449351774545049673890314654775070184653382211883506265928473561182786087811023150283239628177758340282997032637094143936808615661976380738386045654883074794005092977413651486263912886710804014041295504900166174812942862864366108648973205346388172086707733354190468881378490132686975044832734111787882707515026360662547050189249242573684509675640767505190228844551075567603563711465348500060315861541030365990219135394642399297412754328718719963344058829952500530940913035682055933758742756113128693858917271223251028722606784343872729365328649278916477791351052447968563151108496065973072375565310427301211742927374613039938097684281383769886886009772726884307792694706613106900096175743038111442995667587606078366389572538464048144640613497479600102592661540044774018759218534345036679923328378815854367130494149382952533473020318571507511911055304801409641015822701555218896898513550944904816149984026656248005368808484778202455488242256495811996672491969601551434003293800905228126021446467412354959863132296421203028815227323612434514431702101661684507888355146388763819601789335901174757440291922208305264711702445359607932232881113109241810996233051878468120008016339995484679284728767871042777465460185731649499416419803371509367814106739109041102506780260579672477787218526186019467928504869028460811633424294721686269541831466787054166392776309224837713676268797400769157874299352549820160045299824133205369843861134767924462821437798571675192445150796324374508912434398040444452967764333055953626255032982003656751666860295087411230221445293544340926545760967118265218482897615021175095303441820081896490096936819883681508290083204213472925781509941963975649933070513428079853953504064144289312287424051654286965340002184757544893704300683904238630032255038882002489765640942249248572944624302055832741947854088071478270632950162749814109799052933698242245540477402935171670107752010973691389648213568460863808366201982947750014776902746249685058987677777971165258990727436568435410076679768607941147450829966031277012211034419612690741098232176627434511363503952269876306027692217639366852501860886331385608028435977261524863408546658079859813553168763583693251584552951847446334357784064940059912929798375301155794390050837189642670803865457069885638064431795301479637196615734738348647174568056275316715688743339017810328186496453875271147100366209268898126944028758832596995550239666005172877602237606145184298718801724991141838354345953839726755099240355395766256574493890232804518026285286604661098013054684048177884146743608035512997219563704997553096367066962045323524928349611553970459730066827639348195009594248428304079270065856819823170831243654309418834759835520322854637395577011944450980151145801146537824784266934018348359924233278983507095089495755541411937746928579451064970336144468857593305779559069649487871694249346522706757028799753727402874261300896947917221446196154175544019585359916141481833604549783790955464188969297765644384277881113755275245301285764110453740878337482300992372587043313353186647007687617781867105748905416596871618466352782507453144707933203307966099613898487036992255187418121140392319463367669189452730146098514573346357935079195327589765980028077948966100138778059383972992820836626594264386299707295529495109022667666785912337818072760804398545058513363788812231734017631045636596389730845486971254239243525092613008586151729869370582886508053755877634837026749089217303144333456312420644150149924736409506151405842118465969243572021366975235604777759022602103997129751722186467448037230795501441853355446703057675920921592762075192111158527929487853679190377740851314152927972341575795584556417234112641412817285390533373905866460645378341197065906209895610689312607061180462705961085203805941354007200732168277466576204786638190482781890689101482568817888368782492577444151783795704959089419176472200041342086091896864588430551807338424190298170859531575549532446198752147676465696968857251659949506769801981854530918181234321042462563768621799562249620094698025157482229129453363703321824093544766410720906730369402662374209117858146329673124269491549874008241623567644913928253042681629461281111244029451749415287673539833642831925481621765533101206410181437115544436863203137698241342223041210530915491812612082949387691415180411701906462918021501503243969090648970559935168199153747670998477392513019448739257939249445043525103440362232279486948381670372901335286602826519310270632456271627445172128161625781247121904309323612423316652931561235510312398794489929400142188825461837975219900217362040653436590908930281045314507631040252467503626184144826107868812770513055765476738929332291677761797527933315780675237845269038808601823455008263632680802253769335697341407054660228227872424453120617975986682587850248611650159546436679569220437543744344943299122043171150582862705800948874413207643171646201225205806141587331424155382220058443679997682007594940688272034230584316959001636500021922296004079878447697478107600552758225997416400807946068894946902681731218996920915330158055634186425424221895822492041524872333896989311382252734139418058444706546202979628226729295195139660294635727116607756917152754356450174183844443372058560593719758069685738814100512102807970504016546056833579712202100908954516891639591086815412867330835343688133553567889339182159769922346778524001347991711636276882554286273684520827791298343970265804635102656255184807753834938338842924470512261764983039385555869334108024896459361213950005426289377250531874489873927597559148106777518279018998675960211457859265856379789947923335343855602511927054753737492764053621359310345407093870997954504346064710139605901583283223382978378026106794227805313755091287170147910835875923172495300574303192723365399979399638174301862582287980157014781697289945066130814551870479379362422306753640090150915301446416719267087251405073044437809468357227077429475135308276106642415592347550420049953886736928662726586538079966953623771783712630992196808873500526595061180999798979987673692537175566013480816124657609260131132854888505089553738605431561635232032607159554970938402280975056212584569293242105522616008905156121931496828120039693758498777200543684585340913959977503268949409143076532019230952442745606783262294430980351812205486261186350317911326198084260323759783361439170666530106055872672409691818059330811452567529982543317130923982308578267592459800025157434068925288322247942087148423396840896315234506733352931268697829083753868485918156055904803874691511154641805295128587333150603679074288174378174374707521619963908586452236261189781471204626549868453767418786391940943456133631862371743596241406880531258548653469015606580138963465421611272287534787579619763284054669868131258347544490092554635092522655804437715060848937555994359131249907725654678316154661440489152278301610126268416646038492270213417170221949555691383536653651449165898869121039832561164913853719250398559124564962246180584525005438894920857817387301363091338173027184754364501726922516467476663520605997843853276129660318178996728986913858225753501301638541253304743255961398851101201017309844388418869767719465635042307422478758014095257564760967112325401171613489476352266380810326292386904796358574856242613466022976607412416325975021540366601830562896223371989187566476183480077755633446015867538370861699061329311474227924978349142367913780067382800440308686657677967919803671173251253892041307677024379175920105653589184159236932774736422270346022372576529532971455331069116259527932880155878247940325155672815008572978499358924535020420082731254491961406450048814763324999514707023220053970700986114971786005871364593949458042545246712755178377255071926026285954232029716384747445569703311751671826651029011655976194777610108056614415927367611939630096175858736216507633168722510658816364131661350472442676246568070087335771876247651349104980149997457841024937908430906234305327853590822756986072385867278226192218803551683339128286097745619041695841415134050514786910390183306196380011032293141774279769414900003862140677280007409623349420831985167223655156926318606722693163487008909211990316644288361777399877315670180733167527926218368266278258482928784461996935324677662780988950675380147339598584333295203524603054596431117563304095113542446568226034995282340735380171474257147252514775275937086678243757665590095050663888524973228137610680926861063632915352222016226846271266704742525489909575557495906047893936605204934508717645500712272750464064499225321189004093969806824427918142514928825341346768900370835528426691605204507033139173551434363926240091750019360744727664619235314324753140635383022471104931902299102988167463711397665444205634051034858162266846175194021649167418755136615908828178436237951161960608479273710049419483266603316526082707562741325977202618759444357814985688271547119763549108274227179390116950720421434152184056495435736989018215587148223630644616945308020122153872637309545051011768049668960740891649966448210574328265371314183343930575536483227593158048086970250035888510430690761624529900969677872995847698146439303220314572617401295016921820883455719355382551727142078269284286246255265186772931690501906132176191546732091201010060925200818336636099510263472877169428831439024875528584326131657690356693088432188552956860022069354619751215452334459676056627501393937432610032317621345565051709198900630153173576179293906159859474984228762151034527928113852574737567924414589387887938583651271418551091685539042408851860699378919660305812173212859829458391543546959891801525695433094197641822546975893618752161439749584000428034930026896827418912779590055865833640563510059108099390013241229260394258302664762164581389484381700730258853603321184427910742664907459341598980851004894952910080985084406061419340278356135011853346844942230175939609360739637970963136844346707188813279619225584178395920294901139924333625399373698930818512064481887340244756876002726533292091909655639606985314677027554263242432053469506817919903490903837451162452799539916557221493801539882530828995831984416737990176746119064070497909115703171950384955529767264593778376610791782910612732047483049031718019959664460181017204128384270543732736989140146890244781119251991729007549569915896078459148001329847464947360279480676698102900968040644423831659589257034844917607734149424851588536261758037029951073285862944710822260834129935789580341763612518994306153611365167757934970731193306743639591038798804095892725356991401033475217723862814599238632623800318291604798680206370471239928145909910821407482937021159105521317211170588459737474764698752369912239933429748131862012581900279894151438936380995780854624954271230246234620289416868928943057891659852645770347583191630334926878268057323670404081044203326813355432644561194723488736839608373505380004467421312018753411391553113147601834600167090193902626205140543533981529168814288441755876104207948751153536544236622425916612734258471371560713543758341486571989868667375759866463599618239486821652111613649756111435480740825448751514689400877539684517670526072738886302226810775698562658807625737615535746252317266822978269473820429386280100126107455832932042290873367674437609588979845585003152107200949653938842858698160585120224967285811281606817106580567778902511906138000163521159503380041421827978271327167650683964329932585325979866210324897428117461612084308496823493280778570562231559627730560700010714957770525673775113533309589924340076747960915418771049609937598003020157576251237883999467190486126380119273012958255833831045200735463028719162530687013407704072113682756907161066445894652993631504068562259769172300773917294755212499282661581450237063744349837513266893239561723697017820143451954822102480525142942816428252601994272699473938596125475033294783765885869506681718288531909161090881047897954517132313110286044423534991463774330314875638738506437559572189374133378235791024993630688701487467214257533423551955774360718779532899701404611034840853105129222141204176497006457689867231435456945379572427197115317508489300351107612686541066553624233483873958492469098521627653758549274116324219179003673650692231734036020799624934894508997091838829227079510302542157302390245989192930253410380618564620485025137380130702574844411832319675625943905201510746133286710756195096977138001132871453641303812195863000267492492285564387090914722034489236124199281166958830201688322572675304942281070459081591565801064975161271980799431914887412483336876823356670541268831039644535671716500837676290605223149946649683407544864150896456923234257227200753418799324381938250827043193685145335566823433030224996713673164464519378569178532137155851321684133465435814859913026469302064108943288153017003018838833289684291869320927030084094940124195451843085740677658883344812431136214568740608653738512379875603535335809397631325392365132620490289374359174661695058076484089252160521860582296334421675044501964983806762184782673436463177330572398099657953355348019130600926544005310569623499255621883438429563360816309197471396541859065967743605397072512026524463724023484552091667579190648203197180572678103491346251162923199360285992271517809308490622973501070861719140012503266884103612079991898438780266582207206545313461020075262958649305543059895046371267412133612741022955352484289187340163288477391300885049705287530015871604627856584061022231624702499882976099674709348562776748314738809863288777440370956030817682937688215154447109378542469502307843373144967829625214574811201735961248622199214006016938423109258608369777270544831274262869412135781783627043623794798118824279174403254936233658162386791497613746619946517889544193107839639093502558941750380152892174648901464879656878767118671383740601828407832305724754484014255418665822713261513705904865801764092336917304424420548742544182477476730584027937608389168028224908575848641432017234211418251456339676489164657865123699203820553464697512175532596797051416644505969599570087368133234587503240032383800575375182000537870735476149886913811878940135656786444716526835796206568541197105045420734147516712806353474908335786024609241822174340009435598805123360910231728499357610036038823961241133978003896005182764687604016509182139522800695350563021031591377076455216862763074570880404876996250860201489121512336461347733439786060600956510045519224186778147635098998970087008750648652525455802951779662027883756085749059951464018890684681889869664347783521167295076267123246113974834416975356175054002705026106881927645403988317634939011073834822967975267615863122926994784191177119876925790979962436719131415612186279226949383974509909076092387825230674078115998221809208322277306603143976118533051970973885585350932472878000408965765394879582392322480041542199580011152371500077074989129515086947697034754025555299486293771819805158618378532126358764110646376868331631543925828874062423324877943075269434392540979612897959802803495020494413146314142059866865871857661917639277648416389239583532546453352324150519567428961559721179224824963868801929177575150107571994747450546512377494557185100018533781236226195668422494314841504273386685356946006624255513316107494632642749667789936630433812420958041163518660523867283040630744313003161517792206265320844161959678398230416192767328238700372781841589680483915424998314962547956350503351914041454151805600144238325602092809294870701348948679052456241528455573133628854966542303542895974729537263122519904359819900537156432845623289760961854536790980373332429695897967214159243962041267429081388047991053008504392201132520808758716164535614096239953318799952517474845852847334628011383628411380399088099642660791542167557392720884881471638571688526975270271505576039963097127038809075573159852999347059175715332856368848593869156350460535459516341738636970047658429611037389254895762134132556910076334250663771703471083993498199118419697122895666934626329802787721062770757868944281043324578392802526589801647197282184888415367041916582714631919347451137558584600358127279162980318852596322718088259356974730418223817535905526494113799062941262925709515413006158319529861739748907495198741815782258147166650154690654551828500194231324926410228603321196988110002278240642449175379644917627083312402914169049373722568272364217699293612326188358974106802540281147271036399125735082084497137276119384722075347228091498789034585885392461026095055075201389726782261060457797691608705164453971197864114648830748125151871905357039228466984204934972026941507776764578733343319946344742252465366313853240714398040251443172639276045564931967912821147710523354299871172873793658809732988187998391948700958931384440654444582191588623609960141126740512199547939479281394662652166230270452226804293843184423012133817342871427233112247606260099305051031050370807015958008529074428710487775140472091970732748485059327348654814960918784651724129398455025875176123083043769579510238949333346159668210437180555990982354336381470628590843930285214196398204949315397801570031783934345805145717394142565563409891649077749327317733980196078012002557784021753570821177983186748708883411179689129998278169091262078874372089792401821973830936585143915315341418470188038586643061761516682541360476099065710145852870514368784689933219085492034849831789757690307462837769639003028695234060169575344814050851638325973844708330590650431485457789922960009895721956380724212710948576707070530002787012277939058388226967927309320291862937021309283702470715605959780473289352402062532607538912454311198207393130229017734413114952844944306617630371155707802377538636147134368327577295114494369242925839222263551206680396276285389137136077550726134127616620325283956020378835034210947306153785032792069348484185035018516706752853836008093447405307072818451403669193627852621070134026067354837798051278419444864467708767683814892265345772306396483537327676404165812613229749945910071238828044922188384031695692876985576294394360298826790532326416553809652867956763548503872735400181861052086155636231055973983745250241730800014082003667957434421805915297644380584750078266719621548388237729965738584210644959344981826558942460266061069664713238786882130950205211620663098422926434457138877434444638488060711833519916227893319255209747357102805713388125268262331821393357305026287931768305038123953709328454863757884890822399451477599685897649983664986302225898178195678687876348896719878258965876156762307517521775921794747445849550731799258107539762803142004194240066155232712354388120683629461935374384482662178675525049968105492075639864422679100418819717818042649431165665944352097257584369914831213762024395683160760656427932653355786938380387935734822477356685601567877322516074151271576676968059383947262173164054617640177811860399482477938097344595452482393616675004653186871860704095790444610134614829198601213496610373125463717813149173036952680863624408518451091049921295503032216950822782849875141228733097605368039854434437568350930038060791400267376845811532904977013570952648461921318598459146672393702097269593150778899890033623748320294547117220324812435756349580968968370465057411835395815950729626613262009003699798831403360719210880543358611022828814024514197288818445852208861469767743513157193398394130908472650552547891582105387129589831612392531032635402145552091955947054026930800216915408117143526853796979135639916795916330557429898028307496478838214572386160508149671452967738685210176516754807891301606874388948141718171674301227515872014997429363417694590414282128770544330744243676803486955225587299498454110719602280791188655376352517421022282149822273739387613079881036108747427143471600599099510043228370607909533512491042585279014464503387570879521966007848824363201674037519744086598102226097185790762292052210675458491742093810945958210723405180935539949072570057217013100296341884900073669249999234253519930154374972295992385057284251353113030452097218821892237267807324120771022796508715260868439110058212865756442570952626604625089764704849187293603341179409029417541627555369949439775320210774381944505171945739091386381954004498832829373461797842950835379459353500990942735819020233681129198144566590350957374479898288405639382335703616019231591349388722476409591491115647532058458264391099123078340228749373339739546803141810616610552937264259519604723189688042022672649321935099284291549200480208404678360866391095913977438024167078302008182914887029184010386606579171838047909989227645635985209216983128412054205983522871106443219139994635548769439557482600791642338785804972696311906088644292258866234868655025562187543447546364066911015023540474719448921639076951335731531319329254724799553137290898947917695351319021943726006012268076823177452525099017022338125025185072982442283109400088171310588426206365932512093501142617856737105541583070249524132303387950458776783296353225857670168218325102738091772768035719547185099957661523924982263991805901411233164424981021593508033514173267070898439364765674441652303916251643457094081430359128541854221497499052748401799189529931058709977863143808455612309603130904440264580876275902509393889697653198696995027302810862664702445036510839315488706988033743626333684045799639979187850049487096944008484718661140632598968983262719379307165731009425013276124021421125166037791183299688745214046033692933610552168587224282392661535302447694525961033225847059401945163067358788548599308004012306156728389165264174738985516405535039402834944934533774242687360198557088353163051839456089352716728415441988641160945182935743986283277354399355878220266846457133705887782323022016688572304598601576463819656071170565626686867423743588852781805204930988265688786900428022732877748077612183980181436059249687752689441025704182848547013658026595292353347500130719236358105814017454835832295699573227368065700636815593261770489310885662557805282755926062577768746557638716846463872340003883670075017631802335087062811121342482903485761775351453319918270130764054424742690835912462139799169181300404807026670236725268474447035062463052526631457602325584403255265162020942678560528668218284847842420140025827966600059379684540368073445450377999651729830043483633077274614707754527184194797881915961287622625201968264805807239469040542492110280894894254068202817462477223745678915864458229859809561805192376572037506458262585154598139951281928673037053965879902367055207309891934941122161180957082421376053849586043325923247487398114414782686669234558352918073940819167332801031914180636256621756306354785429330774699656897006457027129887246291345431260208905715320106952036391630228654531429240579760798120811459673385042388808541255189322764706150366756391542134469644056392197547534211395434259433110222555892827673697614152180512292287011709371806695789384714147192620925967014746424923891140787358469786748182547037669470569618365621435799868786782144792970573560335695580246053233361187394940041774701477639069277931099479469182106146705953588297073911131047985460964271791418766481329384623097800192098373791560103258748778031425740621224153801243111172378151932361983817095433056609102871487254694608283387971821680762202907254582756384854568500674301749231746782752695183114855704870374943202570017068397865535201969975555148746016190929459090142956817845291025091242896201271782790698992196285894255517958033805787794407531437882145133363508683545754857727544386156429566396951520382671344642526103313350920252787586755680092921779639063381736596743113588683147574871478063274859352358976065801043498543375685606098334006265223454499620418090229913281500298047686263065281989258975917379772447682988180250490842823926999846419971195032896117819540240197775411452178219894948127497430363890252064395653358354314154430271626914537105323152530664969204230975066946319177460098637676252019316287812987817568267605087065572032734836011417741134022791286594623819805485048352892270212198762359325010404570851632638029451393228058721784222735037016909854490553025320879845518993060627546133869223646893695520642468798677330338255550032981781968521984123623419880953460615647548542305461781826511699974077650947906288804064861567918428321993118172678335313008676246205194548686967068020987545161163998519358155676635558919677568583491592144700567191784572003524800705027851380242845146254234930264975756384194140866166600593930272848719399812684916007132062362944605577858795682477659615452080089446229211122604387055128431599123642657744636544735406130617513007987318165333845655775658321871967540591960753566427262433948836223753779899850078545323424685634216302103074476507622558305496349780622364799159314453412073439415726933719247411798453150534325798872575145497078940266911753545276057866127978595607001144501112023674857667544077156998699684651531370816331927817414701107370679520909693320385845913669031242877055937692762448438383692231571110458221878706574903027779228212741158227611403084506324171301376844300703448709916066194197297231053275944851581541942085521042958323984748707353866973259589659977143621152336871435198150382426835210908311447027259848441475290840707448394323327492040896193587608338407484870214138107883964774713862823119924578524013611561287228346870503151249925370611771720904859161460325517257768182734410992637464292772771906826257712657311020487700646739686799519378567189131794089034081956317447379085033248638894345807040750779820896705951130801102533838300728649486320422776623315153268672714337199331004147496989024779189976602875276025323690705741989417151392755650568306209116003233908088337794502145617284754797193917857275441976898913906682308378681575653936030810822331329150970112421641548697153499674909125520472167156907099806667060470617424687713290634018571583007851795190664728260465575413179072863310999729199344439164296343626470316100506465625869034996978449124273649059808868813176415437171501268990835895811304245092730529048259298458470972431833081844827592599937721418100560824767937362237035652262771322706515621912851101932370293486610731452933787681386035981600232929604991399435471519025325050084594832773152511244112916362537506299021743269858270609431402475313111308698769607288188808781569366822522491925718407364148472296778250364078269991410577709979652978306441714445086632985714468751127482043555111803314845227891756937339589981539561077653073684568334382728020815383313008158740422595488880546320809918172200491562382258392814535604248542051230581246318698754013161737522074248675434249436305055380409782127885020472135002660222525585767087108896958129015381897838996892956439520647029872548578571989123067425009278272376963786251947776041614294947980411214234924767586974540051589974637520316850243998023286069713658453051729096697933679357196157754099680018179782214479541779533637098279431336150935240120533572179593648610936360767893137014042891316479823058308833206825779211705282506374806722591589032761381993302001688871805465392944439695460278108750081223035859137970171240366426353986636849697426472466434551999909001293042708776664930077710242558985975912500464919738551249043341242579624791331998918494547590329007081054539298285273288923213834687136171178626449346774589156841676919940929642135052475215139026037952212022121952564198649968165158596957567208156771085900694767742121331870154777589293782303010342777453684855408286630973332826498828056038039284132470392330577284672251023383677246707762582639753690819632649713180599965645569178985749463113543095927710278438991749959002381746204622346325699116068263444288764641416209730931888318563624177534106714507536945252373043409844046218406483668091437822501667048267636826259428824869989985041739874142787182656347876674171365399232341932976230797685535334014921703329301821550647950609592400375627273767071024526715385972862034222314215282251574373365955814858703291606128705396007755024186706867019369895548494631003331738379202251589649178650757820195423411272610505687245405996859225170158701400028849844707389698236598510633389326066219209918504190410102106947065359503244343817900374392135610160124013204612380631664408483109365849063669518752066364735461120487897555201060826439880317237058870026055842940070439283554122173841711131677239911412957370332415363215813196441136951622513520855943953865731530097162023030468951350176471429829897138225316718839627584467157468400558221430999046266047306195126598534988706560839753955997882737246919478512354320109162248107244065949632378637028697027814810815797041612673505514162011493172264791000601345839120221493506116856612173682535761649828627958488868641991298121446534283996371262987601261856023910220521278891862062355462412093458112309760534625450058098957629389360966979901181606800479051423215700117058521974441224928660750256699547972049608686998074041080491796605025184004163114879487800863735847285824878938912468286283621575237516635862243337874914495080040721642884339347194596825914335667640809829391453633161730586004468555101901940217483760435660546398690732785186408818553658289422122775928035622541503631365349242138768684245195367930288656842792013046936933097152226592556770131632928496195061438209012811505959737704147991465886627625931080680792136419466057144430546001321889966798256131142352949179350306423954446040637989970427081288699584470673640054997804858941320927637195358580294728292153955132722029670000219569639051647536739203334644963299749897754088906230447480975168391178936206469421740241666132214505473666102217905187530844680507423012835539301326238893360835172012517508071374977894192494285512389589348105698559538503905505238067920035299221444704970354125007359361008152005807386908431103428107483593557618387773826325207565955812901534243421534597395644740222651218240433219590571102584849344229524157505488705897721363799040195267324478332309799855777912126703552108898993172965537263650713028927749779558815268845409914104539357695392311169866091484509984647355692721969575702799762204022712701043364891550574632222474886234012348175251637551051067029860829282927508145279488203470808999786359575498477208301103584022074388832119711012356410225115651350796006331670499999091885846549129814960948399090666883304987038326269802649276994075429113998532800644700160109971824886442137664983813934054172841871327183000315006859024454220980674588729213434741287695497695851851332296819478042573361798406731146307593938044483343676902109674522705396635745181174411684716237352769210598798969057733065479794276922806183141500700334901060291547742635837334723634998504093010000158345325758463568846311172029961224025317747682591372220242381636230229904136395093074816147975461041906510728787950336488888519518388569858976466305816635884047133641316143692237898150158719982885574857589385180966458299925994480002102553545334524101989453843821151303960072977707809150502079407842084508051581920830259734835101870724229652973922508026733733759049207854108708954113293812118072149052587573932794017313156721733380371954252181843760944152589743136212259412005249975231311054323609762887251090489301719329572247681407968545060189042961134941390763741873129085136960662981273931937217517991654051160114962167920919736096465122205427020967029100899263175253438570145896016390235313912317253629562655645522854949050204317592563633935433171433766681601859780724050085630963832973710388931706538207600703817401931805129084272546777286773753854053046227622949326293282171065300471073831027804927627999076546983220998430154711055426357527742464181224786017690459363308746129072379401146307729410105866696428283372240656135157736854630267419147643805060877925224791411727621867973566185447314144442265157411232523570570922477988925684319456720474015859042976145245824406992861433282261405063922218787822535524204385426072761943936177647348160209947829350201322881418457419972843427296752380672280167133932401202752062743064095703777573507096477189729040595397976778482724761142728730498134629242588396942103920186736387309894368830449042710392091862753630098224332699046811081955109359199583068603013865515143007487724818554145948082245960249674369851538058888352786472541897146636343820413845918668484046870853601177934388475014208633091203148596690720197696780671196444639048530581240029181984152788853933056709468349845766460127173688158114620720470426137539484348507940742672716774140724486914759738089274512144175965285394851204416187003174336286652785758176101294314168243979551492467532756465176161227141449853781671280021945157927867580006576322824980645812131084604901263981696600606043885930103572150157479834950270292801351395492161212539656411901345163772395694537492854561900543010111885344492410290379851209203116389736730543339221328782120282875895766352576957331514485117509522341252717612856254405471630137427706341966791000183566583498146323001144346163913845636712566245102684782143161619120910588620349915072519536762878805074499249008337107491165362679085634467979625183618764930998512961571440290894932838036015998811967307182874297073268173007931867892537520724420091004193468052742121030896244159551813373115773623685327345937887707462830052433394520968128883734644891286785901236958726375455800050663944857892491574398790108528044419169002824753902281634779817047200127730665559518730698041393233766478710564464112412969944949032529719675860629741550710852419327993932066737923241623001064649249695523589014466189097848796889861011970424164865391149624430032478324612150408153459104461292148283700888093312337589804690425040642524363328484855549130482730252411105505882786614728073546507782339433108947302329739474385600494943326288300120805085756336439594431533045353191296552837972126961082642938430138572191149244674269094763853791036115994092740708580787166059675983231869017808022434255373056264006999724361070355127008803780818121153919578663653321537747140215102303465387497630198656340359304076980742645721381480064364324717440840636681372247215264423228567076594833995842729527508434626164707690492474427150789657295621014716161386404753312346298100562903020481607114390852708943843077066595126936869068195622969617684551173804809643312234637541433679727116961890519470430115385929646121366817429050115841666027798684189408347342762873321265401646576032627503470817498890392809198421951421109094739978297889357177496242188913431647525664154406363503434485444659624123838168702365928006776483412593255022162523315077653887899240455020277434637512177380408435010214784940211418831274203708388843554460570470348952662053822434631427541085546761966421368513139039486855264452892893816552868159773549001584461655038166622717769837612030972140950547985758289222617454199706382638400045460634443476937112443915769891260372905991216389504061617423951899529685514007414847728949082818686015499030196261215696652965264172060672733599406902727154462508989226037878834196951841400801057876577119775079881924118048082300872776403770010447046640429567512821739342062473452313452757370838657119738669060868560840338047157271382358128639934745841150357804131299217498412109159248929782669425929362736540584529658363603034474326443816247291666856280743128193825002455742917407300664000386095275535530943006288406585859073839196146879765614601123125559501938343997736371511149361204353443108582722543525940734234972803407749357837555456002127076364211320534677051649231402589232774348340144441034578412498057111227574985721925367058875704536563465802445623001444581939713545215360814936090296879085698940621716719281945120925862458129705523332301990087774865390524760339305334472737540934635165199746055007898561673622237688533570887028368883746792409800000994960245507220027204517222681823293588479534717176549626836126391826789976699484707304795005788436269421181545120028206305932910407384013868668351827705436292662370923803000396413264716456538958445242188995958844196385690488483037809073801730145212874637182419462261512860230955046634894207415398944049243164611140894811517675099022818623429211713604794376673585198894732317485336474914832797153920764013159987803672130732730026097545317628690100029907575164555709926632344021717249126092550849211223728021714611967864448395694926832776215917654718048627747995482771688100699124167655939466846146555094144823136066479229662847232750648682304975741460164743817152813320644043147415802829734794873519498657719828920581115157752657268466022465015211601220969445091875401753264721259968882616010589531403818937489467461732056718027044112797990051428081233246724178864115677425491348507915052253277673409304647354818420108012049429118550335509840374619967023206656748956547599351666422307711344766172951054404971029769560451929432700964959640632625077669201257819380443880335811632978622833135801725919289358920576353898101503439425657599141174947951286736236135898748942600417251775240794523353391285234469868100183432653734857247016213521677285620818536479369454085688347330897421531630862862973332977678306648758854175790758934828546309914034937663109260556835966447338417282354566146385589892953629653757124383223454660906179792939567086340839709656980070177378912746329619550864423685785138253985599002862137840565246633423125309958267032174628274523388420666227427882310314483362987960470869919871454713646477643383631222636745029973309711684979347357701241255231288895745918323688914896104205415672303754423632848906597902077601351077769523771034775411789552233339937158685384667405180670123455101116558654979921643036743434637665560220433516486461604935332095620726504489590761127486538848433426272411282226936407544577139863354690669169506101919254567523497147150420798317401439394637449628349106800257665573081823115011368970741654414749886591247716106020617487309024159763140953715235643666218079941694994176605854744641119761489795605093568605787066096670061080240027089329520040754213101878589529202217404107882727735425361347777632672861350467312516919252565444070590974808051079042995642779068443685875803703138542827918153068165728646687032251898375693185272426046944812908179077054669215776561655319402100926367347018662904811386958277558171413151917940212693929089573159167258080735032955052255595861839461936539452490295222883682637867007646524362467975081242988998237259452669596370444972061063038899654288740434270134692272272902724499108614673642558250448727934925149044942752858718966736358665544156539335372841172843955742365377687005205621920849415090642884954532013005288344987096413290145730289790794246285417175656139238238879804765651733026703380302604609050016576433255602996070150281289371405874853530481697731815869083072180029533308697242540127289820612412515261186240256982643856739232204178181058809121581969017114697480354497605670800015532427769799868444797499904634841305528183415909988350441435970014573111870083104282280204782706482270352757134295669873673094527553012876605408835219553331448049937213788763371821614878512310965714838558653816355819328524894211348140147401432227748719074771419246143069913415946890317022857684002221536869653778422733308126267654380009337578264216765989427892024807876634654636700247859098476833911642548415353407263801571324250815530400420733290495697348448785106295868701494108812134432580239141419152911768374223662205480863530215856795584727819901607297389272053759135725148447768193289265051449919316758182519763193484321342682153282123770832593183793297186063629364606329111210975516076034768765739759500545110080172384179688866256651251200526093551550108652391629826421240985447600466099230089140109937654429054446500804181316600573083454486086802643030776414709724139559960438995161479259921477089443055241758116271157943332732503778847858023801679994443999167325118024275027293372985224515862272224173386749090388838476152292453768118514573711182555756759892031132422443424105431561510140429102467321251105954586046140696923447475821430768408015777312584045876092799337578954021310329436241832486403755690467935891569046548092452028813622291075262510630984947269709675325439524289395998168922158136129827664230777559563001109283869771888189272515772214779365796377806539538451474389218030960727127132233630405015293419277701332513213416079155255588038260741134479820137048835955012864531593163092135263554169678481662753338164421973810555601194980183361371260500993192101414541036158041134733608081127385442327645917874942593235450224018641133938060009919487478132353627699286347966861451081417209641722617123290543791897110586333480910310379657743522628936099659628089243558993111089843025986017424177973756927989430352477850785513325911296086628148999033233313650023174450380294845826717902095304051526721693993391524075663116298722132711187924483146719589152406202987994582389264075135812200381855381461506549977209060150731827859807250740196335625031151155565832709484298868204676370549703295661783705921578533953294649450313348946974434064141960209690667572994798041058165427099870687051066780198495283485183563702134287417853022365345956742096915668579089229764017989695584531178318456899027350854606265805617567777554466836377479419992717563666735837545442285256592818455576409735470872218899796116292097565548570541647903878389827298393666704818012587731209419504805859824775110569426940004631743287827763507669153550675349035488395653371069943066134833018373098897622521262090315853578690700220017445643626850615476403323316531312559673871625743540717407087887599093274599702898831890483703522407403753304869736661290082197409008750599148712990543241678191304056888490880897846991001214672189977433783025119193626693113025867509409053091857270985502786909155013618576366999580485405587718054857400134360225113664825030963575677737260208788263533431047286707483951774585293615231486412078076370666410810490595762041777302395514289906708691854218902320649628080898987647096645692516883045281604605759388373006765960265454704530210200845252477177525154688832880117300406135828553828407967779298218080471943631206094042659954026660766737930782571061827821348201144723519894796423285967724375423249491844625300120496328237477629846802764548669029876820604829972241047294134724060393478520075869039269828323585567118666411917150548473603581844274741298883229349981957862031111868555762307070333497052720516686957424250888002348242534346438797416788981313488064064642470281946714552913097161189675250058312972488442537617135567264194145762744710267640520211708306700710500466548082971574931220474908311870003829186003053744701134956222479976752768391889652103417894990758174109829884968116998675241842602391514637305600960493866696527788291190330932078074607974666929157638643465025729516492983624102760337895371274092222112759557940009582934827310820801937850517001445899345461336477351752196737808937902703786853666865291210031475873307523619417882355946646760714809272904889634306473088474366927289695384026447498270474055417770047073746261938242711436487582557744554404593356413482001770365105696279689159320840836157555570711716705957614311378900546221498579082398884629818820236528011674825739921296399024666693631997463079979375283436927096755029806479514361161856034216545443951018877493418896550116149402503855605478325971872012401510848688919778630752561181511174093956049576181258541139556202852064813178254154723252151104089773906629275102046382488818400375595393429850292482669219349086820333220087241649941233878654845697730374847942145267185865477474345043307802338821168027436620102964550171665925231286699159695436872824188938787241504151684502577768208084847611286186030815931115988205658085234012271613756471505141901079106576604358258852173365435954267272816367648524161849544536137969687293510090586320096350135662900016128134349929333633029076204602073809371364355001710993492779619605005285184346365965919347140281981798434627992546548717153522255592105001993660738192573061682740762729916008269757750034095366480688792962919962926721742102902477515096505081859406640493394778472715074364782199239950459214740502579520256026490963289325635091458990458852720077745089320339713689733522489478695122072424565376008788890776978422395995815411013899271971366670617696848807682242077585181642133038065421569122814157820248309102301695889076265461119215681756911460888152770840145996267254097006216994323488134739841049914901139628762333194894968692966451405863330155975129826590270587476520165125217914949103811628434936885575218638092594017627085567510731476023425942734988184560129655081433194873557607491446873932544319784721205751235595932973535647122303209084670737705284990076293862912327505950755675104763809859515406825877651891225211886813799028602077511402666487177360744709521568152618905155004088166820379907018046466097175553138271698343352119458293559448494186784603648494985933914541663474805132895432163609394450994256030426785222595015786870838278005637214903827736200244615041342814624307915257331274851306582588287850077181257613973302603092228714030680643490261937095163521796827378918408198843571192007387917772061853889600652597057402837386790005487995626924518357532159742124878051132109560131484425185047529870427807758941023096894514293609552533566630479053555659931261340537055484423354346594244698247719723772375635804224403233140527460476194666954683906261678401352340383694586333135078839727198717839428384657404720237802304075179490166026401619646151052660022305787362743515950402292836537865848672893951902582097453951755686222079174997134340287933716171170898232922372973820253591549575135168255428411287189851650399200172965013682196543681730801605552201798986806362123217596572752577037562810226121136555868394432036203458867966476562465051515328079829555784419026007849422505657503497863151986201650658247849188277427895722518725934363991410073761197545269352462373390470125286967579002978787764443261768480225139368863758194435131064587418883659195583849815897287450153280779300678123585496006987098330361104475530221160445524916320199752547339685019929362691456876366770112676174762016890341466676810840195604810029535024789030260597796968203418387234936658581678927239523939836517249907330293517489250280204652058796852778218204756086692240775089650777346686589071885190558230274988412396711306606105454465245240081903689702496877244563778803419056032856944214003255814041068649497766765811585405960787983935191737266307519726418771036003581510584151454486221050319114847166627242116845513716492426741526429308998354159117225022318235935124408334879842445334466487771104160894083058384239937490628632622837143756591099785364568885369645605663959912364508935926917955128322453511885218069547884525821752557976514172533893033508649815453706923269341873719339324344612540320540466035833768581454531276558490543772646583971291595848684403621867783497943793667169725065182599347929287719227546019312135540326531091626907464595071210437829411244717713445386740804293991229152542066044193779064051226359122396240041183150395920805949056775970649195642443876766638466181291258441265647650895974243333775179741447469983572948509218030093587409065674847532579625859784080355987546412697558809684976654704049000980911050019040631815259089960397243026718290038186576341723143469391622176684638627454916747656646316926366394876961028544402789897972596494099899891919678756503549586639449737182489033218122837585948344654193190237045758254651493309318525565859099917662628320628263637067869163711750224753963208779078310025315268509877454040960221735150920250902710155710674825106291934934893658812930927037874398064306768515374881834233599375872774577832509824446507030922084010236480352160447493689013591470486101316008288253183150356118367567671045876755933540967467637569319945277365619833438255298732017685891815579498776703485595460504070813970973597994461495315748194913158775326228407270042449928772084671166977489708898111642046917254831467155529105735110619470079007488694683326324344254744170075215715793740721192449559117748869562292638505933278804300277145877418275122587127659137099374198164815352553525394875121639761005250439230200700971181922199314440703541994317364531493017575162543004572065913353686069472927174581879139719082943984844645259126046573505832598472162144221037434452782213710245598546029529391822627444479368574711689036101082771943062155102818407177004772998048416313214606392259517040600327552813701256829888326658339786014183907435942281767324723522733882035736849680696871316460825308563858069132687926339277799629647514341313363321676554012596989820543346605919814155958524264909897271922965642628204782034966275986091807388458636060675328041503039704798640156368237313877683146382945134285033605181995718166146196345481823004146562193826978408839141853684708434855868784647020990342795627028829394179027579504794899968740948320699893560299559529574457388975934829015714596626356988778992068394931328788238742428435100634903015719909931243022203292572005714807181844809562154047110072646707063595696447766335360309553926262211937358663686218937859996159950428577794584280315433576023971137487664589294886191186404260244271945489192597753997195824222139521986754406601500338980889098530607846478141960035955458585623137569832302499162016256237421406485589967714731945204503600917479091641690687701855446443719492567128876642049237679774119395918810290077241779829753073449721699796335189957408847706968046628793596601362742222666270986033588578953053213438571295481380368909952892887725978013883613688354306502409008816295729456985428276104053343730174458531961644403319112216978437528337629950447796865957911014072629312309913243682654486185999830188564568425502304971952380873577819936458156372646915043146808582820235682832851926718768332378412470650584322810405403443481142695069759470504162677171142637084422786345535503789412059056574133789060238101792430816523869707407565186208002958245523402108663031160005629134393040277525571642367801520723595229512628747016044883931139714815859695838389188541700139559168798200203639739215339921159020343730231321942992884085598489046986503948149908932372972809191480619151021289712838448670131730819399827027516466029753520464747963293543881004497547827064771631610321427799185867101049144883114321560477672047024905431331182893506968986836631254798173540522306591007217514076212420726662108229131924146494829619395026727818471955559389310259058310483157927128791597540926006383075991952554177844280016425537789402369460477772370119867081449013659455848192339720326762152392010595698687987804956950845347809498329062788979722012758466032898769985244791139690865072971891718554408510194879129509306143267874000521609393439140846045986232102433333606821869503727847189086732987086325278541255272282371208472226140571913400479317473743543269448054853392915169308981025689766716711726402077641750421586533037648438040537996523551266236623622564644088758367095674778160511515497978311579357037480153915216510703309263320994533468085706183519014534656177920544733417168331360571633188456031448054719323370488267982401622969315956684040004854847528515276289600347812808213706296062917805002583786019639527122292845137478070492618532960467317631035324491596721246354027611311106084963989700059104279382885086793223571675249844860089836558036188840443736181247812642006637011843487957717476562340343594497788399277989042501423838061474002952927107938981180636385505097920081634128443757054775364771558761231925547875923903725979631548495116921360931423178812033432647632600440974904192067588933316869786664028325818739898179173649352413076236124070242696240647907386769830516354325143509624902753608035825942122902371821456518911971055711347150373512747275834225219896834603806777890440021533664810843048180239299887294844840952141349395135027492840015461761337429965729282462015982107549374238505183085112054353756597000531069058651602493412185905662062764866863356365405970631676314090832297016669819580554533397334932608155711990243979715606224557163983566551825439666331768020016749360551561803014375208000196353226222176925894050354387534787105581394174838120763985137108041707507206648405345091646143568079035024893423187704178084143174234353958676145418909909286210215854145106420151716776586259844327880946773067749433301385300332914135529957977536868615017271434295661735635457564561280037418360820840416668170858465921645478373094948548848796963682852284360263788004695924662243824675911472198712928611676766039502916844734107283545194433435040763127264497595915552988116768671565040742264086111285913624600642129608535291945285362550453395133499930414291669414838711898943998235633769112099228642456856944047517323222870735304828160518224491229577135384915087450748315052247528488459926814080338796447277547852625864513587580804627308444559928012690649392834599658813552147725142126952572799205936957267350095954522850166771849928568665602766769235159052545447737346862312552572878989879033332033590534218064596934011576357562739999993539684042449096597826792881923669993519357446795926927534808633511113019979998376594565260500693099898252318394406017391117331768904700449854883812594396023641113658044845073793110788003497505892180780723708761729544938370336121482873923106911624275056455262930220055799721940997715175555462890308814087681584957929912120140856258375153982484750679392169860869291980472520933443670391495977189718911316772068489908869420386251079596224545275082068399591045425356658430348607651862117535372297862288393095689565164716375744077404780926815461466292687994594843904245461452856792339613303265513281179520032152227049645877170607576317129912259136674297247617701991585908063541509779437305892390435285051033327258716197216464067327828878813247312664094971708501667697845503866309355315295620441189618685480971493997366970213054261589369927220698826353446895626475472060532735351504636692847999221359191816935025381678422671243106608069112276620824809235914872758520810019536840256219595981369105955880901607231719629954540285831118502964139188600610991618961523613124444816546318730989702860676775028003938483075179206286046279998450034468195230949322721614195118340918797399609941486614074799524133298785505401623515785581912183921496160850958610663050728286657786171535593676455952532253875526734117756540226169021703429936158873003924896350408735053286900155512429705249221263151129936137531236313749314150225645518319902650551961816134967928737058700837015384866790926007199881177321383851779441150736592955034452782789050176752697378286828000432190095481974436321729423971279087809594732028565085553607035663728207927676802330701041088566178772185119147853464667678767626592843593066822841154398650395676753205328822278642795817405059305963996036021495923452757125645040941902236265585683363184004665016780771346990289292807356278695932971150836380074332301199308931401160022702623986431960752419876726242789287400011589474704076810751044511391297788217588590237932215818247625872764250283733629974032669806365186434442233983626191377950824686145995474888178908224170366220850743864828467439754028839563280241207944789034531369582991730879288052738938471932108083044358790616481055864409637369032818905610021989210675556911726421017677146340481274058921722120225601109856159473812775651064579895786743101561886026588317079131124769614611552479490052093498246366042094332159444846920107146374872779586218299866162704705811859963682810631265627202157385837950272555256191016758648324508850801303574489051175157875478033074150673207986552658986878714300892039207808361681995252371223918271013938635268032295740562680990799643018433629041094126879132608650851794600805232304304210563269061325567283890130062490160858130546838310113880667133701900586179568706974371821346849801062397074098519959816082359691267932343977333750470661361131913254846543650121568257415147573620111261564250535484892186475583622171697635946894830491664180769580061111832390673879168610864397540883345147108048047904086116646882176389729002528140828220571587907522211152403872097187631650456872121280600177012965809031828411756333160108828017062774563227182647684783258728172405551651348490755212576537218244215758091997891552916551220185454579455946981577327560992856362205763816190301791538876382646989727048571579905707618214252308756683889088555011498845977548880544178989098946217403459197992371968340134651937583889351818647168545641290148593150877866507077848521467648141068741637005476375786221768819314639390050521863170656923901470342574447580646884237793084894502457399151118227195537913414256160874740626113156394785587584090931224496044943290599293442127982462970666984391993554535075503944596798064010247655188564532482594145423607082010343957461747630598179454397637288456762034834394280640072274836441634165629342914727875995691173354938029926331989915572243793457422328776305498090830448066585277854161967471058828411490327212813829661631301371361730217624883823841307051447314617782935806179361291869451748135345374411058334149172464144703008497615487437883564487024120741313459827639311189654023599241675772302919450535210413677787288150478671073766237261706735569508297951456230625701840626151571130365697259615053142098355857444632357304555554508485194731503323542797469765107862652145101665203591400964418091418461416865458108604115812515193285309635943177106288721562455942409009266328855750965063608715515014635684687110331585895445399692902672205192113545410202678759677992127010838203843972807094403639388437209757066714912477783962212657735953807549222979559237873528201784981101229644433131308072652419779296664819912050911121238568278210891512366712435953229403708389476066187241069951849419910169488098500123195827751492611738054863092183364000172008978426292118635590469087374969849819538592965740378698742033146985073973041870126932272968544374421603575412125476078031526572131278967797110477739047922204544176516586855602948024927107712590353181865816435800263958768868532573980046862130879820666690119712469060277229381408750994056053329366977267442435644964136364559817377676749224152647945110357443418844602251855015764865639534837649633305213443105612100183336477698424006254878445919534549928673599275569795408377464039523909291627762200963254249071260331947155882547943306439570466586087350492613676547267971860434852157950885938132209051131054978985801511297878438175281750841345796331059865908179967821882367451844219515994803084374157727216185762524268722283227228161203435725754340456857966371416727048957880533303559735570339605790133599139956865544165120192999030708039578755455711682538283753369237907054508325658468583782740881152845560340009378372613210231864515136841901306009342585876467217756949139659879447388013060415604963020795868695049023592310806662224000945814830500323643596391500348607264762483940571108687611431916028607629833385013524849657972777653660710203014022331285880067236063367224966630344032126934454665625333002008708208575487568136512972479311598751352092458009585197879646083340593266489790122914097929436625458131400079104534615396521432754215484118977224947534394017047683264086026494555315869871556428210888094856367116264780525721384298035119715865681976288421872176328815299454383366666594340246219046465121937278640891286178223704854764899194256621578782745170765040569804063710502084652883066253474944987001436039827573015232498008395671534269555754824646985590793429753297639893379660459813664346191422746079235594606836071966113434381945656746100791606745547379427625453991505570656725847915338555002684275474630891744702462083226215761883055680643133194563234639116917099506446155278733791703607541916256399115961028916891606853085628717896938836941923334340047499566183435453065768111715166843013134981887489515931856840448446872024934756523141862174936656643962682334164876964606608044123771673969207429484207010031055917797777786508549715718698288363981003096459089767561036893325758703785672679971020505590390521356865898261058795832924273148920030950733762592341889729601688504150271056210999036401838418753502920356231769297188981916310614821231700007475794577863579612554778385824309213835851808205915754332762774492706368432801661178204973606437160776451197446857822352028125402743382032342514024077064479787056634606709933591430389434764140492443355325628152036899648200721844371537637815142155635514700560382147582974108670331243089643978399485120592503333298766574093965452624249733403811673707893384002134077523807807118154061920721876376999454867642836625832264948454098790582036863055674386256899331867252863362169516065014138213072850148157342776450342335512297589259287426948655491393995760451596488973432490842885317395044854597017503629723922301476460039883500786924705959943910263943686472352648894246786607335702467096398844553010610359731411404573618515314310707905595156788192494194582870296156279870713989374797737765923319837833020106291515934835758172672105819161889467664367982911131516988369499021109032782419063334139599771545837580753366766504332353073424242494669717499377693580599300759468098076675502240525564082020047178499084759884276218715444449713505578258781093310174930518060291116260314422015997567896616506422599690253896697683463542667663550438583522586583361866893923854400579847659263014977322578626362423370028782679923770403259696151202804096462605248484918783951277272607192030979073709614058780322311413549371106656161488587790484153850035655106572614569680741195639598331300537393375210838951838993150920628029306219092995336058780659185340087178972926666210139975502803096900355850828147264550087252465878536755318255756540398046639164897158282069255383700919493040071526642274974986955648729371827288452730167331741788565399417902961625239172657350850482716265177868247493900999565484127016400453040942339737605586122734771279004387165228189166911025207472554498692144787949331308187235456692807480669066860079055595406309465981780406726295368975356032603303237077768874910020273693013237839369248900137746660034774977049856001443174743202721058280381999332190529301720828843304940548664426506734631172893191353334356301131948358900765145387971690792967962744225684399354339805424644298498495475643171502877579180939146332380217997884446211233516272519825732679230196820064163840355117231404764725966817277416383303371571334696160386946937955518384993879887342027857858103212281393683220340276995889681120322914833323439086718208410547333279597569660902689644920724779877962832861309845127190904722178780626892224066552546615831368896025208522022992781220025271817023252329282288380156341301682647192916628807648112790984761241262306906475466303722517894441625672420838294524024155820410680319017966683662447116782245595641718348917713032458849122362978449431835127580931284960652098520898179190090462778963776617123672386359382521239910759428029258879545953494929624083497769773590719270110962051883868929127487303238037659583424321737788167966718782964991339770900029344294825036764496267124529676821318996466473497338640266466260813971153690376521844071963942013919523417777014368829790990551951760573957400690988756506776780670964840306291678828828256410775435759100632423579078956916582549277092811850570996893779945338437747831874663321170946494449870464538455594779141328899674609638706420287987222062494579265841778565534462824480122868731037914965246318007843733461420190749708668182353074191497454441265648068177695205030718249485836544409729108533025521827809183094323331082664806426711606865842019673215418516352005863303433766549503922503584353551084936948063925393079444666326588041900800640305887382784865596542497252192246713587708407046282403500914369064052664649045952701637565056840818726476638659425872053438131853235661104927410741704615768772102505360263583442437467459070847860647067821880795070983973407877135004547585009391958257945612282891128550597498714314576471705989595839206973615621819892353862467023920839716281172105914152123521428195891726961139115009109389089094364388924531089606792640213430225915156821874280568263491997358732015486768656424514365351024169706629115729162393868761639656248582795414569207786693777997349720932761609914242551775071829584325837802781295473117527285412970581486803808538852228310328764510839746204014622198933362401649596482920423030361549044484907032366818168676982473911839345660687202416469168042120760062583421383550213344773211575614225684927451322751515018822947840144981902060620980003673835762724013698205854410085739492107921196993726465528751263061474748616800939598583115537998105822747554365836346242258602361702929492973385085816533870771227048391409658878821776761220058815686633261445537290574639314524774518572866479760138578647030920108558006886055978147053558686566368524344724473593715636864152652919413905706308769085414220863029538937307665246158717003621735203270813775126866671259358922632251467694202356848205893524797548974901657139839014001050464457389374526578449079497538471735422688617875052860774945047581051704980861987924754712353791938497391364154685200673636652294684131487770472699845332595982397801795591985404732848254292616460520167006843030824841499389722600419409793735297142894552028858872073231837658185627954805620763243427643532385583645048350968932932137026623103029599336695668324926520630906058714996670846194277088884164380104889934225586698228573058408073075252113164634606374291174591720741278787790720690484433745492303478799405499882330182047545466992517224434432735044773507172275777245301837771644399204110293965575497017247793573928540677867648545187160508555523000459187768260109954902821794978912952541327075679528330257191997142218761233333699080308461127247627484827962102975412973187998037489739176004509156386257553088438196619013268074957398753305820659201390275750990824535766217486104760818681309273739689325823512786857929316258085344069067193928383795395215766528941526247754481155324460677809626720741319108920579863287785775810722921897376501499336979956207877861727752354557289307244851661786617221654675235429907857891359270550786224952999962836790467817197699579640010701908260798314578605706723975575946077421717520247800834318299489635426771384503152815013999319507233088029783382179895251891386694916098179028331757939475856368927048521287474010102068891005987735242816855045623224074304440944234194026775724070667608431787190935480047132040723905850432913517527541007595969813270506694766623202532181504511674381551383037796257050222517612329617721773536108113617288425958864348691419427925349720868981404475235165071699540008723574623344250428037522063273425620209901418431457083086203072791046503148408726161884813815035649714959472551594737279313447346134355878311103684936947424444414958771894916127354599336664010577047569492110200048619086703810187920358715908643840082208528855530963791959611719959977125707437262278301932861796450359669630987887527278538541995337538120081578986299343647901009096915885383129311723536396064690702972946170859306591346339746474505867105231475964493850732222816630370947515002236261056095542569983135095096509748425381013917961033453918309480844765249247047356580599903528105133340004069010992511926413766382429200936360408885972558758609983700697493348038782124580272689300816718172927321902861493595636727840622809518345660491607413437821659301407575077905795154915132699458982430755657562247749926121454053535857885133301560617876098965503331955374943738438705373627546428320089837463403645676441089593515132825177696025395234177436918999492396387124303178852370582502854566665614147707024790864020277800415178051359355102021594830788833044944841855569915299072101336645753773731794289832744880175106599382030210880566868388144220121518954827984676030399822151933947626779770072841200187603854737720176471779312157080270878154281189075003836701251617291603058367915876951744247777346537208019382061379060826490820315391845668880148222472270158246853140399085768272601949729425568918633364401568048020532596157258768408938006808117856901532599290648185267395835695938922069374858652987041559657485266302368129530642325041448493677814852855177233103245638915139044529409148084366675692149950564315474766741896935498596032537399382052152336421729850351686769495032878728594688628024719800975471738929171577012951040277980118081534719164450415557110864019857166710311436308091502163701391136038757592915590605007996104297149108344032313409233214099733406367224546426017494742619842837699955693304718800294941703889817753535680987909757075580454518860312482175287716691490730076547363141024405174290758225096613215192185680177855114138592317446592157101921977821731299914622718388282608130763967531074048441003433326709169978404330438087676166613618421170776958676171542295166927062785886254367789837477772007826583206000908343131870523750044271731826303482686376598751458646472527425084059050167878007474782269738244358670441113879165549263100852850666307988003894250605545808137199483988252012088027677359931761220882755311469159332614302990781537610397236243401316964620342540419087847526439947820689887680320659532500208793632739512582926293462913864348406860038322517995754219450326383885988656340696839138434654867211011947480870609332531855972460340477988307819033277020992506810498360274379623803281552026097106313065763745638043457420290045462388768775854778580140727484307744857795935951750541474290188935794560295851007701499780913322193667948207404314355420388508241169004996397676419499230692063013816240846686666666958605960055772964537732841348420517555348330182744561765091741510017470530333732875006377523127698126149408085855821466484998685114424052809798233645928535439683777733423421160110028124297960306932665475693732589449976618578072369803606070948520597348815765749227482448968511234782608516276025911372703287487149078045879028789118733480479152254823452614908719186404675904533655523443339336558662379841168998011633403120160486295246126033495453457498398694256408579526191099669658416688553130347628320287187000571857313534192934141248736968601261344417097169201987382655551481092917035058829408402836730620085322281675859612573891794732533609999078251824120214124361758160705024119489604256397825570906452710878539921469031665791352670695947011861033102124463425126904215105857987239029264812399153586871125000151856796293791349744618390833638234982054939472344792505877344734434915024428436836246666810585427570886781025975512815171593430267222472091446349867053749221484741753557108640535440929000338235664599363043347633947908116196385278027519314531942209047141081077306392206583691151575443270795753942977381968941168520774504728654699877783888045180276155809625843443124537317084427345155411367207774013828895769511539319321667410286046611349254485594049349175093139264473909287602133670910561064546623239252717031323069700699396384866350774811483740127579973557391267570567206938657479022827464116395622681167277262835170859530957552120746513509803781724183324349033181414270275242849763604172095995979070451951093156786792943273624559531167457535787338850392174782424618744974135363051500040808110290186509180120749359537452247847538968459175728461430538849897745821004835258121359956906154933815003460465035688428962119798981112085326308934167467315361056638669038696285535998009540992167944018734730885638729526527499838285850822907722421523714901895539272173796933391726480175345352723446911889826141819243873123262928003002759017742021646910758170880234314644646286667876350884249515775096863573090490172697734925092805409068817343596598848274192254066397556946425213029696084502676691285355280099749009806876096812640623023498566824257308315022642228188188693831063190470814287625499012538042640586055804223902864560007944685514267515191621568347173974367568714685110181076828438247787502214522528717484924128509798837373444992479218404425376323723186224641107692179795567476516506256446938466674620959480534367387436298437381530346336065934563161316761754794507364365107436056535379868956222092918426326147791105975103440151149630763784471108819819364707221200966358518100172417925930456433481729294763344069640736565531055667864643541853173228759771696344493543112699507843769556975128124809624939326434296988876095956944312255314381263659875618071193042470767514797295406947076332354686056449313388966373853644810393207670446030531642820822104346154503151260490044744323290364195471784358659756415672030838105485776502126669885355687848077904198369570318343724522955767768651618211291408697457986590016424422242546402322775779671943756215075042876209942869240826207941306439751751663631357319011964740340202688334841037009476590056429023894896772482475379518264410512573362544063338166751658232335105849693122964997486349020918489943471762088290585326704401771765607756373648115179448276431839863094811307349633135424683564172002193115409545988815320690688470543122064446078105915786547877139288065282433743450198056378228389029296727168739680942524644953965840960826403914857688943823113087318254047054989480502865720686236092601250039153977203863127292362601105856007036726612976773974537535413827385119783931786490785940209397770712471750547911818688615366150505753403085988083408161021424553696969426069367906826948174795628903543304029067887638936262882531908193925022877470472052820457743454852581164551936755207163636312618274698055792795585554653384650147730174149502461620386231545336688516781121688966622872791803553550931691021161222164931014513627971776808790821242281271640624597515136687216805277299161693934815135052796680159527780926757759825357987600891093975253661924590027038463932419597414752622102896783305706617628449440821512052468692099841290358915363986921548337580702040694131543372401867564516610890482205864517379240514053338119876162629286813749019791694611143053590758424916802782456162819425803201753852827215748359855033964990838396310781195729672877226442613738450077286609232409922164599237700712112992281054534570540747754833022088094634197591895623003988197558800563333948367364062930054388931145770555765347289968666087165993602354351199038051322603658007870127164991189809886710373969781928225038331365822427304222488040035354789741726364964960284735536976419046012733805104620072853622728463552558141364182092423209640467604257704803278664226965924017372430695400193674234926098029113102142515841687304067894524676070862187994469944338932082769866520822300973190200770949036906296684752802640624421154061750738793687629172811941492813555505534061592440432254975258713494092422743058512566478790996737596733296065003112653359544613017301118933481862822024161449538457066395051056142018617621904510131632586379887609786181878172104288376143957096088796047579672881256502362927855611723860029783380299496325163785397260067190908305720710890634714496969786903319277670689622214086465732437385157226812920321442721668464414366154550936029263740127787739394060855574591426819819390231632108617208491505737546108131144833205473803695886107440710455179667447880348978330008267752315604097248734155648971787420404127801582326737036301504464385185254310100293383294135386065192712295944839109652192720101553259970996813978588451559047567662419270489406321369322148829841613575874401490233586320224863634759217392255761110353593499791524981182545898772580259427892957826362335487619898536364803020731866841984528203913657355605343730652666743314149707161444627719330797654911997286058936051025050440616862182215227708473582821093876517080164526567509505989953943146203242176605853643026271961151838778171262266224938781752836914732090145277549019044889124879720151195584532038097179026113203472320829300057028118158192527260934080448609556035010544344311945612199010791585337461659962067315582447967814837432016167260557802923855761839952066860768147088270364849514619414918899164154771047927970017289035661767994425582169869710003869918745043726793816966086032362127176818335944509819321581845534870405776014586759916740540622864108088674781385785818089028583792906624827080050968005545626213257594119457270229022088996106036666661603622156812761376789181019091758141026405523508623850231212166222007949882165707700178589994340641946492083282727337458477707264548738827565777788923082841534372347347657365327157772312995408624931089323892753795904402787861473380472513436160086339151111863443980146411522949712514058545608047382615356221018526295148291596907507940943570433875712012483693791890500177632088811676858932800495266657875037248857342856718814498856261599581393523814381230963793812593134153327593492681389861038846476724971382574404858049171465516142136337632746768307377758416962098002149619375093480901337811796966069101779716931712621242232565013628861319462744601952528612956075270759386062689547549553204706515277072107485757734525873034605553294080131500509439243057353697432582790293445445448733882817869004494459624639279498238561190164581224055132110992131096202298696602377060167235493369690080122051790900778214998350326912226991298763395159452362331841150618101125194626116226134976667645218870427376945650737210649763836592293717988665037552042578463964304756753614835240592077934475895424850179422216731824753745190945631594336461729654446197733576432939164673795872230335493034530390401718059901197482311442235919208927810251722919400708374121620925856927709214892326838187828724220411627539659070831461419849282043918806337173476697111028483449746997102145201939255914148323780415441076116844829928135772398422795116496123053834702946758435216370961381770057616991401775002213611093708219547349380999215459343670198026660102749451053593455165000097197065428534902340239914311185977764939783713369618484875910426316234242843073371734421210291063005721189200333965033990755744072579802909886773278392335086682450519098573376124117123804094727028824761511173255463075892630724392764695922913276522484171597689111027351834225993904705612873088727872488654364056811720392361589291933788759874454293704615056957006947686861901637815018594659388807097362119278345284920216011538826895912894579147661640155617016519052923868964890012637963385999810618156962350931221679197750726853772004906465836480291033426050303589316338921779057424546188225035045897640874051741802893635359666404057744682952017965866933652412061480327560792444072166971476049124634885983715458619839615972084306964433832389887075130656894628546082623763706741874496295583846396115171945869947134503981762978556975512377897718811473128943093748160598252376517499279946393278580001695589056488530070531335171443362766358921805972701807114994806920838386415478383459223629931658078208951167974448296114031818649100775563948158247131616399173618592587126483572168488677342609987098758975861531643282910560447877133265811560085270067447234173296676303530881295047318562724736819626338216071529067766850382697491505038613263191819666717290804245306686567348804689288261193017248998478747574562365306962427852188702400230426904720474956363034054093020328929449618163325811194606676653982831643289615179965020014081865212699753951238698959267561285189716184174020247833838106376393682688287338084005335084314136785035920604862084097087031329518797914361330672324234179449851679900168375563614173988539622473820830346655248582292712503917566662784462983582646006335179730130896101346132698528528277649259566095156520223729941635766352512175474774039901936198213105008738296712719646099567530952864876438589573677676545193910124200549159481367407358125940614159262089176464618458208620876987497513459236524554328566439856461392459834661903125661855145788042853549590560645721173196527706906843755189064427737206991228293126288744879008757994573723618418859518343192257763539255780859069204764623411003019114874059357185179320166514260797516870776046932115530502024371072871383358496587759136940240734919437675130280502983252487096044337562440778048874961776266309588843595250646877789735464994935194114251799346238798463766849413782533094534329778433454282482400054692624539562291981749096232326942486670851710163773983130557193945862513164123830971004949192577969452456658791310490999366115685456389205319585706345465085236886985809287228777273142470655043359928720626408233367937528764322816524752734565271018746051962645594049123991208804431553320093237325557396277937221415635052735639685225963401877583932943317278906443339933548689338790129535628027081397445318450131298162073509865930849180288613398035540461937052158011124480523106086646018132391784660573768375513628066880612994234045925809522201328428495277833324600401870026372448575520596511323717550726221186975087144776061110056836507999284551837403161979122057940799658624969484814153494719421222970232864488311856056741770695105747224150890583327853122391182078809513567883564785984092281808974563035333259292592434645990058232111314635629924138420678438357572102178531508560531888505389988505405712836017475124341287030530280742725338742924085671243983096576469247292108538746555673896591488667608782668818624133927669117774929742670176821027227578924946446292222723118016384919836499693561085528517986649652259607258231237162447840821562972225776514196750583879455219773585506668017390303165113022346505199782400853048120301246350352491622048163543718636538690235562755114212490260791169504121056567533636561908015399240191167408500967976560591125917253939581791098345662616523726305862822425998050319984536798482920509110454502967305543232975376393161287831768606593123956699804852417612656174214031487904767225459879323198190443151765359954576177456792730786172010887154329158873052914462877770254193672747853231675057972903021699087813537735142127883051849753453570817331106140684744443753771526588150522006771359712307971205237260507076928098154908117944859076295024749962061218786893067643311831953593394914209636565622468834282453817708970695760298915311243029688580957339649199159360612408594437289133610544560201443659541030327254426044591856509833875294736830252518579720263478531338551613927687722741364396155386723782151947536811000341179785360366498598779968333570148229818995735647674637721808785669894609708452958246597646078285396300229841522084896375880157259991783639752189231781666184500938853573478965728874679622725846423564121338750341660833592607186455328599295410787741795404538262011949813813019284243743059662950236509167871674182167134974468808214641667375293494844953012450079575354669211616449000148658927243617230493838539828798796158272017893492511462272458866276718666461330520785910631466032793585005085613386096349585392393193018945508813370076725454166110728549112720791147857983361844904151590214575724360257677338074042651701628410894696020921767597532276964099978411109225993414165813678998633449054092222756481636763223662270587449945608877958055531400374774359250505007110904104243856191836983147061607379509692712572216362794278533684647930273585045316628049116571292342415966055121547167025411691252134235509755270908179754278263903152572586184950098836829781930652989078447740961921416073579298595819553145503957440123433495841562018614592187774893814537425663862836315990225210993162996303943458627009090077986191980983733152309710675763634433321516527391764555085607135674346051326114419841684373377610994167577186386047501608582348178496875900162097163329641105896180953062893662242465206433067041754265701936917436870831883366969452504249834614561067424092351205842416583498110186924778900542676805245360059649707921289999818712083658692021710723400899124768529453588688957099324187260888707620629723227794771339295620162448600112863285788493375524250316025373350432383411667977198124249772975597081004494360826501519914351534268972215877621350251718663274524594859251615551081771003362885594568361318338609613414607179848679435902504655211087885686617714954498274663508928507925909609265648560512896429438814342524572670016695286751360427798283166600904135258032364006919370631094406700050229619921449940678742489465227970336102538928029664394195395301444610794188357357984704428284486622454786098361107277344323143028939024678352604430124029782682229395477887832887760112536218574800054808938632323537772450511910158935617074561201891095896139618138911452293668203658428332618849649109581380894689486423816099103756829131194305488530058530333142608433961785894538804288018083275652025605317852520847743898300159750056439123356022671148075112070289044075031829940370802810325320379469868960701071675870266827305943912089102601983776118536261581409420185440717888161643526594471536784225429768478042418027067585658265686306775875739777748896484529134767967765478925870761885874437254538707148058487931805033160862591863230799905129292047767141877271488394676999317496706526133722177423284676584886455818205148316429096103159638248404735425134285266868795519358266531649297701640887352545915737116731088011458391697140810040612911683692086286248199414791904256173310183421227705712385083036777127565831616974217961648297016914155788171980167087917377388078819101906470858060277216812805025557620152451513878500790697997743191769455418200303637870418048271186914624372409824531981360355737523894218683180844434120390228266920991007586078002628321536373820787781769225366426300122020978350903747231418360502689613663071927937716192616068620623585893948693767351487048217097917245639338177243124095563557226249066927623980897600830620667621537002023151708513460915860561113228454139126725036458780520825678141621152586334863031442692777480673517324999752399127678054342447598395951237683557983564646231940929128687126609981366388812542168748156041568016535544789784314321775105913547617222950020137867647625138600546928430501060893099593825268224673825165173480496986638175338151390764436478021447637511840618330094765735040277150983014121211361095300423179816936216410355821595343234831088491477854133767573302953565233654257808638193344891255707256717846782007871219869374031675639969369233884535643593124642270438064282961530321387878468428138718976469317807030412596723531646174435233333392742699446542535591920843044998945549821785261926795687053018677980859553398860482986424663396381121524889820081867958234862969689856651491775162993171477832150092414859005378872444133119517566427814874406223393615520147895654642751391360440198360278517188635999326318658724005414741751314249223788733473019508181716914451104604633662994832896993909939787369834242089433060721287629884161295441741251516979994249876925818122838961517193049965544483875323300692844075648303206827243030175247825795446460841142905219153324738591455367306129145036143009880764942509827078432696607704681144367845741809102614405475908194420957854422915953593457851370525307228050540530405551469397778907270327964293426403341815071291699692247533651301538020386503203963818326912298414523354395502926834611841051312960269000871179756868084386296812400655336735554596090681685840708956488479820576177790184296052532449073054059373621365268441953775005831941147260269818005913733088396039764822221439819235370397812743581181478593878856613863806688614349612349628834158128800148848891145561551637300775695531675316694555011735005354600039884206065911257486569422716084393540624506399970790193376814665119628409888644461214085783571394788773900845635604079792399568313181856099819777457371729160945273160838848465441341575365713315222414017722864405499695158941846327255018612649511586396330645351043906407694786175257589821008389048514053868837648449159786485440559027112889336400642262820098751561070563101048087566143300670735110700870915382644027474987409869740415379015085628825596422889848010217309571323105626434888263664542205212170037423520065792319867676972406380285180235906719565009948642331771050273773050290199747077933251597159152735946226215626769584341163141136443458675785853414316142090406719648989818796239328503492277617645406788935000997183066806698734108197087744529864681569028569083703960840024920207904099205846077655434333265704149383487929054321922990748975097462733103870635239620735574519449959051868342640689034512049711237417083667973376717714629722103700404913394173069431722115616487456477773783813860639116598526420921247760707169321887865090672180202325033209883297006024150041634319332502791377556473334891672863545811635524572660606411603951754853684298968477737893219254855993384680469665250840321375139500410769968332204536620149076126206914834135049955831096832763986049015709774013653414339387091676941229923825436802058985392775269664784309307608282842144834030683766763587454318706420453547720153211708346572043469976216448556433192694161768217148763537666642363563217497074982568624856077979340650547518382495159525485751614891201574343955905395863631632257323037477534211449186066618349549129465511033535566902304919239369880205691569460565921748443028120529628145686768292772943939649424066848710823693430666291037987495750973841106145801670310254277487420336413180634435987689988371421274025349088245125943987253186250143750088973753124212304913749577769226245916950950855389004490083528798767283147733029701648382424312667516857630059456737982470191171072844562695845863614742751481861097147545783267389518317677100285861399568920497919153264214026628121977531292067673715049662057824277776188068993539414083830628268174174070370063916035495270052722395497412170845646682355566794312025069344103236524843038134435393160866962961013932035229070576715743422618107427838052102519755871263485241633577701464713224401036413129270823563384412701950004966032990805325827380176414105335070520705939577647103674031995027074390639465548212754657552497227026083167941662289596100569246204120686790165769783555942612624296289034192018701086172505937916822596782689440750559586865809574797430347801328567307999967487090868411903140017043023190106273333611428530052126954319394073394683331407217804087798434660193813973991122534763904582801496702763772748278039046923470458952360872652750297442838139067272705720961012078881412576347670738298276919313038711487558009507922178251011883075873116240049413802917871130552867105935054544362611702308008529795031905677031237177241692109933252324422035022043284755991614205953910280215317712710155316856446202220238182486794928710142627557410005282125837140978381563557708707426643856506598024177158602468271475299738210840751482324501384890318728756207199516171280575377064283996048798884526917335298005011951899906846712601620560146761986443231604885180455107932902842965128896899072287791116338477179184241018908267240846051827724045289445840580209247091860514668609836169699271431759054850220441997376912803665794114469216061802988537728290186322577519558865162124222028996033516139682406274764437933563488304451832075559634778753886708277034207326594894273582477768787297260345634285270569514749066584858919115265172333388701325201339956203249201157565348195463363817715496731032357897771534216975158735486999527492516389574730625844923249373585027104766750099972045804950788327915275285358668985972755466015421367891085727646225198705141079990152561098413745766083449693846959427980220646845719202121932652831667393734832804826983743453881879048821534381971396769617284393882597510816581253020259818934706949186938675219980019794248603447093117381529922360663596266563110510538958333708532808002849952288549266615919102029619073551392689845720278366713765315866514069746772346309675170314610042753151141822475763128335157535058352739520211348742732579049178607010725521964390163750323817512843637537466468449545629152221361622089631433241138317601093665771541096757350736993797470508657332723661948155670110812453314555073252673905768232756505233882910101659684921256586079445149448087540457364986355556153285713266044998365741357450922781904198110508747658569798588023294775621801437258095916658882412657041332342280911547573688960650736048671332890268259736501175156034082793439139972283840338283418560940537099260345614083832052286843575330774979372600448762134850981173732944797873741678298258275179993722892687752704840817632255183939080209906122003137780587425347826167861334123479665306295627255695146712438621822730660077464120393689833991988260543721383618425881883913662273042212984733624914516732480150681223965129557952075971217512960939579264544637002524649359374408033618806302175575749865505727406536379057390047207913886609923291363429957916964949110239848632575078165316354556788147487993180426584957578806689948412621364429629940647607968597554532986921577921521946098937891369856092207468394846586392107461221471055634506212910253417049214105831596499149695111413216130235993019933169767898603547817539029820354276533892314623022315971556041872956861097596905543773195905848634576110447588896616431725861987736089942880559204648846613626711902025067760191236718018958719957529280438264378559264621366692657304904119072642806340599996013947210214325624817306979599947911753764246291569649368791269560960505321042457127844055256370621371138809634573341448132676476274045095159651183600453770151583795547337846100455107406036867767178797961098556957469842637448603876159294445464457968521323237505573347420536572622708306892108062890490154565297804966933442516722987338517532704256451105312929404117625744155802943324493735445945928186451822919401283910494697800464227899734304153593059371346722295175194878543914597359334217721848192524775275212318236458607538356729769569455550994487261391235136957611602817130915435417329704702766544370542577285393708260824338306751019949345675875523813865742513226556319926699678544570119050266408992614960199297814243322790292934508580903548335224361819947202359484615784048135363353550837559406314888721784402090272445917103614635641327655517916703255632457158967150875873989333762665205185721078968023562523554629947781131217501080809157439547365110733309252080207973510184189830210857631779127734829477280236740667356176662222419906440614523379116523973982821303160876644008094250012240331731584141650970354153092216206448837226956002763921754164336177418424674783018484318974751997318613502295594528249335121852806119793707367960685754713814657312644706490591195109686544862549330889781768526504598809065253538722015903403047648829972356773375822807282385132829761856180027975817391759154643481604880020014759913686500091043788034554303912648243503511916326867299485229489044856315448587895585052966974647539109065072337887804743966150273860848558099943678536097597011521084361829843439585350830225338318990092462101412311838982588428775064834673654482207196211753286016207261591244497599221432139978689460225374472793588138459365100683391361251871654260290726897195155357868123543459474022965644322101077405660478788946068806605575517241831731482049120853552893135488717322993001627978083524280056967070100408004956802917479849856297565878266423741356887164930012389992699283162459277588831292604200072760460447940894571122212602227868076489082145488784403517892080172297822573957671401300083195768197582534844962499802110973060959766260810455450996401622588477335032647722750129276194599193340237302744783554434248501356780456695746061989842035360704604312382248780678443965553036524432197287442598773041570756563347020104354924922850198342603391156043897445641711008765367249334762786937376687960262968539068682713676794115576310681581715768325854322428959702715098710022735739297084501161265213854316440860598115276394037187202905968996940671857280028122914354809678649638550812796788908545643039902526166141051252472283975003999675416673569976108875782948249586402029491141246659237797984135066725453804069036411195005081016242390940066304776084362418885596784446529313718592691960470956455815024161699884528397322041810078268622546162736796208802754322570969225774782053601270458069422749868708036745541722945418992034512378150633454998652196003924358094200995745855107988462761737729611350683751761322205463297316296981733569772290409092582204050308470317233866928137029454980881987799866971509954411094753570650327299350245299245743946149086848034619762417054215408785924826907758161277850542418492951554293437787880763060584956901058268989217564568977832477121967803612295850809582726721338641232638924655488901823150527842447546451566395035414282414025109364146019842546327227694886401153102570765746012047766435147965131612730377514943957776898117262568739200975440548555476583730717397345178764009341774379212849204704252479109562674878134210672541685789860342424788569372994059040907795486670583665068205165925614526681422701281671103444235432324285949020182886049469571674140664489089523972605933895874751805426790063443095350655898758701665951487229046880935580559145284362711745835074370242407173282356055072916944752029069309916290565230972136257486866127894924970169256461854956782925479495148168363185532736299077311531489330146778579585071850415168180646175843856173345387890029356700780415099228156979280539117805864173195091841213623720176264930786705973716175233707753745469872965280220095554918736613770147272552717596512687709176970436985671144437585475105821122468272467993520147093732807153369056975206027266186991855684037308866028696062460578456508856161426344293182804065996205249533495580705133931028728758008805349650787103774956087202239067695642546671752710341122114520296744387521132937132340597226886598803734033173759816981567892484145797165352089653622891517030449345338798908793466041812550216874243094263390473645605421018595406430374784866139347714860490646867942960314426404426028932628445624623550649085421142203256631404182353325214085722491829678855878134715638757694084471267554693649838170883418914233328892354575116810987373065128304823603339523612628396888301881208381727133319215102829901819449837677282876511151615499672539158525485829236597475015168529734280532793540786826409153159852532816278167499589690271770445377123695835250839475120798138268654558731877828881366651558573751659322129640519055515709843906324211034124825800493074282936857376256600977985497386725135393232312081078031854013089937917538687444638023599160969452554234631785150260133858917826824263326185317086870250878733993520444499984674441469439368014937818610408462074163232076966803079103934791840981412503933472104814288153296639499716708981893699680577669362403763478353754497573131038833528764426521681202350180927253038290662895999859203103949980321864675581554058699222305416963320995312025629673789039047662057854725159216933091282329492716907419946281986113052522772048705796446130876897467063267674416013479418349293060523406709852777699827479818061347183949686631145897637395214159352375138219114549498191868339739980344144728446692726321876569642848935722789737232533089690495717703901846066514617715776930758905156359530223417244028008121600454785614440215310667301951160528615392332472678558218299622926135643473809548030315589000137398156145790863733432229509395199990540074035957520330852279673343824784436237268253001520323061144782271430415232647509143124480928305142659245889682670835644311709970940060736112045926564501403138998504059611969831188146536500516537374551273363629344589655106701795350434325419789757978282488659118808503967042428403003236547419444777356160505007644571006901950432317917083608393250021895339634960847134195246699893315015929715907516661662172728564432310135367469466555387620359308666576811264696711455501713435956528051571822901788046162134745863712608878808646513124457025700255285399353360155435585479183645150327873881059213399597050318080322431307230264677616464264633846354001007476201955771579802800771570384549865729129195926114405144986025423248514105808019854454973603845880209530462006835820591880219295986423406145045243337842717677577348723020432008922118069994372612495920657971485993247533576207849018361872196757551252679429377556966312492700423242360606655456933954024724876907786812684326293808217974340054491366455638559169680187905234086729841499658379354281622868463300204957470668098781690153343111375398325130372875788321155595860417659780833051235342710081977811263861968966667843074980144753274206817233389901162654212088186700760149268725689711081284852958016375781024996483152177926473893667804380682888368326234986113582714893102053603191266323238960680816460842404663139053894310855521184889267458434752992374119175314718261410170025251534052604069098944596312650151466641999201548586111999988734728410026716974661057778003891463568731915407813122966496138993094129841134145046377838014271254615787271894519260192475732319913708700294591606252820472015571993436408125211943103127220136343018427297846109257937883839098733194231769545647250902396121500819192079272577096613764818926064257965718348029062873444846608548493487893394137902838026986540169014778879955167319190244162025752060674469528317196346334872833743496817770798484134295253193735447730147112209439928151386211397795993149484615790195096370484180634863063622871457135171150544661198111257102887399733597141451485808624908570501868280294820462674291573810945649860977802949138571564424864946735527026201260358174977862026140907476890075020677761926268775981366992819142137716417894898553159482050187292334977103109437489496324594929783085972903160008908972846828443111198598991538706413423190216961386595927411062459872387677145691186477320012316514313590292103266638271419386128511400069696034847278914768340371070645879780015897653863257482302858505021251380390204247590313257817694563095983554443404874521307924364473356687837832239243626307715901105523910375837669684167021626793351217247278256858321089163181961791418421122301194387283423902314114250273322153656390207850371285334643956161888373751021121054798849421494899878912690935887656337899812289504407129223334451251872910408351673930456164127374354116190737561981355344421146374242113435263446448386244385679512463687344198151926169699913408311035044615683526366578065707572392860030848683143258748271054700314498472860107647503974668113308599002445871421948696005398747199826566360285891475722365247081577581388335617491295063989798166180575127107506944228317432365218963443529237194200300776380019552371786303078814474146550001793298783184885199237157749128610266096404009380599666705017488261754536947876599385095786571805201265655793667783686548145704871585561682527790725599739578366081505833640235125735899737384220000506518890952599497781921681982861345842314657626594813575068187377098071914322678854287630787083012073140629619366661655747848265885117233693212689522220926960219112841245057554350354376817590442103201494958684678223248048590810195159022507337443734334265387858926602188118430384886799163265287632263487322188697281171940666177538152610327381206782926253674788235830335633190433801480935493336907235506250151532084170475035997016219115407097208233980921464188523923879915590963594719052303941932313115843347304106598231048995294857759162088238083031653238950113044714263688460100047134864222991980245053578032242238400767440769591027170484281890351279279554306618253323022551811804007444109814694885385723091956014580257900824970539708268028587989623586993915863120032157465733883322926267062053365839163078266092196660643780319379118248649023997953692607835048319661661514915713583238809595284260151686904729463272622656684920201493548409632989636258194782151347765151958973902701032395412565811731048695187893605165626218684482719337055284184015128048410693904597822528722523431907845825387045046228099865565094402248361718661224567076849809311347945181926619804867311382779104173466389578861598397204538090715770865777061305695981356146032790147012797965350987611888133732845056992210140048153238421046898393161656379408349971500041691982247175959192374177699229800361863910659221743646128952069713321263405438675917710123382744802377952629317855897931086436201527242399750465613273886079503836344337801492622697692419695265153949163433340241397849547301125458820679097184125213299078447207786599172238681008946443467079518509690611242139284180355357014197361302612214073222354075216663379262843187444104623306762520049065434403397626059538594885783552083863269017652181866759074025570481827814909220369697912149595794947923620944613721641319501951859342414391389982571984697705658086163844505629223584232266058404579783424391732935661199962481066722526787384204145360664509256862385656070717178540606378367026836478801455257873184119241295068969420298326350827940027462187662803620140922198229679204897419658244441087378819755717160403226115695501508894069411434088183687235478663950083518772426875497899247759416127604904987761450727499095424666575048734847044832413961389660361758070977112892452771379906205999779893488790203780642588911683133686543958105592287136435885449127299804479365471410541609886944098535025128797058254438457841634558136194800541006106753349176072881405878162232526787625645534815389802912160279025441398537382916054671435728142116929093103595297871443618987063130678964203428728567128968781000601870069830676887294343187376895533254964375964207703873423789472607883016471935333482973994253509084250263525708046265430367939414437898048922897170131215292222011314677265002094692385882316248299086506353372713060425372783100826862108174919832333524608785076905295913027086818690768769206400097489531972280666537169052221214107690492765261245170073492961662345114788183600322098457875709731750388445526294620511531509800899117176265980026133529228216551526425631163968173941256081927126400431344679907755397459449887025211552959320533246655733967909273033389080456837335049048650482302512748740466108787373488745328063842788143491937854012718819144611534911551646417006745764108422221725213967788715793825790965093182317722536638179610498058107211821964450168336369170416696342346878686230797776135474295771515148861093032472924354115989007122533662911218982172155006923639297868802829313898259695724144105030969899090587395679807417646524787173711203268613559760803728552559275442965278055243494372140884831994934264172089134854694226568491491027575305901870388382031591563232798267619557531957430930354981404753694476957807746428589575966859322101774210041017258735531337251148285028868751999921092303822838072840311808326235096986942231203801033596324549622035182949636800025708682594803835042999095909019140271845464852078682522172931826895719009311534706402644663855976996728007540423164504907731355791135340629553214097775536904260273422702825661738531218804818519848249584258671852569347156374183370559398662443330787820943359288653816317896398079213454291653685841147387664310161202717624436875982533047339333073443410198329385071710931301353492081302772071047399407515307980304882809092101461239729004750321613488366648914915053960817457196708468696051847360652312153723006358605259452705716562466226881930822855236625279044535683067144068706570653920174087812015268539079943610051264337965040565084616618008312973552800105255748104022582183227960279425275409611013621526048573075602789825322968227624283501965581697051627803402125721148096538150077981372927510161158733703775276553203892746545147537836225259073162476407249439328263433379889026301388531041049508542923487189850912710258038336909189709091638730215460774604455116215447911910371581323809617030832634533691053031733624445452966494774720557263647920398113669087939871100782307140513588793612962729222967788190929781111324426238968835634326310745842179447276336844352660918385332514146753663903013619923930468830837150065473058768985846353366183379908375534234263400211487257022025984968460428482186473040711875174062210117532657650318215884470107469469356362328459113517246766324900302725792371819773409614237936623580641147745097599086533491771203535835085219438489211536530734895647189937320389296003993654863851454742503239342733587528623400641865585825714498812370749980428134904559594723052985507848342339688564064633491625744724434423087289796790109746890088809497212453237137663532883228123101895753007318970620131114040315925013261228121890484731764653827206220071179058848546842320476240354481250948964233225210519243193061983057459338193902131417679885793299342243555090174724136275646731115026583092622188494917640886449527686396748457177228063933982178314847700585754019619818043191917180578335017083296960891918103210788621620029019792594353305326346898799680430800327744588093084448104350894804711006691251395183864817683046122771320755652187851273587024580850886394663679636950584762679725805825518635870440470744947946514667351649138116298809179289649605932813081310958936019907717199427027717260394279600712742895417134712275039714809933951624694349518373052554254492564965677380217901916547214278291262360106062882868091885952207122201837647780939404474839223405540365192950552795356949675589960748927406689908897164380455496671601512926407855907642329894861115859972721425168773070879286024461993457109593428345603116513703663859762726279258383384100291736113589714054361928596516522115561737337500383084407393281299054719459567849118870258335316808241208614979185476091666706059870899628794415741564220716734572207091552975106270466349476940070090502126065361111035106414632522692062109624678391754754511473062762589566361853890986520636464398270252683167246503718041271894092797862842735091855289133890256978733457457475889382826529844226618557625960349704756747036809310682352142344859469890869081401381239219608706586471308643949687153886070751424009443107573873841755883224232689773950959396750737489390275873016050236084092110096778098681452324695668408866285178224641063415429724737909886642257809349209847047766575017944931119412032978064946660806348719444487454360526196504663434919835733013977337097536405531028338032610328112818174606009396655501299770147968486715143685222909978905168672397828128397624514389653690189832841155250069712189780081867094267948950089763556065259282216515533293954845715543525658465716173034874855847222316230873585021519577754492616319488127450038774565298138236791286106038878268195312519477622288143049284108936747028382932947884821873612534649461325039812940636862234229620392740563999800485313518353559130568025718999752816169044083980628614527662855785623355474759742902459919813085374236052460156273905353878851691761986685717983744845918262299443410713618843338037966170491126590426370969479505722475518193259516823758798842077115119346837318069247887197587006563839622197670947561542169929277636895675101825289188592336865884852679297695072499988863062922493862219003887321187648522461348175163746312379807759549370949216667037892956861506847676976997750110924325650654593938999055575586802686919701822875198483480636987806739739072421485951556315953890563962035951633281716226370642460786702535448711099120285351381404129765041302837376874095783632192617428937170559616720913594501140540352396393111496266878398967060184093774567877298035768865887485559708101188588768130256670155732014538930129709498163308135387754030477622845203128482329523395232137160008678576228505348291438104222808692947430445061730493984223710090444397379338132013987966543651492979058031651232562601954829187376225740331647121855528896289456783839621167158954974711368448028449308680129931852533659345652228132863942840626809675308527927748482831966304356653713999943487251932579834290328610951679281419783106188350673519378711342934040248107117499646997945748640575829885863583787454922837222646510519668530662153794168429251049821299663755877084711293977384583198845427507658288381705146080456067904129470520916351202591898493540168685235326484586946362293370591689578993878098124069425011172545691846011632971763299664562636562192137674402071741830773458420361335685845325432545430428611811305206661995640094720762981586214496181991771011997718840429079326388540674341195405343545911457032207049047236751086527008161188672044516413583757558927586032487651444585413693052882076452465631116833297383898590494512668724243740448746041465650911206850884214942791115882971231303822368264235960044641260671762346561204794241092820546032693294986189954220950798984458965102205491304088112715357066078252208893233235370693128772515792272397623204564381522683043697554736026871269758618053382148618882587956438255410345128964596584779006607123311149034353405616843511542711438874568046670576482108140409042804866256958407629059278603668303068291357508668163297090932233251561191707112992169720787723075946693954842681467248219524396725535828154627721196137118330572324373653874155686020894974752306861712964654978428887879861223976173083954730268865282218032120760773109582827139145268626739407923037877978683223583705731831662075662097542178531690684163149055231292333269841104430881369254514728065810998352090503791793815860467101165608238640224058751952599389698812590407986067968022352891377481501930857062614327966380942632173523161745207655481212814863310768898985931266878643064875226139737444856810980026390106621486999186885678531469827282071104844445402191406307719146625507988745062857751478457798880100178038776620181038942021379186203380033425404997521956597017644936059626314246824203476494361732139089362511275163850739556936352272728696389205641522349525376178516442542557643265684025010482077429371488083154060700931560043655855723839719593256744630482152451758670063460519316115219394250883162543323021215866012374549633491554428975954516695041086202158295847967172777177258768987758930004562301671584242347631113655267767729323104964603276020097361130614785193822831069556043195657908107061173242341937701792558977800658928469972943515802762086398659245726739810960623271919637492319952459980116846489119030581439876358524269223278788627477453334282072702761959855622522207422215912758458454723221495004707841611505061669550324348774093525013131475659304051097951056469297535625338383017711475082229585694779867532194806327812419534797539343538224613199450513619983317169825116615036457424660716056460664327494848449305825027825449100721006167889463546098117701983572861077354185056530978637062730129382391150576967300697684985160166767409081768567589469803419169830596453093620864007717908351254496400340314370195766202762813751263703388815474516949398625891861043120562613127933311400055913537330221921411469759709046673337709367228533237822318490153966030572761158863732075226309994319522967235771791144470887657111219688557151673501317035937508623520699924176167080564800765728463151478754783530084891513559729718817261652757642613217572339005474746640095325734234688398610071739150296373533271382422355879540018759024313152112989446991982204399618962635924215708751151252714334073653745325016876715212013302723811244846941289621478795340540063798498187973619720346348639477171666510915920387276507312863575870889548929299307598128038843159603947156108516959185395983835339970526784953294034306689394086132510234377570647904083958448366194791467450707444535301491023209184255937460501731706757013292332317061590342642260349317401173171864951535930020169868892578384141899265225492253023559539129808530489473860157929037576862141812098674019400953582856413187763927610751704315685187582462912955217676538575391609124206417735914259064039966572577883869325047954033474139599148406504047972629183797821253768917675682803333274518815733948519384080514613668312895521918880209169380613279013454542574403328953026684831034555578529451683992525525047655701333314416729183706050871870352939607823692312551450100312629140677554153423896835425162039784801955171381535712186941011187912640941488555078884486802481404620702205626683885853558518424889930935124258271883451582125390054248975246604299117022071778767530799780425370227352904439851927621768477478277983762924704659468003001031122787482296006878688492907384433019631800543950034485670889575471038287822579295902202613200367513314374875561123673747582030141170875842909469755473289188133589484665884812311118953137182271096836130876400297492814797942506944120861371250627658228659486725333182244925472247102763006810314262030543859551831782347528067404522905175604218447285571926296393922831890190569409126015193488461723327473544209468127487284581889248790089372068039113903580253918559393876627540420955791686737107794651486518530198111926283695152449283308083092034149715102547965575121592999782301978426209161941177992563460759509800698160814364359995841322622922103750562497200379414213693404564727618020190586126545508489874010953710681797837906808789896209042456340372346606259662113883862226863186855289802457442551439788514105121060342179794299927524695888046013256585422306617777668924943423871992150722060296180726986723987203703872588283012730189981490705900857559051852376324162602363802752957998233729762210716328170024562661591633732153300301025782067572946262330623262880041388629353694599699280295048944704852740053982296748232451242793236911967262989452194315374218837082723413214778156776789527164819784773658656305726234990339351971000056758866441535102012207280291502913268706872962958088452811027974205443792629182678429224375110379806030482680114157663386518585774232895468075005189433051963335665425118744029538438585598053068185655719728036106862090484503692132782724946341200969976907349026351491028517113891183651994045453645361847231939108030485913237125437864803608396007090278945344905335356119124393841679411391919254367786206457160733681781323398961525005812124479454251765877432390570307384618700384199048659483120920802683113694143323229549112243234340994619158174690182674082882447896977177576154857858173018202455374954643194339510453162242411480742030801848731540883855410188780105529850554117937542377322655481261109754646410008850439691272684359283043002464555221146076618853446995599250594100718948315588142810999884194140406746946248484872366515455964163662867355670291321150162199228038566198709613186776793156153632740784328886387801483607345891232318698536929490477802449836169448535413233279524412341363773629996931841294545635645585311449333063296270783557234167418498279514657764738094630786672110825122399472148776882094402638726541227542074933426001785929406996900902514586097668711694476456583560768308924274133293150872279448381437533590490427420177296367460953049990651254482801767368441454638835798471625330115342828979487688908682682826838470910808641684990081164862037284836973580415842537947709258954230397304231849494178998633546110674341060985604513838575793063705652541867435680503763937567932430692383864168185420264363274588703591553985796806520020747853724939010647657955045232548206927956633479239197580483762845089148876259964528649464911024779023662681855693916147571469815361405113267263879815885513165863924647945169027250493378599093765978196282183082684330915826951197882008783138522444923651721804755814110354385613355297889431612557007827389344653428413228159436936919074981485925211409577910923832816519638358102850213549928345825068997113595266366075214194592555806776897459800938259461812413053744209447511970623006694678360885449119083498435667212538377206311182146911756261389041027031990872927488012197455756563476087941111293068166742776497966264700480914075337759407782736442365182346012879977902865751905508360072684085743054274078463751964682691501878187992808252657664677478147627438735702891062794161384918521584611938594935599807919710605625753182299599693813804583564922639350246892578434289372449980951026708825444729521958179244198952133631399810006253936069722855054408732861158174000807942420942382486547395647617840882989753006555411769882384757334481508959384878594966974124009101482146782532772657608607165679327089047166763412490135721355958696307376538664511917447903295931884717402485908154409555514361489523008967991839172962086826721697429487711969858285552693617575194721593077894868284785996812272625834281497559800392104225399521714490743701365965601366003713704885737971440329611676437615628778750888801047977496373431192546416102541189521911493400039441775244617034047462832814910817431159764871223499933610237558812634171409884639908781583256985124751292297186019476680978893203730171945575573292313231961431918799775478218606292427247152650550270816686836457947941968372120327026848106136236164043531043966931406575188034179635138032048252345182574695832838094870365906306541810544018923527500117342166512521526055765074283663598543865125999102137427010532604934205540694812504008318805476173028952364441608780214225043750754557613195428684675627783502448059160243268725793695184340628167076631939483431262916577871265877723746342304241147135634949335474783255918840658256253350381195583237514489211069400243443944440017456311019335968758104494610685229749910203214633425111058539335263606093665678377761351890265881026729112339952159399128607491681276687594396936418895435298975842135102005332072914440978254520565139845614003938689649181268798444971075441112999348167190378841813522893661808252186917522964207116341248631214963608910480298495414317008861083277093686348566344698409947359253368053717556657334058003116955508062022144245714863337937151557530083209010655415881377910929559150684369150701995703006025879107068209877229698766670557865991931713912298020912888538277122022417818394585281335113366764431302345683186965210691506233349956962521314573839829700084346151414019294992058400962663613652511517224220476965574762334150280993123751845104822658821378061511025236471644130153334122883736825174905962830291445920947943442867880775002778053707826682124309497896966719413544889971706876045370813661140732140393992163907969256423770322955713246793803355783677251613918919311147640761957300483881709318477221941946564226217729150192254550754338462338707821672049062641668952675035093222631714166672979374940141120615835562836787453002664355993891523492093274594105332558593210507616229377212428838368299472152141330014837080473685604400243071438306168778601802956600659437454948686572110054529092645935377929209454137476328725683401563599316006967553265332449177134642926119961200235331720148976719093863638625255989532837447923710599871653100499014940742587354042979192296696769058647855514842125200617354000080999150696859747853003694233419204933751864561653512224125074646113803980363726038276480306104299866559084963824406321166715570101525549599847748029537702704810463792184781549702572380173083388067530710834774482771057937377521177585916138563188017773762739592839590923253770402581118619003769698017434979377235416059784260483420557759444769458846485454268462506165095583169083250985286201357259317347424087495146812157418774614776654936517997501712488802402732103408896076426296232565595746941278316806293636308771074132171326651050742932644842059633590104950840244401492676495903323206347670293544885170607468614385704204203843127028011324784043012457202768168489018956639290885334321650762279275375952070317691710394264727109504842872007503218296387624762657458487839765237215680621602864666200510904327271834489391931996625946510364827701825139482156264851837472034722046450333400125382431984811262535580298433246668496476496656133498434382107851239110477280322389519689094146209438435060109900666435640541601412915771359979977289744355211643211601497604374510937716293194858954383403891155134477246916570093421209264167644350449695387635836215944123542575085202521635733578046938236265301128937155082760894128275015893958624681642328706919324510293813407046947986204500895026052825210836160186834517607059081606063023816890869099257839426442127558475919022413817600561204059922735665711903964492208091580522181271324551309508867418658123917849581410547921029685876349225526386163084929120410712245334719480966818338578478625706267893761383450193113254923248254254473298880427016941504264715250996850427952571013262565753843026856256643620452083797195849786098285258370546320727112695707385703371420552804495867651342565240557835323708582854563532671452097548789367040222972031281853666513517320582920443068565643327143371268347158576021762156016447422831536611342660112021581601903388166254508218450183550826987477748058753117061563609269740598093706789117590504493473059964176564476298380885617741545900188913363136049215228740962575690164917085769277335580391382642177118822586292739277087804026235515295294117452657275965829683637435936185427519125393400890228054743555772195848223692528243970141297135427692666110456212417271935095322545703610845276941357047798665158052054680763842090178439838191645505910413448301340529864255237685369086528566878329263449051818972213239195444821016320515358002244564527249869278582126652343109757391976922894219292379447084912946378577219888839731229105835634250542740810623415825463351798610505315601164894912847703807438578830218624144600551626274466498540533949348876950024612648784081119093078482353040101199194227543043038978545021841960323526034757834634064361416295469234130577188045645183202823335253953421159954088490666131213805989134374571491489910309404787977910076599897105633864147870340300953647829993572521011723521390836929325049586173129642226350344177358633301477732530950770095322442810945657299986920138456034770794165219477855543389042384912048390270324303976741709263126860576321553577259059800628571135834419914867181671748237244200001655097112013771815368957724286912550440696726501184959352710046830149877454426935306442789662806493690745986388365942359721233802873696021951354609254693460298603867029895454690727257051321834057799542175520764532052099276952444670676452592621981495751972602156217873668460244872201812191978692875907078358087983253769984833825531554118660468451476532055359198586339421965482731035936725556497297372214350650726002514603618015926365220528293958917171716965612352976565658431630420965500591997102193584674277097451624032394033737504535755192519839304549490025367698788075605973805125111102998524118995184686385457265964328275487464363403468804663340441710126954829144461046353940308932626907401574126341703190968956933014116715121708101893830343767760644632564201523010292012621898882380197566776738584645845740464459223417343459734589143290733913860336553623620312695164151928098317293051260416702361143964275549557263393955574817005464921744165391842267661718478260984447918158699879689326531366242352833987955582251866701498875072036224504965643481633185686329242003680241546284194756036041829175240325055677206897269381488945453128858330526780607174052863698437268847786036267038368508398215803723911656151084977262519789400805089614743113700039571886153435046894259023233531355490632551813844153180269320095183305502530308658952131707811774421499885735071896726858360490004611471156855391371981855555587163942480383517567585812961049970182904404860859403242677416459916954670253022543961204936488033405111562476290078233135122815255447555028597706769950511708470931553101608494072771148856958202258044358023503107392254903045315308415221546127414950926598165546984486518302861978937380807832327472862628085248609455837344418138555426183598168614417735669840121922450472579375049979902126240746161943760562196806644392038017343927604456459246396826843323390960739501131281474882114008602223963450012609766790999001147128026892311354972420445641939123092943242985408903878702789494523359674658705671184409928339130147900495400029224601929628715050653928966896053446917282792906163289083493205020796504261081810787557959964617665023643607392486933352505040033070605811684610472919978829890572692095939970361949655405209318857438741351885289448502923894917356837381881255416001613208970459276824638385995874478089613215725564792069846614086024032996765983551207567254428362046392695072188457921495526788643027791633165053681249793007264641581487525805702552562474019887024419014748540452477198241829733668971179889283749544462255044708389183194441429451511037991357239912863038041769498781653463431115919942938213623799642485426480906345158051220547309426982586122380462672957441579015379013831266367716643546202083169267239935481792326625005096761037499837996620562230489626065683126564361399429114513166262337970151643617587482534595840697157270577451431792859183227065483065699200115137726243020030396583324330630674383706879816124379034621597377421615620732255802542333259256787721588200244227001332225067683936445616055548007490612977993410234473041432366491873625409173003123313492590506055783057851137851622992220512466546978956028475666691092680934970807826954292786337781391759096156853906217244218716411820198857863223709478956337259117342337366911000733828228679239875022472133632127117677093647001546228111740527912391020342437580876592680000767431862290954364190552264073960865547866965301798039204514901170287787538932244195820368743422219572688323130449111800758237338630963279250731148851778507854167329330510582878023214933869523831479299624329517984976244287051428337079404550158082885978612569204434663542361754067262053198783692779387506888113192466220403981810725502428254957216367243237395719999728913686672790402148526197929304337682033673543254309595551735672734529411011026840570210503287862264318958438184694122083019189999693296814636774347419597634403496334405928153382161126986710418231078981669077513350750819900110495457478750715416222860597764401955446825242263361741928981722082117555642360606530461418308380814524774405615229331408611237637621664222976759588472111199606471419063981804644904098689216086262057490565736944694047628898611249381244717106858720358095149564866781879554010568974953671106687870751736517133576012128151070735954621485852622252918672745609883568869182254318809746630183561453591412086826015842645880150097151548124172390353179001596458443918635235002104233969536158415890991926364510387092900178713618350028476945496538463098278059099032744131972029827620546206401272570133658417586564865603504782646438667877758166318998984309143376847292361799584583927959541010756548331162500758268670438621965576712638551298917880014426558542683414618873553608620499339295414232801453668652231480268485907712473406042464567992037992081083220513927416536767188037298166675781420964296858409741095206766844180683141939842314543244526790742133904137317859555048181728011452541375280429211816470107650349252399980965263270772233064982910541264151396983596321162680945018504993553237577952490706375278155567305132951505026231377586949213260107785881806503346857158191482082629049055513775626402279510947720290954167808214449372943221326966932307212422427279301995295084934716293480708123454333745580317014835941281106596127637216011853941808114948872000569546315229688321116799972943536879987999332767389752416717583036546661366015828462338258672658491879538568953325782823994810574690180034294948993097015180910681147857655096229787712012195803394457528781143177723493311416947564937133859306863423836682159394788407366252123367337739361169852895047828565734163369550800382807226167603654528686382171480376825596694958957485554477959998613507620834108878562704707682050825145048673446292720814346970781403405272583183637089813775558431266875264222878230154208533755443988334912128707241563167223532408004908581461399333413332973372379949112124082375166751314363921598754934848696637705088447220548072811229421204024926142971306181573461654202521300515428373137510300900165319840224107975595457296553796208666052925977936502217045655129046229172698886324696299825536524169922875928975918666458999403748070468812612958918897171626665095436674856669167807868383976506621951925607555421603176227161305843389349689865126819294288443905932722353477080349417341981802645149734587415552669614627575432446786237446271898399430111964134529139007332668589977799040221928743639405253435711776200235767641901732322936765417219189810788280201460555593231786824030969557529672040072392212819964860402492207928430338260652811164705073687334814425205286410523556514551498569280428990021886657372163877051121547356610467820527259408780448081595821839046551677803121917617348673769341736850809137857106104251880896925267890049348934012108426925784510568175440436383679246390139788893950049141255821517610098491787794111794633414424152073759330026231120662717339833572140971414887029687572095951302416285363966022463489728892432314983233631724820162821751787534682210498919546595226871969789934622241203641639292195777992105088692922904375018981635000840557226725843936639418389579040390304978165092063071517877359152963990382277109377501677485412270381121066928209201239745310985480823076513799528581540388193490853845627711959823399878576879048646744982140686259064032801017838785669294039773663385078110489299745494569709731294054812086289980839410237889272517670347399805548882070426352698143612652972439636146449191991383119625370403240760803520560066533546268116455962029911301787511515241496842352597334705362091650229362171520208190189283128726788809227548918469120681445635814112082260754520781257268173005086178506542517193315861881203489165995363494796889096098682184259803327219645771386495344721639762108486966956121743536208434891990409849833589569667465538270190362952494542402723210360202503843214152274526299479809346815874741921583752214480263839502105722135232755530136711548693090054600011351605476158193512833510894565830447449867660456385816346886351322875092408384569715590120087007200387513684364118599989608061642489846529819048778918673739495575751113193604190904748194253237679086391184684269990084832522035644951322970149415690671667517252655179024199813231466745998969443597468802020537706237325654159891968000974035520612577438862571788941760943827912160682633999521082584358115476350390697061208532034982662626655090432868878972189270576026096221472170770949316781026490454461605867397083673468408568875500280152963506040591336641478344371115430534856846945927380498636966258044880596571132110290631121507878426539865499949559203178125937582849708058606573428395873544407403468205865483577161260901537415585999098561518107023986099028794650375395285779894852780919730548822490959191677304437061147029868501128319897653043607466657086171365970751094430806489289029867873229713294577909936826384042533559398007890254294333576764485820645555689816898536742968169569323098869724337287280897214949664586306236850601749638300470366123271031684435601723735796727605526172117066015891258783062319314088402431497983440421067301373616856303773164398600025227253576325555504246653975239547253416488246165015834800682265672564769370099531077117006439366069211307054821889916295449550601218931831817581640167946035186191737622439184901558628002261621158576081749968257228993522065689092343089658302437780424099574737587325995009070514777557444970474976156911340543745201857608207268583513406653399959664656103276213011474172802528239146701653697313550524475987470511580572773788748952084694856006934233278533118888772534714575806293519885047892726354918446678131706992107998240618244633877159105029243900982451608108989726565736428427013522100043194566116025103020082103517436350691260470802583517443662196410244385230054348933059433751337672822798792322770018207858419378265434723880314857336224234368524864901862366862731920366411018053189391790265680327247910843692917837410752066536372265565183477237501191104449374125791662399753778009698918597106415845423772599340283176891684184817716938009828763345843225815745346157781305882650834295190042063047166894718901452223137332352565564744879617815610176229918122168260269703184372731599395726234881547661361461841242368598402525399943226823542482836923616605333280872998767751570337581993828410681510399168115147179563190932283555207977879611858621860043909189434647407337286952264753242308494530755847267916856218139201353078535014915035596720817602379048504501690399294865568688981219945936241754661867468936409398673532594833114038842833344479098931542943802880360459197641463465125830546467354238213884993654075028875475667927238492326611056852324963535813147922309427483166166505343446578289723024036629483031039076164070001824009203862211764105475818415834359415676095889004249024161339604806676165375947831703947178413269700171928319630905974015155317716555667730850595133177785970388747895503903442879004200995604698868480824914628798123737992916251923803623742737048047301166452490323869896977893827273294446272508394968151300430529025488794972372376740881798085749518331455123713919228908002001069353572577129995589034292187900281996396604168016540496113052901531218895825143472870870974630113132863851020752110284681495597554447806387097430590774387220902015275278051668672569707997499771156230477280921207223399856294069120166947276492916857842157890622407668770876027900121498505264428995763837661499372656723099778145646683443956040477399668331680356177567352978281085438838100433303066907419248163459496811753943854631165280347323346603474947340880994962638550141228668445741006176362310152772099164473599419749736727334827456816993893850781485016741564753762590205603575423853318789161619120545726209371085912109136263820741413220161677386546528191844083682088633633987781025257943135641669622941264875611226702059345456252242948002959473072331773157303566460808913357263793945693753774638420584405320856013324716412684846112593952212954450273116436097473611456290138443175384589288771907126712478395669281846699656855895869874435573158990447048011943560669651902290085722013823198857681968548311539796389887138075984967968654545336681126293609908535698560942996684626574485426943644112455317052854581959410984796713086964384999615157705574295134310998574311265908996181663045908534112909708674122620136885601951287193545262487553533280453180511336168566312906056174495464153172710099692669605341575662735787183581217005773994043837832986844617871993966171202637419630696581948093936611035162446391495442854050919876171592794054885588393866301446594894627975209425003037043427527378959663031766434363307609606769637637902937944620870188451763479281428937917910045046082916187704281841981578551764731537544882570362029073555471435724740659136187759799861803903018973658743326081700488138755961446288880109726944016433504277765664245971624104672458113013504974772464831215576355498333490444850203206426358565358802137555079615742986910141852637464617649241959196183427853128725859106860983707569337299028506593655809285249635811706661555985449065552340325791596185689958041580858253945070498330959886178460145298275688923591349783104088478553708921489920387824034441001629822671256843651639320053221303106819289908281457798679939223961214704027038225841380524118209757803395096234976488150152276409361598955751901548408384798979461906568617777109394347148211398941130793402884866080858875888048992658568497823009493930208808550432573836483523489297030038872335699399775367663983162788029708514932556645699315834122194511855550516424267661301027476430586235193026278853701471224070110346232601747537360810090270890347218065255868941954997184680984632719288529259657414403573696433441719742192186820378465708056067303818830592162195582228421400634985998838451968025224782137223033882182780278718313930085029108052055366153271857170263896502687089095131007074466358918526071308130891395926234505208565291017718623199974652978385423081264765672181787677651407576936738128119150966559446154317698104140958690876730713423272148982068134299894463425217764200218296819811980440638878106020141698900925044920473518029733371009858545288152455797162703995635287686516794147295614796732146251938163465709029344943252136089728402864447677482197983109704137781233877179492021390541362020960368613967914073295048739231779567879714478519135890628910331514327564638299250732785996541274830426012304205250571040760952785713635783417288054755894293353507602547792327364514899776190375061013849389859079948923491756586832272009507999937831029069748858039011222554140623714795036807472042327374768232664764790024459109524926476361453587479886405920607560678343040515688461519557156060044504492378222376936921145360372208736724996179551037119013459911067260557560970486386057900911945643931676934563935187298871962179886586355196442755765487180194732578097742621572350523526593108549816028006015349391981288727913459025483913443207816803906526706350972894866147254446620032316053190352782805360510921500139700480960035601682169221459767373120978315981650942828023807319300802780198083719338629748994954414199558478609341792916371598122914890072150331619049480652733699478388250233817417573237098733650837763076401524939870532063666836008470204065117633044903843934129676374714655925940034939862156008187324683413299312620837216431099411644899561669641479313086997216191455977374224055410987111369923021256869402255881095549918826683947962870904944864478361270543033631050250448521957059618459562080332983158553810108158363763835430590920051077349226918718558756605483900170422158703713685051552343789363253688312886425233129853021517243594435019212254061354407190678938417028292480437297581781421161533030681011968977493648682445577780150738824726534984137099836447099947520501301396437130334244303289118685720847839666007958640336750039002395002041435999312529113672475882166302903580607366454417233842876779805282865559260794888340583987821502667894178991955877149410025089571723373460140696710761001844527911378021512277901218948755532612924334870360989585049769292042335638214886896514667098943945309991469837198732532552786978346349132532487958335905631357050512450380662997776540666300621780719892945455653154119236486732769921002198479473203387679028459635559540678588063214093670389106725688658895980734890580264844359473926681856530276918581851946747023176268516771359570326164316716590647729737860195634915718609464773855223247093656572763473465076127112567746773610098190118157072616480622251843175056898205482257998322882234861186564587917443476232940251877090140361303751974419113383804307918760878725720265950425182984561005460902414107537542772321000980099771264668167171826586756193717764696190385472355737676921779188517104855771445793500725550297575472128448391342341877212368747298546296257240965313944145794652161564585845908102129715570174114733463764344932107775046664207706304139622106240221166582747294755842564665997497228405948115865329955396759814156767235249834813621512447939974359223619069205353547920367020488183243101792200498963710771339140468015135029749422944445910681397557334320818153487609104892334428953381210863524785108306557258903745933393052806349112299874331813175225351755869620472379393271185867394760982245339697841994335812886439998442521466882740700745628933515244686820484471186358675252932212639715006093248975951221631488934864725932695663883572980174082825242713882272257587663486311795046269111588814346582606716300611786992656533781798908571197113708892366143767846794219184121885123386680270300250254031496619646026174119493135281204999980388174141191065789138913742416451205244578175514327212939736481878065538675719069014613700532694870177229080250761191594389303714602712273747015284052417829630373213809707087691794181021503028607334505409311134784027438773924387028995547583156299241654536254743888347428991672726842064019119004809736715562949065848360067535903605934797729648652506661741954819386385214368281089939189741859287355596993394033956416138807607783440749882430636352599061832937692355834704530771423570697703819145724215551673698487891961365809170694117341014019576616576610226778809454575437317356776955687048400713648017119576151120383009594142530893482635877570065107250047850308773562382330841608841278350270844659448135717041845035050273991722487955924639462947244884969141122891037932414336679821694829688821961968105922771957005383941748837892934624889985907207377854538756904468964821944022563962958378034419770072390630952645391491635811920064924416036206011743606305152174528882273860534729114288420644898057990497948488423321097313221897189164434870919531308593756036420222440856715291338238783046747948453608658956388918375208888164421951017515669453618264644039133541524588002644052229717939462984516761613957297660024335615716613498424915149902279864520306002699153017274139147755761926672573016972084273313836722943743558190539606928310952932299018349316607375947368633194715953920597247412987210706182855987322835912810756115678164515480561966146870404113443937221930600226896368146275954899012080841688296520874274206131521268827522298205963605244195205193519452991097646115745857044065774680508339931905308969019836321165635095847167482115037632412246967846245168565497031840048856636475597583275618620312455873551690351176037206356499949751499188673439353947496966679417551469360574567217721642831983441021885834453356149103653046615326468722327133071015809732830455228309961724122902544291948881666859595655821364581657152182902660917478388724091297793008111281650267743958218692582417114301237861106656790899695047925422568276382632400868248180925788118130716555150936376459264710114781339806961754875809483797339330140001577396674089850557331238812332542010795140497021616701441737239149396804955518156647238374217676451216860365353590671779914974154646865968533237237654250108131551549901621340648755026098254957247001515297468467455254794589727223710280304167296932743511616457708679585832865021939266877113669786751109883200897011238217086389189668674887574461126265839286666338997360151941965580008412989511215287201119512393238905191404629528483072908180897164189182452615561299974666544034859616330685554614852613964283244771105173879483904594023996360739807589538174516802162237956569057927970497867055338395701340967432293525130317150879391647902688051939090975899746329394987548761003380237989459771829826242298069002711911501163189371449748357177438617819229271513062967314683185261703749698158780403784603555738661704355987320503259881669465092695936356681341832188765872554114767559400659262670635417536940645453660007161254576726002594172364524658375234254927887892145585218597699220381527793779079985230747611315149318110966789701912940895866129857170203651937215416954999020874189280621600752367497090300507447866017867131985464291151605472557725433773739903246134097893861316686071091643272119613226008139206348728693505014162484340404415847185493392623062721096134308453906964125293630459370865448564745228611580793613256050751888130017972302957756588295236775499173106635911566514207946583468631743504575127273181028341147405242522885605302873001801266928983487635934818528102167295263389784878313092758691128560790505458138479114704800045238534933600143311059827369032239664733242289764215149476317135119072040770341449026746775910296369362361723182434960758457445614769007055623992153362631300464205147288583174852390799997116640130764964544136125622952818453888177158192419643479291295552306150198254110939595713284893199604382155080086034719403216592940643617643217922822352818012593613221246043037001760304636262443182652547864418574208135741375190653379291971530756640478844787443752937442421662032884766019990484473698585952824232903977242105157365898455226315850749932742789383737485289503276455618085187095501575789370335776080060132099593267686177808667413337112529759828274192535486693051567767248385158951391959748140918476825012687001254810502806413137802095807640322735779102426004265279949858545915029830289623390370844689387815537738298893474007312685622575427498450278272399776661752155001898246281955791699933692370375116903704340513384887602615947122239727918554854551306087148290868489442029489602171405828197604165843306743526680775938386092552206882570167787944731396934617271379725770020204197923706661168023310381740293888848378562575769492240731385097149446061972978138746270786543758638433023697603059549707644644252697431450500156306390390125771706710990482804645981725551947147842704289494246305841275259680041350394896017523049915597896088069406104945163405656032811866713206288244535007846392735542309752978475009249707554336651563240802370347957882919328735422970636664949856412591812853331969916022847936846239264053074454003922673083941996225109593617371528266758726053826385433056566237087255654327520308143207973390579484005278212296459125093505803403502307984901764365455498489431233511544688297992306535451490460741404319586733239111323995689802901978015302299053747964069238739635653273887660118452924375052915976732169485572382578909535250314624002361160666959826236046058544026799951320629767589197805461503347988815071999254153572151408419817814811555637804126396062556361079866046775276604040587257421139553564636325823061178650145723260006343579171409379544940570209637503061268977003420823027685302627604773435069474933217829910210552273529552704718224023352160668472320897986652860578929867878398162375539190348495323178261108827243722663616978568290533799216039170386585421071703677266548771590551690066534812509191029757836623207625307770762406962360692707979487813369707250068243616192609359852722289233292194427897479655350021636775518734083333461087241091319089837163222974909075258046805802797465762618973025086456187764378170708718002072966653251342509640340849987062790317038818865296511788350895396573272425933143900561395718129041861424808883225208685603139774993622705798320946841832261709074673102963889242512331150103729303683633446320695207812994204646438814674004271053580372368786753717592959875917111655146541549289633110775239271836886950628647621351214403687081250347383644333064785974872768298957647325196237280068179011815235354682497590263680417828930934124474826599430349130468911438750836344506820164397799897249900615605630315083725497226589500054887172562147400824113869571166302890450880324566827565783662953767734560047633392731596193972204376641158059439322617359216431138981410910519610630349014911777917646023765883177438629761548775284730189774093419632156827797172948077770537413391099138130730784309131265748550489713050347323328216572322048479286932823933359671197417392085362186612592535561686659997870783345774063518825331823953330837149221257938455422027968256253897039001899836589193909255891525457756735880670305820143967902688210466125890637051515104362766206948649954058055818830273703294456434904483653002913729045735407399679201191419074487248594139007252286838899531976973990787544029598965709788620034500164405151443323559551264286078974516189737996634371394138066935380249490908885849302373675915072049450358930317585166589982562820640518785723744399477416943267025292260132139990239633471551250512208432004450698259248363001994652529003802260383207422033199538455459702201907955513027978214186109183616510730024000447737278040742434855423070098968971253239408605682683626645663642634847885867616330709983704522357611908110015052030372042691669785425789492557097535260100861254976639316993436666757472381624484037090712649168726522379116235987816401044685113922072091209384904057504378942374397343049588446210302679623103768023130713891046119990090898465545338218491076162285080376427825077436911622101858003367249932583358022484529109537654163492618585138508483463323651778550245154318374422753284900640296327856648446018717070862693469436989496157821724276498301910378036246396032375659064889379560952309425008525160084445501401127807938212613214917030670334590087486845798106445300575161761603617937544806081369618138218116291790397572401374521774137502916614109056459382971476526185922761674383391164266603265270426428060383214401464061739359154140088934883014748073566373058943763284125132710476970182548782208842252199728465148095836441229159984689913407628753949536162250721843879100620738115023426520628678761253576581310026417528046050037752971532701953779816382410814440479531239527446111680168429650866316782000617959908488987232690024362221340767685962573752196749365908571948423421930112900852234019071067671336834488066691217786450094825347681948543218619495928037311387822718141782213257428413431050347228431182560841358290596697602738986923496352766128321877294258914024477600958306197820452169174395537096777582871339259969280948954200056408516612958023476657420192602236189078305337442346641050056878025746619778940046533512169965467272231690688395910471232801570420794386789797770698322645293959261934463660131099293320090653068826101263022228910223297339748749945231137571887486081112993140197526322025684651582410824473665308234150192200044039077937984679670967543922774520177764328229130633282814790776921490066482612901073559785580457696913944266923573410173074263911557064488315667229783046664101212808915292445644604701078166110356710821241779038431617246278136404758701892822373093999901806748443535773606717441597439491972262344753090254162756650843062942820939117285899403908247162320960135906597870875309900405104525629426961614812638441085069995302742581642224415360987424258822418589959213432057477188714089203195779419201129553898053282620152158200474774983278065303116660706175920574116508682611534380856469312749907813033493756971822256000692011286468631783455125388606623560771361051651149080266239774540558712098157597662889147778313014910619768383139176225380731176888329531130123379692972041654722040103075446447815214995203053268303844055580967669715566314982768103090145829131012909824839012757623921867534470199172867577004060438583916593721372769188687691811819021875162872671915622694689648428285386735719917186632310474323051550767986756172708324705798130596593671624574689813656237364939992518325310857490684493118004530786272885568889347256186494196517124122838598321325127248234419745891764469699269524953033098660238825678669496460181876621007257811282071255622793430662334874026631581761547359492001818802653268014415446550281514694009552119972622413706363149615715972352811195599775497732122125306189449668367230151422630124835737133318994854717100799885586674808767758855208660690509629056083828480437394446577174350491900895103450387008071502916796735615856646447810404800614166913554256262905757249862319033972012493489286606493081528855582657908792963360959849928215201778656944653220715600328672318654780578856711519218861204260471959947335967275222304534184098968960039671267272031455024733388433428474357810570507296585762392280516091599401720963659327383591740922565064191165517330782297200228438318967344549111767439876969529007119105294446131370747547793941115315618950839654136682283322002749960074131369072677122178722680590566543006522901612785999170378412947560169937504128292937079258479219943603262737479967505197380941281934439344896136464357540811100911423028587718307571011823992228321342670649975170617545193866809995085229907840736531111680336172473469874810332539481402372725625339696624081200101082225454915034317639542176270226666451699835703510185836256248982270472056854367771598498309227841649597955842108326440962067002722024412523055259309564232157766922691782774376151926728433911688126765341470756195657817659652364690031463031539809087605880798777809812906921930571257456234900468116794921191575908887720914571612648640356881548641689016931974823494962662906108864544079098258930316141400999385267337618710579963347322718818404220801728486383815083696869963882786017064234278075920389855105180934991349187271239584827411480443685474822759983475864092697600544802714549680895669884282984902041300715857104980615946470677713169888283827236879250383715913996959234749152796402149098275243360284812125110247381476177039727888200030755936097706821426899444189844286918300936931499741056086494896506666757289613058342102173622606891962300699545454275541994240628089083611199650589355771294782198794706163365212263622810032411531396754054712265554116554375116086404747847163158441746346423018018760183645673671739346082770887377933297244249672195038842305234379787380369473026935191477439439650243048784139702497682581059743895300497649138536983129492557083088209920060714666972321518224323193743435789443371589913043504488916636436905560245663507498619813291133960858675185369837249212398206851211061395859992426871405123522012328819756663284575311737961741153974657112432409143129568089962561902507722161521750265732101001123895304042952689051182786941046709596131660352249253821383189888636413827819853844986047358119833674840550055041202953932843448903889318556471462527549405790301855706478955836771529003775854954360461788485119139950486454647032022589721909920262372184208189454229333320195676978838805936870726268863567105908769266557743696692725101000561343543663007447711953740154357369177444275757274461578389806219412275461038626670400473426641942171055732204564642009252395347726039368070935724407446911007955411921148917929566611266234857654285476524559928553214063255185212461264119644957140555053554695170576153249996608072584235921224572856227372928182448677127663877646386452367509145159332782433917469498648693463191185970006489490320553048122002745591433868692001618585703609493771304143887648674018071528443303001618669990831882395120880850874198472727508405152096591562702192445235363700606425553783598064559013930472110570929045844448110564000148295129820368149361898976101223149272352334455097993025272973469769581233746386446509806054873300211059706664196790042490004621608100808811585469400254086442462226533475057925169859669507703094855603164432956688642719490380949818400260399098114188650132944877237254711246105528299459044122518739512481318525320880468138261315727940723613164269066228489263382082345417731107488168888906001147201460806725324783073525293060244049032970326530550794188819192326245210529349262925844845041619328579307457008693119018692383287962611453658077761766939256373804050987137823780384381610986692503273294387112430474033327875768332075475140531871611872804490806557767191794777262651129846163086099104563098703941745188986852160721106134171666908143890478500550598920462686624800019676753588374320216595479488184924058419066565940046624051900948431107127669128108246817709553554328838937113252391959158850487745914481522290520055562709873568597051555971128312635861655100234426073705092531601475829383425183051976454164212106289690633967611341371653852020776468305263170661960555850603625990535392089687338727409220158232091666164532100599421154181143895929112765717595066735084256687640008250556085996774410424263299702289665466339305390843804489895254138567584521759089359994202817053450759756393655513758020252176633393636437540460057255738945535047194695979309268583819965938984647671172759102192047044425778394070710449241319569660156020453573268173235106665219817800811393478076013920057723842334545220519995067893212450045617578464220103169916171550484633216732566054399286596873521390880720719160861768900254799002708456426308057833879805310731883676562735265856181681720966392399155609360991628686403647372885283232650306706504069553918087077680812699404158941988880938464209330695232666449953201888402847935294650296128843182149909793190812677055554322134970076650651309586368974899926186031351986921542952428172616110283779634275692204124628488589228615713938418189258049390111204171919059075166541914304055618149457567582894545227098252813080417253545164620749883718145177132104074776012529238006856942329809599422263681379749020663263592751955187496812883697474367691677690378367568643803259964962232884770582575356749081605614805787008889583053116657008948646523599334612618055484314342352193481717674644174696249553791340955202863532973704399946389749588018136941726346756302831089559850701428299433490212145694371482288975215073719274982591855243279378160567112336326870050553962224572614210129759677590007015555119045470714734428890008006878444926394618373058537378560287094015462303368829867408901268432360690887496562827105628236766838505090409575476406359785359198709434492238046048404316564662337249365403187304938594359441473062470059538427917488409611018101904120772653541041879537630927661859161434898873519484425100174613976767832007792458388404029892595442419762049328961697327156546168666701455126158091881933348877855967162496671152822944112353346491355292086957045245264719087628390705583555837079523915948292306905506844764117042090188915621268030044488647009795294924267199494561270943732576433355118755615510740317960435454635431196085748709043691477271299980146333561779529525699115469949578788708732444731185698719482134068878964595131654472830399910204352582624110131462265655672858249317096599266711707250306450511519859595684516959161550580639473646244017652945552880741903229612429946289676033091124504497484096317523036762975273885361619999123286950546281406789752146771830630339173914779614098416436540625302742843580592736537914266037898237926963797672458125171510217453498349223007291421397480639934811930083318624699703140931944346906308935020646199097688022288398775957952849752999384153395737846717317525687914771537952380891162979381868164463094997263918320291725375277831774682303219402348471447230919663584459789488856566032291569167887198577662322040542953740994862062095792314322325076122146488563700904620659729702019915018037958570212353681045415068917550995387272726252531070830936847474446595923214154645105682490719434222911827325408369622267514803407735229876564675424408674898183059364001320642198063049998627812732124092989500676728391663159056932050897285703058335037836735111837231825777631574325345976505407487243334638203652425565807161840403531824349615110547879456852331290090694512917902615558540347279015494942617242434637882753737548358509630962575530816346756101788273154655438575178964818399871564518030240704652251170062243389878134928425861733261039863840255932682389849999042485631067491815680883538938460817913536644184654031460954595022090905661224672205163466720499058452182786955769853422948310155049486169762936510097851978851328660149575088805279986239065302055090384204493329594584559824272916422997485646160546410971785095644582859334475955243574940458765983651666220169458526653465962352559265708639825480921094935907906378276410756091292791167524295647712142334939877990741762435810373498275221672503562829597451297349119160516212738745257224087724496336568573430169293612861507776874888089486068967126598940645904731577127347395509084060014268773378688090801660994995810721190494566214508344577794082813926566404325056737605765232523552607760319522461359217449140213045911880675058582385136683122207725594806477146131488457012474241442838895168746624441466066312243202658644155948467029456957096115984002185424323079735433181517199621956615519416129413870008908717789315993282103210899241662105976318055386297497542666641079988070533195147174104685278342278549508015411930338051410673998682508806481292526923796019803975923667678397612492302621376164415709120723388109507276616138103647146249690151142161188740293019733860010866120312456303180840304131450547794045461657212512971869553015276950970294872390026311145554843813425836433664708886430775708660388161480337665475822196093640979117154037021322536792046850434859130683147697268419733495190211371867452987179191223560065402560014746937880704361961372397192951675308784763937619272418431778522638779631001497826618397515524857102415232284023046251225445760508634356240822987150552985352273608273142928305824748197915875177115633673790636106848047674337063119952461893058068162016924900108264744570254207312676469876235650115428724370530456566181423917561332867853532233141396565411903311407102463026851406185376665419223025629927257888662960976070962026671618241167945488651521674546501332555337746926877526146681990674447753840951688530753337722457639895438311945598073855772853749442804589600473023581618097057642035143485301143394760520607246469635348171338147245928145077943106333963583828616293208375927253376070371655366154127793342584500374767579643894854606233043068506309478541090615175711889773891441065982500484383794450801361935751047006037384360277207114794176778940434734972023115249601937072695541307821849940762972111796532273676255154812829212081486423532936107697519709149082282483948110589296475062429210050219918311203795396164418651500888769381145628471391545946212572869675890872864078621761154379969644470357075632864593734731149521456369115601510085077646661087906094678131934191917338692029062340782770215391640488664248095074073503944996341138027025411477948460944636401136511053823050116287584061584181068519912206105127339374791898035508362950915343651843985356833779697023945176040973624440561152991020240672057542374171774657975445370633894368163233459722093580039351722127924562093670988665562490228727986945909118995691014723579381089524944466063706841941364143876005648547287761324354302273573484578521941946638766502579154652040302821109623698370148144777402632695387461606024742467667845530125899149387416312381524409480990154955948567181775245452693625148319948641760107872067297767373908808590913459385483107766729414434836248268209485109940056296477163048000267129508473090686437049681100608192236732633479373613251662329677742455144849850215806631209595821472111386749004973648508489314474674710529986307745911376457964125802648690763466128873771335851641101458741835517743891787952636662620300593857721943252323361778331349143010488922615873415414241289571828107472124699190999432876870805725459504155037330302033403964744031640210495213337960855084842905603572308301141331982101194177438010052989707348023555063500725505984433348307922821254822882213301859140850036115320423510047420781884707722615586174951476616481320833335112194672430466007824148380288471230419129217112558801760499992888794192951328704297598056898117777710287072926811663179890720905373628751657240027434896860422300562149709119490447306502702978357397784923444304908986379327145313238060655143471972267341490427310859214758334354330186534723785502773424897253314817637502796783268704129888885854009815474593866412979236066666117958153017780573112938815640817000074929787103455842252495406573808619272025499312768446992242966526780845355825798857722091794823771272698772367015580493500680668794280950531918761536769203718324457253652951679857543563504062156653746912462941674033793806230080830329978170982863446006929286811477938257608818390943035802279853652040312695773750260042300604379248708314848611045679685304428839056387582269750893853586283921478471969845698256956157636598796795692706726607827846796423254770646665492198933157236492812135882591333228636179230351734632022480862407764558405547085185764673827160806742288378844444293729066437696522656973871395882565889409952720210111596078876323943733707263581819035752190007789598134389914243683848904767900181105131785733427997965359133046510655067934879920310887297917825512306836296122253925232255664414460106986696797181020417657391432644513195528892778092437369681756630471950478964837129434681842043095850595610041384677336992880385942149245370394088890863787187372090085081175676421770629082313810005166643674019627697491582793648722116636697595147467536689971343994526860490840225664112693039666968328545301353774380607528794224038457129832312083063941197317939666859308245593780288962398693678653041914133708868461699649076956012890804251843405052816648606013862506532386741723068311758140736587340724696046636415032655524393219537691216056478835114598240952981323428268884796600763820932782994221361615291400674851188344443383182099087195048165849086091574350152873281216183690286854262173190375946312824677354425924885201094366461766162989042677262854390201355767275027202520624303755066332243253383238147790080161380323749834256351885850052556477889053116529943459016054189321121440436627226837072778999865322850452470214973458637172811060821489458705697205730480633039055946424130788617035178458493218406677528504128941005387808795494500266315547271380113496774113537643355755507596068074372310514612632554516710297365056467695285158859633527918094441618228469272214758996130964547463316972792828780662082768325833347583303074707759745956769580087678774822964860440811561750844649598955257398432374048660521481742135848810979825236997245986824815157186547613160250695878750877876575668093341349924295981228707191497597881740634300923015746468748287097562761275938445092415435983158259514773286096832278585238924203598223410853828928849290771833680463658097974764259979568247439450606700138893516364253222555145021234838260363314735337500802306496497069387471801126578468886157195901808036063984997410866572958222188791340959254232856439148300219991193552316108456448199242446170281394409134629779397700640647283361525858317551507961326387034054009023498014574095303051444621049415466969820259559544673453962477871193983124536541246416181912328215772319063986190598185374961122901511909656705631719994983114013159335404974216727525024120570152258613366228199451772744623947118541684933438002305524681970418527205621894677951849511240655477681385418210831264049942908800970818370840071170220112028028126788456250882297049602680915960316333129182830936574003360207941462400610503183983575160201611301895547585442139599495837091335487497178391124167003823742067633804535220707559605285877068633325901899085901771445044685354315281273545919231818950285883189938534327030926774198692198273873037292799682731681793213458409551543523931027369285892055999212276647305250009687684391330625987075997148307162480411430717591649080741552671738595574833589333984138604772319164807899074531147148653653348381248766444079874052484985737035918650065925239848451123692042640270563261542163605162281655634264779793532265367259870122183681698234137380892769823767486732834324445632499574182174276065399477450392409617704700200751179968840577659899031125200897698181072923471141416916159440523636700197748248453644985419016428709949315206877020735901069247142551815162269396400053311213569937992061785219122970935442333133261854839635800468342411520774264027448502899192105421490026022242671626872145366775658791652342090998069213141371288978949488741160147453347782870032542022364734245918424476068026013152288350343570614381021694775732392287834043308528942474056203710046036285481718954374606904285789094125479984603250419392611505700935191595186051257151291406849033181215937653793701432391697520188800566576542222158332842452168035255600316362726060457623155374055861281165062516159272804020217930856793896742338238832300801065999762441621386459144764443259065589400700042271702168924381646812420210866172772443914319582640335453231620467763756815377766280563337897946150048165506209174207160680669823990668247859318932465089241048201367921060597826962947492437542200481029356339327418935094224529304689560578966296576874473530358805756585364174470291530259652041500891620729428263184495609405308702170517218421781439433312253297822270033937333012235672718218981262619300136217765136869540015073755921132110685269901723651530723638917027363377791556072245425308035273904900975678268835578902239842277567467344535351164616786828578381284297656906543596028448582380952183145026495840200489081658692749153212093555521133609144159223289962683951916417114484668122956273008401184084002659967837148992708881399243480623420727093664496709642224344355949385235034573966937445547763225797092658215666445337493226927385796889919622533316693559182752330486074327028428066759528234762821269303125714187141983506515914444127893911300607113722191579392389965181848719995020891098498632604069669454243090160618708088160213726303535052026940466696035869182586214393457345700141351041278687498516157805543697160664870475683756200199270868379323858465279482134769405584706694544485273046305797513355276333828887047249145014466245695964297039651565497508760358883683020502184470148517090373250940630677268088728070599593542363701330847399647024663807763014581866103556257924279492677767255661558465180252817796379892007874475567902536712845439095732751853825702832921571052998675462723153413619430029397354555882767209773558446425814998871134307277121777663374188452319994117497558495349151360578381733765872400022615494497299897480540940057952250697400079638501127206921739808538526238354269271673024159600554495284706326584475998533730192613401071481002043731547465989954823765404814732944457200868728139703142531201247581037025992268496473517455681398311632627522481247431198788263161213976179621818125808903641859669383664348134267082758177340589200511244687058425557273129024407551271848221044344417129425162474229548961828034842625532943480269960525772992137731721349947770391471955692167116020278655890172086232051190599003841523470616768332182615487578052429059026483248968984463931984057487360722215964252300748026263500770214997088508593856663992893396931671009168707377004354451457697867390023423189635390020963443562724533080269854418849783575384656431492890245600500274211432550545532878862036363653339321145749452350362486135462479650758655941564079467768676806567941348998703782155590099840359099888459529832005554713009719115870263284300052470832157998404740927765854704955021379671606172202238183107041986359228592346060000457087480679519512139008493768622162918007774766666548632103256715267185296991187787464182186765938557737356529078078591074846547118707630297629554734973058034557845458493895870018544978243466545361580128470776186123838147527639742467542726228275101403456270193275997095821151278447622194834700409636182484902038771245751021718383066519063344400339755229544485533189526248082193938149654488057984877362149071906280827175520243439680197501773078636583258982052008663364774279222641816006029814599685509548577389730402408528367873508478822783554658238374583813425039743730767091798303724152451425165409945921396572627537497323150372312961401712604741779908878335165264865760492828404781111077261207120578231877017575305494398514949189478300179914501835876693689419136554000675418502714654134033628720941211259062752037149834883857420761495248127145388031871421460110670964028274548369740968864680853993189322003820420966553298487320167409399527642799454031346687619950235870506679771382350195352082373480738312386842079531800629297694817155396819784589901978508494561416086797096462189190120423652466460501227311111093340103741693550556523978296773516238295105542761588912906025538687770484589549143849525914230951806866665241776927903765673170881054559698394372218792987444332504815659774526878949151077472019412255327701512810210632365557146194000874606134615291857672892687896695767224126225933917405691725839176211142658507253835409921864274794656054709611403145902958112345418166187982798658650676685293992305596745800947157696866527993221646461537190337144960063478705547136524494034774118780162097547862540139999951583253929417228654993802767566827734225497776738928186890526632559988453251501093072450543452927315260558305900987555430689519287560698441325351427070922130649844098301298854890532429158839615146943399943967611643436367529302384261981979946615664091361711440669581846332305245790295619860189737936982463939114750248168352113734302177810577028819198286320828106169502137537746340507527721864425131940960227412158295764320574864524064153897037302536908089861275425009768965989846556927174132208888634000692281102606828293321470595872291095861488812435464546840985011615626887579510020733987015331471440685054663953931053348760069739155275752400888095066832831974533013416860087034580686498407160071146787268317807479985109154017599029724709081069897145028452367242217059668317322559075810954405529896469457475975627746166295675309335964479529656696079743522886251958011593867168836313521160366984221932595516798407212969127187655752387158389310781685119186022094216763683514081953205797844064245248075958461475565373480955368217876280474341900408766639363095354006796516072168472050116305421904814972045159684509227786114957218981062338720091334166619552642927077254854996422924517106354734688246190253801586405890700287166614680367568438352863472009737437389248195999716566233563070918800487716084336559027318414390937201382781231296815579399696907688272449896910664155403705269674877647645840673858117449320872501950680416591617355679690519908575134864865037525666475183052039969771632952588808348395010696677304828707896127178370773438084067478893264628772680473405651930229508436969828322146098599130656465336612452868213453268091710923357169769334826804568997064099074017991078456686306260359303487029842081031633239221293632041657803065038889029152213061206951256042937235214998453831139320202092551908183768472829604755531616373198015825428109549048904177106509244655240615916399224767029274946777061929914242153907837236800108082036555972948608903656843951148385243456807386391658702276563349294937219746940209602452524588558008695286213496195996533751081985162947728668295330438840038612232793873334839377991994246915929753553183288964161624461510812269873515511273989687037936559391402083136004406529066166579460870047279396466708567832410187835861515382343798985238794904207185981912535954727510109268657495818476115320632679527490832420347906514463927894734227735149780923075243966786329072168445325418693233553625353077556565435879082866981061124944869969260440326247156624315492282038960631057909018217912773142717258341134931301903447512230007676827360878390214306044284485205106735232628672734343461833285806611841350374469588458039664268149775407313522846490461173673354537375319584373752986358670770210213532400279549519600497898281474133760606955318049701302711827857400332113373982167235130334209776405147878570984308568977341452029830969146569670086093927379350454503538599475776843657329873803790614129116282516388588751244410126757083483186945489857216080684672127891071981091288875230699260650778866794378534921836363672284131138121448644331932594415166680135642995901006450007432342487270344296904989904918576987402475294257387083675830920612609636491014790331887082947416500291247601992776485417882225341144741173079931873219152116017331670934549686903918760290582991217732111805474325650024607435855878741239968879634377328801223503028269697381682645645959470945670863888691700249426556345481796788901075249418501672862424458215999657226256683944323608321302975601827747361524543993647018887456968219397466899707898430520560354750316890669970886960368774240521680253778436431447998575860431959875245316758244020274545746140616382994229628908630930520965582108801894376004427912358404358525581365559322599379105713725658461948424590617800375738589988532731196698475358178353952894375729302629032446317420035230496171825750183830089587176902430696246439127768513057689315435840009208315141065248525105336427482694486838464334439795961759242084870065453594716393182484679360070068417022372733986437191487021890646803246762753599483732445773535305107698087823474364213318628812554014461955011858861540457954418107388770839572193248381822867426396831970585333294472447041677139076373542154307122605466445776598631637149830983058042224442204802995108960411169067208246921068463421651578231771725100611594586779806907270418319533134112982082716179832034983138437156789571579718320518091522010544476814343482164789146589341712405659480971693489601727781477352408012610956482085389285919094755240690610281701463687899508978563770372320976019915131796552625620441718646901296903429627037857605926834839451151265593547623605231702543348738243017630050917125739355474140243251133263468099688694699832572798770263778430485008158488910721893075373517427369050309836133911861356465085161879574274578844693104784234057069509503600607759222843760922405439862799463938208676541624564718907549036127554126232398165707789953104084888659129122587938691378509092099573719053610337270224867699669307926299017798302603368290992378661203793408158087891119861957678463161579450009209012350411462667340028388980362965351644091930021032043537772205559742667090043029539559402725504236762274845273589637054322177208465103875855605867603978473122531612675881442130031473387746136236117989411029246491283417587321509736259985241716626532135574496894197583150188044427821551934406295492241778879587964287204453252265437609419101535052639316483852878454373674111344685982895782830519598437656161633792833183735784765608911191314438118297702535022531091806307394870100465718522142267178628055134013255823362753864355266322474627624316096717709068772485657048878331816729029922782071608971141769882132732470383155961898984053466603657812144967851245733512060453504391945739819616586203942697763306468746839746106619941493593796663869008215866723714851325791508802707047538842656656464364047667063706310674615069274564051739701286375409564544158938395275059914843222761292435633114171282832241932827821862656794690801515529369157620869704761865322681699695523365174539175404922599948949393882368687148757138860369073026600867024429908589778423620617874979049162503216914965231239297193732213921805507637704721418473496193821765732039166055723657892661199006021933875769375741116133361914873808988547234208911063787305435035550893436777949081915784306270277570780612269647937900167428133108687105622112131403749282241767839446365114855115118571913754781540513309143572992920328156991160956393470747416515935712928025963466524543060201794045792771124073193336797631106446075020120007728911554193105808965026729356301316764228788647082573344788493469835078540969927445715035162011627808556226509173767919116528940834161598197391248888753907561136269238976250508126056072834215061976333956939137255744021291853841955676944846547370478405652723236246814259568870594233757783468856753275005277916775085244605425404895666235773871224564414545120651623199535969971271864928486497651247144605995188006612457217305398438303654092487263203632867052473404382408541459853185460634155613080084480460696277140550571620384690623552172972290428165129188573196256184474240758703876879244780882202452933205505446098647461309570587110249002835849673545633277287590695638039115642760460825367033046087453170890307840467321855871941975823893386562375391365463532619126100025166446136361348186783493135886975296431185708883457851503856763408761102334138520732781807457459070660340843886608112090063123037521926697915390168374350687792604341675794725325113086989976284723665648054350201221292751104619984012549545233259262821453950473432969567946438823765681183902611366740372029117840415030953070097668822275392625897227181572586348791711054441573234665156349319995961636873047325909340150401693274109302060880344089412318252374579835240957114727138392900859431117715193345681322507796085781656989459107765252317460967652746029477898623749430070714030208831949277163877422913023350708548573563590255166097675438775230784394456345559091720380441119500545549489440037417556302848651346133422603888167176718527380877992517621532001385873218443357421989805789720604937802921664173397757375605353451888380314742651121631325498766862644723072260543634408778204016748573748835438549869482155117246791335108464267414252726914309464894922553027955658562634400934526524150652916587689584091527798907440070894023302474969179463477917645373424314739652533572335751296574021132531674057987470668486862491420828720396053567748396553810452713262892297861450757138236398349862736098662004200639250618186877752475919208818653742556047067640789889343192477142307869849288680416246621499590014871974855214724722586758652958249420502315851125070062733979406595363885994408055951717243559378569659392899358580306850261841217922273522515174918209857617307904604548508926306881049483187695902865992480833082669522410428799592165268798714603162109645759124994611384666307370230064455034256174421437426906115600313077427819867831662046613197818519149657641777914176803691813467966083350917672520577891441434722409594281465686204082596986196433496032208641605195146770712299125567653851800627208267092700041174533516286073766425847205487553408811157189461909526861576357500106761801439600305301451404851016173066144365669557639053121034338500478836275442313456861171450235519059698316100396398721665344864371321253484635013078443451905351777369790398055081078191564147070966444395306980893326165957313811090101507082997516881196084157318038864231543473652667848121155174710028036306238290033963178645739038651179413080180943671204903216628151371523334182038735106381011738578273688653671389648034685431579781752646142909375130129221168406445184820978797403205520775886730221479956241510717036193819060143876709065179597175657539482498913622902770263725227085974772333206898007406960342518977952679654175177481640110709119252117835874540217868243058284549288866610121625606864162602014315752784662080850416680766471859508197686538481623412344912432738675484759095208406109541796316987233541395676074632040128450473118407289289476994513316977942714711747032573168853984666611015566315392166373268904755600727847454428718477536879475421878099203864368750952389417167397296249048804026304762481469046462781574891993918362001086878198867727482698841957770150476744752972248836440896797995586842246512956581136270063809491560421981043417912844623485732993983805723386818950598988582967842447055531156875436957825016122901446550599785604946294336476605150735818216610074142665976233576378025694083018930436467942348545487674771240826143002153772193613206911911868392593413118599119615947472026769524004051652412275558580704810061745892630450237032156887182013852404131335303000532391885947369809232326674691711489926132502790668477899098753321595679514228350710177085726947429628170931318731802610225985947136213692778075054409079546002704848638251118120962914825797174130942953762345226579410165837295218982730204748330566100113100568910395372251326909981301669902792935214240647843192015487920291997988446201364393324279651609588347555333199402916944630685889026301467247673029237014154091467146879430919504697701951991363436645684364523465446052652135337488216877165043522889535275911890510826433514685921139315119407662585620690078215368764438998916879119574722848021433415447143140274011349742389802737480558693875842851147895713196706476228056761861190014311642987833125746922401384696759701539851613388828641704621701461360457768589870885819495196307162136500148564192762526537381403729566611874979330894518873265073206108739740772078104599832906325155347145735299836501748090501977328227214999245824403384966276145587462261767010530875934290377096870532987782480331848452877985889574076280112546103951879849024602236816830367742740577967861104655114375603959076019217360930683840444103839724490412042448870946130758396204183067761472593263586768664510959375327680216850988972047433089202815541825533539242969225828801900020949976907590665438530462072410901785152950326798494609163857239307321265343001917174868581494916160643121452246611240941969510128783902095645547997080147956770730732637624074773161343065493900774468793050966997775427077908276112686966829321643364596670231376709548342450878858700379825333836145623927427227499897250488187819235018782654070241390596925723001099520816830684010517467834453311086854218085350879297285476827019827510578066540145308699097507723077660149584476202808374203465859921234723089742471367647128223650964087003993050533414035290082534477714613815846491220753664648498004447594257476330280573696389717294016116277290182136819223834467835651376719182747301166883989286727615946628384036659259947923113706261507568592036667960243658820441061693618731696934591008712837233492834067960898094434429310305186613947495046488577971699869609223586292437947216960354281019791172019118962730027048745869117342991708721509148014314354715280447796654986710258513834093880265773179128261621862708518157656873771266446919929656171161098361469088836828004533254343017252985854844073170441143663292790127746317417785742614084146119422437362071707606746226660403436127938972827167655296108863328584717187917523220691126383700657987749057416559386887713905370095432500148166085925916010965531561958637035169862396609099880978454888150425896251718164990478870901575854862746147966891168531005867331845748596258473648475424267869805417941124402090957147100858571038725054698016344023909857450731104681201227590132057293277047240483537465691578314858943681434485316957206702897231924784982916800165011321841440580256142229452108939501970963634690200114925964909895454064229590483520575800952291688992076060155667480874704212599028772015981234913424445666237172611142722920045718443180596188546338623149095401906573692937445041094430927061772850968051805438136059935267893648905375557238059806036642033450751001927457934095699609936950137066248110900284929538940420701328452609323181201862465152247653323993670477089870605381400508308176337559466831227647142091975837273663498447995962112449437766369972435530245479161757728524620436148866149934455302559817434571322967185595750520259215999248099210216556000293393639573614070849910681780259666358267889343337690822017121232019028356250732589290200599247663740627740132616851999762081605162998736294851020375942648765356006465576748057565280960519086507831365105413983972219653638611257733693427077669792383380797388748540173694715779548859314078084807588305587344723771705392929467737109697345088042306696719104040770231578813395999106073141819934822627331735286337614485395918744543680785716509339227028676662701785646508070061899270394194233987348040329578637869250783489993338249578301918558627702020322034979701310736050216460214797270856075437729130314340242611175042938246429259896735928299353358337051490476256389046385919871300900239296191737293680589548890297069077664462721612199630126546737579955661946969983939373697463041512633375101474292139726801655154206407799125082718318028602057470263765465088936416974274733610501779601530116558718876572359338439557231145862097553405592975646650382233581726260732036387060739268611553835445206544634681197683241806509536568345106485345271432421867165188160398397061316662531264338764118569563987637139105221367370520359086646932869034040918023834028278003671531284051569120471824480074576575537092403059486877945790334575144539301673690282024743162261615346319161088701543312767377085770600762050375841107343767912342629031524962444014272204559994569015620701095722389759406761192937967054152245896412635962393456563479585531690431009869236575162626718360406208913018535230309738550386898606476033091553865088160525231260378776061384185344618797978368897835698987655332205123181081565685936438185974593525231199323343869038815047167628719431076140469777974021773188934572883026708619671850907364087034180118524820201178827529570392823510643088591474131992412345617954292090465290082501111146716699453364227093574040814050265066087971877218067745482349991731258514814506396440330003007067757519712028427021299739011814013861942628043582399938481739841294729693180054920439295706880381368993813652234688709318350657867374947666190683277772194023209685400407922546516154723354345171661327911077554844162147185775157105142912621246461872680800503430797097502932209681020621045961058759627507370484829336376813269765127890504654394968151360640726165951815122744224514519251389424598939727300346172744819306489710492985227958919136303406883452775032235140983320514593487494279228558777579806079667903399717694602612077308936612442149057928115970263733256837836005219499802965207345156067551663193420464349115623065957099852912060276580440027963636941713126728198835541971642206393099029180474263248800365261195160726616489142244827886538850593298512289386476012181262985320981766544162183867361075533679690579243244748714912730469972614459898805219382721181526719343027968064111517997307911972463783878737758674290164848898903437279475921972069903606474394298866213018894575711369366938590975874360150078221114913857616104361600557073336770207884751715462700713521350047536031261454915235581734014847071497202068332735603430682413613772551610718318497683086027482732430208639786476714337856384904384642465275997020040453172843500420851792677975214403125402227616360795337460061251254716443911740470745854378600478069929235097433046606347265860931631937822435829130514852739595457972234184232808738862433322606968485396563492212410875760368561341057409403979801362851116705761976587018170782742159731176468274081571368871599313993694153683797143291303607407744215136898534390568814955391434525266450770115746676199920612918029534133689373840247038342349214102344826027143173117907862969371991806735090813679088397129295989890305387626773550736296570679274735412631432082547326956268127853533933163674303732069856483409451429084844828760585326999188601105276987148221504059961486637484279875256657068364942550476677000973256958473935129673964293957374998500433259801783870672569786333603813079399163963766899059150933781846149821223656659111335029584449875651812769796910466699589649537350689824039629771713419695826318013492238860482230209852872033364678178645039763533143844119905748673720708524080361633192092955413427507143503951629854047975153927101828968629066178843653618628809691174972376806080065498851566370150357706507261712970912397384258169849313277700238670234378115667347740233723167377064858296832222956524418040012168792500180095048799092521216093784380887156486418220324943100727756535101822417940794297145906633162212439230909871046889362018756975580970806785258246282989282362988766706628571102953458132628844854940861399089928760463268436763125764868688496952830378356766928131788533082269967015126639033476225285865983943523204412882533653250454300143475398652959791757496366573373480451562099023891934952194935684869115010957935093196435008126776805314054531940890208864630611593602544081890523727977385863006319022152214929674527434995796778695699250661150569890054314679060247391412088136551753647832958218664254494951874177214743842713767346539639144763972418783118000551905888030969692431838148570599266743199249446714027123058828877095120864026106184844813857753164024854621262313617683038255231933743045299424903683018873840266496071594975376523041003189788165889887172517269549683294110334800367245445892854305304705344867222533445817559110274811974068180147705555650718844065514380374983297712733769342743904623564600901023819493933888465419228928644255202646924084347492752798977777885594239601915831994697705812117121338980400986249432328883807743701499154653800582776699557671380559556690456532821695889833107618666179938166532763251006974221038852047571362537194203347640968088563048369523521992687060914637980264441689791222569521073181213739151177655999070489574607470849526681124508502868611747936758872142248849694758130825552887903287393945811393299696409099455638509638223760567071651352534246484747841646078145372182131699817913571807968244408261098195133955685491500668081103967899350235431189769248979700871665814902324608500523398942773789104649555671658152023869647320618284467337728825336664505216314534338948068247760283996330753777853173387292092483299895459069837167166657958797833594371271651746667705455379470726750037588101109623087007046679914898642555045264634327877332739720104058138653935728366708725434134533771301745850849927557643434976033538427229695586523719195836022616861775393111690614351135367159808848047240917819841395515526795811984591982190602558401715269982013294834875580897339819520448166159309075296928347863690274482171603900611399406262219771793919129932961876843473835682927690362994613266439494440546078348487994922854415610788372959440130865429566957915216607586829256575414719009710858621309382157478127661162561959219100191697398790605195807440095354819968869855595186679173277020619786203450359509637548969543354278162167612887320370012126930221644965842746901020073444095023618384232247292660162098794741630516406754523166129111733372096032612148857295603125575835088930819550479577893701693990577409767288133262096759213182587894590685073342658194934969271281395727699083605867443827786714242816572131268380016331387761960768377215175581893382130615929382489037755425348653924934342386369057655457710619750386135536127239022093125764383074199369951305604848883540942998202688836450454370441354494415046691539873199451071709217877181950548909273220381653370430464005089082020633859896745294700553117129653572957282425735121474224636177480418164056902114601875405262411966797862959977875378443141737570774047021102913149573850125146457495284415240127361228471255598616128953819471606985862234113214936514307801838935452644619138145635371947280403819135381740131523623890673836236827453547314840355151892822811688146835325802434098162829995629436084773811408807584072528283423475566800601763786474900642150629813558373473719168621143673205575791522129663201436606037206018172920212914351196646333841240119146261761369394574298723490448261595525269041946543716704667683316924271473596917738810554538362301995272651658577775051454500584227378008110774316650938043949781462188325099078199285732843708556428969862176603604781753587264580574507992497250036557687564856956646245464018031142922683389697679823022123030929967431389696412001599043183829692129529360141527286280820972250057306927358378105168291554395821678604203741713056420534851066393210248731856586154834813693355604110855141782611912661357407960653651783310766928000435405364665498468559374390897488493741233202637448839688114910653859632690862555358126502523862582740759448459024000571388929788397471170302599943072489104487331930834051514071292589214725071106394081254627799993968699365569720680534905347541361726544942457854037268202852145650722648504070831529578348082068450951528997663461575123975638037472647527871842997554542385358994448653887524148277757490709878017665648230978584102137614251995536625523032394819978462240545949177709156453143951628555361403446139036140865717858740255655158612154799629095832830507945663011575659542412019480854753884919135952569423715558455067008573798056434367937355286030103535545369207906325718638791018662352690993822169468573806514387706511505095485727593284329895256220140336924065598453596480174863996439061614053167269773172344064777825819912459226046478073822894765501953529171421460210228272758154025940142990561104576761516069796722435310612247085131970057831270794096502610362378782059885768583666598053713440022773966026807387967741664351378355487348936369130418662921703634231351604419934548175671179596311863569224991019116062927911483621758765764834116269627406085840331839547983229986731468116184064713490787515807543134670282950639019904670277262273058511959259014331370831719483374080800379293238824369881193899230658770285372206231163380787761322024165609172488379415922942099977153686682647674086878935501063067716337734320026272096491649472274428511285930434430995000134083355153746080503996802185286166003900301281276277942106501719782047110687245582718995124884761991090150870889201534353529609408503770459068937360163985445210268236088812536680369136802869978388008002979239882440285331747085304406889460174186031351822830678078727651266790033639501906707095639291418429183206561728492854347215006110696249008112995723833283854452568402868699783072750498711738059178210417054653519876282461504792690722509229802579002079716215118727410992340891592791147842393232568392583922510586743337412992186816804068390682535321589083563593807278730727833846655354159596460624374508859087147387565139432256405374827508766096280543968516436152846886817765841123232837870020905928068345749335940843271451956973449443987802158288507030317627465992392478324843457996069205714269075048982447341711500483231201030462750704088520968274290916648401169017284116901303017530367507314890469156349229044800512770720289775796638734711377704847526645445067998202322336281190965595328134425445735033915353655246502505113471710025116206021802967136043727261497263539213352529621738950923581384549314672417410842687714228245817428842899219766266335825124415395324237192514249251994013163976504915921664363553628595067335642086661751666886868605169532561159832368926484777277727865385502308365461857150142056384423617922027364452958067118920385284331007578285721290345092724380225902812788950953415036141449401948321213039040382173488864808553133242210225055614222741436250905102958405194374724174518872446768536356329016570924060158192292494563508183897236754632665717910960484792145703251618297639250751636786389104828701870824174283736129051403206296241925653833132212799759435664557967894912397699312620903736537663558882438941077436321931155825324918287583688274797272868235452197114861916507928317192162949650362845939614769878448122924877589479075195890368866493950729256405830605087908757477635984377265066204339230064011617937584486159862319640703265019952290960796983731208820492182297920408753075883536400453558642920248257264548795328842606102216257807946009679976190320313923780949129903755203905696235477965090843811690964402880090870365121396959242250637104698602096636530383108180606334017339337964751840837447677772477105306121524140384306915734793147306743171968740356345016676578372686034248816549546662095532069106816082945424788530259476612244821562278464396521834998579938783727449951287634866754379756249300590864634653668044943749791390021503243614765560343003165602499329567183493410864338951322245249565272865457171058694060024734633198217604025289320299631026755602253571697153559253885001126897722412460735090321620555656287992173633042667226193531839667228275380734860009491406814930374966779680611487537836443296146111133869255161402429805867274413996811381030102610437550345748512896581820817743609396280700171070386591096211679120162830643916191562185107956557727703649713377293995451004858033601475438765244635734290238522346590711483745881459545222421344117788421714600868112573976236403240358078854858455411272127425915078920100578017345974910341737171683358534019171058440727757005308448678360925625751289696489761902005392688299578796844229000188650569138974384887003366964347692763966012085612023372163226399627829606800202782947264388062299027894342374390124985494976438162582752130824583600145733609837269493405969201993180311944721172141656800861703579618236644989551894672129612790984481448977972094599969166008003594149269130414776765981513634869768213938953325531358060813261660752747711809198436260275082019643933023483287001852319197411399234900478392722471811392015236551970746661540322946998372935598870626411938909044592340668537660559229316352874660223050564216898564124613062499170879152904895757868249294595656768249594389286119185116896829893032220696627064409731305789078720892681457798889121188762813946605595968049478358749998795313988794424794898763080736734876040141162370908557139967507451587289269629777068230389304046782374264330372480207566275072984258173238825520896490593430563139085994428611885633373869828979685458922204343478092704947926256288021756302677734545022554968232191567745511299398712940455331550627288655034245486397003579292860329536779941599189895207892332399624956619191745384822463637352460203300861245206296428760186362537268815211562161144011992250773743734247882286165387906611038844069854595925830959387530936714888347921222006888377851854071827770319219463520292260552423363875598310669317706425639698964801275360228457867840592421501711485908222132611063739079982049187090218740973193392921508403747116836245603726902587122482820687118440440202508342888908969390546784809311366673209805853448927146734589011408109327839456093936066534177139171021505616413403959656739393077504943251069415581100077733354829755122947433126534907348004030060703500271127013424732641584927450955399484109815487148628961391781398671020876145308520651124956331574536537723657732521521363001818676276027601668512802141132256028600598758260621123364279504927688060195582258711277133812842016343358729422418424479881022778636901900130117284849770436498010423658657796990042306876721212961326719961488102829183009605925539304868504236114899000875079541052886903932046808691103303548981150108722468786164477286983139764056160499725982083968223424722614934450769900696807605271707080270854452126519834944994270268581042644039419552094083914138442044696739422787818459620721550018393648680037758000381531678568473667172846124136653771096136875668963179046373069140948549439518345728643135764591151170185966478989897450696008968135664110427871889571423078306423950961425984215039070857987713416495297564131083395818267353916477894835422784389924081372001205742444459936780664644834751860138144723570917817594170426817012700120933512750080680928713572896478529690239523477925897067214973051971770614544756498260005644961117801508429853530292865615029824082498709651568741957987828370620226134158765544539040643341368280953193157024997027846469576801254149742950553023753903421108662180511864224897863395261612196903016702548245277825198977731942897554594022948808296075098037512772857049328692400244468815964713845579075536116248601354301386094168928145653894368053591339009794606443068976382660591908266592706816972307973139304184730890289117938280710398493967113407150496142851262320759392127074601220787534235190457420007857081475101223220080215864866322798877762646260535608373133903491932996885591159696290423212241344534860168642077568381746575018862909678166612708743354799711465176132095255808283343265046668563443200296463819582878420126244640378592941496873106376268321402981744199407760815940583927122549467110917580368930892280746212594047747635609125410269099851223757329244437289137298320792680105862133690312979413689105607081225925373962610614674318818136228087710626909244856095017741773982304281475010572714086653068461979209572388678505254106585825541153948713391499229177192308819918897523799430375088575770967370444818628152211104497183517662965194376978413662368660297454401044601445153641631380664848856643541387615455991781573258956126387345394221262175852394704403582141295911027446257796862725568084748777328249871074540933019861260214834526823045140334144008931369905242625341324486808803433064538790014883156204161381533824550156861580726657230127843572025061899311152515053228822265969672316211609978639657274546761593042286857906957674755508097459520076434292257255116329334680013451607945626565467137407886441550211225517377129282772241529790615288170691348383720041433320827945692639053632598756583731784653239575882043612444664045994946531798969189347617379998295757830084423884581459092861691543319931324733560854016556840403460553926565786593163564468928998424922231232478216868627790957198617966662025731539264687837576595270759095286302779712469886832710641141516321258375579172408098869324279597441799903291751479909974602056320370067989494876173241417016645400192675267398967074871500693403331478022478857093750588408091445965534264135876102337584828772630707481995081895348607740339098881471013132597284568821725765426995451761394568012471163694338094327438854026105998250749372802208817166944404499137097719594987187378552271821540892460240003268269282186159308192701637549348212123367628071065883717850948923484844759018212747583567387324266662832557242657931346730465242646705060616339919144954473713606097902445943828467242297444360767952832358628562985482015323091899343983889772605536796497811974667631887743865844943205592421180150558414347680530249754614077102005416628473992735154366102533638988548055515773499272818090364767815786334023130922324101173968069793128186458612204602439035014412810838771531426411217906208623890217521575834274077265467240401117688754040060373188953685137119332163416760558123683304593754972520492090713232848560039664651066073510790412987518682468761912529910598201741558923307158752815583729606174710044649515639802544785264668205325159726966209546919411650241056251008007315129150207227198500798044332215246544794719104827482520379444158507756485849212046934117481448523901409018752384612275283181084138933185420502568198174923562263273900647983097817911179095813706342920730755759668627889957139081065075135680396375583625722630869117443739226050166387109979247897095106212908203544030417382497271924113194123243337076578295584866266687697488207949864474968404188188727138205184068530920418391561537268492934896964653505391674142512774957047980989766220676934001154510682331939020672094290628001878832659621392518733992083643870018585941918726717524163979226191322907670230075593484825954616298905530855234333423088468482676310378366202242721043025120826311675541749366076652008718571152024495388332045671544354756807247824974621129931615173744263266888310395350616674713985265321686940394500134205302391139137863720865182521938831968840302245496601941339650883193562462576802710615931158114213570381003270941021389404362459139753527951821471285672316115955322876771021448614867758394944591610379834051222887818925806262826216278650221250928083037268901513152016809062442194461747843933662403441247582606926972908346099464473584886846465849938904591815860873796447169984643340693539411312714300272826853337266885662911775081702088226900708710354453358701514429853954222394615188817386780607557203206839863562635777885290654231174195071479818624188455278288056252713401805831212866596662360517876380559955528808311978160313540976117446296911900995604043698118683482860283610982641816315222274200503463813667573573091501908388255398034232749980525032689279929830053468776724808989666851760935313143077261996746162958507413725372332765219974220755727247348489765761799675076071539625005403137213321344007575080421670619071207298584678861105609518624635147257165612607505431219507355210956858547366421473063424362343404347670666689913017995781159537229918244524573467896126862581219342582501909694683507040247847909454346830344647442190551742981974687415607720556614655393833414042335204167870638922775482620767631443466680933275354848151675939594860533065316605175312421172256080890011361715584437157236225003734330114563911246586513404990360835495793045157685102792883033529142230102907755459210607071271565702880535954129409890685932968395233025663733130158946818096606442878130310027420639242856311083239842063913430541122139171607953192965511446079468898920294238345359181337748579790691562819794892290271284962279684519832874357826953911245769415971906445052282926402030478213411351021505761179177374997904278283749086381721533851327499010312713091593870981694110381073621787874919063826493704248919321019687922747748048968969386732725393458000186882576006345671929284989945970553389095887295102418874408208973092195041101256504062496249326781657679176307085998071249674290772165300878426219773675580197288235202324201987682766063395534838105108673402970016206127669992328358082309996149155056880371106751554324137936893725336211800868969791933250497941135153403288839267220160614046146011182095467339123435589111592423176843438339400534978322893266937185859081800571042992119546129002628537676406406103856417230411772880186079269614885346920321184461006368948425741410006976946624994108771741433406116272770293444735939900726482582394642841799543422878493109709891464807665427933717953706171871014005564292481870941262265723672959556866237678286821945797463912480713137424175238678215632224071413881744282751133168168048892387172633439671856178072696954336564316093759959524996975334553491517413831986675421208736220930128342949358671735078502092756082717571376404757700803836069735029898445921352260064830319545167675828828090542704293514469019093977367665384070644224492257433988097166216982419625048483986041338496094676497961099562798694010014647639263761500152199283491833025808007955358726665579604530049748452533564758738009647034274652552391760134948156145476509913579389165427731828351837989537261251235421678985563434284950825273637543253849525718876352567354128862609858975611579186966652899603027775477032031465836191221406473156557361762172687082849740631731906664683176086804877793825836101084615660864368458300831942086195287876188510896371251396627221744360352086867510419964695230486800314990051096270669165604048515323783150808437894323096194690590604260873921041446596733209184323868643140866381589874363599575056300168296531599673155674084988687427118037651295252073660273572545551329536465087383971470730052780828285497765112438904742725512981209138545868212296117130311224681764511800394272574074271769234210652244959376444065558433521488673559005744503724579752561025538806666336464590039994000053636401071006498692565778359818752237002850462559916363565851109784798763056879019886407803595190814691976912000772607777514524193127832166328884901264654203818329770006419244546748864660619229837587900861901408099406623120116811442554270472503821083396877792638667298550062667814483473608167910267992003331186381362070158060164768927207250419272455554775312027171001592237662795598132568772396338701843037848602185109976544272587682735940947891269794854065073823558046503448770432740272407621116094827641825730758643667494826331345283003034823140952624338541322059167085866298129604311489923468593561660641567926717431162823474509179300174289284753308027441171292153200875286037782068461452861163832768017057094908066102836350334401166544642749167166524943751355460534939491199456271285120997018993833044657360774539437748650881903695477162316118368045368713385280328463002549792887248200656718263921391580506011418804354883274994944949699690099475166998131320800715050067602483470896618035611627020246137267533050986696518236064391913980725333407479318093402352350471550816047696191741503104719081134382506190821576762790191359705596504506952920926644178694080022468748693343082956762956835972112251127109291108955826115083688891484756384502578696894361122307330420428601090736251651554499933508985919320701839676998661592175574932067665478439562987039127238995423254601728201787504804126970110075815553413060287099358116951929461982022386713886601668299739708973071646961649088975796976516900303759981460282744896744026443952693709897185123043772464625826777190306974149401308061279929384415221968440610772977716778000843934252966395696180722716547555191967181826602532444205435516882450727013181691359435041146045882704290150022241443603531226045798903511910713684703052562456080920658918673742496019701394440931870382796099532632613923137175446128044822396107449538025126569937304531648233319169990449513533506508322947532787516926067000568806971782045131027006251071035294252183878170091738772684709081684081669639246831171816958945523977453348087476969051673223638538901324317795015291267806661460481997503906757981886803706455429039177220640120187330370094113186620878975047646246984547740710855705665735061576204419998435573410163088924689070683940914218069464626836972182755461100820768481825128424992308268272956154495676618654377641960332749289778393941878013827355534236139727342421091380690954342125570976473638455680113648653094615039971461038052255029923249188273465766473121726749956312863183479346050504648961359359100501907438304276059304282425423940985231217852215644993293382359266696459816209073615103182189052321176862400922806836904193400472107348595389548256361853126073010399558944565889296688572231706279386387726199140893029575023850634800162583859505716567771443936457912673005296383710446188724478253451900051548051679759388425673702245519968773059874193860769116850920181267373279507672339571977745895123324098153023237534803926699410370063988563807913772636739590064058711286726386601117026304101475465485402593166355712592765667032980607692708473378384848806679035761491840073510253145306436276104938879648480784982773029843753531050195861936596957053212341207851616888467263551475689147133054597347145460640724582447983017944263506807416566840058348620398952927231160321258117128412712905522333826595788268536798440696491876229848295740956718117131478624404907818293494911080052739508504904001694833852914129258038599939392736181704937937086615309964125754032243210282071069005375531918980270460281483598718371227249918926434151430780762611896043601723634362733721157286418312191006985467294750200697869771787518464576354558039557553273166823386126200008221927768825834650235962301968003531289190576978947834667288587918071962227045190017381674221119056127390466251451905345635560381869869578920963546248666201679299673768859010156636046605112945692389993012392244802456411802744831638968315093611372735543150518864437654169758688373031704964370593999464675466594008672975458919387466681620860980829696314425061299014045204046079009826655062870894301482194028076892692483959598823057645186253006622638308729815519873376960047895367272348931936011507809151152211174801337007254356483292496488723516946839196706600237310245747604136248904957453874742141664967991493316074400601565196660659330462991847000687989386378710053864952915695668348389550547257167512041870811951400656566812103139038448393503317399329737083816375661263773576980163794011710890927129193644479222858887750327867555220855836635400369345416114089877264121190403925326311953363528611096717988506045870644384343361634350262990765931030939620461480065605276999315245710988900451662263306757858406058966501970815886847546433807527397087481459350851919605069651591360193343873641348360665062504317554991147116767274050108467984486627374091564131044921295169019368699060108429721790763732359931241656507531789905129170058232249806020480476112656963228397456692797868106346665261777212806741065933153183213607485823370278891978864843780846419783838029061184970309830568034620302081028930633899100652226808199872971839745415022225363636448051983450069945025253914350776509629252584542683682862931428103891871888702725075073183919486922509098466168515733315651794255069009126486647080920996225968113714132832696647839982063803527913172253033832137343918839430226173922397415036533462111067028122615922062339407672066745917790301084824537016497619440716018848293934819062637330848531360491582108898994885402551508026389855576080826635317516751012795560698377782979814008440731667162244635456691511949422394602789283692966303499099654801768063252071846153507170219528672747205273020964687297849667666878762609007938128931408789016652953136721182829428089085480128844463833889015635049502488409793039106973809546038168545939512659534869120067434185597435074886293227740545942393855726789507434828362717724863458664305716582231975865379300533983544614350067059345321061731693118119851813467769465295185799101706848205943561609104489570772371229927455145920805396662423960352946580821349227506509559948805530568125459930124744896133947720131093800100232633484485130160355625911386254076479046636224280200688065062534646591866894189128081514250915847550695912934386055608710412632218850801671073121877968459733141070541198206962750044573939354891479724534372805325457567510381799054861047440674657641381107335944186646506274344877581795941382136965142497194253696611045385831231910721747108269521507279809288815402762921336446411726792311389763287054475295442090141509843084439618804692541447515259694181421645161527165650931849837676212363434770059418736908713194319150151333886779741624852352995926215232440904576786498145315134284698410152796021510722007183260605483580103235788828530092785772417905579144344137482175355183912728445657883513473110727962535860614748858774921025504112829094703516343894994027155737470009277172015188287818389967781102237176116899770218991456664266982952493149324332938964682060397861040504165927385984971565067768604244498245374113514809079964756224869900636109027482369568464321978642715212464512975495142640133909265601609077070208755442525886102884490322050406389821094305781513128155873255237940302892764929210847280072696336693419456532402226867721157033585513815166867246026750877866676929177893280809662168369963168035933093107932240834780846485704361147363695598455789369575849180372848005026039081318480708850157989747937193103653380767266174386597234429824058681579694658495988095011244265389852661618329088370331945903265398545211444476017804717065643661430489423267539714240536542631934800428976551993707708043364584310881930691838420927612074343069266128214381460089969290081367172286015231212572679087592444897030430534226467124417387676047287998507883014732023018057483099769096960426558359484744255124492160885432241904588768641704827192851012449251229771140408251231711905249448351786704730671590473975755206795911432940218661994722084641078064615099696950488327050780904504758008874799126411952930366177765041923035484106069896982665550593494850364560412589012022809917869141981020816697664042479124186122744334117604050356274596496341530458737798061276700693176156829541417229754749496113628362437934183408576995092344620872125081366581055151102622374267873749356393699311275750289586374739562765390313590295832000633365088920645625021565164091780109408907537927270483539347052022291520158610718229705157935937057352810938160926350322174860992492431227245869461261155791867304982479975852620159524220710034862093669945168900652441919185057667785551247343622033174252780105875917942742850136486321411473651386548174168263572427890943869315569153976355990370224362970518294913900369206597183483092728523784998620705938133019790211450111337978726310695600551389963605096675544262055686159678727867317094453643708572291475879706661015847873788806694939107190698568070208284644968014586313752519919066374121569220376824518139369255960517062030808274617087261659981008327915172921347660925856320646361256325812129819846385858210570793570162310376530664711236311063126419135035817470648856372294372864987339491457889140184389542582177400514300416719542950584258325135436611081765979406015290544940817738599264588009231622750257689303118344619232862859942383916578484687067862883885385299418896973401059474931148572391015201694205767228207002348311905486116672826689195921058658047454675764782444008301749858298248282635318640698710950463587690423648721399490612219508822536220882408436179875457031876922922789275108424055415341723821679132131346019790223624539080244745203264007758914458512572741683369948625074229449335007584235334820781458781614324904551288206786610248413144268159067778653774477047517518474711779803384829737542371219518591973454403244918633428108043043879889184776896971303361034726674182904808523731752034759760020368656797612879684152188978187431672128392455948358035432454117834323852892113572756976291419407736443350826497829491377317263225440001220740635462574025150179243986954484525080718917437835584197063933438092102808773913301111256561398192702152588744217851969375631403445067229133632122550117668930145395010479395436002038466588212434318265006638703605159880814910174456823249131109838695632992885185750093331016103188369436028080671652960067513131180737222802821524421336143067665998601523861972586111109728075396273774854823328973085196420204813268355699226438192594338846032978177089291766107228619607351685961020106889614605267885432183521808102228616752494281433782464409265556780592736749783800220535962005962429326918214040613445930001348210651159121743780455170084006467791062074726917297158541908926997342184613096735815962876152117325696865166110730332693880806876288435708962008586779895725695176106982193324487384538438257778022061583335114693695847625528965347452636115537161473962189034161993644059900664381091861918200550965222699771827860423614444407053000796531354055522166006563026927004923683100068748814851609656447767775510460441341884934243572161466381201799168742270114817041999343232225739472934861423812257841915016424255454882006891980964690914494895204987824355549670454297117495662723907859237653314080697132369112043435778758541239815554860162120325243921250820375050936169208494094393443097832127851343263460927166301950106898684868242069426175828519132059171263026533408171614408029880379155248776964779781784003749530474856454093059373422777262855579881167967638955578136464327440751902688988532669912794339787434508318367427519961061619351609468437326925575602321729748663198710860821283480336867614396732818809905845407562888901129050497268465848906172991118863507981965464479995046592722582482579120514014342952786560510062560335308812807350655508959654750653252184522086452654764817831002104749270842611766599840359298932534857990671032609828218567822308639432073657712334898999891027864411650343061134574939187994299017257253893896202640261952654210125437418727021872702628789874289770228678383930464553641089586253140706452366096786455141565390838765314970003981159039983831540059539998540052896611724452422151602327614161795504710601290026102216370170445899168299640780034763516958014904474117630113032172115998056717102388866223744119241187225775988205729977988952034681435258434012087732268292695769958448087407541875439379599076174901869383950257434959069175208912923108604345746602805650955138218270400102299371444270549835590678518522792594063340226234691799939349317264822869207872222084534756941551751790653165020329173524060108022127831998996124470590764065946271133334425795934485657365742022572266837838667415206793002484063490793244534220593703100020163689201160292797639281641596648294293773499925342552985296960932179235266675975932894388303657428230978600969945207211078293277659501956411150400588806367165522350208070684624909623680814235104697362650529340464955620202287237522685360300903588320885208190801224354642830863069021784660352054871684304055095410114260943803855509802831845194422598772424528500850037511654871170634842421589039418189741448402743907994402765849753421460727836955975449517921314304575835838892854499663561600119300594331231960000910231086592646718028688263164031931767238958637168337046810976576057760517655471888068841803947821730435453630143363412999599798792760720834404905498854112907947414375433851887626219482235154275623925381521199560821818732239132136477721418294195439901790434072904227119573722455322953475932746247605878641661913504113613372568376472864753987369879244340608572524058794853225350230373634812606647871553194722556701614155071707144878967431434892294337031359806371963789842311107215651238185256688048349179363079072020342732681909398327534230021527858519462120133770506384571592408977595496354416929853831341290452314232874022641288104855822901848794933028185008400330216065340668234189326891390566474625163881554909365123955195103631882473170719248410646148861470010674229423109634690859528182834943374737272443641927083581454440637927695477034540365214563450158468244214571394277275666006819458710237275967732009818134854795157887429693350736909701913943003843168107286129054925153399081401455778843854317415661195146342734652199391197094873292049710203918381783339587083747039552996771625589618583093037167704629197311264058951486582501455477112955530434922941078911142350168515502235276434527741604987077875151828421439951960709085919476267415448764489939597041115443448244063691723147214682094900459848933599078318221873363104345552027107165358772158738354002105862375915688289441921451186796897172731342802025986726415405683022762744463494253406830571906416211024688433220653290656329364353616655521486737324345022302193452640375048178495668141376001257231482239373400969908513213361971234356080737587906362242577192819291121392096035237590727302544874916206199396165240095512559144147429673933621237281662756618329773744340423268341676529346432426341864210322734910646143846831476559588559954388154290480880832104108811827303579081544180919890161759458219426478943046039710012994712795164151175231574448530053872725769334258793434310910524216818883570258618758866409186383057898289606577621894223698221001520254535457956038787606486126452172279878163705626564907457974904967878067734522316221914196458295523936807137455008647398181740888098655287666543373976278001703907435897703031245719424225561177907997076504857843035635129941905281142714302956404322669260283514850914806753579238881802523955202110385635921208255589786669344548559174579463805420510674079263353286114836310578617602715945911240587204486711374671380005191976492853181192428897410136880993973121048662549934006292870888967552147147390204204369899305041291107210447499353727064629438054055941891986547606820596698629140615061822793789358475879366849215193238096321333504581447622963846198091375390281134088462495575279866708622018266699209818296758566464374546075926681952191508363148025701081983454518322443226247697508360113133679728737399855593275104932258761263914609793358612975050074824858227662540088378468972957752235770712246341127941925763536968436326489432936444247674120293730874982337464798447157228393029347098567091136887633862895251894618248523349456236966808350383498196738581461185682189477419491912734235394738492950314141445439649651169842264836483517038381521666989075753787499719521141073398567939514818244551830304857422773431054303072573716477908402943022759506139882149965941907040991801525301984493580972190178662327150967895781324364330318910532976980294968667874363544860357761543656776687711329864392097503975002164759394084067954315048456406704662532765263974459563794511197955716089707740503231078256219322001659983514901518512661740911997676315642648052536974802605420062674955062786907970329890762183887167655281501641321408857571345893644260642339849280428961191164164515474064172767238572679649881896463894225878334273168816752776841808927048987075745873597011680755008732382545609121155745693270106215323846774424689344446858745801899905272934983304065114021227779002307881230126863544258903535145614611673280392470747187018526626405013053637841895667564311062841371605612252560380764302938427784531607301567620928485142297434007310681577477886245151448942143119835346039971731283887497049866925792139860407104056070684851543633996466918249977540764534410575303051614536482538982084645513135240886332732354692298209406945749068862713207569399278640659920264108781776804740639776396933989128912744994261863838978959457452363916765268269517916432192789273893501790086640887829410960701367759670515470933227187781378254535992291237332867354442618495020437762719384975904765253290009267903080975588221257082321048352287877066572441348559222389476951634238746256083642557935547068676582453670249012475996765556609200392291865379081999824835516122717925041253017853269814763508162362588214625674255281449223152164470892945919094940569090200970264690363161952215947287588349202415936266971822016811560640994387981666321348771742228284763010299275451696431535547367994542781822279028953150661895406072032871977389384264751773395989526143674572272571322647775081626826728522921685434081331878976175350027238014374938741371881025077874167326608844539512032656032236716531391279487210286608311212003297563393823462686780520671739428836902133038085523436738170042829370693810117645506365997142976162208553368313903962183008859117227258581261603487720572026501806882261242321669209289433533389985757252448634918344055996316713952892343810617151574345026829218019940663160968659724767324355358695064947303623638237296647051152768299124020072156792187909933064619004464317910784771156327128966644516286052345215112829716970398313395320253187570711234524053057947046078265622966714346685501005157592561599657994230787744032696153498532538072409548620103619490043249370008793722036779468505634201115468459662714494059963591242319621799763879270824212289322714551579095585723099848688247148613455813114167415115729104266629897968871853130289067478937038590818697066322770438154379985224551492322982151490445189986835437620547422838622585485775970258397884783194273685776157421156302958499574892545323846099574336007108363401364445763051313082791539241056531940528932118283424599835309726762113497259035570761393122498456367971678400412586700529826930644018041656563215229019587838443314898624820482718166314173425128065659545919082883385444050170492241396518397273522334959022351559855146111330220880893132480018039405960550977986564553611819190033125020238328891347637707331655465642418770235212656128962456429099593163817166923251480082490293430270446527867578263070588942256546506077079375188372688645622443888125741809399366988156415402580718866701294676428524324005835132545601460731058826127749684640681035668436827824775842840898501068828611116260203177465619099187713387675561311802138811313688183531935984979099741047949958052939739842413063915483538157215717491747520148373648752622314240357350019733274277325111146445186634360196710323548156231878461818322999070003441393747231818702664416083923914414320543194585913495422135592842876607008217012659932991192715789562605308064914263308146935866086662401852059366693875814865020905288811631783730371705548581036024455527840213777756121823365233765333734886147012011374094028298509402674283625792352311568447939590307518364332579005984412435552074188639570311059345461416741335597132068203041889361477712712693192072260343022060676620741059268900002784122721022891375517088214770474704049070722022209251973994042985288932850622414317794056809762460620319329590081896075239555224982035120460326688981397611267162740907628765716545387563588939380976286796382423487426343785018815405138983495638424538636938326812724041742478593754883311677771259587021875824715856251409729963266991181059472297345198487300372200143173861460253811267042262456660999114100472786839672834150244932468577910887806989926419562749580954752196489676051251838329516162403192854998078246094621629833020628814695508801656737330820924254424285471536338522339736943333366079824516420400648807348120198819126611498000758198117273392020615556992578733208804251114513952477794703663857817426393393470765974617845078738999972477361371276199004712661436974903494532088445620942089571391929534553543503624519914723130527951820712907970668476809437810721965887127683463812952204856039102562376561024524737827710134191832546324033459154532675486120860032835412978262298889903091001707312585767409616826204100783411924667125634935364563128284711135384418668778056392210401579012328882409585869896481337424645043624296047387842892651852599251139049843693086791191481513805535113933511317575952152890739812326885552054074555978661939271852627149995884258372943892031162945387197721474086425631663342509648645453702872554043523340757137500685404610436458319373516391342612772649311375457482436808683353792025759093360693310631608188452024524680323391007114519878149617731174397359850233212830059618819585210268532261076291765737745465121817943813391438960816284902376108355986775488142485997190615124859637081008333387076372131432872575350132691642883814601865464062257314354005444080574028527835943036110003557644029915649991648381806586285455251636581625753998056311721679048053164544653066850378747957155204923191943340750615618581039486036729838357645241845070279887378785727221828678460131507568518118941525931512075669070547823966918787649331068988642013529777632869002755656189851359866997834177646318193843501319736160874543717339427987204422306574878905670279604202312232291987717173241353874365746579941042053311442908413469703264336142599860017556314862622240513560345763947738644501562101879558964126313146468226084028227682776216215404260675405875345530900025284779409803642815555634903772892710991854126077239235342049139893973347404468208528109890984996250012363914852704396970430137593289470915980063844135208603042293453982657052449177618949366453970106839785573178637566787891509307866890219192077501061909356815528328013108410425760139555106967981951244750628676021229504398500076198254583091325863017424711360557482832683396405460313438878055340176076420873236525030971660451918036453894930500461664219998598501201752750462930984259389485095580672277870319906559364439969784964033642258390424532507816043350806231544232106239169821840442466508812105266241462602996913787507257513132665301784695685133002581380176558100471271909909387258425900236880719797914238492438741510660457629095028672600549740248437120878854868960464432950645884555845337698590207332619138446530173967685099958354702784412838920851227356991848460473609617884122222705329266084996092343692216823496813231050220853227287647892536858732621876946724652710350692015628871052230007907290633424230084337190113974474808398260724312351699650518587552580992612549390461954154543724548520607382944128261922610871589504403495410684731202816234365062198840861393597706717864575884151162808619835681730136985126645748296748652293419240597962365048071294280608350705823803675829616374614478817705999147546490522320537758214515166862949496871408423702499450854545869966803654945540231409567213672793816687694494786635760547708513938346796822205295296435437066852265640413203007406420430652150818773463613633891591035251507381266774523190319260250103691919375048578665238735773165496486323671845720797165630917052863646340063986390279557749558856155638265468193624140435301822997881573173947027491991410426289220790257487800870164061037807341767297835982291219608639542641032508153526663756384401690198487878507356804830327711954419714284048674209257228812446500611589554250113205555029963692810552714657625823978211466417679797780909822896887708709355432457482163560679630053506972471498990051400576903173219902692180116905937738262362630638402655742301196241613988542366176939298043914997003573162580517006735456616631384597328451749460646142000063412124866887429661422265554941035541545530455930003636323055835708390945263752250135642684588387756200996331823696126607867511626244421157059325977417769546282720431187929681159694730653493436510323346012542186247536608905201740240229511396193275999533935213485289056574803828548219997617093753967778362106607628347198312710164980704593678095436779274154998139116948974614966132955068086065733052578873165403841245964671851049177048123426971662019172070032837746777941682760766364555765622865108604703331780566435015703210036927415664320483879370504211694402997884451779633920554355596298417891378946309700366666945018902477566392057988180136958940881527694896438928607462779226539890727185797083211907409392265453349226001789926143164910612686926075702067857289126701986648637151631981747180119950733691627143787410843273141897059596188400827183973193430600860351512317259382999807015397526011633486551724209722426762838640168152829049013914627053494091665893673818929933755411029000828674757191963926106522503254629547123907689754615598260804683617991982908630162557791945229669353253998968604648445175379881191806074078482388697587345556359323323061257895483230132562197759962635204912528982668274512391342759558200047325837517039341344250342281956017858058238066831123129693066607506633047901965563560082766866441055217990301226684902733766569372507928887375283608626396112159071213776516855389585797367341645126699496945599884795507243916539364839781369493575691505957345298075290568613885038561010756427817681051044833967580599955269001977471652762575970360979148092480563006133957119093201623854007621242686252858425523338890169887189207273312636602797675770628715003084406373596826965014548797745983633855189103198809022280840075592011601519396458653600396006895107853240410723785689264963948400416761303893444913259415762978979409016400836211064725916286568599570934115427876182265977386477059535918022862966663786124531624086259543414052042289731085568772290298775396249448421345814269808507219766788616406464273216227962544895523742461731711005725761965514460462783101087168514239154234608019007602493700773361131498011054812680051313046340404413232416233485447534835688421981903464367055187409210561294206221898343766544569829005872576267233057935173704188159183262933857875964663176300530785534228462116055523750110082193610042342921012008568482423497587900556328497099068383858605926252799920229176589190043556707563775893692953444930944541955870482147556003337617511927791786055786086711594148040241250305630934439729953295852390721538853816227243597885521997515039022349942446252655760815030104800466240981665447910947432028578678684133273723870899059158000259426334740163396003244762865205506821346942867740240898707234295723472756710488205692896697456437125237734988799753492527936164255246545986828390643313941625278061394886953005869722141424448873205564111501888524165326487190968065975235695416967999677737832254580763346406210028063222318371861324100532135103507826400860391593152842356737198635109096644274787470909899434205095541162163219763594586620684739900733685005440426851851231018366804800005217865261809463263451731625861198974629009819104731393299843901005665723977819133938056759230512397112112217806888146376675966292230812001290619379091333022452896994533191805486308229869187510323192216655071085431877720976257919880903356445399783471536589883037848742402866604519155152819975867346423561313520972430089054414006183581496978945966337199774388606089317900410695980835519789972323413692092896855646836945985829892942245325298794433671175635500215751945447867664163055201604371048232353497824720483165988451714261160960574319634367916929281676044311909373376345542416815407620520343840826027369890012229816321619246487220800942981100880347594060431360720938241180968021508982921369347656065482910500107342388654957457099193358525473598402985789778042748155384993405827586463354525934433378612624541987373469571438295160368421157825510532139589562969828488662001978938846391538823203726480660125264959274719120116594477443089446618815286006976654991951063380327335511561054985600411239516139750643453191308903802789660227915107218027858870313989298596899030501738323947541592631138345941331613759810316274700616006621714449226460919465019997700112361374391219138133502890558769822200013502557393912585970944375410243464806758907184815042480655241564052979790548286362913683642205884760519894719591150737390104319706522054152152256872188151199512473752460988728152741956335764944603508279617440275911990702456780217949305503964252449582644507840891895987952585545019623331560063981576962813458719587340972610670709974110215773250919688027353961416179799539487499105658398810978654129666632169684251057327288895110204255363385905638470004607889126536846588574847941910773613966020283617321268327198695774031582802271702737656331921658048293366960785215463041414546401147901406633640763889732071463088531343779059330245158581233287382004480061656894808199512516903801618167188889517319604817725921329297471498932625761187492235316164792572998270934096924054224017484374789559346769770612123535446798551044717317641506633084776752536143342038011239510011678147856728325613729756825978274140622500021004402439414685483148558685137859323552381032001215867489082145843693388700039209691139052932636942784561279556786406330902777905642166433472711961611729588894547611568157605137020812090790441190886451288533037790473146738980043738024125985683297403720794542002391649390515800766942023357584335049080648974986946705391212868012750033051199622651307105803164357309443957430314934848080158907099261050564743877838672789017429750927181114526535994953054114710418972281417734474591548538274641937902295830902148006072363519548070086539335655264019026164322381660914239664657733026927556003032587415153285288528895772033838835373938158464702985578201965760452660407147465146017642455067650519086574773249868006922383496439342700008919617259919898462361204002976355565378695377488210482932067859000906896861767410186365306343124562968416275107651451407089893186651501161769223476824865851511061578996609340816456049884871204433690583416645533449203285516647046873592581151927016083768443813766125439467418555606120263067891780650789506753744094079648154447572401008867953774185741148187929442143241709509524119835723751618565887712024373059897301929720974911849462184977742228946522351195311466289831675644772461264115676830892860192721993782949989928953127169975220264683584713735318119024121656217479856723571214889412658263709568079235961900418453677165348243619945714686393217408521225778392539675905166128179043059009008439993164233798421783544076520916600060867521847853356799683756548569868656645647958395070313139802738291552785709373445596989730104181740960918777902232558652406799805696153378104578629678474103435533631604944862986150887893882574789487762604587399814299837130841605441648935402576274267411102471323007015668487379174709018082328020572583029088822884664253052377962942952180669891162891962910026983076120441215296584200757238929963994675925686620218745589950278619194724153481699343341094738786069423791359786530438279442316200363664557535970036453480841337752292764751948630238872868049519836187535194235125393073159853670366333544981996014959366586226759969264196949875603940030955804642953080775642794471203174341450217289676054739112668495033845608252829159443888886985817077322901200542096925649049937994994355790469203519239954201483080217786574304807982946712331073813857301132022453757749009739541963792994477991017719498028219058487109567146004979796040784232960274088619958705304684111069325358722938041166730317422103157442077791916023292236836904962846643605168545529668469800006466189410891424584671863103434694605369744259825503726942084405696637249505102368143296474130381303392575919344655707240456755363577248881263883451206581766182243161455150736522919761769320123297117172680621242155293853258744371857984945803046337742349778806864533838114997455159414931448188133599003317203799066757812151271505264859019412584137147745933541403223925075335254691448609380024142032916186392633822199512669750066552792793439120076131921846983448036547633074132878290117035280792441755665680921116479832764198542413574967176103826889998952984118691713572547019375025754763824628559760286055159732189840985510401523246233112834780464738004116937423687945440814504890746960169795867100518961018994877336686825108599778217265585439556154445605702127644376989211652533582930878695906003262514294207731587818970047587992292121340744809866775377683787476437714049487151364345496805453824121494771248981389452680053779427118004090820895120548298387793623939282089275069100155762269569464605453047301792464594682724320298642253186441357805484929332894835232598279999292160848222152628095623987226221961297223382031276431795056076625599169433287765952232453566125356610633008784576948357618772519973504204357333010907364180815498961909908117365077863120422340158360434027997493014191430046149353610099223433391057776282685914597625094193316797393516696358364125633476714828178295211811981839769004041462849722129849741397613028563404384946534943622797605825701309255487276432665219591469122833688420635900104432484456985378238568397486586670689988621517396249191276143662147586239017755225945291037680362932770194960099452143323261231058022446522021804371518519192428188664290159672445370536035029935368053707856179605552990817351597304423360316538115609231507170446573832687597327897274014922351301092767554819527787831850690547148577100431520703569293312376419276576166599288761931981381134195906725503827875671055923434537908313917469509428027924267390496549885958043834446599606614479689517174834451703029619866338342786993193354073865048963286257629019346410214371506211671186510428594439314830184554195214068414139901459431257260547638756167448746082868229447690746360206731799725159560054002206764831991926164724228592961097982631744284962594195666145277456558541178054437265702790240859495049234612415498790891507473501126815680618941408250988841840851332081755924601367902146607722990677182838981888271273356795928848421253981754376208320715951259205571449737938291905257464145071181849486195012963071191529712056873457871047614313208625361663389037194477705941326898548976350785638680695185814745900474475476972680143042713008675926199161860193776130647929381532641880176075765109888079041389351388600302258407284676759207603569922007815310268504259089234000826496925780951181930541458914072344752635876895449473228892216210671074042032787110380074763914772126162206328106605953944644081112021586901126838809659906050496709511204323921528075660339494436190612209787933308880846621533514912147912259466451832464986160654678189438095779099125366839383270291438260046490689290471904131703452544416887230788908478948170011244879409045771251231616090508648555924878071272805895078741954721162879817523825126573582168964284505284743761752274682233039914587896388432571500151046981676070538436349378512324090333270323409574171072765399013224409003633804965283405155280290970479334920848311927565260764005700315406748971731805897033293631484402931557157061636651160689578744275130054058601474383136426383924309216541754002490357852647612732957525733561912849277028273014638492233327862780366542815607873431324184213804808189798497569450445072606798848464131819144444736480425563274606455547265745868113271831944171459248160399819997289757069141399795843310991555752951054622293175735583275465745949499924646422108552877488375700976908877057600895126537508920930583752067498099677513277122329196284666831853621967462986822762770162563620563454624061001961244895744966989080905757696614132915461091601237604269234622453264895946545738281990641649306299430921476134710820351074283393972189254043117449090570783896590310070016325399411968146600067990237999892354668986376304310579727824086213908670760919091938393313686495643520813418561462872494856854844845087964114332720823960846645212163646896162112846825362366797804416303772294581026879767619074868114589676930502172028165839221746838206161499606036546849184361375788485034737134850487839041701397982357467755220750627198209089017290516484757530461098718161816471292051882593944290405630816391925691727485530059463800458526269506910996981405099040538971754225651816256161940017031820261444902453555764553884925519892571789470599974842945601614486659061481224340408437937960527314029667619968654168476133189584492600192447640030403617402205248856129573452601644141574148040123004117208513606869789877061780733219618113496484779525037357577567411922057332617480197324612483362604724613307271642662429175329082908644876440483701529062756866412498888711438304102710301745874710598966080151678667292004748132252776480428583979223212973969376817370423008578403419196811739655091905666988737653574837228063878224637269532489241755946351396488920378091082016149845251416819214162316200675415339372679347712450656049042867901289601526297078425502251370188040032304546460582681354080659678037873174920732863950109235557572705811628236278524083272945847601141812428982171026937297813069163725456327229816604514675693066180570380977584756258700403103618528504383320248123823704449427835236255501132064865869186810028359227254412432678509975726481142300764204673775259427912384168210272934855381954177459624273481447711669338735699738927327300918391012619443750281205930730342172319585385669763061448685709254569089657800666717700299161228542884756933380102930744192305488670922678529944129208007022619644572267988372868266952506281415285600235604438084160868510677721382749480752856195163373701249636464660257389612667170892928567387987190685868705173553140395943919529432750165015419297891084791046900102227837709987335770835860773243886513132238825649632315104706453290073805607544321889085826741339803505306440715408550897757919007142691302498983281001681994368744241649909742851623097761872863679160778027043966184079895015223727581150432647300600621761106156585190001581260240511463316384160361989925040461537993155914034314752397450106017993207387922514097879300807002414093210082640273685133613326900264139163683889234365150712200270463797200764572452481431838203193558686730364468975918055905308832148616825469365353058477661532330847325380687654127702347460998246803354287786190425112533935787928750287436177061568723730331021817622467322621192596800232501532426581507914979137410872385381058345399268866642066948148416588223097656440768918798796167652740727372509386031851392796672031179364236259408750953922210847295147862285225784164488820374288043868726870188436505597564972747851881212798488125288864347175492809211307487221856712681880859080925639099745697975311807017875103731802837284869704760805807282080368035073232665820325286738374229604019075230991622303057884604208604566126995232128411782158607580664300138438786715074473245949309706751990450069777980651949704338103987365657178733628870581329454372627627396646636696085574388814699214046273753278913276089641584157984859722735526191049490429572923562059199805541017033703124322648183753313511236066038987980566916148121364061171701134233394746718653013074750830527886958812606808313360868343557636251631092724957646329490751546458032095477675070132411300338712066198351711088271381185540339915877762234978426444258776196676057050149564871326048185980448461839786693255990655214776094976177235968465911363240456821397112504167039965195077023058096081753167440206993171166374252733700143239558272571218745032410539523794954740966192462252227184855026717943746326780197280718789605071697440997776788579320066755450725081668562558637831880378841818644869620852444653408787605178163217493470952559288368704094798912459157267969338852346013474110480723165014620336982075531340894120849566261687791552134495301381415078296361142198073115122633111595850640115101086294661434555099655855309020871949513988987238442683007062304558230981518855064113351880091128469624580540511744862250480917880775579160497686598129127734908922613273831189941259068893800929359861979234738836833269089588025752725065960976303338587297512092739579975003752570422841238741800378330262857037559933537714118782334344259050972900159589665244245178085478967695795340452931851647875688517113313656679908919885517212550417665831784704739010608088948442868396715431863784399379916296050854630061980784872046223926667116527253922587783353959797153621171221689092718463739249824484555924065479769840332039641726818239340364487575721783212360668765006539865061671650935533478858992705423939229914383575645742410082114827662792534996400433089552831822712542250574169752216507029429640641493900064896865390512156857774202015840700316025550742924674457903661608103427769469870178287878756277262770526218054235479020102340766212829124097495941560499026696650742221662543818193897786734044420386792323496055127514532708841977528028676464517094718530847003187037469231436738109171807073555800281418686760588170592757831404494508916720795691554389882258171741576941598326810198783578049816599454102622150478443813192824499035882954678661960908631055785460432993507580676038208114689660519675961875172443875780375488473597514513959698941348592186615887946553430264446276822676874888563084082967372882331415271980585828958194247203741724427676626175797689692843183787496239440555565513407621864052359821465961755380115823706692774127662006247052160235310439587602347049725369042526209243062344262782312446558621132633890632069671343375573144934421942417091300179468060481011194433691340395166766473183052182262921167229223633062585489175278514426158656559112223738488953125084638002999291555521200618878085723114047557739114942564053466062803942108389179934934442072300144740861600308237786766126701222124356638002269053847715336121734797515368171105619750418620173463432763958686749878289843347788709858926639892272713599552445586489558714638955994039729722530884708496342223371818264071704140300501240763358256280629530178700990774612503780258633590306904286127657758351104111363089137369731472357040299836204124403627985088170752010450255181015220000396151524921345969940841466558797024604068214933959423828692578981308878484973351985647575265151621895318810513221960025087280836935576622203055766286313183122177091764420875254650938182332145419439651442634015832182495635056855019434595365093842342643707761611977204592365861019786838747630182115798798079941053352547959746705117398801399125842932000286734463305296651838153313757802494894895404953536168278720209383811907203891710432065512898547131874865539665614211433277594301587177878427802186559884966012887573306775717576532825845198199724535366477488438960010889665502312587969893867050246988093119535747939120057837926316068162691413390717043035237785848317998774459987765737373622902253961010067293359832924407454922072787424276398814032210726637686869093766464932413794011340472718291848268072683191448996249710948980626980357792365989885173076471362401265956769707440681199689156668948905705694301950415653695695602741809862191425591238639008964583439869954738825909763091668777779296189115048719045069588558521203306722518126761583746517451251254975633053050994790389847662509052840755986579748223034937252791908769939384176132193919883923366668564191297374023193133514181843836340037536300092079276638657695981037791368467772326896267446342772178551887667939013702499454834975186876946308284231306495412579094872417553684692591035837445595958255154408933836425666074366695696515508229849090129706368558358050509413896819804643935054172788773004111462785865406308122472808591598770295126920105865891314184827067385409044863533629555112845430104285166073804736710400623548909118212981148704783939538029778619997091476704854934667085195318195809489889230226072680272024236111788601175046619075344010920278816490462826357265337448923590661388991584713893184893457636932175076686295739326699930543458107082705176539879006578011979964196921340776552836920022462760388336928723552127663458302603508845831998363036698334987751336604445712939977345697007830957718055626808859518601789571625688004273546453590604658139542272204985453177886491158116058466327962982264329145475824831102353947316265555349260343656450697555588922961868649031291666051461849797027111887179936837486620537727807249395158248159763818072519873196493499852158010771778791667226340131141736045909818459988826330646968632931749636457672793905671342597717182930327224305604173723190151836529857741786289930447359186545642347445410636461963235991929319193169738847107713527642992336402697781260932409200260594975448830187485235539810005953426032856253530537023863110783131071612962210228382760583412881819084316209558634453534381316961068373000847985491226453136108650511497050159077218489236916949251261463309522221444878101493398895704856409803773731986139834457379492419649064492579348090541972285393446117573955376122544444968360084479376883873627141521823691112984817105104049887814298469328350973655233253225307946299689215880274737277437318824037482901451324642084749881843275438498301228334967153756106337099368282227896906381692054087985165824138480065467156827280923233662778939246052385712019769105740545391214671765709916534663677283456079402984493173154850378849537534840830865461696128083240845245676694106342419155943753933816243782871325729859844859319568660855999181677011968125941027036440526450361008676242281555475618619890609063585956203466960580386658250242977934680499185186410179172681034071829527358343234714186447392021095078210312822576198790371225618592648200761457640416998914776601031671294570581808074144711087313154813670629114380365771783331300395351854057770506792900969254872975467068782065807218593783987630566152028367661052423182762198004468440372109210128733833261721072360622819909850106668398599519077454791951381097357887745278035232174921887042371184395539504952191975374608406996500682224781449576373392561316964132194043767527182177307580946599562338138090109674184893689808555824518240725629135999319534978689699272098508475095548348206297173042258463355927764052870742888217598114524175368688346585834194208619779272174863630085700760966538246941970090916884854891182255361926667802477059612175665913321060791950436958463891400021351029426792455918531603680998693316260899275046665708003557930742185474051698531576867326544346281723872709916800372600849298168635015173742761075566240886436901144361445720082579912578492476243896315364859724480023679988178933476351295413549509154247982733766643270319263391376148480571237598518922739227334693815115748638037236348235884232280932025704468381574609544752458973980474937944729903020172290067145188751833571596284195554662932042684042260363903395429851204992257085898477464828301648062713447671785838864434340747838683389730844752480617698501040329825790210840212519242899285479214028570162322100495275853289719871943324438902486904778345805789646970247812355470616413867717390417942862137706838381749796007687256278541630807128972973269829202721358978337761599263187042242764517824121573711573808983460412227430863974227333570765216481241065838714968023353884585673305976644040152738438834721567629123534410050584929377924156034474048945144803931699824087557325775496313379443673537639370065797182165248970793086504251051904106468701556734302804583118375036712009596295205224260944815475276634237380253999627082600968119988413209683028906766376739352724652489893223351807662839985611548435950482911989827970847045822569105475178811560977758191121970185762950253660901263362710529025582711114964633860525567203904331140340976202907994287091550464353063199578219105977836621696260518680808245448848455041925239715987208507149396559582298610732272889643343388142091541031045353482189577132041403646610669701181692452861801682889368456901474273046423593191707116531188246031418060930628048556178607842692320765161111752568808630319577939569198575210117136150525283561378967659146388567398596141842925504547965291940765736451499429775561844744043417803809274931917825245384349207602728461017376683034765252388186039258507378728319776196478039863605997611259554656207127112774714116679736677112515073689930320515072279516410976207245778004326501249677333511519089740216183412309583432636169913185914683955558094079170473443503467355104432597277812398894413131590847313020345980072401786167093985693779276355918277806776302473826336844924727308470715536651310295047108896037643019978453919891977308873312829385656662359087729920806600234230578764462109158547192559844044600734910679346250755311650162586426157874207611215245906828076693894742317299346440374053493835631902108737145434741406611237849182153732023427966409483077894643163974503006016099659711405929652034150622771887906304521063007355361095599030607281689330912965509415821793364725967981758660516620779308452579367162095592275458090753347584414315403244742357115322290403299987410174195702782248740566857378846601133878227997704887178182947703511915224525441191956104140860793645404090612421795128765813481074937615972864205846998333479707527517089994782369405651566667133606775726822875092677112026355636858658818037768418329358190335390163241398247464784603319178426243402025512811760263779490830578914330539426221501955756466897074361358229278463666894347079059582737040345043334217270749204999066208140399405203389699693247644914695497558380798403397342632326197795321033424185045056870288703870433367554969411061834134511526212322581780470975699329800977187388678996341551577802226728424660155082483727762963582792902594392165409529889927761813398275692618701046042600507937642723978244964794011700983021678734055270494420317403935372546407775072775119017694435763510497152543699183680195781218895316465635555170087824659218475194955499394230773317097427590070661889021654357907166141553573656172866386499756762929916346042551721717852335823255201869425313783137754589811574532079177678317763695376780561332244883436746879441509471666112840998762185754863637141613346404176328884523311793852008817756001411406410097378408257905884449052359022588827549252632744787918228387123578366636694765482397905277837476233479130090465792164208141608996968081181897801180200131257845546477364174214526572932230679327274782414305119590316712715494217335349469730200986098400122314391160886355488088621321709398718805961469077957282645469242173498601620417048966091413930682246746139767972779268516622541251302744637614288355621684418392803129703353422020854033099473759103495937991637815000933707544287108818907953508296562970969269546085358410163293684804191317737385446892086980706796298951763485071921320389295061397496794864470437197008372951130893554364611575194642456650712146645328986609024481867962433682221176394072910279904524185577434088947452242934917145324875306262551375372235906043484259704485074867576652991850062394056044070875544269570651423781756359588539710174384608400698179954291850711026135647179333680730998211216845502929682444218592331769658080530668957501432463020620427612973853116849406587491030825907865756209258961571415754869774063154664560276701039344487208874159746591022305488536245095693930276279877456599739909575374127383195677834083725946323148475713342137664525394152860444893312963231218744155240285405908276102778638814488687481971984919046330480995858689023692721098614347186666364696754603343472189293095537776415234391324742672620991832014577267762756626467632885546557328991953290497671280109323661473979706794772794023225592824030938163201823108458027383401154582990316975307186957978343665936082717798063938785671113444404778724674094616534008800065611991612456853757772306182809923743465827328457076930700664311806842729721320287719487939409451224092534548536885291749360441554083171242520224806301776909664990775686680301357734008686544730955737738288500009822070791602060395646435641332994499310787309337002844802310785198356479262260758293987261736704212445012778033944114664162221223387931473206941850752660083487831538473415013377172127676778985310061244232669578990234065865113993672467254663729395451022171568026525280467544544438465732715699516519249913864743123564784861406693103506195049129019135995418856219498218500797522215654122653683154881598993731494226478118382154035234694001288150676773743715306481907902612154390450274097484621653040553089200233228293315863723979511183740202200506267888283082547525946922103089045961574952653924179195729400245021537058237929801217144273210512757477420454707656271516347101058468126650707311353970011527897522860257791473373650210151673469653308606784528862410599058046781208602786239164715986591796383164679935341380059964449819037466359413311853301721321156005493415941811740523487358439241305604585362137284591548145739804864589047473928973712338920845239192917455184216027998456057940236715624997504295020816560800146264291936386722267636305794544632187358466795751940027585282814616149160088420849050961045276910668057829542053664223583216055119629248777796616189504333481834900807334616441908469457117010567602765870697132843910052107734904266030568255418557831846107611761448155355411670719131710066351086249467154368259682123945609831373407698730704038191635944302349097292472648755762310922653517332057890985390127633935068850828872636249587249355312194238896476390761859030866730582694970072924905177814895989740597643874062485815145275301177149173260132673860109281557130249035233626233741467942129644894926623115330897180214251280324858351285953411784828947446170249651440079955441425569721356156526928248551694595781075291928093243442164421554970012911369483296428682488098002574406201492675791889890317630680371757909872323409063152574976868729057607298832197487133795768437271797555849768761282459420421351942571042185736655601794061465531502668880753034189861279805286774175899679714147999094603672178340621637639478356043254571881303329996855483502816994423860427321532869307767276623721876056452233003705733067171726459534358957845777332622291337089111795375121753789298306325268789859605447775622409839499218594075984055032856005130186305659391459391926687906727340833003403658006296181219806787865853594235586961067911267255545719189076687601247754447409986785972467241408985529030071291870785122742654072982974150853627923805315928486188484339783581374428229006672172113896123679011113469661634159840998177565042995631919461711324199365524364547036905025897578932919086853158859046733072957376087616280649088228225115645586303125849946324754759477875299588427289887439130226253029074875998757055433307951435175068559183339560464012885969829463599674288793326018655967560280961467496778375365083545025094856658678991054809579992334353601865262458018036678478289511795356981293383414313286364378097170301179154079987372502521195009536844158082598844275648212420714895237088477893606684170679489929247822311120565780137545950063527132807659273721496036677642148847972884186804838663366426167785572585394783424420287930063998940476455303168983799586464362627515862500287469917429984690474216678014045460471096990318506950348234533031312255893200767322846643202866721917597540440167500458528520335563116876914285175981759764830286959559624851359447521650664845321489114313294724372156204652153002592660739397111170312498664682749091674680932226731789407710094490048046315689590362977308305838129279185835368384293934981138928142976991054326497656580298275521998768527954613620202773005981485290202964856523696144128360442037312792641539523052958653284603884391012645729581618344532465072368338689484351079805300492076513317528778010780489369711573421858847119733971070010814179984579827746730291111971910243852410867916268873532463233498250360887555299821666372193235062161587992036025725461178577243276877311631250040678536601672169794833434666995836413686102121921752884841705474436695209086651815513076442915104462384014592490098436891281585326383679508483052104342723018286179960120788692090730821049802413485286040656493150669067340233743478754391327843184845830887582058433388892276580751773180721372071957097069940422479307687934869654913622212002592582660763742545229053647223037982513017083032486951158677740327441080894301577182523061764583453429789455879457502117259329554048574284313754334917684302970882048013641857148542979855044617924978233243212341354841106982230108074647995211012442874467908636021579444013034078233777320442863492006212972944752750703871956766753772568731945987986803585601222542367554997108074491671459373657323395315490735775943984791133598749964123851036882886346105358003182388276955222021549718509599893116175733120842072655440647407954191045224115841582969084957368328837540063104695277721403988145927331319229441700153764027852533350905382039921969559311776028049615234976446661918937841484449844040782040176818306473653050978389276592068291801673521220673787150250280627483761578369417162528421325683138620380136894916157598820828642992654537187808279368628693401420149856725851812426383962798562827330251837257085893081518466441519543963906668597099980303943714913551214138730799414883001559674446204350850075343903964801268488801897736280556264877633857246979782555779808353796503401487409795027206994003660096085323904122880832954859270415750520332457606155990207662042058042150481704365228291861071225696784699679121659700867721382148185748998424851466866534081741078548742444024071314331932199884906757471668047989265337101416835764523464338201740086755941204864858648632022204228825632177463782385752029552121752759800908078811215403691570477329259483803750422825867803169789960091618201135045906773929833214266012131157235792908953611189258068575345562117947284432078847794260714143334935229361355257107958325855606848084783884753904652117208244395100256951623972134313306104362821129567299111360354562562174697192486386139510857622937489280167197596704950979293412155984928759869192784255258803745052829194054489092209109347831833713089304000881536980524096370517168934665465813163340156591315208994161277129143436863925178535614989190625243501760735334733511681666923550102417260058676614415160991564840529880809951250677880615599686349405270273118526963701476246377359524593620208018877764135328079607127771535035593037765272720105889625960384163210910310063763939994832964592475893241049365066493234394055655123900188801436891531498128432547703251603604895370680239138309837734041331304938327599090448709889019855347560320005347347327547442918352089023665261600885978697527825493857801086600301968717710637473994086305736052258814976005902400953932799377744047645291424669985510063345786446829518620386640820168958543481554221682521946460370905915317395343806760398829748039548190583159402207996308157178439067787894883713806948500117212578362068171457540613453323577147171457048827980154281528132741470577308194234622197265989886940611809730009194358444446194472277091521995825434392774871154752752350640373356830209146207972967004750755897938764985374024618353415757298688349938349882003227036538226634553217916003088603108300707106399661007209192318482543423718774253438202881256473212097892446789926656391008099144430627114933233183858065905824618610056341171502715074954535524513343089919190798439656880853203340258918815303747680798565915328109020250868024892744671643406183406051077916388151513442092078914230295636669292444003237452853557480382283369117708560187590967363801771192446544849344912240119431043339889880294410648364728874678965342620255936926955660826684506512534011662946714033314253038336905869158903164473485925193701681140969186313087145322266598123765364999897086608482419820535109730250684148918144345168385901376970809838929148604557545862289657965512985804882062487526013808966230581893118057474519446260021499077305009989281408348873511817430495291109384892886605922261750462471121037532754179099215283438139597554633592964616823882082772056656203509885598510291950307517816936794707180314290414030947784900407606792712125637563494728239227621892153882953390068782947399190316608586953479483333053580603777936987811485805524506902934297825924159405952667447420094174979614813993910376186501723383507770869516467242663873071209974763807864941064539885627784557320231953276811783890322183272105497301178212221339845037351683297744928057006613103148663843124587084037868899526619446818485030889172696254948322835091917519108504189317694417417960801283987244586817132117029810366023763914323420424825673575087918218952193695631137360891234327485013244349456966002722176803891926930039877465434556663788770375093646024275554040059951036244357723932519211890900561541008710837996041091594981778783081227942197721796848943010384060917098913906895023101585676707883547872563275417375756652966124047548252162364725737418235686813219154260467537575528131168480749846405845515199996138654015669561379416993666137904537262230826733581118919941595969891512649088271558375210098370157395628125198743085342112349202239209169861114177492105781821139530214064209179581631207666704831612907519851295767290832307356193138921548886625367572493975491736261506130425442743568345287137808451025265077964105175313708813436537436627347769531350846931023925777550178585098808498834404334177898009149449595203155404789541148045517069628668856178229649253418206686675793675919021108684962911370448637635837111995105014352138030375252936256526500239403019629309946230123890631564543426510359151031215490856127061164292159355906548920328280046237507158525608886217750632339408526869277133846834955082189622896457898757361401633909525975802566173050813352751124247593536844068433963860828115014975715291337668988683874905170588794322387482843751717139607562389276434202546675578247262423179475747544823383765282437305262854308056465269284973905043750090673303543897092316812536148196614947715899540705915474905898908206467527545014909820351398641187501506491558258058286135834687780557606318705862958660805606921604747520582665295820162901632078264548999475697355721167197851764254769233447913960910142102308044886878555230189117060609392789399065594454074301416032075045666399925867121724945420970461771191356436708605029587430675671879127221419095219957344446438642137008889607048392893509680920861856220946667636230005122972987746150599274957762857787020538094350872530316376036711086003747779082528436825967843685450067732106117339313389051758618365343278014951581807605569747693369161601877216331541085829194927552697893465617315279816260425109062117857992418732931349467517579507825708220937810807571927225470271101464883061225278815547772824683510333867333999141047081147837022540169007706168413531502593121177601620738490171809962075046273614507629365995940950522200239651742569669079143915069509499258354552775598059413455787032278413998346171349617734078281634102016455619965598880170026041546154179150726031112235832948251291355221486620359744856189957230333816591439153395886928143204119701161200919755692673891561379784301909128413181058832481493819876975004407994330486724506477191310868511804807062041140578196937475400947736205964281803145788995736007018932167802489681616412739361710850478041442139056159564931185902749276563930185523010439341993366111114308605551092852564777906689230572465998397794861678835678422534676472379183594714218936155235836915007483689933485961269332069892505829447517753935045810215659933221413901644438574110888692691996341532418215542209174956404720059586832216301619248871358754754447001898347153389562357813183470213313379652052796171738427567704519980844255789342628132480578171307206814427084503940068354784042056178232887992724467685261019148312660294687967396064644948721644182382212244150303570377074217741047223655161881736907402867059945259909816162881822472676837084374500325235608558000393775436901001182444558887930482501386801163624317431076526143629144870118447329879080895224554863500226981817923665076325039238359601474237380663332760876354756249333662022894349923824407686588826233908485330512518563851468745780757851927259973750696892090442202942007653409936105959842442993514015972759095881006963531729531411400364875420074330235065930157486946846851069293713891029275203271909146923318497053811875641854099396037963800088998305199625238177232693840086200650038583881547336895133130254243786436434196411014851970303037995695260099014887787108652345429354013755316398147109044716818029632973779044817359720127884582780523229809487590382342044752577395037603127810860711439184277164190347169485073043860469184749338016364065906114362664293066715424236406524250511977018830956318657567351281051399402662561673712314984840202899237560724654248524274902184306002160313330483604484457604475139954724877919784593857873959781421629831459365822826794502976730908979565475387575243285291192510392255351117269976916389261565795150227143888388616997827473623017667048809216100280434901907924287939502155592608786785143332069307518608958130319603638803965008200988006303443741354797445349083559798697707303428508016740491438863004578095478909186950078102610279428910467209826912528252382129995100012084503133593573788249592685794866772367290989593734264405355073459821380861813822578537975355257455189296824528924501969920475614342151969109746946024992241882724389580990622084902655380725501737731473087680694154826429832669755181262932259353784164692161362672289357333456893346724246838613246679843369468993481335751523237809096901404884756081103179813936718861243419550648313855864864196873210900278667961865519941808497219232459929035408327307720312234415470006842451862873061981307162746482058725021300991755692224056605675093462946629825268986578631754078589978222189685141455210135979412021929005005428725897836634222203943475775115809986020445009752799967220106538510866586739717145164116131621410400305269021327275756768783665882297794314041165881056330199240813571576719053894417146366331578181823632149117533551441323321211341714513219368045552001538657434891244822801268534411154058668266177841401907533378367207492923642209394932186211912490293094314667569560535907398205279414470316186558157083162110396577676297577037637522667239545400461029498204412831261915659479845528807126693818618172519292163976079716862217261269792753003435815536845562166770656349490474379394427697255752503437151511806496360805477567252770674120455309678684953205298842144056332737220705945536814814297647500470483522490585589818911085870559840396720845220442539335122053862608904438731517584953904794311514820124914350756413857432131553346026170038409074583525112846077018223063009504265204663285472465446988913810423033915605849043668009421899570592651031883490784907086451290892478687555342494649491636522617030706768351718607099443996985384940981610886207748230610237284247820719188430340059053804961295588307081841047468395793057908702802521792531584203196403888763205893063122220651071471990356428967094866604063518219156184251047985705945201247792463597788723349019895861446480113411764539849688626154574486716083371492519739264232841489353006772192646611319545959497750209393236118852047781518030250267970578786117593476103726403466460964381769874443029347344392540949572032246512738697776132137352046388412246158163221022023240321870775801318619367135832364096890494769490064756175283675230066127375439876126653634832146534764769717496604034813676357952622195519175154863731708412616316943606559607318823779947007495628393921766622564750685025077172035919353057597510664344141525766819392638072576412021804338114680046671437403745829971380559027055152970768887598811836332996569449372385210131083918374862452933725530173499742189243034905583828818864141956019780305614542671724927206193946056370949471775831836963600978745090350732881196717069944419550473758479846377148154768590529246528202223634768499018377797188483791593267672622158944076302356834714696181244209429548586483723385098104262446969233336740689540308376268600602908086302106176446183492976200103216683923803253379750407298233760992344307148754778876175834319064399178913964142728017230130141086728213849369208608346497198028472049114496070927897746144317213591126046547872878572818309388408152954275380857502852582010215167338144386180879461342318479083521443962640849595676310799566759455857619487443198156678026726098676086202233006017378609406266927485658540209354997459640546128987894138329738011291977289546169597222214202448227491534145058482421820517468632489064009717191407330620200210183744883784467591015857901641273629866351677551672456279900386494815282328593353955546998546803805592973291887360392296412358807780592686931976419457994138808248067047777696730755036149107370982314262114463680553591555415910230947980795519586301192700082011951144571736709044362526546830306347859690050801769896867927882723868409061866585809961755344077100453839995056969210593976337366875304557992883640324869512652021527234773417764385557474310367152415989184428165354112866174804284736801399965568233176193703635421788342870733673770764861430155023365959726763485635934024975304501889643276597728490509155129492388601819552041408897910722010604496418200882667870131190458922491044751218402832048668320133506835272154013587874305217945880009217851501155969960595062308613225214117875101042477271464402176522298110710123165018807250112623136992957978176136915913225822404605338696017274015267530450144311537124657311063900802509980861163069513886219669629736673767408169389682611977050295035659009607233378678714918851591670232155247608979978087238324699602218284516186176125401260994614754339006675561467654153301534438673692990811689536024023899988036282244763029190607635693969144243187053321283417734395280046271851785682850317812737949919836170542762917805573027965078849698607146157968624121102745476366834540614474590770607225226538880781071099019894127932162645095861141005683851786640624872054280479251569531082077633713846262745417371652906628357569640006604192290590124260184883282797806043672371807907930745333194508258873770245289954282393528169927031552416437651942070738759229486482766283131276919967288856609894254822831349831870875742364857625639514043923066827141791512588022805371552680528989537465587197532825349619698186395384965832062363945334905932788048280262416317155253879582430966918699204059968555818491258710886811216096429091430390322305956692272952464493908905543464174286493087914293248415558500507563404458285177342473231563887361435195865230581102433932328964300698515155447762953106448498255594024945604645364016117323348217690315940138068307336672511565621914526107811156223635761194344329991325277883337055492185465072642368374782187359692933535489225729654026663859208753545969817807126253711087995986599556140032463169289234227485668562356961923111235070711658585771439070009865735714174365460753770402200763287890339521674640623861645315852006266332437608009639752794781477920154789155807296636168032211603178974050466388990532481492519079073876062963175628279707184318265308041460721359584231549701088918948936115537440200750825851006097473374959350597245303878640796593109312704347599373481762021070196647594646410627009214701981232925924975296067127282327988171637292578399533664899497045032288302654995980834351870369239886427136970046943650410813161866673500982777437402845221678372455439726034237440180911037585233640255252527975620265836312416967858037570782302024639992944980069974590320681698355755915315298874505773206025542356796756326318787519975780399812795966313966341278435300897159760511179567227820598387682032191757563931825500640696306845101808847490515248771052910369969507485737736955444886065521128761127690753421666875418334121280454243336981024645371610257934807244332137921870247883336117304629555695725954265534817484491322210961087703365535477007468143902965958696116712738368826888880556353311213926970402213529696550422274290174037708619396330691230498830010108040535851070028888634528325205784968863495225552208472257616806319504088854273626249441880924995680753859027743091170474592526288398827118962137937969730969388448028790674293666136041716507065391494772849179178727321810060228866776427837960932812046668180672838773668281599455860353540185358444637953891041950260610714827718001037683128423922634946667897534890801399129790370102972788618628400796470477132311480804160652494162706913988408105282781995888567478626857283764805116368382168786586177712548361678346442476702126150877087760949863971442462985608226788029257631132018336051665608940481795097131347388057276037142230270437166048599622738527183780286137973919809428505306657459803301334816665590138414803721887273447669165826347408763525248969413232210985408157339592110255623104836503714848284743524885222532157321599278973378120122982376078952857088111338630789372373217432094062175517753079447666536131857207447424928965855190432902764395329620787447242610231616838621589601139826107471123970005899167636379497146281759837741244192590013639488210191904862406761390300180431675472964919852064384461025746995390454671343853066664953228762527771211359170188285912857981833800829966775951584387342106453492409008991179678231443505201220476201639224301511573144349050086178236125894246796897019927063796166449168529565258170340166750240693296835855745069230262817014440341892265992478046996196403524651978015878191300844138251207604678007510309781188670588087780692404885355108536030527690150480735463046623089488860524866237601118080590288178336503321912122263902753728864658728309541350439989813055500055605145486528529477976935712233255776179873963462876059779444239255126820809286983088689634350357414007383347567503715275774740125138401333264804820575978816302784224913963232844844487189350628333892596678431299369127803961983928046953120819615647659288193836431884392062756570433139470431668688900622517245587370612355396114251563674939745078656666616977700478372976537713944120876941163258138986623808328660872447904355297703890964917442528414664033310353724365165950436658716547939689928960477216909814934194996247773063314513316555783924876074591982942045797141815501134361734670335702001637555105521552578692996554875555132432600980757536096780409704926395897289588049618236827313132666311097897125614389379844859876327012284412122384774819126661882646273406485223948408200904499981669239864118459326412257389688252085424868665911609221440857175856332305110998738438360317108191998422491079194197839670762051949890617239625373337364058383758244934117734186129745362476362326110781366492753734428330805515410101612986893983415075377156000330890068684645443833180352620081950138997450615152042048643342588289100256631974932174345649198505607958148425615742509109990816041584200659411591932507733376878233819772979045298626189443755770211563440277878524882910275436071499541012152377800085095220296883722378575576928201471743849942207195317399443369399600670835053129933035742114314771437189886923418030403146121942521995452907644161313560991062965572299517568325161502122648144040775699939629308063632723698996346881829956684180437847783125175614370987363163085190495562119071898657080815618937614124452635677796939647276770446459954097227053052548908292115092088260805551199849431211454824721516490082245625865995555854662214692264441313438858527895049437891558029150811017759386302459955601346045102314742203597264503926971117679208595100068949644186131619819315595439344296296583942098498213527005158803175173664280960380745684182354961598741165269219385661151054544993766942349247045584576916621726468825222372724006952999771482147238279017287909901432007513108851692305411022606287829991907911354630416695038513149622323729683287784615355498840873916621437318937254194543237581632029172875275937879423413058940911541184039490595228377463758992188339315712697191074973499485039548332138273716445243036842593145895816671603773415386008501585431253158371707587180411274946555919449843825808407045577794710310027044645148435686457992537072817985395194656608637748242060187170768262650059133564333760407837882413008221955907724769031232701114673741258387683717832670765885939353445316740672440011460794698307436534564942221924647293910496928698114449264311682013469714710170398462957460090151024328482070565516652451075742705486117135144206296288802541816899883711254068796478300575537700969294354741457358373630484971814146332458489348992008503212295447711720883072456097692519567305499919236230361104763607400692175858577129621434434726255990368153793696585168102110877116088379447020040710555103275754696012044436897816102804918482006934045189527041855270474415734337817773108837409668783618122199482997880763655161593520117895613223317338912368084845768729050343524914170877040454337839180678526068854580255893473368328616326351957356651131096265338603147046481406615913941029471959783887807032241089946539464042145881088108862845081269122909822340948611331757386387447467228951426916783807892436907603829207694071679151349364089802214569644922006659971866612527352888405324842101777841212292554731536265386532809766713164542507801529508594115092307559237281599827616609707395642494792008065750183327017413035902330149439880292472724235841396613679392525576169037526883701542122724550859611319519819161802243282496522582849983640574527336591805101065651495211810357320046205831467326597526302271390052395263516354742396895090906558090771561475223549982921532685689192528523817009146035468238859839407334468544286529039186608505672876936872357789793119197701828013271995576395321087112947355990234089555700775632937942317425747884357839661763196432624021455429068213638838010426872408251005279474865306256116071079291370706499880392526802318695362202282183821212494538458069509878940218198246053233279453164406458863456527026497648870276175251472338301758519687915649687966536116543784854357267200499470325999518553819243548707953477685684504733430732101502009632155448216028089428912591781717834382983810441361210972120668621287568946585159849443041619362638807200134640270144348100075971264345535940507047190067636742479527346748532764951925457581367575034066824362722390663289992390510695594653275020641986957698838650715590604655271405733425842351585644773376810285228034485229113621130803977798273459782097264792761531686945884917840625071609495663215496472930937281127596056463325682307590056036471623152035806573775405766839759829297888936740275104993239357842087318181579520251279732572409894280399131882239896296430522712669918908606874591962848249507377661103635701468827864655959169673329090473032354752795624637331230329642272732190510393979412446011130417913495854505268692323671513242721397313901064165123626495612605350535027192215749433840652994747077775779911864418371890870669391081934746047492591482176223005231409359642364487175493854785273303714321994943581104175766581310502183040364260276944189391392423902998615145192558460378405076656320238571406937836185548871399075992522492732790268625690150688745529624922425839317672747204446502632456409746375609188968172777603422980347470195922736349199818998990303941610258817032979300103910776739492049269272589702735633938639573940180312629535130887473345419915550401010183419984852930757140703135535044755579286604713117671454356372594238300516123886782199232908178025639828313304141907960640062592132818230379431086862428691016543697678821653675958965621927302795204715125045216576628445572568742840153883458355091874204989559975911639770282240407378732087828374110388112525122134670018745451588959606196421661351039619335447499798184152959459107845340628371944896733757415807068762658158677360074797129109511553996010473077524114430301503164358383420666098522145910817701115992450601994898380421784475076696136245936775459126469232133567634241802991104993856306158231265472164046667367206902516263673677384282089630885225114363450362924438062956289010153073419561188807400777614978141386172233515630578658879330391391078120335297261103838809267874445266308948413569468342509352038672837872361138549989480877664914005638290229519316648416034015463201306810257413330406584475994443369407982001543761670655093980211137665230581472678749193523818841307735987418326771681631587520275104198847205879521574380814905215927888768267529699555566431025764238099336889650298881783741395700941220817562875281022574335542686315529981422815879315536891698717533744973636513000879829035712123073443494011664115161113624641078108451786955731768063259434257331067231165636002856841334243490020722627148546081177436591648644944452706374501536485932384088253594826309818244754036466017919402382514961502377491620480754307668448761055620810739300742425699638238506858400415337327819913052471583685563979194789869418119022388779458868505986446002773841580138705524950157414495476077505085702352972004984496430490297945048647742075192549460940146736809132591865362223449449599016106922949305330199822138896294621103275860996898652741487091682344386536015102952284116490495379299583888268979848142603963115495427512147554756069566857875444812841888567644370811917220654104714060924495526171731496818726545934946566464455952252509678463336767123535044153377332922921252851524393328787635272164582557179253232865352526407402871105875403419652437462641304887316306486448155304398280611342815999841248621673995358568644179290218809081939232850627525695096884079491086309169457308256334593034031999732715783268151742161759575671659471848561774615017632165891943621653774364789339997941468790380833274192302270189718300500631458212781746985680578306475107330343062179535719043687720747443616626587659701574398321242568219736022528858858332393256413664054476360219265250059308509757093438789935187956296643322853071439980439767529028948715660943696092492883222918070258122802622238951940408066147328710887666908389400349271174504406357398496255462269566777448130009646580535439432885866372643204168115930396795320480085242462601759124027402382477077946289598970441393135123193038368283497694044572811853916966088876112505754841406980858222162925049464019760460675712113772217510759891235894198125149469387558428602816834324343375839333027753420692621216665982909108090460673533766083932177154304106158951075841286826279345278547638244883317336394336445947344661275603468344751489755062480642484479422807107194387529277308101948499535103466180806425266363659508920373734867648946827807881182914339505389342513542647794450488927457597480285339776253463338321168742289139479579900823912672873229425625394141419788064328659059306939700753058272185572112519660794979516759921842840598277049948494027228906375703833481697486547104707384528643593179520607053793037483437299223239968073526468598396985826509976835680920110985283944336760334985174062876964315858248669464290036812071335019075104345054642247059943088261827191955111028332498080675733451336469135123715964953897173448023000474053692328626982114575185113154101881125248702411433646093461347803896689493320748813035727123980598500018637187396605566327142918306337697186300462182061035593775417290976393690937945697444730130687797288555164800990880079865633602461006844314408406178464070458584584567524413218360773002975550748084953237269020028769913423118601267916006022960276917765151443885065175688537955375708765922508497564691459750202937463827539059067296921613845248606051858384088068936830939218037947693252722558756915579274739876177852028730822118615024459491499091887095050194434116578550639400418727975753246354993053388735541149508628396337174930903311160958982618226668299595557610854944616338147611039333105300216838091866871541892101851877305545255331370512762220480059759832033583627882947986026477192261134216585597917137721825336237184214674380212144575214090558497731896711652393695855326605876970810279827667806826806513962766509353658203793113414519580672913191152939218353269460997191109136383642914855246026154841770535398706691519173991487783401173146677957305758188330820809864707224112949656972423932977625451991676799105452102909753755962127020017101798582876933684442278786308946076727966850728809381241750010334100317043035882318621365114545725829360224689461364340023382460755955292854215620409353973301155929542611425635857436401405030848350166309650349732796564343455729817773205342902247466592427093480908291575259912179035073219918157216592249265728639518419077587144031396434885073516818443409865948641421256900500525741239905573186051625898441173243985053114737008263729086373622640363902792623688747526960387591158747239683551288750511041095954453014133637083662057019657580762936121148995048061860919322565690434384957895527576968438327974556898992079269399734600512005863592934177000436159039046994390199005528394587646336111446128485489526377666997581865855384421572246415311791989624428796270152419135800814092086854661197934101840793423457934882175164272219006918202352659432535677401886133118655346586241706267601547237206913498699185743214821785620977297753546602207841257852445908296308944572335774461739849927424079923324419358118018211340519659260833346395454045662610984668564813934885845706204629681235582967765302012355157507208664404583395605891378708672588128964389233126760046750987867507070319165741462541244557810679881095763263517027526658071154075630041533384062294676236642582639517936923183981271634940954476301815637159992013225248918152692539860783749775244521686051388967523827370755599782278489750350396829708745590661100260345240471708597418693941229751499770693538380157182825612989036061021694538376989179687537250669522397512065131141646917652660497212210011736702363340182918765591721257345545572599811530787094362154027246721225393032371033007226156928573939776497741968981196851590452721952784912948189315553715378712493725273616467316791796614970743795891587694265325419760209825252198390225206124244549281500094019359915917735611948873417438576028595992474508224118386534027002959595643152298706081434093112146436106922340238160114400820862897881344354166771618389929679668414586133981005081271354935584101222147195679949804801270292223822605476734251465645452372449966697582877352814779506499233894772610545860388310159232615577882479353449794838378125129651450978450420263493926648744777612561496363910837330465824441213948060732976857200530315121938113524600680157609325255831199219036519013129883265731038817233782636973657000648798672102560257458438067205027212064008817159378920070600786088421068885032221217645080199458235626933060932081050587747938809287172724895929437760219032875197273230468044034300085205650185759472765249290049190874641261503149095738083191277774401167670556788519927949980888910243563911117148595818639566185146520473386979324973335970626725135675514398174664967642336006180344192224255984941113844210563417327242617697701244242015925939248236183068483553302316107722313760557092705763810243183309326535975679024222618979060581090242447867688350552652570771767758545619282398669027441699572568012223995579171113252557617099645292244351946584840813089324489579307652175479558237555223913154759864981744935420106830546396757628018585730883852774424918592012903783725668886589118931408545161071401717544853017979455649760583231268914705494217040606104605422087986082677604975677702839109640861038721406376633895070915096199180203874748278902987985690160372298816458934404731356958722530754149341916927972562632477903283934719063269768668069179187044986564739822759451137059489987966182722246748077406996255767129384638200253867484704074382523339108568726934653458994203045695482390453530013954467090220965216350522079578216575125612111915929476462793210511381188470985680026002462622677028426781773631951996223371766508421838863987766974364194845429087378995111147519659693151250459201677205843624377487278865938670640758765584868399789348929879337557416477974566163520659730943392458497708735752898158401441426460048551018734847762779133603684410651375453988872720947975478739412073405747789294939776618621496684645560794816192767115004165973370929255962522854295638106338292740035014104966684706791023991233536650061074626835911485645142432881422707803728330216650265796618377702268788988317354199240662136517476218780912015356336277416437939411567608524622607453517236101716420015178042596372481406716500093627237974614312166158709750812228494187205883993920148388992536449095242235565272887629277199798103696205186292773890588117990186021447306762523373981472530863195076997416109294459385419622611422494507758970194244506630983966834733153433006764304327294830104687627973837813645671325591523767712930433189593061875727708227352689763566441139082453932618791174547695061638682033415984041590496465137550574882420298856345643508108954301168953058531526101689943909939258186720082297370167031111441709631348146557458104475893867285684287915110122828716431332691004345501719984859331725828554003535987341564791800829414883083107566515660445375286636772938047928660412416112428883093768114854035144943402442789173049284653638762492461704538699912109886424091176947864213141080500251690402421155968969418520150503529331504730201649762436362620228652436632325217592208900981556546041888486810123581903217660109419600678135599928941333787078185133355363746201526645985224390410205380979425782349370783750759639911053077934051979736010900462374394692858859493223697466690851973913450163369935293353407065011850827096639805066230287983179292775731108654984099641730456530676938548046532585192870762846543739733254250383415948623399916093860588063096093731789777008104437441318817259731375043707012344419877049121172893138883718134591598877921621465262581747879056150019477332022859055606288731830497926223460419001757377003581068278502013364322875531458006217476537067552429513717538752057908140894321577810339612623587302323855644302836694266588434455357714073716195784703146651666292471244009184745015408487036261114767349217542247968040797470780563705771892051699781352041506129124520229426455531491115778862856062214028818447100287294762274631878084536353314901929654494459424642481333041599521225608606895300576589041012527838604076910103512828552899959964306781989896821613891454452773938261059536319586062031967291748509719442456038688718991445646884175799550252894271665463925971092065265003485858813701969580118979458054287250343900368505733258768367442386453990704811514116039077970613420773823480044579162988124882066478119098674732430654801978632339048165048785656409320861499642334915246056135738073486412880920968591119786964901945314629355684716801667774031514109906229109549660080264468154562960550570678349424074345576250790842251042095294447580993205399076510599947537571229688511309292217752436458801039546240324406211373357064393602281589408296426802564394644774163719021980277105561681531489958901209076417046146567299253643104300984032938246090632433182954636631961460533385797600594746929821244807497816001743967908725065194185526924979105648831010758709742302850537704961938079171321532881293790528647512353005064378620091097189740082020070831254574315599643095564169544819601383270303524879994690600300719248124202479937007861346567205408761389426891325649774950651776798906995545264067305211783360656538687458777791494865037049904168879168812646013506146251712301311521102627062327291760199497099480383927160008648775180062431306655883296574306091992373623884950892952253902275872847198453381036210501494922548035170956885619919722932530864847042101874220061640429670606042987686991947566397582017715067099319383905164000720010728104735381224058051943374213557030772028650009591047242084943196929158170993730387910613264186026393002816329149774590295648968006268059480713310349911192607677442557068123269531015010546708652747895967031604768462732926259025624389221824955833116088435075315825338362722304323939743067777508941801594096638253130821393525585081924558093256937089607264538125030859414238437630879095864319602077303694373895452497046942979723857924242756013790238362527045372573039360389906258108600969217460306730106027589988144662721789881403299787526789681293251866845632584516544388709436239808283007416352353511562114146084079274178083945068179893984117926994345852431716963250475090246119217854714530656771048086036862955418681312706123314235780806432229498460108774352355543827104653892350820051780917793022693723509722246349492789010239983396897269808003436762467472871738220546555050310193944124265741104715381644171660880085399837924200158155775049977500065335396225973386014528948724790336886198900968366378836247905949091375017260033305282662533856005291998407613788751536007690812964008355074099471072014138532957665510913284469193652323772514633752266457927822151308707876475951040285715328969108370643011322903955940416564892226084050618624245015695924709940205590051333591268595067490747847489963355346882934704392197120207199159194570358927599530351380262456886922757806944022183161862959705334179750965871749043415585465427827235892124941092534097331375743613421297766670518396855267051901313139345857708540908583544618965513246892605493536462086328653838152990808201532643591221462579047983388302822404374309690798302361713789046097470042568954262898795237008299751029247305833446884866452051423121546100521648197160229491325846344323776979342160990834307407431273916626494284323931602094597796858189427630433328616860495501299343648384598450212405401744905908860268759239347728407842630462158745312128750381225624458181124120269288658035895082275902665140892353358451014463259716352939822132914749256096463524041352288071699480942803316103645872223059357095856591949141003770563406392802213460513996255432555197114549315368184564351446490197261980569481536427650208526611962562479741544757812568018237883842236631277869397463332727446778222975661848124910441669629393067034561035377944168278283403288368050085026705247939355879790211425991186065800061270369707929849360728665945663806043390501670485479048595930632215789874491581927419199729903823460011972240166299781179070952565665445118308431357057820862794733398993056348394089187511660797154209485402996793937060310822927887779278487509812834106823446824660105547591861048081701015778351542728830123200205724485180837146734500359084856296395229038717621419609471402957686613202892516071511390090021234051993559498659825705516524279827716353779296861771849320952018474064299841318240494589156472465743570793742552046967156386264933995964406435650378206660034476902862572550329384970986195655946851207006597958141923783818463809242332204241727811174376594338453106716553128269166879469518891976785141804064583522027322721074005064084516822222306903991238606772078591063634982552980682134309907110687353105825885097362124883097778441131728372285673234535698738528129859303018705452915885429074457230282428136210267025237418228747072771594113640741209535369036418054119431735927614706200941926350565979282141491361522792546806999182942878372125691425759413560071130899169515428445008585349765679233529944275442531223728115833245870022446363468081583831049374137794337849621422980786382870899223467761268682275612962010811255079336155089133021935295198665831646166705590250856796357052263401963852152463206038363162751720877478207250561642584761698396875685773986060673537988647860342370420550893297273782038185296331639722740337037025339560693352231585089320040594050423527740216957186690548911227591268022899543348632236808365350439267966427117654115765877102386120306996816437280290583589675743779717698121519066084875227448503985760228005228102534939770147337264260791215741666312436676062878477023878541523156886868648282090277641076838963237198631674372210669884965128398441055897119637888832151206234503345610462836518581825695542317957764267538143772411524106292314536419094823391861368631601013408791949888116896882189444502882433099463302340126042415948529017367089008856763765838672563419867219735929446987117968067796121100467369001266023403961813356278857134452468108337722407560395224666984610598715459581448274734168845988231032392195356682418667662038178062662788956564676659932148180398651104342989248917881638635177602253116353811970169748823352322772212951667729730082214523175291044368203292914611448956821255860275941505788301306315584557774076214396448454300200482321036839754694139285859620067892204002997470239905369041178415233217399019831741301477530202741077192907948576512709234378288242697407384231627149304690567623638580250263749732930455030682103555409001262516640380209046050243365639289933422379795274046185256916591157926301896211044610123524219667721990210766040314296401332609707847967208888450595791599985644006285995875411370034531890995857280606837082442148667156345853040068198637510597416445862768751297380765856896784239618748449531458513811313367841144224993880715785733390648623528176145335647083034026716888208229953511089604286541626235901560286758637373429094676797886001651434762959475844132479249809676464739470712420477503052654492551887431409430888038819309575918788141096751029098644401262043722625798701019839118392727682717857184729447310138740552592014867144311636460375805217654192680704413639623939848395234030968527676406271884840399054367965087299801921959163607030976854157182680373938350487396627808617767768825328142549213106276586230975643393791862410809502495872999957802203878105176361734758106648179466028570541551814887709590966281387460703310816498777171935796717910033814887665233243247116642610039502276012107980063480169020756023672156879226891819243499198602225840911710020926259988206456939817564132344480063409835992649150765099682153301658359106645342436382539206363668301871402288331133674266796458454243571762069661268261409453600793179990639463934859165951935210598117063852963712859657699586014458775702764365511038640226083534511269625383623474549529997456266913653655751319782381576117417271514930853604355156525581985594307110356881126625669471917191602647952140705058467479729517551381383041525038942804630624401624579501885725903441826607783238708547668924826376075870939338516053228636291751669627374147338123425377950030642869628762722652935140318379471198615244709151329059346332765636824681738972378211645806445887894175104697511761465716017805739975449736987827307962723557678764521276336053261239872993378210763836646362704785212448604026608585668534966545815968333188494152372251056495886573286328323619059166251487004511798405693420698970454001323895039934080435976965027285527602590339204631969685047820104783212119038584362688572311392037800022331266845702821596575718543067488420949663101748478326563352002569316805319200709413380251532143861821590682850128808112215857015541025676259232196098140478196067190702031385197145371530540343770206415321551569328961918828756175552372026509124119265255814496888360195118808774709432287578865661026748416284117440259712056774484405164921185422584220981485368442880973525047025710611023881534480854609652878456560247321661837911069982012307088531136885077565830421515247842524485219343738760295385770614992568108591528640852649113582649321724583963586872170768314371288535710600014333506603889388720757768535241405842623948788724808453413559473938058061438128168686700181306099650444987915527935678530368867974527430469711365252303354479006724830272476899842921161808871730846645385531824162500475247304836025309764634601869325396969797253449280214180538623526285545899925580386102423959497210618542579759088417330111616793973000185762326760566504006195054613848442891814195411571086121112565186850464875009989652860279424872656767744840962472191458168579598798029732945150856782713693056428155807370627999273688237500641075341091135750129488585056629062739211563538962220074116478587251100154331720962662795704975157847200620344669214534688997878187059128206422394297904212117462099476617576755024979320780046227471791769672175901525246264994190279979570839014823128098118671943718651476320774475098133899755908928671650610182612305230547095588750382115354509552003643514637494360827206750181645492378215698308079532305059688434396794091725556462032817438842853174074567436336045215692743907990927451929240605263165896409076650266240540655951762757016136102547286915905566429659346193923566359300680086477048334928797114518389897488134601129300649178132344712616506250077300568867153042424309287532814886950314038968016806193496890526861676369751487008439610682865337548212140520318165838188210963790765071070178325155902482403228052042791738819938530887893088220732883396543960036518381402977173222589091770036738810518041140448011347122422004261251426067657242132969673213152071299835060919706682339537614945273390110460342712774455193989728888346954071485501885131052560059955090878089681884721435204671289965021721217852097089324438297335485974182891907321412361699105337790133815986992584572347180968294595605715869839406865332543048337698571250180930382977849707286916469932481791175967330492943161451783671510277093083432006651091035958425812246584219764699233936184354174701500453316725993555612451903906505393687981985811461579399242746000935816475584828612699531983703218540895843416481940573566011826104760927686173146711914782441387966906730975537566691119821848166042763073189989167890787544446538951063995516939161133878918829653025797844476062843723586966197816217169638795728109833356427949995057401857245727774434901306865610702169659754371750231861029046810745653163171402495571366774083201669827093559850743331699283054460889706236245196919024215522865980102460596563316944013172693254065753294141548578987488170798129604206454346502909737041858817945384665300909679486833059997653189785383954469945266753513140438604206612475137362708250042500423750696793045859203914570883145092793993342918976286671662487668602765249779775618158957437979793943088392310260598382423176839443694454369243677280953021152035753750734712266758709991754948177179534437174862407884364877391210364404791438499235835922900308441060651491036876359235071325193526907632423368979772706280917621656209575219695147081781123790553329669171096049960964857994887244290932978683050917831357842260862654628953946334268465111260034192304333186029118917264825703557584982507122611682987514320791219748364336005169794009840815130069383086471961007237128034662821738309098455689822381754272519748918041123381822807976133494673914696980966811148175963377604012144555364831364107918525328771754617952698745934204324415585202060841055326181538826186280739069522029475934545924470575771045190225743851365871623377988187395777982611713806086759950640208710018380986413887674461678799003377406564143333501995784102826010864260370871553875035899333852818097946700811028460034023785040610431862999308777040079777020317920640517759100582952401607563947627731196673768788130020824922603781575744352518191961672209186936049644074081963116240878148114073215298810376097661776916556642442078440670578005874777209714447073337527833403363262412917585050853429578108374733354523461522313290302443805812557213344906031456456955319915701284751485065060989726658743440852804270169494508465871103802740038098768443180583896017755081573304989564923289376896568330560429986495890459053986578697459148919214980591793460398851456587513121040152633005466606246715910489825129989517277482219691330165883326671694577404699393469590281758837631292413393581546081959976426783276076330863774579029790357689823053415559692124037032006360082020069907402502556664122750346963933248943654801612175758681378900935546484227633670815636763607675500348167622146658796954087697504852662817593314323892958419202065634634278307869669583652024479597156545499807324178137288883018474359784725973491368975695569336428064728730169805484147317834950653644062528162766935997376867604950320781328761309604873914447584841527785321144843453933968341332629996404296154389161590506951173244610217605337722008726632802257949980974347826841967635283411940133755798408777662984133134815896556385994487919615816986763556061659668901979167460968092737604929412317467353756226442554326532552621129059124456545480412723446358627961941578864287375285721384497971683678566942373841581047167007928302374221053673171120431587295062854145677996867044374799078595862672948365828854897742084835742587900285391337154418409576248210796750137985005882197435962559337529645484506097145435583979665374716883483495994687653047622730968805922777137027175040768374841392765174387906628910558754616561331905494596449414954711253723101629027517331857128195756457363881838983492916493962648581236456473972772604390740008646453083981787705481857499137892450394738926059583845552230321083124572343804896684629340315728615999564002594677103448826368837624065823110415607036089388960048706640067874172946481378211925527307945282259464829798072161074326403718153182481152843839838172643354229936695208203943206319259143939527359058683844171369890696482879547729493783069170203445827191537325441998105511191088406740119568383592158883572563917507908109128037004781467411922130083380671711382034811546743306231366879774737881667136449986498227920279521547547322849430362172172776919500012409280065235086642266952778490071650703793261478767808525233774227980997565276890272304135735177850563848803360625280279636003934733994920264363611471188067827340665304714757285979908282137137841203008485591740614143951817726301361708392624930121133275926239665633780709962731886669995840522952615597643434128416698569624162265821120606740241385453607674493656664073848438352695078479133794072843874554865558361254334394289279291640766910051794269277006366039745026310664370680756330023569291912401372889421526910850010384141456614041559766065209185447852900538175170739156114539607447148632273074764933530577659904605667798170691094544308822340287671802967007735972119863605519436310215887904276920637090001572258661939550125574522504177313777422716542769806009984638485032225490022684175515626920242412779930220552863108410290539129906318890938574676207240672007603081784040779856814000086826844688872643005150761167813486450908169399504575261058102300954740070557037744836990236249228345848868772770319796498452840519803811249057602922507420376508538894067128893078902714122834599210104578740088164371458911520008967350196699430137458374312454188235251530804976537653621013964611090266938134909800701653344262056449015281354898972617647417389850541324558349414408304627399418633925408448665774589815030442473712959511450522954113459133698659366394640969067570154367406772633034377356046309364448592666158999738279448910262960945838130011720780831313999265696631977058241965453432718678355116283049322978006671004543628580485327656583724812992919167274766071376883601302584334885758995519736948359332087023362675862638485092447972238354050353730529686631794792068701796131650212743201705628214634183326747549748489470965802680786303386572340147723883948049411136152859278587528300287862037677294265671742945204563441379467434320704084100557751103309060075463965534924266050040307083431709084062173411605727073604335346724616727606390178962425886533586372047640743475071703331256236527127225950285692229767116260423268649193311819382246174540640998085830950712033218441536097757987383873212361086362138116631080628203555701789569845335066539334904942984519551595831152667228281141397330358771481981631067018387244196574637848278973325263196555237095565180100284671934973357643554826588828541273601440378807524900099781924707393822380550323597187140411821964713605088491598460001060605620628513281228627311109676403212670627840630054240512519429695293410490343382537098900055010688590595590238113655178872461392345415929824558330803570221653817203306656838191274527520307841376098706088767827909255401096399606682056846932151792262063341971288227375261823747111618279844178216929917039255850565244613544062540966812521956893798858094181289521102898272853843327416209774939008546205254829505083571106276350108207332363713417246951240503269354793380651533757655381852729386064757964110525077113221909223401950188602932695927620529584204998966426547740587819072164853168559047835475234589516205751443802546152540734727950470616988652883227716439126122541781697824351323792545261520827892558534905084416125639532751233349111333505537899441674484717955980426364067832961930324190704564301891808610174152967261279879089440744317032302659584595954813150802659880357850278342017895113712081205583302079370639850140839103061019895264066965906427506631150759942793019984442911561499711241048403797965153769731346337263802628165807701072557804129250897616418342959417780704215747488261091060333813910197563124871277711249158444904252276805748669449193620199624004130836579574121450602008308326246931791583223279254564194659579151088118653690197179288322519919217884802243920966176551740104768783384144566871525411757278626520943401429877000679922971620540967028772064682300310662691962009830624495834697815702168678105626780484802798282639733918343078668307999874034532033867629923437473423016522691872857931850447778072223612775331209301453757792503812271057705223570298936167870073335256171507399993078507360412385638563616763443729962185421779482665918196993052290382708178030723989174873457585971660865859242159956712787318065380119951371820735479076239402992921405189793341700335233241848183821523715286690481821764535057724315327302659705453988517833783004419394534474602143834342282995389697028380218309189045711925781255839611948345799611759400311929458322193009971737073973455198381620279730745339244166073174185926101540704010559139285362156857904531208116991532583880169970163608153966598967975140508135396187046552936166679422752158352252631879311431227603205584008423112456743854345123429075791616248665620398628789852447980953979794219009441322585450704070077662584303679581829492322878520773047733580450445552214624076713553854117821735461184308967966204681207052098141746106691674500598823508215274739901800942712647552823653644844291765203940328830206979087680848972492094119692361970041785094330529436413778914675157776924190309609448476267672430415220394052597012738054888411046630915232757018777495579569988003888802096485367337048553179537507910972957747711401233634008641301352891054344189425747836453850745204053845937911385868896744650790921197181793705915656867224034532778981889448779105534444604552929336872225937654736938565826978778036762917519917251046955735058840685386927200917335102688602480420860189954176293352275347307107454700658833186689171989070392861162456607697289180964138689557911911320398101895063641608774300321496686615683613753219110558581664627886822643177520524948136265335389634619775628682613794550663795082659950454859198181595543396415758588172921402247578680108502341853451855809139015289444313355573882283727537232856335244830557542084152881652679360679987699750786929007800571250610386696486139925621483892116690284603694087226123345507745250878625013716899242586678848522488907523746361628460909477040050620180235683112475845435923384358588056444134137049037689458852772264537832948734803938849601679160698002905411861090709960081922695547545824190891987168379543773547988438196377020004515024639224609525837396766507057864927688006676814980106291647315137417633831032117445625661348438555266351350799297702618735644839858168059979678335807648813846350626729093802247454739878399928226049155095779464755800820329492547536476428017236679302178606796912621421230524001194542300695243970869742926108413735957030850216596407441975246852523367529702420332937327369406758515025771509048715145817236601791695777285442740746153798683234633293294900593428662527020705434665668473165359120591353741646481053665962900633879474390894318229515935108797760753717568526355366557441800904946771026434372634219588901326524948061501040100551728346945387713893847257508259818828255727660368994528487390682537464623069107030287364776558574153179273820003405732806858085263153438306680477737941412626056140904927254980414092572767977013379813589278744243070408304123786454017378909339710774544616012215734799887072082430089512785676912218032771142385222006706872575316962655128544608926706317943921407294581350312244816163880798879954390526293813558515527888380198747953983479487389994788415972360350699847314834431272534276115709952634371272526163227089181553091491701936574743082946646037001961235537251606900595000626988488457573804724995593978506585778090845836852477664608047768197184104552503668421384582039031034413946075464512966890656278302649868666712506439002222913020676591242104266642061449185388310208162742782944710038283456047703163796575569886230698098313393441265012254535974912458375600777249735028359812871035911516047223218685748911374441150781805754120744623029514646905423878145857523714036003473697343981659652366018303873053835817419519469754307051914786157357081660512567962160712694673417373602488335735273820971751923988557755290919002285120871003813756112541457509227343134617516543363775081982414567887740525322856566420150874603600590551283408516738771630440246134505578329265392658344123237953658220515854162892900594601237319913586184328191026182025148225301325078862006316239521546840237694155467208380258312380311134417051687921846984452532765336817450608438423986224418676356971828346338546247950337254716572485218082032760896884013593344445663273463008100680156092382320056156828702724191220280539860089235312530116304262732966005767735451966059291289123390638264749182483555455739714826217271826427236560045619112350592485106572112243433026483984935450965321829962586695053968174379755354761355258346300755727076057136184368757561950806586299627753238188837461364837648741196154478874179097583341676240187902534058872234390252146791438534339644889848636449958104728943749373635132647170932978377831183897933458278849485649311748562396926377210004102723217023407695569129549115707955247601429678176132125608914893794222850993456308341009461227971378647324408108406782544013046892034982783213982740972901586804864495901437882431562878337196775030263547214571358257746915875679017128949042727617453994319645849201483971547079038362082121933720442252935388527090474480128852837774626231894552873568067158247941673817779355297901406780364426652041539019620505159175728541227108347427178069480440634028982879689657928654864631292703396670793158792786739986517430150333515148432040260005890144088889909838094246949818697673060099976532857091987148156169326436645101210472161434902859169817660411077284024040280445508297636864570916738139069308791899511681309376911924078774260256737204039900297080359876914103119328715394988271036205119639440716652106443709915408595795391462252185625948485472879828386194264392933917606521360581765616484082210540331141001667015418387004505867918366128521937319168737731843921667861828747116584402676372045718238523145060832034775556750428184597016534707185444383767011138229124041970309366283126865344454541235371901369340776416337198689134002840174855160526784109976937114500794709380760153277143371518960422939570812861861223801899673547289073642655722046769283739739789589065086684049807473747422254464071676075929836190470174987371244569037177780336538662658251157745640233442778158506986648113554246519965890425968231645144837303748416305576547617913187720645382677024932922373608196880560399036111759956101610489352539098100962280106126321313625115252465146852576626499939012990282928201111849838917221745034393215318784082778929815037129467221862706099999567163423576407406423692866874579990855564787769326823705981000744628662749340472941082653290143846797682314849983841646593055880900021657507536785671510942073460501971958141310218778276119191273876242448020363231906072558138095945280979351160662352377163780255894569203369001110448043663310149532734829393953557692647535664456558273630179950917384792831400608263659159815707506188406862317082179826970069356754856724593968146771363416070139124785054964216643774918655642497727318936865502746337771257914221763569594685000172574385912618007579468976236633656947466557270120837419894929918707763946516016476631015008243449681713983573709398234802593733845747259293270402883538743891076430911846635548576030820073791758317003023802443041181905955019663745893201113699720252016677589395936416123192414404987907191094845850910134781384909652104734678636513084552284876172081290011090380692257008420196435698328942844637661574716644815884926339045116973167280365614132500105362522151364672477836352807538213451426735026791899968881456831325388907152925372191135322406552163170997391551645762554213067168621807996383283896259590188308332584929798322119125971346063427815853127389431744130425670546621357072600025887890155607029327685822975383307163964693169813849485630667835009092493565452713101304514417384721080485015502104896778410974169747587310576510285860045857527011097663001764469071622149636526741135207478374528195621253512900219262423399954967312078287378718835451023073075621912584578504987650442471121917185614027127136358073928781082323004679461345310227434816847717223638721294630320779614731183315719876899748301200630304594550346213733914609540393348087797757892118900351941565231357539994844996988987842526000763499577519569570117302565284996396483173521723476652539593145745340708141865623473448608249331149292729522474597965039283181576822613637067803452746799104990417082502358380419754857354536816316888421220553887933899042538848639240725872332463851733865382976832032518640755258497229779094491039334790337450978034539811237974340684575390032670268701382031855381945641424089275053024463684111532333618577418451545074634835322452077345738213084834291824478138947687321096250220746367985477232289608740490020589771899442226675382138499249871964523640612356450873349079721280992085306172920762715896595705456496421043081842472747585074729361300074118074652015511492012307094853760743100419779246175647125531860915556324899755943356098074087613068940278793875590485809726625590770638001847417510357496451261840792535698007560255878409638071980766846250756416798236492989248997549257532985675798392551631000702757970154221173888921661778015369273772023505738496926926991114708114021672700671137132443333300052001794557959821051362799618738800202771549871986959921757541788475541798437201509936457694522611930615375504611850606791238974223005330473478475889659321347740410556529134589548916481137489901639125967410037762151789516144894945966727275306785113734575002319105172245408725093116319683473690249595612610627533929728538883844204447216500261458582218728124589970565842438762806473055051868580239798604668513339137534779968857660478961810113136262252670718822213843517960719963003638982799031774284455284563643673452366681026185731501159803226514823265900097746863046267829954202474340254454954041053828471909741857392365583171183114915259260371115010015016893464387853879747118772265384307393497304504812796413575548296678347836867962331212380308559510960903366854009157645181671627996436316166380805636905919941750878400626814023578720329858459633085943201001321707771353442940873165903659367027595936580713627210990736520160050966393815771077445801812336093982664574550129852593761185924893434085691939764146519650204287345364469352233876362848069643396740467016129042957889992329533278513622749077698942614723829245407204422596948841914730363528777587793753938119169182775621309271652125008268568636982651244385881931460496187338759373987925487710068533910677231252700679668670192006365673654427863179613727252860863108975036430657449504591267956640147528266741089886942784603964154536186348841737235337319468387472534320117204309092484185903876875677571274763517319249377162697962298599736313574827274450584611034448442523545548772688138853234427299387677107420275555593708378245496575571979943187509990420161564781245654669292836184335675280577789236193233786546439098491660156019576874810522724178387813664288553619975305431850411556320150012947314602689297338711534861130740284920780914694875584798153754309104217408832046896135060808398960024871438709557496547183167079480246922684307559710477478024591110079650905930982695892968959691414390981182907284028589636111998941688149745512669239588906790893601379930933724036361746595294886821789551750560974555654547773582034339950561604658326131395692338377415926592672309123126578690724378685247672798604333146983628743232983352962322072754618992863924363407107489489899908097790293587449980434885303969161477380808087159336263610570283340124998044076668670047434086770319955529997539459449876556112032990733001050728241919075197021671683643805428313069598001560419727120069834320450259393440584072938701548098244438265684670820470611827898449267029925147487908480924200461860208034422021979791859085347624991966080245332968149264216146467039051093056412432884368090007484382811715610238933849700991906413528799879603645205676009110758850391082750070649283092512886231644159762549799616624121254539443338599586809380854969141549066396727980436950404867326534424440673706946513039298982940554967209960535843439121686720821686187727616202794230489459535748379002770985396632431496209406609776452729370387299365335450249147707801426077414024785678201876150819154699312019607149931029773705487222831636164453094404540630909998068944197435950598585356930406116634110862091782586226607646988410672194266335615111442130128761540382810977684913977550776580157602531707204429615006817268236654764811208438131942096889015359155117951811965116783637463371298909249651478398303283046420003541704907193792551540448147337340895721787492631205098066577892201650360209828692355079192520972015541877178607014562838130027841841728156081248481599845268865804020554542019890946706516351750815115479000556100749697548563422540286127943592609718788323205077478099414163394522037839490993612193921942317559785690325373676752418728183456866499263896397159833490930581653589522171147960982269487225370028361974169535115673846894663932542311201752829957329996760884990404551092083936104526022002523527867176609954940459652722990956100834602124463700236148670958365648036400960435709415635315306782642000210991907354929992007472765799455741983730122513280318214358111537458260561329760512993390842937632155503069181729929282858599938317872738083310984983271497896522704964603675813567081770458355413511744307857917991385654641183439556211021899059161942286111298201641578130081851445522015048614386272729380609677908165669438222579873039150132964509915039942016138419049163079603991592298688183596926967508219509627549573155259573539164374335267799484895709527616273959786891840004980861106428010825973002789115639955363891637653843715276844072617573182149851648248412087789353133280346345275778709807180039676044028351475203055129612390183465148287800615895600064754358346050308289760972104865007022793076087505660263105943209658929023377954880782726270233873268819137613896996828563514774686408038678951268846040193960624538058669943566505816265726957886996988242889057119380018917483459218248194580145186789362877417093454750146084435748580237631004381216228391925201986133158169325898611709975694040283107396887565628191485512939349934545078758830019600478953959558749672477983263143280635935516561561359093852699371222419683561049907381201880945575795668395837459663580993067223327900152639408796406618507501132996910689357757730102205762931912535694083009938040518977016227870802637828399322369482664805590499597329916646648686135051643845640999400883231476534980034345182479267479087429727865764329540916150590036460349422064636724505693670561354961648555832207448935037591073430748262768207815985596361641078585930448100763922040366519493340713114476832200142804089339953549137040203701515628613448412597541548189520970489780872859353756003115945974255504320487691624199438866239950389420889081482701969732254969211219882103930393213608181357271453952555950189427463731764726271979481947674662878361145866657454509875399356708839866364928849511052544475115383812342039368853781311420197539770319034147609859389018884397019515945549973386394629966798477669547611244686075469909316305844073964960422837713535595266009190040805243078262978017816160570416111025338499130522091043215294870946126623265512173395536491521868613338524504740602341112597850466815289691792177202349850495806899731821378655076410227056961383422365493500098537728436437640417528388537852036239327093482563124088824553640912520245280299603320268242122835325981052172026551746866454752114509209231530951256600346610037272749835985571059314028391949019942402998703928113816710048516653909811521979100702012602066749041922051467330431057647093944155562436244048025132641760267601385217423676717744756381797715593235543497348432120742840647510534482171248956783133572632103040742690630147076142422624661470850549699400057543741382232723382965338624684166703903317609416060777606265330432948876915927601500095121905835442143762175891484954574501625044009656937584513652939868698409287689858536074179534530591092244602273993048149973112599099437574352327926055897826820422472611390930281601360998183895455605030979748100476347582319207392784689524042856176055390082004300254954138972057364691415772986572242042062813766917427608568982219544273860453086912067860079918756698517384257905308525090197080551795257108656709234500053193115492192505605718664650911676638043800654813653455603446714277143668707106895382356873355902713452170587513078789128406459624660932522504831469499764904262153925180280344250545805959033479096044135687226239904339976484691659997842491872979926281033388183885535266996185031577925051852722398266987191224800236788254309682298062340932636917076015439550183182473499175202719189993471703557550607294239571919097672776263175805848816973679853510421555791835330706816698959592435744900512993060517626877705032011702966444317512499284561393836257024018808751474750839383517153110687006654330633086440712649791218485974430105734449189779465187852490079921763615567922580071357815826554961340541657245879710005967535878599787965120090075513062272175127161943414662300538854631143208428880837231725862977242496222416036100031692611669907009125069142864438420653536543242258345128151424742370225658547866573421494877343559489452112782362165239082822829286120655311430976838603866410155923636770821076957664989740848840658626159946466113102437855416254719166106002414261375888077972524934056369010961306772372252977081484901717870468868050168389250202933757407254709658393843376361440276411366906361027302242351496371581511505798101142868904364095150985150239121519502782677237333065642416505842303907082891515185236429672477704545540420270654721472527654047885375966807159104285766241690717046661248985100453616166727419991529437252536815295255350631960669608294565212730102604074749249497938796640195731157817356606022831862839876958945258582863219800354288364171929981304170092196182043134372471927576497485652997405935282588682792645764794885478108446020350896116627260061145529101225051518552902712851894990653751148234558668169464349296764505541226007256368775488220890201887037798872861431404311590779729225076380468975258574272178195223252147314769028333936566959443453372391940845632592195587003404547366270459142199873698830925653006741133933695592838351347678379824199183040097860402154061746520043816430061045736393799304215858787089890580548658946744131193160871285142349070467356534237821841246188122541681059348212229333329810463978769446737102603309399703004330936712387250421280403039197318049449080892833555230664544645195211372479501624562201076762024319072167769101238462492720275459006066693116598293293575530355226787225160487820427383505413850765346145253143931665563991091116041628557229263854315612730554292339071907222764285518007156536096735724450155542332215737409579762925800022095249879717649448517532080898501671049467779155095382451182361454808619328962331522558674360238495511380252869442591155518161327239657566432267370784798780509902546069511299663787629170244048935885648762538862047266096267750400200850830843552276054394825091848827121381252156732799310890678614547335446731137563777427122738196612241733616545496698241694557460631738043351912913509380838609215546491577315510332813211880219152657618290888821677902405370854204189628450123153754228974087601468376307883275123404947805153816806545337456423769176458621991933694300958081715751760855331982648722963101992843362494449302756480637469818151908845361495886808438770942449447483318344631172995865211577707190532738727246779538056576811843080122833650170034182188986583308675236246588858106907107013303131132062212702460903297373238320018324914343367833587200252337093051762575401678829422144631500053180754846641700513917235494528564203494463523436035360010118116586678982474311793811352243574006046734495836027674718099443260287590535386624490640326319064248990450736310704038544041662762268941259934298191364812135860677731297600356426933408219153455145555824874530293092007988534526922200226002397367485491093397679774439533517779790247810132811446113438313078307105586400975202643751005733211346104687872594475898073179779385909896115126852650474421753328434557672063656293259921853524802421310373537045220882436578228850545499274836970703106299738034653548587679102724443689120497848141915335674995072023519609634030128981827122729617762879071369858135407755443743934738969054202941549488474492940646696564622236843981501599347773149160650350836130652805748264472579437025154861196416214692802092839938305125633001924282553416659349775737533027436801049594145108818328480987512238154243151681037545188911317625356397596405587352527620694645260615275630503007930264595690094322292042681718754891937650379770927623826294838453471658209979937913901128195282199864532570985656981665012579829616133562066217618865030554817011502121489852135823448045466005900835016038351616195504062979166372351185483240961165952696264275480966304439146615751643383784253966201976993963627920899221590426377809777671157851683959402084389293668151626828395062651459151742728645305353409168812985924394502924814012088647726886580090219101580167920236812991356492740443403781151114549372012040420391849688362220418704471855537839920545000453628615365159718567646650780308195017984330502850190256068679541640772617435888606484078277110153168403420495121461635624624222362053400004731499752945370462365725786247226259341767449027775707625863210379985025954545248136287885652892828055644149144521642579360415042480902273199892208823499423972015482540237513518063991733809400041969756147421372786937763317580031246747474438831762266592976984225981767038794779035621402735585539329724976884525780522872689930278295903567701967342879422645975558030125335685991869928687360241534411086908045877700965101198693850572041056217929349981887919193506440172484117540106787814815752112920252499941699022168036650747583859764714179080202963365046886422978242046228540217308362678444208644539307638941462579460264588502208773261315626349453283531653844795152894529658964515033954907532992141151288114832672009024308163609541965382487475089278820326388370530709366873700878162707022720789019909121172124622059936132475042157286581404549774527822803320305527801224790712865348735091833169950363565914794513989441108567155817309856008761898312622315117204872811798542456915702216127846709379231561366067619059836772192675042646244609505182826719267950640029766976672862276023363092033706287734645510940388491424134225209419842612900067549998808945251416216384896848353182065049832555290465984961944188272183761793511891000471907566462703307593066540269906763964821735960835098013947655514824653995574252531087298347019068877650885523500454839886957467573099055758014557473780750960155587535409031449372909239556476190115861387638380339840796481115236930462253960438986402801538752084840309232401042634270376672397650616810183366418754327012283689237785127672043008928055746433897739526218295913574707647765588824312958473650745162978255405364634141964755003749453572548976773120167556931421934437289774444253547021503663811808491553777574836571948597541561586973088982565929312959408162209466131923597010966915153047388092311360535728479479589564265701431366064096893157253916267626629966953404713564871604850314476674842892215111341925074049962862808116661449655541993978260283038120389851554861511406978924367218963390049249087822933116574417742662009519202477258649508610741134005311361996816803647409302456274446867833481641738398283225589283108590635755982706566085814807945202594141890909056096964336377934001371626269447632499142175179402825238501832739501570749467351783367635605424036924693070326778057337956675831221220787813076947742507045915467923630552426026536522534019680394949451305200791692903027644844965700490563585801751510181143915386300058958401424519851912727512986846951167141012338115851908072955894569714769580629808774191310672373021215316348648195666395075631569684559236085148136894163211427095526688263863528199728103809145673060687928626050173705624796102149888012989751656120161484659397709547727383381964529620713772275319617834890412289302198114911865244622431720676334297494786900434791587597888397777745403088389927257164014467433323279350711061778962648909495550494340907534454849543876826049796583893283628185042733522827123093555993384768649762567218142304222671753781195872486338260104464645289826894968751188167794873651174424766345114142920821993890569227666561151236786370897202486117869789641063294428272659874659513861535340776648395666532907107772831567014158196883930508008032059095354878798539343402964544154316722333263317313658276723891192060867950607173493387898384869201337249537362572343801212190393711708074582539717199099361610447573487234015013621520937706898354438330925863551621929584193771991370710413281515945887840111108804387501980953086960153991531258722744673707499146000905807390588571574393104423809839699913048242703027447434686459786167934837109459058859781766977496121659920606668139766567159218764625816938363135325555222937079447222352574285360885928464067861291126176666749829283585700035099478542808741124708256680704425829328782496869649960971469158999803975571056809630599012095677326668298576842576279111046412089101100457275958869655472153673977245111026620565232037275696526759251813221754304064548647552403617587428007579328196262503565903827478986052957469988530802553351729509332841032233778896160488557214857646793500998823546092196777526500167982376501182000926661030629020379144007843917262105077773035878943598329464014374907246464835074099199933965738792631206978339994077835478886394605374087221631875570393494390646610952921798394613123465430149245610086593710028670601891045856616145016045790360220445362786778397495174106661912729645261506521967810340338876226513840231566140365757842203062682542984845036496864598252897855250723625743917516086765560496860281796356271822548091651621405732221278485118274819196945381617728950888757494052291545412913326623291758307039739188104234138042860166205250801077603634436263825268534345848604657087693871278285774691277256381102652277664840293566274752137413243288581658326826468564398560088833681306100162869014949340673744481326215614768318274608847048655319187516743464580972370431673152670690764577733915756802941367881847086823861045258294934848389637818030261944023715021510460562371514326793794127335931479651560339074835832736956139241375690034192817651586446583958073472053397806173995449637220676850583450638193718137575555299952304709224790784319896409051016953653712560174767332657025001178623434210314848480679137468227722348503370954747188987755930220160381713613620610631487275127260406734272308372837172607508751622334181926013947094809530104341620172858992507282541812363170379651529332005854829311531767495873246699978799348153631633240351949154775795500435077480597639762553407024667071217646909842601656836880280259179657771783505557548202494345698366767008172113768028760965708584308752721878063383143220332891703074182282301568945753452002527562063616297914709215609571298357944472499677128683125893654561418500541045297695735071556422014257657114081862577547436217645850085588484392602607797504432113712761402040132490979303427508268042740891651350990318788492550082483635076008817827177544505721477136779103579758220082056850827598522293244670940339179695322190532160811328915010087994857835279068199988721146387023309337066997405698729481802119417759659084342720044300122025753188470763258308940607527431926931949843350528092694996932337812291375670307249021538091972727043131852155602166339457909061403239626565942272978898572332807132320246709001456581968767006972758057142410991711513141298070297299316517080787105911744471101603386624932934326458365840528240364518405717776087769493150309548604423354722252280424471411115347819301049589582740316781107357967331139239552291851466194670963541917385443670153112913733251382654280271754648989895039109830265446260669091705801153158949838869032259304604415592910114521364688514348358016363793516758333858177623721494178586759906484085130044123273397154886875456918686023765745672882902543764879768674559580105850312562472350185783043376354034934657093347349913790195953796953185316314017572866458457084873766809394026851033921385879267430953514649673552627188985998413680065412849008378385550288665448433478660063924623407861834192504814830279992316509601240341581706704280564932337826771450847599443155437684691141452535831237864225913178634135013004118808438574112335151878943930499996474699736090969661502082968456830597160753643948174393268032603148727750754080354164391309114768072136689023723769537572522473446991746598793015099695697196095758705375764391994985785150274858498048523419240896929228573715993474143002852204953004338724242914438819797381606262556265145557024359376164193991814917793232020421296861486496098540174557123285384323672522577822451429141324442098700782008963786888124497976475367412998268495957792844498401766944611909219624726948941715636741540295910579513291470432192480523096153851947999259529793466841533783519806431145813349693990781769785926404088478194713097043877434351186814537165715525370354145608905571278925112101879315796309787404945970480937878160970465442657664122114111007427795735152687302637316991834256951760978663118257347908603765543251865396918360835485440141692886760343678076903043718812698005410472353509377554828411483394582620638058051583744146581254805598541772858346375406561750937433799008728377609915995090989271692242802464199363343772117693245512751545832522646801466218484308749875039152739857376473767882526917871613434368183090520763711815767785403746434334799832495633055158930855812801222898929169840043557181897934913434261881935193587635897194832268606692309873517225748284712472622942037483831629471070803204506543512168432079986429899008712572835851448883094532285006786318340372383223211254964197151961561366650551644197664688521250638183381890651964923861785611315828300364854708386695254162763341555661999953611686262257815845109502994426987479953609149825763852316627139374913974746618113589782953377080535732801095515459415465640763672165039151136901740762212648759858399388437516024246713197602756067334061674650044042608139016082665280477795752652113443988005235041573575102566986770199698233487387479652907397489599154414165597480292988108605611320262269175389222017899634852906485944065994862538436274599756176046983410102184884659741516741355120212297130452633703943703955676060006205488688223100334003377977075676782471745047825431033339667744247714182376246313806322562144986478641775553870772791478075665168451598946172095378621527665930452163194582518657139670268742884170232701479130851290180328437456878304113651335978555130597151936452489045083923858844991528143221599129593034035030777050189976197382110410070952240383607505605613736006603153862809016992083218225468238194711413359215681814664746421773840009611316799867447281201340825445601929562945528957730699042887689725192276136219130424947260397740883518877619530608595912502395904032621428192402726592958801175043223128269244722750850262960403248934583315889650914787797223853919893578674931681324054995995285972387053662174693534984423397700816565380845682780779508099644390183502560621341607154295709369121653526594399203701239643373279797540950912061119537146918579656129194035908209658624427382481937036706517986910828105611719008779554090132673793919550599057152986038425772542043962400295717907213531730459941152467487840286063498972197232299514329146558617600180075259078454094896081846431365462535561560521423491891386248292850362726451029094195418963307112656259244979922790425279192209743034519831609541773324752676209831537925671406951946451445257762052401011478456911600841623219137437648756406964821004602014040600236558748854990870181258544881867204253557743085444371110417506161326225707956327515589625902468074654466085634681543998219571699283792575041720797651385922630703512538999530128982254217051058108865570167422876323551909399549193319556382850065333381990703608706232045264551318651187638641973728410796416813097136489800622466804454333552869802551471547301580093019684823546270879476820490919370206953817113316795838678325539548777631298590681261635552346558423259315513820387542090577438494576069965959631354850561090493374236869869626057725604049814391269848932506195525950893098833775212313812884752864915383200375985281241031870398226783549757041691570783948833468243142033814184108050218193624817527344895990001168168744211711605403125071685813885905812616877673635245947460345157770528569658052194640715447206682689993290126278665530365924680839675299433652838105985755842675729151693667845198421237975426567135954662013563088609847453017212394930445874760568361229328293872181267369889798425031928425544766283560434862016297916725286901110717589329942789887952770565107626529122983008097532170868973801790883289010618130861301755246993237034859385978850222832784618785563903883175880133218336700349877696523632913834942234880249882060458771687461533415069897462470904274984933974851775011484188573241488052542625605715642422072680519254331564320017871747326057166084365173957276766309396878640504393254074251284155405980596124964946073903189497639456354915087014322413052174207998689810211282138242743155061486489747467824511122188978714494470738587485307343175596583431638069472436187668615010866815252322460738650888090816364865495692972108482788658285561147442468977951066713105897322639291429710722737577427389591839005158741765831421530541615648326149613457063194189909409874509626688720189545158002320058423165187713182218536422050690373915321723294475407325096525400108513184209477679878010531536515639076916372740390146642713112592644963433091135758865428817996864926202369983433727312352798455388254389244378107495803758314713717833335781242468607824471949572059166431530597303717916294079105376445248853884821013050684105501829969576809728459933225190669806153686121224846130150917787438112340215876189689176524115670635819969772315495376905464757408340756372185715290435724920751306661597831925365015038872988234246397789279220146017091265252185928055709940878319726186410264554099476463144404628064907448239387754446319977053550965333107076055172349854961982994708678973152352388428260204829561284820044812164766148882665343851514227865225690995807383893029626418740406697465609550492758978284791640099263972562687595319810279748789377095824295230486312687670348759591348197387260002930931472735188986133265002999306884403456425300658449425853709403139082012650744577413836127145718380015639786431490272693558347133463020090277904522922994930864084035818434213315351694734132087930347090310518921422201509115747795610979552529596622794054069765120297552344863837474269017966038284565477874720096873248853239247930341684438514634848210794033724942043934465226793472317836898858238631243674497965018608158276423220554640129198959763711959080016550893648468066189091040347494211677053087441834194384984161951400300113055168355865217315289655716939537773275991906215236996207781757930592498875005401574873988805526037543339115082344977577574119405916497830368384621343436470618448669586406887166936053478473098626879099307548967528846971339533349197205749614000161634473246683323374926809751600143501226962732358578683293071701343135372951871547920186074386996046279567545418251623947582110833602947736934347392976522497215122661934399232543849765243050967543102132240244022940934342777366993268095262996289795278142751309703782887204486836595380682415186587083879335180826709724020902194557346572935312049303537254053057762699446459611546993486667107676778757662305012197761679078722406946151892560041861246221801706285907829363797409387642780090732409263048127081219718607308026560330908918827944272649163946136419878987570819073746403558855936404295625869443408564326631937780379083990814525814194164429570754039565305245655635524192962907657378996403229921720614952546232209578188214027503420425993673520772494528987847128549238127225598835249943067671037997435542956154352048124822411485961790129749095692220901849446554855148380888609070424981463080779510936522808731640235743299432577961193951575950586032893518756711828671928427521071142433145313842128892411273471625516975615920422873289107625833547997415454879782461995252491402759212636624968424738069274507095164393142469736848634075673728471902094763077158312683659798617005379203902278824121340487519194968311881489572944667483457869698158984039053034641218340240871003965808462423868900994894220578234550461243957161194661139769164362702175914977919305948005275375701648875939864744741937631611228093865753204638091640556870454130009744061732404273386809988323754567651013203007334697598281467409293838347429256438035505491414339889922374225533968197114687430125595891300141277246234046742583118040499893903342580747991330645919543515166579375160677771477681248911773364040411422155417964281185133771059873377087794524094432389229400297750029961745550947021391933189409997958285532179067300334690093080670470266769880457357911243162928817124844339367802529685395773058583452485253687612726735005255064869360510959002587055540396501661797509224720242064879630039708922010651367377139194675604987579611975066117288155123908655546551045815423289095402983897229031791994536653458050097663279763329434671522405480354900800365150694553259220988451729101233623040772854025850662180236394710904922037281045977348707864259963127155253658377668495797162034228478494840575057190045984848114216145141507542841454471952268283049631176396025647942253661378597830822952131870250467342646906935220712198922559382551850466347753236873578819294020735948153679851735100094004908132061828573625698180281923759006345668125867930683033114770715579788421194193910901598796016313132648643018717924003680695209264781591202741725899179678264973346687556748306301924202288446507723054631230857411217434319481807224113272285298878703598073925433830221236780473462519992167424436011135681729859434416829437305313571615767825620436435710894044128060733917988583045670718953488932806714350970376403730163813020607098744880357285945060738878044479649354677503360634023176710588058715311542599505673426643333670950996243362778679713023950159016501699534204459272609492397357142203597264939297870502580145796178486960092855125403022747539570306421725192651417031012008732354300450781038943939808805388485175245524199358408800631351462216284786310362972277732451422359425754245704170636080689021322316483638430304338890494426077657930597982329376677656396742905912004284525291699207959428790819212674854294011474506197917124391079993314135958462860876515209787190554359542717209971511240845559393379186516428527494194443288032715360898618602687372489453385292850803016138109161876070019379274368242361493532756962378990898715771891585218453385751374548934857436317308334515075810710184333293528112430209481548286082244505744090756731025157746038288251795487263153922625778027928287934824948205884693762082220870492071129194804714541640748786438811583959546590326302389286874793294104659376847115391581077917638108787619139072241725477558702823203493451316257470320688921455715502896905817818739626760099031869092216227289799862318382779526104074105939003519659810580488246891774246824507446458621788238625964005293542224525973445035304654492474863412196958561694998231852021566925969270363257132873330538974171964322673214877518644765345669614567617579108787998593327810386868095637810677063370159310218704675545346241910031707211085914357757172920425522922056297632882386875207334387959523488678696296699773409440714056389049966986394655374362303237718517131715806031394917402623619598192012919473685083826643985187867620038630557981459904756238663974577116408548749900401960154089413059399949312711829741081990794091861039499008695525023220151728097062866727636861948877268547795996947837844033687899723542341412379441838507366577553595343879318960575484153557005314994338176297341049915394835392764486619240688928663887286398471928527475148022554698110063265938765014024006271072535407388415535666060637174653151610357982621702198724042339991852043232454842525490409031669923671674864096308647236646537983066699216734480064860838328254378338786168828491751605261921182176344705997684443537345934730875243563946057328250679164981654615406681293441352205295553078723176749628475818029268971366895816266590837543129043515874741936058198287306214550750171590570836115067471256148104897230529814415227372835107298742398841508161853847432088551129743160859029864782495012830928532438586138210334596929947115886099776101270815006076810861953891317140930338741516986667999301677676707422288120412266665614224651205285915973576134108900658473489075087418025206870067924689019401648884082210086121706658854119995733155320347827862994485163373707459502725637490142643765389745985276504028837930749913574504249871852616028064988086738312634727200424795839132928149161254098665505447276580583622538864890674249321627617313928043747612689885225130759018025921962641971340430917067050934458779163108529049717264813869231783692552379577190170999842236091962623875440144052350167328049884176408059252582337054519408800416728023745896839847429740077255167190094309543609939695714469151016400367709070027803111097179922897671066806480550957414549677868702696525835793527831295542591669259151556703115784254511043380879946171190075125304185049238119046553518131128783591733282613255591470843959221814259465477146736159932483491859345223905685359874913008118229259632946277472890571752563290381506327101022656171394428497504455923094818673385088115984823139870467338841689312289791131322257917444744801199524214000474716405929410779140801967261037542512216646824829267542569642154978254036191465783188528380680779316307012404950059962987337032205846884469513089007460289164556638682981322643450450134662179701498135308263581683566103519603392667607408324704797648633136598114162040874176855987013157056811759658196297938875237659548550994851107318032640871193612896792697633895158713683714656804827139095656522668300200810458829971655383479284520562216000952199360930342333085226239424968753221828887675631994840353131073363095944631783744746352769113580241744661542419930763394776435500247893359662322038163419738505720860345838176970221860316206591824647684789042727208150493774090622099384928616561147259917673271485821229758925984936731897291654611358247702764961559416894890694658847306000290930070904050248755223656275199989713552344211862577447218755360012176164671196502987521771112883131126733681465332373234147452487481363081335357825045740492908390567047605237841500484819333194404253169168212800890763647209036922669578871085264029014904975387141746752617079124539067086696856134222196823591144652658282172036690471404481806762517131404544145194687795945965417203667380702782607000260626427787365274128320032503085820078444768738456472016894979272494202089545122907664910574533548376045001500793219729141754700048580773873170301225974167134903223413502458447308383727249544248180045350768854521625080615007063508318359447876704070071961511852554520936837467538032445159567536559983814129204437233621610309032864591946502403755333760202760560893165082561507840583199446893501025385425527431262587799565896980708149123970922818089834664811768311789821428767954288500061396853179776748850241961052120795444706088404495090993506820799034120237678517227623696571759450704487202103812074936100865728193957642599806688274100201153590713883191356264402411314076808015896248412002006190604450932958658531455342851499859680532305737149424573445548114062392235974247048355287125897746322467322191537573735280663646789805540603275633661528823947632305895303673112749198900066365245553559371834852258132580514254300241048070618253709067202410234715648977370013009869397080091841400441122829267908192490444441755760135470443963838875927673613569033436861876652834870718038083644089725400973562837181319559616959111812061279860306456359317566045718462820610623267237622677691750930166386100680335090229862409734442964986591545884645582119293351072285477411289936608760330211774537834772133569119031756508348683560367518126269523235873715101897059400591695054466126321689011832887109375227873599599190094297672935049685365612388920754280778816200525774487344980735277442338648783957449662442830654022381859612691144840072225882430180933460044082017445808951129005589856113193008633371851777841419227833402986421704599847433588847817346861983760208998636674962606809848688383266696314010384956919072768529048369254261084543189068213697898595901043357437111572698595208083666448278596527162873966489582170867752301411536944922030892023789252835977943172551638734072813324385361397132174446460638955889074800610362350379046345926138546943601687738866591127524893286594844423177165991378258602583528240406810122665874151028830856854084200957547875636752833937519090237810803072455917692721990976882332799899711626700285608632062918412383815781117851147263397032450632437943549542875195008961924768337287746345719858224274201927271667929267177696867137528427853425683153287924234175737212553960092868137815498709451016466691045970762962471730424477899093895099918630897397986306555099273204165419630568605568988990109744077630239063496217792978741566612353945027742269646748316573209821753173421664512481666460075298069497575822239004019020340672804540002835611591663970547390678449076063617377837881313869496124076085190417748459653558406843951014391628451199486641468148583327861629791363165436541729941484859268800239797062661428740321679924425423861318530718171661349104174228292374276892746364273780655066063219093099020234176641015164290669375331619102885624401866799134214819768782227199946461954895588435492419080726337898740070621267315308631145384624632694657650938882841758367460260699932211609290535481552796077493041791605820956505127037816632866252378987041667361267533075097331028903628479748992836364717954080804398548533644622836473802065776585584615871977592490212046942819709445126062964029454571152487095641417694745635999503046687961362818520231297956100197755288742485645281171448420910511011830667635971747206830857971838166555783859420583014994031386251426827964246778589217733203809271717357394288387830304443264055189436438156624947026920256772556476521847526669700839275238178521064527236998875375201667309933790975657786110471962612899790458343027747946136686949784428333567550514021286661512721970849452838650166776777502636567835041957849913553324712385521271489914301305195807973755820336099246430108406927701274212140343536176569363827959576046990966629078303805464626027658053092898052083513398798493355891342275322094277985136108944607567177628954896580552183984830498427367197906375663987662007477634275756694142626566460308212435210294172501843769636655262983810012158019874625360621883183136000934321726735851516936004875204360342865643094894955005642009148079591126400324884470240549742189716971642590009446896087473144528266190284868947593115477554411915559892849954683235746787450919761781396911106567046756739871442497318071020583255371616306072677318409411355918847098464121057298714179227101526047626416942093156084978898461270713387160480121027104016180878190205686372937664054444254824487154122264453372300607047044578128858555433285237708973263411670005542846766422175112984576067368715432528815368030895840541018039836250718668970892435143908957649722566975188704803447674147628318895529092317541992416945997530352662747931647584989881930647064563417746033257503736789514928319255320127615907840611762779795045854162135044013222616330636369377257541310509035728982620924942870558960594410678204452928803251501660323603080451154817288601593948953026707991091151820302989991595761892510598965763690455603608527147602927688337610589991884286223275397089202001849692853435400016904174175864594472284536163873280764399831667863986148038461339176217533756637921986255874075895627232792408097358269773844484739960359864595231080286387758622831835416822918150440382100591023528097943936093483761649783582083317663415415980019566064841478611962744393563352282894099468161545729684854558575822594281215104939350310660851830005993446115399552432407806847042747623981428464569161954551186528237454353481686080527916245432184749428142532099318126009473936748971467255727046916293168660607979941962456895177104879434801919769989802785386459324731096447974733699585236601124441261905925743525363258060862460517168561600122698005413815289429127931575518622307303835068984166867150156611008178976793144471740791408141481953343778791701405972507705678839414337565091855046555836151418911935958629271629537472248562963075452227107329304368061637709361519998806917900117329878534014244632330218282884568716840139367812644269396106523069690280429744429819309211315841815235564999120156258917816580663153781487193215381476467882100974233101196590934642434221606576880684994334916701035500927050404366114829820447165638189770649630534886741596492667437503234949376781893480331288032011090994571481101373581052986182922560754667395700786043827541526709190065408974954068081139430138311129853838487852814905443195192617705932077554823087716033155846095722387443180655268652385923598157478511935480524805480167084730429733136582501691957041973618802285164722021824134850935115149704541191753080502749470761572024462421175938418652653359458061716717851872469738658465345417399259530242893446299227406583421760074253641330305046044374130564990341400879785649250142725353924840762231741807230675012964295133231094216138599550934076977006524612164901871312693773521711052888801541701670655645765421459379570014309036693280406295587138239647101452659789657596507893673214844229046597379026464565464727687530160324517303761287777062998190184608747004935589027308257389105744313974153170350844680065281632832853412438113890362948522447609621425793017203672722442136069806145801766573366471406371739630144883646188370802422982752786202969619516408628628687881440777499903055317950069754716318737997244941556847848411391193348668291049603800328226041013267725584264063704267412812629748864903435662544768830699764551543395886976834805826607651280900611383268601952981159310104628387799572190602337255582027752449331966665758012116887419386079268600756405089548905495515072907218141926864470009907313158887954181482341324051376948457483968558359058969697957299956755671958477376149359328406989196381193136184314538235594639636023922558931429034830957732098886569064823545651674505189900945870580752946642973358048126663731989243648962095335354776636192790393650752201437002868041068526682836618715560287830289371852436956024778692500073811438215218891534066848144237023988827895121460517513547344061489135549512877387643816782031765025520807824605057437036627059488067729020350436925184264433570788805369765103102244567709046124373522966763738339155933751462128989071593050134010770267222942812148836095513279055206529612684103109874693040654226400552547959734166604565571655487674203375541407247591577258369119429360589350520149782444437552199911565216118319133600259123148364018915636183023167372566186636781387048299456193930995436672402584053821526575028923332974086209702254852535822809362694378465643255926158888084420832774151823672235237479919279433406847730761221748010823979979373842586696947650809413320748831813674856503880982231193909730520867200423780269312966015039083122022178921428750377635694474478994856154317867245257207638633103031426433716429172015572663856753323414075091740429327727061359771825335938654735555610661392308384204202518495222337133059943386172727682787439148561134313932867609357829076024727685922166363256537748282442349747280985853772758210693099450476592787324107662526176674609817203000591460853735376489440600163870698953511881286648085502757179204032514311891605026993626868194958707373238151810168231391730863706438050467476100860157733498436214846285526350380848961648545010023977300990773655107549263305888627851402344443962658428700676832719236461989044438088203272923183377033329326287370955458675396997213456937433175143164907922745464896655210480582038768503145804215031999641991903860099269695520977865454627050636830775985187544192461586617779464326551892809284149181754685983409327793396929022859081008328947364590977127099715702796123014419723907215265300191574832081337078335662410677578006859983573415001293560813149147829614846070902737418119154501752887710446822468242626980554605412503298453830555158900006080528103990974122676453863707139956666783542075566662323848173257304118071998872960177122331115602062629411960329767322399816744770895216896623541159092482693131889960225486623956503732052735211457150001629885254120283116257032178546120623436319831568276798126761588705927587392742220734679230393655217836517560186501984115030077737622668668016410260632042265796589765753813122973123977707196355962813780556598864851962041864688025977883019469536242666864461918150649630180302486383368767529803499138142401080684166341104269437766492508172465910923684782960902753891544879974226127247818622294477833267335620618867036695461150240019293004217708360462800871932340161140310895562448434992068364595174757274286848199332883647926311842714329219078843051696840504425216309414100750707302687078173781614251087495032849536767937093522625466824600449290015212212228291554202775441306730196286396863776995459156721544232444106722882673491502015547472644345710767282811869005073909377606027453066962136043989068364606718463793407930197943108186662187480796548838382122721143800277062948960923521331666927397014407585143366203694258427544161335590502897610630596845704295763227050508471884270311232700447085615814742586783941130036359919986493062716547506651544466933716509127038615100499364652762081189929547582758004239859275296935232742433397768861896616871440758899554210940474120251031956181584660925825968598588890878096387038879752646243078687199924203140539809328113349064087541203978321075536090858994877754202262857577329799413387690101602693347894325610718074924985660810019760725882969176558510529372017948678200148236049305373084791398811919274052512448210997675850931312411389331675278277273117048848304405742608935689245666747508558519026389646913783997774920685077729270122926883324594738074176195475529491598235662138610915379417963162428368871264543725179986572706975130198726991429792127342735902451953177823877913346397248487345998238901482686841824812684950464879328811319760182313669674517942890149401813476304333964365037664844400993841210016900137910249659054220985647766272765254319942103870917815284019627561545227952974687277827676454473168976267663706455195968836105774466459041155136883807791518287733752974233241266726561522451622164430552636119751834313540679817421953242161097474520711805231010033953696508764086414240460554724341496856129682854262432613849717410664857812492391845039681569008973523586660887112596516308037197450737552269912686797917872344500402848865231567144558353147648399641489863876395870251737200874622062084971574130771260737805551023374562833764327085142184137576168017377045017363829061769704711930800696250048926462425285306655542829136228900220866820748148800271393455879712708058103189772070302618594073456232656864420677808432534960959723929012827351812360592177088691108405321649997419167750694952241039031745362677094547019797020677326806530176890110735435398899688270832567498572772888408362346732735226073543249057051959272033607363003393862507699051043305095954750610850254574027543926262537907083113297662109363835494705986583279545705897922756196520332382235891477577866180439112667283564381793257642218359574062066043475521097035031487236219729192633151970819315354291850601282349060344422341931392333236071976074602149994520096425510711125325104520671309877755265453119510755224870990464145106902811617416375345347881169250194158416874033006985300740428067865515192311042242574216779214294138099831403062039023711726143563311108594635197823110124222081784014174466988350568233441465646495207376334708537329611389597694005900825094911024065856111937132955138712631224980886277005965901766187752870799261739199008631969475374182571997586820559751105830711926980539682279321725363149479905309924651088320613974970260663766642496747420895803991163855632453533311087729136831589331482195706047950486104201843740928077762212108935552018866237923688119365452680020101062129318511847449564602442531645845576557495563848603993329950580011396248159404977624342275230277473297335094009990092474070092454970984534811108429859828843073750129954499900933069539405474201058879184301385913866780281449762946616289939839994324722292580234453843826414342658374587658878831523894770092306046574765776700006936545405277375200563475520062177138211603706049396708544612714927625545534180018178729916107606487850981397769694518128861776424986580221377133814285994096565043579916319453150192349612540418154817527560943664071009048913498924483786272236084697350203621559669089795588592035724157207159655021952685873617265649497792778665082513148485456101843608579443954681843435105202843380613369532278465692893241112370028594860052663589929917961458051784404733367525338000628580567798115490981441779348384264885935820019994213354869252622918676906292233712105511143515714714535050042045088795307749155245582706938054503741573636987486402569838969876611027044466018706322731920363405662200315566610925960489528588829184338563263757416831565369398691975674263823067000260158609443201403350883313737279901244660645573960312935728229262178889289031398084391123865692566189634992832810223371087722429987221498420728837494710186298380187831737447591307201960067507679474473743707472307135242146878189708080464796905220342020198439374439572406301192391518490784629488758471212404272278739381652751802308656658169995934006023809726305110488860814823445546620206836917585530751512467502687387928673431034611886505761463139358884213498579569477669201859282376207631424756378771829936628952813526527636107546665334717361400090098479815349458952454293023564909406358189319373429804823236971681134382621805889011088899125607940162965942926186735957513371812694988463069437821839771382467378561268589185555097897863389986912968278803781328986510259274147200061301332892791030492916502576300515607331874317648297670618650644355434048269351362743443009476597467412079432552071196542669974633527832200906480437203258092783721010066722781269317811378917976524979449198843910104219050180742715763378784854650078265798788294599179509512145725636014377199251278641965647661476682829102202939123617443520743490005489063595797870949280039835780244339864414268248502409841696834932113193809858812015496667780060913037366202614452942998211508798169869589577622867916255866933067683886827783975933028148938939689131534057791418655899559232580478029569811736605194658790576688808160009461745263194014757956487853986061941775341274285867075784867373022626320269500569401952331908826567772640456005934363412070676926827718600822150989214193711761399124274189233477129724435299276064376526733895102814439067980141677460724866082806953197596429101898535929547648080423582599864315951833770041540334180268485471192395360996937888374896821647289909786960531185226199356982176731436763827526673593109817778407346833678232062533788688922900418916420154734759950385836470100032592489595197429479301421254558369271692333526451755097261805588277516291584168953097883870203117939963324566058300499116817944826917437510597377640642979927108466311207343077492627725646101001863320514317074968436389600048334972370238923488487325896894666053722989481083143119156283075134557572834546230334506864701479833512168331908529917787060898507373949770867860322174413052927438677577357224685012005599888218743828689423467530492092408954157367635688708196161084934692981335650308825701067755456005440533921140023592734513812220602271082080897946707361723769537671991982942047943074838003421844505516121804528542097850249368548729967878367622171657545107389842957753719958695570832784565154993383456177160563837164791397008020346648480922417706164604502327838741270313825179767799717817869290206732036128829013183400785002789733657629737809372515786488987806955369572165438196168421313850240085192428377014222754443389324652617819826272171778517226253644060583143277772027668029075823244481096742531820397180334976693552170797838568059107238203520646244088261763506644265545407751321846841352132106506715236174546497509690174213559845097428636023724278073566288796130171171341293385323902938309713170255866953224217321814715282399306253481915893892214949307771216675106157285505703059225373105742780166942798828628131408737000719335954591096764206904095347500058671653446510548292472624694889936236753939959959061311945767497897074645549044861049230519587074076292760029131856907234819990947057517841731561631763083189316772044711763892291599590070338782429441534000947753131519259424831028224077491580481871860123576738812039959671446723667922811019904614574102493976180410601861399861992932325589332951041547411829092849247702374310112472988884149151237282244456898743220372787446805395625764204284936252935430520950046842266765000021153263056725428325279658669600514883830625229100079182236520475995409782452210224696951178537942714654084245006467543634622163558701695330166476811635713418165515300795192550025588533315980745055331857768439903726560538250273816758865090091397176631369875671404391718711912184102421838993283423342160283450238174817398641484871507579189793623575352666314695293550696459630596998136276236552330448891971506240785713374857245565718953763065689506893533667213916838633094359908624769387000834501550495669660075616922928394485995599319375172962347885536915911119443230173634619485492389034654090139126822115748700854161053450444244573789201623759194973308305464157177361939032110649863155884566962458021853806951303147497105207163988797034707427357851748702735352405867842519088985294330198215577189083760724755713172382352393624875909678184536236780318752882265308500221240475683877869432819408901697216303788999167834282023214811173837761498774175886353237143026562121414945799870048257175421504881540467843409866688331162863023719936968074785333340292517472332787100965201899991206685898734828744434786635700139366304759011915102889477055599161197907330695888485852836934416671809961669045411977331918851187366933669158457658225972936305683451286890777578568242878991373476398123354207236166436668605459315630390061138673322938643116938498782176218413509689496416169467723551707583374489042393462476693674328242002533544602572007659077831008392281172101845944063943576059554517034190351712284090942209559107952682039503620080181946491737619147890483889924334617802683096361598891884046977996959445811204285733855390086623613554513439204456000523145855639436680866316073997474430919709030655245720398852332261998831859938423267761849964243373034183830949264002945951096532707095895611451843758569555473134835269737912736473765202203881930833125356078847985515705000205319514616198484938148103877661937861891160518166018840209182266279873570261357217492625973792959096583756983353826227614544659884365570269660592838117721872237862093280225741936346889933489043208828648905020583613692761222811490182455824675595754523835546097075273878380077426407073664712226685395624130173824152270088089864265126666607228938440857169872209003882829246673669857351285613804266998916197429237607343621512295639113624342839698152298909294850315988019511777488059217412900479251060790723189884079512535648040652853690194455300184103434454112599011563433819836993482615666667085919027975208869830395426084197724891288167459162019987161803098801204101701471625126959337309600533169407463766801375206168430839158871656787671105913138763664218264416070068500718219547456480327447196541388081903606266886772381248673161462499389558671928531040594557496275348777983054750518013820623228954192674264109040023270850386395442065121368093397693386297564088383129015273197035231581685863775448230776635471926479247877592711105766659527463692191663710340071091221347245504064663948497783512968042695981941442666481965433597470908601766544406852134711714488610985299146429332553846455332169719947211487519535703336876794338357888722469712874373575102383532948201549045639685819472421695790086389225235442578413111701026124192801636761655343740510991728094497258000800809548883967228648888356645956206344998928510164135844109795162212846249860186609190191953810193574690682107975141036134361988266423407512924833205697663816947846637569423356329326589648900950248137918063508481049878652089146075897954228972513429412567402155440336400206434392260048578860764619194408874739177629947120880170523261185241967650062359466152374164922643598164613829838833645608612369744458994497189371729625516733914318677288376070451740575869060994996304246142398545065059706922837208274066368725968127792171602015336265262409378272380148710893089456244180082542388537019068795396229083387130142131864650565967120837579295165225341989629748409229425154412930293514167422929099784763358030143123629641968582759686611920502386486610636113155593990171317515844258885575779880933124840590064072373084869170485309105453082969453364271136325668756274477464818062642015635526202816347008344670251735060507448643199296893059231657984805889004140861336938877884463509607766238870557894671904138022044941621997966684037707632432638431218169867411026227495273140412430988926962646598957026950897040078412643774580494748707506688160665784156829373071486466314168890637276375760357221108099772481685031010432042731940947323811891905434651246040109765161244534747492050672268775728156289928960449144797977828572642219160803335088232622456256305802827386440102531929240763883253014057789197579221048387440112849329269341488645327358156207198250719529479929251012189159700545008232925568315656426569269124419421810355025405799394085273452762809809483259996599590395798988235787171911437491530557330859878661674287874057464442621748549882811591382993108956439884384028990540243688790152472977197585654740357251938349504757588503533073116442936191671902535112855256342777641468712684275857564779216616067348807911397565857052436365232743120255348150961001468371503435818816270911993373326086296688955456316581598559267418333080272875006688786635367221572806733442767874374671738510501227623473020095989693656522448813438211271347755744210553703785454064373653065375358260703068649817291796528919562306759705897843561356443051014503291249039463288951547676481764207312719508074830048557243304259876934037312585413797409035375188651129003423246019286011531788117643208716787232346114030767642492306886022521582431591135887123068795672122371362703051929837307286967935040482300996663189808890180689744833749885328318885651223055944044500500385627605336997498636961520828194457563903091633256826962625516212431364079933845025298729502300767366027934328608941711346221743437508205583033229749017246961540458005517672276210080078371001228181888708072102103481877726763648836632376584909923995722811255738996926989383604624840417623835194735954590256229506230207069146256670113731949187424870121132892695080505486584453684107197367152126091861629693200047976686111756571421041985640510658110570696983445752169272902507947268358595892325054406491248850228154347944118076603362747623729153326985193031954495779564860157937274016053375944251486330948265155167305875497076105674439863308960451831052815997919080814833745583057883791235169358134056207479072535393716444707663861334670928807132501626110238044828399353109661038604681254841890618539491620380739162373370040653402582944813520373112216773190637350262545762031686306476316369559789053036468289905538905673046399313880269399527033975106436282736435669294508695371479490765940158460703536109097956264080559671667668044725579138472706696539597354467332259925430716880403571026167857440921548747700581504178227892477300356493783572545891208148044617355210447123474503794823006660811598287980078154159254791812262397255868844831830150132940503914649022630859048775063102189752940916265034127003729850572368309933398331375728101626430589685929216859964546205903620705145981905694379889316232519861558390818563311848189298881380922627993820577883105163398708506914553519473212271912923835284100019963446918562440254488581777771945782409234791537447483652255982989867463509280477622116833243560275974053331116864913987326712642730891523678306338420569211025698056107323524867959742937261881370281211843756614447616285168729702991668315394720579471877163451116757496351088963725868228316627190226056442359240544094038988142552664735055201645835276395141034961828279660665399056712400396815336514561334524380085364146304427382156646645645229917434317984008383160037055688705488688707135714775282448571381415631455282736249331311353929471796118958423661281597834390317076887360139759682385756075855176896328250953041028012471624120936132928426434372615561625684753021350379172433127358102651058393326984289556824349949499221903693412103470123727463162244331915269125919726426971060769820253113752389851264798101296578556403262752211823981582824212565619030561566979127375686796175860301688216989517849862123674542919190385651678644167385191016720739592885499119384052080753149830799450462064264762344150919421961403535092165033102798759355798844747985689713526136247320098080721697845934809127434303946024165673843723364775894050093337041583425689280821518775777905257345725221265861626470047266713852287931944659964537033767511003068859172267979356508268970480646360737582761266127756925743137894594385659992618188549307892036561207335522019169881125174672494199776598535369293689679036706413709888442658753541132858211892422536828514148181437837510275097968275707590219085637142009033447675017047360393245377390895636790056834397053545888958335366561346374782765162634836269801037849970120589459694387321046698132489659855621858427509713202601383862778443661168298859815645365826439753954729150801910182304840199310637097326658301084901417171989134949511779357609309751027703691749952377425938269988088297384255895301736825578489198917697022373549632442194006128448214959798862564590391132917811685471289716487602454426612638454106755494643753998844049185216825344231168546070476552708622253300856462915862971421634242372499944592771541800994569215247819228219460007216482195392784037589214520249809235898485823552375133319234414123354603182509474923773506932962273966155638767253354258953198211678675069930494966443014605836891388180514097697986990425752022995657130917361543615405394765192923545226947484051421011314144478671101077367938813385327164300086764274355698778473998637705562121634771799530831840777282612390327510811296635437289928072451182398024038192687216399280866903316213843322507657874190962039932481498512565022155102946230086030698544838083516453210088260325526451497032355708501820095500810015664132300758618898183554638086302268006043566049912812658664504620624257498536686208591667785567437060792108869129045818670976782761976994559413666174893248991424573168827945908334522057478982665903295904351202621556018672579456576802594569386444133178109060537396635699357492371370477476927010104686833697076228464148913274341112270936037549058227677567382672755563157854429147801951647186814803100197262102663204813161566486490667715864608708073132370424275268090065234551953712892594683940228667529363517040380364063538147806809798457121460310271443595146997201477336291425610484834016926831348448865544361937292467137317006167556827597955484884075386230710357671318251532988548270495605806385242568765464298293447383762095093596405151854567845112531429677023996038066420770663689926862000185353551535423733498185296860540820638201994994396400987190260148686702546451702709217710229398315612149198135033618474587928578617583054118716311989871355931375113769826386566884021666621602717535730032346454348165937700817392848516399863062451708293666749971663641571194266161938786283858447149443542886995655590580018130413660498715717987163698739879890995066570736181002930548869915213356956771770767971306092163986597968246779692470114152609969265546068008741265172002121255342732405211133089902364587500923925737663752063816668024322434212951068090504159779590889928138671885673010913177921581956511965023767366484715349652591083858842917981780910764718903379515847076882543684900240518819786880711712266099803610199468993520229453870663803073423667529716666003897098081475539275823831480847678563570280574158718518767298203382367535288342589604855667508577535650403679308471726982945413982995370755604098265517444594587643330193994408585096906146251495189468199166696810127932308374436170684592781714183744863810132955552606166639681427418142724740526998043857534315649429733459700390189898059984718641500299372364653523918140106928959018615123796251103783806873054955073575468396608109800354069203748356781131164337096596033457772145529961730218167995769527243218878913408772512916473956481853177203294066726774842929210948182630018753706113090892441916476646823149582134466306696150222031587087861175104008504807510974486418491823761168986777299710820839723303291733180468209204236535132467113944186609384167082949402831282426363664388052980844713417647470075167161375107212159842322206556230535508427514120640063586101765520987923665976177800886288624619507467270615364512640750561546493889498408116635531226660278506961862551115712737043287726939135646068265724709583257069723045596203449249618248008877930856433733043354784523155162619749415797767480935664575837142452821422677344158519857317847623255934902244686227023006909111761174694833960831084732958391743081402606697263789963700577933482278377497934315430914102575356847390559319460985013729080788318939698835441904470911538445925692992379661525823961432930845418266986660379024967324343610847179000108386819413000824263137389499004791235763157163876043265341964859026167739003398129290024324006913142475854463423279827708459742433510052814256164565719000233859368426459425274812460282200139230280763159713446737862522825547152443654867460959180081027533317898616218072534488666179940868594744173481032842438642342181348009020517682432956347595185143850343449671445949885228557956497382162917432766396624546263045581471115459959161869595054418801624119640346822079497177972038816872400712571924160121781196578497183063006506167694745879879555822703146589551824135996084823622192022176880703925604264636087270935257354441012514143217518623662280660415008706701347496916178419760211800725689055276238239184395726271067680605136677754139941738427920667169140866776160689691544915650636007598345677786478225097771240393610970253544324796058040205524528641334796689132622765363656353978420890268410510625205895854969497378556954154938242439066825465542023445485896331338664269023767614127343163714221463262162698630577236140107644677469884534954692618085860761551979456205706021854165928157780634535180156794088232053562917107571965532164260592385565862050782943072631988936042901686962358519546529718152352190414592255958906651671283015156365804650625530523161675352699775676196134609372465626570562185510471730201979538713077513096646645607737310307311962769283281761842016143578257721768558468217215018224130836875828027867743902256789360283070729409625083888568016610372179119033073550705835002804929707365631122834655224390164211758623661005640906386536027913499635438623561286675219809177332745694068945846406576933920835389546784760249391020346313372341148973389208805791771385751979142299581337466259419870314369724497216927995462263941327408968072195361919852096480332094112772307439720927796767325241286942858655602536314245544217312335680426498018150314609248167495349108516546684351633426635983225373269321417440578942221881221163479345945068876869327311661362272244549261505118151285552062382408138557005595559653105236896355099342347911592028910801659792171611011165386033381124440749855775493260307178835794054758876336950976562141158225572543380548257476163882861306506175351800449817570175483275663383585681830330474286426502057692675785893544870386386501891570338394400713231656721552972320326801054238392638195054121491175248029304902805805683024074438588087248843518608770513651416488830544973758000325445773116310438209509801479951950604766993895536842260459282341143061136381793555712165678537243312672710579782374248336853019816649257325673312699112414608635418276399671947161146538975043770164985066595413854187373028560551579969535653750504286923834806882212882115332017845633273320128239316366193978615138472425655539659396426161213883060448587918816132716568055989322525512223282209125291787853861189964253035744959703046831971113289505765994636240100374648369159365397717293931153288170570877523271535398744003593391683203176837234796294707154653477009182778316856165700217943446293215001293506005543157882497112345714561718739444720276439507863413023402624915941727348593689428620387574049645517308664869538466111726189490955813282849246589707235172200125819366748941266376461984169266365355064834490936188612086545765207335094104302818451467934927529380482965095596052024778196337945569828440413215236062190629973337620979791747804099128119401282135044307086302658534549977193059647606609680030016396743092865576904272733635571631144782981669016650765717430306097031251118670350939387238432091255838682029992105317517557649900695476340263996380359573701774284440972881772205606220963248076904345488274823380528915617480277291900328040117326423075464788481797696375609624074436577640823590466597366179016880784361133104929418114754555297907542193817683131909636534977839218822901205493687049842291958494506839867729624922623952453341469518209037484183905488194544276722506191723991963199190854005035203676678960722862786738452977137950774436901657777441435798299872577475231625848021963476889474637136204154199433277564492127615220817071839601082101537601122093738489592986237604872189112522550789145927331648710144057427804074242913062804215750890949386426163288744421523465183019411668797212428732827188562574534323460455869651848450856006186451989710673435792172704444023573960219025162374706303168591623910316288940937379367507703953863350117877521042829372617403194592732031331732636802601873589799167503622616302184857854200659079520939476682320890316445155645676018556640242437386593064396888784827920140152707089871160228444545264980414315908570692480663678163057150593387688027355266244197961726627452711013471448089487050874548110633495038885614244894136359021423744666042743788780041099902192716371367629904329793677421945434779354317616736833660404861597816355619686608494899896638310700333955723210834772491284755335398305368231921572252218127863378526040888178396946574951625776044445516929856523224284029265849610356555936074188479279594126602386858169312591648734922166115398011409756974837812900419381488775127828564226025769770166072123094299158491926431003963616992958203768329809278443406476734519327471615026398134119071933572061599759207446466968850801963025768524325922794807171007671951402865157517659239849787508927892171769977760264563336843279224212460470244481708492441019066400770767408590341863820130163076379023515707824950622009156987225444653004811746223072363819966021783862101710436351508285059048851867373555351761987195976025975935734677653901995867410557041636173625108458675436973110257465512657288832781775441605774958719148818156941270863404760234608131453520846841839698780609392806791675375149670536434228237995431268840379319579815203480179189481579376629833817675380500048804384468011703486853543012288025129367536950687213880343709500008831954690525944469837464463669280557721232090109857624073967427968326456954697087571762801582209357670933176559438426522439597977636249196454845018524898843727876673829892816034811629230830372675039507941700225536349207866628708610860562916240076153228818231345432874464707917150915687604850126844523763373766141046746777473270588559857739830701722184920359114669774573907668095415472794322052163581991045678133283092958751812278117360367909655819195310662749219158542643603741351127245686097894318643658156306228678892342399513801468642904254173831141535561029002305134692225228437293187611882749420851696896104685414756249477697729373478597410801063401254356732495254633387253328795080812382477506485969486866630435273892578863484986589831335559039179550516218422596915277878572410425889034957422398909609000279060912428296805986260657333280031764174782446050811868116803584867394652740202763873180444174898988432500424901287547806162847966071265184833032157000181045734498253111306303574114858151611075544733519877831060351226734723845334332063739365542672696269015760779760253874210249832942550525856025556249102738663186959107346468995451062907242446275605257458407667185674607498190679080652847516559874809372764786560142590192331834407333751689262570642918802183688138690823515474035510906427015248911296552067010336285284323962109520273657803007767555798227822189405210938072238945456930075413673024161890869131353878843691266901383060413194817956982902871304283312998536589910667725511358466416768050777319375089978108622406418242923576283166803580464514108778698043732191028988839671197071848636933752635602036382073837761392513732584596910948638198392477022631255225237790960534835148878549267144658204102678715882268846594691153018173598093808887287281920645597004303990947476729734574605764911422159745275825866981576144847971556028694589322396901326004389180167419410694380994129749573419223058120293173118538965937114665975422641257853752696976639778786102466469131065588420034442268666326383246047498317277143381544702610893948566772801641715726108666050077973550676280144831848909720746651722888912479274045513741131310722643597215331459903399330272467851599908888277266915792945597767761539573870056592818026457464343953541774094043730669443515125705322056303679376173371912700313980534751355818119020765880705250004023812022311875422160025787749525694201623273059512400619437661736750906329284903996116772499674833672326831066203891685624086890179490232146076838504409821417356175284569873773594295021757434647021560896963253711243577787078740680462720319250304616735505774539789151538639224971658977176589289975032835007056415030023269893541496955991629016431065721061186342878759921770359076704307295410930429222238783082034300849053076121165198550142751026917495134915594148796240221623007460373914781282102752056187034747277713460853184441585883390607081409002130207828190443873821449054643861498233909698230827878723885297154539544794780989119339092393241746933518400209980408626920825225622392066474287100703463103098921108898841439708669348261463618898061972906782435390968802166128454466533232306127025673131311484782774072343084559072856471896894637068280848480537969936638446802344153652396813811069490849209818853232676049858484311938364189046896592294572752269426643714087383230016378821275434088487607348409855262804180462276754852408985413238395598280739771328427087478428207850924710820055170960160374823768145164167619400138989132264240747355079872377845036562188248620256489070382672651549448696497952486039375322394481451570190716824651037351293799756040668264899021653736345152189761559621083764268477058527083288746102433725922526295242900076315824299822467260370872307168146099466886388263557681387216891706727130038983464660403441336645473406077995484461421002423477271100920847670784097686375695944536342288750693680439593406524386613746062733610109193140017364558939539938963315685097217442599207583157353556451323976226299288377720544678937833549657264556490885046047044544922102485152907962580626405334370110333422504206005518394195894010641172354518263856593338081721243243197051510993476370334192643586233696798251048137290258876444897701788518547952429763709983272526606720351235086293973831384546216935973595355850523750217620992733084092361876369868258768944662243876422910490742841378981038540329053856361143975699297527060036253509771685661886104810154339783752791024403758319116199037358481011804221405821839388057045657074997476617315940888026646294833956971938699269702258235069536663494434803675736459799763943228763929233058494516756292420719520978013303885872353598202538501947046045394873147459783370881804176415177405405292918135283710211685198383077632537984430244226718504141351771194640819274650056642690093710141901047813008820384294953101389921689447488847291497694050198333611299345710326895192454553703679114671447546660591863389952628638406745304223170143974500618669292965529274101365074284529150624176331334305687803744711314241756969802326620022370783385067920794009635263874682553005703920703174996415842144701289228126172166108683679282045331068712470779618881552754542592818505624794791963085871308846554152811051384259798031480079282695337695990366278456544306405965414385889298131064566920447595669922321153071276055503906856718079845205306226030894944388881770030790580504131498207129666140465923667303027461681763126191424758576565753935627787942280972862300894976624109704088395737500678856518602278742673369757586343326159702010289596243789239641696483073674760142698556507154116813252943157175462432166346572209029335749087704608892496467090571499154973758867449518905978659265419107224652015565703605044538352007893034169164144269925583531342841470319597146567904027367768283066265632686123351097309752633010900758071170533866146855668962249724030460558741617598431651704482632547056105913478103231958193201854292252597835126560600902486033051738045946576124205452588407039823891659458802148972216321018000226714812780874809119120479152283245644690641736021574873336594975616207703979363748709443103237136528006658882992198365910134338829439040418026135909341726544993327811464884697667529016484062248055144799135351876535456132263085173775048709970776526569121101577176471722392688386114624973355370960416885925668421086630441660222433439845663544829612705389387495287707027330669617897867265157995246092007545203354727136172154268400814909809490704206339005518371891622560391513005753560302093391180095214593839346199860959735028197866954284005332024796418923922635682111933653062494278956108936995367298071495382928949373235300375375659600754230096606198447285546311164789231810008483668270416720167588391271255884301041838098651161886557383057532662208929518426266167531263386223482911423008004084330246734508121215180010197879088211261130624953043822913917715234092020351983997133677345581685878548680202357494673809763390564721587219151190648169087035609882876057777617519537123849972384387932086285733191464455651163741417983550063535043694115592510011447678618130720766031749252978168633878662213365123426176484299950859797893280354748141926117475167295356974523630360455902969489196613697011927139474449573793307940628911534427322610301457361378618474723454050628615946901876866960574649644502956469319944486039805918282396218536605231292622607591163548660034857947862389611574224259843629348610365439693262188451298291508399968438016659181102961220722789456566652018421167400089055510770215276821867959848631584732401220099230516914584839701686323294427831725239954038447254926211208997397771878591951333544892174020647929631615334838238608478521048169037957018783653870829079135781799240241027743205410654739272136677159990520685031359534173890400922234871335807269821934418627031515447107450789963957833751525811341507676288688830528716308337741957618662314172803309865302373808027651936573462662726555807969608823169059614649512986043000632507008703222315860375988230568690012412778956531870294379678622074993354385920825139336762846863861147810078251021364247990951440553112883433149004729470240505630475917719154983726570079420849377544109937500245960864209373772457729311465816559379529951177554317525821087770208024610360525644614123085705185442277592122175248159354019881316356893977114165606192843570443673827254811047701220581886377514583166188178099308612161142504730369668594990721100187829294704538977652120000725145549451534828985640180644345425314457390099426615542748766605445364803209782016297134933740733043974464739893100116666529311950236258848890192511605544086802341431055524005720828258114170252460892292591922581992001291357507588754644825263286847371430975293480599470041036688479285274626041209604688474485005387647663718638545023249345813702185326930793183400706280144847628403390319663235490112790705876136951834462168372513514575836339467622180403678985985900396146703874048591744766695348533273614244468408919590873496546706956549873557630189467238008708749416126120992234525976153735623193959552871917022133354427045227135355530640033144265987613608525614115056602365457802410893459194532965442851172798963579133770527764312842387707437841193852347262452851131217142396994685665842050836964810411822704513336559248055407400793373071576429474126914476585782510330202811665652731081659299765993439044154763573114687508540752028784561206990159878879857879557383428511337820444078837221946926688181315179729402818199598032548579336825549736888208831900664954296491797949512051065800217155702739743610320565701241844186170658615449136344002508500279683306198602304007513420448250837532862895480943407755116786923664565727736807776509447513584494651178400316878380495590766354329888509270595712302017622293301735533064397169001751251266424317463610478936917032889148428631706437299386923315441682853492808199626388205551680842944898762449566865025435798315019219916861271009258048255791123107914948530913783452478485733487095366590676534538494716956965977140939318284013789773432508905536483186672223779889110955922332951856879858373034955835467223977527699190152217920842558810164066483894795596490106338133426983568437985013533176437803874192185106197512090497191751441114720961008661973049987191728190188867888095776853044353964476250293302726439964199988462880866698910570312956118281582848527388838028042065401193569806315698313639403543623595601386450174459640541215800134523612442393888189602143656655216243784608191037194304889500737325057254959297260657807416448097934814456174608541006318936195491661904861626269566094069374593402211725821774210640573403097563881686737333829046149174035991090536502067738088386798296530089330114171399890604148609784795409835038822049184340718005543574165886042785020672367046239443458714513441211906323114356205419219413062262429312899201357732541386097838012289701499745354514497316867532140884788754399501767980652087189212307389036833334841049387464419384227491677585177177164315505241741863636013515430748947228071882852675299174880810793538394270964397434675707993577194663135965165576608250741937516569281682241263102156445361791221318576567135359972574289477249981970965152195674577551355807451530167540750308579566632960722958642216699258396230486744276935881838894510737029742206070802855282121190154476230617266022262913254275554669217394112982168088991062397981708582122262427889825607573655875697816081526621514749455978179290948359342447241551568489125999840125548843422802980434866662302075776458755500693999067050563987925733219766245141326902259081741996844187612567300139570170013966382261444575277182686833652688236810253574019953144774266755737274338246070469508166669034823396725155390015428938688368929416282816279916695567951551491924953543554138929196982228759492728768180833616561118668048668466482854924260267760027710357809672833329022041627162498598234340157690946847424525141449342133819277531670627340320895290804988716293689560520630507649457784395475618775945631584185021943648553612067433156783190482845109044461980987509680310033567325294611412008192147110978643402753233532569831311553474084408503778964068482450366107625036603378696031797325328492368082903326924153161268310669666134987278698491291840400145684519097387637702303129612854385656678447103721857917688751325615837279709244159100059443721137786265245936020625112570941102437787289573084586763631441391950477775568572750714657214767498043785140845422976219239698736866729024876518338432075981881346691441304227123704499768412540580310734637386615678156316932562124947991500062427567358654386903057992571050606472059606362816450196916615565006007503319640245064313644602255885829589177676389000655933982485126815523139636225295731513148543976574233769102924181355210102137457730074838828514413382913283751281580618386801942631131994765425842060445084585715631556175474759362515096205710344087965621845195421103115325458045937564458892854013281319204584786499601435858087548401936620414972537816726319516175772833621205387157950106948290007372099013787618245042328503364387678063284130634057128700197688705004368144359928187403907859631346445494557834931643726488216790808037048563685717971090234064906532827529818613933255572321306731280083066029736649287835088648126647485775900801850193306135814664409412458105684870057971215967917132691274367256125616288842881183409634457225611394580293194436963398612604103250442072559549294230601369560606826609024814703865668838580923924578481805647645960053038612352681721241346843989581125487409850502958662896062088125725624797293744295564336975394533706101817108915207359652191800107686096169533521905863205633590750488038236187798996205227329719803770980287176317627220626553439864552646535389143308096687941410383894024345284026622557141084785714925689489239907824729148995736190427002997894305959823680844007373742094589023601306596730735131125505598945754472126818735177103422113218952796206723111426386117613635672158021907536335437085354065091904554995685297317560301948582911814923247800393330847828500855595693682796883637187851535029273451538483180393934981167626997556743370484796475112788160197162189846963539342571247824980967653261916504564548050096058757080259608304633686694019386566232873912788359813826311879722914431846057885664140301141387158664278842630420548493828744251568143238921484122867477500644756349294468060706647190444743713069478107276613177489363943195302410672233231453256449987190930926985492160438211402376492787622879273594087907847812467854193077773001117133310846074624759228100560162321007711708123137657463413520141089324269266831001969946649329368344326462399247227886881232690759331948812629136533381423818437389927384878293155986316321152664966349481453299716881130172970393611635777154085411923338557457358023900162804620358033415252172298335476460309718034848855013350571874855627225767980694629778086376360655139880398595398904383107911586240374577624496281880027010254521134038917170150320760731408872184963932528706297052389785498080708651895560513087098386985263485011653164850015614321600581306573579046815231051190812502702531568025056366954827755763531710217410848906753964083532819504227406198904597964007687861686638956787138400046141590347748734573050010496512932470296247042709395908660438834157011953726730637682904141172797033962372477628415620382907978580767102842686980274547616561820981468864524174979293911631722538675878950565262701575188361011513620199392381675774533238901092486647695950370631283008826327279097894601318992586670175149188266328260145139187736161099923369044634313575692513909924219807984032898910448263822749104817207768176723937831345741326967731475346393597204312730483114357285391232474597458230966458788269407330381134541280105699708899699138000816545280620125139650452112218568257090145654282860957350864795909488500501800047720168381953735649083867460421170022194592656991655699846257006410436335381288970084052999885701140063559460468554254384609571669323193767099135955570398182896712315604319621019993648264166432361162206504012106298560074050952931758331196360200737382010668545242911909394384088928442546989480466856294070456906233637690110143700582161550161736572817504644813645195915943734357523735796493558609576789186576375064337750159613737498390396028748890533761768726225206927540083213416288088281160293011531476658289370468628178285405858535861502788455242607598778033548918829901926516073675009886745596257737272248325834969780643021093486807493980737209588765018916393739461743541532766861359884921076625932514751442153410966401663275508113735573443664315889881582760680690843561275020629182950536308207785799424387901663886463672922263665804435053727483290265641207047749421161703429469981517099608638046984170346227820527664070198975411706160246073571920120872616630769941900567009253192988649655335719807593782154823008742328865643007783238204730563316327564818208804536604086544166733071195125086740464234305108014653767598938387797808216097471420079041929598695462284648606396791998902234210621343599238746327195540135809260868712529255669273173995807177911313961324389290427548132717487547191201828863289539486376985837743749927277562989194792703612505683898612590107370776781340528071112554835724066050026938225044612192954651932619571746380237251108734047362856744701955427296068372949845956432273336833434778071108841746661815029386334687932993047119214843556218078654791784864250235670095443779142822080925275161984579838144082329007836486727782960644540508022184140276177063657337898717097568027684022463640976979416823029516081871873717438394742938337084867233851728339735644218078876704239010811557130196488183967168402995347970095086990109978100329377095487416521871143694663453604078904414513994690690218163295260495986977586962481316158612053904036783648747229155301596303767811366938220497184054964626271312255690782258987024548319811746893707757194590219390648002659390181041147417113710683739524183709344024499048079442688373860251353729232083657469361759413963805384035896511598215768820756600003183863204519593146483577873220340813169040907240839289056090812517207023467201712486567859699509525819561213508765199728119029051648373249552296461394459867604085680174299680849559845037689421166329144174754795466950027039296643074469287126649638470026488312491350143835440824358899316546815486715161215376222434727336335944103869052743875374423280171379874230380097848634083707541957270203601017655431846148875219160151060142986222769053124475677114657098356698937917613894437305513917134876829579852742378985988467001422809675685306168549183247884320168467078223542100922228358855209556887125801749409060513668781129630688971509364315855794835223983952907300157788496685295320032547970508611764170205533664315867656041190890001001210208050140296443510606543988512404206929358280900211825094122293302138188233676015527260243860742739185292343825676849756299824369032697405597523895156002927881568665059389666574541559468864267804498305784990843114095757367445431352956209425821103424575122860693532621897660634703824474882915117706727350262881615424235348298022820963884096361373973391069954059000562258075331893623506088039834442708945220027243846470125932686966317678875508775095472466058457524328970809121184800112091292619268232914203786761263407463152191006340878448280350850094988646585976022695244870844060234974892001766994187018949375925880062942961876781535380517417397340684552617711518977503952974372005108688095168004254265311482016732953971344680514583989126966003997534373659212342665577294571633300988181285744627050779798862180955840087897539492802262217850094322087115029226163173989079382347922376072077992984138641172071092991564992555631999585070294356324108905564626030637797661536720693409175073308637065168442954594094183703764020274108957022743486887933614840619584978473734413669132646662579879592966284094337095629792487091083931712637528437242459806474665104749694056351586837148305031415699316822830928535980748920273666209514393216482434715710775542666316923780323123990683706395167615527753521276072162698967245680508470216197975589474775075035172826052994882368145620098515706522928714989723655294855609654769247896508292096578244392661263147711214828981103207738027752429260495040819340240421899184613066993128938812833349291436704892125147442855826602681729910831030983939442593829210208772413365762748607724642528857823044331584614546648340876043672599649781829596567069072922634666215877412998698357824335724860209809372399015963742753913141322577203972058925149736542238452962411082195151411332360394773863029151255230958066661190682606585307446894144455987611303962361593562815479164209122084923068535198264672143496325107193949084018625220060971849985414487403472404844245591234668963693529363019223994841182472933905078360037823370856894657921150313868741873828711934156075106088786374828571429583646085209102801611350475755302048658970597938342159147233593695262788320659989018761559273718570435913740246929117860675192307227779318520658080250795905840445112091252277302385965200388007227157606785204245970569051377480697596473882107450935826977920124283914014732604660233510563382681082286634636920521758169089952161540767887625279406454169942488479590067759351558453443782924722432735344271725104785670229466113428650281565724211169613994544645182917671220610079795598687625222872282936538782403289567878195078780653266247198091911360440189272620376061724796974184625322338858367492438226428898672790296741475329761183776315968071475495639563964243037676077388757854491169569990348566556664673645116402349195811816252202190978350802258694985715321408766697699640766075628714056221302102728139285981519934453774109793637786455367071408892697782380740431955294480943137142381265204640298083878082513720755157084147034781879017141926402784360389189977222871122626614262338524749563202197157431370325747476037359874905100806080604552103475756047467283898013773880557849692643647608602963048943161907080916012767193819526298228989460379794127948089716711371430331233550684475647292179696988763962664374264404940977894882503315147891892861918863769476898052947469710258311027529731383695442295447790946058442486081953909016116603072169206569204969968518171223085807945064109209602728270535810299506607644506248880040524454755373023417835150799380503171205094557471329805249205572116755894326030795518080391603831515958827442598051267935080244043716644877746445066267221786983619762527960953440912145387690252055308534838113139930860099113558283512795467213808295337581501026790593537199542626850398522397515603178359521577568659709425942324448601152570748827228128908330807491528808594136241496973254808779376344694125792332996073662384652008959330745094534655846587457473556291064124038866149818524955221200816746695087249160444855505880642764593661557408998038182451123386498148461758106061793941489489195935972016386773189085434152282574899408724538895018247724829223033857884677753696941010501725930910565812508707414345335114490502611891088222916366534344732778677752443192575697086205628907814660061013904027534664470693957510624642940792251481033076068549503095437228825565029414010911150291319476440097704421347557020556606844094593836638916806388873722161094383572662116110000486808427364713887231962099639609235082127520620939664837677720165628268109103114264800218036209645076960727051550851471258852093648831877348970288541482013945003961670616428560750882400191439575164022882551330289577066341845743107478482730707228312916087293543564313286476093688005321548836535976778756806126935646822963244820198357176034767977621828475858848757895466400356951987737291978207827662667885222292901427132963309319446652857481736065777349426505769446794614164338606628400302764749188213370291357608108581873664774746512218357853286989178907560850156058241789357008586754919488252582451936524678098467869432000855415518145143318231609211958367908011694133840932785758781062300579221839364637430108232025164460655810874043263884261974126432662394028389472353541485854680621111484140820237099149750525512834145553138590639627830534270336702570955595409065758729130797241906408281318816313515937159430206634797524046828077790943177142244938907489261454115448804967992435046106118577303816172996155425586728227988995203610544622185279599085907092880754442361930664308022767142435775990554663574777390272961627296004473677746363965505526604482625939667915666406277979011505326465319818229925038113250857190865852269286864124474035316139362324737293867558180017366058571895988283235778454102663075593359857110369412007810850228398836952068986690744238929535484572647479032169728000398004893751931763432815698600749904422021846935503372132504061303675236148950645473175506419286129967999334570568329401980819114483987460180803927827976050639843891845700319686485742679203007621888218653909431325613254426548461840604195153301710868786424372260403154797320929152850636010238800691075493309470997346220599613269222234152308697242727484803596435156447177909977728670631987275452633313313728406729282273879765405074635373105186235262016955873711621994171754601594757524559133298530626395166379855624082340766940741551350397661479586362682559787727406223787165152921242102455101791956734179402840744119844563547991847892327813147300412140738687511386522947728317247527744440509494641290081325851244557686276115982100632606893462700230499973711461194611967552366137212054300137221344888394947348735885643876840034560365875949624539836725921283639822476168180501194664317755366183533261029056052439481567600521678550186884615703878238752250837595071933314935524552359665412905992764981733768085606536100020750529146801969954466164310195954591543209445777923471103049339399976617778781008193840962253693237315061233948597831997631482396902252613771396909407999461932510833825797406255030176914321330800751435449723681665828534387320591276328647060440097265032460164149422568646946573699971199426594148656425178164757362633341560380206541837789690494643419006820688324880584530535647138390071327829047386756791225923387631725698514898151341801555157403607095861016876786768211017401732037194530637293427615250900882341572156649279175782605206186501867911874139117957882911724996130121305751749053617442758533790673315205658401331966929417233667919194577128620190688215285742965170537952894777161221728866099022400272252892952691893389874099816755557861031771156568621061786318527895801813484372208734859042943084066555797754077540104811082281667165447930556408823873134410460558755325379449691723002577114137436205817598277315904389711062484832808279431729614572390001072169501374034280281064219621731723704939642286872485632084941224867739944655220792027626833982790947673989715192223260529276963035813501573405183112924301535935929690028151362774994891006585510556458266156080141860371470482750237002777550948171853767052242058824286814893945140830980135658160288051207931160618761992274640483389310222495682831988399389486694073039528708109253018987800206206010129323826946157407519566647583213159434990013871307921657072407039209513031541775175235281573646120869777381437133755056709118998634230471681581200716188502487554619024969982649688307839479715800835409636395985925144981434349193064963563101208904143925157333063158615766282961470905603858792786897158278330521980811999380625204979379518791898414745581410786736060022253897191948033283216002672991579004339181869653618051269089270788873567058358446004712900100150354478396765019227954246928627719198499313749383307723844829939259541551748561955433616611085738364570238969841170441968035373176865243297256245674796419631476131835627730106255817188851838342697720158191345389177480815400943204957371599634969026640855618771344790792586094568440270443146360443733370917638025713697785443229736726288230957179910687881986032799117414119471563960949816011349615888615451979405298371154135442738990254563129602008704357526532442223202392459611868558497912595438429906996592308975542943583018595166943415079208347449664996277845165729875076497085193513753170689422317783710971848576703604224349674255764049337023827102843105861599914225031741207011579454054984733632161816896161152071683806693336494972476157727146194062481641249751216573678598526627445084170948437862427274557157162285090831095809974232912565355317736212440936253404276918436416303721180652503072727506828207043258353869727961806076456905452456169958540548616193709469652246252516918315612865256033996947300654551879592598679040501699272740848888441716576083306505879214417240543618122620087317342579713159212926576385280295348977513566881350500482694055359996944367701543749079505452871543903943879679687825437841173194786737995354113272046655774248349218355528795211893306048258372417749185028538911980239694161549893125459958630699490664782800822934616059685005087989651281771067889629110919085517930862748649451194252598508245843256036259660616555774904351487887192464558251401923223638306645247348695251713916212294979747007831880336132470909630661978713437264785418630254015097945748155766770535697735837214521222047350954493761573737975142622925672233000542330547486473169225045021624345140989224923920464069385627890457930908244444533079742361642935393246086658627742638501889334480755355352166007866746334170758300893171600857371016345950401709095033094586967496752562556130706916193307143711106064517947925803058328505521724770576930317609427053598408515985617723710225520042365918175244532810524165613112598421248779253953621244604153450239596870534227060129771514959635555935349542625503019996591268099247823714460928912010890041621233758439706050449111090487706822530367060920690378442256277044946524180371372240459950893784230945708244918217396228724366630757909709826753539231661407331565756878386877548303040368836793447565522204935282768698341247323562889329119419602473898633244879065488402308440907866736206711364164463927781440388564512287479385492311151888034148271253295788139190487995465567736058427533622525109103447575050265529442092009724186808391355996931126172623297967775730164385439451043390669162185929014398030222936362074220754167774917610973251914150289762459295936589365954696098888196685333816199298055368426458907426425265317619922917991649373559471033374555696778473713345336406386242365302208038580334540466061612374148098708945727167316104779400252655615100392560732287669536771784377717062867206293438121123008136248435939246999712320316651520137541720515852420941392741749474623647676189779326341894536259548476023945812854107783867544754131436767570996163367169150845385549619613437333384488184613819892868505792036252799298413970048346432633597053287804465635155173508148331096517086427596893085761966120088895192411336194711581886295165184461447925936195158222060813663678830263998188047333841957515225432033688208025515182733237511775006219006682104038102118439030691594964813831734483443524259580680199713824814126320231611104161599563022711846144824401940245528973168940242791518691156576993540641563833302010310343673421059101723536313808274573888232476021982026348272298888041358047462541506030266226051186675331068470234512649184279501051126393694938629338377777088287557433353481092126333639217861650444485108326207925561621485401070542514913692706650863341531222386426589434490796386586622800083231539100210900284435076192427005395305043527730951587672978208982087486840550818797279231995972007323056024522860765246695664231157816459321994062809833018348454121715566944285850875794229107220897703651560894586707441656139295917440171860880450739530777678311262611253322468102498017096582544047332218047458375397820726739514695716079018840714121100569884794382933712512961241709672047791526570894457643016532400164842215880076562643523909909431044885873156688577778551035737552511880936195150205340549990645717616786499232608135523962043816780554572430609248354643525015596200540098961582798932052938714933950564245773053294585500389238662024494478400343170305131932288888663755997557284055865472243028337054186918005436237205582093642853186476373947957538632656799801825874794321584933884193373051570272610273482294445332320275034823089741603921802354167956398414615997741754202529469529922271222387547927539560167879508375023321789952438186492836772563500130005950120319299123746037288226599487252841372242768373286282419402217209814947708399039536198307094798957819603946895044790526577658233463776389167368554946519961646484434103698334701227907814593077227847682918526178114037832847179552271822090552484805687271133109426319431218889367818180079482175201174871437099712337329552924753905649075963550742716273914919411805101636935183497013386779400527992302401744819594118479229917308201925191957616295137983533048576324136020826804291687669494088161765324636233398603008439897221128286563635428108488691507457229841242340817258513668675701685809166115748809402828228300330831994446019696834941703769432166592519052069245627088650311280704317994612493010211895114540376842396715437241239751113759523856936062469072243085803327385566720573279905727771328051283562918283006309569893457125810163992107938655160625152339002557701023274244235349891691935563423453600148686132893208211789843713952390559327380086855496644281154646687785040698768517492800175199221220235722954553798518193738892069065270336502290146318770722871155898033217268311388493911010080879341128414583865148674406710537379482546382426132249349729566050911193415198796708370132824084982663296572276783073508691271567334714496227678758548236683482358427656223390061905473128779978470619546604528097213726975320016633429350809500163581556962131452850060782088469831379398223815008313924447643223410397314909283884841913735370904943155714288888578986305289377354264658995671605955831173698869961892555593624199238729129423872685037677768937295900382790727222826794354174594106951796930514041934140605156864481325422865504418117557558935798401155054205873273317461518007808805006823800974310782884522366252463056680313508811746274380636828708033519905517118266037475872061073049708109050339666767271140232175144857203236638808709917160572338527039123845123832005762916392971688303560511707287616270754060313058244547942181819914377267294863862721313166350182905520003983993283136315485873582803202254870327046465181279642570530598174541936220580866339362014623479018786073534006022688393587583712600106766481573096701771820757222540797680693957956434398078047039035611111738190602541838706133810902716784324975003852448559309304675953597443324813197100563585175156199984747499604514920090335000783610220173990985968953504466152816835766125423175506882447887548147847576896264958598646898059671197791378574291186993836063647008365377895453840934563418739770859977219655606663636219679881450167452556517345416099962150730044418519654920210259730354928422216212070528448259608871196744905104605617483927416404791328454182115425012267408909267602278086020325524413367526146657918059761766330022555760223855324689949970622699162181516178537297936205806576793923063683176092486043441586753415725995888544718659209685927694015149110949429126478555676089556699832198012082119178198241292144625617978237594051524128901658411651946245606477378442985080572019898409345591076139140935463676224593735349888631930387297850018934702470213949045637028052605150471844698246860104635580347010173613442521686412509907544537801426534425369816936364449493930096217631332743314329173108977579792106114016505415515475326566399139576763562501283283485943229779998788376972316748722004853433008372843711078486713887705592304177307995212894156781877782542359593542975233888083022236079597896251082675966523387694823691773683362638505277219371169232155536386733893439303256803399858812929721426285892571797590569872311562093409554758259087356200011587242134922263686617858355123930729492511031759077244558193950987895774182275469012995848103775085650417724524168345152142202607647998923316336276780071366680212645995148961602912520002164125988991662038172111605453144354551682641730134142150283609066587282336653732822570345758307347274587951137590536055981981327272448169238827928080811289480445873012534167117597556642783661809618556825622875310764834195480734238766671269271964584290659800757155597818668978448165183700105890933050523473416414147872354169306886825618207294963161996063983475046151979777908133651477738451704218053535753963584289673939579530111843043795111023154993645575309990255309425035235267621909953401925530188520451124583641881573627916522000909843184594180248118062073203080365021591986038179600695709993207370405607568046646613876792221610650681489393656770505676073151261755336057416415138975567199259194769783184345601762431512329153868332645699928445580551352892329344188023080070277167680398351948534952347932025359251792098944972032840103493625487192612565159099046596954850783249651848737220779622072054169830503194830713804833550487537342969202999359490074731198526296317352306601478968736431199846412458240823702531246893842769025376055863338002419698771556832485433762267754880093683059922030336105103560427138564360509656159300100601903658976602034466948636316270426720437759886696388058834289629776815366367607059234261126408761246125807198463048952813991138072340806777297789492815752889052166138546008722143117927149247920125722087425114550210439125429275970063152224530049232517754430026219288790698593395408991904958929761603308580217036089862313504218034538161071029286424185911565974342047952872124019053342170221886750564720293691652450957450439604016100217583335327340762849071383661476918519523621917107663796999384455945374614574157173943218343163948637976153589010591186686117471336600269764401239620782980365244672464286924707796194367731522763763534100734801573151107674483031721819405148090154280664550443081729353288628507053294126401367499762185905850439511301561627468866699601574182117360107866723048188966188103727525852342406537182513165462153527548651172063705722457175553772607820869780234048033821810427399550507108946759524570486121808089007672961420574936974325234637017376700134891365421257472404576487139328289067095309199678105459595964189343711804530716735555260301596820941771953378738984687211645267785729451322206983233412480845238465520327309305327018965492346417843153007342250945091821837090605857283227122286052896074481917077622539755367124032163063185486180877614870907154567178868159327850902339940534621165569162477438620272606775790669869335652292350142836287421116797565758423292309443647720988732120837552666213754594297003096940019250289971931388957769147540343987053577506816815258389864616680172673853982486812362852965893147184945890727945061958357204422758299616835582080369425772170923468830139097040669718734411837792520211592175732489014782631427724681209249798443902577728770010588079836812525802544102408521221618265925495009655090267447304129643091011366190094834503032727519569932352150836854809283084178213043283668260476464219737378666417409781223084201182730887087334967080599483808931346954618447891467986085067035883030750375510407693944943424893358269420842913004323603591326488205400174941998556532453389470637474412211305731559086739779425687498160237448703936748606729675091521758625330982424067456973905864268145120351086735341767125214762970116763276106903765958057445116696759985470410340119270381989229357456100724606156298851988674618717855409489867326315840761277970590048478631625216137299012269380848070841049629814633061672730852115939967985375419550044220944738384597108970764589730791377720873856204371217307667985130082336209101053314723848572810783690243390809067346897439970495855620630080752649510648390379489290694027771748635916225705392343665939795002056080347004485505734182579695736607630083356135920958071990357914852903311649751615489434038837281878573964265085413489006726771692681340470740389926386650435864627804059298206982187316919780891590494451233062610292554449146436791724450009473812680562114307616061235390218416812222195012545312610058147126374530210517410798946366202789270392546896897102234213971376037852848912633813552499182212136844968087722971650467897150458912289903258966843011384836542217041176120321894556973019869875451895684218712370890278004379855188114151759371418212896157414369630554709173798020113266868143400508649087271883043161999706693212308494444286445865780572213371600054816776482686803718120539650058966218720395706911806435854460468323256459841733605635777356765379514572546424534859920730139777739392697343487304735468302260317525572133024834248879943741735482123298652681164142048689015219133203109631783186158176097475315242739517799169539761762967119544399261765722121713651762858981832350268749232208246316466016302555398737936123942541320359427733337914642139243525143592172486026842407650704891468244314876043877786475715005202187808735718479503107910645793230769664380504910375874615281914219327979780090381381644808598062732318896869955716811508077691950820379702604438817390660138282950702362584894283220702932812073635156541305947492311742797156213340929845776784611345882415893112190834889877817776587534236075568155357613168143711221877275093695045029730478140914406691405323918227067007724363154227912996923698484994242607705852768049014432106309769670319412022639804116452892592003334353950298278093343787655912379243670572076442513586045193367437364752529470073564285474204795234837942923579763857340026710817756443389936018472867429374613289710891691967403366290212012190838404624363923514888642803007453912312710612657547422356048122781680546733855694859281013384840183122022268956324283718166196645665205299424644962720761433525849591358746805224690175731224224892718337921214893164741334936941884377684026186852152204574778708474617050747698255243233065690727180073166685030790995788455019594153588116773979547257930852544998123750426491057567157449666867354681288970489355987512013065580847627302807307385742770853951773171241122668709908423098754889740762834411004301300016720880759503476089708701245666773562133193483409670321590307065634447668332502988473248731116669098769598247190028984198205230831168072295289594475118022395994307342264056928756685524823899696551881736867305261443122580787645988668973044732124761839212797987366038043187693714610765358790872889962818361287732025381189310795199079609296975343376349905824152735293324357287608254353960271958611340051146204583609747588211786203205457047648653099462012240487801701946464132422930937929072673111937403677901374832219418950552136451296988692625185426076946278394239768019504074852712617440151626423693159492891838611113216763613687426346429264781609990910461056702820042189793785161431130146130473654160162666801775499990815292164697750712101759318836659945293661736072207777752189712198438281997853206095476181064070168494712559227951115918948636116508122593046863520086205228054792740123510533444566180123102707390777975842730648412311231161970617630131367564610724066040756608834659647854496924343706334865196706552414445727911259959400091088763602465144340526173586882160751487896838060540204826730713423759994483870399956957163759621076838390171025822389626537724549450408063214656016865174991331749380170670671210790524550866787599615501750826261226583138457457963933986410746293296883029822589564381649988040895778695239021961509461903202123952717294930202097215399751688415334340613136276389089020312998103766160002812219618901394334003061871449473231169406266089618984522169396764336807158644284415162451686440161654077402179960149779819115477480836903416861689746347623649055537129151323563279650857339219708220504796770167471629548689984646691931969856849508078441383780907302427899502842852369493960740909373813064379166341895729232027003800956086790325066866752701842116806067780219894543617921578757077283422263586305522781491359651578008580121120202264013395140025392575772163987783173134741400967934427224436668999962825242017381331346564165332400352448286957194943691072245668233415790628736312675591359785194079042964853145062534836657055859789668266143861448185583497392205294645857401901392683671371000149668482976852078748251441272259852448283567245140694672317404468506862350825930805532402853266429990251233673395742154529363295525715215878137155129949565747874254472191569173905584960528805235195885189815223085344565504338891641092651207430669476000860382560235642697287576187377814406191175828867572833411696261595289207591822742523869285980669974706569537520769405896167103966678875461400587351022486427776893132941484280248682800261203920347273146071633901502468415153072065632602249843407468168990845182684026291764971514269940259298089861236685177219401965106736850049402504942111988220278280505372116857779814901677054778820334417670260540959401075458399564606828666322380861866871170594638292881798469987066350685884433747927036415268077132286933932904480706205459053029285882466221452969995873065950511975942655641639902935062888308720565997965702381051407841471982474134939116796175432691531275946217261205273301639108945424121087222980259862933504217081010582110422502280666890462662038142796563961473814709149817992313396647312016046962252668253507044479743211632329126497326309476369388800638286074156445776057484471408325148561730877169571501842233934425223078662005891142900973910791329880505977655741079286298607355436097329761231505687938094274717343413635633967978653362798195104674602814104883912124027847214791652897076721755750287553829506231934630594340402159707633550938551901556821705356200540249169212752213319240311929492688914472292376958598004043798514221478781624394338327470667016313170985174744131304585077719833912490488003584034144619994172600448208336346606015653267318023441969215733521338726585226674502945084310521929730198567813174650569389524778442288214647357417871552769738374972396301698679141401427763570516665727460510675474803718531352351156100608931312372814241117197895548941118996460868524835465835637518436488399332346126429950977857302617810656863402040293242070753315657117368028499576882346885883545747312380800915068771830633541789754176860222331700780820985561186659076270790420510796456072059867141143188888994548585440194359643972998913586028032438468565768193314560238747668573083684659648951788281113397290624789621546257380069863300601123301041921010077122844707162573192548771426551786904429720420792523320389590625626917801038267141426867483345738475748762857264068481740506086682917094131342711775452775399190746275338261726340144890170115607942866585845351426087958653950751153186969865787817902302625682913371646394307843418322856039603740215128343866546248915680986767651008862344111472792988092746281827445247168574581176361400990797034934186623304743609036522694617555337615613080457711432623047247369760694714562104382315054592571543946193998767907359458337249327008017528730556031861159149741904083097259929099107036969527703589809329513707104664861058030883032614510534579449364068972789431591602182069351437483105296223339148082227273409193064106620489260685444644711583333329027964869604173659551637077461659761197607272518483695620351765319805813999366107669361843556759348213911650690015625832135372483410973253001417473135686353173641076250397674121079662723424057783684982781387830994505875587975593669593277474297062364563073736145508563722495228877616947658982364911606207060120887333148339483553046619367528122762308663864937319224478109707056761725064531673737918289563127707244782861105673428500051567370194182817529195755930807032881686980917559792535426910379289826979061486888125854135173848140441558435192765816621049747027523934270146313884648657336987867168519506470954088338825699939397981514823836670864838845245498218105787593019025669042109254108971514728557549566192571489722301859263991575359372919804851417510118182590460053781849775526364611031995264782614637144517150510324666474755613886008580777157369559130728909169793389204043036356247593658281893169407893511240154518319429303128749221077918376831616178902248346029632808749439101078007534927308251638949259339861375621829023447078611788634368163159514165615153680773477975595156811166048842169685878627540895559448163377656293048810768125336320940201471149874511743574683085317309651071855100120233327060608074842700173506252925064537412885143079361919923676765733140793637007044587828406856187291352168767505600125971899207979333612817719640104630558422184324950362431368910294364489139034616711427021166754512554533986174889396996966483056354257305865813717922186657627935053794239901508863171290996312675904236689406756947001753322920600409471765187133576416923555309566483434287774923066952075334554597500494585452044371453811291224722613007494321156487471258482692628884297479556598502677529757694763134522190661881260057108702273326533627375160002648860711061835098787248568723109608915206788737226897325370638512200516989963596962304572670670627755545172150765292811854595232775229633138050353283944328399506657440122501112090999681697887738904051509708689784245608914310395164179499781560322857737577613429606553545246052388668664645685364181609070377093275138228988381932334282347442395387390422065310908250932004372077109097032457499392078857809992474612193739930727805608402746505923507056487243717753763485711243955996640768061269354539620406818353155086154845440288110399187271504381909441519944182236833664586890298527870828623000124567521525632686782964661154865127082324529904646122907681690222924693017858169081731140972439335031962350624834387957340169880857656194672160145177106859805996934773353657185293190033051170858873779840577341284169458467997317060980393541330779406883629182983915035800979559067986716188815478864615529112016284271888860639016075301626829653243359520945646741568480482221669342943309917746797595967975364220204572608359835109607610098221358981335139236947567414213604395028361696183919758323321947265768989949017796255309979577279183616760718353325840966470194352395680129858150588375821096436240117943206951203675282691759552757655862795519854003863587881927404987461649301010775193963303907386330795417265067272331160079914321052634284942844429334842659360923069329201630500593127630723493709942347567445382928193509078806721222104091891002789158748879770449627415294101964214348959297876401356113492084724725616501311798814492335084285484455101411607185967922292164104314405875901619010589912687134662042253541929192097228564518434605710033805334796226844317427991134302869618961763747695225241417591253071834711967179569044413342732100471770473252904897317037008555077297589509675373481673299564684555249533288987338281809532352763564801253903058358005644206937456027604944576060479482783532917025142930668436207557714459622317837147563493603372459939639823873103929511385058983267201365885707246225587895049916694265396717049754943232672014360918406429763148489978441073773013272839894306686188686760846714853240345244461639658875720104536790157090350949824929772908564162547158219053190499172253909820683478292641733331122253206407093596807413719635661074318871985918645462591987529138318994732030527359586205305090215010058931641646570988853498283821547524144271884835600481773165339083261554000406741815719408597687822529594453424724435776645238387603305782171156538936089081892661342617704034047233610382312478349699736026570111406103180294028350030326329593602537423867506539197541164590177900541517553681612794624189023620046946243691239473782191234036526016028843225953860643170165275568126034654596725655063140631800949038384462013326944975272059366948665076071052540202302655952929793314995992707502372952508627370242228153738501704724389262126037531505889902476878554303739335830010476043070645391241543440627403873597123833454246480616943653194496414883992552793428377291763098049903586398420677295589891041959710709991687011624485085620068118225651728244762285738685387679441642610946326868682407074672070311531848842962073200230078193614780372901339642329366347453761232551116457695771503137591456282124659714937582853307073381958070138208220967456258738281933095767665239752972641026893763527395283685759181352719963226400863902345246889876367260793156127225580517452679404571396225689210333523847114767011580509510612307610332581314300801514066045916000400389145594164513939738310185483823887735909768393837629795659943739924420423829001782570684664319724394304647254487989673357608173882252898859155006817294907924140628061685862300223936366027332448273731863678599455861284911711836571305064549825932762393701320501515908731278673128274311193531162445320347899932385712410672329054781693857106496125276412321715732007480655202673731333226167851654404215118396246336019277799074258465956650161409044153494165519012241704488711869579394886455803416811796769879329916342341537287435978101637113277531937298222622196210257696871024196081093784223644709635159100028522918449958913851967196112026700595558041553876656005829528841950990193060221620708414423450537053430600010394099172740943635747400768929717497106035788260928434447336985806387293168468575023843986484426387685616209860074100275015825477636706805967051621466146029147353430468473814297699639504248685471851948904787394884200375180934030441832339367058591870484075604393759929325528994879701703085606789364936308589058857031913360070382696487331226048397188369919797952179711814870047568316366389251870704646061226424253664050666476108914793672328634144706121136118997623488681969409714080739791900376027098043820731787010074430202275177531398495579186261806712565868937716979929037820880070324943436081415710023935828681417050389774015922623517568158692339288870445394830593979160759975184200982912394869722581820815737370961254658343467699831732291621150532416804320264853297262221629837866575931039745702338634091447415265438556856919078227284343967236608330738701112680184350076249786626401911267649736310899217679905819500932261076737189705532935252979236535821242462391642878132656079779799151904076299808290118457573654644301331831686278536513603163030477565593680873764197892897113391055713390037524155160647745719727054725063087138066045917785466713892284278920526491509646841104755320700602730121970168746654423826076854939914974048157945591374895962693462754007920035530289619159422108093108735270362067524135852491102998631840198867706788911230604243959388739551246753943042514880700345050862545895287014317519827783862262822603014626299699856834597926630096246178899054852678659909574866667820680070002048688063445738379372788357774558041345502646162776518247919577592455472834863809787662362933208768270618198971673791589164101214696860057548073610152326655331036779659637770757887674139387349848008179622834021035411198478117394409708534669138363673600282212413342581086231662145284584093336040624131664683109778923079099843450560413832373427984163049514502017719767586230984812303675589614048462746094334491038088827387232367644840933500119240661457556440687051699040051239825406813187119245117568831888464118204582049395770382824954448306195451790555973635715006783258088670949008458406303799312341767000974207713186649543078164677312417474914113178234296242034147269934457796774972588834085997605175206793129666311566446535450611413040664489223614605125165894871893003592684717843656017303621778457333094657754249818034929261282322060699108705252604819282017867864286286738482091885260336220206192943442773055027170683540104494415623380594693850185498050861249626346666815201574029435117964770741505576550746495126141881992035963470562031258681519234588809567614999625158997550936072762497624155930189168730809615312003866374223033122109746497414796116906573268098921199165574193127609872348822884177860286206590862508475180565939416268992531389768164409372307010198222097579470604243057784703278526704376007514865918436151382225204574493836142329635503570163749442438983548765793972121122491146823660720436429486342114226094488407573013404664968083225376288129963968509339323640067879036943736604310881888303258937916871471762942333836325680522523106739708613219789006054817091122945017096135482063916820716047225838866606546858593226714954426326654408551190669492277807426187805899595143087804923534132471092519520267640603006275172566303507191626550888464041850623024371110426307645504296382644914625755712159583058993669095389195627758887389552494578431706377449123630654081062854891079462099325319808122665425822335325722499744553957591202197329883975879941513592592254979162436333041055024805394885977649678443018116048075146666492424903216668550677128080716897850044867520328798131293571000526584800642366056483409122570699708087434965694858449679398746503278531729856603704965092951009629687371587897781051302933751425137882635831539915013265410840538698751030248722274215335987117450197752192731949084953108534169038455141677209578244004770332411340213663487886963346053150685761168422444594661712311081131410035790354699849744763017956300340216051934467272130758167981540183941679077287794582638893067507120374430145385873552272398582806412654230974952171534300015776212091290051065094863322668647551089126223880285567653331724733337759307647703891629212318254793606020640030702475895228474652211222327832565544827184062405666769237990516542934330419962750543775858942032460057398747570866007232848441752880524518908447271398843988418922386613776730728556587077920896246347968245355708163322486315663392875411990179873948950942401167543598728306596480976318628293771214402604713504374441446645602785014897055366745827297221910803296329864315699917443716819261964662597051404326162721664524767792076632630837848595828493944892547461129479649964859373677043967798921509989120546074075622449506732727207022723044479167673498298114969171883163357832382695358829162565268079278682503924488440903548800349140132718512986843880818283624681838959318001714359434358650251864394753121695420367738822349577693473571587769674803328719297913780781927469188488701802124656901134867223050532900327981746171861218631031447718728680673691238051585999292862330085624121770834765528768931113648802958907503506453416649757878867833241462475388382798176462219455217905792049658209387660926598260574198603739493778757473829157870351082384110288981692822530874231411024242340303931673523272557651927519816962118968666191947926467196819250725435961735975394354213083479632957488446510175772591801019595697613099063692007539920110018812498764168521876257528238181503319013539933425095287962227250685361047338586309511975237875235674351473717441587040466651486389074792781965313024992980273378334850055998912724309791636893891086112755956375096269089830513813864034762575899091164340695752001499984032467256679201760940578138391253478080529397667909408724716531613321724384896473606311748367115414217780515435575280023393255490088274664341581318989565101036198874753423439422909901052727027222731964753549911509812470171597782881777319563419656058256189132345894631060680322012175693573293839025020988520037999822530556662308919086925805204195876775338786092304094339290101479194997782061846232556759404890039618946587877294480592202333080587551908201043297524063287211691639245204863393511667033563554201879232869078071947065465346522369130202991716227234251824257612471966823971414717801120377319848846439669227436712453685791744898729002384870498801434930892130140899383365736795488238003702038353651709053028641116463058981189902416575866241578814973613063198438910592690115154470781291165926944570750092113684838415333201746689171301840553034868920547212793110863875416345283557511558116936657470635197397645922382301684015122042727317384356303241264882235609001785183738927579656612041569131658838229750728880424899697567268000489048236007710454960274025955413031406053803446838869712960692289760284008147791707901143838123545097606582874756912169057238723588419211188004892609797057539257620019836884683959622827481164527314703551465775841203097399976993357184830721652684136334393973204502183356880777835051278454747275846980277552889783153302552465766829633725108032012359240105682888213981991740160025678583880791157458259044843881981933501560495540169305737600217597860757871123767625534491062428237286835898663211657236799627975074174623801501546574509277938540468867789411021002396024249372657127615025542500298186600894839220978448264835707494996584293384343055065933630484559802289174415155077371147439664072968143155117189623228048823410563533392249003983067801536029592680449171591544691205093399347270261467391810415175626101658508171129503375836489073858595301801194856268910710408902995169728717293797287543726802935237977062418762406199958053730113844677973103953679631303286148348362264513496096273399044997041357425513275291350664011063764019892262077465944243985724733240675896890850373785925178500558880769614485878803743737914339942972849988531585923521940420284739868931746879668225296057919083883890647841854597063857809144305977132477630095495075301458284513755102035403218614014777116925031921499823966150495791381578371129605545116483583501659972694152676929562533933645459782283874614407244781835007477451778060254766174601121226712450801210260622578957074520416478892904801777547736370159856481097036055083767611070300184599556543880159600751581362076114127491438062795795154153308630005736870046900646601553086299331603504841687739108982199758095739841074326808165928207897153073729905063221772204828223644044294222901618974450187963033912769886903528849063384519274383007357611190642831998411854470814750112132660177263201095168069074832958761853688207038553753235429685676157714370224610825124011696105832594114570377209607860754360047887309245537101004025222939530096147729998390799468798851071438844631182778558654144365367189823213742901004681004524128602095965899505467845016010736184903625701046453104618330595645326332970125104657270918001405087265865776325779501208092707885770040551540965727293603890045694629695291513778314982485757063300731368804267821591907876465519534143826908030372336634763942486991962887470642413271311382313187518010969264856812525719815063715483737983735332671152767285979333124138007456936836400823405831711022651805776341155554362586103806101290055394620045862439076883216012994230357979871445215035475906778956606388476553804126509041926336270005194579753247038048462903514671465288083155533311212985653999841382065219827581537072916659938904781266411194194264944318883586290763783356435199678779654752104341651918230191070473426919253683982294393623682861379945696838824159040760287065229644487393309015219523235119111456320248829253656499575269210846350572528645727191526223421750473095469076914140068944225037446172231445797496640698377233343692697010478451778025057089222402468245276327051421847718519839865413709217233150122402219475147823714118361847142687967136068091809796272854875071018058285402252817679653423065190903076888314951748745903582667915243686705324052625490909412460804388434566310445292132828428311962341077316769003739164582169259657246340947435928311678720667582641895100472733454552573841969271331170107896105025905870973599712063678197767265992251597708588423435478302359426051950344587239029956899796097887245461272807848009321157713379446246594409154928858834733726022401292648977785463023081759868311164329313295813808025564189342916814622314561830250095265990124342976976543664266079887875106616046886641272535541851549174963274584996251833787620007770757439304249120220965908324058267649218893609429332465431868325945241321872392246323800493474115866381457579319312263577851762538819118006384998797386258574281575418973809311441264430270596620596785098778549575510340751669202277550593432600087026569551874124822603325146835588905133517828595778884991450542199997738427509273348142737733812802062561923697914569946074563347841140531346511748356841492755448310963662359920106692680196769895322273830713423039695718338274271072333848637824030438893217869245958887679264482313615987904969937535291686450787763363105238487162998860115557791881844457220911449830643997085040107664076253948020881950419581335988629983294915672534755021863904378297051075800464624552844876732830390673507940363577237710549730513349668405883823044510412177037687505231143956852828810431233473903726082345799100654362231035793176436958866295554063396641550324843512467521131949727680893947653950748046610292058811288949400607503506974813330968055397677920389050531568969321774610082623378955705677356836422066808803152060349756424918680436990187495100303261306437520201587694472346159184563146372690630784391997741020163715446704630388069477115626899306525660836393407144737258606444976265197350734301555279433227475275784417264309634606453910019639550594788046214208573777840520150783632572031237710978806206267945293298919289340475346044662490511096657226569994515213502465701492139747458160890634313918282305683385170948950660760343258506927848806205628324759532920201738173239353185920817564302853598616800897890365977705830126577476763465011468759869282242362275792842281256104602183168452166959956747368816876216408093369359877104405351276452301811257758696749200634984353719760338996030871137028603037339612671726734761135051752204716904029296476780171151319351999468186493574458306842450184601413551994346062524269389942766712510374921838694297012923587893159071179141265645138912749528386910169281565819159415732264337917292526472352528588758326873007297058938709438130934233703134268969735510711995110052213497771766513066849140100150154019318617205912391612779688747584139783405477518775830423914316781038578368168115774269087525277660287384490198363528282212003800846364123074485493228152634574002571983830928884564670473664459447971560007581122049608339105945420819664224311202939099196499578460876831778237917058927499285168049877092858083197472944812123059819767359190963459615499694109644450036360150145561123725041300963011794212531811899886921924724258082870982348910778786040392565422927775762184531347550438576126813338494841113729921456802697306467292487482905294978887071868225275285468334227862493347231242241383145380019219298682755582474153641756879426032776472898314735072797684218360871159355368331185827363815346937320314005783754202636862317863440765254825368644122214164546404837651867276426630463201191505236509042092514266667846831249569700734921859030357156587284774696972066351526307038928472501408626892398747796781374724407292002581489263685453656738802296288710675032525191286831927382510433177626067091465449160528041505292070645963211935314319967517297996876392085302053877867038763713988766787931000513472949773142273767899495620356101732276264887151139555782959766767124654276844902029258988703985072252932327502973454718269053126513128760537329131802427893705990555196418031048766930451647973559210899888115901197040458556561271499184753424140185978924083598876170031287833902045547386053559481035056784037079211155346728587144196924414875942446720292732116780874319965380395759641396464744277414749920479442207345165415979543331477102481437050923713413552636291525258935430778101200199988855387309365740391539553719065847943262832505255812349666356326734452945600570589432751688995799068008997070390883852710980696113697137859610464069457551067415437471321347655258293126905375761668220191688360362444757557868081580647155567316427929871475011793307965229936609013399942263216834043518258035578072434301721071700420394566632803202067437421498502675980250296068149656411185766551737769284903772324977573127292916828007830535880253918361026093365453449428763574260825216751142243835662453130701611220680425672268830720944488575045404490096997294934275353246464388451702088028978810932438797027102796908680942080920402048433954190017478841818008676817803366370914338980047585879032431379636643603485777100310249356546196621760481094039013603264996398410082503204004083249979826146304412698960570639852542595928147544129337816488525517302144506888887257916392880086952248880726576075015784770574683338211856791949623541517143770861009721417327011285143686670329299747820136382670117063034737294334474084874379182224936184410988036872123081745087299403715147274596308429076455209392060942184591027217899555670252495021299456656905631832658014931720510218677034141882084765593377199600314911891323634487465031662434441222918153693411323532641014006756603646470454013719355733169030806013565995225972090047509291243005846997612197509352339349485519869343040196823125062860753694584316503056592834400229924622254023598302940590756217287621234437275917347743818241429520323143254800283583166821622325340227910946302364341627111865565703242022638664020384570094477576152141392686698742610735923824914144935520811200742094380735105794318445946504824453384235299843439965345845224790705555034137293291450180304576632473933427858987322455253661733766036986702902963830551448236080909722920717835969720387525080196047283575263951405797678606743594031395332664232233136986925768899748194051347178132033302244827902964639674197447257695179767178236938613378163533628128688103595556016747720022580240086077336609811359556981340603027343440136973959306664629999604175060658793494954582765870014514064726981247728480271137005053601292190382923955461236350095549961063900848301266881294847928211677883774725330160194108687854304608212795196040212282351973885600546225475257350425053698837392824343136325011589337384644506002163759911947757170395719180012050799978967259968343758030453356712214515804262349725417317610686735039619924298912458118454692252885646680951249752091856019312526763269340672896708365239360354960085547211297737428532549418533130702383597583998707024369495934714182512707600899118653973115509413006270264677570751616705520852043622464762310030353811957071742612234834324182626272985443935031597802244609893327251355589312643355725733089390449277123068412765559353579412019607802268234660908354720963402214642183300883525287017387107160150320372213446877524681772082476074069500092881076527786629612413800069495468102288854730354571235628032106480455442638456015325509281424421935672549415167614531096290771271692322779105691858969251404000232299637185641387088925085402937862490160205730439595639565766596622183830348209191875078882174024084920152052751964679789095474601206743923687196012206033729983305563504890372389373080899580923015031614900507318310706014646353333623949113123535497704854512753696832997412947251915694269116405776365861429431394498614490705404404671618230682654347569619800876761681889932944831861016357109334615046074285673652359036859340314416418610327059321083198479886527121345368006321786168733885715367284953460544037848622037079448418686991635318928301088794991398176085781531186898984020671223291675084405085515470896310331147546563272584366425055262235374739620435180841346943862662910260183511255655329887463707301948115992810590987095514234235633388152830259351910070551223397272938146660893495796373689475377825357359548928624411529466701454720255058782351344878487169731681110697710263911662417868193277984457174211246935869442301272014826950870605269332215668909654180550564535766979118181114818814912365439392507790320962915362614741548639611536719745972091393089640943397286242174548390879909462673326390350532042729852960680246603305169811155934125932804814702003991737550813815020262548512139488282874181669991747713152929362516647930854892466554201280987231830148174145451003413344428200496046382848647698504467370133852702773717526679592252069777365610175074675807525611989203010918217049815459992646283715082987723372166951713642784887839437390907640677111627778884187910366707258202584577034052047520270449709111429439412034876748191990748785350432649378037160357869566133427669227121551822196260578582241264774599472800748231312324687480677435816977631677994274500754420351950209478327800043394781211943216096778865295042344177496684913120136569856932619240056194154315792157029085392450992570466324759340109672802461554364412831096991233231799599099070136178867198196635440628726605019981597671332081522133107882315618154837544295561822735786926947798628000098864213136538035531588259173351500309562527184074912104666301207619043357958814236532535951702547654044516694336524920196627592733105848362819622911733178929997489641619662396950299781830355581214949273046077366173646447098117565762981579688248841423205891757425762757989447089612823388019344237572381984359447433304312847990729132892672920091540279905439881346098833458411718808368951455845699544526492807428523329209239848392633576835749323248954822507207015938748695284222089186756037458381129078800122040588792577231230332699638253774816238290761110641089168599779244277916927598783795919932871806450120120360618630706445068244757054020727059836726827905621308973184086410142080005765766998841436915654116144819377358791133452733635698505890454355145228401685714552999246834837386442729206747794905398196310079666049473215712670272414056871510125705803951371511942718502607292753222202159505197240078046042939054591704830840274647341561835063252727877632451936761574983455759527073574030109601367370491824352238089131452405236924154917504653410284992548230049088000938953656853788308840132615662348831210638639535410756991790199584825293032590312275659493041979001892882512165353763978842315652983352038938414485407958992185947532205916888837133525118777688980596227309001050185682246680371639791065286553961713726003762693939994095845389475158089493061667357732435802158974595238082601204403227221389227121712216947608341903633500087036144374355857805313690818455934600480265933211371666405951103816344128920341606839058254783302245190091940954133975899655051094387463496041755415826117083433168548567355085136331172231181758999921958593558779890900135007257484655586254359571145093352560292102496327530513844049699722866036380224607461581109338583170905968920696069614728085222840871153483796109241434290284291309480185327441610743515231689832009787209781501625351216340821142468346861790383986368573675965939859198340290595729502050813476707786374060675895780986681662573131006810823131232237100467555747835407520369026487543002264123308190149532604381023834635969780931529353669421431363218449561019897647889570683117135932926644466817372860150264121108179841162744936777243703898519663584890567000833302926273400358774101825663583381275585999373140201494479442511386678834533684260075550285928011378567456299030433723968424194324927411667020841954572931849988735438312157877033319704908246080442161174692511673464956140331686511109407868610077174208001695275703410988819348969593923120598490884254570438839514575720422581702673406405776900168327031063451767370546385109999396894497876461727871632793077222043760765080108514840820664068945996024615902003896644000740502599159106481399937476862692906985756086502591900192633688257018935500507986789021699190892768851596379548932722066713466186106156871331068614423354698452384693410542635453227584424500132670413355036273180290658417227460236568959060796333818186888319726770392074076781889025972570328733023697279154749191371281122788866608493829821750770242063655072570996347487445846250362167141987151780749531579304355481101887791498954041445237591734003154543576934803949449956406766135747486362939075515726245965735032637284160460316260869953689897667906706632342001005412589199415036103120069082385888482499559481160513512076319771510068732292678693309798676211980810400132777270234022385184985867284730493457948025855241903116314086891082202085155459459609802438308971480594353824729571548507411428235606517382723405734510236561434590477021571228002119938771430971253439878401966769845370105724530032230183606636957533865018245684965493656851519147681140977641103123443258614775358998225018352173162097835058479458446654261526593153242821443772655910562355986130078458937844266843859189835585669594761735824541000577267884531387376694780429511963905051009060962263981760626534183088095563418147643252163032248918784417359062468270561061182069969315074746560618130176711422945822646440540757201489704545839398000008988675198740407998105038789203313421417758117089226197193086863081869349168880549384588125376263194021154910348597996231898732758962164574798378538327914909426169713113212197536048953558443460163031052468925366576737687395994464153829336897743189900923161865086447438026319888855606780928421129514594507242693064456325832742604168069205656280167483809784238508356003991084605996764447997595440602301368305761780129055677993120861951614146741458943421921398940907290761095482104862283924372454867619937314927075615273414855037561906382900755502361078556126425924083955065900284779251364586627093753391746061857030825018187333544465106883348896416445187062717473227973137089993517821187713655106909583088411784738794990681839881235107098157511617496009573774413902116204012199519227208077820564162148424362320677057207487729831312330906934183547349056828488237048342849258653052148803318467030051077842040852462716334344779847264206669137391352169553860025658730823991963400468507254146948117954553268698261614249737520909569073659432631210766285759973876775281961567483175089944525361880956901098471178927725038020231583392266547172991208131682362419908133633756002792756397681235413066124475639917494421509049748017714866655287514921266731337790596203294567256328188861696880276847371920913733379955009961618571740714872497053984225108716619540394353504070053489478843525851368047940111014380600202794065600157673373000790020741203131497215840887751910394194370304205617123386316770355090346595560014084739873564788044003245700193334125207042157755183721727724065073886932257354231900751465261591281647522266392454217171452917504263176549158253786906860153438265899055673120713865604178854692467961297203725972805559475135789716417242094594304742663495720777667933842562832427295054691765600890861726677725390700772659908236640118374662346791110199209810232126537333366585173432317751825432445766157991900955997918421520253778248953563192076786438309895077675480956361914591792047935246999835446510131919420844242057408417500662202885976621509639724145551787582952396794061294784703824558851040247115469165589496338513995603789779387358646329548282193531425433866825256137880337150841982528221818689468857822147479033014479063867099638116746392587457671419571227286167932332867871710638931149513106303437859480644520414861402942876166982404490729943760729331691942128714378191405473131176724627438014324735034419583629232632372328363042523241526602841074780705067399268792287999360896668247885447750645002801547016594222177765921806024497568960019008311374151763983797345393113881998000136642796046253107157721016184857938979419596265667441744938492793340286361790718460426806173325268967765051621941800237193899466958370300679489819237366068877361414759052866655377475198427822938916208896441486444300302870880729104696242861998114507102015760006092316816513723951008151019763785498559998292220871804388674667041365290918918595742292353152561184483195627072848308317470878946332524685345728703408900681784561625418965521345462152753348055829954483200526817465700389292589282870885635609898036962164327236043003226785568445640611238358347815137963057314770952997328055242571146123013040975425761947614815595133346641372824686344290988033166480379534755197114838652267690368675521939827901958872356616244744338611393540991936884012265936456433805055205290789139611839855894709094218374352717603915444310442186442006015692805346530837858765996579043677268909860222104638765747320555244705324848832400042437775305350301892726531067423279077780570635061636721752733101299813119477787311688643689934834827568161052003891751209540894843834583441655671581054869908064720122352243232862024118750528457187074419889720252273441537852563213311995433307357039088094981109098803016371912513027097194132682755660028660303347046023304045926145528276440491359706029179683175440233070903797107495164189683522687210451885207141449066460770503358378755154107035979106048147590705234397175557098707819245148893466911596604742815809187607976613775421200042899848046530428577659192031910315024501965168655022812148651989856338992366101086129195062006122544654421430349463036656775830679718106367076303537877022392819173092086207311587619703632371219876466825003229346529511210953733596116818163776487435976710040475331930411015317258416104404626242678693121914254973446003879643127047539903004694440068265828985367111463528432639217044372656675993584992657101854913902910341881260736188320655608809027379022924522371857261707915112470810444500143361189502593083294780524482196388953322527950363190933067176806194555487010263152109023604322559199670654683786310657161123006656706701957897509493217880084609190894905208433671641905843135084538692229013871751878329322471821984890512940708849213972458250757379597213695590235766346415828949853114607615577439651700433699502531204110996577669829769428827223734061989999473886281406564591362518830162149572144988896156694772249936360800935361100160288257755632034798853203257454509362459579653242981433714363513563795715362583094899199813528799927694582679262045509303844073825177865458783706766251359625590954656425989975958509257455225733269681308820685571772229760354067814997843340328566562862327890513429438827007392198855150028885400267775166685272840542266312518238693443368375825540192447849565268704752280495633356674126366746688409468885697118239407715639562043307934828434714532732649675506498824389387943847196070220829087328085946715456372582844023568533691726195115506942891311869158690221010530770755848729761548660008062614040272376822932783226773402762897510215497381854305631906168120518039442085355627210479247183069248400513398940527399482164365940305366714268773518747461425306225375895036525635589543031137850018213193989417695496212957691584626552135987482509066991609534861710036935303105926991623216406432746132437273507533871286793259845429252766064248913910236164639310835501095558286604619718507602830133507984852832594398144655357895702680487094880160696175787327607480839127219443735632737872807069245399677875030948836679779448124182086837851716346186077150874799366543208230042807795212492255770068509020819862760185479878541611776456400018476584119868862523309614147467404563927268710944304294953841696373289320744941361951858741827105804093550216815392026654259950082315179778599031171642750013552299249691110460675735558937453601287334496667419784612996851383380345099857523186776421728219307645029308176534139636521290348132943557832478752109015008087135658357049091996134662978071326040925004201813354084144354923035978761421507013465668354554993352663208217198134282011623737870046652450495197179150620906418507608880821103061804498293343689176716557860938772404523384356789585143801600745722953986534398851970062385904496070204526585451374465318656383197681983467810670928150951196205825449227657318305379762885413732780605103314868313116823469157666851674302566029482032980937836374839128414353887647060617632211834252030922139131727458229416617801214529114467428615880831533666422968410649926746918831804259118785255018158207291675003660209041494787626642404421017456042778504113931097102437776024064315031872635534218091183184688425561604269947944507630498719422414620024291289909712935037049868121537699220142424585451096811370518898579091484984726320359645513323661279084073503322558710651977490480395304468835535517446440977833169563930111683841457308456354043370532177991141826965823713975719831948786661097714207149005941766714304265775607479431982514689062375715268436650634304650965512065439781712361944024225824456277252746695772988502388959119594401594233368356974291277971001457856648208630846387579336770136425553974473518425976262304985578422565169702214561518450651159756547470509863021249423076331765856104658555818506174666876742778531323318999403650726422739913906036778173260321703594566162896166822433373008738819188358900779688904244936562230938918323113352676216282421893749009006571266398240845731157163637262782057616693344050707820695054852501557226182781704199369184871891799320154893810195691346213482734765374287957549258336765063614073399853237488767555496563305851033752607633907145510439230970162122177864721330672666048102910074274726416331189396588434833001115376794144458739307412490704924869194150391016111962824732950921249200325263711518648176750898986430675359295700172949553695868372710870660538148218706070940609443682767013703700351448314858166653285227999312738033502397198678142598934568169431976257105055145184975995753793441775101836297382047566052031445932679435693684873684865009434080494116336217126097598948446884690719558290720519069733036215222433525689323170449767374155486479556910730355248236615303575732218155457615122103070238798509304188134511245640148149905848045809407020362354995592414645056747435432926195556440415455108352475185351893349879664971252885680152771389069447482978290186137938063750110259109898179641591517271734068960569288777678116660580146449777760462716237339751783845061357628767620448465044268732648772384497183476879351091170633939844281978935761731835714560897589187328164786338276365480474233840231468011592715553457052019550615727992013643152981588362553828547848169505514359563278137067144502602177610649531631308826745836725705283457959276852723682695026366064538309640752126562203121897194636039133632797190293214766224117716283061562652293800170335610769068518469080056351286049110528035337827824067526330375448279134021143579968360808557882495577283595361638364355357028815440778285536245706702986278251159473427995655967053713916866855757620543484925493476622527778022539343220514091544893740210212243780455371354673594324619781353903442039230138438474601025432824538328480592482201537558677259634613122923309937351996083169117493139872073327521758129856446746304475168394490401230860643617398133716615714310795101499727396011688838069769198275765051962424722040705696655042487160022230120800317593460335731172474855530989490879869048447724393816989465796674924455348950422905651358238970592587077713865842325876100633621571000479907083350603106232221161284998189560695009060323991661986876721822678002773595783146757564585940610521697278394009605637095670091609106401551720252381716819533805094448517115000616583198013759720728621044017203213683773354196007550868511853144401004104043419980473269095595919197304905218523357368139480402561354071484590112026880564521078515051106337633470295503411615040623703501293635871777374811619465251744799590903861343998988303208487982860619905154513907404381608309254040492392524600715710949950984639695985837973348755022986077238381163372270404314252300019757206598411338803317378079471972150418457686926200976191222956214267003706458901512016477554516239633794306944051208505962105137940695600472330332068882697338637384911995063293962074412293247303652773936383817436201861670103226272840240730010037764567144668154268043229342022367361466803949279204832123244331188318901694626753860626143608873434189638945111125361305707989593578179710507605912557787671111152216959455725405007469795128162991013732290318587838968923468143482581236842382251613560725977892759899923031356497673055373175186510038854861094191659855826882801686477023663019184179451221418483843833059111393203022528456018269583702507401083116698809915466516829636669142696711052781958972859440979135076645231602294519503607568439852448684426918469392967940499744666151882640994860876355956008284277325166752930620574448352212478382284931331282623723625657297501866484987272838147267696179042573866173500992946568018082708504256127141516666442479744302580803235139218247441830044637182728910013110520299617021999256476608211200107390841733607921604135082132982543745500477624262875992446879156722342138607676251994892178842540922982902712706438827866435423072606914155003548277762174800025056086482638108701946820742560244696396628391328270302918576143097909814986702507526118370768944967859560514217311398631196461871466167346227495528082178713349240734498133482988266312720467072980960208448265971071544276186744194227710663290406222513489447029826070471777721016860704704628934389738371394351671619343645095175313610332200222854022608678505353545278213636318251910659914354510375075162493997554494522514896818071267299774882106594748723134585803172552708851170296278163079944550685686484789022908129408427749993269644540915453183953898016590397283394221288273840528336017494055883737637566036869784556125695186057541110304493472135681164129474064932262007821022489740724210859686196160418407841746731361940118573253332340430320265458032515539521089381176912005121364235176308791652512741346169060053047304290573897284769281305316803560101868048747507053857174988340229560827007921802828883033778338193130159516805797529200814687961944513329095213805079069540833506919545030071906825203093061235845649795282650693878797938278371812040752793187358830938868827737918268153562043594407227141241561827944487992910579240403866008253726874495068932993077900744774200098999995811116198097303222063543953492284654462891949416482260866879510484328310732559635136160251810200098930820386871198140006863569968226394061474467134800429572077538240737404131649286559616261795650334248283049163452160678635482716752876106198399614078136165552644563566106698412196055733044640642721522062408057290070301245061119785986485060973904947644894650962995701062454967170550497088006863268874674602523454455564030226249998493725957053748913742366908974978896127214088744253772856018783768399086708164125740262019241947308973923951542343571945650147668814462755662073000582547860045419555403401555210411175275184229865980981712498189468009040686443946783142187890546948195654114221258984680691488290369922633838663178981061121728005682924516865261171629093298131275092335968466171190888350799648783151843839738910144064333542273737672977057607548890597568374584562366893988050923690800479855941765709834041979233290567213567466024608115507237047312095196721499600410994401637638148232804533172849636944444139365218949012004657134175100734850191470539694604363948597689634361189959773489952487108311740522259294453062929982524017865175700307729203189120280378797577909281424153163195386677725283534506851645696014544719326557522549406454459816907721431955932087929390239567661825966146232661521315190454486129127174960606667006436998038320691239545981393177260376452904489729507915275080816196514574310700334305141574834402661566440570423709900159574798718545716954065131011462786279856904504561582439401380101014891518760506226757995381064578843675375752252775349536138979295738615610070872748529539216417625342838774187098960879380604213085138903919591639008329677370450018703609411952745694698460958477595776474278239144206401512688563793171603040855724381384175321458768600947789541146420412447497596964833672899130151163042447171030228631290007789245782479509049057448143051354764432781282052107519138512281963606260489435894752103852985266005314386917497951786829236166498722587601066972431567692051596186487012570981972728901888579458089510772264016348753600515518066748716386018759770657923431303854405199257737362963303156768927317998697445482250763934000580508057404557619863720797632215321624888322827940267918872502380463940193814567220383119076066277850681856124942951400688023834372080531264936205726593971572141162413123286716088828638045913597454064881922658416545877362060654498751304126885875686884564462666040075053861657234644614126097523977340240638821980496576215768569657481470184249102926299870445664866506940015422461480083652491594627978919683484688214865387654060159489660513146899925411313557564486029808563446948152193970072280130855717249761973121017412837274965182704405792991341365964760901186638455349521872123978523341552528401170220183237674437577089608932630413634951410591056962059137971665058467505697163722414819554410864534223858985115337004616509198286054829002017111993783560465557945964477905405927685818606688843275003540193714138021465109221000605416521529383529279464423712261082174967109330147628743413293797201985872464320042438406978197273819172416899263687782469855376519932958161210222256116860505385352985767563404881562558963810814734789004983578944821296467774588635121008662776627928406177768430822720889846434170502186192328571895650848958377127647951937575834743160148461228517260312557566466833133332745425439363806405009600295127570387086388582254811367839415367500074358724844057873417688731356988839117748583775466963814362815805265963792794389222093157031017172514482801462841202525116484749519651585460223464429630691278617099319624589161226850409270197182376258134192231098917060885308205227325222523219618612408667198043395252715236104439718860554635631676384546585651569227927607089299321804641641918385599887729287686096616889922310630548848283077424235151421410628524919845524247007215748927889103805779366313839099422596973970800831249498690930495719452149217175709229576881378681848100186630599349406533372851308744197249618962453708650334966907406865932780280572703188087150484789590218876163766829641712474471039009945010091865957877142015243759887819669616034777670172125448590435645576062851980940344736177112821140158630710764234001938447810903742162576919416881117468914823682118383082150635701758370290061791196182719044659817946447550663946465670281774464925427700753448608107361599229538829913726571812283465482767818469942502147373588748970889967356072355638623976640154974365811734308016874304445719241345307354230389917170500897964686645088602645101299179535106908748225646028980382202673843764398811588833770077700456779178724833488847864536049844608300523092433272956572156030212359722038713595329375322585844555881041697182369444384835428300753897162626862067601950666808533882221326507692664384283487470781664010416031976575649355180650510938566376748275587834785814820204606946404009623124199757615834095674561776244180874858903071351972664215454848051165218244976070156195265768548165950829295849533245625007673907667823658809964680371051324983601358346968828143063156635884300546090899117219080344633899150009263835312462352025015910322032424004802919850728644011588370059939020097384171528016629965975930900767066693324411864735256529910860899851202644882458815828946140111774980828252671807128974887532741638192260210263187069161667532728253015672747096354860274711306975792153604945712439782547287822633145067616592579064526075157492716390527711974329547228431861712871211129270464734687542012630985018578038400711806426831348584100741711445341158508210007507686153526951860568979878962842535078737638573005023522288861901772901339510134184984611649407269524732404800997506404913502460400209441472804110477846986372378496600890656750134072730001734816638403900359307482825099091576759497885541233743356873952137559426538980278366353751173996688639107108215975608703963465460015508667402671887525200672936732884293813739092704803013182787775707951279357637176626923224375405078406113694876685057874543892553211802141632821569912993382808130873354016833010502260786123278804669155845821178406869366365427681582167430963829493768783495378314129961080079366730759133707435007837511182220884446414075477797341674881619321674554097644988524982549344017494916690362798545986917729088704886379177251025884418096978691506441266713017688157651169813499909602243969744746162028487429360209793567705530070632878259972348379453102508661199348977076545811165589432415224792986868816787366293693556684859051967601524704583038971562855442995959610218498051642248371214281330405471958207049677416921126469147952052248389932955385370185908808126696652828078429589789433245894825906243822306879806293601713569705007631128382423291674846483963927646465444060617258279183260195696521311139275586453604011830558718582036700177407500364634481461741322796004568229002912125475656875433338191668108130559479358896794917851771597792953913550365509800111107296544511178152360939698844995300857008436969546352599589082744111927327241665042567377953014773667574871835083059427823557639762677303033120595612636033529071155054568563057042145038158242125403207816346423542308387660261117265466386186925178617206830221539613837191998885036245604426510834994403156601557290206285027686297499081650878326996699033280879633838697910137046587417518902256752664513175676471627743357982236951027485256158454676153089116384927404947443109608730230225558005676641485834362804369643844607987249312880413533641328900336530128591664183608167303739393467363212851792806111794635896995602079201469331026822530670684843339833206414392552992710304724052461756817376712960520320193011986557137970957267503185284016268722231508571953594079812123539159857084339599657376873814539064184360568079997007371197778795339989821950180854227833795707565494906161074815507366197004056662417468634499717852070114952571557965334715824865796980597094242899675205682382609590298573638075954822673678719984937199315124796297579530171743508269656585719697643779165908606232464857528680407382530474733326206723397701758145097647309189364780861810993324974837224785588482239539266175742744835180688759886319529999684540637489505397052663234076033822529760599772331812245713727624397078450566483614282504785324995737243927698851745058834660919768910468641202660279524813988185339231757970358161722487878631029159596193114583080276020755965120732011799021717233978024949354839998466379425292151546297148189494081803013269473033923047812272484502169787447782692551900593300816227843602816674491931232561898900134739121385681258347352489605828236617905397563466063832747817049172320630656810437141192209171710169841611823285959731137124298041647034239061507583352215798179840447538180332007319790490720407282619467720761644972773708223732443353946648116773727919871311579284654212854058947022582660330851914322283463510152089302615792963362022639785228742434396243730088613593537613008245225583067903027485415256014756183175319159562786526708630099485259210112223189174645248710812438149336436425953586300108751598640012637843743387559729812295576271061305644399173793199224977697280514662377950798381003588143695817334813332152345194216565000487129936979772183254448279084476039029898029152774221456457700646758288379369385995648281262847271717592959110480579040137800416104555385057204162966843786078941012178773780098063754966376343108453193895379162153126838752216319457889824126376062752115324172995914128261871382480179454626146894512596846501744991956867205124237499071279351187211189521566902268125067273726125105911887353370317308931038796582494058994478708394155888667432234325851438425489528001210227592887276097802982342745230727663795754220002530071845273897160807289167110860991668409073798488173343123162113665132093616641447765683167690900881956870397309794508958715176481109227245708159221211191951927565849509517282435125563265675909602473039065112689970619389339343487225232579911562026667170353915581654358824235100646768665675232244095695522558549767590696828768193672253606120804592191386040597289199172020319525399363020478160342692998793440502108181306897126647091788397014130562864155147658749936440063652722715958507152939303501154448518662167239560956080287711879674587710514495660829696809144027883068263886447563401682738980210284345891720272139411659149044710067524276917456312956710800651439539106547242136656639216244100525061191030340299699928400953851483822273725871008217209443691242243843224956904513917171733606288750297595380786200254844141626609173202807914679033927646930869189976224669915792594049976782383585226742827021297863203599766363735833945847992689207245543924926690762169037733012133890290971658425772234966223148689149455310815479446874343885613769036462085937585501580992967042757941809561789593603615482093228648984612061017620781153518980492152976958262391637803640094102429714960895309867048538931443862698323843668786254365883051528797183921523649933157111748674295821124283859259983535983150977820754933117821807785730686130892050522054098539068909397451968522115596125767276837415574533449504941504795744649118586392748109682144645510420809099599440612599067949108518268321028333634278135624438905110201976613457093405383033587462935525141092277261394057587717990814241457548633503814352460444998973156045784206897927707252004126644535018443825417457917927610659112908945827317801951572686583334430076968456165831412874803323073050098314569534864673789757003043376910312778389898014552981027760897861502071362229720639543901965352746971663412276353665249063525636075231305499202195207748538048325337787013645019996775055194838279403874913261371603669325015197722011862252798624949004103789521936313580637959697998852072913987440940661964971148360091669238818789583555827746951822918682790868058701381883816627715875573319400006137329205558318463347770313245366545082590209515695097004521141755021034055199772559402220563802168953907337883931565589905738976331935637241382444131696287933621478863914794170784061886826757080665482717077720907759872412167644025171500830247443837971504417779715843874651779455731192549618488653673430651290174327384049674073778952974181402479804953104392678738715022209905414320365858291196118664002728066115544074014266791816407028783838823110079624901414766858446129682636422485546766186445968528761116763220550139797130903495604572323700933889981086209896144276753533391654459967111337521180225443443123494697524919889265849515089716170122183650520382155319904055081456916062607675452011474163611632995601536504621906415741117725518961254162265035224554093950954261970229074280319128477627590114419966218070395056204818155163885877738452753364199592783034898600508273886534633816389586659944707277780412322067343393627274201859175754921709225811270584585244612149688049683825621197733676489415470530524067410196166176274863928621603459529012675453640211239967539513019147266007787140815371933229384136166128919483091701013120706696655758327266564179541193331956791473213230562711804688008269297318214624354486933020292322176272740234102889718973215178222292355956745313288599844831053296004351699194606065573158979811025903300532312333351138660042781852306047519472638392316292627636801815928689091646630098884647488268340325277964719157598619574386209744372129746845330492027800914191289535745268729996475981334013923504214655393796116421625744750612335601690860320624309918806686120307121358978640037630037972187220635676308106394971499111447695046999258524009643460870299505434150321911609347746665367819320660230929972041313627250803659550540344767744056950712636393008988447069372473818479489618778123203064424990139982353522834879776648880385897689818849270281888718959502881886915798466879414357740217512992945080819808457755718811812662143961097543121284742074396429473496622399270436971592667871793772726907409760490969343051303260789950679718586834733891859137336404242088694136478903780050224321485514333203310414666301991841199911277513573165223191712084958908410230813765880879074244708280931693844332945965204663584699433566557457727502398313106038721282197840871617901237122764360602406764300244390137564814004893569764629381887932255844194422981251488086951563178079578798498813918402951455622336823350454090753269437679747927831620747404840223483452307193028772079600015800281297632438981099303081896585595962310962668937265244789276395695763035882807677649413805371284411666956066353255231642230581295795809883948995161232693788265416138315542774518014447561012296052765231976719165536552665965668826250886703125433560336754210765869018524993317036730906485838882175535318197823365765450719015868528729333214796652594388454386705033506762937394320654314789577238543965224447675706404121699820046161540921219441766058472693292944417156704630508532528588787567176507309289713021407896247355492581897086463040851117904238607923652059153988970410590030499442596439864825697557290018002032884865469980014036490405856674307661353600996641471653411225321641154658384141192660026647313378857687675835966559258074237624300711536434763418885419864763093234541078423178319110693930578721651801135918555541085304304972821172817767792110008889265238651431138185649666765864370029108241452732457264450284003022580961025091618548534395914541110571092206591689418794176609977927444535165803010274067621155248490457146820478446215694695644528643737098511834882854346528785197765990530853128035128378002974432605227216952305485393126849584614432816246770652589302212437399415121474592608366923338282203389235989571637830045380697489983891592016822061837120796042624653510853300862909702128854744171900108992658268120273341525660099749745650502287956535230078803564279432124233247317560867168285758869219226013987570050356043149399745525584724605817489846954012498267256692618937639162720926274870783639375177455276263491200399151311277760162928673766692717997680993249121865967348208416041280518008294725625460106217393722996074368764752868148651879794014856721521264566907809609917958565866197887147101550852837589225783818884863319934311633395343661869453658776074070178694301886044226645550678259963644324773572814473814257824607589963946238145974104281763929280413329377097271329570166450571055773213004081723433833517024368967772161386281567096903734632732736054924336377751976774402431145732298031489503637435256784137039541535272096117935697677579072961512283857973343318174494374573819899418061304294254454414426837595470024901857955289758332248880103711939716479451734509594693374601540410010646868910836416459825183393684096607478464639243124768331219767273580707354305346301374189021979662861750349338033524494153267039197304784059404754636323960545568127864732285759489125660943831549130774998331348958067164920407734492327760582696014821217020466990879051399944759818895842852490954239458162538127852603631069628915698286735999101380837018671380460843985022873159919386826445492480966410223169882905447759060029287933526178988248218352603296712579366606449844163811471185821027081955865789845309980353750271886741629728533042866619563707810312377996107909898432884190678912215772230172604720054286220264245186974552553881343159806282402308349113406509968453777089236565335778470376042268450399492030542486550496096311681418732102033313807491555837487251844685858495621659533268556704456517292482407577129641302917376240605093507277140447860103425218899054765507003627267812496905886364268871310450004122765586194389092938687069883916868912529955748338632819789091735824456653463094045378344950161309228654813071750156725094331732732140739425627600867958476071039823238571779669470286876210119209450162201502455467491268209919442900718362556800936718168212188556711870857376703814603623369523438094179408919758261290591361004398292387578559712356882824533292410355755561099467433408003952313637427427939202173519768369449634482480016812880277794049316371087783551190307340397950556843088282183404702526243671961926723083559911532845064442958391877284399475846149961514077556476966440066907639882519517150933660422796207090955890421590693451020110097452785888423951011651994334846250767549227209069760736083314607483703857234728866256001462163065991446332815547012079110869251595493949688353133681046865458033928834997408537278951365897598830075511020746148589742586936034305485948974445723868014780932113889290199810166923682385762780044439540364313042733128156617862155505747192418864606140378777291127223324104765293584781097118971189613899093004815468003778485097174410986450312283160252549903721664869261869006368740586801512791784837919130553856786597175701540973242136706688962618894163305884405779632000580093931868249610380378281800580168581515595373582302040499255863776331490275649685628827830443093795642017406037663640984538092130593018207918298379497283135949671880606792687215269320497190764709550774536342713408764806377083757990002040617678693494020813993823049088674077178568716523920150779086431542518457935354861382898564175039644076987145663403281341286636557975674259455798193272596033342865601204456746196941017771049927272592842236040607121792311314409880604037669925157498155891545839160656953896098085243469641507104854139420529326126877239674601391758940543494951965293643825611334964154132865288579769661177217120010109094793955377006943628725974578862902602015437970344677016059228907713635827516565843778230031162449121584185766979056184747677244038497487313087460102138489507526787347524447771533947688572454936470418798496236817218776265871019716973316487077294992987967486207214564041343376294656624377446732210283236373112516907021688501255005652827235989403129652743078733077917533611563707890479562539076434200556272721379228746425569890821156598726157187972734706545640534836660748745020811003515255692911670645816691959117248417094260997749026107986924259564480743906060220268088557221137956685646522767974459213490354277013132003586443684285156024260623470195987004185146496307902878539037114167659613531772025706191819255071215470623381339336447345934990137856526476155924955953619501097020555379126851779155016879722095532079402464962448160806035105978169213573967124373921157443278353586374078071601261023025823205608568378824511922758061885595465386815775056980278217787069920192997933174146463403181309179269494380271764087537534642191532947802380745806634560724750410396362974693239144032631546009166164386046609663806035972255983956758291541731247190270385580412025973742745893705300320297349899698062112324254679959582117541951498135790124787006557732785483554416846419750684031947713468605432935596162590676200706969675565263142479862192663037923192234129683323210400781323263333223995284133527990968384441039481147055865695243100174446026012746157886226583771746188665183196280420124961646942290399374426938956569462005430828314628345727730995571813230355594540185475442702826831242198633592731249214655342053123119133448350237899629689973833680466612534349127867990453077224855861178041055333504017357832196121728592954973722197435355815864956073992017145002935328215381479867610231584748347929988625412362265286680725873652873332435113289273063438646511548317702616633507280805816995591255923814152785788737083348201115796404621719523223531405859463413040369909577548881232670096826205201270888579998178389540957458475795107599473557845543739336121262006138142235663979223046654195671965270231009915718075026913010094256769397615942072008201616899239663008881390898748160825584790750633116170245114409721898832284237591220086641145655981762819293826940202395334430037143364529963622568853366604655585022139967693791469230693027457825176157703927144598819184834293237006598713115344781562460067845118255754371561022436787854038054032312921395357087267491391207515882206431014375667480945615523376049531225648640216522448812435871104109083353864128007998557799698864657366951673921565270368066848516543151936709364150750991376130906674748495098043580281591714317527684009067274386130319770386117187090234348312231618227447302841852658109133957570821461025923007765911479484015741638817119223774375114545558964128065596123784217374946921711371591739250484462997281676461220562521698935890326140541311680212951087980339417858374018736717021507459305634096141002420706841047355207056131924483894962569961952693465727793486650248001809649757391724686672577700212254926359473114867155665122948329573635671955656167451309450646595918680634224944545573803702088591260088974361367386138983654703298129734017400414827388497194164691389603920924053649941034414887848833469500644063034439507387625518642174168775303086379575286604283934807727817672420022714496637165377914402486897581532601937304399879213932493299880544434785918951627348362743179503177839685502715559599033031175498745216878090519975291005397132232541111666963027802719703835488417094999807385482386803778242839170367162883700170561700975574334451951440568210854485751729529923060314393110545018907447311174591371698490416974091578846732937974603503216605153020219698131879601303435782250021743252005730180848493644702765820096363611333646355928193868527871154087117104050654224970136913840332866337197137613502837672798657246040533542336207374529524749948126867368440738374182008199509315211989617309446410052441834833133980890005227198965777420058236259158691821877129441737070656972956964933858536680712890488303194782454719071310007447565608532835596573717180943747589934764417458583554617408885460402383556559369089101709214737497850306824341325771691134657408042166795854163927844044539868944951812388076270506283776060199250036834956409549952420647087677324706675150609058642151143244412632975004476083956003901890253254432325966648666041622128243431551250657614754946202820973809099370527965026126974943140204798052627252025848140476313685260758435684831600136698525957828597192313119693856047030020480339196092012055727916824250604332994958270601669759267431104966005300762793343305166203545498468340881551645602296545710412808610602798603660818558750687391793689549344779959918853056178407058380438723927551577831897982221058978308742874941312648819504489269107852589497705197876175038585080758846961067431255107465518931665267527637992547969802865967076541833978139731263478695198095636613299933964810780346889101221333731762963122130981012242669125893683670470669775706000229034163624848875953840614143603057371040543329995300149708814232399679785160717256657664557940933753834993741658214477113433665072786018576571375161827933406797619024690189382858731061650038654488724482713098642916030613972172760292536284264743273962263758600497971488736734118093895918353590091804346624506687148425220504361431137879609287051409403080545886481177745484243249532303699129636332455672056970450635807405054321858301218752935334705676165359821490248098622279553136036785083972625968520415506092143250325224097247081411007973572333649479487911768125452861273857891441229014372790112167094382563883898798487379247503814916112748915817355028845425215212546139747080188746388288915425237244325172119663718494993955976593892119799469302113606329740469344839345469408368551981588374998377454614814694725439766195879374212912150556152697143986859957304868437806069667038922037480419371911956358292262768392345767577925613927090337438071736654545637849822281789355907577311047521965143731321438984465442252908370452561987576823743264325589763680455674822907793860039775472812331347764760728335881864477202182584949308142332646219121310545998769906158576423905647306864347027690470014605688708334320966767285265333240572205146264404366046786786722386928363379267572958924407738686198070692994511471039766981723638744441495147342274701178263004672717071233745227834174409356475495202312951958350125736009240303495536504715125247470864893212267036347090058104360638495734548864639005904722613876095111391487867450906981632657979655771536509349898137027208140873477677638763790530988998849031265697425457787730277771020945396054360125315028021287031232876995623461700444535462712192386575631662266159379719771984909663687328464706192233648292612962931593258677764406683408673002202749550795583129600661421050286410435081769481348996268848118475894280360490291463538573056260534216180734516172022070697153042197980341166258424112132384995880022489844618786882495631035720863828701043399083340633553855786266678988979159690486005224269570018522349599095164211216087907496238037069199530283784190060365960184662046319135809719336070927334441610695667207844470070181030692839117189334514773015250414985461954467536086248671039750404320750717712680595278220929982991935841857541168435425429465765342441552015982430653074780480352181669769221051196814421132023437511109544885757172169937857586697106277927446836699570479026908575031930424115721342688721368197381708132727708106406358183538840577914264614962742685093608597408945415915882260120506787811179412465643764254826613062508939255657401409588006319294208428163546884757247695869089623703844263159874106123211645191831462747201976633716633792652511332659946030253372892483929918002562865674766497031818983546284058128327904766986178101956262669405449613029399458551728962060977291262039477190504471635193891877032082027849275041332571786916806995673808327440390671722231344173441712488722813180921826255010056254605625488770952642620896374165610947476087907201250364928934233469366110780328596243321725601981748358229824154849377389897414228578889116783068141705824255564849011030015176077179641400277691310285859409868837052791862591911429760421675495385319179923774943999137424388361762555392143280519365318851410156254032458126815642401904465347198193019373441191716752612389536651322577845675133198880913426527447235402541059867530238304466280417667042770580058077497354668015306627976276410021612562919818409862096694576919953847657427233553273848407211607661312074838718864139710569038052698275262972642962926106417292663259304817178541513616697298510203852057451357989516070479202832567264249644865507999954534521407230120318429670595586423415821164310883276304000884462854016763106663799238310282408808096104510177388051372451479231537050471326037193359518592302789281553450840691805870687272896725140601047625772013818586786465286141205059712807413445596579034037098250677377394289008256530517745330546844250959621495689257206853997152128557219019146876460410192853668385233095828251829597671441791981570831706082922438384721423347870148081348657518103221653120525662239355416852327609290032297690232921596595608077324157131053116307159761166157067165524970281431392382911533842829282833224218140227763846508533296094792039325807833996620744347165161755374128224258508884831244552497819883804581077040190692434151782015910762298546766993763526964800619798698726964090114820846091227264388542488898523175425969817440138061977352738010437834499036858755418926787572986351715666770219526650251450430526216968030185301769575933418726193011620043512263336422823060763743073398703990079291341107920546809219399641160722716706074719094658310874173461916306326462131032603318576029897924244980951100893977818944957300955099642967318566839406809300254371711236445537160274731705263103530454682011619642296814064441381297449348929360250357388107909010736721684338850311702679031076937347623985650443802515572459192230632412006642027008362946277782738770387710730621481363310472399475065514363821837831439094194588399679425523374024698270349358035529537650630149883079806864141797886187104171224169105256857323849216395013415417877233669731788335137551294170333135570426735866797276623117942142789904110041930054329262788268440507449264718960751311946684972239220006813127875154712756663305287277562659069657056387742779537581849585779260336811890741543585078745568023491652429883794869891324912665048307544375467966437994889961595011497339067563514507958453732866834639830081081333134507658202225988744825490043058139451422734695633446209647440554642550795581707589289700502214232077201510246407385677723098526767976923786492472185995638286216841372062477356855595979823588888306350470023434991929269757275625279195966586508581639853744509687567619966313393398123996517526448403925764042533403366015780839976543848699473623304134529445053280899809553294728366659526289104116225878278045392463107154555805424741127327245382793637479945079281743037345577510738257430053656220452311297105463850291807468083280131209232012089914381320857839792272616120341686488782734337547225762395224118690570397699283567789837894547389675166413496206379852759948191244131712780195405383620162537446809234138242569277207971345622096995395160146528918824874650021880178619195988651118040759864905432619694518046206568753966369452319080732477030540030198053874071480708702263400328388204876978689264551892596774599277478770610827395459905289395057469478329575895970083396501747959416579145760885800811821002588359200617159534026543512931193264620061457786974137700805750028526413877536537600942256875831970563887198307566265195878329429356643165446462662294924749253662838479930547272407795454327622548330340735240423516342570711572168156974820701951458248348177401609409991160084384283596839337162684376180915315459389309177479087185867105544846169361150565368196579236380842466300535737123786809858070266780695225689279437129248247973438127552244942032901666016084755304682258773211459991873353409538129025211691204312008799554486831554955555787423164561414074417208670321236146821806960048164753910193358992385732305623733706668636827765241243766227008463203268681677955519139051897374399141551233789969292466257613045671966722165253756615337199546165251334369146866226877901467864477590877646686870038363278768861122483739022161492251579980868301993738490963003711040197571036587655783952617864718615700575322181567527003678408357004422282265221600537641785825059113096143997409623643618143906359180876416948836767707245393557500911276803331553791147604096080615616196226037649159386170775040437788282355843106427391053192543429600717077208906998529968545131252619377933694529371288541399239484567571308871922890781335026676263082341038223840073604283649196825962518138056295957710355061553007838380027819149710973558680761202104126985987097774523424257057570580528634028301776667837005598199325212049660522858978452105611658808598703415127851042814339901466094571326563277234781889995038683946888053296460026350601697864505295032882430777983624393440780604034010312520389415595340642374042525454265200136854003943439786844774715651449226758621099037578826737626104008632008842449853831503600398045764211391874071210956564360306208729861512321942639610354046133308356439962559774865712110955926318807739974152657484145836345570549718910810671143327042073992508490948074573446748065438059266219502753750706644997533952929859114410996256989590215800894636395609906733941431372101734467767849024128714083300691197014273433916743043692495143889370172491917513723396821562867304212854452372295558447833820696644021529252943905372077717297405802169737622819904137056846748867069955682641545072272866609247698242128040151234203767418892879147422548720264510417496384942573615360699154119482529707559149826218178412688473885441391653374332922033381035660689604910990129548720707366653673163124162655392808983790641363046302898990381114560779015044887197074275612259491179008531446534031171091822835959603761371959016012356867005570687692065271940288653591693409412049147841760311310258768526025497526471121104092520920397200376911185597211770589892161438987783274307035348648660369958122342336878131294246573509816991427933621121047907923581930230914676734362596162734825071110858632991167248515517791311790186569785412456932963289742539809210268562721488588200997543196131885276046637889466009019080160042124183456249403956368143567480021662939068772096315945834517856145928463779142680272815003467256475835650858574888615158189962319127428246550675339372854434175506872465289810916290405859460090961241332699363393187147183927109165111388720009705547726253412621098034114120067621451226974003148701769135992811355194500179418216011345009573554960251025209417872578468926923576687453379541171620324630745009147373788986223746778174157269475179753835888604358806361705151579866214100218678696358371069043103758540486868465408933475962420438223215678576411929196160614870233439848088653944442476422102226019481727193640555164041456552227560364297762630474926142284128364510313984208455616879386120186255922658789953968212588916107368612122864212351392043305432289810502331394814514905380512384559967386643779966355000785580450539392097079520725703489045429313076998285817556699939513918660684030815351546238209772145563081699805543981922850332082387191742812226724295856049485435467882905549834516289904649164709970656632891561808178209962086646057235951740299082465528822775573016227322497773941337303729168695601302421393788377763828758661547086708813182872865993557432209519007957815688327275446427271545589348270761535950387469271173666395730820713959364227431464925242173545830860534690022590837424806255778994490202299033219333970499859493180076308925394751857823180694516107225462965751095802943828036037900768716571364035917073075099737044903545078012218483075458325542603553327353033266413484220172737093729166347794477823370340271865970176790649163310239955074556565309412762971340663479795899097494940586983365310656621756530850230161948709314369088901641055499148547463264117797594406988295677939670304867608839896511859739544560455121587526238092793901144500790092300455598512517493895736044172156494914230848537609995175588439110383568016513340773130183040933513143416909428264387984678641389298295094394058627248816445019469585598718015326524101475575398624135539816380562994933608185614883009398925415420879168553188671302897286441554377093818381919672245162619496923122530307964937477473592255421310824907039734697261128275473211163667324857109302055496440875268053045273081613555413792303374458792079944702345048976684848020324815547499923454159875856730250687372571871516796590274059205763199530819751973629475097418790820024065919069406262259086643690391131849555454460442063966823327170002518455177740479996958834611738558597964713353457514792740285316146494118756255276633230565105949620622521294694683856393112834828077735217970355772211733992328995074702385423853863502279458740393535538625525229282486870722683250922919254604170802635374361466044765648020186392492361560403370582345686646229692323612016155922380116306547989702224256004643946543998304720611522473465817140886965127645218769964134279021829603985260950649085558938276592382014421983625349165085339218380512954940230853797020665586823839305977075825415144437211387666303490279344600256904061808410067791765212141345869171438360594690780277508956951238678996403379180934568286342114184661581372983978997304837088533402501555505560600329700417062203634346976877006303190000671949993053406204868658464794377713276457776732094811472702160064820290443568446476384648386608144388273511276499150943889380236761160742747731460563590241120099313722422987778806997465380396611065929574413104740115524357287295184889803988409852296428941706635039077940833632075739749491837349427180923523569777721149957800865393257550292510433638496049611000394093358613239254898366405314659517274242633753105002296464801924730620549030715497077110924012878926506057395607919011729510210743616511751491192968829779534305657314619492330813457611513741492052499639322135267895528153827308206694989003730859311620058799575429486785308263098012846795770684703702082949732365441647313157759035615628760747260165662377905165018805862819527845205034158160655062549301511284276642211621578106995245438832733300939463485147339343929226907313333124261469838350024010747167843391784164136759948013982675739599682373414151496603695304016930696485731143766526623620255597988652712591220379179190866918580375313166350254230984924634084908957249427032583027350253804581160294992033748436145410377222244806596569486197360773492462058531528685703617339456599199178375211702515444996864226778736973376834806579054744373661724497782423540824710201693836587849171429654475496557314065541309715777894216624096048798949614145693397566491895965238688608091739567930944121168822943963107804250779799404444988647929945170847259878762320511046529951818844176527335146633126766309946657509273247092169019068208904386507476459737277819740126326855814009779957165074129539196665715986642398627009853712738118723407659327222465322034485912632259814285269648435340144155695682078434941974489681259284689255121623982574160053818714433670289714973678444461370291823046903265359169386100400567171344771264171573159196429895033312033781013325007731196526916167321708376530379988573423825695590317957859043193579241561758778355634014763259524974513083607708761465985244959856038778306777193864531380887281200577663941066168259805933396113260491007787805632810892247955655410497672584503445685929693175885950984301982314749939596063830187445032819488761126787601177361375125371019330581369004349180821907742561671669116476735741083981334251974000028357907763333889933675160408543125937905304087591429705790814761131873485844278167951532070325981277203798942683862076086407017979499491545621787218016618526710721326130342033286838079802914253708013934393214958018647805095031780773177709484025721707329084495894595759470298070972376344378185659725008973306481129443210633595037236455799440540623692076212008265918790426268025191036488061189700198285453106065175368236110049418574522346800342491502009883728298608296224353765682977524267267114194326625152889467105966891794564558606892020598527314291610020207508801023424273915133199723833596226706410473287323208292259666747293233606016264679862169717138879402865346449399068881107308352037721072733367286875429123004584291920938932357503127437347674950049770642434297877213392011728767006498853601474215948940021045238540855319135084946211961754514342759519681525577934177421289808758432978010522785243827852186856937264721368332887365853110712377252386723010879266544503214485336832601323201787781744224391347434786935846281022708119415588161969643007920636076233840574329705308043979662146940892013881091471183674529221472024861463330843606335387140873763525941376269865395306368130559460676360028385780882676726709117396658088840212796488554524412043048304555074914252710904142547678518504959682460690550797486500965843340010915902092669694370190304524085026104627687285857309314067766617075988955486724992760080948842863501704872955601793073283426752022907507666951540871574689325904814993825489873149043752721341897025799032965356063450800203899727834751191742022541680822366984465846277339029359837776936966953111078537455497152967792479630507705125781287587470195114057682199530584710690714594018543703230396203861195293919644496755916492440689032825608634792466283426732194479955910271409517365693121151620188771487851089178958177123499412151956459791832349342400108344246865750001959727567678120998209908075060143789948064192710373724494272893814191546837809796775569531393324480107767206631499055110926507795456344083821004250875951653668468888655743776317274497725817071044342575694770829151414383158854544869168300048855574188332873863630143616797728199082579298390374591960475064785765392551884870730290018810471055655459771461856141807990503704780123156263512707465959711074509735442162247913368472489552812733169721308644132513386531667183743810753008663329989509514387626381185784724010040925992621757662398550295244902994290521767322696780949914819450816879311162991434926935438417216858271104818882689488514610172114635483543000474873158860103586797427569102599825727470498813266310702534801737606165225107017928573767962741205773341499449938802074046805772416588663605140790089577783590168778063130505322850664668781611424141468407803300190157776193555615766953767157560256065717900587873012791212115937591893825247538703945951297121611494578361418586772819609506677460669127721145098768218198977995888562831555164375520116500633432684259866746187713235714893785721979848657211538564748207544725100775032448164159732361662018836954023463536238425271936421864441066403138748501474984157020712653627007320908611751526677514529680499366693758727466180176931042628131680573516437556954798335686467120231505942690453700476006608508060599265444374101887603576838361541064322610638769926294659380429165244339538881572656149543071532026267234376498729348781174977567813135482933693509702496258604200843217703667273147671872753033502562957969782470291389901318605832375628706722233369639852757465847865239435512750512594283417677571417001689999516580135159274706595886488411465466533640063164593859881674498148247088638797199327909921173404906549905171145911669066009600190982774152887548860232896066750596083727947591960909870139124292910069546114461734764637847012943917708963600420801867575054622435031964007607709884075253034041382647488478280587951493191646059163452722168108267707863783833492355266383509059015233807842283628043107600947221392509938253186847858801358675759895033982211958716418554664472502385861236374199519883248810324492162411183269590729679723136034994518824017060211550400518447528785601790424627535035645199444573940261165273052064553660931472955083762131297252859339577609297634138702338054590691939423860717454441045532857481912860386801460493834525176638588224770788960643610641058739596387690479212244905709174869919754438030393199024370100517409086108023594652339803225311089290445896761282187696962525846849812616463225775292635578333638253093823342340598674721617369608162815226367912260157951324753786655477880830584606374266701110858957144023295438909515640635957903193955572174971861484932993969516840154370445023381033618359546803913911548830396781311724732971776755338717490764297216098201471469437193573973020472876048391160522072821283871384899494316617683940295577183098120277860675631053970125669078098495965253573389216014022568523522563356325306149753332457994254132962818640789628998172016016200542825344690044593731810267088477656125691919624478728335498841384588613859774653615696340770046364403625848721350082933298366559419852669527749821786060627071227336700621997876458105356964454283082794173230756138143829843623374699390342918103020726298491092616889431601178216989362657175343808435359223403479764292120146207144265657667816378107465705181672801193942819413433615623941860589105008678132335563328260327094544902828050393283038980594800416803628494951213938973231270843541041362176430228897113931248378902856389098767875437628503937528595516466683534064187837454130916722155632188860048640118778281816963892852968142076960867140291783872161347587460216314831544867492881550335960540522741038862295853494184286306171948880301598581469499931681386030101717710424465236179134338044784059815729261683438337921114771874757042989807158888987525486504387134209056373410588333001074487855892517871523367509641172770230603299698379991849039199124161963220956180439636860790910331223845021847809765320941442799377614925194242892589177887565376634503263686344841535675651584182130435319189842290391065304610757183163277678066141630251235296057412963756557837218448764577635961427825985234507108180092709622327193482679192268547745645402214012532093655172040692656335481849425831137131108038783813157219400133762736296804400055352543984108183077291198283489944973850816660810019503030449802457239893534810942338904180417097846517792580773906110533495349075653740277003469251635472528565842027191190375920998152393977461110593465130655326455639900130222148617353776675786627170210889818588093963113663859696337692165937894791415578233087165258176792579455386218104408730259135732599636733575890680357316945873528348929706637134669711178653659189521859197353504378457855508679047242748889238759966861116316568749771430376128163572141589213461847483226455964135481095497891291900861543308956608803096723978050052447875261951080730696531683066188075278075140064691050472971443841223068174864708243322365231754515256629776876215700902621776600881943749606006937628097366204690256215387026302179387248357786208723647922686914985795965782970281554077755761398141078170056238708461537375408685481806081188596604265228200149888780393760532053962528446474290498063456259388151553309038026600433154834810452442227308874659785025403900321056067942443111902276720505468779548619296304506304937751856144205933150230358635394999982744572712517664556035774662764144362499287724241187502066152196239314718473228365165561756661618015109362010272165817213735821393271329014744060683450751283485808401146159658674453239858586091856185146929386270859937540309655887230891988040445248166787099824702582878813703072102795878841264453440764443766867915718781877721111648464316880874675708028284666248128676006865016073511473472042932860444141463634233073864918957993613134534014714091847930602757836872248963839053498350286240386880724443226567804694255046077824132734477263132890182388760530271326516565278793194430131467322643571544486345134283164622558130486750170512761779141724577821759746375639063465404132118478233737814098230706842639672915826966932656533608078943628680433586852769763519061097007466004977019279860958658952230374797521654633414734069267516105544140599308381722987718175014052207057247251577602427818959822045543686656341933456838271534531170858317819629642757527623511017271953875274422534920396455935537566313108078838746674261649802024360235119255469915916205983165088826032601835888991101858948697173372613222919297670516572536834271466212816847770767206421406210783144567685394317542436659493958827894959856186401992018405158337756045281047648226195775043851330510131286097916920374974428463012694548245658330313054750319649799496152694151510532653979743824360795610084378364529568321425660058353500882459092764889200567004709434144602637760803935350730320918281684758100957832798780797763106158268693814008822356117784937878571718307148092812462702671214967369467739453259629382938547290392304076412750890646099376258057732405438645188302434965626286567361303365521036697623409417557192484947140036478141911597805861106533658341642908348587324772294762768792234497297041324049171851124949181318624235149597642787818761012051316578737668814033023801865002336386353771781573922870859036406281473376447325983546888440364380887269038456202737620365392027225700735841240041387703842168951336400014925393514840859169762194342688188562966548826102161332488540530690136346327983164613823572739174704549240995077651757629449928463731382514239265403141045490666472214494963532979071482516738772163328926605654382376011259752390050722371948513022153111119784938746170502191503104105205880755068661247305425364235318772199984791836638038252695668972630548579080311335515932024960299425132765334473447506484609173759777816755068607561672016926093339545374082280997755206891159668910031485878094286880247499017213585038773764155673262842426026844234866897899551441140051284749865779014195678865800817027328966955042238294067238990344505539106887431852190188059029925681866677718178280193512098233495214403371710429708815976791237207540649893888522806477649756260611370820471233693618578964167195550813845237380274184125596324310609789622847370273685313490559951260082436955359956208640330961019359241692368957133346892569333882777223433033589104659953757002685690103587790822990322128706391269041611947092914708136344754338495759697651878766879933460805297299122282688919481561256192106975856916855417047175385084385032183525220276165979112478946870933736215643621569871283870918863052424188278661653866564521132082258775458355541425451570856071230445620568870267019913665480573462059938712833189674940104929061965562295018721945195219398659529319812833031617957102871950297033784039586744929365557892357195441050060095070841349155138518970822065028217573914666873137739611432833469987638382698859801301625583726685101515620846624728435044633772547749400794770570089994763827716763818396036112604785361541914586053188704573221140159710548791759685841578343595779860411415002937363018452676484180080567174027713740921054462309724078178588479923335953778309100107355633005325067227057483929589812432987692810584375106164934372955502651144717222806494434388486656216317441256575161806464244251833610009783585802224950604965562317608150689486753523872060854923148334224697681501099641388306663919325192412707390611655085129552805597791981948212913438815411103246008590959553949803981608183251667354083336513081301634531056142985525669859175632389759519199755950454146442264993674709240132587126834230307255178151984126327050088924647184662692110931866840891929651215261064973921400556272799557786795344580539477584842621963858250151691224399077034560067821246003106894291017431562079363274776583920170557292356502478248915211450339658816194010967818820880862848879281630914194964392208962005453549242564845394576007136589396816472020893214044451065383394078367024154408691782198905272904819848040650116191682530917192041476758065481423614002184383132431388202320909135029212017863242570259876675281614228726126707086724992848564071086997226915893574018740941696620805307008504840324089116267492901210050971045382724947285021145201641866539284382863366224588065718071284530654932560475884817229654091292394002949216354373065647691493563976971785163148220947760989497350445147376912838590522143328663278924709818971152534941723175135897106185779718491541697669039384879578772122975457610965543582162266665130574969700874959839703616048548868458949937449887072454244980509203336400986680769524630712674861499841773016897936513330662169832210830053427299558322450214149676693826687300303735409500013483718253152059789755130690294748121806718685310737070760684657969014767975474791324940293589937871791284889407912830815138079416232029422236424248580918027604375095115735022405625002882743298612127984380625888897217172757971976359582865210612441558041728314492220550137246628234140116374249325130189923921703214493947520285613920285409353571802299020085270340855974563443600436163547538862277986595794860632120884561951224978841551782940241398932305590109113940086334419333974848056975695605464684301954121725503845132349869429384603155718695468654116500704034253540648757413865400298786559661899360084470949898362013096385108937044809406859786148614138903808907435694563023972408425007497733684405936417674178310452939521761860805360348913716993707612587755010965306313229332469873519576054333498641277454726743110256068215007907270801171640202336922447373045773739955401832843573044828651281160472373761251035560061311046601993135301497209238548275867394483839111771326541977998253313730307183972710551925852120812617558486127455612105195473682883226013510866016494560215924269442219176431943344170378008396990175550653977692168897944103391717926331632584296261325711316443989448342343642536914091609448351729902201112559880530009895003569149772765660672708907275360299875270623156805096273450681554720367491643600083482197393432260798825464998593197323324062976542186728010486762781236289273211377524727500375135100653223241220442723326844160306346915876888359554507978029818633733999927697929605587051114794384720966048951318252330451916358451294925785713312523132258282926536930979188226778026323695836500278750658929529996588493271835105649957515255920591875108238975119692186370159291841688371569371393902298460252272564437122901771307087686976923443280037603846976675415932314966493756393693750457737316806752890027919876145848702819856330347610206935736016658337130058982590260127684238178008920460456996782689832026814739673725312893020036954835153012660237725156822988467381951543383256303962578177080254050112780073315107208217910587245636122226633043678477381306307362198282442890720607373129086008971402336922799813300110460823476675400165615905983909657405964035642828945125517551067215122744644487212378064183499909541113579900923457818047916599603411446128452344242436031176782817472310024083065790142313106434507406542893222573704427442426491510626433234900557722569671165684425727206172765460879329460266151517399667743900450552617408462264158065136717850037247222585478803728769080290039333760037363131101899304132402339570754188820127618739399054559865217671677055971846217002886971451053475332328327407462009359766900478816214819834770400023971304194551309845430772517453191033184713295817582057210459274811625925907090699083306375959238619842704006659703208784658889588663224404289543773754072625895106570962610968189790085150798795782230539844071672809837425196144828549592722362188506133613984981564305650706534589255476755632968682528710992033656048891667677685644980396862037609903004187832572450026366492107791344904465500528143561626084707950008217726819887703310778825114468620843098464456444010144571793025840348920924036343186782458869639233866975115168114117330366999672659106549507743903703721516308356405186158676311756390006728210627707202759121492790950368520236917891008975768706398991344104096982335473137170884672419080926851773305517232366558886569459961269571887163806804176430125803471378047672564529211495981220550689204180326484088288994053709794327079939489529959527167765948454599734080387359714486547144091651272500004764732469363712085447337093236712200417924942833026943802999603476042053294563005637502604112127160928386737226308719209464932549908980769990810366453310452673482735281375584699358013614015015087492316594660548066135345138343576928709185396571740651799819972520202904882474295718446760938153080344235992407528405647088630268291880180610842638539518059771374219242862927670285558308393793389806524158472289715333810087589277299711249650905931179461742632358288821574512739649147256141623431068326720767829639872468342124242777758908403222207189937995360946936115165377253688361390569822508749785932794166947252672269608948120663434794720346983309798646927365527771907534351348218298032313762194793187032350455470206756792373876021426484462207283033511726966055304223562416724125531523122429725487988916099840900788772634134276751220056906890527448799470628208557715987458434022921068197318588016920154458114852103143280246443555148274786921044835201829317526648005216224072707197471367523833669726067103900144993946754106693771412708621828834100794495058486737969254409455638069359096048271344954834413836983058476236994245343388795929367508037016354216000637207848339953096084438435419041816848272119558007451849605657388552609415748716174441785152718029380674248538131721318897969015864180327166073083011668142201804816221334712396427893135333203783658732951716264857809954135868660560442225941088803697481694342655210944471344957337557398376901586577192025382332787015352990877176707844322663524298861398437216767533749835656439015134674468110777317992794190154462303863558713303484115883266122951922108157594332102710111342218503810932901604472592937389781153823336567900782356057553680212449230530687256453592160431076937912776053410103240124318626906215549508239725632951820717887599112205542697267765616459618490776873940969696106028862814441380708032719544483077217214120730533469513110391853456883393300777650473325264101897400363331668947828576951577397360158932624445628591053614991926111198907667513130509824201238518976314654531082304751556754769129189742572910802038764278771354810766054032737725336249879449286217998456599322821149203678921111826642180226509312068057902720334153721883019663104021457684563814063701715183314764445628543991278953305030312528666200943530006283604373521795087727791084123726666381909768276163161610402542984232403265292762018381977374868950159572646147538681922020300445145554894453891576686347407078750562367001265213969139957669656167505853644250679085582716486224249892668672805785073118337760070273055032923088677129122652694671624029478347337155784417981308032110821932670875866071429994740768697262033196388077617716099229406751071463155428344513045027216420065923537993474306778913377102577042966750325949360681897753873234117132773119421303350480903354547683693978604677118128931277465762476047273323752240148108293370660923497845272232997000978720316192743724864766472282459597733783945466034016591454401787300113725162158155786002128268312518123101431103839128454061009101382099771728749281318206940623202452690159899923430058972153593248134440396400779418200205921619851660669160866164270295563593224479707514701283559264566269207409356046520254414828383804138859884491369570603876135951008365704818114735435925568943809457746325529020674367290045875304521096557069609424537825675724547335396892839340240805477917604323082101262550542166605202616980595812415283235979286283293721984945532750610014246931279837002159983491605068698725078986937740786590393094126127051110013606692370609520222588111781500346615861686111332642201862259147670878561769606627157949405673858690753940171418045514152254593302273003445809499245207135588266174332834035729352429531659805044962784498323410274401756983679803979610480709611727395930534065762887332655197751582765826151914421714871216646124582576042329091817616372333751889472461990011273691244376998318417768877962848222664184430520535427639429208392869832465430600470839911332384088470862798687649368601745679655454401298057649982488999722812778043235373752728978978299155231441752511969071012276399236933149190933526574643501681526059373842837397306098080505079522310007576058540937262502835553784399865827493459012277922676291884674303430921784813772010896048916561076576084151720648674141323071615709793461450397462152957035400487951205997157183099170337393273791197166294394551482413935112029561856954621967176280498274134591298752014025235944422046363436472313667787582143657801100006434344186323775873896142813889787297106461130408614685141897007468453231189395770604669326174083930251679549564716388310340599149600918102360270070945623819770065325829473508540729131327980726181732744783374567432164301034305110168617977419956954460072878554388483250833141553700362380997041713005672980936808077464556023917631314062850731255033730210768434999277620789371469264921779999224777975114349922256418288960984189194170094225500932408446518508809886919417932013671710578809178770468455297424099977514574171660773348341482037407220917204090362786626200258677629529527037063718636347559925716769620909254600012502632775245789412310512267719602605187320676582289437543625137888483669445129327304986723953216382732160247395162018401779874495773538141716761626652072125644550861859040065080930378891184455045164404283836669642966516244508503917633414838016193897596380102302976547509709651738217866054887178707310106773311449703083156487470226987495176620159941629453901317003761829503492030033680478746929920907417504968824959681537003088497953436962174811834464446058581363063616399174586781518315425707012743424150453940841777326070384687867014146595965282650003374627453766081951265470471712591288968952206540184515377456259293696541859057475586339914301378650326299002493066718417233246928630950313680045653688651044011966241555826182363712536684823652391722289238129315899535840049776607472195183594290348416416339569192184070810901549803232225423689123083050737132988086510056116595011295794434854554100588657626301193409824283711627431580273394711264691216599213245340011995540311799082411137222208840166571927284067087416198849825123612472041559703392674582002434276137884672020068536595279191004771660429340112383459872836828320879428695029384289345488337332752157298271838175389637927368619911099995081537745332563388062202098264319510523975138974581028134610193958972936318503214163617365033207783923198549759426199602813043647256374496362998098924325606335638648499172062380074861157392089558175427609273182452591934727847314610585631935179867385304110165944188178894133651938557435692025408168303526561186113593179971838961394275085925559272805813148567979737809924366692893115099705732807106250455965555445466117166949881424121760031518402820710714261087206862973122599424502248979453580236680252924990509060873661255386869991002030391875487908429945601460487471363202349673244644662524164673996894850771736248592705582100504973951726389752360047723449917091356042457110671639924584410510072522121102633515568132026128021443210731803085178706526185646845007294187569490634113762037675257960906089341375231804562977963061775290474294414226471298759693308789606229330952249336175635506321179224162840826279738287261748350245495670988446798415806099607629913603156212362113301128590424326993267420518964799022155320584172589966490761630844825450647278261172028215106022551544499517049129355224061653887242025153127244522033574604314608996773783351676538775694578252275875330212982856559118941014604765111146998703273441718695241839309336251208579736435530852916189371028004681807206379886407203065257303613385524567559804430796125909581661726418086002583770515859887072652140691978923152888966758255285022436520030149650525938612738942840329703840228051975856862858853552981612764904857986698312360096142218996070995877687239254293564682384106831816345970698263410971740701347640215734493097294313103938831503735629761251842264917054651586023846091780629755667459340914744344761018580538484246774167309376805536246731620247735002568458327909183912715281553899187206751797769744925521826287723514643041236220585354045659362947015145471750506546531103169039000045354153118899490228295707758284461880209296129676207912461311279711622174225410824912860478740157957759043381827452222915406164768628170365529580448225568061686630742529251474089465912293292775632165139095224197692171981441976742007005285162142599985085817319566704744904690152031059113342015898833828165377286144673030508188919509525035758557457755457640046379680038170761981633697658282108749928205219732103052336039883794557232340504946612247043663847826025660323513387308528020534565480263852048649413898205081186831141734985576628063257339965730397813288315221560205353359127208372889578744231586008242652890457198927161763977064351952910380786496934777667581421665069489079313843171867694992266515343333190886810110869585719844486054198399573195027851517635795215158561193521196388152721253483423630264312723177053456762297250616666904422582028719610320548563294983892620763695766427672869227201704979192481721641593355954268001106634915560766591928525824556269354922605598923080969583280433002181531714108716055693269617752092689026302464337768417447299889817485457308865419809602347466853547089899575606288402916485094182202316345594735951322279761991892778020543275121732279484629058527878563150553015679912252760132583908544411474886832686712286560160693173247009037829338995970907554533500632121725325756571153430265901869115741999117453448986656822299955774860924183389981825335559712277713629955247523116630529417899776320365368173682744940819740588116419360153830461652087916975285820739887479001361404310780602049406189688733718585252728876164238690389911530977519479732362563624664643110425192900475279784082715636378164031245521640324581898784587826042266525789652022617690881395284117188822497997046734158373531195355066822920932374956953159559728739646383515235655725023196858355742563188056968227464434478647004156351360225526227352154794119687908685240693940262465513958121783918697219542185605961102622760281294700441468848117217309219841902271832768291508593789655027481221605777162980913796196219593374613771249795507659414523087287826783735440817443044217940654875912851511472399888743700280872662872325453011645519766172127704337294775975165890273747327238880923029725262302473676295347572845119146350432513382620597898852328882278081209431046645622805261271400620883536599431224267177817838994192268577093623080847845553583980340257894486932611110460216250850616286053054858046302596459449568273228086937115736480087984646912265287414542062387025608247610754241292045312644118741485978396787700223754254476455692668250023286002177930574800089455164582821482803043279996792947675348041805759415707722412034360777453159665737829463021291264887031316615563746312455279131067362773152102477716892852573664224458316539555482037472257928354004534882049302001549487577058900309227612853457830152310167508049659726171373890864465565279388428544951185058348776101996201852209862539938443314665198130517513861571851463102800429994369653722293998277246024934983524652115568642917539061184151724927221376401302221909392425367385040207666717636642051921304246124697995411088256458547519272464883607235389567910977056199217466999534135198616602684893694339998770551695146931934844543138639041648766118324227877063784082203744248528890263779893252107339661902109319503302203220296590897337664830657436418724322031917331100886828233502668480908178485722246421902406307886764648388694902964072442739480082277427767464093814536037392018428698463718803194637955548489059049420037537732184437823762697510419089795451929787984609323330902737545454900689583889802094440568198140551862476894787671061446973687370583445880362553912539955319354345443350508754487231412324382577480058618618125271285882863251535555627893962786400015609705059500099295875814221593026047368761851574416072490527410457610138749161908971364266075628964912343042574026501603963250874378660941113389319612439171939837263585003984073510776560853089451655074253730089651875243060591670788456872778887155208970064149095522693467282339715726443447964381609753910487992582448208921051745366251426820049441186684728162336394866287500161443056165433394576996335773889735010981103195301670849349128685397394748835609664036725632600896968916168092302164693134889780813257456493210659421231207030984211030587974153377712697880007157380636017097267084369749249397727061889923004133018570694285911777786281185808580628935470837792765526707849379770511741349947109529459382774995054782638047971848024460968208772676309627718628745715175582455417904415548508955707674524978159693066334797654856877554672305272141722780368541198563325736719736856380508441346663998311162918477305980245353587154729919508822307560974235640575196500664731729216686182153052431660836982456793704502073799359061681596683906394305953261930888954380526454459615530098109107358523204195034556661420541716084094935274726069490953876091019654929638696632609550814718840914826954145518741221599270689616613672722285554649320537000341652891086022584014898451466088628443951408682671170385335856690186139326262299561274619741138077375598678174592455057145992907829037266895935599461545552169940965996731872401212370671022603903111667743842560415899023569896895738428229620843245531459634558458917574900841370754116754382760418173707419273053156842176188807290715916855202914798241701628581554373906158457308706118991042383909174433469505230610778559981939247838058296904940650874218249649818631071903402870476868772889745701261371473713682422037968994137709584287940887317439436729010139303135295704361831732804798032128536489298368483948081532728324947389367281322154959270286769428783247760643404469414456265266355137044892693266509146076056364365098585900916218436042169566934845761536113764828631091822801487101675087668793900322875956655699134493886833035284920130753955004090813736844756217093122897866960761515563845611425884206139467206507993529004827906170989655057002702792543881626503968522990017013045607568158021277044228419254191012559271960371823702101670806465455857666859931955966532369401988367876775512032186268501603302368587193261805124975685698171280209553267379571399003207733056430759241866926274147491948074673710990538132276654405216618577490490913327633175320437784330092546338540837169704424692325570961924141626480220146216753093251229057070711623341756246546464531895870514771282673167498616935836779142239794957944819295959143345063273281372958351897498126550676109756918574789239938879316333684525480999592724201475178328132949608482558783018557708467439731807823856919947981635189342368958595952188238489141995641264170363376508405359911724274773568674506294984859506816942905754409376614927520984515658117228438342878081589882732998417994575057742163622549148963546574805678414207196163875355866425194144926715498714076366845212204925015606671733536701151217396283409751840672384608166192627150696071096814168699187858615802663265681147187582542022360290593870431161800831040125800454688146620271744357192167493979502252796823762197954104311589984789292749202901174660200138608385065374111264428421109581950182444917663080451704584359839851022215474722454575014930665848327484417150596494269425979954400855469444585587002174665950472119096726052157533672847050803574612864219743039120064586732399916205216728840979347942981126523232420485547046563438205618416902220078871855152027495260516201222664462909681944506267213859814815404013321537067023495091428362401014320444746221596377012750637119890605400834919409385184231308037937278673707041751436157702951997697420355274579363896231570999260818006499939496042051981489898345526852791910744283193150636663021615508397553948717570029058907271598464755075334614169185405406059030890748729045248569102916105788975174335499460195888125992842313592483938153496187522215906178094598048734922210723565194711140111270973482494609923508334164699591811123488625789627859587811562665016160174835345455267862768852359278427773742815080310156448071773814092159724331505693895966585479795768708313002423359258838232594787142507027577798344873233632565216835005497512627312377584939952274252853357203434991919553504665641494386292203002012467274388414209849484788254110356977304942279051145587470899988586139675447682472670203255216311930189168793378047747142586834265843660529709818319401050255715324296298557718810242450145271801568798083891835396692179391380493122833041382043499641293655399472665694997415554728830383028569515551080695975010751934362895930146736965528833791717269021919950289689899078934183782851968518789895171459567864235512933596298972429758071518795202690083322561224431854686735510794985566164989251275351460911501732438525925596445794871087520649385845963389236332012789634460012917187181168244266930090427598716884658556650543323238604277167444230057097447689847869028835836330624857787913727855759463433109610206588994543066400784277908867564637239320873128670929631325559467417029453323194582268540396566449409937239939235179951896213843274568827586151983332962011865774275324699665382649205678352949810601273483166934801215265455108054779563629814480949328382300048307722654016464881406455943866654989899447705560467011267533504182195177047738407713827747231453558536836541920053977862464910970358090249339281705699552675502490017681210538025981053401552647356154575048252977146433589906051021017670507240411664516696253443391942506193876868033855011924478331378030518254424430388936602156762455313105316785138701757345650159799258271239972792233901596450035094462702976096129747790518640875563015245430994305683022456725696020491692637688798231186418912097859259804782121015059426920542461678896877146117702221590161800223118799425500406123447234360009182164704263128227628964826516233345090821860817480525927279585455008018209632112874883265182726745790319000381651579120626446639991107866985961592500200079799418272329819316909407855480740732844365516665980799003652543913705348869961243293699088870642081154261103227038117026448338853624305932737095995060831010588306274643953343714792841374851839666716710949880245552353201304525239451834904364088445799819457895272058574832701445096284788758682633136504343024363841283209645731568751656234881356751820416653970834216398535081824877759629275491881164612052892729931942237822355315029717047877091097311211926986720091948443710682550621100799902104610506728459499667984800199012651487290684919289457690589708330509866458322838782009349865330909138877996229737582013424436919054771279467356462393177543064487132788904484420023582513762993491600378170845376406764391411057050096732067806950158080128942768305171923044863623170031423082473101336171998101359578649054171981415976553100108842737165992649760031491932427704483218911540949215264963478469462765171753194598544207377772528014350660500261427492137434705584921613392574542610601797188416349816037330694126202693866524254833667102286568250417772616408832703343535663253763837801955959182692536441502316111018151692087557944485306796920799014986375035004511487911517719322312957491194019419340111265900781331442378958005539623032307922465631922371165403655444095391610832444391589788337658728890420015696894933901224984284377631211990914436130621333913936325060484004499432390410896260550340193394027662196793313545082987295606175689745164335824097661562785765068034456969714769629226743380037159217871179904252409067975215840106329441427703386910094241381749142435779793603204781110640653657765164181595609229719692768267272097748347501741406964855728558226937098124179456310577297375076929359742302369761240272630973373210520354186583493462043056000358300416229116520168934889738794126760542276128300868907739971586175863656861058529169953090388740946220621212883104762313462397599640869353699987356490003165255050582996405891581628720005412179912550191920404005507849315871989683137739646475652434176103755396022121399431245574577877441710997489221086636015020847222874268550466449441386873396109079110716529999850466091247899488182603969276013122363274332665873877652988846923195531568737174190709845666363837754751822018445846505289131074863443226972567172592279106568880790278685139654145778323523096173268433859751747923175806545039330935418451172779153275260719065172650213777838490825977810510488135386615173580467520500424488862074752406858663166920101900394488971998111786994296381968188570907479758284775493422068463820027425868382430895691267392960167489651732278205229810604603699235920986268616800643225522578776831261377923998301778242651734248085847036727813179010686219624451026716685347259061385836350622602238650747604799414187635729839583604827877397613791720276736038982415693312181885769170509399191893231999709529002987804905766616682034196914353164003774663335913568800430834263425786085564017762416902796259922491096194636167654493460369775123801514730085662042783971431902038704866625778112469219148161455978231412462337858298405026861605603917873504388092843594386281780449131165655621965339099231702102544060815356299873966940996099018830967044025365685185760209686410210250917608981883626689577232419798740599045220519796812772184816217034254985499061136964983998148862875553499671840983678885161836185637219939305584094619058195013386258800727999526598413711048865045964850448702469725492584734055322207157666241824742739249838716810693225823349153028498594061891212536211826964663538213733047605246221940363824439309611668879327512042084727888170793262712802233252105279425189135968200796827617575914242757010732219500024553796558118192089047616418468115154987109053375142884310482557319143579997981516583989249964614356028295739213822106031628615657474588953386682062397860882511217225949522236167725659554684775628901473302381997104288263486954694711819757794405349268482274983363482034784911508724905962433324821925281917719091939934695857214528619006776932270678980241534591838108928118044020273875504872544483578792619150137013273166241415926525186500341187396691485284303416278221543503627660032489098970721662737102627924108079800378352701821023950052987296577248626877289561594481935909037237241960794034562388612660712651793247910780184991704384031835379688680384308087459070466090526412388534635706974230718689127429673783364295700359144437135598886850167888396580381657080364100074479131249606157842141492184130491971694091819055816804170734424538530336306628351949810771830887059475891810859282285598374108647833918968529575000649004221230759338322077224226226841094963728892450436995314398643130434182562238111630210079228448538002453948602763538523484022223503894338018007495989745590976655603334066864453431866082703425287413827703721526052835608998273382622981766942414955020349776381796310328146656289030296245672429654717331930868152242620715543944530593061170281927178102699433625738115689141893687573477939817858474737186847530049798295645426996241247890380729742347850412820921169258112648384368263099135709158814431110319050247768849119628809731809086227663217371022810908327027648062193962802964857714614786051081849650548714884591953816239823163090680780673938157993375828835931448125608573497752412289358918902708770589934818365130565462728104798129046746553657344332825977644375987208650548388222995091440271933257562743102071735984666915405307532193737965740737597565848652302972478905770701663033184961695720942877521020756885538663553404913908742818297007474913821127747928928693723237155853680085978740264855521277203362745253989572963745677888578785289442237885366940109997405583819477150588258286912862027202997244420055127784913006780370024724887697291348843914555315707440978679426532368476603650273813555151159481327370313918270356641412782522543053990783820635212073050156452164474417047689775556099511091420611047427210987944220940532438047675032666319167079141246972632536460115344680802253117384712464422042704750692337140526808325030646155891307667387824853640679857627709503220650625484124289947772963233462868363273020224521466647768426067768823575326424638769373361593497800679726123349841679834819345054938141480341355422891175474511982109800857416451459887410165658058565225064561501365352293050607653219192382846082771908146388623405533601735785536276882635181597617780566414796342900929462860086558825938589384630988275949970208748462824508601768938166586279088625873158817893810406923860789863066917942893340053186388523612944326583172487812022746299829183114659084375829872856339939099635298456525338530220543941203028632009156267269292392247591537565624758620348824836239653563545604434948631131288273059005605703960533353854380929009380690797751519771783782964516782601461942014109148084034383015068018634089684588586250769508673528659921986241641206239388701013302079080718105650217010621280792180930737119138211747724129147624726665339062455165839951939337178069848025290637053529672345997303303122728057881760954332040692682815996284268333680777786935113558328008404668086180877911549481440331829648649133880608780644232852620208112743289119154292735449098119555325073837391589059408095287303226962164287769201225560465280104327526073365790336253375628367767537540622903294761127693032881411042540805376409323353957432999441088224038622577484075598939424424825555149758828085143181430113067736533263886638869000745514435216624757338084933424728901117613081001467436905216696373909061396950802887295570592651912850568976087164161034950383985427895360065471192922026817608850073163796220301118181206055203628450744721773570823218914800559535082142609288950060323515908640722576183493292151906260158465872385224873792868449982003030168103712041939774710339787112821220727847507027159600829130995614382285558178812006008659746839100927925876341747038615103351292666301421302477365842637589105877944628820747893564643326524642674457220114789677576540879960659960976753216082767005527971618068742923505127899546020649498810586071120638213283403107138865605149951246230364743197544977855515869219475687247670935965725626589985022645867112955285750305209039925963983581086890156165710336578279410433998084874850811640665032065847795369813127890741022536387858887346138328004137834538154604158553616899045345368930669787070324561433825572991754431638772834804129626330748631518957086440750714156571382158332241797840714356966446187417505187240762639472561335985307642288381400548857213909310840547763471255056987954761656949757279218858657039967248535591253609430158873533106297901433987428825576394022471795906283086412209608405596363864254596431911447022238764484826748869352159210934837352578690188731253795863310889944464925764007586254776045904150319617788428212581124504984780087077979277754621694653135536466057598920357104393567618961228254677397361088022475150336794880645866640353592179910462497881269481063612978339927969678722639246144807691141949580034792164074498596336438737828597448223222803961290982541729062955939505848110006123664528739821836327466228798013984786420217936660549592192793668956751243386397821533690443025623663227393215436916803669335484641461247654905139450165128135197773400820473588585469592306664821250082819990542181448711824847817407893195198261046059645306390822172990497693915072364518158019364200520996565376904648750393436176266049520206921840794707872629299456734802416784639405923553807247290850568533235301525873099944706922443075896774601399947890507807442921363320324054714312316893119626213226628722277782769857972047802747081797898886089076748010838341880604214627009278268562855280945874862409916339556496753866160492369400355234585608114287490362172895631928682266358664026192041845112184767255042745094430841626555112002445280480335320973021769931541261706531723698253726383658232836822638568218062873749195421392387975226068241373175589588040612204957018749512380013385234431086713762952575657372209070547153857988654613415175845783257388827734197397749930840058361723161249473180571858405868533205948124867761195492076000740384920726555610306379200022127950378230819293999519157619445290927720035492426307583621463499659211463748600711998303000071996313613355267482169291999592109349999193640471591604698502355325197404723424048100675242756844444219590932560435268329413182254255423853802337345975756752893921098491361051820986845811726725655780791379299812600356887304164370844037159900292645085846286201434110358291776256278351529855113641646194093044466006631236748291564364864591295394545541733243095484159872474233905868157450939241478591812226325935266039291277179568579076200929584443070849307681378211779070050919866566440210957834169049734948763122122186645056189035910426052178767583837221226740527164048202560331954395026991421786316383189462459067962148064643373808415270394292085046695157558565173535829677920220249124256156040711904265472039782804408011809505685045562161964955774824089927785266067628166692372510935776737397880411131194154059109382371609518515245949507668282594748674895565982584120037777254322996254112890498399385955987421410246256284690202257859647680748128321609108461108577961818757185060487904795483169213209381409740869393870402534091810900007728360779460976457649442885285254564464730072197367370571521389607302855709096866055508916660356574480154697158341999468015308140756360365139520941946964923331917671298453601029108106873890873939227989648369487595953586348747980403971496257970701506610079585955789392256974178486048974741838139882231882006529447146798322464628908003229006453150802240859172444513279119893434054026080382532879795558484059679452503880023623403301819155231733896545491920824266102038537410206428307152956564090362051503862053964320981452222756153822516061442458180007091352228113538208720271671857852864444592754299698663789103386197250527908353206329554255170266486228355670132135841793115658703059375654799611110213855041400922955023658337775877221585360181729135637466306539961416598936381139378361547389081387257496344793670535610070221254334545078921298302048246092785503971074239617741787611288255562589937379100852853681862349695507538454614272343086474802655917870618942135010420637726131842456137310226169327069095365594764268949687402749018932372910633954949628782537949944483358073975760630517986649630138394640851571871790856375532952851996767037221522639634519163959356055414807080796122739059210046689646223730838390500370707602241085169085861041428761239122597219442160480566967481941103707034951771143082506702148184336339763211271669701708573063856247691872494443138195996162418245517834856441195476960406835898328024820827607163596622559953568052160715214223242935842123116008292304164422354639701805364881378845499952587249384031027811923998693682733885982282887551284854942996795964769729929608639627307676434780246418167647960691825674141201218882123538140899677693975600507973710590415810674937981870923424579009434486626903965084329996532559744615248914326391913895483770034492751680172346567356946209224400250488303923384987344352994768197400701822919213595047308522988360466319447912227607993030967805863578297765804803827998706309509930380352720953002223136225436260633772075463285877544394485246138756559270260465958448337797264027978948452337109591305498570841473451309820927772880808169830791444322805993813370281831751963029562984810809793480780662873102976146794587234111469017806384681306727681598241396438424651289596369951498512764747811596633139872314971474345424309689114644895504517685612295854388168914294391614753525484095572858289685289346975604162389017510686653147660743214421224984900738954394180209900318990470242252553427215317114301012636877096646074060864089320389396648345933930763133452628297957429724170331784121096990745064058762115561202240209187069685996979205627988287058803498427430227943687763158634139676466170267654494216111663999325517735630593070562761148148670495716557442152812382355160896320987303871894614268486096228814017900792619658547949043815442729321782095819158724108105241663735026409453505324013146600942812410322243339605500804764336944975584719584522218209035419218905775852759142920247735430014562983494090018519037775095633520937378608498087118474602165738104539431514342232389710466686828858359533421344974667875801426348507224832971810370827327006685955892358574871952168922094694423751871922490944908686941602654969552104889276155459229645725616876481633191543180976389732569333882664669088436706517166811103928753256602571603743708688910496444792660941874422701745077245362761681372858939321660418306785890903670321805483128634387452815951325511473318042781506388200258567219577784982267353161402608520428224653430180104074437270808036266547562038334333616254595587440599081152361539354866965564059991121201064700133700932239904673564962527746913694494911079014920664945062529188298734209775828742106931181415428912328187583778018920247888438747362112700370517180268038615665290715430829561890156613822757701601193050774109545714840436469363618153842952854704513931494004041422451679028900500589047935925758733247236420307268651539016864170613784709276587357874620161771430374204152131683450104658726034517071099516751180617492677442813949343646375917356694954899087633460441569281648410643951993011402681891942188282182658835388061252568799496366122011895392948472263613563885418789854808660623705379099247039554518319497613304013890158241677174429553273483556816316180368199086678687238535238749139485769198364669869284006858150480513833406319737785137327929507648644231126825283553583342212137498671895448870487318447394019020305798441280989849662624703286330639122116279742828563964776173927264225588660675434925436884522939298215517529391080716668072297246809530348586836317927013658365766623002687244759543124683064821600283279395172313243903920309701481872982340566213436705705544770951799455389101133502399109326473510507497413895146882101371178098453524231676872202562914456924926892712160281348899729877405416900659206064547587110987570581767468721618330319545829726712101243052431544929560677181388596871931499764189460081181037080820271129138229227056507501397513509418315014363267456338384125891125054876458176408817963378975256416523705840626205251574901582024805629182391846853263003682500100157271590742904568346434989772372645378089518124219325814586341105645928240999556931773298484903888026041529823731055422344414087467267204044873107909865162382369829597497043829128896868749411757252444116193764045474367946009050187265497993667338244230218999985521892067417178616097174654323455284101999021859934245941781623388104301309432529526772059734931708136174732381300350151765966802486171676829240673564762800993592484820962359532921764594952927912631821007836080341387054926754812641341288461095446876153903183414664362490356954657319259135302171707567740320172331866840855018293471288319969406185256712885468322638820247144448141520298885707201802575901738038763528869853363853747527760677404635056398543699507459234729463789468358786749620690281748703810633545554888682077526952748247221475383823403738747746958725884115701297112932265120994617925272517042934401876245671969977608518273506099796736283411982957892722918592536293724852177147552624314773203624962960266036223916474941469069000069589611293480960081866912980830976524796768937378506239185109432365365401259504620738891497740416618110985067529736679331683138364007209171409158177377237828325737129581692459556882933948919119170560765577180310576713184903551948855080016897030893300586671274097226860829326925214295351203122549026580766827493933838749121321303001628054265437649194769972516020426189600095102444194285131770072685979433580271364889452744447732243514345798117007819890488295013956730192655900707012342100007899720742240464098380653006666970413130334418020233826727668033065192426813865245468822917246984783406757722243111550843288233465713397512340577412353890026638460297637408882040682665681301849235043254367004879610014746791880566940398752134200010525820055842845608583788636395856785686604590917436713498457370290181375153987812500608463516531968414596483786830772008374712740973850583229186039467601014892045420803489918629307697747534766819312994255774639803541328182868224034492810546403434712336669090623008122459865324277733024326380384868985763072460407851882370925269377364927617829058807510732441631853805185634921015656818848706395818087010690450442914294230164145104657711618056339273237847572016540755448169937578273815050439887856856635722083552588885237826907787310856355480673876546306244853271022983071730652769698423031068968106678779855008655144548858565946892104407260641028924115105777564468257530401631419549117994289085858432672762314422087916644025023245941551074538323944836348663315592068079742071877922660658478532326565188791627477307699710837636643422969493554175202806169706538144429071920478251800459540897386446179093205913260492461295475484379215436519044700146560293435552604990648004410491210503272549392960877737278702674486600718016656518284072886505513691486888063974106420929923293620670600050940970730399446452980759845412330021588544764013867412058411415441571492020764852655705623969753886750898767049483987819770685231249139553343044225720033902400919154159934597454437488003119966091509751155455176240662564096650458116718752838644651616593026636841048086895695857344735118591042186849502793826674322069349711075902995377914789438903752616051140251030181916643538285844683926877848319468055607361430001553565983334779808703308320560915503079831362500384833463171536748809267237144788674930790160138955253533096443082354212557166788690082364398736642005466221644064398824999405775925059259218481794813225826038899225751709423187707427557867508124074188696502026437440077639722525876162188394479690392512273358319634903120348052545836134145326527986940754418698948523518772768627233734997023249643429830614227591340661944935369042807117308595652472549128212773292184413030030956571764584664367363338880572133357293762225581861724963776566564164005803348155833488357055890799155747714509691433288085973908828113465259655450190044456961892227820584522112480969199581881425458801554203156393794058870414657884320338236128743297197029656652854755990355038397755310878839362436618691265142792492908987705727409590302525751951503688117607778886699795497977030918048859790205478372725493393723574018596734340666525483232714809563031647290730740602802926127576165037821616829585267290062629331282704224841863645722639491615593452492777023900534732147185124707371700931209594556957769013385268379984108717448596732367437739699649685049563949663350222188619674291227122387823784084874128817276686409914533480637656354593250777756773103207865574809725688811779365616942403777461125931721083679542220973090131301589793575274728746751660797304572944241759899017276093009536671958106790996910083502312456510862824777976754114087743184956036828227201004118344877021670852612588529925854385837706720746005914080916436774832316801093181951662070103050707156008362524843284188398639081861470017194450949096357004912132921433280697317379539879790135873113738920422599785151736792430402147740509629797693005882169165926468388297880355738659544257078719871425320278893174771100074045570659580987786804878202249464614912070613199088108601008759321586055929804673811568425903179384289694116325897846216602945359483158376178919156551106077718050722516225804921285141307148978228311097411798532559097333254260319384122950361617458044702359650352920401117482407223709756842633742154999735676724567280135389495983342387546202126277086597125432979721543508045279184676085101906955079220209469542297054043684427638108700081512489579964266403552675019202737991414211229688035621978709502395061620472932083311951295008242207775819855490850524572959841989634245417691986672852874905153009877636562709392864489915303088181051190362727113085682728302731475206409994426857866833713894628546658827747031355117446105933124892260159443803612267033052716077829577773644739501611019200801053785373214883982214958220365809568147857858058703353311823491722246189059383038848126976325013937690323987015483237775481130349064058045701163330121993421347282259939705163257369779747365591283551967833228781786058902670410853231597646148981262459895685994843181652323744466625833661996824754061463652534028149238096061403798647775709446074812803033598341739282689139170975712740446466786568044629068807109549108165252670627029293967686679321950526475066835777706943616618128106427603696652070490410648638050395942873518822189372085299338453796511955263706354163518079568549884362897482707279898024645217912814114606357751700111938567927861838486806490846274246597678410172115697127457618253992290074493965139672989814225847388267949226014191957061819474266929198131429880236480675110675470498949577649150368982867682800468383544053960275209029169624022787186627118879458676836312672263801782325384550928747417371967061266131088471768722217046806628197839491062362320854902015703107131984717935379757312607220042908898075590948655097547380716891739689909873504467285840055872605764587111146871983837368383954839525076283896475312274591282885047130457863005222429795378047294282381287646427993851078900515698409427553193796300960657643906186507951982108366662567782030797582152249869310301920208540252045566518239522242650765301163487296008878415962457979191390812909988468577828619280725149551255841177582875632819178944389332533492053922951200790197425317165251864787983320764518859386307311761570848356264148079331783504964862059207742912885540690590015680418197429942688109894097242633657666178703484780270314091388544689536135153059162686543705287801711822115389072431907651371700578871146093028382542814613456724627930936337783691455812462849593430118237681455227733063401900297973271829510269102512937492881760993959858056146976899075921897744287410248919304036828326823063983688171632640135748745309490171495189447270369173750793321567382712656975292012467073813249947394126243907206461237513402827258135860452569206169139427654426939705200202825050898237746432887873098558627440716140012245415150200516382277894371139902478131205420272210980471769552765744378164415764850750145376983362102163444241504841858025737056792558807173804798887446381491721186355533624981972921970528198315455003448271379755931224642740137191960425689622749358397840874967437825694282660322469540497825959367666766632176786488340390788296910983195826723011976850954249412525148116005734172226964599330742302225679135210381023645292373330001706248544179293145569294468975350417469478632682182767082482389545055608218382238535550550997038327522434251590875252762137557091675515090591341424234733748475444312112447090193727543410687967246987529497179553214450021896110962044664541950292970252961792108274428354287854460275167431229854551746437799205566963935131985118739333686436415848174018390944179159434550663611292555571731063330979219301130723962121035553183550050349029133714125775269048017994503104759669534265428368129240791295663619633802864532059496527321326199100810811248420682210193931399419647209590426193402694602414680183187274021167484778707279909049032938021704307449474681473583404776532416945942599079051229592438927658255414661210335948264086769058034722447806482873599466824894713507474415915754051803608950699708903886445771697516845025485745360742560025984941358216323941346252183501920777388283264079080153728277406973646682187418438143237905648486947482937672089666678066285423052388677551569656912922045569932085827194322219166567788869811886043184969934757377262993113167739484295058463057339360877561523902981786602321513523102367694260509449077451095589000922333672766336415092946146589129022843693467190991267790040885353938776800539529376432308872079181454223013234912171861951203245157044548465390981975812631933438057077492511921430190703386184225271155161881727904821364190435010185026723283862699670286621502283728722116618974460994633042356472776458013474852717731197195042046576889706124067921450117514829455478232464704083706388431712624018609391566127083519790963820089939673618807599579980342445385737689889628541437411700520100362147674828527744284324010878129389221983813708265428866578162390515109207985569354038110492337961658110515085724053363932651037428858785220989049158936455676521881981244893150245922407326313091360371515748264327790268640461558489484550199048785720193629339566528900201048760222061909914209610318668751436488101272527275301286025026651088169415646877298816273333787517302613584920999415413827316450934681423063045371167656242768896640039724295974956418046151384030144250231018193525516100520527106268955739621177239932813293594337396675561864846223135228663854785096067594730160867226712831944820746737834814726874976679556373293543337910341123691369811865702804637619797567537402244571028856135849081697407017534101900571137354382232977756832463296001168752764103446170873514241906055379475435591456145567729300843033551343556170968342312232728709132527210498614812982546188025616882375172994766687917789781154149104669446807211404580811964551733113779780253294499774324915468808665731781625937781720174728117570095470253166942545037305414631782045695873270038561545409258323377722718341163730178575755586446299379643768615060236240460194763478898306768669500202878448996395092643464196897060744946835667857810329289139600967064793952598467985995816421748464082461288907793350253737257615607333967010298340007506220605855647919711737854218027593058367819932258366629578191449776461234928120320852955674878565205672583488038579651106215805625432545772706990877086146453182903449385897041706669296999681695032269111011975540337105546926920921576464116922395649546716843722326025840956658567121799987141887849691265245503346611428297049541355532982095734951887676029823620604372256286257669992840013487417853531597331361085821110407024363171590547436698098956163783382526824409012104539712842438371599592001173812244047487360987018409652610122622323599344583538977924531813135817994614834759061935917905596857142102835108062232665217875549567982191278507230856569988712975368268622465846438702992427210896584639252564085979383409765342390609321662992584875882715348518685857843657753913026604017801314179053065605238614054175857583466311481582067703721267401203185521707310242046978414408642636622353311760744282529186831475987875890580225527690138203421304997639058283699107164127189893108139188223283097724656817740033304320752657745552094708111984980672266176077244832967933326108162987409533737414648699191663936222714430955129400980586033430709197390730633039057508984788614370374634974211722024588119442647453235167529120141928041788440053608523541239396627606230995455815294111068649357395084472370221198537247368887270601925556853999470834216851766787855103173600238198992084882353933340797879372251724868380619710864095897963787981751700369034942524125267981808335829324119525126155039903463166778787590288899551424728196007263788176509667477993295207734996665361583776722670377098800862282594372592481165875770271100469837385902546292539561516635472931743621740130770181005339009894687339033135006525727664000102568427400687042139875068819607475770384610902120028355665200233061261355879534129461928642904343270863703388089687245000745282370686382499766655345446829896078246196422009374585560740604686287627180785167707857819224976466463500630378556564762465456612851000588552664845802688400530840305692821582786327414795941587008495373540324611849465053694479700479776642348478707863843695830238289345031651317311954561430651917716855596691365286686400718094394329807738429707733042809721651868221786649044263710639649824134687757331903936814749237105945778882117328788318750188704708884648238643276381995585635219650323056169483552110659553620572603460819182682113228519461392994300745477790225050300982582519020521362044766488679519474448163326328089626018241240991756995667064063307962594511569855772673697101304199956596821521859229051668264637118417800390821353175667673713086330854794203407914243605020018510137542006544441110893401666990456815489495225445657707088125056703993412151814977501127513459439017176987077146971922919635099924348901453095306819697325079197945186331700702886390584245821590396766589966708810125969280673080532581053333100820875734132808778323440901536194364965458565501905453911304934038337472497025515474026948125796957597107122253004383112720230578897182832438184483555109080405039397291162219853960154688050957968980600290272730651015876482944630556479355265419266595292684174733735473677544026539381682987954305432118777093719928243606259802825504975967958706792871826181349398684641226302573933062048409696457784997483545076188135650682118203151825495327348896592466400890954731671344577871139766275717787049850069394843622083267978081696143844375819263796735158199126316261201178316111425762666460505456945768140998029562038166151831442275573752408449962934857108788373900541510491581402977590074064100240613918801381156804534413618958741589939978804853474834184133794231219000445503234369844276675833944946849317487684708465504342175400025970865573999713805256402078098506253114886344539205307347858391266843848381885971591301468560648506673086631588375857050349957511706943996542155853762614489193390002860234573185716321396661217270600996325429718074991726963464030347830566287899342865132066647801053995091097292298057213059972233220860163532750067473611309803002799882342593099685709462058895795784039554022279571911342355754220414400382021473312498319567110409102780594839249452230650006644452394023990206374812151065961941219186692109044142847973850585425054772471325505676156430128852209433483913087685106809737908255890524545377253962637790933393334003002251409238283058988944633490643840756833822347505915359072793952774802454100080591270972311632575782098468706466982416923861933914140920800567447846667550232767991258266932929186251011460463639842529409243096217636823579548220586432509769577884235435094154511174164438216586494701548957822469667170874763868464349380681349981068444027099498232920153515967503912502402184448851073453102894717079557156357209695778741510281962835709547118740601050039907761619909068603238866599825410783269734038373196077805711489212831735709306110545647461449537599275410818875785917349055159629602053951429948510031090616911534672670916213993322784403117754665532647034867979126733977979804988105193631874579799126290828685584764782770854892656095669970426123908165701343531853388102697481870404008562505745934810797171575102689392939333574610114064238747265575634743166891638841020079112912021820053937358471046467357893528324562909525419533166811020135321009538419784597183546282484163156604627833109953743393174195222987013901129785724601205795841632371245702365876819609387109312369444379394024765124650545344223925157649024511028940870880206555426510010158285774657581760401797792681442392722813840262457637230337675584173798240181651220620716826462797566799897239227163704773057254801985966394050780880399708656088440451051681964692246478316098628026656781596842722662643773033902580703035416460346012529176290071994786843410184755713523090625282710953051898323413084199120417952810582791571906056430302866617216022818185443210098111098772770104286607008865461444835832778032080544525190055096554825076856171146715995097543958355480475430529732212197558242575711771560403787956999091178862949460832620225252223238649031231695099665708180995944016682808319166802528988589886927576591253351467371098827741266064347841946196381272965339047778220430670314575929080538035916565478092482000709923456683952829153197895728399360657199405264701404313016876172492710227707506145476027807185931319515685080909671391753526802365101699855339800141191162046403390798934323963698880939913271280331612218342026276657890261084136868804263919154049207138345178584032857573139765338920852648958520633940032336547976913332139356005837769054931266811508356036103417655039864421551659113525447177708062314819135267862438928711875705536234901134462752293451311383696559812321478275618583714435934537875747250233092106014276436926450290690313366367728003513429536252113100513602642956180542931982861258464403823346368084285952919670017911856809615640251386386892744718227370746397522463911687928443073889624482256656337719967644146483091857569181824185185510322759071538289988123366331672953964523021730599632536480682473368621961449222624536876693330917130087356513400388132894378699466039109243795236452568478769004250805908375658935823295112949539842223528252722843316898850451866713171695622154595114256084660671449785163592993849301590186212000845927257371512067959232674376092458876208687446533867448354954573690736773394704151568205939219533721217411215482430377726857768854740814709271758586941198777002468948955173117507384111953614058062753395547848829067065649079994132085696291763274322022541847030259280373014622043306952195065158104248940365493385430890016923522056632146297774144488940983477970743901571821613967232296509551948887064229693988608941275405837999220191437319922423359734699345092072548364726296405045629769015660856807433574331976560403790194925136588147738832462740958258575965320685588068157476618602301962868839507171406550792999121211002568951308578926402484917945322463580797360449428036323876648749753689917998042015074870742035017951832509639012729326876879516424957583694950024770829946267090279488563303063379768737368211857664272319169911166139208061278114569413781395869234197774691787724846932039353070046598002466030993130053839532425520704837012173356902347812816793867680001952928509277935570066365268905322259572622722765927612198153681833341589972111790470345346796844702011758439760626297354618485957276227702616217342364421073315934471426983123225050300035237464290530203951641798369297352935501018257780827614167179343566656589219560414918708325866564415733618316117994465040405705726702169118740863819526425949019937116867837026021961960642249037301738645966588539041358091733695568905956469706551921769442476881199220751111781895624441993451546730869605302290432129605473468390931512213065910467406768647493898583778795240626354192420843608267256275078999759541927115827880844096188408162386868744569642929223671973387206742377991351547360290691496459154399162465746124984823130039825711634077641424220155788304116809980925234045959271129468675399258326286916008543211662859671438133118013527066467800449312361447439692175016197333047123146193721451401543669366378327085096697277350037151398545914240590699969419160975069200686695369355677772013985787573241644037308375133693335574889624135155237465413455452813513829314604036546969898840751233378890418637276353600007954446349800828872525071053614973836690228013511596687811829793843073734979564397903218717505620149383291831101171357192718584770780684274042325783932982858630847395440207763803777809620945933603366551302427901154592503172877285887349380709613228404560556477979792555715856395068652772527059204050562234075913302146405867670270920357217725119452360848532634969123184573194402431134609235469308665516728141201149553865319008554275460890167177719636944211553494717316494716139675075337956201020019700864189680208675494077376668888510585183764468862260246502968317338246975212332497858820399955961726993759404991143837643994105152465544181423201202534153288165966367890179716148260022937245209544689507798807733427438629728351250973144215087645493029854233130494292284287338857102022033811493530874430623657728145981180701679981969416840025401062507863711157400882626026275781658279718524187755420935466147786044028364765782480598337503478306318096092759605017117969869244637802846099504317822880018158990888310005278840283849863379313809095596015982471781134843065919250074300846900294109603904120124390223183932629031785663777977724144750892099976557769861095666846964664385436540599340689174312677853464541142568717991362822791034217861674460126927369627762729878221034896312100261769549242292482634926215432891557487025830590721152648833452472301014832892997541557159572557576542658329411983495997182520525553494794439460519365453413723085988480032749134485918453338065846782174238677903033523407649331715346832705680661785180267783360656607007165131750438679418134817199027846643479446321869179706231002519244033172014036594033931519601828661912954685279420669083281171002017009886048722441066675077878551087489062143651047627671753174936104864949374044269692629073033861716632594978958299747233498744233577876845255918314474651524510383246421639148513951780007429186039994111306989489534479531338176195416776149732786792230941216977799180253358655323893262949904904524778869917972266393548928770565334300164686381028627480240657773758068525444050214494928084715633631908661045586996135619617012264694864673687677649914555894085977328987283437877532021542988911653315797325162108270574456870723823003837557246991333067374661091371009241688930971824126139268702648902914170659846090644841459420439316749285639563818924957421399471819961254560585318255743261914656319851494340816649654607436704493782563409951543129012309165866901278042432267859801771786183509870876824896237878604805175001712814355595626568578342295689704423135994144962317420930029707511866441454035044774708535854671047409054768109778883052355441724735818179044309456471223674637539069684208751191377760873889475303246007188842191247785925440577532659989491093602341165006417466032733630811267835099127169320861341136902635352213208045861142301141690774552394294017003350533266330904973535939063096954159538407845137078505196086389943253097920519588803564989333705433242971627420639010044129439156339357516019712337589394416874467265183200480214088340932225482007480911992193704773983250668061539934918334242877955140274926041897527567338711747516995216741285082208605482947631250432980512606864660438812482439213358746663111000174453139269382397476257872609815689627216555126397562044609020886995351900233302876399999141499533476010443303663784289850819048706478570728507686316100741194430307835522873106884748691734079069314963478080819808488265576251558729329472190228790758302616182675185855495419488326136320507704864394583380917834296982690365932365358643555414259707402436062843734988028068818121530471666994223696876153930440640680312734888548984507543587257582803628578095853265189668338845809552085549099092279011338792625042774172188088830287179278007910478489135582832308381823761864258455978467549522056616911157489118391620810699060716840894347637735572021959304308658090996700440919784433579821397884303136371972723714951896851183181488567413329367423259630638621166251925382780062559735372055435421937462902244489560915514286332896831971454353126084808990138261437596959914251893676347531507536339078963703579816767066846459579312571977987247376822979312288341038374566391071156200962071940867215015919672458658354568266147842310409629926424460395905137671298432404790679501304946229576840973141106782556352193776458991482877909855768349198355005693818564646889802799910643444811504997497768328995854209291844326389305149480655111995950024074780334339308006298107076905705601486976894751293856501370315498826919437782879957875320800057278396085569125216153332343807146612874826845609118744567163811264949178108957760681461585739376030106006960871857075021164424172359652136344568270654536827214429614559255565338415981577938878615303371066364933384142464006388055031968551278352817121182182490534906781136118766397445612132431438926121712336297037892628445713807236998979638332250103408791866529335241209730041582136318414095176159134374617670117313655699658134861504536659457839688771199300216786646981776852143454595071175311535573157973069966008831255449889270431309240691903124192821020558233607505511400178718799545480088061424608564998824853160164260661941151496775573055357439330581533391251239341889397717201094861136963193462910521449601634029109967782527298680560626972034175183123924446695436856020856571818082879614047576029084817229979085250995461208259728237793805712050316500917244260735643567435896491527618464811369942149338621517430961556425333950588885404625304506901515367511828432183885626225421096739839431550069498154822632791795770439710761101248881958124187481245727994503526606241424294621657520374006563949535376392709176217304590843432110888858253414946405484538781175019209948887156162614379440869548753809545474212675306098431402832980854628697229123561507871966923111594794489057486023582090478251384096520041506392864702260066824769351808618154660337920894469940946286460498369038373881623980372464800443530136661903453145834212106040600343886875037820459013581533687054739883126105256974603609029344773908844312763188637834142911287462608396173526573855423701647249174165779545208949383845401527877305826309897730500105114443169600687259921152611470370378129113813154817159195640081310007221360033837721845929017500418055450187674430097368932762397039477221433145679397908543468575833514767002090945266311378032659007070377709847119201053576225838822066893941150077632724541010038687158023095445426400223944621388905746423598501048116864807383559885480799520788363483670095513909872111181554359683812656937112742938589132042704052084966587258463505606410286196769681403970100174806418145125095253629967852192404626612722113595267590284752316130870078634215810341991032869902417211753357700761173081835791685600443287374104762964977599243170844425882898521675187322338086737378569495228836743368307872821166402079310123845481432926045073025723177975029978120438782379163460068550186471362024628601491249191851535436385329396862985412514164412049688708429614927789140136391009436405093766487724923482566523527575407717904881338876174134023632510284708355936912590105864170310069638048622313352346307854625861483488312077053956732918507944101553208685719866125806390235703417932354017793425780333514889771564208279888144161283383983258764805092964820921317827337659500324958046032349966857131761298767554257716238098685606612764990436250147937057987286001923739656792560657261915060168810744712703759537151971438456888074449594115298008724345293965418721923823976610665312315318474066232018881791178543081593115578098323318106814021495645822531588201209928367701531753524644887914177004833939915036089459128083664048010523480948499402765429208091100837185828181311375528134557973320522243062395709015513155138514738912074086618176824611662791086437209621774475294566448929592193279489275381464378496119936205127295239432000328090764096213139082010867493067186323695929832143916068953412291921724643131917912192606684140788892412727096483427731032012843485406019639146224269724071127185162126540144222539454575525704921819076543963390015390468034412514776467085781784769433369528877918273867548360305741270065404150311368249704505841722054240321360153842941457674687466468786453330811335483783437653950061960104202762389653234056570532028394613341174563277324252521320009365000245433692024975191062130595925645744497919459051014320131489258210061760081470274348401314985245117985465824040867174069490252132579952662908396860280871164955411630310184962097988979154396950980344740216382875995029397011440510763482706631838959901813615613286965913375647814243817012402165105344540499354554966255598114135477795602014643356628644543451104134225528591914324223718841794816895722789496586010328669717839523373804697767920471268121657564161769707944696673186321953026723601728247691028114201858206017775905883564233981920764402361335367623891251603849991747878344456685417202252383985475333687557817064732641747767193086963124970895417670279652266356853293916602777258192545089171174591486208827822605652434019660069637815922837728492762787389674999296491252655733746847749708540771647487759982761770662343790432354706811419558629401740629967051213441433943088604451494882828892831892474354286140228676067959976200649647816253838019889865373902580592589864312861890600155594300644897243046435572761425004886807172810820106803957903785630586537682874444253480393316123801462006158563907639299053248714663372900254465922637986565807949949001400614351735663308794834630949000518161458675644634398277911824321375382961939578073033981281880453229569458575250112043493447061572328722396731643907720949805234718989437136114765306677755003147284245238011840700061479608843262573715330594601767277211988775565015502056869520552085354903064729503931322342127891899468573653685964488374178253954730606973700989011968148941751978438626204945137636177149619521088958397170515220608473353746678224813592167981948311164655181762530509065491163613133769650369502505147219233200353480563105477046759128448532637824589593680299738742942426728304058270327353307191845468216176538670654116768698859853585720164921629819704426663089717749306269948901468173150077589942676703059014711276048042502384073307373680703659439859130444679864971433325145950233387304478092592990041589230385340690204629754832094567999663215872002932953296471034503094056692183954324182043343819425573568384710040919702428165787204018557890098876917290397748797630316910120410650251294481877928855703530014202877965673138442889230355594621364123324943040394252442609896479896362735987226907998979432629345210086935989895257246891097294058376915163493385208243456540078991069204651928177315452085305017413436287523482288720780152307747025391170154155279435262988839108875472346985586281400579256793268330729865698762635904696729793636649685454059961256869247714334295412855735251621433296017161895602346857620473219177783284906098026203841478373034333227391034199806082864232794749691555982921251027178277011797757303678524409188732038501096555117526694263117299110562994046639840013727636609263984964121256690251720488482711854443684312410392475502981428259859888017714584914470139416207242871780989396201799507306425412672236447566088207812365693401728625580295202054329235248143303059126784106943751689779029802537070977882065768120908318548401015316623658371796241695862878774882858823611116080572529125141580656710473375075032481161587927316594512304435638582786008269355719133948457791471174831711637857088030712726075134435854236564611123422744209391707336623844236542698168115842442566007063413068365524967165075034734666537709966470501143007081804425957685257532961524584038323025551511270310011520788102556982487738289267875266294369617916890007788810942585807756526973386036660643626554914100340380585754544889422767305294404001206553003837600319937483356772732186724349494683075261905343744849431256738026448577480455841908958409789520484986858566548854710855428089988469540207704517902933938477176844500403792945218094188486694036538152620612768492011289682198197456426016043770002347260916717438606255858214651357347769035841881233390814945804201773009151388451229167549864206025642739198885052448895612478892593617527271774756327902832142499513342886404377063022018184039632475620518012411043656406579335652504424235845153006935580628829160806776656144240365854821844935745275355610420756460198598835011799455613899791458158596920909628253563361263350718506059679982944147744395626405846106174459679219584638193117919598895691431042211322393730481795391112415150044483017949778952542752206955319920560119787627626920757036573393457554995153516864486971513722759997560074967904146385355796554326429286300196506427931694712399660585821144345228100959889469593897192808499092430061127882289161177871234135482277091407974517958737331228731820554458073775032029797113262133481819847081019810290916855681027271679881187639701523735973246938591516410293644478972599219352084699790061697565706067456131351790251205851647036875834742343812916210437713718037221711920381391037814703648209178880259040978550059706416166988430150124028830345868206636277317578085902793140836001993518625564240858566679308741462863547089013556957178648900412581516024704575368430229164801767338851754002499548754600490058607411087512046582206151880432835609475209060099623108302176104448025208556696983227375958534056569242443215517551800242972229952551574162649033975845002804224336153751119931105446439962856314053464811099548205830640067809913236699061226622158299210335674704823441328982901120931790478293598214584620674295596799055104135082392345133906142153495890630231102871290162122243750330616539257896208016329403833077826909228001378312882292708977254640066416254111620821898258107173911843299944877655036825410599284605232428870145080805983797994257954277570719496843197803708609390001796623675536122286754726066349959178910976018368699391342818393901717120406041140401838800524006956176432460263252115180052105704790774620172787659367062855392812970978955843760614847223719594418976104659466150719371625238036675247082709576215266238285400723982633115841898435442328874692873809185935517264801075712649615268122980757487520930586449861570323084132641828397882409991029616196016576031803972930898560159923277081995346233624937803480205529378556046985174759175671946937416375628285713620149231674412693709048030522106207447058045952586299745394032824005590160760053932021466636971144936372161199565699704128236854735754305227731404949551275227707115448701857997033975193119968027288999068834298957649649638082623057067410343562525185560697028768041722710182057664291264339235332733428293390920613623878553375870410113893182295455446379607317018831176880998740068930955548193117846377586522866928674959410553538549394909449591180017225900714291533811006212982312111194064169646509828691066591876363212905311175151336592271847860453078819596431596788011789220090098829907414467857611548037731465011243958364952755340938321605813220951871081045913312470150030525399961535460982036597009871400639291644156728865897550906460091085854711911660287169150628232303489871664486747437350158942936476218311368449113401526963729616655599436371262728002664309884284638829654717579552915831449783897318307076203594638731825199817432394897962679671463687370421320219823578928329788221359509607822140851724168683311498568850694635589657179511201086381081556428713356788808286302675042020034010994990437605112718384541231518573377252912069311589003199536015262521494355930653874029484180112845739270650966044061320253023552124298530106600612334531986454520228545224247580799454861038477280229204851835731903189154456743165826078643528174220734170432155589731671854473333785479483236723603116365163106353238217443066415310912271709614000743743831769590274592718124394760397651910160644146164583279222927629418791950307880397034179734269380366013155383461021243786542596068903497487852912520842720787519593725835720026335689540456911077104792978798494562538246922131550964356904160849485387506609741491232670428471062308265315091507450291813552873126343590189254753909998538358561623442774007167240266191535723940212463486466555650689707168936700258612838480323415580086179680839768757467100296660798754376368521356872095362311372300101996896717035168969304219202227148395308490218923397696565134262386205880771541474831056199449542493065611675491623173686371588005966285143665515584259901793160767360919796653110144737548933646152174159643460168969587241222211289196672377575755298184248948043693542810103344947810705298019684129752871510680016949920996697804852066076580284022070823129621903503408294979285819184729041787122709473032160971547233863607533028270792784386458338348668468579476404014588101770120794516393188064871571708478131869600411624445018139480921164413266558990100571952588305488755548430497455297797839120327720178625774384917439443139472191247303489101039463353890363628865836383243751508986434491897447227954453923444593455985557426339170438918945615590420940892484374241178854618968324488937593407252365211608394763548478026045914768765641831254520555398057028283519554884688606901520103970785582915651807598619649791726178053176429384391919168870374406501369357750307951760578475291910256594849443761328035331715978248050693644256534129311833471976908872346284066745338497496204284168443156657185928191691674358273056959034459493386743017947046615890387358122795210600001938408412461388732152673649060250862312491392393381732138486736615037050279247925369786083956580025250251652428714892935372356627571832818907186327817936906961125916044277807983527255024356209645720679753900167437161679812947271550903629192781370434313157360215257889435126082403803518487636996138245544211560215389970031587656557484798587685459849260114094217283429265873292079184779398076732592304319702145334829599325857615650907212538185847486651562811472023261994357376376905543110926615454830575319138457195916692754661173439323470281010111513953244050789931970027123096008281289386419805131414026873867714278682830774115167657205105785394024143053771608774015446277391001535019873092857506095948557258708769962797793488325144710226214496539770577547702173466237228947277721205766679284620110860331352765043280836171124516872027775593251768609428733762668034530894833511606395349910532344030121030390120046790414929075090511080416043788226127743351722976272932677285400263269094445756576276435094298807534567042022683127069410747115263959492057137829686426900918754159649142812141502114862373342617757895818137372123289825520552044756111959049683154867815436584855277129181812962080455893117070561119410678528626526581456899971772570788648120024365311518085913017488607757191368167204430306460395925049571815459218110179985641207121503779879269004069528219634553479834359333159715155561756830233296767684798748834954059849403447224660283869679171197986609395254110581502710818903986204872131914448722371847716943778546867964536483643144541496195013888696211108272745371071499261590734830127529160930053387148821240919957369217685547473926175640358761096299496161059959902182061241063152865110311666017078051410747021269504139227960386632048428494445787404961767365841285881645404651452266784209399806235847959974511735236587680199170028550604304882057008820828641466312385660022928272161531976821479962229028056712171413108261314896271782522747826253115579745260412210835937619875715633695110767245133112510032500809874484765002534782559619135578019168278634239908574652387860612088882775434102065399821174810298826050778202914115591757833932218394861766336004791438319075817917607151068557611303264307434316671436960240753640246390775660839489030753952677384427078965647990618091296669342452574384586035067294670716624070408063485735303335872359211853955653231604017949288034609980909165815173389082439913906813407706136878587027531567346563412870336585432912724145215249200858353367249466449107330997190467154663579082605263431185872404143957497186624932542192754141618034995686570718326743037098361378374136779916624934127903559219035926392237645763529784371336033826806075486385559785924909091140677742360122091358932211725816573553273762178193993973657081607214428896921597832900445592264961717123253731484317571570423906808206311166166653889251392245467569097555551520744799663206561489082909199718842613331108629042167229908843141799250905242008688452955327363428182142572294240430275773128440367905958723018741071139602444699320906429821784900515778141317345198750515563671997630336815222406007479825650888446909430692860780409732914417575796950580804323297130682521161956943231540151083391828361588042215234842595226710574660240707163183782559010270177065197496089064942222056129427904251609579242824407391151187868187612482505553124770385322513526277772096466234617212675656016545868082857416082492684406545121710116892642754590389792438445519961173877503485818041677058153945654592026667321932011179479335389247440310730161787958092559693875129067237706493750371991067831296641703186657503745173196377983868126205779680635392157284528611711242321997190144262212305639252067420677134665880776092958185436820895399881131740851737466648809732328422547519498803551459867218302417885524457546780569670393692593147256704745749707942445050429275231112461599222802072031280473971918920543266463691254665305613846623145789859105561881730038220894046356575483516277803772873983610173858484735488201747061101320619244418985824780023208085713394109488462384752843470433513664087822573387051292671635349010250945628729361700571374871759767465746023446865927613912789991635117464387516827910847157710179797059329248558993356453929583631671276866956239313960029755281682084990122824384145801166425834549370221739051304912652028214238080393628682228921248540489063399988752679858784461783879626475718254374965431112686374540815844149614987106104813996060007198187312495733810452310654788550833827189550758258505034783040450760960528152419594700054225268206620471450482572153709410694741980599250707243504498989512559437473328729235463267497646966584851204689563196245731336547832016368244843783274404179571797603981694918390860685047952916249095011604336706231229751260503446109444510638372177625551069279794134130940373721892370295287061460042413141382665867787847960797580229529588188869398756771245795570172542134763089394230539960288670792171538147843192330735749089419778929989596133865697354235689708670416065530006884726666027972246545683233250104690577528936938797963771637175410212346712293158726392768471134469858768442467437292873434374699507634099654275533293146661113268073905401364033480085804749753281115632435082300510261692841484976626137057275507895156822518226964606868597898285632965815042751309876654988478630420874185679439249955286814395163795730199743253447996653609461036348968658807474683443941000368590151747763448143917131906044507599149380616762899799182439580607372771624904621889611369499708610840636165178922601694191363569819354545238262092452795359887910666510917514575159038360129039568566628470176558856522890840307902162601248397767640416347936235282290675447992576556981113542211165506135857777363210660616101781843527631121997766875649519544122531720006404218497289200458609154511343686764984429018890759515466861161682907827512398145403639479256048493030600060428323122502663739339825545017210299364655071860607707229680216446405634383379847989202115264320940588398974332767658061736730855716336780738447000660385172538693273754436343834515902958031045668828047288388125978317664517257322496408426014673109734861574307246724044988450193052242256615186991870984562995702013397608769486581248597266090315566100551606460257838477189049935176676585896137392479242130307819934385032546641419151275896014754596598008982178940316091849710684543073905555307849705402602692174914236438809150620437530683712477075357219284452289090077769146885759396860881466289604495687854521638466496472852833578881991078416359373562594531467850180653804473132435275696431705598862728241073724270602034089751054518880646445212487247667095976798583844380976005159239968707292817692920651971669214019638691423160121104096405522524667096700548201468146177731117330300469939801198231885033271402579031483314180653599895297269848518862966734496354834447899983017332076345074289712267974728198407439084860042238421530894686843642279985116047156414561528917519156283655697289815965909635319146492254492212463788860045380557001071133579942769785991723731298478103770653644386421218695536047298542344472970601000940180961981313789689595233703770951251748051931493705998193490240042987106344058433875835572202709883580460231782823850035658634072007444512650907558227670222399191709849416385823421127093614325840702615401308622635792882008330831795304624040041397546374272659465707735200927694909177840874038745009171616610131664997767898058547420740113004523384867710343589815966827385642165311133711396428766910783151877722529178953223468328984747384578972873403733982038090590701711671232329035027316194892759268623050446377006930564410359890712773932865058740551088325108280739407100516833485136697755110312440261225714948880214703257279125001654337049953279524271362828895049726051400691872230415727880736001395050209011922697776678847054521710410173744425556730709010365275721060591761649526660733892930015451546970788437932871057925378707263614449232276380600385362173620374072420408034115296489249387921546077293356498318372595459028496653831817913641348866712695238772068054187156820193526611548031432801023065525464642411714549391177052814901899090636320078432480652432525461784365506597181212375429430135529916621397337635436702370797037820880823276072991178100017217506679334403872184815765180377935680383612879196749359224040824915270034377235011948091260683460131748055538507363481969863606667309832068647857773123099154095663383922923789350618948982262111758085969319659415869463940715071263674880335740976151054431287573572341639656669925994687396157215919567638603014966855400208817500137266027293142482309742755317463413582001755155700355860965097028165488470728846578185337130476113681794094297021983277349984214615713164813486390760793541843793725786697510414841314713216397649160135300229339490298735734514809778913265601707915983815053366866665854082902136772520858849879115497265272559597015192808673631483615937889957934624647675707913185605241719321304209042159105136983497192857859754636082241017724051173735874462149495413006530947161004538715124890561057630142611843333101286081948870436255464393236884333161598931527809977029990832339248362935483976975265296337841926198597946449045318377150146678504740332672004569894446019132756463242621984458486596995520621698492131173735615750941947320635161247092580806699679931669774843499551463241201770777555022203731131626800137532988238512123765756836452496870318186978046404357999797293788608143670565076070426113832266919629115234558898281947687073997803986203552997894368828835189871221449695497190714349283888116930813614939440093159262207963244371946913505857410528828183524879387541007277948542937699910676264340536395898273965764233158134952045415305592002658839917488177130936785076098194715006499277547438880763061194596278282896167512822816063647208852776131377261420249935954479912280932809888231329026943079898961700538242373772237836801027976781365008726513498257620487945008040700427567189734081248465995175644110730805693186828772409465740656117113974074749975483040185961668484074271248311658190978069828920852911440779634738588864189888139932666028175360808864393668752757755839163932184089027873444628699810178167478411071162536089097664471394893730929940943434053171415243194382093569730312084597652844890289121839849836198353925034044081839631326945262929133319891270998032009770752810598843144132900173703532015079675433967135407770206655712998859974715686371114963719274889856463484471120579747613108255105335815976656039311955711013017673487220711561789172002062613005651122177260844919175011820841797507310896722689028157580591335840657845766224262708057179481761835207276711612408495486882782257961096188815179811275586409820013045013512087462476587779597645775700869696575235991733595369936064118847164482854635077951025986164242860890608599320268143475876873573024758873736833264483601678043531739137254141262608057790252397353767154600161327773346545493733900177041134446329801553555528439918037777735187883539799031583329358806821125012866325700513549651397957281603376368602896237906441341774794482472045908256669035827921654268516159795111278088313436855393097898735281383068800805072943208493499063113471920945319237936503745390904956531573129039798292968594971267316507958220074600644025596845978969144994767333582532130747534611366457721243783625172851290854038815562649184315085131158879040760310749886680260760899005506607028988592502314624681220620721706811199252432588482251518523402558916000175742167820564196844935822341476824837476685612596440583635606379529299259886334892486570877118216592933855241259446941495707662352830184237721015317908943877007255498080578762855720791346680189718436771530227490100146560744422693476214809785679122032852356148951787889346195636929432161150724577203326670628948898131184776243688909154459082851130022613253874114695314646642029319565021165407378723218181719064618926802649024141874373048463058446360602455570037032687920578059812485078267520263697860682137559539765906846454901214026701867598563356712463039994999221173651915089366870369171885561398505135110898220981581024448408620438883378473989387595226526943848842529498369148537256965091885816928166262852591489219795992898921787962828335123242168967576172468458081218642954312452383062019085009423571387796537548872198626240811487311801721429807448305529298426463743154298039693421049969156589468654896684584563190481030511958426774144168473219690378298302355166156682641644086662636380217147536903162600445994975473249624220115371772010978051850811828763082572996930187912118597395255454566743793660288336291238533016321999941888357131362628694745132696331521366502219843320856492946639056289668255742584135435586820351796146235376612728632568590530909019151789029914107484737237685922487670136428590123120045464779479937745641291360660913299236598359428237348207575651259491925848150465262670581319352981600458081463912939710830274877818300775259078183512746724966705224100020602930425582848185583050291261599963527170222595504441855074222949736007929604724640460031580357582428620737495134400960547335991953850460919604988910582359966398566896959533150277701996868202848398249285573472017198219876125802003203191782019994820713101508100523864661868416918691506603522519056369709641593334112525883199497700918843457506214484768874425316804239950002157056567692385029699706762400641758529905942588805641475627267577330830359783161424756149300897967913838148429433779774795121595471461122740456023453146743925988455364413627059959159464249700217104540918323957900172494105285081074374514652454346593180255471226427075226312329497489404189172049856762629756376472892258322338031136108413884999448409053810502893270206149810508403950331993742123821320952606450449032172628082720797774767142176354598948379484174844900291519138970039327946869409918571350443894997237258096491753340526447487495522928208268847809763499143610633367605723650230035266409224380039122656585613361938257637272914213511758961694510509489453404997458452676438735661426470066030334618903291315173125664820841425659095191452841092440808865433720665481803190041923128619038663748199165076607861822226393300838442712376120589364121181401321569258257383321948714351016143173057317542967036097193156541461163669642708341383889961237589432857418339875667216907853571055934306691250402644555237604082586081241624488736099792982029463093694040273725427657592306023812342112469131829341007419909715088449626357593838435561364564215137537670053424614100233201563533500369489307075532847606271898643365164215832254192713891103233485798654471358907547778942577790959179740074846390107780934018630763518007858501008999107651612363169565511890348765567118821159519934107616193649029320464904743394178578385244067007486682544575790018393620756630790929425069015190216289627447651884906845021965249844597349450134469135367353108101138757055917368448227697526564118411586735439937467775615315518836050242626020853323842441047671456471953666381186398898938227951016254330550591903413586993123998234998810361159077820331032060154085898933012362412800770558098095630647886913914355856102910182997819870630928151654698527117411869601096780408608334615124365892347932731114697935568705875190957513266209277010411210359465125757924146502065691871248385607488470887382394099054115846452476288586734709771720407436345092892115252920477091090044263825777631624618620239340176803755643648016911063240162516196306076434546458581513641493726787610339922790444301853583671130574012744104148854317131105589588158846629692459168696814283269872440693033311639401815868206184341760010062219083042167280129273326935858480214124621434878629087909575287112898554531628533815952275088469411211244908332423908509660875597139898508790016475980191250777438338206877063025499360970061058623642505670252346215197894639343862189477187242639718737219268837123405394823725286144300887826653142964095983908745317497249187300570495965247689048855296175403702838380617299179852482328311161674532734565850636813411397971921082487378600879703034921183907383673749441906566815261529665308536468088470876462830872446187582195734131176959628906928613987913645181264798797202122653148328516158163974242240331302467549626613179138112988155810335169207954278964764790357527449626868777326916281631488586033271801348404738491404699164749926419836914794998077881226619996319688030868308692948780134618106493712054172967236738320639697572167376457214848835354290243314798228181051260851758496713440024954420472001958278634395502226679326597274011059245978733762207717090143157645174759095248083579469892950401487444882437126875981258066720395601400692373585490519605265222585801393764055898016887934223907605693364521702686869996239757376153334530663232186599806656776126619335616732867638985435520765213756243597251741959094469229471327062116565486695841861059960216687410372135540617217822869872371929531797497161790039010200621429802897402565613980859301249548831194880672215500485400618328032000171835614673801550086267867421794620625617605582282149635601051704619771291562974882447089652367674619879807672758309800895278423606627382172489399015472092044834003492802248648476274976384868193852338322478835045823476576975813064538570830988352829882913759098116683863561807463458509003342577030184165598802622166898030668364078569451415471635841983019870856626680586060985774008383727609161348010185764659121816820210380460225633591047636084146459167716198070158102441309019716915653608227144671039438107578348203367526128288269771175772478661457484912841317116602229621425710484257916692452268416029520647543254664919611018002054592853553582583233658996495681458279816129414036388126313644480720351637802595931623385005647450678091611837673790526798651900610558222004919346602807081177105165474456566048606288563711696230396109915037658222006668773525097372099528995749922392839289829106846596976042812738739284708618644720684197080187953275157040984907937815412431290330824093113673154922509262554446609823032630565919410195363127898242970293163043444782806761908938288948263524742357216265946874814336073831556118582640966716410660545159341487763570535043114718849070432067755434245012080306211730272684564268350677968903754236437201389860421870657798457969944589590683212835375002692729715246458997242261614480901518278619514321191346134230498403688702676334579986509353158461341362236061114930333022436698735275200510397364912836674878309933469972365511594306150231004883303201584345924431274839153159912327114850642003323369194966759093967240189140435756289255552696686417072629453428566482925804242836314059449689468022628521500834372684460198023866395132410351872179097402614914440045030749938853623199035884224459372214529759422479887108933443718839040523358445597315477302397158596127886965970243530322677154775680803231232847253264583485287984628450280482253531446308011937991273695623672580217350847612167751324860914582480548737174077070562877366962484751797216429373256026303261757009048184524142806767165482125992314852067327424779127161432377482044513306609831749013951885075290219480230019986634102582170085375856344640637690375095830835111285752724202391022610715569906014979159620497178798155321624693043537739107747458040038674198372123427056883368985557784057231042652746713997365947138899130622915608735960063465461293221761977647380811398784790108732321328781282950903610712276778187098528659745251329243763803788378388556533714083433050873507277665128372283516685868087719256330541252752402641091027155702671737516702607975661298107302100760877170720881253343292495736707782001155670476781082824280324759982129551951464181331375743496428344472086536875765518316885851299413143757027645987181459489283979236737639672154337746008872061028082084319352911333930833734366533222689725001139916106084057442502309595076550914210949143750643048802164306090486130874416576171864415613214450276389688173252706213995690943276776261105951884820966555909430024827423906234373332920582076492903699672919856853433695783592106397713778178961427651554053304929682241110894677814861166853024444178078308952981180845521474676218919477142521721908304694913910954811331564560211595640904400054569022717921810867183819522192733315579870524075913373052135422888687335733927251113171607252860280308128455089655731460283338059478552580613867647657904114702603780872991035594152169842344223054697896310746661108339992534313927042473889919053612359240802255371592234171274003638821475309340841087203118843826039844945495976241479554721353089270298633758492300886385357537191333884309226573339765247834225596630168892385074646775629379540281059768865342943510101069917846540330792547520214372405688752254817506598552642739956416424894564967958278038803532874076240208924670689711714361878844189375008865956500297331502185672753159604936731243594347467077686253348300563053034794894782052169648916513767069270877996045303605789703607228723738227473118158514224423451558796190445179115130471265262726349847652221148023467641355397872498688538100097063822838542102275534791876512393539278997521385653284647066173427983295962121499924403951887462282273213540615971880075857290543082491666729716812649685388153454226445008072032230377670551282402212189930457762835879628994209610248328168633126565194159828977251123575165389110787005598427629030640875096594698071492401521206921641885551199004553505813655934559495634918220860049215620393335367883141278633314171791953926853560386295668577834969223818743136560868623613158264798694946221148378180753572663580616842812119831570034215501463730854835064225727293526428835414672405138606525865074789774192844271381446337585181764473283855463780257710889024614865506300515434005966749666218775109765950386844212078208961278308001051011088177737940853235217342121035076505928278651389033088267335302319640078647075147202531779685384043275748200933401327214927107673734137506335287663735959511331825043306556824581717853963798726610370205118862155190168873064844788902888002323052034144984147584029668842686195628401078780400991480050644155478540065076005608487212434337848492694078354378672373814261713280583557405634364820804615048644074347692885010436831457255603662668072278491559482530165259792360298237962330680498177243166632971019132644203519270436365247822608894596226164388863881550385373102323417761221679646765432397904210849711993848263609180182992472614773853481343206835647320631220160743001567186826748898940146573875729485537091409780813827682560035576109629689439981781333980064372348301175016572626732210642516170035358459255085940361790084086373354173724648946674679822473469811600733894193639609542759136513150247889175452656741219318837014922356502983219178145630440302967725275520296424340273396641164569637970739399408463674451252221640469993323676797562499193692695173372917014571360386859758095982629974800684107716664296116736266479175944952706161015888496864055649231333149886554441003444287199373549975397300970427029712907485608458070833662564905820155094224431648960750827632333502598869276723224727357508236891385161514734416259859476694314578970386527707757206449973031378679938942989271348162857295499986029206722784280014002585550479094196388355488244515410901074188677846577547206006834015145801069193069344953744718025167469992939903136350294559910591190116260653799226895670450343331228145330029462819977294654629684760114895954465671269580934399221583530167879916214175225650381107661373877869684284548899730428582122301120148375181407659591335244753791797526676601449092048636580045034361731462439507661208007456037461868411730239604501548064243950081147972903610450472127442721749713174295534949663948353379954204679648510135769541323057236874719197722191337763466828291036113690062890556086535228285205828146684680219478557013808283236901311603212010405071234528904994849978052323021354421033915149762112510022730923857460522778692433057775419115707946624319469202996165780708014894976297556398427324728499766754520277683965085405637366248720711657558626372512137662767873921864076699110657950569723147242093405167860888330190982446486613048672047900988489165108917381929078940402401587446675283837192386810582994860303922342212184459947854889484579416045787671386616083384339715487175870915333531317676317405332651787475265329495928859658927641910421146973767026652712013377005384785239072758939709474943464811485218318375608235938766100389617176183521645720918705890606837021147820705236007229386747019793702887610984028058666791073065522467211341605454959525222282248039102662478743189721767674500406933113672450223704131378176097775336406856877536135495696998264697244679424787056999148321787582516904236219612533341512224062642697740409595982606819116831458330695869273345163795139819337881363336321205035444413125124775167565814041582760524763383352029865117875635693358938216445752208257403561496154037427821384949399708385197443972279165410934894733056840214692626462413731593825574880092219111768907263715690588375159832805304470466250501244572077495599911374545044548701009123614072389994622945707838787664022793832399170938893621325124328807728779541452250573438807475154247359559799969023292958511250348795054219756473446961191128840253674282010982487925152196597336804494509241637890173882062024657747655443298742190500086042457682392558347831761143288395946132434616180805417009080297907535218471393614793662132771339532704335998649463110519783255904459498242547315990079319422496196487463068755642843289699927480814295586075268398473607720984388825397072387445226003108691740357621225450265039719566962513411290916345460139711197230216129931485527775884914168807612311613367464278594095288977478815293570443309745524751132286112265149452066257565856405695859063619794047729989987178169768038633055627112034054990506657090606112235276810986736734465404080875237182519895335715148517993185614362265259128065222278450828093200879576782636743929899987205433782827014681267663845487235289510375795246854271252368242300679985542178373866819313475501848777496674845814314209868621280408341082110698183574054662813569563699740940018455443781556164819490337912721906893374150193618327901338460729606887144580038745974122254559534217353948950725605605745096882888814383503228664249813111871916559756781266893701568034082139137015135626314033654945558541380114738580329592353599491157507208903577427275507242344759618944721503902609650913645109088808685063469036087500320218658252179435949751885228698870516045087416841111108001383312843426103323324107941665790519611979697760523861132060186960870682372234907121390845361541176336094704745150296717368390221920073245981402052418417935339973430725307952184570081203736982701185979550192452205790724923844995798638526776249419571408193209580574027129882632867240247166287546689643149736881887861811080089541849777655357782967619950208142127025044502370330386160881781411868825845939630772352043762173036561715213276891424203761705986549662824356616358413443593045343252419731616169077253180448514329346460671030405466936043590953608519517579248948443479026610209366704454608540165298928592874704330048388348308078164933269887443018575991339607984274991639612710169390514034491694862011334334738537700735621926066252077635867443587922145061690656654989049092189858947961555591435907460024713452183229071273203395363136816488237678167944971779692663882674298299987429565112351913854290437872340487487746761182558639101387947827870051263468494481926567824865182964544752729206085558113110640552988873354105450483641830666384075687844485918434998487305156594522467269341571257862526363678448978912782730929087889355182689201262498695173625053182610046240532598870777237262733763597818867492182714041809357120243217203876443436070863818592216058997975692004139929074286084909232052809671989631661391719843337633820395662448445745972541646812155987713303468236077110095085822979641952114302644983048025051320542150727054613727657159455804892403151293677988049766591065100837456810839456958191641942387471640711980651939501517178727858814585431557463014122749338902450407305024029636900550200886537841931651065676513516932170438521896196911808666643235180595667214248661049675586665884822446666406350657454879882815584840205894283160561242150511105359323105557928513180285391844464843195987848379116236121927698489148351123007717417439774239889554992612452127138071845370994704803038467144052626393858229263035344142328577867681585854806995218338307128810748285210999446547093407419171063508697076000030856996896959148172961940211455096469336519062183527009445264666888152777160656285240984319321970152261664615879545706785016595522094205833007527584066589557801500501810785269743468491052361445805753089955501967995457787487133839503344384992272336612961063088093651952587343838342159678596082533571486343138575387750644469845114192921967773358891017911261504473199431976625780554353226886970088191540490029037556971652564172801002198455038948682400135498846162045933997144916511792426972085985700752583052588356870614005282613461077199476034932842168775898448244671776514391463232761358280875253109022698644530357260739201862612314136943358706971347167567847737060025412415206953444696587759378622469620932796747564516533333952488659636943606320283074264741805177951828449688231659378777924916175327799390428062386029509754753444129798632399174974691970526435619300671916187999262319538335875984553177776746809006147116064634884679320908303631633940764521967272469365782723490756286872738728626627641318770597580908025038607817133964768509377511298394469490046251477259562367874425378132996890258856301778375859269300050343428449290932766381879242664238030343907428537079461093766510244380873297270048731623675166255023594969172092143292926564858584315655018837847352087860383010032270840721409177701727154104177653101869233703617085955932627842397140284328568736428147482026244105314077819407422728602857290342615010089974137869109361826332242447739471580528014158158348848197310206527427507078109796245592435736030695217655183961906563769216897485604888834199060785538083884307106220043570161740609419773178426534987435864066703938781276821351406412690155781267830077426273597344148874116976004694901739665498321867653431509307532976829204637130727715974282938061369307267314149460932642650661149134747034962681008599015820592520323320599437444669434209369716230418829057956888807060208392768749896644036726692233509175645095798111052296255669153906428863833328664803704122366172802029524967621604190433795383403928701665885767573562939634428567790155387250260584260481980044570035741300985670831655787857460219908490925740844286319071782601232720599065517811506222110657398545516083045246713654380917031675829490005422576406307015877440956578978395371958285649026260437353939171020380867920466887815995540497948844131861634619219852732424897949429389072236577048235307124402951217534199892769951993341130936971088154846855466454944276828525899066734856209876243530349429055713823054764582279175473658232452636385030327269068784862285797071666450779443016810310993997280789956307022661470961763638644326860126326234495164220338074535742895351293598634700695520324901545672835516323422781540211446954664347859341165740422351023466549431861396787437353148173889178480003594865662541683938085404462485787809772755255825213444267091226490285302996404862118228668467835283709629474031534424485449688792294533388111177843421431356495263072232199227041818417002523779075021279537551805133997417653379702419075490106661820603672952096785808317436545834235159033766309916302416022820391093860746534060824684146150541774571762033624750458241630736869263455830152358461601844711310322967241766203087640145932423123378947936039041067543370726126527865938016439573603476533482775759297721618929696691109534747312883255878520655787605146013805774738375306468522953086157726315188338083352346609243059994967612378055359267278259570527867014711465576108694791157994815204798807582555255737572690372533211707003904942736122731037524731957613320174723656912110586903688130457448317849935305780089102818536785336778727081777428721055695792910919177651768309095792308747019240037798795418189528457013952541477822471027089098153402928899145064838167641418706796383104062186835670437853977309906285256184461913059771593001719028875320129758962464775208108187431465650730514361383683036347121079657939275768167600179558554572261443104684428718260301441392883799754022995507289421862998109310339996352970759975155208644729264227589370676468732832675700414351258807093450403614748413647325296184395249000496058113836009931619325244097486148164684837351029270017965101759836306736535017140617227948262657095867057207648747964697104845300919849489617304210409055511735098465608020063602537417691302439717880463991406314287425157579742916199872516337054390140784417855911451120933729386791984088863426913936424838409955893574611495992535021656988264344155251518262571901167568195049647571408572455147734516588764717751200083306916875155629130480305544378982281681756424873241511206675210211722586067832846753970057346946691261397374924468398353939415065629264198891829670605176947933958384938420375233718876243612337538257929338694958695126399572129062285026417012483222710309758512774126051005873813868873195937718155879185092031558058431136037024838784368907900521872767873057370006180239758965527526348133152309301736011155742997222637475765502214961870798018830728374221056580765475276607834580817412988251922293058532102782676385204025001187942611371185667372408598051768192875183703051802272297385806126078522615149346575514666856119736158104549354953008932519550119081258171199485155588443104886357599501513307801269163997599861507793380906389381718034682077787761221467141991918641161088569629177532742546722564959639937106623273561247728345571450421041983043095284162723757580579085896947375729435556830648503794677761662342700487008232748359817845262648081937921771633789230918482055803949045970764578765525868089989647250933209273120557620618903318403847261127650339580702354535623944470169437412219290713272820403149327322275544472782251128625904101654234070526998024556867152854367539030978641161321769378173157224583616222861716314895971211468015856054239940185153154642694389855449514859391237012816198137807590847058536618956414190045395784776517007081421091181045108505936235555981505722242851459585539131684008346926306598319599121786638340066937503658368371125411963673526724772698216208916260524113099111914760332873348376017982996597723507510662586458241800565400620618319946904673995069203042037221726491269047393414393746294840581477925483612484233311330307560986318352093676913338218611193991343855047569188145611668913293276361084447714511268679692564873245359693958094237401687844617204453846190177136502568104145152300511137571557090000472534268445157993458310348823108255080607319819777008405830647748487852253900910343750473900953353358908633575664639419492429379346843673262758276415309424896061055723974851496663314099879734111870511392395421068496554277280948466364740092943283118375531058223034244405571815914708315896763653673051093081658457182762511739881456670248688508719285635533182324888425745803722162335471522881302870710697524845605599218193854533578353553372537927071678822228969292309011796860369392114227271514812499251047741188124816626529007907453337087952134656430844385872755305315786861981172488779734315918798007873762847259499758880392733788159789564274424795511063787563063033678723022741888291743347011516496347379308055327210183459404836912483215643690699247886840196268843490769820167957663736096508102149136936756868356815707871723175800409841431764301030972271224447425934756561974013497279679707508480764256697048879770083808727756094577678811250375795896963795281647440678253978112314901013023265054939640818949557412934042172880670141845561812145183262714411407515931860022507394449849443306814428617776165335616225030115951843593056331663161569052015829354610008339659225288862664504677609032161669235912272936325614023467916037693665128522840473351974096537146652658403559877681223197985005942587068688903043662539253518200737641439122073847263075954293471409590187450143864144810340352072237528986602592284981092660914834531119040809507876875801891088384754950392083687204112815571219899387619566634713067381437069830620750598078441035190035882228799706089352084731286247073675757672345481515026247768658503675227213597287305737337259000023819672378793926307907528189282163183335308169207488320563298951727947757723283873349507447919545315862967221310514973568613438383774339805459860891768772661808095005136735310465016453584263911617352648445163844032155790040877272373249874769023115706536267063220687357695290520043734872640230638132549412481769440560915970625029929322423622154754140522148672226577553111642488533515711914378585325427352695234938603432225100461971065220659865292546048292896162305193057727854937880760032161294981518662875475676553526750961436576576481993578949773975497361705693829647618844341075738048668306726071693014917150561557319394082151474750461162010512936651446324705189726076848867806116157636983633287029975963669427464643168931683643917566104355022166079473537987680144705661740452953342705202473134262440187448361834801142062652018206388701706648861218916605613032643590341616366150024049559185135692846111054140013329451144025402719402191511263192074744748477718219014479317271825107277969259594903517567634267800655864961286012100996715633515385744931796327727852814397654184328143919840096400312789357099211144123292290198002646146670594562977920628525731959734665956551625426368386435557814015610700071389582205281504875606083208251099304353291784004387914836578030331356709546388668585027932405913894722400258121492578056869619171716730482801145158853051665876260502108057133780340729152624247070978781696176911623484117864314804269654992073250835565897442367063019939569490962587292856559741383982867479839655373705419630539306115350219825457737501204247209117650788707307475214546561710223015688234568650409825289702090049626078093444474427247910801177187236110063060549361780906347710451543121016344851918716946451135596517064979779721124457831200061746324689726563911889760527787947871024076526191871589590950441341773409036082671835296772395268005973390200427664807528520405815176677413623547850450900944242767329286962704057702534281720100213374968338546348055416119150034962165759627215111516963737788567884613841083940418382337756770596121894737790162780983020672002921066151195722171086925548282412256449866142799342730765195183254719404827531693493866706075868556910260536185168076106111718599106136298042882316550526699852690624228086971330213208578190313116221369320453729145661234586972570716627159644840938984691579131186045895281166531036766490742049226499316638571034758467498955018983258122794049597881651675693577832017251589666557115417317355595985286472602620486674157863050865113166862895864662974284439072322429107052750480166559497376664879644349378136252284130949758950881033454494207602421085121626203668034994210894287348486867017594882000713292527135829097186049219203264987967563174688292722376068919903499844914803718040912477967486716694806655308921918493834883291287823342622694898242138933675975240795112144776030925534657099694907879122809707349963856047101760657491875183889757144537116142973423078668358947356556495119720730019350687780348134516105386285208715993975391320573605479909033912420485530509487854757011732370231345426288342287687363494146664401007301202034761080042171543672145112892368058486271653084608755977617220490404139652629967867370437595438505904291533273759986547333867274637444664692300724654995505511011645206212768948682325552824891921368691897370016985173404607535364805097390783195304275908298484163762870476993613920089969702171925879099765613798943301211104547274076933773406163464094755008620527090406884094342758759366638848846116203259022458505375669396413029006850782009217739566013120859851633877482522302050497202022655626091721375841483148455647061298889662677398873379898197037552159834069089083788656242245025880275384941851722966754495801795856234754291044547552979632238276787316982763718998028560694207030755778014140330405014112878664664328091750595750781031257056017177317395773251395488999564355553971193982038459656540253829777715868910437210996661028282634196992421408673458132887541918476298631046853482062083278580365521213911906514746043708975643199136515792649664549928689476718371715161680809565973322422144789434103723428621838715491109779056624535824851718692142922075388036375390642058958991569582270878607202423964276448049637782007677373006765708320361625934382012821358713213109793885972016358348159715768168507904510774786195352062769687735946760449646198400825356895851918431098661695517589140255893419830509632733243292203991265659951991711883882503358892911106792798330946831534700248108163262781654909598402548548919860561980785999213460153694315748717597231958936985037384323921924621756650130776736810968617351678598423030214622610152123961025268233094176536205464623148631271354625847168166642037994345274007664913216366500273607991716967393028584502677915453716032546778050825719444097884264901611988307133665459838616756313721994616693236564084626836643025889896656254715738799362659830218396113063412244948138954051425522354069654276698409201859838937794038895779314104933354677947227370524834475032785941118996532532582919070055241900950434068575403584775164638446444214437368055394793769850261281168759358201935308122304121323457254812379114427516988108198601663404879537291890049415673366009752010920143942270402629700359291397781462040288253949288686576632486812259036031632127561113533790474495697869438696400700993382674011684579282149917873813161223886571144103543616337297929125437678379046645824216079671312395770884827697148471534696728261132915780197648585447373522010739450944528911072190953564491139163965014481056102678735281171860514679383304905876228061740269412186720067877378420986416129437291073033571775148791699838957073584755440576033495729613332060203495438292528419720645801559156457507064614672774396872729890989314107567758586370294177564449841140786683461072965478654260655309326018602093278289463007359515766338147827450788202502207304230365343662696392147881688232166455290649935687291568087370610791658291137310825359351551297178691754307291372924585285955857913183558205970038942623589641878889506435747878097567228385729687986517367282546813867456276412120258583957485808877328165123886588288204368124264829723021985906224071601037564765163076935192168650519320192555266560960293062632106037862932699707446631408331550306768591221803385246773127507005541275561096096431890883379264313769570449921141613251326419511582490478407436731795339092426774924891494814348568493098116547277306005959953682855269897882158426774581396666935199704797965315962833988816628866599343538026452888409040114964549137308419415259901595051046070038541215804892767507347647971431154157864672117510069769729903892059475509069007691721681454791746255005270777926760146555517055279498770019907341560899121525180643836415003549613284873604397514331431369098149871604111231606326504188708830866295596317075018294265649309796301529274512525467953877527392511446452011588954190578745432982711160411786732753302126590946158575827457327972260901148524837368721448599880887271064180298862744455872228559430279680673529779805547948517676535099183520688063237966181311389637380907282382752708074128580606341633439156338990401719224999093982048982547124048490857718168001706717474924965865346857780737129683603538867061883088445387372514712547722464266152230374309435317667632690046671318023813636750923740133706118828409637165855545953714898981226775838939583906939957047468542955359935889397451803364673467186364127686229939466917238823667738693471704438475725683670599836580685065239350535117244672201468477883881879930431512665598259266245266134908843877372543237889954607375433826018504847512171142663072792628328284357070958870793786811981854657487576006993221306934722292618947557229362688908599346717683721102424529738587917920962874609074530333465007482560253018340616856541058798471270033809971587683713110072017616027728378579620144214479148879408188701964008563940236735151160641554880300974459484748285447039397866871481737224849745491398117636600904239917034171908342872087758495515443022453265789217266248162967749481518191184461944294093061190541008653212361779288789780371142218519118478193772815455173006080428962163018542804029289319772066673628054828630792180014685573166400485602056942615599758961006680990821023731826947986932392655951615934915555703563691635321126782045003579073785194640957058516796103543040141480825568449478305037458903154626213213600144951508496594065484268691785438455782318519838818951963576647407679981699749648133047513123667486115886857205799776080657300417914782844880726079122487248553226197394896519670103205290710883735687767553234383621669015804867127927709490259861047140057412836429186551251350249169438077269393030585775244027024926234299231696903990421146965067918583321232785839201394757292842694422120502602929479145996191990916508878931452098925446945643751839617639016717252186769729751914758089738109950675258948498534459529716476469069723254232373557932705738886774500543479090996564577530489191214612567080667913406731434718078737435689593610053786564600813543941051307535312922416681169648958759621824784230676491245751922162340675275703573944266883090849515205514855525083201762097029198516727309545133676361413844972587384457308616873707852848091772313721174974694347918602462490733056306556426299088426620488393997834328598708245260817778267692420212521495706368394877735574559544142320361142159038286835578549026533247482617315947175240736443192093356138642541915628821781662192132676650871108760426146890666875056710489472169915370725142389849026358257379043493904255005698419972560505208169662532445009105764845742483723887036088870335591205930962482486800720382303499485623858656802858914302823008193604440430700371485536715137507612951786107341620525843032988275372803687544415648327683031045904040550409935095990536276468640742036067227488328665192748677757438380508344535667262425505822394104020996900771540621630441541580041955139332222583192106603915348251145481908350438522636395857988803978622558431070042526558614112863256312038275315366718576605510299209050656953639892955104897529604869198461223502981825301138390848585485414592978390593831569649527728119799989010276749440201002401868779353664313096105762734611763298022963410668239884918240576709052449452957132163913815240229845774628043766767193500989030994672964926718095804671210638009327286521496230290288154352809378348045834712605868453823210031639114794106380031185678086311300040717104718487293595681908055890365407225052744433527450788123908285877819379466799425567915816189907382941207342613365772758416495305908994044999768358722480086269542784193204604648548662667630023961792832963124429482665169261580744596648260648201400838975172814485640646546906925919762861391214160099130188701377822052562469363304385385164870301130393050475877562005251005796873634931779254728225082476495204006835530520350881601381494982904687349254282472368844305975887333505884353022382321981625999112240364869259745115392987928765201034166124917518905050886895449165417223471714437311753201807634987589875863881535959909400667209871935021540626007136564477918770774837179934710600786461440502479509131779255432328634453928513805152366666726715775414218979122244798351720668936534308053950216142401065306103168534430463819166524673041768084961968034126099501885658414106519723449764243660425884250297277393173847508743860731775252245698260362947361092681299708406013002581093632874917075368742935934410104493483341930918328906857013654632462788556045682056618502654936128623266837229483175302895938419099535364894491447156091122157961970031012627518448795682020645707492757351948741955816890833838059439109084564947866344038704123597156707320473270139243250555891522502862244477634649821438082751735406107273961777097374226128856419898492490952492448929027918266324900798128345444669231784550424173918742460896941803355375918005568804776295812400113559045819101141636976952813741875114628507517430324523518241916429998464084618593651859258603178655633897713019027593327530237756213119988423147244908069542436328654443465413322477547099297191621844499503631402191782081397799492975531076535707195878348641862430646709085376168456639206247134144830619349711701360645709490766955099966148065394804096722287725027413225617440957603393230704595018732830588266147669019272657921274112795832669893726160937112176428594031776768676128731317484874661980664305925554905447352294483687007791925362088494435957217439987884857312187366619658551994491537574280341073160318922069345934675417023734551505479285785419843507835561724543708962756741258248258499914386327665489042684539011590730538072785373037463401447705531234881344406993917465846095259422734149546414796619770027157240525083381085372133653365018465476469333629306332439137712756118536499515549571543654149775231791575058548329788099902779788252747940540443342190414158440229966320055014540415983102818312591544143483913110060010543698319521884366986661258060055519242440960082420586274275470341370012659499690498227348077028973347424733622390794781449261988177558032146368302696885462782343446863836620301589591622921055988717430048416934323390758426501733686032528551148945331342676074108035558767791908405578717804575642816543066503024900943110148032143290687156348549995731881965716139117487795037962332825874570283118953406441828718322758320292885667285775073017881961037026468533172552287327845444491645616061829686892425420198881147683638619561745358449171956270238016560018230856087370402327009139413648692578092298952897909299887519318494212248349502864777386683739563111712921015442274366572645387928220426949522927991855931066220760059574768969275106648515445612980397247313457227706130333143765350611484144693670963138802071879863663586802135206077028597794337212567551513354015976395515057165646287389622443891513473374833207916554909904444021983960970616546829754786423861757284619554016702792167057582957280842956053707089363941262745086501153904493782255144505611610901659751839713803303188988533489665199896726582528676901315627767124663152149416546743626068579588035888731984883212806255924500016806947543688643462246084621708243554838845371836604073414357433268948684312251308874758526936501236540527561258021686228888644860503979906564659143598065801217107166609936850754786169948400460232878986197170292995285438077002134301877144599628095804432417726246121932342920109884253321254164645655860530517197067092886446606538243660908111565645674185666233206891862052356300495112635546384306883701531002550836391567215523654515412983514137696788724125012207036213983166039422716666308766017462901825159781176747056824454529940991076337471318660810117803417699276458224408043075227215387744804441783402199245633721125109019567515592993939495460778014834136406451027181943349490605499795448515416582420933944391295365354972651574863211634951911647207569465498319265877700087157044808489198524080991564059967102655146716404808817256896565389288837553679765271335534140751409654977055557224898794285956415573488284555357591015787497287027200576509204750708102288769769043992645837722568055864289332532797884665803122791591376710183943147467005243108168099978847915024103161695110892605971111064049685770998788632345487089914217816360855809208567958276283837305243405975365298385877024890113269404768850577784679151840921659746766917889566440018670644774361696452056393150752405734038061708031672674241606258712945681053803657828432532151375607955945757185001906267842284834754408301148837186880617548653166713737403812182530371172815418829027997701758272849814800428547475143358834648556524227546735805606292119431778197878966751270269555437878274850896683542169430406149747525996847024402866983702037123085212436977102661749366415661086315996761742887582827018297996991353161666256243299333378512091086968718159448545567837300945542383320802664527750969136858445681659534408249055828848134371860486778517103905646614695318754851294728843243727548127459707065478876639972646080927328821285105285032629679556925495480302723679433363331131908039085779312197214238248688009355165216949888355473402441300549900995536645934060157916908347333804264256350030440578922179913823505937201576654022337956645954153702322422509457658042208810643890176196782658973039741643071187903554864970438815029655018832225838604118871868122731980102273379664621978211877702119636489609092089540155119977689987670906906078509707541925954104865895364197067146980918624292701112621519870759962663053431973256464714646832050293084559736039098117816195333317320487551084646729611412586251780943300637084166942215306960793135680893380450106545521476680324255895496801627318507446655135699784119683891973273358543594720741925779574842262329829917595146205198578059508798751423022388181447157757797329053164604324533731626568305517212037871122166424124214082364074698449321923947118460227874000066354250682800782172765177892248731279578842378050585534958894121548412070024455426229161854565159445577245536851294731780091717957460944238643481214733171154594099007692184204639881315187222352404661787956830819920617358373662663649764860593503162004469299116400842435415334123661708570049138631253319909145446396827459242629457738762799979539712695039077872031094504972770113880967266362374853664492057885781846017514438339231164965983308737942369890684368471607852057465110015055061181405474949916196981488560542999396053117289714051050861190638666223878492484135117517594377263597904960400652602673687664745433919110862504304822758567943497555638442359613943056042782703642818494510726790986044495568459445051568006255027720702541525865605374669842122729436799875458301144821820120253839813119019743598056849103321189619823379126385791099578873570058620254447595999547633519729867391213113723723527118686377881484265691163206353841693232838409580886673684251716032810735764552351087003698457667633997011206692456392721472798577696910753596537204756765424512161784483319725238580109367582745122762243982226370199988047627931179448836088676741539511151559999837000655737653879693330314241321276888367472591305603144267613920461769056673750255688411428234338077553958852596560671760859434544933335468975981987868919983365886843401701379967432396349842084810969240968261143956435145375306638983490389835949397203719953377273031585270046541024197812875864588441711388322053281641448213362121772229777098301312838730583592925983328509143617748062241689729750334472089314158799884616680427872515974915444810119862883559962474498536022736797209690050132612713945071660604793750295533128143911425506922909076113706443144804374804723612207371103876772869330927838081057745133125401891783556702661692523184755316226535881714131094214245353700079767081446428817677365931615228057783296499939758224035289300262030705520184978965580141346659469943419862043217953628626355453455035093920868105308055310857144588785566748116094882487144175706099717178125805110670565619721450615543150891778805855212051753444486375899018944510971862724223367552619688784550511161570887396162200897140979516782562373239852950605588199581548172822052392499259042731086090230799085979053012475448899635867910757514191908948382857769134987549272973420331221657458283660945373729302035687796470852101702306721845787124119058535950793649377411648430705078602275002899111104482760505840542101153829810799951057692741959152994661708666263197749277657018263496898537653312986076728227756070570637080619699529486393617219460258959155381801098994020110202442348858313720521930191965043922035476212652651566096594130979750427185477319727752231408050229703163276894402461204604319207021399476022401001230688168292526792223703413014997322730541218602924740066006702472343054386034815649666687125264183064203814638349668331923795274624276995683279030157379848254132597068269317497136857122159852386315464716222701129271053317366397107274740458854433747477762071682043364142612509356081754494972096765672342257031649044869529105177810149075988077526648641430709920396805829826441629201503530495349533527046540790437546398452606192625215934934961076621209872117687918496454503611261677374173861233355898858293024334356158868464533252982487432538061902518704834594111107707968174888257894888667484203073277836101598235810721584277955294915238508456718327883049363006268588940129108448250132155695518180833998350537351583872176453208979728043664498040289202409513186048893136257875829508192830603616037544146020157367774749723292699266429015478200171044027613729675363005894804524745476425432316514018291502830324886899002941546687484231814724619764028816315324146280171599535155542191408806447675991121059578420012707419859546072395794567281325322889837643273946035807257197680829465111611758743171624205611096483114997470771798700403326645362682876122537218666334169047018494635119902390393076483893231192176526666218108054802610102668545200659063986180094254612461402512900763353985254148202741484850936791188733502912003251269404711894629403506142166325088965015342804081154819337721076766711754831939039713937483050801366116446734327070530118539408819678288346256738400389530384619619867668152157866103633026446120904274449259703723504851192355834434029600832304984856858140036522286551392245872170816636198012398260872085091421640751690427321668930040620276372364309128850506058423796806338060007335764837154528830632770165043411969998223822183058943871033822434341720426594750568332408860932987268051434126264277757902547657993516914500563014195867973485538399674949016411731725459968913990798130401013824484922732785456510889906560501628355249759806533772399085502361691562850428613129172701511881917509712391927666783131887455837541741380796861764348123039851774051011543849417724814595992781713961856233018192231475432390953651751714198581833430031109996729840094360972784602385338058914290534385110764812740431137268816521210967683160967041181976662980270371142188189166592952406909074824222005093318342226112333594577409255125794367292645143733399886607376185031596725176578879626132355882556150539488364998573695812863622601172795731073704934309842942534978997937964933468332302591529557869235537688530968054059419330328668183240313812781842242150258411734137468801916378306199149869223227464436816735591224828510507930094958297955084745332556079009784616339363723197992540712050837503642405255658439020854032320913855732235211075967113805897616413827306642738895107836624776098826168438466580776519159282634456752523710544984828046543993062683256490337106731608960450705364807914411391615006667353371194757960594710598468979750338264155577590762033558183045583099108840894756466547920460845208108056916124586927240052847362938381710044730713561953374473374027756864706067284736580848165991791769401592453112665201804980267721925380531076158909707623245522999752949970466732235381515896388648739838654303320142328934832281935588548656228798611293538557239157513940248196793704708194916097797374901303425810428628225591955630852447777862026864034733394113237199232263866980912770936590736509090678682322475622102552973979773899166547844493663779481363968562306100412279972043571045150115120416541897682001959662303877669931936355004003819397610831737201696201960454910045351076195343353048376239261259053201815725074702909342938425172972360527329825521114559925667297365991770807567925374548377689113078772484070189185445759019450271929819493203329166619413625415756812865637243660639366961546732335943099293436000828500077215105792515981860293764057689643546552368319179071261902928352742634338452990178381962856007320143500472814353964467838162206109047908795408831156262577487979875747221331611981625167540994718318802279306927372062859485652873911671732798481459478061416279683386731457627981892656038901465647319947766665485712027158895099500124365476520245703827965892870951164977454249315484692240054762179090444812643999897213423057279476000466620860493423486292857940852764557899736281327318445157335525027311972298448855609763001493533755210700999418131768837831724927581093470582718604512332655421678757096631135827628865706527629353465292547289766003305061025193595578111124009500698259926268059796289935285205987423616006855765021605511415555083194270224921658571291322393441471246616787974378131187631157887368661311175745625188847923277672918393279328807320286807517575365031798372902278092633962821679656839406808564933793961827013670369127206746546137123169248204498262106978879184697192155011469976763604850403202266117314666245797719334753192842479194211711290107604429414088802479073346699672469678748046386284285591289101671198243252270925839279680599474033497005541779304245999584019907822787182941566295515905367380013001119613075263854302751591163235719035418291273551595359051835980816884346235214565215506296672689500615461852411662797191956620940225983900262918889332488933477784741977539484720044324531898785659364773084442666957855900307048846465162808998692841155905438284561371802929002037558087782005433148745106088275914040837327925210207771952295352234224251708630287334340552827373424651425547347829201996263353034369638521454702218598795660687901912405770856053587140185751785234266812654379025319107773670769762011464179972080773558023124579605550613790513576814380287925258397780129939733998469602892928288801690659751645474878654320054050909795794080246374981529694302827428853907847726799516166841308200036464717279992846343365489127792644781795812549533821458700998538334304802682013011973693158954589959086719580526283706664469967154480227978032237590837344975294312084583749714945846142068294405563385000378836241439204885817850284912834533911007979494538822793086229895416492069681488833120662890343302682595681903379737250330367933604479891121715567386046603608968068488949925697218836033441413799455306899515773220271057269654282852896795243963531941187525893595412533754403067890095205322953975113444889582658448460726648015666800613186948999124751626099580243853202970736413874401110504684406624194856248197099420547913469082196915353996873884322867578650015913290063393608614818523360536481047363005353374131973055076518893094984961027778631006570282484904518485963838000540213252836084834205602263885483532509980160983374284792160268138191759472988854907464496157642192157981184759821402237317409719318404412550817464368002069063582138990135030415056818743705813077555840189881917328537887464022189230996705524930576176619569795737585003448984401641556877528984122198714024209630276293402423841587935802604341419387664239000387793267220597965373660155605407709723139166175682881572640857950061453765591440045430459379263383966603056510309314910568739600002332181194611079638937963528272318711856930773433627199466559446165417701843992016151239897691357409030628217258529818612291885241382996341124415474475477348460502032090765811075151730143580236422482380785020263346879539050976709241240064618819993575310333788522684391137231470666155495623992975993215537499091713272922358740344980293349888912410898209670852751699701782627027926908851219983358637801611394961764165997021745120859361033675391874654129684656449494447803719897714665207762119760513925819161976349109445592456596377490118558200000799492998613474529302437880990994590778118525667020891348185093132475994431991100729482279588342345746479982975283457636766791436139206206896652924865512973042845499406499860854448179965456831246301218628876056406180757993294088734044016279917267297156273066104262701766143628638744573371322206620955763844200942927309596963927926221800287776900883596265338383832659132875554667588545846843412872250256193612653226604255813926726264961182690045488029738938600184365622710288944444938290568992066840259467987655033300550861589564007960020897246627830470270919688443960746433765738897187946645024682743574013351806434386419046000865371046448464990782733093587511554801123453718603560100763314857408230879544889311204373359149516320723948542853603701454328899525581036570136037843272456262888426651667042688927490619676007205692352861607630947174666975784532584914353770499144999533805000709450571748345841157554357534402793892697624289741732074890181243982830591970616714843118056739917825976193373987592678634974127871114892258522102040276038295886670777044777089816890651052846362591045375262240426709926486041739294155672604847256891289500192927337863304543239993035104362594167305417672602326943573411913277403292430938924923958648330660281115550620170310496037422074003298748896617804591990756419709518301059473941722294545241083457663421459963094906017998817345855349992671791959459296069505955662763794315105272983267712873435112077995091919625788452680499494769192754002670689001525801479741681189396801467342576887109778617295992818744727328855720367771313905265790189628696347931110194919669300063864111353467635108712458866654765520467835155671349738637978488373043771862148526117932393776929317666359405712741763928658520851581129789384413945363678747380334065385982853312824111904828877350781016608250870041234281210148209343525306579298650197859036772926817601841651589098746699125491618548817871952488706648638476995431191466217410572144956852361400483800482201932955843478969231265195744984258880316754667794328597652135297347789279868738404376862756610101870131543631402224560529597556129132817707336776221557444861655780649599844307235342092512661854206192866765695020766892103110660537983075292681391209187859833685333643401504881134980126105424764950297991464764708007599604524252011778854041638992951384529438648794514436947684338665972623660050075909768946517838132474756258136098189665475965317914433377891741664957605044496714471232853571841671982327370966330094163403655297480586428047810626757829402308902970557614655868500107223821581383841764791400452876914454012135004237887834122381347646911103546991885135269177069154971696574179656492196187877798191832529627008012769573722231136513863739170154364371789570607243470045278788499810137693322517409282920172523635790847120901352580411057760627261761372510937358470991837662376246673792696903575767967404948169088487540996155748328289003204958670125117058741623402358011232533327579373404545298486617072832305554243916211770788114034731109362880854658819441089690859972938534252334118460139539586098281310979465013095833057326097165014314889105367730730758279394239720782550720945085166432129092489221751528435858367847499528308310344993614096950564524524934132603581980750604438281947019001455675017977441822338752633188239364759256746287560097571916569040410172114869394824701431434692847999411447783317451759497224478759579279246615801385238245711344353680994021162959610837013943414979378909496004522220462573144345772804065282103376608849682269808701862603433406275606055577528225945662065609154448820413716898846321038506501741756509930701813988727819026918717061710809365412453328867608366679061125219434478394714880840366897140566857775107787401234989550926331555485038454874715228789596285919413895363904149086891434114711975379058009623584167603463752763860398702259295478049062779865584859131026205919312497604919804680948588098269210066483777871057245853790856740775851106368052588340687387890459994562631796752441060067811238702022083979438848565175008784358096848693990234473233918918349565156240399652998670029316061995665530140758477903158182700733208392061513539724503353075687671915040764857446690857776346800439461514956931601493798263910790405235840537914883955752951438441057132215010593785514223988407186264400605707696440962793955525706753179483296836255485749109802553614235055847943602442337206148775982136315182761940581222965765172600500709969071892641628569148773675937903855053421680812936142858349496762451586497371003695144563727560322119805936789239787381546440186356319893108948697422391886940608068725811433364368619993149080192952065918728146195442187922125009375890519783217301496112631065826650752942932380227444237720222809125013208139542288014826997842825191837101174802439342744231122661555578992097084124227555374353659383191840193326866144030000006097316003979457405376321188322921570990041768390892469719583724950770448821658995893293670859639466219130738333087044074804849539428840383758272409712771841521975404106226721677627297605617632987942051540725219923245749994433697657069110562805393860090219954157437371778009689352097311618512861834254436409571200291429975731385234688846686584926879984598825572708050932973736339170990893349129395529541121735393534678691384822662350951638983385286464908297469230511738538982637747762824124625409625405997808188374902269386499465432960228288701778632218224992229250994358878085181006581297834230970949528170536119460184963313472776707544889135933589796730547972415859605085442419251456398985971993693150319749600275837251044387389681653466153669327156648800267560460068171320906465877608486168998868823833949382049990253232765494166583138418884537849373728818154594351881016425462136775391577546273662593228445745419590307597466826102823037114986439862665161331985682685056255569782220840918672260350306492355625104079521771748325100007639384644912611681081118534350511773919467680596730625496229367996636732910440568739829675524469190759515090587444278879855034610626615877238770402212714554681707280509020216798439561338929133737007573034094212391562030810536917024506081310407427423889399225040666272076124070768122793134215631875869300525826360053625039791375697921965826713193520199743160898888722699530656360020743992063729115517828097593551484439239846903939170715593757477754405804103096931320631547596053319332623360028367458625659481796969083878119530337965594688259156025326291768343295401380826444807028106713417166787250915485756436037199802647604312582688900284243015954454735326588193368381427558481823441790225767683487104156160673172298051218937941964869222087127906180129682389670656729517473186957870604131872353834499627495435172898615986159188752704087867171313303421642750248727829787734693043884163724682885293089954348862167098161298429559430010770083996791699525891049438886685562353817968624740862459357007469549835098849529590916730650613860844450912988277830661434188686017263856305847785867243446995330320880261352817886246760957340610552714423581916870738260596081470679626298342752468509567911336192573468746068508101350021769241690293893241307331167180302280837018473514192664316325832443298842330678483663472536774861864746737239723779223408004651649852110244170711134457688168008726733698593609547102980967428052230939150226691372062309664850172538829509927957505431096041362414157565645297240118262025896591085522012104864534280939443987804073693123927805589989030347928987015380825759937924905418851754194548968705010052388411361675462317798768512641816550667987685861659924492788876647824836350260178372538682592807330672064651802140940426916635320237431274772369419431993095187885152049360340187790594229871734761276342167840225206938231118134440485557126443048082081271474439011492853413911095151655734299954301626313320328496224145560158972204518359990112989293211576505125007148082454039299851709257000483741179237239161935213286275581634978872196031753520023570509583324284264811447721626499420545083530816232103963341046920904545957443212889332662352381524657400285579767067269255564292408865426704592458607500212905000712087601860901111738314626910941719358725836038031437914777399712631967753072719740947893640283902098608761284429232504249928903505083150082061955010410668330430381449862224574297616565395624272501783541393255462017126996020809394166674329018770795592414072602287032115791571977379252477203129432656051233690680667312759501621925353017309787784289842878444533452787516132792701499684749345690816475229658045033000470338623507071102434811734524457762629046337241187317082449385117160871126197055695907668815245674113121552261538406387209801457853354550840710920394575602758054735917862582012372327906903083465971800712788032972668118687289803212703099442028887954708733807203898887662288317023937928585439231191529781147330361514012132424513437087934669410839370529599694627795364630168470670848699234186207681736507730930812859865357037784027215121451211209518058760640425883551585413412298292562653526256548950230915792529533434787272685719176784670634667815506542436981526929445737863886280930495765933245922335136430094700690005684693289786787289261717230512836257788086283113225214430049329348327417934558637484820516947660299539526554518825602393592773316852875336284967352163909264734714009135568667579631914498804407330825564233529347408605571921855245668255511506955422730734021391387578939416445048488146795844089746888487011759263138493136953646993501330585338107982736360224385150465364463682004478215398321735734237406426182045117995524282809321938215721567867307908885559099476387629898632431254369594668546446441528569328937382333563000424978706390903666344094652523750443912729113618387713452854135962308421838389729723796431217143426985224613333717605925676952166194428983824612500632825229385459082318073048362978141720499064538520667851645055059605102097931668908247717303126632710734733717070624363491267405503955645029668194988925294182205012768228372536731552366834615730778374064536582690020018907807778858468199690110100063103801201189063719193055023003799442563501784801572620680410905275932496555596250717775512826185317826392015847233115550000731324683976223802645827954843729418781702037525104000581328963443787575934449751666261856851085733871094503186834622126284989900127707444574788657922515258394599709471080312658200943414409928397293642885954241445190453705259129065344583510754065209148966913781546632162562892418744102657684903682364011580705605848164406643457167711318165664807003563392568392139631912816135940853535774714010164064820662519362855551114799934271511573540826065248290663021962444163397875597115450939545312850921243426300007473617910620834751925067961423033512327169346597879824044128465717005045398080977237325309661780637513392359183869055162221904231110538459425309131247602923660880988892479106432967388408078517374053670831011625350082582622360065380858566628820917954460129352521044737004090956875905842092688364888851110546525884037815722375815513995847579779022237800197373480021956478303408599308567144871023555703450194178484140043568292239901735074918336441347605128999429398737958753002239524235636144152362626529891857117976411626724632405392003889956282260952512182927326608516507878255408442519145715940864689624823714949989730629717802239284249223405100123591159061587251875878034267477440253148508637467714110909871273799712220961788621487124698652781848583228495065125020202491364790111208603967568232650976601547298882084382176692469905308939488347920811077582257762715854854863101165080643622570960299283766890402733192917699961469684266500525161395581305407366345563750177211348220936952572030108851561716932605205067640837792524682041741308477275114435867017350143482686661778561932718717233238193516665308254269621791711343451833006785794643367238871618663276984890569995434639511318449129888527145236496492157788404700851577533511993543424374487049726053877190176073626165532503404619511650371810550124206054148549782045584206786248268936588051207250295714277491946798332457192074478583553916788930320320683509286639613518383405594791406182846917690290049444010375149444361846466117116620963010247585474135455081953605773016840188122623166927532120769615015243469022682461394662582274010767167929264974024356551172733509324566220520526744666048530171462285636936494632164962977724924689032235042406134180913693051604533883910985069137478924140378452417827273790518410042300338925621024509961211906772284322707520530751999875536242954121561399636025355780010334380627691187637521574006151261647468849229921190441751739595732480746364035886423162643564738858374258497559892223056329167854327998222900337535547669865356680449758945299232457984679406775050859700005355028532306161726887427142789498753905253164908578088836906175186118707768549905270757133423605619332208934405037460533025823301102827907895732735373663548058213551185059666425561559864624816422140860048941529825042085659993195198745687241922147031705762642510576050959076411770713288776704467544166051630816371399826870087191200238489179205692798550542792079523016427708106364329459197372424953378213963380600190524869052031745788149100693178265127559187079509397084037485099751559052870890455516905566193150343127250010782349896264496103850040731338260553231968860627175076115151169779295977495717970076915280874439774867673716247805800928015249030507064907644965266472867318607986891233091074225944723690359547797316820127418715577678328380683843809037429425989666135784026932133319698298862304942672559290562903478248119746221822612894248298527530781284482955498073057662558525918441979627752610261299586658199981301934166218055964812279316426181954659277520376709532319587794433584458494736100083770997751785870204227771548031707288785157088604059321534170896212675425512381443347053117086737585280759308744719919326574400212106956670187877703729799221098052294182564206067276448048278397867632923999345532178886810964282684027175661377654691936039022603361843385742542277352354660429233516015749840748970378878506247068477024309034781382207504538391283810825751443835125547551734760402827201253953975940990843500880324794621342568765150606629945389071924800536734795235262158359470026879187035185044506907475470374054200756086263290220425346381156784441421563452935422926468468196505476329504046130116187962554537119739149182856744103196525834896828417107766340140896185771302618137290810691717780633573115061375105159299119909872658967612953870510633152746572867306557013066798512626608540232934062939375173954524684196785523992956730722440903668638356951556696081980572590801819783627386111093909645176843675612459888017580759403354656463080177509643743856548735893526144779275361296708349174096388085648988231002807921001935485229323699726057129926702349886759463782843571462368477351470543538716638208577274620875420698372679092319818442251464059566239785832087985941156827840158568852299627247343059300946349144429222755376492471607785100596532222526318730734119034542661490302481597329758205037161609307799701217410399408435808324377633961676088991814267871990940468936597333602709139285381910971332251366582449028266806043525707293198500664723868406034115014923244485510420792204577856222165454478518411093461307374015314785045659389036783940184085524630379745251758074224314604280141458287912402083292296014552248858737786029104100346590649923735373393089062894260115275752249961642271152861618035024071706855239775141754990148441339441846872365538291059930337654305637849037362927390030440429723317339610917290579802563044556118384731887358095675989447247278122971777614649459386203599085286753437067534509595519726517845872263817649262702752551856532994915439388081629762140339199944669408446723851721301523105554338667377875671064434621618084317386576991932034679684958246396493679482633479589213755292239518557919282958011908683532733344632611522699244412196432347866042184197273301666550147536594552595324756277398554926227389030115334130029933053936206425099449600721105429753951543322976453528441350796163230262377633941429188203804226245385205265525112406827900781046870141598372167314668708409737874297667202404039044181112027237933141447032365193378106795696799759047334255205157727444767043775570616588134168825017010724759238359729640292992651773327655473226619079112705061227343598861450755472693266034076099033318618628584727858429412001950857260680520475387447710387800507420020648855054385780333899154228759231453246443179098728661560592938172560000747784482507023327513635469900092370710772860469963269543671324872778375137918075516683383963264661977629334566348702793056094241346461004205784100454579501283417152564344662113288376025220125722030605518252480362243565958639759275174693234741676126239693800944545079188845143434711119606136499049544806519439636359931000660781862284097730827799512136886688246134198736186977089382552873218529012945744041413410524397970736653962247511627370443686004926599458803565038466058918005321854428589769562475757915688810309669770876000868804210784802255634772416894191648433952143055526572089959992254822553555247952888542078634750961975453765870778250715055919427221589358424036493273179159951060201628441070464981721988935878436521877173819497632508396945845354558767471760711260504479641358848515670349156593140351234090915637304677687355115116359848975480068322254536772829495640741394439520509243746684614754293834316221535736266399964358859150221317237783489153219834062233369232722834882186740471505363729540120876748863703775427186600435461440995366505706666950084070549297391802778252364925285121213710162688469193652528136669146385833846943601969394603845331010813451192085197874352037835673558827220679667904784312695620913723242137798104388682986697894391007190708801279137987832559945113800090441476273211358359966401882708607302241954209210551978314492082684658637414234753610593387116291685930891942564414954303223200621501167497058569647798422957945680412880577027009942712123085314671038187598573083984074449921222129703448447685767995552437514530664393073281917549704425693795765517175148615805349085004514291369519450113743268930123998114717082090057052556622435972146401739034377183222730442757260924003800546242640904046120641291891265653617025865662542873346783715931081779653177616859676878279773446696024128951755014962407533893224233677362290724839330943865435368875682826390098579502704642867244439346398230210823469053887650125763757799110445174122264003805111329542397654986301779618874870335235955764268366198132032236321721702852016552381144463946766738134451824003932955309449033276486495410282355069204471913335662876899762986557124523346539484911054859528421828251545818163870468928241610741641992588480887551933954130511487099323695910081110347399713556900796653984429872708992396274791446062852964972764104682837089450792647498756260977722615836310143138840540145701003610107727675193857054177606247914314987446798316502585659912803091963957315246369973208171104822129432645120907255029561842950568276794178597205778468263649287949290187333929090799498722096502372717293581091947126007244609833552548165257539410996857141432329846301991545266454422068192901831669698557979688776684758325352070427405854488789619378287894500693998951888252220269952876100463809390379398725459744331007658738083301832825640299962483630736739896243730553926589718967327249677544939643780573681823208975739999483658031517751927772379990616426791561570456967839508945767395351880328457023690616103620768571466517521016895244035211392726090608426077793259953570266945243580685011781776559655188551989411209092446343710690166674761948333364753005625551496078709070566560974604673323007216851959008333298710502347228326540953286870438936978553360352753254514997166550175617331170747585890409673984703956693757726447949260232982726138684894649211659151990908913106569781201315778459043631775787097533573322788597165552583072103268435226302779317666926908256264272035597421482814234607889022671020388273992921490337987932055299333505340860524353945357311067032904965385013466091676897883830771949870529076412812354969784944039481344811937285193307718923777687471789901053552234227796233415076196546700885027675888060309614587808365690982342487031676697680030030790822671357677066663709241820039094722881068469884487572741480092657373101457962668251897384272677853857866103950038851433260226928697103286315570260848371615465844833826630293018268301454669759608083891871842272863236983533069643839658390083195906232170766752176469550329594413892267101921795645788393160880430784139594422384931720630740508805267716227050278791876106892444817980151595978695394230208351391985791003202167130670132060917966623750126917315894566586396131474009380161945163032762634790837798316792146893909764833766018013344438985965891679333101399159567449434226630518293541191607326020623235593516329935854541550672251717428478900578180392988675503157017782147915989398779290814155624944627575527913977774332061780215703097735470253281210089857852914999310237592580579952044538530666326813781089959299645940075966212800137156064056000449186979893995357934542781579129593670325633071556197210307747724767233411758488216842188712102725382896439497533483811064008215977183595597189377450482556398154712306750753900948149704078277970921453352944130975951190411543053642572335092603145720646425318294924080999049324750372084615384726604068311657364880734661080779183036495213733517785198634151680739847028567676374208261629438429254662965513374474256752681870203579619147314844208757676940623620229318971532887470554020831691969216818074141754275343138248561885062301130569903407964397020787632134044409416892855282007190189318875385677238440879137598566776429855957986246393963170434276018623911269284448438935768969039034446732406318496267046459096775931570648431519283091048214344490343951282906727758113536329756847709273800946642754582757388603105101713111943383241017444482602088172224370140659648250582325784150967181283733544294185712801773330703226441963999690360652337820047357193083997308794470905836708474737436417997839607220977883811936756778734535681555090305155180090251564252910245547991919259063752793428410628373901420034961145945133183134304045635615003042024216372289593080457016208867218373898138572322375539018654856845713501592922895918387908755299735502216633075165829429011857508924252417671490212089867846712234040523973168671793264236702077185376584030770914945796963996806521158044161476221969518074134250661055207572807969094066446116159258771344792098123743936415419179343412692610201632082067133335769022320565784141191148410036349420968089727070579999858469930233807047171599614707457497261571776872250056345319973771920944801574553444404366371290917563653361793475400917584003863603897216356140598148322330885851401123311185375201856172194700800867709269434795493223462815653508349114219188019084011066673925927186133613918082069697124890534049274520777964124301949356266005708511636349738768524363733305181989018723785664071761699899135691145877479317832398565505757475747444485406792709330389813791513731296304166285512523611800513907483725181439543527905309869674828991663173710966933727642789797607159472800948193204965978538262208683408357324223103405611897749840693371795038742730586200065821272115826418953411125879254716520750680077751345933685397405411453078412097172317240461870891166247815185191067920858665212865585608962468509632943865964903566355755824895364355502142194893851662759468619453952939308469393596797556886458652438481702250785777135488177805635284679416326800203536655708292815326815686194570872253291905174905742540999698047215444523368323298473356891914165932921747623423083604653156091840953522319909749583089386898745223490364657435189409904745758457691884586676463587770827093476457611612139187562604906660156965611760690727582466551620828936238257625295221827364583278602152821470662933033813964267074320336454214997738839466451251601085095669349886647454293640153081993710500257467851268162529281743134271582377948883792546239405445880008781463585539987580285912483994225448064812375024529811116777940688975683564098161667433254124019889928650692858059861070481996619773109486109358890403097734956884911465836412130355427524603690528511458621880996494740033211022937818577297634776401998608050986670150966535750448668213016342762668583519101401270106015472148028272072718757845839047582470718818723663831918310149787596124127181021696956170972678885311043743447064533465501608713767304635418995798881154779095928853824935594602045539285035084585316101727159970905755662238116799826031236550354819554342892550880809316495491195401384356927981764028774206100962254603758512637511551691212794528239692917909053299582386160449994255064775768318991448457247543069910910909214706688919615241031325625664089358375529347150122973994177342872001794243737258461590255611617025501630659220763547212042625324407549025271967674183219957061530746367217041091335796371933999911263205350118372561340665978972797213341647001250620778587588022831119993727120594988998291048123512345929918847338187858830115467479190676053199745110444288512060882765639519442564511206442577696464869421714634398697252517261640418519034627254468870528009038296594686420783672276314446466824634718617744375900253193632992473780348814531380200961947568557724062618839095283084556847051042804854835675465129879147207392766762588887583783430287788488081064969307863598904764655906817496570119676135823870956334905826903859979258157689246266961531027866596026539733198226914918308112569211749479935967087545551592142958198040273524239510387529663365521815800131955841096737709477063013229907972816338689317031550053994905295718938486959312199145950281100959168513135991770487109291017234815695105640396038809801066047295972596001597340170309386025962623250793431969729022699968138301756834018690962756909816392953326138270657932100008580895762140064451978373772374979244096658535281874211865139147016627382520188618030033434539756915254272939504835651814836451777792644487731946015021760734992555136102985171558521272672791676217802295437366510571154670658000747090920386690671173373581225709517668258471606654812856665558980974946064965081066492924887940796979188059189125805757847128447142809374887562368237977236756579162603054047884387569871885903258087957111444351090137851065791387163455383606539435298567908708996186974124038163045031894195303934245565136131667909720762116669379497415698593752784985430557854623667708940290993483835804539106245947078949138486683055222550866051272188597524798916879830356669378572367135000999073364731522079744283476545868436265466349697328857676429391625082348724402634857015735692845597391651124876205230671728821304200885819559013544741635918563759778037679049695143893874900363607725229894526918604964524126566961910831788634493008547805102681362584915670591486787690123198629653656044468213676251986328403537181084753104673916343821727289705973864099909054246025277736611648851739050314360197164176896238820723450372042336099084590013269527628666759059918275455276067165981722825128858526387072941645677862268597210622352985270096186397900019359446356532130747061820637213129173371611082496026022855215377486385460250993268104978537666968726028353289427416285768641351728126547295222039083196648785507185709516937186444467951632274828415464024251331641575140234589500837730731718231418402078184526495705001874431580478498629803455088433873626647727007447277214060022638376877803509051088983547502485890860195155474120564315924813936238366094472043475807551628135359360580765481646718087016955740642459352332367443872756492294051866650538615901687307403740029875551106633080908441274132297517696465796894311801921355143584823330530109530029445615318928025544703437270439813262425996960345937722478671338198618164900196818608474041319991838215307584698853079390853143865688468013133269558024365791670029268807950701991844350017590842779341593044665538856783852626419688645245011831723579070685733232690393903356480791504277449299955827203662094556465695439328402540748161162734007268750365481292224775173968894888333189776160596549245518021060489676216803065093054966959532200759204555301921877757649533267910027696171022510990181061781073414229421230019260280641299917203013808919912403475231776581270029311533833555979632628027590420412587281589768321147405116378009127538878316985558870911809781769034501547414406399658783331185041179408054876979544029571271723069184309736371046453406127916897864162167908333893318927693992377214689601394572369709887599316996799960766154344134847275634610025391727765104331740729229392183957553762660739322419683829523968945085528712572740366646601601700880543057682994314035322926739771532645040441832782577472004902751266480406968233248146263919781865577579759219988894860173428767755217045648680388856146243932314821340104266049813849140018958823791004967143971863459652635106251391843912028774292931892295369143175354956223354871707235597282678118133492785417659390411082966708223134647856635113992236050420026576622223471478792001681044218446236538406811080788508255172741152363142480115766794287612367806196250559231759179924706455587161013759647395862476345040772155563146883681887844070389699043142603422042925308635690234455775561234648292416288231814089618193832184419408763684113210507330136468574672805492523078760924036420771611624610467273962743008440150189102919088666590351800948541122852612578585470610343583808552961335528919007851014838795882354240997065665261248990707107156251710515975492217543630479745094167329956653605074819128880647882858563185006686924232597066629225164905524909161753543821929179228012293622267270469592331395877279348134836269446213987500434774206798558132945018594950956216370224497580952574027921093308314955362767908194433477182458366607601842631309164790859550803998309586914843386063915236642415962971092065489027941620425788741462181081348945387545465355717173524633948664571448869485929575471140487324509674029042260197892943306757654478591760979958529997762787046311179743075288954548262500313848522085836110089267941793175299978528878786916637388403069504858531081768593706826518511939432357656594110797367458342691772726921343288578046239927769772651956124723450421387387300796869835256805373971474106575080766702750195585435599590374265730542727894211215150660384223947649806968498183670285333137624807595967768119533510939799051914709784318511873331903308011960563240549228941161567659575277860874199465307924710716687184843798845927835131164848947087951649880559810782169689692098699725732394301510503543064172567490578704554006165091588558472521585710179713449226254531414276674238426928968030180880780458260368718338622097458461686924130389584131171617019056817312956178653328151018855635328691624217400540570117777038199081829217293401065699918462686741650917372177483726697978907255111382078700257018541603597312666776374215184490587428886787889826303056327753651340626572646366138998096817781059776037738428440203277014005851535271331944673054139413396218855677039485057790890586062043292687540804123470241045750702057886430498907419130578612650483491632095452341668541640033047125347270649248412919066193483243201297773982425540986681340945857982522184507136144733041730118703883839730071109381850915190345527739717486595885716911714418094923905093597612151070952086327103146825289261181830367133027226438286717815445774190532616204411014631479974283198280239344663832632929624686461574573750939666289295721511756434314717705489196419537184328639357465768589649916849856744563219844222992779586357981857563331841723601414073629326191435520062309486361032194394011608762567951095827663289815277008325106707330061243267846419755305807107514448867738357281777473307110532303912227842457346493325588181608108399574562181068108171421768119697273128930427244023152292414383000267619302630739267707765765698817069371097903518661053072301856888704091188150970555204560790408469611898879132254819875643444002389877018820996207332734939389736007821415974732188249734996889834545161276292986581897770488947268993957368131275279668189257664736019805350327009261803742928398514737403948767490248438050554233620905436277841651932790692565050985607771622094030390429914329854739273679364115345066556609028696992880684136585197920160110553630187926033248234795312578881184126923864247068332211284081694896582028407619010472059468741955571043534053004796873247512560160973116084454413849341764538915951111756762135898146812378594640976101748421853903137980382515434105575703689557458202455080454711992735618840550821988214768548333440243055359902886079176960812721636363455531302868019895611121267966417991770822442506149830455477224654291131453032184279885509363921858976102890441238246008556429902907195298742662041145471220436668684758578576422868881973079153572963756636849825604720728129651550190646321453203560549687624281099472502556823765327693770064210846460610598327146444396499470226977678409904645863028772422114165090100840107519830904409833090170852599405335735957268129689683567970869385282456703061437872943628999166027230131057466904675924738378371666548220700687587589522739950503699662375929704228822012909125351122389996874893217003119269771349495842288556119671934637169420716333231199827517649433662115107445714090891895493274705819328843927422485110911823796756558747143107619503281188044947062937349215592338322760468812778066881924268889671043656674165865187395008437363139919664758514567322844420000907095459117790355931785757417538487485721826556346890042598293008397331425481704538578120696434229808501022058974844533353616688617991891398082009448763371264068432535273918724637682617252907762260050103106392717001973407603026860804704222794412880870915950559037857367033001717346124093791742705664986082959552266609473887257783428733335683735341071537480227424656738775302209420966129937664064465068409043258310042074196085882785428068341814714349123270750439589563406401340109583405874798433274606538914247815521315473475875640212741218811229870582891430783743430674199448162431586079877130352950607761228147505569580902242825964594363647025198323159512210682289869447726299501345377651660465608519189884617626581852661957601478386017271932175256917178659136952371932141721128777936738962322908090968541713631808125967266166248038490869036524560380437597754204672230984727775378199719758301422718577075108402241037630649248539317327121936580871233353712348989321764340821955134659520024805946913897367377538003665135876326219333102505347117361179205436735125052722102522994983836007526095851070201522481979455480960779997114903951430176248849338797921291433848187026679642410729920232482319918304474633834303521679916142436148087160605333886834816644038072821645185450800143362990361899581873615604519291214150930460950449978567856714002821793503660314206915591037840885505400083909499605329020945401675265111192124872426802099638161861590124886390713762956133842537561225695346954165246288248718329781118781150744828515426980408445771417614480484357208744625673356172294864711381468803549070991786966576135119108472473520351608566235491818977474047652197962281225237685464587956410641990916384177568272282138848407502180029654787331277186602496279098622209768642416895508386263239215344199182872872563096832090644910235207769030337305750527080884777213358492167291816293713957115622138828725457784498469802013454438538245410525756243119583278135718891565817660834695501959075903257336766123221055516975811964836370712435541187284468303048091119429298699168505534212959562372921282376499935922589021567916471977722198092377583437040521467079216648980451214281736495794458166483466683063651532323355659766196861991409658098815294725687171847825762947762765695745808265641467195387631371560507116821260105820978983622642079954027938897383135460006311137073748572021470391021988655512352513848886231249127622327119190869860432057077883541992790601781609222862085908590187539665960794214681358361589378226161212896667149669790906467258647543787647728890915705090662179149750683051629791683813640409270485302814583779282256724989486078823515896606672751134573500015995853289392294035140753366315267141092750928443457934535956825093052670429188295521016061160563666139999109666003362447941230186410153868167229286731015725620910677684408796224153177832628644943428721713413696411695800255130573168252112110632836975514049763133727309419688482594284379025164098250513405772148750912731963876125680420421567725494571435587564538628045763704128846072774089838686667877267766152239549510252571009765414503813937901314890567628110629573613832354661076750098002736338388811478411909208929994790746427748852260425825325524248518832281324005361855713589592532666556132553578884703795736591133804361631485783353339004976702475339703918955926916733712175531355334788418048287232340908420392221465862045722456714170182185295062585109787736443703480489888438513353802954939402847001311904573455778532355274926122876245675169940083428906261204574923637552085042526290289867336450339721469189274250061557773983080879802055049812385779068930498424646981370054781511014180838374141082279959432597825059436012515713203443493542604424422657736050554189954186431383529450634493067881901107622189993739990280154532110824757522917438440110507057157819400738345799737943312408277909069178248629412052665826286886280345881596160293872183498463358242019781039220221830237893633376854108489210275496240542952096561876084670107651720923229201495336304950114428808477657482189940526210833851946935941116132559470035766660107423985210912785223954974061349887305598287462521016137229649251480483427187594668723931363751989898920589983451710490051064102454272982184461483032737101185642428270030984634182607225202581090711170407464255159294880917916741981476954374004293703617284176647182795159250373770636346808552956140829749234745514595242836893070835115107948598486649002073850642028866656899529813551796850584905541478425178382791910720138942791264541114675416030581407556175550763450780044434738231488414971443669308126142344708776562077320260000037399448959552171552625860329008993497843346225033981593208902153753024263529659384236225276963864514065031479076970709336187173528817388439601434076734207287058125968578374586164817173792303072216369253012336337928060869605310709806143615793295539324801618407338026397349581063567527649832937983231339916938981033959256638895389513993786246870948486175650893541134107360538111467816857949113228537052217313010468180585651890935569462168091373736996244804564881474283119656889066754904688678455657555671958059250574145538170390794001873506592115555615704278483812903051513910726210041141161324496465808991449834081192471183760714464919420894701469587431384086229030496100934683704432957568783363667928323254935499411860334902964001782172041124332027820437726805103225152789202382540715708020728066126187889615391624318009387961220596784523225788140901531603985150657948166835196059822606669993304641665860713779330967396968057039092913036772151350421798201662034084781036970523567014677267036031671805038854829177639795872626405191437753330228795150053486391768374326834769416953599750682033860796155628855699101170634046624447293177369519418072380581364926689658834539442469777103447555211413472798691050165462120566709115891616099330948991230921971757629333669286958042041108638638131437893955888267051900084967080705349549614469398492018790744973280752287112061857857323393169659518916117870468197315641129241605121012512584989275854184300228151960830952089474786728473223242594268242641054944949183016422055494225706344339827621943938913812830717480546391737481308287118650874748751605795706908506353669776844681240577135941689894698456951623077279020479316721093291804530526367623684503487902879954376329528636928679261004567978151087117137470341086778656738751067001775687596166127541345949457895958016652568378979603125572207016929584844442517317913114897893523488365834640157434345708569708114884552191782750537338434067523739197724621687310824390989726412648520187323360126145044237666063735923381993219796812853252953000541376042717800682186528388548843998352129341066368228147842952446674588736679668616492466028361374688250194525660390315778635489049699463965687381476555635329736315515893888085553212230184186083689510264357336217685535207259766342769144881015976921107600180570615054891251788906119773495559243081703890645438966085966957231039660896746900638080382953518404595079754344749835007137818567135992361177677657464671255631085753631321966764127913161222260485093019798009236161109253128545719836379424203936303787038827857265809406171670451432931465398309197237097802356106186568355519671161333578748457281235715418907010732597702329516274512913539571450737304321462219489120509770679675291726947934010280661762431954971634111108814678560599402631297842303557313912203917130981482181148479264623390522661027012820073184480265787413666326426996280684197667372196369860848851271142990811687259377229265180053726724359120862983550969811122988589438730954321816068663994442842420816299733764170949023585687113714906273474705305243660078265511721332191709479445452913460490751683039955591150753189179836058370977536368158672195211526694203430516176741089727497202820969705483714807140374716483311448585606177148189883030063771675117854809813967341031483782799891003995026878822454525888856705439464084657845818501406492616968141504600675853747359326425504755633795578309200935176166945094684238270086528860404637845835834415516496177129003998425946900358253977907651011189985771646564913042845850198380842466858529296223161298146947310499247000580388276214866226188817969282497440134538776695987155252395100074857409371531688219810314782789535594040792167188974870241433067816440039279784850599105505187245125051699065640144953273271506699250654180815536071579991958687386972625742453792130362850499562972741962391967888077819062006860024495798826928789153097443357946840874485112153367046342519420196819965780826660980346258912044686446357803107271881087773457581054778359393076017555867329487797667899754382673482934140795456648278507492916714145652755133085737560331104544552581678446771817030550585910567718175493588678867894104469851243888501587803065877286413867446588494662997538035099910735916176929682178371331856672738595417878395806286205020553138207346279667390648494690865685423096265072512816780396193612571538752372633060742312141846289551286497074328179158516741212258475554748387290585930344556080694307173581386956930618081140532916278404530376950759151240042430018052189673472529938945648356787298680872532283318172352024616329098533654376569798366331293233440326115898377802320825616320142305164461682484566507813677610246292412959419163257943486978615811041454935800590056397357784559220096207838618817263362387049333562949789699168715805844954229859263960641076157989685061450422922319675586834986224142276311781816336339651593102670338672613061315858039294940669610090260053035150066944658744040592829622282974560017712433787397146634676044517257451129075283730352223942966927735084313670008468420224228421175897131165650226039407575940323755947451686330719607141900839289920581057560186146729278399134576343438062344013921137917570723187670059159689775907284792669403051154782552795919162250711738118462455861734457088527256659497133550431599644279586662490934518791314120498852465997340958861271600974706381373862293560271645444775109797979975471125244605402128841235690761967287219231613972522345663755143100719204031932065329037271706121627235021898929256739465571542222874004680223674128460802197282771464179390871346230035312196444016865344896648237444504448072943679839893739428644551784621983626180464639504856755553430101528814371351695922875083377315609617603685813689817750933563908396236624663010152488015808752167871799069738165762869209178667258996310806838343467190891023364230044479656761810702117630891878890985652298547463458159651952838685116066124202993790423433270867198761977766720543557419300232599890366546538671126305529629595249792081278172345482558824725937459333670474763237538566561105806946116084716351785634209891314466210536707762113146027323558120195073728443145618031296937856762442916022821095489931858190349198525595799110634242014821157578674582315181974879353556101434210358642694213835914265356934000581644329247508834355696037066852585081405953825421307022491665931584989742637685900732807603546504666977829069717861195511404464779878825404169148083811449297904328077469596004748145829398130132575226580485136042766249355786686037626939467053619628603293805386044435958137266634597803965418808916981867937480046886237032573897888445763378776038187065156916395554260795233289622213071847893516606901118937246300083389967249640019277618203368228609790321832560637755878886949717098848150394017659241839290769239320462500955070870099399225765195465067713140773417673482909910551402364820494127593442901992735222805905258513473659709203490231113751542307828231944139784203733211522722010262615170165496006544972592487815065992280652321421920793492353287138497876921934615367268554205770394536378619806058098948478155004269515763407943709348189896400954639686072232318663334010733510858591930914375504532525312269211934769116654746192287750494701434568519499699127323099184923314867088929248043796936309991851092870398603222413556201693222237931659092888467270554718861931255384265497732308220270557880309574684399740485027515458790113119968012463669915950582535042060704592451650156619043126701027555401346536226014161298900668277584561256077477124238960202159566351112803386717545259876759160738679818990571160950720941298833268553999774777477929648027962889815868528554813586372951223031554842033181929425420626270048347808573045688250183237094922254048435097747187943082562323063941292604410013286034889008527270837189948904042388624248721055808582037738271076063693114409733299513726142852313673837230070437554367423292659367441618132658529181283547604326694658490436224700754399195722074786830940946562570567050799044012498753441974706642781271606789358327116313641201784523011835079562034617266993317445804042803216529545422612139651069968386607421226390246249239815926482813908289449332806025040598552764430391421206248788590888066618487323325918902865809956575820446470711860345780657207858793141122114918896796353951939251930281095493799647722806144722717684835703612821772774332909894216702567465961947023351650297924481182635550158575623136801071920227300551186595394748861907671787794905244862614004859533347287304834262124190543644399065840421188375505374375324683323271864781127501070236462294117822651780705156312620057460267830551438147994395657601205981617026381734933113269290117312258425343046611694672995059221197315371873295178843668470388105040066388845448847179070457370291287433284135102219148082256299822327105810768583589134596278848776883234397928140254173352587046166809212540987670198433405689753278773419314440399964131722319682264124616750196973813206654560415012711541628724577155431015126039315945985648020136478167552733092448342415517721616776754982243265974120940247212601611801501876466768212494786945585722230379476135597916749074568363221076902891496847593405963899123165968572544409748233769690086818934034651844116026235431772807006542792000306597356624182551585168839942745137016157729879778306773292648801148261855799836721868374846268586820008704118585798476391692763261664695576251195663320192344481766802337862279768813012768218015905308474335436521933808274155781667534909822978350908254565241001684679194798067597440898051262995552347757084281361679983783097754676321821304603530493807712383412355722735042618857135141163675380649574508034316115555371914440841300241628274513046560867990913107417777003303630500867265583888247123801668612718902516199212445878159892913264599507984313388688536667245901431722007329047906188880285283612814809777167153033446913261062891618224661131939340337169175868321103513834590438962599291044361549666105649411749977925113798627860324487196743119751910559945664989400599540479655553951835141496569505305421596178672587512315202801329872674085523087790733974054785151006193205155393876572310771273594706601996854877581540131394894166054946024204501262288255877296791914778747116854044889111524731801012061678651290888032485353643334381488725589329446990744024396048844858807417748070265739743810587022953188025496824874000447306718540261260990295049742646546602967338093711602189200900928622248582264220912772304732767848940671112908612188041494867237421871779218653815056078305552467417412968874678000987535290999233161227355347334955243750287934365683427372463251233852793264280477582706162347343493457393200653334628256770314027442297796311690607749839535553214312532705341170132637831372974879914342200440692587548976661256954279687582202427410372277523144903023984620780246922341000723491731281144440330821302145198242064044844411552286017303652198806978443507671747719189385721685208134286606625258168153976551451027770628742229733486905938779142718713757453819136091296425416958756027533394671279656393709613160288250079203417701979345828668714582346641267041984206349670934490870207104428232591755966181225773532516632534727415516221701333221975241423234486604332752850129562757276258258943906141108266016601127414881169016014551497855574451528664422263725447499928964645382500342505104155843709283241437790913198700628955157518037116861673780129364511168382672357951125861722636433564250185644644056658209078926964633345833603520196928761163880137458761627499045484483293580649378241587688151441544678580200461510728264111840502436436996737228497146196315623193320149191725562277719819253516749454769771013638847334605861721559861726488613312764702312512741822745311713144135352974493890051945342274458282602298498668166008709566201651900059477839166797714400258549131977213622167376816121296314650168904827127477063587213229125869903210131780531191274527541378185701558819638086510331542750934610226949839692803572777616923808509833382149335603807867456330827180659921457002976806736813219824381975113956788336365355012062288288163005501757670759213259171881464162256593474973437195772950790746170745165758794720344978969241463623739040733566290534746916206851219500123689559887718524501024496812703571458301709362854770855707350618439367527773600662510359456652154598772161948390744931232346763908483268633192364002685216827711177365553523392856267778742210849564768243215621321595747088116478808667558649361991302217999178173361064213242719452870692417609901179099292313855281162952987123198617540293658969480544765499025969990047905570958447221353069646556042234682442878745434880851911710150576481588155897640103647642765604093157790175177442088543181998256825976281541172505735018654609732476212790993895821180592955359660638139864034101007392051605708290621430624114655993015809235915995606993331654530527504911503992758007916446541949056118730599263823774225143494020897179118403991641582773324477824878715520953532497554749761036408506355681504538920392818308325445515733473621885023418434269497459776709857654819528539428876282444732093214964593454332000561927306029372014088989704243573433122718478771339138572965877966108571789122038781771196823530832502409985475420651489964571450394006141430613899412531940459373235854457373762185295890402005471676363399855792661238969037564159666249901030573588567649111202865520111165738865353070602636676586526698019882325466907755600233045956113440339859872828151608583636236330509283865526694543447785661428768077646161612505147987805844461106960266793399764815549698292752760857681308194971390187531086572955566354323006464779582370232479088518563346784210255387372182683919298589462351706573409661674012099122630506300498660492417298061437532428953633276188183640534407955094165458225615875755531683850910152185003884527978704148384394247697848571578033238807973518691432892067569427991259453938799221083003128815223001844596398645394643380584392050721704736256652913747390661075686376281647421577701414598500941893906741675214852819092884578649498631903547469867763702018893645530984516659802660221815679561658474146471096724284926707393394272465586849864921327439496008186824243920843786136114611470788741150230274724247112171140998323399406943266402787071967985561441635151644109397634087544722117943389346649055779128627046578266422992364589315117254909317342763543126796727619103859166199308279513064745504056896777692137854268789551082681469370857461120000507496280961757093877020106933597257825108528795719774581542635296962658903579928136229878654713838661035978164916223887469103023780480663976054906364906955591093887574043191446786013569389005707350151971234804378818173859803387323864107775004356674627746131605065654450068445216056093702419611195336321750523081317969105764421004435283089047870477486682571270799842635316464767779741100075292405158038671741045228833215771053456214946187450480049357850439882359635813479409445912298791999131074451082618538590471488404546964813474206455789845298159120470537423493013045340996571044394916602944754472004559128738964820346660897702260947719094506504481916895129959166952045237491658953503070715914135208558802195504700375591868796754581019474067647375120043482146449165874400971254173722245577971963334591762853396883913956149926913429965669875908239193704333990230840624681583701702873732118090418317016015742042431905031985551846275058290350884859668500630561668882897001864807942053082441608093616861301428580398369729579623028567602762021503959094133077761148818212990315653014457503494582977450718315691885600001570162326108671133540862511295948728375668339115097199820404332697976883373797379045067577117733941368129696712488937094501447993844989357863654760200056666274295287079495841757652923335797843367277860788078513273552478177671000005440152487793471590780591895231222057093944894468510236360734618438899340656488794326857327946644879005923355193112727083703365224778208241423684827718714069744966426725632171549702682458008365737276670628664239018071795248088607794535246512661442557203309516754577158374326446034444376175574193305672614231349108249157112879862801259679931446244528242118242985185881827502661549525761798712687012857625801239341288999175771296433543736086427616598821574537388736430432398115658967231028771410150261520278789962473559696663504090484352224863112880297883587925271912072031399004558578645499289202124386037663667390019337989041370115280606958254511563913948245237898063477560278269191050238580352096990506964201279184420240366908588720867202464816859027081972832233869743966634904218786701304308195776173709847505081491709493558304982886845344223332325211980147151214565800973331993309218631007054297172524351037327781717432082680413301637063834076599649284774138157645805847556102702242326644135820692176686473299406075119278992269428262295263742844079219440121418724181701659523272527310774882094290980882179319888706055930335555405493685540433913396906797485173906475683821186966575129603262992248290987525685600012968249736741050478305522981276964665625428108274234345737598711053320041679533196534191920092527310435911106451909387147985202434296169958089381253998491894349865358773932323600825978119166677610484303648329157811590449199557987672115823282717127357021163599155534866974975809180107264455894063433181906532228857412262854467100219856204028621459841284927584753481598124862067063412092436553554793178957058855220291070804835215183034041492841215965707360686209380284640489237183460922625390237410429300753837380195931800812186913070447594786566070411563000851549817149111469497282387973815202386757923221740502578334223195885854998248465497219142749620213766338973377472043621431859015643529166615066385046710750220111970683318608012392207801448382443652788280661224437032855575185527808979746210327243707337436790258723689873747739502118292050245679001710297603315421791116998656557156473675042189013531154456558284070575437294911688794442332496643012137038763957425518585840271673560018585182436531974168999159831532512935704501701588540155619994722884029078049565240345279633370080532159328417277140999061663372453779963308702056514134946281729558340775240833896294383520542746572701102507626182186898565871991048692390032629634035337235172148448972070308707389132565633428245729036687372512169443321356011600053229756632647800350396908226834338247416706830554770474015353913941874772770922985859407785107177001164372081279015273728729492488488392773032868201959339803749433022804355015075144210607569422189268464713467261491203173896771203418847352840795636138689498057807670161358528791918054580994499220454165953557458691733666281545393868426569379600165444405254423821393279829161286979750865882672003717168058039782013442274554974708485933219950436138902121250529424369738811109116349297200309408260752721714702273509941655198839954490541873305101608859375588772006440852682971095412377433343278855667309514099447882416443649811567175659147268775958047552608376137012537868868014228192497082177508308557568488289593296174055864965891192069660840677626840292861259379450086584777690859085217732758907139798540294202555333434329312757542134723578540457597149555987073617658603154398393134393600419858830546380862421582915315992093856777727775773310674114880621834103618891509700578057051112902554381372122142253835496740304375647011880596708703972915836074472035490124154724136922627449043476935925408069472612199679605172638708948861566525111830532424193569137888717923647057575355147964703318589050114646142581416758313679954239754840849866157511829950086424826826996229587643853584916764708421330691286744883179717875653829452689114811404984750395934592741740909211699065975606002967120685242461503885468956710340758406192802896828267259337346541694762518871424015797280992564995304499687330691951358349987968150402790451890140918237790116346273733706348125823716684403851577463333218404444920336270556799708521429624687191645198087459281961336847120890464708803233462120180477440778519095301824556816251336195165530690086927315926525027260785964372015748368318741588236965840644911000443683938927578315903025350496729798783043550251444556002329559912489811070333059608536596270506259261997532293760226289715225886383998343833617932697392078927694219785082084221549653801754082162913026110283981594417137146133829925554745971963768978806881350513789629548923806204418054722389086938174973726482501769429419907501983907711896261696097651370521425668470198839199091518718521152722263422225178192583480729102535381653681665686173342081673666132845226023852459804531727598386240837522830171161377320418682736128422027234656148660102996595662426666237585486922989990301641057616316646160138594122311842185780590848785158225522530155732793072960908291782251594662026618137690275913564084918245024370600134477590354949268438895753040362230342263268826699507553149845030194242004721423408495932918012468568835865652941418648174652821692119517199337759987884682046794206587927956615372835757687518573552180142660846017143230761581783039058109759439757890893902336203804020839482105102799714054555183334331386793210138037426024517970331399453164617260233466459848983020663463362698127192947865927417454032698465700205561890539308873595900386683097226944483281150554470388572423666722045668858577446204157278191755672844852128948131762843754492116061404666217491474571646973204504794132024347670228471262832536841030293168992478803670589883774465435414021078240009156437501671802355521528535656380022187100895536544761849881266730288500343274884820806848575022123814185624426820612596294961297667509796145710678384172964331982412297186836816940649052211969253666736537502559421138399874749349087600294887573592501750658391581173080894572943944390286945133832002154930844479918035710060620751808078066544103867001627930131068341225865980107025388272543655159266656180717247054800229494710115744666788175609818871161035162820436580007057266271431299816162825330392693737326731102267759317383915711729346247587432182240586348245413938701940116544167969286541753901662775972752949704861543511442700397773828974351347777248356093788866054784949381027321877838163110173956084363534318624156338807627518083070705012143664888000450373416686507703871583452144397601416252334045036077107127623079592804683463263934946026782197113679404140291641690115982748172325021363254806398252941132442248383808133772977405211503612798193093664977991602719144696745132600915104100117435250629222256228730575643647493604041457224590196389341238394371778614816304000141895927798785502005966336709236388812384442363786884709365057096711103917336973705841915409804124946302578217179855219575654226019407423624466481337209153681886213753002953383270831443078989024202944057933347396980130633343016196049977942768046285594870265874214077895516746768851380728790241786324313787427125387240015487226337619709284033534437623237800139039134904872166462773139366312494959276006579836009763872897165845095029380549475921062087355065619926400698304687855791305421278979133726177682525730393558908476526195117819652069845538065409782458546134800715105095487373178838964390357130817466837569298513497967207535533390718698688355261361647278346652794329566721836666290622885523446952747262884856361162472251284671055405212120533233632175002756619951280900541383897570407146923590377423723270417514982284900115945165844705361923035653660837979965819254242721283326704556466546013211558296557361789809416262113086484227334331062436623889656031897489052459680229731370559913066507917908504450899954132640708445024833014174595031045598163290727002089297115930249412816054293073476000146912075635232453932427601224177996644907506376362999380340429898545334359177018101510038633901948000799204740399470260529766600689076585110955057323449563476506944106908836645875529567989443130443313814765761868845488878529558923449374124485139865820945726626723113644760813279846340009311157279039065875051472762913261500188764447993566897180811193114839909202954526777122843905900998598046493966350013947874307969004105725769822357666459857191069922769273736377383586958824058788726070739842419538085292486412882751533446545905548538352239395768097432836050065568477146666288290683768302057246113379230634446049944521417906690623968633812037213436957031005568876473750800596797067823907295140392491096243329669531450428392334591593182944768262588784839590187893983876469402222744597787053315011314697936423007651977536136329378892772663620322174727452035925437183435857686594410948155106616833172753724290597602301513885339847067995611197409520749787362436820581159212324186201620126495619788329459859150881177716018945715029488634407454766825460729560082478688441386888214677464370139135862289898452417125116334375532828753561530826987079702703711119097743191341734974825717315927249268578243751899948732050170777633650038388533192722723881315806399546659715399210488656048499572166368135503917722413559042113829849748730513710767152954959005485048315718571487897815573822537128217962753527598913418700788318203093964080069232088708174649728150838623561998782828620660037402162911736364879098886436606542066317539448051439043159283962279273053798968250471440206909547752090768979036352968470701855999706036013269326885177774743798781213649435771936645478435838845648897117683952618872223013620084422731415189374276341823909678273885201013980308683114161391946740844430481682598109937692463157168393659872319901428234339087400638675069029188542983356600549150420220138106353008445335962433969213318789632772151269079611313014270493867812750494570290323380759599924849898247739562034144029259931710556051923334168698139579194508812184118355571241698248949517656489164044259558909061385973390217628728670499119728205925497890239224458338819002754399341627559467499712337997287058324071033563537197315260474158340334581527260529882831648262410407335243418319930283774186932801658159936354385133231481544129078005605834646280204780463076417500041523808090141673736805349043320563800450877526739165858527755108069129065074277064267702438998617286106407943881795676858709985257253373329411874853082167872899998659291859125741013511921425689683919755604890548658386222471330329775475114454735446735282895732667173773881449733682056764934793447855942069256589531963413231998302755642083848732698630654142577098319583066246098690772402262303476794082683659730700351433597759529114686127260876052616757428961198552882754074681763319327197638737291039798132697892809984967708123873367548296083779836752197764886986125994117023360473260014709369059279432651740659082835849058108981934351325181536309948495476560884921155359034323324622944316492920258375393320029899452252893729015120674244926687902099746900545685352661093983718161546174190223727979358061917205228253004866059040586625216655228853427662245811451802171208361512117718395476361971869132880300465744916509482332248914922838319038206384469077766441322240386688923195531353224580176214667223936548696073314422373502349486275600139638920237545888482698080531190722007365272453956353425851034355711125123844032379938591338509817990764029818453619547505606222049752940842004315154065381626062266355760933017795748620049833738089803237267632600725146490693527974800032738869400981011661157858778480045790242690203393603153941713151358391054301337161027633960511950528745608512348143593922366134891329021492786189308554792006224146596320911614543612835658036947604438144973357261994932018399766835504572860260944950505500561524175345387732872032502263262719407330477118410552910486753357740222939287078030051284739274517484190236297057473888674450927202686836347306088637860240157408503575462960803056958978228110572677958186263985836451089085097630750980683860588335069889254955304787247033767681224182983469678600126968283320299978553256011130504187995583134449477689199529803568831553301941191268449354199908995394070554892778544774557356030747569022927695317140023470210094270710321322189775378218669476396247696321070579268387547952626241298849141437481716381950388671433104246256779504120843495238786051840450652511336427859111022586769574896038302073611707846941577180692085094857780440283220651311732129936458300303525361913268030088007667075991455519896169964628248128342236442623907219735667530526090971959638226908074954880436745945615494078289344829705041187227237420039919287368764869448707353377458128105358674338045446968378285517123787114342045866740804201415921685630576298809386320206620670763753186878820898844776365094073778242699884334860312734397439873255347286633864361031178173429316971156054031875249117019400831368691044903979782438741993304351174006456103579873474625824734910930117517208660600302085776731556522144969529244621856956268566072100822883734114652727361621337687539436980318805990214457944822789070361442815464925605150956321499838639553129642455540576083147514788401823292061866264017662114340291680361143243192635986540251643064601459907135170564533437416313099165727767165397321839059123518757633523644726448445701560065975222978608245348707126325482115321926848503649177715116187171378970320948848554711508235940820219995035806682677753356402622244112903905820588898708782729736921388764989962456544259296219127855115728518384562950248893229442859229804188233065392047251626989886386925667086343402335347147704251268418637468820004783754655645999937457658475976472653044688552712813894375028491577040587779071564575393802925826170900237340924935629017499946741279159385640206609917915503854412075464829095931581396456731982995376861790696748814379496607706633573960416770169998445650963165302006508395277104349074580370165505766149517195256686617444968864460619624747129220682699085662079828559250814285677629266001486646876609894741200852908680082347307265734453422570128647147310697088871545462130998095076142421514478357998646618021848796050513667372289181696439288415442866826167341503867849030703226613727920261190665983070869030449683150867141615565747111415160086041400749516746892868604669003297347076056690726214403585682624080728751613929201922912567261415502968496122847785222613534830365422061648784118861889682449260349869137753281061514589751945399296260709058941142266800719205409032189073413469988872034970756191687118124975024000340327978765924646567333041550701677670540587517664674456670819183601366778768561309914386281078285673634417759356330491340588122071442136896238504797260137765642537529283936778385638743425018234561167814842821914635691569329930740064038902449125955372897557709845888244549034784679989298383939841563415149348902424709560687348549180254370431461955560775509848013514607418164791050472804625408145317042862689171045674426181065744795209192145774910134705893426636087744242477554253308741502039093728137631470572676356580951654861928159084094192856149796484201137002891387398554127096967217714208751167199785150877335887743836409457130248621562044478033594648369675347767051638832102031896621120307757235971083612912604660361046623798252913739490591641367682410173466726598576731485554599185410740822232636098274297949950852807652993886467310746764875005539159836512359301414833553708993354312357142964091461135839975640362331686482430112056656541430210695883687148916821621030161478879936907445404638046192225605203187381945480662676296758070219545147926229629952748118037520493896786037911233676286677805105236863277409818730088223956172910709265924517626523828072281512396532730601899104519804160081416552113533062008271852090408156694849262203677824488065459396496066831970772108081988116860075139313378407449274860072353424909238539270051065441370621844422618335010226951012096974012744598757016475204520446473251588894030099225233821922394238399956331727299163946406767626539869730024401007326568804512004356690635026999808959825274892037962774472239102796780684779182822047380891640284514883899744662465452985899942991135736266775817583360702922954374839311922417445498651847343610350955379502106279028251913572345795470649496331273760562128998588567831516305818048106804605047488836203152056315711947998589417059274544680540713172760597996881634121046135312233740854977293990766030485009145647900330776702364930723234575833271062268884114789420897813678365570449846542358304597795082135284239638613817195581599202983850198246904021281164563046491950268699826841280360742812847415607011222879081406476490618760057146968616924176053767142956083580676892910723951032508871973267649089234188714543835752373009630126262207374904271467762886629397154905519614251957965375136080570335707661258029174931837950422131992460324467941531021055799222526935113308160859574138349775957402766191481123710484510444684707937668085507750860553731745234261340906240179188524799015097984143155361317864973566595076443493485435215487743808327351574585269484167468525900347998044002753039856253313123422955674680919635199039339661620443117615758546610384573125600720110137830069716093873921768636421489404943607028574070115254099981270165746562307268997272129437757249705761710650020598027108420234284447147658428700552760766964969232745429769687508982536557740844497914421611476164341934157766582699519589066237940652882425649116134185120705782297516607381473343932760425855279578354314842186830695479106285153190549746619738165073160116940003616794678383608384522301033742966144310712486273401772354137766202052013521386703737733514175627844834901497269183227762587332429946925498040357710199992828820176489294908428061146714681699663255336096441095489306486482135473396853037848421852586364961660705499195749022700671216984579864710265857990193366496707003709622208406727103956767658044817345779821475945707537544068854041829717121978169190414990277061488393823683963287849119199031654245705396871184389622100173101427693763627393183965825627400312304341908921710135457714373126219358507582576793418159171447885999580029121713019574767526967162728815849007106835930946821484969279220540249641387406742979197511529558686520141560400057110387222921100454851787333079340987235194859405332318646893151893521371142961980412283355231033141174805675836341993419729271074025785319241584891747401485484341670183343841292310361677716597711393870602340004434014494348235796999437981686318401794805878851475041702969811925198623032841621155544561898532431713387395945171678237995406231117919621663838059320019495134461763938610388599038821196163001887507551407794821043095318750265132570885418379634971704820488096643233639927111693187819976202427250145352477576612610342461302892944103021108668945087198352464030732394584137580466707661867878088739673693208560507937535377812516328032165839504772980481868176445601342804006548051860332498720287807248468791809409370869812890245564485537819362102484612999180245217693562929156893410132273535025574468859078104741556641755284142378656014181474290116975569076999642806220318389750806972050232751574077374500229381594991665372593746234078352763398371761407895995529947957377785270216173852568254723444972557496897143487108693091196888255005037189924339518093789830914344751847634455054735144192394120258856796564419177723822524552544347333114519266164087352616680026080994430651904767686588586939174607370486036892823819450084855518954252413093749511221522730283310098297960181797199047453122322094664340219086541076242129519533248023206186702023607951671432190689786450563484003572136973131850262151595342874763145029998258577232234816225083894444246142904558015588755031495579559191440283673363308264665485338341315584912372424089935245315839090018146981415823299727089152274513872639600053950970078348668010492167358518807454337409987856617072553163238464944011073638169304741363414068966907976869740458466234005351685141390360978573233149273417574638051206432541771200783568502920390088520095285813775859748554100596417609785140418777843527451151869530376004329190122533256172585485007673630049737219931426690594492041016184203700027970961006672107481294820424202515462121788109981688970833003753320029059143140634972120610374704717477198704639751442613906667670719419078843331429229164703921543300540226326798427259286071227612171695439769795602824481297275415024936769148020938998121574280985557283232145595970793453640400107610754563572750333291461874945455908882019918741836083769206683341443265006295879877914813437740476205430552387696997482879421721938919293202583152660034898599752298504521465302308264215728737056426207128979633601116629544307812938935985812628890271888139737537843747074069352157438215695779653073740766350048004273601470151237915133153631128428630779944934627784816068019093559520149678825678784625177446660189103343622664563394322996970357501145010763493931691330777576122187262136109592233300694372884255621331036125312122742502681163817395679339985551535118334416708560459737371314764055116734184634672850126040578959873977556802777590660220742829162535635054968827905075048416386571460979511683933360377860776222445818762277633045319803629743804276772121074733469070669931716785210744857216419874864505667226981637780690373513309998660826508091649380699869422107296099479322756842842916008816314005230316898029555795044353098864018681675813153025291765410179817284374154568339750262915510473945490687757498904606878059263637276704767117539434909456313171066580372584663246812968833814586036987307508434281266457800965529010995322139330113211773943865477337137698287793019045579317939273420492733375106701686345816592622309917602597247213119134891380063674048230755914978184560366359633262822397987530181265775729925664821664695314114557061058213209624231476746237402101495695575614755463650658095831507787545695230683273100162105561355675303033325572695407465625719300020047267425193818944908925248615335709526901133020018913598726145147912854194920613578728694856395527352151172880527535051136172821662362149943694784303380894109367635302551364026621712442080715283309106834808850569370414955695218384299792829525195224895157676837242401794336319423063917167063659659566879200556373240694981874053784054922529080685443713683309354879924694144428447541599253569906321145715595431431194074031775439728406965732065556764921319202102471462722379374069566197430277261924310002119694645075298249643615573350707642381520554886394462005418958958660577902121794294283415757230153721482573539006196743740489276643926401196247202310902878760712662928591705621275431271514293288135064814661377580920029755414086575185618503618439224934252419468991094922638833287499068466913837046537764960149380584562652716321034296194987673619025549274438582396194658014640657421540056865981928919664692770040791916228546474747435444246616015646193932160048001069259182281050697989974208037447715649374582613402562073805725356911479773152630742865268601026093495333183046721067632377638612169213299171772521218819180405079404387821329931164969430580955551333426752169726336463785747655497888041615687831719210625117164487059392243778045343036793303806125168684217570317702028611323163530077462675281767857245516921956227127396423983686019525987886703408070208579617650939496068417017411932613237458777442227643478664556539172035968421616379387422987608270157334920863916281840676274156853463897862666937891245752644439492263105895758375650919771412135726712416016632214276930871130154116043028426959733587045710250852407550731210956922506561877730288221961211038416915937164822482230648483941947084070440414208854944920762851774420016851380030397944187226435599881691384942064916122575188554215681961416240024370242276780485591363812230349086615702549987603980502421167396184790439944944666776640048995164804844368822620225216081511392201824942183829075032689826359814032560523568262803250807901968865499109175089765731661939894238914783097261466237246535298979703891189735686812719505638477927747829208751678048774118270665422452176764395406774893002913543271206885891461165446045452856332626134876752281363677989921603373890373610863517131080725961908775951441198852377323546469913112398478942412974839094234527029367038301586550812474840674597815457758279432474458610193770194359374016082462783492505408377125156481305225894410411932400021376936795584858155660010713212151104083772193842742583041361626467480670276038782325761964612057508894398199673942923099430078822528029333325460273649078100485942307818033743234592707197236193414376657842122437526864920412123839854994161232780500704395759953290742878851482128096332874924718394207304166087128066602544335048882333575656949097834846050928696647097223313198344227604072402706352292416326680201591900641179985425365687349045194841818955999470462352209145622926600323218214753814802820341013314249179908694230110361487954349358807731541453148408605252056757496837095163870104686952222624280019828292307772994852280154697621654081751238120656592623999682929431205839947027295007704015485818642707425104379354201650091133603803343826273597172015053356048432175265252310395129551879241954394606476577906148174637414764156892186351813307719684082484733497478913304956541156063393015733221341398228231653993281651928747774475198784887415337352754739872224977354645808923174184742154430221883419178313326931642436471365017291238969583450488431699441641123170231500566669976890104056444319880291525944103404066180333377315896877152772847235711441899714644365599415193984474050403978064866318651837461576218696134725772966513960706547448143705421583975360748036466583177603274145152666986869867157053944397465671966909697704280504113385995183549041531602027611691894087801340696089795238459528385920391421502167431264421421796258244022003754625756286042249301657848819650766268953116698751166548066326473225777386299828239726880199833152698452835265824597008796511941671579965014820660077680839563755150022619662391170787471276586686713577130686562924325390412927571346749565653617871934591900970574088341846026863295698921136339750960860473455545866150690147563192950278666813688917904594270430570338722566595816267115322200074014631118816392891576213342096683246857221738334263579707122883572995283515250248137982287086110008657161336494995676486195053469657922513904933608757474720978631428640082558638069947118648659603197915717646699551536339240964846623400599955869651673811140766455967920817543192150213714407216319016745709167889076251387325687543715270980301197260256218529366937297655666967475516800301447781118120147041947568097180599498034334603598094220961527156317416947839147067901540674615148828343968543240464948282247769893275852137103017501173165983041132232124237338808869443197464017581812067826817980126084121695542384896392764384162201453229172314512553347200590719721256084804124009842346350201290588531161932775248139299833851612028670879361684269921975761742439523030724905351737499274893381350205297695617247616329267385016732467837078865987286339393406340314486613329803841431998363812845272795264062226250574565841324339900412139194959369397295565370233723724382873223919372803340274847489301404992850045063141719439553832778334522874415377814537035058467519869209274943908681283614778228014998662993094686805782616316323053024255109407240202702326835960975530900305665039682819039631523232011513939587623335910109678823458276428441169620872446089198567823579077078051938719390401230120548322253907381187289034739147908981637151420721523155577351401500246348004759997299217405961261067351453568227192065265123709512155410697452550795669113721760736585239752191409812217458049285717685867530275160311494928542817671080035576325070310836429378762346374085893162761946999290349777335449686882854403740313953639471339626764592762485110219709497697324323756359026121793624162365344735566258427224781631908607157968668097930147878825678885703740497555879014786416732894934810938962968794213777733780660368098379762410613347930574492714901419130273517279180391625452137077332330098891774660131301537741014224456220748134731170619489580582900919381806694403483548526422817403011359464103522534815027439737433882513960018985862595600489829929587473280679714656100067732407738317531996338898008753184780771573075384260512119745110766775627845093972738000628366851726080763168266727363359920306500903345436098244294340624579945069011545751875113708484236133272086812632985642899856044667160810949166979963595135489598591133508247889267792023643019624294091921142096144728564552472486347391479435580112044435084421381937313010329099863628315569173395706096365543123047435117455741898388641463433723194044442981057955413573040619875619585088379836215690137190681763180334451917661167380032668522903826474781682304329230411360108580549794168946231075691733857745044405144177227885335250122095768644934772346883437264916976515242045136020756734995394160914484144806943627561989505788770172649762464051736876992545907997838291602015695080288376667134005199179160197945582083291530088664268986141959622436993869190327076436723576443611353840215914380488749489486482978643917776522300783341062621539562314719106613161693941484260341695534287901430042376795163493962783853503503139273621986806225804033109604341036551165979155318721920547289604956186386924343989696289025386459041176557582339004844353796510874298389917822581632042124088998186814778369807812935793789783057732049620407475704449232144225560440999798360122780488342691356865383908595933339357631468698439894557135518621689629647601574237196656435993474765103894800941665008742279501102951569959133481938797297769551120768079564545309175793703865328237013035105962287191671469508790300430486486082144873226086938382883686420155557879416213835887123087410876385985098512063533793552732749945063334669025585829951159217820175062343260095777364655203642169863470364364673027155713992164801258740770790763024538051080062251914336008693635858362150927094326548205476530015689331080744970805459629462677702437006586986244089428287964442215521095490411547665756681920978406083272012224894995173811357258608455197660263740475919705300939661117795272666383455514204664324281991024197277011208019233089496920462762141243381001167639562840473934214650465290634847590455803326242651543704626998124981803474568281073972647977813598429211605938048993652212516773012477405038739338799214061514997299976199448104357379537828586722925264209563447975188880822457945537129830360447769826490396319200503839011155212414175718193761436566245098838827137634218257076645167976521426932054474760142402397996771848502397489950309277058605176269833603449758891790685788206006656569516643111594566343076341455446693092072339070715467373439989341673466124280949192939358742388218038138212190174224298058442426795631120706427878013257802490073819819134316744068062860230081171642215034831039993927675128433747164412714432785689705132358426400827926536595741711968198130683483932042347515541434922755412025260804777284360036126176932375189077365309382448662498628743876632467511098590976081737126981534599964989231895378301171249188054571621316821570607644006861901301694371428199138275820326608632103063039089387191472007148492547487918683351536582096033487268938305085825713091984218127458897714320824185972722137666404975034137466647793342034835073767297506018540837401243411081528835508102198682292780972352692056032228163556621486838065304229560531096848553146935564400513284594614209996303833139062062197985450359020791500951056890454689511002834664342060549450984368227793035470020931427063484840784838878909467168455925858867090133108583801657210544958246397164492713881604806063816789631162075114004635858153899326632260091720788397421623023986311494413900822240265022164376135129693147300314282246964842946819067547470867551248794750900135514792738947916126204890821659495111522871055793318899452320108617978273413472431052633869816334916356186400591056699887685953996410226044034947816235091946572489287770725814575576218944959343433232154126590346737239218795484411857403763769833913119196420122189308262197875060197483766095630222507647356410857461067995619519641965015758645608099464371513194315160475016436918615078314651284978021432759598447576419789839994857932969308621695264321104880199277541358328980910896935066051921270088186335079263220041958180735193648038181409013296089754207455547779678607406044593042303152623726491433234316773676505899665432778927306329310252342582643120793921427988584865334062893695728890839084710729841825521617395172680158493089592694845729131949986285339286301966784584982080106620893898783121858974005105891393791374620781760579016234370499478209212133231399476227159054946987961648113741060476542279967276281851793419344503382850445985002992691504358238349720591753419183375942235905681050009539230915827446249289161759557047846298518871282077537432192422842205426578720281385871841325763950139043188468326828307499705890703308889090181765188961795230045240255750468770394715005439464787007619280177042320953322111810059038067765668817610359322468391835651126019414208067702465619939606372804651914696897745593253808663054473740789639887915202272551503041694839616704788583196269889650318801581787349825463565689964456458709841229574534268617237451944970043321295625481240251601312202242060429439794734284788113315251586656032982578910010084961068745624736799357005259648091838781882102896598390184441253664537350852961238446945740040792366634626921599628758284059199007805837912920534255023414929904560095750550839752620035065283711681280428368624293489738448300375970753925425262451890918734174400328211706608311079216606694519596763278984493249196370421431913138297248428211527600136925679184927496576641431157019531934370823570875525249405574034098885387375733467355916286984880726644246319474330378248054018453383693250069041443663274095323746231520995228211404454902643936511912940128891664013191348328965000590084503980130687561375231674608912772653034787770736127682879496450056258162221679459839403917584220094670002329842488041243230457248920475351912742107293193453857007139553518368380203905760315676973488193185969546182981720494208735944816001364895013539510147609647446789674624269159005787409100946230603914705889712673872922239284611245166217497653740323563877771355367438254368060038761014778962351319732294678064217221907165908109870244414086670087967385453310925073916379772330089628437144953679952138444533181219645646620569671167055649431643129142877907965694817020845277949418430201845306807799025240971564244883188320056411605063713916515591434695052324252867192617145811611967198662689848594465373580495406379822143766007006705978914928534284986932606646844786972130600253562848532565233090834195877864596681034650241994834460056527016548774419744700529825058500586574712607797199200765461690076068749147365153033853289057911694018047634134541080750344771112146634469920559186375790147035614506492767362435570909273183715039612857825781866018801868638388391548942774429657103183145285631427973965184348796410736960518284082433642746116811644638286764219427200841721849286962804081908040825480202236711411443821378244403167099338992135627594054539600907618062105486496043888492226679185530070693170914894866016577412322270576257936754192052942926577831706362279395095341975071120650239712305768920450210411896373892811423578888422366281483026574008125806498321524561594104966543527401072888079386675101532501198195013156314457437815279575538166997177700632581753620218800963728178286869594195050117932575869248432485927068031517452447931423912603282433008039870938880058102532187787071082506790230330174029128191584507949760751680350161219705786261750610868978935007099629175486602817614386705919315958656975295861121806212783913875054542060213193577941377332740623337531624667510433480285287267039533870699173798243791218987066814961354536362126638237274577918942619094598386496525232910376270099123766484308396038378591902977694387718771597393754130719806895393168799540562837809262976275260693590522414448258336101962544399298326661632999162532434858712285486206724687712927990794341315610953084654378779873716680984707478238327179609465222697813041140830929704463265171970199722149804992031995926938016253212574430765151140225855850645773507811366211784812676742753198000582105392862478831109820710978009212108505779607152059101197142207134753227523206076584917277618175179765052030374101180914328732243437588992755672346989238924124824867990657459175389490098206309225693450220523145478402362278540390821671610749349258720585994695669735048358199670180917365611797635735316274167811969730845550045983684534060958059751432748257768121860568476167480348450796404562832215986638454503034955265650643770581409505835563098063903221582357077621124466988422478768954346091820952095897451934270660196042384735369182786301751771997166561549286177644961164508917946673748579120831054266637844023426013529206571723665127730170795699609232420381949804568480057845781718577075557091219219140307404806792369493530549949567726403157648213301977673911294427782765839765956160930232198103524184577779309217981251186297066602844854669043695649998484045568493092129998433424490336268019064544039016091815910113773434555102161564153311201987153745219199134645701396781263635301194675389087435818810883785642625958776825823413951151814845170937001405125288432588160861122047443392464023178981772807771584426957260413424670815220581191220620744077399596716720816564935191292513164396993674447860682515510714473179573930104315140925040376222655985224104866068769286440606290084388509174057143523303385041576525457015415148778762062972123041757019636393120652229767190887345036981553916028894271296843146386908045930693108108711345494381239545772457482120361721735247983252498463355853076947647303165845896722326409914585472991600438390377733759043564428904918468481487675514591089966708771417390176162410731093109212447261270805631945102723882563281846955415802925014714985504230432269140887859583981169019710292122534147589766114634779692012060546387431294288824805683222430547014820873938125463117278195442902044781983131001565403891461155306521960694798296806419316736602500769549501945674712769985615406339302556879573866311131903548869328753995502588369797035995651765467680121551173465372381279445736759235636157051794805645961354795743857983464015367179036058699270039786158690230414383101882916486058862139857794303325378053357710129658049992802546736451083784435658805406910484087084586271146479567801975378484004964601783433384496353758121709260672846554637669955210497272400296514965974453966228707740232475949782109538463495951750950135538624746584027622706083836747506591831229260499593854296118756453882714410556298529007111123479172739548098591110312565847397723302685609596673395758729901034125904845435235906582957222893287510713759130830079349200977107626824267578496791317531506564761949934741489300035925885698506162705433697110414676628937005198379762873801328514620090613553953717476364156524737671360646235841128091214117383484503163599621243495484413561151769255590269163215683907401663163918282762554147837776386769448171457325867762828635272548119306366433593943742149028987418949489513914298132529124793835516150160273501521720447751394602254919457884910914553436026833985013565825401421643863324149015773286485835799590288543933926723713184113332450198643645678709847317423190231226603912720011043496541633411649950824749607944916634639220051060685248139668936484208267013468755874153589068210788406394954080229842940662978453281664733852857599320512324088381924606065828861848191516146776036773320538764793081520388681602023980776356681669282275675535604409721234445048169829533959590617168870494406763339753309908664549399018561463658807697612988956360732613241106239147153322961725994758977549519664123707074265799992123395528019108755718190639391246384353357814894550249510160507325645451662087521232139768961076351583044463171517394670056983625071304953805777442794403287279577892010806359558573488506378961398690378303032315252651591165702005232346745150084756021110767215942809779755550847915200821581643449086790175495072705533641220610536088474266441855611522210057650312543679379833291771572087142435610557781247352852395476333473615652090274369201145180135811500496041599294110248313062727589421881363575277694703958353862676920480303817977913984898451689598209869059071442041330560298704136448321499301279925068883547049734294771028915997826414846824696917537815512262981608629795788864706722294192746265288024274085315099137730395862919268746162447935702365061984039840900388109609686656387865589396086078206786311818108743493082895746671884521361612926779911811483540183336311319925923255849219860339653936949671722042882587710673439028574428318326806740685506531642037250621581754559731783849587930529073056151222022296875772558782774963286712760819761330174066608043987532035895176713612489157289055341561377409746409844995924320634206313178453940516496261728746323687381633042936069839914957442112290600607214131442235954775618510175197178584960136967252075883431991787321795747423908959710620860965443812630499981689962199143193310095098492315192723566061393305497330218301585827591739550727656111580232007445850951083728516206042345944641626354774057012736002205672952885833874796894404352528723676529561756065276354457653642674512583014134888837043630213093835190889655183359834844479800879296446719167072338872219518495384192017899027155240217169687093678025394308714506401502109683116536201367042105983938914683497018407073286587180249808553186085370841286893585162807058375295024150725975265912115468693284290480008563130298069322208088086561573424385490063424694221884993460690841616401164150157093398959657604906909692427637504499392140508799436678774862105362763403807730159041377823062682984431249710852447432297578242956083165910294837556031240224788252228100627084114762921572257743827982330555957263549887550211734383479609213656619181151067896792149355644440873572250169212070403800858567807167486277383498069646740350271522337072403491087954448693399925214215836094377052157580952195458160066827891311325711969489404937261235478991175512904891380960015020409682790340357699346300079515487971720663976183597366294454463882020021965052074989629233981576156035144669705000042316765815456145045195168490557056557579132702700001829594020090787022837006761656172403816597735768684833300216469137190466641185744717180936033949526711068696759082289505752584173936472684141965161716658376934301138639209685201600487304991610897258275609399910823039853571746699797900069342976499847213045519514533631881062140666284976380947659607406667008955563276393998387418644083223665129530539655447503011068675729116800695404364141734813604354010931038652593677199828311503250422458275220200530938115758562186034583364636828518602810555445433547742499824498177406934382848475561561603930570347587589683820351432088625781913528105497260328360454062148633857464034917936854275443323894791901836691806654781289399221057653873719162492501873473925297764804593723933172748080284683417170330145934777182751272537750377713427025965649451297601544754089789830237720509446971975056084016844673605025554615615856719806492704703956796865594253547496045599343899778226927398650351239662679709540970226997306344080948600668440137812329007551042648817174476974279594809471078572088081505879476894573981909486890719122724634954423472224846406102522247981180499415739497734142672644359708598390518569184102847961429084328174074365918590744423702872278044061680181557170542234103435675111756099674531905758188390396928487873804449882017296778700319644551026624172650769433095008810117643712058102676927019038479065710042911461049768267948414522796137722155520228516304774481826777825984064014786288022090680001321270417289703086064992320611179715947674873122923846781512440126822560926491303527858302940478287483882254794814948215185850649535811600306086407809886179346573572042140162679151024268074299471071604211124397554634970721469872139584405192342943067298998901173218210663457917207892687633972670289788590797475947596876939302471984262972903611199541719890571689800866507743938163938162723721726031349944508113624328285336190399639429982274363001043532055905914286084550986960672496162650442191224228008961492260599232878050620799362982862191283868254726310076733680792268798573140437143836815363195286420517804204042441726502140229648503324854118975640813712734561536931049728151733973654360214912316789372603898581402712639256473702103372597662234750930335714316030355591666307288718870586251175865056351364026333050278659357886058984044533429604093969288723587269982996565707838638554716854294112036222057701619523156471595811391105275085968583368711266068836745233755074037925438598234985479632886009724150378062408146121831968762131870356717600228422169612447142966146510709452576570672632880802178400552990237722460399966774478681493218123007293275971216598710737584634688665626279629283942075322297929042216189136473711950537751775037008113384238934170511764948097307097866329058769990169702283659185713046212417004928573608742241360057266882472404535251399278009861579658099656204980339436866159397735060326718710753573984729586247878470880425230867769679383510329142451479468535224372319531065816083365116688956449747244237538120653737801025687634808778726816141177318971646810360127742617410518237762626387571260388745039462886565857361427553511606449264870363803510975173006214380358023850332464232219772731390215290692453446136103874054832220351829974306726637382813350043988803174992124258167614701173371707063235201453114909709252785389118382560357701457793659089021057488385797643680703109469034761832716443632249359770771662704099245148332541148821683639117275953161451875137408037964226410845800142048872772808948876051487654620517774765251951447221879237680656386720272755255370216530594400433756023622441428644375112964914657352570316996721921261422869349014779434849170793790115206369075160353877525148839372277194826158631538806876892331235865063024507640449817502436448665712245425379040362093830004540524252998781230952319143017744939760813815310602112882894691227792980900637810635995992533395135954447453631182602567330735784865304110422994150358292783424482877111991544909399362089338901815674212548148738927952619319680973408092393993556873758999313922654185550745593606160605050508127511070623370710812957762270398288128835683515234764894793188064659629954278704198453959356752140655474148006859989072774365620409257786714759930237292543635284134220540472155770620055481274584180327908102074354417681886650150644706633426360845321116367455291678272531632819678368195597233698906066154312875848250602623903916762418887658406030661635523780013552809178916619857466326194625147871514013193709095613812378386606110417935199957705260399452214992453812161863957682820041195852382622785706767273959140545645785890294988204870860109221645686136301551523369318066086905459546787007526024091166847899490698782560410537099145855837100628325463989036252912811556142374736170145959140105086146477280269000620902460782511336819001563557073765848949741507384752149103009905949422765518505924912991815631020300038384595349015359543439142334952102923965432774443030952994980886035005446743574107949126457281543206105051289194397679614724196227805290507865368133547738449676723397456488841183463879977933891866892107608504408068074750074872880075641322598786459090940422163061337143124217341727027243111893655468530915656446941003322381581403273572722119268246377484607922455955215322321474598379853339128085261655999448174561333889721256253556368643594544889655106748388913174818247303499974612257808362296114753939622671986292040644394474964487138887722455503255250132524161275729222457260884587659668403186824574283546533463637602167079124444913312870987132964883790947135171433581634250267220349517974523372307556743078441991516594162252858112841510249781932109881440434009814682107775298373802809448998150802155866868459350274673845339407165978945437727380038217065047484946759841156190768839475879233414184157779379911335806400669140176063184567147851020691294057622827913129186014627961473176587815806504629818834562985163251051968730319237197611076806143842550709037573345797896958603084884008286588920871115024581010089048480743330488284629520210804745786939928887720836511695139526396088957832879043235731139019277858709058496656397495031804935444810271408173609641721137703766113448895926361271782448308652653858643454742416285355794564805377485223761539253414157188350551237692175763353294171718528129472827928956746549396382678494546408168483374922927335026950369410995274816060682461571280392081644810015855889913887567629662431936056000105266882925984554452845901131849134335062266036786613982442944183806590865179510370787643741124392580481337845012662337709587327721189784669610257860388805912944552504612204120486186627393926765330364445725035117054095433240537335856165693037309701822649686901075905580523091745813229323495724212148102685505948707158179167991897403085797833781360952550971944571703462406781482294483571641978526966663785630507256463366215383666592645051683916009691163008452760248643761445516701721845058882512211318168982168476702318237406142882242763104775687166339820322272635638469668522074317227628613589209390289849462091295645642579582621764639045546173829060504827506642691153453762213697817391632764778787909782566552616295615711109135017436980223023280591364303252376562575460590679392177996548774038081640683012851327224334983228241604972974607995104501047023178249381732961660950140965495292507954634823517124574394437560423605945658640918972660440289958693060247779441973680988329220865839996922947394453246463589546482828943777157114584211408963867294251249075466808262589676877376600644808842623702183846855583485224556974171239038812194128093237705481716001880083542965154693638950361657728214321229425770745685830812493451417491977525960263164357291833325435838800949210484058435468487469148657149994061073141017538699721676768696157841542206070820430141531692795037072481630882097691833195249413545929733987525739705167819703651660344273046176349813479429917949102268583152363304501753478756751187340911294672578089724806660123500999626423907401821504007517986511237241105894786886862741383828169281676515089496086703953910003048641269322172560101737731130997882255892127638903468046588436386036525375048077629630738685676147908984089305186752972519556425435477062275454258021953392852500143117560049840166713875048061056521129926983691523309066828913426770654357284627119792083102615147022043481958019358306169345550724285319669375035338792077911113461816669700822506419743722073465686374568156842520545645657208824909746426526467745541473777726900796522831180912683218537436991340367626882594751717743079035524307609712920003341671873623689549388597366880667697425098980064268882464161543625424683894675300308097946582380370099617803055908881827129747225978276491766801202771989597229916183086424088023707283787744839160165265348289789882383450213619701072053365097867543934223932303421690734064190968200097658790488059591186430627817779200722289367756983704788292794526293851674633945782377924042012664222907508179638265290232858946718978410862697060998876734733214591223373074314553332213900231960771793548069127466417161754387805764261259562410839050003269664741513843602037044481550193062877324170143123356308022415362295694617097442771178116055923514529860606228765637618962779620107360787547420614298857836377586368263681481307938659702386915980694226940817077333009454419375124661957128045859162807442510407749992886056877557732050771686111151793100676817130390033451690246158905671753963312236559676913799542996678602320611287818251232775064115480343050127746871439792443184154707906822826239139284678096931117582417670312086577757559213519347848501069375177542579218245406212984186835088604420375650476300586458718422019229779206957046996333396665580076749632069944943670110739967561346809100731447687857819009351133824646239709257367555192568391319531908976299206101007765158709898800284394739466252497053121519550881198534208502342110113497322173696046610891516823923236828051058929003534204557405813380307928396242497251722402002216290899219257508038740398181068604595815806557305895802754069775926647794117071519900274846151562138063152834080891673655146670539824871100265516280673580426112469808284355066710167361087706978431715729944710503174452554122698806142727596708008946313249756648804317975349584461473276340542044532397909005544198420179359034798658925718621573964133481203276876774589120026628121880238004125536888466842368229784295234949407409064466786748663907515161141647318415246067942548663072584992388704956339589200220757085577684677313861946331238746087070023775791141418434810327556600557378790059220055235236626882663059631912379276308206231289677206900708535969649277977741684948238484199458489864519137998333590185734050719906673293230879158575159022346151920376312667784753160823132166019833315271773990039828622662131155913865685849943696091654209534586368681464527329105789803150849047939894812810291305896320722837420967139274149176821100413907130094797248003531149416110429790200216088388056506377806670491959668355012640835107775050369329963307174974230640832332949568970856981947980383548194433648275125473376190081405940953604544810270447817283890009926251935234885294610989574098791049689905666372394875296575637999195988228451735645575541241778805271933426014473139838067531470909655417207633040965916796773607832898575629043332550961624048496145963554983992921889862595848325424577574324524615556649491366311427921933635049463800618219572472949911503371783328872399584126015652721008018412270935449683241465396599596549678726773705076782312288272770895256466553838034229781924596666210586652599577114063020258026922804400091398504635851557832292252585277652315490565163361142486232545818975676375527589239054800586442537448104039461208684891652432306162739192647411234482536455475203101890559764705850473463753388620047825580181185380001766518302970372938755659026272244351017429320305664190250830807304589152684759917721066122012433749568353585083539626270937565611369468867060595936690028014212259999879263820634858076308144470797967680289855773305766648941346592271054091432150909323867795428728635478608152924903149837640289417737776852224257750954356521846625980084983154511611384577186679473161199114230830366202222170435612183542068976246160902688873666251296198388601114292283348436031220471724046102078778839286806717045023955736501965014283065539158285630777054536672051375881665539656165197929959159060109294064742096242786450225942455789583681384312752270360401161157351867513238016957642654728664222051561486777380883016580404829231975221213941792473488390528486885334292744014585748914100173095354340309826324519840371845727992284282254965613834193795844637849559074598342281189744234258973896182706339717422108131735085553299579948300751735213109684874939102352463579311307720858317924270831599947396325758418113373702654277795909911667067972957232728041361795537844390200377593035953187711073820592942434682518866143675223922454343538840889391171774765008803857511861174124860348394075538107807118110650585947680778959983338277903412452058676156376763560041545252657836062831190822004279051929372406477426857113342667045938597488068439452390664211173360274885363371861166955230967055281113068916762393302277463197455676427927397791258375460284278104271481283598777869317815893999895989448665074745988007047418376138400087308294285304361167874713384012428606941254150345509146678681464462725447121104345729704248592056245757443851274594114281912265492792925969874123710499297548335724058418730119330074829215278021195831360448906050685458987357838239471947753289991135026115812065525256948885050672139807641636212072924216624362013533626220104447815689618060895253516274678816105879249233110964442268754717915101553000040409283502095582234656565457222069336526791230674291224439263296853960744617537310789499135258211023225710212335228939049531533387916456088335532232960165566785281220489260675826674649839253650116354568645240638110115797711918192130910462962538252685379977897267639851080541206254595418620878706690122443950965169750878503924239803254483226444675186870376089238985069543209921062179623032348471061251431109045483871738836180617710300160492820421248874129877630896332711527441923816922347961932771425035900454731869144336900574102855319739233207217960344413672775286971578333373014833320112700146814361438408366585236438198007313637867128486281680604584381037884711710634476070876742184783199791551719654164772156194137224344005023796510829869898091596392230211362271724016240655075916224138716791817077409430926038540631292842742459108830855472001288352253846914930186294684827488616146796816300063299776366857481474486118435054464600034181253604719898923730013422487134843522699488825379277807049372105624920079850319664612018180872502315489994362682778164127044866932738314427537809819221810617714126727415110428762897905850634776891849313357524493642442892056838227988006392479667047342784282918729885348162836537955799090467421253189103654904021932218306971785997186537809325842510634817907113405787839159969470997750980637695269453523975708017873172312877752693264036580049879251014206078571225715926037570654873834926743928307224493382153650859152273530343576501952480691540269531651600287977806703246791338996837019408303524005895396134592536976398251766057948917165925288054597210859256803547403034693547302346619448305606865141819202103636372919862287525637247146420015031363986826222111755886603190898552862904156750260458738388501381197988064773703405370476848759482264926607052702053132532385674202921565487772336730784273291135974176491794243035042495159947455305105960981577737932071326586586755292554592425883294266403297902495772453501973710010096417306112059665138406374463868648003486953261637292729914428451126506926138811494996577681569267181508922627939591414925461778617327426904388997310189172112723911490140335277542140489949478420240470903866475513614556055832126596276364805335805845528426813628326480245105955347106141934475065429574395391186920081811348601086757549887768793447932694431014889334462150643059686946314312777153562020195695419847011804702573413772395374353974807535013237768466012973603211265638169827057409120643384159551184046993296013146212503944315622232827182025280435353805396044504236956759321970343244718643371569306265274574393797234519360939009264678815500059837609896617465039830561335178874371829202760725609214732103391120221577894602709459849557059955833379867539643978928048805460238866368824565863362006863876564904712162322301735152892960186732937437014396173057062597523559650195950435993553737979869413081664667570517112684871021600463113956304280963032567852764418051598136387318903557200137527976159451610359997748385972326434745271368311522376717096939085738588817876318040389598964229145427755255436552854056496215005824747249983810764327271607915953590986731662601049591531728486415238546330950674883610770866028612347394550818971960141528151685679294185106010152480883379744774078495380378096725443693134896346837340660201900192516704615406274682686625862757639393721883234045564488706143741844024355777798007698440830141748447426311618274095734721701734000351870058237995638781647491250181001648732369097275271980322762141570429637800358996870756720735298661646590732917067587788529988861424793701133514320250601096153436996224954329529176377978918897843076494411092721270141415540977939599647573339665909048536109757047517705195415559890462136622324792914579108340532899182279636845057964273867525034373371411211725644750728853295894357180278543195304963087505074687747728842317855285711897914933889632733488296894079572322997189624217968460528439841390196202373983728386801332512181529441142749425104746197729433097529158243375392344381819187303036423368271637491112429955798641304009082923679209900530696082444164044807700864769697010281519967309916143764366624011431732971266134357397357615443886944853775851118085483281759391246428749792652104958621886741562143645279353802055628449860953822455996468328255593902556333630903628368225232839319773907227125841751677601341928744057635778855316759983701243320721172846727657699769735724838545275414261444209351981548002024249067700297846032287130391753593504541361730569603341183981724564773587575312551020815211739289478198282848810311931537261754336073437574186993275914104061040710370227331981400225949259337706426011722991650737415962035230538893860241013264169443685690651777824804505051223124263644286006794523758171021467083767627026292443274798701608519630458849549983361721342107748150316985348641203447008261671647168310413161649022798791347226625904009690617446537256872448534789176378554927743678270370351761678028211866216410884151462070328728398239147490325587224879077590617355820969603446344753826495755060820021805313679184617319804428539529523049046686814964437583809617934437276257252563539835419619141429297095043122657498994217704500224375588456753870282270728632580447119729142370112940385992845757753140401461973507197541259597197458085724494229995575119775118279716242824607426335966066337806863786002287732509918350852978703032019978794275649488500320980756038685059518673486930545052878769636225992752317821763091833369128161487357118086062166714232529118838552686582915402919039497811296238030478468242246605040475391221267088746000143511848561205482870975052011765277815133777051294115577719089128176626793042974891153424009038288994695342437602586001326022243737134573232235365876724922072588822513638361150823989317307639070891668390574100853330730403507234484440008322472292509053656194054864136061290800016244243160406979780819147397766500788645927784151124812994783835159856953908238616067809333923319448427582232694620380775923447364465953094202859212696724130116970998707932828798526963263855200504058557567018645151408107286491627499231122691073636287721298104787032806674282059544998844579241091508903648492245438309574324301044049457470902451664136565578441417396928405864788982621827673539460787137665722213326032632821047095019952049938040495777969200716380434534188521265491059932070925565392791535607279452093779040147993758708819616570352535066395311552093688280156491853729072714957856466160096164827298102589037675029106991841346554929459495599638269976820801757437043438482115170022847416795258590440169881213673434286906814908327956297554845787181104602412622071973341840680316749555398623354281892077816611468302220133777531873752462427037055217312367915489608979318727822744846107390715302391487486025090059960788012693676033971428468749974710272739289063834869176973111094590622595409494940525399249914201232247571906400259661112525095080180880920539708419919701354449862155781631242003579177284130018348711972937555707019931396971810661373042772866756801256950380988981731186215611563500232949299871446331933328444676406694682220471002442963885908164684226681262652689775489465556258422820245958900883916232470017515173999921608751229535942152710105279269481266423825457555568272397491813430430894799655146115413583154442310060895858884217876165383237817085983608057662526747422082213061971379522043409513939811279537811400522709651960164074285308959857543021062455263044061351822544623072217150171929824249996974556028466024946434804294713681371496635977754888416580431774449547537233457509579964732604399598955915273278558836419728247593007974420217212317510609341606811716470088167447578657358259200930763454590112528232089989503450953636144808345120858711389021441305784112877562662747059076479439955324694738982711324428993119129002485326285331052579922782328556776658885171538909499994564645033409396616111097090839538422075794752830776092687427874345370098287507983395114288018817547574962894216911254979231696823004529553050372021700676946790409112803558178708042875167145873764520789137429497005979822236809524678557674686778695062895585217970942042566778008830483464018770967250256647438676410121812747244178582868121651557065048286998785234445077147091121774037284731733199300612082838882218837857353630482289448158093683106698851745019734887903004813094174323841180781099890017586830789074795017349881056192578037388401698077360143878978624543246925799865502321503908386610773114694698662060357902249173134735998961457971944750490394069128449391442148574419179607236413940293786926611426564377701345125576330276616742085196114150486716399703918184980094308551157106140270498052047692855638351335796269856934859666656835145731259180590860114490304066825528300318773823477586769006901970903956705949000330288235802214302516751283668145996690090486855792071619471208065562463450896542137204978236672026091536668611127662802134645571222472206180817638474170988839032114677060618602901969948469213107107164215145553791354683036007271591235256267298139783959912437292887921320223982533536633764932522315043159339259642152016487418934177673029332124191424305329829095051056067079616095940497075399904079706633869054441010628315835558902314216091049888022438761265589639695646913786740511440475315608344730871052259319491162709983124889887896077348310399635682188138127174081699221932011292627857782304986473525909558069341354275449670122239259940827769539185114081509591664563010836691767797938865196533056182350284365123184797606198524046068763612126681879339380301611123849792204168536590442303968978720302325281731815413005462719709799942222804756321484784436959012999929733935148620190530496867766810984332917148089741518462717037798873782369247826913163179202916747560690188075999518881751722513902771547880147258107543162328020349880891825038128977088664204730229726069906579732736022318931613799707619053186712580796286849682200746571368382709566099266550746588883409537003885853651476497225479043449493511153524078623501227702826640222248773688865802113155643030699208192318346738765007668464799609726762927248433639082161638911260268621903674747579232146270559462142171219814370602679218006318532560849831834949496759266461642491038480446640659201001213945679788811423650554313485397022608012211474050320133237881334659172815784471627923711799323382902243837916261651844560475435300168144423022770924815590884925441769696184488951649051923548736966664761087934196963088164801193145436799673481501872081080126689486553483036104726171795156640545591898750129514259178522112903119527433209448587196464183578487217826770346133143791958736197139864811013562163984643650618893661279902375273080062108323173105758379777559831336471770361913448525895397684123648196583842839153319850795551198793595038518861024909367031196557384442328882065439874252822508677857114069905119338153300888400395113766564978966035408290690915103720417364424780153787028559584043838628176304739370346975176054868814081989058160974142999877891049408389615785850297117875662909766670633657973398246101085460773328611243350184701525116990436366923503077345974828784469539213772755240550034763760479354133726837045649447628723546450635677196369392323369032506511716528891762708604151406016070376018229524302347489805210852373699528649386043521977471887106723658525418218672543193255714607059972071894187282674716180135414830466468022546418233949915756612198243200664572465088447713428760086126071224790360123199297116253915143022265621748261680187163831145139400547227432928484998580967152386190936724546973394930159298307773899994466532949637418131925675168760563899917420042547706352740184638819614225217058658833431820100368173332341512065851247529487294775653852644059350841552977599499461982101567006266706520222082751443405528264020849449234513532077990232801245723054531166769108543288759294156796024648200277823774201060946592340187698470490982421839949159438951559057259206687686778611659391744626140806479988824261579688984718114658186104932890238287153324051931430365645010244097661154216582752947223473218788939996021935154030852731895517993512716565026079941789162341993399316918901305374274486165894101790340648450472956528725937276222541978622409354427549241093258988087983239190578788916964267931127563994907165376594790871052495183622830304771743864914791853363933570621544216815253372912589239949897936641965413679608991813680686387535999499422738440885014122510592417583381621752153928236123021844825799086884062287199822459653385032388261256101872307415219109798270034502509321547784055131779429241908618831588913651789914609564104788891993907347153355261791484538899207673295349098225575348898566154335824157916205868803394440489073884495191232070963715546981095232152705722231999855044840355425451685782504117668612647795770136294987180532392826520975437551309977074459178634375128509167283027382999907398526073961017819805203042162124498883570860556460980832847174835097066311364832717792427318893946506152502570739043939313366400689298193819950221868567834096650940596732988058679287528133196945695904285883588632240484503400099563873411317470834003232747730523853357975411387369674577613164290764023035123337186749350455783309319947813280891683139531057404351362711133578838505060057976789635210478992153124654114856768541465400404263417046205155881136035360643566503841940863997871449428593811760826968728574307260712654916417431539888657686244035965740517636820955579210470035205173911727096408334823804653082238765780081663407445243105225904741616567600562993739934035293754700193385920812049542278173393740549625376521394040648592016376791083180763193143935410483712268194370686883227927407064817280587112478421740553862079517810683216058832971611359696839531717696048081628599103697017230384834498086547293864745975837613638761293195864434052716441095667980496217126036284849741822199059140781299624433845996492212904428995701897272691386885490901140257466108827452282942131583817961526994111183447705457251283384495268375402423536717342631578503191548857689759650268373449845161712592640652011147372198352847394308406933570644489224782983867890672557252345787798290032274772909304471492987974772084342193311105079602636224580600473126195238353742515898785342033433985541943610210401003367709891851671946188296126154133383034231225347314004192149422171114377851614120538830615650118638367136451016490524989523312174194282772195322060075589257308907390131068548304039197618547017755518068391736076328927482987894973559733667256485885350988164216356588866240357343850435644899132905757369206259198085252319090258808214032145924284275397724863115782439469033286649706020569020815162760820895974219418241738505185910454969943975540101044273325451555376419657605798777755879587136723109592271040776850695772565070508533536610177063625014548941724180261727896683843696627526815859846191956115508936328763134341316522281650992777128740859564064672145121388236307109196191067433045280584089044304722732131179459358394535765643133391415629823374958220593596245443882618366438505815914280051239637774387303949521099901632623939927801456507125264756602792862795678433275633625176014313209548349285416183992102168718999862576626274926616524783222198702819340101264104281443910439782241076141258129110525176776166576567278173786840566574647232445827610169138476041982176552537752686615874354943894309711350924084863689625546702964332879981666229644157056372592277774516144178917368091199057286766772688560672203133076764921793000550338870439546892916277948402466037365184159020963174757502383516089354932502523504695851239192823939571800109138895114247255682193462724708380138526180384370351918092859764605562142164395758539569455106340272916213471240147751139903272100941364950243177936854461611877248423570839866793558713158102055067593857144319433468858942641938109698098592440130461207958535354238069406380718980022522529880311809928607289937924928245537037319283587035904533707175005813000210413593707268910170369945323690300482513276929995611991319859199511835177739537083622221607004969671766098251486315942127102063518096162516985182700785402719990519777698501923349969103720182754128677051725146832629313946442005281225149349967758899475003863223486974758460056318167558901103431504090790977262934883729833511492705200213411354563724500509282305617636205361028555705349580730589451883896507326692773059239269772273128985885206626547658022613774545423121664527881058614648401875027213855964357038501977660360538485868947537783926198540319348229333586765653649478898247857042009812312982586728692040782752787965728025052670290500660891311148379840261095232999294277332650579139682422817325671381887986048347517778133201715088807455632096530061360663616757199156878128238960462204851863645053947711130729186032044028126842887830241535329944736784754106631449219732346565907454158331068607500461701553217725934831337581089900247822494742255693630177177747464746044576300700414804905767349291079918756846176816374373770782722425786885245149132015401201881184576032527521712870837965748714190785544253323873612277959113473210176988398353612142020228083205645346954943429483109787808973537883920685466185064914016429169601200284400796847370697292002709167351433167314661633356732980893505018344848526137504794990835640500933159661112514132709523449102728222168053772297991338523307899120883771404068731106300833354652770509862529453789952858335890011654692050147604678698350950736612105859326285836590890353198353835516686651375396956756719133935448117685705559899357192626018223071609915700407946840209862585461307432387878285992549618448059447543610494990079632022803580099445321479465200714120973041544501297525730250684282461688189897771508035636717545652972922859961597857653849504640164312096035458177546201394670715139388516302543142597039196041761174539617776832290354773371797404911754391950940329802228839482177637982913229445147587930049740796690372761250469198589852861139682384270795890284358764845566573256975033544933659154487406288916040752816423453070897723544136050437184741850481094505075669003010375524108325183999165730681810817619628863129777343528450147767705279992399037514444886475489636666450582119108931039836902814037912831660263349389029823294321197528414117863715571643444852286186467071692529593484437431217268807036458960319980975372276462590609849214740498093268716110096515655054908091263323610966602303651499226490764114622060628093328204286984792199064109346480726532468493979521953606622739888833005829170867946941308327543973113617746018820343854447654087057746128593702363493037425988378931302793478194408478905353285047148439045107149474402338391592723409550583313808447004950542144012478603822490137129769205402691556488678157874664654465220084762450160707484003613643525117621971591868784681439345255748790554388600083967428219646711058020734636809722982760314495329195660462995259706530733188160813065974159602215808059262355093307281166166316080732036659809576462576979923131372305280453234650266537387685535085004717511454383262108496849538645498006355287406051678301185200090797399264369063146113415682239500267992442050049541866953899655385110212561563515600829356312667150278286005562995027229110479460898110873167440375847545861159439628365868865860247438293274747147709830511763540167385690268841799614252417618592124320082735203831202603577696074838526224803745506362657788436627619652533105937261347936710489906651056303404968748923051099241140213176763581490437142708423922696431032106775306946570297376158868344787017808008051164691975977100058525250417324441375098758733830953879227588974078617033377335873076775813679457752524530750280720702731429708629609146968480230000944788564721216913333109939528695359358309351352975720043045832960143640709514848209961160925940980578424873535322465890649482189062962878835293444448611561864774895950289467700821783337329305201060277310588584249593955702016008829902018538302136970208238970937220249195688379205017068656818829183837014932636119931849333946257740848409326054747114697946158450507705183533122625413179560406931321536436855516205230656739941226635444654841136597527098935082457664772254057720862624824688767631720822475232347968082869524806557612059068228301823843753770983134178166645640760150156309485374510157822656740007409063923892316068588241201748465328047441221710992132475562390735289587449904285417501424972111097457620500425593841231868582015317015935264334304591146078707728096698344156748522736539827185754378797916068159391193561306813357508634497117795564329096012653401787773500984797212895641810329493685547983380594416037150085803782697203707937064036737614285221868939906316725937053921683581116208772682568255798611362610469705739193999399852606117655303841560735204273359745936974972323251190563151022197140558069523525243560331127953608965599832884723048384599529506267517853069981779249588570255061759649998801054208305146728258719162305206536093242370146102722787756503983705504761710006332677267891166100123277196236730921980562071945929214935576245816493996248930908293336415454558654840500776776192540580530940897353927588818977975853669608311603976606773807125024455403834215002209545440808210175562956215945761405630778826225237047674038917272976910210379512886654610142384929028235345239008202282478131041897075010268980359346877872328828638871947294688685164866718825974616669458790348752385681413388735627204029000921177332242276615654567465240186286659856999531724769873925435820167898913836998703604764181025243986587986926047713628368488031805499710841895313221010565219942085948591355741987596985672801255896955896494254043017090262967582979701195167895256353266043944744784790277802817843760203587383339963870705201437115302536692770927559721174320283490701190999662690685738320584289348461083922154183402945577898491927772979313085049778679220311975159277002023381758605060701450574393034869025583915648646323146947917308566115220841614201866362199459254436484444546759147908237882430636510884837729246202051502402433038236568439866213584109755167160422743030335879504231268570634570309842267062922995077814837799271177499053528794205703274058890090921990769522638481471647559866013572332791218780713072222209253663472443027165997346219032000272402111247295344791613369665973455039249003195285603384549838620718230741065534359471388901163862577365061541388897641176174839441041456833981090634556196085433146152048176066804876937277280561045485800052318532321274565385020217290603148649993009144655292916693100118483457903292307245314093561079217684137641349891238958060153062336658790676990468979007208222297307245001094960154751794716847099347914597770549242610522294079807127112829503105797014555688574937741326140921981506815456597699460360243838927831396545837733127388871661577026562515444702297311680123154818329664137998516928314141383340988268995603538767278919038674848135293892521989394089397153362319029188338282540541997748256545504105860725303667373039642716199763790962469168455390164838781593298346260646341009541655388179055861778558268116032227771350620763954639960209600322909083624682770445083025222340919285282951448558591476397967817983321265181484138226967848416813702092733196726467584029694418239323853818431918519273166455590302582388675774432080405177853042454795078758161430961684325555789812838126301605414146420963828725132555660728910492349611751867406401211494653882294397917837618609500605394825278411215546520674228586224791718255636129776105572424829406984552159808517555677295911148150886267445612644184461775705992351956686647004418005599773765666364902258351946812530019789787933066900755757391254039422913191201147019780041905943843950743305313596380855876424300874801523627711229608915372949074455264506021817440525037488383238928755191790876106786821670306541809468384591562279801174142543065381163187829039790662798740863923460820259778865594882659628765129360401271540835021696894899985340302028925445301405997054603779810598922905125459910478919854122100775913491254327909770487507811268641912756149565779665336331900311530476261614277840902240107506014568912034884565671514120623974131678776212706015414327983050763805919599542126998361416689542962564883316093530483493604220278789996194310556681355895815282652892234679327524527648240645046757869756392707005954280358198539737968597047442293456095445020396526258383090670301851780503305056075224514809506255710846056584226709546552054964200167623404754258083015692833856277605228519624899379368663754584732117082151420233748324702527442304248717752562270866806576461115107480413342618119637757581644524210359650125999529497533953453673326782731032277309582151320600792857318825765029608543773493800793489515701124320945466566627051931936221115127342533956427816493232163627601491565015150840824819029363225780677764684509129741622867245142287039955945796389864567819814914264599046321905113076812844437755260172653413823322987657717441677440912748981229230770560270097141687177503827252446818806215365285195327329511418017907002443918378639638997557163639248298970544835926458082211227067734851766140476535587645110020049326336767316789334520774089800146776822996940709011399135050288322028738854229778134448767590532575013393197856272682168776021544067409488778124416290537661487573281918093861299337989253996006121967235480303179698496582843011901900595964233981143765232241675375425598076801423663849225100928305578182265327682442106805739361502563850565492684212910770907289388113804540726583134290925055271570140701794250612971057887229529122410664349192018825211308750477602971630274830189999938347698436533849732480425335143306844136838547038969749906159496239666049255898257284519723842158539569825076437772944431519240174688435377064843047335687389774905275375870736547020877516904812401804278918432452513027544951327797709655869870927908110705006818887547370503728119875752044590030003935736105190111648969024429035220016181125456592660512175237341564877269707580003793962117780098513751386546141427447226654490906189803325492843582016656136890772270928100742377320464925176252117791185567718565164009385338278973386120775804361945448862179913313946705540830892211857799947372000586783473358995204124430807210797209601570598150159071550834364103528949214870820879526840901739388619554650374970656379635931394937225215560222945404419271749859096806242839615600914238804488383765297753476163400089206165726897761798209686115727823984052907607580680772220449320940293324259049406771339475824078140667430567712091727605753894583889381342419617257452980646753827857169669555833524614917368741615699504385879201613058832832055604271213079813473578037732591949549183433547991223867329949347664887289732079718792725674969770159928510075236526429916133566408542896756060016889421664114760012953860417264629470710166669332739073931339792067203250166578235153127122080821436810872297983193421116129572656221660833737644270519526445018938203735743674881564899134775773080336503863849504634196319927993727932362994501749923545694376330219793980766780809807664917356874642812065909500136240297818880484140874452392420006566429855367243272384209969371985297385252857181650331126834615686521220547424141745557151874570059475708363492407462442467032657226166287007589967782984806077544342130760470651247148376953773631507567064660493085853792858420320456717941530136250608475348530059991424069018016677551209679403194109250201853432383352342466260790446591957348622654856781232351313773253238779812308092128764595751450373051367889325422913439070533226885721947152615167014626376617605289335620746845556743435797492525977430949764339466222939992940409583622559981808877222217920051068466789204912898751152349673729920333421024491043563986330801399088721395392389822145855772554838831279049477053710363413481921080601616256731927231786577807817123131873175027402673648985662004917820375084153934768575832255729460966365948669267513772720621617565636939947569822646981110178134990161768771216355721168737930662234519124067071759068839036693995296777617417539280037890271945850057905370338731246356730928167565770212005640499226007702435957220622107068664660520197049712125282060880574088979800231936628514772328204452148402047988891398465224834013504363283095509252980848498749366801808756065003391638639979695050632656417056670416567723624038331355525405814467375521049870240054577408116794494416601259193347582072930915185581662160067760481224023591960396812938295198635433775411565626795301975578927438571082967856517426358816269812950695372761405640609907954772419316380745683065593986625867779156873311295774450904761134503557431369169103852620857053643308461363647899710444372027119820105933181364043941686336972367671735055316720561720884606689387481151832757279592183588767443305384219704396153889241189841271004531133599192085514850389916869711678174495281220377005771550030490331685071508132970722569410585064830572664537838893781437139621984259242956171471506831635154714082070954364194511212284429238966692221373655572111050979042142843663422738436851881102533774270144500077628514300146994073754170623843205117248738850940978560635641638368873852187390197830082935725424264486346419610721122626349543922773695206972416978237596664733201295510674071283114095669735333758437379598144539418121354084841448705594298089734869430538156497379488651391542546129722134243939578231810994696128263919158064959513406617298905705458360811049396889743766667948062191307225988262546083951175996154049710337160452893863064722074935043731688025249776857134896143605934679649924170446629816267989119301349658070116028064293531460779981166413557420234368646991675820095566900664294385378162022264825244431356986817712637513217220880451285127765968724140027490883559495159862423335996136743384675842420319261146805459016727329881323445722262757997005937150374668306945315883228032939708740154122856475537546934667665971922201859008886332030645924155504706172799527832558523130372948764888680652495129927116512522303380086005161190594867688949305971365949651698134646891518338778513072098272609752089582031722080082893416080372511585457107191088989119427392517488562240737217671235020046331432465752982331395757010302825777539148318311370780463010521836499922969469444545558653686809292126302928710825550677664909247931881803434889494167219850722086890838196265575601647743164143286645813837639791625258005007899108603088397569096899468404562925047430165327491074070719332463626041882969582973971971605970022234333897471218664394956288582632659793826876150327175914532512911782626237954913623724860221598564803636520538113664439748047467032566211879549259281338155240797999095394564000245331050187075272656361290788183013230089724310200816041423473082610310537995517815473074829724407841766557108143629433849793814180057553629465766466053559240370136223860654607192543987796177133703625579284012261485342583780117467754560237382951407895901935413712063932220917839391690433149165203876884092004371253593282810481502026446868460618235605811826958372921689538581111857749415027770177234823400157836365123808003879547527416151842309760072665182744715848839066280758395597724800677408243546744629458676057887017093425253079413871761301268915299827546482873185340988710746757605434946045129069705419588893489106636700340430707985461709450092799486677244718094737623284677096627480068386112874977727541806865986927225009607808448072910802414842818047004245121068039670380924552888020443231703885610774740183358272929181107009764473728023821590338715684030286495129117744412201264528761370818856505528636646795227762155008016539597949829766667539080770583502044230284616734506335472819699883423344214344607988587078886931874601462396751602404261686402389370133526871089038615657538433316227106082695812141450190930576466740280006093825894302070703522462374060975730702934380177539669461499926281546824496344013828712503777529977485185305408115910630244225058123182204547982485052128918579093932672872712799872498598402855952069746738438997249200406701528496235268532479566883663487955719948786910296210116078415676512812959060132042381850517561447588617002928672735974591360004405472076868738017134761486528290611735494529344504637012693440668145931100912651217413748942938630344383129956678711214405593547770615034718458454579007347479573133776841316950959606895081825174171465008135453740914594819527771419305581721233794584561610497167690937381657908113711916391617596876201730778313620578770850076994089833296217812979607653639114899688512099865229418717602679547033899896890463951701458290819639273619880214778954221237090811237288583938508133990660428281980439701927250334796392808653237615791120487740374919868711965350833659688280949690007916210263326952404511009505688898149962054100793411394350808910465282073063492508443428160296679053734827201067422201128095846973955869713606557063549123933335148022346598773652497833149250953252771169636884374110630293064428369622662456310127171667597955493083946583019585701307112896320045858829954539712139253155812147345463177020551683923537975522281471385298373628949437947162171021073507726214769946755921779599665149269646867981619930625861625515221593636631596795271512764360280438051746707411892736626795389461649468340798007666611919048822921943960759700983985922677630455428228097933644756680360242069680743580828813921542446786493484615692676635597821075945250888308037754996074185181309336801765974329423918799230574250533190500295907990280228700364338740797073764817917824080650402983263577351330070456669553482767885601090503473453673388658418643688335916403839405494601280162282230732356976186332702687634944651974722584639814419355381523458539456857281614211280950446569780089027011402838341046877373544690325652125155045323364157215100519523793056427235853471789959076690114340754328212442508477706719307209814604457382884953492838045981028026817557115030932270012771891544596513288316707090016869235142891780457428437939159630314289237417134443616125602084601000837152791646320287054193872990755806887920146896061391076327029184490223888626474614926402839131812382132150398128380969684487805881109486769020747139448497439227917135196074820763240508211303501698876861727832385720060844565077449467999315773066052383446294027365056175505798642881293468625499542236981181916852521711553546692260481085362059184746169041784912246059732275491259867081963681889664924117907069818953520152604176651571922086724023528290970604915161776321069519919858413126846271496020254534813011373178334898126987766035460993279373127589675248945983613263305258296685226929919050363184718063535496600003807111531893833811505462988917702476772027765243301782833131846768649566397928729847502408566872804247993494735129720064413104288530526480356486699859108791710767707866147460313844504512376540052700065483815130153232583633435877923968976008637040685260995020980999759979113634063011528702207321080094355416193562018391710317813019008307765353626106590457025426338969463316345843869986244693338283774453973064489362407238981447409346699009575697166854193158061758943422987658872869744102486054486239228411375810596355842978499367831845030481330688950814402795118173985351831063940957607754747936571318769896663446546767666840318789128350395725543011876324740420305210790033931460535955802937173293525724806721157036714668660621071457272593904553886694819349789365117622080512403809355865617196749615311790055326217329349496099234807030880152821138986080352814535070655864062143217619226890166712318804991119986213491977535255982280159810968035327109550943473925017135487360255214297691980711480563629364820556677340662470471796786752468493262280854475822513294454347143086847094766906797298115282887409971305649305086444237353420583327988453544635041508969225546830381573898140920195628497588892562668703405232789572033822600535408019627278934695309181790123564101903285832710318423013973996454189077500811569573084773703114874538795295748061337090608574777032830097548639065821782473866347583482451408723299517840997918628925935048868674392978613833609314296717821496474966698874655006563858693477819756949259473784621660629463135594111227108524153838284194346419937579590626669208785338121040741068388248076874894906930530746531333383860063647002034416361857708588099975962098189704212151646463322258321288741991794713087657881704683084868046994318039056577903929539481579047946763728057963322249186280090787440998017505881934480745157217348387324368215195281489182087430696299741472193795909565583050762720297800381551472609396664780130420528585440322768580727749303624831015437814239759901465890554120758808816619017726124916956956937679462857301062725755766400574596781310214984487415458231737531879497771800419213554506973037250321308352406423911353765890881443148976230441430818967886826593001614130287917093256245414254799353111079022613514087266900172945953870202661205894697937634186330962339855719222701964150141791061980986647830572649547175503358175903662330660227353062294464278968769750207718875521029220350559909799162608700229234976217903384540418480321309601882221383178955168756964667855352145424652557033559766971853547371845552625132972674697441081399756829529603753665553467575531353310961475009055453531318092538435353639427729404646513347625997282390678316650062019275525987825998823381827534527411787804968975077354702132267585957614376982879397627148531645041396026843136168503720626918571006573143732598076853530919461971255437568167066061022280702147250710315953665894166875874677639449753394036179347576835284866384535867456580562473797502490093688528737068300581197850140313787374938995960936292617372968669794811418611470622231737873142769909548234003780569771095321629003227151688503634009283868433874284673241831148722337776949866683215460768008807200598469846766014190690119243392924943629585005490985659420756390852684153189781411257832852932487093926681775831110371779648930588666461069025642950849497512628495593420309498750032993039849432237150490683057163873367679835288384940057852389123446745179973797621834435278497222398492027281681484639108804599066679284334985161488705220208095092857196885633102481500142164707205162088695158164123667870388436374073190971782202610516375176226019832394685544931474299336849743375656601467426621849760460354473155067516733800972225198954029886610694400828291818207692016785132464854677163436702185396478290897850358518860107251423315515197401460679923324342844148570022032804188226310640028449954954939680892868976427720761233144183404158275811110598662430309109915173233257955183846160197055381503231788074030245053615034355970498527607984846775490020435538451244230541310507258753286227436200306816384138384714250260033693559681772690609378574681125784160696059333866383413513852615107363501267102923893958189104092105232044035916293249749960231654115350788486261040682401104731220226173392694180640383917751475691676736543021581561937267269283084674870239984800679713320286415396312764227736765407572695805286561559152488737269870317930268225140737176909545240430138346717728962679634540491019818199466815493900210731703241289188222587190308989389923220425399594777702588281699589450519406521222666356634071123589898237839764526510454455935821758391905556337223304477858217895767242749311337151477876760842048623659716508325493800078753825325964045933281513731275154615484137195613722707932570478951625661754118338462081265244007882976663853927412053765979857906668737262565959146277631648377927027293365265300813997206797452153976331312484117658093779894673300812419140685252639960061133606625424258234548239046612061144709361909359193870138742100710122575248824303572031747967819690399078223864751759846273669809289322427611011710565258938303462359681541134659032452299674700408121745116386722301113590281080693973865435649742389329267016595502949472511303754158898557470769549076719313274400278532385718405738285794428432044834708668502420520971898430684263079014725132160683616698919018385170870447926127117980567201687200188458988691876040022505399633864287082466914553995275044699824369940770355808346505939081147608820972140053256075401565958919159617173801280963024783295705050234108522160367469698618652600719137169053707309185686384246962873768853883660564210795038292802866092853840689964232432464862839856807820260357075093539813073762831936857702299318850300386075974769627374252056269384680277233169428599648512768456813701032351306510258933008919992996886984811759164522485830029665788989497108280642121816726292791758469034561930383047461213498901728177763835658824455419192254299481891831317389288079701172471591478170184985730604230400262493709373748623506598569422775262796412747255540560215926457702401514563490030664100414738535640896265468618251234649576003150504022277342992895044528271882749562505824469954486660558624026932931366338670940268973246801979650422004933607379828098994432485702416260493383340949989333949246267283813818372235288398601085103825869621488265696136096381548669337523769651479640481745570125546505796206506726316667583786381098672847897626870299173225506246161292968868405439071519944589290899941967155794800761764721618873371816532610002550113210411219299380132827385235466192302770531800887698948936242023927418099778257767695958835668892536606814386269474045367273232799593909118863233846645486491847128534836306770581737538746939852365802273461191398405082393105088623171238915403304235083173603194361342113589139921919907596258332637824035395592775963152492646873286678606789479945244631485761235235140583708897383248242772768677323109572136706557697410148188988193656472976896505486231604191102012441286813361291162469748852632302017491084155245835208411365683356438856165679900139652780382074266667847735232396254971965986010851847311575444427353542798379683955432725860753077483671708261270527771731929505523452993259229833504706364037492076966937701542336155809491682685621527659614902105241832882028845565375865936507289368673265936077063405382567747851617387141765144088538185964585505304627854686539801184903983478670240934146126555112193283688591939826821541797590671590748993486814077270043586217291454121121692790375681063253604156055400893886400739090035262772306940274570398578458537257872919641277719464219172570474049021073195163771927330732756582654121931602018714763996816860097488465732617995029468004534994225811255620426381959311840955917035500123024014323002576072273471701174514213938615732182865257269808289958566171051096522882853979719352138450730723702592176462633537841195639040379241187262808374393819035007076413297014380496131378645102960912732555632318276853010622049696715549211784613397344770444148671623806571528529938138725978790646805119452792301846846702728132847196792788357572034086850971004238090383432921912787895104293709166754656051578466072060851541437830182338607709680240683058850754433942873356486740469219758397935812448861743043930890255437452425534400372454942132127011571749921623291854671784409943618910843876269167258093203187644576259112991281110211213856606559401925384720294930349375598010971678413752088834452798007183280326931923158822189536501157558436543308690117557412245433824229203727519217559022441286975540259126617159252394574452165354782830525230079260064183319447325602835768189178649893137982404228853503404829165699688507285536633234823952016973458775968153347726929867246524204028673703403374258786398567252947076757106936133943803752785578694200405622883521604527907606859660609010881707323610852765890347568527353675996938841298016475805345115593273347618687700975029142167032590331586295216298147413543311582130557680892189077075337463892538270305068812918374341699343803248905513678517352684701529532480433638451943383810065912457868066136670797607693658053655845900612218569872289590108307163538708598242761347890407861612057366712165799207001070421537783196993349639916052771093064083780954120755385023112576982033218357952606030187318761350920472115675764889671958686096547143669465839907805715057861094362229827073250676254952992638081282771843425814294222984247147095817875540613753071231579922842291547639688329158388680265893450958084514192621526706144716071984975341575231952497819677328574734947078896484183555041245207352308320979043585156454079807022521727680794733748628986720660019254066532483569397768595170956241647989977073140045456860758766868927269530180730518508275694247336645997255264856319872582262053657716178021156511644182772153963723345201816935133698261509714600297840265344265428561999492293065018216628647064506776015762215351372922974974112562473199738988214953615305577838179273647950885640700451340875955784063408749219737113389106161253330278852022876078509409715093044218518501313780604596625282093605050329325392866107899574320275115792070807988999006347565029865686372455933694952251066726210363882224802966279244012507305013029501107730945421772472571446104015698790652600227998289500162894755507320396778168131618709028272394770374745136034512997845263219572165336192546388012394879587970644089365512226620736772241088592934240275816767130686515679243872326344130749147474435268068424776074227217264202167587229762269377946803915341035321307908610611608937435450938396622654786654144546160170580814868874399221668068071670937445253945584728118814475528245684941696131214596388101667422162074471219239576887973954544351879906436314281090084358486057347310782961722691163961172200966191816663497297220249296767651383651981871244068623309211957991533537046579873028187570828036382659222866150130711956775919211959480192681558194690611864620555595056142623330203180732101456712727588903227035072342983360949611799156033022168644005266632879807614419249703801167964635386074819655801950461248537752826422804402684973912290869632338907513462292378213580294153203884276456535173387063288295666560442989807600607183709244291678022767269829267406494993501829136443332952875462911207901330321730331830980321211025149624137708029659914998358533420040125658793135135540554315176996954705762608637788309395261540467068476431465220605578415648347786155340879683350159001151338812489215496731334334931592999711281437785711884531028423220818424006114848551773463256601595409217687445770705175846418260349577401664242561309158035070869058918427870944714974461879419570464088185960441819451095943664489373497825402981766061681686251497856619037411175678693740649400857982761630406807047734262584855420613026914368952573548278227347991868603854047912586341652770182146722683212645962054660443348255291252635752033074556261779741837308420866578829606902664065097561486198114920965626498600993205218583796786572622713233930353899721916860850328477333964594129500839328122508054648414836063691435885487917860962049977049438102987438994916249357492466935879579142086752756224724177906647903046007763711237985069960699487837089784558160263444683003155532271946434857547403679087463823838393956641791592403838567821892527661660727612131614815377257230135534674393143457938407176412369896910923957969356336855117319620811238446461880201573711598101912982875354413346786779128901345435805228316427475621270581987465420958310139830410770036844708855036764020166353662607617824619585200428996611132755936383055268490074057622061760401999093308304712355467241178893642964941192882902222355024216746818004694330689990513622372088899433261377852160535744677382400889746102857411383002024783769994588655690527186448912703533289627289882798369682393492077302024710330186795919116286106055600914068466997580113844403168688655711494042641064221374629587326759640599293874652635506278511390809681156198056582573126982819891361075360081897952908453941676694764919200766750384189917397626129125880036373945956504652560301187357173125409222650210026916613990642503816657351172843138575298475123538610224651310471073349056851771827261241047735714115092823880715488884784649855128136920494421609187353030255313814457817990436898168071521446252175039372918675278648809045719012685026098918911143280637172404923647775787348317261548209943139941454526460105223051830800013706902129617790679330843318529852540385727448362240525527570349340753021831853851610760129962858281282595351204698752667570217259449773489879687118606805159437684091947729112958122198407290816475383577839038169918998228641906474877666633912043959320988215147682316733670536183850909554442449533478488461326584048685137583737384170964375786111375078636632563865488014295684444536291012018390701688903222899321169945625226194799469837973753464757087175019705287134356467149749437527323600326845956357025035442322421519651646923357304218749858564545591200012349633731675638288475715951194956635331307347925817506751203678317093118367083210759593147363191558675551058895361673531254111251043940057189161988098688899967316339325259436102244836536563089371135866661099695667752327965411212737013886402427171812093234652435922607288905359983177781714768434789308991978785870178456901346791238211465107483942821087248351968706309502875457346588935208327733409115031763378188164839176029159105980811796296738248066580937767823703732592694524043593718756317973127597494926917779193174709451454998370358172685793918772348341421617460209634344743194199177389269565751897785286732019462259725038636920612736231901941607675155839874382264180369403691907010188488052695437445966930988241226990450041614497944310841786389027637593819583432408738920935635907049533831068657854248331923116160594493941322511168950123991265611291080062011848972068391386434789480520830566211222831308690623081416296160990539587615860730827828668208407137902169330461883154191211489325085867599030876513422162397583553519467133765173457658624669806188372897400877892798892878618372418695182263456654839348647827318121696556716161882585818128273966027196312271113469935087625917979014709961007777346190024862359420160394576182402849518997547314442818403009011095403685300794011312969955085587771608894265370434914004102288895362231216877830661476594069834293945566465416788831645418407353560596767462601037313622074456184012819612005614856260576648526220671705748305053708271906956140240829593217650159020406068089663383885266314067245058433444259358863774131632799659775456487593042652367539614173051039947182549437652080394716765839978862475544834691096020138413682119980349095893243146363755700755919197737571910645204561245184498651898285438637303182894700611214775576240069425829893277712789466148314556894916875795329315418742248474267958495479232659944461601016796773690935095992806851252777956099325770807392540642786865686886331217557117696038983886066865785139136654658371788236390522511354363038328165059174517934756131675953874898473924240743929041720022611316192839549328507167358775669687569579284751767841420881102185745440312773188425952927024188210684214576930775106044798398462537466105928850290933672347561840403824231376905533724679774826406400862485698221109708107435801589699216137693809634966138347733812411408908211192227693527133687125909514835212255341165251009628104063119695976782544634084848952626050738125922937277352350085991897691227283924101022605669468630647675038051196558068441736862225255031707415527102546543254264913584050388111630315864359964881178000637349109667194927201631362607674825161967575773252587582410977547483469566327478206095794136844527156407561560976544573651728082576002441980175780111500612643263210509534912265830038719326913984495867211301008927836310009915572286473685580093452041706983458771936125652898409292198567070121260872708730372114055062306129254071381840952393758001178161986662072972477377933245254687719762927506501013940523399026687974648907760142501733264154776331820211316446337492864847751661761084154268347216090897157058091906660499155544077326369602458446111509260021990627929773148379579041691686449162733265054036919692535652475190671548571872466919195780261641732457766107354585405239777446471502414655045335995452646973629814410064631285075705617421181530991139996418094116834568917417063690182836024636568585077525799389270408217188296155218575361934978230330709720539364227142392375242573234578207067869190684516107666309227696050535354277439094107370459441270842090076354463997630263328522324634748492708895556354427623326992447609474318966666325509723263131225338289588153048625521763789672004577228213880805401646970530191490807056049969425338226824423546368743230526448896880741314408426441520183485378829858678504223867377837101872789211814517225720706609577127296452813358771456523082590051865424331346693765170535067432311791541446517464055236086896738118764278158946113918375506050039902512032414501430343687386407218947823725729186521924460471058009773350500343094249337199027854811716079164932472218197618050201429263504594500527398114013177819595395098624028934018576895740718283123581750073250627914768666017933926275168566469612520498336417221079020565123802800834426363743346349720691128485877205501743085708505395726145159470796583975298688214204738174667960444272954279278197982527285430792912751444120586238892229076286183653024298495321320212158666645291905435071482715595985153611542557150252745058160509442281699026596714529839477277327071229569941855791679628898459974811939255657933632923355068850361299379754991251849139481212587337262035360821714441907453756684733778721137928992526874230015687651479656119503263678890491410284451079360503499069737627458238816511821345377764980420880844234985342383143203610947354987587076586116144243787965611205636620495654969218163293371156344176297417181878712795540699077947145907263025014300537691039100146060280494790052181023963440040972957355902198124065134706025319407222606579526425560764415645157473925532589590749578917859268179676457632156657676439095672617381939791267268326007108260954650073639848091001750776123711760363961353987995468389912099489803843397587009329379294670390864914644012220838623720737940467637839606273268323015046029512899089657774623614992960276448188715774838015119878876318211346041302720574531885966155551668925799107561120611730083590529450040948311712614626274349221060193079333588135388488110639366126646279546670528480953963079828671135690945704368205060350098040074546506986628400858835617865708990710917460105590495970840585540157855255812316435393834925762641030144884866218870890844280857785578344178448781742769992669526115613010766522289729419819219131124035025324037018343344273525963083402344989402742583802706532158428061208388716358652356206432777015334742371409571397943421112734822578321983031542178151506555035163982261738492160756260000439443527511161989373347654382182445886772599584694950339785326741991806191503336778550817658966258016189464265723155141383058494010788941472450048806484423046854302046986330893851288520259497027890852853450740833521980176602982128283089874103539112109759013059285034300266183339087468561189416770759378318531742630153242015327341042721454022486596708534723224673197008928289012034203446656542186055423950571727003908651976601740310193706720596273514732667814456533775184208340749026537109789155011105088196314561978330534145174717549429852151308612290759643034524724913991450503794975924729465096137617146720700958953038459231890803177848458581643088378464613722134778952670174017430760049568734080728150665985862824846383448650605739904362143641412616336818495456281673622171583653177831643655306771077879498871548867060925393560598870715371673366469686952044200170024787811253048978648358305625580764835572831244209346257920856681020082908881220156616925216554879489800758388018703823658990579359599188055661973801520214580912597605944043613903431278209572205848124021330956650902226924522505101205182429797141183009962017716779065803299107400637337249932726421068205457728585696566744808473350004173424273751281381094797173324418976799707088978685500037668483985001337462578421911417918419940069340591680638330691876246952877346373837899921648833894036143325204265017669160281038257051462841397827936283123119159761774191294362610717198752322218668100666110559883420703890034073703171500865653202537125367950297855977554125085330114860885927603660926546093876825051672299007073997200936106557890993764845614685283076983526637229920327492194573734592957874863680571637028652967195551365391132513485006539034737676045704391909091011506563844908577529171727553327082410984401380325380808826545355166376816949063735713651417767438164509110967851372299180040458412532557765384372417228392762931513926781633412105803423407728636287882635280708381166450225619809857736068667902011218797814170049485209573965300636781306033513026407046004135754035850573940475291473683696139283496789268446197398918296139500988284609289253752892193432821885894542324101243645210471897191491394519636703480589850082924604776182439627557837493303239987224210421016604813435175349226383497311057627635388269483131685403983861321271958539989969148685337679978616177279240049066594528133995362131778180351467054392781269276238800986005443247297788086213010736774634150723249247499440431743429632687350311405789468934260896977902982590471135427700186637579005724441327369478632587656201731919156900312535609824096136692612542343492798695069867162860067120425797432632081573561231515753519584678728749645770860763527717287408985026498194541190140102979839403361305395859734573911791301021420957566697065671551195931269563462006796957513277691766712943952616028352146134545032528908403178043734812666066770846210971765475153960085102384026304585611283079315487104044731982076173895093890478745392517949228311414896378082097019818453397817478954732996821030734736021940492350700058314672335741456356042127678244951729895776523239996398212230172151534270420912513993390757358686841396383849396707283937395260104740178650091338198026536445085652719745097704145553506302729017314284030372443209520275058941008082378983712643436401708253394806339733443521550828189046454430538694358635190353036647238586378860767391002498434719340661249179123537390461249893000087528900772109930530982080975699631468939028787596707706169647295537593266802681373270942025240251447810449565467410268665208417354544659701753559457052624483887297454976072724443380799754839089906464321873743627115598905089813888616862670680235826160627575674532674350426200266347626559378592445977642793258110817187687050931600526913817895579754341790153379042620122214734401133194420030391598472225324400877892820229208016341713987333932587334672234861424759356440863156578575339745639971241459593525372741508367758986870652874206970917823342917222810937095220459372398147574511525985064525993161414968780287600651609490732034331733688667894757837928122852106607760993765434295005364896069251267857028914103611877348703996975007636927420333114261702562959879591745521626423009567803732981185935451766842717520793514860051288454117488856166787978499420822939173320644123266332942573383543243071181422738542355074877450209259857984532654438198592167785404805543668630283245562010287171723583945422678597580716977339808577011082429863848137394242169584915337434502374462709125080700795787907905349700944432064779983141882540742920072764720205426214003425339515588000396098121533133453598857904923777694861211057007896798201294150464488000093195653084251501501576197418181511131337368948000496280400772633151408522824860575357473682661548064318879321642069760847322713763509106490883454306100572520966034186864360912067748155066134790716305038137618821596802475518944564973791843228759499091298201458384303683964279726910847332068901175651783329960373478676061195838394185422509901545094965147309817392756946666266289502279324898491566184840005936725287878963118289779976765975033470554151755666606050065723827182808569073138219830090243376738379503058651188005763970141174888286878759089926709433272659856574448901009879063473587789053063166861027446940804268396812110505770257045456779691929530278900857967210570780319048509330384124926929331082018849138228075104209990729512896058934765973225239063396178373756975783684563593005038833582965601990937459378706246014594054572099705593397654940095550750631659906883679952920043919215610496393126642142256087467841739823792070232462060288312006390789338331844239327142310578866121432644468771256717657573767239096556430565785461588857959902264293323316277191840321375548252372255365958977972724943708431324586828214538661245062052573943422245237170087433101966060876726818829084967809759611649948138078007421798157674274959976831317042963437458899516911756143649758320107915345481164367576785992518511045630646015856782895216208370672951489617928863901726700227049377578360930273132564149413291020201917125560106799830713472885317321511998328021956171757001152595591837085398130462865292466842964557450350331710093178898627307564799647685894968204319189148438005264730199839135568048389528684335767314199253446339002954345438293515891691307553748859847023341555864213334952526308697035816835872750608083105634941738298597736888733826856579549949371979193023489580015086055377738687497293917323589572043470282062659986834012606592970853326384633993712383004585096798765692755997102292905145588074865303573129519756422563623788958642979663253716036494358060158906624479241626975368231907096438162133640775896091789619707234693747689189456074814992549200111120541217806458997878109568806172717985914687934850822113790129479127722148701813630356279155366616509862880039477268098625842077277348115625833132527950000432210668212164151131779001505275867889033988898824084365394272673465580594228929084271574824424896282912226777355767019963270967004925555352372272415097218730251161032831063755026381471809933050937302915804612068512935644697470371208239974198319641515595107408317396911545486294337796635590835622598583361154927906570047477681080141508039007894269878216662082612258929561335441066348770654318219319250250464815507639750096174227908773635472110390090991398189147595998690821305435933334985342274785605011806173969151416912262795226051318864071733126560608518682258218341925566494655231644411558319791777886451062911973026604686683589873207370367302803323499178524875150931579010936985734904663331514731440790790023919067711438039413951367884401166497609925064994263324765154911875131785598765906449548356758468595159694295854854775651068870583936674314483849903171515720391395949837897926899701709880459536342015055434052267803506586752793017201145407356356530548575941085793075278664186221674882099619851950289205256981687916469973065812947852717985321445834170911173141970225968219906282740224192021180917506430410494578815673283847376916544986144758458057077181524370387875561783460259611512735136096571262539355310978861982698717456127369208293216494816227629682689022296933318346708187773358524291472630392284028066255895047630774866858737506508483103804001695913135684072453775918194155015301668877842237659456099983348755961313779860746996309091301928265216625014070453883276449752261686028582005232411631906346780163637786299056821040707503781828733833433030066154808879931848496194026968459456168037694878403802510048731582394909228429317996107267540690446721450861254782219330964549234693833090906274583295509190834043609991403997594381749260170725779948564327100990919335148560829812783647199654124770855520026858749318845599048355710900509698006244258017682652684186013555975757013827374435110089799595183051102035609697483940853755255259974356949766639047706125973577036584367575400255259362424860885297156675187074847876043670262233236707073982574604992749571130710322852367301857678823889465447399617136401165467889004360759159333967249646899452985777646184614872309624385962564647644443149535347072441772512791604595553948872182728517515247270961619902738242362571224871353014491812979703915218333995720109594311564383563553302572333076844061037363501229085259313143239085266809408074618358589748240016964680204990455745560634803689385783124047472835492876653368044037818727619800003501959658500629780071746572224938046547805815591150858380597545172262175151720776192009306617158547695585843013397516670812150995033497405052540004102442653713780325592187204159929873117912375574901333435819455221379830081650061342643632052327175297968925524228769708061282757657582835471635133693097205886157438838414253106761509443736151014583543439392884389837693859695971740247642508581743144610464865675895193086089676904027533783901701475298491502820979235837173789231904001641528280120394269872495810126220047389045530679019727346263246943966630920650014896044574221644110381959354273204565518181011160822608293961572773288591726076144252471525472750578208689758773831529632343372453463153218011013064834345759548356050100801804134539385152451651453171377779168630430838500421923545096952910950206289240492857249824445539467145654492787027415990888932714030060206831158263144341321760296007957560855769337514037604047195094207581314597392773505095294581930949386629398472061317799780418486989971953863959261222598421127922718904547786098519676637649968296723039781992034700007603171336095349674257381210696322500290183446692457790519722500015284933481139858487261523968306292644265851447554183695948354128234784850378078314788764975771315574052601695781196609599780138817819698933231259156221646746586713441636813891820837586981777227780219418983019481291470146258971480413286966682924683240038446914771674059619989014193766920285202180370655655142714078376384291780223237270063021905196140174459074544674317928567348998183582362780572391479829177466172360653820293425051952912401239676479825763692963303109578780458603784903564831493661354956142670346926947041169595706675608904086957671123289021612484545631050954684889253135013961085797208594129750101776170449837155839908260137686939763110145356962172275548602670187781219944246058430329879671839869212593713209832652463931357424961444603705114358153065370036551242594348520342616478078153097281599108830623987490888376236371096693525390247225415382324229049852490418537983971798576045904681617299258628253141361030547320554566698798548491984827273830099341435677278447335459536222400746311122192486395920569252711701766617809342526684564263979239531412809264389956091680961317415288289627427696859508690230060272028656119344938020376892808649363198902558683570284907153018521636100427137149919516488275279110971387895738900503313003560079133429928023895467906310047035905797253404963496328727481589194997909418438088622525923607988154830798873175230346431089988115563321470236194591211402392574995290259340393513258640800057106587734844715376594894500162681808096570737083010089652780829026583579092263518524041309332146236854123339977778525406313574273209260655275651735811603562738322870488335598547731648907314956659446240388842778220273842040428248551146134436098021737199324064521446024946177235700059987433672792503263661277364748539272845914583489495035199455704473720047486595209587783928255464312174722784546690784869443320385872817187984248939991328219243024881583618346598197953964640013376861679466185124071370701609591920769808833220093044961039129726948577119198649299717775154481459937860066212126075840637327751327059058827881405258168896945826556747335917403624629781790097506709403753558706579418888787612586216594572873682724737524819739238448332391849922493915936294354491819822586599355682815543884389638946316679460153513048070996184673916580068076416116896216661183785549304861094231255262810118670649775626322411511027160710337276706218094477615438222881824915288353604426007400383045915926494569176856027377846597665437924026174007544004483038592965447836666935633626386905838852537468364319870276024795519814674169058480438377040843216679281838416802725942119463638743317043877710579639869541265285339447182603050490404709571611787271066660684093269556952862875530160608796674239659278989828453204798691480921089076909745044802006095217943447571253215689706503060077836705592807663187643165431400659949326797525877922129632567121226581556549189311692388791108527589864613183654971942078577670786566984593536564620226131546155206199664449409891081245355999081222653460199196701756365803779831977485796203352871343221490481276028186632611749424784562706335138040058349422871202940248523095823356256801095788573167166142031169456350881368432842047394973488873291516421587363367160269076268172450231895419989385935392953052523530065361636836688280784244454983978792051379143049338848685733585081350181103822637102960436910992752884172135173336080945263811554082960436011687411696197048488022901606797701428328015744413522942471605533614942110495646565027819105958784720900999662561887634876060125030057178687324272048453037949455780804865963417198610781565905840046429175589939700797552227106367364779618640650248300001731967110843624490863458161232848704334196671013057966279349291692810076643522741451649530441651088930480476591272008331068398848631803984925485079021144741073906126261115702764899116384033062867429588181143848899078924004435873225180957003942924956488140092037664304324879748720223898078130461250803624634519357823285856060125259867812822763129938817640014760239375706864793679672868617443873075516642740788472489479786108173514206244567444082728182509984573869948863043760657799125917136152771278788449772746946612422620978592490388963498173579818795563557682017446258424217115651251053288584872939100356871929711396664193466272955117200252785731972513044903847955110565931127530557256016568946716052153546973421918055991513250905858047312325127455369247561582120144156275635597702310020673613190914686667705355358697493011403102594731265611762728340559634991743230182931810643342007014036572846215045554457724601683855458098534189662554097939728471209454738895984706441266878601078374178252896936546611356264544692538312166215466018329234506562278713582647009515184075756095651903313399783347964095565143388194382995371611598928543428192757299711215836562091541172811507559530692971273785710074539582510959970738041088691234043110579025026029909005665514922908655507260223876371428124472967277873644666186640073502003586643790393414545626602435251748027444224253645506176398426979526920519831903994166396325576294923123538417474875691247141531588533524500831346195827758152760924434155281246903737625306834445967241924428799502663410524024991494459641750940698142339037390867180354221057252829432310034651859596828748815997131658068450363618677032898810055217391552798066137055506203362405015306561637218116431910738014622441604747549210665012764250469060218216359096198504220827490048256416287192776272894546181008373788828886304175409903203950858391600962282155075472184522859110907256117818267849010706796981802117044876554156994164457127813743990929197035142254409978313323111625988941455983713281168624150218023247410037028279351298346695658125009302802058499936376192573841494077230698184433045045227585679736892074076492538987029026436018562326046709999735241042695424295109376588073975059434536211953688670999429159450814636033937072604728757318476493657420684693472329910589572699181776465707137021375605197804358964472250094550196595210264835790165728683056609258998091250180976362928894587466832988104429146149804218540087751793142827389905560453114056024113704197090261877126666791665268243465990140307426966460296904866198736594649495122636029965536158909563262068226401054287204039900668652915029978756814494900464069085292142291954902890996860263954094508469978642842909465989811567178929239572685130734500602163295686191797982487214509114132318221807108881293505387349322975312330977044620066085045234320751258945553637625272121849718000495798872112981420011296282257377515573184689877943658716682345086301181451246694382489738381633761494067671679108202684214448466169404236144790231733698515414608672743356828185707682888283344909384867022895877547771256355085117974304915432489719082276472336236752421507120869385252818589939496538579581790324900472442018331572273957672065550513014404428193384661774785661549024287385416998601467713793703107848887894246609872011102449725096490281558664446311330327942572985221494214512587442918637475630028829789851988670508713015872568217362591287887462027294011042559062644382310717802375667751477152974973912934665456142668414846607141784511929702705665496494564112930303736187633054852592861668394081462775857955414198528916579256721604983451390956711207007630599639342265119206436767443034362622206142353884226093603505135713977506625252324064254481322052917737496925722410884006893768410760918381592552370521958142607005419693259703431312917794806769374530378726714150413807453361482176350462953512244760040808502404881492068647977954534337774388037752904823924953615985810219725074002827100765896654093762993953345417616101805867819167557215843401615754109757520763483450064343377748926888850435650168646460970965524669099762300130443634739505414456610516973163157807086492652210704882166521411270679433746194049328453109269243512530345541769187265925494047564406727580606145245269582795220366084056536879524409073191222252615602335045643702622403987910632881381850528171703387869591627284747680859845475285288209718658445506036832694534322504356039244641005934299500548098813708170316572435260369887787185650122270579898150097006726678386850808361951831259969588191097693764706104784550626359588744727635429319979806965211512400942291343051030413550367706366401733823455949570964468495499623092359340728699246749522724074817300165885418910781780267054250739131153262421422698688450064875976864621778773424470705244027420690195368007553053487751069216588512481933764199089030384736648298602299862751467539469313040715828246190898384250547063275857876671691140070767764389493535303344044756177162056405106398847732186798202996655114711347779598624494697643485607996784043221768975581573502215717596794665725504940226542290574955807079328249709604656103294983494917886086083304584800208668441845201045891611173903917628774315300075391783802271640320607251693713230630431167393384635826624464158624946277682494493763797493143044844634927007378646392005054995346289448775275382527532930700602180851617451223896124210793831622337134821669082326252742874392479182653188337453509639678571438237980450384290445519015577063261594671602445458436509873685921945510616704803983240272544694695452010636903064221087767042785483241543633371969827938127918390337890201696873777384762924993540659949186070266854627024141789388544599129644419778974844008281503118202637814805372067194884665320367611849675776190289352110358440183102200345515180435457783152672648309049683201741409928859033064332954218148173666035554800815189653683400245936115847202747615177990058211522013101596033995025301069825246582360667338169753017784449415118882747746036380924889528044737245372373001039694598135227308635160651570297143848365695190561696717973869162734437253706969591955387373836899021277022898002565979760185846187340523707174676450570382169857927993566029363879372033223151437702498213234170242090315966785485525876483993632946845518874464290266301451433295554383803307362037121989837854891985994500595094899322294078538924024113039700981473244419809172010832220656130724019050853426368410668629895399819561398768331020185571910025917480052952794035092480070499609354192372246968662528098861005381629462782082293547055538987920280008379305829531730695679888977232961382464560772889948217532950485573548212012812446532456067824180626725638316515063017565355560934094603055024523110306061088316892272869073540492597588389824430611133587459011954333641105459050410738483083697884986431490772444688852285213886585117385475297682408442365604670564001606997864939707431841601937582185531924074925304495330536789997864170450127618461195024066294477412050928620414708721045134489158836617022125025445485297126314428586782088343898555929987383161702386434526290574247629454233176793500259257488199914375603238818462320376129540274319573010964067123852895257208547961564222141365643255233287675134709323671621888334038772381314284281847241923686741221917173849685679416076954661803809330314708091733022801383722076401811743698544772196832866174743120359764872154509962915710156681444671589098306327246671396343869939553951953275559912572131335842008389803678411655153007940822510178778307510304798473312931062918472081600788007423000788798327215048474232918093172677928885086885729158450717773868180672667037179826022606632104355838769338071976959171186947076612033579779572189942303572912538921884039351642075193235227987408691329027602416339360601678676140629192028103923172478291459854354839109744703265419913760246047622155573936726560035975845163716488116365561058408479461238080208726473288785143411261432252273885021754916845262320710139134783574217138813597252756339496714665138234901190478032659569430617578246697593430209896482095644588817288270852770008639137902755306684411577272467351480799735211072766532634713960443072584217644923086643280386880434906368017701134047971096305588325700826815695194513666193705042101105067932266328640656664745513013003884003150972435432115628904139972315518503345638004017752157408809845817669415024029143208235449483386704432291539453913401864926176018569558614042497606484659253301670895254423504691087583755757052394117138338110670844310558078141225452411543264383163620235448135198160735145665997754951870286492908848128152043696903441541468988437499829446066570460457778806681153209037307173645866567693959667017350175990898211816501249773523562633586788735566540848191551498516372617454764861252992982608068079227561513123988939147454073217604721684136552172650308612141332708456746128777720705362344177979743314162957607871954566151540932814336204116377032747654542635174067308587150764057699271988918533188274731915322185462411029676215672477342177009041038922224847012764156534576576593876329387700614683847288232615911556072671475440307534652152074053258140204136714932298419345443934719199208349174168023617708766852753631839426630066328363926253177709003748535697634692206742513625541979423306098602411145908678793044989580462662742351987414991467983660125450479545091831547331063282572255734917342299551577245597663157399933995432614836178713243128427944321357474018216002069637678374244195782860039483054220627003211721451494047852951769671955065730070240561572865501128321725556918810457867281947148822772988182834539870215687139814693624209600942154107883249034604590293459592805094023189836350147273878761389339858066389920359981451831624123934131994737775121445814863427185114155414079740034353168862704734599377279863439492423826182964240489853958378051370686128167177510591491061467758626959538825552293208379107238582432794115717598029049603493119352178369539274492126028350851564209396880203885715888256249689262190950986208163756463548136442270095109351624053870611742425406062214553196093621255021490172885246086416276560330192554990421395391281823024612287145808051180606408389832061781040340199793712791234710981908273335894422288263412117879611972513891998854103950447413667200569241862020850244681204832367670134601656761423477057915324100442235533851516787733447955346336975892601280965630254455499140259993907881842640642883975071841515510645164152119456299500099464042321588429798082990814711267708542678943102049161459243334966742370763156494437775033454797850136867780536373446427057749853801435306862526339967816255828345842790057084360778712821500691213746949006805039397094439362769303602967197137098234914676580514925394475052024632195829550231764751225655537712928270328438935504920324026951019504497005340118114921874100383747897131100191219214630067093911992711558460138344530285588088156749426081384824452612760897856504900923101229571014664878194660873080779710822452983335494178669871691310227900140131442295472484252209476846473050688705245854294122102300374470206780488903647695102790485216919105093693039553075365364762916971613428134832268386501069065028688742260955282127556088005786084835580693867854788507001245626808678461959013803541936665206451006145456099392279979883445141406226282752415596808698883745717142641569659342406417128429842404403029598699049777822190836462859264282293911654098254990357805057840051288053299398187829925949856689347191884112649041021052392689711729447625390885952056618057643574411297619556756140440490661987159624553996926889691992690510386522047440439827224086515632027961955310442362251623656868743403355235173477727852616344128607860248230068111503532113972775526778632056614657648623330151552998019389377153084911910239151208915747133103582091322354466850422648951939117647199606947186464793976851837527416451877305121931685178362951649787632955102787617240973788009165565743513675124769695040009992510407302353479231044757859962354567904451048715879419094082641363338388483705322578303464495398110866926810618257962189514828109407709013317805835445241408010132585823625224912068597118525076579682473644270823167133396841761513368827857548035161818343462411780206016426052872327206143008481061927413185764449314506612867574412163884700589899886895311938799964468632881135554785902040011560595685678633139915689513574896744369265768560859939546574835646841726275716034232097031348284075575532143066790914394123771355128850191956051058268566339943472914459507658295706046098308007782339549527070378810359158334166153310912180052160226021084053406026702188565038563418318329607763855388854647067765908597702623806486112356335769817557596051034767709967378378498149741879752127033737609255359121604586148659946858475033339216134350758038553445460067452130235711147963367531511895320035430135991380905783815911940452628753204912677381903796521524397181634643957608167852192996534293551183740511545535830761570534452120578497903237099262650235426984429748815059136915976056462019826908942248305074641909053404284259019744171137176837970678956565548474654559753059695352569325329668260742184833611689615546184281837809299188287782228965808060045565516040211169934590311604119150269354434321948153340145611164924815339377555826727056133394040735464975825446725700686300967158681841800037943668045736287564576413042008081194021339284103536959114700485020890731643792306795518500503879191137542866433799151749263352238081177687859897144145449871980307207866896847286420988435453818841423949939222994904387435678781096381397697046970416185906723538692953907281616481203355026003465534073347664357171799815887411286594030714987791636743951577023707990604471296026513513208217150623209977765081273412183724177497160847703102589671563790943819086650079743671787949250697197264335808766899796867779611471826228053639678561895207627997496398090098965635106745085629893927922133023988419488215649437708976177847337521331849903514269490545066922886691462817418284248887164709706804694868049692050790569185404387557561592663902404802567328371706732921998340264920682554528754058947745276077373341922562934069158159736381614198373406417544163180391794997787798522429318367759119753672668984062071743454901606602592251018119511346974126301293963289533983974371088570348940713317444659543802640982027572847287020430390912025402047102953052474074681612488169222668683337503773219983074653914392899951395798493443538163221579865715905823227080163543095607646196354157080430568182787145029232306321598647785887547395122940187676925817734387542343821740149453813467612990924138669956411261632407737351205596419253362991932594785846642748574235982780781332713119897295267245905409145103430478572981956075040553357394966921185178017515798225323425223308524532246974446902402424278321289122158731488267316180580700745718081477435351299866910264490452888542232420974740056866486840412443014503696479119130591597138358981063683649777336573527012183304675059899360321200378766550608548505773861960926032289220063577514500910287526872351127318861966191316089090480850324125039322761520285652353227977666650334449593115159289860815438336483252890417043937210821417328708852003314974084517747624850436981391923326143260855807001929457411206471554549178601447405941114623847657640741240377032157439391232300851436175200358139423492156507641740548932254870244252118138340312325081814291650029236908792137708915131051306289354012862012373012492896956910438094612303898198359000520099180619695775304662894246359240112263000129933311073775682420950398890263889486969740281930533345749372401156202005939380604393016313611178447789880756760111938964984558472719795305367590371593025689859464307882012077937236453228040982354752547180010256254756574566516601014853405114721497438734325207026899837106218654757219901083373079541137935710627503443914596624071166274180093129847404305217895464425738664652388882841195761722405461987430215845775516630424523364561364971657158632507835854394768681194355840671574640508090769079523980677537769303835057071627373986427810278876693796143845159355767839868922621764534537433647518592135189672659433950728103046375433825572686950015450781580534344305029935686787806645544091033153332465245556673240699797817762777598167231716926810291292274532755911772568056800654285127664673107804359973202880805189459583356703741644721244211297727618068943638323779370072387018685882592912890754736716062787332469595162978193365310617831909515731436299930502148255509284773893575746233698567592883423980795854937112389860880929401337430102054702351083228642145463128092679702403241031275182652455624486589937309235186454214438319178947416192232925516167629228437506133728390265311710387021254375596125610674634130826955740271441391607490229410271207381470625479699166408744359997170061561588211240997939216570243049297219652081245613580760391484720943699952249369030689380826674133307355831066078986545822326885984031209848253128565319573440497280252023445374865888978267871589690341605469707436770729973012811204059322026789301249470843694021822018431070118327115605823156382433370977632873565184943434423648871719544380288272107207910267197221451775301225242432385176869467629056153506606177813223295852517223855295880342873824663929832049606655736877862251827816854360966133728622922263778426324660766621603975968718228539718382753278806202902442843220060726268695607697368172858373843442215131595853367835477865411253189035138623581687221342748970274992174832026129293033323250924123460931255253408507529574939518654930229282640625191694638351564197226341111006381618341910890582035308742536380644757498356536077205840353008803630018105826151133627856081601691271794927257043307646301931251089939010608455328668610736839064893201722106220019631682714800269810933734147743207411470681027253759454640249398512933704372897388240953799739601706408043756869692241886867526835659577071567192129291911269489402004063696196359624713703071476893337217272062993559171735657723567281505389786766558246694845420740957486581361148585498509556947897843101661090069245871318610820628976981642897925841073364560297038395125770075558532722467028972605712883260640636336174189100700013085114348785916788643330792042273169594349680445833764643490438583852922389033075343522318584102899821813617471277173094781831878754776754329179272509838125486805563942724568493337157177461483328834511400427434712378805150897031964180061233764422140025920118331428939230478049702755509361583281587420023760706414255477269956018011975002509994746167375136023583196217835454719195720426640077740860666337550053223746310762090855427993609238772657297259232411311362389407629825124053062185941107306412461746082314017035193198280901000287331964830078868815902895463237278812085452901486970746193535932582392282687160405181977764802761659973422389671664822041739125282280025203179725460053676665124382175405212827547314345764172554622637694269711553288479723851216780242026383387009174308682508418912462253847169207001140064080950063525733445597609692125828902657724379938597185920422226698204546066942244864611431496600069286609082375322978893267222981076252261938630508403114782381803039863519916751169212648529850317651422984261924644659573871846924632662802130841992594822809755713495915305626745983018975279518681364696870395662031895237819908540557138841374166562804011148058253440148226478757019047459961533232969090806452113072578129627277977909186712898797480474482163676178692668826599650806128191897139939703953796710529643222051090003699714885268830826245146118614976532658738639032946684981168577235955232867776225058252583225008295537814127869239107299912127280836851261189454926398122481592535121781774559173766380823654036329933985931674974758291378111404366887932405255968514552431866872245290246386076036275680573278454432599723986501367510389581073400182601951292475381619970354885055510568958349345336306711357118245329688562530718074144561995995256533976774635709523299433693912095323019551208904992919979560983322592276828382787998975544346890626279632504451782461883480397154173191536911242628082163848498168505566058865174095899509010912729309349135061499702128261828784893850647815672324426114464890393157534832094011621375116418396370241484626727364263225793357897063268858905503576511112489859493150861809089985715276610588810881184398563601576119525903640467757765817218241168517451569378580125502650263914975936477263254066469974699670073463485828870455721848547863133955625608343730263485672617143667630284297453705325704115741763255772989366898324491089712127343538100135891674484684702277373811718201300765251452376125805719412235668667459002548894620218817349705085344644019537014171334329484884328239338885059519488359095394368422319232472609618939110255694080165572292717587498167571146104441563768950028760758925681119597386489766135753935699893242209267122185940683537208502041064547601290205461611556405865509698758747086105892276725019166439376135060326437427624450671341118442182429393101184824624161670524986464303835337688338151331053764482602238909822310700353646701830736219651588585580270996426048597769753925532407013315395591150201537211944582907085377569801527528027860822932884715318060609938943058272595404973188974837455989566657157038082342095281245246876648246004686520004927150857935081212613486998643830883944416319714709962205524123988783109096251859271182851239954663841574966887508528541899928542301374559610822618072993857429412457424785479149832252218369294517923873865980659504928799048644201865688153516317560920370887018060511524611353165492572960103832472010633814529565456135979085480144861951520315357776531934568127452680204377278462595616365867978155339759255560883768176095604140219899413765912002050596036736738359346615317759701253811395038877247003801967387342608008517075211187621142758866955744820298692546354056840688048553922995951322388794766854844723391118306764435565569439479845784802966847004188515920345582112717903268475304404248540468167401638044418474148057752267728988875672336796923562687600541958088934400221474837371871308439730715014403734987078586519690093840612062186711564010317786824518584097521130394791665520661738843059707093450380167530075006043998519887708751840670444308819683536064404398428719884361060393593658987443795952522416912474430294741143634277641853722574492450819958281177753527310365269444884727885234548600943076512575236196510478606095737327804095703067570983378113635956141962744656959879160176223785908885631071902239778141095447428030488766443269456389478467731293493033612265762566326787223439771561201531616592087176809772821702690081945709472947816123943431034085351323878171072824838384194308210636087806986003973782205074680632317224881847496265426042118771112308460751177498497976161904992094339647245375190974350437341266704621198460821753284065721696141451914869508279271036624252481216251810976436752490245323636014969926301066320262278196679641463429785511145226803984863125232066555914936574015637575041467751304717869795721447375542473161966582878206480705256490951216733466711683798821458339050375977488015237800328108891770957247779553067587769636508579705235907281718028223462846139260038469552218403664384510871471217831701725172124056440710354931769057916751063971024713647556903166728469112197561565545485012286314172753569297012345426029793413277942623055474357077236143269644055072399855332659867098056541532319745023827574968183580535018235659508775520209018451474591011036713717354892393059033156096170667532274192205817407671870717921054200260227458322094732967645163386976825851739064727378156416623789878357737411963698123461555906507382933778048565062408913433376114607054674195569228494193647518849770418852052136203344353966832497407280916449654214500316861310353575990190706307677805926722693487896490491972146540131961215919375490493157824743076428364942899164795951166619312312402067058768962789770933646999549580144826933444231951073935465946439165186219097548241988496631069301936352135544636983148802535766409716838627673789356851413991377441409396428501783442390019344694471364060044985144119690354660326845189667699671626206374709694979897289732799194701835553225847347477544855161128967722376710667139963878456866165936644588119222468371312391912785431339594849804064388346400711248015540821358927140243211191386466063195897968000494776751314436149139135185147722257698064896013829685866858076289958310287610231377239995975516619510606466226179155388517673743388407556929916094316365749547328082089271454129275352610950131950513106314626363230460819257249166584477621162424988712960706070173582822052487745184750332968953635251703766032423030127836987349189543518719607759052125938549790728349414742953527382564254736335810460563460098066361881887504477325567426042381213122553162986183160428112805752009590898933223739716231331155717443741737943232737625620036812516445742719841903576724525593541028155591803140897817067246942307868592321336324541867429714188600143537017913622670761134045186933612719299127382085293733231512810225020671703931642398813298538338117441315278642334290710669868023048760687309832680301387134068028331707088487819651207175839867672508531119779093064570333147722587348953252198121093905813171315160331095293399604081079782289045078618224663785615231033707663538347228836783461816312352907893429877487163677536079121950901410447591501703855620164494537637537826144668658834842189784550547828761766036921825282245723205158313183088324498003355763464396806486999641175801967421809039536151785293522734672133952360153231897843346431415361084224067644596493901926764490087898471303099736911247602745473703928736463759395033409877945688934237543311263845852565086442758715561246194956925138796745480082868188104592463824401012888792105125072259318909656141562925719142883749175072505340075195010592916545116721448386454820044167762190493737376808087366085848875508448692886652199548610683199290719157585208413942552336118346197784450221623142633814370547831595150138531697271482844720068009809992562087693063912659287902678559417336697788183099484677660624807004191907619229907551377251317389311417502477291137978664700992568258142922702259794494510894951137117981308080972427862729000625352502220959162081708899173510627834713829518729671425970300828666149747543262770388558478573210044612272370621564414725636216675300966592323635992502891913407489419884803328199122860970180790219745179458689760381254617315724219608315463082073625364957897100587824855720873856225892550503433337861160085619413985406692516422743420671848028823541887429854899262529480629231874109531367124465582985690664232000574753853699333260657198311046530559503915256981951249696321771375266745070352750678927037180205158014826507827431537329822895962281636724313837919954125945323863392914434097733093212693482197011971078375824395790185262829900408124445351250212940512772159095026763156307796736949057383352028525222790838635722140573496003647603349720766601080392490771381738361742496667925428739659209370480741410658048021034189690029076746290919245773785096261732961118629001990245582323928666096313347617834100436267802878811163220720169782015517299608982098424491543852744562418570493739757661362481180096614449245371458012973154006743850066539342961850574442161541838816240045901672906915026731177294058384673967387474384548633040978703586171641272492136447229627424589249542198303899236169386702965662390595251283860140562376341132132001734774608811895170237735497709093503968531222835952278345301897358669198903464290400643668641714802051144220358333623289568839123689482874253453277427156034217719760386006625427537028546000515391977287584656789746250583504462340671213503210007334931323606563020095072229855847672640542380166060816116527839979811768503174523667110194728901906806248194985107474184135125573631356321600027071678681358810712620646092057191189493611334894033818013156666900389901019874294368024021386123346667421123694874108532027977884893192618191920753535089635789554666353838698308638974455737139019796804551330987590948310027719307695598908293965341046822239542983766209728567687323102856882621299131381075789324926709230648972391597113446934532552662696040355563950192186845077026420648647795357346934226808144560276999189225435209204856179857238324056091269242194681670273914120791143349036679212667141961116517132141872094861374837669010276059172318024632501835512995058343734284544398434541181870509619150322016424954702419102895647953790980326189370562924561383570422637648525000009383284170045930226337901896019265712138198435987854613504319044036211353758061175183998891296150306535711184973355803789276366751972623640409254140916790574173370848554734484835096676172607680986317985837011901985905803228677942713026861024041125490729237096758579918961777015348017690768346635938132870898421990481980972344458652512794956336472031843704342127435935495189476771891822361479365345760604309698383249721514216478643163678918586854770140114284457363681776112599300435717976698070884483386135703283513402595114671407396135871223560208744139593951832960929537581096022665515883521298941587558300535823319624834228591005827979376784064780589150964215811026236830287156267054443194961069408500829823043708404757597127964386922247615174798914002450342980297927895849890520140667364817281147355648013231584358103176596818467954178274791687229979947422570837831736042854936231964486569008458610598924227409079824521487247288416591892883851844077187619753848899925046901917079049978029883076200120924656837599273888569743514891973047684359264232123237752795069204052343375084596660403356568707083589777043918811051343353474727706351014360973731335345807989131918918685555445984814591499693819384883432746748611073660301608657819845874676354343867160540881430687288009799958752633849587690459204827190757343095433168192643976219103549952067924611241053121867931199330737422506118659956345200700764093166047076956981307893464083140921307010942857141985186286368267905489030322788804341512561960639865986051007816922731813322419289659867928848961035722350509538215632272854881388582288711491733883692911549898351157560963191863036541101546474689135221747893361035847097087453639658603356874539775618278587216562692055288369256134874725358682213207264691646235692025261575529102186015925675572561113729751993043269129674457703254738779715236387810541460587146153122654318411798074945087909288227813251979355859265880300405717758364513360529112938111294320544331964679855445204288840293285688545730923918530660929287470240259724914651662285939669001431689279875829447083468811675951851758250762997868820366294189595266434584669814513252134898474675195647548979820981604684882404835223765592330290539228978829387593944756966935980722716251932522861741765121783925615841938136208049285968591831044556622285392858169040633171825431881233874101218821865681282672350632597158355516029456603966092030231921166658390594149716940349354727517887690335882314946395163884135894742069716914801564139063942194228874417296154093681918015148541649770184747496110708042925830575334846766206098514641638258516547683547431641343738719031652096828899805533780084072923441637574801660132092737409830464392936917415446692128772929271230793746148131935640606658041441799509604639560493175160961207800819246901566415933660133415941425855110388983502504285988913130449518024388668090947505777542116269634740825881646982256040851729037832782284489229021396287605103871003115245899247042329994030235105475845909094459295520081655927828681884453868718602548703060502543307364910235593331353960733688731242654478015803394516606942314086984337073576255468299281358139555961407300229214223098466657516137874784409245195919734144520750103361563071161878548357636383490779426812354532401446105380925410042271376584504106382970908329957325796367833335506049283592993769684418263378277387372491834487900700120744855382248691846919819473254524722553354715019201558180330376018544227961228115392569726563774477392430199584182735816143503184670755614436715706330114150958553280444471440362944646212837640197763866849488487246794243316809471654315892304709212691041722276926266082036404882539846184114838454526999403886119706015986681726760348749267479773391271002956660168814020872217497224385029845383509480065569369604539041645076468627249683005854935561889056780573694560764423537411627336986104970848241171849588020483484139818880116916775062062341192823240034177129169761132669396842073742234270983814538338316145056912466741961054638093070789081188449364905796072512029921456968303455175320190448013155919509384272288971607984902571028206769541639244999714724663606358207016775521098291910712722091807920864415440515231610563081759303334671017613848739880531026414438437924103343666210920851108239262633442937650103449471601024679051959109852073100645747624801547229360314093973018804962179270464879334337894326753196616910286470348087111560374361301648591742109907482064187358832812130041868803240265146400586866477100934799820356533506079815336874128710310515837302404289097625344925847026199258682183417849438896210788467323245968510197602621182904498325834789414732481782129600847385922781006456527337395459554757652851294666518259533820141756403685312804735242234205175558180237095903794863858880921134201635287882981050026776776035149467169222857603513419711749692571690584762769051252727447611329291200163593565236450709495757632735522359345728482393689633900030474360597399627658790277189357262915299723873409579709523409654016307383140747165372361300711041815342086194206288000816754644648608574356272429584095363393796350492001362860344736118523202851233175139596586069635647791305697992694763083655743752053528702301676681134553702122653634749816207404200756925744965082175231434051420846288095066843477011498544076709396831334700463468149027970438929254367180708580255161910807344941345519006202690066216549104781317411824239808309892726138365121645936955048606216527670698667380733161032668395711933955657583050497586333261388760094992518508546399785198134309524327490745232887698200696222713754511028505533795087618442703680849703137787761435722508815135958611454046846843424186643768349057590156141392711865621095873947128636126042378088257071126722696088158592851837805894401308678664490775290702178110931976620389920058667273598130828813302501952607655388460335025973007460417448891162534546351713001180412771355345616895391638964560952063807993593059023413430495963635426278517820969970995925031176609815272744092720405508778842305278436031818237491969888373568239777693732559645229045644485026545522419634314554568338350290078002148414325334169232259350196500600014474747586281768126812642418925685476553329611573866943368139706440334132636530387122582415842399546515504526599089759426487311876733186086549244257203015970675471808701582315027838219728804375874695418840395959761894336441314666093590474122303492762997098519014669188192475126919394691292306432770538325312255851489676435678118115977319826911883077139083419321896664451031084176277931134445799458965578584298984962656539979853289127048260553265114915859965472432086727740690776943684083233690082471705084798204519387216762391590394612911829969005062055705327601675243081605439201068062837438733756566102014861201858525970119080250379594328722635101099364140167296722144607501657954901510885030616646323177024410398137573471507608478136775319567324376662598625822274539816333913008806353861748830987678757763247601935599335284987988232804223689209745846450781975513988409260628377090578738671883276428961108324767490111321384115619673402865924719787693744402371002915968612727214016989366515758045386814289082761210125637048014147126131100340767752761895933167550785254828366375013855061001351247842989161585065181969415145910792691518523865364473692694528875981584137758061527800688061164718159560065759039287184605872117259046286760015202118821186287861890341123763567988554543552440658994888742875562610852062225508802601228802738264783024682101302345020285147459032943161525522748739895716983211252680457681432325546914560499423469197207563105792043661423344384385139775170176782752517716798987941856444390128436086205034359405636134702186840096536762516591946127705334140153348589762068969157751512176655776881685482699294856257997345573696856445096080412688421901435195101468500381157697022232680296478484218369837027551093658076911382911916847845107170693331344417807098627358673749306727042673883586157355580442182583910079315686713628413745810064103374997921033991088968042714861200185783533180589639761991027408604316259997692795585110589793223617590739612835026647542999459093601552604659884329607954788785042585798139725395570732085593832318988144844369444054822597888830382684352060615253753824784450975671479307732764885677450374595113639639843311551654062376956732002277227519613195846680834927197770432495365947554123806501129478837075147081418221476493290930515836139754161078892021027281911300591128459319109349831692253382870661641168287072858476085230881669249388813161015396568439823025792512468596881249633190239953214052230654090104432654278182202043012175726393629428895853259670006773098986595700633861133502450927056333426603601150139865706147485086729913687760006161081268920056433536043184494410733595975938118082324037577736633801438405758180071822410393089059463072731938155379132680953389270393918126525994123017907556016588379525045445933473289457740163583240892817514302392456544095327112518894205318842220334978840388786779172978736607047933427383820964976869626968234826678953556080722780365996641818769697856529164908244207113824692335084193409788334966788147136822259761264489366476587124720973229334999649388771166513967707357925837555400563842768739652960078140016533888254821586327773246866560665774770651364362967720876947794052654140048766421070682097656722670266536630997990614939706237587778691729000247361968703155750921266083422873926810421279717079360423110702366888585370425509988333326404744013578691898865268187458228579721734103351570413900679262565909102867568492717268033009296960869862286798119049469331548880684307578125217316301159963808356084889722835696607585758109505263647700676137043099433726205046687382402039166603395826584597084572625390791650000292698928155403903987710356619104227330526565767489824290530559618687150572839659267835057171724974710350373606751177793173988925738388934064679216348374590076033501853689889161244940430204493720410311635151353214278410330043225976493221442837251363971334796135367211400173539894921056003734097960756972330879783760066852089464154176965411609662543556855604832488635306525521506628930805335624072980518808520708870918350895368652314346838742367146118304339036488530922268308675754743627558632358058673736980379814009230091028136610349189664614977536847048862631945240418058038187760535152255410867745942181236461528147981567246859842444505573940085246634150412223303892522085963380472765094212720941418482473981725710141185064549919056687293220328457080674204385746293730012751114123438903102647022408096901093999327493051323575070475112779200917384809889407197484266651499285266975649949337653111903305600195928633337613556888602181715422276203091579902460852712444655333041404495101638994909903425763704008851613954206953517621430186465926416478879686236588352494179436278739574052219005638086155028271240058329746038219369389634848160441371191557572864867395745752808264500263593976342073047925514447608282554263822307806695907688411910944654417507391866406455517659110929545269861172599906906947158650616565227008442384604840772236947201729828536640924270557966263598208997389157465872799192711177716329312481434707483625799413302632359308480245768581507440161689660136095813071634161243357490079240651746493220898403466254041481328113056201606782342849315284528760734593331208604976313381940383213708776428640794577626898828721112026026494036256540344370850026177999010847981878985503399596973764890929192123926495017172661626678945796269710580072986558696070814102777348237974208124280512942003811977314583875675165170975583838213177932198269631086038056435309445549909354795218333567783158315534781655882711958542838075094050893246240667088852329546422515765399204429828095134211252320532426843031003863072444754622907533721780621528758662833253492208067939255948615004671011580827997958511890568541440158550055285191785028456641568477329485125375523234732727336277364837066641147389347580901035213081850858775148475518831563271319690682615536356418280147426321155013577455419887740762847243057003697802766047102334928801669568520274762660569699611239108178811793098478007341002613666891141473382949167700910637418425960940108315567096544280424905089564322548696446232980678151990744577993464330488185386167566622167321535155746532628476697247085444541185923337981615199354517841602662284236897202499260919182462677693646664163868913723891846839218890057204349323623593949271186670799659330192935007058042369079659575437362412902808105475410904402524421067706418628662534727194325490790367207602692423042561824117854469818325100692881761800251940107473884176216061344916535993805578975825043840842845994283693243782038995487538897907912127948295082908633674945396560112430624602947597418354130833488574952412258429123279103007762777993050289138199694298582446765820730101902312938712385749619389092049739086637444935752695175297384886875185175149049978570877006931003665364628965140624854501057088538147500670512538542992074217477820509014086325001727095881029467590443816654450567466238719165902003188043542192041728846086251074052967781045626121408974320593715230096525507585368392858565023389431752459545956482794917179605633722450289103943253382972168401364986139029755365436368428752149732912847253246002807276980240589788538506508885307674173123891802004395806562396810969930145906656320294363150215796438977119587197888632875972381935180530405222914825656264003998764617239159218247758442335901714049158167073011613380205567325521740081233949641089066970713687365644185894403071452743454855925052474175034733892889522102077793542591045182527832467710285007794791589771917435246509797885723548374647151292581176248770412099956622941480288029926868714902588981921420794861290636188564707630989772496239183086155915837782392788108964487501298148029813597490736862980274384604897648559079532906415229282991391767340167121950140279173492790275888149107928550811652303622483077703529487648555666708642038146788509108491165019455764901764061742725545299896246151089469968554227355188765743392923521826074459530410235168513897914071125043986425018976937545462562687315897042244948155126219268183992481721005072617341166899677573622187491474845600385803717350253534222552424769794454567530449007271242932457870952902829718755872555537971117925267219309956053219352207739479617089202875892302713430115321055867514196976540118154098149379091786252772410660829093978399970722906688862523000281811092840191205897976973928518105147823727602569050514347390621630718284849131141379609559587201684561069658572840696921170457117977944627966790647966406971637774441344911892520973043363865438509458558780362046924496084290868300513676825830442480491277811241559959063250638465941926225204099039182793032796001281000291598891889613676046230720370134734642366477702181902987084623597094536126184246004927122304694023261711770088831874769820303836144851661230234524685937957198994326967747130398833751179457395770226132576798860788937787144630701877895123569496751380909751267174812189521468246305144500990532396009086977054023100574361837436748976328586476563265549416319444938352903064563412080641698381999029771523985184965126310140274832103604846703278404924288701441921151166162673554290581823480851555606180086298894466444524463521982063027868425397057696711350190935058048604241619593440244037535299792354474907068775759303646519592413659706841552597070062808897481984954185116185611237395490490081053876923797907536761633855253339771939224083777047978577768692321528886101937153686440457665748815675878652974606533144943794084393857745719853020026000290731804106225687575356384822694353592419173299440393887465376201042827650814075075236304700210933805129609807186864755338171108502481146055149894226232125050964093241419529075118065118549383726098338313818699624449092630633282334871285560271597076910618088962147971460513850612629406330337603435281595553142222935258945635314922560425637913724781382689372041222780020993298687691797888658124283372857642358591876198742152532694316344417590586065490223330896618834782811775742732047602221976124697711709085895666889339561061503483602575930930838796962895446974525722676163209674970351835875777041493307943156677730009319466403050381044029546423636134003519757331473334789389482680625276783322822389751232089895458892217569958458858036291693742964451375311593357514896544093349084337092659651408979087490968605241958208322175079808685205576703295314673220979746217222445614609669206313645006364457521840629006564383312773979657193297724887415621284673331997586494915006693349833087433180474396909063949928929379857221943955365739399659685071479217394215997615686107359579864488454596956303151926766473391315685913384588436758512409058545637613995603381392259898840975735863417962015739439875350949841148855669386057763967088826063273370893087189123052832494900475014161876128864790082404129714512942304981008702737593411383581535937401633472744707626027219165865330028656387927485069607768471526318685101033980964154323684152871169413458078412606588158641607027121917333918981939250780709873385314109589972810898790436114275730364441063119672845200824901848291220105318982883755527747727212834714575350601669402997446229133216891923818490428564826495941007038227165453640144863920553071030258785379857743365956630200764377471307509270017316346637490537134350417197360657326459387018664342232433710062299256325753579429114643478322136966367383558457812992865233146828292419298167803006765390115196083292768520567153805967153129518390278441835684570716210330424926170849570721755257583855539691702343474675776787023726093248036251372600695372452496519568285388430060938598229639206718752095980595934344971920422593849425302655860145808179693012142655407966659949955507451622070762621231263900669644732351150672324868679870105339331751838407015937190732024496214200856806337191759809818096104834916601545761347872862095016933180801503904141568030026450499891886765945955048730223674375852407991710091103284917842820632850828372174508584354482586665652330214987905380485538829835377141298731494226166633976023496977344477392247848554187713483313686777593369417183961690017458189182364118595086886771295504134981596668085192596983902821022059884350598292357048648815864820875978029088100479004613674605125802056647283151796199968220039910358355853068209075661361778963698268785365338926503260242188557657415505263008430853803450586778280656842304259903313147521514309088350840554407996220710803309059829583363429023493995212941081086399168860728154420866429048697603431750045338740498371599513856022250253014341350863641472266795236888152034784375487547446881358109978826465357096290853934449611825398993547833180815169018653223919717942070277310838562110228480765799133146595874170935561761414771049769623603571685832185457679806703911402441944725077338319859705936140974994923545422392364540181883832347317129577247323780598527548029053282626968009293667999016221061485939783861567403744487295153919543513326196616382842539433390819442226168569258987934012441236308335820970111594252315002228782115974739078024230973775909750044984788542033190783227449793432415080117497235539067481586953015067792943098408166771969552121143216972852607532915766171796083331280779524858987342200459320377084374297734400437495044105211644149062996023003013669952427126097089566489437155437063235232637024071109646950318749491889125856361826010072510064219265003923682483121004176664694158885967098561661692958839744220157667294973059998498156572141071553602196684485919203057420514312558664576392583792380440267971805445211664516201667633343098074778985930092126536588434743712077016138931430194523207127092910492980809154331756726060930711862423662120078696900351316715768884142470703773518575896960529380253725353829776006422873756532822206128833458760368633082576210300820789501539354540568577671354851737903350571117746237076318256161902455158978231485938679626270145421941416274717508822425143367120963516846704030572292303809125249779170853463067939254079479719923918913485183228214031056291999538213978748309959318603934688845960624410058828743412905863768580788429601853645117504034264814433800114437018327154158681681503986718792876042037505999305454263727832783352165015472514003839485643957581740121177354107664481670045330828726332129997889382752457990138543867244515958896746793596777206491304681902225287490835323410068669234549210987411789266831553672325100064742977333397855781262706198777066377676627821705025110463955365342841441463725952459636144507467487110926365021942379469838209101482052974499052957750587928843201687350744199798132128102401740844492133213937994202324670731132784159049100402040546834396367710069569461985701056836574177879898416001522169058224961363993479345777922785507617971705259658515735813306409321104429491338665723626709809811320064797310891198557769398018740687398798337315262632852435813882683893627869173528537991493773535623463114590152061407112792659217780511974127428782398013803793865879994592139966508289548590444981169979045550912127395427827401540236715510261634116454434951580990520394758667137182515439175904988775856186386887105123924409505743759202563788742195075382587852545404468148344730504910786211036164026447597035995386543739788406664438029163965112307256233016147178466034703711596582614858602712949880172451001272215086687929143476477843809766772702549242807745086784028590564343561507864892249834432221834501078368808878987768723311417980878474324146200510971449024283768801646773187019163736921857198788894115070200262620044877135890818004385234942662258866157698359395312512305333807048522525377357895843623760673739116178227375177353946463077311633380799733129552232543129356321013904343287888080621738114772951723842297318487279872793398030548472448701239512396074787557182044193668460269845758437393119561285705122211513058318454099309525653170938266110314325722786651795004258813058602749641836101404875927811396718138686371063896672750760214409919477521933699814183834044890506932146987039516011613355803528449540099743299501256761023006271647163600483336409522370452822800239973281670563491026701702836854426392900518301869172033991282610138297904880750723915789010443692885948513971201715902926564147005830924143688227852185848172524852348736350287920446080503269887662796643227165480820867793729017440877326973295512911162410832734702586094183586008242393538714066241234315383006133616213284286856776419168310987188973452073717662454849085243937594799450877397831072183011978242317252294696507344928926785619558987517884541834533135375780389526962338030923173248836826544487526424697948830585579004735377778895658602000938362884558781289158442750395916188357814118571440040136420075941525458459473331336716835385654141419845269927838615621594364297507798451810886473960193619184755116439381949567943581488800825697357248698619330826172289321187803958977213160579701100310291817492263338336455208380222998762446595790558563651658168967731497951021812048273954875913303042698273866007225670609903724219268057423134595933293593470526632632000787749997721657237914349793250471383493155964533246477495894651369340625276157885188236151216473258475638886107253176338987239074344258180148601893694920363912673829223948862423449194946863350692533246739891915756133638595306879198967492138120585354926723461267995505552122304270505103845580398360106042501255668986292252672948188283733281207503619285413715887076713611228117265750277503286912228681864084403839600071119062838666415680559674736777857335806886338343024135685364643357558560087570828231168359524361257308740871344322878061192011871293065302837737119472796179829512759540032327180838201296177938575885000737482408506335639536529203448881346824532669387378484634279127735857335128698688583516647242160957450640081185670162297029715905964748323730139677764161176652030974553781820939390988448913656378645921111562931118864317312270467978680380174034345788978324860948870487805490058875064380744307915453193720704378368340798977753006178939160403127765038233344287848670393285556700329650407160231945540339105812926533840492143551123395364441738610604688897585365416672424701964779233243242673874761827489669595065103642341445708353223364948098263399558357919747149144455771987451397606411977009739529075512868166933419501434047125027712804005761149874868086083097145019496561421461646883329527954309425272308010705974825493091272549654409557474754274022275058907396194749806305153034788505614617840928220059995128121226794677702050699123733719009371714067982277400276079478434599968051847532200281794835139023754436727876981373532237686757287879789498102710927088598888231005202229187773159443212309190586842548547792943117114459344869585796028124431822155855041452356872908814686206008216389789581800910780021279811082643069351124631626148725952665935460377261182819435908864909501818101805709569263015792839077372230306542263994181256451251279016651318353669326029618791233007087130282961479134716524373909486355416336319067563158516657904080374507765614019685612768237425768454864942849216974206105620497300093413861777700219151336149280309300750745695264864088029861956310389772906545712120627791955876510891777065651338102000522309140132581323668681091537940681979578818051007339000803255960863191082112877981582756559400812556491724250476666143443434037449476268046898626936069758352560730979854164873787003408436039495974687566146293605927190990770844394372414361693207920504005430120654461116371555068182669132088586100746186119544643285059342261771164793484528435050293544931328056140820489066850477033412047619253913510172630640743443860249287835274437786332643201221827706921964130654793456977406978487127382238950062389506578502431193905832685916379706862254417526405004590052630417895020684211456489618264310672968531622802923530303185893424825306644139748409641454610750898473661731369109064053956082642265817149268370217601749896598912081944482381556729352220446191974194461803935542109804641215076747807620038464845589187479623436326663450798192529056863883412431219128905202005341501822798134770337824905300660667027171332518717388992728545091869769263079218334761164416074331486251332489560439823325032787344957333380525165203892020789298298763699810650647616946415184664576010739099380702201132412207216003873828189295558277938376595883674565334118806127354863203783468844276632629061112228701467664300673511864392140172992893488939490305864583688288739856919039391500561192856437973114993793300547013178367681617328682944582739587330945345085628270166944247566739759079229776834659096044259105139860965735009537320140686003098632294785993075655831016839742535097896744676139335612020344035599671137267137343798713125166430614050278764164234196733510883301068696657565541763612546220862127522002654444594673421610694265019785301131925165549649223010965569814606617080453618845023279388226511704119793248931686077683888826505911209400250039600175594129300329335623966915765308060848847871996401935489555962200546524727989337237259877677469770455367934133139645464612877839402697895100134475136206902183406024732985823410721244252335190682108007098526095478969359332504040959353501537924248549401589060840580701654219147459031510155382300248773942249785455935541634396522443407051399495986913798864045614235966600366339688834924915893683448102233431292553731958334022297878542816244180873626867688860248910858356483690912425030625988043614278910430345195655584307196797374010489450969194003425363818269969395490392558438235433157270123571224570764597567877813006440379609577248107729829553233852741793036898413663349204027640196979134158914396574753452844074384730286912368145767520645314189305181121377395068444705107692841809093001835917671712587491240138273418007862515494647880353739428973382721013172625943461818968990777956255113366869836481356914453845815714043653776821450074451112728684406088766313769749181859571648624223384348155843722143722532727297882433308587515898752097846904432585418585634121488789225012280705390573254111171063903041512564409083698306669453996249846927184793898163877259937280261490127191937194615254476936063175877058604552230010757265031880898630224527476351213737804599282778657000579728338841509615187643095405641270087886163923223507015438705780878857809325384796894771732012652722405583257156689512385234248487953651907134706725499096053213648555785428780231319786444621268730201201927110854607908707394719793337691823337214036598351230503387081252089251131860253398994954185685662509166279532468738967916892179920341858428023283997279479935570674354187274046444330739904497937225713620115064981673376031055229386426651610872118607672538489387011579991498822309824329921581098771400855917011625751903592286424150507867203632960709386111333800451274081234474981540822308123577170348362560294376546965770361900970613640412659831952323302738112986479890781510826684081344138175522750637564741932230478309574669928271961365085142825672548568057289580636688725683711085289105691514290494861243017817899233182658204246740733989312316022779726322994778363408161153492781886624828728679935157925196303920814520711744654482423720146058472808964778488680419423303186536694562219177199579814184153816867681683230817524846272077556666841344077010017592004372700519404985120468964781199656948236000778473094759289748637190288037627539395747410086276190446810868905802546190392383285819226362605848298607171153721455309832099116667912522308132955445203862746809078298693024932198209318286231279305739553844046888569991153795277299716551860908819208164583032775165100735475841903273493211392286678336469585274569315483877714384182802996272873500432429780230630177037398566318379050400411875648041940278801045344703979569135659738711700452113027650999500351544780668369776275633825653392827339516360395000728403431686048185209700922835250289984309399953148276373170781634716600420290583474723607373822363698704319776084370406273455577794312427547723536512322978108587683734685793963166818260382025891754134076221577847095296050012402097840093443560205781055688388248932958894707210095303972890798487653764407767083913290721700384272702385547213066154588783151191483394762628829898903226035570512967092541278100068304472954532437570317952182939774096619831779195770055629182110869381112442344411010921374257828193355105239577166580501186203029090536095326397547008788061059550547573392629915132974438849216599057133244935675487543079802770117888129218919204394538144590863911561630149110827553158570096552293903538486506877520767599993579598749057082921960771019064636999899303178658073642633858676035908436691675155694285076410194610730753712226897446680790771742600838829544698175924886766842584298745481155111511192849464178981047454816812813704686787469972961024070422937260136118997181971458144661625751088105842329527156128341488022355680358177001616351888386673207447976475373363900386600851958422223640084081805414540393239924159652797277437822081157434670510954946234680659272616525649463959393839125210480481001316549194584539678392406495502183070121624478338204457560360252630007151613526312197135027848470761518010705961304628921635842260951935731664000934178195797877335884135346379184070154337295914987203948575425940577573662212677745933837769803494831890860514803592472609138461702902042528237991573118153227465228746538049507452445921922846248846903128189719703153649729052012104134785117644011469417866032356787654529822957429480054947128386089543247574293603178045165980480873545594059250938285255764663352546641309389602552290275067789967401149069824180054906134506567472475330487979145055346257227594021121718933910688085404613924064059896491415283547810685646094703072532284181981042822590013700322093115753906034688696241010702264303862669950252082954100728790456508737549090456972306096753269670907853028567693450764906546435149079538621896465710448066818640888092773298464552268804457853311066680108211764882607852748648209872443591201829820215337501120953274640273831671462947809914927588328084633533038251321585245539541202491288539727933429111566305373958524578329657928187332323861440317118396334891376153904629165971732914437400933997871167715354681325195693376314717445070178249935867944527251650262964543542603299830265361175524943221453527065931252979666435471179133063163109233082283950838498370258229539531272970488249756889343998195032043973197076813298961895150831959656418410380886300247283716012727435137536335673105417493569371470871057236486790445149549436563041551215929215604614723977568029564423716393401131033662823915779878719091721616898289893513083639414436225586572465353703902354000418389611378533054733182423938809787808675541300946666405439917891979500969930487046129700500591190131484261754359243903750875239871297527863554636171954359542555287599074864253825216017643631558501951785856505637408194600420841545311871763881621246237888979666805956664650629947658652297594420426595357787756176475108098486824526338644671651046514214138491960602462392886114457094762298847098981870322427999810852490239127867435323525428728312105134999747185694050213685103113115578416933023412588045409341916097140408919861782406642276808519124402251283052432012206598667535228255395821644203018332344587541085329519256199486298038285270369809455841517029304160628422478477940521090856993289416461613916118543979021098691392143448967121960929305708910883169936860056385492574329658988810975892312273886682271158944645341435117790937254704993942358503271185957769453761389036002274687056840318129401718927726748856721755484743992811301606448287272070656404280081657042469652025156158291709182207138465496674779556923578119022093929875773841912408995861681498945498340650022099924326699147346311074934456825801718880931491323792577169351120874835055738100646610108352476277139379170099869044569673661786439369902469918050487551067547451884005896974740683045486722621319020212533011859712281637685837269151447668801674830803363417492636668338790416992556511125222630543028649943264071413104175517166371580765915638515511448427509391181002742783488921827281017269281399746914946365591857872606461374018251683663573301776479937181112441104112220282402846813399317354493630104730883466902775074322629182358027549834334423931878336597708250465969260045412225169546976604325475575818384230241792855735505126346768851120552034309357598927819453074021791004402437939458484561911925953032823400077271346761846203384487489905827588443169825653728821415149875930633146055620557500646098140649634897591896721986616675150559472724354540534435481964014952415380233224579225489220993103975659427704398615232161784494832940846188255182532970653869288210281134884560643866750328687320721609365678568428529533217934122971474288778341616461296094740030342957420831507467554996677704890445290984482570602260699791434633197910054240273638726889414718664687430475001707630433906728773917900390808191114558207545280764542541989310210383488171020969747758596642915999642826847550217645555882678785198386250832936423495601493911441274623391291621247704033714450700292391858227206384286076087644125904266953729401403706531647071400712157331925800013843952436406336588148328230214653187708922262981464380162170523836443151020920213352199471527502409198293299330426305681888143222036421125102602795975299747460103959639373212214519489966582633103312030509616659891946237917457767192170578925276055147069555007104543049439887119121127450461850621113260598083524783338764768710579287718455452397951338790925346744741113364187629126278872953132838177082811346232051103574374704578961642344240290826804537901091728423111764971796898702885407286717504710693175616461369521223602531077453441839284183426299390942010188190720687074366182481233310800551327286307982055343442846356453314258344374241541096822791658513726906908586540190659637761137312953496334227364489326960727205637879154132837131351828301653640090521186310768626201531296421518734546695079641667727189651473032746279936864226681351642569313305841858770427174708110305413870015876819447797460170784005823142429477595860324177938737579302942316883713758026856939080855688185731339493139511273832044304921699867192210473175450894819172006080247940272825425247271469256749522746764409249649009052719084345115668667495713384375199694101678208746881668072205841583512192543481773706529241782760273497222795468878205906978912167867499821381348729207266468927963520433770385666276013086153970280980127216146892999315692510131180953614886037651427226879322613950749501184326851669610293565081209380359083511288494227624328932122615425532158430613660037820287431545552799299178042398164280045614667683787308363223623341229262136102953703281392613525644142093705375330505605924697285825327514123044832005785135433589681512008925310733002739007340279080639404468215792727240306078403198700802943399552730009415076334304917857206477161906581879778046218417941121792683163740860770846175603335781284217295810916278888540922002713053290287496867996430980194629199972132226624482121980238525108728978226104170595804347024395622622204267928526456750076342476161370487710224679553114628475329978007845681765474081645492950138202057875455744750045028138187423554785679692963747027233769811495680560283634788481197535097783801520408194697267515419178092225031320010341331170055577247861582505601634448518433290348930320593004238440586660889078755035634269642586200876474226883207205714719069847767264229869864882592295965461134892111788417244599425364444636729650736209744569661345731193193456391425445589591664397286999124443935721856310145901593314448806059312358652377695329753542266031506089382716263370453695838302637878024570248524294608903946001460431413132619993126760242533998599070247102537940299393662777633972009278388538200987162677681517331394595516907307056351853698877020733535734016007827486301920564182240714802782855025615464298930767960309989038635889346351589161880480904100718544355764158067723855440232996618993268221556966540023497372223528933322825953278035475127190231394124670541767389065503837585820401904538394825323341105309325895669909764410219851324334049148675444737085873240563070401671587062542905361276886802725869856077169558055974245375073942885612702394851396456844126645436355920103619190560530674795937632417995611715854984630890002659661453153011228984855579349503184114246523163862290033625226687945919220848011705251282014040510985343310170814649307066890395881808200462757384007533945618752624201577196279437580199348765318266937474159152173839715772065332044934655724868043874907058296749101298254354311239570210449688586176895290774573967172968169523623094146280392313540433267823688543524150527562955363784172848355301588462030754689843501144321659370521097416703284053394327586859190196330059171399544643147900269447382674051532396310791178680053703714664888213338126112480281430844546504395403704527285421273730571745230059644715608105365952347406841672618694921614607730638114309692268344689158866292846697857271951382943592196944378945671719587636810156837387733654156123862088362395212287523702563433573547901091061563489667641607879981480465905100236281423768821978236297658464101338240469288152609739604957599781725357683294443252854701593245062670244921647484359723357771783251543732375075986669711325399498759730708745303609209743504447095059577094068094142556559346936093765286706916337202339357417155103230677641403040052607338072396797132291228233033580272134375777778008778710234383168451329364561269338761411493639152300607588875387597016321526016270494755312952399293728113751457228356366165555553465107556318653553473787323251537954284341849005454467345422783875351289711096306785020818778384923143649379801398901985119353942089931656559431112043261292322828462823606146774451261554966737676849206351949664950548077229773168776782217359718058551165161829766121804244069171230276448350124766672714141273477868260610716297687276436106934644960881313390638974531140827395362568780545841392305418330819444168910416801497675795419738585310570201108580028695905012587720702094475157746202043764647270741714544957884655908308368203522261466053525394304096014191730385299060722818169922929859743902686963229494164867178201832521369077422586968188108113621242418465210598800453123671460931208952591194760780366207859760747489883947442857014441227890864733312316721892016395323096232857353811088827290736775068539406851750719022822616475102930199462553204267827626631605420640924765351446141706445142061772494939461952032869212102443652871626045677442264730640023553833640330838873812363874480777738367823925407165225509732423017093110172012099326623979018834918179071073062162189151406201854144648837171520190292721432639757034326087635806411940105750609150697388428736619900775872581261847480720793693847975263404751677738855824255077189282151719829264345317746166163768259311601442109700384982227712827953183088981041907196838044070431126981291235570997598819619441347440998120420229752246866557081577645474304975114735051806805462121439805073269846414802345230461746258242770141320736034073281034969162508762063984339242734918982621096896437979645422071651337134861031835327931884448236971229493976537861887668916016369329843295708363333789764584843419018904597039403873022471583636922025832227404989132931391541160546904613826063646318400301799066804885522712838411745598843441280508276616048189677815047681113726006799868466018748645190545577506880753438013734183483187145125149781758495729607287663431373939222749809376191234442012139299283876410967339307949432894191778543390459745409499374705778609998575609777430386540398255770606937425535685062908283330742411554007662477104036449690180016963360187044853109775719516502858945017060301580342252803113380720527051788126634480241248552756618330088008285614379171336513145059626274178384680431187382845714544587823337723922851799463149695092941247283156946703147743107289929312327298255144505361553343119734355762861228156968109528518030919444223260084240501456412352762491070066148410749658608641308911416235134193728698435445953053307822913079012990994448006352008123921785675245701429077130800245394730339271810361042372543470997390382582017548903518745747510306373023096689066643841188431754424219118060021892788198571069738641550145216683028261584924978745925718759392265338068683924779669218068142838150892883088247769874376249038217907716848938965401050596806198539902940079334633412289414036516206573813485950127096487548286513910119789228138869733781387365523941509833145325052996789107192152304010700455965262545092720155684225054266821976505028702315881639142391654049258858820518644307645437661020730893363527297538810390717438341556133757582031551782138705287143380019633000809569711972642852362617885597967259961874768614093139376126245761953885540834751804874747048463747380100725547614474668277107223230138957422427914376636231935827505911179492168863807467387894457095520267345928587394010218380418208442383673810623472959762836811357597612699073310261584178236464163151988838823742526830556000448133474427987942448188297021956624750835188800351825825684099268704869801996074301659395056449232551295632293161311481811736830957966486612946095831527588802735880400199307020395410147552868002293128606915072068706581598031201630855626533110855354022755903198115106692668130110049968047459313793606058560365945269159119539273429556371193260878996830025980445701461442087270272296001671263798720697167983189232156697598216732095931268079514871806582330353868046763649148926315876830124071227012168435998113161483125390931230743607316048428964898246077912531543838425549737259694220910142383951168604902844492526751002210891780607644907849024282735691909177715569825193304953595834032674571470898264343067969732627779626570112516762372095640190290395512051456796929222700470892586925979429623819685492342142436287999832026617729257148837922882960741523815251430555746795424528635023985341454141358535893592031891491276729482564801197802590647319179428160005696589847243694675001476690437780253325358461857467949311568189946893572851237396677172588574570709031328428245875964435218431006873208001956886400949862418295393197010071713639130725277084294514092290674985552251663011311106982583546783997402471362081075965920576113934189838568440162445909539801198562703059807202429464877893724136088277398665797584619741426125788159984729868432983008833080641306894529877673698907087773243472260582618952434327059134282833233279234538371381873256797966960928033644084326012535804373560934757098463993796533391351991113566877917263335361004747611974252767172034889330440492999775542071236974938072568240717037886956595567596526005948591617791725601674276393982489636667370039387587839734636950460000859541264275060863095765281937841878141345274341451521245508052235256845613143032129376851203494665387076556904652460813354532584036468106634205269174446341219320545213243947940481671413357494826098422177461341484645977029333420551299091250064622519092913877940862373548828968618212245170424887325471905288606803412282466028135733170501853048327038180258735083366716212531906511311187883502683703348439382798037380359657682514544324123987420257897446581875868094508350635604204319176972715429983256055841930614410658010428327800080640940368162129766620746207267349533836143283162931803117195461704197089584711450558800563044100830218826276808737246331871581184630463659551476442694292580476719351020806454916645420568706652322446111508536511323019088318668240527399010730432827705026996570198366252915338398111436278928608378634734262426617222820878156564402386576830839270812730178328039576362344578831240977619376547168711070892214029091793624792220803215174869793164015263709063907827696622471712054823696902506810188557609114317025196025865045584322800435715927791502832655784998246677261732533944952749816661020032985889064691546563701356702203264487670853398249716120679023470220841997699944959678049792182890664706094905437319967155100638451749485193095920676345581154781210688279813315672323589819192878450691682411070235157391162362258009335780621419192612700825645160319025252361481944376402886146080767323390719568173633926620044639670820643212549856023680950779643656813783356117606048585851162821720587093152504622563216888353401797159861673808657627925972957199336749252186308705130245523632133268123688658817785325284367385471468912854361265761991074030003952890329615484060675676101698290659593694200609238998311567124900832270025348693196833565574373259220438587038527101327888250233997846632735864494902166680466197084521016353080972332231807378689415993626754187023889637000125969199356075765776848649008585060485947328280011921751643279196702941191091793195888459462845239315927183920307788110996135113927434910168425432500053616046543432323966807432501542724812875687599009239393419202767271759862386834043430185353465577856386159680866270597700380759095992713294987693514662458700233204372475658487779083096273848144009551644346677758572931692475139171835491957922241768030994817130973081492774619649371774134943180784824361453083299582225915000171581839990690301593888824969553678023169592001393608298755897348164877938707401632271912704461498246425618174634614429876569718778465501684189412735437532645565795270744794047385363352538009254861342440274409900393488267947175186936317197569110857336445013893186968468802283355144819935569091433481312749497980044130221936819592259975088943179442774382834246888361265251592185355588111090758764649756887441872638560093691325708943962712262129513689724529343860622789879091605705968527604322194191919082641328079595629673688185755747033408870346828539856800089751569640397385687958131776298744176063941028423005567111076835259389619088072189107802693817116424970449066998178496392933309991523994026178959065863544894512407681745133629615704791507750950679637932510406439878120567942576896384063936702260144956564929314161271575687000631063468589018579155843935406523850543459787230206302636510792534453525356959785208935481665358343937867167478220742964724524572125934757152945919754957513528708429371278552983280851114463440917882891661888854145046666961025300041947280586206262879186576186039887751627632870904960183786336140187108481638057065979536295398959688257908156873059961296181490064823713902487399520729336562337654452718048757317566165331079630496757601910985127759535704398534210499563239260376297548835153226473062678672099864556731728722639519636038811953692431096686478913721538583812211839898151155965124317302076961851062657277688640511146360856468962373941396712894041735680595879477620380294941108258547163105979269886872934318916062031544174902956764031585350593349817292632813328281882261280332389496637529114639562877726052227447205497429206626505423242529893704121761184921986532029326251687930381464617985811289456246246789037575032434889909380464984487635775223800679477228843909604160824990968684356556370309935748063561997682157909648496999422694686575558518425224035571372731080670186939217657277600401595403572200510814734765017492012662933607733192568244577666134121891999881731904596476207576084522613259676949134067421827592405618238027953406134398054662055236227599227785551890909125599567043497508530864128076678907225463108241835460288978749113347566500449050835828904064335573352999269103855737953874133284791366964478991977756983204794124179024338935724516609528434401219220402256796916782482957804309834960035812754600029684068180122481878822026905518676727822152486260145597935002333062993296303293251166520270442889780439994532651463800312516055541505821192047381866102730327401798690039050940979921398558732057077766191281151920717151203430595333908488004966313715293298822476113605191042727594917609831553674103195718902615906972238481668438032085371223854599627678097394460408013995412894545906482215074065936826699168080206929306390407798464971137000511293758464683710276272265913969377392811644033455252609872031634026553536766318793740823120730623093318344020237570989483088609764914207010211135210976769369607302126493966096802023365952039995447065233047170295996225322551205332226510171365506703256221164987289936182236378848242857145378182391921275954341540436243057461380962736593956619937301554518153485794630196053767303249444659048991462599849171893514999179647993261938921324427743701039298750289687579823176398298920839603213307321299087269272015668325619925830592040548616859708830771228861058996644785863157688334474718066089855885394741235897244326431698368610032859305524246837121148532627317330835285259622214515402706501648842708047977446195058066210283904748363795293514811303710012716566938536180459390036966519612493372221996616805510272813492560644784619010911953629147891280406585155471730782935668114398136117232983372268481598212335076695503984503713125756486666339877289829641147335823099966422133856644579902171103734801132506931768897895520227983254877200290976004910045838161470500630476796008597644195511285377156650957399543386193861544593662868799370957062498920292910963870695707488880041672059543887678472025022558450794802755470223178522714235108052929896655725548744559493029581654167381734903339596129895304101931718950174800157259725653219065896851230527443646907684366083911631112670384922764276124598820565127911689235680039127363905312032697123568546984457013441328331010074738956566915699418582509899023925680835514629246489051540467976768044595032162000021845491228808337076901015991209612946821678584372177233566312823423561416058788310573281143235817362335768783803499132096017774282029318456826841580938205050151456776973127997236216013639521709910537523218530545459147522869609693837985037616577488647061894638616511064456381778271114395979055934603912616975906508702283652325119773332027461547767224767617710121195410052773566343724538410493412120096427277332895566506630683290997570699252214802380832141628366351519351264834367565803240979812889170332393762675724867137069149574969628699147721227870568916635378861278671087416084496869759861248678271727122253973006852051694433096214875581628693559194286736124021003775156549286129963773000290592440076646050586591923895918341620046897917979151708917994691442325055193038009205122164885514746877019061499746993464084170443891616324385229035642893459626079706267918908539902385954598418413850076653875048339570670518371623542492442264364276286443517262441729459736450721312522872065054511031811185382628265689029203982077087157541356826617080652415372041096277778940655505685171895466700842530750194867099180664865622748370012921987484244057068153201826379303398911331740910399232477568057660872262645540755974527037394637965198758466130783916022584678928230174427467812739853050776102519601519890278213673172451488981444312874276693360408958686940570387184753629336010004781317517646932367045697248920406612394735837638043505906919912228619570532886804919756388965670221861312256554490827065217355882983308880702788614658735565541691758035079097912729899376137738985589530859942608434036786737330443031311169765757451115011446062853522901401211191637862173653688543358849903276414446101948710138299727962049336439578106455535453170883322047759121213495433079341920727292865465554723192259184090203416564403525722678345985712852418915920076152453939775774814808582675308670570468966855823526367345404669067985030407024160112789365090754562946095825433070583420419191788903055002834122577734601378545108291814144516498884145841657118784854128113381704873099866030148935485908070750808831400033866781880841024886011577727431090958985281542790102104558309017224160182319908494476903434900693396465414804241630324838816118506880466795009709289622521769055122165450264497948900659735283377138428011764400365340919826432361881377788106709419138013044285276736993360529134194653331520865067991614872335056441636184619871686019352088497687398868584036770321091630731412551516879340442140444974256237190532460031978528879025885308642643016724499181390239192626588840938099220462916667605321928301496089643612341123196519959092009931249060906705339390930811091709087031745597044684574581030326324732053635650653056162262059051535355539462304893684005489122332187808614063586407847276919454399727757029962176494653301989382721210228522867788403665008158675020673839381481746575999005335341475963496939060862868192989887856771649156787285821169648485007005769184463764044967107020316242772046020807835014927157737596585835573697829497563395646620550073847554163711738396847855280773403208377273388721952803157455281373670907920379305246020725253019541236464787460428515760826918809353739420222858049222601237126419914929532898649326133875750525864626179307031337244381339333618653881188561615126713986772823636321545845528260769732181926534665567750461383106029732472424547974719888236480574416510102595378294151337808624940285650673074646159333582188856520442516191768747830645793181174900830716389845804153305426015015829542509829318445121727829298603356893718318158654987879078907751328125873178876143493102950303812312092010903433946971866908918028313090705642529292894674116334163315565483401860588163630906604977485855734736101241459994253353498460321801845886509783920389615091990768673294892713319193774494380006268295980479580348688912902789826375687246310272883540813445368920291965859490873495252834283888917319393741992262644520221145550210366972268508950160356678902833809213818381698863216887001099239964516693326007715276516416932940113049922009242666462285339972971406490700730272623208892893987293045334955679976096055209749537338303569956518974844397609646114740733269206598855437316889424005822854911565514612597360058615198025824248032005398950259315992625012082845447268254344054669745108543026029564585677843381882741926640518531373782684820853807851637777549853158220077622480885726438648115124586310994461567060520199972296721490314463707552320887841221550495915514701469968988963787964105344458600251172253201356134910151007857116545082584391124161256895971995740834954700515771655012120091498642198266032490325428739728375435491261881475983220311644838204031884408957121160283257977109532218625085263646839276807504605882849141335385149846942005650838645067290396835234676303918937120301784365829605281424146181199211124453268922635503157565204549485721303604028777106735760369851789526292805881588712895528213949599955896383226746986660874578621501486678656790121871564731457364530067556072098767291013107127742363786399075884015910859844214657717529236587439038825061148225004545132121064919099835771627220046852097115118960673948346604555775932247945787905339843742750215388751814781063380327315854812005325023047124899231029702433001938955828483873781447355518963680800675820321763843182355016796518434516117764208230339800539450841730721048999714268698240331124670046823085887629561765225099513954873270332701146043129977112566949309553974783219834561962158901965076655552396611909636543211535802562947436777179341040655591941961705352601917807592693542844434287881507084205155553284899217123926708115818094491766898714281885273780062183317109996486560274821500880192925244927215285608793204034004779497538317807411754354582424984518593850903396631285710185621676752929837118540959071725303591810667206442814303312582783387882357269145797743540113670907800045867921140497887520698313128922391286565205614254674400734854242968968230832339501543924573492327821438905982633918438931781318053237763945965873652925791379633411201103677275260849492575096714284534510173284787148808205570611962547814002748489060622299029270389056080190323254619283361299625843326867097247711213489999968480843485135687206332935301415946302620356484824202376291954791522534838187637724513179698417005844598967898076335367731205474794060718822415661065909197780200769192065955468693625322172435324977340065356584304402165200924362351406029622481783616328954272265304722320755571635263697371218877794405625342424947325655068122607157765341125543598020326026479993329800526565172313539646424378522476700043750929333293965432485879786852536150061974184356866884674939714533722667992244578189735115374103272966173522233767849889315081582863508419842496855057088033289510098352897353935203367402349090122343254751240923994906099261728600364844676407448890929296786350751697782093269518762088032545994137253008516423127200330614815376414931046550130712702703109607292102468022768365507544480441165533443868334003796324351227982120660157318863638801788529904112313471528218177643321349235057827404536083629467944172974877587088233470650060186762187870648319879423166284717654322194301614079867162689281907089127008735864819057981247152736055328996525568809688636726156285697330093482784505199665222898493991000206486883161567989765612252595520153417401647211055929528393888938680946183715274592754565348382461619919909930906654789438200473556003565242709072481937788467569216910805250419573751261386686814242966617036965975279884822382723574468558968046882874620976623906644879620345908435269631470859328245899928220942753786711964210305879626684135356181822847443682514788934831409810982459805793535587862099761217161532590916866960852138891421672442976479052006982723469254406321023116935046179963633557839114164087653542612672596388424234545980137928383104266253973265307216162530930370794267310410896404749793250464710499641286883710299524868240785309248847661637449199314364311281779427266502533317587844901140732097898064351008535555977242743398782683319847266546355059373847596045980894983835734881511244318478428649788900417112536689651564284574930558356336549893724408104517638799776146003078826302438131874510882426385118691920396014095516116795986355745321983742298316850660545779014724253192272536217713739736020237925764140095332738656981931918395204831914519950972805297714175152981537227945513887388173139484076743863022151071821853236433788389325943688651544944670371823940566439800479373458100474856596390472323486229962866004000159717372117946719881421852274278245821656280763521245122181679020876102750445783382995220295187867293543965667035529059613360273055720004987115874285068209267655370448899031576585447441933555382136980190737196023244876491600300387297339055406619970516620174771608825489630570242799616014983935527150651569554561179070976714175099317891686643402458059221971174561658078486196133382216522738897971438855368051326599058743628418636056425137845463684511459888477041225874561771765517357975368762615826406877618889563933068890559943424836276991597386482213994338562818888860135060827938950944322841501298381331126332382939698440056924844433936637281187525885685157124153329972774999791355064838879003376951462548391886510334883108167498388469407132426565158358854386673937741009788636966314303723099161230045180812237306742777649581865502874616607544216226531048954208828126438992035935976762568071713573273525191933288773458145552831865584624557826537267414976769309406814807432860386100790144086844831051080163159122051157072059293148729745177180573362087162931292148072808775063565858905079184435823269668766283499339553390859397949255118854207697760051081978698247820602155831631774534545719475899968510757354201326553838467482370440665782062410445582903017490827772256191640590687965660513525087289077744278175571750675950982891345126102273719162448341880505121369259215657590719111986538126590463895016875958821232700565503818399981611738104040748424528570078777098097980434845246203140397081084985643913113345591972352400668358237227037181691955996208154371947984303451392346024170611369724685415906758562963167480298610435556188973987707539074192702186614989076091546306754603421207678642004285284256716642329605073900845372667525662195678215943414568979939937089632397230772974487042810040309374145296526874465115412702174357779304285549869440562064520347003477983557294831164688886450737250417346159344898657640294602789846107172183367876284411016126922741864743418493988308094814606570479999589363381800265488575507141105001612363291447848684241350827931353510556871417878093632088300902462546858500776333072596899663356480248652562068489414526316616725127770224125020735431476865732216497314841877284072385574499147792381823806045633785038065592251643757963832536801068294588735078675218365397493712153264302531295646000076847212853438395628179044321498337154265813297216490966739290064779065749687541189230909582591865979772409084445747409834088895508697973772924750886899702545000118722633031204903545659820227440518206008133717472634725930780305412105379344205666760748588601630762609410691665948350468392338382059653277584249924576459951439748604306438477547911886666499340287132931591301854984020364826222988564264518743494065916035624925889166686754923679325795898107679413936155835380885386162709622443927762794992950094618025386377607349964809985430805373519276490952487642279462257744699219538320721817560074613795647781847019838828722668003977013026961489645250346684722954936390137049473982105507085659676311379287421727990710976056421999990351396262286407337786274811707862451909295962796495601716237541070299880625338907573432580299463633393984996512660226537881777651100122433662324590834068177590025292213318390877957284916343591146124085424602818361067265179884751899705629695083693128314762677182583659674224163714773459719571069971121663675642234800702576983470011470859044663976714530214728529442285907355214443824758683338673357255065733668356398569468026706493651942540945807066183329193542719504651879752705566882942899266097567380546836193960100497424992037428514427777439057102763086099445396886430231994227138795318040541666385171751538003307169139772027260441299210595000433479535518319646516447371175293977221536078993029720601264350949379083266486541530854680769032756362848585743201770077997527419503360695739075501963092774920854808192196961508122502868484034461842627994370265971496111687789195524503478464185117340009435330261039457760930055700391156824624807743153791300047086610710134556675430215744904953095319967205226520409007526220397263204415744636747717270562088140967715992902695451090677319910319829047889578755838741575460537961785145838501620293871979003338028274429802588932891512062180765739126638666806967438056947116397948677787959426773838306224823980455337260366061782438595965323256613319940821747548453972686861332220464318554607959056754283942054816956820853328462433643597349351778007779563143428676195390866387875535745058942022597751163772514318253923452240203880783860533536130572077737250511705141532891168380522267117349794685534163477308996883550315810144844146818468294127412129953095644394443668129401513704382285062921161666449199974705855921597084141794071133268970320980839202577285893434396904467285540868259005157761936244197665021680429567859081306834651005427225944266721634390967212364082611413366937195131853856284646199479826066006145313382921742558449563396875971887352919503238501765505118156445152378540635398146677660912178754217896245735988775789315166766634744520953204647265669281388227586663093039662692418853721943164061186735287717529345296788183604561916776023933571213023941308722365183532653707525690750569355681299132080417485101830960811763045972697969070463063919120795178953707680118957325128185070258807155641695704383047040569734765460094034023061877035140076494045402872994081575907377842936182215536220220138679254516383619757756645759664883034169046504269580769952069512775502593879415310360040642131700425424523250178492122450205141605638034827626090795199316005505372084831986104668872279207491695506510939228185402815249781071220334532816238167524083725894025966679790151522854981765909955677422184539723381727838369781361799579446980530355431030396757677999981587049400790772603984401411300471278133158626069353278277646373982342025579147406615805766133528032486467087960254827062717098289239680668738033582803712902466378254027324123244493449902806567847516073966558136691629577067147998781568883375620457203751874421681929831525749052549215663793120181104503714129732387162051642577421975720112198256858017398504644976050263652795088483919308449546240187835951053867356159314404103905195632239353198152956571505302923574290174756677534203838359110486322458876795252403170948688141038081858619961776556540717183834578982820556795106382969649707906338963052524248317864453038346550882559779038313332459958482620338230735034808610411088783606021421720802403150849291047931891727192613822022572077743210039268808201734185968100504442230655173933602286514882657613785083317942314773798917329174540053444840719472391979598468948521616104499933367393475858296813678843600432563844129029791702032812695622905540101653126431153610874508168489851000029498911808908332105474120421298119912600114483043277064690386894319090807854598790971445792853911598395414942264214326798389300263656051156351066549268376593789222147585737331632296944038739160760819446481780020764438228507933287433183840928055775677821785729225688290878763188296020767697763280706255942811376322667795405191189127133515284810241280532293379991602057203715650533954476425414115909981846049760257727872664613982054299021058162534143116129442095789853438621999728208621995935451836536440198048372311077863328623935034218663359416717027473062237681961869014203305690820544532368857018915774504335041863697296648750125626408004387774753222292775203226217818372056995856559757798813889677140455308096620722467150373066205828186864099958016361692179566030674574564678352032555402305252322556732453007532089848297838234485769751225907417263945914380858423827866641036229245450902269369737173830740706355384021836644675645350436661966030321362826084142165118815294369639408383117572481161096702719435265488752165396877686247986676795193832555676777003181263877750738375497197039908055023543066293180331616818516856371901601784092936885520012497945475295709979327125770322672100754169049928425965096591938705087132296940131074492697454732978066062729879066029840937015906037453668445744617440416685789716844956225462456874008218469993652750856153033694624067870381386006581422443534244119766312043779453100745391602482974888886371448262707203121811602220276375677622048827914627247582368442324742506760525672041475934472713459553595685119851184409532498345253121924728609057933632089785566321539763499431523780217155189179364478352858512843047188432468162695576985708868527074911439994877441917498547288545962791618737437741276876948582969547867918543372520214504681829655911023143119192781294793254619990213979803915462060988597391527014671751555872687935766861078951507218956175707564767575991651467136213150058826942034724475699163542120614164328364419762290977987063878805985203254655972923299014200194331215241691471871178523335797104984556152659891373792290722506916845999928157956004347374131655523759730116657413940634333515235983505584114639834292222007490696251819764229469686744034894815739186468064291191090270960193944643884278114102601982550740446620164674442101899271251675328775294177580799309692492740014672554324763166547974873233353998072092132954607833423067115678537425176672491164491492334716992457268918047347404738196102963084046464525171203271972630972813885682857774343209460211159860902886418703958335167978288165603471801399281737505053156265840940394692781795419700143258119266970728943270936076688999631177030120472751071036829133704695188294123602539229799575513131284650813100036742792973904424025877654139204264045626140337351174883900533016492085555125370886817782591881633671360266041972305395870199483311499627102652120436687199937450603541927579185283396293258577458415603674372350213953430812406197051323269462946365223813924727057911163103804730271550177830123575061867294478850951801353914291918393872350601327533845510119462005305595174666213009261338447294050200685318502985148840317500268179674436888788661197690958460563011180830602956609111830160994678780779284866943194070929031132972038890529764117221716917873190268105427003552736668331561506105733236513256331555047921312662811767275122681729826293522926575476503707400493366461977474108988318931495918507354549543544033687313971197704725954215692783821424371164941618375188298473173502451728337750205372465783974111161080553754420236243711031487603610481571288002599331498588002237850103883741509961070947717033580650693335914312901252412718437944188414635668419131028583163451384561070854865178315406498047373029534850354364545429152901333602416401981540613828053506945201074765621975751321940111864001271636422137471600852204205927156510637810603646331444597537548811488126860385304893154027943647682826033213714645600007930312971504115570812618693570241110100628664985173852420635839368642042539518715901196160636057895353200201552136834830328724534858540376785129827192776930350389891911575983638869815801321075251169378006962428846308910794890243267165826256707262269500699153306414937602371967064045419626264920188840676136845050720913275409074810160687161172748578869091316286060016838847464257072374379352939075626589536151658682203813452532938225987757733499797188491947354420473676251958298576455809578262378587676374282986227347994995945630195657662308487157722066736943180682728018391502049039204775640986078931537058059906792301077763116156363363145309869746327624151903284220901919670676404485658537631942834647471444418857418545363005950459359982019968343276624538899743870421447074123273711194636054796814601005729392444095806563005021277156989688598049199569566020557716585438249213822597526152014768253380102712275406599198443159459013497546757814042722205294566878164253941689662190966594347319970896532542522858205121113370953724743117720123560315140473432438824199967534108507458818683590817762727945054967751978464995325774005119756641321995864970774749713642226565571268377111086102192506067527084722578181511394402791870477717949888612507029653264796369201423992457057054904922877847791252002559623830433637981666481088589038286236497370611770907065291240187428433941285349775805958836432735821017054014583280712131779400233952660203749106072131737895312531199652767167044683593011786737236002157224434062120077326998976312182391941985748717345516476178032961198643815720903377820760316788259656050870723107207617538956556703702025963597032508969136681397953166371256105783944708416930735197998791992756267569133378705959989315729898607665010669890581414865711681864509842760614993600593137698588399639699918712247458619912736114782454840017597732759429791022973027820791177341083423848612491713377848563112304218199838048905247718405929583079296021170335961608155159859296178901530058036388138414507164014401839786852391181742864526429023383558028867793962655856989057029548098835550077547449097586686931076787920025105092173270119311609367175266460474718224971475638499602172349853439202310996646302549398766950519675913508865446849012912390581522639295534599905208022378635515943012129331509356927672831895141356070226934575592131995975754154179052357796948790414029539700588989290056340446163933594667586406791799822599859382238802623519922790525728936815321086513862064281718667735910339359682048458330409282549767268389075512748375326833460930215530815776912364306317662258395519068027993151179163322075583699997590233911788029700023982407325173711222203667888607429386217120439325265126704054527609306276962839609867458567966151313167435733498290176946173200471908070906547476769481861775750808515788534117063381921308654050121969312817258862641808103935624823506633618514613336951563070753882539015252365265634200438839135261220575765574723164293252076600333339877794652384347866165381551054058495553093618030344227415495205021215341491663868321788275943245131729456493898586555497335832630139460804102300701488134804061545679310060845204849597730768757728202687933012698458834468788051189315902801675698610945002124891923115862599718139390692008064630585211070512634137394954957881222311858441581190902419331075045894677305953516929730854329770725704059196209462474326393700023167093064353255576670517790583625668132883030017036632830818725687715465529335613138666286901735887558104407826649074310026576797428173095131460876878878958967082729591467304882798671480889154928896411865935871115320330433146922587535974142674723056564392393657344682074715990707865394257029951026749731589596507254372489213837990802437164028150097053639093274415851934921717930913267583224705392137816607648298168142554050440261541193138242513376812432128432060382817340674332965228031648926525042270302725509535818472971799264507403617110804553696273792624953530821431206395073883206116768579599809874247036998960352986366584726234752515381549355838062596882061668198299063509001838325754566015822271849883191658296373071266095799900650192658750006489666769714682073891897289399535337758326079782977084921822144643734661070270759135704630878801732398810582134513892648896951096263386418930435206892178055857100849457119581361798647175018523689313564106934424266446001288952563937627068649916700888856129773108661798010345271266271869100041607647503616853355964378146796820927994753057903728403223486552013708645896225763553338912614852368188931326330283678686787772884513524018191783100954871479196818380685277536651607282395247392908607681077712967476367221285987752367153019749848603358651863849140700215470949046140485097447430671776545885430817011284167343487858304963965862870657606115263951934144744907617567500911206816172785869859018623228111996875750247424283656697175121911713933508394064999099838346252605335712400519824450613577176792974733599213866705660000414418291867953068284444953336056347673043918385962768454415689819727761871228262294113250227833530867640909151077193406123082550864803098067096343339186469023452558770754055534650977037020581838430463509529444305589201568477659179281552229242357034966450979022677948025007603195302927946204718436190872016226101518743940208573303152103434163741330108619431106570299367575756660229232463082218937258041022351021515889063757274551022458102519381159921169896836034728797437186874698509524963796805135115782461802434286886055401314035536626799822583143190774837120737444492915651470836750955904163154132627676553746460527101704471321267014774521871888904642384586745426122829733460629372134400056740120858301779205788809204108508574742023853060731829276305268288675812415569613231325824404721646925179094224305967645465740047291714148220230521695340743578995391825311310965455001601214432296331528486000969933735024339116521459030332506329553715946563400794554667083839779406380986561124435595762530668507052182902781088714160580451661643056741839276734399542957114160664850855974333497344949349389514828279364943019367851770331490607554181450568268171649239988976067338876253744388337486043415287494654568960770218756377990227791026237001464246575181678612094430648378434936195764979597213423629220726248427909439758688098654338403813038461995497324192691561388193034882819010003796156775341292116556834256560547816064987658794573664066772329896876718345831078708352977508116272370484999548315537211801393106686088582417289947597573351141175170415397742282532509478454415757117401207797674478499218398076286858121098958106348173979281147717691161187591476681852890546772936170471899965756993941376513376360370839699117990255430253067626218210086403077582992650289094750482452871565174930774625742097199852178453349767107455192356629388609368089059129241965591130470972549568196240591654224483888027471116006821558765599567718257972997720762568074039002070868295962847313695900133188223986540251396244781939405708805263713404150951830485936185075563751975918725546301242646423313702873219827706380901096509162105566949704166130506391337934208302442981402027874958608943837251066208496777379569417818973138578059349582840947022803428893500307891273133719598724845459120957735296269781152869083156173259618646945241647949104946589939676602741442219714927704840642519308480972697892563992424968664319189292746943176089670131079238394559121267062584590941162129473002721670266738275480192923886966032449712408142844157648827771257087763201810859641626901602077386408502347029141898274998573373111013964656360444783853417093946151253095010335196278154925267595788417337568601970760915829615935585250645683337811574236232212932929069654805321184979047121466513298268233170179574330601451152700435562001136750776704566860343305923998651836051277982950043066331977129588890815389728315465121309514719645528256401733148830170356504181028549243272645192734184014967015385501426096172010130487619455378810292329516107072109038483211809743801730265321645642726827153193349215658572993238967457263523799255543858460075694370436327282884732655636833263520233966753576739085409341344845594501475841701886359573450876721863640793984326922036743459200580905499265016270823850101388938859918613421321095221643070052836107443740719371926929696151584359310569241493942353669549020408799894190627449364107740643491158568611624693453301125800562172890137772646935955464567264079139555154296305945561945903258532958356245182793888033957015938579195561723013463495731229699735300054400235353848035362257870759873364432009517720805510511158861343352034594246275769461719146537847204144243584495068560442572571805415889446392071480359889128978992033019226775698807503087972933461806065651486041391999038275749665141697024733625650095493313876111078798379716022553518893820138925007311784109361314606021125034760954273849465526495170101830626421402733253511272661201955011886851342545402664877020881315226070436636335866726785265862418030319924919265278315246096158492468715620282694792039577424567540528171609707378574076134067839897771301826679536631148887897412701312773945730629887711692328589765099240634660043707744333604742498516178152175853915559092527956645926723009180033838551754316234508962333173585591001794095947251448714914425012343947615669890016977351248492519109933558512568938118029274080453786494033911900759796819925495767142447746455829992615268244654814010760484678273784328365677806952641982573415481425590087499656767444267319959868778412488727322987637939795153712709320832055353371976821893604508038406580240703166307779949541890804175348419135761142037780471699890698854563498673168947004391265454388798679535717910085573159369377675338034195596480072279910768474637378473509469923209783594965817728984990393043367729713212496974814524937237589215039719792526537375663249560707175389936733165388291942468817727738486824848711176913981144515008891324715654674944277290616559171055753606010009554786920807695893093025850651343674326941297419198665552517447799990483153480610586114744332297512609779441613010028742202076802313719334276546929104082940627910297588260178327994176468613650824859431429977816687316902211203736658419052119732160151559328476255684510308619173184556440891297472461563278129903140369475635670682608211047435404663566324240890369892841817481883005942780768189361306800469624252177541545114529327172086917497772714169548649104089126161263815391530023339177189189290818128669347789698604562166619610213310814113554917649352376641301218099026089750513343862473938354028572754182455831108054471390739144728723672010546458910759331990308374740399333849024550953935767785047564530006153938735009677095733143988840001139082026036096529159829680978468328970863960452378015980802412273206455698328634433843975610755041079005640884081196422784490513900971902302921801647494922919484756832805173906403704125121783507021267592961512762693985285339258646024225788793808102800794455666123044545730595146614926259168368529335529508438268485315691324312520614836627185360945666273405818374319449190285265242955058809079190902166482393413200325696830179551354437663077692463677341382251875352074454422947035124898179183546636526486596051236508248976252547243366047842682617302343054774290937577290193748319187507032356889554349187449711980692603209229039304752574245858515733038202570639591512841151099287483492355581566765841829576362744474157030546889657771542023944506193911839376364170375960062378200869004280107375018318031573719459393699471497835015700986675386024202130006043293501782425419388759636195978290134670112296475673798434294858807463043490778444328512219328093604778930669815038578198863932214342445107143999050253942034205674602949752657403365369298395605997225575378016428615732435336973748329965272373130403934724329734426796297749560984167406413888267424737796297920391571277342952842096682797909988526171588248491283765645941377596671308576991274101763222178702221665656601629645202644034763023657365458481001269481328546979782968365754524706807245580559431976270778870765224878927460697481955901772339446372770486808387890810458679813318362316926050143371256572385743761424626222614856694550842071369940724220387147690503220946239102121607044353492743990016280736050624169308780018343520815847238577461149915230152498308744293176831397960004407016094670208504413438517768625155582978502087602951227466078697089980172308790948663120130679852400059710823478974219251649886572851461791290012530499559127596595955362751762880681871418997907479776088408383454652872589018402904399573501990134215489148071122756438622203723809309482334694212977926871366583162701270342785886150010656603487263194479789952005400044408545902669037105733643095657300626933157487343994527772961051264730283372942800553206700930070517247463000265569540661350617538765081008500063854646930009946596047803377111492500490536289903861457121998515454114143238550411789787786229633757559481124480072154037705644094326981364592444302162155931671373976393593928678123032401138542258829777033769707309533708913285307863028303152123000979141871789748888743028535341767021216876622520910831519280382582444245094998728826775746247819329460720590481620447422606048827967379518927755989544146881525806540948502119898635809619858512284271741498754772537716222143595748659856179972461080962305771059056296807454391986280646626651879988941226869680722702125406142657572324646409209015649936609744202531576945254972644967886655497598456210342282868216278648436883790862512553494676707658001006697355993493135716319739420122859307702488956652892040282834170971379837199364175808532951279444671027508328132394460980955917548049479093729167426323662063962599020156679755494082273830620488004125829419438269795371834395906827174156872278318711252317863289992563557315203942001106441630316195730055541799841154191003569891566388600719173454658914118186885352387878957570975080801078548157095612664764924917930900810320684287241511942597595377894600350239986329188459918375769474612477645354452332665941429376352520850540474354650835672854350692218026293188968936184917525442202946279471190760578534897052702673731716065534833821635822643439871619975754562548632249166853047768224993396356999485859787134537193845316294928282255816107911443322446913325782872550123810035470582516250840527094027498197031373179531009806913446916401762490641623183334515097790165492369547995316332834483180073582906560360735938828533017835261029798499013034035962334866710489998930010134140369482095902118675586426384041258386443440935280795071923299521844416670655627449620208559983274576059911792300946603594205831694559916780834314664962161625395266821535006672107726758464068467190726283374373544958194773882082039126677306530880351902899355529274742196319331914796211393048223366209963177848828541043583630928763791805689498836916393240959908272476452251245033829431562932233201079717630063478905948763045851488282261993079782939005212854044705234926502750228910086322263097442582386653797023880203647826975054157199380444620362514791200572693173094537899730865117599966612031052763560853080447402677921884859311391021869607208227716593587481601800601291747250824038540618926693261962282247463447730042823723682969136616659688571545420650579792965779664167894399381358526542413262287746486316777418120075711538628266877426863440400308116767829976048759079192692480290559817506943987549564620813268613623153186801827216972329174204197958661742634766077234859099928988627439570575909302480122151920017785735365094988598949103469724335871832940520598221170879210630737525469734794529116951738895450751464212548188665915036554828847838321859628172432880258460492648416999767497282645709669550045960829965951400043790162213054254015605450640520006637377215127920789707107020540311322426898910205680363710306092843291892731735915933448605105928333660706768507571754309490856915094316995997870512853269102121411176280384321491506912354690497857628123779989603661019580590326199911069744316988777656322054237843008155302491599133438735124475090240871108329199983204244821251266824522129914277070945410116018653425292537372479080905929637260007168271436724931330813404461359846517205975144077436572097030013881266697690947544674585657033420487230137872707066836017419579467242865324236509555356138603521347815089540692910593973972262333897447170811277621119303740598661267106881938731737899114739554821308238581195555591580147939430928506908586956473070618154591784304678005864506583046600900177682840763762212344779086410102526729222607708154634760399957750107629617568455180040372035662270706379056933904320933061240187921970423383738439382777052922037467033296051704620471237527900900153502831546541631823500876816214086602341250795913676409633625176556673069641326897245291934418422063656403952038313974498367937922937221118625794552425972854722929807244198715146359334528029198048919346851597535347077277894332995759448046423274880013202354929805472119082176166881721136569262038815457583299114269099903600731065894202377573266769201187579809410343226831829476866127928312837932301863873803782380613783419728707513549650084488227540799630949685172250324256116382931757498021431620942418570931567327541469475504542417556851878925311300724788975819659219224420277745637751603626351408923703899974037985685022175305662197570629437231965534993983175402476240524941526882141428836031390226613143634925721263161444096830499712994624135225294309684221241745350468193364513964127597314805427527891855987143769979715615034923002943904706711641828942940175513048030165262557269436094562734333710806630578548374625203049029665106575051727944344358663841402387387041152148006011066670478073840919383374235388032310486628715446988485431180736399842789614684116093043354944503882916387017103775106743872067093286117507323550156473208567963177313045955564557479451733225992803009901162599066060406421088590905321444768582582625141842946058435703651306374055190081420252989577773688880595558376814693768186778007649287114596717394723433465096371561052519561201596058287804780716094042966797249028792644306299600566669970143297266576382109367471166528734178450161481911360025333988906786831325759721256321632912223338764769922709912090465775947909137801461933788653043553396966363906801399809137355238846384605505999891970746238353595393383673357878964132944279275724650303727544301576654396016742771870224537914007346054445603348663647080272137160935990657864567998089472416818302077722743629285965692232727979214502129288031243946283992702693182750143572822429071654028629101520006422100614914469201727738894971816517028774172588477761912635065888979618217401715146367797130139615447801049708743939990967326260723346734565222723793723283057595262479469473235852392106956014099269363095485583585728330751686302332014182059517995420274590961174426255920816996179083218425529417433232241613134375301360331380366051190669401411412498381294758498627459925365835315071258480720351510482907769592414773474968213157728886721457191732182057712024554411766325481663228012275194196416719771421302655149845450584459739378626620746073874809874030534891142714093696226383775517879956400421239106401882311515161752854556998023912642598145700634934209208304364609460045972199847212684334981320017164649223300343257003909358394974754869911240481248424827544968044342993442935576671438314221263564778488448711434434391938654114841321945035070183159254690799892928776182862515835275977349064239918025412363556775529404732085572990489843933642665771550454981605241324162607516693766913619826311729387317282467937125833578243976107185166173406434165022438637294914000148286826990463112132901583579445445780391996791016867291739313383080300910982648560449998581262409007416089532854771588595528097645887007853011521706013354579225859417873158752146913539680232107773387684206960323217630501197626686398087163309346696600267252697709210099589512398093343888656196865480726871263803023817576702018422768681180658385431952808154084961415766446556092554956566584560401283820228701849671488859665577866034889953903113878914921133819336081181801431038968454084561452006278633696038876888791008420284681827638774023710646517055978550295285118669213087212546290593697780584612983748941435670110122019667678506739048532602010883377986229568009379353521902735357004278900113152371260319891610590938809130145473962365403260836538729597249924626369051443546810251503147290850813837617590673734475841356947325730279043074125086210257111968325950794871037197274213394595142704030080375742942987828568105277844907356510534872275762622774650519949983391615762499234492391140914705825570620948253036163534686760485091936675119433419519611077797753879135190501591211622420237372656236432310679782172656802095019821869196043955746557992626162675001249399860412282587022815412891450924342427570504902999279523220396185571879957790343238627830930770734483046824154636862797375342477109109135108096414470534695882910102737118374675655264707034410442164850646441728841174510499676671391486622976463219368362568040967728320174407947151717494914198744370163638692801244399309967479592179833730806045013214520453673324041048231879200180264822860757625974411339904705255273969020988014668012505284560976658254629021939570263744287893973899097394753670450192660144984231396434628869204277462149273939123121236223239245533347251687198778794930995168061058712506504476423311867074440602683021948666799205031949238854050509112094383872983648536133402954693542687880496775989500165148015991398046871966005321191741002033378685730206714272304859177765015968206102624560140312340733089966121470191417459956486307354563600119193035485622374782192390183823592670827751377505422604940704940909542992239967161766232969473182110178692243400012581947990866273193555976778768563465185931642148737017663749174895224982921661115214190417331205899801072606040607772429795700229852035906913687045940715578258730856259899749468023710842614886507629399163848692514206457630442934326350842278024099746029414028222073927873697611924505851741350114018760969989019122087683288650529592015709263644395664927491233220237609994134343141304944410866297836326657163455205085009630451466938771841216661147198250518423964329029568453882817598423783711005667110241187398500844840427275034132476747031056411707722730978726093118241486002652930703067173195933455865611347705020634792832797049053198942845228979370399219160183571203713161987322738620666341179730946580078468520273810508944801629152217777387979111574828056343268806800129594216479239585171582326450219757205273631329108292364623476134090661883218892428470344514225780304403429265677055408310320216506910272634109594809751140372591992833964813549034371706451900796184787901436878966924905447061865090639691114202479884936793184929427269146746428639903124958260276066987600350449731670505854370273077995368327174013500721340277466155854499576039513282968735519967077509030646955016937801966081226714535870154155028817858714084445201292982623906090912172986176136392828796798490286782736936967753525958619442588167873447205763154621076144057818895946006822840680686013316210201728599198120245906408467304926407598496887755573226038185004705850587863941180571707500561466563892641095110339596521979387164828498336478413360248176447300874089475861691886578827644642954112706818240015121029081114537716594251197365808682105133867781047081407987712172693070577112400273035319368912643762694732475000934885671824532258309086842672849132561380975847164699386526443848702938715856107139257693100250733564660142319364678044674630710281083888525029852086428493092698903782957560538434445031692647320703144359946334088412881809757083060826182564525222528772221623046546273915446879594918349642731985192215205971319979923339801577976250030239216564966348386841146903038667780248363398795965563089478965634387150898133616609133030238828643997257205822636977871563331570304085466071648373565712438539199627134888811838237202037647435443191468166349668777516600183759541018480906067425447187596608821678777995091016204350195665965095772551161247467758325114122403784809745355618124055732850816886155176982286341707262883190641477222655000739473017251894193796167897229704876151562813438269514489422177085795351130894863572408302264763017329183425830093840434346206632103250078376106047924749413922604752667605458519285116541092870909191528193676763996738219514698631719698424473248939539045894200530455173850498853938876185142191512844127586010899245614394608322365969010020862746932053044770631682577322513451999555240668194751509273240102265946736033613642616139490429691150583463076418339022154320667945829814223407155595470541727412139101004238058541479175180404487452637451014279660028632973771161949876444914181505009048004813909780494326824886156502193877598806766084631793372545007302306680039091581450168219882065496830927348824466977769871032500946443582824773230831134704832203048134729212228368504703629267268902426817746399513522405083857968781959796166090128477322283126707262853694719057238147287965043610615720212452073960049007301031816688762176846338347112041179365498433352741092316536358442160986672459471381516056018117572049579827064792800867335665568652656019903264087419881920868397346025250210202750245258505757585149161038973534565826970066802223045328431324779266968810855439525461918736177297516639222618051611101057890907081765767928289968642570371028620548414705308742039221305496996354532607320214115266341380608413154939745725117236458414180017594281165298447573305546207794136694478322271494486888694743138834214122641281674226929892446035203414063082528163309913895341427718265187067016482342076834123022163349694309080528394617377904959757881673785832264244861732044072447017999736016905230979121187411265486333136993038510684200650658211459539237770539088477691670596183499973189039353183278221307881099994970951371304245882856959765196266156759585726518164391484026516185620291655441093226655033974643381041595920568977027124228588527577374780570694622442872188326517365252675530315494565763037280501106299710648322211836052528923115704291373941386312853763491649756691192803817719588271179207140980120314675351682457007279213143941099880449051917983659021510438482576413601101835865335846619833104942173992349519571812091061184850922719270504289934387922044262208649588452706123523400420858546642183643663053651453397369965781566403367901182804886243705563085544930444256197217434809595463137446313490292133976406746033191641777711245896480249121097771840254626727877245245947481670782994226098876182910325089133985900690311221027293500266248112068690811490787896214056597753485244355738306489591085423715034954793006758752264998562130055551454938425089580402540260532054470393661711512591599931975746629189549719683454187209168117118853131680463334378779601460919726075002839931667753618838711573871209034364668998013198558650347669966111300542934866787257644677912696391779460833899728156432148649003097676832617427044934653456351196816326129153689501158313665830865820369048609386105755276894604097768763375633313522251694430939840492367065339956390864632281413638044306288988677482355495089454757474523036554776369489392717953254317547349998155836079634353605175079017176295847903050311749504325725102197323341323463578281376266861268625431436302581532643387428773582333352423504008458756828220622535842121184033454651100484971982752775295874834007251989713443822064265525608114616033874050513049570996925875120273597033155832350636679310459959396776557643955085767527470668817764199954774501237839980809537210301073031144439436639636587879631117282526304132806495440965375372108610702677371550030865175081077636532914600818425323673167008862731470841463627411517545636422580163376271456823094549723435863035984970094920054733006480669656859128487632239500935760175292119650082223843648849508181649964556917718999050538377587348932978164695209150216337893308032462348868947177507808479147555797358330815376689216333551604169278981266696907564134970217895901300552285330838490017687171476345352224657538359293173396149991209456940334201337690029970416639528123978045786522640091224855047383436587829561677920193326577236136075027821420144394336794862485367213174985798133581740504344445420907335261539504960801870073038168579482708813135446651596981571939422703670398232559548144090730187048671054593604710504175148743890089048560248284181608396099878370657020385135656410405977098207575560704955033208768628512747777606095861841814096202676376132656615442589690657231862074663030043941469868910510645743817396713936811206737725363266527367235245090376261690775029427534067932563287942824060008943024365334010326982930744386279553125494830464101364678396564691064214941689081227218549400554349337616100404483217165742372302705402954563301347809057713719460256218867316300363286888759186914116643332643087103764767384497428203389228436303124029921215385000987779611303789786538440021265704913564565002196306854761678369947655844750066402914045621256730390866815072196478077601432905253458452175566534372274041395910333286558873289529141499475584085574787053633366092083449599251737211328236935814155174089970176817980420241072094981065680845374704552166742557272562467963811932472764392014672235893077974610251545759060472997490012074602808046098745453810522862818448669005003540324736326933409756924495609219818359646544551761115277545281660836780433041204560218591547512159295266385960110441029601015807090474248349509193711555460750854556688904913653089172939557582151513824177665655386318375776880881651438845829516311245935921478726540657349437159329273779045300308108463633373753905995202088314864072673756961591443188002555020044057130429137457516921891514252508729782870890319514543136934931689733871545656790865769842936469843333718696459976184935041301471258074242741148250981503778954784614669359679249612314911776824596275524596453156905879972049537929334225140858086135606376629571401429240664120491601868627756058373504554910583809394011906807722080486430226725648249670517545287942958304944065579286403948266831884874955624371673408107264919942060881533820124149423868747506774205035098717911878621440609359745297632859177625443344191974744334084345686327377722592902396455397954822991848255773764217888973345711617715119251871150223638309443573605292925328851116099052622932317675469112785024868716731734434291207148452652653948359988348729943588351918149112231046733450366846071576382328447945343590304849961002427211288861202053121718607205101571792621381419619635279999213442134982861894942957041662471385933647745250073605668059128343494147315251327831173329613222169932266971331488874934301127500101542532699408094094970470327294242890589725743716753248166176953083383012051476064242186126937685799083122382347778446905777318169669867068810617903508664666492902821274123434824056843339899501992887390957507749189360960158255715341434459550432859580566297044299997882547883705045422030442904863747121023794942933126501850137544705281964687985838053433276180079689150891129729135838913301428238946500838088902886329767296310001657467810446113031143605961979619016367092374240238480435604967116603677047688323779250612186159530679618671218623812638619389483495234914796126868300420991118394833436530617694941106048903269370717326543721423099591906935343848681963427427773167224058597491750056281567105514950219349844331005891925909609331860681397262846291881356839521011749289554778284112981771578473301488322717550300316501980264952651823962113596536756272989691739213448209660671756371472855515512566529566875262374170607806193143901416337182051826375016750984864130979363438268176964264964065841918877035447749268669393150755131963393127288195465714192226636492114861061775771509539254366290388974451509270670482621592468588123700903818734910204560808128686741562704296025123433737463828239766516041216822255835407746666068305046492670962248487592169190230299497495625385987458442845894486691261903701439833218705457685934616357120849402986237854341490131950419443053847383057291560436339685677268730723548661604809114586727354343054194495085401942554160419475984051327167244859054332261390869189055604392446580178988938601052235275568303466112690753653634879260091999509003830218350177700911478873778360960873898446666691422437628145515156710244626066509577106788606122444142085557084412539740414635656589268951473047719123222247227543955746139231914028638521256379836189491876109021557841860012364363623738160637796481238659208918821174888857928391848708875441382756301477492167326936253590297549486607314716594894751820838330722280788978891263365770266696234328176504548528237814271649682858226484644420755948374242394117898325529297981944603855266350603969619409963600606880638396447395215979415957092422355207354538586097970393915900886842120832630758704874546059133862414610238439024378594338213779964779387272991833135167723046002203882514749023505269724634274061258481875756923898886076750278844483720437577706017457053398425612319893590096653708465996879892448803324443845431227401676867083215867849765299175564295270523573640069458320114465300564201752746069214896557234241350316397100867271976570417134120943909035961306531996965225533187227704001016181017078074471299452816032545091547103812547406973891044840746073707243842716763858361898915619475026265509057878739792654354732671492523205145019873406212937831117681392333773462697121315859239462583411440188808278376229303703973836570388775063064621366211959494735037714191783423366960474612032155776870832329269961323326718524418290579331668645055454625838709333023269928133407439440016731735093983902729045467844491948453448343654208484464029397716734652243560709160564236139727304814311898400817029881509760070975613391824606724959076414900428696436239798581437663011585493390915598275919465945572112030285343717487674037811860959291795228884249971338264185078725671941507940228289360491330569074952538128185142464479933988488868989644033372415831750777360729939021201182742719285415302796870549479051359513933411060305645578094131863268386867862199021164346547301943992395978899325948168327039213715125157409035897137489960465995204674657172152069316251489292604706490164873077966278980495365330158594933131170779682203688319796005140548079802743988000766107372316469856826582402197774449241131538481402843586957933018099493650783993695134159044894472923295014154741118762946710357177399028924364684935135630784017074928067693464519425658139712946844456357199574208284603820994304419447214935983527764406303107823724226003403263905958119343227998634997209392717718181106735065450129090883624964596325601948678331122282439148087065773572192042837813375484460472644157773469199636865366250759489474890680552246653632601159333153169621687504208403032298401626709853903906917409162816821722903898063140615156535578418460791950459107343266861287088340788039518725990697933271449988386144766507851986300756997284164352785409743367708486362632384285396795067498578410176708879423346913630306290942272548664159811099481063946228734391331784457016607641853984632955665005128865919948716255383948789876818296085650916550615512264481923171267819837587338395433661424228183695541540117674091258500664747896587802149565738873962277473858360113311298900668675919242586935751341073499400167569325233064214170859701912793159005915029840499492812011626612273355420256417442582210808403529009743232819158127809003207363028347962681927534632187212156987520949132912332935174603914701957220473170869365724798605081786791582105461573220383393258411108384815335046056811067861595277911712792635543042326225105629389776659735502645020850205766336157733864672231032725562817667952089733524063126462521122206431696920962904488972016397524103094013818586958033701383613480553667695423101320153186161080699181374258292190486708601840882396386659560292871621845797638664154160127417712747696074059878343922236740738975360718170160523136399864440475182629617959056446935377022990656774808915546464938547249593196110061055376990478170711348479460787792285147605871361216176262749457880235082775352482216436728648401379266438687207683517096673435298544369181483023316858204613292020079294686993494901275992474541117987035021704693338718700052753316080898939322362504402841649417136126437587748040962678417004173000557649668699325869089303717234839934726246085855872329472238682632477186992819037871854650049108969916114736268758333219405914602590200815578961116678922939046952225886192832523198932828903976548517360365059144353342342842077287029631349190899433494959713741380172584461067953154941269192948783648549327715019617193531023288690725486727289228524739791685617934972634300423010689086025453448604907332319346275784201482923970427793672319362362714815609062678795039528619678137598713703678172162687000484719947469275228995206279085027012868625276025958905188435658519397750984181395690104117854308219327821779222839720261754271978529004962803739216696315430510725717796151066722584904335039082806115623544396067177086539563676007273451441704461630737617412427270976164803567301636691876900914820022273563049132008289187793055014230250787170019523479217205345487348224026241345010915390688644503798418693763817088734112669763457288529572773603662541603042118329539625428873460294108421815159728787004665484222445273084266161937466912364406396168259519477599911539770230344729932611717734490337849081485731432478191333613554081889824075123072764725402088703109868512552718655807314168390952187663765415012772664048213649993964244627233537870097090358087491335006639777229974772746834641861418465685806728375097197583304009660732607018432602608959772764652217787400400670796691686655955803351881305102353492853314619621196037648493148749623182961840440991954879128653465032966281821399852811680606746358663434318195581784117829969839977451262720111073968931204708275490541044578569731656776387551513055819261718686440158095656213561111036821679019324497995067246345888462369352567224177838605273139151865742409118225776674594401041350816335946089264807865651550020224875373423040556052999990296388133873926354888335811025295341980994684065677861996829625752708160427523962203768881137945075464000012391094080181303417541681875132744670685190181000663401308731015630556965800663177960877664621674421763334645698678423453107693810401525466176980541503359654993911732746441115226700729642540582670298410110207703274706820351397071285629558239805837541882268879907638103454293041063843727365655163969918158851928820584208252598537284837792355194270701707444889053705903850349358060119054772408530115555761080437674809951214365943222630443962708460249431893113985787834637581242420708863389807234087171240023156708780501313004182327346371163640779261836745219314247662218886447606851118495559707197101278223929924548827938055261172501404660849591949936636220311535878379009651785200547727620764616437704832545883088208022505918628466758495714314532468494908449575495746617666133300142518351962264296927356353039088184338126623494360948232548125759788164980443543333929608555876012780748655577043633112696141909992645097013317264717070949866437681687443875164841887198857498918930002522811754052931069174840133432537497614151815420753127154879318929774156022699319818581489152829175075552574599396002443066888864255962236272798865892392743607801705668889255282349535986973113805639635921370948807383396613559985778865980307655469932111747931233912569097791462281087303638637685664368019080445721903509631868122768283534493615383851605944278968165186785063338647933267929067758793696245398819474828176495524819863532434845274498973959751101029809408877083608537227697462960091009909047588167087679984171056789297621169218807699694481088021988367583214865379058851589255843936847524026344017399862291339787158008323236037511638910101100150207545503374195467003410418386304137741506758967777300522515216923657216025669045720413673322920890911173305297029828775692302060371191183767848744192109083649295143073247028584892207314079622320460177972124822346429979869698839480953784094368446302342239503296387400992251466915833798889464866896250730878055749926128089981068316267186568801864110881275502550734618692166658834140333189395598411337803086624230747060582194127147833010970537337710272197758961014590589863525372348889081639406979017388390018227807902681228528370456496891246824440470703708055042114033166916330723465334481229496628626994024547256464254045549832921952906415755341939000229778930784807897583526037352091863721118081001280300754934883244637812016827045816302576738112529008977514717871087801293444538256274291884361574010058563856223489419478533938374338197875630158795310849673085762194188901146840777586954294131669786169888629272724616188616985408158382155601527967298673761749569230031301903676609245877334047320495495508535160948581510270084334777118863018563556236472469198123941454467236655320139064366891512973920452701145155980563988737442687442318586777303410886858717796365212045439288029904167665895665847194734952097719784208983590442615854449070898128366729330772469624669947800561439639652675432377311552085569917467485755550208080539993985834406249225075763597815545362402548874784861791551538098129274765125996136314992932973981298139395649578347375973073682852229017436141502099286137592663009349076396066913664590689506832300443372557689483622656239931066845334760230088853579369997318904228434408186616719444794722153319475735325191471171124029198163921568280625949657842061318744796323951991102309209351953088805703816347350284709923609007115229482572169797689188251066889098399548441914232299002939023252776430950780471552017346498555399146229101553008231501107461921980975174396263038263459518460093133458051476955339946382954066489510629854029553956134110453514750361918439499398239378689477690698812586602998846778885257896545013136325274273222086364887731790128502028292927375435166162761213158945537670210653694408599963824534957315869054541018215358734691066694376283171906764845613648308742661029512149698619082810795202329215075613619752631549991991401666682859066329053158259518859386625654351772245806226277241666881377767699443749021014571222845950044773725769930907215684538058187009733008967804523441218214697622689333988063276346304745879923551974559967202301938615563936304178780071948473759565686555018466011089374632571704748887762607160861076169880574247671078081494658425693477625350179877561155432762655064011878862958193480240187186657204573978195023888574870494650853439869708055953025964536140520006101666241724491424835592042438118764428107791110876216765363677979976120472496850916310037493295654730178586250581186577467960987875647100096334285834198579669894594003232650572672737905922024489676809752971412041157514692051266009899855779888239131618152687753820215359514640158828350034263547504716657803230075078474894991679702480379305493190131553666814824094539728507298973960111897163169853103795463788016143839665919636002856927648980221239615031163668769200200601050691343396159763076781212423473002487743112448565518448643571232083586217123762796741315603733918453611212346221937660209937531754049524957465765313270859213936766504589800170220612741930748677231523508891330035005761706072185887772984337149233452784807004191013795431685360726323187835086670128360279416335571121378299304845493498300525358428408246273761909166762026583586287026728137013958867971386973453251778583881042562298941759855293808607544856291604571379168769725565384215614770994485538940409933294193402290509006988205240445087002893446349465514773068518063115245026878961425244105539468998652394054354161163859840794812952696883543739170785064019904514627260492528403889873712651728560241413717951007482835569992581197605747029779228483645653941998322453050259558578721970988853860409061334446094468514872137766561713105787416063950178596057664586479241024661515485118887563068936376134627349273429151645133625034991172586503240526243096098283493167555724473511642079816679975581685035963160721516465554994942113071377490254573154760259309423347814277275889483378819160003586745622033136277994965290352408044859000117198273087935302184375149476866532218843054359994308857099297262113554791325397024201229450701227205208615669184273151401852335841518053856186095529328465266663194502122493073705918835464385986975644942816631994762687937101007534716215732382014637595253493228859277382640223234810202646663164588919990805865754404896993873181460261859781094941539891078935460961244420010580793551265385785873574927414565051583418520372343296403963361265577097778722432470257290723509818839190886684233847359292343350975873405613226946142071906490976601218901236867936643620920291529211688073635051883698635964086215261952384882628017786343091718613676640756788751448717878872507849587358460260874290558106691656057719103695355436303475738986384641985944785891822912384880538200028855262406114208141870571810923520696812181507423682833059033921203203475928513128662387879626427131038817085461043587465027267718908645387853568784829741872944247385932778614595122654828116558736126713983135864232601914755321204808770499956131491093335337976315213404707333682665393102469470247078130821555603519541650660646226884955958836782355352992585303079304450281048549200773247579675090010921001656687856605145867262835268909164136468505433763173801837122814753106118360684073468086605267680129425126809700183844886607529874220114619267457873934221033024137345710670789650696784944930061692133739278372545005503298008497376823439640341273630762952994356181704152939849954617472313716712842936717602965487149552102574025635452741267311991137503434706083998476656775675208251645032886868743060290774488443976747525971147741030490699337762545185550091565301913553665231712395200709430812939619536032057203329170848340612509555837237290465482890328957891515428370842897431881419307729407082923178829571483926048182179088467018627488330972287208748428391391202360134365024246679283003426320812293831311637510592444970829800061645454471358908090669948083992649794740586267950087782950933695023085132231132070276885107796064736535297279212108160822405435933725146147152261406714226395738632689828461272397534025101334546858457803796084086761504498635650849196460099070318060162941963232208959194097088254765634804720393587129816697325092340567155738521445458275272711444574820365319112507953369819568140376517213441423646667617057518260793496848942619105031798689167551851344650810319965197519268888272280744344269233476926143948275304592978163515908097813242983544858680355635394456966400204894790133469278952429970947616182419547867289232501828620791610090420276571100723079839974156201886147798000254820848659898155942410410415510007822721469709677029403226822193785164145922322244746819982110323716399172864166437618242080924955349637387463927397058547197235648670800567426846102891551087929425178377129481416797864248578145544221988799047778322067258673085504439358453995852492024944607506992347326148415401492260373831396711202313561839045612156943840154595769175294802619147608527767372327139592645472136550095177893433795443759919789265098602732170926688060682877356634371548399136492753317015627744907904320563403847208934017852742827967816075456821172222418852607685893469399386335138828554211206710333617089047175646863837372691128505891793371147752924765098052192950003602982931866835051879915031823938827414273298350250869974788090853793166180423477386633684117659580406289514919248818827847219052584076708514549033787958212054446684393452121455846596495691262132325421492594875604230891053716524348063894846665942593263686631895509139984294366377676485981530775735003566434335265534411304197322775480321844703612348650892205165012569237988087716542363131381964408921609700885500300429343464903566924392978966288294237363311905055903245272957620510985383407086497313902119906705035616292429732214967555087308735187617309794551202950316503797355188001589063860007169992808639382669955932252019050816754934754118611411400637280362981497235030603695430442635750139054526912499502272405730998942725143360703258182211394167256403420466159186073101394045161320314080177620367928325729215823607195099441592023373263098814087926018137397720682906203139799118094690661045155225705455036151216639651961575983773934554796461327587004896540749512463115149985067367612242442591752819239876898441437648390603147181131730625769322901150752219895853475337095854213189312674702167688644280928075472896757163517394603666365511815128940655986079667352827489302854845167871869151549255115382548202254508047939237021774159492969211073734870843497539738459064611335589637718523712255911758998275244235656660850939307889774332944378555634629554290508588702916749745500997226310885925347221597635129318295266529843602345648203418217563638824625878335659606365939771431403113806527858786318056397785481088333712178953293670443701030415257152652043726336444174692945347462751747917938396907602361657107975405650066176009597366728864170088002480532693246242851344193727230826610119277038128925053925963667815005690765761691594720023851529338950619111442749722110220727206473581655630858882396253263042408016195348260727365827574307592241267656803151173003361582863812793245503955112135747487660571572713501717715538932352859302290675470790138555794693306011704128857570153126492998331965821566136431898113006970575613178065490497540209410741541302953439110314823904055888079243761587955983908166268892815557402291399645291336499031154848508949357905917901662921302860396442647461664865129784792389078681722920603291254203829313146856596743524322119914622108499899566938334885195273647010425783292735064695893967262007741678252925517674543180064296141547393647686633884965192300693830044939466080516722067106703545514879413849078954207164240995444712961413440276015643794170426427756695882186120504231632604929515620930842875887482206835574537097698785340226231228887758379436003991185832891375593126439940863819092486976807455610738866872541809903837412645864792797466411558421486635852388867082339739895202729308674307011132388792649339093710781514629299871052458765684353281481588078716859267404972575562787731325550165075486262343920443128324344071236835607414125395696073309031955315137178399778768503382320631496512396580898120306800429876324858431519979674320730261162746086270623817371242239234794940703662175325006468794475965437323899314610380030451500552586262668647335400138619028008501805918870726307859194667222375503198871194579483444836807212062360085627393739751980676000083646881733646029799996738833978528922066923975114210991359276886108082891029420552345861819791521439335900489768711582076139058794385977042222743869309772788595195887167370483131301015418332702006321898339553810131128158436673282448697923421067305333540237966968675588493436557921733626413669264418350824970431696771016273325694616910144891593448873238558319954087298550536585863082383065866600619967981272474540824199845662369591126401846886839468743926290901436057727171242895249382249928812391301469107804352451534346385495895338527169928390308373590240480382837194923725150196018025978781473795689404563650720598951162474202508241088666698407059797087004480956590074603660191522219486168900018878525805134958001574832830059715656970696439726888809305480461017382572136412536096136469846366348091951917758208639169041344389230634997184020581373879557480625642257566794127831554076221435066149149027369032266935652380101056867070148012434160864113640609026971874829894920036732293312407474735809520399597407626973856698246769400067067865597364133478071934807124488930224704176653705969165146207616493499110586466629065364285224500436020485152314209857007635248577517551330833691211233013351668641682781559394211386297052197226208322500730161161636103480408776728187642401119328925205984956126638955309587295296748467597664039568097571386497329873922381882702589318749870944020995281770911517258395786827055911447569936297359966220659045103103942777423335305811333565333150956429993950301932956932320073794338121921707261278115720085732960825588295137063657952849432311874252495357607764454565447020668276939336653314404307693021816601685415911124878987899308913475180182583550315703318560395111289784809476175009526909448493807446272459566394713664513507500324647874209332217269756318671501487096971330343995911413060667664879504001620829971485858754655530292825886415772221240127905713562187617970159480466598503950005801788819591570686482596435148478447110704728175857384658768447945858366145928961844257931497605305058328183773631963763826877273854973839196973186318793367589017452696746653691356506170107359273978186460569421818751234641475980671785924447108141838864631150934525879553985610070441034346122125425935003752282617405446498454018117079032144461270523456533021164211803146047360860648145400652663083814911971232285730267516637127794399932322144117829048221140113624517660158672283407812909839694006668672849868485785073617435544087260895554253126061400503993196785768378425701582205086511033283638452586092879711048589311306118028622080919981548558213638917441591889668212470919397326832934127296069276506728518886455971778986008219970643281247152387896993976329288829878265286050762299193087835026003320199048513382004564849301815281496652682837296204721724470108897792376210006240224692483234637897446260402683500356725847256741309195890091302648879313108953056758102936191427088623145065365855602588466873034259473517400715315183468475030634380284028839782571914324795319948631716367122117788072457119171981401306234111288532128290421064329413971712353616132441583696025453044545445076555475040700434804892658497767622551117659178022139364017664500067853172059427199281832536214446828187494595924307808502517862867931085591480214262334009539433826292287151489426546856800450532952853302688509179846245832522131849383973223571541980221324789232366005906419276394036963894628335915112830921129124904867614321242946953090353284346225340571635185188458798442318336757224999710960664127256654041332867387360629330508445437895876246546835149228620184220059389466714639147956627858807034330623739307053837393598992239794739239614690219361136977055127885539253030798750801466074071512911075813411173323508784408844854164910930981283531699999902956419443036234451776563070507996718741515005848900159658419718655438640308459300696405925043388116860946661517596417886225819192297807720441373891676455767710340007791977981347863178248866474560097806216030491879529398999942307749609773582923076519838906015729917116643854096493367531280811660230133359739339300616942991101953028858525054556454202292152553993881271058670572507360556707133108823510280975613991185242653053726452758374872716226352606806390341099196680111373578435645665203961675843076240712302284119524125110984088686403571073894497564370766470425017685879412171807808891876568480902821158835376057628191961094845412812308911100921111885209051169068210518101061679887485216565370139923044291480424975703541822887283973766690053713223258571766210198104127072768540522319635028583661258953467212293523929943209384314497605221664882836222571027618807117826975276545109854363182778310717879040775647512119914778130350039791929680744720701495455363669301850327908641578116537376478628040139576125104847735485560013723576007671667846804678222902306960730564162901231776799125785031625836679969004137412693027596852158682327533848031909968895131170394015322492594134173178713761732371094333260656981929926992440203377455115507102804716878709061940953196151609597653291290081846697188110725524692610224333659789037400779123128020560122138288125623118184933136698660607516257001133776757078684913451329659542844034435930601820061354509545514992071408984147451515521174531531931604518297242606294511701098999698951564042721286201621962013611157112440747696866251956675860381148642970540080828978387633263631338094671029606611472781974127641895361514851095587166428765515862926046341888095733962670028787516583877291559866876532687478148605013661669397410256524546795941024097219908805114084878658903169948836819771937437235732129271977371659106345411625138561903886879979800023892130561619018708581592363973990219176064915225691409263345935136679720012670202542936984328550076846344777991511846201248107580372103002171995160299910737824393249273310139155820906305923153709776349473257979478349199834764323413099459821401388733731553650863746696628982003877745647752995783937616934794100917447701081199186513590614295688227536616491878197589259780604284827697959817802478365476147415453795242726092078328020545926683790497784312877955342025778506784134464427838496783334686251279637006852285805478585727999712989484262641633264864730987331821859759145827264207963744652834634066979187091034423295093875319648374954096491392470683127030269975916436990010343023391045104118862392610132324534673018216452120364229660854908516478670430249182557119893982587697962054393552253384319791518544938244280711757674848348828722014310486471206308670594468228752829664501126193485183049198160975107614523965262260386618534069746550862515236905481747929947948721005062437025989056403611845081777998785832469966029015041145094150451024815259272210427558726738182144409510118823742016101341500839922934687430186413536149250874968700829896771643258650059802482640684201803359901893696826003630730231603926735640567461731057293500113319252257907535353025557335311156520774498417065502578642822976647622407548648555169269705330694406557815771158733495943986154012329432121158445312989802677894274194548952676776021058565460553326173699337405101210358618985634980073683951684997823344036691282646761534046780121650255659631529229002350625166947016499904400400096820229239974123903872396648848627129764558691209328848080911497814998892679463068290022702011218605246242863359890834154577499490550444295947456663371225827501863800294287979075420271002592108712619680902870344231341087739853519892776326348510144885434861282464384547093285011421970367931456292529109188900779148667713824277557751431611691429970478087416567502906902756210953682921536742615614853784767389869721636396162919218606571426470783918105347879146412296387721053773166859065243704386236905774877503326040737226660615402815615145331096653960955545727361897972476060774489539670068573040100509229243276284224964020991943940529751794184696890789993977220795536811872791725884434659673018434965081438955168502209793573643880643560484505733539528804837384036489257303719318253421975124777990234400027289131376831776785349368917797779297660737941664870319743322144724787193220751885402136796151005115019503394821851859500706513435619515255583866779124350700662484835330519151544164312245254065684021111058598862914422357839266685095781173113732438193143465900302151866004944962386415816186478962342164901854643014937483046043490490641831383706639824288426516268142732263912242586319486567582973655171210784383460037072170602704061706594990484458237419257228782369856348582900373583171251156991043052979017872842998140800270555785730532071832739077439455927335481415934691347963269667964634483327833985944231793998404888811529891137384184555456522515824334576569861743886527213164751033512952954508858379831207311041492721890726206446883456535730194264212451891023563761713662735191248015914972736130208431049818008480895581420681743174492140808061397243640391896664714275636735337434790039271632275204029405537890426958174570300789968899724490838531812344539986253510669631324505224822032834954741867641066562210830437790260287386673666738626230277003306580315000131836470288594889713633739780729777399829602703140063296642720984419480584486921929382031376777786983182769722031965290137532341442739792103544673992293879969019722375651271433410480818229150798522529742008647259818255679251114461949139558166239247950185328271708309270310297690786549023577555098822834467094269610079381720670719421885999215293004012796563417500107102306027384675386781282857317072031780979873651394076522266434084892647726710835332662765829813052508299684159860753156545979989389088460915232581271954410284157470532377593805432089651941369622855291768786569160635095812487109943091152938105649146411161080823884790541898637234541299371256581156925778045009766683469882711304841554293993570589941647368658779908886616395318953927024743274349672796254924275267730399107583684636733174219540295883372085047913161781956237537821221839025851413030133230978640528437981509632252311068655759554995984184556360794831841400736373755704286167766284960391429053789315396453377860268983144198571782826781010341440471557575800507516698951286993770260774699530883504001865688939057559180473093999324277395299726961399711233386611920041206800372889910706116834926342189825070480028372917667185302631638673103624280909612414844782156773952169530866563270069309409486566862799721595844123159802524867736187977974767269754560950981073435334276223261477512613457585085097355582164067976984544122340701037835103794236697291189257415009576681508063821950604690823192242552689585479541966667717589321661129016580132771028644183272405804119496112390576708151190507538854821331063525112708543626455903702858123977059166262455469171389616311846499842852453184859905685607556356318156649434912667397092695623574760976314068796371211335792712851460780891093842107824076145322356014687461366332532432521966454575737334612000126297948905257606362992619435663119315438559614304580630477341676460290540354442203520312486712660348852596549934813371426301425678830900271816854934490785740314726353830849222469241785646401801031349193949893242508427893985605831725006158490694429504221592626760155500970344644999137646388269451072294409834848952083438980539106139654453881334971978926673298561520889673880138388549297129436897284875074300961651324594013181452952271666930316324634273299554003122276514888976268248872591398496304569455383905409402765030372289692855854735479479612237080764016391475512010961903454609930033399175708192709548711539399588701235714787385632634611532903517946682904686930830622419413636523221109505535546314695874073265738915413922538204586349736207388404326791014427789604762669437879677830775555804926564347613762795961038983327499682969560894650810476970041005918857662516841346131696153606084549625757422433540230627565574484706069356752207342951383591117318981077330131068425708736318008801419563325315148578008277502399698163220949705591634157926509307138459797221593287492673289146194322066893267270076712711115298230242984736375140417287888040977679193590185386272018104594016028893563461401838659973455131469462387311052151489656473101794986458667413728250342959760134495762081989157533846846422348907787165415863820775655046067012400653980141777075791132095853866696020354381151869402346505568977507427529160705490858180457134297187245125036290306797771466986727786827042399430188888947601073594852967833737505485682972115839160933784289781906695917519994897295140980424039293868182818749522208368614355418093682086937018773088771464816939861927827704463637272556834770449815108844858546511188460236809615376914321776275629230156439416603212307266489517600197115940524537673047935237511468111943035281818147012229753151662343932632721429537081565244708500701305324800384111337290118813749281274660479115706110272438460859070844011365654916113995973176267979479180665721924082217498006496237900724478630817629759928674595686812148176773246999097306061516234016343917274689725281667405353937771236141354416499263145451727601713676933880577683277263456450164622470303304590822319685685261142582367877216371264018084953470770605316115962182704163228693603959742855177987960712215349593915969892774584262539669574888909999463000620137772857733487598189045720448856841756318756598200777968893601002731355838039449928404510684902748806872704978170264836250714827612010939774522637941018973625726155318402516948926112002102184130672513794359429052403651257533876562434451144666706549660131474096727776048180445160285089231359632115205617168203326377024196271640058787652128811410005804298597491558818116044573908637530674909373024927217119301203646617992297090863269843656698083646501876121342973803911651155993461347516045831224992348810875744925293710974703669647110025619055809974631946347434472806562032003012738534816193721695672033013023490118039307177640355473089974484136787442002011424846215803422650016768292005138903124118139384163466291183306904498938511448720340659018338048765129057930166085083704161413862638930183314713742913707924843692171077659112128176049966313758921060524987174587135028084944114110183710565417402008805082919882967038136390363988149350604768229850415617809007555447444346369014245325673153044801269580576916478088936771023427039225419151686848326087099637612801464917821140787220559668741987913547593734720069475751799347202963845069549228816480424799432539320832655341766506709613067787012389874140473976755471674105359916382654901682584184886961224310469868870737968814600757258776398735610106072476952200655768208441607339951219438798743570986209302398341132610879143816272609982021734979617725048309314997524289141842335992062629111487988315912373770004046626126818539233777704530833904446374656832826671693394501353108052811619044057868664137534531114162302276918578235566875922013422869808601359693720456990862931882830658858675049131839464583291467112642434007757106172946167502717769797230257807606369220938907660419309228358136927547622098220648353960301602440785148561372808016210154011207855636349286032982935081434517147069263609445824363658928808777020016728719185573238698562653127880482506397037769266202706830100782211096213952889676277458458286342705393743727091931370534800063292358908410064490343044690861541853704216230189079302384213843329011917776387024271360838477679817687965351909208936812699740409056076425965937088653051736875218147694266293254925148929235245803657340783747832200569275658966692927689020064185612612715968238596457270603151885246946111116660797333888523901990183885093918401335788083477101589044191998603607254616765290481522027509992711083754211906436614883368050560967014059847730349729497958816089740770123347781877630567276976629022806076582263918568349265666605477715559512364660976139662750793128866396003972556785604707378784421470439672017612320031499797445100696605502462253935174921737199223561042942623337156389859946533463966487921190202586823615188167404339394511548508549054751025211439453779317223799078757912703322012250150958407133965603486761225320886481347539406363038616836189423268351811406759574477398673641957238113812766289924845096406364374374480140895530082439692322211012698360831727594404146083553682633692125196216139417133896243105776092044911772298253766038202257512898450752561682193508841912454662544241474464899501639494489010490805716422045290387053136499061769359158613982097781234462169502683295884756025963998721166086679898563319613283586316919954282334108431719879674352484556708022074879832572044471070214032636302874702554219564582209893363939975061574594298943594914508666955569486921116025461352362760767608649787687559624847223623598628013835620928294744476351503214489316485734703074527294612151796065308016957982324394201789978744932156346491761074330791490935738978108836957063861118456841231840600860639178601281176544467904678110924469795346656988114105254862034166363815006070407264928167857060684612614384997421578799076134412608001527413632242631744886190804137278047995760610116864093130249554922084474353301330645651715261933920089734398053150726119647623312776714961596902523485145347765624811288296370195564437376213224587284156385064736190463487889054928224102464826090262280030847669662679222899079793247905032826284646819983231138658450740508531202192469575559495566266085346069822506401833811624259438979536640934927545103526143676060036790840869898532292072488371822148349091452147489815540769276038399478581869274084747281878207963180568432429814034341164101408190488781847880258439426723062768263770162951885041577539546773098486635283086914762202780080745336011776891141344204720210975686711086509638083122520422389901430704463393958020762300065620794964209090763601245808668665134928401280642248455055703131527112336616450120335086617574572090497376901500396131482874577990633976841034044106592253821521541491897672957608769040615068412722629780681896356331569116878910909586180428926841433438398077502053784708599476055552402497650001797015769170968212258011037084523136103046093363944946265433869185581381717293216395910475385574976201047652802201983353643997239039925206525564754788629723995182745165429419291748358606957519761853943792454134471849176377225113632883374598282796200713334270510444380314409620098933833360615415618507866937363713455473270035890767817366246052392769638568235353919668246692759575156565155560622988409072037743749964032452105132182861576247115511117117788436861880357120920681312283093672472007694713551419956002486310460368879090730635629401110854706049118373940542197878740709087869699738123014306096824682133549174773691921886503948405664051220097416130606764619878243567973532283522236804723290172923019110877205176399757902098405321699630868575196728518464015341325562443881366720581840754219208607933251969168647995050672527966402851306166662261435348373160789018951984101374349941234904627279487073469122480333736369922647404748770656556765065948251155610689523134554287505420192922137768771219577483123454541141561674811005586577605761927179648694511879891190179568198967165124311469993338277557694038241296147547205191237926240834230983686155453535166332810283081114208836468453286858893972301188073745964980362129703822112273054688044257351034977703820191089940557175616593000640737850642846594623998098315577996024405072458015391782331487923773316320400942560107468269094382641938956075376870280253920999282898723167113688850427189923068818930707986000334984451260192645129677988676289431546201601899724406296564653985026600543290753756406145344433219047558315750409829610237878161246736665301613852142689642555423075691773931726865738931308880806056397633320175498433660389189863879014825063744042422205573755769031445001075590786669833809244293628119926244920537412378172046984078584312199608680237275747326824337109892214802031432653029615905957811521187518144204742074427422865037312447887776446633550277673250818187335500743945241110880765239238262111131314410934579382856862913782626080898694470518042613087917074458421411409840250002180365449579467858547682737835738887984342728763220002524450451733329886774629091709372774185106491198681986945708337546269344401378074276153633224949971836133251840996466240300086163304309559264744811094278068601777145429075795800489213276097620132646591135914295800855546980837738381028580474353148079602699045142967022693744265890958426102773387889340693590609641015289990211307920391574382348468818181769291775353992851924305624845917084038906270431089829519453156235329690499360633118922142935692108404419981648479309128763947919702799939878545713210425264173821683505948089055681638493110804808790964406488369327049487873522782320465200011518028751904937842229350223432594921453563120621183072675959058648856183515830577580404891303736936007100146780430500206451768471144040881873189995062518980265344107561647400210068696311906339723793734054872872156462152435588791654799226559927887748772993902421197822491855162388636100634435442646867902328216722526462458416611899683715388593139181998831862955514005141890661241285544746965230396572628942806525113049230521181159788903500437494062438866632016113084628239208495368000056028781318965806000023180473708399285918347895086106539739502707990232077285305347130989760531220404592323547472142400451841964649312335968005555941327795156403427122095379624014625515784213928067488280428224813659031516321852839064023792162750530064351579174883166496379458215937854293723620009929074040893973259476134944449824806888118581962628611781228396597061903615325509300828662455947374606733892074189915022926130856565000308244959765344188538702329148112970049726256106185199460456059327361534864793700999049398232610510910243379991394860111596421725341259011708018367906475092840226202991784830812188393399867480087862160283385292250847632010645313732861780904188316327193904782790943608073283135751957426567020678593540313123351905982579483255817628332530102163858933548097654598194195864515064413931313412239628947035891772279486723685129023274710145047234127654409511696795568527885470981067326832473595628578214181829097855766386045255079363085492297446070213824216945385733652988090640847089261953926029627765042019864538275544393254276595839683552071742249317019426326965341126421486936534983832231548744540054364886240045607226213046864338613291282428876085726630195129314700048248494422526327132823685638708159800545918813665947851559928699570749112890954316782267013963763493332187484208748420575896275993166443889490194655550344334004402425176458869589798867595235833792802403841214515704691308860394712981102282127052654981529410835662085949130336868936067066060582980932058223907415080890834295566877216854711568773904919149870175532656582280210601257813290883835408964383762838705545993725188122679613330735359260470271466838951331802661052321682387638425531847873073377713184723293058670445064101251473515622205891589070562598917564949146441145682960794959860022985308856624132665235647380529433605984871551706154450216945110720117172197711072243863025870540694315948960622020832159765924297418395932038282549364763244910969667490991828905147974620142515446500062157307445003904849915880272184866476038808553085804479327958126380822942152798404167804887016004911650121843528803999850974781010406571172959961210846119903097157225330621177034833887974357950430623477878012977308953127840263309662710440262518618297090719566678003670876005283265628252761803234770901846391173236953551436503443280619186176922774181671999776689703419972998913371676326949086773135575930538458359986139250660903417427239902237687739364542750270712022846857082999825209916448009041958968713687590678265680522122411848893430684169215337683348235300590154168060776743772178179929340785516340428908017673800273636336670806582605410015758722073291311426049975467674072867240955075374610063575046099999036342468142578846011436305435823116341367455439455606937958740465102760538918970746729036942012023424416157153975664643824668318778496233615965830262216739979574799574864382252885273018644389570518349174331778389197599858202711948224220110828632935571839133933798329470552975099283064998235218455542350209021087575747517816722366063115115013746402225739866604521705948571461726699976355633364035857530327970815756859064632023749821099721025110120316233373906935655305053109052887763707167525574683820739565019281671137857891971173905280506858037484804715427878709888672569007478140306241807874833877327195481994405162039254929848609835937732289234655775625509254786800407713479064448790104257944290946300319690531800460134609764930508791946448313951041949261597158274016025391187815449824915407833218925352161822114891326609974952670260607605872613016256329751788298842442971365605911116801803210224021320548176166496447998434346064761067553586259231740881405789087356827704641741138166410275736873458737386741005312410552243364595262025269372794739397472974796074834963439032310985337073772033848467009279007978728177240808756086351950034027885471680093140980702945859840498591827307826345167538735539376762400815173273017773337795694511173861903248949272139942638545738835500345456160813957239493600197833798605333231576347315124948040530143731020958490560374717075937999008309948204711964297263294329355867246290084613097212914637162400871457139094185500854559759565329825390486195710371510036376627780556094564210234589811552109996546992049114792713316040910904153632651258530420797749186816106299379544575456698720637658809269250967378057623426452012325510971122163080931967084513970879625341910259532040339630854009447523309389341399204085071354801821632703825204396134193386940508430774218112119974235484312288116092610025820867200146560257324269059633485846016305662592274209884836331324231005888820740387209469355939283736261678075490719961437909761328829005729245665994679985352790245961513470779934468642953707077014193307816581527628553171670077240878060072345500973451333969732427669973238479469278509688245840096184422259009899412531412671882135713529383803573015926552996659189618536076026050553181953701779186326460221130388040059021908767687316679928820168629510308278698555620412873475990077734544285150720845573433935890984554551912376549775855408041644747830101684842750626013187669445646389746607085937416658102233479494146115363062543321674120286373710003055175265049943938820716145781027639667248817736355952435733362365021875595682515328952932687068845342099014179648480262409473582434855996367601705668196005119813868135723304107653366399576021070189813915452843311739818336490846831390283232641285181883788599814026384552619953389317132376714992032903166055524466290090005703902249275702626203060718504584416742968056868217144546848344186875651164924347450267622740120441204245263903203230036137406659809863176369983226799628871235210400834019065822331574688756319842582038323501249708905904950123871601943811865836825740354520203823596952178805550580157798343133124341422213512536395932946045964789396111074771522678012928574570627646136996352381231778187637265864707007876763182731262814177457901069196374684646618450275173482770069068305090830802444682709985890451208860731003969647776741384126247911383869570668618776345445801102040624483037707068462438564779041967867907372723589840143686795163850879860040767842919758140975577715762925014839822222429803153475779649066112371126445603816814655104630987715449473219409234414596801483037747750212209343258246252992981555597653690670311954032229352592480732534784576817092352423959639645488514973848181540898713358745623738239491088844178265731637170303962760815590374877026555068943446620234573117461769584618756460235598732317749414989226271968311896135114485177526972724951269933585253274176978104652419893675036110693974956950098962119982935962374204143834493133816938360567844522043627868643230658185867252355700216513406418939969459310740412285456499302276222342111328343187364159883509320524254262805299326778711805350872450156545933755838858742505923215371209428557078508916834969234426076111067955151910672475967865722768171366365152124957955643892574465794318110633397794562677716039714087017724313081318790847017511123336512479681734682680886168877537990957049233572794103997022238646372701643466483880304876253718095983645356626684826725896365862979355152305525864184570127464104261778256660483999181045785248941649495122951171546557861824472626089919608907249372835889008291963044655857048102086836841280287302120484674820207020192109616158578160155392432769360352430249717189162356342258460002847311588522488569084289243847805584431461511618895778640424058408205404181290155446784890833809121479620123835363230271514797697104133231930095844516424676453983680535734115412993634013788413813547405719529931831362650928782783330118393054245441134695052110784496690399195109586688086078631031071122146684201588876166520769541586526287165195651697103519583346566748414855602105803236142883050977565575381407217252425132327951202679849962796872387344228173993703623897667410967336815742488104911660879020251021996546441207853431116937732443196732218762412714280986006090131166399165434774465120785035841756884377953930473093317549860691414227990366427047331449424348451973290737164459372256704830164118829694372089259862610983072413665985720437566062129467476094279804905506263835989983314454515166199368518823875004916140399443151590852994717596265078897265110086912878824344238112131875295973140136439324851538117714546736325145595750672063902079038562338612045810016295259609847988799012802290230277585097493068056229532549799706309279299657939380563793479102094240089628405342964332856275534950641911908339720109744357323450106727437436182233027554416674876047799412789070711118822463253175900254300518855703940267463688113537041715304301962094285157533386950740975096766989599053997973734807706979933809719775475407044599392192846846849945911303643725305300001683428814625744014341776459693217190651531114620055921429778808130133495763463649241676867410456740920099755752745425295042078486905446796884851446319267926911882775267581810971202732307857349675295507015160946953128290577862351032845673248374181911017989015287658034938867312737251692997071843418557711586464027077880965909855016923463857167967229023577238676190035838276691899254293226083899001035966586406064239187785378523767813178381783255921750340967092280232500597911211264467994192232112947328663137450845566385504202364854186624480647442014436112248280010223325273795055160322623469236816335063050404914736771408350397600806607939304740141883009792970681336764478361324299405875951228726203130784519046772907737211900247533826330588832773281893457459539991532722158661449510034737086418875535257226757913451225472110353172940851602426609825816995135257948036256950305245095289911415329855015592382265841541060914050867777403996638616950876237256291949565495967433787267001186929903939669050594902106686861784594110954144573325984548747549129895123718929485300255126900074872850180348916571122707668439894157436120749685807958910875520310229724911380690168629564014310018057121281207320540018755792205246182204498604111170569700651330232933136376725513774587661881179757940903563479577045854350053434064720961998504163429904364590899365910541221650159994067158367983955181023631529543502267168086636769432951910638430879759524462368800555893053719099766235305921605695285020023871741351578746125259123956778615772918647036332401951909510054167473120196096813092636461588001322334659282066850961953142325064670290574652025254045793082753286016554582328960763396598540263081361474227205201157790804003569139570434161055145746797279528885316355239077272246024562705020629928527458579671556275439794129071311281142875774154286142498413646941406200321959204343821403984567637388508646733386866270240312187728670585655509479471498527373413939725587417602260515693894985142941441028220569089289997538170490191293724807864739268127071233379568020358284763469904338476882001705321174592235288092366022899470550198629511170189025299413154048937997903294991145537439083927153214920914273372819646075246040141913304373259457569636694654117052030538026625521377337627574881299651628189762219782487977399025803461754379437727613781744140001925414684780988001439702078377908530172362028297299045547317493044419061632277199787401895918409054641588211047205702633666310569061997817979087654548360964582560978128148159298973274171249953046984864302628170195853804901105033928372203837063079619870164296556248757102809826227296077344050917062327583373635797500561391061905603808772672170136727168022434884760937522250454788480220855163521771723914034602203060705765454788966353737525511535692750043540436810857440798967593814784711179805368773691429814472567386105058534483574991755867561209346753781348325117897702949989464081357205600257674140618829445903295319563697462347230526424745056428881990873020071654297020356436956650799134894723191929250530656368758944597747664937664267287066784136016166043165308680243299390989765555053530200310037041478394574028404884806258136706355500158090782877028352162207065624269774378033833628015296780101500288886047123239982364712709749230199935543782340287562891800167437251890157237368209794141017517184470481762925102766539824013501635784095309009026645506278256865291989477753282207122434576648317072446420577901944249897580749556576574725790134250165803865019295208699526648557320105695856918403510330865881562810290677927849616559418924652242585203559619550027299823207338066856201754530439920670898505135353422206969449322295792690450486097028916023185022007088206741846415690567866590638323199204285888722929942931284421947499551895029644099351180722724606372725532956751718273024440746894845538561185542768379898534451944137472870428344900020488167039009035316757571599358719928204585551595543842142164607078009588110004241835764262111527074855923911084382552097174849476115380471774655957041757588171077566737807837589329252127534613461991454935125264536724043436735569118543016220041096811806602498796458229195484774645832161931155620705763007510618945544479577079756212739983001438835868605709132156815013870568538061403079964634253389739638436975352086808935638019459031917934628111762881336971793593586428694111831240217780452471628308416181719086796609493891266438782358118099432297326422070879348957358806272987089890643115349207491702423867665608085751094449963852539953713288444531520064064162626606234374343871441146781697081363842842237797594867587753450456460911777062867574199174759998459065015170920463930752811295624408123795565232130095266313306022712598347796625723102955839828609596394264561163870994422899412011386454176590063264291735703676130075645794579967113213592253709511934204300462747910661573766614332057007879041561580651055945972736941706661340825610277467605459328333234248503819989612877427056294285994645969641800996131602751038304461421531372534349724561836959802336361294008046520546584898619673476789698216742628423041714362941439783250290045930518326366695855936290448517062061784399651986797305095328267201441060159004582273450584802847985671366717104977188349869736161666637733379257381581832458633140618799697147609186886423252454573477658875391270202945574209445912969795901767868200164989609605884627377948013054350216371933298176332134223632750830753963557337996852184498534130906169272358436864629093214974474870063089279046825306565562287088318290504091854513084621298206494733233744503179403663847031491538709325238453929057036012076451726303994955482018045521908275323333438515304786097439495076588580385041579457079795077854799804695887479261375454878523558908745720076440250727237495839484622097852108605043549952768473120237231476770590646504596821441712770447108899033488169966807126396715798884097991834983057924055398226377905585453814421067058831221496696999555591856834904727480980560887781477758843056546514970130152681598804164062419056238219385621243528831318952177607461958402550704675680198760897775605826876145577103641936428182073145775371150258978710188556651432516565226154495250155191215158481679791622949631841194426678442462634436585483813151017246973116155850076231539163574534980947835461794847608564719049158034928610396365515168058404153217597139817347757631097749561976214495206748738079168823899317207155493991994309332057489350730865036733114915127378983189229741568395272561447342246028340438400754761253545002220451541157367952490279847405906473665873665340072170848112074721875529670253653449707628892044558924577545417493205744432633487672402503911109056052518657711260390206575987838698386403160781064978717464371520442904947547733711350692921838980683350938354412907529743026671961747644705367751539752466753081771537475038928758771419381706537327264492541809541755358049505986421229481108878068740422916935632792093061098502694498548308675348687676655194368062574745628508075066181543559147399390118078449659406934282170237523868865265017579265818094461108367242975216186529570802413576463211562823731544083963930597149696740679944036328210992681980032928994409337829817673955938720537918072009020287869724226032178536315339436831084020226845753145995103984988615106974200002025152597921619638739520461438071388950656341711257693654166968427673849737046652383856025700318914103807441158643439046747704968648453108165626938663881889671520066660021214297244669315429155057021048860531841387208792253902734999350462831213727522801882125749791124394509589108210942941380652728005045640131004596536560499161147632844008344618981343254380404405285600581169495878620622922001782215351488559319525367120405654588738888109160550633159992132693277085157994182866546036421081753744678714522290677520486234454682455351097514199108633452289700230197755835356236307092484605427330537114101149258863728492513158163999516312901689368718919646212265692652327625969004424078269985127179801301911966261797511153239176938679827181287846816373431741101326137574395083593896511393602049435905431156678485234573742177717661910863079709937409626204871111054595827710986644935209932447609861202935077673532685671434752502248463139385957013424966240289420574242938940873501159165721384987579561144099057683449626626170928729093958890123395525738735959115281132986998516946457171582949263748069902282447322511487630452757988163565157369724443404620354586978149319987661803663293452564325049397483927819053032629466019504174428494681359438359010775503809191133684863993434132011444379735485953676013428399824336010683614117901693017991446557982425323183815654958481987689569987886855691781769565821921236281885443346532363076729418274272480298751700481756224989272585439721339801559945474582781866445881698095178405516115572180651441360700424099930839677168068843620845559974280531997586107982740161659441541894851394769452574306369468934751760757253464190935846595848518128850872875244826083488230692434833504289467145616291510309310411641782101118632428767171884955778303338255180992147678161751026092385503973427089264955892172137714076782250406257509516274125455020999142663398371527792358527810796586811386950104559167629293245033744442583202597212518467357906499882945182391838841412291858111291614096490310962690876822711885309308569307615781623565093029829027213054415731558169313363683644936745099059134387785400226542803965576280228070537059032462725825889976771747240000900852111730445685875693178301029878997741467484415333035291428997186012826053265555083075229812634775685358212929260693906888706007743672045201469703853205861692094141723447569498815879410757404025801983016171309143241706467425796726719188598235352706792402719884921147161051197835773000048369039094103644770307609338460906163571163782927216744779201279959680632971786708851948475061451603725133029920085979404681189298246112811814542702365478362342215244850768140951745635591031786237629577746909550662213147174726657886940531586631892418284367157257071978577797184499468476228933949277679325885076078494713062223838349359852387921091766252552020871017627372750462445551156459936313813842486773715611631515623878614074061558865041991640559551961527132452812570974416866269604476138996767553409347746418669839661585715522154478102877642812488481431035501091485002112522349446860201044131388804097822748191591926767197441949860591278600854636185215756949512303833295629280897034942558936001478528888316355542429307083958654976697549170829755126492012858485200493707281347508187598188394240704736287714652141260844227155755484142707605848709405043028447639903775030401219657053322915748397767954425987112020613371673999756906144526585841601017485517237727813204180612877442686445345448948757149304785135112156833426021174852838564409252345489595721613334483204936424393493832333932307647399109113915810585305292363552195282827730589565309149017917601806780381653228430928576302958581807703740944646785063585309278190025721199225184699504306665921169906986099701610127152597338309825596066891090875793330890134178436068825312867589369288230680366340151495653319384141810447454951494944636204416852534925128766700639216384156220806229899857302744748106144555292537978860771231895551355384294090342903062289938807928062036251921433367229351491005601653828293303047974781454811188850769999969323651080289604765783769275817612654537640893019552220780894057817586084054713956366971541653497596685418448492138627322176330532104175810971673782876115323303429128372896117749755846882366730626222627250021317030576435041535962057666889950467427847854116181604731651553042836743387738678651521521079029411853253629994787199479154198414746217690851765832481525897678851779475574698650132281895263030967735102339152001886085195776488507050212004741583175833329298222199141483288757534164949092938242141403331276552081284034367979378426986454433176636363406197458262813287715484018757684363368367026099533447322710636631937761789090120120233938105368026246873041218482386871341963968160389440984768927592042106454888614608247356851084290511805045607250937631413991782637345396414198548110908551130074135092703536625799979150871553288560923878186017917109407153948989549847084004636177245351755983514328997036431293802200592813613334725651030330428395169145403133803769102933385072250510306139817553135974098924850539157070792093782240770791602377188699435003584998235752421975263721288083522827963451272088454480482251710403340072887789636677879060692563683257376830052324115550008715914634183071770001991393901988349999962405328507179733776159797449241258871033635570620186051747562509707488669063480932125496731719295342191678907220761557359106902147739897804498028476570440427289041258060691347357112043218589348864325698472146273888443273474771831970723249441211443896679256216819119605232686266868197027533589500331454740051667746223431977759123924213207145159701311103540287346759843240106568275121297257895532822051684277500475486902470578014161116985755775578214197507675502215577510901730877914881793164455544241638763218000967178390832107606593446871862513922664296844744457257476511050801284151687661434461991352524275944179023300703087653999946782301840382410600101244500509201997594146141545654463648734608508268357506782655448152102760327312005175294428912914934124167171622229475796341774827133396225336138923916870090565864299128711699571616624915494085978245534583562772408384952767042552783085153619401885741737323414200763198782630924038470983277991961463827150103496510463485060457564825054228440210180451989172909331266177578983870839525225050404691092506992282741698251391131612339315596569223081279547633887234119545196825534304538854020773123137109043057937903288646873414057066228478764150835975439614094028497137921761328209971340859387968708742152207494046734049608713427713557991253521032323930546631586597580890366355323590447209695133383577747163775418352589857952456046989925843974481582912756808496481401926612636788710074274068585488551626480505475639182634250152295844341678790545630101267990967266442353497042482250216715902962544825962913354455967477590032495327095972189315094912527862055432475780054503006126100635765146505647655550601987056617409084196438163584636883843566837093992256060257687045289977362700235232193625753528630848450096955521803468118223257591277096257668978717143708239651029072650083889779409872280395974364251253864764174066975092239307138762594660534083045005676463437114180964357876688661570244015421812666448568933914042956310083784282142755170158360680996501161165260010601165769253606164514306763229125924635072689626083059964741676911501358031242706826733008763892009408295948624635417713334706513635796910500296088086767599386719721891162037908069465297240669482842439667705395159980711771810251886376132420715061742259331231590773461136949548668920974751658136721865999943242181760929566909473399660890264592020031456713744221129706969070074207122948976198640927426547339228288272696132355489491334616172326994400502066570896016538115321093216575334324898650845740455560491796510773808384285345194751570233118808062460461825255934578284851417753432024966966085480284498277706952044624704848707360588605652851898867116018556110870995000141781344166403418384172561613103052240886782493677753741739973410019443781979120826547681604132402734412932946848153181831346353853137143564551836653626853908777750937682918603685126020899695199216414816979850422961735390528402065772138885122555758111311035544668098356287222520071418255081379815699635815012796764142285229729586609906141885643266865087183133826201373281993645282488131731133409610723090715052709893267316636308709638985596940696189055634856795895832858524999017049202032274436932595767841481885334598982733607332706599612522485532754953953610393871763128516697988661477240906117538127322416447155231681218958806585115464913349824349264848415579997728306999645978693186701118865646039513184461035855784567755224453270407181486962565986931571361400920747115677667619596500177130076020545605617307477094825600921341489494121080071551366205201428614977221659644774870524043710835731359360118090955540002142567511300377971345638728566540486049993088623275424818349925383178734396684808108736990332705391598389746929383785276878095524176826165340821237339013792376408612008023992810760757164621280062793508698122263447270249116682125104442401974472462047117904890855261222498927397531039621609811776202636435156774497338409479334484767406683466905560185419317047529843781955323413583066973949785786148439945407505517946403863971200519932978216337948950930179072247134636172908393085139274442761940264031453419898026148399882923789815963933043989814788799435725356980389712074510977345913250997823918882281058344096155743225021495538465111690519953433908707389229193217675654947891627717257740996389265173266341245423522213026883743688417758477182021910406776770656751461056226630069956584374383539506887050630596243411476337516184983522413068314578686423871679412528125567989663956084427329999849293171196914458365454265625863144689295000840129190943552010330079437684517004324475941560231682214856867664959752738976987539815510401219372503724804412180063348379249917537664937495355010962100417383024778244532567215830275853688690270659355851770520604096798057300584538196265553339269019741149175112808835100651294620081510657076074415684022244798710136156999325771857271832817041610405213425380810348719314452279597200563941497159195021282828483000781237990539108846910644543560717242679271482361937794548364158531440844277389162600279444523442778049989024161678696476358286487325623925272250599580047719129508136534089194991820413117872296660535287425580650341206549270988241671835528309306995859663631669505695713892140125935095585063924996357927661935151765112355666712247222421471260813893667126430576849067366810289746212495949738576505139478780803663823789474344418450900343793816920379258269229847286255824245930996596136908161995824964028629891355742580932689447162376412028346427121822557728430477304835370506213072878045034129640436590402346569875616746246941720467695143045371622637637441544955424500750600703566745938349491464192208193736553167850508112427814821718785033751879903285711641192592082340382636739210316468350562022360840370125856073401159417874629848898097636167791943203631244419890233376515231254637232944222492830274719781326491847330541248733605873714428040048230303754384229447486462902460809591249108593531633818407184115238406318812962608067919231901532620701277927089133952073922309062244964705254178158144321342660646918017836245923402169445244982355185493793820231347027039849756922134779660982150434329393803612501141908376852696270342769543619355739655186692045650064387594259856329837359648787664781480276743542580608756894081462860181706163213322761357334100992366125870480328308379575795316255221080155636612309143495401535134685671306831033462370568312995221575686509570793003723896585442115398151404706734678959288142371753348602910428120894117055796465573533409237417541307839236393766106895217282355579897694028143309676757993534496645915956206584956394233206392196055339603790260381783682845737840452254103440878552832944060176286909491002343757263237549339981540899860767585642596843089560238217095003938018058906857931527599259117298371277978172598307444521643479104295687924879052575064241354639311665562122794931009175739132422737689374313158213542069736602446653642256073012504322891593423967071013759222186022907677946384061218648935605609384720425131953660175373049345753278629411945248252144863013140521159947768668870687706203363331592637591122641156116615500342487954984213745115099082055397744600989022548673205991649252576771625380565980335960101197221468194021363899954977289978225616894036618831917728658931919700431351599767404071096471360890903889085396178831264389245275116157604020901234742110560390022249005076739230023277284523793059979926048683646032638207584670348993434097838333591785277549217179255163482144686138348380209761982686751569926066040445384757412161403840393984498530360659617079721232499194567833292319354015461101803477801305152552333610866689122453373918710347925580952686415744508434422801803086506961065303791866349690042595134570913337709014993609954784054638531564843061604262151109418966185498136283769381777678893319195260091908822533623208802982048518709602358338823232320871333397218582711763470096514307721004167268693956922319605417361645910048439058131954209055589801666041584199247213335850909779890900792491623823124488024527426517485869699359880568111405968052214383372875638139034706710234889538801113779024342934384640331882210654781253519296161202787432084756910159318559918472126597378574253490470639280094876292967079937084969146819578217638885882667708378527654768204760764828276571188701771482252933089024470569592502146153878546139885894513728650084153581048717774689552735615813171115861174369874134487647041447746033056806557445447032738690992109498127977126604021774649227932115741268654421414262416089780932721362457282164260442052583551929866936412386892047454382144697862710049495818451009158128779929588935663520373818474646105319799247609725918402356527173352761295567084339907961029493939216819294317875318619611442242781997730061301848984705214312906456605937058057810529592692579784931947888647843683762212896931922968311716226352103371602603019467782840574896846757943551947714298665508950291284812327954351323942763235785643564761220460902712682917557310013021646252020216561350854965198844420115072612157523327128489780119215375491721123226916695146145622035185772430451263887804693304342384431244080463701476850453322093458569438577411073088219662358969792054598862669902398569927179454769029303131499108862936015744821739205137028885849109949551286493000547139639661282519437306634234028745444616184217130561408812819034732890737023648344800770693054565470290486464997060710257795105002765355608028967375897972430089869068286086640926128756029989706908455777072982540868987966559093833983984364213270093797656060272411562489012384990945909620992675324040434892012377109132440898926099752438847479539431117863006799499042094512740236785833535398082192060234091011809028153697618369143908601502512760492345667220080283493609385306167581276118917462389083899068883387109752826998739871318151852237263419529664606520480716745488809724088017199825866810355011821901599340231939889492121841683399295178934852132591890100240809949146108657710060178285799698271321662359971263000073300702117200475429232736745618185718777472723764575426728732839450047181258280805774669514369153218706949164921955862313598460864637960396241345123244511688445517410540250565225129784819799148109916055126433337686081157958461960817107692790313058231175009945207094252023840564640969037364385098108087350980547043447920839499452823138009505922831320786368752203664803097726736282008554281484480797063541996663637269990767045887614808994798056131866266772634527633043875265720746684551426935328173528039183904734058665707227351122536227898167489477609942969745259267757828482890289217515521764421748459254349988905535524872851367145184804264323843671690647567305470946653467468228337713640826866995211930594157490110753250451080723125544089864774706182651157108244008482346855528991212304762018145028885818849888774185247690099513125286252337966967957229934217334210322610511585982126969997385325121554704450686373000048240214289401606665297580324045229592945364018425889163405310907213368202515241303187693067044365747578523470214292858949116519631561040075587091397847019921192771671832066713837916933839367396750578966022453848295208307254200737223973088495257648039719977793607387900210006077400670837907285660685347143828209263619628053854578338189067820248224941262115989005326461472418569662207233282249628601350029483621350229988844260379466098699548251207308818836497279176307494550628312659164978678622659135683202157238404792503602090714669096610830826503887069455896538518874033384099644937835822007646429810285514952997046758296060943485945130367719967805588142591429813231002222430786031880731735269284455966984198058446668681078568341069941850270915646418321732276031610287997204875395575950280327001806270925009516873817760198690029566192793864092970693978762442528286322490351374242929322758253399438809511880645843985024062413153248146425470053169285061259400683127456783705129638943885944957523011700925471993235799456597910727170036490285176635252111937852383281362374712163914760665805444517774762157603907577841870703397898826046466676653630609520463903509411103165032137894099892206702035840261275058161118167081536348275624908477528256886109382481329754280959594712683438052590814074792749296010092593853319571809488599354487071238542540496602696381862389182380273139698947442589824842186925298725756154312293936461107882158406342493050229551550787850229000813258596149536825245518319044525160061261806664318763939959908618970775853022575059432431040012764030752704787567863086249905974801355706057551592336070778732943213415733413774707283118028374917695529326974950749896653355028373997430095504770709826989909913445057405780563271916106627857961054426455899010503943295552232516123421692748482919422490527744669299692867861250665676890694702233290173556420916107816423131766234667516461217250787944896780796541572512757717383267317256675136891482159825019658239896441955087692175614317439879486582170555395592059514970557645904405449231222184375828395286034535809263703352140135432727219344191894598556327035709933714760057336857716891965097070614840024671557760952084950037631200740573540057317370242772238744061283893655377048512595282254332606286754175763020060114679184880985545750630446586532062364126965121280855251246863310588438689928096909297374256848610377080151139570759155996928379149848612388524033614454381003944040012166632895271170806111102211336930097412524565046628697165241271427644490875312226415683020392887193898032035325326062874280006670282089525790752205277682385488981012122577829559719275632358775446679792508133855417891229918082371828392278029566979046661962338546624770824399565047772318545902487416261124849721615951961894157289833234506326038363587170972869112528992711133144113399946536280727123558601564308270997193369722408357042962352697800483346757467768318477538358884325484073346651961089374582815502829400907946234155352507807724018394837718456842438685666745433266877637301602016528239354879943429016203621386186434150785783634190504107432324067486262448713243101469320206320728604444048240425649678691257043545765074099866413751876218343926014955727504473307556967074363427183758731445836086638168323242658524670547701882050049678691961787164336341599688038076485523595701733801276863445474328251655033478553401064549964684711827330581382285386342858613529232433071398258551314368036831933571397315151253967851238618737559121675333566271887602404668671743286641607031519288191402602804233462790257066211130500873115774132908329046963532640046357912397073986732741435403382053138544011993207427021409426739846291730212910353033314171270932910010635257978033616598166438225954628678386102946858657474353172654011373073218219478785361354453233154347991953742499532481779670457336073847424979695440918363064520189058088345372240575579487214723490609539577135013254627045062502429618764396922723157495317360599723825291861490236320755255833466187787223189526571429677392686622375279805977577564305977838360148264568835450978886680457687758260026045315600330225155765880672467715660425206255323482969434656258983604651395040466840573298678779173492676335495726155973190898830057549403537115902294213912359202271216155270908064661816260719986897294528628089402443773070206168948616144042061189721877010806840970998025396545106324516115633116218328627896115189691306856816950732769905731687859513646252372007795333798064876747215961211583541872545477353048313885267564515762068997021904525686422737139110631752257699084003885829638565270076449791532420806680531037612981121577043465349227577384616251765681209179613085520497819548627386979076843515348604384764233583360870817119013928879384149157530124341537613587327645510224801699778260809846996670503641912305152364489585026108068866720028924457224743250373884845783005368467905101805119574777548478168669991164022500802577665096420870370884159468092010986572730399580775550301964460870999954828938998313080421539077977663563694328677703009690077749084378568008177500272106791582790226306864016783325764843975292346571266512137483222729773636137236318014223313295023349078562254257101142903125480123808537145989931051012301702291320427957087513408037140587187315109730642278258770941906461259852852945686572718393858309847961976720755710656947877192801864590116783846326179762338942744804044139559016529582483332858898410617279527782844534233610428042774757821632351873630362327953647724587256725347381590226629041734499177836485104184971102303887990547314356516295250422213445848623692821971375923782528194199933788289625526379712352175576571037520944861189321587633723537843578699762626674104271404718055270533633267842296846201636754193787388479309186385907538353762874138307320188293166257559750946321115498839028558704079930317891853141889683646178880911340613011547835247075302445157436078740607366189863586934878236952852944847145596563864013146893915073572630418036170471491040235309541759915657555072038461445725709597869769697530966769972479954487886104520683897487310158818087242017322477936723894412948747459284863468265253684536817474290603450373419068182000140462596009730312196000409769009537132546986640323050674831306917084297607579832244766776196119879447164504100940845209476340916875977004398935098322212886074001415950394199042381425823560157309183100418218555517808919796347256668275773367693111002809988063310830336646808020215384376182694420746338667379368459872549811840528206200009073790309857515865121813285057904795589833367289703442902144225815257735474856351351322198983870034264611515056068017976219634364070977623612465473949581072244200321572687788897683712600065015781642151802995416166968317293793855009469265358875104359631092479601233913391000107361120565733131802073343960170241431065105430400638448058517364655779582739009607774719852332942114935825390669445977086773324493162771536336153372981992812864999198755984368299920345247743113097668565978088156623204521232892936430905846720065098348320151668257586403907173930290324497522127009919266457739970726171823328328808252844038965924139031335444661325513486206517203198286806436520898600641851103833326898569375694900682839563277549837395574844194533343194016137349328021794970893325118510696904388875836041524756468182248798757483173954779951817437943226109882979813281578597406370730656179030614465348654424615345385899252501513921463044460831884895044693439140567118749005614943353416593292041189839497702700258574915078278884341056257018434040154043790820686581002580332643781975860461330612982287684918671121731472903879168170462163519899389419266734118292322420054342567225120328913326468686464647855040633703685785551595620769779064353346771289756985712428866345483739033869936566115299620471696486512708460714511967338699366210254925725507941487492391712584158064903002470592644203257730826679501287583547041333322173468310365377869087043950980138571536290369334251307339430756649383887670808125371001849147389125108923823237959182273494892843557870166578403828456334781139785530812175895769868028100728655115202870330261403715645702013136417429631332540734942712408550630345211866397131027040746622739620669982310153952774133633269098661243797687732020668318371145895609950001812039377149305854051123952695895389106007118856263565690622430525006316708678249913364352894945279403118785631965496186091181824710926194071810692668851946535005165516872063973390615806543245427071835404621476988789018242516916278237462695171116881936684308675468123016249945242045891405338120285438692927923188743510644593132798010883676308759063012128671051245717481350190917883590441609140384439518445847268964227430158718017984328169949070991653275175001643842945889960929784419296860350432626241643370174248715893059207285284174033207687158760270155024897852554655797908999311837638814346000102737409841567363869026348488894265856280882020399173639571388780123520348643078845874295769588862639439908896902669212369017866184997034831435941184354818250717954643066225171741064304134971771229625111759182900991219132630730010131841231640383064170675639067520907510317571171394837347777439756316659352464226598813490768572354093011031808589848316644161250681892417240189603456216415343170192729606798537924627315917188107980075318942968326284905048551324449600776513497711721809860192409438881998536222038358480746590379065548322456052116572255598203402989739336745587211319951282849941690616930246386543883072295726574958644039174502690556321966182684322651734282928450472592501730028973472088586166460361582659263755615826971347567929481593960392077854344749923121721378777950919291480147965964608839017733487912933482076023445093388835752654577803734596875733258870650760065386777374737485888322613413867931312612221346233980912343391893804798041704516548646282772113069213036053944776373169966172084979836438522107465913231105558405922811237831715209832560958646350602151554502634805147029591546871829825987255348363026555389869623478972629324311507946855423045569178600010512518999705924874181441450386680522325406067725912456778507619402962573667749205575113608098181481473201232600481048567747499842111304554124555622873327959631623870260369636191257906611257403080987435914426506527408708522719352320957693841004185978740476138562443108534261402911179842987499316882229724524948288076136407681243448384987333062834307807001640147709612018228287245014598995905252017555634771222082302606790576854611338849876826396794212137563203895037600180873147628814188869436213072938866119084984781273533591261684904052160804131824170878985446397838732072751212848971359558797869723109324345799036209612465773037714604529201393852692526016054595579100154204818598218361823353721153933297824606606302283398542301432708632847981964191585208747801155259938364158574785044616779774877871356111335925335876854232212078271510670762921690468757765366962125680336971113162023370110915431784260247325613954127539882124106418201344419966883343413940872969916521549881558268606352365240301909340085122057301814666259671965611242242743173525986185508920680388360937904816805801345453238117159859905458180439967800078316568963590633395882244568232375297015636931928099314713823487760760918722408475802026905574333494705552217101699393621081137664687747802956249176096237872756462128694031971970154704089710747117410030308661452351250339896945360782888422981612385287283362884469472279037850752225346458987532946555278155754402656493603694060886419208552378028427216720361055939469633447231955536704896684590362901553033933443536752203962824959673303356266019817409844770884917478670588347651067348241478636965424886952321889706587954194410049166052411119781916705663057258800128915739831083862261495752573837703616082626581565978025233949549444206513124145388368713679922760315865417232840604682662125543667868794057218220001444632504809066301081981190752856233361346447790302887302174991271404672503187605970979783979111573709469038212130296358187291727763910404899286681042353679616436733690709948313767135106225428640041543982386991737004302325834408353855243694795060934612832264126930596590013866161115395473438656171539788353071454687424920359978015643662983561980336824518480799444729521960798450937409187158579607771094623499570639203207510534327543940455846236485041700523707859630350978605349471293287975863948350620834278732878253125304931107542530881137555391461117400392417766026423152471481434187805916149143749188902750792438733156481060098830728462469719077239870892007116479938120179617741702586778240662249585272811017275117215324532560405106470684170313189460938326864329529799261920089212863858327309918164688074174533523431558365397827353197159981684855646793237277680957666904424107457874401025238097231738883915713556176589349319364735880314823538582154003271308825282562475858618041045065026340447769126259382211611607042019603176808448959054910490772423936823857328102981878527285374078474279816861208689868052543473093223622703337380315008868009371706827797633411458751640820393902592992997320266676629998723471387616822729359066662562857561866541936005685538342572422264911772052051877155858141373320966965367017648305313573844880258200296515945958901197227366029773578197301141129714086230211104909430720500655337448169592997766406763308743157823178609952695972481678899240937210086961849816718420462832015264895043983566411511715300119851836948211450186696595311601391037803232016457822778501222374303897421455978619697436598918313313932450723500306842277935145657529973758676580373946211101984968373027134028822848810336892918010171077275860711519034788240263145006498933633157667674118083925209658598729698570553839706361182645868803634781879469734128143103643152601529822312518610572124975272778397114631841877768039168416594308588651944056322437125636942615252055801475890027781864921095465278131505753525482377026563871202784535153418440949258817999157713145820413541252322006169712808429278439309542076588805279647818976638999697187113080731585961796354088777967259859969816978549555781593856431735360899121287365702022221005361882095393868597087031437331054933434684954823394544095735767682635763302051534882328702723882869126985484942628837580268850204950820727774899954526190841654587459919039443757988972143168268648506420642475246320723106144290517437959821213395667718746619117426802897156879730149815010831665061129077726735703293897372420217367626995408951193680265463600381018384402231760018636354308691373799493821152535336469586432417908642143305568769119300873705802508690488617843008617646628917587988868769698958558914500678142051140938050293086163637755776664050950791850113356910162217531338518916395939520832094921727250152216289323133273448208913700184402682871363141843843345480242571781238002423645323156858790202445562347983972883574587430903714450907359885944866150766034755883421866877710722604383959492454818205736116328109083634795635308350092165301277873915846757086851813238071851527852183058062269778908359410756802038796027018519628985544519707735187225426267130623310611038238024028543160045786874265387336172172214527588153302047963878768260949235325623126064384014812137257151065510054309559831236673993137367271412432611704423246024246429100487003769486996349692495191268123359104276155109751855351860575779041993701744989007802927643952834161302743166356939903796187730160414303460817070655862043972018037673612331112832633305660450561696403284926490988770560433054419935389588310961713285090882207417356389816776206545059640001747060222705049645508859886788519678253797752790135424165650806873014748405789885015925332666743309751292674818585319062219328530887345780119569550434794851345131053702144442123207393201057721765178148950615082241665177348506172323499559262123597205627990836809004990672012735399906806564072219977949178313225634646552424566641558748733527586423592016780748505815528199318645398312153768158417188687230967520804913825570309769622871489304729991565245050405351126414821370072140453564512067733853993010018258646014158693754771777040527878013521212567306888612620364800505484811313430705309306071567658700292838683456275659284320447526950968493754552699921946415348582429998247928692673503290017472514825874737307724792200345216278602966989957163682359350725576901417527040275643408165891966842565689343261517584282055287883531151219034874026757650535654105788345019633991047009352923153264414633739658283571278946837980414605937351582494870973548442318326811379492848329366817794341849334120756256597353866127777482169967208973819674808777608773320939491702527348520873738608076975967062295505253359335613509292326160450837347942963519956656526837473566735109884204924211976212562084457046880725454859009790458218665709795533825630775236950717587622078105043032725059154135419424574638491862650428008714122181704640397461330811196442372357858775969263435407533402652481639377045875866067388939932476644889574453515000952811093665688138502351980337322939062410547214210417447718125693385495026547701680012901824095556737095049113653360856822129563450295712138804599015150823735364518188395404489818677949544178022641225656272228998014208860209291306580025269322493856346467836072261587498308261474939260791046518130801382771000425219064036055006801866925759135376529104491674109473354973016839077458711343019288982659440064613147803017424563235248165746014320243549272165779755855659878847301362093421563571709568949736323044726351059045601259043404535497681441990638019322819628270189413798858156664006015002328246501511552848984780418065279219761268015524898874779381695111645818367425404759681755359411738852067553046942136438333631916955307512238974227735289248491854313987152312037369182526165032180875653852181227836996353287669811291389433058166015455307636157696898210677406654101864185527866871939054641150779204547607496520833647657125571397223483767682417678133182053714105485895429187834328923496254043457402569769630402590713457924519299747704364079386656083598408457464004397100042856502339391437278639935436127762848517670511590786869875471461411038759621132142470069784163291676194333311766329853535092787074091493795371691516720221508387020164757128683423537647426678056159949871060721091433342891005185154470007754744267488494245820741320718464223816054024631920952247636862619643456817744964186647166918143118259797713923535473164391159423793735357755521576083033942516640590953395903704547566651515021060550967294289347207617181153848285267594088945706989975459214321268158150519530657587021379703119986293846897288069268239394512584279885826013962595210291520980272922809614031213458547318169051599714118814895406325144643749853789594143906550208027364812023134296199335674890687735285884377832348924294194857080700398697625681367466467915852304888039723966336295621514455469641500507399294704469864958194926988421407486909479760852072654520113768944168489521771691735320135022165163652967415991457050119479779354373405303758820807538347053936294154897002697382322124317051562562436300179749070742641720965082148301037767678469876972974891520181844163816948115007617313802766707310098829899615658017960604930345086012543900782792268212181481294803665961923617562500102991744504015051654432508663820796112411226001493196582957313212727383179864698117557043939494214468573540566963854526261970400206078114669154780005729754946568973422132709156095814553985560094339796537369468405573770551566623623823242866445214146629115737592721617261936797649241669027400019248200761901558410499780656802599578305158250539084602494042753849391279072958199298446163215564200957725296875065356339583943862765053311577168398057650242033256184538132983703009113537231717511153548372272361718455925984600271515734001428713643945351625822814551272254231121615460538931262597549424873882811096673851231591597857783079859080452769481094718542363783805463185778566599294481298464021252534115747512844064736907836603864745494219912574940330267021331563410453898067089673467534506423813356865127094348302519708024223401037654715147806469710211437903353312457205618629790659745294414207938447419652960730859023730727326830701085523355746543050572890201077416008017624756490535900615426357837312358786672966565676012153271882853335800344719857277533758458304950849591944762145074838310041095009021199404571583053866369349517612275585725445407942224194282553701466778015272230970007129946606910938472942424102250083129322974997678586448587881730068093585790682829777494613364645620182918479395825513158688561216022484294983536103830243512859164359786648199202729213817682520562800319829953831144996150552054571102609446035543107188473279460732197306245390398388058021345424289731859240781355236815911844246227162203967101202083842540018807576881697061343449235931989278929146174334942639792474389324351921513033619640370102881697092313981000182049490000254406731349958810975263833937672588609441789200103431639245757165390326541333567125550301992610568161549653990996781015618938556675336746211077479141220183970832554323279713023744043773846577469959908609771710010272633589455717462145298954149846249420777958932374170439614956007251478844413002847525589194218793464066222553897528294021604982559429307577577886420011243819733089422297962347580268336319700893561865100125893742719729097896728798323762257433978315386619695048965570327043915555067001896170216018391574922449365278515532369785791349248524799818562198290769492283090463754722310445702718988166225425142162094190156439561041880431995279214544106679792020452103040700014702156891650375669968521210477992144623321851793286365228148407375792307807737597661245583488183334401314825160217972676743096399523024399783601073142304050011636346743679383561215028282967477758595264731864583739232854418306959894215305853359676538732268331597565279205662818795721506780360679067792414331134040044219497786335641086542143671397870624762813773252522613931329489539612578042733554013649936343232573015054726248904356288297528037566881423740207959915873995094101175656659737557326676761571126016201978151802433524122984533396386821207655075494851762902818206947930543600133381014078725049250620254911820342816769791804685984703519991849291825316603646722321086087077256521226359349316853770478857826587370275403252017250384805134014918723192355422234553838905369999939132345681637236670552775428359204183063771261401356755997834036334735782519500711969094085694522681561928293493938858574796935569789112061827393893934982880270894008741415894457211121383979963911688409976251132160925881786935646279864515696923106121714134287101842599878649301885002804499931144158730821858885371137907023771516821137949441004599658263200938362897140686816030112278984020888252674541257556067102848145305962110631353168636976559061755980770950852919268547480058740075359203503372836281975313195079124249129952075197813136532834038840497796133166389925362469648557119782071217281936305672873193295845345298235730008138353207617055406424679312536404489814443079359166957072472627462062434809508882154744769286378986733969894402606515217213880666428939448069659134663920139886103542538194172110253158298820294712278777958843723517317230175981658847829828179712443018753375436479182938117778074252173660011569662856123903646294470807537140041835651707084076851203433609203523294534702111449778417463106960517644020424794111077297417745631609696708276194051374017289196563499623920575900842133556845654542828438213196850499849149650433435080882948823905431637421660339954899054575341455560482123464757383270233540404463372086541398284012753069478534803443848793272944703080065564591989125352404969643439643895366786960710430435218682104174543708907087759880553309730053801716916756608010021247425342318951725925851709496349909907861966035851531624522938153505856973502754229193712294255625519312060084498766867578522462671998575720359758975871073260752984361668783320361295459602354139983428140061354075346339503784436002484706325202338902065581488064022823724863568791125357144584575216328036027580843583579252075352416200315019393715704877420598824164669420303012548459237896273103251952032655996508882603393732429964520259867471783220223896473018540117857143990469020130812835192111006403424184959322254004297477702500715284897056602938933033263388791569904544512862507673848048719003923865385839065360773902836436250465889020672239628972311128059361170106934694857907678854488995938691475213503377080132100260539946557758436429501876757927735742915612014901739570320447357816538900594911826345140152522909745995293498323899806227027882850334530602502213908692519615654295244185277787352785776041516966611087803374167720173290270868792561319461142169142322909363650996369201485271082624363418125607872845666518882112247723651024794483761471022505901412023698325853151702132980497427790799673832380631926652249770050117465317547437716908616008060582440234802274191901385451273855287161527652066698954816265749584436102719971112030422286020231382855132614444978467269317685446294713208694536701037713831288532330958573430766643821733175503486752877811521128379013016171581777047681390825236814563032827140935401494632125375463627049012141012764648272442849221935396304628059537874721464829912398433661690209199512956054338593656347143780386008642333857597023508839058489173279026816745899129258407470227403164533716567949750287919242978260350742321364942985374976412351037108774840302797595003459351820138201643564345275739917931237830037869822664556843570485696450049310098717205983653956065102465776296429223458298829663810780785873345390629586115471561026385305633726568995880538551391689127891955645094967695123337271750281406282718799343811370218985500551114165820668972584815157009468402699711918673704176637947866706206030905442260646604715969993994937167357457157468871329638973753693147152247657125494072470701731018692245280302982392343311423105472259943311568037764214567947422992345999456285285286427978595845395763185993427462822404753809686241629432917855628201583979531194594169728155833803265685513590376349582020577615046519253604194483469273953229723884593984029187881921708166131599993934166223051619243382888133012551760744441670626753034934099093600442340119622641448252380126293126032938979258865981314299585713141309292496075359042240341291830324276886346141854809777566936398665087162384214915672011285614217563104116854570925391771709630710493413239135920316839572927090249470940642726211057040957399607437356592624362279389639725909220643978189981039678989894209097540798338286996531951465795802152464359160457408239949974635617884702914957617128382586612396731471585428820919546107841812215103746799494102695206295079732794757807654249289070255346814604460099105452386844370632361290992761814237748670952189658492983958823692091430959165040079687257719772447655374997541245100087109025727295160394331233270253229946845509617733373539749346398043258981317828954728067110979117213093228412068291076242870135261076281702225239322720750570368343275980942216870760276324693469701221275045911786030120019463587431358012196177932813259938143640740479509327301773649257304825955861575650653084804457022522794781294373521838331420040740054403619927617105901824041744697998326171225048327338025192599060879865014495259147104148960368758715813186800888333138231566166192342672315116222255609887587668491209370167627013960906681802467959259999799592997590334229612312783416395653237246148373092855304814709421800652859437706143008439131403529010714441522412614205685570563025419097083402029390670389720143956966058482870180633863988704383768346943200750770591378496683285667900572556759022440051990550383507703478561068088928176336881646205282255204584117366567846558482907048407426316256359915676397159920694230074453217992785514790599073050844842844132789097479718929422219977026047913560583969813308164561361567269078046567295879207755583876307106614068411995324856530047119354450986232547112046508295760255794769231070017400770285592967407430142776385282186557986812413291758775755849492161268786997485648974384223009228094195918097239490716406760174375873496097709278770193046270621670307360807085559232570480969207849200597126800809466521920948781503041568623815061065559548758291908905314787148278939874010718478063657657520478626249762263578677649186443792256940378824273008809437545395154139958359597347852647315095476481166351289093000295682177597023720255165676300367541616540113046255098547609455808348558155072023193585054222671169271842227356855788010663543089672612430549749509096693006384431308674979452673884577832293675734540160422670780803344743502290830443633981456421024548442599470029364339065461940175928837107513003642470814465590481310717831173726273305158422342276924933990174759220969154004299805983950667765829335999338547986619893716094453452874915695323588269531891434176906508838379211417261264175450282398137680485585649614217180870682952997633974816242608618614569990100234124399090153113797052483138770393064766731755681828209715638283743513278260129633490597858564206410002813928871844019476077301838456059326466123256550094825408795689820982765574894726683896044285085615847393278439540512459285572149583363310380229959944453900460716345702065523598203359656030287011485232874472574863753134466627783557727824809879802811935712835938973677779411456635749921085795000400525885683621700011022333705533165663310313051649956657697660041786913067474259961527834311878122974719505654482516308409460425592823745101724800024640282798856093712049101287857569904232041837534536443821694903776156686069781007001390045721847533961606250881395029897892500321048507308576854478623043048708874639591596736943628596342063773376151300993814059706911403028509963179838159630700445451861212507447911003265133888294619743662716469362895623761527145821613561934846923561872542219124576775781400556298086293899040935920347560867494985014749029279143127658125659144852330664652986845829345367372755509514396838057721130191696976104182604444285190222620635279889428112127978909016947243634579732787494850670237561010649546129228396781118198490584669951126211631730963981557167856570526399425658777016974889195468363377286593688097509795047576713453499753940646675261269846703898828754992407165278190630498822038076621018557099579828151708580879887520665855072499710326044861087125121276892710257759670755529006049819555945160442070753304499909687492392758951617807800796955728787054695464287908247308057342977963335268078180665702535585049440742777916708548662255156781312045091742771628842697413747981760525039303245851056509000434904122439039601297286921664610335847894521016269211665440041029078950162206281787050380478246742470917591052835310586012170974984527544036470512444508704425760482779532939895237511026443928548138922591516859253112787448506739837597446756616273844078859926461196858120220538609998722870463990852127120407113271223111713412886492504177100309105560908372760533168183298745246833921917583919912823262634961727901962178136140487462897045099103414750684009515729228262857265838438387955399912983439176768704472710212118349549600121339189600749915095983219090599789551184552680270003868779912271300966327664415453974463959262844730776275020559128338581731977741215303554913405203071478246530216743301309887559888253240056364146410180430751161186205382443496021201923307845180675195059782040982042998605594098629379267055385591213581441331175637546598813273308501511284437287946443499996153129960562080102679431236661774820080574983743539896248062994346812728052188404211958586247148991272756619928084464613822871025870638294038326644866946012932604243784797315566874027793915270405991731368045951104710595595122558874181032802126398431466619830625669221649783453788657589900615687019102200656058123786987837444779215300558906197673517762416173258222133892575465938016223279695625630878000185091015059477443866273850374787756042607068275892898775307092356061456143719032552288702120510232789463911283572775221120514787957203030861560672410078627057844851121124735124862098850705579207666982339260709806573583993862856600696600242698716946304655506548093898975732463441855364973900869917012261979603778170018751360005866160914069797877097823698010855659343102637812015130672078184541461669802697856738021094140351279818971422052801762568646528458873053736322985486160499514891248834784492765296202173526911435435667503023075333525626303698110430535067285418628548648514322520888429541062181260187150755131178528534724215637863567701357241291373190598654377035010935810704062250571334396418829679065636875675738006712489743858829909629282910573916828975508033376894707393088147369923942797094227668890927107480643742999793475919890411079593675452170629990014022654563660907736487621177829145944817494876860153645598275343419946826738178285151660330668683427333870699592250515818102716456725368374136466452014312378568001699445860223204488190312463529949285876978298452599462763214404429746584114343750796181494814715191746825494613843346594725401119082026270230060170916434916180843110706733854965078992698699258947099172878599612669681001297734955842723512705652714756033506376388195680755348177348722972645338501845535725976862057763365793962011593816950161324683302511526964425286820316096410681489764086650922689628059190983606801906125611353617582358395182558713810283721768866567320559444209427998325400138158507084525727436282826028022302229750089795538098941881874874780671038531059964516188891637318393942084854185664539761120648443770713420845219351446387051593057523150271198501178853266364167384634274693761242775640863305908622584110420095694552387974504535035005649827657124079714530423167709886372297562707915865596758115972607947069009914854797055955344025339013169563850378769281760076144566046317432051761828607249093002882369375981688466850776907829216171230869753781301878622707833871124510760805140688319249641515292390371906588909460129838563297130238488613579011764654354709252953841595072487202969996201931528053285551621923938794843311276413582550199339163555959193902233968969661840341921442858860120925682159064292133374679965786622104202027776913125227457340850900847587319210543376259072832036772191533554384837146613625494911521202640116333894404153868728994932181643960330551029998764565376237575121893181993043006090630221941743918042811467719181808933999561163830948033274453733003377954858723951176462898498131620491182554876417932061968122022997882808531370144970789366715011766238571697213247062875112398629319108894511383635268961011866830559879214600448986892261733326388338144060196747043650458509612674370717725618406528189173626540528560171182417739647966587848694591435320722460757707564632713480823560597312064224409375406376029820490939201842527618425788659334886205125125615284766516333021894124273316290436982360772205106704884043466684291450204586929023597207641782277574371079600506618540244142539053729583741503188668785752633607382395044604365058304658859156952413789276169632804586284775091630653567492771956090051506257978811121457216778098801383315826697987077193489784259176007310431055791871168040056792858530598846563238293670592298518801842201588113404857823264485815200912033089187421218687807361051296583923255916595517409190471212608639030724263899419011388555631532349535021219703133806999597855415145472855785977928565316070385215358364672829243561847502710853249648971280845534652055210874664906854722872262066084125708770950325697900684899108514045011166228991760231569173064590667971138201298839007979523044204013437665345748529368038171754682701839610212030902256845345245620686319547261145977164382469599361160578120850568393564533315219990995706473588859465015568471072194567410916608502816436999423274947367860213257334855884296139817312753185814864504675944913374112627650994577528489725753008282596397572690989731371321075055715184549020009032399165238707717680108581082460305003993606838187111103186893361155374769283202928097111424113963863463343065476496230488905285482968230890943544590727163058547333114052140007714181069407972223216776080003365557323355623793317733335792426389884538400879505384868983600209723229424296639872813812014503640283605769081791103304604840587521207453779014370920716380824913026044672915220217425251129348769960361968635491004558496499977832421592375426147257797816563032443777511667257847107770778013191430737214150333941449541394174140938787712634853679543229870604366917411227898302673099862369075338126876918240333115727087930342160163605920367683514413976396090211296163536719410704874946921254807112026388595048528514927234780715909678061470478318651083840887538748451744791412421680774278242610914403384195526588406356013256354558783146463177091434399568453616973180092421984777869080500176316377627067423038871210096762435029216785349444772443193931658055752100870907737809450654345534740180997937816438428200267728223959928820522610483392974108578679340979761555643906918955581393996156973748725919041030440950934243923548140854339675471440744874739387021242576092014147890947162832405994313908416214052437894308729820626710243778033042727782727713555482366733049750441794872742034939944384996010916800229760928672024600608892984083581247544040175269608862786857667943775808463501929299924503580582868443135596209114847671895157889924347224214021359445103761459974948209997796478008157583709592413973531354028091254372225116447876717936611483735402823073530305906253536512595615728129294491668312838137152701127260636252441066974778322275271842368444471157799866768282342836541179938246652761310488813059609821779147024631493915507219181424537405098860037193110189111203402818469176418134328619952251837591604715994468974522059271788718392348253369603869748350033219565933867104873675397458540581550692943421554561279489478094767188935848338264936387470782231942653927870728168122888437222825361147169078235418267699338505554576824363053793369624201403202205065177218681040562825539063354679667738198046097582613200864314466862908599925594248113983467692465508872557106963297632044147257117025453545924918381950320856186789935567703445410537065115863513693925227677778650862897702556809363284053478352564536011151402014499423105458094349938580932630921215535598740291849693220211576566348467836164787505317712238731430228806465173599540389464883333075427184227699850562574238256572343242633127000780653436992952171776417797614787987999606538599832135079733912314032617049986573491960706731786412519278072221306700800020941576231507089608817892805402942948447345599786197458089396630310965363608095457961076917065254976628845390719141178475072501717336435247119427582935049240445838067123725972459066596396473950256579292788565180750969821394340576812764602858122708743007389179116869770617724181378021402474179615032113974306131234025335902634470529465893133219545297033736422410734116635375535502232374741278457626965967780245472421283016237831123396083723116427731319652106972340577103852045691531861107549198183434537813899989968599231741635167234379271499991133136320841674314653713191540739255318971082928132251806229769902635488658296833082667926587312872498231430647476797836017887855092260551633000603600639784651786406286348328866011006038986162773249721325214191923834217417926587982111728934866675835216917736406522705320725129436038775793870246199730941008794354386669158966049625086738613470187734815220590669294637950841976620991502893089254185006379841048710444511188086136015621583513635337542910151003063469319256803325082131326098316744388317905954333919335220019922276613754191378348640772708922503376568219153860029495009786095120845486223033380458744184265887109965155670062205000744190105160844449670367162714582525525496213071287364738905475182944761302356225276540372488847642887627683700237486762994064082011550656430455296115507603714657413748822878131317328238726156974370048415572359863223234760984117533917860274454138555950446063709250867319024435628860321258848328820611176931421522620253764948631088667542028908032020120099933644840670851206250155488608661428076261744358426732174756486995198282635189983500796026463336224705919677164589371251580213649677602706823380938206281765435525528494581736082239276939168651425926214941163034812471561009312442491501170182943479322022224476297317244911860932307154346193116077721813753433375731153918564340732558909621857546965416471173151739141359392553973119385595650584164604551579168561533854925628641984180656166243717868309436483491619808201975602049413904030545833049632253270663349839231765527150413887899095230653126346521481715989251760934023278484173122779496193274889667526743593791964645622311963349492166512986928564426170499068969869356971088619265162536449147506609438561889469171648044546424619927176605045088805142583362886141133432526357627199001373900005172812284166623665659804309854679978732911065047676722780648273479858844510327535937346562334556182725486234450855891716425426524570558185587433761592120850043029326995146048337326268157085048244279259117996197303060088442411290282532498279393003258569014087477072322290979928532528519147934845983198565123540174281900543499399312008056822371901994167508905207705514493626325089759824377632203884365433891104187687388459998867195945307255593869106279432837443899890451022995093649202163847453996159062570033046073326311506669377024957553815121546810013033675267972433385182288771166546886115618998583080676308479939261922358741941091488682901815316681678490349795913156562220588360277121974370027096781082016555147685256213681876485156255451175572374525770465743778572898112714181313595732849548990812603215844415410146204195411013971358766820216709867248670033727466924758228884139293530492314890463932856455532760899416128173167159976550998299644144600418938376983384505383866534332421877915945267767456669882460536893657560882840816170054016876158374280006890489911148351428005931913727112442408050453008835193171599754253504096808312255115370724887299964987885235511259407565659797333087336121389885033778617432448681029799639644890541271604368652893632128147804141128050436193203418160310714018002394189304925838525828485708999392402810587509977167124247883021528271666290341134697241533334858970031937694344963222710228973427322720502622934513300063247582566907328547780592778685022470814614347639165138355951194759246859398462373585018065502486580295383047289788982433780145275724957142781278283945424303263215231819835307477499047585067613144792463060771177597024525085736617958250658021748648717696083798287478417209638422520785943757614970212668901353476703865288354270659715295786505482406246734431651388479829084230725916904874513465986275383492008950855031460930149777471353649282030050130092896502701382332135210910822332616956616616808532635012404049372202601288601274728120844396831907452324396913946672500987492602984772624338063064652375321508714366490936608823949158860690851854837467559313488163111056948641307238590273326697861128829169246619367852374912959794997054786359473985968895563685109450087402201250775079786624192524395710938495111174034745225473154074225211960191662276712181202622994240303619037098659846051673677666406429563408851089413657481264235070703120357207398951865087734264329169343763750142658742783464081672896784353794482329937069467013122576316817349600086309612611438406852168136825025232138613684322548439847932780572028103198902331252270255114594879438528074791329121498923022910933412867386872328987651427978995375154823882333379210602882759674518953398760429537973062187514841594047544742861632751199833809718379819083384280955054508850231065451128036949841737681748779661163414466590554662815251065466185259578161270858777033926141441057565447460029110793290655594916315126126370050652870407331105333339361206971363186874350013649917709218488909995095649422830525033831429650201198770838776478505878936877671070865464638763853674727908192050573084034647162898890684602998710208287045629562215839243144991109469084727738187729925217225510970586415841159842561779581679068445933085801856377868486980614013003155725886173607764770819258777225290003004252105733801449216945863149111694696891373926199384816241588112253625390279498973854182175007925874574738287598289771660911043060831588457078801162241397249693493514938531915754883595992603936443358421997927650831422411458123970221896127499644253028382887883413232022742172258067565761980240097237179972238319285931041970093605051979008785939328182181313443519703905437548042451681864621295101283030669405314848176757251267292566897609443241272760012196914896645790339775499643204743255198664875998562624151106670386304339709889582923849639039771048247896517346108799500545047726316558399819588115803444340365784700396367101378663479509573173513686040379168567899974155942300479612451947096300393489034079111359801047372242569494430083074810249780378479335067651000533143935150782146198776606710979998467466957556433452859049177983149667609218310705707092781050608709180114929427377250967916458196978099636731920593756861912291467194965304741908717062535821345110741362571400429121641924561545318786480949655550900839680011608460211016148197771317730923094294936057312780814465290982221265541156510396764632686627021774974527882445361464283022487463345549576492072601538202739255247621053364887947373394471241459765208633718323431981639463538126252083871508457417056887936320675136396654499961062907085524011671894439374866897703855975618943859731842096584341228450031668411821735960651156645253429576405580635397190109827828136113217993813417892468312054331188214914211622416590364366040885958009724024242853619215712901410090781823130853359647967425780108861892514205654569088707601608570428725137260529164480458867731860006858881016355222706661681808495085337518824879073012687431552816083133835590175716404011495351061110154060370374511678060387600173938911170783021480433801286554978089612713522437352429483007148093555108769427327316136119979818308877837929606414707353374458846253181550967008481395184775831346339524360236968945181423968060740993152473637716382262176368990675273817422471144182980828842353563093004777627395850868511615733908081233137609929876798140062056843030125619959015888610647911912183971833814556171401034943609014661583230826292866448577935302065903753516758588327722055944072956823662082693452118507704051466620177624307390118301725523256377932872339872084848393334681687722166318308768111053951780051954613246118572746665445823343218717705429349751789783093056354312663682241553956665414844329203554494717551337275516393405686633216318669095211636817448616708231231370148004180834357227854199747850623565361652763013606142878302404864421430040973646953946409403124256438638149902734227476983668985099652681941614777054931265028458451257959516911557196865910958067757795340350345437306223084229811005041884798075813869124774297968119953270705237466990435474474702573610148032143396988398589789371017612148201771272299316237206618702637131810755669159450194086139379759358964906456920889806617881079386079736091584485746233676632736241495623313261642347802816290173327264035748330789793836579898873956588306158585020936123910606512612504569481737149551378551145691883355232626856840916375497273246711357354855295018740634554128617730870501092750886536358010881906199007338014699754066677156884746700514856363717755054650309879210979358581082412308511358165970652862928918439760576133390930265944211982207501756473976135443214330400497498115492196160703998001390588643786877107639945640985833464371669884783731183720024708236583890258688902680300875826576571049278760692178178164534895467543602650239531522794337071275491269609428166653257618344749028551255665645100372861094590099215465447309966365972996560563133320955295014346168316969991891502975043638154513499804907396021183805429564748248867792679054695160968109566244734281200395350807483231108435096946595770225828707102767319754087098523883320594603393463671339248869613565189286660985598830518795263248731945998821438100875954585557089564937171402166485957568296603021704213975940720088613783605681776417643695991004413198317694316965000057690298101842694464976463034802016430222614608899768316433389716298467307911808635480243966208781621314866050267670271781292834287095747041455865804777126091699793482507715107213896042376040306701846378996280256733386572193111993333292889730949366025649625231093185474633245401781323473348775057573955317470827737961893690161108158846398427184743542069476782856750731150269423150057928136142802899637323987687798821465367548496222361018561185553886842634562389510289271906450038126765982306848469560714873221255916090062477289698380666103996731926456754006220273866270662401133834540348872607894719414685952354609476599394561375448959312045736058692440788066096428191678135272312489472227319971253016019460499599981121498591326677606103591647511432511587507488730392504578961219459066439207814346775245868874977978370803818551632064624013702958829647498490738670297473961473169655667582797708244487550622512956347670324958533856741902193411348168619660960845753469614416315957719198692037018359582614922701138764799291625734388475775673197002673533698743916917783094623435080420265646889728542061338118976462092210394525347049090851955673436116861778793787447015276752882746823120284258978540373919494193911099514111325739917020307955815986661084536930358624705366585170325209475997350429787908313044981696829990391518384577817722485223105780661439011022979071588008703172153006890942469571199961732476154404048097567770543937705371523212376526822331620014314092672297493392647131388689931954724661141229095975202607216143787038295285250757596270919690013711942151719830321132682451471422907048246371492334097890480345790928153552227999968845846439448404652069728518158148955289081713283917543222590886793876925020718918066763726009956502226902088705547651192729765412481723223885778259632331767586039795641659886994102030393750161119036751899562101257066166775081823303670797976681742238186757884415978730238726173802512947696963387386046091598967584171578332939682704088513378973211020031214671200370180709831753083270753246347296871647984267387427052909894017262616564143874300029271381852776302822862097970746273606479679085837966762681557583056900418985257796088700882639610422628052047574406009003469861059901598090495455604248523656884157461375344429683132458757769481333885408788332819948818591063310734100757112866984888631398108998225522096960258974681344988076311893857008127896984180124186246021087086857906667201820726907549699298253733727795596611219952049122222646509743175410495521469358151179589405580765080947170099497322750131453514182027529013617343230684099204685628365232944857339309242961192431249908910900607979114569972620656789919268683516738120112312217755217124605072309824058051776684672505831929545461412733772062219811470807407466238379401874904165808160793843955449048793398127027582361181842317227855884706875141659605290103373359119438099630371169056027932539969710152058267960225828130408152518786301618910209433052677695774940703617715965575958233858339430617054717371290593446518186116766470230044501795564471079657543877979125519640128963330610397490710418019099811776049328365829186268027690386788221047903012783669218871327095917856786449179079743648414357351425878212314235260453239859783622749347398025178662992826148259967704191614286722344717549451275067067013557498526022214954217717622219377576907007563561323883759262150289033705284727240907638635409859069012690077435092806077749145025708530620274308570644348324787027622533612455330309118236557700827473156852630427279039797951799292233212096328980854731045002049526845579113183121368420876588055697529462387766358360577657241289685838146912915744386674184448966871617810759493441194099768626976562028635044692340961317939894314692757257859284389721553688308617975981290861524866692718727215257619734688631998759175976691707259281677383381900125557795675160245538462853200144966275128237347412693929842781304065165503435795843366352219260413974847350493491074479738321628712041941158892769045573170182777705610635475747317578337533176843708039698231847735702484270338762654839436515036705469645608690267630633909006869893316946685016650449585902492659756050233424347911819772793851986842051325602931638021595067209049730077590605623120568134555932492324539460136797216107800119781998842420695608261692455303511470171974257279347320754029023344189239412769859330213099289924857049567480021957937480777900792228248446406422291936278136837443183128898381111084163013890089829300449986215480194696156429081446199404686045800841545926473838039059181357596762955546346743958063171414520369156258238374996956116937773823122940710537602587297831335560602047024578584003650695831604567405823138811955408014519444316700915402822332480165224952106991983915037922390985156628285667265417126554956946965124336902819157281418923901095151836980818321596172756772663475094388584683596466806329225874848724038251228725486467670615120417206481269520968271775853522721764974794040951884796636102748278309192209012820710631652219374312765879888384831936440847487147304254085589785613068071384812233206950728847196702478020330942696043444268488372580777684822361259021055500053107464189237592262282873143779942765158961564403947885997430283217261101693041528748713005397003559619514875064077508655679609506036591209857669781348697458995077961651819200575034784949876530197668288843438748700619457268140463657352009132527859607684316613133492753930827125919374864462820809182435297598312228998973132640233162186414662387068977169076967228328265972610629987977491322317345356009018256831148969831263135307561388885271302899581898272308007153969920127384510549785096359475606392345361326265509943503554061249458267096915846761705839996814370108082472947083138094129205191890436735404822757505003944276161298321013939304371818620876144361185032475781582661107302660653252696042866593865194520860064028724391160168083374313655415015311109851918098464654304591437921182822728399941680672170701410120119875383866970514640374715040608062244815313133817361059092047591107939806424692924493726439778252416586677166064419282963111664160439031014343174125864101230082561499107892936831162398155012149385997743684624433822810208655566727559539634950751161619346770597670638148102339402619924236658086132659181629214784291442601199691979277878946667354013944157698864657433235037991501407478361417194607024354195172267724792217500664961834454192937127378960860336931773379677998529760846650705611010392483472783097375693352010041287615581929654886069196632701935139925223458683909193472908235401843949954403268995084637367882915275853664141504255335081805057983288603484403242562560183690581853140793672947719398776277687141734328726955384223226295174446604987449895463715856196139169920612597424539388097725583295114170396206599061186140350385055338260851514038988873861923059085384912979093660174351192568804459733668761472616129872865295476293028454669524640946566833540839686993796466616131264238143945452091167309757632307032381488179518500033899144335413831177383738394931327088024892300481634666221811609120194306332334941638953417556660885779804931925264928190284818138667657186079486277672622331026089187124560044513667110839380017999075027111366312878233037995936886327533551918019610879860851578348983483249972611506543503275269674470780332063148161685130942825163567910494387547697520472016280616600142495352484410360910715366340079881802823135274988064302645923304497091762419013789044365720811856453718203051977250398651988170280428296115202457340614239420081845625550533067417010990469143658691591843546571458032291828068523104689112586971747393975078547756120998435016715063101510996972946257824901024941346613202983614172402493445047812028944588651343916423744681880990329559895508299508050085896433484882916150135744025497411929631163296412161103228740764253118912167855626576624289295162468442346042549009736807978175145270287511472024118299833172559479287281177852991203025795173790757710458611895776828618820217989782233421674411067944963517334069887289657692054963320896189137480357308549746817987124119544948056338780396797300666442879496945755016905780617931531757996113031945940891505361143511981314271626515135824533670655785675101143059027481753873671386085357997001850709168272202151513766680941692313909930069850341619538011985209348458659443576156598816382208758818319281251360437521212347187768115976626398136611184348911453436794435505554949694662159379495747759094249565832355589164345378131654606577177213475567062114041207416047345536868513009775842291646791033754671568699608162085150328988045423158371832493659361298303653581459281501869185102702176845944052973131448612805950625295499278789344304004444364542325139788078148448274501634901913434452662715527119763724015517898973413107654535740897224431021503334836068779618233373786183655845277616929615056163044664937816190656350265307182989451941723530522201780647496158107856079218842958786132080647998296650731499633843228378249254868220653508608753256121919749547746422156394992370455245904906712766345467272512416784174124116652883024172863754805614477386670428339947653714259201224035394608153953503344426175803209086045959150263717330665005357042947505392670372713624992118296634861042974049402008267757407378596197676680828449131810516077297685708300868217767703387282853872258454883333145252087205257564408228225502671195662301512326891218352834038247527116775172985555004473472779523133835408062468209431629765976097431422347711610026106379516234459522131529184157588601694424503245319979322602588627653374733751089802307617501724804396840051694337777197925663884817880347728359962053451448311758239460638676654944007454098775711684474600384518503515822977688859583949851978006251289777682393811068755318954396130228770343912696727968195543451004210055898808685840182113942753888613072640605051322372873284417972500368820201216398138336868026311916489296521789716248513364817296208169577109008276195405500169745294570781154208330037838371200294375314870979248721535051947466547408316560407893217904023005900124281791531744160238987733364877256422157770684714688865225484448400032750321175627747027118234839254581761146004156181066005188485307641304874034837650267425771566559839441528585942077300913923765195822491526457339084862151598035122453290530125272960351202147149134381013275418865717211091398045111698793109843895831773339541948120180397279115229071347219901233497246805791409968658467007404592854344795982466182375576025546585393690386893839083455229773372395709082831149084952759735216860329889323242052537777784469513412780031000679121381781468467564732009204384558038766499616698501477533509894406585815276046426052566799090413021911352893977371613931697276316368370574204159494217075251865602761008068169355945117681160265296729508726302870575433913963513343457773471968068492182412110525756843061280590780953879853976194729719772099955281094165301395395475570182782563575379649180723051087297662672397915223897604403002670039161554012881641619717437391178356503958692896979618745786091657600935220211562560613465469239166008777674055062356958629068097889048187910637796059817227391820915856322420322643764203723506161260789931605195781294468338601636923070801327623906534865274667514890448011334926125162548806892625673816212430237149183585981278159935915976673603791342547835751454618522171547396550745122442027564736265250407747851758941481078677947947423797529883913035841605209803065630810002503714120107355714349045944191550506081905038163027939839130848375512100792706585026310316044970144376902007135195250440538021568021195511684323482871675718364329855088188551855592143251943658995009053114323139099687998284409754190178993245733410008481204610882845530305598828782551684436575156766530333941327191605357887675644914984978554292297000400980976104828603005036648085798314294479726465355519681397316973056949027863337614422687402223352342351481579757076106542485448836259789573476333461963747157995744477085165243993510363002774859262188298398890374918825493868030921940196983410358918807195381640086445884329189054309568455386423457527532912281854732321982790209851459086400315161279368656436229686176355603617094248982555421189679407144839601649343768868837276672265923270760445674105362364405643460493438333303230025713936805495490777201269135750075305902520082192825546029881398322393530021808932361346517253550661781125713601177717466269667432841526731011299684110651931753943628894517779930324077704894738066396682889426065836483931143614107777055353658055159088920253276794625267084216890517711783416550937166880892374371000689880937584088901006767505808040283130829407438090659832363392488886648556016705824866927957668860115718068918361605664285476240893578023930693193715375990250572615361145890685782455890153689510332599927048339525006009374863252846086932922505162847560876188312700641851022525226115572895209932787825451309842528161601687305289306844209818445925251298279172414359469342016606131944201322754936886801906111251063850272949953512524222617052729233587085415473285533358140730433541939427645408339521950125993035661150579065531911747346876518681390020114613065194458392343694491283125475535359443223712949141021537315716179764873492195155462411319012537933142799521899922933890087180298044290739005329111420896367768811073136629691168255772183917710923344224887875991263396440036164994175271018039832840394794851159047968618971050563140557485839742043487406486641579148990908483928926119717688154612485579507749529022441864818940903638048082400643073491360060624555351259242010149448105554492563259572940130452573197074506129883199256181630891761039618889246367295017216642648708531145591834980852464443541365637583352132982208149345536439425805337229501665150177210959753218999601073712232180975049221374119380087817241832983845427320532079540265585114381563179146922548277089397183641202314492394758476229651591554088632019932488357696841094223186515799864806420282486178329212598035537779399285590450840951968475431677801175088536723456556216517027935632162719202404054275607168187536994419566585376454043243681650109593707959469287697626349284388582106553305208723745508172814639896214191103150482858221500744970200559209443326377807233047219625858816245626889341755576710112247413142818782838467506641784225716052362321920472965082198046461978566662055499444094223935508821878606824730094835378906611969387018359089053825731458582695182576077715858370654483871908729928398650452023182336991419285925052353286481178975037745088197361086694064863445738803096418355844186039725717477113744786686859690746384377753241259897742617059486431960192521677122091869865806911374590278074305419796341386596120834874398586013812624695377781456315613806912875629342006987032748640127397008497507499719816977124580501444466282858392386128475229272621760365262564373370756797249355408360785240881144524030370039405469960825492930880998369223089651748109388543765566589842054216330040563943318467914364160074553026287717452719211892614203896541788185705460688602575681344184896976575302531727877447190126364493279805162556924683833655156300950826000985656067696029343131500829738593909889011590100374729042584586212397947059760230470451627424410537959758762859765552177203267720291689148901282167167623090972270375522277392453747985447924583355364275620162627445540434231339537803882890034810004836275211184039996785340985384903940784766299755187817168882374243334330588799283464328312735327080986956631428061434873738655621702089657997949471668209245602739113768917501658287560394829420412795104038753210857357906589536412695864944550513129307079946124548812781023249006318591200643471848919057653702558312871723408392421336839295139702316281224171094946709136089184613315164535980601043745838297104785497889830081251503142546916991376839247513982992049086692822679590862268002551090729068213762605749825719744914559687651689655939841465954393795814920389724260376707630578364913649199289745639671836557380572793649807567334767302634157810862594668205854740330953003837320846362408116509774593564956091167117054891753671784589761587837648656572237286222605767987192045622412176020229653009380907095771724094690687416357004848882269745021679239979243035255767943124772635425453079436842946925529214633358192040233027835180489403222838379284687415360593688247524455333204199211304301807588963058274497593579841267307425328485482407574483723174830600322454660768406006865485219044507479019175634764968177915391020533898139990441281716408596810943129718031044533986296922504844561870153334250561238829143034607448576633113389816293156215836649487225206428566391283269766806390473032480188771778481058836038827070724957836894970715258006919795428455212745837309753412480490970629927082158792494988598448792740152623477410032020008457962516019515005329327522737236000924712207854350888630802969179237335695421436501347448284623664486205447673385024100611267000668251025346655156573750299696471051527438416239565114005264356673265339370533223422758800952140491598127984300768989563131013694120720057320831215484990077877109226151871900674738647299485243639280140972763693473676436292557636005991343264276552210431940258758819268683770539120968147271836866688040748876954955167099178554706968676214259364615879217797511982262744660392782202331086906755987151832105689159175035059264355704437662058516797685777271474913820786845254867751958797609335127794497511957646447893289239017782092754750518278586720024084384337526490474150118354557220548883382498765381887856433756991911818932977491193157845552390217191413325146747714390415983497229454250952278409852156548687803277332000021784766798138530124047893119648815236716118594939115149716406559493413110507852592607407458710705663575826791414763141608438077531864969581977203697831553502471541642499933968561612679442765507660275755747779710662393062450235720665376479402557556473728733654986883469480597879684084459149269872900248166482853976585622083833820671445010722039090346324080580891927064016226474436893601084086666641541194528086371623678099641262229393982396968406518466612163526590079415478514574960326904094183307093915991474275400215241633109006249906815049321541809781234517577301611072677926685704013535875871301390693213207968762960230963616548313523139510711450227961205471909791356803344076430865498215033444658872998840588322663019041136020273778122365837704908322249031395842041606994555208363006870541558848503237480560173387176952782967253101491979080967248153026111951076459753548233186882756401384158453580213258851014677270135051631725986099031403989196628311879227629589790327348124901081608832685999335708701957188684118168555698324759309204715162940452826819258991907469264206843740739732463133373187576017169586102296402772062266771427397324458771150042707078512736469054468795035146510715401854085963609750508398150377258659092055440294576680070125896999272398320095012193462661837182972034865855475198526383080649508235828908644750861532841161421673293203384786364036378568212594088276877933450878845460059814405202701521478763342645137118132550259462596757668974567562768442293159717115498825577549637408396808603500551813390057603650055986699277927815266784239124104476842267774240071141675312487251038344731059843693791055972440177377679934007528149359836822722008231245796314648085284582182614691774485748592351935952813400601032443972983172943043377505313713242446419241559911988986202710303675771816011828430460601675844428718102425793305745062626853711746601760613695106456982154028795429910302837288990093043688113523779054257493210433593357731709170827388197152971489300124747751659531453405093205347279329743395168480586775262764274363426501722767052127264515082046181629309913758778806311271609013413168707514618297987869043265317471045510956615442277945402135158906626554004345660709569624894294424399718677945121802931641268056938063550541335028356513118342797176202838348208070122726060523418442241165686342785694000097669874608864030949111005525793930437144033195916095703672994205338350681350140067915917616074780437356527498434862584322580998454904075181271059428052773698072352635839276621430356030009714928600286714893423553654146766298046924640536049433683573057457313936716800722401792792021996570299023650047292792245059869460856059426226426004032185185340490356277233656304330915545792315165106624861820458863523618949922939041484523472369483991020140139943898535803172443362975333065314835897277084259462334715413219838966629776257804644511097570276718662493476588481380122723014870567856802007298107297457877698208758488568317336109351416969605949783369690527829731347755265542962057671533073295925613913165557421654839787947915681342731415979667613948307036732036528844650106073000345734311253460237211803421072126942769673763384165289733842043369926797306948257420174292949361455399934405095009842416537048842278253660866997949476826627698381879156596385231006747085767159023705419558240736272475507059186434480475626110866469993063922602074108154965557959225786729942016178410336071787721425136541266065449769742665079046150468374102530879978032390635542365893767455530950579982347121755920976330821772345862888025718821170205873010297537232713263739038140877379430093885584650670232979776537788932769168876749637360391449573838640402007606501408511385811825617112854305093770311364582803062883654655830338764426331634517720056906915282986232484344998754996935197591349439564678573856780857115042076377023984609787342903488118606001099145400473974026306143741480158486838336387630079963780934093350082023607037618922347512764185953730756021944820798180029721952631299450469377786832572000940593017056846185623246136134108070684027980735488129454703266515505042893308005968360344020643900650277524780443427187519254093546916942976434787447415054100722852880796215923846139835282671339000964187983201790188966283947963750146089816600493930639169289606597794652573122984852246745882471022943315008457112861262256156715515937556067017576377241731501234739876146335619793157298964281606554957803194871786878948840055811219733357897109586376436170277710280304257574128641390770458729765840505412069391851704725185395058777325563068765801297418502007071807053079844883341100216627481228280488203974687926483334573854724012978812289233952005742362576604627242534711471219115410364886806725477733987944201688491011472169836158780053894766184369940546498683902511013235131054073348031353876933196294369912342936214056652074476077678393469812742199305240145009299672851080251923141819979793138209755633943726686961519636343789167919727786723315283839883705418145679958816295929420560758476636199550018002862595012282812148630971436732468478566275534512150872369693856949358031635031225430672234415011408658797443791165882678551621885224125498662749772867008932853423139918014826514562710245041149946160818973734522736157246473767289889920248237571288498772628061752252199757016888858357192811721169912310289667462322608889594612553253708317879728769698416143969961450433384700344675287599098270784040240120794164233031229365547153242664800549150310117711596655044615853550225037342337057659029165643459549059022219432660177390322169498494321117327973105123658844856399703764068031593211593874288106343091501603820225772225081269453025664446986043737657759415896571995535016868146716587498047310962399952376999575934779565269624275489856896988393452799752910661151231086007983806076981714934982990636123067876059973171721110722628210032502054997680613270926041263585825246021606042114507741810453426788899903696322202994137561738109732917962567526563513636963026405143463721096801875559274735838462584300714788812878853552904841361527895779464376821986582925576272849702210490689825584460920195384981946877013240226437550025626435562353225736391730339275027904082972600787459179394944574076368848625107726364241409563593570204776891662889601928850783714144777998442113390388636989489553158972808755187071995921007999336693503295469441861320416756498746921473861722696771604496480310553376431376304728116356085815484709632983900689575288112585332513052806659115015638599145081001208830672475703959653843426209628977851405405960999249804974403991388007517819950394540051881445700075713152551849932910672363059711930872598838967424863176408298055123864433673610022981257387901223798201983505993630693202697189088306738634185783525030284594046841931715339320656177379885588399840512191804568273618587595135473015574609364114396647508237963114027703087202573449317762651369481150623745267769072370067901728703150774876939707106541111083177197013031460362184269096206751621252679270726786364427225557528821917717078901294886478739984074026715095040560951086913332410461596237819313881612055918276980041178793733894636459682764781878670389411003994617669487120011068616014537799499843655670510480523244308891708295521564151230287037390935385020024201796783724372013437479416313381513094365509451046418494184593811164970006277145801508334921891378864323586572447573258562306401301060757084912977961270986247653127432286212290716187222145441864098852478291948393778139293255820100423221112474707063849871998630707918479431626596923430370822109110575727861459813568261755176594976027166958655208499391777119002348493363679500164712895359763151222441316711168968597944583122263270407767040123414505456452316192903244307548726831274915306448924816820487332518647357752678774943187962320316854801833632608794132469070700405190120388054589923078396863603344566524413408091247882805728489199643496180486562989304298184612836746673876033661314080050868763672205546588853314636755090979995263575234455087172953697378010701256490817897400550475944846360719510605635221175061756875044583285783058986107280555560235633908837284874054524447378479421926399910598650872242153441511660606154204245948094561995344817442097406573233589089824954191577557292968845895207513250959763037273026432934208190374713926069527666760830456622667519686227584616238911266638225897367110181091329849757904742187054075169251082175568544326362360213945333336801334311799251781089902773323067677334918709481159509412679237658099444150777123705701849338923859752642685052604991098688681007165200292972719351346896281776166654931815777955217379510559614801468525842546105196000020960581610863697822959695184331712208253298647577682513350329360558153616735495114508199048566363532125810551418499854621821046496912237724559090756907346091839054087823077880305933746654157788922343359731644505974516503143876179312134447024060753111140345802704416377318002955526552971579317611719419314728007182042401909387373376650168073593311068798801684397234681273555644759641004214239528369002321452577724959120377910151686626781522301199949200076674518797405984489162317975400430926445094981807507938430285575006400486146372025766756511881509314718056718014869318155215499090690343111719371628643591591312323567220648068892715674294206312297446241804195889388036759094755753550672863397730259868586120417234392053888736768811261331090368999758886553518626325871780521981620356444512685687133665466497126372468940100764709922213937560261197515077375673764207397401051359944362608390709775100422353242950678969435562544282350653982332708729587292570058510897985508708956545715802813511145274038566776356649182263738640453754017852312622278198658821908402936456896236612594635914685043330662459823695836661673041102273391344590979842494356713524074739137426629804667571477092196315649907381870918275584536720428022618217918444560794918845375483121547083387151558088377738336862812174695681257112465217590798438838883347679300981034201264652048543039773204186901893887473306939897528245150715671697983731646909123059300821824188542454563573344084318807971912056693589212153599940523787135927065085616924066555358564195538905161398064646826586699570108507722836558233492422139742247921613599003309173158758355966500242528176215979561922257713931868190725214108517331827544206021292070928888857675366786644784489017018186964973848191283914726415330991167304647382292286644717050046345813181784428683971085901146265052117890696995518772440922905473479626939588193037981074114999007316177093329409438847305331334747569372793395288074447770295839449340119273971271898589210383717560531683435708818641337896410493172105408571001654153974356347942477035730635942097660083768302329309707243632820951247382160087315720477754433490847792955231633382289881423643451150136020237815938806642081277759429991552775127162936004891606677487973278145316753556908616261601419475649837188739223977025099268701356226572108679985582487036169150989322422318941681966368863963274255032307228738324684178679969698445137282734259429347785730299409386952432993906803832983364969015006235663707671715814921895552580092665000230224152170473923353570796752941209178456074899693312197017061473450100858510647988763804388250276581130017485395979877346740871369573827727454750030752891282562211066576160307342325636888982032764941101462657924716178059190962979781249558172440664311051320647119531493990443530883709318236884822792065444735117484137041748235996553065786409843217272441757737112664704972019300502064845668793386331743984285915993382135193608608897812364811450004436702859752322239758644384918844546595429513338592510536368364945346882308021984778780489797609016013422503945226415503087056584159127093391575110731277305378790869638339217144476606942473426497003442598428769725676849324926195098665546828924572803128161358539424942750381787623692766793041690106200326229532417663801576677286541813456276116058180362103106011004048526710396973894181415517731953345205942442248360406605894003604412703747422380214613922711764766346969373515917947285966516593052394297922378658679889714527054842621729968353801040915064452493604538253089541388125421414277824903292133576309801794159167520997607900128520305914571464670452983483905219237369331109088016828681895557928624407701394161281064181368190692214553289926068316647115859474175478871704251875745260132272764222931360109035129528742434952847030779037529108066881561126563368344872566333350639631639244733245837858836210897308892810961380167916917498272336987906729521690873338110375826837328477820793197189224309790012236454880724971950651964287588263586390751348161128907445561847608479349831390702027926896253171957897749416497111787687271077278495572326183484633244734750250183421233346073293969289943306157902287763525367561333796455088724808709882080784744498555376261123408235392538653412174060448575131007928105973018861918694886605493315098298609377291427264660486400658915020187783368696968543041843691975471098847248418573044527005310622725522780744644266755204973313662499018326471380532595071475339840812483422433351625891511562523487036400255216595728087908664136141960902668013811836524948132489292041147640645534876697597051087704156200073937766296038600964415797289191079630471728906944458474105839407811514647354834422658729513708189704293828414271536960126423486146632030421296542268386356446253951097634435594808407559534127321867718147867244691391542694158120358840372912202856763926184985189526324503038979659529887869101870410892964241827319513561718529707078182838860384301880701924817673838008495188665688553427993291534987085210262887602964538354206896231378049564883128061195572236524886251196870805401577619161067855711816485147195387165113590772307507504077281752615990927940113408034104999330052917900676833259450702256065887318430910897553538013709298075225364254678156421629154113212203214002440510745962892641035491585484176681232577994001205057338958578303034154538785208052811085038462681397636528371502283097958505895496722226750232703721859591771464588009331273017103935267866174843682220816538953082351331014922337325070775665841922671667860204893765660169116940032925465297402671925726506198119269486233981037842658754997374668361991212509237908559191949836162823755156743519682303975676446280056940173953762921390732527722755288945266276892602454844937558134148759438547828174380562686251292800967071600102556450406901522283725521448608722345475464093061048621130794565075159466871518872430937684320758570675148864485598581814664640869065333638136951432610704164724841312840287520800375296947375120753503119416781385473825855142786092036924647794642717598544461002325646742504397042859851381642038249840383059699820106233059287439091031940352780781028281095482349659058383435074484285052335746932316487176895950711940538736961309104584489203910355690953810201773194058839610316886802265327615690086553279751621960021920763968096137272099016345297770958247405593347902801726060684314415896677195316486347151222364447648405236076711604808605900183310939313008558117707712561701953168373303738873903492086163059817486030422976926461591670910472898610160461349168201811956077558494966254242793370442033995744077947708736727686601430302873427284445777713045198072130811647875480794880542801385292722393635104082142412700694942585223928190806106312100728739567896136971018945251849872958940912562637266954814656985754819019346510174883826513369846906141110609299612437604721259605098788296355809319352152106562148550910033392594178347038233769274063740022372639016864409213891186430498298610791977355148278270878437890632412514618982195101764784626476604285969479141776033775822262867606692333968306887832091740561954504578179332520873575880954766422247081749076003476126340646794483569198641281631235034560234911060428972622800958584245155793387986866605447003493009212672184408981511694035614260588291384989087529069162969306059917432823044245133275457817222487946393360522524451395521726609260505261755162117191177957506032008845098765332302517180725354336648578874857721819499954907526554127881032644015716620448468494900309807719230530663003435851106436651593860196395119926899139107900980099202193988673945151952008607896988728832660180393053869229617216546129455501924447503644727383085220351222784323349464479402477930612462559794607360686697550913054945855442650710854034922857782057685178155444199235484010994096120538477976348130482066464617660600480012671540414772503087493450074225962021917361090547138385836220528154009798435989365227790363872739334168999386427943623904040802403887487634318741016948622181427511515236895514930407930767461459631207049515008498531688172057775511843276089413627429193537927037155237636833441384808930888224642779394545067598280173060506973661636458972659914166375919560400582988090441665234494550358730489494021785545802063398142965489588703059151144420723295408535729491930390675022473807043251359377846066534705542065576276302622716970537824619322919958605167107336478529727940772027590875207371047975156830149012594610903700193737913844482708832236529102368599529863612400105556504354182483050670869148976270479960642217305702442100828903815807031472008813161835284382333039034230374714344311873429197817517657953754263180150391339982502048850086421374183886623161851777209884463077134304113121285586469023978707492840240540169418347704377358186996409333845516040418009383330058951106807104903520182552354512572646089287476901604399544271147009629303805386399835044255263612517590226687395893026735351295919026110210704124224148384685023982672616227210060092847304152271141836942136196770038808889217766501095021019498742728594509172028114758359946367369958901365077444944588631912714627669329770487899195881724540223775286587868560912436306091037392851991666998536787534066141833911300868444244888916900013176159674516702552789279436406532412783049643085491072374544786483859503382171327159344159821677741588003889982276665835224613680091882113992202621827771258116210975833924669752762928317537113286490153849049271372327298756326862613530099486302162010726008243261304727106286880853152201079706029897281848551344479986761166077049017797122372815363710115964981323890069405648663478825467070021582278910850956570224402412603162079738905611394136128589917620754923617297792865608460971340244681942026445656331597495136771245543993472803748408601141343927670869621458843097058399787008798741544853283785496514742798283689130580760334855213638803276897197296671842379467640289116740567489608615461217024900285972108158699222081075746759077017389762919805399149430406547937028425865828928462761568818473303393522355300330726187452904200738158757948604464633274541486998315557058594645054589200074630246002622060994118488753382622837176904138768111034844175005672784719945626286420011140446641226102378642324026561237197176130499094738792713753963162220538937454983298497607796517540126058083439422449716641225919851187411187967550727300164303002468913973463151333827723531785184431115094664132211111410605741439246754984501801855107844306273553075597155253343614253365473359741897334482731442144888511734081754982217885468208316836336818047601621422350382136463003997841186110239018077710448697097414145852535684556693515400416647686825114177666804219152974996363885055974507776818369213920715614634492260676528185311738140595714449774194731196940467371816446868886473301744005885263524414156690708901585842270674618443208318001876270195384253209652567516648569323927542452453378008311585580560310708374502802920093166402765365361981273406987721612421219957152349679005188182777069055171072345085523420636658258811022639479825051116297514169564801417594875529366727884671166534812350706858690066880113566398276519536966874091179901546501488547546731989856827462654304219901346836334816721875063326380027558047440517470370740752748833831896461881350853965754761065216546976312454476988756642652016247090136991803830397001298875572878749461430303227293715911094793828037429242580819797746657918298011563539566157355328279107526674656144439162243629516109871052853683131259399937981463823127653788180418847973294159364790509778232941733983787181705533678867393526695292969343927800259349092533944550325617986885106452872599675286796396006520049328402649585081042012346216587163005111005121844260142648979818398934842581009767460062098415254734010084569887124917459707498926209588133720255868180522937019318944313178167321559047547764698695604560778972201716760787521651765931435992751738213053587547144109634579468774610389252643604070215041565509283145357147296965781677181180101682598124775060380688768298531053461321821275455884515817387184582801091738714385344295365617570940255496054389578841477712030913309859420927759808978701747626543183651491004791828560588086241339527364626913646664214244497660552628207685463687692518199031420500819206656263979801647770837933734492870511035572308318889373748068661751657099772133247651557164733761529008058316873862733273837161784057049158517769664412151689642945412481374587147784990375526139557306346166469088171598121008142077266072832189539392215863723357712674532448528471285421184733078568582651408712813499614482307077055226722925339320473293309384512211180925303355261575361501593638918473210213299366319959055396641573187123285139745770661790173420963892198647654454467290299861831956493155025210777545018050209505286009070445996499857761253071914407163492242212326858203822639013178775418983482152763107944541246804955935098321764942578287471853669340600352897095749558232058665839022619920781689127597420954853425851678689364137226762213703396462156885355011651708967529871084904019038635763656753630015318607177152588176720242844595197688612045643009755449263783324023869659576787312735564215683528115394774561884613981879486629889938173494075307071182677096461647777736439322079011991334378796604165618178288468625669116664058081240540096487127573823428052711382155159018392689810691876659333839110032681276398640664015983993029429941847897025051644982077181459461748594196757501832579068319439896842901967228757651829045015469035599162412388000353444488215961486223558573914308770436025216747410713322262858142351156805980085228921702112282151543688807709967654994409348788618357862139218612654735586404295909748446627607153709094308285666891433165511934114112998891200478259253990202031102701955731448574674854214792254450454695287639916063861154729890293865624627975119028191098601814321563936345964413125873147005719078799928885388979152020561272144078757361278504408688031260934452576965532194065701459198203713833080984080562720458192472344474175091788784666320375915629041607743648759983241754300510007765517761011782403230039477256869835130541980628234832933902166190876767202680562211337152527702739764076502186074772065480485023826189546893290386863311766638393070489240878851757194670630882190438003915659132351401123013525804528689364016396791367934339500440395269170685195711433691475199827913166653329573311696868299677300421778268273859826038328361750084066530583585765686271077384167525081886179688474807224704492732262338174572046709604278832153992459493929427455060658330869931486880080515611576433777877701664063110637980157002440293981996263403894056787289117821132942243039108590868606009684089492934980361105107032365194937745339514885873861467708629613586290105182500497292195296388027766824544899065834023823163034043111595494629639758826817689378549888231200463779182192778720322094729971235940967518165051188604529736502845505960175760438964976476495283845642649244926754761279850372283006586954922094327360894523007319590181784111888146469206408727515475484275259398796885018499557906044925557564068936474638148942617127431246478145695278539100198931636630526434188413802926939120713962814935798537247117325289357200283385412770266495655852728536643871269411647825465556650442596212387675153495419041575505246094026625645548687069032783556674011005556685282127804216394188754561195525209494441503436666260858651866276931270899095028924308864069206509614565083915778513783042111130945596551547382467063125820474865504930687634809122850945314027250542284380177121420198328923379281014214769680815491243426789377607051207460255298448781487676319349155011371042029288973150455022891657894105610085736575059390337880367223164908419289982137514076063453363062179310405040038299613753951851245257015502480590403369217707521508139988236071058723743975248996388433356819131133968931828044808918095781008310404025796368164124456819815608084860525324049236842743634250620267973066672033599097092812864987786721316912789781872116445284795319570572074344986410397824566745825392087184629235671327222744923359988027905702052430846719727740143836500546323225188478142953752348529350776224314574572315436537126552182018219236180146869062148912701312022017113795422590622235649633670085993304699810893743266710167514297024709063578114129480432399707857397356726150662535631860638432315880665391396834237896453481088419120810164744890102281688638113321076892307006123303953321465541035535447626632779379968274012854261931890627334415034916321474096911653866056452931263164556594750286057787790144328067176080174380964546131363507961804487182757614926338924050707618593522612618609699560146696909772712803840510412555198007751416944915730097078187963819651839980623309937281598037881152342556961889590041438279599520423386361667324329797476846696099998155802314239531361885712506490910717123176015940108476597268147200772648369620673723426269018085997015088909958569169636693924373101365399836844130708036597541215883693750431410552332713261144517259855796020176229566984605332217157529295996272452630440434101726715151150233525177579881070156772956426658129771748478868694041195085221741031888342057629905941040928020730743820283700973518708934813063751454903784354825635901083967400927876746605990070275116982308309140304902540675862656598264984357813148148215374369830122797911800182092857826392937263229390467643552230906796749002043999977416750365980446326555092452679965925197813612710713797106822391860953213803478138492449174556104810280304941419642871828074702498971168085891035984655447365370758248193652895338148894942427692933666152037752765986123568963384914566506125738665972797099389726943114736552433050076410746221834215936408780863192405737644168288397338847349988486255036007482176125605915661924449577060259723539792067805095545690527306131622020967762169179122465391974912921662592355932987589333325798620518449597296878784635638934187031578367377065630198178576832300914121738442481022764717954722752457622903657402538246726967643831447117576647566512376391861831078681061051771260105376248624895282324343226240848340581785871189170879909857199854574940367957927004620410398672032936883482574652434857597712047260207776884206647221852499510900570344853795960794825726171057192770621176268382349132792309744641241214883831903801144920801914604760793191623382916124373170072080143919048080818784700797275717420090418202252912034250851020894947592783842845518398881148332280094559118153834056695927961196727346310179911876819574545073342548798896570741063278611209475975211956426358875542612032354174810927828378131174849434398869246008288161418084278199083766878174080118471678778963092736318004249057337388456292434093484626872179987848674170547187530896596660370649578880464216546294978822051644244593883881399878161706622624067143411207579219073251642866817962907441513136140805960984707537878519402909975019241509612170759680100754138227746598312051477447343795344761368016773293183635822337182397755192304671109224599322604298245440676541793655084146470845341663828118569889827854587154489656426798201960911791440045115571322596961118968707653788913788771469489039513208496864044708229110395809258880049436169058535067412244650501706833804270777523178171635149632515222309385508212958305589484903463100493432837137560199003896210117445989775474954720132213048639833769172190181898773535972263346040768911237132915587094423573890791500809818019759502589503604408844245821164455564323435539781996159402008823654223460240758021602886032124159428333477420994507326136236265605954178412238374856796179798887527049057395323453353823523272166989676812229270990539013206429569909466097907226103585767968353132990114937738349635557297105647806809855329976297167018220345049075606048667113968179559656843086870035256379750800447824163889614226701337019554597931392679043124779336857741416682949426936289821390752113038389621286826537580499804702871095598891983030960066464021202035404740265479636717608925620509137853825700282012801336220538383967820656127486559406689709540241273701647548965153521764690503678832908596688638492300955116533495905458327090770848398628982260747251174523453797988088250932730628476795903769491357962389960201687830054565682345847875309296168135815331197907418760076627935136331445836147221561790359559426460860768217990424527914117646609987386612830758886321936863852490398236074547797417931281704803636533190548803802895575935257546805240762812668262494957734147302431043700168778374418628265313338956508727145605694650503041965791982806806073848092252046191814895310106922267622269985345789673267986892308665543367801810909202374750941216691475001387919123403527710113070543075529751875992422838448268106680123116498960303905114940815227188434473346640169818239452386486914846367654478676695526743863102196454440017240866282615726033318518400437535938975833346948755707236097333110464474756305543220924052023949079384396326161265189915153961941812362088910002767474644990528986221658421228839957785083502048443827400575938725442631387432661728058672408575335079874967969523274939411387613916335035138598069435211318234421393463049236793700185911010879700062360603754340915642705330198466964998184790737752186891203719168006326614623892800351759895929254223682021104107429760879848571210888925821833432959411033960636473577751183054115201036042826411740112634728795700227225299464016012440364835895312663540198690042537182687209543359790916369719762564318080859369634583368720852546771767771586599856628892437498067589611196851039547124673852659168070181753099124526480864225960097636115205242342454401668551224335856692187462090201691943993890104018679820015815156544747834067042650078300247494706866520629673103621745557363343983539763621595505828050524917841861188762957761799984841491704955921430068429500797425455766127968663096151338914352816474829477216816144514928383602522570860666802334674582372860362335370467703607100552798794263123486548744712519661721624524648406987978795157233759616354245218680665725823009398937612963880335815229916578024212945973773551635258832966126961487158436085672571868269081477158265313428185766212235811068244273880287866559264976461262922464035279119733869506293164699198107740599771606843724713775249160133946938461532695332345860540064177794131284557461921939972532049359376465085872919619504675961560415912779427955392538632371298066322779194981207650255345452239057263109972371663855793057160468270538460491765525028953247290374219487286154882104483886373643866100621174871037688004021761976296854785916044684067449653893364606453046738523342035672089801057622961124957759892997495321983715766027087650193109111943592996284589777228565465498128945256273152709845330078593228174683428177878298618172542599764267863648116170889275542101528762223548540954531460895816207009898945093283214207422159883982363999483510149568324974578794806179511905482198202664479603130515181126800074669653033098975120203165906493140555165736847638725530840433406577786170182826426378668025689707777831676276243239027349926391102158914812531050607389720762047400655759436907057824897814231812042552493195296479517902759135481766624289279893607706157727898373138920193552228308245007700799383185433956392544109065311169863739215712812285996213115277199352342809180724510003111442851215410035540481890161818767561917616874453809395226830785495309806978289252208084059121128869554281245429072972617844751252959755467528717766124854872772317243891515508156030833323418207516890715311457432029327707602323987799338835627226957559216173123834602104245540659184724569497121370210993242108412922325415506299506339210998085516485103873832779372146892555199922046060422462162330819494558202686476045871901216006678368164405850008293972537371528948039690249602756870275824144719850207932030538249503840441267352038846735083795791672612598695985637484599625659878735275290883471829221823911593151955410126333601050122228032095102111823731093842947270664239182049301057937026022122729670679992038929880390590745090622671960600360773820068352215025839697580472391028580480034450764801156655670156706166185037411557578060698763368223508855996832835708425750886132931291486374172583163995865889516201481842410961035163194760817116876516251522106110877004374617208169455902460440884590842938850707518103546922621605999846719374497453798196756836929009624453156117177986568432197927035494263147594110874493285115363286004182573316358415887934379113582743868932671084529722031339751604928695617326288776689681283408294073939438734938750747337186878626076315009379469941039427067919108233454126120142595470278550618037645862629352736846413203856111142343017325453219073076358108178253628213699322254087359884875825227142017639198557391980087385887508511204626254453496665470927487845986109262267355235281241781534197524409787734685877723614341119152789202644110784515519778657645974718597517284095096771530859473401569618922139111859296441354091574378790478164705410351674377810902698089890616215532244286727912895895475603522898495896518959399981573337051934389899956700735053021800214874826135408873946194856525921298778380185351571753443556912498596093127403632313475461518173028089300684098532855470761880805410647749742251621894067651321472525427554770108223352835014942215062350227024058408924764078214046715204496022584039448985868403673564255904000958366790731210871681001221803237300324155743414385673355066402055716724345546472313378370542098476907040085986249499269653439967034251760923694274466555373535890625193777947929132464284375707920791674361545547401361538779080710484267981453494784646590075391329193816271147115167547934198478341148067607533732571100274051659803039572536352596766464984941784601959558667088281467066576178859061784690594916197794857068956232361765615438536261601488388479438361477723579940225425570609164627644387557858581930930468117078583809228061764969160205244861084099664055492682247274911481426788702149622236654611200029470428332989638790163332267395858021561649211461942649762351108598179849223308534556676020500640257832026158786104619034541377447952214537349877023222113825451892356060861132590798885117573364775979752861010983650167520649188411188715017890433855911244932507293603267232935875104808460155668602188298102006119701702698889485352832653016219393120127761884095560386678189524562271158624834376497308182578783888680976805864943432542740200361871610602770124071380696481036002640917983078373758473837132434806015579237593726128702446637988618395013921587791055445086177454227501410067879033916551755478958763140339950503473148570256144685557033161613646174649132028750053664331636659149192503147860350268807437783360065881005899694644067483982328640545739296337984455109984230179557654653568279745975109587610798351726076376747701108652057255096671770470153517554027176527034416631706507439924267945166726355364610615403102603079326255139877717641524046794265469255018524151285996829948817885665917524233297314541949753332230163725483182222838790875990142723496465344448115432510046789848092681983799300757727185898846924978536229696249493875325623028586323351753244749523488077118490880611714637644174959753727256309283768170969191341165636098272065554518575561783809571210909433288245016299641147653009105392140882972557088844633101491522080060544367533026523034741228112900267333398903506286770667352974174853661105613814078483863516784929560138753042926757226353534472164682253256612228161284611938504504135341762583298841532622310467838469487073249060438464272480611653525737756793818292105958022186949933170594908224110041205347361504211092996790540418533498967340699236014411431631395401780703326164906136887694021814180584077553570500734429801487395620609229770975819943378582902039995255075460828439270555784591536090247222533534348934392620591412714844155352172449203715382067537324520716676567611134494569351973915189475034509424940859618931533010935806058488247833116819678359912754521975350520750344443005634533964550872588505150192044738612971801338265491445590869974247438453859050295706262928938135095486314039999258823125881658245937515562744355449830267741509470256440689904947548128356990053055200234813010911894490638189239571995991941384265769261570808766682814089675507408313901989628412154894241272762778789112780810652415010833030681609671302018329123561110488582632659570121702463894611082692165973275820303809367522029043213290381745071400027710626456552553270609049192304600070266027967456109972346454682428252898826160707547836635091033930932120544789066162798095891971907850263877473642108857441640520886171105525305652133321988565450121315080897223473006797848799317294987675704318357121706104750342772931811849755289569515644408931162050892412652528817527995076375968481543796973237931777710850062562573814638271961580456204113841876540291595376937459653640290518078025585376067413087508793955873828330157271963419680373782615538782549522201760010928026424749533886317026641379933903440670772438454789802975582393048715333620958555878837165676873370570714796210088689512085888544930867147964494782952393070508832204789898775432822580581725845524823955202562637251234055297291741928473247630883479954488358042044266627214667805813124243801075452918989032330509012482938076274143860919422297358047590850323346593007141487493516429984746247555332430996660769981082277454974008612187925794916128630460297817023392835947903095899024903974742564930181356638366758072072207302287338658958622309979293788772384886755967426398559204927308641154550941461185179693452912396482978293139770109364744457844898700704260542690443969791170792815256782939043633205900915477070434268829825705907513942048317559159552057068629462556842204333717627796161908928499075478024055403800956487070764122258975601882369318307560254574684836561129849340194127086966407456881463421316735387689153307093693315958256213886716979094208525478035863030789021132509535872282176904286335498289933524440776682323687679113866973856478127546241954227755464580091070303128171049410766763633247301712681961071809940852845377690303727128672764124731322825777171820197815495281855924772502679663146908399422072297294768655477268969287278638952116542483342606745450961986085751533152687832549184923703237589741534148446046042948945972611632333303141244663870529474879487972460485341526372558776036293799635233153836362182474563933726689425519364272758009792648315440028023901378563817373684694337923779058086078346455632462134634754522701441440530132667845475456829958654219333939575333351655733250583704217106584410495490396175084366876977856479291886442436083093526287998472418716109702988562091152613031048352487705511953583902656908682757095222611302854549633947137321075719162034048180164616816609310666463364664487608522663700656392192422265965842132172222472731624265213062360570803765845823334764464067389716699214398332335789655754913079103576781149586979465659312312252916323047605309416532474596718554536514720436081478562791178023780270554888555029317220521951289976609997644150874289861674956719056236835350253351910952735537571140046797754202137003925887941566265915716446411832835002819530141608487490879516384302769594458692294117640273625935469541881090342379502124912090594594846223633599011878130158793056966716445172104596585289179525711476038029322529592445024705810462386592718924865669149243908884271315492586343344547538112216263173200845433622282896856877702660535948464304638938948664467027608706803989964276300363731411853057428771636400928905509681606092317685133116847585682894496999131167985619960785659227173868927661620483491999623436884715848062542074053965031835993674948541727252614124107342216112481019356874654820775176390432590681540734972044725758113636248684472683874754109095401097937818740278819925870541836656330164139834354681488784812364936377520258489494442395610321259309863967619198300243444360833211117823166134235170490258412236037206454341189408709632685110779660662099047691333849203702514685765487224341258699781759283195301850540057603664607843709630945122767988740205730418578538131734741096726248132477266505779174849294480374538026937238697074122662615300736741684426918844538729567522171423550661784102412325156885118135196762467672022459217636088857759513807260225859109888122638912926446659029284078964000798415185027930782092352948757216710750203919867597520939639817117446619455694415951555076331995967263520181355397660224695267308173378862217224219181940181366414588720195455483385974076286182889315265314710548681647278709626844140238411722959706065180299983545726790047679780384505583843542506120236165994041164638770566342990925778161094083851930431218886516827986221581231559345439316219831671919028520514351985424196488031306167636687927322265450116560089159323696845569768158811268765297911946771353311937839343026466528641478497896983645807866731321037665269790755520837904933084533516122837588125395129927259531122897254584114378385435262956429156787722468141590646411098975456376751189890717342527189924882992965768526600942312711440670578041425143719040996673737433496223646481947776206337108419625810748131321338771308243937113009698674960051073434454795704820294519671895521157169725810690228242656178310244164006546585142256028014485475622726007418633820201593637267149903285634718767352767944285929935222491494224759068041084019706884555391604710482279405050748802036556552284738385376565104679302362891480812236277651503598228718215401902573340713905187802598163560715250012259703452176365647862434857220166259990615536144190618503280815335805450242000434855857438344644394484606325536186009853975529822482826535629217805465790500841788600553262328923025009130012780901905163797626644130829944946503274198018817941688820527141286978745390341706919409852086093922600556700642224272618817434468763183869043638847250083923239596041464013557685543932247778247959023558978938352344730076990298198985048244311310110779390637796367222350581890936070374112858582730344299501700080328274771510972085039392687020210737862989069683012328706117126192675970093165198057310399107432869786485786394183568317669212087177733504252955849275633815414453481863614293259813133941124946717076900281456897689741514816514601953591378568403483439368701407499544254118820306611502949930529114463467907368734636582747889804247753408530668746833898785121472326706202485269231630508743491491444671299569425099862697173672213116246042899106707920401241141815613931030686670360925210087535794520087426742680077744527674576353093546622395621993711690237764783069682149371659281826983572867499993987949124047427068891863459644628311587184059369354603169050491985236826413812340064092367942189354768820539116049520070814183874833960243895036099166557727825508925557019020385720542949519481217042981431923869752198578127388087259025022309458704112488286509273445468292990294196363965339162786216441246264481458392185148103659353615498185660585416228571342673666448184481660917967336068482487717893226470930209030680768326261778337561120770733009315598341313124408437598722294599449395493367439928466936266164632427419925989961419881989359784310734081403201309771762162884687059718050777221698984812519264097907784533699475405776419879532663371035449132039707408465717438294412116684480487101714171070686697918597137909977498105370735430787964598605491170143298303191879015632700839726683307406645154578947207116925815205106399466135365396330955456629448530677193480593445316608516167273638271568408933207343333709544821102384542937448464418851338646304683545391211458411871758803704531242983838750273480522695858895418684290981747725592971740051038170454925589660877519524736251834653538509391746756516654612203221167343158514947236513520318987410097279231574688548315852282856874560481605662094192031967454040517489930123728778669379030161902582446335778063331882860185742379150601127845236579179178279050633264090568341959356896145730014888528797298518685417295579068042213816998014786418261548450799450848373036670487413820825676303817804776756767837636474619219205955976630952268436078836192057868353459786705873863367882701590628412749647175979062578002660837754574538794184878422838304120902093017398448238212148528603819548769866300564186412206515695391301604640929116857323713984929744691910826024319177362278505001680334333095466769653817882325479445956276092705335126884223656398613620830346114549785410094464797104685406713674767174665199497938953197576507318408480313770173857899020561027390324444495762652591178762465837299368398876038339831545268199920148855093348531113911320161161189728261426490863048802030242140588438241296101760764635785917840282272046085322431527161937027377112630198418923307741842624454703843594263630488814831450960509061170745219493537985509687618690149918317210942650774260864758480374653966579514988702058636880670709478528129326530324899866910914722710664398381690098751048519164996176386442816558447689732948946305396500801692541885783363917059832637997754905741073897951813149776055360806747022534753188880321725415363574249395933574035676767022958552345901481905540119565641229537410382925747584693516960518318958595029037350452656793193926515013668646296899797595300431090077690925955831161612648744586890592595157935971821253254775175740264312578559454670858496013738893071781946102850861891809257799926802020797385850020582895091821250287709423800289759340048608081030627362789566339272426731309219558379042490139273905255507216304693187416612014271799380284535370532158659370878663319664980204817496351457823142817755290698845139296773667947017626329620837690137437123071852753571128949184101316452060455307906545518066390214533073051629939737070336026193104202572116889937050773485284064357559940433723886470340115653500842751541740191512108620768244049601965671181631958571739597208886285116243591343488133075137803715859196105729087657982620845303936878764628839692729474851218736804041388609581411617125300662747444785183898708592150373035836787022054455549937518953800797261807835439951295577346190413626808085172753318482068884957613663543668329051325338763758509956405725401759931049323174913249223797625851110129370477927073733060737197829593329679647156746386091443249927805188504068037513013429075964823400940065335657456877774707634076318526646621184688916145649306481874892171710973387339967678847113989511703768802533699256297338339701275520238475141764215722678877707793462594490216765282817746701207204931994886322218963657866216918486478571395821426838816971061757151474667815157411693110579178956417680602806626271981756032793811929202112111910351064712475730210085126854799731756681512867417459600810922240537075149801006874514028585379275451793997771590667608023810594070733302084711654205393030670953436229139070128632207816412624062535457198084911715152939734762357921282023197521631260528950388817064352389358560009348340456675688580984530904030073697385075430058848213675626083215394671163221375598825183086561403627668164507801308686138513769156268367305212337730514852589621524154548006632774964383656777651565081775122084503200398901609138826410256136308448360222087295139234447531709167124243356746913252796206582341907089477671231797899954153898168082141982717342630149499139591122382740050946477487831109136770352609943833861209498732593201576034383066264401741551475790017954372138038529695312214712690281219902701603936195285263182582894636375426172235251816720507132108620399868114179399750604348398917402705926983219345640052496655117242981590307695437567102646714906225238017415502235949749313607849093772447490050083335674440653814322564675098356344358345568821056732051423055559001781948431584681805331996472521667943326643195106857703474428955452072578081403396904179366519403829602122112376092791160436239409891828692793938497661907671422729672413382431941913014041600199313787615976040743068510414246045632583879045280465447840960631720249348018009117315805840863828298207161255308236902129500147011472530854873542802227644733107915142997629753018109797856895378360783394443472770517821670498559767389477464274803226495952971877461591702640086354607429033101045090611867640235331012287220437449999992985257792158366960920563269541314903755876039430704213503654361075951945283231785549720193729677718292567249981259342338757044670586856660502547205660042866803937833538411214287023786818036902587061383258734861923767475145990044521880931048256347019967088869984772996266234584553874973668521391185050595342562053051875835746203229816898437879287366913070627476226547464474538095106451751464748293139174836713215072330567831006493836544950243462513563900668900744912393434705535138273011647894084852711635591660867419923919832540421626790128008671700794181826165283163571246738515727348366965220088875903888759707793727714976842817520324538235624562706688873578270398697428724607483063924253331953831987137807128003144403584304723134509554893396875712281329736543024447112696023099764967303175270259777321624013837475047581588028077918792831430625790235003971453557089666675898841911152979956839764020844399266390387999759834553564675465955039785398378326778097711260155795887866090178910530655035084160151390266815247370565750676394430431539310044326188222543039924545354823076535173124450420493971838304035621652423223791536966826249035104118217027812037573570021804108363794080209121864887607771635083805768395971086520044167437956761375988121371867799061196057327120658509090988099441781668295733596884251423070949917858477801885762176133786828630995107909423117880869880968035563555705373527269405789066527570116427808223547216553904546729460286261448029272408919692922992135842575007212911334803280071702066413751138216033100594859886798851072984572319484952761878815444429823219373079223476747489093924135421973090907288135596024778049710171761866920363397184597542522603834632636939619460445931490131134582292808984161565146402170260377688645094673371036489018977456274109388754872190488568551486298462152133618050370647794929347638127520418168803320894201904330421591847336495267863812585480800621039131397420969549528911687795566508232449032602407713725000326626849264692397122823953732820335363870724132038967863569765955490819780937077779331256824385832630812122095431447498930946475350929007091200597212196599698475315304135667742704046753807048953141400241343537360370687364990293338593143466275299859362752333161311463513306233389026427084224780725704868507055851706498476767452079324566191351663463102390245342109171734600466007278569187967512146242104800581523196341592872586422048232548823764868314922595836335860394732342530630515008328993117295371245554598125325668647254096849903710705199091352751917087788570886233487248598009287896416248837009032846982518862818320184634812055995056853997792476581571163938695451475890381416306398279813277489185921065369064427772404800302386616440455724887369772054127175731353970484306708207312558209226082766599187144748547268928520009363846510945806284209877811599901291507056788552656325452217919826506882730315345685028732537677897463066362242596235162439464864603972151127125323999769090449512253431877345864234923429009200012764798342321868750182857165427389913336953562628442191607837089982910208560398478686643583492425710002092882955558337476069212853007375465918159207847454828704827216663072222712353957442230475649309200423038813944475667003930155322285642546918064690699510004058844257397406361588222621014419767589999545021028470489916483208027032501873776660181902685045554833424231132830733478428445563990702597313760366139044579172232403187086015063956412197460832879454346712400027191271559047117520950152235388787222193347800154471985342515444014218144944126726186584495658520856478645730432709913171857492776174801749679689081816955114516015371583810919625531168496447759357430962166272705616591948860208351771536830758991365165231175714305508706462521868097220901178917007298858075326999179422831944760322411005455530243168885602403772345672197909978314133264300981209987525947988374355155531037965666620712904644157709642764541388600371665152426638203565821465040288091167723581895130685624089528352475199110875375180376557312832927039652191678066154770419016746428173755101850882565002768455982576087802880078203952463781484578534482339290065687077898246249786374547507155015208606334381228740120111863654356291934382783191434145239377071671868290432207190303270783157988117146481675863470803274977641996298371993732305247560455610625461341027102871573247539376633045632051110906404042807332063789540783182526187871101369678009432853792737237319424386789008833823968597407663699964711021111576200143564432381626921578336622409355850813692370512439143241175576890142606428584570809033000234987472845813204538289418362827757552387683874214813054341401959017082451690303231755651523834359411623734870910880605205878555421359813240569414450723614979298902800458548955912217733947977130178841960024704846341119945898503102578923140704810062516628413076475440826479058560185899548006575818313367623450723651322172044243924509748850865816059939704446809401241498493992330662908720161229165646987219726995946419416011819472581670086128678282540441299704774811167500642546891052296679158102567144435840914724447047468825241857235044773190818840366011040789420064954450981602223645902121678582215966219751419922435531679874386702228486415295109918286665357950945231027477786724927409386977045165671340744834029179669353158587913814135113970485502762204277261404295803256888455367852846448069802515207014518322063300009198810880640987651704093780086408958821925758100644576114790113002321475280795099581693087461008943925772161241989301136315830935414698020219904230792534967601232073781449195679883432842275429213343751271728323131958438655665427592982878937343362423266578830456526805039503145790187325559041460463336880369958278054172699743131674186796933467375372443401361570821256860016623534676146847717633408120207253253285229045284315111113699830359911898652565741571222492880121655283807168938992554302963805878968593011461671458106516170941771395351738362053238588672366918303989765293944523272643280286227023885050514490297903163591451976461947634857807228020251422221487931443213704353849242595969866005335777266301508530544302269629577025530457031912953558057592852578375104098659076947948112094416797171380899848467485139706378822280333792250523953178413901387761779282467332050402007214738827921687750486805682194542476391340599239402845649762447957073326563635437809073965581759706133965478510623484548822557361594023273623702919397126865090933491599806800033979266633488716383285235615866213433613404568074956250790951843846101011080305997011736307797688873149051498339005271676722134129721022621338361254656822697202236359571417009639191553793079043531435762301449931903544383492627285829478005882229207367379066738703387604904235194229187333509995846938965001511400225115467024429998305461745536955079648934292253224241593211035151158796022104893172710412034974464080526257326268171297218560710018485613298737804285054787713776800554966522227616927163028109391641549782268904271311579463515796122004448682867190188032749800245520234234698408251938165598016181371868525666368498123602871218566904269660060398712095693204076959831578067856493440863500168662601722169853514031760327225949392998392482634988992170100025919882538400391703614700288677336958063616954744357823667489696949891529592752509000366703437774778521853779980015895884781729326636623181818398122478773141717590125266506350954411751080508728654116143157855251573713703141895611243629929631920063613016149663144976591047689380075528282867023714791018870067804798159205642469923797806892151113346751721211499095495939909476867023680036661352543177878538256953949371344860168766602152346545231850595551670939413664158651245222269964927693228635835159518040775440384346673077709803841800153402952544705386999903686254910106290797701190282727823798869995360432703962752885324946930218746506347094588262295653687973300689485075041952599382716857725519899206123624065074326378166336222129530195882223685754101872588055041525237487593168860342980186811755472120005677184384446744497839074108183451266193775723484090618759830799567951327742247053222586395856047406000617708054846574073036942332006413509130085430377333584994820773124631712383755261088236307512657085004146636620333496134597792193015223789109803818401153152763065617275806256870884560545033487471751170294161127606976086164697129784135293134489191896076283968225368264227775915992064000067136440971655093288909676431497776925859378042272539408562312493408020067886715022000867276499628561694633179245888985167386921435628212760518144302168743919533517019482378932816134652315704232422746249244037967517359548740570786813276843004408639629582135319143666865678551479218241461806320005816559147778065885004341440877370985401526121036866465022265039067257405436354009637746942362352498293063422850364992477929402381634303540396673510413210319812320842077980170907146570667580425937225593481240849740530703466908948798127948439583017009232932703341768397432133579363652102641340253741774866542066051837309186704741450354913045008579956702360108880969964555758685025591073938447831436236452453957423884455649472695808435152214003569542504043112050182499416926221779130206327942700259574353521385335622269060828088228762873355898099674173453509304770948105858299317658693846369547707152309484814124931339181604675003898705652242036491873859461726509096825567506805955584611596545091871824327259922693439264930118010651818133007831097402929308612838143727347819320384673265981122974984286289339530239804783874734975955980972342715886102039066302721822532140664444946640734591849661502504179209930110814277617395305415077138001155714620982731044058607250605966252395201953077086099402627326566981864035184044918680112295691589357970526516778643799204475666406592387808987579574922269332233232220690065244605856048278199528397028917883603000242868395808429062021791396566073847266871355394289914984365672940179163834213969677470520698842001602526768219331265578659651250037946518953725181057012519574824558147194193883697926750640936712954984471919682138610762136552977665849902135124448190221212677263655622018386156074923003603426345441557513058433752762656775597231242195657161693589363897316894500360326629470318406041636442783395952978488177629349780678745343438408040774833039568126421228324989382595453685190335460459272949067471796309833694483892862528559489343256129708590500871253434682174209656626563119746835787696683556151192110713319247101149350608353965603253981772407824943492954440398804438497076960306186980512782564731834997848892930766187308809295705134670033398165586001000319299925332655068882806891156679904579243546643841300335911310634457543662332226271946813068975892775169876801160313774991183873282508585654292266520481356524756351908712159044688036763223262692757643938054435322371450704231484060005739491621605913019254548704818433516987827652183263955477440281150999748766585076177298981958289334211974962587837007890051882639045161329024943172047037695385701988607983163514384894178021328315962400169025884177199875050263304760627914001010899192693784263987084481962306190760713410546445686915124303205493924140403650704507991640169409724959541045410374372901190357232039418559161893497494464688987650373612086543568824388293558141711145848309433048915701132501642658535546092421122070027343403476434314765347042394659272890848793412031430715854016400104581029375275745486955590790204563510042408212065922144943556112116603887730996448133487528660441191540593128126305655670951769793429057368393237956018396178061429379345228042051868020639882814149398888901124661554156821840587153916055964152716693059589041377864471485014030380026795444530362411057987164093920561713009363551670364275753280733481553097532909185739341108644677792032123368944650500604825526290018968248563557692403390364186921391486507472284801880451487062725887234765872140563151620538718907317133443020092274216845878795020484799691571451825845393523963344831308129936530193202049164366620036919273377820627372093616121073858307629757144382612250526939099795954262699250052968707355929062694575023757467763922971110710342546391878309382908552479808030647536235963093089500860670229450915637191811927212348318809994567637093977352035491452748520704645835925242040098909662012414281517959194483511467204451945187870371676749559707077759916018073249904993566217027864262198661960566059408204471433033317522532221859107946528239410517960021598908032951468972618148489487524940377274010797308310707861914439289372517379467373376334818524808797278207277972740729064128565013977030263081076734515725843999967423438675146584875870255525503499399229942404581047646736134395766572555957272786453923779061478442884356194626255740071459521967157547312837366358830406078705866999695891096490689427412172093793217101315127130554031160860349117649027106587342742583250642779177868270819970462173349620557632004197115245174364327100619794781500634495148762338035786389858566305792328375919341524150780285827310487136618109382145900288159566221742229085951790477838730613130469546613915059607734350774435337710532898920517196928314158795267844171582614115859799745077275889915064069355381086123855686600509043131302277172904905876858323520301027385684866235598830002271966761513321252652555701851813660314317492748280965726016554129875917538987688853141872540712677915201833700853076882855033873611491580166244625003673616489164063889700027602806245992158866226026575579968652866886859996485838360384243836634616974355134331458820732660725716202730257271787411128374827116278943895783665583748902362747149997464686971232490610040234711132844523440679663875311371409961088787466039444336919628540015610568928759284625863381232464463811120108401667754719169244913376485312862767736403504479341349793904787003715295384509346535021057585092220567876579686560277886220721680855691701029887625630592325711549542158669914232598440388329533927168623657374520590145129109388046594511178984838551751207508865363034445667661144847306102109098076654340043082275422002246578053756513583912206039681570670085706650374928000108496663357443502016879180653894610262499335058683564937386635702404648693514803013459257137344432137425186732586498649786645168336151313781635559511756299746311906869527520630180495363070333083160458463670336491047155586948576197576588240999368062158261567250334614353794290303201533348308672479479450602381055346065454175125613390006541673010081913768509499030003301225236785540788445915907914822089157760479849600683115039042164082652090587902628734053672059439032152879476275431405911391413024244603127513628778564229087316987747716101933244899508052187850105344846855953709219810908338366941131867742691134094263975561841450122217065482093205657455721914207280434999548432960239277291313069259101518365602351723305712128109668945652374577381111254184814768828965459107091254337385819945013841060619460924159330212883709469686043153938666116953945212199987832960464081964828848167238336513535677522245747655652706334915873147822271030378544221347082903429355021905482465944747548980107877244110973115407624578456932793764670864409024673059189916563141835045122033461657473298525952098308807752260130758904222755141167820213614882385888820206226487143805744381791167744767963623474428473248679933092475772770379410417666559244478358576338558770906330359036872171205295312721907880976755246294957793143171358829121421873788037858071453021643391882008393668861807636343278082897969327219133055397730067438702683472234249098605906772141820483027662261648945455054399560426046318823034152436568985285152692852514125111477120888356875788336859633361376257367350301481661915540770346858358075864245626723369442854524761609360043911197988943920087260127145723958386517696682667720367188250572353843447311787421987939616750154680836361467767760275027246601091946866389044143585061459347283476864048022496156281828114465856040384784614353649954761851820499462063380199047395304620381311483842105535104417828650414716338361359864914587600547916074371474593799368486434970737967430852248276818745690719573873780572188946856950733532067452070661057721664609651638559504883353236267227557927924629590056357798165052043614018098364458291753082110874299889060317540988179739656169543864547775892256417865679457540152235946003951981582088907619225570222670592633117521360434787454935522525283671819142274137865462807971765804512069951423833933890076986422565603464298215785358390030140645492768099686955575764374328653665008779673120502461003148018576639719433432170177839894427966068849728156550771516821950660598887114331022757395550488447610456272515538399646413743461103312250257521343502728333658164663521830660703562576369965225549160971663942561055255896704593026621262252936774363770278052464982125860703224385829087515913811213924008904399568974129915364874222876986506963302988171480139623558007919819414475669430360176122831231856558569020680001514340011382041479259166116364195428817286148389007905104506017378434517401905698885007004323631019202700071968545216472854773015810388816595466645273455337509645016493502929979306783599176762667954528527273383232235857967926942407490472367449823046963859327778802108955810103415154094097530867225592374346951418864790988136583405549756768028871293471688832509987071562438791711193128120048534075208539926608363362707130414053057299327780200453158374719196296365176720518227590894680919327458883538702507806113060137906161207001133198267822751494102461899692925132876211909043275911864612241918113373467971149450358623546562693903924772396647939016705175431830739379359985331533571713598056195724055794227815833082600345245506867419886120874206074005352472917669641929055946183477391291043725255205778090940091733108547081227589613927963005452261129851693309542090418062922353891272284263639915432811554694704530719604957598508100330478018649201689967135257566961863144353395739657826883933826216973352788815867574628291236521445504676604797477096390172449287584988257505222183815047862523922949848289338949067101992921235764551022446233087123943337843869536867085602647072846466034217839888048514941754286927070449715106151530877338936965191723628441241406994769027426344131823438131828771761576800024132946459902178534867959858821792438955347510362903515367302831378773559574239161236776182791522684344425170978733604745322749919551918175064146717838751238120720729571237389707957842575749043519995174298802306092166608345621372347936760861692946509408017679474177619555921902813420666132816866345001772319631570095294274224820730335349980075047888850000096020023513198270252201365278958798842252223987027328096443621794235674236669829170893054444594683869622461135808888432843481422601870847263272513425599088420376913884945990236021415715681386429916860845186410281493616261566326071553199838482882319209142197918486427784742986522769792359609831135318609296099578226630049681511700211057655480180627930294304962806474844311711303887349429642169091779236859709862829827876381712426188028094779336728841159483690578536443313852898521957117419505871482567150949885857525981897101664300371935665032479281200603492424761073533297164446893108886022204434951273414329854606740385259554881017619588559824104891971421899458720145210271652719959915769360475005810966082960742684565558615340106008116601421907012402891876465291628455837573752597316314451462597931533860656446017378252639494488216897542152994341057364514935616974281264722380466924325109227265916934939881399426541576939778146067129705927734551851087197423823944172829804400923498368282713333975491969069047015351890183635648045079053212650450151740145589479134035427433248369650623493093493909674319479527446307561578868581309108538157728285473127056096239561203029171829970987529584866645268963031841557325719659505360572866188197588417902232348209618010897046709564856642278242614724654718514145246379063541661902129192105384422346899688786193668817727975489069541904368405851585069493150805538404126360341155294147432832180340273547410756164493161113671273967858435852574832613157223728526816008768923309369956536616986235302725789372196745276555299534410782875115007674888831523210855511437995142260113554480091667911584076956228210444927065890817751971098527288261438526839622127971393179741498043682057592844983175715833745831611707937049014669137877574293900558008592436222658665324911439414114285447215079017475542240317726436373302269278853012830241618493103393291709289186505568606624754904395195487747015114248457693268195226803172420391335706457312993606888300393042064008009450822310873293496996450645840536776179333233520909960667705448511462931126245126637303237219389844546296099825893013312716579370668392928195031072508621439153229502852682440416681416961657156767023774978809158785433047069920168019010507337104738571174855468104709851976797473762342391913912318426921487837017699920258923915570800217638738678977697935204068114669169215943997640234002173317659444135442362898757915664895216199319403152034362842638409455018907604568833505670831093014190737391791746367079037176902750402240192931919187035659587764724879485592366969269507286817315138280837215342874718272003375091937784075836212137713360907412610287383654316370496928936596012780355390628691999211072497145913703725325691589984073280737103161214842020016034526368450883642694808536673198637779385576759790842392429347413750531013587215428078355255707561570247353649437351396897372827434803150273411577569369154226936739184056991280375957114800961157089192959215372534160760922167607184709090290233627507061795221802246096421475056153932931103827411298070824155262985947265101909878539522554639953777079363608924723632977115353311585019188676999261344198396306029564852311564113965237930617926609815178704077595141164224137491624898865743532863953113147486079909097955598471063417782227837980869952446950485343675709261359805487847582004401626807929843716939496135400255433398570797375070978700505282679900182713704457659997303357550506315999060445535346276810302091743510930455051164429195258771053216558562758663468162494690447525496680834709677010801623218664576080146629398954695248312937374802022090708615180580527993428643104968071557606924922829698376025624830212947047393798547146763396708485577409725466938524312936686207929791564726536797609856703578015942483853173183504128696439215622724640039003795430160563905669458127494803731217718059848837094589543205508159213227734636718895341614488393556346798365000420793493303585490582752456549661872460399513317956773155383990348301088972811995952357984426032818580957205660940793953034019424880263943537599466105041862128053995590356691570089772911944255446637100533228537484602573611112315015681923449129458277427720378267660420827394292343715795803522267501146959203680073857606393078096556339992952213661315944278316967601185089501954317105218410424924631986107081728905068054866595715269139624450123129569475238194822213253226571760134540865910992781493119903800282923789994607103976259553111239960954304163860400724636558144190898382215335824115220854773180194406737077135685890047414215886469301319831152198688220650159464772913678046174827593440231540137864248249723649894566488242136719261673566216366983398604878664407009489053740840365665476911236320619941518435019604951694258851102551852680178107966042425031332078453880963309168500605153237649858712754373038712557811885541712275766772504603937076360104817536539926870358310114329385464405066177392675212302252734585986829043877023479633224997396043840350306297407601286475986325269371523959336741487504056471266613211885565468333025709793018305913069878842060482548307534752346446769187465892893241307189146959470098196836158509368077129071812844239505485487480526692823482680853452754894608157983650025661532376980024083119551088077381189635342052573738650331901539299354537386799679494161323435530533068331591285722112337936086043549032778579177937260845058101815954347069815296721631646685716643803993269759940772188008772007687151214982430809287036294279360508291324499745860613688681570761861197206981142276230921807932293069417902312918599814916157420814688388486488777434312470084322282056833541190151987409841173534455847740468937218758515665078923535887229156554279084528165817682520518707488324780292785404000844721416281444666003422046491599918973526651991186605775708937596012838966956554294097829505523865413697914524854706800227526254827812229266631410896402720560220178127153206000371229981267040803255932329354176318051337832658109487065909079886986392760141900008611523340583745837783635152492429574407686054233915572807906343990157853378122633756152842358827377384581644698495439117233830692739347273133742361681305742636931836293766671364600487624869616519672796961499944006829037975611078734811873892148032016194355196511686333276016597670576796902415447671413103185501314834170692801793853937992788837744167403783116385573710906925062064109636235902844380214717256204521424687206083834763299424035637329453072106915625816781863360963141675435773188119643565434156998998639535690225956555183610190900832219864003256222645704870983311717418326802479672215690791221564838819352395012025726833619467673688686011758682852625823487399224196492018210040622344270356845488245197639806675214025892793355859422379908590270292093652295416436571544423365167860404979136680308493927809383855864204013679581307044722835135552227589448602038392710832243410688667644838442073596245921523611195438575053608604615373155826793738589965963106714294661176241343590549611835516939472227331720248474769893243636437003011152100297128099947596168819566666559966668799306441946187607092001823525156172879651398031254312977984939044497097842179721841319779790243661649549876431693015411516945685737902332822609057205419970853051459956110974474960657587085806077750031157818920600001355663235039650240096156374262950871112074763949236583472137924261804295858034533817786299959208582550776669163696953516810064428136739498074204894803609747656339088205284929684059130246156791741227340149430667447282014846298347373492606306906502647522249900859170812943453021097273449400565044070112363920884989060491691562304955292414444345719855356108687584524334212656920653089489062291989961424118054308313930174350302891230318058945948700325450884766780143499112702951752865630558823777747256690315722253682473611902388887876910029267383613409774706023548859224142691382188467497260671609002511126110010070581477511102570529414681559873346310514061742534290520340352040109123664188252806547243392428526280627854843070312108847006756232764847065671029593552181769194243665841047098649588497944311885919758976252944818906065929534858557674193493453456031233018082178665543472427034896427697978441965095486939302962100453092176185221848608303589262010940049859451544480206547783583392146690657241915261373775643906188897766010530007968568284385976026790501108542916557802770406057282539078377507322186383332919596467483030458034238768410913607342051426772057318356306865075702764545775704784877443331528118868786198374497279681882044279530624810269613240359852685177168602819773223849040481759070546476737631114303776785192482869544962603635976086930726568635219330460320758656402945355552658965623984705840806164803203146529329028324859101403744284646087654214020463030940440744189190349875060422344625452905162235972102983840907593028699644313107329068168539663215638378712835442429680692181691900341091859731813047878800139296697956664453039790410570386252227909611845420954009040898122647962898523724323184545514669168930861913295081751412872478151351639926137513232999953847576547204929369117824234505299291926151572696038044426995086007074883656871772002517128598804411734103846703590840257607311354957720053216432501955257373391702092560921868209257246042232305726077171042751409841429046104414669609239031732180038046480386126995761353616893499233850718904412360830133316533386151286499901397064065466091976140719818019807662102945063401807693431376272966406124060495242736859852320862130137187898207453895475236764055087423645585685474145277176615905877449671401255242040842763676915871395937419895224173515659695047289731035582140367894069207253358160830090590598449972944619748788451055106232551649170163304164594503986658376187658751692419041616070878443305955040797336425339335669925059079687854028144888333736761792646218275511021942572087564484815071119206969122951337723508451456554543498228200659200407168225955307179041073388796487907871316725031426009257626496042174220854301136139230912882556872199930221141484243312165370685288757183567938526726269024923271553797354321545308532021747203016472233290249737582956787822287944721309948981795308500779510531005222571410620421852821526298432371040056506015784870395722255002910833652552747783566946461821295371422588519971941209433696459251591023511368034598691972200417633091644346268798734109568793337664862663600314065929466292839299187171442237782832575888317082003293128130440970175652835689957093727895572137299863488420064730508361919943601104253634596665141751528003493646911088398390680859221073215970865824672650801841014639280305677388704438641453784801708747717519247955631075780952529662020014235592051461051702555999188177147923974025149511027566634244254747905968259540137123856848114296669116115855695284505783829689925617426729167334496848003623354744043969995334353201288527628899715881738914848875843172284647976032632902867765971176745642940831527355136856083409282279356036209188267972935189650690280690864127122569372366686045375203921053917413012897483438120024769948196428205627452375867052541110708170455478254040581014469073628357157619606471506575665831992879689510908273495001087578818729806076615884917146973755214322065970681043348500997706080122578543520326777207115901132180226328049090398932502515509278159958744098656659832641163656520172623901665307881151744735154590758659354596338077177018807743703197483491523496683395654086062735963284861290666683669612970745271456393266162524988436809237675077311096755365604173462030169339629860699451592108625574470426854476519480221291558726427748691678767584319604815419830209697218470069877254584095563382458881008528673276528598493139654783642787697540123649816367309826189931407743037446977772860643514814713456344330477025521550823700151182739445869510857568737050586264190145191100637412439566318178981610358110571652046890596438809962824301836526028327801786971933801682742657905427518324137219000969067612874444854788089181569835416875129903538016674654445307880424484699315240764304592060642325660729505836185268844646163706794148109431980490990495951806604843782710241842337728515024938136325981525166267385946839487883120893961382506332283705424632976850079548976270720509778305277674282021878473656480771178643696501389645429875835821686200824369461698589103944672051683067134759471604697881803545633339164918872139145992639856297479828323435474755809515271491703492220128864973884296640583686515563361876121535685347082593639067769384769991874158372187347633207845051604016320459507598395873848701854182533437065462501135635235408509886178040885529657411738833664141727194496233125324679531293791085193677647935656187068219349915471913925603265441632615682723275139217693783242441785802593527324575241059155982641367340879268130252095073859512776671175226647382928199432016856793379474045372760629120044785009434447820962199068075693535593074292843655746717269361703382048142864454073232318999369163203131953318473388576218277387905163800165703457259049354323944762095238387848651568117686809019874353287475328845209372312939833190636111492590596989809338079705471593402171945880680829073573665797334522373505943549251298490596485432234556690101459323077168532516955161328118618750419624076445044925821468451413145165246973564748020365023983278315978585432697412424627393666276727354990338438347256293239349033049440707023224459690295183339355594345805134556483864348342717913768347394450328488336365744268135215323420282581920212433709089474332960696956755960380273887192834678841441297345352046487603251490296951860507127582449454062640617649396885664021856721564972042028376874255094413207814396044868382308164918353944901074308519808830240810027230793400076151960872463405837413629312136764170312676440929419239344300921578503932170759851059608708259459201987964754503374809245211500619234675498271163939159342188299917381382752292922796623094578717178572311632688294341134801059408147167948658677589374955093647646849952092623798940881001192658628953410854996814832264809172816805671417609772958764361511301980552821120967195890466115070615614120840590552135831955536961784033959242394464424521367247733055160290965893171579739991384577703837452014155695905731960218161884991870692870872004932287652864572151868300509444112977455033939234219820870497668655860775860783676564063718732551601973148919950151786325976921121673079716753824122070546241462197315908093971699458915007675310177396409324590957377920240262399283363221347784699324606088369704459910339660954597770600739655607549951566064327777825014760194906447806388486664724904137088189744597686995517918052618434273296664999269490337684545289865374483617793494486486771675719312054907320016675214518831665591152626402150762189659680030989098322143249850086167026475279150624190358559184947663875637522613458440457587190584793824142960337427959831525920108086087623813306149708847049724070359976551067588139483754405903527827859869118031392724963132967609912662147640528963505137762022512191019897884889945617023148513774155213309745800474003514452477449840442717928897469501851618112398718778836030230250179463519427484448899679320059114274342746336993033992407053342821645969003145450366604243810556815492634798008106723092081109590097732538547751870714470397725123491813291555049490780446829332339557648277232549940921794909432979278373928223550347515348012863869654794439005569852426804701201881919114465347525679877702716133250034697172283274189160778647315724240889544827871107356486701029832143393119341744532441194027377899399706589546524452491065215417012021449955893732308528675862243785885872457618014426363504321109429493648440356810450107961307301986397172334235885943966630757519952067097225328776177941243523032979414529169868007197900280289545001181195503845740417401007413081519263375821164728094443390236620682736505213164272010748396956084475070756861753328275521982373183524697409216574262563778219591201245533126250004593683068827649040392430026479729245514412960710618372495068335543238147556598888330488711771339657830741329576616050640075166234475256096670212585622363682910892046571869906763927583401990929633175565598137299902328314579993287719570215670501099114658806937547554620404982036702788623854828249125789341414853204961771006587866571783974841811183012508751567067482698228067156984387531123020587831607170705974347692804955415161349692678976233651486896936532507844034417794472410854706854807944954986476002638879862131393862443495169287219499352281395717011691378857549562258213340090931559043805858244699046246998882681947565132407680437788542945811398515118951218492511925869721077223179887132089935592937436605683086852415127663325340802875114066021943713230771698097739253950915845829738838192108838597578145818595913060555882447357496171176643620763817899518082084378963465800378560076500850401682204886043814382580397845483932063725304225952644248545508974668682821218320979129513779250692941882187118029461240449998857547186140548976930824914943720873401147846517751252185640588142290290874572724184823821520153027983095489744796080097597441780831377496404457560461936677678656746209830807137439956384171528290208980294432545838944760205935321340729064060796586184446036989308220535249003323280494692868414744300035077925859025065616708796750608826406766138886826546076528103652759502827498053984787937039640479036156027700504691593308259004731819033258751726618965979906376711236470035840967258902552719167764779717336020429839162389627684281110199260878534150472449880414841520080460556007687378834389887446010602099278738371752493167489590569686558541163880040451613383595287662455375793452198471858367089675948062008797648608306206511820726177583470526176566675274521919090925261082719392121929060011757933741866822156388337408853803535078081898068417736315339872821056706759615405955057072449566374824568800272126813717466576777722724232798723451436631627979564477035852687628854317165397371045470268650291502636150209736015355963602016870678658449389864462792351310482128948736203761879340334433596547883133660759572729944515322834740132085006726031154135615534464336186606035080299892670211171142674006566736217064474299259138203103017819498527528094796970472543621313176905874873003635511712741589083742900158514826343174520056692164247801325602826599785221711134039948112896280659531393326998476682234499709703923390402888244077809206272410271372481516278163184007388985418369356908913451427521379353832095256892970733159732460457014668808015096373973584454745187482794983247896474153022108740884757896801180159709517801728563391125929971860905764582932872762245776038078297259180321487265216017258206072941421011000979713993620991695361992905014982182545168485845067737713828821217604628743540642979818778558789022952647996532866442810892193651944347279865339839937725156644392317709432653498286250698102121296436164544913785195413379550612542373787686695402652353572428964750991614895176410632413117473193124765452660702046794462862172389701939885289046513597456777170396077927396440328633059191130710504457485587248675844614929383717699653788660133546114124390532264201504491737179105782260537507488090527032010915360645474738674151230895562656743873810798045876792823252655117281757114330808627347528369215925098323459567565974868079221193808708194598541962111746911970030385678214517808507622959246044313071599776912919509389918730537569407281510565280885469646433661440502268279808626557617310409141461044737170067874125090906391362865538298166943915530621420872448294401519166022594332186561834394488735409715420952454336385060240642263908452460977801634632161897138719745959402071179714015073433942614799630459394803486696028899817383101773186173464638454754996152758545812181953408906675268516723469320821219741086076446616780345033339196747402388846410600352346656806211445603596640770565900722555554468094223175923085513063138572057094048940220318142877251434151813029966180761721608883209322714968271808936706797790598176255485549212909416648598520739325661462378022381962492805462332000715647955294830062155853682706318035721545802916946464760839972904106430041814231457452670817371797985104690599958498638149185561049357987303730408145541560027308246364232029567647449609453837404323969449452051127515488935152435802084686242365413923894635336436536836352797221696527792133584055231683060284934845021619484983220838792081465461838627492085784027490632662201409734416795961140590133953735267276034613836773033303617252760204923646985648677262330982908820565844782930471958094909996881761926685503079127680369945892581250637207936669934798430744373574637313056382611760074610549460323119827664254989977363293235293852911577283745910298201903133210433774592761336688489920346580539435643308989435057650104994144316732949837808179114829063625573692344693202185543107736569167855943469071499037298677493228309586542863478159648458647334012530141364548957366281219996314722189632992357954913473819674658832406223894312307473245277661929525707693005703516128548282048287232892253673012592916891410320156981513151945266184983597138360176014026124074406115632931508315197573584987925905415400353398528913748866403897070288956345428513297728376789184882722245941357319789661691513024211240309393049385462886297653068067543301080400523519251827348783428214158636578701282516504289769294216464477035806391592614694434907564016267236473363694146008728382846326500560097025793076704778564568715981724459065164016784432925748415636003535317788651125303196348089809201077630620267111444753693738959930479437346881477917242963559584967625460185382667982830914139635988025715103615507626104876306398926959521005601241265431550354613883437528290628134815145792052283121358830542221854015261633561660064496703005563474258675060406086598365537008834168573828906293555026851766066989608973365045692857337541276104319440753572519359349866893001877659287500114668614614343639170946662339196704826828221665210225180014156205939514116731137678337576375099165250726827074294712376133519385909998646550679704304810402942722766100585589974438750377234423139081539668697124183614722726205497967468961602074810579768116464248254910498768976610947644268815032008161278927338227798330265722809904800908227224144646069364392672814260223530598340002664729173551247942934711370845338867412727200196954600981681468157522437900423885221978575558377240106413981417017927913008847780926844478287395575805047061548544083436781912455804328120359421875692007522621081898122717043549514992310763365517603733636009762338416063784202351520331990692681380646167109684784884304778986501114844555608085670241061501719064225313211926346940744680311604915447299433332249671711690415871130917031465408190754096139178235297657774045198184645584470756470953456016896643672907815241657016350678898277320407142694066069255560578225531820220952593560515915367972613954808308701226541391618929556552420645899601735573617187761386353703091174474942169563684353656309639977914228033031726214382230780483585750949044846668601143692000729235292006629531689688298824654124822568797709960203598539320138550813844983035079081734756130120836952804976850030557456841559302470179006103118795357147940899185681535670456969298207790298490688801171352812716108821674845703156807824454332359338944846404649295609415840117754730957680114343414316111289677525080078583790691378439197572880165153843766361127831326704105253917035766519765578362901770303733973317794418257544559871260332091640198638209630544764557899502314556252660813106781882764018413696262238726139229440017632492698315100889408266836795111356068954270191218162019888343557254960732113668672009525410113800172339667379941857900068669092307192044852735064251306876565850820797061653402923981331980137928055109750397938320954095067414193633879243693435508793264764087234665235027818435747076886766544169137251646195235426517037217283308821608020963171590929597554988177035672236339347265718270347644742969169154957117361176402237963599463650073153231721603363165377744775761767271561154950775427544415031229002034525996896954620845770870673072793652224512172519593657088095114386374455110123181104340221264175904506701633502164405599117924282626147950538802754526954588721086298123140518589021373794553223606911994630146934417944676355892035767032226434322133398131797105173799532071053869412524415802333579778875877348037239242243527388868358182334776740604896887541871739674754936886333017730922050410755074481967406935851182535063972909528117219365725988105850534116825081841790312218731262808246546747564340074117942849988457708696682291465951754129099050198990540038244514487854168262339315334652981446822634957260258753791028311904705197081439928114126712169794042451509210443416648250918708954835582264856346265340643531589297925568875442733549240629339328805492353481422324740227304930536520072693429717762834714740603655948438413610282798864272719320244912795040307047127345457475520443904895090029935164937900129779930450010594567837481539940026748341828140506139399764439722737722603164658233075688959650182453425438854814629524652811500044361505740712607507966790999337667122384660708063032557147101589257693264975341723257227280934022296977513371788238687652901873351983673703933784125226966226764804420802442581002995688195281875154748540044473638204403662675005300224955433675631783114329460981062442699332948553100395005208997845353207816263859918154432822344235517011564851558470988996835541434733482121501491054483835566903826312267208044127388881953540677857892057086942229566044608203570366472767395251098719121302209284294801175817078003774897162075200639120528535779968445298912025871307585048039145670415891694662053833066157297875201675101131217881335060703981249878674409156930194569749869978709723504947133122947420558255702759312282123455444528035500935258386877240231046629668801027742712016877018206567279933394110392417865800205236956586766669126065362220831607033607493759812734653368503600766896059831814314489529713613490580397443399535329739212003737158935110691343150769084977323781151278382922492279472121545850179557278280304997347782697275194411731290941179189017589826109529455786715566299201697036245892160502925888830852857203317773758273986001170202386789057773230175286741301441355192677859936697144267622685035546932893493558696224296073341398933346497777709298359034668703140683423203695438455900322190577356574465086010584627850431192455490096914598530179971499877469941511527611714123449076793316001605736630896265977941889599683475621044400786324338408465008535310521838515726817975776677560062422973718916478471732301442619543236345563043564833590061326595932010952670401481323255232721887340911071707302104887973362687975506329487975719643971826898628487417820783886896065171220707873892794431454464721367083321130821433983122940753241596036855893156910563329134148566019674560021125058147917458751226026686370914375969818749107856112538002124747957507075186846166564486434465068243914538052932580222222766662442002145997184446908563687977719297373307866766587529521781954496828216831478202247098887192316339615471401713675717578195035150727609113781331121668377793018887799844254168443351976835052671793345769836258673584712035579436886898804661064534934350657132349773520706256541624480466726654498211454491213472308646545988378181472970472508129825008473200073164230258263770645984799866721160890793364082407261136482987909406860397784806481879305791775713918273906302105583552068197882789699004708755227166735762360494422532052673517018685214006486500079870477346163549355161159693190410843440425617813938744098985400954344525721568043603741013561314183512741780855446127444318531790765467511303376332792934372171356122856163731393060012339045736532322819939926484396185671177558758305442704006187521019144895948003169857858272979224009755910770573403682532124404311127187825795562758984275932880777287983387650160290792397974366902835551345833094065986023190962335188038653735141901697249353541836057012921054429600366899478991595073088243714968442994295953291836212411817491592945773581132031271703327057689888908415847344088006209560031521122979797348161248250160179554969607456507681477161080377847602090000051662555081571969180564341067340767604168662831182686152861679653794468659450436795908093135180338214763545266311341615179425704601637624474456404740985018442439340147514055238984130575245578792640875951429094251248411484060916123142246971545299856091365186665243859427770953413898406868874816446117679107205867482410613632789997190554520277267138373142531299280973759932472096313707213735076087454178032461931657139501747141628116281499657983061754706513351390834580903487384143048582316489878703522139754919419829773368965521940435559568377876770042436938743491503529531188381332197814190410595962056162907245444640218913500139709541711340812530883432337920104134097782196139022313500186483498940665596804180907531712487060594991443817251509195830821363167863794542799706424387556231289697702666054356533590200207819282428266573141489556326024705620402866703655832036694766030437161556270766806308083464469352636067963209254485954526933265991653685537926749006536480208191210671164067128781192987684044569937746872541617923736532787264890389214052233855902859972094553226457658231676523863332609578348883702175675472888503950208442072881943864793553164651680971397068589728974029230952500816080909660697403340898926215688758214551617028325830861571581179923037534048665735260106578084656326184303416106968557493551312777375999232294972641429560268001724607238646389922997346711871099255521500359116568169473897428238948548981431913306042392974435842741678421464663081448382827235141559103870443731016808085607863929319000196075636460622798502738258725833844497018448917284429252002780939723519305867456504273072940965425130387109144576103022484929385964850444376676894851991176224454028110959020827203544594584076181145003107567828560108539411912137057914641143213778332191088452744175144251816423029049975879367457355596105115732463162010132268821451006006060666831984476552591937602940124787700697792357685234559098499005536630205243916780027040913852956526296531830767525571321172977880190971041814580373181434918836547839557748689471124148999936230593282948831493892862381798265935812939801798929118285878233750670353394130534278084719880986921496657753521722697389519542041439423955847055452967181041088277370392983570952003193935791523049509037589681789440493684266184032607251313577957583765271162887367442790629024376851620162241081120426779706950203283522412179315966178285775217940187262377205050165159437710984355517803617580584774628793605072811511030271530981629331957545158896681442665826745492912554387274250187708730833363003847035734776584947471778785508745610555124310043680338247568849707411541333495480552501004410267975211827243172595429450086687865136615343497592580873495802015969239306038411512530500755288106018263485376240273520912933023473785371084655074426434598178481931440649668857119165447278431939740630731789639170903207977478304359901538636144759155096292697042609562729440566927861248840715224837657614196939697780093428716622478114799880519721902663861467298306396875859557053111258231114377453193854642535352952671333618077227838621649987629691284008748914382821944944950276579172095851359277598290642832225371025505852512787964880286269033234734161138985456802142133850739151767937214888325128419078294208368965053386468558281560572857517083882112197277735644366504809134575669918466082294982642105154150851363230062141004807367271293024640509398663525593792669084321403638347048698705893856990253537758910627063412093465871062660474106777989700851653573847994291345095171877983964751347444865005411069284491052230877679901196229141396883230320963560854597685946386790935156955671354752456298428134123217994898766411701308316918777815582618581469396502071518509075543628486661572965428452887974040455649831928093580586660331764506922523234439091256343881290118111632112758295549591207636074580489866217670217176784307694443305772150891828839923070098912751966939619187557308807773460045696952561802170719876948008814216167544547504728465450564145733470134872901711048853283477649651668095708704278863092606388839064706946581018264219687392070444167999337417572334381338012291668824662586269452414263563384146890162723855537395774107023568898939646147837755416026950707809020884275692050088098260294370835726465655771423650058010528372744239140450847363982167075774061521449572137152962397166260407546438550264829336253569025554775085916112358531162026461505030072705306182633902629605720902014123634572530095559245480550230679074620485560729747576276198433565514208922785152998170654719870471114505448840584921386857122637672441956972308187816719168824494143211333216876499193098004031809850932768737447631090734577666369005093409498189804939230348616773302209715264932812852834964341648901434470904304257903748568987620645238076209925083726352742532481261139331966809634390988834923243789752449949726863316996558266331037255524297572836292916240164342193128344718324709519730246871668100538206007722084547729494229535844995868800203491989834002926653968491351196975541528379360675030396997000776630957504850986406580984326844731405816446033817481267984167706391821657935839677468599906276050483381138806739373812984176746698373876846013560941736016841229353603457307842012110221223003364081958720851133610275390385448218818933253994609142817898684611059030996889052963669546899304004599752454254189683373508481448564755202488682553625590255468844154548803788092175735137052954784143783047945347368454675366296796641754028584950747671876643561871981640709199317545741441157877526416216167354315428207337098869121117482183591642098113402947412325477126964945078956160399429077557112940598927191769629642016867784813878395319084640555605024454889083507039012584116862595442073731496675512384338318148494105408627220974592059671955041477426105896962615963375893891636401805082428542558273900351580212154418009300766588080371850753461371489490384583835036687625008589190755302733385896235885997470337283805972323117429889908580859557205320727570382278917297569518026495493977740439105038757519133318484145839038446644555651137036065244642742406319644392692093470943029474072666659815864943132514814561988299801086836318794960922573499471037110483465650608456714258665959102360961842200010977584874571848871946422381096715059494707821283189475362006702617007058669631454197253623639973176015580971835327021947024452877588059491171451117711554365697402652920684361815377671654319251176203577521975109185410173466417434841296889035751875373016474151658648157731651803282450326791656561466053659942485490629067839129553887923109629471781802895436318916231048448597354216041416022078295748836945528127852632306135763102962217981384719839662944535415089791793083986760752527160855670890270528729768238813907911259215194304373808942554652395923059672242458023131949302242249122647811683838027680043213639583399795747649282143259411403747817761845234768731678484507835148212800287325277118187504030453755936963277842982945523454260686489517545691759161941196750432409339562392811506347065434319029443218064749166638892157389000678054059839404677919451600772569196254927808398703730401475698007240587201981933636933766515089902028352867907782892395338578138636610780953558735345671094505098977320958246275707480329100062890038169250592011789098311396814858068870814825901448467769396969536934446665468091789887266270224449490232343764810089405303396490086016871600520540436873948728414356905147506297469657708676971510439965959212931671127568959410608528501995036570911194580148504414385942557987495719661237105975007487188530022675851410403503164138681616514491764286692458471322719339657042466256884065936709732483933555132955275414328699791589254776643266658829186061363621351897006181650816031436507345183488879242470273747000045488243311439583434469999114516727857091099622979610984619075598968696003668783569809798260316585700723522364112985897267895593036438459058467692023936789990663691577446816201994472158235598407247750589356356567567825327048865384355566358054719497341320759088118221186112665434423877287979116979351955156178443701627287695358116639197593207515871486930496884306587034545226825158740970310858458572108373787571409413884863494547042067458972221852542397339455615963945806390723242951364257577914103756283784278804055777165462626004984726153078843385148723581938477060095201202362756651255758765511369220608514533806643678012089411779342786074374119342962550758430127123929900461586657524319759329023814057418039273164827203247734964376514951245375680071473087658071521644576006991702884258122858318790011973548483794128712794752217185817337278403174245781757517654198211448106968350882802270242798239894043629835086809389041905130254747200699145560321264560984161065607743200043519025046392855983645679343186359687532111508284618488978622145550237255190929182127139211592726165561686765209155761278148887637607181377134740778722265940666118982566692332392066167336995447698399892221288349646355707937914278241577822576265119537508875494768589927683011538212996808413136737514002643984469564531645091551601316071344849884159743324556989297060467114602106156489278241576227876413129305533712852131237448124088964698793351393094114286657644194132425343801612783852512827366635722788392756060309907760424623056771847384378221124748193956116026025128077980997638676641377916773245579761690375340477878953353965040828491305036791833468331534744704126453274874199253521137978827237374871277978812318222149203826384573694708267919158680586733823203903028515553562575815681579533865376176537839774034151443195689107840461881111351787606065473220363471509404049113090437019947529204457723664911288279718518665878249626678422594116662767248960095982573861595182135325999085399975138527604505138986891771294000563743651104453611473765669298677047851904019809591069902523021532049930823414638317521120163173804589039664327465948328286676480411429355216957823073993118175366428824740664978751092188399564163926984728874952424278068854853749369369500676535321659350799883519383038739525977317917126491939240014942366743910414541147343772421075500401980566811665580818919080869194789239759902373897321212972929924761391136650574851018309564549234132665626397559996493024667257843340493602370526708261882530282082605427049454939184156405091950876955239495363088511259145361076019844253790448699664619353888927458484617553380119306900365299723755246273067115306327604352986114680628944795808921931379737745453097508584127987083291339452925836381820354064877918752774602841974185818947977057212698821967180799067586774349671428061795472939272865320019117169645596931101243606286883957877002916663655543007235667302740732600326993226977477159772571533861176414476436780237891739619591631599612135724378571596688949005062989323630942637878276221703951641484012426612819530194695692079947127263380928975340423446694764771016193116818512015602444218755496422496343178240144510339763480867547444587421148819634459122379772795823491817188666376080721447458749337514922875275473105037387249508462796054279907753451863852615344602154336867113092723259990593274645948158967632498482448079568263274789325008080278653087824679485680292345668948863346504534856560042133998403728685246418315422048904039248931673841194858441560343874318952313153904125517976281267665954106785804994725950771713129579318791637038368866032456502592956074809634417052183990789481248234496910656638796250390699622651023728910041277688111169947164507514379752532035435079173854094958032597391332077090564229743340456883913450910672719981145799643321388485551747920209506892114728333023476255498992387929039702339586733411948674902026590975943574035920355001355016462054610719624151675942841957667159270867975223374868665596184427327427971899299529169073881161557380204629276026228443447248984938289195433044872802941215903781839795427885658392077973050745642708670355640706531856139452395160422039027666910193074680450203441648728306138207576336203224760304189683401565365408411149637261497728033621618662900831758062283077832628527037042277248217622019912127861723989754649552436852301281076630971060083961736339480235640358048082292047197619336465798852456884858852440227815571448380892498084486255491754096979100122571006038104552233395739577905805970879694355749156358356404198586205159493529680009976834660567836245484239329367990515614017430479133833547181551158971937317361178876951896982623725411278530940033781409607135163725102472556313130404653269782274766221563883110139549213150421613190678114889756531791696394970545663249239248296933182106838064761712027742254871580856793752976367835354169257750221089914205329408269835291181424879449557565659387181530836596252231849173220126510492198194301309486101745465836183509766689597292731363900411272338129807945541822288860888578084527939888586973875673816902465982641027455259790687668715491335860035225602389016045506372926065683086419771777691233635187149055332254016866779492241007247352057924390629699155250038200658329866648206248807691431011858520535899117519569852087001949067059502190994235547711532706254872485491389305151957841140313207840871000250839868547425309319297155295452225914971231769490204078867839271923955327948901315140885871628080282253681869082504314703808193089389696156521713679786163655604442625234003963287608492079123316521279426672386904654327790266669692980263522326040236010123083839373164117684637938531521676528577553516411400451806232450767267328662435350457935279078789242179106333948139225706657197329492334412947892577139847144987121337581716706638042137058491564662536546346222601901135107009157047757596220983564599852148794358457463004467360109773253804710046914847486803819086025393188899738765147827350530755911980198805070744543474780771367327221212646718334073900316722266255271358177698601111752755001926271842658757521280761512402000864839699579020792636071388404473748185113469372087283441398639586668335450986024634329095401679602151080770150373593451289694417073199641772528302347112606325760215534173800874415043199151878448314767775724466027085955453126810072722777313021994757105111010178150510136105225699231448544498036742507790974047159534471189821493353049354886155224791914984532586604613284158898847617801680151322780941587531103385081277902423363191528040799175418290545462821871043474764225960867513545062674019385460801822799157692048020973284895069575747058865210252083755573936673807683781491080379594727031672606761157241078408805657334717754518653601178673857345933792572065501921782248432393271408399215427703411140539094598609719573633237238802904784523381160130710066214756092747672561641572163767154865978862625493358853717390629411854469421243704205207388392757006941065451264754451374277052792152410632461321890149215404581575387805365125394505452065282639748253747544867703686858203370067190539183632695045813381023058635616197891559484219775408917893794958591898781400071548925835747950725912004702410044170149994624175681673699483628228693689200390547397668691581420111084545714036909725288117443037973532503481465474257861070895728938920888703088420298098877650240197781794716840060111201603728636609235971160335708041863087174453380579643953812271072646968350421513407781443811917450335350292318995507842126946378350903728957973579085563860021012287632873346352347819262618273986295748804628636197438464672157361770813610012117030481639333580205150139160805849082130540225675648690879676418482219633876832560814426545358646771873165225674427989708708455033874036106126390129689518473938291705809317280181735724242035754741150607340631029695717943751017632521619833658694228868690337242234161487849820707784408507050840021907583360274997803182469019587211972760430907030711939809309356479988304461961949541901276000910027521744448974631733329934524918904816308634736280935390820183737609528430821814574420508205991773569324468569482223333898023234367163347156115839812966257403596502507839714097545970944370109599527224433818416587957577581789902187774692377277538455096521609407924593094133613364454903553225870285057396136152076289806245142592746060329807601889619089784922346375329003624302075737553880917447293435133932604403397315636559848426518706594119052140166058806810681519371469137927134332775595280013308470424057809391078700772405743291818725286987700165807455298965428266799243171681437541392068780576245237624166081035356990487262699116635647080151082503636162940136245109362504142168671250410361467472855020987794689202724907683862486930354575249112255746401592161558689082644814060928238735397528662424904889956938040705533473151611359134169748195552509613797170070743930998962488527243705347832272534533856206772358029178807369277472353225527404372803161667010357761545800621081430663886146387660932402085951313340351312118536888736055638884685978329262131724833912972571205050750013526653133147542802708577013753133041951078266862144371637577675192420480609713973967175318873213610544920182288663391060485169404950105627071794260555797637780732270511318023105458338274787888324038852276306342461975793699139526621813633813144927144966891596876202865846113280330803702264851632233843862960626889766875676964873755464872268076982657706560585596058639453914939599774267572903401531534059203495433021854789807138869690241960903337855023959213830354727652005999925120638250981015154094091887641420846097673313743918741905106251978840812196427832286276011290020705037085124671815043646377832597841288770833006420330187241869076874210000515174380440136448865653777940045101797113745885920984842096158964628298193440611878135831589433462378386536783816832924786681390578166856933064215088683430418352693695118182011362517745728302370774802821793187847191746021514825748761053222465083409642481470915856173458713129685761838137612107211044824694563596792305932300921018822051350313214645717571275528324711678332532565874717891819838257288663270854387720455785731606424107925866830253586859180918671483092821733768416309296447090161803151076097651107274791574335220268833943674692379560245278627712350987254408917000947127101308002266437991882283584173751763305826063963808046262752164934422514711792558828093343399000575674961237155629173693450678065373792005422122868062296051746594264275875377396385054931540173691203122378005534414565830833885199549121153739754505234193226158257874859843218070145305551249547168283058600734447478295220526917415664134496886595363305273876728656717307495332204413601482680408696527199305638813160091310438093546351027387054457927703159897896077806781326063027930340454259678101671132614213822151281920715245070254506636597839725430245209437918391617391689617712430996169034487746238732881054495657491153741481874685615912533798516152180759267524092953936917350977960863751846164741882130483709679733722587450950014280958918024671080842842876152935401998532290307573722756326383046120658247015229139489109672454531777399355485413207128122908108304927327923151538464082773340038726730657113604367276344776222430660683823608289441881990423926322256658992058536763573435046291512216705644342881926687803944408943633698979285750617779983504063759932376701693382517049685652298651381302681601103146198718088556497456234738461782879805626978225662906355587084660471076693342358906986364836502646049537347139348593630573271698124339909224517282344657594701642237332259873727778377429174422170571545762208878423237058607253448389096424250954368495292084154033504283441618263973068113821136141124105256528512685111661929955613823407462591473333315059185212095595725790795625786899607922815857390295877012214249008193886957099379515262362479418150797456030685465804085176287877427889402673273074135547512594367831787639813282217930600644473286022788955055399770569164370473701878860367212875719787003083113571672246122549130387698821375762352048114237302957021318037884034273854480158121300714213312302069459718812593861481490213231678809575300817688566484507301395732175287468513878940592128954863292747314045683590233819036292311480898001832888990812975671630591544335040552680227330277305124699198893147093441775433308440949815123330238550355453542419563802281995723344221610942232215997879651160687866479281547771677745863763623244682514350007072384671013290724023212771315648068636746233711804785077101358714252609237514621399260141933426177012423891560429366096001682172574446576028073688634206253901934165566424465961603631488377306567089255121378850536855277563793991860229815894753695730467731247449615510332710372687253912520944975447447785549439079902821559894322950681443129924149076998126593525299836543505898698056566684574792356548730272299079979849239307304651905135050152428091537681312985712018971785721640551144009112646862702339622651069125039854330557831310652786275072605376425890617918228470338317446981602329607642145078700845010487122649783777328010179432097705518383720244076644085553628970977538848034768636661444885644734292208674767176905608683542022595464050076026797458049094839025180874735444394812173641367649204280004182886141727161415237131639006129485323566620481391789418599351314912418316153669071388074716745371718097965789794854771406686263847992193118331213611156135906143623959165781019334572668466463020641415027732515003332220541020724084586468602532961508444125345770249679607682691623668586960758567553138427038722392240800314495507781241896968393376729726101684647466520678559163596124856314354742861107704437700414483224387662390523306685872653259417020045423001117747680890984156551206257022740744824986846163528618663918978021303300403193165535145873862860752366173887959170673493478559624305166591688460047642769033820148152174599217285616387684830926300270996344541595222938811480369559474366776535829148992740483145816693190742332559434806149036076185745360991196843329159914093199604513327041653812366585603172448215212419657046170239630951855805148497838350133850021926823411181727678642110276876531949643484089641032510979208615007386631725506676984479497465460595057617010085930256606072050154537686223944121964466792942607589094720551605339113762921222916564097756804443221433288091025235054832007779501955926843533817606429489102300768098835706867698985514634112567143549524679597973465293229204285840266247673974133507120528806113388440186016983696512433032064201434767641858014939605507654240328800039867159446446821825346957702074084631818934952296385260984732395977981060876316002802847218197388143491148907776410549116038077652717251246620779616805823102130356801336693146085464518687428197766801269696075665661933038434332647427149346393645580095090328660198933668605929343434235093380560759816498955855577365233619078788012457214013347673870745929902283216443942893800289744337132376974721180541198213239412389002005816218052094905206284793272372735562266868646740791023053867718938811891532507082206391769624181108518587392183108277998566387270635030576732403275316326064146844049318889640904057532312427258836850705703770871832143805373241155958280682861635724481287412087238745312562716839751708816700011312943930355504769062813068126084421047825658890470013351603999667397768375239498304815177099510000748192351061404737792476379843702935798565234937655259305962595006765632492777776580316525174864076881771528740477716948974648275637181582255692753545603660756860167258947207673374492909537978304263522561062118519581248770750452837823483177939705507112849311248686180256994152642326440887763087939784361684907493635932243102404026990972067505345187271118407573810562939207101590996084324245120310049393304113055205916641028620564815371192811105843589988395102415925594255874871700131111252602032508815915972747008333873099660910158836726003150791675359560390986987152387405459133549082290297097446270524444542427969580460914089592585837657112877171971896740597466889617756469952202467919983141456099822249423408968678228178760909867988070808771049409463246125758668729955130845469149952256637710822220363925017598021969373803174890022324047864409669944812371353486377768152314585461224405997326809136642577523411277956224932504738982465922876144546069765864009456442772845471045214282390583437431714274674424984789580604699820087868505394826623027805023620311703049007387584234482799913888021825976879589736061366828905938084574623989941346732546157667870941706051432987715509924322907026595607514878641503626510719007957629914570672721386536899531103156997896475739531487487769431193447421254410497746213664481888148834518546095205667008173025985087010158038636483714117588345134814218985825646036089019251200761824719951368331805094067273628942057340527899495728133673129701565336053912902203876959254876705186925041705247657370196696765286881268092009224336584341804321321131353979936737856811989048765503303861776602135535116002390208554155721146174614992680646108610650324734916883384869735714237749496005746373135063467408483369992635237930013261290377208004135120464673334010462222761055150745592873697136479325451757281117128164726269187030959366793147033617466419773358310509461779805111084725004426755396584869829143391730280904682994265448430568904102701312325928377867359440801265396088812832981112300173227617982516388235654394975742393399791922640676151070606506686709702209517777287076100179148378001629580814336790797686267066146073782237941611156037094466680616954994780785949052716502564621316225089969736660143469449331549453696973394998903931812303067322810926043209553830178773571789804558259400630685990154569401984296208706283818003484298939682636242092188629019264946094941280369862007559028251600124495399510010257941469109526813932517292262937238802229126647938165018217794934405988871842000359900019923785976014044381390676957191275279919175205200746617934042095778437640659709395470672511526599227873381760869422627822834490922382253524201055083576710282082031869010848242106442433139431559375458645345915587408041083958167076665072825926597494746287143624483433442130458419515103270230625688549844207135703292877272438833839247994154256147998492913691725127291246850196111763501608550716654519984049881904239990171968208852796286773314036544731321893373929700529902278465516613203212665246993137587151215154827710244399355279651574324619430035999228142439910512170110242162870619484234145427379984019830739965010229685625420780585720761307201828575870382299719416870071305200310690905625657949738732742497351606166244677464012950034080575054263355762039843964610987767597095940316201070346885269010080386899500964005556074701237816465155793173582906038148488554081221970353463000563774158566387216974012540198403364695405049481793365525907243407962934629253398138880042653108813569489038169179552078435212775879500214373780494645780436041668955309778854668925199753237504685305451788889435391786308185614466065403371243708958372206438493769007589991630811360008968291598795483578357698386636368003752386078653116728019382887120405069103470354161999439094063198160051554875352672691965070667593361377466116357420441172799051280483408260238504118521385878957088824888779975786376026726204991921878678664513824390110030676409036420458773385563945354523779131432175206125743814961551270107081581797923830683568500490321413098478931467419270813076229973482572315659254691054897011034725258583597899506476937999496920905852334764981057507822242636627230644490355184581465094160645674987659577128617191276405364757091234894221673074305702057946336807920666868788042851902193290857688017602540598260453977460891712876197572755582154004346776928941485243366677331035204637568950524802820331734539042835983448332368413097957856632182893268140774430400499403251854741516435236348324497289105908347694626841368955514645376366066879974695600192652582105759741826379417186682642739134504519371558938585880815958597247978125824135481980604452492246296793966524163112913796870342115246784491345393266041895098596623316362401012857202355967094694778139647136958655215035184234068138488800451173668760133241716400237198922820017044337728650523465278519912924046102854139618185480612552491683632995392395587956036401933106475683343052664154465772516416841515703409444648311405592352344369292122781819067604688454691257818860540945690921445004321400163531111058777119927477793675026136587120996391341647941810991620810953544308417507919662350029701751480547830213035958734788746376861721776537314258759392910317210433634236951553902174579287352940992300388450037700466695044135830298988206589406126656934304016762487926598640047071102356204652164497563047237872256500888671210353133745708828577860791020263195138794695172635028164624538867300354457950258643626110761302027440512656721755619191320649779829423978161973672732840367951707349650566096763642144626986546807968226193043905306238842684370987922994974861944350935916456960003909034761455687103059633426714182282012110764951802897810252309563063365697652718918834421887712623429291353062138041609641481264331053665437310501884171726999025965456076657564541408176966523777867456835064710336617507102602836715547136338839306582582440319574770418911864100900147138983375424373116328751680001204512231756151901130760499535976860446993128307636071689222624187223483847856281561027886836476552636548286109519655666006847578983399962066343467899701391564966168790760975551349834275731682595199271958787329101577611457356707619693651169830477286046919271072994299711475198728055215280111992286522582604743705106598025364776562189099688434322146982945744914813356562624003466224739818309333376867368675982992201080419791100914500688353674116479827900435363479545745254934899447557087884937596006696228343583581233910616875083778793042634732585040802690729176751225627573045306962568974171951633589247501168522116313140489452611783333632377842592991937902874940301711635482856256704102995996725603486645260255523930506828644013649561937905629524479850745070780342477082478467336775419287613285285837308248193039754262584219242127065760274702481405236648251035021611407976793934522967279223057439236668466317823568256507008408936311991129776524280873486759919593154353361640483796340161484850364695283969501256306778943331282997938511431566212937161293712719038763584439275941434313224080391642455726660359605077282472526194853122952691314430707187034196213888848270754939108803390214088814391322382634698621667645334592794452033100573936685775353050105123933582709715256636398273350907194738247665610737694680359428320901876308053652466886018502274303791995536508674856664700742733590274444583308135088695968752513923366763908229134093961267850760254519112038117588390076999644882339628298020981770752312660059432558705520655009915059111673112917888553351761595393797202816589436265281511696115716089520542749159802200201246057341274611527541541363924494689582725524864894079954972328367715440310073110806156808996738657514150275244959076536615043245465256890383008590944306031330700573496849908274886289959355390763455408772343198843625325524349293529376018202640997349998755090662763344803817080930302288116905422176154990203849352221114012758530615271043362327870573952248864332930989621718158551792731987578167267215688534105805368574781585162224181934172891825062184790749113503816837254355149557955682020806370409532010754790184343325256671089488140346231259924372747789462208397008707329797150030409571961637737181305974873910688265611760533271523899948197534496360735412095170125449057876701970655105872555559475053465609725379111465383668871105983528591853191920697057727480003900342617971295731989943045396832295492914424847423768408537866302674366415636002052205821553688331093978564890144927356497632250375603580051017335976557418603255261604842833391671371064167954274600137385009515425392639087330687323071180312901022853263120104120521084200410233473731822128125838060055224672060754266824597689823017375519026060863341314866622513422343199016819616775099398892696259793360289385624200108504437988359129201566864671086417322310209137221020143441005523974893264770934618990454206262473581579159058030910864824972902226071406870191821895605882198838194120176004264112067485846721119784844512750607692507506202011387812407906560710055441488245866872075979525798271960131803469589051321388427377888781907990183365042680535807244729310843536369631571110474034796312839096518303198256124098189448557064628100547527978709707410730696595884065614801938348971205140396660739521336629242903996397183882796515330521164503860566773454086395005707709926612503434032182012492682274354122538304005716119446134096337787140355427880334412367549974392845983159999193984976454305872526706300029576927145500782880992918230020920130845412535818301328067544474212595426605116125211768423989344758235759377002440739603629187370329572222434452795795429804881494461984616254416527366049018943395714225963425709589919744274789351717027451164817539773720131059024406498630367295482968926347953513267942788793484919863486228538973308814546025406739628324183369015920467877317769956334666754165598364548046097840615455442472961895371479915749693424447629224119936950628188694522871434781395328988409120057242769920328399547157659388646042252148973222897504231449503924192249670792922790036705304854639993718643665232492474039130655793151707209049616493671202188163087356798600741125167105764591191331823654608244020435429895435836224729953908380364255777651304144129792693955516718130028245095722823467280896757794725507452770529939468489528539568574666568028553226740347716853480718890975630116367860650016957787324442452736264851366085551349133959984454313304043322414445078696858933431029321035237389097175768745607067079072561064075476691283017084479441306421331246894529802839520296624332462795987408417783935214151035599007207068033943344327425138301526056868586155159789679716731504648563082939451791896492513865028915222158926807749812403590534078147537412435574352434899943439636526469652615317001239161890173437935926958929747344977441124015456299441589934237677798371806016572547745836216313217071346437790875455148525562574482494163466022978653420377799946007878167047502223573571747629486276151875416754257345645119901371547758159106517734258891936990716215145303391328418797342396307668804614345581009198338564012593765725753075086332820951894389921811683329969148529735433527822393814475928520150021156634868751513455839451036285790935854520031474507165408232921686450817717270324271171308842856116436853052744287922597430253675723796828009163422845983651573670375955425862067164417259844934227354421198279195441399902027033168091465019079658617866471373650701182251876568946945603474781487777471869889557115748242897292989194957983967074984587350097580631142979629977189956789600265437828154180901310095311722120092246318825922776081128837061143025070790781459692264640153975778177233688330567840438444883804238996486140322442297304051097004951213867051162164448508329860460004059376183896025234487594265120530242542079730691062843726213484757080586282368636274333958991243930958977064152196006699063449092520009833062645282050066923145297620245500875215436346507942004824562677804589429563267804268095466342058605850034386354890563392619971528211925588528902888913666234785510036206153223120633825852107595010711439258153317049508543327701111052267788852308159372402657221720263428637110429478344271995090252728673836902100876511459982113006413737626693222497973859042159190867548138089235909672492269234947891314819904982961955142585941423869836274030388033432130993397447744382624689974348000670322323337262032556904310961755070744416234474513805958968557726874276111949740105440595293099452685555494514372218770661786625040090962258162950849047739398528428865042672930705271123895895341540287324570838712247608395075986655740178636442831801094869317724530335865387925125901390940163105580736927533823694362446645794857824849949414521530896736541655479242350298565232490849533467194890625059343278457987634433387410307317729327840806774447290319730068225256775632347247071231486865662652641361321010690931377237161701623570619438000031186066340672446220778089865715762944054675531308840465775037650182127570744704070117820527783654603387401314060200750572417285317472761302527411170723890304477375453820981138160998449704195587720156406122929555519768883138971783510592696550099118846720063251783242354840659964586850500470767553031841476053552604040875770129390399930956371744661238382940069947037248271373803810195526790803616613892771502642496501202755639026595272537232427088742402494678730145864330260625542822723243143733180760127504246500604479766399532158899454835829376697524490317049423025764179677442885748929575720749484046498558935403167509357492085441566038231009654430925109127062442754968103967450037107434183705830268914851101583306864228329445580156099390766130790890131040976355395227783991062093177287294162733654292708112495791287519947019658731782180213184324420626722985537129526610971266707264081774911083253336480971791743678283582602236530908864912477267999209210523192902793230578399844109977245026717242143158655231124169967206236282080120852626661092584484901780590215789336806052918855945807964582415698748921446015271658965687746323514747889493317768948342530717156821620207620579252246947585088518691883693211550762013828272278628763466050412851498749647038831787091034627770330052286841272949518507758054942429594353517154347871537853335139401886339185624610342713978925252093135277634606969089441331369132715737633950492803355934008872534143531247078792199541940814567903659696141142875272435416774375508303266812611200895365599842724923641261620992323680556549509798066873639979506898925850103559858778806076886624024059271690087981078546692319177103138878315386246311811423379528789037486340690365359643106953739920924391078594924907818898295726735422603508636079788267671909801430265617110115635343221194158966675569454214117830144823311061677853882385134306047385682176863034132663889532982721087303811032062351831720486095270687460643200873520682356792799717306116865242832084663558574386543203597126696161156424659374874180891488404982954707896521222908840027107424062639650078558119308603640237461799599201076961222378658444343593050029318230670066252656790402466846136030371479795966168806473908393529631975438259177425789350076114591306049747593235955780248503000931487216943932627463047823516343158982118469879574076765210255990635303503675456453515605767126341523866212418134799569098110106093585035929231988545260522463911734366625320217155807274474928881814471591401852320100829721604016966644297340694747242502010124964085047598736773944974230947953298755318251382216049766813966912435951578381128851684281603424755597250767932087283749458458898142958356933761546178649112926725128409206606186039277416988472697120596522237130888648311769970898701637471276968306032003248161623155299099108371370608303215139287544579955779802980802663105809054442202538951346892741631943971609858045744460617835426177111362232884720999412612751107127864612794518166505668591642223567146957223821404620549547672099875597689752815958928557063924342086149039927265850628539284844194097297767724110214357171986586087896545051392923989871005877423393719980983789218185510474476162721822323590478492245847823844028710711116319959425937389392426479587542974188574452836741051378115144984598263041129162206316435463075554218084793025945089740111378711275731468421904341596078005322934178594330971518094812139745876808657941504494508036657379143884583719998390099756307495613245289397946167743324671284720317857102147563824140164422196779424116985903380137157347824129768582986528290705213583513768082797049604880322631316777582885172175525095036026945448469275397461465304047074862565568297798636963430842398427661123757181561452282888396150247467567855954999317800247085602195749196983318250704709010499990837838545274933351828212928846817389709250308701691954105902020402127494834284840271041205444962807086344519598290970604649389442658260445982782063041122223195117550931233998980959214903259860622714402311266697644649885667234913435183410565669664503008172973214752370384191461491484824647016231482273046330543706264413717100339913560909857495746885353248337641986554214877788034887752531410023007981280280576844415694105553345778647233369919386500017926057671181651194923839648969545145509146635069256096381939465089580151782378478935409766196198163511804546134057967305671221100902184589195065743471202886726857223987693947241166866420650736468263178730376864662285533976183008571117137471152134675003548823628186906473232165047230960795387899681137919712544682806090485502593627633438884062368824511693560530253808421498228266357825014387027991616002622034117675664129518212671156063978869813292368188462617110261895939970508606565148796588588692313018380462771110796890647172743229572406868404222887839707431824255332606778529665110019909594614534017247251579761226467445848907127978502629669018454174846539976462490654481852396658955812764742612701363213211081261681121695709520634512989290347461449893493977366552006871553276548436259258024338613952416478762187399037680699301947437730559499238550948620455240821731388104902873349198400718587726195488605790240193068258522756213228297904256931261060350938299356987873608004973691572691298959539565532466448901465144714716937758471479257364575245169193204094332240274912582017634943810638582676992033435620938315945851623992777743980974378324175607980707640174382901002645231872505745263054857923134498935395068596803732134083080507528536389992800885327283140855852477131165053562531891239007108885618731125952520625789351311962012721533527436533884549024118762105467989074630914012887681213200693084921275912522854314105490414082026065121538528720452498089516229378533038549350111541849883773594157539063321189741003971756384082494083861148702795527888857084473120824745237897969878950174396215164195521251529746174466355976663767225726719463164203007925140611828544305854242886255512299340139752332969876811639189959576792024131494346062661393600223314763030427196551813606212154968139985747931180052273864029208550059846377443926876723285348835652641783563737588733871809460953850503982915905407095684827453721745022948447533744521831424710560840614109220409403598413958198900226545707306522761817472358846902765685899225403164814094558776335693927273035938700577313050058001482618902755483365618779947868856719184527109060301974296742573105930704205625856713733076851203802819605823328721353650601652551490813435715907728891298028050257302703549840330936528677726084625521413634266409937186263810984525869336988839244811747575569576905308204026960183046279676441023033743225637913517400406730208728518743793112940757811272622632204206123797342714480120324039346345488417838139846105546658854026046944360526508210140588180701043282327035151233873133268842201621512462379991472009992492772778107000971782878809792976722763814026120875239753035762009190980331798848234225981744401007127345819021169810102421389713052328202165048298689471192424615033226693295794249783169803712613267439715824560939072316143878696995157841850972491874936150661845279756364947638853615120795033026282794462889894593154477828138224657288647435959488478591086096588522628624174183318609292889964094079356113206527884506536524120722211098844549901998417638121968579395425786926283729505583344240777838313855687687761189491355636857622871554893726559786676725275864098863451526474141169691665765214513429582241290530919205858719959287883282536222175511746699559490995549201451504072242510692296084429194978668535443938471590499010030496463798055033003827511219273425448706035251289869062265467932305273288557693206649650185591702155567292393795283260250972136393780255824773318032782635044662680706580844859395926015792626531084183822705067960822656676648180155449091169402063605545298954373543608647233177042652006272992176417318337313078966972037912279322497724096957049283225577652197979997650742100335552554003295905034361086298031046725766288640033190857564609679424160284023238512160085384523246173846539134108811858843306787990104273774480926606958314193838155931531726707710492980351953363793036704563906112627625047334090298156758633400870983597726467246306415153663973885803176055827025409546964770706844345423713673980839286259551766060001529709360860997201285988287407280266544765710209822818632776612702035400694484691962041258563578384386609266483240731142342181961398608305499246589982021476092935722298820797249040048790754161503833183285339377183556763053050055328989993936401604605369778326043319536257480079141945416295183347200927892017273718743992180863844157958784235463658655156020477123059628668781899634490897707719789652773650101356462786989958618763577060222104025992922066634874774425816155869744893963356913214855670816517828330529666011800680125789871698525720247274967385239933935512082317247965166179377361388353634456184979757928166410195967773484381792986317731338461965608804215951999330721548488560448739964204579167509384018397060354587250748215604590559486201386909008694782306147235371419116557130991749907642638513520069817840397148061962636334815964783384612251820605194064317629301931144566702554451258752958912225543841808364164602361566904170594306132584751314495522429146756216710045758708262640648207607371721636927972744129368989045880364866455310848896306810660662466225588520158203206447712475864924870387938152618195824716319260323313805578743396437644648216982882748506792693886755596523090636415706708508040786912171113695020329407033940820301870247592515312821739453726357341898420846809859017049480619179556249513648459707255983866041471841234264291157471855042733276367838386631853339606373308019378032626751171879622538947819406069266572689019969665803496633895976630014138347500146496623244678095233472938252080869451125867555378931480948668821191322234725558522756937774074255902605005750757473034518538931189022786472289670386698421813639996694358693290701074739629466153673762285523896421130419617697515717689063299373949404747659659912546743423024867247837665029395674970863979189989335025019599982518869897225126408243421927925869151625844683330503064521020864052346698132857779972872524614276043360857616791782332227087033584883681887144721883470168355280188912236711704332820115478189158889021771908738970285584399167299747417212223333939052296875566952934472203394623169495430000417724724014332973991152084702184228376810717175973998651391153094839179881007772958507398227624672374216106680606194134227350152992739743389156840439405815037699795446643504724943854504199505973396231077112911153791093447774500093471562298188905361990980909648401317144216668703065687623415440858998222428628692448464716257150702576131101008705539581680848843636637590316606293955991587964983978942761836437911837406676995418927648998097428785108848748264184132313041290623425527802243352779876931816962531282050983875211907786909525652911371460972841847675361134166989259070815507058526633006432814489492128596100118326319553676083989291593770752163697635491113175436200052308480136138273300013455198116321196823967904492825290117217758044772577723144205031971040685324026585768915063749259696350230330106771052859905868869759794531215157541716277164593254341423880786452490762485327611095897379962088792190417205200704257741498844906280326416151783710603453710416976442376815033592041853884170965442614893070219084501890331758798046173791410314588470405290100502919716571736991760148455687602389432312005796523794523113310152289402692888130163918287060605039212591057646273937877377267202317197030289022020606090088674734087787693132847031647656856513436665683894737413731681118776069639655760197477244899956563993417332263570314778461161491128177429887122864649565798253122323935791315056903056498277247465843816206134242971832903622894760898671404985818265104635671746728962019514774392464936212700233595792735722758423358903864257758965951277725516195320895230170114635874555115748656136135427586685472510630330825043275921539296356819806122073897377827042738310514053825458974300422163750625114717329713355646387709178587965053794788321273862870603084082073565625337962950089494129237805895064733327847967142217142244375945123319750369744805470957895074944441100763246785037531327985994392613753929034392628235503470263632527987324523922296090055970274965101043315236860109986273925058852775709949851136361957960050723876144112216098649274305331444994337520351578547117219243506782317566591278101932676733507113971599754132045795857070410269530355890835848325731917099535243712697873096175287563167013404646916212577626680900136120708400903625156098213619356179029346106119015639991967680724169799259292320264766776985173725261298404658470837240629281573716240165228801548896997004590015087071983651585363249959832844118586318281236380932898709053867708280770036366416794248880584729468434210498639748807303989079319768769172550334910585794309980650101267795927660030419945999658998161558748049745156267958355014020798675515955446200608357769489003965709884965760639117587627902294181896709632407926375540907259975372066817470417839273076422009385735860110588565398517168003436142005710289798384891222994439759231024450116530238680448927803977629296574889440079207490641822611126429122125490726724962494577607873131423735691018130474049892620694566523809241557480524530746169339440110310026041948709236721968677763347083295048408853097189710857064520155942575196046779163810330501378846723113874304605989576320003100335343355335322845974312378968713183662549639248139897329463666248730449563651569394496028901796288881391192356362373271620338437292998160315126532025610937289231126909838822148608698920011353029904599600185283342574054128677161219994725875113258788414004431616072986342050388593324466905430492248790721173370638302698838745247400298307688896806899257839654366199130031385318060188164526736116905181671333976973887614709223009293306981364847931532879673726319989955231024213648407691453840568171803112838409149699231997039989016631275278858784889476045230580379206729497873144136693604841430296599119991787289146640984765777948912242505129059239913943130281578255851227629169939334021584267231413717431731641563001711194674537484457096233606694173426692329860645882859911704752291487392721889823292033242232889686298827139445164483857732959124833016693349612653272483315489603919651486521082293826937840787557460238620084732638015679125164290166459251005848030105382778737559293795903723198457890430614834741250509882843398798683886818820271040048894655829745741598900207524161514834726202823318807690651254813222735116794881157120259714470196519966770921950719134536929491211238235907262552637643395347368939490034087075882550886205548456410632242058875626436957215990575318138190368045844786610106118714364012711328511639861510736148886744125991959223896067634016047333602534221193732747022702801241525794385303822416640796365211159985220834445482917077901722281137041045874065418528926828894451648646918514222482367047592222684328493820454543443820427813508238387653065152334631557467536738171926434248452374332968185678286121139438222188301282214610007109132819054302484653441795837491810155851255090896710440455459236674143714789725805862380004007705412178407385455190562543762573831442067965437561670022211351773682998937267314728775845539971606619360609337702620437430505292993337239823109689800536388973729685374796587267563072573395822449296365444611780068247208178380955870211678335781200534178026022735983701647228773621657419564253912143793830033181617611509573660171088070941932236424528481055847046042101584720193432499703365919508186449206868588223109555215014650633778455240253940383637802507474471314662835854249918298169777646777610594124389711237221972161566533281394920610338865542128911663588969723357093866857450180468341328367597621282574739042061257222512758007017509268648421540759748910766321771449401490985031609930389788515916037842658848512456479938539604085730747961602196980654866856380963220365049978793828709013872911007224196509836172075478431576143793980646628827601324753367552983061464018867451223887600964084035223223745289409599800342803106896529416984395943478537471042330674993689955206554332555125878163479850710476659570062230962170729101585520474541599564814399881070370187517050536941582379976963955763711427987054997317944461424726096576829077356509388213695513181472241054041299827751604706636964734290994924653732583269281455234141823734095628385250290458028150276827472365743753760576803022620402537179716606845338679885353479110503166179529065193184194219478791090666912140182060199994344789866470419105963678251679856200022968479662936013661931279916458513262575076990484099565759555336286514615264906495899890145504805359083243499472330490111592554271088238862361367298270152051624961274978965731446803262718065090993493353774399372660866737295483230200575859736335790408809445223678861913643558422724610762316456253000357338564412676374072836178670054360560689333597044224027199703975089987893650900377781918274635471804774407915216977758244156237056497513426361871189563667206127050284434162836588045513768898082144310407759132805380464358434576922910573204337017146716110088239067829836599328572241290938696442724309631532548912216641966109521269367019916436957716540253558349193698940446077958517436884466142626467410358094498502992593201380868505588818788736980887699091707856902593823338505542965075936674336884628928194109105979963004743271304514212219472454192446642669842850138559797362723648280921329803776898701139057666040692269020254278095813839543929877243979898299980004750066815502781746829114951164594562917486616033251611688844969936499493410556059429102711236951802420807726001236600625420985075506518224872874734871615670325358810185592357950959305586501729290853534353700958524729069425795036136901070234709157229090245534937605330248296927716329352760824142293641730566461894491661856849284815312258814303677199517841142738308194070187169760723107946920664597773472884571905556177307571273141273757908276839130826513484214645912046663929955320997198590597941209218088555775059592193518141848739739671492412219233672178130485244310175458147889374681846932572358914233111651425760871451981361719817044496381622419573853316305211499169447022307899694186011048140554324413014480106589612193223696290216374688363873722203067622029627812836163151479360798961647826141741943696421803406219983160725401007197687281871032298937801641763895585072394109994206385768739197085598023446442374783745231648645688363003949397710098863728869739656299692314137392752047791204028505296503341641593940815873831721736689440496561679273005331959075494718117395647680574749872893815927939722543665917668855527527946540579884468135617065218625309652754204524853455952495516920439647303677036207955324462592247300099010784349321059891951741737641602827726150225986191213544417133813893117086549600255697899447289561674963854491777149760767237035772953836902082792631963411220790283955352277249308725642145360556915589071428490765855773609416171167889320941544923844964385027250758032050955247740263599344556146893641883171180151395777672287383917526509033158518249654703223810384155486998884965979804138029639037239335150187933723486700549745160725294063604518012901380005372285498322670037364185012300030319766384219193006980762377139689508961310474064404192130368990570901585043501924775097983000561801514968738566698286500601950264981839213363355115973703228857939436335479485463723455868557002525463926500170473749520579615271618939429962636955742591070301063354069996255302065012548901096657406424793301964327656433586760322964226764468099808068304156077323664246409720243902829165824315139324318224923367641010806652884445969390509143261270232533861482911309179689273727749036459647084170192126944897840334673369526102593442691436707294959712288749336932269075813204133127695622046670337602151901028846599059632024746448752215220891571906277560141210483340353569155860837308320668024877097715391740316732792386973922766468199601218869973197032328515002928457302576535163381844901947544637815226230902968384185240354407930066134475586194581847795925400447255750093077514637029569155296214636653044107277048938618866285001950636893211032495770805878350192471631491092353736424771595377051684655768421120829700808611633084545061258370793880427792350781650567050074870340629358882495699141887013449806069288561543920936917333239615633323812661219977351471432481191508814340074160317104683946332120096951191972241106651230766106337947599080996193509021719959784491309655965476128115118015992164270070217819438017619075872744844898530270486234280142843770773466017878848170411300599562680508651995598921622087408568989256956243294950991927094607379357289383967177467812008636557642982332511354330674318572673773236074721994292113533663747046428832563058000740364398430339480921670168795672528576996644167154627842753937488999968150575926399352595430302245126756317386160593328683107843329865209152415695751584206721303640989857947901548003256260744992879957660087694927531589697883932961374203226877099266633322002967409918418709321063597901086208500100490310767643834485548318076241853350068932612020594605737145055128252023847547219071026324910442487827392097790099029334073218441259195776308303413635528604882737854529118983967592782322271478202990242117545961471941172949142540489105964381223611963713761043630947948931705703788596383595932689844828031282645396993670889932551399602662686269649322252066820806005460316639266633068297299886566294735189489563309308365958376870253567588301188172402279496818167404134465391224854289416068888209607972110954033498395224104109356959353539467738956027759152261102994037286120225291762710506645678849166621888068788985658848893238545551250678859317116828663322540315260223668450413718698502346277897120266405847149472265269121557778641952167864938459173747461696920999005137594438163128582203287736140424641552199383564417970248206792267798044956540536708408766988132387548199347549809100431509364943212105633463283553958757078658530479528799575828161710476106043204060896823739681076791908280560287927432606411870692481028298060658129037476442997477750070039530075153389744381233754272167661681302327542218954697535104904542294518631624610395573846534421792090994716986638166852747353895408998012597078915246203365954346830603841336904147502165212430890808121749764252275868386752287620926293959135423125851520627821302166225908324534393789829933434786277098892063403330083979214312887711655154297495620785889827165642381433338417046522693262076855842106817204369319712057162685817592225101848372085023972171188902927337366402662296697975510523014348667755517127188665303384921226993203818766159803280345449755675228596681714138448568799096270396814999905556682205535200738796316648993927289087099817626310821717145349104455882850457292866595410386299651267135832324067113418519453846062337052333610346423652938520922825632303504981987115791582416911128020512553498241560515910225033116765517749367993177608962861708377065766255797715825722850168699207790302747225272038642989918144481538926565022160801524494791624223236284445273521778190138359816513697791606866655809882760229928768178134667675930948290755151773508895115555380259790210251902380431637085248226370250439753478803097563135793056244339629914589296061458889133950127856907805188959880770394773260399565787339949449588207954678736062711609544167843154695842311940366887165604527345620519089425146873751966932481074656074406337333724334512704950540628860012033681404907153525271966743117581688483792714134746725918584627150543128753624457019888814305420243793525757540962243707675512582894702636189392450445490615210958018421928935644558877643353185223379171229401276959142353439016765231828633869994771302208517919010741164250284950836231431877218518062523648387154384030016540293068791327729373125152968295863724544387509955866270390715205016817842509851616163008077432866817504996224331765232880955135024821569097814024367750064940122473504031767699645213083639973130505026411637822450761124088493665878025315341250415736094230504257783834784162401685274670500326810769656673685977412247225224039494283008317467445237069179080047989092735571366385770030648742899948661605956993002118950738417803997933913824352840692109706307595925064329277372830865880835177579895311971872380940423916424035929267239377347013400032440830864607629346130988918796724494354226685316408809646231143672118971382938972522252619703787236835151377653584573491322431696674443282227846356020351675643324850331937823405596080992605419231778074950413750213272055192514342837549696574784372514312008158042410670397849229396323077195181700119872033087778651728437576442342385791540921531903392863139062762343980248274443219955550117387248106922810559484417805709215290084608225765259928117361637821450281285172152973245914567439358950051550141534099269862477314970859832101050618607098180492003877395450287532942047063173615222639180609765523144394203633259599076093764204264956971223494572587576846130438581997578137217623017102589134199150973906611126841192829700397610121499307371006944402204557830440200984394422955945099709250439935940170797531048152814030146050469397318610959360358981273935623594097995430466519281192019051486978701205722366532534100243275280985779765418107200599922259305503456216512992230954485222163847067970084979400496877983811171300708556081984745841573960119389999079417350003899539670704217370527959374126105981128077195846776415529426603596126873856315498613234446712180473441817917470055677994463865383017107118827408284506617373557243292691900847357015953792728142486418844568396017831379585918835748045819687907631162091685474891240325768465939538862981885083690480140798424109879021360104627604133615759571473144006039122805393607551508549282345388092174694045612279274614800026268036264660063709821400942636962784967318095245272086925216655141668153714363310340275486480350212401121477349450489652780552124512958038504451922564008220556022145042080892484254429219855570916701196664547838596014565981844032721156249292593630022387460582287827104934055819841482073536670833716997529012428953982783118340181245596552290392902679504197734481606276479862054552928967088798725559537369455478598332416194319975677979270099042003233097286760129968322705845740901867999207754011981020718947292177496941461459735337162927424737239642749782696074077325654691050268896212416896175413035176606322625462185845819725604073877267253685035904556157556803091668436992871592084894358669334708867711665299342971073218093564397361948358128742467720341331821885720180342086263095451812806601825592982912140330947832890097112459072351774277789228910471157199156293571881096706755940754905376168154189342471250855914837232594253350740891868458958829485733350202581242823363458341974212616849651079322672665713435970312341960513089011918851010833934378977953266196320528484017178155844312081580163808805438027957995678732435000513005085340962886146288527915787000907671843944218277084545029015709328162553016212146332598427717619395653904404743510179787035932826339367980357935455297883475184519855323745971364356483318791023112860412143088543034104740799318327745052748950322613901160975041837916084339826412867935618114345208706836633062491658111526725326304462178715498475705444273244403996209239268823249987424437815607354536224203361297216427830186989548863767007903151937332068569488917511080069276843433716861801015031548849117442103488897695500740228096592804965460056610148359983377115035857017872599272739586370024587800062361587149934099468788914243373719289768873236387552420285510114469861539401674983491426801083913557053256322047105589999658445752217255429365676613363783586240071278860992204857311945699671536672739066218978405444378190900909074661647538614221054854284579424555674849332844289380811036215974256670953056323432830063868805963069972298495451348375781980425049987966021169646048553519665733182277912538607969664283135571527094480924290756322952640676661920708049557434494493164317495784365210822737345961949995208730336174978031601228126888450100762288195093280979491869329911150176835289786084546277613808262718650836921007019593394213170314677999495049771337475309800163527299823788052870604849397338751491193009462299753074473062892435476844289559393550613589681970829290299451416409787835997112572117626296424245259177627446588983720292558716171532367913837405412779739039958700760672851892201229619629038487223984578690873038950790158387840705358766996138086565929972288563558411532294424267377271590476263553831536869402872912332921036226905582129751705887790273724418607715985284874061817413190836587538477762721190394009607595996393532441274115740618375477457560896186350061933577453848416460467309400563506795979483546738657034851790800032383656673412212923391366059904045060868882087908262652538592030044614127708272210039909665131798186714340436098128389422808751404770596629271936793608708287956285497599099989718649796475763260004323242626602391999519462766972504315287820492018731644859377112094540148497677789229966113090806693153708823372271129850416287161301376910410518205746081105709533674671212633464482701670718274844649754286370288951112318236142992727720373797527091991259885926862910683582832052736578581124866392826112444491269979027657320259963584667080010979699794875317374668895181587960094465849079716391242357784158348408725373634495477529010774792468338289617702207923512532561484246180136899537283458255735240997390350424229844315301250520588830203173947034560887368718869683139978280663362513430535602505917025280755381182290416718557265648024588076035533878983800508598705347233966348898320464452455323970703272523727776476829924354055772222318318123558551274972124444905417219819946244730605541368225089172636577571099102016119699264483949581474987548820628177068301908606290092999264255985380452953540546284001989702897242763321719164179216499564093516862590858827019807764133814065343744813469188614288080271309854305526850537304804920468134972889810433402873210027442964903099939129308395240327483951046277432145269670978430010790827541284470936804092864949548338710612675979886250314783406374586136210835525850163194076291915440486758302833022657531552441377756447718187258638678480084246014064878011173614372248621293138367078857006963613608886714105124296215443865314880411812490588263129278623021452368199448076899739822737557162098484411951091790779710362185774130697454239972080062490169845119952662118806239878555350796088025016944627281349470202578148991136033529498622881040184778269057697787331258036553687844490426360194608660694403551529502392523109561626938650836630836193720921549644511818419634957696882097615888978584245526723517983794066218021922931253354104877837700959510677381626782449689839503192198819796584404356647948326165652817594873032328721269882754295081081337921618135885667837882543334043329728724106038039088730756306545862573487062735120852258659230088202366980619759186807003774992235857480004981840903791067659108367587788293207837936980950115592724631775928764316550855844523510052418924730876421859226352507698285354098937654353175320245510674955423990412021788216226035968031553017133843597578196018977533929731484985186389162168659022886969364986984245272322205575974476273204842002040570226258486801314422932542454554603975794693384431060132689185853118269015895333434280917675141440173886363974365946111683212803140404772810662185909074788212866828015684109799602047630809693855245936139159998158742159854208804217543130356661311619804192817383251355238619800053118293930828149596922854839040005554334496898470143012383091287918742950803437164751295981951221247210240335560079410340152727120304212420131663560115954907337374705701332488107826879473134435958094205847386269426952355581059200161812452295051669715458792533927630727817391081751948134895240107198959312770737869287445430738593894834562714242462711280653690794276145600058502481142491665855525447278523485784366787435396132873185398737476597500978755452313586455396303553810259970582393340490409046729880696597686447848161424537041457378876232845951965774406772420550744789451074654310018482745052813089369371756957986383671108913242281316910266715677073337276852172160645874036277975343995297284195213451917610409571504917430240925104040602679572826449321849646183203817128024167035491251980949917805310927860983363785102011344645106353219711962553206126197256850820797384259430103708060548387120833328374114424702179841987384876887032108315620925863907801377891929237339792212082865894551164975037473155451826805203777903398154381879395216524996137083180435274368659254661193280350385114822289717308479155639308136653533914863947149387545296400702300333789861056236874352269408803865372568526062506114830252413277377225970080913419578744375299635858759468190816997203065352308554031664632781475926065692503322460566256046142060178561202631827758312417157580400639262825865327858468548801009906258841148148709738775238156219212175538595904062159671655763647294797640409977215941928021254581972404345599479254841338191537093688820027547322140390251871474631558768796365159938884249428595168409491649809151722285369348822614407067220841019103946743220909353126027086918934956422686839663925746153175617666037194240660385356981019366205191158513957943458844563464898870132084602839930226465617522561628607719141200146205590383506082793842642922203343751028813894234491829992999051864395274409633539934713668618017372411340301592699952896857371600194601888159483530236654300375767647792625287463707051798628496391053361436985156991225419435229464702019804276706081663332985779642446320485835687827175711501506671921393444976275736503413936998701084756303163461498446804992143404933732143134665531841284752062615954092580159016202446742550143939376252168976940602175461372222334934573615934260258726557063999957316065623305420872081077634378823596870663995934259533433076295839453491825639896757404308471618367321830383785541493401084887646103790987801745973631384651663011386948728084973555639601973250032898142767405579234563086464044412515827113829196810331759453856892560867419474066910390010682762725545426950424416094169513308823707848462633865854560100411710677963359564234805247683887965061503340798971878667189013204606352154433710837552585153231368538423577137906209469610796814499054356960282323737738398240670250442862039672761167674099359750082151815191917523312842749578039992478978972994490000760951187279592182304910247647753737808352379897367584850325591324168910781431820730039087284719898061751050741851212091337247127503958689802261754231435719289623247008394493488861166491231512170977681300915754494377086348580125184320879898481013476763917818191163766811031959882721335807442582374804990320752601237880623308370995322211452458404217015567957584332862193127051398504851199804181104002808295070042075461430253062544618888508541300928528333232747284822537481414851177120418122381782973981740154617911441458567648678510998048629912413798441715056172100485170843240796812177432854856674643952119332183599028037799723412777973545085582753022567054076665497067851245585691037373035382521160569881304272538135183384867251296230430923627269572880122851620308382501676225561757686579169362274886392940358887027098390112743504618574773092476209968519536250925598159616778681641272644599287808892319346741313193555271427855907370264618059422287684187695056028144684519146762970672787932966709536737529163697824780474187490472051352602017656970286905661073284361183661555311929483145873327378767015458317278653056265633625521453872893058106445290372059878068519774923913469733106760819158207920901711930845314036718631233484929824865758849887058010016449236956200123544015731157891139694805103215348545896698325523909926589452825772539152699571627778975201245976178376421906670252961863616483580997458430314533745820793541617056057944736043222274753447308052208370174279160122701194012387794218302826697629432601958578372739221819665131399302708698491460162838098417289060678146908685626656125176221829574601341923161335208930119977315962632668423325971646992856781390320215044222607013138810671620732933038393776131400840162408400825317186566206790486936484050657944895054303584367754390861010478740594028827032229175421894555144438236400916602587638216609175869515123695872177828162976604516155688085716448188303080002317031658260205673735028300707046818766943598452974285562703537137108974534331771558359170399984028827110213342554490017027302718252368228569043655955378730672981868144272443369397185733020889581404532922183442034850806943863290786223343670352933158179877941320610449455268517311055775536945552216008148272690293021550882406312052823513526475673913272844525472825874211891838929683891034720193862325546563488278954554250309211556918630569649839207263063664352773416672148079004353423877473055916210572262822551811448067173836373866165659974857345996946787756286516943359477926752547204932618915217239057283273590585870947025881523847282010745655911740718771836305830924893690040908649130551782898489602909684154877468050997449076123676211082447865822230789710912287032358739271003444782221805882462622378084341368954656843557101616363421105099051936549909511876939923985079611014305287130573220424868644710422468194831604364022471999349398463305268168180782370921038751254902299981739924805329132718617413031379446978215619550660701941380591717629171249400056010092219119783764120075427697087839547033749964261382516371118750645300601348908676026962055740500539268679852052575627520677748666601178684551024895657304392444714824385905384397498419328401499592019338894950671432371738969899811754431473003532019255110070801253064190234819719400705525802519518487072366678525202971301547505692894817102236378322597324242320371665304268613035518985272355772415839201091771738325751770026822042236500003883754952387819814543328304976784220890182557253096369547719310208656670691525343473203135818193636736112638261523654507770436113372992718204937170082044772121816956563412669847292073734748301440696330867432981668163830150495621812046850015436689123487839678486255729072527430692006101821576497732664559842629959822118265776817593514520908091451512849435265869093120320714834118261251407917219037824182424807746108498476399655268250219798430909801624862869210137567560360296591182921651824460353736077151134037671444536456512238158981546490906136204068798403672667081256269725951620790184080549727788675202212435056973191445539607722383555189746024563514093407257707992353658041766678791153052382823459296292778815033076640533084550314539982566068088342311241621896645437015132022516296570263654374783697796164415334829835294206642661545642058327910322263115224826870426019068802485181934403634526588817768368454761214831980310981846082051373159427258616445248004053929421594036590071783442782957417731294261555942589186580562540821898111650835653525042998754318910570321443739449873016929271498049052800479845067607195778164350253891945718188028498327978830335544094497111951057768768972322162990333554066857121050497558011473621677454840265985253635652459367167704450371881047672618342615936094954141354717848251801853214999762392343002436548830115192211649909423481143799749313851264828973145967822847976820871027472114049200838634515064276837020735435629016696003764954377644344372603551334725575586837281152844564282198448527149701843372783066398595256601688985200786016110019201594121568379468073705803149459204766179615314551664170407783778869951692820880175956209357795239442019737803075848533865777035074742568966816352443292581372010245855930845385780924059961247982340295726545202806425468311428561896167036735079471033950676078208631515078318547248166832076244477912894661861365178640980804261936738924203213723508342600615956051348033812007064079160464090503503445685257870488516051012655809760003436913397315290969126090692716013026463236242661456508349202115251230401321528008548981867514705437783903419925611420377364752214912647670122803886583523897767694372246494752233900813451026653840615797054553822857808534877195780677810582576893588362297439800224374852589097909934546734082452631107635065971652492594946833761684270681091314417496985324501584532357595922144916893434635566372519121136230466966841329950183413154744893112188949474372985008376898225133510708888678211138791314062335071757224369482988600527414148315396301642314248059414443346074253739096628654376529146618292253517418569237708269713538592202662325088294604325289902895508420218234254597668259674995394658393428715966113994777563132701015995379828606897375712970270615666773973374815358771628171532032842310270504285175463483450742038022127308046773322422417566459242109018102856755642206081295347182494826422133734264261504683176733433362038697184257754668368293344142003432648964167176443999465092717223724008086456484117538004373962201461229526523353630943477938571156519509600730150499654665866142111168039380619024881361224660632063515620700859310269698521955954158876634971964760744280548044388901594648580240525740431997759357416868130428130960832787843025612620971522620780175352122688258893600796756128374216349419162755676802664376967374748264940399895380390730292500060939671272072758489809991936253787455140662920105803948541526919770835653014035494809417897371128045490174117919130208299396495868570406073516680807208067040452122495036527683478765445865247995999387886957968577118830733696590868926856128794190769065502062646208432307849535206752931063156573997529265740394719134342698253305603108658351273744726178994356017548942566935207374686234550797592627847854163227493612994162835489412663642842984512544898679588272109121836850501695377482929916769825523019886456984478278236474418836410111884331089477514726147647058995384732296391748657017727203480755962234400794557778291326446896663905339075924442774179835708597414611461910261627348637338129973023107983646979593917794818348145586669661991827283929866572145050530830357724465166755852682900449235211496990757830347616518274007557165471125248410353898498990115427907931993309153720673328746226565897066216383288622253087236506984105918070526154042539887418969542729896992455125228342775094835414741408414261546985628870177747366113322838967513553394192923756042209665140601766425802519662305292351159863704106817589537958942393719376259624833335777053927397219086050271608484250139905674369791844770208670812384064676486766794943552571859919534551456890484433309611099658703121541567463690389845772367725007077167974755942835928568967572598793364035992119173594327729734951752780623413527293164107671003373621837421619303322186088342934437420543283110982281806858476121356798091676580351741384877594761974186250001887480428856832150865355641602840942290576975464146975639803143349893914926544794887416036095088444722489153085849725471701372225808375179583064947893912175087851808105186971972219160696275414667215483715301390424149837148066469779397626829398559381009701884033381362953917262492228514161146668548277525885655971475260259627128156072954118362288761996303179724376433427200833753580943839640095836511749188146343442098503828709049694189746176774615998160707899238250764269798499116232562662694975175738335112559449318399942432425778041439196917153059920746991460946505536447302582290065529474655553044467385608162056035579738698979782554282709519006540532006895147686813543503119312419272369522371378481772960488472565741387795560568624975442634748905282849511030645227617264411389934452660948011106773019867389165726307025426044339285680589735222934409822115183142297493627915598695216240188547836215516119730662648421906625730855462437524068380243959613650004820818700813346863763685561576744333102005155473677158122026149935749788666581433063594138317886981805284776384194621634646338474086374707091024338000323690780165239923771982629716680653985335310073096148110014174278216649020158087376794170017756517418528029853158815047403284971695841158369927176699890323916460216326520127810828176631124059774950529810911528286196220391572469321179895759635221064760726078728895231074245930739285547341488895184713259942044491321399071668085870261200503381234594484955618680508448366378183905165628984244259268014535829604286504428125257471406682506423272417879679454107660467791022663650214137582701732013766944113876471637972783362048225109310306999815569592296821432060523380664407949423196648567362630270239504763616172876339899219186192614627004795100802253653721276183096928894527441521059338887808968257550856813132117464423153592890159536782578490047048838206224369460792942223535973460188176978111690114650565552265910826888932404250786518770377011354084170643285791997435291913308492240591283833348076482091750016764586891044036159064036109433023213512874202663231418847677982797036985655195722918044795288252202890941685144282329181403847551816713073751232495766467056767684702075059510665544455970851749407206304862835034140834889877816257281076512787389060694943665686695176494867829057517817286646142775596998727302728992990824052424168186077547896491032530055152457269523705588396693482345229863845682537154862876949246123337924490713312566912733705835121051819382864283088038919752130973332875529536914802777809532852466376971927936067702028812762089028160239088502250426910690168199615070857501570260719031052822883295073132863939574185065150092737290054272077634563426403144204510952489453517231625369668143563580972641076661134508521275686804433901050597882539180588094663692884676635685373864914975611938556275199350166208744985457299826836030064371539687723297522557707641144700883893904055350266230035478230033152368525600869625472073214288269949787184026308080964109110930837586680609566969195142157272812024960562044198727516480784083729919181500634799227152284601651022312557489184091083130615759946881057072210297610198422622209549304044994233167112515866190843377733395817899412689291144931367780531860608173712676928365520199794014283229907514787267522585899684774959074213232585078633403959609604070967055127188136051175837395246023173542643742227846668415085472614877461416563515676354247091694017516561074417733836070468481192414108142690884722729758812784043170390488937605430862746177694691442472335891101800870538700856189459167353926995615006039785368595281021529329704906198509376471551059352421364304320641096941332783287359519906856598602634229355068468666278856790779447001693677381749417727828648169614241614155098524704026408865963851181173611779828475519556984770087480776451962366129729232232385069857535055883432923628160131648710948249500953057216601182843979581390949456122272698158055258493853783611139434939592964706996616383774027723843821140809830540871447847059207813563793380137848058861208674740346462501600704467102137715724833616143898092285656645505848975541566491975588109003621733601397027437158240480361715839123997965472749040893144466322752040777099647328070533243314316396997925680158327452869303499233891874615034061580649095968481505521577238734534533213780332088208478382837872142160944059841367013866368148327673668425795082023879715517918651791997018232057296858017547619469180609152699487604351721168339337127870417880245363580295682403431278175204859054711984490133325399719649820703413143196978144972982642309908786473027766688776031482866281567464706352869523037997755850042039754486511230860234686843772490819304792910571605233417698269882157230684244689620747599258281271231929106367148527386719142539853056562596208419813793747239612441137409449574971676667347964239490412272756920057797327687027173189350367819812180630907727206583039464284521350957966355188762047906380156768491371663270433021240243565323286744769416223323079936397908204857347847454012409804199551543909823011860391927588714015751296523583915945543032639260099995722901270615008799487515973838308636243171173272788221287233096222352409327503613385881574179071009119985794906676175216803942143234564439084165613391405002650184698260127872860736041679084766785257575297090330785196161236134921885872802137974870330981182005095117927283207060932609925278907272052044278400229472151316720208882035114809436233005392364381948908097696130674023201337674208412550402869630735116368293892720515646779559331058847766968624867971562699195217229150116637914089379127099062917519287610134892353359406513622586841254108088237327034579798193746643277328623187186254155623833960217351411923991183636660941862609439921536751179282603031158742339539816353026827080180566535439790765220521452213997543786932403381066310815052151193479312646961876413493378965077229790702042861098490892924078109262238813939859679764472118817550450416302573098159302549757183526673143166505209775188924897812830459312876516462267121298466296380019319209238012462758782282143568227177077651410215454275750332751369087540518936534220325266420633176759318169985921289187969404672531768927385929215175950402075347181218533343409604470163325225072791447523807140964367872996163202703235565042308216620368238073681088013846928047554394391062995865948412839180244833292423244291456110449748493777569645646543412961831999478868022223368873904164402189421331803925324403236675393445430144767456204230241348090365126275619460717633062512713410753999098579176219649339369567022338211934351094151338449842541811158142417936757976711588372864184150336717317347247298942572683323822190033178085436499483805130007092920066928020110913040698740397963647824718196727943843111619399089075364277549891990525814459247926357205745675658880589435657187611209665797096046496441488141257186720412645662084257360254035173461592888756235233578769214757864206866574954856127026800061191050581964044710593292812899764397384164361321606334541462803912710393231331019745284529393174155950479697370454988177309115839203085944197916431279456834518694229790396871759900119558111355474725731376397061605113251937980664146281988686863208950122689870802347107994587402827930340488086005454340433835847248646384100886069115759703129182681531316331820258054998888622420136494383615450593565208383116133161980641146121681742790344676089793954167799929821398699958668134158029156041376538502587572544340755832752535926369409400540931705653589564738419822185087891295379157042154389133482329271398287687420020433115428603800280336969453777019452012541254411601196881930416558179931384973008995719756306586357420958504843259167042667957584361610061059696343011983836210738750396937130438158480843663923192172808327492911438731921877377033642132801784378620168016763923547416234503768606771343488911815994653070764744455862123497184396742252915409819395137450837206971386283616742555807515368936258483749617837227636526820867766669993188648384595806252775731212711868040659600942575615087525741117113006878365396832199337761173436673524795222358355747533854251439305441503330507421766762127994968145189878575620565452257454818057585878302865761023639082809152741271806320089366904141055012835954795149003097791548136541223148067810579687900351300982151030668420880060225645501960960281432448460904357844597412952277813302067329714858508624834421891830000875151145217169664931774832437727152654257849026896044485125029024033713664422255405774485617508263493800637165543248827687511960702377817987470367218114344937369937938614174903643739759573148551385344835370147792386961760594211067498768863108374160600174826465332912614378650255403399858811933852338480033839861910881259680972586613010403999660836501624490800534004477935337384863967311725258278367458325810361032182332382369934128667703938443714973557265304031804725025060390291619928197561992888699223369685091503153303665437795234506846039438964867754541902583323500094469666186965216233804460598444013949453959317028236402798896265377420523208553723375329812200371729164666391067605293212096343844919595811782396672897460641148369451052115506671661846325768000624195122863019325023599932891895369256981608659016171296318025570931693224973269276412899070029140944308297129786251023191937689085073507911604337809577306568594831534567886824051646476789507277641948291563590145552762340302397416661669433722252732408398566934353837760664790443618556793519988009424739707357252579346892554523672523015184602431202594883725685541436231420059118936492720309346465171873018702360716471503251120240273320680168260835826872281487916400524888790815460637829369810356741130658769947459011656003117456004157379961120362576760161725414963115190270519779804922148046740705367278434368226384038429745302570992861762784411974769131956920283221099165711110368202394690875413826166363221903557799437747429180984927114085332285415881151272674903185272782077324750767745744438820714962498600031464489594896274481178691360453037667234697807659652837641281642751038274104101682876767837150111984070775122542289712130360415172988964588019788214367112363618817400218077292126310538585827258962276229188020168544714546687846462773355212852959155648098063502991874477808640237058493932913242771151236146391824928887186441799925871561695812835827625341282459344330029788736945216554276427320167215961231481820871526731010325465326630401645603464341229341497756103961418006080435354816934229375156711950808966854739867955489419860419443707350481340210948892741832088506174805036216933156370569879680217474006672807486920617306232115358690043905976765984096335934256689119513454112677408359207270941323798983156437273506071502958774558415158691508970702162879757633891865944932204845216962510704858432121155076300250378230723856123050266438852216659866874398354637866270164377253655988203429916007934830901554502445012336326260255213847244219320533183607729238728920970300879456163102640028954916588549442367143490511506994826050353726770405521971517596701780151916883722812696123225916380632595280744458511297527656694278815887747592278277379334883723569611501511006566535618496495210870719568595828630846927903252689821996720756808779454534467871289295152947094305874786275160860660235222748575072315759086238477843701964729148811152023114259680737216763142382492713977978154693505879161080636580316386572443582328113481949461441203527962620537417364244081350482624785670649569822046476236758783226989581086090501676910432708586582119579762896131022331084039689518278752136888691560203330490827425774216493242816120343180075738535212020007272055633106169791778567012865564593018536438633865084772399546936609302634229597433755752331169263291862768481188890348086410485592065422419110352632987089548070344070584567613250135895052214230913957932709281821401008743413264364160981480581997007976994667778503666940488856947500736735608536466381582637175782512688627476723227438615393839206656639720844186820576105591536598093944101129490790671465073140559568864297822980436352459374203472369215542724296279802710889271046912134933488416473781161058268937102012831947814616794458562814506806080083397036528197494915680343882855681728026791568100756026485785212330998677237541515996941995168918424461729069376807081319591971219451819858611438247864650902236627271630946458392830364109182612130585656531343646157663758876300923311197510899477191719240207649114418832715460745776495285682614393273662983866661043612488057789861453760223548733252700668553662253433735279869579165911929560805820412109706778377838061597367201500730295483163000522222410200982998681611709206501065821176393688731996855854834415041552231201322084196441114049458612755272393052268117741094175702695420798531425442241205004113415530193673398224307566294560645337643203091133380151526814735930290969911820212384838770004694249296510499286504820595312609384159789409004690905652699091350597416195081155257229677710559250988349251608988593193838376999688773063638419302324491939226896645828338918599715500136797695038873808215649185516224136131811905639746494904689251926606517323249011619983097403482926587810478671379573110151755726306125289474294827694418966824273498155195061422894323480437742367794100562037339393118333208303457981549667073603060360600054236130822676591912524260130215874890118176180021494168899829747532028338407579854074940703298414529401412480334443140991743398563018203433062469134436027068089216331251616072854476532775793093085337628960631987336779003815547137693256472695674160049600202659587761431387535064504279307254340359263502332819103335388366178504528873819130672864723109870494425835697097898390803241755676765948445679350980169039759069979207949439956219484180365050461215784279180921343651874493730069576750339726015640995486351204375648856209410115843028505564489000675258124513677855737570389783410810500844115999195212835760215913411994254404404822279130740631039866210424816150568219382450166182535801404963241909780941178915534530694438238430829969085363988669330088430682481474567808948869518867315388935398475913077270432109935674361711086622021917235668883877861648567214127164928188330523193044871210986142819877834166717268584682098034135344024954196511403550814194971085457569897565057903267761308256649312413230452501604821077155038970438054859940658474229121098599949529231844101777398852742763043592251604800829757310664459220353127275598253526891749294200122330605430006797725431465455998108410432684883340849206549889380043322719371374673011434493733959752694518344905724798278353795502985656816097192923435323222937146014792634685467350847930177899339400600841569848678769791247152513088601495301293825785605022783852257867594793745649346721519514946580289825202108617514716402067284724011720341884340298716490377456820064500343940640651061062336198101893744151554790550929294007545024890194722386382356496868104391142023562058097016436333343619299515544615049524771032163511352158666425935867602168998632028690757636117710821040433100269240033340807462396606694374507949539193955074946161217571887631521138055496822277023561305183320908266645467962746552089847641170322368437027436931602507509632018320241546894585306288048423515774306727201747727490878529080880277354043661485538263164858412504132514832222674072432633900580098564364045872332545485717579317717220424423115438704878707239210858008529457773123770968431561507910553170627472208279922396721960672372407927372710628392556473700164871574698129041578407471072506883499542305630101892761255511368746683786918662684445888335738787569705313099381178530647331762251598129538508223482107726847884480615786374133968633661568473922963298053889457349310809385558207009536872026079181310678576736990800392405601781206817089363253562112066752110614613884845443608176171720967228258810176895548193199063565888507126559735084537697947089188339222903643990663125908296556229914828302629923972877641817709266434676827941937209327105295252813846753420469950798165559260031706214648527133594648560849719879767436978424993431352413304353017449815378761739120631472283318279246271819255503486426602846001311324307916336792001592154447379049261567667455630736489940204392789381956876394698151417577784504218259393091517137316970008300656602867377697957919657596972584140456808515135662616714041256906745652522328223884526712693020205325761515275181147217969006623700100621073453934610628943731067065859098921357139550677166868539048947452606259993501201413079925890533421854314002251200424831969635416832340182485321641406779684294917442845634763353464623988011161384922806657411096732729893583455184993140386701235345540531596792632763633129923458962973512892898785588864216724058398619446836364999068726258777316343358892295800009685487724124536878673093464103418501839471414945959711478263795580437890585690815885241840160777559581164663942778628851041305426686943989486280535903649313064952697195066587758445602432970642049034677442313270727294929736251958892790034861988024200419918657160702613850320101509003156651413973672812210486602613369987508123366702422913442991463640838271537175322867956535501962388430173004289262232143155112316757332791245525676693614002019772954673631721395366193283409177188765344906859921810343734472041333006619882380825055639774135460531699217748139623927671666316702880138747098442124438464788797909895140506865109226139194833731439621306514935621082758458279337012595755162643035404873648351005777836191040957687095682107687582382569895373692752941627895869510543900781908117602920232775847798724560683982511478348030754488821347827329508155613121515613035734290580198073201208815477322340658973553309992793359567592505687156056362642438834124625870504935896373683786890023437012092735432035224246305598341985307160224935391524669981348422991352393212319356824084312190383614593556578299601500462550859101614453542784054376908068671775319096525610406201468959082955023840749300975688914362593747882819575812057881391432028589575179459055665559707193062710385153840281232096866452295291923759195025483403779016205316179315123938358896487899050281169653521702418012861696974174100172774173738998475722644897630722425881944115916169717407154339980216692784391429202730668822014957353329741522017071867884516956480620127534448522278951730582066304911885088395490246128083175902451124105173842388102714672648619250248912677309282391787959928007891360065303954559715944438467278215934763146729082478297216484154314094083389762684455360357832952510572402278755876074197568023844555442192541237478979539642812839568233744497100187091198489745357351588609521184029227396158948020388340885776450415805997971250731006181221662915758320782492940194030220815977782208141316024435890590075009059088394616492908992055566335174273281711938107520717847201199180847809731093206928159902903622868784391637859090466542865717493044583997390667656720219114098028926030641069838619794934204745848785038241650714682984593594421371840423888155844416784839539334878946495085182917261612270751847198752174497213834558459265848421570960880369509191932156217173503891907072751344992389985950991174355683951268028446333660470355163377386829224306585923630208957937297931799501391604615198835892229314366420970226767430001176796197491260329222273466617081195965667606548930858275904117942870206385615438272580988856568863821220262606954299278111167365168274056024723762981784115667975430820780801450112451895746903177044148388889253598686933527425695486240161836914617335624529516534477206278514603012352833817756428744331838801868506607394614891667960797591417315232551632771296089771278310185839252729900103515279325103358997120662245001421249602446226872780047170117118943109596722549445672437274752503621885868329491801921953604131350151270681958038088946411195187463947331899101538915073028163426724978718553444564650009830215505067469784136114616965278389977154729744207180016959996380745497459472860507904737498354923165298962047061168394742506373594878256688651043090620360786526824318991413010097404557309351161642233585147292259950909365612481082806343374001326491198323454021855495763760324386486159950682757010883547322636060990007898682276750312107930779401941141922128482031249972605895573022456679775044048910789143124388607003462921578612399025842283780356317844796798778161732103221704490998799282332390113837380912657473365863145553853239251539113533043641601061148812831558958189988259938182464092428680448024529497606318099117636707049562565431565482680924976242811129946173550651729101927989472669472250225961733891443833850223152774539341833037009847833226360503593724850886886998531772793311118644242459760068695185627343768890285318340961602840504995716139073653436963517412607897703036635734882486628065833891281269415202285955813074818046177995260721405566137901638307949809288643481964645486208782095949451752343356432334249106040838543525750611693250453828958896358949734063360358588456102875584951670914270062228111682703659981050214201351216058230994205635053340839720226548692972192976352375449661769809544935992142837411040110286055496779021065214065308399271357889000807267280836596658457384827053609832216669438186316990155750261425985070429366629692988603130550669699911756775305574137645649055586675550021429390914974973140765157036849025112590076977121578494953060881258237595848368529649634231776325594541186722981451530102582534553593407681541786277104947490173211740385507791183983672344079417550215232201077055173053431449692638824871533337880154911351303163190961530201672118352298942545824570573615941992979717809418951273802535778648105165399879224286115352736563236995861091874321370201425303883715900062941985197752898893433741365829351459635174092486362385312037243550694827856681260066071308433169091846315762745494091160359924280576181217188926799242260861931148150933338286763662459977319410146331483795032154631577626275248315338135837034745687605070799613578766470540818149257054973597038815351917029453412335762604219038058517456289464011814105477629050143524942843594174802253139618625980207814370059694631047202418183991997834938721153305783221563614256699161445551452716007463504761051273600812285200578398812088539579639792640480082102987303508991142621858962846765947963982096850594243086001777262107074201614472371390266304620323737873557520887602808028337758575409061694630806869606311402570048859655122945743045652906274065318854430775333846726455650899675857745401632105560592333818079021122429425143789286646755910642587857278376298388920500321287728091800864545631791951739140865847411853039743466115420740953755837503838483922328416000333875650562738127939707765937178710878607010544509846193928100048130110607775413915787330015959173498054625656968534535892074381874700357980186857900415988409880508018508024707835717839215911257297890942427661066045111409892504804389273925929408824816798166917116234060121334419923709423729039281532141123439487553855096873729754357966603354978701491181364877984232663893086038346641277814942137611197130769214376243309589563408994831333706912309170561032180932255341534660895426188024889354881333990356408167371954516435400913112008479414130077309406505247429242300884460944504906368256630966370172729494191019303658871354062394042760263829657881818653834592985403276384452883909671350460310261295133451543910104317770034656199870701985943060648045315948467392287072102771532257168460298344642640132080141206004047568684631378916107361638994616288040019678666589674611036053376723946870095577556623678928568193628784732090341160092961352585581132144035535243360916932049608906888481214917192432038378544629471701111897558791003336696206376657314817542970705158450780550296920989955623533744360898015731981121452626443416687322376680221921186957688533717561812096910256534557503362435661148827774389893507451476530545505823615724757082566058818500934137167370367556858141103795651025002673312134841150816634427010689802851708592996849720721422266665205955273265511197059843763615083861616234970438584284861100233015892184213188098756597198675137418322791209404254047828546650035894443243367926004301860305807630209483802400673364176193729577349396562236780535105296290766025865197339917902744429637569591070232989300381842058230399610692032589358157451695260150578797878090962580721913357892413572484658921426090383858969394810680195792166796160039661430264716626556775663766239975150405610397110324021287968480707827372644377834014261364423182287270972615383475136878156229230550294524408953818328259750402756121913944451073178350917700315681398110576110028951127426627903718834416117785515909237800436324557900312365545746806277135774072269538339441099135194799876560676133227498051067282834666145711615661368608067984652333341531411273063787743364781812259128974610303141197873007745842458494414626990432317473181643404532964664043939189604204277705832314985355906464559769869802012498652327000984761653689754940403324713297565467900631301998490349370130511694159207168138751158655978300159112629865556535591926830505016973590038699690307065967929698535364499873595781870555060938155949668960462805064855807098007383647859959746450567425556566937561992287039784900380976534729015098513413348346167476695536083804594128419256712734563550386059271029646866765518183605259364264613105629439856531540360944541037113148187297167247841396926937098683123784649262749122379932618205546448139436803444419187691778036804012985269417863183864231732513604734545242836151832192520651636049707239447714277471342081253642869952933748362059900712677198174592015544883228125384843562934003034321892244126243925237708810150484992358069219936948868791608602701549953062634278249356249349563798868477465927719848574175900482320711549221724599932519476197351571648257003915498944097798322544874489705783629096475543013966631970761487430104230726675063949742697863341343562038106850447142909707685473148748907839251313177438544730005301937065318197537993854577356624802654606603074975874253863329699464609946153494819175207829181044241638650566426662947920000323356397649590394624229653295532103530160206660631210663864762713645178238478628097281617994845914719184776793246695279163239029155751335229976981128394346252424645492911112258890474760043767507297150736777243829087244236089226813892795512322133880701994061025636224541778678545339050306278668585385596757823938374686573469782401546412186491235656498646929716276084234840198502832269122526205079297167599487725809757242075450869203028782098871397492678874987980080545771821406028984529213343720006581463685667219908693238730123417410092635775473553842465198008056920377504593870168695515486286494110389201576775586899169820357827511150283465868422817452160189993270804510984382725458140383971070539373826185737847470256165743939649796660048457279755956662010514028873314455902564427731485952575448702172843584373060923465624835347153141809906562379177012484943369413713722463423242304229405687873633864703763526654854475784792018903478431297611860362867413868704152627679451432227169303289856676209014289172713904381160191669215280695751503891425610823834113230416775753792652608954058590977872289553449497204079829485745199148050902386996141377212416297972065855604386744484060204580836419538327299564950745035613183567943971013914624001634389068271994162506022639375376091950011057865604171102035349143519923507996015732176653667281713969643751026108193388503640909576195757418578359360858679944101150981178747419747930334087801206440592381546813560503297873232534153329560418585368840289080235272340059801222623240772511714349543675239990134424888388352826826042217452865436544115271579575562198596522099530910528651090758990594256982794805283939291782939929780297171801851211461716346663509420720764905007985031042894593636526197863444106612608869445557512322161824842835844008592606762125002496117419498582696725089837936060246356305198390601606976124015581103737739440924279852543109306876920628759738779810154362406714638361642847397517495383565163343336274511390020026590223191197932398479752591069774012267369272091276082536336897137050163191533650884725436677824311898131033275796226197366995961657501088430997406057705862481511930647098701754547815361881159171502211830019876933719606704110255722721007903500689550056010060283232986986958604319643438613397892358296362817360150054012492062065848313898205860544689574501835915497368408794695525173092823246720367659009263184341477292754630577803081372539613181256335969650752547290066669291576573043340154971396767983037872498265871202949958192329269200728803583961625972381943269857690050653553146822021315141190850267373108483460611704527454074296367595483681812702572447947689402560397871817036277285481335503978714523401571973832297848872027361501047332130642220083362811608207730310564597609569940392903190066417307348387652822310006691427949590610171050368971571411690855373355663570907717351121369165315325836182868995124989821987271216017695164189619221817397622449808880534210422385551307565680914432093344012847082274992041229604797132008469863065718840957339821009243237795919708949650371948455943990774579656795048645854982624346068698897615553045293235536440170063721943885339548482237574190664200096593216238878968754910400166852507136688689939695171582005037392486041874474559679328683935357800282702082352554786592919942916092970192677524442266040187539754047964453031640391356477734946265965342057219295878803421144975152013411814349992199631350302167091004095995489520915883740439236749879198287174690738209990744745136431654515213298300513403459265213435086944053814355075845442256702003903927334874578999091221646137551806251201555124050752871884343003980312062299611067559520578063639994448663856514587280389487894320044152561265421624816921323734864377469307009705218913625166411099659842354259126671520805109358567647923513994970162483278479590064646792659223048638812313418975600458935040614716527541862518584837099764301135443924763101231947892176532711996678285044537827614531314273027709845065236051836394402881394222171889801370919264082165630149954502497381503442044955930373795186281785083774131323844238313136953175504642388991736180107464397359084494753704203773012288843619246191293876211514619275873916555156242245798746855723603213437192253514346586903133475382175551812059154220116664048736615731243590674426173302881193277823979630411800078052494805464801933023667915411997238404079714235022981566609541730224854211268555778520189040416187629824910527032825903274844759282693941320212342333739438507112132057642552185657718201157960403031085889459071177483211806818113969394053187745820261484306724337303059629806494684319542786273652187492235690520490675903758504066511267158416422362075874229787754593025442643233000328128931594711291290050857999601511346692207960759483114804934381153427585898738834181517209178157917906423711086743208975613264405452144489020569889458731515869736515092424119797533248262334926112564905035001419621127837529825290841800236118590431538117553681219703341887661375924821424576144296343085926355757980018990983477581053294783705830858771157689448392006603787265176112411843659990566750840056237186282301220813808824194972585336077907520407638108615691681704306168633271002815834083557958988638314101001622926413840552463962231951643873347126017922510632324831353191887279548706722792608487215731115628565764552891713025169991660859794165286533540664856971547899813102777026349582245137677118190911388593508085636650808601410670881474743572868102851331334680875403548076166354243149735429867118235343454134912568395615720003710363637359992422057317186128376212561897309551160751549990451193542379612245959382135719098788063530426893293454623000556645412202231648485067261095457199213863802851926346004827966294183241536734821661310135629977723463100336724881938287780394746680461285923944978315133369208306094287001363352360953415276839918873519627261429224818895157234658801474283466118628477134699719377825024468765609488338284772076202853971607067741996146275371122108244979014194498989836346375846551442349494473944585744053615823816548933266239388152191101075537481955770346945229213316103856302607371530781386398453508687745652496244864403604917295595194020580352046966270649454852561375875172737604905093717180641305093728902631106582724557122585011123018360165785162882564214650051688252644734836836100272379279088479653642065091466864447443500729611278012692946358971185988410522684315531525126962801858518315273453911126076826388671295107874134210121511112271707511051189634407125756703107669161675741414729571603268822311786046066272010445757173833001594960115592404232177835113413513689775831729229916408562488607351358033901808636898652867954021321729335683344082230037877537560752950696163171057654336750928343430049546786507672133877725024436470639982153863882245325129295693034352173650594855118065655062544327511755639668073367889706533253437326499233352298776595833602919713083761659403229197157040914552883064308084734419019797226311935126965750077329068721332476403311437497537697479884458279072206097074475879408889923555486054299735629487419891522503834091445441143830436154634202968810093115309178446562367296920169655693532121401122784555694893052866025055574541085669479597587924027274884113249311679348874353445668017229250287631804607445002411298932650837412185803190764509632398813386294580435761135290509104852486386669353290646466697345891648856586523548606080778611669088948343363617609890861881299098718558766563245670353673709619923277516365123297794615029874928607089179119260576557009741554474259630906437055368726624092831765004462449716194662710293283308052897368962103853284595442085253982775496309292465690447302090577906671162276685677368687564594800688454666469368003495926141073513304646208981152223875715316861225651080218361902427851378018856271285106720565928926320318683054689594986214307716803019310640237107505870204835433314019162532288701829923978937925169993207537840131337650082349333128150696256084491434122278854318258125327179121489275253920024567738814586835936195605133493396348711190746164321274820769230551444220701608603402193931584045926203928324531576512250445811041473922534621586271788418949802269143357976301382561040745351051896982769838562272623831892977985588419887727396157814316949777977092950467065380685197798094064929328401649320905181310238904757407815781004241948831346796272719252761674847917220576098869453168796390232901802940712612023651083625520477818191795336375967633499239255277404930197704027427077039864818769818171079708428785109188097451469204692612643315788790438970943733374948517660340623151713490135285120338024749894366235928957185226876604256587326578043534299577643023722618693435133265911331119040631722683008960819392729912892759411838900019436795760927770415927750753452039094936164757100780845084290812338146997732303476813658124278060485925575806888582598834698635630270754253509690997619806927012584526105576351533866257883206835570769430596540962674940671554760019506732104695581834517059719488415436891840765603878169411046378661665226305106904410392241626018465677941504789018998351947892005264462748118702759234716549677489463800959981675845036708984157666840576764831814997544717355053992345022936402619445879822812272248778454213091466204392475456941630998314549361823832801176626916353011513350473967938456799244402893174884915126196033433810488308795013972271259265660071790440261235202979784441524651599349982629490054585760179019546551793168436505636686657031085868643053707875612822474719184090907319718525520323658474020420805005203394036232300532036042123680924520003922002163187873820232614596141711459009871808442610911473288009861031734625438639582261816135092188907632994495477463771950526849355613586879876996535638401629806642203958473036984539409658293199966580734394006695558742101129611659551169035988237564855062208343090367125664049706583862800824352559880985842006477655421895610569836279894714189037033717035334654472586669168710886742989563720464556834210439763502799147485666113564252114372185776406710419825710699333234808521180725913998516954776604303815429006642478011382368043937192763567219718885588331998293945629270152057313319227653125514923876179276396948248818191875774557899471158802421593187683699734993939784239428852167275925871138384664914162206988989782859660533358197492925729280601820462363768136474155488252617790672129107329234219225167284497698977478240704339054751685581559569177803106637452206091279118202946493186520601123659239742152142568664901150380975181258034269575053673036430888929181946322861371267741466075382218535273163326417357897503235024620285714572408263929913531881721117702544055872572822605071460998204541799150197085864274332936158487643983820555683844580553530680226673659163568956461404810291112714490328190206617105996032557051304971419149563138485443197760409815192302082124882168745543014112737385444113144118030872306445800442523002625399117028873403925190133590291376327633059619617515904968526290225997012595732416991461524537335249186870105228148480350031579118046171814966348889348007768640626444206179028228924884429209479234424061058485563924700633162045431479574680733275663828113195952925384123123130001668240709162509101152572439727871288727779019702079458009481821885592299046054397391618134022739955593985499024245511990486419578524221443862360257911856110901560849300551795054715459435842215093086498707765800704475240246941746947954644776955405684713617364329286888979956046844524348359860783578007527513659353976936344736053980927010361283373649402926697119482129073464753040591427606376348401647567338873595789410131378700416310710786190726704324897508323675874574001099602277440064673524310489993935727027517726974866530029033740409118367898418762053982686210994466239306468944275212959419308168258289875343652431169652267669373552459244399882288536739524433645435854698841241020918730515941741670231985329719914275697354847417884378801120797705057876670852620846310248879580180946012097203790676204005130624502450604016196300897788648207522273381535585748085841605615023651705462520863114472660153123228663628986849221284152214316822472300391149381367227146053450108835770660226128259035015821309917399076213785248612426154543411526464464242915657422738901217449701042102485120038551106667980608398473694559284897597504982695883265016357059601367532935089066116333378279618216383274759295963738963723014830744271543245416277475555657629991841810500142831066016799869766838071795523787180890052928149465684659733741028088316874360216367611511214497227302579205247079803980958752038180364879122145565492167140096205691516445986979216714885178512647780131182480489227192333905903226289023583690015224249077869062201280804914578306208425554850097127686656534438544920456672504696182661507423836321689966027784440319482765060948117823197286221747833333857016277339908514591534342869909910350534778894465420638319993293229101909053399244472603431100601736047120279093717279020490186284534942061799198627943463269885228195981808246800199310713663074206167118116743304922708482322671947175634190165523913457635532050366450348104544349529005273905603648307094878939391157865358944044258791668166329670229987159763047795914137998237975356190595975481752717065184814015024060015195025749630616494467887032816124399438212168246575631466399253564862629475511289575077285666948682787000369090720401451331478436860572083492929035642142608572167083661823574599246387107753681013843388452055899781382409368081676057700186672475349584801344520815700373172737750315650714356024304389030542483101129307306853999167218715463293864517935780869023908733030365772407909481050346928905727026232681116980898855112849137901874910640504839658876002742494886817424420246850838047586747484340260275767133324208454065280259486428172405974459154248924771855622319561346718844801087049010143217922940372396296583324760518163539060554558276361933412253063617808767938088490515916333117298317525758936196598834713765411871024255775374557699620629346763021144112182831549767215135163622311206677305729122179277675250887856813669297164546139010825477343722277691348255487196977153094527345428790871151117748874650787576456064686233347648062402536211463760943548523584023338650613237689867716141552224397996016165343922084780268705588094420283951972046940072821959986056797696216272178572167709521172447517428142488289416679307399349883844219399755019820943183395518063037953229181432203302677825420200361332812755039619193551630315675131057536232350609524301507830858239673842872016608182986639772317030901092387268446113638722673675356087704122690098195180388501727689725236199440298502726228407774543108207488362482351671410134463090239304015855975179125977511577991515947574762378454086286534145379301124689009318977635854241547659778020804290218999727840664141330298048164121112845268083658996048241922335473863501840931139275052407515971319233484724396302057580843736750603528411918290739621134411944559787855761859040610140321417811102560513518815243356552267807503636309107513629169719069227163976018472166914067245427613775546522146086553443181391481109084319257765105913320957471907898245590580874959678822943079786834870863849439990522738468562383496097259445448394049883528682113659381714829812869006632262690483988642010935386364583690612389033459331123783020035681017520312588716149032084555066866929174487968305832891877491837821694091753660231880672212400147717369480426899663098171704626131975601917107567566147568466974057021846913601095208692107781685064669462042777221210865794794527084181380653482409014426797503861172790446153187553552291262310974733922119680270152286245686003301474922823213558496360182865811261614134262624764564793281212010873764006678214821799402494220809812884654869214364199099836036294112521284593406694628663208808937742884142851327802884577429804007805326938155439790595787265108617918261114478427507005008201319793319466935187837399298760449851762827244767346021227352897100650299732045123380773936320266868576206534454768520859337735116629076416911980296768785167959838030497025474446012848234066512825681809894779732322839513368761817806066187963686705656562850076188316310031236631353474726238571722541402204490008856249071067543401644441072766893944986758774077288694672531825173231246896587077937758192741781186287686885974365295215666854831544408984802575300697530624738644839130740873235626923601856752384727981025784777730267786873394441830672077057036356126076136329992795709176970391520754841009313389242857890248378977050236870286990666121089339846136021303131482282763299604149713875611478499485677061888165347960488825063763239049690693572382797717022372188390710249371692424602468219750486675016625140510699352583963190945296029033353464290232982251201447494179738205754927148177337581860005976402923353811753250387974107660148649912341401433902857412822857112189880905617681597638893550889103143565175290794452586180366000650978860146922063271874804340672133903094830372004383571591217173762802071501298192549759190208108389073153817175020786332107813933514650451083960153641915254040131097995307353960513038479739229327827911521461433164447379573406776008941115238570940634299029409638085364631688405594403778662967488609566191998110041888370826448483325061432798740198487324883922689092281292213333392629045632061456362046912867187438210519587115335143534276783909549774684686391440034544643662346902861581867925070523638805262798014812779112390296384835839849560688887610481206274438608483575982708168643841587970046643801043855337781828603889855290083416438109296273898804983836672042556889225430124828775932570769655674337714790849303247138767393805297178961731037368380627212122798916577294027560212832123855147919658183985614909911684551222350747079686245073026723084814730367789009920579694644420596366568647724451042842594580647072652395061890355694824691519302146909860228461595351516565204368479348408701206387327394712585095591855588891037159202171770499862362256907507726128985228490809658029315836726034887350994792505748125084871751236519910422723525597139022431942922869182685300170185174578783601222817211070848326011864412302969869855571141375480259266791384494779021933536055797435187108807228906311114643275297758188134884929038754681962614049004978943723487786696088423107946280641757642535587232906629686555190031915229577810187990353231761375169720277744680033742839379695084623780759706854658962042584195273955188932407948687273546272720267499494151887485769669580255071041615905382703004421985240934177840056130470872760265593603152106385184312756183987993010247124776126049650323722839107043819761809403200907009153655912495579562080122445650754244732180069014127067751973826653815641892784766738452451100432551534679759601271428858965809489873247906756767587551457024122392130099106412395939540625514484891751246215155570902125000934089306700963049926327696520259837080026634369012049410019825436505218312465076567081377847436094398784031656790224821069042615220709293253391148725582217840045615034722929388359394412509435266424192564941822466997638951988058350595094953657634568111615912020384202364895643361668923334792710452258229305119021089625206914612501125346289223327898463774884286297134550965249971595788209731752852946064755846450880065239862342024419069663034259815016331268971699808874559605287575836910156145047663154885607689900243452163341929286224133356386217310303330424792850522616056516598570581309960858500486786471315831838420768741251960012690060799075802704845065576797459700716198442378632470856799928330663860189036493820019169772910696266009067040289118104397260836677079769757291754203520674199631863825201407665876427364586450438504450282959469423309246662018965407264622860894242525886899308547592546832232182431548421627485505510538073386488014361777414645029048068689728352899094951937281272082590608881706001038379981970087348904457694309623474509135983496888929182692557992713525045391935118818171437345785771041364274222990930625163203350623487768641994089771938902881971849567129259677313950175968297268053561927056413831611342068955155497152018354078505835881307649982291700938245349328840248194230323522476174418955846351480316311160154341092066109988497813435389657387942468276386440273617744936097147244509523022930977755017053471866860562761423598909423345293649712914248170545540259541260822156427491014387381510153403226844767513673610899390875067530661410577506790307326645367998757907689391406519077528367668334371522169337569694033458343067425242239269516674112996566218670512738808494492931080193019736039181299032358612683806179677731499988989935014208195933306046999427989669908325163818155311842857909579799672912655296677264133248095543599750447052603554764903271316359507445903815482818755853311451570277283057267124096888112483283009796425260691989719660962767238241873506098914143063078301946369115758209573377579302814960716916043295381736280293650907430798545221549972357660530772638611201695863357800547321635107636933710790951839610131647861809576645018697216409764907080309814141073645130698910613872572556441375370081937851419252740517828073752985381950500737379797977841503213417498807306970749088618795788380604196706469123241948934194800925525773086276379999603708704810539280271590903627591841543257789149632597273123023406382668560047307932771032459440687162979214310855172904627426990040864838901840716115732349826707988397060486616188004365818738899431867761845980732082511490899418208896813224741695050831582495157827459786870054793976300749158021581228064522963585422603888107931627665106779129710828201922311160088317978551972610893623980618255120987615975983910349369422404564453547226324719038068270238161746077851463378073478566674682874602633826519292274418108546192595616352016729287756527750992784468084220610159307623220114680399393319987841529783921229969655075134784924144892665384893584906246564127900901841256467386552129175883922917965375421810993645811009588523808572234190961338769683273284392378034048656766910298085265950521065910067748219974809818936903890294678524699715120646547976208260185912775439476126763631282501092145882497251698708659343701686360246869528996012530840083208696534777599079653765080924426787038081867860531994888808931391405249976186485993817676185206360065611896068935400355566614243130686253580452527177727902662170438592682793286719219195609521073471882147855467706243389891704011815272694884328444015036753849114745418784063000098968916491784601713678049771971947625951881815919266384117920861361237480185482141384373832275497015378428461035186215310330052674140014364922480804357876731311426667748967502793174825728357268775522408760571096239080044424878929838535307438374424378746392216785560082985895136768837389093779050650416960407767089944732923656869813450277583840183571677271378470946145236390705201884585730254560185705898010563356555614577152453394870263166075400471315452369288195094666788806284054895581486312252504968585396339548697077415016818438292649410371794556600890770068637994448487279647734270158032425174025191993136305480757552340626293509623950793930496162773126808833671927632843197171818648484373171282025818118125286925762003483307556342347525989612848382135354226432813534890485835407265136884062291647363646435271670846554437651895653802142810364048248042978035877855224440940715976125347116453448971304425234375018778985929661700904131825292941064297959118826226084049090038372953677463497989693287078983557385936022283642158936953287998766492927500585484477501778570120210030247844127484675095836953177637683070778510651149556861229656597103473300806490585956385712225750381576303116163526071623605414471061245501919198879137486378782424527466520602110810618005028861099510396573046353176325712634053702000857841033862413266572548041637973306002471626253357808175229426156532354523584107754513711356163609669372476775895079749611062670578098912673046500740033925731569193958646511062937888313766739771735991793548433483418755281965432636148562272369130184157446650728799907956049904505361064568560921810410722375339397273221581637080516862821764884159596001756191149211443708863029069430728148711290838519860993093522825866426601793043742111752358844336748871895532582737045901930486898917656135817168712140233512136022162068182764879869651659117635403615862994905333494447736867066314442185102967924875093828994150130388928374387815503686158920222374201793935707496449483864404334720030080012013122730941189215740143499713899604455338162083677637604443699072540943721551698260174069357276309937672651519183462490461868822096594954131400503754545893538310572165219607585125723379188310334026145689704899854512165399129290127158100058206219667972875961996629296536424778287582032256088852417346141961296183980004518043743643948718419706235372951280775873313900358802691904550672183671542837560905874877798953849229416604171676341483198075127121372203397229892548855189732049297730719417271340380283428940972390491883083298863954784859870102597170158258943864279328074178891129002505740254998811224830697745451111864989382304987177507077168213484711316093679562537920387024132681248290900063022488293846064243207094206854074805532920228995719545423091839077024741164871629555541777541301635525280434112729307529508262470646196325741586073664374790534471010491117209443140390769508535090895679104618728191369340412711614857033721111415551133662897369081243748052776576866036529254406699093757461656751635192664843688220587312232039752480419715678126535091305703361176200292763773875500524312476734107593034680524898599871436579220559649418112171168031743464722243601463144093014647031465785573339027044086860952250517447546071761977876780795194152157299923926273932096280776688321576484792227695233415699378058626401319065278858804176289043629933059436041164791135510136702191918417677969578211275983666157515031956519068310243964206526288889910065161158765045619935024296568534080315963842941503060773617761879104784473644674573917684728432293434611964508140439924287456354010499279558290389558656063198783381742964443481873004843717629886584101807079386664128099233039264389970482320742876948149897523393125833809488400120314051245981209136513748259808592229927503056824441674815992147561067967899889763753668225820988038155226763612363468779834583969253949573936220617243891700124007112392597213020615998291053647319044218069874845888235176369482519665897181377870305752428005857976088329113391140818048927671134585571832200911196437985990397754706630538307285980960654960122041665875764992540814230581651609742404058206774565073621138706493187655613105809144282658398684272579825271549958437855838332012420766840910511135683544580238002518560429570148667517316437321565946979070700776941444701587309199891961837845832918227887289187104294083677171848569726830892781287750456713724739778824684862003949662504097058539095747098549266490354314771718846936068248986715582453303696628711109115461558297660336347727421549890797324684190885306523600763677399273854151384861642535322688879382587620595685472764661511877195031941893095799286554726507124393522438093373419450369278574771906298208832643638012521343747205054375145732034017985056621925626497534183419543771242770947200873747479567991254531354154364577223960122172566898118300013356370233237487446961394800778972087949686515182870484234137581931638043389491337117882484979538364434031009994581652977686708676016086663339182943905873140264115126819765768574026642416279172676854297597409073279587537991162558687377383486082154992457972176664655425148034669490446657572469022094956788010809318475942645646824243764778987493475679579731492843342673086461226434677511589618238294609874693866070424627819856262942234748381491056953111847455214307334980850355417239136321976451450833944189564266925778290419762955064979703644343175109500960168941989688744074447201279917217338408633651854731167329994578060045425457282765219793242437304461899105383390157464340710506514662327324932628038591330069563204781006750106504169365519568670690334372775759475407249686885201923658174986496641839449002952222608816111764537903856021790002595109977750858450420404124244811493430455594300053365456276847614372201891768777122171776011759633207523786747128633345578925045631648462165238776991865832262711290611861618254389970038835966586930620124751554044173774504658689321160720488032371578010770089745485957129821359930379854968946387313887235260641952170877540066422200835631956301158878660861632936354145511167233496770368366306163125479990202421438497328377646606014365230274163413633646533023925398820111360349422753999984464961549789099657678971499715708169772040361836803815904110534516331661604144993089078148089059042770756063398296924353156168799351540908020658438088890821498580478401348052284040554096827045101500836346611921624109343960436750104129521918322748480915338469924926552668705400539052383872588293370111769321330649739152502368057027503436138019265016645615365248765919997151192812522150961232707038001408546548901787712764521712106318686553199302765412416019325090052574333903747575338884903713470673799711145584908261230498604565093416816428208028834898870637184479828886390079133702380526725798643089533040432499813985009345957323691971655642400217669174159253066678648541668111445276545228535412266750217330907448654844139846548533065430768352550960570545255514546324147194264313456662980297673046579973854540909880924893622592845289674212062139417643377042284302463996914388948077969599632209710458354906677286458126818503525042888085822742867302824271518446636153781741423198584636755326048546569713670418141879644085110555242574780709911234745930595486388002394354876760525395646760871081960339996942999633129777398649102703379036126843957458291044282258493216017648988150412897417664555069374621050102487728167195871550407845868727517803101355235282598769845481768408283202244255575708383693554297085499223954140362832677254748413369881512150427223919240483487148187247966335667927964471322739211093591358592637994099234153267528124344834441035766334053353249670098622870215082086739853912991432166252768505829482271886220548607417048828749313466571283503856344618107472229413354680805056992053043322699311339328937482023822577489269805629290957617340085243385100992846200989325602072380108310909788471485554444528392558012673844124468329889774382970579479802136307896079957586436707045310741004453392188114982341627302638077707495167804086785586433006001048440009581895391408096257193130871057813812946734356573953012418274809994816754733909949664624872025987048531863163666958977167730698449107232683271969444832593146963821125822634699223581808996013058750775713754056200551692290478700909648386460930016743144863731705674546164178854681351168369171974398748293777436805730925673081482302638697605201432405358595465420712380184813848996919350617843518439950296213050227902043885866705561639636722201332329553629513696114232510168087971499197692481495063323979463828105289572805283244311063831577713628380614631494562981358011047413585190485413497426223361708163753660744022729826000446176883974335592200145442720617034985243400064047140159507048724627349353118464225074073880572172381346721698394269885808799856780557792473197451235817726408843858579518650715711430946731252234660212007955425748128240065172252478989886014027072577494979878683825708459241136125437543891941963702315608640193862120507731892842514547049370248850591193640992651045909423384984791802369898935408297301563219472442985377190515406919176852603935416645481571046108601604480191424377579360491544543101661076207906328654303984075297064343830082989743271391687468323288308941904874666545998009666868216531592809561876560892352793189209849200671760443605296139059996190628758233861346041667859892734437446240751111225718939127016122159999717331027053378930245677217940871824016220699011413204652658870945213303507962083539582125611938259036960380383237351924637061884256630544430646805989940290207981023446714512833482354814288112343840402972298806522470983460969831472154225634539712361533176483331061478554478605113737291821523066144498409927987908825867480735844277657832618532383719968774502232033858888289874487990163125047172839700651651338241293169963955727407370407651880006676848675783858533945202489954939697229153069833571202749924202706192852000186421562514822544183160234090851902707773777977713679276478645117486696932637420614728333303209741043137761659182984793448417046081697358220815793392335703179949533780861498580298177392307969405268498332721013001294864395658699215709877117803128410721130885744279223746426782953972774949204061461967984756068652691530254949918634029822289576952369362933728881766329960068881083313658745615857080873104781806818404940942587147384272973877134828073745159401533613313501365215766998938957735246803974656252944647980432798527003598117116983034589704941177913592617712095890631059169936040669995494964423538778704014141234572715294750036054865046757661852799061716774799999352155377642875096159207214916612677197926470960378403307299293573535168369582677133773593623735802785403922704645309412581519157195724692126792051566838371635021718956712320800330682363929460816481040862134273075180627947565689476825400770400907708613294540225373223869568610210844213743361030456432630469711931242428823188721537327578433512908107468600970752931650208996161528022358747973227900493161227074043939134599207818366156315910640485330678010148393032680530863811358827166881302433153468311823232890993881144268179838740752228367515984863456991111615509588821445458006979641385346796695953856282089059624772338808178422867875095730662777239275730387235162139527786833448899330154561606621913710316075963330712747918776862611570933041820944697699522873070431979413336049121652842324775069694831456344982262696824644458924875750005733213087123668355785536282401335743392673643054907497461314690356344007669467513816613172021579244707699316034865931941988207895571401353305925369296532085216106132081128287682744467710061319621118867001339663701192906615722912152475529768989613658712362788201098844718432261515744467274636029340084803575522209497184399498487251481627486958642607461536037136986695853939826982234181389568310454305001664696021139247967044590966969362433407843179247620469001583606203159681640233101548775374392129771974416479310678415374401256936165253414045606453348093552558867105855233138314563071156571702134099306314082239903119327360050221488412646703364488591903018316756002345679365689614078941854451765936545385533550318406791903421524108081176565522202207251463547521683560666612633993804447461023932216898959492040871944804375526409498068203644433765919528454630700853997968046966408750037610568427788989462225277722788837704316969423916627388295741059512558787249548916330159879992934164850021478299053790907469336657448255036738399851475713980027997182389941655066782885698493955558461502296505284807012841446371705207786624562389850334028000898655907517708130267825379870203130412945926822133855829509527415178472743212251902090356354396210921738640739010550173791109218621621436186539003255152326448609776453564479034785136847050948537596225074099304768634385350079045442132308863021209985482631574443168425799840123516086456247442956776770773040004831986304302963827821300893469457537132879319376813529048576481627608575883559469121638643211208425447708557221567812154142912606661068405645110430272184171777971330658106659941215822316459976215414669294920255903242730248400760015728791731983669346402342569651555581354362366386965776328672720802400741974857861627234874010279195686844083230465390485909699123331765608189689920708972876148254760957265719602649407487765570824885857051516659895208131395341380146330347214360560125241714148844397523476057145682281297467140872326230668252161394022903707606384836135373166673015908624057348557386199413162071031710265934207143398506822451670101294768374024940093870316665519151182218793040547974064331410043726584120492635882115068423791015884771701302728102958581577086044211776641841598345448760427207021576454620300225101830521366461341178859563721047119463186133820067487354686794648920379481733947407490856544804830041634157678822371256042417832620871396474570964342551150288228212513549549055465373406367195210313126994665833908347600604385004477537291095083704536276716435550158358782956999096117117501195064564272588623869615723133186487238246825196989507883410090552875227430456589422583247555019099878369513132119657126127627596649609192395165982993636701454436165075334724378139197228560778968799127206061628403119764760250909564180181111881235906577337350207833291032524193397497413105403850493945517306216140497990484251497091727781598526823476581485623960965704656112476251486806754180101719692304548985073597138493336337877461927209985136293162966002972751224090130432284799756796521106108680659415849837735194960167374466750831403316005086499625721141368680516340957607408910101631729983756984656112630177934866447955252401945416153143950648716132871113750336888047029190385852757117027081254644464813043055507776165479473386781267267388215914287267308073058215152584594926330760522110960491864827966578804708502283593533568802267165531303384189485650552316616340402569410042354038786376782257220974914958768274765012518193339721037975572881118027585957078406822935523470078840009523489931716573071869968601093965159873303422099838205628809306369683235037566031435737572646258835826763143402842441061322133152785880248135572749122738810923442731608503233469666782124620254348678900095781162614275995870442594073027257449637692990077375129460829405188531264379714442580039766800250997402469069476612702668168058997301066237857533787084632174360443667130867040863693531758177192919895025434359438492578812398252690445288136849153174347695117536951086094935568578257462744325643368651757106928592247643868170741190678649959565122628811400458731710799078145446966810599932848272011990773950766931669448208532455581849746606894887142383431242002798849431012151112899044897395435134557984837046078355211481329219736992553261796588097624756127322389199604720907312508787650931923809478493770787157377953437331308877491872159868349218154714306461401201067295756514025065566754661471348038057632055761442748847261674448221859507034823293173131945323032650572087082907198460744997168057068113257021125427544568375599686884637174183184861846186791480980121350211677905760506137090000848284272416434466394869237721241611191754235013525632022925464521210431137517667909581404215774942885896832668186048506304512867352493720442297094917498585142638680109439289812191595430848889708441684254101686966493464232283330327956891361672232198890561976725948899726871583370246163480064132320687486721093857811261926090489395671826912097412739007626557143893957334630004995762758016950243081713706738243158272174128797960176406126225141276216961994937348356720670663478571596109045931349735170181941652315763209449790343890468515582535351789430395105080221052832914989399612717786823524080763402093229738558964578716296996505410601289828684319011332034152662159447814297547096692774746518402184002941466901942739174640593002081741327150257567715599434340229256051810448314117048296019767094472377588077589976880342396781954400222005356314606965913555365894586330220411494332706047047274459917727575565163279194931724031970656790905407528983264398788341093408732339606789204201089856989674608178402909913378133661248921375856509530398876060691032287752044129470086911837372000002644362814208515093292744172345863442419268075039361194762512653242975967484383411015127045240388068628393906302374766851747061010796036712859389556402346135945439961940761019642474038595824401673366270967937577377524298459012693223749519774256341051421222112485304336744306506254172849551125474927847055147439948552803389224252781993076351043496628433434801462284116059221140745441367592294834361003803104126834125539589913209318019438061095315767155362790516567108700394420585236052232190635303399606510257466146685166749157253746888918208570877292608533495704365133411533094677743418374704642112578751001656303992072402214883973917440116031962090560807478463631686871911756631725648509739229725453980159696343079977153833080134096054883275774431241251641002981044073498471920250882118032496064937876627680646269088878090432785986295594090275559768303570303431331340436132548926631288715380765367925201774545161058490316579910699355291425313382562709785361272003079052677641737087056351654888336282506645864748782308537957924203902088340507374190399644563563871291397651736792132608115990463543492842459910476753498299191775393588099401139606719596629269006812753021245204700904643833714672220173781652456742582871383996417576088559150847653758185756639602397707423796396418157648796435059518007320725158805459621801132582607699212264543701580417532938031759496484708426279620953767629588070496727485296579640027954749702412068315831370972725437056988181338362974478833418042394496745658190211448270765905362455413384461032049763930629733218297587192513263134877837759278332523658867898113865478136005342846030024649177360803264092814038800904587910062915869269310175575321247800969066581180366147326826215402962864473289420246665845272435044317199053180755532267172236341820289884017647245611797977969557103344589553253146152195410794839660679972588009303356819239206685602220966217476315135600475202680513156499387942917166131594321115915731730852297033886058534937174158455845468776829355086134927213590984381689876819034523863810399243526417631004351497608131617338746178028581183979091302955214787071646791577970965853454209399792743279661578585085038816003455972356454844957952076544066648183869641986097964540519242224091884751654845657661123818005258003099453696752534433297846564598905813322838733035106945528665396416579518736230345629637647672733301876982751428237087582139018060930512415763387208657071226519013563715821153966310737124778438807129625891228943397932040939271539851695426752423089301243937614821390664140678481206370432496088358660093964620931485116549136545019763200327900576423801211642783161082833893781675056927317113013470274719815186034907391769639464827410132686883236408365907859859427159019300517556551903353861044225917593797536562493475389707632933823001339378387203191735210388053404733700929441283848909507544457152169894064856356571804912054777960569689917509675193868395870711763742535314968765198135215376500035269475925425654436002348374675503852553987382603871609544814400252548016713888500190213213284116524845511567960204719228629005882784839307337279558523597716152645346583279124223769276540181367906698579721649580489369845347103134716718907245401580524060685071313139617401290030482124241738972538128112472499220072525290439133702276890322597590225166180880100145293713479054834459229548983329741048377082565475427946243165793171814489704444876179233391141465771255893891174342337260085882897433977783564254399102963748017897807396913880814857441333988946367353781963519277291723791087864618757859043557878175468524736390330485510383646366425000963138946022062255084346614714113069372976769357846819662928166746729509220288976540341383215974442484768033545789354435742047146299589630018140079086043264750016003847954201035048231443370117354767899828443326970444845984322753303299043114262284552499441414165593351209696158002674823150905172951449306103793285640109573756750823723896974306216064426302501146559603563347452402531181450091119266429401143736207720267786137631216145290691211335417977529935045224892428294175754488260154144030425418755301735608603330439648289122526548410191546320547520432996749062802374132919152342855771435329289922063335011988642969235692211091793154768433618802667560610030720758802084451379972228015592232788247789180432853715527823556385292935861809709760149878116051532800315069714144873216311818967393520636267485156451986457885515293931380503507533665600323573533322848750345311056572748354711226679729576718814636824700925284948568565899735463504583405238456962317651683157644451798996934331645002059584959897254186422824322539893319148935795471565990570232433114511054649288820928636933785702255053682724729150514531058994322475014990120826756967140880680636963888722563254449555853148854860508152000329331735733058555280051302624372064214875565490914004953165179524270791655062942646547867765373394295062864253166233197448030858987106223675075540846483572759610866538482912422212187787272334845537695411666331685739948124598859918737935087438112883514601492042438255987228180807598401468432427619195534200948443231388474608739711511496017504342656663715866814187614668473440780344280584963482693879475972223000920556002562680425069214483685582579596854753285563811877235571190493710044852353128556041106400686440146734252963921271414949415068779738597699426970165632358813152871099475953663334547959593720171980173523439776364712977221665623529962908771455209736618978587155956179058812685679228226932468096663354916301147134164408721835506576992567025872402560090100672097473494752209598206428017132458829511069632663076647375251683721293145567645830143837926457119708621712522290464760084959675464800701266500758515467736078312290438038123911651897148188593483834862912509502133313159403127472353498516207391244888783214031916859836565778257782137810811970626971282966600652917248572764032769205456875911596608972156222632761376343439441804693630480984356367404671044003555922408003264561878655455873597483218781823522204987702408268585557385488995373164045824964500625999425649246729935335248598179120163929867316144496546373073532145600327565030996081332656654008809086697666878544111023173716843704184818698709428364707429956751068505904592331560171714555826525106005559299532987850177033159199882214712616679782650589068202688698478964527281870896684032643959959108542291788159359266940387017879583213438181886041101848855917145196329920707141559991727539879667140704032511420446129104397972342698197737856155110258695241910545011164065990732249035429172670845027414017904670256722605114331127603480199937020895940059654973388850569103362897160020493907233163251840010391336986263712660632845339184970826120175744871489909005051774235289138313307701218340150899733281035106792303479001960070606902142398670075855180083341338653676747526314286386120462747186304384991863173095942710474548234650275440035514976181377769558482426066728407653012683879926861439927128172445424100653564904114298359261027838897079207678206247737859680148670913734498820861059389190521697444094217913546181168892623661403212996044565695075625633878383688066279494831821854189446852977257436629041242573382163289776830636098853526438528985345843055013236579115210799266470648795053845211183399784058988017757167883021864129240459642348748547007289593040787735966860490084852260226451673667705602859112680953067098261263978171891073124955919090589339060542041410588722372407268348420306753051863267851699836934833491064007662078388509525382238984084872063908850085618285896255534747401005959236701313686805644626347030377075246202724411778446905078349618902640576461166610265032169801443273971527598427210171239600344831507957938515135277943064819633212437184952954174192636652435272597983580035609060998586379750514272370531570330793827860388748931684025971660445409699312247111304611224409507101067630495426198912949713246016010341468613651525046940833548203135815289073992302198056045365308925485627724898549642655022589694953513591063182487732539669326204940328554214604806716550933941763248220432466185754407928635002204187269153229244544566573623098790139722065398282200524186165010403023298388702523095130437142541738671606938104944370916200463405403199926968897349406662165386062574244477344946020508618987638722533481523422229123599658331667620792492179354743707618654684209667599122446747737959858048832537083904547369441118376828345838163903822765500807525852229832146137262445083820291001932526735358354543058329327830028442232037967640491499973562528745189873327455856492618389733977460675098177383970849594068092012573060550284311138594916953474223792604555870792426186473451690120194740998475866430642705899610298041245407126633824923097486409293093299722402044822410688432329565507709690208061588332027779241027156300703658066246138708025941192724272717026306609364247174658572732216030668270011777810206435506761537589084691179006900226875679750059971148228210523637098383511758935930431119803720423215335470309158421042937167519901031549688059100552984028591852434123488195351320777084050896674378831259107113775947479059343157827294726706686705472034982794210015985137108381188580732175034373090278883476189832872712902972394055819308093811442203210420999027012944323055330228489338945967018100957742847525886393339299249483585722673865405300948297150411035123340953994227440301582606091500661669801212575023277655724816210715336239187534185831492041759458314686024922702610105347388730544963081020601472640575739644646009337698112256300309761916548382747799024082328513535782892972844070422399958601693587408920902983289682502712582021385032641985954634322746081264346803650898478390132212452795720853806539005032722727825788414440387229348582573102315820455181495592609342243743707619300733800704822932240442153931043776994261406040978274948616728155335768053818651148687726722786588935221256755880698169484262363982800079690881950689666174748610528890490920687915881967766321253591261025489205862777880886172807519644312843920403911605226244518487793636543307717594256268143201628312877361182635509697385187345694481579255470707109440982275178492134338898945926096996838316433627095523128547700403830903608243084104458023205350324988024486780434690421003102360969210681592872438988083644405478014419210647948984576392313618852840591442922215293974337366904597125444492183255736370242052254300745699902865774014056437556992040139482417658559185360993762412316669166503461663846153565086842840499306936644574659132572816690858379975302659055865985700326003340840252764955450512863008934074719802923087401297763965774714155266569656945391419905115746168724156536838787079074954519626356750279332196351513774588283588727489472197752897384960029137239515222108072601984582014067682944211764116087314167916268594296917096537806850932750411639646574741177454305827273771272794488065729121228074933403248386347488539279827616038697655789332691991477011498926538836026522585869216584022005067914995578243733127865906313508589070647062996293158472838598189941015369543973399959076418278087694451892821043054928404435394451124979782955670880418553653747036813560779464167057456139325454593579423627269655243007880057272601635284461472980783954387087764604943472857281253741115817045527920002919703821389813348681509338172060514091276563811921973996083285152125303895999605773333765229716198429388957434658205848673724189134795114902896413616861781342982786323997036060109570647756960500233661951604855140040799329808357369737720804627207307621627659925588010189413967165053093979472508594174616793673989883171669618177833920428944571746380330619172035512312669730349472826741547244373202242181419725524585961489787580465962594660175668142196787492928610596039770835267835091652273333101478146494277889031375193984478682468868490089468739849255273568060036578303205613876403264555206529080410859819362917625398556417805312281639804182995693483387129725390285260838648680597416905215752298655316817689459334457595862765166619396098571793012227916664559814231670642513026388731234794178250653874352352654392327623042272402203007941127593332903653500794822161286540560383757976519787459917093466011205725272714296618841675146401561288963963727132937274662974052848076345382807016239033799871837767775334644732765215624265182931465981151624043929009304253472961495838021382398700370175452841426034709484217830355361156537398339806026493130235616526408913011873720566714378666767259838018687991747059411189170540339353070251801421677561409317636943572956708464654707794911704712095389111818761717153877169999871101068873883083901548883284164225950911965854085200486609721621144511440939947727818318162186973297538841630246531125332620352827211768978076346483429957285838761267325007327951537438047945435749297235585125145679155544674964861906749352718931473422342883200354593531924631339977274847082933625288412664483496045054713826953208648951463327149798545062254514663963120030761006836813143213308214699647068912864869528258130041194833991786620752454647623911742100394332585172323121716135290886123763219591567459736645826664948885772614870614328888617044659200053854866955034913256000965068310574870184235606586863811053687052735612567965861019155142538940585219093660784641206945250665255358585592433157939387214456209643400753485816609776708934330382386930923721119882638054092778210423481134239076666865583228868977727759836148853780127365449676732890768487787274724537373696197673803265227756195354405385419534900255403064123819168097463246298430814208915436253816015689430179459295471777758511310251421801318343874756519719266411885996062839744372374997652393658282588361995415788561414711626044769901726127595008962309936184938870182619713989006505810530744660773491727364439690792487177687882205548872667771932835402050715084488141998978179015591719627037858917264466940344608437118802050569319077039364323696306911566860190382347350314736770888119323089886813799776328097536107146936040000973137031923641401275201954588994457029780542442935306402219349422369162299982278096785855220577670531700551765062546354818655422445706802937396183330372317515711557766771469787248549886942817730667352949650618571691271254672133347074163899543641110121800315686201215629361025038561000467507620696202925381501347427628167335744264107287114944450796282359513820184572411780188473578998086122263261762673171381232017084886952791155049486143070753512542496869886077354403841043424567754339840190836940985997952916577970985070056759507108072120334565809685132799052291631689685952641841611669262236346987033811089214947653653739127435455101817202067612617987295097694554517195685358967946838618768588352461676153043349097137337007464820914435006797088454844641115941854555310152090890337913981605118397836560372474990277232150835338419666164888973763811737139301073763990530315726075069075623140358268353831584816183959696072393269391024695645691008903361424541086815314316088044163047188645238146814491283071387906965799704692270175392761892800759447427779778779794184821593715225689172952978672907954790352174849000257133004016135371777188663976845124742486850688257659760922064589147076918307165086071965131624494305505793995326559764891586767509689916273832490670603003287055081573526742367131375201658877825315886834776531518948700974546419516344241660379288809837049611874980881323119189259562105421036938884544758130267749609208612250859949234523895931109403274839012471279462342616924296798258557347386109254885322492924210412173822774693293329415723612135635991607889621494865493601607596606845226408891720187211897882766997205636436250202156206038435670494596567468948042204583698199812151429032758581002673853773048092530280342202683709825965447105140865694991175183655576432410124299792939714939324088837269826090489171313567415288239775591481705949539401656072763668987190422371716406437609510497585516921149584213919124877741489478669810957109035662214592838872240985757075885698422553387953567676901550818550478934905531012191464220477359999760323051294289270747845744204873851830036435984444436271837913244779297904659586163676925888405504835005957828863227091463713992441881598149542002963198827010889484347803742272165812238918780890919107112137593688115322818704822325817003876711217024997052511938231913798703301871775838157654897378434488736929753360704957944500524164712023305033841573578031014926578186106572000508226152283055613702216282069392063120313390920000737855646157125920597905374772592610242106185926746097727844115305446102202213551669906637188934912966842525383529404399316159108572245652570495496649485843124052233573677342329336204443057181117550725720009871550343752880089898403238833931317000855794873784924603359299476004122616861475317880905117748641179603754725701413438602363724602223377747525974804658868372636027804063551097437143614572522372532549157984128535863178736655278155849759003986739026804917114027468393274654715678401174113790915907810912275015849461428384742415012187098979423836564404716635603527080702257216369899661785587314661581141112156890609744017947226059578054456327330287894767474387478151156925059987754379460211461540640546253429127166699721125612577585378954823369516090976372486952443680471239332543287949957040541721204066369544294758160118811416404543874457134171826035480108233633060581051802768883800976813251829144948961943094998217658085640858058098484285446873505240362914243599054739777696684132819254107795900571506160424991500329134980571064509774530222458835077664468212877339897140075812160933433071255028571284801564778288517971988241445233276559359216143016517114785843989188501915900815973654612495325169577011415424265624649652601941886104538049683327767511147567482764527143125885230100569789316903658081077837827951535627181721860308560167297291875951527558176690962339641719871974640838606126434588625446169187860010153117107525952875710140191606127765034128135561289972712228997649972933294483503861944104928000670003481680029445667659614881721310447466974087444028444610536656221678780268208895658397783137255949793423801463138644575054524885475614205381094645453265896904827356951734309113858606395384502394665296487982676979827453975665671782532018032464586757207545703487157113629190726583560389133504142053341251153220736807359990134773147793209543921906035577287586549669113772245632701802031360036255762713191945294112471699827982822346940999926858061863932705874132261134458261249901532962907285763175832872362855719178549663737488502888121703404036284257973673955984354764006673413236969700969429443012991525278346007054137469936801964109636082684770055596462242481997235763125605881131998891191770909779732879221687186617843047337908445625644404194964013768533530457877179723096697296857587244897696326663560195437304396487653200430688615270312618044993848168164390660790474997032977338079192362236229791470225294607332591711370134961483038617352206995399118429684610514043406275116505916353293952632412647544725940468569720202821861421317278024168857895958990360447583700786254592538449880169166280486289152356399918268398217144662514263756832880956198029041474124399311098628028552102444090138707213220687412137850409851988739007520810906093804334543690814735621395059832510888383120068304051151148436065464105567634251419948964970469299181327112302307373705752486321989658054788045870616335153850500116210264204612200598796486341075447816041521073093738155242112132944326283905793308273235560816475725865988055929839318965478568044150701382874142368710702271817756716326407968996056696029063530141027777660813313403069437858994166348592020610757123078110348443800916781410333005436795919618458842567441502804867344343886392949146667186571447781708694090708706558256679888327119098807579770596665731855985807962033471877390617371052652308655165180651315506652566267237801519801169759411091102289838839053047536579999957780199461129787620613402896087267319215399067044507948820639192170380912745885292072945118097378370113680669997373020065752233053229777075233912123917330628493600467330565055952959773644225428108436029134792464709684169506409453699881538071659989623573518297783650982925850112357201945972571741407676289662912934345641853223629666070396007893386629718549419531276920965501308356386337650731453126885407772797887266009961374752318328728833788238071103974535670246321893599767251818663840669826883830082560157679751141931137682000407710147692313909266981882894884516519620292267399653102963228637547542246484727364707841950677530156831281546003441963842894443926965045249732536046447130648067341852397192576502083302490960828110887479555851953738026716629260655711985592468707837881820598675652653934844026011414297766228926247363058897524177963080313386957616447033391895550404156590890408213705552867230821869753670111972091280369189065950623549943409627982258425665637969228373214057668023001729663794349963674240525476580918670567936947415398413377626200199697777879855933726610522646310780383989301168505776280121749586477405849323083417245043680898446876992823908882145987480615980582650786541168289696273079183187559521379640601817918321735502132559315815779929563015747808439973320021475011644092383814876415938521459557100754671927516318633867177781317000810043494527233097781262986360352882364279602166937075653110361794806159269310807528495457752923930667053791130826323414000032343149605784543771312487194039114505412983472465473634997523481572777353192647139231028378947290107699945162583543325711282478601559022510000138203301736671129141816955314288561310970090942826805756580542776690697967665401593335210761968932235421192602941117514524032037086964353769266641511521547544716814503076390465513078261909350690470302803134181946066145272553675711726221731149584186080694271220483869678817373156680631924896373507414477307761940111698709846623788203452900744048592398395803959709747838370832803000384738716390600031469466462023227353739951900530021971708899309315053046825878679110705065638715427684927870880332498410945830557780910284931257773313458682447795403721795252208790248258110252614416506768504934854884843614902369677265654741724266176391179540551125644575312375830151178441955339579379434515135578189863623088682471029647754226978888523326007333013045336820352540349252424960204353530322952373833838928537433499258518301120991887471885814596442444392443119186130036270726425437854652217840965963772773875452743829603591236647708917276095205105267905888550878971060606620268981782768413665318938337788100334758887137095034053555157197323359898965942376588802515679996156572819411722609596325396960046884984326033389652160821379628187178463321791681108644996864734392703265859242513994775414732224822674669320998799634765542660440721384802233201901877698415357477172859604388095464970555041565531188950949909013981017554382527627022685237965276903323018727144545480488567126710283027865806966754060578155459767747308079585399884942028784231625553476533673459220535645994753887358173292701833503168975899248190503854861462506822494874389544141190073789980967013477449535293448870032826532428177456126924819095252312193888802818840398305294433875502080898472940558327232287242578474282993177338884544783672201686405965847358535177167712815471614223463666111984890326866886627195834970906475505059067782034739277374915532915041098939306734367137385162472763632904878167155712925253956386329073018339823827428798800702745105928071906131337448070892107002629780005990896811323549232043457257974584487493175146865773152246922209195181420340399386679235092660117222938810233826534593684560903396815223678996314827422000144624442985134163246628513065983151292340436135472190595196118270073768046967197225393435458522188911652588322921091408826969668502455576552270343725000947580020193211602959844921569004487563931350262589382883972373615443422195565523031220142217012871958866554085181815148046422323112478687617609571209928350951967119510768230293387507853319753298047838845758428968989408589154879744887687444539902647515129765443125830000838732936799160151145948095770691994196046822886358923905458292399742110928547095171056948659931094324988489655726764550938212308334798928273954624321480670541352533400619923533610493278988387088994190703156475046130917615619678333006449034525407778372655069804287631479509270898902155629585073459197968165329311973485610500056214481741615579221545654346438519599465180335909669485473444200287682602090078595512179765187395311633407383939369586147294624800647140206066465269568834853816917742841949687564123954948479967545077852342606561113588674865165949734424641636463542982098495586264560415363633767534092869148353116546354906323057972264430363838445435691071648117182933273256521985424762151843975267858880773313525690198208992782970493203236489906375907385566633430678126535460822463924444691831721336468730335231678298836276908746640423372128796549337290317092168849284056690340127137651449182682870769801983403809203000597191459401587069504649126411404846905083302269755469751893974588870323906553400995408771989229587705140379849655498430682472802713444418390893592217478588910255674779902914721401202074456851259138884299039207881718024529580564221454840253068389221504878603523008850641595277389366370531300815946558454348046026332566351356249293002787084748495543182216735414928237410839615216233574423506056982647140215107894265373899274544108726339028370481999154669217740327907905599197414862909242772505741199760637458000901670620432911515874208778237383601619929173032318318557903499490985366528680602162568568415533832981987877852438749663470335462789483155945608816237500455428977376813089005494296593702687898797116162314620058080268113100831857367489786261377005687499600287732669192301897736911207322705635720063587496753636426688388398219476595272648827212313275092429272281170874939460814500927333837046359531722127596846270206176785852807424003356692716927445425390920742252277064188412069073591262301569126364076801066954202687380257575068190773285362910129638172654823951224248465288489830012993256415497442301969344597591533099185116520407004803962559832813292146301200597256200155708647977269731244621840765333925624558213941469175173663996158228272565858695518416191373716022059217266137994147549252492959174669180555497577853830628192609172994740863328333318295107364699740366564866434899485246689672820973251545107964283558882636206795948696799359449459823554862908223446669458497210595547470531085941806373845866672608515945418552842732907582924971368358645169727230877820664394337499763454735072439693886164897624697805301080945573071756583061510335358261626901649900100980375182131289091895521535571230337705656126333513678235860495853212531201342027737698833846225347044415515145610931000576489319059177855614821003205394204062903373256987788376023453309060265213575186629185756098074268422998489481131366569312538437557872226997691885456937793708428130326978883843804268405646700942285044731970985040329805656625289363975927758777852307882990687327747774003466728055049516922631608252480973197442892086482089489724466161513496336192921205310640178912526873570013480070853723000141488123660455217438467184198378001844649512746796096506890574328034381994485388463437246713219299220327067405361519293849319568697796490309789603602767937638044060244032552915239169158379942915626178675959511118841228255292008919910494817106896710867471552226724964805931923334711464288351007551991053824671892494123089873603928613872603654640954252514313020821924173323501231908319518279438014494513020316970306636091912572890082642247167485396985122392357849885119987074277320561712488590395490125936431994444175268144628057744904276261655229157088126555220369618949062873471309247278204118645542659843301673557753242428200518502821783669387101558478278296807861685005852368234988168776637516198964636556498501279338734516759849485583500580552300783320908267153374813424333632284918189587818264894851762651557834941612039147409435933435782825524949639999205395942068080612269989132817715739251527007541741433963056163589820715474850851845666159880937565181192709033748379520219648402120515571855076907150996859712730391994717655280745375488778737675030246518778422811825510723332796698203870993759858280663071111872402566523142072192739900687277476271073330977738772847923361660931949869794869443962358983853825127405814931595365530839442788248479857929627918523363772606985389052567268252236850848850993344702853494460150606507260707100786963981495378120320579120224624787219180203778388097547180578567868278764920705627218998260228514434560630099573940470591208684308744686147740012069705310364321489684130505462774972498768039552172191075802592716027073929567785460464174642297121617676219845799062342538730843038381000032643745778875731716976205935259953576517947790247433697065820270801360586621197879924738491040074084489932775698202849860754478018153292861554927887842156891450166231530947202590653943472361594901740312082804317945422225544156662347907967173984797285559267474927546281447830228272222422082975334111846723539275560934682434056456731214618062443432722758684001978414384193954429932231571062322537655064220472924940182491869740325651185388707916540129047212442141944282914132743790739716626892076907795745667021526390232364006163048174767093492770872845462390408999392492874828312688046494416039646132442059686973283948155115248225743225892587514962686284876991612455620274187055854622972582051741580869273644953410453192717399477011591804538665251759137203970810790273478459342322577777748124940816096582970178638750796531205851498150186471989441571098692285763508493372935356680989517284382204658280208282595729556818247220766913002426007719494796766139422828093526716614289183802808757420977451245021263766187457003076412339423947469307756828643405631312671841881960002215769416109297569958432033908425214430718973982766557600189293061758043978393684276291971281516494262836971376389612826177206468369649585472061625908209372049537427396697921666071414281396904488255317453412075722359550058568058883668950773979377087178469503666401133944998270666166793891036095502496522447069690230263522537033818008068735722104283079040678505342465308649236037017337557333281488350279064426887775275338604869992723573224636193517314564394529036417690431368341281442550659827584798136246639093194753489714641281759879582654203297056959421234428715483223508908335285768656728104264602658440861042196641198286293408998878022843607707051350892302078774188294448911739978477394055773603739177096249783437865699784376495968241826443000929587595798952947825724412510773760041307225554025462269636140550037060551163403282553896694717719261254391240947854658032082063898092005806286418312955018831102053420743284586749322142844056431255301190135574585027145546009735251352581822121649539183727826132491241280371440140285076050123995491341107078552379996614899514957527617372894672476115554095353174534816912166436918907948487312563821157499840308942344677695963205151379611050543172594246238956051817008031600969448616826115934782865585992417094554331178076191494462391610736552471937328197996508714085035606792370308391739867574971721832379353039879138123728744217431780368756657773447496666510391322271962628260005934360629634856465109228207039332864760417743624410377639323578292073914677342284036368033614644453014599545632710848872234975785235878661541259149126522473224884502351323368914140396298236851923802434679726867133655473433917632233925941107695971245464944918758540361946368277209278697861083238264279751302181799025307952614210882257331134406518372251232992811641431190179009787806652086561541506328592568567493755994628365571117120383190621411080964572243281846682206565321625730335998779211116906976746945579150042598754688608251101763257781622350167704118304764537211225654684541216601965087745608869927491704183030517275209163518084864607166542771175516559525741430182360794786873355045254556013068694045218175397595187582313469497689453559880638233188498259973625815655253853732727159046783872961068204772898995445566196532357073614293930946858774853412159814068759913458376109071448352447356849781996842331990398763494450757233204376251653923936283337472207884432028600860017504950834026937077890665980783830832720687793125858599082981200518951275140917796613072091526659120362687406190438339407683690013916110668494974150255284465730596970884931074608568593547153958791310439374529488612913582573682230486689186584930135744088721439193735993204056585263645945412421248904139080178520807720681138105874115583483425157284566322611167775656942944640949961894968049740407528935688406424321585027409956357200144664774636334274885932558316076089134827567863116670258356804229122128556832672594900455236252424976481214881533469046527593385658289249004720396517218869198324489082153886139789677919657872037249837113583261061234761988496729607584894091948114355673267654013638513711567840161695252859172663842921475574063359035145912953453328638879833802128824291208937213104247978858187798434207782564085685188109053363952849242299439279292735992600835074261157234806694417000588079911523111921725241796340327096932121152903682832264191140754581781851554840865109097398837011095534733806478102559851564276624036416249552145680241746177605596976211778915393792720869435111795688528404132603507160961597103534572468061518173579882183205750734612856154945297794858004113711422909546619061348577199622624973061180864451731322527030428400029109232586907376554561350489633343580716202015663805792831137201969799605341854001901567941851775042789290508465880870709867990694710003923031747102833792595047054575519090408304778460229160520829858930579122170987840632068343307236564311214116296046938608918768220019396106344854049397860276173510611076018486187473395976026456887209355945628479528950512964752258297034690442671523024521947727486655304971485803704512837724246038363964777033478411133197205911577605038725389636314629793153039906729756502988156079505272921445757562200108753649929986184155025715328721924729845167240507463924966504357524170978043462225227745589300899034761427494044864590765605967996788967203306874532452465952863863460424001280085434006337742971144645814843001583612935396411239531530715489637433878806949911160598563885074446706749433120329375965651733142647093719041285143892178670826203432359162931176078184132423109544100390738556676337181239769855230878040014331625135325311848926580280760296232217428439261889472586971090962497631460543673014024184765912763258291075715233485638693253119702416866199838959786546229810475994408371957630599024021163261739277400294442047642035113554378293016398887650717694032916732216154566860543962203610460281070880523040947800139735069990291566669911372111021538250218464890573621384561970938492091533360191266202756446340226721284266672670011160250872105104391102851254853222052468940684264052121366354396029032330777714979563142332400667671249560957741256238160729123726131072719363963536758801785143659011137197635006940544095263161962762840991955771042984539776685723877902673736240157908470588614645004785274044478093932327829941221221261536938548986955884045802704454515347510613289275442474604446452581763715611977998143470952116434039967868965568216855920861630907498818607158180935637532153668068373971446898027258454215144958839228116932872479885940424123200726665795234877679546245472907319383491795924358249069140918702556111639176350066463840094707335250422745686442138906553830632498100554232059817606571918664780984536641724585612870019445264177451289211198729487337914656465750841738145804966139396822053503112839018457279125211359032763937659899861925124927343307683294318569602188967443325362706906199229562234096158193135635507919582175962533842793467468447658906309357309249207748939474535344543118947880985723705489394426806937124071749019961532987975493424535848705289208366284320951046668031719912931510119022156838266983612536171926751889393345949113878123458608854842346852026927543078806076040706944618940936604025854516303184429622169662496495870012558116342164172003788450110329361770470408674099384743882614027980855738237113147459873772199461784614978116494933470302000668191054952719077611079946857446572875273539726342166828888569911714677231648090041000547845086001328896594399568332418021027332503572979691680114206584572175820689306877188488441745515601480679052587561341281109968487909825659612636640277478893174864130243602276218438509815286402541053380086514379203048932151202469938605713958048355193923899473621836079713019781941736666242522543552953506767245938867212091772339587594773873478090606303628446568373467623179239739294998219820484727453587917155520133217797200141536047141369806069568478782533729970639330381856416886503968345477340004297790117305035946306014673159698407313406771429896497751653379164104079176489469518038818355382147944608092737423249192515572558050305265688127616702861276723006154489977968890849452276680419491839787150167073945366824138188463769970815050178997241618287988149063380889821199839183485411888959341964622127617586607924536923668689948665251890087211985005017841740174469744358584222519862007434341613448888079837546854544401096904811589960839662407635991368064657202801601263812535169676208332455675527048405734495988053750800220482637701651200358944575148395566433686920830798628324269523089228772588006297881436395785150737193732369528831575540903344030824291842968232190404593352028227124380475723574762011648839887348650733327603091364975276621963834252264755662501804248894613226717856486325919158730159522997961118947031577424891824901437700179381708806397707005218062525320038952230872524375688567381721992469318970450945488062390802982408305298865937560789276237533518790802461259041392122956745522172471875057643251129716959141726013982612865413662239208364911503354670622512724393580918488121137742085924141633453451048729008245778199695572723585126271157710156641539254079271022159359354720255411201850883250153865791176520483604372184846392266076935385595911539892932763434193062474798697309346334147541431312743242001612637363239357652326708762223413872277595765697328570967749057709527037275851230642696306585685521887249598600722837345959919954891733987334521053258389107728367087030318847840465099794639367234869776924292218855457153992181614610998857709630923371204082969617388681707753708308780667130680079084639553067873311322828883210757902969135140308140441894096499383830877817140378885491129756063967569209009155112109970989776571463289430333199107304614837171526049300249661933792332640781687547193374697997732674789541353102950055514267585867977677563944664729746877215245788080852789243284071098187667417018290841069533644736246581047316767651033153013918823627476185016329803851257178747175161332250053538819325729920801184961503040612832640603453753123822128337145449846285102134877436360659520472578763602212783782885871897052050136958297546472279061344246021075931439127326667447377841911757739638969303759732608785774414451860442310185049447588707188391543338077840023923167477784321963282830508264983683222564098087000091606963859144198406211548291358348824252285443229177878139840191604001905840823766676037731987310346938605030060154001308866900436251855364329997773376171548406830273204160614940603378124709369402575448424454083575552703831622419514821317685682438777418973985064519292434255497079789874880630383238809019461133132527338485312087668964640105414670013186666510484760989988454401160801639887250837340273187836246217132157351668855705078114682092470119551935525758568186187955251102270046907009433963576450429893992062336258348488622373824188700737602931968368800785341558279441882807449266065537986847040920391991323220231769728599408971777375711796748413333033728247682262453640526738215661436910704397257491531612608216954987292250368941684377352171229987670449258046574106878436648059036182675790072199229340609429949773299869185200916847429285186194755445703102240415272619672413229666178870078643234955402951502153489232769608028652774145011763052920234729474513518038082274437789053062221497774910220135169437740462798853298533788237069455084491927299533644160879620965627812858826103363800967663223907535205935445251328019829531268956022244511940246917381576422355140141625049641588228023274383682910789311167706049398626757643883713261822441304638110380784486274429019454564284363873117012129716553960617965339825868330189169062549122593938565712237159981729911371442632963019572814347439919585150413479801029290245758542963601479745630232136665644489036796744552538138763521473278016069173140346846397096423838745404701746222918345853975224112479843929765497096282698034796489439163542864840234140197651360685879029968070770118808120360246078020285234278747169703567503709513212948382219755702697658298677919865663605615916809263799065355609606876909800930831088728336271771181794316921175052702613524145642006434516109416832338512712417296148825386991222353453571378107908985016457168139534960719755063754233966711886144947085834731446622894809092988580797306343469759289168190514912218599161154749702434188078324893418356514551428384625221113805683165605879828104507490878860655450745507989048342393403112644667613327818831730639757002787916207867533131468166456759927140490671303411469305210423190011701980120531764234622086850489373647088148416575524375466438697036394847948668529160273558619327831652744025039820234047378840962410305988186638986588772236723523487581571754439180304547568639011002609439196637327337657670496455980484241633482747831858983925275204113023706476667348224900325743589542597425470139457006835043210087217168263796875599688974996061715690339662426021125932104561182165986922340481908452997420713400785548146733170254523390080295698288073022572383562680694127621335789121870104202582270738193252895089277762347365798606461634933758657890951260795573661256765086689610709997158900396346962902009620601912763354262372521655769094751194112757178792462493381340169207485721820287962457252933433187329246913832635775018831298154425383311890751969676897669440161098760164752172989866770434710978230227822163690407676588040582940309053746157237006411562916950010638374929615500875590889083610832699427150704960428694058057892036851594793843829593766674022558250035613651160644315724271747883909395288945430938822066555333703649320251496102261540126027605362793998957577375227455022204511358826277813173163848630251434090160281886511825329725057727023734985982808225317003027171238955521624247391219910090152616430814880675744694385601951593819743677777065481314077440964587474232823872796656015533892708158579094762360731746988406573051372334974606425364611396062099109529388845723840243915411971683871556666273710027080944364937914239596229334162655247424305791434660142778927771789427391007590236712405755903793181121195907391120407766208032879225924944769614148965287911652172383609535711931964155677438114282082107035609206669512537141749244864487696964533227863514995648634712434495882783599505184253300352347188842653466918706890372100324040762249627601802089349041081406034996028117988693778022411655195917254092446525557774765851267778629727868154264630861716886469532924244892625306506606932769199096946945942202919231576401811567656059788846756154062065668695029788292143990862364461868990380721887145370858907050351927982381116284783103681134199269035377098331044427831411270266485604304095129121906347293912246651846368038785048328339981181266316868732223973069886833173796635446737944394630189881117108966920111616203305864264656240049857545155552268987530036483629232853707419043667688678469258497038875896344316838482490214692071710459660442363693840319822484703810798952658295046100710602646551332815425572209623607797110246345354480359208014342310686859823751674168337967062522775657366736840767037690759581731018846815818777402488973880517187223872542625596096349163898182272698987914560738986218077945058706429380666563441975805134032209616714650264103881778948051802872143756919597186312957287502943615783025667399467707318382107130651046720818962479144481450678536627845104452879157269544251683606623305236429612074583123799962044190102893748098266413937806125497822141206130608384198465549139186220454366539905377560308587660413624997161328853634597192526340940769264484403590061530643323769428168446916527283342911818763227848027084226210110198416088577391187732942993870579864770783067073495640154728564554368415428088186866819548809575780984573859589442140689258979714482047885201568611389119282026242965574128121912006823270430344285069383150326976820362948515970329535035166092377929568038712760653326511465444589544173399630752970762988967238169072149303448455477264010969562520956681738380964901137658437704672952186615272250599344659785759283155174136246381769262895327115876388116645224114805199067303373801199056387098256631462401686216825006723557831822430481768876820064989038910053092746208585225306031423112140321063662833013615602608285928383145719253888568526288066335473015571960717870130297387367501629898906241420183181644352166386074363171208886076691299323620692226646122521718818643352432789953078240856289129677202516685353371051979378756487702696466500438649909256161527653901379518447287313993265150132336776090930112187397585536633252123110943636037261143079093595028557870797338865669408136746617699297404242474616003561015301627275782631512304252538641480269456311658523947036270378730235041285599819046432482257463609465106902530987920217816357727434234742802008010668950839436597055895172452685119295192568105218430279524773495107560287299566651136121612628907588041330566893440089998406475141211223263074098280036179360311438633152325179066636336929145278157294252762389195193714805452644918013373687434441881772510101087281041007870437816909529671797814012029005617649273942879880215029523108885258484626914119716060214919870757895308388459594325081069201876985630922246506190465503033663475272364675618512644846137464069032216834484107541210170147839511509512376454191999597099740429821197667724608556956278507976429972495887947487747554493534215475858349194926003030827903876609654654575381165920476767273591543558386032608772586868334869690800400839481046292105988088049120977476911836850344897139917228312274896305171176479519616409962333222356732527448535915583466353135606354031339713561162602213899070406127936712677744791690058465542787967801615203860167829263728168478076200200832317575707187875552527901886124259388481172225856608344319431442377925671028110037533670191608358849472426218898511044325007146174515205536243175723511551284387721030232202075395957083865619195262836165850053716790524806914898124011660467309399757624953489389348099498757216840891139059371850232498177587984490028252380172231888799225095363481105424854351366290896610548694366861899144603888940533440945281596688950198494212131587851582263858305840735681344785963857398684375547775281645220663309739575808335161890878193343967237610292160361749072969848510175396248700584823164063675432798968699699934819474638909252912287213458520003355799524020439412249826840623308392342908803101481559508502124371051204161132906756344502036932905229604560427877741580707584779022843071882269968202383226935959444771807557830701136652526571303093509907064483591417029716774549181542446513477883571845677941432955196020260675916954651614064584116364040456795560498965040837796537472086783681210378754257591146114926922768908591905358872664898001022333753800688646622467846834569140147215725219533657500225335008762582074557720119891519503154282115663724970198824558772249840456261871804689703449240720971207262802416606282190348880625578636027302331913297638684287104818656288957529687081315121896966804633523020131974552557545482246399427603994949872573743266241039102273026913018693604271039040509301612219716684267263054973419910969128205708787385134697388316750846250914351450687237129418126160951322519957012181091279156001252359259620606094766116775337519285852707802566348886236747945943207727500034889899082244451601787568104868011443814945214091974375587438921703641125893405136592813139904884653856529366782929185845030655883881805162212952738709874544093587951906063275644796581301167841631268025693837601923066309146790198052752324724821188044460390720061439751049968955486003210034615930102449312646446638269907260103516322646287211842074546540842928704962153469486350126515688330823950960920819555539470492135663719863534179757217387450771813115802330963903306358481222175657120595752028517344048106435452711217437953633384117780308496330011098206926696932047987255128787896487492398178349986006217702015321609292380034910654761112433084230595687726051415763350786622494179121909808835821794930517585419949864537122956936921331906434117944117237327185670602566755576389881105423187441192491051046590878570275712738690076863358232818862761658574920235023223062825734238900557561913092139335417947407677565253231851258512227471047011941595898167542974814928481158221582943505971286443952082277532335604549662869587419782291659017996651272826266726150136566893932212555042005305864174197937686595087553610769222917144679874322384021914702099790731926908779532029561670094167309541012236507081075420959266429364327597956234799701283588841491732389402698589710545416708889128620266567502022410992324923606197105605347047817284828349699146235563866989703520814830084563527840462442401489842215602758890658908590886490641753390517216378491248121489109134944886020321159470063534869543928728193256100694299431266520589139784821934380631700961439726807859807201909411243812922038661851035904502454774173273819068639318808250787049660172407811620283979735075943001281061516114327069959254055094375837612406511386893659192039071932283108507050986839528685833057334943622183556332946820640850166298653535265198403979819125361706991864826816276357276667430855164976479013683642173435198742235786509284019214885736029344764035738925361558386803410495677141948931132402538059163056206549042853805040835487281566247454906263508157884631410792373866444052532897826075798800354495405570514172710705606593582855084660318810308834377719765739838536569754004543559251246264022846531137662143404706004564919811737523825154278609728154024660641227598431707774522243736698115666643421844631579934139559779122830144184116983143791254006500602655749492833434346348593388260221416645675301281748100702271174859526293847696409529136464919556901761242968708916164399116963883323952744744810159799415680412646631229495769771884601517737596024606904890624614814393754165886273525854965752341323177934681268196904535872997871162522476167348531386916115864844264737018792510331144532923053923660498010220854977050063836630975312172000037003758701733831589780907146854548969994332513650844849196301984214405495013360743736144360345130034227866146689922981831150683082183116779426487884961977705190964126853634283722328945146097827684720437576001546161764476304804994111339180125784296319115524701641977191585490914296593471226089070158649878586189109607957837133818260478864457244380477900775877555526529382812545730014072334694834728672526866114039685622785767321426878085231097286154764682995326099187214842208435922034255537066392042644508203262310446012938028471143420590491594252552396837515941402556899226371651478767724294877466019041734129108046918377995412677943624621972887950689153604987171962181578086103654310751398694722878382792923053853817731935061646213533797338347865704372321621639362435488025095719123683996697760803466443371382639625270983553966878021980358974207971092456374961088469875278810383198249612729165219183678869687077565664981681047695465459714599595876559583340837710610825251419018334163155851882317445656380719611823805036941267170269257241674759834211903334774430356856829122043979300042616646105400505778233965585240978200869545832775436579299415089291385147264926307072194297986085963913432019474684110341926661396988948564029345126345133634126150466579514037549150995438562501170102813949417969524975691712454436702223079629359996601801299772966243040691591764653596972418528954706181802221248716884281360669566318315775946125352922058771192381944818893688878901257868187631466076756544300935304416329663634521735232105139486727502662468574577644913913744288454324575283647915377620853198400744967643175724980940318273409377688500661492384793700108134853097507262020460122576304613195081639413828573696832983670363155612272336084049224518151907477186013567187604808866177920425045332681276964674704499098233445141635243251237905779469587509992183042970011770957552510334894243535067487400296261494620572018593953427511325823614134262718580707172797481351712992600320931365662986505424938408664371405555942340017712324221264069886931084449763979310496123249406181113313109129470944822452331764200705740095167483510582314086747177379732762927859709034538646106566330016376756747316084060560730560505189404564108021394627769053983427467392954405101606985872617501545457648241040861372477664740188488173087781818828821125479311589014000647451489065411456722448708115169441049322943514203850377563605286538462536511546386924478596386880499123771568161511981589621557889297733188903300824473230132266382564717244925540935004158617192678839780072398435436162499298442836795406483753116872497086671592481589487770024058444472452050812929576990844026213753740754300183977361695444778925166965909560078636755730715434357854585523827596263827374786987657546784110226409586100072343244278889684052976732541212237025758077676012679468150112374651414468366781625991404885978921220932922128764566040289490822745912756756768708641768804478241752478693878860997541683337716146831962468949331277120796998344655214548606188589922383099101314599153690284911815868267277944565459955285880928108203512570194287302349577525506733774336605063733703639888373800082451132626359269729555572586891570171078794660194113225188218625232921901891794480142126373688582758863075529183337970951545348833080919257503936986887478316466090803466883187425933412800544215495966745962857630628358709649262828168778489594394634528051615443988909109619611037110760084837328108471548679754522816091809395117445118989059730059860700186715288000747080449894649166614055822575791525400016833219999336791837960873598787648928950572313488970256575906961159559045733591934141992703653967262611771100183134623598681540425745972827388719398897362726197983204788175047923308333563875961887511171717870251236439089306178278439410266842355052306412549606166853389280461794265308113229465867926466191036949214636779981313249682499733607350822674370689237388320014723263872304915742671989925581313586455201733640584501170262631211081901123431570234317972301125394417440093105315425821561538521676922496705871811431174766402134140874156305974822536538750034465634054802419788312164559420773324939417079223032240649316522051480966668359036743684134113630953483649668991986681017144863702828749816855874513540676182399267338883814020963096071419825932829389747560274779835671296911605226109193027861078286417447131327576768117964526043316623655204416456178559860278156550060391300935700535019073388567877583808857509784462088780270085640914350268901067589570475988338506507849898844552679343025659072811517693035122524417169794970781208593174904477824457214587263259302100260585512336997214445366649447699087505186854649991354180556846182814009094291522441342408577064860828038610648070775522079562489004248969876383413625012307720748642392165512338103873264262234780711282327039395532595518475853615380165539450008659701553288815001297296016021180259637750089983984393793402014972782176288531872324635399549783606095763585121436976544690132586764002572804748351515072153008723207260334007025616562569934691929492304769092925626084884258882868124057273535608469774299983337217672565341001200625293073567992400646954892613167958472045693345253184609365924539814748543912848508029335732778834606250961696532242781386002794564170983308763772837461388307908321330719367389187323510732509188757202256907829392730648197151622489480052406481355176822042930504718986878808527475330178379833997157701205338611866689169150930624390336426166047157480125322358169650424411556852663027863465573847737055296478948766497169238081275936487708776814300272097888530719761764559202634300069832611870444233760617028333305952791968671184770900938152997278077142698295395182530852470094481416298607468735391218657195113081888969911428575098241933069169765950047794411871427366398462697488047217207348204586935511082725382727741849220636606268825508177420493267340954273834270738283944348954548435225047723092575863736399090726038945629339783249885705419641577126260617703168140949032071317231441780323050317440825511394521396221261914869842210765661368824685486796869200156166301822992549307047567883462161235475174433471727768002705731916065754525082657274938534752158054498335561682293059070160197427008249579980973027667830075734236784420844893325549651821691488111689245040754956590918969908362761095168245013090401875511231382556745264418696195837872288306260341017716825027527199091050326831932126019153900901750342454818765096081866613369790266799006880029862045349687220600568651985512421380132713559102830385962579090953691879720569435596067194967896790011101061092196967800600094117187475139033295776127466667576916679699605636093900138379262358469811030342311523727185228244461093159055304371109884632975069809584930744382761834293362266056372422382707391956856596906323136072438990721440700054138501748049288537517061210442476993381453182266195453830059771094895120206015370854835540163341791650080800418863151498304282250980544447424087398780955926017557786232188616311419505301516090502014354688463126459652224458943095663884904247223472434451474159250313675909365872150868655501501354689499908748347748012955614421351078277853976932246142197473178012803817123514144968330370151208945559523053112826460961934098386704937779703704724402925125197296228104010467485305505940368443535359153370849746116256049334234147242215584846537738250878406656519268490442796518122987574199098080902108331724626545874223691637840111374284358335605746148958092988835431820368179039293998346120439864892357359784973281353642867117186330768845546231389751516950988640677174613717169475057503908864818942043692406124557374241014258673558043288716393160950774783884944363060435325033474269458922078673803179047762698766657628392780541577974742704881843237101604628887011122600905475638994135959235110722285041922538912042429466200992637552372362683035732735108595604642019575568143441914152999017159707661017438782129625424344684077286920736741166617791616765608331452676744138992026943305245842923736739765068338044305313911847655671279360951434872213686785958231278956509421694247969439562815369731243958181562969489054111299228456708613016749518760485746992833723704755271319751685276747015681643770094054331668214131412041267639800265346962038233962206485422000228361171230833128241151667805790338574338292381157385129429589507280775265360818340258910511163577292282574111971822805940589283231027790717152625863603053464075244848145812784691758917520468358668355345443504904044130651043040296913776673826352218721171677102932597624504372057238339521495494679954996335085757651870482142119062092846585567058214326114410585118574145120185352126989345287985832733579486396846322513144019303244483493744731199862426092605371898416344772836537822992958444422905308742167075553783895769054352070996776673512534017915586951137763452989955930737463384202295188035725668429198268330682097155123430136166545598075949552972456568308271456926274768562645648197909087559123921077222463254447722823470770359178215247212286676068573597606060878685815170186748088386726562587423961057745623457560565656803407933820067600502125183863434131996610787501707926436189415150327744400376645477859143573269176027797221286278882670508346014715549333251324607472713669680419997520427575519908928994366886712760827958081433767090463720310714791083529174380055736421539182721714638935912053492376110362422525406262581430001303342295909829546706130581344156368420629118742461346458861136956111700818193899950986930265397327744409114669774701464136836438603491459709159455813695872886763120635691053409358423576864728672205285159605607406635484809102907413390192469502491364405705823948760243711582024020331631326919462265181024061946916603937112889901630798743866599847085461916543042587657180245400225860257822376486141402957520729576954692294161477131867704555098606447794652873966505095847265739705531995527399892029133693582772477932247676635325805001953828834856199091784226305678080661788600017506964583759914545750165322922843998001585039252292494968738357133351994116106119341100792118501540005638883470636439245371769828626786959320477979019815090314298849518083176271265268006854745523272877007412811517243384693088436697527161859119065321499756374975099223001594528746761521344173318356348638893590687213469845028194141454098263284832485682573550493930646507076353542861657444046257200418845896599371565668057236575075036440318951202398635673984625878223696023649583773781244310659835360326965486586411755380364121816756044959445825554229565202431942897814674902243826810218720340050231569288854911396648773306252880900360525673053290630073231602156992340302085726211919985117124302061591427964067883256834409384103078238735420061379599470893590475115729104857285943508980203848970229116378017787276377137612060611519170536430343574433953543468805114447365597509080656314556503188675485268729329417568868125639781538621677050581685062047106584381310246858732886235187843722093695367997333187824912123620143681785457807425080272401284769317331370344403927571462970314249713466483140291898284157766437338272261118120011134505776090447139840752627425285356425913262208336591411812002199817410289302765240752612997147289766052996768660036402839875538579149996665509460508552887803736734662618091325632826981185563865095609101122157826665913048958596440889286824274372043627496835563858445560503823483705942926554248097414668842942762789778567972684601457304801313368422930182616086810317288851118092165819315204551620243896241831345585533587215668590162111070364292519361035590581455683278813260150210283770938445814018301242756933873086078484244553783533367032903683589368368457388910151505614295428631590804706046336220351020643744164639661779429618493463875543452386524038613986129018821425180313404928140280809398106057161668252954256304265872597046182417300602967278964908730071084629480502126220548965476671386155725910699176984883819221437770447593593958307484252852374808988697559721307157268325369905057827568719187680948951922146718815474223172912638842932212681117508676849063694301844119765204991666523052918506767921708597929395504947030069695873683502965369517321681379768967041115118902763217415976950605395222741654300509541678176174307119001687824697323077782131362322537999805322133102827065680143279751302783702857211813543661083975218562433457892930107918066306666184143070658763591785189254162561070803086912979895071200279941362203311386056514772656184368041501845837424102489941696408865522559903394217592885904062348590253113438274181671692123338161332419061676667845086889453884187749894789620716027227220423152419350795729502139729069456195336811080927953194136416507707729807710559076872278358155789271579675333242175847427939754650028480962759575953550949263115024837337675055615164800919143577460120489146311163445137938060901082340731682802732027479289086278596764179581100401806078327068268213563476962921529828019048589441976680171884241398489842755914944527677720993776804153388974439110671899543746752665933427932986852161262915770549639869258088840429163822941957776649118955824035003174970395924502646138550538202459282281224266758382724969659864828391594674168359190916874127449516560505304517685473936042450701537548226731566251064572957968397368983352672767607976499774657869472110338744315223715058068627845210502988495741525306606641337757448468272227062708080432998360458601408435411195089893380427571462790380568653271861160311707224375091515653143141114905341371771944992444273802080418400820971254658995839373303609995834467988613585034207630242808289274690711969999596247480982128458757486389171164228233094169774761284829422851801888654562327176137429132623160425602169335558180959232884931628918714279395472585068211882588198792438850145684130713760570637500459834860419008355211130185808585786646502452317252505524543514959959707239479596797764608207528384196041501636552424485918276277009624775880806216615351990596986630667384530305460857131286983767808441262620189682956179172405073064677063170369023598884061805905116851413949847596894958629007473163448284859393124403463478661799061497392227226091176367221858218956959674463423561313571763153771791439748036428039830692580665367281969863538104200939343420190246401879252313909409395723566828490703136875334991004150330227233565226354064046055729013497966259844547530319937464696914180874407831148887384735969967000108312474606122318478995837305476115964851010898938286352091195471424727323964869209951655552795818581179053830513092506946912298774006768412365896037389068344514000356831474946231801251158208621689893832409903936645290532008774620224625636562498142049834085598264940046089929359216895372864976268472483937070112416757176377334194625957137356005290646019187179153899527208732846064031625881847103369141079320893776763816296161295759417464066807979342807484986319069661817455507295497637489913021010187218792729840152544509483628034524098045122298542710738418153770663933634886957728969678155008424469375479990147845420468718742259832996707135300340623593146530038321704830285549873519917820272507200289592183312897665224461374768063197758046683784251762223085275360901708541563442927132652294698680939914774592810533492440658787369731998309169810776436932427232477813082183108974157763128264563258234949691895967201725482645634099709479642136522734061716713045410361870095288140217727807251479369095257136837962109620103824656805233820758127133234602850110018013925718490497184503281042507691478065941855755895101724759469421377940513005276553233011498622598265659787823037920763747386421915237592688644875130894775280617714052688937201831101243842522832314617276742779570716133287016090948802834091984407912441076902200460671117764274338215878563730495005651826577591854384182721819277028973226373967267886431276338468231237137369759685912845976027311457080572015454692171580166047693498688446855725129497407348981525100546455682680983753055627402189249500364966894505518300278383280679368849064099479540133163139848829693210312827040573675528580480838952426957093822718007834650870496907998734450231999631186857991434119239637151683198378132842538052085389640451900074093693954938412650954418107916054856061030989627198113210566467003021953637491021609094597653660087518425141023369485114732234578030985754600739460946614583390587009169480753156620348222854450891550935611105116927304595603366757761533849943608728970014121573896062409337060191376840467499029357420798192869424049967167862455953494875870751595148218380137440100263632308153533349195023517320875010862912962587897161180288687187400559125390028484378016798525084741244490536514670998814838148848313603274343949845934049169204949206978360928055203543243615805983052679084300909690544833748191418501149320137885629680104124402547520227851846020462430114433007828828156070438972879201967530038561904410723039651945634538414069577335748489602493131157463414459800792919879802628448616492468332051183108754563452185884672530554414339824802660121445686572924196307227039376916632687602928271686050461685303602033846055711507845839643682655457204026426771155768308262290321209444877194910729613487877417599899786576773545726215125717216391849407337707293673319668648589162668603960672709677579686318810850424969394632100054842295179532342622163271382455798678425494672634729004823699918211684278727865596459381040028025592534129975911180971735217852749357951890052193334138340336660864246473425657518265215222281909504421358114281735768627373647883878373377279374074705084163110912287683456234198563207139867818888135213630681307943498524105174177238874575435889313422009073534771598878184351749704359929046049217379726340843526633821129786977615195276781806343094700281619495647963721446288458337125010910338738502145876983395926910568301126014470621152089257618711839699855202104197371309597643710739061461051658493879935544423577161552644794628429608361271086993237477017711456427176775420783761358044672366323706232720761556177777526507429568848159289842381552854455658634692729565794113627924125162410851474216471319593003867550766733358358414834473848188659516395375466869665077052086273110044670496139832581595316362220154972062220875496901444764348310526302572838052603323179025011394216926725381378637631354086620544006439787169203503838602414676622195403868725414174908618716860935074378410793273497592598071725458843372589591059993475740406278858930363098307519273123279714261808026756352070135718325044751376009816520095112917874015479036195431741488117387099999436078713722021339273967813995191735752400715378278267552050787026647732019219893060897087451209756754200279117132736896302570470143764970190908189232715070018167910058482502958185541673980474069279977199410316580937705626272271417400636884557917977759146835557926357126918152028524214908844022663672303129183686984226019539600518307791532843546687225500328827430264767614845059916690687771219808216398658177012410049804580403379571569288504210892789511752711644908720935386284033637879940325255507977939075929384213491960608364747235016941783207995877661607755423741720791788573876712945596479991141134408263583566625250820542090254019808391616164801293239173837894790141581140310693906876652149824815978865684478068070414901078345852568571318197315661260805644019905924820925640734018791211655598888462441146706811192010516089850353416567519303395420081831322986792125646859026678533884208740891259568302572528848413186021480867306389808172237962237795019415035360371083924265090933268024336469254374669612011323043126077154471439263886535897812459857797205839558435557050870773174588681448118555630529247268918861739082432246884082300887975029239246301390337549751052528222213699142766646192177873684936032039512629067717511121215637076199389882675668831830282117564611944204807749027707739687148950463093676789949234738613592347397621832348864526093585250700396428099693291025742438421960491835330116722028353026515689312936429306466793223731284379796570754191632345527634960532970436325790200704484785110911251828106148515995264577551651091346824517029791734363510756435851720919685788979933578224044688261441327891339931790254810051367142996890327761368147545313715731147425213352035870758039351714115972042760737492727779447540387839584490342981356545454027681165233827778392604094622296852308748603513078225867760856837325287511053681254006091316248717813447362555335403478136906372124917033230677254684661218580176994591104245199859879721391930529935439371378488932674016064243088223810199971434260970593753026503361380006065535980996280043492353782783485320224592366341003999328064342363608213517688951498373218251980332201218284574504428945708648331152675308878510176180204105401337327631001337325444997130123207395895802685544574763970684017785709355398590359136754952731672627121094704780706978766687462131879068368331118934835479123138358869063158115022163994930867242332180998226487628428185009966487060165485594301502033806835084464870986096945558493471598148463451382519878661291669528715874009263636367013172945117658978474869073218810985775014696086097856123866754989038094339143013910179627573238189894189658781084709722573157860268070121015929705230463900428182367696350176325307213363077035996208041355105673407870316083886200634539621437301028259561841672789442573711299566947441865700616346632512617434404579009696961488540434042334375859914647704605212120406247282520128945843282297587142293009134760731595398983100339845408323687576626564767193968819863581023971743759881863906433804643561438824112817175667442790518928718926160762737645032497907506204719949918286713775457682672512040739103145741772478693180424919163409935776953014180224203316900331833644442408654029253383521111607734996270208632734026976783490363670182356954401887823159419612050928769497063396055240997320153647458443471471478215307606347345628545145013982459049673316277523577952187240719449964736118756877286854357730971168653207241604223817133362796969239536047786442056468044412527135505588112839503558392247188571827723503718295060157511601597616208689361770814281780207617816839028390352762601983681363150634877858308137336546341818390138048678436876884932943107926465637330871832916770182320875621003757943377562678382885571172085514226161271146504700808881738420702439474264356752613416289722196991855773289701389453785049877511243378224804306354317687242943671066572539828875021120864850520230609749717536307683669927224879648196627094701318974664352017878882520864231459296496759515348490189167914096481975315365247604622991312009817068653509562407380478416061175226012048911184368765945662443516244956153529380529628943568545730351685894892603528789057085506747129518025952665473936116547279977254016393017031525700272205516794307439862609776778473007486162213607820571344414849468385513922019776955079212115571594839674494586812704864731454829289077342726344244291623589451094827350834633574996900304739299498308859299320639676330173244585456899507945989815955497057087050752777265973528299767465674958198851489084216459511838664623574795978707338429519619548712460541848975806413329095737049722609896213579881748257791071177716324197445066841406042969422410270883167768453491126362224035714054173835593015083115260631633679501214254309077984826083554958326456002584028613079204719660986572088092571322856195490382345708749190111929069480145677792984010012163839014240629463225090499951732155684830824823287582862629507112009602513689202460423734520760591183144833206621315778236395084565249142354670952651263928148375290873661100592910190185003192765034967183476836723723153954192525575911035723363012644274783400030837391525658233237644493103515751087831517970193455713079826325548329935709989341129314842412643655134724747570497083397896065422214149949809473048630928853875640755973654225344521778907555747276885053743412744632556142186532652309591432817736715259087812799330066011968115345933804873016358504291051133833146633415188014941167952159500130885924300782341945536205244927345851497918761794148022040140136229596038581810102312403419262812000376102447561474471123505966872041256402998016220566460533954973039060775836990892324044418285586265945810660675892613016074784127145029703912826122355986106608036248413027990579102847786658433971088545081358178358940936195990313706825015335041274750281019245466862950032298998250069162739690839068946802225349693335606948488206303428771482547690131448870488821319886893296717167804243033466739191773401336169337543252555549849655980283572891754146320214559877342424207620476717560927289011201870828200739083885000388821695707539806913985011059037881973902084688944988922811591637261789541296169651237331316847681698548547864574968492506023788335631296866878386486289150942772864584713282635450222066343964110552941859002052858943423076375734906882819532008625023218920657946067631238010309328770259041196096208104128944716778931263692644693237143534502686170463783749501332897243582264078046473175059378883674669465908328008786173957521741580876533152654049130946537324245509700935053967275205384562266634048651254833289106675587814258247082525087688437340003191096515401636100749760747478370338179409293764344527708151349849486857506213336196114172753349323883271138365380888747235440005785844338882321095481136340102765973857264150894544403474739164923317412865335968468900009283913498583437769583753161836462012977794484073467343903213521117257125551848369680276491298600061680685369352738033947317977104662949617501999514059601582075803566919026923711445917920976674494815006290226752386186385094060743860469868937137788685685457143832459766512131949181376694485826179572762345489294509992653427621215131177191030169645313227385943733578683663160128858748828541537028839794207438618427329859188867626687112533744003071801516589456329489189624867454047034010775803136168454427126005274349534056666434087713677827228664062975198277090612487135689610032030762365286873865839722451730077054735260736835862843796765403719878024162739832432838040789651705471155579676020403366822034978395871788958211159186358540219428778919035063254481721921582706437899947827044119224101884603565068368677733503281485078503329381248310931864451230511646523117103350148479677845514536785996889997168819304622463601637669156650971251382180876054288153359770653981238375577172649772473330561261976775482844798735654292764344135902818474660062587301291060676267508905535154590065904103199767364342143533526801678036901650293836338511012459884075294760243239138849857522360808490290467132132077719613903605610638284478918579189298518936845587705394035161206321827514736586368767050642272929800520782102927806572733679791457520985721738883686796233644601046255838637054367981128838863400675591346854160347275144122322631961198736182566245177376966158595608635351676562172435392180083271101821568104880928319477151700537873987587931248536639058662867405685621129750319970439687055384719229042061780336704672497534244447369850528809012498285353499334479261069714305715263271090828769080198358559125917025500226840331293758150353448034707332809273185224638931293580502367364734207972166925981598374802571349750540325188018118722809565092718703485330661287374987536071915617800563378039074797813235416823852039226900970274626698927633293597922124631375964047871541868008025341255661806874997087495227422400582171028263439247791720334753626808511319789041436903933011549866491911663877270640250909900406879491981483025263170653695174722771143817287454139995244911490191905069823417232474049294611666514963089326005940213913974378004836051389661231437645696104034829409899589730006686899892971896824818179284163095143112139116755915537607483179098961883256491121345681944913610865132677037201304127025007060892994893893271872193163237234576185071521234411724211622639656032313796799498425574978745614876376489030564661016557521840446449609966693698382342473099107667098042174265966707787921939616717794292036037703181122732711702526064677977626358405448340141976281687038872449774279326376091165446912385062507662142981141588024578724023091003011766832224325506626381261308640777589490255490821148133433593342257887682843014372025941190968714318800006272217491258291352363476327049413522680661865052409043687631577890524074989218653501333091160056136458798195795658875396613370020657211532893064349098302002717030419112837955007403719836375040261783684794082807079527801144767551638286386387009391383114957356103831429775251249021293424531145930624177190567956764763732950064375763098906812164543312981013272789500707542244223563675999172174317935596719561508861420305401552887994056256705487530940437059982776295668786482341524659071747776265260738253142501299336995823580431306700764851440101628437007736148581145569147154910215611056676989995041177580777961306917011897737527013168413634350320444176544177900490570438046195549247211506376637304578360215445552490097299076142319458658785245915439793211864344916259490014425416257477968408224111186662486056680064756844494644814277202084536769611267842776109931379250598606892025413527240093457190007616070875667407222339140558563329363993130958159153569249198646775029115274069712381386712661549340835245783240584859249268583593433878958872303330407179795914735105114108803228753307257735992226876365427089061619581540836381969202383486334277086876012922728608660737481598747379883292028714789823357167768721881080262827299428171244881926578063465671316136648365379803993810922299964227509459043893911934453315994031470140205581039436460806942688713715435308491677729936957367961162205879092796516507128997184476224002194877533896723513341548912635277886671229052843557029799741572186736804489887107654512549289649313094276783224450418550558733239947886762236352197842743527518877842304959269518160737242609697616472061218582122843215256609645079397151982701623152279211461195840563022924072806407671641493480480254588865326599358617732579727846612961623792854973602013258802177188290056284566051380353098718079497181342407999478230448027705907039615034439920857903532491722673218758655618708555108522500708643374394546871890240181006503101888282068100685937227712221882956986228058278193040504671949351034528863800461639387994178071408994282019732219498497906116532979142547998586434663301699536248669964762638853982394505923151584844160689452219572313757797391058517441344785541452311656180449421252413550714275988299301854908996514599855608302284311689677095177349546850738140563681774607846834440287904130404062817525315606956403810187761685412086906985239380893701934157131537463630569782974670679561256066336258968807053963778451449299755788011856884879061932378992209608856656406198892523070185861317869269156594754620059313561418382084699471515870879814541298605226962256285131484633743598202872134179602263290592889946993747498469189282205713671622971447776902112614564244235154061984105418936879015630321006983190957345038379331423681242839834766524633488969475828332464329684000240349536096573943214400799191203982914486225925036322012274623284710046236606392790346236494282852738359316482179193688320939246890719169847179936593392858017378710983300603051415476565328981603520938250781871586244370397569620729564400862197786722723435420501733590446668719025280207980035251676386223439153919383138192644080199498222101965918265446740916468287734111912576491618196591155410692212819604591627446465130533467137881891222018958215681826118903076982294952214185251565279370836682194983833235134069219654968023864128775827997039646199174447744740991583827095258466317094667628984359103588870325106092542484599487992901427933792863883474829772047705734901313650686480761532408794607822014381269352065732244006102488950144228267672056783751811840508515913371756159134465526301925629700054810992422608871423854067954010701302321700604825796591372634289249856360088119054610198051523630019364090392312235243679875437060812005734484450768186706290648985337026673310510269725209306488851659831292441176421665149969353993715190300141246375322491772957972043160639139361298304845246932906013111361229298482419311136074726140842368081524735560102612210883274054665868863458717363262481369961138361115299375810291814600956742798927581906660196180418647126931765968018938762055719428034906538396609044378402996735159463415056170399931415084131323618542850386655555072115638737793544143338755390206902698285272204092315248847991324329557756859584125540174909449225283348101942116247938457360478673336578751764055001852428787393883447890850969850005469341987297527509086666736749691319038423759563195720432585475099347249404568524788054552814520740426460340800593560254561500238079074230805482729476610896023227929510695419582466021427043077146135772983657231218819019711175701756216883668439433808810124874055168521019648556767518898016139860201420604193293044069365531270517562027685392557716893223001705056468183027862837417312693396985375986487085769889241638107240436990870198986315473920612579636686331812193468922563948314075238676401012141020076113195036549806771554662691795342659112974741008802401503862754998995150984423958982453029234213614430143739659825362994747194243754252938603629610086075405418827719611604241746313869112521113886161970868711786955798636627983082497598661560339072440569890962733687092041314345922229993996297826511788476257635535862840356069586112885178556002783096825090450561230013663926906143498983795753397880703417601962752370280389902685506334700647118002948310602228607479502666208927790941340317209038035813851467340916955372911245484935200271905764988257266752691392801404714296022559389026348211813492296543049487311707485908966654553283718621895477410380192949397200303560332999711110994500397248870368959797597244378438840096647814281337977874966081696393449963197481042989463120165344973593667165825327360260941481002574139890584891715356093745686793988911932377638746058506142305677819395748580411616341709513123985662001733355504968131742055670586309048623511101186610069936526509541105556485673880468608835023907133601263063744928801043721018425370852452819240531609147825330346061763824516448551987107572561400311000526209762254177928299929250308462839496246342990543174478196257568467174779358847985418847828272163678727507306951314123516777608536036514056130368006968302841388732153867437233720341139004791014074966108138987262280758071294361669959901015189753552743409789885567105686500241941287713132668188809382603344009273435204688016742930731535540757110965047249356456921026252663237635221032472154548603586651461967616230961223401406601380236111835729276909423182248927901307197367317659254702064599024233475134460027988301231526724707570848824271226704518104277836911603440661696530432547098155556353442082639643832484756185246143142265122161610130451918654318301647742989122206845896070960132295735377227670139280164438941032245915734541453102359074652946307432888153674000185936285943669276288357398800747883401734951498554337050871709103372980870996170359518983159317953676232847881431637763041538227307743733033630729668329697443943411086168984217625414403986306582266337932850174993399552617083724491001690286937167642232936332981824784859719484211822086013725186749523840170769155939033227880796867226656773280530350752836646845478649604346772452252416012066689324117653873014749516819536999660306038836462092456135404292767776268408128222856168518812690916475028523644412799681001683741618473413695060464027016404182910277833881689415522176347837380117669580606488496945882313055882529968865134665582925332671151340434976070121682730743097108835019329879350634023102477511721608799956398741076759065107683246496827981112070744207680231811742489660044811128013053819711222437855018679339331123072667726950834493252794266908569908656313160603832146729590664580727254698528188580717974173031241309419735413112858874653844686740390011731573957718914078447974254624583339951741410699160987333969451398310095977264181994467072935217395114676416687424680802628471957453866401951860080862444121639706684252345915753251879300806049104035532055950640685840291254981581048785523811142698040312028965904359186861730119385125253417554349078185991092092638457553027037294229564471199624333076666200877040713004868323418346858572317295770423547724854846542585713835322184090871392603299611086233946064212730990212214510450593561760045360156485031835362220504149651124390394246933875608438567639243810634273154855091101612591756505047215694863558357764842937242153476679009143450408730056867096699722508237662717021619886212526337450545617174589680846823563274463973228113191681224624233528255466503167381113556593376889015473850950667563564190755864182830128417170829364840539316434548650275070194515517219471313902221035777823279455878494282053244234604207015283397880058377523975414879801931614148265284712428359995384916726146534440386429927092447403191458613540383205203343247054844583533139596745873533742701680773086843848758838110162986404396116917289949948351231558399908606341905605281552018578768835994888563801462960549184717827469416957687431379176415893706081164472812543591807166861064892388891450854436391224217425966525981537149599977554595341919704783222407123485941279206443490256290125474308448523141640538391506161207614125426202365574233418308495870809504072358494855313813105506153865597117359485178953619494261771210367342586859364014931021272340051729299848170769647958767989220316536217949119646110324492679844047250896519384221278066054425104726343589932188477289285051338163108888137867306655552359826021994469998532850879312195875443798735903417147914739768372132727956848384608951969401536302163807775466298525384145724060826347218927994248176135006288817306243619522140543530031631380177067788297789266388115673549760673221062309312774581387922484574850826081141515424133090593576955964371959834011317840462843246438311848966510090866415148844306794615139399094214676640219392789094371119600377527556704275821730977519425769537847936478128202165220657407901428318691442581500360212772736739965607158013806610167971438031818018397266539876093188756763781264114869299160689990632978959125214533329378109985789080285051334263149572937523649426620340320740498699785411140023784196665256924010839624783126544145658418933903986447694196316350265543636123522306639658087250542983343182565152059518140979066407062839275898692945803826156463098906729472019576137004416081597702060542125232722783166106350162643761036913749640758868324018726635399694398568734777649749238049098312110449170493977527693304978519370360926994547621228131019031176649693727263675092355163685844895637597950411222799568191752970267650360296674214997743080558810616828106355230443178539750175230656963052482938396190014489397123511719443808500892643508402009825078736842537150504341203328518784306561275539460322504016933916933366403264982979927921675111916251602989588855038303259313132160102602262284729355995920000805236097640634049483874415649790260176759323838782209200248484115239321740632824708274517435744962445759062361957442786765299679986536275376655155325598537178660766167217860978667961528585031210616110779901639109269599392338745143374338381975690855780598724994926766711948553019727014402269655082923123165717159362732794160648291625024990913403864618866884783996401372469795858485956687297797009180477331952271590915168688911805300547037866492365444159720144745912148368503003151601838944856640220278465102323757000415873823337681213997673924804839374139805387142321953827011592220848357322125626638831995406466661128660261585138055356963573225753222022628280132282115749363878929318291525972323726636459302601385969371679249119398395335880058634359535844500567542006148132436189509460281397716373959478038119331621178385699869842445004210013742802744283523716758699662281171794603256446364030207365041244030338043567108041383205598224118036397423115907611703288428101427202988695582355613138815027134360328752718110700177402979601542235581797945320391883315032104072866211843166361228615318717340154277771766276581234847384184289885673591703967877367402562040002073907392018755588876647284598897601166639930429143924178219517233029560339004654092783098022076742065579044535559106539989997492823020807581371165511722919320874823656747426450276991477549235770829292137287648425787004263009554658210344540424296697952874757026095926817432201510705664384829671688702510044060247751835545271356926197719919093675351121802667511882452855199750264464043841187338071837480428207309444416808571022416532620354029504724170610152676740860315539713953049953504588231186747995138254368077929391608162251512070222318100035917314234376144466281525403618909735294174511997098237106233466516402897858771099839463432897935933767838571236261162220961644422061690115143024472146167147158028297751632262435848298478075868649122737891453496257818650519234164770257741012533618646956701364970502383282670401658137712512009643603881922558404361494718019247157788776505543162005193099691333520664802841227924979485120502033492731865884452550456986756234349231040400420013454398916080923817999210464689631085064030957765179454738506657114888408581551859155490982020860952921822811227398870053810623382508607812290833002317823544682447278061667607236707900938195373031101217040517488294075216428898885381513370853058925490749341350075751194007745877814666616744258723191765711599059061584071959792312950084897612163385249381031233562779604715603164822222522709638492831074395485934259131383678651831398485146147180216606067281617445508740655258815443859892012195757444536495084872279075549843838052870397073079862585959662321735085501209929512042126202021416483056029175412681915702319433943671492696818431792670690569391956230987635206514092324833198483130698248031730448340105849338520982646287864997363415410682126839517645886040028462377277320160635059877491758702928443022360073440963111352928821542610930195481137408435163102684290659159928512583609902355730404311970176109260609581563099379021029583912951017728300701448670954686887219846509459933335884380364288415623217672611805241834982332802784095654139615198425813577025238977127000275442170814134530083478505517189990026968952960214708120242577053435710220824931166211282487599998544693863899744205410898879319671956201445519853772521503500854370167151823561071683239816273954065602081983737726513878307827735094817442958139026304101931099239926940191647636237915292279088588743833992131287994079620427821776102488488324315939160442900672011135921471884998525776813474105474110708083887860729895263535430045825371765747031587754152823528718174174502556077424603015532328988468265845451162634391720403750392320271684693797096982452572494317127867103862289996351748877477182478279645706249716207610505675235491971421130823466431043365049673968001970008437728777555169623993770532186580080393277876324197516646218935869501726903668925879835583587803842183614621441206672114431891695373283704171979555651958429422271025912005553109379666514726925370844012777648570756545379488559338146098551446113964522177040290421211739504606682780817887708233227406845816179351188057461398216624187696549259719218647794088873589067939959078275167828175443682722583861919761274016416985881066810550182712197979327547262104717874149318027675737435632544808848409092373893434807561898523784062153916973681698687664546077310059496656613246381207578211402949339384063690537485574031549434870273412009846835480535917282134491630264422534409003700334332643036303743441733806496418101205761319251524704599277329547654827460482719750613742898751128654211709719932937035006488150056191627490628874320614030928287913352944175884267856861297350045037025906688763135662043310633790862663137185264093352873658097770537501235991206423434813573812145268912014694588574640532213154784804272079019238232709985081794584748849652174768555870434590998733119540037645899843357851269166161831800853115944389543873169763658184103395988618119294500449423735178999581435642132979429317661439160076102561919424610909352928748222674849245046413613645358845478077802315433174399484262748765677956735129048294001787006589047959595588442370942506196519516658884247889806022503101010373438326710015616366656852191087940782364913095310633558486054050988935225008389514973452512339844166647006397216837694549190568890435965197373166605824067239280384398848076686955224931381345670802331012205171088182296655773952270314545604758331327670697739786613405367691251309040802031492992334606187680738022068813811869872771986000399503724702751552137487840734205096579801460522589542173320418488759554952492263371611153308900386379912291584909892198168450321070890551533509463576984450118552723008033085179093559139202181222530094265244113799742177014137412283342844196406286981722423967192975369194385132196779074491638118526808934924972504917857043057737299455654913651611752604553815565793588354810409472466548574629086929027251369593709003318268712134327106455352432612636334291853031559858203051660182558219351114035845405687436973184145625579347605534425162803689322991934963796462495577233456629261058603850824050677609263034662962616431589715064647138128335655490957320171023956147980328726020928829315654729713321422088216935898300835998391427086294333291993306544248840378977440908905523733116847511837537595248962305464484274903244742552350003103935849723603800633086923309936985345372273202692460706153317608374508514453688018812712599071977315807454660747840855656544153650604432968960032149448311450862464357605929300627038886572557095322218130713954526272542344248277106023379606397216805810770662981479924809641109626933516658894747124620993694318419459032160835048620243187647908319981394840089638971261081331654249747332943561850171754627630708101364910362086509750584331433039617982142682748320931304947185676141797041529207380658310990461032679862516309139363893267197860518964039538769062665221706456836649833875056446957967375524470495524748844088420582261904868873427675326997523933330367395673013376370686921668584935230456942207900281769274572109122912582347251128024250832970836414417983665900843621733643578210702542011154704390298197297111411454604564964705903159182102677338569619753582717287622747027118816039104129722246376516144801410524302793890486836908896917864892152382309517521449539338935438663830416511660825941320741589998571733671526616953351864661084132125727176190297433776707701322858041519804339142641952327662867539762461464583307298356318722190632145042464488753967119615789394944350614630875099218054577885765920289724184950311987609963719601510648910261207695186687787788993546861441102958628137669204769919037664852439549249777704113951638026436776838580845711085082079378460435819306295027158518775361705524009123951410275495135881128688030556019798784045271968646594077985725851686627568262822181208573489825563861200176396312690978198037221324742579566735232924367831574061380536145468287007893940907131809623485920586763123604565135333539540363223243618216201335618625298712388959988667067037131632850774818212789972617476733013985201714586746996902574297536572294775310427813423408035523197024670944746135744630362924066932864893209585491556923958501692970771234740602759725519331601119533479355385711744862040783569032066748027711987883627434707137571731447383214121811198236597778452268063285088596578534225927901010486331427520495343778158745650594168892691078203830440865353653805843376440174185689437262648329416731739691401375241575189371828314161654913772679221219279012109625344031944155202043617401911304123334103667929757578764049739372416541405064828188049939225578839624832699993934158266438010225640603165726637449973630389507681351865489299244266156066004416454319469486955148903794093777768855286223586964270115232721063487891942664371272685361882557339349042693514040781540174667577774416317464691508496546070966068761586299969104350444288923269665457515713766064567246674844699117707094715877126022304248022193021613268946755109718826254128730687233702953757537003251643399727804909233628712300664812718134854452045752233864897075334961456526301693892145320004530860365307522045102406581170212813115043863090976673650938571820320749157629457696981148801595357673025497769278272379130561904976294723409722236725541050402078462348388397859628980744770031585834621160036795723011230034088617944899910748951755978433460757483868203560693242903942259635970443359939901989663510825655043871143940792069530645006675403496671693013081171814480301949746128846277388361651437321128050739509549502289058163606557045537901916952464035501410670614533014955679632099400656067332251922291621406582526051770285788936195342163293822838063476620207621418625294460987237794272618005515926719187954708757469084301578558141720967265072403252781244840370343362117373587616016572092677589328323749946743162734153389474396600836875421857324944588827401407303016005190609991307932663975765076948740124725770239259884455511524720004600531123017885857320122900721130706438814423341009494229590053060119844664494840799938696221711909307565618792079441849761954109095843281099820793730945000503064096935838916735103939735988750030187802114829255938625760427752705176264373646434315698619925820638337344812417204186709656974840223087931225469156958759770097391114992267697732028103535969970150738524911003771018357944286472635411903887246274194555580387855417247859264148401809260423575465347893614736536208505413844940838449514742479057172292879621941389742213399622205452998919158275632673757548745953547058982613942266022516814109463007093679277481806926571385007334216724841204236761009169970970744564512303678931306020254472495573650274920195334939020273190346385974186021264721435758935312989090851577879160049040171146601011147691074384479435839668660264951219764615627118547904086596027521121735795815673761684689635380973504477587559500626955392124211019207342064611215626461234426126539779338745239485422223064027162002815078285670786735151428057155609529020468541896551368690849648920612356449713584321282302370150908891112808923783150638003114993107284945186741017330810840460590406234641336563071954333749219723610550378750359756581103659815182324913548802585631913154832911691999929680083862594614389698445174391179034509205764056193347108601898518925174986311719293217200814663719965919348112068594351092142966972387242585152438955408490018607844411050049719782876073030844800827148968719386588772173401879622824395006967438317275508313595840099957058853807382666801872190822827998711914542652715425320806105740825780085716605748470912742967638065763807889102469392176212258639435474572789010059837610765643311636695116983782730772805969532074819970754427960234993199675582257816127005228311737298248948603461990068694730832539300481954346978073335218038013504962345083577707551535822731237308577155546755015604381359765315630217070221240704225804026653105226040745505566951395804973134721298709826451875811007018658569839492625225668660530967341446721404293738089654518597011388932582447939596792727713864305764531705573450317829808988142601167766018783377763589691883433237371294017367899518107250220632855436831186379399947664487186353609969025980819241708322616183922353703433458736518530839049223640622303951577871973795085826293933554377901153229677511890269088820215696957332620315848432175840023984739177708866366721133179211034536112874067685671902287077459155100649664086099133037402821184345661462569237091998497281741877131158500069645184557375491180904412328426375360368169238112928878701740933761514357869390638461216679661818170415099842511798491752090739996463291007020810297025211853457782684723722628231274063523017154363331592583694963298202296227789289310837405386061263902526371810772957241758405435953709413195700306603714819295973304699492030316680676462361167560326460370109382174893514718963631470988094965727210330548351243676314212508035555744521355134239063396332737418503457143969650812783122547896339663520123070598275446489647894436726381686398414449117486107026576057010331505326612309530291409268498353153975767068819234722827672427537995402909743921042561758556057943330264598681350074363354948362847918099234176618288180266784801863390052130785894312910087494257392149287445445050032047871158746137797297171146378919452191360418078100690971112912069794239976748981875168093949431386647743736358094390815794176303267774251865297179596181572605271570160807653084113956264446369007184120494732602487228531815175114567946942663667106112176364996987530819672858680097202009554417394927115845054568527232615116033376593064203757584484809185589539562986234400533482838880992510574328724728083020965293842412908145579116502038438962396705355733587002062714376025472280023475909001926665540916819828887474472173275944918984340766091080114183684583141606469431500061642278922130655262741923859652184163489098599591182313254013608326527231416393726582624322605319769338030490531868389735835671431509334328966554593502841247973822052503664997129840990832621118971121925742480703747242960202893284428080826282878389531909004525541773892733009559317252246631395649752371906195986082400564426633209068696717259663833866706498077277085655354422578532693123724683128861812986128116545472726933409464173531400086574044536411000935121842738716111997251658684512209636620745895888625725402038493189049185143105415549935363550852332413125575217961088700455482542231882909076531836043951525261111939567470700479361664355506212725306203950527223142132702286462669467666815400341989529524760284372028860616376691657478539995736625710766805545436037464615013033724896583858109025485536989352771260848326064373994096135395686935457702758306090120202102580288056580815996736874665157077366155266345207919655106729789725383574180781115519461404201882723297048340210701859380309526198305893754904444216171073089195903374471558059360096094949410664042340390432538918797356182689946955938518572568644089942792120585433536303077757703454456623871855135554334968129627605987018303039035534182848784803144112972116238644154763080038354040171839898493467609563801705786709641847002489503906837224094758022547000543779686136988304689870109573788501524069203486968699112371168374425211889775999643542594288408585950688813784492815051225277786623472977842025530903618181470675563137428896407775490426551748776914340207340818117260004547405805724175289581620817097982604800204670663108967234528038597693682390715031333609454185986495375519843169625204393281402465513743498328993274049134113480160571541121098519202551554649889127867829165825023537296086531725814827352955861389403975360345975373167144286945109838827718075319957942563059598741275130924833368443781462161062826744416517166441451690751634739784430224088051605435853334610728186540112719568386090518528345961981103948368013113883791333286873596134967234943299927194967704372966224277039917680133817356532168827156064465689910104844785141424876085878667830694109044277909881690369154984061817592665137447850489340098875043697213964591433774020313878962905727096526462845203679284353615730634360153772635187084599411801334429962493998078427041181036296988343645454717769304511238945453511601115548479004921711462126179549451548194671353453887945615359364328245528776927320762098505919573775364979528839015224841947800149028504964795586067059981902826351255955075179893749505454378801204480585100887450288288693298315754878943114272675580502661343573684129067694026113485529356830616615859104102972851497986260032498321443470113181152139861123326826427365435434452380520487716457366837077074277866533671711319170851857315132340977423292535618004269169672189926792061523688227534170954850780008241859613059722893228040087854520864626218532820546104611014323659121805503702252362520190247253223560368730881454736143653531587036211103925902771202870134748721347475147292864394552288373268109350816346575465604126434610835958352152639707777646832934776633258471098262200698144822803967511366580841022717836502678983164239783764414240080329551363183008470815562772492695437577888104536043645707013701883606039274915810758292340605747983862084887284609608877926852083211700477379002822110733209897033166694921543659592468220671455610628723981727966254931214806659032195373186720439540577127982653730902693448628732391065735112423628854651330618770828530294288423089785275411986371592907855804319352570093322633373893791902931416632779188868302996214250984837337870989847480822867651595425007509272348834167905779781869300012645813218230968441798121837955397102016247393334158095651525239730105197419446760976264975216999479101846825571736503961715930331983814940934013882010428547698126865233650068617504934867220580429133766966841376366475858693791333028354201474185373143002478853862994934264744982693136779024556440500911727280646949771899892010186890871731358616572808710786087261715807855083099189426316808358098794715716218247875225474429820471494630848964567204169944712967813401371381163792199753919620470982253494156964673527814425478153545423275988416899579739505206653255806037254905896947968463433302939767708174088912463832578482772249915702867440882804472253182483285625632431688345412720091257012313593865514073843116244845898357969272203225822704408264110757148768136355279732814280663184566517390419754206292033557617640906416775915578046978224415907589877501263484692402905309504496556756672227957768050663258399149454842883426345751844373595596551354826440014873832740677998758332017959243096819108880692185976892693174044765739957871906621513482227207825499039036027602949757839552959988689769887174827148017691686478371550260686659592529048657768932547111483671528147498627663671810354355493698238057494615344723772801481010559387304807630696019396192018582275258027756786535878486269906648974197976356581471879218222501795596147117245224929501852100490346517061219419880471340394517532484270094835009246307405071718524353242652892824958059839664227992782766947701681621294331839884647424340712425725846236164581421983018201542966088896965603312696828904426288510435636245175776322387983186677827793596717012450941804507946132898098322999491224332088513113606067100026729785837627171967176022220197027205934033901107437665003243716584601599869283484827504478821054879091712251020051215846860217149558957597310791384625365012875564195395320242678371629286657323507376814171055099916437688554569379300626795296925038595553721301782556990727009131492207610114607417168024736842663127724370752210137987802399586933392369072946969930381205219506636586296227385612624062963297130145516001142875822334479694731944067716840363779004618630100948166320833208354045223339424870047500063260068610061424328702318134077917305743430118059699890760276528056540899032450210088129000283495517840839395591821282852126896282944390938952273594617107533859116141259184451299691231002677339840496072944317984699868376732810253801546481143709335178328507280989010550648307923822469693035341499513229356708465536666750375088237973864351690945228935621116633152097740023508859625429452537607492008422977196058457731887866320575596462982762523640825182581113828967626972127277414708169527991701588118980235854591356544930447726978318677328112712073154870192722570947276709378299696224094395318215256921024802863635320769320158985514105279275018387658183110879953153282056661824025189020892855914430481505550453431775968085352329489142428401666562605201240032958125327828478673224842131120833600720735293355140498748763583573931050230335024879537541102311294189907482766948153622169992031360722956553024331852317194944067928906211512561174412808372754479414198616519718675388315268431599142795948146266082298477536266364065895828689150520921303034859920816622497265089439615055877511777275240013776976095659553186321368130281425075161847916729808323057216687572413236907479665515094425154523900703628140728875752942205110041795688878277500893080467221693834438909204157021737471504233259985912658192930914868830558738287035724249709422557655114749105954147278843467865552239637437008115416725685306598552871913841891572268036612817143159776868812589090313864647629616264715292632916981598352106881266555503949089949650979829553901405609771565734415021598672493995979381080108728561485412920763282212376779008143063896554045520853829871112305989241212765584067835795557119258097963827939800253235669214365304538337077311355306112051534237339506473338726976872686157244350923164992663763021527990539820153634652799937322009266416031220869762371211899514576555712377769073518282253013739623153786535700924285896837830032822943267531752202825405765782277208703672566614937008291886655773198602347703679444219508215575729174480619333649117784625170388978514913116908855954556179306819881048771565142141011441118018226827243381871229098871182974005558470404872286523944400392022536691409112361153392531187462858434713557707476851427750725659437047068303871868395927284796107406546148663801518644407940038126074222376598569967913023169771552914125812921658693660293806811727463074888460141878130005214905584765179165248688765537718499580289030615021091062646052127454072688680406930629376893436977818833355054318048599225061832371000975284283370137590241081286177152252391623119179185487360832916115074099614389036040141197556039545047374621126744302441719648061370667271008683708818891830982033485441252499380373151746723291808063018617695711984414088733816356248818090503230508355924633135824493028504552416402475274072639889423600196664973409120607626795830582437202158818991680486707872053195264782032749576877101664018402706230391706269597601609626211012957301296016426353546543728175080473608400193871658053076112910600067816708028715231653620810669283482734616478276320015093199625743318904632451639502657345228621563304098687659865302074032741242090281979755556461007422005951734511845131936659826935997724770472764010225169349498967214114133798210561813204432898106556808801974500482721619517977236539722687331542915586107496667171203308107729026799167988697300864099140223407301639528198123700793474371042095052044769660690604258932828348187043092504634789740129058101635728514383852360419086699549593385613205752572392603945580935600690900403831432055290230688167100712924267545893181043860725472446651626264405900332206781911749919499780453546299685895129099399022901309623489664618503253424493781692371891089633183859556603629536448964217395051503809278127878277224278832274396127793377753954437871505502675808675620390176848854888206749636743984449618440907717144562459064855871129911492528616164477153144376178260804145571032551344811047479398024953696850084661100417013553248933716613053657159030911522430113071399619328366666891848855024299095520541500517102673146041124003489762751661517872535821519611868567417277570537317248617526861208185554053323622756801371073348824098217079739782822178176326347406671754776437165929840929527475338225019948217877219103189721047793935918343014943165970839815599691714125643966300944724432588573189696391737738933323832575778048569336018522049080914234863201710755086169037222085905401461521714804049724350542293188071896662057736441216308046278763889678476021215084744585241171571403934447158958851060044409596048568770654485515662722532528027202457132936549329091749193117365796687712611053910676457423634910776861263590700286642805256141159948132539026005907438490186075295365627741952452837979652728318606498326401298595503067750029713481890246521211759970817898380705121089357127034523710054437263972611060828159980660571906254606880010479150158774613992150807202320540083090866653758262850840615171637180618996595371330910477592783462289896425897266481253847600975438644045532562455094239964391313444796593132786352763434471985588928890460266291556997256413902022736016085230300130990955945113936290336542102140184580632445694986517457554744645704430103502671620568363935756440199669127471200232093316525543503264999273131848646928384922662964335545101426729251016913228460877597796678020642586285840096195349266224929837937479844399528436337337790013025398648795901595298469956865852814236086897597126998545369677404753281332138156256010984669961456592354582979425702255917780957666239430086030558082644251061137999431244096486457477299609378941252648563257568051634694580268472713916906441858611047703873576289881607420031727592438838015195375308754872945902553140038005038599464490274837583313656595534181669589698775314454755431980819086729020817465662549219912738446332782130799869678236821795567072461947395026058262594641359937761625862340378434420879033176194178889155469262180720713594636369664730617640836823134476204605930887094106490819207916714883868937828696010775163148887232557893345843805590666260881543868587803444580008667941419194842835972642571668649610207524854517584336459638770729301083188014701758863135567433044898749580011606050269221508905344317133822561307002780224465366166176371157434679301436042180054444263565946089081176337589070137701844889293990439537510905801615893229952860450775126017059257221852314458905196156863027243051612931893130180141272782079123189373392685202899806273009065977504422941303861112524449708421834337434573655847495631082902434127371354856672471166583511453423193766658003631856702953939597813040768527334611234816577016527985877348263651032034782260985467537324146596365383974754221097012477024971168584451218629723583113108321119821886852698157845707012039643043635204666633434230385558903737007216149213732352457336480081959487899019061976516813357517659390038202407716666963814150949174361400433248806610800095843923111278546372728473160585465190275012282640080159401149225766350335318136892412501499464973503666166417728017421170324371944245998570291605783146349704100991960764006621122763361028693568313067782775815040518704810236156803882996879975031928585543401963066008072314701830615907047054022670549951915741565288153133834089977687079375536488508190762483388891078665937403427335568584980130296755020585237019659137709027965622838914442493986401556476871008276945348757841219117952305068649230747259108777308150107846462079705102196569297272659282952439775504395450429732334344504576874295300324696829604236250537693167213770073667187520770962985977561862028115195898343491293129711964273047539256300572227722325581084525392431711921319961806617114781156176241672373865506481572221465730028146193830617685994036134034286093808534101772792652097203792312645791363559378994500598284616176407117223967215620119127508377510479516566569279753585625617048748647522703227945142665657162784678657310267468453084715088375326149487341064117170353495298699747832855323546205159780004460891415006782478260414021676845925732664450489655748309690915761826189159883345233333326056812212725222466638800291605514981559687471004413481807638261448773158692178433786091939533408883056433128761985082665288258941186641400643143944933296244481956551110921510936842072448605930007597252273160050365628821233718865132740041380070644181096172364518518508744281077097488518915367576837523894606130134670827560201910355573412099028580611499541899717698457189199262800597808099189280152045493829047336806163810856792826438044081615457635442977949871695468059110735935355272651257536723689986510448383373265395133913205248542456115658779094037972477422835313843408160715455199875635807674336165367639932492022960882942873338783545760785670959768187803660921410127076235685285223805755503886644329129057665561492621565589598870555547548395479644619815936366728538031816072358711546385243563850920594583457536116209697395519096374604742476635437471659670553848646441087642993460192720355935273834173042784955922051004435600379392806270813314290506200724276412667598449960391067157775099654782448882812730778726569593392372273527638579565916485031128670976330007147713093449106731036241055765111999008825087722364155450517071220048183951267075408547572643915276194129803811220995032784062178540344149667347459056810088673940816817590826183883723889786506677730827208011019715954007432590609132749095238212052366177184231666945539825601290206278220960748520061524755216958394714468875474629098516885278639802013494182262506181231403051280420803702672617573813985128220922112599566603141642192509048183208608534824045246348159869735021428834837235201593622105870777577616362643635570187692598106468444869216838245403325860462089118669523324052959623844192405947382426764112108527824569301714665527927973504809071744670357528718390360297638258072862835047405133854652862061888814961411881733292945742090051173136161409749111796890206497761347433268510674379036827537552226607513169713748349444985670052384466225386116613256898134094631062659880142819590439119093517785727528362413684546897521329597613435881302356415357599221418380746737860071716050392422325445749863830683579176299261722031991284986292384182073667391368474031546549057013341539925541649136698088997651143251621793008899465693917382199346534518517734040967187090825610606894328762358282096745843217349550621879994729235961675530927694288679028586566077810157778815285501412244905701887539067892750027411641678720918052923540563425939979784810969667136245623570931420285688298987465460468213631796534619083057365925622832292457671516878861873436461493284096599961836599878513540663463903450915286435091420796399449378203962154719964766150115624749329167041106786571030283270181155768731171003169971963289043368350929302422515240299083266206494281889368222652754253108379489673622908716566439906183663806759295189349945761440663094521281185356608752538284241316118307567262545670910965889364425693469965828745141977180870304986581267488008969363156436022961549118189015710134111288026592512561644605364888415493900716906899430807418485253820942945322528109575316373065647957607530030536217088849575104186443943948119265569546208689591227681076500850404370198355298040131446611479782793825199500891078676054848240087289445895911915342852494004643858010050812647660312612576128252171845089650507124496232712090419736459490216028485233298266132065011925471602746978724224202068190419213890391599887584977333148272534858778370274560756532711582598853347403176321759623073179818013788403990777084026254688756735359475187259895833706538963735854076509293970962084938294172983308663794373938073980633292712595867878109485155566717612296504675266150322704205030354754224855291278459219678090760980978637030517698552378905819358263002561874775132511161120240115102746035676389311844693067270486921815186443657037035411153686660343085480188466691405895250534465041228714690311816605010095440360498553099118903440464408743181135508085129195192714819821949449752106078744499279087000923816717134116042579914243091841788977106649584987106032160138456681678982491246621660565229836865267540936003690159611571529100892117973631560661366691620674137631714613564704653198513523665778742173774219598403502074965193437405590421471555425031643409919953998926764899990160028947652118470196757800151230828239948914438592493230890497706536221569335536734165541969875630378130871325737727307144357637924417917392840984811289655733501554487575246071821003319141927816841668194138400997701002690283959728225940137384788110808085930708641860020833269389699922883876165127870193784595960375817718213462317527238352713153511264123434545619392609743390073737160949400882010158998443618688107070672693141441972102277385052109879292890793333880453906681151235591301317802234481045847628342298278797399216575629693791837335393953167371958758530474385789224933104756732958374934827216267762001062535993461150977876889854238130189969545270838960468660234187541590292332940652829182078154350267139101863097775096715288317312694289830229297450410376582274295777308738766633947752067141810164678186928286281903107582149594123179593648539853417551304606432585370068024751074289523216434596280129840345310703839126305256888936925540671525477091719200018000600925813151922924910555148720760906027800212068152711577509033407181077088668789316816990318157246227478163627236716615624229328969498496393956973511415786251909783382825310322473463873158676488999759731951471379732745911218456781754615592653735932596489058904227953511062501363672077029348335502170440223910572329770005924957026653571125628091403781642421671590610104223313518638233004582299791078208681663476227211018305960330680583606048467000170003328468552081535251669586664342925281164045686610512309132049401948655131498672891527828434167086238697443689494971899634765539780912310411702208575730950615210513027601617201804846190339038365651052443704317427093526501057114451320958690164058962460491760328496281416671597811591955911576018221419377888228112590114097933370181568520846466001311993796529148406816678729494145800072468321494971929764150544698486550412955587474863600861944635252030277714910202831794149319982460826495816377134354003232254388979178624039978856695715720697286301230436534179720156393424873727047865377023181626456747860470152011777065226118359298174707297603210706889454851588798031704675493885753650922439440137239451516284809455404422813808190049068511780241932284651972634321185881167430317107820498723757775498098973732887855600212029544513122578443393249907929048475460470526354492233765142349803149654942809235175250690489853998468449607717022430859860553610342755325036628911014015084963690227693391842607366535692104546040010543693878294554906944660838119025205579232204608955586324505746177273659162659149631856689321342594514649081849399316496439400688396397178324880079541065064145145447156180255068697491617775476078032959624032331412176336325656241223198303740202238571793495618685876944768251722122856846926298786682032511445734436093530072806154539086790425158013328049189547894886986434243127757744033844156280773087613480636811151976821988524385236041056636322471893367369357032400663848512184237012613900923126774859310906478855009606183217950090609058159398833534854108710149220300618010438045183040670852028610872500531994400723068375816191590038512116229820655750097772791106956774265015659298207520553100666728103038357226232282376076508192691624347833983673426126213649022794150275580951750812456256676961107086397999090167725688247150814029559993645250705528315781428136077221677212177598854996586875949729266654223559333047142751561586464897296458691592922351548562237727540185078685215558458237052430249029868472247956029285476975669533593701475191282223584770894721604148151800694040370107555070711749077972999237894880275802881159192512486950102334327607730615087585176972209928747148783991624429647724866881245379808843874871309019262778180881578529506948748875211223647502046518338239496752298514812219849598480455272291390976229188833214216400443685209381429238343146702344792839308690325295192875316374072191402257862961666292109871802164994853850137532492252723861578976658472575904161301296351524589990028808376053294450721507771105546050208104022247031790739427729908983275066443962654086984127169002315828465503451711070810032296648229780597538852297539597645266292914079013332563186144557273944298094592456802055408370509892143260575933108782246805440768297545778927038733588486178361264092275151022027589969004710860976222801290252297972818437386424519401993502959648390934229121435679205070151621844502180355243153510400457031571528046783573420396154342565034411949404274124376590863370818063748947101709686196322578848326462383238235722474683390983847056401464390803848692616888084171897742882261342468735790396294532070328629270627103231752604147449515567108149799335885152866960891399835348118174259636863055532292600134174681372545943769828054723511504688395390777625761714258977177419452958933035486692331340456809575674893789995790542642675012899122617872852571937623451721058207714800162201117050105467546058662561344528176176751371808832634902092876086917286973616840425746550278355897900079649013321661115653449381679065332686309035007769719214992204193575061802066620088772804949269447481775003419582643334954945511384912423225707038681308755052734807134407984386874892803025575068584597646545342388956496062386205969264890173451659818003203573596258731998309080323047968295709448857233620539253058635013018608801913880710821904902778357053773095950004477592154866510792196939117435738483840426092774772065977915671191201752775131636407549262663899193220289116879485588241593857539428251412578459504754445468938522797320724135145930995090438292206840697686121806161004020284748662489333470120089036241352671794400593275644859769787846883558376129876989349949940248150052037430440453931124713502069366045101410842413713626318724049744147423691996976501916101700769602674045554282536028442407456421243019678325739760092059074380690749173108734996644287909973582567469371753007828558414107385228583248094448915671440505736537325782720016258461523375655912716262211784660900688845493079952516453589448264629846890222113148161767013533806296796470588051442193058901925360167277238974722513926726251609071732192470210204564788416831786808889135031243751221465493557300164101988045568592620103150527745546662141947273809341860694719444825918546808339116632282703201590476685967959415973110050754784778068591005969775205380752408771135202653747085854795135751340491476558984544521882953485779472432682805571990988094006157561122260713270764776021872387719902762284537056062447033197094691305485405685837929836057482678877923482018173696795920356441743117562549208089836991898266991726366897989001105978068402926703748037042836879496920032786044980323781195723720589309537629641053139459881338127750128523242742976363688047179900769208886847806105040334788841061962223821776148756740694076882945736176157435834108419813484633351541843661109104784900597897257568815911482588122738029967465452887962643913385505466477355080101212965380352655872744953054301647469555420981618614700566775827202602779302155371265624907555130319774739256709239466058898684128781981954915525115703578423800365310909019101600334386352287077304679564322035250898671431159184447857007205241135007588510277336937001323464333016370075617669475685882663053432711527888233599994892450070229500268218600749329535736521004593330630568837489003632174490177335886202747389068847278454421242857482430019475372477701287917246428362530832521253265029149341983007133550669209150517777073094547816059611769626062543543205441767650010931945503163412442400582676090750493577854727454165488353750662201742068142659808652498870283636506057252540719113792896475804050443578253381412481215732712690705154292649418516703160107893022463263375549283644276739974820947565166010591026735590468316877976562186020909411522057221064062549531968927481926455666577470000014817899180192126829107071183223335586695813777996628484184945094488459036624530848862067045197893462782034214086755943230274086633259866151031867300847103406379419795738487118060843026855703813093636565246227940764272665428398315849309292592164061045846021432876957078838214296531157684525568118447347177315176846183960530797736480318136276289880782474022055932430368729076473466631303791850084860655308284915425415023561393634123524581028341960037758475674300217827876109883844006231289315440588855109543911878131557325048397867702184036669583128142317301229931411111560303780060850281964160493301814656723510740230120419959437248795301951751566332557742783916316968276895733790729810764708223012316188367072517982309723082521099722551702543155261580265690495430240321006506540148734040294024866812116969152614443889719326602242727202838313334848015112810569265457030872083044255246944333202282613302174816780757354192477488321575760684380828083876670713820549457723084758872805071650072447605009551542358129769251357301191947086917422455545597423994602887557267426728038777727040543068323643690117751060131193176674929945828464711737238209223653947912361975739021730739214672086492098601563749482074614171885398614124230769143593572114548247916783694318072125449796255282255446458015381383989110713265529424154624243733947620784892299708615147941889392555711604903092972030267631058369302258840400222811973004499819108610065731118942537509664253521444549186842934401362041690985197010140751783723811103894068625833730718769119705140531084908475984658343869900611698162195102194490839924765871374830626576022928962013594497808308763490169696735485319629609360889926803014644722134647133435411592453857164958282725787505218188751654592235602660303891214663681287652981626517497355858989611905808831804003807004895871026534857258259316212355923076921666209442047315273964472411914009300105346681126223838135606190984266109252021317457977245350286904306188067151425516468226031827627526303301417706104089855987708759978376431901719966407334991848617981188996136060636089706977837494473037896387352546488312277061646026694993105026115383302585626423252531484773414486927626028996403406742318166747766796042916721393753985397591077430071642465158592815342820654927111109468208809016095865809625727646101567473538442219473930542905849151145879402882478884162005023046010377864492752366915670705008628041243780845564763322860376943021881406348156774088603095793405483008582873475595093101399977037051881145081266758569957555861187087508358275680944705354452091334713754305566986849602694401970540597517116804119846778267482859145949324469189467502348139064251506471912383949692863979878624365628078235968715338537090660963492150291640980871200578658181778925975922839720330053177693499110175551988082197085388314138882118337825511340921276390559437346905825715726954023822606030456599897726160957758124875172554735645090626473143778516250164828454714177821549277679710108823149469089162606150344429838579485340373989771598018738121710344878519328300929197722693596144911693376458143216274774780351253214263419453330019770531222518456575358623050281133741915538145628189246087608806537524797458066601232152553437538041084099584166379026954831211916356457714660847287117628209331476114362223357525872562123872541720482625798390810815463796500291326919796536946753607915158602717934133642273009726165406324472218144182023696024277141618139482340411198991255403531203145279874089731014983669430581492670388321539281912629333583557016610378941767294899984547299122240239734072566823803697540824939868313823972762537334976261575655505019374972742409252011319735533121435865449866799407735911781923570037444736034839467533789873024079430170562041920327242634269724241800568667660410101983299620059268938658890832214517798420297403595313477811678666311962724450865602944204967061171310432107198849932109727729268037970102579040987490903019646298532863272755910643204940052318248967075141866586773067410310841708539311025976094730765272746548129006152238112374170713631148680273198836367695592777547110065064829036807436775371935319944066571294721078764835967252370912136264341835278774701090609033727457363512923457989089426964187070598029495555154069488337056492951448475214346971719397257427104786261211338815264967479320709693123272682088690574093879044409504803794710796083843888861698993698727168195891354195918606994753232889862709779644096905003014241162249414195869262884867466857326223976616142723350444720136780060281227422971254679279655359108902737917697584878056140105087754696898156916824707759833909226078882169252041843657306263630943436288409912010965129747960578763742519475616945171607335148061026569417299254374506661379895397914795414861617517723729385544705751213282419860087651661239945490481121296744916238857048277793825259827650353272489473882004230146706307767806082117281182227788193103781876289561343279026294714640209014173201528293121903817739506130760093530393388202667400006376882503593729081502328399666064855413311746779806270227949845405339612415162843413385707782299642824301845931629042597350767756574903251148538871135403238593842770278030180204969143827588537979227497181520599099587046097377360724135199607764482266795280275400469700936559626787579605491777152231553763167111828444593831312256180208328113498552514962944740535093752582439190119803963445767591500869157870875744086609606443321759709337951823320453699497093497654452319693561593852786239548813232700702150484114334049744591138687962660935343954092162981572812265386278131350216426901122549592911326678927230500959685283608999693841621568013673220967838272058699314636996971250140060755900953652025688406552019305751536884365557786939146184813248749396444266468502116643744445753572474765537951562771790905410925682554086995100358540529405748003795068346505242928550884293082487236158136377889552524724434900973729627468370740820414149169310440234159500992046390679024465074425131476839249236199753450448613645221577823822913563889764318645782912144335826273423408291141499820190251104758926537660487512545127005640944462195432783308538572319283442043299563340851558147302807454357909923104736541204024509821569621288777232736540855598870372587046127202895300597156810293271470107650061405633215013897947218348744512360551868771252666616256059211498049997571441057431398017396769132418368534751097202822857602261312923150795707809507593298266451400630395389994949547957569540987232437945796368086202313124365657580820099669858985435405496254982274592644980002591247835225455257034463330462063736123813544528212882025773147295233007380946201115188157022850525389159197109719235024701082953842487351493861201072841935341840969073944721768142174412755042244424591754860018929605024299459866461708310137020221740408112486731199870717863701197623323746618438612481046851919272994151499541290465217281418432488483582689748785005774249443579653339585738268780119673154631948964978374932956207859016731828213714977252049182830876634771493449908059105747003751832092236736889108928517401035670761958558244664288938441326185129439956225174085593254857173674300236993093660893283681171010320495739012869575081693129528907781193746474797178710854822331129746749758406496805251217133288230723189240425646663560365801935371324692829669556721640948980977554447300272870295789478699525430661388098530413009778687051688461496589394336831129181552500936003730548120813449117279483212329636030161773025669691873295867324225842630326270780317433339552295855772728202542587988559685363491966119816917383099003300399114044300201389614641363479965227689130050504635934906671625928030303893336869487221934167918558261999348476033182148094703780066592425472056517695265547264655810004863102434592467121885081557625721072008352689558783542057946360455768221749621390169827561954804187788938764329849649733737103422379191624106704025953789786535896393485463748236325279560511871477268666435291459328245005397604074188493660988868531621632430614225133403415901307985619244898418908850332627402301994165452128908199932330797353320049309806758297283677029394818011705328409683813075897210342052107692157497895739225953244077396080447968154002473011292807892632032128503669216178886530237972574595552455888284319507346485149686136073978584818825148973345292139226801000273556515742865938540458025855089999614572151797025699519147562923791455780488502477545742740027273057839487209322132441595448802403681404016722986205130908277580101559462684946117801907177653739479800434291313656055905011343683181501658036184624265421907931559338741542563528359567808688932292643477356412727802085194022115512806104619204517574494436774748428131486813608848340738532219561508132919862463909835415342859717644698045448018588994149513428049851445442740398769122569007685539828333292520925413371552910277171665835076678423673222763403409831960994880213655899678149833789387130853948493609004661814056336613264833608764670847387674502172350535585721637372847433979152880866851121455344671430687242416889354062677014243652016964202219707779798650514602357056981279112268270773504161752538757247191654028461164617580602118289101094596287911922776158042338441807117568112836783753326543265992467963613613116989011888823014495197465347884831538556472449162013958274491464408214268607814047470878039049226409908596231172273156790066655597921641025867146866780741434873717484006042274034152289700325324219933131101853715449792551953973555621860350117637318627049426864903064489435576280388182038363305592827069173408243573218561971751596795891684944479359446160602846279780446526151200652445519804406990159798323603320151292170878126513430097306167841319610910224752295074933943245513460755175657170292901227208751457818294611700121095754223506456750870747734071561010387221440766787605582404017692398475237174347970879924586539307081942237225262779958523386277684704065392860856735088489028495069417947198616182326471620133755417309066244451675188971901967042160777497249034243885019215984458536555453873343769957880776249614886773441588136804738906893114156987606057076997634541570865148076496593933002828881827983017429734467739401727426931190674518696545623774573390042217494147211275753234289057208842099914533504269011238388816690603138565088060447870797964901344583440981603178172917947023691163227790395041177070238234687966769262344089486545696532926747842399341781144753050658136483482086136284346690857031953833789318925283928427839255478808769333962321303467628091438439417513914085250068357615310401951838112701187427111243513834965436782522448848180336731487701135413070507428392748952478906039248559790166549150691140386795524165313309788626320076949386498387177815791197127012624961433196564443506645194520454842339096499947831249993933025982378275829319420444664819709166978652434599626908145326297936942361933849366943988925856023682759490449631748687327330263090711985735320815306780995621507633321878966648684392280460445052902968860564558547911944685376564267422743911509740867925260246730343479561967996028546201498978914734635768052237006672012242411767209413878755048397070907132176354083037852310020204686043656373781144098454434068941584320173168140893804739817282594102246682806819321532443783119466775004074655537093780014656620586697309223768915941605544067275080989702296184776362787892251486574733489978374660135141924934259236842823939972259313653973143021673491482315273927632677776795573068171650732470344487124822579665110022184154594299591333199699537224367190495855478533514467357786288287821996241920721987410667075603985588071961033353361719075992583202155668807872685348708674761881419461872233814690356702798489957492219064856090919057388921833978025798220600275916681930101027134163892280435803519907514945044673647225506717000498769536926511283106892281673415851976642418928176893709414065174381362267840997444124866682518838004851388253572970129191837946655547318921622032360503827520846681848380685533156319875131403110461431456522524567844731867614347881866831745316495484454954237892264745387656537120407156155727388093369273084008978727893190941162357056841730105179753886466661544147715834028864578004609318903304734965906010620290018876912775389470480292864636882096967535725699118888130606467791994841488377558345489471412361045234152688826686197079322436908655263305630987064818348976288024270564120055989075325074212782829552943407197945671217504074025502301309739551963863189062249511771152990092538019375966046938907381773161535096319010094615718980277606045445103439874732978877201966836382185814681278761350438726793722191501991014922143121583538633999895586957891162333576930375382309431985702293180515447860278584302066246888106001495701269392269692731863877040719721399479618845201447040071309637237287340687320656203860248191411920365515644831335711254127718565381849881632551633063837135956425660372254054497642630364664927858817986274123533154047080173970602666574606495516763409750381233813898152685660386861529350805524688310153276604969373332019128546066041235604436035046877227284317790018191531690486811977300844755720479637623602704001292750667593114766994433781358829359721557776757232708952692875211436658770704175308258573516837164182547194889658119250004868637693840534760728813624988133939591776508040172443870179663643459991492800780132055525497375826819434994030892888033959569157181757150705086519223795544249700022244684191161432021217396237448502920463636018351695108230316152223944096837509391809597091705722884989697911048176391862530567622368645584042572133208729496721299371703379315684837617618827689957908757652020291752852615190819050130835892134023849007281398420849109585415192953010365097592330238196056409328578358621939337691659126030419605237849106327621409823010637656818739572643468569697549753827466937527531495985991014562667298375400539004303731098481923964911881701751064502047866935913000553469470685561575306722537471619807021096121279201480043428432711750768824520634328227066455182926786333672717318445877399775913517980755744114585725323212486502766171314116683656224044262727787173127780319550670345770775181306021355802558929293677779704719215277678946439855859200870741774597905245011857091287623388854402306317242142648454030458572023765533920726123331223110092975079988184923895668788861297870053711706660293029135272479105542452972808159747532036211340449410326033596515835804687721774907583610641257517146041759068867209181698519133332356449085021804288327598781007835406998584246810975397676690089814984145382763396448406652165489593587235826578194321678916680591321643160771576226117020803404628891486626174859851135554869670373624680789956156086002228010052249913116069907160872563077071534707651599567870680375470238972506992092314286767014832091840149140666940032400882760607943949243783934568030421780322793481277960708013276007281323808123880229791870785442119638587249871822446932743703060777654330230542702056311913199707689313944599955593088254473763017105195921460694772264055950601777395899137189626226557630332727546640770844653567728610381247393290287333993381503618940788170999390206716989880137125019753096016746282686093315274218343994153972995257657323092566090361335747982439365756513024685666458271103693731404315387402643248400335414857986030602753440315726046377178681021745207618313803076520232353976303362212329770940976245107095413571473457292386633036108363332140960262227403852888320107609069627550840294245583337131475511699305421632237244483393978556093287087313374211909323915229496807186241755762206490721463385828358368229127876978756333156039094904258941313010157667511065174324865172099125834827181501746361573974593099643355155638707358727320435435700267662016929086319838462088923632724259176875988242206209330472231969942304789415889778268351320466667792519752284718576207800209657082858720648798291085219424556431440976404743258103383534382002309201143120367499624070453010854476566822545225663299661725547437710596015998434693396359105671450538401672438545984829008860239043840990992989030167322978307304933851788292015163260261145133203889692578327976207926311304735891026524644707616577868547151962041885762853555660848578731930155173271762464916922216008652028911158253251894086330954096809371856551298512449622185872636103301568028793694914349827381445211417081584420633898400705501848325654394913602091867808716458938648943332354525248421490409990771243661792580127353989541967970435051621879194232439247397880163639769070949451346340132073408699498153935615877451746112406104593291270147727916329608989726105734217718990114951644518017376042336140599110860540739237223547795247850108316763314629371303879051710766277565963776118198834129234672926040041617914686418848904594103338514056301877212413970721919587161358419894782793063497351742599269280209379761199579958737432498785594045268363414425745665215676349793209423314092825747089682456445889643258681676500219003755380591326922078161558822450509720757469436215118894976751525547767688429907480183084028159361936585492906647611779915761973434158568884074377496276223780366569957047289750523170410501209569843120357101750421537114854450909464536627917174045497948491841114856009696346587402401076438238557856366019313457671816461965251760467597514293035590519112419486918901022966523452089217503634232376600240893753020612635619602573386952161127734930660475221967284556384690220527775730001631587281929447930230526754123911013182248051005024536595920047966959675244071931160427871108144445438526605541398378188039677198230192973394659826171188593502435411265174126404546842481955552867224103589876361276536584382974843293004455740381756203446480320672820930059330157400286142184531200261509723582472424444417778668523671767577342392114203756122504492120855302570870628677803990556528357982889089207088057135634439864605378138105464465119358387581584306233226699932140959664706896137416663176869756319778252637801983302183997614627203149510519080457576753957307462850698595891009746432792779584476039930292291876652477473929898640592315578388276767220644578579270674820616303035120107472492412699501253400974504683429403655593763199276862062969301360712184330036544009995456603057142204555814181394707329197429704795863674563367019077691881017358554819977365751935293099548112639581889737750900062788249193987650779197698187129871138149867563253859519642298684106179879608026293484854376460043658534096672366383474573270219682734884162003204264983871862594510390299289542904288145235815158108679660125116031905675817744045183766436377558276068042594544722910659541350981945843359946580096816589125616396185325179467486648583973087509854368977904901779586014762756491531045770735766357194585348774177082855665986119071670491445607818158499280085916186618811682366941891890017152710674182775620045509063322019667943081511798974932386624111167089877881647706717769091473767284640852872475750228487977827273462495636542383416427598269400091923396505401640178642248527408853124577111614721750017107460508420850536186112637693116168212040313970631887641550532667364790415195019052568789903412638821559411967460082428136910872137931501952421846406764064900354563872164840692940967588896474565537986695220915699679082737890964166967726518267190221011097266348012061386741807778022102325611616868677533871299530989808336302164661413967054081809828067780870002936390732433626619312484748407469379160219488434473402013324768533498021192275843113814170491365124783169762084883072906119305286593173515940979701193551904999977469010478868102774530372467095306889374954743748912829603153821669219575183061241568797928418536590441371281905166909799434570779117383399127795095430165869291734108914906316535253193171366392782522914288405453352748455901698746913879792021943273862251672324488728783175120165324180460552800512679303445981888529018303747629031675609179808595634485994871645524194020755893208399871390769130667820143662209288832417602770981220269398305863833892777341194809773494189237532723572675465365557793933421508457677815203351953969649592696944163648167694088513396685277390296564022547512637196205396927476247573516391511732056488669455052437403554868425780477362891721300338917570615628214850647542448519699826874416945185518336398606968341486546462073286035599085865830377164426429351590589676464082435574315633992213276537244278098334464468016947147713972194568762524381552571651275486517338910730833616765607578319865873834274484225425410662248293350965179225628564970905515056156078547836746188400264102763479635839119585664440717170256415588608833770972226309085481766995261613513200767579380610293211270984256236328494735764544983155804212488719068512984085252339249979241160273221079954172426745426365861821085966967419425787308407639491175530302489401075816269655675703998764714748109643681651468066718736102598436819151626180020201359751303002348876951157407796403625894374268027476116955177871198178739137991532992475443629259832263061476866492910848813114489348427413818179601495906429704869316387226081793546728406474198228813600317078980477296021935243248313933324431369833357040858053443349429246723234457109402044192298617677999225580626394853384805966926030887875577203339685943547747788620009677147505666544402589953460967722021776395689775502251111274839908619830051870093710391597456635435631878118562506657806529456814305764640978897780135598834811763827145693555740611153589349523331318986626560308744237455911731007468153843609400074257670507016343840587519851046139634933641470259678049999268658005709600278562595931710432476648589408395656091526891848761544939597332669215317039476867956772667761745230445491877785600218060696918698625208773049832497407187281028373516477412739200861167279136770244291279981441633754290330991530018132736814781754581529171305083535578473459898180346498434524290677926865636994641031626964726342739316419954827117829031426608780171661936099903858691701361271474101730004519579662663456522262068917793548425664228508056062837469177721425163688489215497781162564025236725493689495218311020674198689754048682967324551970049172770118589265077873012170255277706253515884774545698188336564687094367881575028075737788000185432198704606380929975564258290508140326065835134523449407543502996755259549697725174747023683964220368469241317347600682159704084148208241698057355847935592104169419380181245719002527846428688150361757145032234504125326448526805278245654773476082198861603377303212281024782094587038972424866381527329095385176547710759252567020321434741655319520013197837168625133556728752083260366504981614711179767863255544504633879618861346119898977278296204681533799596165843549592627419200405552218930286598902671458769638055000294900429505254494755776341959026425963227123435467340242601581255509925911661808255119129513267672842494885770400338291131407533014142761053429230725679523906256471888305005542413279407288787252831106513498611376542674107307214351538420768677698668395479046896196223930214398175943516518601880602317858152920807876511882399754781882377081240696161065280174507015771763314481288336206723832336019519222404204808006036229963445135924817511118905282396254950399614992827621773348521250220183530391392460583514548995775105468084910682498665774022192742606639419421304782266302487916595430756505726901404884694297150893800046284066071790703549130326763860393350801843608204172551412696129240685606584544232422670547005215681797135645411143673475183582163831015728858633117974448893540185203907962236831572003792862073608006534170383930520675680184076031223638125233762135277322918916440707156858802299264719147703542289086504366046056971793788965224384264546658323220932930156490686179310793761982378181827207686579003502655601878412917399509288060003349372456069276818604011168920176081511051755582425897055529293316175480740048974602416123650006443134288518823356796463521877777882897608660089815152779039010547899283590800306362856280821136542312616681744670388128060038747433786548813878397097087371091123457745851646237955304549374363570099281534673683865151110945860500850587583052194542260540467483776875326821742643043889706318216852620821944789369590563956653141317659348654485169574831574982702324656550806163077904364769067220930823537262858657704880948327361762435063830281848847334494260400997874129490084281838185782088234607004765609998095652198028266278299836406902945400549324091030571691365747785063584853684087193389548194464018324196638033968855024425091539141957249098465049624001455936745202863734372516414161846079445282691645027944330961941945222927052333077900854109402950850284833075032185018206772926263093167766763237425299902135014225989611564188824880155302996269724464621139294729729293923255369184497425658639844492965840361240387400975371690488144422627737310334144396344217337805380403734364166240393068121532151345292347846224720417978959227438712638710429477816990185998853398588297956240698981917598625742695710073330242134107454833115528177645843486549244009326822578916681021765987572964335454302051837328682946032654183975663678945826299515084218351891199000278972880295262888917888706664719473968594807337436926233054277724035427845244850140065087038416942427352723064385769198969610716372610581663283781387011835907536033044061184810802063346814415265443734729194730964144501096856896307378316820235988930341233441681642093333176315858238104270328252035209410642423700580359297594073718228457048543039401694858502379778664208630381924096389144189403701617640942404767882245091790208228148551156985797058430350910350216055050182608038391083274327408757935643884186091991318891894523354463199501947273032822376057179295633427164643443258448809221910539949370307998883827983058643776529823141834506298217567789811908047494929366640417878877268570959321858134544006097563387598237684458625236567664241136348258300114142458192751826641488229859236509565614082092678581547448659809430096137687034460407990997146347023641377879784231179499168450303546626737308041513176914533915412148827645268203078024183289230769039061840084573631443372108328442083495372966763542372648929478709083463079448905318060071264312221115581179910413257349599961816290852195025752410194788272711639100953010998849309257333294716916353704983957200148992946663989568982074650990329674231554690063828163147424131741330969587172064727345679636869662221797154576403621230172589378733824321138292255681335767197871360346224079417647530046772163171002293155851195278084665017889388265672985171898318895739706989765837279071491097556843435036407461830290227071349325491340998602596235468291271220801120053440077231895529826237342630877460012622505179995313045006311907004983348697849163505247562128764562637647360775693662022097614969432506764353964066025256808484107037376367787043563678082060338563394752564816294114404510188765754431979412562506448056852593029312078216589625202401820219950758332859773955710309292513448264275837132196511761174332200016497778352479771373064995226255250301835748076609802719357406383379253980323554661424934049863916563365381929442958135047567567976404983081859728951966587531819707432564632847717086339406659817814980267407296953341476057998462553499630508221617890053459036839973134781676115003322032558075378628030321557254660864254193549771690804474602616863115736684643906394427115475389944222068072445730498104374764325609346416954084420662275630468187567179498067808937063611139821270878391408046108466959852545568959024398255857604847017166228443179000223413791782183071330524816219510729253061157178166823546571554880047931701253408505989958439960118541149854484054382496273085823209047762063163404330250137942393326205393820250413877981851475415524740785986530146308812674758719060215038229378251986194950998894394367425384829919192658011841472382083164401347720591482271636925730274387504472599553674643236450053168497447082051688788233185963997488570036572200534015503021091998275576465485573927232376745456602638310902169186295732013448444496601292837292408731177195307549174818766083048816995380497284056354397450511607336228274666793976430403042322553846092217519190254820408545527046888205714725760299069638314713342245457698575254092743874156368448792012529678311215005917799175500796395460248488778029280299633818882658527947956962778987910767757457552604182029061908799494090207770879661330945007826228152868352237151422041088960036872195670698526708862889897399661112734904965855233400892169097941689983616072960504537431218598757960040564424144719055246498999634270051828951154993948865816639540521884454858131454101780927169452428829746403639788556516102021669533675436061760198689988072414652216241485905013352023303121225144459172696203051854963293127303326630511751502266281168831259052979080976205486078787860925938154978784538493222516775932800839681899863332478803997946678756019308398705522860818714218059225985517592402625050911523413151687048127365193021795395068968899917616715270354031509014148965320103826740967611807899175737128885808918964194155262893076370033835585303814795955198611670567498593888057931645704607167251213969698001479937436521328238804061544152170746889083511255788182908955629065513016756114765483179671713004364489729661104987111575953584614566783030137660871879533124627640040552889189663854802975436451437294177826315400358046008617726400577492103961426540790969771979497351654425314397843894171610713988664254977863847095414492770610310611593440548744800220973698384957881131916424554417382930942816522301877205049328583463305453845620781140735735946038360804999557861565233326540768797504776048142651379697258860616803485184679402282743563081127277102686719680571840427836143720323193183572908672798114746599231679249616688799800757626186227050478115549178834399846463280147948998569581640535271428535654454516653105320877975975383205586064005690512966028732827484483126525751174825717224751286041176411098491754019948986950233213635065922641417940071596630910449885658364998354608146260166716417866638758293503445365833663061386634212238730011119665139808073138585036418759303587278063255595005025682385501936656963566195174922846700929066183052088995364309081020129715996277007295473844213282959251551133944107376090585315576862218132445495429543346605530063402737384150584311375965692874932111283565664975528456306324617617999313021729279562994955653278934321101292848030921833597488695957459845689333798175595657979609613622709940760030054061401897011477400251172247420720651236383464002987635508092924667146839700743855574335620765759161215496748969927597290415325279560752730405505952905943515528671135680126422318199698159313820948442357104802605257618058241901705582515567690454548073708231214951260279885653568826368575066795097596689702229014309114887407443973749109879929756102391536711336829996557403476051530478380240370227363007845194689366324202126946108831650140426937486248287575077284975205727500883296945024878414259229317557755530426785053915848138501237386666504440773128370070103129668451828612809430287727045594794503028548636676675243041182635743971097634730155257704294595569137024275172275629115102047311752105597059901909698640528996205880747416802825231860987124978180297489534958509361088243182414086737077275353458786047375700199787769932829265398346234941608783285140146378821275592245119343929437058630006113464421428659493853956791300689508757251107609385018875921940047788628862440592465632626471674315690458415569259785711478109879315676941160701289782388758767145013989383089529345752499693377171924353694067551385796938284874117174205699691343630132568103779719153156480785455053895440257335659590773587079046279263692660324614737257968966145192601479310872985325199080296715553583958006025069211017681071982400748768582785763256205451494580916149847776926404596086261999355481960768774329693316147749753885676851206742748049879121126621590099611272340661886037955973466051850564125243228540802255097598798249230244150872730929271924538107583735392788912791081825094941231730782321133855601869888359946590173511774274169739552285231083623607633095970954176495699721503872134656962984195261126323393083592069996160482808385611657315201326877291006610523511039734188115061022703361982913002185302699019382571189643223898924353434486701147411839038174279143078507060347464641641717228305810477522176067607720914762195492048230383702302941447198954528631548737499472663645086401515389243860533490413067685586589295747848557486801252354123975805886393408040695764688571620098154419873937085674292487321481558486428175861886371429141875016286725105402553808350575115063149883546967955900391582478662808327318408114654808699751445613427159780173797297009212914667077192893498014473341797762665982196485697610322286935006880088149485291947415782706279495422916592904648621881184842556699051620426588366065074776735260330236615664741131642016387076033563662661922466617031989539136629361905405040858633311542448453645291705917670923475933407021678287503035489625866119340319274469058400069977016989090060710068223134219253730329460959824495740431750212657335581145104139019465507158078231144829771243751426907141922883574892082259173392868114510305882186967314424932956465570067223923948015093582024737681107974755276407128321578400571808248669346408288969817786988612232205974396312524320827103680126578207045301422912389499345689345359960767276311337690518020500134566960943178178235792481987112205985320932469825421169979120006771429711046717661600294053511062982288957094355783653113279279582257369876946119914949024503019614118858706462685872302575060180443506812002065310453322271396776424061047972820246463309460455319393777499842450097922712433344158249423616554208447963686845623321170153982020191244255507381868305505255409048132145614044799027593797611519710903405703355187664843707751958155765265786538268265709935333248675084408904727177868793709652002719398255408672327074794977537941423714664333820895999744273954051325046343486603063694618430890498632538448900799090519283162336685542453694174379958905367507160024708139831870795626513560799680793274142055715180286776719909390855030668060750157737530120708076893507613370390490151470360422441736950802467046484834418304123925852546861097551559477571043679648555485106539063577282238900687412271100460877455297112072370422438530129769989691766137068685596488901989266197617164175043585001887425081471187436984995746461166653265813487643419297719598190502932035161708230104077061647563224625505055077784313113525567249519730323553688384776056232408634442819427559853721911097369182369198081740519589405016054895893261160538428018156008509979703959686894553919488920812022399225694832306063069536356022429457743773860094536678326651738945272395035762775241307346135935612323947874450174372092155873173149572276431090399432881372928251301947975104257176519746502627373011020355824660636349577141951900511869917001740201089285523744629021665815648908206263049987381217157727404136971870446977382870819050117821750275917287717777542206073429655657655453530386327088641576145421721407791167137723347914993457772817212951705759585662869735980112119978426931422172534135433169683982534299503823894056005252866771170445755336305581405847392125091136902771201085722857862275019813885043674935459354478315093154946519084420190407588507306993999950093243543834288402621980052045607735220544127566907935348488437325389409343239549789278013564646503499654087292256675926099742404533649920107762172310209858670965155029362372295455259811909705890115299525476829411760448766973914091402528356521266535045625764686770550652739807332849331495892857650879714916611330312842219293565606587414671407770221904022881608971363767383721714826653605228609488661061964301992238963345413770102818949278373780976520604086459087957309988687409945554227331027525164547137306255095272872917619377703158673638863990746776536858858073539500351722985754129093343442088492489593946622140131225029400682562108280431745526318107966212509455475842201754410127108295444511288460742115962613535302089426104919947849727267226110883939663494149374245082377272382567374497670607530411166755831697112234372167406451253224805283554578945118813067766123336103450923469163268938793880226990485898820599913480678686034785862854520017076468126212575834534370471587822508232406350216027544492957129678410859320815353065597790130403994717494308980728762718968141380833952280613930106426950766929879267506456931769032762586195092439001546282277330399745640240264872970158056525932531920738986108635061705231949882266202029069681532750292430311654453147795238714583893671521968591887323255127644247948117475503050683182226914204008450386982800964583511222949349486011233147825702366256145535330898473460750439200821779661254831289147263746751448139182910078860794565057786136146051004103606576546794566963817712057131402563719098268771686383764723236728954342188939272386545051586554442825463517319063036301916867430114615050244349637497413947316653645195818124125144865970195641403908310749851510600542612311415137562958522346931411735136626664355693236142247710736693046837812105818825687407317902098055086497329770035330813454248760649177970476613717229933573383572029190248625072134994340583817577523186048351901934462409043570998060626694964222231584261315931914690667110550928947865797565008402769202948657467558939327825474590490168252539958129443713759288227621031534484718415447394146890525437416740585614631527329256095142345249636991558416702591214735003562250306363439217812054352331295280891101785307360027065647405783318857346975760968621326705818444146854037782705314870932902196813178399569382972064036205626053054931883382823272023425471821138051188546954308922286895583297136021029896887843388012659352178625642260256859465935944049483896387305794054248652556070620993208376520826709426404442829343150227259360617604975400177119220829499804906608393121289982253402141696032630116801066940585125606226629390446277235239920211153978805957628223313300605256623570077828986090924902941038313472538445939342828555152445488177083221145507098268552642590055810417896548967342547170810394317119313039918322795452786573755211725148688347353320474601394446304214771148552583989131485455378950518094540506205428902672007230363619615410903450084513240993706472075049637880921728608848449244330144498662494835551672603083855985636740531219316133020368515489282431727075905423354748945411327486285138189708412274363946729042780008040454259063926606458388692980697441706739521232394063007678769341039723296841972158833279406569466497900356270105622476554281202304717861996230219930636330893084017610408065597164138827917620404075793199577585761105082759136519483240842016596653410993717410995286122083384817223186650976171001342932413302472314306421707232496356979319653169625873544479158197521357338739741337538209583404486460006470036297081873839994070414160819429101429338739049364871849030587981627419332395166211977360901764675687403558705818596484166766260442548870313933579843253366868938176243429438100090077714631028266021289723716252420243309225872344483656032599722363920481675674327373068836046579836312385077493975466392592411443566738336039615710020185660358816681644740441592877633492200522295202537683474048023407899871299483080750429861879620435987107618638991754152447647148653594773056531443112508906981200173591123724272807252121535015353264765655683442988076811555579698231683113852632492174680154044745502668576911615550391209137976038735669223487104107596423629464518535473972336709392490917149140061136093242140825752756462117912522754912581991455880476493153054515424597125743295413494342482875297525454239445253829662395782809098717877648854899942643737247727413488147283883399185788094108640611444172425418744580745443974997035923795520763147523238797562806338076528457703575933540431087049599093939287926054441752811352752057173057229937610237690127553056821644766597814341247294601442872946958253913357521214265900176714703275531000817539246564598516649871253418899409696783028087081277526272136293404030776768030727917342573043913661412444442915243091055273628694416750151015858089364097359269544483237587907775592393116850978000544953491868749061559456398702028080098240181326200474891034938311629421449980705243082016482654638791683957832778487003021025046758386104956289728225165333480325285583061746229707547056140666339107326817058214063383203609638926522763587252092112475206368080079772039686195287064338076065530670907107514988883614729047288237981395228040153555095280345214047184555036770322314825882116669282580127107002758362154376208868458309143137411431403288167702074669784810340455429716713305787151085552710504457163381847266068355932117277039995648634962536464064737474931572122207746633733877119164110190440162651101972767598122261038703791389436876302823175303934211502787241029226684635295157112419042606558379816288075747810742053612322737980290129044124140297486361192607709881611689719805386682415273914148979641561261328859627788115133590724872640159418068896362751861975561675647821643393515281346469879097212116935439573751569461407781602319021217749230254422844919147910086752495487003423748441101655118879892477557024104308606460701808142093484887368983423226621821128881865322930474991776568188419434264858112550080644789530990286982450136065472915038998062750958816411342886408092874408302684972143883230197644187055317438942420667338383309698039566160345850137983143965252990317949611310819025404034135597465022458519237015853053946727034656469470771129702092398343363003977522120242916832722871119403439207723259231610326088478230625010170308732641324013955206475453871224706671026287152775307745090246012591839609149604143197351744625061319774091362324020671484725440575926488436553874909506216226411683217446985967420186358195692298022238221162503277921432745452255821467785681748680034044707661657211133756067323603341916542271706834735916507427549556553030916044496465139306976785183917280355738802108421563139800668352249794968690574549214844091817924657284235024945534431126704664736859754441883886948869956921322471161503136778486915325106308573524124402807637127436028723400655501740622088277692340049434654447023753605015645610458512574580568276304520541216357334251267617523434934347484101321796621817676322537786921047280480669637811094682583928280443068442186822186721041305618997664393738660905640978529424418136744043912263781065606976196198498597263888853356986307358896696151888284525395375012145649823811495351875051365722826814888983615001176199467459591336672531775036300922705203392938779263676571895696933744529868117960909300030978325074483237862140746025372537949302457995126047115051957210314768655245610330612455127495998417185585599890819369075614247365768301033912036233808980401663000919848047708720691585553117436566368394058047360172847651047764060777449417762527862373161446408258023374438683188602447082255242826994409770765716910873036293003081530807724927390277264089362502890470226823427976129089847381483460723061037885031335649180888559097397284265535704514108699232990075493479957265673453252779249677684221402141792398660971749461472065988501774973482495268110297582226592384723093993585969685545652807464641022256129004822932187146367054501164097376568160452180800775719856175947282738622932066434814148468379214653622218615473954110253306865389199575952546703295509930305040360364104774850046621120138776509616022873144473081767517703975061069576418145969578983549499415130867586210603051282902169559875500455184759679087073438258987017524638192182264114554457785022174164111212392715014121777804753172693354376745187631680679312109224691475968066447773884466200633932707188499891491052859135212559413521468216057727799228063791940505316487216378521598116428120136361447577100647209744830327763653763302118690647896316752928937809009972882701757586066981480057774507795674368836512843766493303068306450835575481627917131572458278025090136693114094028707658783325083978315030926557070744602046191190568965601411081221700615735243247451223227308965426028066631302114121271031958292282836090926376669627982455686060211784699815629856401296746965251600413469786664636549054337407646315263803467468279687403045797017739464157981354173138718279832591256603164419995867360151492800053764055478155485446120072903575191479596978637266734744711929094783573010772377039661506498471068138398659698440705017884923186575212953377722649576954266028688082827856675728783608859815766558730117882279414173303272640662265329005931196687277237336020375050070696028700157351870959857168710152455541218186774560447997532424568958802207581657291521254512434212858455969883946652922327001869884382162499194057376464210415472882081291533891469034123449210874770666018090462747127732642087481346450193255204123882287108594391667431737853292874796978721398633846568929432508096039332845387325181307169479659281412928068112498958174930481636190387492419877205285894114332998875596666791350167796482484051145444666911939247743568803433459006636278730820597863145111521015919146697463050666787123386873991820022052321774563081373984291345410129289443016886342717619007886319784939858722564967204650438238053847422663831505379550366316590000771390226089314595873057859987092223032678032770863770652135474110470024464709737934217241515043567926926727696967969072253348746885202571727277304355795644360641970077655123588839663955561051912318812850991321833631715308896819877368429685545688891556073762970467054081243308414766450890567126069971893356975243290673761057121650986767153516074852019592235129155309694276574055595690046743657750115119902843838248152390232048733203141600334564382182666169210905710306939237645631869669560614106045009732063562112810502744806798668125934231084245354691571952863210428673074064572165323121946390814782205194051292811660344300113892865179891861404420667306852408924997256777711312388455932744625541681716210302959561860768099670566963882278272973920701640806139835313024034968189240822835311323494956297621260638255208635050250414200092766646813201407569116529989491653498497605842650542873536004576045414498075240097848926359635320498751928699420899523816538188174276974587358845509977215245623383507084571772028677065546168931613841983819277667155884863835593032035060152399545542549562703225477911030280684112180204719626643691598364824196701166634937346837231374285941727613541003093584315033134095168762884964630612053945893992340219856731320319633563017831790434856973656242650402468161114670889583124171961641024405883482638152717700065067827182182413998756081041616169811997246123263274941292460549658430435113141325704401548708162068851481306170180648161783221610052791274750848793521368269652484779951079124625681777530120688093339315878066096837287039260385709012037844689051615041537405883342819205100396271471798920808479148357500394497399234105898534057069495737163264577871567264101803980124117865723791778139177744234861145712077370664890475076211750462064236029594837200152738659076157878273520782809463830001970758085606110038693112246461987094950187055411337754000747926018107581534263529929744834167540872030844251066661696153149595629644729001966060704180509721534147491331451244280012136841314516329957480292765057261318592825951494525406791280805327564401792946461106522455194304615138503117478850133982823465838202563778172913921086703774183176063042531378135915990542810198218015046742713802137642368463616833928760311449022996628735808073879115775328238899361409946310513168274308498775278929350261596379233579400757861160731191104888963899911947711185533104400928443884075775738960340876740039763651540875410502329340553665733326758709710220027986981923207375263817481389598083735591220018979892290347129720861538603042204577788857312985404303067654877868156284922620365038167279603589953062587941205143434392455578809846141145195603482990658593289939847807059066933727312740291728358656216601388790676028114137467773592386755360368156763928276515755018545196007595394123563750606758576000869020876508408325805517314712678214384179232763470254595778086311390649108222658715493221245748387868346363205228209922941559950880150990296671967414253570784757148741224092879339901712644488696231390621945031662014182797462181873857005328858575877563850859131149009220154433805019667870966138268056943032764721995576256499062797985282588770879135564409681512161889276827509583380912301466660027809836915831613352718924966597035038528499264174633108922170113043956774983770945056634709127557962578649974870119680598258180930507758544746358962975091293004742152567516135946849086418611645607873345291719290130090800990146642276423861206485704788234628920180590877419863781695350563935096219414863699196334810515032435457289485373466552393000714713224117775024653288031555635188974822122880798564225051251680144702080210992595657532522806891806895140796668120591462428436987280882702395524012644959299186235737269262971518899310530569931058684826862699683757919165950447235583545113974271218150394695060370616527759832103538569212328685708481851166710673566809260819483538737253622308198520231516283258991943417199843410411656632156586810101082807907207548064327643261221692457915338704172737471536681967738516697214137299423296681622365099893190331744774605167053260064416451398438601027499402658638498099175366832321621616254584282555587607603533013270574308496016920942700790627569312801220228247999399040309666360844431125304038890372571002201643181951603963881827770070170239729938066680002802053222016666230021998347914308450681247028500345597684641339427336893170704666771343249725645191044936479347780907753202299604557652649106718553614008340234397657594419754134608552561642471995184917005214545308335221993550164098647818620151635226716906681263213478763837752275973331614258973239334468576601583914978889057702339229958898362210407855651663925899319795302179347592681687530647072133111138559891123211926411244426823074314520571896987804652729148997340598025647592983340189725202230493680942520795173003267770721052510439162463207667271629750180533579948379007028673256398046848088502092345145223882593619293492979762426422458902170858937187229206455488383948765004548129388261088695034439007917853322537929705722800361810423887036942963930469830130347767928710800747178719988951402366813506984802179935976013202576525873301497919053923440419712061543272169242874573612442701399792675229222112356231774409099926999996273314473438308319004411555766526748808546147421738551557338849386923557331853153105017443343947925498346802355343810770708811371258705320860028030106825332096186674564301760447452666213412387431513658695282669822645064354732802329951630491295988291851316200108758966347627443169150114540631749000666987732675465383499475699156129476638858996334413248428865326844039766048473546969240317411749507680189746564274567780924098882333865794900248250637802850397664413975577652963795527608937206652477178827725822902764219944697642519789148505701012123664309463487365808137438595274632310050301182097127064225525403653802293019102678790700855513835287290277366920632754067566693468234834045408578395843390263284917515223210010653527744596764853233562019883622117237463122537314384848449163002512609379219994223928392574276109366585800671118992643208154277643348170585940880470354529152658399752994663422170524870652115021769124782157247631172027419321328103886495885526314587180484952456191092383494112706051276876818803792458292521302296036600120798067534047128504439868627560720772560089593533278404530056372448874536062168058329057846405598005702042396792168352742966766808469113165696931142718620993619508666767075043084413680268654971184239599892821721861811686797615232728386579831513601781241678393198627290823917363178729124820017658604863274960316177059351930942820198097399498600332527921496215639009848681216890489681515748581888472266284908106418100728409270943791625099303708285489496519097210718927996647797491515435770477361016305921623744101358621200631956415999067280737861093777493186045031719521545803241561088652054794605754302733361161950695166431462034593193195183594250276080823577895748186468103366583584680323374588227052183109138099211581579858229116265211577505674955314563141640869536986817875597350483668255546233013971121019016270158621530855485726363016998276556622361319534362615176038304933552757542661586277387040854199270534621156043243257255939268279113663707310267178956038672191018906245299121832995118806125822292159114453045879108801246359390684280925495481157986097468741831833901185026193882916014598386518335926240616245437857081977323183160994668495650489025213392343254066372609603927071874175245319346880720595212922199222359898659934972543120374774620580160065334143439827012716869279075010634316577133851229247237030992062829629499747289656390266984676513863990476025270410551864728896440514981345207776761250817113260255549824415285317026825511740515207085698596940725603448303932901269741294735208894850984115359343918764807032481040767009514044803608774159681761501313298317479603150746256420954583961240606358719722595722298341279756608152673962304768594896194766204830153596363079375012721865624967962709741038637576541709131108839491792852729733074364185011567418433573752267696881023793365691274811068276543748774134938533097175303212926599615608447892770468022916132835226067703571986287896695277818548793591508148292082039071917130635818345216317170245300518146819926046011976326880785197653083964789405594726584575607211404613376793906034921985139707840513798507521760381409931458833805390519205098159547061383379631611491799650304940267171080713446341669923902420353154230335879818249917694570684371484448427273165991936164707023641565746735205259899413408403639750993594641758268477107053405789978091671168679492611237325587708442119284216049170090967750795085408724046787970612725629658843555353274317480734224556970411632903805588227096823779706844322135145892643493523860500825836594247279301559200842599459519079007283481836385887191256443133353000466152094644368831159399676659521554410038836269911999784705004758755372056826201353201597218403376192887105400645072722347671190171989624703705031068933552940865867659254061595916279816919397826538827975346139971769133904096751847045867684899936163193444099958337496982090601746000587036319867054897480914323306973991781987418178279429584040418023611157566595797756321392651153397916476167973074089575816756490379772434417782499501518470466698944063359478692356127190891283680859984399998911648903906678903237994090605435213377849403699547872609565323212610728343943601430218824900091545375368862673236612810075218667569683547261790302988893743326240728692115944982060114705179685552214274687320604192090599425685766443658318969140738930274588699194067971001787439736323217553504126801346004623406627537136393101792366375423691087377888830687442572441464210257176701907772386689534951490481911654144218059647329735234123903344628418032952730021175298742983326865828945340398172917818603669611429968526585862790048297000018062903511703407378240984736740935396079020113685903780575799894288992683070157393366146216898846655472975694726097277244571242997981209094932046705347987260737416110867446390908182279741803846821435231796937635005445816729195440756744984449371660288384931559396572125793505736569242621871069592730667605862015719672025526763666793486454532957982907552228649105634215158439712429863419005767025474641784982877765017153622743598512646267331116153464941006719350686579774038924203562321650389253818201114197550281754151221474688653708804531365472592420757175258732286215304340913711089991142890580060463828788410905250539736766020830552379179639829577964648734516452963419328418033185815351551418560980943703426171176826771196478405714487548506860576130601096526794021508941098253928171489772759511825800941597015617041849563783598070402167967768840239065098755384383326830232761794740465281525656939306477383773668384960961414325668241496195896253516449867149865029662151613620951589349810010440139825569509577743564359120595114682351679573773741873400489130654532731481310520481095147690221731051116305963498006284631095119539245222185277996265799485409599787989886477099954222341747011468955248859262611285244606115742080539687070856281184382597591105311654883112415484904736064859318053660714620364524036878199340761204764129442962157602111236367605413602515258209962820300917225138044318989977105502409647156379068385144408985048143035995913707361591081943439538000393258514597074346282106894497108206347010195219399045921745281317221233538465466923470585737666561262635275104637574990943312324694743924877213384563910874070500724040132767756574805292686038107711590334999456842048470521414731692816721324546369113449288341804946804220179405948746022834966813422306956623543949710905380058452014648803714921198136679266450961739278851652352679480068212331643310313572020076712001978600581031391111623783104859238738501878850075676184720363357674238381970531875353046599631714086550943443988937133473335260789582916784720088346533187008908819925930879416577408013738935990515702204811442085650397002881607939534295912114303735212338370410187289954613371390482504989255789057915043338753230722702717789031943346830350632853325893595953238789948082015215059307190567015395988335390391641906663640410222384924187241881674066520536418128567609555713621538988273667164915255995105419921742479350184317291390499409121119750547396763102517519162282107342488825861576035848746325432431339015772060600394936952217588716053208279658688785977396249264404998607592455482314862033853216071106616004845990106781299925459003697221472783311073047702108589260905254881004504492597105492272890745090159552728031002816166481491480619366507841037997888855757321980018007847846066244515838338462273311694587463860850489512616074980748684462390881965747840019749372145544213632944218179995400086092358272330477358774054694380740681106508467404005487084386218657848572334916388083823287990670764824048356141345159555585904047996685275500986727141834318863331780276591578925812865068001532648745886035185306683749738836898924987687603082563295257103802511434359550053273249415137263941234489810567694431650340756063123228276154560536573261045900520357280358961173671912642118524096757828222441841062564132316826102675245110847643556679951301799848436758123431237601381930379739589040525672497124821261268876559171012859414520157653744046898903937147655409160012640844158639668425535620187472242613278069837259877568923893296535364645584043832327447949207468181212151426513574386871632801993692854847402536905165726571286965021372054023538856352775801350708293355699433491908962858404337832361815457348475459069461740807417005320809004025434032180252759472923498240262442093459325619107813986324464061259135234064249723331379807598003485070710761712316695127653154554336340632151334493822848341470365113927866928102507255445857230671383099332550924653449981916870022582594634828788681605695708029910217585635109364971137010219129315808858156561362014411361765329536910979879894850227748166167083598356343534108936434398646390885708282116538822391521116013427346582593880257182193397159429547584412965508459812259852978605139148347109214348719997773390997972082368597041776854404526040624639711526779241963229988281062954817024429173518456583359664972796234431723151598223793247183309874879273290196739461062542794364474419237319109514552137234515085868549401274818570156296361164490783819966922331677914715308440802294813322280381506090657496776770790323047747470247933548897474274438674785235104438544400215078620969651332288989771385006123043846016500375089001762134726907761175009171983705352215401915770552830708417801450145599268182029631456530890240473000484495470635573968280562444306731179609748833620899844713449714406240981370941659052264877465950194389666295843812145404282901754613190730172800702031473788936768821864847889742996758215267622699412000523555625948963066794022283923071688027560604497319886054487960490936993015510077877306571752690552736257696747200294961003019646163649652121348675760852008500648838547743943988870201648144746732355132927606560880797284357862892908290752498356706113583363805131027470726932080512644201113614393157589690238100976931180443245560656338922073859381107211176830953434160886641032675693809587279768932309820410494728275294182350773218890579924352597515468612412626156535683392109482866004284967498802769337815985488895267342614539299415568756399753119496918274562718259445383268614161125399787554025347515736557790910773216940204828236131828595962772707840831549146916176209840554617449430018242269626303767394195720756129782155896992086936532952481836114588167415008384905403741003386952687422077548175965787941906038640266301249599778283634918266889929961927850621160344229796414437305881160618703286258283141868495371212965631240647256703746742618294735576090313295989104674766551231081559722897804259479007258136691827951413097196307873264632063911539330085386603719390491268352125923933139732508352536876233883277725636606566109639262715658582274822187320315901805607840233921520451942426810310843895861381881604064974470277007933156481475440162854433121561357251905357554730713254542075871334915488255892241994603375269505506852290408201381075138489422657229493263306748071452956836007443338520401613771405446663561143512170930305078242891333816611960712724020064505205530929612428822010874458284788601263887730103066101153828383487220574419444430092155929257094581593297816759775869701982338360835046794332915304618498941469968447018588339040816095554785470582756852431593654284187537545520046505629034177259250287948254663170081494509377627871337643970088546075167135270145311276677818196900166508925766304065254767261437819775336432099300416281741551288531996831415631347681433653260291655094332548686038288437386594267046926843800392184640591235916770103392475636600574570598610979124141384807385242464717505242300468026941426375477485443239589208907050230475459120861526576088655518427542886424150736263799740098918450746736371982407717238238892910305421124204225964625765676576524782703257151743691488417270235860177311839539024490959359301648394811002989971509462479999825447844724092918065726074647933584887561897485159776384918624346380814589669137613976223113652472394514782094728209865507300595329716341813583140461825647823805970745621423820224033325877911226299192192506021083993528639112736306031061111598147868389116325025497136286090757154625507706439047798608305388435095352877220134487392325259017228197333827254094243470815840814951094607325333338497312221127688073180024768584544900399056294933182742851939340609133005697360234093084702388709932915551748839669072580149570559103897041560491787468479105823217441788704026891490714892915684847908041597456456163152268860552707196317800511634696927530285597095845385039712372751975899375217433857492799492946952039971571546590621387824461244942900286804545859802819277305741884681413859668495594705079893093354682383448374753939665850714373798176558172744245734344733427643160925754673080725553443536583606528379851476492352221532721234440451240871820219479785367070849923544378192043590852619936898653853110701246089696538778339951948460389378386256319707768929719456239166715495456043314241435193509136294029099655702659806362221323577840030479389832577485798754434135626630470884764045335805533622135832671563489094030764035763461242266551305795105971020170757149678275979324330317580224500527102170912030083739703053904383468525139275801762398715721025360793287096630228875029542938512147368759245714080405836582542434836020560645862478768798580235363453833990311951794975243799397103626226037952317027992878290345420068520057383284225450781508448288091259637200929155669042125484554150575231518956597807954696994214069774671125391637685798867352049344107567319129021610060731232732806193310252886307462620625240638965086530391024464999710482625215828482342419588219711493408884725173879653447105695569960915456983512684275708771334998263701897162450504247215101675136759005671337097444286738262964324160286568531432119560028859300391474549489840896069212183413843994668604611816228142739332715722313104912401604630654911742061992691075002582758569901407407579533139144023391787386897572671755040674099852124827045955615118086408890691239617210655644857880880722622829738279655847481808786324255677458761574288356615234910016393309553345752199934419390492730346604333173131537343022172724780779110458359380489770505260522909725834493816664972889064939725051755831193415523545760047588867686756359977750630068527394002639418651854716630856509784864168973892134799762734154458605727368450303227278370883531002247605695121657014432922287858541422937843791658012307971950254776679084313723182544702226437148235170100238295950624222653554808432016680973695550716285708451477840741132284772276322729324052125520384255384323246169268721188170180723759171805751605953543259483949320786739015113801859717732332746813822753215153382602808165796469479026632343937252451424024510601581712821094281276605771067802302096943581684672225605566269890029539864700969290592481843831383532233337160480839309030813723475937785960425896786006836118021086862929157009162853439511118008033184709725482280542034421047522247197695558206071133633826126510608492984642885453922796693891972946564379808963435524120064315940676674015204456194084187361719073959648499072927389385896498685734708243538223362783617074990870475957898555998867308626393571211658123235789228231411112624565125641590776057602509309696655225829001166471891817284656907217667481357892838715456928721052406194567331062747098846131599792226326994329228486233675510189975149383998968416872862011009945883667491801180251060142069738714676634992639762745055424300599146128694001294882134506357763823961786920949738030213525434958636538334704711210059142247328963753910406385550685966358563060098422608213928634060587203101594813139682987211444915121306672377204261765186281818593346080150935158983536979786123458463285037329225573176022258383208745956196451661909887752409535652694856858831992995751875080760704577405766154550077410138474180647106000489100685665881062112534962861992591519927715080987511391582262796416933618475198614568762934535417835821591821226566223295120495507857303949296279461411322404658830638714797477753012945164674548269294076574072449165274878657435884413731559661077998004985634366832258768464971253663987029456049766667180655317201860908554851391125118658683862588970788966978612037024704097402801856258389656937623030985080832190284571886497114925477917939079535731289612110273000273769590551538456016531964214609965637156168709983620106199021922204403676884494307023175517190424700759857553572831206573585388971002775608337441712323615474434579649972108764423417667290464071683550028717287723314916273888670739152455533817226182064856672072627654459872017858057120123879539437581833963108439390591588636356188676991783644960066467816686195940056598750268766548139907214563462518141851214490000084930905718719528478360910298237858255750423405512845445140665045978353234886563924166461790473254550659210758496643030538616769381560727908574469288304032403415529052817244404226782187979702865586453595962617044028778402106278195822214001137693932442548147188695101750379805043904143313441599301101790456826067233579917785759480672375653829894595539516901137779139918223421068867020026487889654617037404826030247898413505714112025341814451799190912248403604999636533705702161490238844423487311961832387058947091531457629822150854483957575770761056057240911124999103939554082817449028064168382279425849968740520016071119050911033445168431991680238441340083739227898910204818401383639249296995035569645215771654149703388992996409424146207369458763805724481371956908323679330453289570358899539708913681898116105748838908338773946560772557299549718106647612607862336188211998070951296995672079619982354607590900798948832424524953722419053679211967352161082787786483694366777808581399348746698161065316406241050881302717675068562940299580258127612670931661247832019668422080061833161325327718026024647930839486047153972099631422721863372555199166123993870750287286840274734479837884056036454908400429993272582199621792611545418272956473107024325274928185084535574427212402345248877213484085381280123461579788787825955399313706509508063614411364997127593411293293962692323674012354358304339278521271476679637407960759561028582930036644617965904395159891497317094773197980290050934413087083218296224201902743241179861617973466183732443569359300373631512987418882164915049620254803692108214463714643467658295657285931484747212570206939818516868278764177528322650311352190144600463516012698412080138604597927884818957676835080649192487760753316900252880908281160605702419030606085628193526665108715393472385365449372491265960097813408309402345183241615498952998904795510922656723917329269180918616730094294965289595406831748317662817394144895480374356886057997545405489777625240185111890796929263706347364716150210171213385755940182735117910614057915436919219686285740937781722912391638489671488033891553842620112349202432142761420089073434517525423715603880569210625418395218278320671028302381823061386460162401227168747313216290693385503782804580577043590032125903624266503881006376727942756684344600681106148085598731742438323125779285560015573674179465256305512733885704818435422087372980727678936450161080959060043827588371502914728407231693182760643206002921096278933971223881930367099694470104884059232648981847160611941150156186230380604290656833891523053299169782518190144449000622814973454777929849337231859724603898901009244918364817654660747957622829324616647591751986399800813890179615912509822241487337502399342055311425610492196967707792831148378702826113822416888496564327772390148985605758775763524728369502485477689014408682124045319802591910394083583750863363987237620287958170943942952721851851104058857841034816891811186881573554075913383507552618138183741617631171836325539083390096123198967328413097455782513411234422755136679755470598374457406497669968390701362722333329368912525781990685735874758484750494796712696012359220016696478129465059865222115334050035678939485331143544215095467839608100685602996549045460834417469206989856895630999157453234547183412823172297403539611862986130247077300676523797867111896504826683597287764927774872733808167017587841822362138056918243066301254809671766277495782586556230119281237431970634966985509039815741731083159579218068198863370128890826446380233063187350241203185040097115948243156961607634663729449657277361271402819652210795970007778319420760480504510412030664090822102961322925650152797553272567194492500890960872925389717329223480447474693554842219789017608936268536231280943813400876517325546623889671095015792675756060548531577749732433510344732733317587867737565229990254191042334739164336666497692480440650056629345985680104335780414130335968821025085764904866597710363339342309140666496085175511889327062999853670438974021546236707740289225469315544387374523714041979341561913934890806674204727240377920526580134089571646888286777027392628576926810167794930434994016173413389292190698460537528865026791947940242622294790637305352630851070629969631922631902332898107504827512390460596685103161814334785393460468192746240928957881491120374744677698350937185152422792534721964761374804429770353213028856558469150278311072385801607081907844336533222213873985819647452027106651465421900563953004502870019775441503166866903430809402391009740105995800406018566351900098017858827729298686713561428793476181616518352948933850145809103808690470541897323384449340918519960071119132921511922709570039548166485603782755929433519566526549727971307565750384737531285556138947657657943964799700769364016636475008382622895318195463587581902959682682654721775642680419980295522377248385203117436487131765083268403743248131828248601239419398641602608722221475756824452813651476558182593333043673424760015093777137876672868781793857545409118842791767313369631988528281586053597581261753079045405126805491884026217840779832697976281540655898250128234610320928714728370462134122287578598911050529438528288392025590324749223599862869363175275787592867891362260190468061968426440421745007016039505095102025656809628302861254406752264607903673905837039222041861942942163871826853992779946236108560451458215516078773302097225427340056397946659552051432432816586489045767228281104616616711290871888851936557014952775927601072569669094752221851234251395690185165549179992032652060986420917039452632534905137393732648089950808990248217742497690954285841817942958105901227158798279319489636640521000842289970492807172404114274663616780225998863093143356308627990262272803509079887611240975556638828138343656549348022411768148359506850944111616036264355513877695943773756843736674740343174400188581751124523854459103591205112815934644394144749139916786152211301684229901935329849421308488674589523728896265323331405879525076671906665119136014742118699221829917162317384379987305796861223686352172619154931370214597938077049601151903600257703846279021564964040861618647579228261469669504813585923562510689521037406051796511803847170047703891488302721011833703206034252699685278347057866047362229926488418345678178723226683702422329976512590539952926512004853341347822180596027407682067609619069013139520340260595400012443854130788718021168849400391118741576886475593154752000784891458471400531679824033607548664223669207839053721806076885201576380556555476920276024869094011907542250612941904976089539636380898027052753991639143972593437367609492389697942546361105028187651680004352250250875455424866580094479917457183396254701013370344201893719813746235318164059677946134783187204143862330163573175063366987526752690609153970335385896727165517093678198833995635776689392720196668715320880558280588084265552818650027464747307598124306010434902870845973990602824903153153349856676371579858213759146698533128365736648495103244786851822956633244560362678260887117257785696629732695592534751368952631355354008643846979060706016921013669906729821702589359810497306693928647604765131464458073239049016166836087220593847788508357848719821896749606382432735466420766985578830117145562987883816073418104113574289654554843856600564016340783648784305128122989616256962894212997568415130375521474967864106784486467288159790663401213014446066035449562699336424981938348683073642057223509214267856280833003471168535882649691778950089212784432219997695009288794854482636649592850418814936247584619878597450788245650196332508350081565013354143473248930188708457970626355339589694410529864938948536795755938660610918998502334158919479253437691291848213367123038015552232596822008983188770354674520938084418504557273057784812927195497006793396619826090437130352671530877669994372082445576413230539726864841770152666159697742713397298184487174247692970925194176480323856957474993993008589377859238984280190010302013137719915871173860270608460516108660428300476261744789276078553764656072390319103547286364101023680597005040448044329518913693480348953625835459153951556196679558090011790274889857012916457431713705885006855946923876418956610600706100707491713693566096804226694992326522350414368148150328559666205774731435915753011356590259393734917649671759824741591079888541317811408542135840208451091968852767130135914820604861142880069778927559035138957536609067954065782375104951692465330314214000924095509597229050931261551202203719681582820116313068753974900443714455158696486349672279319063511161089847861227905777336825051718063389406101102322822942898820698382903270831338872464138957882097021392990491314562205306168252280377409708601587078699805302579698156198756901332588874857728162535628561805110047665214427450333516865434278335777317254698770605749592109312978471755874113485096349040263997554817099234186631272980067791048543353241749773052097264675785244230475824414491319088024377074857696187100550297443460146837877651118805603506228984878237182841997153165441986894520924485382728419229433466750007263509451888995286928992500536890145964743074217877233406661719020568838308461798507206656362615249720376668581500476564301729908070556197748962858223062493846557076124061693285971142133752779160118395919024560257351267143724276808298474502239852421789618621920637576546711844416942622453666418104695581784815659236479823225413581942829937327047973509993435844320721179659995252049190068464745825432361490399748211480882603669811330322590791832608868166801428274850583866908577514120869780851076542434415087682896637054285009850865091652924903269575459279373256197755466728251051781983640293198827118041035811309930411518975543888280178983806677384522985407899557743907495408535670174889960505003156862933916775839822645998276648171118687177545981959287379470455631581853856274632182645084055349764551516237625301832517402811539317819670783417543232124064363984266303891211137349885383094433740602491866643060490508100535854668627298372334780390825095205466297774306542786032043393725417909042420042679958762002828718695124041881248266238334495643344591662347305248624311844162207088984678228525268310277903435516151027381480077101428338804539872272851402508316394586803538334746296811804080703727547012816253022874446059573349543712796782881728294004673238973195214782364049091584529361325274321425339772646358733033572673782241988782633626234664106306970339857470370453660417332864618338847781739660713242148329536664459495006297241309193176151460206736048148114865570543868980535103135221970089931877499646903439902649947160293943394923223837661139213368214595040179627111120847143871240613675244304814745226469602887120491540845745428383702366267652344185567380084656833669991146619935553618872813339431895629145070089654613521307958626673378292478814827524603459409513161418115306942927064783655950421878246369434250065070228760999786619645113837595976486308262718180317053283815647800716906909949014649401393918290367268818303811051636527018613485627652120883000920615976491817113878233828441820576665240667436473474755176930823756594886875155483259907537546659749982074079082106644382347821890783224940882091219252237164631925617056942305603350791828034473934043100165742802724593501717282938997291080635409564734011218043947895993353213770089734454384410537382210549279412297093460182826362148270689976144709811384786834833864301479176128966293683450488748124827014706866789858480232970842527987196650584614972484286308382972976291509288963291536784017672484646810497384912259425798089069957514675174996380174620716189988180846916620838158873736189194098503070865634550960947003390276949922051397066266865635597025418762630956521281796756197524769589952395722401572911048575324852253217176631395094300215631360177878156814827942787745740692068846416722424918758628862819900267779354936156693605175582572510089505994789931143786197869870293561392376047272277687838785007122435998463174600852257121000632776285326906743758247581739129954164327851638723305608883823691226697986022585707119662057443457134982234062982875423985717283155964774214324784335334763770743904307333564839726737184366551955504873897421046714053891620912586426230952797532035177335132110071810713384161652069667171157455691736787095076304285732054747911646314543477986775644873543744560753778930219306149171232323200852254684761566579330366922259042084395080695768517089856088757138060209477527188302250767561602480929278798329879005510166963303760768685951494278791070707745699558575065572434955054686979080995740472781028659370987646494906881914463979713299819629620102614442558818057205257159961679934742313699316618301959741393705085565652456595794224906442905672623426199183416272844334408121393619240609551370789974782335309290777713937456639905052846295422809243405204299604530168255840927680566378074926464806344567594157630389568018057599947133157787231891839231256935643452447498071982722790297433266166568359075855631269363121128779386199278934773916194332898182158785933318322929038293916657603637756789577182663798619521518902740637672978487437772472526312915601721149815588971794795243091395534875333873034587446186141429249593462945397001188339714094792697566038289058476391401147042561204115946068557856588184107274116530892971380613544843984481254428395878449360116735184366922918230167290697584415456851822015077340515798916266162928987236570744362882379155873137549251628406514938866230452276967134598053055492510290216191304127991158688852546971152447987986756774865226636086978115767413550869008317582696122593608310344918358758200865426185976066954367870218723305823713550734593150590940158458557659306174867114342966101282793259311770485379974352585959747663039831653685482746797668108525230960814662840358083793321004553693837507661933379565255514597192681369919026706302813792971970092722304123643337392252214126271818660949419304250212702432853644676581824768973294020743732324741115238892184177158359410074214639163737706601737276631138150155511800967518380119481031450283078969005038410515725964997852295818183960756100078071184173572633808179629606509764191798801843495254464551005464916057125206138035571003850367569124922285010267966934229065704895002089992394909947921329028970830385956461740056371725003332823566805686083798308219551270582697651009900391758665985209715393463482467975693534737120930407028756760529205955342942619870890476528353987836501445381286402168668993224172170277154794125438730515243979518843652229634448491231315774108192764644594286022941339992079903459239407065277212559312696315551112319489004997573274311733706938095335277364791998859221084134960279786680745570864392862008474140013901049699707411594611578262844399283379014641507271432801957491551664870482194893297075172113052222264657597534138576659617490185202167624952913885483971596265548657213992364530978242131830012807608556128255466846989548101167909634849960568395442613991387937790982931013517227116238896175558839758626715121908368909811981130869833146987658952842887515585311620993800488008019415139172051405404308683350180646245721220417218304840131545297147111129848546972165352587537752367246522726171534944480156792244428604025318593811233181924351034849206801177804127000694462844130321514656348497118857620779968989853745767582023143357618256054053697677462015575501926605730333845407950921180668294741756676884525302700435269351475924922691608143689894998034829395327054283198776751627044855273617881802415844744273346446012694214690802933455496979459193904676271795010721992445647937587628863882848724926263639412628609932482481638648404687317226073486160221091856960082858838863622152763083747606763078913387708924436410102362070316139311850666416840241144745517731802003616387483850846990499554238209093248643041134452385010952383947223178354663038141511389816037164269470844993994268937842168135997684591934988499240916087663947278141599249225514346820012042045219364393380415873419726238977021417562040685779915277404291881360907218557643415669490764208155617413980771220440179097946201006361224953810480631733187042337083697364725946462704056399618008514911017985933821031945793598805031675128699468178364793216051244098661276461111280758076957846356105593041521909181250205801257142740894887461526662438875600341182091340455399818997765180359036662124698472373998780531649803198214702873237330394995364376716937944840807618958675411163358291251589611318119489844934081305102494461700902717337785736834230481155908601211958734142495018863330543803173239648872649899777880885797897383636092462176190211617085233551046984260378500051249289629582323889751394542753575597803911905681923525145863527610572207869794695098321643808473271287843649112973254671252948896579488816946392447905714936402413957954741226755810881716071943960847952148999501992147582579016687007734920279488368575111541390710710664114490163052730593549198163258500042896734758946799986874335811637197264575263031081474717195393935400888507626372400643355712938554671126902353147077809781542420129134053511439148585842546877566515809261290924463425962714078608834010115866297010045307937494652302553942422899110717317502550374719693380834897398953592543846829631600732251935460980543548114311891376229130808799424371036379335317450895771591356959242854220772831241645979218745669130572687392388138892178548656208403469611211105596585456278263255303176073887314054325531902751683123971023515488926334082414468474819265245222311544529641594228801640832578740042917803734237205601802316590848842093401475458075007460198935269944389732931753545089807094703789197915196182047717477387921755813144184451526423497284588465423677298391175737899586122607920658452953983621548549209228037654536490982981561507458667068849746981005066441781342113386046066090671499815997356885681502191568505842868634334155061224087049646732879313393439752398525056505534019890840296107553996468776047001369753318827291396791650529873279175785157381792794120687668533768695531798968427826424285721178439919572112955269136188771947847753892812944813923940876888847521663463742393919728850636841439222000255806577344257681605911510515153796584928024877964415312222862671631698875653143684133844462707433812980657908312656180622711747092311868748649766788389880667613732198278485547392515919119275316987037575907533657177295613211126321170431006415826574643446054413494592413260724279724395854039528824371521462979598979273602876046817057317605484960978873683867682913383155841737959137129024074345210947154212558135043766160676439188204416314129958419702851897115919257775564520923696778321273739187810854689175810040268459220390962199942665863913619176354014059816197145161877025227785060574582875823229025400683580014609716589307842261120954557008574326181153075596093133534936365616586227710578040897462009867338081143487278454194886442470458383586851260929069164374360392517767143444507357944636656415172419102580192300306399468449768326861585365728805956606140436984143475162130115018410436593644974761017869868571937212226097421267616069678309550024597005354673287750600117178976533637769614683153765403101632904569383512475988645456772222304312430347587913848518142559630296261440883589925730118949408985195403566776509795655237979688881414355360062965358586093379059171819461021204507025397910353026945134477933124556089425249132720918186125660862221773444866741261117148777746004609708269516398022939646986111917769498782226875365811180943426511061661330579327573051555246049891294783790379550129135110430123420042892415061970071487577806050931811676401173470072761550540461733944281453511736502936642326658750147711499716427271021377971680459205548399255212719199493434038898572944775178783979692994392696861520876192663967881946341212267492401290578180804871060783484201922495336966400146389899545795173658226799965110492810616654796948591046456387878128310740684777034364785618401533020102864252881622274687934696404700057597189435278770997217699157701864426860372575153857110920585757758479843675387704472449589425194639512070378513960669768402418567842974312395853435385581951369724347639891907841770532053679818753642234413459621579437993519679465151675675188241269511782030841536085721517700680830680517551652381340170294110148498134938135863791467443133287256200895259900448778810697455540506750146165953090479540013458242591153610910377977140926976720341841587428136542155230790577963685150575309825390032717231906330466225637267787501593507354048359703745097628332070453778893188018893067784680019692383074757336521552922514998012831670489758171961149591669389652695662247855393719495038870099051899522520786295104283820151951773964608374657230697688813674799503739871788729486818271138347273146687025641164134177139039251632037808900640598486197614212726882999483375012000660114361179392371611773839134233219602957653223411596703735543342943946081288849247776612335546029806233779967244342751839855218559872315122867476229229358703534929679431422378151724356603469064290189287586695500742650519618317951166621313565535680642649086989288215156943871005842228259607360644609042272822596597589926548009988235297780423996304490932860256157148877027700447597607711463773700470338234854929535471838480327076896116568598073618138141406083162892831891521899598680919826292576808068661304182590435919710658556296773436258127993940794737831454067705247857136068069747201187833954698702232725760005235331585612502921922668989123890406323485636843770998295138622176148341562025214806489140170516521999397459315642120559139015098248305877080568044245485092276916521271280174519993190408570202121730306731784382916407333852969565408462583572734263079077032718700565496490447256694674541099349781213820425166289895781280921561895201686934263349352216150644547743845656797438459623671430228307728696891648767154202012988499780463026958092963513602932302177028638546405925112387512728109551222600819827252531292437514086335545205853482068334630694272227607526100629304683409850754898855684078669448320481108776427157985875595066118304533990527608476692548319326046888953084051798278978466529892020011246896256905415497894399494988454512242027250553012804215270939788068935115905267644253602161577695061153382765730047557932926008044778602611902982447732854164010034440294400567965962040735244562831489775289781784679263791670199283570531851082145124117809795714184773497446996133378161762379101083337902842820844179295770736713363050799241367858363751149651815815449088643265293934826645926843711753069993037272102201511115538702513468021331791062430884541411967478708698616330529728953071677343142449647280889620641619931659461125956819099419626483016558176822008073438144147387282388538950771838038186087637039723735135507063880523198531456383033296458752727247695367551614623341840781934345834282319057223536404957808393927890551410775116845795975350270885642698295158799678480129830425981373317801012235180121797358110014357610935367956197023065125540237238891074240995550182995046371571438067646839583468946757631151837235873026847774467107429208669582406780635582128243939447430082516459122461475793146517034109528809596231983997931180972732451008457223465276512397442404754917799772291532973195257568308043105766168011877276324963250564078636065977142310232053024210831112099413033343129792170818792236103889743146569673920214818397844495946771806254966126363956334697506692365330330201066072635201418079586512460985007312798095507313906425074799633461133207770798365535468645616808948694204361538122795812519463706674386141672040428747212174078504149779375832179272365576483093977008283362236502877192163790840427254469339180904442308122111918144548541568285780906795637353587981144715106644728984124161926738327268838145200796666643778743058957574484522970950134931899460439572400021155686291515311010223853917001400924102836316342379683707958536046891571324011273193042474193795919106320618851541024425114989932624654942173342136377473478041801500797287659944070241000524417446952962394128823437342579212766575379472700988469679817887196558363706211661112208447847364294461236288929800511261470087105685524040468935041907399950949732424393275928631303207274009052344434404241159341079987828055485568854711434604625135594527702230628848464074610073445940837534974314178438764130149870687104860267201750388656580149095936248047530034432773524337051515249903276505265873491052623159719774157300316911048992482310866042198499312827247608537912215041557982487986328643516383054180885372905403355850499001555729632198098825746192181482385143074409105063906423568408201687560328267692746271692185188726196157405050174491951726728463418767134897787263206122366653596266575511525721040371908957255509644736865709807868884981049364760235901116081777388079724611595193720413557286545372582847769235031901707382858369406461045124039225340357569062547177008984903284153735661681911692602682648956920442540189112520830059357373080916625357811072825158584745259257564759415780485633091387107895466824122401915124286353027429195697077519299863076213194968253533181873722764709734660053751333228980432549681381900802300095639425517042395057523576881258255436784780366118840251839923399825971753998094986483806878449905382322312811216440535453755558307735576353144637772212158759217850969475861249004876805913836455814037211342375013978151005313856198649046910714262894389339697481325944026157445468912037466579265232799942856723398023876742014432007187449973178696199550641980455056534592464005678778351776068182399522579367334832174203145195363915771039598486306876371219875338166106391435117970600571627295840179764845562601109390834504361829583182951947100208121166453693377674084121552691584977345035645882314756903775050500129102793663065701350066341284172899669331713556887575576218742501057686196516206444073100827690233505560597629912651529031671686862510761130199401915578174750728984648668765371395485823739591174928043773970238645884544016265219188357674443637838005852575678892641379478688508254464021372014659786805156496999073656781779056261063208452065718475200387230320803168683912756486636244887206180460882045054513108840095852733705153367124867373766068212882393183396076413499712234952405194836463122077734983397002174122680871889915932204081735083809462281645695082166346458529591776917412681069581787169974460455456952302518061381420651978282760657145110364082138703918589461349548115324729312270291446831309799312426176689382357822370297663894554596659216451566001394391522023328617748043277090078159799843854700909117115788347618459254040430505625630493679229263879072901174342378267167088202773208993739320161966694360605614423564014255639043799120588439941247302710527193519730052963766858075645948897024537180854068839602286921259561166014797663190214762253772178609919823012333568422092720295617248977317395395509642127146371472817494980131579407105420350833403394873456254054898891966155504261757960139003141701137831937063944661771759518384256513520414332294504901385044186899741643039990506756334323434901721951102309562373709871757610612841368813666561377996499039466266085655341383965625880153585391755129749896151033488666962401403609651449698929941952756452879161311097590871531846042895802675158324522502674153552276323243517107944994460415182844795149826438442802953912941459325697745719193976578616792819583955565556361239512673094197614575952399794841155850428387032737775003732405017295315041055897108792350375628858971036285271304638878153485095077756265962018269740935908075106910941639352692212944926426445547114271087430112431748484016380387759219948234265566046341569417222956953112473792182907614617637379728926278908579615990055745075365582133847079920372778394735491990510371126642952054756711864955356339585854055489227240688302332434690181693923030363289785190292467830760335019649072441603371789452519260821389542847699083752992635811162189950767701300608110515448310319479318057366974760803031689577349896491087983177717590229422046244763239382834195993610216412954576117232607559820165223879746661782937599317441541185368445965694329914350815473079795826970959595194134711826235312456280158419077943946664313809357417506699462013295613212510067398731825916616891930496476867037264884596755715544492623809295391723596381899986497265697753861545071184682027351381760171384773405916405746905490825543402614921145408475507754225433521442762062834740176356737403898873038722531559135170146652506104719151865443420261913450284279679182205886552451158700281527014598089736493054014691921007197503705547497917017650673232767863067634572149174944451234709936327641377724365491141783548253188360771870783497831124936761843299966339846790020273878418841611229080916859569405324156160516879462320179390548443047178724357302209572537793743130272933543549091414465939392410824267323529972881668523124947580330880249572542140286420557507877685059399857219401864732735562038375981514441788482023915436821839995181880046133655761275100314176247673727566827316279994686980662519275462346755141755073781051550847261053893835923726718785883837666559230677313591447514985203779301372528622639847995693588174824629438071685188488972534388318466465559282967244105590874395931547132931782720319928515079027556907449573587778715658838175026629657410909250375804281542258021197552373507771591234919438156789395572700504007745836368566956567075324343318431011333987924021903328020252068046799457839013363803115561592734178030553066453478206571612151426942085532130732655729158888638628235541449798321771657038714098284308328120324481062808339749687473084587174814446371922498534961857017962118488165272549037571971461595336985315451283228407798450053650257279609282956923534105541638846551548586091238071451253889020576688327225449347537804804584381084684380017280230631551083829109949087252153532454406228348037035574342621871694761567144953818115547465252556524567904405538739920046645536126014015911729628144062021982096989287906869647763685936597683101322982192517508690200192983752969492565732086564063931272394765704095201211620115840642548048183396573818434368182305535196262417092480022847770234193645160995187817769714137862538489944429614342928353737793298967559468113380544742222161450960396936881465467908457542588966468404015126602421221953133908461161086757046979231618235170250369419357835046381079315186653197168503093096514135697179526367651117879638963017300790785326476322095998664087997601511171277306860956006814751791364658238084576720983337432745424738364623375973105829660338365583749272666023914037697693799448207228959332078306269692327900280110019039506312717408711651167607512013123287443566664319337589480747565418471243418276734666350521990369004262753857645286824787526341827843826618574191432960273067735372047420201214507271866263834479220629342665791844937543565188270629371599390103679802024837738253886773625328234286986587510988238891061545732923842783706712724091587061866212886354255065903521250151302271848629864130402947366303098962220833451663143123216371180613520281387590278879351258249100895547044599263089596321571562517814788400130178002894956799629443488529716008047316992302204685761253721081364103306099562950969808549023708425278457983587938439997876070918913591303247661499799976362809674014581885336913000532692799532555824692376233199541403637750833608470467689166904212081440967127786802606399421049631043788016215666573761367226357772521144944318481611465531923326861590864975685530963344307246754726801521987999970852139174810886816767592525087300538011059154150686494702578754950993004769776485287830337770259793193329118527617907013098856331506689167277228040604678672930523526290647067209829856020767966761638030959247051771646162971484538747581040762442512282950880367566638112098272841792273624973546274802861364402777148009334173271405508838507766284452849729326319569217851713551768925230062167497405143890007017625496733607972643851739206990478830152321157438626921183629012518783002822067635880325160710783290490125117355630009875980871983525289117444797992879510728377335346036767157358620803125520658460421195783472249170574277036193466737735524553618834638862047784963816140084417886627307550681886357216744285109612177636292605663210623663395898597155461241887996477959592863030892355438996870915743946247352375935220715664161869387897336713576133951612433142846159529666267759965419985210622852186597266003307733764990264282418897043510937540668537342619894894137367081248122058258449736569637673310308366411145474409165540767033993872553993788684932730235209048926177461386148014732272027526819089048569640586061298199364449941055378161094301460858759458998851258435503992195362825085259712743939242616297151221716441396974581852922389543048560775471487769207348063932535382476756015677275316850567028362640138902656097519880207261652392793541139390189845184478095976528223155309365820416943005333719330920461278567493249349960342217504421696496040500401364780942167689663953019665459035857564926033492591213519744592579356790856354272580863868501255343203043821684055869287787886461456880535719032684026036013122665947443778096031996277274683899976388457903659441137364646624832887359423269577753984219067127511317148177074428463715153901837247034346719721932768823986453449509599210498623012313373917754269294159405089831184961901029322818137264881406955220084803705220748729541010948974935960419312726432204534248230342140887897323957340474241201846743755876178961897653737156338496779193931016600400843958877925492265032719761552687186397919878856649518301121650520106797469498661777137208965616674399838892043110430312863559410196622668700410524543059255301043683866772748296088666003699965632089163611081080429038629749413373257126189461738263526658439146167245147089607484835120233075254353401570144804225476983445855245219206281754232483321689123216658140235995759822732318053404365304478534805918773992008758486146072797645998959942975395561712336147682293455676551449475749743747352530320895015868735981124621417634062372292153093157167602616498543445355673098494251805218238387864913436723773701590077144564993557331488247204251784839372307940827267534319543196867793172238289197710980829269873067989841558643346883465698446257162010561665688691725219274806567693679259644303085707411539917305995717166841456244109104306178049779396781336643871369875393096531087416495342542371870777926868497845095218795373164312975759228616975790030188122230435269533579526521766098510838082607055226067261551499662642704629144821933238633467462961859761129994670652945905809901818172486252183798793078157855170035379791835595135987057569342844276858272937195222405883010276185967755705612304418993344322422471517256625448006549729129715941655836523984623039867862956052198760803566667126838349270505269316200446005358594899104446119733778692453945706266823385362748425285372465686571905200498452660868861486440441679607206039571835297059014192194440476435779774580435474625708983013432728338058102103594313959089540218090274175462618048780660469342370746553987883189993832482961382587028566023938523943020217169536604062987978190245144802339151275087710277410252639392646823566369634947257174596336960647290086943027101282268560454693813004428643937478975079430910335364271556315976239559996365167821232028547632726138363517699557421003596199135003654286548636426067074273172906496078389408100015167809691008534628813560856070830702391210488338481076551918517311685352978488223004815521063053440508269672328762453841872240550293668306882598373957557917787090343065125763281234424218293565159739535194212555205169403408086262237903595529242741897182723937715011027989858736429681359524218040007664083689256306209851135339606539773685387235698673102272853397596358594309812723239269145748648537341975192546305325883254210804326530458395453501065004293038812425757981452144207571847639115766739273377600144291787563339351116612884334269293979744424731106102592442710049271253264609618324510481065566056812881768957911780494233325939322908671798049099943474210668576899593991174838503996048630854958412036780526159003223939485172292006688893670942746634735675732775811836653046165786279462417382323753791787896002682211142575125314061020403228439073030671702957715508329870290981336580126684331919343090718579683332021415023695835950147076695509319243067319515120650217899681821779320709083029512095191907804598468640125548022817104210899482216879947100504744943534227328188543524917260666156541563093167067523057868513168836581334714976821913760082661595671038086274072244442020191293701995227556936521404261972584003722646369958209073439894830548109000466564833826913239149035447552564468668264955010201254205012548556482161283269397039364745329110630567954148978713640165214794016239467296002867110127370051192525660653328306977946097542161609179115520928242121555331019814735138244069163290594190798286027970972888167977291702747850052464951477346111823714947793297715429803923693626069603643337404878722873331714927509034844258142799329170599316397217402303751010386999186538960838248032837684146527689299070484542464734775892053176990239275873235401923095471285384416932509940979918939156003422863525186625746037146284164304955811882583194363714114940342556582546422860212204038305372483672905615290003540340882029091185287635060378346039499921806451457300686353283771046764827479461197286747356189561720686809965122428362953694978042699126987200167246305228636211439255192369998049072577023112936569639730180964896704128019608710489766673176864075889933098564955215017733792161143016316668594272796340424426856433411232986160774291634251074443943242398767787639439718439397314108446080522872440726455496795663826738396004168566529144635440035942042124876704802640376528976275386947412664971386734672535205053047357130996216138515307929606433282918804662480238793240610246767033706447483533806238797432073814796511448161316603652767523717279291690154078299964552817244605006750936017976783514350330185690901816286584681160310893217919021675135171893158053259862966111348996636037680569210238796406628560381958094038811515611377882922102863304885709918750960062223519570642791245086576885817578345114981878754031547617658472719574339499112322498373137386195521469056728713615655371283130023677745738235488605191553886914515971030893232283854053142840303906630969097932932816418546173994793703373245881578549522737378883427720421772828587995073764243958172230513086934642605665998239576199902491111361505439905864518968103707303609372428434206990909202559774566441514488662871915960796990915968147374705677921738918715518529027661674422307166711385692253834024574942071553967280771664412562826222527850149774567878229189407272949119051011624948691628152453009959947299692963844078636013683964662024503448373917569126504102952624123807886114647084770466793224078900961881476719533935917280846631722525215668095800846904349466815960604746414418918474455440707686952714034467770825694562578037710043657037895172265370528311117751508607510040202300352753391039799155435878930488957471561268252652543716498051006754477340244806050516672303682919655851132858748589523770932515162576513576273498861389911889520853473301037630961014189966925248157920835330879599009977453483759444363317760579424154744297912757645483179348924364120724200938503117770902478314473711943400861888980214831630545220493080860410936441375220582713918639160707347694024360286454248869604252259602161929364091135827580015475148412050579471899124406923147288860649971159323652575781832003725639647279865324293011029709558136733284192036441169312498096014161542400088438774112777237365292621501907703312083776984670771584770467312306015050518412640833042858625479800294313774194826180357868276488160288220038141464555949968406844922754667002870263985972755500674791993487843387989601636476427831765287983843611476646773933167812798324927043090281167093876004851891117390962039611598811197876590823905771927266759902797139358579531367546677092143728808232483446722354409400823146912791365366969327802726139756552662624609997807403884774890144235371461893500209321662263050272745653988595332202574262709900097541599454970064015893692255689495757711460312877534226584054210358438205561535450433054246489165928914045967918901434815347636500902535338412382259472823305515269903278418574867213685057783875813809393157745257492617914986622766466809362419309901137101378509705041199073268720872739847151965834715073344906603691386384730452823082597125613177208323675278059933428555131318281681688570383124633515077967365479000190328000799014431328365472887180500642827359948127367642098888844321683747010128814478655880307156612373239207873082427335992549004724662570152940261635728199588151874314426711155893412529613044791872721582700294001414433183546789983087347795327696257744933390650797596608083510766941796499353064448449813849376818674550578202882743061673203697940980361592619477152803680207548131203721726149104806750237643055625394996506782354793177235251854061533372403691387027416811742042314114078670828600814607308717057932810022702392170536262199490545304798008900824306633547533042216779046194687878211872123858126551439448956358631466872488650483975607010397076301257727306435986308258527972370471757162302950413898002104656935562065141699092739481642391181463974527418536301739804883117989786023483939873789697526187801683693901869933680728210506021334026846083542630299385120547227760697451391172388407259373629477840805031417468436406546552886851139175325141907653915481163517192621816934365600353909782182906599098377230130273593845730565158345729780136671034632820183399174467882262275353130868305377428099314470153352756924262040185298558951885931439396144515180294809735934570418994906994385484929002190856826573204916747215210986925102986278397283064914508073515192146980019102957315870943050860189419073919989994115677036301759466347916417810687275543465038814440702686685896364189738412607616786394963064960787202573706262800478960229341219284861243051649716098072716600591263647785248858859944771232986897441684459240240036191858001305932503807824991628871806759990416247404893548697449826901213368845100437586608287514600926273611808095152839402488561657028690950944460110039346500989475876091884892524423859997056253404018415937041844220835156324741462701221677761690392910979131533772722800485214408633760837935827517056300302204666521208012567841080763356882301382790877818912288064720840718063476981605133189749477229919914497291575354520284351351840719976714369648448677920473078679612282908093915008323687718794596798351127465659847262053186042723729155525308905101195985029111055997634156272196467755091105508722984046044183364946408915233248147313939185179841374632871944697877834934858072189246613457113239578573857509737765503058516904272587771599130789846454190250477520421763080689598243128120437467231128294234583314936603277944841915240623006146283960038093679370399724710564878238082027377568054760649284327092527920353336948755998684521705357817526486671153663518402466792866809522864771781530826236941172402434739569437714046470649541507636074150993699371368345878096191932794536082338723737828026236157828932055343087619436606490071997849978136161664732085721235417697965310673711056929074862463841024693606983915035840137070180439267292675555137478651987474942377095967682967585239791172536464950124812964662111226176604839206338523687295950403478648462029308789871731198890312486605589737871136425159582894997267813328877329002761350428446426169325106498663259201006153202133744194283379073886932681000315805664358195480644063701663561809138104951562315056976902575173642114281480463498181729634498516233700000437073150048214108625803966500889516393880542140511045393906763664725112942667524857893557088385663724084850962284037831326525689663375045795211784349071557602006747542972485613209182906266348586586736833854530754131899276959100960606590155802657147487791912720683017043928791372714018106557624395737090204494577417599581342655847508667555346735508718496342610751651835069258534120569181587942222863843048464107458767130497750882504265532923246973366434495293654797541429031842950378414512914275678550321406524941429812680305419408282913798730302987456993157873740447244568395424931644621298089500312244276699969892851064471923982880599856509457363717631131044182187608926400089531122150041746773119464289409046285264661599516615514483477944973758988350750334932188222170486371122329267417945865465136726125727327913674297619470055365581423647986947839538896151497142579557749772730310537190804013533124063613400039364352776551299818184459575415845532072952869155169458167810861091013780097896570310865390175917977316703430569541727065940050294102707322309898819631406294680880516880662406472674664181947431413797808802294148028124856528624044415849719743946624493639077544297175837757239035516663805325066171366583709532899019183277648069985009218386564059155975178593928244712514759794912763678314842720614339638067615494766999818042486178489323910792540321664379037328044212406337836122975394950683677176566924778267373381250925984643692363233761181785454564278153596693677366092771060388658662501367741981599697979039797971343724633023170839548897429629604722392682363411303542205656371041535617367114287011563322599554691300765011458082104405407387107748455316609717005781134253704855857828127973588723409814016680922555035532097510961223268177739172863928202739285577548134698945947761520117529044351965192029698363848958790597684064131682096137444740581789559407062635878415527891887681387169702869224360241705572607165035882373375627378534081663052850257180503248905753549935604920682216078333199140097142521536118518845547848338018241701588762490442548607568192905379426262002384734003055682700972942438776028529108260173610771972578635882450096285207382905397242248945929794464080384467794948017943320375885256386058175660664990117943470097582183415637725649385886247391601612178901371950195766738422085993747442743276463728868916502966802683515482166039503628270388179687702809319330599922721254207247158815513846009285510021207933007665341703463159420688019418419016141437853618672303995266248954362479186140817173788749577455371592101564211769219235193331639993793464644553519069592038026956220756535928869863136582000735899982933309050772103989681120606391927793326429706865095716668697020193242127194556179305117143757149743825756148872500826384052121682134705233947797203390135348017575236084023903924304642939697565398561883896159953296331226772858001017911333998301855005953127323438590425051911444084411793133209274833663942146277924759212081654280888001455165409465418343543035620708723567382626384896579041573536245228530836580076248195218827947657184549573249315746201462247967537162366940031178836034944153931855013509816867660114212507675661771327746380480334578471888424272233471950017195727929560454691748558747574510736177270117799601317009718162500116572294272062588305334872168817955309098021629291325994600348816485234031054418862310866764078411711220625533336408583557335238622126410739049204303931566046437493363363307797851988774470088065436860524722880724547544280310293062467443236870962556751014372545938626315292028108144032543569851425064545788224664274598244563429393393046116129327212702404748880936137884248696283741573121447843417568007835510946791053723593256883608970412814320442630756262295495884515006257104844275008242442414029058722170656741997383972203797153371153089534109563963577050457863692638651194710348188688513492686584831656561524336613915096250099595968621796653374124612285311093927990284410891220852641534926714964261150655917010197059227923504875490945833843699294927198690253805853634168177078440879379567274396015830790669652150864012963748146538896100776068625008574534592430936762101841718532747303799436070661022524375691286164057694384273555707268737159545260642527172202188140635603127928812200643936346498453538473534065383906585699497827931152483571114907168866739017772851791530306839892535189781379859025510967939336766016143642363739409377123888038512391540945174041022479064513732137077054994825500447098906374341140627771066443401132436422615491554738927035053683749035377255881956365481021824804661612765854736277491449038998087172738732040916769227554817830270733347856800675428381568623011001739130538496479836711190268489625726482941797814714788785675546528572933223435168340468065487696099647405290509883799143299492948440810443208008007774974232392862845868927994243566383748233272553257686988892444872949041640984221674523387269142465991238757162073814146639780838342907062301334811227192737072284959344047709627506655332986570488436506858735560755459956213734472173115932314432408311218296538291968191336387867786681174299887837271335841448182465788340978548411320736029703668228605524332091173936939867791602039357047566849577892749503535176903232491052329564141188704265145909983742965157793671536307172170239331279982964713248704387644874426563069724872950565922818613091325116979912203874632670644585418841524906095656458801541402796917047070036218320150289923272953566274266453518021407858134933631381554705389060653102127259033943600618907860194867755806433679940461696333051221601821617854104012254980610990645853828738310384148766220682236114649878438757923183867394707868049988205079284145036874539025360470424030383529645602315055444320062124875269713927469100211561859455820790248949917917547193661642945496094842496898126197986736194513617975614498361514794544425870436158748530731632385691574562445373473276234968135104593647407670018659216527761894139579532804000234491868603255630814821878927151196090448128198072252806151556733628532964979257849329450420673699314058605631301364982710966483407185605230917419806674615315464264853316010671343791867372210479660258044605446639756705466396913865669420374620753314148898525714979977595309594881108943232856146678401076588400193976333880417754037158661241681868212157449858200458181232515368669145353094354483298662560785560837445875666952092642909464249199555471648616684336909225770840076092945650601245830128174039277614178658037493922781660217615855514234782199878431681194897648459726721684148278052239084114526447725281161753950503117074176320557865096237109899454677067358045681162952173076790604095231066809372107209183561154173416141408015749958973933234262907176853260417452986168244314230676867762209770208677968179730439042790479292123097678911616875088517145491728183064286971758040470412252697373767854685316172690122911389379635017752147098092077070462427412569226990028954634781599796895599618473530950170349492009216137463564001404495789251041480122537879510833210474434145068587664071723866110716601994525665540288809117974893028363593811981511033455515164867790139135422982628700941823025395059663127253134452166935163287084651291559175651964879866688248744235241313035122383941236268892636505733673919776561045018956087208739465259868807408268755775264453324531904408910944144345325975630649316134965794182642207603004514560178837986793494522251790259170215869333261240506159700204287996904249103085804256420405084754617134248393766326721979154199011471857895107280111927792055231506899360318030478491952260703868716301400758942445071586029846238915174052957209179146041647388270758521079009780913326322565756834517527341110840207503180673491103164458038469868959590771153920030520050872877945097515725623273556843115359754686121147796017534940090448135880810334676616175555665043458398808258008099200840710805369857069769057897652543276551325220468309600483925017205981247406396191078236667711225761453217623666402544005611633324783985180113892171731934734057344165680367440894366712958209011761747259924871870259204241490360274208076580594154804435773155503059840983927479717137477384679249230275764985771294074193863203333620789156458780642259116320797234337282356476620208628910459051192769906713268657138385057626242596242212152542779500851979537623913079858748826201398291311410993342774138221608645206389878729943361565676976719755796801481420715629809874353337632967744602402097781536754509393750730989331264100593691230683303442830414349344311570017691785071460316648419180757187458097580471582642400041668379502961828685409384808217185059848526084453894828664706020188667585866322580945257025060842720034461072249052384298760805690217317363556416915032401580259762818381948072058109609621648352512263754744720509154882421939876389525953919041789905219764867087696034922750249335855897159782107939595417147394252993677102084886629498795485692142753987849254658784784622591019200548018365140523630166969005064889935069087772082690163098399097272629493995211163233282808820212558663994803661854630033548970465941416578371882004023471489086196944788416293210584660533369928097045853806588007496017202255459565456505920597337794371904120154079239704109094312878993637721914184241454100613223463930433082614372163657760340080661430192160174807813055330451284994074994499704684626237716500545862373195499006369918196291513884772736626352435091225624902749518312700149609989784612168968564083776044630268395521883092314148619147773183188080041752036799144275029655505222072373070411665222526994132265110292994111142591408229885873966921151237639579942362867437543215311676700813008760338422783911189923741894107656243721175188191021324970671168190754916810210245319409099237304898454911188788579899756742291632097313632510109261848073526408333295834059500115835779883663793730930026703789941414750547055304302398697138904080167054201019174310011708188662342789579347312762455911905672670036964351295576358842600823139360109782567143577049918490407637517100070254003609747761380465511647409766688440317560792729686120190714778914264193099097739983499534103626946015893853414749626916793445164945233390867109830131537053140639617132025736548494738533855849097691383088240954162380020719090581215738403744233450168409704380612159489269242676990992162042943888097100426490867755345407563636752367268252549151837229943885523743310455336444655585310946593471049836484238494879393826147942864569140171881083935540092906949810996222645128488959638868294715561492754161807455189763530318791864033207826942697946972828674436711214467510482024452655737007328070725660053069436930658003202298057607801163782845174458313508011073640350471788919746787352873179704848627780591243630789880147779208723831575223747930752474588780070283796567378703483733557624175729368766302696382351443168158793180559997170640782798715677933009863388307378806279890663075697412374435324661800340186378658635773321386843662448780046808206947554974126060401225402458122081355305634840979624544448971384078700167819866986810612737861661844525785809598034206813200476912896403769822490106743985213875327418177981047123054304490645664210814009960262114732817130063915757785146470381748766881724622098194690943672899429783871570681579317077927398281714402462281689411264943017664322510406939671268397289103146491753398920975420629087126726618424671365293293132229736960815591965032057786015539712477676408402033442966092944285276817491510789680559902845007456501036924557806828004910752235183365199330593851102209732188786776156470236894871826076184995126402272140352103689631722380633159847951301388982559246951261632177303521627179089833110705963846416311374111915220583987046167880288976451719289821156500503908652477030753592115022862271959728649616436034457168576906036783686943560422302541952205715892814695673931958169522613539667062947318221278954685239200797286070486590630368772059104395297517634862076962657150347094624812265858497262187524139516830289598308653542142906372649753021775118907499198890838255992753253749400672527135415314830005627828055749806074014045731747200791902127099473759201481022232461381285946644953438724242814828812334985905444658356645677056317223025985559664658757478701662406428028487778986989503604451665069167950173616129616420196837209075012115364323226475429517824640970432634349704870619846304443607865152670973275613208202368849437537373796401011939197318925379460451422471994950099589259905410827509726116209694133476586421022531482838106289368147735277473419496964023929750601762405999054221788659903682393642762891928046030096994655524077371057226606090276708095603556791042144642338634988657830647391363059549021852469047300672324500285564734476835548002751503028391936103370880777048489715446935592235080283417887165287385805631076971923637621113212782814005793381824257700529901436595096650089890016422001931132103894421692477744452515244022130173601174956476022111951735295414076328340620403008146241820159697046066493984581395425023050917035893357966596151137443635928355096975370981408564141807188420938395136890682860235692898199163634121810665356864868588674636862407417821907247007173303247767353308112849188730365557181826306416339892751216055207410851633376783920622447574692445904862321783845860687303876393531914245866887854779995011470985314216410790267900112439865088762244647637537213513013477577324734393041339097299968930535225242934205955695910818291226719938551089435857742669011388230462168425058439270262551635733305440012935755007169787590774144365369598456894600941777107228639663076952981951912295749627629016846546050302615553808152787037076999614392772642728423179945660520182723861605917062163108983144485727244734508203619092935179357614673518993733429668195534567522049394491150757824526559476363641750753342444086402804766870067124647890176122860813743509123197013857563866762650372532428684487534308666931798095226298891215125855494716529060477263644122933094687314758696387433570391238809995343915507249395157399861404557892749342092954197320999521512553877092636429924550372634871528789443910978428822695846210292435319413146938623367282758389827473098939758383576421548345131270089988200111069439927414707454634179368223993447814473290517216970286561240509058693740415287442729096867176519283443159170401496245833337200726966239665671106937255090370079240225589875231914268383215832323541785038576909429840770645835928436940455386435481840446273334679665904265568252518876508528489391790247638663839105426229866830226973298382138731044595077456222833895357395569820505817623701431157465862570447344172889092651924802718249868297518257822870462677704055352929538043764229497010777485951776059387696619030917410199694812386045046358694202326828130948394791582861975861995743649423005264464004557972108243001060101095068165782367276894299318197548839316279213718866080150895039799300518155111456197794405779712914862763640857063236160727569173778776533145315227104697545721116567293530456099575728664477764954333460329754976607940186121306628998929192932289668311644364345465230551707677973638119505401525306983858437832094983446465528623962568249446458200402688720452384388033836783880555272787571576428315799555567890887391494247601245401275008885238790727807619099640504839602533549568129975245305511399563506074584499234950966894091986101358677248702297310405195790558409199329358915120620497938322655986697183231808302443537105321030457745483797046754622794273003374866959680209793354558005935721659708817768661023361464417472369200657612896977489784461386724905726703688098128891023941842380303081769129434739640713898558176491779458205537501609688669403851956585682762639572850926296603680052345762338974323544128720881008884044542183758029936927250864088171865819935011098775737666805940614596582216104006229081731505719244406088090962501348843691549589479936088423047943736228209735879939281390834193656481574102975064777129905142048688424314542333087835355030085827125887409824177224694458303050496841062746360241281315174876599170517253392265429497782013200088553669968344293937402498815384279067455517509872787821746034439760463906698300694875490679474182578282916115438355985444356920196161533553919886826168721415082980744628422269060453945681568371266934521636419155931767292405952307758334116886272051652574288396472919996662829097848917927397525483195043984195433366211992748117706983256587413235952344863374720190268965188992158583780068377180915137171206776704616553817150877844557566009448733380579896046969687131916711038755688846930032883897223412709033943919998022908428593356209707675623851516461618953843859458308792767146111174063558016447681357823786755889121825625709073721285559329100401603093653695979888402528803715041551114389426741242835052045951625486164410383613948254866770232855839512632038733659238686436947440202635224351119267695330076372545518672522652893779773292815694633284442576909788424668626693801674709883493579174095805592472156024432692739309084179356504555676754851711564981772385606562789962071122727442877197701434995574100921710089221353191349867005799070707082926050473905417667428398598067616753361666979524310349015586190217811231775176188146744984729757406465265749337592746234897118357616166279442198499079110154996148739029089795314910124245400707742929791036460077201692795972919779578694574092658516328811827264734331918619300916855165542070751989213099442425900962086491368048813670838048375192143090657296809724409310239075598711357114856879773106437468300876997229767266437801320080681910635095694002828850287958184735353376950849514130218486771875309175056402249804147130599306592224861592456749144370183017378835090434930583530036668136782565622204967818540418065603924037946900912813452825376209396152357736124896653744603963012430130095547594935945347250848861912046208379809341596978345918610327839438943829895788749281794309937355080556862600006857555620430243209563114195582215682928733164023521867558137847352788473823272959498796790042516640254265882134449810396260570421093049321537859698400140097924430781980881701182601770626662402038914498002463905997584673930610551001630546247953583738257362641133580151040175809250228229207490565038014968849904036687683340464065774335323436604217942446750201674147736154588132942410682220419034317283990040506544368025701489992320218951325602015914200203138626602216194996196451266056608803388982985411060237701791941552931067107061201168899803520360149775615762348746231264888350079773035958809601848838051103581817921834783821087275813372178141490284329867308122817108892666351012546270832195159306890394795391607506820768210693984596426328882868496552727460419894210305261715056213471044063907723916325659326749247589083370292223585124330343432675076353777760386827905228671568878881261869189154481120518625908604950866744982350726217716253382845525745215085588861740155902105682872234912273562250911029431227770856614703062623128332245497480980820544982607293328876219990273578318888008323247908142411822868536025602751477031511243021811577507841381738482071758784489332142654729300771883536899269098894308086185632100282411235643812136319412936672761448152122913852494088086368600686114189487858601147390798106286052242100760458949656869995930842558989013393581095670842456873548720462471637369531717452708454229310416483806190372700376757899426494046783305758164456829722907101684940554525605976970721889765566145801528810941469971842060719131740283310611392682230542577755220459299199754268867650523392560481083873909489326058743510647975066664181952342540029686774202685348984890203417808454641531345327958073363104483919041612014240520594336097523139040840914636396953575320385782644880924206797345565452539926689403807757071235698412744053544367502710839713247105743253809445330752709248234586464024219513300206916020058921245905927356069824701692441495875504695937093112406249588778425104195267540897577069007455621039609914003848012438825797875552162650373862108966546591180101830540303646341726126169031842634697921770908835496617284272831416221304863260740661276080670203209826751046950786951225291520315175558133018798869766473117224722520594121461788164596055775112527750606988785179801796251431875749178067113115509905598139313819791324835928118540847270851142616464066792946189883106907773490263319057003909552853004669496072087249496944741333854087416784941751274331592599232261978194528551228130173643541112522015665257006832086363442855025027673792572351030399778042456661142630648506348005307728641715472568641727849885722350151267817549289743481846314997545772791925576688341156442498588992926517060307100753517085847479891348600944360335296178221887930267871626700824398957874087306522064377844858664911277555668541881522933925333675746690952374024002187214950763678807842766729228716311879061414874212372217561089587514695810559786605446791127880295870943628144266635926321983341818447396949286208998088514033062484997917607706630457182380120824679812508080164105956049635040745887512796312864315685966393427022857260592990736092586354465046642334964133338846938159064003361581507458235206975994404541375309549013886050166211948362338267761453685743684451350075164919639077224008037536640531791691021190737234178666025916196533249765271098086276660495832625580309567597167215685882332648557253396792758724244300529122313945159474540795708371537547667378257410451287393037646959506490288182207516456972657488789401040898047491216494088785355199576329187166624219991385689771218154181290294561081501285848472282898562074565126355818607486594869793523330639574627977567375255011364510826956019032030809124039595677149388525207433115957332930675067116724143282495410873587516247048034621691839526990174542764418089706241356572174119914025517248133785547567734052408932181355946290109446782275461413224623337861098313448652741747558889619909520143252292953533318845980161622782071134646173008099004019078650000978856084222253783039226397682593374922923517842697630518154767102434411380349673706317414556902398870584915654525846554564308277013819845396562396463980791044023766393918044546949557955187305137864458305959856515116053186166893326355298821272703936756025871024634319825565653221348689868138093256818846902266916389743660144610033800612174956178866996631528034926752357396961858091921902295006890184651346712328118805798438783652574782503384278779392702937170390848325658478942779411115904263483842514311638788822039787350937990897046073004237479108816202139240456394346695766796185725958846640685569224728763738732810594704229492968182613261948462987302329216661458612665120245453450578465804743579122437905927276376422372508922130635178839485615974460225144548452595285968232395830736871808494117500198937389636494426354587696870635015019229632871777061167210248281991830921229792670924408732260780231916148554876663072611943828199878014509733081656334800026381307320098361894908572618219148129753905336452572934588234585735076851252554597890341015996129295348910358207338768464744800428619512476682931530599361751099436786752983599750365476557472489507571570041553378983004705621791820041328538877583922893426279594802476581460486730174443012987839064786813531542740053237435374010559228083701584360740240646532241827553858759989637364608191815565096641167581395590223360295952554977095462672877315840168037380532041010536095362673494351149019691713523096892389469085714471781325874352013621053353615346077695278244511370767858073343231302322806188360503866722161132590087838570577566019480416082540103259073677915367313927939027047192862246646420288053539151895991826457354303022963939479821334810921649086783243856755002304092347592480537937008209540373527696004107997947484822471323561475498713242279154072434807059622264604589173635920982839674790835702700831427330447553950831201401060731913284904833244774907643763336913936812445186438131697609975838023674256747020392984914836192624616349239098363056263334197102311310370722095494368225218585520901662649171044096833441680624255159577079919974896498930659661002978771531101418442043158573793256150227220076378779154642802470054327750889871219491455786295199223282878455439894193319437967372455882668906255047550867776355309265503868798902233664071244289416857940161219565941621927448900145629071333652607364562582208658613924531398106991324600028065290077783439976348392098460563271478144243028470819067008234384553536945219686715319347433532611039908905798259979288406305081401109993558490889618642875290318818823509920892469751679786942117728593845075571405863303180708754675209667127380924346307711491256406465234082109585256951986154858850839040548762518602406874540202516559526769714441901606493232260952409769270226949010896573570727900610745099722377889868264307742051875973513039156696513824677572209899359304489762650546288881147812943481951503140276567015696427793054922645254224512560001598454120166518959592080133780055628248895193086213649484216151434191036742042061115916172556546988852790157088966036170495806926287744233854646046615985037088714627875412219103063664288386895958278987683845676779704949496608131704882671613681912277709735731898104850714906317312329257818161669328582513852852019363024301628000161691793061148114972433587748707321329577322110503396949349844571138338079551500461326977361282541309933697101296946563934459361957737787052538509102029534286335032504843993484721230207037336319143896053099702012314594183453430136805251153298633283257423291925478705314590049227812549947818002160117753431849648066284256247544349798719055930584538424388871180551277660299571685014909461013225863328656052852659841133687164796139108858418278659504262827115719574724245770589814061496018721327141795418080894649492091902127720676773332027745241431371099947102388271824016842447673058602823708178932391883328202955000093129753508979598606973834958541984732663879184401441686527262113044000651716112397680161045562927440614175099218778367979509765203567440593433372648704529154722514018394959058703072696899050580609821729918620627920476924953603573443352543736490339207952126839271609182647234784728303703326990646531041724817339553408547805272640280572939600321657619330265352473945493687285144972893343238396200674206266479709007468589690735120029309061535725054293018008967169082064623899800228512100902848114292664450297882448144328977430692133435389519701417280009224737095860986663681972405099178753234649364790376861572742689450477356808181418085145680926445215435923398606661647262054240669864046594953739860024469625557122826358483466485895056129229038041988739172901651759257037125075068592727693226314960663865829451642240199290282432511869791341052524490667293946726553041923098828768020241870083674724463980577189708468687357866140948104739436698927265061429460959356195961144851349002210509923611610125449370101919502611942104376691530402524589905356253616046772604342262498507508629251647147542275968731913359019367160118461541464541880185429648119826001808013949771139454343051003647164933342569185370686036295839876558422777667916871403277620693612258131028354262723173853782317449952429915854238761480049229738288574701104776248385882405211801297886821861501349443379400608420730157332869511511255910817831819419845146452411198860840764895144604460944234904870363220337485615696960977467355355328512863310373480150750873009328527725214210351614677183508398753131306596712932726560092065174618927601664278019325379101897288367329571180022609843007872493212489850282079997110959578568775980216545955308379145935292217544945105290320008865528189540492109729065183318564028595901122305651044913363045031100956357895962914254325709995735181206903363328468604067442192714529556943128299502867694582735753485525247049243081745889574621896850914728398507415409401494962292049069395892918622466524094911167691894271890765099156476869671617121407147225755366916406581765116700772909925081198766576769283294912069240206390100435023271318016220574179259100555070446347960901762651119826416496923918941271980367938550139598745339826563802233402857042308702089562893702155062876626455999925809414340631241030318696373054693565510793233315176285346023166649349409206169628039419545764749094421953553721922179090208575254801932208309274429214947173383947477496941579314098146400390268587010061251839582488490391395063571939285613856978452487147468786054290833301944618685603404055401684672333530605592779104587873565772722804276250172212957240437891564470825621788029460550737455355745399569560876752746148047871408923268440101161398112607433613677080441717865225101618835256754085610540643929336582916844036556880823632083073206680915144395546002483489090461486132567438918005700142665943409598515870130601679589755921801952406591419329024453585224872260907825750290683216238492095584449485099182658349535327256338400693898495547331209344511004471927975228202143035929389933693106837527307899605622421434522865112649655737923062274042511976778240016818752420773665256159701877761327705104113121766623352004851304877700452213917887669362206602789504681899669480663604075876095778134592451134578753410894753456276621726455592671630172712514031638462703546409472830372338419087408894690202328550218622210435008868124970712945719609899454646968020825194797503150759587298350498690214792438225717044688686949517515418981754317224775777444693283175100622988972476490103351422052572538461229112031592365250424851712178924464178831551345444285846400732197748065581476678975773262889051507237470558959235365970757666021320450496798439371433680244883634422955052525571425352030528204274005877399167776636817933509783080634826051060059876506196034992869218132777485082249136798636610978099371756794266632019117068165123745446835687621025384029754195365681045430812006837127244733725891043581880292210510302097542976695076638015996219406593594038376631931811637168426604651045449862383313310976236916247251088396435949453535361550212655498116856499138447319422381186143755875325329136131634160051414313059586802270167634207519177712548393766355840292041557688885807138128930959639682165673805850664841445549861881134362014495784517213110624551845250606887308099799618988120698229008360208302373022974945096588210569600140038505182247756982521680877772160026412127635280474572501847759343217753376997531636788721961036337121183693473249405289232913688743185427104259669577784193257853459979197207469786264631381515323794940809421154469139186446349952505010909510334501502868719461499426705548679755977957179849981372140634401287906431226325128277417339070176539498256205413670120562490210074540767432941356050402964045389166106651713071628485498140994393506852188326478763595886500109163825818672988174394290528697621908455489971641740628653164596483359068619977923631819531692247774277790697361916629229284946882556126900958489328749386431585269741046200427827973456935585565133998131991525452680073970505029927946658204643250529417729542738546266496380345611907338187853593741563096463401300648570835883617808955443005851763394348288895740791350023200700126204776664612017657490656586058022736439196258318177720411805506050495116252143148541354458533693312563576377388627653460327559984063917509883392898676594220917151028827150185016735776898300609923884134437786035253455726217755648699721347234925168587945126034669166715123365272945646320587664549257431919436218141306858884357881659454636115798850901952235689636066052662438343665503213913715912046741789363466810097789874941553213050401678209604998825078263772267399162819059813803189953530056754125845073145433876323532367612648635720756400121834202423396690938785940945681196443830751936835683759842581794711259877793174618051921847587260975855552071176539390878240268270442164177850753930149235686224520468788191683984782904790921850917670914992240223939039582367181699561190906564123701027344765393525480583287396243910446107177410758481977795052859875189664940336152707692365264685600340480296860906031130500611368095119154314988548435455916749048580671997371344922892720847972797472794615753412791720872537480219853962332498132549224691421619103351246472850963569142241597935044515922251643436465322905333380164318307377127395386542577245185782587615919008846455857606450660158477877238328721112916139657682997302385577552471920112378214850464104789539443360419328632370060275801631750789070142529985114421584838436249248784605282149658727851179698865966263475815537761712420393026081097916031600728802953010324571624089232831363898702893782270336979852286012439395347166259562784441815774297381074402122227628544746461999416066910989211881779736125165814392541404324635907583944771870655839494152218352160384324083341035950490995316470821937076333798949834697604172041495629220582306342867481674155876126709686546344876590568922948149185941473712274897631857870494918507035937117386943740622685662371118055300915792140454365184459863805602935382339790298350083681201829372692387978953643076001985132600728575240617707071605769706375858320771422000828711248727320890297943610514825510887633314162443101331473530937781345775255067783818640565648583610522773882170586915238580967134343221827127005034479763062531450923038580794809070842912328296968848514893958706873031129917989379601876185676909751186789562822536748345750367972159210057686759836581716579112661608329074200356170444400969433006589863572974552865159546574392536489459839246535641769111754787114911503033597922761308686485859756104566327204080448911747605641452556331596242300749481184536516514659737219327397921162371010784175120957556012017337572957378349858356337465061331985050005660932016296739423828293053293284305757477545737292419029093823829579255237104820133140033722654178302123011258381460150112119526335651363321191916633780238879599265105390829581437355495314805072530811229855170345012282414512994366476391894946612479958191686908695417265035545534054376726457715552764084736019296228322124155576529320245077101276033133000507629352184879147588152823071286712753130440586884550853552007682418870432431100680235907804682652297551459592686373193403110791299756376028840817189132204736481425531569256728944437925302349882636915549805448995542568795007511851155721765539591627754803055759342517889440824489913475655932157670825308232130964284265380656848473227229006559466486921444925452989106247111486677529580097617755849761555616568220452015450764197338964536303969156584667577685182027172989885059693518413871708992809900383916272439478520673681057814776459564578807637277688902254291336962633866552988790716326640227251311263324280034909407209243246144372864038608452739912943355596562758686462434114802850015410751093165910874922983049365426361658592164420158284560827773708514692771685967731223463940046858714320355157331250905835047021438392196082790252133472501477608890743509971728989482277492726541597465138009604714972089398692281772017413146821471071802324409146631120766975046524384977273379215005805829887615627268423455662052893800772996852756083427626227260985899721292670336471852935303184407923306003891235435601441305015498725983169372017319455041824566365854526010587244140849044699401372238458892029572358211688314404137144756547903180052404817003203643745697170805244986318609773289156645192621863169161213230249209318568390699639809365287899750245362824346758949142368586096417524510096857980610231871895971656145807146357430740981967134781988771293584309170101884255297931771263035846065969661664610441802844576966616285821231752741167263275587027681737834129752572513976333473068081646420094883920936810901917351025696000867427415522294340994730380202477543327292238095795298100795795292981130990194035129697149705561429023895186030246959470900325106897344761296391540723563959914787045204773480733739199187383200390165175827524766787589519215712994491013036108638049523377305206115437606283725830105137402281303143107475273126823937398302192151256766658509647801162458335748066478658896272622363179476686376456547216645763011504565855659638747291001779486899389600524278073013223302216175183221806528955821310800068332419630880624217834829877672025910206495690062876315739563180603932530071054948506751963018742968455703854459229475522622563199516214483169386599741181460408756820911379666166269858329214325561004870568428305063036053101298801783866170958725083633005420323552676457884181098448994075507591018559546111162449799873109283360575948406504232340284635877397433901041739302810419661464768262765647303657985383311501542252447977782187590996349771541110605690840509172734850925248260746287516285538438942567521095718969825834575345294623485217665123324844195454421639006252888192561988254259344484970925004045474956793929311849332310971134467599666883434737985549526175996684496811452510555277579945534917800005132293278239914809675534025319731916532098762409656596111698932613784001370605370997354839816739894066709729925649290141234593557485525001393024222402250684759797277016718553566624957401834000885872474529024434168824407785522637762871807253912854447374988297021724021026799663053718373956737796951304273741822145294180340841496364522950778622917799454321275359865494736523220344491639064995109978666680315749853708492393930971479744637035213727048629874995864546996558182354752204500640733953584701998697153219672186390277829160651980355708907751167119467197756335710922938805219087892059125575688882357882359351824073145369802109652672249483945746078969506193155328068714133268361072335767351096910833268274727494218695514329732783058416488281132289775987989560968656048506556266641408643955257668642700031481187981448849812944612838620818718273356654623398173415280986636379840861462824628061587108893467912247393723484777124124125429268126680688673869646315136693169184446249109680906656860172385564897249554339922055706128680905125593725030646441098212712805107672937960104870135391592661717592719282075267165666384060337688566828950674289081783967004415869297457412490385167402862524348979766266083178029184526392467016397958186708901260178386989016176118505078829673841524243325614627516179803817008267446125342778362214009745344191463689628086386890596702647972229165916088108017518865392646964982094826712899389320679518557009888389607846674607569836575545420711585277526698745786652836140190799624683365363407777587470287237793449839576553962005216239730979448191255000243490900428391580663421208295978531197695727207260443041984885504213638544778070119363761468025777474385880478863856763857092154861701064673975853710854997170246110362628618244032306796149156929031457656699493739841769456427984660679861917169359596177120823744338240369915813881480159568758661620870765258523300903087342186348958921525837231325787261120225440234386732519353720539186477421205624551080428549034192196990678446734789875990129018228434043178652219826194966263926398148249518909577545508139528090674560478224057369432351228894736115085965226176126544469249177727578420089725025198278606056885096095521283823824259429504551588582428720713836577822185695745505971489327320386977014383408479812292018107381976812126361292163683837444452831611382092367467077971319645686946670108743681278174545194750668378612689221305024119330717321319975767926909531920388560731110607544600028217365249291933407948876609851013659788595709996590356639717375136058845439516393874390898739167385143942423571950946798207983245585004449320359621039175960814550449025568575547456008853630688066148637280672453468457796380291045182588516252236537770401977944362997266365178658432197564764924160615533793632230222587605908052113246585424792029327882461221964835944985450859476354584207487567775643688151882002024635239579177007180206305693987022609427162828181420474134550645104414207728194577835537491140518737985290348500945699706145545839398915863144399484218786824829401395674481633745157637733328585934337547244206506981390994244137715295890446205067304596293037636233111997081330114813422138646250813536999260539156506151109739433462782502754771852435863200299145184087260539690092645430046942129332754536543447726914843061310051200631695872992637705024596426526215609052526658491141885586176637314636965614734922361192732526259654109737896616433731108170688981181214196823577732314207349789011150370876995575594912051632104195901679047801008867775254736647374668608817258729405020592316391428634764850515430449714760067260647986171491826829018477182164366217198641535034126295581417280669075048912185137244923883761786430347692689658619043023476335015050240187101464226705011890023675671967946328279207906067450442150204055204303389087609294984046773812259281188137002108522062188984689897036196274756165126133305532199472909716443517572866680358834314023697569618434412833596208314587953099242411094512331493544711836549735399726353558960329014010322450059553725216711638764610232541666302500399049618438293369962010881427672718762217030698534871041803754705082365745977121869750927042036049448680611249544415096666469125273494093176629212787264850191184084580308661654341303004233952217775662650547828911836122729136395161558132956567838622538984334580188997947262117359553012335298676756646016840727708403726635746291702490093744230292528737393366551406679642596137611539152182752085655296423959024478765739467736519799883967450179503754939324145817895168922113980378111975245218029521140544671899237549242236435635591303351600350282998181890930530125531526091702693696972373352907943380868739964318502705583256701047097581734736783369603050758444473051300448482633575568374702161763829712525817495312601369334223022769639232328751627328581406654191019075286553623304565974965337144360288170406700801890377654107328646458301275638077042264869711145560797093069468105568681291223622028000676832900389709069298061190868245089353103850177740998176343256385073576638109318753815578335104205947815293654612621828738053721423143058638461357806141218432892178926044467123217855283813807607335653209410629748403494731561849992598599679976751533968317873410210459756931767279683611844625699092886651949231310405928029926404891172999596917973489369786871718492557116143342701517892533228563884292987449340763823005196459738852602122897596125669838047514611262656974282095551773371261642204501590041141606248464250979726657576377683711793931508237120088177006080492194951560446602375288397202433466455285134885942763122403441680786584418196036068648073727858641647436665616994380383561947990999595313947395091207275493799590329568017761320917664853745988938180236417745627251298930839201452369929954920625136190093738588500745490633983088147235884093540279602476643612123934576608883538588592532253406482850075836041287785436882633948026017218296708601194655930269448213842500822436707062589923407135777665512767831128563892172476057810436139112839852847094317922776959320786774888245545729208357920856235798950358790431106678074711555633798979878250847092527839353994329749747880857791064970773356992830253627634665170687431826667570689376427539051575585952697079231644372562027546459178755346230580667157742925031627086274255934874341317761420067048648340323351605731854655155252459933606005412461998948762867097165983693532478349951497561106644205997389987904861839112453468649607260667556894675900236733875844967115511503722648623570153795301828172405018364797263305769401576620189596786627828783077261849354749328901102764478481874770429431538602936316549845692340055336477879787273510478368696964921670895497638495719143239496092905182754705985503248645408668352196618311334565861096878995584627202350399766884471646776457862226489454751001894081184654261275407380872867057653874832229172133459030826713736087646254699685741549382751457302193666295840222647528254292398640948603335364409677336455464654759931713556296258933617745237063274272690011242713994913396459763897623435185615443262574661441170972196658912338783082311420799684340480428518288779929565217344245359588886005069754454172011747074436588182354827431599564825567807897693507239047442264402673020087868709678355952132976735757382359110190220537760939967665647768426507716448527973797926512585199542163181122167874933922557788503890617517911705915448840451965921687553875914160136657054601447560220722944788593142471437065557532662016550984749877895800039071446929196469673438839990083001564553077223150220684658278795112669477570120882909908441253488662957823180571149420323898387740892406324437821941143271380533849947760599381384061815031568455121369366485677901098567994971343561835968874495733906899583157488612859616939880579375309648105246579862487822147131023528132188508451776292058594318339043639683351895151378388022854697808831316499983372504462616051194374845488913533208161074749323122202775476465528236877227558592226450570574886316815218302406120558190670766859014760768074580783307659724104096099175788522028599409290595019730030375609770090124566618082287531653974642436719527071684690149564422492979200702314096170301482075755749050721357693909360538828080594409182054331084017362212547691562283792453295954660680654708757573646824141904595265115852695419871045808698917890062135724253547372275209087240385510685112058122191011996063324948325747782549188095112969868305114238341360882984006566588648812858065748303219394752006893362353427480602040240951564571704520101275269026451805318540470725377630967123533938232477213775651916774162220951393762328684025434242862173439993879266129713209537346284281976571465980975985963368510805210547959079135762701942573441955289491959617267022652282217511511766457809770068132472128896827104363003411517679375931085937300788300884539987907823328295749128360173334974877276057814151310931370571757439407927999989847830885910417522438451445812554705551804400705788882343023404421691330337173529198969410144811061041547089406688760405858259720364456210638459213187791988707915633406283093099248293874914647274101573091222010133186199298509197593842695897574881624617848713503345362626180157712799710626755445063784491390984781124088793582476435354768317811860399839199978543469326142028869263935406721936148460700205617234608071917139582265293258973107875313474222829779268428139436596971967015742042172837759425471438688087900590896662594323396207548917013677833166557686888937460732724999399460810866205162818640436756575599080874724880462982636977304699130194251307922799606656505823903757982653217068226526815601925201442913071221495897405930495405312049441371225635066889589808343797408611301328031247769881725920991987033222812638891002636100367288899881087270797259079839990767971989070558552569508976200834739984135427884035623350773532606578473205510715081435511550499257337657736548657326776672483768320753876314209161980355954150903406911492872499707036969451675939044106750336444607320389268131682803121186397603942407546618785852464043240782299545752374028550111292539174028904277807762792949463741319244000273162499095538463419642108405223674272453356785169614928196252540182766838231371796947911576694896788290079866812216971997527167773970405271603532455460061109908600825253723464000024581414443404091949858323277592452096128139332268695992626381021789972051694417000965064942556879949407138350482108168163593557975205270336845586782663601500703776216042548452188372230471635041292838318737790006843005212346188426291509939639942729608566344512442325739025400689358397669099607673664292630833814934498249831567203881754548750376258318890587534188293008151481518199059491015161833091273647403187511482729766244963158753706173716395256055778702551675534935706916680326590069365482848734153063370562430298126610184792688400511716078590437518047328722885606295941667434859237929633135282556488096328713528714953567691723030048209948346328995203787446884119925207815571328288788906830225430590054103532893910798357112880466178271958785008335229132967861398534671763240734856326124900418126953616800305854485748901085598901698151739495242630738890874809665689738285531325707466448318935801983522205852816659989525236282567969016635440709771618825127798796515018342580834823051316909325992773320354780307970376461149276047943662344701529560602565037776817355242569354753767255232748044779097304506935357522966314888544828700292778470115367495482676360386873478830517770932138908347381736765954391664467329155126817124773110120959596296890993597595599886009907817054138403605922314261897143199351619176362739192041536751704282268708936340772533166181708847365821296411492617558921909352869149693365873636263768564006642619483468870760084033473108118595492315893625006678852522732700514611149715531654927497666194474850656395297257632240573945208645017821606622178807756131927780432309367317308754189784598774755047630388921306320187438530659705924999914026109360273812859650176288922156376068886282518709679270888135636370358570637530725481632047058167977549777389534939965555178183920218900594492273055775789349940993718736637464518498542135356883099306759588916216245688093761229079066710039765883611091082775021177466799589285865219597746228941330000029848097520164462831093456174954498065886907965231247372146893189390305263595815890319118392576740010016842653248851443625577981467355014024125267125558439001662161118790049900666068506610234984364384294848522082669151788325738853317269514885823197070413543047007600593035104978328957198008116793460868591561561219247417191908939927676184316500292496555567612701359212257657970879502578870628126836330974571784068263116790606358350730903799335389625925183690513129778914051654566266348374361958083168003310100879113857536233818816468993239338054024085987225795608866669918663746051128767374592409647774687379729449439286663573770510815265649562598587627656041199668180548782135385638337520946137955243052216605327819154985233464814099429596123661082311665310457127485018884463035588846614155357329982697738495414234621856848167214467576810021518999425319171498864163738607273395801220073870203620132321326489542953136050095023915692507782096881133098430121382102734669337147887393156412184698383000348871315716545156911018719429669005930589811723773252144987136243417249842414360319466772151167468238849522185363150615375571394990019525207782076850921802222326617624726182181684166690779584674839354399085308487787251892393536261553725407273518912231423250232629156132496865354653775208990513909049809178778017582798806147295425917335594671972494690473578885348887940723318039304568955264582920923623154616614507853283363622274619692390156339972673405193325960762338094231617782936339606996556825954872947116863743871872506390920291059212502069531657197793339147048214987977052486406935402374560520896782749583012871223900033225566548213306703798779934688216009947540964618372031464488866555952425656213356096442574682809291248794995219857886811567189787812853276629079832416931315170483003460919281359172449577818895812446406680248534207504307382814059982134632793669265493662030848195531775719626823479423472695240964475566913996496493850826949155520025555408478399733937185808267079621670131460820424505422519155102312438093169642049058996664194675978464021826844308437375410696063078294914255448469729759668702729908654907193521739362850667462066452119688704486369032657372828935764792037381629963187919757777118202137152654376603241931541951645401095345336852178282931783348681116494724361388075689125463422586258422964450594641136372700616315995576857311646720209622030744563819444104362262373548058861114254217466864914918352872927404908667926814301914384275993045706176815386757931548972612928657716813761804791551351637188718559222690989824200465103087451311677781124502647347592634320064291440887180269169128866165528068995002927231203126488517539490169347264591499972603244184816060031849531170917029975770424164865395738724881180119618001958846130233684386926469405478165407153135407080559580833267129476957507914334593069540371991889338707542313341843135602754759445618027145684639850519943135934722022855609317753609761305519185730586331090080929333062522792545174550196192655888493190778773890126975096031467479758041794214842292089062641946347704646317364540839549832771945457789722643420082725251414152300015081444156841607587172561591084253399538633950959871168996325324130216282427458352565130204329732495481784766874128174724416497188643649791432031757247763579979126139496872630804385238701234032510445310298934985406608740808280010038029033371066720310913238352384612582076812362985858447203162158233917810190073863510187922703808273381102584460356058568167330808473859360638139925869852123317411209729836361214568049183481012146405363966537803197513821017098506318923172397178702867463814574648907948199803663472421835760809921982276752821176069266691715453239089863046180390063145197264789518441577040928982569525879712099450529388329222951495324986142053052542116190672959425125444632587646644009178469384936987764420385384382774183960798650038602047003219500887740566674359883589002453962309572911582597359687123517107903615125209415373578248003352253780363052804887460955771691127649396894897651643038909296957881569278849733911245612862413854059884959126459430475899581207485295310165697460929591652777654380017744342432972933182087307102394400703314846670289841431466543411576760658305100921563989983695764541982540400991163194284788537532156639462236739152009465142643735686274299413148833321395143408742161180069294306813854741165491301338415246168565557405444406163108529764943213024401552842697423668470492817497991212595075168060712249730087809444050425951956678112390258831335002885366464245788772266213611832829965635696369081446549692904006559002136769484311200181103244671273469188124591177887897454729448039099521117810324958824391674908589387493861627817550350790795757527744206492512924369801790378534552550392714363986176561712601133670285682643944214450718369379708034402910112047626067698826880793659059269021659934135778904999858718313130282206747574942681067342178320643653093103290875690527026255580263423708117091634828764882185992016883658435009873044940300417126890570607916655846437918391945705142633555203417149483839492886049691476587016280398079962529752809671697806207821477327511007849120959926728493663312367854719975683605060549455951577816703593950377163538374262734491309092574119443715245546361335835464323822099119686027865249907925987287011309366729848054620598357400236554824958936207274623915030576041901608938932536738194313979157052324492808736776576811723252772657297828058632711327265596468563351457316549717179363325308455307789215473311889949978940827762231131068325825414616975280405778201413349690820143664345364958437386954359572875695295432096308127959680327032822649141980250799511868515079684854696827855819548075986271711309051560444399276091093908776452648512845436283983749782695729481485955529016106618974122906710873145334409513997795536091729696897139130896797145216414150801208172377211445807037998988354548691568560285486894617189560137408382401814059453605757499160229126049770981858006768234929514632784750543547446562993689190654392937215209049919963970069762191464052921024826984640549934999665920616556729730558862954374320112817971655655355937236368772706484105467144975341261026161764180736689529997719929538046688188624289934629545597183427936101963495452722218358052268082084230113756975017049580058066275177011453625231162204657453081111566388584997380846769836839157643980914196095517854843629965485756366911048753947733604420151587955733912755589732311938689052214530147159634190486261898838556448324272832203552206869363844243562553938310605602848363742314741635067715381837874743136122104406645008744311176130065158250582343554335539083356325238806411941220917538577867886209395102887730816373471774003774432012197349904728729328617621382647250896479453398025103209646481643939128792658279857551165056674877153108053784980565393231924897559462338230162322955883493832042438175426984327509314801014145472300150093570958306855111984080917341417113324682589996231092573633519781255242765682761382075162834412818811339254854658975018753034953264451633384767988589492739142885007947592268193320087036301571439405085035990215648477664514534891691502682160891292037297374322900390821813702269337117022251188749934305201262112240419417527736194927830761271588633491041651572967056980703417061168442706000660375957500270048177703752760643433770931634334695860932205900129922599499061691991140130712447938415491020288087837797613058631058506707542680642531294727634265133394937197858390832169074992430879592119366497035642198175910569098031050439160805949573298493583348483566953964607029952359431198355053779783104929982958344452922751803886992054777376228079495725022440154984725633178000548697273212255911179298652065063167174677673903800349879633118959269261389100590698187952046040722730769522439233552003501105718946462028964857402756632109945341992868592680969818958005109495891522200705095461884145335502957724154882181598890177604916104580907087890589275241578308328769913754471184478205119846997633226427896265955559261603084259602318667334402159575461370656632242420825764074232364324917143717428445042501380491574144297753330378552959837160114968881519502067865975595620197933487708302484507213430701609046770208651374527186742860688534108269566988270633128113786894284360783137026955708196454906655541188119482817719123060080231260233183988252928859473461954155721828917401262118675006002236831386266979908353309900881987266651447356631516399164847868798750305401860424843625897988009071056661385576421154412592959491291221969217304206995795095662259931151836142738657622639455615489774333091646657069927872650018965930753557001755295699254294448984279394442711519963028193695350468630063232019475907425442241542347258891030840914813355918471433904784496509832918099125248141217008318916822603833885922855391690095860483114680845078209487765237123719814691372323195249691087530826247271831573788638927559037426843955611781017736983463307836943085839720916745075398395059009506948499258578706817684359994049595516102308029905425139935410228777261957621837359276004664238653060204157083339118881490716310203845689676516129819097169113276101741090840419963141387038623990223186359174337370437329327661386839222875869525936826564156176009111808549332293613616419446228519578177267191846575530931089442150893610327614150190181476648457102415183368789725162164584525893589104097935223478979755229575798563301684936543630172559281970862657541887616881372159271517458265820129783262977938711106584923927442282731901104621035925481536434278200406841369473114077722338526247519497324851512561078425263280586717073354219787516076724320601221047606795327382794442805869253180603471252675990338636936518624663009114649129555405534943310240050885301787950876268585988380923813671884906528652176262312838950204245093373774936859815924371892340088846403018953601951988977703236839706299163947435091568961207665006289491942666702369501674772548384343309065970664930318606566718802595158126807356715281931799822208877639284308727242915734068658637355928534655667724218905128556075065306267785499350994920842941432886217570181931228881336270255587598063587617333144890473657625686737946682258424472349310277774603042991786819966455679191793505858790587666477236107137904764134793738551395650380373465208517625551958405480393994560137490325301507529774196155557133369109783362734759421185953632588487258124225878526071183408067247004661429992518593670457142387082910320477399424688023805519812676048311175279351534388983270215792395481909255286654807421852628243878609577678667593716783910836976469750429681728345473268057946429906561161113340919839222906031739943678986492972224878914561620423910867228309062995557765975429058253259811666628642907920107079110199054927071564597122122420761255519948781320051172433663543289621456155150072684067296965970354611352651718131682882009653364293646002776890516452084584811500077429200916602619436416239107429109658450031656037334854991041045888245802585719889204158069228676597383344785029483954355118165381858555380299993416102515639889417012759922599247783637897811160678776914910320075435522695624306498259180791220271305919871725545541400529019375333018013579430270292016993377588763786331611785546573377145240471083692972691634074764270175049153539450799507556090091645078693619484227109984814684404779728808450717155143662601329126256798709257314222032830196784457131748565398651156398952066229270947883952767333361803654296874471459005560742495766674785696688160625939279624702788432160230206001580151487660349324816573800422649847873921771397870095952311049525390543775192557344945195070949584418775385036203162122968291892623054387060867709589848039963789042200532246477349023965267160498917081648678918517104863078547114591222959098684908962617537091832100615226339541076675862825148045183981682822941433138659187478274559313679866653906524591263116540119547765313927336462868277210625549137651537979893694899359819384285469918259818550240126481113396121545834528791025541005415129604407750376853711018469871011776023482939114408252538990585954042643066335050014464351260747426597223580898118076044029601639560359041995392784784092878859999504732761580924347593045927728929343397702055420740594035338267832268764535717743750164904765802928447615717227911111731943373307556903503951226162554629456753587954293230997610592567967194338687655098014816280060884277060939134251776326895858837843046282111300780091498780928426255286625002178393222459977035540222767917008817376449731564321573205994504014300198030371000037449438626539778477939019261498885655903691342235632222458845415305579246167643971490889145985404090222803140209944921443206431262104580599453894239350728395099203012138267603583501501201082502258096524921254686228284454381221358263814156353446654079904695206132571272328851425396416213220624797291554503514802682575030162453116761231624827005945057379187819052935355697921865539426485516138639374777239966441186884678119208267598041817834513043072309351652242426689013787796059131020876919827560757759403682458989841708960164663004638258470382604597274572991023864073810019521018278456324435763556801913299124785387838329614231126142229251863003628597331772322770314980291895478886367871805553459280215000406108344298348312226684069545767746225316837222140651822260528111715136828714396302487149318333749154666923701172198409754357746417472199664181572086761284100596929763873147635967651680567266811081981765946151719501187759052567363702321391884829526660522627261655580411778414848731516998098458024356631790664491118964712025283754450529539911654712642447153352218043448488303480193353333577732925645206843437849896821124272945004706889826048929058729115989418327454612755480410366747267915401501228996548076721189212696205928625251385915342888034974075148723940367757464256626970173771812091764485986112969618217658360207707501174166722538148736502074024918593109562447541619551299029151542807330635853385408578161807107395813287788022092387499148964869439715995057507641219421164159949226463014355351855701000042766394193728805807689339067972261755075144675952049443593812199413625478878528787995825825326529806274460692298710376691736184626527188610488508537879658097608222196465320773025068749061491234245064234878265993589228527425972495078185845922372801997338765619560570329398486342987751913736875355363443019458745544466103584733619638677627217206306332430893333460824260856993483889920757417360925487786614993246785004559511108450377213866797848920361391228813682947999183207170191070872602865981618305846713211682057927390192225444489157017702268794749385329236596652997417204345092680274009190135287052796388370109539401539556532136342876086499627954501615140975209418087511291772286007822405250394062507450498423570048558203741467072223696857419631556692339264782119211100572384412154527852410425745656751511767402569074109819297187747763484061054107596779722007005715172846072435916973408340003984245812213249956887441009300169505394507115163201106430075691471879843571009621155830546523792060827800999938186751698807231333014433317213700084670899788450029980948394388861512789765242276682037474471807435794987036616527830237754624856522459984448842982121476952500105272467000572697920950222477182667444880777859728846065557701056188757905087664218470067955862523349486270321395457164570306500813559074523332280046526699041894366736020070101205192190299997727338059535847607516321085760594880926394466029498770903345296702499324889473836157652010117856918633911483478298794076465733973142064641633626533939203186246459614660822019206128978538026176942229654739784965387285094129436684633758385762047265867661384441216026910702135546115825097326495415420764181642638147986568733605339265983665958973471040288717657941989745662291317083920667715345600907167371147301063727358544117864639404090068159084381652121325851122112067810276810914133359428297065262924420909105361853994465163623101197233579895929168528296300291688624063711438673747423444573968008537289018646081297191208243389780539270940765632669088147029563156790805915152981307312657457151221864489785585000306380847863496101971746067273755187676421375251185254950991980860918426728382668008093423010916228567420002933024932124143949466875355519083488857718319968149548761449353685694855395382304369941078553779950446654624075325295591506863544343046035994941265900912333092134380927577287752386723077175446157905503488496113129771469746261768446546677678708999399520377992846047527460073125219136066214543340132358551367004269567460257295858853596026295858986102408320911410648928065567033742108089024175260057093586993601607592773869501804294305787301721852917949675723740008258244767293890696114845191107635813278570380629769115825764967827927697136780027655607825782419002432213853778242841561094724611304978120393951567740519573955087920128000314955834198599728624719751501348746723753861697070768864185246164270383716805591312474818226236665286401468273511526886780874444393574350862264851658535338362938048912638969146384207209954245302784951984766931474154999924260401314431654027540048821003665167149633176746428075646405475946393063317907822241344787698388160231794664052817457490882430205966931719991015834963414249183630587453766936044227135405938914896320281932302547160376940354445584052215512999862213884940296594869991539901561176383829472750993896450958594788878859728830503555952296574075953955476810144665875906050131447217587078608865263473446125222829291091252069212964581644930356388738460145364100875591719275904458445621939864430265430386148092170641633598879935263322561870351801083928644782574043368074802781560858088018186337518258461675080145754543452360216078183229172669388516375056772420717724222860360125522541264786705015231284790999176170500367106451620376563143071444873683174216634604722196494398201209753602602907512665676269043068320226888953442579252957072502908268515663632177061920775677318494299710182315921895165697583294807163943151323579601468009887934660989367875782360941738292441834837357372271845355991676479740949604210957763109346976302404990381329621683081649486067230095010398562004315193904310723894969717677367260472314223596034947340938582231604880330547893925462113385265753353047497901382749055569004382536129333643608715036750631599736888106582472081518213208862507757133191886397294645779030185482957022048000917594282225456989004846690027315520051899965957428053969415869089715734117747634047975729996907133593553160667081351274046264823284583320416828211422113216887941746772612758783052413511201725676805878661139289116263053430463095340867067973933336186171450986601622386832674371253320259849032234667959422065759232570294465436763083718770145845053536962535716849402534986808035818549456093064045483621225239052588950665697383883090221774442207597601172731728968126916838172324736878973897746478905003708709306075094925989519118096603704617253842268458155893503098971684127288714824004206876359723640884297275918900897150513454884706597203407660573846106719946824071709317343759972087734950309512060006196744357389850410238315647640514001842721893303506896553447522547503989687973337834880939241189452963155521206454654235810612334886230149196645438624793840392645992435926872365584457318845411110448540766233242257952922786039955430083213795440710902973857871061807420859168172206391412381443173779969416975422511276080741807656291901222269794207344358476253955767662920506545842732494372873664107066117737547234682370829525390500832164386834599878550560327940031690947994070723113541834845958928381361832931731302658635602740967445629331206101517357447121820093378887910950338649226535439037221732019181806053902127000536220476516609648490957239933607422899278185861874557896496552296056762789733941538191916758828575562725717163395784075158084917050832417060652233413130313674775396610036569543158446372829061843116088581033451303639728459580895999700644226343694732672934471589412402660096477834677125507731641837780899280724164525345274884365897714877286911876511903989925791809900367330548476860474687075560928920754374867953630204644049566558815641982152237310587978042726561890979317459370059727087960375437016744479268289204630453938789624633454204554928861519362169120378483522160196595293432777039626986148469841288308408907287119655583091702449043446468403458708109979346323535377658514206214521297385835348721402792329383781653174471175170909249478510653995075121033265892583092798613387006325222613596531162546113472904553912410962362029279683695757302883336796438648388117356723421440956437280220611595680990785454396818401616620670087375100625104379346874254849687015848300820974372680318812572451556202849753170964452979667895012810335330709180825394304034586710110669578186087687292338179118651939362283637907884655442739907148211699536153363640147839331259887801926028041420979697857719587097224926933747297055457701343778357571831285512229995602204198797644839145783620940657049018786130487192196742404189230240203451531740900149870874777829995244606458106188367188281055322833754698549143655473886558390831845140116622834513046837148785783739873168997342638673223915142504210324319825255016042301955162856960835804971937304319585014979125037563984834168565505645056460310946228692517258968269277202059981372943624736817495755719393821396606143408252392221941118636604066460898492261721434459285766578622404786874106782266888403379967210423905303597344952101423258080149673400847633890613428694017045091969019509735316751143365411749982146610965868511319072204016539947263962999173072369773820954270550800651784273495818375196380000161928904435632210063684719138986864757496809814774796643550264811490239522156827199209331454547066085986198428374627418077851247345607012451290059186004763323984996728823388827250480204264552433804686575485294481083375349818763278905328162561375549619297295436246620934364733343046541200319785356354217624757899841162583375576075850129070946399470521965668411457314939989897481379564407659943289443070345043840170811198584786954251365420160146187630775337350387477118188094803295303454906184911891142107496185894150975634469605266209145093350045406434351739125755588898016970297237242895379508931108112170461093431558382219493564006041626518573968791903479849933214741114539046786410014301788038299571792422820142011228650580613933876184014715547124135319265285177960524936680048543175145345901694622756764625728437963916234570633370101827558613829422824477362992449181836397584903332889891814209114878042748068757878748329339176480431873742203317372198845840145211814328891552607228220079330166237783545431844429860631453273308595952136146805484852397669173865250027196660403287191199788870780687224007012622050568010621232015980825403568845042725485552791769365580656281323884618189792020325324197000452412416468976590512871848239076236000991797167096796608116265123171767746100020681446790854868264709607248891528960178053357699799439398780583326752910631148572784728414613992630919348346383466271037815475917369721484087887073423727822745929648131390338471364035982603315234949530859492490074832627457943769264452962264460515256600852419193556304848693790747103787928752398579400276523732613126826991333713667062152904204064332586741890648526734638609454891273764252226607389520570304170598309336713292402807479394748667829438182906933819384912987532658047796097474088468662236702029642583731448738691390854311407649826446572290138471526916087883156002421315037291063379945427005149744841359500883537695558317567891216789226740526289267494916315042891544772763885718609025903672005930309485752940674025148657050338487392868023879467099082512011788580861291657287540468471289920077776823239947472145203878155473583136582108304062402840593525487168204188093342288023840148952034858766679359093579275463177519678890834136633741257697997781134890154956197568736337402223805137402855359433407771434773617236744621438759188069647605647486185889659175946338291981079941285627356846882909270676479575395943199809043303614139117811882843411679696520361494650383034255222096947184984912602714757870602086026758130568796813992001515566128604580573570132953139094294131925067386695838424626468506740974914639726543763244072740591034414236962296193741784363880560430180003433172669183788901475451187892425506550964301226377117807286708554238268203661633912519422296865239672419903582585396947800911967417305336457573764419374868082415014848046466000543090821380261966140851703195280442668739718668097683863782247606112320980776761687896073993091208575338838731703661029317868383115752893122796706331331371884240382069060494137183499773038798926493804616802512185106182730826301386757210872416625669417920517196273059763590788666856415877418291880967745707167533196687989567366172335084188188307697345904340242207236866850805173394700641795517285159706455431576740202941328340624317773735535581843463489698126448696832104487447176963873606594833783373033310559093750347570883286509179733011076275944963450995987214125005104913605038708995919735126031770604084740692535967459592936607811918416729519498130634792088697888241046698143771840999246387467338019378683991783264429219376833052034544845973934538377808937041991825267152555330278376822374088442664524856587918372864909158328071561169420230525380732338300405214728885297842523817226731908033226372647924560947793139045850973671690176290567695868648267246040598143179784930403370459931782520156495509159383930736105038189168989420250012263907005294546217273594068075552489306819438803894479493849599824654062980996328916679829019711881991447934811139753976776445333083874583079201871504893598997111044661146128955105907157557034619941236264782283765814581161792385544943859574373795800340269558166672634617312414999100627561885318985812751900171031921074399898462699411362660939678825619474103317085870409609649450982845800406420005926702478526629869684624762658385400203762132583988985588391804491970360222020742085317255975249841684863928213671340809195798894074900573638695285199804286872202059799469963065266121438211052810387455663751919174667985924118146386319704313978980209215936465957068478361436520978128465812260616374998595482949660891120192068308966221945871051390163230439233770831686633200430951794242407437865990879176244451982640104882256367415274327975909432856795945505068826042927818410120911587676711288159339693501883115713470677678441575802147444802549876610884600172691909488172018183268886940862995301988735272937671482948485655836000470120058026097003459371435709930146161807883953171948840531794962907647545879505451438441441351796146122894201211191904104090829924951883750530678663744211289763933582433341623440101694382859305685744233596279520016088488735152654342702494067673309783391619621195847664959283097734698362657773930599499770258379849836362192633060603472963115056672941444835052107503385544507321905041302943759075912834791891374586414719701447995629158643754379260845615487919663513601558339703987713050458173007059499300237858921950653788000351740253339110057982777508216629343194567657218848282039626761869418883341918875556845130250099753240853369681031205492965395919697299293438226535189350632057295542340554349380095061241048441370919271274214931849166210723983389699434956731739757206650789342333109088187920202802610145473489799874200920869779409603090668155226597431547541324227597772409659805131409495796010646396556729576820412673696647879293812335176085821435332590408809315025194100626514121197723764118123313575305063332034695319216067007864054474733049979211385303435818418804237830928044004268243641853403911719780604420746769015388731316162739111761101133860862901258122975505907267150164450769425434705227531073320137022299404132362674225347581343097166799354212694348067757513532368175874448252585273451974672432699322085463901577566103995623119195800449269930147263429829211502650619148300085733691589154929984697760188358135773450205658781441443217656517989836164916808508763052944538456008549831828320806224395454010493910991791803742007546659414418123933880580481679350158851656074763915617946360889439284526737205306400621335100915122989521826300547907464196715547827834699759148298932728183382193850180205868223282203712733410749071383289353785904716327597754192737898473678842537535205768430162558897026124300058002311387210688553914903528948451528360593115949594171932217860041472912370040687972557957370212016099669872990318083685015754320670055884884322569688797037297289165916148247203404986926364957015506956139320251460141502991117056191607592490219387563298527539374369537138210421479552336725084054405745550161235873428963499781616105958182260206516321228811281992611324520049232467837601178253652828250791069191972743958245244266604971432038787744868469416200605300252286940482560371918524817252307503872109341726122182677666875343709594605997358681446630016473124089635135932027163545164359374056477202146154031857912659170146252189479465219700394198951659225857046842339865241290627689621527054162650044413394103058926567097074294088162924160672059529967238912811308889237770297860469424455591142457750434840562228383880714655967507396240203861926216659871774802300382097259635278576278087369992115668726891714066802661378653770470051383576819793837204888212971630484878421674169734272346423520173350680537105300733380675339796620530500922349788508645354094278888553088614434826474805044888729707875178527221058832217009682541697809291022545171381821581667308223530403762565229071568637412768586427441607504215583603622981218309280282150322177233608502683347651460270490118864138570569993900402832849932304194170733223752798034181270890762096861089155718533796967127181010968471281712399461251120429764873297914388347369547497249606710402321851162481502995255919434895588837662209826911581824977450098621935128363206385986733827838878985853683195427143327198326354596865165018577597657644578484145676254730383922744610453378366716135006224779752411176801399582848162548931996993491504264892887959119151712628467122294661114127143841880683151497824443131549769988491043893535703408403299859103464993807833245383745104629230742540711610261760373153156429071804939924635466298864255187258452696114107433058997508442845017124798607636763481836561931491811231806777133189020604476560539455458500887731399679484492851986603793278072618605928633875625435905133509109639955958188268237459197510460903880905951897726797473879428917099407123634438887628848134312614639871842551805192325586999484271209498141313885471831190379086709511239773091208612288097515392578539936514330259987957793615527361391345158718053655007159563553639232861968555643636981167973169785155650365411702235463937477670565235183173251719998762957012349580596985166501914691030768144135089285723074779597935543435476506688579504617288558217284087799125313836323993990793304071557949280415335098537170334589828271082448507674438146532191792002542824317695378799391230389537896875105048583882043141423346064789829939677837993159159698438008377356056768849431096069016098959221960813548428604531548803849824876804173531508323738398609335202905920972885220347936669955915327879325209216817724220936868208732863027227847383276819121485533912556513956611448448691266756712095074222861580375690354277702576454623083681228532176223320299285566162972813166448408419050768047177028622411601030236922054375681680730440974314850236227588060723439262797562289931751430949442712475045531517848350696699869834271834940543630881111454026849502042837940062867232650152421063851472982471400060743677335333024278734061461787016061385232669095032094320037612341485457063328685255965565273222899591702238307804712528200973409925080687497514157086836175659433946100429788734306241619346474054883863737468247495907269045796821071108752956003281366946373372766835655115725735816363374235859432009566054173868324142661973478662390445064094819718379783613693460489323744737424074429551607168559588938860465933151151511579776217901129368426976078780130693970028937728319051804476894048184295150009835578834248444283697766197037762419150211960511172368639869178641413730380179661149846752550134166303549689440286738603923609321275788344815263717644680734620329194683562673017640482335525268459672082057499594111926341980663853868302586493205706669143654893727049859399477113127216771387043707667471895746712627702745912654860625653305753879802942064718682470323069350091164916266413069464818918688437591058573442619358075092016621415981072677325961742914175558155741745983912463413025388276568366920117267980890997593451010330534674804717783111741993119473359570218409302530169600687502552581024662407068855961403562616154954138639642261548888048213657456945543320582303089472569227588416383068373091238778095069324407029454418649330726980814635844468366095903932513117088287327182888030740213683117452005766322962265949837953362704142408684272877936247596309052260670016410412022634180604213806883834408213012225308458003970644561268467915341277287972636524300008931522046908288980030209934174658146323105410802173717996562233168353271444658319427143721822336733166259009450659492295929056563792741289931691271905121344469614145528537428805498078955584320134876256826797466204317717735903571720222586101798657516039806422712461422841244215040296012982767778978270750380684804253644663265286389235378560197839785712841042809024506496578011629676233597033990283934983347963230537514075165552335706558958724150318727038091996459686119747947912320217248781841300895035977050020771214858115294428712853729160950049965400910228191851113146836524514971869052682206242948068617149594236276729526660994612735948394431743415392442559430629163346768660013626780461107684445244269087059089692823481860618272788637693720545438080835420266901683096519873760629220516159505318673910468309534400291406613612056888568138937714634395132740114912343440368451583121426763331227931391699449269903180842465625210665574277981077127484882934690589429516986934477862821339549286598228169977495403246312864268812777683976195119928256005528786079637914209808811096215884097187651066116979397451588277159891640287984293593244901612707577609299197421377593679378436768709448060455454268604894744504831398545517716667391163567824819054609795084792331415869878043602222676393689523464417941545839701652216651534887620188649922262110969656412814527860153636840770006060536799756045878469422293353148315710551094916001744709631015580662956600840512035226783088344468579486951002351788618390484291899964121320207067641214441115072331157062793486329577921810679508146294435456998444826791037304551993730389746464880910246590476899280200637809881621265636819397237853420123951087438082230545712122259345484950331815921965387643926804236358297904974741805693110023187775017204891489100545604615507283952420244888874557404577679634270694784211395573449212696374015285333958392661108216070044466192102883652448047070479343555219868514972462845776834122769800170453616621071331973391168050787861375487911051713947976752587817643673981827734687510796081392409375316320775390171729273754910005225896853193434309856418361842457557864162047777455345635413879759493741623292912621493127274496732497676751712970461304072108133017879554127842229852484964894055306052710760296654756923651870297272825498634132062893187349106214318587292035613070222521824176828583297439026056499426266888833916236717742362965588083429069342280779459150628693228253129721813828440427307864346297807288210556574410127227278234162243967375280115412616700595437639879290588536224469623971225744573747925120544573852346971773235672587925582707737694527227918021882909101984064834405838321134538829939811146793310627218180588929605683879361833819237094434300481890468208149787056180158542159638246247285253240613137002382326275239610498273953517517639358205995715451919460489362966454524688713828119597199231809052130071880471313860374002500335460136494035514853287294753441446090776893136362836453095516862790410524166802813303302296475423407892259058245559745542339860374293986135678193161199572182017320745479119450658551804681196074243244793186889841217672817431967281746081446459109612810586207651551922887198516073490559064779375216201758415185589590841020380130246959156717612420063773587552814782984480565739030875563553564760385118088260308444703687869605066479096789485719503532810220660339010501862326943853973053636560751528932393399629899905592926412022389547009646121038400566733886750157540346512166564037425990141374360595024603563213866698822071111924612737142185496214504914237785854758440542465025000057255882390912476404173290297389224329509071917472080160030244706798628802929042368361676343605616369101495329392614829866943567750117783735676207251782062739918477099623511923817975515060899134966024087551065492706788314413177219282277866183568325199789348996070061481793826112037420868383355572632353751995627057852456367406067270653868123960206786482325949132831321863001276105615880883711900186116933689781534352370150001480393356348705187966993046229899239071004446371694901598378912724350853213422915597586112828736281247289374526921446920274272883919073074468249936956555496265199632534604690297116205410666051819319804125661462369560545335795694172109944233268495835671276018828175862291315465245847319346250939872740331594607286574033281238291044785871841576599511406199929500861278338571174811544121060758273000776842330713026998343828392923403765603044562147436498685411446305999627627853293757393090484753587571027103505194456937167905925119352407462625294361755984719638210374962517545279613591004667951237005524284526676957425813197139753241358935936791289503664400816556978824195893872736368221321323475930940272460448735959299620265521320217599878116916006758174403034525825194908525453004806254237734189397575816922356682924437591450937840499664866087818976265301637902789123675142565891074536222931582783345367492003454221616788892039442030666320017207327864784187651007787012003999051372143818104580946687397165839188225313012085883290348481031314454567711388352043271401142603942697539246253240959001721710692158627568555665738379860777013981490827375554703713464130733853215242330694107063404309269556864283282808141371517025571437809807635282950650488004487343374576333234417416566979538759748081565307553241735479242434901612989650505448362004502837274469014163786837893406952903848508993401461754799685714918759808218175905313548504042062031189899851078565972231168238818711553564530164973961021007686341873230759612919593116465436617859837848420475021006073681917448222149958534650487325069899781743814228696962922213365780913918770705538294420245337029614709280021473626979605985948995489475375149500116767043221826998798272666691335982992505473927056165760036725913218435378627393373038444735391726885574589686034666475450261315757774724225641259239352267153781860890382098639149862041771934947019249064537874118286440737408286867940443274486232987502779878508241167921172791214628479133357351108789358012621622792927759102799097432097946870100469508217257299745013019271188349742046417283872328455322137493653329513913658843165984877244999926534582541966068868884780114550471390130833754093217632093814128449400217543563556071527297131365934212481450884510741326351071581470867888798489887096751170562852392129778551206195108582348576701407877494026971218927194750360940276752437014395756187137392787245399499595331533736571201049965162925282358875720034832306398129874650602877181912769019926538001337737545243021371595401493895619609609928953930243813632713219750602472072128606375997779403118435189929502864520607096789099267341159852925899678217982292002688052851925487121373891776342578370733816594510750215295356134897070969095543255364739634123680117455027124116795341219985069829776905037888819264293957389398734621626195189273984856104105809585611716555627966013903953990717618085189482221165658899709726875276569707126074334029593931928574442877016729714169281677214656131215871837777442233485515371581843510728124828575009067862336855560892846682940193985942673373329798602122713177622452996662339160577666312007590084987925402569828192329209285623148945190227073720934791571914407098165249443771303641150308410995882982738135649042389195885301473304499574995467667666961621427831696788708433604910469519643018594274725803894478456627828901013501614918603061530810960157480232499474185331779890741543145228639252346104878717857838727903816380007121950152379666559652760332384107696289241958476899856612271148465751551607713112706439945808660464585708424498977260624821738310664138768021668765512784790740699249865333114356272221256366303625072250386115437868665981291771619159738001009075015315927802250681644048037107663619954457705487844536903856189309206521461253162033568427365791911513777881761910661145038072745647749921688502546915965314905458890174261898340334612313897816693063697962211624097876604224445826742660794960601743764733107755740661217579921361594456673950073795686281112322202887468186747940827975927456751300062380157898179760188948988337589359604647344227215931440616806506287419443348010597638415554862424179084473866781052411177728959123141543646134208054756520142236213516363791984323543125803288274429255349555827280701587320296321059651560253307078415483228356457024141936501672384016318630662755548469019682116942600398746497253397358931868777658197618228677268292280198088282900415476935938772315941773742034030010637384682838725825700422732761988524605782169155613962829819105314730581420992398011742077107031145619032873494928822396683762277763819222508723820033189135302471409945595332214280966592618429090578252171433956004350521064785957303490473117142911568137106913168488050149090658960256912189315753040887618759202356905330644628007865974047022330611912636937902711381459899195109944456318966229132873110397816307152814676031147029511597365298741338261584307013651549974669077970514003541970527296720618582768715292457513462588480488697010263525325488660476440561658927950776178832052687980175038002659242183910667260998656332130955721091296630004625887937384854553441256122929902117769806862904105256429562613431565912665163843356568439842627944839996632095023915328149011631064832994771182338485179747608435031779859664065111560790850618540249667689941725081655731460956342174143801994136934269767394790137696484590366695485437273615888239584332340742919721739268455998920796369876882538107980466068129180188652536730334538358125770913639280543461392240769027923954500189334497107519873786250472558616827656799990267669828113525721446851212420801902294630483423986806008057468121856543662268911641778421480669756384388116117578719866430259223767655670056769940845854016962076080754458896335899383128370482111084992686025889021967279438507195552192190690260156660525454851806997912285252405202216247270606835328084484630660717843751812008156377002211945149191730284293037918773948768628660470823688290635792959599998487868233675620464571872884101757106783966714842499016483590555040258296496770792878359985138532168882753489437332031743466998999113763070266467475961233497090102121351316726092573151517782721918392089640210957099557412269706336747923272778060572035117493857326021076379515260040945739935831202458456629475598580992550658142668386977733068898859812580306915806957804860879400386259980052636983672575038723973057585457636323456719181769375700571641052257076954428887365171901487022603685953971625453725943401059512027279036675183221585602637483694285685424084665504688692010853504567260077166283104924649329661864927301657232635322363771572576579025841460341035692507300534939222848525615010406144362724091630973276390169896892231969993769288090809027445932225477935240570859515058852764799487438680844480252354316682163915979169018716952065674137509514234577565375287390163540381450361893031056754506369917865516241713759986280957532291819345173911746949652536171768461882318547552683736332489310202872300077251507297824691199512130754501493349189163577597911073380967403016778742418482532167225658290832853626159465742222432855718856928813555011824837831965801475568490986434342422321364306728486760444152894261812508618382686010362957431430256412162644578264330108643032211265127159159109922757512326290188023772057685330201742625931294497323746210446206003318084919098921553402926693744442825153929900489661862359461321625177197710807234843208950198096523474210463038375533474597283783082857551243358042759093856741220650627336769513234561415045636184843847212363922531709223385156439201755684392315968903600098132196805346619499015367827917091538533904849006084370101473965204656770660368201082958052032761011720570366073663691074278076434054544013073927936802629228003236234090173907549729348785176076034251564548313930837787683656089169469895052325600547928949529119472964539062176517512621459960550537980958040146413477980727890547984881930084780162537862911853768038588515237798941165497765025827941463277782402368474298974810900143776859452676528624760956466553525541640423380827974791290824079635363497246569175996306878946740981363912587938252625008553050823031284818875753543960260470970794062734000288663153634109737111114567789748512308202692957454664957188334290185001362363377180128743182800818554131672157576235786792035353460126220165622374001029556554001214910907172943345993508059662940926562973914996299191172778978381339459421276814465766693120478873871523766230883522695932078239529986225334062321684106361809844883977194387296045997859233838380366356060794430298850058045200283094756632830185017869192800472081244713186816572685512586708618407415057632768766173897046734391021423223664135879303395323175890842325856342195840371855401920638752872276840302395273878168660030507778279767860906044243724544024041066357751245790977894496877074105396868754373996700371224862996863385134105615474368646843228903290568121924267987783073630512679962575499919275367007350213039602317283745528149787805555137879453753242006608756438496746510081863835274255099463915739715842760455064874822572834906457694522378402856575628448610541011545863970188210821086910593879024307348486667781217421404174353054652319322541549047331697480476585925911512628664454022991196675523071375842167278483803361767412399177061745921360466193065274565657851493388157287188793903632112018768436137724137195563197825711615519792791859692777280568356149329219845185822336271313609575257913763908294392423326347702971198200710439652392227997577350462917636802755859393248895150031802488902134439961632899894219215630787708721427983707328799243746426515349940982388601584559603595357552299509229224120715175909472600138563540963651747536344061814026866592859224618874253282076928749032740563809908908362816101632423669664030243363575478092344377413898498330182735954024347413107251251723445115184706000729131549684812146681710295590536710337473317274387706383262612242410687031578960689273722472284467910592728520219733293212885465157822740019985161430663520279944841477461715733247717914166299576627419335032318868809849941167675894601328628100244238279934185552712486507929341822212693383221832160507073241802347368753379031636067140563449811674864560906146007776159935015715322691237399248463236320685625740827393080811498319569507781065456039386259681600568339157642326113195336674927062389627558108492322619481103584365571836852053488286780415074969775842920294145119812629569930870870693606211140952557554047500714376118471895173175330473431656378055980867035387404051006078183872924548464802865463727159762708515258955091258886798268514067629300135469012254554158045353159761853505295127198719067781365470491284002585472924216492613529077997717228899220802010214454537934895577922923192367206831195612838032101041922342766059035537565590173294478224382873890471339937000195250114020188306501417249574779992738415611407431351442683200162960717189745173949104406908022309797622323111288382260335356777355035277501218405290533233291279647674533132885321704918480580719116215588455931609903378079782555901971870139297504338358954324162337098676753731663628997864136368331539215304975432323373366712906479298965743593023352132174422643788658940676776892782319127206125765398169013544429458369446429528050391792621200049151753735821661778119224939584643550508481207717743871845424548976787698741274592610390726351792279408427365718349549197941570700438586559248523407330779007487601237992143540001762768679727692160390940092755401355130272853692564862330798898844112687611417221656735955069431979038516870342414478026462167267094486439658601963392180427725070464962378121985772863889205532537702688951933791866968954476401225089531268577902976110897745839764206595354036422967556647653164061287287556112492000993582941488234135681279079162495461531221145372331277389778309472082698434481028390090364940793932688753064172965653117775163414577563460218474409566076596483359683878471442737105264622919889296263784939502663686533474995253854799564903641554559605142553741690646842619820340367345624858619363568140102758266077054729341452800868166129178918678169325769831250380268691957297314976889123082991280096245238152247529211256633034587098713117615233401852764330086955500474914472913665406657880554957817335148920761911019457789398397774705937832986868207711718759005126523320218430154829777165116922548318010657721754790932823872037545263694965230210623062066418681977632900808429267061630236705331640837940698607340168094261382306659119035232339649269932345129909015321025870927246031230011847018538784441558339199214657440847479331795064180399011634887011976413982426872902957949945873779745919091828056070930429901647532966854916606191071737353154614627106579455886692698011683597289724893360362521646485962518738735343629906431476431082632516136489098369708355917506875928024743087850005670732355620033867697021324433493853081456398453190197651972677468554291603281250167374270380136910567080717645984246317615233287337528342908720459247550439055597658450312912847498898228423986511616465620795818682296216848889683587990392510355182267105998013849205048838109022144464582131686209972894636317614891022314154415210580782940284779604509714617372414994492738389700065401263352856642699119559171681957866354403789766809266401909497949784623707725323961055860086353738348514195466677001033597786191018098757066090350449232852811516104475422190996498850644394494682286259815273574439913053363303930530250905749900119739188596265971375757785665493691261494963513465276595696820006024200958747267569423559575610690116690547972854392594219857226197457568216752729022716108853980140276669765870771502405335357570709364827171541875571005337740106769231962904955913342560254875014009756861883279762717331089020536619705125806410110096536624901125695465160059453269241218827792032847703135148441730846416247698026122164956898478794807673674779074650187326310500084970255861625584536259323398703697188487412173445118637801597010799626629637215559792121666634815761215486704317465907115524450308067797196328072653572886383733142186539983905698044099299333509673670957049598069071809656765167225703291255702755967473540218055964536538691916589625149899224510231628688255869859830414216549185989975528527515006532861878839750057634529967194781319919710646708707928025910909194532472449265864382114975891118575937681899189162155483030570146882727824835714048952416818876019053304649458206919025406649680499616399424469701660012683714371817335447116320610927645338636387128486705024966223102237634804403555495162300529726185854598339663707955255318629241708322381906440388223717599353254111803220016215256240714653166563053927608578052734653642511734388733474505721597438776593009120562778924045706025880728558691730028617638824080006717266343200703417661695220009333960322902569059015420299883172845902117618779633360131892657104856150318814414408227158929573351601440457834527214098263781379106783751486992275971005776534963849743956349053683538974287940882674285491826106865058825743238390097070001620598083627059566956554109277397382150346490127088241899759490193231159395019021929820352599890814931876598774538127790348597241537105718822979812700012626097897342033134904150195314115192344671197512716163189983573862852915513333403717395599065658885446447253307235662186125691271151626346915992624952071887503102131895328176773485731889753277825568370266563682226053910318815330331770225213679568220543413674569808928844667592835504912130987120735796304355641085438356285882074296344763196705156528466939772372389207140132809466555374159213714282729965993194831585381000351744783959135432033526060745597285180055943095983418867066077210194902611196730753688746141653538700712936411650273387627531052147557857559180106674833697450248009687520152475036905653197519383883680384913239286155257276567844033526941779086067080507744519318825124395137510736702890599276825201325638734182921469570653672947664485620495491908302141571170653479191544385752408420107337279152816044230075119739268865334087467067715004734266946132585569634498232875797940192205182418371649458303739397583905332056696224981558105661586656717504137298966729988760160838059387183448806949313875075420421068041019695642273070564596982445091524333631451079807502419803164409288391353162362441240498456739158052053287058784650812107142516902090553507069137428350620038679197487864385182156714327843785419720962740071547848106994525466404854308434587335493353531369804664225982287293936737601434861320814958216463628815066578066169057625550658848185468778746712614887003994640129944866087877362837033478982550313964988740950947964231014321278698467610722412887541585777657109357203122167660336550622376382394257087090401580181975042422596285563242238098351460931637613939009377693934878600837217012660260321075508770784322886693844783018980338723873782499368730890110634383780413290552689839179380156017416317940924879710120655034407530917847199728195470144324295225955371086350461288054611378390122525473887143641199515752086049920093933532005007474515110025120103800294010530162917565742766823768006407403895932290475861456310367011851591222376680199547269460922299263859216481268358835382225341335948881020354186865486044319695955232823915547495602757571313243419527205303510733516078287658638521893012464888322082405174305626823692177349018024828679466368140924388492298531960856461100605209432788466255444315131207638114796798746525598254984463157670875391019966468583529942545545453889761213311812767904302765036355915198426187328780090105592082755806855112231503771394068017457730061214857620430261748468348167045707027243336873990245127362758664492911951230364615036340875320561575396728067830027534044432918622177831702763487121826948902211321957758518199310893886315504745201927264671277470921015059329921421837491344668508751661377630190274380926990934982492423545013334349141079637375441146091493709006032674501939352669890118642916926022932841348867290398059120450287836439517110715119490050244179072668561706646158097344006685783982674612386966825181366484296305743744614950213473134026896425559055347207675991566781444706754009794098532849186777382953313238276566959169511554220868453641905369091064442957511003720782240264065385765979551917823422183046186339649819652450181147753620303616340919640806560742611413202888212089052770017735056787370594225476922314024182087567821551909887401694896728538289344570737303527751140313235371064499119629630782486940857949525090426730054457547929180561809626186735038449418504408993604184038811351019229195134854775412876226539262012851675387918557109490216755969841647198750796736748193408729627404422768937195083199070354629718642807644574035629701596673763015877493360833301205505157013602556288638524600857377710720129628303489272739829313222472349421854500769414333034965380330139012109521662470606850058094608421009623795341678451714539866769546573958761506020867210158219074123408096674995859644569342340222353274199727246138055748850309984010946852078095351249938076661433112757683065443281931841767355132236213105523118729576488545589757179347011984064644485209486158699208302540539232532494498680696578031670562419563622475743691022574477808036459970599846064341525492685984832724934795714098625602132858291012977276798354461648200278558429498650689677823542480769076828175456619945099891502241722797875810054790735593802298024694452308972384965927863142055118715275691677430202935713274837934919553896640475527726775824085689081448740176629813688230369862704735466586970214371396330298461889605719383665159605405948067001906056686620736773831045687361559981459156197919056973174820106775868500957241553800718154907502910367504461095400264842673070111974002363372838777355133366024855804762632574232109104318447088839430297162566614472664486379606102073033202666337896098681957423782263398901782737636989468200376060957194036218409580781288678237975069599259184555067835572666826735870616690458071513995537225346689411012776041439894103094017489163482193172739997317641085126591719263013597487766278074853480268419611473257365976807742662907654241053041775653390970521039554488257956787232613974293087255806593078347517675131713726879608016829906611991890703726764610956084702266267076292254953778794720544943347709810197353534322139885101220096274486940133338967968148402803411876118114583936701813055106696422566087821468363276888417179314992093155483286651234223502993317018755886346317223706007526363816393222357025221315127688468869224921659323962228359938696487248365637921206132587157604416108150275942911096267387253992435413802474962622853786759381902656001053287482896194562701092241366929362167119025322694074647433554323061272521595258493097654605271109652819083388274348461782927139369248140039876072424958841158790372968602805530737527530792470933067994180547784245987725533779909566779459119838393579774295074889502169693528588250189089973359783338552310045071119823332563444086782036671196100293395680237753629116413781614768968995560914316983430730557014323577468849382559170465166765728619587823069640179250793678849100931194411265532554539923819085857026299983673303664753985018175899884267264445063357485685448020731653283638260967209675711678529789407411563719890034752677849786555890870844481202521041404735829265758472310450547685754084065049350430905878098729462737036553207745329136653191118187955861075833657122173430984628970726044130001858436861358982165149191816540462858598760543947216503373100865186569201087478815179011770266526340466362169833226739146667148362502485760375752851252150362429927394966723529325449124508365099596601948295506341738972803667532361582211651233208291883950504669382791076773727269924241621135873124328441062491390246487840535596266693985517099787674282242874657820173406788835918950126045927393273524438841259442956248306261900629374706899944583136285211914258283208339664015955343146475764071425028411563706636748634279044219613121854188841130853689841544963580002585857215785836096314118214804839075382453814727806408581510646539053579546671676644339028152021435090822501584098926160048258684758080329431622655489531537162552901998204109569237719268144989749634089925309097474012331250045017877493244961012875074083152119148160352831655257334092937768258214058776413766044702967708399195618251406746177510070841960182788156384138265007934020592982018447541397581017384460331350210933640503946940974344457440720235443394871886627881019214526147394938002622849151282278977220303882010711197462386968396925286758345206801261521596399149424868942525168893154115353485491059437593745315502272244751160383295942260557474692314044304581903091102195962499938879519354860622645391721104955578278476206645030166185954971498454188163146113043025484973241174811565241380002666413693003654635043308189208038032982840123069669903096332522019159437932406451117323424440635268850746949652383667587492262513401635229154008751957104297483834242036713485455306488277753874779546786350462542239172689895784161598061078927495693138182284163501549435231810698319968994774542884830306128416819347120915462810424351480946081896613456218847432556080392867052950322892144904972107970022756276229179816673738192874661954555745335098787664535407881914390289912873394966294296971566796000592802927734820603711714252952194287661908093119532018929787215426867529021061954345418565023062711955014347058425395406900354620355065141633019871761974603323850574449316975403892190145896479644040072163251312349325804742873497023041797112585146788051506961209345851460393418799255044258155675374800966869111194563435679715885653214074136795492801080893905769696545380919510445288473926274665874239859786086081026289240987080713338685989717902046091237080309317878773673846878997148931220075940664747817674561611572753521766328659656368262523056684135354317409206267246463140202896152186518457455185696273869211143175710857246190337937621811104160421627227506093148990449353401461825664408625734555387847339658052253891548299968793249858812357661345860443127079810350995701050877995332026869003881768158508653452698613697159502333210858584585069295554930338373002111235755020399803621341000847681266399243627102740034543440332707068629476894107237294554166953631657156391955878665083064519077543801401798797265722625994010799593542173477719200722629932190358270101518957258899733024351919074725433572750390273071631931250501359356144971689217877247554578621552165647032990796449936904324395782412970514825871079392845976207732784725109591201074114466059800854773984378302071780959967055124795754463630700539341167447670763344715876876027036538116806474294713850895509111846792989978646204555060509258403042303207247754660136247384607438991218138123913942722045142818504797725472460830135054689171780628631841338012087323431914076103454406394208414660225627894794507097439996576462699557299386673897245279225917547581194311987480094489452473705300057074993981764372307031051252976430264248282130993646305674681352327734460940736662375009954880233984084052614975078247287796343122013803869296264247843537318035019559371758820165585245701387870818717733627507776137480913899515501594651421477550999801657467665315114037305715172522005764180878286618605218727080287927810710565562119121817456580340714294356828486682752513850103991326508331872894126890423432186157543152921934197339685628748028718117428558057941113777825070649862317238443954509255041739006086399144312013586078474484062039376566248057783954646646238321714514588861222484584896090188029264987848720628911957585125535124308868989416415679293562432948071249581382121691804374661689353197763060373083778056717685054276608706975446516114093423672930972703730470521547418374780729510932114278365975013488551482039248062390999225200264909412333340649927453070768319183035137420432368644264046395717023351114367962689254566954459192283797163923925870494063159364133477026413462608726500625909672226246981792895094487209847594732229471580843694434714701703050452176973079752309949835984389385060164641000885968520902050272322744977955791590531660278550655281034407623398223408379122467014067677911121080794688584985970559189458845128415103012885641953270883275790696549541723728036719608920831559542855250975402200939415300910782126491352132726731484090735716912572826125850157312150062729122574030977382431464694358775698499971148878716017487580205885042711355555296837463046684765151434168983202152670159626303898346923827598248306949972512525373336459803539037359906880424570660010016738850766191003300476851872037208254860004374440673863602250635392208634981258743180359443401050115131787758609848991721517089422187411761379829427935488384115114234301744717616972658033844203284073852059476237805109839869596112187294754874111371428714647170541896688346952645274666664148227312915678045376990346925858601053331013926095180243643765563417481834681355410308851741316247905561791014253558861010676417340337434123327418215033182944336732435911930597528636640370926219646773347718077092621496203010258277737843669515683440361209085413360747892871391154769924506230786816077310002080362137650491810850557456543300809572711994995697062472795219472254744241034197689873685710745567700045558119603466270672372548298360480472941183854052925815416256188935775215184547258590782377083624270368194748508807755497310339926316968637124929918913984906801141815215626868862405418058874544222613269545368596064005178717781780810577727927970651142556216534442108100195395428211085158446651920257535891594017981661890455841797850436965657071709680402955542795442062724455873909526630930444191598568432394256563660422270782214052047562818627407882283887177891057519947448162087458369691414672350114017449753186109503168652799098870293245586356589594154530118828933937600079495219078976866440250543942668782332528756006288505902535820557442108473924764176258377416227510709646359395119947266325349320102630392902999867847999822591934586433408344281657601033381793932275793767873042838334382902076170702595859158815943136527089715130120528679569395325444905250909989819464978368692391753094655377426859888886542593586035980998040612414908956111132418329862934560360266187947273730440345124954770292264293717209926647733997367649789469045340263893164833621011535985229195655065512782428214928487431881997320867532644840406105195619790687114776103256627888273888185978411260600575796916826548488468066789807394696995429879813061464667607741332286599594807583412736465604448850718912356882208008718122131093568605890419017545527750655828107325630647360672812062684389119441099677831949416369419598929937505256572516771373101661667924158639572268417561196087216488805560363749022580807750445712745946320073824588970054309848655280391454629019007300072215098803430639982311540660821227794656608248854634266287052245778530444602503073749938695323865812164427117888186932298588184913230363217553030413822482501716427783646111233048494316532874388014276426385051351317264678841621637765217467216911471429658546439828419209393291132858066576734334622751575411616892263411151057969378121302274364504825448057144443816686845474910201046073128472857643903005953562682620121545618306543764882984831557979515664369144562981257706468955611620204942212502174634424803509712959003491848408337485186465015224791026868585913700471649605376690062676191158221502401857383238214845478561908127448138981567091588953790328474219055737032740018818453887345175584077384188554859886088286826235316082980073810590658554096722512124745580753905022011250616054968435720184653230226198916501012827291852426559595111817779359087589383465676655179263510441290520140356327842779715510036687490917591563105023978757675384304004957439730812290389534826931107952622929015746349193919463348195349447506244103368768264551714224873914389166293537466419184163290902749694012587581792507048808394821708968017683258053981909219838175862117509123540905779642299302199592336628696146874982923567497809850483111243076939457666019062028981033440324190717545886281059690252436061062540562159394011817744965391813796527891145320061547860823889029507741361330189781589346954786212269361326371331429004271072425817491598437648849398016814450187090900607515052639160178584376140943903974001111560952519140863010778896457951320659886254597124967653805358794947018559581511064161488191032323899509191295948876035660248610939485439860653518904758095237648871836305235449792186351777883260516439282806810627988851447527284364225883955376521675534567320842797639626272311216948182926512035288451830534001322327077327650657023956944951141639502587238526867589115973595630782906876872616179630103340387865401201375116546190030657539363867348924973490748827192142390991294210822424739974321944642754240026340811098495512451415756726662630310872902784392702584147413672480545488795479482368515593542856066643820514004942551059908825677663555271322786883930943899409713524574131619694072476654702122484723933450963174729604024590845676011929738723919862973470333140667734323813031016636922840074782736138464738378763598542431284350731261572566505494640556502472939742320003571422973907451306804737760236461513907354305158975253338662368440941597763003886191115260394390280207690348666151915582845932118838398293304723075807693385919431663859588366532555627621387759534267845558306846728522835225124095909541224228311342740972334345660552699880450400501287802468973558028151282723957410111228321430120959619244845787020537896283419543806443768314593242490507341303261926667448776550755511838727762639203338055868096243361952015647803186243815428521792464547974069526031389027204842826654002760345177005512095355016712491998245012861485477551546507504875837281103584260297063496807453457957349862511082881981460787013275710971726656835053292343706160368781577322995596384146945206639606616090450868015143558257346796784447188879026954553732380023132884934077485438285541616308879638342507554341550541050385674190016293131391556548386523536848453841567785949449928209260928679546019348224649802592616522745972627088193322267078285888276018201279977349906199740700440678248226149769480286393325083651348520070707448949140054928105710053637320362990263306494214156831195979052896117404693644837047640365795019101289972525784796052475492799988703137373751279534377979417798018333158172013412675071546868729383758254258117331727942021754763387546874630222544391008737474706439706618008219419907582976983913348253109505550580896784875185904572546217102796270471330867362581206718237507695559109949347289233490457431873546937991796952425278322514797131568676708548096780912451654180288813958634619446121795731160283718714371143494367846695033846661665772637588756076715281261602915976968785638005547494173856903378374100118661753604582083638936285016278752937980426057709369500040219932185695793076176043855705053738888578975145293988882087439694066186096115597479989710166502671787079793747442720113680702155591321991601903428668974289534471135675348777868939437018433020274098068184904795833221636828874535468189705134880580557687334552248680336394569243056433792220390491144698095188107652715747055655756534156208761052005665571596096153786896940361824954259544506682735026952056624713864140075677628658271630128256641003981680396557357071556575944675486489689919982214875790410518353765005477280406739400731623995924241069423527121565318415792425010912755626097926514895668183650115680491663458257453812469552697651364276193023592740261542541262063139384216069192054094532776092366641449830975990314032070161467904658574354329383631867907864231580523285496040466812299327429606103028907934454843471745899614234614092815226283926606754587013501839907551637356376464667549356319775440670081664346075557092078951092953286801781488025687673306384506726330273813344020766527295867282616559632326620417651156747784353611341450040484302457256038418143616690778890188495211861123811768285585051310758651122830757420100700096471910050254104800305799906750559599093588264552387639394077692952624644855427529157420994915163939840618853477529556908559671960895615400358731274826117467290084298819859592747347221921229030429634348897412312125401956488670321239052238353054412580376220902182713656898804042192239774988847404352825221221977909128173765942911243153081523722292482044797453178986874810187090794192241066014612899051463058436892934507017025773767401771349502562615687655002765209422368774861165553970750401670099933004726781982379622319325660907051264639877950351815209818464175758535790742417791611540478526595410808095409182398498657838485915517149946559722701517640334569695481378585941530939283403447129324047133093658263323642249951346475893497222687947303059716115471096656339062921923867650852697516216191108517495274352445255680397421254373518269210576801588275075033455920609115333970807539712558961005069792940318093130800786104000230963062291073897557368422441799866074578133820786076767328727317610997898959382894565614967771612007245514661641231551929267833033020254982199192714180510667947340074221868799953221528440838599212134922817054852298419338289355973585150276928485385401994743169097359143939070931000892157557415222769283558430902466979715194666030809656188859608399718698449539483642500851149872725636299370925708708555366174081112235468423560458563735797084839474999067973182343886315923535286863276170204882903429858435974986399927892681699612643457644248335376678634281125243077303266699859137772270398439634881954826115608871310915341310847885397772545270828295998784498359893670772384180231934185294987540569379571500074916758603828075477764401193154790821608844897467380463905656078532157842556179149676061523234671846425929100095997675173536615039736247680035416444451513793156463997868128966858498222447959250657864876224677870905967774185300195866082686247947063670421945626108829466723951626171552410690120334417657384137145103966167500764411567391716149333982877845737539308448974248438579883824548327442765778132782827490257918943665855269759763276873407495318159938720289267429499288117167478839837308307177538133559369259860277124275008666168936664077035959615962060235863795594844557592170231642568985569162852937861577091339387588963701899383185903509203862285785197164649536081521742969529966195161217379921755640886013660450815842941380423584833633681899451088610494422647068304363316901505954046016320902346015608900891919231670769612530817002184568498765075153717002258228268892705177887305085808642812237603854971972316270187991273563954811726141814016515481809243477943081188404951260468885978730886711876876655126749559469819638855596690758691073125392001205835248792171169991252895720454692735257579936583380926627096082955206827075553100853368441863576558552954518508900579637514191068535257812234329084205353920518233919886668595089104621670969339379072769268131119665468984046556086840067709468714907802646561608510978704911876421587249932948122194766501907097779625525449376370769936080789382479661568612624649876836638443777692053282676945467439320801594398442034661568779977543976442952904406446498439167334537400156801632568402132928971213739190313817196615835578196484221831667524883932644402982369102908368106234269954000095670862155809417582168434793835834399021463981346597663601054033985758876947561483748071066513469389742344349902785882673393066443802455504677556962543700293847339019517143860542096462373654933492341720397586002621032277166492793401181792442662339617415058742729488978680242862556670944675064419333296741798290786239819325052819191931833641369804943773678513609264294859487913617033629691918151168389760436640855061589126823582549832452144655985533897627495526228024948414649008500874349658582756162371056019898055749231165924336963984213073020108375865879455057241595614652914335810650141242748398738921657206582202571360750924884851122617520176758989014020125888903182298969686919024452933407784456442314184023647265688331307071169119436107932744268420517962446110422574399216192980262077196624650396031371238526585763890145935495670706496394244140739389228798504100134274115420323033109980119584482425808424790694622726795721925394560437727203534399049066236807629234900947615660203781659397118074351355035116191381037288873109086738107315982052363597304590717035903511254646159607809996115173607459587223906046251830114177433247174683845910665985544926286576787348945593835674142128351869007920812524941224902716550018161326577613867305180153885081106939486457927109633773181477240203579456394728873368059388183644138869219072531394124637753579024927262210983400094031683537546219557401947994902778117346825285124051659133248592430404775276923535598634284982471951684937618014793971748116084462302253411109959240464553474696549328983972967055501260971804873674290979909534408393748599413102016912257808037450986130313931927654908449009268060152974780057137397957579588074243586942784212481865374510545431777098480550566965528780550542595633091661734807867689828142227062227522103380544540737656303150281290143984920099808101526105316000278556663321901002438307311167242591546229710324372303702868619128778151172308164288203396906149137060249861746245681806603852542025703679634429747144160024640456648851097402669333480618820575079950449926775419505359504601548711358157820639106691637030810089241607302529528250110937985556839945229264692498128626023495597309666298355701509268215041545834767457534778154426863150826058509981644247876136124571381290685162882476142137340357806375788525947843167506431035136147258776477219497647071543974968172009659882997962146220861529974297980685279321876465546601032815114877037971733517610620359907471854122154405782551122269677451487512634252406518085359458086075600754762051152970162595525271879959071348642113100715722567379043833388604848337989921556405587079240869656603528001234140928223940444954694460062121287597790859153540396015514345825901206196151582430249736518900091356527545244057648614772661408870554194531224371495079513120152467317665423985948426699828406646162613471198873866552850923207997674566056978379689846461345115752477715534446069127222724728630127113988384570323083096294673547473733686823327745470276375030393780868882500557400444705879046078103523963240889174156346660846539490613899841517559208720049683158143364402117142671131708520794325456346493331576078449624706156950055762813202196525830612478988390849899758548286795512339284417159286791126965972744838684000560001773184892212859747462238834599018520579230907925404578857985564172025440122780906270911811972297487175927641451935698603919218470242291888156902425830331197574470806504599691392395769087234192131789398799641157649504787575434505467203342143248048846902682733971305162003945332412583380894479010614324178868180049412054259490943135180185742364216511431737227391512007476972981651526626023883989259381360519015145482005920711266943642919742892135697805309596188530434721281634607273191588101665774808879515467616405413669131553406094260271349393545119908559470904930901053108325396176187415370066117102195693599324986391099562132637306376371577632024960603787909556206741281147363904068778289223901845094982219946655009130482307196292525806716999944326797163329643971446735516219232904464888923391605676873605850605495077824403870115530395811772629611548062558207530886124595665232706084598626502619207613242991536652864216064319387784024727186167192532709108129734145477460822059164243437450418589959557954402864421110155271837898797206335473651516478421862254384521018109296524610658389077935249747959133885110175982079702817159589456425728182712869126723762719955715267531446350331132726255568118828764392646159778829440692730922450874834637705914237483636082791072238887697926175022268318924771241218994050309056208391725929692336274390889026643304203802279733232011828657141968666631093455955483153448058624195148919534551639418127775973525826958323706434367620992231324661232735064013500403469402936536877970410677534411018191465385453481685659159792951320905520864171202726014558379107752466349338078995687771483495601939173049642684166113483075460327472328437559337911958128004030357411345713771009904260477842488483179272634182078100579664549611735846085444000157767716518072116460528951933240940020324695854226019344167723000229615359766437203292581810340388161681255700204226688398270868489906847770159319022858006064899053429946702690400857078565302786943449836287377791140635188674696404250138462696416229891019895142570498753735747300090094023363776965569142876787190551956272610454691861362826395089065929458996047650771684349519758871644303504240028448445544562258400940474371493694868893577468378975128414048175254106040527515187131523185169124232925012105231873833419527172101501511936098217933856141991093572987377211378762465271798091553152060953086619113520764856585179930435063850759246239556803579636609122215379099544616142432078405883785012774674578596734417806415057014399389996672885081534090962749011252461259154144510823828710065564114119170851777726214321230365252244374208586955168257829102552567646132932381117835076402583811730931611089701901274918052270441731195139670174254305614645841673606250261276452592176332600082264633135121053913172330716859809033465052450864270759726175022867602366498095128945768263665345191155174972426387516844982487605713850271043598320095147640704777696576648344595874720415133427801294478694282165333260982842275345923926811797277735146845687050034690833845951041874330916066102163999478880640793391487389597435674217976945523163975264160987520838850216128784433412662771985688773606592420835026469041854375743160646074228982354393681227888550136747181522433913313762935323043922794385854336944890453046202367457438055630567489175176666759355521961672346325478897804907447248608490478013345865818804026382423083055496139641552881671065338356352470865915571697783457781808850605380461287208595984644055666757674150004150778693058042497871404450367788707219682337807498247559712903532116052496016386142340117989071109324520651632637639490141205683008677014189753595188376220604576824013200964188682003440566423069785584687629972907513460913126668561435287010180258737771630579515569524305529221907896571755309898426990122058284697419703565703527354079654282855781426664592394348241610843090805290653744001474064110819978052034977817724402202815143971709823857032020234677904660897506266395148733674739762359671444508915384352379125176718317564288671248707493693080523377477890145017307509106287296425124515130866630403514452256871875073900636811803673672803339919656189509119746263467550241025775508437738508275246063327722760471317637194876469221601452628949893372151892424441199742411687224102737097804417566498870108791749938426597610371519492066961372241726054816196568110510167162744713539481599729189885642389862924110378772934375815388719117832393868494496799923529818535773159431499732161034926993321789328641105089460147671007089476013395718608869009814602439779237530139069928032403120750081849784497917830624401159622692175677264252441255941743819435815958496241882144342370080139470372701082116303440542604434387810012048098790341570448557671957242680623300192672317385053178698417063359654777842004786542811503566687483646730381745199678834033612221432071962508471839946562709382001165710259960867037066994219602574670632806857035431098841218714111153079454767555751853963373254290754105528001929465243946703505041172258298171626360735394908956459270365434750484297654209833350186150914953339579827140975515494832325642892443823354444510336589681834009539559976599641629980720056967906700278839002093185344443245665613143450943429827037992777534693511864195107608113244400209014298082729016879784957775346106844070011801181272982721455414184639780033788697590481414782539485811186863577919661490139380926654340006738047552372445265783398588148053197757615667667475964665643455079325345571461855612954072803378322840080782309081307130102979295335688479635129836737581820449339952450542745641882792021688723388993674057333596007849368343580036835655164406255944362801523085904430315197023114621127806723955041977094835028611818118531650846124015612728010045022644252338651407308762667503612200422051896511690018300150813893937988456633848914373535648471559320346818481806046554861207125909732554659522183834603327693096548193771175787763885988141594372544991669543410184654794453337264614483056764069574039091857580672404622142053321582713025319161639660250089082084333818002727424345253768853065243194321330606361586122548873449599822398816735014129598059229647179457632044714893074334135212843200771299580425050895102870768052106486559874725474829394092827446667726983197225960322554198729926979304219250204342510827128472104051012217588402941918846283314833024565998293995507403069184229302170906291144285250439891639147257494255257269542078285045490603968177007620470229117775686954844091440159171182033904017370064234802325323963074586522247001660296336175870390852862827308372785885095539169129655574301855560562070236909046207454142836966822345459595494743462952284455189493056448502951011437226828677271505191766002350977086482779164489590860750704094745280982223121844133478949070187884077828065727215122717099401585952101048744157539186230962842622373600742477731646334249358111992495621493806388610810510810437318123624136052979532145621009457212289779219365144765301195929689132561100172864304281354885630038734135069357836336012138626730699573107545487777037603546907125607164126977782345879644031961841158500012835551366314841581743534023504546893793777718583174490317717233619648750098121592806234426315529824970906936817710093591666770406837618803589547879971045344242330700999837264936312730841099190200607129763895691589940171436821812918426703221670821820490216794508730331661924875166139312930924775792043692531333476670188404171190755862828041149319911053823818421300043230320020492723678611867983139792228363712639421378752471304220859824755845504597619492058124900536827605268228096370922056418167602045445469619739998205638753483694196872588002184709825850041122067107552569331046642383686239749969467627377641019483512198945690662748553020825976188404490744826257820208019811344593925151885906682886183416497285057216825450270567389867765053589454165332012601298535381292629398668485018588319560444582731744977094258593272559752074304804537130242352941743830488089436206558312603211591554390485211541541787191954133539325467739914669348433792844306206623277139310062867584877481536568091662396251789967598146160309152451557670169284641516769397323680588177106164496826531988298551411195355193739427884967256739990352128513934406056200090645895103369132862900117010454291410661837781003030967141538641387890979108237980585610321545693030979764909664861996736709176378406099728804158890945582587476553383023429781637013469704625221558429556142924562693393814871707597720014865070519302421619017431046385421165526964693961474971933407326359696578215437144540330620093680856748437128262136120040990420365758565014845829522401399766053049584486548737523501164328179813210362587040913213094330720370369386044771150373460003267344364281937063917279160440387420502722004409725480550955264636029634950322102396923609454712853242468548384685623498269951370164784966475738112138133657651789211234659597611508869317042692317361053063666488264370588932410748239995734640026130303148648005999774524142869811548185184582496370114218701659662197809793320196511391372906780276806862664793387160749782223730188636826473884174629960425789655176108971254079627987008674926097911851209456286575668005822288450346937422953087345786449356047723170717730582484531315464384343439243101770839351178442275879458531431088904210858592005825162416924023258219658998341385627846147268247481458034662698489993311647301601323580742791804938715797278723080443309782864033568710702522415616635371904778369132015167008882562566994652525105152741743475551584251549936920537501501513051120249921187926846607355795305578956164067080515219709283342542416304705227248806807796482095322090862752592977800578520021051844284216744174088582183999884416682988582938773401949413021136410159655190704607680959533254734628774475783790711168837137431671500212293045125557146656957026245726493664113965020207083400098321952354483433417967304363764259585454029934771869209895178533051614919115818757898866529205053732591930501512919020871450034309581037088321338720042203996935309053773836187312851027549813342648708554059318651182702230504457909592839796939331352055708484366030812566877143657110235460620255330636861530176029601728582943666236875548377824348431639500302749717665287289482599095457746376362758873537041967796730950415163666363761198426580588858122936098651913797475450796277274737291450523777941458531713475517140194556807346379448135457872261080453144132892134236102719870069960833797967593723683215608439397329162084669382912702631598742852736327922226140095191400731116741669093037159575649585376665761446933471614970279988612873357654271574349379766474610391693871145390338723500525846343774823885403921024565171943566993258318308275824375024449999432731907812393519262665802739125471998447674075978814624826270080228020041665555611671682560553647296261591408421849214813001983875153014723493004619000282797588849179094615742995885159395107300017257078828654986412864603002938481836698525998663870593338048189932443443530623592335673743858206472404611854828355080914969640230443974662860995229028733328941582237468821171983604587309026213128396085108064961106670207394412432737383193703456714109094889225777492355282260598473832314328370357688952211049252798286311915420413462592929356351387812973040701076772901368856559708998773766347381816464388734582059658819669151784239977066425445500233486397893326915782458516840946702980892766110984460552291931295417657694120669296028111951464046130824458029871544450865332135648431100373793032574247431139490025979573640052161606207909516155805221648393259365017101357050864607032921324784917172601357148073087479311444403901634908084297678175327289215603738646917410598950645879226603472359466623557103933742406853077077225908107010290374777085975616160221103308559340572644614580271916741671587713458623022467136647905613832385817969145047337910053491038763793455572913770151028623835848198706943001483424562804887079726777411071103802568607427243870384511837058868682404270826915396489490763330901973766604457640056608115200533508463372881023197001935096786942993651625312261045179105273598239261636934605734197190038948998022669642699993449338099145428166177807916020259514926211969588829202126686578194646202257734607240111686162206025302678922535413455255203883796412842046411077394991357679098978604663324164847280226653329900931257225459167384553922523559881693246661143339210166186668940129660028764774849484744396261314840288365089969618239056757271749624431980584433940707158420630448107019019129590918143752396783700434069614682413783588301176091606943022419033267391692082372952572281230314849738061528363655408762213215625191166833808594959333153246310150416512741273403474510949557296383319974282577305988044552246720269849814413520855895367194657442206384493903581428599780368779795736021963208825213109192994036033694834667792245216572054301869943400474340578503028451593253879112504967863861951380137749272281729985730674900711572169278904647427443093217557558202059741767792198851762140010708253446611062116182406736585548065003633743790941724046218390655513633712326096014176724620237897813474848387103268239871207309107122111932687617580892691766406098468748074909755829796559444141415303133670274174902834167216068449757264041540900785951327586944829339303143598514839942101521017371005269115374905408804476197886763820168478074497488781839514867496721620535474337762097034883649759219322467184862621837777924761341349177973181202433028106447146728950831746311011008740869206230048793541354470460753300378789961790806173982095608859090419403299613496538871613254940327916497848547801240849282356259701456853671148657267121100482399466731348501813501363831508654962778822729345446145758877816262435844253511222416966785628248349690795512206151998591982778743858289203244740384931946795783966743346736622053221780236094300764794001371063717100228045386086930174021912568685497668903592431354947890786304793244359339043510031594333079660027631568010789786971783331506129671072392631239750198790316323753998760055070301226759683242650403949368775082770816570695050100346819079890120676659538947698065235360097697015792757960748762650241685147440979934926580490110831288009812770392811933024790444929130011212381720074049319540417398047701356608436740369805861702193754670953643508910986621907730037268482190490074804157859902590013172975305558756991910329067664888243306568526268667075279858092794936417163695134500455085187520282257874293129456169176626920115994771175145321959570695588112813676963510577248389766403744227556325008163734998816798334387845570368030428928500231437684077600542800882973162533660032140758153862529662039368378649716845545834327418041046985501641253417800519684188250997587460578726796088836849108534874850191858647834930205344113550589230542908504578809837570330101558657772818034316368082466551766950954073827933786996475061403748750461291753259462643471886594838103358451611550963307681637611771073281179726827131753277819624685648805123871045137380182810091414978765177573561319319567736531703522924977196772423460893308314660722266690749379777452776234360837343993957689115156774411946842838461703642712832589543540131013740022149859948917430593655529979769548801841444989752968563328337044735201502581744576691435993649659851747220792390318540152752427944175496642773752537223316950560022143532938946160492903365939663883220812310507954764276640773931962567263225254923484737610494389267198827639531720528365234049581305462855156281450122125072934086967728728447710363012611144310948785238578752979321790283684066545178604933634177783419840338890441654334357023664851707352589239579707830720879225067402740786519214926683812358037795850604178798581460697413408631541793382602452985839396897393391996798265260834522253397977637976863763409961349864019023418848630566435167617926294035398541771731055532184466432784112685154278204617939760385733916871877619246539860960145977038267787338743038194781150977432028523903596275076823971544038600932531542139359315180920654538756681619651271625663957148980340579906270076110299834356790021126746245891057305518182701766346895854958624668295261962923902595512956816996028545732570886211647389121795507971172638328398555461170101499204607853429061705717123133946671317596529153215265218639334116784681829379922580309345136464482163789633611046387643588456544830220019190281431015055886894309675997247914113307721976397939719676409446183013634471482134317230416400706413966261493555697804487201760385497613270727176622174348377914703583759656104676233184693279571991271291696333632133917885578879239326990224478430762536614735484494532874417498265283409623307419285379221019176916930601376691088728167314738308774276375681491356266080488518010788186988072281602657172292604375320498243047710406217604625908966784865850484835615730990610745333300985000024372404220760145295169337439064099925876910117479393474985021045245921969450558854284918408248814308850545574122877049777879246112115967297175458551269900778685754949661380339908401449739432027266208311789503880004322527247450790471230394266240553654887088346050323089523561893706670670999676999823672457134406918472018204661042995443321552769979610662439067982681196759193494490860645893825089810890796932884707777636501855035056338486427671078750750391606457381476200311723786599937483372212343809502427166634771552639388710472319406102699637784711677008918172130976958143436076670051599886517780812244870506726047279354106160769241994064752596316868237588566245762743186878269374267499698288554381131298529730878226783511604627205754041683703353325825575832273751007560908839454483548789705355696830150569975023008344087900298453858476035043120191721142571953544020125063711825024137109420201289785467516019794705239587635837633231683933737551333930125017126064360730679808992452974323443806739162106127425662558304739704719397247657024936038782697451843455594189908658858626128180382245797407568292757940692284689139531238047815467309732500065723295409066559109471656458618340916538935629057291811592497073175832467649667424659530388888739546200489208191896304709326050851515827027430211005018719639684795616727249631500322996938642119243964869028056009950709992085735134555620765639555366253889685743106816439675116685006781121970222833627469022474457834067988757031731114417822864516019784052946451431837543341823791641406933252135660420605363462514972813595640565127035982647748948292752115827283784663004165704693906942684876961444389011682254738483931309309339913861222701947140397735878116822931125368875909515920588589217317271762337273483045970957059372528101277825035717717149076214703410963145453918375746561434868415822116899031494892823012270076739101877587084309293745657877517620487187672300906775761236418328205029856179150794835912913489767094863633655343620588595570844828114173285674270912114485768207556266402171804851126543105657036495324947994580295557506620580700319466145681759943256681954094176038540800391261879710005023001147860218301456226291288877146050621782642845753306334479484902196637980165331076284434129986843508895713995579909751037914580123968286204329609893903872156149396428261736630992927528284114501121124386170212233922083121684894947072245900367967945223369947093596513202748048341337071639315524660226263755206330682806430916859396500810745028753948828160633560174842177892479585853825204680974066090281260343331534267784443753365456047692457337949135788829055508879964337054845703528945414279490177892324942455252707898371899739228311907415268803044600918060741456514165349686447539062087270985674713059720991114264060745664131998048981364008733001684974895600076570725236169169161725535517929296345673561118742617601506297041008138424219924518677435125042789891255148298979151001090755870962482576219346749117574548893367441717946702738209409267133983173913851532122446557733599421883358005343253802770880216493721135883043656156804317787552007875894313711148314960773378161774673040976262383957773643111626880523301900565692604980244791642185186426394883548066049248153651483467831581354007847720367640837434818184854256559679439138809891029462494925042448188125056677067343876859867436915287971293063780955100328402438626604159805492888251350941379603051526441071319638987305175837158665653372948762555376734009262434747269867238458331527998123869585998708659690973588671725848641348769447381007837447063969501511262352291213019285143971334769382621919687130108534309139764889068085799748526961419985872924610170035748478784903088299335844253408943787853544196126345808681365002357324060142811022604653504511023110757252153511931255610250812418374093804327273280603052717327769692222535597321252524086217850475546578358858891546617708080982526423985475662389771004596193498650775564692231490198831314065647651255023604089020728971172485430648338364945586751079121233795405158312963796466954042100849738937827832941109035437344141244454137414450720900394977407544361520436745080405737900277544512537049816833454513620022509701147701196496216948614885918135395895359435629264024278407313211014766082956848507134304079407423738045101226064869190893082445690308576041639144974559461766048445799248554916411397235036575196045473069085499994597685877187969364032858192040284354069538389629310905784900347357693312896261691961262178169962915941734570314108336058322791836678437402481333018142504892638824456790836490410570729019158988866397368407139823827656154314665604401858265291309043496148766732354895639613692087388783644421267788461998123020313614706917941134363645905251176129788465034473607631924371338625741275679593418379556884995902732307190622326663286340853476600849427670631272627274102460315361189851029626652819674820109825839335775295866152811265878055882106238963891880528870107468665972674887262368917887050458649988581619129499365676015446951455449771533439315796338535750731007585458251554935080749628521947699007014123476797423623537916539230611695267663300322146794668787166937097750045051041450581531119405960519130466682248824155832554779708773394110293763747385893396403850697040596636499466123906546390070319618014209992487450097462047558783370368575730027820086057113702025807131916146676023863497214453943521106712407599387487333695453413697985386290394077972642653199545504550948358737729043529624301716536909998230645051972818617593875380985528750806886555902136612427396698831942356857018310275777643137250200708773974271612211760667868482735371996225613687546688021507841660281620958203422444538367539822420848739516103537689104116420399590490823768441985012899837668056213426520526214848550946300212033593562893143957230866211997627497456779258750058526875188521489536210950159392376098152181928300478776872532328386780603653084869605116436354418131011977620581181924646299480188069294808399503626000890611544496631034812521557534836820497065924768460187864329138406763743877151558768892223458658303444827174103784487074230982886166635669025518945463197282876435036540379134684797502030860111441873014175533131008065083892067249373033885330288876091139209143685415395136524532322415170262204447896982226012564509689114067860523408672210096289466228374749151045367428422946604897541574329449739899297789043062985354523470041888364896414282219706850857333727560289084778820569097734934291096012602447925967066656605337121233873287345045393917290065128465065520710024242552567063018867132496339280352208849167155993021553507720342788503716894395005142929402279539723394414913424745436832108655443240925315621561758125702435118839513590106618553332140254152592160024022597488941067002781016227477765200012342791519657033957652567788767213857089485745378924508792758309789933789963251101281238668197725948187324936584384536324202103233696692032715002001855858178261747432887083475060653626986881386098085087455021805224182511223734104587397047826411723549663624940201232014328743120550059305134713500110392396626399011165549787427301335860960925114013017971010002236402716292454542132134435217771254498129385248958324041042164579152132270545604383893800266371646379743543875268561633834348631310792341951462520136230421541697130333115676366182373990234135746835822230464741625945113717871487779984082117318421271434592903548759548399012885164796213975089693869410844727614547302219068136131217792826023749539751633125229393108050673334572124653488924086231862635156289189210666515076680171048980777197072060272612072927369433182325945282557851894039292323005787833157794746609459115898310756813450829025470425510475159010956264200883530520775927300140614514778021314718185610043648661363360176021987733107027608191046528229160694659094085970187039835703923634929736283488386483755249467273732762363365258014222978883007936098963262552658529843214524400366523860833582058019186293160076365454315894537739762527653289901219096072663189745854852918292314845744222081796560778817467238691296118576081192475762111549001766398417589893725651239226442386306255706358734454404114797907378826218234268679525538526172027401610671761853165663968317126699265519252100092356602483506038420712481463861821607999288565685461525139191967551781932611837451527316198507881083054990485880834232126660437435473817488545826009217271200455718891777256095085599534563928342669899660997162853049198497546183776460957023476634287360605030343306682047414093251511588271324767367524609431496802690295003361361440718475423835550771830102172080933399460283164747439364114539947918576796572500675109043089803119857654377144314328103139726534419272523943023880117485998932158869862871573185119898290502401793509471070866869915620913221443584449094526977390061342409300303471512001798910335957236510234202062239288285561406611686492484538872502993637855101143093400415750489597893339234204704308646275543131297245055890670471070499018039648985173549862437916018867097785583474290658099074689686911977787142978602907660800111395525097355786371931982058320060852303466914333073602953547162702974085508793995658137462178792455638291456340695794610438700697479491551875372958701708201377433434184170865867105079270789412806496145202744209273208857668163451182043714754760845002405807798851540614299509531700770589830198235427041937562884393189403155684237829235802873343197432653078653989073652192451371548174680536574065123880915607103977726780507304644464687776488213973171288951405809091922376161516193041197478378500503822829113495188483950542682176470874886297853592637454188499153180849754733903873655781896625107784872373909114598465729987144644981773724225651560343603728221221670323301488969863172282717182565519402366344520306170946522559848887660767562771381138648883683536043516044228342062441938801130258890706392124567589320837421668889307068427755398639849805084094573887662917976371610216743205208337314190550077305926849450568979231525546896674207229965396601058855649375255170686006773026587654560954965931512547820829507899176626252073775206746865975893535345781264620306287063406008007475863254761144365050650846497341838704671988453715759080761985149564583075743849554349038343110664799299144863660021410667032524008078436212812640249000362606443836027179499293750393164046171330554490933989253491743352751759583055544835425838359376443171780078873879293368507765351587166669921402453622472643698340831804117365309097922218383506179045207417827508580768524436822089709129990553138735861148259476743890771174274812800861778301236806844496372090178233595639109846878634964032740154443843776491284192255227173180486834090227337011062364095389609966948005786088295659507296468043400866643456937446049271250714030473648684301342357954684959693370397522415396789115419513331826802557658857248874598755548231108259060425661371558413690843281392455034877346049805575905406601999856882937590143586506509515995022037675955269468789998828353660040420874351864549625726907397569338318098206333734031673818353916218026484052239380598392647856138462504074877213060337240419592424617216756391699152344599969725694636806290797014209377397750656919171682352559346906374951885710149950149656151625113622504907962116713034956562229245703235936770846856094099413037812941381482883205710013955224988600938903447776092276334381696532370536266777372551969195781703333012054263259968029454943640853733165995765109284048458726181971950227343706438423803019658496286817091824421204449574986739208530540946733412069951499007076677146973673610220471113743057261061542129071817127050560383473567094861870936615194723104108722870232683403699293776561571054832805239657264173655867873738714299065066787130841238491673867967669941820982223667945730608818500148963445522665271660228718352603359101114714994061047952067838247514120816679906505855573989631182856470317997579586854039564299384847920651753316729689499018870539878251838824759366650830172662893887309374130167196469174775949993126363813186672042149768881266235997274124489647304833661348001112832251520335587422833508312187053598894106953870363083664546643141255604783827628387773108517881864500855803663799569352957124348465431643113117020140345272535894445068506598794647238453873035385690300012139499965581693281655583127174658640283414577881868925188413476027003259879851454206891532469789584556893029680272719362751950281869462380244599866993420266357855473320878725490452106530730775935381845853540326343713909599795863964575153126311545641787108785367543307056234591685260962510543256241746371543020462294377995505905967372216043426070424069635857828251488803937179116931360205403315331889422660815565635966625882822731315167243112244887455513227825198115576603466450983670576762276276954961477887586253981142616279835172096732095452940931845753819606929842762594951932679185909746679683774905982064478254048046924532287876133821855558624859538018443234634304554502581241852945967847025067564974720598062791772946915254777484846595712732725564606237815612972701461196180119053715620463148586136010470953872268751793173086699440042475070772259971922506438299861700264143335676572255392552247579456194107640502191512371832657669021069442406468899596836428923995388302252080625394322792965651972366355590184328935090786761570047885294127762923334600287406451779739928052816595665710903339276808413410223381223275768921862253746604060432645428816544959483551537692141021127515412526608087988855450355437721183003283052867193691767404012265731911535696399679720574531292034158369643344935882262980262313889795007142385913855254825748373334083141059048555904312946264701362968914036951246632292912450601495799181403649242371591443753878320123827173096409527334222276244366753529621142592211033323878661085880332728269577009040033480252015402927093284647456581143683241620589874174274424712143339636933987796982322000168643543518462361236619391892840043437834569835938886465299580804592815545432519197298723259271632199456941037586008294290161125825688610716011337749031863524190980904960768350752418841269963446205465713145245880783505619632195410634809297455028659156225433444344916703623443358311122154778568705904976397245754040910697370901301861696603094712384613584593056593536889690559455893695580191460468280571644340860048642883976766441990831420858183637797242259910483983953164568308062553808914095277384646028184995248897178659619353492787220611032412949663728592245725180881301499106623336095675593592429705438645317852552920173616675555630592164424476446818078925070534640265615786796252563190634272973758295960050220340732327727718681608342925339779909616937864884259782056489745810009402156055688727382607071520264337098896710748945883842584271188197701627055540308908231387791827935951966634406996210187801004844931929766751597263844188011858138526579285760306014528938403073046674105288217416489622271642511495336940805466625876622697903663415359216907288365752295337918191556455631856965409290911068876742871287981024295928882481113071233307825907695112133100018087599298633388708500089826499690469070547513379904731280302786371711786822984023239462203504090073244179130308182342804535432737633803152534837015627750770076957048439363355271225046713443800712467593610560118952275401341740930450111931354668029891885501056835468203674398488150490806511620754704908836629426523032640839202307344159179185497128371547177382593721822034068963455952808141578644655463761241964774042168081538963783538833820551827578706392253642124038687170237401948085262877749759910521720848935463915507879127259710097644186429460215969759903904326789111635679486257086341549263702950609887854149055609470134777672530161188657099043890359206099403430308518346911291878710653820716263477009314063628692350396986083736188235963962702327280875434954261523725960175240119288592661405001476187646816302404693601918696482574196366653798448472176476914096399136270109511003434859356184181869663607145205398518787188590168566415695289260676737247037151514953609532020170139193355672813090395038368940934729827146159108478753602478336985651385969672001118506026913922233085538498186386695746465471614540452937146188544962178543587255166709350056334025494986380631195153738773659043276061831030764569104698774877034798088209214300618863057540117589747465424697509259985170219680740219737449161860130905117680300420781734432032415753242203473668889851615745670248650248616439842388452803556765445826487575317058658630617314935325564591729134456607589434010617458835155853848893699453284217310680457980798569431832738946429741760289599589953857980378802804226175846095338520089646949385661965517693678492514868672950648801273645520172924968925231217457954231786003118036389099828315136110002012757085157813591589655837812586098927476700698436794131009464171240395281552057060313385770368387512650922242299842785272811813099070333359912252590414843560229194137087121687665808179930982184701342300162690244320522131521759692321587160091662412533604635015166168181640445493839118248026981661341735885834872700737335531460909034670973228467236906581333902268694942713436603342474849449327468332316455232993749979386037414704157212327801194445332385849951893186484383997579504066469414574175531311811547590339500326829270281778559139684643073861001809640119354262493330352718924360541444480198112117834747013674001700788627918270564922367474244549132939832639610140998410195130400721378505614720927005533873792049681300527904524183994188041531712380150205929579354127943886508567716534893027882117088984147550920676387893837025378529253837752428593317191237876113339266571399997573670207033532263266618504193550618260134843497331335887727853776012462655491902661556124997857004703177275738330863920479186747340357121744874686558229624018220059238100696937954100761369288145574114556938079919247936481962897102118698695929457434299182404153542763964536198545261782619478489257538514437555063186056512281998028251383498882935792647895846498238774935155765514702998646638615672966482020152471642801892384470401250423313388355490725375911460895830672681987749317865665368499762871890054268582130017617134275433269899279596682092572142197607507183431001448356972252528942733397696702552148824721398095958364505852651257253962420582968126018162620057160506093071220757006257931320322066903291811951782726802657711184012507630960957389940813806598258820010450210458751692777067449476817411277133663503071058427219084313427157913435817670827813822862745714453977492140106903221944049956651888964564226812611330708621500080117007067243577510585643526263215012443932972191370462730967051015862918827799068859762163499241652860660962709544066043150809820831241610341355335460667818913825115537155537571305010316966044827523063776430333686399900184139377814248483821002929703495804914237735403679355614853494917079289492885467408869143974432669643226148759577250198217699288172922387220046989914086138983553127212664140167770933823986036567373640077330955776030107669257849888807384177524234006830688500620637530504809419669746445423546146995807618177993793413043838069563512859797649103376804955169685332362670462427005040473905987913985645635281896467722273030339924210512716079455586576322697617315226711984398930411782500436533900451103033037817666112852015795158645760836772052104602308576818517167925369750426277961967107752248533126790038833469874532136964524354069463203469519471721204132618442234841503215933283925457381540510172366295504185779292529236550557779639360817315933044552392721981340413611782304997009553996763443094699692067558613224420935176312668071147872718996137581434138982028640838869014383158369190778511212109697776829782431550977734272466858932255048501800428753358549826253305536725078962653478996549773888620996807940795140488163323201880486006949743187534819252920353789534699318464540830240018496714812967299181069800371941655296717506054608763847499598314796652727891114767568387358772971452085308809558032139523602669715516613072165765868293495456837904125508558082429933080080957950392546132582813754489259199845624794531580689227155543799113565636715783823967716492728098575385813682031873440973738977779444314837082563327293713095988098788285119845361537091866989742148139449707883865890449344806635523237996641934690486486660932201148981967821659417373762553057960831480138952490959205017692575626728288073802885089938687346997779089024401171826337672497696976104563526789534115081692134635308114173104018806499589979210802547922412596978147901042546211181369582743846562370751549508195339928153573802626055953265325216398730477290220172312990863206831104209169893361461787619900176475761359820406013721345944264181297684049900122031577058850594480506131285188332530878735040212552164477408239868512319219857415376826562291408015614749382782364360432511860911039749930042507235256707546724757641254907048515928142689527718142433848944461153825600989867608075183739549238516712930570342653150311591517073941594334513629189377323262436616260646408301361523726259578307391387684151617400425907111631036220935358122856663199989064358686325315520909396341300058343899061243664124531128931628482505644946587056011206904037989906209772118590736299910236528034788527725039820520782290595297825032400373507710331153103879217710519803871326092349429650595257915761400548084563396725225571340855669553539163197988112340429901481487858460598048485663397029073479244679903252769837537186191487187740207138073750740121852294918449338516042264155264827735184618687816179734635577400968082450636734964547795688842294015935607535070119277335660091441672530237104315728961083213741483562389007343115050302571380291202575682115192942945031530418816966303987521983407462505966973744179057764024786267983575009232440149212821224094362273917213084581165215996333792605383962672501241494363044010107528051000063773972264171928849969302621678954464835006782359244507193480180995646213407490499784499029612425824921398265507146538641364294423638884445910700847692448955439031426371408858163211584450647515566901786908433637221841545178293679373851268389109656128297003204299956643261973629005178247105147092519638006818669163825243696103714901283359199952686186211773513298195957670600175952118440803857549326547118599993004480744017548472600386224721870775929852400208231252742345835897650109407860010509022236346984344722863960683989573709935940240371740995252909422199968314390971625368011195434755305569566549736093942946905665312857611382035731715757984916633831922214371386261803082188544686948534941978609096669886294974993475275134910953509036119251167824298384761580860158851038827368996648946852443573572742887891630670356634950851254175169871391544682294712696407696787674633950863031570197200799466710475736261932872648547754008048404663178493013641335451864869069902309549596698309238040420389060347814986287661489480361488356016872435931455835956236596828712691022911215635875345839816734791016874552181783661508392228661547307614803893553126543406073252742175601581160809151376453110882541523104300482203521320285776546463784675740424219393619357771870235863345428527836054442616030776807707899548741778281969432034488153855914725092492670094318740587194353479203406425544001630325782314502732563984216041349766487473502467162001736787784330583750776283452739751686366310392528189456043086096825658109410177262193634058466892828169875307065348752628630760597037387174622124267628751886514363132381631392176489594348415179506843773340858335054802451407330583577804609035342044220153039785377127785655886554309811996370535880677073785544616311166512364916843419689930222875379680545203363081956667796040944443331137094240517848175895982666087736621882344171453672123557868859210650193370827467244641770287339100853237804760968319594150189484024271467351917942267993672188981764373871485739671055077100862028027525336316089024804278846406152791677339884496572582323020287132065119789375138750941926641445601201916904715156205243266188217759373782156653563805445360339541272977440262501109805993780295141849661885846079888455163152161539397004783304460441725234738891513017457242416661897471554758242161912030463681684856707386639187764518737986288950321485642455925244698567818770746878626454318916523541161208636956694977580797140860515634452192458571210379111980907158103860199008288878498765825370813164529115617797144312986464506685024634250343810692530831737621770815251737998715432723308086897495236893254797645392348446560944523155771164562616535119314159744911984929042158037733311057235934595626553469806705350427009254714753710509831699744197243537373299302598114748647095628228064999041123949911492015043160318782305275450926715931004836638723558436908577393872280963349919922365807934512705123402538007924230068290466647942112633825847930715327023903980710922604805048018695503478234048207951806260140787689547026918354305428492729887254053728303601810137201779467241688912278484302201483238861003179064803587170956316086999775934896477837459425316928715688966497493753483080219297982487144277455656875205150022810786348464060331506907320061340015742419033448333086193880452409196282146533729108368488974241272518349425767314413655136559858461238017558041549364411044763036881696252140377425545742227246652835599388907096362296767885165315487375206647724187135117379877476234933882875767426171397639311680480773233813061849941193921131595393628247503343590553011547608983269326677369774351188445959015114696713001158496844778245870671451665092796121682890611277785311217713673096161744448685912963826638730017587474255385295790387526126694906201033664156528046121211251318691034843242643321467218799303062704914403993221644862881425365432612327660297469170930294275627800374050022359130208979639646977581827329248728638661043084161746354285640214744686529661422954243852248694324998586314952293637278080938868635785717427506774594838408248876561187317087963717982379661456689370804928582956792494356111562789590091920441452623019149683111423691789670632217064466757669346587949368053745304207875552265188661667095730029099458411981140216021759950352060962637598673877084936369802281641364913728817662530708085933145717214203819137573746220069949902925849686987960645791505195193765287668186333254999215894882922207943480291087936774888310007285109778210395969861082492039313735222079467201923660381810860693248439756787032770772448706388502324708146438415278005593002543487163665873409534757058737029799211657662842831984671044666904207422992020764722115879685521917681145721884936736279840319093525823447153259842078699058772971853235020663000553410474220965942001296733392952107036854917623159665685176147070359617965861362788966012138666951022818009454987846920425417759939163763131387456589802772515763059599848303637237614655282430370974805842206305659072499978046768029418274905544380427494895002958952605695434594150836623050195988821014199696097450352132792200358996327385555996418051645773050147818469747496275963068625252087682564834065281931874004871136449732109915982348755257179506910401751428766482775866043990977287229978335677624905915705251054068757912291063914711725851660737868150591219250769147680718915358904102137913026411070409336874459035559698222259250669405084170062174905566017250847055454518516826913579352171122699373182190689535145902442507958889440405843152975600184044652543360676834288405878021084111183557942529033341603040654730536829400611739079842237759594491194865335849190476394333234398969193364371904853484985573852434860811971258575222207195171766317750365000917535479120935232249335791340792069832085271552396228744349117601324387791267509841445633720049993822700318917261066292599297219385507707682755915043712789200483267262960013405417521070914258016490085543019797065745927115872206111508430132423876798497666333013673884469138956202307461044773896584924318166107224519338544840670169658925040741823754645848108279428065939330908352045276935251602600764448655629798154593813943720696972224799251658364822334123226221962106338209596345487403209830729112380019136715619724396256457370158080283574022569663661781388989694208449798782013386483126313141730971174010549771139060217083717022897679745799343288115816543193525011115351057542852224934514769652416788439329079094159583774182486046205185138290579779459134768425779355945116932457293150144456792236683801905834472021635571789322744950954031777435181551915072517029352422675867494844317092547391518464616618090698881797122715759456155235876844078818608229635255957567357433196597057487710747418838501178470948185650329261467612244527547784921963874337303771316826196613263906258759371092890250311810313178195418096217805829503163376416927958691094111010818069813736921673402006115944271220556451275206392571860673223882428831011018916720400151240238204289524830158425227535515697956533385536200049287307340446392500436795381675800407726538310035856698430326579780955261264205128123992231654598115658047348523169968459335919667317390911735228972543814130093159247568066334633247176187635155518712971574889390670269561324476181881534100242102830613431644710551217328110790759124252294189103394262680154082414717249022986125319284312086998285084511179792238706495756502722976741952115149460620885486648436023692345006840866876675876205490896375734929521665639345022591637554289210227785926604428936587825998282083907012749353743160890229180987339818594330864286335110085422705923931683125156114716845477556036566710014030553734851765421868234154409616431988999098423066772266478837551947427281594124940447320485878521331280853628143252273185599357103231883957430350910444649164766166678704881371580831611018505339358659629935028210295783836336301436494274281589760234443727319121283145730001329076276039793126772043874678204318732669412906441354965373979177804689124043816377062813027089940442555095576340975106344175581601821717048607066940150592605732871140518907399098685673372608252553650153951670176943217996473998152796792818091104856294461317249126588607126723419842369494817009859424848050758634895998084239032722821684969911805184682350721466655416854896449404407461960715765477893914353945721620216509230118065262093486869777619635211443374544197939996558562898978526091584390272900783278963423194174676338723483359232033314568790287985670521026176760031721786786707090982758585958736892477994038034959114196346709134078695918491935218656542249631911886325200948694588340085270185068388329252157275961924146962760494117836922078803642041245547388646780101475342752078689435125915722459850969143665381882735596409856295487653005717200689390296148439559111294927268627782130591803745882341550763340496218703143433821354823614614819918548672696555486085403665742251768694689711259002371577006312764343956127557016998169203558558234691613345215331049187379538698687356862722632644131667136130666572992757466004477396180998180891227902593226015674807722409712650460768643220968243625236938632381030542498051015619687637134438131508149707908644581099064381487609946398249468261591749728677257253445163244954776653687505471462239662225945832563436199098639935426270595892512042146150558782629401975465993957568636978152310282892181042553150683789350734095150558314687529893629462313769535051997115945384563014670144815450436913361905671319407456336812646571320353494811864192586034388852123247448501648805137289719166239293098533294730261574894247950780128744398919117310011647340591731953758564986746481756521169152635531903770261090676828816939191053634060672860840651134241252041494173740840432542010105950458715313538531679798900111067274646644532293635144269844168717162695257772450914062508334998819410241024306133431931066884639172411449711483081459944361464400936141676773427207728957190606618679131904946083957718689654550414338325886380640109673841659394525848760991165372349579545638789081491126192372388259589816947757707678055073325711988639234781800816713878766284699737661030696462301055420065703348661065056092051999309489591361150585654907034136407838845992181106665085815358806239760610852320095934687880120988697902222379580989158973867604135656954171050673646245484530268331293911601111777651825947755218355341363254901488259614221479527232580889909959874752968157865820051880570103794822816979787315430684885105172478328097390251527219064182566705338202276104295009144386858118157145440319271313568081490767563911588940499400095618740600735098084269367466770940420306627927207005025595296691983314040306251103075907884688623501297766406623389739269602781698962578075226717173218148074111560763372345058119824897892965916663422660505344807616526963922410966761429356910743086035607464653308429421799304920031039496740920991754850139194313691997565137802274478285780918614871078431892188769316799119247017948183725609434046692397328354900323260523482018341971965061462563492069263896210956835623351438647355256069593082852450204217220005044099814283039783636263043384875425593420563133068038383081226697707174484740366227969455474913934042500683585214585352092695154457267389578809032330786207334933605381569853911176381513922138117006800849690755883569036257076184698749930060551585113216456013162390510199638657181414209675848652888138226419280036469027946131939593503645070170350560389315044427023961772813479619436809123043354673629298634741593140351091364325061826102804032002938894355222739306130369134737410292750004239014740508375660762484889100832247501744627300974841684728962754302285262312811902720514915426189185831920387798539023068796384605304753970857822158582630130864955959664724412481756409306233671636628690978547502585484568642723780538145823369598177773381861012853889664036940489500743009330098044121143646168598744437701512592943190887875173800658734374474223312328610366305629015289234712782409747998667900068619702252076668569649438676219455246242286575493339742129130416114528408561842457441869215702850012816009293680160672446711952877187131160911784527294648107677806997613296345786693412807752541459780991697852813379356291601808473124780201609095082734120752663285164126941681988616778308325087191371739288038126744765505354720306240910730299726481022884608153386487138679497215359837336799795200678246941572402618231123400495280761105532260737866333990334493159987032901985205320427355246168539387337740433402812720337742778828204621847637821076571560024508929195967360419012823973808982028501861338021519943003662108955933355501372188779012815947596888310733428273655676045975411031604631883929854558784149265884955862930918925956832367527890595188193358053508588256487875341733434536642293029390600646483327574727843886873650487120019947562505286608120859361127292102919953284200470487208865569640148896487729933999262010295994037843146692148095229737260720780607252538252886889802452975858034483169198727159505946876367970577044081822149836560655334423564912083257333317697804057208675707394344655703153723593662241816542296084973407562367722712949314516632151178952891865797023599724556287672703651823890373413346657427883283765279589588928218889891943810743277870639513394306663507949688271709400948255585159652635526998204474078269852804836242634575396199131627064726428125132770499674434215423821233037073178820032219674503720634755897116432870076012643053887018229201844642077234965454164206965824111770595198931858611383766244599557503741753696635070676293947919203089815627357426986681457963524194371186935836288144560178474382643119976152388601755640075213866762258692104023237170433928012058327355713037236569600529111539818963130372548625975153636899451908746489853186373110284227379664757790082485155731993317953317204677116302995450356982526197372419868037555266276973939364040411737535347854067674772220542758613930627491604142279387575801096589057807868136680304365760397113315461952424433459083668927879027251449861287610712216614882424459665838580614738235795242833701964086087611386945943561304465366937483777639515311151055521078932427157129832944664927959754950912681580243324962508928980381322735311910262417582475241538283062144031659389275405575168778757164706608850970404072647148287265243404027550394137138456428166551358197245549780961440486086426430909741052179585367659888594490248559161755967123559733394971181482103620408912357264059078558028899977709545692967888586812064859123110200707702556072026142431480552195226037680003237631587332241932289304340452134769078354005937777741151082066378646324801523789740160150120138299632211549036995427086477721471035921500657070461505760678175079173424170648455139046969707406571914692161946325772703773788439704195471982164324934052827731577081279005818502524279091735046172875599544611261806041603459357767134010456069679862077581488829119209194628490192143771264963099246274227525120859845249402157193186494769998547205166072003879620000009360154580534197846163053730264490634608094209990064633029081184540270459738050326677789243577946930985128861748559584501105772422929427688179181796466620761666080476131145985282312418127121725541354810690813851826511675450911078239811541766889326999812130958577075505127043994660990997485292070550430012484885916102869846251124217113021695314759777797820939954132601571848756926000083964822873666779992958421415929435673136330309429024221907428899646696854145122965691234911714785254571662045302559584680209410353361246114511712914356944514192179712544062376865536309903855483201223277931618473499344032547517765038686450648017301590428101480140053324951081889278334221370342054012588770688395705903455574939623374388161025475248766623439746757649120065364366306063314242493462437201308165185127621363425689642462729458220178224854188244504241321792433856950887454533585876572617601324050302781129744858897109434117616739957843326958985833293083570717784489651622829355514758000445083378111995571005063519401274624951316752797053190222467547869645567320855190635784688463649763090153882097848927703019340462823201148111228655218723942655207427135552072938462630866557927249372307256758327191449038240549993768051496587179076151586823607662392939602660924161767078709809067714283073075557868958672620784732557974553053494658695529634127118157039658273587926713438677657011748388469112334462439192839518125996024005347802368613852211133972949317965612207641526771124978049907298212933539092845334984646570526526510216489810645022238916435892389200502971519161887584951709481619527769430878805044785726622265888428693404526082522546811285670467709582388019447326192020313501907002361614448025047856865624415609822720374047405611120218926511974967137883014071759060795391172651105879016171914853237077704366981610794624577008513078301101849102246188698978846540180630616888382230376470342656908032766328738717805568449715772869353673726890393082532585530057503867834474017734367902157552382119799909295989583594282038275620685711690018799019612745625330115452327316460925875065019002627671250107328858806099409042291758500374905231685171871775511418443171206696868051068603721579680607721038164258272248988017727823373797278752544385505457986472120416509954615878090400878403666726797975125577016824380423768611443127246971968371692195306210998382818314688994238672286332535361641081267542791668607139356875467094597753494616927048651267569483504652309813105430484120768340719384263270293803266235599796343299914706338812257644283818260035082803244994231118824161069852889758334625224251214813913414512475349053393196187056877693808724308182852108115876637944386802847462125475579159251719147800167653943921690386487056527875573607390776864444912242079954601447783168394236019373250201572793704934575843444408623949813295589423160327995116854860988044169702060285094032644377997598909850614481483322713142186588598993950949571193989462875577856510441029728365956610659691325412487828179106092917083506843447454249941098445553149605923784161535042731824920381460787800433237120732834787218001766578482831869844950871277675442837368581322977421356460834907531556564491149766945907425344710492389659714296776338981035033731174264245152040974021304241511167081702103695480077019802808019774229605339608372110724232216467011080194815441401896158414984900339387574075173539443273557573333713282518427750271222030319845131959856845981882123714202452333587638944539799703292613961656017939889154136324380857974409761698535869254949736580599016887687620277004641034549921356320776632135554123524528561352298428429390332304480741252958323329304447480771273252285048034727830589450428267334603782811255455205521473633331947300170426600521108601490475180279319890500229161601469824827303880318835924206439641361091733343363613113300792258238296562319889442709472993725659474933546637150418230615107739630178308278035630336149167125430716762791444914669238304989746859387672336630064194320710142064421718359331041381741538081488632696589574498087341449517089001800318136461430205174991007432737623797420854657589031732082899738408242370168277168041832327847276443280845027944418836240124682703160524972842673527495289271170142133254668488218800448365508337227091912952976928770712361179066901070397586949201997594557659134485965077034645982691686351780994132706465922062383259463253647404006114974004000380670741543911412746189368840924932767623747068785369837600239240528616623111425163642112293249291876487252407723197539421978696397155365853573406465629695569695036870288734958382108888338917470702248094763121759330543066311477758375482791889232034188599967886501530522983084864475135993944978941675401749224536181357258882593265545528508745342911537674165366837004808430325271728482835039710056820885471438346731716832354948337365261829043037909877121578521253661624918017352412739364170073787898692998800759456657308932291470759518087784906092696793568823482991758857380623676074339574865012269914391421488445243274442095918090030573284210090753095138952973196588821560542396991702176496336297341931422633137823103594938958860986552085560452177259305838954817301832735091079550300454880432997024815277516152346977014971860664880249796804844063347441602629411275581725335648721248681371311849716836603442578195854935943785344485226927972440233397448396745097026115509622975603576131809684365297411484745429220773033288588661046849547803058233653883165563953591126736824714317832930376833672326660574318783273249244704441763851550422983493323056004572629931673049814834202097343066586521026880741884737480834346308490553910146693070159795392740791678763042635803299046180932346950825813611725744146067502565527962999532009987742109085478658242762701933355395630114845893319647590518887958815937751734398167605817386261793784366613365215112868405626203954071805264599409125932363711758974650330543747567483411388134301581845906817120327858713114181813657317713593760508396536186449479584038762087558099767493348905509242369875466273280259548821561904917510227022070252302193264642035244980374403897251033835371399284257842946620889862524716665828308711980196393172035092216846123031650600261099333308823128694467345432865289949152096240387687703551272552865142062595836473590481446552096380386453147646673453486220615790878641174604874727330790468679209636663800084614433299693953181357764870238426812253894173798437307093745816549056580112393475898010085131606324150999578084063662675337496230925245867625130686613189488712700685495260567885933984434388445137684080525225470003806194816772642637994363693741787803081223853321656363859230285921384075775269912115879940452884764082806300350007556875786464154541097231617891656267565482612268552277149687400734332094038214692250217340835310717600341981919853843034530539386205710102506235585586064871973068776678353104164335286660546185622274692006643967612109633962141423902336837555946868985218409712175038653114280590855926401054851084060769660120673987794695391624440891263943816532373292797816020427802878156685354169429773285127197676236080537913233661682993094782161055454846785721741070349181316533478350357286355751742716164586114468088732361111852870842289313742416114692941961099053043451424691727141023126887787322217941264390852592154603711353559100068168159978129733214302940826871669866684476036736351350579678002137269991668396835822727172143460890936647885292292606131232138366417459545338337136946885566182033369447781287852870952832004369749202585590638983841711806112371360564447160720275074871336403657779103297768746738824802285382715702426224921373730638242881253320735722401578484270998993738093702677598923371634089421163520277740892488653345073117865442746630163084957860946533833410143338704607228104237688951354706542058738655177332695343388455061158318373337659950891427282225296722888817073657454651384683055120406308026891851323314998104486780710612714990119458309452809953754016969411329773503530798315247813554234345919961381813169790693982518731370188559901177156239523060011347062401402099781823636106792362971107803315362546265643937505001054867158646118265619159424029541784868385740091289492221283288990525706132417381225316651877088631038639304942556786428356972846834804723299067150926472650389531053206471632500263263018853863769817417097526090321820955255637568283049602310561229147825712952844106050584862217644263977681310850944184162008285787132899992207660740363368636256025899689417396493801674352597931239928203683374732818770116672177096329731136379347284228842389706308685606110043565469660189438069039320705624421455071272819667363766642610320480899245450526889870435017687015903055229210331450981466569574696376137122934774212931858281034416390892272837664048409971387541307781319255937927117078345576046509644903832399875540875163713164882608376478340843790684760306144998268816293258427287785745713521889620398607391201247412769235946117775044051184911173892175957669287413288933945635533916687691170717570438816463348109808837430168066496431802915403162032063151959186663599161830154145260565559810985906366791406657834031833891743845411965488946463023957438879570631036624119564541524299011144049473837074180349828720735147868270845548762369574898260049995658648937659401363539878192064400285129201849089107683799964828156725032764406384754334758975449004952511950865127482829409148117275182007148326911946188305072256643267188982368237873515136094085549712787450636284512605429686571492390160932494812859455440232131371722400779315943418353309357047226713300388322365340409476721162375252912874529695002880987956878944446450920492581421391942491012648636602038232546759858110695613530921280528986336994274581170379439118192519747757614507206554935223823529641522947042702173948239879533479439675770573922377651743312790558276208057465653644813810536753229505257632696457957073422185394373547279248726130005328373703671546257044605566033106186479548308645190712248687194602059176666003964086248767292540211933353361584508446872540703201418461514815920151594871388307671930263432425719687568495409600521939652773564472187311739048365465022124008845176178207176235686345784890008582518308684697103851680104529441185478539361343488384359646030510023600649572849599719330178673935200529441079455350226892922598463655827582854364166721023617435075533588957552462403481929328105449787184507799228187541197179625002448914108913570628778042987050346056608953798805324099337605371125580765605442045249185375204971999385089224236363608685210456967017057010124967806295061761283782674463830045122899237840785240705465800376701951592350961048844150611939623467477535794173056797567294576661270114408402810945586352814717574772525528222558694788357512340233537406574196459178295801805254807962208850016101009144221967779363518703195636816476483207557460122667895844726890387016039966622832957734716044511776675516301000768153280054240289017889239145523942984455376043166527895911774931126539152969671907855103261336038844010224788780270821797569587331320332078794536975364181395993474810877030027874699555279998075444660681684226832295045227748788689768313005320460483936774764719103958046453779518371535324731841803954251684823134853047178843343368282363282630404445789458097021514570652942019354081631201143372527860132133884771448252765270570107092542749947306294006668501017166191768106692821575923905682857974452268713109795503102351054974760691933087365930496815983137928264249741545493843239887405436487312261288125591563682481602602931271395031375879434094627761183575198896186376785172397031920136259866038154967150171543924050559336641107153606080584932673071708278243882297612282262698022441959406374074027323213482864453344585518111189814755267617381976551160030431524969346384496290628853142497201261450205555961590398624160224586955731201466373515227877658431914963974987737562773708205194492347438036917144803915703495947948822572803623687568157611449101627926050121679561793633426909763418130872159599893212532118063407101126496336472558547072674196342189600335276118142112631278600685913836338562518073348090948307972589991288760234216184194627579697767090290545788755907794713855095279558158938300398323059695357782582885958220469547403260247663980658312017576954839521524831976503937598363794981847397736574542227130071046563422597726871066306917829234152996129171464089351402764982245324386804648427139486708382609827547152881812083764624583406128115826568352533436494525628570308801024759076961972938901750330763153965863063060994440546281188324529707986870788956091853636445735624027592936351797230048878451342575685825842718558312234794443057685777834025384091481524659428977780414831859622392552453637261220360137788762533698209612169160230506972137360101459322226860526136414079568381531007631295057288338247494325178934055934666118802469881519023682770503130513793752810208502129521973230842300621866660273305713258929332808934867014129593489199314172203733790580584645363425154078264905666535880435960936353308865012826860905438408796037303889918902210039890154128266557429240306370496256444696588015603248103247831225783372154976458772878466899820869487358665793047063161741947266476920702713556593379989559389464380088133728693513210059202562262178788268467729336260757716408452839575694912407104152903755838938004210391043598852034089638247884405756722660229622800087908389385956936105703246324814708267157674272484770251768305781430216085790379195768155880568791532719650337634117321893040216997287105554775123903135258500172069194459133491909950261537118941993120084432442222397192642496145051788599747507074362068782850408190849587659897135523594742753012151969990136769907397649420881926258067910259186343945133788284788416042922553931571474183560221406568959597194690746826583505511651638607091339832121870377661922578337670713450559054594135113457958743901159784071455645989967265554982117011545052710882012980281028815347221047577318388058717402093344649066724906188951075280876493485627478554237015184558775116152365029312737654194925583615841874359564667457996682743479252888258650359206721699783040261583977504402396095001737850863054504658333699152325603529259310777399000335259206186841069057563722051547486671933910610604728787849838417186805727072166058023958121566938170957438435413765750448890298184616182633862995588196205571825235838974368028624960752484677989541456208232728443801208874322127148033726657193473172662987605375163649328816174374881218187809425325113373149134866637152028792701377033291958947022554481707861719086550317128759445233096519308536366018040145318805705359291352425675997247398635014185343959046171807289137813092324868836076967987761541057251256721070201949609946483950866626677667233287447522822254443233059312543699816003982413896750809085614203701262835881667129788008686718864484295593158412173637257139490321052829565963099387557333068263197868338827254925256286444085033434646053182359370546601912759212588408211144902634550730242283789766025870825581131957214570276379058387188613167772012382360043323243326129205669407466638767910106543321093660713410266761462267363044763397565114445998824003191521760878351989227488464627399238061317461230809413528923876773267371626639904987746750086635143467054655373152809170425802743065170561648428585809754693334635437381556892508032951876171749894579313361458077156646718640135034004889449965702323724196368568646882330365626377572953871614717791314957349430032151599114941667162860558814024846042779839976969138024550808760795685617439750913913978561378899588208516808939541139968679250204607677517264855814938449553603892209741180441806050566854669383650640477665142906988684104622687679904814482822818812773165898832662275063768056893987670440198814321105309061387068061723770342306008636764691639920760537522855435932537885600973085606345870833881382440408014795749181560577429793195287262865429441413332393170536349444593798837198102700922287442565180685840815918855454570508601176503403984163064004511909412040813653252530923951093693296631289373602550299173471726928731525928983001258573691300146851305269710686064306833570011176723548807268219915276189245285038655802260228233732967757606929608077257092446362592749637950780060704674152895375318496129205547607168639019055043097557484762356460124513487499452384422765459556751834318064008894235635788821330713284703207201788385892434489266246234769034743884794299874639038747230629624956953745155527859071887111065228416829248421987765390189610988243102403481013066662208019754744918356866959080002621910879736030510836769454144391083219866228386300634788391824294251635413428621814510575539330665314685092630341426608767021703298100453447241171239057097058553338825378132500030353148712251493859553265132288047060955499285218570387855884136633476177600823964280243644675680271398167776213429403972656195354839581685649763398985909883832946726034592998990319009330332513252037312265592715258620693112116183209803007579109353853730037561801350002425944602503763266284547567442908480237150753578833703181395334183387537370970897667941282058075308512809012265412067184279803654389356742302675018444951241241852218451952416625742888488679669918871111181973838986316256557523755714412298349682246751878622467066337364962763588662417108689860976530044513908055134961604474881063044974312789297589871674240507521656134749673989726880718103365634362525530020138938813650725845289426092058205676913592692087731790426170178633418220863491096661561564528833376697426237514529765800036889603398458223988333816241625286312053161082572804362275743881617195960599292818524475330694053669619918373472364175849764143175452512296110926959319106212145968211179834193425386688885800659019683395323198984924670226980007599776329748830793761886816453669846108502216367603962274166253108520286391324503196393387495264732393393114915864672032152320849801965476569276874805963206088766759521998679918078719791210843821969494316328293540907441307069769401018147701839456748454846804579102675958953636461377210513922123201605645273853404732316370430997915484353386088727487121530100282179071783815468585644310465650726404903684498396868479900060346689593802796659184791785253119813215103566208746917348645581581696504460963966307432911116895355501127851790902061281431459657675603576141230185738143053769630155722526713721536052181116813893810901100045260707194809537310361152697252621958499179320479143325007079956147019285384479690478140405855075959637019375197568770718848730430312822551575431943117554333375213510666948787185599864909561750478732468309182924857145697599565259525574058446531329412704097724586976505314425167541603094103651920311969758548309142196418223139384572805642857799905773744203299025667306190515204252656688338666222553208307077691885048313884946409805589270239381510678290762755271037631130652019517200843280493582052580214312476516416437030885122868273134014180384112714543325231456641758496567947961349895584714482985600927734456619338545557022765588158727534057989533839367187188554547936490953408195039891519867215373753779904220573046798351650396195853988478641695298860804817762613917729416568890554667470901790596625782572275872597897723647348966808448069847228961189270811502945151603199861804885624383618432985101959352967300376997088439357184965979659653795856519291174786628234250169066143802999758061484141092702992922704693619275684997052335025139505263379820160548121428066874448040809433650592290362303182893382036254997826818736845810162793933652567812778370101782175386938556390871056184857987563154494625234673495743991668110108870753193350665214899689385946492054090386512159317489662587649461418112528239481410540740331063675033150206170282686712455366541588858103661578599701520665250191382756749558111834415567610067925100389216358925727462922986362554836613959686662181746068122952459629675334721200737743818797977065426784354686853919056656424175632887587306652233779098921756512606052215848865048570876921433221143569878664700707545301006302342431420686557293053136955863312346943854834572638345269103381141798482827977773793276608397761946613371045573123751664064487758461627756433755448444890911874399829638648361029871517469900144713126877014054671718657151971734728894601282708558976468499542385099400696581632880265860822728076533981266435091063084744086315446287668381307350240066266306518792951784832358130201728265646593269714314535775997608870654836697239132259768045485962223416896390563462274942780338881524692257056867122740271204576407127276615133947146866818437503181206767381741686074684042788089078414412744785870698600989683308495918182152244462681048433524415224320912806096634242684461051938828158870356386090969644777399943259946930844607022890495380011526739821233877244047652547999043604596305810211478676292105752828140575019251331559245082310311817291709185296992218944830436703421149799866264350584284600520539527214677506334016249827095933559557008529269755034950761891961584403729097932546949391412444925622362244125096655243709223614073483766895862891658045072898039400095717804504740684221278306129948950388191948950694341272323013297659808642379837291310781413628105205240381162418430335221096085391307052674037571672216268743519966914522440498955746053024427240572815009567756700622256216877466265113412627904357949573214757244004357021207151065459962476422811494702147849219415384073912721225227692216533590139180735904030009732129862626866235976358564470763311887231640856734093690226666184119830570002208048653554586181749440416543855913500378570073604901408403354362963973658430842122598127119553679254951544876315161975666824829741592377086278831319844331977894681598543540903805596274139284213445961793588900126236297070792423098148811116919798018302706474740149025790565778665909459205498001918304521580686867946269746237702476405348796461326592358038474219262712612954440007297705416193324594932566910611870123323493919597174254087337196457746180590069481300819279029418248926210960918428581282727675602963743624122473950860009268848559461764435358743986714982803084271131767009272739654013586939333064647410028099842745555495911635200743765296958508416440407733652933675149934110479830160312517160353196779315359277096534966194466490028596356554388750404874455015290683870089592512908637464309223602385583010991401718449615809832265392934393802699657012352582033633902502045021098485612182008643234435545704084612494729495951767266038056901494152300070126050809791513006877803451278174416156861247183864725981644893233610039314771626813991668358746991411825923068638492291468491177820902905574537330740544786532032432008293702967360309943314906973158554639297194883905369315711326395759854758764365899193308955864293786382431907918320972304583065256429698425103494994424674001366347945207566094788056905527763290961396846228332603562302891868292471556910464166987719640683550661820957688978459815599146327409305725845224631035264130253056916550350282245192534442785184204954027820171907300236253918212338116860516532398353907282717154932004330134798140162351026000690879883047316850278307025819359017146054604956394773591412641804697244818176186173621281028910981474970038920958525263939946079982038473089977878762428940007071964816741007660715648268794419919234851889583276920048284147405643758336139270863249639228981904050180174937612234937431113239731889386909474420370510086559408063261296428175729517396977704771359084260558957581745809019870483011611480498803817339744908964442380202634754367809483149067030497883734894764354940897445704143661287077461705418185478805773346340791275592981480799653684630056570035236887448500622124169160425266082698785669436739277827767930291442461880978815284384200943356531826320082647060275726415334372720755238265406311659985513541484335887108021753615679945925003660541856201412501924572813479512389313893504484337639341426123525678811063054522105656449298311138449056386857711002331858699704606325793181192192890786017114718907535887364558298780565632932645627855173732982830034675166310281914663737642788642903349660953847467651504242847832696991879978008636045527009705043586522000881317317881302434384497250923992056129762436769659526296646091842088014951572136831541115278166804914710554831924340723396040474820606215766032043692853938863786070940030312306803847080313688206853077936134388009104841721699075796448054362241702047908479341407119874834492212144788977901414458385755080386945040119719288219241864937105280546967566839003257030771300333700285660694938210017498542166754902613887893741734124301742145240662125533724170921452656898623571498895084948469327630787004962661481280112402527234179074299321079190492826570596013372432596352814112912274228835819736255198887307132601119056469414309054318682541430967269925761115700563665911619483460519029569237220839463626773864468048269122611701462413581295534101677806295590934741923059353236901259260494339588297010984380302410813039422208460187949467471068881846923005200878123264435999379349882569792115037296541599314607934114367189216763332813028208326248012423719973258149922898459347240900231218706864998358818183220506068865387355377243134625853832136266287852888725221304035231280884562182378054153654110154602354800499056853890568990120045013140324120518182248320094038273072089030505277218695307626992560454360020729986833839095797736100493381796393650575492326357789901885906467716976584575044510250440994969652307040958053363562533258859144756569411835758437830830704140846574973576200442184552323112752301591839196284417927642113541043443146887674310561815517940360458897731747927584156633695241405575972690456227608370578584156795889025450191295700685983904742806975944411005565009558037328470986154910759015026245537109033467893845427155657129420048216561650844987884568632293052079523363453076801184448303504815328352816641216636713713058348224593922258040178489936281365883904233526045280614573799676885244218846046996198605933106171870699506320554105810450094438689203532533560347093035431845762112049497580438956619002921927452649256783494168889725959244181722719449384042118102134480250034526248826340685440183464227065692974886754579445999407697501777403340405390987476886028696939148540053073324714824619667782137503508931513847369011944112304361652559383610127239967069953124697505993410859405840276938278937197192161928106666487552877968350532526214821412914482634118872492324863184002441406614885911755115024327838683934069293278202415970897846284685141856140017752118380261200231448449748369208082969425527666792659075349993889813427918656432411121458640946560911156907504539125592071572955229627289081988398217767786765953012571123065628623609779101597764668446840600264381195328468719460311911841899114315892792225675989981443423765456717081042159085420167855139482055300964898592822624435460740631210275171021937190167750271918737341415076359299680405177339715067203392211126767474186294287289667987946549302904260462296965696996299728166608256041410312653552962954565954796306484109828433694213195288776729314896412505182856320079653458135240770158515933184705989247639472484233111037984789447749189862439062636840647400541772935527895981185777535501840413999435900445076952564775199305675125063251158128408352359868125708468474480705837135848537666676252668105916142577345443019315290410517180667860693010136339815786722133535986639517571496544850938998691964569651700738450186403895131569178780243425224328015356401618941892398551916675741582415981010300896407783960487856007537880171576009184266379026390602734363238169087195341454261292421464472990225085766821371681026065298408258348712379342710211740638992808698256579470300381569935563779066128058061834188362330708677910199678494019903739093361109250854165737459227022380520167794647289925528394776489838657532127573448823067179901881639906894123577235126341738402638256824681501127305959838755312272975350431316362870199002624378923197217795498351697017640371639914042999638314973486691320531545183049710449426184135732910148078076550357150849801768384850563651744284049851073064372406615017330233540143052428035900049904391647956330135985145562412336608406403201538672609940685391142171682176594502013337079050692975497600587486787402662574757551710848918834756783526661650423527873463875695681925690806952171339732467028351090897686856085347355167623741509769644541411278447666676365838625293096884055316967801816922014923693123938536636485518682278050746618647125685288029707263151536318206667302939610916513406903062846145371001388960046765260447410738489925855299128104632406566543797704140986828178237408161418790013230540203744894312238369677687786356463967537833589562430663048888429451844867218825011371657436616867277788421023083507806676019476509557916632987058891019708532778928812746248613742800870801754619764992131546765775805909791683850168106247602126266684356301177164330929109728346236715611983086209062469335214763601294769157999207795025594616354878863017966820358333372570350290122653132521354926034682099825329152146527125674035147841937534156434739226306966662556684073869639971759734355263717495865239441512137519349019217480012743039075563173644420062820930212526695003700778458276249415520291027104832171610990630848150552136159756827461672933862687392439639454657478582835089121531495951724106846390180044881847763925660849557737306622824257322094145018068514246020288444809237186800893526598109436740496311965114704479313429576215726639547039064242318183805020240872807109676756244459657614205298598420604066121309307842536789069482975570136931460182042475415678187559995663030519036427324643606827612707803102341743747076480436380170760558436062813962692246519986620141783341343789611019707426324227021253422404553710160889466812522634140065844881555908685068015920773373517279398953502910926936133210330095182804525306347185942125772419532958459821376121530300577674395156588469204774082014008836133298014694334678212216172334853737151193292993068716108975720498062071099671251191079515801785119746002643738067156315237433972361457993408261665195922940876809872592294657554241919802639796440036409737151081247299910282072976725380875509944761846069660377198343365884729990514249884848770026448581856467490293515156903063969174183164319586714079218638537503043946757635647930056530844998062137580235164994047444430188621556901566824666334415410734740634902171615916792213615706288625439684540450175664851007513895992584759453777286736048981495902294514304979355935373678437471874220362171690081853227515901581317178877209366581533974873957146333068967832243999967420411545607536901223235547814473949663755371714609874390473710417400289229155400389510111952894937317264671900374794118435546560718409235762197849862087187617153121785204468079344218817944391139470406754183187912969429465324103161151853999584531945225268054982272598996273293975599487473608280911577500986463844278414327033365204732111358345939590900370809540841988647889656809077444125063790187720080450142126228571818382775100919301643947463439575641698145241239231749164261357404937607510938474681020974633311677980861270675127595124937241886845096892502960796148452892819635296656962756748188852132760870968768412571265711572295471076104143198189679015080984673701480429947503632185900434047217071546782242426164019843593592767150305927800961920749989350736109718913058049803320890327581393675029757674368699896831386639318586862252158040647136222315639771848346480151917116884890692217226398000124594524133686019403069229475837504205511722025857525492109709489188963611910968538584045819448850012900704514407544427274717792894357920144147434733117549439013221857327026241776767267456558684553140522593014549193231574956618143021942971908502264060700468053316360348696651331816000080744040044586927195146351531884795118389350978785860003644148471762444965308468952508870845715971909325501744606412353095668988997665878912561532966734587967501869960164557148023770268141316960015542092869957042208651716139450220848360576832477265196759594605840031607661140494541143719156788628036954020086231727913712002465966789721126282166321519327115013432052587413327011900787897462398584550018452938816014135081526549197649474254045010733652905410966444286433305837653120391549205243481892233403173157251035245351083998051276119968936052344952196109472842249546483419554948654630358500600977708637179117015145251968096551549661881264839946429518232368525415365706913016570269233233770243980141453174524866315609196302500258642889448438027823687511733298453160943949290304116883049991695160407193322281984412923768664289010716506600330577287897383819899228299749747098400964594238288209389825027091578745428230085926822581046731814944323528966569355368864291089082346170152151017614905201765612365475531361422095564742139760369383944219438651172677075649624711165138640787224900779543416607588024092849254220926702269273887747452803073935716117252208713817504547408042988576967681279614531588421784031724357578793922720237302790321372843440280840654399728720726045449233068963711439988307260150320165379083418647292398755329482381007559373108636766168656069537521454339343746154789114642781665951988392073625976092189609697784444948539404008692694256478142094682144382696227224890704777947143321486903333930602094133964637956890856832990818016085081025808804344877366290190881826346183999179254019303051115044263184699709644865049494575376496542537046690264737639086160299090444395210052224367956918322615366004003391074835822899023773822341109510699034204015726070315296383949387689503344807795397050943284617831231023480935678674702524654736418225764752573624268174140619635779189944767923369292711741224045416840811192204180872303801811391569355352563637461458194105984410695352476534082228622323873948350236943719508267857281787359300501340053164957902069972877940967710527402079351568203257286852514077097766014820265371114939916314512677143583621977274963075033921411740858887134986922400823667807407466143106013264737839639353046695282582606583420681482627016336436033204199487901930878598285312653549522324521288755603365678388666980527270704727335834528175162995426087284692616085835458836534225232531518323988852267996032272570781128833836417513590731035560076903047362157627934333564165819954459498821348480303185797818181767984908373128066003832717627173944191914156539221539892163057835174853444285322104276046611492108372379002584048959585070210637077436142464475872742283037820632047561964124666048012634045518667917020901145982326241066488328245419448185895740109359452118816876496743356519269748126238861046302845010990706869808649812257379180373118481148055081719711593615431392829563103897713910247302798908860764521638712359302515583818080246203564816719441115540452219424426784628427222137775623082332994058435077683637443795392415562113370021000556473343442771086837429948375575121908262751663586928614526444849733418529736189455757890770752384044729242181781398884616931542226308471861533117978713040492835887106498966782091611182910905573126243378485495180262914808763446359048922136923329052198173761995950367267805978613261941042925286195325810377082521622148255894892060528827088542120458997214423731491114016255375303393049062896702154840682941123814134887565112182242092044042079608000556141156418598971074239249481396620998288773051304481743217627370451198771194169683129007452274695820620472620948555448073205262344098713015410443794473364261497539949201669623475967111020340795111358560534386884092038046559515121018839275840620997350520866993135242771552983660031951137811485084364923945171795839313697103472501271360782019028217721404003641296206433079299941103552400813873954916139134698317710175258815291571350372920583959587078894810473067873526382035534077931241717244767102743481006117350987127529283188227051777961511695065694180616420479751741911020437797302550111070413037071621739264561332381192277751943815947939838554464306991652473910387696260633307163391450227545709352672793037603946530754482699590570127358975626414192510077129874961123146397414312660653005971083407523259617345274280703677479461890531067572287947181515470902125510635386738931547492318361289093803053986685621009068691944516379640379415715331069490341462257157308599360746094043209312675166053386478521873664978400941098337119465261894786811013417922229644095502990090215419653923150297026945947966714855942562473928195140641904041860695581143757375834757960463467868115621524623409960248812213737615106817786538620101624908485894605298684624741432668935731237907077526010301231476031825676163182720646124366661683719990770535380865210334667246834148292175404708609583562982112217477615850184008407265263144158495673534047790931552491640368584463294983175126068951533101606136151970943001829990678176376481655078442538380582192773985259804492419999714436913006417298584160342163776421475748546334367679409077600215849924634329347715901701448978421406310450347044338861270431621176608019936771051045860079327098605523047923302809652239085030777467842930000596681180006745899080661339886427080340177454610484990984555524934025498155407102590357070552863122507112244716086453091082947989074756871060624934138470566312592643871406734803515481732403678935191583082221149255591693475366050776945526403473758438438126606268927043002860010500133449541729716494787921738418583424718659133609725765441580241913391719637099993900993071877898045185652700216704447851029393765068430628198259089361638468169030835089951232328457269519189376612504333213361341880211320915904083721958787714599581729492602537879700968776276653306372630286496276758506933453725117066550133888894118734308308229224284398971281492133034340398351280794348031961537246965844189167972894273236131476275165653958846627892836763556332131876992988111402710145166133657137493109240119523317488900459959901286789095658633541340269827517585436791630397614384856490697603747851335620350242232274905245372645842163379594821646701506516582203075522967008647303399206729621256906378991445802517821286483151082513761657636644496776205777172979396169457006899477676476316988281271487366924184121043264587339313379181518249956907293373763612597617645733624403951608140183310191512508050256449658724972428236769113709614123691223463788313512463633441328626174549205581086992804811891100106154292289307646823902353437912907593285168668994284846130307697606659027853894420496425324176713098151882212089908334774033953105230989728694013546619225435324574959396607205078577534904662590124335029074219373110632911408582863553252600723663396470702958135597225139902163190361431920066116567316502863243136759449722588652224261506206589823388806357801394599380828695765166380772390525452902633759652933737307751262064024113289463705636888705696018988333579405880644905312849140988789684137470045250345460179533823225947511608834809004261556244111782206260995480548760392049850768744447230642518183101328884769008618676930736188452081350830060712325465022819795375531920503464872019544487765305036432859144015949230404254251722769408240314606354847426323994321871336192795039532886115135348941816297308260436130104851345571174851329364161910221220300540752581571391049067303687498965344573200234031576995797707143126768526702163964520886559408345373152248957653563193387878111701398292931584621496503276273417450176769587865730382830387061480462143108697953977751502265158236562600073742840709242309830449252104527672326662972281577687200867790917438214289640171315448854994009184515593799817175032174975135256402518271651722901183241192852534651880329938549990584790006250814910344732340169887132992812844195801530504073147186836921160681016634173131687499411258283258201450602958098134907013623012550860043348616179895849180935295841174751989968413652504939054207990295642430545574659897868884720136207264469827503062052632327211848007481059359016949388309238215088042301783099975965392890611431900860512456594537464596986953282478649773956509778659633361505281829799228871986318175759233050659513591549255603773077377748478758074191797180623967322121160341483224369416697351086716030451343172677870461627821862171198541201465888171058115055221078012802108924647186077479171624521711530116105158179635088270448793335687640473841666516733333283725302978049382489695519878805271356294028896903637332915367700422190689124024309591020846240829132385164501757591491177903468615067103366385119055688019343197871071087577148120247720901231180303148897611142856876206741951062263700648910811582071815787104995251990343326474118814421831747220549513396702359857637356712302546847860357159820413165624682790883104185406769627931030418474147692473727736073246670564789553301561619955519390396527860090337517246056927325894232631772461044223898384428434854139382825235172201654068260325705381588595173315041321990083971242408318903520021806656678432475441776040696819980292736048330782577452969314559668681559775209460403169637148364987436534691095172323953132871909182085582699584344334427360999360081535068841055840441242306942378998504340337511294653922746500146971821713652161044261017519714478297073641164766455215445767862735067723267918060137505564212920494026331907369686988268291569678655945090504202987613210881114850372025120655225507776845608330287078054499471386931431241169235089151893914952767175342264990274670236376338078631649416298371677454433717062595688043009322217842305087755309969572848421424646517619418106344216098735287106978207106482741367155256022952285843058263592640337772249979278753413673294188173507901143448033004835954026856944409883069334275625525479488474103841529881293003622946051201243590879509784168091705308670330102069568331788341930798975890740417405323621678174833340409383139149612172045567297465090323459202552628501017296827826025404835394022318679590716099431506434905148196458860032896136576397920785707587647553866920398886914161493788808253226372541551682594025200192456557861620336590848689866847513904962772441561962815000448053344253008231383884367187559036215118725821957746263311744985612655076481497347117979941393010323581984958083494170198154257663304722400393198386156692296285089979630875064168395312742795378669377233009621881799007612806479662481647261516034326773628317542041991736128199692993610311500524908586890880769382840528385345060560795148197320601894674046940969228896102464010288483836096141847823551726953631866283659861835043860868767563741796800685058328393779787755135323602246460309223588461198160557683613388238353925313808726263658772918351423478513628216740841470355955290363220850910357207580503256509053437603163373170834020830682453040588344921527122173832853846155941756015317333033132055097259055333195037335808275577802352093468254699433925249358487740029305006024967567260508207463952595612935215894452354687494165458638790443035479335811300732090171496465428227936742401327131063146299234656839614810423441029086655753020809988894959116642997958121460387548273581789763757352574555900155136759338414848560537013264794875713149083656943872404183824649520907346720262584697899511364969315241378273373874278791934902962568254830999053706903752901243249995748338221910064343918655549479221673908085694985925335107216480462301538402868790546338594026164677401678396903881768396099353810817430429977406828835883116530733398852348853708127818129536255298696141016103167227619237117996001626267686274531796493402863577371986737221927695387941253222420146129193218895235638388447413361839485167736366022363041439023026659107436335176484743630774267477031587733781878488498579489680144712330553000417010315088444971284677921216931313506225128624128025058854317178709393307204864830577984260268354539899736160809010158938667018834985139968178099066252142022336187159101694794937442922419950172508029634789081709665016031871412997166367723296632617308189932900364459081849421828296630621340985837219421282291669117559427483951365504667272539271302395119336289609790011170513917608043052347773442270490874309929941334099858770609084818705597715540787127584729002118479062846771702985205550153895267904356260950633632112387288256449766732889624291175603025640166430008323760568443950926168822446691819289644543583710602819146664165619935149518586572746732031388822760896182526048690472761168197813509643279828726191210633299751804905265083650174607513089829149283250316811714084156596961728958955921494851247714211290985056093562970648223500180236865498180396476145781734853516286092430242844879205357482794298424534426017477818467526317165408218955983579636025461115999998822818682008485321650583489138010478436454729410197493687991899579088747453295860487072548122856860635327912169235341442131413438365460170923705327510452313974298852679836802844295473234849588748681742191100429830798553865044250640582689094107133780871369231654254859349444940492376679522933908099404214099957709706025701386984460875395563528292493442326615911201302964007899789699634209845427561043356579188317874953405259875101555113608512979412096711893738177467394554077437188273189856991176708577675643086839106482560615692344247689088074389878097137517206948112945208938095958029884950939954177197669308588885966134136257666969110666015778409384091385482311447486881599488153150079415405455713400984820432463821819074186593374530192411956166658320397431795141206864935866589847709955648047161897242895793468883797260008686251346884630099005651747248187797907826068850686673449665529282389013657218379023823824047748855717788259793428767745709575427600647257691957477595927580743469576938075459630513920154651851002282935507064059318709179349882734064608522624061728705463873496038653862720857608368727055437319565320123085583484040864390799693003276431842762977991518203523400200876705878865060982115970574719757929573157421508494529860468386889170352926236229944630141048792725272738594582100158721514478962122851366570341185319014208644268325840267615531212412139195937648194152711294584896605023733095865915287261430283795100296239642951136248450322496438869728754408843784817527352680395840441638751572115559980805381629609163950350673289990442292661211642973644876741075167428859303590538770820721912804955073985422802489402082093224903987680602681962598348319278158039261234553678451009061404500158734759383319446474516532500556964888826679232464504741582029870295514442908035941975281228072577664697591572110174063192931201275135659595504398688992845495562365820450545893925865727850776702848945296336924314976929226444884103377528518589240708796292140311603328812318135656817966551023287103855323440479309009184846278155133501550733104968549848711975975661591081274501883389224542305189323582528221855578478220933807469932602701990518862103207934691685595382188787018688488398562929798725911911522060970388851940437665070598950535501300788721426829654291972396951904523345028675574921175098092682294273670651888858308932622451708375848826503254173609018027655572089732237101335564608599205295916553365345279586569982115966180424703172379775175821766903337832719711489951641991265264079742141030505031461764509729369078654147128489871751928330238683729968111797218025239720942092600699347705533254224479580502725361975527687205881391139028812004102481020932246861226475960560203730761430499168988492951105097956584705041355026080594533677082767955392376168032940970418870995617990478719115852341630769452575009518167017244534593098930233930130982765030827158850038002939421443671810962220145443700131002546254903290663537314112473472425574146559954071892950604687844343290879572396433004755075288944196772615053423274470773247946814197108591321498429870971203113601927031130084537318268567705908587909782220296783722266599063620068622897999884667646076081866294520495547874406106143567349999282291529063631280587155245940278007408746164852415643028911588314697208376402653836177880426505911938161959174820521578598109812196313379491061429282669575154087295503414669006505262350734051710127068566136065511294817045301557707712153919022586619815616162128937659968380203957003163359719919279788211431891717606250824991756609024430522380126539557502050009030916520048167923426815721795206682580397083960541740652226096062710547214210188939657394055274400925603193744404157539805447154465191370574956542429798220079885139627831346717454029178213056104168242755350245271100150919969031213917447022232210998072383122027613736881711768990628580505275574147107619827068046943220037210696788253178389132361274683677893065820747064642126261670394747107917908479256519641540612900990150132469066782517066330141842855168458975630273109403531960778775971475613392176536313445920788770438699232054794345029994440150871161817475988995640965326379873350814549700559662993631928238280649950356753946791517440364309013716854638923890885647147581066254636221184690717543406033931560334273846214664419553933998545881020184683045897030784412425150142524469299779581144924050085203214167801181512000691294480069374144516411469194668487101575436039810295024886134963559360922743333782475684574752126884875600905181193236144007626867642915619080613847084727645635274493804022521889484228383246032846823278003424601069390764427434646782732477460930693259148206750907922433004088133170057681234577927038800975988372905714810774741907747729880888223639093701578537488787632983776199454123837359083844053891549240939503918882067862030606630133763996238672948327908762405261640388107583740780447120559810706123368959226661441112842082842614014682124354691704013850712476309506661482181649167782132760969970831298359082218016064790952600220614341614008880188177274943745583625336255407984771196176085392983137033557968172029562803310173664042803153579300023248195256099755002634296739167138658317099511119387279556810313721730665131643362563737930021415633991946193385001069442205017025083160654361236616905420838161110560750341709906013478577961582386725410219575264940311644675528654458999309158084686107295589136828059962754427875156167436692021727153784893305778911563691154047482982295879203516996035290233613700237294404969037336925684962806430903979549986175575651907111180942841810326986824058778957861036949795738290710178725989260893080887664632855317172833696241143513153466801363251325323650362988666700266395197975386627689458636023263665979036428573124812542575311859027166541806091853539880324569052237285445507912019901019359523774277068238240528904535296856952741228806174533422765793699674546148199781485482138719327317716609649196908289399006831708919749254195599795325449689325912669613023237479596981026674140157363940710129062730544108770458925922008286632065280541822331030042094118562830358121626547337546848746143983239190654424313876167338369790276713786369067040511331002730571905761714557603987190239450293072315234955438304467530469702870450143045678590512840385933617600798830414106217421991212001733589115875323978083588857351745008983379695986626897483639642607040812369823819099762724366243322743411541239753776937696686718858809366872661510218148550749589081065884885960310757555750411350189967834899749778435533967040123139060917110896827252497165671436767772635470129048588896701677456892746176567114149439175246908304506438707137538929736422346303007851746920634523860768277687436244976933500715926793223075946717884198046601914438303863799818088624992487509196713153376183933519882809613200594964122921770352065792091637188840785834321610558745800402233158207490382918977098541809370962223473560892837482702949985247666820436490283839591504398698109491142366279192716145640387053869347087803608242634466216061634597380442037916426252946275168615785434374118728469198523185158393359993334324314748233846182668767072085050291983244575650706173511305199414513393525505727818950977402846318538448748611636396614230413653351033510583875730408552944383801293292907131676878424663425348750393835888531044038415141296174291479794368970163520115268565898300411068924488781931729389843349521696514328635804633488843606441899272234339897920297961253550717597853169856614244908672143838792819347238678779540388244007527118585127102679520825353142886738839472086052693310424331380753460659288659847507115495758394083775946717715341420073008183115275333858722861868395196559899026903798531988336025506240621089158477672927734618414884209729821640941096215029224081621670992148560582010078631189916040033018147971723693693747722394428860331321009116036092132008435154602282965831602247027619177171112875073914784723748564313221571211864315022770229218904082283804047677354286192556897957953371854874184449459437528810751055717081873589199617817402561044410184796490748915583725239498654107851845283461089440292118474088666048424133416792457915071828287800253872331750054093159646143891343164148808399409771934529901716679227001370399260413661580663513256184530784323600862833371771787774755834939967853387349140877520098435203637348359821257975664324187240566557097793977571067749334128632278330723016175965274047329933308818305416148500626921186056150786217077738823673017080223078117482820194449588932545886881718822895934339274793868954389603334924307846705131701719907335938904339692109164236793147783653116594132426324690914460936392799689600035465315407959900140769977055751010192838476636344972262010581626482089184743626851295431576120983726683500025272647466806579347424764137878337037660348556599679734693327336064328408207038263447043242896156689421724258076621239064696937487232856738142875748526342701003848174217779238608732592039901634352304868650491908624811318021709802403921511753115216588033352484766058704768387048431789234023319568210242466648651804804740434751952387855829659699944423608439001625043763983173836672165178437203345667253663708159574641874563488035646276045117208218118707566778002035409276948772121584269815992521560071693305931590977598970798394498568199490540990007553539861956070794628321227190429799119206651997138103406110151341498413254260132576887881994018891498710469412274838722075379577477177133818357118610267439808550594289729971067287081606504978008929548461837205760465359553411490827391922849429507198516647193609974522337297779979685018509209557648708781879909816430834382033071761736548739772603317779589121054265549143801197508115675060150788111416816115862123124323731776089527076044376439151375755779455913624573448435988502361095601390273793802929340631056066612078456298212228095482844757250872767738926270348096234966560376192862039961088124625981141202760619817791084175051246230090434273738351806285048771888130820475578433110807558022655926542540608770028618050595393814198234356822171323830624688547253408898015856794299293286558159649524117064939995009778677173933729242960315671111237000804030334943525045901938038757512315984840866356485907420364716375043374736304925382002480224118272513056209423767915187042310644155668603096124981532511742302682749629490505830095682869832544381028487606159927367770249582472616211622456524365549022629330872110132805716430133247748790892848905628946298998558765504104192885704349999751726506689767339343353418573854298142348829209155408190161951211216708145544108645244258921478978157241515003816462941506778776704435180293370527586618689891619290940169268287848174208746401491580240368062233796953713436028021373714816110090497103001931222546297493476512664324729056448737986433661075864455835069944407027231836641437655091598563594435650629680462269077886389242705119456865202350597582351446639396129719570431126155437147511815035880645387449624296568471129223880812122201763611120909210791696221514798196079971793648000000867382972312904506997419204551577162170730421092338498383741927220067863688073956691104593478289037450672084845376964310936250280264440838390668370930940096476768811350090612500915212695635407323257051594638299292311049987978255317296426756286645069376912069815256545075214065240237389045766146226454135392406065397878194086533101394301241897471134769819439398618283527261343412748508279331498834311895514237347945149213822393168208262879451755791396299102581980476924852550627251015557172783986121182689134965354567691123839389193564564101711875497139354628446297295985172518224577450430432220825020318826553026372295635951633933897651028085414683989915346638516401375693037395542990228535081898861645887968191235109347394045812162601559184584081758559829823744171663172728876247732302696373846978702971078273607789144372465900592437208641285394738158504894189830069813127895777246991900144321472749939101796033802335989387642328567012444907966137555338641558196981238125563729021788125667885448299582833484619954291501717661082245252346340605609002385747904988967804627469730654843418538141445564255146179159370699334126447531864305030664302382655583255416191614423815324864192232312207000737789259332477022726940177136207826957657492176736985507344508798410020454793182280433177732679139926312228434490372327081904669941978630900421414544323653156719550427727578268628415654765278488104899353738393433594696862347633744783086454295174139322237483093311681011723230442013628359611285068447684263771728148233620678979852872911556008366216864553210813478219896685255631063887029679138874726761624682783232617424579943645269224978680177703886026136095049488629840378699887155064052763457751475282402745969700762057285543591644263079658929776194782774141143595757926049145358952747697269984828901004266695047144283945822186928987586429748996505469367176344748244948916931297318274932468490455027894858731867739670998720654841071116147786751705648182100962824991598706905672188621247471701339066958801042116619970704125360919026885796714815821557858283302001479999119368689524798728078725377396642442046726991966415366152276156367659666092312885012260632348472672059129287306917436119582732256986420069718428052900762248538838750581515473867198948089645160392287738343709059529459053464422740202933977891563984008734347462581496131291532018559284290155485612110066056121192285395981143210216253242442596906333164442493777190127797199610866740400095446674901450824282566345153871671854918783647432272132901247807261561330134114022445015988205525025422150155288951228273882127491007384959349633549444965980953097164905152164474171162352550494951489206521359979733525319982705709229417371690955805992179500363977600591484483396135262850516812688750809802470890001909107649395290829769101354210280203626871539500910025668248925039477773340393612210914965877324985612549947510593999200627933143695663969475731591917328146341081967825248308710152440743352183734995979155211105168068300513776254190646741090167417433002215574258054838819968974613974181969709702017373920091020545466170872531585195062979212977170676372989698083560814972966945068239112153006531695167766849477049509878874107722689801832642990323614665944664418290472856823762808339547450976553625702924252446219309065063600852412706404653683718252474080993021252595269405213581604920046292543200961173929195711050105464068648517392434262536134668912746124218372403637612577608875797686251760509365662264055543017787094047378029062886245762687387363280440294453657170645731541027583078448799291376663016551150767583616891265346084315573343521466274649256896421021939691522220030780561774695924720571220360143541542048553107473906344334252907361488880420545491449210451410703812001171696780190818839744232924874338686444718187686143813271604071402654819409148636305702685856535753132322512439018428297373274065979850766919257630446003366429715536622737239890626928386956852409360635387871667249491440013273177727897648540583278528122008031681642256432398024978285243781221891278536303689654654403426842780517644218374013720946130427988391206974761571043078147094469388228670696619793713282987996090805980354879269309674569164342324618011163307592515127948555722796240866098502401906053672233629217481740681863524227184542637322333157498179109075080098464155624692251291121253346750163357781395840041834232976755952305783940019387160975817545068951535616809027344513049200905305238570823428330077922933192783008237026392371323199444936222526769517798929856624415269514831397838826601148510173352947132618575458825599346955342082148566605006568501216193996525547363925629938593167633947367992655763470254813005935418631451961962274417601618382621036358457703021278332535477285644277245547699296714818123417435888236725978407922634526799358011458039775914783300893355260043743815380876257332844648202881839706832597182550660925978586247098476131609875477814686542874958821208848075964055614764676231967388737072596354435131647705458809721699536238371366400081440809658171244740774244286488772390502093576369131545591837416223031025277197095353210879487031207663200014086620606895984864494519075187548086524487226697838914469134027634652077631754392272970115430143728552942426586055356447337706488630304980573010684726466677894258307887959002485204501901227384423235922039761790072193301688698476070277853377882982977728349263840748332501204866328450376337256659208921237338442706134764659621245722995954198366434508787714072775323168977399925834371298403676729338199864836484764282117383281376065612745593720918709266901317729090535249460247468033414475622576052726626985367594107934013339818115879568530871185829277324216948905217153168226387357348901222571246541157273367764213006888423512139696530078984351493223248397283545182557553894926775683308771788768885744779302788217902055143555579192901186304019205207137689344110246779363807460114791340520096177941429205422659568946365097207412130747371375966802808418168301767243241533137729871443472055123342156532483342554391993915849245693459536779365190136764195953466800298215917327808243697507849579071831437850863752284811921180835207704233616237740347927041620017001794759887548903449910520196125392229817198901184125937506577658889242831177294718757957515736175495399863176634712932659901262406439533811808951660695342082888868822977439511937989548132407406291382612621702117411358030806643231858773588347898003025080387720955568202322941278509210760792202580114449094653277606425459893927588742897231852365040076603334721118718633196134682160442917375402647383169813993656443209279479918378280138522686338188561466793072957444604366188661417478974499254018895163844799730752998883175645906773023662528226113374933042324148646190011459253115007831445507987127225486806179030178803760202710117742650022956844413684431388257681614030947585281121664326241417258912790366792494605503014775439147373083333790582034025447408205687689197046705622334652780248118082993158083593588956956365089836728342403829896853875526807118799123975865750400764865721616748241343592070319981571596820953048732554991826781224458564006513204243277495081856502384335932749801165162494243293260041642668320959939672181747228386737227873108234394479903043518733156095147137608618200662319587284150974058668202483849732076728027475082535436307398251466337872366487344605982176126206025429410450816263583575335043818352717487000385591369542060360151499707626350954822477583984640911805715372666940955470774760704124481469641707569331753775760659596186919594386434418530932838927290033908102078879091772865530218633803555814772912746863061691279044841301321039000298394218857740679092897575432826759593351739520030382707505395969409272011264873073138051340485679671154207989522828315276846557545016722654736977133537842685897826916675713148553770412944551186423456099950657824103423170519918912653667517528127176483507320025599199707639177359435683769282121041561999180807819820546860844072890706670735770999412958995210304448453021099383455475296414758421892651115812212815363188866142222149907873071394451157760010837921497089069468058948093985362234555757109498074093146470275923463141024061551981773381663631075069686776344958434371804367200692235795314096484145884810169300020359664707537125866325497492884681778779960063225611476112711083607658195189358435244386121894493078481822146548416584896902971764427551906030450253340868371025117591103783303358652056998982505649102737825115514153784591825565498083007973188167700019491831157834753965496897010750605866791106197409873400883437401070944716183977089303158850174093265990092213261103288507674648311524267169652818456007026322425694369144416710035977792328846750377867021553595874707693878019684684348639037263048484119316426278505442678301657909397349469362848027834324355503452015810377272811358536180971710097433301835241816310449038309778936259715175782253354303786728296781196414380122465590869376887442569766209500419962416108858442673213329012071961735794009557210425632651633071244612864930361073584381209311847356204629062931529485760813248565702306292012591380650456074841610985508856861072841220043101886105094092267718259063688997874027505149315090210443806423233805220341894844243388446158330031505541424160547277713993906747980806009864365810279250023390231701410837330454611169139464258498070498423957391454002306331151786807720667426057585339478551837525062415548971704703783710482503731565136374625833942386225275630593642903280954697966719522482314809436583488850005114666263557406409876662899335804374293661846678806023600962904381566146502674405254210839972468654810008193277364421597211948505762471179837948868460474559821899897370870829273092967389626379127107628749778397198744485938164262524361162475140383930811809096400176338782115693908806019474300524665207667849010782702180330356654007477445935685413124158221173292732026502893180561940849459744919231904586931926647838995928729020325734248702320311924850338108033520509436171610633324087888370982398655784889869526646787893784700047323100388548345053803568421939945787304266708575228264950953702677685742962814983375643534414309329378216686786471486667893820774197812929814510108375325667506314862379904906457029975187632209618151843532762838078646331266715072899816291728143539605093904642022552857336667769598796098325340517773992061531948799240309565968604760547728733154676866941342481302136939274860454786069945749894356220649241460867911870450976254360057953893884120484008665004539534486615842838978090958526591006184468779962384443157488660378688838313678987485792201753806867843508658002230510783320004673409617911405751672880389602721371184679605517882000512349439370858143477473630425537943108216664027035727214061846780274315712108380658478067957298890944097280159229140124883706239477772672293077496154932375687820270963674410092291339696529671401741088885850506372365398159643693803976230532570299249832955008887179319862834596022244226744039746710866752457894674801967462435255333693506043966539353522849473039520706574445090729851220589775275986132287464423457546223575013245153987425114361962407537128395074809099035449528760442214922510270949426527366396914154604475950195931917350261853692273602783982935687494914737086657796878404672742786036170656136710684265471887023772497341806788055680921294595142893587451931146706597937212479331629091456253714254777951733297953777621647760970251599061519867961620371313156601773806700938466868795842777427331435270406584458348178013917015046709180344099160516443759250533082615888308166801100365788542944229500245703647052492611424410133801105536643330468560083350650509627241089872912379064482358529637013809550924641108833942094535692782393150348290489835621822625235404126489555877393580973141608790280567340640574963443200929222220900109472279575805003958413851266600298786640350542013185462444269500536965889526804770462165501280173475452616334101323682292193559731778467087777481991498164043863230219115983116288577011859751006260483450679188166979622561114031916397164101238844710010511237097928154135399219095964495713028866845869274965361977288927306999855595276949440809220117556971222113247859944011033790984068867362425200020501011878967761840130513825193903775092590362809469644353223604360471025696985489102384636482021867273661697854112740840232197118145643348799380559562863105251242858584229127959370540157943915727759470852503316850011443746777319017830333881635124234079700089084033780220934630257092242654313608337332730562417895986291189988054850762403290142852378458224387370667641855321627146417768311377943719309930545643579405252057772713780504346681303115905391350702388485433499400195602976945783695861108343182777753361991265574221940378544634410339466397262638232917275082851897962038661033789361595267578486567499113043506282597403563456821809360831482670544042704837008993701077249076885083508068714140596887336219375094954657035840391014928965014942818263239020182201872963806257275981046789678142542060791045599467583895506197336117451578861790853472494674777118115318945614851881592598779258216304189535969052564041876138521427881211652463619188468651944802580202695937978889965384600429909270099900480465640265624900986571699709341259935431500827693823009195097453682417803782692277325908791494728990312007643701490963928446209047816342410661813214417238228812362555403703440536471056530449826412753813181974135297113042125636015770307711141295308633728360207899579585240982411223933930852329010882154927816575480883495376846638665540289085853863732573002149344152512827844032585159688560959877645486071672037796180989989757980914685408455327604017579530725553951748861072768655681576439270707973531457677451081506818901474639164370658028752510793903416076932909562550937812519024102305208315652074976524080564365661770390880143889472004730174342933203445488100868545731193434165048831426802602582695113479503164857445864687918200662775965439996452345267108121229380238027064358500953497599342992730302888020734081619164614851797117771254098682094407666758052090960111607008734311595701436000578760772646694281582434409818741014565760604514257716374769894606424618868138547196504668931790138474160439030447025708251141546710084757370591567045686604370489338690986921237207968845077906241201642865648444363437264061952928196792492891188017205548697712328108582172608627198421189429941061149817589339059585375466608231148833351865866590823475743158127649158076544603680307327529263215159423072648823555858156671546411409885422024063225262243288569225163636142636531724586273088602064689579258645738977939804769619261084211915239179217441935466453768066462579125064375100560113159121756232653504545373003016921259388523058938616855308329692777598851089357671742465645580584664423645477821956568913803650301938100850303360995206006805051787903856322965087114684656828105653302839048887762037313321554417287600344601088975053144937077756251674713138120368752865286073363671490082845616593072309031301127802130644963537952981969515826100487695601168784024922270767745854980196549784891156285223925628846877826198795661806392045040073363360356149240718126947990628538568701017495582621688710686926352790633176704066634110180099510542661037763247671046686584559333502371597025568070865975813824680587583830858954514020660461057472602672147111229319786744883814003555003784033320854618197237721542369640271881751248969159040176838197747952644371798283390853122974731188774549621506002866021634584737059738513885695132035839559105484288391920700101760509223097076345667087924025267037000707064801193022621765654650610709847272564446963811017124553165560133719356440659674703824897854679872476112216133288376319038348654722877550734822948794186544397787394373927018253310664174186453509511187514818505820044886832183785946344163366898570265660088041784321003230373042214054860281240853986542984371530461232639531468490558280394577844392246868768622830793271981489031962958788085887751834394581434262532739675392211095044079121869567839510281076551215806439066713086308373765218236372353843767995017443933603842816212918223372915102947645066931107503524543712821032208715846911534588315761565545476744159820859860864569769537597535971657081726653379144510902628315882333000879408852285060935056988149064540267141483218938902072849559557018183009066009076893513504737735813074805009404484787801242370006120880437874317176722298849785740758746803743523574643287700188273489721463004146585081412888350737010822606962074383795172909360533690875772609810430674810041861136214210167565142627331453552999836622786084478231137628592540274485198043656721058676437625455774165455646825459528422165687659006179486589062608972924961179272917976181626133343089989029989259135698234391890189276273271316753122322299761198472466035424940328096358303423457978268676356877541843342331574418483865769145707968659975208365557794199811457907694708175855318630633730262292341482013631037943709350087677744507522387451537384630900663997274399473693073737461504708339144863512253903629992761426531450523675887974617649068158546843723169244761619375072946034849310526788522883385596251016540453393620037664082312559051011104167677030149328718337032304064374312123332037145137565119462580664047418111359384375057779615507213427731760490141158209364740904593030019563316991976427472322830112370319883887910372184286558762744751684341548287844893849935983835751544136705178651829927390169466473123644373885726449294555855790667126663071639708808183406306490630007535445886872077998838286124137907809251977299724507560655329101272460232566630510662560295534305533876703657723193783535719437729490550781094718876775632393419244823026102698452475579123199168136806308785321126875124398487410522300858497805406447611334860799441121792675966046102812969842371229491498682552080631227007171596133846306753173274986692212241790743139635671828864452735419261144575580238572620420693217574445768418301081372045478772354171181587165007211784948380431142427076978550888202754869546987489413197187754266704367353917560369836983201475168080526014114183784396071064557061676630911051938262584059529514189335018505734997064399596466450357345850107769988763636328448591706264146629206433823622419332195298834849366760253562257431986267215390553476669316374910500214354342571750153596207873697067239917231436978606646577830475392278966306482552601707688009449669015334689184088264373269890580056281806143139911835592696371985734043924358635078561452570195162468755596364746328549292914656268984590120087048705448847117595172981033776262235995196089041913325157263175069791482628765150643177836799574943917847554657785469383205958635106643146113724172729847974170420341015165781949324772930320999460284886783663566918509281462221071418614267138570557535853739265154144659989822133031743452128047330007024663577484104938283541489301150510336204644924084517431967814381529873383160877999099600511596340301977687185075203260139788267047378870658320639159263963820972136393337802916233663382661468013739775411273633815706814847775470798223329322114231314309657965019663324054013369145665385045918937712948705257702981094709061465630093340426476020189058004640304640937994036769256455575733370171492507793928758224924609458804953352324950616478363983307984338088605814545482107184581788509314679260405714334697257472759075916825646662927322562980854574360370865915110027267412702397525538920704531730877648742932485745371689821568771371446989553428416214049575374770934607951978849523032938816975598500652631460457998541334420673176325294169524693223702600672617285742954290225060412406896515829064050976309885748892204443533525776905984836126119842033045094988716276768272676698167562392172828589284113695198203681202512810837486238167367785240784905369314381390971402766596859834862847249452804105722320529687002282056467089053307566911273048157704139490945971838057462941641785443501384842833859308903089798502119214924091875721856495554739048589582930803582103230909161017714747538006056460104719551618592841793116869006432314459089853320244491099974538774831662947443271787921649566333511192919157852929200895968453562658032677714250852658942170626042879569614958129792070843130098535253108919172118127592611561059175275937005253551517188486813294974061594024881164768632431712066252909234553156059115809365476385160182097434632013352461407022968896862217798987300201866130499391785907680134816251073583632164246363201353371915336584866673467835635495409927132191636341276800455542737070707034988097556057139402186777473614471570586198255638454691651911974454807564385502438041481984339951783900160514850825561589343048666174422632857410114793893524699085759488999860127670372882142897067603367209272140227112957407393377522852347584256864575195614469868895006171407466568158568374931819774389899147932086705335823366967338465452472093501921266944719973356276455087293687429029421273777592400572894269660757132355772623835879430397599185551907043266545435456310777343618207575657875205243652044838525214565188156693835449284684272591233483672385725757861634483953310603084053339801060594661251951687727929510907097992582742936513121947408034214319347088806748595754459150743765595922540834938650842930194493002761007803699338321926674150239908423684899379070901433348022948293034138738134094467858821796354476092870410768160999718938779851514934138390810614419835341070071915296766834932468497071784614334040636819837413201873575494854781684644824048424555120627154341028069407181427613094262210149094710118077937953757388001845127392976790320136373637751562968874573849442169150856073861925408414335109498268031818939332529752245341478078647503040911440781591700911378658046018350777216046234954165301331306436886240116139869517040321144557636357557743118190103318786662839442346774061706934912708641451136495372424961569824780152468561749409589849429364102003886267570340559623659146056432746785029217503734685349675239368605619108332431043335759141366683298101640788246510595173352691923977693711300676987276323126466329474969739399065309823893291335790651704957402551398439398056542497858032152013825754367889228915645116997482646592955079464954153770870465553225243281206570957531456156357749442187094978286524873534776400457076759123360627561776790854037057653831799722764590745191758789777250895238905290628719105520884965493398333911666333205673282637137769435157357725090107177125499058535194456681963467054121458417649221875170667895279854573756729678615832212010665721390419910395848987403197312194535200258619307227158536348248474687328096057273779746739877887521199483041123380631093983877450313995088535499056588271914644127265575654951585334687178759006488500340182312350218860279829850731675341852589809278948513134376239892849842480246501423466864310765890642598507055893030630979524326175693322772011722058549715992453738508589716889534011194777104087176790331652060649182173465781312814101245353413254129094644586167207772279041258494784289992572102678433415646875227430822244469795197317014399221485612451336608190035747024756961883225173286494370681116212758449126672489702361494417791337161275334520690235563219672610450941326262246521455053503024496812407683158998197909084646447687697239418244058067969680774818960452302749596160107207103417200514871051233108533135979900878268008854259448732177241266792447632307277274757590988063643041710735452477415952839185649713324707970872925681841557757599859375048114468096914399621241272772884468585898255352156225101952001158332442902109772439184586237803778472329166149325063035417348148770687937749476047493880982613302184432010458312330794841750346493790583830851050149512439124217419941058050609349439441842701280625263326033006150157539003003707481435470281387710381648385594567806582507504714300107367196438235263151611366896699678844308139240698960006576677029991307189252920016419840426791711056903595529086230462696297152444196549450046760972180580910268209713364544246580578366487160836329387334347825955813671276574383315862001106191458568061429766616240789397407800556175077774644828046698061416927313875057540808061279311242028267975963281840916067702255390218933158911024821155232904046736454238589786241985973421026244648450081097104822583909756170622567411310556718282590941514740036344132280509798003824031137068553407878152201412765277560259269904872138311982761232403736181510949758927248607006360454715832625400679083148369916516638986889129701334166017648840860603385275954354310150544739937067503434203265260019317365280151039396381216737398431378521712768054247038616576846199762520663236221277508727337263139100374865142559898781563541186229089044570189519839560246559339100094479058174078783975985284496003458172136037235052906244681303832443711884801872605901552600869910705156561627222763494091603971878526624921571664609530862690181862434789682587778440227904562726019964855229734959646392665667476042274520104903993336752383005729010203007603154813075419121869234417733633143678817917342074502923245186865997706972536945209064171383803180101799360861650041441983774945086586099722450566879883057531855825030862792065717011694550621779252139292315563627445169091541146472198744539781428799591468768048818139082203708020239030004650686696339055311878177857758235114875522432080772218903080855269547882001418333387090274351084876129822947573892425392878980821269984002301017165813848658088452536973532710496596042817943167607140210836421043488700171646376526822249914491798140732352578740475624418356914131429125981292191443891868600270915285081200336614110979417622439372815342162416664202996342152828490885035326451448672676077451340257059920394062648429585462136221408586984956527376807942863813669050497308233253531877371546113327899470542687369217177891952449906401660087187423173508631008889762626160056877739353778507243636090628578806553778876070539839681806976270111111029130588702533322831674336047969252623536685423006063131618463812196689675257771188724198077704490978702274523936769981732564838313848288557130433266773660755697551663532417000684385483726984036818353712960820960494115044799993848886630705369834070385870416081907437252428779755772966260709314425108348433602023946005795684878140632073039340816282309957018825923182636239400770182169092592664911720069747073202570057343546383337039254904766237233203561087700320513509635920902252738243398900453436925390016357816093661240849307940067630587367469631081982500041909323528778549926281773618379435878253511335007070339918333564860859536278101889079967408466788974339620413311935805105781372976699886879087855179230639391025717635687751736179116027888163955268311356293486319179900420421684860916039785413198581270503718944849606339950343865934462433104695463458038418618863158899213934011007581701596598652352093762069671030664280763236252404620137332409120694367830483130507098388259701062737459865694392909095364854818166183808403700080820862431397978760945468825914395816093565894593722724052737221775980607895197738795278585678631035343556380087739744932899978449831314367299215175992688597105410927533357206328543515212080641953626820008423239911289234314807764574208253336722639296776871242113608499717037197393180741312117476904355948763252997905610145854191860836989445667614606689870293095285273674634392408063326033596362662680839711092726758725895580273955752679160508951885811609796406534143310999775559462679367748848709937653636788056991273607680721384579837267105609900815556122454792903117409330443204833797930124420318099841390655781665425530494750216113769970794889721653660821992787543167247784419286757700101784834801339207175128583582008960265911380800038604493817020423708207490917230771589622626769160258151731812298456824061189876762627293419279834206713430686653871691684007127359073341674383101197111196416507281323326344036964431533412668757874903945812083470408256428605275913011195869201584168084697957226135069114259041300417319193906652941677035066843908418811586871831674986535695760718843069715514062180483731024831645531679839640794065848812804565349885090171710139880412531654772705675022639286451893923030583416484296501031044243848160460166817898895166428505144833447582673029926301015966837409815333115671063689302730709706423689109920359554167278673138910737232004831192426695673483853035065893768032464714545287449932693537467294064590556572288085752019508924052370929973168822078546968500486331869779924379000651242025669725142041059726549523874819584760790741859555014270188260409292415504207281833171238549808701121381766871559884584082006833231203067523038498527980343000585084837076898268433744537068339000608781202717820685089211833708860925820678197787541906819467943994798291157139654186675602590465124450074433507135914491894156181213401246050939199035844305484066737078043610782820480742008473306672363033789575215632754609661444228357912484680246624536943430275523364361960236804486353497201649708651042841361750262287125526040064773287889924599749816936988457032425664059540921265781515230577381500859607669196600740132824641629540293353021412716434131483446958980220076240649590158391941965620053306454826637545155377479786377084504824259867590321216610068466920276527608597052737963311207311132147235992873719594610610694783369172265218764704190814593021960580240515211410705680190420528784404393613494266942449766867064835215949819658537425926242220580042221232850783780785006173982598938572375185718348384329246920483958960987258556117394663353023161944476915541022321660732275770931313033764183547416592515609802720772174535721631902197614896428150540924042778448835622345384267125059737263873762724794986730445146742312426891078410366640778293855476278295486059449148857985012700320937568477282054464578335445056450907475366596538472544842264309109171658547566338067326583288614746159323112587576895261263998059343864723765007297977330132300340346958143650356366762236160502597092120572402574155424635937529485105107376808767591996318414436677115478139471563263178818617438607127366260940353479307114586107441749944670412476863419151581215673423803849558409462163558580166516871416258850300658899983480174088996275788780330971599455294591800818404318548478073629033500594107181139603548227250158141281671312640060746839617881492315317178407262335629924271916581600271447044148444101042094743375186497767860922610408396627138468852909566170867337758311629545475962255451988541122439772559523700447161368083663060401610341687419921800976636768525299192259699215077787193328717185801855026347721846574286858524009435284574217737614494250039609525131417464577753700477695051981471630145227117013945992259052385853475486641517175900144889336388935437944175618679086561100264853145443055419692976229777203295806118807331869715540913160245398907606308412299706082318966624480706314917348070102769143122304450553079712518986636611116006259811163782529400987225057634666224209801027671565904482676586785729245784342992056453270619097266538623411655553554107886234866812573020742422928749498305282545072677087550918905099616918491873744402227908136721609339626900313398466471532072111323674525562400992382338994000931376996936579507385139851353391160085320448382789968082345462824635461015752904928727809922586802901010703454450688749707410769203060311239603243428751583981546709287230294814502369610034773815485670361909904257216541564936704019329017786606572410389103555679495114647478895257306787291526128670959586011160525704671491813073513690596106268979834276981115412268141176332561791714975468945448989657910328576944678067746721947735312505098036431172964524197414988955333475960570563757685786713390553474069353734187813461168774382389922982375760223134197692812590861335718356331269393401030031559145377269967655093050904978780052383098905545017379900810598187016452825034681803671810271019651093170072131824044976121794412254211093335390144054314024184332225693811249746859114689226478731069896707740768799156096049999082696572844712535223099713071101720323496351782557494974310904595453219438043476836335816205779064092202160818862805643001285925254059325312190363104809375590480106939771001984142650720701037867664750405445703818365022046974932090358784532201513736968160525828702430878941779082592035527359903129310790787493406886226255310571923878954702333589362098376964965760512103839503785836743163125891460476582819328979425501638553786918265415837103172785986930696497213180157997793961135453056651218587880412396879997916524600605100896612792254142358482456922566233213264731324151634886006170354131447199550554021893987168734317783025876036081247935822425631668257795385034889057382835218716888586630436121676959962676824074307211515049672233504497598401509415995579694061982303939440078981930484129563168190871117898890410996530126279334380737517426530679507682484925122509409391076167488417242670364560656598633479950836564116885932922651591285187663197888010787961833140461032636575686865869760511521451308775945064548354871003790401453964621839947380210479188618596540088081187786125542920963254110100957987547634327723540390924748670431998372984152327317425015609166933069922218544734848153647388192996822190140827003741113999412581647490168649622511309454445914761298794958407870108258893647080407138368689481111868080170713672700108428504875112168097946608493213479127377058807024713096063604422890019618435011449818110477928837007951432722042310426720834370397571653984547918700730470971836626008265182964507783606841232608215358497311985233258795038882472642151654321408741944401997984180553183537971211361891898951370327081725678216426388899705608874102791870763803370268157137006154200065011370402974166992693022415840609704147587173804219013519199238812837186533489060642698983932093356279873692263629233165189020299322943682169828701843438861436899665821880243904369658734349263107020137851572435727019296290516860164855766749208068750839671497157790151478659791649305227085205104742209248841874064878540418557824143626325501055503596795721443716395929316576741022460833137450510784981062550576779478689204703739979198899453617448569033111218338872942536127558506149486695306610787359658163663032459600190547023604850869201907568447056412764293582396789743736875018793422245976882446581466050045882067276900760641128028173134421185327779325196441815744370570936205245695303644727494810974461698166966517935474395103360296871144177832171235562981142982297524548200553371003954165742708669840219466225916491856615415154295418290813855992211893868551877975916955430747479226839856313776898200948653996013589360738871355873251569110820143333000172174228335521202748392023194503892196006452703796597044623720291302046801016672819523148812019884446083979415522187774741238623791945450801514228377113243668237744460672744187809647905040809032912969536097550559669022384508311049549822340473800575361979902002169252952377457420914666668876051359378989456598894186582086516072132880646733975802740944596933127497106109868549699692037239536301482546118997169349595259145416042061669335020842908873882372686010074236668120542076938088443234200622202293626595532472165042863437420321605487733295931880159082843288508294051009142901491521389770894711294214697394268343393437330664514404542628265294345871006065325651778004006547107705997904372762081367705076825542205211732031651397702375109226722833247799127530253659889833044823770398611873921357003663498004151855795220860625938167144460614098970095133262324023883998302323414767065837681245509515926206637303517431532731168633988095250547516527757391932278137514192330722642378620490632465732749445793875747524739835551613972959559033515891165617097467383109984998921081567647762313840477401292600771009493347834615746304826370627449715550645043595397634656195104634810788648067017174824347467554683684011821832389238647134146593378939183989400464815387678870000069776835945958821459713757316107810690288260205704618776345011576478952408457086759724713138958483012999200415849475992798758183913277331139606727543338889698750797971729654742416517231132306828779039913956394804174054527706211518989229851527873210741383062599079058322935146019153610299876535361124870024920445819314844099572044292996095388265178857953462359022673226942516334378009223282359184516762199208393554500951372521040707410240343007137931211646319681636595356451148351782849608311494197488078235622284546375378174402706509898760140757513502218745834745363142160147976149964996307235645882678146466472504247311249444922352598423874842112887329762835058159868574401810255702659913801904675907793567444101726515143793833905041161319410119447884641594305995807756661960088184182497380345806941345327539266302990370104235121119778577073043141411525661671518511197785630018548773348607376429762310512753064387743770805376383668348401567301512783293446844072373379023032037840755422136559878311460604478721310323946208724060902366794809236855781142439826420541482783509658584965583652566957223881367724486404453008053415197596732989441682829424079535176449761141024565379047013828878573058230381289904751807048175059858620577953492649031711733094947413577404631377481014536105619027813694289008825179128054686324191148115073864855608119835006767331934604432718577219257670843553959042103772246722814615621892063946919179099257021242535637130689580285714727922106623043727436115836093865120669364823738529130046488018723955831638502316470612774615775775236439611676321938254975821757130557282412230392982008733979325547391740162564668317420818571018865956529781195850410201147091275294746258462667826219592862465086198432696343320161133111732010409772747157294120468185001567450244290620900738942446368377690926588087129812561319384081256806509308953518576091888887725919278118003559486445456620339253242532478263566888566793252885524043043589775442876134119695611799544327156424122634431564381639320838658808928804619692840906027803590848328690858345035907270416500294216977124449596559025957220442668328210725833583485688127279789670053049530214899895450755370662095995967892247424156383463409184840330180591196230869695346284537901157200312016992291727738635659010573909329661234344552335148453547650323920791477047323965222341000245961389366224017917676739288033137835531725272287225189473191428710539238466603740235144197372370660291638128923613849746792517057076765242268362172056128641962073205770293704525071526668590857406808871940795772371981551594875189761270606344271610391825262755734638075607739586059854171222857096787352243605086491399102288862731192892592737927987689708021698659478466277848443621699575328982179703852193429665035011878627054594184418810478124918804748965804646504742306750417456820082419938450976514725723266286146116531463616280910595041681326285069578550370574644905275714481258487819077044032095138255368932687892641651506052747576551024490365193895198353705070403379472117787585425088016938466298390137291322732606635198922889125693301820779885126195554120738838015934366051227739431324333290105949520873302107453923499633854481530665103715397640053248447025347720351784626476383571417033245642709232760087979705701230796671013559457962574813947080973816073644030267275288985116343903027902433152009589850636710110660468810816946944239000427648709257292661203374655586077857151154750070005100954676306925991574655190473399528208481426581227489287036163907596510094056042574156954434351414576039835172933472248647399719348103486218675725709410823328507251286028374926684652583537162427341777472691558076329706063815381329587762722234985241198080243370720993582572461282338522972096422677619367008196744805860637428187394859482775713180396747262359307163340442547692250982496548816312717736247022108439341003105908087810767540805353673905555485631624248775065379533826155522348575570035338215073564656899975233075906598253058438964450962017959548883172745222492029047443174794229441879506977723385524341067416199734337252716915614946344240369870823832480587696089321234557551021598930992330586524361998059396037925200040621594257138576271055989826240963550835656199262811830702860929747469978372260770541567153545531064739743849339095551298828236633396005142855564709385539377170090050388766241363198531077420985662264212343823536717511928610472409576870547210509540494670099211147299736140137419992184700854154298054739859303347543303110041762627761536253776665506459050028988073316878953413640813506889732717283937686913890933831675714238497156989049614147341058494300019457963217038348603447800355158407558394214676210637076882150521682311051169057943012511934989212629453925794965925850782733819398314396727812815761699274351783939841640390353453779422682408501696655347477935603987562683958668626673748155730845446638593864731532666091286578482447478629186197645598603127799520621349894613212658925223754545422810637237542143298908063753313294183045230457954807399970360074911419927294987136745039808707951980171865713196610448660473610345314813901948781645344517868353749209440032280817879595691876071733137827952047550929366119021206687488669131877175455709445630108699196404601672847571647566263901860452760908659063208664909451162424200747186633206392720195693827906492398613687761856200588539072002348897439805840271532689865959746334938545330367899444999096373934928508162781349372082176512872440913426103486389649858337115556402005613811151055369732596038238650403901580515436975987148873206207826240681824670199791558159782816947710798004675526277200293247043373879836795808959110992959644757117882609188946823093163285511996404396274568749210137451053073328384183461264958584241276362770619549606016107112483733771946214556697656544368207728609244924720244459964719776467953229329492410739933979918427566523039593396973549567357403280259141791957702445026664016733542262454808491774743237936572072333584426436277680992038047891210263677172719820190960217959784282682014053725405291910253477778333104794181004256651679193753156637427413387831835595867020598261035247791410566175333421041509768815065137602411570186501405911390265648729886614361432828356120403753822562256816067214914405484891377164056407531830858550618257993047703666717289390959569137663325434270435581725731943701810325382359090621233604531254287255418510723022824364187559567196340726986298519953790048063907782528220387344808655511236228134296091137741197257559771670031787556673629743514845130784460032520434976113558770906734894207762915430063478282472487900297232238496060606786217405279109212758511226163566698602010693723594284292243137746272051185601805819026351870320034030556264512722509898068112264004472379412360961249000248504784173950175765617590709459789443824770002877948108943579950417671027598658023244876949463409615446221001675683814185909380609007886928123532954340906012385655652249873292531390773995231790129429840043825276124451025625102638405196949251208775993129407716365105630978600010108814760487580144101711722465156219985331623942495688401595572585667018280956248622479633358198265400063238788386260473815297671501253815401659317351342849997567542715960592846457299265145852755119282980660034216829089691117611650844367354728377518995852132252830195880558557244947244634571391227987673089408027545282085372540019079878755975848768545425144248233519391751639332101364065779362767743449711694231370564568793930249491524811661603850471282265081238522202153061584179496243998530684777205978868315963320492992085338993704906403635929836331753724017591494073279337392778231176882323721827471561575292006890270691784429483420179864267064763171019878476715728840097880581936693913431229086399394354336158764696036018944957159643800335082660781789374932568042253036265684137502055119774775742453315398986200062708255516865112691282556887229391451284778585844717126543879638278070651834608020786952902208563520852335666578509640676082342605905974351014638867094431088344441519179852412671718565402620750093440499313670826945800773222816538701176890128822396671674623644884226725108966913283901746241404329642523307616333393074166183587637832444289062595236909828947079157386731566449374453293812725372433110093225636061805395240143066753877332008026556194146640370941878100112328150019850071954701274768023708873146484071980634263080844391140847492242695474640613994136908865109943056833308765334653953013860146558236741524639406569421683046766492077952477934881548896690877467307680458786869106807392927777068675848658374291887303137086319984862474049226410762785180717781860036883206367800632464092764555876933500104692428407170345224210475327979340131624427682559894452685285279309473560594259007675678894458080107657789093317806770212144047115631056466467110165580068270792360042999592332851581231432477039073204240677749207826260543052129375289151686921420886099796841133547593392643563815507942217905937467856021962788131946422942140878501548297599460261566622154567023533712117381524136163939392065783155757828362561575909487000134868503336357930633536007063102442538298277290491397330659870431688285173028439146421861698194008473635754798663555416284378615813623250079311673676710966462868577986210739273218812392413281350751165367053694691756766012945198370531855925200674416609525690224455254191366988957915108275985608564740981406760980604311811019001104518922809706950349860409082052325840783464571895569512271840945509741147987806053387673973258599362968370691496926068266147459036038532408280215888286955359205156952410653412141423103667894491558599072392257811701316551165572632587560381518126083996878888429842455640503067963032594440906262812823991231987571568547185535384093280195498783516113227889235815008188801600363457776988255475412380387751246484586047510957830114041913924125211209505103309527407964068022501574566026976497793028282658522012698265280417990633055974476684552943214307341072491194382961684706453207626996385822819577677120228698662674458013658000072885416003864266527860379716769314467294250869919832324359903906572463828790251517758173770151755794649425109652677079371296876239767487070108095632676400672578370205692461811448571555875817372509369272326064552436933466106999267754348126131755946155120145247623775843327180228333794518167571397772483992522561259024812255951660192408118470363594750441784901046515277648548068521514029844423789206265097254111664786746315931579560629740850165156963122778032345262158384875770749029265011737189687518943418518749056377050980730703351920328258762833204371145933305263617165895132777674197183354756612088438130679870711959521536470612738930834493214546861633015559315942605939983077688006711727171493638954076137788462215304340875657648647674742914170202333851857004118141531956992274155628377717579690016000429053025459770909321149153621324129593403902492446250410607197410612300612710084003123642975115377888906214266034488073895915309311703468423017171197264225872344815224079172459503895277610433998337649673052666381964772310475519196777052425766854943077138561042961520567014907412497107789298265268604237855590176083005517924613314570355975806527168961942290123444386963392410492210784571792665871789946967702580472662295029087043761299371972704242804755321129082052469310450375775827284580186004255215457414825519928072558150758206882852113174443904010901906739951194267466151827596411155882930014400153555610577261092935971327028016757168077251819129378242767423051558602801268232282990922640304004917669147014297034130419086515336969424566961414878282907173177395269148118028976301600550385171748958497659123821777779349949069663683257715900683027708874087681910435646918668973658752490183303197951301013878214517124802851610347371477186382152023003682283970377852867401060280464346028423254855163253607193606895063185708556586573452716159477411367214276653654078236813664509171749464650950282344354971966722642995754279564467964613092112536177559211714133147835942252032062215432153844864311655575456287260523115773677773070853798694013678268390813132543008111576775918360116580166137062417292934100325230516038467616959582489602562035778849126772252080410733061652938475287040460441344275460652574557885871365035109203801810212107071617538917470302543605358602746202244665463856397474029022263435963137463475625660473868316387567418491161496160412288322470429637457512386238866895095468457789928782849877747235093871350748502445315060645977932282213104230498691254480706616623039524613521614707418601042574477107616935555832178816042226607567973806115813029150406790784264938888735266484189113446342440081981793724715414766887182611388523744361495022903195465998222778699503237954988505321663658031928796995398250558197463406881472312275220738823149905474117292195777475679529905276210910584079746707471892087770875071383052888915005447712126832390719648816173442659203317215017206039501237725243664258016530045849874384415185742156280607497908932433504975222851676170557169813929573478794384118145840037120458167891568246643173620704802848136921702771955924448329941364432957165442928710363284510932417390363220621293898826810315354125984464805598083701194648504016752409792816777963456620049596446674567359384677294827527596644131793382475480981537574798069427727943796772544051021976653670024237638412788249357965795317456021637070332415460370124391771412826139715218897441971094098615133175963027966395917681350669993887735033359188852407945695811962912165586078979491367544039095269537107746518869524124510648771738314640169933254359103429017851442511418891269727711519354731982312538184996948798928790312636711139513019645603803692371556662205554618649065213574576770731460776901745230968570159523004738382765478346060770233346677723524953490410339848164836700617294811735972025964291552357814629907218141320186582169549222983606450330971308763212297699076471179916757082445189956185260623520054085689465035343433309352652022704640504155443684078556881152595752100741823890717396049139392882452114844071270049281275307257443523383510374918537170087265327813349581094582130306665258768795251351456629214234863105235223294596188441319323001276197717820218236225569473702765529610648300829544568221852653739048374968034475412479956217705921739212886133059680521220471314650160094895089937124300887980357240012775271329667763035130021802101223915357239160830541294418459526634276151206295367608299394954425381774079482079425940804711446724173593042054086626284529688176048196520536175208953764499288020684602079714303076226344469452282598265858168773907356619149113965373815491368891097130366893583430457018899720497809969254974372701626426301651852032802114511594653667588717111746967300009689003262139635668072097006086889465622156145474989511347913083756844524210112964699076487468033528821932773233635847819767652727070181084687573325601084386424639427559622074964882573853797382293712680886311804520627765401041103434315767611311667586967622590184414361717707749072263563547372773912472034850073833659216751081601573338506311032563396103809539632923012321789878749629555473997719429889963266619480653590157663059487541797547840985897427222412905149252969542927893666438502148680056693098083151139061551360646938601440553622161243321636334070692491669841420526227328435446538454442215193896291230582641567011451448060158444003291572194729083138509173467779355633319352003823850402273918934086103400542081174908488523842487910085989853858084227979106732034886380323719058945942702862718012109277990145704504672537594647235924990884970481825472838376082407425804003597967311708646879083245688849434105073932730487612025022493488222630795710475243434899919321809962404110051569119271280284967308222258471565310504495551636235983424804920001169973042161202867714658365153009754253061443801054370156362834162788901161360700958012639025187907115616242377776000892217980503783219878023392641414573644112026906581912836395270913239235355808201033090624851666856687099836610500250400929457648968455682274514695993986329681165043067203386780392830603182101834354455995315015401600863905089517772334081792798582738561264535223251589604169497799588941368858770743153661449388697847997206318659586024049667133958343525403913616097302365294803818501054851350379136487645826047176117883114386687979886045431071227051666585881916639584947051874104438730780264660179356055454201790216499818381570115884466647271911565197815305335037196391911966543175775267961224928248225027000994441288698828670000574898559337130338231572662547418765763681072062224659815917741528947672965485810474233249576800031817943761180266281971237355010981354912295633850174452045572672044922712189829663818102924183992858479474770837161724123154018150539539971827467325555488183243655889065523225557350593987687556362314440569438811726026875376266140419298516510255412232872827764662469784935540904503482394350911267977943951078380041305954971550114280264615359187108435582278333406088275768250232353611569160906153062954119065755989950222464974408805951780162048039959506379186166680183118303972899978080641472655031054536606353515244249391120477900648022043212001476578828532878483547213792189871384912768236194116613987964863798757044156932388666036502978277437727814800245145969492574004825570563423840363229149190895725425647736589498134792293190421066984834197652727427012958042412938219546810952737679177987068397327702529698650666468131726490137615491727938288194919319269909814643790787678774532353805149609602030391195614700604354306185227363065947506283183183898793376632901389442503989169912364818990503062849912443095428959152871499686880467003877277366368529701259854273855296488133525043474389113401286824902009403406398584321246863323104501472143656292809351104802139979725436395429992534268628639659673399007494503704278829459007034522054823456481636967647015246085108691208853853175601095106271817046234968289819194268964482862722691780997453597540764272130782000782907488652405163489781466658117974336767151460367665176165886338548125441908902764682586002250315748732338851400744689750044634048367976212418187066024526748336596113797495024178052731747063667693177717020385158838476078308067686536005890764126420453064027660246866476968922774414071767071818604505436109656733972004806326359486121838015714795347483698374229395380934581187637839897009038765357130285375744283948665115630577422818114681181111582562994249066112364710372994693207831106963545505653153641814781436247212048105299198868149703519473732637923390369661906936994645079357905471651680451505203053454383407527490040989518589664650306512728382667980865859763591803861768754575078997149622902806817096953723045981821513528831122032595571217765371044544688816266154121121148809325724981338298506492877462996538366256875442165147619344660518227670054454684829189128112081639925689253404516926072102361910465849262895497757332663341078826853806794137563904223605510719621925721546771283641679144931913446400746837879051790480674805166125376997392631586343862945323144475508665937103987633269455590367030393322016723610244488320565873992427159567815296643230638503815610845956280652721131175472046922014829653664483550062665165526173222740688453874895785379806692849605848194066391883412835433593086075879529673246070503777095836777797646833773038727934944815948506156984903811622211906784500573596069362496056566441458945507990208005342475098987981625714537242242469490443635043112181615018969086123825543576381108985370130081627362840986003913346956477387650897338694120790587157452446143465544423663192046955248440703620364983648046654656163466559605878789811386161007252540126987833337388146837736334756805339441072080541583529232700396658081740709668279604548803803538660334293378057601291236092297360445754893250351927497426525012608377273670138620703894516297553106105824850942394551992780329277460514467157610731456886555395143478913405785081718928164254078604659163385207329197198552325109057279807133294516939130758287474024647649436497748220876761234479799501323826400976314334734460277465154567879347923395692504898254987714331040168911088374441963639135214357516010231637047821786832305348189784939137858813945266910172223101179828741873452586820594466198463395476629470154225205287081457100218296943807514634194160065688678414508497172684732795151099184149562847047689603727003470938975290340924510112344067731403320898492001742575600850366366151727869917479884568793137528300618629472881004103844725452249583474743487027807145310886057020803007277669497011146525264979687623352466469606549361687475519448474902293864180966939787526886094677685366871396473311135326176362977662994235914511421282975289705484290974250660994209012801087980185674592757853816047032938103333248832897307285824367673596533794198049716683024070694881932559948294777342063033334101825707171843279283455325431699858046243121896256050617959067799964051410342952771745574927592434685737102216284609941954102116219658282237796959189648999989710272816446601163315606624782776936443152841783144624470854325020081793754660753573443980470724009077148817413655339150306337625734682149079268218925796962514306333208596808030437522542150744092711255696915875093486747554863770426612323874791245015759007149401294930002504660240526727953358841479054534645159221624937220435812606141702600988493591775987864077436170550175583157152736889544597378514906628348850842098967622628361486634102191916943787173014405629071898063252305704468454863423305406420350507190781677854311092212295111177096265593790140461606865808375320568489243337125674526690658212069395312332781759510155664410626005001947127932321529501580147331054734183991954781089085181885881968671400181979566377938554880731437533204785463857541116280662305474542616726026154436163110266916169625608621606749129638708965234715659176317140056098530425736766227789325363141666578404198141365680793576050933727601368366692103529646184458835117320095670854100542187985282725322618296952883667804122116772862633440642267809178289990816632369820613889027691954572097094543342611185424430256596517142895568275936508738914364045216647424629151513727988556085896647973216019115846952812664448716709149210395824910730806665248289082439457148323024478461281756539125523972953148623088398811984231708267005888648910539382428963404446018913319697828533623709864609203117657842800211124916971893822242506359849890751242858833389461655041487375130966543144710717202382721803731798130831776538803196767843398185026751242288056577223209060627800304814951717156409750884810299929256826993435156128321336319359021633270078230249847424502477410188720335754258699177787841963645393527785620186935288416087868561376413498251365326842290629912352360318686645658574191831270681874800554509167696689352631810917989825394615777513107956593403002694098076059108779747758042917206810517897725533918645203812236032330152515774358976374792332179686636428596271803920524331937540856755164152412656252611178302933794490468247666395540362885421501714968454692281157841987202432341148382947101402716347529752288400179240629010990194433518736084353558032070433721181024078945162169744185359076881642663220200212081026452838742035660678288135035645788827745334489921341536152177000765535939836101476892431142596101446090323510675985986292770817893652319675058744635201239392533981527947744563998515301959938853739393341927884838048255167718522650696695622057128391475808415674431300218317012923540208258580215773860949852165400847224247941653599181227310230090875432287069084485546092106007322190867808061648017425784713712271733503895249280668950244144105481767333306151449054367960196668643741958244865786128339417131099955718478542306041759031962069510924570986262554321668612438800381712450183488641409805680254277120082097311938835853877531172019289324066136811182408196174212631274157797344643988517188188589299780063630983997308972115654915900484935968472176785474055572590969963401807702944032550366283862589178463756478013485057273075017772579662230870790233954819888019232544202176774440747912644572890647628421729198884352036547784047024065199256554362012702642691931871485297904429356340904080545872674871249750367539038311310642007502285680957288409479634675609736708466854343329491899848129668988209291080737044653821847132506838379270294081544860122110062352367831277757827522333142330683972207490439113184965604971355472848184656338193841360923014263517114300668444835974790209128513199702166072704536034847862687248164325562808505537678641008955120136754934137596271661252355537213119692409595016934182515326694129874660343362559552523692149975803240234697656828205773597005978518725794078445930191433153380881698532696255933344994004792225718629312118868469853485748253567292263025193926924423223552801872194811774989718470885647953564655038402585929690827085348123508353463685803795072019571020670982440998607607817412334849153786503922004735935592365142276217576559176169533456505205497670836626866724393917549016401068006363882551264684893737989771129333397420539346286854043661933924356056264908548966454789313522650210048648484920075161976601306329488167374656576418580984637621056079471648424978782741645493863030883298220195078205770791048446267893232775616892658270214910223715316751270255955056538008245944624114921880006991539827361056653559070880118764802401573198483783657466632651077032395042959615534971756494039265839604612702467632485413348346246630901612301490312035471846102530985289758829387456726921689747785835529681605966508489049679572177735205326344570474333952912082222602824770723005421726293029043676222993402789360884320822127601307895234986710379844923179111641600268377277770208434427584645594317079412256795216195732879398039245169077558441691496146733664114761684686546289442226842219412761884540201092763758133028444915531024245060485739797615773322557724502530564544381271396113452679690223910567616075638821200228881408993071829273406803332071732193885259909857190664575730524732350445741339253438552347433984136811182363659983192421372268980408525225822737894089590723999254165330341305495605063240734864192282778165094285179398285495839130224709026242126920975131303863839412706023556991339584417159304756374242818413505364466487630297768607935794048189405843614184756217974417865599873126330410889967890454854070331048600305538409877743015797223301108016166140229924795371039050512054871920211100908385453506809789501091113425580563603801348125218814605156164835159611905424129649222627649276501613225187384719514358736222203349963931577218432798783202006057656740805821791093349082117172224923297823088654721849505265431004148285051470933823824587390609392237061448633906265880683410972698037348847777998913243142954271134479420379782124220483680323759675922384158992142348502353746081571124888191217356008855751276325358597029924346444616683312460155518243847364025368337742176654614186925423954252331140571764018451848511549978655688268149359565096723858432999808225150372270222559475130974514873506735555084280885886105193579259512675671583500448704491490714867305703748804551623918091919333587663911393282249341522267017585519137677487675114382307716293350392051782661234627119560337642526404913688221151387280942918734086766670161765547346209905167512531425258782515160869885050366148630186979577579394864435074403751917154852370083216707622993770401190189306777097938517391565824485025096049118519625670611840551096636811197067644519180427880694383428944918276884138423415715765708786759273221095227630016054519732470701182581286563661157730435171029974607064705133668781490643434427350462833534528890939466233114563123732171595981604281278709788713919891230924158940779838148833239463384464736559134914750339468548947810276634283792929388483047242719698887049209232490499494370271275701594111644137039007131969929527976706864789785792925508185142407979843597928293275170247924923228420141052953904336518246181178423474640715499682543491336110916731149387284805230060112568118606255818951291040789632260544712761603539333172661639569882763052215664152127240619326727670597867022083851765640074112841157872108889632825207533238768031472950264779146160349791140597737284432690098366090115172323239079764197372659796725598523085992228298482398056089120839694942565122558799029422825173358976153565095013364094351312350206659732663773621877439565645032576163429464445846857323491406481563699844084081108717101434482789530271521135876502285591304428837090657967290019231281820196800534826321523037554731396869309834222801746046177321461864086703342612404139844752300091041909620986414618703004648601572346358764387897478966046938185139113317121660146724988456574565035176479021770430306831313510943200113723494820917396106293651358149696121349026468838202095708374622748352418697788096034789829736878254682506241568491827122658394768345820034561332160838658013442914378743337602916313845479162437422875668229804294206629472064149194807351667989725980788021018865064013319880373623229674463388373972808072335598594132569348248177166562151283071000183860030656446422352065160940468088495303409548453057600053523319051993002472242093268649364467831585745240322796885768355296776044227109971114643056879259737353146049468927096498806421687037229065159061594041461324899791151171589851803364307018618946970569606435731705510723565819365929756117765209866166892968135268371844690227977190791728739484081756856060077751576523118324466384489292320530801168967675730222868871321647413670518503430470134230317907781926009075061143654426266209418567555186843119404089688159563649643706138992145290887123257109271813084127082617516544376447117180801412531435863946916419471892016926341215132751508084186285819253168224000675793992816901457970949022715711510456828350324253951777433140099296751195547109524575284733032646577342826534503720094195677774358020276392164694334036037179906267969310956155675489661433159114859595098804318889314478697033104575845328800583628774399580454030830877880241500836378848000554737206783636438588019918741557317783776521727612559262253505430379157438889993021858685825917294644093805177410818272510899639194377178859888512312996121797357751703058439775027049393603850019292010352318978315753340238788678410012698922846186624742937885767401981301037118201804999552004381356563145524652790287322829245810537699211439502292355384891421836147465154572181814073012071834425527169931778563208761886873363725284086878565413715517968394533971084427361018828660897976569253803241348961115401526583680802876782990450331813541719973159857770719320707660618507274718531154603957490668464327586932002849575207885980233267540985404801862147879118590879129205435252728701793576255370399738121907031494418974905736558537722965684467313722556620199081580034589770319253178074190666704947263130933009686676003372964330426449054032663304289817203852861092052879056778888875247969380116717955466674969776778153599843844532679560092232718232336891225057124768863655349889666513165529219710413020306178741838311801200549309218129840547965906013877207169500715693488517536742147715609108604430538072975090893462697019545478336650475004653351787057853553245882242404810580427685650366397392873227702065216380714091189272408110504011201534075021391351400524283585513710797481936125576392216236018252378168506377450467073524176839955896891423410013826177075285420844642753877579538978289407189709405829912656139566578421993273538847223980859266281494451780901680926136802925583135432630755293819896289946593137111244514051041256696368625387087069799082620369961307885948493622585175756957578851843550592435168654453470632666014209636221245950477252829166168484924857442122733821120163802405668318579566066905407096463787746509069079158017415804373917879395389543092096696206467655865114669381165556961270240188795928501709226169360801786244147239523272995574698414413284635902172323554528485416605347960482355274954923303858240454528200920361204500901592893200102416970383255758589223626235381011462361630798403342842977250353789201609757705280762257737726996375510061825296695356315154195347029209886547717894090007356770295539907094136620570241952683264444033581049607674306554250704445489856256738516152696068773390064488836651686700902855370774087248365155865287679587955874062998080557746298463742919798805639176441654017247441481659771849284085611837098398990493148746246121581007812115883996612183121738352523427276850569485741288572643293612290553940586023176896792782505109392190947659392188818752491821150935031637434671049898357199060541830976038939559084591664763259385449523939619657631719745117729979326438327032475042837312395727991686470778043207647508816275984223694209076891223758900596439269684120072343478064324642724822747294083294043637379183674802558999164751515171578157753652974796258638727766396718546919195681364068524685182278451003620251993866337069606569762231483665608456096362386334132318683366762241323807224656292914712231503423896661238227065458696879865769953795036517531417836795717235689466045496179853901057683131752201697832801196353935763573752804019480718955168008298975334969545784063656548011937620690514185682595247207033499198991710719135593132527290461727917698063105201870238652898379314401674926884092777324049975039146321959884468890891447548442242682313677837679967434047770000240088144829705511410765210113066668720002001464177619714621682119683364238537765854246792814366859610287027268243931029710876158817694221781495616838744201076700239726224995949929858510108879612313002056452983836648823515206255270004169909299544073150846008185093018688261048838339769671224927468018088058239722877852662626406089666671301989675308106192472359571315351645865812253475446718177280399476255788721465614142835497552413406363896283271365330136236282480518213038011077931085046196732857080611750783711857611136939495486532257589341255559631577718036993569988470920557768942467591913183744513415375371437279302348004941806604573179585998424052820271330851692487471224292744995686639041208860131214018989657180633362157040639535544527977083348693640178594651540023657302503778378143539227725307609512924657687261942626357619056978382888227004580300492897411311844045697906182030076311504402977546796879531270421985540517605297209471734662983111159615406710097052047750715541011927305238569154093996986875569307901381490954202452812905141458985539516659113285524283902690003246150099466060911364952967123452770332554981550557642179922930381939027395780748502853264462311021633128973244416676964292339723782432906646914514822283996810860191461549040982532562035878063081241817278535065297224056261436404901783324840709035760981286948191260227930327924590882081945469309931834811209883246367696482582380141716628118584114077204667182003223424916840198069325076949950124161641230120266050267141139646863370351542963066545137238625964799478015443500566364436418733024960938992628800492250853222342109749919054223573651103631045572064035549255030674459061898308721999841598410812901332342308210400425746410073444735559047238765498161485149010921668944113040556965778168450896162384704368454328761665449123266037065732009220838983469577757686091936745748238879963085145234082322831757444870114606700448922189030332083955087524076996029674353631320186712469336450512864416346158819612332009245542496041068316837385572145653626578658281840565047342046998272826142701546724150878655407097442313181050385404106121886953962154248278039592464108295555654086631674771597999089833331889116011143100912009211318234750031418011044313437546232193123966281991396366816239444778329146893242504762701075636541711232346980359830125229632084617977836518403947397106151152595775055127096873775138232546733067263999958779289835765844282321419910519887334447592134222502416677978295734459418364922522224459816178847556167681941694696095559371987917008891868154866927864134616437837063464359931571233873286368054808610583361277671662557439521725441782317381049636398828779566044933536998437412761278844682015096009301885183975495689913262723924562118669396337536515546086397956822235788023031528167412149136964578686382083182241355054545604911596109139385148782050241051543447219383146139792759516164921636941959637117248513262323843266889882450062874884546214481355753370418212657067235791132461568500684747856739446314321748418928791073475389283723013442466606946551145796930727279645211174038108218267632744390661910447073388907947187041171785436113033491290999264761994482689333744061379984376089927605973241056523072696694430656258062334876129536479031089494590793903976248549821246426606224135626663187351158726761300154052100441518698656380626911802718061606776458645401667454436828989365218967400981883823777707441167070200774062416696472209602936930600447819384581258417719293412309811254139462834103922541937296405640159723017167733317423043825628036959787842660237704119176501174885759555497584722481686392557019350727852949731000331948053288978070515245242791174902634875453144591674091789682529206778348336643845740374435126958718099174529459209303410349354113409789097423937961510347396550254221642569357066140163231659875845880462481602974681555858026506085098239742179172887746090649011987352866383525015545802088872423422720491478268895717482056031599822461355840042088433465426565593296831227263697974421682879753994571015136597802644840001157464023056840332973991826670431017707337088498479976041103313516067259701884569535266954419525523143529648187486933709549771265288776289270648778406487775611365243149969140278173554754834092054922239207661320244757102925220151051836468317665852332898900789729137657574367471323881332976062599874413306356840931896930729992655282043831936190926299686580478443992279995570342374552968941335483365515051298446217847355339462131782350124989308190495512250595530939151446348401467547095566896078100046972311599636216596745730790847751500865887305976401682576681716323044303618716633281709762525903315832625533572059104364230113975376153238103848909638337279891019267824568073177718000946928790115991579560526352313775683028732407554246034897109252636845107595005931123229007777484658691896991954002647785925080668495562562571725053816156603468920048252103339029414558825191218488127631361463259610531630640785638699598481891873979431262231863265494206882848901194724800617864560374483239678339965720546114663947797354987921497757191393381057551465030659088290766863445972501714895529323492384737157678136310444068363875457971172214007764722463406601908086981805043514635954070312528137592574631848773345732894258930669222677471434783152349136940819358244663450310709409399402057130333130951115662733521802919649326805196787822208001723593716499678656145660952467367948202631429903586076898180229728095300765096300259312591313126384753900582347566745257101063960147333651262812673005249230671101036869692756727482479810619069664717855068996750518537164556309831218235997743176893022673389880572528098251759966426967946227896444502679754829717543372733785741133502309317860517544633776363143300299246842015454500247198626448588265660785262632298089578693079924164882908095071754709633947100521378112752499674517471958093761340330709592191777225927598153395540929594883978532089700713994992432070013842634853589632878736467839228742621420289382706504172443796615208578008523057107916193151558246940815352634519178520477219965713212600708999315265189346262900154353578193709682008977197882430196824419343807704982185104885859465056447110133468455441336077011234539131577047314640165193445631437667660822722257104806971063704063438436087596089161811517698731903300530712673849299718162454179467223837550999456563157133345338062238323529717520336553275573948190838279591256658024440868682479323090117832403787470271606245981182067672391107106937373504441001300176588955723206493097648328606608065586535642687276949456684107050555943020804264577147728356339748541377849113568302382649956703394776269325610094356877340624528695126125559708002698788863316711896065406498482969684360030164557655436052853793790826126099723594285372809817839965959024954221797787764007167088624132163199938453100514557783806399163244634674829877945268013798640043375696568180488226857021673483791122925786357989858999630542415527058682005344604244595190489788677303208031454942426401946846650972333199877168500462446740536109674795815079536696226573187505667839253512611650050493060330255417710988853698324685847566362922360231844344935910966077158630520134122299466124107813774976204284991729811216797747062434889279684980175329791593696776845760718444459026014157118533925280662297227713405830198288479138195540566630137207532430537867197755530167773430426544865699914915249516595775716030313711907583862275052299853563847104568750590909669901710583486704246952698012719910656766076670981954521295051182379198189350336283147429117902755218588119444535963481681980493568707993362994554332165839901234525265247049022798600179259275179634620495585140749578359246433673970484160534942269881997962730219436264874059561252287154717662615825448755156163587373025123216001888524556213682322790967733532912279686282057190667882520539049037634019614711976120336479192114656528457152900850262414614235761317469722628722305175941960368222804430122520853728179389959736511229620218048691886125357227051306390651235318714441939143165024471625933707917025634237564079209756420409859821750394126561024278822040081530900388406632283427772532533065484440598025128804010242599692807059162614677664747919114594533093403031471528700329000692533278075466083591195170063722181065014743457966810229749876978688305113842214334911136199549559932928039200189447203623305424979410731597485219255130911681031546134596885464279533469906838632595013353035508247171508836398088823807726011929510711716419959232280477563926567200843932408088370200036302338104066465701987406279239087608876801020405604205961237882467319429558179565310395213792825341816848063117487533989950816398142778186229780645116357555916540962224644379833733757318125319873977134160913949879358108702457049523805923955479285902479362998939931463014037638356270717349441770468243336087831099073841941149888350029010639560373682802334906741347852940283247912616880272012751719781877912108233638246737165336782287305034093748256174913299546290826699563936468989390286556883587178683941248458787150048222396862683208092020484632743441343932451690695194940684337811369442227387929567961440836026380055216845850573023062288959813052729260195081025840064799018117433132608965129171576641629594810279751554772098536735526405134591342427493878096289667582874388595404221534850193488969224180786738620955116770728422272658021415335039929062400325184334498192443012536317890389182750486918967586772985138157592745191798415627400122826414736987827714448115427734076402821795326176369219824459286406907151864013080182627750765258413641787952461027280581405461196846107157699786267912239183225899810503272189351575980584436352769544271468919146468586377249634494624458866101265034729475641447689982759043777561670759843016886542022902064937223501447979729457962576172207870207318525129560390370661207348093795807905141882865260849198812805016358563606189342372113573997686337524906237099072951668775676117403903871589482391943265708775132365325967817255102780718785926076875182610843118075298006298462342934930870328210489902264983272295259647965062522258722036722643859025168858081280336583549033763556124604899014985566908079343108877192204568325744070323165892144881738710300616990044544223055376920016352343779543281897944721037585289406518110979448773831930617410985917907745020895883610095062867523952324063777390451155666528964433934436381259730363378777104171515604325029525414193930816901753204458668009182200867554630668905018681879779273227920860920828467071662759731761963589877261867653851949201689417461856010200804195043425289652253746207854418639552676464904868830623748759477751495823509313363508974498119193285078825818817944632999362223321392143724571957374123816458408001192387163233033894439858833282599401443017271290644942081748714990235416682606954997073841124289745765532777678944446680080599386673843493792527706037300582598948762949394849857688548519422810092102759755247563708718464831753701735522327615610929389371450103281864919673785754764185528062073549045370534107592692082427358267955710840981014041956128683710572919697145946674746270132044477718553330288159899918513386687972126481163083432466884763476364309798567560640356125090435428313472175613342368927841319224405765520937133026928780260763075525488343185789258729629055846998622194504238000659586533335285237088688974361594782289884184259151509265108325039696977457260980888646693525843670066569771120135721151486372476229815528601527036109629234813794179443355076756907863966003485910283380575600843161569481977200351459866652291498126203294111234264493625768953563179602726843121863074378225453795409538971149611838516537702020908047935672710732453304835940809289191073230470730273121221094327108932071476568374774185932230010205720022550012364158213342369883490832953854167607179864174293412135516501208145326444258808364162228984027191804739451889942332001750000058800350742674829778675952306743872422444397959314777787356246622967434544429370618176822442034537696704274889864220828242028437737597357649369366623499011365761172663711207227896788462803180311613514868352769895514614254034589147324440275007801485014849248454386180189953479320295964460606928227500860673042899125440126124729726167018898266369465542355881484679732246850907031951541068855796540344636351259527897975284855201687793566117094231873264786486210069540413934316853739060363020533542458737877958162285726400674409419617253434985531670096177891743413956422361997711667634041039641749350631668752261078090393913630392924075245164486569311690091831471101757060368200014420258133115819802325331335757847223905308122450164555058587661740056139985369816172547338320033673590666235147452069915186202996245888955740669020368312259307852285095738088608457850675013513451030865431555189857758843336434793971080837552530494908922918375390132801433753936860160029793371815925981069496109573801460870900356115285677148659787586761374651959753928087053943307547864884762430569117626875532017203111007298218706917658286568897706291957285393145213482092064141630288879888731720233532813124858078050399382841213800953859162142212893185978965946507369449623409024504312826283204672516792939430794113752675294615153004262284995170108745683429171048680138856077174411248956184000637240388024389993613682616823052227752861181635266633057894676389884191815798269411352810036784572667984427771287528636697683068371713545894375156162965972808685618005471280108718704635978893374143292686618170443613832104661904074885830163962827842327156186301531853500969772104018813947193796494832894183384155399718732152894103516724033519434263199379998580726732907334828491509334841223266312238620811322948802527041111049047350235918664988842178568450318945585337007190634703657384617335603900518838177804046376628274526147594984417924433738986071301377647247719995845560670021422827323709192373734416668717926340247268844248212807121431674708659496934895753904071794774129250854856948213024206558130069943826373697665634574703406905338552129039133945308930162513649552928129569253434106963922550912042313383554956326687279629242752097867589696265066344589578551336089330342075178668128719469670826509868260038116023393859277043277222359327227622771238876723485432507875299747608685889957303227314173158633952236804896297855134234672983011618489477317549134295114687777198253278649356384372507174109822307790906014915995193886918494176218537750440159614220790067501924545278736315909150801166384651585639539280083316224492517784195603011819204275273989369702460977102720954866286811546805774039278046609694560640753261979623166253425481733499918963005907531869051869129571938126473345869513385965027384300755399321234179003183773826878968936229445171264875179564668537162810740098550353319682158456542604872681513264471949149195355611079302138977266454426761162780933879355286504525440371175873543714232169974919314967146087559389224476549351081651397993486332993536681568586185831184264035831972095349116184259421725023998348607065560206959421343363576055067936921185248620498388986309093658183935640985869251981523782905188034198146891939609222029148656339403926324132220478898333423715437076436154316852167409643716505844691010608854895043257496574314848786817630975909329649082075889444568053492900658998454977633429647701759581319942483241231486532783593040036510177412493440122658500238860145184455371904559972427085539019417709627765650173740311772873687517610432511249300107788582096273058209869364918147814529051423946537314012559811540536164412821369482579981327988130786884991726832263224168343286044851000959279787485745687333490022708180932629744978963615959695645528004133721866429112832271567588126075732381731079133717429641422659694576336864171018673275707321382900740543405585049140237140042130653983433456779404727143059331535196443437264717290886075457117844403692313370601458659913627436777097352023443379032033883138353483829216100311612268335979834509392587012215118395180611991474939817040613570834773028683998049272698957435791346328832451494836796262999052002477311909533230465365614735086364643454800953570580076205825825581378636967977318258611944566313439095543854489882322814275171818417273204238908183865369704959117671513506476072865538554166841009458997833000367019883841166545496585368189697734519772308557284350117422936352755883553410436358362563645133532645963629500194899301830908158143843708201593011033289768850214462600159317301400634504106565146293816429277459217427783321014635393671453257151211537067179251497307707289999468601124328252739545407932977147549440964284271936149920798994248832059806302854478084367583104539421239437477748265892179871765156706412873722700823524111949394102510888431984409305688038133162229540469427318039933250200865945259712121783362643553427572939188904273433281508675728264754978413962035990713472549173486935877703030549974020147231089852251401131484461384956019076618669035582088841114042264227507136755737650211573657402921879627002876870398930976242436864558181340207195101930792675917993904456064563215260079865928050473272527735702866789469717486277281711145270310456119479257508392533026025724458800068250602686318601221144972379303707575264404669472136889088012169859980827635801218131312485335873044616322609328280528982250358306688129856679877002746328076875000492307317728385310369005642653495166250493441091684210777974168097765908689044346447886078666298210764386018562307097137225551590039379515594402828337869134933809954737417237038590473653824981009002292243244021637717369247134641415209154647655310778263469850825155367749001580627351193561103156428986242366559916292541698685290877501717285194703121133550061741316173050851614028698159954060821512936449229278118703596574118319395605025730851915161959812233658691330830698762634167140862358773854976179866725634915750903325398250376195973641421113592300674673628209434191534847865385992290109830542309056855405420026919752795286256765454066731340123724370495624284550212671525582172854613924938960961993977542532124425081486801444363668037598367645239270698413300424545913172050677864222344713304274972155609752829633982231144456455286570158302514246909209822360951276678770149349356792530415023189819171018635453602847588411103898779106820968696831665054284895146188637538604297846244090993437357433190078220000841304311717613562128196564138803807324754701772258996500788477528409544051360031157526154006324791040889943541784272293023369418395684290400271803831602044185811470635734746581824181039680247015140472987655250115659277825439317928217572886510444502904709113217460895020463035976219273804818011077179097378690841610944808259013361564447763756268489349325652015529730357920700492978585773907286639373948728472333789141335852705932513540664837953750864044004783004530298268970671305679055982593126827791057501366258904999229685826155000390827471707718923303612948397182864158489251265717013632340263852586892211281587462997918510393810106298656889195035815726362262180313246434286746028147243482352747867061862100587446308854699332022079311956579466079736997365941256735979775965051054057538184679160715837901459969408945494668864453538389411844811156359384205321208866646759335296468557895737882162277442041510150307910296384483441414452377314705626343116904523417756187473474570782555541547443084211356222219019678607043195848902878690492480994757444167741192672469472470980793029670193420698264051317872564356195140108242174261247745326113797823074033056253122583562666299912179643316042374767944465787206619179629755259396980903714002244596251789569778046360511702844999631931463939294826809436394902861942921447520023279176689228285083074862891791155176522937215440191728474510879253613851050661117652486384821607645567645817931168819982197533656087326787733656682942843407183756119490194447601201403333239422876340361006381865117996457853612612984491133758172900337087748657033464299468000879393137717466437861795237870600813629501114712446969555090941258692857851603888239925831396318504130560927120525410867692845787775253520851060739648150823137991700324065857147707944051936421098784743704837980489749271192271160565282714002219126178357281370752289530355695194321414527183259455118588489321864913281300807760825115790299667805113074877541171822411391586752174535261604297917382088256713004234101416846413605215783469189254169561246990739776029409967029775504171392864131044217169123171894325265586737862419187709970300822277691715389795774427355807011743703548812503226095585836412384063816820156663461416714138012440176374329049947375993268634744204038319395926978735067549198999145990100049802147202330403201464125773543164006119355450746636912369468923449929920754257466591667801836421502928966197421669906547268725644463770854274983837399454320677142252649867684038896031732188014844998726016023733971746742675477325863089361048983839325314339000004390564394687470668608164652366776985020952037735210846922779856592749867900236069295685153011939694540944577046514280982414455438579584525607171722047196917504510607098484156887726416974581177667660044080661392975983372127544380715416804480969808794365844038366490330467595602120525728129048316653459362595370948109112884754595559418144170067016028796562554937589676780902322135476130542654128227196904537591720771360851004252679700670439300334307560830508022733050803567966886587754957165573389410468178259222383620070361863715275832810414253244784167656984515422948087539422911530869289521621541151117766098092348794714115193206395881582054729824541729565075716793964666271040196124818905497284504058169750309988465216489035258881673629148629019678209542246108266817619605267769819942673218365019546596029787428122446430256154080550013147294855540113423740377619960191824401405482366236655653834911385371945468420572122737333943143176070180093886658322162088956477317011550246043081032916656049547579411632892961781967134728584740362803544276331327464440321896285571442086055138662248324319693130854803024958853636388554627259232559200834068059430197308479366876237319055385360317860952148309064257523681663267039427937996010153242936504654613118005454303243475221927385427165964804261933684693106171734435925351403842121670509170026755706803306366260738260533929999749559866487581285739319097733007073420594734939398104465172771018340570638496969829036380484397408447482570812776703947985033039768646172192094653451455627710278674448722143728350711279106420087831413330540521002169381438460548723278216386050428762208124817616555298746434380591711583092280584483556672697130428738539733791566564127054286560071911384472447462198193145280397759298890141579166691536553725794052315145854310178841689898811236118872200923299694546284013723316076973254890144808322148088842451459473861104947941615709218145884525628691638385225983964383186763034956525938791067325323141997113017384065817960520420294951028003994802425466410035960118358942524910109619542573684410234798316938968874461277584610040514569919863275161146420933080776529593010560085712713671161358736006802130800204432308350346171096814114589917033793581518747308957950351615446565404585849988805379140607364474182372895454463784868762313479347053576410862382014520357029060501675402327992414016840239482189969709635995939649337450567114653677554251196891016741466743761777397775738533464109507895382413951905261916280748526049046369095311467782694749508061517503644605671336188897497366257007389581141480997212566817326949009445204366413812114816845228022921903636193577062641968121551729137888350190741330729482837790013873322513007655010832981508700192044639348080587695917548623635744759353237669015329569470532287317864004712997090217430421914279035354246116927248906785110124241117636686436171520288852019313959430172751261610421530578708750692381389621338533548345073827781091871847456212082306946361410629433497524637091127960268200169605216899766138052077618767791906303841986099734519856525519544061003083981395926188403777678825576934901081682064204856311088252445454570146351073934785078037008576049733356232911532649703078211715540854857953807727806317922903759528840936010284549801982923213795234448026125670900934358422029329748930046217696113231646006115338287540427438835712684378397614840631323901920321043059588294150088226485503806551818440058462301216440649639666433493175310439538695655186876246420218761383618567697222057393011526511627408315209751590584505990280210601345712928088021941350236727716218923188014348341722925453300774042212966857042313638071370940750694299246251563823534491173122795957373272387264403880291461193752697454550751841539926094524733769830548184466370258022552205952300411061731884750218982103391191805509171515685870911557381447081036256077663345121245687248581021997851335355895715086416478732689732850002636639826832462469753542320786032859109184684244499923428654443859139924365274045164611226928079903157017127815602456208314209026142074941018550141047383170245700894738096709094271228426920592881189719291529427895604347865419778184032300440034306209228571128824383592547852603249890499457840661654173555815572416295618804979695829056940113108138822231355695516096294092462904223976871641888266028665977175263478095338878733350513448823426244245184078133562970502470146400695541374693965585316087891874134165146316012231101201828478952662024082879939839999463354222857192461920801603459504086562473826335532580027789038654319266680086208527926385467529206844122060204543405754093843655755743447762245875402907192122695957377425485510608302246570664577943724213750495142502614526944839254881084736540203916224634943068166716415643816827067165162051373415464236814630564509244749592318613100200292985599834948133000816977160725661641032108215240306943725825213563716455870630548184173691930487675854723183576813570115930613998767594835280813393770524364336654783190085369346811549568263753944131492600101870515942601090649866649800270222968817112322659349696062518334092265433176341677652527392193034265928405180274298566687934540409769107862470534786688380294569045786316953235226877624907572521071862059675090090552511098802351847033259668343954608004271970605581515755403900395400447626864512249217679147951590468593902260564288144885111270188073759037590402154719861438824275310350251833532184566896864762039178210703445172601949864063775013783618658897998131754328246486371428412801581829776033739747731802016722307950257240040585384051656196121612984966581843207218979334117727527488319058817621055956339928825628370379247528645188798823417059787129196049823648036806223564504330254353643187853498318530893697604703471356018588860081428438457538614952316371593028952159508155022814213036780361351389338246829807238569876581163653559950732634840001648479822923914835714006125482221504629785573571294646597837823679474481218800519791812099309594395039017870213654965882478603923346127636509746850003613338823283886403621477421981184331552420235370813940987006292123451261540688277305405196876706121852576769619540615231731709278476787532108196472633357839873488716379141845683649062081186004630820293517001471352128976858332022736364039641093462492830357612584001628836503598123099293351676566403083042575062404502779128116451086145011409649774451831359377170766860929113464218954736950372897651728395159279515598750486736529786540974126920761893508824001598654136527205946540289045073870152344757870242974107387834922670285315646278040913032635956090303555202234528464073468349160357726021221595788159536815339028013015471865371469993718909652179941075225553223711530472464404466219838999753982303248973268169111156728639526808806419795431279827671156985621080396487195697550487767641878427872133709991291121836888526504556474543393532451459531588491952667266535600325652223298500461605280663811847271724943407259947547971309892466676166047263066192927860770183281437173780314806944460207134554385426116738492910355915097870502690361595342566638831207559267152342658448731932322383470917905847078187869078340589034842539536604519973440368234850620132645642940421741230327480212789996011195239401480350339593940723756365365788995217021113681040894444316571322243293961796097212826719872964165836286415216151782899315976700633644288020770158163130161545489237126874859353870095569916230419059230004492063658028604295575010426717617134496104127835203416328679685228711602023448485576493910466737197956577077524867562757721273750232164679924672478447432102889402633859403874836878942145231869074956570597360962542038812066897822846629987409132205301364499588518299155915477331163718074280737932572800508191637338404577964367459906525170796049077537612131181440571316624190270433460322083812317137916354066060214879880270903606437354105126154585939212063310289740079858405515629713053995177635175833617270694237310612260420937449140259902087402147122436563615711797652512043268731027569349959452823239954009969306000326562592107646132553478242013828013719109582052788213706419182331556248100524272946302327148084638879460668568887144933087048853024193326031879591177105522164209582735481089473438289938181541296905257336596227606439942009169480333032138670580454186697415464995458443516805639540994101527709003443239085423389495016812235325292538029381334378170710660553020088490979789080880068497161044016744859477914509904101553681306791817273717108138852546744325861977186364726226142196206531119638574251292243669228175830997856917745928568776077120387774565627337006210351335432515936123403892690566891820056127984314818955224785963746134755363328907429037803105437228150353083050668308885856085971872361011012089604499971999790465665343357605548877080917552105092413390486741907479393859702412315960464593744437987537366634978422464204813598076351525292320848350082657299732391722510924284345706657506498535805129065300298618334363276031171189541296875477715655567325667629796031091839544779677569743794361885416222761849075284476231369625090918815637777768169107511388921541718374936824886718659914792208038513340247342445340687997508566955717496998953165774993948173664599282192089658169859515551618396978589311785503044196361335207371878548066602601978411464297116519379424168650066460509769593476945227565623131408590453965215381565101595336256715233870758193102173931498764834362306724008955176683320023273033470616276492992189334202478463040207521364372814260966719316620939849129807022843322657491212531271193647647274255647983101379866993742408374172503269949140099805505101808113234996115067491442835219142839323301629827434087071012740274355646651579351896017623413530061492794330893076364352137232001643752307562117747238111598266211132394102583078622223589661138827301058301878677393886057956242029704146973866366067669077252673769395376051351176017690459967769921004182369110979336376027192507340367858284211675361434486502413317259274249032178289352306038393101723712827945276679936998611784493948508406501641334161617331984415483874296449420148367544979202395129847855230198403253987512295302185940425449616073630059148929848752174257070108963908783121956365402000021781665084649823039934827463200443623087351080093131802075439321191772140822648957306526824415979051754987364147516039580510820169406080011720803098818689842922315650412351833896368046154007682229799091852139352409988601474437712581512515691244448339587451908007184742907563654174590597294472677634607246856344711105595846788599666597568030403257559269550226673138363547194775839702117879592164339344026675305882675463477747372114749819890199682401012684852885632189374760130113350418329686297059959457773166396943276761343056045933485885721996357336353177753581125827258148554264956218997989174451750401185079460388133523692964855490070027165304115610701159689181806593928125278742336889560866357882049195593524650854251319401514639400240085643762197050980964005124642711892427934544484242701526268470718460787142601986340235639260138527504188699366644140494895393968314593078736014793926473619558666697988702594472652821947092030194872690926455362675249528422193630846284904336665065592086682578173253297133185677506703250874895081810444840055696861569173464195603349001752000639222096086370226908788008972720427180600893600688392610685121784460526305830176676351539694638621281804908243566670652735040557804189956472012719260823449383434501418251453736160626582858288162682492713963167741653076412907106326673731631763230929664516306752992312682660423454819231297895575761815404954177408985035353332476684333147913334726351122619325494276808961415477665891162521456804518797827172666458317088149930376184144127392595587643132003650531914489061473463501777778119160651939017001672254125826410109804848074637406244796940866237445616290234288778365155741709811507032949840043509930002445858325641471195110072699721828580365241775758417907430595693106952029166839315508452578803809909321810404042962524753218497800785257213272782929114638838876599948315664968594887665621082784678836009285610205789828944993583220878349556662227686753889945005604051034185807780196219298810290925666588160958789437984855755255581429490560005552462381084862304306299786134271686752004712888947916083922236281673091421702284689058414082884014757516773089974107378134733645590552973711268855519992067012589527577316743315260312238444807530561776155325955932460619355917171170589501737080858502745915738503063661698549119952997210267892475743447031189121046381235466303234168301418713085996683665098964013213856117471545632555006601803435352637528546834614350765793846801763920932941354066976580001390886091996898574415977183900543831904247320245152217097593645863050190687659784931408655763982130207782920257914250269003568459755324373426059444796198001806570702274301124684748538720088085706345261109258662229030507551966577331878003474132898980349251360779854547257763898983419657621312328898147238686529316367135918693193617557118780998706336636392163011340719136354180046046626722143381799336971694771416272304701070908976472021872769335844302013651309389941071185763600935454164990687386659441872306699457205757648454278296595579829580835519886331949003016542126857678036573866365922795176323493187805942234042501992924429193155810641792557138676517537190603868916412531721563101968591304907487253494621984811261889309427476846991122803599381070777695621204008942739677533137167975065317155302702389245022916831649663586050553764383063875969698015412224903304151760714349109476350649615526651721170329077152348309598385749006892877919053420650350950996121329480803480919874898113947154931685496115784666995390222072465025533155588830056525236552932601045127722359815633865385362343226784872990872786683377264863987828363430913267586917772146529579374537963024592654515483837953215853411930207097868946511356333357350958786380565124155492623635900869033772334086308444584346643672030433303793297949109613879044514166839768048631441009838572985833351342752066604669407913543685666907806765877204456669443561289358457383329292401230438802595252573262729554845356452112254153691174748345303702094306634973849393161045702646292820597625467351023895924124948011713601100667369171305856560483428193038622507886048434636553288558108663116246379692713272081005669162864943837715044677677858594346316626594283743377953617758038320853557548343534154916267473215903160494151479621098591933775374363596117442454366106348837519579255583183018034366995524971459219008750933338766981561849434941740594729094623993835892120684109191138779139512623970884772536840066409539984392610523970253926483665459811838493228167759969693234702689981362105263288315634998498948964600704113824633733413223714731198762479999990517245162677228648950175659851229896095625967102920250762645909282217651331123011199512021363455601258259350047610477211094691821603498053972862871860973613562048529445150216813325387640117133206659556233095060309201547428663111894116111402601828660410392760570364424042276012913723009159261007331976518483773185950128573241421667928940799599844964019748131449884433017973095113112891311325319765607419148112343978727656560519101370848057538764582228887292297597924874136148519666535756347382323650411248589209521000543227602239389155359250971741390317267749113749479797337905757975265301689065413632549344037151548142090894514292437102579364321565525520038524919847135953621005304469576074857379565363214378264597434896892830617472070420998486248839528326186736120568848538313894867182542887619239624305373025309342293576886921974460661402567197870167906704816253183296354786872801730453290914340938993538257976851539858109463100927308894081838917854807882189074618728990775220521476310162072602441024996803708075693474314234040196579259702420386976213286903072832079755283559016791156321328538443887944080232610364146463334009816437337187917448521276508352166092955928927909723932603238738092331861416061300049830736598112673724972149051406580094877215380831792754599105571788149431492523113797413616864916832426013377976048025528099637212832568475688161552607825362838804835130286666611397576152820486697181878837576260332990008438990787965279674994960684470944182039652715545670941295587014005348943406079668862323773322811478498016110896679623553942107141974067012429107883323688269827502494715026896763335442105242632883502363706821166634698710706110805296890835021611817523522638019781572605081276973017128049747009256492598926307463129264758842021221043008410199002162085165793972583110131475829984189361369352698170052356542942750294931872014801666668700441738271376564571363283660292766691681881299163987800022074894019440627592487825682664315144270824050189181068606475373665740664892568251830075952817668538285228969150140132936406646987959546182147977484338368264460390822023843181433290991563685963101288736393377636200916090721782345990608736852574736865919142117691751396591737669056427740595196457938533717299824844054344556744464570172109951453553507282621565316172317986382973949275053371477427857451613210826622183570285291426101648770249577945264609237476630636751554578271251882963919492353225625031437821989442731570731016875891416639745224655416403427662272252369680713734906611791358262587419688010885874304045258929996575483829251605474240027543465346611485650392113955759183583759333161336545852480373839998291664707040727133382681711741464346971429913311797772296589113865385982469671378848965614459216703065773013744547810023982711127322977493138732050368574369788865718514622110696641343922941872625950870806638629508497007210658407903960905904358492305154528886512652016542394819695443676615001469721167931774930004632127167875480622374760417953130333283840753789263468221201974622876789759294308373271858131663020760528013644342331889639288037650972069152726905075162934425805456864850231133939553084774489320642726758762448851465822066998148841345439262167827414643178684361535885295075041744912091612459882652785580048649313455185080366113898256259285702513168304342044023985814794329702375977303152780153525971913285076908165308803903495438544485833746450858218687999085580426950170430308486655192363836297736348893460780299790889095315358185971989765455086237877289322113084966553621616612219024258417739418757968652976754253019826336002408313982561216770926120919175083344431885082166300240856863160896927757305247991192957985049464025005894859690100541865139466177975966616647505735480587856272747544621209983067929625265657483119537264328794001117564721579634799030738647460618223934619468980905561998945643480305673020090647814019151328990756487388174248685563201694319178199190317421735647685070442886695410070938334055448391369764850776242751751748030104667795632828115494115501855453274704504183266097695577391834367593322093869503429055503742035270306007225487369835775753863440975365474054040526647721171346430465405990432612708452598573558271329833253370767149325460614537136290745532152326818925362794875653255484001208838005707382938862571492954909830392910675241318125676889255644650342466793864672643065233607315735654711609216413342953159406418286105278788797228159018588110781682752139309919742096052082739446940014442979957001237160038869288183854244292387976908751446893122232125735610689914782420317538790638685761014622654166317346648732468381410211110482212285865504919910164124329281894647255939412000469964579424737257120860593939412113470782934141070978095924975293053884800269285574504025612842480851912204864375164585774817260058138361093387574059191406305650344322177155320783201151537125172083541637745659327022127776121183503308759831334170713555490737717564937363586691328860532161423837355024374708663908789473637166416705334516541328036788143934754293767459348170558912373354776942025882044095204470013433190760780958491513769156828140955049514757103756094925759085448920245417591100822208498763524107766666116724449308896194314069445603360422823886462230770205869259477331805024714813741314529525067631192007706059593299260022487485109935921495604390023689591305546493541728945157632909484064035465046608459534685306068001669084389181399899962944628344416172779920270144476411801285363316049758523672363634935459978929686837168001865637471250311510744627561688437236990831027084091265544310407135360546404568071558198476770654484048697545578321373483595735307758100073074470563113661834643581766759159464216042006744214185263150556392443416997617536809194294709861299037636902904306574254826907040757383420864357857633787074325725013171155702760818237261015931210039573467424896704806467924279786383601957856897412652639147927661090084277865037303568480780532591244371946223729461327354580416007171476022110259462523141479211051823562029377467838617260825486720247855109909690294228807228972494628372067798599545870954227255967363031578941441148496090988265585982468991586173871108154135021747689442287165690476071883027950757683573112524211103754905848953060417456791229513683825391899827262366993792950292325164638902859918376051738714017263800572710347953910407152315420189044216829102368818667717463104998886981569801099129464259211793780640349786545322161395151788962073662705347906929542627523109189024483237945360587052174184423771745590581960872231182743526167159972018150801407231864999667119207142212815759648119114356531015486266192461873102609578512956502862562516529627229342411333537933611417562799206264749298552472911198963574568567465404699516096589875699987530196029509558044996887452030349341730648056598812461074348109446321536985715766914666756971978610872896733727724843664232298709415714359575780378148704373371600180216091786069708364605962939495048136223562557675669082779408964233225489818417994766903308345592084819486084407055736213227779925822818645326753101594717046441371370228881685058702497853966049960870819905650502140122215882595091368056902418697233322941598019167130910903888451541691784644077721286686068737392798090764430579007030050679124640704122039052661359930162059022809481245526689857954899400798797638887129344599504778670930962305322848032188989519735947232598939973885406020172590491129611458301820778306605012800710729508386454128943617994342406948604092536946886501824362327333744161637912534737794411275958981313132670010968760588631245584901561429945759701381311128418735566661535195819017600489311077706426456706719077547204905066951238727255922580948552486585426775791508667063927935562719002612427384351076221219344832745717030590083516801551964684399756420051748715909137037130064432718518293188694369575286372124539052863942054524463418794138195784091798696030060414643916807595567842933859291109222211142081014405384348333598360663401811220265414915374452301735826732392786774217251173399330547854980226644207120078682253106058477771251641611457819127031387271226157556072525577670361026272815473788851176651043606070998178311050328770648656309151472814789621234655062618670603873517820127998953745221973446564474155492877266505180165750350335773220156574768472804119172375400083540532141279748713959154075293882219829255080504228557506643836735710268971683302061007979885424845817961019226021559991492675061690787212184992908342902797306928678061381377784266683497332604832380224926511556952896517824254534897134045353494947507468600090464936028178111696279719103583274787057505573594653738847561416788277029558218708983697543839158625109108571073198187574540894287887569160809091575327895586272192130573931762569432804096763192897726992286461754252882312296862054855446839008421707906686163757042034856242320019573363987802579698933875935999809310897132310651264140193465435638303065984219721874700552785632634226044307975350783027623219343036645708748329369029381394293111948301189923563203027487214661161761894358834777302827049800177481354826805784821096764010407681174042498542550625039950826912879160787387069509527717355011400491498046856666720806845647027614408612579193738421504608977048629956128895914358905565689862627204916835328243268137135023909741797756146251649377115767498620630444189662673148552301190525510322033337992049153047958759052936792426489124636369080058582135986862579739471680675909660949917907609712643050839914366963343791442778332987977832881788349548437006783472851390893669063954103889885683562327925338394173506010893576535856526309634207547150143882219576226583837520851887358609293986792315696838024858759149161916909748900990367864438034772710529110722158632256192334629132357426073416717354670093724534261029054600596100652877454894921595885412230107369963568461639886743278805734318028413717438676506463177009985090935521014586791114628674676439117912503414344505861780349154170243540678912611237371372315831665837072124162628488979211801339111422003358217136869811758088601210697272643635651073936471449228233641678936642382424057235934786434746647221395685982676541276978942887432150877938024423775588778012479901532026347993649029333234173556561987697374335002880949861493534599934582740197905896715668440779661689760364486745298096338165008892730392183235961410743975009467739342181599708514388522673052479279175287099097283279124240779437243185401987845610430704573747917361534798426860412268613303527607939965688851136474050370081509521505111615389070341137194746667123640140724572731526943939879731359808057276479376468630602613366076517503937938887995443965325811782390350933539321261332524864842900704626337601792256927147380972225797356630666381267815401652875759716752173894999292656504694769605638897818490420726425614779964270344479442077954364516225032378680151118830208544578696765042750630912833403512161426771107655593827190167342745094471802410909484827416610191434309992528691438184658081420174612137043806007581071830827822095612872255760883902985096183396140051198493100009399710613213694729033231834698931307873980619949543521602479784775046536601943132838374713844043495803760143095781331382099793645076241574097210210723935686239728045641496845006999305880649602640490988018104293338181271319099659736227301057689178266348151736242615622682151390586681840739946636949300440925007367354117425940666204281061076524854265599828812547277253297192333120126965789789370687798069683052800452157636460728792062365461226007372123824429745617344075230555850306080276997523282649256186649807995808895816274369584688334067602785224554429297837539971802556780683862896221205327063565887361464610075604904147490318083216811382715454213169872462016316829423789580081864454242653827406124985835613813018808543040519967481814329098518935317000402328460180582778128828183924611415655428179756703655038641061886696107588118772423940180785387057140338359996239803617029847475528387512245594822724155755863899302365743115090092225376127353410461756971982047721909616800032223938386353428107087019893321832144518589443256475017643373970677971228857391561596929744530695534886198517336140096109745589702961614722287730905544339301590450448288630941918188495008811417110748988273760240402087096613583255732458078828784975242525269545898341546241038596638820325086810523294649471561763391504575951396543725729198587832160877073265478077587057905566107293519934291399306904618605554532033109044236103698738367818397998171026217651752154957967193926908660720962765296394856320705726169225677949255622116145412043043826702524247728486452307945364547654038432144610712596180917326223964924919375787804361858797567926839136895489647933182278401167287251894859000364530590744583603723998477819831812827474478029984253688855252814687093490487028653868638962944084027666687111734775648421694054731591623051326839868229861530368291776087083957416696000782699776110524589025274196459838034515657579550443264249682581385441079509928799161847198423727822190039356950752513923551589620749960254839289851088824143786185537478480795424499501982841831950068503274921658484305429954020755076701159122185769117135970876161170272740675447459268899248226188425904027365819499089103551186803967127093806433068510338812830032307891710797106778731286186671040224381761314945378170111565813540274112909160464772328883168934019612372587779677173295828436564482391894800840324448043976314717839329526604137762248279500970287159088600623967176482118595717631035823548949051966670935879431395532298241203886831665798548636837642349138725387423900881652147008746122171345891824031437124017730566698952560555246205962762728875968651297992310488080628664485851445423865620703761611201778367659532167873530273944231699421999352949147643295531636342078564430098352384192351248878197134602464521799425358830802486421747657886123663730057344441095683843813032597032678585944179596506993966391433031968893884609662747531275273844518735188120533856452935012586077416111568113530553370420397113694642613138741388889863864481587215897482507581218984216155734500788155273235158833139760819097882933937650487985803452491170801537102328695225996065762937962115100132867887631944271837530682818768000334586031046222153089169767050128679564055082820783864410963838342590991577146540666620111410816016026917720215156224724803084113649532835818403248104836295202087128503757169522312867331206514358098312421631086309333773349518972682277985350473225848503285462431579646230797310365225668449918725623953006860359345890073374167050470380892777793075076732184445905620009024243489910786297010752424686159515167636910256057420138911423173139967410449090976709380665039702095178608317243384810543579843049430000599272451633003338224648628768184875659856331831895821449796728302178937728132903980581337928921483004311574863718644589834667445594393864983768372929794067230967806110729313022551595568680613601759553291650864052039170359966693299671206104296766378053924063767420214265102467160924469317555212616065892298324714821472109657007712236219867050066754755677225759373555411818024414530274291768502592055467371976327419605425465556981764301179037227001238101937568190185536862945227507504937963564953028478015286258659643121776300431834293588271463389523889951446263862899130476969702428701877578043353955495976454091970874165109511802036780039378913783988636829964303216417412641661812209630904048950093214766666553645953549018155285554098263100568856587445896372337863577458590033590127890715504321267263045351031578787681436963324716728596380579831527789574810423745094037554289837252493938042677707270023592595246300787917648138035787596152616527495607207986245376819214285677581569264528919239756235080712007044197561642726443714582948502819193128090336583486400213681199288374171230847868458067219121875749743128977445959251664598339357430574248527690427917521115195197617332107577952048664963957908838700790507649817936287519130640226088091230650756890739092125984231842551423214535924623747989156027913712563779174023428715217536735854996506698308614441842009520394627742008647968811082061920970288538268114392274124450874328525317958952710178620499489719540028752998594848508931526579707044080598881859572125914067807915457829018350319832285881858124917857245696504347738479580254844381158401166875367768440832171748019697427750879941759750824029875918745719037315643045470670810326366776797210363010061930386462632386224454094107297444112384602766931556106168035068187713054474445653515236205176060915568039915898697526367790965547368771155457446716621938397402210224434678648921490546092861628374808310604663492517339890871292233699577383813461156903159088414559396124907720871733520226764736025876557479394610515201919150755330297893736894282965485029658833553649613464202113782786072699886659814518563467349859840027071938684882632198037614266665774874248307052909090336398757068627239726396088546477516854010295484850376205473267979412499679198746808161590587477016743802921607689664202984661065350590390322950137169987092561218780110150934798660609992794227199579140002775808770506923339294984830475714855920549651726699274665474528905077101661020011876844996574208576463555234674357942569550358097872085216633670696970739241054745520391513041424947482980472900916303094347037026895018395433907175635014236582189421211317031150903890613667627376289985847113680920074180192298310325606554201874608016302543428361046894318984025909618195682950945256007420439953403606701981328783054516229563693506676984833499841615163922539935916195311957596577817790680720766167848115743937317456864043781988925787624072587231609548175962529399659692275498488302794568391404791212054711583772650287051053186714284873055386777841323243120489838177648669673252522720026608559065001181970644556458954526835789256464690533503199281545449054237856691456032433576330930845171252304168318413873186670907928853636949187622082674163398911977256470115634763589898840815982129304070727803997755016844049718048273804209340488249167434081523547614882947091768012173368333748677577569983169175412362509283486208070536672404965569095828423008301829256351688396827920144535653503319946873996847569395000307328713518933233891209345288506845919948285133019910884516556203133290805997688526056088693460841361900660920699518161093458438523978167444100406049858093475065680925014539171750093189954238226215200133635805728451861499870331838791365872614564882084422873911148902781022511060034784194950580015992161800719571434829992070925917551063981998424336379848862231093313324826937868513737486900406247406613674283202864519652848795939571253093647244407979739828825290573800616012601099249169838499440299671155208842109764671968872491074515740415664639759004707930077659151595494340955410524510328343409235217314677398411618720230857559074620730712860502601859790164453176923596361125807704172045469735560314370969531442908471575731920585705981450493043588560320716109577826890900121317231589870764349746263834838761386402382616109358384640402311289210725551337561646005001888796444469819619107030560803440646587286394903508355250355774231714349676766041654660585166115598912807402399565762050189330154594440201299095856811888061106462112614237023194265427796592345371487891759267203321055131498508069467807556163598103120817552369908434510636557221131457677153501744419418099917380251616435434236178068330509847882730948094827653990574683044330182106669074386162127559735143987514053961521745084038948926892545288538908855668883344692157799455931975504685466596760933988319860918091998875093567278092879537431906569657628000418493250126323329110732118700532498602778251531328498799686155700289222730724028005787768491580253543314780370578551817502616883286676886850855044975612902274845386456049949741875823033174582323982214713265576855844400501816759500793740890406478545942481190761753047244408351777049169047144933165028339041455380254724506435259094758739954253619519017260266887214800909122774024856878295827891423558365310893255956313239409517052635843971246602389331728962444904475590227956404748716014793157705205043722982563537231364480763019689213252083199609559212664794178257082277134399270729330495877275644309192107647211216002318239059734828953056628455757597938288576611848728734350272380347007924402331024215456071860220482389684011295408512382347610323809990866946797903772858635751891334914350601078948687906614896887575353038775145579159977145388406582563894153972809765592006654681193258295200049241233633949873212222871458741400925752967500967099223683433196294141007642276748663868817571638906292871628555180544748754176981894934702462327679390936968724400360860481728278324137161835139354428631533454757372484432080373604140869353858160172772272284306619959898457745280414365909281676088410401885479567518188040953231234588205122530089752104544325956707514008660327897777189475012864802734766411301577797118145107569861661947821379341859237666613851503767609653943555146189718377647932305782761460784271782101496794355553581379440702625453125051033013320110200822392882684568541731805381113814726960057911506922276008672994284856436801491060778983858175554890105619630730068151397151204233977617485884310599509725813420909414315714013351469214994216859377411309620720745382779018438339392680925050366366271130511018622731377511397969185511729863354004114632203375218457774720460381751589446307797601011304030766458695373001093876555949498843307652394475762350067983385683214278434195651292724414934884600718354901548813835739445595559168152616251565626311935118990511024453304291183196308989382687832773925219378868623276931998637916359202073341853964361576920652451245772415827155516201982867415725058284039751915654804628085693351286894403636241641604547507564321628472991528817921036187110042568407502884241483715071214259259655974404676964699451385105902588037335491996223403341854542231738856870908284718217628918019123883342537387024623582109256525985376685056204432453127444830030467755379877427855298746201342998066372609886471949244932360073439779316282002029904245309364219597046058909406287791634863757919275423872579479561120699487019689666807624848081241364942984497979511802022658530597152444664212699022046777577531196471356315689756981750347549397179121376372784258292673288782979532561315685599451127616586666853223679627468172943890446939778287377070891554962795514667655350702903364050703417856076252793892605801466165625347768926435835594208242140064715823154830842043315199170054955947245918518551760934845064634779800352877802731853105777395664973607812545713382821823795507746751908058065993031056691635788427508338931030736352688302233995395479780477973138718344128517394587099126121899407160822512415767433343308698712274110851759320237453946753112337906299189587238126883741700029192048774309174027427929629757311523368352717603539678150425199967903757860219796718692061313931764323028439756203101947487262861251927856855793904388856290100684135994236655299099043792947105432047487324840766654445330005438511054710302834257873612187040517260777267252378792778119838661613531569793171056439541098421862360320990328821418638007992924486099848113220379420137874950836017903325232116479227557603535625610757386388182009360952363968646899314297218564100547811500459573323068156889915039675671956968776789655967266803182711131266312775034528855188415428543605204065142278905934268598434812473862275745842053273545692614117535325013783977129294244125613529310055071691668830245091280917153965726783391227390673494568594380840204634816569047372476344007293756458146226499473962392328257845757421214985657194861982080215107502777849793545365246400098367341027011400047130807053065805843540744293107301612824173584599911629003369839109292678430836936290981648573697617633894717981327251638987037623682010836880500874483741481977957394661176484082757081457636354570683827369223215444650130638459730992545151741739657351330067344259386645126944662204439754343987919364779455302793309620121259557320483983312353687659142627479156145093998510047377592678505846773833432659047826515480659119498378689547260130888665306884449770829014438003728409607398702673147808320711322219721269827618564636580860318490018012084775573672252065102680942702623911879625586638502419985344752909353167924715650999971278023200140871630990147446936248014919825248884187637146239480925798543162048579350773729679647321174076111994472817014053651880991818845024746777342722861681221605220699592707723875826065181391388955162124460123983187243989912611996227971516370247408970136841837907276153080279613742909111780546603941541184704723497350499937191908773680891006814213378924907481865835698522191998571772146428657526785955452960734928493073469739400098933438985848594389371862899224718567306470589524258016086174221542212778183346415063612816627554093712679722361962005135502116039210457545933848631781256229777408878229431965215773003687633902942445228191414370649674973126098487065593356214670508421320374116791200019545528519730854381419147073034831441628988165289964239551441451571401540067677190918044228360677527938226847359228531654734266948383885341734987041133262414932795663185470337565044006004107302319643083676040646574638338956068168993283754174091390537726826975777267327211795405756829290970079369031734218865833142025815754095858435410813221568598137496885026742782266546080014705013576803740877451187294597800984397509887336004277625059381211805365741633032142309408378433987474387942459235012667179017241429094020720901585199413734309161190601736605756672275918688478932697976609819769764884053677659261786324653076416955879497616786919673726160146174681129788231392876447772739968420315055557986975212034009478581259216479393264793073224484072168329960647839785384078832285120526911667129363119239963622661949683662396280119763962087772001454482813242677122364236365343585994012960278013097825216041473345584369500637929504764172256257284733890789987117517701263971809929078176406901247615936337994744667259296753296512293548424402735789673545220553955137922115511280984310135293412676960296915379272769225696231653182280405650401401635233836506599409929933259564329752723673054700557569831653592797172824239719321381049890385608370221182853992475710991915897851084334505677714227509481585332934099462649165597883991828603715987104747738752436994742487147473841753879647203172980805710011440036431815785427632141729766954647377388492199961943057071544077021287534239042792687215624770781530045826544392378826952087324515392589106604707349108730657038412116682469409041112432705684470691885594312237112528485306298551363228328910370104965825601725611853319429169725660967453069237907457243885917828711522742531532373024957869008348168246026094181590371847952708308396502245985386147272818203431910714998429472472703874858333803584611981541707968820963757260202209080254832712111807950960771467592165330205738567135177150785623518594499287640070451767715561005834225988880032115119043872206797437817730192099806618722644506665027415685948513020609622533219104816803882501576474052076052196391667561699295924201146567594976955945207965543846076466822813813420082775305315280742682616694222773311760217267970860442754655118167784719300262241462790787952238821883369717863820456504380484212752645918848499073598545965361725927091695923762559550839155069810313398093721155974375164858309633398651102834954895377986712369138931721826766254463545645039619862085601135887648664747969641046748636370761148030000309272102907768233658838186841541751769359761707876979333581478493305916086879950553703995756827687220650967030676372691062118900566790369735250761689224460530662822000843311634740811770211405799863188098102134061400886813229983183379806987975766927466685373604192219619227810671031695895028911977998902671809999871182015192217070459374587558565133744637369035570137003181998501317147515276507898084504433622600310206202794160212251055188593916628028943143433404440484959030594657186349995154480106565986815412642638973819667476001653297598436319624964008815737791778093455835535078023702901297535841074931995027500338601303266522665068490445620521511895856993671772196776421645082323352947658977795111381126202831279022975364516850819426642198722327987739361171579131408195215941242779813985339933768603124560146600593892683797664428348711459443875725392861876005771486258404364279611179602178672358925311835743713156610280660891004891286930622127252110640811772493438784821568901120370353083150381885586301557827684831757425963724691054375602237009304449928733247567382324685168313087950607218942785793078162038439183871137723557217333614054122012798982115007494845746654855561128820046850840563861431593814500275094768192894993555881952625826535323570166068265287790690408605835654152261073386078108619874584899099075457104083580741999384777078345485145774022629588674291901537969980393492293443363823185939905152443150195900443975260567167277412415620994634265902610794352078014460098151059128512888886905257413026456007595516462650819048903527889979850081451640538388655856677466180725901500409662521915470606466874191195565011241131461204964753815610896730524893864111003247296600727405795176735851327484334310105124244134935030973897633536153146179207973264329766376886441055320286562406011092848245393960113522065236975638510239824294105953333253512064970979674527074038319739668172645175025676526483653410488257155604841080956449739742580349474447491555865131945541443715857292241499213689913874016331677205636187663536432664479063499582622040499370529433457066289989821805316916907665998950865291213164050387312685449235286296956182908489094010195218887807328104252887272006160899737240937362199062928263766035544871778403772787629216595610698818851801346157430118711096841718171429890880846005018010872595523926908903775165363241253923662165798746830582481265619332520795253771168121036700829667263711326545983529539455478764885570733280324192721167468160216009063791319033995812482298048652691361801909477455029306336954961871632115744204945605022394205419916113825257276460204513050060573094961500046846206274175611469065060075858980684939899753868131435848867042007101789946419210027671604709930691736168941283263067597346648117225536384104021585721588758026194464752640087286450489365057834372960699128187177146193371569460089271299104960888891581967268063225205246901049303430302560184343458550210125570696987567919320515309641447052533306785003190114927574459523414220495851884383147207518021753407459218728150257396733682721525349147105081156651004502502961931722908785611217692622549199554989027945892974512848311522020589732837676075370343875010748117696405868469528475456774642945001999766698910959824832014683407471204107465991641566628305904556708064639517262992651718968746861741784890363255322672207366642213477524302801407318058844789420011705249324051284840516724051550874718820637928397664005609289005584359346429243293826722450409719267196948988022746872272133090199927952740918797020303430367794056030076184209586502713215680032663182402257393602105666293744490489422594926261045373478017323927168799186902705502248754449570789138921968203660260655932575562039416433161306849701978940196038625249933546307045033305507509839644411359086433621387738753685298336672096324265203099035174267585266516611221867586444085769563141050994560676587286265922385335669539048710264122047402384654661319178824280791806334416776274635572918989094074408024707658091157106067395365272140104014580481771782242075260086246472546733685719399083253364937135133496383507715553568469167069269169550563822205652970791959537460039790376059254692681566075049379079687572302552049339118662375031300238925209439508106130535791048931673573500226255133618624647410883603069020681161921396394434539692884189118414692280763731737125562986030975158339429693352030043329073587067719567977642966844026102730526631427159133419161308219162167085156062304483895228741479610256671908972517002418916282300247567523208767518606022811298237728402947973510982843479015790494174154984904331173533782483497675612555675491994024814388233130035478325277596169392391844075811744023499136520777674120719950316547047038959040285651266694837522942179616691080919909440755337253883732568197293699147261797830293959740898889048314405926088907341787141318252453943624569218563157897688713800916275947733173784952234237736947990902185090152444751942563202114335927280009456053798614299438332151412164835772056915718881224991448943731252541020041183290694549635378447726564776095940689300410255184654107767450015457292695337427832391293633124708931257941315599390523457935100556202870968678440317021727365029376750550528567892397782770755279763255841911707650442940775194022788663611282731939636308839495325059986342885356787758715933975121904831175331047422021439399876649160875296840280474335329605354292256702192683784063782712614873200589013100745273738966517770056853854366126969529684920119001657017290491836757587864714910590492831901984241914633886064540004077252526819110929148361645284194890866238407931018850882604155334554360177711660932152134807999669103039663635676833853056786753197463585169665268409768460720333720270651102880844332330546449357025341997455585090746159871438332191922556048213918004542146943176793105873732594880857223303755880465877560558387787271026452362952715419259360775739492837989963467465971372511460266740854950630420031454692658394780187588257648511996505358286054779552413255910077205195642623408445508690001875451369603996657894509300660353346100656368063310998137544080700956114841249933670033508396575954818197503971451001003799925950524626065618686370884006859138477665200668049880521454732704734362622294171463426957379567630069375272876173009165830903768887906399803714557556056247477926294873656798299084364851297362800251008695450695225379294386943465651678358323572967838309667092822397936962813716968023143691066643758186703514854484747583523266061348412588754261162061564016961482159174386821460164215844340705692326301886926479200598747570902329236696020568466390726993709647377609297548245052791525276237513317639293857994272218401013171895181656528764238446317865443255604767797519512458280088414024956114936758257821926444934070892756854749684711546241789860055525169120702468995971132578483935680240500845877271065041670812469231538268771891755642011306562593600959900143470462384927102416026981810065506686969823226397201727738570876551643461396599299547622840552110882210494848297957279095253908324724513838654319677663250105134105782780649199450335730502475048464574333687255871305392449559733758447895774507020609524741170638966946870115998244968037483146401512521870418360933690860975133339135787395354978866675343865778743967636814791301647426389390957380778428431505696674690868530810641170010926538734234334812353328727642648854738001970459680603263383067500657846505092049101952894619462277418734545909848931080750213686567563237339894545109014149718881342351782838250016823457061262756818279777505619105486500932826140098210500119463833973611797678843794355045892326274191619759254458839803798320823328962496648917541148568068369268844603075349707964552108165507484952725739616742999262352770437865576388086013018733763347920736291149908316468787194688633050350056074061056329339273826039471768107025404022618005836588912894106195920564399712858280865228430335009342939026138685894226386376284958183192653171095642865585984657061578400365714903475619484621264890176044186361542262555758612280121573657520839226526991488846050407292413074655860358567018654810924002891518416332370276691996943256991701612894242818010281476687351924760613446308751031113839431591690858519181564397233857725973432273156332806093103375698382133854296884484548635572845420415045673363704856923466681335486264466002549543839121836438427616810867291608558901960838068043688675678549088548389086229580246438677255435589680208571209767046938830415116098985032309791639905232055287232976926210654290171213282963274663434783205208684823416894954628040119151560711308161926343417465267029126756797111614149466679533165770024478489983137225236138458389109448378794985178265277706653618641756984008633502627136381600176763907557605221229733176265122327562647939470864167647153496801364415826064646085536354724460397071615767564013745588536174881790153514401953792740315870366111693234752589909585849420188242995263765428028784101735102703580632602915302611806447877411271308999613494459217729483224994275801203751842779768760230971660533442740392969650742662273507051386234272241609763321173827379840696996584005837998505832638143901444341084358477272329314663712682981732203414769718421712461913886632896655587590423823551959051036674839671551358993045612834424510523675558163582387735110701081115567076474478226159210040923867833994466269932809160424027336242544009540014993790874012003891112568718782000954269794857046530643424014992729638798698532351247921069534144950148042895986285729964119746136223227586523326761106094749371213270748790489658788566022427373243621807348204183884781046876612264995075260581564056964955289303873098459915942639177870491244354791290747213597900035077935909369917161306238476835275576766662609749611137203344783997111883958818405873116015634360677898887034705579250454297653981815625589582960772617513318896663156000959100221632060546360867739680474575121283721578149656463458174710243060474470096973698778102077132527710370733992297547032893309403137728199706944876505607894301743024708638599720647521932868619926182112999401863779199486221975652581942907491844207660208439369469752306966029214153816379621745641385833430324528395437272282698136383089096903740869448214477578381458338290925414686119875328959943623706436147312385682169327593777190973572609885878228575511727135998447574381961138572730221054666368046265309031999597326578222093910584676093722283186431329631352352945249924532876264762169033178439815501946740574976100875545501645482288334269933203917122911630075469647245753183955048845002473095910135611048787534795879252056143510049542473675840019452359017262970097397815110104726458798610933622050830924837050983416543596026078168674443282309592360954253700709841656467463937049166019470607389077082812090124716764799244234053929507705742640656242037350386455336722978558840372689178996264080005416203438984214246265035435994738887327167779283043194253983870680479293526039785007319146995073054125393917604688379693891004828883143080554871153268676500893451208486157103082009193978685579009600642996402074465449056552760016664934613078686093012083800652440437576190772800228598337979333916859219094954923904663481132431004807947025342719752551065836893408722699750379404567215045055655915560390561738996499150358125249711325322653838489552301360608916400497077329574705735852717040935778411982838223945270067720193069385715756827133052754715136790031128433499348079438073962900375296956932166231939574543749599976757302543581488531053203271485574042112609024922790458682732776709928676681057592645578401772714335308204401598578764382884674965665935380010133483529562461263413499030218129859512397197919726286442291862834930339042248144680438462174840001200965979958646168525324606010002776189117117726408747983470405201831745628607733684929531348618889464685643918836565643005355936756342001138937227916856127808255036428159452559448645930968435870090933601271195581668569459311236897285977923861203525966788605816023712765586305557597567550657545611432983236467252372537582741565848198855958599439461387283128820108877057847901960676271416835126089862146473036674574040545032962612575868770146215465808522117553939648726208013144844226440227312757008143647612203398458038061092851047971943667999007081589319329136289427897785204388430338144855456962878199572430908250073250676901414304712938265589031322470456686758756190364823078560729111858850526127546314067608181094822481040913679550550988142074057752087169480654280638502977745268828871722121508560614777480179090069613391076495898906935902898086948769807574787244599304208986568099282836036810121216079004572723729352521011008322170129148209809253976556327653522714025580810706153615377486854345703776177560360105233436656420859577175389736904607860289876364421941107714651475817662004612273059015138925933465892143169409804192341640973664259142552254715678174716882278593863387048227872429128609189501979812724592038103479330576813978478044039932110197272680600475077895193453279956591879346165970758560536954499734701057540985430198551775386574761771178367461432194229416854455093048188302759118745894377763556216892596299410417612785137359038812913729307793741010953096782927905828148528227123575551269849573135711117463389489151760984432703142854629669903664533414244296462028953258371336726757710973595127459820854946110235538480466405001528354672892829249564018761134652864564036242619916204815329807031432448025274188857655259379407477746796917868008224205420609220833669919150174788295745906727975144411024078635038665457651091286176310841803591679279765143363687075078501892164369676887635988309802441830207977354953512834861766094058095694399974090835351760834179391945272088635223677507079821293136262986329591050785144371456025593170967285138080819416103433034233719393035806286535971550627569653257497749303334978623686285653757147844107545643660297509968475163848051759352352152710268307496131329456663087667861122715531610846935887733474163821781497117249552234333604385543988232588713677363676196732053764297930308595642777115643830713729465767721641720561300902414417693622315465738735690217115898941227093239097465724365521082919733991740932002729845123376332118281310564985687672815366320171686311814815334719661349468260233107353345344799064866284225272542390702663702617124544232908075727888000555461146380042516480704690103263884840976492767873814964438115559414611894713817146779231765659918693671726490242256625175542930441291970864594368010702825520937690209091420873127451172986641200584535297706169971951439817343123668538530089257001276658610303006743739831170099627764864013459933966088140486702925587885935413219041094586996091859123899229515484626615011095244813320124640845243408027949656773457607433098192067658623172090500321432759116589536225678121067975699270002622769164250181519228660809547313598960593017225607226250395270499602901086518300033765741478168550030531895480676175663724208659534097189065344971627512357132016610888590466971876774541564840690709723421277634506008405651281294348782719554676896312156746475397133573873041689948838817166898758866792357424448985040577054728935955167265759413452735751740805907856651052587864696170827680791674368049392798545573985648236206968600925305624048712119443356055441599259026075342517708413792196478483229396381594157564218848660680226951815641370985067707985332303850049272612513349468492595527485312183565753461283477181891250868698502901920758820032302194758643551965935974130799051018273543414513490985918248074055134328373125299783287325178542459765764514617709822195500399445131564829623950982367520611673939827003973963249836038307020974965476012953637196861085358535488684983009446438562635218050547074417066095759203794170760416753392139843583074184790333839465763206327465258892248855080115776213301312034285246819753358727397680250734615593969028060470696750526325838712392314817029684038141046697625757366532624235295862967208627124858044526438525865547177360061430051707909078659274783010035565302314210333053833121433604759447330323981891892325836745346547428484322659017888705387424651805886940136514093835801771579638383919265652112749067958447819534013000332829585798121366351501473890438277466105351776625244748919375860208722914284378544675487552325543539256854200956345388695417070128974255203930879885001733405411482547902310579746340807187844189727368541959643435385622408777948457937045033928171491509822041770311857626880009697060638467859594142505490626343521828106067046724451267170579151751943277132796816521106288167699237120203324065421954413326246194150816979359443675848842755764294582382436304574069910579058294247121949783731976325722119541154612469693546543248718797835252846278176405489263910140156350555125967308267428472667089450772342300844881494040338848296182360067368505328718296693179453207782043186131345237051557473654442700026756882481470768450116172070879959779611148007062989889640256357793747252691933907293079030378318563091164335373637351797386928785507118609685700575856754651008072872191427933108526384639461398146808855728315398005348219344633987209574051729331629926673343081363436158271762951647080837602865720620523344887671062324169904110770981732587369517998098897386706201581459902618442039884711987650728676460802137663341226255749748167733475123075731242094462081517722539183402256623583130276067368484751193155660058291812488350999690771020053754356456529141886830005466987482266943116953277367787565450181045156146255144615654100239490402151838020763736060020434849107655217198035286027638458404750186306993130894468321329693425740111808925150810611482792925028421830055296352707702114569415277523931463528957317064864762519934748971983765374233908587570032263793489912373612973532545608761902839710336326835674846573770326235033634669654953281375775025105235286972787430078837943071904824160933368450833715419308400957774789331549255108917910535490579154373486677062643505843258031808324420657959621292292321649873520203741153242733455635779542057040503465588233795261052165860691873521584441467831479290506458318518653503996838859541112329164348831970408153475177764962157588753737278669338307073303452140264257183980308750246280719566999025590140251600291373655086010663473764065843348910887174641734340750948176646323248606818202869711554883977587677322685609048913867312924352763408957952316704057846479032290258939995031578339965861010035479175403866539803263609865887992972890253785693901143443684309117971846786929524944788302940285471295312155287520881888721585320715918400296667494046060438851908783974509200413922961581378311846710828951322612623844500289830561414783431924014645120459719726540966389904448571061240482060388122046587995528605883693493897632964637194533149867861407456163818312261275745444782245688708223732448310474351222616157112697224187128172301855795835022597037973810635658857908936576708360284392645061556057850077759162424924793333482263775110584391518197956963751599060274742403765263983215611156877022779357455393268628090739028329090931961833674436809385136114031362466022142189651709401872573794466570886073073646361685294722866658420966653080254677711262935902414204894865448973976308603923725194475079969951096261459485021301198776070789109451622072550022534634414287806038650612316529756880587046117925597001905649313389518510551414181102393345893341445142310670389201574552414224962172009295879229857983249632128608986314819005999626946090417462738278882192525286915936055666425217672011325857572914026338936926429425107565375298845445509473713383955971461793133430609839659336232595789425763007002876337309880217990397512926428843191762155049568390106879410548339098899601299111989976014238681649172531087300859486620684028596783412195969539253716332029542822793473888844864101374084995645531359644976478436744905319319827275432541122773485186688784256374379791474516459136517131354102053720097556529989980277328840828126899344125879600152181656263393972156062736055723697943342153831622968870204012857648437749535735961656991580157110517113755131550450101385233929217839474218454574706734369523005217419053787128402857470725452379593615089677642499895880057566626718235463261193736006205813733365828006705335764105613626471311420782766112534868523547374562576280316473451716723513619196822080449635089545240765375931522236792515372396542194145303999222619692710913017965962989436992387250765566567957172882492522848857590393216157753129629429126153315091740870787503537718042020232139549476143594181155753676422044293050741074722261265908453523499050302582670030664586293855935914962469050937622084737574400331794001096057130200152683185429728832472345122139461469297684107313996262356648846066402085100099325531921201170949880258436155480830044282191809235229397068668499226039147085736037720521614266404074929229169143883623222563814026300111594031437804681126506582006603689202960331353770726910125917666849503810868685417293832986106918768370914437702319984376762806080811805763296055186531588031882880790248929819641624744176780104725491209955178749132345417904111556691094989200824070068712215394986146338785909428778620871357427312904798729170092039446923775786775736143306023041557404876220033671367773204973229943017250929097638229013462962890375121491168613139779858186175761721545020588782335645080125464583620037452722267312489554861946692464802943562242808769798363837037408031827585461390617039120142722728538204787869691668400369124894244992871873436451733458720885466439559744970728544166869611731879877063717563924439454177437501604255588488991298515927228060867297231092743008064688122038916269985890089529186518328491850947214864445148320349392463721095365716425347901962922852946384012839264464555584591698004200069026049261669037293801865655629055567971781302937900287368125892975521788905552490331279386317268699329650499322885533381874708707083220297153017183847881997294946700682381081658873588321227175044117188613257461295531947978766502885645660775984632003941891025369273074136888422987048448559245182596234611081676860976571291682840476711015272974645879269312336116250164536351168906798740829014462793456295152888136145980271471140000835999022206554754459366932473779026303918055812180686119656310290586461838005167769052791642703482282558886539577134203027790082244115743641438902418541117657449320864904344976884412025128330354365941849061578532492786075768258544766054722435161979271677744012310248789513316691289473690273925936421814578233217067524061340661949259200710912886067681187198559642773767821142324334521375892380984825587416622512431214162884883837775786399820650778970394922129285209015174244791687168088593527143850654076348630796531640104774989139032627168511960369860180786699868232262138598707498300428592052914857566078910521773425377155625019444928167015739599529835563585072836103143582295215836235174999301867442945867630478222075616727569207140758426839419018952489258609813773089201855910695351862419737254186036277568479120768603532793748701357175663177324260326187125145152848365546030630711238235342326948746060994671664340004621858722179731528748403436162715523386543215873128051351064380388398612614826421283063482795678867908698805564017677067567882515996840931471831298500132907522108065190728956420819118410753059411750292470511286638166928633931507015628098413301554743404744344959156950529392676530567455344481590746128493871436744414487810627668547568624424917881732108756175257358108901522223102299167463137369144431295099613258467632366001756299645211138554810745635297007910981187481208236771724329089185711185088609715877675291041586174421134029036033965855799583900094174406538374909519030588878467287543771655141152790917286987310633843372032469630961026007385308516192262275130827487308064337561981574929494416436413194080719299375166707784823973041594994150996862698417213483211532077881771182946919971730385996003640162800101155517728896788024243836748657141346717869419596042933649877325581632025216221803393866415798046807834935674381117092560400262463825895615077745780804695825655766898286251518780123020292397933645737929999150600321198352156539097200701918002156773791335784707893072248895760045686672450600877631460111847011602037393169795490460876671732378931967125226711418060944762391424990286197953119676925325884992650522083644723116661874901202630691983089484144727254027608961129182794324892047160735809963007969830541998778846451766372662404033061603558805873360620257178244839712631436677760169239824946726616011647032822741561129749455959631863450631477050976113005350385857819228456877439159109838863186145032675366900968945978467705337134362047703748544617965271234655413308108644881305079391880326101857957661403703482878122422926737033974063312997844597134048437893696970953112788020815551614344664081231593670639545130351315957705948875174779672823781238384370909001813395554632073916476725343236546839000696967764682853778207754803927887054447862679967645706555311270011308086098178120948803263441694677571419805867430869029815514364926256223346837562815934653459979735832269760894404770770702333664163196804594193637690088253306270156546866591983167816238301619326373366401545148515098684706493958668357327824531359844614239460043630958603879525180070577381119766744900793580293368550877063748213718517250493888609838702500130996233945779971563490775232079786635581118599029727149159851053360516191538480846789537212177578812869173334923648292953927369173022900097889983155667812128443032087816308364696721610015156271375166902372789767997325248613672998392843219297362746612965154456707125908405756625561486079210672581936177573844503633722121282012923018032126897508593865378990919502251702947460811641125907876348083881586631239336326944231098270090557442177155395973963105349227809920259884299186731058452567700104919252782397887744669214370291582942234311702253052509670168622546153594296799562798025364567087705099225716395840861724903704230813293086092120482883527827964798654255280513953691510929018996169587776384190750322204910529938703026649521345515750993703311445841953308295815121550597182825394192190602936957083430660609884262516705520484470376505991854809747471144344666723346742010726462218668779109872303103713369020960386988314771640623302404881883027850604558304818868973014326274055561445101445349611708452632236783939163299174483065129481664873949795655047137380905329072964206213674348962703601863170592664211807298740187778318648181722904029222688490737003494934505206177355792870976226336591591099041810955426442680241563939626552863867862238204861489840395691877940856011139110971362818100179890710843095483470577556965280908904888879301960490447977640868498348294497850944888038250358378353864679279373298023654948478448175981434876099430506216004703492874057818041807720518838149366535488053319603064423355875775484843952800208745871411237604169405979520240966000378127026616217852353336950249645640241687153460459339444216998606949781690825994259876341094191871945358974528228930814221710502156746550322432276441852044120799739239637094754346874131669339146330451811896302962177013978417155028065164874756385622453884802510810011059000820973847543302097183738914610820675588344676705739432430673479014534768005099816449907344868864299195088785586380777988659353419497980570525181357930915680255972155043664241806476103929654167016173844957250353069040860377448034695990642562747873623235363766576816284658268751772796081256773848182321720359253977602750470897684980393756335548120489390653121391663562082671901875102957839662349573292177425184801531137479453679520393354575934982792440914254718572735726257854858638351779016574025735104762192501052973878486756342586454419463040332694627847542201086807729472988783267473778365745678607803425683389065301484266157791464334518250573606744928083157127813231846480122691179157302106104521897878812043937235853273360478214357223800358693703136462532441543948429999868251808108386105513044846983871158461951485888780391394604806662633833639729200866583266647787985784046354109645734304994999999104808225513945132435796817268314316058815530959545124655739536615495680322588613892386968985131632687937230773533751192038967094287969778323274128963206458644410597145399547769593623593452117817666577156704410402996344547323574038625840987178774046249691361491983119913150771096807738276624387059711479446662013587971670766702300666136332482918700428895518204263572059207266259015933943725888915811965454586953650572542601941498226532631604372532081625856461765994363306403928562933344358341451676791593166914831078320213809117088654619481225115400171197807048699190123767695484112826425059390547865933041013478763933250468261525131406629663642204199113075574203645777807933137402131953944824784454410179750046517000573852722880788254473685188698810367759562162561666426944669177864288930098296902427277521363892741517042426818589964123876720422811067556846197154991494564496197572964910861127846700492867068769278593921175222560839460541728329075622513679101222834918397962871615095242538599361588351436669420055095629215556616069046297710844791980198369180490760683649469454377631260465848962818013078924986229334087065655534326378395829677703926002482412939193140770254105174058223145592673991579399576141547378351687170825445988374593792952700799102911184973402431450987503150205272803082580141882707480421545530511798715550566290160988220711964138286259152298575785666485891511933693899457818011651436954393890523222212897212411940053110497436379872731683089726580486053600338973024203838515077532287788298326112121501189468852928883936056481187621824954232045730128320442818090950918701866828640113726578685245990268963295429283265401985590338186979267365298842184442190565434972679180144534096225273052826260352461953546861656161871037942353638691737396029864575334751995715169968113050420819799424483113203705680422414603295280245975941864846269475233637068883691074588502295457037046211734564914037014284025915364441845304687653477078431942251868511422329412309634109585549947742746628016682932443205885231567955150036837934997691993852634166306595879799805769575991432303466536787506267886053807413308161988356621423660920344891262934122707881870214235931369937725189806679363684313022091006776830696729501389039974924922516042305113475242782112431188898023621241732830022401634762496867820924111694542393345948471509624391362767831357663895760099109490231976182744852038386187367106965607934211689875390733638529359951350293106953141286562777480909252977003780502869059184471033300144053266790869017972398511143780491057313298057595002538638911904929028075200927219802842206499261989544653392227735973760887920451615402214738925910315593454410460433806927283505242448297645263539829915697009634865909319902089610853037100946856668838292132240366060003101618735572923551568874030132058718446840711203191641023319953438633968938849633557165639012574372357272353168772228673193492402833590601935811711173217201978320956138895766509983687115895631801188020716749091054366556050894216619011710388853850644806312168297599417109069185962496252280132159866683212291571295083461649583214565004423400558216730249782476439850080698537766827259117825540666970511513850671109600038916876465740987865617045362131269801412875787597167194190091222417757385589612960132074265005258169955565681590739272405848169862345300316859551926642160662185801507320309692672662652319679051286816560830222303086496823796681219936042344336582280786741363877607308177462945786559425541732049991549566860272280462152278646122645934731278655490896345537069930688476852594580687021990514749711734643957823856491219461719467494611931245206771899642695242995534143931367180901283182378176442839811096422518198466969314008020132589062931118055286165387830871588334797492640186206536274763179436865079237133426612481729362336688882044058970939336954296082658086215163304542926622420391825015774975174558445289995994313280576885327449472629508379542067063612331354523664256799119831031528492895715596450083494520623642375536734834187571398439332572055404718342607892788836925461224300113776089560714596900727284919432970900132457617854365971095254784327619181206340535900573712769441249494796217827156106832875355698534222010656429460148559330428318272062889260635131485365398913069809305796896675398266546125779284660599327763745823474584004551079315181728685157175563814994433088013627583628194773215386692001075520674870795879739072962743028784856482146398581920945131709916099544360001052050156346441217427665323848879758719866940036896739690476296043341141170249610199806714649653196828004157976280469227581747052080301511398164169011829903530035009609599564310082326725994874612850912553659915427380167860988910377032478041416628618370175671735208185308586539748170649977930634249807579984001562406706956114588765208440336201971977114901434141418332293162844719961657103344826117335298634970937578887942871269371317138571338679267734308821383155968813357109290755066170928917702649894492466130925992547091942603454609868539043846350674414783975050623576792501093826087834536062477387036111828067694936816639109430986044436570390553295636628082743078729518384597149646955997700998178128735133233280678042683856295675600514322965377616468882375904499645990061290271199235424283457151564580962392012372023133431978234321574776556163902317345223832173939473742880352620244897841159161562756797313735549542544427973191168740584629142362493901352059894860764412343752603519456100766548645538660005922675211735476895976460606249626736155177944514206760394980745097800190834083979605197274408805136685345906278254649131429435137891592627498062420891314246929974286654215012217163312634520872191375113739135337374765723212723364234555684735936687092592812312460706523257849459013704962589520470382382322457938812402814085167338174387743478187412129476997014336889905485232561484060074146920790503814088103368427534194784670985061750830948029260423972395615019372001184509743847154819981079349101744423717563646059009772885033747457807119577695545599156124087528508316430602953801861606478641248241517247511594307368488821451769742599162239327092193788823563257944709360386283940382977390990388941180802724082331116070827301451479720397103550255127564968223938438010546760274725262482207713231455747672665474437552062065384402320695910872582979908383890758093161473143506495808690444934275190568303773958138656220577091079656671820727906770989055839567573729749785985424743531896193709325121426559968413683237336902691520516352088112516601887267178679029783152303979186334708208150947916794130720542382494574100631466925952334051762225279148779738211139072935642043142254941034024317601135658844611440985244223673078431779766313343252000795511906669345001350720860770965348891366490262730926851791651638266186758744089578648762993624520011730184743999343661843367060055427576303831360166090624887280143101694051255663875596835536178267906912929931693209153199234837847137430431533031161760750330038775956099210990065734627072537995783952792031686698232760602762182771279732067481254574195905014484269677342317188128944521685450409359516281633883329827355786976451284852671539276801417202765608749225079486609653889793355651655595840682439734171450206116033110235585399403938453870026602259672710159940402101863813331886076692444059314264341588222801708621558380967793370871218929774204255303450858069827746473438423508975356516278074743516417557368434619153588362504553972250188717528700807833887590542330429837000751359271868978458262371768860357121887224274520961043443371446230631282078398882202475338301787360782493255444049687830865311589468571835482747766052213866019411957412480894045205960563710012163552317254043894185665949498037450904905309305036871290518474474529098753905969074905723372001238540163441121147634519435058386555082236275514118083895910575583410310083850071215858622196280637793374505996269378487664678123356532931873190537625896459924188437497654598452573316218088329478234272735138372488064332439476770231055322515828340496830419530608238498158542614553190864358488793575750546479603120056416934872961570099284110772608184089279064368680774728830391727639101337291674639376333177743741163873166967037794187293324917386884712890087762093578910783268839464917666828745112138744253215565528086079289777841008784485093222872930477941134411587293367198861945892509386194348622511596326478901454476170680203995120708599141858061004960634145123533854076815804850929318575778743566966088582524830419065423724212628394798284527299847801890796827262718693574517971056575706087655507689603660397901146330847647086658671254422738491705633409684405171719860186631277705123986685391046790506800437460815259143762321206369935822148193629950837112452014448958954301115480128676409910975049550481268730458626176980760818978398715677161289412939124902220825722594314753854013590315431531487263511060272781252006568279966331375748688523737746928436741740390915812350294696174772579070642727251529484970184858497966763618231378887628281171511219276341750636873943603223700067590779337238239299197168291576280500209085213504336777699030032576720257344785808505618403302196977110618098784008491284206958309347902385088756695541286797915046468782141552511707633692375321742847792150803109138600519030162095963943157940822331689467090727367286282873225606853178305249610403220066466817609720810257718424397403575011107384235362733506743678004816436459603404626571615069598335585952998797420855333902154459433563361972836403845186398963652948823417042776414621882071718654185907200944523784869428366255824943640207870776254311349633871264253101184455778101311809735280431357509691789673161915045179418567125881113776743815531223740760498346213595279209056784812674102267241510507068172727287670614854956292769715849448544717994483653588442264344266358346172752817634705987777109743250583947001103075371196926735218813329508086177642654911847084873451682560711308471135093189652518014728994504249271317261479816667813755684669414321577549461761164129697460117725464303439691879265272991297725360430871469339915434135405622421062635238468604201038351561871553088094912475867746706121760423128949048458851102783271797115206050488570343912552494046470729832516702878100676312635507087052616824656130006424612394229847338688064722549937634020026024796030617381764263912657745274254661850649661883657739033541015102241251488624227356319853044259913366545045871343956905442716128407906406461347448627739757523958202561503836380475207726227726704495185939672070257215031389469887605176358500405185957290622396476969083518316053659651397889707081591691298305668628805490178566120608284212299841617833704004318775278758811207876072739250312637970150885493931785994391851581575536383046785258828580627836524929460508767146981423244003131949380502437857216179814460309467661346820784593274147862060639568655928757295979450933040174885449028623806430989214732254712119586757734540500513409177820525679710907008904521701636985284093878637389777584715200040131034075503285372833481992962498169036771469723252104813442681184929256659952534994648074954843550446749017948218942122506600197838160174884542125099211574058578399945721781528716973465607245620658101261045353735429857725529251946223319187434947194219461126515644560977427997158924825039556543952047046814314885472135405427160807784729152596509942358462875232543433862131152943937241511047378344048986125491432913721413125635199565225441138456311938898919279787247590625745338623629924651902204855374289442149615445122333944717457582843921869574810528194649381781425349093427771301342922353519997476166666819534057410332721895508541972686142377762965095475370081860400956681937073318537936545394529623775966992469738397564107349356732765159179857405610772724225092349840017430173878707493754373742451957235268317250076627620512050874345258633380822806968890479376528667055080342369913125536993716013060803231201346317423329228251269737467899734698164910253825222051652426653118737967856455601170395603230047715449661302949394297220371977651566140364835086001177051082056721769788752242002127179232215419606776626370080317164325185541819611465797118555550715737536916183021796083628087366787498169842900430113075436590530444153812229413598125417556397755768242118123684055300537515906695955763062732013679205305840377167835657910595544905958214052297399507199666495512156919721031613007068261520028817801801580005704682102361235510911627321506515297380465634398602604296126522189742986853093534986529887766819819550416497607254101354719570123179867876878386751741239796403364716637791589110406920966405327043356842567604475675284447102163820627830021816627166050688201320467858142891663896836132128678811509995503127082677614140923902905944960869988012130671751804326484570584742897549487380036689220760521114560896093506794315821636714251966089859194914865886247931797612916623009660158969215188181945263382640507989051963632085465101679986564358985347771924008047326684081570090453546946656142856833328193526112203817646516907602292987020468388286700463851293588376516098884995635945366945961851244724817769917846386276615154995797946842644622763566783013713721349161699865810134062039052259079245515921865256040128531807597250003233982359943852087052388618002414418735286313696083795027330196205169476861896258484189024561848225778277348859644769876000900741512410083313804623079686998218068602946234836764609707078939473037007162375236657544806944188024725185967293292676823363572652705692788940341971842049186250895712446318084894193610331741516510947636399298331995936697157023169547104824547122672632236131165314530925316731709436494639419088043043963895297448640090485270525791876578245697221331822604661898980988305282964332739816785153516408612116518395726063285889322539818799400745527493063252331954899070314575897127899303636721309603114802884656496270624492464327131630939356901711937787931269511730741431554954965072328588240209515242639462715757996812886901544370052693015858220979563398713811858840219180361272888555019221198233600936496336364431256746055377072557696578151508303932584690480197745634741952554827380441970455554640465284077634576490370694220384460067962889143582803571643156407282728388458417443266992587107514224507506528481625109537780982496199002409473082319097558078086482600079270131706652791761863095705563451922898992084621189387707728274094361331419424683954671225982878573834871360881267309079287277752698008793840625700665088804100607444579107471397727503462042080959481186198128833784801189437571730067389146176472302882958451937130909762847328157352201338804557939031434737824782486555410290840514688927452761899263334694982316649733023910880311243819291777857355785306193888419245550778066940388402313619276653916274822169664710868412825450284677851715174994683604927961539243658878133819557334832358668977367979144239716814695601497616643433741291234809040842140936808749938256295638567173763979710733631430713810304179103715339120105323561789089098061675189069775015220605395506773097473586308251107813565390381887441182758711882713104407679271880099923274432656251745994922203082966833216079063280751324616795288505531607902350441627371019893956252975290869562540688920654153856182379024636300071767328806149281865031594808836576577594247338912818014092065648454739247610514709343719433422326294496584650916825489315561589559304641789383752827762891361426996985288098730908077155609283685880264191908208967737231287130022904657116133723883796662868625407506616944654031045921728271815009132371725561702425243056945493631676295041045681543444901915234095031635278503712980227543901225678749781905586618862175154813399539381036863794316628020320771947086731630944150559790354242909971077939697447279998748316917103053988269525876269185954222417648768256978396580664785177302401191496502784416230549610504160781184457489076286793628792897657906084457710172845081767922075067665237551923453532552676252518388313107976468243566727470752152482293527449152556116837358405847672056863006193249168381046556871661339107929016381606000567361483724672842290636061663155447475483211564799932874390950411062282814843334876828874786795243778090893539624101083410900296949118694161919987288342150828301247487144410806691972081141181449332217576209584709203336600979820712563334709588098531495928513320194126790835493277515254615357321731370543668773643502528131589666208162468793576282555664292251683918846700434663801476431229606333341094727728184757974482551430027823160873863087545526464718266697474479150369594579220465766870903765386922308689655145537791979958307446477788947834895705326912063243627353957478380998144278610507465761187430719732493499075136190538306554200743243643158665512433784140922352404914069937034059100408455728278845593297942523820856595762606448351919509296658411612698167481544753961438452905885945133484944843982241693340220997668920127115469909518520448256595163859756287842242557125972604792934949356774127138779547181315354103375058982420838347660430370474208861030752543804065518914881664253501151815201206179588488360940602040750184699373301449231051009106218611138530883665874870527176524399581302992550239065272849490861238977493111283202260435668214635668042649695421860065834958398211390847819525382655727572714536757451525820412825920858206635328569028202435614973671754300082846221171081124785213547922644237277315141818372560408013365624786218336049451663168729689937800258286098837246063053021725757721200682241839793381737561013633823448287985401850274725763459976789163710291099026898555149010053389487132653527138197134263037876771286020581587910446057813327671442307125163955554318213370895265531795216528561640160815879905449366875853919904423679011069625526816124838165202702653731992058982287536765886545983428089296464448683283290553300846814102110453317071740441904697631396740561654310645322677152177041719999472597263283456867837586481804726312381960419003135374564038371810670825835505725440376989715775145502796319171020660039372884053165762882792191808745479848602116872911465097282369541259398708157679236077749218948546659767439669697889779781431381888534338962169109952836556912301277643524861647455073442388095331189297353979207398429734939100055092468458625552040896966800501729408994713934083166582605106871282967703019977186677789994902478013723484460645137198826729029399867603743507134742714330897305055477353286001350893827168329214046148389190065331227978402397069685705172337398608903545338950089647761552053669239322990059290428234008551136924620098305423566708007549560978038945792071095411978281291231172372745669587080288660624627301900255861142632139445186755253751076599745832013284999196080102505092433929394656699494783318825903861751927033391049061649545180614286022193669970997939547046108155640440933318098093028535907258502617710896458867077946610486129878094037900579721400522539716946323178514540606584965660010027657783472797871172256211207009078933893183026013844722868730599828513941209480893377875620541044736537147590379315386157812180957038057997915851188672583601345141301579652137102018392561708450636989288826041642040222881586959965201864383454645253030827275581244258707198021398016540237104352361849664435452419643866001482918823260939456465535525406483353217071548402872886513340477722832555422979917608854105133711999826217623186451304986435087449809354671724693794913793184116833504962857878869912560890986108537256625325793214593004296695204526784696033213477535826045986299057575725295599284426721594182735857109409239710075339985662984017473679263187755984921336152689137227132635434282388776014982617413275030359176611897300798500394420982368076680622896666741328011585292791305535141104482514831691713308680435017293228749490474557740283906678415111483705104517896756330537508705478752862883101655413007770417359057462438578969245209773662853592137229198853802554927644313860567096180819815990069917100543258938540335580762401951430761338720145474183883900694421667100782718625237522804483440110038469655413241311707299729902680964941772093159131556462745946560146431321698230898947914241652555714322651575793363428211710364996249323326496150318640440329859268981344198877488123544914222581734576225149716803488018281141955664066074763086056887023809607994799340595429040858596420479206628877552566561684324201924881580849343184270160331231806362724239336367908193220098314757663969412410005764557432584692439672316248240671241121326131924873023155511930932584291546283947948157908471495264016487126606547924650504505337729842272139099631677608801614587328394282452877313245933640276647205058600996092227240897805212102791861398139337355581528263691415912016991130766126607387960520785644285285639576048837261974184680213037481851511407184319956800915606688318481669352042602576240744627817560765787003086474302310369209309888575655930815136187038099763400218567175858870184855148600776398718646144280285359171452090576327903039388705905728682478510228149954518154718420603890157781645078340363886137074438273638907891809442305543550831858626776301967417025182267202564571233766890512159331594739461013058212372658579801959942198338743094840702290378247973605033760176054054631337853182081871046188153032505455734457715717280168462561604685756506328698649323582308316057181055596581730426822037176117635412475951010896197722143509136330593016497372732780427401499136978738183358912085964129219153285505074245390757337629596677237533318283004776409931918155732742872855507402493120979296511216994861438308345696206028711279817102133556817285319141151091034576743053685484410530574427151433183083842547918547817923008087360745177750628920807213004688815193703304081852320041999693597194599986109819593366697482227379451051387934882545819426175178769633909306810206693509677282964349180692710363694051377030266801694380399336703893302838936764904716973678041695667860224877746944962477860075684162100888250580550244820406555650111161756502481916408779689018588081577123246905594896330936175259515272852430113916906227345714593910967232535314230355944838670674046979253190854301364211241893649950990264959152624748258676821735458520204843194136305465462474769244551161289762155720287924438443857028003749773378594088645174323342895946874820019372622656307347560216543368435322977289102229529651548495829850877121520864986270275869727579258098281763523899141021438670570111450187402967031943877385244174259978893053429731312851362254688598193260313994415357032901585939338568908860910313457758236493951557912137128692613411113633928671013636053078175193708586518994924669950360524741893625589339946714654268272212591612336260145824047998705131701586728945810820851732203553490532333922242880734914920831641971558568763117110784030909652918450153875187910985542334370691411560798901262188176025119694270115983434954307289844908486806760423994955002974956791922693712679862734193394345245899748853457793853808483414310340261521203383717522856668116854366831275661218758364369460207581344565321622088890423035617073046804888238955796660992326499958950523013645703573329130838352324629108107490561159025894666022910200973435273926516832500366022680270155623369862193690472243342484322057889003274039097554472507755419039184574669657224168501377309605063418409047151253160753713770532618966212223226145365635017369094551582035172439418155868541357116003497483341626234487387648167380407012193155439422272197276002333187081821260469066357388385135430463568528866628928964234584804333752588880941216583653646701072566705993754373593227586304877421421234320940451307550517053150129466322459893525676912333730617266410389733850858346479518348156606103847454459121136401690970185386410218115005791845029870550868961033341732808698355514310732685711676171777556011122703279742690469663385740447491703038706007864119685250881996234826180533542954846079664957444841334152902980846481191068729462370047325979107499726572982265342744065434650023345309047711084967061211267795598512635724568058305589876718262450157426278572902046173140624472356253408196797704479880836838706222372255658694591125840478226320639943616534262384556488495482179315105043239383049244102277032508691549922896770370212215023120002340551459425455781177540482239551538799455093833422402595304016257365758614315791977598375668223921858029501508017852974419982999733938924412012848333659221223645041069412550535750779695593971799483202777793958869704697675107803195372199654531115347948592150079217114283639174423975101912767973310395419010158263927433275634814360491855210912127950111052521278618840118966023181494993288969856295940894205128987458976543504183051673549851392948272522042177798789714942584542614371089596107849529613400891491836795486269255077911706502552211489377792867976943104384492033296052878222682428046725551776178005288319878614219546692572242344178538441841200544192050932569588250474154061101470491320333482649511918854199869277864441030067441483837658917077577126773297960302803372983532499506524669858753486728480907037997200943118562061361928346424817359063330773722288285633464806608908637521805613909167209746559826996181810687888349307511304698318209398096060515717179455221503255054341413110890646204108735889392079152181848191601508564234250250058289763694975868585843506368008222036570133903920359694003693447296822659872978782242279978732327246396795274658571137783738656757129304169122312710819003593911050691263509474776479404072836232551129953796759647102336585085506700866939574021402864969928165459159594806112506493351981780804775794651903853215063342026448045758531659171960073166917916915898622148790832206540763803464325237188386163607861842152538524745139714981059266604006150540736417180076703961046203326206523737645512298221552016051254551550133356724086576978759370103161318345563580644386737811697199399170269557216473600054810126091926982265372151620714558955478317457829288668570350152981292673780736073162434025474218048057128398817394405188018908603644769928472814286061302947466854483213666887455232798352069204500195136901049948385891607881003089525312508688937418553565660732202614213126306688444366626296149902934762958958556809697100348753858041757825782892114379296075888791757818347561166328699646084173299963798540126537752352360738741529034671806719190724897547021367505697845215403751407522705865158535878544354620528450909207769529861193360596064103922736774764731025301486120442066042833892041383453218537310267766885212844961186195703772039675341279352546224525482290121695039578851517797461821178863622458464442306352109927152288196600420638503943119590980050913616376934564132825747962187843940574557485675163941470757435307295621186883702825244338639514765218681264128680363429443656737075449661205410334303312350536373716736766455820598269383586289225747561762658846237519436078532689551850778324602092826850270571134091780403606257136302814677703483412527492570890775450224893740606126207315945838509697901327010967650349054937410476684366801601053522612662807876928576924503507602460540580829620028707872827738781309658961420562405289811569051687624147429356691285228641954810718351794096998034678424886426851621360227485245340875982798330433421705696832405312006849845455649860721004025068139577291836575838666910303504666438428140133478174923979471251384968355896582621313996864117327254403683194405373770306175453461170304874840043566586212098039901407053550948310486048993268749665791237442894581427261917787450485057828545881218051920219238939325920737270861170220233727328740475207779087122442441853140585167324140253677058372613623791439010482371060603194158003627931944905431991694634555236024613414512283453646539423968628635653415838722674246527213656414458390329414305518878249046241633123771143824135599636562677411749797874167051712765304138030606051398513068406987766896968379550584939779291202346475215334982576929456242050685886470818394490267660439920599528079766428614887834029571516600515178592580262905722422323273871675565978937441688815606571858261929270355995398694708237744951534293991151952066503756639053691491075265867655254421443038814192090746209016268938805659642108990023686700224051525855098582692268693297312300232002193228788004215365273556432339404210949378172667188995971713841900284584207566852657438794383112739772163243088456964082363479690275393236469259528065448680296888263727402816871211244001734804214008319200952545590959466880082967610236262458435510080063494815104918368925223225155536298690536284355293017353774830340032407445960976656319551513511890359981480762112860826993047033103109015620875994579936728845415058383368466459097284654197062827374434913471895021569405697091871769445774903989193543755425170412462606366433983630553954008956398499252875483475839898853687145602334556688824008359940921888440708359701504449546702450945906081470316266547206713629559541499438294050320840285593661577251489846366292573308964413625678230438043056747527850628397991766964810506385255276554130171163022113867489180352371750921422493985790316385950532023887760327242143638015998944396288014315145659000755612763976142951236742388724524973399290745259575404878849782174188038202152806787306457187080277166262525753610273072312525348897552746358234094829564679324912799828709959363797185373894062870805689398170005366068207885613365805233538911312383791561579163987221446148725834125977293369007364119695949562555233409322562372140787391605261215283588228732266837889457107186096897668456437415744747791988796764128014028524826915657289214480251212282865523908879998214095238153270378647110127911377999016611409447431082783124318057354700342259503264618120527646782731500048851704294661577694359440712981464441902803104642964853359178761929907051011164566703128175842126940152330724222927389221474588034889016207671466432312272627126716669068726738294637399730023991124346607280669781339757261418562323687917572849189488997388390023483003058601858677840188424111967748352501294665387716437307649243900716929549237964186211383855308934681326165359115387768441447973213449852586635790850671479600500048795709873141610584841158346474524832526136264665797549132891500159401994722624203372488812681187382117315994219225004956726058105531458529514275330430831248911603608586888350813712086312284744390375859067262522588090337946123013634248185066095644448858549970178108508828023886686093206344170354038514818144997479819206631475590183993746481971241082237827325990770314431254039602921418729537588076777158994332231677818252824331167680090919549164169893460832681483860227088705523874684756078544656642463170365592673195995222661567602214775350204399743050914459289371246743990228104876878125231363898366292585966881650398361583537719441748655421439260260396626867052104450317792190025457037810916671700151024922479263051394602503538909056580941078032561733135218944176382292990124862307614885549728138646564450514844051183302867657012697133501505674984588984066971249533059067866054824117105649592920394695086099486490630656611913105601811312877469086264028962360545388437617803059222923196726244569338398915417466702120264126912636565806615891294299907012022084889657560179308340720269364481014509020423575872253973065064624440014235615656353978632823164514268736715479070059199553465154014986486542438901394149743290393276275821534914147417729104742222980654668100325861349550835518218533176491915651576018835631936064562534706171664004328496306216225180278593179805448643367096134635135250674090119166720989530744079568352171079600783098086317991596219617329298224025344975587609206972294363669220744505305894390604917458970253987413107575566396994832794548802005565488198827739647461965765543885981661657028589762112703221629694888907752877263166449064946838900373817619471638029532168396180062758087690998291212517435649736818961210022093419158232401737131509003580411182577616015872000628335674274686149954762880080480729331806311039734030483854331308192358180764261377918675036728332163924646996658159334305007195285917696482521180034526129189000618724510727611467679269863253608194006579108843377970715893411761806039963807738403227467693124243353342574805397268076516511786242817512207155719444268796856956271419098032502206426898175360154458849215804156410608756292872135537559728304483230704093197454305319908528257049703658006095109584420059448852015476062825675305419599350383801186610848313454337151749135131173493563806970138527226292103439092725305318176706749919019177997555905018245325800216902031646240485003106659579659632603689570559762052375360674463494840615181513046598427899881234022828887642381249322275409385060328241729811048694687809377187472171409983028038014232614131446180808071680663224984666382647377304426426464645944740870322988975327949806743377977209985504355944895295858611148959382684252723104323851018215633374464391632666288023581152771122312161580026884808024495485948390142713003654781471917401818860119586673285588774756630940801029174301499953004778540577107806670656269740899010877856323226391512624624325032106797774091248366163188725863008581760222871361582687001436779775528955863982610359828852781551816457743876171158126988046015352054286477931511193470528947412877907119716410501129365479988765753041313652343847045251241953863362202215050351320061075661699240733727250355949316542917879090523122908023376785132781137290882486688826528448134007252508211501187138345018512347027125685082489948435923270573368473254818653747064870073078401796090889452422352027861134167081618678138780442282481274207566487545735836835372007107772198261300132433820044986165653939339899555685891319429842979376306913714234604813858513165171760985739120830877738635957616533011905620219225183901106621713179804603223265664613788973972171585467074992688105123002898634741402134991994341207599060103281444925151937231472160126896260920042389984277985276718662508679610081549728588555907340657282159850638070052068923557878053939518817844093133398181090795483723871633729081094308899547540957566026784391697763328122198553745977312474795749560586578539139308884025814581141123112478298533719783841370187463606640672867421280325456702457326366261427344308626679265291038590313878526133227839278284968868151528467983206171057452235257507783077654142890139386882756728309424276957393024408013447203538325815881391646980287806375651859943433451508674502290120563308361718258009594462795857477382830584960619822967972968733547672457405175774458397213701447301976630919102816848487853921322463283183705538976246739213324373529870165273820401733757687723725184476431439096386932313806594866055808862341806720331990250618884646200725685149385785404626186104686317371427997206714838698719827831098458662187398904074804739827028753427151230334854461255345099865565588923310663189740508284802627488322031060323225153053654060546171115589466052264679382040941912330666702657198378805774332139443714138250921656066880776276189581529075168992833643570971356785575060138428140778632248454129661875120443909850365846621274273180060078548641358748867023690069235871392078140764759917199161390704728974709744530435406171235623565836202663522090552496166004576229205717995595606868028056126035584092083761484632713043563970745089649055393910726228665910368335381100462934979215418809378782836665368281520526339358139143836475701878212804339525831514473918547550190468525538957307359085123549467039407559398562490469844224327494660307307994842385289161737976622156024086177943080503791773899439727455426078397744491696032982431954690625873739722831166160255941509423647867783578686813197383268818798505488807470562346334982814232149727795491457450320622240838650600173982031566042004122225972433917394408724627987344216225194232707625460632801398498608094082038470098684394879077635106005939247887390659873298529663387854981839054997058828016761364569481497602371724569706108272022678788951661661599519589501998067130784278036368423083155717176334106491115549971643143460630452121127181056905292552040667751117068170018261975668797087106343651366862399496697817673975363873220721360018503945069654724982593798045313441238843059927266442448247014207536919176262998445258478329363609380925382858636422295629061375095441926353122992079871687346483021007021211494479032555580480292773161273251492707460708027742969120168736620293877976485922475957599846125147050246379617111910265696455539857772402824605724563449158481608412101926788625894948641665398995100296202006484975740532862063292825053171000361900045152086926478461491758115856650693666092708605808297844080551941307923752039866356231936241733729046120434501316899118602757867839365764222299477547660907329660942875182199003195175698130111215088519076989808372953013042757427584395892528818504202375389609989915753990462256631727053328265254571797634209350395060410433191728501384425417887049025333958671333241353360807838904300051361767993873955895442121804707787727457428444957520207739746371770794673587183645883560464906468465993677374952154463090451689425851613959730447646760106520837942872138282534807936029338857452894794321239648329726377907846179078174548410203870628266161925026653044914460793909588720573455245684955161450395620963272086823157132141840286066884919562260048784197517760107890408378233452626002889614305130820273743069089370453525839432567608624544428578927003190043550300062137650726991326521951519956379575139288573039680826516663059866906538304660301661327693088919171127620834551218934097548470737007071121265579304837991851777949171735329737332411669253306731994882889252378347022292130036013264798961191439333896292447130066001915443723309157741054379504919924443593072038935415391502755438037609738364401561758607051789771351204310942875584757003193552350324064894362313019562074805433739658071680372959086376111193553379775852368189672351756412518405447003489139922824155306770051174153853661097646563324551327839799091556676240536305368862550553639428166396590686565264316320098539159621355154857470369033413415180180085610436653137613432697009200718871958062029287326469630254654587450716334142048676072749673082760899818541389016077002958413303956666242815231584898861415331928818763327573006990055524437250887445813752567837235729266101510044707385886729247856500687601010216964688871120968783455217945446072056095037952160155255669413909927443634151914190081863701628133974629343423515469427365317549520865981675421102342669064859437142996613726366874425260671123742267418296644022617752095948385977683936459556858617562328759999142140449610849696831769570697823916540029104607912141687659236217356859407362789700168179755161652373368834877723382439669381901863826509875687520257548554680051912142955291518910001564732189248904496232076376395826627367883863407491430203270275864448181744248914869763628798554866050719022017963556058429268896159049104804166350368080289508223137877950838594178149244068940083718154119521127430269378558502929162498495154367494400452795842603520722776134539473427684218282092171163493325156702327129107050269619194978965845820732573819246955981387141614943115433821049383771894206812666787449869740727976727585769388917922149654557298227520868624379108809764912585343490790264958221107736755284820024751384244367363528982566366204082694283670830482439563316956947896178478364407836251892848773034388988218364138937034493953401393451021850717046799468873903911511849555069451015117791225445341882667096916008323482840038678108664386927611196802311688745795879530734266854227052137028817858848742421844204580748094968731848595697384983333895676160107067028538855179591990489517469159043368672203554158203472515002919983530902061580470429486968588317365494612456612515416117030532093866533534829944761608951708089908669989351870765319725860141524089084473501390149467080920721960795316086477103142608071100501227957034187749629432343012352868444795194426623145316350334478575443943793921216652263982796664983357593374047120107242631309135392125979112137212360514691988013261132517899903165728553764693135625618456611293192593318053057131546461812204191566755719063065856408210533127486735961537276942863315559899430755473547387650693680872353204715322995161325316684797762829324032011430923234494711208367128553953065640051915381840042709771353989026278621814217799875990315081126349975486497788292638058644538684483153665204286657538604913251373283250759367107956843169553037977043929329620569466742310628009792862939474541879792416538286063332185914671672178561557216597380032974201152384519753555684018536502490649149921203302045948913982792059874675246446906988548256958026859567207747569152182990071084926483235081165858432219027863930872677927359307182554464351714918644430828446364328800908472385437557846133451301062587138860755465077538983238822790419545017262747438004420482847677956210404585383973847758837802165720455407900813704362406434340248447376179096696693715828514654128155819186947838000397544998740534433113332277416151416099542471428637542709522816340823053449743931052225537886956816501517419667668509268104356497589283785197116861385166444405600546932769000320346221352527726796017897277186647588839575230209025806405972646848772138667528182962190277224585730234660881799052550809559751398982564306767411066028270889051148690378843585328127869381427845276872168633446008436892978666185303088979285238383546666604122717656014858601471425073879713944259936106862468129700812897342222717924425856303293494939244490409661094269973337198397909080753043061516662754236257710331921446241272997513213201353044874768187826739283038909942228245306334097188988026470022043172761199938749440585072136882024611754504567975780331015374380639424161184394529458369759703537668621703300511839004310615150487120446005501143700139115013105578274510101412706916577298362059751103396383367814284686828320404668263984917997130983172982445766138406041043854845097073041502856569360748100287733988931067177254225584940836903885316122553819532187824353439770894811799448498568489239002238619992821532930160023460848798533215398380147614690593047019040444761269099110001892491344499367298312071516960905291956006311119337126259727400122845344425894908546894097224127554262696960282457805516363657484626911896586798144501016546576519575114139014617269442571623581779666925100229656010436296762806236392289539963988125905018683727781065911044396095145940741743691807486496391671439978019517858939187610781131550891709515620300405479861539683353620343994163528429787776656330389817743530627408914006427366247882187237051658437893230636253518922153230357879643138208758522251982129601096994189048250316338645510342079783507240590965761639028802100655463134348044139473470632211680986080947162429321539175954408617698723508005447063258871418899517580845542485134178197233715996910151971591903958169534594575837318655489937577554839486473839788668370513411378605951881299833655042650643271470558098370145871346757101328016595507869640825278602465048219132177118521387071491302497743437725612427680406020500677521058326758351288360347177143828063231221863441529258445635223210127553603691305712136994946079869352692624830939232477885387829313169369376953050998369041624531427367829574644122067731667074149794221327622900969872244388385068711479730592197963498782157036768541849078898356600314890705135703410731765678225139895122696087706185159435002923408018895928757963877131232784709009031939479555288715126050902981734220449981088812254520597894899572331880575914108205174719466249972210436500904919503210938589280205939692356624158576241927971002392764026970204330920123726739637478402364608259412645246177408272216745372096037917249686762392408389205143536795701235887258949080761497036636331135811343908874865045373624051185150025099765328073819584218545098015421107670232022209768648188046044851433824013786633955881929975817157963919885168633203779298628454792179516901940321816657099987670583489747838411273823373539926805229354207071712563564389458240097986613155851433424924217114859184321705292382577435495773215102958202726798890048963735180214949219214662407416239468196209843155634617852142690920585690108302450778640127824371827523906085104342726258648192885826040436373283666189958182528305510876324393052011930817307018140799979704483669981679074319213771604368945563194142459279502610219554198753038921562889103155674389780558882669471726054342590241706320246159593306435060924996749214320040679534624226390170864820036092032541444749067019580386875645054158065788535464545140596288017641040590482894507198564784602704361917957057461688381379165760774115416072985261912775752739751674143514033495511028937763792372151482040837253947665967207568577579758528929854805061594464548621051493934108075251423319692378753792101182702625411129886614825357807559575823798084710300460719834957909811325624963237911396349830207203996115330951348886974568518350342495654624986037103566895457377131995822044493487355932625038473829931059502590273903170705751126224989375006268106651095861162879204909306155935257327030931643714395152915632118064245921834729040898741978360246846701017354683510192050045954835117130730007922736386374504278208771695987399000459038795083676627639056887446093300130809863765667469442160428065408815859524218486408654494109485737483151800452294110035037631749066306519094416869619987024245177108844635489769934427799673537412994978115364480426363525823818345060095010299565163065472022083987097647190572617536354221766893761181038897416524477481553658601642407754668625513724056505694913308903412098727671095578704691392530827687739739795057016102134037611923962979288413221135092966081556216301741435587523133346514195890624811400104911072188888057922856313867007593425145388510868984140748128574925364515635182982520434169789318718721927770738328081498671287904499276716352844302510039731164376823148275187559333412977080110833554243905691798262723419733305980834555932960027088959255492615715567542692107649861306795297524521063289709493311759345540633179547914050414705683513713604809291725451783804071539048728671349021248367439372515840767978623541857889978483007742894844835854808433151506421200222670014375524286201499321269555420896692188568347837063939805797481961868402270755305586562602209550650112564126564238094706676133249347535454048517219163053799936850102796738212542440688847228454090891018532858869108061286181594505020713418912343172147693814061359292256314818686421602957247508956437837855540447953617241285665107929902763504851340232443179059831164807552596947702946421052581240686145288139402376224707446297080882138665800614980461694378810357826248324871285238691312682422319525778786135703543646638876034371919110707602777720942166774315158502117092258698628350428009575211886291239551899891213143716272629913628389144494709098122757677266263732247180012291388281295982436543659233150585518976966284764112410888042687566834640146948361091566806587564914567028657233116973234230782707558702342188333105269634550820349823036806800396315382197662853067892798396414191347502707537953003131519106090524539823877809253198352595943605071118152090476065398494790251724518325932916120029588573137248649319597295793216320984976248106384302560243429951503021445953897201541486062707301056398856672748065489841784092048163536760364978066604235936694760044760912927860507332631471347054199572046730726269339282346791770784379392785750047531015373148583056909212392759539441793088868882090982803564765496450283863366426962015188568465112287178374074808215562332437154296143148294547523163082602434164501770844713895223786451205835316275643767184662931856758954050589490905630733144904963828468807884204984479059863272690039555002369479229052794960916302809722801316600257990464562141366284008391886694215904288924787570828424240666489471622810927231290962376877589993915316569503447579462189647402576084903085059526278796410980912129943865473844121157591459202644142053816588984852476096754071987665131287930482340352716438840886830874604981067011609856129969060526363609176244030802546085181849441944222729545959903874677338952889735172980811868580353954657006795663770845299770426470933435260384827646838042599045917087132853104962240238189449502573886586637084484258240850498898878766728882645666307051285111591241004061700295175813152694257303999427739886192143383810933758038456611458547556682099965241709450698901066802958163819550190141245377625607124783165592920101232264206047395821149505755800622129282266712276763315950332036655464054184346732051238372790786221333526906992283226991467875877969810567182039063081066781061168544011592607698826659392556750162380437299722927886709640162378344707820266517496065573996857089661209711364709424864085126812289371992789248754165292557374315301794661571471719248764828608653138247281803473936745988701255936264019040744216619193955845294630926303623358473968685867935170670880826805669238064514329188727735059798829385870864076026949719691157619981610377668903925439175501809843798521204794610774642492945620526253292238943136489908108457766927191002916966498038298035499380511177489119587001210028430521407716034855056904636342930889796113299593571145845790077557534088820218382267662490458925976020292419016166606055261425913172387402919039553772126413635242631826748988660329377378676053868589443320433658637818176021137109253126283104961938930187188447070626401953378496839542350141539505457118306971505095326509546247289199976311214205408768249888575848798492394244949257857530080030112416745421356016241815186672466024122846844327904623616311325864801894786801360652370993864343969357575770580603800789935214882163108291765581998058988770433577724770218300883046663606946108297483970140951056221312413968141941679983589909904614013904272149045862136374467258104262040324529082030875709735701426473959069993679099765318135801130832881640589258811928410043145446751169476667902181239159451960795610252466788261126673237213294573313275331649653145619894711681241034031204480957679017772773922129125565514060992984357410621880423756874181574849967963844624823241424495970382137395171687555193114833305880079050520635809195683695414039336282520792443831097849877108039488944222241382179242857164747568126718275902426273062070011997866333397968521354178622352232419984171879656830172959228829553716793662181049180251839788222869153875091984419548305415060482634186577564393968310979761725728616186761462352985452071845428169154327668206952975841715234091829345974020000361710056664098139369921187248498489169621742090109574605401854947744686099661400109477396620875766378243489484670867620224836889221927175231850562387667706001204785838226499648337196083491527728077761404108636054564411893296357700280382297811176325723587893129368828394140744086886642226935935042935055400774411105445336732784463590745820075966777109327663447291070254414930810294085993825383293570499603320469577200990707104459056195221469093323273011607171875578911342945966952916909044691350678224852800978716106162565086711288607002235955297862250076807074757133109203163603201569958154549656858826522842239653802206958465012103208873432765967034437705770337875941787227010881053376044828366597230321279927495770574261886537958300263948826712378780545295205183093563681008480392960061565036166740674507954708431971058529349381620019114231587354937738209854509408877891869145557687395425315309194604630298666119206175365818939042204090910848094844849302828207667995473721534662239488085653921873018882623000806522287612310016120498615695500656515040023017824295366864826091592293659531847752002801534837426019729254959699741677103036689350700036378733038632425513375145403920772838496429618436687002366422141776638613316331670282054010924935573972340190651636648807447736412682779176725664231117109150876150017557863860799962361554272880591988154487901168943643346849772593843834221375244465562598446128612358985337034337777946863586767499912576965932706617191544623374057926748351698491280204678584460510563105305105554584611661952877703525478844182998064766119839888070774972055790435943990164065594322415217772243393920898708108316694679177372511923847479315304334730570232452417366700840918121904533409670646544173154476851965280553358909785038830632849747128497763984716715655182828789867550525649672365399054324186598189601895089368236613434753279646167925288098628146862831395089040791753705897919287925400228285120424894212009256739439688960116253890109045743768350229593246031992812403426885786479451897074786822175841979128371311793864732342278652062375815476927976351233085196384284316881851793988273721717816643313842699024973036016705689276961285940485685814533837227499570969538681548083400152288156533643580108700862108206337497246253314189169552955863517146024548793267800529404819259076251152831356262707456189295153635767681058586576010559035167563992729877277429773179274066203014048054536861055460835023709041970312007280934821512609478729977653530958338190810171079585458637465884817391569082893329185795118183211036070881102001157489561144935036580249817177644556416585008986044432263186377036236185397654845117818231779368220280972275460407328915053067371463323999083918138078248526634647110619293407173208166407173025309734779739554303709763866739317482169702561424362854610198281079088124376096731988595794490000296101799205755735877879536345870545967849040677820873878395715967033122057517178987994615655199245094072086881848279163926404998169750587886514687955305639579444644514734333832632224125913799334141104984678114604703338566419858067655588155260400629874183586041669959575170733294239555143731789711155155028627405954310087231563780011560724684090176196766878200999431161633122182427327085471002885281388456124437516864973347640262914796587471911387327628902860134583377115093192590334647956529227905517265119778969467450093071600348492025995568041435108870920755024518182634691618003597277430354389998252426828421950653732568107389115960294525447258543122395954769719780536197669987663282050608740804680410009003106249960420988424506315789847424889589911684157144350873489372667356307636165826563758210137918528426450808902674057362341513338154725953108740584829129900909080344331337200156487149773158346840504344449572048762675596884858656701332644241656340644927860553312573164898708253828455053738691775467964412450431990065743005062435006904388415371182017646846870320015020615707194759066726342299371397990671115439095331082835615956164068190202327573664169168266454852745829855165202875987971899002014433528533105660420673800217025048787772352139153219167939979458619792038635526167448788832681159967549738990582244982910898061788385218772644223381859393194851520490173289526290222424959889230765720625529516087537953053755918013293239982180115283195170109862216846494133250103904171018178385513814418943769355272758913169122120514482278108791160162080468885492602479493531587267867162791257414779197295767641287422041470021620584867254162828455742011208031309774092103059311153182455809216105472433577813714190970450292359481257802063743973400465981824804319287943521403338581255551542456469458985209001882277061483118087995303986723263317797586070255843797158170631413266010965010012053226489894849905193912683352060040179170515601288565873875748655973262013973316909981319154611856522712940284077788463768068324152496842024713937633006394322891067524212151135497394698098961157577229173872925992143805246131707029210451585574443861477943981671677156168676786339693586933646044314165453413398100099397247309560200169906908043131072173195072645246451938859860113444815299775712452249207206311811598204288275481223165804511725180912104314840827548944077957664429456319967783556247483870243147322920700133094337695524576634530892701109859112939869469700677310221967363983931959198186460637248926592888503819825801992195394447591903730371719544415183058947588810528966092544272451595247381745323780425154408099765477556923026813382768994698247752987873742536445692071137052983679004375178838890876221019778431325896903152674877615840370630139937408397510557968412395474967581324322827223007873745090119992781370869958014317270721621975360554606920031064559966213176423522300824019476583411374254970904860877440877180574593578488584744611772784218547495837142705474521836945050150701966881575327477079423315478854274291806404653423100122661355142311132955520156767315376736261936653587986165196037028296635195790258906435032971535475872611566832379361749003312397185095501570632231869525717233482062537714948267648179333127700327426231846402584313654692006167707230679616724536212557734064024406436224107825895914108939348059440755527778175507723101035864812138366638481413488685017108724582037528431687583469760437189717867249707048102357239713464268130093023119349646046869824437589676803327245195400893792211606660817490501985764096087233830465063145132736308542904855134920015258208862170475185846135557086901066140294350597364240034330324069258932455208790665981148750939894672298383104363791939317747014505333292262945454802927307852764906455242283631324616529410565707955120660315065069016342463123907561619925666008098631032703756920917337307140611586044484400215374832745017709121381141037054224555132473568366486613046282922044356672562888761529906966957031213312669686476326521330637019318912038628405494014187147993595163158768898721746857722045528938020086769296811710101906482920551125591219607329047773091560567200341187585668880633026771511446267202223081100087385611532972441956211797036754215548886887974557494749917172722748601778924023437067601407544575407058292352935424109977314255552326720547498231474444963720164857819845273216656072033829203857200995646533564529805332114663442336444078773797864820420685095701328126325022165449674452535797925373816090645598931112864364815960965440769837929035211500822275949299786523098489735643326518323509927118495491737997578509412363800478756477019611510554084351528605957349881117254315340956895529536774428316965612310941626160257997625779602542192097230066288286794871995725792577691206991548862915457099924426301222774221962412524836735240385919841960350845687798747097504666450353791331608749037231179226747622262456023607897258582341846842020416952236083588453184312652279383202817344801963867044033217719093848045796577310778424054441923354139411769203223989854779755328910136164673526710992295924259495368554620778580218003107164017653859785975989978637018009503582779739640997332650312770783093350495978672416595978898356154890719041395903346622743130991174124837771336650352593469444169322019271957329785106750663078436214710490240068058483017209778841610016447297851941858471556916106604349968959908705647644242147390147045923654417940483835184799171966070843799669986696078508810424108987907978935098028008922897093116560376270203170958458560403980533821011475032496297291752056808059031538828399667561466461721771379842330003397026520028481137914728178712089711964341938530637496770027413750485304315238654061385619159629799452112609545130169032581878881616466447841035082316682837715844527835707758521247193370746142700989277839772487487169203158075039558194509481196696922010041927916103423393306545545389476643747634474903741419027110902578864815584588787822354770624510775653521342206491190912082766362404876996443862015419441764905339127856065707625176592767815452251327864807081536452728838741017241992893418690925463830689602980567925993149667886936311605162993474475858323092486910030782117097682651942543680831771156063713107742574127291878272542158010442002306876117950974759257202958178366796440398555156417597913462515461017457376341481726750496553954298675578808001756275834257234758623079963355091617568724516635706778719877906876105484150829813584742428861383509678900231316235005403446838668918581683127230506130224613243607088989340704038639744017776186963404530457515012228199652908082635972943002546162046130013315787681656219166073626858562301227478796725202784059820188609060011349338941187986061994635713560947469879020934686851068836850226710258778342000437869313630176333655705099957354423121971523998669901729246465905468705496735943113756604617914349866564257742649461098531943721750070495253905417113749610283159827526678440006772965210267666456711397825109780065088396814367500805914876703701357834353074619219370101994072320915805003721422162820772629483281144673093374624497351053236744157772449415978759045660815629313404379122047072857965327259865235812180463212363656497249780617781994606625080052187145419926839122487597404159001064069895001632373793761189684008605156565494882974242350581215866172569527843700593958434260574945402526886953966008988547974369124763288248384795526286963191088516001285727471780423172176678418350876724146366294855131346490769693684228646492311064752479517060066140273628068207751615387830841699757801542068959372215094274185470799379808582658277678053181704728632081433366337216984017726842243770160213974410303639278497958361328012391920557483140152712880613456186596387677422807552030922985063162804613330201572564110283956312016374772256053666237905176285529329196378089756219714994668887857494083705553266332442299942013632668597877474665991238686358859068619791250126585330470500303184701559135704419421272935210431502681949945529157845549014241047412810113003699412273586738053147040170223872067027308102913725685115050333245734083091298557865178166280408654567546387886499655193479129663682555581274291370906777822961467941698242435924331408177069782129514435516768806971561530709416070248849282249103163112447577089681906948836454438014931960538291458469888459272173481709069711814861529424139835832674439348056404828859598018837782815200151383527984319032042645751614361867539081488913219210135761116357154384280949733659038347789840335865948757180869206926612362819104651968544717247376436536721862249933968352668791762743317093666301928847190125732236435292797374679023637240891617652950313717351644027896376499749718404175192635567244057908198110838918917440653570661239057267034430822484064432335275181078234894073211825402883778376893922568097952301970565085985571027672319316632918211053112322506506429625827576514778178217279358430393016383721486675914046078417483509667030442276236952239120167789630179984227880749634822107116910584906560051326899550981163587621060843979538316956537608387805186358394198311470999331741631589136169510454892424966518332839594976684091488414932741346072551649278751705891082622162291309468908097927131178788555326544065788565489399669958235693556952176405474665503511219240973236618506639219666931364821085420583820139752991358659271747181403040726054529110808797177271379940699855793114507555635112384680279966392515201748753875386519075823723344158973642933447538376893335651682008387066626591930662490810884969199336466216997530758709779490090691179551065991718329741760776119865242924228238375965299138780991474696627751968399851701151180645576992399023552172380357869177034677278068966534578146713012333124731109444607898578562438868044270228169489640204740765521726270710400848676652540501812878214314053910965418130191320436254477643304560114056263550855580641245321985457944154739031059623547936285995351653789760020022824347891507947049115394090844271584497757195227169272338134045691788473118795949942156798154255534541688225039476603237181619330588487766048365929327279483100135704609160641360407767343133209813202146556023118398716697263955092998934787372860720350014758992926653212963928383778604206969079928785523232267248493186161572583777686500184304123909775396908017474030195032617571484067173421444321387490087471891107557276910454926476418573637211461059674811021995673140746108919918179588470873037186535864957627858168548170917049451617836504387810939413137992666873312841050991995732220980359491625933645277862338074699079584207177849117216480381533317635851468558156546257190956190451976715829495386891706748201571911222737924225872932196634379327226280884969764772528305783364563622579443785860018286625097444862722743707259021322787367120878384944019432390409534264881084414488257507992356866604336997786638499225413045560609996486678629729511506410504128724492079073979424008560870856756576678740004281787017989034970658344062771306366788782583245814265655189154307378831786576419934755094761653635826106718063283827779093383528934955010745096121607804271420525739615017470013902697962415072104336765753184014083076731368805661089614309623757702796184890789684477095453886970408443664517708872376978621984272386818830593217403458380400143656195011154308685094676980791688303692725126175307910866168229651797007991801828622766880973279833547561367643684618272594525706278252352784591281625323402387417914334534725426314927853624341588895621832944295695956943486750160445101178315821378238289082874223684888971011934632804880117381141862829999496909955262367255151318965072624955822242446198585465966629890578451750457013465364796635852220689844746442886103071979367727869497073435728023241928001967297090319333970613680567384078923077338488989127417335848530859834453105440180032749227960258040242051044387545249494759965913093908293548361777862792839900602290403113360517506291100740643488265672880028509236956104375684930181932437330301741276714531604454823019403489683785519300920776921860853698959205214413252642890361208435470733906082068765638123273447755999432954860600826831169034558710367465746382775528686427762099834843287921525583450705056013041059835853610417264295678785236806786364231943919302065667105447856734751183943701818219583664579176646079598575560340442245829885427774953906896189945220010893506284248829555365349916012217945581814746754640934371535931482463666362986140722016641878879489559347172895201916735105643409718722377446544001905061308453207136768721852975912772564302000136648727323172848422589835243397860704952632189419956725077281225206487938779999223627401972030529967358932977927147808961043599363137379457968640917673412153621056641562296162863412280563000844977532296965323458636962039386460390155648022239357272887437353276045473979301046729600182992957442203924405443404706278443264313376743759562605003204771581773287951432719728956533649415003312293866905918671654183237549953174195059049138610774358452763137383698534623937492684948468810343036243590395400604663455492601961733145898769826708144944380369573397836141879734312483537148460931852439331824825880048105356499673527111035720876655408507600615295386629318418461931178205668096505577432836716452809609606316693244256985549825116459009696745262257294668029244909244764902460519213087290672006659792948441448211346628982824187600612690021970128097589715681817868106620290044484722990348414811082610606229707337963163568777622860646871548008038460848148620994282257372590424575037442515289254713026585841312663897893712406143541644112768661081454156693853804991997166294685465158347389912029761228620193519149962335509587587383173692509894331719040798441746796263417974389425944494285950452886883650094112653658184123184668732208916204644485944197647403956102796517538260577711544650395889734177586654018363499334590714112822584533491698463165679872751381541219030635282555562009850930995698343771362978344699308721299463837768789185378397703992654762083506308454797938587226785152413832343956689932552719045688443981760197677255154111792674949752873632541605006307086115491787077248604850728111448538583600145408184375981254233892228218678175259590201312898268234003031218231333449996517444096806812258142837408338332731165255201917346805005052934882969349528630952451010916646020082417377394557796516002337915574307014554872035646572407098929193734977811926738235287398320684191539193657804229167762457034250414199429558651528066422236635666787882543086564440986747882781417067742539899735109688558746353482641313840460322232079705306067648923166482232726792507358050026207901463166201318505305649735698701109460745528617977088992914285374861520168240408689793853422603644961681813100026821030045296263188059888256202879326100394834799889336881484048983139375701001934083640017296083064245140184179533134967653249118917713974450866172841111606774898621627710153098062919121675811216467799967424879990189572925508507483545714932468979798367153591621031540114481382884815867143268265421372020535049009285844998146171713340488088716073479227075542557040304063417366424844772966073260380514485299078347925860270719220343762275191806628414942926188301852253197088122002380391310782586546416678316706267649044128599523229584213589690798854172908051335799530516696514843902292237752318958842034299338181712302106483849006261355923508438826611516190131029221711946010981651811090615945236379381468843093782939760520378740787791974583284743999226995267633195815850202529917482707385709145101813711386462786044009814183376192101970905613424732782381790820611148658389155103042370157123151594163842310761419385304601575374066372288480370745002562832605580487668114990046058978189845006072882645351869703507588398708013800250168623612445709504663929413162657436108385567609810802181000314478003801608324464619218250416778543321693130658274104487367394238241552808097080671583466012150481969970076122450655125611142610530993252359810628186357895583493535243587341047822196685757123078745820707904130754443563187550420029930078064164866377662375615764788698757078404897608148628662898360057792915014263765043832422284440462920729470894887781542390405902111218536717975736491206289234507864197380135275397161676938340220529709659922536652779947008735655848950253948962354046880875924964632235633365824415435844887548072203028436864577771636374169683847946089868528755099196167829461389789475385924069905863866361108073015077510290060856712917167982534092259581205898889635117892928979438504659784139975823356446347616759312731270074232416486637856194291393848560402751051627608203958062996440032615681760668414652165309762116081939380349288669426647764533264674077478522504576795626802299040468911348548082403650216435154293296602194029321725481624243033603385538937956134940897373145159460427101552318246757024273845985828041254979081874963848542265937813738071121343467815714455368006094209909274090003512216027962104744692252236640131334421584000435467830341772865732970270231971591165435674284214760096993874561954816176578182682826515489061561223585237068601198786921509579302587131500750350322219947441526919925124014846163199065613621754931042615733671934234361415584736012089961418392963717368175346444183312311995525206768667726740026905707205336141032733066563336533132356150448540055929700491549755534436684709689060909547620181946906068853892144849819534719007245592213251694331037166655814760186063194674189351318422537570085812696027626645389631502635595748511198754349977961861911785563978691946590929460632049246919864460832348720851957077561721127114558531217103508293750853554563738666098355899990618691878885407286253652146279500027090976239219461010607176219997095543051154657388156464210611790649934058280093772837540977836087913066037359978611212596423786981855926023134870234131832324777242567544725840798742861872362575366008604896671948898793354312823392543724242216458786287273049762662027815235421806481164128717955796654322283931914595011151858225790210997099605673785292545156259165021004236476713740929362415260344399151574926012796740876158226429919178157835651401210488457400902218836168390680555633751918426959387720482481782747540353957944903750994825665836213501007304805414730581963286014232363180796130317821631284965241608030621558760885489491077577036163000366280356951219241729587638760591647708204431229819163901147303225650226326176860120440527669879432869957252405050887943595816697707642326316511167972872826354002892525992701519414122122042578469020655776857141118616377994697705329573657878043988500766895603621272257823510585560032441460121034957692717535610588533811187153656516171162634106019863630758474993059406934964828563473886856183424830284801802206331172618112650445767724226872523561382294791859511339952291370065427508532929000090994580888321128447321591609826880873543369209594697958827073206441167529567631267458387556394210951011524307336326874650661631429362574120780862327131703511648198550283106415307430888190501005556521383456707840193016890586156907911927629086857704926756669138305055253330899926871059567093250368017833863989259620580519508673424366450774643921541093813708051466653917672165900629691449447009009408544253004942170194077865382972596531424756324698841594087263153669863758809816916344046889288326604409444659894458992601861783349924662928344145800077332131454864279391528970140155536918184579958813311403013984167483822607717290015357791578715939199159672385834070995086265362562016155645968167633925008220281173555127267507613746103083803061788939248243150356395573286817272948433014570097805787676288888363340463887136406052976009640475397622845262683986485277300511865074158649064883626504912536750123466467769517823684334439374749858731578518002637810101209014749264642545231868677157457014015643235260942133428664089146453411411090258971088608831951681500613137192555048917482984411245777936068515474991654462750293181992881450982267789037597077068059890073365911216193758152267588221177398944625648038938461492752797940745233592527034774460038857458059163321636960854515893066944293099823642405197532036205940993426935046432099214423208107517489669474951624217235541611843979690405188053176476782615703845597613499234980818471974441952529872793395114745284391535951914974183804145491956034214133244647599878476107775030856006104945135611219821931067960037598784481748565489541991284931692478769107956285802999510881096752287509031689641518919870154105624140896853607799379186100811433663115400374209167483457254514238758609450463250323789256732599684166305529785892596600529101689898957620319615677540218128734747319553404477440089909897436098287086765615337285310240430292103758630243990335726752086783381330080944178774622405708649195434279796646182547071227438732099995772884701527446053997474942068057013052319367688126059443461704765332831319621346829324474766739877206035363137031612595004097123841671213168126993681065501408804074980123071317226038134085027780127258205041859724854775684275527742521645394891725674170089213541233179301338002299903491371303462003315383353414587972900427040012763395619530798421772772652941388172702919898599261481485288806798450062029524600126484408821365563316585514798966797560392585435297456325046068183329204173386888253632128975742557761887911561912010416857451291909231862165731748125990922108021059173255131629132129964760437906824229372258109108653460983922327407527868932380173544898420095920456383431245072165828973768828374852492950381871140532427873641169757014537120776197390484822649134265049900637427267790645210029086400707367702563091775971958842067659871006999768550503825604177223988900284682874403565568021932114179018000236740226193299043764838381995126190564453975558095023535641607809163063068869028199647836083341697600132388979893450879959751192607423293739891738963811679462546746142049914618876570889489903581526919691982815060074919941575213897057280010956003298302652887709518029229227060797473157051416331772746820627681135080810532192942795405566450166852116644758742315469527057992951342942581849226514516591730849833374463553176139928436090166503669800952339418946377701298713348656998956896065178054463107785337734882790539953690569741062439305138089747318966383631100714717112370691934640432473799476418135770932945528548150913327174929996777868612275186504324026190981189355729995754942416630589628271208155177606873626353982565733710882948432743301430243350103108118084753137555863661836004249293631497205891199152763906962001802800747666383949573719950460884777074347797319788115911198534555319754994999965435642146794104815526637633604949050654028265844720511412940904113877627688236632003736506282484456393284005716154965451952002491122172743094055922643025649017368993238125463781152177383013198978117029069050841867665961604108813598923708404616844565452667916303887992681025509365914380566105158380780009330586085645293952656671287524557700059229831209780922573448947306659525766447225648510060631868868825671628426050133655776678280440246863591861604946964571263949495290348142813080285266644640781075983659607957843839440264891318805002911354291059887003972267406922087863383298163017638717171874558075286264149695996673207107938707692228015957552703335168358725267292439195638778947855076248581328896435908327974780133915164771150367717517046273919184207000503411001215586641450294552463305314375823586406302816381426351029528818978407439869449724450106729087951673590360848836469693413999931895933409952735180138343676429628144141355147367287794983504453261191936216041895836063659296358363748929477675783356163599051250165222677115629198881858048523293402785673117030306706773013982079100631641427510567209151398791211078591949007412794153910103725837721941562332841156634127718571176019089713286946648909029630772571605534849818987759389401497194791579304547835060076209961229655341624024128002454217490401983825699151907264427065601510683001954979573738995829431592633266299197041885290452578670521464915065142194291870210686970727369939822668089760012268392805732600950882333076722540709252118545453431310603363318382368254308253626447228297890820625377963529698119785363633051120719550070601434300225209752570710462968435720325161535992598303756034202106407406946199225328169158442811398115525679989159727877682252540778362036139166495260908679608336159705678047050883601661570565005744355769605415668793029463672925033436871013381448409916792214586104209968886225426744929664666177759544599132460934354782759491247282669667825770330985342093007722374648190975741129426198942996700922719229883309407202338781575130375395954550751804220887324847527889819143668557455236128839532141065318755514151734028821869654975903923716155730176215928931676197988757118661865758536156977197542734436260104217196959024685799391902636645467178690239747123205868547863083182534923644449861075342484239762330090331111822679096087264016106522265970191296285047312066615810306322904323937715155148587873422832556196807802845634956780091076796578676403570667324252171694865999132412414113093909897392518587158273794824764679250247062046083874463885892220568043776725551533109332731503580525821534886605199493906010176864289319264647960209386851633631674520228518629210087087590130515867919745586970185289829493340889491669099753913925764909628261594946133364184289336998441831657761611790265700368814169704295511558145084064922778662849202156956888555889470748538653792468391998595296556708043854723213378536855387529606607814625851368773733918109754010647276341044459403372001733151820384464832398535363333977916555314594176785285467979125164855228719370461978626320715890546620130320000768733310338535008079109793518534346928640259990378762550783140130324947947514510986080740019861344444826809067608952991953478517012192064851121909279294247779841600105521558719618886136332314807291913767719678986619488248699668905136430123183309083619001439388898270851195941935015008246494133499285054092692137412435385244383449621429134710532580713309292107746870219845957941167131532507781677125711255173589532490946449888796334358007355441642104503149136868480594410158166203458432339355924611813495977079073143775725542884595982067603085162599355466999900461443316634176513825349486307206869772639192016338141171716946905635542868190618749821183573772496976341360476768169493474092622900926855879598970102860408465608453475110708635964847482173656193404908182702975568559690841631741020940363166449348586209542812332767468681833326243008901427935753443019799890932727165211360325866416579954822531297827170423743846190749479102322400193300211893891166590339618649941537915757720727392768696373919199942562941294401630756642429001740108214394190427043688637970609128110425631636572803097277596064402028753260723185338592343025583454895252352191911418892642126146648758374419405151341425983401432163457913787792801411396177018643207625783992030167306171490410984969144916414799089744008671104864240323630373534994857022811454368200862512986962360989493509467275551223614340725381132252648957002687955190894968945407869402832668252075197634614281276222979336751478015122780117628421823746972942453470353109620562318252173875438358042402202960216955029992245321885513466192533550736589950887374103063433008580034770934483392411866213598768442760398507027143549544009232035894292782850137026999006932890213323612507909374235191009189314461415241376805340914625361962276499166618357553498829198190939491577583003551519750938433795794132202823748646022699381425060628550253137638648004538805646341791917190099893735897495892866652462411916089663261126194915938237794075605372815845981348247574286675837505426413533604457954442105037224539275833425987790956485181579037819267990072709845796317667995684398921824597626795659566085687317649599502147247962840570518392625813891118051479031916934723668709589849257154454662163671366904843278041281959261864121632119368427070563735345308823714874532695852730173310667450783646860992143679971011192199763850698581563327260968002252019759288800830286152142126488260907404915086506439002951792926600228796312773691716940866768652148696121502113820653221272939683140516201111734627089400847368845842408457833487978793664474757516014413774336086194617589640137068900611265772891530509528357287072001040433014376823057435985366199946722854886798549452129077027309675428469186640983916404482715813774927955789798547101973856850985118644208144247691803402828654291852816644899842101198875917008500694175101084800338439678615990492778306938670871391535149931083995699983263072127770095508133779823312628144908252437980282508185926825812136822675342073181307711428628853605305459042868853762272553838583687424446056112123451844207957364317565475205321448478673668831268755301150546831288776345979252483586422323856382356099606559899076978689279896280831578573635183225878126842016215822165179108237328162608633634575616425708590076081191112391510750206682353042736309598111973683674149645684201398972064992132768456375937906733902881132819396624276136842961988429134852356111850600887035588626473301566084688034464733388110198057702284931769229423386693660529322210349824119253106055573615247900080823207317183423176067856992843873974449388696628468000494846283976801827810496672938670650283384240055379314715058231949688590299995095275555807976792595200194127720610440785370454332025434044688277295849632259444033514178629617451318893721499026101883908740007195910163149964244440177318704371759796074133981894256101657011799295331900658666900136502402091704103276614761124319904360354467653727337210617241212121224177570931319709857921834739064588554088918595939760207923758171071302536298177127195490034525773729568452066983618036663078230681157465543454333529370257495897848640503517917958376648510892753111763841583122481094259851058843410708757813070306176784196732023529867150582374457503324599911924634039389734541925405746420429084708239982091265011529569954866780374817010079351837853385612524254719182950044256970439323634483754959217036222072489214942672229572226791155667742410318885917659478635640689837705797006679632468915102196604685359014999331023759129910305608288022932534527771818399868306127618632868512860768591300405171649115737716314871320311535801232359508234805257601042143231841972188051314604778502001658664863164735690109111539142638719292626823627329717683520956643236567567676892061328190823486330189883149811124421704054725878853736321591305532950373146557248180793754547202123948440753963138786500586401268516715055099968342524810879077665576925467510652435181683827706469457066097184417925629748823948124760820729954986298669774177264513696064130467594100921314403609890186412570094294780060827274487684666394713931614590613516918887002211935855781808829541675183248227240302150126622427708540837879487217123058999177156387797627050230197472120014714139721519616481735851984811581480967427521728586725881324803468876941358469908220461582916623024210553221489379482235150768739527189892215443666369855960596916400052337723499193399885618400097420664961726833641425855346804876720809425310276843640514466569060747226715537797604118497065222558806843237064981345418821677994226254975716224028255221623272963712318121362400869536997311468946082356081752236110925182849088460610605519768556446097812816164666652044487927581863915129251790387712803680602188742155685360619381800623192970384098817917404318000585973006372758271374129850401254413092159569235251765730656354153379540589420999695872061888198725202630090806428961967080786171346964650451326395512138781238214868094259281066164728937421068865646900894257629819550386058640862439690985958505229261237748500126054587595685633585750755244652271322981204852336790673497344348585994785290343400627085410199787710743631987182923341351861425134202749134699093334761511384077486238992985101272308869261249259243901579012447422945081321995357417501326278058024817127195673370701996450623237839363618700931716836724417306726943711420954877218416841271749948002803094107625177287228270309399265327975636214488003156009634876131399077107020995398501422524332212700936550019553817200030841397905698620752740453330786634600352877020158169064503940209652669372094579493385861506100475678093363632791416944613257633273006578468693876773417990012794770430287439036309190755605654494027664953337264144050971109219472962993927160410335684109500465648957556835831889992134678189670749630204371902929586265787008115078568177558711774093085211212015840092604530284644323853123866337947326714026612237698550906845734043292844706398065412857431749461400018700688610162233764539121320668120354027664782451581068940839150793398263819059989589752752870234314369980440291002270347968814166932428717543108980370829777496910094277496659890289721667686614574250980815468195703012060646868003898539980092611127602525024814521993549115222347334998833852265162189856358189511441832059811602552626705419951822222926277660521979693588973001215548731493507897120065579544607411584205911732590656640214332415639271469521671113352990657673546173870014565506216118989153913703500324439129744728075381877643200712167408013211745045216129452321944200926299740469276521543397639321966858724918897982725021306639559445089685659968410649767690240710311340112852069922750794037064321601215163061423222308279504981315566343586936913705556904073430080786366398122022342360276804042186985480754871082927110115381509619024788790301610062375548166466215823193942067195259675543687214816692977711353475613277424031747455394688762813501252240037290861883067841793494824307746396443595928361709682389744553206303713046495818864577775026191338342338948336527206371515173749727736273896491778766887248525445488215402039090206952562664520801312044738681748396176427465561272761391224061904398729960997971127170257133194672452292770288405841758932686229226740659053400130678608165218349544568105742844588592746974699259037071613665700563532681753185870555228041998688685713737632406840378198820984251194399711050604911188845469235603515786110760109708409693888445034929175775570802437789562558767900580452938295984580394636362095454531162507072781752891003700097644857681470631648405000106761205122183602873026795435677359397810640882919208375302423968715506174121063641097364023208963482533874154385391007238460410092235680491221697664485166255113789504864278426971958123978040426089696583690583916155419325735116425644144846008899992092309948750477108580479827925096386470160732148072375936629517362606278145792192173671058046493006399732582366845816570011910703355377957646115299426349641754949205803960323025168256253871612278331321931877004311550099433528533138359557664226258616822851744223940012071042625104257688297990061780588686260749590330761385529885569361057279894181608797614428399014735005244841949518891631929165252929217854832946090169702879678594730143289190666938771010468422466797004141218853377179099971465878493573856814977719394921867837890707058571476292543609120005157387580563929676760140192359982190492677013339296639924992749182792014209939265455348181642593555871324663185094646134666319708060253701001677606750497250052920790648297309035295778064057795757265944019430580723617461317880300924356438620234603870252254781698532980751891180055376367505010298392329971538699637256311600288529376564117995061388419597936414401320362861503153180664890781828021783547526999838280174582596914448457983035215454244309604721526842249846668066255937530073886793302484033503152447155638834765288788484067903316446235796551841075512753852150493303185846055660519913118099911348282169164507139170528745065787035808262183222236290241080440921766944519444749644658612856062862330327178072945104275360658422126013899694068975305541237386657595590300880247241153439326514972617437046336490641440269099329980788398805909048155624605322926448454962225252121426993983619384557290886080407420715922159767050534289117741042685492173041197042578116818638357477237244981844843666645811636066354381429669047173154289613525580916656357735398748556404405711131073009576869528699188453863992837829247187808886944792658507846708300556866184140828977495668125452196109056909935355194174770959803296743451467198312399759901628989639264824059633546002879222941100555091361026747790293176105917141001169875859942269816875874105718121947142594403159806537817291520678768941258029498418891587724443751493563656896124752322966966846126362465840278753989401664886533262054868751628732072050601293679559521551131296087601507961134049204632411541205046901305506832179711071780958775253563694928845794723840202609253231761263971976912085151354167016961743981695729653042092646020412544333767065860435749694227136332593744241670962257822492999635571743494840580515724192215326121615242439749976510078353134932212448391473028747517408808044560965195440776863333314558479488955500255278618866768263779628684594426321384624640716629975988396829820614325669818703452706136378842005795004650521311893159346595900646930656885128787128627313033153209104680596235918789532082030850085530962269015072570703702942048533547528173637116686020683663542924860315635561111230939677276489723160153087043985349003641785282783827344286301504357722758282356735739047522256879547807833599613164180888736253290175747100499178301782779710554166125484103003850634598761507754391271855030292335359969523405208939363150432683310022347038679461811792514986062196713407916100616629962277165908222439779209346764475844122847134436059859583683014218989249543643138730453577603590591480246258764455933631533548211888378490185380096197374874019953113305086079293814981240084933740797839556267352594804950724486396978637566223705083087016256725673305469237664663550359302047597231679403980739511233793503811666208611441985285590625198777596898998444121686886013212412531803687063225883107554847589955140137573708595296554694919264358121054644488873310976678480135014273859389629666067176911388719068167012256935291489063288876689927016882307951126902418646015167652197212175923175806159721650103525672514586416321411144647504840279653406379397404757753049129758182827398507064079088441330533823438395310644723546271294748680880398319898700798172792331658419793867088804125032280667023425053961392027081031499386149591455489334859163034829108085846831736284284755890771921026657815059777517837425716441254443134008640776174612420450130169515974140026770638949142246336535824626041818035683844728651782651269537048191091925375276440361541883862795373506424064256709511033478514592896797815493842247976263488943124824537216190474906140673142449341390216172371136750218551786114832577945073972219976574471508752617742261781280104866374517178439860762701374878492124790468463090837772209027602989123385720191078452794751560358360128624404781855830428709092117053989526155900528946450822769751523764105832060459487206278458586628300656387028164112773977043024135009333697207736329907703849401115756822228698765922540932099831888081644957651621635899100066581039187877297804347917630677000412715097145063225982362507504502582808358504749163167273421931099566336054297411652039851422291059708036516294162285644517389593587114249397395754001401016428903284001712535801120138261910253532305197455271253233475835359986503740559683401418041324248758541179574778646995376077164645437669096065876739334300009427306096661091015874999598191312409367309035709275927537397162995295221358444730919426940767202154912252497906789799062287888609538400038329095952161294210803211903353709959986182229575779246301573662612588628831230906016759121207357016328147393302186021134942384882494865409784140239108668570897098476837764028080572171266038972975921607505007122702135890434568314073728724729627046358567742428411900484372609813449142896302575835376899416788139363366417626849219198194410797836548299559438557495508967825404642754729963091414261894007120021170152429982076435382409586237982867415569630155257132849843811643021353776528708655984819037510231884624188946903891155477525212743871742100731564444972316108831994086444300019871814138529828002034308392114144028613907963137899163832814014316086760451907141722326483246939771211339238189544834515053207490915444415734771026592469409749527001936094567604433752564695029729067609155349512791649056527536504825234020411823516091023588665947367559424064095295009167384854710419502900533470263450541780248582496877518140041287272662432513153413862369209833828526046029148943319022848696150735394007649276376305796032005383162594049974951816274759275521052128951823313742584584432108430423171698085134704457243399693660809407385365157928527747056266439663353820262049790297828339105864451558067733797156682209568789249218033214734615867892419328790477772908789465748888833601561199640345721838557719723403663789411257468529247900187244184447205514796505086420255351323877866432853486890711756337508316923070208487862668615093590641068745987453964208003044256375894071893075661170647494528138416320808597552899161967987134568734041577793730819749888935531330100704826384731249855602102873201437730467764196700533389760625354339651004863956190777731365584636444818921075469898803772893880179243422024999694505902661464998852196156195443766235967499132527359120292634407176679610492347657181319385068877062216698496544685795861331960607401365681447082861149440554190764205827562469081723475319146763693054888322994428075246951816632343289599062213434718470933392363344188583231185136907266881169125704990893793052405017387214001154212446873222873619068654081236627912833139062152039512784816136068379523778663506145461986848440639764306506708708911026230712053007504820455389586167254786802470400315912271258004314494181165681829810381433781210493038576289313889971789108615283428961887688463357939336896824610598724059862728044198785609359215408969954148014067297626341607787405354093727748529821942359485317222003405579010359766552714061340713558195449382824857731653538917305069383778678074085975373205276033893394681924777809540233739784189363319057785989568310548287762531969228983375742592813696267040770680319393538416285472144958018286555618736470418714935076502872725773838199429198258488181598081419943803672524382991037676377013845817136751742928150184330417298800160666685022150315132438886340803688933914517274331654219905632735684973913885604433237538318273110748623352775684245092126585955565565643575415442061897630357445750265862293091176661814654430373213814382097319706670585710037412341234224801188291459638466164577814315014410208830487892264699201596269348130100232000945320724080515688047206518392649986596890185476672645923364426217571594185014142413561805445239378273689228531738373290526368968984505424380603799649938541156020120972344841968328186771757779801293243127314561655862378678672331162880801784167144269960240278344207764719772133248315010153887529278292736350893946454026158241961519649436399815835102658448515699730815234386862223105590274138940433698181921108826728220334134661746755448923395937962683849417635026271401801666342994059578774157770427346988216105118602845569504307584491310954123284120620992759322142019722162466860574789613320634917411460541532992638161606430575417555359472297115754358090626406089608631827022025374589206844761961023678423615471547610965251262150342849328949364080832223160856426212216779585073009824733038224264394160054809327553346454045911891883016909416659210047143618902322622394051015993782104770670582058029192429987268581878166214356327837194921305066014566219775928543965398719194223374055716760877852981592845006006622298727818922916129918395741133102479896859923503553198807480986678807593200374870911214962227615317758965495017441558207648638409432474390029753953332197648256634187284071794357336499729926306327625524896122572087368839100885572369882090994918572179859567908502417154905824477548179280643257483533325815840248644241206261453395153423774815683104087511451857934095848274423793379450655397262027794501914894012891930365449849825742809750052313864544939010068211876551129056563877021773074068602159581577289359732766653727352203093051598359283255698711044716711323605642194045985128191496133718430458554943112288349520515166154444296910144934268929406675044067808293432881221093893753574573973410614143155661138821375852773272701770434714207267576899734810685202636519323658847612016069143363573441840116128699984157161545562129741461832346516878002264594791006079652520066860800777405210175184088274355572907261916242312621013510917459044545503290225739425971044640390665199536707139451554296442501067232917269457644502824076655650156181782126450877017828464675822356297206129380480481396544774811505521109371534142374403937772976325358353525553438313285600049983280095696477782529812294725712393512883146345373273577874639149130894434955663385324731718606904934449198618615575960455427483872797066675907517535272322084929374723002279179033866526819805568926225468563487491143562206969300478914227422065399250412758127083272187142451809766684948108508338755470269907737699930007706101181021797279437664174492947951597984683131183431296621967538498879793272711187495039658220574106262307558416717428482303838068450316700776670177535312872549606741033306385221698043715420444596254475279201535219632474873949645673508124898247931873377477808599895500461708469365987255671447834766902800938910112506676728597179027947352023560603517504462898223075797311225594555293642394458204521443159737237767077738720160135478720501535796100991986744083406907886306586453695783995284223608584008467625294574376775045637674168407655674873549847200038933888362443064441140569167731229410475819318863523511888108771079996993149604235348304582607510251179500090443074856995036422499755292067050945770900661827275152986008791828714194118734534187729465176230552159489974056701634300559618702767571400135357255427141644209339342840484267798277884949793808632343726605954285356162760481162522139598630210671916607028627156155272062808950899085854560316699970322034213458287201482236420143250670146433632827579487387309489114780087896231186779999296997461072427709818603910852556566970652615557960994105129899724743578414625555541132038900490271903013978277324142128553059727636634296803672919958930689344844710293413603457623433826733108175875134804842665440864670559199050708865189343156824614186654985173161251161109406527337347959349225630640098756759888928658023395108718376067073880952266034720416455198260239677528573084301541834549075199627244122269323181247154884907003519354036404960320096143390244651532940379548066730180182643914619325161236126862629410962945515110862138424682365574849708131671907854327286075235097032709217564890267537593427137830932606826132938603965049443731363662197430715038139541677337933955635004243113077856930196192407292670199302266507747653476233637495604542681313816608848484777938572688489279485156395443447035181682197584851758461449087593402401996131445609447714686864318855905138104622047946278772144968955076373502840601297859059392654953639724185504535731089074329897856382741351190558205729179267985039209593790731957807145856283033718439511586749638481378874460354322465674596806688171618899590329150009130113733641532587028057326642202047724225597363181213702267502079622182723979318837075579709508961495023820743009020953432849209249871075809089513342807510239468858955828205620984215722666046419569843569953271222461731056628918462268086153640396715602978569047694227271092178373158586450370876422510103295303240380608605939162703736761476500074321460176576703682232854853336080561464718029506062126939076178951071346670136620418412450714271199549500413169833300670717791150202382303559549404392534525134521211391946441554223578962485270752775765578744303184494308796639058691454170964888012153352799846349300885730362725734358315720223771770926804681522192494019626168088251204380727407870047468796539435543482181489533064079168326731987276029557331701503846481301241591400106014900980983374543791394050055588136051972423217940824680394697349790890002503239806029212197323313920160762167214186161125463151643185127060213150018678194670519873092628184753482565390822526245044562562344946492146046168778819122948054747114923394645046784697293869784685704810310981896057377315708984204054519743888933083490379288425504366154693894414884665777277304934491808249118346386130766158851404555957562242410380016049583372052733277510802422000131544009031244683940122505341709659452733308304025812512435612877996460466287070934090408533011523938463138417067113643697377822248731417038216530435811494749151957618604784521235486351210098669071974180842226407158313326430276376682438122517514861712510516845795457594390386614072472453885314610406948328773136893299017622795773410971726209807645660885173056819318710840951365910718064546485810477243636284427658548142703267053409404687708917801733931867300014887507324189485517139408457007244053482613712646855897826422533085882978574740542048717790648489399800327360099822633218218812603467778707342476336939927535666134165834741736631179316615246126062081238011900092924283416529120331587277963582134339732298503896726802817510221152959561516883365649818457292660231048340302439057686240856058393153455337549730075595421181788650939871277362356394605924798843495335190289258803649843480842387892624414121692925015387104467838663488516608993973044841488159426093030377108884223977594668417177551810965893094607507803086541403856698433706673368607223239404333208433257037798136252564807123589088649699941285554440369936032834743058879489515079485102263658680553815775496529746558754623013701316166058973574303688522862554051504575122326377526155875463020441938700562177711523727048508867029796301564158315908476405243975208159354804374368379688350828046790020671627775482478615924812621001991064152576695880402317232459306704420882266723275856033216571911481172633175280426552089588550159518461137666561181457174732188529058983122014734098671961497547578587513276026994501000683771189211988456865072385116325565527049960782191628719881749887978771043691562555762318546973133398511766864703869619200927976545599708043079998425192002458852780938053868903045121610854986733521433620175185739063826693205093484731677356628232834507484544009534191837928491777162174986740068657491749723494936279185926006827228572670517050176410956215637217933562521042334608054609965008205589523279221123322581893013300036717472970164059255193894922837373638394594118396705427156086727549724116442044918624712403272144410822806739199648935107555999227100572312750537402106620200956462015929904038167750643845736292337061669608711316399064917621306951087925606712960900223858399751468868465176119122811798848596768307640839283273819136877198393876344894179695134405785593186294685465044619341002128395881681581143003151298730391523172815320553417793284784344634164350109294261729454278003745189796836067924561581582613667637357448761907717993652376887766605066208863363791370206306620139712095235443902105518162711126218722536563374558656578711162713685341971739908917806555586135178555999787056253745266853645937177333750205277838356116788083473873722067862083131760759094579732805695349848933412334991341112357149992167143940746087576506953232735310288807843050051176918019372254854014194140593307413692933712787072334399050073502373171423888012050098893640430063054677945766571578487655872319972213982670950432380860003941159814756307060952963742897996369580985846980769640786608582605339851495266485608960842276022643875305846600293026662014182975736279743865489473221031609316704525453548990230707506054773655655124146545668179295777616078394902598410503788037110304013661371832108710665004822767509789988961607462744678821547162343138815296582071847371260410538744725926345555539858297584997346618215343474795297215227932243926215685505732287210012471024163883950848111999408525566959138754452962176824216138623493229542956443444134628184012333014921354984578994568114088563407000866376869084243459711784035560529154659629992467429876422852864116998681965286310887245836236629105184693364656936886078297916547868123061993520176050647052681800884649358998724164299257667182182589544815913114663457953687680591093826673788621551458983045233162875618947285933863834548723494467998564856358274016260309402559479395874208792774345421534011953103072398109910737174747918198735423827599615590742370079693495656965095908202219290910673399821592311643425654642216482971038383877642970710792398464268621112443040639916512463843626040166948323761056227331927455633031208058203044363881700130689887504476849659961521090784919177748958668060969429759578731082389214412412329096300554110842747538468608121197032552071888557699086784183236195476822008244031845272229086158185012207347682975325638437684579359253260912524116402911711806000856843976292677379029862064106489921032430118868424793585873190785415792855436078511748656767197409775225947704406927028480294951566664844643677086534351654093050172544531001980740819307645237260459216582549724360204876802500662578712347520474449688996981507509404651082793153607990288208516607843478819049634112610601251083697543223799754274700576031837155877383468721919084549571109501458778199526368594679371745112813668828946420233772955968229657618709947928684781862166669293315724560035787380488484998517768848567717181613881745720214658101437157522441797779244784963536373023715667531094961744360639624382908664461435955011978838792683243236105428477277615858449328416050886800743276817757545639947616813045581170850272984713314640287752488111355941313289022172285762916020771926313540905184290037367095824731237642907164482237910250027999879081757599582681045573300838927899325942450342987696149534822563889225333414690507107388623846337227092618454912042033099395540432107546422371808183953570268850848374727277956247993393279025540543584156445378515451336108307902687440591857010194125695845644115121666188766169588698150867208968550073071409105125804200613784842312553563856058033534105557042090214412023338321534154142047731394284714767816058655202906784734590219606160882310044418336084822016189093692883259932871859054582523178058332630315934685525241718953435236696589503809180825615506146620894268292339840125704059845742083315077356057058876719571799788621357540668011565916343200085337178650322487143056555432626388850925660922637442723006684399675609635358362064205895361360085043470377380092095005735116017917456717303161945785153834560401050955577618726193799057239348689475777669384838290266654417623663163262995799345429388676977496752518522867483568339576994152894344886432921689936927636753154812639949014319991982020512689599253385777128634561062492971899223327729130024444029423387469557972026485511965514478739411010175304243450347704059055708240061564762920306436565291941384080591001351518421948646305979965875014559575385374751643687517141116187092463427044713649296540798666832919509638201228793975277498609139768873731034738616225269291359957791927984942406740422271282920371677633434754703479793934082205801133992707528703398808726885386116678270698776082041762808290451889542685837446885016218518239252419908628148903398844449363348098044923692797137447777679069846403546497631209727075123112427646699806355912681711193742255195220777667641540082517872833755293292567315066253605581994031467638078593741845619592943935964785570444410373953042090431470673221379969632691215709304621059224891653945911694055722798469463425959502616660215807515797275720675081312394125541219912879674846421047686453875203771168222497308686762230905996481290058786823030485987537532176297528948796538796297568282104149724449266367692350157577614681490301645094259063789153952390164099195352191114459412464779682577634284777935943836817208647737877548898534337247257162656742745352451521214520816155625468146087620440853300524207029788003591357275072438203792821043595589602001969729936763835091316245017182950014879872329517228050046233531473199151499594726005322498434623237466567970618167338723886134814589587762690332472952757732404610056487274251666992041710067766363069160095653278604952228019863876317371505126667725470289608796880710009188020998254245146895197497243403413863005961541287382766026625296183771412405475629542723428470708067611029291624976442194563516078265539304622184308348357366769768751764897516079565084242761815980461404218253368298791879309021783289239956269032275734739390572748793817019300328488674910977794048068568822919944399760597679239410068741281801426455640158738580739824375336887745994794015066212127121618143864598154710826055348101485372325783979145069629516089718072532814943337852983926537326545540039315221685907266272280378647355984239725547475812143373467538475945280321576077513119745591574121775037652194849448979244295351769651130110649238112225185456979060816226193780043196197930939864609525304333071491267145497221464876749954704461912709416636167729437602731378057497136252088554917328801860241257349786304528887605530331995425046859811708892787337759750648373652339370365301745429576243458176580348673242404348759938158258458141105813438036589097865405658119719541519943655238767968079725176388624091568085950151712101827443591383983668544978091986495803121885902596284183496475974826016952517062795941761025645646824591799666818110384456347277192393304910678961593361051843882642689605226477848870606801661961721333673305921831845631451501963919158416879412817935485703982630764824090381885670032924014205083586332929750521646690275523864572866586144521296048346458018586724234719857558020381070111707204018379664769350685443383983512227880631105565239728201748819681541179035647861341016064519557617822034719377015566227590695411926054301587536160978671650920307553944813134356478364062035547491871843001504258456880413598444853061711889352200342637323043642760349791032824622980208831668176959051814602116230045587143512264228821691333714084029601091081343952906928297184561505523894310766670431810907679995437466840498752888648143666618313901617105549963679373624207921859379832860143119081156287880317257662526993597453840273145506753468880163162516031209084583078311097005779809162887512515865728250706849941216111809598499976034494122142926500229995362067108169562131789150572977950711114521097824494917484215162686922420036092384086241280786702385352696801514819945997715435704119607813446214282271479024463651200910188567796633413620976796712223000155984553896014821618537640206916164722744914804597069086383663080299895458886458182866759441475230286569301091613747245096408795782446929168373057650124219836869094972219865153349742982518431595321746411175945217434673486948548784779326325628707235961116668904475376670498248175158944738906616473694149089491705429334732195691313538993040988057589360592101351588754088359269342966502645889258862661599996893840061094861202614353845595641306840360294567779469095538827274960047726929720332290891718970260289869448886873083379216374541513184120519125022461070251034503338104289111053791766545994723668805398086315118771399667415621148559682775713526457256173834433584519531448878292096237934103346214354948824381877287647388254699587388554893010348456914357742554250223311955168289728797090889231637820289074344455795281353157581825529747616200819726894594240649438332393316602188462852085906477226094458652572319372851131407002854045425977126738573312480216740136751096950851148325415812216792162407118754537238432251709967420088996988294387160922165213820014714565289864605176672429641763164462440150782212294557113081551573576507476076719186408076424287215808980214594649641522521999212280170334508415538917837762841031500304918542972791730463132759499648786710955536809589109394884972302301481325779771995440903449192519789367785520578706972566814976954575588571982071012804196883379934821668483988006004628074588077248524377734729078169632649806308393522838772740099545437660944038748223461473064776172809395698398064740175703341805739492623644367915410159978247890767618046797122860733665607003283356692161075252325207407931799822367734747892306779265764357613393062641328559920560871513572730842230160568161621335798692044996952193630977685779089420819868652408462243228411520188814655762464400815991708477120662931534136941868654182124135939272795794970409816018616019469259803154914433537341668953948069810740605024095962842909357768836817206741498336299635502217000855081432314639140781256846923467091157705138227693038977774718023835292178644366851420023454147916940320273963925665896055664762033688863143775089719211095386036612122608232510613126765588237297392776110026444477397974556478790047635056315876795191032551123531541884435979589701680064776701543575332241747739803487922600167653674763681321246491327551123482597512937432681109931158619986035099664917778656993210828908262057295350636801666814090537403591215877632648336524236600987305658359768029610257647779328695586723783167776119443983634098101388929157619640455532519537734296102279509585856375575492620062881929254685058081230582858422996614549596810542560358616097569642951972914992536952304021288886665602174270734893007029729336488687004851772059971801654854673959042690722335102582173396811908381960087757673975074743073874773973383286260028348319833434122356265424075254824257595802698868947056961274955706933068599789396655394560303348022912158635368032901507581124521872321571273129974014683328615940295851977257458438400497012010203657590737322374557421895134261236797354179003992793141220081369695432097251491456167287248420203618121056963000724281807350136141625833113416024055407887878309891754631426363319211931994818275009340014441920291531412120536760670492002910924733609057363959303302673546001880455165222774534560717763601995681742462358657578789493437978183419089430604956665489434249490994320873439364980076964947612907496477152671511675357749814238859777949871305593604648790189323470648257498931333956521845576982640342195700027636277700035114289285728443603887655919066829705499828947194847247033051902706418794599883532139447772524514814376989700447180441580290427944120181542336742324452979769683864569150498772905355007379025917140894777998584669560565139197485591400293528625745495243216958719670260037221269363043510337112892061732339236992250371216045949868319989198309822806815051986688142121889410590207275388001746985956747086580552955848854130904148818764390566149385097181967124607467183061130551080787323501825746547469164835131222603402979573901254303307946570920589841351873079211985413625423393528364548870196853190107478275014801128531286906500853273783462112116455805642495622931853583233057946900428949002489359113577986295002051760396740556100626211754010866012792815232599718781692237473499544756625144189076204553812454835517972021733220326962590273930422330844233122363907867681987876552862923361924660869172491646339189004267387806242491317078238288180728353024731415319672169807911410584388538085501675800299423781407715795432484402161392725138335645787637654567649509788932376391229303707702746850639322174050765305547136478226013992311972971469502032537191234758792176096316069738053531277913634539789427410078819431515182574758156019918498493859188510061463705448123523770585205991207165121334851196713857981523357071208287306573018135995429634978516532729797594583814448440957382099204304848013576839245437123623990141131260273785557806492848907547143724779508646273162374432606559119289363411064350824150807928851793856709884694088370537298815421159953312987509377159610967391180967359161976762672503049342303104828632546862019760747906294210952512375759259023778395991703887204149734541422618157632578972642408930397700983647740555228175435710057644023276389996416674472760252434804482200993090104180608585612853783824619935610810654988003447185761554923950255679961466278924742751154511376089278541278562505307699963030103924924867725829311241056401264101676495471355571574713378846403472907302416028041537144829935551646964525733582606225955001981097482860220950923384454845487007679964629935555231566006452402694018994185769542967637641767071718500323376493003122291786223878127488873294773708267986963298622431886907908908887691429320279814904763092082376640789889629656233218190676631113385912745676737606483209586072788628616216175112454290496224790166415061975976744493678127610446758581250762187218980766898810466003340865969775766801967330730575547958438140308575301682785860867274327758938643903329243937406169648802606654958820336816151362104192167593184047725363529606326263019033575263133522916257926019411518793631410753391550657273765233951023995202151568988096964912802229895280940218763022573328544396080580666419327074204054813297928037102427397457170078599656364555408505427884292057465987145295311329190038186062632614619022495740467560293992105383825285738493994767385560996553893743322342924368767310120921815509714294695243772674719485666792280369158404680448810584418197103250419135232691857154810349895581552346490316696972442193394930106314211789405245425029619116131458271646622567880944615748463719913431297618670664427673261496747899398738702203073661158855845590342972162368062772694797563928188624853307207336682644865037480972136818534678617857489539044023740939739142033021142700917486925104055456354799432951814102561592805619213864768261662059204276810780544223503468165973589869330639065620619777192975020490484986178454385175377366026424888926198753167794248269360124910930918155909568936131285346118331831585304476175266675302945395800177142707679138248713578656846895759162021970363371881312282195889753742884921874429879169116466048546563394590947264341682495988551412550961695642474993964719749801286681487370931722631463820790694126168024503596895016892209440018668382778058016219020839744777776244906471305271952586582863740174114032910974840607773558171115774872991421126515744247977926489046501001526273726611083233243187218034434661124973025100927581837004278388571737616634510897831383778384238664945510940240206341380473501834228410387310677791398939028068264838016782085975238701088598557103898212333904306060146710202508707932560687145099522563957931629952432800907933502123764230030807889395055989975936833174091941125607093731063473052076410813174966170620716385851723207646486056713099838962638612636852443098171427115766283311076962795900026433447384481166533426349351047097614677645742826448425755654491033561477317786748913990809779282000828535746533928443773198175028196332618247070750152187925874158402476770755459463056468023351538712493107538550535224086778099518283856688364641638494148512627933519658650763152860197988204197695884855275566738008089589390670388557992205361584493617343779400762461432413257144807404040823900559055387779723377330897115248519205359463342426938137640750637261835921371495220905777561983302272536984247393070210429345215153992984539947225640000001368172266413022638929578599797221530422409493461493232909594135380687777523978018739931340216349747114244588755736728705267102666383311804580752392519822537247303918431234999911622199238972111665846710596308346589097246083381417078469256887281157516706822452372051114832392013233514299636016223924216094142618592108035650991665623674950735516346815262903001108659601416918044556788756171749545754316113163198610185790466295529148805469334380543378062426689894229123504819776034709675288545119023216882331008360922947127376689259895474921620542874237098523754262502331176135053252568310202987355766173762176092009138673284296195138181011132593681663483162592969411127951255482216486912593846580214143085232136694987343683115652482144897403437940728713089034475623091523630051817164928443191330395211229234346997334347381188785424753347885899886801123870360159771412487712724760851977390516449373595022297629891363934102532046339149072061214499695884371778111612143246056733282599322618049702777527106964465987969294320714782866057020517768136123290747684255266117731225878580098380940196866845368982868518908730473737187829306870062111959820742698475184359516431921694301391820371147928474701489865401416096857269146210306431204969023746895214138536621435582423014922941185117491583678047322981503531888333587340480631198262390043527041857747744585314292603820310921726512929837310946793658097803753253855198325579585877872104529403417652352567736076013121991471916121626540910457798902532891435368171199141731681407918395125735985924010498726443691235246711656388903652748498225996045528128924242826002409866343110255700350788729640189643665195945719932936484980740712850222580134371146186236181386507836486245282402027382377893671551886207705076921225662508022901937609758687319205093462559179261794409978574899138508161016282311545100006639480718046042280993947934828978420573841205832870581852238886023766234690435907816510992606307869058279227321948952240672759734195353971890610767232644184331419015739677326806676394121015015286645954492983741066472413347718253557739038818877317332449091757339217935382991465193524638249800870393682097599015059411759098549398498045313759383240782221613958796098637640222700134436391709613469306578320668107519429797099536922877252883858391563242763469849690101418458672176305759821847331313176611839849668425191740488730268618343729330507156445245083151507466790855811330173484725832968294649726691097440350926876752246586532692097345461320407810900805845288521336403235765042848086705732031710322956064463208453185473911486838371340021609119390725420214598770266063194611285270998490957062314199418415180862787605356402212657416726482828721501062659246163225020967297105045649313792184262115863078150985448453484413098209493912945014109435656732668130855043091458950212348483179966571855199807271998071955861920437018173752547466273229703268298345737152024407790140212364935434124208541854064605507984215238457534413489458407182664535367244280512728459548504873386797004394340756793488036680798815520793488057503627391489150058605484041190977918227885245381518513639514435645878430822004578411794999174691094080755613826824836955035555490518983799494425264450344357188723816526700277216600814563503037321502216633216174524308746523580383236832367743523072694636991770888413210636273383231580308107877585447282812462358773875016668626798109484621429984548984108877549964727448817107042209536628974433460941053046671823306658551030801402634151612417423318589713715424606448325316376994557659204450036836607673893987734624579963075185196069563756415342560090571690225199370705423208099125141552844900872139538133401463080679349208621729759733540164036450832266677106484002901232611222032965990082134365690209858158569600127279384536286445198659129898605565291116521044053353245817923375770599351441433094752838004172550784805786609225572507006462659610612796859005153348822518590543643205161914764375891155582662847033590421420221299171881997379491328370521483678851913396030680031205291303982760935815774661612497168677885872944351940974480172882509735440900883573772275449366020719780737403777141090718319631535722294757715677194941085076504834103579681922136005206925120819194162100784410985019840738134914153609708191180117769927501950129968060596401175215090022359656110836573643622830171919545695490403379567144730529788833786029322110834011414651856060448079421205955322235850204410912431072668827843605855723213488417668140574759535477913052583782469315784823507785683967892155221683032196727747159676331650454571282597138175551098866551523015198765468454503465713402679657174863796269004698412020649514339116849491822484413527296737033165106624858464194045290168390515965654593250050677651046168186791569609333176731565153237748147088034935032094346473802593525103392547885011770303437331850297464583861285553856272258268457179801198689153827825991840403750325255163508652679407454688687932209585158003368147689715490671104402858795140109725438630752776632083240387609791263335941461842048056277482201084448498193707294827737891363696265689059643969121236347743451335169799208049440358543553924469935229926114908295832291384943923808348454501817663751765714357543928342518326994413514476526073733266220228725422300865020409731370270200941273779018370010441711711229673973167656675290450228667673211192795749978503056434350610797651300119031658709981129114464501310411225765592499528569265274536188724066017583833738602415496918929489474123107051292948097219140254490526422914100307526629921692430636212087041816026752789174689956710907621609051147237735766817603028310570357766957321798791956205070178815754988948280837636517805306221162311398953268165409071713487826413891693256358590525031549017521751921702894036911625597651300055473660856815068113053272926603050189113846879240904083444924805408844324257777746448792585584485203349549653115683862255315211565645111129927695576397103817583312395254734937727574814091781032915173643392392414308691893109199506551719798362694574392097389481842569922836892166180242424254882529960691031857753143463739909149584827444741667412397947124751645442741907306393705673389529304263381077672270151640060189126158393855913754709760083388016140602583442416860160287721008999087050030240093804542619161160681521231206466747762594709802860676431433648038243258159533024675839723971335600399303823286221424292114644664661275315594147599687671887691957026390198900763649020534760073339924059912797102395408852362780669827151827328612823890205761909042204184758572138985008417496904641254210806013008683058549622462177846133019981505370480307541066994178562035458482578776781063873126369800177342673469247016803961333160091661001389300764399120143876578396377015475280810859897272332402827701988950349581630649656612082624969493673524136346309874388311853627671760858929512737991889955892279538460523179901103673420457932271227255623246651248064115533559888652475355688422418754203869949377750989089115719473459806049435342474424235699538293539895439346577312743893803222131167763757870017350015144033213275677365052084556381573442271462929557763856229617696540019736581082187531937977999760322113024761265836411203134996618153415112362235132587287307237276923488690472550798723295994395750019364688949576381093785759943357019637263679228709505628128275864448496743074557760896450533258513916867707017370411292011357496773683339655647239102460901512133957184366093669845118170773450655386832908772983667730279524057793098850115462172695228614160884157845224406558663536519310609880538117008285388586956262314753458914162213942748190150970577045640493215045788213683857391686143794003581525455941635532425289162223736756758215021995509461321434512196429806924756396502928533903111497356259514919199990523434608956938664723706117813649393321555947750506536286832085533142909840451733145650866718088361682984557641251334293684128858078719673281299779075730050290853588285140951485487650541455553183077901034613524651945196456427464306416263650456818567761819558033974939979041549444203298836376342250217655482191291436673187426543584363480893091177248305385066509015898639739080123076144662610618658151917031107738510800961106013338700316747384335161553619518888225199983112769278497389522956123912084976685055140555322913198078328628615417126835180502388446086522404878239217025418199780377731549117551868643893373457240017194772575620170019851315221917272205371598196289519956891483478816678923946164039015379115477220263443654546660989293882669122779605656686999731795439918480955321033678955619625314597450410189765233995595832571465311571793598867591208162859674118038180481664631367197939754759719617246845080482985233204967548339544766980581882869340125807292299633949100372273980487178424447292110041099828132736642881386596633361452312943934731227917464007765665210761915298993050492546904402879342329836727303414114993569772888526254172258756467355373117674000749028618063542507074996455529367994428349312338156398837020727366544703110391776454913578040426154387341772422576588912923250551873798371758960368678649032546276640666752509205840085035880506718240339800692854087433526046760190436221258908865644062881801825541676358059708826225897535994826533595181785351658352254912362265698845456072702621398668506569403227427121154356608245022566033089975206515031799787132241437200041029452763640514658290491758762722521389774819967586839798009167293835670883084971205800508688345209617531541320011171158903210949596762375644264481237242127424320641713015601680196548229290120342277403541556075542827813338291407536283720099437233969809100293058481386562586574976746364050598323683745788660450280800305736139237763803590233011211828685597097278504622734141408246386852509413901755670865979454072347975193944653970561577659474985065291737537460534369422593933237154342553060769235734404326163317590134986633898011372907908202877576464914946806403599337054436462691001536584513052511030750133878076539123667122968388073607262152050368314416076549387043434222776631379994410313943222126592819232174807155652220653096700780935808523731986583904465657703815359394895117679966518569506800781856906052439852481889689598020807778024271555223842429746709842790537561155768144269676160123302197549678807456934850718191212859129069678077276895524960882290865429727248095904123100520276463530079903622797459106862552692933327788412122242087397112128079068197433692139757336775965596933196408857391150712339374405716518458629914017827329540057328852118293008101490113872227392011499899228915740917196371432569885707679251652182594597723632033005650355720697680929959969500936087491220467506726371266788359454501672986512353492225154238024538277825300768437227076653943366181335562594833686009616800181217002296541390425022728399546522578317296880700048194757679719795574056543522932825944224032358922109509520144433150319766939847735286112641211776436266272677335395186182933183620655973231359382606009058629325748649610732817574687420574766672680882098227963312550148569950135534195012028187901508911631589912563125122443509756988867074870188277931461692553530419625146088177694460625555109088285412687870139588588302094339006083396457041007703549406499947501450065444171432520817176572651873346985044062235736951385637539319113751928225171196876614699031173184553353871813451161672346530408380931283950678006734687249484633117899637570302689968521819267089967398537161064825783063675294775793109769900234139868119412860970946969034430792087877419791190137908552966460865393904011038858192203663952077126452451905339259921225956299262412940018489265023404204287525995714736430130880337279669264554913981366069015337734117446171347566690496750598992608936558156222241816168269291139983126033274194280563910340790120414749999826251046356441353294796900925354084400103040988922950841292597566552048917230934838120035843115773314913023498330338691317309718335839897263810287037440293657040503439237639854454345959169018653196516295832528008736517197523461345519312746633971888077283960561051185601271323872966829035406874549053281339141726533415853248204470499711303114094576687177738130397116728408761486865997718296496515969200420502743914294202282405573569897850445177306095617225062990788272077679901846247444614165522977251793140457941247639244838894425306212994577101018066265274775442590491215809034663863466282103856759273202466189416830313263878515526257706964924617223903723720030958867985773448246323084746068573802840955202975892019128253876786025569418672807862673645189848113916529331145870053784782778997982059581423581404260135189759441546602268588308461582089694216264666126449062463113198470847795997117516618057425683741288148107685544105561016703727843669497307386250677168647083255266230230136607749626890610798611837348471888819336703936717627038526129466257689433642789036799478856327060977633185680104597706561158049840415259561696077995383373899316719465900638608226075550319407586855933092549666637509216009648898245780403719819549741633866322181635722265450286204335781199305181231928631833132357925859736717439691591490341912653891475630148426871487956871688515321055509932655655777406085090431542951157786016505649593519446432981371896727879735759201063612771226184727499085121904849511914411514464299357118204326631320271390900780966364249864167160945404333646400491733985687316340276624418102869948814430862429843684912535204950220449237377401592438170162421996170274735311803574629760855096005533260547231417314558323050764072711846351451597357842997538405560554761186127383682320759952370209346565670152915068546372807260204239928837647084048964710629323415928368629589517663558654448992211266588572254673843640949323852450936172403108095281223025670087995148925175432553831130802049134333131819114514912526124245644099048733931886877219856541057438133685586476197517007987353139715945668001763760287093795397841953309128311378195216708445051822977986447356317449256989000364978624931150768399424460060325708847088478095432101802865098576138637436366650529824722832482384346524620588099484162787305717842063637026867060450788088908134465180026554352689149956576783739788164516906690793263847792506155945712951695215333556863640196251717700088353459100098497138500893101750421216658097937178534737297302166644784805393816735481474895135982154043031478459513059692383129207541794243883261976091607636367266269995109616233063827969411617114941262880759599211620428394865843559463450148767599043958824270553015148162986145651012386576546922544724674342481331894290453323463719943439572635645254461441907626428240751016586542466239636720444414949111897217651285137523342082314834274248787792534901846718199283495366034026023670106908986692141582125795034611430404246077919449889893362661107280508307467460029236131981109611906526698810944571677101301131771181538994671695317317537494106696411685632470856985824943835477824394138268503305327668486571095836566465734619550960272167704185790336014644529789853412786501684379852689308667156073285865411480285353487733042667425400545084563119987462814774268562275208254094409535337309460467632136625100449480886837926653663346752366066608286765030191061333354451460710193675849543808703257020197106678953382146024165487691840457643499573639833295987595328175299908628385595441932951624547284725105453959652095543173646711596240316156737523858026053148419577241634167161609639614345844437710865924164170229716698640194652760700352423577717251076828110321809304377786599317573265190769280138696461667929973122979877555080913165118525898611384723772144307557211074104750339216479374549091767058818421618731156929775667785663505903161123016559627937419968342847065786613231854067499262460744354271622535165127280439344082164767256345429094141315909405728719623095889965482849917253268249497439903229891241012405782035931847139693615064859725562589924692580331694669882909316505993699126166535814515584834093397032982916187753286177237744579383446010397324142155894867732333035550037052028849575621334414100632993286313548052869558591749030896550188473669416149459796630080463456006629595717236385436189296467133637963598777960723002297706408305505084594352862114920423816468332350198027980478081800630105101260439309221889455671861054098547127704934786047959601058933990398801147992913661167548689375161016085302389846958789823332797766524138787677375851051272428751579566478762087133185614147617202462877405747407081647549743871315075707774687623053522127268163315526254325080367329833850739755286220246517205647246999938524305311916310917963007362715678030654934834956888790230871427418395276189516598903725331580537283727472437996772226065964424000990746885339403442078022643222905388996148322979454392080020547898383589738642363659631272152268636259835348732051003997829779035588866972933434264993354993211643687682877972221933214192794447515851845723519736522368085720561215550331348490182469428043366364700637768067064130917683818766516946151890336628880421676438125844765523592051102551763015802357903839789978260605166786230882387476005466503967324572439421778597938848315492836034186065097945413050472528428433424143092655355658814448568782521614696264368071716940933178281345735510112601456867169587172973879067228336506966217237903733985196161715352557882040741153086328216073383232258514410351774072185363088359206197806417396435614163036545537250458339389947871926016825760769727060721147764196163960190151235165232105404850111710143819799676577021007300783669757585348088093524832806729217899727633746245142927864182849318307097797197484117827288211646080040382715161092706154889448439846746431318000820367046545546140180108591737485354721012592810318722537076262730168554677393560364779311083935277568189882971603063144781740515882742992676113197706035156921225859991197189880930855303294442141297866100009120504273232934316237609549040451908912920393847068419981436780574118835712374177748977792196049922189288877089213595547314019612792985205704587657865022643902122817373761594702915756307935204522989619103638968177594981140077907014754662120918915414543910819967462560279028065592370242096977145789209250498859438266080865039993706149541584343981641583595571735799638641889217240260185408472543378024049016399529159579952220433503934520384269256354056149363314245882644627338054780557012513787793969207710434419771257428220713346400418551146465525810720193912423618201373235929615767520595404264613645791450271214703716858182241227813724084412938128882612993098536552271887630274809487966357015005478794409447288959445542017150181789250714831026248864269185684799648434537631570757179690252960344901603732564638736345409278297564560195952497633784614233540306360495063595245797727125413899341957464384282169356893848053358648371681368803822241301839690304104242518080584420409438207670311470774301077762857822238575299814511260849337072072679752079765813466798745061308627791394081793550081932659628813848389882450223268284416800745532533610419765063303510972833101924381304482830466055716605010427576711589750632915943362770472891107560459858422208242475632001947904947013238506771389664617828048869308606183533618052016655472005750141138623540705446770263779112241845777797887378053023690271906691858098244057435153290542200587976025674476588743564849816974882696217631064932121117322498336650340446921785469428704385852251382875570487821905993933128712997385459396849486947206143577488747876606098091328981373456656917203829344686171193867024643122320400571078414532101639394130805763521475514859438374168508656219466702941259753439502375434488823528523893168435871818418487018949904468097755821471200465993432728512394631789293132222813649532309536348037816277592328128367166308077573954133781019628185816881902207075831843027224583555430519485140477266119063374786057946871185656962961766012829528840341470046163868922832934447360678763196400024162389108569900446102474772551858908869852163546176543717472144364259267425148513358679775963116657327066108019690377363822207490253454860551084483327790254844592366678295758564029908788863403544646143088363776920913204737354595799958617033049920589759765440816057467791123656207729024424491128285894643273967969378833082601722300217047975092825287187193789219427396014028119372869518701314465729186018636524092087340199648098387110691785521635688209807467502552357264813895768180190350276428064330715217858175869655177380336974640229135045088466742970866600261204227189117005282136932902987408854337436375545457724948904051911873082746747252722147353510958833448256525015280721552662973616002045519658347618871865235301326210321116573831122149262419707735829154390912051537955357525377925170140450932195001299019807962274606229140648655195231233313331141630911648002701081593326576790198553020789944766674862392933376493078712524247716863311255893665958446557180568754970403175960513974714988917508821095861874961537920270621349171138235824916948463562954842943557076918187299924501633954975397328301370668417551849555919532396582072912793374582343870033754819882118845767993141719806335252269212334366981186785186554989771976554045139809670860275081362214431301025512446183897837618304299793125765859126277725330571581146551564278352390253671580829627895932598857462525128799598577167222936714247585290435003087810142046098947748612055849964579023258554541516439092178504958195079201069132539462605567383853902481387950076301979142081282881034551209604959877668159252317828062959215548333748361151523898632306880314025979074189092162140027589622960037354505700623780804121711925401949386400417392007248396975641610200899088155867564640788683809671688966092639167310346261257940731569947273365644352844233363532820935381390673939879354782819714927272063745490200572030335682315706334529599114580527094455322981010606477498175494820898506733133428750651466125232609120003858070355252986087357856247170150538682465888933963113395035242091632166680776020136694029040258544798283214097534178040332094364299432354893191908869730144699427258220454720092339222852133783101128880980767728676602329645194322874599773002187999113646237088026803136474069602795541579463896531079956631645856018281871744749134389080827030662502939654505635802744378212302433836923241094791502534257965866519246291572907532811036607401863474225633084188627683438051583132039530624882862911155447750584547893524471736430053689277239773780640120497606994439833700078779651822823120009839185578941958485919711403217639218627006566774005793886686012569581020456797074872234423142381844573897571643598324424580569459676841344136735041382152771874384820209852015420637943604512492947475608820887119085612434463716145138444009353301212601986495064594744039163897882504659075386047504629618876075129733069790502144054255896185733238286212306119590930813072458783055679757954457554217430120206872660065177166747873419548981685169678570773422407777775967834281971177576901425496116935362324949129205183664624155619239554756308000507593676332611565950288463475060404638999930573158695495976683554486815065331380500501246726494334347337651679204534990491290961023433606816116756374998274246857913015679609504747358036560569067786260708849564863431058729553309976927511041451535453684522339529385257935062774119156265503361319822179843131346873808297303839168254777197672767739525690631309142276744161642354058647292000247098969651908283253732785256196734774834356157771326327920850819746349477428269105092621678725415488678995037652332403133519182225436561378106168436853476217285164320101476659500893573246330744726662258636276959884266809737552023148756427122823636487523572598543029720048261817899843795993284826386701644388313786896183098853333221816882568023893491664450987829107794142096365195122655554650102960807208108822124403662742593232556562031590581598633001909843474248361226065667664670253864819581089220346336936674370502927836746989301296483088296085587216900064261257157270967982163386078568347761362548615698078065056961226344504302480726664759744708727264469281584217531604811678382869549870333234155339140176654067214783720929252458315283338748553427613189805869245536989275093769699378245040596516145837557094563898395493566465251644295951297880931005880076575153865120028496953870057994172285231722805996874073366714145620597210516391505812732031296395422477648230963863263924456275387317135738176447088080942924752420455939405602910372286412438898702829035533247923021814143943620380615535683509361441434788740518752327243146084484129047596830287099418391512912084662987204151843750107141106557806562924594019124674216405604275511226103243550799248992806207159631422738330272569621863492998975203494695069037715084140663615691002265211495572530894346518773819945231273687784750793837407886029230690293551781494197412667698155236644069332196519630820586351475108245671545340161377904905217664975834530416180380353784793508478207804467051129633533448089086920415908874398312588716444004919189105566036626509454684672580602717602598981196750178089531295467572590154384329036243668325073074041077891002674112659172777288434311872706517030997037662865620534040657255559907091435940878799079041050413794889504064717432835416532867562151369069959306121090351510142957381962355366824641188385327841688826182959864074039133561546827059777987135683789864756679888060302959246215971614609173903559268449375604727944092194431871891094980955417514447465433906849288526522773807459366260649473002516056283299918236323192343998549028714611155549499801930218963476497461370308321425521925674147289326256221298062964007694185897712959974291502802680270690557253505852121579946283565769643265535302416519168463206252564383730757611369169702553531048142044168176939078706827779302465527086006902634145032283604614439447722660482432133756641482200161755818889023366735293318172978925418707295072513595303772285140783827604698737470427032406397247044462219310731977561328141355330983148568257314211969910103777966226941973944395600299178602934640915106603457609226702742303537579799777586668612664823761379477286218598976595408566835385895121310478749556863955406127695878544256197290754570167760530762647081263842159740884150971708474997809164484832743545005504189627335338830654846302326107292221411609153771298500076692702455432836341977033885962761071661188315236347259386663620540011625569309469652499484027044335916214048347151630001227520630167775435477359871656449512725541213438372780695766882614399742763889044252301740301549113573231234418651321613978898827822132309794985778519514519128328571681612603107758296097566098295659891409140287269224627863764942043105935456388550008202309834853075145685467099122487229677213110284460516085182777482235953007471236099564064756577561822401470823766979735466553531224272424104360427807369900681936545729259933217902422282840087322967331208062047617163639097673317523763745117734254875503666083741718812406032694011489236201682740674264102091079410239408312042269520032693877059852631083926049305018031661373114338828662234840473963645003565037407118049330497232687630410879978336676239642397827813219729785228695874840014197444113559949806871718617866664943212581551536501431528399417220739558929449618103364928676740231991232433386438972873722552963649177654636365428300294204238497484510821970316332952359255370209675606895955215746032537493731028729740967022794516761790770840795093149340092137481489725607875312431255194728647010734473321993964326626325923224407945918286289597820118491483130767135938847866286702610945710871342472554866762330505418496643462052769820390792052015191465918560368157598507129320099857417584947658093912904680854925749376851667719642521339075449149769409852985231661194271742660094701529064676405197589266465226090522019553384753583861314541349689187360298749240779497039595583922658884270312569402409255469190739553060217105365816047661046896332368914434923806889081364198096426783587720473637179267468580135034347866744284919815874320530690659108607578265419797790860168850966506598006774198257897847214260470281288141336580265556950139979331206220843324864731712347093790619540594872918207329994718727959218414225850317777834102982196424381085834090335805120555336286054034114915782991298122658319853949973126929936775306424257778565811703192579462771087473704742494521377834985426399670093994111454046635068534687142690215877436271708797034763993429722282068782692625646512983738881822426199050169607605410468862564703053707907725144509311096792390270663151554157005201912845568801456334053644240504796581765296539751550898213370372044358352418546964945758297946683616028883624259186089682602188844969950244413379796620972188563382162592411415342142731165695952541037391626392841931043041573910740576269013758322016346787178930630270924553423050965367731227633953643254969543349799246216076873601445455206603782095662167887514521095566240091016003612872541091092972555532604506925897114394759878317031176782255998639797313538251013605664029771410757196060454856606172558431566438950242446821451190578345902544471422357650045622358020869163401343259835120653771439539929753899126020818354930849267559297198497408624061763367206726986542392488150712926481145996129421382256220353003043972282761803470566225498514989504925270165064841574559960518550954499682430931348716896554299208617307828816815767739849764165952131060380489896191070061460694991963324451829308342598951458602960310697566961858149884640633945738937557986149602051347716689376377738937332708570795486506338637843436703907137696457128523051759520170298677862468254786601274487422499172581445485842420285113689142798147685146425438872793552005928448794441982384751961070128709584534578704007614382048713875649940013259138660827147251706774801534652394671514645111085924672864934965000122015490503915513493603366982857880483031014554722335443603599075095156264068612151817248184496849446468495425418348990436620166200804438481906977188260324639438126442754183614854325048933101422233831487788941498169593567871010630526875072360618992860656522666132213936913316140438138516042634247164626423269835334018141565587357477900943689400316439661165557412942269772748024588934699140658483543754781039130408595524729341652988352754571407071694481276588084907306581469834307624335546552758092622240721884779748337528536808625118006190927504749687177054629000180896227342715777045891927161868263748713115321620598446989458286689495913141504379891550307893979209793640817480523862318483330052204856035949738421751396896208942039314106809694214847314330541075003998370983534144943340939146919823064804507971191114038379564690289103753280307580319115752287413702396812932902647947173984233894562568895613883424920644834868146924704205145795705646497518661532502647134454756745294233722493162928870348949287340849832775011303824621980638506438843406245875723225822764201947286335264236076678713910867798499219099692298921465968858781936447418838238529568305132074808818015083616938775065369187909265853732704173909592599260817938421557919687027031176279589696350286920515666966876107429515557621170900549743124621978168222066592908095472871938489829700314538561208973093066319194769825622901902508615513787156322861521519362015912392664975363954312362493966819110205292678837181627198568108026622814228549984739813387192835057820879914267603693268501156444845019325941092013700815467963817395210274394716649578120165111026777900162600731402860952303575574430104335858905761556641493384827806864051365946784742480894731988219631533685035310317362874769012618631178309270730375199326660555212938634024226864289546485932304209535385734618322292853435511727113295904986757158231789134680996337173222723156947054078969194122125045609300118713966863487138155531630076277882996083537852996282369118311147898608274421181649414952536496123102651119538640734659012722599195502103773108495678549824535812433193556415530300128163597924287195977801081983895503010794482025816610152637374342801301235106153813474826353426404691287710346155093539792278765919798417596977701866186023116634158068369732143307958171528915889404170562176063497694749021658590617406068431031119842601472248634990543173845772110217374054358856991729399633600665831687422636920253441184802462753971074632232985442981621197306551689664609640574618171735128457955015889578734837339909068328182401306866260428322216118464358907012474651464837745850106639302131523638410633107427434288749815626386048640504723604273607834179705491564308837658585040356419891811492451192634265480969546269513141517806236542937610256433371864139196213083311638433788998444906726973058776921692831304123117585253914292414726828887669310306778221233975564132058283016027267160015299701111894771992253651819768510494784771643328577174486919362703951095184819162204445893156145564655315561180720470712051151656616216583534456624493136090001634139350686819756240615209300602699331346681739197453085865723832130814671173891156557131368927486433009183553897261159028270225197688504600778376245986534956104390686002308392158416104783955891169011660639859409203793322446047166794845228390088714892567219362394484606526273905732846211418784747835801122756694197102518001592869266570243255470565422706147717812764396739438142566166756303859124757453208970945121547274222008063656015337534959708253035843174671965321653740954492022277814026262307176966233989022225371155253696233303649305261658069177131544141805120098657390360423048701360484755750927963861038902104173689704847702577764082098831832657769841921022913538791337745642754968278720581355821071635715789560357456544391167117744402418446254196790301551315683947893238104161043988174846151914473391114152789432575860337394663761218616398718941264142382020659215220980914290427625523457018626446195253321408679403075116151963284681005374065471564417720764572475790974229001798291295644086307053753650715609689930292790523116783779817704398719695729662201267575950898032072538095344014143770488187783589710815626507333012936289332312393685837760228784850423258076919169524772740971736951490287644229584453334876268963733548824519910922425655925277739367631261605291856790105968549678406412075084147021320670640280998715671176310556727380035567166191857801339364315664918931385561436426453415196412783732058038590463477113990914886036465262670395616977206033458008164637286414957133495469852577190039741563739374225172528001618322127689442196935572450728030449631357670507116904630531568302510669254150067367752118663712980741088790847432803195237926365470646486983658064754971275318088246635716336930575100216890183766191256177229199009089951352026630744413425324869900304300205841928460379089662200658299350693679068381512019841311765471761753978127036439206922128304149967422240544520770428778674519820464074671466141232822878896531180210488791113143674252019308240523981951073320963136332685156530533921386940620105376240609637021458846400098590235412665294826481274646508312172117484609218534016918901712135104084388142739677352252196335211701268858374519688328785524818943909731379833698491156103057195596662295495560275169767109374490480582179604124953910719841162198273565961257736436208288445531903621826942693944116367796195193320887084528778810775225916470898975523738453966334465794678518116354373253455927420975801041402595121632506804040734147809269547254025384408765029979396877182640214911284213707777361706302917816968714511801840728983530834647984908645449888280956830927891552834820553859265330709456924786956595690557727973156251005771624383684111701656785008029303647735836928841011926589843225821441152398976135434235812244357362796939364931727582662574035788387044442199876178320305986269131003777630899742802559399578739398838004168754150820627817079223518887893320491072461300045685236608165484173772147615356379715547078288565283573332986885163694296972606932718948892617472489708108817157386261052318940621950449055341176319762270757026153565657689616960068453689211699607489579862845072966669811639990540999216283872473444501336787748921023267739821298001087974402913581487221912485827012996735582223074404684545634314798474133201684232482217959263932037365832066759034334422109241479711054740468332329523091089615870075531120462866166870753432157133695602210045668626092213768662617552041245190843824511109785756479951126652219497791257403080618809828166384967789319180324404947888513123961758124255192380783150481088960949136833078219779403806618415284399573237257311565793235792247102929595406968132549309316134187694832679474881948992880895651805984631738287319493337337089878930073937191026823924570083919217150280647197259219529960512002067734994351978476128858240639528735780942563516807275786812587187427182829751303260498121149166492824224338956136638181791244686556865317597172745418603166021339914370191586819247914391997108350299922783233739624998368710426237781917835291468009294376317209828016935362417455524956810744669106256602873475411466695546956528157533800073646228348809301983215986283211169618216257795040838471599721588071870320422864500869242111119483171101813210076905160785287225511253117226434813733764235466027306484832301974218139899196442600831304826162239239879146682509965807440298702572713219296197507894007777439082157000418645741154827339210839922346744409710316979358820389437949534957953451571574608693569998085265316927263834400363094960832805310569978999346437539446173093959993424233640118459326864555533588678515662100394028670410743093684855425673329238157080140506014036175908562056316334567193107872206546424835020482350270111297853982887456092905715423892904643656269045281515523397680873318030842692377445797874928053169863856670109978419045947835676558879999571939379092114228744157909114139458696390090478909961895699139515546774280652103332231060196170544016776633656066341000691320634457340319387536086394021283974963784574377694668116537778275480201273830777863963750330824773056265554315380522343829864514423187417173012638215456508241513373417407811107739700120096361926967370738239004457894524216274297444403918320016166209211175161602944256101756764762665278738555480547190846927031220234292036337279826177352050272180965510292129743458361224857421489868384530314907566909980131049893472412269320345222523264971282206842733914063128010630305048792849018831271823515433229422449445743859962697415473562645180658349626528393032792897047902425785657179014128317024200276920590003932267920429128855621969509827532094963630869114600989789957202090407083802347185498583706260345554813486686895671765173030881368668446886858655043803368347985496588925612837283736730576830420459827523404020209871193091391820777477975501593811852740047280183002059257864690937305191710461636010025319501114719180419291541453920797568745944781922750602615183718545737588979438735968572311467525637263731430551179407079460077713942623334090356840486475858714632105917362084857108574371299833689702049207748973263819736400911466961560556950819190204699682887521802527094111149637447224236857834943966148143192737104939995363750376523028848132061697338860612152962674323976354766500282248255646673801619113025085157938224360129237229373103563196191589634318197658638929593273408861770883488908446097828271862201704200711163026064841998394845885148220897294471228556693125231179757743643480801599434473959997602881722900202367674761635837556098249068518320695460750150718440142177800794442122795911311999892046807895271954515476703055735246929393946811893676424001985980302313379518631865763644903458620554892328852635764324398820980393994338589426959953462163929429827566595716426843045786660624700274911353034895565771364014690716565342942701422355057326530032925563823349512060262762094666218999641345969619368697765717355517843610700048238963896137743170365486711580560632355808786759880619318427840400920562461940039064389796750505609567177269102047548636551051166578995732120458741853275093014013768523284186483423179340261711064161140483537507242053505006189743873091982244021311002731258558494025534346195405650480857067802167365869858572113900787854071058402404147449913792026988142173286941692220012442618811677789408874836797402120798382814452152945175577448731625903145699164987306912172547216667740739251964034023279155216380187032657423028667392686527257585975542485407364199349695228153734502547129986508268340727724237672435433748431791178729850018090078615888044709356290064404895463524077278058345444645750051773204735440614404524392145462936570000901402293915368810640783122788056067217271289490111924627806350132003972495405773368997605638226283077253507410111227350912426969826909741894105433492271272637383884529610716358364107352180589645042633358724805938753031188534274015605706924983418996134433508959359545983811913653794502620857859422694403206341600703723584098460744582360713633718519871544902897698603226697624747671613144195185669677805266592516596963562458675668095196962395142552205995868609181654669450541966956495607820989120128781220206678774942332096408219790070019712958278246300240519612054758410402749250211833953165652539261708271144449073565410234672968288159315952063923881998087342310660394704675266909886403067649153129761793742145687350612822762578456873640981835825934598335004283986783792856886363722655849312407400329555443675149178682757466189002902072716284604692255753054787879366321625333390335403863136537712443936123379494213148894595937539409744219335811081418521873587211401772808240878820209987919418191101064635519697500081513818317622708303210567754350398437596235080587189728595693641351147467100567938792828018186268878529105373837725902062505768850513094476929501041585548718532449694234383821115718586326018102698807933350084666043746299949095582621737451036528596935891159746268001112549936752624733751772189721712238379701043263613296525123180101758430413670265634619959553339517709444147655300863954984105874688544148424763731373312053134979117552382809141364508220137934785425545429194458162516690324744177879447940582241975121580654443917287916483047804611467441715820343883619325646873524032813021007134687747690957815889672669897450207770117889537510555747403126162388200637120599398120854676948293774776516210706538974821161459335356297020020829233745650694541313201005785298561944184925953223932995277397838674718614245846154113573541708983687518098021287409449546668128655641699040650270443162606207984778498897853596788040870157551141003548910672029318381588788618796335311831874809698231129598899327999341785107193388533372036118850231080235968455793749125964253979417824680494743600161358722289365791797485080050127992897786289995881723812669710080029984540935944691449710756749508334203786303777638638674875060708661100130656345782379094948230949818974738410916591819640108242272001728288357580985925448862750084478126498273720827408470570593234318033907565071144400199755425515739912064073121350528658502734492074514690339047148373020591868401568167897062881554060275195429062281582028618921226964179317556275207963312019187677277489892699735659056356442251331155349595110133708569524672082689996576869195803670489888056529904747346490717626292739832115669666256941434467822795565824177361953073166309192764791252930045572397529493807726600739850388971113074461558877717879321191977620618852790549164139577698722369500293070913675264119431552020989737726567931142782483241565221402745595102234433438616849305025499783080587159471768897894222923424612140583323671598732775612489343808560592192551041897096476058406035607560991587116223343390389215018558292527670389171177985719745362730873082239340109011283083641544667362294911428382663774889144687797701463186296699319944930044371827351034062723385914537550885438625980666434596248849886791588712452782795730714155129242680819077809072236052771316954343005747270274718547180040731709927071571254200722714223517257979228377386998357262177211866488018838539009503291307989128082260573417049949984312392344202025386517957416767464225693838583266177767687730315904102377648835219326357430923047006111477013297881715906823113235072643069261209788887731044277077424863584532756228102795532810164943719030639278049454828531455141064103254158634879237675826422125011698208658449501372717415201096694378976096488971443120009991289019944735036349095263676283156572151313400653152659770113044389017163560165688377449936482138659696946718678782231930462921023995967873474966797874859415847835742118408859915008182645423980515727118708260087192692273190188918216635995887066168595646752268061404995747366494313780843199079120037315942037756267365877408116137295099120595394687306073637231119131397242318195147095815333481862232804387020451198097907793890128010665232444949074337456107726549843791796102663510680594618925111851524603074629356694869572360206255062307293525104927495645295800618943213479614606705087072158446695855582712300757765512152835294540514020998959643632834719115206392526425592310986300737107482971299792456010350311428896705716441382067562467638453994383317499201877253071056367263673245186529273439071885818570836540117094064984662966791774911557299505204171807172820864077907589305489437005392294185351603314958430299481615850705990853240085453801668897222920485175381802334091438360088432879412781567768394342693353927623803052025909196067306772181129084483986153682450368374017838549350485324040112308363519492026978000568885063296673694796834585908119705395207890483533579351817503991482427266347299655370576388934577033967966742335232297656090783957223411198327347734130269777357372770210684438861758418441966755599745594427307798067620279493884019330152192608753598335089126011903480584297290758240119768313597693283538135069260496786515334764043758062190317444189812916000555609845483373387722745881340132182444025385943595754258612645996977651071527726207106744575176377339906314173198978944090505096028097900527680621150555906964735332731571482391452866460721188912092889672470689179372923190539944757411657897456247570910720540319797891381421410956471042848681585870203800820174510206211983516980822346832674566749905953573199528249955995903918728429003931675820834005271706589631047811031096370953471210411824792990107737871259596910004052234626908953117163698633988453607514145093688259440485386951183656481066457689426204529462229498849433097611480040047870197630639880684964444611439444878006501121140500340088876327774218737064593573464096966806975639368570420453447924351558901667036814518342112957714578971158042926035982378009390861488396631790991323768414071739613205634155904975418089396831338498703652015647019966296883162206445378966670750174066598951482929139166137445487091960473588931514715419025892667834162977717506024253778109637379923265900852686904742287839118615882618436498235526327596295591516556097841076577959721639925618415400259273211752830460098047152360700934708990647323199350042492781167217053474229744108634250833515102503154497702541820089327796661882332735442982112702570472896854548361809903962314442889566211729406642860795544701381200679775762809580979121653156307006504701534265928430426263890751367659912810851677649410151658430048244956934420707762019144980217814502815545209283552869999029297036686444013766083329453738724377960514892005163570315976074111531701522522333663655708128210800728008156105619771183024493657975799709430703831508685034575313360955249505424817457285114203987752798061212429984738906511507325354721186142693159372888513997835409117118252922553813240104502377226301805252295142217040466762582322647808719773685255463520948177370569923282593994337676190425411208311762887380541708910168735331031575297829284938634451219525018474262763553312453282175215186473315220776127020104541763576376825772904153665179087099067024977097368885221264443849958331030322975627953226773465799882843747911663543249819186120645129697250539927878375917153065033059724898115408938645678866942082085389194524874620049961126475661110908118205353194538106000023865202588576759645784311736199143790872487541117222042442815478608692775098599369742662268674042246100841911831878758783493548271628999515295182227280488828685569503443542746772923358287886285271943593996274625963760138243764677089964145916934721566111260089770690460518397418019305148642140281684886178189753771983898189952710685861758174358473610536014217557654518929200763119363347723134414901726679569117403536705073819467013676035044806299122467823546023494863249733520079967290309969211803937745400279810514370946867734283138612211936759398897333412655766694992102059912493634882474176068135900541723464467107911617532201424365533923081074987646070748051325336259649948240185983733740799216996985021238824768412223142064626938316130616292301552068299600751661631432054577171139850931536464811199406458016867922233458955061066239511754874343251076040230096596603448359837071577638385428509172103953671196934508049015558787524457717212488755488950103580190523698258761864957286027349893265934714817716243794524237068926098794550043978947409725528177934581218287944867112551013275434401710364905102103898116192687941956901714935248445119682103080007844773591525380566126210537492266788302328288957618437914610046453715886981385345676524538949271227500805342813388094408954114211405984194058775903807725744813103113356665270227740771177882088211658633994244449139912606584419726416250625873567394005307139487090901474508401399541109534821218491826890031104672034057327187991843368085652981346169247129486557774166482347520254150635190359961786733077976616195660140814616487570892326883787478571121059954235846845092842301597368468830214198626398645446772751672697000321931569992273229663587405944192635339988656176826911645858056658592062263845640332441826909498194906151971776997599041795814193759768580945530128250909262642050243691039448826006051045396998702858354919146466083507493945843167388314691212609202229064660921566327542977553109905893761565755520852770282931764741005805967446522263309852940063314757900233833507765659461734525291667987960912775650349115299419377313707773018350191668366147903146915665952109807319676392191204754857247134840183976052831133939252577980704975578089856340421094589127893944888228860886301122712753481611192191662116359811919458590468799227193809151401824947048864342008328821942108422400305544848760570601798210606811007997870768647212543026885144045413616659293241827856488727083931069326072880343455583712821277351660614003198368837547345313263292036354017325460397145942442185313517994238187922927500021146247916456503019296296182463804498953223433005480294455557817405930555205322123899320452023505071974935370050943388328765311352537493213236882691313562531397890966435285114736931619993553881213765656164354426734878133555121821268286691747376685659013223086326728734939123090322658113499721270237679443578968113515388118589247442598030840233544908870655365636853950719557465188477092916743451853705773798460548447350644559103090027914383595238350066138768091091543854438138934437861236665949523359189923257529078841806419950299540758504678650229616111029631028357272169134435205871552515586635646752209374493246706747988262827193614556695471873340753699689135716461578891890666394528702165585785218577516018721940553735468442868213703406192445214438444750617351338316068300500682190312803018393893354540487546821412106030115869643697537753230450744447353196250849551427982159297095511714991586582478461298975348543269234804577279727649393759217460655593910515498232313422939785757211630298991662492025628374497417134395842708992696307384468007574560249978074559912647096959199219322600204266074836551199075377175608246825587446545834801498935133669650212844866984318449887551951550788965176252990045664742395113554325946987852503451061159189675027805947989052287223313711301618229583037154994518624299379824767861757221527303316184574613595239904238845833368610213342815918194625865511747647921536788005616246406312348432368523789577609260140608426257819629653255439696826634191252483770794934104428198100498550789467350191239009144760278377159886448243343393099917247621160108125724247671423850606672534506620394394041445760521176483979940187327370978177065830957235655385502586214401968237473882305514777749244261931399276396656531257120956000364990295544617743068152901158227683938692199399576614733066349983699829637906308478163631530975350035434290691849657675780001048375504636445915334447654704833386629666793716511547967732952737652661210475987239415490057601398190473799951783239631478826178669002463362057712649862290713941053587538965710071961213875234550824102276233743264126105217634214589591397300914014139388697487393659207826934394281652279380765457878777471420259144404565955853699576587166889307941215750090022339324420390819193805377288831129827747857966064745995230349214683148525612174157301891331831203618806259317507826468520287129853616921548101295753868111841281616196923632982560020867417053448491515993272350430733277103897923269594518582753779690522476240052406096973845366085576063851923697977631872810543349011950028647648546084080700647028596526370253103723710610887995809181520067811858019167439398569827466844601481641702161889223328056244733709362708667449473577970379365998288956426927531725034945141925554861142727979668315356601716951103096180657710774624041589755971342847189070975345080679855853818932857366569229007001519572602011321993789327683109008429683070366916636501496712140668550123429173897566267642285141277677609034575362189457995981372772652995436990251635562587852622544698830950803685729758211012089638373614844686476299737243670999281616361834432475994157073750967381927327474412470518955844403873152909785868715430744808097097127338008039579794892359540878286430833047363161827292754408886675349149937891848831732262439588147086557273690948363288628914054258992065774098052205216934540723930504038787353831885851671001097683163301777950785061490029935275589998675381802751874814816839758781395564359428744658604417207830155448214321791251214293952550370758139161742158261198656247781206595201481823534054935425935263512990702876720452693199596428440032928494153882758541828568413794469990631315484887696328888623866585072687298895310498971149943323124198423252635797185854623530969332596648145590371861653359981462006072852489459656777747030654364472358963183718310736047167821930799182690058256047591863050623041869397500753509177422160787489164009093357745050070217873674892411879868945520838070702103825572050651826994360044607015742646017056093557980323892437262640086577336364392846572568729092242470105920121867594947706766429698028939006215020099600955848138969952973085094461293599659262385475745132914416904618266568314650213431490646632074809988131933962728204016034816311815961050156111029059262529249427993647289327097096441856198658570095092931300071658483362010506465492646682006826977212398995358750178094039318233840482228882507496228471305982474465599790250835078161993281746622303325289285889044959117872272569321985133751272064646942824632709211277620878432679679730389784262072738147320580641610962566074870587778531651950881675157695850913202498682067918279160131507499331447168374388869246919167155400705183686893654715837119931450278017780702393298401607229203510460270339344797721770657106342831235233502182937441352718821903276903717702205147675983040679863098885906425155606256579454262354489650547656548274790657845594047226542178065792537219921255598836405628335744960012291006182545932526162960564935991440089735629606278930966717365576345699966743189807834370129224011523632912740528183053203423990114924956758885595857956166792619638514502250123828655029856154907489963225927312847089362538594919243516112570171818322467400421677864795222078685343041534401345071864738169642561891410397130674425705901029425909871204117139031675784966049331730011640570081402776986573035208327999261267469344070611315187527764124597749380695078522756377191418077297023023406041425022546652806831446521881600900247509278300077365962390636543049522629775988982534211560861422398653451703448554239871641597658797939887618797258048901400195598097195553583293459396264203689237173462423981573902247306922764702607952003687325040870321877010766298864337723597229599815386398078463376579458915733740096218445800363601341860462593067456335426480977874902449905179595346548135610367316036155083340731567721310451218857151197587300994667526755557246860088007057742675228975769271986298307424721259430635349906682640184388990937120259955415068339519721028693586697211314197331644034732766467246889253310315131159285817549063569441466936454224601179859696835242437625870261666417953400997867383531014298249404285224924987392100193222449733602071998409591690471875253779065588066031841226288724195589720840821608429910451225879618283080408567579662726461089662361878638809328928770847153226024178858693319928627237544793152378607424486638200365514255248446137683916415706691563639950364266436866659252574091112167235364935378225511938452925741294662349960043624082229393331596123423142644068264686233372210028714355916237578372689029702717754424070355673081490843951090402953668314127521362813489334474809027757323330562392179190066460558478460740220119086316890493938096080665239676472603799536164333028084468837784987959946674271594789934945940777757664889547926700925059694940968612361189500202595917344089162143009681377057554164840899572629978088627531997659479236749863270870902534784207644659903767608413914915450114759841420711639281433943986534074127651515298123773759419186091881333849131751795812297883963284405739211022580686086353705839343038966620416027778161799730313199970403773612731698219973701649859625498023406850137353312723199186117960014216348359736509570378111082913475510123477478858616894547133920069775477633167534525604588003073095121293710771663646928995776947682799819801584118068962233078002032085113425309811804045443253514226679036693292942983703626625883851291933632094398293204266595705853138747735223344048128149734733007070822800026133000297755562806022054023583533384604120497406292819987683353909614625982358251400178241587263979558698489766035217176194331255869698769244927790508810129260470059067786559443671315786185919811699071282613967755819142866379575157612565560623493297186309097998997170697764113281270545416802273300819784001937568804540540861237653635870127299772915490663033784823581164457553753293917242529097451722319289220854105759788930436535801432989631076698025944721476159623097772760521099856631353960860611646693047159687110709519170004786707895760054873187699255202479498396779863600549861498717829625800398939109855023689609696661600949245574846477478008649374567858690685385820243110195369291750437333922119022425939363261648900891863686485560516021549529954871338822372024630347689019227078328848819004222682689151741094752532378169476062831942498124142244713529276995498828193355379583390629011446397658145391242002305921195863346137177361912780456247957519261082963884384110361907814277845315134412181326905300354845999429062331085879866096888690285779658996054377316647706957437184163026883789198808114295240048338684820634063482330198913030828182761834913502218900099902169396365576266742232416224833148422592140582606657412512259715235375296400878879469928732178827708878396120575547044350006672434184617119690349347604619182171511692130262188053436413600295909909884653976773730576871990090466631634980591761822958593811027247195757712392469184805474491410499566183453890520879730639320502397943475375330242125781219147141603326742965737682962693189299396928140833314133925149847144086091461204725083418797495215990227712137206604365646089612304750593144832610714270153197876652229247915777543005292443948150368992910857805095887204402707911457970019000230491736953694871391023323144212211551124522658021041074792276112196895804082236401866968444863255812059869657145286654655825003294198534982347676007858911307990528014650310667299669092467282171226353939580583596759851820676952385419399172808290408491686402902844787745967492236597483967979834312785136350225769960605514376390648642700586150776434158373719171684178888500987769455075213482380422040807323007027611176744364995587225316525316548082453103747245686196293907402641032922995633930745072004901716794328594801864182996332629786756499504799672817079859423284318098159777448915380195197220408584228159227513990570573281849104666594938401542588624878316830132114882923750113908806714108976026346717470595198981184001781177446295114775488184347901497924398046313824326356275909453448468261027441638354235069084578547437229448934002455575360139020679669708208144274617068290996705293621110326667413664368153349608459723597501079524844968188558429170409223808525608439304728864440314202202782926410066120926757948632955426341930028280802012011541731639755590791019650365008975831940202864490523570650676765789315386142516355879590284327892118825885840167810472585341217935174226076977021760942040242240549711788495587721134438307400145002057733272577948527234170184518230312078008713632874582417108973530905802812191062188808986751432081925231781559987221955581728512515311201097852511901628705925697372228515647966775480967177419776958342266205142384348586014427583373524873972768584956124808763687171213186706870440126526543609321063974264298096338647775002978376945295131326306443337300491598441898444971348467004143417918904258601483975278666287116057981429739301313518087012390096303660292569920861616662414716626662772373393645167111256102979747324633621110277128231798121416714377827358375287272512487033201175103024321052604344191977851030204588309842829540159206273229158806070753829266555413984416850933595465275100430005519196824889363113903998638867331769619439242572803662545242515559979084665241734653246900525477736088460027737623461091575902474878540590809945857878499175354094500433492739173585178586132946239599937366412129706183439511959515951248471224122935839653684745524602155656115150420543490625513407860039544316020002729018955055713777556428783783066421841655911177932884744960148094986850618094700202476758153058826079480408863521036083573444311108428545566950133017847760698316070868966789412430780087164649730222532855824106222313438038866798947099602167970330149921088661248345955710864116903883397947229576800110823214929320932609753154130197460769024918405530440403729936474744788863575952217083109488783524974673677469863827047040291546930095199227954063332056978550068476991532409503193073026513672839028377959159046340412797824429951715626912486936448228074851618678986866115942971633007065759073875385892859139363958172046246391378705671189029993073168535326598042011106050389035832181972804942675173072760578928907181149817050884663215216319478125431974674466245216822350711773041335810678981689233405398445061751174243683337322883060400478800611467787822564783519120863765697056337306342909765457426137239453485136759118815463461258709782363304663313374288115458758734849767209409667553525522017037929642643848025037901229510121494395834823968620299162220273282619018876366150201457082509745948268096872432259189076855508514060749940334961910865466748136667271480254936901455629737657281329323927725109624003881494410308583872702730780864748625392649346157972314698841868909064168793692421474561570719491193834734988791155405037624339302920387867139973161054424133332450264841260363374297012569196752955114252755520758055647425739303881564734471780135694483577343145095255019113783612607146083650864160689440558877626380432826561717194714784812529723313065272735248511465816115142222979817877452471975001043733832627389565893492252533520411529974159481660934699079973149752977454875265055940137151061967375490426081098855649683720681174947896523101363170894386444443389771173747657712333654318054037486738253645910042279180579097973283747286002473055277969159904613843499243915850236399341643112854391769122185291966247722075485369184402628494300358769934698094720458950531783499435611799010744368824229816227331482964577485993834348469677593158398389709546536895281201620267695327832042448387988568657367205497162025219638482755535347087195563016412668737395019307211584425883422771628941401524383659944179631523176485211968360419295716008502446415491937328966714771925441887899435993148702575309453786841499786506070854990782754894596733704181459692925514176832529345876198016674974311857696218688471001503869626896248040986157619014150559232914883135946909756674126278721112005286534999203965369475426570647082147267274276192168984237368167023678148531944025258804422333930761755816466661601430635218156480289019288251610185315725264358200700593660133769372670663681345938835994122904968743138044213330534927905854205529576415118245060047251245398340312916851359671206812031908083120146861572884968712564519134299025618712293522084923807058931288981344725630048102549581836549301901428737175251499609959085012514061348314302596200018205101191543093597471257919688166230080890905139478207173663864910776685790306824681348245566113204231888089833296049034067594681879973664864980591800682930410028243175776890311910922206117166795147603205748671256272083385110973189866139025159265729199511245467480980917514421238390663997031361569301088644216327642920111642922546302648545058233004182796584105812720982532341438497608637009399411948783127833866107843262440421190166649452309125928679590835673502756501233129122237317566329728974702469166636089847976346278796419157052543963762265714109710961104481383511116216804009378590104213543132713022163098895515494749738224967510597553607919673248757482725774950025839465950254950637500256138706163510847346217284162145362988653858825278251821806382316576270853351227048849578226715997852679780945288941155137061393352362679344533189864423009582797085818935376441820206208172913857152039219045347274382685043322326892715908362378160780502140554050206535100818097917319920126149762672188138213878000349443203273298803088263378058341335878766716113007131593900652843835056499837889880212132479345366750290821422618186077806615924747850456812073649505504825887263341132282997558247479012376092090442991744787506396631155910244732041627892684136943380898967802624927176274534696465417582091509350176163244912786371389048042715451817399572431047220690416718812597781831265133106276291712095778664888144372599392981715665662497773593306060987558240118046547786963091090960108115567198350782341286978402642952946812204676431173161720070353376212795513400946209597048334387408698030577965783429515049476539838496002463306563601840975697845497155336947811074490775029920277345993648730458079112972918805913378170189915791490895678650857800662829236286754623955098651755562179541071861025874853972356298176339237450263783097991609866618292711876459843341084994833316044702121516718541667599074110409833373041812424745105995187443861361753589003350888816663179963545636215345577582001018507546050437465419202415745787750440338977856283661184452174771455327756144779743714566355563855886938908375768544948270877194182601123733864625260882406861380648261938614971473074209312008882996017082242715379600756105503008437604479150630207435680565913825431755863479549704139531776808057830606162462880167603109120234206412875601374832963730530969238476615609965488146765460905753948525956545974800212209422411589066967527447711998256135860660060635622004399866533402780845645623306315428492128941791600655380421147784700807764919455957440702704330166711120452337762963861034159169741607896246419706972369674164718126460517251581613660723376340345287459489404780334404793467875699490937109289761071382818276214487601971454469502499674642162989422256306820941142447727709627369507817268881304875507715651437313300317979503978729403760839637871940551203615934013906250883438425086502579572463442958563196224732612287882112613678070346026723423321019516160312829342899464924190493439855188359008831618804534895122978470588613311438865026279638188261573341828426071716580785738168760019037818848710120114354515579697793568844144256372471654800132685858201309284141382255235055478039603589242740387970806877304247542797891453772189429393647587881127668487690957247445965502071230306750414386744990766937299661398394742747715596847550877852249759538348585827276364887938774098988662638351918120386191354468461275720680354786392136686038595548081014280488425882193740722650970380574288725903256774748581001174720635118889275290068703058651948053541624304143839888264993061429576135704813498154119830160293035895505410520679473984207811507145192167250400128388516277602674147195092395476480395613686056554968418854295069957022305800418602853962142062040054092689688011075423075265980070257189781823998740238687857914309915352639181148169973565279996462430458343672167630290082638851395694470089685031127225234529647063744393359470738095454987201885887090291578753748176868120630217362417517067657115550215219419740071691158857895308472436930685114997350248796976890391214559972931177079639615663363742743324024038076489285864476157937010010184802837579406134377871510485601866716773275773400688794427000400358867489603979341561947073468449420325122031521580362521381218284983002141406812505405511803923857936350173973591866045510234892071325407715730383724787978734169539019881207544121713346152108064397453252465620306887998391975692074415966122280997211003706562580583658571713843473374955007883696589744543178143680981649003703763422350352524224381060423927057786087965410504752080443895579409191868288012449962792404924120865523153316332890399479994649026649483681369431425361033716123672049477813959956921599963547039009838188407187585952892531235581967050058245307066193843767278504917041415661012088852687244548177687235320531702062190092824291547069426711076579197878496848902231039266059608866761955739681728315918787003391926556525145957019246825886199787284472043174732128418367985524593356241650905597855861248747486829954218040529782596693851434113323968293583646586509342895280310769807810230290700296786139558727424579860590066518169290199523862012189662789904344787455241651424915545630846940739489804924189061640605834746067571096972043973660704831906041835333365375601014105184042030087639797942952037220118248352349107821838704662635817219926378053787510640337641718184932120203678693962600651329145670635008196623628104945577305292190987473940569792512777839705401476478280475407265448639341274565710299608929302994755711859600363604859549389280447309645416761310449403913688621600058752591528241070079184421701485797074028611176425990803451889509967634267063558586628654994073917030327280390094082310104956546002955153856261469931932945153379852274145290333728165610849383865536112491310098937430141624695621488663275834228140339313423374201049604039525171085969905466265620628647978499805880004984727994072416143331713782794359245702561571685740000689871489196127197615544604709164994150944412002088760294978033132501134217491692349907364171583782138625022069151268751141103680695840997575739442541632499086107804541797257947720881221264683102572392048085223860138498707781419074317349046797915719305587739646742685615257832849225621334829317356032531784608343074737207482023588483504465425398646366809980756368625466745036009121565126775520270933183083666970871565922548532203908210362896599123050791272163965430584513687580076492511215370307427008607197356360189965021464086458233185250386083625982464025000655458636216096479872120074019229321006474476787939888237809056969442713689214514033072102195757084855383021440586887490395195249317762525139670901707439329990900820883067242949131741369183038206232048204046868968522398881620671719403944775754467995273901985214258269602191263869146934828596787394498428974282642824806688615087798272202115211719359866540273614685998837576539861325890085997952772450858534040944599397239879773202982286414264047304284003599564889839759014684740319793605598724635944093544610992498384652459521452846640761265972151343978566504861091456999252630861241448258659483190747406151788679796262918459849296247221061013268785712888979895476450956296515108429863433217500647695983538465174236890256396962194313244955750924188788129556759720269343741779397506952077961798382400939721011524994209344519271646130630861929124519991327361633152104115693132997630734660091911883835855608335230117662343894786653439020807424523590065051053103529195328890620980963427307310502767265417009923290684433520736942437955938673693108803063565122787073719598040650725178501764767776637165404878436634752199569625416556100307604388996903649205467856913721044511687340953781508579326244248412832958579637218451224737572458971264099462789585199725046555722605129982349242856433136560955114659143358487561205306159938458094723404743912072976342333109378446190276458241790213096111786424125442453825493506490771771458837954666040343209659590631920603692757950454135510306489850371535753593237933656691729254498778491462798922983095726965000280539914043340724387130098966040528285360060730966940329294108516288198157217845434253208580505147697235651698512003518498079718755273917668795406769741134163395592356365210381858045711516051947632150878179388431354231285552218678397438912730583730772689711836760322453307541800705861418661658013448030292554211569885973506126963168368332132044023615819219512058326766637421729133071386598331823955712127194071928613247880497480179481505110594490357622771233055224226459466218815703841452434155733628717986018565924527931292359831362380808136822740482926090700143196132498267797097147739410368041342504824304451551720970469921451174225202098220838564836778344935346449965471243789358466910534792739867833016679644078604894644570647185763798969586497042246528914797460527857127460136726266751331800370316015967032313272901099899124285726896587352482807865267721828743669424887642548471085933317625962305498979282901803438785985553788671024318204454804708542114816009982807393650952836593043834356028707882579625577180674545791204386701444807206040098960294103376132841487427954136792430514185339948600059440388074557740287176401572564177972730055270926606260731220436509018697053112838397267263216460768644078142124504276357031371768459347435707292484880417926704230468277966374234938226702801533778236101973621411619081870569055759068604782508597521660958935422774332916495323752029009699756085441138927172822309690429675317740686984952532610065476237540546885950009363799381609382711610375968704249299870627933980147620866784893119255126520645291688283722111499498316655748368595336985377004451051982704891550762828837102957467564871453603567095910422560238020492555177788302568752531172910698814890973333387741866775773187395745621092456871433219800843748423006031164278612262910130944613733592624196789904487079928490590539200736910071459603646124183475831842114022666025860608428960669069609598852845881870545686320713922155938634474405487382249181965035153721600598579273879886183462055795027449249638598791433612152554394654040417486684644648484617348099213491114587926623025769539851421946215823406216582045511291875839267968664322770502027552097668571885196409464348857661318449386141813836549328579887916407230211300607742777980431385233512428632894201818556518458656996117418438548334071527402443699912728986951642638348957250187413159173541198705519853566489875853665620847124114757653712437934000622387266123800153582959180056276706806558736714493317139846229954604163881510800536856294463508068136651323408982009773169803998135779308691361221314443718767761050096080265207942400792812069819582201904992401528121903009814026748133867318222396909180703001162587820685012695592631239914830775303703969143045594926343181010470987060194511312911535902680545408717244792366477676745554972465295173549859785622969560940971882854355886583729447270267310226607495994166299687349082164950422626011214041851698258353254400048938589338882569485759784080398073724740909356069361608914163715961241716955379142915517980133762221314954214448269788265837248017560787532914079779398924024226446463660281444393571615691510441737815271536454302715904227427723721475279893140600027597688493992255676542653149139083152772167971895132160873345829332809750869640637612859035504776808648348913495241493432312390887121500459941763881026543554329854006564297018716796764502364639370310708691525156288156222008071149273873827408297289326106720341783519727461611836217665879612402537380505888235206865880329263059645446218967408393277915162661277545665472863210659755280515706906892407230084923141443565353071888693704212662791208798527263015052988515065672433476938005433581397336415970817494093353548626910335460988972192083747875161825441713122614162439342853171047167178623004232341535055127340062619029251737689208968827072887750784369635956634902794056678578695523696095321862527731319536141014807096900885925234212303385483486268321956591839940804729602189035818984341830973517959597628601650216649336789603119062356235963483722579639343129081889977964882846689660397099391007364723999718313432669266273870883327060005411040885080608421473568085753107495765999466104746680947529011608993232554071192203010203430339141189921325846024839024931252664561818537778720485401882123201593491051001667445680233920219027490366601096034711303369119963723145506877068274226445893818663301591275466764683567290408207518192168086284726404062545841893362114050243054449545969668098382843477356870459120929774183546477308287599068253002887774998568690151792365604404106650817310265271478955801857635647707667817072979957389070531515626080571347353230198713307480926768493450874517492747315585319388893736983741202335132728791407333125709384258143419809474063525109980231029872587653042762100297697293864620198188937539021500648636971307182938878822244662650635246247375503370581398319958187624237719035974913838860768090574662290638053711471586319988417215006965385216788689036784709903114465430585302493164745996369537756396891297942868890607103929429410563804068191301971328084086207647012890657111175565276018868987979154367407516883375587436002617014055096727719606820428752872904801840573765072342314133207622690262948504784075488925399118720384821788760495687241516186475516710468984024176484400014332100345166797600124433568572598513994792216761672866598298873284654993220344637300133010551418586176929753568249881571701489499122358285921701073462557968878493434811509475132388645852277834903403283825831183141294374864014649201780404321608562964146456391035594363777592162637072281238446557389919655406670402313569583316217834218083666116810620915648905904473126564862863329919893868463292572270308981652129276046809845688743941797828538940434770469785236051885918250387511064137257635635359824600613285532697932129920722708074360756569077467470665664792913173644236973983688185530188746581348568879447190121290228497614046565912522942425513225311984884102420410935022207779425722459788201647182942354585951608716670381745573077516196716339241740249637336744536091524755339600015071390873223087931252396518090277135418712895093993934820910672839837278266182204919611009962604556347763740190748627036275366859790888304544771472221714010865607850434105420661586990313221904332456590510567601982825034287391201909044230683416876745971567782954237543611038357671842666090156254451898299245871046739078787541602479552987157256388996820866997985603040719110669833725051529180076372163083110497482128700885011725829491332076377885258630034947190759221707904155219207642995644955372656697384135076503555258161376434262837636717327356889698494430600208320435263112505726816391246018208459182767476375919579745652168789171816609246634629769558521718157836090131796106601208739808364778330154327594664229970255140991738653465243155298550906267410121444852554660440046670438057010835688767821151834813246153523532648742687294356299981516833489719645793674130559871314954156381532317887391121514025256629580558724189890422339921941062182500741228311560100667556663125823223822492378074161390465241049804259281697189099961186524810481149415683136889255949136465756236704857208948810530679633349390949602139831031406329440549580264258074893057510561038892466136605048144888280136215438674987407727745101951860221186092055502955742349336352027760095041425878818907424389001936645257922340916674191087498750255867031421258445198882126282766931772474594734984573045984613401437430222796909272633454034832014857893949789058285629292654254121295808962823289951648611389806167676558643824238570286223938629547545791219266498926671450634024318245021946048869093733988007119029162277236512264473321837344222653386006203948365230266027911396830931940498065198934727423415098991203226941975074957097858961948779138927332110059922995953831617837722827309631341308596896419066573198919422191739834491439216144321207739536886455529073963056403514564390024587506642119429632626939186113415060829250118615561994637501087309171830319740808787443874946133529516701305835522021858458957917455801794050561902538577068164223614223776018997000833990885308917263483406099898421375834068591558382860177216197324928242835776456312638091368582509092414473779048854449398207220325322115986331592173549857945974660006823129859508945012903165798960236342961469487668074347137219621670981114574802981555245268473842677115880839228047081827647289148463221599715002219678397742710116871101127314788180950844569049860827805319081348603415187783878087492940287425287361277004488218135463609451429161121857462200106654254514046433608764595415185080678220499723549297670907226432027739523034974778803054973146343768754595172970151043869287808943364128620133380415289105462339902525235872549682649125546502975619774259850064519407177105924826917802324320999804633219296091659281363502640100162237614159712451315884642498853521722884195933809275553537119591931948291416497369850002167670093009734336987788405148680723212499632557190437537119588460885322896823249763906460274743239018425662339190179486742191310678865743963959226426234804121581540505770761393717893469423606705654083455242430146241231481646227062953760598545157930474175888936815303457191357164760444374993897390957010507886570619202003393409563445651659518287432317813563547520559262697539494993968504988513105149909667735560693842918261582750386310467012522999109249725154383857111082801672344992012749381750548041229314892128224371703007013341717341264756257947854183814439911869496667397080022626193598592363871446975032881669279019637521921146672125886714836623549670655358407770476137960092015224489632127034787604068782115580210787794910652236450656874461309782724269830548498946563379110887559861007253034343763481793758424229017432590053898506102087932068999308300555844598156424746125468259591823712757037848459625381024995968765573919217377012247897477075950777662770238194667534993591366275247361967459446388307033331587997587879907664557555957572710608725538199661771252203912472009892072788805461570065594926806561511268277989443222995410764870377627064170145007849027346135410556471853227094812566469671264652187179123614358032379646935966681462012612720998085778849137793971451259733864243710129385123030191164107789835329959134193433119110228946648641549596512786654842309999749485983280591527136878783924354461674555272749715202286707126963550707647282120080686108588480945078664902169564476474946749103446131095839149692824976222602353281414645149892973074253824817198250153051670154199683953439404049255388805758068048366412812372860314081798724755869903157128677587118910344701173670940554048610982875942775144318420814676921849777439505641657133333567286676831358240085142664185967279992650827161267777213762230080986787928884566534434988035721469354295854266251369703323951023193792982408605028687094507233212290256443508294137989768633292447648303989627993112845339110979986303679801439803068338364676556339880532348885705841048076968863339278602765002236129534686368818572944896797546184681224233428765471213787819201658685857461670311327338700156958250562225816948733541581759917495334267746113441239273174625991247509493158594506120870350447232598849214005563184313215386848147937653489680629228898739453773191134406884000244573810528452750928738245306036872861267200134608690720486404630126853285529231758493801235093730401193359782043159030780428995452317569442340628474929120277886628620182571909021833419692839718590517516287729373010426727160816132276689838866357691753465231638895480496136376007554983949619342861812109859933466010800962722992510930771126972844317964083647532901436158913088985186845477944185902614790125446375913178790225267935135475624927616293719189232149040617002212541968479493011291012657648060078010712731844481268660345872099651082672326052300536441381227249202562624453616735593938714627841593350644181462743249991709097677235088351942463942304671643389175954825837422154011849628125548705041102020346917170948409289472212130084849078000907825453558320923459137060614623292683251764333213909795713648345529842571604501208229195846948113630576839705069236221547106455691883187609554032151737924714090515623540814748171232677800251778674563104832478571649047438528284938518422536235075509665186633899589230897380250065769046410082929548681074369540503545438996261298794858674575558688400557165252270134220909118941106608228423173125654740063253500718998721385267430358363225800143784739310836255523441501202769562522769948484314010078229956047038791195310797613217143673444942506443105082813255625879575389530324215492158959378715138676385780623889133844629925896514737396061797648398475946533935217987912332901010972004243850421964587002358699646701467672539368559400484666508111490329651342687858145468795743605675814568619699251144550504707428497801189616416950925365804712678403348369801972725890223911187516966146111079489270523470171942011165401728207704382641343806465710164425563506062133446568987676195734669748274924798800388112052978313061397764057746510599555590829120633199958740146072638444558147611423210858316501872662380122956027399845670969399294242410804812552813284535682338354582148332286212211391614765536678563608704839726339079151575184056749808903183759163386116230567087678123353421089533131488448711467599392057636505435262341270000367836900368584348446900526619220722118388338564538325159142300287562731893098265151962279607199713418112196610503828113040956304996913081075167322172164039724078356841913073248854043342313860103952856806025426806355918243906405010760099559260412176324685507897775086850228537670582414340583310675215292583124992120395525824587124842541213435852727553717319331059312277923247267498809048094341388846941376269133636988157047232248517707358087780380433661472677087703274242171380866023039029251831189224257199938036185824643717384874224021611610491216504501985844931385608807420464335203711894477329630285345155315102845968683515672195972233693195401148452052971724588834945721316405550839382608854640781318643905889337259537282280512125514609216261136879227444293778646949958082750928400714109657909881383649825063902986967621374162005439437215828098874216313237852379817033537408369954723117455517429899847904391609923838984025248729336665001292120699185915283615500410456735738657931821606964590645473019289173115437867088719362047349505813667232207286562055549923904548601369212243487392915716707413361757239908477306757471707419150297152280155269056362678914389455111776584427753795252901199595194868075129891117968329136509724809764924369966549412717536596908439933781040932550904144660272930592385229193319298421047778843708231813540311877405202564399236176320078013014352363840799960608995563946781723408389736729016035234925910237064704423050592801241470393071987661891043164424998859430461120552890097095698061810026408599433957480336453757925468458524537947786908233864250892026562790722734000858112266022449595328941558361082779010225996249315139175798413324242124625206132848819059487888632650670327010863780684579161664295807178165543888677255764903011891107752057782576236437422779212504413576617907065627684320635777368745628424927726042682574161935748796727281406338639253563379134461926380381070801925223043474870619806653933266440627337136389532351433230885930703543648499163151211988175443556317637915761512780366728704120640196961881093968863806115808262099383937584982251995866542895150809043406939245008089790643470296510459222746585838334808988335458809348052037106467536414351697696651758205069526499803017955272465692081439819720876846718150426669080172807196052975114024678500318098530341018435266275755001610857606160871910855788503194217192142413599859788705251947555645383871823385342554725516765639698150000896960902219072781932650203617115973809786603495402368813408579799755345788223201928881568942411691309837357258857294329481080537370412059089898086476865666181926017169183317800859701563457179999648437174006885513600231419624070152869772677693021924422879358447155015700694846411380319281186126889408605554455916377832417539129537299825002551814352164973268271223856483426436801417152220601166129442243048624756612566811351741791797251569947608479507430164023146039151216372137451209285907915069653331644855797542194126560535680744637157906779723539574294337254063065133511582954097814649535622392714732707498240175586516652899212861083920592593741548200050083402913820808509549235990328036445696910409516899289085707083274650157869154447628014954411093815168559830250394396460703843756878933349791028793927464756523364734253529473451347168730916568246300020057331100280845917224992203386725178905768382937473947360024806230280609858977023354202662530306210265857316953852300638335831442010323747930191492173811584399715924411270763369746085269373186802499932429981819518349519559818156481685419932007479446517502017190693046616501431922334133610239628377744537106456954069982249053632361022660247177688785913321095271801379355295866050841911644967770881837664613923469185022912888458991426489317675453488245133555945743956649395925708410004973474053362584391338533772007811260694168492134715267476876410675229873401075436455027004969380823878411362294521519435640474586436428996852888402330174384718069290224465355237519458503646725554538863453968319287946291542647044255445529278854705501103065023277143513276001665703735926403427386732626644590543239345731924003674517269765256460636596033467550977247039948161119212720037783710639358499802578538143589857336724216856124422035461845087576327880511054819092391070286990968197334294571115921096756679420569114639109361758880733990053470256893653228983648367259581197754439216295059566066538071084254933419145150801218103415538375540876399243636095862728817214639762393616939797374349822519378564471725734176999698442395163551462780405935327824597654910962325664583586210316734647312434908068604700955183563056409380809715824745973061396699041344183466900765549961476657294650215985330939234709351344649070444862166069977348657726993114582696396395630945277940539538496620974631011970811316708680810183208097970723051212664719613859345309281511801953071469049470227454930996617893651994580749745170897089996779407368211143765469112962766369378563662695537202935558692509099134530514806477730119445367278976304856149015522345547699493770097523840206496370611416202812542359889318765199254582533172224747046873837391603521571761076127760017107567294758937302088354897713599953507004319166353934772409396424345640795664639636690663079798699965820625017662603187175777059938220373071492506499560455737737353372104235160258435982450985675416703752372466075944739298083159674214128439709859347705914249604433178868452349964189630350732629052009433591076203614611613633746894471882900831667078755314431577600398522258326596936751483520231574382483370470463762782165741470616126165202980901530780683795587767601297648000747960403822289792539436580632116483003680254090246651802171928816180562037572420696298396540522511034907852242877704921334160001815649699690855145762051733127684858971155908284697591715801936689796956782938114386511597437341547325176171516564648723895742519867957529505143233413548269113103629405464618682028413087922210689391745868304685435533828560722832624547395790557345233049033362889812581059603462116254869178620211920873597713428218590994432014925317052502537874436459351572870054818686341221089834894227766057311231808118741644786806186176728044171302437402215127764763155968779801682572771215700460678634979047916877332521735879132782483617906627772135734427549428787088362292206661981108933910293222250378937100000626232740143744829206509840091315637355027528742274858938730050881381749150554279709562007178993975109213430068115615704990729432235691802472873847037208135859877870331753471341519515696523886134786359427730711228291449583537577431911754970442291075004359757861767125804990211134921335057705204452230276817670221723843254538346173681142118053088182557762326003199418660255077880265190271413258416111061958430528961515966456198092394562149212009268591744616575536620183631899353729028093463682717073108826411293475849118985753584878652886409519530794152252341414024595854888798030324879033123727229741015270325001650203256808609446706901773851459842259589433379385076777004548282388821281835720074535200499692765944447655249793966940736852743998626898588984041882387650464980186517059753694304543446175769050203462281616690933928897113092033060656826370656549852332040840993344470186558213785869737029675188026340911418981454272872937532805920657001672936448472923397415575233036244174133874486304385291453473342062896760270969361700372307768340972765082020451693452394609981811111926508166413229485554611680882048492624377447652649342169688010150164266598520597508987011721969595145751921775844812283239774067583744990942982613492533318910394158446174109989082285219162002010903132225795645070609781357810449646058547429283849763074748066585259032347841686483351041285871056405978398803601982146112301692484234135333296808991286367138641964564941191772150488861081664116126557894848763033977110459240271133652799769090435362490490572452035964395761726487792327682712288632503034084236478756663717339070437937500603868175405368765996416680208624677821383084206267611687479088299496838381896242045826892898828679758084879910679726025223845914378406871423581103851698523007443181463968636848894880279616572935122412529987364386655484819479833558393005136101606798359829949702559157748863908337301947483769380833141871313601579031408545965394393069425072727802940233466808952494969986682011259251923096086771893589086899302221530992429137296413670123702493340318239832043903229112360883489891742629525264627198195663484235799719302512780386382593687608847129895437981137578264075777091083291337847523736813638606894822903241755085863895249086340943058824796246565157166677115930466892522956944204050005003021288319331606499761469199712086487488155545121615456390466458894844410642283016999917311552164826413141205693531248871824409275768421284751625621296462014671170741020061984400056195039250894262470086192913208488752967122513182205979413465790551647835277341171307882148133752636596087644805311919350145346320966909849590825334157503092233845599869996278067008089851427408094096135270778552397641632953942055820539344232923681768388705766273206630895019387605377547015689662297464509259742744430735080945963729790907979827795777740985263838927057730839979473415008552354192932007892592221020847934518554612416458713956380364170057610644273368671246789162505530151463868075107878265770935932751307435294336019063869518846512274688622901837077751312363159145234107857441785054241186731430297260052436857888824192746379546380784804200864041215475044883731536862896151608777781818037284762672990039351956877440563103924709828132959271426805432598802549307350046076887139978913833858166426058860453737581274353996430307063032204484738210555641197611893308114191013283983799056329909256131902595137985390505370556859637872296043333093646895232213913414548024519819253752090761653182124594675473576824784929860723001184818615411239993753507167972942152644428492162075059230444677812261287124562107019988192796193125961120665708475161679525027423386672315771100186479912081880458458031246064956912998325731767354339885194669983272443995091122057261381765277038412907107901183468732040727378253934828969326189063510019091924662590259673784533665254500305580769779025811078961840617097267477211815491833692357818432805823954760413176985016456936235969083429673656340249835704323121321288860462667955593008102225663479672084533333290694331653301878840404230750722324350318491361869055575926798984301320635173438504052609483421499421863188870957906503874725507223256357955153357233568240191741458294575522578648073432866157961287467300351220174074193627723442019700345562547385031859877611396396748719697718782038163488514692537746052407007140536078218780844496858206621294518886088229568373272134465221462762731788698513366253078253200645883072105448310234632872494141353249803321126817607180766791907415271336073662346688229808758741101789776580653833580856946358615342711472380589958350199682596448581064283336448045166284119564505480992765463110010037948326616643792371200273828515032336007876786562516331796067961006375005077430368409322542284989067510024542830166869012596729856412368849548283781725983848952778201918560078507153954833146249351957609123196985128257789014031344492771999246864441239727151492328050960538266731717658942554192165679080013570462281006755414508994156782784587977589579793499534998935027345219247880912184750015806612422327802185279612267766599006772576068947090074073199751118239746622653288886970780704831026734584831270096824246048038635130110004230435241932121746308675195205913138049788934860646891882722670815078730786414469368001514516370566795486225638107851643211777489765592164901750567768943800440004063634143166267132756872419878139138018594440270267703457185802274871132740547795676873721027191010870515917973787362722035919935176309314023181215008020300507610373534614063360462921453878523663787324530772292500796695587351593899711321988221380841236591368688153662215096996712167200306690912413589206219440843084725857855942434223344855058626330419841278209845918259831346598340581622450415075494287066685887910538113466943886996907885897894251777910598372743782285503800972765425166303138324705791303122471746199726419126689118865199761785494466961379288122170568216430433921973985399203751146441671700211414880096030646287998531397656865357389145702724133339986847691926115374404989111255763587530252198373354064134991992481418373741111323148148982890831260962536114907958579702225450126604011369156144787947045054912703124665906983059665935011789278743657994317905532917339553327966919972055563546442824076231165969594664625670908973146724612449509995654492006027514776643585461797570383522101197313990522781341256133227063848392032246139884374378076183283438949081715944702065326598932372973472440565177278418515333300930049582599291385276575296555855687454321717048763394918107089976848243132462853509699102522326740188818579576520735871377958714966702302941696397916827082341543230531873121457345695650396197136893537263070800055929311619931686198737645893658457942689326778656303567119143559583528477926787243217031354363410802052208015290078703492777555994512677932395957141499226828668551922370400183949837030045931733462136753504390169726498692434894446911554157644960454633463628209128004037837902821814196703252675397780400141987027610671611587668383433641525614811776354224763297534652936105383872076926063043003451111995121282607099839710747351658305795477947741096508972555208233641234436761413958396252510719363955916604013879883354568843552095170228057125521187236335824281793792759371182519376041481204140691038724811299628334648401509285540641554400628016790685918720760847758362313347315550154402531038495674539519121216852095932178842901969808531014605348169091671270343485863599006417962095556163155312181456270113051101717480277121875903632754851563324706052034662190894102920784971098225612919713047660417478329668261251382381400081937915503451812648996031470656282146655310473593338469384034513725759529608318738747517799184141498666530818711551311122546793940715899529839850706524605303188975531926483494291865640334976236577902238983626363781461351297456119872793664548702649395755320520066102171784920699623063906657589842190395656533045236185695866071172239189028286608843606943193673197387761459800633848512067801425177638935702145249898945790594432489379643227958494689961253332152105640579586604966438488514419050733252291007583515433562743613379045060567665206300954937904755648257173558927805182635949472395929385537044195277812419622139432898109184557086061961414437218953698024609575935256437598087724446060866015056630918244476262107050944834836508720159461526781406864685308010845379819776245904150477241760190308621452325754920220853472316691914072591350833758806726308368063306829419839674990093702659193221874560454423111473538648510776550279636818411445439329908512687703346340299296725758424925877223589004221533670573325400852329152346702597221351927919418715691073091517375302825741747139872286255531017867625966228792989131072076568561330869810920686870799417701317657714533982987608251449215190190667677461262455045632313879987139488129408631691626536582375547503094644279119035214007201321415192955505102729300594182177194967825611227076149883093041990139443981779790564178907001289871899804277454518276360317870205448448672823180853588230484622629525387139844936867994266062565467977157233670609525651341494227691978183108300120745011927818462080231533410482739486006356899544444378138117533455733017907066948702124570201830076938038659061125421330228703436582765074778398326588080820550934069787562685113914799667952393228775147083099295061026927793661702129576750190227781480439661646453113603663268526687169277447125813019466851191039357910476353982347968649845110612692793705207251497232587037675588640193188679859556225888286846820629480452196613135850810902137065416670426928752396867683286390858504799020645325115552957845190902945852011201353043743506131958162785074347868926851041032811215958354402106743781962654306765354490076224237757543643545522146594961943490811140376478037732416707442211293522266536250763574334702297711814149685146645615363215491904838641308687956579163210806603307555302933558883672537045666311900443718627744147123976199508221254343870127823685761489655002102020694463354895472921419342772541396690211052364203415907600553775629833606522100751097674408924758969896324845378072947738340152619651472848536078004681269334572725352108637014876358362439639826623242773253680464033753742005960683706154767847401059099822581567834989984990970401800086647160259189926863201634644456278798844838181560265885242275075863547038872853059505223420278964016583139019842837126498803843833515950873495018320862502629598116174490014718199021212361822630630628724835755765991626198402897571052185559452888492186047841170460488270708177983031808939216454970032936397133335674362002379841394427544719532738785691406548892679152100522960024226369025288921745989845656480309548863508452521788037599330620227152616823302307480004983653004243643343113091912672729329791628030945454028180393604856217825259030720941293240106580130802222450339439203741818192601454361448985743473854236128111200504216501609960727162787942192109585502441485940513434913662016458312788418107358312966425320775116634388689257157213882008183499654861742105925923099504440690370359088679570070201726520141781371305584416728682981392921243932501948081778697701742341937761074576994057701684191614775844345553829455974037949442253815245854275992262307175661319371118493803412695698191608018284084648432683228260167881286117654965495251340916851530127862331958335306007418284904449150096807503861762268869424919261116103442088625398439785582397179225205678636407139602571466962183953419462650838318448269129956046203365841483650883485377831482116828519982391444514550774165517999945380690679334374439619731137521501441502192798091610526086705066165564348694879092389310918170388715378634950645076974851066770977304896219386418762404606881366321312908357117637406201871505114583599232076801341928084629477090760090200044905887563427311159772253995851239735214104008815700055562096809279215832395496618722782231234193103429909576398378743600821365461292648040248609181443212878512648136449106093800760961910342409124125357799881790359670866288868380274593642715094154305487182821466362543238197994366244366007513959902655357524239447808496088910304672043810822334322705901571187595330066486891560392999123090827857687260180979714104794123712895223490624984065699376524587507836110427290587622085784147533447605126038235329765667632360638881276375162269502009376783350852520565774730798736228293904151074586006652377224349540290144814432969575526010218349486563938376889123701698735840189602856834246914686966267281797952205613818911474215316916174753614953383653938963003060680988401981894254751456497530269128943074634538472111270872461267222554435859482084944256215160253992998749374297275589148417083932757693971554293651829770679443098241793932938211040076526464420743155448181127428092065613673065592174954059588192532921262272711848269736956021003944863364455734746154428016409728019256468026757245400902681917359274383859028809528952644418236174460911414535264190946561136164291053833585750490087799260730799197450327912359947109942734451652213392511958090179822648231226793804928978356552753991483599891523367302274544522099333607624891730875837416831567135343229375697613131971668620188709408779839815701628423099600409248579343775647495624202115841004373888891344264763828341053364779126347050557712553860227060606158974455921393346004757173998256352554969400150326881284718215574535533932478269829737595820426981878944437944421827070370410935905241144868882527400625760023071652291568707617122835189526630799683871357346618939516527809583944303455600293165320044286277183672071808622222805270043992532160663591957281830986718002590530623797742099632486231395507937052336908322785093731254823617218120581835550990953027018326445467240034940249986182508190903018635162385284024331255437464758365937050733374634474162174412618453881196354396871714766447863058754611298735455464905820526939467834453108956783531635522708457646364966667639648824541094560071136642686467422704441619455899340074764792895961177685812572705210856986660456463845634964352199724118496813805244577221130059622081432082009762635612525255597548455051204138452138453982285040425968132489306505166301417263031436369733086978814649467114352593574857780873950960961672798040386093145668945246361957634674112272698846806810684250279050296871664567670744430714133685674565983323530648333360973927469442064723403723190108602194248502017394110695290295028910841194047497912485066432819253438801369977083266530822868139656539056225509662066626538750159564210518630620966332140074597095957274647752303564675113713511495168052701001857274528196227562932003916543728382780601086224986289003873683724190126725110865028084360569900481839821179235136098868000691303424794601414915542179412106668245902830788401531576916097553631563070525870090359199926985846953018567241346710225757911529242412209830915044728174677942821865487202890776930099701184624311839229788051314466194543445254823791417855603047105623417943848870331065428680845050762345422909532498773518881286891650701552549003076867432389832282656571381079030504994547589139338214206134176817204010488563616817407087090898683134095295990808654173313713263472443613262574913934859328129278965215721299752461530473878070826712004067171770718534751859672176306484968618080691450620720345401988689657857408733047010595390391481138949987827989396668022195040312298937881813932311711378112770532159220246163774846450435601198284994699642971037119192998835051585118046895901258689869252450905084727829474380743025397941706711610758651909292691529341100003238002466623581944107980623182190925699979937006346400572079833136104527545588500525481452928831426655654141833289819398606458627853844265825187232028848015286589502670948275797035821738821457909622082847321374745847863200570649037641348236964614026777818745035007735536386502878751783778565258318738294023497186698414621090341304870521956569152637633435109560509428263258893586262706451114481868535003654381996062791929932439656024709446230777005417550919021625095294363803544230657986077540588210686763884127375628804052877046198450462504709127356961104990595881078461823319452464564925739843661948119146786171630640695899118468347382078150009616893536879920475918442889236698308743850804864469207133995583244160840046458005154407366706594173957126989081220063744587938631365723336365050397358663384962209473665038981043684111822753924153695968590614350940112563946702576640414271986231238199862806082439350122756813009799451544742062273424523123750133081570640754845935559416939074058705708529558954657487993613345310428031321215404276522521613881337792107578105785668415310441825825266858949765982546097043798052346245441492120696496957903693685190100928049228299291963910817696211728478210400724550800508025852025272919711704011244450170608799098667503610699779046287377918463973825747929212699117597928818261946400635235935778716096566221979103445371322499771466971365141289925986537934806359877117542490792125426790326271937278273001885129345365351112170436283588252096301200942473779324350555334496259829893702509860129215368061202882061660032358584113289812930059837309791895771446801390520058739206382300525801703331200231164325367109591525870650125988167102608056205569403147223757881234858849460747161470489355873687844019834852831127806614087157644915901846741764259465882029193032026888758369294061949438285042968485511508018250492775136283542402561360788814026660382141310442284679940783844023167143532224960987975231418330365379813755187883513172971142835756382299251489451202892159246870338815530509269807860459189720675901876736140579885771971375861146118577621925886738275464601176284067566810443274333060745597877342133874915117329675565306370399600867718223127461070523992900334899712156336334599294016682560385000635009587551861339441713999964199294022954342638997149751333822080147578184669485246478059725212069766952558447098749953118286946539802422688053346050942162707537195709977722940673856442956582807141410220312635087898043882065685647155110748196115667418419470611701737527282603975698664173688342788284024511517459440483478574343987078797493527450951199331268097612015898804711489432448974726617103682476164989227158497708021113436926437349481346230485151509372713022436891450780681287950491374367690090514937713078936413901678782639336787940016271357533350852717200787820327640160277909193952950451527096140032407150818780201340437082470134560100962809543483822637338961235121404438009615024863425636875368989208980896005806928233240144066873149062679956630654303833452749628474867758026270842602540545619812279256649806017368776805419005943164894613570140664008188477319223136799160629973754992209969626539504960230249270709072255856523370545914883572308636721745842868486613038736892101155343094499350376816911108211989651273432311666941151375609595372533501443213575789292943785487830043976743227953596296361337377967012435181724843516930876240549593868833986662922371140041914522919914684124630938022646123201612802940871589361857266842308495005132038391318234179504454119940187615461447533423444669998787302402267676000433058540969836479694701020769944873519362265149145192828421314922220381736158799871885125291572804233378836225370506582022984315674406622392301795490282101565142447400264748381016159078408212707958210714325970739980467294160206379052039681908971339463932924685614882117752860206124732588197804379692074195128058155460783234462377535783324841479962281699487100773861389242203597587558696210534786549196527437215754425388601702297784849662796730917229800832264308416408694328332865326468624767227579501585880047877920093393339105691358987879795471307956885975600061825245143605619537362846654089675449303191795029914352880064444791875644468251579062843719939142830829068445876373423840830623951551025442086656112234739671021408544528453670498737531619746179786798148282734057706157001182617510239148275185499837442175026399456952224766157479157915118945957974421111948749329706227468941662704440286171640861274069309259975246125731173679395327934263681456497166694584719113942141135902155884085149190746962078134690217340839143253786263339271256520912823180318082126643146782219091427754384784695955323766739502697028319139517845365797989606536778480581858967159453335402657348095610433703069987162059492574007793424370266127394915800887959791824106299129068459262543989458291618210670514233929853860207583197060873091140169406178468029091283088327700466377207810458537431530983991223969270912125829151668158261873205394493557313836231316659526367832888068251365855781309926640569543241259221413623724239745820227206508853474820973881367118401332262070788824195878123096767787596907799988021774034174229129998200185094841588856464088399065369710311124511158249194815672102395690996481369486561826672487947481880092146915879719413132907241829278752524570488626037258002164912181524659205431704745420808101490628359978659544886516609574212328354622468672835821045497434398050422775316683364937403059864679538435268784964572597095948040136830694561820536262555487207409131517680307369324435667784578036445574186688426511337277415385817586179766146623354309926899616503344962516512067401192299515165466233324389677343766299586011132227524607580238404605516725571483508756090698186598862048312711733933974804123693134369616299965095318124446774408445575028941193421695220337915924855927934044524776878853417781025769634402100998878821184638657821341026562753269946768537308083288730012001897438875038680299389945939130417372216736017471101740748230829372111997762916242164113864179712021964427214887265848504714400586128589102377266238841646122611282118361834548306381631286892518575296903566005503160562950978010767187587071107273284943434232049696423797883505409329584751345679821904647757209682335450132080380447851182786832033092710196671315072271115300854586058864402677963696077753637668430634823755008640794914015549241080359737580281792349735759886911848209293934944865692383017843971079425640260765381989592136492063661633607944134806505138646249440083675710679287446444082600658952925478029297844410054140570834834428290512931699694588492517026483851042948956635608038297857458447297932559558085882254046885679746278102425195091740295310243350571762054377251192317415365194119654973176645905381940865191884432614988199101317778486580274672473643485479839025380321500250082935842382625856737243639832425069542423964310666295915081002146573221944362069668062972801935730267538440603282282738725518397662595192720573392654453830813771194448485504606029422906080873619245466546217855857571390774771164463078993677815283833359385148806460107504481093147172802486578037361306867416535182392312940694911109865879786902295164687751777977464579516935245003651087879349098573341238810580210335409299797929690522290440020067293222352725802233634417408500496377998508469067376360430911041511528824352701555267971267709718220975129194361049271131013270947409550472338009802353075868004364404838248008146129792547496489088825539845751760413554388290819858432341776351538206959818764815655437748722359542844825372214448951037490599845644439768942237589653648662196895272172922724629669405967519170571906962093073106812302127090488903915448070331065830979352481250895400866669894961641128699266877426670456919677252733993010345888800675065752526641708194905366999997258055607068209326004701911135614561319323531138570609656827619411787625124440337004470960678038768773025381297878384502950998849918375606540977031741468940414387820075613222377566779395448806350765363226140713597916455455667707099270507151612419247056904050927067626017103051837681555695878891776652178299014129336062057745627618619397221520294806947102544969289433002330410978098731643321734607876862792732126962013982579697680108769977791821876065485550741060753013975940247097544098189072348269987448104775055645346487366185578147339828439675709432099121829108513031875120244043629269580184221166144425422896869377224874989693337526255283256606865079895535257306302423362113478950985275206411423138260765708805733997253537536358517615552039536604922223711369846026965132118682901188380243893469752578710414756034572204874709703842234520729298108010276167416123362535154731203579110769907868584563979759842938607179358374981374172983053889442071878374059372406561882329373420104720855350259271991558576435540784240741988376755161382267884569786857326054471034830261879548132823065163624257646366743763246348101330852478480700518998784691099620764131311516125451414168166138416241714513282198675857228204262833966922785530506951232810115337640671559666845388955351466592095082924194410596688140880174569636860064361010568193988803412809092180196322270347370567122013955459838742897777116527756432335769375631246949954677364456773000882994200642970694994859722653824930472493565373053507912038807248942267547174802539389204953427831307854356407575319387465907391211257608070826048823108642541278272745851627483428060704601737018264988987691961014038025530887694489817100741587514072881507439702638888677598691319364254801336034487916608255937520006739843186700585478449643449903376733888211997255457347913073949495571821824328769464865109741326539558575134289538195416505630575298189257572507002608338656731859809310203834159493505301017185514986991707738184686085711639736542264525409907585033048673054850736249568327351425939586497193477237089802436736239360578696435031257171301958868955000726244545528924854625062008219939213875248258724143994246512279587247360555275110503254994975913906262410166214723852617502147012383629754555375104786777358963457900507290375038368610675639935563226406115829063181707734214668973735546893370210043831034284867372714009940514944331819585460474560997762720598063335898261142809054674649316087332913532294233552154205585667735141804076321638550243094485507605096337871682512037166606844079914678101569224049430046960486101410024746903022961507672237087920893837671100039142412025631228809758748230730201780704764947633791492620614420559107860064919310476020833680087145493582745089072237942714657950824427514528056671832213799429386692105772646749207845800883533121870949653577771795705318180580244470140638605856960401428341776511764352234710957232421441490737058401400645436696827104212379100978390218291421473368629221833615709987859767158461453781600516314313434118767096070809781373958904511749665350139383870244616138343880306841702662209930682065825315748581715265857472296766677146115848672541511643974586440590465791196290610015713842861116324952622321196530682144736275986701805808782740130202651578340535155168937246127703904716088625825454326011241567166924060295334377783504739756246244070400680656427258473239919818795571468079359248048312869262705071126291393679944625673321242379861781714606063581678622230777282282241309509099104303987549116002151228776429334236573111794327673414512516121638928743314494948132436008055578505534087319706202393520505758050099432269943694331755873654098147489691644311231033909960934685191638376220636838328366365020541985679070235343040971473473781176308641609087711929753975444431174286287966782980792651304519203464759577171559660897742606811560903358300063085361107342416739235135533118013698290071671060671365350530076767720111899465455924684206685572167189477153300506758161187478234109685277389986584152405839585732247854683441673405945826320174178135228962095460340084947639535662279793559540968129903485461290973187635559732429383745523901108174284958506046255892823590021162636714433447072699523685537817236591969990533022712003322390526826221057782945204156763754845678431531735465263212181978904178844171540877743840871698724583709235941211378050956643359644936685209109450652312964372679587101809086055977319374726823964830677518806360784548226341339751460607391329163702771114931332913394208037778905706182011941746671852240398862727781732070283660506087693940594512364263822697853038088884723604886327075705935040391666328572969078281958921459120027853027969287296365302734543165602322804805550186204735846949123217773643408435342958259897168503771500127939220816434163540153233695163722700735219489305905012727443496349582834434799735094400151173018068743992983618513845843425413769113535969493947763294710706427266548788159204246299457363029877746589330931160122128665934449998844086622545893359670248455854247699553033502971158858214111839496417102454926406868894303058446322572766318294985494382926263722450290995134887515082597988907124462173616837447195949354376940484254448926887038588975319174737404303659268403914168421354403357207867471944170718737969782869456943361819263451969629794863151284165262654887067839584153329155337874475951042519416036614977050981658550924796211354934284265367784412742477691702409789665545803145586345676180551301525681638311223764456131365664737956205085166828835969631828553349642805130670779643559553203974337902181493615664660533601626043443902269108805451978410362611960737978136469252237857627263056158552428113413025371413452432471661365444180321815806586967162306509195866592395536490395200287086313275061029031547139204069752237989234775488107611684561235083990609108042610721641277542572182462332973057110628258962541849755817576689545774392931179564373259364391752326991183762173707174161171657019568711210944627780008754720551579128156386238838923307770386059401900906782805680173855360521892160617299993696904627202238478423037558430529618866164012128946285014845234802710661626314739846800349556047305564475561865281766894032814827530200042343015734914222496767626470005687007130410299623427797504923634474720416680344923427144302861284896177564192511097403685107623675103133727780650556716250564271366382846827384398486289387044126206559290024910316544729021403188219139341712846421694345513395732944769266036947105827072908353356072787540963593592125085571687413640365214361711577284478633660332965900083972335635239941789756000685892936903415054428331630522100863497812212610264987267736957045662485653732655887397389600378192182766744056241356019652868614175141568985005900958064805230104948228902248410504062370818550318569640951741972310805534524268415669504103485900643729500928924842426332757247911840540738088595114020327567360153560993303457258488513724896323534592364287471013501058612515016997209112844319619854241104976017476442442925656048211523467691077383316225005467447801065729627933907724261327861907193947619786125175577202469218622445254589164365540498033502928247456860733632027218619849070305154315408761140271162284795635407721839251323435231453690828488240188591735529237324840929321546493763285383642109366476398148176221105519804266111481490976303176852037735118225502357392380537818831932320237203760622509870261930772096988360125816204309998624809594962933315522843539280082735526551906217137760393218358604644512041733077042124297744825289633481666073038784149404280606514390384096641009367872765994994048503602062612443682718181373419261957990056661708832747562094609183745415325670810901945972457983282190204048683031892036117036906488182901429603874055206913812677270620450403753966065628015403802958376114140556720643238255630251485552558871696579734216124516016266914513593095183123245933031185669657400678261630575242096584074698385224919625761380896035727469852665186920315521149411442081302139823106197688929732675824286338203079906402307659920831705365149967171274537737321621745454559386378812426657565022607572044211470831824063294576482960890388125192290401829475375813326476270065869029713688512856658327653305787777606828906210870434762404880708209320597994564946118924362814409178345846830907690411278876158382968814077944768678606216158517820243777833129259580151126989514339911188557545437370026884473633212547824670703629466348883052785429520723629965322064765916674517102745108637916201025247625073378747264778805850626900795533443280040989172554453451633446671653046524473350424289877173907777753785821163529918088946211446836519545621127683484183520706026721217766327417599422054668497933659489943255938875865821258987540094910893740602184556341004033360858276983543778979061663726253729188620805627866367093619528498409141182238117317164711371102553188575660270341670741906556025317112194976003048884643112292614821520339155028784398730198426891318107930943366745129279339553612787968068931719716086866054573253333630998463657729522160476084706317127360103912345522355157537218553437220752556409320057273838939285447546799840207479157086057918871826978166096592187555741907862343900665535471248666115783583576460841393331568750091903263310804593261600669826311161210626340944189884200547937567860709623994259219339987002252571743942652101881636100449246042778129708871085772831978939717826474370371102162936379779464313373979126061163769626642178094113115752797038448989777622151921183652690560213788934125565027933129180584348490957933103879037439935471286089347988932484751584063227188876180495688076817166208146104010648611061831046491303573117817018986027623277414417902069658518539941285664146417661764614234530533133939899545474079273513511581651922899647977062078006003403065331250668493911241073504873608451822780165119914213198162624870979548714940216848432985602016246602764302738844763955131967326390494222987494910207555729625934407946551957008261241977101031537173359204420107207923386381238839088253737678049794638784301653574246109116112695631302815874308279648038043380156377214922660379557048874711498664547231683324439218354794096275526813512099328958083998336154990425581531261802884347344123848591236896194624165686982975115016948271205831478341421858797744155543561319536716343950447897344224355694559497170229431693347630207622281297774537782409420578280727006567778513399321684078900085127589036613198463414832060209890649525535839424945278210412238568335710543044210997881806574205774896716589711777103033904443357092684332899253145867531216552551454677271179714289973946955167916636829815977335949826647609932035875462509915360456292616407520694915715394310171064386669440780227541854926061688909128449008270333783618498256389328150178292212721204433116548390017456827891719868979490813244494117412227812947128477400409079439219055837428232952564423812122111613598482001103851303579337797901116479793603990825862022542028938604475995675451919369799865492823595631992535215705536050666679326590001809633373954655875445101346931039798460916998293388191679104265345299977312306552443706690612607528845782073091475769009933941674850862212202206228923173541270435976769996140328389946634843056893835933607511310061818316559213194244123945997648305176563526869584790106640546382593765375526698263604479451287936624034594286894188829495540538344198992588610038928048315683127955212338214795473503014211593785402512235167321864557727948387802818488764388005254305180276825988910249455493896555889809537528529604215134551467961852678724621660201427335417975837251908205124517208563303255819742855888375742691323927698832987182145663602742865643183375740797773047947522802440707933153581967918314324386674085307602125537125463081404538293553777697884388868514315552967993511528720650375982046934610683405290622567502195834740003025397438721583651837529122190891545041675115698581896303492853428319440183392867642998550840690740152166468627069699308334077059866485661291438228969383289506159191800429397727139851526031898551277378357663985263458905090627469994758390585219895571628133283792277085725555156686640751260135353558290540927110058800546181971912400779918051318024800034077777836787684078235854627554410462855632420468705888453561208834427494968282063338235175698470173931533810209233766895714058632565587589873343192045256051669888228144586145227450387719066745398111793722938249980274202852203609347567099788318638189870544725918403810744834914840792469630279705761138265982670419439528578309624545043683028922364265288754610923365748030007623581910505701290964326412027689265692047318676265503019521841486979657384673615012940347981382315933659793891468494020343320409514671503801206375347411483544222537430689398501957342337766297462078674548986442702544791286118922664855898677986082787663456630764157457906839076437701330580817636838230927167182310125127490818595799889212992143386922103811352575015952598238182576103748827717285166635974620374357719655171112778179367208065903233081514498923941467772083565160051378528499740521529853433789718193477113846609075943595893191192551027562693265341880280387085913901420244986889477261575481948028207762703968406130254344911872226072715053417971199507565564656173470605483010922495366929017191898195145658345751223883667694371985782516852500624086657839957065905856937360396873274245468552929621605885027857886797521062130858138776177549604198977835552029610651543334947000140409753783164031844099562185530999675668870406380815524811864939617774945614314076216390773155553542533940124010156419853216293598041420101916065519791599772945724043124367831163245850763925315989159843967544796910763554615231349829833184661545135465917380423776842621825682367757293484694119119327875069130428046534350405904352217480908947293322896636673057827611471584779581250350936146988510153042921032491842702185661932598469396473318991097026364317875994715797114681699928196633213364046100122534105754347870798541417508554335933673416911197207782530062716569189819456163885436492698141865683391713997379691565292509239883052853544080720258327895032383995284217784388532564165981277683553443826639127739721983177827468251766218044069727025707062791327438539983725952312674419947909118967036971334162950979405417579264032371036358429644181018656539169158208932853112414836173900020282822638104508443322299182970916971967601365508567603807060679113540234994593965994894121489990022183424783785324024104712033913056482261839070304996202034963631925414464097848963453663403630454018601279464311024006605338131975465600052465559916893072908357020473917729326715958691392169094050129657198091108122060635087677872145697097881092262606354557907786679554291522454678820708430327545412242711623311775041314602904832978151152102371754839546366215051546417884109049702274878930193921375799509673806366930486623009964644476454942990887765470391288543015928097726541674381275149059871715505761145664842880557036564162321286513272387720631925767494421213745662803849402049679572111778609669562222560982511448198583344122022179761561205908980982853126627238995703588152116209091017459524749027120034565720713821918215694073310755020465985410959393811269592093320210748237689150687699247960394540896877770156200220247015650324546948834222042057522473766309390947014025163790993812947507826759003251768981092823528217530633402106177088170735509280005277234798885733194679000085901720371169542675571393837462635546368860335262022876386279534094247301249470766582122488332200453458172135341162821787221930639283240267904946888292735222623263160236410192070400312377305349460005073023096375526006433369498550919251942918596005445177893137321342825846344103944875340057106414843126161893272990160671757894882454166957379711696804210091766979232502653231124832917739238564720796270940729393745052846634099510930852013135927981037093934256661487190292534534387732990821876456721192355160818230872614871671148628486251846844109120050026032862081627959206817903740754837331809286034840153063867267910489883627074019726792390705447080926591024262914357154538922443198745337685983872414836495741489001140707802757802459731386879918212361532068623106294803273019650266368592925107080896537293942136846208000749848424798114549602947284626083004470120075779379182343661341657643197309617242481801488115941404228630696974983221033427699152678983853577406490162728781931266188758363870446558528301250443039900337896351638485662542155726439442221903012185328625806468257449106731338220981611254231615216014257143585252810479439723047658498729670574988092676052301385362185684063707834572402820669605137716435340619553463118386783378264644624004939126287406297675118806537456058680457072809246881048191077105820213306593740513538454604858194565776516269525769303884266366684765989053570102298121931820504393360817399944186754739892757174578826986042171486512376266547944837869106168006349643966510890472148343686885318682486157431937889160678587434592210087493400460785793629618202371934122385201524316001815070503308687799631572180059204652784989514597476684718545065198415608587281274937083682156509618992392634524246669545457236176388736314794600399504033961856193542812176972615664240595743248114634462309971488065248114207683817833213483358137945848661361069403234114938015455890740361117376002426324850006467840803966112862374399025587319470097847369842069401408037853481682686928484036814928513081017541725544658445247907078456262878196152608865241313199473097203443705964747892763259262663478899461893442358642663046694563647403417781095019789990820705487618626719640018359095151844935746282641866325333221902553945087702484049159023468765283748284184550158968520904778200622035562965197720096630598615772082649703034484314226630751661465804349778329486971092416403992526211628276152232602126387358555313498792985452403011057422145774249951594157714320672874439180496281117955540681553205196918290543136427103695575608658906097954727397115858120161658520108425936594629060411072840792864656525510860578937857240974036957898685318261638604954519076500143274932908722258670014887899842290521799307041577975970941823039469747867210625572866374965195257156848485478503461948007750823091345154219022551347568423636305269394823407356017947789950950867364143176599062954231488603877890073156344247215929201973791451136158197542800436513508959667346460154338083120887469246994627861752370489802740329479241227395743395543652580063258793651105733163337772357618429152793424919627996141400472881861637979597144684350485385355674388713548264842302552342887633960154433027290111667799521221295291173615434067083744341780912461492253827527467396330584723114898068757352089509886645327353803287503711786112820290971005611440779438016000211421518755439109586202701952276540327953986190759283794877930802210920376783384410232479458040916782827073499088865234390084259605829449626622558928495000062319340044841886526510534372991432038306892375464917678670538701344958927342091985798335161226903279035337908438068248352712695693445026850887163034748119072092582101305478366467075909812159367096628739026405369485282629695428022342040504379474713060540990701408617968814876797719313526074388425256376027906384959989583418361956393435419158967781627832890043543769962006255430386836849150724451782246174686361338270243162307978134054380690932383691930217356674621151343131361663354758618261355676535141936297029602565936565709662286299174521700964401174267770552920704340849428924235308568827787775187841756709977961294681037815608247429977296677931250938182026249561572560253605145581922642386327916285325572576833739308663126489642514005317956907210650827511703396525206211444562032789959285651887453226384319636503736483832882217225030660742456012566587393250720750510369748539003367649722092140265129903647046380303200475572941878610265873424505790140997882430781740093070897184682571579196565328934187483805024244647259012215013351853212047871169405738176248075203479140093182151007672263533239376251798060797159180532848292697278483130166577708256886187964239733000123124591170049909565894629980891619017143205547217482641392800684113457307681453448353331312887783536465933880065344892237951619785538158420072857758837104447467091962419500980377781162281407328835288358472731357130909033447182744821321479660013118545089673864066001571189301223163250261950441814522611609663728103469538270303627415892156475586961828899265543596833417410802371803785779402822882307725387948379393583853199190716034645250566211634627852168025051534783984167118366604214335333154156174130720924700144865572896866865885826454513924503781477969667193014643836738172495784374228874876273372512933440932969104650371416884693589249119921678843051089698461453443461473552838803601407719900272778584938101115763605022644778329124187239781019187545345827122893703832547460900610984441632014365782808964746003063138643714668047398542931239332121095914189690723175907490482592934465280530403555455628039915482181161106592346535159596008784897127937265220717014248552970353459986350356269689907049687671703474205775474953963829928754354451275564030470187827967005400491342185006857047282512312270063288369290444975033578633645435265343747765757306610238285077302879721479149593382039766150241231380211363216386807960035611393475868010535222239914974992340475101445253981475648553981352214988539350477108097898880414236360308133177546961700062886581298140241090858362303558316636523838153644368032012896050413742537425283653246592114335148598840064834442029454049004433938115288635383216456049371667338386661334679467758258465281492357007872029941716035419422936584038382457195770562932261109645126139487780957725369454246960952705636280710526667499194723610202062309582501669266793932932209692681027838326450106662775756346533161330337984446516484748506740968611983203843599373030126757950477428292024721569759270768335100234239967263227420079175118901031442364475487913048837859778043686520494390573458211047508655083940595343209348883724348911793338385615523201558980444248297883828784951738022217347163447076567276617816956040015570324040940245063790598230626754674266400531042087815932297355542270175029450454873780828498740427746205336360935733171030675001432577954215707143980870310700901518406660318717504350714956771809985115853689311648692337774037527997229448994180927303172979709366051419082712340508596915121414489890896622084633094066090764002335022174418793859171062589088995256238022381420400548183951586525055863853246448598096774322828952083035378998456929149953749320237594244353254166045656156231513500860662266047173294514117266652084879600310877859711252924688171817265988124277670175192431853885802821404796803582229826893388274004720084041861357029368401191285032933052689110230125120939840379135440332037520931536162044888437930584438803857690456585831958004672430862056056527670538450330571906467196370852501671174268571280304828385859140339067955884013603838037428325907384199598326210500783240835593134593797718883639842595189358120699610078367259920215982435095715837084341296983540868397984453344945507765155859827418714322507230609077630687459011530018647746630089935930949025322321020773573536090165104452737965355327740600747136946003165640045332330684316872558532593787769875870685170448436131933028395505133854129907246617080483146422904738889388505288158059105918393607361495771957615277234885578065611562642522615155710928505054131383079478862007145601962162855684133240678597959665055152180434489567098641542158978750716610613397161846883468225287643099100518822736614623028027906064006451210932252842601843003078712487288186622956260363061174765862081489391279306531396209525456018873704041816695016596768431897322116055635997885324230249169007349231292804870156868229154908152817943244683767817765968444607780157110849295187511337513378224810776665873255708636171153053249389920267758830943400883226857339438933596859675451656280575986604333549097381855603308571226318025590823034415868325397648230482269792158554940375357743101818385526433839531706839070729966503972149624589357602813185423445811508356062038942102410696211074989546337048833269206166517663454436803146662528339248097591128403583301197474114641672491686485178900943576525832921345581608874375846181414734977690234342012545438847944447213109060427530658126669468768468259425488541141052369850261368823410028784216543667483920182893984163729718998719483012774032212829370994202732171342571601748347755280301205290740175852023754136890476732897731196705293236109395275755158842722460912028352272088454298154234630226341220222786059011284808230579466847156677835931237531992209942470252080498804017674233612058662059122626974758436177635916189571835071003239322351781589358009723756962559288839521016233366902250182252615925680965128455265007848925800048053867309937646382465764360155226210735512514032995480375350042447308071018311606892166791919562449372700149084409281132207329971236589147550559418778514565708342996614906543022405342199601839162171080286634668474216611426067513218188999721725742717462298630711841995359819203805795803140949384644369273221416501121418721582932326265387774048245868925827667850398265682712639663895016317617797780238111532523128918614530563831888393741126986727859297269672346833896535303890160025752609417771034748587762278561862478646662877970164022183265867025439280191006926522733506170497454122894577963022630299619382891019147929191605327269858907024749007728919928197225065813514267950410371274225374229729520840605145598678090884163602907748305260374164955001463083945775774910787905636170951617759441128832630215994404180974875751879705271404690478388222215666068088155478653076769816119774390614658750177429444701714920283188996738779920746670613596849323403277935247476448789685963307854019368527389233752453983105769326636527518214387974805171703647554442613958523174837525288007224621591189222953201252984523849913072535800498952012609470464942264188046621956140395411948554342150440448009797000320611707364228234646739766121018099262847488286633285140782975268988680558633209098104793555275617981618672057775458126130899441540401305371865188691960656366525042013329771632729114312847014560923810589861701986928434395109269536306310199331997312526219570934650096869811952261283598840501177382440993554728081787596160761804345012335833651594294602111424665608330547552283085666297068643963635690934271291232191713576425615577500532562733363619967335730406142804877490192953672968582137487076799479925555198026216066900576398802249052352147967454774099293800696181261682456097560590395035685020451632733984367834958391283305033276746731946219918270347562637176410361848747286570036726992789286717897027302019544729986955736803369675164624898321300193121556577101380351262618001447378715944417718104571402272361439332923873319992010608273675812598697835733975723534454626141803387357343251043640796803585365342432388782067657099348392187255315215654411456145005216144904026751109200299202389961162927457847665239288585075108806927224392089330253475632420101010730553787390070655758784275798452182540648562969465236870168227155027791305615727898952184151196975742763409622392840322775148464669155991141918678548931164870959976559900029772205221457164935651996281167728430285028063870979310531322632473965015494879578272941971397315988481483614823817480352106766303570123182764698278959562180204393596059811701086545832004161217862675359092054256340499058496767703520716456221067945266447052865952288086515865726520788475252953415592050814593171131586837508107886679293429162369133467901145554410997947659224009440966430271242587462676773226932147184485885557552710501923790646449272312131529221225083507851964991558968508933549026780307069753605951612864492271926555923673195755300246957673931565079232019164856460169582735024228149305414952230844145705508351156855856150641083965676355859869632331195695209348453583745506856846352645303224386042897056948779516116435814259841090897730945968339338229301284656239030577988552061000154431517845178655632062607249516673892086592415728512804256756844507252412681173269728601720520411183416776627046804934757403225227760717965928232149780645109997857272705522695278551589881280027747364030275278412096908533461707790820818340940437706523251539437337080096158683047281016265985093353978907151198407066267617575897512335616356688018386206448239271644377244154360784655544604807601680175855044777858945466508897819866689986653231167167223538820479118352917058519365435103969256993156111874201261463157647654017412461223073337707071161392416992101480462779764810785427472017170888047642239546965079359136987724027353880791530856373058854600230520025428125989714083687456405882195390633928411638783488773211248094441242784494659787151080595574081951424537054359902857850431772814873114666013145151765388547053046456027521142938164917341272868708465167483862438743934522361235104872089463699488963202743020924350332202998651234104687678847985381042393118946862392063538892990983998611604000541592114858535795724757025228492289481487209444100748800725353897580587064603018710624392685182237080458466572940322877733115096557227063554622100885822976772163609681622104063391813067556393200254411290604812067780450076848114298730230333018794238072972223917523745400623758019078578595149043640880182744589212831169683554740209063811548038606584314623209109132221960545939676130750357462628769798818207622875213000501248939937919498633795575935554750224530161070230523259575509676038827419891994164387043525148080943078582841146521888339767965974079534644626822302472585687626696246031919156555990172039190371914150623430074002976036788525893445449309509849113458779389336134194838552264793937439364964085682760952445768547056729397914383807916172029462033976133631146498300927967178725663737537555205878016803798077118778011767811414183579174085308190690804850160744332729853605354152165408303877570701104926019501243235707764263529008853077464998156828086949021646526595381563387484278590247202020291648254193278652670234303959185249123441341111277700154377582768911195091760376703155451354031685425497449410426960948489561798217756660149510767049143982447016329066772874695733470657683787925385377242014945005680299242776768951857012080445639036904739259824369288143037908941204247547758107368275732230065147059356907404398450810041493967317246871478149737631939065731364243218610447760441604642883999607305852161674727886671498215590561068042026078216100985378576953636932683063143813099493448401549517671759681941572868212677395638073463620484162143158254336945046641286558463432629442669822276888591612583727179047940514667520988479607313602834070640978540860063604060536709223247627635169273147976818494427047534549446061800930186348809240518946167121393138274043700284402773996504732582452831243342681781480449026210276211896020282240710186692766760240155733509382084322232154411509588962778619430141918526974763532357611733099631182827839628734886765356719312200895330370569512762874139809013438858856335417645258145655600692501634602268926665748115743626420795077749079028878577515217415989828995189826765719119450992949823237393159185875624273952365280821009948427910337059171167806968046840087297913962126761042495509916236950578133784044563261494475258184179933420963601488588777168595075248985583934039312205519579637992290211468570077182748871751428896659084627206908540680439557943669775618728928487147420790083083359816695466680766436357366975424035520473574014075119207305382016196127169854843961881520837783171670875914329570211416113087356241750820263346380988102295009571754643020745001741409477271530709612580139860861045076590713805119335405985789138669894017487553139660753357215015700925789995038088941171367195361431946583440544816197936431946931331445903912044328743469873910332787925384490848608316697060550122862072821921331430466709687248857435207923705434483941155279251506996955584532283028716797625735360678860197005405998366291362618483018892482418153149371688061437970465600508114564916515377536670048748019458423365200370546039270635645957455846986778079965599558795795295287235380984378657369620096680562929586167968288418363422674870691519908742454564963791443674826087315246831554959252576470237684550807904996392713566437000536565534719194905255429914444246114435071637280844198704434113633192000657822055032598779411141088259784693284554376511296385089155832009585950804281947257864472315810637848263500348984230114463879812692657938729040517890706179718646614439519120527692006982832856983239652511407347333390394854375871356172592865403693384490073835694066565823587339555123178004486110866914731957632683079223572668830980786138680375113875534072918536902123780001588573683153656236418421869272571493932624557382660801423242790637627198197187293892655991953137444519369975232667393762838003065583216899301805003313677903001785659406365057911761658209811774804262953827458810675156321052318035909172317126603347571868367752461690134154825701188167323261862779351596567138289099886441170998696175043172162767628245493206775147560161417379028121253254839712403248943104452420869903888583164446124122769329359524679619663071678015816843508886471157554348462369276007687671183644657160257267997963781439955158570551220045252225340683799296220368798061865633734070448129983299569177741670650757213088551886475506026609755722664180962086007316995574003853681781195634321076082921913757443476119933808311229291291666446779903028763792913477505068330043920786198201546089830806213109220307002538416033878701679875162070188693640127199857249645401585720525325956328981219137506896568460672673634269633445949786765517920801379147044765525512114222860939620027414697100535600921401192226853344930595753342667559217453224167982184516528313788616441984199418572545610470298517489911626047785844364349454450906030116984388251726217506310078594051545194081003964440250818877138935612452676731484301144646801966211019614310577401600372670327620330486885702185638234434967525593705178404209668472775488630710436906809554171040761148964456242101629365380946271123025797141107334087318667896258471000948146115756135783872179603588060125368136753634678997328466901546978112279149455963269047202375738188787559013307192628775480486559462379402012555230704168257288925921305889035648175478113321137080559599434235213961329285038566344821555104477397239400688545984775751423252720025020079962885648260689849827788672565814526745402458347041272754229515651430383652929734369160308817907521187657192750221724435826832899706461667002980454230245527014419260621817842982153132819421350862584028319994959019079624009664886865321802404100940055537704922745686671121941580846545512715076322943172274439593440129643885144075064477074749635654826415156401062062938226473905811415164568774780727117523208949574398968093967457845360683379513658775637672364893440948883681133019039377023527997331797832455367236206728766898402414551154849812474385467210980451144436477073972505109788838424649491071533295749033852438423417706195305441798933197838836224348748764691360805203493088942735255421863264530456490793703552398998091050535048640839278863692674315919011261909941315558920907637712036400230231693256727952122763300767908830692531645664934149043153314867028578435824143233178366945118585388930101625778620612325921315475857295046380018065347758834919575799484258118261936186036381528484683525411510738189901290532893138834802049469723786501370484786261442548001872629791858378043049940679728189939354974576110109907274354888510299475158002090527089509192911040118658762688892115335400501566970454577705304010389391601301396494632623158202325614962576779223097020729606843894017122500472875046370511725820604828185883699471559434555477635081701403928263617421357988547078835411770429390264782762508531347357469493032447260041188790777733285496462222782159826640835699761248932069604383783028158326504159551307702938645386539942589917827136085365809165738126655817035237123910840335038195568605287290454319240182491983631807190614903385293555471885534764851624170606742160460019360599172473110179946355569598630293091437890534268480629588660006294091960825984256719605771082288022715166588574860350348841060120427709410234262606887870581329276427326218153585942896271364790287558882687100698261507489700217082032209703109618387524079998646357676088774462724368302616076432758504775083342841782864331709175974697360783936505948804419774352909812284511502919984041157229477615115526793285744934141497265003249240696186391006759334788611577666028249797657613784720686673791957379989336852307753603586474150886148609160933455387408790421530003067719429534331991466863480047480559502309154172972370127004788147098272653158729546173738803482179260051666446877243386652926057559980222845649657633732519316961022008940215456773131284950273680357942021888983028863936062354176716364273107351192956307834260727329609585077428162798037781721562651612982283856144606256969911923882597602198961292319688375204974867421285833285090154743223022180246738119070527351688037658151757635748464879465984075257746022094563188990550518940843846719119650612077143908232792342646985000849726435872275909080758562478175807516415024047909278238132614504913554266219435546622103377795866922365296850769487806887853457690800248439559815375324259199234634749294695966727268157924354506036500006653269308486387069422983300267955021581279303708640918730881147882107669215293104536203095647659389624387576755907740484078483271466538753521513338272341324209657769203199960261383068593270617152010664158002883788280469146336018129715589737360788939723290707675510958719630639469202021982140187524397759825113352814841430969252313175977649386307118379583678083040014203108236831738034865927655105729155385594929931195687168389801798889942533546030851621976263585937292790988800978489502311384463970373809279894288201441040333512673089561031514066729528312354483755190566628246790430846782751645663601371685329937063145576273005572995976697355250445205713684805186433501297535713178413057824446385756412012457494779027206711456966047977670011262538826387781161929717953644246647877553214945898787596172501216884820428038724946261326032953188283036073165269336057369806692741174582176657161517096504508417717254335046862328069465720611639449571764335418831386241577820784904993163140838703785166781843399292371968233680692865202035762496053389412356793628932534133811265571379427360922156897938489179290256025602687757426235517921852087859723772612340075897715112369595887444158416879390126592666489019983942084249431440301660220897346099885408243710478928860995373478159505193801393617957456219414944572593001164796437405186086751902815574300856824413866976838425946835214419340220937502194270578315467148763685995120819401781984635546047894525438648573229403485529485173250520004126613981724226540591319193883556720174810442796222193399323337089518759131232005968219512104497967493063602983189138470487081446312730749030254891979856205419067892149618260162944451112856230524088114761758909599703933180012443840182167878718108461230253341232553848072948369765247003857970449279616412213713308665589996640422432264707106444785840523376594699319229688870666812759300994111218520762018437093761922260266373304448491880663397057195182634230586817704719162248336633249417398352107407949694044848617919818608925104617565819430007625373972933193087812058281953546703521570827181176385351776566731973059195305631113200184253215622506459060135524370864309443611341421785868462886749075819662016612045609855416597434624611913599282571010223251848335160678693352417376926051439686027829382025723677851686716739350987569472168657060893070844634946014947220959640846715310902565154991778324803504918766832616530043505221375910618335228726283504595363895351563600578772376697257639723296427247522602055146765038133388787954377898062308572312866225196686031709353488114784113793936863299019766410247902559669669055717049948739670728064411125174965629274148550119271194239278561335935825620759151503535033757141576396206980304334652774482322161722973836173986405807266029112728904267650247965930224930716521443391649466946281385061188800335602878310860324619165143878486351548095128889519239487031811487222584245382639020566194804720073009842704901989348774916151170458229512195590072647825518566676652382339361895287038894994768771923743969516174389261035587059638599701998520939734867074254507167635110875485197022795261694887277780918110410441088948548803488030451251148893424261149149606527790397716885259527799018588087711532309698249798057394331035172669271024279001513783823471462776385806784426184416530057950985479538904535155440135131443382594861079980244730991610387948485674838975525688975189266242343009664730813001332943119812395360888964871219149390863062890758578875994143318219644026384512614998353916023451603863629742809350704863305903177779609257420580864764420682772517084170220848969815599896857946669535783819224801000202575236525843915766210632619715694896181329873867064034166368452687958599906315757943340523857737690503881237461683568951415107344418112334990697445582542909402799974219059995456142603509361314268615631765389407377070945856917184578492881226921422491707013534511824621706378664496214493606562567559812115071604178658448416851786125135981633960997943045697785824836730857047524576667091785346701833448692176702952187939898611623017585529895725367452837086819173461761239135962189507775416120055091389031844838050908998903440588900303079509379794937113897789289301433119090779110901870460689468438103414600793643469300881507782641747444150399982346006661623268078283403349584295893273920434786595257235936432313827191841790530239844382510014439874872450269372493908890911149020728012919025754099254294249167899845654431533846730432218850916213202783190902602417217817471974491780658232644751851053094180902234065882090298101459097137574492428904093660601764214966242645804547621436844962662203047932167566919878862789901368493464018750817205574765505842733452494899741878119559887235015782093368472047141648554934233292483786603328968545610123008982435231294174926070271982448041145340887896059734390013666983533050023621632310889630736586903712884278690602583868169682009539836304525577194019940528406056361782802340327630981967435434651764793982214556769236200024092501004332022276844792451554763891609455904786695047932650763486028880026906383123884531369091567898561680167014772073403894349960364922405813700001093183200835422115388080847073356302411198043488876130798277381932209405400655382090379886917032142353277760492631562076059809231075765072793658232488589975798304553376934071274612186921144923454080825145471556852226531003132244641572409921502432176675210316616934661311877669300322883628709201227559596673288084022633332925261213512121626837786806176685863503132296414342172266696538452603371010621803945489207281086270442949275805396956995377042333031420464840998604053205784871300409574258918037247574337716234628555748278986634802877044442165317398978024617613502854940864905829613264789801423022734355568345924680802614714271519941054250175598407585754478223519533091256791381006365474937487398873128386525971471264672417270033733280166318880417099390241948617358478249119266153595348301200251629413564922792074965577944049715970853326475507515825364552403137412883844257390262719811243822813613510309891884201430249130583098251103414669503279909665975460184092100910800133891361660533078619671905845328031327182998077518213308692944755394965887701468568726734837793522239955242704541202917039777618020820988377644409876712606645965478623117230463866065847442634481560034567514057235407634431480184755594411497033998717649152656887948565842424817847069587967693424217946718179365839111131996170890376684849118327329159020513384850715275893699050455059918882392427516076682408116260752215694767136574771452217243737172363957872231490874756928194517265999041860398500735050413768906617676110516794988546559308701032389816277047875556224410120692596993571963556727596680406224363607610642659485791259872781664486665703067855968144697867367042799381912644353917048435278363008231185921899970411002401843853588822132988068321119144082372748047536238305560235704377041899704641106672499013698901755704089752076196426474805626648277940830832722829090169385403488215650290001752812481413865224136571758340557624248604434062946675472947665229936520063313409372534941413637401979296557990070328289632297233398255746386267171305164042796962344845919841681198880123440278967903296741742958428006255819782156138179750713695822976689557128395882618603526411727846262444613929872319802108767275067303995340436119454073469755058657641700725511762466239077630261138798298781211636746383072196075112815607876201779451102610461532517203617931248618356510637338434787270529948204098210977364055069913083776415544727502854652017284759783695537923786869546194459494574346363624115152399890666613839283706423987577964098022100946024861913006657135412781659466921365922022752759826058077752456038955145273175804580852766095311629695693550254810511720804013803728242021548008091426530921698492489999598264126243795763211906356401540155169346295160281208519483819665076102828975430693714078892360299329410983224938261237955080636170334457059090002653507439845020297880805968429090160528378329557948016463252963094769625178642831274683082142400053324670255614418780174037708750950023662965638259341268059097031586424816316826119699140929358281077448465222630656526969505410426295504396049509373821783806572722594306364212775985518815359445556986528032841579131694133789072974726527388876403016055076777768155434914438344741895144244975874702828194362019064803060240518178547780809842675364325504321695418887551308479753953259213915625281513984259345867281921055861650664238810367373753033232535243178490986403538972192642756301692031892181556219368179695999041648505780584350159496213289992723746596257058442318189330456603556512462092560621145206344617268246952169050471776884768483763147501008169015663524769598712948193558386830596790237753937605323502032750329903239316539263976965274798531547583232253589651278996548720350355338122725479284879094324768000742537593579789704072752620665293120469036846571978584211322371625849741407246196378141220214483662015964819565857572520126970569676914791921093083263575165510283545782311022841733725030858743436959340597586398444032163640236702801007853233287391700755882089437373067920009997842956656586467212854342848467527062208451026589545956953005610590604617086885159896561936511315677841587109081837041250539849494593591552674370806843740486368818568696860159515517416658417014077254022672814471370069391276853999958447132883179518084881284371346035661026196338892528456872008572186649531657232840852865260243052830326459007748203452699044897081962758774607817011896765955637941165195217456821001288614138924867071132972199872616403115552159653065634224547318446520983416434310675779979175970645440404540700389420382557714854373703496812104880511878075523437223633243394527359010241819012804185893203055371533104917560270851684177811747644569428422979700479325571950582654793533013043800836332664420135534847413302719563969871175369555901661971196011510757150443824594780396263122167266630234069044419804372991156093481696434769144349182087187705060639763608554834863318203308134504618814667848386139667309968985987453974799693097254666973383589865093919740936880581544957725552467864076734966715498212723686852952590860844908793738233357906754617979248750683764729027440437388519983095306710154859573118972245094431600193743741651990194096735512828505347569183463801627092156397036654475664884840071687447270389519509234625735232235337037813021193329801556181459454913710074780520669406644816048816859819483718827834954708885721766154166136122144553256936101025294710939881943616139374793372002370701698477453499012789065833891437517045909513037080898601505151465331378270204694129826330828829025663845508267047002802367159441760493399040284618896713225384069851669780549606613634629877316213575938089970292451430197192115427244568860846775839941143175830764921532266557636855405692869266938398079264168222840216959096553620623185497585394953444953182335607631483182988085032754079356621458497083515650476294270245980112541018243827864081425105438953272013549467688695567144451949393033771930206480861540269055882274077526850136694170075525732667156909454593402946429240126369163454737279257108114508587216785897386522567671717729271919720052033431260113190756362368959364797313710603176785816481713387343177073482984271311999893135737873353185905902057339354144122509973500290665348433395446149227556701129622278366118089826835876253086477574177337608444911393847318418018570651527055558306375419905022712168867999515116713942854923438740216835584294630049537925923092382996855312655422464149046413210897308387090718999948601725973025627371058075167320153651862978627947664347555878350681732375105791341160678046974574216498054976351536319920641343777120354443683852326627447550947186284506464884988016566349786531885777228650038677799111102618451723106563423406161750373956104248232171042257315755982531330061143845183206326687056285857899673167088124597240686427188870631458872549963997165407582171373385274440435708568684476786664820996368552650846200201164733480507669766660456324225552286945637421793157913942287095111067089760335109575817299590460320331958433209654903685355774618446346604880102648098932093289946416437109909998672499120019002189049446624915605720406116862481644262353759593594190589983682899111941891888310388815916826500376486354813009681719679216414952029084962885322951489069998939403480926815955248263770078645301783370537539400724598538732023904488281165090470102600715486066499179136876183356483976464105939886567927026741070639184585482706332055487065166064429274618713366777985678495215598940549273994337447607847572850397747263193361444809965984794069167289817909307481595848983957054675503164606721318703957197746078773311038341181164555058310840357362261714511793342649170673584438149775924351848676183659762007560082048872324061659566135629165923097678401398841934067593701386236105581592877108369599651937140016902087742339821718372363615463857113700862029407826363510281983765081905043834512359275752822933943713492941844171081644875801903897861919761421412281805763018762239835905064880808617525945299776809076060257510890323082880815062149664466987004752820135753704966175917742866163914906313656515658872957812823401547021161346259616475420304506904860231590766969185781536883843596264227244831978308624504013420351454052049022765392463312953434465709515987762208571315847325823506251922728919749376293856499334419374537064513513258269518163000748693119762193732469382969703544628919761650223928657791217464037087501872135917238549759754057650660559236389313073366422623580469513112031036788934578147098038506148452842424578922996968285469057323656994661972445736538677479906682719769049649538169019216990128633240630703660526446866316412286000538109416737217844595134670434147236244145848734715299600953535998209353009200034087630835893467175061911901900736521620519922230003417589772207881484918542431133306466167768811839919995796622820100102532464019689615725856993196717144279241347298840205693954615029157389402410871458555978856250545164389105454636916510194315179115256388141135852085504432566021560529965638634113035130497122616288178643406123024292922167367874713227518147819688129480963376534307140363441593675637518914515322155573943322044279185645981438648730953924401566318074432288788258214961113261076843089340517462396853446648376994399498763402415881970333206462557902247605160321590548263722350230681083409582529068704455241046222099143795999800326241955144020185728135467559827973281030054205635913321287673703572933293697477888636463899309016058647872019522748108722430600525655750041796267959842064818087769493881492508538845601365960088526736391395428168457599340184878810527350756173283014999710177907463234628544702573263160842881602252944498565188026468714635949011288613444715195726418074558090929530618001594191229484970122930486561006933286037888330344804770284041653621948214679916345617382519970493942165909173864246107548166471101795481759868065423228202408819461232538240919811590275017822638939244013801066146518868249238463822489244614600935687980437163137591678919800394295014452230244859905508763850347157942281933186907673794115165515098135300634969030190336311161896041605975127606625119558278731951115216111000288957125556820953443667589218208680347803393372642638890986850916290618520225251986606873359096767802497318660258597843720531638397092384706475213690092264538424853663224549122316292356717171384458495584205231386871090654370947887248704526408678619157339820229167237678502160427592213223504548252030324043953698121813639416425224848710571920739915156185727659351983107974536064548726555650920222370878052459108703421770609603242905770648916510112818471686917031975269751240585682934929840258612771274604546520230566208767462357577231456504089989607179954753897327375695228813177396782874999917096345996166690338287503257270418464996006795348818006398813556897275297794073297730270694127463409771447104891830655438197159455568975840583082152271231032801129162173596114101591383682636474993712289439571376435190438356862268703253794699266244293105136480703710349349776169533678215482979069850418129502615714435123747368664114610736756867268364864704561558200679892615142468103321870294330967514108794674340849537565173912536069604925725290813227978060647451665411372713978591481420613803649267783022438947724188494741913201669287334386128454043943819255829548683564164815581645418142348196230789850883187076714026492545418878281345576944529002045989096556436107498364169130530067382023404730425420768401562034908999134695204845290854628096047319919930928133860294415386970567922864454675399803737342959668878647543752343150571676485226582052995629436601315390577108213518181494850434106437889499976597580251292997779902992210707627147759821890338672299834153673766936846453485188079700512418597771519158597343320877816254990156363264037136207235868780393296729381983828298992040137588743397188532128542386996255980112861110341131264042127011269694022384727181285279924049514610133759246884735830888110044394430810257921330000790096836538524390941188510151099924116561195283620220393871005788131924927420029413917457342744038834777469090488865424227229361227073309863450165279518087666273478923045161597869782567036395982524863902658868681310030645989222633471049694801275753846851377883646703609047802517842156111630875092304596796697748663011673469651173019102984894142506691021667236907841765856308769911469309421752802374173735766670623005689425162342399509764596656594259613250402055903928249242253737380381982125791524561111014107100515108212291398490618325908633727512251861320798910751108403934850736333805459859742580451940106719294484288057803471877519042556669894039651984547510729425229539453093569349468788932516827579160843293217851186950334086809567385955352666269749849662587483442774349132732107174172981493746273589077592070255616863851887552070772119237372586185222604028143353737163987400709730270684839478710827571355660698345833258850042559607771693680591768425592628839933769454035821897929057473695782762455337476416192918953283321333864643270625966604964411917069066267938455038889604902180509327627898415449202603072004358079699968601477668774270900535859466986436802778795744314196714770959344035073241008069628657510130592067161714125433078776802673344645215820338166063908466321690948640353195349984213726263711890237292254022347695075535839493527832609499520795492672074250804080750200724450212455301649878037033954001252187686395412695382040987035988702289609688542241733709094048613896582325205269434102631238710766171762536345175492577311793484823865253202570298919487948070045030211051755762033156040819477192658747688212108866249283343689143900260428642180814763485357498675986215604948398475369738173079862568248616872538182897878572338688256942692013128421034542183941522542989553305591729587310023871457996085973453396844696370199922078147846850669019125769413850191325785743816674069332564411213910753026493736177573242136684826664368670634810014951147249967411297123268360746825237140659768018109756976872953398101176431451120678653664688213615696013187903133799765875722175419385166445554845880756411179673139719862022409063523394593100982849917490919517612154901074035624009845098820689559481066832544611832957974868941124406722810912473852102523956585008969191054541350958252751342711233037345598886377397746795173825987600879824940060253343479455991966168474390132401053685262843769735327342347964258408117580571474638536566462695966461525294598794194075956139760870403458355669411815411246561515007043393442246135561580780015986930799195674397957488564583158016211124045169557784205973318628435100130967864831815794252769342857659757402174526012360531553939999284189807539088567965073808552843869224539330809481294134868659510776100313546698934200501846555148275273810329150331672512862097463402725302666802156452531039725014028213785373945941633243572052649972999989587195286678221641408400701826897540518322804282729238846923047092739680910755859734561744871930871253969931137564127795791282991016645417919802939112430223776988848243253705548617409861077375845909035686714363547252461921426118445984620968237789043002093579342469477162084574614918762441199915840391652100071265802843143040763695039963124735529348729137013718593347023421714573613804426668326280455926348058407090484973050224566730378395038795793838474373463749527406357679422957109988217739967821889152964852588381267533745055502543577707571018640006447031685099959781458181235039771565921577124085732044825299702252644149940779809832793399572025750308069919302940663898248677228796866356568236442842013507526211529027832161945115118495632605759564365551284529058809031310404970079280611717200582240371265376227750819330727540589387699900304917267137575639570918802281278952520673924267395157894899170262167855356968958570334515938367229196499789491889100115907732319948464034732449460919099674870211919105261925139308787786911800726352512643348805811800716580104333906962868474960683350053184480459960881183872827313939067256339502214594767812600077712140619903054043562294598641847772487486212278009417248928552635170307978462289135355389235326272854741497015413837643616130062587444670802752825269564850663351687050659400889828827811331723915439054683994117192999726643274922194522589804629167110405592661155210881368000986319562747635014986761442771556443914206304558216007951430866340288107355536766509745623804688511112362437377255631651250797723674179501216642392553457020817207911951829446232434318156250879580100279635703524290052887850379516394324459631188678825913503673718171241878126414077005357194033644799742642226658243224816342076922778893765921502936887699311898968631656341612112964099715174569463217247616739895396173550009373744280580943038848111995869790300296944730341014640834182611246618231078942854890015126222857363142260056417830114478849527624554696470879836412157587871298440548917254502986475346283324868024380384137057669792587476862899008519251316610487595375918378743197690791339979697421244134547585864070831379608468947845410458957106508074709467002888142121208547519677910161502768228858134985340556024324921234460276868032091314179979689289966227851213221929395602252122104138209234459102156920007041613319877593420902183924550822140304680583354028273163029540416359035227325062199661262640646918595136793216899128030565987353608966116067649841282625990484360860366871495588873833711333427077643385501768114974645598389112957237064900787565682592831313574772471681481518829204209019058121584747822112785100690459352099730710187854938562781947190340669370732470338412205029565237923161207725735707016475581477833658880034874599553147134362777261735336386806213924603766250191720610891164130283780372763742335019436994522804919081876308876544260202160942300032293184374191474449087662870886505995607519633203036572189488699369260060704239381863939002846963918629859629948554861596761934071261614311397848021184616751578162504581526938711777972087068835265272043603168848440699188581466804418809071067426573225013110493379285705305572129094679582101440292420406005080645589042757861669126929979923879195075864350696404883425581730735391637616639851469180696905100206868133670429913269859697195480340523445789607632380629317514436359127455347847758113688913574244363400275297902047670612135015164956036770604944762462412240295811088957998273484736683096124894754752027152027609727071426430880863398342487389962498682013196798160256927753496260406253601588756368712659699411044538333365715334789434533580336157714785453694476307970936289549760137126961180552175152893163159127192149263233926152924664372217356475722056318184593763163136453315734859050886013972458367496197015011978633790225360902710235569971617475621689510516121322579920022536150184662728561707270038817026961728559733017009945627814703288490046654659463997974304484216444255060326874329756626071352608473581483069834606153340666964042017738492120279020257528920513359342895063545277069337266915955338418209795271834652083040187292459689746377987929031028010939524169891812884322522965471417423270330725597053658912303953794204635086714149192239432440034182313018097577100145136864654312127869540764418695922047804657136568591744899964447196736870181238119880756029646664550195524538763984274653159362922327412534795711970219569341706606669537222476887939426684233277279820786110425418779527391770638590961149326197240950144166249815620863590539474425521564557875168502128254320372640854960146921015943090835116736237496200060315803425588496862573854556975515768377028542673564637163782658909012978556448383551607651654614823514238130923804452524152255301472655271492431296800918637254490628647208817957514220863602171935271234185466261054024260705904422112453126018934527560573712532409398908178122008708220845249918655483462090137697114835388146839057467444283318967861970690278527500053622597730193733604591793692872098586672149417922642113866885907350598299658988816607447389717851008712769280816358001663921401195710681497372152530895477035059377119321367614350029557218057872735054570409350442245353610539890861687333539670854692879033395029643271046802367174951371486376895052462270801809514548917409931375707319797311510563881478329415540689428033697464928551324115300085545806960144362555840194855029807393226174916659885777156313854928714223010025931405778042149939607362504650633689345613952243212001119079039443520400005696612723640874615946909768963442184860532852599466302858452384558870158078709162587677405645746668896371333318131396382001034871365059519453848549268719426636559536846305729433113880332147140717062843577684307801856876879122987948755239550306924706515454270249510431876102207022191697931437194162356105773083468924063358889851502649464854946808808134594004970483865249125933344763397584027452843431533025733503548537389748935751316695450869582103327810994160640979095327876542785655816981789745724565225394783991346881573073147624720886824017711857584589442804620803738167492677846222329651636836750189020906257335353083279099063051714902168628048583825888524521331369159464128723721847522209544943067724025511218015441517459730072047290246296979024880942209213198164648888127844478423091748056470679120801957724286194541811952673495820723807344740285507410849314146904311052949043186980836158678898082011503494197203591141158809229916609228720250395631352084207418650347968780794733955573770079907198493204763347372766190681341954623040910970386991364927862955214413625172232791537438739983586941683129680188863948873525014734645336781269585924790747864812373328487949704597740776166850457981403306376245003613159335778775564951486543545668118214158197191062218418755613883613255077462117760068872426564945501516390204004535804789677416913926589098958714308422698194217793731298232945220091635026790439805271727366882226037054645041624394961875462942166349769506182225682548163329573275386520118576491198871733830935496704569943779145030526603520650050366269217939883824486252255984549487282537447806873458366891325229503493502681682689152312772950372939046680076030149329177465635282296267617724137364151482430565075150410501986644233885976166567035882275288682083216843112174753114219390428702354907455727153161884588682599931206998868061661779460176514307354460512024438671784208508891481291606138523427882533891123296149256195131724110628469919464652653014328004006263877943117573917345220806001786620664277674151611450733616722622183395652200269412810695069444510963829838022022146182606222581218869492631241685023076262661926203646824010504721243056847624193869095282213735818638128791960558902360695372295369788236860629353028896087867030389525566432626003533224334142392708669982742547262404884953349065100087552093558830543520910375060497425846561230229472217944823124942580263169712637225156440020152707815585007648443855677088888355674989261109706105093335504611606177982850031379121878585855886944197634855405298368417560933135025040224909481669930739764583345608132537222255208315501792155715424687958967838483786433744484265155465298364133828474921022018527800120903376173394154632061950650077190743778276117856340209204166702196564612338656235253804573141875961241360840018341272418004794114294449564484831368807300412177277538721875322723056625325265852739122644890650438923072010560801688745040268426826265859159219041666300734624871668804172646221313363113930432166537576802669010199489277095677864371216876110858107161386142808689210036373969737773256610276787297676179445580062048879708644142076307633979886679594717541727200765547602968291600737919811398614313627921423654300017969792743016897946234781568614009536041066205554807554856564451760024812859525930380305927353509146497689006936960101123095973077542724067376244241805869483187698452837414900153947426664645462529733408080648121948604864476264905045541716649765118752782664622336322035717454436627683006518236316871816734285099854782558220219667260998089993523699002799834533997512798120971503663997763768402887689280959658078170478449215622680566723314036998324908588368602906836846080116908194771802710968690527445395047223839846083528579291492105492708786357153279006396031871700485804332595885066606980636168230942507805323248586409761128670614263947987281888980558722448954011388726662123804088427093727326988723390655977573249271373997097924071865401780518757984491409372573977285509883828666978480768924311723338597443123901505846705656327926257981891238137842107230441048906879126687196372592043366062901911660260681257505489697451934247281168817285485772778859228704480343421624922362146913337421017246626256782923712931713345410222473927912471541080805640270563215571166549251020915943259154167662069406039328437541282353869609385017194408457395521110951780198898738230623617330670423668352038460216946420003124394471380740651964882040798058206891332743914672192155805008209151699034723298935947562322809753414966380103688377641705039199246853176444015216461449848725533890881725913960907460883030341717998804138422635371402152528841142364371723511741996181433932438888060353279776053188692819073581534012940216551975083435536232184457418743429345827699704124128083426126811030094714850395649069566222581027604989309056818893494927086370461231771144345483791046170464626526892029765433522192024060422110399934571772056177975666259060265418299029837754070071436201098970839711121046636897844909612142247802514570131025487213080263305405437461909121292416058191738649802908975037046389521481045636194079171278132394696652098371068196214707881277927927009112510003236442460598702170758646886918544131611907411398898237116328329172038332842314004444992558975583138890733867713766443399659504447125400623087472705858547403762836112240775585721269994106047711112255725124740856273307310531790761809030631959305280707943744466283301178927378573223234075877307089890606912557920713431887087010158284226209087718264265871303031468405875043314296395425389362902567396289676058808100024578435149634129346837380141831699078491597280115488159610006870272535652337146617450807428042622913087493652446616836158015983380442603506673618905053346683740022095221093912079319703510563658610557000426228918545632631777262752475401999064135440382854611644315961365411972599756218176503370532953005410862299676752191626987227515422863533184173781322538091333212494084151047436712242826058902821383158812534559708009057815705118161321381572433894297208217576735827568241431320129906982279691838254819602868094861216182407659722257081541908778244487920930689837079339022772887343866374127526111437013736690567636087009505038917766361723227813396851670805436446039750904325667111837266123737633859890737153945399464533325805954948786802258220311257943972547816600326469641190917367015883478685079535407099504929738249902213008304556865074504990956576861235729435951580396680140409984772786240108782795676309095814586506698822307093088365968221433688776023775322283396878540030645906158471963646071670491012877583831608231235918132183727501842150951263664219671781942097462127865155677700344598884910114508949142559805002157055975715219804378231294791763222368958693318024136569786375316678718869915505631688108099607666487491966463050328918514951453228110863954231528335906078543350780423818916795242033318919292559444529299832476770030784001039774004293120283797637476602580893865377899098997287191102665808254516636125605166271037454574270218667588466391414751091003951370574049533630557176045221545410947269712691149691577962246275656842220277221306120707280541443114617090030088895575248534264384093682614683098391573069519402412149259230212344478499154362297647162282665024340365510711421782525006797635361150546210035124456910398135231746316818304842509134578329706010150763043946099489764012190058024001011408394746175630577905038094845010884988880846404068707179520661705307293186520486443472104605513492580919370565891558529308947348498799183837535807959696608084023965191771109849696288024569363129669975728802476112350370338550321406607006337426285059225722414701987091540822632454882600993220318434384361180101540115178595484077801914491602480881294891040184558534301085184211480291937703267406249647914931164846707015844333257041766798644459908097692555352110350152055617148586550666522320406317953729650460281666964374913156194075831298846704047165439624268099265150847072949384328121056135231440147700254553696814805153982793688652763026239730677494754326272004886662714269734105804772308658301496445333248505234770057338845636928929143722193645337346212234132334970403390518223273794559221889945464692488275973808955821256867621650822752643426208536083844279371486871045399559789574395277445034580411936574767777107675379587462823498292669837604136896844696172678134323608765724610687210228679134541424629355593138625941936253471768044091627508256556072790385413400318971881165262653478880146656408461423543305870527897336935877366188047650866913932054164067898388542182400510084627549197388020210749089370507515502138391889143634827769190914518164721738866053774218165706918681530042086001146836597059404690283617932722222642865679560461826473793928369429627297483324910269209506831915701354243484110127894542998334782285685920233917040300684326912638456613007031884728356468783111014308645032968216786293767877408488725698808334482318909421116135128309929705315253762455223745432059433658039941338586335253874375928484276419486152875432020919521735281028844148017255359846133929987484142126674439778612895437277431061562751377694612895469269393330284333679288540196363418100063233347265327278207878879848598975120512058773950289570249494063357014393210046235235376437216932252497894707925104884658260843640520689271901220596200084683663685825545295632284515389306909079479445831108101651527486749009052560582902742019457940006670274700460630694170943893499980003800244984483754237307581984927629029199622558389968357135620637186223549633082382571415047829712565564511541875066785021599114544357497291656228408964279488259633356990083336758405652803607725648657414397337116065303156126698622614149894070419251237818693329978144381174819245753859776329151102925600323768975240657935219498855604931981499453468275861464137244145775530764356175984224108050629082590359867070920183330217134525952672338333813028853490893324546108654226256787849041303067368452154467796389618777458239391792356813273314144579301376080965132923231947854414147460231010794776831852018348536886701733307466813290978467672624644801648389033466372171265985447727038483951525554271032186551234392821064608759477894336518070367214962291667704515227697994458632747756143075834292712523044267408592875170795122770748597952537390975922535047216964610324826859462833006460248904291932207466077456234668456082237169187609205701338218496776714063129882953412915675161801418166424520123998569139099979854625403014010620547630857075434132315532150210524743093671167191477866391151265897310423470360949185057786410817695212210016497382322693257039351433395569117882824984575833558794050094870263636216770099034916057930699498224656249828313851342619971686169187292879790641510640949386195383313358129915829817033850671565465481893180061518898852723268204231274360218871923797741378791781523128207900934029819219432514134997201231773538072208673752792865333958164969006412637936967331031343516766794936436334733798437793668979666008353357774148886360970454827153105525176793086220305405866375530206527801295846991467993043064857874864017078580630511614018747009565218548517930705089444370235442690991335844080165419947626250214419915050626224424277485113964089314299787188862309263681376478446172341546262499011768561135741343448653412747381181833657343025631240935235443248414760068695324367306332964377654573491531774807965909612713185974389697850230108023054028705500307277831163697604381523178576368285070522007552673146377221173090232807023127953885775380968200346778611163530377750883532259431854661912956969193382212051985041260629695528943048178674552557294152133887744207575049575920329179716997599665777482148633038463021580025821013437051051936738801693916659191364663379642656742504698397804476846149606723661656999253749583544654846676683269827814479555784018327778541786966578955925246227368218605000417013865082533933799134621669882071528459687561318016063828942007368413011095787437652243748490913819556327393347053517595928952135566097989007149545877730121143827741137473413485301751563484276287833546412597250604344534262646475633781093892387816097340617299193244252668157616988637868896433743045243903584875609962050381122693262410686613592926895977819411797515604704222670301253038012870127663296791042975538805375361624480914451474977994843399853651610256276959586819028319951191740371276510760081539960900710910147606247641951396056290555162609141312942400805214039279639823540463477260238969672530577015857110122276770999843350235470779566945354531222814838676103057239348242932979143463778310869486145860917407523277363672119245052910765271846985731948477164694985552740057535973828301358183429813259190209031995749228750203775048229872391361991759550406361761427186292738011078616735863974833492826611431399706389986753204730768913297938998094691717921929625309893087920861843689649544813651194130582993749398429465714776976110615265606478875336428468177752630678324273979770930283284329018245304206957606532601252242727531592966348183578601392775048941818676325218413092322361257635303091959970353923591780651666330159867806668956407269221575572089420473792882099315657091994634731041895495390382680878316201229370075582430245709009450853442717737089081440273233727375028230754564629974666752654960808237480561861649791166491332652781553809404336752677485971211026869867772606842848345486633376958411357985259800365185181769183209471812091471827932304006949276314074581731660678914093370726890685193736785743722601538590640000679300831757115954318366581321536574087598694074401759005558141285703695315586056607764801639481184009474880358685978441028386971314478586980516530481493578368200545280091457291928061575857201609439227855010053192676656036358174527268196133928880304079497553038528437079277868305465239692139528652312442226995473499828096319891394627573007711037757283614454619663404134529573881125252623517189473566565092839239412086109684236096595049503615994696211100028385324423289694675413479835053583617154438839936772388299522244427070241762339678534122375942643540744497052278010380864101916715649958161829009536169391499044367922648287646478556137633379466481252476420919401603997470828838430643228678794635956841081351465969481502993532461128720759152615910107366915016099099027922902515889001611456238186018311809122051095236328206744144197806227780147596866291863953645480805554468607821052399007816014555168602223441684747411801114903693390003957146838654508539472905981114158885377248279127163460381026109157883709879634294373216898009636191302110630723053056417839923330804427475448892089468863653712310065685729389523926563940342694284804084519215407424101754067455621293151241208133578412467041846674010924776152598288085502225201160359590711996652924244585394351391060200643062907842082733450064722425697479705869531355223414992318589514614958281062986073007127042548508184032514439178798834538772303180838638686395459883381636078520613696631193561671407462123658942148730981379464407893396002579162317090625658254778473843440622854183974724636104073199646799843459432433228121086216038547029307356333751391668067772220508521283011466494860693857386345826947095204753167513416906783735858767460680674327896022212874418164690354765303530579382194074040639392650796176955330998202643071604444435335967542835381228082888452542169077407681352998622812548459871947727903551908229373963857767678763922529468669792459656553143350602040174288427771299212046388238952990172735738661612291726549139038164776529860246163246644101983698270701449834610020272183000856177119166040481542549697730450428073013532788353759457995546063829497947895648287342739787826610642923494498788753522206092989811075066464823656231584331310200268046326781020592235568621189732162897269161934479749786351305198104533712600241343140863992557665667598326605344929967420100800821528882843423315490222050783477059426328827372491858616012059086127594644649450678246398080503836089710347663058329742662692012963579357978154172881445500882630683509479202400766937004687116875404768270670262998671228499991918551583255417370899851269904344393491254526471402184052988491980995192216343568541950814778230836766046133514616364325458369707551293634809441852040531945644110377634250538710401374052125619152976702507233252658027370436619813148178460007560199469449064389512185686471592715293697534863777897147670939764185524505721946491535344194848691247139295412973491722526697925864118103002187879319615697386895405870893618423251787273458768568518980544227975376003268842225031456717196536413148801088271132923157079017427618192542449545319719511302200320785978612018491874547702937305634077518893840342637277411115878732465448346172572779968779927376148811936284186276951498360079050778869674874094752656514972226718593352450560012256252416524262297015017514500725101800049091392469334782652943205765317481122173271195503201888689204164007530257174218058095071783538803289550575586107623683945753544297680361123238991548611945118837448485015957187190374466905863258474776652934451074709731036777251426438403340673961634983896830557406753387025886116994143736437050482402973456842436554938623660890391039449597245928814176854205936670300021186618438782409739931350795050103046812097156021588960137949857898225940502675931919191334640649727675350339430096689655887062367138560868768172978803078376870879026455251198622329870072635664481393199939663681175340204925902343969042583284713642541437612068812880370577459904137918283123048236618661960945640579095267747820512095241607582854772108005479956340308828996704448967494873021216424322763904359755492821026010275865084457311002213706126493108579351700229898108178653700642952478956933415126788123080413983744241000857170663827809170946553474727218083070869848021632229612351573244035140927755775870269411975284416750017279565973903197497698476096308975221858438190685232493393469869775297336598854460153429701532288901663452122422000756083021030093806968137673108275414817028421086965808506329641670960526829046255211031455369504559854236440835522414551246990762309960967730806006548902269542509877090188443914314972028064726390339705781735263386056139027858109560915610213830275326918589181443580910232909430533261648608633136039397980106796419991742828669402441751988733697596818762815749297842168040807835145636547013705308046850563615725546506688707457089880753846467859825831626375143979605906187965575764511600858841653603398270249944867969765960666101702965432044942551710273257162540826767677850990265248365827521636928994033420734313107735723837996542478819918697076562838671377573388139588003250410954576731916371465435859295401574798845451297744999522429108364505008470801018269957835077330153860426478408412848342228977061299204920321685795526482304586354521190173192735596399800241876385307241150350675079557992701117268552426946120394202311387031945457433089734813542361007259780134126386049132223932969181317211101950900122621760799418508846040083694667186767948105705984181760886713656847672720346285118163040283927836278769464883701338360908228222325379161502101056324869781370906099486207547497686572497887407978244477016642314666056907938091382744003569141936018998921188940480458305256019771859636727390324582143589449509500492401299700474138466404528952758396770572630133293058392087984704725723517668286260612128726933555070963466662318807022640193036096000180652498847909402657202786336902761626900686717615092662785012103820422105199817496648132466252283921219971612789149205697056666201346631621147206362390213084392286214139057886200175946437640878276328604010647438244709610850036675703279685542023024941799327815819475695340984608702682330297334259940741670931503068346656744965810740498544723128303394601400157250789791300722330404399688015493771813379655035490366256111952501569551671092632273190177263540016036231794310995249098102665102303885571268525570268591254155141880433897729384872266352491074004255730525938097038962163863098158455475329891344217698343156007170168805151161529619857058253652527238724546525334770088121127013536044238935291542302681583500277279451507245335549181680709263499936888210038159382054880336415694364352462445623966780967645974620739585007175412502154798861905193602724799177556905563451198698537945215771466146796009236049141310299029001736751950790145427577563812248266329529779026916616171065183941521786029524479884614068699519571511339920244138322774569813094336300296371641062151604639191271679911105733750833731806015014517569190712409482432988771234828269995140451058196432868274395935967443478187463904853119406781192181573428209685021641101992603462877956045969136946565795359569876552234335608841965453752201229015433872376773746308397870729318651335940215605015693473065996682023991167089033106201986941907370933003771597210089900651555384485727048848154684540913234908563069512143766244055459200973111094417557454822299609770428576800250049892674180809562609283749144870453465766102141889484093858891045886342327374505102941924055875331204013967228704803770980732283855223229474331011064458436313289844655156049072578065743259105764274703853584874960101630466119665645202789262928386333867118976819958930381889932585093324498643134819549409883608724295452331865849375155600522064126747320005588601468533969745611920203522672810821156762812751727000741105394989386542317582775943846919414611560028230946419368617828020106076831666095351332846191664607096728296722065928056387711714670608478473281362084137541414973537023573946875575981004412148579080627308974336120755089585865245497776794799266826123990768250147623621053685617916296154084073219762550106207977611276622024336921167687693800297285199679828769906782033765551635264911447535168671147957094849375377764894705516162885184304589664958850650617918035862994864818281332814775852570055660560492276158199910613217707937237512184396263723004695783901739989587031424122388778326647580207354198118487229524330119868884582446556984186962265595298892565232520280418220224781290120610562837170908530102626726885647383247943151755435235112312274875843992620014322139884014787986918503056452839986688073687873329559406930564675238877819335903432470109736555706442067387486917414513538141161922081547563915974351088458292381631034059468573475987733235879962967810024955882931094387409878337207637320450615735382288356038134116525846190458828022964842021481979182455835947306668850595221976752977648516148098737472961425620865492617220404362416411721021846485788489111296667028177390053126310272444700027599217975558309461379072628669052001649710363867416045634919592285471184150323870455577905848897895965593160605997405706033490225182507809861702796330782157934065173671338653266314591807871502596081951328926993318228314927018946347688870136706359610328396228009982307062581756074315255357784539403589812093064480640944265068090350770761110508134414073414096643322702380422991700026402892966824608705603328115535466180364592932499296681212798504771692813413670907090301689205885018373158984984979224479197601602899149622115771805254883200960940128756485102323402998854197324963744450983480691454492479003078202068620409283741570036044757500313461773616021231160713187830179650749072558086717724204577156867678849280011697766188524895945559356296036185692351986931331331920994370815862258451395070043587164736616896414624058518558122618210286479225806095355603558296573199548195030367264749731490098361415161282522212256231631628372872883267948459998306168610621984789369503629754671625891461074075189744929104091933120667599186951494947833503603530666139335217191875181258905306078533483429225457168304397073082887460124800602313307612970247840260916844552770118794809344998006206505223768846284978047632817136072033366078623740187855346326674713549161653955336552801669042724398190896669579518978435389401601470434757789291542412153206613187319774479552175274948954669896743196467515260163239746953518769072327496863147148964434325785340290037880625303572988680261604804988450337505645215994962290086818344857549764320655569188384157647235540252774154665982826962537356688866250543698386523084608599833159777628411890123624576841508000462672430455946440880866909350128537776436582856316020149938708687337922925730688997109010388415503847632810355330929055669296130300535776159061539754128050604078840543462602556642014994895063218957202719159575195257017876069066580403145859917092662281152936527104957466770602808652073264792250757052029403736643471768258520531088728076554464682781526284177827590807578161665888108332383884529376264402351478472792837296999808195977657682143645535762544300104312869439956557845144132576626069868531486068076604524378557548749080224969971700504235688006787678274027504861575057258796095503555125116541795724215243236978327503458460233814381018104236159838417500889718983620170633550119693770711176576226809986310998973767859273162782173700262635980612753972863572056240475615673458417956847711372162629169299382225404988695710122349640146020107465334706063816664443677556566937623295924637927595221465831458246274959605267700572057016534999845095919121096210247746790638006580275238771458308610373449885289402066513335696022079534190259812345224289347289885414456213156030341042290853575653705571251148875682184778552606584222610214522337653451481586469372969950144543249456122978682916338417095447298426362888568428511713805821282573970825787351944415666246071247643239020271920028929974748777808031986789110026823592790429722134497745024670279885496984573884329563691807092161890386909499299214879674162320694413722197730697699980131843997068789277369411053740190657430559225400129063030969994741452798338889515105665262340049226756791523698179123609712496269469247849201133859124476850546675894959334753347478720000979906407709001589548183448229613251122022075496215613486025396567684453651043821087807561534698221244852832661782883933021722145254208506923974727099887865968722312137820677957998702860852823765816137980993695874176568778671251724989581761574643440986849139147213046688426392735875226989523126301687498514479904906267432782260624358902695924161458042326690348923715463431068818360586099172029617175608317292806692251016687360103383511409134122730913713944489830529891544705063251506852398340410502350187975206332011553693327017623083317316682120003520482608590194279321312322056450194663968982257282258410245147715386670521843035254180532191515998993643406758296255306810745560232497031063877744660345110629922299813191839909741967275545184800648441388984975128604054615835677436444153982578882527557270996633825687274834195696746960042490405864303960918172920490912670280047860142947710902077669484964983393048280377367256546877368136939199031428998561298645079513786465780998295029163336992077343961257337609600507591902453416010151536109285199413582464575894513663978268005044442842656334519229192421707099165901352523921100525995746627849248406791266400596282703109393758054317031841114528487999634019128637089433234751945241777655423239962057921864024604854297158866392329252699183532195068273789938216757112952309000765347962629666696049019474383956991358318249177703477391400644606016284211590550663070507721880260148188060968847079798030084746724983054066362868504657534673748239373705846224013404192557810360819547054519052271294133744088925652095809798481636143409248103731653938182976574558722144316933206277779222229914298230449329819233471528768677853183076010796752057357057045710825565424295425877158471221568376257341546138124703596099631946453634820283993362809232439892822131936903757198248562374029273096371894362905044165699083736235773426019948980823474636331342341834114316901630595150978225434705474444950487439522369101982932920830922774371690769236372213227811762323622071573558581060037520454806647603543618246277601176335357321034134765631830122514294303233315760029224711219121555693652739193391514602500160216257694224311455036007760125786168376744283026600249984989358113389074676917630539238296216642692989390960248915169756805198642017642952419137295513198411695799526343906949865073201368254663603226143670596325078218755433684523244643569460458586500030540252066580507858149907218112188062645791780600649855762404848311672656047251535852796860163303504810477929043478362532462510223336689724570051623878282896939951724015803967649822097422752938466619188968481026275337087297941333617990026041764765551215347857474571320641160470371251174620756709670794283288138484274101775698056733322302637406601370483872911336294162449800298439740441499034576979554415171846445891690619691210952022439938407550082069172619255677344279905049942306936204166626506425915597505130277567527822838106894919248546069408906814839215459942320193714379423366722123496054232505374780196815799861120141200894763063344174723620155225493661875438687174188039845728685496179709049929136246834625487299174301322065318427147892809432830206991908918920078972366905153322845711333690375426537169716287751938581511824462379253376606573722598278794746375195576434398123234834787640407390467303559217791773581586490665975594771383321334623610776707726398693463870452615866868983428664756072973891258127067684960988808750819164812124562229087956010754463353425862198422073939651358972837770882491240908709101227019235216668183850892106926905757209117361766776078823891357513444521585113338755545019995636612570947180355833260415993540814047958119539622447687773670838926021944063499258822116204250591212509799342878927501356626419433567166389035962379072905320473025322402754069679675756698986556136968760469272118951432454218400748175353491988649129968900929138835058180164576774295602926145439301423323639910201775303150690851240664507388422694961884634191376366687109724308098427803958690859357779354443519888606349862911268215548151640683582225402286634207524846165677307546873905758327197181695202196096198369224576120354666754516892049589679706431564154380441917725715133795164383254639374040399797165170807030038339088775678507881750346793642265367926032469658703585784362773232911866601393765808554447971946201376152751755265441682700133275351922315866361600573589368796688177915978115724125173330330520787042162821532781805874094932821163270400545412263905885839384856051987989056406356241619241460857914328928688627251369200609622848350937877542581556171554837385996101761504504707479400082634187115925002348682971489115127859388101161324796843975418107255589617872027115961452274612430979669805334973677457110358964083098434780044848759269277124558139968745977884333144942278811725385637995532723170698022710679817202482643652987712234085896129372815561267000786307537609182933179554985335453933605619073066272228422798024707707018307102168820367088876213697566532858141614348587870718469722533445268996589513638579150259906926660812767627362321696151140621594634757411981693809411443253494590686971186366174009434427735229321702847438887615322000418866440664130398036242138867242461733360586523698134022321706414071434346162748938919938446367215735421567750158754443764333307154915952715629176085536408694963902869487930635917917512389480754127418407922984414781041652488276119259527835546565835607482156737901087108200193816263242738192899790150495462792903466774132173302744662078838763023336509791463956425318094900007918766483113833467453609622921278712814702412533182096606448673868465226029860263165542122777735659863285854370690890744048419348077243979108164300572369863758729070784015695065118339282959619739134163287735586887079449314409343565853342143593312807669861936813864490260175561770105318350076140924541885268095826416009420532269352932550852325983023500269395504945952664151405452963904721902623742873664769923382554726059303939452840464094556439502250128488180270912222425233018383987942871800855719664154487701564364900476782484662993763879670196709538307376540080629627624803663047711744888659419621229804722378908524492822621534896372454212408426111729837395232543791831143396121065278067239163445916546153861313851851169418239536739948231495893695308448031022293388437306379501573391335616162686966469010845482904482945980912000638857923439198794851235557660492250704519697488401168552638428043552816239374110372007087703046018352962853093743741943465932901760152133435731552810501382052264560697645475797221410127356847677582819055681150338797174242392959321113717627526406599473332856652939909646936256723179696174981985319185937090085852058859847294249076426194267863456475111957726732445947765637311723296173208859532704831613902070179586805818783849839433357237258185041474292123818382629419124584795680937732913312429551538748328200625767524576322876072701770837562214075874548677554379199448092210806324972302796190778553333175638407591706941711113578170882176127392839149123434731365041474732157053616679708776943413506062416125612221765457876894252623832939557928883645150044519984691426038614805954180415378520454546907230163474670693247013566793018206448375310973894071400826949816486203995615975927373441495130426327884509009187477816949777295990569903497049455752163997270867607056065026606821510144584399119342190092623133898086927706274782879893128896929059863651793451092889273335521058593171837061756138628094061935602636489260890246237635870214414314540251256309582197688663818892988714175803804598641607627579811638347798205459988946875944926982112397973890913874550052599764076569731655620137293096518418888267124106781172681608304385654495462710895514158733214896567945449921724130672554655576785308535223309927695485686161496393943055442406903068328172737893372203688001722013295778545151662751320350636917119399898112961084408182897883325908245596249759418198016461871756061436412983831507097639542141765306438627302810053906755251234739090471747920197890982235046591079911423255973117359071493862758904546409846854505364834259887886472482750683120340113597604768166376921525489408153020786123436675981332603206193225769007156375611393361124813114015312697793848786209699078663486921709826554993656598849799918813448622684057911729904318075304954528064538210184802228082448036672477263496610855024691989294246486126955649245330492646806888161656381619946858722553020899728952062941510076786545319644631017962750730363407034026224466019887403886179284019435314380015925839668317755588491178374472030918652363599204546007617295876674881333788152192774855295553400804764718286282684320875413122863060144586093963377540957334502461328344652964210622881372634337479359175648650288051323447939328535986111773873549329667298180519723776884277364839080631123764124108928170607145936301972884827794031696397666755359113695686288824773046124811509453524354633598918253526713118437643103408563406825822348513274420226790308356810851275846282795711700818845092809263895963588618328829723603918468924759127273878745427787500650829375801378347423710146882858082641177017945842935776056521655640614522920130202304713286000583913532097837311699975997190276092059543813847899569442651018950507069096246212767189432536504280039563276220828194474026500116911761483366229077985024360302118177136993927710817038795437142059776482516288684846356153054154569705898499337690611326448203745377248758841475392833489631068618816213364196013030294641272009084637129693686804164891853814463564257075553604829173876175508917594832063792386896395445733722739996375202940656658226550526741399505843224517626218636840764648200134388617713519914695512861559480239745524828049971686087503817461302897569409057994137231747177888875710316143756504544350281392445612302720999989563018267801619071265417666847802509214174928718448247781722658938570683548555261495077628977014558696851161956603994811829442912659699142938956466333487872918750903372361240985787458847182127280078081101607238975467259859466808618433012188785742346369311861552874090441507448275820748165291460110673015057293023893851477101667894565674750021343639319126431201235281324092613398440710437445511921572794371862296313140814559631443126209599459582597003823435802102976920537382924718930309683474900246302195707172164689623016623421168182022338754319489811166889426155627302130285524495048716112074499728034198384040123614643484417690131707480356299363614000922460256541100562485998940999130651912412324443997480589599378135198890654299385819617987721521370557878428070226219426398108839149323939255053967306192590151378670462919154920235527010393621552413851902220980431032947601205400574076464932569531072189327865067075847117805305064164295542422456587992744466652035402332031535581636136249319134539686066446448497589504113805146946475759453991908888098885092814900504196220508299893182893459414181314078487750929118515172377936218225457520735786057903238508282409018812656212946503050529406147041419708632449510095715553046001632584897659271904996610042931755618924378885565218581881269843060628577070096765409473148658250425023817549357490343068178523966766188861955876146257003962165029770370985475569781410461591987946322979526894625836866915084436981688187642256399518817904446583308515155448220740926682741013804574555313967968919110257885627675311991350241572346282329721196727467371738585083634695632103864991932998010440494150729604936641414202609112823905586822942782183649126754960129266826353532990078214868421623138350894627141429398316505363119725366992675574833588049910947985029017005713366161493631469738089259985543594144976996199301544775991227225397100761698997960351736988417100561581075846746146831523681733555578557117670686176454611231235951655007073801549801133112778884298458314192805750532945085747175836138992404138952809348729327859554075290623123742061849578151994110998086442828300776400075450885034728696321831180388969053453864329717619788340669502217891937524880147927046432595575963697049007075530482677294756488713072385033636398248274087310526484857272056248268981073495172279967763708157123802089579835529986066824783954546134453951606345095067479139779904437807977665803605269417887917155954121752431721857448008774875961952128226009051432327053475661169037898924516968541664878250170615643444793801563273092099053964473372233503803509166728006563476542783822298035754017498240838712903037729003253043959010035940754246236758890489396252292224897210145699485599261830085614462098694176292726794384929589608027211519155736215473398989935300846595823854514450947321023947386795703178791482715474369739299725099070582280887537122017131186502750965422193693309214663727891069561365928914668915692945412985835113390652097308665791656832085369770507623801062232878113361069962903587066965569353413454686057350037165016514931767303884135748388660108063838345595919997374189842658013186945169705257552014735043543525200200830450001302439796221895574861502474917100271511080132288555821517139887565455401894991683290066181724631560116194821997586437477736046425268573057814816212385014271583451633170097650471342504176478278016465265424096919260228606321530710897541107564836507601871816894687935396775924373366130580337999997861977759322937211011969715909844629674543294281172818384636388595202987990561003455406983292901179732470824120282390866690772954350711245314594672945985115948824173332574456165112665476605299434613209383120249636849154318567657488907467348213973422518577072132399813004015134405241886525745664007865813928306529777375829824258850203415992541746606370453601487517209764266524572202512449305740095720635483441325827782620015536592487939944866986726013283944729057367591073499430858086796792265730933613589896670834843782077837042277431852482108575743086498999712060217805927333857159896837821360509042927045121786015106050072070228824948883496194496222377498752560710417783593690508354148415810642824653935004705008943201023476534574865076484565631253933433434061549688595017236226804802164154930295021550534682033888808461714192014155105456015490388613389562048244819723907829930167111022875889218000538753827792739155841371403282686820389336516445330200360227550962877222484935669763012912923900589338672934396829314467674342928804930344367594068052815276995684948786572961614855388904833670349027939190738369066678046848592014415621236111956071533978794269981163747581466334440129347279316446869152352784468822530789711850870600150054998123107020844830899373097907286882455988258198776425090221958147412645471731722075904560953549204113346030450671466260518655802472954387828961057571686301363142982970420832483341084484748647666731355664473930102361741489827544902400461560543899041468815480384483797862519315548400008330255480982106859320990044934880380568899416173909163253726260688831744311018271453684786571122984173994097614517452053701104499977305839173295911274505736467873370094250597234610518702872487286996196567971139160059858591764727618272335749326236534080300406144768941282138286040793898144059792313434187454532451510306067707655513669063684819113628648523915101500713822005967411643653634597056102216467910894720070891463460079854564436048195894432158574191528000166797243688488985359939270837476862035474782713527180051909059653696694116283523969835361717317145073230650346423261343354051099496395103204752670136523196441369656938502762701416670993905301917331903029045757381864870150545811940775924045240141324787052979316860835615696028531319365726856538622157774036872685363496527871638578631071616680615642966600370246008906177339349670212160316213722628085128657563355709681693128982700076946400232161420153249139221126070882266721610412953546112077038506234326731543890177169825662191720240774619968054932821383083730750660078417239048996608384769411846928332671319498440776451796471573448656814666823224131028290671339495553205708220746529779736744889155745461169774435284523679817271483884014549637208115172501042688643113377869689477046684040661621138225880158724748729757309647110941971058079452241326759141805688790106242584657943115464640364800832255561684817574016827044312519742930874245649837954245899646452175213289759339122306823428354927957437217086081654084808276356463107010947963901127848656818208774681153166219527189264242857422321277231032797421594247608138592255119579303691474935677259280632633958691957059104449593789995301684091840586257740179627480268774133047389927881946230314421303315590758590800087623480410255979777935048782151500101479718211140586545599347600350145030083417304047687272563203355019623052570041435822136960754482083623991608756090262460740657474430654996438525130617398470247001964488875831068071635029657045600879350838853877356494864762570145802644958049220195344307324395180041764391030774056454402292644020337615447948737764880179725683097792593132610838906860816061972619443151323060322697250010666054633889706144559007556942052377021877102881368972457521313506952797721636909487934170163750258390810145285310481757126331905894264573171539551880588083365078433966543982638644164793284120058299849513272814377865860657558941111754172663867103996423029914337878860310532349153321619741897534977344105934165129174826320418532064497041972957684692383326764527807758255414257074954153636730888007046142303155188183949261790911343317645194679242967557959913385371194956040199077072294399623641769310951614757274515958288876641291815170298298524257287957809629972261183062903979544941479508833024308320746370565642192229973084725196264624548780771134904534214544438113563843133203836059756793891306757515272570149942092267976150685238091453212445086088685082204972917789607870919357883571169463451570665223288655077203938611426938630848640850334670250589432247068911472206604758526109331003467865341041389206950121128114996777701938520019938780223620730376776479379506368402991881985182973206007696392501797428168741809048152158968089732186435683529213279358092003072768605488898548400038073674631188240470019708573163100000164586238128746253605418894718296975039692502727860912531740635381668183295661602090610889640827282670235177996264427185922390381554075838474386423562175646610279276561967661448268996285481001899312965480795971695208086435151578866975162704265852427881388317341714248848255036581733006321006661762673063487547056231182912916622046566661079602486106694421770198272357460648426178281512056556432479324236923548567673481549809082786213979664470787949585622866997362537208964155641706695817276896530923378297543758117392861728055271938901115797166760801877140513015112021659924743081343309436079384192281401998315511550341017263713371205784472123298701582433664793902746685261073983571556627058499587931607468855477525425600629046849237266661634690540674366940549365336569910274496835389598616377646563905420506593599258705212987986675581424574824752817109635840510551004612172566984468997601645600024367937818971479541822030189523060719485201627771708126210585523722386586288939987953747966255696724619676292527671674518412423135570446236368589528573246412726992948159378047071868595347494468961552545948261714556925747411219830894125942224618682940744277698003243014001592154490880299037564299297958387448234407826305427771910172872977659525318342019688015863331156749487676059359527932110024666964904809965771897459430868058966174174924264475539204321421296334503185110227004528186426349283433290484183957182842433535717666402854548402453729154951833809151443107315468344553471991641457566240422356510229496963515825395112670326791842318580056867836643021587734989715315177291846902722973292673566168782788137454685375596010803602296627023966345410310271818487965534069928058088688349608442474253694126821812274669575288743269975989543511556207814067324351190112197485381023053209488457860815654239925685436096643584905884041433687592367094277198302728579851004742384703283180789886689072223734602842990462017092848745837853085477152640969442370681289796748789150719705439887530305360603503965320822188152626686830305713093639451323732684441566334967582074300410756528091295402858546512524603656220709598779859675866648128252668866740821987560992706184695496932551768676966504702207022574588731186501487638998693804488189187236873513181600319995474953205212740075768425488240253855992093733101759390272039731737635933521247202107662560182464285531669868907730111268382381348098725932876044910531743296161985000300938610106180167178847044107284775957999478630044593355952332204819735335180997414761626031348622564642102793558349786269299908823893465923801692743694649605464042895145795091822384820569407009339187671883079080255529566978012303505666341424044644395195709488430834127036402335863312635581977444981907364540544109421154482541896382119039988642248888538781615670689569287639098423855458674819700859002502199008410062463026846451246364464756772173454058172575321059578696320004431537242070744753808492657741332619442646222089562583369572153418063134642123847981670230766471544148631321977763091339640534842542325864119184083933109352144080519724535110414541808969998217947816382858459193197855676294588013776874758032484963975714050122981320538876858846586483926886425652196746327460944091529895924194488588901011814641565154660709215493269325390139367126685032433262830696897146130578274927003544667917654434303262854358231779789184940196303730937477387391170723223231394987373998201546168453169056664913044985371659008291271031699570952220492554271158487268644936792278412779416057834495595724730292501185995134140350275706911716241439567816895571430021547657084321990143506179362331036645219024482757203421378380905380196113959140134980195550895207848085397024648325121389350724970956837706981895622544410824087493780212460017468490085749102734658402667023304247347745378726365774048513968453995705194563702622138837307098631586151900674921372141694842869797680183741457409026647310451100969175064357297811515421733057819022682183919329552148187695631365011722836343725517615115697780457971174564479615057353181758986230093781353191520411429093317145036777884484026850641361175574072611331917734729451943014089939346273915617303149889305001415396436523952679561383617317461497514030009439511778899848040036752147805642627623827535300932765875465792066875198010635345229351548537647623825524652956579680513451095776702198506386814686403712662632138301928266388735610051916243281587233154001680645949442937252779246522742623358361777935641517923193368979025537393059624468004826444391512192744387174334380265405694262025242977343220306389383613839157744698446464801417665932702927921750680299131027988306864494313513831564750208511519632598026472173175885578946839608423423544945383196161853050877284767839859047149189354378857900094690659432126445409124732011097073107209549472199413805326419407522745981985818221740565709438918781485706106286020781751000834943253915779815691536316018406955458410075548136328595372839272932844397463386700051199080488191854548801905350808590826314189994101872606413658527671866225444977787270806177132081775321531974878489138759173781256773413181217665166739609726092242619668454001681273024935653696664890966598840166547094226364330468277280608216972361294317923954098991566298906406069173759965222872501809265244319399229851248039509682113592011842286063814874470095252439109454534779946922912384888724815664845394607266202346051481060087555629476812352196763432635677146551155856449872927114365901217382448425753804751728431876529851702289247970383910405486994345892127210876386449070479435435947982323983732127907541881633021722646694075512957010067956033472630087864072476393690602627797808730560795040417356611588134655805985838773029811908022641967500487044527632201446280689259528563193610044772503479292047481115662652707103605775479028258727919466074371909437343256392044596867225067404608289043904323698032519616993375681385644281302740208598138617485997547302611580119143506929235315015145953224816361540306320443399399953253415187780082496410181227581930614270254109443318360138088802645884146990361206969062911823213834215871807413470404582051543469850521296122874224654456167329394981791180093518247054487441280368385519279004965539552165839879351567227769724597994943112587736072504417183308505828349492509078888146727607874107231052460492657443522650147737316646998598288084474398402638840315924840821816272332738886137320290965126938943584315758844043124806201563595491608443534988216088646457598371113489559021461057906939719888647513723369384583874192473322292284772243936649711889035284792769257289232927310168006901028718833807985288067936125421751718268608316362180631586320186617466610725704674915243721163471410405664111224804114292531127881878428011222903663615764833830712593162768574150306956634464851377999105586096586740249647858512758973977403051661510202593198917701889422940150486914409645209555844890578933304879235070929717028361922800248007124914850368254488669483565161042746180433455389639577611201029111567031266736805845380038493469481537294303914270440699270573259016499546846221649056725438490164253726009872614927665439204942732383586655689513040911569466622438670085540137959840253904277653404536086394466605595454535568199833055254762835427195283045481809103901270760871444254065478468225595318061687895027324851418081279422152127566166786215107111236835457378981608472673665986414828727355486956407363316075852770802769617460900874126620568974600257040122811764453230054101537189370115766142507668608965865563231356175470961927115871129949510365586549470189331387182532229838078714845789239019264590544034943537825819030292099194934885007019278466739754569333570808433203377408069243822536070954706774657615373078421941874819543323401847302608268968085621514564356795177262788926050060335373601588252915298873883938257729150420210485946269593292312496520408024478780175324937465164516257144410670584962960296452443657261638375718315830437641347056477942272057293286221496663957448343165644187717858368590242381261789117349622569915634671119723662845335256684037022399351004219680287392333904707653829818589720349709716998715281917540641505472396557691921887851006061617935564954882470679425990484931502765672435230620728296594056025942072723204833593762003353378485088125519573205028666662217631126450601253789877595162479911174827217146311891568651241787508695860464722323972468561177249290665603431732413050058667861229277833401542018885987499976412202053719149701124666045848481210182219062089674100710086827491124971528545768789065028010782372891745296496324368111011151605239709757585001550065838133155113416992393656068308044503880195554273711323528254767355143359690315573353310995784395485206565434011752878510830599712326423235464276882777500148417343476522120491969184494008694373311811334597485680102961516618896427382444255247929266230496365625225379021760559653228344452255801748219693057167534834111483381649747243874775825589559624811633814139871244007043029882157245396061377076061093927974170924022610404305986042730035466861420951361175366831430446080477300249195994647748334993331268213200792807686994399319535884226576456990491563446052357341255398374856776588928023091958538470895184698635211411595468811314605132212980879059038406779347759140552963385738369997120637777469577393202629301288290130221362833899540112303264683422236871610073514999956615763428043742552565706535511181246164566727904582954585580352496441581007364660769702317615300686094651483386737803894489188305316113549599851987086462472489256557431402187574804885179239237441494277847026298509773924136869891193744817411912406841469809134413135655561199350351933757011467690844758192268074215831494597778646731838498084293401670359011836516389846041276928923460521681574066267055647199390102698058701756849349686053371544839120397928900286426196649402542983684426897757575152910883618501864797503097741912049264423473168138088802415800591517362207915398619133744481142117762398185746044124508769561144019965082166672804095590762526685743835356470912422081265382755793172288083058783979542627213037937566066531678621730715451728608379756422129468923818606099768982319782704810478431764633659471291251350654928498384878126531645995310473093129858635925586326841369766186968616813294136606832680841520862607124836083135685236157394702321494849518238871256739634492893788470126912084248182348592601850752572401912634257204157408863514267498826735468838376611150240590422948228587034086856730395491684921634937032694665954781138606581890249411606354344117429006568828923791282986222957247106787358594969471922967086068280415785681390451265734738142979597699120970948912845058070944373175133911001430121673691733198590146554690476552128387392601950071670896294789716037345254719579606869606014586059653388838269822117487716676331146597422746705520732386745118997170420734800897744318685136839028523442008611017343562835614541174973850510244742901152907395665536322597232683295480536612246338879064638009621572351668828594224951708431624787216588659621399175814995191143993343836568173233002328569812579204411145423429970303303757120701770967598499902251394165883185500013317063225419353168654390001454682956405532695270530272479019105980269190093526112556033529382410714203042026967442469862534897684939710234405444536962325757936126118492750815536119322815996591690121176021444456754860852586622627031036417380692038871041115421700566199371701553905387495968559883440183826913246684019276447567317725141255751555893154655223469563957104256093692801673936940130700719070135404010179870291337184593261418333017839578380406491061280746812888535991831463669547687478654465142605859916400580944043538242501356710817437675319346706860593876752911147105985835523854606569199829515564770689200650982682418299227812923640770991334079144040736658871288314271898237383611755774045858585884746604140610948371843779263237600508010930072035205583519427414464873743193822463945481413356557027758536052308989687450569161735233828179790918010535719396646184805454944093756736159811317079912587758730436705416076747378416916761609555495396246992925720829359589188940956040448029951593872092606126158942925833300986538327897522887888153036043089623225478072991890875872433950343919193714385790691097643480245017077209236251967463431464815071863977294061396415971281360565741018771476990310111885904580941506748383891199939100684912415026411820940431565544296230934511387433232551439424397243937994384233939045009683469473087394251697742910432821106696414371410825709821088001997850791689544724821005190401287988012886742751749240032501394565972262937214991172220492587976187167993707859620925230827292048385492330056266920005356624138521042413117127910870217815869615307203572201570099598851509485305145208384390976913215232407136641550138270618917978228663743627348211489883890078305360392220841050378403959062859244041585633159348590741588995273375917565554377313113043424965297282538183693318992718688469044459898738239866669425240885038990737948137718315661548590013176938533692839359343810648422516015148165058837602286935991408311272799513550140747986665717896318209437559778998260992231916389882460176459855550968053906800407028746393388990496092111739734209701101918518196147958681253861945315715257144490030847617462589337425130753322669737820488913446902209453821215096554658055759826637141731064131900455006511896503856308130554810919638570104841537118336420851712190076791740538253715095085649210109413965571290788555847088943044764138369533299216410462558664701904943901347452732835196292826276628612384376913160133197985857510066215150185195628957679159173377776364027517750214216205887947368151056818144288974161694930435707329610013637316077565418650191251360768543722850657394346634398276403249923331906867697436824990465412979460754248013647862341421878002472611570097824382466372220812431192097172738784166440076159931746109022681812596544784121605108732494010298320549574753384917583699461301111106108590596874921258512916214497631861247213425825519469666533652214288561464692837784988198150948099065889038631755666766158934908470005245106914048258835785700591381590400026324041493321631227731675222530449963999059919896628201950545856246966331695569442453734388961763278233610662373838895831033414562497487261518579725563690244877973614945192902921361216571426048319001681541277323420810182778335267549548155094982852344669874897700719747670586250617570218247176962538950864797910336004922811136303304267730805426520803666820661589387479095643038268917972556912559816054246429431260718124430639362343215277740903561289111714001259035697423760714301035626263477140286954881989919394790241338663286957359264863723493336515846309548301003746438937698937814566478026025879104057223366983492185887308448049539938714871881901712055863500147805031959476860952601674130499843992384196648834735850540992815708872351076854837174086026226299110416690861227601286271822381659677916510512020909887090334475015032188283278859569783839384076330281327506538351405413561292113441765749579009117539906107291248749530767996020229573572721292715335189061661900413750193526077667832944725535645821951581520799495444302326063529847991889887194616042797625578454053716967791140511980629211102320161988383986457306334425497994423961068376552728233515912058243359900281622658225290602847830880427150370454966489942389007537595517714869938684293039327200957886649100380600419863566072440553068180994394949532720070076370189994930259474600570092619177206745470733492600603750616823855177721842285791680724408559504015031819651327227318660756130259833161167806043803322315316235688363337949729607224565470219708832777566861951004966522808590987451532512553615516588095279304750298904043795995058868161050977538714450935790906867459710507261286854308007495688400830963159032865756018184486410130931798697994285635382290104968026614208551354441636078280175820346662432071242416893289092469604309773134254795019125860071342194008880689440318170120681301258366626759471589993135667151095829229243321870324165503266354205413257120765495028485339384055164441902257718930160004012526588171700935411463316971811589437682893582777616160650770273542778390821576519692738887958185710457030822536129141363652962217816737088694262762153185042644991700575565974813580679266975165034573158299872611432787348324587209602434966737217783415943573752900092043836208676065682559112697442189422750040383177039541769487256727002577210480726628873465353939565381428663030570767493946402861859366125136143023447568706250860205253881752496143167621136706424775048805365163450049528846359097328651617525793753942344679476958249968776751562972436636735712763128606082046833853234560675442014133152814602088014321757938855226736427937296240288982993671175466076816461795050032635117417962346324203013875570621292084050953805126856944794204775069519599334459949222812083205276933086440028997454118801808350297713928347952710578652708469053037346121670129509733837646728827468592385093231848905327672849088533010419862857228495767110568267154474635128056377749846194836432200747664712419960656058534962521448030328257742030292272249212650193048822372250156332699209092372932011858240779923557029482025274334433948838197476240246190511493277147885474742929672411814892693363133563006375042349361081347986069979177217807000368922365670357778721378196519563369740176253284786760360667039691331828338896438943839687916975440134649307863106329247658538974462396926780061670896203198780250965016745651504503951815807668174715897876001625407928956765738637104486223808227552303257052495049462560672910093281685862402083235627144215830165830852261978450470808528444887937910117250286790282245657154034545670878855435937813980486616918840078095291810013410466812502313982402969936037921026801356211329755358090719845057042297227891498216453429988105749329483809233654938016364520231741814149631180634594404156146549890760831841350988666147134775563136724871063215976885447750066256497934658561579535445023754910993522812735500947177636402168924367970077109198281976979896990713019643307199080934215247998343299247411763133395452319550343575449052850266247854780156747131955902271877547775590616243620499591131453479686094730105248017955075406150908581895453640480746035643865339235054641761169706424386367046155010148861628884418365869648189020476748790753960233454175129804089006742955841945141570465585753675846660608688660467486851250082137724879420798142802491762671641972916281675631214069993721341963061943765323624488375280954061962011539755975178021959875111111923301354570339146044369072811998139523752311467183786350180416760340582349215658452599812520635976665684455235552681381934080867817310343673103164793739874448486717405130147887661039555286678079217510394075661892481120450983848378304186081537768304413419680480515393483445529539878438298803429437666177562781489308299871873635739002793554522444602372718123101961119470118378757802125198111383018872375824452371502368713011477483617585577157709559129412039254256761357299385052911358903216172074140276636546470707058052516476528645126845789913093867138932647319030319039545501619107669590989700999875086564638125812006281505378697510950714562721230719328862427239451170385035234620803324176173075658814079257914915715862017480890060076555770186685464167957693476310479596372766792244759543891260767590908348886676630263276500056074100057950566365527699210287651760842701839031398852282857110212299765736940021973381661162013853079083565117227936748144154633799512540705089100544159234642692385606461380918352516674116381076213799351632725917146639424220766625195603706497984408302217830452672897670672839428526197577384453512155274248919338321081651797634457740420549306082575155423735102368739361857704563164190898822187653955563626471778241424517705873087750381680753067528286065905817144982373550425007220624492965522757720071969068070902056493421052763222191745705491928082593359848461641644040428646425028660339453733689218014736347611609698851784577990442589636330955756683414249062605744960579440567101692591653801041541349566068443015154340679445971557468212626391615646102955343292287637466722375277174121248916814037898634998488336332167109880151781032958964758544574777652932467439320186081580561964891519131502780498895587859420849739072941289854720721226099008198132273416205875160037366956421304372250251449623838948359552884867956063668578486144238068952581123759580449332652822190066750485370021967746757001320721629761380001036153108138425757853549526014154222096001318635022085399421947655578526979096332839451932204404873805429162111571310343302853790050810744065722047094759989974340330020315298950330906837039851366068113375160604373789226163606406567602261719400980842078342437792249670541481191193581695335599230929731891299920408702361366388371120951643217190617441267719520749824407189563550643289454802082479031405303586441918015749674870190593233744951047031597347683050479033862294641535162987324051729771038654209149607277122620969444824969318553414552338056281551977392038680833719164813725805649683419830077420808830327566291495702977110117805040633451232287790330409859944876020664238786270825217098898084147837009554675690661229923827750312325664513276437175876665169846280022496358730841144599946850171961881194277877106915037641360237520373597651510371572539279969377556172197147301277733841393411928152631597812014298418758672430986994429092190231407232467941571351234566444219260671155075226221525702406788560890362834069483115202835048275210025660740426978756900106801093126190980163608621424161867131616897787298733471231393816042226797039835212084362333027498096015558254493046739706787302592131389812484311127963870843775114479072392396747377577907784601110113812138236170259640593367691010381538198587599756058381587432698072556226826021057544374075921633018412260868419875055643350041441340075673778155278426958302546962884438684594631467446704698520664794531548415018166758382704764771168867339459622009807041709036338567494942411559565529610247471854671175509564606750341119119975104371662561736630764850735737092820484151584351757459590861438210107592946118299175468038171788554534856808980492294741624049403186407753132870813645865064566940038973275131793190202025027814779696211542888079255089611594317021623118680855337861047997242527252755064347995406566276177574632686264576392045430641107145262268470396699889106578867821638024828232722125431576197028325109746092660668995473958797083578047918342290557560292311443925054844731650395349593766615936759155739987760604171313422560003553287193497378369182017908327689693655458778599927142711478708054926480674536315883669791450569234329687474248485938612346653882662607910869566692638607889711143800060698753919974931587505813779130754678776798557206048429903657716934721933217697673828071714110857253373942269964314235549327098629684072454428396379262862838763319704657435448337209274834231156487040699112217433822750439831867999473268605929439166523091547875209604953038937142761392189879993982891775390091378937438661458280436149843823997449872455478099845742949237465240641747592989423845947642903619351854468663094758877703999701575298201657400974905160574265893015093434903576256584509395862235575317022432467339816404594103591130903165365947702340165733890540349829430858964948447409877572112452651377780130362604989771432135975304630842082473623503081502035480581628414837258868900938395928207112335997471329367619582797890114905961427554197524494966550920334833747551374672946292153342554314585899853548158124377930827155837016092155203069048841565218264586728388172879076207130307607015310318026877016433806573150549248808993330383467962496342706526241485808006006083474298505682233170991644731883945288257786196946265754771597548167236902692218795849398752060244939306475679861898412322140903860901530714764324598267583841744410203463063205349487166411815108408643711746949608041570971026540536300130734588988297816776559045439562260653587039698553556736069383245989693446851321292397236574729777878019779872666672165032392241151939221766642996010929539025123222937248071492713430627317451479515836994800025460911507463994467889089557633918853485238055762387267257984985000626880133593308048839484926899597275095116475936123402742577531870814029375332079551968431512143428668090503588735358955349443544756057098617680263640006662801954686100233553892012218367652039994091821105934292916543011757795370291894371087969412770225917450523833508361797742444868059999288578215382583504540686070744381360889986081897033768943934988706837276088985176616658402335018605106041235300442345994743401475878324538253128614410929268285238558760345213908623244682703430286742262569360268223942978643655009156854512939874351537390091282092525524313759788006996688363212036162422089906238971347095662561045141047348066593872276843604313188000024933142421343543762408208228974055142207080064652591426109196153810621158699717013559318346245961745034432140555300215978749199504671917003315259668805773271714063681707337571487950473116728347149659276687294320344579773873473354612020732251901816756960268004441679545012410581511261049774749891673402467597586139846000680430682561637613093680023488284027843309048972180520237218144601836835369927193117282044266583856504513353206522783558633153981616915479562726008792855647839760813720514816549300500737413034663118424616182594320616347701843406846087804033223153630694817232758811046067346176100482655125742363815712947396286413429159035821803460153337908550938967287456623531024203201879811805647215637868797855898857191053634620769645213663256132516095257721585949672908224690406286701564600947205359509631926409790361281525565416497787103910138633677786353612721987957903874875763742033221199461715948423405641409322884128894965292949320063356055177913659481648722746596899551645063968520005504466730351038988728285539704853642719233041521110584858571730888417117923827883969905447537205933478408814098929692974201410608978263584882869541996446988088554429599326477580559537782266482030536871462642586829828688275009813507151737467106991193539442438629147895209616908123869465729919862436839029442138274043792734689375450074149545312600475575585270451953434593411494839017502183239640798642252719669108359212903524660426899280272530806713797620399567833749365247175070035513338320632703754528287546040066735740574764166026381213350174717578798497191067681846482970676941516091115167037847216072812169745431553696272327068632320242464181687795445672122147642701848346596427783012037986158018202842031602997359772295039506555103892793823551623915227897146346919741393463792620844997166253644026610198165255279694036714289374181272047928389085103787579058269235854865730101154302766214938791124271232065333323119457294306228523639147403587746334734906526875506050979167027617146453661841845279042855641945207074897178910477238481502829815724014345306726465217929417272937791595743990504390057295835049942246683196605113402213324625010269803554986646383635522425331093086208046185974002717061368905370856882302388066911278556736478359570220152530346811735616617295927325666280540450394308383191939788916565237388360027880476641368528414480832655709126569330835864738275120425601413517554834168517399175672686161724054679990301912288565361929936338329912079447295428841961790750988559205027249170004021956317187579636767615182932460916104142671985066947299812561205961243649313695013468087958400790566645101447082151864937569875797709719608557599088097685219723710319684737918446765135580963366247647173044109414253558865546112797449627805578384491481411398845822566599124161322539266835150118332642707703943354198704783850668364229589915449453001240573860277786648247239710527121867588920761587077797506220949982327001330959540513504533726278107656181220958863550461159275082630217338576908467627201112339842088182561982237839122475519162872488143753295070287884472492725078123915317649484381592133502372945032128955242798835771925242965710906058175725764109512515546282388524436994618995236721652218569476518575583736460807882973136533899358688705907828696428794279902017234386948961086388675652700358679357810157891928818918421851020360086321765757527639330359034341405756867117314704793498000585800686914447854799074927179042872118776749458089571818851510888195290166459473618513850149609638247890968917431525597348564895264291329319040909971011873645461589710465544281060640166622978798620237832708959225545284739279917103432911210691812989750176098055593524300956825843290490412123246349792228290313927960063385244064096279126321119358335262696595604943994362543913570809959183888483939183682795705158318039262864750346494290354074390059790798605983816675058496451159095638267445368453129082464803978172843063284249149997336926630866586272907949978538036929986781547803981787924494260223836307724351743249237895696183587661410299910274133880186657006853972497703465719695882084801547129195471879297243307146025331154558747917027788499288591967244675657655648878225883626080604143012672993944236082500097075381569219540808052934735908057050950120731803440700337252539327526188553113875550406301429856905942583821232711277259163195289511345314411242270225616765588247620921322088897612860629213890190709647211488035080813216252126496675670713380554452569374891927918404549352332160164470280442794017124108458937730508463237042595735695608674410884913390654170114402782928479927990898560336688825817801186904911903899618161688680173812280069191744422889799513737865646577675207508069819882480913200529294595884038619380281851290937087614039441793084727266488189083966308737605577814236638946110083656137378277173992522945127162717259202111119247869621239789197004257575727351569152731526997757906359676100586368461942793020247151900763956078514096824660905039706659190583788771188574256041553305539770162381993785361771699224006576226478164837637830401053653197369562059757234377038157738484613806544065561010502267538679400653082567618493896879836639967192765283246354227539382863550037033765096927482276519441949432204236631331240746335237208310703110636338052808149562560632526523265846697898267806417772352195877884138260799547835902119992145769130007434161175712545137457052878939195793336450373165259549747049740513497537980750769300578817196605158672272995830112412037897284921591881516729133223895435960173437385301982640531857553405716297660282714511598573842684385664137291244022799843028555097018011327736874590469635015542600637107066913122945406564867029013481184918369976947124931920778846030813482652938600776176302176794718030661330381952503331125790305518945746572944923078100085869093900325711811876572318080534391070360177628810633466209436589242592874145374158580696582892194658134503295756149370695151354003978667450105214050462923003992517852998025833100422234837680417450640184124939430526231902565868146707687053291292091758862929277797756278983699510639468036526333013775548180456684828754600101760007083529582776007242470495853654719218747392286830556023733842264015625570054067326471338250124267279948581445356489110166919690438391494617766190108059352669643772049948281937050450518315090677630121054169432321008527915018167361223352697091192590235789495233644608615134799096255495820744424495767555498321695446241806513805775161722148829765433535030595121474594590118159714786680880445492333844823009149863915400352668770306602411705674329495058660164734075866157336477247067981041979229835598348817654345586441861734217348937018941798624212988102630691656506931103656431686029589869436443615944693294491369782422361171517604421773045881317882623057635389820927398006064938324924666626131710990983853011043137472763777815767729934400323753709847357732458783783451833837916747704980773891975991062218471768236260657910612942445075249516371904953166640331705121924251341912707253565213221986157672486703886474286865039482978135126184553615494914947959935221863810165538180969790056421663094452652290743655008261079473358960931346292643272101783365691344342301232765820001307988226077748558184244276126800728804541782706793337400197978687234274212199119519073110242431132847774576497720358135811289147751048317378852711166850173470043784376876458622356568154570973315751017598389963162489890377792097026751369979715362644378698791706569061341962392515327910334945293751464953595522994397663933911537220493518190966486985661338915947291910627132033601670558927447635437589806358051784209753844873972760505073105372986238791835055726110777604263187320155768728750666682457770073820770828948722135516856554798079627030041769612478190110216079977203854114388385470622434656750784232224176655180307404082776835385841944031102196847187674943377235400505269510837805209662313646458204814822148842696571389013231119498960022384113602990798409632843617697561262824079133554900451942833599659414431948029899028759273052538276590149619482514610162305107429025814188738498351797262657920496726323131386140454699110887283523927183461067467493660618359834487978062360283371146957687160469367122177109749992496476785457327857144889641802568990268495994264499604625500056465889064636402801165858739182051749738421416772088992384727050465571334108108805947861750520534998823668699525967374371844058745806345912383191305976461170075194560573281401840318612153030590110755689603533480756784850384892752362999447776823097859635924672719369706525228092566184018590892602155800981275848914262185999347752516940025447759982335067241346862854160811685102947735858830086806980236072105322638660211627752927869824267782104761757344325018952958195182807532689849975416786372654412843025727304898665073196687121882087378213488337951187612569080258330253220493159542996834445845849603320063284292274954807966642437661566067733649532266925131629197688594204945849709823116208305445484542005531334799875278458648514463421925743477930217829201951052497222930928536953236137079707181361115555439804961300202411549518685359827382299519484262431444339368785860475396308821011309871195534824247309436352697873303151892800232431791669296021079704323554509875626152715597321836263941448984105243262370567178547278511918842113545468793837649937124526120190940672754223163520538616032008036135837425884838672286666539337576057470759588742221122694800432117144742666304477336162917095378738078220648822730153694672037646700591179553745934828858038620676546806719145734404021815909835243686243812857297201076440146933837383549281414407056415453356207039491356274645892444678654100763438393281367069678699454657988241224098755971022635048036896137178231439336419332518068863475059718032302865868576501178391781212533811800473116905972958105904895025240048199232274548441243300515807980580064015429338008056570439482660521149576858870819835393907621052088611938239771957262759975478454902472903717920774424379009637413985065489564948749694961170857348312893210511828435191962407040348743849308411288125150648623649283670489038631316787396557124222394489545171645485349236617588067792598875734855282590285584070220129301861914190054456130003445336697760075867575725396666564686908888969896724178198794584048843287306231446602849474569176733757466971874356701550938369044137546067567189356823779399674269134851689225321381926870143506431358656134412194042981526202357157486413346699919777015905485224487635803389273826314205665168783002291579188688126676893350804484133205079288591611712477264774047067965833705485512044796127067429214398118394492796058921307002657725052810221876690590644409861674474284702607879340408806386573445869547558874765997928036422217408058244251273073020236077283877364711102631777229334737365560355706064576387624135156864649279721345753772408499658128931612391852061451509166385095265961909398216722472544437932585092359074326479215778947910779473036356174866292884103097922694737945963537499086700154123928560221850986743588192100545986858505582848304333096917026061071853709540380170519446622665094918442695338114131225473064509064022927359885596430237784065822421458722213563547012388756867232448032768038343043311946612022584840413427785328196251951477862832288673432476734350206979683634349249537128216775920499765149407436518431764931124278393889056542894403118343929862965482519758016714097266363335535056490975759850177221929865620260320912593201221098640011507984779356126613053134534825807538431746197041481931939645430085592253629938925023887050196746918720556543379947280038600141675434634650722540611511387105400903368486772677755975071660342528976137978949257082136267351963500931660262052243948024760620960741501284431853746690268911725387351617604425669118062856024487307611324092382960616405191546769711614370336692862497094927276291665500926207936235634353913565948052585166683353559737363660641075741983817034696032686300302336129172164115241633497146976440227154114739615861496065565151786805937675324431102432381847246666065096359305745161734987405110259957172065128714499090195057390775182131237897595270354839591303063589469700958160401346550192877371938684026270395936999358725595349399738644566444444344468385469547991985822908285082658688666291185687297321767063190426664972607259957995313556772388786481879417561358166699117888504701465104660152650432622835440079468749048960708159389509744352453559748395072245052073348563042691320750557203804613343375145981110239304388570678250445633088037722894070483378716856523014577706900038013052947035160093035198947970391830617946430952518188079339375494427872780382947702662319144241301991699866295099936458678783560126516371431342776978624798204826035335803375536061999934789469924047339559179427494767223550552130402258551262408831404550591766762627117204917987701811049949419835233174972895965038295108770010040427997707740421320300571615939377482804517577880657258628303574956168957190875882754156308642509572213002500467447182326321329983865325779901849390721805796773422108409281413394632116582848483055848969494395993877231102193812247441344501672834168410353075272139844630376227705441615526144464029459452440346982462721027769949468333944332150474611663506415706222075556526255693262316678292875494845116915204884327784148133978948626201063399133008743183444752247355485707120823992949019848266742716936264607618726422032760720644681672599046043515093954459553522513684962790902587368240530551223845792700585505408849557438350679773415566797288194185080933687350858240518989134646630460626772316033436515601904696677339694331854666166194775376538581145928627717455181780429958950761150296325878522927338144411619370029959675918651904888788485797095463721563772535675285631866690912025652552348931842125261352661328493925978889514656732124551168485213996973195584350979477487695352149904340732930664309517368722454693584542450506167938192408840628817476685123295957686608576305592599546209376862873797964705460116041113335836388417824559916712553838609500920290736145673966412177432671741350819908991443745228950218403412382232086224792934768174775815487419137343926930349092619141694146420057889955080085791153619768487142649336359457703670575239469419990208104289957611138063346968429453359015103334161531664016990855987674959837402412544346305851338431861534410357261055868901314020683349225769654078465524648132066324010311555138965659975814874777191702092094129350411077844017367821736851321273079496972514656181704405562968248535733149962493811711011206392049249116054342031692803313280515536275417510266325478813748007898454182440200579021169897891337283663193719366933317523566944211293028091199078827520441928361720640688896333182518720907062296659256517557313878568489011119888474200500697665604230155960634685509184462619344605765324201472660215517852511079870539798249174752478716463616861137255346212112385179045005014968084721017212938771683532422829199335930958637009385305117585024308537080773809577138712363875244628195684069483745042580207403340659132426680115406178862827781606520010288891173442314437223162020818616849035933763952896466192941686890389165378859490690296913814641722953034110486201751192120737463294311056801206564791092519028477455563754983118243133496912363200851037468885012347784583240017813974795394423845951049115311768987497690802725058164183587853680842341594357040250276043551481348034590374879394454011719350891143240325853303192793478383329416568559866296729692981345680305162453788151263716483716066858121124678253979488911272494088976425923651065991360278301860336734685108619417819498736962423661433137337567217325608208347328372877763661578169381118529386035988240842793282079405029140649644497714835446915143602781166128974555238575809035850533959329328975611799691549209260129596450382407578150852656386639740389943768426770705410411500517362278516509540019984175447720066480684321339126255093183022049836812530662074843853919003744894374610861287453009392928029443516942888289656024252304957391317744279525089639141388638820287863358252921010983875129651470084510747925617030405865014983101887087013977314232178914415184933400638559861084840301444839213732719235986260542145732798352302380630411430313305826732475207060592564937754884222673328420326422589493119421203340952888116496560237023818692530252322810367996843068932930038414113248215127055624767007941580691021022932222205253489262097510545976948644773630969891739964930614915493589836711773265191602187209652895357922616864752209224869564010585191541744251387215237621485546638591299582534530288876826218748592096159472679389427691730774163470887901213093338358552692508171523263916384550943722200070169260235349325839564254306210658822603466215626306939908341924763255385468936099824869881897038214957340524619942954113210675231411589949554138784098584062290273680966107330790880152202049112539382548272782166975521115490232372137910131169977972756266539592343432529772805707671745146609449162453186154865351021506816623872452222584624258027249503801289395807854626941675150164855455999415200175874896121524123018328485895807574944754778859639673066032475409614967788347311821989629457623066974321696723140875723924458150647548399424578969052168505577374025465970862609090547266886623705257260374457746171965015258722449834467218772491235316551963617452285815367659256641771002739666114726683801717406635817792223093861814806887959209792652053702036676600244592168660548784570361027629161328083180078687603179725236973264493148091447121982883864420115337593398614435131171099781317235684583133950895684401900604482748540054513608238479208003112422258000902216272474671670697690616186361790665266835587053048381755927316796557736326082413177198374950318466857380293286657956984566286770125812450649776231712414004094230476809301717238348444279388736621188438937994520188936879929935712336259255256308859490821972791455850736256092314425184537650572746055174786082902879237610089623084662037483050197439521422820729490464514756193516188553153832027361348223091940360174553085391441191646549739291311696780041073136092466076828458839210766315041890250878033143103555133013065474316538619371495269824950498344446117147540014218074633864620003265518495083555715940608958728818548032294448613335110140441209680724276736122781200686159508745383738041994155669082714962730070126162380196122314939161313130499762697998819586678236004674241930941129544965547962794189797555222796683531154248986731047193595846883875726571332399814560562186094291475124967368613270567127838716510974799484980662641822853307604426242606303157214412869694256981636828787101986353298960501437190704370469426995213550831874383114811431481961997998998348841500748019674244056398722046485758120766227634598194430698922163553881772494408381725623170892761354280228565229030168056768674487355642275624768135680286349698067889835637408438985186155591583515599010445563337488365199593647781565332463530068796328051428150515482874357683739947845043378098880238690545160729354049687949922236347613642455306667429142189295325207355869389756529542874217147595759706864882525122489057641670515788203316203375913191305709589126787938115219452770222574962241408761686370374750109381605502539856698875171124660909770315091949828329166946853944265709108128215425859211944359584274470208245905130078979544513638549882236890920687291971133337617461769177484977635971747916751662068304894090593895454428650785830555543631866648545588469418651071730481240454250089862781203323002864760075016990368493771794173033882486243668747752969970989131235267898688323441347571137018712196637151108495304439014353557558136852421023634435725330851768628704728557511942549119439572835762849242685773878902656585027631198473164508689604851897505051456692296098115688017945872580135898994706121717873426853903649291706612196851281521262707694228585137462634648750261538432195010006381981666385957379166812142941233611179120989898084400548190379373578253835193760731031134574450612559316911428680948007245566488073970133976779988852122054136290306522164008548304672121725172279312329989003529868904078154377466746167794058981205991281560160992670295086754845094942715442157173486914683389024713570648337610132222215530664521108650431662821225527678793432238525013644784122083819555092983646565090237499199120660918114983610276641353362494196362961843791920490823898210662548822991466554308102124102543549831875702890891907167071733734929394471100159652364750453395389161002533998404086977166299092233222009883240538992951282037902357823664130017120413005738563540151146156025493928049303978695710938010331649036036655760383782736641615190728326332853439999317579297487198593001720667955403973583595105353989705071129399095771462530509684838434353667966294508498732746631413191216595896614073499320131112610633187715179757497057017528293313883928413589361893662657876773462314824160135820100017195188324446062928326616752192525767023032041162410798103194379382856486693847077711645938120100999750972684887832106816972235016981558980008278024595209725579336505897861078798300080665387843150049469795891629910891994355069579209504496445715938345887268686883081325242153314327407794039869504762902415813616770944157248285732242229798632619729945912237696545547140662875606711052931514572786247001072185415709373886894759641223375708456796566837796140618033700073114733488996967767655447330244864594671917543506691529673054625113677982243542713000101574506642174765631934372199098794318193630115558300526853361831342683749461012592318996329345307079112435480235717408511218541832707479219428165079897928025351013012994487295302175119920728373271778466342322957855340645835076646105968689279115586500758416368549396125395057445197909468619557167811557953114473042469808128219427867468541674348976386776164223006373328574714629408046653607440935346850084650342031318468472735281164876028332898768307195476749804994508270989529374941553839801767150792124644040343979721395677592869223462608029159561906155502013813471165396770107977198482378214602847112208524377198381046537020223172037613555481948073086119253906796395914288862485155770937611877545710070321748600349674213884477132673467411632310803759790613545553059638874322554781724204582527666790366086055858084114497478817832616147726138766667014494402669370316336427575192198763330761420225404403534922147537401418294125763509259132147252321422375180447076286160983315354512552714900654788678360669305231224734826854745754165444016216332576498200487456735781841265203682465395297295645737832180100214322686581360850629709808706499580465257524937129422874216444015847973269765471871640462128914101143521939837527614322511747511933822772859429252544067900447870356734332394326783467558377806816865228702625723132950860327639523803385625174891704616554037132005617455227730884257110822924737829090344329987688497150811132216702934860294873651250700946815112882732414846529854302090093856403681317198461154734691623650306062142192154544892467145465196057980161674435470003038317985356592291398628072363162987644167531451214388040528430773476640417884402001776749295611694845920111699779075748519867739404227786629144989690311951698952695586856080199912787862399684151531387728154645553143028225224811680704769211669550987595702999249387368308872831826216703781206704403210907662143440636217899604104021987514435133283519597244098580521037196890232728653111807775863574372284388185621536290280073264256268883694155590417263862855219183420271901936692274782286763817445736223679503501240326113132901601937069236673618913845623523076911652916328382750837557983481576255644493777111138299252100341347219614612448519038016654371653271209544193764947975000494977690085722174060887155543807868452250250717669592830105925175441631381678446292529454891215539316809167170587655500747326061502138158180937108527191557300420346958690558111369338162653671596360454271756316957838987547537305151405347785925588931804687219006673511087205811070293399243712596343695524828631472570881200838946069288799748878655672505416643513151024513665319422278360659633883320435806330941791444731604536959116668090668521542137352112766673749731164180359749259568238323190552640430624742745718608538933529356408867910542623081340759491685004927599983706098248663893923835550851330096899834018360958959029804567600780412467396693065724094348502785321544757832563004509606201590097639221890210942810341889408671314333091489317805407469335039490511131611292361822561773255113476463521642231845240070356571428136234684657460042331554045872710322637069664888466099583187186659258044892165612032919290399741262634822946994010053448827392232711177094861877783489846912338794691040353089983687062106687467611017326611503518882767459392590310420434998096682857384840916768323292750598315310253810440821405900396777909245117299003047499322729237571352355481440435960018461227146028399483551500173884101545195296502274576365930845268900496570507360478787478828513878528623221010052693614619843551075550338002063430481357170004337713343437937314466197372564596202746590580213666670974151689102228175496145503953675585203398618783232343585178021562437193695162843731064667787369702100535673683003747210395199142274008603741594711383916109160798884844986058565484989541604078169619221005290927941209220003240299891829919420828870380583043226299906707162784221109742779782030873430476253614101130060238050776230219902179041612045170367415635102390964843199165039329784411052661715352584257898809937194424156616784125887932077506967814371256235992880964948496232488095464612329882400639940454478557452257076611770946421161675746706614154755540450371334772255827434589177904167052358376810397037508562368257461433644580603652673791092346575113396952724870462334396600309724556217229125483924889171245166740583017160748475599719543768747132792735222163845277750195964485005104052622316143303384482403548188789658989731099570715857694484413616274651588812556151902951254489804630652110838490401224853846195921608602962689727154073261062327436824537537100643055882304036422945179563828750684053640692181844893617857859121037059590788262460464218915288594690748329354088048840710457708805330615443735794232771247021150236473323614340221564386377770305674690261531272559155909921786428307987329314631400089049387181982262520298381884326485889409529497293059174319731107047966820875895053517404774457645686519351655567117792468379203427097032764282951843707943681034091272968257311761277690207655435904584718356806751740109118669567687714122701117692746961454222732618180181836601924413984477774363005072924746148758544587613178681510573887776389451832768969578890911313114283113158335741270897315326979297300300449775229498739643321509637893413730448570492566489667452839905508341737189632357064055957838180747250832786017000313002123555399972016221170435687430262940300943405774238733285552527587968643629918532110487214847740585013120659416297496257358077848771733754617446684074391536949984234696291538949525500281039486086433071884597819126752235902636905652582755945243562175847231096596871847482130923318234789343054618151265204003933657501919521183872665113153852602368385978660793079213109973622684877324662041071267905941071024013206047944188782070958534770836435617076587421146827700457595471556065487091193489012057342160739527786472065310562874211965061511874450658498766005605701120233260860770236274612465176910582717349345317306183590034451061098700299361422256022892731253233113420842444295702027015235377158528186293864492120790233396929521901954650049437581570603630136255383985914507411575174659105687544536291426018287617065952100640071741105139680193236814601467337445207607427304114522992209133659505037988838600452877980491338434162658944640607825220247733097806449050394329834860806203618703344413499433945415643731561429570372409591447380715383292007752484695590003846665864691446134383841551906775415300523035129081554152941128189482604925308493167232421164548217931435872656003162834183338519229908431652924432427435903704728703059391541939892949679103530465102771792013935483864665957810602173592143575516821320212335348441255579443289478695316185727345366096312383528703893459418870957198673456303914094238709317623393825676126778143289352805755306336892766645183129765763455606751631078945786913347229615617374607362178465861187923032502253913900222344077605612335300209201036724729573451816119047982887173103814182276415605895387305446713069955971673311980641216697025689040325382091539163687013307450383422828631144426068415947315262310553192969922193263983127852620926139668003874821514100359085764492080248088353034596398375748957425554911249407002449126463131549470920025141626311711230349989092030922673034139832895168900187833138718260703203657056980683429916777115442834432393770055215742636857363838105869584746531231305559125978867802950311792244808340140745077819751698360224092431728773152807678061131683077643565388306083999598911254783022368849124065151954596092959986211466364814098834175071566338067832894581334907725059775488165179002819807822997305613716214545927058789974109612592773935353204070441352722995553110474591359728436123843698416975864859351764885102050684713567605907211658782691194148403212785034885774891327940255650883504181163938068549258979891324896282104862349006758954884977135131453864476585709719648022936122677751898525583807791056796951616133344541279201813837169858095667757913314499281482532841960477990141189476052091862473992162417751715429643611833359753364142106460329337207435754990425064094308295113280375685167395653282246400111405111302662530272811301608686603748484807471306605369492385661147347407697278871347762747291717051202628746333625412705222272981692389927971169360722269961432430558791688017597555837846180252480630772946946501448350806694072111729512906051950095800431448806615030749844302516177242723194572789405828241309388937532940623696694256224840677537120081573398139055639993716928083279237803979430071856326701921554520790061902561606673930619469180195933693210968013988880974667502910379801999260622363066063853259154282480188284429277985764066032968684897222389711327022871727791874486514490696392214892302546834982915293824269613979443640254167846502589753904519530271937012208157665462309529449450291394733778516773144879915852987005853982008276907140091701971150807258155883505172848361505827258659611388337397381879538212250986539334014956072247267434638945296956662036852073433981060899268606669071868290159172088371049090873208834769958720105368961392946529346466319617905546989230614044707512077326057915427151360140616205474188512166594946361074385585610069110849901261907847409601893592199938623593461243364192801785625869729698356769300992962272936290692632646881102776324400141924174006042807682332943419324340715070221078670940533036726627503285341287299852447967457195057422246048512174398253425186038018006587347529624386883450202145660744022576616720095640321268561978444709109467882243730835469245976329268824377088042262911734310845241816443097892956111523000832930423022961288541655366981090665851003261257823358010194530092448745107270640425557710356093136219789432172333059051259614034325558625878539424290766948144928209516854678630027287134241727069745183447581961781250766665100993215912930790821535773873229906476043204879781646174606778681668656657506470324177742034069560742283091937703937077034850312906271798037420323869263197191231879179011261285371536601799470515642959418618623700412869256475820236956692357121391317347036365059592364303043292368674173777068439426211630817089934064904894995106297941856350729766330270150861195785123636239946906484560462785694085055283580072538721896026838999280986652943390463832994080325857980631944649371665650462578381835610889421973849159030166265650280068708080967665363997045661497332864349225408245843680195366389545565561018700290988908508129953454084314264772238997561393791629659582750623104727155389524974099544184159997121531927632143710883119757335058102751203725014845622694611882794140025973726412789878366683556368075695423023204961907315709842174548426140211675275692707433639815339667437869241257060352042732629206670974588945458499460470985886710271336861821745138721390928661339754729512630503416035768231022609653532067503103775521878247095556579768836292622733504862138526462318701985476794411091331742540314170138425742194837393563266876918676997407139126733285574366160442857627509617192326919136941816644572837587344610578890753424072004252822363712876100637458812061297374729496608524000687944356061818424066616622510186285226971251956764814350350714624727291336837240572012790379695191369688584983623998425713402662742968491129006339798578583873893404252707509382815352887743705002491253189900987551785667227485009810095485698037705707556651678262545275861666048155950980642243025587575533556242883774606944617835485121091362469888090561463878605782583309613094305678045740644522011076641116064779721553988472102303548579053341407661137258640556264661517381841714486357306464404969732462488719293828776842167332656137347128882280172672797598908972397397665321014722252280904572080855855701511761007347841394410138733541197650182894485147174941525471317360407614301832752714493816231905611138337084198975914726059070448321676431535678670364286063185957213413139288316898135982663678193713028784252087838037584584281616001517553703381650236480277567665925296476893486422635764385466483887661656197204815726370469875772576810597300530071942424264805084058541566694367493016563649957489394044137724413624282550115407236616005882458156092801792834718806502398171918275151214622784311975100525340316239748627159420945428183280178805898026638375965005723351326463726006983056113479314914879212589891961755329694926388284973753914157344347928253899168854089279031494040421236536503805604399156685427482606418548748413175393569987994952863327972148413253025000563046080380761846284719657634965375012700965847610553671470091123326983180708452388563747358278429548360662494091703434079170978622605204636711340130422605202729760982496575703775584737900310691552568863361125753984801331564076499345875837261043684032954910074535319446786504179720942953833612505898460196619043977549552104126241494942144592982753294406456229719502810203512102179918094391240997061005692572382650018539724333118438858369117551123973941722928823308836532584003620580804004285827371054023693280463995456127496692399979262679294386052309732213074369340696520258570068037185248590522778306299955797088522711050279578122776356337130920498828987848397379255167665427643927186827706108911158739180489194318986512363173967863532916207802809589917802056526979923266609505016713127522462550549161801110141604526724207948810185031707756649801828847181419595862219035390752939852290037307075063740202573090011447281563071480546810828195281958347504295745463583471769274422214094798601439153609598051545750247418539280473893357913155473963873145379580194204260573156902785271778187320706173253435337698731127254898243203904349799730931852080405368140574942563514693600549120316481517026281484333171631805235750963634954434960868787568397320479888790566939652063488973708326270661231845852249615271632687940205193438785285570826951914005329690798326567614686704413749895480077391577253443490615710824951254846606105124930810233336675115119694037376355937464578137503892599517059184430040437603211509318960644936868313791094664151268459797750545430389301704891993696458161767627706074888980229260409661465649895412411947767507220981701792710797475835862436704752617813571795584176166297064925878370107734431323724314364490211195785942439366450097690500559509997958900911716596796740367701778489356508746209981322153419994806589620089597515724408199543693982449816729841988935185990184352655869323432089906246430368406062647881652939861169393039917966136916442073377783345281473953246890979224099969962532652009341347057585213752584474384266520972264371728432393343782704339201611177683767919352651349593702620751770464899548406232296632338429726577798485338032085529479106447651855331950036579251327146913924506629765288161012128412614817345635145027629324067836770974430739848611178825099876388355756361090661506511664975079534045959601924167764520715864723087002731655833412649169850320786827498798047082541812540165347624446488909065134990953405668167055618529683917524220396211543823558468432919463536703039067294471227816523850958762841221131326899467208614899875422013728181788622295349672285794221017871278106215738288372563350831089891408313175042132563893006838934085061058246801152252032656507130762935778823555673463941676299178020751948515621490480351831212216577297716446054999545902735543901115113302424165748256309300708054396956439163880639822288320855243040760198668206472131753628376893634758661100690769718323647149220766816671217679434089727123185954762023194742881660648388738265124521733591375570021249697429671376884637972263979739486288203044190959743563658586462495059552607581473730533026663920221167975576434735150157857173836671383867842125667922695130782046584754266146402452833748992089557840067643292698971966762689360071633417944193713213477467560325770836673434024571775533384865844932886322782859633085839609933633988571274147595213060131903395982950539213102570435588756160002433439246122022516165752502802006821317314433165917690592633452557131149311198206167165453969191300262025715702425465381642024475376365877391081021066181958590231182085532175763981559441972820583362430415344530214859660431999551963747495903408917485004411918873076722836398993815671512763297120648854723761429522584564872320731574757161430985664470073225645575154616045465388971236677472341402774402038782859701791439912273488926303055331300719532076241942904404309101395695496243967421603168322442611432624996068498871488407727859279522103257928460702716358361831397072379939065722007471068948352598118400974209448938408054746729096681651255496356177787656455250017825188461752617965637704307520292885231240593160895762358851009349660364707512142191158289049264354931777488347637413995359998115435994901557201302914277315234159316202887142949481550273708136995817694983227494841054973324171173035523362582209120524342600249348122022725516423340186598959624119074256344252154169328204555235411790700561436390091600487943554868557889823169771552067672202391432660186363067526641865270979109962784849787449129953346352669636103350997336413565612208962254309077253948303151211641808850645602212279639712925869106653914564043480176194131358370152094351318868433655719345225588672492434940011468774223320988685937266558087306921705997352603765106148527808600667288858662703653989140144126820935351167353901448231770082233475748758822174777227253082965180343989336996629276881181901559267976346015118717205977328134729455675138027514773658498953352568857026362158647580490689657445116003665163547477549357156718403418493918920758810236802953386003323913289321050255177704461281097117956906129073827251586739180202761775118792585687414436454912820606725811324440869289890453514301815039775371791390811567325223356618119034429541434024249396757072954386443180370556032995711840341356420774089301158364603348080645190215613073544889002261140098407466407732216583397345216936769180375813947352056954145083930588487209338830107856045248020493307939035892922010078437550180006661375447200911285613016682184177983554855933224135503117148796091828105072847463267351366535797859926778542782820617168537567338324043359400471517154844039533475817103739708812342377277192221546408923263797631549447304128854482888975579633296322053652370839692336115346692774718534574721070546828292179250387748726469192119814600170017416579678923668556467804762683985478523119160567856764648683168711581144278223730480612352400339213863503635934668983473317582298139921293715121031279149883722219237324843368182854565853272214416591993042038005916209048532738488419702790336041984874100858559644703227693189404643344612382831638173811589459521139176678818154956249756351771730177147781876380428159504201399653924935037471695033047815922232252073072793460363539553570384317785192983323463703730852005863400426802621705332489833700568183382450082126617102655729558144270268604996449509938963328750809980218156775438381846295454582319394371017829553541051563071249283971708744558986102006266494893522500929232005882899974517097441219342820046572056308100982463368537306915256594898192869612715875383435900899338255203456288848123661832001725603278409093667641809571336940086624334660836337548114507207211084267792097048807883813432107131653434616438184803973929863311434420710259333139526856104834087897445707270514407715657235860257074681158758858103441219876817669710229565675090525080060616755354266677564874289344117429824905611205110169477334308618674385675311846928357246148299152434644386557748929232797360532944637476402295093584771589421147124944060459380957583767153961180169108660995382173283704980309766654274396773233329758961764276249343749517833888446962742186538933297492403292849164470110590323016151068977840431680082731271066615858158707264733482841920243163263648220974097359811659847384351692275312956155687884237000933158153294866659130880133008881093334462789713025943337714240325527896788018896882928065401003256170277385259240753602342041143009517337832842784402786746511832974399687687253984533418228111443392156504007114479846537802078653202127472330987171811419270917593425914315629767072100813066990919320593276485998037981035619818632483060308517578828734375175508685269327106140823309192853662648414179936071072695804834105331705740614068546723429751090033189639487234405937537040365397149598223231346923887538195565677318201556465827793755617562410210920555808602137911066827550243635586483136240680618813317986211008614016311771435222988458391109496729792157469462355896883998213754713332697574153843219877676747991677771865747517326602698081023937116006795398170733425695564692164273597308914111168720228958602368661492331518184510033715890039851048267268760374567238245746046121717952237135076032463215011053621965281553229221998235455326488238552203523616408444469367958450896531059933522555479413919940483178582489226449373514418294282434171739800949043601919196567453855021746110977905516567626400656936933401498084384774611845341998843724690961977427845170012115100011699736817798366691580972845178787408049942417158813009051061095572611929940998664751336768580580256367626279024104999232865374013602473261935814828190310572336603802273252902832431970498672779561420780678836943300290289332825618484912481352800897426099992571076622945011977419196723186883635807389136290544304515397656299905416860751026291505743685060619715187131323854477027059640280968304692517066079845829961619439992258061806879182393317232453120269906176163969344171551518226212946356628613575769895728251297981557675461054735042491693491033739543447457396112847867415484457948546611126754540840607970147937823131928437280904314749957958000313461984653296280854823942312383308698760668834388776919109098193409812859698709136938982156082685612340465899589810816894009421707923418360741268985624249338371764599763735693627838301032669601744162516590799344394027589821027450310489589241369557139944058585162099551334351128543927965102827296730921923694251048471767419765078946599786782430344709186453564586327324436229120072080176217200356112818623000653576377089614454856671292599432620776758857438784329996182766592702444424433630277463669612990302414908897312580720162415124654790807169269790171686055457319655477163971841933836293824291876869676929264016002574118519909303313223509206736805986706152268333922105762889243624111682736874980446786594327400263343270190402906672480383503903265851590958905997410547464919940003206061575626903192552271307340572285987705093028478207214030800452534690299279477085998085130110599291336575720469014940361317330631861324234915441949791432086643667968255932739763124531039411307958025310332312051872493991667001237388910122495740923951859815662491650512020659318287005180849647725048527901020207627322325596064843836507225709246665534760130222565328364408227716440937177214298503844293081604562495391270731166412070072086653193581558887923971899171792405540170395496334277674248596582405492033881125753798615745591539962798498996280082140260687147872039255810193160035374646176209095536565971349201970134964340378617124455160963153364845506604201436302149915965228487559205349980694539219165468798678458017699321969374340543743755045242854362795407615826670410018995367570959370125272310476076352356701980091680767021851935414469651960832225907344070407118576773935854769577954277621664702435223111012006699217042935633262670602266694440222433775093915555290155895790684836675804485878647619937298731612479684665514174044804492862630509497953950133896018841507058598411704461880367154360496352940800120535749680884772189121034839961554461699874002278262812307061531393563417670207964235047317191628264383437652899496264974855581730801687937153295955854297748218826630842183485142296413510305894487515211924945824450616464088611154548545872313025011059426550136471838591501905350538031316749413077005705782302951887992465338504875688776938568865516311670883867145142403310637600415608256819857199378701830550431627390159073640038849049509134690566385732468534979153610922448417294067595163639247289860072162233640194938237456521308401759768853366027986416890789328209536965234474422310674129252386002401452000557820484792619880531001430013947643870817479452962379550988638801396192944366530815434317673018382947505847016162002876969350338099648340415680100374024319143479349906839022080355994301951129991863692988052268586591484448190927554876706161736168324165944044424974633242879498243113152265526897215896424110953174747819223644816422044089119696995484013924684221040025057684966291086810336138462865325310095586773027431854582638830547414753599383356181993336093842565506622274385574233338937269403686559148844972913856029550261189731139507373387974803124773641173400324089608086811679571333433768106516823721382825778558844975433022601804608189784174808287844824124859695575316413101304023899510491775049955102012572664958100296144722231413284378655371428476202391317835315654752599911384381573588344790840296717150991893375304890865228222192297001091022391205829066487629966681462951053229770137234496873689234091839673860537320081209721432163127649461201681075611947391090636343769888239165094101248964092134368649260081814942538228106976464638433087594823647505797086286765274411402481576328931841539381150408766752757741748004687221269106590444160987330235441480415957916046623555511212846115929680551201902281591868022754445944344531494453948340168170152634559301868257473709152849079083029893146189174328031677969505566681092956953428561552282398138601815464679189520560158589032816001655079647518622529517411361337328931579470694669526148636890697865430069067570551370951289393131917579561864594178354451296114363762556851149525180636931146401248909676511878656922555992451089116691294676323707536883508564461231358401097551717426116310123029568976108186402684450076795305424716339995678444253675042991482092202683877559833204700852782663116496980252241416220757266665275788660073728802350355367146289845002952548564036227494056323717479353983745927705875907074854211142790637212336662560308832853346362621532040797195126902126550684631601912325337912129302141117839373652330901503563470172738920340924329104578077353982308234074606461847057283752597568548676213550466555312583886229001166880746840841470380719692259986189246342003905523785206715149450753538342779664401555234089651011981947777605265792483772902028471088057914730563251464737923964749273067749934686455381411508315968511509705462086658656124575278605876520594821802436635714944828264155639067855853889382676966875232114525078677179267803234021170430309265096103408356891345012251767821736747344316308958293885627479764851651277136515887805428005893584463193360604257300594367040333250404137312330759877135859767932459721464026908989851177385906593453160339043965471657571682917777195771171267381534750651839271063473654210310721815742330300836890999120310107930663406655902574680955648678836075310062494948212565188122532103450918997520066969964233318293904935311250120324955347547246799791591432944720545831905912818100032623991034438928518208123597856155948347705984672852141209464536654678017680680632679864558585649068845222966262486682701673346843713280525427503201854831121145842269022475236490255014877758978246814229908996474644992045439567303343406270787155145804765897927411396314425345586072799689495529263605199232924803487408333883575498215727542621665409129338417487999252327425673301548494450767763244182246654738385122070698189557795794067438487887639193957335568193206395924506006561996328684297381675254473484517143208969554691321050710716231483713060647885313051253770116100276889739903519550054844851438457802466664182032983171953172039155594677572905258063062390748498327955600372695871796617623191681835641456480574017936322906188638447075404584169028822262840202161149852330376650948319077156231626520999224285683189932633000073502413474338562060052482379089049177492392559793499610586329310232760042960200492527451596590791889525471877613134713998090371342872603641210104107117220676098164987674698574828217692015317324581134992364428500548549996079596162367363267564722578866481310601931019967095801585397275532614816411127941423942480053292332609986886370674917876270052530004808192196430479200100516136053638031265254324795654064012367670507344838953868448168320801465819917577376897033055189995845718088145449610646193431432518357699730840434599040225503050416018306672798841932322907531169771984877149546131442098976428663962330308700724602003714298113968625060575731324360943644232854611315673425265360169654956272009381988341333020373552518498385188621415807694344933746955780990089543626019351925682330055875418892254394749072322637097443143564719016373529608120253318748068798780791114797390185403004153695147567276379275778632411337788135816879921872023827315521419029094123025192449657555454921907012049944218928133751801188655716380703772965942999297658514424089007836615622767290278373633635702068329897618146930671898466226636155591324337214705824199198074661948132084377384370157682564663867017063310718050613827624029216967176430785986845810959580930501469068236940536845017510367368639585638952780664980619777019240197036914778195743824044618908874217838563747323941076086117352610052154618903252968038186276422205340652909333804967729513785672740940344423576968064944729744227715481961475710260888546909448196997451312792559304437344285944081826687903448716687866724501701630615174638242321341255231757416597421026660262767833027746478158804549670995951273037699998914612190548559732633806391420788003761940036504906944610799884953323412243027399380127348905439793063959174314307385854738010749938357900117949080142396744524633859674960327111084791615808921279336807263427145572119207473736007434019795346478410994328068112156371956553892967072409875690329470227261579886396842069363023508170793874630701450295683599175177088498211821801850370324401711469120913789536422902212514923667472706683809691228871545992672764058339054886771836531371681732528720834669811749750667168354520050963201014246536235225490436332428530873377203020073813363879426535121760761426593518249612350384891987483484647744941034329688536295764279607102913374139782129632700267665259412121695544590288618849770702316184980275298731172477615115478115739642385385390870932706028295556946071009920707592656018602597297972720850008209649176454028841549509359757638132528604423961085285701900131077072839842427919339208942534554514946613326114056565306639951135713508511738870856827695026968424139605127828324288440291909670416106197434246565020530292391704728839344242346392000016200393360406173249969447111000533535289069654591651952374445065049949301823419482327956393347391098313891172759351394524785840750530476122624973524736548604356050451649117455401670107864825496894743304662108433316006491183693582678090415071116327093625912367449067567176035926861306718213863413413958826800229423188326458807520611544997167774929612820902054142232966115777464439236738014928569163246977336077417543426510523665168175197372226239705774019806439056033844454552311438524456759729650376270865159492492606295878676184792955038675321765410894282512114971449367526573139949304625208181701114174931728348222059411797414556428715071395566384999108644255157963605659133543219500163871083722933911079407157413375548937054713450420969946041220118540007656975163795424425803630742009360565652361616678858586929663741189672574013566716348266991388424040274800210314833158702519563153943900199976560022675594029061432857097101763791325049952805445949666300178050827670364636124172604357349338622241316896683139476757539474319314471470323030373869526531441351436490969975912625336508457973857463239829771129250441282369582479538442509041522972960004002896407503283910993414724075816655708460352594801044811503981753688505550620288392019483660766844285345923166882190006659880634096701435455068710991946595208534055212715302976650066049525621268688772334144629129413256231807957299580468469790229313154624507654468387573270877736253211072242397089244456096835888465016817498257855760967140595986571984969726750511922792513060063938526988999674148061314907251614024351938212332931666662771915723106341449675656597407000030704901991287121223538464522999716282271167276231768072524267064454139660736535546272717963052927915977130507816323092485809642837725814477949452152968329304388260454302972265497721621077785568819264160380852989184845792839490688139294883442168499657489732758242248360783201498537873192419390592381807339914811128143354363384863381311566361387916322325575819622373871348957684670818899347434593560911019370156121683486086026940504341200729217945235277960807428897770006707216456070358481840338883518770155646262814714291422992322704016077348211202320321186553559962409861465223165584010696229523098975204701543759427567029562737291345653583091023568217539975465809207890639484572899462652806708220842675192757452375794969599557155720175266027579466952354693353063338597836508832618603883507935931135763995636627622568875002989008641662296029279467538635515070587119625174573075507436739962747758552929778607477939632152041814483517937810663536660911105154293793964787518777949900876319670782255500880485167500770890665753748816690898114398644354410283797546952919873285616047541095537029407835173435564368339549664022738515240029168215754289021172699243055555703956381608398388889533289424492712705825986614362466023055832442164779512188772864458585426438549644675017987031040607983605427781567204618915782257448447227168281567219078093514055595538403454118395248453843019320770777300993366878032349230734116844707036282978676307209424687882456422844890129831173435757455238792302524263640023446742819665199821461395561933756685871607894496975245537980227374813068701281152414336411922400397600359345242965568447156118806797511048534564095980514472195305812339086897487050764644993320112479405650604532138731072736196473159556165950424199669524959243960291525586169020177605024455623985728184339366639011976302846776684996735360521739708973158953077225933082759090131328852389740229701078386663394963463783370085496063769647520145542595242712108565656007088368972121814097392497901401244372182540494007761540233019748848941007944826143130039741492548863284660005111028100744355198636674557234916937936107336845627526763468800569710833458963655531337050841592883332977215073372390407777438274858767345929448549120564833793686338893270862505017908575025635091594180506855135091039984038364378659465315098467387663329701450962719741366214122718805817205739134187856701263762357082085042632517618075012636786839380922580478417287141789866623893889896705957996215236717010028744951687984904234871931595683851282151849081226724628452343674855208518885056713254528692620495785958017955308496021508635096236854982244180241588718664883875994018575853598347595522695782843611509017317193261875030956001844982390792098500033955503116357700637530044908918915151575775708606777058660942010132878625336522959494242101989824844003262396843379431370421829630787708739392613301666266353829232750398161204380966872807028276251136574213175900262228226110751314400271078612512231634437774313373174332434755585629470122012584649239490218140484504537757301642918894842909659364486520307834840294428389810792402144953499602154025142989228245198028133615792596193145538890000113344850276877959054641712733086466594868861099578926937113887442179300065956552431232621065782417004171085971579406181325194156450264111763019461894257439576931152624807660712190984263077264723164253091970126720537752983488593310969649807619207855092621260546139671895503818269323398438850991636150469629514879833363097904684644749926300687652311755054865924649836465873719137585029176582097482825508732030123924601038445897270863182657011256797983441981177149860937106385091429807093728114384569017974274820196246037302003400051796988252314754856857717609653665632673530620569664156338554517896503172020575820476351411654025378290342742165864293953191376878802677550919107735258437513808249712179029240165429616657306464572121807933550633567319139227883627143586144615058541484242014331280455690611233947811574040421359154498665096536688768962579402068024382379335742412592993836355068204427641232409157521185699431074739973383983991253988135644597603100610548169512583563330188448508688497147272717219893591161247286327860356946825633159002703532118487028262617669647322965874324039901306937804182367707162231467644313948247129336659724912502193892952133527436896174137355066347044300253785180575459999749385282654886001119091202734337925521411173868018786726945930278196208242915211857755746685349558102314265582538165208891666830824755345407244745824014880233386142330336585723751227303678892317218128852738467764524055509077824350848445327219425880877928206157602461875845467692522716570615536284627958875617938959932641929754392165271549295928913419455612907718258237384590973506140219186523498872776129718616310191524133193264470857024604220175428261019075832736288533578350169958601221534016039030155355932175630199030074363141147108448095509164429725004028159522514146573264870577139232996740910211318089884816331443814997114190921583008627344462109654515964608026320100975978045959913542360331367746965496120921695150046019369818755808612447863785968029833337170792387443825951582658659267771558759004437037808978476167948009879073347370774126312969916796512629513186004925775348497248091509654441768916139792686935251570696231762696095064170755111186881856766222589069628195355244720668960049309016741388185630107029753727284286250235311230236101765362890588087495139621159795552351612837817200941883226926661645110011087001795462667501009211666176469530861721319989816279779704640047558745024612743884916492035934659043896083461635551717678600537507332834086318983590502571347367755809084790382174793046148593701025120384809252432575181778854245551790470020907294197194187039447032189241726263395487549307865443994781313736490545006039768659396191702947504684001170304316615881664484145156484065050936203172938123488181380449853356284849969558024296899661177627036480638311700333958996398561641900117590324074852991650264375069811698098336612773043056543982859239959376648890625458364648451320810142615004468430618044632416467631512172338705135463289796605872072103816387013930286568876173876057939190005116230006530208493713267774909024644394083171363460467836945231709018931428284714369143942167076129861405624221762190178911780647836727894905920910035857035689682214231224162348394601329252073331897760576099722163837152800755811931183795815073710797747041407192849814289560986103245908181742633965989089533151950279080240938162590658200297452388529372321871976058286271626935446268002990492764677313190828983182649863854781436201805598447273500299273426274482670259228364319700700854216422962116757628863491043154576093367551668209717943387522000653062902277458723947333737835603911778371135815872146389340330050854290057234249149136667175891344036634288669915832850559128049043971934573124207399691217241012114505757219681215424925620777306584946186310700875061146014030837764449451405468614222979143605336710662650999827492526823437058343785103524412359452188125949938189643786101000755498208130066764447524011053962114544794064231799396490718816974208578584024679670716797354340069406659346326023462732871054461510696794200554330425841509266200258161736343105925497685908739289444079533589250425365574809041374080616164401687388299898026891496369309366816742990242863021960389064567688509560165685653459527617167350598635847254671480707690404369183910486400931889399206397440445441699139260404400242810824466051652648347972009274631385951704513899300176128117357754084698107724304195925047350840310840562313161526805946613148054041717945214932738736738714905413312701987398181733531932759650781075956044711554564414507821440182448872896974051992680957617825986650998640296886969406099135460512937188471631146820411339204331015189989098187132110612933654607286166162337238243164424815965252809602864305863575528038755908487267859249171504257117004962630872783744003144712155732395284543239050486860923522140849201841846138612820797762417925010488858889502525137690236831119644045506953292277757951331786627665367404497980041569894969995129130135589535520096324585755497386164921050652130754854856442350492326206621563330834195505882434966210932419213671354575225232169140375469399064684494437430085348329748239325151734549113654280280968773805854795376391382607451549784958570843390694770018995427676620138711323471416090980120580645896688829833688900714372401432575501140285324097545176509060454834955070194584812638821173530847291040268389636858350013389643292974699608484076296923855974625024855717553759078310858231681893621828708737117796070963776664623220722856031661997075014139045505491380647729482889050169761753538682446623347428431875743578235382935818828563802406322498038263161152899791316469133428702975390979275019267649414977429451321786595584195037156043962507493992771370109880340830806963785138432775436166748399678028714239837263398395972007897804112482665643245542322799829084390014868083601900163058223706200014308438008374247487824348653149694603133146559502411607886923614705467420918843648261515797182476079852926990818116534471854920239334149035953607736756557590487781724585744233268105919584827763826927468094254425182613279795006471505063891796145518551138265245286661362055203174596419953192447775357478991684894614402067455199507605597351672368542805069593330898324928208739417876125914288489429050622725717434256212737054843925465915396106502971041615710106993373731212443836740021870987850538026226595821572941622853903709254704238228473018406605131163072429428604925388578353385265207062624791513672355744573108103298747018124318697467014525587089512045623561762164827267695683066507707866426329728671591920781960504772242936735696393413291552703606657598144378498587883886976802136809604543054972407081855975332358253528517417874394573216548908640403176961738878885568506543549122511637122948199651361386338976226673603744193211520022889366256490220595357256230609172297963098345458384067475632983171628395450802129207962811290102472702870516673022117239866985905489533671015119856227815385773141226326910585616215959765810162194632042454330055285185271702191138536203843838108422327943741535817981372679227419630415703619731683895312115631158035359339941888851357606316256790680472259123392413622282977865436731043628855599882197988081760930571279935121840393759960029832893395095181942932173298528787964682029557989508910855799268002230186120025371724468549833785744588291188084372550504651167756841564181411642336225203207840982985082908116149160949781963530504818666629395720677726612984993597316863096499960542132808529154301104329604427016207052845365440426462362426349454122557912749672690046418000234485558924835131476396630603662462518609592134085275487893335689069438973641879212939355483703223856797786386824406459239031006231846516780190850982329673996732227146863358917927754942824741977914021783362982128751315724567053100010226271651072251985230219177578643458912651182143247402506749298092939324102645801427773455207960030693232368714570316505847501704669671438887673856473162015025999386484077511240141448294908640412058100794831522935853002629616495881636018571687111337549791441230685842818740089736094858883904499525677409713287029914875178266106923503463123786261792894175777184571402378155743094632767194146717155485838759242173766225416009416572829382066997210871503041906639305047580538651102030831814023524556122624617453239874040213160265818736384036715455728309260031237481899128153196685766762263586176371741148804209133378706837943495475842634809525635344181400568860210230670483363364585761314056150557609922008365107448865322199284882728301392689791909599204036043375223165217126961772521152643701280005715568962594812564755902490327525889235346895237457739273985209584676938288336481455933088918148792321129842973829600507864508608977183936429260500141160098339018392200520139397166002746140323691220748128375593810852485845494580892980651440659615111934517134634555844615011035831047901285245295119042994493317468842858080339055253916300843725387205080324134106716838594445595582686209547283155762169011282272020492619199806279314304094687864567385282913520998743542782270394047131505390249718767472222488065238068161092087272656848962369513222557717080846591327076523795769331763458118418074396719804558469573240228087202440733903359485925276973260460778705665674178982804579368054328091728981021608290515148177205141087897673178056226856125837797543007030719149961165863144515459622614292853762423691762609269534538203903797852113664507428623546877701153546611821637987524213013550912272372545318504766982589301947974306752199025350668009052205994321534674303601174992175612075912298784311756404237487007921656137302866842247262827491582366502629259688717935576794093376576651342074214713805983966366825034062286151905188857573189549925834907965207223367983322099887523311021316667936547750567253681655828963528799124236984250553379600215847810770183199570574094121120365560196100251981041572993804793489612576422985400358975487559662243921883834938927842769404206680189303418579632748092339519697920782103359965222287171459189785933920089739561924169136187551378842757720125605769330792834926932954098668191048462920210548312874981234656458984629531754311371838349263799917629019322685205429375683239816060771948873412736148253362683571722391552280295480918954520573721827850812245839221248272284406100807946859058265542187060895683286828325588348740926110168920933907231756236927321041169123254132775703335826797835866355107170065807621487191524468684211885518106448594685165826929538475417625317573589534624032164551364823483971287035758192992340149303360545211321069576018504975474804486743670505156803614499607264279682201826491867163840415059963361708457369459510753340232366509266267628244419854174433857637302982207263683753472726994407011956021491498095457659241634801939412782768315871424811789429703484671784313534790528481479283733854228807640330443628741818937484045913097024067833553660996000791755126825343570343932040051413966559957358211304074047559893588482305571499890368126647708201488866870842418550035987022535331142332449415685484666687224816863916497239476795052748707303322347707020452204075134218840299555745957427918102441810099956892340067400710215856539592461606770893446939124825706132212979809522637607378238115833975259071604933103764002288371433001736035785094410249953150780319031960259929188172852777570330090975718538476010860767618123211399229815639312559160539144072275397900353341676127207049943518620540342601482613692778917992635359356081063128274846713064437452346905153670753079625971811764248484320354443235995899695738920961979434398097565844158688660270537763572833302304889575778291770463061314870212949649834382093756389487731705539265618307139248084615269044543984643978895432030474977579156848700804520073605073679202873874268841123855597741096471013613219873064972725716849287358412471423077803194341801505687876957109544308071718750202485584004366000377287220613424932670076422975691304828727856703507793731519029620015572273993419281180110294910526791051332816793514862702968380693939156770175233874361165921819386890927358208520431112488675578053999284114588965789583558267923641818309055417504473514118087092022751502214351396758165997750790421447038759244661742688351983503250519212334017178844335438495635865426459741293995026750525141688862544065423242345285898848716722693437546101678028070940495253629809552863299280178673560837055852443654212718868042345962109731551374317441593425023884146821722664297869524981557975848943678566728281579698799638236085084630949350060620401434016226019254770387199254395910893087407250235403147641104817757477350454127675112153916958150058864982245584681330922174534213295266544024428276102700406491180301929541302173517879020008325129272283992126841550126762558087541601742302499821817055149209417520890906985554595834720166467317300564097239373731851269050356962728058172661786475003645242176520325135459847371610895990646347108904930868683460665083331875814629975644212260142461361945235153071279555437881389869646541677933221750555639673008501821771807244786928750178285160300635274550314840652387695216620358148610305980143045548879053595521281855205802861787674406707144802841804089083304935180125572462878000842718470798473362054884788519958375606291351083268021990284430487284945391304692104342124980018015855537153364213104943675042424619401880781948351903399032688158398378108862212777434602035321408845121940298603643396908757770475284163159223480265746158927539155122763514006297388111665855324176017451177938638180268526925676206700807640520867773240077433371125941996982265897302935118922878323852219372806932352071010802489081579181133188693298510119860244817465415773690182487071097429804615579613408586556791182057359777162978287535077547023297775874053243098342264377872533260058448256351701045154562564123009071789638417486795965733945064703468830645568384992961578701130181931812446910216839106437906707574775687141232697262046953317402940923548600344370509877831856980690474670800413460917145267633172055413308925718200928829012792913148640626008975410253683109641505310215472948621248122523141315193833882373037859828696469889238498119139881701260762184006735764290627473560153191782938067319290737280025123270488408543964020714294665006478150258321129739807170165597431202590816420841307184391417718262586173241805789738526388708732738244083518886993955919269846490377703694536441506068416812005132450152945913295093837879367513726589403369271084206589341815725786737647622368377601176899055300934929560664291047113531839983441514393668573022936512784857268108267018943211226519370345807911258502371767881934310285004400343225278763414292397535236562429200522915717669531671814031943347806558633462596596335622864827949057683245982774101181364037655530259341075165066801352612572426788287737438769486930109552618215947830271741028444528296530319417800079287094043798689424476523256019558816776317402686795078095606040112169279985275475160576699533956275018159029084385577681687460523279696353856467090300601762788960351908725124073753470658545673529548494526294420217266818186070152961696964810552484967477517741872575303512024759600877215558018988572079082439391798971623880045717573381869627761128727226793121959857382050277937490370446147784299351972573784516422239172591527780198438630067722991447832724994454986137908234781847069783891254910795883312515381278423877784335965200076269944054767018961957739756273536862224146798142100647888671640621745520747594459581890950319677067837636316689063204475207653749317822453882478995976510063274569639970527378811113044429720293006256734421603820961196596561527664858329494611285827722811072441201383949932760567652707096826566523402699058572336722000919584020947343073595666189679496738765619811650955150950059669480111025671126448216807700592352531969002962396463482629693221168741582406064340183802433794664025026717975879296995028472725400556419737192962449888409625041119030202186506841684673180096412629717100839208680023121945357344390747250779535250813638840099171009654131974867122418073032522021999446821201833952722412657987027245817811051246029294481595975120041088402210586151344889409052584489485889907036761254667994549340382823259500209028127579096051009875836766751509047178016146776370646666483045453355761003676520452485415410108010004328334371969833108140674093660909770380947222706406637123938211994222055819843652400172894793420620937365224731536610820856560100819336916846883573726485497247266011406598259505982237322928908848809675653627835080672075013380060579343832766408907300191065630628585770211157690014047605130226681884471064031352172358005887952899717286119203249612339730244047372686197220915957592040752024183317573318309259026362006812990243585129368657678042139327415493533245930921231815489111752508070738150129311207502931471058129984226109014750143603620908081781411094939122376199502281519582816921232520043060678904491240145316766858321055507033080857941432920516083120147535581713650221097490605204584209517833583184227971743070209174820017164420586203529963681026755296200543435911960569188553702655156192578474060348044105641879001459520470690303064804907026329705562090212027358832869997030572290774278811556435540634541075971204684237929455363317443092931028859294957492867608194553138386333213914028198472537901142146888624987936940091650751895998870319973605298168511634588627760298065210857459355908200462390595379403507608718104723919694243348803993852469124393354204202724384749177730933299354760592111093710771528713572706306544191670425970748826802490889648633035572102791072509102040070559379696724713331327526537277598311317182042762587633331492367156696384552541384876137683850609364983006514117880575568269272937941488919264604771166175630865846111819224767959504848450756209215808235593731800424926790779101955678349843080298586514089330010576817441482728656321355193116012898757156129908401851739238451885268355920205161949253251182955745053885095590579214442800043732074337787111079461678773330808758550964366358461458895554755747987545461902044993137438164175922934803218124611824935208673249576208628105254187215064548270869563067093618878650003054081379218877539760603932250071509248885011740612167710164920290710012286000133053581677823453862667278760406697039656843987023234561324431057083380242226158438450801163067313619402226172416386359225893911618122854473015899078216296595217958755651133097686000381311198556675591867779349368588548586435405816381958117082872272674434136306861122058855060885754146731485360543669409796561498006328443530655283913002504881407969459067736447837135790286305646931766508957532380588386266838751421296254525127018212301730269069315137483091604494119882129870765705705677468716576772260741212571621832681247959915698144670808997266321316840071493824868586309099328020323179435718501290155239241651224972401028058101351951761477701877030956210890691958374666741592443021677738717986596711326586928263552512124212984141637325562890116786121156930374459501782448041857358558295945223548392647186320365446117323698237700261603385936344185391768032745965627637369972219738049604005947132051365813203412550175992958070620021626027065373418822158266174421429601517219505446482908927177335651263348056889792208691228046447191429081038636959656804125586139649436061734451907416487548831910705485269997450145493430999832660370099654711260956559780060655283591890712642834641423878945465786945933878378159666775763940270825301121513279862963872604989121220227169689035594683332001908194624606397743873597704078687288109051076812098233254545911920862191237249282620424161262480691607768702564779263501721717869661923710750687855603654037882966023223900952503425753612831169841734506758169638140044198422522812291003107666747303235594509196680252698168839380107642474575375365260771656867105643907785581168801770162663123213788459863305159760980423796858832631036448138196963775853956599067713686215374421490231595613745810125519978443179712770204582595907377378358860904142272925542152080218235638245369922071547876178711671765972068703048584972870025192451993262507045261811706718651226037386721767400154644876904284157846347907293492366798942713230563637716488950282733377911184044039899242027763250380143680731762196187080832425421238599270049872761637299468298862374068714853258773544829597814559968181016996450501489525007741959835021282692658423432675373939761284959645958560131184770359254241007783322165826370666872378262298226888782365634445245420769098092657643093866212538641593074790317244594948388708234854006748181831234289357341866881971671457850044496841827484073789591136778748184762451179755636375661604479720670994129089786110062413846307535569500479396774264623490543866119208622360952764272253247150118569241098503102380511113507330818534983540702772282817024009507324534122957393775793706716288027985505362209407725726488400244788990050125468192282055481786794374712595410007588506321128320008348682269967806913355821582386573245485926128685969865405136234439848089824862187231801971209671199191920589261850680663236524660162688116932717306462344925573222060584742610481189912414431569599893005588404715180416537614743491652016990553296366123733140338579130084465692894482318327490633837964361857902581415796853016611959189929796542108713082998978014276331939583813396332981185126202079383912609316216976335790394374464737947142576919317408661085096144968162856065565303874629042121251572556106276881590438213748016723012294164895179743785805380676792893115267578001450784052333224009230346741384341841765243540151298997507329153812927736830369181317271815877771150389785775260637876547246497341499848887778623380154112922525959303930411958881841378943339150173154455241488830190320788828000512614680958831731406626889323658902510711191595449648535961359367344626380658383105307529983281407586652109076326739396083550890660886430831627822798839823021326331969412961979423651538519449079200131046972775057487511318627630496075243717946409244725680731182063596818152832512752489611484485540050585385033800613407376310969344525676901522828098965827462527151867772095846062918239638946423429755220977789753615237677422567435976569544922617595316149341051537150951192689646416395320571730645379351799647437368640772545050533395770930652680939231677910973750364278892193756791821619349309499152599521792280436750166311976579852401287482590876050767918968466364265348093690076566418015089489854581583110155706177138869838970511217215119328688490072267235368685997864193400592095158918363373764024484198852723948225000712427643840374422280569119535875845277928252827810258347250196352977128032200394025346654403267180904990445469946985412431931559849579466862180700960326105550852134942355771921348538010545684772496914520351671604423070988159283254256467166368099130236469597677921710035870324066417036260590614520332384940539938029590164506895914003158669260022011763917260797749331736392761283462813113323223987057976560376448348139599750596654657968139809577841809776190302781879603710548789634425509509285057749383471377054873280434122142670462801287469621875597448276686707247135026349071376676985079213179458504996774624309542608842618944223377863460211234859072615809756212012707836139007499718389111362461098782264686936375391944474546112294000949610573146988244124914182480623682665615760216145494790604256919192214715867428025042936668631437866769187494660073932060170604792236184803861017653534561516884114212072564856399567157019361580483579686460107263533930769947653295975678183747822009238117373428781080483971085555121573242289355511912170758001376621935987805581200537726504292313642942122929544449847023902184551426190578637521519718066260753265724893317360855667975437057199136137720066691046589428744931433093184881099358226069923653605882405379717405988965282823680791920434612189486986078088899350157308213377926250975690226443724189583132176015194855884722321402447197432828838275567745797621252566124905154099783343849807037444572419534997018275607293676137672360731685893327297890999411623237070500919459666044452449735016507833544515404096599474319757353463091765476828849861998331493267273282265992190048101367857106187417678651221943570266249758234455060372175572443251936134687423710060246506872871547240936636139314746957137431688279238412567220696533217174200395659087199036260446720127387373572144327160396211679812333089336931157492291092769896552493549887276469299365389527575771247776942776548258832343692792810907945557065285849067678243603266238851286368122243283914820093210328796857209481842546105620880018246938449497676530567483702043211131968697775499061097486915394771884430488227322791286902601396090746927568198105427984446064593909792917911184599300062955053517722666135966506516672612012449298817777517253875613912255164752602565717718135340823863893098383054791240150500061893617662428474189190786555522339974691883813577470839115211139243841026854370570052564410802603546750479824647857600216217725802701213732166526221494879847575481168568996278442875598698677891866696317376812521558790155542716440205342063735122922075379345614984413650428897473736404647043542705032986030767611084195327352648135542449061064467239597066497141192690805012995784944743779703910248204849514597656840506964454097689663262470102710854027527549125719525618515505586888158274699133842963357928192594438411714062300398010465209980914891597154181526674325175841907144209829313514815764931914179890669614059280816752973131270468967144947110736820390073712563873877799030607207267382241025336104766205001561049349767746417189500016157249815156829691880816997530569083183917776593077980447101173900906864396592089999789265494355651660714246230291793337286053808377443304799363803216189998358432035021578749669442268545130622112637835826775527122174401091545413506327533065734200656481908254422645264283888118536660282577902226275114129411747746219920471815682069892963371567321309848634053550197363942088354003703149788791691528023220281778655830454190966195159529071700616910199777376632336747900916626324928037577705964621120382924622491025565031191494939048104956930160987242397632682307917345504638293338671817586298351972783582437323089249077569800753709299188234692492563945242650190428364799775315061726353633035336025172647153568076825234148127396393223396017023366969687335494026181289967068676743262418241530486704513586863900266491119774087948476538451707396997140259087833263417350264102896758511701170297064947681648581732923503254886917831239229188372737583823551532113372605317880071673765817406850978322809048936952862834660971265806605225849393202976032413631250344506486278915979778685958022343891546878386300748683620247284417544661302170174592675493326501737966866057569702546607319122653968198284639076768550021342162966105237992416685580799545547472434070485258105128506797486368407479815011743239523357575159993101001995364998394649487837218755272805003032068564824291715657029041678568795721518394195637676322103525690640500485674285733440096843848378248420570865974351618715561246030807524352559271543893836759516521104309197682563116447540823408396524339800682307091975439134819491995241123056509954786034611147168471963372896685785496817279969002998256299332842235453315854265824818591030092029656798098711745011804597408614426648678344914833622823593527811334144115937086373727690198109627647798196745798630648702991786883688294114366996515515234352215052994552378176745662168684780331949941170802561989780246630299171998613278907622424102261717153093697562600043832607982669260978291602836717916184305852915784923099689340996581705263198612549251688501401503216284067919771194268559921436193121137774448159119564695829983963207061860782780921238174219677603105943511768139528799550564969952471901922910550389136086210329341382933423475525592071775991499753000800057778092043885752935460683290900777382910298087150508954376668788337774408307900446290031690517616716636270616148490378945621914553733803103221730603876309402927348541579522089000655466343027464203982145816959515319478218590092361438237453470056110989592074091578138542779059064811947345050895281406339139191174838641441669033665138916238855560680551648985961265437811145066739064749099142279939853110425900770377367444494164693726264588989340494378954056798259831555753806549564781751016267932105838239268004998619683260482293894693337752565362877732760729307892594511906605554640168493657511402169860877539259810194431586589096395454386373374705440031139878872341171977820263222488563161607967841999116236483217638265401468586830602713622830606932689586694894940840411360419661923546468553605629621034093545600779861740027295914444535290418801522452649645190074922697509304668381190649359470173691098386437693850726482945484317853243547044752167110967564262477187486783545740703760951884989283366937444928963312080768599367097873300682370437102312063837625471507702319413296162433499943156134309013776457031227911831927666233876154135068867937035131229332826010270459558886362430673976463956000397592053989114092963570750689793879771080574347612375614144256767388852200292275192197404685784470374903402412418208841057727818603719097027260029391393656704265052285669790816713454995514496421640948722811436727720745066684083973385140057810214997162916269764702526445939084039440509545739556573711313722530935550978598914746264120693466975837318274043089473966799383117183762231289314025468870517481683917387055026123347844661585787638832246753883876236541981652805915376692941031687488519713973128079187279844482772164312058659508043959991381940358174073711963288854727559752616213885783307734092586157626424718559867576131217742961012327045068501587781720391722285418243529167134568625468487204236114667269819458435959741398274627898931479499155215037505744999533761059274839414085944362968852592109993478700940618352427165772547751510666320574934959917122772443855722326525697176719376399167188022218518027526676157252597070990363360625411912709606267489588196054604154661875268583137586448819813717374226289235357528729986817883552559800021159040695321524376099344826481353538195105606301768902870344431671397208185117689677489933984606442123740747671222985588596866299045115611896511394719116612864985038892007803279008791934555629606206064611682800281126165195111140657605751817513826405466845927577953864269277575686271782709256744008663493951175917119744012605845643928751928559086224630198230710147143499767322064988452866664784006697662653692304896671660218657024263116639787525452605287406223997845445360403640898613895826857169979320313643648807311456308920777291338557126674706024327419564958816559070716396204091170571917624338165675927162187395517444888451037726814067398964515271820258697213001215111062817997604773587577067369219393658597257836149499285839197540052591856412268376262924838151294151823310248719226471756660594202047903499205795892369794471720818279711544406221201626588833974145923366414078856817818074621481369290214788635285591349116696591197724990871739073796178982951834777682691758864619690213687390172911006573837254794122272693194428048004265828073053945624855221687247875310705045928646103309616601247127778645790062309343249757512233913606986775052644098076734241180473476575357716560314031604092719527436189803682897124232626039989109678444957159948136061097537425210302477915513291535109550140197074424940322278969586900272167588371547549832369773383338785171459663380320118943814588588743253414106127482235594829971006551570873495466220527678882378221645481479454916233903690776197506267933143927286316653302026145465665372285879876719740443430355510333092151589904890734000363149893367300658932168919401638984266752614852559032679763492110328072657298412792758505782124053300227656457195899751014049982304571623121622060499396964161601097979389327681514643594180296237566640828337980938852454739669777751621087698110533413912711344015665035211540687936171614810705903068910407485328587007732010246427022660418851344244668999070519474699591453077916950592976026714162237810647872775808167385356843811528769680157493800963872148645503890617876363946606933363398609087483779856616852948341612510200174321580342281386545476635082570111955280432823365232785643862662964971056521579718966182968571433719426701892414365529679177226874897131863916656447894472266792747049280926400440629298326268689893446096601376358533002601207448898893881300310352279577153078051737581469525390075505401012407300383421755683034992454700407834385492334410833152409484540967422877060912526644836646109057581099370256377567600780439131710821229437037076536049688995103079137221939408454240804390083493025782364334050696477878950923240346460035426413652147747384820013627909330611321780385655588336862575630496337874510123161941501131896643275348915863731307118249758732863492658425246571617514216543470574130533955719727047941333282111433785784333830237769323466937091906901133969207353077329994274335933102981360029094433693183347391123734154594080369214974604827309694756368002171055154792579785046351456648661860237675387389997635438254294678576904249924389504409017735190075520331742576589208142811402694897657402444272538075896823732708309920672344315811268629550332464887044470459860507429769004566142188897891451128862587903192027018438320843744333643765989988131652607082420250977685195499958584372085322642893674838245938422143958842319533035068966895044507700247745725825720920779672725032559120000116711692767324891118004741002626107842536281027141740099626884643457234552943828032096007795811804851481523154047077182735821514845916689338563843106567374807673014434836009912508352945912044863609729658221117276666367022356123042439055183435160578330847237543639900246093036728397895564096052321953927590687961847322289452924450007744535560303189462264519038757289194181904758529645235329368544338706157723027499150841675002403203091310576641083134638905119374386797591271762581731318484421001803139313024689244134623021356673122840894339689438896518760306034746531842918876525396608362311312757441209102361586290448316286544449969353458229289168005187705502608345582648426566790341408119892350121565209087617580816719319152146160260059293093307507348869798403531842387003395265196746673952554455380442552399409108140738721558644509914886739687898075687821876902174821470056673307438865549854911487864526181707637757889811695933213201178833517242472386578942326963246541431317553337760767840142483088695136126877534332162607186997846536749571206001075684245184546616573773434545633167540377731287232800839465026808833749223701038063187857081591127346172968238375124703379834438197795631323918851481417141245318679830366953420455029816825619995883551910089063160972077408154986725937444314245336632830780491222020522953912296416982259050214418951378568467028863331656428462951733709527884419771411597698256413710720153628330392859237278617520641038845822823534703844106617392128705633978203542935896150624817822328297628846330655799144850662758135830260308490669501348568782888336264471843679456409488436508024136674275576678033046634788392817101541392027518164819318156402831137661162010725887415658123162377263892906953171561003373636291519091778949981713147961067242453833791771734182104112198052010853101843939636040573728220229667329281086147768659313800633119862233573922883357105777550803418934263259204195532013432767058794485148906377490273903627537346850535113856432425038317034746322495145685638618517509326736235795056990610808564248137982391895599631691794009624686767191602128823101767182571643585561132733211753486541707677852927440015920760000498581461126474786332846047503516909526990946566674467673775406515415091021167570694090547205179759522688925732512696206149672518311247574343253834021548772731549466761561977625998536405201396671947949907380910421734281967365345624088284178658709423139646102881608940065690686035276486234569886219487658912435413927745021995920852816463788852858302326688790377754205637124074295182551487773241435952071975906370615472444806693383474337736144960359177997207638502145655752916740794960054479889422566494537693936068043976183509616930284476757656569926141608464454148255496346036456889807069452336464227481611416516887407712751194025821437215399332431891164097254848903986982682355678263967716911605736649633707646662710230837465035502968882653354707761138713240940064567773797845720044211065512318568061904216813505811400210909807485659680831062749271101839575113390468327932942775917857868604492925141944804002754735032628515246815452059139043575685153007493006833157003806908978533979342916526769970650495871277873728549180537591797179794848620987542714182107482240337773968713600148953659063167816386700812147339819031288443985727486017703444783921212945938654076215240184407912338279554562289991753030070130378069423985827738960143652937413541092026533899935691195449400717337985586980032890424807108536722517716417784068259928414610793061191395975542509238078025700184904579964783912236836536514085488339531827213031242617261879194328814724114501065907097171249533451751810889337195595067198814677178056348024940878368613841818253639679772884892188500602534316565268132286429108138160625467983766580158363790449459098506443659616413953877220747839482984911868709015915876329444270774999133990214955410449215137167193043303284260281404156944881233045922050563227982561536278215037496682530734431912687569045194736540822111143148494193523581678037329029541813575693056334701385630210724013400872359910365320929337250536443006484075008387190727245071336143001031411157300712565386247031112602259616902997044240738608799136671118325607062695258049150318076652370551779267108830907516209083641277947252299221118947263206681221196558051443052365546408242876274721440338579062165517442335477942257467615033756306273835368550530717685760263086289644032721362229279459310462084582605797473449001893407937393238751533690273277437172959273115127852219647281072705673221223844439548841861597655055858504683459964693699118987356368986428668266784675211148842446101049195136786211883492938726153831255779401749259706824925031114923582932993820319116408293852816570946630456072602297087979143121044456437329759738239316307073846014175249557145887253250447141624019013809609252204679211278562978902873830483098375252706942020998036166289143745692723371253742483445555114763009669517787754467893448426947089013033434269697383347307198446307901121732209750441159343779400373309463655115241039684681149806939970349885894931666631685557180298088443461452833566494205956456381518739740043215511697581038533260057990653928390693849766947634990505622777419692423037897845836574464214511160582021234242493884625077838350486555001263308579754484871118525031644191678009647050959839163354616781221965474496774493051778968300364461904076230960455247388441113996236638266503522408620732412979415304406362133545762548770560112430043629044340194238864168623564884207205008089909222385120062686256784461099358185536523561728273375739569345436191210066394968633159967526620523853044719772923293455484056670449460054837493757548915068097248932364696162290429491241910549465643129259123114018078275163695338069431862642842806817020475372873097806154222217785468716301108131850167081168311713399583410069217691283493097687853216809533441329331200770621960215115124225580023504015155726308697473489621809489234640286636087172869912661801654061408544699926865431060407641583167132855562572443048443944579562404429997760193003693784723556047844257877419428415444983587603157399605124459048761847237499261519776207888190637206465551109350195897270843903148535566539065703603850892339162235612180955774827242347424292739969301414956644477180492310777838107592329477481039549340851324503709433996923555934655552608203270947427661280092070718058624418547696339612510873949930597136544082409733037273509369323766144734276658570973782682047253747525800609241687036411872334882840507541162624941967361737039415296739142051476813472276094267132973575088305436940682497718159298628060078081623093960011925509845751845865245997112314116309015240963928961606651602341050167880517900484652350052955887190707685322333224899344774639610147978737172010630396976278088886250187704408695966561922558350041849146349372170787976468248828642965855987177312814831278697912978749371361054367485424398564450215570140297451481766291973710519130202734466729688874271000856418484988197871227493756156017091357115365427650483689412653486691536386045432605726725949587408531461666147794025495924703373316971300709188583226492287347096175185019919297294364168780138804358776227564347386821564611688666461525679614863420445718115581325796944864922195622735432585626026175067695835180616356156964814383336514081119321880577911746265341204685781628742073228634082864597058593634760414534618601034266744925695231031337442217048862965204677668997126666277619633262813901184740468679791457044957260367983888588616562258319187099095755868701554047581648195252716223705260542343996375393975246156992823300472683156770286716117429316881654828522909129240481269087635433107855953855927862713477335494571096309499453444064997184457274381211783942561503165791053974182947175200980917260169772850340119514636409547566583243558324402166644504865877199413625598693259813166952070337682130431305055213449656182871026683356866824759138198089833829578228712497232765339061768472918943752570621844422251571902223188190125754707685903985329987300234514139213372800297783896862701433344673487234246217730684434765881114987452597496904816250437100577804322091793415964493091803785137345134501693736642489315751524045226183627949150995391672390001711750705567625535686269419469336475932956692513575859962989954000984839885574674022554301789664444997671553147784985508976408991570515585775752016480204154618885495074576674667895434887043026713414117658592299506235286277040726805932719840964961362915960234275137082149998831426261962835875070414810740568573704277925011009667988717076305238637129010611391817168332807379580743888348365926183118004548925575370768830428752859938222400156127035294435909197428648015626189483567874885667404837563257975039164576754263340952698361445613711439956834759213266557769915647450846984758259197623811803974119005693586645316798430611201107541033551943338731423583524139069584011501640241993840721110831650967732978754765941766808634474214767147266382826960664199194410736002992782022946328492373202491789859492673682679238074437440357322025142004394048626738861655372683584380663176917324291457640773995680797261227294250968903173375223057619744771042258807467493450366577119004235684853892468342914686191040141021164706556971519829039797218848158192295963571099122973650220886711525143794342217833117299008529033870719560408996523917174766268937967169328447750473216701935275642478294119101418168184141354939909912459048103956623753499177821558537308382990563243240184270285844395797101345403251356288117208930626662456994913595723464712486441744152203727216046271382482221151464355129861653169057728911777107166804658274375672325204791782371319297482435619051891762235465420234029010226573014624531070378142139954962744450949416967091839084115174122441031717864505135542452793686910684255378033034992482120483454525481371724787286939731876745539054895238557821550152664539171195766117361354009142353648978157039220820917481727030140361482451314187496164233175932625259623489806443911114621191529399496609522912875465526358320292055405136294035616030413293656365005182721100435333949072906496695323630287170620111020246091585955497317203761652938025267939275111358088718399257801161472186921190182104922911162508380673390769068771555382093022164303206511253348048196835003866809910635768974576752329727193885615230814017152807312602884393132537726811970384450043981255097714085262275989211929924289112776382431588776837921889124599467050044096820178833203415193370082446474595149244940389820804737733992128103209829924299095974529915299722191356001824456275320308373478456657360282936080959470835856460390093287427241411368595224133257466899139541964404761460241967442156451616533488179358828414381374381055425087810539630748131670608041877349738319398466662448444455236968927009997787797722189827994593480347301471584722033278474774463877946471664525050433374105425826472753241760404265112585189455718921798723741908407224165308406252722491156638466577858381849299367656259147428891307510159930941884655326234813251388181649435625651058955798887700332884455969663824109586197390565539859204273601649495470400994726358666713242393150558837001088534816958736401256491244267144556225788877150810959721652384681298535017376221759370889050722486200957751141078448255627013074216071379212652415130115932919797829449062010528923932361039622599448289126054734163018966005095677964431540876096684934279952407786207827949505182609277718686759929619478382779319387690573585312906270269512217908657272289716154013971919671181786210125182914191822048077165870607791538162572456322018279308612295367763555270546621655586960976381149085017002406775576817816887606666197703918357688326710179176866153471702795641658271154104482249097266166075193600389680350080471581475523708708677393088940488757684093862540307299891767272046445899479650247633355279011587300445608118656969962347498464195374230030525141209498154069625089749473645322460486603169026237630034520257019313054199907380360350549541072624721775693724109112977114989643352546039610179170184761133332708539816851699958784996514354946687385635532673219555935230842292263591880007720742945491262384723611572218359160461857040329073710511151789806771725372550335997813554921548640893822074056149476902745449251025010775088544089847399573354240828973763135447994997756846305307903100304674698808589436313512086889404409428212743511683192170143092491624368078253664841178859194945475596266064146851511617780347444347657467475640274663697940171914800837405790839553377089077905438588070358026736209954851914365335403395247632635513042102008676287293253018429612306180327482507889439482531413161622055508999933213357524834785857293670496054162127177047804367498305666422439146960291258053548895462295748064928625361745360482151582400305367051739846659950519727399492853496444512607548416410197649677599642517387423528916477763983052740948043892212639147205050260152507394964066567458659364162625184099237557938468453663827996107814089407464270453401558043231410423576042061431883164806515618604300866620651504711099419118013827194622748392714553371532141733130112361861275488489888188411383687586641387618392918076498742773551853069764032970788214961825877381104395686004533779210266963944810064040642151957571388389850876557847315300301185204972736917131578494077903553789777519519771257354446039305393018316537971629569993028483317205591052660864958761443360227696840003631638199015226046785847948352799075934243618826979185631568547927176941765290259141829370022104603555727244868503115549331265352810291382250708223327410010092235793303565751218614875239836382618404381401783712878123345913316033039420793357229809174455974291642313128350464340671496406822419260169366187267026151726719792542897850605443301947919444082685076929606853875897235530334159843596482234676669962362152498835197587839994440580741950315690893298262578359901037229753621086949768635968462573379867354941468560122787604569595211854441049036932127999396466093716885534933505894727044808661516421324586004058519167150470374347633659403572542546333588670677733049927050224924053300145754069267425650732622965966927273294904854511975131579555666580601970074943364779619731849077788536227771070848737004466699746440173706873973127278583026325443327114375751670653638570565495783365809093510260162724626800313132515259159164954982528757730092636712759236263318197845455516132221581596890140870829850613066820148808134029811784287316929614302870899397595433316021183802517307952880375995709992559239139636404004047196785762555137037973506203666487216698892759355221662270594194703187917074310000960352249238747129608493369821147337009122820733653971460318936313870238936800863011796884986226772605677522137198627798462495787376457397067790121270453702416448381226489737772065470169072177714686782012325239787616535962316661396137047241417148357222523825446607410741355302464025450363411668190277567013351876995528443247897913989345295618950368593231766002614661526639263423254628174486600424577673453912221185546707279787845547890347551066518062852245048189162710195990353076301420985837158016444714624248133291127027973496914121088250996154580179339055798549962494140917378781181367104677589817018679204989498299567980818232205371931071039080066524798968658116987818154202523454566828866033508055659045955271285819732109503500493173660226319514606876532301196660002638511747910659001485762027994336950277417547111464476051797218243070119455677161901630500200914796536166018382457999898214643686111682135052131260978628982306212081913952178604502289137409633398080596353300436455776201153317126027584518586281619994389624529904040083816901598058426494054663861058387653620923409171817526197271150712371941700247799450484460015181340876280624511628102669384429943816967530316885470789975153206040579856420622942042391282519919439910262162475422538040793974228667071234892175838699910180744994945643689287016113560241698476233821400347230626323394454027958117502924438140891140790822992435965158679157412187566112951626615245137189041296118733226853633653931505725702869953867367110430028063463354222640153279416523083005935227388736235007579141935222643699597632040668811051432687624519569351499579999625704324256433419223049898018104623836770953641494698679156226493436475249515433665787232848470717412700664289073417556772223252492353398079715556589376349490104475507718332209133276428694422588491942661682479205933322048773177502672363694736028346890888058187051940175312822162554441042727894844424756074441809387990309447692112726430341753917607835213848380529643737427951121374114492456704968732639289544279311431120817255042221863212832199236517488475765416479864792286469819405325924578525318473766134024557768815786607695399425395028879612357561644751720496026646760495351269491720129735362332047910967217779880792876678063822365374062449534825770457285777537978258718542177420746446892388187062844106620832914654879471961961183609970233140486066190897826455997505084999862957594267767142339123621795549763158374300986746224911194215464203427900788732769239202646774567159846247948994625537392559016341608726473519072379217445903158780127950898934363181992976702719311746601031299675548448654814713509208530503332998756611127317171803731639913733953147352778508938191915853553544996564278829209795223481725883801018520733634084015812617256150586257547970136172353635939498669935674029784224907455892012035492928400498004701660408778524823812297203292058235457880658090911914196869961494895287652594116373089599429649186093986174257236675327159864236087769356992982346091780085371259958889164733628941489498418937512413874221367983758943029764408415240590332862040066237000438152785704869635272517120683425281402862511870495770922784289292233801242526108545733485562225304022435596907125595574587411103638221332694028244804408501842838956559294872825314463612280956368256570627255856058158431000625072982087786128668107142972599770134978415171063811149428508975649715843387907735112902402224842077554730100186802013001801280770039838967554165191875632208646672657953138799678834609379585732006108172105836712682531008049390116525633919753062272691169305578308406002708117624631841288461692181949815704842150253849598157258859513219820191266050234842557754118589548577165434373011651049329943327764842238517243880112079527365701256131045286523704887715879912372915886190432127137472484902038307646021205376061556049619236787455586555676871778529955577790035670384139896627186592426251222383828379496626729541948169824838320427825449761654770420955607183715204130171692880620958299924505041133291131023053845674530749042149294061767550375546240341657502645279976274942480756486260434692297525838285566067542238089920951388887014275563245085448697066581867105121532983062970896796316779180592810377751360919110040692070353171130843953926607180601231872281146220432736813517520909457474135598180353508653817207333596384591636048528141034585414337516484462713225833720617075773398084269696757496306976875364224687156892635373333812346351568877638483181277866605981044941882929291059092806901772600711894729743344961282726709486969555878488734239161058414797035960036346778010442767851195922616230821833682618375300570326207238808699888976456270704232614940696160788174892928051700481788196579396577776039432120378725189866865756049396927537423989191251317231855520255441850059954197632962742041819281055322032583433801487043617409606848514500750115867218451000369590243433778540446531137039668504950494910747048885415693451611323210711003597396734034337034472226983314707625687885603967180942845606249138371926072378635443096870828042192722112727279789843672157104035897408152963528702342109302779853579629746765045048796183736418810794955003099846710336209770205075153626562506205874197657546360283804702128247057665962821172350872275360116408987821632600804207833805568600108962918921825697305647142832221588076377428205057832649064086489312476139120044513775420508561088087218132114000262973786954629677657620956838835920562526950790066773127388322713625857473544720074288035781381883713747712571026104863886701699866764580162247634371739793504671354608728678663859973832462693827696502466113248552937304516269403234622777166101221631737526878988895796503279952404527272569885323785537576348282342154897503946006823429936843529553620041588204647399651802777822488775623901541912840275244124255624916668670257647787486652587717576732060063853246278994166742583302779861064395103995216647730089208782233571754940699940142161106498905828954724996859985713182009486812514416465529891616279724790322113052591933034215996433959719464031593353438974614802887986758965931235867774056341276628887402053873223751770416908082769585901878166228979477403809564815185507827373176352364444949922138559453701097794922219226343114109742585092141426076985956204182020044522131375316162423397454850617787272573607788010499545680165169240437852624220991946510673440871376712159890691693227726690054718963561174874391796786755204581096316956213157738767020408730827151054468205966365138550300834996922024528222651624163062320847125364821723930372030903155756484553345166411324359400356078088199944377764733501561602506043986699219380208028975175793407735375159335264234669050118585828069407522635970964404725801457131000234363295670049052754926734024607381972494737033832442229063573692208963191300398881163859019852940521036965214125413628260464662734137692484306359855855376616350349181106535241857931508563051094324393407981977514189760121922337170433999878825124763836465724306260709460872087279704827819396601434592084423956198093987956814983331240237326421609995953708005260917290435955548419024283220545179799885629158016907982259308059340545437306421266519270446701164483564952525551232037147278518670068301239801444474439686966735571645444103250056993753121392305937185402656812779625933289892529166528047293129842565398653966368382074266457439536351540893343001897777178538944953388427600129402123597549824247305191226573508685651932483105194568207696010294717543239506880139917348119804218995727832468996657667141997573979266506906574925840605346036787122954206605396291534609849174642760107517178292523718285982071095493904469216401283656050274581520180324269031770485903157648823081373109776597735108820784847710125713862984900322828918121137799269792205332429568588430145604042476885443436268217835211536189563491717033983880644532505328220361627748436171563567452638157524542835612713033993292455770692457108317255012545565339409823675370663270878585871349725312842084596539333105600734658118948062904673321266849523258319441923516981225189208440640467052618258118773050098512474847636980301753864095460034928846056148906925537867723509116788466497274885956557022120826675866811967177758272307201367958798914672232720999925866469352199832972527971753117194532637378291155444342255764053439977809910672521871633225804717773685714340270063922694169064849836927682556986058094059414459676272598383602191088090267487654033229220317228555209732112704318070064196798815582335733378896627658466079496626494818068129949733632575166425988320716128176913286663569201973218670514818841351690723163693150593394659856276243475579780170780889901594531261735200745491594460919173478705901588959695036654525488210344767660618849651117643376892037251677635685019154026176724777282908807225904016072707455499284783397084779686259282683633411910700656970702997201579737923335911424007036285609003489452579206548068866826834060206006247135727521793586347492997236535394745872965640680639482041119791527388363219345294446728734410654780630809538190064020114726013386587301153260662555022862073727201871973289680878436279538344812107844635950284389989059423597450776268343330684761391435771394174732379018473859485628005221946253484508273347555141931294218722503385517973628291282604114364477194300751454847590114854192178288548107260224288371151953150531015416025831873548161782341611763808997624509810503411912363295137539433833775585458397744242935486209231297870171425610449037427157091923657304478527680212205781877293018526148652040802229266564611788199530334967286314316969484848168836724252048907982005543826145754676557270374618345174819550937072569452858813462393963476407827242765356683101157545764583905970312498441387361436166901738237098918705133222110189587145530202947751538840353134715547296009543338756269467813212157918642965797820831127009897987307850327757752183184481375259000033006678293653645709080439509010102633143620131627924958788306199743893279462721842978948608016659304808118915770112152314093596054867073601846037958958564518737405180961385435408267315000055137487059611584071765974756901412837485027746923195513204740034941243857319780519501781997784172350122457626927970974112893926884613169732518397390594773162337162226549042298175818632515688469830535672313103472461198471384948464924415169498285210010776111510777712038278303942297159748813214948019567377027625854386417812432338858596966098623852527667105965007833663746971151237932775760120539231679265422788493383158364846370730710528124566431295655220058943775769398848331305736711963861788481713128354351814082281625468827627754619067073528736983835744271243196970770538088955763893737463850735922867579810139002013533555393859484147073942247780780209223749126394218077957991849419349502267687534867598406635468478229139642520595926544556109455879148943376884856027490033778754266693388220621641001598605447404717895651689071680256272821907627749367114190740974864014516631633710298611196373775967800695498201527654248977423368857846585775059498995324515770490605951584428881225645518983504696866781670510386408839402680787790444654361777581867509356578740871257345039811016052203833042697887679221274702031054076404513884047423920448067669303174239001393420828275086980422647018649368134407302298372554043964160920920485462210612739947151773458046061052725278419263151170583121094814944837526493773916253231009356258430679256931253572342946061092124847453280198839929274500727172949850456035536641461321641469800184357571084063040061043675302376670715709772376514407451664669201526950965916641670745646572476778756351616999395790880137432513436963850981409299233354521501366635036448970236752166747367182027001819868093700519798974743954559906522216517319548781185433619777871011905510239768804401458648011830646303619461355641827088256519033065427551223703073572282588074846628983509870991010243856931888654662629816468750620972813007137285343593940133359620905577170648478448032862196040953556159126167430401414746257215145560024194376815808421395894360216116449267002753504730580069971413735109685656313060950961811848119056399152709497962483601237503787876622043621785091002581628428348224410802759877514518732382136993034596686279439525120088532168298773262285104541793207607090458480544552247467135708635979867327444294502870906313783543824565437597999266244590848930275764417422742610432478465121997062260532771803269519330816929138869411288137022410620755443098987013500063251142369767696359192155236970579772807172575425958743200597119946079547691783300415489035260631152136696146570106377820181624147363246615901724578308855415302072477528395828641405948322977960953625845811016087030719753735445598396605342690411433878040735319892201315186531516997605033458121083969713815839809109207958754354604173547752469837678827728632416224145184323393949789517435444645747333802067461883797967636255891551734179126966111159702522806735147413001821404799418794522182469772644414627188132024049462561643838321544259162511184519669020719041925439389004770568141122374266025322032499294358246389836361674265299461963872758566144055302506194134966875082044395969161294400755077838765168541501588458388342421612905737398502172369087960982976047843860093932565859703864136364136350745782770046730743356068866547982708403145451702036717790260118192466333477713145526855847910130528489944115288477133878673654568079200746607486821959129347412559631905788484651459463639652040566628533325206703376819834390394101604989396312459922153408422400231858191523623810743325365189382873384476754898909157850973230754391556194874964437599924680169215147043961816878160358526614450238970810760369358274561894488651812390699706179912924457231792556311077778185914886684730124128392583459373650339367046151861027492150292154165393516258446023585311914572499858206315549202368156728624258974444118900841506249276512094523122749725003618373086542438155485082309401828606712094389664456610314258567902906057471676406328620024025298821233724600911644132503646214798315368821067550816324610535078692248472196653881069842473785009351537062402626589836609347170171075525701637893098356596511519276481771522680911672982559641520712445201533817968472459040251497666269021880218078754764144888194023442068437228784479280186770819877023213225354513177823450542159162618898266878648837303215692932253559889633660031126657039890910667643295765415724352963598247012679349135386855613001830514956702004401723128505951583065737409421052447557860200487656204978663786831177746063265557710963826477459114141117868280223641563629215701365030664284865682996468418454350852925518969879556864444109991599140389274407397383731896698206136158047090681790137363092267334384102291473675242024522345817356828550956696934267952832265658813201622507190610169288101441725743473691433609002056460854073172359780801333537117672690890163602974352218615648672842738518594667358381102776872248477931975018540035536026613277318794640828672586307003689288133858657061159610495533267404749727627765087047999634134579423239810901858622416489208720902988847288187595517574099568008238912598137085279852982616119483068452651180078814502075310175833521408923616083334215639119360281216481813858470719368806976096560313481749583748366096192768547623028297001244987672613349389204424887414451877221292468102408507963156807311574077869572287662849163511593045696743849580987048695926676224846206258595411461783031625916121027659733923549932887937123257350903071235678792461435814043922897568192726059715860663368906196881223954520987813847578060046264016891718804592781623407241623933486850754287490545186285952555133886513334659595289085511516819245048632863039707895371433332738841672165209669955913138525902956200619635459843338596029560205459110188863076509176638408544511980776043254774849653604132142939968343646167434449633347630416879286097912503886573457144709519544002490761418760852269261869085363684912286168491959169800753675714678954314757876557024416231861794070501913431978076240188779066721061247612204667020687455952694850479846493929758543696242163417511724423970225899787817681966267416350913496868179008836391730073508937335124831819665779236738613380081786996229183207622565669170213433837650927960646063617235153448421026228674108391703910216634762055084943525121752154884536957740531417319668438576673486807095096773290684803571354371777395309065923603847213162485234358904136885432061416892662353211118210346649272344080817929306303738109266460139545280985314400409954384302316229522081558766031945856980247200577567119463429179319054328863817281427756532390751818034074344557847526694135654312737683241225947625087791515247558865374589310707908680421097365488741333264134067427117567769167098381297344686090537071554585951031332502870532214826228604181584501750902091422179729305876170768938303099803288159841338263590233175684152910644808218617749204756403039690821649269517584406326388077050965141962243589265404763515653105724346829417253116421852576988573168771314274161693699934566241780337531121223812022933821390047825985505441678502132283413787178367583798093917755408750826737736102796861417655203027191061283512479102155806480939107396449819104440452599816710415908928259707021814385065483567575305256903679985679793544867315518348656735703016717765867407458536115867374780557929500548903853681046125942410946185962620582169542783208970356407384047852397102129644520438933177867089626359406931187297897249212181989311888765519184045498240426562056022481193508314241472412789982680855033819779185935317522906259298603367962454361256700208217681075837955597712087110204095216110910301997877818829812762969086240648013486038807629879339096566364832120261946753074186462075836629617039820862611841534595595068295427572124070768883127874891741674001491043462513554496889134171592475589125031739206557539918124467249680245501973895410949425414292872785174431321526196101322998302488277656378625311964279206388358549280061664527291729495579198298093189196051912869962206383762266482858544644044258885263673583722439451436382212287981306619601579964958264245973274401453361012463766939965244246825303595998335167732306879874114530080538008370358815231988221802694957479495121965397678214485852131720502951987645905525574360060365337415236713389739467824106117872064360431028163766789852453836699358389635402346134371420848741054015013919255695020363865324030756460012075881865514807035148977052794423557417123338392474434209929922816866723796015604296474808089731843590343443385434773960955634675846036097787730638839271272186302622765891270042211052724232890354105560945109569171587981671669305052600429981072263694664587504949000801143722263062864911119348316229506370557780696471736792993744290066333321406765602811532699522578658970499477570675661699828260251577492189908278769719101225037130768776897428330268386816593754962219259419727106312662157501339404697384706482870126623337846753411974375077717411464835431878848803167301881906116966506848299134186959098289449850479005382869214480266010290749337537207899500753001937274855623228486231934805270024061666372894682949623709691953149104703463160087415326410465241801062309181604857932603899400769125337986796794273162301924972038837278737142394475053686865377792797960470240979623733445364699304239253390144449940958436766457762948784098434539286042844918171025892656252991867315617502131342810389132570042015510384178407599429788144972001639916919702833088092600992237667406383456855433827054446463213553216887670131279014731303690137915591316686141790176095596143578977937765750545714970513423462251072038120682671950156122715492016387623334687262671358245933457770753387422236219346372159266454317454768225159356640062454517415500496586510399421126106271751979691267436453620305779682912190309373305223113746498259680995485820284127108589472451403027345566805798706454442062919824176106226598257277813189381437470586175798053541112356081659087277919611352587019512802957890971654340528211962218770267486200697073153625907601351113696562999889935119482530414761494308839600135093755358001045603033247122074457040909291011254289500711859993625910267416676627509633550024395722249033347330168852909101491557729223881472049971852471396038935275554771121147137497478395141355841187263985740221884846088039256634981917123834069646604066347112272767400600091255896483445909275363910688781190766533266818011838851781175975594141076546393381519177032796655156228859035056535513994210254782461083055050937630957742625690126116819969610324264589450117086427674650556872997716060248475182541855502718215975992711512908387195974609170792135444603733186203984292401140287521231737196559664659212142701581659686701629669564356950702709732112178829530697132004329037569969544525863476194412195793149771985885339813999360699075598679348728240495833665129438778227538359833839056320507976728415815776980919396589788961672905184630668546839497052061044232605881783967600647761477176258591063516639461361008863456058256728046274755748740383560712752157043261067548212020066317778042204540952496879889735826531918203142514595870766735220201721727814118266082203624674799951283489798328899996372059071145911065532854403319465532945899014121353308486842649759575029652111733912810872744939651738629295472533109712668055825545496585212681471644528009620793145167319142262638222294416534857884695193909106822065595337299497174863087889533008816785584211060628821661773424524010198032920787817670064629138603513592717307196315557924111456336554104844734170435781342747044394889851802607965507144832096416077248940641518326341690432354080712063360142782524415963388978554439450456178933458895158749087678450465743322774705128157431428629986281629800127047445073026886271811062196889452680149901074821320790029916060405439294512950336382043535986781281810128163851781377422000989805226672591432930998576675539543109846726354894657863971712089014396869514108099163419670661988387679246261206834449343578643781329530392136812807060988051994337957046200338473958859195920628227837632713172414493863604046390534819288557082607683752149407107493907503063099252795311159588864451809790918507591668968638557929421999669196195674326859416123198936721668597348791005238822292784286435668983879174456249187166589477342602991401967027069911181299792782715585506299539559283228662367000396691799046591570568823938163181167978481708756192068912237827874038410011552800781153709684894436579871108485749453367581300595040988147874027275651799196081203986281831244660252783897251259936506597821705087078340170610246601681369635479313145378391544111899210632528395586875682600259851973829130750634757668944532725703101929695799404258747416880478993031990116448831009506402403755724875447022187871188283650165203745566067034836244783762059603882005480425270635970950603313343017975681040344685154898399328048100749694462391608787186500029824644010726378686351780092821731208092661758314501758016225123240866699663173979314059192765226953357869369811198816667906831945134009171918738273395333761388196053631490410169366562998449870449993879237645193339342459587093499003488599303199928079793202155087939528855180071800950715653753318572123407175321585616787618855328178654090693171844926982559580302058127530679583153865804825445753885208820748463404290497405304198130269094072643620945025936729939554635529308308142241946318470331171627044100856372852524861686313521095086610746624652106644369030014891162740541618927503759359331554495684695826265902001236382437885067255341261339397398209163382760705522546054861969389683689886179376163302826612610709795324416304037295681432322531721851496311586111227755715688712345348863817958117436698361392783752146358301771633061326327809808917208575339435621493535666915303942341416302307729223914775260943529265007532789257183460015494747823629467477720051844044985773598930060539835045060638496443595024447105062043040957655544168397378113410994336108629220630075307935700749867307178248535040877827742220608306631561458584338127380149601999007925403305855115296590328384298014736195628790884979364496760706474709640161442743647957429928699568149400817840620816595700971611249993784289958097976500297282253141051960894164044004399100798477289487116430706505159565653827559751854426821186904580291966108182953985328091864936246845966137913277031090466925983187781905499104386458109458227526396651229622795405589200857205547717729305155608279243360555189973938324072051838021796895548371131227024502525916769810248419332887942692937070220233955078932303593658748640172674046108154480688044400837230047029144203393216036836160574575716761845565883459649460325183447970019260074429163007110784438858484403870255822028785075910550230998070668585114427230825523852330850316274914921362567958512200846585911382887916783535532212749816475514078940474069096821658242608476343652917506529802258905584791963622370165511263195838782971816702335376911436111330702485408601048202519758400359501943771011503645855336765392126686632702840823218156594886756740221494672289955582460895335666991407756295276270628235039673457446366619996913137199024003111633951877534877801667707287071503970525454528524955441446828432847389716707612741353215686526258570370272639751338587036139918577255872615010540931498758309531190967716142910672082672854460450680616253137869398038764505592569651747099229895841631848271848131693256229348034396833095062935100964157361048152909091210387413535008774245102342614561808615393000876634212165201582340577582183938787953306333321715897092834005157052817445150705724057781706027883505260607759658871798673282162630737662697700761382492262628896307995740119229321494848128243800853252838930180022690544562411984996484173336828754762395178366713028167042474033609288488160162966838914205005028346780926601108708158135957980071978157250584610267977743676308978805526356831932445520063788303271134612979899257141217910849952246787624268458096942429286250673598133017034220411139465672395301195886921842224665059589507037308125243923955166989452891828254481530506607855861401141744115136038109349147553412827948662092022135954165386810580160156420334979895963375352270616142212718087088053993853697874423983184407793207190546234851184064504142257972467233529011771620063179848304630370042887346005002793540234865048919387436155071130010510200058904937827969330216135700127669424274836820017678726841895344185260540319493763125216424097749450302247828230772496303320932292545485560549277239784150237440205925206851355638004716228807325137093279692840184468074235399935753415551367550365013525459563124913409578893725454845302869053733819291934378232801062366428559368837663558561280212012192781980884650305395552713158509994187547737655746512280152397712298659114649717919177303277492659056327253875836753002503560226660672923264843055174281383932684995221258430272097964530346542230663605078123342531531126217863477586436216290883167783793942766280588534934618330467570871238047458293391934406965842915515336843413117755268437650881211861580864711647504600147354829954422540085602837990248969385197459544309554520178256841490660102695095593191467914476663705172889237445674347355828872613596718097038059997346568424540753653118440726634765450206018607033613710643624849703202286977386524204338279856940823347688112910033456719480643755427041372142764073699287835884895065949372030392585175895936956447661551632905210278371017826513612122376114176329072868068651946736599082312419834218598477382643506748393970706786199712888778963698387139783666283344153542552640332183395340521936046749175554647778818777668504098013993544702916181490922057703101027888290754940085930602364970262610102537607418547833701358172936199505356932809440972163240510724734322346222752528470548435041951816424124867168562182605254772583356111627444308549102053166794507688461761619457730808715923023152830114970585535511888490126322859559887944420777130718676084911053179390193538049319096432529934851312777927081196073945737243009136133512745280042868435809840507250765085822777126821767610205009760288265141712013947804650244165101441455309006682768295131577858419139868489915315468444159353511829234565214028538055519997562333168224610685064968013420241111887686594257904407226705113809286702157660956492190336730077023913920857251297611419040039116479605453993977598115480635868206961893662227389617921944601664315582480132450409660891988328761899119254274795801768755624468301857660142257439785165284350848237732617095716041225847481133697001722339967734093616237401298449475274948071234279228853917352229740173010800384159265169411621128125193712482378661813054623610119089775547372167093566142387871130466768027480620828065831370233235062162082975748259661240646587708658278109040839868751991363059219566063941274183001851725519617737777878845877288046316398898613194047767116138086634391541594356674312715193960346813154463430182512809117159006788241898577012225007275753116939133937235383659418557891546508181577761748694013384150563389637033139297002630138909607347763936783421271969905623987094955029850191177660650843686619718104550531594851885991948822770129934463547936319276153218703574141470357524243264947406851873088980714387851647398212570649283923722376517319942617787684932518011168111693123870238107551376800303146969733812639593589694713545181869002428635827021055784405060516011217019856911737515495529819717012935030615488225917159356669442211444862649170231809878759873304351718641358438608382470158796686988273877263630866328495557033276240805424046779279821741662290330363959110777226149444847678583981496925104174164760796892346195141355010454725084883372516067687564204767970964616982223920741068521338554987188831430969397070048106506301975820755141034092436896358820810774209671749402776664441167789277407551393118228096391368943441998627686747355725957474709655192112640227073695739861811584402784994844791335962888067681199045758928385202930116708712247822738155537697122172878112583912062008460263351145103967332023780818535841420620316726856919639432029829647867601436265416970785474320031702890581931953554309402894474104715512340737410894925669327278926626931513447111706691194670949394595265079580652048970013791674696316403221295880634323417538300316275720557441615387939429022424450565669034823759838538761486662365057912454526436027571116424334034035767991895733151370368558524262125886367347160420582079358372006775869078743753986320088179341573978985963482590453008480645784515405692452683868724689535845900341542372323277588859874912240566623432570590853573260711010849425910896226613315253126885828400150054986465122054119821297461307101928712998942454047213784345834724809250947803196997406522126030801427399463537797938896551196996297398038017503038963665608139742523053723002723493744821773838787801753853430480670231770204135068516343472459258033354968490194317873605391163373935551845364278121353925374687310671403161031976729309056898593609426624530845360342244247056122138231018990088447372941558880158559807987517031411556237323941448419779049355953794646291198362805594311853115695787259097651813767084553616424185313841407653544206326546993970533491267424259084271994300878717178322944381891791035838365314461040872639888718989726574689377425205347972096318349544656267498156689833000580168398415880098105285284073662635325952109187101749910005860242412686274232188901240168621590772900660113716311382241004929405801041678293686764692185901962953581563551419952949667850810333498720257789976519399802284424925507811033124348681173664555160197900265452651275534602192287843017840206134015316535776012682972022745005375949268125730594821350480951952979357584800955640462314456807107952331499521174362751862673649852107440742740715289822013396225385880733148775295818813698902190996024616203388722260784662604670572784870639198749785110374380496521675136239849440674305324036184913503042395081133593703716923306889043884165458708355477454942603660668153472957132288554232161006771243090061916374739508690476013816574223287232792136206858158285668377913566995133848394371606749401223785051005870954715349483466077152492165723449733718653755171738393681572583337102676555454250307588311329679867444484480355226724428038308851851114008842997813828155476271276857932529756417489814015792853406224395357417146193644106950347757590788029258540109159274500724464369196398261870048120014615248367384939748801936433780518456610745319422740221667789542724093521227695383700033129754987456554308364317275336638124027684125224474183739386756254669673191057675896905408846767603504287682176546506235528741432116195643156156177030946205213016798049965569993143636596487775586572780772733429694426384679064644316903743972513032020064949138252216139714780191956006062341601772029745737580652431976726569283585997197056529920868947607880037930000052231166961714573175179876305000909419204951194407128664124805785305486348133426064948668378496076966071451178778786446043864927775939194877113876720013904366434076710131185160113588518901062054040640996136354678987012576680084470421900529417850160098212497481026573366172691599086754946931506155346922362659724035797388962748105861733858007993347011369774896671032146630000247665273865634676075101059731683031558281703550064839429595003325977245285565415127411673236023151212714560405161332859223029815703508095236867589387412920057395338441746397093017203208193810061021643480994846175453967826933082497794480937570768121074315494958085197647064080739862696672907914934432442744760783023954155492803162311935150186696501664569972959407870245442715816691027926243432117253391265232355703684645227966085096606434241901020416549217023077074111525763710404276621826430279309047650774378472163826065686996156061542882404781644146595495967501250895078366497059365119494596782886139580615960576320426790625093234850892335373464387095109234555974411372054948531758883122240352639214883189585994262768078364955703945604681131879611177939051950074936047095895614427858648636184667576965367980426163857139444124774700584797976012886035020573669263808543516674676117133116830613763130733563370608807816661748122546190423613858437542656070785429571782723834576024798029077801559705411987310213933204303795489619811293445450083489499729413961385771964873201460084548557801350497806163037764576386317473896485224834677563682437886982480438139865669642355494353161610233610206623462462894613283007289391214464952577925717231570428476308971715673199690824146619617948843550823639142428143852102661864828618521931887693096635011831325819205453579043636681225435193724627526583887022922353929651796548728490376495041110774747925216900507219037668090156519291161556726419095411158568580179508199076915261245641348832208398612166899710845349377923868770239048543412953846864016638730058392214681821375078791886648196983978290006746698212469992010360300733941181647668353781123815238042018604870346812615974345790798206463453022919452641624656247044148974234824775213683006786995656901766263638144531507023158825122714661020023328765253358503444822326979233851777380314115571966691848410841302515942712321132099604925023821575080084904564134209869681188078769289206734627556267714355002528583443103958575733477141392698240577750819499200327569576076008236676228084581229141165481218191804736403724215411670548000690461959405620818134828348408534545016526597887612224629926549858683573760422723778885024303973382855918018257025631274206763129718433087500595398371318320371348653431003125793289290432433063858998381515272310907794756256794566262093725076440554198815878088792081399176934757963212914647054955599885668785281971512301992668130563882025878357146355983120369231542092669992896941187125515940207295708347015792412633729169421392924410725992193005353359815073193210552708002541673460338055268076328103330685035877379499774713790359896061258381324461659534270274092934164138572510876228664983021785995888234096607064506846014765185585607088829714383317032617511459161222792158840641577789969517798557451341411702289759741495414914709285404744643739319923552592193275849227252126324999199788400858920241582301573113142114349273743885802865494208511276911846516968372182186607019588325539810273623217035089393295871767493430696399604736353182508001825210599523792845672901838215555933276740087300943768402551352444602651177054910342388634252905978951629587932133168187651026021775961086484809443597150999145657475131623950865582314708866341611152680140357907124533877696467955026630564590032909408597442538679010767461980648027053905639412987250658909359403418860235674580991897513553881861964940753802915189154624580181496565984079914773175694327641737077653805547798980834618088394408047516095434081301355928455310150294870050414216781048144118304388461138965435551178939285755398763486038486997241782466320710942093093023817802299782493552070342079395551495552740462064576000262747387437007687876208974078224952043635821937384303377720989807144001417923183591323402813460002543661536387573209945271692395664412412913299866126081791492589338449369562249254676538199747273284968376584146063351716248040482043180089909454279512902841556515776879274469020177885561198312745529712194157019966034915589423720470002314902653401095811173163644981682813407066056848740716142462897799541228277118086559571494223150912791661119368780379427398390320527283139764011537269023520944362142653534809767460249832282825823329976100789814325169608457666673734958756422938122314620904460989794189384952003468218755275508407092715725429499272219658357323601843531171224140044446138898457868991320334034407065888144480355359062740191321257047048939855047718064893429254749989783318010346188860862098700056472927664137212482197452789766681228126504244717192524606476344296145855241461447681994318252756161918280009496254842948504818372887660875523758703883154318173450743010412073388641726973486761228756878500048305953480792849542556741389882261576646825278599608869189479982953879598426919668561866055797711986048745294634828206274748987260478879059434059157055068848679940656739258741386857109778023301190654539664952502170533862895000642195388439753764364032450328915994236819693075762312648450193437755474827592864519154060190915738809172024738622646943730492712111800800425374621536556329805968919949258814515504942495320431809198956008206940426067412169326618692700893310294129174859601056884853717989950157495645442152568219701947567575434631868304387406162967723524405859887523550435465688958214741622791294589259731062086677546388209676488521735509428554023838901983408429741888285861166039050740261951064244586393423907946917044339172464355640780667546484284107106434164333469069917707368709269704501834391927089885528591267644884811626792905373100848619506158253662927450144993547463165676491386746724210831167162440823922337471729441426661236575531935280146557901281942146845915728845015295311213778873359570869339143584842357781308177344056551644588537564361724597238960533757824376511940669657160527245685351359499608097036178719922846125350908470244990622369494623140447865966053738056524856860978726762411778416830034775352956697564031856346913404919320239872533079164859335629580719154613649930972061805684702172367221586839311580704148714237119285272995266968941705033504456310991412700469412661360074865737228063845443123766424785882862913583363171649828584253170872980127220650388202093955734191473937342822189853530247507777735590703126879549586986433075492744950602840471655000795692287412902366932353612656623618496774596626117838354549742965625488851565459921706747680220541600519178176594002161405520160925126128815444802227281448886448808551275434295116389207492385124350596669218341427979872481082796173526757512154387596776991482347534033567765568698110243314714680363035659892564396780659635920733102907567324503839506106033794344139545036281694082232759983125702834308681436673623755031941231226353972266176512143624212818678683529438019716966976762060099299760084661415910326206634413527048006068383680042385790580324702905268760103035043825222249811764599074390939542866062573018960708486233817615479232435605982831325172892328853762353211885969743332712516948024388618421390059060106288978791861238863091074291413938124245251078463867692311129014200335669351949229317873714814134431151556998760982317638275333901456367578298586296858212471468098248077818302174040353405774903060357276308051768797234348358866310861685253377289908568768357514627673528245646638415063708064963740851851865817765114322246535618906505322557321924965984524460994631595477012861091662452087179015811562743191351482354041787127177100987209784572142888690947465422413961669206239532030946857922981231398951101302643767534025396640945725899633996511307841819730623268808466124259834934707924495756767099820995624438827208841325011938154957977500254713565322971202887336172428887457324430785580531848354830739407690390658976840363080730119532311643411822626683619123027444859817188654547557243569283954453962690690279839153055928361926688898333429196827116664300154826136604273784927785976654191762851330476575068721627160172891554299097562768167667692432861479537880488988633584492880027636412397828022502651292705734744616892978141373707699163033051874775425006314098104669369967117989207172897952433130550850296227229675008803049671189995127456913601220238114853952305930696370027655681531328003527512606342776829400684512121921986832192355960037025298389171437932514450260269225847894381763881555472054397793116626166486743577583251885899575013956565924016378338338278046654597412576972909661456940886627531797831079458622857806407432917933019912421204417404476567459740422833453275012015726431279822252501169126119137374115514574529779449423208581434756353523918810568593727705592899104557029804682502196762244080250883653226339340235641060025470596822530195418582198827660636463811152463813017364738163922569369922942315594220382632047770494679920640077589905499744266053715739639696276167014125399036564485125978331942447907359887397274142229234042894779267864304534099490749910747127192924246652374443635345630143970404034544930015391357526271175699369719816280144156314720983376849786599125040002890526345420911252300597238158614003152433055738864587907551388500872014540715570390752869583319228933531262366372121384337775450472480000162125655388647348733343288714768267064585698191051968485505735650953342815530300117386055317508370922057502141489770698280965763564434347704678977367257108016320168699247087762247088220838284203929594117731627785840895778444256370834589522548442031794336948596906188915067724711906055874422706780960653217344249570013332417553040081690497733615451974129577712764068678315975992430237872661343334022971610466473168282220645966081863966146984370345943314218624904522821858033867916385457401977037381617593309935999807602045597547741993428790126912988573119148816392415562496375006856726369248715277303192267444960153621082407456253317007765375982428853875426864388213354488805222113337938719464650574088644922082445026069068647258261789251445240232289520159749060149532082753062802039213996607842801662004550415145004848980600347023166691396206226208516479357083770292768576172068168890605200875971320872719781591643286648255308834865875764229099401773022426282226828131631731986612420414384166655348968310777959926056072915154703633216588067308170245836793136070389801243698509844570491993177474308768737111880184992753728779697897526703329581887419728496080670143790425099203285027490507173629941064513543146443515084700297212445392386811267900881711942668361064313004845876666032337831837986786183896898738324427653560933156135624186082814098933784926962585298767104460268211588703513809678887014805190136163967100133786229138734531544092890217276943232448457766759979922908306674063884132151027970754609776439888718871244496033293547626231159632295999991364069406705195481723225918092932133268095970182162415023300968714646207635255355405344384508905694242604794601891758183199009426636261393310109097547424108722547914236991530748992116148844435490774983907471284324532301887836456446398103738676218166918212320537123614158530826131683199232985719540422018247305121101525631120085466583730060911024342640735865487146905210168910525789348017728721906268692318665265564786780597419054383271760730409430867601853972375558239844782742550649236563513618479511239831629689715266913759104758996969369014645404854550647590120658717402086576495617370373096997092623362250247329770085765413159729131870986657983442116578269985936194373947276636197934785192000162986440298602283493403069578913796776067721082392865652505498898961239617890705142870072113376455332855176592552809705589038540860929826690897167193689827230575558058547299482853657220367328527737577189739295986952023512536044940491432175760888179989243155611985398322173451286755670136508383060543252834064442018377724696463695376148273824276788274723099321717044450388396876943575645327988569189075274106320949009233406408594137531036427946475475911454850280207515188442755107722541401216528804397538101126126671130742297264870199532319831992485763334066434967896025570077398733866584862354186788497586372303960740880207384203452527383207421473762928889434311680109530794722491696641898991016582633073333722988542742611992835154952667850349491750760939367597930689868625768803191263336858716193981557134467477450139745918804062586387765286524557297587896721315832038232477635426248207891645931238901843495361253726586088199215231378458439411779044720895658025128040559299281238392572029954580127686165322173432057710642068055564618884420732161277043852962111787332170769587380570663675506583294101120520471393451579139680220164681886029314303472418589882832504465256047094397369438381052421641988655861553581734799051374788084354364903344191180349849510616778340331868266514771963706795088947980059908511609561187495676337485231549623079164636653322610511009464568087917815512899906421213228786610663340991696240366763331292201174386045251069977717691725063400879192425569295466415430745833812592646972388531121607328647636406430847950326170999496964297330937769640855829728810881004730024807672557106390610237870527737612835423540028189689024423455737117530498620179775350798678740152584559661496788250887560669364272156068235785094164687566048472725899778742707891702316942512079280419145343791617643572677512027530901431889596541093524762245159960773051507311660011177264882329133644615196848707411029277931390754561898712673124887483064583406378067418817248416692592559885401513928959846532259735801951334995329315396330351687569581384711932566607219170801902889241390019109532162446461195592997657705855120790301785921274070782328758277512171648235020647991801306734674447909880032302883852472556338292230915996017822751299983166918846661439355217255409192491416494049271320494833979246573379509758688009163744873855322789678909997601887153560487945307090218120216566955156482576586298705944905921245826453368727784577208339455444623921247233187458978486948115318183940483517031097075308360357882522430848281945675217857833046220401820488123296335002938002870992824423773180253369053300202478401674117554662638364194640068968373575974777241156168565310913891771812646588677376259116852440202243471238736702564775245005386842027780308494863272224985541967944208136828971900384146052383548028338329631126252883649246320886029036907672016694341543335005140441426036514029018866163143972749471507917650815060607522183016207694614835687127547882540106716073379763537913436855893483373903023328468540683486851935532918407353585616677220375847029197736533573167837645656209674701060439338031115234185560520782381863971093308277796397700460020953314262399926165869430568404152689614897549717168640682463330260535316280237435569808134981369275895916167571487974636188201290077831013054835751736623801642330232980378143561191273750291281606774276759988154505649265905689598475687034288482017560458573361884684345224534285847730665552492306265485863014471287029248046694292084329594032653055016465913346884202229422959449295303272272830588293574507463036714077422588131492046764548302817958605815900599245399542785254401870447201314331561243342008201132071978744192031252609826245404383038863282627679900961575051331392581381920181722824363550985477980178247426883591749318974476980725095571396115224340754112480395885543793102306946304571777986632054049488262152163986231414954353019879246858196616733626706694378339839789018398479236720520445284496198827923615011764953403554599323561529591448713219385763406875127018019385630979497257886343997023717637942427538004081993235453940951806785762097186207967735057758120221510887673062647426448351393968673077892513274208126878626455117058288659272221535854894092645054584548207308583378085275266485206738173479042430285646329533314991443453602965438097118549331160281818460851206808871651456945979326408454796967976793510177691130637878900075527547789270016725968049797976538851835669768795765242953175419699146979935899317635931481741194023838526307719541755543889905861654926907624930903345413675637465569177643038995163051851411158554598373272904391283027838146449724496258478262403558267746316245589313724632778463449829442281497904975536688164988724505496691527044704364108097978037288304505092125532911822828034581489948804272704137960910952424944120434798806094266635909501393805420539295922027591523821453930886596361738116154837756988324399313627713289088215611734662982821251803003424573622037434437379189366864211627984161203481154745466021485531102273034389493994923077509393744604336681111983841240500002882423412914719714369515920247194578208499817805281585349238686402042541794534710922941150936521984481358412665283144395203963807479261541562492271045264289189534082021826842734587937671234920166395580129991501367816734232840771565604090713970821357005296926009561443531440953042332426665200963812809159763632640640980759531526534613702642232879893064186733605768571723961505711024250023080579306398858192288756096563233811826113246699562804555138506986750378605268940353385701335503925085679148335854208657693841561505638529357394224197996691275790437086894420032632331359015327603984960453573591801585836324204877047482356395082086146632691829375667735250208340704948416792690433473374986753273555214848938758432354849290975041114165668517301351008529549781181181058754888787688394561420272702917548081031138105505084893931806573318913912820269348367910842969189485529596058864678614461283525596589047470073833126436067938855440454717985560848572148457167129501376613303456178775118858993677755449634457222456085169922459033523066108932028046412806127738400754058931291243490003165214135043728345779486415097475831153206673892200930008287188742001880241136876994805436601357970734631938427769002879736540666785204831090032365453257189818007092201081044031882062461903966706906284850883436333611157450558019745118696460576268426466512546430773464085896695500478640641884090110009684720993159540401743630055017653638215758596055821597421883842231864868552216833333338334021837079396840099033604368583427341503509689574067702080401376797382177654346781429690495714083180849523823193793075769726492334175388474200487604097424007138657466268441164851930073816007441602191767079134100828813489698367622993482874967305938672522676898632965801090842177594846521566265634292414713104003980775612361315421214377971649937425171585219240518117561887145996370509607330669098054556121979116996690932306620281418077428075406798154049735684837821564170284562091016960029944471505109399379387461647251496062981975700070130033241706730912308268494877374140704661457790307710972148956333338724682580864249554603677385820470906842494589141543742774726646904356294933490603025680937062680962297166550131948175317725040826238600939149493856690844452468837576151394823465038722736236569831672497005786008524255382356604508617771291493873410306889561797107108082954488007803731140821435555741640218445806006880040385684534457844410437212505884050170476815145857664062726162785626135025417656906182909308114707944939865533674834090944494434784794009618926567724436570305956219666806148572761834201278985575137444237577138567034681644018248008991511569822289388151902024332141533022145510390800996883383395296828839640517392595439914454216987534274655818979137078079806749331440487563163298810022268800860971187431657773392656966555998168691706339071041890195007190954958825939276925146896979705347722843355351871650311140754137235100587783281702397906305380177909695938777430758057777980598284437384365040171335035492700563784249408220279346008553327077553034262633494142347252518790995485870965734007479496258297201553887494865137127546145801154471784695171256710156435475876895845029441345622603447926514161553235739406758088291041635357814470457444251871080289822287346070912768188857997915227073148405112064542326421055357543337828541273546159238674617095479408871056775114012321440834245447445122079940602766796040492337072111561498146101630517835124722933153025626221120238494466179991264330980810326241700135521709826474085283907578469497559287523589474948366554209437230292863766082107327381062664986524439707947941744571186313869298727379997129661517431266124407644209556751650096042809017907746159530665395273972719226519047031304384639022414633940137884348409415624625300814465729706138209235593752678495516983986837919471447301663328498999569650264461596830160851112025706843795519140647632513130083101445486566747335931662815588059065970166018476854554692092717241730986440808615396384448716229178925409830303993425252233926500356157587414329256193384670782132556552968802728597188307080753588873135223369371987407044955856272794450769636912159293127431364628529559738502726354874360838789378404646893423502887827051172600934917816908976131640759212405209813703977822026037448153922463973656231911488154859287131936912529496955793792675935185249263446431671343954112084697248089849590273072675295806143305316036175127322894655676206873530556510358647348328858221832000726771819096404053594472046234089254707221975748396952821197305335955819498042348722325296833794965227286129085362528811744092458216026247074606368708715406905692087497954963084805053460189221503084775415654587424748562038234437331557207670408578086882736703173188791374063112866148810963913246147569973423072376940542917109849147972280638667037729309190857137775576216359416559121510053201505529683435270877321989434926717425616456872176048709469230668130583774187249683561842154086122566649189816245162651578666595136043004838341594673383810976708030766857540658669758773481025770178032453021395887051563595410863650534900985773412687833792050197999075045482685006784199779362743301342282369734291185236806724760561742726663337271705804814876140287859941970079925127028619769137648646804670725779059951763842092543871443552311605440487875140405338595760744627398000943833494984177543950394602545173705746222193211423839205137698756087888767224548861187902439824549648569403361673725131878778533940378445832584959985593384170305852760357893174868919387656724617560497662955191685510143622369899194541701290426794213197066843027306602540331554469141380154138744518872771145341110599415013493415582780701998830664491794632964043933536346018043764598392891491382753459842810379367894866557363794194636079386546853494103339227827060822500087002556574749666786011223832284303259222626457898878169346146847330602311551805127118786494898491077989873605571666322490381332177480724287491879631453536470906299008695279374660594917756430384805649807128681352478555405332358185062115670748202449146736897294982043793126450614710278629534995472813131414951095956637341396094214755486719684880373538812299221182381242373021222566219862054676752264305301607048559228473853391173700407890559872481804392478792603431175415642571274955153780170346397177864469835770893217220665639943045496882929554303727823764731675257392041690815109542139228158414801541522215859223865709777491877257847583491128114932003936249991962416537760529416921428407116492953535812647183608365896267527610995714311618367244494385926958518652757054832227355233329446267543529365590881638277960709124628325746443771471945402498731400467271834365622746409707157331576604399296631258188146075281526131067451415794247428620399104670240028590665416404562073456390490653096317036753162464468875002129100072771908926812915553627629054882615983054913488352908554084267074829604455652046794047567731256297887942418461194810292589046245483673393459706415533374790905646701602967136767783804518265363826613085330069251642262354507291387493875758353370356320672373515787905070364685541476940240404725285528585650775824859409441622983018289675126947293913849322633524986024590251954451444355975932296271177618344637544021569036082824635293343315603602416487868972759591212450779282481774109937992807115753661619911894542106347534283375778042638008940015095869571229971340053212941080046116638423495747204949362429294950390899159955215370462620104571103512550263151458193689955184181499666342907281798564696525158397516054944897864868214731759976068125354496468158697630144378473235316055381339723121737601205723087195816718898349076428310546845063526279844511075462839031265190945753361549393763889767369516505065817649386599380883442917823806013183241105607598440197226422081800931780940735333149134720221950074016823554850204703052620637779024369699495864282429070216631761928763454079507953095364202358762323368029456189604003469350944018580769891424170778632204819353393895029423459772909884962498372288685095512539486083875400720006095439490028368199704360446973624351420256212444841281325245518184213754291399359702812616992218212007034030843212199232375041675262903019903465600204748062916225069109995444601475130865861650999737820129008868357880447881083965566914960506947838138310633272737679693214920052954719923247256231022506716461718926162168305940482393439100621444747956893869639194308620066397382831585762151130106892906027241588103138035993100026816542049573426020658480489196692802214742957011242084455693330209008777535459093392158799347758634428991669527312385124068522161163731322632637212519705859443079140685334663541487075445378747232768691381771616473401629340155306101710620228117579588382038526315577349858791363670613135490955266587415637630648188758508516237706556956499441007855233668814012924744361582342734266930550181354966182609112334821370458307780841218309413317472141830894502082002266013199705624634262481999812825750866909149038228169813884261024315716892236543737851880466536340496691763477163899263939366464848720221959433260235412093445894957048059264339045770943436708760048126090530770865245436329394342299012792517656739014384826762362450852820987120218315591506646821345683034789719124827575832224290972717715806186099326788425074550271227298979037616354517390485018172081042823740766384953631176489271062739265842088398128727651417725697671359390326634501931639410206035725168287023167853715657535334752029990389652019211563061110227791653961056785270301205159788677969751595979307935511484336664452498914197326767213624730015312774935412465740287219443498398446026647375505319815123819826840992896278777662349240461147058538703445959293603291625801818805795267862075508898032573351916542147979652844628880109053705971045870564505950337478717650912255766277160522539629261479545483444583816548977943206705380770828547720638025012163860050825396548057358936811544147103243647583857797030802303538434703422345999386483245104912444380697297953357271126190586577886939468417446031382758959626818464274680513874629319215407138320673523833861920802178880117429267236821013346069296020831897723732974849597374709887136481314751774090418319266440209248651462972732968989802374156890007878199655980105572798962129493054234645222719306921047927057197469173514094601518410112861865059530669673046778761915873985304442420028736398889313972349297191457822764693492854169534381484212192254511880153753296551725208706370925450321138656358373903851062362668085350681771566422618512129159925087962735851420678564000474669950781376206597270560303920814549799741585906433678077614309276835365755672610316575364790060305173101818463388757766319459967839345030607225177808244521267577586328471621236987375747559513197375070207997327888976624055631417325016350697319967579898253697218727874324915092378297679924982309644779141705887095343315648730208008912842615108533092951610797867064630842916834192724225755715262769071041375600218217088093427603547729937640114499741026162129705569076688668918755544770030525942264624440643754159593457246077698077050383219258334521837696823631111841021422314303521796446324681965486197509162708696574973478257618014475325246570761103238728099124508141630783645121670058985136557585979359302187152957220651997499213136747455682573316233630915617180301705909449715866796685948383417192163113323651032975025202621228608073613290184745321620845697409908497236603408624993894565473782847132744255473338400402208511647205329237703453120858498478618708705082026728838134381779087953501086228270576108047528108302540437197734711322587257851959843799351292469437472663058471720504806813278087346668075395017772998524074780880217396857813208661545155301495532255628552234030309812530585684830530028444366503468594902077770394892880465141864776777163761384645582813655619322436829964827253800790285406139920512466174681956984710096972835901778346465946697846362159892683629930718890080298792625469306510252870725184753741508441247363714312143281969193836862120805359806050724101840229301769157576901100830436159681737547388155207550010591892480273407364928010380668574829613223621439833097884650908759798061675916890144843615749888654739051913654803132012109043559457878210625307128453735540804536542278188586606879022546440034284580468063693855366420324863567795640757747199192087057596285448769720581931112056742333733032837328214390423273227627035333888486496507675696598962187896202695214153711491446404509428718997082706360278807064287497797370654626664081383288954444996073917895388136671333929048535877625506736704247195620324625467282256878065659275790250639049640955379410514130559415783930902738594367007427526767171283262667192692426628324282419689299552023808931417845849962375282870989041856801023939362669165223846984665395784456477014606330210269179431234359228796982707052962224508988400870917912444619531220667126553301588265442639135603981178477896394067891799356227313383150070604167569052042132030814773024976714233475841738673491011197147713871084427130870048489333589486667892498662913626206039888992177429473052260859083708196157088636106562591823595422847941863765585670241374717291060466508109041861564272131418683635742500129005468987854675520560813825427002035500197740930597184252881563749655378921434782412921473140142794354183842949094728689253067848377235159122247176053397814062662914081054624447280930964144649957643565438505404483360009494625830873611371231406426923453051088617871920622901950778346108254353835376148834796072949214036934297621420786292246540890692329644493734833653944318469025224561932883674949311944058834816953299270417375203084585491963255771584641933394600862760402721029978035422359467179241241358129878711947909520758687471117130958232721732035934236533773674153773750030824671497092330997333699791535389953335436549960913834221082477959857827362377279585818209588087318957663182296333627416231925494256495564887169207618327313766771159729723514587424664894034194016755882318087553759303433029080165477063395795494096842443176957133549867074567307609027872933121710922161538608698484057101575536697652295385685054219748473458019517400457647081443144814672974453537825642800458374333732724279307615276316050985546351009045998856216141958854250529535699008726158504800193251487721826766505313918708527928732973904103246866485081401012629433478796887956539703531411557561777358733427101105565808078965608974386733774244550307459967462219743222223958377628869608863536444381924267220939711952967545814512098393993500895826199219197318053480967411095334901014249441628334123141248551568057631471352477244236678855420144608006165273582613863339840227739277686779908954186361067422508086829338420696180521234653501259924486297532833964425361643083589921128312424998470119502942333335718475509284315020764105517123261635224173528335812998399270912896787939405087737965299423402061791185823830763346941688532543170409010694294475957149097849538890880429493384267675759985382252597571172762682178194845907356260218738599413888547141254607274595401307370208690814041048085091570154143862788173079578977183854146042762275224041714767131746099804706478030891161989619797734366316104451223420425446687812380050911004603936490837444420180562689431229324833476618350858622574508722480189890831866763325259794029760736399657813642472375697873265552454940092667877199079990785118840965816819906206305517974469346584595936892734510758996107379731805934634981427263733946919221546428122595218373264703695785190519361675283546890505699549841323987523441081716560858159984350461307943099959758001140291142526745918314075904051324231490438525178148806492802313653609317346008303470153149238466706409557820787161864855590039276019875353238249997953954997301327595154769250318383538347298827654292697034703439338569306472051096665011809932955286356449623246529621937366681389077263296063725356105178665026045452813164575839732477253642645842177607645980710870332532711772443686705754719575317346683650481064739770635375112031604910923908501469064806462213398039370495058033847665656476551935629602197894780345272878133096703515633819665802330089347052109659534519965760358321986895288952425224396863889702074599921657208350342221631352637824462178319240927278478264596226093826872798652986635771246020123832338207994359601510165701777537819021466339590843313399606861193899609527123116228296859442863634239156568012811208068998557337151738182854467601562998083104837974561003986019403247775367982231387479835271789890752055158220227721437013367154579895588211490602194147916143505463257352090525981750853811127035595316646677182354543903439753556664372190911685263656447551617754144742537866173234058095311501590201450224485911202959520648056760250842176283483433393570814251859169361560840498208588015282856653757011364911570923580541794275830210955690264063845195334276467449273112547701499661948857545257848526772290883608481875182361997102019520798341509709197719967060696831942707062851053715244204378861177787047053923217112649215234472176911595498940742475613750317584542866658608067260673231924207913791461442103398334879925123027704450471683672203121201848191512168315733513780778735445246823776539930203305269037020594627329221417410057446717539809810470853740000863954528419108257732045484203106411127064896479018025598515940780997459220287512203235395628990768859474199521321217730368590444436451647107751143587956047292936267038982912206044482254653536095279373943105042283531633420099308790266320069857103603040189407025501100121901444554240537595990121408828155319424498623454767967638794219162848906670411620157252611656634333673123198378473252724807729549597146927450536867348028304472591338162755737458519292219163734899541169808040590837963276971422491870834111474907517353614427071523887367772318274129838179224423476210474427854441816230785263072210435552904410221046688583679843306411849339212576155197389053832320464788629481142848963042106467972412233407881748207887051476177148000838159962557916382734619821443719852661843906897134605684812252075439922181029599482205466062826729429873844226878295132751260440748293583518391957443508997470252893247048626527082753769507323079763149497962835690165103944552198765857294427650917087340729428141665436810309429891625855302226547879837701309937602768300225976428847512829079699250833303620280284607783534850941208937641858253775134582333074585285588162882311097460388607330437893775523995372550555983144281431940240052678490359754071231460955769909700928643206241765930194444630995157485982518275800190871172504947211215162533495173666012869047660351026696036237981042799566112890056902752109102575851871754992285153544218354462491950415069955435822257822069632501317631570699379808551196034140357489217525595158389439792690110827217071792773600558007162545386977257599795122945248160301187923740930031926206678915919782707883389087533112622602056041037596541373396591517853864129309346057150584310914694003085608675077434488697153042190526421509122993650390962295005645188870267018635512639111939134118357096756187902789119502288923921392708810530733252797448840300384387991658420153846636454924285782181435127744523657364594391771382561896790667084828005028386771313514526969307399400851067028883341228782991599802979526092313265493822356837001312590685197858631099371191167591103224815583056065122182223680194041925622169137490385759624714822935112134314211937152793689334364626708629245589579044144795103830857611496289146907460466097276949817029534295125501923626463215954827360626276687933489531204250204900071909135285394009298302297290053673423143038921961968745479816973329191472859109667061193653050592078223676062545753698364040169310668833425643414722752545365633897604851819892429207790328089839595480847825208301269681870919719860759027975478036365359902645942321335109502391855606968789242875946110458796754672353968212100733421483075523567285230322926296933478742245675743071430861617961996750986337727769585123997081230224008440643239251094237749477366903188117018546566218764396964370574702656248800661322061302392304596791231517545141669936217673994208225192585720342963294581577922603968691727197708042336352203022795712045161206982627502108605119323914599094079049607726430574135122704656301061348937577130878089773874766598857107916671758980930989496411425739667818779104193407433372139050183931141182699214314306093472739623553706248091728602132233866271962421096686163352718246423250619635981030925988978560213967879850932239315576725524866983551473475340568979376229895747950386380837946825572989948081979059376541882170240000390201988376475452441158181389098041447741138588669550306656644458152367811400826669279954024199658393604802234829252917477945897536509305996847005663696515747012898800279200265501976499459708385508233051109811319108637899221055760626068731481783804688746807128465049848662802152432712277663239435867156500893178733824076933751652273609726664972353160212929529446617443969468625845040307145622174834406458289924397407961981465808153470071263323453469245684790147352695817718983433869677777663800156396713912438098402209477499850909903575951438139732645758031895635632669337494923965928484457325001907414522395992585500661971332943294788096078856978047865988962540697108588158146839599927728120574252955579058344224463171854054529373693719660898148349181622910790517221587854972935684523349476529354772071810522251953578191882216038559016053485014569711896631455641338286040304448273079020395744489853953538546154885096011695555080035829179745503895549133648778981165444858129826216885178109016522673567723867574006223043075733877324368598672279260605324037914175207446740165237372387219156926377324718790736856919928929539610099745682505602334559701183966361304022859424924362715270650323470951989927936170784311839658870498008031775723642105355223236704367640227374542431295096104654897174049880890083332583927023565962940089274908239329398182046284746017874332428963396004675268231885764272141602393732819307577798592825847068908615605677135553571708961864533711238409898729325786274874701515460657260354423490564940197544427132402804657875338173786928305193477624531817728320998997133612528985730582822838930812971510823985393980490351794557059326389678508630011689337274137402967058386827212499839411105676042822301603047740996537545454731033204403621826398033273812064685333261748378402804122503197584496827118092773223455732649893125698122726190368928700434197912399172756137155595838986176523014276393940710275116950870907849659111238428561482485425540152069355433026996623418451255910551488012864162954527689656589016422967823631003450551609049264207225904606715406695762785709872150301320364036766492527099272210325795341805154261785003913857155147055512068398939333075184380217251327458816818558594426413393360972149103156943826729804120676201197310255760852173351446503352187973846599224440189460747361626842502308299210750594224907912956977242644816092027086888211695226914779104276804815110223293570849485256219040090126985283935380455725902973635804225044266798463462752457502129103819929243092800163524077885065266622873386387994607534569485728138775246496036254982888690944103748582094274796507760621913214967533017123374681316008547296034380468021786334306960374934794980079402336507196758466682814274244234314145215276494543196288192493504597312822752249785794960310425708056037818714212270720742886634747573084581370949212553707670682457742594597419136160862102883523763867218542919796204531212174757488203890471812233770046770059505789444860455102677458440012241741144730073150085031436079709857332445544349947993371053261411548364265582664267624287308240273272329047912398471611697667390563457613110505095747018741410347628564143756935033843217689394919988968839986857290374128163502715166344367992431156222266901216817337912725652265163839162678052676400608646653598054658838081497589222851386916061564138282304778660298736756749671866827834532443521894216826661266876092982508109417754229518109555959790918862014834258689594704724921713807323848557140879077365715477039574903261772097396041607453253823340298733397823404242003612519763653389620410625818072917698597466061164828233482735066758254598745396040375238242624335693546872104059768837540394931074526960539286256600439680148759597474279841500280772932384814055127713969730008704940521349986746969185519899809763786590123798094462873371634273693236716159930400132638714546120812930355575592453904779567089679718386748326554924680655581380569391560289431521531993010580292621516142768536026861213127567749248828220143644977476984209398716446152042166114866707011832112040807788378152240087298347102454568578468764748411110717837822860589842339737873200347653165351486195988667872354074127582701592916347418433588905607112690246096988021642656465135159921522014145302225106934173119008135282349290965314508558280136471717362038944820917563930728084144660041052535278379916097704826694364583995305774830984064802857382214081028773880037620986919657953670980071855314995018190422672346095943131555509541619096452849672171880348730870689700328700495122636185237839816519767145144558501453046355327958250605231740095564916748134799086770645132494151652938543148641334484030704997208638590442710571147756147721202470671348743281664004297940321816330001056860878720245604833340331270483409892635857189822739648608707771170028290438968276259964753858763389363177094436599104197614302602929954289755951642541963935028894977866753061625707910946612680283177872469499819831152533255531264936344729656278851349025730251912233337597081879798125576263112121661118449246690398812435525912022139218271770367759674564379772225002980256799218772471893914706619032522500184739852140103491478008801396161323803342591144901739560511698302532896663165717379853846593418375424344330475942744757695298552010140954366937821969278161172163161259689715268130056434310439494122615887366896282153300594980475303273474237058883899170357184521326268410043578122069558763068140867311868121381615224238845018880332663605336868284734446612981789063503614312215023218551146478361898581832189636949465670009149813419737507965048784171548044532774956287043596747742745276985098156986517208824455816764404650977163629594830002329764909468160987366495265376001526510458490834566783719969941002612593325733966591600583791817050041684533970560677596420524081557365964261876144391764556876464176031506794281813113655001557974102737945558656344858044922628783709880325194505250446057798543154197629985687763443850096279587255722900752009499045975651945122014045766230476342842910963688207703549416061037004955591132774547305462076711203599212895839787342384145413440452174362132261549178671528742301477832005416167139850226772007409693857696842721783473655475203207155686830814203440393896286494491226021138528466991017344727690812821863222266332855344828715185119041128261097257841998271261946694038880058892714362240805711580450218293586228578371337702703124829485350063332841679101905218437375769104007784750645978127817278103775794214369114025976434221321411206218765769657333131128156913358967881236982266689846574320484140957047628704887210514780806198674527689984041715087373827268913716926803067943176364877348423388308009041710149091242234603834650266671988669765274294817838329193245138229240737925479882782039473906826813883524810158666381268869651717414999440411799173220577902570814005032258187414454611805566871913805580317105446384642156350633712249792564272245445232046404471671695941181753438860404644675756978846094804303288101606386524184758974355201683581498715210599165396511915007121977498700076898331219922958906605027289938678778361766869369084316782740115986963170106666598058798191647064674270551692419816099038524226602313611739496363650731609290190528682344273208009164140776748502177914896023130963171189641905904463947507892185701619332559937257558485382295721812540670329593882032590695731569075721731724381182380963116254578772172525019302064068972966097466575514755888043424081393689905095036087296392323136896234952180326248910801903845828742476126086756423777509587247046053661476130920545993567932711255527317772779918550244844884402642018580179551187586544212968298662654231947411830200215707932985548173832186941106540681243747003492588592296212569711828403436719721091587679021866517641880373196712273699752086804153640892035997224137247738258339298712243885031114819888578768995916476675103537958092626151056383901563577267170411072841897137506699902258840890630861033606625320891137320457856663285018697819187483871299557828782939385365572369969609149438934225403164181402014719583945755980857769608834483062053668090358273406928712028823194166308194650184600007834461977023212877136893399565404747143661468966457531695681878999506226444731418116057923950356771060036318723396494063281541951338801701653194933031267981439050191304709600596232470296132821095918954665059888068520090823149862482781886553579237866606394591433917772921055125048958462878270539668635522405254448895901125048547663249509020060782116366470941799283669822696328395839799220057952455174315477841502757741101580920154820183448215645504709736448072771024473743767819983341514006726769895031570300758951469963648491773980401475605016781221463933471214309532033783031343548524922994654641154053843614108839646097739154564183611664488386819704983558699789102741414629963797453688092805843778851376413876114157535998351808291485198098214018081438245559983926643636030627803670274241042678915751495271718023115773385214125944992096313241665581431512849140152460495291504940798877925008793338042545208600386414350532950030829766683168526379389682104365016284735671819061267216911894575262564537449417599047779143676851208081490750071932178896557869562324859588289573155859866331248519278454289711114810932945667923797032329834936250883387618145400209982399682790756304085061377872196489604350508815040014685672998736824060455066601077467198250984571137398900420599744843406988060196529827265308834448545350090204692614087886583861737810949722913792219631068255225433898571588483667994877956729573941784091590125121887624983639630597235326966342807758108477319640656654656586281073681156407235886279867232859372898506767164435720930382170788334060187299257461901135623406308437947880378039154955825382946671182394585973760449112455668775377229109193686626860602021560856717856179898938549372412011043091326316038963712318880662761571970240487345532134007249933369661010679500818425351235393065627858945752970329673109503319205079605228303722671837707798124933007941745396979544243017617328483758487985224044967196394227924170685082111799394848542624422073824144717734135083991968239118606162480565373820149548342519653415512503972109780172721321930759295906263540063304735671465641722852541550098999618156224172773181332471009431433799984910603056988450683038646426011873498480978599187257910987075864171738762147822428086383507421830909446515244497074282522349532564292100460651693772862650068095936401594667721315302538154456495462761257737469914686205046562776260762729261691500578670677298756332158261187389145981461549231774224737060897955235327581327202308634332137801982380406438858612180628752769120501306041399587454730469049019103519612111014180516388893294850136408656888557973274952844662904772480333111117704250863044147755903736791734006722441954468095103330968391960290229014181202516737811981973479544861342271204542370445750237322245802268104816176040609813098744748997511954269423411570718450393256949945002225741085580584598945167970699905728164628134641470603854896985662433080187382541078982204284048217356796263192283798488116071535967473367636950331567297196357900873036840700700354928184697464291240596588003132048861933268626477876496517580887797182093074062755090269118760593875989173754228113590899682185838825335229799935480844689668789247103003146265363633184373867996078547151140098142877615734573464794810003621348011363734407362660398015118388152723183951562934317923780944065287728179664099529494065704736365510031435017384817722515986157440223215072164653275270432193255332721643444858740966497270187210543533527856920630547182579516474687232222452517712409533023761938141328724713769540847381758910971510484539448101905998116231259074175573961610612083555451482471938680758611015969931310833403370651169694172775800203815156225266566729188308499120002070670421271734836608406024606430560582686889832375404914279333408553401424919952547749418155286626601678892362072869159361441453679610627749373122305181834347580093480278633788690051761772399339403215594516331519427712451908110197262086832187136386396279348824561959483185755385031829029671234338214957122703002931443656837731324366312826408542234375155631443342159976177839955331793758905028774849358901158537968495526478722713258012643638835580751990502473891217477431877775454304947051881188775064587806662072548354383453860698978704349746790578922114584391878491214560700048833563481164506595618264494514773861738253402050113122316777905958479938647008907482008015942926870515996079342232949493337000193769698296689998056878145440611275222337023021322613236664063255844663201666542891018164587641677455878375291260077827922117227742259850174933406628308117887964661574712623794390211377042199280267485983294383174552417767496739094049153215938586692238059642089156542365679156252284695908867382944020755628533861167417131743909534966973793145260639923546149067217168700464834900895887925245856343315397545873499916932180304512860551621918806518768902671053647716975167091084511144831968133144025554969506016470062883838991589948175723560453727409618167610425404302300512385423328795497216791911673840006645843994549495159986697909970641144515248407295781972483603775904354528172172306046714195154541539539582133771926107984843925366303923081536904957629876174950862838874102950224553523884991556761117125848134107424286832962161977846790469545741044955619513408194028929169603090491540385736065079300711720699369828407550299073169300166694956119065447286828640239633985715151016334288548144508275200743894016679220320045322871638885051245965645571437362027602798332545072223518542284420713475715786288402821121922078981004221916146036481087632218997273025016937397620459232381289136512535953647773786748112414288505097494170161224175130999476485135314396883243895704377096096780314636491131879831774208700269648977304680729965288735367477543910855533614594279756456570588926829375995997738553975720986757899151984805229217799980016554318597477345757052946131749982890440324580865386482819129973304619616670744609790032335457121310236689462693836468342249697218776924722261939959004091466981125315545041684844900105849577958056124826180203004884219357690154572808383045728132073727531499416700268803477564190687175411779986969253971958898009069951422814366445485116350540407496214512017642840688075255828254023288473203269720144172487699534229968786518905336255250673646009813496796081905047809239984855776570059378690273146307959358748500814296346031754668380661047098480287187519765331899052416411971465625851733830929230427514882934879345037939695222526464915564324205411293201755541376766546044504213558757979600763834790711908608751587888332227844721887628455696507589726023534939609006229852559996496148351321014984847333120871828749787257556857325888405375020852866902955123628192432688242271925919777591269898799618915443798288617917334096105363250378424167044665546986005391998104821023329813123040044029435671746019803816265630714522763894886757885819379946185899561324055568418651725535020137010889634064502931335830785246004725535193816266774263838139313986402664661510018544267110927705051148894088494352828607329945151614710415538780421341001763619789058273647971922741557340187271491366857930607939149143982884750568342815115798939267980294352936094265917446585061547663654877116111078961752410927990846501591363405815664191196092748131998130294679702456038008770633517556001041459554536293499063547142113648125263348535581924190607695357805226529244823517030350445029032694220936819603713565943241655284882408284797087896604483131942156673294358332915009662951049717882834599701579895089792818289539667487548270148531424935914328260159948183185567362328828118471918045924396376313318985147849828322969197994781717707018331668721493049775049769596849571458101770462194924167295262767211015029596998403679384472447955761150528317846810094121770445362980558784106731096952160109587805930427922071806063291126638998224656344805774428251967301461026432418319097095669578523627463645353264977235166952399186953491137221390390079956916150186594995145706545029855564493345242121506068189576556025291958283343438859512602850171830793905904979689028738732478292152045567563654731636374610500220175220408535240893902381834335815285714398063167611738455756069189346324706856255484407954194884009158407381214575935973997879793027062764904528199597703441333279795183654215919396728339096531537592018987930638353854543477212305488243554911838019761508191880385698930243023990339609154824162419376126549986579784225063289763432745034590367536402184496057529404462498662941932671255959069820200692183713348928947039793414983216711020380479326230775412031282727432179182299723578013141699522687583612095055943876064687210673031201232338761473350865418758958297036287172430684850754033977389297491375235281804700647126456453266043146790938441096410315503166972457964208536383356651846823972043725039443252942568622739672760160122848183633139732791478201934113130559878424145666311564963964207513956391478740785326360059692991348513305333534952655913459612402164815268279926326301834413771108086511293286868548912270722731723655898459949655438133906171106382242163066179062491036164561255805682244879318601334265056372285868991974481514356149861177491485730270348780920175743296638063990696917672121577957473467486300564540492186856634538883471501085881000741385284372220295134628748257046407163438957232017602646543517617478110540669956516021801322955252020649016078040996293184310565525285132756029930876275108644029634820037215444119296410448528060369243069568039481345680736411331532951344810320570637454185477831466612183397361304362288527952041638467026435756545926060894415298913231827372513507515019138517865947969641698535730245107693412151887613928018996273978281513534248337779854263181899462375491423193272656195330074938749471237310730022539388569088918724618462525919313477171140688091314299266604032347010783231304194643799852029421619360431061898735978994940578793619375838619794683407411980121698141800471240396628272473267363151581554196588472043431877663195565995714873596888011376052880541461742523934863959671737777586668070304255352372483270729632654710337837812829950831977871361107542827522000897783121816879660382097238752535826785794119046856220697636586109347437741670942835789351332144493749241302280720711667417082317284343871755021653509283309523687510946994502945539545146674928458406310627594094384580764690174824253204908543165429707680084586363480107405423692764572272845623515537932687917087453807616331345037385329206546775815761474839005279284104650617810999410389539733786413932131886566950084824549073050023557050239184057072577472612061461453328105361446863003281062758795144333558992176259619064624376878735619022092866636226608380878186972256382199917879342696329513129420952073063687325677789181288165945873560305123079289103148112609160616388503317953584003162575366564595217152263267607300864980365279817386651486935981103508039473024061249201962480838922592287904498944467217623845863142580950453318845346529694023568699477305432461116843403353705521121516975573312131116841663298472314341991099255520818856285227004112322167868587137906384016744072375630144393339271119692174059018632045490983995085331986781784601673790802156286854979024746290897775250270351126007870646767250113725569979096003043046948987147188949068799446117085049144442897103545353589372326158290396435192187181639818184927271783959834318168575852337715463047583895466663723946184533232760415965473981978459553443412488785139501914802325055404216663322767881717040566743982963149238978023918198253179568220204333289445660491005144732743319266064903161313039034245614370320565914949430620636554211929671351531222163984975402680652725943229656507582251509826774823334044274073805037959830704034578595403588435415933437461536284649189849067136825848213900298136331379976867763566462682292375624467524783532142063766823552518082182711800292098121925158999655138356789845908541754062214020128944724470337513649517172291447462284459094040629766175803831763340554889450127328796394038121935084276332981774823867151982498383152563589288793391776758361605455818016655399810123895063392894896238282678942845176657914652271073149748260081506021089780657298206384404783119089945744539735696981228112471438665896034386709721031100303290372318146610727092333847684041638735937521942058246443869830997555063225263632392444038710753185842774212507736233261211501254354671130666771663739683556196394543829650397592972852983452309514831382347705815649102745476216304506673889018891821125497164619151324490943899195978091043932837891411181936412861945162148934400525722604910214768990186289357049380924654415451436168913565397294239031808074280774202828061493894507789264500536929427684661391270927392786604178301098716785158490717714476067558746976977821005597089125349740435865534704158673710670949507838815852263812077432218872637745434311342868487959781137528818180700892933489669844177806849948090455301641809242942800808513731260484131233168864866982613439779562393591475842413705241870224296586097605185446225326522950896018145621287313303376584320860648016682518273789149515501673839882729674544006387808725914643228242709045082507269021445718370384364991188638590910184092717773667057218106239180079357278088973570105451249798339853775019798993111899493397864936525977217373876496809176587868545688535753700589303277323787020426633947215097605061888070718068350632499910769950436137271298058156802557292264812752492323788218734138482336436316202935718521908962681581588527037601441837251693246892414235710326400719856673908582730062502167169688898384177020512334668730739821203217443005916403295804992134554509242774829351683489376756289971632725805306356947447969104749520201004601909944915660242343662557069632701045987956606971163912010854502230911948876953922552123400386974489741808836026419422826034516447468014380058165501783886125626103976689963328082380278946831932548682746710384885235677638790827570280886919490017738650432353907398056219041090795074755686297123240123655782598136454749707566709786754437784170934288829613195588534448097170608413136452635498093718862308464077421614655318887605246367114699418803538575432984099376742061706322070302484398330684381938480909623074017993952862300001500582179015770960766109768250592293220836944662726665319648866072433270772846810389829195010898530378010451916989187671869801769591525697513545406809646452249359229525711964894456984564052860818639847879469733502439357587729039078081485696911509734849991625302334943390503657277902683890122431913760526705334644111305507590364634915297134459725399055775878289798416784800343793799327923562252870312071692585187429768776234603512191445607052972166488881317447316443238157855658956265461808985730178220322957386341831079109515207971987726445750554231988760031742372327569435869675115759261541756307828639310468805897518488639898200665414000402359353088150970727106978454210615387699148840739289660598015036113596093746028423914747762990872866065296360786043998403428012459977575307351100775443471073806492155414800291024280393617924461359489049404655754593630311355861991756999407163388411736526166663983456524003464878010906216020200090422712112395596839797186508750264367773061314383988073711398488402854787128603835176643896231847523831474387110337793998662270327469614730194862532119760806100047946900193040218958570205943383007945776458897643403010273820761888590159702404863837941599036681813056393411704688183762658038449301121516426945610499388730585691450291908959378589190135650139455208469719239879974137666515822762420816187927647539159869846150151019981301025149439959069015209724436813775770156117430688496984089102483709247987327507918285528514312569498355514516900088369955045675362099396635982809332503963121723005538294108143653983296261758645402334899003983037266152603098585555582120206850257756654058966095173722614986336561920390540421772384028659755295971353546735534682105348174485659312118810230894514251571905778349510210048440642739471448472312808053905945219431699035122203538642748231004479969348968741641902073890768169867618779011988660603606752380075996154311962576091577731324413803472522304471031666678041872699427964843008874973527459189331218648058401204501165864575432617285321524224600625809843375881871365575768482704170892882922890340642569118045176592032892704980896254848737371885710236970124702318888460142071732050651817794139788486884037894656496190241657685534280483170813666086419564893568520003684907681386960452139981082228943883516982967138828866743538948350548799959092763604451099862971624857814116191498224290404219403851952195547800551199654623723883851780969014442844758663998795713217011988178550305392675193824953145536742762427235589150116748032034893046677982674853842565027556255072253469481467753050176164345405411931131023986981627462527868929049616505621692298913257288266309897613018840725160384167901157539800313652342969820461620798966642838502473499409658348361377985701252127153418793712173366920692357925986890074017237891154300430131810574871839339615008976007650400262379459361734316670032667279086658387634620677630258805842711994387166171446023554406673318807030652451827715831466966340736970805258153696454676610013803950287954710831211720559607680286430848506483296767408542830975519131746513105910954732031810590666517081947437134815011050251778048260044408925270185112323737829191314636942835679664235750084422800906142429590370746853966504699416845215528431923057232086693941728011480805621030210211484826708101257975153571051472648306262131843547973326840080076351828523682960403905158290483101864388950769720070318987430970309717704311957261027956137585862050401146834321133582875150003598909483398950496624951601580755963604624082501519789125471339732491979311474299953732996780646248235673137609272148290744997940829614014041688039713307904474956107058230416502204300625877331245761888704024629129133581007256217779099815105147857994395053932074628566949604571026165914582078259226419279415324757943869532706452901123795122365929028247159804366123748188211122728799552259905546981880068314223795851133295644879108914562026140814208523384722471661486556191945817044988720056350061376587592485484987640957775540337324214887657046015522223460715319804499920008198288679619193859733038405933820560136880783940419518377816603120731899355101042659041336883249059345998806882227943231933835856405395535178527676416056797733419549595892195754832414554258573430654750131811693205070418300419060303488639574506956829670121819479788899058258224561031969329058692848943499372838149888864840368255239407947819704034781713440623854507017991210093825190678377102412953964578908652963979480124283221413710481484655044515529573659532398919963176502125382278123294997273712684952545848157704119558561003309780943203697701313920940274788685382106765584481712609053820836551137032381872880058507501440206114764885896096141007787978985975164799369608284881114201859968001794434941127696260038337979336874977155385791212581508384608604249178501803228567782823796624082546743947417127471803697864415253440785315593208776405796698851633030788998202286126080885928547954494295517491058221754752865409205114716554022882713836053811814264179433572681395839387216883682345236534276076874631637241589129002404647278721060896273331414911484709148449997273321596605464331037641278628877981360949138845583464698069993514911113939639951140950573159288850254768087291797630125650877910294114165217614004016233228733296426980119480626186196187256469328594782425194291659885545489270675956407457184192862297035559661395055582207151147700942866206637830739334765742679305626614666097497835732321135978214629578684045906176616395420118543361241845966686939923007601158869249206083796895452799402753296794871412697211729735636642957809416694402715504173984134297157066981100342589225354194171514851021176444618797627249728111762911278766766533632024649318593000994900066972692066785680906044032081371351011686745730529905858163744807713822893235957854353372726269865513558582634300560217202018945019565693325161443336011588080349238503603699387409792446998125445082650642577225094240126607621066069356515596553276960323092032860863770497937670695832246058687391610476499442062974245940804951585365218234231580369561200269633726242644521495647618687308297616180302397920068890569323401789920085326638454679854224703848395324865072028114471344249720996508291329083725743210155511709685473923303863002492168790509218190840544964424337742916276949836746195200469078786023183407056862935606198811539360160037856462702383418590942181234496105093096328860484728255190821928681528545867905423818846913882893585014773083413802806857945472789245579114772424114428053727485874881317962368595861209746216553066937317338348124912151568268421378647036123571167114497883795782439037714211029159351196306556957249164805786864211962328255460814748458121017811093602669098340473343976716335443362932740239208673473901717366292240631688708981624438141154903390573872533650016408060190128324452414731097028407574686847109532746683474350583947614147644577024525813625414661530735962733535111556470994637269440918180915354729554894317023682187670109351521921260558929296337741157649071264463087352630794436369130870388274209377910312314667409382370826087368825099438842716863106305362259659700251011360158571082434215764066727429821981418934323845353820074138999427531830793210817380697260697463099793587673293814942404495168870407165089248875548644672896084780657292437992243861947828027254255022774387128128865658090251139160750003296064095161680357711365774998934440480793194141929477022675123874294937843839995872867830831391738166964475157059724789868456193423784795717482025043622490193212212743833035838223980777957347994688534766466156701606209468888163138909305965514278865712534866613245573415047453361963498400922930894923995094972768195190194267313638973349172670513043361418091594118185447224610283337200978763164721405120660579888356042501492711493065880210559652564436863537350498697351179786402424031333654774062656226894766859738674957766434072090916116362553371267783396484666815970071231168336701239653805132999446260858831595912558596156636634960679917814874270134475550400702167048623808198653385393558225143584914120265638546507802769319193219606686459622982874922060711544783895204576165830148912000996655400807946309470830517072692652754548470318458888219241020307314524049303762800224940837620674296530490674081454324808555566922421927437532646670774534362120786295528529935372792034587863469777355703201436713798193210252241015317317429842800045437908210468959989581617348027197537972092854338373489194087973570973289542265033325726854001345046004618116858246907424172216983069171742325332520153107606592497248898654738034425821178447148229278281660359120161284423813091668634105585483199984386777325401913125424643192498783673451303271249210643031664929354365035805719067094628988974346088870701952631656160527430482603442971650784229155664263041476069482809907602717367556583785579627578432584213324136696255368668015822423936981961976027084121976693183622650297030104204795182264443026772053085493312698672015949605394294147347935457027005681534664769239296084956527416375752603735876795811665383698750753660479054243530544803830741846298718950898645575041343259295388184092253285715314244709210833931896977646506581896523118479313985540501770652528408429690116508793505319949443741719559858834869158109056284704178333166034870102249778949940265439455333963225197371967358646779993827132591649063232616224997401545886210905933987469364693134030382425517905647626251263231726074258374892093236776608667439655131319729339105698125440079162911298120254207787430519352596285261349350480196597393894309650541387410910315496103560588119003482820699807262777109098477001976200465185222532627759394219954397235716155673931766876001474463080337084603841414811184336375828473593855802639519297952589236831452641727861898267609805754190690948671671173739604484767249298990468750453135259927228263983383121401312961491575497985992981415298479511123080279153912432770382470145024272157462406068307430903186648925006500789166993724626505564367812063179536777756816132884780552329647576143113157526635508781475296870384307077187172887238495477551687220094412923234302163938417518655915722447872945938300486685012856352722907483891009697638822254670222374941673336452983637448812478087626173380892404045237120566763112413915829926194954917138886545404331294185527822286488213568964747990487061105846806912851632755085743174673399744680095365264028838214723999996739696230395925812204415211360175214052806144992542576992975831675239819719035565014462862239021313409904287157505572708740308141544175563913808053271473104120845321736188134921520707369000306170336228603880073567661459788633992415720880055785139580445362024285375617224146873626200812847463432928006442024262554654080572876160774531325111730960404614776407034495609810300657375938299647047868824357115936780074863113538610649146701028562792064515932279983441749163193613689658504716251285170686702429154944088657110878039060520916472936310138289288572089127185935332880059751693572374840025006508883742646925397409419931878457229172864684185306450867481588665256153524879633679197921999530715298747440827060993372818545420607071192220446483448089545743243080043108935096652364914628890636893895148995305529921615107725066679044928278361171350399578198714420904996807012687001029345153382490199404050543624391425627300993449360830305471408851927613849253417114735415619323293693160161607402537642580544681784360438233255465109207970792513674711333384889152256928239795464332195881480772124560023062132154852624454892368810269163439210851355630931507654995314570297599920621215397449871547402805834145678104327326959245099004401429053355354562772486869420315604118506059218141934368113893527165008716318896819580692532927176251481772327913572828751294439292737956843604266824102303490781584894587398706391519381228313434741641586309237184670474118330790936333787736262163973275743283898641304795513550364315437432023795542084848638710032806864945163770637414250774267867351664179321388533441593534389760795881234890069445577515504205490943322292817322049317571968531689995557926161503403502097856945497029216675006207633716031164472569849829067417841776195425873019984950974149031201778210174927798297305172860386613663971794985882473665306827617213128176931567506079526805106677755944785160239266991676223725609903698192220776282373127475249678449529413938571414202927448530899038201676003264666776633535063724852745832536290664935248628840919709480165253152330714695638775211637252204633768567739634944132214667144644179643860927955493132599659065496331701849844815530834798212607839362481073127185322535604273710200313675048210251410399717228266630489326035685602942126459554419388676142051575853595446865874829927713539378951496765128883745997157194678002135154464148569265688340915785633198904915181689561603157428278285696778956490144875435882304339112223371265393509641076145383461200332599819414654704965721772564176871569737696813165020021109860707403117728885762944492053295502854936424447645617414357077503983548708319378296958930664749880839670372447375135084704581469825132449914855707313039891521874696759587005559961741703440597624313651320581474520374683113499396897391154871862657290030892732604674305934699289901734469620423609229222072985178096020769336878062645988234623633258842606066173243853716024344175392734531667481583659458838156149990979242982312328815823993775667930467023803212333581881900162441403041361902368425663603423787558554113868443797724418478568752045690696639242892614242281268574918252568269830343487360611237730245788655750739196737239622762536892815860224796755962563720425041971712353782747940023539243944696630638720848938945690112598908552274435738543626637740422818636292388300973916151317943390753528691859773093999003818336495841425748310389172867889169161634520298527727510643404675291904106738463767685773648832878786964015594997738326668922284559945821215759474652948800779545313959279919089463151398886900372808554579472055790275974121196600169187848586978113633128374438599114768312813402046296125478466274310154930179359414098770130972386728163772967983059006061026852996784335006112642768727899537801771023532933702969103469773601795185092550121739567501650807829358485788653346005024279717472269996008220390737749967816403158513824724158095343211562684707977535589641544133994560479600212271107365122692447003474512329290121540458307383340527117964487809075809650983540795274061480026618828787199154350325161919550915903697809140700191080599536166610294101073066709223546074010659561121742427585160637500039940374510060941247568240870368932289328139918729238553863742985250753260093869819828542225620897939680066819640490961281057257850644314193526080802887860366438494250687695083442862829676376098970761613471369078127864652534434520286190240134807692671535744996521158457034929766471236079524955357743722428377347467291408080310887538972134628503245163333066659134155423215751357396100063033578629409997832668391473713274492212971020201922901918113097649678894304890137631348989828473812153892686139371322769682366834600513601907591784597860823869859601825084537842488626445803915180059854264037779756451852846148436769072223314222214970748003164778002423971559666991243454867485996652823693323585904893856793251051584637655927360164808369689421235762528953285629275157439126113184197878291134505437024398220896287973079629307373280545119509690412696378981539639415069655991609132434874280698810617878832983207712936366721722859909986853062175172302767251744253159129391387369419691600921418704248429497855371064450141233720816206929805830507937481308892758214526742016822747370135690634211984828020540573735080986898528029014999975741795806705133704605795565667283449451865298666050159912675018292040904352227179809628064884176851160310094455902549764579474030831841388318326342012944226650561863086024217287275476235914116755107199979454661461784623513201308856139348046218708156283358261810413889341266677186428812034925290254914731249489105136009333817695990501811745490891837967953478370080512540053017931529384699111834845123433004217825108592415316492466260683170223304605530309873951585262126893796225769540054021142870507116425674763793792437996525017751851623772885953910263281354852077296840347783529324177846606446649591734909663351799769453379886294310100603470937137732961844357227568479803348733357121550331628860391743169803242774593544615623567149895621856171431056297141993059015803843695469580079938448857609171080704206646625439054130700772919338057136861069373958020970368237069853961104171048883163287943840154736275189248304530034376181488435909287994064040803531854367444529510997170289809159645365262770253466934284998018690665327160306728758382367441209043841551417772403473004417504494054850108756043207174851056996670158988439493867525531156135898083771269226689650575198943740137108964719192987847529865484852660249053508806290137488945592917388455025957552215349858981248419751125518505245652147487174991496791902245541440274044434503955418236884676759511499964988133123507122638739315404402985580857639515426362224168636799067907303651258827278849118833360046500287014065499142905993433961691892198567294351484698954645601953056997912865843987483623800314184479613120979659562443073374863883171782809810407831325903797217546808788472104116740854550925527504783639024774449052176030477481639243045826104050818251627104778476775046599661539282329045528936810023003809667848308160543222443656869400178519510800222515659155237958043360372136270857786023517535526412684457724198351478837590610156572089507473066859759361308874458525336130670162395295862402705034232631457696551522841493185089826358856131060751876522464844597935779601199591676680454517533680539618809530774807136719328577681401184044364474091591545057766175007069330149829450796530033076739635843662114385613743964518758815707642902948586039423697229568938601613011281453083206257643713975536015345560355370469081070252148076366006174630364335825424427016059075797514977888565401596171372430980574979875037415405691588263835919239939959978540913348600404288398216979541175722926810087749872290421287623035531974182669995164857884393846204581463608928677204361821116098727693047144989774195413018735660018364827848058898613273996212155601247726566908333916393611456051692498876947702079897755453588324815476754705012378203436881936336074925686325474156617724097360251206822333014499722005835238281087306062035292491954592355229414863217759236677481663512427661063150410030468803567441863342849329651572688323399497432150063393438007024279746884146630243274670865848286750309210881225535420695905338847880657601130856897193697617393447449688354680490268849145215956778726851162573633464599672608354098191428391906264019011377216380583123676566283710813893889207372630275503263918336035868334973770894137425407775350032301163428623369714664762375788906799932264195255447799007561571970439064197798134515479699103761944200495564731878864443786473214530144695129644487841972685630339043731155224925569969291220075509113338564308290952454398544265277638221019359939661170687369574323098918882457370304915326795921488034252531229365625962434338903796592763982745637899164946443503239363288175547846755159662425220424487444610905897870656768418108881627158013636396170472730772490699791887152706340315451992116671278577932095453581488328500082471166570822037506431892689683450498456298676778609779315070713637956852958261078986423130363740217008209229436620137972415652616474649407468613503631505368875864047168803283726901969259134230216692169846646956398439623533024233972457444530881050083834000199410309865100865956466426913616796642886725203561267888843921179772226948458965350768567393367632567087644273779621240142556727500072920156730331385218045194080342678404532584600384851184893332145168012699605024057978910835606672060535218610653215896347828028599630240676374756563372956849201203743186096240836271985848412034471842158980630749366138816957350097096234332682639895045679480247568877434136858760794078116606006281223737970762707958738823699895477330013346635732200241222502455555451840183871357131928167680839112814692625828300730692150142358539116810241464050669573046097125317147855613437186716069634711119766028920045298308946662744892099463434896404492840142504587569928025654007696599713885270339902723536130666481000863661288375399049211864562535970237750011178460593027281164202115508874254080476341230509350886997465072854067865939001196967454407067582505564302671515183123095023498700398363653827635610438853332529781006074491698529448584590619422832489292082031347275112546596623595430460040765991088177486658463671894915534882726846667966216664770640463597703533741407170203905168869669787664858063065306380051922057036762910877808903680267753799500027354906173655984912099947130174512694499053039814135361860452145723142471677268402860425983829850885637687709949167136123359861968930215047620828424426874634425880974439800805524785903681182120403450946962258604458331017067570924704722872825554245841323062886355822989256055358962448985776301171269163396798873597492482715877881708168671127386585087382212698986599228590982702722994818241279058621278819193973040717315060289151198523797289263544669868909079849267982339350089372112337318611709219214598985031664163988865349736466299244503682202390001017454998305006044791292131644336958634541081327211129274868035478160367797572324212437898740777082495199552171318674152517849202154774552481465007230525034154170449116716950570954370787331422136691259932687854876931815509981738456284918366060436885274796234022059928784804370594455019898418546529051327789636726776096686817020733208876073951352504069532843918569916651097344136244259654843421968997007699827461021701053787114188199551342328541638999051841590421515464579113334589311568784563785522651479785309940923185066694979240265572707016096862222125676048267458776305599567869448253291326176924208595775601459340699274079913496405305210038642917898961907108157226093768884177686981744875158927252581546573996884362450223596628960758130939641749742663439511835362792640848931421516528879198675931617265622547521462606019280501422509802452095668499865876398346996632008478087262967935460012494169100884701111113164086281140643679240268614999364651383470544801421533397801273914312637671931571816543665499112722199160010216743154843890957168641369507093372813316803754566452577913098388136746388066850816525785752267043168916515888981978658278471125585433259184363509882302130000169936621905642124870099010829083942199727877841626490858383909908785392082040370388292533941421045378900266007872686579340226521163197914251912629023317176920327773852754545265968619830349150116355009763520031201582814200488644007343604915400361399020776737121964936038238190220512291932270103318138313441093550225222294643303301205221683218459283449593171729094732135653060229437158600121506534397386904948766277844939518423589318368032594062645545341697787871111475256870766009582067699117122796323709025023899432950510015147846925085184110923828026672048447358765445644161376158851532021334145733621663476207286540192710552427251520932739034693813450903804312274495361127413358216531249296355270633188664794871548270213438606313331240433239393147610251029425234920491666044841577332194400063212267957688065730744242097174288154487295750925510044859227686839262849231955533752058282865118002047481201645011335784238610992017853148692634064335784645457432987386761096280044403949229141344215902287029583519969023106705498078382992327866029698924403559723339533904635420169130379916754686646974595032579904674862926042160196534122408570980308778292274783377997896235544807480514810517046888903707689176566945773130716127388836986579304621360860836345582862563165169298172554330146133505511755719035127286151412266340394326772386487196047267729939437735039852902738284506415621366330817560700951666056747549881343167235501084248595182535255923931453697282037570021420478281163487880730407909616643296326866039470883586128298124716539301765899628100077178825971543649006955416312711540236180321506633588829138724067153960199010514598517866734612322745755059468583673970519019346428039563815780458778810472934417058440487908385359807901219012003951627558629022391068359936399144950234125894492250844711095627119220112292684653972455618945174706481466284204153410576184089129155636172499683773766303979310779051008740490450502699624744070912981798581791675158226596589324764891922042188411614783997829769152764844595443431252091422424846844837809566723390950637060533968435984221092129105141358169853400946441817185879967023740467995814298606176453546998296952826958486731669521472410370272659796979987250257737604981160102672452799481314343967841891195417779199866645264300675105131832339937114965289526463624375526384088357593366636813362668958025960918524852525267130151157662793285665554147354731146753263218033207478783052947930595874474211165244150476514462938732644434666824899211284454911973869898343440983393374861997703488655226966630474599625735490854278451633980509150611717968997848557774029318699831989551797016171346904605873185885624950327221692418320783929263855010218156530302643791156016776072593371517272912429580848424934513250530348565557627632529137513055256708546613682811230092054727264083657801856267692419999396729014980101191288344105339519377421210741928704654898468581171902006120451092082587002301858559713267832423322013306021551440161112195401425752246816015581531005174330337707955694407119887436952783987631939738851098132031344836150263896521360705803789044985525547092579693220044321115156369534583298173949736767535283171342598649370520846535272587372541486042682509874264475034514417483138536565597863265202349016351057603320638240135669238065621697834190051314112685392812845320918613731391910281818051240961904572034900602832768590188146704703310794214650631540833446736161144277313914506958345784281837303136372544310730361263484606539029358591622832468392871942757288259119758995259779437002184823932877470189098379604091958036455831425892407866023433130649154526973211706817718971666071107738174455902775732929715590905632638050726334631211042726124224558816637852586124603401357440491834392558134802415921668518095779410971107889836414699120810727857309436378873326657975221018645665087061262227927527152917588516054470743069833068946116558857737377590797043746749335316317235170652585041382964607336423668188963943800963554239591514733360598397999232760841384397592200083375995457156231720698233291712817142822986862437790974427728848657045386674830637301013121778414559699398940984986877389170133505076986914193356216160333003860192501356419192140068202352011199426733963402424290706765003688126295585798615323480577646816120652115575629865420197311257420075220558262352978347755465322425405372302551442025084179293157597601357921385500639238396032968461157313340020982182488745261141513650066794342738072439078784041007412097859346799960802200462442698434259055149347633025963582173682264865090530797206907166642013035997200382704535876484672306026130735731236266987234071631707637578032509808473920154245121724864898166891974846501269072010952220501564149102564327789948255283166561356742830159347582708719942097865448942085166559647734472399266215328715654276860323492896763018249687663087890841303392810039850842168165607087320700054877540603007430295695133309377109159009429646071274073248594053275935817537969670050123829549585700006839666900422990559357584394084873226004470366592798771216294652659081272496202880751526506396780423152063224162508892746102942796923232537795501637524638176349321217026730330809659402144437138037394750737112740796991264811957607275884569712410893233633085589626327163606868245990088909346821247571469174006827260574952605906691627424513488281240904173130339543035445501485228497670633132655499613299518775955977222493290152397977290180618515544231048626235047088067860006104059415339038475015393253200290988644980220386195681593410680790988546313412586238574790751449993596051176317901679618327032770529895364466252720915674584237657218716290578636078299890128272614463685755541773735044712925132392080637499041496377776827050586000600675458445405118583606526486101062790216635575157384178151648552530841655876337107602327564128161589110482017371448833644249107900442170960054584247605016930272669345968297194242467665317128848800810484382317890878705770864569102346404068074208581192645981351821252702662774341540558330637451249632544478078956873996100844634294300175109913197316700671410630812743308581984497544000026824082038099171860909297477188946463996879977821969956868059385902890547506339077090471252022657584971764380643808190144420091962313907381688889328874476089956476167860456363637353635969848794138570682037637961019261661658377261075006898846286947906125411890891996250827325215100393397364091680560832179511612550206745795758644764001072138346580224926799504158306589801170250400632252111317135049240681718539039620190345934993485954225012070938466927958708474180982688954883224332532969785404155019941327302355411190840065926326660513347116691184332186746538194727184446416770437017766555168557518228842277224735864790156788375448489585133361246087951989891796716199427777040798194811559032732376649119381416736604058507423291698237780660102173446552822868237675668182977762682870226843417422310626838237438681136841873816793523495756976402703570628131841601438974786062808821774284750176034635989525248278227273486675221106135254550989773221671122037403886971993728943928399887983988679424893289189426087708889957999046900033144538224270070460801053528537395041447471003285846416269740914760598004104932884849803507427199181484837412349380505058234290357862217366857720167139301877327233035809651887619163095281829675508947969788871126580204044907037910818186426603863741472375703827966191219840783435474445669355723179516946327220482940115806367509989436915224908649934682487218314944829316588394047595877188437674514230396179721022847032527953088343897712485508009306972122427425929881964949466624330721467883861812945806991480535216739853618392712508641333777207803831629196039396071347813706385356723489964179290892303914332681456397294406892306320337353024885666939390055254246673004890166553774924443529954847332804792332759943989822781407084965916425224594601019731684186215263689725821789004757855467847810176766794891327020928684861562381428476801477645506945586057898490036979607978433582391804725481859761718143903354545791720595591997718597959630098812041280904713923950389362690757518921622426763361461445441972370738307849295841310253729444601892186233841112440564503462872916928705518937918692669131446949074112784046606522896918176317475529656263266158951934208854970221028637859684968234678482176565749306497425952105576635906322899246571173800323380704486406296193535276004708366940421641286988344980215174575636715011648386294756270749751151661604833001698102322950880185426951357158252908481500859531797439199584495136519977133319671252021278766905700084534984325069362721077034659532296070009899816127163152991402207466569505677237099766354573229430154607931225195860994018049598582655118596841269058276056271680713415035632545939786433209265879445803929446961586133413840289182844754339342477465725153258084173707072327956333825235621263703146092331802477566493758191299650479588058199169606754757115231233996981319545096334792489493571156858644020139063967952454580358420003713997985242518930738004231078472466451802537593018308604104698081338973982867776349477884652158519590320099693583463081173499247956207828359781739438868316259568631294643416830817044434152690895698537017011893814800841422336575909929750995565370384280419533176682562119640727183041569539535528656642474807471425767382448186435340506965304077378350325844049126337561940797560439822388215123903817492142405442234196630604804589644457378853563236707702909893556337999429351849472372640101969069235480961953777336138516547012519669608160311501135262644359155726279995707092677613539657105308755053275424429116771243184083238317567185758874584224534070305256050266190493158676159825318879252849251869166151598700541902404265507952617100137459408360480638354151347312747659163659957215965155825138998259029698640610266162804857656102227652247355121900502896075877342375765555122428871110600983131222501759793835081657237570973049740684684570901720856936977466049541825702436414080586832109650243543602143032561785960572885952194222306352658089970693467286158195405299778696202684054174736805977526586894496413449250320999006586863082828903964994017095199333633862634977939486235361460467096556257915549586662791095524606990469213684069026655307271805319600192587783912400182770871874271210487358920764644921624127405034327348494672032122842300931357845011975901623955478441368490057013837120099617701849810973526212613613458559734424410763398198413940493896887700250051226275948589333557715244432209456291494948173521950545208176514187268370726062033269617270377281050026194557014695841712900761883186550945722170937192171371728867951651120750682186818908466166253919682395832887464740630543246437029052946299607656413959331041368245697686592233495122312692297072765154764752417127031102684756976266493423796716886258130260518039749199694245276016373072062141342224872391418449394435686767555309380232046703461128925417079960177241896263105194968755185085282117009641822651358935795600936750890408290880756112307126223839647452115181133531381956209734036522193774254705542742779192093078781850665435253669757149550475228517078851997079158640245720365751924780100379326573781756698793599912919344535149519254996093057567150836180288287566230695995614265317246287530091391123980663065312072745624606659695037874049447369143904903673221033736891487246785108043331034543976737130895987585247100886307773477572856319349987926713732304786431037496333995043767578885684479306891037835319138249151365353441062609990996531109765788937360240185854193997364689525144455155536268151826338100653704700119091522263664584313136124261911591566255393254517924032852995226271235408402458458772844457716420687825446244631370014522341404797628098338650092986401300907502502387096565366862846636256654208765078888574918141920981980198744511556634913233271121767562058605456651132748720880167829811547938415043858897245153358651713492124731815618622328944339783655423359567012261193234083095710051631761405951412253854840111693413249100427170484470219968277285140764365337965665920345318077680066292506669683645656442129943191554021559122798681397776052206158912917154889184649651175657839874001731507081168852886312782507222724401028394983207945229243292978654849704826567035253319623388031564933647691907035919567193332041711383504001090154813935929893765568400829049463444030887166439934684199635102415962472624628434151102194021545150693770596393913957229574673249477702482606103989964427344819650576097539030543932736961454271981111480093748904606571267793056540326942264851717412373117284238915275742283025228851961757329408319721557216535849237276300847706402737153829721416083592380426153431279603647960874546533126098633282307015940795090063081086106199682862428148889634421289955427208429194174591844645740718448880413210162881722058164547578011432749500984200229415331566899338845636156021053593138821368453653918126004889296611156607170590226585814979605091652864440923365632603313907338499846280242887619291754066888239949973642108822991698799713335519049980565958744093002164878418509781533893782804567918260010809346420696646786935228696782838822084112204270818203535937505386158579428130302515266195477786358520287888252515182913429992820659111244262076467406752931720399159443151738552824618074328046546829742012316777967311603675076262216129453609194242334655357611725689104307487270276696497873557717690931674136385779645670827596503183920131760413639625491303938824111531442691866538123723750455406960970630222285293700228619370571085925019978338207543123156602314120184890471734703478924875492614468417786359100412822437581267070843532903109276437824927363966005858343193870375021121451742352658409794160855178465081636920332544970240974703843173448210288073554139052835043012097303839969914592498912541789716680735334958602406789800603407387098291759817149313653013988110176571517746503544036174061439066317559966900756544261823641770300250474987583305482405723252815709792269846755395254370704132520229990947146755743497936603217922167418277768713210421102308014117078883000095778986023971169408242300087376561483545606307076716764422187473017268173896099563643558352382672258040922973652441760794939833700777180050060157609185549331478505343493126133778791959840731347040724342098576395304302630729846786031419441382419828214316829978672628069105494475960031386723432740741769347205627940451788241144582261205997059036454141209503553045125842741847088011876951595778158653774907108721741423801068675086948481515522872492487048339011370234453997054133474833515850088888189217371403864000972682973753856529849237871957159746409311850499965696735485166881528559574181627852585924103812070001017867636697148776933722025386893802357459752977912169628964898037632148102431425540043812321268730201727879539477906347858222374065244703274292668868617549210213257250531632840647683610596620849591426586240454017776488706821046717429338196816387533101579686030508359705038539071314727055750441780981246581944935476019744446410970742445980593589202163301545291311932137073079200000112913219734545038337163440359984349143118655979095773270851796417899990724285764257633242883906162084232165515037752980534128392839758991301486800368143872568085943390889691691334626424554902526595413101080924856105448639575239016128341756636235983039992095449522834933033614616556989240782091619798234112661370947334255729508321020350963510654180501077782644959824285913564649447349758305165542869517464783443163339740355973133052945655745352065744878485570643797847660881287499773795830606185252689501718108602660904140280733847220113958350508903718760335350367308861516005318932880726015510606121351550731667220812365311809255685817376098916639385417881976301703938748770288881451600145033931489632821559596762720150199998984788331670737021661516890230489277918944271689117937209397935216635191906056250312308859376924810743954777498490133269395054788835132065119114222812063395812587345343195454069918355687505904295075720060075086171071193038963880881066007624877027392104819051219775303358367354175301741213853316195151624476733053969366617352003523364073433419315538324393297222043194069522242968251905794787807632197168407955697003199291996444705160851290511340095849657658563066386566285940104779134837254241399584626029771820905616523708948164967173807542705021700382641694099364867897834120328048393674582059949206978192119854414928928140391769184267573565867783383433548602257435620898822611171131800424934228428316732635466411318662086794771074404506078455929235587234372463176785481282247963837269272533566212468661741242469344646570296296468595154376023059243294958750603566167235533986502463517198048591501940788490254950042121242615308633753863653904040359179933623911907020666899381785593202680816623732849748835536997530778535689729830318821506288215074659903258881643504351547950284502291528483124480234776366086904483925661961037828313301885700600944472433563602439871598973721579765315342515922016557624002778119606990548401435324500314215745436128154345901435139153922859219120018920458205254287508018548574079719754035758333741334973015004165408053631019668838675365395302170251222376415162619116494018429162282428430768555999065927932054168051282191083848248860358389979618836568598034377796466333476110040509639470514168768316327439588609490885166829085796997041812093940209798054151183710800264109088541035821742032360086389805439495471483603776729880132221901401756249733155073955677163440694377522197044033651917062416580743310680626705889285344668485547939117863012533712763702861818349437762391140783817881721124245417874244338147137224091869674854817525456798946446674853125630867287080454141611514960455412541557680251571951930887626203524378177954307446252183265303838453340089384563648429730180889354854685567246075868232398936461311062869736229535487165505539166051637862489513538680225669835665899814595506288994042018461186484973703817874816437368201570191313944690610836638543695198752770035684154100112619827691699004205403929693520435567386844040470371240137885543686635587582458702061798644190156781236469498650707463288268574359514221846455363355295246443240076558454060679759839421872052215424436362443834727928779356570686156402239277570112896079308230274153415331452674361688265188937358701195396533826217752457751078101972569293041328997607937871244374298790118379167207502843472389323795331964429723807586622173033182084204234850011370190980892504534777067783584989018229739213391710725695274582490488621101641959228845889909493899174069009727358044013203560299638567085690132554029147300544012231103870969310418155024673681602804064715977287471751681469479030121801756245430202996175322728566505492214743265637054800469138107288846280549382346937178865328682846378244647826728788697799528102151040270500786345428364527202874886219811043690548187663180332145510400472635543695840847952464088254855831702336600505341556706038360355625162406162246787951693605235021845228737689039522170535871727318966361404601939425899424456801149150298799484583083884885207892121866304477149408175765157008678482786199880619457575750017448246138681794776078865370008485674171244596461433408085089446453616340264833008875693875609838148881790238217254180490922180124095161468695724438538061354413461781941399165318777515688474324617229950362699063306412640851719437929172587902330038944012737459788952275235857426280841941594305518331353009053987542793599994182262150176835957696527259322031171909324067489999783450252675838831257077615834783369797047800476307438518006265798318597638324011427565353066679783055110413246325308923257972247292056527748353593523116090254759314010963467142758477852395953237843137635863167435149758980053476312956016290922145361045755946221167766875236176688124413847781675352500935057431237693503282494810048912631865938842406919711400521852045401753514488944600246528932339867594170210344248971440431586649715857103516318729239794799827259725746167937137941425158366430349901777808431030311975514210001004838633772779369179754549622915194959785288296081423425139573896993350033097350600471886763528461986573634059859736368419907817981482465212926185219047597085964802088178560401091997778760742430704311360040728421279121831095271028695569482486654169996496623092348016000466524207495588886551584097982236322560620940119090940549427806014559901153234282242536132029429708197638159532078172048113395281432321277876159425586946690804494942887941910657654405755148546793758439551954586058195409319000435200890786851830222298283553495281145864235000716522005599200196759508833275427858993774988521006183761949689538892165613524190739847154636290765382967517105635763062297070867807715443549912541630978666514574880719871511509883964691150391155202378593915041413013755966419046028533163719830025759009580516028546317587199958028347818509031219145438930856976358171035822433685850337483777905710949488604849970428762618446602849003768894739866236409427051647402874516307325180972431340383576745650755138832550193954377644797450927795310339651135234625011650067455219685986104851750456825373187779681369837186286497550266794909780120077489305941834527277487006077986685465540263085382386426631731590163782710398511176180400258630162199399050446583542392850622330972547496904190283806965659489237225885138054733265759753612349194759008973426225341787798871042902513747361006385746523140298991487157694991501934485927186190266252387294658152638140745532022647600589106368041585284767059598252495894900901317304583311422374543453757196734648449516591562916007478237167371183983267709172302809910951803137659720727708976693031238087797758788552631916061696449933947998996733423434514749438921388404781281167029518871215146186107263053913714466399203807201419667776811588163284247316420973457977843756593888406796235359473734721814752022503893998709924925156871043466205848252736074807521976629928224613583204831476584566446872428765834416527295760967568408811749862729266026235468061410018677139492755516712336871855280495668352330218407319603019609319423264697075741754556341150381566318413792526746621858131504512679082603521298576350461534776312343371432605465596334619039766951683192808251600614285970430629098671949506263009189022505192428768037492162104441789743522403388547754629801247188476646351069094199489649241747812965524233825338374098707078394649761474608053344705692658895089153307302144098520173862654261533713396002294010430428549432617610582303713555319847777860530995372799838225763498896714314909228429955099290212282863763585020213211564565796843315030112616940208100101947203660639143424315688817570966887716107097930705000938762458648359308430529214411735764234287947343321168527226063367332716515484197186305440434744777674617730369109625696728633793357470543976711695823920094131117560273068045245651837032569827634872068631776350288693584425195334203677569476996312342129644704273265676274870502177086867064707328777025136328866163491904618715590460167738458782700558405065768655831574341784628618322781690935471192903938422659890361643280048939538528870152066813044051946017903063045579701155523137746417712029708388072506310552413081543380659587389790978764018708988872857112677762193506024657994327375343047064278106933229585166092104434076660338062226336588651484140124370781166660737581105169424481758314335826206534890629137852223345681233006622062965544030992007755970458359033654321651922475418244625711301803478219160968643554595756558489310285016514334575491601587441422786920073031748360642239443630967321279745029872999416014615680360797060712103630974054352675621927381494484882507731064201656764475164013404430137505008660148472590445662584246050518599030704059515577341699979394971532405168894842861894099447241338413600774090434769657926481285673243493487020238967188248270786517102039577550668493859327577632460420930436179665304902673325320925084829155407759578580238851411991717709111582433811399503592528509456280577058386908342951395913852672168246104086215277628540192591139498148046234611998918695618097267835903549307515182495232054991267840748129625605332105206255293785701018044788994295421267091755881923663045450813102941572363375035969722937009115537020917404140254166180977409498247484250618209919580196571160603567678815884363927786847394390472798119019407583867948938045419587652539287470996800067011698290026536534506676668570140466567277415370203278685728209285001799432696195782533497951716295262671416974631005441200736963459684389102956775174609045903686604436859609201944467056596749992592116279213575919234438815546260414365713029736941176901307899503747426937783215923503068987732723558151944830490057130807534228205011055629081199719166150665294621044457076118949832564041173751488871214872939864432624010857452082053391912216758075414828863695759490318421980268602007893402420024101446519006213336194724603866038686350299773142586427266822116426734649471787843492215588462393009649977800240554663702126568636418515570492157988463458870541855792849672481369629295485655493279794857303414428767083775054399512514324409265087010766842841973731955876736229535146675498737362516185378749066849923417619941451792014841869089867139582844109398279240120294754757652587490104117392149814275002876615985759934382413782367838979197293004694013632557995723071089607748713877773682846634874150418488960296063114599594952210748533963472631494899926088139988629437838244188755787535631572220942232977037677422099584435054277040843829481127041192670771955929921640192267650589533762162815525876053153287505535073680430113857596008492022689839074202622075368686788296545913055482644676001795572241100320411252217576948758525591852227737695955307680450782790263713615225827790174315083559634009307209414259439863745841068117756438722038291327378368838659792875009496618104410952597606816404043140878017660897977710895393007672126424843568542769664223351734126248670512993534005594356362044989365172395527070594220573765685170342771121764850892347541010698527632951048971385529226619728388241695717316594328160510817799938506470014306712006268228140505971168618343574998986566668894832431831807320834548110803166545051309186027728263889487792766834051095384553415050849075050645415183290573883645013038507119412715578852618775490075270845573613202798552837098634087886119184244373286549245034900321687132211937938223761823139032873532755469480402163469378730272600323020285623677870574802989099890169384168878850082839222749486896419403435431774945546982527257681614696142663192918894646741370739745594278299474089338227631839808885646485174063859241889065632676467162860632552092944185137280762325178968267880966074101354222748819641824019373111357392240987724779486721721288404574732328546712253596018749865242044669310951493801201770358464573368157021767771547568032400307780024215968817920537269211235345859806062334965417444561644943519422590653506882443747272185531754635949543906099095171618920247064639407730793440234753010099880129819065455945795977881648166570536209667096040356693447679950639744965908513684327081822844018101877403834549715050332652723105228132734366279836596888118422345813535714199413191618727452407463735332044083097877219508914827606037310654051395331915051160747866872904027091295167336958830689372438816946688604305274831463225667867999364484730853330446821469240937935264282941655221047963238372012638766365474946769688272082106628034848902200471314654550013675512701443700512477277260418112961898451778634940407358441536947915439042459358973813147011780594051751200561674161608579429469387927699472971143277963366458131089143391805315285224387749625397037164143546855605616759230712219664529496317773977201018058026457260033641710338782987854599698075519893099297320002515181514722432537092988801852192252797070014269737311804743631958801966867164681877120433116035556777822158919620276924610033360602526037224507996058178025301154128516705853783034412126848362171358893827983968744972920898982154821586300522232049358266901258398058338229261193870824102417551017124745015217247965190789340663972155391089095155022180704960825097804418972875216295752153492161376485420710288699986016219715920744913184913703267117821918347923433734736997236412886306960143661212641163447385016937972751761163060926248987192230360499874296946173185552481376529694555525412034291445242922374272214788539606172248235148307412169038371274581397347776527989748734577616021611561079845537846105757147634847376074891249826232105342276368623785692352789393888546321581342973763459458923876325517829091160317296078449581021034038809137266069648648825494167880103256521095593253356765628240655892345884132384745465727432147206810739441481641667478279839380850527223153824766361077815948701230404688846167358863057138099530719175233166608222153410191152906690564155547221501656457467978041090877948255835499484380866841267190145268099632972751118597967679030498093428485307034556366818910341005238259701179741130749037553242278185131321223889549290193240459854327328263139648468853062932862397993077755946901639935371403573603631577044034255443362566807506560064167129022280264007890222430940006190021306769012087956781305707721362085889794380993736661022760179855746846221165702261921928415137949118549125799792222437739595105458135893932330004110726321103468865936449950425821950575404589673692941244428250618218505478081476066076553085434160817263044636770776491805841380105057405704330929979869900312543418115224826662397010472334707798540836802182018696701759074469067498274108811915472283807569766219547396849100393469829852588103480156688612842730682426658856177932370329807105355943106099006420639934901043722785773993608971042453772318960179524521424574766205610382077554702075146360163017760228672685443742680039954810386584858322730845442232004319293584722346012868113661887636468865708509240489097426399656446003793502028216033237688665648910231853988196937353762883902417918808586354145053779537311355702362186019305567974199317602674431521403672884802164953153824039161234357073028645317292130200295229372310658154391018616463282628773047245116671421269501742125365975186398015786648847069071270278874700148362314003745163614244898578249026041341796308848151452552790498821777010656045430883060644541192748613137652254213396217760383823595328633791852719135724990927180798886427841224188186557121887995153564812999614419340522360315605524778488641705117027661606619823690829753038879380993075048428632552562708190249144260874246790098787318310438761085904458968597509614061257836275587629703894862978040135319006464359866390038672946489939812072645574790653733502367273401324167863991609903732622577196289221534297214851277596426910248206197351304492698122222212794418886595374916968962493766190618887724071488003522829219223883915075721867881303645120246126707952654004189454207465996396356368895349145842256931557013088865921446202046240115034349299808356294674237855592499502186878598414392444367803617976283801225376731634224936761704268629042302079346145430326398284487379981068745513957812485778562655977892007809164117763794983459969561094051523224484605603350246965078787066375435457886654644454326411407020817024320852102325709231244352074557405290656013031629873285958836580636965447597636900656627453857581226228617327605669003238891772009373588685555115561625890147308242219514154518427950238600621251295381551869852801997034399486641297167380604487407908626958015166800078764168400766848190753924610441589447386479897127431246129270751978066415451911190716245463998692911920902975011171521247869897101255752367380967901365436933335623258248631302345925207430123230663819996440565386037605224768478183852701605573130854469441860779588655389464506519731236684554760699852101302262602497937670030351116965716300784628812165867711224467811609350368677690749238095426855899275256214149126837450200709013224943741086537167450069865897237964129011387983667348021123184823927383561579787371132375229778111182922126768440507321616188272349618642034867573732533083914138122044553782906706274903280043126328950719191076129642297655270590398106220711017659731877182055133527647037671789937839139805779183925914344793962309863257774212917781617659184480274098616448752147876948816573004085454391686950853312799524215824911155964214957546511860409514107146637552232834467026721129755694693498801892323090070156123885051650964448830116924197510349623887250830953026554557945902532141298754775755609579400858866327246290082905829710208232849370772975015310547222887128715780100104204063634900243512766167621482334196941101022499453443125510875624783850635660448365298692227896697339723295516410188054884690675880845699030897557137617578434460222760870582373253490593479462072983953964607903500538729814232085613381415843085020047015238383671693387450506907879788104340395695372645095339676751784087044832756702590771077752913344647050869913389980949597789587923565889062958450638537954786476628773387907429079952433193015001335173383632472234712714286737772745976543495413531682532670662260369022978411536205888570365280895443171909950994210106377729670273547989714750771219117069010489643518595249080379550569914350468558954808996127570231080017749322955695762068738886315477666576976117650134420213348428052816765311624096662395036079199002910936280070752358771925228305537355450565263295385737505828221838666341331025673772842366817944174642732917854862657945114248774966062897252975415339512216418844428608685202963738684896801396761061005146678425737530320974174628263841818856176702862005472745754981403090524911362003368086438406190287013175240565864993041161044033689902960048478941081961438902004196473548982077371217652634385523389046733752387530404286118319718541023716179575124593340178602305767088132248375948808554988333875376804770814203159629477612985560752320196814164712321423551320506210481673656672762044017788685860792165169304316587104258794307987361334682681177085273382915420638649002379435981263301822131050388412544327700167637822288693432274975894234671458506622699351064393069347783124386363504876673048018528890823372095588110427286896758157804875370052713419314058282745766321580041495946628206476744833833589923523145225143691656342940186571898888057425087284129283911222966413058314925024895459218702181972277847128496912866281100093730788257824806881994383747579576129187519707889532412259520660850767694477012868108206963488142284642957792472520163028166602427420091103349039749633491649245580258866764431454967595568520267064928318122899119144559128658284695700124537355044103816451829681472761201441445659739607431668984062213290654808673813055807907457051359851860521038373885523486663781764724690926369151152854922703789109163312784314380675577784989556849128869748830817315226625015205294562940960663386755934621601007357961121321558705706169169622322485473035627444104686253641301158907991284373339027733586978594029970379017694852033192405508260982176926065572457578003656540147035146436142930266854220189111402118702798456633814512353232198928648475667693322961235833601449977275727390339297980086722776127371585647519020912243221169587512830542355783839586130447228665854677287237208518307274986052889760430765413776811501935117435414143012533646081262638553906416434953639149746545825460617697906267941321960163522075050937045949662325963485684176710343637990188133364461251526076524330445278184257714151528587002017515788030304479996575450516759296344661395835746448024450660886823158514578508819202683678737442285899153752614430156525333897158930128144058432780948281450927927837528253711458370164553806186479110878918658360238441878349508699562270837585111899857462640898561153642816014497026517350130655615233109473311594069484659567516805775898167560518750013435661388344710228942160864755520796377015053482564288446123994930971424593656972790311107676093226811544662595773170339835301036467756010619162729103972111854899901234758661053495054253985229002444229237653945804159701386511400122651116601645199325499093215805488878480150317872375567376605209448813437601410731348436775271495931282998238856678031575108572188920401292355056523977103802116415464361421936034085136197629719567333649844920103813227241855227545322437442275458537878829908356422254035767820835428656168175923637121234207243265262177897955855144436014397955193175297718030650908128163815697260083053296170951191209912899042676227090705735265538424408116454661579744215818681542124163309055232626207012898839476907849133463510918183096824638217410380400916356031074745129603923161259615054978982088742172562269250762600161666371419970809750916537797511891012318257072620875932954043759197358174371597716262612999969986095107241549410468722014742104496259174327314339952675062527320244433845430642159411941276703809798064487848737089457466397839395884123374986198898205901813005342982557359168490297704893041192799179733559666562658479165386280213034309332208869135304834318765293981771024621266186980403108268062233727154619107405479335324054486431413143461000520345045867301738959669277193653652340272225690878847115144379502616781295669838347832492663155930958410387672911121298052291943048357151078528860635975264153459974239430287398173459625812325837552424204513676166672988481095404802952860601415953061839793888480454349108501388595020460325847406630254200616622365810697953918759696685447593352676243643174233669042324610171363036736125759956923271908010507458883363645377532935540924827851637164029274586228873436341754559653904488070646860837003998706400594155869521994361996266168619145591397135976993812584268745703559214235925168216859481027728821483643410593414409405299699401460080604928554918383851022735778769234743563679519650259931531243322999271372753325581595148839345730852153515118948133669346574385453181695373499628184716722964584386850931247985395872620628833925248209817602256189402831868096570204175435879217078634777503729736025476720615650965153649420648747775375583602605913858728375459746519302806195870193478032199459165148006442655672086101008109324931505411788679046592593884875937502699319804399239732040440430481591805407108861361794125149644102147355937221167169064539749624746810115263056840287193319033081342656573668846769089219838128528389251550722563228423730072485291316347946023642606874502295908554233529476295917155678928825440305433800207281503892099620519562845715622436476559112058174507122755552082808974120902940547113762183432361525929736760957034404374416438195900842311182765998646444960051285070640624623041565158988174599281954675988972459391311453298412437735211489777035900023202705534104721276648584026058830047033045030700810330486359748033900825158782722442334876101172869223740216291109165557293450572424943045925042984294114382308326533238174867599189379196448312997944982434120917185110710991956686032433853420761406491490221570219049060488120494697974398799549784577257711563732519668709147490971795094894622498631748386950627078383020447054352892176453690550820147448104364495495516484595011972628403760367294390071930843080181816278084132174532741586453772212267307531341447132379230326187917901944659996615058630700484488931238175378521085204364724501782488254750325979166862393437573038864011347768950207335870774605846597955069891086595414773881391112927306305196003610822343169328851623078345433868366400366312291348276520446109627386750185831130755077404637627226295146262736290013304705023906114915731468547057634634391366915388486075911208334465775693004598357478996436773421057712374276296044918310033794175169313383327424158211602233106618559968001364575886907921770344404514715833342733731980113556949435236902932292142691606443333850813869621832999444073360126074083628023757507428141051460674975852635721235576610279563209046319536730321129107916137128297615478456124633425036574026417048479825506033835445689464925556121185586062156159944760986174272288082891113471896433491317878360929334268910063960596597185051379340631006588486469443178099610794591414239455206938299338380257617102145544827614318521307067474691858403563131231960265538561841609424257044703948890202500205318951000970501250695343779089467287559746783549831478969033156294859622705349150849906094037045888667776734886790689911419278947149688336464460412044709759874803233742936825312730815446784158539071610798946520739981019176895080031367978501277887649553678890607980958080787655938270164504384597232703096549167564886112528769727060830547842029353877475161867455314575225292366611768976979373719635840659438598915609618046011165009866013207006302206310926578625507625597293038986173813521719653463054296063367375189908452155934374258478956156778585579992624828184796279337336540830899079284262467985118160748041329641061912494600718461304113619703051381029707423993099277750426316501683389154063846329294998807920508833101807942754338173046834113480238378972880820360215631758391383173909075595804546761227396076964683563554428770645408871198145167102735294208599608551147880220055054243610038605575993447270008491007199214414587177838827316965585139543445784009581489626790016693426378773245504018486127442511104777760977608949895640772993156111339528728233563727060819220879298150640955868019530227540290782725842216058589854369903395333561541486784739025706142684319973494760079886084648121546909102967941730223650248263809123770610671808665425432790752597856583282008674755980216919981284210883464920359311343724101879624578057170363476077281536544150377304834087814248769606987715974988239788779949334792300828802100968384635579342197129682477704585906305262975850700144914414112935644496488012943742694271906365773084308034530528550508056508893159375062611201633997140059622116419716409623426469431885355662065571660938200016403364057650300992998405412512658642057764859973971394742495913350985964511761966472324098094037246910742734505405298538726169209290551615281099157855220941147316284797930962559837996479704749657411576780356048520366626964324257457209264939779434569735611622998162487674776831651148378111526779542166409969111750306674172232168371221670756990878947246768610309590407744531025828761591045995931619548982083780477365241653038219078704696744151890904999560179087705589142905066989493966149016950725019021108628767089761367421510589317675403165213558226462273139985225255263878398021405007889945513220643317264894761192713389639896194700893991684097851233285499327181526879129422110164913393363258376215065772659360502084393653551837675996423549885541788380179991754265831384594931896178804283858169146453958630007083154925190707798850456602968839247515899907695803267938380386068541666922984006482282186791142080500102498522426439651493146139385331595729332435232503020999127859163158376481849121722800443068433587901148638216624076510185028352299504804947572372989992540096682909380401745753880232839229064180994679882733209325130038930424627475739935504626235702502459212948404062424117015706436060287504652528367246123424184568045482025739063463081223545302253300597693686686567844142379388023313882978082206534912488310324908181959098080320450272243761440253008969618294135299148041052751442408671862924647122160949110732296477074271810821304669805654673244625397253318478033333404301672161313890883531961332614480326756898706304783599965043390309652717336014265038927723723728692233411146475246810680853315211642371138044043202855655357646376378910127166153171176552867905135447288734565514798975717120098095549710445804746560034354812751022188234661450048170648953331175895265053748267853252710879186329003744405429698920060705302570530853582997243537887254172196643736050462075900942146395992267479252972218906492961941870414033102686121628254680134425288673347058793989029842636261458302981710676770198142353986086930161878724890442307440486972951596491412716693045229243407908300207979943362101217788976591381990795777308371168452528589742475669128083773120628019989034600775965338915525169976733325034461764629824000249722661284074558901712215591116377787828106573032276855507419198136613577436062919630311846253852414774577650601041018971446053237358812774469623497596987291716344121795400315868169180991302636108009803278689218169463605780689157334192773809997741518236540629163536298728865707501098644892138593434807294666878618717973118962671985255851184659477377662342782280205437424973223564447519574254376268843915323565634757262843346333212534985755280499616363710769133908232324521075775268775276754448284139478950881056010220953144167462410022981738397303044242441693013217387753824457778982743530254487484257967258320422443304213608331750752163750630767258590852388064835739314890604000092876732350254883368497014383940506009477976110167636128912224096414326572827416480962176922224672152490862605995774752305074102486822851887208550332465825143256152663932779225940470492705996799194654609285474225485908320887334519558418295406167234985183566533235437768687300066044847516315328513188869798632923937540543595114535256057621641321385647883505278713331899454554069525920237577569562216401523478658264173368517601045199355567155396420935437994309374079390460342975066731952368455452696078491731344857381097093690880574088714612787074169169597809727543084950937260625782084229200316824204681484309808592259606753275214596323508185661601564872600410668535236883917275890776993031984233645951420889774530414851982125730992673420727748098389665975025026582949997907700763317145131379907371918982619118025899461635185636570303745031387119145460097395791163487618420387568334763954976273159839835554439489018551292053304488016544309571592190753250151776727894234237313198931947470860087435767059869540860193755010902297962638158934792615102365268525433806314888242751979969307760840039290613225323728845516715416425914047791173045838568431630744491698761293134768099271247444055131335446614341293480804617656338268080073142049919916001028460391360506856984908528482934527459982902325052500515836025532399761220756908130942241341842752149245335348082265484309762690885920695911732434455379353091936272366647893464095296727378963957899185010379108814641502645402863373986204286045675346937994789250324758892891558902616591527267033494484130985269510239422745814314761265980644084702960571946504068598286380987623420846640877433255169232195605663485684564794832870974233586901299033730936610778630211069289948514409861103729332147409365357691444050844146170488034272275400704345640636236390673281491869002463281532781107599426900928619194402981032227316289097794238383190310766687311976759001961429300875427904488634746032341034972501336385749456039020050718014849080021389747102524817472898242579348342764830040967679220614229855615295007901255774919086759930403951935460766595654813696639869147795118846893098693045142493430315693201933459754230952828502247261994327027931686853170857967550446464547953614861876613912426150203426514641876541892083925330979268290654304112616769147081192290317412703969838137110675808082095622181414800430469159395843418648188343863241002578476209417472853943521646465974480983929354178868259983026445664917887733216309972098848780803111257673618842933630616476450825577428689854166844715034465167434938129569953547276667839344609951489407279929691154563001221661987403165434967178002048202476833840333539300263157392172822273055467343368775792023974318749343944942229109076891976606485874939767780835344792550866237779011314684517852100247154640433392450342578827149383085954071467197386822414954252248814083752686263855238961247092573812278513551136095427902129282694444671641073329935286099014441029175264486607095839527721073106221371433177462067548712333619636539703309108008384291153651158258107098541171143787891674143166581059272289124830746780971296876856272869330468719195425636277099901986848008659755522276939636597252518486211193522461648266252452405694329935743881637499650470216918563818999489829634707072060428358344317975448009745995579250525801814265206503643741322871668544659683809936119930688099894429447987307415119620875729154119795097305921470682567759880743224419657213917052716530242901962029498566713584139908163739674333460789800864077156833421275627154176104396462036674950996301127476396769352218246126580091111419307828760471664809371447836619353777304220711500022173604979944825935633641782481185802720273133568528820755524613944084465135553949005853343171067027886945996496292120777535321714192438009166699944606030961003348186986522211652895699829857652737753824780056683491256991539209939535101177985744050344220463317785947115239598340213613801041463550224416911150880740909488291364726117523735461817486996814895065579895816652194062468288788582294513494269967964685872323050144807231004411243578625941503603422727448017219624459809918732880035282973411781891504458870254356163838344012209703523517850635900561024984773991683222146537457706383199806181552686815464268769851480279487695940165455158572493831091793205800396483949249867496841227888371803749863041267209540093793937437433110181482665686929861161104842533376737458859392751102321321466602961359711781224976686892509482048837139795528503972298552977844287007424864199233133472772011578855250837133707925506689313851394568056190785829692984907253693003217540143378145994739574258756689451363747152267317092502886460947747869032732549934150891161863534820437949347529840324138366447526167932097868142335957695456763308083889572972105123353182524594115107520503728815025631361871730494129930903637712600305043608714588099462230113508630586478589475438823597312611209751055909688743494884471517844362700738191055011239696734744729183279565705988505717340112931210595462369529281349428418750562234594409034121977339941186646216905085453561241105339398668446865424060276727066338527428454064704687030267716548241733847455369410022356667930183100884167536289983677248458303013300114217024879326248721733811709831259542290103220490979886186943126873527163261464467049496409986449214008734613917935613431803104722537363910588242075553877890667143902836919501883530059890571539790028540740355353063560956679077169362592342152681498441826529775428476634838008691844132745191086081863948924252363547542025495111350593841127827756991480018930735728174291470709277364194638890827877459427232421024245269540329811722216451488358708186746363020453299790406640787739497951810207570275045857468531507566197512781731145873461996103369761485977494052071523814916630343609453707018085685765734579421815631113690655512413374378059330579292416217183354862514379242294697420167603365664322995700296051057265409436354038468936736878955325890796125419220161579663994676259708698558709107826456371342749813650814251874342410368719442777621578117024370837549988276537685101572546730823671461037605458489169350136302525770486550306296537094528667056950057694737370263507746183483782524094014461258783606575224576892937613126538017547842601634719712742167135822534288359803167142607501836704608600939869529733824440599944382031307925151351036513293776310260961435245446065372842982602045044257599588002417258335129254293552158473252754305754335158004247175098899602390742577200325303109840516767875809228065015826887249993401446824482642774029311335675260597448997351115094546000826472606735725482391816036809052127350425006631669764265875398906877555026005798105449016887531570615007109497618035365880802466751402303692234875812303852647531366995093331949892091022082354567213229446214559274058033962531406580931383463934452056224373201651170679561830088610141870187438541473436754152527132679811706705062630608163470499440296612142788368091765274502347115782514911518586947422823788363912662197681984291861762840163664487436615095157388934998484196262758702116105989023261556180308577148411956201906240002107201174803050539456620590124143877827423803587217162118122208639369094216493466531425412536154680677300183396520943801042583410816715228032417258200657277206821918889568106748373598331425747684621672141621645392576309774074241205106277122690374296745900668235604560766756525347742637377816834401488672344001658970794182768056878277299571526942310721576892550524022577419935370208229018436379563786594571769416982031391448207164924613132607787043912709795533753760971917561700068119576211159833908843997698396568311631027803181221807837358231100730378991053992081069103638837698487963737686689437524833926979607188871411375361203452014697967249425132950284483528713155959277101690268514402062022243493802588406540029182898555800100124795576232539922607033138277740582324867729256755047722600734361085350514753470793764308155962965868179461095794443676667609589726274842755830543463858535266642760253385802683455777888037634765927494463076043307660693772782551243957663777688448346149165476458477395437806428947844476615894025253707773869498998705233917045801218876356145669725199758349926751541680865474841620357539892834772691979641439745588653489069906269469849849332663093318670824459418368534327671618555631759235212677522056187718053890269686750072488331395015788791937424521558411268796342252480585688088092955999083588339331233930245922386355296281680575401286914423978451357095448824010630608358505465946455845821890864228425361528045119198698239933434405003442538838725023315316796812028762789798493799996725439778354436169304368947826063063704415319909058032791669928381104703970244215087264598187383348414185419712861221275973738079607344227370897203340727058865652774709193567127449647071541176816688713993588491808296046020154574137807571930096954760122308820982721347513269009040077950736022085091992555823328827461446907934706770068476442398808373415060917672002991769814046115471155952020030866753026562087735465743379215044974047707971906487230083801633419908831039028649718031265346747056633134759484936356034774070461908664329905805183141085131545506634010928406043177067357045139427508094451023677909336997835381933644215283981147390344786492055706053937808655641937886357769757331434175942647295989445434644151815498024152298453671131870951391075924808248491834988655930170468414292266085693604297735890148775066151122056951984897866239041599664667456771625474822168511407929632518566275030222180222654347984385846377483379696927145703724050312964230195303433987719693321875708163924358911186534218655266107353289078922510817176194120014739561932685049808512542636832544377711402439504467756948995275725589931677104992144457508750366262723595654184424059431222865132807567874390821084174913259886251402853921980315995384430560240265085382816940092437323620482467483368439288451220238163538915861351933704391583553487531455271669486983216267533905698197442941540861860695893507133933068743670789962688324742869748551733257874239457722450238384206118500800998048009987463614326887792065669604368967658377194644884279432161645397959038581300659045206220361718321537792112292465355347550758335972168405219167945524578054664559126449387202246904678289318787148347128317988845126047360633158864584382705999174737617334399286130723226280207946660096780381099080037290723271743655499158254976196237289688610601228065068169454207626551625381874386736612742346472589154715222771929704438145419421633641867435949994850581909915644183724072903028403877719658222184567808216006381103851951221635600791288966313038143392180075387989198316585054930733784834299266427245375282230736239674525366575016109356623564420800891509695182572056723896879937813851053763511046033486244904717301743386745926604427828567421906289702185611706921041365100653030165486852795740908866520417363270530111105669118643732989422208037461957607504385951981747188664623900117922057871724727165599209285103215751006049508078035951990738531660929922841081779261955824217083418050335040548997834362473541528522203714236643040812602544162826425996257373275738024691767031735073903817345393917277761416069164122782205542550522578730550051230491801509583150929978914718294101273090991476788122352861067541822615876488972390758571652515546957766020779835197773243413024924879439232979013457753174614583124578882621280456637397850487370686033243107645522255563944124241074057768493023566094731305326590864954122051562531014089737728086637202910901304205240111578649449371309883310503563656058828205834740800298114837017306368665466796485585057899153677118440085036371129784739028076176889603698462790795317073276721554336995769755562779430448248855491563533441530957300722798560385845660444377074189761773883308698112157378603863341311286413969827524299704980826475750276837586084953198292850649986680056941988451978928992942480841578929607630826906781075748879256996749457444724900932096703322634710582671570896373130461532288041775759656718073359978583501132182834399507953701786993795906020798987682939367651801134409746026261357749164701221600586381520178367997114573341536990369965639150973064432623476300034532411977195293928774475673816239769574266212839307075471846918197861977035781999405229689646329059319962209873807633294533544968526265648893517161668461966305201820694208691371141497058065561495716101937425394155864013668220500531951239287253864101103591674563710366245336590598394858790799601716714794425338238535444487334117387460383732405989126254959269537686188309553967693874551931303196363904810942142351899296192910675963923555528172281486379797723703580995192777085349148387350304618796215943098044394186913866833713603138271673601565172015852128967581120979631203694425110145640580616608077931474166254958538443163682388212568458546108247397627184348133169600351884069053105721795942972788856211503427452279044484018483266016376972023914731609154716531861167477818326813972603683784230786243413609521148586551430279914567543131385718756457906787273060775964469381041550873157931704278498330004881276365034419074549434467533489340202937748938875418954451653058008163184256559894648901383948775072680256641953299979036238327575330432126988856645784842408545739480145620221631613845072420391462554960116208779182010489016968897138649670852824139255238954645061684579172333259932895606869370219572960340845120575539074305445762772738716581060537552575640731376256383313830720877273910239830215102047265249210763186502902649195050945191604046890321310816037742731016754175107911962975070532199745662916451773630474474055220496312819902272912714195142204400697626361756811962340497566282565410198119866520246334834757273167175320514885421495434559462675878710988280683946186915967172354944208643448666051747823555332122424130747495929974829779715407033971912185893254488640688129702059584167286805123249004152094118605720299600110978497470939767636635741211247265747856655908325126930514538187507772646043867165105461034109296563992199654683571491171801904245134306561119296586702373669024845034851768613626657405162913075952418711033550239476724965881947272616873739920788317477789962452532747485375991039243153672603857284775278780793139731807283680494708123436816593234938684308950819709557635367804615239639457328917831069544882516639258448083245210582965454115253873838001829305924042670549202427096661598426410484576992080027541181218027534900840290847191411646915559833562540243070102538509010094237811528790489370886741878593211443482070437243176425645092282884480043042357818845071867862982541600558991817335444080708423262226582397910546489630602790684531543359326860379109243834471763277065081112160209086549467362076021368774893397543887185136107142249879708353755358359280087936805012775929077597939778859041709163664265307184173664440562358237750319201660132881461960690062573059536053403903936891358149379107651981961349764374858572788022533571677417907925723382197295065451165372614193162914812629019520599681375683040934385823481432258468836671813117759281721924366523217250485466470678992863709139875919183966311843106649335070148956614302496891898444917812366656976743071371603303212076666486217776972026366824756856576812640371841536289098160854785777956492853468104659446038384985292624954382741804348329237159287499431125061870962259382184070901182418215624503364917342485384515970781284103164621201328872400531445279442231689462345524664332886347745862718022180542608660698631602933777444653361377147837598124335118778013032627045318266461494956256685787216722013898018026784377459216600745072411626203676214158057327380294094891591772049180351064280375036469232040956138939079766599462560997716207627339588112449284553654079198424995069114877404992904872637219100929889471166148869401187233259485888340342243629833961054807539369827724862902179942430052066131100460987371101602901762490972258983212003211616108399080118760768893423660976314617137533349842830112643647784173583748584441091197894202461931765738945759097804394995622715683982461965107026844090847430380594934938720142256396953524832569639256236269974633665359681107806785640382129988861916491020446877195037696865657086386766433867934236994682726086559253636074698064698524025230533759588172206218559118892920567705649231815377845280793384977318063259142614943907538830260295286139101553763497315454733791086955076346278793173527129497200073772887242146410674422097472726423817633046811042049931645193135572437307327480008804797967170751145995138909508941864956216382396698274675486336603309922084186058045996342712460442112421350495053549190224624050093230435836987853440901959321152272282056975049462789427337652617243203906122974440698502817717023326991687976071687755336312324218225049133733598246117195684120950531111191665699757184268749947959152397079260180994110267242993201783933675174551676930467955240713861214393430803316212765201360832485644100163055518813043629458383636319161713807726829098030284196308007109733071137381857581626467244781017290131771470320633795595181967781644899507983078822234431247862726785880024350057982708084618711427002790593430921045073197756076428067846620586001086674725876787454537135073659199216321249943572336698254728099760431491513030127628978288600722003432813149166379581823200848924925423898815298542232601130358941087688207604558012655101191825575354820119054962669058796900710845060905511686289563698223157722979877689506549088562931958935722445451346646046799545176399476389299926853628132299820063026799021362098168803270955307436560371954588179713617808873243069624723503776734647789289772632611421613922868956975730771318074122543285218568497379870063964965894352477332955467232004059288058861827088894255377519690067003125363276743339428176214741245335391216354576900852842190802657419018623281100817224771515482309388081739285389151104711972714839068871562419510910357103915543803568927421264240359798390822365445504860936812252033825953151680381987526113088284238321991412133492947312182168514298857292743641618981487451970996410125064645348612606734617391973008363499844837598406319876630204284028413552610327710884462855221881368050315280828435970022886059332162772127844512269736844442550993389030029245701257717362177688615100743420970517554254803822502970298851666740022202844202364474244791616584655632876412616976341212465922166718586419875729704936916489175362990542059078218948554943914190510172788875640287582151755245501571481496425202975516904355639157941270917352996041574636858362643900813789525949076170152670238089346816526056463801642888619097627983467844299846963526330897268828123149503060448728933574446930543311767783734869087216110826031790149915178410142536806054089176404188725841287787118683945540607980828631054392914504931883685952699627233722409963986750509983465762431042645876180139308722081043231588649803801343406145412542262586106773520052712034066487822071109690246659334461019275099298872133499749241979264736413286887542672527964529944249681286710464040148811455004202696875843093906699471152190342358095912608030063689387980433903304801489233831586418212547048793127241357978155814385960135271887146460312675738093999149664526095806927056189058912032629378037919696175787198113806614440486830141115475333114552314468959504858305082913415798685848611123939263008279171026094225104081985401926264691937367443152906259521800236884288848932386175009370720273259734337072898485507210007923414874292051143314297771472806509167280363599771255836023304948764061103672968565708934186127339571891468182167738980494007382733503169288838253364547917801102579501570347894105806153930519349668585557750818804594704852610281384817393613156136101857823835840563416598772080566576537456191931032536043702547617528615702093866097583303109937626017744682396565668149562791266563423105240889533183325117373813182536606779301515448076702043423039701357173564484615000755142492808678521684809396815822431166034340510393638893844255763561909890679320580974898628140778912709299264963155318531455341360074242433372524031247261604791012217757277747850861653149766823005801424544405785500694883945421273260167177137961591499697091099336232672076005932214116522492636339236708663283682288671471067817978366038123798630078765260484859896564888397825289280463361975393061318640397727949700970887760781215840410707028949350035810614228361523543532599476585512272901308859867340491671009972112316857475391205118796370624025656966692139106686850552241924837763611395752283966042557819654248826345752424691800310651215425692925013040028012915343821825371135208797580824747376855013857866050406958404408386650411426939139796526199216976794218091438166585237920613253300064110155222272491559937834746325839548390538846412704436308736606009875800804296307257621059864820903642583637155510729361781830333562335241857878280482788498513428123967142843754684596281090002138333011813802273747536510429550498998006752674471837334099393527183970470406762627546011466457876153979516533672358295773934232426329261112449345159752724583492213056467959742367898173162673889005260549862248223413888719447477738249783061513883120787952777947233812227913087983469794868165403916830758157144228681906604222376890285809773327850181296515317856790775218682716046210780456416336361308908156409103768918267214228555219881283513270527155856243286105247666403191836605948203191156620819238767750478046839924615114216521826775450356087283066093176440935084620739381101913406764848273683263065992142819899486988508973120481822830352226607137911335060956301350408981124806657707801529395681441210879242604513084576297425491363046030810378187046509162879961249870151896240688401109587991603339205211074727034384122557112284622679962611112965012096328908971646095906566164304555398992802718950147519689932069336924105101268840477477805224126421166037263082626408665211347319360443599175564904247800493405611468508992363722375944611272060293413745431980417057117635742719783363055804412342026510891604030986646398512505352040170975365245205510454396299364932536027449114063903537979802552948466053172122140695255846092751709429744766258938953710406483130123732204760244991559771182469481309035595473761874792509943250674579284285569640983616008254742926558213543776741611645205223658823450306147327619641113200595030432463158207205886756342137474261941527722306268034459183254336809099142086808308012342442202073467236134109299728000749166131212072916748789130288688767518036990190140637226762351576569359997179864531963772346940742702784239881316790579592496436167906241888452054205819835089622395571266783653573070079568265434367169622561670361962399340446983016797489312788143061976811572015817607124452548334111579327944787389818786974545107826087424622392296818051811141550356589917361628732512627942756470083412347220677031412303271577534311663941457631568933356595912673413347903663428461307341555026589178170730436668031732833779557665076947062158042289464149226131098132025591574538089464633956541966857979885954515909926395200175098862197215983661540328685337894637734483545201524577212293455517474777606740276102389751669201381408743185603949907894811537115605841312377508528704768478615618214607517225620124684020902265930656994103535751805641817240328003849309289120182823565720227357065184163722165726348821684193714319677044997665390552238297674146523080317565337482846710002366867390424738809170485988682378479730912134709609024318587152959531389569775753526947044386795143163021014713354607685425598601042592462138622109151407551072749633796238938108119400321802190709608949405885399748757530265948575958083634150488081073497159318511642466306438778409649844486038543025480582360851092954971655384551783794783706582410241632492345399221604426586077174339697651516487923011979497099860015645524224440089066294894636624640702980042236014978688513633088552933609741293161337150265933495125284140468964870931306960268435006637900898763092685795062896749152428386130087713965312790017240844448719624874779745413686604486844152569553136244062042466915823270864779774772484061789386937546783513034954613121567910877672844708055062454937173348552380447944466880230321886574745293605269272515004913472947188806440208816515046418035645871608770828403189641607037741450600717532552403038544127827421460846846593986652876851332427265382592078552333414271561634007835629324507134333820527142703526950856851107464878902127603982215984124471884390573172687297026440733748065880759352959981113136262643838802540608611347309838217791749750953211934365388518751755009251873786928477050252079080008209868435248744054212533411453691865708433761313159461829305173832640756619896388112533896252388355769200592701002708658140932529975342364186720227671343227027554736638250222334436944301493664131377539126643841867130867982602236302582795419329229029811981467955851331980919959010653529366941212251855635230887439070468881895873331491315794580212447242499603630665301207815734492108885723550484999687119706106351737636884765579322473752898757307314712582388266957507682560551416073477093883243155849320752643272972025372498046017159163186820540416764195782504017343868587382301910436692809631670492656006815262541015943599436378679870038402284132563412593095166874331816427198944844881214696830769965247049942171372456234359471760379667747757542916357119135087336225188789096552671521905894664423407478504696142381367587622860048670629650343451958849701612973034449513146875435608785504701727437440285431123486052920353723266791311109904025933983361170180148324690731005757239066438521894526717583730537781129798656044612555003100645021658632247986084533043531147362598728668485295608346159793840125307025247655260215437179407572131963895291706194426645359174479430994797630907401163976330279542112132494832344418912877450963043698865752983618582322508619643559140554718960590105335758181445286867089084439470254579512050861380275781843305721064326813828166318341008974547132536103125562868761227208394096203131693179526857150377412922609155468812840391270715017728312986211565868815362400013271949998595829373315272817254684491807229280393135142708097986766531719636487783646969799265813272015767370878136424583595587204971406965725432948462633970116774275373392143752165426637889121647365867169578450157251210240908757739167968159335979214072241080402923692397410881622903173652158894900554069583317187522213189655237217212285033615702922323990083579423579191968097887267322987449626260186170015049632352244907224638977806616029829700893355402329657472075759478326262556883189129460948134917279335135993048258764871930014068830911295041649831292968539381344771717981128524400863607791923282040079763443920967055182054414127822081125210906135365182610755971706778734526305787873768477177161302051972923094976703699964035376122003258755629558560662495699976499640617102495633865642088255918355361565690818122824705629691367966471147395355579225929136610252546634154588144822363842270604218729762378077217718445950484155957790067555989993357979209093015779266869323772477935099656445887436498762896355546070619435569236878557185791693350543448128241498085796511874214026830110373683547841658196236279475725511512846204277833423637262928458790312513782009500234386676321129087907771426719075440547806659159700291884694473878543591532185118000005080522047090642433841349393018302184190132274918045429761209962435950370642534790983661199852812190847418220759303743552112405835072509890788053721571242939678294154907421075871590627345763744676605075985829822976979366114075443932977791371984620359442834961629811631022771923853309858077078576448203737209784644596541823749344568401212877615034871027444577028580626337255706810932036199159774118081170449260420578462719925630892042592638844587269068023363290275605726017578132185818650480364176231047041295081711810047739999477179630403003106079539557546272660453495937819546508045168803612041953157391933429691543060467539168476064476580372921498105360407426235703197994890173081555798871365174419421271148014160983158809417837481895094632112498598489470850727246113193571952171069477670356528846415684178128941374474454967929408388995253424620302317809862747112246356333399449195318946616350173255712898014383854817161021661811119852761627313890544842789833716134459032500342895840209631339819188353899708059272016157471820326331249198601245489062579296575174134713908600675099084676732667483159282907278776087084152375939180523749933027610790253688159634625415002685908777010897804316467203735714064959721304522944095961685638241173283278874138357410135839292529319007089968762197809574277187818353467850363508892702012913951119204392710577932926184595481315489892457564382389589533227158883925734844812466380375913584552635300736875036797381136558336974069939674433482192132219605001797817427068840055790041575281893703259720776065294927822115416563753556098961144073076626721393086028118239045166486513709513090167301920323766988313391005663475711494796378604124894718311751330365568660549291762940303943553194412521790994949530941320095111597527862984736648611674982350090882548806006321820714818409488768870663810468230602589627401213532015116263663356978752005456954282335279554030798529457523373234335831867655011130922299630961196319864287295404570966910414532245049546000787771152572433068806532308329605435238567228321888876862419619451690395164646296874940246908824233380177965454230811461907262336190089272167332933375079117838016851345387242660251997328359597040197645065057821985161019505606299028792413551119463717306469362932900681913117017570193865203304936498186414798453958290401170905125274344922987875801895709026622438627301453057908739860359363231703762076835678277449778250662558696937013248945555547677720790069923409863044205364518619184631791822799445009666558309471043442314273151758820160236183839016107421475757079768364249418634537073540772524734091580421711631252673269797628441484679933148824266908065896291734675779757772954979347450141914599333890071086340156249119852583367052687573553135919202820255809121399655685429864339270816373275328635717216131388379226845495714274990512666558410444452553105097170813303134534472734668721688839515475527465936286131950795538251518583076438486617514945981159828093960368917120883778780199701025286353061174935976429971786686818135253960714506847232989563470593027092096379827697518434201357853757479378189388222435094952692284922372464364911879590264304011945566908025763649060737563818253030003602616060553083519342970426858422439670245464820835153666372910108847438922294516603317203829858168345274609735118504300620543426878846399042835406628556988728844942787946909804674983665523147585528150626933806532216807348334401983168129339365000150863390810973255933808217135430235832149543591503609831299175050391185165052926538981781999850254704821659151054610899504178045018297572710816850750279760763882119353121008606588489480235953755809253666157784460607557692486775782181836382076826899813108406470101971159321585124295571077382800850723494843723472305572957539835595082141868657224405047352208819315929001749582521112343068186782158367698106009381151787931480984675881264519707339522483557723129740368024634867851074127444527677757532247628542330447798165286650207377010228540493776106073079821461187205914352405767051967077135225414716426111749443786888646195458211232699848781696490155844313614703972835945062246100462259457954377215822467305018648992225346205133379321290310086254673548912940624181467100202942366977944413781038283621766142181331543423376688159624069367482945941498250303753339731222625265902765186085011718348021911922181641016457773646038189954907925897367882294473133159754691550517098420468535708522184174401067842372634128134528116874605998377351402045770723419689142957101606477228213023252079344279734482500684853757890814544359756853418858389380259349893062790235637054823839190861005198694113493493889204295747402462021239638997439082593676371829310976006187044332754550761816775648752169025099616160755285902711115588694262717388248433299767533349175460415513399455174722342973624098734010748543069119621519887357845745470440324838778936316767335868547804047874380258542863390995837776356695543487961433277206780633389528003476067085043606914793912836431282751717903025342791092629249020922447143363126735574421606129216382236857560241020529417690208629950692090635247154232240674608065684462640477192170180058860571443019182408953032421447527407608852893512923874967230179553810612118007088622773968819054994549647141456637757412429648075026518434680855968319780180885719539241584162879031897586257970780818428342477240028308801685061135017007186581249072886856444287365791840026501120944344166109338073524448304789676148559031270065094796830925305794668434809946406360205296136759900215278070799726682092146644515929008262276877354072778850285153888037168702884749768654132452024867984884195284071556248078946172743579697181745620784926078055387253037782212443208424891826239366685538801942271723225702307205423170654531631967987771778801992640584960650062587320718680756107228002843586649669569986310683456649556379744561166950326237011937149496743232518599426867711848544624417835567258451892979831620337578838807222707711733923807423084822930723072141786111594674446221662546900575113026979646789403232685113289220343846069301525762123753649951566452353253580618501684725896704987632441476819676229817125945399321255489265491613020472834900580363405344875467643782932365370574626458162445795372053278977338929688217103790582544773893317514402932676340598154395977054730910736051504444652620177722616883937025289641706552466506412484587180250048791023588165046900914340964909604365915295520519640877424167657194469824051059430105204873143753156002940104156143892770765504383911602699731805650536462872681982805167133334394551431585346477052111729282971177725882287915017859676310377464593339937823627983530856328467931138805056914944613962245679298736376208399584602146695696942943420811205861994013315893432989209247616504328640936104083420841646430319404931530371458877453931171301294068881046238234970960602103944872694571342983557447023323685977367401531807037087197427146176513275885396805992482287124268883224496349042386910130107837603570328336629794114970794912227866074768741295206453256780675182623314318239486574002152329492071634277511399098685882361995710769287898508833510951123970801584429830958948409780270286920786669242029005294685185097191591529454201812307592806830164359451797552359784305886679941645912214348303466798659740684340198830078200206359089987953294970207335654606353744791834881741747636910129277065021274798905877947661159497596367147546231341178020536083603329900269520152978470326299586072166788893891386207035146888923125130910248970415657538602193263588178309043152404474724074994724892666617700740940586609598220454398632983314743649957805937708321522781869895871907589336784768953811507831594817502043509298925923378146632663538921398208893832151769820698584653114046829526026303499661673704893162652578007006832351735458110659445680084319254538952029639851226578505057207201966481076325327316395863213988712970035148283962134294123452632032933795912980196701471993886048979879985499696628774198441828806086358637722458272239136108863203337730461805811428976301476816955383748835630406015965842068249056850859570852358350948718041933204073023690150648021054206168291118377132520359941016679000255507792632583518773860576635017761306571443728283610092051085548032757893212808708415944550319679352402908932122421074241890833143055499051028350050593052082844267592333201232931748907542651901330626085161257722492694857245894917631435553967217396505040919942140980626903759222369121939242556805497078479986238870355694413833394636128303361531376086875514503600954840725717200498030258610402770319359150494467555663053084289429357854281888737512560953009399164883678597439775847920089669455870652306466211515828598215803121692968501229500326191980956477106812182543836426383277513112980450123635479611735787287480404935060775420774622433637548175174490799600843388746339113968083263655330349858244904223320132197743639030144968012410896361203391635832063495241042425177840881414582196549944719018897362783295489664019797429686831830741779358442886920704742792668017125931234650526964988236231724007207200933020399280859073414654448163427792484165674749704116487470393637274313245882020795049811887337843853466388694557308304833969427190988764889843145568584081859611642575466709267915472246031245078682240555259730010905593587608862917919137069309177674260360998691044885921444010162358995314430771183158946154725257047495788869628609758544753493919017277267565208342223457138607563847008032713919889225109627180520934800168809602915156719572965828310459861492233246070096922530964200304217796727092709754183295111216817807927963165075548592123272700722599689528338665496678666075978208406994939652424773003157131826352027867110596895151869108380650625834969484838886570538743406105503805570135206216989518357658318206623018707174202435249166252399542204051431472041055544461694501443147799056241026970621212508596078699370305468434570122877893569587659108981278634848672901830569346279434495856347776246493853898343562459041219905077480720195096171385318387808652037651874254589056090287954876724994413421054521904532300050834999840457170085942750762901949105486802095760906287536836129748722176939715145276338056994845491914835925580356372309354805560934858892921391677165901410669848196984423848966990734865345097305564206108419278119046756730059995040182105475568969041695556850571123930507468364704650164496321988128031831758871360722447796520070406135516988085890700804303284342063787999406201038673479307015562050219268061527646066910088456926664986528668924418493118153355982175253990450049500392408988654442268897549500267263894577238714591521672753975307312320731125028983907628451263549565348666069422243384519441863069684366162947602795335430243345141359720912452910791703893208726760900804769457998071286439225305795430949406491378915416957574609859062242321443973634847620769654946024368460568161302481206552795199374648488007250988294173193377875423999075545162470046530066524742644498977157652112324794216013432375038353155169375357906277265325425271917597610523898856534553239188816458232497787860308605480861110486982345874331250567502273311056473601058382202983442866257990393084334173519366503230367345899259548267544243442994344303140377088873515617962120924571005668809967024036807005866972630270844199917383225624893388858506390973808292542462179818582217690301448659071651423227399678341738535202720899411961967669493837182689506374363948557719657734386646410902866497546917556171165974116773395578481657004696957575313465850729814101108038573054147938657480254050409506621530149129623342452430713937139237820448707418608572634758053800104413856318228787982406670500617022886294823224916545541733005429438266883563150933668043819360830104300434718796829530934000254702496612098675421042009993198561294144581196617009039595447495487462003675740271557522441061866423719880441460710886918023486982203935044280878242941499150809392495636447980612412258090880089170917476569889427341133109252543219617658347813513257586578829594097479941114340452861978119807460219483811467890663146090717735289584516870679223436859831274638466784655293381306468914074266311947424036576261213977096397792961082337825353742513681793738139682228869892203920382397649680545208782084879423383580153510774096338755370914955231505753151649517948399965615079158991155693020716542353988603625130701179640540775784628804676742925374153214282130174262346963660007363891443343229572243766672983482999815125556886388628163037439972486595494095673591126576655837913091973130658695620421558212154636704208689894430083150386691816689588880150937293680393557519232843790874755166248388275466882739427823559849709307827782966570831454580001884625769506779813853950936274045940791356937752856390479925605570922710838919274486636437611929176479514658854614275891457783681951217979760253396411736755512093616486340586770905475811818763324053459620734988741160659465945952213739042187954171227154919893069527586010293654240471627913050508955934430049736206703085717618278938711132796635134390712946066839303958173158421282966381055137353551309443081137242720580414738369062726703891763826663477707916225668857166488080012382674009025188714536580802303372909650193729198553419634268693181282226341510438487454092471282367909918614757118680837981946436603888848578944520317662867407111141656913549567395521881732005438944795440860953955736407663480442211330602726664718649228070685307769321141457068042560832147205658517060625265540873625540599228374120918051485441535254076303877945333266107672443070869030252146590352416663862246875030857587405690333663018586890116860467283223146459769158733502360895139333660046924613778263902703495199929606992480878030623550256044111969205517673478137257231231406832619445197001411571610613432974185195362358038961111971348378730264069852155445060146616329054940421137588603823732794620478958433314746989827230511316856345879480851646865935370906156522937315041927970249560201267144157549277901372249300250726934181579225910788761952820734298292845039228740875737425086559103054276394215568504763347231739894002502976972711344297472795352480118959799034156519671304432531374222591453316671298815416212624366824623103863996386952220136559346577244485049838057036160798468039474850568021411935213742367650692566151519838543943297269135177288628247137409407752537277380413319140376125485767663702741627103579170453936680297495333787251335401704699790492533110825361669954021777869522209894066828952427278927780742920045564970707567385663256921058645445831846864097837946193279963321259845065248659461773188058223222650328133994259571855403213665350513658470516534002848340974547624925713468075216261606572199324564629774459864055749154187188056505880980570238874747116544709178233372486571805370067414990376326156673337313101618381266745492066953838236316714961023737598093979930614543616198773423536993703879245442149950043472406857943884346109379122069684117404293549180619340909693763737111254510795651498892401315072516659630696420306172422147447314252990286157532218190976020143857332779892235004888413335434733854378524435807703949035560934408997685149745311245402727744760420781127805965818503879660274458557787626702309136323803465675364824253091289108895001654725476443063668112877518631530312123683074279625652532338117284594362068510203232151773119596345232424057098220027858875586111703317780787756703088691222011352531979512313799427560734395541777518716594676978481203541006712053059757357620571279625949597960801624489796001283438477096441707616311680201114692875571593270062756562079282207830360615244749382619433243952889341169967861581382768383764326937957760673607259325873258174177189775239057533187052525228622374037684772711045384415244960722224661648559672648172789921416208266078761356862541846475173698792921517364650356179483795443670039799490962398045388792392479178393157712008209913484567768083954560822072200379805662384218714352262777468712441675398678222691300433461533664021905515005770520590818144871664048078837493376516180004938585191232569030197489612886653824617065617937494239421631887142314116933910890342106663712029697098770880410037461481805658841881066296272760511414316600324973003241564262771734655979126060977998829043470030249626412523705011239034969744828657504133734069062389818765046510416883232301892146532372989966353705573319121379079767369664107984937645795759383240023888814181469716889565747698079972866299850817057835054304736407524198086995288757997785734084037586648464467403373135750883424829139370014388636984201504211297374343739789730867613623622066186508207950178510927097213712355789959218565898312587694895859560950275146000680234281965364429442916634853720396479865221765285737883818405736069165804285387738109522651806222663798119127101587443345062498554767625335250441614372837521078200255777052418753647949717399091233657165686922540414165888432087873468264131453852663225068584885590932928957027461187528208379094845974883220978632460602362678946434416543582677301879960009238515667688116756423935397705262753711000730051332438123825021630028720089899479911445512188948882599903232592166046506578393748385783619640504999609262466979476861473453987610862088258076191944858967753974212562965532748342925814458310606870828097723917288500009235304916304647144791129557604741254964322854393067961152376536360074843131151252221981307379470383694983674089723992203018495130702187394414653997301256808125905820564983613169207118183260659642737684420586780261734754138014496444944508619088378246686244325888238251329853995954099905789524800915511415854143563362422511964266411879883211687846396995503163790174258941694229238210568792242008385044705141323083914841677539119091868520507405740508013135608310982866787499456200577244088374140965177268352269455250751315546440053186171745446044966974487259532322284735992539308270635640835694071375235622446884510859573471386937469615369122276288077435870113311065791846257665393863316140055999008369952600422680107077062065440885004293112739536723609801507375473849699668553128662609850550533530655849752827942118829913801205813443750804688307779517741731625243960746849923127897099368144029785034064559924309017665536215993432322964557017494660640080023488044190477588797907470835868925835052169736624488050641715672206632372648491381493086352617000147681169959359161400760027532660876481021570840941021959393421319536472049650245598764858179098800354530079017163234605577685392184582896331377783330268033750088522592612484730805549207697752280213513893927841216825242134622315625473041874695666303062752885726483418961276551854638355385400132184644115446937064548012926652850890302792874945935921242768940368123594570429694766020146114431379811796334378043412868129092232074399736969385238176960031879651011101399556306130499944028389523932107251938091224105226754274262954879172079238614533738939913270975892345674844164119155288885787052037428311708906409720494530658198800635991129215561411773301882415828010725914767318647304789171384878780489160170648895019590902824350151734166209695006601715238812922386756774038541719385282417685913883790041479493754686074687862163562196233382798329761712486078056639048051060678099478902734822309409439947939604064697879956880003558333550407709010981619413871042220034387837889904657550929260335230735801170956269649141687642148519701941354774692190160708021819387016529448524874631270456171780674804578915000582230535104801475355808776593183831068390619448047757048599300029808303003589806824551007765599305110072426474709062166036927571015504029841313756793195873548000725225915172269749767808007809784417724265926427117795902140621763691698108735772400807425464363684495207300137253719652952484438605104243463432628698625033861528126658176830949328739889985604947682256011623348409788867607333217190122736348224005991374832372339639780146990874821390436234230988362801151719524606523656720592163295726703955539774215474294179022788995213240150700515428539914315713933400138255494833450029604420057907016918299182199511440224811161836022276263184039397468063788243820039349633719287821065993653233750091728097937502351144626971970567282227176899456877058165166686947633590881196700712843302454408887197316609671155870540499769246754718004919266404445058334733364520185463826468494443583378625079299794805007544213281125728238233375098493194339290576993389701534803200304714113152690546400925017705263679812117784107014284113936519673907852807045885159170413245174926374763502460777135692521432265082403208830403089997038731833640404546381746254750572961632786926372823743252017533114459725746409749647244903112871631867849037568343031817425750176945987886107099588557245002364288433336653094931143804704786459517686899491489453531598547089213233522426931427972027902160166373878068774838124579522498678739269092478854973896201498558298291786004992336011694064783211257704318814817592609113901249568141912580089235755096967833980224575161551063953489684454149799404877941436723615885699072207355513489102185685659222455018732857528477593170273081373038342089691828011416171401177535889056736289973107724040098770484383249390278047919953993505098558281512682174433867267851252420393278031714898853477625982112670248535658750014309364105032674749911834989445256033697641222547678515035617845307581677148800086377129409078411701387112547767199020815863641872180862552890339190090417219382212201309488008737048540171711397567024324539537184739441788678116297756160914615890383353496175969793178992762484508243882833178934023598311898716321413654465207481262482090332412113525374109645505128819580345114991064961007815864306507182887317145405798734431472167335748959999509767710055989087970663142127435116904723122789419705356606285609372936052619877799960234871374661417654331995709738558067741202672652061479844007778707128131181647194690522211534545033880744189156171597139046695624021049649928665438739045031652842748290511850730558091871250418603985706681789456946763578817403901376092833736445763927588381701168852319600563086524148958118337943789330184694714257410749597802118604533645778498010565805665035990917390801836563257687434719240015769057262025445838620567589921379057278753320576443154294236732873389410108544720370467514589793728779027343838780605671130416838171858769051053324115915071761096231149358038480622747925207475237087319656772426403218352823292290165211209347729724604258561363811359436250854942676563773727193125291516352710409345492122946675930948985499616087387644094010275000162838623651020269670379598980282797121385623919365392993540856712142277709134804373219504820243965422283926243379385484587324009167814670334830147438929551006193444669658637751563376472552431217549267939666266490871960158225394758856828063306963502525463634157013537930878416509942731750410774392056641479670349290206073175870521126653200739265746971542693229303108735866448127651690924379609092673369959737413318968267878458750525190644430862306867528400438665309519292621872538374077631246720752592231461737509573394059418193363684424495913232448555270526390006418053312405194775787165315659830729717820291219987795136723540199542753909860511726734630160866797654769420236443995449886532976327652712389729632160519551563225670640655354114454245258406331770522838628149887205306301379954571591475182048773367560384833576833365098017216329580330086153878288692436767757501604878796190552024554859750676296384887956332858439706618998656782821750876771262966475651950541890728758829175675398534851176824092273361553844199103248044947357321822480342102783047814063577784798369951278846274276710106891392728334006493631305634823720102211272543463479218222207217661777771475699878610835177515647714375786428439159240836775750724466961068881341091100409901676618553202188163256661325433396470870443420817246109132921236217184816404256787590980174761200576951147823680237544474049316529547745622214338509980068026278589289926712545126423816854794719964023217528961986768289825981666127152134293170969292234588293413509099908102481970924533047260085832505390476940151691643523098001432320606544610894283174356300706915158143657250528307637274718377755226071883106556705533802047201323810476086716350124929944557782829444869897788164879366866955414655246698442522897416223836741484596045008311128826936000835111914305634482544202996784509488895618345686156336812609728849087005476955558457307910714046668528430442408970919438956775496464993727646478598391177129640104507218893278711860052695760402715159550584059106999506471879983912764060381758526412630229683334116850629123684544419663150676837371900627854876586932325479311782082958936694813340057244398314619283108084439219937989970973039046563649975482172277092232326371489009518625030516984320483476077609790518405677576971956489672777415607940497443984803448583073779745423691971558087319177551350119699525573255154604249886749055590993345296031552176061685307061922635832660519375373371549336579392064257916929545364182152500626581847801648533317855798504023536370603646244878100869477768957155890559881119870074531715561419593514370536841143661333417222176329635261933048863042731681136481932554867332907576114837202113394390574221581227887569747049326441698985056636581894747224782909350029338978008709966257166333023761821158513236116607446413664423572768174865850817440557646329538102308361163989869023634333330161238177584104295967230308446437010483201320014019455715821730887969847874843331475963386703446446256908890159452588082257301270326080608560164207816519487143078957979974695395755994454302559392967501992750904432456915924770602891840892121499270882775605839284522709126331143811173947730467833894014330390400389730938725781036816358999105857934756522672459033438180752006721842935136435809951794698132146038152918735705219339146300416942897378067942375558594413893963825277465113769465962602144393522462776855164541150888495449581624026328110542385298178857473385469898048150713251624787051735991138990539553840407318173087808154342739499689663262910963353668360034974544548612059744736895354635837499034384479542046821232525511608195161462199594130343920452187360549117051878365079612372421664974019210323130626961318625880755994904189648497824792583791430526277861820107483145265910187142158252214334770835389469848030216955634711135080990571613070874064827110983578259216045984310844791581157594106464102561090018092613294078566144252823382198349342654018255003426433475290419305565038219129888310448727496661835086190803194749453353844292123793644344385046321764211782951354017220783254125064420253249705639398878328319517156280500321335701766357662890778327693038012422005842816091834129544318795973138352494268264603524824236592593311399607392805573718653198733345287807429875745628054914409115266668493424686485178290388997802188294320969666483042735168297512712764648887122845143832649208342088753229381696709790680705933158526700131354153332170641931445553699230187897299850014889606299328360735345718098750980660241642161344188594650866138183387950753636741978535639214230974368006836303191142818422497683928670537803393197514817143559484197075724538179645816789085692740625390448481626050061892414515115845386476342013900666032623575891928218363508689102180289347356688437220059424702839199944538056962357740974739978894615248857573898711264130078325437482027108785179643966407277042692045498685050254280997190554757914376225573859096754920560560734615616061795134900005317770449241714209981278666231287999356314282977797657958869611591739669691551363929468286212871659005559460927603395239662309140395514800004092319026192140904918809183806937128845105743282306410972882696366477066718602567868693508456531563148071182401810349350555679564450404073617775430643350244167883692237186472024182183557475996222715096836193727331395501569784254959011806425301203957269509047598821204665842767129716371670941019245675256257243491510388858894177696406388629521722456090839090518169278462292035114803792401507091891544381099056134916850928615214649819540466672567233497398221343043347072126806593190399728027230021311545826240958525701682504204722758992397978748354463357528644691774435580328215338309864277253328312265307574717763036764403836736501937899192605437398281348693055187963998739234229447978825283820710402797586921825945893172291796641409793619695766569875894200546312260401166855425746502913072470168749921507448692969809349086910265040826308913211903879978829379665453043250349303373907348866140573109004754864961865664902280850881938135907915412786698408543651412812496209428667412060784091727148973522158971421548951878446756225813532798748663732538473450060513520231745203257460958056687969026284692260232468373941311225723399471586695959913036681593583853297528402008579838552612073618529274855728245773077986011077630162954714515590681005605898540932567563816505669284001256690442290134661638347403932401037551216092409460406959791569677549235975595910324667811780347172505898371145072633527645954312370911717700199698563476775306067702406272948788016255974834514091224599039862907372192635333133575542940953190015124878364947178782657672635297446934900073597044542327778084850662801706599691054884398889056899083485510219969407797802407947320059254479171862125360620629347265381118185241364091007137128507409634400409307954340235063824304158686298646564505303777672730664122187862371364280241131231930138828379020931971293907463510346898289122876118335213617468654897182679409158499417560187565282645416001597752744316839013695267977447418589960956451813973329974304900366498353109752828333152542304456876330369593945178617552748615612235376442806884435885877573512550394370645568233495202422425563480918094235153264517809372477619924728044893828885915245962716602034409911978693755405714677187361138347292547711728806067422237439177501174370455103339209538661691143864301329820109855647835327336959321955465947926854065764200370196985576656940843908720092149217507584060664293907762852525996206888786544461533124301780617583515224293630976932167101775589134431933285376461591622598245669692920341212720210255654682441286097233040884429096338503395133391301670925590007866929388274555650908528503114470762369732566510520395586883134433097550511377949079430312538875380258303068703020409622155477948354866936872307386494165190099980466027123561624512784547195653081080406452231043877850384223688485826758813868395279728288491485419190308525295470213989765250079635305139653326967079211205649462670294921228760704140744029244765107846637276407208183566660768117925057753204126943881159460068023155807501730928471526514286872459123722922812413790142305039328906250144554802894327077597694860994915175555796347369215333348821463573657856473523633647709695182361625809412372876002010348400259181371218816550568722844895165900139022307772454333151298914605547848062625134016247838974520246925072985194036157672074096533194540107048762127033528417024164427179051634663561131729943666360407144838491198273718924180802734785419390572810384953119414429047667423982989258801461155415970749331152913609574981245060556226265441118354402553555803892512353483064473572812629158981578007972539033954114774240710517888934649417944820962305238237462867501198655189986818750493612138044614366858853714674913380502676135316227464166788996798009473236826680468413862742230470521353451283040235609075162507389355350137230720541192830746357398329930454948829301361331686778663324990010601906885863098844294085550643124732087850109666645410269386092517393107667121415894122803721843593098599922650025030814618480144614449397612526528486256188836612864146755180960899249434039216162716490992455588253447214284407412454630745582446061167231958024729383292567801251803733773714224749685275258497909924513709889239514918212403851142217559607763457282453777105888873686927137362995167427272862291094812378692643845539648001491361036683294590481222523641701621434631485159998920471813478115840325012328604405752533582522529780589397763954694131501452326951931858417471228095192040753150999271115874324141557414112389289897922904263759009305156803471388351915163898623006536009091595184381709080491090941698126791912351910652492346438603797926151508093708184540016662311237857509026295562077326688240660987459294051533513835410205072447396542296757060943501568489600757275573498722885445325558391880214570070404175778757451222065892321824598922387264221248003678263538852429136819295841534112919520925691415261856300534084947812641705560662272663034416683701005709083785142983418445959645374130562083543222384421989887576138291596744528922276985748287066404688424819026100031823415814991548711781925468786580232784833937505886118277192796131629365899905080626698621247262859603781969985335527607014432961121959642356350974128790448054717160012206649098583651615504945900779555702341821850907597518549657970621921684279025417559876452504615051544817289398700013901878184730867103621252470375449165790610375391103113522287319098202231483080040292437917812803993004410448997529137668684327964906573519723360212650145448281055246508405218962737699836489164551348408281108585396526474584279941484530067955193721509402232427514537197289221343687925682928023896655367977947096090299934629056991610582499017216647864098826017539915535154269274694080857131993325093663828808070042038526835220843409363086619665798243306835882422297577322214341681235336362539825927903462730001047709455043084180459492278888836674013351276472369852255281726187767421781007640245968529617697249056198770380536248186678111205286771194728072958741179391876436252109939336100007196178744391438853460428864753815735429392093432551865862070202368398473112091733958776977695545348963671163218128187044004288890842604560901698921605997913676755218039800018813798143147744503646186025091788843984610222140964184875748815711575331330883391960809479030393097820689739776608618984000461520789423827880242692871883204851028538038114264261866460882447652002033763356705267631170321732823906744269371582132807181034592336742535365791620058901692091956785861820330093965715766846664275091627671109961382036285877142776940163372797341090411415038715394326542894636050735278257034449229928509740139211673358522183614845112667974757149068900977674171206859716786304099073756338240460658333494362478009938476870039407904323112237281603718068122124155448761391197810926541862959634732434469343280577744479846691177849716559886137206690215580984034351231572801590477363394492290043451689669303763099553502879890853787307181531301235384070710612977424507856265804626366914113918203335000479807885169056511112575007556556149687146361687457051300449060641013608839125423267182185302141908375249002758821705709867772194120227538785325081448094423250447303641463078525541122699334548859974571023322567099393927249383235352846653732715203520081551543176147567885717359129262768772101413409130978103554907968228268283103447399926043903473718081654940042897010287754925074791011804276473594727535210110226955930484661435605305863276987689730375792497451743537872953270191232409417189051554036474811528480687445339658087095008034296224960431207453886398211232079585688758564513036292169774195109201988554008277523115208732799814249870174797467975943353112066725100908651075712552947764804230477452610088742995848444705133233310053250294503857594006140044136108239698445911593378674393625541580304261269826038847600108144056102877645629946068955710920040490612507876682557860243231890341149214847054467084637651273098471736234005413736588009844787992193214957030427482371263855760915790900572991927650393380812796793406200782648344351897104568456431740943269857912201315841004062432686066599365402465079550385679141456715544482407393411849313814441918728876712393692502366112310595364068326740576545141091609123627601552649227390302909080069779766117112162113979128468616280000560556710772458613862190548441519299228776503535777153059053312674389105941949146269982934212852515666930291042343064693599116392055844026778437354996416506035407490768778550808626782438777387530346870128646510624851511466933039695835594302699684117932942658505897796638472729775894294397217557465545485898876003651030336612062372218787054221904971552904429651939149505308495535380486070273474970005110675315784025937133668935205865827625124374380483040621094331481518896503190708508050994688212750030379562781633024603035776903724005944965785823711509374252162488622971360098683436153074359537332191970819387962177685922508216120271563079017360596981706373543009131951661266120591623376553710156184914317230986573350383479979853055220416787555570046237140410390460879760789302214511031545666258152074368897461684962393812136596771202301535596763418509431773464282917672497720965628572604380223606957939751925155251656153757593112695793951922129891997154362726660411119496501845972370910316433162815057856653822540980266201914593496174906675953368239178707750344004024887663013405924190330653003041676740288124462401573012230702706316291458522216390487740372757836425852907134326261927998957949440925596006519291853593211915515177554743933154118215031336666719219075698837786783831702229474802152508895515615879084867212476184517463469360885425237526786825673954981361546896140328304114551553570361624525499724330896228025390167839989712037653189724715253281343085150589257531465646120482987948561458675435365677408905013178876595417959277835773577047333512431498815530898315617313073810146300803018281325181305925810329329488023709144315601217753679401260592455017049551466133249148586217514000495924153671272367023208742883426253691061141460330880431648579458638366424628945776533836587678263795645984193415300166320833520918054938891123470699957356171486352767341779577342409786808503821531901417946730720425504877531607858442845138974585051661891386279271263877452726795996648739228771642026095500858848962773076201835377754858102494974449468659872563801845518231220270963414761254030105055802093784978744995901981244405899154537806587027707419134814501428245264307193121192857355782686176356177553699548061961861001573556082932402998739569562661523352230887573352442978984158114488998212041559717400834913167979560534861879003297766158380275465694572084430930406771003899944098918344526376706074765261512345487136121538294068446780294605335035077776473728223258695611193004607876542911439451387783648906272128315413876926719577745691026523689890060027084182575233620713261983436823058688546263599173258778437162255917971278871990725746119236149136938357255386285978054119877231090756553814514771794179739517420938873033227014416883183024664553174882998438728314656337133766883414481201004585480512993593692127215619293114892242729268600293507108774826526300792359155225950822807545265616268551646824561725890286405338124841303319840584846988512798251860684418506534328705480546646835325127065451536409472120237084672875280254081735871268179760424519744488645342944969412783096858695322482527344711120786204285664952843213416501010795892540463193444424316976368102253858777783385735728121694146563917993165885071519822961478275841921781768497845556509158076605141378215222481858999490347435627640973002071566803157293090396162810523831888207174699147078211120910769035621049521184708687972730712303956251393424363149872961856965607903891574359833375582153096237789225526101996882480330883630896752854124965368564887292828667080102743271430042788688958836543886260469542897338473451226182149142023919295119669087378265932662668019391901219354210188677534930027408365266802468593821701703918921117060177830069671232489074728639853704941222009748849688191487395935861825836993230929465121327042191340493571066113058090994325797796483449619041286513234025980043280317245074292221439192674103340701147978357750532163633381716772110276832750911697088757692905463488260155532257125763308960771440507223905047921678812662593966193367612456333906583429074208495524529864689231590202033968660426006307315675099745829806503515683560076973169161730975330625165280683836416596141521295176858388350631408676795921818806830554329018998781496223478732075501666451376258204674272023729417458377886362213160420038700434800538475302623948417172894506701009829973851187582515462654711154265767349353909350595353801247514625619127145526687288673501539054958351154192449971966508288664371760644741357749906766731490244964450211175071302429666313483670572892844311017918526283953716871543551729977295467626287526932322697651908098471921144146413602306350015360016897253741937833545372388480789999915294171142652384017620827703138612445600680138515310993279818700797774639766789456487881847883765735688732207672713880019003985179529405779525173732403926064487851582535024379144197710494958212374077820356032646817637518590995120956348305625927597986242614832882344395659878547916880357891448230607531751829168748371347915721178037023694462371021154380980469474478515525267100771949410002842068820897988391607717492291612968825069760739391320028366247794686131614320809300162133875345028213561229062901169594397416639891868689827629469267693931755861854477764673222996975026445486246856656478115550304688809342611375553753325363834022333245342860587794452782605005189771490847442071809014627565016658491555302527977448210064040388488189314827906457599037475668540343991692190065763599832221830174251478974958577920789546426751724634201427350829613725906466626194571504587108178951384662569416834254406640805932751112302977761955295575609212477775807830412901398356833255796987611177942913843511341140544167473608852101226340643458756618314800928249640906808007319305663335422588101914944814473696969089297452927645373747594642815353772004312875429723236780263892206303584685445387558785036347045764433026356040978398288071328006541068333887634020488133960056581590561026106625045770931440500383739838652955993196357691689020610904737373002335727382244489797860082909426786421308393680249016387734810727681472309619072849492892617485943632370337490855159764836121233029216872188933245615082292782696177893006552990582006335046273807676733637413858778080416825209609486455570803201495540391387813164341332016809512793569526722230534262619980288544775152064428504186753671029937537222607547632099865897597880047837577974665973329055095308531281128363204804765686576940491929306489894199348978160012762307580691850233499131351365863052980010693483097901753509675816010051505278152126649393504530739779668972443990535392910693861024809724027034768327297064768972256198066291803917506915196986873317357322384182738370929897296981586486589478730883553601737514874941742160990612537750240585187931016843188883100882682819497869861224792705386484745091463175010948200364055835852074174464875451120841132342739757508694884950737033472747789172853148609469790036876142356710483822383899375320557821367545087791922071744892302849619176274823026867501836983786290457022724022225196144772430923115225788200602133168941851597420990031265038247813732550724376700834690475540351299867720152566917786738754175688015716437083589984537479321852971648255111033391646204292920374260148033036789307899280234974253484001386834742076345978392830728131912774550177410007093757394426259691244665366214741199393942158744273299055157376046831192278718836771310399502968379630154816443206773527619597146718843446727777407583147190168423253265635385638980812221738594536921290213287195498679863193457016800048367879338286027449859409261800309730430202744599102548854445880426838176797755949069743553602668111244710092126406745889427493695752166267343017180948953733006584200516027570085023550056557513573138085744742716467544275799594930395756886956028286154597546370778329404261771502447048955832636747151744015664946818000110439569667508014987750776601398403616549110298463161134027089266572339406635253332294596905450563638100541588634334883873601961768619623904399226210209135511667360330080158819263564917209494033222745853327937997009033462885082289144370024263239915439352658010845452451283049225446554361868358972395968242652586077392303117451505123060575576792913497847266542002853530822850715501066386501109181407831870568313345777924776171443482315513785546799672690367103086210207207388827956146319721380423410925829470198497012394744169973357955250201318476023338985583007818146370153874608864294388875097838637851333218524556815506250671293454132150739374228099902621308059044010129441772892779825447003110117464270512217787924059919743899403024094062624602439320182958502667845090143799251677927460938738750098473418159623220056317146988473872804308161134632493959778936440358614092113363510020872606463484265793900297132492468076209509824662451809595355055191901397501659316362464682962898265973477837925587035296319951090640327040949388466883478770536040631121382286713230655234087420872756281723227460010566283729385069772321641276893241585322680890359558470987164438344972312387166090905207318662253559984004382721508644340333207449913375697628993693827795770156896276171992537794343895711658479488932981370471700541482989107957807569210920949028956896660335864168559614609727915157199009475355384654154164164306677860114414915359213039958587755180884040606534441182374837971066221049188381759892425716814438540036081092814728293028020455553914694406525339888254339675756932947889798810913422125436284462465916550393476831351706200890839567559138801433430679571889575333700666046274456541803825082834018439779617518889073626730658920227093731331960249766287337209861044959164500766205983099168722362915906252837445194432813987970794836717026355542908590432955678254563394207868219126991638996065868084079069429226354821411445929996840857094080659352693512445708783593477908190937734891121392708488955843009843428925833619148951320881265251868498406106383566174752125412722104543506876216202824747876188460303285429553177346746720713868712895892866801035918914004933063756134402334196072259709703940536424567919217028175042076830632094920859985132237473394294584048460360641122186754051374737764491967566208872843552989829740740012661288270468227412225883013265482706219122415315963126315041413561579273792277332971195097594844314319779835720348900870370348562058533818109194911113560845243024485941085449898316184038523117510555131919186072588942026380228835493351232994113453158226905341108927044879993090413266480693482527485464592069473436011789916205026360746253174861352441294920615222141314311534938169108359425978736891422558952779119255689337431334112058664179358658586626935244151000672097166564990599077428822954269955414951458992452156603488028816487694020316455230406982763802198793283057949907899109271327823766258763913738346499721016192746735718980487493578155110817584028623676438955656134675744925218742970625944418066280911216444301313102442930258172081742339853074473154944210946269974379090434521140719209445321436970308223904824697843657623432588185031843992888009031680694720793843523591657444035475728799754375416723750315595399712715739090233696439640370630964204977328930877929471815738044917300346191120554445178779295938351772592931956216168672480372758381391773656978075554361554753414143575644697184332043421139526000941140313604916503225424056058586318227836680177256635282563684283670657012492860004955349460886682515831346912288070155216587149799049029654231559115235977955530478545274482900442876111154200038786593316754261931114809864627023684038706104190222177252613921381314131410197939543556851721641425275609632347100996110675570930558687293460944263887084401855303678941119505943644234610571378700127061290727241439496402241398677955979747119562373703328358379923917686158804156785573495311001135712559583082770622379666439944582623729796438099134137099834040326648875431458526892708171162920473695587188131263134928540734480171912293641158348766989699753140399875504858676687915973721626469880992373269276325093337947937231916664019607653100832998661893267670581279605254942699024497346073104961270027444287785625213723162348942034525330083370700214297596694759994942250883770030686881667757997610918008330121009171939925538547111486224151339276854858604096181101070399650414734623344929244769570060156198291313358514910164193489801113439076237739448282718286014178784786058749241705507225836570750773885049765022184237434535476110492747639238871197557655549906759371373105767286857538154389855815699604857650899228564109560144406994559147395491920658691653230575469182697081967188866787089681513367010148904325082853366606461343886575055571017603044224905791229076515004212506388549987297201791311951737596838422491772692616977471721743900980111697585686197463867073264860809219665262771014370003377404693504512744411301628472436007153317321795812627952372873530111022394507916457275806056952099997469497361501777053415237207212818911082523589484178205000475121037749972005455170233157076531386056964957685578369091359858221390078433358100075898895611244519360933710803907710984305603473206903711001102871744343424023768683396243962072024408814682554726899892537537448129135025266653057741595645450545054553523306520967882563442954665862587227139534261054299529348604279260013853412046885849076622663700255869765338345294839088651594414690750464954611995791618695961906677651587635171611431101870107980333066171149311012826169827309270039761630917444816173471879960871794182174706250956832017328055142582968772681231225521336622922397598738686650730984003133044529009034420626486570234088345895139210082990265631086124412375423788085518767325431663122285912688060336101836790122309152563277462107897849195990381346459595054472190930083139083827534794615029223182114999896839134877976450011317838276198882211143870951460957457357381196606072663205410828418293169746312265973054070343126470201628449589094312243847808478016682787164777630809371783776139693041135563084382520158047861910909729003902869696813930140084183378873376807900996876294822661428328205683179698883249457349391111028062747120155315780899776781232286591820659114295033145345992119275051825939456318413162933122828952394032942617558059027557263565987562065298298382258799286523290154141944268050280146007718360345224803694155416102550690030738810225458569002002501063811246767544445655250180481526485148568818234557478201082738265320458082925827456704766973951481105491745555383873968109402535790759082953790420081197420725707663627393727128330731821405410645601418226567425498197553171620779650156543826360551052306318130002643914399836680137172514280405275588186315832102969143466113843486208484134060441181455085446145455217492552269957971630726981529009126671850763945437726795014865980784903560084219162605833241868055588469012423377695151975291171632119618601103156342186820350565146391882985378788732442038434811444625743009054139079674517590848729894553689886869841385978391480234999851378223528246804966896482081719882147245681398916087253552911285090410581596061562880352896671163300031273599926862639110011331026318441564646241346558141227882578134052907864032367936055720868915109102629065978857073805561560021016310704720822133347019808381434034238626794866083079465427185100134462227399242423349978313617566890741619623417198291297261595815754507817274489890264038408865571502687518581330245804157062094068930804143287228660548055605658722943571966726383623279591336850982109157354260196331910947360663500165586255266685554297071863548669740268533492114346174416716018265659498682725400559086885687465304874009577990196842086540701501628390440406799123686559714657853551314095413396739334834567918628269963598496313622942408899180703718830332769461363380469458015549590802504173909346215030467692895965636063473323283027750712084147144365400090424626013198366353712769871988703868494166313294725677361006880015797158909505404881420520618073471126089143041832033117170246867589841323946382958555735049653961324586058633237331162659833698013303262875887762521237541502328560564484547554456623021028137092889470779997035170866627269037520206674349098851267468191926508375797449240906263021112527274486257480354442770996125625119755962915233445061658371013383812921157371063023780877529057037035819108865052038386107252442531894415156109723291661097589738346781087341672319208680262193405991502688540093220240909294042252486699218141823733844098211554346909371475287025028390191605706847655317490617113986527152131111582738822807758472382037145011976118517027397811711174179197339143792409869104777300698889723497151982692858200685827459996306299420053517886341857838541514251190723414954518903356054895060440561937806028788845601818546915723791809526555478518104226686373568418969265119398386247129883586412708901399876632671450949606953810688047998278289774147650655628899709478894806704737632163443944186905570501732854380698288470988896272662672038163848559090495785419780539319749181480691604954087196641650681706204125943855902222792178707237859325915952255276448491761015690404847827282944099613230995510823496404908814414557318573719545318257110551835376431779132090239587280302294055073294716804399161301386229281318456095169250519494942373445447582598956058434898912458435898529899159273248123478717087748005058384808659333493958798956869401991448525974143356939601273002225996144904054979827219433746608489631822424854552613196350370052803814947118762760261747101446889530259712942499851979602789691892049906707957221663463319990110077996288459454794528929448121460266841875377438932896298941367237837244542679429690757965832696187305849025374685231852979219465957597452710307740648498965799224676285480152838758045417518400668166198204498236909920004694445545190614796615901893967028155540545529888365628230748793001635480581884063324801466791924425607710084352935809285760905160619181408574177023589983242049951483777792592478151541706321630823602890814683845606962936914269294141131504704529667601087372451768618145609023771162001254641788483811485931504562085045378175591941768648719478474376977396522898608826027585985364533999447852291059805773971770762635814717905933320472464793371399111060153751197809101136508558212144323593455858796084675466404749055558720958472970919412405209628265464722694160288746603969750224721780074332644057725978802690710953910396835635803909540452780068153633107535772234046954992235269272324026780663169698680762574181426746702166830055917136903222052892422392067517902624952991540392031270299538259272192837523029651980908772765995961299350559084748668308085372695472354092300976209142013010622780541533699314365808271381877826375420251824091656702665336651354063977956461785293136858554817916095855221039335269202248968763944335996131579648698913888703241452837108060683793038261818888392619474716165443710540589042801681527572981214117703206680461188136049155883103641007308799067584530855470853028791309152317198288439655483200956107571688787189135849397765284939689218598632704992833852603654162803378657619534050595542421354952700266115738179556043705256829026886655145940207826506207762547616477701088923849510820860714981234622264296620940054515861372751316126301418293952828982845149429837768515811053402199910787973335374119844458449807200613029251643711960049390668221007610546027197722019000045262995062395078179634110386412013524724243204729411718225326417497392033758724512861060516979425244826990185925655010680454137962801417352617488616196890318893384130076613388804589154138680274302249296837555214203462988385332365523837418824205647976582980425701946436342408730531623585633640014708495191551926192425475839167807559238692563166234790101869288703565436605573030701791006647173351440586737945598828595352229676384868995880734964395282464009264340916806827446252110428359037775616493151650002397520514184691939909527823068765115036024647503177722794336326226651719282136884770612377148515522280463982694412858613282696171589564181236314680725670330082999046812047415701535786562504431398831827784539753848052471972983544838667704938777478636525625733850321221916086501659389154763799965149890881330324505164173651077161797141334040463256085344286426498860683143255107902938944269231252640498564054096250583017882038623152912969648740551204810734818026359573352136746279923422058426275812575917012718311734973271573225984646754351634963242162916387522211242911879236776548841375011646510918792511194339778965285314587262909327124254690454393199752000360044489025739866045356824079500950049036543826342741830913297165057639463526064193460350197600030640456369718927875652314126899285636366688870157278654776705086431963466533418649986759230894234192421446365905526782205198561075556166935568482615839073800940366917155818509503109066788806987150430843888770228834733459796019804612280530614178159716321202379972982993465788743768795272102365086342874990102980738936024717444858802027613102931578374559253355386296669795122161645169269139893669471862534214842395349909657495492358744555968746946257341278333974555269747456326037972062491407394296750051088085267913150126597080404089870814223299125207142201881079859143123582325356357294287231753570019359888229698324551665014528520432600504801936246203727974184519154637003730463404267975841412904072600978794126051462630547035959693508151917025450220378381108917519126119977626058187025418041211792115410225725111981764523045361309410515099484842717447229568490531176031542482968164067726094221212976621557215221995086020181856989413672013938952758595363454467321722299558382768760292744300624333907920831366364338051307808624751266267765245514847257444415769640952839237085188243900194584170900618102563565221534464033043298730436171615559933211052132926007303239706155206332197864481606495777725174735069238984069396740267703929515480731075969517672624470886651601043893141937157496933076726552975097813639236429535016301788338199401502318950553651285206986500174735182682661117317705771628706696452233935167373186801546206062296694378984756224676883866626774279856859191397348394882747944100748147024004308604428372371213661295577339891556763171455926052556657542946458321220144925949437520799263684873684090979277465437258669046250471867505252587615246356885426422814770778152144724489021642301349398586800827576093253706505603100004874794209392509259359862766871936588353979002738504668020672068689999534510377979745621011321769317593176935299297045083395505066241609718205866187899961522371352532403762266327137177912874181509043701395256389159055421941128396678147815147879632078152760572279143551621316193193904129687047417032907049602731482454042848387117043355538336434188008358094227345858234503498903334145625082807904869153301694020720207210502379467076901653183891840787266983834726488828837458633811357872227620970714013159566291935658311888565239258702543908139602163517297808079579836651729533386019312217325309632180528670061134777487143600592754929225736401580909259481780601034928772088133937598745302428618638819521702746569689162310124096933278219700035655454123665331237711089111431773026615397579742696522971489473177781442830193329738545826029101041415233013649012852448728079134596423402359490027816183548655675096958704126467467005336756780579114225109926622309588347804674721906919742859510012983307831254045998835291617806656988108664456908662285634173943304849401666639091397989059439351013636461533146003373466409362793279606873147732696906159061096909274553435314130986457349809220653648425205625984713867532414383050578893555057674601996813610741969519228767518896349320312972232174524265196498749057831352501403416906224112366641024532176998902511961944720920528865081382412680908921655939738577572169859618216145812565218172508569159597344353925462362018947977618237702800207587944806896150760706447026892789765850335185154699655473806006527140957990405873917012381656452483678103136687827532223176104933976869422266389539559631360469003724005761276881676137904370689078006422743923943047610738610992392644364618628975301665493533942436218969809994902900520723543243125098121486953262959250792926774726222641603727407262679010291929551184666368725063130516822501553653809859081056628144912619760751471331329247460993843219251292172551095181322572689757532124567336661080441134580738161217526484382960982932076810388756438137001678876330530753840963343625814411905389683229527838207150361637994237418430050836431184380406719650583920064680166857953534017634510821567111056229083423708201378414160564587838566997185231458428061414117845848616433415685884920382942305037047343476254642029335455632056677491633495882230543359422919166204805478044723805606296503328538464865510569829733993286337555534365403941102914650142222545938491103382111746517208188367979288690379783990954637234130073858260259039632530128910395633558349072587512950760700274250894908344949980106236014648526898058156168786187348485932796361325120234011885658001729302601274260643043087799711224976341984057060930698848148704996949063513135925038028900823764356369851932640962614405426390475807940707869595881893170415745508764215751566865066195934767018660068492453755039151981558342820716518576442278038124171392835966772472504062364412585463891648027739580185478398614042370717704754964425203394131338101869853584919423505197913383562841974433337648029494801286592299077382098697743572330228046456700161421268157927719206399397932775243231429313927579063894663994481978370514869820159955628567934430246537707474002582312260222214176700790717101471040033287052357139277430672819117361175896276357524938211044989892566536646753318429823056944676584982104593560543143316528075860634392357268461236477087097340900259852164581711642137522967755632703460468217180481424658400118758234203385177720824691335471826345246145280509224899216162602686402443571640762422604583930566255215920484698469331969338392933971016388498371105952427862892911632735257754444429064915274448954271308443972104117717128262465565768345178795104582567900749225596996119175582454170418531009247661343845099115296432637090049993095972704027622001474408264529030954903608344557835509214074072751847981443430465615083949492469393865120583538007998682073479248314943912302698313735631756205467068584735185485817257506075236257437780184500731190245635139116790331903602632157903838070430940052239162499836750557523735291257037400303205577478334671245626331298689355801326159481260666608968030334564491602505457354727336879497519055375523250084844801461033135831824846627152187192458496971299408274854877904391623906244601488197265829095801146566982227649094660231913670784584611842675613274030619843862426967641238164298442577807967156691815518704863747805846308442486864279759022857758540693473980384446749173172527266195057439495677480761804058112425843393705540378134495322923178802509596390602816181760594100180647503496043555766549995216256474612466269584494625982210827614857300494719576490140012113154662559819831874762500651942788119134087990102671027583859421261910209645134602954999587433791014086499435257607742105678451048408865058708203600941925683890635372138968842688263634232060205406703761600540019530512806658073400344523196414385062480694012477865910202370389114657091320961751124275175884551838440616307096278838316051868776662831988809754600281781219501464609269320780995963655651821471171209647081905939675326094604152290071235572787764457820081842232650818949688702931664003896091256037230648473989421197292686840228280359591651663922828960757071403684651295151410914351252594809952018475526134633995749325230662041543195659985875412873173485735426119211957515843436543171744628085109154576325166157305384259379396283353555416629048315450637377083786969742534509194355549995127693566979109138145960669661144380788732827030453136648910313435689389270136057749260502735395140946160396632250458859521228884549322848189349500674799571635884649254702338732230339265679566678606088763146805805864931154315292389035784030187634965377913253873085118563158819674169910519561058666081585268227784613293080444561795581420926042653719506124863811798126359798295048879896312528605368043754102007061435862871354159105836052489148985128713903633298878355599428524372252047652085524511134331162936633903896920200712943907243294304315800036398260512215517645928144033074911472829673011420935745287850602755205805631859556668969376794217472656524999841163276388087651988930400095565896128178536260267401200744577522834753580342513275581543635080158458780139438661517553754419381716200487283638813103812949177173333336191014834201816219321163724173383020519750369471856930327519363734603503422933808440979870484685016381634633550201813243375210429406361544814293345923724425490788483603655926417169410961319504279034256299435171064847904644024187591546315803420297146352526166996310623508557918914597480351311591278339814669247491159919946913550878707557741517113928706909738991876434425579031852028815457033597862014807934838240231107397397648248300823089953898966081249019279454128755142025416487990967343519612716907800152755112342672020468430085095106652668133280984876405888235872460967738365092106400213780494962269094654912093789535557719710047099727478882417016907885900721189165038330869431912272763049879158324898512325388457439776488133763980163011163423551097560783783652519709212941334326986185498069911741999709911959678657099336485814161876755420192088457098135723202172465394213343370157589290401571175374656524902830894828775208762371526557764764396914977884210840591402881883169420730438501633970614878557224938694870674077105518786812211451251769285686563904433610503255226234568937392251128515207457601548350019272289963567268759622462960994073082930423634600529537956865245522370115129226915435834356641060491102878881221032152528904568376977453695101012560334662238665591054276436997077866774491200782957753585644332284482240088008278356953009663357129847851695648188990971967141085051708181249680027850679368359194138174968029028682630486299408019374185679904585573617395688854507147218747426866250210659289625804029602737436963133783047925139474018282967825499147720353875687062214231317206975370218763594283662005645062621371836719077345117009563426725238416620496849271431611249496889224201817142969072020061579815198806356531957190573516474325912516017209503310784822392970862161054758658336547617683005297607922594313782235112237120026457493219143739653678153219083807616460172513147955119131327752237367078143178952612625202249436199327070963255013200623070116303623589534034065256570652714821823764302068853182267355350431060163315628906192300476473877775200926137708192649069673287998855620079908412721508634465013393408897013090399929959351482166508986069915891464936830025030738771640671948813616872305362600667493648461849311757052523846028746029792795624029568285258089080289677907116059754763755020777601809114195558132543521316723185795173090463563436932502156153243545495148966178780001265713033087925528601723653566781642377394546627683322698724747695572965903262365795093332771998875532940252434664282816189097131552342758656999830776206947503021062581941815584527041509290972724376385191551700650563063197152419575428560755992921402646352770660996504450354056415587305185176811220873144339238472681474095372719758616413286334504068306275016671653931569878532677510278979420959060125634679089986917575392109095206430179330687365684670322282883987602126526931106318166085152058461967502979182688611232232838663258523203305379602212159921324301432672318967846290319282011913693043210186218258020485238283420158882085366999245660029842268922878331953967788750770375424085655020044468183466956917550493624850938959647649664236019030987693556964124757103671150556862742729165179965213179864798055993133484552457221502641302566073770744637205820180599026567604155634912428761361395404800586710700252794299916817827334037028094646352815432299523213953063172334384367282912879255490811427843710210097289750824725492036498873954426433750790530309312787794799371550006125184951190029253188567005109294976349777413128548145043657118935045081674839053967811364278738240996179760506587255608202749086878087797252494807937347513757862622829695955900348793814812404519596745382982150888310743623818149761361217805553934723862401819715623310461952636596539023095001000914907358952428396367005850206777043693687197638845926818276239691606216183283528727932026947221842016400207041987376212637843322241677447893898057301541514196779849515282524878567573060632429520184811820782650154681116420833977037105125531632240113654514296283537642471068364861564100762609532755005274757691363682569093638522697055666590213416655722315494373358591842945805224311989923473926534691388801120498207503752451493051167427259511245911556887141761488929130202605802473126036668631814309912906463989839795192721247159333998222829658454814632015437405720566936123870038235332253905779967235335458390558211328026049671663649562556875469040457539313927284907307148223514113454087202018305212691717663394438974460646671841106388263074974546766772340482514934871287993943164287684646165447093653014946404210745829228854832445574230361099087008193482788016329677573356048903747728722270420646996296217562521555799708239683621049242659968606786692490082653179221157857297264998541939065627489045501189719643820170889447861334262825091498933379117016035289397616124973073119811079174532346286264507580038992026496894838727479782343828932945407238099865557115076373962940058118348028826362221052147458760890770710209395866474443318186834148309966223700914584834642740115135491381696973852547733984896373178378723476112208875997014946058317511530415743037871902194727760701993519969499145660141759387043224353856022390842647091660237320086090600012539959805498090716939686560946994267465777136360242495324541067471989483858296034920772684579210708826834409819930384234818254055011844185468131474433439015153359793862663771239659071673536492824855450633997675889634332668664973754201442053690543345775862610681516864185075211997400336127388469294616884525102236969242885876928066617860369189562293163160543602672259409239013003205654830543865418413422261699527569023028947585804345305564092025785240164993243410415189579605400851837881039805385468348304790077575968432485955180862745812472924794121259876247791331176621303061422468056907652115374475225702662951376885626734111642764647133286952862959198370402571655349303378298255571985471820775137913605149727780343736818449853405359556677922149897419884692568795921497289675521913201282693489487716879484220392413114759048895905737079662697522427712413526747076484591938340500538096257143765172426849615763498156537389974477486842839884682176425730144716340756074397486390404850067979066769832374909691634850816162993837148249670088165023908385758355232301501177606368738398706434230107624947739753222679880719413839110767030376373653905831421399918884389209411131624771869161288791552413272234738419669898960812083423428155737282324386778176806639052819283881804041683491082032874182421061600265475950803341465733750147594267725129245111803758660649033656890317318385535383744826168226595258727639842960817650576251456622507222879249786366912681641888038399755277927109477501358921663765404653752694497458874376009428593793424897946344997419884074333892388170903661384184693667764067260294115759844353989639779693627242310059798724491932930754946815523942189711814407157413061561910917633153764592898770007111456102667980365253951407227855397326128139799975403042868580652126200927755036089029115485575258718856356196596333015216534763395764272907880467967003316430029260359764206030106468526051694532522274467573263428620215439982727516046926808245356603836981375562298438504442478786295141866110988907187812952046034721976685392931203665744762241372007676219459750745741082625392807245815126269047558438404131512703483187708190193706220837039733417991881623930306133817619910895182557254416281134541190808497673776971751342607073953060963721548963206057378658972984157467948916968684937318191589210552247860549875933854022237966071518377783670736204237875903347419381807557821273449012290721873507916891969903165913937651011893976687006332600228446747768375850192672920394344971186781385466286154762129930476764716527021388110792668716035902876008643642086971407208454876118443517962290745682985348548804015132127534688239449478827422349589636342248460260339574783509300759705426951589197065158508796491067116866008890723486180800740295771250144365785175309127059216859280016683243099538881654328553743004913874544241374567053813577052060017799265314601806344289732739144780097044998622561050470690559854386210906838412781809018372120383826975080435103283692326970886207050939922722474183396600157799159476411928483405917695125968820806705128543408523327158711080246170161617714380977206076035824046886977045863339109891240847812356067236161420670977716434707826656776452206275746451164472682397791891413137404960165758032262608122016358664006364947325096045962362325990037081428566530543378558241394285434486663541648982044268238129703444223819872452582862331156939202501397651036491551012465742631461603893258666578950291807488610048796692449455406249614598670733179854721714395400438658886556291160356919811883187818351502948695206203389706027883366922543954398773607633453607491918222594979231635271282586123418784853554795111387624389652604864855016584505936963153847887328729321817103383146898684592765990541510736924491463789295176965150271610274002784743359917783687245155092722206172395948795478148318500688840798556028106348640075128385296989308992147703697468989586137991639130515202695176195837113135923563404222176549883060664135481358034611399056371693337018131565953693360631968238414744742522588788115875869819371267008616619012865095329571706160658605371184214743788415665555739150211056793093328452676763523746970626277447290991034311887240238191121242708252195094089300602655346608979226222266892220093837312939100758149813836141255787112148701060669863255877782603672415754749540006418803881450053605728861696849455495420678427777731481851659901235420114722741583209568651116896340453775673187387957965152570764204430902445997254706813280281547098927239419874134921505537763177711012457288963294405182038894176446083454666667236555361197685073136592070277471490075150533311530189642383885654274176387682024882388886957590478464418291933381767320646883420923397172225484303860361167563966167040798662976946452836790533929352989450392263033692739405135922715514853334238850035265569050597950838857485639908671000392559843167248523616747045823938043085007338646569228165485444506557444222100552718545442703745716398184582900010993460338554518059075577171217528247513031147622339143344784595797451816104425881963779474748894202647148091625546236105961890141937722322079086310316668617836130408851366143693546032604237780097680223394939885703398643622139067772882833751053631962575199417100622151890637936852633278067800973105519477240429811889259540589462509596735742168880020637691496315990209896931562374809512277602557907465600021021991845318868019953679030745703724247371602337349748251009903409276097073031617838005622333535524112188898038727200231536523680861264330341384887217771023802902103783525191580468197491268736879375383003798072080387404038605197156260080003182616212403420021669254690418050954420496134889567235554754997115387333523109859564676595026571441230761092512069131227110522400920846145127125628836545062969691950894076094836766836242044697691827323587450051450405079063489940049825058738552802083913916609843810248504543705860747874018743843694780843894935746600595716374824969649815791730394268449770165192575552205210186143280950310100065975868576703891787573565850975991673376922555355749923201759723351435701514280836701591804438095744345470995251473959293715757126584599742675612173461662828872155317538029802823214233601235413476262341007062021179152566540900087965186353107418661735774621102853644592183570200848507337564658165504527033392499933478119926998353907930991186336690162321425930657442450307160402748048080158184718139433114856831676941293334414770472431697588939418096040043892911403754905078265862634017414701968031095521487923190598474063732876473329326015849566363328692062606227564899371381337929276838169440292069408053508305056255559299148954464342468184917582378260998769711595696055886910989167773193961847254375685772278435111086709721488632583308978175272485571259539607226880026255630334220875560067839949625710620526099450163066452128018787153296700192032212761269728043231656434996982446617099146435548261541482431473656088953131599884012160497674772400124981456259258399711166175396573082483206725752268449872773704723253483630723016564237711208473764358218404409084144855007607311503926827723141329701862544209085057186240498530307921512760305023083924794841508336293061801548814760753624730899526329940539634846225367633362376995567867798419278116454757068874442257152203869286953500190812540939728220205855828471372863318603248667661490459870348807946499579215962460537452636473261234032721214441050693823889682461097360707070117988081744395810406391977037069761713679663447767384383932362679845970724174929166912339140874176500390875867929965735920463309883339914869781834150771891746378039481216726433712983062240278585435942590442973828591830200148586667359837070170588280684379077733851013153130320043194149485269425550767698493421153176631128840247185618132008367057122000630762494433686180499718217298709659734359844037357139032116240108875406415657824461671181730942834537153864666330035921433483242997385735694053558204279911015216294222207746638907278933887355446912623989697303448399008826979758781317863256025525447783447095701586973388294038902635080821427483574600576004153784614003633890808662757187041315882521456469302688309491254944902621545668252719083514396290111429622043081227641717064673478977316875583464365225811773256517845096870473223888095126976230116707928738554117798471195785414451613637714551458126001363722503709047524918968654359491887367987059068268588500922464925782503185277374502005013810394907761453548121289358475625202504369668955694589715257419460427175937746022108784847618703332583856438858827138894206642241755360014524011969847828295516060835108222288075821231714818497375074249757224496722568748806464049394220033401926737410804229824154783704854953699429158078545746933510439149908696366742936160472146536856343924337566913440332798852324933614376481349412656144086984543891591006089196317836326802106665607041257200231019582985428596264686087047478353602026835216109556314412835293552668268200204261167461431599261414904365053696629838832882378647065702087518563810437162919943620932072469777439431801030776064659139893051062217162254231176820223114330950783740724084222159853669601104020582869062746161575139260051350929887097917842410047730236746070935725879390052231937610638799858625149453419309465603809807843431694412906391649500993470310469499184146797686791304900951793825973327170489190595960313383786124192962002741406431015064320601484572936009585301647254051036374127413509065920369404423101278814973414318277864209481290609234896048353103479304683206282568957854804563334974739396610231794539350533905389415793683440585809401096050029981620424304047321721750554874579982685568090258152225218819039011134666121118915311245120213214963839677105621588672254594120343764709057179108984108769279099192904168248564766143169081474325495251938703544111944926430153752527977343692560870186054426049370943866468312859430267548176619696703091414890856292648699201321852600769590881226941218671057852647557431742222660501794561483946084908210036242012442651658572077885234391390803560044819365919616627912537749437076872294764319947409262044825052050738557756258857082835306770123112424181139371724434605799368003661605433865096772530025473742400109216755949452511453975507943418955091187240088643314779206000552882675168063456259696406872232590258554293991771568505041554473726060102067009188872963074091891399069451629805379427952357600523140531250900304219073681153510167163318155790788597210451109735486025201491305853330265546055323232297821947289059759110653113344888939460361508157070037626832642710501106103626291198315212409815908627498747095080089297124541192206899901508656170592104404804089291634399070195592214263562577363721021297167967636057327474927021581446132559164679574676749320870847960190003832662086878659809135697780034357540130261441912490226705276560452381527910959964016444202602081940809467909114468368319654421281014548479809615114985846513245845672865996859683417766108326445109316511992111453446615062126489927675491060921158488723344583719080698747876533739294530895019281030253788947867146103668218120308419811485003122076497926336448520223351820996156091176048634905268385361160415769543103063132773475503500923849272067958968429277883088676878896147038121301752688535538848342506050671999467044153770791710909674923340373610158969887104824712115308334688522671968804310269775470250818451948862826811826532289887560902909897067389650330310321792948162195108372623576423970410457739121327598442659911777499299773432162318906270571666915044742866770066051746530127759495060600124116350579475510198602586749654638628225268638767354714668132137857052648742245501956315239348852917418019318489288657066905741628656042112421442530008849467389940831348260409253075257165300176168209095450555648747057809449189707882511532307343663987220751549989260399090409690274529185992709331724323045186027859612138635594985169573420762076206502925306578872242910554231790896022464007262930271429509115188554091255472152307025924837950557683213514088739704295086856088677251315206911272172223589765281331356445754676703039169096117091287673804218461705054241673054969617124643894470251798187814939021750167674848217282586994619074500117255003212437962997726402886933622280066357648169270582431732943767476277769704415738948477397208258797882714175066589675931407855217021307987525801157624362350112377216109990787239043452409827326344505810942120361874621321728254049844685762681352614379450451775707469442071239314310527945875896777979968731833236483438941745968556435320099677506246524194268568119198916832359698008695770825812666351808057779679578280380885145561176908957113084266950618441858281797450614020016808462850160400395711265082856668956948779941460246498345206727332804024992837585688595858466081698928669028793663018731932442418794576438735983855924459493876969104238417018778970188829076695398491197426984500955246105975699923513139167390416606518380995573087814311889600597907306179330270669344857464289164022675127364428398620928477578453956299746002870493513129910773758321968178851443028795433192410213207607589223032078146039868009328224112510971971185192887510885149710505945887065283882139205044836140335155794883889932782075459429585747696153872715370026959563842422641422956370242494539508257622211232851794697759608282891057609831969002533440139665970881806403173569605856817801859645913739827885478693901512338764760821627787868038905174048014138944034254982405829467746939490307008107371245138256920335038291486104031350131195202615473353030088420596794206181759126518853314199707550426332824334632983535145313860789300084029492184353806053341314686239892487638034452771210958312809672435233683527665153026870115950360239701644359597807620603361217023390114714196447053254196807183366312955802793745469995364926791404477908137339834220370017380878332662233789534993374855591086549968117114974476881239438724347134933102532214495483189924704418050281131799642767035028169953285892794711898598168298298172108792226821572637349965730519707175479179863260848032965776029686549984041319171184098232935180935310197091678342669773668616472194501902307753552214115449541112538807848972435482391434962813400901602694864320301093798595974253680983740553600349901037762192569093872005660572883345141058209452219966321485586865730173145093355165306173240000072020250464374108356001647564397811038901730248362055766918800520074655921747523820218192863622604306778437601544144688692906501960039504132624639805592310438077022965262080675054868036724776007963000019516999537934598896273186989249264476564999489244130800311707321617274519134176275825075281500868398099231480593689701152006890929175517893452619234881813535726616519973949497174569828000444980959365979191114845307724334489871683980616151466574902685130168699404553345781312470021135938220583691161673035614269921588585129262979943398546200589477284159052317943765995909024053161933159554104841525507480185194267363538434576903383523167083547234520538476578293620887483644187961910380641792801996404187271368639631257616339312517946486144567970749694063188670814010353646996621667419279896917204245246829565849502773016321916141988379849634851530067791236820987613756645655872072327533544924365062392028332205429431665929933016283478294998854873260684231350954806005312475212715248261306276329194791401532867052556389338718339735257034636883386931794969760851841677681807550133155755138116055376283481450345459827719480523559163487778716051583302345595317721774204273493634863619693051095866409179441907026209001621680503495580663986797647097205125019160023557239423055819055603630691850249201602336248933076913481418572717215127788789281169146302472829902283210442176785013180161914137054068214378728440032002303768787939773612356743190292021335966686706836957869562741345725905958789034323242600405028938827924635641526294842442212943629891233485244274811434019824426769077566888343119015586126067153584286582614549075664852813396743656727386431838632185696310299306076299327306142245111105969191739678139495162300429647924453848512647842116703388393479873437774806321537206464680653392948984522646948672836258957013794022831412162491134551084941284955296613012429279953067476970379760808689157534392408223289361740679171627179554536684242285372567338878120163456515878923524352667019500400232844345776600275072510018280332450626105324945197537778734562672869126062008729215510026207191883973866688362435056423226083235437391877375658081965595242085060094249400770710546971525527323174389289022257265417478410545586318104564344392415733870451547329062773001265168481844055673492185344509367040023916318337961972822109845230015578756932839801954118097924591101852487242823907705218173814846851717241066747784907582682019880534331505633196529712659020797090917441410605277596064505385212701039960004304515224668864649663284613297820071675981802450910530177478730639541584980975002539693794388606799433845777450871666370246782495675010387437047886022748946141150601794387480189615909025748414677295970271652873613579122604189567571142996072150415772552270031649111607284174346931872248331683844692814642157991112519770342651673209803443568667982001959766257294549271412582752619245096616510930971259313748550533763835044990224055703142681129080489916565902739231518573607601958404066252841286922450495112851054903888912189393243398992828218432577898674424677675747968036391765331730281285668590894541573953236917227221535207574764892401085120286422116296564161380647218062144319508436821406420236519332366495333444637237461011404189353580992358653520957163487091439206932177080203036045768969226894128016244058352294149698982811081603724484803346803815175028950583482103092529462462323627995191105623626872448534666302118243779843018469582746050053145828461056361929871188060449632634364397019686214996523878793423756632876432150898758496153242094259348331930062873800718548258926324745632905379796733069867473399875962807700501245522270304321982082705958232808710054570039462828055046155594033755276362432205323256910594481016322344674997268352584466114773853004222968025660335089617892682410388078276936368578712900051688979329372335309642692838440346805194766266423027357776282465717337063073220579814701809147503833380558328039756659918882549565695861705567433348775862559662182992428152839598343702908836115946971914946481763909989754518036886390945055753540364271880834580352170811351362060641472841420523660998611155044084981624877879828433068713685099023955811602154029363058334160135785754188672130727785344470651124688364312967080247951931388153678620206633686241649116437924636376060546131423712059032621416097297973376721990643350544892035222967887095230680754167207136679582389927456682525482460746586087024749056417458783556849000376202433300544701448778434029303047316636124128010487384171593889382584107939618051381114323285703144460599018679115746425251407505032240614465026305031945645403414173592924643752701298547111398952088432568581609123168048782574278446915764723136324051541541392724629784303717787070397418528320235006721400595897454964542071027585407431182009574010562700020629357579097059353989878943486613227891449296771120386667153889893783173761523326916857209669727737441302974837288928879404872940678903826474986555603501429988209386328299638965193405762426162216279428546346242654023554744258117497743489161593735037715447496437384442109929148212053345616796156118375327644604937889828190408693665641125039213702511490885193426257957092103641724536241835226371960892185275755058627288698592109936168794355565864875619670688776626631656937277059028953273360310059306527943339432852436702527606928821725820675956904873952440951772109028827420091052113871043588076356105988759550779499291949125994886536546296773780534826737429976457196196481417652644614234909041681326614855132363907933357577402887639412029145172492509126770674434613983514035302702160513619884235091517450497843695222314753463312694756442925576001184687544886446939112122815932049112295100816518299627912942898966578412760801216633624862097939679028240465594321919655068099839959484175653007644250336111789460045307346873401331175344970175222071729034281529879930010883948675352870850014864599027139960915828181757372090365861936139271341576424301336129640094211887972354013496196291072615100999411825233157945140528435994952819636794082608585890662757427198013715970595864405429098554674466487160548489016167497941007095366597234694357833094620462310215401077589654361739253922033698648223594632661349846504736619574720523414047174680136568418493622096689943474891942031442402010971748742211533900063287348195815354032207416858289614043497563693443623274197148903429716110748109248907815690765008440256551728147207456972825657938102596697972858862502568006382636280383428040443022714599517411618883786701443712267208157347590916028579870407439324475336315132611976312185212035938886965034013405448250299119164792694341157354573013145042605069609905625745640691274129800969826512220552712405276403019612846080656281385070539129496498897413536960490090374212207901186650819989905010256240749044266620832231729870066030917835736636955755194830352848182292382656660834072958623004637760618459346280142226173008209343891907872532246373725565823232626476960897766031661237858413496327410622456902464326040925214351199223276890372123266921984014452918684310107608176437380336229669836475577334415719541353165714273512601812000183664732643950236258993584006870590305210985931126120327837390932922144464680414196011447987157297767154971991371947770498611350337819552018454860644522696699411324069691398876298063346715452036169782303810840823658571631361448717087677095382504645666563796507804322985255013366885696930698030999676055062586922599635997536148784825495678790253878579435586033910821054888792105795641227338957885914132807471937581656132024655374155165671875525852415027988404520647133722083366833030253271469316757754485384473588278931228771678267257631661903691942209759765047438392163370357002248978899014858024148207539911673026842304680000310709841548555084570711985606601526678547327765373598394716606407733085792653288886683917675987054613469289701253453846287753907826846235155716813822983463276020506647327300627347488122042989066146332463983298938792130762027925840837388712417620141046000126891218696391811043290499278744185823021184249957036022075731521336221576617517147377520823808924596741712768270314360539985978938528471738589413589508439690311955402984046227092811555516150410184921368315014561752717785470695473543102729640043479003033496624625008439461019919915068252109008975740598968467208010215229657932251018012474745958319143798702740265536959947531512913513355544095711270036881371465073963100580349989901896652223646853254158851382824146278493052049451500250638086488154844126096133340713673978929454637702806226465960310257159404181952851487652450567675358238466140768503023393920793656206399358787176813303700928003231094355295413562880409001783128805432983172531469773835212184741776813622916848076829496095211350326368164753711021679959150123845549889358036050731138316145093804002093978604156513142176609817796821409771978277616612982048035227362812297978294732542713591789896710267517995417569232842387173016545118365937167096008278780855171820605626704252483455879475611083014391309461700209758458135879638767859554772686355301471346198716359700127892678055965209135304872767505140861614506427537737983738427496435350623443840387501048364039028345091970400458529859748549074384218952974633825665346198884061556498539410434586310022382982204788776469741845715306306652970310649967245184805661246427417526468763207513197730512958787310540409197942263674920128599857323606297666121183851968330831286019842089952484258785990471766216849013853474839616637983994548420829840710979158083523370663157441263047717514873757898188803393334192625003812150353004891933891067528230137108103195880681131940595593820632391857268272569061548057636965675662039837050406110300947000423520018553514945920375173939221670248768169870938769685948353790315434341745770671872748857266151117310372999647849868713223552055960491927629135503175660870367824847401385554992126416221096184989988368490001706411824093607239779290890950405509691510574909668011042786135983907922239423346615741838591029069208258638112489254284381618045564112010065714268819931951591977168060344531822493432818630880209366517013020361150498831347679302854222072741348422855008448692367116874612677372831596719223570749374809961856544759263193519121727004071864508511199124320775859783079821414947690389746131117810516338353916914771866986513540469738363815174699832070487974067030825883853375589986327782208219128405735523345387823748442888323064845373440427075810665419790261807321314928108468852778848233455429628214255516163186148819865767964003110394165055471673440635797548541767418600884102130427049115881404077047575202110047476483659835269582411588357656248739142366779343632765114199774883768267541738934115001418188569275228688995868712555358261738644458947226146821023816854064435487033648247874127832297644582010549675434441748520293873727333515031953626398842749856197245635252539793130846257659569565679732243275272901832247386877018925450671839458619919701345615033470797167602005503711396633688544495542271564189548644023824205545879395005685369611476094160587215884556262784784147429768482902481216358222903835216438294806349605224061473383387142870993722923749884601385101174008201739485810741176758704419687997213825148711126082249116031994441336395087641403206972291459305888791374519397298089088169223227888850868461184423377792891528863530252224897180332751197000907398748618623350743200076662469371863419927562024981963370473073974101179603763684638011576145254266533724939656256133246620493317844672856383062808100543671485507826994353265964213565695293051232065691450915012700882406387629818609968278330654034719523493909690680082000874807895350367627126432896931058022352150039886902271934688344533433349294815712248362792956942514858549567382060500978133090467295788403440058102017649592053987665998130859936345705075177453706263851995783363749816161516218532853858760567395414110760010551080401286806180045470425692032487213866136676455962584764718907974937887600617766999357592912158752915494427080042216860066862688929487458049707493460848828635668208083975472279543818768495139075391144966938388413238416413354568623826001634158877718876638814841425872649228861034080313815414535588937894163118196957581419976491898160313862091127512268103801531188788966506850359996951069315245334247630911585184246116122475332111078626548287328016295690782339201248686185431563871002789941414463669057747512004139839379631512586541703952739771233260757572768171240150980469204025119012495272935455939130780239818871233593140479765667196446627385196006103817710491956610308832446255576136368268917439967238530883699447785692988532836927922470802083366687003494752465161233582565869660709944213591148353052825906644680252191333549721409269461366565658691610717532893452773694457587039534602397885993405298173833544222088106561114680802292812537045854592730204508199970555828169086349288331824713641195100072813731027880049433867543815675082447809785064648593777439324797689094567372313109337513629677109360725767021828735891936086243948412062523685208023455378755827980637239852719936526416577838071178679451086389461784076102079251227342892137177206964835495104211820022061879003741778342098316392047814125379666164120410069651333409877536629231284241648923231339631725275549177132970050465088642841429868521146203155787831996814321005932861965193434476876101067660259875094863322542145835990242616270786629374950973563237693361040276119528152999935885550010657263903518259254759827453786996023798432349898012815908813996290314665593303639236663422620449334548184600479685159057802710558115343766192495976562943759838980045893588783177231572079230729081903590855305176608452008476632923096075954838245189291106577462956243719088161693759136827643504142776169691467807788005281252490349662318025068466126036467567555816087315876696151054968893801279892425063922637920276585264931135190552468078544462914195586250649607434896192558810069905878215396115848893364589917098799585444866858646215205398332881477602813599721579172000189731730887902550400311885552654506627631713187676030770375157837170798487089947465520946707565813275520837096723631336876894661389925267468853105484730175984792913562731996243784675599571855551211942129673621090302396894785475284816288643157795434362955857834349029783792075372552270131605397954649538454433024115005389602870418196600838109081616395844040819601117058929034696013240694189745492516296621222415116301410719798352941856000071645076490168035380933228134409949414013666275451269317242238544386251319338603365825966294580234663909984129197163568459489631509867041186727041609201021314078619146085131569885202682042711475916839662437047624028587169180671219872048944674679437915456266881983326196475289344947985168911201572917610702298024580759426032220468547347411027972998703777365237797375917633011745245877674557403776253180179916119852987261772565152852712623093936073376982980717720156499745969228605910683163948717062903057361413218788587422417235779954764132070213131512671825503706838677358237883666524409874659223638210356163762763313546412298359101866373268947174365593947984585116755388341265482855834879529961212733079407808092910444771034713052370428442693385704874917074300394230852494664811068345867461442099380403821346636517575373395497593099529615666078643981946140316444499076034375787478276867791518025105791313206898834186898734437829726368877139401759599969423125867749698351742890127123159646488237536370325378699235027239129808594799130365088564779414800640419470555583616875270905573320152006211510725586065530925329402524472584889007658508918259339593213507410876282167631564861169632124440975422093527502883895502953574656936032352088736587180798762438279045773653384033311962149713042954581908492916732499378647651834107603997743037902277748623870891102137051501797388877298665674790433992053838660554716866022467725885103803803609131880841924598385747610903400331936149500974855417312097275092918055151737257170912415488894808375705897287573622285537999652263806713584544431610027955388593082656003355246787418319124775340915452233415880776614350848177388954492462211876216273130263685577249832026190218088891684312207053334294935276421637222967124406426169675983210485131752907210694265847332254170637902046340917803245750450622307603261995479876807890889686014649241228723384685102112562465291556249469868300484848078314415206065832056732395705168647486348464073988102602356026227736636436044617311922607774552677184893737109499453530799311518603922355709043650073270497008161258809602048494348787227652206263391719294981324419587077286910577882433846607341937514567671850749471882568790674461707580307286541147116723409127419290370216998466272505071325113353069239676806475069934940821579499588180949664317603730221889559702065868022728364813195201738412986329470364601142380012705907031977680027039016462513158005430824468212684436027257487845681537473615805839782783913413432859427035681830902630074354694813109114084319560856308008892314685845668428352159222380697021635003945379162208407325726425218610685058154124638770768537099956163421284388378905149338394749713336121556482766172680514266854427305548683139811605095842856461307140768859115959442433577074566781793893306426797398255713235342591966319628144905998493361866433297323415797892338843372059840376535603461533976209419588799763781796424604900451069189774265229588237327315303156037136847447752930580054658696122427979000109047984154533136750481859190773167576418242405227159610144452669881747380388376804332074986992826605560719786644679143962465112386383235700899870642961193266884896263725819920373768805938356143540461406648129047122360252467465929076067946069219387522857176858663951229777291187805356436730200909609302166445411019434681321544753303995169136892569367938300399669616008115504904735922187515183390385275566324888554889530149023452990454394174484054579799986751112751856251542036103901167995330159926363058809573479056525860020714111925914854411747265674859751514431021322549788160236996351753159613927216902749227827061964773682911565564910172154273403326128384939638646285519992467533223354403456878964805698054067750109335965492185940842536029116333088053536920053397521214550820570658369111664674595254718241899686513736544173905151726803959843917475819143499122449960328154044871643417098187046717494295798164517468155068247375141593626917079568317419130506601303645775694627207094651340577453151852812627723769145491187345641207820739062846063152424098955010045532599326259496364750583044585496889502154108561042220227656010300021474140086132762815333661750718285678212309693781841605279264192547452201027617773972389097383987952956275197326066467682388107687888020112918415156325405706710508338269824667152669309138490449768583126546192288629042102793371828833286235122312230332263179286089258358426123308141055920358445392511232844623663812978707476670438213084063384522867023294870533502914760683752770337780736430400037622045678420061496030631862017709335140217049692455961123641619198465248821493883765323282181094240958682935536136750110157035914886168574486037598963304320477352823989446156989079100462936350105891432713255131999213753942993006132302504077338540160542940662420703879110737553268503770892124494546048999079065448970382550940719116468327561496021525965715157189441354857041611684335910464619806372600741214217736295768894568169392912736744088693135133355500870325250505068424018415772351156910954662257735666201280459767726042048365722176785747350632804343453938516221780022751195647020631318220509820609594255340206950711499318681620972848837389203549166533693039066487363451418377054991188183213819481807562321127193315447847042644601703608626521656714192329199537676964010970899062722941524049509135891226476998853413786230429983809186189592648552045806953563864134213615683232322947208464117048181740866858834600663732900818377832046230022323662577335411432382298349533016080164173721224201350241729021252622629182282976044261803976440384232130059027146703755951352420677049744790026610621543091244053480621467243221371632163382130535703440132326812929402497220115188639325149195484321842299702490564928988494284802930590839918750172185244825290932873525469361797737964784478512724996282368907190393484906196117465713794029032470648214204416414335919757694460312722228703837636798648648265040331559627079197821109201095856611084567251198260415317039318216847561942484941177932911239325740923543603273886251532667155780613017242075070645134988794363613112824623765063196305274413141255097069945327168526488775231824055538627325978225691716116035557583897235728220686194109343429123234881880706481096480837883281879423710454360406234519732520972689006524424288320477298758697427867827083022689468133148663094164166016754062362658381058690659089128948681546765411112719007258002075592913677175002786812321549257015932758881506643057094219797467760369063146443494821253151982871000428210257825876358200646167194802275651731590201629879045948016243452508973855269036787053691218039156810191956299589298647066289684208951574504683684416395514723778676270730901747792667116412856556143549501779049598721202228337792037651286995009847703084778083722097436046973464719304805022984765983280060166262440735457948908377564151769805758948269477449858382329220394224065200692618788698723886557520687719247244466965176159997171612744230907507679788625621173669525893358956604624828956171803176466615057006205864863546034244097908825909481461573540763342327068413110097571370136404615796133476293992131956493148796183881313243989613799337821311939562995153630826087274068897571838593236293750667833570955022970295962176157514807159898021478917240240196825831578338778473591364988565882017905820016662904941556582431970433841348509612528459865965152552004591984400689521707573925340022360775948337476178409623500400220534571284359790714334963408802215368082623720612734666137000022909685123288437059709304043918894390800705268935968933294164237757146931488622101753947843204106632816629145303219190802788131883218926101323114061279888176896937137178065149498615284848884699376590248956953708613489627254357437705553614993723961108848864291887865037083923562893309651691196582772619331984242189185728224585257551301542658445479688409617127204839797806321433538828103649026582738140983856276298013340823982690564110459175662691140840783010862152947310369778673686012052334816406800747602434432272851283036894420191631911008642812811212764226950158824941881374418048194081655128685879413339016037347015491733645507353595921513606029757478476269277730453054896208243917451137761461736929903843588236975187817992017524385195077546394783681666578640858401192354614282653941107490904047773131312552705277314842907604508505625723454354250766256298350989781097992524675553746948195159683897613314036830068024831719169799108835883315669222419059851528384234333301535870310842638178700785500416894664731165103751257875156392795501811241261155072556279373635860715746829918551299619714615679226850606621881796911207249692156861748024526918608283241776627593681624119069990077743877904223940063343142490795899886037912139453523263287854677703483878902543077690421698652548337458880194502403226811902583370188887381634576401479246138567668646292943025016576315929230557772475412518284130275626134092241944191555639653704504899413340631896122929182253823371934519112219688864270742066677399407660732786709780304753939161026407833860680296008105126655195945391882528242192635798934485996977341980037916926103097961862722576636045792586348680462795689627272562139486029236883826743480103862406949303472469774689897696510421689257208090789882343563542026645728289288427757187370883181553701612267004386224039283889982274170749119553977066604516833965139091654998597097446375193129042286972063407984257995163781335912531996225445368944807963239501056301345829015939885055005777784718651961658099870111043346785704134403480965341212732602950541178013790929723536004222844141325716992521545034807433179683986379944450674346968523957532902751469811324739843490498823397825537518633961638230656396413182119221026150440666405779054919219784926234262373371446690127666159317134425807264298199603289277904518248905752900051428824244785686217865850919399651324203832633338197188958764511559882169200486011566474202832793094917449453617469583802995231622376114706885995309592085665880651807095907156303019368058105764482243053466477120480324913604900849039760630659072752617295754906757188409510607219689090441977770524766205279730899888347011013150879509102443654235813127709911127795980405948864603181051559362116660869828799225259628194115523994457245641010417322336814015591315497479073410065594339736036195427041710160826791600228508897450964710518675116476078435292559064026824787652851003520221141028904426913602865851191434670943303899472487319866281625436836531607542503046342796836900542318274159661537351051033621323530537259518695222626117891905712673733657936889455802279951927509616568520297545898480166122271889833764312307220576660993023537478245079981981613127567341878519789052539423787131347485772476319577289384563069255728163863975234852101106252514427999765667037059403032442826585524241524643990006551825673361366827224742117902605251242001783813246049824881113014689496315884403113912931324129107411893241497225523000763894965015714141400384691801539719915332106702450955557936433322218656540857367906210021167079870860049154216954937345597677478101193425861110560395528774234720598855526630362192708461852993194018394961129447568791641260471672747171744910708067843050199027260057752202698923823219840925091318050836786459551215322025076938536748352666098363207551397551915269672262968976355530561388834421547717746783473467365443345273870577190108474346187834331729173021929342024006706215800898068147300197045778134458394199071476026033964523294427466431903153622690565839971615710747657351931098806249594435631023008291894360752938171419296104292380059562275330998565581082881025499893188399743110038481085585675383250274088972832975096457050167691130805780417015562272168914830439347485356857928822779281553981126099963143286514448028701618290163697031429526055269798165616723060480261361312239843134191635341234894921233857415456527514515743240351715226727236672389910418910911475789162181470641687462124496277788839576420233413189235905894254771317028033279562742236692579921090902426208798595408220037223845714274196860725975864388116787115709471384005694011196445893952759528647009498445656902995640942617972243204528954451590223789221649014154444901401867659400877691703250896047520192292590783760294815697677809985559500778240326670397843932580664688319172585153378882900299328871157130361924756236477379066447547125267624875910003265780648344185747994739778645996299306085063103410410112444370277572378775029570629628816047803629571118341818750652896216400880057744458405623570096717379866836656394271152395425841241071601515776932638036603637830082733627370863191932654033482248172679963962488582683066552998775280610224359704500430846346698428761471760034325150540597562225552945406969331892284348684911763430459904583152448047953182912348887869702223984274411170648988077956347998663430061947871681069835414743480172903478015604215890730292719283431769891268881310332275175557337341614299587015513796212384730896681317714033915952359994830580366114869915890307857394300309329916020257096098889630911157481658204528725532551191216116591823133452146897760226405614190196989147360111312350245012344019713173638236742165892716833087269496869528926508214402294762090209511520635633359090570199389076708862405486180890664689380646935114602610606183226509492410653376479544987864949059999884631432635155185487693870992216897855255699627568985112096712882568152401020441772327726844796628692801350490821419706788653397840447842197112358198433924492360271696659430133851738324541329124352890937312042628154713448729885040900585281229332142033356986101781434756810510025561847623053553304398115029925391516637487121618189059216332200175336977727764596199185489439942742892373954275994578826861517962906841468700012241801983802152040790444886854938329734335324307319017904551124700655482239066475780842759945508485293711129601748895250614909294740808339040483112234378678862247352046668344433883663452045094373008470418016902010130943835711254868555746917553187755250324943998891412092765790892900825862620018941790086034663564997045590325829111955810394143337365405690777571200812148183284030957463247900297256960692889455749028609839842855646668815158743727418002634555837154667642796017495706823108037539196054019591656941391884965466917224812836071261740787516528984070192062525484465973008891616371071469392730087862753166230432848047147599206303176060862656764712782355531724626277306782064429981452502513983483965952459783803510667601640023404011918216191657459892028487196115103104815689209152016264559950500125085599461378490526359497227718066850360797622816825055446078032670911706613052830759156635982304092115988777837996138066152095299021778761858912060136167361524117872321489302169653162604233484281659616350604378035350426424261918634263471179514489295039085542594655691958730689809288884588108792464788318893712488575325584712988742857798269505753284537103451236104741453903887759585840221025267925590327178843126268662693588900941835061641155339084840102166513026453372168638714754630097981250973592889249329849002001480589198236805748478944932291102686955807735861736379098063703487254287804872082869327898441645288914530741873787288947833450476866284904071474427312243412091553664127319977457980131414280474215150563269584795273755873101203394784607768134510627189570075388832646490496426438737218658072011349096878075015768778954977170819081891421149993565350967881434435591077003275389675350064784896199953725902445780640846263387133513838280474197393113818178241704116625688344713755615330881583575203950599550771606367668621204900819124882664955451298164595040552799140137817015825585643278547380716170143689652587950295308720678794252306424136135071042564151494676841113338361293558921032903743499063238415809087436146302070027143994790596787480734460073637284332577978532337435445527638960992732445990848119016704908828661632304393948096054113166511367175667832607957650493877524122851031196395492589033356161225712440858706516383615601604181346360404537297182884842490507440611518329738257608166698012220653358245890165154044316061906560770274143691450584930551046217614109384445859949820626974147193696606249959326381284888475672184404581449267194106513152622204244090940578291959677905528104982820231483705633137033650159934481762537005184633217169217838357764106098384077107364730026299975434803485595145575303563146742781782052657220415997811371632661249296125413016855081795540065887440670040743088997969947353945271218730961156330744879060176302542679047349258829157346270041066654044561175676376661630944340209588814599639934566781154303358690087651372522076189373843129806129672699216199598532876148943593387549955517900171533454976663245334022809741450377416357046440126695181254910893563626493652242075098276965619563380256587744148913908927423867152625333209987841665519155819577987813691943213079089519757317865299953485760299484297751278212257252855957244133552580994507886974930170510397950069970549144086022254618638175022925475073990368090012214603860078437717385344950022486058173465450745511965815816146451869828092305471504028968454519871626655445823772274171650384548152848901355160360932925073868621122470188850535527350209844060423616525575463585215665753582347062736223108920379965728458575198219396724709303875808035810118982411904844755607113437244451390249563877414152221821487879875039117855180356675556321007021286722064021425564047112973168631299591193983711737888371818994582495006125061310654931903539357156104485066915006615669318855806088948075428712754303240469756850827092802538721305097983764371309979629780190535671651792958998888322933063899333181131772037093640414835707856223773346482145842253452239977415746799540380192118298837842474114964971414255815444811860082273775816758029021151691507027856609193563951779128059360642573229490833627543087462712972108564020596532122780820155875053223027195764612851816090209677450370288417465594360698675241277236660406068352751535682974153652870496207932586142245291870890409687038921492122546145871610245348883960091256360371375829278067354748050968886012325447364810702953159818157525123380231830401113445179073813362126186211555680114349132997219253490811496463337030059119896792481727975657372406020480928709840541148916494436438516029705901799998389935482358385349898191680009315360862209872350500449510659840514403723131141226634777500459898573120429909583071823711871329091654983218831950970221124822849377420017320800806107472008855006034974243331433641130804686089753504295841390651998477537710401358460069271485890970521089261097509577930208783549810182023392487522878183072507140727856595306996524401326214345485566158198813187744515860003547059392822899799700764268699398713166548685620340681782280633094294165783946188213666534705126324653560047668484600104465227387047120152346401791457541575591292836646101161508246507665838671840181838396692308314175691449697968849933941844960470043120797052077191522331162990179539261766822526926451892069212679494592105144091691270567831766919706382265350396933768891961769874977393994804322140053008023726270494294437607101418277954419692867032095147167811762224209252744287903130427438297500972042511388539563032971778773720571103429815170943995010851280411306710357329661310234840971245700874975668144488285295503438240325785750864964867495575388218812373390833220295542544872692464271439193154463351092779491583127596784463943970296662095380781530470434247528184022139889216552037408316604009085183631627168911029787233206235080208749999653762546928573675838810481518403765315351941961628547251728557992695432684262208729681009512706192865472262877797096776631990490661439520516618503860316237914934828073674319839393694002939823533606001315566593101837844002840591599582156011091311559631238534123501923641117576521019937588795349788378678201711103338856234389656875218866512357326559282031144188698135247629892073320168288799717092534203674834945474636827378289533886730851817099056535517478487742717460080118919757046008921507799545672661071737999670754494177023466582709066344872090336203614119817374887429211255627721093482376789972660999858253347951748713766021318685686117811157562638234627267127744797992936230093879196888812395107395788387083514514189032229177903656580719681267337791364463909415172432244795495658162523486013148864744373856930888872090415344775053971723803877850536098163989758545993708579138756413580046897065708131946230527397390389931936348728782163958996504797147941636394814712721034999809991907916485566368168107241876177642706471352422852475345547770021909343588250952294818779997335495534790192775040659431769413528189908739912822089897199665629702927155831571936823510037645600680848718290830201110124907461968965544275574403094521521578450457258537294012071584551794487518873090616165804731246985777196570110220956050322790304906717221151005891875853898512559679193094204852275197837229303016177780140145193219860848575266095030491575817708507014462377919729803547551700512451060791857317848975056845765206100755818255516708200183915010548986662395980979936793313740035187625800423639406621879506606100366524920398679631686219710023161977205302555126966421883521069476605105348037086790322906673200741963735369736240271859912427562151651091304205507751909612369693321349513073746004856171070312433595308014875243973550257866145200833089249284738564220272830148042259491413228550381624181313806615632259154798010316413676558359039635835375328688716974866230139388845151830249886762473511657729813672373418226730056562359914574186615980040751544506692435394252557620230901349881898443889908192247029318477440453488177983853141318198103417594531270448808895318020429090065614587001808509550046321260173674558066556171680154051887644153682053237687179169429268808733940131291166373407591359656349135074435796625341527026837524194696453262531349388477229733617859473126017964480139395105087111725612214541790204386669721652045473576540906512130700739082920367736941971983968995708549484501359535572805341139417972659628591889493716400994977173335326214626324966276578113307322637872726427224891719742501957189860940322141811205228932966680969105516076869994985785735043013990311113731338299487678561043983681764639569500150254533635531254904446476887700354039840676607083037676170266075672310973195949313119270018893103423739397262756967582852476982472314176511915509941619300883758719736532834202998889271652399809968652963506808417346787118610696121020060549135895545474593078765818165154377327141923616314191373770835783032313570340131503021079589186717553599123381368644642965164199363478426607327637786117721026875577772833304915481107392117217967398813013185787064050413620114198748410748134244995532382877330611627455433881248489180243227487569686439683285887486489571480258141511854562158370723711922226290123844328771161519884788760712298874492131534359380669410302735569905625958359078894141971858343808184904233979647336269290886471591780624541602145229852088424175665214537895109065962537436477042134612727745704301004908108016703551523774381807482368667119250653967911147106312455849162427121588078444150380139543144565827108337372439787672536595513679735989112834523432052818502857532300838264313748794193113313835726628568020120459000296379701087116969704887529038554657008828775109520173871683457502236851349393946459033060368299973673066208596759828012066335764986135219721562380130559017520055213687596178924695176127958193327773988954051034527079987999048364009924775240984167168852044122517744152774031693589116262022064939137098122286878793440401846726656479148491790621420178209669979135650701517701395185368744118742589301063609460123001066194073093388304537230273065492413496771240126164975145747042536960048121969779899703055122358321059551083486739097223893042634774533835954983031630944374941407852001746369357979617957332439666857747387847195941860337363097052891374132512274113547776471026821811958065695083424276436422108782225903237832884294567910285836619112718868831787096546404466659160005927514063232355664783268359699241387927913017714827609580838748637075127717371120250682622719994580813898768772250289209410155107204506173619603523318374704171188994288078332996424487109190242661824560111352829368120262781936101793999144468739615780171829681563797734251614797391499537464194131727570427019010627669716128382005296547878504492962245310861589405386345337946836237662930921504050494407214434834099431783089712183905441977212334298786725793468633817439796891949882282214101588077104049843822227098789775754599136399226288138790193009569269692065116374796914644220833724933468821345084539338557216673398640942879025170709673101814512546522685784739268309639833049498006713330108494803080594041433938099032317374565422333334280188071828766587027873040345663994744263096560186484767191808539741247336100104886482188294626225569553965170774217829485437698051010124226301917369277382174171340948316496708933014206784280312512470667188200131913261693744522989069098041792286968034754526566052019361982030402587614009849366763833749505475600669691337080981370544074415381104585564455046534350712675484747700282689579421773039119943379776216588617745569141773716577619396411433836349549789563610567232847269244265620194608957630169532807922295198788312422185363368714419451332733986123004066958695393871019252251572527869966588093961588817856862699166546315857966893100100596805528706488211821273055797848167638221470849477621676821240212193309043766741250076491471908796759703322288721933146286136961631364062874028995228189817601227728515890276689555332028861861381007960242233560948700517006060597925031122520305472455401929329623337893507302237624436866175396860482393370164277861999612413896837330995884809356342990521434707090314011621851250215332861397979422083494938566789224222040247790202029414281007013110881824066091333235973077285012174485794081522578912813305048825518058819431427419913316472449377444120077259624326463541129127875621683893621221378992813154593772707993136268481771877392271305612381364833749798460336483488664093321356646312252055700774573628910080453643181619130215530963998629366624498342113651181441730442187866084213632422679079042488743594410547602191776060960269379125596298041118935750059222768017384641358927950321055653443570579892314871362826883375313968749897854488909655690491106820662211627895232658342462341252979971001418761982736122466342495660350404407316108648117535869010507436908083071861181219105618326772520796684141445238393494981597824111982528199457465706592992752237720357729729476403563251654057960243589149899330420005393968509175566274714918747792209256997384443955742438325248222139777715466163936411084099030476454689697116588256701488675488987828905633503137402745843793905810763451508231542018353350922039053303346951978624481900994762029796765918077976305520208092376065463990453581629511773525535417060166165710938320397906095068247332739119682817582795391330398256388631284248391034931454151740181074495873942120221816903425708545211114133578127522100286902228730096087465808367391851759864703751010660357192368921530987885718311563056920025636410055901905053202626090747435658695081170341560726925772774812342405203483407399922721645262735201940710342166250511825206329070468679466249715894349796391488282236998140860525875305640694772669912628624913556544675632271864845435528757412199843869503803950468717448192042251882857359781092462030455109664096446370228372228324400414708547704022907384480096069355135641429989246991493117566912967598928683861864978057743686572275090510611009025090944035624139473767948290009143326588695807382447675383859810056674219604532089870839522339210478112603730841125287033183657908026356105284766504268354394941893281569818341065964834806161666661183191431393903939562722799009838991911922636453383741036617453390847744249864303731258345112325763953916732251629274799538336593427609842883569885822440302743382451796905985761339588673668696169347131816993574274924007675398874732657330605708998448926859393541455623932088262792569039387507556443058856804362354135879478505279536110149739949445970589007355345797442751611281149399283931603074164367068383976527524763576883451729292246833055678083158546441685161994950787365373253166504530443087917973219792277259692541194195021635703217538820907498141582621168697157180121321354356216954856240060985985287964974204852712063709292404610687826934531650669414026709359969021140456122350064827382151534002137672296901604861877324039208544641378553770767073732669864232625478789227222125699471158585212463289166418498656324915378703158618231166016386286647968077224434414545454524562779741056041038525747969570034649799220620737749918946019149195543564030300440823243633819055526612962873609627857088627294698571563053620209492757664092429207503267704236577864740267425867893746115852219872267193165846445078399591989475757097041579734122050290920308873325706050417207181710221196322407222398871337694585929916663573841617501257904960280978421599303087763056787205467224751433349904557612191804973775295252876459656848117084992777137017269131425804210196514320416993150401116007853147785273664750937475151335352408966821238240427471095559077412688900410109590046812721155280193885042409326214548073870924525359031523074462052087701266528614017833028778177578206066383909862979896830525423961074011669417487253573101963570127679208327265593409119368185991997704848039185143652116178135800086012620879648338511950358560367391269230484997870619484751300979779573201417361148805931651160025682937280937010196405911219722638278700903474588718586629894296889719514565228989393372060351805828621579368177465202697104616812153418670935658031791424213763143481742166317680156513593080991292800545992180692327293789393304347730670108552200553126310673021055996772161567380525918578685010586211256762699267245980624570501388769827161479908924598467057830319766893417870849250048087410151978577451119892053674074138198525647070407587224770902215249312741863190175319327867629723775336020273356523720235025310646216762356309394169793448697608725430090830983074213777320127740843586619184825189885474019129816267637036931407602022564194591912042043589088584638767167916335351565203125135714276582217664481978755111609927061207920460628746980331009691280625280512127461021188556586872125517563436318540231968590973602085970833823861839987676484884055329712709265383298204907575805007911069158605778718234815332906287591291173608635716083936331803517339717716150033075264579315596939971875898490596551025544091495025987462079349703445487177512083444315893283171931486970759553189538991616355687038753516952092924249024023430286304762994819376635766360817241681630593872768714315206093002202766969745181703458874189161381568763687085832844378440016598368412146976625383078799370448836577080039029689990200537274990576186055176194827078769774732836848430457537912376816075511558557923170294104941179677499408904091182574748826712378882151951035751393740172250982578938499055116613707447889454911103396119454801299835016160996876391037934535935858553083171399640550246400808251178050212482837825504606831049697346713546114276898620401986180473385662073797440579934287589688681512269804173718236494706177030315633881064840148176556438408584010258147797239884053735850831847054363437596692320165259162742019679103844534272838952824146380728881765946997053578324986218803190781010681678127942772538468362103570891527390667914993555572342711895058346858292789468671517602673650004037639193140755042472278136364607764601842846579960464874915552536095925877841087516394554644289609142681079309586004858291942595741560820737205518851663935131251853568611676151613389089702392413908418981307070770968472491832097410004945353743389117662591346150184752106648747162269426560485512243919905121224405008961076869969460315638405422249628901071893448649815014136919807958972402411171826284788981011202272105876325545942328145474873968941568486856995933322354880269955622960284279976139836037073090020777709933171378623055214546518049495703983900743374891487547499244078250868497681236882654698750364214146987816561211235122740994457927052458030221136984619246201952402984245185859288393315488172094557981702169355009890232340689517121237308351919179105167136737353742884655767187062395091700019575308228063868822121932594820120553980895297653359224454015657370265758394147751687538324190399851362480581687107564476236066265346440131378942281500189305726605930332364406112530201408705870931575421793948989375267452110595090595295220787522862465877886605324412725553942377602414609375362830907872120127098290358769331098710528547225850764559351059693598086880099022306347312723253204626103560941733762541236472767519342312417506164110604407508772474985145804820645298205610506812565187770977666487090414851635412440462939105234894343410348873154625162726742602195793600059336307636779305929895400248619174935713916614675566011221341397112039424559059654589960190885292235029574290359450606241131329730005162313797908688937580828506793415076989447290523551384272749179866635633083657586209436301716648409669909369020231193449559478619705667982809344691790280578181048013168706862863513213095594233837999588343696649292295730188414600030614406801382519589302554363082308730106559968753003800066162413332564518800182645090020769039964193559928423559927790737993510498590813966162425039505781191880561350103477199514647651417838944537433094329002854164879027026274685487545151043413077230405982881201315624170194539479627650723900577562153064414865039631903139496780993100675359501251288511130719511160273037907256465785637760392963359175006978442189684938946091648269869681161559632382740438871054435893565262820258609574402062540191594891853583547534313316452688895099166551108083127078393926157763912810152420030487395779213180221337184470703284241335652580639728028924629163623254387205817492994281333891923099227550540233069950805092921058242072733824537990910757944835028854542284019780875895467378655193057447969674993602096749394391901853522845028420661077936745168504578898099465102107899021625636532919678800704996072453925978713313204799269878405035294572120331887438191517825321322078345479655261379175504912555508806855446470763841461038842388679513457895101894170999169692622606181473018376951817144873498699093682572803288226588555836339485359740942665384375355048392216587137017468931880644423068236469155944094563174980079271283330828842259262156215464274609892141062513635577546227877371164669863450716682914147337909800904204443200061436452627092117963661781105255989950972341037796521904326476017966319854310540031015234653211194866764480876245221942678472541693609489712928665659061673654474088750276441405467033701384755665269172918972877756961038816549028060344624141975071466635084683227408916847956256597834632968999962443363891104579672053945622825210158487919979638890569758260220001671394260812365886575092591800997261813040050932467242991553480700207306960340353737495147256899232694749160289195855298222263239834034737957949942225556918157169751437024444582098476546041640147257300279176813130651833733056097722528728444631652474603838959091922382713892099524831085633369529801296476909302422193599802088182929613398809013282011327356051401574735637543870648787239150731386211960701676963800951837598505270582258016797467064878347698025744753410231568201622020722571811279098231900322132614484022330296768965983108359648419490165406563889494537505678007875723138742555193037217607734714045091428822483356870710939492435412139553748166860054175045156150624311426822173498301502066160854971236246975497993510178416082209044572305772288162577090578603437310568206622099964539968938744685741916045611240683282584087153441621527978818557772018708532534399270467724629076002933989585786244681941164537768039657994783120549985270887748673822932229997558485322887947017008941335479646672194712597676416361754092730871113336126113878548728070715084601526094552592112656659060588408499247142063252610127513631094959142440375128936968792325264973482087390958014831181680327806564859353131395835267317556503325097603724287230016798033385192579938418051018815363029980186886393163844981641178593446282802393995587086668873626095993478038920336382677216851508648344907330326863060941021262385218284923139865393622713262614487199987173759877753988164448729574229367910439973943323042385436857518528953060053949293914159641255227617028607715332391487546415166093957445603477164952876833956012851146731042455991661218028068990010171972932172364502094774763403977815018116573473810110012185834362170192915192755261746041205473292589270892083061467788842434411404359291473556845400458349420544926202935363597186557583292563166269628332868706024080040937535836364373845813457436611655394920571799192110361893838220429173454157536657753559053623400690610711111886066793242803559336902868285574946295490018028838713182078101580392213179013401948501813487884389829037394526865967782912285315654205328231439957572286673613726856471099880360956435506371681292849211623885861959936411634549033639935233030001967470044284724563733881456733851598880968543614896542874517790184156640728352867626482460534585152298642869817764317729290969981666451564413835559319124361903758247029133375596049550773981197308364744113911073256140958614399741176438578443863348615515314833374104703556363930024362407254120597710455799548703952883636519081991095764728789397126663169503169353278726948243871142127028048962144799098238907044778711531009492942258536088430350649871683595121610515985402946338227809982574968741413638769058923676565422080181561840984553426042261017326011201235864140247908798542307817472719941414659327689629978126302165596646547079061500461755225152851207332580549144753792969911088594136750472557090740530122695824923360480836494917202548641257315052965576337596865982401952983519273064641580578185649127017835917370184461090334528976036319246263545854649807225576121700849903089751938999904697500338740222215813710877475274810620212382752086382348608709027584925965168734487238364666360812313871467071675763049619002710353617392840988175500017939392662226367922658354586821488903330067511830265978818301042897315941366272985400285472627777483633593065028446773678788604250070955672866518338910079768681225848577818719497084719227427504230146269937026228115538283241617299621447066132814503286575711723485790309941841956202435152860613344839028729944555316165375643715739008419325505138835811954221032631531277149132472384566905639958448388725869885562722185758021453262205283086688791313583200822507858430699924153116141847271615831692059255237367602163939547982064785684697859163534471888140397650126934023901023867220022661339023779772961456858966551407587338808319312165852006784097143527676821524057760160009840183557344345198924760011832529444543354312910842495661824662693725238016159516015952806438422813600641336317806777915741810022077977743377744456269241891815338160531318640384856003965803512318781858679948397292801868176162149079757012830075414686647516637574777232400574765337764594445489053368371822467769431028340767526480952621264635478362705956554264143942254317893095802722938829817909169849514040200195676117921039536054433808389588063553961151602018652323903917333927817741925476646635252619179232666088485069124352697459822174979008356503635155089220098354056016793315368342587634588461257988698007139924848535392537027828212246237139193724171321682772233827528038484318549995203389110277797458083882541085999365554254864354730423495567027342827977990589792841959667282556073178761157819217510405426104010787684422430699240581738672799883248962782139068824958291962839085426623674236477767813096385087516014897411845467308024407287376712033556807823193776695770467652379000972058761679665253028359795196611462028405382415863891907395514037550222901957266275402081151843335265958506921538759040080809407369359005089300544476461143500771607476423843498578330221150813706972533122597696432939001403702829427689877609862912538724520624927921931482770682675120196295645054254009058649061321544157973336633600355109575754462872295390815744158892076181771081394436047705669442521052985228865912558470423553633624353864590718985602200865726208644097014773594883058208902125037832583374905602550994290718997007765545731053244157820810778250321567091994153938320741503897589065643793679317363760835743487938362972512212063833079873192876056436260122481581534249401023251934769682384199386598362927604777807331360621713987270531207448289187361540795015236917493872646690517768503722077075633718667226289359980721586063673598037574275960908557678570383766775011197911180810959594434274257490599563403161445281485577081127701652936180696135221751140083568826820005410749865469983862304007299859966596703865577976614878292442052799933661588211112281910322721340804500319245151972378849272428309975612849936318574740546688922616073113904086092715002088002291531789671702653770085720523873315163455808828570329709343254151370642622278256803770282025209413621501225905403695200498505877933109207889212053043489957064982956383593345324494655799848600038252678385209894286699534280568839370884113574106022927057710930571198437283133113552176960210249219607750413928783337123959466486912752314774671756412114236299364395977894977191160660737269192642698922359611131269732282665447645778325302135487279923102071436070621111947782982120927572708113685430092621624505243027801988169767067708722079537403306400082852610140163674101786605394319857434551398789633283645402797286766043761475141866901180760453377763898230541032366338400313567954476455241111662023095137411027265036406326925230874524370805525621009394096923479181767352077456749648112110396451818148992656000486866373099211234060036383192592309792714875766284192042354337361372174098637428686444831791726302059969367171363165345017488189020068595237290578471938683077168625029317412131571702646637105964633864951589593396418864813272710340801142254516827071864117204012844412451405075485785623841024415750406423531390001153717811055023428523982532625017552350065467161870466039627835546727259074305987591551137479726121908012523928866721209128827412234821487154837221708136532589548166213164036573193017686592188623359887773844620706874659695890865625709259419627278909117304910001972605633673769492951261640745324993312791426387893969136158036238074362758639814835327793033288738411238169725966268573361930688528783831300434321218227040532975015827168214457732491851493292298431679048485864381510903123788910768956573251861025204336171235729069553303224172616186512092161467848450715312349511465261959872520752609178120958034055967478752938522365476981999183537768351264891281752662248761411746086384966817974087850996302758813511711764255343554731899904379655299161032777890178603349794763090969733573809669306190194148984156466280082619926051490645962797969588393093877660459922693996140465096774811583890923059246666695773968644157986580124649412690271949323531171726707784634763176280565313244420217947146538902257789086677358038252930377192960117336613873378461728164983588997369022124207536484625921191025421224674468207387772932247791842218594461615998257483417158005175613863599417499873724220865759828539306964706506784266715783593551286482907357357808549408404894462492819594223500635721252603675925735633676879928136763901024946864442977478736780454116389810478091271177895257018509473396749535912095371478862040373673762538906198104427783512904446522499542756329035707794604195846114841675662733284590170922875853233307047188143367933947842278670901769212753788005474067752123229239135948772498803205433973570596235267434262535153766960654288466944558689615115675489426555617138383525481424148192566826768398196553021526802238244928390657066602516920084632742640965674201705828596110629079140573641363745987912734086375081463386497667587046350836723426417425296734956107535682735531378478091995455961404518524162327131485933377969320298533014294874800983065331745597492566788089477038708836288554369406816551641361205388277773643491610454239184880219541100474251495982901765185592508474135903885372328767543622324518938907147838559242860263954824742016526397057690044542630288646868218203693767752026974243603890059278687266861638929460484019746611726427318227548928492215974715230199049530106223630040440761478337143034200340243338704023614885896011523154561463747510061253708043155435028365022299825083213759263921516958073692451851600234239266920421967974941743849283123571277091304465591167143400674246749036241458532953677439373461475060081783961250946046005738958819467436827471209683876589292097350050135537279225929530836042797553345813986904413849818113780809366987934626926486044578717699523292051550334140034339676539873024060921787547423359418783968002758851484044599591040934304216501442236632696309147477498031511527739260986296264155626881682771545659648924588332660119055029254861647494911313157875408340236670320767055234186463503781156892425695569304401014757509622896490655898082280888113764784748323333142729411487160891963821454909183809770607043033432691958472219562536311817334072798197178980802177289931236527474945043536292255510519656059644113577211985069926746884182550652783349931561783792113741739006175525933660933115992692323487992123745269282591234519307796934160020325718101662412677862410055205191745632044012252119411092054597824489640984854558713787522136487119698724127851595378971566679532716458282476225756979101848330545133868486541776315767934915148848423636244209055042978079658553606027959383176692569153421588518523733722101349296065890047883581072500319567167582750487577978503926956640542064304612624388190816516634112544384733884190410424774165766039852779670090467778079319365934667011579415315659889646813638154294866318297333482065886116777840078692054880206623226571433433006951737722635158980145871364231366845954694754180415591286341059335832133191455021448686592510871274395847181212981732996063908389581447463880589467916809378430943839191907922709409007174438887701179895541826206486757017431437783427626759103567260930678174323985737792327360246254937452589656821327649033843708558207767069452928326946587759565969556597560822492004507231342202338355134155475680675004750667552789752747000018588862841154170941999308637744233168589773324725041737005984508661989270688660593771210128240379220578875971695443108393255016520307131569101987050524833432380647915274942687966897719346955051519726007088069991217367175571452158942324492592200610746265480072761815966122459692138055879782541663707657575566996559134694001957023512554383130316588280998585490857526770053578327696392698045631893737231967798044858377834614868822508626509807637418219272710684387367467210156717663098051319639204398277303545744971712760407962032867102624396917001022587701168282749520757293777931578377781670074055499318380271741982797623232254311990140775934495037435745004333596066002035800704498100633898868117751933482747422857802890013180173232204405294644625290414568441283912951449780212181865636021995399423517425300239048295795403855747975014721140119380310963739215104765589332798103456706462532741419320463942500298788443200622830170647496971503834705919740457909882417359476921106681567072037656908390080051789095952254754036728331292430157044633738813421311628267533213410745904452195673088567183877126985087441357608257146252751264245202428183610792593785410880401799291322875064882601611161334643652136749402117040581265023405219831207325490552218064466202389783540485677352350793768703820831173895377167355138965920980588146484719149930189139917930056596073435184002369194663246935310827184898766950689956540867495222581216258828174263853785577014739699039033809541506115214632216693568171592468033738159735462295993968527682702847900575057267517350991030580990807122261146356644880447144148202704969680506932836362730823453498405882189226641380078065942712769147657630862973111295188325223866762434770867395263533097695768259523879604102742073258809850057193959777707085117650361261290774850269606727299126098099509051604668157911172328219429002978754381134452220125347205266799033089406113436162223492417832659656289724019203783304845484149445586560637613568237905228867678203086246996923685155883859352414266109184674428259121868196270462736159905130896531231126409045535070647781666595827537853979715981622407021823570191787997731641784819662379217651338637794193896501800539640192069698902752343219285209953789719228911043554848367424954602724983617584385568642780732788431053083872388630419418942366982292069721602083790482441121970568384565770217336391289285040363592444370998422911298543185225349110890546658023210570961535856591080008387150631416219003550650951903033393816413342436688953199529533946563922601372388588585226516548110043574281916054661582769387897444590293899641488362316715150452833594285223393487381835764467902593492401656068154909441080126354738038718335400059328628013127899254539301794249407355841270016324279891693105262864105301882825056672477143095592555527188924802307696220456892490539027948262888252069806191840336981232630562754092086150725796351777027985014031896652074641478827712356721924379573398043845197234679412026429409691699294157728024724165199580884324168440685484876543387601171217086458323833955102670648910810027503722956580401973455390675078425314011511665917559065392453369234961082375508433109311759535384310288620105533629775077803521602491561023996557608549043733029385860350032443546768731381447913050624168478164634874378097976000243408268368008428333797453838993338529107821712036561255745725909684090558427910304664792457167059052222504691000332823350848702081467881708879175576868544498655886779602035936016742280436111873736123166790200157500944914523803214760082459460505828322201508391946002816013904098668321923841999599188369724044799827735532406813656512302703120056396990809988666262466457408405430831577573250333946587069586046134006762056229601854551516349953467008485803840151836038979952382301101560261045543876560382635919458950997358445177385231831295909586021391796459109942758949049978203951151091038392736645799753359674384632442642278130036344801018366084854891822131137135797559229349750857026364758957326775556134001698454093258012345045755122448723354255145877245525074303181440787247305444279205695083488630245224970567909527891685865044484150301760303400499611223917244740226811691675885697846294865112113210156744149991861999457059733397572289298911691563016741086250234734937839397829455001676579212263636322582342789918207969206590326787457473749164966622998079181273572831568048855463984745977274681168334350038845458348163664878773975849477493149701213080989662812306299492500895423915452956941018497830214781090983023455333776870422471573163003592648166045325201535038422311285889133870485549175204169924529530210885868513999319817020577478822652518243094089059813817090789865327682011702089144952367152343313656810914932826466967177195382246074617746943800773921089803278233161241422030224743512486607700918871744868423597355306954596254934169287886438609434379825003387419448575970591926756631509261363570378272140517218259380184665513652511994655043678739491475019979816979654819602973655451253213633884021294054032199411642596601388613754064966172968277638894417346891928906574581053020460368039206679831829627140612625603001777752243256549688334228028778956615768882262161767020883445441394015614072047319598586062413598232827369877959912296367499782563560708216879769817476193245705519790971414830367993153378298878854393144652268155554835921557637337697487936265987008678087441937445615924853033127217446023812113553496529481761890344137008681252290747789387980120741989245657901146273208052886240297855938616855171423127129961308270849451183261265416560936782452862534090546055804345453660607849706542000083923955174313299389645402128885994985439608003004691480045178611962866415538479112830474340697896322454477950312893532471633832246503882640274362319175843656954635660459095535653781462463593044503515971667026668182699845326482147544385883493244523471857071676440968467080792554124171341180792409326666177368175757012130722813677914654164372202196693985647926813739628413051839470109975787573175479922359019749898398614867316904231805487043444236989267133702016436189960007221487938219263673681024584302835044957688885763043187917485155468043181912496110276338754914239725926089911055240666414581093963360152604247187691878346071951325702104032807520866997668270973878367832844789460469044419100353916667870377838958141719741636765277481529332303713331128267679782864502068570544774482181882361930590888592895922600179689630635072801672651610728866806278865547815004259846943604389595347751493505310369710283241850001878084735791136487605535101553740538413338006081432881206780178071822546590339514422142674637751422702623159016271375980567309198816349848415048178800939428986750380626742061224361744900017732899405442941261385855694003114701344834139593654930089851370546564134838176663615117619727951820134140764379317963449040347240572014701057272133165557320880716068661920115541878731653973990578232236974295597118967708719785133005495471188694633749839104962095721569713105717302301561527145136192397725713171112326996968096400746786871941660044114550543366841016391533972039994604634166250056624184140338602324644965947482955627823261660421735787769526705935011254144191564445328685001999800708701555164268533075126696677280566448381672964993674299354539507053596135035009120031307383127228032116479845293776845725591747862736762823410488876212168978000572840286012918248463296738400534982885731334641572718199981711369636491665739532079926966522556233750909071877072153626214245646710864806861407150850583469182197848245515999220824710042816074467413095698643047636920758433069237465644881792973695115895664886357094832090742561785977084468933099772412458073945193961546567085761411484889307414905512703917558344361665153293117304012136453493505529386009519275561464182351266606266463979772233128977198223727055026857498873668855593170208219042668940988622065293334009041096329438833841693997704333509600409210217556678469086729780425936690209095566145679445127944760661230754492896801330845827921374266218619949035025619542410329041465450139021484178764334287511407895874972586110512381074094870850388928610407766815128346165288190204404078705219045581335320729116797331898138735849510943082816346217851097690932736450942604335153060644890155348050105329016623864999074497373675157722314195517082802686627886956924773250711271037084148832521529192339330461224383583522057044140531295797140731360022251382178546359137474996060630339245120642788322195592339382099012509814807572569224731049874423787104891681058782578886713814499807533560029769426287195005201404620813051169855074021949510710261691404926252858281668585002236269911024723387734113088314699881245076229015468610511799546373824559022779958827826956926744116986578885986992146546830728287051968593172971879810122184305924407481924696797800144630112577088340266631777987985213914753336409261106546157413819309032704599768786332215534195651100423303362833158865336285147107949161190717413818251527088666704828059122735901586035381034552507350306476090548240461354034163641213965794494391069735745507278531408426869771438036756037655143266524873007553959495397320842315158636436470320670837375331716894676224306029908590357030194957176470488533995513216600362120356521477084441153566720928105245628111031716680364096722526542791743876157509895007600873209023855329784736993802781576161814664022035004902714381298156747975712653413110706974081862950754137626511511183380009876694246285684249166308956361720446423825505733857443830533776892260538584588222936822442224793223629576016677645700575321054969972653802458180415941463255322740849971083879385271192322117321544521614880843326352655471049616454886989528167021561349668667844425233933164733880371021146098718303577823099573996822851737729137718568761454439617733156530994493667963103894685864349168485822982981620963753807789236293370919047710483986631685832032814966580238031826189176167881885475148217771341924243419051296072384392251181397659057893829015350024675368715300085958573234138096042559976397063364427206639731387484100282567464588631999307386951918623759091516029044065929821398273143068524250159381205683513070080631532682076773021509272672341822252102588208281949910348145036193767628636264422675856107209694213093750496986149595869782736866618972508893588090111227386928711577395387157074371706570345881621884585090302286867597408344063129394252958695912108294137406895390547433708120007262203490389861876578928216931511648116078170249168474412645595208525217571772428948664800829180845321410848303186491609809152272949085283637998761041734595037431906750662846707870555800469536630915033218592874923048180749462554166026818653127923016872004024523835883765371748075623963942759928867423839454199604684785919129716143022744393154485105828488316775369326632988776856507851411866205184592096389273904033161401925147931198364683191385475523260925354386913731055680295624277687436804632454983386943508999960459868270341385650712667140360140669291268698817781374884973115261821514245858246237505767378339753052099153522119901576672367859298229599102947264031974202063248095611067713998385309753022009650385677913099197731225532621254829598292525392605759348381439855005522369929901703927079484084891474544527399737013294831456096290538960199891573347030626606579960536441074749984892336514404197566686173812201289495178341042180496533257894361649578030083033692807138860299659448831650992060969571902348388451653561674964146652989195132882278325100057635412197436330553712874621514285428355239162438885522628133105515999625633875621892181776378315199296442094480904860861047252488572345065592354989064259933840259717965196651317460339024649952229494433678006651210842783461179554030554523117378019907188267852599645465526649593530216638496995296223482354369980762873533577049656738572634092743112398509423744820550816976028617404930298471883707946331335500732815757591293927622267080283464146683160207303436320479030523537138616481734875327476826781108004717791947430746661254287903518738260839602480439595635337604157213098353437565605093613492806711686671297312909338786747086431063064652563122243519493359153662764979651335442917938595261974571520125589509488592043232230873700725397388643747426953654960187381769508506370684394245232939712749498094419967458184436745379997433219682006843883227457957211756900679747896941979937047949946021711605032650348831936204953370881200432733238473101240101312796572574749816245898763432175269858064750719392397566770647205563682645264859859260101885548030250877937753972536771323472184025408442112193399113546541173987898920789242524166260236388417047086517820308351004462903347764068382725673702432047420315203621484625247111024612386429364699903321375447554050784410648397203155778616569868954764822451000862191887522801725559510607903373018626770980037992378902086761367820418342688980270853644394140389555948400662407550262336830127850179526784624425283041321406298892832276215085662838662091522574024317695134529270749949188614352711549402206619651683468786932476545940662680424906818519669354256652806105258902789408001558317331408157388360349469967769808367214432936446126176040835278996218640996679524442070350417676344898496037484175939374837877110538955111748199681196303527170478214357292452672798428756810388162403164186676761633961691488722696438423904322981388013477614479532023660053105164571856929922317861165442040187652960356177057382484414923861064400227151404823186449169891507184728544303368393202690746309679238820243150058687949659018189006180826000483654331431054889009569660362971390870091041839683790654830853848136157344302725579873559859162004653476122531932906838455100179268645634694329088153112642400168811646437656426559139022737173080251967446665809291877766920537849149332454770806070032595877209851091260891572880050612501872015110715105259754614410340386939244577407411106284001240769782794509801953731558536213154773724437421817238985750381509314393028501622693007495197192590681785622223679475180879606708879827410740336039412839190172062648762930715262272751938622394046193867716181856242059248588281643494883554113734584399300913587229222501700081705292261488064309132786070965346325323061332176795356618910735598335425148717940618367918977521581922853604975686468174588846337156314147932179521324166290101833639855237980367972126365361127715068484738985452136345064876885802417895084583261182817229754628643236457969778648033422872814758858937028013582335310390916665710829596441101737285172273157418877791149545240736940098644116797685271487415702861349660414914225125972790649293095721149520228471416310783541312880203542274868180729856869567938229270492091445931976484068538821810492375383005238046123978518966283707988389974575924933105216137689009018150597839736278988302168088256940934898122624932625742666353655407524783098637364866013539779408538798378689044363582218901195061469572461633437431328365190785197040456446785067647912048884041972414055167568438902116663927704571464650475665358480035782045815017647587693984626097533741551515182876345402855824379370450624670582303414050033372970910690770277819997241754298532406985491478374977933767266940640715083868225746691605184074528997600155341234797460681136205871918021760311744998656571859999830170206454704736034286862893733712255550189721625468648231761973631416959413601436063350983444835851359658571204647205373928487706877535556237010416086465719268743877736080218271606001055827124143469910923362246341411643317751344120153529120370048484354932147394991516622170386479637319055891045858342180623968321579800982249229412403901994117051109565919780114716287016838943069807784170408616332397622447722974219486474354312937988537248994415629462254411120533681515644249112483185595826241643383315890472337582001810852996470251942676062980316646874874135732962914173240347824145812189845081108381471232451226268124529373359462480418973018487016316037865140210905391763434333010005754066441550201874794206405018024321067702642284392941855790095477939878597949665977140496466407157510163004455670183644678706150770752945251446456317583161544688446502308830634739291943647652259295966875258038198677939042388860776783490795724255965299683286374897592110638816176362644642677816763870012129409456377582351307896442972329949671664449204270827282345974475791246470127575257878036055609163152919777119967140570698605610762541655200753223533957409802487646091924721514931522310516945677711389830344361538987271887862876071148818221484880387562053690748969259910181625148838362622239390309694522621676489984354042558604584910141101993270245831903306869270904485268992670804379791525882844608982198244402597778122652813629227084355557417426659963172902045535673679363631375537975344130600942184351417156159349639215923535712280725847204262875176312767047167338990763689084483730088262778827710828380227284591975978493462093754082964408130604418978890658052650088856747248614492669330165859945283867988658576323818189347047674459322076393906451226937497025042268459454626248019159812936608365591887129316115314118113014970202437881308057043895386024433338199960972627192529572083673883798024958042479527641352837547688132960148202276327554872030828530224615167986611533406636202612859161689611108150369404174259570533745316388801582738068128873311395007118898476337365755531646420115180750463683267468833532183624216562982433290966328313906508427847535063219460300430436925116112302745159624609898754255831632010036319223202468099761673735199924287924598115759585117757416579660358605798573350561104916831603969505211507047935945352774086000270550559995208039359035103599815250234881791520338452843737860435588989759476397639810160643759386047181603470494677563498924049937442552516121274003843715643092593986092599078919890317995245918927474178344184740824126199276218205194525350176062847310760403047225651719922164913207876151364247993924433613280371818853902363948970753128817445528178109989374404419662239261348233014074344488351318034998165583773427621350522835210732310382864087428483423903401768971377677790467829336725259329505705553992147856575007708525673259475678889366689449670256068544999939058862482952985628621308475602227355129527073395950107591385278847244873394032763581526048654771350309816353072398615860513602962444775849352709878233675280941294701744786226008366477696422822787056174143074250814851445784623254154469515496290166911000000264555368405304818631433604973756543956863113045277447602100602079490884662958831686255112392059048870637720743563686520085542542006255530275614667119249843099545800084961912052632943809050955590005294926471255859754542916111910918220635786232589553055935309328181765199977558074419971909152647259281264519393420003488979121386442726212268760427676660333374499651659777798357019479013899625160873236088325219910262091266108245597165069042823721197679400499372716976895132845389471652495268088245789725670943399727953649362732089863111847591874428802804275558514369612888880126397139411894804686458461920546874727893017998078533876121095502102866490257182903289186308972985308589262204802098552743326375924236140617607145744807997407326717131975684995966865079889878331439733562237002694340652084841298342956380520862170290492928449422964550149285224925503546461272887453790160349058051800921014645152586922331036785882803810748724617584357967632015768510350391614762143674348876301933889726408791478760886656407738357239958641441935331062002181814766923426385999084805702362388652583823879194319249756372766062342301177547289490327339654425004924945817408998164453805581970501425988355231056657081906384942912573558174491058947079607657157201312237763067430218162729643674364991137466320329909085576153775346401811465154504046418893000559495834087593815426134441410889497710503952501918815698933995914420961065804379455314823476878116532964762033553722654943863068623422216242513890959991195643584504221325425280039688356074249944791267157609702108780851429717859633854291693651128134292340813679573938915036455267252756483236824655737119098402599133671735860319687887809786911815703897526043899409744114186230045674559372153461697583414784106972393751017491764497486200115848554984832837399907247649218824542707752575945235886182198137600762771555933344735110514473412191616143526475821125017194579597692420177551365895019690002825141921598249372182814186638008058579036378273876908312757526211882901873175661302796161538099918942791701185141332502249373928086811562603861795991935483996386534085196832446723806165117890228044866309342444918035222598646582080175481750120114192261405117323054062974310289761104676711935463427343280636340878219191538487919108341056880855361841639804226020498103118091580279473209402858932950061819714989886993456500911900135939469769511073131304314176883205418751870058412207207675496308742454824791969919744290443699720146172051660188910467604095683993697636552923289149504930099310473836943577488360733477595651091570302654992768595520683460567373889548858492395392241617926411749937124584844701337387959640079736773004732660400590980930881213626583355474582517656219951624289421830011248676622853949867609717294863542765183440195449407540504858871365615200060501062146297217609294991089411930926950322151751471774886291719174875983613503341418138664059114999230951203423622832654556871016469397518915578201811566265142904699733627926734485036735178413312904619915121661488577178871520470215199434492747054022354572454137374045678455969431574947692725947719433365313182088540532506507292330880680761553478143740242872905001997330496891744486773225782602797641944392174684380744387185669533599058957800091057344327087868907980630499553730585264963295880910543092872801020444638137986026130361889486242058341946252598136738129769651766883609164484454877411530504424240965384994996202453478488671819150810015521732529868919200382479696940514097126919778509925743267763521823514206418637316774753440390274879733844921659370756684067168832530669783092108004917266366406139549971516325227929063024763815299372853396763127373447328979728439656840896001105473470604125949150746358448575579138424845108442039760426898099645599513695015049690102578855599631959426536402893122738768340958302043241012099533098862970644664460488187745904588432510835469249268485273822809763250878467975709355990086950175110399158777555781171347679143398302941596810257965554258160089972969095380391554297794865658161492026170655026611302508424837235813338633677648504243883875549137822719693216635883720182654653149940001615495736168917601864887035287017320914984438496689977707112680106842494421404227929802771180927592199558358098961674622932751229188633453444095728003180831544413926322931636046899231022834880351382683360202847753571919864982747067360776776096686698051597338210699563389566558872870963496588750452148171898871198908000426107198363954101953826440013629601739743680099121774497163487562955914556066653527023630000006898433062136537517483669827712131545398125902440261907792736639532889344366005939808804363680813173741185716188164939459833917896668129698808533030928123717862306090278857383996322466721020213350476773702263648028787331144258250701275003531892843698032822456530965794874082072697242786740255029437013275867605106613423342152282235311489892093638534687750139855778978296418783793423057605683873570783975783760222762978529260161134771313534391545892192448139250181333101099478369040345125555268053216066031506627263121446033074275384323900643923325167690423753882922655714031052802306214192818056614864655009498711583407437575477801654207187409817447010262314375620139631209055043691979042215331874696092140145882335681118071989369090542515034804931954194650926736440834521113234097405799507403619392020783548642310325498138777267902586974208836334915604823531962885612882166100042911995670385855110599910949131205430002798664574412132679862970614893712617985075754930970079239196172399468624180172200157443648756743128283330441461583569246225805453398035707285949128352949503191303082979929213895575835416902991052574050678302142911846587200011228562859856359897201008119237307977641918311589695919463198285946165820272263547004105450920407168219797745929865128751326519901555123093374949240585333725448412638307117343407150454007135177797475426772123389017383543493276029819259844679797875607139931943898904769901806768265770224356608924303723386159020535558129030391059844422123620253773096192902992310459481514758259679149331723503753988207570559527913316205716948532393846307790842180464875381627288864100445648563921229936269613941605665939993336275359770789023382636736135316615131016251727230196010074662946363380618525721999314560006750133902445084810637629159696812342860102238669624152373733476049281172370969302692378630221109141565813093585479807819743034704999112190606387171068200739235755428972465623426545921874348710644751673336251526676824282192373575432270296707606565395789144538880181145919749321376190516549869229350751003191655167639167782416106623125814700681846553802877064522825346258123434824129417411744672457541263174214956274372730788627778788841115723385518826497358973436614824831047422630383441875850193076257730714722933394515922936231773004115548897200862664269040757022385701879519314549160527110761337635599063571363786563603398236402228915125576192727851880982591706860749143887448643312287851605650743732783296095884034434448803753202918619494953483772148034005134529061851517466159437077616198899184189071357564890505098990258505659706561832930506270002891879184547783308859939604044925118316241991998885335659769783133193331891890724893106862367923175911634601438796745653847621956358158064869205959080145572896321962562589174805054507454471179149075856495657047819441703151880396937428648821201933962128180166616874734940988987014581956878619732684166544993897160234692592247605398598770245615311512382406716525432175850596227561879143934450672370299976318586797738836175448835541696372351280839137855270819232491549008014703459787087393230816075649802261787774202645963001793580240255408284246407320643199449755309319081193395153379469416221469533585487486457924622137760490669376475391689529865618943159803606668724406467898942686954378738096065171185725075114327043077021942955156687348283757937796296044380626571553793192193270287246511136261333158256076915939186358928932908243935223061166124734663271725032944556839916469440566835654969929923384225884665017612412354847454683752776300917973768006945633626650473875884792560406936957659939855637307232940490647860442685468972114203948256423425276383699611022455653541922540528963220315678552546742139729859715715193364136246532981211710246354312323511984223001931033794467252349794614039582689758654219483923123353658709510800127417570291952516564856674971719875632913873020255682810238799685273358162990290062909868346394128964801834030392123225900676930437447043031436965392486742239479986754268950511084596669131441033972943223958771034110909667663304723989736294835351409171701726163119448242689931918835827497258160563981120481784868250609403598993894992210346316113800833779620636075862518193672140865554021029841438706181556817630676578739508238125921068052409678464956415059113765752294126887214661431530515143834578562697244505869472586855272347717642303338296280395844512208478339344968867539638446595457681183150016179374355861294716474881436918960132353639035583134747538809672261849704970132401680069773329271894236704462599663577558137390502764278085021122409968630306899533279192668192001126128784368011956141770900556164280566621126373420352029132361794680982428251734909468728649773949689862250342445129935775415803892965132644900641816115326759830545825290648892198882452644548130839380542971029688672432158955286281245127540748675685291408213863400554107646611739914563171738414285405603446473389331164756760254272857381942584289444862566719876501856042490975656265795905494225272996625971661296609742443363292593619192841103638741373172069095475237195388215968205409855652428278242318776779907776293060831062718405906908435936591516377082400806075426943438278693656298940251819263767182001108448035965743887038548569821047911847581845519522027424726779264827029467185466965819720639639984848577965057923904890709237662836833036510367495053447860546131909179649920582093720018924780472024701305630917066621313306491281159656741914422107985868300310432804511611262867333073216406735858381397080809955588439400194523889596960263545417756856673530241373426653720398949813668333757831836417068951156318995694860902245154430351831938182368654176019280182996741416631255703970507376505855647796095678982158312635642003104670835598650119829737812194255270790502801700198794817057326042748068499551868625949025368582836325330867076349373836700585281261044701523804052925469627063328731137175280134170374393973935901105935332734236763090970441504592926698401434318702755163123061710347869230331260634607511424995562271941472541054660366911732024935197321648228527997299160974435902365801366834588239616338741745533876043722123591251049223438251752348461679920541312448935016511454126135412097354652941120370440275750482439002821140439486996768593218523500927854373155800164711898329425277926653843557982886647218786069192724065916105916844284756726282057662917690257899706313927770781980118687161375177880228971294010268727212959515406579518562803908034603845524208812398249391276018171794850071107560436458857697839203341300069163478817144518705684599062165298090009808615478719046055659796396614012900351159109569738344449606675318349015623371453402931712077775336481305052839535239635561928517749544415294720664702714272744330931653298283026239324009024008915353736356847807196392173752407221048452172702557666127722936913665370253186383326741508664614071760461492393663932371654343466885396762787695237169472621944345482242716291580044049913230532465040486702472930141345538772679927060243876407067806981626112865680235475371862063831576726097610327965621970205442574621885284626671579578547781772239245909398401593114696644089687528707171286977143680116735974299666150878897911877712596013610781045747016277895556112083703004601510775972386432985348709371008661339536859372885159284363933042928638365067412105936416333300586299234180594456220200236513926996779427930984201619837529969990336021233713945484625908806793958907226198062645618921754082845850137613384866988123140550397677223122512699728868817517514036570578717938502374316065510160534318172384736220329963372161855667075017708754055906579086066811706239577600305161271871925454115883160505296370618302498852457847152244906093688430983262504894675983991328512745069842369734138496295916578859422216695543458721644295904558758721758919815616897549324473821654829482626457015961576523613528455927168035516489451295820308723400228556137134684217025986385036759510416906312044581992161812284762315563478019770529009531923445699851618561582800195899633165232601355518552254293283853723358838906948820168057918381206886512962990845046650997594247638695543188592729451239374865064872061553614168479806504402861512825294252910520974785742830341031847090250922959506235158173204048597610761398352296634202002454797273395338679609991298430829137594767762547305046871554335595445131110133426425723893750759403944494093886631422434938741713005055279991978502483137204846197341664772678958765695219095199709900988414897661087099314178971090838860025972312038644654036877458638700077176386694056139183479080189812432257186375228340394503294134670680835563611997792120916407601567700805895869747627639330482424479348092847868395817161762936533400297184735087055295420601842403043415020784426995847521791046395056618386428267071824855304010607667354514504417436905539104408606726491193592385919924291343595396147247796300941266273377456142856188569435671890147085857242514783908164687147458457854212988991860203347570573244838675957017366128454673984265050556768264235110758253410562368369139447050993306396938456757385269786696378223345419489484509805197038067359232276157544528279858567091132742997937397885402010887734653636809189492718205371012630775217961612272198306525161226912939410586687857818162900264199761618239608059726217226766872699286828279839480677309181055725006019957518649066736087014597325331564816653688812383829234926958894482194956104270133090116452598919295396678589372582415419459379337240598046787043613936548252601057362067360780076587470179675298151319813563005217310396453143761427154928255765923098279840261905930368805695773196026373449246617371763318492774875454485983628709562275419635692846918943227545178394476077913746052102817897662525055216648216059339265445345882664842891843663735874684946351665272323749031189757245607851097653131805825223309996586272609422612715206550852796701674959480636291457844834899506389141886990347283443132302931888278607514800655700565153300053233067290924225405521105028544673741445049768891055166118211769136537154435200003195450198767804649562452262280349560965624089808418105998928278039105407957401989107903517819882468356394575528036835773253056136684319304014838940673284744987944007386799196393041383256311577237959951526377176128514004735529121237717854509357882697532466442317833949143956321923074613102114761090872516535746250693524944714650067139576077182574493324611777315685306699777569763967985716212362726530586398011350488586567695150856309452661594312765781259747731975625078631411723239466198173618115651611677526625621111454082227066353272632300571696731326270453877363592418316328467547267478444883139370287699289761809927146155499758368044356656276660629781133621587979760667045271694232515674837482842220283280607791846388282376164255675919633268479366579448206440863186371851036173221140151258552640812746605119968056681739259548783775289095782373357486576374070539415083126637461794157284593025366041949106736532806666998286162143020682726648968338496056967380895208056419574579478719313167876324302882024563325273086859627953548476806488007353376661399097774128191204053447727463854376862077665992628785558793378122615536697211543586745954191014384348471201282421802719258364861938632274557321179669764782153000239473545675817706366558981120269729629871830314976160197713036933907121954816746734934707497311863947734141977487232880704101809601514724848592838504901261554335169047904966356936529310523169343654212800282089108699227528771955237331170738897715262934455069034123398280028053727594909560376842189415938972275641029390365003609624369306816976799059889443221289181796027633220081105283056801137194487958656755348923858024486026681621470071837124213064937964260927788406575523758283504441791177285407522316802065604004373421898918206271158000932471849624019969051794271135426446087694772693249730558575663633237379923751420634111264232915425936834723692644983486054281869963896817347175160588840648728877925477755632997443650665367384171673755572807245328568815966002016159483669252199549932772982728826642315450552867625631712412373736497076014004653064419689534765027204162795829347898281838412096584514829643683326352042245927126723010016727852879194655126280795956631238232840250729457515133096628919027559992399078025854038129193991045365298109780015642411630009866893291643917405280793393407670317733683527683903524567298498421232510932533787744905120161846903452867505614183917098308175711625900188682530547585009072814926158790101545737006089329300743172531056780536477825801327668930072766042049589309533537508079208664032996950776645507072186947051696929428539622599392162159404559945614892916130539062362530274831655710993500067738520242611507299898045942679334241014473091624095257437060076450012846572484867520268632014996943356837285734378539483801428134670268685066940839827295438309845098780918408756475158415144337019071978938474932126752807401974276419796590955732987921304120812475010659426651051333036664156716328359426579314825876031863223732368759077806685192405443570617674349787434313907154872093093615713042079176206275569751590309743186418162384836459764141937663043268371931942099049240452787081383656297534073980570377149007563173170943663282020012083350868345721337650114639152041260288419409274208153516307497937635816908456881322768016758898836705340618260764025611871230377863374468934915645493496020477284520424292428108331891391883597206363256089609436764183222918062714146715508154777707641367311506026173420911248313942307421427647272552452303054625131604436384208748354815390074923348455015294433723824011965158086384022767544544469354691607967422350665121016564745029441333693611622840867591165237249566703542882253105095866067516896855736357415954909875340202271524824015806541758654629453474334389837187375030552620360556319912501921965363694457730963389994057636052238614453819620744463014630728181719835206768855361846104595173794666896854129261128282954171942944913374910787232811952255043287982952421929624890236339434512496327050820731038037065192035103073771670642266835477866005843390150824411846590972693448548281129595471632600837903116242848999572306901486885510022366940413609226198469902062084426268260231953415107382284146245495620456229528047757653335483431775697119711884825750787120997596636767887958569852751199126093177536794767532724907946611376279143964413093108353204664335868011926592855772740383217315191843551348137327392903751336967432983733481238445883081696881386901533119633640731629986591641418021379856245217548799812615440403003520939759035424610060542700060578951588617702190367674374383006277214473729359083519927911783164210957664460983681956109373273505235968919027188998846819327269061650149090722685040808071006627087940127401744705036902525357941008671484743928714153790012880942053189821926537054238196621551112731504292130277207418299846325430504174854586620828320746390817270360299758967499418499738327417625628758719805575891479079845142994239648434808461017033565904061191325975421059730857946038604863090709898302042925134637383673952262058056155173477051275404686411123160060791564895613039853639260617908071578640114448576996352518596153070305321897208522330583387468256873150530796570950869889497986186658251538533839049399577632446453611064537625946950627531456002392674279051741062556142861410111668599283960177233541320803442023197480533453946961495914408511619323605539017839442271434000507793574763689165896780413252670641896051208466816686257601636457715047515147393327899875238248353996320918830015159698823902125765916980098488452563242937648033108821426166604333357302325388239835570352092331847891020743393967250086063858376803198947583842345977103610185798764447793114575468599826158628959236572371628319087762698069184378044421714266056315832639698008956567155032962798632745819607356914466808242707021108286847086175990636711999215275662876568099627315311350992079680320594895846466404481790339076697417657380881699033937561373446205085261010945519195992782891297563811097612820947501652266555897490763410677049450807549990819687705662322591332198166030697838148756016907871683326664718494029328040904179363633610137832618535257287521583088199839433503739125129622871766915580032693078338042894564273698319757588987256444191790438313095554500119839308670483483172080103296891638974957164159581604137381317283830068511992934692476087204716255702292746358141351475018658268535497191611853189694739721893463712296109428603841508002836738305815374936528063606924577111191804891419534619640042072522065760394089906174865539436282535402769965886516339551172601644556658100511034707399034396346423154880544087196299823297821569372496655564485686028589275395223075216415591388204716568945748031647223933074839884043262742024518563458515601856572094460834281170929346601981295937028377872434669326818198259593558727757662585695977640851133654715406713423698806909967532815118771881788635524116179305092136112125426061498483375805686996475491568039615931838075697073614938872005381545284206847212219089237739265415401678203576795879721803625153042986126100720029269009138432759049235005031533778162381695797296961188695865443749858268026582076010018834669369417023656970960485910643030382003334589083744648349555469951485144743239093222495923906020116772380273326057302910024517245256010288136710170400760943316173032119994229051159177379490295235951859359981904447034873099337868391689591109394647890714666617663672640734594707030304249951743509793530765659300585332277178968781227423313559594626527371603271084975171115137595202326332192849192669554216982614534831953647513576405271162565957403213287252349548629000192598554056499090204954958651075649328007694883308523340461261452903952172481183435709086770619733962097050205834928017352526823096567134527358341117388554372103678369722098593037276736297585722888361993487619759172043996456321258831376210712124865568918284568380193981226420771357447409027634772969366146788962197692316044307273830878914254676843179408533023357411138938507593920578168854008232701773968076668683857066700750299170799731479363846526901507759079359143547511359273439860105577363496128433149801076334281093410516198698203436347411163691247608996921568374286264943919977930821084745884836003699886360580268994293821894944753615238568246755106035738884151405246097544720341927775055888398289866229599142712670003269554944769460122840660257306320463839537119452595655887327880415582024671639162243027818423439781671583748302934457959929037829188963612746595335214241993166042526459713434869961926692697510409487530169917980628032939321160160690665959192590679409330641869880287508676853209980742698107168217265014162841444297721900298384058325159641555013155983491472013586770641899188731459878244127841883919314428778655642720035873280956070581825749737913375850717452600161275028472487012245139168662794644411381944788006121449243409704703118924660664163015732021144347087589164339592650979817411969803907054904014891869607443636958136683218743659118149135912121985951274747725560487179059714708526791007489132479704264843497775410050620454794653932892156269263280329776391251864835136109779586103805515836525047017150459273604717771091035536461031658755782687246931357914313645478749245968484820745520733249750427286774232897566931703865331817615789893450572467100891557919436711460514729536164903541664192578219740649874043915506555890721620832717807977990205445411510010783067250008164292746968664096037286757428869415226569670982386839735850613532386383849337231402841529714375981939823486763419231089034515605705583225062280254095136150954418354097310615412201087857437243245434225324732522072436485579816388107703347433055203279919085367830237313633570510024671142818161832991868323932276574029604286760009329792065385251102012091432230422596068763019514804034493897387153770213482982895110571436495733287488980401001314586416901700142254957466561625721276499522766684801073773330175350982256910327633308336534663000250622994544235554724904340242229971655507481428774095068205862778963921869066811716121675306787164852782659698434677818211490813725300150318081516066315186434275498394049956198796316617754433021951687066473999125757338347216438588693461517820537824019270458126942576862823280568203684993285245962822466631372258152345769322188033713725854338556709148789222016872137753623315933502430305423394030724794567339088361897492278391749666461691558926579849056626813888454045633101315529398490167395171969687380683911116561018014547218006659061931412035544495287854048132060919202624253118037318826322103277408446773603914067449911425659377785516513818927744306536845629744625117005830522078912735524169426939969782385525885840897068333332363428836930706587429263527924395258876349506777621715606906170398165220876725927130535391880855368510213347940563674593909975152177615466250289349896795874669863765310554368346307638328461892277816738620428011434652331568258600069975335106404072862080300760464947845733417896926922768248759691212348398086683222208874294822664429782947863473972732590945321537082671148455297629039291501082565251585429165207121676264487076624351875561491244401238218677468561487103338857441162665886294291530580879558879173433571664730231884640655392734746991996952494678193319793762497439425563017008025973405874273559017464742007868432209286771810000680510208880825483778634298977328622844753515527569532353564874994119342935338347912262642054258678595831572489070209738571810298094111998514556226979477784515139708417256427048304458773212793103498760990793367239584936372935219898320401402935688321130816705525649298940178555657333038099810048499604310333949077785603887824390012865656017796574859082506194764452583447132084681273527614506699100090269285476361603226872962913060407241854363865688258485828110128479263755749651402351794978957674916555446800782619259265605185626118210429338058342708686028007716552748213119082066298956000985536628262235891755326030342118083631097788181111387557494914345047777579845160140226274857750369593090925795028892228495644424647199340246969481008253686617824598259371025665028288387469760517834958660306887784599635232768705916927581212910164223351852619225684499975180280360259261039630477019405111874049658994702794750307680736000643335075483615724844396691145635427325603739231634781688259181454291761465157549444261721760719538671931554868989996496726205761670275014514604374810636779857441190248944816653576867696979641188131456508214139709444003673305855874967718931519343457300682531138653924027351525924212425586541486648837196244881404025472240198253267524654286866966585374579766591364373258657979605595087301849079965904486719391188632050011141529856585732671417979819806973938701492345718117197677431170162435469407373358900047420479935133140195700069200531373872377040604582409264983174692163450513164764692135919165730229147823557398016269500326711792405458646881735011559440947138656481889934453488439679613279212991603975881607183960212014343596423087877576063226156597849107446899643751221214360884269047863066708338825801956882666455183363954687348388223103488442262327573094057084822120068433130218995146444351169289707431887902598898520298905986106407307875171936206677608404235160486023413704144405710049794128749363075592240931080473150844673956045497166965193571848669739185003263781631812678246440322811423717828066428164090448673236488178726722169616886259589518821130751353159812437107343243291493587468631638901382709838887084784252371761556656637871494641550851833742513195544778399717994700103589044744585720356535629419323016646155232980601341611761906197292671930688295452307515888627578125378139655110530306385359299665439418650495931159237405148748193264780342433540776814773447524659119347751291373826403010747172873563385022613310228037366799856707500475071288938024173677434301869330602941548965481364125667508960776213683208644701254715833040866523396112479487299147937957526277989309410931038164372038737514328771083891795189001846775248402197802679624930881048042102093091792256346510015666402728860435033418837745679609368563816239137806397618668408320309803802769352154842392220077370138654162734576291860245230376662164825492136287765738378198279994193531420125173967916554828257066175596351486730396542825618475398358424549793952209839364218595019758831816577359479346261142907055723279778431124529769597406417544937407386004596355654256457127470154142147053124430739419366634717807469843882117015987508334713854883310864308224480881412460910810693726623882952258878500758744295289551424761541378094004062847654127842482808567817515825919751049680534008019825440029199313889259774376888519170977405547401490027382138102465878639271299625270859503630932706994347558212897631630949292468340148757422195138971060400412009364174561046902337708776201062591780415945223029998327127618150287948984131672565704748503252301219741593058937756867464171632391480200399940229473904233738828835279517600709954804057390928414454998956359112604663717992933623033870872856157072190963704288345919435773832702305491401578129512029138148958828613242803192087634961811030743142038170123616289448070821435970503992950115632878883238392699331691444997502688362039064264123787235002626802785174736756927855043791948346862204247887420395329919834465173161008241854598794440893415162238482596747645174991877131932131543362562500964433518331216962001339151939538098112935543337459677498716652788922344405584015632434421513047158390270720324602211863195635393510271731188243517488222269711780095441706307239805475265046716637403322889487405926063092927222204524055742877102903544126454642792068575278086738041689365041645928084799420051728005238985182107171136107227373104041012244302701293118569242342857693291143486746211215109022511006377863463601987647732215223823194867915446866917537184597387407212908408963447778798379914410226123580483459621994195001772803282432677145368986403421283498418300618392106322804022955383104001274528857882357248617695614901859987104128292139853901317666444583187460631831635285711024791353164416775772852138758365521079170373002529197131187622146475421994363747250361931855968174976230712319574952281776506033216306920793766094362212405432367009937504947000574014407890881339579245102829999740913756119807072019197028270972577758748063509961601806756188384810017265939263435520309583753535028457854971336176951788989868182573810433796375368044750876969670869466628231031671957086586517484910485879567955444266389370313703492959399568400926571303664348147463676754693981160656254804870466774553184040424825754258703110049003682096373829144599548668262457469486432344730753400657815606616843926987028015362459285710941454620201913979986205504545552937611315625496658223043846871850574500560073913240540979019191132242267787026640476163405700572964813950782158546697746669588772409606668372533592033747104550255754790497243333479111215911374949007974482258932270084383488497275447911234355891152474099615592079391565924255209292018285462134321018435174004749671012193441019475518514817960135228330983716347403679885787673801301060576216638432014808487876694099113619844319813207440814128576339494838284935960013039957343556499602647024685652822055137386397504293072994170605927143627023354515034510629321106290398788916108956374536046358092981292601005629647821459380022155015349023064976739260548219860815797973154369422679538758641288456672146780266283561681372819064455294921897997891320723939934007973702128993075877586013386145645996071466156177578111365114303696892555860206889251812795968904951994308846758497154007994061498076080162517698838677997908326878498667970363213388463287451160826322569724995026683193588140254774707078578776204058547718181484703248500733343598777705337458013107812904817046719374529494746276437174123031035022153380919668164793439701143591604925690786747279091714277042673305497453063310738185961294057434602070871415756650659556168897740181814631828063287333332647216250988020910592374002771939482614464462178571613132776203016454119943589206957959431185763946511390127886684428370931727409196505113973287363025100764282460543971289096651579846249949949951651274843819247500983461638825163621437962812221997981046885019593871877159949461320707442114961670596173380569098549468259862832786546204187961384122823467047247214914865231427485318579320418814471607956656476428055668755672312047261205140897992646736425526834943193766572153429167292517118902973511263151869548014583261429061117405030622699136755190398081024403597387729285751077936395993753848083497185442023590874836733241564452973256831713046321324911304584918838011851418334594132084756082169663025291941333679267703709895146334991713249755905319872576729086405300418587491387111778581074237931058063108684301141935964835948813909336385354933475508609511934743282304477022628230503487540908839726683876108785950686760749966455995500479431075814344099057244957258849959720913178116135598581184260666958664772684251760454231270559789277889990719984171701707601806902976512344203174216643768407719663026385004762131296576895632041851221000590779263125648006365022899627797752641750185747874429362923236155726073864194145958352684265086240226878819330526446245468248183390024042143174943207314596160574592801398632567856249455060638838783119234426972015070270589963895685572447394394618869420041203652067549548761977742391309154850231128644371275627917681641632235758107892649054860996250343452922130679342286271676996749745101869556280453583821542909263456117839061383344798638302977956696042336188130977475771471549094665245482318677314955287034351878776726131583168322413309704090403954221715965242072529241232066148979779139295177653982134579180305598674204538766857738896948839799472080302607535447809768905016357396640397912410395403879000834592153655660422569048375143705777554169975784907618527501754738522627030982222542258577618628726663988164481248291366980336378517415395970861411634675737393755404060434722195437181768748053645016340711300333602717813239502703224565834244642578356812328321752645384109714505354999856708352050484573713885874144649297065457811665427613065208122506586619141185928395330515622335637388313140302193368086733320280520768576880164602133422688608738929525360573348899674707561101855578021206789608315929268202526912950379731575912686667470722183199103699775280017382690248317168539672836081800296048461084453596822334580340231252789130320371287319468371748932605336858007146038479270797940550542428368104880135724068369889447695514870068077231762098060441651050592449209450816868175141863109707007559171165620563651186207639574226021552518146768196401615236695093967395749878845495983488260762662778326789167870828828610179876593607993134911890263984957339992507261513786415440156729073150069568904340585790780350899126126054394909230777941292825483030388259917261765159726153761168519348235448140751403054665420767541044739231687875189905006971814011411758478162439729938243679947666555895614996300117664547332971588992427249760520289951301226870676583041921694663753864295661449495754079720405277981810884130057033990073392466282865216881737702428092361590864953043932094691985538684808597708702131812482821222575127782936957480535033940282239871326836167222998053791290752534640044044897380144353422551572580234310175594187651920814604245854331091273977748049734278319748285021774346473907667458588566340526410124716193340402897976837386848242339778382624717365522917140743151553076533358448103183518259192053245223221197062557095685319352238905992402927580722025110466756195184425918780046249175250171626924436141215856125185291411383434986386659919970476906370623205225189734425644594823728142301145821543069696522303416134211443081232907004655115369706662373402652666109061522691912649015950614722976763964707531922335671961543861813386239586646377762778601151953905882350566264577388194241643074567317783116526295478485477517270613215716542841554178369802848262480853065941430192849070975957947713143494683269510014002916772658277892450254432698141738167405094140663276643498284513985203661370811213476913331671346259027810329883294208550534188276241582914999864498480367250177116448943650303685673882164918676358661372224648678793607279073104131466090864271234238747558659088807865209923854689755757013490728914151433781580419251846026085648012934325688740978885361346409132075638221209248713010482564326041924697709619318624830558653070019609904491516005359267144098943849326945317659690205088789704624710357836743752663692867567826617617055424655074445850249762747119609328354509707735500570613822054176178612091285504859996902010023776441699939678557298038060310267354266029162198946492868025814718498774768059431608413561023811416847189497008351223098611432261506267247910071414915241805573546240651462980627270891549368996648103305617683330108418077913180084643635382712755498326882711105324880089274980444879016805296452948258210038763084049465211148890175042146848405848283048327342464740346187409912845656357175026295580670303241008074436752196851640685887176296129713174314822606421572609007701098376119068246850764417029270766341628770218506463772851368495343213558973451127855426533112395893644704250791349845212541587887123785195967298419445002542664422038130576206290760757644033154815942164975104180769835588820633560405427391838338117670246827145595398188508219681487134977975060040877640300649440462115348627968670754348490848117029796001415439811770214439801545824934573398519899071176018145124863831093777482451503346187809903875992767067211582687040616536638341392675268027897305379628729566732158819699561172426461286430793073262410569499344173788474484843356652831170499071760425625528853264011048985154073001237727233721583515871879539388551146112555130198321522930992462564705799490797761708716856200128412903085830162860561722438949164266354002752242065015221009382770798908137695002422736961432745188028238955649984593843850301704725706558370830230863846531004388970192518625539850338617192273655493386827241427524300912386944969935345777930987242095121882880206762940666378221477211364743092091268792655137854623779136487444534217035913199630146990487907422748297086016763741883548943341326649166342026938322955035428699122526533955567533164373316543102989454218288927735839769710419707096595060336146218106770116163091187513980489523143585761185009523766065489671018667887329960998148329237863484522853858190136571043860062617953815951040555677861764499763707764317746642245420232132841416931180073200253719563820740572069931192016289761448926366575659203645593929397814428955486948483784166019923200073252178291932886160857740282100978919993771771108196232561019354532441937936334345654253619999530904366381897950636190709753193937935172373913223450067432728289013433013934386884355599467290267895552988588280101346539053354767124681289321433311978562420164333123406909141441172854902925575553046765007014020249451510948082513930346064888133346115880729357866642274799087741861210286102265297644680695151404266650274316586142399466382129291901918788600782866872034372170589233838008705286366112780363914329927383921043497727331282343693313622195672108267553389988521464528833084619956251396205062792691704785577534036224259429842196876186032777027084122678353459814997370581274607806272682983323969941543301226743913454208954712475361348541842638061365073106756997165403979798351330808358490858619008876351261368080837767422608488256406685270503193214013488310023757712483314949213119101372122441420424316389034879345800016867162396682273746868198497960843775296869999587365679598601216240709608348448336939043454739596045730139015555753856726558148556682624534889803333261055717516928671380488760864258743507862903932341487418994342441281394619596532868717168778407970201283546802065431788680399667296504986030499732999312308589551192039334983611207575698938313847745463810079898304886943878138550808680084272172827690260304875481729183585829200417744581779974837168953346369614870351070824959552882054285469018090816467212467543617625442608404742733087724664855453721919919165621660639331695756660393095827367704904731135718733805445744203328196399771542953412181786382331055973156561184053519332285762510828208063772410667164334237774253773965457661217186308032320708808396838037521899315235558914755236995264368762836111696870815689340430775919575861482822416428669172382974720902277074863477153423118406356354771735368257377073707387351897681733629452581686497694132191141480367853991671164489169461931937222300946854384870221579004537008529619648914072965869137856788290332276364128433129263336583097673213881542969659962231671284203537853938633917173356645064040293006841897103532435489412003781710028660749998932124871300594881034316039178266638045099319405694498059291846299464467957140287084909235974828209009268990825065877809680559612784509654243305371189028679262284455541561395044603016033748735505437180334308902631947298500457470737413670809809046166026557230190906856144280655166534709129933491530238584475145136855562895268960009853241643526331332915822371820067715458159840179441339112182518260612469215026204855556884127663029754368472073235049230031069613286642394870975640597083996311469654031618640471964543340249674510241126057713173757454459415534628875133388620177352561579551562901641252238651532572107478961403522048080053079033759764781847677901946157577292999683456098362046789158645865021235108465523734724284162515415021383095577515964681937014740589387520190613914806298725522607474877759476611419200087545858691604484304225138169996573700950454247863857392362129159878167012220426789766921424581541817928415156403131790926057111883792763641231807282111114075961062381843308409332955672751323591247890040670345449472354466273933123738084272858468247287323055951836598721617418258003758023212237688072840798134731595446882018092999642048514814646283049207990489988971368711302860504138163115880684085061961878961152397768774299199795868562461309741151267570107295336356815068529229814564133748522148991172308947184576941418232694347391173704984966429748388649151227423953271824959382934091195603369400256310219461380886648034679298043519359879384520167712310824579467914170340964259820876180635360179390547592420988444987157300849510590511119758294243754152050225874176209043490736922157783822869528861255734498638809421457377413125588624178808539045307173929668860152402196303558324728725429013219732851260538128425291481763290254547965420420650919848228437490946569542634721982279208285386445838805343709420447352035925603725958215880240812656422484243535203475850871583367619018855173825633837458763498633813714684839987243813945958757273543658667933578556627826191550034973378629956125222238508449986540661984583533253632621091008563555343399349911659833921110695904375061199236049927211747519759939155427195904349291652417570218787462811430059810545573151410199961356925289245548343085774653235854445386344361923999995044641794956628284886163733482860525856360915624688046421601133364522267542098047000524835423764667113659467943298731252133445223925060024854867433760053712004840228438343402989809066914025914489847530191208521534136715025881657062285976589556398238576746352700206308812423171863015129045523072467021915476805038345716346074942948396614739621166977505700712728946722744767212063077579958823645907489922338020442346195263463865543840535738153656710279121812848786753978524757676886518983952881594737334393257130614526115666858880778967824200288063532212857648369443171600314495205568332094371472473193850353006522317375221258047369287283060281366873438000706815942401278775784220186475018669611341356815185240081139336391398316951231372026727029478964277221751240519382010567339741050458033571997744556984089561877071932612022953304573794369771131723027589313214585677401732850040872618519747224466725242066118175650834863172229015888705338385907149575299828062923681160822919616406909357640052740751290173894543480006898940197572692953861938951105873100975122360952304071694036477375876710243391620817199978148235074181678434822972441082965248365050081180952870845193016195005415616330679938726144465245926845791537760477016782459310881294846917742130632892940405642288904571132839345634023667782277364077976970531993752954989421626227876489844972225097521726433117703416705917025004890926655537070979830609995224551696808347707298314151697446943976677285793777788839035121424477740535534208910391692327848081023073035132666506980236699093974605584009470439358737927131859879345012304753683892539072639945855362293233792148960341008427301831714273298972497312479890789904830246644037444004965941988880584425228614762884143261410088677303475716356972772409323882278152351295061915717966355396362328956025551702442960555496360433659352138038433555450717360364813266475708736764700037741101451057374922438739772627513555470913602480786040626112529920832080886270485299563384812085047376257304066650243326914452461378541480271599997119752581320892432566289258302595865013152596536209239666952196667033980835199673778736390771564485936665739839816490463754227029466841515020008521230702331038531773854124895425410906576666709378064511087303257965246815272225554809540536446629860769526269710332964450224202877018078694381483011633746141570526233880355101890990545184016573888919361377688590555658384894485158773303016046576530829026674339910449125456124794915872016618992726278651080012180972011830023840916714795659184279306934607090173159623211221881413077657294723800638277978152230613563701050511657775486624683988136514100510874165045321348803616671139422492306704266252052454680312201936388573525050258416560155804844146871913997858621722512357867596793659231136729914392003117108066780482943359262198182679456918903734930832826484531968849560505877797355485291013101399855581161389810354575164221094117044987088182173169407446487135284493771905583427528347031725926606724419028232770702732641696827037968017157720806342871541115241623100327906830715209316846653056606202181796159431533200123403563751691164060837579813586437648212558793676982530104964964359968411188975878923595731157121286117088909693647285402311240118253514274900081468478950252724163560994043964817065081163436436706866346201801416315889662857510151520840759977929439410728588125594602857282687083480803910873050907887542216804543374520211004712639575336182623387883992863986533347864812487315191495076358153623299176637122281022868532003033478921806376048294206242889140797474721848689576335197884981151550163440532956530766994378658975696122796264590665089399663409425537143527554538809635062161570467953670998293549100195506192481907537169302944240328992548717741580859466592551934708771511373566116397779909021251606856746732411221314464742962211831464740910080394761331430907344962450384615938549427929206270102313682891894674158770980349668670019006966589605557763101257852453736912164527916015650857816672695556388182181673556384879017510253288449802032772259399516144168253294802100876378132369939166267204775659809751113415199438735041909356317551510313607411409656667748902798880290213094639962497965933285099854569154654101387437894737517298489490248578128806330823295239310394682329923179235082094077024270646525077596022781683311210610991682815604424712170629196481083704765663987799805565363183969576941166723901566185970348840772525289041315086644048789553357010974589801869345639266696360494466448430460375327262955663352354020462991168946592590671199117888543413520665968398968571150646548786296614738286124220397915684650660386960701065538105182865857553423624956495551882921246152755079132595980774655149489687920722730741486117412812906524390852440153019084373331891993064930058648074281994968025712390870396656633258860910634817432077024728873451181515759708774414846621677626633582464819277743507040936720957895088524315713259170160246079911561511912824751238542041031107281953707967473119732126400626376954578722351359883205821940769599502109525446680774838242455220190824095615849882489331189343264736784791003303290640495921887472222972035587476585148422400923013312683018079817119801209209052561051910273678835638401849409567781195002986786606472122763224947582763173037912422386943830074026929423099807168482860676937263929723832219168970402524283057146619939302329750592911311489882944100541390000879126261141727341975115474574727811457421944373530489050781759452864794074150983729686825491844592370581189867605835042287697906099892897578846972757185997970788398334015204803031401560618120008914410896542263074774022358632359307612566681904262337624769410626295698374411730496702129060204733650604576163835143945603811801561344899479723646803175238790753741610981904567491033490783203204978977900363398464643859320907020241251239718158227271438273223156063174965471668716812345141075362419410997628480307651381871457800740755571433474304460477830804478166164580684555019836527697081449317328343498910263631705193606742125501145112333381148012514486628240452954368104776751024018558422866825321480424449581667189797355277818484941697611519990731306779618589485958445191041775833801277778839484990930340332490609873785144211831929063646201113302080152481184987588764428128431037476075894162017125477750657815394964354910248312184289361320689267537101996084125929169661154436669615327932605204113049986330109652813023783719802280004747310045996331429853294165288243011881843289564755965094664551220582341070744221900915110577237742654834337570976895351299937694787708114164956351677809794572154606562539396049540441263692347324675382097366874277185648258005978363129710065048186184229632115062838999586741591585070965802102274996097655022680121081389352755470143548914475336408326540427311443379588358991267379383294349483563882758058527810244637312856953688437061979294328758505902375825013684087558617020825398373358631704586393825606849532069246634498337641570688693428543869671649350573658825679567768216387429600000152531800919004445561151863129463780700745679542825926569780123237385319030994363890988367429537516585447312371780784626694789594454629590824067793253080980403110404714253013193351968119332044365193242938135826097273798099752075379950301434196117993404020573919891424668954112021318996419593658620097486629983172224992255118803410491920776841521354614389576496125584873101379942796177106473559365034019665017664161052279390712861748354717637767464783412870572641493246327790725474463090774431517000429624723937700945619517227872963837605282828266182436007987136316743447600887678146292741836975228220707679091136724469403115558928604581953806261949386571975965732610596705082299817164827828961718088275221770314995678370091832881793445390847354336459281170363655528725440706140678675440759980675841110051477297679350170021193394897877309436454721233929006653491193509068753031786666953520812174696458615551926552130782691447340303213852581391364410598860899399733467619694377258802714652861076919738055841344636160538766751104477476719419769951901418994761361826529927027221876819996651922295823589115398059662395498579682703979228084796582081857282766751413263181308893274865798707571775131024168030900772413666461655682984372974006999192826076190077821560151528268185706381738596323563669573554097509427642326323426914046410816933030732014459583465644332559258975752343995032911005490164900053532289794306564542681079727901557898815807923544573442712672709886836139357597485363855693904340299400219401200132957497191930507419966085998374516745412405741447792464002760311999186090941428964589083725655889966487751469133278986055452229318157381643418048752553210627166744849962181055487604988926201591784481575937680049911855222529897031047905199756214192290469431959248409472796595186435631333302498538512548722507787747826516646092754547540410978402098085952761239417377032279543356170114389064784519960914838871183323951002452206837578476742664454996920981428508287690514163290390855856355396958946036686304282265938954287237126093802690272161739383189494274803756681689542421793985985228395381198549313348717143432137432891929514561041138918665247343176557358410722515900585479570345087936156268368779302997709653550734434028553402977350586176952739498969172573029168436760860458719303616447723686575791181640442959952050750697513674637273361872350961203679925957973240928378162454097696179251167755478765444508917775398889507963959453400044177437998033006521965561037025722001647183849922818123635522751305783485038636422711531708203112216047087751335028973428124984658720474807881654347461277901502478427717949863981835772010611437872564262948172661603596208227456072374881333113888849191676971510162190983907211459826560317262669838338375315873888082334650257105580411452335602812127497718584766334950148138549581269429120736998980491389539285321482575876125153866629442337990600575261586238798330826444912945478790612389703073336746367222301486594655611172181959753695011739625990639473144150019051034515762057136509489584507419590262548739435436819320956143757898737556984732149102966228149544203733810013978519006305428522404574692988661177445057331805282086583100987612511773459215554900334100607997852174942170330459364809515577387733107861868675277559378692652952159624150896483837297638425921517289382362544348236393562492299457177228779779068307493963280549468598849378409627380778405000716413068516438194779984784587468999827492883443882827528013710446445203697632202225090079956464273850975694435647660378662813354208395617121713156124745454569713877125745957463768114824440920235332753972426331603054267365195838132068908430491408344599778696494163914176422109969761211414725913128582072971237679119440695084812253624860183110453521348218533727065687588666787746574778539214450183297740850962313035335282471773728755499632421116544101232873865898781834736290990121201268483777025666848038074692962221873803566740490451000739360596665954211088220856240992883218245601612648547884701333198088983883342789161030355139524394405286008466197941807543901833412545877884209662462480700050338449493903051624051363313443216487718182063341416345756854307775180916017033582200754530101825264760594170888076939052435547141182131827601602451057581273271208147333928270676874192989164821777055699834350662893834765554717732302109444885767023303782650850151222068784058838040381845616273083915899100835459269529916273777174516014135473641528134315928765472647785681175477362362564303798497476289950651403164850310392302094871447186606872319223361607257709888965813027384136240042542121574064302128207068566571651597508352945549153820577773326615258981997556159034188341264669675767077615970330825768933930609038875464910375164452383297327849200831682462010841570489455348834640157480777627074390209164667432571135999055053811936101638138016280693613816732610558908586356522169531591433600891329738817820231409898416575277485218647653180996049239778053247000007234877158674165235270617687676014903513022227442319253513528913495319933410763685177483334170933804337148517849621712712379899697649468683737971758076472433593953600587900085362884160882826905905684353199724939367725571244942586938264806215385498125932250260513965951957777541858456449467220414605458182763328238225074454932861209923116076470878390450753358788735423480357007331327589803988068070215891076289404752681622899087314323544453619064757053546238684594787460337385886419860566949392334970133502673531372308974616782401981479899385354072574133329451794851587833301985587387510486205928196890175323106331094709559926601565966748722271623573296823464012078494790829354436225137334912795998041877028812021886465873535272819474942206989274691473301438680549924114113865544939416932486032364876396921920623089961440922395718345201857820142373216662416570082365907358024027100862374208897839707596895981912818442562672632014697575703863235543220284610367919610540299170297649184490447790213334910664026099314209935111794575792565433944504202177515369361367342434098685587298148085265055364931633422113577581077061245476659141493938681365206617737012574196576475345637052800076725491650770604013009606966346376161704455282870563171490582873250579277722936759825871861588782343665592225710337308540106326241157270802002695757182015236709262623924018789347331730243764687535313865831079380517600356966300611365256537707359400384805279958882563501067948918115736159549868008337633924252170514256184238021224585421076706929212212634589109743593585640314110409763253009003673444265759610560144370264536298564669105387042420796645546353080907817626259798416994300130048844312453748363616068595528597694077001912581597315159655899650519005744791902856994914851522426121185667577487192676844788917088249117246329162191745770595225230359922104687581539760743022443846833634334761140181078757245126462757912941122408022895288427981545041524118483440355785078829903392232146627617007940188638021740970982144598098353629924041268358632392478527407220464516129480671504810115538918652867404588846342159890912656749269745343945518837928416725614497853976732644945490350570374525370816088181643699633200661328478981639461553395463246563561766488045374255774156556279020562027079829045606696238114208610680544781367523379856587144638018994573976198405995149052005431358547023509558863028523812991796126680268113271100793083563290719818065448328427092658233347896114570121398702739408325704389088204984947790578189496201153567476482382172516983440946130162173910046613531204938666350684120699389804414781541867924550511663639824885963022161927312743332353624824685744418239308590113477707768146793062580518602102558464553098255890696998506968655933204996390885953592181229071650181006658164461001974648252790067665051888288901399906864553346498869710002227302238014540072900269259627517148572129806209790156349188312254749316695655983905450838177565476595786847328115295955832963230193468663318011881019332881996406381198115799715346094863391971753925265586623062764795112069791377971821809460508645602971220301513066301609286617641638629823533198688556794928929923356369091351682270046284693146705585099589031524933205853226248351402661421729033594483196669984020765648053870858056218953560264900407487082686288295615668107576151823115169274947678658692178206921839670538131045866421154580018245189135398071172820754691923090684056492698060978853425554620167470888334439753693946527495230397093149934128321709411458529637111139559617118127916986709504973983405150376292224114288391826412394621556172063795092966296025817307116756220181788262698486935830782341606384918038239493700611557859208617044933272525188145403917032702431898287295094505280585241164405953431084518537696999654657888504555658669443495579252771242482412911504930818902061347089203359145724192630814025876912058432206093902139952695334378994931653372350972458204330028271445000723187902559225185978901542473561749430462101149829072813262253573705570944542627656107880578836521814228654819472105485998242361702893570777771150551091045701663026355582289158747536088322155785493587790421228432582451533412603034026166117013527411135194534767466888573487676487922790588231105150116696154906694706121615400933014162961744137627820855435535358849588120376757077349954565380245784963381821453346983075736318610091094601169800918340066955044645565406994042636317314546833150999379430115914161190397763268224165223739932346337884682882042266587412407852012355230900530947709489220104252525407541906892842327604798052610488037004176446393244684682592856404530569403222142829412226408330329656716997948972683601547271881354353905732921682718069649660233148671914021086473851104768298139653646694903633195994263752259956195022508780428663939516452637094753461325865193014186370617210920354936757553468435017307071227185986701435724901120165917643583536368206056118881163109501209458325033231841532491157012153663695070451097925648592642831293316995442416215833594735427275527010118655947431163775151915813780915525394307610675741295901782960057095285400228889185092223348192640360194128061107214868603327459578802871643754127995488004723952017735036878683703714129754733865401370079917044460163757142125416597052011198968448436037465382421149606868014572097573021315852957199510817814766133654532749953133302300308309254738340513148053732697693574788465737379173001108178738848172018422950289130572775942027005708988271111682487071937391502735396369966573109566492092340528735151228713046543160597422744634346378637004563959504004008415901889285512453003962625704682981004627564156774811997805133303433013613936449185569424109299513236449476984326038692512506167819517566488225353594444429841614707648332140869970942451795932514518302528951063045053743730377474791423295801013458845666051688297398224775204106415110514786519299112662465762292204916597450541928856399199892964187894565796055645916367925326808907564211828574069966898155795837224661810739375431447237198994979573998411107912760048367527741914442761095935848896787798027190114394689414965145330621775964003853514206411399668828808079639334938603158680331012848486820190326452287376616206240018816152338075621241452367900605365848766018165796040405175142816135759655111018816542862149505707608807580526628498379408119244133036667837269202503234115998800937991779565454119243534016980400525897252355202537665025000575193975373926924678371657615799580574454504236189368691653498896164128622532124603123986899484359781890509024942326275324817747841645404055315360391057260443492033991018637879533728704235339545965152730563885963105739236747983129817609710741567662296742239554843642474456507823476182254329963870633435806871343438029077782072366364019560255985826906746987477372582032446161074028898088385518907940169384971132982301695971763523272076782049210321513322639730437670769587945204280682582070277635995661185329793136466831621888823043417566862866390139353583020180675215927871847338543288921347566962222353184496527865092317927041670145325807856044634984535646706363491100627706519932957980640137514279610272414928936187373363553320525078176935862741864077210487884635674220713916929244884668806043350445535099000567137861952184048596966217372492225495558894983219088214059460036435248499007012394740778323229920057966047902477457726679513623677840133765971243213123388828690900161962271036260805740823671153925742230941405283805972928400527437815685151718128907086325016997151748731266733522240314910551418516898313787498209145387092775264500765468480838489853755321913851490960862528993518550916993921401160784822948684238733937897093604623123271924309162751804460430941296912188943052100061775510579194096578867480976670061860863727043829935655552223522983935481745987023197965475131036654550261778501843511716204175158426719272462380218697484413945767543475967099627590055940331848271343751290776886976826324375864429518386633067144091723546604433001432597541842875332926314892972315166673536293454982277469274384330096303179143376987471281441504438388821506649734510355180775219501838449755297324498410247336975953621587654145812181836242518168911769599651731332979799638807257548353134651050897398281830746398965905521603691978637094665825536345955482059149576877278399431213429355447051621296404317314539752670464148777131833451170596112219963883962373112651797910548047726551874823248001166791648906374898687525418805461926323981497196706461639581601782257310160095855390123808241751017121858255463597265909500064245402560633617934637937804224849862220411680121673791024196631057518753703034333436787044356778408242332049271524511377954614353443172480998759945909945272224423082949991300680823722573115207349869354080029910804575795312460355529202785087803729691478866132075553240154379312062499187631295090743175020178712504257391074203253277005617050497354837310576434546979602451190340920132811889630910156258511597094742017444479784315825482221932168818537906632819255915359477391374366170032690809486939070318936644377700930853888714433953390598257628968055677660324403689527588352146511647109902531126329595428817855063693849881118568540402688852076583447739435579409758996324174210447935116161775540741979634000867562773478333706158514327728590134945953823618223609491289198564036595977557790100288163538138867751501734787982151470155536010955748246695488452957332856601119746648398860228860012886671785209258986069055180319588951816642837213067402715104108022150108359892329899293217071445609305688141932527390379625277136251177335110632926955103155816525860533794679773089523509924754359603234693666088583783952362217809539580252274759749229098133209795875064816374418215329439188293224381160051572870583636677466809392794843990479352266508979216416057652167500725467058124961832572413580617521468266707032964981885195326860597860167539912750381401434776799874432888950009249176478484371475262288939601618975278906824390163642092337204442055876162257659989626037486198216721284888883836055744755111012339405922213221783807497367457441380517984129411268848249563025817801065018383710092662149584471003200336952460599894660454439230086187673433364990191109087623310155956146987959873305479467673190750750404343538192618078840422619702308690633057220559367437068223196709919865153147629731989322607178902202650929976481658839078000304414698777201324688506836385700675096774705598016221044248309758021059279366389808096370916085776732797516767453095263806137106737930910760715552306394941290846469263329668825663420657437133737782694760924355293914417032340483716661454204352576098176710884967562388762153960618806645242155226809037208125333507042474902477736299104134691646677555227222110371386175446897794863349679552753396879967168130934788252641967063452043564440439283880543703971393043595873734150796471627560247112182210087852221327302375712399173079464165436696901908570481904203667383157946129115085147407934866584662111849120416282702959496613028346634471963315736500398624306910073144288218716497217035469511869393368575047846310271625500033224794175572514409432263350378156192467292127248265322868585788383714182338285089329344325163453144973721062891362984991312189984181630940989999114602647265593072733953833063917942816611648528514491712616013572669040548281674023127056909106673359306482528670496019691395777972239846224835796588672966501128484078147968284513508892656261475649643110268276984086912747214518990919749840249329863953734969182699683950524387675167686766693755649926344314063885076645414956749509526401639708931630709112099691554591539865360222732924846896004251160748142607050242132768498054741101345680884977136896559244385144982127655967896091271430815643414841485826983821792599176667900698223638114206889630103113308259383008002304344739420494503442153908287794703919957534544832439264377619584938676360237279922823482429779526793624377510788813409980754843803479264661527102092688253913011101670570415465158870789768535670086241333478822752907366776579282160234365536477669728073627449959428370185101274106586905663805652821559552795463699378664290588978192542474003697113831890217831237273517362033045846260240290697972277300156495700149507907962367988758151093415918583382293036487458776173086365248655690782583150653642902758554765169973940991080736717242335347411059446521749414403933423830018309547242626355920338962686086105152346977173090957164015536393055206097609759640708706061472967847373774515338337331033526245400375816177362281493063294999602967332333855512672838537149883561820223599841998680999143327171820596696140938172387930727044659817548851387542866247466087553112189237870127878575568737389748110624089386768103368958879815737171923701109287492403261009757407918145700772161644240734386569356537563103105261932573113346506466220807488007358980101219083331528883121923321726037986439885807767031724301314919491305619013522227841554216302289407271324589286626372256002165569506380759585162005683879836247780978410803465348753075330340279020150431226835150422122228521441218664700210068957135393503615561742505463549034723845237154673935275758927423546682850469496283132475971628398102213351667218245338768326793007488436722355571644198878798928214168171272061397750883637119976935831171897804543426855524914428017804151038186686304304518577532647480015023639168909842844854645625466302328487470384557398691307561330809146528050671496440943412558490107525217454238776763693360750496800033765999947450466508197784959653926078607729408956102903359363204533366309165611962872547768207548208730336355152339531364449578764456880997886039015560572231791015037144459180933950979182113949021200184491807757559346812770554152194400575281702026807894995148002463416366848148016945877452926614218024463632258700705149400147210618913365494651258506906722816883062387962417153632816597519211115167803406605074038869343568328315950359726490455553352116680612430394378917772318295841266114318355598901434462353181436651041367506151157232740834302723351095845781960095930175570087757109585947582067509660282926989917836572809612615397319056597846244584281102039331875672513007142659385848263969007696653299237015114661739784371303148902593991202328281644642249704126614607319521481347504846262177702155223219002783988073722879781462486354165309427111027538171465633942678479432329675285585580082537601171044866325097778927122995014351183937930680142544335282921454067144105050328036716589500031429952603038278327203626864579422980334525226820492007721929443353296558434523042191843912615742874718294265259695765310005445011720492114998390116573372038531057902381781466027156635727681646902921852597023739863841376899714671054819032770085474893906718907586490155297163188222129666416381795876097525893703797080974629754269738287336547590360039513173446871260647682178585365367938632690022297453303430095169970130536574762789445459281205718327577641164804626531822243703666797782610316992299535629407641337275046944675556732949807557111711902695950791440164586841655683143167249926065278075624362165100835520292614025578108829169996921238492555359810545652295117418835585401748850161289193057833099435362778260401232909246060469579812028166863568090458573059150608345423628018802583809740819841972719727703253366998303098839243859653455859067529595135412066270172458023489994331286605863668412201568658493643520700484418083140323347266750881985082273645187249338318772949303355333493331720020418560051767757537004676006506620448381407664959231720835183617753732225774000120467162383519950022715727484134078507374070319035064513979472027128797565618463407874876452167867595880423425901564158664934751832363385501748088146662559051800894814719374149581046479621077599270820976921490108912574014377332159367505034007756776625439651672921623534298764597155270835543401939184615241459109137393999384701421270978900765576494190665622281295082328119212022132526187229257251673843424695079460243112472992704677705626215073591819175609639637203521225166696758956151297528628439932628239530963786431309937749452942306509386165285212317887238219026927681874272556822032597195866256216825312162808020141600458124312907488840987802888950801430662200754579122948730625492256973789230045547474215318460058442752368281281847475672647392783326126936811956183591216403269705226715015687528115880371044755058286434630992046947257146526037432983365186809815731198762091534349423899883322266986810638700211558541873258791195138636892106956454385870121522808440026933458223778070504544308364489623672849375539103148412975274353273849716627059174419084299394746471027075247456766321010061000025077706169047098815666297777773686821685635687414950581064469734041776610449216923008690598441476858702487718839653776047990224532537185755940399896984370736944888765437816327770101077409661572930006643120217801083588308735315801245197033421510382159891159053263728413541081584855759099772351843673476141204548731544492772934625888016584929965639533161364179021733289432987931006465532511978312247995776967084360376384480415949698801602949525576029377267122669984093153460828239347725898665793003458673338199950222886030980681124866297614915784117013843470535730064954848592926899940223880737247536840844515267419897114425374894293027169624242480826950117663393456370356424252166892246633623131535995758365685123340872350394688166956986459291170683958750410360028108604384880900429470773210022650004013919073002640020158721804093718446466617436295887787439491908242771729700296735822110218608584871379285962882545387509297703219920599428722079810439384132001174852276435783502575134878636515618298291873076415704653882755157586936955069115946731823715640209298931486265529684393213812264802853294018407751517644535108830210309827572734495231455317050492962735146182706194049097366615273417291945188321240563132319735016067632020019522389935011584083769824029889563265722204576252727794459279807896983030952364686035702826848699034399789239505523424543512443914505362156145864574551077261083505127776295754591609631812199138295282604306250775471888884490765642462212380108787231539241933634733255879827008574946475637365417948834927955159150570390878389759169134935434594269698633417620286593419056134485492484667071506084464526639827154443789565482661975515344976567945750527576711059085970988972112692777855016651106908539416715966677664409371758598386614404003273909578328575975533771526145464827856979033590072708076344432225612028803207498117503719150212381400513137660040956981965303469096963765530732793262238992725304727098815588357232656590457403528735580831505026670041479155262901442250811653768683140406913320965161781787435458950713596203265188300674904500490734654187744399139537758079434179819021041151234106977181721347406206082345892066449516830471137638255668550068646191709822977689874579489663376846035696182848561703954867644261224582779020713391546951524834741943926305657147205510160134224911842329228338195651243281316829463426556503230751206134411235121647894672981680466346092892608170098435924377334705414254076123708159494036226848497781226700547859745456984285950986146982130930932252146298719590231717623090824620339287471762707713707943368211740099833425868210821416769993889043658325440489494293503087037505176746362812311564121077384862046726235438761137085808252104600202933140484299400462060454214536350142491931158155430724214244269234509455121250298692786417752045743252180403493118714625029765138851425315346798088693863561654017130084548371099468709232987644859686714927892724973467589566561234026974021035102422163988634989578911718920542358588243536170516385846183423382009852456616846258305131008032764878466380610213672672326871056117062969252998725825044965675030055808222721500059992757974898842960008852819199567233310991307516432380219068114650978552548263877779577155681490701113336514226685582683992895939140362772826105249724283483141077102594358473707528048749511972025692543052704296886059375137056866625963644615281592771436867455318635039496610062539766035109220986070956049909850981766978823657524652039431227949533588414975684523363351297850148820014110851486881905777288149244857438006617371003748548284204908517749337045546989734359314245102569644372206185522949137835473239756391262765573143003662884672100257424197701381464941089177416556287900741020987078312478594609797325927121483074860650055088218983823392611425062544214067174711972266425976886670166203635514852650124792758468633733151937159204114176466405751209207684673930066183151094320243015209387687331177122688220623809275442049801225226236912069244129964121011532433668140334144860737507106717276588823954015037265846746221651637282698187628240451376403474572795214828143100260807356335599245431663376157685205680961362243256488022078192196835130907040612443745375190167727967747696839160102240266978651237805297655688481197336762302363544153224873018225144525887701068507261753397808056286554554400741569668842660311441379622558209967193885424709784128247033031287852982517348185554453240088435466393868328338002164940077223192301903550385265522275592892122356169184337620104907718654279718531152309991779333967196081184972477224026165767157860669944661982471986212824842231113702162828905489138830696147270470241575495555235102390696050803949204445566168481364778304451395223279903542033651915433637776745933267095226187217520144311499216486354415039100460014415286419397016997276689153885868937680090244620191978377760314457799013220800333504208731591234419610127607953756457038458751944668547309138668816382951459086456400949229182865414679695455361226834293294311445109909756323277483202233606833339829593145820208169065308762503432139575814505122393221510963939801379625501459599062457996521595808073878102641935457622329144455905691377403110808591702860814935861583632756294906794772212951834092094258598097100945627931524749932336188920746085579401570075941164725227281415265341653622699483101034451762350014170301326350090938580088099358941163477859007827604620029952621449148955807116474495142919995798629391634412803384680206559780427212773381438464974623146090825899649803791417219550808677845491625500627972134237909507414163144185277686862986201340422442050736103685726844348770290483033183070024670928635626363245002086727969528394346587953368558412123247665751794223219438877569333177120404410345801048205564469225195650680046396924362833610123673431170484356516874111379888482936040991791527413571546341318821935195025568039867929264143505108299834675105404084414069768547698721258147304239120128636322434724804100800139825979944878056926750951273916954155326285347298252106618377804866858758477984469439292908178147208285621269098598250511537264351063352577728737188226414674841908656607960289177259448639021285492069298656295419442537866335880616359841414708023141392175350008339786052148878247753170880299066809319262057263731541513514841410477504619006643179923277115835908240082716306326426150304492469716841276305795516483071401073968133684813806914448926328372935086985126081322326038662076963502854500682862882870153336435435402001529349364867528672968544031642428936246892450801039035535760226400675063894580525879316788451877847649400190072830793705095281022865142675448856502245417964334501959606793705094146092633877251090732736775678490679944100430573523721680295185250781783510551055176072289599124786695151852161881000303341447381942033483620671495200479456009890664438454710190949285350555898746053661252663177039877054662013957988933434515475021226244982634708087612580938143717642310967811754113391398501092607995202969085248774058807400952937999068790905105746664003294831070471917178091414999742867690286194919867068556236055409272423283954539812176727916083363404460357041277515466660159915936465879563522477993421914557419026399960600819248880926876626469780783268043038148422204385739820103587233390122088005901415035730273361474381866853948350237392638489675958486147302824245590796361324897373454417602994654896024028879575665206993482782963948100200381469534610644109077243237169005101092084102214804146774092357298648738442526837262223038416855972911343656913291719209636489120009441634378668066221078330188890672400772016792417053943011718688130804805827290559361574460076766697938191048215688116913582871099916518852116502954784389741912695548910738025138278445422831389590435460562897501008844961657382412908817444579792715722843808033441021027249936683169469265468364315440765251230574222107418194560248433336647302690835444969997752801304826140515696109561783657333522983107551212975273914235357183670394428286134985847200777208079128375332952583369763001310732955424154313048198525711305505296869031536055299382684842614424133510928985594021541892466438142507971762186608061024153961394006077818112113445748465452130614760339648127434706648098912200267984280400872430346019044290938167980382153479469960005419578212135851002507956634914637158865240779456188773821248111394248067186522571350219736477290567408821803338730207149416788635687818450097008043252047565898190923867838933952754896557146751092835723126950226500547447857125809031601988109596541865622059483345677168356354713131946076986824655277719471699135180614577113164549873285274085851638203396432631140909032327601399167491339012691732479274991380595413578854782887683402157063514195875571714144246269123567840898771582464081602689835119019685121327432417135553400462666318106463309346389655944034640570299083944470439308966304557058883856694922594129727083383881704855520272367262145285116949239675694341662276022976556215850456809381551567551184941896633097862452746319952419073828566767408557442617565639076543103830563660329393881297694405683261808852440214703587202093377695275626560792583621621288685898771370887382901929178414310555842047437853409053335059385257762102580259784110854297673915595445544690976856327085494759464228762127658027186192911720581276668828190146209412566796763242802259390146422126705757247044668446585315779408514710422599516841581648228618549166691315012777855569402084816054516414119198350489633293671722812769429986757769408175337079252459276867493239013220358679613884620325780126762489570775243170217480571923974400142044083857909538420583426484715142328480796714667329438169902450381878811045110631513308942546209058065862519006080833769197949564984070883919219079522282386674280504902472931643816488584267206461959453635790384945747732440382397900611484739564433506142378659346334209414183345461525815232153658385255133218969065597048303406067937536417627003220231705573330857856898190366494273088148413004553320119925595824583301013811641989152986234031766815454187310372953104222389795768481960867736935765125900236463023977007048661930151149290671790248399225725227272429355255050154108662850800022706009572089573521753967828058297923678612108141478180886343358905895755026685807024780857071642847652558962607743497801039573409035018940328381522594769281357185032262875781158270198362121299022443132883927680716509153150455847869451812088253815456024415043354830328171461135898737496163746549937563476083394782090475944737046211646465574137579389136071561070824457710639696751113551369445234722030079229853731858345604895225278739516515968635939890996155315878221831043170468026451128729061586834610856767900580749775784436722332796711925265697678898684677752463059702354511690913190271420216686511884452085636933623680555603011798167516869215293790770937217772952820218332941859360594747544813879743846827136560511340560742858617654882290781733315888040290318260516868180773167222509825022506115944660741398425218549622352876901263369060675150975106648354865039161027778384005643770728295266960815869202467603299202824130170871449378524851130756831529164410279119261923317349143689033033481688563942731189046466446934181129288765108176884134210575648589312397866397493544316246065031209282396535293345804831918753454075249991183138030758616875835244256457028463351723763665403165095165644412080396482111265243330366664494179515321981485960617742280576637434612963216906198919231690621649177619271429977152956081049899995751037205873078733107427376399886610849884576835253035451829134641681007736280949702525072634713759052113489082448454064955207880788869888376211300428892286121790175706314932005526644630353520560721455615552943692236335747814837326248621122452104885527761314814046953859659877223383139205422071761660640148315323262046548613107490722809924794394329919213623319616282715562095131545960830503158561497932856895778449045364959345741758822401260977407246788107797188948815971339410825688206912296603255305138312552082291345212118414315867729563431458192248338299043930161472630549831917293307915784420184527666295147884928104691159155165172098985289682438336146808960764597630942783254552010308354122932156829958716504681453907125350388127567694084271900346525023958826148696405381854882022621891202948802637531755837855291575376561208067708802349919320882739961219822515052842727181198282220147828789279861973753464341935394599360950979770855705408937201118076129801817347204696206673963241890492368178734051021422585038606027321600754509564633629029690587884535335576827617295267606944689948705929232369953602140310125521756955285048811392043558186093542997066868799359990443638662345411111829777807202519485998032250875924589427974669907975267692341922553840564281454542035150140263775251835460915157957293886020453874666060461581451267797767995648343020478975195286645701374561688696650655435655748249063146570536193645156028125367172622560839577018950677469906187710353312270678310996992727348663212800681444619941232837889573493502381724079508588766627347773391840771237052326914778121860010373146480097063734413413150023219455644419172810150512392602006439750246713490232184382932797638742086369263607651417461086952335795192272303204578690568059638378491166940538051013770316339717659376105081946167436195600715681086329754538832946542402923851353169265682044569791328284366704063200206241958170777835096098430386310991047141911624859701745445551868817579911248984535280877275948072978765418326698805744117925752236448604155095924455308040749591922146930143874284749642866961235831461650058175937745094889281596711257262500729155279479606778256125954786983240985637757576101027868791149244815139614931704402999056894003366160660858451185295698133302414223850159824056205206379789826875684690395245711044374574906280415349313774836716922776420062127200890101615165355304190250045416854020907425062755858295552370947732731927938448435389223357444512432564068466893714183990049694194629102356464027054997866542443398816327027151511391175951199922245467387180239075302790371306056196644189159876987044010344716836565316547334271787405302166443507558042894432978567480219310317228833106333954193911098725318197324787254396312085138533369925717172054324057636393783687210446639271173460845851508553445142432383639531550784282703559481130854082715776086424315355856415786728985775910139812901319048733691970781015798082903845284945601018854102991818054729063281613379589212666553125455199867104075155458301970393770269860839403545825019881332460847956318125817507799134246337586707537011705184625721309078120048662296413326479551198965928065253900278136507610933878529421265126938759510355401587118214491101247643940369673970251431762832208824563879442975939918451639945024246955808662270482262875259316314040912372901465606355597039070073629665409304347347473301941355399892444474803198738714965730597267707102245625218075311809259246361276754167821264421530534945014227105133740525448659675240398537207202542679153087632553759904945694040777514139802905972048686618004676784425384168209865833586038253781919483537016454419494332149515498483959240783345192706154796148937437434962842569065205064121024623320477961393666976443277364063540522742807228864121779799073479355628580616341060508354756097564270502268661889145389296450880212735558015682322974675940118841469758523973631105676537239916458536496757398785161766608432842646550304454253837815168264730445497804347916929086956409210342874843090177335687382794486414419417286521774291093023274424442264987232485455201678082662759648742192247707388226725636908161196193988681195626555623212615431896330626765082009986577021856571861817332242090350009320903803972282174543810085372852368939417222788780500537571742223500064667275538583687291550878028232052352299047942891841397558625065816670419786070927318356351008786467324145999874022054414091770881550951891544961566046076797789185120095204857472606895213201625215132189899160595737239882131791263035710895886086881908987000720311559537863735330441927900692448105746166052054339619246118891920788564065607477225558924096113939818350982778144002931860081645758131849224515446426244468135090264880075154584067719905918236949157066728102153997040849281806333967903645352394522761640380265056022440589997487996381333863444034513659359172621659438605148981149091006319579853526764797272909817381190908999480137139250817343560188234532077794553943900711510048172178151610981832726655700389070965253873708582156471927002830737730129610462904340630248579126852606562347881323740036294286128476787809873631751193942680472807512972457111466599291752634303084946324975881627226992545168838462538144214614439841531158748693253702267835836313958951361327492873611769655094979629077947157259811199988728356712335658206821710048658275810479176926916649590457220864149554720987435469646612757132515569558129576411985563718456521964593957695910251487116869297101572012048669112159049519369133205062698602794206950205252394888185203983513491019314864323118747881490767993077696262036601694420031911321488743644638972411166087680971349041669126883576336684485848678380923826788688451346592106415746797600747224826285111796213230783123248767839659212331137211014701926845990913807408359966824649753343980973187336928608476731483547188893033325720701249328509727782896032812532361780379949943456115538315445307910805480745484715842483066999643422553154414932093919582368060040083044613460053216246351963779806631071589418237910023753264616616046861371927092341379214260677679784054541055217623911047452157617130779079680511600767955409893685719669863400088719209117401311512859674128424365815043662820263248225233097468209519185915521214094196446036040086024635509550739775655107826379175109879017290378602624632048713246264179476203324400015085307601118676245008003961912603452697803419875318238543707532471600987683311433806039419358464935522914888334961405720764189699510687602452923813212321084161916371064164395304649135104001306209116092430769342404624807821617830893766281488595668737876838430829852111708844135740254617401952729106978654489769031469050503507159679450795261097209429022669899804380868929997798382565212945099171474925210415651812005900936200071641392335774183801965263541746512194605086498043903171097487959231597306688423271353540868891466429001119190818142440201865114613061376695595778999435947316457285804631106883284751476733267800210592249382447351937787553363818490261236552296760287245542884765926962503810716806419202739210671048913764212111032497399552684121827323970329990421955587072564399804880084056953573951771566928421024006159731125000638224342305157072414759007953033396820248089878095625763120533589958472874214052043912465795670853520478803707886801663887305158882979760857653329161647180291800279384287396249619774173175317831743519544737945377988974705177828180219741890322970178592623697144759660223350709842149730262012154677370787821601753447994087223167039998142265018270973173669088861154371298607345933654599305595106799186338880065742948538823486106107769138699065915122994221747294326958092703863696387938430901643804161164108386020752899294491228315279758595440823525399541096779705383899694630826817888552376698910761832475766861364185102664801326736952602308965686158610721772213723149050743565248908418585851663318478902080427910404939162273896472726398521882274718844809383610990620528284033319865831910482249492627082500796203818948114363745063264376949450904292168201660916624430956871525768125028667775025561720497016118259771715475672460827883950655116778802163392187262917335718527293073849402094464507898671705071806123241147024340060211736558047640140036858655970421220728943678175747744285115721755638802745385538727737636867202669611505861175410299674831053784778621240609189298444892885119446950387786296746892590223437416366877942206631055301996143295463535289975407948495082973357497769935877830411168990048682946746797432608372252528031378156239716092813360976505125112276945272658891825852515418069375516838097883844512551275584217179181758299227860038881559100199733804017612474152701903206592023572237748748449197148644783854224424958546001700443376739620795832466365423328255400036714509038467931956779082506964640410582697966053797384886215583639092432974776362867130438924388745021435094681229951992844079557007569253695399450955250659416051767727951639810007500003773174350518127157165937151792299369696926603566532475524787250165114092344092174051869179388416643604757016478875063961150258083405633724657692571907036791200761783753855926297945153836473990723856600180040428163778909563695364439131532883478204298776220067198226245860366344271423373146436014906563694160752521748943103844823373892740769999445284108231733098079543226326624900600021349354079213947549781915367218488738030328521116636198356194385611872878061227395664154103245775308743678497982600080051567213491935653412479424732745444606699772937284900930171533844002397844136063277420783712421610890725927433630364431651207198739142715923760436507002515274979659546623660830835075941344601958198750532807602626312763891349827755825141615418614631682322577908067326044157184699918484476252863824536264695789227811027388253152570544829116633295482419059329050481305534226284896174399623201225063660129527259343086780776320338292338191951121907321162389056931737114099702884638214258509239758367459045132550578744198892603095347168357372830794047396681875364806372739594680402485719386050183972756731465497697795908401784764476131557154209408462814105668328644768755711082427586423910379129486258565323993947889358250425674580486779857994908443515824065835991622533160810997011310939560438967917871790912745002517529319907679731521993841176931530865931920835957546464039073891201263872096527952776185141246819794529396562835477239872666908284891777109996928570452222073615480010946122273572632995519956881581617578413378937295421560197385202528494012873151310942663740486027479235083812141519415448111719172999570571312468977353471103132335735876296117759178274715968715351194288656206209129595655551203954846307652276399057341410618417794588760268499756869351250818331126477954690710757474033479496915717678005625354203814039167660261739702324711408537790375437536026339161372331142794062509696698130032497949826984525481810116160526491117175642416186226849999226364716009344869163334860965787286473248846274424059965012761158596832183297160324687319109487052178758255561862823625690560162392756544194220639439706160706086604456465239456877445410932894866251270200585075291977343997785581995688398151032288955096006594370006935023052047936970683203392368642926331177912230318599850614831541103314872078382789901834238288490977280503615416590917673386799326200289298911568020816689847901784144428180633395749171160155886486964092216299286572638347498004357476477969965321390592081241164777656437948954938011499969822454886973981394086734875873119958211866173315427037681136358440263455796290041917634564761633360332542554487994987069046048783648597354900692096392645507537199746231005082395118155910114313464290608731979295021147218509828572735569624679158366856104626256874626492945465147619707547781071619245472437616633834537213824617046840980157584222060090285409215267001485966887658420118150343612406901502007124119658552276399115850529371311403063569325192109632589420704358473920768707886472594203249094064254071173686599492864995783151536180981822585707488644957982746498277189122410809581651056403546947017822635133977606188040100821584296772148728321675319863240992075215901490877510427594822411052873310570515361521224933256631431592744628985076531426224321898742001023786061678112559357877611519922970684155216587454211976172841768177125761447764000798530668378184109709861099149030835394318052945574563169090876431621121262069723973753190225180926503311663215577112775128690808813958651258664881764103586067116572971308801725125353315371187284178829960016605467080143442227129433003603655853117583285167705975007301342550650139101641526889382662856334285818957032151971477058680330910929988857187181175631391563631485272335809506808834605787014211177215482922438849968662940281893643290465556517710718680936856493388743754116314009504232973155793170709352789967151449675958555542251476668897961164567998129808917000019144552822983548831560719551581726650082399927458732226449463537445140886358702619189681366452922154643705538209005892201124553119665137282651141277226710212704026237188117159108964003163733602607794581378381768542015286611019661427019260461609027835629915373569717816671900617242131974720749045302599149539931545680482972905083295317139054104275280215370731315936962789724709809370284636383666056028628301486344257288222548526657594940412320574936627696528045575191739483108492919333146656369995103509980029887473566104035215983757566665150425552604496701209473592094465859100209609674325002658437749931862869949392287151794994413969026683795322842437690323033299945951459582252289398017246730936428471594204706911957862041304697969979573729288655990897683555884180206432828304060315691993498246781638632015188174075654545318212156298813386984581391513128594247586104098032969174536923728595493082440943802855655655795108322208132295128360753183282425429383221922393433319188027446633275329910454141779295218369238073452674152891532526868363986523833085885831594662449004722810793156346459569326096137185563130840649067356091632163583874708415017679904585807328342096248168266788968640131863916083736097392129089938241058114481193863722895687305487226920157354916858441029681558543605369091805302466708381735038515903343327952158978265800161903552410317044921097335951475800241236920989835567161574991496467315098906108005064783854502806690323324637343749500034467817410568467077053539786947324282026492844182220731380873773086898090916008207201475819272295469815119927858915669677762803018979937050749305025917157601931907572681998024544299531488193942382502922418145992763695999688159962195742524243619801356736864486670193742630115486656240602111072464289155713681186954155175149600157146018150092926864546995964801225257289031649540265795059080222471872849347000490347938506807076748747017873741841964645319841156291962401253151785945850080196284301316897733670607261293073858210973678380344827197104034980896106326690597250532059162627773990815989505922198319391818435644172598577680377872752437180152271597607030635765655223971904328030744785486682082658294892496715508086371765711089005999407528781353424274922376040082662661876616685836733126547901617501373381768838437681679770867024888002787675383181768294886749971012760242692141525572628641353970706330094953624093471320116561983091039399212881570907594847152122905205012436624088504714471212766434680932220166568420249559658216481583957528821562686355702324217634156284256668253736278313971872018583768530064653030907030810417392617499131668550616159108819804014851991376785097798674597709938586898508501909583330875165914917176515568655831551365137909782217441535338887697302232186656310666989467289567824583947424589790281929814698732982183174165550327622848552920013374508046883390791930417195831676785399642564525020340298809114297063038229490710784565216404078118085849999661779226875024108652063254088172796409118336202134688760849656076304973232291899601886100678087648859475044698363034638615411871303494840409044427994585390681696814274129331380396706272004028408330903094248243480032734765153597628003432886045809495202590750334461708265459820738679677871473857751247623690673885090467621131361777512856426863861023060627513119055895428398306046596876630316150312647458808207802271152769040022152446995860082948031706825572507672355375071511742171951759733578940201915427691365391553089661719203318492423538396402350309322126743562056218798872760720043114516097286394367250663053514419512851344117923489667892330332155516240155031971149509118191387850643622312635584032743817926481669495189250609298750800445859383363212034647552752917020576027363573088661393677903685697036578807840617271212438041194905114495169021123161740501699320388060532183144503447113899507140082648338981558598670879158136905241524397169997453674482946131619026733807523439590989475582557857114771887899045111964300958070573353242966391823248388386206663830066961954461111392344450990163236087547870779080132805711818747135111733659495883308514480103105032300475945312738282601761983846908999339865398610003455068551499723414171211962011075007770705607795701006999496504809067597835519024546266332969628395669367207764240093675604260946608503482250819728201641073793081862327630383177615650950060557381828363343653301664248823932257348011852324880715120078708794231741865732674864843469116688103028409930635966812514462513317518314311481560006199370410643398944368874794655386510434090450495180711875465511392897895478456838662511301692157881977030250172736014061609895181739286777964764612151163207584967588418969841755315508524741823941216635127514878226425790151166906810612129837995692363721149435845384449669484615209131312147529150647478876385149805186546802553229353789918349346803149197126355591124288128433032542603605665589202973155482422109230359282783618620608423726803107326017642889087533974050857166198175528022778902787891255720165786525564117398080735454145491669964343916471483499706169703543371955104707987096203091913917156646312529066387677118924323767596040344684237884400366757156397879024948948977367568467109513314459866662826163717273633054915425735651300990295744911265290763807149946893154607160912500428490847163348625627697967208535568818304278111521511037176762854626870031278724379855256660168329696010207522883748541993836597261416762872791750327555017145568804692352583547300902800114141329371149067398038864627272607404033405699605790381153623556426399143584689023016357980442249865656995343017016554961481952755037647862000255642398893509550172873618419996362299885294715771894212220293643572239177945173356263283295177143107800203002516241383260436520070274196469730934670466453713091965659985415241731968468792272003256801789620876939604420821421846379260507521287149352460479535404085812095352374889104745983655948447080651845334070069062445206209781932417985323048049193859893806990231766734665984616012324636118343523086225427860548277471992110099829038939054126987969547913135986873768732405980588755691801437592041763546738904868644947906838758510722066474046994082147435285560389702368029188071649429328026046619648617177172439365075778732111120844829891159271931060506729145896992055220961782230689541278522742851240692155426696858084706395178535618680466159399085978446752557323115582031905601936989078282404493595134593732054163520610353062790630882565020328047680615866780496733377846159773313755453678650673412400390615387054245698349069910737268829526134955691019812785702216009232975984208283258227804315091625374673279507613410463343930547194931640553578943164619893226217721558844557175401268251743520449841283851238517657836698424793425811884971650105682629856743056977217270530559911411095603479162816607720904502598509557647623262874430876829918268045908412898743156262364220658051990549514297695725202494348073475525128197713051585474300143925483307612847870609196366490192633200100892106345783499820664312961661800595695980535318273536271004891895126243173150487328870357133670025878357520413967851596841003407703657313939311816707031814785916597163213521647281677388705828553856248986891802891244889610563211117386962690794198208193905552067610715782057933183383223981743869361188602092716023341896998326524401616934915733472052940077306403530542030569630253600309837047794517260801703169974711181416219274926530684385590191786095978276242161325736333110303291987305180159440979991242484638678450331045486489350605874833975246652615078596618914459303370364973157931808622817912481078513620094658728149305426728190607904567260945592834619061920463284571847949138289513615597861451001156009701591408485272824018923447961700195756226605447356975321419528820187989505600493995552775056771005743190219590714664965404502484042535877748002222599740206877368184045477452188547232502154496229456863916268876512777789783292520905095826392256103599242831002075723043416828506550282338391225811358488587985619251115022976414104145926101002363705128838494021590075767451410044252535557324154736242629216953239899702330947404158011871302150494202115018222305775812511222841161357017001584799863187685308941495403033440826034034817207939902759744235136405309304806309139510852366330366159727897808354436613665620096138725818460709366814489211062676357605688446977012938753625318356888420016571696913417730858685922022732181360622319865998428259006471731229921924236823970893266939533882721492534543990139038717639995301083755811768222405513124982785208972624344733032524627689976793736304684979185036693070032884036702205597074306157440680035520563137802770429025117721508201124174861213752225105051943726355723956733363579306064899067826307919832409169435329861936764177717316150461830500547240175503934667871169099230021492805127381381227230247179883692764012602306721317440183777876330888069347252945260473325010515849049243669724527404823559408619743737298966798666184479002550545480333498756156263305093536390709350844657672518724872577436791590069450288219823813460172978018551451474196801396089237327186540421913765973425078111613880026561520812733676057461323742152768011848440346606533077407331667892406074575124196740110099039502811634836561043381272358362041789441328797394326868554761347756813336570911196105088525772696827792748776595314361135298971396231029581819087098872651389674811272224840736726628102670126474718989013534493668984110967811185373943486872260007166287173848490808363369738465815903603244129401105527351120115268535465688037128557640989557949118171570867130174842220732790437918799304060635804833255185763431537360685198476974218967553210420100289810631548572922005404762392208347687929344412403898899818781836541852143821262498158124073147874980808924087696475585752511302724311038249713045020055932348288266886724220470906235319033904388719554316355191410570982408264236613016820646773552494951292072219522555022593337172574637003981909349288149067815523801767156393396344893461550201576317202968554624972501744057937792697254470650752302943533179778434048332828491769352225936940248812050771377666964549349007718264124968231220291108915741840237645771947534256170746753652050275721654252215422494789071046300509265625807825781192570193020930309725677997172813656685588686026125570537285188541604210377091350493719869618707248550341349218750313286346424903873092890639391571838373410400537906739986709967445748714355620084381990269536604470056171673170210343006163968465254220640084881392190948195513160075895456655017802323817572155937490281704741296265353034979357731235659361867908286007281425872756516226698641346152295584243404042991557070516053770105901453021185292754663903237085188659979094406151453341806729553022566655112951347248043506514895089927474043979242531921063806573505885428553588441249701298972006111544493465479596265856139901195540258580353336262220236064642637300957928376878896100843297042832854527998373837707683865295771486591421259941918371709589860621223807634661858415452835866129774137777143367592817545158184990350365963843449940389745092864988949875437791165986715836465376571634569248922180553715566159165076144914765510464587041760271094835122899337392498915159234414494769645627611754881983917453100469142497375309354928331528195512118465670305927689499867699299216828187743829402874215104328927599300815425194012454505316402146645153498266538625377940888280860702589329347107047921227655639488140844740105376645250821585389645388277174570652786524244526641244638429874373038367743527967147267685155487713426447017134601908309696705825483906532442372378922953455621876274046503016107517337688617740243216988396749744646234934411841912548466665345536262062898818894720766703858258560515746481622876071916436765745204460628489857937444243225426268249926564542713669957406956084571789382240303917324262791411559377972038340975680037489012753675004193498639346356021074687045724492557890647436886164488997422101256925429150133420415409399724560836044398317468816984817292493769781445200284221269329266694809856364407862289680202688784758367311349261297930403997817621594029619073712898150964471264937179572582628139667165144970459657053989296872871547011400777380125567551564385743235796618326557072995965325701821389348619520828777437114751752003401488319930146880466584011413484112498786628820061769634823649791684707806674132580551636867879581313609001877558119377831859965690440429884935112075724993053953777722037876003844764937694978591866223597704512269227655354511057161524914314258364533032909589692927709654571981487866792937613439742476522434181662773019670251117584934367119393466553781490254889404459269490985206918070405190085110749090174475568157882151341262979728613033791152248561819143275530564006897456904526698801860756163848770196181117194438382366996394019951663439959409477908676242117020506950592299258454802486036757009610546743713545715163448205717247589067151881576054811049298828323814611011259657093877654755555388941793298901758737128669493663123643832583802428929621222410355854058108067825857165760567589745502460512448248217866682103334540798598082589334336107652839304819799135531737816389581302058797088831993016082761220208966214955086895201646328858239991602415936692414940971461957110720563290136306228318405399857915617325834570191431532274482388949777564475134186824154172652503891399382108274010836328676385406963930242774969129999913188014805383525906043281416024341938898386882285550910374034329277608206260023669094866406674943759612756500066519283002457972456079985505787640057058025272235537301861658721209988677698448036521441032664845615975602826036465625357933029223189908921648241381870252712024078790227997029511228410273834998633817722004388236321865654232341447091184027811383477673002121759701753479848101203420525039384840812996061841091548293599344957639714903294225082992472477202524495538151899810746954768974310793560805062101968038473239373182759930811380844709586910665158832451517722072901485555741559000484173135086052797969649052989373167797287870238375552466928841355349293455403235658546796252211449196327487071002550277156049938997438190418754557289793257585151154937902915136613853557721696272284244513774788239038467467902656705968632795088665593897407645854685457484328031530283244053571454309520860992986881064150331095338183906260429467482949381320896216367506146289134227566316494018282823173303719007861844234231040783755811373977873020246553393451033136268903468471414772720248061551281442904825266004244749886845472328008496998168990957280655664360740989811881720164166601095307538513602446853346606779737627579860232061042161258725776896730590312365297794774978852804577714530052831421651802068980879719849283837715614109877779835270767145487396401199193924604107464569173762735973720677803396302488445714586823607443527292064068719390400849620190547484330911082744108426266526960153809247592764158972814641141205308096321586786875390013050450568311008166477604113879891380749972286208593631045972940891123626123505414266567228269983258821555267216237759630521187630123347598046608890299947609297007469966297727687065186408997144614711067056070108775469331029256880829948179859746091919949808359417459318157835806092054640276086380991373047227693764169186634385403903503221682759058328219935614340854038101282722219644870889289971069875092194198197741191750757571452556859092954407512393720681434847527247485962837345878977478881990555815222099802278551679050885206393925123448476474198878777869549858874588466347014443741856962528735418577392217335290383054851202219899465087311990186095509499539524848361552067600134272847151037015503974148995765278005012915902748547723776612538929466277107371616513380501490688006193432187435598696739796937446698911377190878816382794791887824847340057079800230945390456854844465862742395947075839625723263086073910379255071256794850732110357828094088927407554472336378764638465879586600277877899651491268483863041627835060668069992847699468236616618808315150958373639084563086240064479984170246060850339578088111166403050975178588484954006980981926085845543614827359907534520856218124613787731469286675409871691944397383716541026715257303490380371076436885873108180467732734734472665892948410164720984295725858014097641136635811974243758358049807295881959569147054027531497177801303796423005966410299132486504687909308553459106416486509473457962303281778724730721202055649909160869843913575030554281250787267776391281508088722763482051880835595306565895087238039029546226089487795509854643995305500559517062780646774862546368719856744826498623162041108491982992697931751642347088078081944532561916865848220358558303030383063063594227798417517421892146856229552046214629458663365690315109572604124058066976314852484845333520522161000196019086406030218920445979966960416187875331051508905983977355620418371682543832027914001536036826295736683996093800788951663065775602612841278309650794600274317815226810870411478175741131216537396569970516907489162991386020293190457350172873243844695647839822338944515327010502174998495419557261620892834472341088833881734900392736118655927242022642610167830002274684653085937857513539589294471084363480528760915724410380991178723706554479179835451989951398628999827224838165641156298360725676593833195103989969473452722521203234275110963414531105232437575776531722263919990959779495174400067816570020582039348879303836859864200170051701834905816721898855766024001213193393922460574681529382915435912309119594467370238314756390095687421542273422468359073191949330811322916677559574568030244548930080917371972052778910808849165161547806873326158477998664174477393625853582131384821714232936297433569597012616467271094210111751310391147648910959528342853957311206954685257708871668088530148704727445469158152795130962466430067943145346369087600741189256635855903971632481501372862943065945111852563355947292748043478397082633799113306197488809415738227652539640312081937641128963248310827227780346490920284834073924944083870501415994448933020580809684446187354347185463668990585152854053689350573760114830394555392016504587933916983226218824760191134416903734440745761699730724322746113434814014214830650781024469710341272657586924643854377683764589476530860332740180596172012147330178462148680973500514663213328386088476797313402782277309456111479906089814255195583390749522602647351520121548701306370783550545978888641927520078196614615667860580831286267958671475293679897784017688854882685270170985741898188477570652130942479895315545049190119770860067358121686278121345189058183685742841737840595962785643948871393343893723001159345933775173724255480556389107689680359349252753028661232283289889509687807431540134127794419559682367380973229820702159965610586697184320335656644212436587383250460259757314953712967938562717669999735298400684385454385541783657359278572856719783028470972025859415806981054326468786351332613307829791591193610949246118389816562942746700545595738034634391717996340550777764875767414965864782652611386366351528331618397215758962415975966216533776903482638649433667440226010400780559892047121057028524174196992222405199497261026833644242542319754129466960241497636189609434648781055606176739243168294607493484915872680051320469409516065026375760994119792168346459321499131812061524970787517782032990865759947480777563015622536649073714521732148765761687890949670188992305386778284546704126277388916837798846090775588593597317304693299244663886342102711623399883402520346989231403166445251142121835770592530323134180920609312812231176515162921037214856303941513673291031915944149859876869237685907018594304518174688960527261955322164143127882430502946121201853371911456982097594105457256524780954119369445085145016215670861713836033751088511469266566445785717136219945488454801315652293364385986327497438737333507408582319573271845044700785252216648767489537214140840276497191570737400437111185290834626819094560463682431196785530022966754432849617430597313945164443135177365169591478324171420502394645294348953963134741294363727816210977423030858519079839587430137032843680655006034390094575616936823713505248942206058193019257447619592343577158632155215685043708285729619124970913695059712825188446657244959524439069206209358639681816540015027691124931938878695633075357766240465707009126432706704828717089815564719916965509498700428362206340076748770334835816043755916203935564493667438132969998449939214775216511051696063269467698563490429951367319024836601422418007313871239755830411522098254147130917433586218516216702264664240534741890346928435209952870118042927641270193139156738949532851763258752467557785834701599982837842315726052613630761029446480302159305705394987497784859502322224618955879772625174049279303409394774944830098999824168141462069268220928703015627230514678211722041152473796151000026397637496584790042027063729934009604947964168781750038846498845246223136928791370278256148485429905618295191648451569118617485928089400109292934250967182450187958300386606293255092825624662237579211014230184670091028288126301345016846106705704202357906610744337323581024807966671253102627276182778903917756472961388148148309578966881443773668086635275904909544541326326396818275621803408391520387441428604750766459163374171861660925029686752646403119062812893548281300935443479662940622644995575182137571702060104030009838924752737126535573859263705564245714533252572664382550868440570294424386312056166206769605278465640429372519002942408684865365240999768574253071833856319739701820278064430752500265719950995501680617096646693350508919023918165578197362753300045044055124171342110241523108927636717127817358474960617263174663092209755111691012082626344354799324684618507888024888780274965500024434861994897933547122279471104907197867879355309908972143730643644901396413130659278574509933767353088008172236184358944296152520045862227751166868376244184629749267592810102406947809306838597125118160730301805199075423892266233419454274545525227271055575130782157539259553316970902427487006820118185617472695840353418024890437631007883241747770297587691674498663726423738298928107600676358013396478410919662193258772280121119567520492441048402070907926612436783957063782644272364036226395896204988714065617471020982724869122771291880921700215290381666830867082905801209247329124742825522693289473351391315306977863253373416693756735163714450443750440001939690847501048169877438194006351082917186874913816608050867031519071527749353803859704186069023021554482929133949068998536726828090120904883788424923165172421887103720036299283536736223401932599472822443884999375672646598356357738216709677112412749057611962330601448924286665573549568867380712377065959813321389439245602405064063922185533949985826727517031613621560878271395565280390065706309618034170061745740041704610053829602158737670890749459011201791827702516522179827562694572508810619267029796770662824619375121023351635157160897636202228064921449173766335279698404997415534068198092280520734512419596707144472125881082992460362160583789280457114710273587028444415509439934462959039434404299696444705719524053044069766807788775631332247151634661629675597045308182549287224773905406822856518229168135743570470760926318566868671574714625506707688542891295206001307952988329910478830669708390839572516715825892827365234403874345148253837203588714198052723886620872827515438619225055091978528917274553877953572383601870314346225806402925396826449392227159158737968990715246015985943640187136812569730848115815947898280693182830693130567636836990185648898017015822178254462422390756240578730976973280039171029841821151540620755583939260003841104722313154665073891526398814736439122200861635839295144557616972906470793041110823404615058846284791146263132029564764938237286884235631463786282346055166470803293857165838701040501540379373080880303382773066277144518927058719488723376562889121274468135815071050524265808276565312610627697237293284036804151565770020472763769244881551212449740537368798292438504846150676231870009517519843262640373614470328123531338161715265802425451084530090479585148257421883071822585755893812880821455159409224903185127998347949333248255476373458393431741162347240030351540038172765995929040181087929059665259591380575703834027318761523898171039194857043575371691940371787971921431986223687455158319694692578481944897044117784976133134381080887535908486117935433380749474148610171714457886450551371547247182876322883374055471417190021966660659440567600415259563296325118553276528602034540724115972637127340743634527449165130121239583146209770826946419852673513692516060533289820008763349389199118826030870642889121726290723227679704188659241568316094680577645206801396000374184064365027841490075898848881198133137233635924940808018676372499088783478610358024706201078559530133499828621542254760581016174831677532565453440291124376015026500227497505151126271101013231535195695066254960311555465878859694020504771809814478864582555630373431705548746576143398088948824976461553560664488585375140145361289547172132074825460422462886612291152035636832947103336169774630415023305996210412683402044937166681189480815909162445123596012770224261082660175372613474382509578256969908767466343024720899322344882963454716583205605907869888001049951800210106765892708567204665382459629364837842454776689973996569884951881770969793150267305582876538486199933789822711411134695948023642632371635747526671796008836507612654256953784569322028012549676418892291699794628056431784644669651529663812953387677433157241146309123297597743086507866025623434794324632895803315554375232051989811790404341205846469770712257782559196246128828709240989392957474690499805728516049721583268604839441348125134421858703789074377105553262617329269129422751444769075344828625245334648043067700207996699464710133802471594245900776428541269645475091951289327010395287787131445883559799883781768924629335200697684522223590951718112338627651759954377325604315864393499342364490718466632636081173496849306282146319003515682170088582470940352000661826778477668061966022640551711130519799985484554542437115914476486811032865711530420665611149331459433128617620660880561439388659451690218260303196833957108773722948255282709561081923535414700026662275428774087590547251786834665361019613204744686573194963561082807163331574393245691545882996666786544795033846762773951324552580375670408392792822257896311480684846073080840103659212353091668393261861267064998146722155800926610643934399795130454638434534835873542451560964584977893913759266497691723027553730607846166848870757601323948234771762847239271658272762160417963183018015012746860063187459201917076924071069824400096763478810052984493130534291528475371458870979145366254721221310420260243175890171228931331211862879111360065935679966069299523205202580075418818206274073214955869046293624621797574132231464724160106815826906939098148595162757821385909318921045118786190774803432792550453878487890236535522142809022068328240812729871831179212610985895882272240346638270673637721132928394524194232793668480244089001092569145274906460036710187425491557731919562401439468528281516772769880903108291649936966449831849116170023214846731307750842221346553143961929889948401265513068873494430327227958401578801415018289231014288975462381360255022031498908836143992276686231055698637191965380718093298689261435677272066329165735999705644408787610017761017173262835629210717584885210988170554680417544514492386995486506901290495549570518157919954990943841146475466800815505140732661604576031749487967519732562169702044530182040060978553421670831704878290706236890861329514694886060033674872909944577580523993555700554211776093638750157339138397757554424505011923217184780928926331231217576060145642408795218749693254165734672162199471936550614775587799521064410520338856676335408835116438882978606961042189727601100426991913439387983984466074361442959103583702518912171845819607807214495740011116482724658033783773305090131738326822850998995563979683825517970812213917647076888111611406228209428950712202555782100143670105632732752073926911806521954035423218298673473346324520739550120798114859355405405687830615078602825190990182789935213079833639127178887250330411654568890423446786616342020431531005145041943338100912848770801348314382967733414546716458820137021372385443237755835246979009142044175543541905175744150906628708038370075216094853045330628580730418590160120579778798319819298383825487889784283429802436310525061318876004991479457825759842152933468003795130876775643746576762042394878227918688193341315593189087466411552788047505008106221078188097181225476836711621414542847781028103146809142607647897942937526559234497378934742163837454918012490339821936370746217774475131899868857744143671920295273119595633832658006456815047229008631526211962016479197104642772938897914947582818564332542759996380239753830455042507851585091955163081956715882507714978931210318593067531530780308278456399820721021992266748978740761539149867725422512076726336535446846504673667340050065490881982461863349529600693508808495761174659602069593695705841486919590898108381706989887349104513093267788216430532474058430308257377235201234480942676857202347861600841629634108620172097406515739366596803365129989091196100406071086011947127440199481868341686366581008755853505994269754445373038587311143233165383314229565820495972224963646817281736341206354582123535581984772407779198308023488024665475388507829568202994596440100699997030220489329827204982962516335527039183635872007344831220038003566858943665552042300249641033087223913631068712185576160739490218555450177261122847549615501194146029789409408723696256080719242680214970914804842197493933329833357010806846847018236334864449260176083093187999180432329051889867686486370225567760605348586967319264839748649134145068046535123211004864458614527248967402958578428976265098140343313613761446827511863390380200267242009186841521260535404551086972821410090934747834907325566630528160634281165384079124989130543234497875733211419774832516251055925761161898770252980976873668670724571055836994976316341775679141671313358089765485145901679923681189930919560469608728885392740315499243961904258673304298209805003054627491623784305977054750700361237848759943670580351177391817874506235672147127712594347602052695893451700053308442883724224399794017078769865010734459235562720044903229305198534066429160790859719126191143633810944698607190464180441195704347360655634783530558968330390487726944642906512672946724323437300250975955470871282573847986297826095693814339608842979856920410265028004725043755299175672482915889222377691390004698693477710356051463730202645880683171370136770659844973652771686938097946567220818761780857393418908752675860487786394714632086782046890370927637507652717664851375191411851153860647136560143908670152484864232385774323373659844557642207442865937829261785313050687789046663380715720814602182868782334134436073624994772091551509929349134059640866845423437980741762348408672788333378229101477082947091855079894771032060768543724128096051025815208017151736851021985845424213182890598386158827472712685632152407418513840502611968229965403067709274324630411951552598915355719154707465107494279450152006592730740119075069517278019001526831015552166584858424199037128287612402159834904668697002639904346012921534472624592388214699507576733482162249071781366401121435757781362133906615164769079961575080583791797941990700259179630701415729518536142725188534675842284557072140224963989738115441252007567591516638931447940952747216167454399218436489182668454266915228309794478106461446333755469781677294878674927697515714089603531864659931526944735528977371728622918026595720454101276699663473685555982874757931567924904148943323135637743820309532941541285092816387001880460491371166316227662584683976220220760898574612538027641053313417106388440569308538743571532403121680069507431690895918662298229048592985454707749655527039203609418492544856088132413466633746664358744875774466992105715715668087336207210581207941713513002206448425304140324986533396508541886871090589385633232103891900814574300751848410423487097114582840742824928850956911787143494449975856545446321909545728563270791548814824672297886078436508581301444605646760753535691021845805114431055375904365282963086969771468718555306752007309960845108571358861205213877399232888807041629538868672592663310422190427830718715860711035447529046607922529437207285120013884285729249825750553525907438794058991620417036309073543157822218803633254997242341659744144524921917471269122560931528411767402647986769149818587283377816054619906309177189865282707349009130931569998233812146654143547290741070559201728697576881890788673582156446233301575919768875693695523760800647833133983652025908871856711678490174684668670562352614140211208065895781414551047845767335294751594706847704659061231271696496924268846552034777420912497932707021270160116478291868462988661464556930976261020988429755582528852169687463901459610360791703030793956799598323713532564190086719422505183993115320149043614493730406959513747596710389803550943131225120708650053764999750161368560396903790814351447911716100813025444527019162965096680245410429425390999456720167193170645788726409326692073576542166375192110234763558165963381450473950890708537427844136503078406928505676293639561928735749405991693618992633228034553683517189229715453933078297261646505512589333183354927806237299570664564841493467628670221245807584215186727792586682443503318521265068329329248770697798604939759370520564897771396605493617128717391487212967134009145582561845902459815146589748410359023648158756421343025096072392495587518057737057553303290812675515901809883060169398344899333861040648323115781930529923716742656354845605482264457771414182145691319980000202494346730549565426315767932842917284690313555016101862042408990167697598128942241002167052558333283131376048840396754969539638843176690949829829834119885092229153048840936367039605940543259897611410132429747308593212520763368132106130795150592119107680888959661168245284170337184164221528916876616317180555004290354484714060693743766130926471294576533829633193814577598442805392045357623961883069073197234748885855203687015201868193486201488243540208102854342991011690544800683049523312673710670744864853751423836957506847288245627280774543998850696339065707233015225583330007553411662680576417549644966928689153389962298195892200683913097167496776289905961264842888946566899763034979133022322873889413351402396778551004620077282721581306293232235617774369583874599997590742092437587434216587265822195642795783790584804228047439777268089506865153116768369897159750901000454522229021551233639132840184923293865218065925406548462215361869709477989041766164977021400053573374050501232060614869833485265975172240995725232783622777413172942493541840922960932383934500159603829522882652462918631383452354262474784854719837727991610715847017685097228653977435052990282730014972439074093665043688377050087143082245327748692005743678844416477572386340441052050407629307738168173912635868639872082402320993428873265007621857486401052197314360021155472866894288982795516866174821857810321775228263777835684780047071932528192393691201005425671426609428446622265788835467837612613780692300061657716062618659263327954786361802244524907909935823912390294515149575496978527262755123337469745675154501279083027189426898014165313097038227780437146364976897278838128299282662164158441909816228608138415532382081003515675132468117761369214235801649273999538233095400887872227331312527693543996369482279855776788685706250769611513028561188951771419214489794583697426157919459112737135051526744230750566982232292159406258698501143635877658309848200425666310073164427176855246429013603877334265405418853049365289643772265074017331063564929368075700687551226147433030372293261184817884026798966738592585334766436820005478016645216636894136889436488319181405283495761842139500595687256752424692963817198904310439210886563992682356753266705827538179187315325836789871925901102646946384647408173343237242494705714439025561457611991480142401001317216749014813648508571278363513224730018720581591707658331371612469893461954268005873690372382347080666575337687599039205072161794113731697409764682256911933863971367721039949383468365440041195232828699043713761859756757552254510966123642055545303833575605391595659326275064385011927955914523566676806935455233207555540976032945686038160189220315090091466177322464679770229744309358604323485138586961051948391860912303849966683883010757941052416561397775459180469957743965987976199825342943670616590172998372916218943916040720585981462008320961510488950058264216722828855632482537379363820927883825196558334273712155298169496306857688038773024589191734872721630074184912789175574900938025029624518990495473120516945069357521721695157049643417272022024360564377124957658218668410121360697972245807417807929771131642578217999035744062257041376977252297008566796403441112929743483968883733760732699094406895396691324175925041379663258898218831685979820733427874206616010121938395409120339002620878466745061291239344714893277875075484997774856805346081604124760883917543619867603667128401123569587055223563468427824358759045762958621159088731672677362793447467673566499153317921690330996793086358285820308882996051516752003816161053837913672920454291242153162966730578934191201130237434625220633333887550391140742526909681175476570293542503671740253382195360721977686614652078793021725985467864515341662452518450703202587144566001449059356920734613877321557741236154561870924094929453882157497862010718068929554873144053157102558720365914427433290329005896719890062248477198225002343065859301124480921265551324178606402950911181881156978332136226371341842159930945433140181961486040815859186831540189060752869255187107513802263335516035365005782452802510017077459703996897706151400250552878789735866141879843720481511764722722224649772117531783832304317633065904161119935856394211281736328779615086221061018270060741564607684233885677024524419982891561887950855816451047388484868993222597866173533334949302511211794086153257087147358944164013246172102809705738994656252182444562346061363202820184114662229168796710629588296921438565649942483076864260413986671227782056615443309007832275187871609717400487442278795030646357934417294796475587312958562265590054392440268994861219983068281932124060981774362572244454359969986700607472809466526073340905320794244272479787948667291368973231089111688835069863355566481144561355780446332056416791050092702215575422064563107325300482707621986949407666967502345012365210421500348089706427818477059252344527787723520786333767589012114122231339837858563695923420046627927285528183801350194389033924138940665601313618729956427843130238830037403143297548762892992404715046738234273687989767045543537613569550097877232177201991762157503113092771340499377137017742384099970502243132625294874709335341478219396176257458586685062950965934063444776699815580254157809173894037419583079443760990622078034206840010863583764914563866320094474332679170028005928687916369254861794347553787563099223455889188365902508922898697807099945279665883138400296364025822967627398774726848628385368736911727767789696940745574306838052614486672762782176913547525472066608978145313646375838441568498675125635994529079056995803774282109189848035911138327853645246080772678304705285283980230024745694033463707692395124743804928464814792190534371622470613675579950269986914844051929284870698899623187760447499754456257128518791518513526916702327055555474470933845374705194332489321206398126337868962890835720136153389469303191606972468690059205431671844499312537726936968585134622293218645789572688585095978102633191542543239297608190825617154583172349714105572464268250165503887925382482057773083083382532032994067116325179348006591688894204286651099776517427128745557055415819115645943548433003738580566820731478908738866865504559903090010074664669074830821355537952029968678458218503176575806284048449747915243348946153947901171905272627412203485979735476971601622439761628265737834042539410874941942133304187088083054084062210913011490392046114274105781681637510143520520243533275375872011601726193774595008780972306324150572214379292405945466189226150406306184691279112607720198385309894855014387998550218006460837090866711952213195863174941298715169669183333664950477436816257149563398781732673613601135536090583280636479716218643727761345692736037959847769359231102127196146255173062965918951815305816765794160875797946934232943182623473922486899489142685319187214031550194488664554954968009647533141060556228353567707001410694464735708769583216627233613345402456424019153533349621921149763265190215112383299417354896360483606891605987975155723058882014713417381435406256141781098824533622176916205739444846945302918850710581565081016193738038554870186006800434098642424039218067871828112294714336980358577145631098839239497204994000899051170413178022473549873268677116726723012784605410550612386474733657949361343711869440946313672586889719024659385627384428848801879855120123360250790689325887499341583878640500936309350276766846956100743402577867313560541451316486618537409508127318996941159793809443577219823367282460495882933075033413543377806104783966293332777465815351389293728217085887422690357575375001366115772433404809233069186602392816878734137636279170344503549097723618379966365459689167961733892174353875113521673136132891589941722289876584879550251627245233595875996832307739862821344205738230155044928288253658296501629954427032559268324798785941982145603380533598123676312649056720686783031388625754671953063548953572414973321834326951524690384959555201957167091440459627214076485417794680237499112474129786341803259866519707503676903893038363997353130072393698463631686191183384565982888059418648090301266793859601206835308102785373587862335616143413541369186599629691839579236428839433120273475421892720777876297226131619909392155854627763940103686906715649265845941865170570539245571439673707990522429364846703427388225270506513975811821454926946670328575031639671863956139616652528395460903257559462613260742302077026014521755519137918004963083187812259288748138420398765580125169008890115676756336092957837988073468021800635803386102008819151091087210917593057247231744368676755667233941114378902615312103407355294989413525441208271911902404684005289826311260573696660010881367668346667271000674911231243847803364319319349968068743667612052617337440730318454017398257023139413247246396094694921338154262418141088516713210314957945532279029749254056643799484656879624326431718659372442870818769958089086316809925179390399617130410605996736839235883953075955968927230832831684354965401280185334903056319389340109806464811231656217678935183345762043861669954293258509798312953614295249917315691845059234364291874666601692598276290171105170607031285030379177579825732350671536447503768273715990500539899745427608276847177708566393218972045417675806995259271754998361869397602175407064806614466172800959724869938191700307407354421868503957147788692413045759576199271447754338956506938248926324266150705582828329459376759230411991418687288319602194055290153393047423079553356667661215876889244582904418649293338318388015107888820611120722248435141850908208109792111701730240320940644003214001847086085661403752043446299747807693638643338679754975261924810496940673714864120520575784856204891795761279526899930640938431817951911197456151713977717386791065487691567133731682625260199242557842028991469697106974949329127650173105525802682679046367430883285921596829660998821101606107327205501964752472392576741704362757850502528471269327013527361029815573283528676401000263265764888181000598003213652513558791923664908786637504496647151842642858572880656424925583827604713384092429868963291049460715001801151405100875340000093900337326290071829568725327549663497982189553524480249877853108930676633552855872377389615764122501091448872033087493076636924830806790018657947678690398392277206865230832155282899489647030325957626744107003016208188852191062794187041464060147592778662450264460232382158658737642681484852266741271477706624228360403242217222207892657790942415610899766443697214140353739455393982444698872954991113506111451454345683942472696918454411840679862844308291075311268976015449561805626687847010580353389650005970840961167582987372618347970355854562682670293903748933700704146062479459828801316018675485433176434109084468122623329706172069238838796009835511864940670653098507548596165212005172095762220975155424055443013949885525499854116462459186316638319849035369282635607573919973971187039503955062328260987109529269098652476046099037856522457709795135480841317906765832128857166207257882263334957551577279475644977977671723948454019489268818804624605854878073620610549922337708467821707738463233511655444850515897210655338217410202608449901866578440425962300084506827506247220514357891728235117462972857995966610424437007955857870962103922253206721227940869699666855395719680047359330781651628880579602407487974219845434394917513374493819915673848212919155253338112740360904440042305730851921261532534184437176515093080565220294096786640867652976266130437641570530864174635778171514957953911213580009069084278398323738917250782792896382912547668587095915466388683761304291028268405106184778116638335098530795123927727648478900060698884174682788537540321036403062446064031019410785922366159000899548224312427265998302799658247512428709452669158255823999007847644667930652009023165336545555818691746403011687885291913408701811391736871507895475208567098929958900301973380255513776353851001414049232881713843741821095697067042287091981961190099024791026262224249814182580219704752873323810635543114106942733074013077125198018182117744412009729711387289091256220300129605402949528326795438277420865958609544106579415882280749219743096897708828947228906102817091666098203834446335634107009908108934366482723546315933476721924216566737877996016825323061234959542381474122871781761408957403273928516952469394863972584543783820639913482734719231683667719057260869506817752059884691464501853558513602907678856969125611784703103455966000091569580699056850081792916053770700602062774885292886271515021944094102453930065777798507512465102365489225478383818903688817721072042763303721939362745986953075542119230948575541154081890151656561078510177220406086340352729976175381208267474118063552182920383373700398828039627240813935681999422066778749124252763401163377867058867206917634622633877007648688252096642587560247663610803525569796449926843675155606861451546739484947216891492250905550671786317511723162755768454522505405321889286060570474730247809971821103970118736413887693824975253029121913629471940986483052851778007260256303985329820102834211149112551499336024362309824239334628055327653829968697442110580673781604148751907319372074651054442938468631255020786245949261771914152613111680300380164068178221150213502174711405699685818457216923061592308131141763429115039417478099395919209392721558050637389024187547503699682750553169978071730567832498770986459844151447834067272348286415242304039257058114365326262482660991970111917848380760761719478098373327235420747325635637563407465618906716097317682715826030859135845511088977886840898447472893685785493395249571594715304836081559743151810141048724179344888013165738857000764293406368315329088192466518298726241456834132000926524040735427825483349058848496137753289760392400942070266801251705977658347880621892631064439320545273447279063617469817383582453335472346077767933964774854646490325853982269783451180316140655892186277436022976491320238917411273759068881916839421775705072376711955708514381129832885618248652886705816332912866779015121269940755483794111277605349893251993418301981128181620590732759461329009558857082975395244556753028374806475471417742956688060320204028350501956330007520503084568076103139941359262244701457085406231522260155102297036300411869333076839581962725459077427354634601780878223816622506466578502232917379762326744006714747230217383687274142360581766021799178796781253027762776246098838592598923646192428726722547063697319115607515876499520345388078882203365594811887028146200676730963248832070864020089320211096746438175470645748480207939070592923183027613664076010974167516010119544236114384677056808191898033904068754674473806518914070433415371562216668785038049925830922388711181519982192666912345598463340925812643090465534327596371766580755489140582532235707292872727126594927346427685230114642389223510687151984683472451046330250658954164802727510466441429433726401298596296513107119442743006258848829925998493364451308327372094357295928555898315831578631466013003657332182371116977549834915909018707941276945734570006195271109071488565180417672271850245551797606398907546179989691294516147042164921511233238861428058798466723249771983618125952997588854896483338235184770361099987080734860084516536946292321991449159283976714096095809895438840795023417049262530312443934134242697053067161975432662976627953564501607786962737412720753663013155075928560010830221737332643949764638287566175721131467507312742237482825797316413931272078073043801706996566025642699905785065985728420934437561743530816642695886199911619594797614190687592021939637262453392027089908882485121491318768171410488748281203119856117953967708617906011304356671775451625388566573430737674595785776456573099613159012598722804016885617722435876107152433509776786093194572803834799748777655069902243746883337734323310098586227802880445175754126831425107393667981041737691537189162262063643442466368441423808738175534318669263807356343065144938848294096606556930838635438255253917217165311125248278136051289879256452469658409470307200466357376839922053511564659682428737713613165524403833608427645289969253766775527978948813287282902059273454803877605226783668314782125496494184443580264250400119995666031111103165129225761851163084749406065352317641736309207938436300166902100184164856656559279104314202943870747096009532484821225725195143314676571475736697790495892964758606223343979682006168524783758360495402285906283917988907780312998874851591980178040981844789582690311902599773923136495604357621824454041126456995610518389785548279887076886579287985810496008927544508484314844806988275628863317981974897427709767908453590766498063136588371239295612799202006581342598006952297610249840247322631103397509158194883316710872659686134319631215856116563195751311148137951939442927592553289254422249643054867687447019043840450208949596811077922775964414259668365088929861626812430816910515582189523130536024883369852316708255260218348186200835168162013332764999988262694882577342207689889536761493110379808982507936958019093074669911537208951048479362155989832094997165834464878887408274435270467572976528206299667646687303873274928623568843966854354828768809789793576910338819605660513014972241285440478559343340165980548879505271964339957319929823626090498850040713668378968619871661325047802043764061254773178451375230386695427157991540872754976011374918829438321596504300679049958681528251480361178211859822173802880617177552069151555858855851803692356585317011073054825791398537281462581717441758242882735421577949495035693160406487315345724137221342115848686392301185580716724640298947831434812043688364254582784490239056167306048739327375401480785187595671744298861954400738441672842390866798951273278046375541377741828121744424792428947732084225651666154661049736565547128325744004822039029356485633302014404237031229099570518900600183247443584064850370158878892640338752586737080570671996299218578829018197165561278568915211464101673195939585697746501238424667763030078909221760710379081546817849337653500206833395301880920983525887707243576519486978324782413822037634776742152230867332769890126012705629964442328211950643321448055272782423550952954494582482224059421573640194198300395627427068276767505142030555185472533950334187883308466649729134283230097141953854840979726656737007914885002418605025173986420050879687729176658981645426124097697828023644134866434785540230439670244573991751594840237813811454539109466390301253420383264030027288596037763529242322256957884099212116424128352605587241592660837733906175539155921990373454138085682972714800630618383874665040293752284970629863399305862603804130426454199150788253776607416996211723893155246798728535509978636574378521628901962760296972159835483680033756953586543964957961013830064282683971266399159064101053525668444829258073252082372094567837450789984325529018758939738069210868041756919290045206677349423858640675606203848692408504357175038368981760832259140979983165508032644289479894058688981188686456470845564764605229353466198291112641438184590769384910195400081624041681719484257061821306584611467294215439582897907890090572097759739616397388242954239584820805967638032740810528272975957486894008764682469368064967885887611374516635058706382935681889751332946066587138000935948556646861517772901560202037150569611310203221340208655149206733843260759211333921176840505500734474093427758979721751600096134552607170548263957227220981938437735143038201312146457424445344498477522671662710912400960308106871708269922597195631221561986804184472315338829485388102705102371511503505103994485760129589050172640260491210890123540421971166771299643083468632123160384164573203806592857778861694580622753887936337191355932499379290869418589077154576000439881957766793911703930636365170857492384172081614310842417830990614971332452289705510103295988204283458031357803735378008079823477987325080459239686186064978692739890927891351038753028508394306813909014615652430348402437815209059844282408407167574635999287791417556296423582183062306220538628517740363741866838084251267370366291520140152601999286890921244488886795784442070007789344795429625848299598431802769623343199186516233606018691727646098729825791347079322811658626412368745785320220803681929713817625106216972700884095582839232953647249757348457995097264252979699188263651812808014533228256002136056819703451689407003655756125330581269150751727100458026427760855885974491909164220209495108405720062053926381146162829653839704066153606668775869667934748258216119825082423364132277303690179797867401372206490319815807623516177276770695366988355026739638407133808144608100552221235580771975117030745412354159394989408069689636174013025688650788484946843747379815065449859452128205582566914713710482317893838539437478824633536180097881063900243245079848231390037805870742010345496298765279316733758506821291986325224877568928907390180195189071907328015146147283491670301401241931218568982087585728177198417352606296607503787781018704692370059930928481206821557705778874393537691143546087255917110208348167334286020805861429448335923846406475431633403765431863025927656273411500601655031435032735210043190814294960699342731913449004493456994957532807004551996013988482132975971379558997568348732156907829539252872607409499717533918888663433800416121831725796834944728619143507953240430027043656904044569999684971092529878902726009959383177102340585964898999815893866751513204949355549188629257030132694511046917454719182257932392022960208228222914006382124009545487336445750465687130378118856694050859620956436637257132989415892806851932452444029361912025294433204066858506799994829749492477534077920482057062022797606745299217281913804642330437614991516780739835667520318628946422108604516380764478265896171459462198422071908709901491783407160140002789294210107039944346802241794395097663873199738888595781858309057446814860139095536830423368927191459412919150675771836841177192826244866049590904485306316476805424843260939141580539503620301615484460022888227117327835068384154506994849974771819408280798454032842472199795564848754886099873680274133712184530624299601881387927796188464869225225532317400508817481274054908471448531973183597686023094641501945656481491454989507935940081826694017618695349826111620826616200774956310201734431915867749871488408078242876486209034034299595479142603140086902129352015904672349966796358773213394145414251591812936797025080254743071429886848995722991154038386860237572399160378453006583654346621134658271091348980290817561011339188607345022271007310784933177442728455325614761641534506549021093172853008980726847894064598663195085151402923214566342576697371077557209412182303678555326016751935898559341156408930988431124169282569374469452856995185826842837875703248786936297639611652130208090143915835966789444291657506969314223931271494673839795218584094615769826003648653263183108413016258929153319820894471069628831249108378771800603459189601325150327657553582753603961870452520539227296581623004000064029869916379783967064362483960620200932440900194840441585840258184879128026073282038934854886061517491097430376151209524827598564826124740273820597139002986434184257689247979811063817229260613183637369997692947635596435293526153035886191004009501076982035498415176422882668883073557055712478279618791157728453258062486939926657717287777291516341124985354627557563642567798577847715873889013348171216640110150572878126554820193870279481239353559174454590101526275858389799790365732431106943420292030129993568669897516733030315683534163195981066064069185818461095220536682352341721213362773481714900070563658750523820769984032237440092897039913880830734490180399991889239338103798371006370776141699306279175143946790838128117348352688128112552471920108904472958237562153831773871670232751313940569038859446370856067439027550036878417813125976152148940002917235572750304087151142031255870207020488852942171610847396221011167585673931009281821193704387632828426450654572425142217445180912295538892628566553010431453714003258178992168645988345251364155032324175090127496003837902395844052438345276581163360036386349930189959866864721341132474764649444659197431243429370770366158318360927190784742802767292113812267055048758254425499030897274471966857211971333032473423668665289131349972409923318484010732842674422047231505191176441073804907687469534423758269022771648756665598289482337980636652199959514041019311740516415024159841931172364673111391074895554781539027259632565911530570821339512209878080843200825307602937899128902780423261800588816335059809325970879506614689666393194944908678748608783393150060764006443785396570319396507624051908861485980932680341926524426235816658405329767211137277324153099857590464322305469237859048557419812811642820513337482503257338349817189020243793223079923706664499710013387982946304742969831906530568086883456306628736023005803698804010379483801576752451437661181417236223657467627809102850180630759738936555148152477802764169227340878449021362779276943116310395385887711289018123330241524803112897130213123446530265483865897997408162617353096899572490364895281782283236014830143308499560463215118583788949222190319048306402126464658283413424870250428698597726086513319298024255305249181788224863371454969337384156036010737976677361221991585343897689331276093513123826977453875870494438080216995760742936781150785697056562229184001533359538786766220459814744080118985166798693787666385517299785455156255889611894319317929451339964269487505262418838041252696596560031858621409148575038494815329373386673772372177571434935538941740911555074088250202583177673424253676264763378182930836348939293480337914469382680038992874854126515393582515848823936898550158139934113728957518340821688528291380095594913100722810452782764393752107067535358526037197236243601233366238711560923212842619016955281737013348583979252199580100174752283012922613650655562408444751482964524892325085351722988359124914191645816081883699663334101104637298446943852385663263052590993156317792744983105782285409350104405142800182825850872460872297577870839018415148146111574678478628209380903209313023149160168190891598794253082680506896241817497604397992124184412321804582733910047849701712053759089525577716926155058624619997052449297963305091732548480648895777573790961886801575422843822803904405072079354169049309403882359209843076644786360241590598034424947131930585856983528444242556623911248832449551376709155932955843168816438773287372070417084592834651227370396815455133729062165458732882563019068049907061734694087779653265058270907568784470815218239107720680732763338789190497722737138296064607878924922866190220527606763868730989973304497697146750291186933192191863745021007379716433970321818607158114517618340117278180740283480761701738209693665752055847862135417016348039403129639391764088203022452467336872059741922602187813910003292638153134172458487648242397939939114334783622518698843838755048512141454654243334023966258558106647585072978561762098324909155635172954328115243318599686092770727744231617436912076090227024893874740699865310089910946928046641445893278413595886548071039541811512887708078044996136995882906218298790718940227979190275387448623144768657760604111534759596157688710905836388421307258184350555290803854768830903273545370933538760862084094050921090149454408874569017345151624312722711305376862993000251582474357650461435289433415625400760700749134069247320041907262039878954916300126179296698600871942628923494531214466447895977239006289708859689459878544485635771411989848250262269363805845605889875551361137785574652569462634525596973844345793624875770969082746134874875196383306365297808878168694614178295850745594941443147744455295435593419069381658545153849640865772992239858441553615730435745389557701515325614822611237808449241392961987440325926516436112959106839785924353792226291462944099942682167924180697307822949520322985897194590729627045562411539338509755506738894756205185272404898006003133284581790220967589077520531630412698150120627212477776582200417205200512313582700819737087476920184789753994634774875763825307884928719117863765797222431312532937530166902075601025949512117990156005762457352500833315372266144624419917445489222605753261812768703160729175597564066406334394543598819496363882124509884431432887939692941586316499475022508964357527413519731257805911559281033465382892085985562436419978496342692430546486047690077821571449300080447077406556362445279558908223634117630243783279817353316724049369006468505482581379331243165923554212887100462277433602168806392703182650205337822294702181942694585636045847019429862909709174004965280478136203847228881978506774372934418308630669943466054129748291284469291118262152924400799615928340404668502951266589689577341648699363095693458090156807626766754032772116633800635124666945306939545477783143637901169131375316107309691326805317665879929322020488244156552860563303923436242462180937125750481539919435976104490519261025669466835628335111377475563841111064120597875554730567327721056854413452503479008640862551153466459594418474086652599269769368618826544982000113066113363097152286538152007162366032315513791803448608529057067605022665018152007529145576211111286757216957315703898965595943448020167572293397411787772143733176528694716886887825863083689783237520955754468944371203821795430803673636830641116239961320076793838960388512425065058547357702554861899560440702749037484376685813262572298658139758588554350724195830927170045815083024658423640747800338337503548408618000726985887859754521164030947503778393808665324418696905320860188319247931267964047218858002938789948262986982416496132405845318983237939443143701553579427473498449989784118792887417268488757631374151098944642511144404111419366110627767270166777541582876276329296340189828245964505418187629628871696683790643408818280074500023010802058068204477199005568536852180544235849281572598123455818482450709756264904215172775474216722046150377749759565239452944404548703733716425656915419090830565339692559317736823337078860012184614101905469609701541886901199143635332854713942019731019182354105960909393854221589790103810227740262171464681466875156848022367628363837531603989182944851436808008508963805756866038741275418962951685301620968332358419992020663997249590908508801085183441654024454339119319842510071591031289261512298422353077028704935686102254660533308134018597409386282643376095100460199929184141011357281480218538620014353041332369910872983689792003769678054563171405992567581999368037352884419491866873153930286908506569598916652989899386216346578034359658039961530735301455286006236377532388911914093809334653897060816350643651258668216394700879197426985211342835399749299193636963601212135514084328299328644305927387091058156355849930202151191129565528875523837586810175597513553695712107844138868809420459183603056404414876228288754423787215895313312288488829868955745770420468670763220768055292776024501769625302279596931576871974789416429945361679075676533096119215313910652721199341441954426862659901675595268396495876476588381565771783647255620537341349895868905304661365077125712951940232764941296193307313836237069644093462906629730886553405387201933134825526778594247472787521468160248519545463795992541554639839215875297048448362392150015665873996226120384375174944969863648447741018239706612086039146912681850429281548963816874658464340246902192053770371155646193615876996886266741087674416739033204040344390802295899094563779208506253854778499395145685881359531643605818499731430212199247650286279758385668593951412147294027560732541171287502061176474989081044999794950753905887563437094377145362658457938667153986852506607917868856638711889291447062029865330679075714948189074444992932776115592828469537560174452516984842676426021792551234635482281937219897287566825654285868331636601852455008717436166669760023053817745614701686716349804420205319728706758693971306980007620366528544533872321603951806471312171071812974822804246198260101016215887430136180041944895438082627520568966234584609223196952982744886598803861461098208249470559105350720835018621398807517031295510634118316405471976453897223457759248794667313179997313948733292351995174855113372921892453656017235874030665402126804792767287993160331188843156630295692552004428610690446677115818043604119999042194032136865021912834433659567768643589558489805427881453632892563293942410515565054927840685558342624533767911703428272252776553759940028793089318406602310600642651537932251397500452741270693670781678518792332182167027010429805748739039255104651333090635884568383876224894101432280444798143135524585013653650780780429939203338248774698632507245624589416281550751141332338114764970381586218654194848693317539312218761028919426775239290678117745705355355730050203358557493338772049875304957969734344900686794083808010982358604571040099131706527768757670505861547701273595625890977363567935810662743268153664818074893888559827160219508105199584356247203117411794152487279272792980758781828566616441978089824232502000308124627433000325305206819307628838467024828790085331597255026425849053285602030961517846782961161099256258673582440199727942420559141819738725196215179337844944385749387784307352088538441372261959549971131606702065309001286418697203285319580987538453738045049398310531122322178942909604150321916187132796073653752239115328255511169044646296249434365400705176426179667291676069420415446343643161283789964063340791108266096374131442101179475329167049050006054094006759115848358440817395639224446593733194935273902211147985550135557992923611257153517096343761175133967883976534209046535913329182569124187253170281356251307970254517252696191321385757240666674367908096280615425923736026506924314655819944678667075553808757922174277922781075634803640652430098485255356768867111286394640875509434076080553200389329400013532823680351676004034703761619673345431781162417039493147138837556319341661824558761962505736787859525191665424733964327688238228340819120093764625683230683441575297145848342440355367359976452712671649627200939447016452436723427613164979842810456538912727768822917977105497878965893158666490759311187346521427885760959425337600832820668482185933522325912513669305388876191750191082738236319473664534193457002649937878202652002183907139282691617215135028712499445860509460837834209856939862714055468996497020969405273125076343667155970510502091148518947914699296068665517259421143939818497721770256288699598717251671890131753801576084066476129789310757297052733873224167232974654145797728408825290407030205135609411102798856605733430337304497209254408130719269904335762633055821312386199347008817321495005585947354580318991928318311992802187938790768975654615437817822192811153602057820245066334780659056150498926544515430327704859867471776486048676027559463634898514338460334229064314503172816915800843148606128546442404697666840575116279488015093247270759010832141963804265505727796565652263159129121463969913854968950985499267084490934511524179681144156735372017341311873627543126292255893372546737024265349124719774306311673878805903241741331806823571392397353559658130276186555958937771640896115135012699454905591231975973450762048161070334670742680688217343793275136858475195000279707137544056555742157050693309125723113304281230837940121613930075276998730188522004308954571521748053216701587609414903415393379502662498552040067866961020051162207335264776660531286800522924978415650671575396661525490926582593286077219996740238803104187632397947022728045788697693416797963409208705902760681475849099692236385797136846664511411363358416669185402931054934106649410501263932615563516414587805457428723821188423789983201274836398078020759706818289303371016058977122043195501488298304503408675405957546092188438922608360300216655795330229751292788995315609240644783854722806481206802696195309672942271189791879333241122441932815759681743039443653978851054340696658578846329790910124564869146557578146100566727643308374344366268230436665106797422274136513824162452021016206184197942589772866926007443984661250971495176087292758894544945246331061705689329590850298771213640869983829303822459043596771133430331023202084978323684375331914087369064869405327282652045425535650213365988078084365268169745867194665831128511242043844387151911114426417991677028212782983775160828609386908446201129000129942086898619251189649650658291559897399604209662127418853354488945462606012155166737164301720265355639035364373688728875549284212316241082496198008548999650761924691927534092197503680426252362482541659455137056558556595721398359893989647710203012467492793045258955301443811385523631713230762518076281421021040135892136033656706830065317953785801287169442109779700429681355466197533627762521624642794587050085414374867415941260107382706886183929384896482512313003803721167771997514062295965641492919017414079402521499180415208782660454346948802123525204309157128771863991349416131536346672121788116904476021812275510813620164056782599463439087252091823503640032568386686077557560816366026090949251911305720262044432361780232148394101054021241286518503000515256426659219941891490650291637779531345014021806581770778526972027569782364314999494808761253480498159596970889529064591553534043678902636509838541575595408456455857732746610544569581458101180025498349440110227687019420739528289071714578930889861794254163509090460590204559797804791572067250799789224173860865547308823010985269276702271030387010797869862754201064320523699722415448699590110455659835209210544808119420406256263433872216331845558381458682069512992937031131698686250421293441784441886992744677189648303371322367009266638820767088593187971307771659052951973994862084114139846498171288927015543821105124505841574854909191533852215276604969343611270438932771420288205106841338468716615636761501414400622955603590702539822295607327409867831362687139209995746746103692654268786425152217522495019365846291000686238220756050788387749859005903366694307725712528622696704579944764115522552907537612514098718091341236097614467632152499928889684149143211375091470969278979082715707204087318564110056838919556214741197184995492416699056532121480148837847986891268017131829181803692410250408045975973598926104807240522653032165315085500358055529088313421272921963097534002725882215645916422874517568151030452573798632070412637169152851847375009376617219922320311777012647461836297926044955743461937348038788797108391166626703818536324048802644073765646223632267416098362523362860996982516190519193750152274594368102272500898748202415741472922092100035121284805847665776698351877505639043961831076004592684175316074164168981847745871333298898958430284735664065904044013562705346115059177015016746184693651312412812202197434833584041652239197096660738521677423253293945249861427321151563766964901586886321098534417263479917674660036549817324470842275365737204595248610749501223607065484489945412508523638601820028021416374792196028964165467184933355613921374329510781010187002330161585458907147287072728267727526903277707487976113363167093499195909977902087534257152699925338766028126233359615495021192670513710654406724577843517075954303813987730108019840347827429096582702221109589703425809393917081235186691619038682140657086340051905138537500772901656521481189685898234451612547072982582763877947861224765572506350002661231741047034886545633085074406459445221090814415274601960200021800773974662236740309883053515680421461506423879902132512881786295356716611183250213042955533869454535287544992212955118557427329475444633082286407970601117978567510082944719422664512546811547634254299958149336801407639539603644102070464798801790361977064632838487853163143433439662786636817837213484180284610675907088270846960880279954130509583243847247036335353199686828342778825275480577993256145829646999251984009880081985282601771104475350855798426641319366217023795322576876266469523317334490957018715350946980845826258594849202902038992377346048436629143209842092420599156012545980078686491963528159502052264815152651982877370658397790558245953197663200161707342178741561589086387197481588177550140277356743088885258993253020313119031146929047360799285066200596305902396305308042523356903148413970264541637723472547797553656908503134570606718510321971545121171040387271613229164908912858366280935364834085045776314937920671389775516607478101121140453792958520994470889545864172274528068083653895689045564334313919359895013788496451711216483806200074158781033868976339670317861736182651510664616377557508398857320858463691026193697778801509961272440538028003442057279700382953034587476885630386338145890868879560449477792476465238140682291147000774185564474977954849142488426753729191513433589138757345852935540809366895784074448549867111794093299525961231103763277838117983521724002086383564579335228650299459290164836088484530254011742659093235536098026417413909795181305895967240826076852060419226473414926898406755662832479836103930214849570250470031633442161082326440253153555017493810649437284383849328182900443275602245648562779738830366042639619832922831501232139115985797144471382714927959180373543214871092617497993196986773290347101171303703351806818411208673233056006172966474921177693764272699751505837825230353850573599663994424314757537701484416005709847835175504719175217089446042708561235077615530033388200090795297681419665346388303552995877450228948071920643684771325310643997384830986945579399668083725127626765489501989702445911470106812949981548743880766149610160321811314887616395844975673723702215309747534250089729480967246707914291282185121336168375392087507802360683774301738819142681059781866793713389440005140240502731244921844116414732479582266909847464136198033857986805601970642780563776590879193763484696633606036455101986337095424442451037628241726981247224345097656617315114506636750832508186969613964556295844018448640333580948435714064385318345154655514395714136853419323950813271467821846067240504289407078270358216155918290799869287505710421912760381132642412417904784452874326102934159276258171106770606410849869338469063540255225308541882201006783165168076018814704462693220914504732417038873808820615667390967734476042909328384929809812367657110369647920783338428300197685157606521823950560209260888132005289815084019329867899516607675895762143465427499707063505444878765490858397411571887121738571319679798785142331883558554687344849876997859892438598651301289943189623908357805103068193267523174800054347251234069719395657494046277655489717728676941300655532087812078109252803064193421829558481762268595500207995114026872317267146089380307406010464689277945927940720205512108306809598034114804737356522043941866104930432406791748256559123679246782422934428772748103991903958792269824040965872554849464858923514518664950245350446655154942671895348876568546508496565321177191092165127614938592857225290100757511417960373847197418166177463565789291006487685586352510595957457514616796942045577535668507630503437706121112914037126133596746262275571367169805594916492978353288687285042932631539790082548217732087391756062009995263022850772574764993314332836747017987017852347604591935153324534186008377810650261255567007413542625453878727949796945491334195238301659557081929032615951003453445583179004633048203826152337119063231619765529023977748371427641947400231329188774706657375065424893909079318273953309245777493922422756695363421729378744193383346198253284342852932368725668524155768957806375548805137862827633791994352538653735532503153636356578574634163249564001161287570214723896679362091412273796417431799757789707410374929804158298489753873071518931055125295104379708590037371687518201480288765099221116664819232080886669069755957696327035753207222858444865782565940215440964566221773653066329053983133109497529876503145340980279382392793317717311782705626032412827475889089191203974283461298692927571846380791435537686698956317715172397774890072306319995032065920942477646273201588693151711438395454040443247238000081549197775509241676350149317344007966783018227642735710238638785186202559283573751064667927077769235911847752583713652888414473063316702794173810757541030869528302143453635176141655360415573075633649450389195855747920422561220024074814395341999033163658014877081617921431741599394521427768396489961325865134956023527385628003836723238671901375289317427930315836478249076314627819153493557855682039751402529530405475389195751915807722866568075410581345761941478409244747814296155206095258452483141126436158911619827141576651984066939191147258841220372249897722554260580466166891309530838281275721863484706590604261155810773044186443466580793758852191309003044905638977573437235519732360373344370192314264084291584314350001953811648551187825504619756942797564044598971591803817385026416592038526930581424352358794843206430535072920383970308894924246200646370157504732315811891697228382599707155090390069106348044084080962668556083531982396989581604262365626820814547774298147703003306255488262889167523695441448576441586463077161706133126926919270405823693380756463720118136666051164353803627997382854649473565575437352867214057848911257645229375211720673038037028121951710996430794313444172685620563208419356320051667342913859144648043920101663409255314035893398215171323193202738430207810986177449358899829887588404479398742803676952686905113602034199527674477981048372639193251936883873520626114593879488284669726704409451688007180616741326509533954751694463239014020972929531802419588255626343147675950133475652787200593651325990593946756454748384545321011713598630862801826984480769441706449356114469829242778030909845698448650909573030248521814224452178685975981902053627211864589951611805582684407752056745419720605238838550311546315182916066991764684543367811597002193749298502896254820256212516442883673464987051404753795997101954135180522352821458781330605024263944529977780893801729063367090204520336494057580680226752832034475546196542902896911309607845434756580111713071774939075463009655906862359195931061877647278502814038715636574863924610564554168171408233690320998622217859755334775838482340219222684220615812918706534326429103580801869810449875483013802974489439036579659979004737389334261768189708717148383491936260792483160826536819079578274578365935508855300741343127437163405827752668273700134982274050528709173840827978684081886992937590431840961783605866464890212411809177399417516550368669206459277461622176764802501844155169823425270772687488377764988117997231976819501862868424628146112472831347412474931743677668801688766395214675673692258201542365845068832896230450804095976117218793258912264868564032265705403462668638773545118613936176080337221520835852341343834954235451351632355776845813876155260431803684200845407980466582940127810125292165338730156529611621357459172294078578304294303740912722730145381823222729108628479554459671771063849936208461503084081523879390803565523258012761483346612973478478684319016284365478722063445339168505554202763846744727111111077901979791348772932775318970089870831208874367553405709647960056421691213418693682209410209299817745655078547003478119344217291163268808608339780409434164616480468592621333026845018167833369479820572757687643650020955016276115174435054575602349119045821288078415949530085861020792348965096185198562910373969646339896433989963510245477312603514801363687209857069355946265494360169417561504576899141221261621489037909528058350733323497991330908355720334282918057299168785817507488611085395040356565377414997247082484328178927643554503069552656130598277700111507368299151078445347857468193344260356034921027657413822996048456705964912823569822179387838249378866594939145833481829671724041448350942877536818879244451527292332555438335055492564627776267986290699047309287784513843724150462681201940473319087779402238388109532071445082762176641232153333349071197436389046633322282215915871926030088687883789478672098781466899744282884219719793431566848349868811865306689809880130927325870581994229980582271237854117654162275344785723386990369211386639488665061374065812908464507762380141734518094770606230905178135664755765131184112045560104724622994773498307158643523807509395016177134039388557349157738101031582012965245202352051075796604998137187589424131091992551756854131401523335145565918467529147389283380361960177917037542868162255004449042922417155318029719193771677956954260792128489534341146013537512546301119007958583606552825755788332821478220429448683226405208781024897216510048567760844480481823982641607182973635658464707358673928773991763250277347784859813495394682976964242750947576364624251396975742769133253036854750771383355003991662445823151227632890436425498155178729160794456289643445006949205800360753058961713367420274198242972077115974976012956655967059324391259305440058691867782604585153551246566832598684969810174241658127769957276728771617173421483105589649048595358878235011417186206058541053365781124849892106749908177415210197469021441238983332544960143525406153937369586236102128312907593670578475143936675907319765091329231797150192043100305429993826070776700296984330908720808774508257963001485629185189217700105604736805067449549332361959893370532934346320443330649794869759521997281545489188112078882300332573069224601313983781637861349848791291796843214501896054252742191964370382424375208808812505628869469830404142093026573747685191060855327218775044262059606506513792326491261664877236997231652274702327238413837646453940670991853763418912224888375216633497798491243726190231674794323689413439156842831915629022146813507748693475481858045083412039682352822673088081294490952269940400011938115669302959951807670287194359116988361335753937612016027992697690971520978075847943608192837714363939637885410737898100351218349332733256396983289784731124383501747198629492327394394804415776993442127290247593063804521336089063865956468245932403668492274817650910941422523931414861456687785680984584031624254831506884190158711151635773872980385671928556306701088397485693856039377995368238683901435159099388748476631534939858381303122384603954547327274517305129869746158726840725890765849728842303047634840340304339135665803215647023936531760118662149564046239175540002980368743243124012369734924983093005635372995396502894545936109407271629134305302544583450621635578088523266827518742802659861587910902484450321681773218809844680734661159487693446651759944130927957833054514435706742609342184830583789228181323134313850688397126563632700851169255042070859224121941504791637953662769413404118201357606481722552292838827664187859919010579102795102356605523129122352441652726820108605084378360979366520003924465017133507650104847982119272566944008422350686855926354478964810019986197358529953852098684444207210042275570341262203753104747572888472829107112012616074044397908393142137498442074379549528780761685363432561892853257492437912801336296375416130500369489097994793960214740651401529713810706942468329892054553457587264298231836552911331066477962300241701978845373700231773393211503990211059725948536376619692615879957863041287934640743634842108694182799928057045631116739854728056192726061364748055786925512799247747231364998653459643270042927267816468750318191318523935124291002558157649021733748767646145118468525384050286503211896396538139013080763793214521690036934052278972785731393487595590289678945664826288510213460899459653123780897308560251391135235193045521877666159704479715585953771589224459328588930330992574423483078271168400365051934028367590656880966573472060328456420016904824419347213663524149050999250914916538269920230322831263845009590806603811005332875107663174076718501743782311806135108989078788009637273540577833521796499331300744566344267576881174046510295797555003157129870560513964740877825180737985943549076211299058047932032544677750263097966473606547589758355179977314815454088704400391477408554741923927807997798788808952804101088484356050330419886648817354818383849988846130763746829749976521956372874084117438647576764851012814100650954022496415821661509472639672735128552572065261644960811706580626366403188050943487353121403130438145888089293822019957805353167872574454325830278978732010785007791554409776489397874982742956545327458502663298331840008267890325364909541814072490320194485539463316093651701120960512151361229740478052719621898382883525868117520736865441960582551825259547633164262770175418443029141548383952104249763388385766159045062809325545011752111855338918393902354131808684080028150476087704289970658670767025303601939081166633534468423365248639445192286532824710381746097302988684423813502702646653192301163152115790291888417517346054119294437983562602250897184268661209591207281392945878611984645782204389285064442662721047814408773974812861861996656781427443735490139072711214066965423773949644130997121327415972414976490269467120828089761260030241022927408423545289002649046336160525538727995038679359455834371798920252931386132964307822377947952830948001166526250915793971349456252566689628496371410438212343309210979204436476025404984457977404489171853438185361579076470833815235918817436678529620414591725525759443089605754209398868491550207065350479124661045298628162802535297407056882190446349634321473284213032754274931230208465798285137344048404579298492779622883157346541316038718798343808232586873034744043377070683491834771308989299133981131428547931240860754578254154031790518846618464088359063617583798409330082316777625263692583047213735893520448687618190207333429613822925502265184720769574453609622219289926650129938209474811743605961423775053263254200820617559425588170616147391146843441749882925822094944041854139288907231637398272241904502573500828181081091852019119145811283873618427193508713699379947133606697288216320797389691781223620477002568456504251341119039244215957945259820912278910138977504764754807028096737121505025019963653340849845801570808014127700402498360393775875533123647415058681592748088863014339900616483016249049206899234878598139588348108604650768213812761499304023089861315119568759291721584701290162857883663709252131241229515063958342928899757763457743950850023541238025063519284491263646033143901932550707607915445286431388436044611448198610622113339901983533938030737199824821421254824643956419527158584023660015830423206760936005145960563692928377473850486608120143631756645732272309568864993930681974038757599011913919376615731035456964628341232933557005395129825148127722621104752166257168177752347937011287275524296862514502668727844737918206158317289970388916083034388901525083366863958205423942152757124257164814058025591607160399378541477469899008031505086160342071492219717863346919587166472137159354000040018258484709297034535408120873072189818799350766971724347470425749930166096007155420939715135871104958925719616509226060237611448586821481978765498922839856685465614582272679147039059907016873078456504082023211161959094615729616080015321899143089683306611817509504484164556625444358619671096764831848681009417936099542919998558155764492711627383401391836908884229789979600925976094323630899051935761898496528378241335333597699399747549755194635267758827968095633322581395052396135227171881140873619518723711715585008327597559960101051468172407598519706722223635588823138823316267379275161006566968822202271766274174236782975338263071482753746262505813063688277149804270564814931554301986492260140198174166714094048013500750450208047368624457213146083175432261936611148871983032427665944004759531314062653785498908900123377016864670334124818784177719380487505229380578771541125354383261116696546601967435445435110042854458191405540174143530207531244141948759065206882999816135081367633351596006187273401849984729821397594414442792312648310036363379808675199022321467388497056033207878292205849267642353167725136639863474091208187099542319875127389465977037734494685986314053806887527901537045171053589285165486672307958960151273544363187979328637485474484134918868027471673722133056570045961188370206201726802995697313582358782293115105115154263371558546685326272931482934308465550918587455102650137877071764097570121214769498099598979834856025869540531551882403790629992477992597943681846851229162059247390362017300751546452644812657858271464655149503882234908820970385950611128216881294171895513913358469491121582855280926873428422850683958609506221495538307466541946628077938557100542497335345325905189688327497980697051048695317984061838417675733242405277821368904474771714435417957109105176499153109004261053238486404233725994431338071915174389026892349071747823005046362232198554451684941225374831241871285741190681689670444842400478973377055482096332132507541332703005304689876498290738045552681409105439389689604132195935488578508961690431899346408677173555148526587085163799852686010712124987713551678101254430969938067331903403436342144036685699780898900617396981003148615319017468897599013391694237284504113291853341680861622568651388608021706929521369690368373208663539316530061163061779376645889304180460409583244193660220200574371645600016169688923988813360416796343108778393684161345325238141909682151396580792774678089527475448755673355885467467121118123013839585812692119996883331033219565535611448330140357948800203196880781959624974247774867821457669475505831417206705324855900932797287073617436534130934792820736068092811636602660844684815363860224991527811750533262905667774731431816110990206547219796319914164404034332863554707704067403349302504379059194428887315466489001575938316518000666334472779257199965710133246240034258357335828126501215636223121054700415515675163294253593926542880485795966078880377813464405990421809704616714973662615190665075825248506234476103422702074764332227878768359259847242370167121546767001264524368083209272938411554195554565776624012881887586618242694229622663689277165041810933074942286048375798000262571514125698277784039716972595101695359108222907655462762524623188943168307311894274257502750031785388590307134647099817966902650200608694882016482418440312027604712930300740119431442166339539911915752321663328449027497188791507770952525659313750915772651632911402061774981310583271973340123008381450953445947845044760013643616279615776977469652699043969108239160832552642689925683272618235120616739326870616556228792304491770199917263329487430755973359248737949135449069711895486256600328758378623206477920554806219374460831878828979751284461886979119556406944472612676400315322408824759855042596508113169233268522485433530384740432244786513643272990481900188001823394923005703395094649557712022910356307789896647883108775265908921410895564340870436360857648112692800565621282523592451862150518671522158227778085937839990435126297540102079244658784488024818604022894506565929343233210134212589365385933895755395425745007405977453636441004798944048191900216372297119066049947934024184904715612019059670543617909508700880595638288759041423542561448890618926607003323710361468505337314316430870141856685788638228941484643498261323213171393323404983708866287548398817746057385435695979550494853741362204625443991240592073157235955672505735675502795602223339795102269745811983827557288159941275012628704731928592278398849203461982529416313074497715327371588050593280939848852372712158716962644874157726835117751928111922781558518195066241270107371831036095223607077062246021808730879904488690431554364118371713276419512903070998973070315818969672398475316183566388316034234614493480979007873370379564459453899994808513334022471353206818489501356280812952906514086779450891209331306194109993190544324047264889598714042321281260211370967296311865561997212370517106684842574524002290090966740306537232624204303844733387015132128458576658964114915170300293021359530878671870095902883009525989471971827269543651879662633452595024677553689082373137425655724290897038251543576140854644597087013467079329910642120625889985054086626885389296538766694994542667477477559025424370522665928828410167891477497505530903234449646360564681372130669380074654324050936977201612205775760734350993925995525556332502290781776462631869593801445533331192832881087436144582969199401525467581384219564770238818204248909347048831179837757579257321141313849235116155048327234425403467960363783930688125288057894710553424975698593262558299730742105381651026736484278757236645912682353363688246609564383218752496864707271271597492759570026477164152782262623458441498502374028812295088502167354134778126604691410629133619944495300771399499357192539201410684933358827808826362809348208529170175699478901777374219083825894415353363919711143057213749719791411705900754973539275701926797203409643950474570595487619285889623761760252254601608725088155136623030609941006398404540591724351794089642576719713396773437024730548281464955504041386569005002282747538223539680157236986171704170881298549419660180313702480478282414197518508318998169701811554502635302176847667043344826594459189450066356021358678127858548161337595819628017237321974826282133588523978060643975835185371208445620768607304299487800881652742476819258019899689365413479293103630522088968165725240162496149929524095784442672991793978968577672680970495543255044673881674817570066144729991501588445104548743954044281876894817510312188088338462185004136223993336757144706183558077579924222853604964784231049869348016171345771032568935829366091214363011712011311061726859494748822945767685362236823523995470284719198151370800879484015580943549385925733694404996256560515972403572439990492058283097035837854975832413004909184189338546944303691629388010944191131301189980793670459725584719951570295273128683134822092232691930653100047848404551826335981054898715964471343143712024006836220236507814341601121078575885175251208920906533818513986240833144185238650788421459852144832764167628668716093706285630479458313184658380590589952442086513104826234018883063538874184168269314832892913803370416462746568602209370119776776119806248983421854722768478163989797411480901346585314535098022903128292994179910819865498200541203808703672093035831744819037681258259117993762815027559522784126156782714419962417146962572292573418180567623894715652951616367113575221697733780447283737001697351426452590260094704588692612251235016430975717546913558839664055115218838702199596944987409983764961184224099290488329346702173049179519902917890705777619256824348732202534999095680189643208483085647698959363400698981040568070624931285707954744383735976799795481046715303751096687232373112863411222287892367676701226920568117730591067140629286452261882642609005853751903051684890794266559501852415224833003990581258422942040108085105596259893831266834810582160899393494347258991553623732858845916416254358998902831144275283889453799753675908987901920509781878632856847077318716934562385689709478108039461210128179351806445264028165047800517927712121683961424354259529746551600222206522056041609960726702639610049712784071663942929933723080327621314774188382816803070268385173524780668246372211175541344122856746557743253396036975990420764756566100307762421511109895978053688666569467059934316809517982317674706644306142697589501261552940602466122254109005955967450668657146410251782363056901603864620124040559823406187723605616503627246772749142229363034126927526202458714438164223405761677571029583155256305584102757743412517199702187316534090331343532343890685809135764293852145492641262878228585684560449815906171838709839932454494664433001128286741167434446349769867778712039234342424380098755656102455989119949805215597324541035444525732297143290189972757167905400893238599385833756327438334334482411740574980915511060000120919337424521036944818831866226859032662092936365860996739637151584345743682037017028012268935969246221555510572588287762691626207047449700311976455073454315351194010294674789683665131986278282623210747831715824845553185267173747310479536843575406658680532191751285382618862744588446048863757745854628947038794023680364297766721770480791999041663075238138917815951690727663220772230634723363310130528982672353514732573117265597940742921890428992797621649787913475461625686338822630092462463413184619428761642744423607971920942147497608336801735365192286390022841889831352210970923516986757799950994264028701977002018120211508093000867096379274132632591289992360196732744170358263084294010619715807533271496487618222625409266060762520309190435222127717067475741004194784451542263383430042844479226217500701942586198856476681022901660432762462145501347658796798921645173670124061151360210073259442760421138982646115797077044845516339736949976040659238436266544906230781090841035459476983514252424428573323804015433554777642018935277467471386902773694991230190251286194302310213713537695565239865061127348752287527754635430067195669052295886741311178586708954199120362053389937036387438115013702988842305481781286387191292296909059847430421083686335103922873662312169289394169971260379065993716727378618781666840768778436006368442647678591565288855668524676685807436415796615982793320310441036408002989517027873415492824319702039729252854294004027168593663331997232527305079510597362668575875507463973718049500708765513027351558447500160559679577388009381400464362526699721207018833743105595960769235904398295566113077513776400670918051123323790152146059586942286040028965145483595127126626088529642474557524676962953247759983134001158162635641267290810601297947851654584662429504077546806201769125110667333971524094137132632141526348129814940575061360876464611498256694534213041738328681984333227647814104345057631419902936282839012232820933203526611914950536191280652996708250768502451275742134848014488221761091381240312783585007738150242488731802181963019352671100115686054821697338161847414154109371167027737328790680402821953531469592159137520005697943456422847595319533653435691347527734680415062662995348156125381819364728181101869818464091604377321245539616337871864758950334043232705480144958028846820724962167003981767649340367886634071629363460444755968299928869035585694157764637637115734996123085900526008159063387643127101758842729325135008545924811573009088828604067195660072467376397469036745424113814636059829507840596919966520883466493510442698010056363561710032565562211598741404740388595452880884072871416309357782944119509529962944058165053199129732521389667944690924175090914539091608204151867373404073069813508226315646160378916845329155185755182308748716024139431345053035650804329093720764598862816133794082979539957963389258267905009595413408366471699277212491219613524996987029326868547890945397165814314180712598468048588199726293031058229765077067198387450018155829146454661657681068870404654216591970280341521684074571375693847293282273114667460772636942653473733749805218983062421039676706466998856167513955349304664159221288861669346258135231671060619866172101526262366475900408049414037013191950408138332031828929897029778804607702083721778253610184478131924738958135640582746007927453357561288131010911892223019467261657638234477143528295442873500913318689625758900432366605576307085721506353015167482604802313115053795691613040006115557863987120592514105793088300287586228592611476334702374194564167641973684899617986234282413563648643160261091661591776715343646147162581234664918033698234456820114119929156044010914936552632625564476381480768277320786773234436420874146410346011974273782754246163093547175350143461196508581557837269453820949784520302814602825476362719843593193862859120959024761007652579676520972262097820702952545293458924041396101746650649970939352940672973922436494973898832068761274751355826526618085138111062649432364438225741465728950780140216945912269276883510495090530721964322296426688853878334179335462812819159494331146402927507252388298936918522026011607283492703004494254351495375168870192266863031302694387015776265447242801800828497165179612396169818967221183532186101597078498707088272431134048032688460871120869019496573835481734462626833723438882824104885049173943861160295646039983772340552645723255205635604645152734031374185674440818880391464399995408702788897909991866986571520019156309026528271630359515321657739645215465922365433261838589103447243897582164825334648563474259130631758657337887339184510380937053585008847989938973525502014115228839023822766673466570244289001228244041192251771709961917293195867567746073629682260497590011459280005210772097075924868350650767294711502696508370844399080250763070021073239950447554999831575136527688564348165513156482094701478723337286245912635462108635198515330730074765585985296825900594514979985176915039621019075809175319559430909927432872402011479138434544987164557772139704293853553236709223365508700366721926255653281000795308624282891921548125453613867697373909635693660288856076918932001034931894125195940761413466447373265113390739392104576962293922017767862352124147220002888877142996772130769728196423399023855191585629715182909984069118432366301366439886654243698602845396549809944703921129022544794829548111642574037261954723155530170571585179543324993320584872820780625734766519454913726538381403073916132149335774068280574353261792341151300190240453992795271813183561389169324917454892893539019685988940284598785916024401062547353667562325012161676151327050563926619407329016086465923105979306679859924450587103340682841804413722026484221996721439923911460590292968134218021320747859579641200238586207536788443585926063550651904610146795829101427720038937972318726732777924256055476906884869912218748224118602266299101912756703076521044556898783940626496699453593474013887017521989872136661601830709838497198048509254017471773279488317353521454665019893615715148857847911460559682956842062789155552921044614127899757482138729274976335573834028857734936007301305663335067570282615387618486005895894651588332855071141250858692917884582380546381007427906396987898822354743464950851969152937773644037043424263692480325605973015480724455056611564730195287996095179625227396797091843591641882634778650621902581721889464092252615898105861492102931553109832838235267197390543066558524005880318317844499349968332130256914513894678877056054568568114331507368098909520427388485788247844413192312078215551789258404911674933739655505237548579648277624066804508723177104111876916924766504672121947043626655500836153966024992504724761745644533423851558446561038822554608951884074484736652934284095494164822036752316339990481104797384718873093696562460666671414379548727411961650894698316810897889860113647750881059198760120844296821095295049396748628194843670951236417157168150030367077462476705588894943575761672667673878325080866712805179235565912628034783653586420576395478763362302788721800861960086812000417821792392417357613395152589216518218164231079925115726615737816622066357028807771462330340748333213911414744531027169787546982653400763493384413193923706889086370913948892859738516730016738512438212523024687918328838774262904077368332485507618329889182952005118383616085660954781439462379673495412639059932741377273919165247225702818814777698061803877629308469930398191295216083280075322959544949607716354781299926257836636079167188539239582753188760015081916042561095805615362490733785769565992289164276772704489879686876627795030998119678638557373656136646638990489820397932590948822601567258897885630361633137802150396055606505340821756084486255497336527855889068080974021189750569870518870105839912079213485877220774209289864539185431029657551163532567326073720779490900657230238369262520702837727743410148016075061951988161870925023219943018905469968231860087917793567911461505753305316096342298386655734718656947759377478863985771074155994558202046820479379851310089696978137043203930313346069721065887402989327326742687841792098427131205181302959451457537861147717541320678690186506223475482369450709520824996715964928765680225947137073026957096195712662577505469293985885934730380012620291607548349351969089896235771036973863383903259186131483516745645605557353073849753271917170512855956561692727918596984931708503256688919554991612734048586985951983507354011645181454678898560567957458070064427218266429307329512894911972421755534273475932107277115991024034030654293796061397694674844080452482340139408371973671144040977755780397759363316060416268425420882496358587928819573488582099986624681586105842374791541142569976414886150740710940641072832322759705447429350925714182432417493797925051127789576223003422819350784709453148475768078049498448275793337038601211812636953688754391150651592791780274769843567653147162630339896977818197837296553633189317249490913984528788147107829366139650023813052876095864080936629381244702773516574546601168306979906718158140260288952368784986370861273010818827358776224491407286687098970420700630973222948771398449768567247247600873220413497597680000762022723322786419111309931942675852291241019733283529644563314704655373813891192306117461268304292723314531590315905768277817626248321227578928653384673143311147636022304749988633095782469214738750457952556305275544685673054106631470781705656164120416703453435088036648252899029391478759362101936153858855457572314554609093255956358785126384182072362828177823821022415856929075038697765888840994351956121372221800398621604599949529001737651790526839231928448146409478686306117528618794302319710927207224763588722018058517787944367060109694743085601280049970672590393724741128452971781842077615199592631365530433392313985357210544348632024403666852357487142372193498561850061608795894897717473657872917288353048877841368016722519696316149810891757336231145182588100225130287760089174201999857856727784735079698228170476814080508483027447054011555402224788431335073879109121041748864969135594420488336421093223340999876349322646101250254717137318979305103975982025725509804135725990178142993192173054320051678634668253129077097825956297125900997944832191283156830197339309628984963395757527834328736212254315280107731112665300370615886101808383994137159236462817339216378771998770863742473042588304896356174795232397943479821055705274383361811866458668748574918280767730963385788006720783194497466377424474707911459850024592470480056429618906134043694764473282304354002437100693976980469143742264414071318495190120710337822796080254759525774619896717730185756620497970983129322557127285329057833063924080566121435146122183254390886998668790343872939492744718494356294885790688275310381593387732128569963158913032550018978726651859110429401357979259823844310581217305737469065410537431986059159351750201479583769004733879009087811320712350705790855067062272038562403613338835503664220463761994969115144475328280369063683382015907113666554246365595648045288668915171770004853534653716364023501142125255824547087322378747126212089671821416662211138236712289068894677669756807433879488554858040126615344409605999518930167990371486017775535598529202006118156331499551525223804179150556980301767097596332661758665568563223284102045544427984658360192677877590326686145718748298429887350243122758075404204361398030580524072579534826429991348265836027130435014534671624946620947451536390983590139883052593899996834491508596746786775990043644001435755126207402335599841081037131864420815866941823352463079808984076349170016518340657366884713960147952162502819920982240974406490236348255437032966446683678548837629483558285687185694359256177113517223106436060979978005264342074642985869033535287009887305541094471642995874120012360577175775108393575430130115858018660153593631230282922220553842747267752585462539533589306200331447625732012780029260984024150733134602878371058328924226228993012996742661299822204020263724026917068343154867040397843189531770642279369797849760200114577717707313368746586988545275968720679687642671199977281301674241171056462353780212194398515616795411239208456878109594560037876592611609220344396766938851666651972638924128668005577632398246117203507409087444868437157288114249889045096740478828709925432888571645871147473017955238278212570832102899272428524967655221614863889393840897994722175364272452045603626971416599749040507569113801618510007217871386298529346882976773697229935133551326828601631271886042969269346306884180635001228223330432645292002646844954622662987201506716098166046532733118228517615211575683986720404663270381457734835386931437468850132233061838081568972146684982797728216180398131947627514218179378024546007161520267256436837484462277391805355830977073729416551036913916683358056918257175720929094996116692198127989475995013172340882002580380922199251615508508243434185196158773666711694487778609273150349914556955717016985462746745453992823556888743775093312840501511063702654941244795172565695525210383107043422685390011630508107241239151488072016130043925454324631505561246458410970697248365837965549739734543746921853419168769353689575718052494055207605767326888790589827179118861311440735186140871565236437434495405793727386898341574433786094802883099124047759212906207552239723425492116946696822290330028432616207060642640122938390657701061191324888212032612285687698025088396807503824902623659882486800740603184293179247307959292511125913471458936095131622297014902118632768967430495551421721586736740674811770165736496814641669539252646145331900380340511960637302528065276431930601279342799999779418097194256311466284778929070799881385438179037282778943889377828080264111442040987102417440985364256820826360945808138650054915813597594144802438666747160665732543019978347579222996636147735201798118173220622680717402587910775048900954694602505979074802128122273750205823706851691558632399060197638569947509047322435951149841414615528230135995344038374701050892754059958868947305951573624326620219858654883185795360758024532332131639523277274701961834584673838894216238304758256946479741892756887823639654521267383608662680395778679148326244609616625050099064622095323117321834865457382053082590137295378145788161341802512233099765808279789752424516975711566579136997695836427715931304531288772005368881857929844458079070967315497311475683625515997516913877786313712057873119632195532655126828748678767738427786354335507260557465875287656157980933725078849395094185355547303340352134727335867896825089251324596070725540343093207644996228827568178936500940314666634766158117032145781650766693652014193661739890807081220883866799976938011403969110404111770880340498684654422682437802522617782963521376418958456654350760575598701485559701033003954529418433070114431693774880802433306807249769809492611178032100915473108295187583482871720479474987278608608571265800703962682547595920926750104202728265066296273248359095598491384553556837309799621820406724171125276030965646019140738281046620178475266991495980074999389068945513771892964123233558884600609811453061188658754854361477416562959850746264140863809620319583964666663711701857778007384598758130726055580272931905323703494382036663164841457782073839011536971098655737819426846576342524601160293621186941784404465397928143272750323887842461829533154784425425519279192278755703814245636966756710890158836162879984563058724096925434370062839696037511256245291692072228302810911632668933345187994637105578324498315937854309305606474801857801292709182306771530513819758344614443816825183913103977024246417657398528643425982665041766007842475255057134083797937075360057108018217868320583798503834350354601942758526939418188780966621530240309709389243276077169613344595184607526242668001592115690335758182268180379493388208350303443393483521730547769526163892373118646842105388082437035954010880253558735443022901802299127432047912029235484536551319383842685943340650215514117500183257646089158712472359779543165140035191443594694352701186115746487506356391820307047517902967272687326074971198390675593402697254097643342202659493579365867191332802952384560660081629194774778782131059658922961808601822424605169108687186948928823300350619099420653192518757990535783621352024179619482125546351967113826583902924470104335746802783595808964894530628864011228826419368602283022724135556963332416760667106776304351922691189709982214735772394845508774596416343167369068060565741290627130576793536803070859292927813885740289097449830594586787127631649075349523922620915956422336265485970186736462555075677551337767291382355979700055942814143328601613999115190596322842028678406922112631439074570417465993566791145755152745864470438663883725906834623812003801997587278158439685869625367382692791815068310105405901720040052567363936937008639728645038049683149505639091590579514808067982294041627224060164233688286038168316313476605891014717065197784351686311480589853007872960534550290746048932698663321925988288600555518165926356285084701775695406942303007193405713894232774447469012886452808485088339944975453876340112999845145013680666618958987056244649950020392477583636729366778302226258105180833549789328691731323189922896635421688948799170472188558748720944246562384746877888314087156015597684116999983475406505484673346270448271878801795663871708660364288940485931130850247206918437333686346719122090793148343236066897538390340810394007920994906527394327583167245617436838922155765349152517332121226772980688177427207633267261093414769433343775198556100997166645077762202741607689437075166831134784874985995854326032908960576466501410761322605342571585827490960521928537108770825879369848545041070271079819004868933100990586611749743784792427161661712540275563287248911747711470015673219967314294150355270780297500932211274523009119485646545540430013453846700807838194459906188873690392445379440215968586388210048851132410416830992452587365589869181802030219274544299937571667274932786893047813393907653084422678395955576342665153358228936952755172077718385604187129038393572129220337264251498990924218383848161158390982464207678820685481890908765830034459397254758682274688274387725015911376032008493135910556979830433081609707833529974598406343762277291151218351903141466759877729369610645371209269787637600724296682977390113130553073176488351741925154352841239013400965216122534491242632457908095274343679261416300727102322128312259783618477647497480678107215497054175529307922096316786875210119149929158582813096926191417872726272100639183391490798673596350611734644469489680070485498808935936317710285115939022563803148157341625520177990291819452099125696163421282868068099997976844097848499762516242351214879387293868863304256843121557297045925931274689925524784622102382233223380941011603169887014995731545986009359220179671943030124807975744327260762675639783076742905052445336615581982847986221998073563298663723543838685824516120737973352731818798152692473213133983422315857547306533060756099501602272021772041920602996395388804185768614539398221217107436655871956228850188605608195510184307516144457425627554946736258356979301394841685310764686306401839227955202792713443349230092233046317723167585889972479415568160038417435454912360131810774484311004397432351036829400438429188747851792377936872790224135422910638293231573006332838253346203544809643566942478989113983973621980485540538858206080982310226148188447102610958027460068853712611210762508777553085810071364790154200686052319765063753855453759277086650512745058750605950863894842823413465006900465921045747453288892250128776444609531906257534737700278662799870200957545777158441698490418010612990015611502902968658751184019659294966671240621323770513624660326657920737030566163110011696024949499365538756761662896011853792687497448341673565808514520911699814352193429830410383118660827803729674867114532475680151317283930626576592701314351065992624803998187290688204117555225252918736177712779310477254869917921256853246673417871596369627069763328699139094737227340782474567316186196517881078828805587288729988579635197242661838098620436043677538567455494001163366635948670388970356420502653922903409555028629211554920330590709163276096924463966155254025767132503612029846810437420073844609052821702949766103088176532502344834287877637733989696045320513291475100083762616965493339595404006028485090922509062424626682514048448791286105985194137146118942078380059193224748633164170054509265806630876110868839151718379586266874672798235070224296208915993034563589940319271789667732969323223766564523356389985303054046880630267501993840611153143762290451214808804824756901676060464198753376454331394282360525672289151125395151050391395462310819450079346769400721240837755759395269729813995545046522225474951632467364349896671000782463942496516120432332988691909672513904598724301908393828035165873045577707681904376137095961173832171134757877285659148269863492824088545605947269258854497827482035226305342236542955425018652881492908481068233861690485020045815036765528318462485160857989839835836754443191230513808342059602509792965904554209378551212287592818887256502711600256588539021007831487574389361316240668552498906129369184208226232503607943388237732895142231611519012085466038936188697420634226925223570791223104548557268875335581999121498920616509589470111834639909276269484514596241482668871719279949424786189592625203118426447789777557453235260747428007566352503072596225819236894068043016735282902748956315948547078322803682868620670834861561467596316192995479220452135430717475494912247475075018769017046360214289371823759880039793550056298811917804685517849292907915128607235932384791740232648693902558216085857622141941124856045470951754840806642014482212990453622034900364564944437221749672367450892228609635832355299977651009182113549137398562344892503852797915682683204110749104575320809396965399874200077320212116621394024560783982744702718814071239093765517820685051206445009996618218125674452041125660068349256089165271277101114668780112834003171663928277385323624152473095963427362668813940354580441580838331688701430471205128900614095913570704568091669525376225941061329261946589346559063093795512335462165344368998506659237916223014022683137346666066113056941581954354072809240200107363035470448354366619026072050191829855276145935734329046111033592822729655188180095913933318996802870332643344893783800589191254587454719035586655627083104737474651087248099077935235017772342773689533880073848108726669621363793589448253977757250953013546771031029337825974545794769996592404036899561607256517329931520763488565676295946722066252252700271647586174620941731473014690793268557873812278413757472938018765968725294686549968683519748687695048174520555039694644130038116402512929276683310473580515502791722277726387217412607289651037378680674776542709730450129243151587915264525680175598700927951182039622880115319308975315859932974633957734296951633027487292479514594331726590618412248806124239132289569303650809841343658227424176807396794616015920943063420346976182303246994577185704945907972457169177403407822572778460478249764413480266439928096391502051862414061367790895093451905622563019682790801325509540967933494018948311395836523099656554864811362914250972710706326705008860087508412375740054707351070534031350927814651141051851599644694545331431058330490599948050090076379701452801599571933679578465139644794439200112047955031442085667540487225296316292830913616194634416828562869363722178682963644537747506778893640676524743154925862659682166734600564530000693871155525455423017972408365362400466498831617734782301463129186666502770909443035254930546177688396497661264423206033178385442461074355351440856095768697073058073909540191275626539195071273204363270614362276526299480738438962033123488945954408303217148819616638904034055977008370441531935680134329821471016162591007830993103229796015758366145222494458798608213901957552491526210142886295831544355845600497802757745313856151459226063977215646758972196378910037381854132768219860163964948188458016189653773082986280642106274634378068122624421240550589182323559772321823300174877524444425222641142497691451384932162562179980375913172938858363401194970246944976826906777847254809947670341397319207506873558244733745496332924943232318255113526811558784491218204021256119162228840224483930264020308431377978812836465479475336535530851740064511241700493358479253075946076390978186120949519609378190528487258979307669028070045490462441554719809801440083569180290419435018142103958367698021429080913352294940242639161670163481236967960023967750701441874360400467158593425440675053158122092332859264978469143541185149082894633832660536894641780711930335528444913987773023489440718661940159935322750277067623697109475554362583727160845535470511836652228500409862702053091844538985698508598225841134972993465451084838794388330146754084072732726120145920429918796394316157673118352694882612769889729418468957750196064317730108231285181288528844948401113651952677939179046202887822307502203621358899896806829310972519136464240320791821255337366851173077736125118354854195442869299101202881350341443013405031887530326263777202598916884383849666862253993217184233386381389044055330640347166344533032129393543797573410139013433456362920909139404777739266376069010158746727481304394502890194247516681573692384825272798464888228610829825696024611911524613069118123969428059119241913795981857220278072031369953444529497816979664713617115818842750298587227939958773802621030267444192390456630479275582493340297666296836482757495379492497639211621757766680926597028397660214382764385760117048071836511340952329997555606205495840846375174464714222834438178927665044292686274016567404586098797153481926698021617627972159162956283560153092993268379393855794905793915270765566599718592233070099361986728606045191866192187861696743260336897220134753598264718225745069666895406683304371196268914693985643011823254152495074301267255063925277752528381788548328403421958080718548329690728135263005915747061271858346920198626663330414100864307380680367114555009276316685595323013974068142575191628693529008724951738475379510284833598042647495051719283874425303913838642741994172560551928206789992412541356895822890691659038751424810780856139169817284058593530886284222819895629867432111573723465144191622445641885229739745574684971142148627547164721104956059785195192782583178275025105501387983918667024010670051072042376636662878322647538888042167729367648630825415292745289713133661808382733964300360719830166878249390633854449455511694930530272165811975436369715547289697150236343424944205725213826441479275224134955450103951801553258261834876892523708846695107260976379339648494215523975649717091274132015264359470903581084074070534261457634604891254361789572396939256943611097375287845910778597527226447745235911287518337109360577064021031220754485481658296450894368440982431444868344444815560613246209345280965412510019789203947332759790309885882747977494272472377585172355567188008061453165282351184223408821634473368915967815855822744540301114329513823467567922009431216006066338776160383516356029043624093154193171413864232133309679902176179535246677059915552554284002076794366138659017829144631881316102766182869797170864521639977325267808357779350603856815706902340528561743234687971030773787632881956908849725526210698444574323841748819413574420832523172563999673827019713249665138205787447858316761445176380993477492996076866329052052216215480897079501780859297167543393498182614037954808404750318020610529850524414075244805682705309650625000495189071951772649144863252249479122766464228626426138580636941177517893800154067410270236905642106738102327297565246604930825577310613003431784848698031573065529103541206446123932851390937211122454725400380162029206688181361206753955734579558152257755261556702279516071447368259152583221490709047840212217099721070197400119221513321059165900799812936774669057533757482754826496415749448849534087319728436636394559125489768266365447043517338452442919905319716586876333299774777349312207063320102531005635163459759260873939974917735372701238577495023776696282074505540607303348797816738523595965271636074526936095450399584720459757345714443019551482270709967465280905914665302513320970714466093702704528671823389617134451319384004560567799233948471418306515332732215076113431844578805422387179222743079388736207412629727921711134773876892652349887176414947364396851762503875705892983283737909134588964112354895168992173766917878392765327417627812195644436715880935223829281431005521031018710291465613126404175969025348154950352469624769443994857578522569890351977972981482805509190780853513048682061850576957720662004988595191478120088735296882464574262471565841159797260717131800463853886969086481004593815801764921942517670822473918189974482232465273017395632369432383726186893402586561497863925009471971558444354593677033158638910110481370384495029961129703643726788277523474206242868294661870729975410945872993850830280969512684207038773147479749436482349516757180928973786727124866593356141253091544525565974496945441199717337435059399401394001825772761144636286682444667312632453520361168890955168281031201371671592485483203010241444621390351724121705099504620716614735583693114193506562842668478714407344428318288539486461916519882350274812503651457549765081168443313464215833839274858776527302801051298044462154235755840686201971030904672218864712668025547924529019536858895716010272434932532946241510302884829728354870726029373356980223292768592854735283225925664109778442703341912340247028945273408312314698566675718101042258937743549225129034943613677092087641395050039152476447971610640480033726402415484335738454635509344970519174515787160989893507445932124657430877632047289824578498867446695753797766812879109055816547913562061203774331315025311781085885080530144219761462276270807400033741508118530252434359896960647104863002999049142949613596990509730915934559190280487966836201963559220514938234640859602029068366484758688976752441569629270175147063976245647416088116251515965863003395749307975334612722707313620970364580952915673484404592487817492490794129593853780553556561480560136874844194488900341902979743712511382747811288623203643176358276032619525940687090370125209529102350058475719942098246947374461762745240105492028641970535748411573835390242455028318654801742577451518977022399321547027222771666734279882856357365094706901049046264571060578701824682519726490292740876781907121341237074575309080411844434864592101228301575356588770911562673594628031077465283903100880439647898789217047681078012223283543779704140728715111232449891534635740965903365839371813485233204470196083716893301995916762199437360567329957874739971546640885679913499179417084826114388403706461063836561772629310143966461812879475212784235720901006509902011255063203273027797915968522915977566106411650115171187097943548989838981414888893850829414216741738005672719010242949970381002146719749787450946201910167698598316113256548153786891813269352978062970783930191354282895271774997503659106732824316856480634721711168176392962194183446002788237014468260636716860024164015470709102581642764601533876794976547130992335906973204608898368046236265184535109155842851148578673203683365728682351524083557870043244054186046471439280128236829911881330051832278343625759273196949456501408626648639215305202163610797401066000165940789129157290337380177286480919393176638848297069201472317868507610415249489884903281496067376177151625276329284749324237894216627430877799195318281059326127503870695302458641310748080484789881130274423392600482097125122226595268357244815285003055412292561295578912960046463823599206541262723552986062817026178723194840769443211712239310839664702122468424492429270021808390052505308782435296288419619098896484950880221545529004786226436324077814997290791284617334902988073151077700043362349169602434817520294448854929074386902056334874183527161548453230534696882005750877511381023614770913844325727729495271091794818277286028461559303549055593504096165740377007432265996616290878376563801985493191676164298524468600834013738906540959059501658918301923314066379369323416216689748093361595569866428013955901383724853131386187493699366576875380555207627788625616290292068482890661509466435805161420508439720088534232379393495146174152688378856160469803447390197834086065559193278019765536372726305686471118086497274288968852582570602585379682807396105793081428322829595761896017362273088764826440648555250159587613139710059864389248204657411483210212265794985518552434584095935886499887244220016454302113443993603654293456572371978894132960542652529779172427994304657163615073769426860203870182745310575339120936137067061434955508380179029424708853111537241118437082509036419494735829539839038286856553003544855635731680814225053456835046091263119764355049108188972308666817966104701433569639966531918439626250558475871329506140115968453501754698209840138569344853148192125763844853426207860085993371668133559764185104380645719294111177865365047075426138793021781275046852130097418189354599013004122508036424275600558177926928686678134406162616209090394883893788304205890808814524494274049691076840538905821425719219700446746225650454307459237485537736507811091463415737700043659149409540749095023992536043389404627616950497596374515079459544023761889941130498385564853054608726960237590038547704854060671064796723380193897949796790823666568661688294947246216979444614795456222891161674648895805491444084905519964552357544371545861936193116228907768284913839674064882230910199146472605766023082943172362310465912720908538160695562845648798574397583583319928778924308774956957226382253825769487622594860506012665764702612613251015466983967188615901706806429611838477645828658168283550667756283452820344854785637107034720196689212207225833058014109388821860801429987899345314718119622695900032514610966666387372202947217269174666695818251257527857163637948723536112047367463513320451520598106713686215827265026156148781988356230484293706505208943224078257345895594973583519030731732106740432424263853578836816279556793778471693710297578034346269717320265509971047210507235830280860108674470687757964519075738645857229513582289112617129716592543838736588346675051895775090556278223449808657881005309933523115898228655095218712202211019694296195846387218490743064619110109828100763107757151990052107391393404843985897663489260102992778132491818785577882704242482963608564061711296919343698831071014927055819962461421783878399342994512089512363628769975347533398194326972792055412445852157108593530800777937273866811772981623068638444886733280178900603498268272896516779078696520584002628027386806830846569489880554849788625514769703828819882333824827292254029073842450993872966911177466516606635447468831933166822880109956226400165835320478698057843036947045263156181588277048424454829547401195390133735870419888854903273173151260044897363112756991886795437315837879785141340625320030289460936528021951516838876597104584248935402285649919670096653829865252062690315074924254389692599210471936418635143080827972475322329166632539066038405214572142396304906107621985707010269151227665551791030601646595540048067010071495011461880416090770531756312477200839265851982505050597619892853487294503309482313485962935695690919736602081828354663901210091855179629498938966783889204972501885556422045235691781133805098976715799680390010411906251501142293830189147311185779509850378020070612572014131920043668350556141315947731295822695877830841362459481904670826876005765360683080434647386193428299836923096221485772941474385475569887849476078509675943763987572182966997352437227251310160421358085219081256189619274885585186080240753435361987600713863726973242660806990533405535545756059019962808902604729048156771900012059823271866548679285542968423262037205537120679585832244241404655195566192774701460439818073464185927091887968334695464587660942617034659551812526864504109935560830664162138814724620377421195208998642758392362425949171263702162245483290598855864916469716899306819408067817509450608021520017343504190336623497256400821759284970397945582074133772334784035745440335942495264400579573645299390466226716337464893111881675726067572657563361463932155446591263489435509390925321956793363498343375063005905262425842604699510049871282538777431452997363060018864013758974584387489569293327949717184467863427123000246732141048675527019347768723057339738188740356187478261112105462563106691163298850167578450649275667233174517208488165259065065265805384680667304031908124997280243492539698986376957410200134173066935509394100297922105170881401977733196461661681876203585412912486704143611651813075562333337922035306896202801447092254261856018845638567264224167387823693935373701617009115290516940238280271525811773669566531498169120839061934910088198836056876698613092284201180850269614207880572849519238428450160405015784690151028630555427634114741258809503943805607218566227767143998198000257356690744782034884624689610050803074774170730319423604512622436639396123481709831197691329411623327352111502002212986888664662004151494620368560492288904680469416241539959197511665268435228341824622238157640897081616655343156571239200012331639750385615112409326471827025448835321755431087419968357628979376795163920419635931432994605308251676871621290825646081242852665774011548661204638107044287809004920271595261783387460970243621007848172238549389985323318252712546083872540178540655265793768875751669092639086077305378202506286492913861407203384965989301928504146558085497448956598659731712929851819391115414036126470513345850531713213488024161912233637932100859655224488329157446433724212014426141859131258875074896310102447305506074978920789364623951380185036509768827625273292365227341355117062079382628932689870853457057783779203495162386740370971713876368114049092185218606744464984411984247654796073102547657560432718963443988338084624898868467729297830033716747773655201425798393595582901212965772182362209122223333687232931825474067239814024056646403561578908091317574425792291091614461376208273574020351324057512538527656988869774547201484812634799842407401320007790365105425371285379101344767689127094207357584261667685806851993783314120528215615472967966480917749169192297990415236355632327971624616471906588714523245665416312350152335717397205199199685155130861587870612827070900044287913726809217053045860352744318405583893529983536632944176632056318622609199927357724296039471076321210718493589695342285216644899193025216694127453487419590550927537656788519797517713828103832947378698297433059635352072124670005972193545050721436348295456274405119097719146900748231366350194446779228385034854150324368054962028403085289513763068544820518710827342419835506462389855829566222499610289252228310928119498558215547684381565263537271378503315475298004905384173779170680866356084287414263551878367239568586458930945905246879771162490816737551928113770011820891677840674975577338150426495005270074411090055755271566756570031179328129757467403129603752940374897181061547917839950219562375524923206683445423943169573363273480288355358431949555261339927450435461427059433671685106247474859698615400319356139826004675211445766471404582384894253867863912552945405768457900475940780097470859389010407398431243530664563639525936817426222499994778536688232794050561380517271218025680802464672190644538975781895812348142162537447252195196152393361952420842628386712042601445870788633610337116010803082988993356495790269924560084145042852721209267434169751485741805299164969093999118535127968276159845740861661868985710891171811632373335958933803214973112616749222686302882446751929141761183458797608518865684886967987332727653894946019940349261055065473898535192677256552724226230421033714562790890104776866761375594342299673356102679294949330711200615999733332659082803229954500581834845954552775994207136418976682014697108380983005455722128042280422551169710018051436885399425290508653032261762039573287552616377202878659852752771037798634942206323132505156268664500686412704833905713480077391443710170631932152952980289956443937697974679415233567438907544138481472741076723890760122763701386973753663731038240210966606980268544386887295455179196874536994000345789489105236059203952052134245383177864844430629276345298615963134838636657891886305183452812505417749865733440120711047972973911525293295071013697739346434198747456228722152763740512460358249629601476149635495318493316049261713984864692263338158666091120788504742304882118380327305504742437422778460581651607229041277532893307848214910829645239101394747728984545588451652285332565393960924917233456941585681526931594325788915328714539059108784981727131380782669586470490220760697246940321177708500530343121952425405637005982712982641063422935952578318984125321083358895278253783432141240807574713752078939853933732553017711202489203366893382132340090988556457707588496314691916184033513922733799713611247816873658518640447992827732958135087512917543891655802742898524845477810439992820688986458023665495714742999950135680809279942385840394865255883827153105225053543671862886599557342058861016807737641113472075105402880123335931598790104523181117113976175552391327397951772146074453975806098029292503443312677090517767605503921081966264624309532760122841635019602242193991577775903265730258282913761787665719871271167718032070723975944166911464588071802168844432827420103616939442540878399593856987070114590129105816568057288591823810273131782361986086609145447103819605359376546533662898552865432084485004937198480008192107383220446836683023961541058130457542952069547445386477344217504896383071622538458243230210021240636623335350082364968964285723267928927272605735249505467424358755751310487321138272468469936201818960268648358414719152866074525038969620443225299628649575462717940370229491058185643549313586980275318573041678378817600532907398877379124616240758726105859961943403543470437980284459814670690873829218630969177939099348014450267834839370734141105648260172252298034739372219211784104136045447783500873089013075500264814877846884584768027162520887791368224877909309560862929665958978293024302360838852694744278537671834313048295306217647089467043713908550129655103908866138552426757621090335134646416499996059747137892783757843938788428664030741224729307599269378910275672415869938073501732017022850996012221014258905910369131167599759865703916059573605920283036551199227020112251897229666034293857349043332046761293050905864739342430883992361535020087054197391659616444015778111808824686101312711020838750279851298112259290783217908487521465516134206454791673361824436121934566555971825270830558301619339552616650027401584067304187262558309948921457671431245223271534161798369943002341740723180779378394254809851917210733216378682749982388559232566859105696494088587401413744247532835222391382412007124876129106869500346635920662893709839688866201768325202839055234593912080240793336298388976386618416133196788465315957566800616866419071370888996476942729593509230068239574694931469418102360475405071808834747317499695644385522405588500188343440231192330095596752996278944689406937087583633809343246452752341571841969651841246685958439981921071398978262166594254054214212994926884033524202929633996630630442143519055268727797463343158116100938099186324219231476455723705261817203578026806646759288073464926345157653840735134067548285138344961966182643523414617753215464261006102896603191204945377104802982682016100709411030386899492021723447080353675476909322521347945337090149214072730678646231000931603624380724451133760542993461383607870137449552278184070485100159909440890568998505419013159803390964742412352912561156418170412872860702162255391777473599328319909686090654684093728677555120615446270320420682564623953328854911083888374993773490259013726348143104206155942947027727709824525865748429421521397021955811897069164128533879994434208625820510971727332846147602222205353188396213669003224583225999605847403679127907409125753453761827935285291357748470830769100075112370276328726783242208283980965160272963201980559000944854393663797724701259034991050307348038835195207645893035461721393144395691345661461507355520751996404907631551496211270788993732582641328345928132013034029212913023214255190410306242863724633745360864980267777631558152050482919749382813544861244372435871464048074355000833121380909688551961586478756987415167009268533182894808737715818565929506201278526468300941307328810949823546679456726416052750706004812504355989294033709608553804191546447049777963297050021433377239812847803412112802879367261027167736457194362084544192776139478738331871387060519374777364442126561778720137738270365356588193762559361902825918243404991729449118421290151344890914941145862294884136328017259128584530933795297613974688625181684969109510154952700128619897593964455389054724779912516231499771508446018760869345118767496319602737162318033226224455835383346106592010748518034270472227263137356816696176256392672236758849611916442046756030760158658430996874502997161533963814131341661874403588356936999156329242515578634408925146877282908266899241425746424024794157633145787753306199467181627179366750273527455465951367597719985630923472745010498460357716916425842109481879273566061248921820698979530814612522244159168839105213788014013558960498828939103660691935926281737690021511695552691577786618651712968391108102703332607992942427333384350180045249961573346161664257084669353818460201470270304096946890679510078485826740549008563843410305549206270656919928051786483467549139062522086981357784827851062727921813443036153535251300509122625388958050047590295730287313298499114206700711603843241075883295216809161255432173827432656372394495100469702032942064734724541706689934460427254948394295549616196683386413668217456347461039785176742745094675487317282274865262420688248048779450627513481029155391960076303742160317077491245418984388733367301495623403806120555750190796639728833460395174583372915914863980644530457220054897485804890424862733911254173815469386704114236430803290240336889133237132875923570534481312778860207210743469565751912959598795503455800208222840973064515314960860262880608334777812759857467351080998734546792827602015732790028557921418217494927777304644495909302442920201184194600363528263477450874289755759430283730552717404399413162084387045066024842080600669501413802194957983742000038340799415256764617935159619969538523477615746748480286983165573957830366681167031326994668546232680989069732865836352765761974685365634747162462316868910758628137893255556515752212252674313136325174766441918967644728981761739946290151993889607089441379935537492222378385501546302858012521763614155116977113408643178037163738770879671752998097827545393828274227151857400303575750768508573127530082346993557843341746756576521227957179058103803264877500714395943576134061247459998207853574544869975981167896433492815004703976213073768828742035700877553865355137395408943940602634323170535882922623408325116111872246642731768719550759715643814222482822499159439456987381745984951463702462740130496350038463741843087169827715201891156760246987437783624262467550030833513888307238535187683356616574308518456363686554476206888837470154536112900459958476106420770468290211744826373832246463813361990761585946837542048278345759637053117596579008946732314422723755315789326554791583061815401673934874517764766655190762784363733347450014961276629208246318139814183071995129890074687043414836513758881319329910692494429991330227396795234350331780767583544861501112426622811291031585883853267846597090650270044843795906634400161868412089440538079854123138448196254586033184609825814585419327217865944058372754604415367568758810924316623640796812404435802949550098654188726786123430193568436662997631440038628674174485605410404748969792135055777541089257317913871311087923671461518595209545712542944077148770065002434182309034728724941818524815669408658221470918224010783728719015240661220919076819984196820970476603660180037610540220312613906125101828336128758663307665670637636348686707454217295150807428543230075446278822427080187207918697114165533215737614407927658164295791764630557033158534974393549450781628316163745554453460767153878319955961362440643163467485956683885164361046423785218257346866758085822131253853552867186932490803871931756006590686161013626909812561628385416391847094723928069428214075897553476961091529553132342966075581078215523382370956801279270959897099626283103357069243353890947084383356150222030737556145686515658338080527379666416452700819173847377170301142348763716804523054871488661714656763669003124042760612894322882633650641102142187591815094687529776812772356383151116373238592587566539151989905682073843173200542856652030147191569731755818672466063144266820797582236995340747142601685606033578096707738556277904441774450150737435859432312764659406726089492799897454465647614371109430678698475598764845616029418594717140675191703684938670856883523497747164072575254135633310637195430543567423370718309800031480726921742067786562358266873713444791904291380694688967155636382941339414617408865220724593079232658738691053384714994635673351006199615529233596296088199014671703265119925471368249276014398436316278004493788982823407201315697647853719539325772673426323068247232047490458492631415696506384223751887296186653565544494928993332313175494067011418120992291200925655348565586579593895395542058497091545241958758599774875265378051858285579656924290973590478865530246836686722633844457425585306862512925749631323890111297343559671145751057873061972990929942505512662911529321167685098695963075611019228091411367618726231258453581489176437294266923078603751552440130781714822415799455827936761338633115321834801953829976426751001365195567621053120370916885267324226021963061128690566047182751118388068179149135058015347092632178295321895772660710896489834130648183977837405495288654199886391265264072219461094974952780115426088611675933794927073736140057574659537278586941974952274820775303838004736841262023620971847587184949940556835979788985586296229562501661053615962254971810157028708455643738384978897252234118436635780311736451920168973436905521198738722555429945280051591374682297904708319445137634555671560818038081470259179290383342678262276957903776408187151943183346176766377154504723948590915577386662705957935506233479594916759103747754073516095962979375179120960606356252117279102336695797048372938954235371573097387009597340292277747851513781874180369475059709817073651271540276135881992117769931706359515358240945187092588595982090771801906534303889720489831021365962156669126160194965944954886750002109395192109592315674460551320923952464775154683647857729496918055055941644796720546136346483015072702575313843601889960482920250070865856581306159180596853111377884967737475762812924444304095944372957710924792863663419486663539696380385391470898561680478138386567446823478409469277072529673567542548225283559975683460178410462965586319282301384132782455406497328063242113496751264615719475449630184054267601526034473582100246979481867607957579243992887024585320178891416887469281909919873797012521711258659897005266577162206327627431655507398484424363663861340717367494942390349291506892644690410748167598077166311511483428939500679787596876458828282949185737785239986036059130259755289884864875113945643669256082997527806232391244982287018706230020110046371172527581405287550507902516670117107057963444694003144359141521824007915049784222206683382357148256809206360822235746981036994275437797506625536109303231325141522892152708849929591723245431758122468191987916548306384031380936861213016472450913568596672469182885485487818380221877359327778770552214938056409385134823062824494523276924017191255007255334700758002081517198643158121901094095835021301615910305899492728352409880141173191198771571606531187337204003177926884166205096896872201687759306775672994652949758930094040174716820285210691156233922046196415195525891867636342786810710452065725858006593027679840421533652251518476926208244935972264173411834015501827876689295042023847236816227943864014247499246194199991393040514551258820946677588088225238267629600756213296319352311144353470026052011875861912920713830904231616652748241849961689795645281959338178617987770860763578967056404688505679475649776626423641832734937751836389361497134406591137804099735801232590498044931038066841324804697424890122491330007909597297236788817020872862510635534278559204829745721990971046497245166434859696331027447180204364641100054732471150087977618901291027845835905368771229560134922363865402270941684478255864413156627651009898858287864837730724288450080719599889981096183491221310459532023681242105338695401162473683465805375220634977465292169371665222335855944557289239885539612643623497305400842878328886457646793225714179718340104216256960411424514827659039610480489038737755333010991107064557444163670520874889611892935878230762357573449539134580726085417649568983801236097446954399903967886216477310789001263528096532267597258617769088767890367680240683137918257723453001069146550742128271662587570555873257241630564954078387078879480005251426493747852621135306211802355653017065985175368391452110362226199449835357141839246715827091953878134580775398172550371598673205428386696615519716511460137249367003720744900057520851960447632122811928546013643467350161930086024255992164916658853825321754876413518648270026371502551491664803486587720422038140798028323538360623009691148991385970924732865712783921663830385962127169070015969686236671508359169811868585586224053855755705506697174814751248784489434602035036287252991077275381554274104422925709313168778350225872020347964532113467561632931571131879159327233003636868588865316394199105619125980014626264296537941095728779414939217619954947862758142166322601927550165797149471691228088166809936603415252549945008451308758795018694755505002941780727315915859444516119000142006369807072233919677253088457179946225380168184327555944960114396616312300412098706197995710026965662693815107354923870981032042173568615491703072798548634637667846773058971588193581616666180206305548488128750596969036221852038337659489681280893996126946113918167280639406513416739301630972404788763891730821914958211796812447306220755544772738891000887649038627845625535482896320758713867587644385492873777218804194977165596377821336296006719932429127472201124995323333806259041178343033159545799296687982191302023257746710623399144471571959189953211117086966973444101254413945098015536487226311035289882761056015397060847408220499918915696345187804876676929388046192238981758287112435787012465973761386943782313311733419649480087057570068625482437250839803078062561388318691606906526938577308616433551745303769298738584331537994135762500247834876652405392873888744883421302365341268686976015877143989939929533105721191267728978242711560517952104270608049113954326120951608787973916504875675643745360278509105466497466898342722119991812259550360583856342614317897815579000427903628167679739900485899793665139954455539968514527680105693751049291719675735573058453362258011745212577462322023701165914695290403428921494848831913857270318524047656436863245344777246601531795629996333209154301960022381786211372014386949719023949818683681796488482551876970663005964894819532291085979093819090871317330204812618054992729442592185374533109603175745581872238255903369374937190976588337461708841344955411248338326563002591383734251665928968223353527108051486968724008141124045990084897431139405744402954538127279363161267603629481307348926576901283850262499595474733106153065995764793769888810781407168423171248166980792188484764037520553903653369399851846666010721681899570425569966191150594623812005744849009092053179076348271104461142477774324144364976759448265245853225656725170556058676335968876931918888720483153623425629303146927206873265457854276700628212653474912255410780371676189493187491835136493813204464785225041040741443187990898625013443413261831281675149865329234765548806087103381741947265796614616686788797661960080425109926565486720101904570300767017452657574753906979202597438062992957873632741975382230720872903920737472109025259014172781577229828751383468142679522547111609736723953465344371869653807706838299005240553751273586142367316524475902351059900690614705637176886511709513552342793390120870062414328316790170261341771208390701661123443816303705249375818696569742671173710490913031210983626265724901498601637266222069914938402054243988340516461268059012032189595164680882464458677278137669296724730586940717081800105598735628875108711629000501669167903877200102545330673150147354798916544420270035124346021751449427677248823664295482860929289592605027996712192604043237502275646004092690559078607567690106445720174974323231470840229981120659693780547415811402636048337132661514609050921607202400132885762259574364284011376254463173494395102974715499237805678221336798643176739051762619655544850507223472464255523792231905905880957866864461093459841344368332299048189616379246004804289098936240391280748591183129547366671333512589365100572971845427734297431085296956297517600019119740471752830069547955796856677359120247015840676687187919541606777534163174812745600011816436062260472031815758779768366067282003929908570363070149829406483499700542657480588251780148099588181025934129629967387289381174553060850958179381585651338646451906335563378020276848681067284941872050580854644058613363200543978138072107232547758009633242383230214259023353369069300522582248485095962520517447504554813106514715997582084088268509222351971654636659088588511887677767760953242989637376700761502634474343495785201280542423690311075099878343748122947660091410684233557777684918360612239776293904850488925060375870489923026441648536647361093914941203755652567973577447611267349188520824639242429310370383447945906681530670389317155285415167732884336806327460584657161640426754306616792375232624373247681267585921924217171806301845111632059285865009484092425690296472895794356056588978553390552266250345136203020721769981953214269145832599438210668229045584055637420568901823490148663779960810702395762005225016815698664078181531008262563449487536446872357201919189803209035547321067130053276232475672262970986207937145972187506938154642870007710257353304090651931380213674575983144834970581023357187751368819452345212333165751081422706089281229122952309698428075603248221520025799069262447019210711615042808985515958609733362342465493264107423368357030783050797190441817040774783134156842029221564003814584051126615068988363664304141032180014583199021032985414863872511724182661573839492843476857945951418523061344789044880631171098437677116212100791508415752813985770955901973905453729781235392401021960881480336334899311401091571789309035662727283621666020318163925648903653966607069280612539800475928415150681595716185761493590356105425249820427263029334046503700663212947847426336205296808475653375321146656484964652870272806454430526462599913741626718782808812066998381314905850592810683438727292186229028480513014868306308713890933681773651974392811343905080743264618314147071066737757044514166669765228783321584942323707238698085011066347581849653237010658450021672473859516417585303949130210326254777989895655848988923238141368027246892609591009366504690492909268190110589861347638892961797533869758346529738596819719521790040843667366152830135929578183623166247113387951801895411347959296121584885985400443267667514849970842445656782394960379899580475671086991467331570555157151580763490415546149656587701857822250262276081982982919426352783479502889006754515388736525121994301982123592350699364550769211866453265349589950810475102904871919917176430215302985741999178376327181088781389729241043997274634977448546900308744190809424852644427240843216513251328535443022804679798487940362102822208325261409417040644282783704746635740319120933805342111905028781280270053492723579597844866991912695052095707558082999862233801282546261185063085919454118021726896423497664834726823774254463616455387818415043003058262525579142052145402999300582901252112215769104115573778333477848721182998979008669304565030912301740173908076271802994528237167451662730350530096655929581575306440387298797758380740953902991402781265358026072797913390316458689302602124446143973547386849759596510796418265819904800474614171199513963543297470700754219212526708598638435708617167431173386789401549692744737790790137072872432827189739167132160307020450887490416803510420272353660369113535332040956863109496420175571110223956737646923238248866734315620881078168574922705471739434243310497278498799277081761903998781902867413468559468656400247485962910738333803098120449793974262781201142526626188268690668268751248481122603838243187788539179352485567155983891526985267701594577896323824292130614154370527657564238397866370915216354109275822537275176261199102164116594527220317830603884501993080716734591134923791745341478454421016887559528243432960999680531805506830072491582757214285634619520195891415413772550838728054870348656470219954950458532839480440631201411316911568859476434219450992199331791360856389075237647233734564349425752304689658083465506774276325043695783503349308688396180050921249383696051033607966072406636612172838876190723633867251784645407401940328720962307029950249099041812267501681681330073637025028167837572275422682677827626275652314682325348706426214343620619097108349857701217075430362655160732228153503588943294543274882323381868221941489570387894572766992865805113552882790852306233871483155268036029618267004865134107740181104953090191498300348937550800409978069078731053277052847962495454698861478984643902128196917821438127969980166068561380503855276192173011077753057149449246816493480107443548638527413141157210282887361103181872496889043812290870064119029350789983511862409447381070703030943506152231720046193805277394365684189646681271676294611426541102080160963764398824038607746744847758026068723249934776081884130599819026020485367486871180691158548997820111031619627848081157084910690808731145962317116289025460754367396932165096776761506692384455863539772743218645596951882475805021910842505664155691037663462441458840512843761437446743184644181614443011579071891386890340346810712692536230525982203586592599532542114648008538577759626193306532465796927155032779954077065942025039185612223122241474440892285003036758066474136294818793719068931677339168043352255726279015352261889826303200021479675191677111318658347910350390393955507585576877038541878654567926764951037445050112439304087103937788635198079668556680244886655755146579345188832581198528972182454730012330970297178826765278309922273710595790213827200556317242785188989087339158767888149406979087436301912642346569985846492330685370638617185152021132664134129425434931689845185468527082472170266683980861345991507289670657503794726766775391982409996797383209733053518177416193981883913507728847254120443837389703912903068334349136354386560114452265219714394965102434683820396405680019503743371033404937746911170539597484742870063301157585881804871414154544857752607466687095331609787124053642236912238458199888446213584011546010834178841844018878124829556635752746127551942114588019313494689490140839303686324359932948991412150854041469517613808599890583449942140695892863069955212562842483883833702652737786760454215238023856217379828000120313150690393514592653646330995539932834613524125857689156683100293636071598965942877598324559834330188100269647603365029261744485647372225696054672144513340904468287176265506889732126602374057104514895638528601224285188314612738515298782217282585455107161725717995848710982442689676804807086755527246094176059299715483501524252704995763079583943532896254491772790851211480506406851290508054044091385449741555942492996138870863127690419633467308038855596082063120480358024761985044492067083528498335353699358185863767582863920942242050137447177618428007884665465115175300438391067813500811677845170024945375768754075769487762699566418182172667877492802938303812988228838556139224500946399118059122629446370330326131954755858120458100126823448587157702924359626593352086922563931964626504985191603130286256319741018450196269312968752541604804190836925158546218239117399503535834106539709623780601863694651689268140769453925069051297088302166016958441606028077718616425671615542160494084741051423846896886793328991865791479491445672554974370478296917758524332976496177387465410350596344438825139822259978813636432536510639041639961540411203628758527650412099237485103180247738695400160158904497101870260655078989822555605135231406707543937240706940985342131174811343154829486564209289360963315858364403898839402326713293674661748448877494087860736852308736024070042144450142618078781600310518299704262414654762815289104245341536810407670489933710916401488778530646403655521558092240962419647810702111842309367799256864096227645355519422122993586609682967169119954256246755763575553069256979409689262486400787380961808985340325133853302516370497184879405054592442883321518564054285799043217337342708766768051428271993173551349055766014553890110784852761216506114554416944944037208747752274563006114369565501052129350104284924936684326429751633607396193503308867561075345684494151656964194702839178311706415769649880330740988898733734870420821637542867982556041088003135894746654148294331854717469451786571390727153387105926580734587077546044370940664585970856198595364149068803601664670886720623596692132515977270399832225428912998207204339925865536875295023662029215279220298668670538224240385580944971738575704185514103551031934949653015296863513260119437677998189106057464470370499249993520413782687673818824915841112969916196862372045851314067492944254608263767868683889158385458918282974911224285613798579267386708412804450291464919904971018274659941684044694812748493105806130278289404916716455164701997750902746391718583157935922995617269730079160471935988766862712113053398009087034322624482699470425889390974178056108160361153749084371993642966591660623545434343266836124444001681495989474883581346388496262155027323660547651695899233277541709211087481965222198602877564667759985727353257673175897229767358018144842450900447879386814242157689112192389626098560275357445337362949170670523480369540977276937763500691218599180804336790325709692398666105502303920937163542915807408217942679953850291417295695911636046050169973973908608158829707610108355896579435385055163128161277314825499265414374164911036787017188647711996234158756960273296680238100517622175229686767187817445007632315982580682613226430024162788494689219943144853770720229876282855566835346990887728618049851947632044446111553783607659577731179121075809248891710702862996867006069030454939730930677833556963184968816971409737834267379591253979377748767337692007890989326222526428901139420190644743313956179601171132316086057879570300602974399760440840759104085775988280792897727628977860694719223351140669279141775684964725617366327890108314748637355873020471810479445182854552243731629524998085773179248447664669503029431416887942215005487722066075555153974587377929751470075391597646704652843201670984588084380277008117680537620507171951583116023996520739491493252779569459992041341563804879324695755477811861291281092154985039598089752221744037244824333853219514676004614402885857757824874582592909480300986348900649117073355615763824984043512436898607668133517329414812245216112829871917887341104811808414783735364416781344513754643843613200417011764432242286793355672781697281320787465011689933141540323820636884333178558373252826110049453476185002154948345154458631018464175487193558468102168081898855511210354866118964079913285177570344133914129087313749061498800257670011856478350012187383059303475093022403947097604025127638803223818230218242667676018744898971440304840943912721033795837753640283488556992175104448587613488979709194152616986797943995399039729879535667724863067752563080153892422738051425109548736905527047864042931029078790750368586395857982029805651938813405404647336145036360377418302795125303430766937120975737259615771133788985588426885864609399281648073618874947528586488757542755292362014239853262898931124340126535262622077670363113172045309540654312033557005648682483174992749247407776830236563963494837239533605087268328800549437707837758609029010792276708476901010236877455516629809421809289262545599082699527191434426569542600171054073209379787690341835004232302418461333071444259178661575409033268773389036200905549124335749649042710228726066806835745224218051096643336363338921824732344218592441794877710948189058302534111157834686333338870592606679073924723667422438684106633839452976447663265451798740071445183679553717323332263490135323001035746731673464872407332840445003457381290001795098094411550421642359519876618527436243947609643462251339340501973630886793149940661488855068196096390211357489544602509465358376848992490599548821008086039514394154330354710482488128412738456232696262270025069020727250862062477787787254281199377561679618546584258442548311197988696828424362765087687417255801078449585085399541929582548906075394047070344714110508599843171605661063522284099728914902238968634489080672089448981771653703524609378817898293383623536701098886583179234263379383776135492246755285437519857210327821203799798235652247203683889120282743514132574729802385705144946153459835220679052516274191323520723517604163650846401446537631024805668136742766043775358025368269218840657880842956573144690274537212632665155286862662020937922743164782297348349027959076110770585608224376184089282706935703877018254989243260425607067121742979283788611776975262227343596323403958968934260422799522796684872648200727576911448743685620481933052521365083774379298911607272471535751361564522770680459377826449478885133415438866368056439292926420386979063848081251871910602773372088535751138332171876874744256085948367431328369237388596321381418399523031152783124713052961676701429114418424732203794864116473456211841847456222606013110326282527471773171342836776895240704854821917943896130288626706060034433347264852597044754720280790851518070521806263804027820700127973957810829297336800896419890816330410043600633590181831851497974877729177605154246198626029537523658840158950975153980527473546297212792290506660339574988668495640025998265388387529213523523857120868343210032403935061499804479215637876247837515029676035576661996716556718423844689181831684846696344075477873540748850371931708794905432958525368420607261870571034127401820073185609947856734401478305860797656216506915893872989803197551458353408365056934685454916448237258264615049786830637439791229699223013630202226092318465743999133307300138773651182638173529533416068875729989972998742536046180679001962011839671023879828571226102794415161352247217682566890445789021201948313353538596367281639944983526113197271185143715705794016405849438352797269851209771484113505050491537906763061664458836835869063503118155629144762793345903993089938007860378895247897639852529500925285047786680228623750032407068620210845894114521889955916763031000169092252739021500730478553347648414787033958574910057786268371535937683740006105898146505649670789279746717266776045186034119453142283756152739411095605008585010317505061477960736796226012052388031293196894664876746641506499825326987333078647429642683058653473355728392007562650891606008940780850265340211685618279870475610862593097277738709375433195524229720025030987977674365858976995032355328805051002055253775567167869138766000040412155534848735893756739335936830195332293318849806999953310924349547412258627052690278954320835382049163517935395372376287268389770827004647470361383317884033674000301118699745535876099327732886663775865600366665096332283226451245613415505759668173405447362546985095448325893073539543261476756096265287792926726254598676956418527909432580751200154587616979505129913432924553449852863836513164980096619825288317889766012172327128894677403944174929042939980813562661923472718668162364686127000685744488748551779752450216093691285581834798474765475631031397513891499670186467263661574934134827777682835680917040844957166615668171407489552111389308783402624589523257285835252465276493108400514531177415339656955334402439429527319020758174740723501339352771024485976387001685398292377978417678734561214764560219870314724484468501295283121612144005244378475192283884687253909750604864161757094991145185572721424610091524190576321512189016839475704404601701373042552099168109078334321312055207555528151049934496751457461124409717608467174898482642564694987067478397293865115699622132393653384068384991322572953102209267824831213530720458397446016421644650137892245294307670187498968285160313079347098220556089312769709719562264260276077654397683915566763660548223384205043208394201582233494052902277602754808005980147422616819742078193377751935721587311248613820409644415862258616934697867375073028386469583764998547528257990641033310059014885188353589055273171036194139831931413667741781205402898835031800934275727202208965374052531086911232101977085727768575160289663287677728247973347831065814847326140714966700915560316576480512592055178125864365476096179479797232089827762943268894295525912259653498543272243792213633880531068260199810646492543423842074549481578291825273179621069031291080568182265107520783077151023418777188457363380479606207688096853137661429182436144277153354722098662306659187215522452961766941587249753809639712594913548726428364235580405212751829592881645718184672198314407834910954682502296712006935915124677165185520669448256504067096112008724196406030833276832196586828142972967163079293416997585465335362492555127732079770756029453149145260488411668651111120372469631440586258054279747862334837786703169698160554280539993703491379707381285979938065575886073175133483891270780670947580097373392665336241058799616287371975213414189850244371568429818154977781973902670121076841816290571434343235338615642136178319045383982564774691639648654598805973996138913654056566050741788661104335803850763475308416231707481424658996542126286351433737207008524345269258904669325506026940087720193969525326032280987687648368542868889536077564951278119917839778524459460867900255351034356292227968604645091370766960041017410027147796224929294055264330496832651398000915736517625294543830990628326182696902211499616842886840127997569702573561917777622482957583381090425556384686454563861483653641311197303650347375208452250660092017032510020174631893218991480764649531669774929064390921567145155908897454069023983488282041978441100403351497621235718022961293833004238525727268429989183508789328272932899610484480360293278248184859211149855265548604670400260661802499173975901435399678889176454278164770585907270893667509315152375781682821942667956291672869500273504159114994249999503905661819288826360536091053741326074226355986517327205977596577647343076681417078724780574251784057569968573245829768631220502720775089845367093035672416697947307987619184679780954421871528399878108452958470549011394169277636248089121196001322192675435960636829980723568267052768564510340087904794170396207450053657679603922690495080063658570890795859499555772447404077832146547629771162929745781223721806073079082798685817922072936472259104058849647000870836811940471769170664597520801237890405952066540284646496399277727825963814880401971420786345083707429162499903120543332861800125812191231674051683906105214992500625853106849922629100284671504198934427061044649952837345715869813548697262333661159859183127799157638490311944634402274871342266012861333340462427674662768066385352893500712082699699572448303680248053303957962250352546203873451757512627844966704688993216820358572661408592595712421603140900094173638782066685591318820092798231720090381851820380581822509142560429583985646948784595577737479743257588175456195244604871463469114116617251724939552799708376722641865687134090079103577190865106200816551283204755847458626574635864451193664504978115784182499303103767127504349480508838006633802989462743447434610477375525841779105438089675651648774555793975141244714394142291871110132324075627541898204549684294945210409845991518038424176007076797781056711913114046577932157444026055543551321667623345799478769948651175044955170997797002758776410270808461394411180815908326451540852439856056942392763254237962571811106726435884959827191347817293488172307534743344600511742629884923612391357764665316497163649803501318354264379181758661162999133346283064505393359860289137429108619438690815079364391583327034723503186737941084042241133403778577610275190842961859088339589879087681369106991593146791678531897371552050772972128736423197622945422455171858542675058932181181333353876031652920865222976450705500307530779836660755452787567691196230288765695818206299689499811120444458872372563731542396767041393142634395444116285526275616761679844412770189096369323535684134051883940913893766375571924060567918429212335598468833009660155077394233277115436724209180186625132810225898698679488442152391860266118916274498272242053499469364052832082544087979875647481649814876229443257563341203467820579569228856005099441202786192474976752503848443249793074052307621783325608156039835048880227372592244266462537463264079132445262981344108330896794538632959108577322903104991001629184509164294247281404864495723241398834594922583180221238927317374024094711024197014225400728160976983966249426892385431694697198140145429866136841347070290539681115265930802414366206332568490015892815177890809228744115381610682564554682136696790810304562131455053371759339350608355877648717127660583793409468040858116195045517245614552798435339442760423167602789987788411911648113030457024860909690874024395066752401848591836360230166797916930304198486783201909427961002290390465827828933901182850643031516601224346071804161767669437276502913686778325061024849265313069469942548548175917691308158631979693549835098396975437915293448216225293455375685298417008390296021152088313926318226202730787030522721192088529714062925470514525326031005587741108606085001699082342668959093013847294178386000221827035160797216500728139377346807301027499174532690435178064013907172528605953673609001884280727252812947148275842277367952002434070738902917486854773845064645728298008156463699203681264243539767363544377065980516311218850898473055065865346272580002689611166385520327507988335374400124185841911104620328654784912035469751671987877494232434449343579937389729994659449206325023647975842653525653522147510137213176534798736686541974193870761660577010205744968136066541757514607864878404195463366343896895544346100363628603684810443718102632985068470220871867131648763268657920977844222495059443549329873494502170954389157622114042910978597612635875510952986364294614211695800234928982954749776098235078357647662376807504116048978372251287320833323595397154938274440934468884910252967238719293849060581087418712802453534211720644650998671234582055327871970183171151561451533784454198786300150838625456062492163286351328790332398290865804401230636995256502013564480429442389965162529429984809525871845652296436317853858257190663058732735356470840003402318468152145838537488842825739045272918616186196916638193199910293843552523591969496193510555442906777034720954898874460275331823830584697920060674284292291657635450922698310213520428107935905218540568441263468836014157954983641837453335959657964859152450483140216465492283094733453279526467145075171640606516029965906611337690196040325522289054050410782088833878278843875028436127209434907954897585274066153822719617847693120947206379788996338144380188216824313885977945282973548844503050748378765579500374530524491839933571075118569895955138048826911046392572275828018583307102760656121903128283954055122109281126497716220032603081696460626558859184969728650502849797789821583970538101943649678781698565745047803976462986568531287346069571360790397777834298326671085098524206302842122177625982135051098727110808707477556499740062215863451336004106563877213755036477344605561770604903095113302067364776443223900325342661687200972077231294866119027003708337812274241178302815980379253997290605638731927192281274301701801037861293027946052072574050015623597413501696590515797264958084140454921794071311068688368646561508315314948278474619589761882199540708673512185872598681133708370946290397007077508395161501043387380639828548382745620318695439847965190887776590241001909660115332447912127907989636830410793246730921879370707877584763886298610464513651532301128229145904803853597616187649648963216691087961352170120541660288104637539117661764396606733112313211735226874475729565670117786161178329873621346909319154645651177441830796222299874752829003901015308890662472867394297769394696753449150848270533196423136679371371231739833605165329054730982135439945952586080867719197441194599030195670149278208145648683163296228035550665845728364486873340826558523312398418786283631100638792408481094405999824756123366036496745311569988018015808450228835292587375581215415080605319038425691237914122970404623219971751629242316513271391320598142491460354017598812064180166472386927336187832028833700570820349629277351573173244597102985066943647601400825482585115460936316033174810473852809116346448720202071211820964957820245003281071743858811682781950120113850735766796419612622177507265893948182926322350925230522998830951718346342366920195946144429824904372015080192279785546411494753364684752667244577393902547517439583236246042758005767247213646311917453831518764975291957583180546370367170090422707545363909275697566297100713027987446205512762162396187911837119265468506564195889239148364031778114369980990300984003579657940343579024244896373669442812713013904195987364458379711062624909048393603011022428705589914577124095983294851606917299429626113377745538724346722026341456437032153198274542106859435771029995653676305496894788551869227205331123360103303827730075923980511627006208164217250657271380080160153306809082058222068788798291123641965290193183535279361536507664526201553775940400577950317218690403616284166299869799945701773247787780181958513963252827006901587619389602062689541880447105867154539534655484686535212368509626782827235440962098828794519828734557483717054776558911251329498832394516997639971682087577659758674676987377769509532172722794919815215803781641053513505951841242002290782600090001671593241843372745088946926817818044649672889538275455507708372957658945594146866291984554829164993427854069836437052360419379457460809082483186108721514102896613490150482659061622730119940475858727405085436640290833675974540726620460116779086578940003383260307450831424218755917776678432498827405102372723993643432227306252156210815630391468946640213101429482362794630545996297321160335719881054234641781903584839241083684355740995979863246800298018407085573792982293654303709221455446678275609797735006447753028106433728551555988149722174368368125349278309077441249583430092670401244790742688482740275946356590232070369804314221324347622868612229305218730787639404364248374632789509693077586342053138263518751502275074432875328995287640656528176093319902890963642515570182622230800518344249065810542060477353548117405105235321838267235600513656754209726547585757465788078807492646692053477186929566055077738464125060115987250114761916304400216341321639233367280156731237610894915242704442672051032672466249161947421061768070387711115959932258170272968467423898132871906637992122545914149418783732905130315177286595406180442081990979553341395135120376958753140572542003151388126283845503712159083644834827594445136624369399055984461933870422857339109800829085466456432067047107682652543892300675541050919990534961756785990587537007288246216295724943270849748154841741887486106632693633203418085345399917288681527375073985029460877466262303780438458519477355311975537556828982068850539898155808708440016654087883586360734646939455472789727620221510189904236643235295549085678029361290633002261431399996689653920955352846126365725319795781440356944645210677260775100229151400983741910835315841853923165830829302256095356735484012404417346944759896762468883043203457675643382455080678931910205239327445798299542200474657597318364389122482032342993487202926692222390536670764112557460546950878624427410353677227536155002397526703377514636176625142742070923270023136931685363491232754246882562552647296398407269648355518112844733606573209335427837667814097009502581238848007408855650095719204039032069339719270715298684339447110016420945921104357777930419133340333633876842759306432112327025255067401568587130927880762792511910122410044234522740723887601866429144438683959787412081328480995676568133997715218490768848259154907140456963376650608646024890181054298499714916370874436078380240105958311337127379232654772235000151355617005718395434561965611501197226787305506257787846140784938234472486866579329619714053205055685919807631560231562075800294983610616974913088838038546639880710892342368495593756489661498443485090946751206357269245338789345308384687820004190719096586516484419608024281046603247709734966115714398981466534196312381139899266544031955455414657383368418703198444752499321188998696057915077457111483551470387897419106772353846677048373777658722456541123535727314842930613059795145669006201328100543791543054804194322516249630139540713674999087761600037340371767911944678071883262609667745347810033855078827074572486546026705729580840665912442621089608306814210714810110017673938217793956862619670962004267375859540501405353120216110932502731360648806805086610160454758549774083600939802737529089989353757900244150799541660287333509013833399405218858331097189109150633129388216723710616778385451413677809131014924016296738952731470016799315538578574043797875900885223866068099660570534884021104675842880640328531339272089922191828114137234800037437359329435209782129297700460643032608748670918281183549913302108781756502546859568197681580208304547387490036060697973487117785293556301146505489661263367117576386023651261673177746299227947276101528516754322211728039833618877086338032544844220792291129556472682795437171652339385472314223836881915862436793671142712220860168887594715298764094630846609612122768927482433662590740698675979537696405511490267580750335476001786236662988100800877712842825477716969373930870358113113629802280597719777969942443601812744211270134472512644401775689855752433214898684800871406177138075170446785660443984895765434148127852231288214063327271382789449442147828527442376811571809521429210544533197212745095510891453406184564378510594516833942712131332822183934703398154603858717246202477044556483333041414633518511895520685060219508874534031809099220419376965598128723252419568958937395074209258454809145615580749281153478486576926284502543419336615016282814270549877827015968969143211849505878740779888657756807398968235478224413418038517220803147920964248336158471536122932764290625568506663373986477967347615120426911248540164680156066042790095602800950577442439947548720228036976295177684584350927865208012711047512312629071951588191893825962937346219894548962010388778997353512336822830224977574703790648665433363209855554356894487697725589554939732408918707404452536029152024442726015712101503292453452232751489039351454946266453157222662160592329305824289200059126751206468319560398102336184506470584303526500201980507848130913731920938829558022086070202233945228455665309187505246187985533304044494194709900198400301740852180213375512265618823061561323285856740161135260512051201073769472377405022568404599616632544915971972562752898724254405304483685692462446182101846947265905611973186160873554318834797845249481161436854128237816049031154427190962667316818243563202418255136233704133540477986256940147204425444585832951864293609106191408480954433945359459316329410949730632093465060820542643272942751589350785982633349806258374570575396193778938166703837513099129128385030231338392222187312474488262900433893347569937549165697080741014026408487542517700309190581231303092153255472791362931337458178200586413809319480255569976382856971825598213703836498664592180277174832772355833963155230428543011219978706349133225887856517631467239215229569183221396782047865950322830949958382770411034875715139221412985965203790990766562458922297040230308958158374140168143206108262160035843384710967621137708792608099082200029488929752520484822108922449009509714393267429486501575773505549243891943102549951149916446169585748971452340113224500698997004822720765048386522033130155632117438359165490126964063288706510695730538425639809099550392121805680516884743800810011421757917079788458966821361319583173609976039801474007907089918009788617202443593554418969382958987447778308571468235952696710883091176717819759500116703955763245575734688379200794462519019475999391052138763270641738622673710048375268478292402637053622017555077471848128016246914153220423938961541092783912421233247359719563723752278084161015004638116199840324540301596279202640315512354688941858804946353677087132472682004912666272876779557619204269891280087701501990991522341164650528421992756186320179835672684312772696432380083814031072289729583145908651269839614989332108550477128764895661989039542386303905176859769793941373704533819798834647140941140108655559011299702599804837245235708167963122323056385026430911510036213618642795423437555728941640918168427302725239683251643948759800692473605287694796548054079615855952148798525389743001837690064036222346614270597827791437851126947070537566320452004937124411833250767746190146959301182071435900773079757376119898964691103481762656385711933289102560699719989415660820292415267845925328857214949944668341959191177217668578171728969227860197487874054181786622909473315294197917060346401409779611495973854380839339970650057649770260490764110807531207219015337651806763326620425716250696960715993963639406077553969079576148156274917254919930681916304002992851493380242458561031713613404509689019972253429752638415608045820629790481366053852203201176005794601499668947100906815158905979904391004006421700222982515649593305086399820051086891762479664324368751875458517899769582899758967163043582825836059086172567468909004174449437174474646030196741589573735125036535296632194406080606336588849436108212884960875255148443354806839020705640398172905562033748304440364784764496002446452345352576440318786439091526490978586404029425133858857946840150038961315210152006603653666284626092272145007646361219369742309478687015434951891414663161714461981568671000101189457106680126166419599067679505790984901892295291019341794683530313974128696082838251828728498921223186040870782850500342260503553232064258668957123420534056875239941622616291705192597387298879692076590674503796142354952285477343704953610289844019034645414609087986333341959815039153343808321161289731755027985166101075250616688902333628951628975980212290401058883464627652972769458822796167280054246500770545092229650247799916739893415845387368479226556166775654636068440716275291895584144818004028361056962553864006591963302810256248362147767672140134589651061688959045297267786046227043160131477501144511833266902277198706624380802723150843347219908152726640327668243031842618674973701768157678361790477152365140907802709755750833522582710830332015001091882761648792564944960643744148230458043205018645288428319778595623270105209141115382976462573095625757993535540938361743913397606572291179085519088901467205682972732374301310970600259319045590650246791474159759324817551788489302330153460022596437017858954073577624755244268103720063110919505171668055569791156482655232738475386782271744715794659952751412958235922360551714403495878366649018526708657699621018776701577025042354507263155984567699296656743220157868798710405671137775693473413546480907189314628660997645142355560137548579371621682202833965573221460662173991454376703475729499557169919222374834719945535739618889161894023213439608883185858679625632882892003510887005210607723437244776307356112109510060501316833455110305168429949927178788572216412911802701418071090895663806514673204880879686844185066721826473707392139502534815132498911144031544696349626707635938661299663709630222373400950015321779146880928963961728618421249216548690769636176920139009243981488570521731645739475015793098591975694905412739714101548626820733433526877230068853129643956310285169740817608194740380178647414228135949582846243043453630523282867216033713276430099021019338142380045135329541629544508398908832306252653498907986622677078474817805155822553943999106399720664299549868856314655143046723395090553302579001699528453852563455979206360472995279886814472566321627283210237043329194906510837936374883948710914435250919943270410612824203437292235443483342242986499256044470590011692639107333199447579727332590589581618742167368116207871607534023652770595191558890267640075418659250476486691517951436005531949901221820351578646292837108362794467313690415776323965168668324729603090711847195008881282278095457195176193998226946651210017156415017147815713119415711602377820505392240857004158387647474257536830551012423678381329638118846607072871242363526769027477362768158357194605924528583497032121694558044063911411582362713294913399820985974958800313371997421816178393338654648877142174610492168505030096634116603824929819406723384513284946508506297487880373776954117968748971102600297731668935662210496031917940212963881255728454820909363939813790050786061396977956113777686349022811486002693466953191354201800973188819715188786179857997476467701039414723248742283553002740829552979847278084662727452930729280879900898455173236592909166171163284379309087293697907020438581368295653046485404677811446222527042957268204759136282214847225073735329530491621350888959007188948863807675940018942397808491565866278716728994609339889282637154287530943098086075828317129012528356131992686711646194624173472052225783436485218416643503836793492886204229714523564262556721397215711524390096577279164727895286097205063107651296831866649496946626518705660208922545682981989760039947309462370927948422039356227611433789465443143400096706435284417178559111114999155003974714470794469796974698412833300625158130456339459236437607931535740045300857969152585220708444183031836783783539528951256724195411491194794010613216425117301056504423221730903231569436656033699316476277640434208698729744957279729733952226282797124350779557714157717383972725530159091940954432109153837334536410961230748266283961415827274413001138346997169796268983863082799718046837738957364399885550994967869799880324746126529419979623471658008413789162845400962365067414179749418005798135197938320620642831097807247739313362554611488768105398477809874697709358660008821648220020388124639453219966039059740325206451529013997953913299017098165203786009752676730198160792699263982627855977995688983682901612929166006442459466599730850026284660588381554776210197518471375227265906152025515969914816381049290020854600273287676879938668925413557354237116128016647887485272724175046544571715292470913095583686066984363919149963935039199097065023486965133652131053758075405587142170557254416500237912131959337387382855320132243090636955890258365117060161587953195100944683611966795009517861263499520706384829362315690102700690703601010323851924853229406033781564546502123394340083708550227101916626735531563236746459266391949264441875167170265453168363202952792249485716510079419096442634394351818885466927606002925966156509817227508865484006248594458330897754640197183642650771860445708453651630680371585114301565558996025406119632621328904408089490652749037322166389027969558104173917678219778829583502815221326175750010761941965135526374612055760787941468417614091660865426726416635869817449045457724667841854442900783705494881009416361125392926756349327113596352909629420471687663374607878452764239623315192757061478354996451292365397576363548671186834081844449000040350956492701547352744904447187205421635869395536016887903727505364636333859933698323015755350885612575816987198109805947053146539617123714557366108057984948742622854630699012245156949012426736574444059998983559122388555733034585751246328818174647308119398116416362928104607263354376676246841616451046608741527794608519558136861667877874959636007089740658796133628426570730837328431394329785811799855003747178616214809656617803040277054635380389980947638407480790560422642085710130751425771210885857471948692737083813859178153909735123451969697215058301622409486057424377574399632952626962848191736764659221513921488656467342914330543222647841577366129638084721286636618087527300878503933020571310676610756557741312568614572300514550643739491695823491401035812353961998201614869464089888607593147728592115517016073099805840880185252903507039182312957752080946107829267851719324432094133315107831796614652986741183569281576181397464383204080933803893297626630942484955132493241963468293483317913683639088433930472044017897093935669453827185760319048680514903525659897007910496430799006362344971564496550395938629466681508833469311118721194269080136299610833666934545718967285873920970539355994033315081979666978870895711837748568709876212453872196481118866704364411319878614770380967985644793721449032966620926553958349974552813194589703838586368707236803945519882939699513211920885812894766939684745956677979534313475495453741323840323331791793863397709951219929245815585039791851467005740225649035383966153659156672020470631162491486908192980006326883273808734932557547165484780144311473308870094126098663184370264925858955233328499124305730275141450093095559611522062745710372201820241928261985494299040052259607137264302724688785936322520943325095523041480697729141308114713901786734590064849632957397440378231743890062532942762664894839775111847463926595727545619186434504956422671808929245226501643672004941073846045696281290185863224460235672552018826466716516227963651081427568713477442473345441351171060776025360109320835947008799555096944714561808686125858520734464388085523096757256421181669301965534354051236431005734857190787603575864781045948306238380007029027017650957925769371866381273186986516131055705193885917647506144459140029657495601937322058483669483667597704401411056492664646067073150842299506363674863156354156103169165910551229845997046882199542312597923291197262748426753777823036090313696514431104277591317497362440279522686319304050762713675730007689910190124025093036558213138083640561337430837518444682078768442973252935687996730010470569945523822109644887534084177278221544480914124278284776274331757409536643500530254976253356238421388353322007750692351313467281789517172014603692720773600482882285694106632127776592886715217270676928048022605682677115291677502367095837332061613243451691014968200358129591777860387546139618667395409886217645606100829490436687996723600417311728995318892575678210045922024663834361215932915637512556690471004074782060254115357722118216088107244900641711679152708341565845641318525651741188507839841165646353776701994652709666532770108178147748189121154971748830801688267037521888409452962491154574410803761765161142118288431346685075716252975340113127218496979815748591427029189029874634639945977909572388771371950477564367416818810229045198557958662274547246991815122077218542153046296864889435461484663990854519770348953517611764063887915923955926604645185248114049773656140655206935694104610232666889219786256073724401681824628834891392490566261588910807858334391953100713836017247174593331945732939535133016917087592235316680634588212530249925058136601685035286855349298472175033025860091999931920040933242613676205650243173268544691829120553672748395062303912883985877675218137168342596531292861607301088089564307343005058934910512604591439805274729980571890066205258508474309906334493556281453143669285857609223108421434833204978665766279716580705010471981882488165000722901999676984951230143255698291917932532385369826793978693774565395873639428693320047032823676769075469293255082632242408853730115327895103507203602959996828019628425307232186441392425075003077349747723119581964976243312958775879509482746061517271926724840124854310497238563559725635815490552210260538003103828390482528442672874049150855587911670917621562228194423161321209471702433154890864153826626124567116720773121476920997665095749183881670619684002774425366838531428789005131857600734887619659842509604968606579436964371767439096264570416589349323052003589404954352762416775765832929022687421577180573104859621559776937765099000113754781377645860991570400647281394447086456806042228187424711071185677795172377553911244908975371309484812391857643204776498579893695760862501399516822534532726586501122092756331346200918512165693714068674228597581253410379378352950627383471932196561104347015372195247098181357378798782823899320715551390320277054492197032576746030517050179263092042982472706028141045346716562515955097045532226580833151055248086157861695475183123498480422393494071577721344645667436609405681394842592824686664514778758835425672901384777976696743600348763173892829678072096859980474078734479761693434037392108321971558200183925350239537079940880346387137803028991068085267976095154753912828309499689885281605291382572987653995100352422576800772904427583652060048199224760681082801179326933440054067988171004532170030474837810602583873636487124923118308401977707333434583414096886678171538259077547107606106080357815842578304621012063583845856601335963215401078858653742088498430584610348631277733490836886518084362136861036177039203907724129255196727455532950124870154725705305799113004876454295461517873106686309914578151061458162008108379894608301317372494558210063636081546826550707430591910524258728852821869033491369328700470628478015368642210589916898418476142190468513279436328665005121178333577769887998051516672264708909284272350571517951990043760549073327654638861460365801027115113966069593433107159715511880751434440368681199308741934104128439148830450489544336330865668924495622477934965959666575284496969089662266026855504245816344065166705778765665772385654278864858125986415558359127138953524381277620065287107477395140471394912953880770406337354156357992434549108097243080303465118863286877338018550410356922836219966339949155027103632998975932735410408002167064513172959901417370752885622513723519465628625856436889105519690730229671502010009301479239540105589907914433904271196673004936491931102697551662755801988852684091644781656261224667505826501475680633788618207657289422822171204276123764502403222588659105607310528357477089780576978080445650322014022710802000834868210642657013562084262238910060609238119345326593965718401965313524430979452730002798334863808543842518201925819620927319339115470987358827799897264623506842234063417201693539580686805690099885980564204677623393999610276434667078107989323737836745845221496855109688362282632985561486602041639930007733640729176532083354933695308545682426494299820897913134526936675815372701401865526844064322440199544579469698291638348434222787921972657667069393386154343050128437019409992716606430685122478876515780558144623243858672064510241511718440544923319836954655457842653818038363619166520664371247016054859616643281532046142520625927253789344153515124693722774074734853868099874218377428921772998626266930989232136456085504256766807225486483881584247042054134312443939881691634837764827913974756132178523563978257879379134244711375374191252911388127372147085088731483800676648499292092609027848587725211301889347847972664814002063326828327249710559704632739786178148174891165197602186286164120826945138163906695630009420542410008319063549515910533347542859935622739087717823331193238559871531239275780899182342949413380004271691823930260165094301751969772329757382058759388670050892324311666316914755758377322319876904363707648914940992164062636425247401061234966102717226200926176817909286094997065030145007796269868164212293126828094259421420561351641418368279854002481220083877424964598538981781640318495286006647830958899180430495372988799326963674906331011666032590041614077361818777387655327791197226508632604853721569445220445972976698044121057615352073470753258566330720856413809220969308065548392508232952946156846013704053578247040058644690407383654101205245076035618380550506560592880147118558273841547171617851821257385269259661232011032064455466814440406666604756044882309132958584274886836931138465570109529424476081267130329503034686077897623348453408899631928543703880889574355968871660113729799071460760654690154260943173386926240529584937166970945751065572103834076791411127880839279606163556469026561207863153558272658854229901130527455037010645017738403667002508017006356539486676021184920865006848832706163113736955972318834116285260582858169350228131547234219585154254282506642509970622690244619861531527833630189476777820289329930256317891388693086806009496389383794054779604551851227117865345451564271599347129641262851570604395054215996170565232071819229206027842964835316076330205456373464744289171248330999648409818124570085391946328655904620562030160421469130330424381669938191438786184680731068977225961316636347737323381223290998473717679437483318502976056508469630578467674030078003651669419381056978715328163714661614725819018241911519379264691276583434877179117973810546420975661477024762978785695821260047444468790759319015217832813795437152941466113902351341258309654825978870769870090459217196647210943009601556477635551150986870075464646309030745532616051211999146981970969102631266410559282057567170064114990261277245673274320770962555231304197297000969185132019577899179969317614065801704195827977643478836165858882634859149310422070565840243320133657970392827525970800174995304332399487926908223913594365548909077452218771777989608151284139476659747489211115393361606254012581160098895377443685957018835507960295818449109872897599112415182344884156729591119061631594992299713110527013592438054529830889295231586684671235112354982098053837104009319497423950586208814906422773228548518687100279713104648461791742533046980871064375480835281954182333043078129900044180070757522260685711490335428429917785633333189522423196537854839953482118124589726078964048897350279433278803914627992734996911993958020154844798147554950068485131266148525194611680846999603316197644062538775662075221258686799599117493849078411387474226612835926310883418847992389475985986063987566905874980352038475521661245107883920309033550746971803421516062934502836946033897842944277784922560072302155779423395748081231325916433913146660181908956858492063182722677967948703752323522411950430578786901748036002309681444800997199825035680956714887129779424944599899867465607652152473283074377512751959413945421021037945198993091016595968155802940861497704038441763453327202155242440791740241362426359950266267935945004910051763724901647582455017169075755343080709266094754715858579932558789203986563110665467346883064685326004759973732172647263446336806044225789854637289340613311662083835457261669395115499626458191366092407639138213873929215254731241303501207493031493070040349818818076561105159384073082708047183965839714303859949484019795476543794894117220177483793514754866422339787120558205824103120269017058513709525258419343471327606024559061843245102932994470948085169635650585543113292018152848114865388683305936712307442129626367080101419314425483622057335598917414384488371248980547976453156665781246984294661897445423102537560231728657340231176422627568312526599761295879885178762854185408582647900928157984250189119662971088960109889895394720723695115685001604805593000994441691343676395509216290484614963196247262353479639700408034732143180701864021592959910493260345151090716151090475392193261916987253404503022805574195119090309076135395222151320848738855820094114211843881445665742288665395530964910569050921234302465086177833246612797812820413679673300021714384501736102235230272367390357962259038938899567280973108261661745088226319605859275857900303812792204336081349798180220569635070210830858397692741067612134707988617514920905369967999362703988102651173959436732105749599945613570095448230470045169492814668756416449533197487409244194510524660238028309123903631968964249618399071005479693118762613447242901332567752494447439843164068746397398218025999532317008260143085746871445508601866017263265996497981690569382274106367069093908953984775195043059973407803666859475714442508701847521410788121372250858978921310878284053172171440479321127438721217962590667513234032643574229545083137729498013100572965231773777631924166771105229864097721623231784880812133357921801784081953967674235899958502396787424042679219014593684771693711160546945168421471872802508928173933043215685346041750500213672589086337040692742536087346514420646683777851011869179856142938265856747485024990228069175562054174442650497576425146493331047852620706665808784228481948773333707549148498453560311132165064558590823868451001827319562552470467557627930725321282656597678649810237809247750762898447722765323444801630439746038409957731174583157332656654733306938692113171282539346941166777171189874650407109366638337640109131687322375542169587741444269408076771711335247777696072461644794105549506154650599356196052291874236714171284197475333010013599678975533041788468563634776645162769929704661827143924378530511636262922590209032777479337072514700094049020779182220321901258550184320359876330134641683833295007326027234130533341778051889284667978900193943318668860444201181040873181582831592563472191895797830727082316698482340146339864131338598188577133039749797353154093319517090191390784289607851264662780160355693495035743669491363909157972089426164522897796629970678690485138764589602703597262780542368748302750191211345960530945048337828621456823933815377141782118886076256093624719351228754470431657862417059823754587618301196514880404576004055599495258046962250734136649130372575717771078142205883665262749575607806583277337386644175975118864388742042374967707807179218834289938155894055997644757295252522733144284643482858962015090393217599016931829308501835479423641273482012527371434133418947972743286776130822447521433089918293663317194471600942600565664064348739104486635265590884645510957604131088460698287071618702005073847766525294135496001626447084144067660674577454155256981602146407778967326019556824929446679451695626672570469827768356387052474361220872859788194959903918183777721689884310616075365494538093548777960814899233501760462680421045990171958141141311331419647550567467546312203379779574113616795574133319831143327756488997413925916562666295229493207558352235771079342866700626893055002832893168608062439560773427280162026500785303901071795470247895057538116486097031741958768997232269748928218361532464064542493101212130933145055459305027605333013154320870001176211979893844512521487557580191391253668868894689822846514877575974281946623821504133295090934319649742435851258358832146898388512816770730459846150534497583042037699005675820729084508616009157591801213102120754388352290597794077059462747683142269571586259319673610308848067265872508304023087914503670117866518620033730377635150298022791978827037799328454685143712754923810252387144254463959625579311987613752437911392153944087197111044496816825835913117563557356096046089736629268932342492645347044639361706456069762235265640593597256118708152057829273023508400415582576838858903063596170315357364356331502084276099534703109408592745827538227296001733480160286622913843573108802134790262343040917810913594918017371104784220621400090739969149095519648760334603697953571101543284819032849061349753592095646766249136631484378398105253555579321592185917666593289441814922538494803632340118370239051593480505160113702299138249415582390422174738208283280673447611288006205182136653198224772315712727732853682742435152238813117295241978830801294720429666755579638995833053427161870815326407965714405371048685688658160938274583951100926665532993103062038758561150139602850558229458732771467226215471083344129120974225368562520600348569926341877000050692917374007799225143087470788110128944517506743932743904578482120173468096787989731597325779006976148112833939042150590443987430154457920626179465528026306744584477757635165541748497491512626855297008901475639830092390520803100676710113275043855793770535693841812091200434418752303684104929469573156322185215692560353466675863001575035728479050275822746937881032779023671451736802563365000612188271895135824447275214777255263986820506717009853432588990343533775425206678804711144415220195182814072938848227609812374054075490123903265756764676025768774424466697277990401347416033792475803701008473256597498815343564343425573184096409770555897358357212929667127223666104190663307283142197766778626001700268509579775168569735037068992210590063606202060462606958513177174797687001131252768637820444483621330530089191695390107599748542983124831487248357391464147483616453935481201913203050263149367666475682653154723627436654317477541341641423370162093891768088561868393911434335496201625908066667850698546310343121532330296941040499578118853692778207039101042914496575309246226247623613821316130893642756776214082962017395917150081591143850410696623048935347907621150998400637702795917073709325467546726588854196965347623790528845426266121139886808380014433971418075916280102288883652006501588176858985938245857376682047310280377378624569032887935461920260537222739433745997708579469586065071931267184663181824019475589449367869946490997765062380667550544093249815658258660272777659116861541425403565955330408951832949114248768519089821145977155478330060397433485430795925026477369794838025246675768871629908355642017125207143753476088046062842932230908735568579156426441809597136448439724787321730380420404636930994271180068379760275839485669462746186271092536957607503009944947098027226231441370169482396318182302661499247296482194998769533808857670104816493048428566474186420912356857165423404402421150738504931414675539810300764655948467259009627412490178809368379635272065490003466991616238329643913322139434675531896363290154892445503864807438210640096448053661092089405887063402979856646269815374356666625956531866492894823577729507709701276212253112798906688597043353046040008066462561539292538508080384235264233203976657857096862998155754175291773638240329934123787769750460169647443228148884168280831480608542004050665295279576560770612906256521768882011026730601415892521958867584771416886463590891044375302997159157554886207772213640312808223704623834395280688136417402773323813879233975097430659179509398501127769308194316731608401253284461491074289671395779027055627402356393327937848268872699301275834449018370903170631864052386720231371979729969481666165654835032409902059439788539316138797965170396670647674371627492479327972734297723415487569262360783453956195239540581256895604130039961500833269526490966635159571051430473252753654299649460947875109374882758325305802065194453206014591523769847504392464064026304130577041040185851212155950986455043026165285275369244550488739776619875864326785331995951237285291888066180074510551787358597272830166952895905745704287567636082382030048984839479186835138091465606875344025463841382083673686321629649394807515326291420377350318559839711225880571949793752644702359829643827220361053958715282666920163622232948996509322897132471161550854032631384913398801321785130181665911118264693931007691856811091036255135828660314506960492750265523266355021723888538001936808456884836156718891935075148411537512376366213036317246958034666337999761891945787706154786526553439574192910546333795342767465835693812073336332172174686584346052883255037008342034844785594904125012006269136784898585817134376946041161490360882156674352447378486252858014440605650834469078875065076585120381479902658041344465459190369838328061741995345597622435347323819771108079347570385428455335344854702172372919157389397085598396131283528076966889330609067445520160892116661778384947156665769802772730327675202097354702836472169328506502534923538511726325250069265648602056141941478443995635961889390714656948365485739354415819184452259758203477352667978299070092560081366090215529790262590513215360315830705190573974437687660265434650575713692837084564737032701932742960701722005712010536429349415702886015573627471267670321022832334670768243580202006999475947650053530304017150083744929278479641283427626785147256620724476056575396202645886152808092493749771995950434283859443929544898600034234262242953198250178749260490396516032363381441106716832706249316168518296056559773193127799799223236496465592131121928172754498493752379644382966907358032493286662925095004258038249440935978293252078020113234036727302373768403174818435355054137679239963415347671190294908335991261602571078016644718514879166681827413480017319837680045456754254929044927262791659162278763962845741473265104162857225969847136188074564196613918133950848050722950853912386752669856168866500029411628000890313568554061644778790766130516142995184844101244810271710208017466990651768513297437314091111942620856764177403279152706213637563960221816117494307044654597032509732706394513665826036401348972657339110531053298148587973779445785080290326627830102909230978128766325709150898947836333371688350385082075467188310971464482054522096562240526002617063353162470356441817527214258547014099332887382470868644945944193491208721152918750608954990091182608732344200501509753882400045455190282203696681646447673810011823563914783221414753878833103138623911335102258423787496079103220640876386982155024796791325077811641942264676742240291331783034353841165998481260899565839224577827767351031509333696487997171224854646837860135372547840679943484414970953242609951821631680469112867902872651118921888345839739852115044284318584393320804891953974252276880396176060684735424221934990355972263067780828550722907478898559800351619420150060191013010659542081596491463456114629644422554328510707128801351818152990858976677146204906013702616289548951184466645830612522274105340614047952348186019307387342788626223691309140295774656333620764611472935802634844876070672389095844764114616890694067032030517544937124372679241057892045082637377731319509417194118162799892781926582309623112334869696736567597174381603389782212746743334478186845829289243512681955995113575612089982836621976872304062609239272053547900770525713833726189400258433814497151704004230261133712023804016338408523462923712517231668429442623901881801895616094354371372200512810357505321467101510982189682413061852585081789764728542337097668834543057990144404927520250787177545089929284344345057454690038085363003976054044388108326723130079190581872798728736154048372553975941368341761144160486239469611906300584898673430874365950558167084672471909347554953947725487775585548954575963448550993779099132763531308613395808342408634687040792980937390977907651741680798221173307861948162612302866756392463407842074777365125458762713191299236700487235425678419181511001370035887452478988250805641113727218531601967083006354379588199806640452826584116048860231816477285893014561851932245314221538908031669264297067512700129253636424320202367987379681291616966623655178699428925689268621702084138842628543427599117938263274919862147517868196691512075910632953706245100873256778650734298768282943772044754743237946701000958717764663640384422762243428387341323945180819779471687393460681633306620762526430977547386654499192838679190719803373164427778571449498233226738342551632942402064181038563627455961992702462352482699956217652843823302565167745609499795727867085624630412784958316072293157285631699269344845420842473919940509220867424930887078243769068278855596250172483461471179108189424884853292688050898483491946377106370686960838008777551383711887006766750587475849812937845278649553244763138309574719943235844711792807470165572752441630172151028551480746386240598455217754412825113884432883794474900782851012019938165695572007966055637290970949917190084985749375385770108173704885043317267047716225654281072376480624908598202838757478585710077385115359494441861978595393853373554213464009332503527913441378476569679673575790042616752738649926970012944216680995510460422382313219434941027921906922421418220122669992283088983984379597192322697233199328948069336686874820163627101891293655974630446709143050443781151918277762481438722233057564510969231115258199386230317719848246701678495223915356562899720439661601616064578170783230648303094252469566404095138123254164896920982094174164450067727871533151972734488035092805452105367301087962942680156124851957666241645259681660128628069554328770675576628929236992173938852589255912043618681695964467887327410111621934805631143327416230818815652655173146453077425655725922405075743981284891531665526176504990126514429473383498561989139237217717782117521041447141027265127897968177118018900545538148810703413264524260897219944625237980473523379319711189629168932065693662989893527182160966353212630116962451806979500783986161612635015417814017082505206730495616160124051613219924970731481916599224338824764973461276733042811237826116742707725420897864108381509237460287346407069547918540057694656026875110310483046224651042914271464503409697072521201323035228607712654665388505394562456748336702598558438473267752518540944085242922655537065381153721900415204017216256996863619554850239013838497461583035749652095063848945011079290814944539927576665171044634540217668032621908375716417831772945651427862329166623357270378492910493382911352654865164413297250494381039840464334155265056797359069395778536006598060375628591037753745739586223369439501543574483223472732895514996300554879707305403281634516695630735082551511525518041590594938760214416041428160021443992902164166581429390983577652268539945739286871366491159661829222913840442830504366200301494245645168114112150921147555644702079315488712524811320443261366459700320736131129247856019878846860762086707440780166497795737679522184468765314405919963701464052212799227404284340046050579858279870985391809432953731890009448359952638315658596892478212255213544205418230793487347601161173148906157050977425668589304117245921729536407925291943137990918643229924434794814129409179720392819292346495753282448632258180201529899952218215273239009662189839235547077259970522498422246710234362435897779680526946604177262326321971198434824400100469940453346382277650921048458493822679196029874520322952190201743236793067291288300907959476635511351253938956787986750640727243983867773427228066070850635397476091192630478389380351816375679939285427073526081965085431361405569635587005399941324492841510748443177177283929768739366580788062333964822037233082587080524737269723066241349500230093857373417652172746661438310218860810609149558017307231246098991055055272614621801665861729748040722308495537535219639822334598113712307524828814247179628791188232026864077173253873877143280885074021197277504868815322677243344017998543365569239427976022847366503667775832689071443597610435250072780229027562312910875883536624631046737000069924410973546935245602490525238818661509409690271752585948045037738613063120495867552121903997202201985321448906343166987549321007846649274677049606900026438420879371084876789103089298936572922595625820284356217310677995323087866095003102800356165897255720732749359297643238281334564133800010136018592288168880399838584242300162671663268714789047520440940611449858347225122345671615240864172770340887518508062309222364621288247156639197937735532232832853342833936696028076469904917140862145488003653890241551805271321208183137980027113850357629140020610944233873730112901841576166413724328209488603570775758964624107718539404632483854895195870663321270234678285291526153697896282613113295852586331753603583009812013782026283186173094194303947921788794130485836001144532788610634993525502835205098584247061952336283606713863974108468924251898937282476683591099729652293118772440228291568985174698403652709371105108192458307236656110382810038001354798497717769058025220784268551993185274617382776268087157720261229801355521715802125630019619951255446291755888896337658553615438907081774011081923445409408069987083108401231247276206452248948780672477322952238582838204424830919979982376427733836015661165723982461138159000954760473460480893853919889954733792520023043451416338126776490893779154010600926859840773258294290431186403622971590315114289140443413705619462287144950912331705988234979629702630707240498069096824963889874709407350348670190148823439297367190862646149845246725010331662904738261540390872156132317677419005112724033037323249416721437239578012645783509103551400995566016788826668345522099507973131341879008945808565565240062007794719797274171891439898574356746899302481783586815016142999557211449690015840213658852186184210140042423193134539701494892466584638998766956600093116742808043690648521997003093870831202891390921503875268062860312647959447131813906003212026073493770566400957656668466289395825239242863529350381024649731625151492349054162827425605022068027385158058853025157280993468813135684625693164349428040697096490380600622937187195665797103003111803754222267320143828008786994997327728322458782704039266247914496190372563670293851995436533993284152670590973931208935881938720638863640427420628517256700829615751409225687364338293366354235841741205568486053631038013266722503406996309133412559719981050488528173996201290586807316761785183412174849664257842032794298957025327409071842842053863068474464410493555063321176710080130987970366684175572416072416432478085771247049680555269847747972645580736755559808509724885652909353666584706978737375821738432181244998086800829643416720288621899576218228408662189274265471355626260008893744697154494797531872055905743917967886266663585047656075210537614980987181951585115767516823632345441538817258198594924070188607112257040479387117799436019992643842780083220401266816944673795712908709252104173158906709153794719854877297004922359897790921245004923075390420682709428261176588905322135940416583900726480012646840508179985134656811548289108561930389548492002632222736168629108387095562118981561033122083414473145045845292766497462381834912592799066263564915814162232352169994243734964258261991181453457161675271928655510988528955244837622585169451320365501330684365258268544891931417989067675370622825524017796985339225355753379189804888706648134872335336926248088363986244642436476179572794604498910279595302377939067325167716105671558738644508223882584519200467289654561675196476815626885900219994647534770010203070821215511447156461068387662248329566314087624487240827020629970733641852888670185390451472528366187374644081136034939756325463601905465127502085215048544104086989776710755356659448929972620501191950106267035006590991983142450356200088234976090676046971263026565098154771948080469936687914408234680837944950275720000169658050738568059897382113692597905365754333639378601493646654477975245534663076990979574600499643250682317255226303325990686067324867607517220305325930808371953924909262057373786190994962477730321565022832158030810282747856712729757751729760466064643882810458681191187541641847862080347779809500492338533996167158757630585563413493131699004833028918505206338624769708816093370925356150597489653093495739615373950995408630253735599930657554082393041876645704562055309956969239082345938595761009380633283896571484141314145161516173681466818842138392935331460408722294147812585302523306173009538315259404633318846113218081765268637319859143451731257264255251857342610436472883840149782786607454144091155293834944920230684618092455869766990586823112187165016361763092227561038606082508227074903695417141879455455519283852212332216357876752884167700472980982315415486379742081573892634006288724304732109583928643840719785258334986381225394777742409848752936476736811857348683712147756648162028763511637823086724257769995469529763765932811378547921079570963719030954520643743553802474672193177425733759931991384159594359658541351591563076246598468542121063708843200201403139184364027341295781158455208618715441631795542623887482639817489673906585084601712721018487456014991724752455049337299199872051648549345883620126078123229612021562570792800038735509827009123640990053370019593543083195656777783495384288954713214669653975715645174017063010445727970904784744746728586770611633375091429228034978224518144573591121623779363199212810097004868573291705122445368760005483074437998877396398663726184575704355522814483040780774447123382275237206995392396237366877975507958280943042193055397462620984775740926714451439284925118319282935563529431675807899250993433873646207971704904147571610071424171869212410241026589498665776927045278410918468648885542302009605813468580329691763066422896925142439805755727766442765536772077894979297330358502224096594810095836137538676459552899558613433484564282029116959428098103008600365663264526399094946911824297254748513061604627671071286010311181865410840715891776538013393957112280880977805962120811541131902057223334719841991713550954275474398822194020963432351946279960635693200392351489671112236758367334156101023014148225459886652271374300839145132976135101249762325150820801365509095944866372200423695666695547771823930961073216359221787290147872256630685680015935061696075423206299241978947006674413486705240629603701128318749932609734591433535665724811059773683994023296779892599815002852002721832159314460403517026333492293671380660836694481870899190174558789463729593078114439574506831819212011100162072356996292880045382967366992239253201622920915070513663058480801572155297866067808159125203357299100447775847313516812356648008456026419692865928497860238454024254691672966450900298166120989018875825892404971948382150972049244269374774019393359260041548131339138339544877893109090756567385793926089160663560387110934022225101509860919107610165671047959732777722433632462078349893948433951861202379090957820603212891703736742045530832902826609062472385272373020283505950969136693986469407322506267351077085084570174264378385061061673755970899234369100228845840686343241061830466055167058381493188243178993109012161153217469806566004329439562544472587938828922457690800496426780222644848015885248971199810404630048338012799543856572487286947521868711959979969230349496992738813594520167356340333863298273413508713630279092072988462507647304348322453632874721764145626981472272513769178956008836023487389895263165557610894402670923672534366396518873215783497828031422687976353773809452118936928698997224525962412956133738233295265901182145892226509529955788731881859265761546610594818298379867671597476390317052152345945437603215663385491138345623533625509410529677631899998269761912518408999662186542561646839681939203975117508118215816306538493227121298632257903467933244125621524014932709929574916106885912865123469035243459775000299240577556790121814493964105211099229565917294076853920551722412805041179475184736510013739513034249843247112284474811211613527285065047115152577915760155623422321543961728619339100739546694969050214712102998454587851321932516891334231132216260343743109624847817672554643569553566507703402317631534356645619090943984985702532577311433122075473950490456952445856765033764597005285112956912601684713757010128018341785779286397265242675700155417093652991260879035820536142982614497966543993742931865032086473411379180968230972694369025241656927285762219282965416611867212046323336584002809162113155443442858544813629227931270468767767540698681164145865299937490497711797268660370214483655400581545194388698817214712427130150700834828341262753035163704677195564607592189538179811174397148963350817712078218540747685933771116395704888724685132139420635091650094535623663893149312653958858865252881008479687107461400875030312619228778194171493240113791678374387503355624419055567992170294475863603801795000429732723632718512626481809264642372282274960959052469676853254758729733747374924323204532591426656177805041377400447518367220842649208739082883679275597767050798453945201882532706650191591103839226491493610441770595414527212738112866627670300546993799957491556594721119217720380332635128283965815461694396700866737128771806817540788131210316065627529769214961163180745873630108016903065679591106935941399665215648424407043021232438824166619533978463671902592997100268641682281455960196662898661984574332615181142779152901450404854008658447267439918971812755743508495553761161674323743441237276097810057201426089308858660085851533708967571022870363958666477403998156966359259894395556248585763317987805990815129909008822946485776156885081215439625883236869177315326900181738505395953820366384579443603287854158931279658309794230595363231349510635299925659832973432409550928182724920585936738395857569388091425902222303589036386916731658993532710610704566574084581350313927921300503697308398191375952505532045473015496350580805009151577876415713586705821419400921514381954192877240771720721258519168702059887288131205451901027523568960219670615693414606094885697730867640520276259940611584068191523770855243489748017226985075144952546328776400145447859879082073933454279361781943463058243252640060887857556792709128035440850891525750143315206172221667315858300596139848993636240320506446518936504430133553400685081619226478482296999063229981267314085222258365938367809271089251157899750722119509771938187746641100275160012658140497978521819791865480242089163818094791082131525222630220277530683100495988483272388580347898520289294868679527100640258601089790600855260477965942460059719353336613179845817375364486326772842643236274007943854150269955992646746135069541656458032345271872010102562488292589210434600642471114631276416495071464924105432249404572551373310920528924058196518370306163933202835674430066550470579892373301338918418484591836266880788349143220176970576753436242318351659467297658418256905776222337048232177561566651062587252071962668721384117407269200592549414873585785832932312493941468042731638428398037512154739212680114240010180510101305703822173052481469780142966722001544524446682061406458986453567151647891711038153656931462320656089783544582829374707426888989488873771278597127551047263960239104223540371858298753364349808160149433097764569913376694720607446827619321265541363517645805579001198380042966313284592642615919314416633222954491378275629843863118598963222189781508358718919007378759414868432087485991364052961672291955945526087478885969501009985936225140357711889245233471088240269054912657243269162938167490088971807018586264389616666067126595256769829177135309248490562641841749413548399603028384362434086440363202293308483867891664840318614633142276345484634466775835910931868811198364255199072533405308559889306923569711809139876463163590836615076739393710679475835621356375655242372045224584439972463436463260766296836648709922628823995686761007165316406151125164880878232705848841858784237672897440538716646134462216363078407645969473310556215712514151862125836968099939018400336653181784188297241965745625143201092886951013422281367233548517643320773854247371240420925822591286390016784218941953892148500965084792733926214944611926735631149129931037592559210280196752041136733145611604774952434792039255505457303141361567160584589912606473857183572286221648376095931107464532979020752089148777846364314870137146011190541869762813278585613552536938904632836439561618113794933238066608202973560834410929804431052935201337451966412549330665006585369169007818670079723892389128576310792845112559527111636363083312609025125640964850141337163562671225841819051738513827052588431495334384417065499114092570862630283901788936822138476867088449566677807471098366987664938548165691013869820790480700131431796364673958880657139998878686025643349527337899377716336102553280478723157332752495260370256015601019787657968581545222572731926840148624400237043418463881084211145198565373543601274121376620359480624228739709726468416311560857775695931503748078678897594023184090212771385538582856444203908056363021973106529458403987019923494278480194579933012331498873977528684118720560197486197209850431299733102452191105492465609463380611770461374618668532814258408003972224261640280612970710765037783618254367527267620246085619973809976205651389606862253290214556358107773756369482756121689575510346519884996688544485325229774216739329948993589352308196782139323720632441584197801300549342284156458715450986096172197995438998866307325494001220326064175625806798482982471831925066104450508507889356007728163521443169746141403980251963175049340529410322408322545085158300281160482249074862281887679322884925732277177928488126098468044334536837097531243067333499198038025926712402298013553661764582499355193330602768415357538420652359834607306551515909884904843091762975065124913141027637096520045191779357430861546770054476674571181144417732858661721646849779941513660347333900649496942635534023158805897535733143802478734742543961285178934708348925510586445529695104354193878871306611997970402925826900188972895296707317407547315079131076768742967533959795318345887936618313632774371211472833391080594681163083538135843360283362662180397276516861166318036728760478612202302764817862586811331369150526488634820819204256501254294976857951533754249246579781782487401534876377513819289173008853134468839484562404555887292139625464420179675082209937670069708106778533332486549417068784735219746768762990510174229989105876389837192673523517163038014582622446122995740363662754582231135395577311808714344459722566341057066770758037451394066273212635635912648415988593037800880704021252792030439208993766273801988691493737982215986149096094583554326856678696091068146435135538626818460350621852150683180357754728159052363939506639162142214107968945693546155779703648152682898025096218665066332521882916165396973087032255258129943307734663978715579490108910120591372968979189577340807996804604310103008021160433634617512307769689806924174665428693011517364873969560027836290975381849111063644968062538138307982613297895891982260406055626862897371247800671544843932827156421327700516012946854609947355038710439840803147774892843178060103715715307593074009623513243638537862062553734170159106551757976648880263121959288958436457053353279112513942657267631287375267609743792196050329980775743757556717773539688327457718730991656966210963112354258060090166290608836449223798358418178097633987377436250632614117417629273982223065369517641518041040206654351332572726101990447266704575361417257073578181039783688657877397227544222203895492946259605584439382139782166511296632215554682955552753215521932608361887661818451205632203857050791570512197411148796480623178537251555705609491045087192366310845033217560077783747977128181151082776400117297301754875139600009078152750555642087217231938802883561875460970819825077697327583680308703201070798510475880073985367749191723516848936743560717814821573667263703582951031511747210771938838321203809814848920853170862204473683687591025064856555381231127073340033104063825473963093083200333587147537035961694108949719358692055700585435255191993905596673831876199219694610781948619885163211870647721614710627459008421461677463120680777174022391433569187574277661428212167513686488855942281301757320865392519548113552311931524401767111363631055707523272678799061279816843860522713280138119449214630611561949582044817202411212238689805469047894189775320390229832699043353680334876632017128146532746854196467691541344063927769877909729502058930793114467021408235909522716693468780652690479885688463263908733914337240699753085771936038936570412008103484633040901407167053590488714494615798242224252462879165442889510969618862786708918877802402850951761098876406981962263976527970513710110802338948578631825505703467846618127217579044042706800278609312865720816077166804064850620888144905188354366680203299447637229195833378057424275342313009375374746497471672374048165917160932989704880904518924786124075314703383253787227339834007896338209769678019972945415649423375662222485405178248014411301125710619392942673408272226662786658249135908914040995867645692768653744805109132174069415516756297572330724479283008172668535796790629473386278410848448763281069125570070121033457444383607381112022094386037669068676686361468890852618988459879689307321597204975484201403954706015893923243215405627674871551764142686854595853462147747984805551445866530817853868930288009850215052463786771329278426704555574962348916411595446031023068864864430658886895937178356609576871312106465241987372848216467499238253833853086126571559366938978474413723868849110533016582995584901692241341675010616243549696085765100578653844595222163952028612965088065264480785801734444970627747687994301861782431445832216998466850587504054066292927543497710763230951405377400489978724838091587379587418385743143496518397826467589026953295740426244999202885483724938928822813292324565666546216927810126597122716723152891938289451840890309703821908733132832321136195181594318179377190414360551972786821147372602376268663604643330667872386494902473960457903590630661778502190411641555000416041217688253247570690779529034463040904182307293856269775295650698671822509748996417855044673148964131853100005533382487677760519523750025498424772741424254552246389580017126802328235247843862785186929848660005657468315342411554237822818963575173946618688929939423262653396888146765714043109296557503015281973904324052640780434426928529616828441402421124841875585596543293601903795208407921569684518073227859077511869836028142327096359379683814246299767555533341955483433278973168570816908015556617574864836014715425856735372797455794438122291157935415976612875810077811271500236518934353036247666860119123424553746131771140707021463753666052828735326037061525609724338052867883871346973577669255305629567488966909372933797286383099450352805463914974222132355479340491719301298669228486036052944555147306778050969246189769865357160968611864103668333541441852077883685504840617499514862512373746968945321207853731835663984951079465101680334134872338771014419457261174054902678622665990579483675830277117565948663536903012072220759059361956218907653385604603550987805272968431343721849137741252380824902554775492693990243888283373401658199741863050979885653470455595948983108349816938844836410697907480979721385364829946428927534375591524054346139013240594537238948128807879583677019817949931281044492132951528818273101181856813153808732332245628225998154954907202406304468788876792525464888198886626677705821304639188389148090010509901409151664582056527500053768253274830433323402917695519117609540850633118473575010224864365674625127800397266367191873666804208105117005762367494863672362287740056899315569382114118185062978456437652124143931065863075474123894510937218013059205081102344335437184707524484170448811118341576256396705193127779057681398709236857677648044907364694879372116875362971827526344140798137816178505738491431882384325859903610507560619812873640685106747622158367506093149755413141670456336925661785095682904884578046144294735669681028156253596145284654511535520299422962385241593958382756314059238808759788656948577582909694325989482335925270446942185702636969419309930363377630842372094331839232863864041593788640746618027307038410077624240278191719072711708286307753110074350329092581556332017354974302036742427993778448467131423590843635421781622341315183411574468087259453317745103657811368753813819796679442275364761425250462253701085501236637726864167376954604742813952435287783814618398274030889608635739005613790332831500443385644527286822699212965842707277444348422059327333314028252241751167377599789531498116705563106111078812290515260956646641724740940539554366854355164173155143064511476489679516941804277715449236440732899628901712099325260801024016925343514759501774812294881816347556714118922029730600983601919774623519058592786480812144973922591817655783398983087017755217444027513786335208921111965914539946837780082001713351975739677217637728486543554442792697715536312658744979335232207284605716187662359645740703462348463633047156609463904022307242117484778845394346353696158825162276961881551387735178293233229161405962508404062814825944356010372922466546860692060510119945311288181775212881925124939572505026827958075640209607148129479064816336448854933385098915391807424670923725617643465373130950156551059157557518624863369284410058325041265288006363375350177870267423713907350043314159854469134903350725541932883610505370456485888538385448104155582135607196578972732314343989633803709977221762961681819902330403453344644758301790073188651203188454340841898596598463369346391437599834329823479118952069518452000593769938930902416942236721814287739446878477436671570349139394214231243265160909485367023856595194929140397085554921144558954196558314406072257208998117756485398646177506786554933322133716571135370169390868260695847211115432286690163422424084526828666316528660599575286940996639824794295264780988207659793665494053936257760969142745506834741661463899151642857522930745208929244960481655422100186179097423527803904064777570107547627464892132189362099495254329893914151374556645429829695443415753661207616863317090353070416911996145130821175911097673281741780397323080275662285563190808069548910572452591167752388432565177600940181868030067659927218719313349555771817642591184157253706891020652550580521549848062719608199789105943976755054643434072058103069388643781102900791286997638687664108120297114399607911052194331471278714529834502104828929621917085505134594357151389075121325250262094054066827877414259985997140859497984851308194751785132694437409056579775899066024621316859458298152998082600937203386725080777908887283440348727390220843467227760725946100012586740445043832690302620641172767268153545973905455385429045373265964393532878866469798194199977993175525019891075346880167153167667911592466421864442048986531767078911980177984665077844789708192023229482280484569497281836234684854301760947672237969456327237737852552666551267072667573672334783797220182512707247226204685573670544678975189649517199913323372389382205242273984530732736728422798351165833738919393922729192734565437252365134755421803119172336723593102860000789318150465279624064454857669073022464935263426532133260332112750345699804755857389962701959734518752735955747620366753748976947950039874106044049445439802498784564749821328201709019608191836029631655952541308859233731057017688906636444359340937217348783503032687428064736129096425064906064005325509652837037312255578583908512367077792295896207871823635257002115185394300020830264233118973033883117639377361547308055986049784653181438649175870813567016474483983600650863647170117913576157101130536848650239558416497425928333384626267662274111116735587497398880106469868539099184821614870119995929061542893352973041008202992735114577299631554936063933025261703799412808659113047322309109269590236964369761597504248868234135283377978747244731375364907923416212034262276111362644664063631197986574990359431404135953463128776365608806583100709974085862788514565040680090944045301237966265488825036269558146707347924687074709721374884842420676373165021353503248094794376156777551167647190470369176459557186301985770586856832837474227993045357103179968554965191367334935445093931553295384818266792754749576581390325159092609914069270882084232110566637804412655919118915419534515544160372640594507710653685540264001939523531981815103376375551991370333652498901969861054121090798919266774555521844219121459524462517578861837761855584591329447452473887710864138499892994848515089991629679369423905155493473782405166001958081790595183154861594415218624622119685974462791974867620629469178317752907372952331689692194971523737634950875872052135976985072484504273778093040300043826302615487801874226260633057193396885088642029694959773066646476808195708330310991253334090973749391590371134906232333867823537467328938759125651414043507721381751215871943847126947079540140412255165817235825799936759129319081458818489185890240544478087722794351869101574614089174384045926688884742514297689727088768072548735778858680340495010441810783717115807000146726891698969508219092731447954805534326706763143303234381349472780435665485306293840426209662185842610832523410436480748311228124187197658427588441038821795081987659675454301356642908893286163382089343255939001164405836264001371173392495476365446165024545686269247349561400849639645501169397040291564104702084439862526696919549467293875840620377497838357554630475093038837910002956764565229649603565442425715434562981361447892256506451273123495449371322803130781581752384748425394629514394333946317165912754900724644522760564564183350356280104414822785159758881642339183075519846368178555727707972652006033957048073312099592351087546497811934637305222303498579066290233915156576185871642218474760853392620505903504816668348899268126695193643058573382055628953761723561005056482064455377415410382128249573413529933874108252149259243109919826012833938665696073354016877068071339780430733827524598622558573921923407960466055000389248581145413582673114583800570454825659477792091484167227208436379551390799835586430944478402300384870726566363509573124061879749587275768129028142546782531602123516979360707909411608758213145999910255673123640387050855415241197949164005945688568455232634544328810418986431546039493644114158587961240064667304155351030601865378671290638084701038081738255966725315049974435740961478845950060316484352959501534231742191010275512103626425724529973221495180533449725092654620111928766655576892677939648798401598748420273041735615967020825359044664290694230964286018978103041889751438920737504192855822031938981811061333843609487646922864495997066784285513022965717908836091933433447732414308671099946630699997646664675613328624280239039818146640782712002950558135125890714208664364820057551822810116994104087133202151331210491195837340854133587538960735855337759629289431866237775746108788347044551072728389697394088869538104796086277542866233511892483575223154715886240596105063340683649751499072043366421245395170016175151042025657013752457743142016258352937069500558429502033051609066045568010491135564019325079604039252097872245196194866553571227542922272420722040831323542321777999999619940008716728821430826123503609933797250516533519459822524918007917011384866455446501530472540049871758784562708615910998867744518047022337402376154695071874493193477810370146790720050445890912316992371945720214524722825596283395589895301517410862381836955011904026205701053746079276120423095080526188180643269800968051432103919553261674633585257500699800707385134245932412527362170112335560413118221301231515111341337330665070737158815707887495449316247030971066290597255616749794059030301732670873904640822612376122418570921394699680064878978040832524491354957578438768446640666443775731763879688713567093073647088865727829697561023846822358786345597897488060489298236911579676224667857096000515886393699737740635971245043560341305017536446320783403299852944409244953553472767339611738020776962951850982125516930828120347952410090102987604160269446226282566461163776536457667939903497232554893330899555812701644269607339673421753242360309305853873650295795847047354010286027209650882637033628322263630783700078616053441990893346925556072814183566443901115680394293726973178542718460897480923137019421637526787963969199422796058090729526254249677534974728891865968228700833600185016301788361047131579660716144333045137148922551354222743363521180707310042722205131796643571182670248012586604122044522673422043159154664574341713801414435437219046830309322944942650569460879881444134508955595693618912546713520587599666309793963648965117816062209719954505741582337634735436989155968262256663417559881974355799201803829828342237405183926349517035877486432113333128043801163977828891751001521010416817886279986789286915429727817125630372494852015537871969873966326030661819102919877016556423878913658201007279415692936949183656157593630617347657314011017897136841362335427835152567925342417374323611740737604509989862015655083959115136794098253380354780785712545193638142743186211008485652513983797571894218234799258853309538895086465738634758114203794683992435708991022059443379207657634388972797413813369552195882885857832978871620702615291523567111726585642701049843507622711475542286169958832029904382295696035830410788649658719099035034624488409917576511539866413937134703610952973874133879136391270179090666329647519884861584045377362488682173680128234177872131898372371335832557027742667205683145146887851901709097465958472900628895934852320676225181706761361361395472315429671582111332887099766147391771538218745091010009782101595854730507434408341554851933976235430319390361125662655235684039098614750262696896916226785334795513930325731184704600078941221867585582334260711868811643548519896486145855219076677224096676324377317639641853710215562585957839899470884759247345815895482163706395352990332597614367570763243196832597674212959206293751050708026461256646056757660316606244456471046559245101298419450546448809258836149779468144741817850804604244251042037648643885035884198045643484620757573780366483684067374017736213287307901541243746197801718226104882060331917068383282426676997352130065922238240434608655095886303293430824343321280120787276262611920775486186227585402862771149882793786303136890784454827167925744636485264114987174007235702092607366268459609282210779121158138178110517874930756639683959435885689700053738090251459709329325045885186665337269211192629235767243284591137313121547470448864562101772392058066716299619729446746712990027807361717828369931702662662611555518467470012291744268262914952055778013686766957816627506036853618991314561290093878386257573719976676347978137881491158600795525203573955061796736244838713632400156686875887301796912995451398025493902752194931609660596298197157137328147028754638507150387747110910909043145941044366731937324424904362116830180303857833546302200849817627887749931512995387666825687892090819382954157229825175731473244177596727077365333766686652289819730737773885065510526535165303559287898034338884052593203447211591402904472433353475041591944036807882948867337465646245080056030838891607151657848414744559673642137155248714857433441232361699938810327401121001877445779121625980315478219630012848451655342686008760754419413029177813594212439381008857392268107888266949160736682004306368092734996721443231813791144657727069841101314156533755854030036895633693632282489463851037395654868218287569237982113499182182987637461451445126007614904575900436652024152343501535281029096596956386824000029745433134057369920529645119385838337839624223338644124861548605405846824853264608055484500246226578134802950372362661508910185285846047256344119691121883018222080704756755831413282629640057659715629745464111844207415367011600827128961494090518920419407780918681588349542544356413121624714346104031330831825995966533461164477631563486064096125870684491886931157331156868561871683060125511519220050364016064875479111123298557311977455915884761792146060758440546875513610239048820409145194117599697285849695954030518379096616312117688158209817944815136499294107907039366620998363702806584362394339704352053659392654102020984436710331837084278581760356087871505478758044735929795798561940134878232713123226714237636017709568608406345623981968870801622511259394807944980938825150290901611011576448862433450431062842330749760014220345394548138610444062800198586996162393827245557822388171483199653933666918239536025212765048976705507166445239010362920471397783870687737278403407571970628413888020376671332527577754718026393051508301744567499346429623231993969972994747324438403016947633986627651336014446150057604800031261540662926570071151541179510489284009687430056362970458010780875641628192583993946865314279214694879344933752072684881286848017914492179998195033088050327062603394223747754825904567405785597051238957869592332591382115221602079732796697208020185651931669295667161726368302617513495202815778483339591471692469742779035937154032968075618251120034345154536667315781310257178146192948025630728134719905986348811917468674837827422924805734582614491720503004872315050922875687750596449735946579755192575725724629229303461404382743243578857046201249855207472493663401926300791543180807738305066486826778010950686524151563894214788577889601367038142258224335961563245711961014934604921450417448739688466045833081548985093100101023612715491041321170424695931523580132346812873387091218403558820633614463673156282090348714050210064703253605834220703429343085012931880107442616446333712139393510493688974398417859629617876930806452571557941964162369656184778687176637229915118781756068824538259391425604304958363920486526899000326468977565893738347609028460178648838659791650427479393425337725370195108060830644506589503873621804264059352402868864259675248792027286138138028151483296715440629149287028250689635830717856567039059192139498265586088038364437751733679185569724689349266416838065071088956836013793607640009116542215342159123327007430695844393160511505160771114627075927352323466295355480120869278848476769157002049027262419924892999204634079785464221206585895856450475539584594991020453848106242097184370142419214518393000120588090753213443428215477058425345395172281683327871279237696619422244183336675334028345139556888421506648817937656868426217946491795740957229393307781171392004211380152686690368225797637865809064326220556652205956795399558010971840903056881433139962531418695366540551642140896809131510066821405729775507991569565245568789612058723871509135013417226459598505899412828974466463598115844129543959347420919875669464482095165681239940575243935647775325012206411410569947772163651856784150385895061177432811424070291698664756596301041657697245904243070004455219344835560873165545687074656117493691539601436036405914137029871514057657081498167057136574953761643173389922000580859809821776292784820352798159031932563054363307897840997987978988359875780427340302836440921253944628843450878127838769489291792831795796276420481657372959737684520316623251601673880466090508591903099948706065601837935163399990334656642086484173978584065222563968667951579684906432804234580080232799520961135631513549683080541697378550644118657687569144692844045529606830506684308489921783677019462539864503975834919929473615460608191444520507682667511770727765867788900458697671168643078901595774869187894913157844527325643406653738661927625920471340315696866966928355690922593911200156730681092214580845982689091835187306690938672441393134031244854417596390151196800197886298714514947485396915428476760915557050991340226679476904072388424699534055621649722863081820004938227093297503701835533791202833774773170751533871480085640770531031924332653536779792989060818240501599817157358590781557895716736246456208587227204688539523245519424313151132239796667484326162889061304022637041040002399106199367074619714772184645438862960179992003019295504822257299023093812704878720749259432804190769068632794752539013546967068741017230543979363336383340376847220893258740413743967082424017439575328552413240765889755446216276961537165424750906170264359591390123927175444155527328031285522705370193683896335218694056316843134638466263850491736944389414361772996297768148752151993949571918214989916857048087516640596210295593910632857136275392780854849604703879242824682577897391823227440518118953900988457978139506781393415136251133502839203386650843820574442093004662336104688925827567480894255870905068766532203354210672494431584141894678738207704256390353425699200426941473576966317319320032081744990371005279933616865328366166582913697138845390555590044751040615696889520099838933367886033575390366124942483172779600166774512150463824103886583167682732400183169347445873278130497174268515938732337918165566894779974550504105706272891668024043526855299049816528152685606377747443679244909392739514063576476260763464288828045152412419603813826315504159106306370371337198346831429253501364738555304355426500408922366547087304820470546998537398920327796959484681360803069574884123659347609463790706001089556149736489276401267530560118653302982410485652571136411908196114259491198015299063517991198776341139271874404736789994939667603634211888800173930631297379176622778182076911189401896091166708869327908540404644828194525754136511171782851901659235574939419493894365045781314813755114343766260267036907099654705652276021288201801905650256659194682502113338924773763450805564906896016304025534122628661604583814014075275881315593273025744179057833315002919408286064698063888715995062862624431198491996389969218887212393329473522427454151331062755881634437933859376919830218154812319815427942962885835115646610590409879471338274194849822732347604460805667963648329963729563321113980682959785782524807475906671839527589747612330083233995719462505476659799649041180170818960312622353895817645827871316764104171160545970132351650886158782449170611517014842075287340960740068479347486344875005494917004584746667724494062091056246337343361965879686716265542461931862781926413778288292931411680780897165867170002099756536121978530967742020023775406934769205020184518330651008190335546735202483341724721345735968356396603346872612385193377474155631604772870286464624259249824073007372880478507886997101365738123179300896345113880915600175011412619380087767838448676344531548367976885109147660854006291934996482499645150418810084989227326891818773032062500377276283158158328021969151823159009115029450121939484987661585391075700368837359177797495052289376204785710269809439575921017038328402962876398621479923104356445698151804432396985355481706811080404315304008209874427274059983417299416772071026080125739064562115513151889593531147779454247064953505085573639250833843880172748425565929839433091007485471901851933367834446529172311603511901380941112027448529264484931506188974133432997268288076873109544887629604733669525555325994601560853525453649328043726274379062169644990822518007671931696075335978993814369091817075954766836960952017258079601659472141649379531165104682132736448577947580980972628070723430460801072989199050476818989902718127429544137068364193123132633507089050017281928403659035055311613873645628583405424229034409625452445221838476886886815131936724538743163062729244186862623805803945857690229006790128064136046410126583456591546617232632913368012736771814064335378665931828363209391557872377308677774018453727507462050404980418141284264331523548298329505612501983519932407821769529323230826258610689995450178256032777499789105130890593480743371981306743520685767952751797165164808268266123714282757979344774040305127532028590321425059541488723747261810195146625710140925959953236046587389474688217259783930449368235648315636144169229229213479258177688182788609349439844377782965730145520770293125925910245764161526071762817030409395782853837865947490297795805156882043880502817752547465862173285422431998458552402888027301523465293578903826720675108423837612036722980897402319460063316582985322714510116843826894564038841886205608010782289458603935439323838777255829159596483134043044274651887992404184534762070792098000383536245895286426674919087729283873531955920765950112784117865547403308901951241075237793648383520053209578745386609718988072119036574771809172098254740870999608959080372098520942166149831445022328791866328558783346383196152011424931894859178550778309651866785511207044658988469135814452601150940487455704853185154662774398049662165416324987117980612798550610457970850982785837775940070212323863878320131775706195030711727135478150371420450496363689072913582458444867146285247464849302182585441650700633757132785019693745242886285872207823943288650520843681837214416645824480108653727826883837213232409965227501941541598076093045021093092828370589571074469492784122058272160225620917150966686749221315026714815866818814374080344758506822907416116883053216321613608231325436360611945194094840292756627449149454703716241122951972300228730776192787879858527338553498487360423276557657305307904546133440320770862192141848656071111215799283733993566055721742682461697555656934444532344207449042171087479996832069891040651390011846367265304367616419305373228308026614741051112751713521505839171022494728956806145192360225296731400516217204933181049979587025822921871248208917254270000369346775155395269762448910206420552806604271901707055461900607571901191203401709273133126004266005158305114566741945429329525747657395282982117566960860696802334532142798212516465288115802426192299244419604735862962082308158617862806676977475547169086843308560894562513942197470019038732015353601166069793865306608682540128070273341252219130438488448851858874283668995150094167566388277019976932342956436491465414724219892205423892572345973473368243210426634748478237789947799035147327091198869083623747628306809989183424295758027773886776902259011766522039766491967177270945995474367578185019971021018089902158613799190686635415152289352880349189453780066562563487662377539654920326242982247254507430354595031395888656670901363867900543840661955802546268927460392083395718118130029620632470150000138197877993858547067281491107278150527258775836543966622546402496840312744223500240029319925883214515160370320310961387874590855339106126687516213735491115536543130987726669020736261520633075379692999217922654622809093108463670943991043555436497695779539979946009893396397867596201745596066721535626834089884096545456206873095694231287558041660052692331227811447787158220361240074217911174190229395382137710073177861280744212347859408530544907417716586835622132179457485872483357865949050922680577509862214125769844539661150136372458403879416612821468004393269104240734305492393137200949036753777148850833338729653533560771758742646255399060374679059860794209044311983113189212559577697323751083792085497278682151660086732705846936240690916614989943893994884990430935437157355462415147140469559423067833120751100945895632028985511316880237463703926839265957966288881842077528208917764357619872933182497680611658623385824055235877814977881227426708568170305028398455326633096100627588909341625982318477350991623732039226204017792086559413717979940546714951307884528279618767290368679286330971776528691460411043882959659716886916490419140581016910814552816222940659925314886502745300018162981358406620955738743215028860326853712145380955102579769054757319629934871006034530859147771378093374960744101050545055668496592991379305408408329344672817094430642364583123718062952780357154779936484885301339621655892547772823020665116574567920844798944073862390772960778431736528847844825960276907550645327565915836645170221867529020121678051060237443529986565915258103856264044777219031109468261672052557122021267063972994990492829551824934354347022538337603764589518871769895845504625817327820267235104487766590700620797680490868121116819561955281699409027888280815209426734099428974111856728673368869972474272041338379683058556845106337184281588719424988227753117001205457392088066168975697202606139056424597293721773132502170027116909466321346502341509322266746127450176513196564925513387676474096409487624108102990273062621868829437270162286874829035659484363403850430887908449473423135597519590523092394802269518349863763432374027512761277694589002496389961599996695126044189701722163467989695030793986825764852638394849031287052468292996649001158603802188504987053308557792298688076347125150775876059046383346418707321892323480858544379967364061842454370720689753772820767459622300421547270179562419943972886043642390941651867582369654934888589800593428722004981021304708333922419649749514059624000929040482447688319316325529047574064955906100892670980387556921953099949591057714332133467396970759545359760151521559808853206107914165963937308706665558519679157744001113459004023046527959019937156928554667841679576463454244568380248579878641221056259800641907473184210362259462640828327670253750066455940526989712538983978663209345459133272281983858716427949702329730263061289258331953878187200772631563498541386601919207021891945874162567461911364448020769456040356343593294631115384948514207073258357202865298344048677850858308774988068436710319934653450599846014794873914103908700466605168353789511701708774119019299178493535372611367898950289525079135541762502352722945686373445808780384667456354730478694431943640465660380592530469225224487675562648552067321321211042578316385782967250619545152618533869017392168403835909627414616559800455756924513912389480232998160233021972743340296114681205515025341604366563406209113537343307245156423722151403441284857084567787095441163786044991208983855728253526503763451172147597755166157959316598340224958743787538133848451937548095578755693605775190226366340613133605856889966203949825029659306335098721377683139776428757061226247156313624518972482424206520187020338214597735957631554321000061575172490765241303153560242730977052838733320990433839386738124771150321391588972675797221635005901930559515467328824106182055161361703410150963658139442537738727707781819121924260183077078518358881549436239561782571356020907576739686897068951192085690356826098994883262840342276776638210604570741523748280791873790603338691697999811164399833340528005298619360911005378116800264599656472373573724210714809294773077087804049989598597251666395706104901239268462814088333745436144657519360557693335280856201885527534805237867485663201052846947098831375706354437278707342800261792788199365237126726344998267991563624879945187683853046521726877914379935506901890776617495679495362094114337722726900767401957524874100348297737585148339431999331985273291335446751320057364140218517417901361675300728448573203878711149238786543361469676414425146690822165596078740912079643866625372751116497158550728521095537749908720350048460906815208741816828840698887419674265532575914697455049137322764555055545279136698307765896185053580639452617535106673372075083066609006032728211791301171873294719834974650904497512825200521617151803873358006708303333533459972928911132919219601234208372542158245402787899806962218961298701640292482958445080746130972585183873571678974610555769156250449674529060904353884851826422586064016380239372563797409157966577692353539728489462742270587160514898172638989946705745504651458600481463845303684623480003045208299286755911810503880752117465107910806332627132550310698966387772220673084082255022624712068705552009711285003095810516932215164139524322653353773077878709044647098707291134898565890739854771493936857778518736729639682363456877361613266548686135604019715148484802902293847371370735557904710836298075745995305078452704905938423108671986938743103162942977703217002105847982732774045994665257200981275644849498091062582021649469336676503010525006408299916246986422008415806496726916349836355158051456629961552401833336093040332870715795380888473065045731056046158776197840446768077504830612494573585719560041420397382235516121972746112920360693775841260014235110117052897654198403035168569931994263449725743877599725422451698100528154902836673482032730181079513638530362554464555095671469781824282831227854300966862610167800173894175371121545686686211621760365744754035863852754660564139168768596097859560937742861265111046289952522045002789690845007795085163472941797019781033189103123407458654340457313969017481278704662505290096430117618173517189961097200609537509188722868346181037796045120253332425522179552445454632740107564994431399449159928576231451323188292332035219040076521371802567560391443819887805747188855807792718288906003740599300885203388602689095768519306006420064492166468339311599365873054629895460286988261443361514893390959780118875089329862114425952336735678549168578360726599735365430142583011368817609893330102645961725331149719526316341825402315943625995296658382663951517251084375704682342496870862178138639247251520786028091075402061119295563986629426005949462973134014551002899483811302687144590227578664726949503178061689500446144157342745646996697982566619864926924583149735798259396732839484267053604158547185777371470149681344010216042239579605322324569745128692785279535067358735924593139729147445366036117923540830261923374622098822566871319104673874084452545101986152089389443295147666105269750212765432437654012554784492191816145550591366319051886547908989556623562318412221292072466842016942815322056936566440623563449117234567827671165941471770808758187084474224270149614392338414366072279398681330655334762700139709116679214032558047614788833285740991873255651074086993373996757722559913305498512524854200359000539894972749485799062512260132832710149381402999003892029413120165950258810233969846137045647005751225025136575695949515973406556886162649302130743246086322322380459355635743578505164229106739964314733825201449712189792503973590107645424981269097807249381154611096162641126736582600398873298312740807616951135860330825053448884257527853374265802242233640249394000382756599856903992327058667873328806231977586819356696925792283971260129907143135432184426927714268648559179269287758241508406084771283612959650399542827954541518348720861696815370661978352634938328243213397142867729365539540949583363011976114299023557071595390053709216412934981138077113021275574165108412583675112083161189395918387650024805841098320627471525709930007801578071247436650019874953962247949655168602039375502535831966076817530896793288512131455972563870580293136356946697729234352451571306197897115623266962923227396529873805262741294455339805030778188445041567178508064018968917400863039915972919328498213537989161713431072509397821370768389923976481389751484433557836277413040385654411636006779914566029556011763307215414678438831193279761215703170470660753365907478721558913770129035534988878101730305391281111661171367272344918655062850881760030286620113145204491217687078102326449354368055118505044888885564241590078409750458837015123145792914439433173510111670314917630396548325429154600671578683125700073884096135121760814447214694030229259160797339773800730232062033665784730052231298588245202029515029411042470866247860561629168050692447065038350227460398870103194283415722150294019199612671797501571041424649953195342454339652124633117966615190178239218277399798364050955577432302359563717086857268649184170182129735807124671801750340200363312745951182297130225442658681065742248752495356756705963590726881846889632302863015675085597823796064235124400658301561821908991992846063820443885060774419002882924196604857199810271147905007457355226916998902513593899685109656157934298611438992966852417768705195572742093502976037991117631165312812392563482842714009057140761402171084404810155634906723112925228927336695272581871743429982903007519174266327672316444056039700911396538862298212481457454892874181056250163065340269201257416110268833051776364282502361224289873025839893019356652447478437692992446400571748417378254151538610552593849862675565561064786507522712689026438975578691972047281952850910093311115282604241824733475034987888427125518383116754156541970576099496369298191536789489813287273128965525701533956369157631224653869850145773334712424767982812790198387174888700784245653885419832726300685255466736808241074645642975087949098867115547508092549864502480608674699239252416086144729143445060483302891032796134521058943590680877970182966756018855255530858719858098345043450136654713018822211883480589467236338376749111728858692643341821515628355971143008192398805493925910916726046159991309343676667839847471888650624661617334303925848936794012104791894672383047913786181951323303046825000955969103957088281244951060073713736440422825840377871589465726236776589429193689797616502297167817779954173260942971792104566983900240074203326247707639535903810536296586038835609275558311392077985457320136522827062548780935876763090426705171977213468239760119100171680594570041681712076267458210513071577970518734434830201444908944690210033406758007674931156751134610223779791551537330166504330555339306315001745756231724143891822393853594399444857953453221666042057932686956661274953668851755451376829875989499529645152366364921232551569143644782789879157347844181277636749915966874725428392440448375813139249577972755836165845160452636988358265710277479688520921941012944334331471479450417178975094636408336947580733803205270242279257456428808267193247877505662524302928960824795690402516023538251543138179010509155027322594222531833733535395750917337479801757377129003884714805964127501320164513911840718339983732299079556135856395168780213166709458230467019666289274810896598412736224860737726918288813796001102983185393414857280093528876490860411091060105037487730083502500651308925828557020532189479042963221731438110865204417214204207686314281777049541777012885788035564771595887879943947273325887931231658006517722487120511324229939054567942996973769265680278550888838114105548897673014614291142309051348504691908160259723712253460589109461018307297107704196468780579438164599603613716971605056079220402583857414713507932085601728529963637337160498833942418787158878672804782605461198017646030196381819450817409912590170636076034887469601470225219789763107723898401809929199244051278656150638297428956532424139438352586295614378134539232034514665897161613709670816919381344303583361747910969496131566518730998993233996544083966582960441930983513182574418803034912080153696571465158616666454915160275796687969792711992336699901656891448388398842341399461687797312440466678835042497363225570393255307122572518889559756834473034141346830600487273814468475196647003082246901365242043692825394726517085720218875403650147687677230874283585002760730852877791983589486628515765135681472348270961377580516022432258650462673779161357182820862641521733972030369770446794861910664132922347671334066603893369318930325959281515921757409784421555341393978725612756037753476075826858254183476254711415000634181736333802376794959346585218296842146911521261890549448431744413935608668475947701451293469394153236058331898989851013452105093032015321483172231196047180585430261775975607058053448966925211823559855885700740390785128024347649281929503246937015799374925941595601296950591111347218723848542614406899797387900985869926077526535220809579552652180834476189388987990437915640742567285873461320460859216552563395433642726786389152226659848606910812377055978105045929709137620047124156873513118562963395644302668079039550427407916419626008809585123011180086832924516355861039225343808353815150746581528626068947981602993467345317660844113982529690374513524502216161702108033445249090800130278394219722072182396267543599132970867441522331904118895808003489091582495276812590882103873529816394489524495869784900385809777961393922486483651916275818919667179346003903401327315607383239313993593149053145752268045549346323115767847312445186125096476721459306935490397586613462745260494989572156721205208406635436742638911480838620344508415548483062877509909901215926623144968211068426240791951561359862420904291249310243232892748177844116309198188811097115087352266558699648837128356943429458105553113575503212794768034268443853932223212563053931162093029265771852975860764752310280186337457772438949249591058874994479979192350618540491314533183252580844838132985299212954270684075973048734647569508318359285258756148817901607865530131526130564964445271493006662373139753461799087305005699021201176762815322603277470834928200764787210438238299614949639516603496388863411671105039443808215324566228246465912285266235075177831616110574805721762979994482690845903661966922103143091056078784421969778557447171818942681925958222973351437545625862695449500952915051707593664711467881945649890715430784710466882473044517039799859709808798822345602478062443316316825140531713364094748886531995537405848821357405019451926213021261136842691190017205552881110216546241968613693355418259773932199518248753973680645276914983381220913211609501315934265495835861005299733988858730192703039221234858357317910321594230544737686963457532209785736217724000167929503459306389335558954212091824508753255191838571127500784140824305274357264143809902451850218138117721484112905582544156551583756157681108612917018366229090803497818244036272809341390981265597521094559733692845844593202349174344175052072164902176006221051884005655967246043328168147189809062613890238537306802587586046730472536177965047836467504130045329521887342903349204007781334405895114846504988315019564896870256608383409311407538843738136685046638090338408179427035393047622046403043290301119610343529064655081927385520063688362157500328207636999368821190449786714207256750250766758235330226000212913246998149838198607323398858622461927569318488392427492226307498001918287248505328754866595621272451394333749089680450603181958115997374508908697867298364614981928194990538282736265899875171619457496588629553576243353618954121137521995117584110185072377526979048344805148522446244465229917292260858883329308075277261996225382330883265272204849780741573406856085711063274807325900025243830909730880054267056566292302673845509415167588915915517535759358805774653348872145254217497888371223920203082336672073699202568674795733312247164116502527229435866766693945544100873989812159549744163732066364775217470701494143600665249334505972119614223327029661938221999655738040597377971640630655020285729699306749784860629960936089273178135048273418867843786300175743161524085660229139806865219207811798341602132742786096143943431284255343257604364454794845736572641070891270210761829440002989584554693122604143598588779203783050219647942758886260929643471631564869322142373864137058598140138350734820622221830698564366993646024562209963224051241559678649609618137109831611446734464321555374852848117901212079325163813683887962966713025310652904717985797830752514997067078424814879115708685927996222188763310340907617508838686453199347653941146832000732217733916321561319337484256684593270754930978721826714100011255417799373344542687593495535514083173585760379459740741765932132695572043269988898376216200119721381052621000548438635061437096777539398036214386024189106670851544237236636439950925723327596247004012118430917092037337710712914189537651099323389319170734847447883448045450544630069668289887582451762796489957853352924793172533210452559399488671372326072913713249096970674393714775280849797431356276156346981949921382306495838719647644648978888404640726305105751913812658654602185029149645574071200885329712455120436655414506645554563217687531318169222479882590294808888517317355844492140922319384259943244956527486665413796785482427012064598930703885271858736596009247215844632806640152207916409071877658409729840621765402771769247714634753604201140025461955051480315163868520804028975842858363043414923726142414926196398949810507746195026257304126903804569256967701698632102345942567491451340255926449193029840866602487080738726686112926834475245697794539597284189377242310441047790480050180328845173232694182088466929141221231544732644078929063162873690101845871473950017763520768974192004664832022657555461285580334908714321352134756073223857045785457657426869453560508859610903713372341917961542571731540237897139977475433137539613442557721438463571416836681442881363941223209678963455029640092591818492854677380406826105669909387592567426086013262847166070860503744314272335991743965457070544528330951004592412707951898564546187320869514707156219136304906522212298898010702326843483992176676879352460045453936813464403941836026147774566968724111678536346117483982975225541417424388209080474057438601823891923061774035617097750537869814215560848392324747433512358743546940220182326679373406116323694542545399630386323323462704890869931436476821344226041799749487621222431308207717169468473008862955536501569344082666760262430250004957786024009654752905079262660442792439551481141510465454167676898529639983967041605772648627259817462904968327936115895254953655375832242761275121306781494160839026541618261626602018991118801741206637440682802723885861117541540423680285443083719113537232352342112413906561937776940258577507985615237886920784411535717941179135780976732529083492259292799627792242014515368522713325064218671782537962383189777285280251324366404903532793311978295441877197692273934177843245174866810613774985882939574453543859195669627842660899986450363873046113513117962980615997482037453181585548469821190900882806155098140685082228096049371812999681584544315637102467348115999357416936494892955964242250988125638756028188027549652098690896136325542231711369553834777100492623203563823256109717267702654763117094857030831008513008743312641733953001221469781056930740221532723263202756140074686798315629780760485508862727686621062338269426097416299422122381412033588625992268257694344676278944717510433195443743654441865107462773287475345588828421675174176085313568043942415731046207859162725280002344662024003435737711079765965807220271624308190698898362648424081550074960731401429193910424077427871597103590385793691939680297673753926944142025673594298934518241427929413037552506070276816267446715141995010414968168852091337011263100243849690639102805686164579612567040732109561659721481845158115939117547099917909558455289631230925738425030692698182498946675618366129809448194982221480551584252660480905869161099283793632462141016080777174037940702101340361793135684611966861920419892605468141847402763733426681268010814162822998979856679383659880380410290997547883503141257057878174357114341129957950890225743623780794807216301362608445407669167225523948354147481348676321485034097320005287057370279277204831972634075126722663461436005288842452874092985911115058625461903942887544237501225426624679799788475229807708558183737320852676302204038861115913668659413685792422889739531496061034288049817947259655793516661587221598169418039241445937736211204523712251664114307700743348677711137005835707219270640819642378143568861108238151560571040948893129705248025349737909542854059174133854161134153432858272315679594618035410682552832670496132801637002773399579365609925310182280448450320609629798540027095662126059289918189992784291539587269420536822678898196105156199267664039169461026706445686948686575665957934259256350560576901118017065664061406338335234932187893202844773434077632944910161641848401638304866177510143588614226058818821543271751485566764641952803255652037631438320089760853368327745404095549757264294146504335411734252751197540060074322788373682841552405031179628439924442851227273786431488180144866591126431546781495312306125913279202308644184701911158719694754210204687230309759900803714415099037318982142344496150029890771879184732352089426188897507423831000598502803079810966740394123428190200287767547378521412820430754244698966893309402264446341253028598313081379696908383519638927693315650709669860690711661512254436550492693044794001746668607403141885504009967009752760187975476856716288352823399394819507946130885445404059065792914015383922475826868948830594618982949659526520700029471596377804883762120696573541078951398233123169159752704720370729679558577085197182888357486607444093366855747842428144921041510560223918143091768255106120681600844755778604625764926554379165129910574368238910024601869554896259219638476058059264168862311509404155277279548549446916120013090342922181680561269525348678948769696000613668602535926974949303923947312074610877827275407620903978394479819581566557776627093824487607037765778005703416771396377371455629291578900251290856513380999167251808537675010581352248998364472033717028920250569525148315294047323471067279256716786767282714656910868738659388777948513201433048250094702757093144215774244911953442860787001450748213266556412449040964685381020501416554567520513529641721424214066587882906404131309772582726823147696232176361322684611580014782356656858724180813284665046228742234245751207471367084096536948224545002563002178818306242566833363972192456785299509580669989222393591093833192911413080107084538146056338209028541552342847631857236372610347386468990538944065968946495623811780312987465998436202200635010458763083609082028247403559188060919514572280942201863819571498247560186250391711008784469562633968725688426087774719392883867484052197390966418709045831655997871406071186420489845057921511454819626208674114823588661215495583946050346684133087766734220140660094582654838252862864844455679120364350091593367822766015948723559615858924829055503787351498825596724694870150395647374692538180206629253416017204355514062433292572036223043356009078443939066213791743152285666315915754583410776827313625271166449712639854577353189989918373239650274104650417151403797701920489461830742855879364318480180105439902838092640248972149822280070224370712729020259615351722036789177373709726804768427917176188109473884887626543743625642740140180498855446044971197041625759352720545841824956202505958212414860443093431166079744263597553147785242827153900599214089195782124059543286819022640665277815281635379614395089859032573258347461042356603470938393338721920931364504347019023338926485788506089697877722764647027861097843287923318003340580217409731887621385586751721209703888887441199870274724975397208472951681357958442204654022395269592826743482110056492575957911676705823113890833959094637975259121959411758814383558902451772555136671991158441043857825929811565739944821638647895157020827906236329229331017200893037948698698655560707739633785234432568321500403648351805104223568160804521984503383143556795882352275208941266597570200925380067729834077892892421124201495948162346647907219036919502259951154014183590756279499801155718366982607120836984497713454975111942419160963334880145414808862167414534560575127385770614261129044642490533049335700454581682391272018131256331571647822810469196159435859152818465778107402283049177056798859543660309471897930384159375277592204488616566102353784397527243909663621932943884189393902485846086792415107029621317505034599330169825428952441888186374954617074339513693916464342435781582534079242741240371061524163353877551018912692566756343548997774484634205357244024224269802836513310864924594534953081068093885847840298489709212365035236165867274571136540173349896625961007309386437754053184454969024606307554922960866090318912958478657514480226955015919799857331337256187608145928230637734863903275673255393009242125490052767381728960501117863491709085435991629060022334983086583892439065169544859340662119258537247670292108913829206727293003652026244833694501482682751869363275358059838809183718340724891265778786164277281291989493234963094433206056389387451917099708109301016048966134109147717411767695903792089320509530206497236718480015150453602098096378844362717601347401770545880248221206855242369849744560727888701493796976639302725934518169299336795923651735454447156217306391825146944934584380128474548424960851529062426819400548274925310013982290067537554533314386362234943238696815802333861020871824350512563136154067743117553156140781514129347386416462942795698001892831548413155647764489861577832729090947740543535356388539741975123276332962168041971049722038809000096020558512118260866145068509063428444954926017514372029128705882284743160080430767710836332674265283153747545388924535232751842302885959328555051999748793749814522102221582074283319372310221158658436135156035690678993242479042078538780402044169084215464250026407266783873760870738157648175533463447995031022997697160584635700337811942937360691615699481220844131980449788510821003549086316911841562112299580909821745513007014700092160314314310376592495938438612882289062287994028445823645875544632304157950604299473514651209812625998745696624248352690907644369523610517246108941173808516933667074657111720249966534598636037602052025612386347701309119561612737423408955600849901367906977650470505943445551465848128752974333136233104419182678160490086845702122852591795321999133183254746786767614419078867489764613061725033050140204029661646778660867701637469664074023558829841418160413665150221117245872433635146386469031578957404803816511414393051982495289800580243926307263338672367001389710705555376567530344836455892512558113860992434863932841796423777335503360815098364238441157263171631098077571951311465329605482716004888889048268003110526813827379208898722898823425202971743897390995371036448280709926006777102240346192546798441659068111206895807047968213171719241685202015889535274895241163926821546318953410099760239035385663605865096545377628800646707355709481704784015449752773670092091375920558987689490991499575401283761740169269755234432110639860266791306789071951371591547439539491807516482692388705893985860138955817361862473768473184477677953241858671208652754025636487407911593142296898794954345987998969317674748049165441994361975341081285765084871977019260284168292979262002746070389565192275722485180584239356179950793360134772985249032717231805552506864650122344976310317822576791160118237513856368273997102808696010681569277117060725124204429750793329141108946470546409182325829905364947860072283661273908865289544798908607868110905663135669912892260186349376731545597177509179784078428494505447751385405746029104215641825041514374923666793721481852362259473531464027395028234982716973081628191113420722266685245741653104488391529066823358357988036521950038690568365457682260359987068209437694433295852670035564952057320665162042685533738127213835652050797401921643487208506123122050928360163047343738160363086605646530841714739337544304043353480620686925129454122550078330912886715073232758001170937598547516993412797634117943834883034118053541944093658806034211603708638055171158856957208923964475409368979306783521595431872458787378434738099443591483564448427714651755540229710318982924266959344058482323773610885604105448359706298049933042469289931602101982575945420291079037624845872186561683362192513408507482318207240804823358107735372207872482247395526311526690541391827532078545874188863575672209245617657000528326298109499168289044105087345086221121638717056375600020207433130848925317777945050430274062030712135172325212405577898679445193281775789388852989739360719084288132512720124142069474311256773926341731269626047296948117713058200130567111672625884469239312225465247928041372285590272725276136487055195748625859637892137080535100105566346015390213931763960026910052591812526584561358790423920616446055245027766260274574894187750770216906874082445895361888220776684739439321378655346940756920264564936433891297170344102119077466215411814907182497758695913708031006808143300605667504711597540322785360623375861971731670375393671391008053275542843998121342596405813690469932497769436979032270220257816093525619401377155746823038201674820979218939107953109384102320863137368788570376479299004841826827530383106034991743258947612653343157734982841744562384120865245248619782003717712278491989120923131643543076856496507610618843154265635567199848217233308228213642353546603465750108771201346145804023472119432539291437636352700327194198673083623899027254423953114098383841534612259164548780385353395778405452365602203754645169055732257711666883496736597612713927884063960362961620626914088232608688816871998049925469863654796774948569734650013241981002547639560819399000462608907294854406458186462620027233314548424112359442910915553517122980178219561665219970199955034500600514171063375684301252851615561206721968132502744515637603854983932417478072274708011044240428125320891549501261498128575589924811306993920308144283740830389758085879138444775554058319022166888178659482775398461147673465568832914206965475464658828723011206825185134658256442243357994680105607264414254869651936171974593428661923676501181778086319316331972502275936856610212773372858567195734925879101928109325549273784787726975450863736014004363264900369428224839677312929589270763687207493241021823111863793637574719772081466843536862319081164181084510352772803192149205727054369906204400885082423395688991269165658316772401094669662881872103635978706654997945924688532862379806276438663540390393012703164536481246483257210734154314137678736088562377803507783547727729490446807687071882744954203992705402095249060921649820696012095578182622597543318806231092366561999907285272910953800618049286116685954358842803431454282432320159107012758162009525925701536412781782763733192189021734346779165858339094675597719400104609955813614486955156849240017800783416719606456408663657156407974555457947111809339366352053183708051310017983510307978480099458517427634255139396412879878892323337710155054173588701078629326944004717362517616299676524003602000975781399626296621712070825156123023639335330872180292502439976014650880667557650558337531807308057892683897208270680836168086368163474165332932339247176492680974471728845908055156382606211875277819089897105055171422640859105199368424076090940132455142296727207157478807756756206487407693545481003953610165120509725467766605646982716677778262276950437479518705406432734399231687326688606751991119438794304004308528248676590033460966002654663316742205774172841135892831931758811339968353332514361114737396441109363983186962103331718848068080351448774859181454500219890197663045430175497310618998984016627739900328717044705415577374575131403603164929327611307600521473220864835626920089047856419253361779253546499830764552610705895730552524137922015567033161355818260872285768386516543377214507738826978412639007222186488541635695762083034232055028591915789914833107379633791294694286837625986128284799847152743663099834730713559190500794142413675501194390840958599268554963972136938006148979983091980892371224765564859115423509936643755094210428365841776673442028376770819821910558245970999154519975279772192277818165932840027021320469610469575071540426446720499543749342406506544554567126558867335808655739923906960548177566941476503381604666232756578536853883227068228926024083382858353896398962428117922447057501998827298666233954028992894191610092165410188493550560147676449842643663256178653612438792387220201454626095171787326405294880422911144027928788804750374866049398284932645078398457119163194730583250660394353192376751868966572737982891297442181237917798507628989110346130166764903811552540610848857112821569245412633647820338406585828746326433607033556435132063164318593626647279896572711907702071620573073641215420729848809447317378913641029997184775859485150978728313265784240255287898350491881513437034064738359359919817378224980540605108259622372183911537092341609794071800835620153738849947830564821205568181264797370680392696336612979707014150065145996106668071102885360672834463353532837897107669736394692360113938909187028855000064616999388694649648930117310206337416125820178646600624020641093430791463017319560684477380335642146883106893804864321186396072866638542367637166052507667057420319398805018580003708242997320838181902690235343201915405579595779239511534488335265666773762444419933798146633521597160340747617283646331167210106240885506932619727750425503999732604163285683841481537750353962514843887461341536375365461005534977851493777803980651619401871458771929595020691996390100990369752690531592858781421067369928792936422627001694209999578010127731859555093957558448676032736486294712407128111309934695883217760321447632916339758251513412188975073500789503843607572028080883559345752003338296400762294387061298701655132329736317317508406461359517572533640324257672000035672340481032143618868396589338360667114405117186028676991867934063688489899551033808465634772074888345195349759608510609036111133773678688049764558946998398718922908890006197996089648823800037934050114496890556733853354880449667807080686677839342435404634714581561551682753926556626108273476874185852783025054584553727986921940814922532904560364410602791456345733630678083053786581671788683220133882151228121094032494001036810777401464751712486350486829685330108347064423347224271288786638085638200340869785049061962961516414157210346620378883314937696460188490354275362798900906442724785312806295649362764779036414141438017238939670881292876511093830453951552010081478437684887179079438123003832682523909718535293007889999053675977123489154531350065329193895616187795572665326513163531567470878629227045264658307302897542254753130752385056332141178810014291956625614686313768824342747285621884375431465687968337365858474428622400869477793351546355125780056135299883241636737045442208480272442837100148043214709017525298909481415816481958717792589825780002067717976363237800348509205769113368576950885658745567111346619625385423304430460011013007539288275240935836049236026913968492970231272813055297391623047820273798765396674247555740002677528446808202129512371121816661316103059993911720305580861244999704056714750071229665640752428541061403646271708489683428094860177069206851178712763694387976170599832829948703582731063975313829343841050574201847333286914073294697326314440664854976945107594532745904612794847741522184743332143032375574331376867857642450874548571834123274884292437252182653256412583996499022203550407453166428910348942402840057690584014698306575384326774883386543511872718333887794448188693975856356686104187302060483156151832837464565995665681709912973987004174428520351495193637205678325211219209791583740728243956751290656004199642167647444113916480137164818529303595669049941671328592033003110286379303246555347331654520863567130915610611201572929999652708891866077653849937186755376888450378618093515816148569455702178629558632340587473838115293278358149960669734591874556179545061403244435473517708037607183231395019404079528261677917462478179233717741138473805577121889037453899652924163785847215326462180276955539747202035262649583829057944845418934734021547734818806069618987848848389542775966742247240948058911172685707528855249658290270016396948002307480206171122925400091609016946321292826621887720078563867557281954915189565604786565005475968131361796771030240487222901116171902956440964870055062635802736509911018012937627504133863400276849774200207976826728617043312288364985422422054384076960620203167420483998472397216048065719720355809097059485336975931207865895919074759220460691939482158346552547482319054759913058495696033767862011785056024912316665886904535237747307960570271205026731488737686644006189521528578413161944550088476928575145037310082069513387210421342726212031472981003295204459487945892552387769901216490439576648591570836561153960834402597202685111887651896272404526786243081470036300713076617977894452078026489102470871588472730077380460994556656577837275524018577287461440490140313618355109120211206312296549377578761444450857525869902129221477555349660926003899409660364025821986361078184897359366474849213728254414048721370194687200160581184560860277984384405824983113247518499307626254939679303235048259780999418086609904591451670151405749002611110607181719158523450988336278559990087222450187748506036900155470150962050073088840704065273361973339285958742469819324472358529883909460962567446569320362341060256327786687328400449162672585319726947054979036576332846212657111825683749865866974188017380840261368230531332175363160556761211675816823028384795224337048792023469908617800171646370022113062646594158988703303192821198578331173672291387941758768123405276321915449078382195057518947865307632716573075649136135660964753571063303829081684495786490341027994254086768562841101553741242536358359496716870856122282964811057021669962911066320912149955222876215696663988652479484858073238414532121974029199685920475431613480745687332713842659584233610655540265749151575149966013365892224433873587829596251466522792836851299809622003320625090477169114407036229947532849423223486319189980446168227277753984088719458279470482122119079458639947768552139026607098898657114992793047461175454642270439259244825615799544128012819292096504732698159601072810183394195301258570791053882812230110789660127447448837209897492713939529318588064269632961809867757760825642798723075634999842342299820347788809709966086252418225833398883000494956090653773363215152352232762143757201747763920107694864837562328284573002468500407331351081910377403280162065053324445474542841327380567795460104105257749466940446491777171160893263802099449838604288947838506324756985131077972210260875894955486365717167754741698551499974817941055262263832373278576231323155008351644352876097557530457914538338045095326012112345262943455794346235689274796150661709442279373783702774314243070996232294157864637094269078174401202384723033173558653777931700828092677024701833232929441900663002146443688668514575388496521815337896633079750535700024749025498381620920786483029245030783156623819023185001511791276051332372382848874206821428435329877228234298906502904978464579988796059421523581553196563880629569740789576511075640585145846809398206712806444024226453507433026429289043220911716890403992485790167292974321798779122516013847138358807702052623946577238478441629030517710437770935904765983784342730262074595830666110860473907513330612062931476049481486079369181983272140543699991194101874844462350626838686474734249552016646686512434061379170516212019858924966570058461687113352054169099109693821500224435170188557756550770415961709431118243467784706609700584921500123338405692131686502340590681778424798060714306674006442864648933087041246313015460203683763300074331060794299875673901967054441444506178082261190565017119258773998125623660054378728676120499813500453765587802072694428576730989355506527625027457555558429188181753048720656507672715272391387128596670309173526750154644045303434095067125169584596583781728719743122638258559096840050866659401913897580045705587381430726509376451024276454026099971979986459172985646276478828809019615193596210586086244649070079412045645095654698184868173811167753568888790690615161750766736545408046676323868647356431188843293569441049964204578952724923343291708389734778459608102487585165569425874375224261768886387743513605309142089029292956886797561999205035527303560713355146297420075646104649201526149459243786525340735863113264121736359381499045109987152910659275005508841342821403185055663970363425466020141184355104339023885509984809177765516450263767120892918073809833990711282414561175391842944814100456567007322021602759170898801458726933974721198799856690811292037028581129319622092688340174576723506053346764401784401237993886098700785276869772442709136943303548492811620805872375124567714970442305854564186404966697136279700440827023574855718896547430371366087929411075617259124175364001492378599296349264131531786867648239917619312528915162912454933926455854863819375787712798722953144184006965484674751077746062310993027442434796148417943453516549220011418041111692831900594272829505140518692718276607579761579472677335933135625754966076256769608375038660298982104077233682974351423695077852421369916727927055393001455071399572709869821913883686274131578421385127029642709702787977162509126512942656579928165781704634719954392036893561513125908630207862214893178186897514277040284076098763367631486768309650485531959052074395167274889125219786230942469382090180702129073898465210424816149717507453452638403512685795661982801638130633229609182347729229781178390953830345308253853970541165408738528197849333481703852329830144217730200006216459311947321856441195756284749712723676140992835831209551843908360337006645858407294992406725243917689371035375177540894641082053723857869821468675599087457970868916097174162595477262701801244383096924869833073340377822728434328256564301734884596891526084721421384822153929164106940010679678176249212008215324756825444762822818872774545767760271150266335087174485940302249628167288168133170382874358607375146108075958977390718547254376691095982412779383178637247628751645932974110107201241753459281947214453284756258740147021320504573561320838037600578199312251157458728302932129593193711717792068492710946885360295758837876306922182912461340952102799835909315511974958710933171640986434318003186222497368248384756950530189880124692736860986093108509669232306030154091362930251651431639699709883785143821649975898268283650918155598248423106603456830697419972268556037236815404973304527043786274841524215404968285727834915286126055567333012194098502034678627567786478496229231570111613189286801411757658763635940651431602604299987378451577912486676600971428296116096109915400930614390597354434407168435399656518710225906347453052434832045283196278720037237562250678103239259909372367252789474952240829622930671544104978832297587792901216182955477526801432775327487828080114216917699597860645973036123965668168901905354237207279405674358503040986992545077848953051249554114696766574984058492749656857341899758192219177801037457024070069960769060020886176044601011684928086152753208900924506868658124798629291456643460251986268106060434727012337306752638919217530079228340819484189684907316560166815470868819134631593590445700325775812303252706732761424922733405263773463495218180817684969704287378022836042899541727247795488129011469656905080373660117523545027951927346015463816542625349189807863352226224171522478675223013563057586853358973305367771767675362837648445572014024376512667227001863696709016419512359846180515939861804174590595165510516453931287510568831438888667173859956749028405408284404049428709506083141409257536221216409723029242052430455812776823770917759874334203731660652133836688813906439510931931936719451923487087857309980791112843254381263799645273538253340811555202931854577299459448187716697429328192052735114306471286301284435097700487326420292101365343448610219690189373771012744072173539783849525769711608537743830102629452332667227311425540330575419823645073561496854381669749787851134599455976412920861275396897433116894311968032940129201340770108690898044208025932515377519480072845090033014270899384309741915474766065958188948064675711428794203527040160381759318760977852301124137713231960348331408766131530919419670262519980894415613993965532367776350725908309471777284146549589005953937179417968413948987553133860353463872118365778825243880879201020506319103314440723073669924164053319109987738574633422085636364433590673104591339395937998289875139658633296923671604128963443186485454555133824498947882193606627203934276665275905195430253015427869591903792977913451920682570730561115498014990423736290805371100437238853654786616082602088830820354606293134339838666381057430693425721073209053565016968397046484617230582858973379357282123865165079920873139114699501713725632530983066909463262802608147991171491241466711562661338786831319457331323745738273289264019821527085500421087402018188420833124182792632944189686533415543950867685107655323064899193010235609894184469873480585030662260516498376820773871827114293058256134325896386783251251438427412657560123111800147754928897207975256337780051712445183345167590404992956668546301991069526230596509838345573636270092981025235894454485514096163511128528159931788389538444750791693582916398645562450262325571360897474872308092093069328226637092902720560248017014248675756064823369134475450602153506023785242445966499145766989710067928683900860051838919293220033848133516465801591637502378595328644076861378292900343729001926180522067696990267576570403730338764762423479836205612785262695533021942000800563357255546549745285901703452513820659481572863182000686637083115505964180508042861464415413755676454542560328925680638232254254593903733390314578782446703042153735658834058217304632520582635199568477905826813503505758990623799687362255981145379698459029029817308662103417909468028574371714048300775909226282416397349910213003370268681464779032956751701269647015604907627579924072785510054736751348812061758373031243901394604367573483584021884982325147157076783996641136068167064148191917082849062611783059560995588725962651933265496597826489521140360748045846384502622289520234736062302881649132509609202771362030143437353134283838777708746978116054053807956387700940004337896917692904793438517694773829674797290897254921809487438512999500381775953184442732531612296555512771074690869334423555837492830656264379893295435968349707203070256220765052471566545318199223286340095330142248479016026137254268342401589444509433426194747888099163544503942221175404161608557189332716496565507565441154864466477178923121480532439580773419809051476412212384065468455960908835945581940376077157857375797398149860331357335136643274754280100198580904377988147081010437425430315116725546159825427820765900657810057701457359568516026456978067022773337766950235040487283062430195557028137028798907912564364692201177050841195448551122011747501136190203888455074425167689658295586707738764616227773947503907161936793841166521853265959277981523543585426902609797968497877273250158575809172147970975072137179202019607458919300891232292976665593545461931318339646694630912998610617904141332809245071805294612599987058024278853100094443489514237683258876398711950621279970030803915112525634873106792781448781768508869502341213235721523166479020065907074824413829198199211683216405049005106821085687789522713449612345604599366003351050947048155103351276271432747392516367281356316448259705641849935380659710188706804483738501216988805624425549862047520797168536353354427796716853502473026019459096790057185075395635415922748676067354110797608134445814273433903764046124189627112652194833120147890822586894504579329558406065621778301357424123670729190787576966979590966068265418453834953036481512133859024752745530797978010432418855409702521997281616500677293501789414713527721552279246510976542471856118202749258639491113245331990024339619749329247131073858246630890083390042749140178642457545151331898655138104433943108132970158527049384362447257610810472250312636613997763937629689424510864011612081914600823156985257426598474784735482433151535822141678797788700240720293464417653445553694307896178435518390144092373764983148828025560799444414233918894887136019503891131164890374047349498488748149778457369524992410342210254572827717847018078493518375901268760891435923007304306455844748949689627036514678518009021518337786496068255397831146403670931784811587916830136531203583120782780393869336761882910892038717220455210393396015026054847483867905165376013949483594267440898232238756554875894418021047310187387382124558373255550844536649750137373341629439214002720988075036511538780370692916131032037515958206555190821760118747163811301514044820601520003083563918206472514250809003444996769563012619786763087317676767004399769051329673155997733109884701752134584882418261713915407292145377853892499097828752908069324883776716985333730426556885820153118172670669209126673438030627988790332848089322308373012320266848860773785821019316958749016186569875759043870210841579239250435473920612360785107534768992705681182827488001529744799372309163344325440985528452162258695017664171824294313868602172273847759841229070591250501242725023299839142601475804292541453304536921922846642544224977568390803768781351688254667384913739922110129220079892972585003362538792872579878809311509915744486101507383685733808762383932480817313514187402760113206707613130769987394871746523146646099070592822811712030315661693119321940629202467135679096621698563392658789810642967099140441805384666737412919497461271932937008214324829418536486412339127513557303839108322061747319188983422448834366517761843448981926286439873998847060662601943731101565135327179745691588813935402278895133304642190181905213606472131287898756787914713035363917566863048891569942915910550746947359278248871289144907626471351154956652980206976152128846134378105252900027209068736617581953132983884114302663228525830897494038379524438302935008000819716671798273305476472918180497377897892523056653768727662092111472086221082406987240552435812986058280353534218997139714464939779083512154454035211682216033368911312686117660135896800387169680903055812771995848394777449201189928108247608041689228245368299811493436071416284404399921333477396756702040147217296731884258563256464997510754672877178486223539418753064368046131587888096829533496413588437387133246412614409602572849239749171946586815240588521972955958692033455795852138747296198159713303353812085761907062206937881433293443166738953953870668691157805065564758183443725060536897902578365471848959120398845693157360195179215293564422717166874716285172307312702631380751567765289967946514929232022515755897862793757295132070508766157360240844520125559529780143738289224552340306493377628478830805561101366885303326572462094165547522831361777472167010138449135357343511093652354580059225026590070215696798044395736356347588300702696404260874061845960508715838784246609952994618713725807195094891385967993917130575936545691833148281465880252506547902912138588495768562470112028669419353566516409610033875667089225099853109993348847526463282173684000068279162230337402936376778339240518165796250108564924568620263108307348641994906116842895847551473582913181402169829481620012413808557374174368030281884912874204112454600117403910030350023023362395988195184712511839219653492755312129521767152815815998862518020459035308530100790242679612373254579030935481016702042265063418677451006056586615336662206260430134044064610691145251673948314270805133444919088756611544238164383709404570459317804799747494871378964330627064525523955963455602162671891667472694102400103955784098817954687925361355053734959833435083358519464583388020206582078146114125504676333122880142396376085494383672833357591407042943477407495784358859432993351727087771630850117645617378741612746725822802157539127580382588952282947241716127158513812923850822512232944731742233577681758113975889512552702018942963859077687696806747651175925653236927420373136857366044362576344359545686539009280616667413125034685950007942110723430216382240370207459320353236970064681228362231467670639648962518682775825501246561957754484890891027717663961642766327599114229919796345433737754019878282581281923041776067180746111577068405141431831944144760558104903029262857507510094030333789439271748494596967934904646813400407149291289768538249798997468411215033376503481968458656978808556141690396411717752512418422583724219813845920834571186194860590393284634911040291994101260789324156718610691459802952666290276616219789142680558081137720166585640994532625122776630985591756926732741385269541226311626569136843466223330966348750528951064245590634920066498541905079648350118372312379799006634299839787355218883675127604935608940029497112324580340149181200595258686156729397412366263785660912489095592291607319119569185111526448423726347759547389021905269673345980722247976911097112150770063831314987017586589943385894269479426057588707674702508787216574625538127100906188889713379621477566945369855960671058037748790819716407226940738599232839615954154658614617210072141889742151165460461979915076772541662240700153720477031378897000621993696805280457724709970830316830346174180759165091094886398184393524435557468652786602826472171701985185910116442779171974983001680399195601345363334899566520054669287390112115688436517130099416617034180638676668406382015575678409915658345814984850186573919283856493224202712252224123831005055137561242507713678509289593972332591696460812234521924824862244664350643432448674030629810095081732035744186891271114373165733973090137494190998185548188157117502536199200076640747680588148724089916064330896010324732538689899027372032560919303226528806154002390094265504310723559293411295047392056972819218715916168046956729030708423942795174029260800869222128587165022419353460178746212562086301384515739551629762264350428620857125019728395712521768878748586332227409922632234400372613029855671507692898828284763439824971891093069974073917097881228492358154048292623104603111318033587741418003419860546667001131168764467245528397530777996925626660490148975691236854833817723675836313093845212640843604614215021346111496510153653609289273760457352532358158329969052263268936079741051182258993178825363313842910533947555770535145535020230286000409569432410732941883803472028001635394910994118287094270928622250091965827602533325779185151415230092775815043465815403746518213552899911244722459236814630398521462696536225146470418716801078588593324860035656559395741940787270864451783630132312585531204788923259402704503031620244180188720930061674953258885359340284848655037580088678044572533331786053392085252732194931183819033980304005816957028868471600452875722968263476085416452396834924768558633306354644671853772457936602757126058007689773576946132700921798139949316037219446503102063448696208321357773812668346977291288329030857688579599756941723983981816377738541602221097717358399927472951528803705554115394628360745140584952694564325738807198356430441942895411063070747537014050362054517194913248041074536707897473494267706419320013176914364959787760016455248759927844191847830359504257891560340952091706259248330977623579460111546766866441879024143923734083871293402942792565752058372535170577885908972090657902290459853233765052443674690989235629739142850703402533992461535166788494009168231696521904305466862412324872337782899760950779162767810489560897132080952211555093973739887818230901897995389933636495348678776343118847901988671350842097087560938394672627155955708814998077391217182666670206840087194304349537040055088557793342467972113817047591805482209225040359193133483293516915780459564470549931286821102784187525466227127467317732319991945071832059845670619102940028198844927521246266729437984537545112657107399061899177147474852267623629216520231100932758325759822981791828880457658739986837100490821618406820378118669360426052763355007070610517423645264903658032628344545414312356578654065996900404274144450921609022593280149124282418750009556128782450509800828213961650829640399180850959119040430003648540776009094464344820436601803893313091090751528194267089272127345251428257458042807349990680924061395292034309369193717374308856264667916674120291636185856802843789263316927304057039904470877470325557215393568979327281907826258920656340801672619388509434623790896420101002254970347242077184487376556658741947871435809949612188469509426487615146964283498421860265416404366811850086248639938635250363217024786890387649103546330495668562898076792953550387316270534428253060969669745288530099474612200039428868747888052451039735378580840497859115902377395941168451304675603357758612176777635708866504264513239886841112087888679844200186033157690081585650759544786509424134715907802945484584025786476098907752746318073381133506998094976248221831422589651955197618916423121824862261120369707286649832912707617186968726988382748124472946977450052707168296157222997540854889650950572838539850922045328376886396255357140065984717882648990048948374807634295007640651991455796946663432559151806386947906974585500648480965496177292965741348662700271370536426565618096556412997754612228658331841997909992978748362089646513582670025182351335655970676600994073383215222156766612275303384266919384929056292306756385819396746272993951314435788157345024038155358902819540950480842951820374679768551701753966668113425845334820369710073107435075912665289650220099335394661671085163937959570410401659881582204673928818749614297720821618703019612349648635489636598282366770236359509454915607927643097158967625430081152128775520492135365583364679302996278338997504949098179689041667830325611301183165663042173490476797256150335489984215996590736960854970396975565541151403249029825060659227866412033668299432721569363254222185753045901754252939263052389463641126186074500037701466134436475819222101935757502383975883229613553714156357637909875473764083944507757610302404244844692610059098788663351515006546989076039446643708911895109053164466147956510297331797839294790751138303958037647777825181303281057303490157364829221540697128603586733144137269340152791111580251051934270297617826493118574212721982120706372562610116379082462807127634677146125038541195480437319052312368321785214997282790915365314300142973600899082076263103708787038631576746618762471259746740469735363674406306235158293801102743277587197500690534181991966954946051595995074763761528890895408531467011238134959816845568604560058698023117419580978927063034451677140302242212987716684565561603225411321389528948057503715482132718689031123791008911236192632606125551267991418135248941897921999121182078846843970386196291781741198421527042891804566024363669792169035042761431135448665633046247072546519638856961677884822054650786074835027572743511222749389983721404857954826497484559671749107846400888191719563907201771357414410601208395815582904624350292772734156200145428033997262322384525334693485025513586903243545248382079699000434288384983531107397124245229702057422355777691503211189279691689540164745755385947129498414341838296212398862772257042924314795402987465768716838778265372268980728065723090160504241736345244218653619390270336422330685655353843997060322811322150082283143036628545475813568551337016150063844032997744048430170888371870328014418513568400433567856009691326573386309938024287411936523116620402585574132962281272752404842627798961767180921517004496379087256044117060087338932677406822256190617847413878336515798504711087731321926945502387448489492212560495089036529388536312340224070183594204150867836970618435666821066904698803710069792558723138114387731745826525375077252895115301623610147569983659320619563888082819814319885584992679709869042290609762547869339735296467196464278889403977263661568296952507233229194906992584865249984067108970211079054529912808163855906337778943387042764562931104335230558159606781559127553829861429667247555576372334402542867910047945301226506124120937284758310041638789129929167740549085389003548980157731529747709212009521009157197415176829622324676485103763911741643378551154781666073960032595956036960726644495823462117161777534297601763763405893213822511266597304098461085184289740603155039826919638737598509089995356414609797963557909983669894494052734980660896920733965353456890638399694667389953190574866385905445236153179975021310800230117704333605622111605315626187855103700087295189564077505693861127514943734263205092575569481494266940980776047970074738669815108013000541988399591229125952262484119387771630854893452813495628211492108758648389720793417419470076821477771989534075691838889071881683633175688512780296618289751398400131072962519495290735962451705542712040741046754243600470858748847213867573308591491855523211547019489433527497580019618759346438933686476109899863601831680695713479799180228122296462875963370167954272722949921114122837237897606851234396730198644891622764444402881126920495401619058431372668423002554696318947256624161134140705375631521807199229089416117162379354028151419878269049271155256517184473860959651501512536462244180792465806081246094675846178715285927566113128914986133045414031704351305136581393961457358845477297638342494452282433694746408363890297463990078947613140282620000709709931007350959412870075444450893495185143583117860075309579296086135646968514610941268031194577453881093619820339662211044285388283255425469507857740231954417793117730737381287639050171128987769397539028625178142370503180931005219738335784561366330660107626926867254503237185765208734289061018507562668846843106818241272003211038013045290347986314583640771689304780000647446044899969136017168868915057277393976359097968935390180784510611717687679216382745824605421634149807532637978143954408353495164304133811336729775915996228504641272522090767180531903277512533207594128802975997888018666139991604085681078781527169103081289074831274046097334917909787510315819826848565099124865633119181286718907931943600039640869600856126770153760178803575759991510234887212275781153007314571805416143394454691656934501540313239138329217849118945677446332881872472057373912346440714058213421557478501540707366480265410328084632140989737186025494359431885010804005534816532466491010141526788597430922540617114451410435582221533066577679569427367772581394186956416693008055251183021027482845576121619230455515790117884750440197422041019359701838648829757100330579396078785512571658319278854951046515888462049581522921178834035442801238572658428125175825730611320445155010549454321839517572043380134760868807550914544761631494770501329587850671058302554092611556300281300810959673795274635158048779965212304553546642823719311438729641596294259583368480799059034346533037215320675976399805393375659281014454979777372398469273419089101109634792047783841216534518247059449533494982619334248141588472827135978178194896529866082335298027335568381450776503990853244781348844566485657836590370549819163553710428985565630159296906355204552436441621192652246190939091669072432328995766085593900958543498722033109279451083472790044312466593811197891363068541912190823624819069662633899371387015123611237475772629403093167554022035207108181224090347904172063122526530271004926348149388596198722129062839915038732917916607062762728261502240794048644806614467623837333248422131159270559459970653766916922618517334427378754896747194119903618565379065476684828963736490483338036824373804815366759674377170337022310059107105589040705141267773660677569495234475409524291057045776752334914070086899704024974929000322751006267331038035052896270947138092188154494310626749469901261148729348751153966313323026897388639228134269779472736773624366088472878100114388844088844934816934468074756278674879272124022547369062112969098268392626230050418476374266767692209089733788611789451888074177304663069599886524646586051755425981795327591957719228615357220811258078135275461926358085184922238380254337950102725089603313251461212556165241485443918507434265024068779405019856112578510429169347834900317414579835537554041516811627414992154937678401472287200872682004403566527499108645553720372765097111839937085647475724029950642829924357115689582500136824574404082292873839560403984502187351689696743260125086212409549807697066049501355213723495544920585273779719630131166932328051458844266936060668791027345984825342142644372530186327247213708542962537024874503525503361733307301051582603571759358432756609357415170564762993531981538502837015459241788707411190620071977537262815783016931063148015018103566465056514296654246284586141015821647836956134870375580218399097416014029075786380670580389078772905327139427754511621236597622478094058953100671771279116566797424023448556152209285774223805597854943166178738480662200134148698111574799376441150766173808058262568956719988142173707958875463010403252798516009609755689336344553413803627433874591450890683899057096689813098061769595044811072548893033377922018701494479063220254494578308710989183198888177367438567544981424797920902254356352695426549510816534385674380678292004349320966328379852660493379620918870001172297233625339182594212112254183876710550573926938575928275886780611783801732820760836343799732596591683494816169054014516938482016220935443744127353366833347161895361788844205497561509548184565901940688454015980999316599609730595123501261425724081561504613237307475819525074120420621542394688695695242327022405915515430502507837223586322553624866882636789949688900838220142548328438386495152250514708632041851597678078105015100125510767629410291276858082648209338276233191011845127632681937799588561274689763940920956926507523349020072944360767797652331976864273090704345849634923867739878089081716581049127499166744809752749960570686235305630905591984779357110001351398700973656250577021618773753820303818430528542598121195142256113820821443287458830495173008988520697079781254021741431193901257881544731406846520119273033621405781593418760275726533777128397540247669989662362895028433335398494795261642769848735052485298405474171823316555499244217434997687988654857114541596781453858033092731084705512908175970995492161262890164785715346483671788957995577621252204002896439020859376085946676104249784646172581577658297782613825939898434610229721226860566918230471463957445138997254129255284466632674992407469282233874859335943454199500712896961772212807467804431919275994300701281440732752227697044252780238263171484593640756703253002416509397204621133263576385104306740736199793965925118367780026197426902971603435685938298012751821320971653177690306087886359451494344117642556659030093364378228028104713134324483606577075817439529659750516827958042583901226925327837187448596324697807592920959017999515939435359956845629076580985625991504023329883212212413881293405425855221465786403774455952938398622776347892937944170112252840668273506158760476054806244135668581759663173202166394172844093823087527625026122552264020084661579536975619570638930645372501834062528518154475935843859225831998833360278244691985791003285975389621658788049418435303807658579958694314438440257944775073374194197196558568078214537359838519582868310592311122963195044735219127334527091796671467471945905739968346340206114851518830256608422407362484061402878905758797629123319114826313572979094432270601902165114922696732482969900460143499869514226355157071493155260516361575413941717901525815805240716674753784006125992394814995652486272705604114849305068902376914927601948048995089495227841686972327260022962116308383730003724312634275478014413539598706238724485905294343079675263806338466279431397594574725485799404862477359022546220919487369666089201530813252311275556514281200503673422589043555495912969004811615042012698165090344421972120970731245383840326916827062000479766966197648135260803866360595239532063233669925312002259646374324217799553473667661772380185455040831065048358302036520908175820710171356960389779312660169396438852001585631613748896942239761984925324198370853490471531543065120617952810977379659586981986471588003729299614781257598512978696387863441469517562497028226017447377133238116485100205940849073914310042826103105819291066757727697765916357118963626186379056997040064812444061481306645909266288150055382224124185573875785929138880847895299037010205599021119099053372210530713150456319455715947406236889508504363063069022200071338395580672806588438888152707672999109947740361449747437742192770150819626061443449696279995988217097934848190702529229786974787146296385175786196535677874398832323197534959679242967095880140243501251843102137399186368126153000963267584479976638387803647831069854412652336053163699040255785005893904118931837288253912488245952790803321264791593909480035504733994503217798099268133475888517169431189109172418117951173633787038694212458881041254823662727439709182218251367573051715681259327413519705247786783840859314040314387013518344779997809911799927438529978940762568116444595478727424534273790106425735173673547544008660149567280799622549949642192842572930348659865842499077974507321934939646535299532587838527189003956141141069696429227566054663803050177414873360523691331816297730341477789583352125119562451888415672605916755431571276450735500504799680762324288694355797357620184063883353738386313806654767388179967081818959150172172840080021705128411873948261400397839648855429805555385367301674177603156427355194688447851401744279070315384999830011880850744266458071822004104903631360629834950890071569485707653776247393687726414863926327480508433595962752852318627706897152735844972997533549676573993039682189974350018364501146424764013565876107826885401564422572963715302052288943354993711340006972780394214712426869959553845305459397707052860260399430274830640289265523757094752828760467142278358914257433585849499655898522669729295507867517823326564732294122972144790383161601562066642789089606157149924378956918846536495893099186192367002347776689616199855556788843872142416222739738829266730450483877485905077806493424740471139763604378708151580032769342092619976217017715087701747671080558219095498272933766096985622264872627911154782649511919488441475480266075747952586766480262084451901619329267394314821953503482842532801962734887778828107346844029125031746492536373597939740383911947516892069739971559247109881827509373163084665079403513524358745870974590593689048063843770086535898988775249691701148792600140819198980634027884721055873887361680499307158243582022446376830436749399299718544042152870371940271562267914830224918571581952608101990020939382839064621178635798811538399993267772334109838472546482372328592793128949789788212759534071579724246341648466268287094567512414442339783023824130894555734747301030701444810913241583750949586401887917999000281223147769392977586056221177167176310202378603414093611821522977369929501449860284106372125260515546896578505554901540313006360599912998220698012043535166150636852824727429474977920614364786234050566213310985497227935907870342557179871753277158753220754083114457351818229710565791353886336158731187540875087123667067608308478958491819341800716432194616234304926957540420015373510371773003311373303497843141055148784698117074721105678130747145553498871230979033308994665411594238930534037925388116410027326252344272131859440256032974735343248864164462159001692251504831727444509622837947514209372039452505995172189591994303537380550675597912119936267273552358238595266042137189360766995150983572326892885390468058275774082933861314490167427083606069002734255716162770503448188216032079341557368823884387823400738072870426470011081275320612820337684140795902825613610877116523662788815466439081072344419033486596603853235733469929441511987075264046558929398402578119923985055797236065498017373917225197731393018499645563211315525126184743601984104661327672969247905624829411961551670195563977592302584743269632517110500188313504425358906773876327000735696588180955910743233261099932915154938971126215907538751360630931098855908880852525314076008108995949545037661380999537707883358012267614301438206352005390257688441488968577556562457110739890376320686201968342999702583986549480745926245659799926826738846912281273142746414059855050678231192558102568052920545687320779526360467081431740885216249897353709823578666190203562828579188550304799433067692113305780740079044949122238637357974867803606281973232995854947053794391042421239175250245076028826821560214832641600099426340885049297060211481022615735958698212604187823949055623969067365939750029525444229407075221060010397146133170641947120512807511624936721671088570075494099411799601063106149724640020128356534569387249261836405590232718246989583518728315342426011114473741792729437017013166675880047392374890578690057264821552824650128375787306225106202643075555401841383372533860581850990049596185419037007478850692835368675310070992616465083734707340302400135204947986899872247029892794319091646221688093511080967880547302878553791912200932514822093469173593677385825946872661703740592003205042758285908447023159899533390194980150658535830033448421093739356206045795982702103644141552025959191688490057046581118433688513682146030062873832221471149678613692507364115202021013030753559312811311893220979944612447597614876281305615902112771257235298806513870404465918141387448348850319457316446484365861548224109797162147108242328662175076584984077469219740199231556643325587984867079863384381719449309575170764483526585418670365586754477540981695019636796676406382979809186806312282979000305707996549718042196215585850798895026318463853894366338131333244115681505798751295885651599710690930201914784975561259590359742109914025161521330274638142989212746675996180296756161320299128973570857037963449057277900391441141344242760957532562407010720589018373946235929475821947788185734998330569766676740048141336245826189084492965033493621160567776981923325806409687892418651261351152723286849552430279508035795697517106331266384645365963818815203401133310031847849302310152315041978579806543968214729673375925195606820845705789126180085325156056695452665221100550809638834939658495781594881275987471602628122768962159178299964923284284818834121546850331465201925589380957562074001886243067759222530482240129385760929534030169659743131794592456538030189085321827661980871225260841717225759935721433017286188714793490692733670555795444706273724144680762134872810794968758013488782551602531106255898947054339490099717641193507061012516449060473460951440447270455675336701368133156664268266607264025313811535708534078155099687298418985652823881288062093853005995870223592405701738793127776209218930032622097747221338934851477515455017304503942970095031002369511284174681248137349456783906693049037317305651010029271093011940604884705858249579306911888051035160588311408578037854050886986632302540929392438228703193371194381947787425075453221039166286315673601211434912226651643688035449155307468338241080596646849171099800976367797188134474930471957262588755951423323768327922283110909022109177395585958325089756778354506610811733577513197948521462412370819077767722352761769210714829810581455776927606297296244210317889316545847874866704151700023740188398724715176610604004623840974056948009953509570082501132134999203612663338775762894932873544146910938068168791642560866255525150536431625703011422054350616352296006754213810360182255760432092118712368432559705767332112295172593767530099084005505051909078791145996951539385849310949235365687822226356565687311682501289605661060771961359456665229815851449202439675337439510542641526147833872731063552119365402224939567241357921031290426822201756823243341415082167845887183192626248147736546443644374096037653454320922851089553629876035047648696946046424593505872683886201773958185101301778922109576964243039490563443332887739895277253490215714470959540259846576837096018118088239956105347183966256819478538437708698082120675565921429822172082583747874517928561144303124908707512348816218354333333650291593728448585554081308341928608525038392842977524802637972137838052066480191406174335393273321786842120644475362154934524419858858707462693323345864370379183839621286155279398495258650933755775033186835747792157259071574100493618913374150548535620056203220827710264802576806974057347542345995469538854846198011106276277527969822972060971277169264185184190356552964913055241430386586552072891217115986488022888860814130278282693839437776799735972968180079518514263567764659759257933070085139037001543678178367334950788973722325204525399522828370699279123066866415727406917768336301281255141893874962965804597046978176622189546166175012127907388399090723188591961020950580817688322259110548307837418992006416675404548493416316678449466006447192854715439756169240418885181770079776569747678401790532158682109724965110713579292920582311888344727839204408420259098714004333652413452535388346270056888398861945052127785961675310767240324372301257498448000618534317319687723363743559559303439100980224803639118995955729243944193892000162623537831332642338764721903630416853273802553006961430734026772154078463917636427671224031137571159598382082809954754261968336544355726209787524837596476436378443815083981680811840044086644524053950073525513416410583463039978624134093352008774213639186362172117132011739979151312885361439753918754014099904048103867032383430453988860746093368342136549633633253103783194927666405948497487232662353739979149935628046137087864711208292775372271062358670835076714652397157241774178644226104676781768577282612367886686335381877978872581162026366497775991838427037864261966862926308178284404334032357481504628481597962390987826092993739807599112646605672944387229127617206215868896988836585789829385700227554932209151268334898204427864365837639795253772970828846576468448448283656669213299852155489572857426237243590254204529459571059729295194876468624653610816228245676481738961327804109944516771954404679848822929230726777142925783758069339995893938767991194541620211127295412293708789925257877918965276716575931783456678156755403770921106860871160844202134682288331419184926274761187565637446181452985256714703527129318305853296055575130904566558012610619586282375232064689608482233293228114827060258060154362076918800358120989577280649401283764123015936150507741574332673184574550927938220321561445400914501104228362210460841860878955964536528549815586276373204520823967044363230306898080976432049470061915491377951994424292077107057241413447423709758559792534447057470277473897319571970258698079903293165591011900335472627643380877502901251772071112238921694046146514205915981544952053705165173514891391500789957448993263145645266045857934188536056163635838177850225716411984862880679518593499840320292160653920659332253422390204981580706365134471618033458289731259391890295023393928822256882717136712827039828721942438479775015353916067990580943199129890467714698466105914556545115470453639702578109933707608052844523156627245628262796398329475710496487465951118508428503092535434070327712497308905924281781931185656206655057282194742979263829298029946631168656633014492456190493670951446619386241459230891951375627984971810656572301329043107801000902019244835941289784280182900636180168164457477520530202831998289698458080493483562166411318565261713266563255471413317672267312264461670193662485972941721678112780453683003485421471955089708827927040877440070957596622902736685476926188731203889770806931210748835399238618272003016040631003631547600980230975215438623404418858604100069064508970140828116329198050081241784829182775243047406221934539728079230283230319084598161829444482292948353400044831503806887452329733590724571423708216755273407719528541847210770828855425709540474220662598744688656422713988445348741614033618284428261185059887191919257017069626167433909324861523785363001416154514630717951722289495004631644124376356300238655643382733738069453387173259465390144181118377364792101066513639836715659691369200949364945021471220268899814379549360696612729443641965308650186163388691051934313420756408638355975998072514092450505623446391241252695785233644198083807885988363557650004209030742648052259043072359558799252810418524648222700812491116535385811795604093788521975223267785545278465490801088991614072530067594079240685918747661018740856665589224265814049126558130363789360337205986883962756232189580636685995197066363571884976205848449109337838425216385243391307347155028685299507620006239057781033609081951607703442497172084793204665156205765190763303264184971647486826119510632012968965655074529958932972925522512782583178593760377288843015501702055065111247352033744018215443323686993156243955850392537520149918481318500465677757398756922681368252228063788569789097173407986719971309446823318306273661143493933298717090918797227800813937785461297061454182551181123661684757645108447980978561294964762387965271373332924316143901014618720617069563773570772351988701206931019268952948986704263558255634715667567655281822510874893933265981641279549635598673848832059633390284127976708738525726600813684771641775016037941737281997172633861749963793551277722993492894054808676451953919163654044011479506356025403079831444265989724704569948203898470859279331293194955217347347387061437683275945347304144314328731044094686454598260286046406090762014417702207254438187658839355996219933501843866757215798636538494007732794580867018537619011408825255823341012731863360316690170419134942621074297727514948806442651860892145269085168429321906247988877910573604163823102700719407395232470656976627634729017577809245462613679412671463058626791530363419307758964493550425862078363314627034125315560979633923801415044142909190541316628896505960745562876324801050302823019633630772810436345782177693337698149388028064321344032522408601297219087149933093293873667676629412773087307440664732067557084945844193130440150347462622579643245618733038542504268156554133916113989907826193285757894941463437367382883054337223224782882782013008844317698510859883518340847777349905097528482745627960278744121507148296121950919566420217308280666685727777122389475931188696129373010451246633310137841647436128976124688655992180593048158706634947167691849373806344975621588945369421126366350691451862955451169192732242310043132559002347308714709907026915579786940636601097674553746457805340003707619660977214418463034520272343468244736307048754211440202618906577228613607810256237581299883333675097128482906173813752606074901936488648440382575400989985874442146516525442142199459459830108727021249649476869078522112355055882809191260980546440370175290301659226085389681203917693414388359701839045755237747793386775722813081347918313305110008170246822235734185825403700499329582851582843211709433739072608355848497568469281472426504742234808337460108387079337402443636559418289331571736301941437416993173098903901125095585203044979035419177713703140201490274882401891764382992534320074326319127395075156657632773812343790586503450686644874243502817959209405303676039448360166219392406000275170829288252356644938719687320657493820915703031221122989055342925299136025255064963076404346025271396897981980598059338499204678328603532467353627643868772388305641242424664517324473679794378732848257627557927863187341365089783661667553278127042637262319803607999108713354403813665411947092878352132699755823881529500715793063205184550968173966679642081457114254427570651556567343930929616624382389318753974634144423220680926581922829252938870259914383691845829179254245250747301343987716180947065425834251095977339986589636859173462799284138009188240324041045828697210399023981904177558652194040657544475533690048692940117313895955986968917937672140387319491562158977929096429645872289694109305141506199556127145613434373834556573761609740545192006850768960610564431930889672841867524731759990406740242615934958553226576317653356405905514721759936938073770302815733144317275729165514278371780306731390893973421077829917691465110772825943621735880341646287377544976872945128013718141704550816995204248211767416911854123651421863612951302382086288489697324795270864851028284532660653289363278608805123738456522727666372240780312498401006561611990086180762723228020545973080980439192592899604386817314026017027060321862354859081454576099110931995168043437768220958316724075982391329560564154371984466501696990441385016227591447032854354458874861723113208433706279953755482236072881809036113646355973824236473578454528430858069606951456657236641836404116897777498772540043766260565653375207391942730712301231146804735681253267228376599099961930326542508187358688715985743419579426250307918315165631617242268897570744908387437070513624951286661753477313406528196246895489625416910115087348414011594001456359153827852904691763101077349599817855516435706900442840291736943656222363132487024296691732080402428489681459915681206940226326132794416610151494789966548633322526448606082065845119812602153849596023647073770474712770451950933958604869419523565735562029342299980630185791069105362030511490278111355868164850059272344538553361640041141663932740567843672238582649067056079669633052469203673967994274778999975027485542902189449075895292194556036890970776489795822166213790737418366976349786797131818896804705965713250221785841411690687947665221271744908239133128999345190227225237878148538520821208238296195556343961128039830601166048564177959630303730457427310337721137775315866211420718429292404016115513256810436084551545755410952305962778156794614409462517844035059710958631736961625105855653617203566172276228561574073577770132824747193646528195553827371422087559595732003785645796572642903179458777456807904891367383611361417526066081783057540721817353216911842688273936322793212127771676201931133169602810370978279486827256672684919918930407810361246318993274487062326551184312221174274346412570267765099854676111926045111633605006340389431586051445777264487745109475892129944892607009665297421321933784896790898113998462468813414642824745325205028916507306382692462259825530229250520538743693632873886510383963655398518542523882916801383845384902411899671162970551880591645034195445482099892667918623397511388760850588744802856271103626952127931157441329557354892441811039397016324366516634930378068960352873728965977799938862577472197740235954825016942345596382669675563016294399972656378633940949813087823013023332407998092251906588384372890555304951464931644197726836695506684171908090986293864553440441098213061234726393405806309322581988548292082048496526640705927927661257760644283319714783187842411483836204488231582055653601409104595870512503456403388792233720500207149527571976594383556478654931287966826718374679651828003591420082891809288518692444946406447982491456487408176165780032407377060026791851509762992989265512107672437186330937432916770314798643475386302350449836708215489776425181823444392683346148167634640873162275975345327878313358005131274902117678888014147855953936072178760689767329274495405620618750481152475886153557717437353864886559771412658313248090367868165929003001661466462187155250731269795832459441689836684143466323753546020933452725185845700951693405751424237709381196007809040179889654286105923296572594971880661798801126175932016562409463584999745292973473260574987159939458897438174879358448002434218845660218113527175779834454835138681675602592859501763855284395274964839969110813292744199936647779878241227799438565176536362940154544506767138316678031544721201236096359082889906108745522514344103536637262195827262507569276601666010699150330012357912850571449549107142006416137860123076682431425050797024711735198173084840211821972714774706997889930369403954353027139294756732649581379798316850217352949628666286991965438886702259251051449277626525977816560194449930208743246048811226512767990297321689231768141254652877854679018814403254735063602049443055992440522250574489596267541632516025771764294731994032349579973745884675462459415446110410678976749879385531945036026761548117921256247551521292966193539958359466563909961315566762083846945235123890677093971199126529833968244220278296960210091149948061340186772870403610140063883835326402530183364536991594855332284221804140515840123330038368780847668978467981683714935217587141638348433091418710481621731601398384740731575621845158880375908819427115118260836378335276163503501723648094634496741971070684722693977357912469765531868789313426174443513127110260102868000019075527436066225832820595222504222223711569057766043297427831656480646470714650424060563783903268747825978556379470419369034275218807432869674890224976462783671198494580920575281965764508339279594423465664419353373416599793854630714093075852771867225444220210615185427460537075379337920797058684247003808701021190993810690785938195654802296200684357813391658955501083242586478521693804702274024807627412890468386686796778976910690553661854291381966953892585664936467679744085536768848198270827970632414800536524697797227773144002788286112180868218985926614702328076080553936641592798491128840458634137719351641582557250252392266218219144311432242471901941817697175044646378902324823034344616254059690327915779833708613214561519424914758606102034912750984456691188171555605332150867799633170437865825022495246010695651115518247931539595536945500476502182411365385163499985258937382099586626186291241374090120263049781603874943460967252036503445374494638201165754576740326079857594191139538938898452397336110500764347529852198806789078958465909256680372887627970299202790421699213052910435225091533007658433850096992536557871105939202952036456682346648341001539828465949768830299924991320128530338464030754158393623776210976540101703436009833895720622659118832167505410387919324808815798688622208087184270984815384863608735794919530900345008131140920776721923277356508919842494535936141756990729887729980720099084488313222648781811981325058821397266721717047104335896389112986856597789127059626854210494372445687997196145928525002836099826809947233034241698454027400202789842062215273003624163194846391849242802560981942444908839214984856924563871206305022257465699605814571829069411256756360223163316430983185581403327579308480238390755374227055910073402251574508314866043452810527433077297808505498255964289076130363672917907806228481492655930547107492963910065744047017043247200840592951649739492535113605046482550878707450360886129784752276190751462140730865550479179391565163960993508478872053010848205504976940432171068761853801945333850469460913010035906376557095288313305481872845541849525992465861809059252776926552552997798754261074623653350429239680447750838004097563350184768956558304865078797054515770459802179434658132903110847173568772547316208158995486867296918580402125617564462661839452192671689369672130326676519622930086904834465578004536837245485363428748871394077646263710706073467849778761910608473212355689420058534959132021300932967123158847695552028466898020464411465074562768521582039383403148143371208577959385451963039334093735223471748433308518948148906582864339479534131124323230984077027921341156269459755846109769440221921654572513686091664840174174667662400509133488694497989213203943422810571934739499184282855504696729383698749870868613277811324381233308393100345086164167874009405769600482480830373827548214608058358416530629434381849062253453210225472048612536223378863355792264607363146606994785007753306174167781026294771683752773148279506957887514711990071524365124261658822121356990051159692304525752380897624062948489781551480690449734519447231375927201906142748231511435298489177425730178297398797176420981895975633237932621290072030993489407851927575233103482489128163996766929126527272354359949489310027718575802897112141705980163123075830449542527438046212175611228782258206485452913452073258034221531023037316193598142404649332065082655104980052935874682511962963171977067952881941626097903935786264254556808329976729534218470123891390832134808934357503734005479396129861310187592117695979644658351880006470088782897768183997029072255591704014726230400946808585429243412398064653114401600012515153029802783507429178701823555207527083145043609207867867669287602408140613211569831427818984344915084833252312828952175733075134166853963022699728625200827423762636743155703456062164433799458153562592031073262867941024796842587487000745282539203207181835505548167324347674411202671988818332171204889202910289806423703209035861720162436942910050080870708026039702969707758440487238548246278956702286522183759837719447489248966110932485495931014127320462597524126382854670744977392862270938730429113168922813239357200955425795902321771810660042079536159726297292073710006469078787036896482277842568532913015203396041369282329558758400532634397030201966013997218170631972062669177456736266889356516426091849573425640415023847753204752992649218708981843974843440722645951596280582470521349512485658561279332969637365660301247623054180374226321096173077235632925030626929772704373047790524517648771970237504823372453606840934847843284206451863597660521137815224485442298200568203865855002429921827473051909873298778004636801694002176191476003180041347221307063487523310739647531214441601024825728373438644240479294888560977806583043845269632897329291476392938453180564771594987346570476000299711648410663537278926537966699518275457912071530626351650734456886588480045428445929975440216367513923392790392518545951681428125484359818544969071250980391381169943148170309811863782416914261340586374692434833209273551537361385240655690065658597852449463225563418042213493936660774454759133111421229185250508176109909902293008840923835692139078585446264670090406126531224578662539467983556356707325777764236282929306571442769429024646820208639376127950961734648548775173167368562792749183364195652204571694338497888259229088308343633725721635253621637216373088469130962942777541699542609281644336224744212628756622172370583263851622901072757270766640529186579589543052672216153794968383518858341121540068082796617731056871205403240256092623296776542874264151628966567700847899906504410761458586561966823563283804266758197793753597069521863190613618108645857765024838807581792595458220725885770624098855536195511065281472102042792693708462434175898990101042371015356194807834728424460781369747185770296776799417961297622606448246292509465272195706036848751212000060273381960343370501817069621328185274011359852313489710325922165080991826004593136629177618880240080231873796175837661834374657952300057878805066159382478225768456959958759882283471206567574459322284710494993861572850963963719238987230301169431499566819803730258747887683820913513071143886019218021916556014195131269777958525521632254880165800982035768124260380941514339574643499042780299199387691219727907888877734258188143062901674028120792319099585167391021886198570724234600837738416235766700985776308657103115065773914553964084173209405270550408140900116743339548751962371525012950529629626419171233068992114141482587305301835993063641457844010871283655130899660216720043039767033772589334216716614594177992733746138958469491433879801498328238744839914344261532831360211324916488983908324843802056840436595881192180764251680513892944359629892807127050201294395528616772432877613456822408213072520147627858168394979397480581899148005117415595838757837250415594095237985666836240957759955308745651925764634862102110517568365477431441255843464577618596625538856683699507518939214421365365467125889675723416489207591549025343352529670699257438341467757853954007762625263569207600160827718088108713239983154055260423581994544482744926929597407714599360924469444433825982370037790377983147478300221249038672843782436400440273981298527981456331978667588165557924288987158466333417023982263810357215028081039700203206081181874476806641812011200820129356940895807621801754543860409888313141428863720860187936776122505612550442602334529269696693774889666269905665586039083381962584789233124913888631718311047917960170827835731056448615434148440319331796021668598116445253984617580817107004261094498072797264060101483970198582964668115287751508253073589845647431415852167657954744410108892525227377192233976332973570424962814118439951488759841743537879109634378476537921849255510718423026674552258803450722929675761264082661147841001088576615703025689044708172423401905064152430359434455038673530636154565726852529609086305276435023174525124007478019807161270399239963851532559156757859805154943650103674216050902805193280661135253246665141621880773265228601705579095523844976000364429532073662024107075946411995131847225181747143340455943962367277564750604712408718706818557508045330182912752769700721956798167921626524117252719070647222267614044028877223878514631180745979482205940495488560858108720606469296980282172507623439792133092353045761823976598667044690145219062131914028157547030999787109415568858273336471824969310489618067461320719621303467054645333428184006936602690661955595240688342825961002417164120499922096116774430696316990425321971916058254218638958736484931259367009185198011145888682359317613013247675616954072745883921212566241276498723798334711210829580570560981393114602264899070886069462230042143352529256229062402342871922800962465007197309990297531858545219119953693996713387798239406311235280409503362444285099884186791318100702767261055897573132931333566239740423208831676779255772478731379410175871475997812476654616354718336267701935779250215361726763521279965583797210537937644077523443103188403974683085183940928748143471815683066330412825472418811431767932345042722680686192060932339230911406336743368891209230249654492770530773956061123917442457516196629377877828247798001127511953441563545725172076849662799247995752250877512208152179630242643602709598883083018639966002963849215583741078631103749690173886148616428137077508998875620848509594985159223993589525778865173763737769119234856382654652556443311774812623865256665222104270717838729815282125532267704847096674637785186619284707222535985534735189642670755979389825152985852101248860354758559315923141121479753636725491149971410317684745501942080846052928650301023941110671909090285087452104974161819637778547548201282855714578790757570152873874931219115273928002107718834274261601727321252500948188861362379365913273319910921945351669338203815397187857296376685452050721361001684692987486551634863778954157998494781948667314214543277016519547468329070210899773809527293102015529056849696805305593998170588689118731049373794218905942452933276284018084540517623857759581538661866330260024898796255012278320828098086823841623624506093992307563476525897764899395553879588559468058571627425649832264907081419271506732906659937459462497784660607516625556404343348302962074699883041512220951880447176893767838461234173827143452242077541318674705867651821554437631183681595907209554889770137415190731737301865574542592900334188555200055384793305654385486167957829514902256349300507377266904157822169671775198926778663776876386594471781640521954704024761286506319049763683064456327984793252041357074769318361197022017574673600566606548887099702232599564566305888440426551470580192850997618230560230476523366096105460915935512575988044952610010571410236960604495824734135257684563706486881502651968576723523325588015944150663015073899889164754485209882626717095407312752070337735874445630257854004259096370801645494270325846656380715026967660285922000523751826657467257382061683486474367296891649830548813067390552605247609748168761650468479863626992104959585896550192077469824909820570266601251209190357791569324276882890543503731055849477751157283568661619696778946695013138214333337186696037239878274208432601536904930892042396831645416930193995927619474484750651118116206318747030768904731385222367745548715176818701493706605960499311332838590396550240024253537393870888777089861988324351808579935274105722436922305382696092319372762112476964253698536902287148112595390992765592584773263533640903287244785398798333228581976930726241903386129412795979018806360960980635851884411431493858842738711919966319373578924282909068318683480147538649882792571644065053413436332203171807489148897164907701745238233126178418235971071717743746093622048737513356934665077603366258388764712421022019415099866572845583929304005512831694873143460034312032096981232077531365765174704591415221219253847207745175899793514642314247361014609393951195528396258717403929585367827453016589747624885051943985141760937718255360142047964083801718469465017386444909332567606662815421666350501950160192709826653388283371792764750305671821419361978163418302190976566077531045520117973867293640759768256881343408526156730691923839765597799078039850850972118480799251740484640361083656903825818082319428638615608276797969997247590330223812208516495007369912414548438434645327170034619202056492727045286800742003424762332753283485356694995732031691514872372785912805150409181293714028403209256323185959682710679995875361662355562214761655238419860518481650721118624126942017621634917315433964088414340671863333491602692298861454173625645619173235265537023684285247197567581381518283344378491879099110700582676934319152272995965642674947370866175394261702491328761351378584448142888308097395568670029133223916583957431564632875702427113933058989992983646826251552433331203515762419875366461304840202423040016647422919205658437904729540781487927034611510502872141923078695617316635087909858250163759270095923090891957913229718380810245501606155313961099080691190628532142601541948466805323680867821813553718640306330340118107266762273698880952719381270312941682870414376927805699392156308307110450209406534187201586005581729087923133131001484202540255369181669701092269752975359363747784149667646497438202704807558754357724526858316590328610202956659991541382662531294019689156013210304043020427210286350050964894873941165895925602241856029363783786620540268907383917511803876688928840776054225189499864942349400153722642960493643186128539803535311072017751456204641130263114624712061112628295932235380605836781636599996336453246877830998890710158279275640561912475004073882250173590390717608763193106644440597363547647190787407233104545967980217775012533752424525234231421125174010054503166450370485408835324946151515006949654809235856340774451972601676747829550910425664913783923326167426812101348443254188904300990651049327786598223722015911955541945801921542629640770635440126876714475802955175566156527091183788423245302892155908989310638988640150531859827144957202331635904246110122063250207499756929276193165086538710532263944810728821575005232356506529297873177844034711003364787000074395823089039921101545718634571988358946614004112011925004678262003131550744571549784935531033771757904795888813462084900747336756506195600579451982021691499452673786323065893313123034136116310333917308495093864391005942348969194613363070222391620635273284257699194443693356660676855845673147660434482286192233424963834329604753489335292959795572350829944096132257074696681913929621963789538303655741004968993329603471146249742074622462621415828851656108972600480843643667701245844495287141854864545990943113228726698392986466092662971271575017484725347575817752754011135139710525794467627839209296065477721007427153669775240079370291011659371147224106475468181791735820206239558389052423153911368611487546914235387430732801375665003339971328158589301762703358882321186831740255763423529321263136032259954842929781311291583163692729484922569761497878758859557366370289376066059718716861872704006630703118331267266687452580251731522535967817049278192953673156319596342467870181322994077305593898317963665335932741217453453612197735856772982922241402115718056663668203963467968803145345664741963775044931433778180627799954653200737132656428956116229013736156475166699232078448924834520634642687871039913680871631182400208101071417322739333772313108685782081138705850385458519103165139054712167322407154055101743551646546508767936960417513000835725001332383511835195426097738997543512284297505380236501952276293643513845955750431000645675823931817639900808314263005813885040965728064404089737769365891336198034649863457375231796013730183425619608535981619640990686843223564086751222114788659219710225026251025433442474930360493257541093539027509569414626717985935523846301701865968352080858437127688938313056749175147878901800257406727693869942481819274599189772407470087890577595460764521008932419630529198591005624150105914963800527111894981862527197034559910758292987435526799317888322688135249822191026953919047684963256558662043301145469696507122052086340084842412695006287042268610793964618885271372040686995493642116782061882682335629326840871343270911429860191636451944659776325472666516891577548520228601824175149136730923673617830970502030430986510775945959631643905751228182879910450168720204739053962300974695212881437623198690485488416868190578802904103949619858299585466009274247169063352355993134763369275394954664163245581888246924725719504481490932324668069708176065892077552843155622484963579263431866018235408356159414878711123323504048504682733670157650681754548284761962993926621816287701252092198997880509531698230747796801404392675896067123285074968585189416096148463490085909993770407219423223854186750140064940452834602466725363855646871263240036481733761413588213097319389198235618457837508567830972523396258130423074183229737511087183907884579060627363717321462312311189662919226027715276062099088198688261784520794153946093951837794893478493737156526354907750564953096593568040769475642520806065996496506825975127548095848238220225528421816844493177479957620871808156928841763917070671812430234700902627398496835404097549408232720600272334946533393932591158901554596886516076059757916198111787118422768257285137289741564418505018432753699788681095799793926536039458122641344369555216936122062684664167507758370673769313187506104717502456986909722983065015874897479704816256476149299032862069263876649323157760764732303571807370484202374466134843071951537975266190153041290874452084486237240913411928975724995797242656291703156834492065230850880779815005975787365751108048546302562449277502826145433786705474252000609388672747560763408695064019858405161029001461199782709846907695096734710240753828203041432417793268515524275637737580791535308837646902656038147874460171479786266475078407457608181266764630759860841223874909234414132336469733924776150244357545091836304063614126342444161544103057934625713978665803752754334627047225035897789079812188956909033326190730544339175397002556090834082317420338999880535450312246323822843517480896216650554394812402365112583441486649208427160703116358027468087312280691391093333055300372576058391534738949849861186755559372824142394407581109241904164580948294585607782778201170350206844232386446156445603372896545807245081963809462501646084280268323794829029781140183720455257012052522631366797689610897880304600335540167359360505189694295567507673260147212003270482791945147491919263484133093838615042956706087999400024931560047068846209757348252017021848338573902828076110914913563562376955178856984719855578085979954666071399800047680030027990902643510651363892992914570963158931318838514730337836489879426299041798066938900957651325661004797436066182226925729430286553628209447375183847262336479901579857974371359131386165339586498584301059678857080454004837783024107794554102675531402966684075113247229636271008101369774635088583406119751567111615076513589297797143997858885022891822593338001143397118703146367764938435557582493733228675014389151746283634872555988662520214399139478986881557394035042284435893338218632944900195829883420105097795766429309494193613173188969211953460627573609415577298135443663222302253831079609225349834845378057983142143514394107622659479171952132314252221946532473241324223682047937297042443518585939223890655864995949925034595878219098784488319092899806074374667380652363442219753371134177842464407135412836139299301952844391363516649655548263058431484978057847703012952096891898610156000949796519082332428471605708531893877196213290003561465062339210978303012688896440144504684457453966391085241843518616405365979999107068804327311848382004221612678191205272474124970769456549788923531653400228815747778892887302710608743599243319497223898688325708505148862363815355680850261243833331140641284390872891541346464383907609759109696828152587547100309977923394646745934498628191408812729325327869294628411853412609647728718312128144138198723998679843701263735785199763425214915320052168034642006641030239475575607634504427347408608027911897451460109949157815834124881246115922182052304946171074225016327049427226479155522829799875059333080965376153586745864062786091350547494699382979489040418910820399004695472015280752209295007579516170635086859834667762241840698717313938136664600646759103835781227610432918683803703999202752188874699405495779483156920952007531005865882472268692234411574489992657112500333154434740448105810612292721597225801438877204391268645866546804979601316497845310367128898084741834994554303053609820291833172624753094236576261391269204176398299767774902154479679328769967125185383447833264696397478600726914258680922688247135634773186288124115188205176245164091703347026904030832928990113434720755730446253534761843483854690956624209742813591854555165877102669780722939495701064514187320032239214646242625020053947597792877442517279001685738454189590165081786618020063641892082684544372602487502150535083630944238697825234510553263726285484583676694774412052532251403337974814691070562636220471348027044364729678003658280868434386784047578595388153683474495271452807184958387623332991292728609368029852825851866047424840113869599109883167828858524744169023976871669428163160873338073420461534573464821660672878999142573840119748635689261958230309868464342703842652136777629863376128462281572458395096031553678182619906246047415180396084441817813418657045940906638922479575517068526248759561019266777087034672591192223175446598535069099139290171333189515906149162446733187116787422834464797890066044448841421868762089161297087456032874023902778976424642486717060184763518982215257884769899617946252754701480076457022348836115801702921429140188777228133393444277194429479540614974879944820018593438961536052562732668710473662194629099198764960920019768268847752518724065344925710191620737989582987734087018153811874620986862572991449782467211916841470903293936205944083569167301482434859231529755560935326119236664860970469777110537667276196302121578364013769261240357998276800647167399901377816660861399313680567747099307921747929311739634645694550697713054299762579364213674856520373606538370627659740562132774857877141167373672188062636548425975714233814607444807499122195707253231811168735404879871129325500683455085587158835178780133240416645853225577947682542125172088079291793638050301246104096240203709621508050546305581651996582213106666643222451580985816593594262400547606638329528357256960022081600949935978827882472323241549317760705049287069638342394995966077349296344862835757639603471503227074602748979935968970260614780849983999924629810233152105956061457930329417485175760212807564254566038081522599411535499280581437442593038874618447655537574322984920536345189804858761584555544963708197806102694769128681835988511005506485092290851597600585653890552826248679852991629146730479824459412804059014924388872193259856749129632554904275871739307130951100063382972592994195829672746004397267423078895800467056444193426417226866658124989523430421798445233967654469390837803634009293233738903144390006915145159314859785704780840800707601063353098833518112510160274141618562024401961200050156254152699153249188748899298913351043223530359213894918574072233812669256449111451870958066560364068120159055207788366192678862317078638839401952540880170909501850982567718899861781922321926495085124828335185206693152593867205207387456908548220863835570106661123991223664861305859893822960657590922961793212124015995974508168327614186522690775126523064917423879114514962939967533084921083815403683668443435366172970906306066529768252216152286123781217845224610600654755830718724253797573185451021236478300706657865767168200984080293235799120450737451132132031906819354362270967058315027499530202819737565919651945892025373875867237881967319058800551168875265047762023684252820667578206167766895516985795754832836494938513210176555620721984501595359533500599781792928584286305958575175046560540283659438666043591519446000045223552427346238770477628062177256517383120631285365518861498744515147964378200219857435294689444686568111365808819269029440811551231990296639081456569106433584371087448370221743909373679601451380601657325417048893393310485510366969858342130532232957206418535211003389113105003409125613308216661994234565854840133885763338688401492539724770908029781746941633815859860014325979361050553313661704065313195555809766730054596486440652144764385372047562851272299540671942985024691826858318132800064932251718047135085674973034561244547954359159584019394957413367767457942217803952776611872230710406636056937381317702630301332738688845643587021393283509757924009426163727837900650468070815656989250743122385250855844414094380566487195638766299467558170559176787990873639164587624440268603529559331736105124260342093249445938808967851651053982831138868620007838324011483099498483804255246991588190923552247306092276776612722037683319388548410841381257978778424552309084265925256851358397142871820045103648268661514589217764838131282210357612318662787969691457114547512055044935138619759566293816062984774122582552339677761007069262268004280581390966705804837907804814414072397819183766211107775827604809214383631336857915774850665848009864823586771894031816585555171721550750971701558858450494717456093870487595184929495716091005887385733106833379957394838169426345111781909933497940296212123843270791041179081872520123431123938087436787447839505530808179303594123591283606394000651499346566054498032694799247084091785851086570936212979528689862728434189214794261802867291963112788874543838901374761620627646556311476842381835331736779710490076245344565140899540005538997347189981894156382483271260825367120303661910060145560936461335011261339358489495834330006464237541783495284485489163829480396569166096780530602462540410613094142587265246109206727960428435146105300314427220038558402509676261834169446492807088413106349633182837140522356207887860045878630844670428376835151175962768866105726091767054036186522451490435208342179346060389836816702670806595858198093481258370344697240496147425454967950358324391917957685606950591289165452410554207341248891042267958031074089281722718551954318961161685025154551446164162007906932855267192749072054534081916998517283143231520385436283232748756960130958458081779986144315400248089428336313945594304448604623881252309642496815095518862540393452950601875021939013646918431578400168179760537189169566945003956517627496373471733956705287324383646803899270781562137223381410876244579788608612772747224306693290740978787181788941344061589731374019942480870057964017917534140083630085651157494544139174783204216712578837962465480745583542133587096423247758924930171957188578514724482962200982491179800179688410815521089521483192632350860230661947540215580075214082394697299763397568398448807946047552521908824115549987259439169971922351712541861204304020824707470981193404658329838259273714208706942035223584457748031919120298473227228509814975590625256360734145559342625790394095000180057007719436589458459699277908179391594743453040327421426460572182781080301411460917422952783738543770223899478108490986629296238450720199960632064513809206548277396067821588467698026164431572953986237688001485031043466480833645426974867651173583657915837336716069591067015675965958616220188480721426863867347184585656404860055833860997188903311649408139394531211189407845235555099473597684303373636790820613353491945231850381454714101506392611484406976212787365843610485025664335527118215760069271236418780367424039886347485537831716767212647820083251806816583591744530945717418897372476541798815839443430406276081777829718766235774860035055760793723400146761056361717950000393128320712407598566994394227247737391999066616927673298462957492984943337035730816656245846602545971783203963348306253204054894702034370828872946036837659611022210204732444953216850342409820509445652491599584439232747938196602098561440224545433372668248321588679183513278477262881171999152242364989263227214866775735394488834457527433639651733946675601146674292933131802651263728298446732180107991572226244767556294021119341797685823638256737806869487664567830574161121638296579397964284261360162094530483497372692410948213309300415846253768580927492911924233783698576667314282322912162608908681850868070176726057792263309723565332523348802987327947138861414617341633883200996453347572227840958147401321316252709645334205364137510279475468801015419396434730696853956663086859451033394170427326047896792252758614405134537943220526227800722245135989129879021860648745071853158296678070629966980268615149552758663310592494134144222461196423773772008334211105321448003910224559208312770210715791881007394788406870862406798165508573297826806834557452973977404381904448675896305113481785387657843832590855816343897200079891825694825211062155777795449223486404286067539950393162462166303843900321082488502963150073363939183476857865459550118578235403551888785308529608191424504364250164966574986380499863634594384077639043663825336627777402133469518833724153879649904240932557896305133012936563020670918235816273242240482744725816863761799779301390614352372489354667497392935416587918472603922316513573514440900447115918186399834968377053741543652876117633192938538207980726726544401938704854897711597031526422588303753886135769448431005431895850495081830994752183949514135237681266779758643711012160697947860551934113146875234623182196769619488879720313143567082093945056359272363138994540780175786959933381120360287595318404690965372805718527759995641609654825496111035850932904461942808377041563785286497553040302717492784530911752096461211958749001622370852032571490993029862829092775621134811934508222902324010378475978367184112656301105755232632869985303429141672515754436815683564784107185210387652540216011373876762489284983911789573145513339182473010512501956251839754499546743596906806583407277953221221722847071320655242123179992596931743681462160627741268798762337699862054540184453746254091656697359324602603891144505856001071893778547588754227208497046670245877742039878641541234126130566538008300588398320940142012615895112575723369670673004826768499069224803294231173673340152024629957331368186307758286938663611627254692223917563206623914426047232952939621346139429185966851294651725704952295315745708343719790062061992415674477347833432371097054775551427776313373879934997974500412084773672011294011760982190724870682288273479102859664642241483420318741305258241522999641297174663249513866591563409178053176996256426137096163109947601954063261943904708749304627206066793988130444407412670527199391482703115926489968524978872963805669080653098717018842430090980818686663402782643416288608808394109914066594736038271396604642642507698658213793062494800148710042309435011574614026867722183379397184749874396617500273742278782404224272916865235490066575313747303854521487404802794244156052810114376496815697871704252019485798180811669477929185551828007665224886841297044294486222350246181730483893790470043385631542255859410206385288674122023058534822434336656620474915505227185984415126358859129781363198914856590103680958142875753035002973408744326409434541118135436272757864332115768433532927271801686471534387758689068248086402469778738802907058321938606454187420297169902781883592155108886373774593636433182753649047342050045206426415970014286169146705544044348895681861109056247229093630807596339538747965152877884605095888354741212177698076096661385647900030477118613981324291028740940078949214660642032995216482349071342384795439240834041466329498171099949838826993637325304226088504917741053112600321733483977322551277479993894268850548423990448544524708673658972729386339643561158552206838605827525681932025179959584386191364749362510907811159837458333888914139361732644931041254777466970124643295785603565027588091127027591591251928628702155132248431646454590429383279060290378945456396126685318881944720170863364784059956490826146992881901795426823188113795224217774843524617336610352311770998311962684948066201191276361361309798417653199910606627699472089599337784810804454094803498246103268008447291482049502866069701366581576643717423843626851578286122949327457493457297087255172029649079508252796273637899941597692223015820099617982645323833014701218665434865503776724525422867870014549888480557205841888210493979409285114665318780284637086207748937917804448839461922562649500370149225954725239685840945692824608706350791707691942430960173968559789832832936625131511427365611509632813430733996384291167339278440048108996484956266573910958163326352959743227593244941537079768145171130931879516655904371940133355735992201403409531537042189075030063692996973104078750950637249640134297483846018040329523058702274398063130150382705413208870247664937078278800722384333515076509323350733595055546257750458831963732670826277740907750793604910860725934188844473680053298726953598734307944865023973508610197874668262770103074465573875840057073229074908262942989764054470857078766915947124836530150498084828141679003105775775578679299036576972546742167632915553271436517644342584266203965022538293000520510145135009464346973969568032093373290526564526184885375016775152090945576291070167224838267048289310716742385871038792798211329238206621101146719402914432728664748197565239696802552775237435241030892849099298416103163481631821412733808217477941031939321487394047719601073873479242317938358110265055275235966385934241386277301982630316418142730067551673727767404686020917281333635725249901176381405444589729788666976240183598720661685029286921171223591554032057386084727948155771906168245943601410417160532861469424388797558190416869433107853518277334841817375779127852119854757382308804762001162841921000137848275773586965867768308356022241902736405096810244556809994570285095105607981969102742708084994144807755687953473748710012432751253084175362183113655837048659044410673689240857801372242128428395983237814603094651186999491047873640764857745287712735610001760076771681810182860059872636026395307310644350279518732100729946166559117378492061391992530744997261962963054106161136497094553891312666850536245054303066790595673620505305794472804016784103750860079342194312327511803626962812674022289927698497506603566695837487450930978817368787723589685768847868143829950883607026315897164170910649994646897213908355994303796745898093204805374684924562057637127071417698641315859265610044724940165113217964025561691185415666727882284292483665123224571532092510834719702327678875291159177528459674020161022875239588906642009075715433435352720033648683160914430806602005481283825606330919478762951617881566428344921815176812228283758505248315734438310220276616929878835519433589669757963812299715001948126308512434530556186376744192157362503279871478107423346016942238484905786842638054677610124057981578236105384144095060701256518474079378717594263123999164397208388034254159392156697991596903327126526539097584063878116471774729196783384086067635041522272674771063086923360397165949380457231477765977217280989583859510674997727617497763155640373056972907956932225154210877456357179562192173012792678160619119450632731913772288568287573270094952192722869187418473886469723121560755665888266205048535452372606359818965422056937795817074370618164320611609466086346966339068388974914151202376146513440269864028991571201728908679845277552886526723451117008725824891913449936849900610529919158477349124576544309579647847038249249395844181642059905361101463349503853456727752568802340702733256128530030598720839008279587707027198752078333669932473340239746600319862348139582603051081702084451314939074887312886571078717556233122145181477564514574101763379765828846541232783562339324919176205537808180143922874149428073018595172097481258317387704393356639900192225950984046125794970125047183706419353112194973875617995837661406870187996789967339375780292692187691570072725425831452709401877871117752112274763125951819311581357385888596892427619074271649824594072316084469386200048998678951390682870979335376895221835768284920396305551889203517584611369467073258900263288353249431796482365572300930489657598749915375315931501117156642950835842617942395581421616173186306630238853319446849581994845961855741703849857532781414324660998040565678080540137205108199041196494452508963032162268565145721940807347423511901445617065327881616423000972775266178702055308011870295319528524175989282377860486900842414602081287848735017583062473411956988165644713346051655918446758683240953979502689540006111696048554301021392073434331094639927141764100290226283337135112074273030268062625759791872804281464720386621225499712733165239592169577160917778381336990827214655312826425829041195519520698091362329307051877328240491283901649934328128212665215270173812325944993789938172125506084964097453716626007856609218057241556073090555401448933209639927937567924859793358135402234756473570379592577046943918271503071722264594694503815036208199968893884984999641820480489016884628171244881245138620634184649560324717748453398308756474096033252842147802967307179197220376002961660251403032860573010433165819096563568426757112626844007618029584766709462763357443907894034906804479739777332253426685139163281443900324674021037468538029532459088697346078822873062094952689409432991579589650943005752929564155647102923271772420590296147475902630081711574787403037539835703775669196733545808355926581135396656599953610921531751951994690253023356039176612679458144482006038509237165863001819513642034806984801450777525143100475857285748728429761508641318576586273672045831488925284996680283311408732538695073127939753064119904774884824040910245089899476008178820504092944567752842146507181988710428866307129624720918834253463227278370328190904841696285796658540891394735079537191962956107731198503827350834173632317655036461358410037202663337061992762410769761749717952920603066064293733533292824679058622532720363115184636901058417189289731976930081097127495193127650582135605197811901345379738691442964185025839408237059468380000795447356438830827381637664413486171586977082199687050751375634715918593145884243139402346195757630138215677129314412231699453775285326430324173496219833108853615551451922586621846220997367615018621341103538187184388697179282249208426418327371748025873345755114302586245160747344620780425633077961682233839874852615682432697498425500802602714506248890206027183570953739223065484362723481773873525979410703876873431440849177667035957184790147071966066822168839413854124535783997419324323027728810491193071304533364992869569464870415392417005739201033176666056415032943490875853344835023010260442631191039093498976192725053034413350447471286667615343387127661633928346696203932226745218909989639401458662706240921913922568500204619962491838854288964905220670186733496487355785959589333292215409320270256027268989302249801894644223720610991208435177931394628162299477842964143658825195455064721300465085403352625379814381089995067959199067248195248510099836422734553791162580858629776974854085143285894930220732034689620019538816508302899440780593294308050653726320526274549515943245921520230345431903691613650064719725325681117503422352525581277718722438019959503790598123399017841883439553193652080368024921511770700328016468697062032484212479246598175979823858307439977373066101669921778744888751384431881624002170136048440197991057272840013249108732762999823978949137740206461857462044503679493562589610361477393066107957827085947068961736923452723399693761319377698312989165806908156106871549361181381231927116113112271312237978910287501794015074035695934408702332917203802727752773611314463561781144732583557502537478980387994104545775629201916053958613477634873660889469229659107568503237481623443345848034464756654026603238891672759650288768638063813709985004551996488937873918125923287728709845096238101515869894955868951296682507951339554301568523190892494252997079794984047058421407226587397214691167630617481451863167138269415224223279967719797982770810840536292790862627725841014625717548239559075944101952115308722129283714523034236306377956951891807369348584874262995533070552047050226428721434601570708037390881024439219414722544609883557407467624987787485526303345734362283006624744027903220463811400291893250287540266374648876881391349043203473398060831098279923072685413209747345952642273130457477477929952979534890376142322650795517197467402155867422682167017074536842438703801985644920553856042039630206187043990048300431404495448300755986359968270636176549532859077887741569855738259974122481148294849773813067661649648079415543104410313882375834848311785019348924988830335735782392182120459977133063829454449208216086135513551898935292318027226803880393498241665184869422752144437270297851642737960338140664072275697656634206193776025327860236528048116046767784916503581329510446809028872193344621736190206604295190027682419658358640434326241885902508291614782198605803244269608303162683267151239914583483072990282895610077377647599365724605104284095599692166321240905998200499151776410817243736468166224935053024554377974386943879710791621247696654159298137754063057909161154282868223015750916706638175969765291142433768709700745615276545275717663351802745253479635955938831165854706209286579522558524479277330594029641249042031623880833341139039479224986014829736874160853635494879308026157392694158889436293822922760792365624237598733069634765528380313201933209102149478653828173355639114630994968151507095001114210340069560672218332559634267007561158088069923851542269822736682020798322426481403047290581978589349307381413241662846752800616334663749202360128789959265306274071616093624558027745655444124280268867236947677316683589712721654183066188446509648253334445330382089643839547329220601855128653358104971915304497713302520847566174543990425398250163562441295759776462329958877780234672191509594969648942468328345108898566004948488803274206504507352810832404544199433634239254731057505587577965459464359448560991906524398327445257140081034087238742507239674141063751918083757546417503080818889220176830834704694361836411499739971111591973773364670626868901098079503458308984666217653983608704444158183864057577805683466599393348067850086477461999886180319187053078749001231221556531048147867322076506796401569753485322610456649015999761420360527467798963719648326354778573938412301106871427656688236743265129186900003516289747550375232497053549328355072737973649883733074778710555738571455522849166157432842019355226411310438800953553768734121607944260968416819493280782362846955389617595081179855568895864537651536837394256229634637017462934633962889103714601378365334949713750213024328902253473771206543396698338348955064614353225237225962843966579130395638854086086533129333975686196729834684307236396181541011582648599491178359772833799479778640214941198311442749032275019603976623450273940923788944968161053421437705743955512193980905175389711092127976430906351763001445388349982882745805524410872564853725810952021777286005723077986504558093731925662523387271760656172527806903372202648498789162251184769151728815220688223734134715554524664701663126948464974774129664371690137209740083523205749808088824669299417601113210649688538339901206486192897621590255204794472561576204624479605884407448729384284006210478807466361225345777256226837535858175475316289594083247809559727460021761554130216441566982526804145445935772797749864139796344620520450665204393901446523031098701901795159977162312868165814052427288488752096960123399715780211888830964865240495508537031396423977131800892591939382643280534164860323800624156730592722095843943027114813346093177912064128298561513591417203192837662020932841935692262885866597509205489737082323856792114128876697431678354828872505193429160581462425741939746913289629790495005656592255915174035327573494581562558147272680731039432345800267983269599999095201714051433071821785261498397704398638926013694671723239484114035178425961466769159529643577321880560134389841800785280902854124724544931781281409302759987604763754937358685192457135103071691455074560227517169143703256372396382356618632980838917345495395515486236400423398724236297948201031932480067191397298304546123760334460368922426222892016397311468601075865825179871939624841610217932931378806073261549356109365174842118707608561128268627420532111355270575807814371170634458665469180248649834974855851097963878629980696084485668276464158773431659745692099929247369199115383761512840641034898357558708042244682884170789642071017001393175314463470392802657885866878215968199284000969364845485221528185786469029800750338128383378857854764987716083237204388184459589808393349564040486667239769936119378069358737861210121329974179901735711952442544337882758515114944849692853608711764192220937554255801027924211912076215062255067789547969324457818389552945044950511144150133099992515249513700786452752578772581724395187275246282911847094643776037625402085768163450958797319015273717694982425681808359884786903469869418353113142120800244581441387680843237646052256894215106545740961417235717889880885383733333143906078186152459050095892140432202711576438845832569751170382280409823608237684491566250192330729315587056243763963560416260510741484919411726583488583760384253813827872808128780782638103620483150056808266235143012578361342896612701480473450461205402608524158122254332096357167263733593956899308807387255640038457095297639259221124656529179176755009725159417761030378776719319611216489649830873397730010707821491742336291109249715465732502694267740408933387089075337573191387812207240338766473620718150883720324516260519537807448913059576211828031032300097419016065272101785465907281467318625891231735020499631493973274944949097500716481413812002993638588789607981967090875081036335301407108321314730634340323075029380340924747828873574297409862948268194848815438234590311594799841514822126128000627437976468892037837403878829066159655508840601703989626645088892798083778689076113673524082872881359969023164354826565012233036405298948863243474009229925416484982246654163566311803233321889734396612352878660781023887584005992124537778030717194727840663359452585327832030172801973581511117120455461547485509688248139661259010995166961206143511371708511665991063609129384836950903225403834896104171916446798860414688970071967877890484769667415040467426740390340283049558526061832616758242437207666845401366784318222534048583658256906404251644806101973275519682595999980673511799859482833091421034873354397833514180375005366294093436133966328773014480619522004073121762042877025586925247101117234785635511299324785750122923337253697396507584620432413517780237517636481199660546026406195342476537874499238662813672264449155215338994369281091185336374751174144567486981221593746715286660635312148799937985341398268798945313873945190735864775498572293217162367559673335435916122545608541803435455844080732831793076430351963834638437849638761778568439080001535971646415396328602707524211983445174300362623567184321171904627961477547049817805812320056405674745863887752842068814472878999349717949907697884840586167711226971473393471218607634930456455199966164769063265928547814992471178830812353384909863691400876972374668401890743509548969377570858418822826418730841127515651404832153181681216725017285608347588013730526882583608106770264936205771592273992850830462019352889444572203857478184991837975597442722761374998743075660758017609280650782675782741269425880565761179155328905570781003906963426847318870102764663128678306680082200384813045649112731411377750247598289674496437088286095103647355594698019474570547087922067966140818387158170880101114441847373242048849811594287881500442318221320829809873786867015799709305494176757482554931151327946812379720618475479516939753487174256555476738235448938052960951007280685540281213608390895756507282728349631080974018306294655652630656837995769053161096344522151765893339531075180747475713060503772633128777324214929063805141649431886993747699590769662636900158245696862682166671298898294856643077495907121116585097344475188673472773712338332084715144724933915219753333589622546565193174972905378375092673878401638249286127779102289658881654437675297861488550858019805316105409260594602080388558400455542549975012228111021108354641539312254802414115315062702111356430277828491531126394666585945611966853351171892675660942235743934394189559344941546437568096933769610799719205325337476611224019882570743519017077824350468244331266521380509982045080485039628511139479957165620326174267013174769790441878515925628610731643083480406839629840058899554174074050980616008790076117745836714161908710376734635491309844691162702064468197887214991453909969883511276757977391462152659493869076389978451189802980795308702635781514579238273057549412113803254875578726350215602137214622206495255425493271809185076635778807671016503109684359315274853020244802624400006456724621920845575485767678966710739407652916909443084191418620993803986111170848239005223900676419937205054469571145365342157124803994272445991824254421582797835098047680337522532061099236066635636402947277995874187891191305330193155955039138572443252080480963560153997885740903008214590354779860742810823365545030764339985096817892431225056176952801509121487275579812774370842911846391854950267964453698493262644591437888740245169681807187343397588422130546032608654578513308272724397614948907837463289670320553782155030360686051570998857350257465351893036258830962504030629454247467403959580971049938751395726074011127604761783284641803119310873424645787071838891102909717876293104700011862402000578750115259113524228257782413568214421071520934502923126027234831318449422597648016601676744663969317101782551781504327380986583189860234112991789309899395914974752482551819617259249912114569024523131504499489862475118801097204988819753419312375714131367673720362467109216284246788485078358024177685197857686098642748484711580325486359845290052466311849687286971672188703674855951167423840359079580989639487663986372010489306569351204708982960259291618924995659623460600406509618988982207391114814803293379145436762688933734468105915801625056425809147470080629201201958393792185120580793885553534988736798125677131910174998275456524044127371617123351208848548885543812373853946341212104037525106758824713333026826011644706718082850789668972637709146174754319957172419919883591379857349884564381683039676404905872625965571446802428571320543174003389303978542947250472168365353840170382627603125005930970824346184127141063660233781943274718529968719764343465531511214654872748985978946866313349768164541624169146713451026892170508303764137437739474356700514009429294952197919960972232671469194314696515577625292501823241718768226544025413751619617269705055067791157852978828483863515644798755911575571257216744370446292095510073341542718746630186685986435099966445709592837048904866438155057329517504680796730977189455167542252498090878808372537283783239094493853232458167678358658278632053219678308539874711410604352607449500070623023838361713691424329495920226268222564301254078613700133233888292722760753219076276845749122843932380330394934845792479795439817662239290040507968397982390483631618107070723481554333078070305441190458387124649147516744036179904658668661560415547430656172430003898864050344641211237009537239286668071235687755100355979909717111053276104702716639958344727844946345462320597617018205541786808157955354888821301867651224310692563349250756728096641613136125862470394581040974672653352157494346790014943942254520135701586162541774659371699472367121914483306897106145850377930120155619884618715058199157272334108390555697418329835766191580766460800081594555525060422599793832587668123758229040845850667190970524448757194843662883771302095598925651034161739908227051159985782315972145326562429808105188871621798280997019809047742186710521649429369806298489043928711081439208604562163818427130803522144815573757765554802056333828825884662030118805483542024493781493512402407645205305559374507868031185575119194995168889958666143635484698081871420155344124170201686839021301131898188176014839548065921896369346608846893838110777322342852725607176406941558448275523478368935526549700907761492788353225298790932127342627065046405020654666685055739963779160569579805987786090214844528272587436136506144919330297464137209030350826905683109541052827742865512451774257756714632839243681899259250475324286101050960962910157609868155991247848960591889250365414467659323466485809011568481381996845521152442764490771274003317023784039862255393227685215145226926161521779337179301853675783391372320173557025428606424215452328311375399346008675133615792569843503391894633197138363241401938422791534063317866619878241792375025415696611803081091150610198239672529295387312925143088765766869298059471834270326886728519319825506568987738216242189380802917793420060733200437182110154006145775710528919989448574961170521928898780433265711391806703595270944162143643723477674039730526760705910338013165317155891185819161240775355634543896540519079276544336128480183133894897229883193032293011466986002933701276321858743571628311762023364972079944701916794688801098170920389109904071143762087898859094144051865325286769584582534666003728951547699885196910924948062908099021557976293219117334488066870823580723293302380179837501189681321772129924926602002265378988302407481126697493890165608969670908210423120550780898600259048920215745426629397558807253576327458487242911425047250517387674896313813845600689709064843923430477701407479155137476083477040170550247711153188934130324570931814304045416944470478643070096260086992951257542000412883960445982746645070086757664184374756420962518218120416414237912877758381640758260175568554842544591904959549719154692063372076440466868386638589890309205625878335968994429878468484943133506713462027156803346461057337002203807807278251220674062117580903509811505901832385796788748663985363720437323917835016977608236117457842850347102599436808083596672971340250844678698053136191938223008641578072367181790013318625933060338912046640892171771157714474230790812275221646072554386559681913667748141829049937121734513032145766700397906948763024364456168943384270882315832603917712926090536568209689911238075833399885908835725198217287568021474154706294641456209651218761257149942720366125037962142764350935745599133345653471429787686146945626906406890874254455865381912183829274386077777004635376940267553286105687974336590017554254850888890093821549663811604999767596953392227690435767799783001765008960736876015619500250356885864465203944950162197208557239837370534302548470592128863932924210262526103137402146145766919975063200307342312438214072920333301287634924979291935846172304997596424465504678429328221262841661639888914935591147681380349539878862520121465676139373478103437712272047542207219913739302462922014514341670905536162806891816587416063759662878636996326431638823666229164767711131604857106958226543581590221160463566145845180422387773947594829306398066495437119163066715584118117234079872777129783778543092385987426963859428179391866971098125812779168410424910472078870692012858087832940377341971105951047584146559807293775937471683635826822878641210874881012818157387847932221950140074675982424024566945698211885159553633613196561421595425522294143756719714860217528234952745987872180983210349652450569371825987901852850880495612106939653186354520824773417286871839118217238991821865623966019900001125860668972225819610129697785797721872597733792925278592422439232821078012690604249507961923848627571503908229905538820387696083909582462327133990579416572407297334466502640414785698331762783101108247128016580851232723728552883842792509450106739165636792369453630272283662828416857133496426390575382584274280800679622436934996933119403891026150637028373814758971116105310285756996161047438691677190801618294826789337391006127578487583168695766841900413549841095766576826839374841474585602226188252405207990842697003357127074409114334641598579466880549085490271621357520362146090994887206240255264697507596675985171011247301381302509763393397227650993292847970715153476266209536126410094265296457146097284235393945158279785510359421489574295978500914214835638397510324648745501629058551118806277202064619230166365213821862404972933394760295560872891334279225732461432292158076260119219025690595242762517613297690402076086037686551152856662100974890133194826415795079896812592617293095165459061702919940034883530526438763001288170733953293417555179298787560964452889829964311550433180621901053301889163302484644322052557049441636726033459886988965197328435210592974437581848652369448171042964988320934319032146032398456375310532754967250689527676617794836682891426767573908049453057983200271369112542387782494797435417948411768604729918501513838391813516710673961310585980187400911032209051772759604244801164132974364737248865677715786468701257966373917140859092016910412215728928109608598193689875117293308439168126327817436642755062781530227906719261478990326120545330264907461621508533995354124747917819586273935850752924560205705702815341224004493201024409931460061061911855212706375726898580379112602761069171705126426426715019604143052745530377472526589093633603465657912845524855680497223819762350637659660455406973724145727441136713752408088599743355699348120767506237681216891231894826064316530379883440161065381714493374289167034560897514208381220660653655219733141908664263951428757439476585926363881033852483604928338780402124936203642093056631162335033455490677589005848425089736974397356167084239053031851914606311415817863440460140605686963101979507912718873407975494144912267725375513139492555935199665667157303690653600622499486642554478863021151882757273118821756448163736833443871423766627587490657703767439009577537223583059705246211332907840444431122474153484502156951651984645148080647896154578382619853447593954700063799750716282072467079120525028469140740529306673386930859600657139587769527501270797874560841872373231603814796262738100733935255740318830557301438717474060362690281590649342115479256336119692243849103207812439341347150646949590597831593937068716147149910217168165081458186264663384865874668695526641134379542718248535054337221990407199610685659916027891432767939991288660018475904911597294609996780986366337459558310420442508080364008385832943269925028932177960435800344866592798404709992598233531309510040784494541768339231070219036740921297182659270679009554090450150285027163357851854452490476983164946546135461054687743482589185162451513991607501278811953000767320173289804853384756505560279344973358794417164974754113545956525233523284930156042462931235701147597873346081554170755199195332379597886403873938650398969248475402994797011545838447662639250498972011279770405219772018517243173818141958875374269626740025358018254663685122075028886818979221160004302268949256321063744121253245457780393324584369564256942038650799885609277910385887490333376262509614273974247776788798080955289921276661172956266331710261927984802766647787497751448301337794264353121706628163467772586101030547443732072192935733402443062338953886605103227499726707237394766134771471357499393620621950364465975205479255410098261553374192308454462458393610727648707777189012036325000754444768881836227174741255588072461206895489720355813519461551159540524783268361631269162801987389207781800236439852254372115729552070385995953996247365646616070801031875897785836350051995255410659118990613317714577767742802693625333372269101964591022512103363792769547456948234227150530268959436364155316689718286477161015744990467630310932729089044761025042179492402634666448052033088171887413196205628049039875184320291612657121071671751632134497867338016911057042282894639663298410052764072732407744598237999123786742588878635990029526247345582019737029439494767189189120853421377296537913702205580140063573608508849692772411772339734071799801534165049056027025292039040925066325430146033017533008721737791179936561387101168266542283027421578321989454020328726917567306513203496111958766729498336317135274877772463834655633332523579478573856583187906432427842680521047647878382504763715298189029023258269386386658800091815093577605145596744888199984858457441533339471799531789112268934629104488299625668806386045636404694121855866491383753787981183328366271346316617263541654495175480919779110843041459329305424898091941357221002377672736044725704669107677265206104512691222474947381744590840133191585860189410490184150788490074551562033510950522807276917669021089674947962325159356977097000488336736881884196499797181622481318468260738798777109625662126417153826523755315863947132596889823922145411446646541104295810879922818578067181971282599359550317295119994107190368847818368240934117488034252204394313841943647170069589334813429971650624305230364262709547920019232294358045572019028195547324542697614561565693789447144290949498855958369271175794921781172898868917445214363802602832482080057065919769362479973024813360097571381541439193002007917645228429953216420457417366314767427518138164695741104626026449729897159785133471553576706420763489266640957812976246742510346745550049446965003461949825234440996375410320278966899562793953664267297583132744984824163286948973455993685276178375045456764642661661065261416890655956853245561098631197784753323301254486865038713228007656619022817353587012731964741325920333553339070661062546809648657109390385823131335624968923785454808609574686669300339209601803276317583525108634861906123887088406536161622496265232416395307536587101463848025544183900662331060030146099994055502589488316982369751389237256603200809102417177007190981778169546619810971746490507182385734699155586595013360487799674194533411307595522588872802244071670885800686006642925422910647053398018975766656015325448047590707653920789405453859670763626880343005273312416947793958109248665231566976571052876133626950505829010232702053761723078241348119172502565185519076415057329459600396378137056918360836894989440577557427842262773542179521115107487340614948201492777127058877744952417942464443742103022170723017158804010876115061681588337821461124115935012772336746173016914268423514678915796839493694304487049584114547281286272269943633788013916822838268666734582005689364931168317471753319621389130834441642718410497126428210869512195506674582657203409667889076569090112971809341117837498559238808607986743939466742425384897112515823828580233524406847597938505135696573365218113801534768928050425203320529524774273391183968116598294681686211682078034149067629966489566617817594141197244579805905509706581350199237323662655732646181717347561167023032294802600395060868969298230677269319182672182814541823063981654612599469792476077922790319476207337305067723808916206947638279590383791837995467778500930050590338627677447973598049097173486261137103216813719047192811166741833902319826144255486469481891897173244695928395019051711521509100136303184047678376674084839791853668042243930456408902487883006445431203006431665957028848760831656023840583917262902825729993528779801137563511309898542075377794023527141584788600100574089366495728048582887669331261543220687610056092180022971951990943196086148432731439303694976714838655243005329385095883837667913501970620569910250890138584224059192956257560637416989265643175257002076539288089904046928316946528256383701284228805203080077389277298878989632830025033505068606832693275406143473097963266232604458443519079632501544754281466650654499443549287848182636808727879334435166769519699080779118806500951406315358583943680708547744203209464066903593527485762436969038181643707885327844290011963437083457901740522244927924153884693998314378461532553890058671822696166638157084637814208864622156778396060615678406113388752168758312100280120362825247023730405810161554058057944413359322558855560590903649284799218195423051420437545327550371221209849843370027451344878468165629159155378511581606320690082678966863652113241483382656464116652472353362253700524854882281816428081604862933089676965706170706731090763041027222553786169711705561763152194806206131315027710992998352088798496345831514695541379113919617998760136201884209510530952097728170203117151780491980750878064221024152142314413746244489292235958901118174277418217067974888730322554814080688388341297021801132751206856720882889063626829208891045987238298080114676191678368614245891903935290931737545139661065276013196695509400572033664106882127477212407243695593311086210771352785196387221473482170636772746762056412414781196053951183189295427124181893764115881373792099426106880828986787288751532796723261747710237387690901843024890161687097554608740694430096338420231825451852099397339220601445524629044460022429604027379606167463687087713302865771201741706359254899685425381909593229003413319965723416501506648776273007117678499509668496556927545727186813825435820228500930108309402832357094820869579660606390706562866020606330411429600983928565601804476430272028704171048072391266449060983140685383634049183296870504186135583691606464067057781309472464452049904959071777653415865100952116072280386118822328430018554338176633382385300507868670430748834491440319370563866739127894973614443046958519635555112890203641791193678714577797067552695095891349565405341222581565585886600603973817773035191572234853449711508420903008289249061087557234973256290012223446404628848538513528243825123942445062426482601524927557317952246952734146023082348337505067599301861879704564489105313246105522293681432802876352262694294701796515403961192220221590422220568504947968985485343289794812314765844368324808604298334100521209360993734518193700694908142116841201768159192641176204955513280364757263020233256104115127882596517571218714183298849346749598195260852602971375857001244858574991283095392587128032906082545142266695591131997139027375444332820705441317519774832546543278138434913029723241003702708890818500386779523287199344645952282698661880435203594378665321850759701291134078370743164391177121502257573395471500150863615786641798252082922488548625780484419383997953935325531494215680532043550638311660027437788642815113397591427467869360239088854492222414191314301645416813534010193168216456430908734966651970900699576963738559379957317371706002802843211618102539416218580797808085234039938970324479599690813526774432046173146786099560160792701381201757061391059210757470437227682434418987711738399195609983954413984179792873665233327980524792403561776805663100575536865842185875951357827234860939708214817765707974093238555515461699907410184564643142475355828700406756503535967374178384976330476733680827005085966141755239720631702669377834231310206255657773638532955566999408052074267661992960857855875793947728198508560041626458911836727219479050317750258331333432621245929815929709898649754643445275151424815825274271442655312604420194089634114379688810900723664687162155777276698479225166296795420862906449647143949174563142478630580468117521648271673680461668984501856193036222332842155583336731875484967458541870232177627011746792408880685743523513795954057174767854118005444543861866230837700161064497286991510853293488646592429500388002725741642434951089276628173261897409446638484533884731419506559941667270622149909131686858227604016638807669421252882205094777824451676016662238219814490462313495961727877240250536887577084308441384573169411450994802258287566805897815283844930014802237513141153229143048497409962221398924046420741285308314829407854466131227996942908363126847423829089297563159601631480416980820316085750853251691742374821215292708526054017084914095168883475383894116086786294166432097382858905480715874161871560705811352549555277531529269837754276095867938355903547653460115145200051731914662755225088981194751001818084730838422583325965653955736902298068788376559982483664388970009066794109490955174119099710822058848482728929992999232838044650342047344793858650435403756723769570244755522298863780855841376861439720136677108453660341542187642809009158877144997459286238102045775722991056484068094701189239100840296241860898943119828091281417734567570807801433074381834415784562309393264704340136453114975194562571516557636570425991246218149697364905063341210306652697856078965569764197964259634118286015832148610177118049133686042426623304735365965474326989768512302949175727324824289554778398959645737734055372491596018015373008978263223511163384777442934403429577524695781940272821036959493754698697206479514105321265629285019474429859090834398419015979189183188836772451989589440444014602015883447110787933761092871830495549144164453386885111101014092598606220568763652301344193367540434547298542263398350277427252949069687723285085588211746349706925176835629199346339520884779507474296254286241775627507382415228090523125116333341413302892312734953906157042017884552464953777727356636390641450815831402475887930087040534220703539853593651096542946167233339191314774976042527423529367561245696466092263269631024665622293659799863405443217889050876739365341020887940296028282946464183648844383934535067324997665581311427490673169039749117400170166585472884790860197843619223422943649762925787650369472305785161720830186590589150906782650354700056285440898758308836690509085630398223281783311218804740516578533600336776832759003173387578743977894776411881747955137765333019509593252251275689156426108421355642882680322811628935266334755257986213192177072397149961941199334812460561556160384369852558498902464175112650504458601175101774552744949059054492653109242237071528313269816939711736914234741380684556500524401208903847909979162501619541092120879716684230290301370755318093486684884612423851327823210207403308714400387329575828810488212857489835720185980192144568777366443083294038652203557793181858532146667933882037464211966426365597214544809938939214954716037565163492004974251066926797011175897034084784405059961462023595807608951294866495014314054087289837263038391338125959487796685868607711583362353460735345896320486216081022666498791910843181584716996382630649581609196405640230091405641532635754939318763258223893072327598283473959153166930927968637449844348450376582770757325121332009487309086385662284818201142870485324990054667970277787050467924106594890565263670933342108817768258944076903238509400723235267804375326656354316651426905640656031741241602477413794549080606363189006530168602450941564026030907016409052445699561804782856220940559705103087470795154896920130599867639264429002080118919372866758275235562147932651971305320693255174058004408912360570461582503142313411988001926692194458908515287776422979866396755902921215623690803615698286865652320864202240651086093279873906457255804169659277194812497792795810875882843600174350239521458048084626009231804029118914628614488842871099794952900322344435078305069758604995082657353765370092937231702894863538137625546000584164154124036661353057768196399245194212268693814040429953113172372774598616304011990689177642977135698662414347173949498958954032129541026339568568853935762603156824271378164477924253219631633826531200152741160719271123517394353553355915401296447561404113450804763193505803713404672246450242161700108567188033692501956912560545438211143280385003235364405640087755372613115391966076222861846225237145692239601271422671727584056763535698647267599225870310917099313880544240625022947627856719620906569991496936369194147332901302334243365719102874878606856095520439799754266202553573833206009703681316032432985558033986027832437824480479361466839678362862198825149276579797025333320480692101191746538257203100566945312873395878561217054752695674444779864292845423820512776901169906910120910479879521598018416858584571362047064897226662300303049249071051124096077553780592048023870953725168028394740260504938280312314150618080958699539413230393673735877705685141183664935140494315385538947073079000797022961214560523151873448803110631811055861484136755584724992666172011332935016696820028069910174344775549780031756737380633424765995484892793449097722025310912998048116514855838669864581953230777465835293810293917489015144869721506813256205671901056116872584537959867618293373705407656430404469231130779586877982151550482237755682733269388617342126884247647735034035389014663696087008731588939219186585844875155492519914638226223224184005984774257378648932275205108474393210866464947959347193837053763509450346642900915533451315106907492829994275744350440482565636043606252904520624952707735806517000593837825605858020299918564970967094403763196091724550690180137062777896943080750702874738839747514662605964285166986112679932994176462454927092144595012567420320587010728676647448168691813305496136453328849911464346641957213606219015058056594300334546244778126681261871568037020236970779024747627902981636829250646031657514614678249701454002250469021772547947880441463310171720420285416066765019743344630075760363060544661775330845232653465638731107828310203512589142528472977131778123544963659238652692045695974617751484467237323258888863893675630385536981236096554010268594296619394089982862567654779678836631195075026562002313177718129393847572365814292375493398487010093067937643740771100063582357049554814647728898474256264717746574906164322672250880954136280892091218313408997933931882586522904752378606123787245634132673545057297741107991154110080576293974439466101332648529007151255500448796287177640662015518645515768759621402441124115351817839801898290044898469505365745369305737032483057793740660605756163936791236840600394890875123128701725629477078822254484644767024054902470335813244261086346806115882649984140546359602141104940371915103202667772341986419505333843092236730808565010545149998133771769193742019963596211142383508828579697281184458355783599424999863578060524789388562205237083904548941873547569558683708360961893445922121230169391293310399896599980969962766797051049746921571915605745725346132389017198242420181772404298123873832008942862807936816141258133007019469910232635719022133637588679933952249344168293396142743102778620109178368243722869540344174363696207148127617075570913831477291614032882974144081903280598294040024052736339951807220661512004914776680070974306120467590837837272191153510265815155070377231479699259054826397632603703415531729237216419480118905344809642631728638228449431020262550649891080400093852826657266688591684085417326007506058380049275675290510512155526380356374586656815306642548603084407561701817148198381924564202648333389566802240573153384050173904964370398090915929760125311702118434096230096997118097300881234784122293659500203700768694070393978935460425734774721129051993826534773461802905052412928819156456047781768845999176203041191576179967448894874951233183571751638118286021541861901470099072553739297265311051089451753162586383172861592711809258211185328365378395375249505059274303407760904367882928141970438077225386873741411257904634269491365821340875314520302792902073146849099197147317344985362160819718400914235826266045987948380785062016104814190243787499962283078387443021203932842084554787944630941820248407400816393311386970176021233121524653375828189389160159964163693858137938071752358056888581596529615510568876314134225676259440143497298322598279699902173799530198070560162269384931710569318841286110042126787240752677303286283625443776872102651043611740521409341079897941967787719747395816957956104720821122804504771534252535686274448658076645583438099773100804887499073763640622761389812857784199139004983210105360796153539942136848964431784419806999353582255405215703714695511766281803685761027621883970405780130989231952518238370265788724084073138526305027324086485290307728202248600264502367095287506147079139184044407259917607281365528044274615129261289048227666326832450988678540540559856987604943310237417206117990707391352960165563455405070428176346029938861023811972848868885916529353742324806439423198164285785688501967334334143985745463746404163013325595538462981013977806319434974190788923526112448582867644378234231062613375764265958435436703292864065016129441576136286514546299573260786410303528521504177892129766582218603431996188555939439269368298999672791528915337515871486758780912418861703388383383186788194956349838721865874504733166751527369833051200501541709163589284102747509268544341134438298412806290898401099882053845615641003554828971930020677302715994642599788200516639008331075086412202104049162753876621068848505869570294919717116799389406087057035648828771714477593636428089827600078032670003416736479961472835263977456981066760174906408372784044662853923509640536143255992572367243344455945037984349928876134645172934133134586427538445018576342542106825115990420374653388722365094475137322561764249496286670040119378680195327670877526151633699025292892278179169056110648182458425833704710309137285057923861330784074057462658119831297827519927846477835117690552708831782978375007138481668724967028606147270744949147852172134468230514328427169006611713407625341647483308599252739265920361766212889031669579310068067489874278395441807173900857874638569380192930853907232744834185012799912505182189800111702803314884758039782679411789614207073624369547083547918289952827167321738664023452354461699507253200843287799016432950726807584151003530818473753470732299683995958852847137781465789507897502518786704805369721363292255079894943708937659521273640613826705240070666307868137145087017732356287879930679044467683909826000330487186481865686683194897240109765411237649313216258055987193770177169242412977404108274521650136493171672786592101166016974681280342672701748602932527691419107610680768548491927245671864609403790121117538862236731782633242999397397552296558758844976343516901607738529049585533063572149448806579304287916022559894771774999306236144240058936981026644537583466206261299899924313578566928924153851386148408238083150834829849440281146894201840683700555876966049940083108458954810787513782751239799779914595459318511728282993189187490761640510196164624825818992264897341520317709081468811533675704141802544715838722394688478343206928152829322183516441283888538927266323557974569338765162870822056111737565798980130372055795282738140394638675091939801698099482991818429383381591982780352764300931500414197200288704169061780246572129381706584401537164359698904388391921060403662783909731352676730914483457611353942913631649362709370363511254001632203646121292573252738809094337505034656786851430770574437437410314621819705703531866253880880603865889611066637609436271964223960894021294186895328697234739292604300852231754249968109639125957989399609702593360366614068857384425979006913734469651521719277191714489687801481566211541009108800535070099421125331667767271543514423092684129596980385631001808184370207596683522839912066411326741602690772871672546965320149981058042174498227422303075753810948315132080788773127399644921460373879521697830478540963535289173268514311317658129717773862269098302346463058524776943168008348176473982219538481541839976152001895029041286789827390676479196237516607943069633413143617803691488367513331572898743010724063716442931466337787028164556961073263577112391131675629927112609322721219375187193738513535457885675672320968564964788195962414822219686738575912400428960921778077637909351240138018680480727571899181063085263901103977163822524262067883218380085675988624024979374645628186519718385534055840469815643895921003649941914084360607437249385705484098322827730485165035690157849722568594734800735769327179263173747403029394619488294640825921479761707038929773125271125554914016835328916747523084390189237820132102111861180506405766379118615358560226038780824791000697228879839917668976688734632782631761736211833888507064708093754205394408218389708865866429222985439245278008894192162532146805380716873788871631480099937865799831788445576272219839955018680754194012913358630575450785356621832934658446696496391463902033132232914351470336640459562371019939404392306419816789556447145667244560620009680743043281143986604445008220401780406518114541247441543906922624469697778734734859676211205888415615349425698749687802093295891750383515181959354292108747921920066109678899046445376720463013033929750801441242564428271103340643309239071650974503169115487853353604693283645157381290217278649325826417388301135458059099329302559259826801830616958715925039427592080986588925220473796993627332717663666387891800007696239059256002237088862943292161168276655065551252501991848096148686886582852721803597414096217529662886010912239015714584017114840167753056521935660592024639512970503150839966476356490250060325158929528866294289391756150449043600606517127285645883954140487531023560739881821619974281333548373314177851282616251233532327128983759920771917228750774525494438488697845513382407136054719942623087883932362912163031578376432366052503636028100079645697061376577026971374143377931890741280193588624222105296828034312341070632878462653477546998100806503263732668214558739895228937602711011128892407620981248072333644213654002759195001477328910946442461755762329658741888794493313275785877473899920965386589485431814213736198823705572553017052703861777980286121967736928766681055137469906881492551951136626105975344832844893822036053990224103819789777179027560593816827067809577782565389145124321545219135502388934868325935652167173640043234058956335121252603236462424996679864638371459736235640125159755725539196617856076190784148579905985917981825624759490784703977724163064418235556720937036336243563958642632322041390701768481119714775891519677828977069554865376754816611815794445749374015798540532328729803861994686674232365735396318241710239499459937972500559390782145172339484488700044192748839776215067381506951214232573565813885809165460301387314793009916861134895085039800280276761290443105143759572247825637922684783202473700116341551009878698113377020324884908705382097681590234908033420365438220688515710380791583651313585790742135222395236849255603428435271037557400015874016415894689027061674332585804300828844744542522342298973495291890414752499288079066809701016339406554713278941687078457387576616604120766292644755524659250614885471666765476873246264860763113458703303117389586730342130310222400568415968652184133270588964351477124151473686448894869313624661793293287897607830358572905610500426017492915097433665842674425696518340059618517295256525386563796437960721927703502742313354715121445733805913236128137950032157457483028643214270727527661987333848462971820096174099833036944433021306512443386748365526565492068664941257740738926846846375220842168446123605792544727402297602860418982743741513577787657811932606730703306078646291559907143359913238670181653217205587813823034477125927754371727966280115668477260402572137416796177835169252805961663193947770926957157050754460907913025744336900608061297047147182929190076078385324208120539899696359946837176470872160758925139122266133256907469799115471593097740641722304933324733166249230524156947016071920641845822170769847202329250626168376867296314753357997513232946825997467610127611771735009202895300929615253957341673911951614587002933901126069556346750272469544960859364882941616856905004317823683640066734032756957344450414491957093248287561436363532804116206163822875565062240734001802295466794273374957176135015164117074911647592958825401388762451494247668187162694854563100118871885020107124646375013437931749495107174352228344674696478691457232209716000060310335186098080104345528341306612264553695789766358439122190770227261411726554844772242591877799932626623449073857966293440947867480997312166843672529365130383245696590149565185083503208009421394697632907360117700376352114365135912445740117633969085578031744835471487288623821350895536461205362996243548117344483619472879111963538911315749407789727406229991808805330926438574136337382505529896311593027004209165975076560919897424380463176973393857070186042248437432065844534506703914929755153902703236935305898143706158762350969966990932916668166150920587505970329581488282509196474095104905132540487009425310050242235316847397922386668902926197151760539544553302686759674865915687382438240749963503169264149251366185839870733473911430363671255893081588411475114547674346272299003766990260608018893231034896234081831768863028051739020670362141370379425517102432956832174768615027108645602217750747557338185899155418696570013543287166751870730810960021483294896874784161428050686453681507981884085161303485982258304033388133004918902167690515013746092662267239634857981603572543387841192813857017766530016185514600446620935800048088445537533752108643851608707613263889703823021636212098084541820777317841224468242451995565892455458359440420571903638979257056159264484073325611835697555408627634295098524647950280915778526599173687561724100436951390969809440502668946109805671604206838425457192592023603229922068334724883289052526499525570758962350254164386071021419431885920308422189633832229721991942251176184901811878952847373528537260890765579552394753605785703681144770086635236804757904492791482798355225532656268599639784748653364378075941451490193848566504171892953173883712098770898760262213557091341755744218050659294117599662306812216255606181704657220619533345918182519106638388289917350304633090633015519373187010782786935847608320508275273537922217526479015358908868735085614645776221984797848178446042616796629980600687320477530072094063355743466790391425204754018489827532871678492551711821723281712650134332831474001896851208680660863497438765704171447186624624127693402778829509368761339490728519741113332665090593565387409786210617641316854095011325080785378045569192768038448564687387173151902907181468011396844431477141989362059708145976670622471782774710839260873368481214870452281662373819681043093512887217420281772332967708069756576040819688773778915155051981771282683861024746760623207823244543991146719483249778742785320148880744965695739217969971729450705879055500046492229249881175812076207712732911421289692462690476423579257260170799174038181100048312035232775331509522801870129057323994638604743126742036642607768992359289052184953793318790799971174143965325487466913031886795269454244119300884187337874434749274172162382637835127988346184527283869318518459456046994453941984321307321460403492431916019379913059106384205758815179763074548463117381548881293989420405588441680511195455684905097227931986041811255533503904490958624234181193252977310309877210027243465596758498842715410453750344367165239439492460328719970374471633053371582224635915578127980114841403433972051087206263709418521303088529939979476898952304484072027338673137292233095658593809554238496623812854844100963241282572687566207649747521515388063650406138739616217724111260243128673372020352188676899676317491048194442836579306661122416427496502359232903560983946508727030032099725859534660133447894995901176530743104966973338335352548321972326020045752460172069679415939080126137169904829852981978093674966989649709910777599561525354213495732135967715530307892004986703785375686423674355625879814846006161533759066429717865395617038553740675296837656405288200909191344137610642578807908405246684608423525354259509984117736402535800319242353971235851023879992047380125433323160913256397806468538724497325477157181766577638594260125338676789633584462779408621996270982189621506966778175584670091189513310826597042423934457308307024515853039443411069550936018631277420594201091223993502363699130773747794946172581431305161230631064000652382675734127243599396481203037286524431695316357839106102337381814898165362957750398741670743666604456394151476599224511220974575825386330603880097227188588652215202730185535889161520477119134342942938780782239899512294933589045598688661016166636119945342938020483540640673565434693151796300800358596148198549091747783172828211433099334028530172751108757785562438420273948716397815307817260829675325697918955838092052322370784079716804925093457410670072873540096108186230847046285680883487301097546625280351593850332578137160049566720266796049945751205403207110474876677458453225377425328957504051975508254065881955056910854038247279867096550812852336034879023093984286918537125626518879629962366742207370224914358555002826461846335257822343487979396390594001154662853806888987657961011235551472431947668637469322967768030499859149716653734578149354139441433730644200164893004918076268021600314597510357943386345359188937649697921164102077797137549789717302002632603774301818333398138311837392217007443925309099811038559388889827115875573752130679783908356752486720342801406177508634554112407397439680011448644773598167854054348402032637118086652053907848187631863796273854976360804295396990593039697694141464455024151499623408066034056157916062103615240808728687245056329987008015150203123675270463862520582417006803049915758781936172291621716452349588973176496452798657994894623120150801939456778358772249816729428291122205674997780293437284274661524564698191500531762329612548770201938866315497920752120288813260157822413137190452480720324873179799459475057789114191543631509249846756797196698143863831377007689750464795784559316768851201485743642024951144996286445992039303631629751150541648148043620734737315460974578174721608466641674082861177306349025790089823791186693273758896289263470443792581956930845860737112569473249012721038248474743187115152071739514157949990584645783593886503243331793348323609338057389082016372384557818933130206376792439016253705598892479173316223644015785887483447331631064481638049277731575560162516371579728068311846992530642018779334877553690467134015388689374684924816611324232434472615549549878638336947689277363919454741257453465592207168746723440450133040329581982593319787399529190962551540661304044939988618052401072335211588263230586605310650858111486791154221409392361539336822441397882587375717102260204437838795472198589330997391154718278013727845058310086830361767374910269102748767291733934544890270171400593790182950517124537320449988480356527333717661968833101159952381755885613788374548430890949517723810661538360211862716132923761180906846264026545288475157754619015022405466581150545144037639398404753951498114405222561292662885187001615961969982993045117371829287397124315660598883291811378240390180021206509055259339743947282921911805825953722759460755878613861718863314938820312529393823028832733998677596182354182878621559811783904842930098757107631385018400963152190262221441579261063817575377011274675892497317247899934690558171223658480597140874935877934051383738156736977427742481999635875586571278202355074033203642097855795728552771845038058740051098929651078167313078439772830937204931583450587346340442407802950496304722710413022173263894820327980071633669867155127319822505833354847818714959696621202429313233858562598073026839935518403909350016606088741819381007211477307497529634874747324397608689864397823313451599054875831090654484104354480389282914288947857026281314698467229859765624511220032417165294393041232165408956141703403906921847780696329830327001537173636611813148105609335117111085819371046844016907963887633986344177349653647062094677258293705572905758753649625272833510196897188179409735505255743803352351016870228549313040390271069598580769608098711728987159215179764272996852868129012331067018447105535564447221115928787647886064560561976360248297691669769287102915773000496489814731091217784029065352639750183672896020538976183000420952445693567859883151914559471476265478327863791739762622946713242683908532507188280130767861532149548561302301166513092683935356322243448183860149337439017761029624134388362209986139073752976134936870009152613060624054480887863064490880782811656945020166826345977829923216198115726963892402644661475752790796043519972451539332734483833269768039952863643665087665645084196112986476148567654821559839275159628217997938570919220139296072563988590993041728613928612315774619171796559268245172729290055147904748515536400467251814245648919550150989946220973610026943221208018412186096796595780217555389817353699761624455653594693253518430913385515675798570244504573555160377653458430583895278678729506471423542536224053502369082105613595653887773683057385263393948117586298543859101251236706513129413630692102006961236761377076509281813142744157577743015480178991778761566185015037897185695363812674639007646956017316820712440693779496929902510150035069114724731216991947401999957334535983747191657813979824245752843725554928382963211282481126429225165877204706640425471978508208682408084432791846372072666445680438756383252686746151974683854985016085760728061560039504917796439846009342725792555569813607353034709352584320281439800506057473959729708664569652070404812071151654047130503121161987548001303632075669084280877180128429810213577414971818650477130308886764951307126515080439630963247277415536629746048704395265194041362063855648302794771946265867036730348732763767983175430572370854855476999259598992339210618512252430323108542401125865008531370519349660267822848985626675160051794128403921497266051672430189279526208728188154460398295140512825034371123886465041697007246471964629670103082570997160820316561901019692417381580823749959971904096750571953712198796764764807543144665520800161982916764908534435698264143294357818288238783218789548753577901468594848559670156411753605857688070446227210085493427909268436886172940898704165101897986014003639320851260230559452634018084148928830252321818721370318517640328109529780844373605438484339888741100461989845161826668461832285644353466520190009975180604673732202458487542818620510909029681031924477659019650683840522837613350914829661556948948286579342966878821940194330608189080811930639423170224981114334662683438225536253735452157659140012757058830823906691276065093657104491278003163418241398228177566039024161175839291425366156334724435881096541806397775832757112867325319750251111118283171925482091736809493318483080706151536317174847927834994180731791335908430580258965729410091717896986374492144654439683499049770711321552154449825746185085861807911546420492445385695055355445785277410232280117867069286429525397307342347028143908800608689829725056125519000787664848265298069584169716533561336877950176288444843410550056230186425258915052582924278939879203693096383533941262464476603697615788882123115638148755238660501028157993894138346112940489601615472805907770511710666770604448367461046904556595492915062918278030962703308545403260392182010956235684560645912437027278391155222645987051656270199921762759801847737367896361047460238913805428923105289633513608939372781217889832205338553271543204104094192768450931260493174768297258006125326996121340506634046742434816043336990877884261627928660673564466950088824705324723846018977956687378373676251683079855569021837889943838886742783315680487618159854716213975558708138684397998483480118178622607916235419004360664644124190698461919167994985139186432821539410330493808480598653828829359189196751908989682943009844308293305843232139406577979678416825422625555270014447110190373779475362734010114079496073105723062304112204473132882492056587333129658039182744542138344162002594463835000435557274358042365145055609467723202238398344667850287827159546805382852131421092078773632880172837620343987311304135160457002702443797544739953427772240566238572945978260781056296972586189841078032007491279553139946737093050608484658261412138570851268880414462977620288866039137377780929810033578048097794512997368782542326196237645218406477014940305624160464376181032773511085923737820444183499244114900843261376640440602359220032812586854487957133502225955337729855836987724505046539689830061838551585103644744979787161085683761031223152217318443971048278403094654692289638934300787770516498865181643111746321755246707550636904982652681014957458410059057657773718194163241994444928990648051580121873991643643865420125104750980923180484075408849968490160600930895071341869662653118871509205489567690120877040746791986265859797691317292559002816905070977529272123757635509472901813589502268574823746345199897316576117447799522597194733502573200735287298727468981246857639410907767111309427455892009409902368191294133858534140657404525949639918150826576840580795104066222127358629045038236322933247754353887235514127148476567783198482234349336108957419522643472862550799237215049218423878441798442072553072510471681956415973229202307247170576915510092051756524061118935327797731124183449084573950905855879972565774234208192479144561326405992482244699857116028021460661492700191497014428098557396418720664841635408386255196406604721862652724754789668952722577456818975238925147426681623023794969459445754544153010925662706809977740438029314377369980415288882638514866664773571370549252686365937377919969008489368930461954625165993625548447296238593441962131718707978323975726798985502128896665663536320500792707145642805009680536592478580209536523378015470756352848334476284951534542703104239468954486856498814905570426850854018467055987858983524490259818149446379955692635569369767340451093290876827202179857006653724756928702253963837980063758906287911283648018843160823507769425043235744418175427720489320990375084149747261362539999051806028789627519033697305025620417792144687472577077193798862889301705823157954566657558727014319813174902302655267801748887675813382045203214692137657393674239994077490750683959816177903153581908955607718852212866787186431489593263382497166234815684605665879164030397877261251232129336888920657573601274626182446703746310674981831353178321616855629067935115542980776433654882619394705707770855273314525821025891530776935008255857780800953961881202068179579283546661146701106938120712997966906364770948635350232742595699171642144534545303962592324600638425294886572987251329831159237246147808684160782952706254351198453913799242972612992669642540403140418129897763204164087433151493885528650463950844850496162157793858068547024824979926266240634859436149303239729804106737560628470712142754451282391466899358956588919917971498874892121098307263163267243131417724752683341404464623216866790107077048764257519121732638843181548440992631515275096934693013601481978455761102813956386639992114065748339841835359915511957680604339179640403061459356790599342435508036997583269793774225726157029684655164390069263267039900585921566754098292389042677856590184811805130537389914157175875608002282147716184007949891651640365993748130381029160115750028301356740649822124912972734623856469036563636068958649129149488881034406623508119740195425686817495266668970618858548616364528214608782758243870011431960267227516542171255012998815574589400293987791812254328449941555360857620648229394742397859143054651148554316552005653835030509507633698227579744207389896022733468108838003251021337921821390746888051853962410935472383879539394685190656746196182011672924556971686072911864720760430949392587341941713542107970664485074880070330595802027688307574852893783093764946337872622529040949897389980931502552484374876394416877734632741253242483983992319044484946609236668134601705838625179361559346594825216974433465521020849553486636384067998055085529947752911521121762939842991268291597804240246898754558760958792396900971099631186332671267790925798036077380192968892138078752590271526506496768665458670038660439885732475600502331409067696719920497024823274385561213199055975747608501398434177385936813479977941242087695245425668762333120487970082308654762371309166034019181492946146679549339293444680704392132047507039676448576871651490943384990887301133365861127001464400718826296115354761942031097615769423012672776904147165757664381460600995769519616313187687018719545412828397973940679921726228073554135161018133969117482239694785259176527677229602537177489206992511863410923804495568885985040903219163563430892855719596753733663641490114756420535561930933817813138578210656324286311306097949709959761736523049478428042688294794470424793559900706857462379244397555091784036990774202270279531375861826459510030587839150628298860659480917512868969117841252138009573898329379150290195043280217821093748746782563495215458904078449100653893895712759918816620391073808168116522187347771054377760666438385092801830681710185666645142084056720653972691650867438331646184881752628717416604408193568632393808087735654860134226672102767935813899734629118959894784615253092336785039084305383140061585662268005745555432209444070910003414884314689134292341852497678117928487071907471127610011154985353875676189494180318743810812676453476721039695069255750769778769877867291046333134592037286994528374871817406193960503699797103166851511622079794995933328771457401288889773223113909961348965692284618720628432817858548953841993497078874085952982263558029225959871439534281658881834197655305215583707159700451720065250827347434624638890419792598120906920777507616093960576171332356471619108779501727577573906189783753483516310860478843578406115838365817484463444398989248922880057170989990956994536540082809376410179475025083466946062504880071869545261133846629758724974248696749548428366590823267866187922281403990428695090078274913047882752590815914146026274318431742728112435688984277194992865631724244102907579083759826463865011041453551537008135496341243052339681085477052069809242390165832678354080564629521702706226917885833894366927351003339002424198862414300724668834322716804121807359062996919641719777588284920932706230334962817198548075329341273472895200784924097490190471627180973247806241593089643232469835251492878710425626006118737716217916645764558532253682141634182281308398473677445630159668751826387988411659349753567574240106149705347502676067079094961632136350965097913608049855587355352770087768875898010728490825652611894574259550479861922130487259283043481971881895951568264087599263743743025454742316186446266583325654352197375246778622544343386250549334010144060540870024239495284736921915196386550830871727270884085480268767019001862313975058269213213353726745795004733643891228322939991338934697539515483845005376965352641721822607752876617014537061982223707007029525677062885903472451277954794348714998250925149601232925791335983331569294404209931036600788864351270980242015056274689513941439224543335789801079574687778312964546417516794996055556404160624877664896382804006266446034180158777890954699274953878105557271899642663365399560260759910120589251448501728832463426722235876769861301036978684638274732600774955128554243953102502864743871078158079710763096912625597494142030499229813712006926956096183339839835598445923904436198647859302030928375728957335434810954863994402801698713593004106513795307229004189528484338132573696932978219040975709889575745029218302765741419453368253158167917891615532979927881083258352315661477721114637913065562025393097145081412870656356827521599569013415725150877410387953238564716842489774117797538501286298661917891062773648515539277120762773715461718956753575847943057164446004122179229785120620396232611636209182598131138857186007139396597495903735660445024534839581703124074993048859396646698305451813367466846967676283228663409084862691016131975088985164695771208516908625085109934178308873254367107303574122554843835221880083837560503356574057863204243327340031702911995577300732704098276284651419168026714838224498008698633023319900579926563381592582393059244706255107438409193691520608786785360528708711850402820264719104286804219127741976411408437630919322343531735305309261478476405801998051987995315598988310144985507063912098661388973777045255708344434509853550521446674602129497513671732922673032795347268157892450326462209419778983695408796312038006977081854386168550933574978477478575001276766213031018421926245233560447880501964712513130124439121874461958358485471943140142047527121036899751385046525903795898369041003739372084784776090730983232777027352453449643408682077448919138033459490334264052616292259449419031186880953615780598553931267332997938060192168529396254578444084501939554706557499491923639472646854747149776896251156882579207851443052164536525702258362617564132126122753170670751545079274414248588569086227324724716115183927191156266785603913240181467572532429357674670033061113576519209687732979534724592020155603439675050678190125419026966458873326190812716806578046351700562966041652688342437048901214273917096115267233654567909604382476657511320509801958583657973436288497509612686994376857442981485119166685263770803736058547743998060016921219898291434907684950273941029919075843673885065383700017568349427604800041776760910657315472176579897265229069194808753958336767609181416444842727998820043866807247420925566942040565390334246923594476049975354529389803542140829130718734493853699919334528583747709762611572198645215043445431111724652520707338645681241115915160851041450268277110933473143692214915863177726250238662557936041905194086788994075491326315539739011026838718082161813260998224506015459697756212607165130759180049603319508287766014483471748113868244298078141722967195777728824492307735898488256743275029750198706631705783992459288983568424154518323002025682544639920159788057992956548889202312349852292824747044009433355128878858267321912541097005941879336041835715036756711849049933661963541862261265532615460393653693020045449753584172505711220028946044494593386312452132620503859557844572469348418161710419681142289535413830176679906007971598636872111857061740670589569047928797951544044563348297211849677876716872696551084702591642320444286993056382491917306242851236229708729743381068787926668073805368911383297329193872025889857084112399814782336693630126364111214053603943712529795804464371348892441326478403989684985908684922958504465997410012849180062884634430533050234640082862912996385687545531225670706537557425107140337211522838945372159755511218287283664746433263421496786182214914075712328406179460409340706961291398287425088195906097464939978953148858111213452659083200208187707120524898864987083868332418982695534002853754332146744299033537331922843250768578116046020557732913593667570684823342352302359589712602509347794123240768131828516269144272614398791589540213191991927987358179486632595058538521627353829514589271088906864802156501576942370599959946801125579228462034027957213282573885623353513949872236398270733922492730913491927167808905796216452319481179835368293747419709288546619428514175944845594221094422373302497900314842534484531308411157642526310738055755472546340537225087908165178061124942281970104323436198005296329834163301368808428985468575438090171114767382297507056004661204612653263982913714113902895987864240712736680845725556924792027065918734764646572685343478939477772480933629081928658700111889098701099384085870339569360955160576281010037199359300199225293893132982363186396422512717517338652987324714055379502851162147630736467637482772266867779854136963565869643706838197929315417083852697539576715512456433200282899717718031110019046607866763801216360193655180675778521343369619649090015806842213785269236400095690230564541861916130958210734071183846266227291990358414383230072389366712024315217477627760465870702476235279815395710253769600101313454471654117330590149628539913491464494605967835587252818804381328269671246981749753018321741196789358547818402033580533745303020599679715778297807439780395909013527946725753142783903030250794622236916588645534172885353267255681678365999595305061954568886578068070922781217667775494659678864453431488344918650665470087571231964374018578031480356667835193833326651874543526975197087456085006024623764207376757334894078667682677698817594636943860432579061625519937994414699984482119004906158950902741337461488367602490724399996959424608725242841130178369974180100142730618997233751888205543124017869110035475171355731233620436862524155409610156544710526805492980795738213259630457012949185286252161007436989251862207160688901825216000440159584139917646736488062781734440837726586592780517140780010393482680510439692753353697221180191177675006802004835921111738735238377395557589264047814213690572322950094696510794502284155036348969899181090136845963993582595706652075575794124071742725452621191813121307664959663239954050364322425699368592150076354883266115051097198639021586688093208262613550721598313812234760903813663308304372432048314578426061268880368312501895461498800292865818138722320833954842687125384307575430412314664434303599583478886647695525890186507903453351351021462066643272069732643698906425977093135644036207405163472717300197852999577441051374788221158970954224412496951671620365831910858015401620969576764664175675027579366159285872148075041225444656834083840424460093751583124963896446773775131783577239161711801211889428969959266208652913611612570814805387578881658491620449205350276890970107302095036616486870574043563095284381416533895824715859172974539557732028308982356323298871480043327975020310907641563346283490197930021622262552406642919942757474414506722505541585740778303573470056791725988247394844352882423139182809837041733078428716473655376253739925229539810466502479297645501126256108002174565547874027987607025896874435360502629142230739323941577652196259392271612726877714213651398021089833039859752274234917353602176107448642221744131720324477676321557923346947820263007810077694492357425201546816831435092236923502834294907818649921871545905905112363986328441927519722740452642681879380046037364157955126667299340937662859505196816773943474170097300523441958704285325699278729238077480372696236249771626255786621674504193424655579546513296282107402533372504047414603874008960014108101801900185639140677911821476540531420024200060966142523107814871307404247305280919017506168202386806387963452296178864604569832640261488854217109377183432680767749206590674918520343130127627997399397567133577111268033832629372172283079437738260355337980343622524646599518880816871261448730883843900150487199245617119546689363025347765660874415731970742578321374291292891654813846609103948343759360046808940303921403196500577864231533387808193936109710638038418945166921914836642434047981615493628506028553127734813991578271381405865212504126712306425245866731732119329806379702474730493851756288777961162421630804790469686454745796357071751681004428007804672762120929017648202597384594458403313192429474712276352180307133057751636310688561307966374079324998631202943653622712406259088214146938166140766745819018014441367416178996317991887386258376485017134553816295401147719103122761886996381808127327293930885599861326427321810653339958169165203066808246705613275835839578674871914254534934697753323895459129688126380252115069512230880608910174820287391427895393256426823598154459024254038342921794543409385514712017785433997679964712783179915621427514219463176437891796840749022707645609104381351639712914428542192655631642692791959926881000278460274887183531305594757447319001405431375844154394412940123550605006620069741853895125266631243511239220665725327811404022284899013233930793353712912747586507895452791974148841934548179523014129732088429457848701939151502236822959895047279427682217876598689676598396958619740983778766183242399733341445537278892701676656928765146743413992046096707830174430388488693142224496993992818690110026255912869635315258818531185534021917085474926128154542585511104833186053667128954679808196107562910261807973218683401044058548217076143538916864815685358407086551913492549899997007741178226483847579275010840337523002312518765406476933669408846631381594135539341717448695007971468053573743722375103496737001352527526034169737794548480577379068299046221456065536550015426401080035579455344379841764299452800740447377611138933755287865272771149649166534555872999162819695490938543034739083813199722407200083866399443641219015696575652581272363172985802425521757282934396915787381670014215671919898082831985181667165488903244894771102175111369048723412964752879037929843996775134983199063522414085158597848827205939042603506317433532963336248091647859919047702097426614387168448640839421408939106105796659657107218707097637132169940127342385508453924502451134143786096395762162792194356737025171445712463362346502820878678223601473652025307029191150599324470061567519914144106687383193230595714584799138246359766228211156194253007579013207036193323787779506236206206928581058210503203181437077410730242001776057379841588037638021580430142145206499725379226472042222748428384786067651741973350492903677476793232468098234607935907578875378658404119675760995478815776602988655243932478071705710355557207891373253891014055038934855438956139764012362388483097679070079373599566936696812683297178918977360996480631181290801359522971807438283915666879624990695911453246007245594304104798963333580658723698997491892868888875301794234325165002611889978496223280391108821791001439594092060449474400426068246574105093840460225613764076038907404804746847762082646617146643360537029117566293854203238308033469378549492675137515614431277339480603756873165365424994423126557179695944413479267152907184651840965139472071427018137926949647854478922545564542829775144398631670961182304708761604582327862600842568894630819115883781918658195279821066598374974168710150110168587274004833032952073449701987772479921823603406394584757176145102629611385439428156220050913035028674301072692951115861149334427034854323479945801604818441800199751141233995965083405082980500677805082052259346996887020250658932121663858171052036488846362581707053998637609993258215755456592136309495269048036434754514020019563298490131114327361129651705220535401647713378499670293679584783775784799697060945186445085186784607949945487267095214699279335618652431591532116944692804672524804201798930787218899087980523884211216639457647425417700137520221978179922187638492448814354592291606067050831199914094064339142051231057074641564538675296293789488156851127467598171090620700963490195263219495639027477512127992844441241276400042197263887213340282989972570950908859474067274246714653217417476040001049759088607673292272243563294383262883038429882036216800809556943304187442371729386669059246564494376910427332565304458527111877606911845686454656737193132205481171419855926722323074732870166216907668334937340377565558820132371304417516612366451396770941791447044328262264571822120279089312050030571997850387424716742742745796050109076077139831433225002937281928740044829344750644150931241888752079930176350693318198903723086150881004089064262158097271915857059531895532249006080426399597196699182851561166462269838406202274198380859942485301349107274378765788428992500681449455786735204884868655093482480257240982324079513238439508217802487156732856995149204133690541500246309544028027141853488048536205476590480150312681249644871230263239371847904187781758122263678010761918852976134494733286667367709853802677838481379269201771320698310144592129370222848272287347087155439448849088949520701773359945158423340848522744522332434178597831756034833302840961458369873690960133543627785476980430520293220696905723921234176699865826052163221907011377455361828876165483050768822554092423452297828956537259975883680725372019788740965946248798594432996113806405241908838215582873997406595432764289514250472455218850723806219255863744320765581022571907412249275785879077385377395082529782568343292114344831313636486323225520552095789685988769733088375441954039656449537739969566465292380907890031084373688112766613245172819224950540648426673574046435198566430312416648220049041252224505725826434000514549174259745785614320458155868746656961152387295408588672880731616602155333357098115036860145640390628226351341511219431570437843964899215689759817323112613795633368753970849961552040522403407503619242610028855626776829283796369089985751764212375881188152563216371855989417627442512705752319103523411822435730396374135165142917692464012344726311265307782001184354427256305260663172651172932862417330752701566357445279659369224026880812355664827813461091659157564203926743853678027424033744874328806083045767543931197025615861999104013047739371924831022834092275112667652910490844224705023539503605339864940825002153906717835684835787802336601308603257314127111112412893277892932796689518691667264089198099143695532365364991936367130528072624090055629450324416563516885352222446974954896680245619216230484980058031903237037235352306418587979564401118284306870037487503211898478517075131288893583970141804066257942391012065925465671385065268318674552879980205792887894892820438629456460523387899880925001479551758393339301588901236257539720498682103815789309089479668212893071625402755184358312608569133644982272954358730180278033276423375717699762594156422364716705170304816063956086550375746478834023174951764317584750804777239156816831048719450772292186651793018075501053881409763307496904448581048485537190461535829450210911871293027654122651853238082951107997931909824170088261008095028633479343164453563269405410458677075467954492431586988703795678934645278067285508840226044007759542423804639728563427674428853383933623321876388637724125252245837239066375425624797737872658618965071652179493963114004205610690611629459302831719707183438654135491234694148934738795613445496417356528402006692455683228955323532121371290517489995937691491135171351403377142221342441475465854723304325223593946233713050393234474529289464770168504375049596669005162981023834376855507722380776758098323263780852899179812323975314704499527590386862866083671443083329538311332377063935868698553527353190506561785310508111161426224999384325551425180894447028033907623590324857670918959522734155745126891924414196876076912027699128569767304657159895802638358276724965449985362966638362335647716689066995906966800779942236204546314908981956040345677021866160931817678529625860712444623001371684822513748960144984733505773352077909831711085302621343093945154919439235763293453056974834954957871696806004416239698625494490954121330933586139412295699532803577593703114179435351591464927425379453789694978897157243248130017375737282822166306833620131688081243639318283221744862858896309440732355008703111126355859296848779152559066978390918251098070543583143138410206521306384923255561168657818715289149375515896295591695140462580447921062288921300691820787247176750707053553257942003441319730122671828101557598897117914850476556934358807082285473245195948896093995355425717867138582610473689842758015032942099788321443617284549547297474017896280432502180935834691643416871784428193582761578721397717516307797042464003230114554580030453792068365250806914422206464133400345487753492993517815954734088519505401632814512423524205846076393244410576686474540741213447844507923781079734227597456392579291603355844348738890232137830696558242929481445047381325753983061477616778152007629869501575145179617767560609072025082382741726543335275143865180127728987893098602322333110148576662219174148964914577711243164951915200020117335071521994485804403155233000875658583794084630845942341991279363368757186360828908547713100556437196742269177092519181957432332844266105796766823331429414278519620465609121771280580539573672529179785442800974255107436554374907174692619385426221497929401643015356552961179729955442920555720318872848431696743760642870102423212494740284315417380104672584529551923908510571576404318219549264798594860687860754180797303903475256872872133110222239886123532272752656850833552753793451421765915672976233842712445372645412179422512309885936633563628491750748985031348750338646046387696914061232598971068426545828856335216904950478409477693593963731967513331874114459081846559997765590853723172427324182662867736787408268874238457187746915298803468373692753411656372449219852031429268026666427003856583374666853950487477362864391487308021075428468246787770367478890777082088453289671016552835572202748958535981136295444832820610531391005157868116237007351354488343701371555267878949264978795055435411030955209384611020485783995837774528389692479545619723160777989356733585191193578716231426393598075139540739930550644553810250011907345758630437088745942106751058963933796890110763958971997233687370040265726664978641726780999210191416180027170010494555396840141943153735653837820524426852330500834070512834945401627924559297889235683168704291578063250413598219372759211863704861917112344826128807602078851170721988052991993985370438052189481926878630465088168196193841662666790600213933403281709861609217269496041961115327309625530763329987513416421781267277384828065677396916146301546013160335385601118012379619618334607160235384917373442603586630195291265072155545050786328046185874692279902057006335790150070546591393969676209012389625909532348192123493138711802840139457864089404698764334747659878044844027507324187566517368064273738287393648641715073626596311877779018970361146937500898119634529257213569163742590770576074521036218517782546724879101430335574222558697028629042014557347840946008631886455395660048767953374176508708817869429856504556297786267531394392776203844220396499764473373355575575154963116624924399899240614435753118732118632183180622950044080411487721201532355229330666837286740715260933430593377872835524502888301573851214381038767426443381296451352282630387759881441869148715427338676140253631751302308848067787804316947861485977634658547805041753341233586651208789263302695022554221070995191556401013567012529445308220715556274085324495175405842527807522639114322385376570044049717711777594244769109683050211766852098338821249324759509756852905406525151416508590677309417174699711549016813596182807003362791934796120677394062020863730644424530761363191202095555831113901038620104401676540685495785661032715348679076877665778282947253471276158586837325344855040332793106555818424602934622995241415428837391679146802930621280450097378576796906813433732929630377095084823193493732212125308146639026012441375899740801297760850317753060990803335873483009248183482757593000407082256133790308249061126831943257432264414193869186200485846717756467477052336929698332759734635465996177817419828812592571761546667049915468695070082656762248822239694718503862939587580299347526084959386834264744812331942895357040435446265053639578483167284315236499786619808871174961437619014090275828889770834571947107519078947505482923995196761013302825299116372950599535561789171363258595993802242191940144231404146815550275027580687328956746465828134201988561941928815050751114012576960250262591518878250860526302407941859474955025766633981942049025899907715165673175434790988886166342716000458973603598107630015225379292501115804813666180613631083271104149519830221579284173715032406817519474715503921309374210921984014189438740103209117882402009901772233478256559199503514246248466155856484430524247556068846076361846410357274086058883946798290510240657467876083191347735927118628990175045739942396300467218257718906710973766411941688143331762244099325142880282459757341406208233748032392081478751083144733982219215916778274267901454525611942469160869298310315989480564232653627447907299344100268631489982104922257875581893888499293643538402308953587872381290896727870215129658045958960903635911166205066471313751491162433172795021305639705056969298754010802399103173255112812257611990522485281896367463192334551488701146080975568010456703811306125600746608701679293878938737932535464590972965543575746884220224971538120886977334770315516280829733159329563461133704297648138692383027918051374656612186122569841020302313496849496964872106244498008963153038818294470847612351508324062100558900431763789515301997708133815402111853923733299361814984645302694653295042991683496126489055043118210678872799248235015711439032830095925217763318372535721947851860848152637638087158143445909809853786209963616326457354530541218664115777141577736160393675987169081252745290910910001294714485967834357547886698306086651961967313763816086896079111753884884445788436035659580203743978186986268115594167951570384966408482187626692921609204760045452770859926672963019201958699971591027857938788072378450192816341313163697354954391058641666760248519245379068073152797412283174843956436321996504462748556839737685687215016116024803862582885472846479133914408219846044137667783966404894475745855536935463272495974745277482847841643836946345229042149027657193881444805135548829327133884868162083852455983989706896707270929504609181571901577632020632662015754334458626125629505666774005774143465845239262764054694126658903552659813778207484217385674671569213342451779296983617837825793054536574248765892528531887173484646438896446358649913474773533620923941511998316166411554892630776834319252056635398987670836713356587503135884789436068365964284134668409622582415230078969953278798872364582161949246307596423499989252133104647815104314576505806256804742067720542586924094784981238989159303115530679314450654959864577506083929401641769913159441908973952209700106558279778812672909574433767742578978679806231514134425190632396969468189966035353447470152400185954367639424098559198830337755076350472405126012862499086793451396835684733421656764994910912256283177659333656253896473739438781299767142910173685717972980435579235871919053702509229988665789649569349096658799249076253835388553371596737307769225873532315170096351117109902386134612178980309420067141708188709583599504948562613678897486886785724392617417484769670513225880859761923210686217551588215923007256590133971672240022573040687404234523379430181240770973948788331404166591906765159176375540114989011805120847310445598392151573671576341110802094322459246567445716548462413564906241002801501515295357731924890916226400653255391764784847388576498504191883158334611491230003310809287233786920450994897370907987721812880361973372262033446238275770890557728476407502322488183438672277844622338817822919467954617381647272857398974427806358094077241361249903581390699772005070073781561190783853320492521843926839054861098859841055558868937009806024019924909720488295900859879627916929446991542715441449325965839399543960279211809770015047756209792279016603277454276926710202197624198732038688746093706318875782448739194314228905572486954513541957480552739514859517776402568124779479033218156961601741406821389550002109961312594222986335722941958182885529501441649221808890679039139040462828868830312340382073219670386849145513857789008691200226544566602698881682201898934636335832174414166215540501205672374088284972967346453591644873836865754385861788403535719790953015830391831111748071169740799391006929678396410283085814975161015256604683393503215110900654394317702069965858471323866201574230711029900632131575757658853650342685071293152031925855731635307878852431436003913383439849065605957243454080798952181591645334036200235203836123255713565793575532566673334094361230297640255774269725072186061933403367087379753213402743745824366155031085106656018215353500274867227947793607657078122687320241110847652384444224121608981073866746147896556516386197131341029882580421328144633599579395396380675697610282308531320366507698310528058551167889741371895054883964475283212062913384510577231929222452437191093608069420101299211164986961148927575266622574012089179748451980610162725409844547337825099230851532595522921788933592056380893088825721476942764362905320318388965682719034876410473178854280661047260866718354533810698484494387619649807618231831362669074321357425973400235150661537490074648228230917094283602838261931043548646450944224151102685033099064755058374227697847884203581066328648929739612393394284149666313856223734085734077246849075839920276484783715321924726014370727188043911652903046813975387666888509685375765260538903312126078140313633117093200586333619431280408821878739023116676106002993142167157256869077256389497170207839351323824139380073149003154513627596086612351897699904999644309421116301283419692387647192120754682036683532071472835934442765643366903456061522737511624847973043581898143324626134069387100109456129727749579294204474819083160527709233986598780477918877998006047243054683060344161001690029387342987453364403418821641337393238121822201171696995838252294338504706571185019758402213664182706460886428708589336931401736812932662033394159698125015709209799589952431143304289081084977487901504632849743159904392029163305383860721270081808667822662177572929203855618138896841650659639264104688953062291829103779091818170898599580205806927677549991615478167620389070603052847147803367727925752812261245716379656699248641805111495148170603527396698750981092116309685989600942917669585697428573655354810498152214597944735661875609203526299088474761313875436639787504873337631346272753813277693050271887169553849900405568917703292310055225565975034003799680319883428784060672341484460594901241105488177716382310509044044558182517204964573060382247671723989191112739415779686771196231794627232610254404347903262904569626370071756365081644345399202101682147150091644401362251879039164779310727908000476938215252091306159236202674385237228211387354411635444653779800647685642819658050705853326373071786078813349660215238235123796744295835285913332907925940279167539154768035682618532743212223036646026858853171045192264949360748031219237150517255070851117527627999623108375040733517125058142028124953116842333818163457758074133679519214118395374209304926922850744619973060204385923406956640679683785568892786438815877075994293332624271869516775076617981681500886487315352745296358407257715603812246180189320825709126585638592951102341037426591682450776308642760618405998995328909562540100840115713887974177856963324911426534734418427135610188196513430716447968094340939350819394951243053794877903417799151063662956230505812170659858067672822024428405719197896341696424492464130047869525405586442390589235329024938250619763330144933221814601293177877438518483383667452005320553110151552649801249069819800678071061733662043872464074435487119904333339982277808448772319830723393909299636385893980333776873588314430159374486645022477027456024193894341627322754737060725486954706718331237581114922951090837951758127134684250788454608317797273202457973609950126536337926260237498022498212660343523839278168577826816108358453166532992072664244020259827216919177228072770087645154928393677412537977998628355979348758827542900846664822972045516800236212785224208226415574357947000564362342220898350650869853302816707824240183049234346354039178736457881548550193044195458559105294976599481901928233143538554159290756259889705273973265890092828181577054956903568849875372386885140658128818461573536356378550822011351513855089691507554890741619712836522812415074765375483907941967365046024314868083660633786909236565691967308600785405349992633732548740480725294741268517780713692452028853047747533628064718227925743022627836656608667824941359695588822054180042027906853459079967683166376113598177250816889865812339025294621061781100189183685616676233134701665682763940655041996969168621111608860475546466475319516548146975713763340450631739751116351396447974349531083870634033865263445139109222202956301754121062367425417933239138661086086659442827701346006221226334261696836418253564726672470343913313849824570947431212253997621617618467055348469789825353759841901018386435724152573610474637187372759393069798890664773085372708493119111834616087206171292179223659679164627636056749684574962400357801531838158952448077589084816056050446344016289621585718876095226935446581365947971097060417956924245032137841128873757131001498319743584750257351213587563406183738263432051099672103867872495437160558090418655151900817353760009210291574659524102168032768541298217206888434535470952222814576696893057197634762144275952262537590557857348613605168445105286889471239513914679485725917993800642380491916119446157549046543732643660281910817599614535809052394334145174751780058309563582589981217544305167930844999863873131204333558430041118171043237994471318182817727849294898534494103779608361862069177635541980313507555533462973962760065538515431865087469833123265617076148503042825167448286256970110299134144685226387589952038834416460977559562309322744000517400181228109156677884580123951773151669119894213054445956500984060442139694822420001571248408246454972670200702159700615139899696972120304379196249272804119436756957965282822536121303329703642871191880832932815848247526843173564274244901985531340313818377375484977271515280895059120360681555856026545839270030506724723953980981999156965829677884188502814758354818646074363584294940500828501674431629266911732690914120011745861729828203841085445349402644724558612669066474784188799432775380402653814145969880579390069530010645637974525653766140238462918797042248602629203776477886242140468376164866951129563282156772954917717427379890472346433252589725923302848189874883087073018577989392153015964047772326263650813690179761645616836671298506382432301186675120802100679920219447526048518465268296603168034687155103793190494395516433738113322860223975002125333919959452376551887158387808467928141534455383011675371519437603434443708805053011961075017648485804331346505911602941340563963600490502866399697045913171832442968279640236581774994907767200460687927655222626376003237980190738848195701882259503041621845682606515663569251188465489997751830725553662316965510941613807218439671181586037416325638453652987700804927474469162261935141953089594995253267595946707771999973409388521246357438285551291537257527091014671419472340897311697357723560991245930690362202046720401370467162492791521573960611175428669383666249643250003976211698473995525826297110876921298989555888254394471395196996669370749421999015589391901110183753443728642938249735970869058673177471100770266150538743646916074971016314853165836706747454163466868432568606321593330870974665231216953692384096016870250142080723167987351206369430398836214132496058623297511891194919288462336101516739514407784196551197987954585241104184576681834235195578279149238154416704244762357227003155254442684889663847387744863165088546697393476565876045630022673239697439087643404063543793902586865748326490148474227611897731913203394923860753956574322841582646264109900019742190444211666729482163302473179152667509000519438319830952481893264403772263346905045134725575696477866849856225635663639909850635543308190536017654016112728179365626350219321535035287259064035872699617824742816581807023646237257815490727327450976737077423969906002329733457194064039748202863832416393412761899739573745337510517462233511841636808454112390010686026652182581865524768769771035698918769360059228224134189042853911346537755665358390849872760929493154057620153728653891538032332954807632340345610374455877436650016474749014507529694302916188996436411948371501216838210197852565721313289016786315838212496263717203886338989590953617831964293693785074866345794632879956716575617666964003712678904443064364972313100023901842337324983531744899944680726827994910214815921967370294710001233557937162224626888961541723917561379178127367497119110332797804666473180578487671525029187228204422359368902117091763065421709609027662671216510174163731840374472740977472905543919211883409466750941354431057606010060839508416296777447531265731554751308917192106307292268382096773825517595842809738522177044654556078324812453395631844804557074545714738763817176643961130759339457378240434470937540806099163730592792006362130037059423204552283285772184667950075976241265922621128444339877138538376981616547840578963447678703101221256893346836446330747716768336246848228068766120592511808945670237080765043477124139971683064880243530026373550789583037449605184416721232812801524941180600138553371128301741497773302556575887124680539806594462190044503711811194437078565266385368527801426614849172753353726549108691741171640158509715377387134951341737767002716345965013549209378473843084136692529810431223320009276004013036956982603232992920654251102986116677840656825215428265341475700227552222841294123663689663986364717735499138773427672511897179887770978655595220091977595467089006318252583090333294648323028578469707411782261004662911296974320983905974123318292169511743178893528787940180243883169499396192096003518441679542809080284895052699977762042915080337075591094384919666635010211464802290409135422766822512274025949367091242023949787445794611630128802309817186718401470428713525663943492899212894014249289205573330713453685887145069261657543432219437720384414705350163245031966112701835980351349798341915585735930790986062690522903194110012103183842413295401119334963184938666279637239291265772777075795581580240324719562214900815781321713967015757035523109422246151002946574029941638057939344808282774034982168489716266447073419173331967295155065053841330828980942700527583057960489187361001115392718859100614349688852458856786718079074657310696901798015796551462688527399045237654491468741293490461076965987284721636561279539080844813675798948740818787759465077545355863304899636099302527714336305128761139580823279875761118994336769891405799204760800886315085803987907190821878967937863429982576310417404400171882725822562679104851445161965083159168498306084109923059675829655491198724644935925142045579505032510297200706338382484170698806236546434141017695112900122914475734369131868989972585938647115272592558813523750860810015143677446266259978573135865466524395075326691473797377922324931329026752805919983075425326692031854587614398057194459407728298431869957707227245166119169510145160141811063880188834508082916632770236303942248622830389100634636377015032964298594296986635978335001857377319017386792407864340898599249912212599682673393827763753221748615223142253988242431798785138981513669014308249952419340610569692743850334029977578462215286382034716162487831649854400520036324168695623514951204795777166627875366291473767354583146380046440087704585799988367229509406322263326668539604997247039219406196036336158727075604416064039138566884614884388647032294089946115036236819012602506580494471087230005755453926260896813838594516651018071353712765021299068848131611890806797089802589212050197102362312897839005145804318366483956130497852899362511177994132612303988378528020731093388987501732836137882602042082118925863477560979722740745373778979042981489744414139325850767972356432885924205637795033817056394217182727426586022971813662220293092170016798125790461346109433968869075089617826005851371567676512655441512015133415811643582749457070090331992188173855701087862884414894490934486621335794546251423632935284659509937013339848477178553234723771231929643277574348842440458760082262820797411002280234766284496292210577311922087771040053394247502106735467783401371821287586613603958884273826705817374596946646872606053240649194913654742067058749574507602897287265919720284872322134953068009685399434310298589293457496038067135249076403317742004245152763248793335339324179143864957275182445498390226487416317389493546187605524842688961544633632449552643977417873250626382315349599284071062091261188754852553949174080727964491631357231697484806081487384982629483623490943671070719017310758724909606514784855946810157602837908794749971270203991912363633146761266174195523330020914127358969383291666207179923331690885401966866888062846186970247788252176585365687333977926401528714611408610486382942375547915421366986688927106905690854684644698021795501152402686986153929789838876679072423049899410061787761642529331082561850086181187278030681574983123624171057411582576389700072178680957517128240722318212879419223045307902780606252281943012441226349856085009542568111595223225465046424947982619494391965077046488623778628045876663117686167969803502613605656861697968900571179202082936691485415307333876754207193819886196012049840838398953921797897188363416635054751520894929936818498926120365313822302517765577190996074903514946765152993212820021155139968570238957555326419392310356761067057344892391970166281320964214206785851356901597739517187502358898786484838759461522812177419771604433956706862123462452859083239876868750758081243135545940021519273059401460538988026310629232369336308827803301021939643349986730790313540368560659858228940097851016670079390873194242081748126412124841071564767444039151844049836346969472749615438403180393728344015327513439932853726261548408982618656153042682770399224845806721385135837278731730456558975882836390016355090482122584840761434515081278302883323749975264109387931424859157040613519626398059246744250330534887838581098842239083098141330159326281765489257873214834486877387474557656702186047732069602237848641658874087445099770137999701346426781117594786239887359866113698154288597983977419765032971747905128773016656024816093784444729764840620934922604021902497884342343726680017773552772731409941199447112924371998320903926732050112221727214533502674949368618778404445528255145537242346779368126046170379250856053661630591316180478395577216879582899165082363784728112739382740078589145510081161013344662871104621541860861290501579982151577229395654593265993396326329231869425456946520928289366573689926364696607582195396557318502610018429391345143337428404048905864552957714382386420231319483661042479718950591706933257859360719911668090373176919302051748637443878330607516157647711697703425065339876072177276404948577830229805954221578073806997320471970139615320784172371567340212865660987501101480593496813445770605561154929581952404369818208851824533717327869426082088646359429874708518768126673201943381842520601492515396097438033532560263100426902333794536837245024229686725054335695975366926994880171722214885437048292196109027232311984460376172743789479880013015130002062820489415543048246541675459850179664976844367778702549206049191130083947345849146139818302097046217985095347119730708465664320532234496781927487996597013137556002422169747632075138568514212221218892896268275738676266532105158068710792390657135470852840851427505592451135991802765123807833937983004563916641030745228231599771955585546610611435904964375650459203580013837074420973111038353954814264663816545305875797645717321264766916985781877217892785643435538391750743533075873472139094657015301316375745917225948962799172051381863614872957211741862450176748364585378353479563855616491573567821541875503778667002270231093918303336370410263207295775786975664427001178981543547985481512132236587232164096694288135391117535243432195631093692544691805075741679987018933087106594940265064061116003464789154882328311693811559446600038883872788255867359691627779442191993185278048847214993803927105866342960031566038083486546246186911237952735366506654248382978776773405762652693590558677174140266021154828284007447001538415343495380652226941454812898807322443324801758781900198764754712802583066191092841892618586368445353841902968124745553413734016444504835738136493498315003940872291706825410451513369918250725949337507883031555511705665520133541015079928811445223930443541343905403378518206755208134622037039799653597863923645653798771061492539464747061357838520180071568259375701620595126560025329338900783754823639885085338537835615440353912328763389061701461419055704006996254593174606156814858593524198321120819049543896601845984003756274107155672565680956502950012205171761518535811122484685848012771691161004479389369147766737865966657226670126824364577730894977690697570392753763280511739202951575222822529806263137120060493428248517592815788883361387822003959501713475262245546683248163901574383670252208292685092621693279944792895113313699934393768820194519323017057095695290685943298409722656523264413865668948895727438867752929814728258702013563074907748732848423118111402496735470553485618332904269740572484899894193405421164690973163681442329169860865919223532032260261848393731408151017286556193003794382983848643926519876838250965215148460337629462816471166691268519554933371196461578663794531983423776564737144839801290790788707997799066435484551232369841162614204299097742860848487277596985959691924982220048891208596129037384940819061701355494267788682354518940151585977929840001213032649246086542974704040065905896899472418339628084727096230676484686926752222044476349309914526184462960212053867876213497830925364457466093777381262336829698407319644134193656177771440937029117200181742762247560003630666889144288575885673976238276465756653164318805150965720571912200741675773460868087961543875164016538636868638945345093793052377429467606217847412818380206052013103966778201161134632530983931620058045153744037389196292725220581287411451793404934813136693455095708740639059628518777035555635738774594868389588255809831290555293893069367711388447121248322421455858758898658776180468523578500383203092466395929110403807901497037901249606913379965951320243999862803390990462737758970615442896459660807341812820303760383012801671976460113303303197661851376866487665708201103640281037071542939445530577266924256557435989322259688935146678468946038674848062887276175559330729059252497131458230638892530359280878072193419401165441867017005102404110843591853888422620138339636801807222979033790766415145729427348139030871924906127507254557520891399133195927482086445930276453569343410425576556253445479962793754645179813540609792060791288876330601459865460483209481502337913713493122455769557380907542859805769859101941727490533908863603849175015173846527149760325120950100007260952535560011441843142897127658502593448165913932116264694263384794013157083590559707278413343563546368074792423887146121214405035768455555429726141660858549281953915505520929834241637073988391461170091263818174265735980891251668361649326971468494795955376879336727092190935708902097626942999743648628689851365881819360861669893930605289871860065656313686289659789695866948065436226901508878129708925784114716266921782125776917824727847460175813191154222794232742253403983968270955632004396916314880983478105445065863898373521852854659129566211712435256135276746089920499222299848784227116905787210508086541450892959294407412829227454906447429817521258497678994029244542807874765307754550645353710484245471309476854687224325948099833252817606625554279485193675042976184255465058235372964082264724051296040845584207829993420344820011447048500873355014579633971097431576528605605417146738725311382985138795735134639742388713805117560804397054850500499401203204420429942886473420020777151649273312599573579954964686591988274342711837197137429558662334261364010648256599319125868950767296084900172146988824378355540358562067495661495321384772450554004262917758425299076068395220149332249596855631326635753545388482964327092262473330028314226171550454784811032672502887953861203418723207934533069822624329555570255449465519433309264731282278951188141108093011948971489181603010020838885508639528307238511223085316554283061819964856893743319448202936131366328600144566120066576574516800032719177736854769222628976480026498679792481447014523210843904353204448774872663692483625195187273584282616591092274920499735744605737474087172252506516989080390619953455161047660858959200135410561832049315103858172554039100418680010364016334934474003792800426871398228825352024561987730426794046027538228132557506618160439338622064844782280349012784542413777071416722591498693744427125550402619312105496964135137029530399521898583589179591454966949549792139646977632354654247973018216332575782757453930329247133230927117972801673147564392852222837597959613930395974386768126120633599553485392701927082057886084480684572254802567329936800473606344847987295969920381206514750351785983572191316977483880757161922920338740631102590541351254154910490202800677741031448286166580283427714491732363865410360967726581113972101378362695631852566829822032335669493532891796896377969125982767612621527025574318064887939799937992711288893019400558372696613964006501082285553991501766320989461365842415492623078749108597049055354217988334919745206586270513631549572184770227688449850805933151984877609380195066383132983221150986564605532145566387247659309235924061431473639308758835857094316686880672940608170016934437849357205717262311445653865005150738389502556261382028644842361753790705858439818049924324042431418946509547171069352012828290000852188149821472608352826458540057326618494645837449848519533739680656664900947756075942024467846685779518652239470980089959987287045039645367645905063826053656745610822058699543803809353390344209931538641431560066448772574805677902212014362478933604788322873309316292438794269865168244980773967485583062731838348271444719190059181256855695070048958505510023791825601952766197916359438040111236026132773807484302940660600973428668213990717414269665687275517151061071086585622195686042275205171857475008867807307473073200615765734637334046883426025254181943769752538720418622672006312426220789999768112125646397989213085419440294281586447461826966058040350400480800907648173650916925396159854887952547118103585177477364104833501912549495404903023655558472061146830411188019024230250821113455719056161962526536324105398207736492874966686389465138008779202037211793899808986157211596425879115017484649636949949742845098060880707193544764265479624610336828582685735490378557152434373757279927071800862658151623316604697897545663145392401016937458704525208939962429803256066808733026005570528814788510330260981841263606729168108304183949223389132021041381135070705597470716106031003441199250939649868759475141818963213650743582199298738360257138662747716251009387056646305749874957974208738522159142376390934829695231563434590672769584782909037898002512185905685474149834080552719420315287627917148680120562490027711858649895676643451298545311789672799705007962966293428634189109415837382874331255433142889553068176198938279472836104042749583251519748279194228092292796864741943388996547187014327114780985284646582412463250623388566937156589862958162820758219787106720887242510402955779813462876116760625242386081458409701688789354662223431387302814961467075550592157066644482267178907684511034316995522302521287850220567304359098532790664523446622145271180947184661446023145606219328325282867070715999879946538099103506119173170635125762951020909167312434649265339339003946036641901248133688786654551342165413309117460474505484548474017713349199963851537065949903637912609709405393091877462892881962080639555893325001384812630220073187575761794395699921052040238554377918592604056484587735928359697072550827847250799735664845238872157933608419352842712512372429574782050058771324965929740488202430524248384043358973709273948818245237348281398337724516788400250559927705190083695084128157264742576887582919185724384935889767355133763890696423099243427579322067163706395588049922503422999132695768136873249729330021193586007094172699152540018701841935835340843806173991880803892854547646114203633355015993303417473891749261827784628953595644698132800445861013923509758048878230881315250345314669546377445109831595262089942287085248080875454021307188336805458567821278976551399895000364504089022377965178603785220916591930378067116052271215703721119383983828836371250997158681698545872779325474504482653285804481148981519268040574070463543019021642830624964618178367513968105282671421923517965431618279300897534885324465959531012652767708400193468632074369052635652413275701187928878773789500776998299034452592435757830187479661043935362453949815909701607227006427619848058223171493981926013520550272008711401594175873819295219189071692614432250781220538122374523259210760218240241986346106348669946946099508872720455844271534843094968561854964093440753142191929056069451816147158525979374562081657567199358114051856908863947817739669779768264306401221926756795454981756603937722256756798405290721516711014694665102834317036755363939386307853754130933428539948752708324233220725983697999374811448227224681020979240804713592306140706090520396915844080847717800282741374166726864280927941906938065808341734891516914767323646225178130440955906582781040513956429245398156096924376759830417960131596950562043490530049600625647932241084610820381129563263732501838579937782315166883819372545668536894440569570325064737636399460039028806490282036680711384192507014957146180116645411957697096541079150962094405621040739921785717510738083879913723723044878593774222903802666338089344059337184201651106059925568566260995516136661666860172225283309444674917572457866191109072436534099094372488717067170084627333681045017422081270602284509887834856777322701562462767763137870339046856676160758154195824600715558323123010367744363196986331638290877121349659919860580051105060115147129897713694097638216223365510154444026422682471134801655499418797673805064340322752910740536570461078197456353695123306302570539498711073517278187956778287722920932491974838166981424660438328262963693756627181985731446424488725499349585745670216844142357281718913729880889244649369143218259744548608316386661048926943602383435036590995304811462168413828154255136299780375061571931485437074318074677768092229261472173524916302802772495250331979451218085371727903443304006814283539007031322801589675423068603996912246386127028833467961900613054423963454248900093639022933767010383335227470999780130225731834178438878735087282381136798401226204305952282114645785872681634725172145658351217793442775273684449969279711392272241047231582123363149003259950788370682251301083286762660237139356168234958791327995137482718778829678543935970008584748406774921843118056256302177820230618310727808607893203308397131512753390962400600479239476657029713401690768916064713662448744848165897578986522667021980899504407812394880637540878416891538848801628414267263827949255735437718034862806170904653199821495899889347344855512675035976105894353332256515517235086445078087224723118409487792783554177157061761781529010383908230842761970774206284774851061610043753115851581725021193778932389759846473455502976721052612210331128014839181801425786009358212164484877416121310653575402304038331035023550470793070514519239036366633682552771469020175127028977679027156008964892654177168314756015164705528133484231852386830803323161671121719886932829327996155346959883885742290534246340799062517454744327968113513681346913263834869737575189650140534246663132727407250089636923176396518919059029286166963651991825439467574920545604696324644391494140135370247509254603856610210404069607451339567496536500863852795914345030749647763149773158863999155905587151423009947880185160172487359314353477666030351983409619867333423097929207174754029421436302011519230141082071375129295635975925447375096301486711482338423844382290922409823780673217411635051965822807035188253907138161943405205601229486837504213590422068446872571283556853553399000857553798561819877835766047564189812137896771824019640925451847214779173013591492069704714707632182746890454478093526611000318860700201633104637997824425128827096551889987837297102723851075443674706743165794293741087490948346433429275263189020457969822722724228912271229885309240081733388777838983982482821665664223345445291265210424317598222965152823932664554916733482657004586526867052101652651361211225155023906127640735194962271023420865238757840434948767408324075874248214389781850504625122956790858698431501745797455727872769558919281970238078307973984607394211070697440656455970146903841720842671278789244217367979209212136810731762869362740708994629056267149327593552097916197481355596979437291024722870557906142155038734567956400250977266165861871781081403236689835629054592147158951690534459416447151763269262840029405123851644825756881534369636712632962139200616613927181586059955338293803506210503382689227359773042912960831313736364450029533940813977963775053165329405584697164094773525801417716268553226295567159814364437551889784207669822298097120376608154776147198140379160362841919264104314853779870856186131508041292466284660250701332328455661003075324567331308257790476762843002387874568056196605275283730968720964406977670133078377250377866646815636976346055069625706156507658564480109857114768281274426275170844073111586474787798393228312375090569253114391492333739713499466701194344830944973660126248424418508690809084943910937310054681577509106400361944934635607639950602529117226119860910552944071038837353440728005472974718151058840041885345856887250895763784160915781114459340720357134865886723948063708330517635709825457703697009357402017192681749681768988410826743834081713764344821110777515952011114012337844927900019097658492320124586475761581613640344846833423255407728688275548932734820594153691030184020833702528111218556536346499957316519855388793649277748289605996474949620053670439385542999374375052288737659090627700883975263547629620262872161378108728290335548666183542857563223036168805167009081798488801815152264029223907925341092972348072828069592700523650590559616339693861877847771419555472503368757942663059353417980357969207688143507992631717047709775218836299347705835874393844095841878327841717309914184537999799251586609282283031304085593375312243903037697911400591752439025345553881374962279026102560823762072230456852263355674891806834005558231641551150979738314716329980842415303994037406565854128648892915163338325637429383527442633167306720880192211417590268260379244309838151277214040221393426652608282962251138276771466502807698644857239102095776719919974134142859790810454046368201601755418170660796930121745328092628681050434467912552608433647593315703124362303765009267515475023514995940525100178577255560409636717322029830684090058216202220148871925899495268078313318900956088065247163522578189364810389584965939449697694892005487320321319390859219604057572780769207459870264238179679545106785746365535831126326127561330649034205348426161235768232045877350828403151354200558285989233125371339205336342134159962333409047525732828435203952881521312608129585057208564183047369114027158449157054049990075896937234318083277966631777637380246463035554704797252078012932034060880621625518118131429164347599553930366956236689571167920092893117306901243211717517040158217354854856404368606052330037303059260586632565104615665597001137826222144847388998791608291497009134804113008939641363037101031780725696913634033760196513768346298657371985742697378260690901327967991434989976058277672790907658543008877081728549838311806075401872689369678127115137042372663635525651804001591413808744111682140096374406740300350079400121917146100894193172027972745819051910505989590485516885397046793918728118333873444649930808327709729602112584871019441511469877703850638063436370144768025695913077873469455849071636071725444677711888164529132157881693653495911194182563496582497938672385740823152661514291416531119467692606709715877370239794701475099510577784560187116723721587909542279525403801690803208952499980225814811092933008797771656450886711484351512769164736508204346556399382772340288507671404275568135601664405993167414545491440005043983069156457902543275828626422347187964298998625222393462389129352456168462687045117215135549886571954774540028451329373647587585642296053948751515280696252333689639484041561574208473134260576006073218231023606843386884671274007747842133800577565696214709165823338027010446652140833214534936007329475577383791536112900753758120260422550274167657538531062835087521278512530508037592449448114813783290926529640393216862624953088494294647388175545056423218362797900722361187833445532032881701590401738783073803436072705333673290140881309440660683526937444179752043797677486857877817123050238428962578407894328987135695025649308317188176989950684987765684484372011535442151287526723224769293574771390474091454522337894380968937924993815037977441252934647785556123597993060737882737855801543391352762100236370845204737740937456752279622488497038749188124094382818360214489065538681740952635832624649401318248305404137759866541498583073695528283508646607929893691940713365361898972722298822393383650142834843909508841197869705315887664524999513611226696944244915875333450070539648018543538217378543169778797450788892907070917341093046676402679257709082807735790861064687405480919535228277978381413097564577549637851071841906012588586653226441387443954574839862880584269026569777736659257571107126308906863269148016625064691650543461434606790665480077314770117308023030173483762434776792256052478718038619391762668061236454112409359951387427043750565769563667975643940384331485185685254264937079220709391778762069810818029247577776049685304501506628863970696192428492709963455419866524099292265126532781504270347348315997066132838633113457911011702476030539419205328450210168676069233939914962103540751623621987916344073733340699977349429504583633897954072950521612523723167052352579160570507193385620939871813869865789474675313707526823131209996248942774744471557655241416167527463380491547491105920532945452258062141680530515503533668542312959449439216436310848443469514080996696325080965172796518657303785287579042721470823455043668480484367208316438100264925679041745586044128562173533585314962720414260495949781321307229007139444657717877689449803733208066414278987530236168796753724617786790332280494524189504723369751549223712123850196592789771253343213644021119007989910542297117499428884290781265696003502847179876047587695378286871476528670905319270116370178399018890153820455011510510226821638854770322411173212892178237517744706714560650578960324461453288565855743554419530960361725179046519072618111915753593472521285683398147318604098541328026392611512944773319791713826040537421296675390599630864502898599140215889504362375987528400970861096086222910325576551801710184003809074149303430767942383537143655931255324458218422211448935602945547896926385759376702490261707719384619737121988959262411821733693110662712733811240918978786297229822746718374402608312441297705311996278921428998812492770430870629380571012048621568271793685106657566499039436265595801074520785858742607658308882806929520950178367033087751516200218507624132151082788866275651292669139831392728651924057531411203889730172193367906705457453295061744187628952630689654253345098872157649708683684248537238552757843173031870962009402573767835225091023462223245006154357865064669678670331059360195461461877072002860413038046569509013165429237792385726552692991403360037744041933166092862730229976023878817954335817384323001250008102288179814657870026865150103204641648094074451296858704846907632220101125489593952776348724455163397850574722066082089564717147845589938632721736506322990086521062177578043611539610284431644336155389558534529493696912165364233686677125475250069873545890599977847375603621388819362260668305907274617389168345525631810900435755702871753104009573180406563697979397823425673603986244281120083600777045842053338963013362946362322143127769989425352975472868689906976621297384086227285058177443659623387640200300029330543964091744333143414231687365465855306886444359565726457318002516860926231565631451623787301412664301382668183041935299536412313344866055520789673781073594999872056968185871868510093041614746951586038547616044682935761515895576859550363336477637952104282149775240975726329028985121534013178065032507533939665455914019388772829178439162779346809521514973874587002402482327122443526248771484395044571751863894144918107982498559766557509395290957701955748416214581126519260805013922070660481925732625493348207983410694012394512615156887131823081644207885751007903705633562688481331747857551802270764513723121429925688257061381305471076953450285411169740741104707489055210727514996328841395812606788417313463178095894180312991182623868045805056682868533899400877282549278714254042269347042914018115152138344371764374657030337405003852062060616419743729370905573310015727096561299108070855910992562820257435238302779223061499385610060796772623691379201191173632363120873128424578606349441858613094541161141491792438607413175625442595850238349399582747113016575736140798325982926495427978135401319795438653288950982850292971369662744289723279342620847423527683730819972339924196276246254846153925656949108037831440284728590141457220518560751814311158306428193239416222525756385123371382280309066785440414551541445275947530988574105918829057613257783298210439759839069066777170692077745953739847936133127240304379528634716209750258523163290233510387421445824668031685809954386802090368564958912723464432614706200370480323985134060233860146339979933094111401192166215260055052414233752189615149369183033261701365193283203678623781723735161822391359364918422613298493095470739857281773645066936564397869757990530598917069358796105309898165753286324744230680753583063824391733177540209640465605093913826650038062433995072808586331620937654622798282995936652575242948821224528292905277364915925345976353709347726125584274113886891791327750787043384774764489979010404080565075519476340350550106125829575469377951011806226461435447795840685227350751511046791399726753001056565101323953347775525630507822221902258223407791696887897437007268943989057729245408800093768056311696152641087900098379002810700071211141157143975245957585423573501670970577790219234796807883937854377897303311485111856485416372873704911234627587823966377337130278000288982632639892823218877711282447360790905391775339796360696796744641862184770641753295422573946421700057784934784391409280352263709120662381676017728201364084750396141260389667594439337164029974810821705059731776691806324523362750750137427133098531737962301726851413623819795629960890523549748488909194144339225605106246070861598434391074342167328649973397821971712269795337380445554461869558449776698937686024954610954265000507487602510776741563874714886983328579022959671402782714497336064640844999114617354122668226708995983047181996570422961668957767495609075059489942370602284721969547154479168021991355421238539365714377979362442129259692640494447411558719346684259452082633311124395258105961399706321746787037943815799215166539917227453369961816951842550746838056524814974128467524199643913656083113067259900167978014307411276147240229369672630555397463114443270028934771113919512806525606578950243311567725968836711221200758875113007906737943867099696596555377679601519552253278200234060916174042474025119798798800652078957472312420883232742905015250530974181181805224451187593103048808728832805589915723174084618320290556101233725286874529298261380811966299909420004681789605134917183508998235398493056135818062302407908453552956996835871554633708040103608874920785746739920371062722766805875353640892931270211423379382429791260411349411087754505793493741664294522658167876841853835884766610261073995263521590475523685616295324507213316080834845837836479198825143404551258623065046226740264697019260767358990812848725281769997764841631480861115483955039085557010779991994178132894593827297269029884418642056039812853717245329642622502071782280315752015760955039643588093138946651359959823503766294122375036425587145324930427855284075370285646138325102264711987383604245475615840414060723293047353335132547849991312488791766704816041507944341968064743273113497684577070906419823565881302872512002990946734206665675649599790500510670594978673453428320900089843183155425912043861627891303079460343390240562102314957302322464227942550433135534037814029795702064167043713714901661541630612991134383248114609691970949199253590537101520079905923934320513709437267992762962344870912628593684015869732873999931338236008417708818110589221109631937950300794558915248340671732738557529488779216577036959391916023679892749457067278956999682175080703454065999430802460762370177184039848031220618991271544375317104930333177665242951917904349031826478864421092126507605990284108266916158801956122381278488508915323613318119413439098201265630671435339752423004114938013967769247914887461276119355419117808174549070922803518803812895947443771629258718615026317996604148023856782228979348907464692925813754931971770012851710322841515451989847327631750397322727831209670464606118411852499892586993140964721307112667489507540892255107140341441515663539966824598236738544565059979990500097883014731572376350678067335403965946611912122651696720672791871295563920075859817848738370000264570577074914720955316907272915614098427554858277336881584283740580251525904338084656676292630754704896981334009185742722633006163500714478962961074250570185968039021284445263089095580775552811522951303413243245807356440918940088964367696599456105219978227834488868081418373461864199161648898386470709368280424605259915153200245157325030414776528726147232800000854143972885846748633407071718370754265154837127890429668750165567137199780450961098436765964135020452021532048795382514323632217187395648984458608156659119240971387025326946233414044971438490323405504532331958193235294749317572977658358083386462658177677987455694235090105995865795253435682197554923050535895076769384364740243246095345502174847434176055381956805268893547442154775971258913252723701038820937782440588233470642336176686848495132441899110068588344971948597488753295375667249548705701670844545159932381461517926421015701753989931648976510301867806202017339704351122081185230093019668114907740834756063266301923669576646479968164117676539976248502321532831109839579817222031012391289951453412243464655291579135343067705122238988772082565622734319296020490836330020850738159060478340243803199776437655056430735891275782868539683321345273453390026109044124993253580398392980439872568192843111668907799440720706441551455916094885606857135138582250136143405771486496061831078516913000453625136148112799933468074807647384077941794448102217990388862145153004556270342775519117927340650746623014989305785352377957428365933820778398018180365776769335841951461853552511765590624879635692218246134167043121291372895313342651254797425808216580528033854555274502177885834470631729486366140033675222776795660895911566435494074398048987967322886984665268461741855342480793947613793679341849821695087918323135846021139046347123646952718015867969162082059234045116841338540290755326885353509258122334063507448669091855996335268554279771635335174318235833556734053904943502079901849461573717064123075107309225227815724127696188862712763038075758054698249575462076998126805872095563597352016492303669639544171205905558623723937452556196368910846933419355772708966564965235868897120769471200367478130703815309231630326147931754130017172996331403178600225922293337317488556167282284439131615166267637404353975185095768461166293026000080808383534588123731707959040592723315569138650817389925773914124992437307383664163131170196214035434029737212405844638971519677219636264283978220228489041020069394888375254580665074990641784597499342997516680839435413169130256006112194847780413130787883905384175423837432196846902832495967189603505955742023657146141375951244836369308615714969750858711345094781771330015117465411902934851715410725391827987995294381105510237155284234512042556566128332026103324398716930634225424810725832604868597532296861075547917535281408453802759651085688322768787011108559617362139218561929514065310919414669465528762171882801260321710043582689307117986313614138122407230285738363922661528182084949736332200155806071883116357644614077298370376465943380893523057516389097477159452472650427826669120888304639465302282337880519161991501571492917720792822310556474363756399676110844965143311423117473368853791979118993563120339451150327936129080708277924233111513064277409429260045650774002083295489100341220597480294745790271083672258907073654736804843183098943575044517843868280793759103358646551647592067043436554325768269609179028480713601291531547933940483107548265084084893239673344179530144502308966055818997596852700823213155529929979538015211435183441194256131679814329679380821335532126762767275198142060787419271032216737973180596783700122947070812397141579074635680277866785698718341419318050946152150734797907175433298230133303344248613996030111783452654340973485638852148265218246712036899555779746779551720242030748986298036642135409546785625209693623747043433829232932708681906055872441789816473162143114685282283458648579542709887915367524031288070524274734714686668526635290350945645222276145730890160125981976398833658858524695752919810135691103600514871785855184338817575872760133082955983303911624687135045994033137637416856094555988827275035828875203495986504369180190569308078193955387423042990053983132941096726666489871613765839396286074104861286925000453834793019052692397797071280618595620350527085456006822664774280200883135393274629770336867330504400116069327513887468211420268732976086323169087119150216458227945024680911864620495306252785241897224254724019790519332445951194561591102968061412469705299755041595473812608306323626507649074929592736076898817656224286146321791739993149289196239212206777577382335118702602422303123094586215741420488069800855500918509668143699116947448687874418553029715124789133905105681702762213679778006420622792686559435120600057433119458880442200948603881059506796190361563254959740066416110447948763331898163320115665536099631459953835023684561318457295966814150345429877261545881898639120009700907931617973844316153959059667660127851190442039868933284101304076476231186982406186228760423203889892216525473731904793733166363381213226257683839513080057828709633847546290191404163554270645706329218230342716937446099366974430815801753965075971048662967464359784583868101222305929881948166912085661208980310356426839086121286956392226564273857946588065767269509817127072062118324146888317822562337219551627150246718745501454013336562946357666810668755117060602829927433146433958679848838483176622769033656660239639023022703791487290033270209854795392269500155159473430631258059683175239951547001048173495640301500893854749926252694634094517735099620884121128749044098082461824036675361151956359492279571152617039088779526186794277332012965429444131097346454930240259050009265406510173805002313811042074854010418045837743902241856204716749685103016744163714092160666455420709811861820057913459195595165467511390150401142442150619180439272588671435986603134942287440967451776798654841402575465892269368335250813794121522647977386161795020461627354226400851381743081593075038210115327279289184911447052793757212431785451266234614896498173265099625136149480023846372027412621514992198601070918926752809669921928058790495605220627705898639636055420168927319115959573053582393670717541795993276237189918452773767541647038452114121728087794969148493175893943357051061472425772660377644240993573933531683128729681749200049026730017892580361666016916572544521899849177685994281239108337710804881633281054483624275552221948562434143102730168617786786890470727204513730944259890751385373689713099377782011800477558143172950251863309186254676678056796101730020156967500907599980607418380878929778716186304946404970987675582732829669837605064688484435533715566500056441307440194961635028431272764735669692695018633921372028689754302564357250217038434351002608302513199407464791285208724167492333804490711118361560220031621793271625826328806305408140138992661330327140618651743967712560142648107825463418553356203130818663445457088842039548488750604717349315075996312595142132610959589589935538405385942346310133660531750506965165120754632303660089283089196198173872583962619533443419150887898697981278395703901216224919815614466073838716941660043794064728167748201782826951143528636987241605716420277053467104166009554774498663154013013657732224453445279454137559671842017604458740886492311890983745092155879798222856623305987625089741669509404070308169780404223163076462754846360802481335629719158592979604475405020380157678470346966913635989563626560323006006834981164486967709758972854186861267811082417204158025651618745988839898674151263806139091576125077307217550906541340124456126781431473887994317692654506879756283362887017643161817092861744013231492482451440691400630004794146609750476222983730568280919240054228901402855951810461119574414945444627886704231244761892314812583779466244224257881664918821042111291135468353467272189149070863452122998817443907312146750564261631779257531054398884462080757564067505298205321760340113049058847749392784318998688748047818870966665444203865899756128231941012832351993049163629951952241002627684028536471215960549440823587501677823662188275083563219009897752518245091777883128637911258018923223409896469248933317231154093907954749058088848059841027679236368332886758459035142118756231283582150610610404190516803238354435892411575318325614073677172739972072119507778938974479049831285732667086204036533491527044775329591893810184789664534529654142970127845304613368455230817015678312221596990293659647692356206490065943889915436862828443206973202351464903607187888512336566365492183129190481645067386427561409722873155240508970030069846826998756226156163347192058571622169388493073963894730461009323099441884185346185393530508361714500488014854137067400144137512859006728670784808512468613180878644812537272453185789010892128094030027459869602435817828652464409560707466081029678572550070960700522471081276710751539005494690232259295239463880128991504189524813415589595601342691005696710895953968086459731130856668509435741376953798405725062344485777638228070404841920483431246797422101317851430242357715875096520235400397664200953555759939801256918124742519460364824989636158322890207404507100889163783697860990311334323136236732590550558505563310792317651759056901186351318002163446258774256602264506925753940970758430415196491396511204831679919959246680768594705995314750383045302756260119627850269880152475149146967905185194235297905071032849585203518237746262950837402833861397838217082375416413762473967795162903237608229801012571948220123464470493419349893240285314127341708979386262312864055265475281088499888432064876195355371539191947716745212434204245011319040024634603426380544927150278205348642659574177522886005857600144215428556407175449878907827385096136652293150253336388802189975666137105434340254330862953296703016444678050230540614655656222609683929307266200029042021860841216966187956560699849089764842321140670823520600143550138770164500776387801348244783329268672240445051604019571859569570736471639345244527410073025111880026338098992110099084346692890330731300380064838317417426759624226527238970701923959147188073843553284392917544046821298963677834584826949999217548060148500454587304618474816573777938669353804556902038848085202511743396457305611059680872942760642214802312775294973833974959454677855272942593331164539969096981920234802049529735181463683250538051652475698107140323030712894416372066479608508445738507216176682761763809101813066361074392249924167659151515585161014552780847417501252809081914158101852028578447449419318782850932376865327943649647965328402184920713851133494003378615110157903179474129050892163183129503290570774688607421980618223650760503865397853254473933014102321579450239228701467626881644313528312687718730792307725046926468830961721185892517964547613066958988333416914969314668937075998513974134714767486409411464036634054069747684573210596060296914340806812887998139594621594970183608107106101105010000526081826143277346046319145589556891241229856210725272824521809131115896524221726819432552972155196423285934763577057495427445397504264847712831074655188250102705825784524298858097695916005057297587836631205800739885280343082788036784966955649644882837896625406724176174312621050999399767148431276864376940716106434279326730556084577512039970644046280217451557100579197063815589232894552960620024297149262817117400055081184688830967075759987155162155583988015183502947548287056964230455035320619750443714338861971411326350115445814435214554120941915250041500593405377138579850482706869308105780689394503066735503789740762033640648519331455216313101498141826994053669737077561537048339401103574236402068377893121556702166103753489792863572118500240129291063662550681625376754616914821834904316904314178200662435915669670091453427780385811387852254059940011330155045264329143334296082630378623286248528725949598108151625800280740324743308200152408195790405197965431524004011159026552810805485470317729082408106312758517822030627070742164362553942145751627510895595040339420658103266529058573232810645245315756405524343887515769102756144044330750423061086545490264493571251267904104692263077012161169223654948023234306133516683023959822995705392123210815059753257141047558621867193943920461389142487090834840413648864534014734564207097107571135005864163071572759637933114757202571534667203083591905475473465601525987999939167003919565535981663362247886765937710763699114520965594312033149451464775233540698902189959985923926015950489831948652171108362407196069130347737284753757363424968409225906894114465763638301717042242715237730737685443340191504409956885617076296863231043946421692488105400878073953429177806860018497357434748108272478105328540617728681092551481259666438703310186407607574497888539859715082146139209721133931588934784436565173970083190232625591132160058209868965234445176451957342132101650600056394892905652989009728712513564148378452768792150201994983812536966675503327920338709255784261827940253246286153829374515533945156156261769890278145962156229206093152352541947580374343746385244870695191734284776685857649547009196592486301843856723310900391180214218457308241759202772384829024669929057878904523853462482667990936437930463024403578119099059506799824798218251936958871831865042605650340638049676368289407108373483176381874849238544168439625012039507847441394260937256293277336695836478610554194202812670802536167882111139682892665327417809742485194085279477147992790504831789054512967339228103725130606470483394351714270338348713550186596166575806780087756292258453775524259354664564517347277800099188345639891860467032609136018583727948192455083302365901205292695455081054414315856828670243608832091247304784033635819750328080159519929248515383036931716126704461402973309457336101247275761995018570143283090672207624793074791748249039715912711495295079679137576510186552754911668489174195170532071513918635052505165554415099339625906878003306837541555321756896861280121293194945680715754136629717393791019304160784020611164542561035998900713271800326862381188068965494560473307480959959970926591762058783987218104685136223604182975767424173100545901420221706607342882757137288175349382109269658439025031745909571544894893816793806257607478353221197301336549937943230520385432426841214244017260711591377107914123087412302598637413683748929134988468275907152283373038824375407210274456652807023940931953260180879264029855074961922576694363504869635817282817154000468212436608300544812532038643014953568456089359926114715978242841229855059536069599329123304883475649765271121868117917456886077915509686425653348332911123438527204624652217981823709721214714927058065709888292846399895551920727239794931787549988745402289479460384162045849432954793176112411713585875154099811466757983835499769031166976040832467572092811664431336083450124919485398117871943374160092199453327070079671773125134540215001823192490290250855748956493065541051575293118749034628811711191977122377339696296177653501214695321313451383858706747579764757714938716199468888153207721697251421027503242720862622832362755813314603854103924214153238825098161786340545871129149172144508167697569170027154843796051393068074019860068040371909623329827236096617291837498085695049680693738315435807316036815041864321385822006766163305966562440206737591433605019216526875374909787020211640793754469107327085276428862299186725096566963807678286266111100701598890359221497397912124880518795089176007035518076795541639467615717608197470763404140036840237499569796145437239900684936012669376826862703857707627121141653859307277674651400127518160743277845299969600021244416759001248589911328263436992305009535824995920474406354201641867333078699178479218014677892108189476471883724795364181237453212125254165546645330617770955875199943884115394742397539915903036445624784211029072646022720558450881383811303765131551539984954172936692461596273344516932331578613739161083140223520548147673981936273849730652919785320617185581784908157594579995227384563042142938768121718852506947710908579206726935720176297146999070716187647283110717802139825975915715958289160329894049971970660335175548246163347699082770225427295921616825392569040783338187611933842245533121982721097269330081882131611189485200813250661841030219848570629971894328172025287455818621552033985920395283517149948965546919928855243057076193003697497188898909160486588876443324000153415405904830330016056184788663989590181798003046111439883035879737655590597326467741924302488210048378825620642245513099845684076647654997660635619543093177131840553189142895115133779839025330761886411251102553633653456566329844088799987680378842484175202210305333134491278037583199678927411239807498220474456424542275565879077649961029419499645723264315838881732485230864880352335148732228986438833259010684406518515571794573061445015023846089060285181852577733018864882853236103326291996570898212763217392677329956351756091513354254224289195667619524927167513087315954068053614292558295822554319185381930236053906391609227044797992805507070646426468047458214304675638627966646853780168890763197922510229651135308520114346172959567493501487326628649164434095781670564187398200878206813493358525808137407621761057671031934851122436855000548693451494564445559922097182654493888689643712068022188899502255777869500592625575388298621766326253785346799633258455088908705579839760263845239963527080939236124322415668320389296641694621837361219925987693858561057735554115688975958744350445980003362214735416530941719932669206982465072117786100385168773838988938042761600087423004262571993265306866063840520600315614497106069170013925211476737717105995418142219866109219640661200476509384157470967280876159296370180329739096744391468345415760440233961335786255616270858612998680852609249237243999770365683551530058371765401402756826734007269844207381175661790571870620165371481876859134509372666488516009629251279982442201786857672188088149547526232988892628490787661009252693098152830218800446879062466705828836957420982808120306103914803216163314403515717839723346416703042222443481978326957730684412781017174916238333612258457993170309735507235976893559655920658338496258051396218778862254773777080068676043561817208628469430675266333315821181218830300128543482115779962823870974071158334617794388735971450757347190500100919409636014102776733623298523722047221006823634256725328287840244369920651684781652388280408101530793393846647227405384887495531881405324230288484687345266918212008001401424628316718316170950366111091141352485832283422406953361410698490641145492111449716751821960009939533971929693692501923053682569404499663662297383564300992371211761109327098267540154155134357918744868863633580150958107648624398706022939390026815227529417762024814412899761497197572050330935454984340072089795386587340006643503559863577561182191958050202020657153169225692715915857720771838331151814394300139323694653895809213238179825608558881594832278555055320700902983451711474307044515797908360755252047463756945144266340348364750963133945252917424636069997054551012314434016684337885191566534360660198993154723028716954220206816389342127960455134012350477290271937541433648682433636729612180211227722080893215804996280434915692442793125579331190146272294838130474037680418333491503629362007370461818420724569116544498459507625183537093631228100967905806036486583567056379660601567900754204790720777989481763976110804148261963997608719574464214687175870141048870858792708208120391274634606137189332063641130420049117664497274608927827145981374380072516288768468179892568109392455444399354320595413894097467506082124101804085665027964861639266342768718347432241418086878191209322220698447053207556091171095017281680691562603154214065896968816210104738341545206425532768130758198071013068367347394131397484335166334169553617999161493831254251218497486960908311323477333794692718123678003765576898631890743847531073986267727079071578112128920794195902220648801344755004797752329319007678918080097971407518404882036045188883679619919506089274428905177293363842179414538103653376508574278869379170053525212045059717198582592738525053621223895847113327827608671970303518326882688203211562706105826125966157652366650672913012757942463977103645267280573496761167899501844987234308811005096142070241306243188217006424842853081238956516292086643056077779707061637081430864022975115834067722243851996740586688364881236449439991890000363768646010155339480104303170909460259435197205559699188628303675989556764358808999828892136139070757073192024480555258043550329465512897342396159681493376710032353194188963058172099104813884298614413199914940702355714021656788599648006570804311122053283008202261466304353576273218280395129862358706476553767298535335164789833254245142423649196964221518631224219496883947763026399207309834249829006637468774764080903418260456896669456973176409110062345299019728581576243754328423226699921409354327815673092933017124184159866035830092157492604914855367736080731408284508862387675743680611584166920032001881991514514014100353819441464357009390956200010065134242331996598645039672413989327761478863050323548707609381301669345893291818258740948103105858052548898109704539826025191736547658722756169667472193859442749344140341053519181166991969088139207177823252162471716005794982118663092992452817272226747716660615618059099212324116234058121863156692421999780735203771818840972127186829183806403078111223354546706519251041491956997567900021264743504027726115856965277087088336208303259960804111801339893622499457276976736142560436550865997093739700518531915301130361710299218967591999312986242206328070801720776615896252841431513352250419275685521536373256747001340775720257652391493908335218361546166703908375868355314122926930402421049394965966578376535491655231048773506540270390174651547964938470430515744585799898730304463574468433217566220715259450887776151052333088154409982555370908652847360718616657660958872689161272935190766622507070360558187237942149656743634682100457628970949801773600195865184616820680424987142367286196332537931394419804205919088712573110629615358577239682869670002832834070562327101430518244142787931695422685213017014756904618376947547667162850215972511569889024184130139463060566308070162151735521279492606371054748031050177294973197915844122480977794005738589662453275709173689630864114229653707845080044393925756682858580215758996461676594743258305807376987946358785501488669518124574846426638852610617163347923234287350046912386448362981812211208245129161779907729744326247728436464319201776003052973545181521733533443288369130754084414107633389941452031814471205507383609595518698429222975388656372414479800270542276090997335878310163825363759999730934728689132202253189343626546011849650240705305727492413803442462129922291254492490701388409864574866501233556570876987195874922396339595848185338997895331317720726921672484709875428860732156594514208972719599630907011895751817244777463029239747430217548843253796784345170745748892230020888749600663398299615887773696195569213938979345566094904145975156448640261513002684399889174349396900612332383145058666752832099974382980391765981822530200300934170453260081871655922480825749378302009860926103827866914395435924720152864799743914618488327288838829900200788722684389296500639575531375276106519332518375695978521203177473347336529394351341921457344036554014898829283958886103640204957538650922053802322009969828085127713676738872741691731668468063799047215964752781217982005476418574792334369697683409087439827551300214909995507523320882860081256082498236191364387565655883228319844325780235278841084432770207380763294511328341966986329210310877657277604760672885939359371127854450549564281148974330859739270330161381215376051067040541199381631282518961735519123510882808863273238449821636332087043564803562553893612193823040282182207337982710298522995092662578575251488153225437346076307766543530312317955689399583713242982829095025899088783681705185670268899034041735950227303228959792343605361973741105880440663313528231007877499132946110173231683851479272062229453950031233921769788845496944995162345865905975494168149580340635305963722275442571955468804517512122546913058138008926028479196084834818570660891243006163502553553750814458044576774249676168434315220653937098030959519812569844092504189019079531810551243164979059221773626373001552657423462782924740707026311651400789196610125399226524836450865369747794568083540940113290761503853164603632505996768159430932032041222786818274971311734837189165178351246554138894683646645005605901425204080346390460609585751570959692337030375719274891356889891354239661930608495014929776244022463524914651751105140411459857689158957923179810079373387245962187279254678482718450478310586523070691466925051342374100511001143000728517176138030591400315467853849317543635389659194685726844248822685064558462228515412779166873454054889560543602553530954146414585765652751556548728727149437403809755187411643451387533070762591269097549853623671436489838998073715832766660616207170440611182643244291530088916033483674516724726328120008397939208139744830243319424876667633121850580699360879753356502490142685579725403505120273148924511302275612050718673005508336853967860031621408310375693521053374555153069646345631654704467394665203234463255556699107893123324547921954857320164558188848168794819107711672603339367583575504206165984127399522637570079227426033552114088939914632091148316788300190308250152789504316975815136800409212217026074925571656426692423440931181715166865380394328663316271956055136672200466723960978864313593548181094165863342142614992947108694523146193613739197362840138716696326167700803106008834658345258285917485443220738070295298743592478653720633899327087077352730591449831439166158186726045782575525189209533328184459211100821709002796158949593772998944948513938528102839206186139385454732258890864145269986060961674556274804883993013525379657246149571063975711328603624069394044970531363088714718822788342736763825128448670566272409060397848923119100427646110552982764302047577059206074380656946992997438864935369477347077456638685347589169296047739897554378696370934121441399575412508677912876823845205939768744459198855561199683344327716328778934966974346973565156949966196666282834362475031583845043924123092849630640719588508847853265880623651056608411575291023357165381646876260811778349150544910900096120132660917085632100793511640262532599623858660257426119093792555821726652357177112812030113609139729532085542861845089714987002649066269835666687573958876839774490376633955695818211227399218404109216195875168793143598460016261963928028800182960357327693575249778243238037920151749308176572430723226543162842882175077643296628286086679316587395034108859051974782042140735247047997500364862263842611054486453419554445008799681910749948481022617153929255363668841285364233510587368971318270537021030763998415073551146967983622259417137861193232152045843675577264538102990483426647352393802278429179430202630364385884581242446644159715582413443549272416307387000714218003558172584940828278657941374117707278109265965079101227257431348584166693972803460604019838461607469243152336580242294690508171200455335736411026181353420438371840387580540291483887685136973676409019741490549279869288875780668083072900519874181476387791603995657394183803346631798278343948823608873797943697246013480120161707219138039896529378106819510044471503879109975747873322406938750649608054596412077746149968520557439808634983534420687783088747332925326937514278967162166251507256129622006435776878327781767417240978321176072848744401898480081823732467641299096025477362851207245797550151877497090398349122786561146671613434649968381002546300119407295967923474085776690980506261786808579851993495418250652347781047950378416246460030675593798542769780694096761238929889533247927490194695676542330111506076920024762614176990740164865991708773098864249552115479839154275308747493463398533473644382883324505226800680799974657868548398759944833809567028382492711057415723970442792271312507271541095111227329452030743612676758606507881152797947640772339065003078941886147042820375286664535031804094344432725524763325641161534377600991375538192225280677594086234881913427028127686681184854622790575544733290201789661688093052622117384873476529407555887486640627047184112153140666469970007415210351504264525922448045435836877299560134615826118562239468458312246219136783111627869110141862030458963096047523281809191308706354858233300570911488674407360610699660967226149716557957584907840205378122302923789822152239524552601359972017652168768331719320524877356880384556236232616197217481582014453869553558813947964973960673351627902544606069798136719110429870327387216305653011217086797968862932600511271310120025622450617103291083190773306380950117682286986286851520537126019150362470952578002129077120381838328287574545836684620600259738119731193762338023755971975857014546103828689364056155198588867301223685728812107977021298918422419016692360179111902456765036073894260529998958890082334118138916614479197886906419460332470280374158010980396036940245987263483745975535925638140119045128211972442578056623932020203676710421533002319049720831336200691903904863024487017514439530004132710235611639777387010350016296836809289324769068902154853725548972637574847165661232865050756816856760530307623222803502192730269837952677696540248949079997995361943186037455651403160587546379920639187394272489932305575935230282283628279349237717159590355528053572099672477384470473474889315435884609093926052517196703899842587646394867906270562737094596554638449582306698267441960236905510450086703127015014869557793716917794690952480832504774064955052875491209524375788273429081200814577076380212660535995517587084817957757871424513139849007277067773147675890964054281406779305343585570427305231651522379208796254926475837692448668432760876563258531760494146404986703652652614212430538255721965038074726661388526147126121232475978149062433119218568314871041071771537310337345074198418948410518358989807613575466143671105040377524627587061622164774756604009518259058319121924221175387768600823819525957039083490313095525142891466533087286149329249142104587751713730385365334991808051220246723375578931963665693557312339156105567096828404769812631097400626267474450379281174642685263417322603414279898483066455954908419499748547225626791479524143872098910895130321108206547310623261699700457725107349343231728240595927204976495109666683013336309794094863407442122642077220283808197852637570635403406840425891853274965288799225323374644380578039866129648373642753798932388122506164067321958905302344877316582466211267479146555301365256891456259887266677709706896122311836792830855269318821835824576733765755609042428320052101477729487838161092445735460904452372637769416902352729038936029198909713806302824618250834569253744754273944639324833078660809145227246677248319519167611601631618851631129189615743141902181222466869456559120471521129866491715065936337357184422549084424788106796859801768942745747886412522265538700427422386290286999351133520128412863972916967876110040656403587824060194753421280101238144613347900082629522935496275922176354262015791937429019447261404776697258104577182333323764057756229681961846327840123873878442423877238456038484451908497742642215781635698041413328481103817203250619736340815490458096514872693782013254532931105403921515962495815949118883267557624612204891558651554925267838605636393662162873662675484070078743650365952701405535722897781881203574715636197595348935948657689192350700901938371797438695856512696688361241156988005254794536253898445469467885539738637159459038277886937567593689704437844111889101887817918551390967948982527668146466658101351266509278888444703495270424951147928809561654189842798272517753075184930294550676663437933833267307076415932617288914060130981365080592282842270019937775751737160231413445356215313383431765240364182986543484260930827101246073490307435213640396410252424729153837001168529305415513481756097214673845318476238764270961561710492337125437937973333588399885490952192840788121708131308113205487956845277874605272176546332127341431029704597884156429106645615889778245407671388558634338685129201699118481579966215028695153613138882445444420285918268143698673107066821410155204285973123640095591235177538106448806929957358396705716922164682506646208175646118922605725305498579664056499019679806590994488279266082406508373523124069739512637352964479944275709313406068510688485900840806115200938599548053479032202779862512959683376364025075911221552253747039512063504847334206857149723334655798129445680040086980655558545936166429915664162778934998772342438205001459185251284985088112320934686845797499350183505346645796360431319627766603892062533649129803999676199430770709303367635131478918167529569880855394275252311027907798465905971011338716587986036886340502803161330966722511678636713844289265659405244361242070391288994247775039741136650566432273435188220471733383948373292418406776408480456686155148133887641022270380635256202459098231535729962628877720240703964182152319984967629923304586150404783835907463324141099035708926036820049095012454480540260839397911162569799827044137505811824942591055323267571808619624305900364066071474667166941403856815564039241387373203780524750953717001337363898869584215230906293971684821377676683860833932493779463906636840593835240559772061454696241171317288006314886996940432384279256347437451811357168475913733306288859438226506626619531886155301479987648562507805345484694115892224844517864765560484442455231885164499664465973617583729369991033590182716306591958290349893811647639744019123327012640521332285610247892331510803771580260369280297105798728213637071892343139234607619485612249401227467134124333949734489104174692443926416974943508844944571529570337592522175110208161459365958880535118368722781019068812636840729719966329189573397397695347782728736841339103185394504968436635748575024506549311522178056254137557977398641784968319331330688922798302914196878490750828374509367494584497742605247827377793523775951377947030706525299202627359316922646896138378522346381495668729052306580514564155598040918547046280557605165003714676769223928993656296351075192107387644857999843631016889002471238683307136857460897628026343893726579116179377690874484659155986060659063223662425276067583254645956045570885448768709123752173753506856378941494058039162856882663460104991532603062614860754441587668555568510888687625468655659737442216023385215098004916531646738449509614423917034726723809395729598803414678356974269934619998657930997362328974476191930608273092688865176950921723604601322868991758984513590615845400191792661517101771679452062932660530068008656633022565529534482274497745851954714027842532762001454141554643112917591145006856545926086196247364616196225191862028964451113905600382656214766896683827037105101253861021973460328449015161893792974412488348190936138000798802253705735010868707810226564378385187041158693407235728811419900127359841709674901106317003217330340957581819087874260321152983397705597826861391003863574678486287456085813441981412740432606862065835749068156012554626927670249216690055275301993381713444915273299193177473595260949582165392603181698861638651960023227551388728143423676608335647180988158283797027995898457330502279576138459841998665519606002882362914818127727508367177481571031063070378465911829365000216497377171863447348255541014082877908373842267647414407598475438746894319421839665522105261530207856925076365672027524664281830986704660773192885711067644286449051107961081526297835707922068390759721379056001387239122865281299541340219711440804719192453847523981703877858233861217423099619280798770840144688743855176734624887517166997144013274953532945455599283429295234194583277424596700300100981136498734354501964783875074520235023187757815034289214551941851188137945841379864397622976301502719207873205643633407570252462360023498867754152368483474939798393194280789844422258396230989536397353391898758611193930451065429434742783833790603837684687516274291467994842691168630334874767982384217701697295278931011683720846692993881258947106204258942258792528515046700569815769749466281387760826343512375808979266227388164509289970842967651175854517834699718388028199569371840120572365177374258222311204127779545497184926303820730677170170847991403582920960993065922000589656885265453284779611039288695888633215792861207888261023861360345763608628134630875728590778630078040359533769665657875256450282200441726935189590765913239578336528683829233341614323754036014865353895481991086609894894273809686083460864442510953044784918217387093056058688654174199676568255333706088688368218159972455725658161772987539240782616660926408522851637244289999531569536375921923680698673486605617688250477847631734912879458397016774623520748415021273200866066334704369548941247707946335719558823047612426461847471851306144554476627422088874092145847039401969056032071114043699524121637332264509765064246957816448316102808347429487980801875949470709221128988150531787969043572348810548381458292294506639399596133561723528446458409293918374054540791038028723055481936579551266356059220906504056987805652097170653127289366483315025419145843460616787913467764655187990314799761811436230743300970572423953573836398949159755879864104357776108565752254196490708683907620015837085474429515241530775995744727868321017945617884167168193047783801918396696057758460768478786849241048992049441732521189417570139860991319253089832982189398901588227485272366540373124891252728352540109559882044981453235495028898574540680005817604126956115956093464693851021839798963674943387589223278636661490600216054839036194641815824244909557946068281681439996670137801197013221307537139599683629307507849728571177986362821971751857031522249178065119976202846255115100034095280822857094290756323143468878672274316207387870478027063056908989065695411742857347561772997333902887440718405682615015509715763287841798409642424359070417358267361627103506543973109223703147887464061486089489260956586710896910952155643238943267104187194178513057659223167768199608071920240670109189977675511374735872773072357519891818437359132535643522757500649889653215439730430675954775170849495746797889216360518388491209509953351935902753345363777709000942162134776180755795491156292622698067133892823936051710357655045768045235024422944062599348719185536273806783520117964156689194745979086412722529676368248892674726007722652201412406761188208426983643704241712826331952786362671445785545873211789388588301399671109170808086337193975877831400222115539662782247621686772058250534848830920681038381266711414818998048486320790608626810410289583725295114169177198331921622006089655892145818122201943210335321643972428145008761188039495821472788585768250240393415056902581236878704724477593867109799168853036651089450214511062485306335450695588750622569898758468098794809548013004375293312440218865424239484673158038809612270221465481135269023109353175077367769261165755507892933688967294197666877929717664941721248705109640656095671325472300834183835579464548019009469902635769607741928714438644123753650492819058261709825727339208721078104037128242793621436505308594147673288068268084203524546195818697962550136293293471476811238335606215753537576850385578063058035918659240419145658598448452696309097080595748910238139007570775158908457680837788642381395318384103219767940007818547352935356905162785267962841990392260632800703140185134820062245761188633023440665516320919190945613274060382941408626277559236443123015871934130623001973692287328303280792140086082681441719958536023224430506917141064693086398304054362399224927932540383405111629270928577596617119645381342592260971401263269802509964141087214068617451391798921809240990081544189532337601551704195683508767991548757658565220440716033447466453694884607027395913976355691258306705683662442851551757272059788337161814173716875032748288084163490794759552373890370670873661453095007393190476162459966138508830985569845572264427825755553835260074840542189552155509278422009416775200675955892728564034545619220633769949545123689477541077288708004405811026184812317140051693956488133828780859232854472038890099668313562032749269626637204566200949113265916064412634628880812209121833563931336707262169825083397635760154037239485345016121677707980237441512217288173397056950153115624410286888052912089104529431170053267168296926303786899080498774361325315373099541565221335966726702744861753736471288947778085405970786094936193534958062835272317750072577875607339121560214133662315648901820343260292686653226330812017261900172413452889574099140753574697302625347251312072993717584441086318563795345397539142381684412129299482080561570541991104043983820343003093162835447516301120740239790813693694555897679145382639733077796900604364444904278647516767999273014978113032493224337512291873715304469068982194002392429189770309943838634350191195274199134709813438010257082004708385392139643670616279731767163506563554015326431108860793648640280418077868259725877936478282807001985299966409326411941554958821286264826357503092236463902104944236418659507042566862255352509543126334454998378692104895079502874985193689064109746740393961834304808861201513197466847997855387849335226876958357704245544061020630352260670816694919336770793554582279679132871774939742874841318567264282945483400565117418713665609684162758829207712788081137083393642294604891643232470856781100344649883724394252970677058358021766116818974903867658647335993862486566650311979433746285397613388174455405276277717729340197082039388059168241335068972073201454325966184744293496371044296207193726761999611574314911896426522513680457616430932791037441807934013788843261635888195424602050209610225706009458069333724029415173014159986156751075120273863290635005681718926183628119077543971929454814471322946776868133002158573053518250000745855928958355214981008488743466188195594193722608191382038820399130325837703551040025359746415595835523775128447796390005224167036505025575766201553080573735232346379349709065456957679677320295535368095082335695129525521808154752854629926665884279600066064792700538039167198537716560619961930719313352831340095335987360467456194330139014576648523293198569470111329585604453087460306690521511013032711433302232379332952408793065804433011518148921923465286653270795483673379206150564220318870047913826419967169286006996705055274673206423384866250373353807908637372695797338851220648920668992161943634321488280029118302720825107737088085522096036448360670698461680280975250657886179114289936093631162770609613061154067564126937910724353155645421950706029415321845186419660956349175850893141532011266799791931240314426087797290782537017767906361491554112540846335457924498297854920305023938351255755767442990557543705782415792419094164195515409891569460421611461167331059229872074992485912406397818564163697229412358241948385527151231294754697011044685602095569521152766642083450517601704691123785949926152998356805874024968628312565275707122308352545990373382011087115630159128322700781402919796448275247673892532823091253302698944470445860921416794775400992300079119773987727060500028307912694551366395110401115795759838896155410375331788803051982545769358578130302701174783745031199189714358432238702634537963889865231846100845511985439603146101838862161635485211333111149128545748388411994893107004384029792236896007612497847309214111859784947715254148221150629970390339245767427252445715975316301212427002193960276394566931095148525584418701704921917189070086288068038606800772694379441841300008084974463467091096560972766607679013833600596180480539107983215564550656993134153171162565873916765208518972905549621404574109396874117639698342937355432412346934769147988888078328495934591049581827080660699768877332429843492260887771385241150982566992166423114173895307771161130885944073963948942889905390019743617522763496428869930055835854008077996065010491529910050545893314921527525672584125001945133763119399074542861742322253441637565411057673790623058533085914449468333923066511857029642100312511781675325922229419735410540228133170984036559792783046861682107263262827316244572147931203417391762840720685656939923973991396016597667261866779249177137912080954205806078015827200133693277650377643621988926985040308370760224289482803019150809087405850989567290583788379891619106599020872265103281893066122441839484464649095001757880038675917018024532853846208723852009913163982924505297230966440658830685841335553328638614462709599331584476131111420140564541875074724113933462742629248066586163831262257990425506562710899709324655634476354124007049473150010114949419532691125093259219078904567552404515938234445230725164426090082241265770832821992249933221635557520326355249746982457669660466747507999388996069782220517933328999137959813136478797018941864508226190115263503967820248694320886203131401968980685647207373844553840842145352148587875956878636210288862080712338802460937151643206830693414050658541611050694991420006967200850664897385431685372723793118450034083800171801406541844370223912141640325385175207731190573411539895536642664981858665086719116032411214031239290806399350582228777742367057114670226687849569747552372040789236045792009033749900482142688884677711687733870099950701045082378669801223498684337792523308151942889299569367421591733657708211032123540731428769905544074510536704308705879168745044079998498580837035571291145916932922509705626160735588823339573681022196853652337692050853642874837191247588038966109660863956714849594428849081023902143517833120113244135659245611306668512583924313549978858991282430691565551921821689543556190971663932724129745496549826078975509861914359519553233562580969939824190803148593079511014570809557008205711236334508573837205184237362364294423839063928221688546614874954175296443781403016592239456039771824505104479481153799835771972533914895606696911837127927984239001240630659239877595846788662828244687047064858109801413400531686126247578497193533718254149645566985994567725521999004209857438891045085497570691239766779955296801606713169372145916185105865782698794585668523057954942859441125908307170940518703633544176670480505083479390275061714792458210115005595903762555299042759940580654842690600688131366624468898131172087342010797559030330583195909457599717994986428360201358039215736113684340396559135579002393140787424565135272692847455035633357550448212203670238121847164819325132684460985586506772870017815466688399249621999258717556202752623774563384701546163615291921743322011074184874052441942340581233507198044453595638735543532670657477007821538638380619152382089935938695529410709685985195604132566267029959134920577963733494044954980804713888261990642052279038452425173140008789232818637128525289169607569991060843722275275111524760880330270984570719741003710508173416568872278579180470383176534880359845285902221282756108824646701818465163768017249370287937884587189343988719448356195189605395323724115281434918044935818174583178963278745525546213226590305957824083284237381368704292375409050833642872074491527195898167230012025621046931405316999646711008109103373028537367665319425527033899335840210117353988524450257821996616962737131095314464280282085858739302049448310887176305700658182468049767707550923168352980965444583375121890421798437611384214364901668630533789704346278542743048962786410967648793352829708886044498482328073053936984521972556591765492450119894312472261380461650304606821047932129779638986611354725132207046158943083986144410686416956121504671338304427377138368060108275468068159229613134421637724560201526686427424277639818553934314455305916133283918964146466046470820803436597907048683748891251396397832481688142078382227421773185673034976340893978774600805214254551190891847674847022703598492209539017134722419616999246789416431535358718633785419500888376444532305335551852259428074609986558843609293372576842783061653526396257372268225880651695761623418201496463869997371729079134234401873209364462723752911055675789808911627953563502428758560643543224734423935247712827009237608849225514577131487882471827947859886178390816814511224044654220610859360319409804486051008212503040271556419293009933320414796825032752112452155469441898285627596890100364486911390108679961012799730141676743246459820492226610548086101297775336803869226885563511418203013574399903934285336415891423444875184142225119406705680138637108128536468106661809528390341915390052471679527075959402710548198683622106651968560403747858727535340816900078649858875922902094041155737514322872537337728469778228547619292477258515361565619572767629849373845397339779626746345900549072422714488732049622587269882433551963032164668953894991532062588150967091528884555605966637625763469548665716584342988236678501996360601908978966385625100438600504762037683754948539019053599278021040417801756524184790696522526548415139456181801964205824553024489871045631352051500749777201505663438415545142321350596328887365733026221311836605827279600360237216196839832638733507172928824325323468271781967951880357499888274091334477892560852030816839520737779560045339913284970562065640649000821739109959221955554602850802099481861095190655879754713423110768005261610095057930026057207490699917125278547314846705008827542160569093668016049306640217246070789455993387903492300921877582220736581483703446210102270773728094216762173372489835140463771153034705709749758318364090905782110240254269229766614104548379541099317159059535985024241071613023782442348840521901688602058731540277132949717122658257674101713010090784198589058152762467569383348677527522859498686122890825967161721365409896782608371439460410963629955565058493492597227662138774754945897891072221499083969317818032802500153850674970733617112944219914504878282789972138283138855168749152736824408476676123378272063737235469432783826215817168284407462719968655533707231474681870905154944205157910792444987454721687176253948870827576553968576702976802448345191755402097057171945317531712577771223814412659834118881438635100889858250558130474473112728153285553919003290077815197937473399163609124213659416512958269453173726855881998637117631553529397330170010075072441698987681039926896017478491601387532029760847310536883628551300466271630543827058282442679076585145596073859563772054672242190086525633436080409508958822949495324499183767725721410511094594665611226722702282530847114053714209457631421267313308899241861954311016438902087004580017123519958502259990465209994111296133528328208155067673422520389898929709466621642212573428893880925437079411238586821789015663752021878057070419943789112041759312835464026492650291524094670200548790195682612843778207516782114791503076581887463401502041762078001505211392579872623049919303594038462365839828009257849666820096068702251761954830254971562820071046268034351149490771704751760673587065547545350167668893148594157126087611394662084265346632739817666785827803214987777272400270669634277818114955112267498815748357499699676115523377002354255109107189753511596117998817629795098087176907734079749388893339546191460231268991414486881298065925462738033185300214591168524606026881798190363821507410231117439650135940174504497254149999893188134926739987178674497521260718694631880253247779400923188785083113518894872940240748592651629683481550566616206078563714586995710147324211269621460964280753518205500425707905932414610200329194582095786446426723611865706692478750295553203676359280655520458021695574151361707270785049730517203897831962828032644530505779893684235346791784075019940849270069792423375677271017234158243122873835710908882377765675730396001245605319877007854699544762511023832620764757977015427858643365271781944288967355581253350626151029594109293106982119839408412566693048348750493410102461135516659276526715680111241812050211600701413216864614857299293252228337991619575192995339557716678129554488278069835203215931514820964153143261785368977285599593164173447187656605332100291533069463430278476971885913020596931108328738891872973833053101574610402116818780014422024906351505041647130474852066859558622673985985222419987379771841266869864152377793320461563279861267594117447432232742459909034744828440120866705300685095338495183450181416701328566198819303385643205041157694678316370441243772798343301758780541272321735478218587997827647826406262231823824043715416274808429129107825997083361010321006464835536352582075259940652815595519125800822382154147147243107270126026798794781656836883538104401343781376258644700499259052067042333327139413577132314019298034702364900596668636798524619180211553546999873085109287693427485010136410443105354682714263106270591198752718877421024877941987691842325112919762610979015061345197888631715496443102381588609531404472554143448006881588080613674935868880816969564400548780222898429761952544237353765032461701320127030757345572152816216088315497187337645993342126400306784789994812018681863208723531394101759081985534155385123298657113981280293838791802728078863529528022182878998753161437556128130232627024074403662948901884050639402144667471804829563063500878368574077942999842728631429499574838363519600866575055096107315675587446600473103052994153726619323663015374064357441860645477262559074904819335616980483469605460955567052408338524993870112500203261922153662005228605276020948946711663412108027895890934011578052554935969197747535539238129361381016238013776813721410923034532151418950291178460551160222902605043305504058114263807704026082032710680829947398875206699757757628540683640645743781073078892857044515312904807523625931063563052380274801636782569564941750042300194866122625507360201248916792440797308697146282012790480512144698138788546409506311478502100896823824594912331803100831232802455481159407025891655056744005376723225707876926023999870143349010825413733354659623273019373895344742168871954024285403774953155114909471216753347069480570888926352745121701729693845750455914638582647693354715781421512772446117554992854675789406737184714287496056860134797704018832704331680370876966308597952892594156997507906741488877840757357093938178908003298386488557044956648477492887819743945282993464728792822708347730894526653500606766622736990010762285606550282302067205173373462762589052365808032887780663617053816257368663513932365306642506988313606260346280232005475839053255408989419738485822416431577609159342521094371219848275631972130521282122263111742843825728414869944233640220741946082243752498205244282862167897963296667593728159528308868754973723547410513903935617056339615609696783366335662297332548681054451736342444672056536927363618096113453507766532137499444738841977508932447483457317656579755740893007536534048770506576349904446501852092752957383784560723734125700015658329643195580323694607998653954807369219864203173188073743424894362429857485357227399914164870791717353101367527893939621163209572781820291071652913028851593067787980279001415582526261510242687399950015034447950058140780368861973092320204026835590796894062613159941210100063510264083662075600073354255737627253480439829154670958730777246145355903645226518461620326863316220410916676346819672809667510249211784227593720178727205445307784249569171828159238264166548905973966166220492264275320287450194729895185290013215172234199779446536088730270791868868058048667081199093929409102789601018278678580988046526436046930181043221080872292538953787424843332720886838762481265890699582297978658994620561516048537938017237863463864557257766219606373029197894920588140197999151930663275191839374626362673057660837737029817905141902805079540999137559406570717767315977590093646782789331362073147725459239003204434445987169125603104915533068982385071367663165182565514361911637263967524780090832405491788669061422999751457321015239118646286372385411564285316521708282132726215875995880795938051797281040920794689608327462184066268860642593481643132780384945282355812657582090258037394511392395624872476025537863796690895223019715356505553898205562397057791541313193455641256702080515625862970791122646894482728728915753853617005770878098701208607626207222392427598098011300672183880780408140794234434418363321530259150105555627272706594612139000799281377475814270040931630165033086911654015604761886658365919767799614693916415731477613402886616668928629069352641778763105119572626080597200152939041981391938363217214025431906543329921634691892390082591717007758332571643695451742681732157865097680482160720776126628539158575049340661369810361756946548171954746973603347697968664816359934434719060677791492477602685053613159771454298747598640555649202049670343706101499863498498873016028031019434032725809768443868083008686976149759319193896059726708760562045121230094384298286244600893496902272685124421643552837110040583567387020758431478299173678012002010026970129070916437543577018058414126488584264403616429757897889278185203404434451443032302832479982599103745888443399440315151124845656730106118062880790401659155925728746582401679201765153565861775696600577517942959773710163618079647451184678342491735984076493074493985604595977705561850538381404919480077851006958578936333760188391331793700813208453775495535030205953290515215798884106590555954324073827454876409452556721091506979887099019818643893830354775097721500418258859600297218577888865868778722891931495659237547355850994375071275370795460201303689033513315168014624750720972498280557423539805341086619342915027372142981486621362590662729717536137120859216642211708667424463973617912749599842349063197165476985582163794127664221864684749599961908254898500990488086988928436321122359338262696388877348431122802334988195601815283885150642958674476619230164566769525284355473115971261810259574835726037401872331747765726259034106113637117503934227916249298055080792124446977455761957678804713610438984249477182321580249011096060343409071906109711863010820241441931764161725977007349439490158068448986459898119846491962178606477628288744253149538829310895591511700880531926946482095390020255028014659111952040428912461393724117112265737886836350371160643168244741633998011173141160513663234788323138464792629004772053763998578602559880058089178503416774417029373157697936885456410150851516257839704372149227809343471021252219610225160932766880347171202382426956923831473056244982610811599837756533058944472688479920463548372734960701506232373444121143591334487707820270467373895318704900505225251328615332677170291509231060098721900624877774620595459631398080538667033182224881401709956455929867302683687306954857693407912371879864636571888580450505121990511171430318057349107970978734897233658759207614627053210278110370430766576077070321732673702742321699698887926554367835712272747412212300973835390523034470434402532119267351565695116760109308747310605610403805505525414327238068354838932798527280278747267010236111642118507536203608883462254201333823208720161867180665971981442716964382597798492211233481848042227024372186696245602403563115282835650358440410153450286168962280529027094789555230561509678657584460193919775080322223323733304439580152257563936636298063554985609993038148492124050535941162851183253478746277519443412978395240992421762400854413988871212693175224016047567141922329406427194570147078165925597093331310235741307704684076972379527587560037431315680520409556040766130036811165051378105856126250803959868587085382405720476774261290223006594759397142166995829865666874806615867903539759407889864602554039685929528996485297480090961769535520342559549740088424151813176461215147418506095986269578796008796951949960050786987442214163974159598582775099123665818997041182327681841091931583884940473863101647877277819854990440627162015492086153653323917597129122718084113954302450794818274832750291766712333025755964594753413883263440540714702471892176863663850502790682689378223671523607778840497258817207207784568884530082723660528835510748605221352691527803951051970225871483559785583308615300707337581648893953326125177118122809600630764529107763559819833658653406606003991283560680990651582680858276462233257707467410261641837849498090485163594980093074112429843273389986017956842052951011861640122182859554974676675787835251197767301312946330908310228329857953854930491484173880487915607485486088641957979375950549075123318736532875938697800818705466134890647175764495034384421712952812843431788506738223694369225618749532647592535674899517852870484991587939920078125576401214235369184380293872132364383333553416987407783016394322603051515781222562597909361427925901366529110068325781293112594876340202491376127488880154306759413163314698679150119557330183079039460182369371361458994831938171758499755694405071467338815007288444739439119885505007907518800764578867017557869101421384716247438284113527702707481424275843300155664825944781181880526116109907828064733526471451831572544779071308617611404403575582323655457930373474693968261652119120645849466968518976121780653933935108084987892784575439143542336013936611017497274612683447002597508759164166342666198261686614179911283005183056341145293877044790431065856262363341059465705076640752360047351772119703966166199131692514080164465096761749424110258162436726903052367253944095676813194183923616015560804454881246749174647434370734374114391631952612761175380399270682049954691434045510484633164569793460014782448038178978972759259952066913914712377921883198548178711207043153003665121313898764082945348832133470645019201714686705621493119658987625484778727025274534942209890042100038043980890140543019907665779866894962283435224495957725486031680442875955083559737753058586962326909718339348152874268365559946507878416517622035578057067455397972400205961428729667959843553608607335342246799079842270746750901518412942749767326679525070499583409098387443881321204704218339455462375688126932265325424614866762518447384883435164243276660267935121545803380891061506914802886807131400761389173665043823671214488266736146717622648980426631380272522726954893897634166473486218631581278814868066871279978186904489148498372239614666645508771484003846453311540105271070273300627903791728014532361117480168210831565996731914345793774197066259215737559191819880329331305484244791764642919924068951475830478083075366079078586713882601717834546964338217201667288298818930041006802812074400945874258361113366467974480352371516909993800428348322198502617430636614900081761597488391192032709931320190122977043101914730246983043638464844822613940062446461769404510854267172183442505498311646093598396458607563327988591434470408042032918078126826402055341415082062316067963907468059219901820445128180560870415317589467231397291937318223859475594072204601284019674920157813156714142186625313351037189254020344007539495884009143739026235161980179550458964418478286473856610325529562000924004759986749672885848045846329786944730119186888897722574085562334174932203548569742155974333172410559916007397119281590467332197173826187747560784390844009819767466122821013535811220522444592127021760016501093374363515296012712421205465123435380258246759937514601404994566346006334932053445580365389688178799639151620079916909948537484760427967559892070459483850689662531660647013706475229143482471755703767331355702970980309749142516653468097592556787278535993048883842630173353307875674723142121727296473301226993732430609754422232769330619508061804688938549192679957150075697739389110078571600058008819854369959451257700975157910861935951930469425389414032682089887653625543651012147468394244249080260106844309269574847743281854859372320698128067728443739324192389194403409328765388001577493319418663157734244472184117759149517810668293600975140923403486801615695401910399262292148002302358094832419973552359094225930530425582474012411720767015254019801122162188005566964975362546677940203545953459805807812958111271284244228715296954598934238440268635986104087016650728820115651109274977926464508218168825307341016290633206087283832362239625056127112588192969968074692565713527437162448770381363533936302601731361909971506335048000887804557518489490568548007375270293197771963949731858822002074551667895711726124872230529028707819243779194729732663877172751573774315376198127040033665045069825517847394250710311627676798717777407749094097825315178991452264694758523475980123110864878042512802573671147603014911739228022143233106937468836950836051511010381251632900760887980847910332497599943574525272759376526078559890982522813740527965635086310320577122283159448139041078994685112198102911944722484236073617769494728673059539268352744886209442938850887161772414213469152759208019495917173534503273199189941359381719877834178740835901070762241934973700700937170764148183246923413877325854910591026908313722717649153937912164441540605594639630179504938510340512076850863480248993977841334458998147006454036642640745211316762770397963044552310790992860825222453691287838598584231643494053186723972947956121286839816421131141011386743057284663583674022408914895786891143295788510113550854173728521693577091659762988712553350983799893864068133171981624645425713595869924342403715661971027117968753462938581425485216737894320171095242589392094337552702003204309756197475814002415459022429871010514368337116190029419689416926763215774501459196031833447464435256509213916487213986051079526273730941169202863610033652139126462929439878981987870086181368061130811356391891144886423977338203390323361606145963222371015772562485554328277147793862960353456075638182783418243961302436629592488536444568644184414786004442063518037599456122619827377072952699108363776640676320259673684319197062689954591682900732027283143271607339194778527862591815147854099783403175096222227281653729765612988422385019782400945085253167811783923727089967227539217296633767443831358684999557080597136738991577194075641885033725915230704594356043149482830120809987671480532966038223670923794047732301510810223994159540294898762299014228746305444159465572384196984473716453546422506421597801255895099207010124130865891349094253343219348870847705026915346647228381678316610291011975324240579308007743306718667827735431585067307295945591566857832530232537879969132585376520290461837064673015718393424350571215067469568495200613201749781146961273058298141758572784956965986753934369208005387639761726314018005435643064335656000682870891830194321971673928628102155662149049107998152953905713082647931195931510831521503591700718947395348597858377125373936515777056302237727836281148066004351390288564261219315574802203926085000892768211711692270261777303845996721896081495546941397909065259469758793403646506004124867661892987119001968448170581874583314950604877164502731098242509852525042682655749040832464523882824014160553954773790588484171602068359830143841070887865090717821551299942471211353437412787103317333382917929483839244601606103383859396792350167935542033874277680011977588295920930241303035009641775536132958533951484557950089404798008080294119421743573186400456168191086681683611463595069907866121865243492249871814769109116831603458941509157145970141719580417459474453478725979700767867983693069249655298187007211217924881472973680299226617058452814909044061131778613324087330294775825782764265152177170216315297408052594050687100718208184426876525207322079461730426247097752543630372831708289263016056315409038923508716316256380964121249327540867090695741899365157439538773863210080598088363998810107813998272631932473808592187925399801649290502815430435450721853041205771620110379957492903488282424412013670686252939195674331949851742916936759273348482472357335483535853326848571887210738017864734537236137259079498801107277086949663668802299597881788763534133979529570396623452116324626496019199479068635828234432591963762468384256166058513868374677925835951040676451722734190979699076666209131163604181509186676201368309517181640859686150037280353515383273968228095409113661477333879127182241929903327300810880676207889346015107674444964474912391630461711608774150791832107439880628334456015803352928579028245189044896068682094549286511794462678883704694831190080112123520415475123890841333129384238794465322315948328671700193072537896828940035708902888893556825737981885791570208707869226744376418916398785478140326319646183813243620984822863865655557681065095217825129386092407222165844654408935142554104593400567070618962366673144175990509645051780357699151809617872805976816594297817115748399242813302393254476607492085458295009994125620503592134279727487145333784483647602626151829570863610131557357819561089412702889440542864691248500217540688241452429047421990753439892645889141274749218897067818032999559920777128493142611619376967891762819422839278192420889402058558471003921585096268953682960536900448757660032561348206351323675080864735790839664429152299153808436294749714260309746370818620632855668575024454429994394359842127320474328291043232467129524217495135472569829780808734295090752761030475772763428190420393678436735380344210882665869781844963329409263749116444008045038127949039062846440238182048260589239677779658768991295621416145339415559312465413023326843945949466043652631669600250116076859327076608181126828955781503566116449108133443887021352411033610459574616803875407230839769587083274476838320457920522952129397012605481401270612565284889127905661255969476178430521481037760096039053165077590701795907082595976158672929329420537655503475287858490706330640610310271058970449879635868133323090166786390048531999986344173414916388924521800376357487828485810642097961092469817562233541405046588537901032129603714716272416434704647780940216924290506165389210386589096675667720821294497873921603553650860447580323417354145150304714591642753242184731303103309186957890758800141980929547728787664577615940137122619780327990339793761059458912531072556629230987969385433164915001251129794927704730526064992407588860500321995876305304200063279113435385049215649898734986490222233557132304473945663324783324030707887955407393050637915241667190720391897286175035846198208435220444669275710586473717179728725152206367283022205178489626903207404013002723455615686197208441263008881157540902212052298348530158386118220386578195312182105665699709779182188642062840297133204124415776478233329823725327045758486695749482403545158555641891015687463524502218661205431393309531909085691851533974927465978629237884859681412989681122541517473452130109556255742864281958455536750115729617485335255343320820725974494818097078101220818311746672786594431327562456113419584227077073361663713864686364700419566413484117841579998519122590837031774842675594103386087301718992325084409970882355107326755208218655233802322975412539374387334211033929943090127095966628398305972540900581094337644091507043757946878551270086277828701176581122488301293523950781117070244570188619575120629277056106645627491350382394103716075654064089679080505977436212854762470337927393711751516716218795565944127441631857977521591980649641815482076955091651690987252032536721716007583449382172526494874798496176919315276232371042860259694669637899651081009707008307560918513648543949799886686139121095134977198267593516418874237808108560839695391221199751763506774133038398820173985898461788477284645803237165872697585681937344084173916801676714352026774561109176538275173230414926247765224980012830021166184968819068750659668335306079959548038695017164213092574543069391927240537285075752403806680772240610421204686815011938237932905041604618631518247490544449200546698595152691185101865379478117886795304115987640932128156683606297554096198100838552235673202347093478498309950288665962891913272559910967006374309421778113105730105962706704009760505506747225724218506075841951971940829489688833496684556348788370586165404907106984582729461144674962607954311167422970739659062713685843857531243080170341244030723891798116729611138103221601285316041678875934525601927690035530168445196028577901563307510487188612252694442729030517065681266756188949921486156944702979023783294216243382369965635326976159567437547839957791989308054548347431017301448938500379394095937493149453435981889196273518863320466296082518605143822356021371259843729892788426603752823060309034326964916204386121613079884778256933799262412826871088153140136950294609228030094233730504154637381877614786129629011055431916742115998660486239952453431748750741292620217076647088347413544547489088543390776678812609264999596853679069491076097820134564186888145566831111328503019776177648003275713307397370901808239846443693305210760584607487355146844036003146483826624516082044603305376428528103683105033382596609686844826247586006582095290838438278039783405411734183211288632785696935292130840370365286825632854713927779729081102672766678587152032507076463852919027505779073455395756923606078068281364460988912062497850969767995283269459215813953198226134352374410114337741717380296798621379536467613336734233249921484959280925649776332017799167554789843853622250603490691196149040402394647647555468936963993415640347839246165300098400173274901068995169798361814049889054042001555039561187092702429671927090007437774401664527909004395986379977606623135789996386426123304556125980949018114058582691784216218799053792739630033850593087262519104006103319279813581476481142230057351719011467097246109184324760279073059568222587560877773062987715462697357906736986081112670920292633648859893224633378703539567402675188625908780798231526007886299314167469249951947922451693064906868287977203082883891636937716724705548330222858654697696926819361685522659359221296806478015166612582186509809785985913658613049483500120150547299919094788793721122606302236962591513181746469647857369674113552329476379627569240464429541862652180619506352691616212312017140814101436008917718590992950378978401066876806390858400633166252707210560828669540919315177901745455998908301179238449856390321942704891530245654620155501537470051893163271948510346742017500475511919957387435369172069594006097741248394137287868023069445543156229166582944287085888373707985166953888772366341298445598975307178208005215194664865735751730015286368249052473503408128827215279979446880746820324566090283867245193260827576738586943439744449368944336088336592439165012774126403038233071736618594602081449330736966272577035202433499458399957698811181938551840599799017273953108942207614058744441221489531350840333673162806952591129580289289809505237077576017992896621909927284676180704399138278156339813528118752580871894594557707085817598664055396463964968231748737519089379672778718354398054418636534690602196657764643512890917998901414004399611598877742941991059348767108109661765767153465703478249430788677090857116989993299528503635172973280982654282531860343653590203840687857534456618446873901504105501209894696969612135570797294568276555531321735600963919287281760639973312976073359741501827956421709179441841525157895976297195844359862965039032546750834516947429916344641008553141521045963513501933920642598605776114494198434800200971575698710438046632022952293337164896542111602651248546251209137865856272729056915510186532584462373889050133469630900822879747009959424028113939833537177907531818921951433354431516557777500188420050748250848470173124208395605644791858023255250979099041743512822839955256992245795135659411163329778300834443882243059382674220148097352755675359969952644203925614856520584243900909580488378832261091559853627614034491321961469738066209251308756853404508529884447987809892478506432634978257091419496855938379988337844026060086039209044073386336756522630404714213261196731560684092840561020382162964958275083460546982670557528029495638027834848866918673858953949954472999362969582029598974121728811668514483103027701920486832337903706914995250343263522178083154941278187576887066426341962033879351558710675426425399828180679754031839751479450717385988101644705920142244087333667429213363681219353589057455420045736305143820490235429679817779591478819163204341589185895979940423556811489302650604373577873791769981482732258177234253791231020837880941162714468284311837423044120787756104604975797298582432268092183343130851175067933905633080380892940742655380259255237369207972462243147534973799577045380696385531517320085358934721820743252778773506118417627577016627939958028857148315609415696188159653540214401092382707801294653310753339200991687818976611808452388487331367623117777960162111575006013325727979972996522279021129311662163286071998068509408924977440080843180978222852179419378090563739923886764909028691791871077167662167588327089566018287237791002817123423934348995506356021891376840799561856036222412425984942607072659598763753593301198804786867013423614497563341988826564682436170860093432181625015155185146561960100608564492534611440574057790265408942503239664978851802094525674622510292753990936895594210364267446852124217340513517617867209169636546426148687744364056577634111820412997731778582180200758374097180991462207309304373884654668135969447348906659207035497826141511390267441303933356674310312915515651946994103251952436648071947328733731661637932442762047201718272178644647748305367267361854303406659455179725259750494757334130739643616615324641221638125750727442847768930029063607467542178590377054004717095746389126202842680616530213656264947197091334158657591702045211195035245641804232686447138279150245404537763519346427054734280414454365640077707550516369238245194829026479451682735494113269287525505669736623315761508881973487140412971289352777153185609999018889333232623680275382228250426341340336891253953489816449739038081924241133665669087797432803008659365904316149557366316850028622768880953546264225418755064050151901944900283464090855127565617310848024841260095612046878817883552688214602703044228886012785790861006810472994766113141268753044367786538985637656882127226198755653377717827753729811902105979490140804883714140429250479486705774916755531758434857767988042772131239817445650486241829836833282838837130825127088592016933800304148676375535730067773332464381352669298871547770048568863314647982369573984351576612357790667071664135749882452591413747943536314699900999231996960299214137141747278251006866378684353308193512610759481203785321925252266831662890352253469374961325258484565396754667116288638094588181796115915475469561652796506449037930238436572469359068234887144229681588676912469898950993740304841812123137652164067886706272124397014794766826588715927404391167092394893543865021769625409924671887329666745607485532794478605004854706412115652782561408734328852638000222545157199959593017116710324844421241292621184866045821638025662411521244053337373036099531719052934751319528869970510077871562602709327734723457770099851143430607309565819010725604384231008481483487342541070818423700021003502441071781306183689528595992048574299579168418997557573925629857677690701399105785881646782859916713162416053712186291235575580040130849444763656379733392836903998923016591516542480737383821279607478609762371343674376283767706712861927766514066663985373252814610191358023623006546750373456398025559972039583916621275310604855282830718979490167174690330373894885276872251278975477175850400942553121770621402733295131738516143222098590631961104164649989452205494814688051995269079349021755422438524355903859173580691613078266506274459082574908526690016573339552056585704582532436659864358738556972597972671330120678607996782520529495868447775705370544921498357435613043687204143279266366746251649414482973757676720888285561946310147193192561647902932358016362895584975701372372219525259460785726224370521478956294300892275554744686728498870788738038426128866592981777512982664415074535538926840844716338329753184412075541395491356138236068676012841641247512324555886445921380763450719439342194460578692177429751138424383150642742398113064042466796397814532807116453549562256070022233167499524475476133605511386456154831075738672934282571439004860071076315758828802803506255633341664056451332016165485940452772514179666248867879132845657418139023265198124051090116670578224687683434723634836267614924509404250766871742744247747806301165875762278293167295378169472039934067162860235509163097323022030577407473814373310207055015199705693837614721446887053758477907850835089656828218601827847347877584011173002101483737648128019361992154820798353267622919445106105788979390201459565132855192653574775796980806578064922610023479171531604909254706817782309395071039364884857895397402566445358363739000135190681684206929201550167269885401234875689096320061424226152559318119498345219622116795709719448084379048882274939837761514721892099446648142928065605779763710964694878363635227607657919791896004290810829518785848975341757700870571329535773120396717084855195119047927577206080424466010049460211449011907374167537432042694625181589454502869016648872531902155710327868100167397114043709045151974877805378777295600516532919196174642211718560911600760407005028961151259408216151452066640982283445303856778574217532624944143056044953524665076583058990692098229243549711136127521141005006646726084225597396097330516928248765992805029625603496887302018930976544245106436077107988520594809868550508200311793977467907043539663231096759620572529924021084922385110137385862304636704723733983200036621893831884293534978610715664829256091044423403408793762403056050092109167592956609778829273672804078208830045556256068146524959590812938458381448983572225141524267414327547082014438061779233071175723649574626515485801741710993738607915693838400180922962278020273059265878433004950263288179070457065421650747844516998571956631626454692022245958133496981408989224977796341933361273370795015444799229432097030604102069810160334108864438465728460616264772969214129260580367602532721840896668456461057533104460052509311608815834955699756744777306748875670933643414157137338105857095825964562469594519742674095374827039956806958881931662738489510900608929623464421434793296447195874539136354716361288841748600977370365363486175302556579584852112813776996951001878060501488075246173780565884265209400745721844182692962261910001613523143431124289821309861081531920878833403489635591059746856698563643410804149181351202456034875046665930273585159467804607971873230020830661026553760435374517772406079068767948197016799400800357832291305172196383430401312872890417090361491597336306027573545007896685056544219615234067139337296888799711256053493753880093340636048316604008987602752222688141876974009429586677372392134549404279011166719586441331379301460880483230331107256624253814068273236285217823276473074589899245798819058661975701460745286395852131898677444388267725565901620845376469752363254613495824425814247511078582853570508746474587276752175564301334129306389281424643236317277588895669458545810100119426150625399678307550497053076325051987254187945015175694916776856930849780598010802061634395524645838205613953344856601132036577550819368250948633748627143771575191928213573378272548807431517383953652994909056997328717887785172140785872289322569958641011144280446560094898781941847580936606623787762645843914499490528027256174406073998014776208944076564769517907532837987904877102814929816769126345022248956138449012125143222378499543310027172630102136555517616216325421790850740935913699021136472705832697801104515436976152556418839814057533731653725607712965069303803114072537555513072973376088895239329126466818571548801462652676402210410525753230429049503281622537879087151303184705183760044725706854810595252445376160534049904027842002377888918578947455978922771615592870126299597487560862710526433054166634254867394811242436739118420076664706714987608826129157717887858435228222465600067208287630738425244890747785301482150860650328627598224538475318087407942358791152980148456133587116339140073584731857357877139351939133510601342229228681266141929255736283434535361886041445653918355273640215698871573968674622483634999757457312775405350013291328775512649708952325252413135236322815806339282791314285552464667442157366176237597912530353472763042008191867640215363743655577910207557974324829034106077964666321857715091280336915690617093489232593077483641575376681295448262155212074352289231704498055820483413791012952177703294483819636499340361851408284377453780850388915160745542332774816344681394989325777951415218002420322427345254180200510583831640394674163792434736112131845762701271719740545246899592276382012915613749734432199808013370404456621083093773209639712375042770139155967032113605088492680798623805752014801514335009223834517759110073391080294251723817074943872801027587145105974293559883813768430378538100263657879526534872371856351149872657769099582290823895135487276970607096858509553573400978095888936274423794901116057439341595577211364120278230768644041049613228063918764116186506832405507062770749958427709106058657631810738564946772504346229676916507640725598894773332026849459587494782818073406149701592423185212568210122494731273961257428924629021931736437273100112339030481740975427821294582817804101268283411486393800088437281933399518483567267380669091377949723328587858923825822662196309548457552170835829800527466976493974580744964758489520526266424639428169669769526810612869765683662260571483315978971647587628229175162764730766089905909635467345740540156446855747749496120219498237401392195164949854659942998669096758821287213674282841377621073067991968499688455550506600673835593706413810846351823471810345827122599123316861748220063211069547212129549175282497557022765743053029718692117157698608814062054073789206102977665131004228308356852176839593551061166661893997604269426372915588028984310204685767651587216240655678797311517130527499582033397451140207055488201022539691201967955723071112437953387261091953876014643298097794031500809423310609629238363074656980314212218357552533825884955002841380015132307459170651540358488253704112237612442546702028069076293728658419348374492088818104542397195619691883523528015978911460065894792162525492021744853587268763941170223836802575528621483540910529399112375241131164479604698683618478374543481813939238276765551392608791165779506371257962385758743515472092523605468676133890579176815428831519080548255206202034058693641477177330349968074101077583297018229028838669774322327515049524125277028503201859513501086632889421264172107023724047836377763392226919839586943091250476278222364400687491897896225781748284988252678316190785749601000103588606155026049052577451094651120901342050641596247663144391242244767505958742436755056106886248879591775326677840918558256335331062408675464982270077548311771589905763927308840082130373984759857288179576740323257798099430616127013619674636234609604620227166286440680923969659919724126866409880210121361169175537180376359135829686127044980757616131867695858561716881363067529930442161938611505654913124001179372156927349826310927603182161528058334626189821627103718665692597345238820535728889986393754859740942913737287241898409721811012968919012298741112267349983399734528682469484596741285593572703268200197441900481273015793837527430975261085215422439473216562475058660056545541201107557799735209218515427970176399128096961690283863024721298960757220192120424006893506009422666974924898495492203084824326237825212582537795654735725749744298642147698266534518410862488152681099118580762605161014896437349574420345773778621488505270421637348370664265799191786375938253722403908653222528511136808067232762977403626585946187756921171976312446589348523905715602814137460786604164836095883281202340151946580794420196819358617655898913535625805788982496836971676409390762790089727267054431619998664966579276440693482578482781331972127877989909576700742108492491347620706162472554142768231586967595714139779595208129335969373507291129939673488432172077375236767612829084943184134935535723890628487012142379909936130168087555294311125199352276971629549112613262591998554935034191819499842566325117026086615792882966607519557612986933180527520801161659634475463711834935365478642730795729732843621354889937435676462437647930491797547459534409465296532874662137210677585806632976231957278080425616251745284362894676985042040643939497559832770137435314810602262079854740988705858197172045085604481684099293224079010751063888702286874681876116473512551431669705049439701417382823987326184654995890029910654006306141674005690352050472159806261345988515802829950620104963797940306167266345531282308132727907595962413589357389685540893739081296474455966290064002840026667521516399599342517882262071814602033492391253502247597487486322610514128129068637614295688449644122807431861013011388704919509533469584114266618204144382981549429075818115499453265270144535906835128231001531446528380994695356692652853085492911018701547852176643667236307868791979076218566654549445013019010411281078838466182833046655218324985566401196686399654575426930618516360485370533745918870015335645282439018012918385027784190593034317279690641880505195564412958105836791325327121397368502842462683243617765686214509794770253992796858398660663831574917499699438382093587123375185264435090349122586871310237423472095159338568521800739218938974694162699763545079115756503948248720270692091178937897770199697930266173936507232574911407253059240132913270759235712874588382238802185685733985550758006299007262650419341421456677081900899663861118294906404152140761378775965145532442214248467216237159187154583370934334834241198075491805089844532253898383502593065882131626106789604468921526985766517339788497496856943548377799690346468995143480912075012277226873650660150730257529300784164836720821607624747560486550158224858751068166401631165653638767270581780643712903575757121567845117259480260771161869600147275853728007812998209353739127735357627536703629883022747638541031817644952179539503896155018745323428122437703761296324798008248759280599110029928341305025216214646421546267346527749173407029778914102101278447289322930805284902615278237970453477371938850079176174948160231675875611282910710595824402307022018827647904206297954500594279016067827440580164414115547554064389896626692016297267647128055822988513190452065245995796147205924285408519605162386158883636421318022720771180135263648640030884627061347149320945417303336572720772590021730162171396793422427044249002898381723003506067295753756164180216671188149957669254143660993183331300156043125801421151200730270913175632403399850317289075659036053531599000344460919838663562319505823664431644224174564171281195377407512947855837786429788385252145831536455675375448412319165159377134376149794670185079376312739577869626761797364178347080252438816906371277525119227659713975900158257346947895983067056582932563761328268588829546857850265923852596059615917178841639066875391957930023380194737761332261872837761484713230158627689366095688592791349412458458421832006495913100615905251166105274599034423896612228434195264392451730070225973553250385523109809814706385746149937128849859487494465179642616565142199915872533412566836882648173179573376010436207697126358633368323373527891412533733041003511436631676586161654254152319161057648904803066243108603148588594192854293126988745190697854945702215627316855347028551044030340967830086139673274838547991649224783164151205710635912131405234250631644594620174382911995318184486877373392470267661548440610857484479489873137779136883975835439377524354699268077221892687769172139992963445794520476894809508437922225293926906217942697707373900860136717900974963199481502247378736951791277753583630943111675092590543976165847941682665425859492032467316543197119036767443070322252404097660549666667699480210123070747682185841926449224676637870078605525124366318823012162001742294215985265254982055620198488659422013338651498072431605724947496296255396272693162480657281535401605267702375661020443349466364972773062366243318501288195003551195776559866860812431871912917490818356299535216258425567402900433400968020273459157444364494881268743979448103101323132809048182463310702245538430587367510519008956154855856985811969859853922520879069711655582304551157106489835086079215024587581364796500918254619310964341939863564807728688444913651387282500467871525207550656859923743059714616359337054137426424423848708663751627848244700536597973334704000072337275114166839936021710382339182058718037428689814010078243143774827704858376045457614825856990934094404574737587833376460692740270793501240661193912089210323959685856363234722706757746600860845370961725291608489024196522149755687073453077915819036198073007947207827587317280035372647385420339172785798567371599066174142147711973122598906420729634397697799660328639609821239833111125730326763134435861138211138717603173350080171531485577664949937934826333598591482154315305189295739567065321362848755899973977291843609974107547629614777598524800320797694930917152942537689183937003174209952399363212277709961986362049207526534769907886204762406400938448199951223432666108383216129733171781910232328952659910925555269113530880645303341691667787710851685353894956138307719038242137016235206527783565329068175493597654571327662051327445261628983847607183740020907919210850253759292174501563690122381849844560027696480376564991539423422365124169214543608656730274060706664649586028292466143438572252028179118245336264649883673242227811477560981069819466850164160395409948250078650234618739647589747620433830708675740779647218487906812093697114782619322214385678427015034985347451582518651606778379371442582798538856806687462766035032068940305102896388764226175650473491115812012901329786216489180118603220639076479983420471747556500669185938972149293211958970552026416936591454185268700158630170204154586444771208121551202026890406902341518495612545504678311698025690081681214969838554259837998397608079298254896452375168323958599305265653222010450890270256765106248600737189950813013503923118589708358598518832780559808468028584007455451358559045184327694527589843543902766283138301367692577095058232512028819080044363108400090161528556088067500314662244536854541566160752003043314758937688611314902332344656934543391149176616070153265896943381151359979010550824877665295761949144838781294376735161407063249261496882712148240051935007534233711861828828633887648644496937042470343523193920226480689161469596831000419902311074483467141548831222758805687951102545789480986724382251396637492408258533330243577120663101320662921728338266758692014544282613692918416054804819362805070220149129981360481556072288494921570261531660404534408356934570679300770005052715231323289921048900176724938049638507732615529927130123885253049685054436597776208447539144797426729882280857831468114565605643338804965544114688482037993231920501902001148750016390420639250352576284934680253945278540798934457290774338663225939379015954488688127497520671704635935179712237290540795501658101229633112573769451426030134253326732103513178901791232417658390094105272157122643266707511147724734743923359637662848906700783321706189514954385733167321314375151516869186833835370643831697621039956276283042373653199211546323366558898378822876875614805712769679082729990793862314175773668328989552641439502181516885833423590876926080735284263423220616063812481849415695107628965387648323394935106174277361518563272515675443659401610849617705404485904934181883422756474253891041444705312711146458159357016589311478999488972116037817178146421931763567879542272759428769102300375720989887989649111652340631395351733834978813678689606319098872054195419803522370498612754314680926485211276252882977799254036363128373738541220102725780544552927909547853341177232693264574360724706507238925684584579985749013642273101803733247311795750724932082443958962772383794773587244428060853870189948096440137383423139315526058467735051561163905786758132473852347475966892640127614996394124968437133734014714004738727059430032146069551032420071823352296800283345779874147000344735788688452457510284261852966824064287994880594833449296962198908699942148077446262302800401453273535665390741313008605439664653359677278890489942094619565416075646812696109413776673321060066308239868851048283239635319641507152076671668878471811958196370800428190207121732528464695610940243278612979420770968673472115798214338367710990044859508947091882757386334070220850112698304959280507373411305128316369882425261328103302987471782090660950557426996687174000189450130195605132390104067419185832185740003771728848882054766805029243258459544698634757140129801975603312146432128354760013271472004014309596516475720804669140633527392517063603949038313168528938842050947777416274398886807577893192402932650828881335414960970177385296729955396861700331485076699941693988184632234847153639994248539721457795921149983216336683325532436962592553739725346843590815176483159238590679961109745673210159310226263281213322671924332715264561333464429384558006203243781881285864325578528440842477617116295687391029814185037396006573387438298155859932403624681764038059238380766717041278045251528501678890572131058225612429942120819369282265910962348117594881759676848916840194929648142224754419553744440797849229989489181097689567221288677784836823243066040431910921506849844430248855066186189776350448016420001261575025635579580638406963325873963705729351524871707532698296146125375719947901900207234965470629436502248322025525871891785625230738691812354615187959560233159832929507916966125188556115416286830768472867580889412443265364314937875289619882687437280788219982621350873852038677906142707454933197475841535643242811064920053514406001145402342090591384088360323849261067953028050907231188071150109429538629110136712990358639487314605587799665278999728947226978938389112957964900612212573208599445421868536646288906541133567068995693234783886515798262608009473549801045033828293906798261949250235926410816578070017555259118932245039921772540205909436642667108639486423974066387110378357286950331230803742144095476910706393247298945597266040867239548141746970604766995680442121594741928286663494298542003163841690982746502105413173233943517699872424419994736750089808135658801981119057214652856867252248709694070322692290888661054529873688609928106807642892948112610805021903239911577708174523875934556311011020470062213199639989499735496000505224821388978832749896990521696234622399954898974631599690532321313759014821179214195489476289341038397336588515774123864532523361451109791207612495916811021020412022805892377013621872097163735853959856902675289951496343716695455222442716758468479666866470748276267265096793506189183067610082193391321614077081007953377647168181370073781101551459419710337230478794632626326283167813494477361854664794371618376915829752319447286573436308983789021533498758747750968430139255813601149270090380971814027483168692252882976473307023504163114024980248674294917541249495711527323861696966562551453223836465960501929150542082699015798811905820438669889836310320727378245549051003809001262545936846761587709947173672172747187220190326706288751969335554456228118483636250910371352462827470486572573756652900874408808667816327663815414074261683269710516573255164209247295419851710935553312460594227128197913921958744129730895544293610845507460038706362771930201949856099236303032412416231681410085511194411950734839377465190034879655271424743774448067124092188460955029457996681170978725371018547294100735742608169999036057634057349940351910971692123330948722421299553210876411959112297119930334981407079839435466047036615532118542548030386902661761973432086816408334083159231300176578706715743041690312073227859774296480723541882278219457891303309663862278834511773547080909477120413802452201120921311730087926234554270033644111453423684637200434452776752315339387597749215200944514463660891991124848438156987950359555263369952936308334280075677924148192083427720399851728896758380119643644763885041284820509547918195334601016019606817386600308525140218910476743072891451246654969378861457224849496432995581596040627313536053145476789618232583357617974462307315171972662106880212074038021887054240354351965911518023417278811838988490198238184479529241522060222009874923374169302410559794245698883479441429515295772822294727301146406007384694594886156766847609287209897851036699885657739889522331908537147783648073695303603331825735756637762721196333158014376316053271137471397734635686388894175511259811347490000112156892418150270750084556529313496934645104775340108352437522990083254811409330358572726790118866076922398736458089396956858436354829917031878360148750473601326195753712012529336639087055351388559787819242478312258076330084821071320396392994290798949296522538597769134377860073512009928086195730645361076668606480955560727785494093886413506668324820230588705044316827992056093587377623118179236592163073905134373824214217929819550727583104875900899514006315953511851571342256772284262419372087883644525054280649125885043948986924642481539826852598303889234909992123581007257878604411314647589632608391624858750250648259446218042888149534394482338359165323620052702605822864109005672879397285470131488129441822655264994077678967286032337359416753198936359886156374726059399364716631697305123145300217934511755191644287679863716184163906312882886595746486427923456774437657518296615505186675477832899906149442061386382979838623510601039854016904032941705894378337658372007864606822401659669920072939744343185241687108563280221490493250393385646065915224011005109507270832299298368196148105975953482087707567318446089274736559324571265940621443926150738685789160091792543261476981795847760777247731364454585599730040566498924307620872588671762990230169904167505048653734547214048603188301327437581391753480896250357262679772576657611062619607962264879604981916981122919958287041194373023255060612003319447676944639731361041233461646410080158063052040232306307967510092773988880171739988789834048430573009653320870529605993826682943114699451970922882427247044553089163049446842056889614634266671930844842381543544192707675106583351813244500925342503342053273376319509065744776866825198149440651124420275881012284444963562078331800046263445145520415580282058272128476738355164075948223773536612112440938251381421220568201240180861688738513583086324704732808737652285956037286931207587587003858145541121020997578503242893083483432736701828184033010744148156534402377990826460019686531982638601634388714720941751971214804935869019518581796781848371053006091644106274373501407889431039410756367500493010585217828608503487071069569146677627725037331779781072244969399726121585612992909163698021956165905397985770185918755013112171884175406134096327460576355997906164162703577423396502033409569336833564109471909461929132495531563818661141615839740617344888083208590102161503295707493092835000799691240696625023258380944644676606765701763618816261858002516449700823476915794755027576302745999500827617620311677514865029450361168469897737418934314591717527698310417666858349273525835931783175846713986641923223801878222964836942984085763488640698807389468947691656154790350863566092682491473854551518733790832077125175877506180531005271842561404868117931334911642965502713019411815267653660066486661537440357395897955663236193252043544372647308386752882719911399774364174364424409853979667332307501279669736237723583696604569806748740660036186770187231506555860318001533097534080280217223162890167624398782454238823881761166883578729267234045271225189024310724952903971369106320709227759737888917579242974740409357750648594674341953252132727519902920662136388961130921108937730959964538796913270866830514626327357816291611369207926337763699388830900586333548353681682784059228035752476703251479803463349858754327324073367335616762506219133238175213708181719985822705458162861975623490980639462709339115237322833450750052333331856140457391821398527465500430616044632107733839958785909979474339128300952544403297306316381214346533075805558259477910285890772483610579343192916640823779734279581654055741160811280090717122837401365702655922271829133470162178309558527473916872733804102232159649776123234192299963579489698182223176348018587656595738765998347529873646754823748257513189544623839430281586322013702014972914577686201443634023430042629152670398092160184195782711953874809622003801765153962568231351153694665057876987494966596994693965175979563844950891025174250129281367973383956867414322931309452116340137538004199641490028723264729599809618393334621980168661282040541267791797012358845921508874718850047246289922433749487693137150252037404585998621147608559620701827533998133319181604118715678636490048263719099160018901658899997913506083801555002534947780144505450262669174475667409754161894062916688705676788957881879403750641214674829434733184209816676449096179789559484875216581585420228448289147234428135069924467490639777697129633635951707593415249717195348289073488489893950464886982617004317501452416683514354441792690117622960058113228250753904217745496941749216863393176910427938069183169034435332261915556202235323802012252589897396746037005626323609909877884150996330354290833233330745082943200454503760677088141086137785912698827908363059640041833115474080724758365474112762774368617863797627991398883141068475163127707631149653426080201352305424170614725119628704228657122870208560543474411124451583802837972674383675002316661722149300302535558152565902032624307774601699731197117985483977415062626609997612171967497202026173572505322642173932059527382309378243393195345175412986383666736232335002499917263712138017703086538275413154673097761878734164111631511110901651217131986091697347258651970000266835968130888721061411853463312539478820323046586068238787525189366844491983609155850225312132732275873243496445593188034567772348808205264358331378971791513192044436077355350218553067418515104942458443361368795155552473072014052027278705381309480993052235696427812679815886709308944436209618878609495363500159865714499931515361903311881439433859381513814001112637414110878379927139451022883310823622167961643652253678335580200733456381826241540563535481497555472835075827759118745082963116409370466602478674463099174033358973373248203709057991563198791937160743555569764773941278042565636814284528177428449576194910822854251946890770065655166319089929017565562977003570031227392398281174392207848845927698535297315596529507395808487263631964184293790634726891874255169311388845769120633354354393781222828664775990392807255871557229018696312938417939707451674707914213859331294561007199301517698763464112277451881250121244058586904892847990261413966314295530182493444566590381092680786009335842084210774775775070686864586752819428325049855797781378470146308285134985646466047605443609041617367147327216659401456183534295842356767216291351990292108238478607131820851005111837983939068078321735379616996223062199230428702588484276088963861851687610940281459562289370992363103747583703985242723063490874505637195263281778273555214030444386573620618268106547615276819554640388556106285991612924223264455819500994293803197082275457090157554736060830025508558458840673801387286293910584700558232383983200540507071199602528383063010818501454089167837105676798283487081604217402437277635503307020820436121402381563762826066216550664217487548287805867350026669239167084036848307902472495903368545747046369682551917610703894569038936186213281473489912193014568369974094054806604996155181010707437269805684851009545105551412801872567292643727771997150966226697165612596837561658890992242052294509925772310472013666655567083950321756895403911560979923661789544931277856710216170082982236461987095999607070477565958450856992934929763047104198956916735475323317175137760965871013871459534043095357608588525934992136900569088523838700889611555190845697115921774512292985887281792167599066625740982350405732374992808229957986031961939021185061387255940143411620078824153659515651014083611408194319518340229130974873112264679286355823486224205900585944423550380267773057919834426898692371928935119881129806942467110950486746107771890709998460154367894197316721019533955026644940636661909456375442891354896640075841953789306764871941657079844210057980234022870493805965571050917428539372666746812212141937909284012661170168701349864057383935983461838170416747517652456634855635242309580227744629705127670946719720971790071475489573793107307641524500272540231672951260872042894340568857770087367501614662606138251585149071917727984353480174053722415820576310132789657478831116265018034366644123787607755319152913921246326038571963474326434584667627610032432160673947179728595419567916966606617382820213053322326337014186667042957982794923523837926473624147738855137914729218919065290166614229032611432933581242562939064386293054833969006230300857483465647890854111744529860948827203964209062517374569933963610024862636544908982031220270977319095523596076728365771817093557663707702612915647317842379349388601748485320181199846369615321408755998281985997648744583087803229616450253580734595623337011095426676704987881346370257526646620545078503444534759733311839145049838009546566223537304143413257304421596111391519318394832302157951619246259178456069264487119426731071039717621396477639858477999613942772308208473599367062328470515844339435906446924103029200964642798159151935107010200504365068646940577589794537863104887552400365995209771183301078990312568851294829883272956793282899700186162966736044406626123102862986515180633781482049740917581060561743799570146404258993570973469311498000785633921572174065947239321765729209410885192493084927425970951487642416337194954449651553436586852811446201019379616469065065592185628437735062734961121610459068786683799969828146146982506566862335097811180638601468100052185613894254896906267293373673844154104907760193199907482705215627092749547207867964696218591339439124193563600772913030535919681013823761001179154362917909121170269407012426799426906521142934140905676986453505379373729289407941526310560632535998726755005057150753534139635197084416950343350288082273437339533716866980523218420501450101113971086041554106794805831649995084299187640390915221837131751291634657283009088075870259479951502494202023079737585451009373384620027756995917557665652190598929637342320384348393256061192809949082491020318159786832843109622380315303664287384967567620052295717101862565325796381384686749729495264994419512746282945791416599246807669516326114116596811714863954473929421307588256640210913032679211367208334204356120787925678446135470065243811097902340858649208569486432735088456251606772345456334756311898768664976905325638323013948524461429516294459185633704830772446446484300764397384037661226232575027375245853521812630642061804113503493522616784884587835647844377190617254142280649159770602561833134089297576664485163047356391181907932950539562617704669864371419104697203850135660828727620342414033531887541494215939137730025437854562571633517491923059160983392322391859568779515542932786663584171056051185719092645624565167982825715749807699544472773597621420853252492246979748873936765322337789123750402271815623840904876981568279932824333339646788885763672300344976150610056416573682168437617939748604803133867211426751809432368102219863693653064993075153884750328143549383399817583044869181526155294288816125619122796778367104948493522164630048575331268241190071896883416193510208787215215348990187716164225421879741218187953335339485795588363287417710697388589443339306871193457507123581698642924222504873510036431000305787385942775355397728187335852800174646198194891840664117192847573749747833533084772909772096985811099026249133944843114172854469667826577882284184774144812992366734126114925199628835387656663192482489277482279675345258468870376085532037527345271987319569186058843642513070756378889279588694009328528371035617221533368281930211318055452849779599142887019807433346519689153897091230212146760990182004326825448448509234392307314778021844434047589429930052113034740399883464944823296726848871333280679807206828679908982678763685165687526453470984806488826855697821573006232519487597425682362285375888257894629523318869128640288303047122515087277641472053745898436188511262248005116816461543230010559937193633580584021014591101266519548425253996131787062670998311900529834720987158532892784507083603534922185786940679299091178980460749500272633723514693378671901056643832927430572436828480575187708540516621730589565508384767744558892066527579289783412362023355970882893049058428721271910185981154040713363894173417638766191621289021019380114293039435739572665656294302342609480544652471600326187576692557618169547585426726919543378102607270955531663021979674106843658559359789409570300267528925694931689244520636271855508423125554989305834314206928509100750218978263333075713399305361224945754654348273970058486554525006348380567190179345425691218748228483632916261756314478710666040054134660572499236373423211357372152755753564284124793214106343557044238597845603848802120599652426829238677830564347329253254589817827591910749298062978783493259003713970022128751446183202353170288583036218489833442300352655207651025475670926073427855743278226153464500117087321786236409203663408430483558697699318190692160333355231525375308650750093873545598741273308848341542459554059520179887553834182148538920896450147135457293800092746977271014534959163722522608758091543566797024204891754459334837824538769717426905238437669911620433988969898394274281116900803052983462543238765179561472710288460280726004531220077757128005077137412887427735132170359230178321565311633899433277510786931083000171739753885430394839724651380150657125156332601809960471909124699267919364321502216739535611406308705722729849089203585202260450717992475728957025715321880719054501517491894992899509514325219965696682306342633072924538527480711680438694254861355837398041777634767383419458337255327048823700166942357215355603464161888189944760902762997124039158703037228816635617037888574686906121903234557418526370622450991730964462650603908626259319388173547090037957550796764787877045417353030800620494475346927283386970768455382363616633486129147855202628052434527125057716100520824831411683064631509432626252126066386488272705537943916833291837099074409213646434467877341981712421974488619279047348403054915935758816193518803742213795962898019291751586308407742344490669769860469160287519903956328796092271919121691204207285898311730371538627483086492175398703362036391640437346444923757522799721378729675877574098602299071308359651219413946592229096680638667239138622130351959771880902160918067019495768853365920238030760863380665829173199115296949044583366413095565974173872255694694591859044949885427752861015705990052914751294759047121579211984725630199667264159494193808567911028658687340813434752705237709453649609878345911499526378344216542255349396360043130826131159420757979709158835195153532646617171354759194676963967889155948252649269812384997474820126693168843515225571882920676598421261215176836374581521735601795732237932716618686753537377242076303823118058479086007327830198104751962131247028271360013110886050157718546920980097703916095806812533255726445061796068500723723198111738261921156205459069949459344685235799630293964241186644887402283010762585081594439050017744015439955384204496909885920170591566986722744008682608359769949106354501643943972858490901512612308074313342015697123608375908232551596184063189437690609198164109554995018159492875463468157283294629350030501280073127662349002325999246318560184850363989147436543073285780616858891797075052969173718288647943142214779247787045715177830502111749990538841554249681426012492444312957985072045044744636119208442250390507185354295244514743893467078678885647388189622339834955927734884719867678283629156801109250470747376262589640271875171413372385836368303345217239698876900218879110937593446540296197556481727160056605837291343698132234353087940540417098067393866663965321620324033425656946192431270384302589049587640200344102171948136800609520227643366236124100369842447791403818826736884963768124246886468058768899628351611960024635434775156340081202684211439489573798984247363873462895250368046280616925910537165526143126384374409106364056242038345494873676380333299507540068443433836309090321977662923467415393943192081718847007689640704482169250327365220570892878351055332879039159397514872003254368554405276275646107929691134995438927416225259019912419034378507408552474669226582981736138742497150850418972220364859076071144651937766272972277573267063064220871174638897586553876471849311259610287460394498256739551192221046079939958442368833023725947264784629157754223245061136486150895149213782726429631486765889940514994225502910015846122891630287748521327550160344189285444738660566763681733877305556550123978566434537310260153209458977724558666042032716427298016930255984137896658519803125147086026050327037018745773752686970789504566016082321880898081371345843495948624658087350983234191914718401522644141096457265118504993498422740735464236988265372945081086129667165292866298210321193601908659595813483225958114564094460445456729471069471343776282495039583445687085910876849365702088795431542845365119050886826706389830671298335363270168050251757428998119361790060895800708382279188309595774738540004936261901348059286416016703989179312501591769909541971351042617534936160545249566968273653447645826345893709334972120295966936741357776639015958369550358284859393793446735976328147923160645439468175379374972624850281509695244282912176988381954864621765995008144448065665095794662399027398545342994839354588561381136278645993092946170963071715263930546409502557646249722121162625098849582010645502825832160491348215442955846113477993517998652458656959970743378636771589714818898441826694062723698549284082154619446390621079067430092858246513223690874779964145780876274502358224183703369912065653089028823145451274164010127274263991914858860450123022720207395118094495687087342135087686311438019820549956606593546940169723318185130047803279310582378916587252864990621747228988473247719002293743497312155348753968016725142914221293004372595677253524072516163680889558707527588032060816717708276462781465012885651771683999596820304990337437004746981805047324509879734059246861179634762309309186755852952731111017310707698286303827538859750908885505046242014206493734304479942316157264476596911939359115870923187499461609000619681874965773122259983660902166598750459489549322107685110648278802332152903351646475017729001607267219633883246431089451723617705346444135132595305758674976098697099745290829336186719495525356179006879917216355628972753328679112694149903959150632866874612834147686898381888951258313821952678098719386934967742026825090170058774615000784294239116538285277326265713124425959560443613067528522417912124499111326156161753076070507747984490506388478786051616973663893974818077419650124900090910239847565127899144536140081694603410043924474776368942914235561720201021790267638153225389956094780872418189131514640626023059535947140112837611796167213006840971322853019026869366145578161896990788259810009098613639275353761195684969017888136210645933524942565308199151222857744748475168250029558986236643235838858733902067737196673933042524262073910072674224758315402426130580123868788011704745589813141676634172126579769526288044337907121175297830261685073182232864126695170773468262625266059275663234718587712791193797674898123438023550562120985820137666987296818335499777975354911869648795607147155242587789819878643202392419881192524215822640699434907699323584510984711566760752299004510351119540793162721095805364053509668198390179102699398114240742872263287346609201867319808848149797740162372299512150624584653308544249237120611620029083128982342605036893205523176205499497377105125257680248510621510792739257640440272907710164856205760163887063869253736320307600914272676109451515811821379500716453558632250080583232184191983740067633427464716270730535575548686151576029943562148277755634316722228651436301347126031823545156337427533750821993513606862675476134250952512580527824608829683458166869441446256985376553381780536982751599922088463276476790111283543560467557112307113423995402471297772090813188056973237907580841088529111383138790545037823277178913404880136255250708568697840550952648262091963202680770520100079022221609650897400337973436196017467618170818154541716489565199035895491683941763625146416991101555207276859924311119488301879817956870926020707934233329172503190954078674760757360851150354163021058910326410528955033971933173580890141158459270875266946623810978653436020430668809409881339450204338634898956475794073303817076731712326072617877477245092968479862137581764545253597982296423686447477854564557932512148172958900210150094971194864420238256049289219334518356461470540098048132836036236062155774621101641099366794185016146304973519254575840898290829553642732707446584269632378094992822948803280757696489106521766064975389255608875418697332065227839596870198562646311226246092823447615580432193161147222341173160134040496569650667569711415520537980649381135512730443811491244418072033721027683560741942695392496780987193565258704642048153406896522937316425265586656648344942101741747358935956240317460456045710299838698809351313478627545848119083258520913054407600765671920076322325810366400732912372390060936251043384271456746563706122466051466081967072979141871636651627617307561719745150431733714865665714257310935439971981772524348478716327686699444960553726426913966152947074261820075715011669914453715349779061576120154182489438883523788516072699217739026714474024737626478359738091247813310286555042481962269531957452335334330905914944784924340401977930469540608335699773989448724005983694723178791239939284081853784922669806113780731591873660970167405342684959154066076960018198139956474731256753947425465424087921525456489664634851686045422606800223624778469241447442747322046795056429616479875390151255465113916962037206108218360218424698291837083257559134316157045403416575144742004111467361019994435093380024358637602752355126126749993613257809051085689837083342150399028050084354197594449188506572776785329793617895339726010589250897323266420827623797554830794929494264687710227573294091112159688078754550945627790300733639663909212846603055476525511126532507101914585369322377022913440787147505120209700859382342592353322204808850468210317958617288576581742590619673845806168304672112821540593585520576570028726039373785490945859755169714965032440317489732870488909579423379705668278789785437925801715877082092786976898034863335970663315089605761534481220077125115751122329606322971642734985813604576256743525095593829295233197122937759108373284685132956199933216620317374980685463313343450776201391640600092969202935708294701844539334397605397213757539837730847367904569422459401936922026504166786536092483471913027687552542081235279813300735119325086973602026678128055960794719310209180011669810859649859540902811453533186693293081001348236812778845854041703065637845307149081328694556314273966623614654289192007840723979297935264160190953056801296360919354826800194534520977233595224038781880407201536167929925937579866990477089711498762079782294521125348951838349324483127033067400925103821885501494444279663262544335432214854675416989882716984024128286380473817080091886111701604039374976490517857538740886949349690336318945710821038055792010481219008076488231116931359358128956114433856503591192470276160637579564931554599763091486198215153818235558436998476853510321913014229897073166994152266992409701197058236564022676220229037579001993877820385906288520564940055083043581820062656999792847434746469685512046669739596889094393568262338698588572019784367824890536144498532748239084910040040596835135392397792733708370856156870524736937260170520291266090548446301875858771775878040258796491250542735365386686293849460360180578534761429297397541922640166723265449091129445036765650684053089702871353794531156151981983827895719758505046736608327845872708239849477306185866546295308939335681379265024618987004331629586960101769999578613609337826911005787291498375784172143088209676927566900712174292387680645803550254943257977259650596539289130145482029498987371039237351518573854426031727393623151545413429767397004048552973525166168895028231993175481159224976491803398928534532888448610654724310456329774287903142311175005672961418561756160529724153156932723458573746575059175522320528549766922102031524354878063821946692051548522166259927463386500603580016578759541216983901921968946297985074104297096023426585283695043181208717906855950544266580915784335901500799732585928285260051417614144448478799531397006185316910222571208548109556319331050837750486867688554454619954645213759863913201575166686683427359165968589788665972064427256589659890447800722343609686630215211010696734541104940150112016444041580288339447028164690929575584715142637953728802426820149605126812639683245449004449543179624402415319380564205067459080306470431654441404155975050387827603059259049723359530688036568280667002464892599108535287512408312030060089362061945516945588319852176321373585809846559078002385035191851922046905405554287375082047040729685671616608475582450432398976598295895985212064027626731772441944185129032808986265132868048421975135253374110088651192541525792104607214412186463872484926505867169703107975923387690610240182210402510826811088764720525767596834618626890638256760446350339374366658755935731956563213340668154010473644413002023377426390692414501720528669562113877113526253575274834598929159652818426218624757964707489746618033281870967215863950849728020639585527451941797066313938787513720570452287531457836275071038091304449527577138228557123222451893110935644848932409376769261869611359952751911584165480842760315086149823495658666325329911776355224058445067861739490859114244101569078907507156127834782606149284500327595084165420113562295299187608577190418781008191835052954846055381559778416873223605046517824903153413517133252657013426773755145086293622838163648006133415236117317059424860988030502739425768325631964908547096037314631408709729441911603562640739588161224559427187384059371959625135262990829855340625735485193100900734336617391180774992825562790379327690452989266938600704185517069077973898335391680467687309736051659157071935482508891699872063234605837008066427985656963153999962628258409099240823385854645026176774248717876422653049403291064271803762467014114086219495188809370461700759133536474267524844115043190807010161907102132860061697252860591216552084744611104687152846666111017146815080042540198872887767038129377274214037929804237877453123776707430799202023482092936530562709917869603209526719596341208556018278701252753592265512355093638027736572152997608981475287570989274363206083186306888761354567586713330669109508326848232458363628647479587510592563510334393762232120330323217892523801871146314001365637867595511646559229781050716807739745777631755214698004616689532153721002228675752615436894240760168541091282639015008852722358019764302001791809048868837112953940197768053126985029154477485147543767098342317154423557526101954283934210707003535346227654346558981172899920035985537116513202863234879882328406097300960832153748482347158544626616369595743321371663927200272532670450511541112817977093876583999736199956182570595932559622296594869349865011916616147249066250544382329803253163926656993379171184893344253703616216109241664903395583060164286921654695993238887780732502201028031573935483059262003199094163212452208837462030911087138870269038237259989361191770503235587685365257942882725581470538413414422661252964275717495769421920182779318453304761437878250136945372605433693234058115328857658161759038038488950568763090148612932861788705089422814606137696971463194862343422896423539240669156830741198512607736092356415013892708421824603477785066147692666396497968185713476560440635559262504212244927656741510509437554204332867059622438918181432748518522748866460057296865756040287229861390400531667656084091461946609534313672017033612082367982759075249411986097085417976260409427744479799717890718676457342308096174500523919214655500986190710768181484288880310112674535542904509327693386907876040071645841517815107691595096217560948885582770229331101267352536397341943010795802733882034251469340015212836702512888899737135608929865325736704151511601017840092951697581856076765404315621418374367472190447108921334529192424405303237841019586322581959490491642764529069595139607921039783721920902670627939915954245193291310906357232037481367901349784492667232315757184764561639522568914481787091205953227456124981580963335474383017948101422409869303056240553674159394049360722460713499380718700034714141965717803900060646250176769849170383828422599317131757057393382767367296725330539638317745629611950032621389417273434240747973708263525128169932099051239543710481994436148459471833681733707001163138605701753285729022507569969794307330442799082109227764098833067126044162701632505390379634651798942978439457050469956722029162676058406698490658274274426458334929125261786450027097031852621691505274252639207789393596699242992892443531505745728347697643553660503364059241774083199562513327063220877946634567150954275432689182189410929926490744794629390051946116800435446789403867950386258456361533380205701981410512230340059615429340943624610743939126672187405519850671441744283835114038392773947245238781513037197285363029314850292753031910488682348763819572492443729139094190519422248247464881520951180305567293421524549235686909006407446686895620510353994204281445009425027816967586673541668201020608311161888050312498706123009069702704479467209416819945618741483536665925514202321480472087551517184845692188370506663067875225052887303454499026622316977264468805802392092155416449009090377526207747670835612868776953464868272257420422735674013160867426195502990429470883170582863746733536610834518174064545968166570806861208898201861671535741132129295427788827693244336044652236128725726541224586734385677917746580211362771492520780883329921319565713885159918610242587835063824853918819275009159705128916397092954557407758435135622835389222006960792063853530021561115166770852398111896811490718331005354577797888326089113659903480800813933381306329660012517896530565751268195246249012868704596976142013097359072758180495064519833012718203889611689293091031036168839923917042969342290530366143104980790225058202524332945699301562427616874404015914181212372833234857701253951112895633132879945959021216435370902656806008585752953854499094281351802717713882825511110943485847972241520171920307759106354455786428405701857778224068117316284340263503455608442747094538436554052145653951931577397799258719222263144753070559608574579357121756167309315362361579467053060539946666004555011944759835670475561409870644276640370960622103868536145948899802657124550700196478808964636223325287197010427547339976267079233726397748668106043228483583975561215160538817333328253904340007836249685750524588398147046406841348024150649167565562149503093564710535898023134304063230914630306846405798753261514649678326387572528331791252952665223221663243704263268952011524439573489144286548289321947615138150678787738327066972760847584882486521226945771268996568010757319422331995955502886461034899325481363002332091191924239792532923955858530164710896020482055346655399390344318571250238400988067421137835433660606446749790274827149064716314222235091329992172962914755100281536290695959271733915380962460785001389918062728513591961058761994583393898361514276849765111888247132128779113491159744512183385095992110233258887483440538335807916357067085399741583760594681904104812767332760188257157744422954738398702936407483072784833319388392723148375233626813346709545017102130342434297177205994542070715639470634342615130040907412791691416308343094577812834922285014147828356559088227719775666408303870111110813199257081671476855887190878881020956881836091808780546537668642482513475702664203992829798457379410224680681247192142565750457272815532133120816618512985626729229194351121387429334476795338974246444366321473752802204833100233080170405506165533941981480123117827090526534314699911251767571279554813350422353925008180576639272770929562257274907162759100906058906563398604577946471344314146197578495224507558381809980214587496928059073653375464529639001153990026539872967667853097498079361402868610514697581151694962168995531281059615088159999806496960000021083807004718495534576906737946300041005545879549796652509545923687341308827058780544330033441054793780236882524164015884926529229057395093560932833893827103060936536344643403455413408524658823504672267370638362140636627653505669339178139326624936023445997136900962055040773557123967800564817671352555741815581470215806809204314507974221339625301809103989502929691910790735085637555055065252146553466136579793405884882721020081210366142137919587003344840852156002007785039074557814286984067427540939421659704446726121170103598006114792516890373984240698167823550096546978520167168100838352107291577430875692324003460401346535207229284555700704055984374541903388143253475702110026715316374969915808474484304602762378835917602073495496206625243222181283733793074176267988369705920023348090047181117313655283207825043646269514057638063497081423988348484251502342068441445245940012446409559508799822642379793509336989282851830579348560857981773512387847751785400781764406541696266335716461275702738405073195263660291990790958427484306721326085129414340154405697364011358598070413704655447517817756979875700793604004236397100342939481278183997088147915279214120555062636850151846595517226236339370945670166594178030932064997748369499595330530792707855570451957948291922367052928940695429544707649777052090694591101245976012091105833083212559415430907153583941064705992393258699026887969574104045002559769837241636974758684428963288005634530545168582284018198073419896917247286291405180251169849191463126655836563096298144677094197193519629319001884766735274251784230684053619615883686675919191632912897426822475620450919936771802010235459246697145903134340946841856813095859296703724930373712211399542140594075018991409469389719023422189847582922104031975776162005967091815858086228619089925587366555077737877370313007739969527554484683490255046381863481016666682146288740385494426535061873100612599514296536238115649277398832710733787702925020102839496483370852586467573575896504989316366500600928448890279947851284322146877700121998316548657532244569829102928479861037798900799365442730871333558683840249819863624427128508220037555250492746265156709753579621501659508850118490262890755291484200450411074317975746688186260957574253910986048243360544006050725713036626700732926438924566873434552520797518819052879641444455489082399189056337180994470039567842987423326248335314005017052091948030133863302648056872677523267999452384649531791525467487146104246784937578771926494141036921026231449733735410234749883205466349437656628399653271965439700120374333230810402594786558286281123128555049603376849347279255582182729025376610536719241146267107598878110397144622650057618334149604929784566372167308448920814508779050456884831093480908011860703026203455692048980230737927878752842639928567457344622036483658322081744526028011038590115083463557910463349927375528626797655586358741095473172490116280891815992489492988108351999224530775870127393407142126142800962637703629597862005708677552630889314890078759879305311355207621339303780111443525578134607488212020115656084892186239971194100958387380514973264897375388135779829923405253962360762393480145146587856094722492192660866528255905374220913417018527081202764541315864318746747761560890072997453397464351222690524454481412658826150939350942271655167402806306299345300936276048694330726002452301122975964952387542140961408525165920994637930451220858113364829097572492145822950102430004242208205790784987964079456333847672112852839378192455833977553348623016705664033751561957605475577163710355091158369642495039675797602242247359185461708175394718464211347634176729481442959051694109115652611264239967614838535405356057553169863483381573095603864859088390196441819423004214368079153113239686530716770156498452092754914918010883996025404488746572448299784041340099171295755267614188725821507574742850774085171027441560039002270505436740353890748094412761871223670607599453439007554321818650093071064524040599437449385787120862963311925619159023485652328053821046406048140930270003758623951254075494856428920563363557337872651195649201732006471125180395589679425954843433801624119656125045802732473222478333923913828700096333139662357055245164633134523692453553017775380200438445476664742337613304182922469695058956326501849074598660328755081974554562190320040975876068405431566731083858981574494925805302839722390073721159808177439718699014474442364044580499861021574615705334758779104174452939423360287816204076840487087763576159082238739345445479748118917895295902650433014296158027518246904706102310527423336528981206895359119135277114552871054881431401108989365580291055494212286654765384471874265083813381953146980695666277580621449730839051879549911205071336920025588712035204490380867338207934706465030326243314524792753832634790636528243238257977202213869231448730830101141862381114388260772692036396986949723539455272055280455256760778270252247051986653227703071970699495523667213976210875066597310605484621367387963049500622417537229594072290547419004929385513620014490034329492212741227986072952505681140043920502566615817198128437200480799724156211330467136124035994179514190692059765155580141443663205925452782545728223368330708667958699241981880099554972936847364510447560639618670562690762389921329057731346621639373395319912454456006532040781330461640798524216397090621209461575152697412279213374206131237991421227722815340221716337721941763921535995805140430585043563911271975229024976423050499420908407828725552989943547889216836030823864381426110306534589051345831361827655827696155241622852109875965816774994216488805649947540250494021322963830714386171315834324141410507327410295080284807277239743240772819590475086696562220252987069277183020162556914203317990105093024388625231641192459241323833839182567082528885367045993023815260518196196605209099062592373623453088346305278917281195044060067760855077160174873060992445758803598876643025558418612368043220195916939543484896177390148128952880049682162226534339164712840476239783050079336944876481662465210100792129265967704973223669523444228348176628733737662469929420123704779888872310097698673429496529549458626363194253107470019066092150359313155545689178481631791982602127871218491197877062918547296019684427426953432449328742396150646851604289178134730664029199816378686124402552614800660246987480522490053345855481300462352422588367079545867031804943162744071360842850723138794074173752641019590309501342692283390845750853515600352747881065069879163449190544303974012912698597286190118694286927319745554242421574226313249044148157717292199094546790565989882246122696837433764821275832450619395447932174443164080872202700146076854709614179810431001995809892462392943611632609719197047733742433241731863592053508868609035231821740664659829487373018039052902498202360689726066765240782177693504704626057492365342786727381480978412581137060200243949352567806047043779863997733896429162010199375372651145461251594144640862675167134689414442866841352886581323230827860087658162955571186532477489779129905585367807100552805014562742045379396037979584140147739613518213402763695833675554411726530219219600267372362670058139664606123623180260329850992298295582980423525519227975459362710964340515253642338079729323555502958955496259887847886284209357451217008970568941869479899584400318478359514542826443643772114227629925463172190433101819444951242473824326273700580980593197839291687104245364009101549264445096437618367499114597270480873661054221273206742935370500510632147008328328092299499689093114447390755004654789094736077546599040128228266590621015096321183587387015123333240809231587754911242284313846428577438953537758864576930623028750017794807517576757560447413470729027732945202617623087248911948317203669208026761328131786523098693417194852480725086023511945830283434134480980693125935768625462812057108636081320770523405221405208391047791495477962213861215473703323842974248448907110261746956892085953985440295416912213157966379717392978755018064781860757225017951123431382097658961513206399370095162597705962258005573154754002107523574060153166022971941159730936350413509036014304811256291380455030882243668195983659867854212501782064664949684881499753624018642930358234039111629348274059597818532907361927350138904589404734381512019283118671720089303485502514067781162659905261889940293749858473455518779004698080052671138873833172011758937521755370336712593702966625441662549755035049099593719749332027050572318175516378863413850651936831025752129809200361756679989457113690377502024005675010695974647991516904297234099065356616302039972572366906113323228180510870808892951292622501425813313305868343945242688533463024232117357057065823439640406364485635363419063283679210948167714296839268892647376394103426709832660397300302396774374601802797536768376415380032482555582991891950406515743356669724156097509388892452800238176892462098950432034294153540330140362049374053864583548821213230353163228617107666830078896831777918948013483325612516336317233105221828562732090802255803767325788995819755871125930142062042698084834015686661768465658010613863058933041754171887489948001122158377205267509623414660977982212796705565865213663349675311155793094563047520090782202563906983380589815825348756740822238476529225133266586185984446138509403043165045848130990886799050712962518512017138362808896377493431319837220608761077815194610496616438619149388906591746316182361261854774385966599233186253178842555685077483780196688393165652484235820577477013957671671697007268470871976906438933185867172360755567504504824286682637157271823333194948805718720222384081347350552527773696657369067293521426742736519941587928404551433864905379718248893451066892694924247283770485195094284288281439171125078478842334824705788832910640899680479278984235593324392085208613660740362248038375535576439552689603819585713557823764638102718633179476722359557018682655474552117853017643006594554207049870520203694818673809615662872181993587500339471379172135196939708737092263581413146794049763592419972541041225231715156467424559990096411546027998385685001405457184623214905516304883161459105801139729395458070729017480753473925809792667068000846682002678607516343330120190725450727712025518546746870606415849926154290477288855616114615497677111542118575300580199873706094573915732381829365860278639233826554241301607975972765458193982918782941553383586899635048812237065331051818022477548332005481451585726046275112974558486547230226677077047643577872016421360264052188288710103760240804437490791317235174230449464897168057898473471596380388156142154250427586984475908972946334453982673030760280271218445378495944045150280827233210058299727601258550408020844685153525708366936210942333863217757769166386566505940523420450112669895505986093868042553820453204840902479868481273164961902974706591678008994648066154953098444731136087466065665297400848666204088376296105213767927406324392984487341359592668931358121057902406813004567050744185682432057649901417470892179306956350397696958884625689755504299757295111427390665708070591462669762152724822498704063710512238273272974420008955406251110655591871235835907927062957981794276779272326907173284071349753916676101694524382626832776205333174742964726222366858184535280029767422120115810166686015647608732711862830584587260641586693822503835873749836318545480548209659710722446166607946687540925708117584466397468613223868001138669577549060358189146681392974709975944569239504224649502200329580026435936302621039891272101492462066076212660285425546857285168747637150967367929683841211686012354548660973260188742306572908381310862029692251016067149710040554051240975735561338485622810811725703232654951087434012795921699152472207994154687807852567614023920014256780256076094653619456070307861914166272919837766376708293565812771368978779985206665025545533300545971247497099685727144392466791125005452196690391071143232952325531752742817465816331717981436307034967202143580464058574512254031090403489461085542088888531481298341766293432820126620149792411163155265272327678452415370129832708547149444032595218093072622626905486675785016538995615325882068471947960498070755430921373971321584051456508378120996444230995520455614120471174775331440293543777880424875209231112553671120741245954875004434087195549262787974885546863110697524202535692046247207538745541155441564595766656713313251304886297453487458946745818926646056895534376434728008781098606912500918726225358220816058387625513900208041873484767740082045646836369415443467119204927035882141174707394049996345637046669163623596776885061399113222200659717380933992045541217296082732710550799795670693935152862743211172206345231855851590531082018572920671760283111741747706620017544188376665637939296347635473812728390683102767724603260904201356517122591223585982764601640131187931406983813409392711386601237195060404299275554487072733485945949702568492184565080381971493715689368415202797257152883183294323499913279067968281724755606106376394134657564009392663962843611373234793567885576505322535693694473360233658808675699472836420594435271716302497447425398438791517295028453297596272979489399721498801914234935858216180884168663872389903254668342102646957153294358796362074932044097406596903803246288045119689820998802791730093047120139050394890523953669096998546698171447521242380864104489004281374061766387249639226417622545872680661033126372282917193806461419920434622703969871514263367113253576960115215629617576384996864743447477361279238680649164251171291116484534529204397706311701479154205194116735991971335475832680450295806159326364554730597252447031864620529377195659907016450798608968353422894737024299965632643075862849372612985661675979976896323029069233714559527828715436850341940664977950577459817091667338839328002205457080020042441313988187355809080233770794328702282036956243472850328514267652597034074790462028674974669034997795615782756528057036701174163432386502726293438498834952922031242331051754370921884003671857269590675863814781195489514768681608120658804398470411828647555753235900774859252419166388661445805842314248203074432911371224138598737007859420018021739886601177442996102543300018620045622795872504368741563327843671203947875180051736524327930193244166976831921379169677707449182040576179543607865426453703468943125812359359375050060930841327594489030851688652991751072061394550345660570903862753987424937240883501506055119215139788726172151716016008243977199711313995818319992875609793690709534673944960391591870159980666085266843025835472982893490581182976702207776912710880941560378722029609034689650427648644905268265713110729866593555700040341429356458245689683034938138183997933373503971215259023768013313838953374973606862055437191193525977741424583941559808428895235194351150480646563536684227438981461123010627933546171555974602455875972290080634812479165662762819082293189033279631394022068722146604929091107850277963062385439860783305922152036909179527597309777316216939996411970217421820325363289297353682086362348165031858696287038301442012488242340628673657242909757583637275099079253126820723991608528430035659708065857655952361689030752818767705481926444171835630136580192556277654204474583853163315427145933652550231626449990704941998570099197292125867058743500918898454624394855187352048197252077393963116506395670925434574656802924138581921548272111071522992091677951493861792472305323338206073023334746267514265419225534181875775854663016454566900319701977713180044441121842660661784537783678538912890319461733438318311376011826205698120153195739809385787330434870681318189751811253787999606938517479703988412546207461665607977913512323004591761897228991809465779992878804453577350988761077375559222916079290761101078804864174353448416514993638507489832427293934746825390327760912715106029907884414931980733228356326280758891345673860028089070814171497686796006962463929296911414248666749233772255528342650834010402391835509661079709433097433923476222833931908225044070901943914639789270223621949254566038480525969804739008392225961526451027661274553276568006036602493616459399799230948307903750034242520618217100918732302389309228357599287078533899026313282057291098838429591009167268667690455653541359559178429736441831602756562230279813356078183398812872565263374261132925220303614352882697635857077552508931058722823256678730833798964521252822625690182240539842748746768534518072602241880509207773090298663814975989961653260437774534169358667663357846944071471232650526807219814606599807130857957795513550182396018431022881543753805946848740074040004195816372301585581335782003087002340546015776419999711593022704888875143803183911856868912811446952134426950510644158856627265121242157916904728884914729938931945940533834664894190648699986941594359649177808776995662884132905128397486898931910609833927534508249885421716499174995931201368695884967994896180209184529189886405888378674920710273968614964652760725107087102784517823530873587828683245014653559180837213904813004984705243584366968687106080357451667666378571424396914630479798437334008407817174347461785278588616961930097666098262362010513453685049226832158450095446080934749678637483927444141780027650976604007268338380228120688637447629101373904644697995710828994096066297842562046411414752967875499610932709823296201917942115784720112752964470533218340613908643850371214907072795740904939212928953673333008074792735876555303742418389402015542909738344960883781166393929810017671821914632658470227668078122175504128958138643902452196938044401913559318123868200689110752215068246541379027269863429355532569208557023465612796941538093623113827393756944988109885365762013389768602222803415180384623213861759306634025743251050502413804827512057785136761633383954165909786329214082151402174153866578499605621287759066625784501563890123505315521905049114205799854722826499165274905568755327346892629784456139779519665127958942650098213499211238538243600944787194790873877293643513842884385410863653932774746869282821114491202431363578028907432948322559275388873283145682469216099785863779258088793747791479860365324922543079626159390252637143823481586418029058638785133720927150635586529790706624887272819663444111425021043371700909668961601695554372245471718371863008859022467774950960503764625453607612492768642494092533188031123771685616791378944955349368374240353312700150098018948528582203967990854841370044406698649597624055690457915482893521007133278611222642971166421890588055635328823233905100719855188917164486374262054991080232621594326185539263181069120703630335772899408729550386213845942331630798156970072141613932444696056771876905524018599490905359070296449116507629812930456637939629800703060823723271319521238087640815658002812027956706483553332737072270958338645915477677501001186484955569872375500517362879959445344970321536306166507688329718733294545210744678862642673974679861771384193605745247758682644661365083497598998146642793352282798604862864128758284638839871694502928222019501443789929179866762528658280409229013802807692717779635807711341191037841155946779762797964123716217255781097785869116450384832544848076794784211756171547476222904985128807500550844534179269840413125142213133816786076943569445521582660207657965625815674536579079259762715386635712507592039462376011172538009914365342447931551091530662143798707170234082389836129602279655465086490181546970908831576060254732790073641008613567465774271824343550095394564082350843261582868802184535207923788831990780203916994365246246888381372634564095516147015125856381769539097755815925204821117128758723625472859029400494832688727401589210247408747255924130321742628740522286427642083983816986333949267823537358731338470353056429312355841102448343080989072737937271800068135463177038101753982943655291236816444269818761182884156901618222356440089815970302178231785182191279982234755289180153505737625058332466404511324317911126355414204168134862404177407958166627473505842448435756406375195498220964145565481390256865658115181193912249078126786895547777736226143607652438591342875114043738142122829541465876702143386442613083408617656823269752072730278932269553425806399388324139667844762966087640002695922407752058533008850667955436566936559480603655204369935399198735778639067929031030350651410126872875826403219581133431579883368347793883165952950944344600534820633097128621682965518396258704437203007871870316451653763437020148245692399856830600493983272218639952919835719320896632740041904352486467226436803210295089297208669992879051098113067959973721539327943873440618653232050478789042490979211935727457496861247443873111087576965493132558255343624908580294291157109918823570271578690171494622517162887056472565230084486720697603237737426744284636495680111406980238758005397742246985687859265446481466345763977292720906850813899466612970666380087414882556934645098454890232003871772949594858863157374585779493442630422103595148378952617599525727922533469362644128076810974978612168645966500152575029463069356127511645600832886557593589715941125205631458537170934518564700883363030272688141873760814711812581567756968222329618297817571191184020819714662537834896808691034284856828598562576302385795832645881008785357376159484474754539926879978889128246995897028836327057678453064845768300344226770088470735995932845730118122537571335378690234731766370035645714573348169743434681915350775244534122691188705929466171999034195135291080344116329049083399194682621213532746920651738373249756094378429646430095772248714981017270893913354409580206373959903503156536249419472994026457329937540495026818722524759614851302260143560317008525620257983316513072039850052414448442759324799777571251156487333710482261308616679620954025071588124116162118980689209345350524864617625912693840837471910017659157394852359312180281695533124261061450385464082182495796490961258627473787162885703220239233803655642047011826564109548432553608469661393617505087807712661105162893930139602183420807975218095392070342718223916489196788595048817024774224324251710825249295390887054827967155600489984281761813612916616241530537871648092718545881896826326677284868762343313383259712036818095369776056046506617380618414315202354180768013745670317043328933501746520957073567148144158425096260625073350977361975301582682577254009606919506234616744615114606775071559659804441842652940457629531387493756991630176489029834662657835080317013292048793404884731828942321841971168949593537044938318756247076764801740596477184049026384790463290303878077792304877160795934235639393069107004033886457203254376654789780456048897770825212531888601587123749712846418653606175995501662312138853011453663539832196189558579889776384745932651198555831090649303041258022677809860951613474169230935067149301026466252299431496376212887332808547197527114703020432393338292853058792819614024284111997214668381301583987397352376667480820599945432109527522769443970507099895536980716414380680507601009064273419879026557184920713811121635598408407843620771874909983766218451522094555544940717490351890094819745503235429480188227930033292997419907748399157684815900121687155759675247921570925161318302612735656215029384356405057603489780832615687968297245983238674829833273633898350477841978587142536084360675068766224450697518674043542256255848468396446345869949991100782884984202321441517789640919717376625924807335552794463879384937249717669336040427523879973783853964204805840621640418485575904269354226433976529641693983426394282404893092540774484649069665431387584396827799299194750357271082919396604609090173216232441981216114463665596080916564444043862003524562968761455971847999761659790413002646124362146952698860032268627787372064389816479830447470754654752385744405538195145077305031116337905018304761909648022388521237653201822014569912205843074311723234054507553135288756803211305308156523615809597386847057613651647297379617948714634171429737000974263305392686197019359048176347404340901781518803666999900898839429829847419508796594011215405662654985013287102635119011132848670951261441980647125050582727492926624371329128053344892815857352373601583531280802885460860501270522248559130621201780606733208031305736568071969653009141580519784052024020226096755990991634782423830724267735831011497542992850383857891874051161211744056858018326266208162278649690865332207432403708902627801763148768771019809370828360069261281800487115137176119065441982926857344183470668229341473528620927542337256312675780093995518030803531506157615787949001564571726609530401267502609459122679184450782526566536407467489255062978419241410024212664669210684385061683518216866159894380041720313548811970567979888200771701779162771089050988963451173042676418501718352412758498505130336126774793410640024704802466149619186321810616090491556775150467355029098945341552371120526885781209802836132689796254694680110063863922677063563895105899806445468536091691566708560454939383517462841718118950892525289061345586848881752340961384375868717375976881417295242192188268864599820726622432887656267476615560254549363130334776565369906152533828599494291529674897990854370015391747447900429451171411249306075173362432873405476755517003052446257542031409228257427651904029317236274699536899876072820199974934487749160057080353741362842620620221914065042537907180369640105229212046995020124417066644608829817261931402966762390804555571944969339175897916338679774365936583628999476585057988004695762803968855646264092751794870226798081936769796247428961736659768168622151097375962500938898070762773401433827161885595340758445369466601426121826828304523495613604370867252598131491947504333420724001937775863166565630145223973554539581145943447103421299666857604171850833575385981190813519697358147725447819850362483241792810673002465791566822548667329112772049344005388597598570718247021840106706411271260912694024858195146399994560921213576051283552202725068177717199392072212610283096796197977608444840447098719297835417853807370976274183354645074685494382169139251837146969161092051446318596062343506980536038214271872092376410605228209742260345086484858850840422667662886404625663979350798877145212537582964518486954370865392704467944227433108586630941064190652800122880620062602082125209410685899263902600639189850149945407912401993441973641404911118912657840989643388283709483342521290876261310417963161389327873007397045048468279380942007324909811438428176479811510540018491319433331339475730658181638312227092158178885798189581441663878423171126190149566333506235238319172745259496810894977511946092734508675803827888994525645380254990621376309812770097020322470912586539007263670257287815360827331645690972023854046874597324367506376774633989450889010703391876100341655227450447454934800149840866690643749428278852707171962291578255983240054504106606142683057252336357509013725689828332616444606859670317645221669914518759597815320156886985313470870221213371753009918277791387666243589500957395495622817343859655491591487086559127041917499868192963352411655136824434642497349644221936790462867591529489488699781944762363008289009643514481290213850973356305832093395321962588558359070140416153333404093574076879092209808975613006731360554666431780040547341622631342958592071269511158409828585167056050915341278739519283404031836844394041654907177769408995615564106571162738464902894709708342524526580413829967329558397624599277327934586841905155627523093702646235754589345443695660649635911694217431980499212367005270209569169573245727298736470671166859192185640520482297047680825713189834404371788334889617410162020226556819383175254623403183562929657985061624504635514527331008225316050170282295986156571643190357055613828712717727449362592839548388815148586354906352407372432560212727489462097030441647504385604393848961231961125595087435172069999894603592411917509902922710631973660145053901637461391891059379793600517748370655814710069572839582240356729611118423670696889982963173539731814480801422986391182660631511132190717811591166958270608301412836516918601158301276459602315052684823206903111307593186058997110138450782160181193138626381439755832967625193452275404235080028582284204870728914630087334295490796067965049602148486742788166822135297634295698106934853493026085107610413671890137542381471587848966743446455784456507951792314393072865826352245951818932206250753745420907277238691261372423915402078375343857710626073463748595176720973012900542269030779881112520286243114517142457683914145194572706564239456804635679323088568402592115349761603489964818537631000113724399099780092313329091833996192225108089092864079930079557435893020065725228961125589759721160262312345430442525604105380773732880017337679442455351439371024291484035908639576798548817968624094223112190478609582184020164365374467911668377759232773753886626642807980971112871434979821046652588763156742850260450998081806810628102901426810671722746429489567465262377850858820678722524012231451918487909690845768223619116401873315702306839361143019853043182073086938848343544856475124628097775008227712896313540828502390629641507482252976778973339204153732234495881982514166202482655095543013712623570532406576587677884323301555924891502756411692011531542722100846084430896626149578256058348364634026634141484952580677170742276918093913348570923742986386168647619107953226109065932825707824483142090446111052347800673463774691450373379135753453727885148918231803406094209413225195729220066816948518210821717885416865190798598637246989150814337911560333686986383335569334548180970113059890464072501794156070009488310954041883898756303412850090183733804286783993873697078137825073981098731924425836522796171939028104555192733707229524857088745108453513982704456336701306932299620035898770855991790917073794099554579332320010114946774399479577836615715585146246861112121553305313173161216998132565375776899981100897337643915592000840391588313038162123882653493144308236135921745610857419004221333718113447443530719783442765778187792646150688910676000852000886822163288275067189207192924607616288487385564645696998220639867669280173638178315755720025964210492201361885729823579194343868819954506522534157140271204673194136921419537657035373241592903243970843588633346293359568320556895277799507820010725672502959405877411201287425826864303001501052654108882905808515090880666382020844275740026963864454374696598192057923191677357931353734398451121557471365801053336457429384975520172884599745628592588525703523477748766870878912762901006249402084494876714095544712326021355719778241815182930228703040306522931896534610398004992469550766065197689549595089373133991346825605519711456935386939506886468528758265910836655719073607307897434917084558975089532407482082907731710000956655775774134704606101258530590571793335558757981942369374539421712885926307260479392951767938876979352692724700232694051643237812122865214139231909697874242770010925349669373399872113360190640167818023703332676285544357850481160347992012866795497825959326150471594408001090279864396789975920046252879240773393236954673195578939843776202015359325773584991916999482716966301836100349651452664698374323097458818098288911269200813574457225383604875309388461624025545554082133916354426222171374433125798537373267384698054896393016377944145144071882018037574117996971686397665481187235359200719370272825444468973738971304717600187200780689428208545945735795168788381467108383968873662500355684058907050258796470381045588264903716307771442322430560405532780306997593957020545581657570998555177585351905638919537918361894094553449210753219966652282620533921520397521166595339925851290842658569797504150385699339988717587286520974776898409582105488137858699832255634804546993997016057963239147766697003778288864668893045710708449079407767598759037569478356678253195227942022562971557414396422022487701426273883545485337203149378152431264271602209075844452514553527917268226174402028786187908760651423629770320162389905217324111908478768026702967762761025302274638086141430731083658009947368314707035251336900668787278860219275832986904698371508751942731863682926841298087921360787865001052205853646633917576647030805371988953026148457501573798184619645740308104014626442629940331448303323682858429459627781756511006771363070903011109534821219584137668657281044553109107142435159467922628272396054501960295971058111999550179724492021371478232693602598131938088290365922582889225864685433275202311536131893992002718479131265107243411314173507504563337702866227798407085743689227935363454853374245836192796536828241441707508587328444221266107130784921643523145287253494692630740601720292552559047259835464362749021440225102400091776228388285223071571314784094684439336608210101489429409458336325798630312564778227685013166258501989248901377051928903937270574004889055829630073347564764488623934897369944496465435074892343890376583800977042628530245812058442276719439247774551587051611672701525003328647640900371800466222929732260800192226019136310843552703451309642187454117025376235803389180708778312586106119886256580829075608076924732617010259141249841911262152837786994187873265536523230850804757843973191329682374533241491426973755109768212822627382959463624154715562087421382730974021159518565949098915163097786591817544048977134534206394199532984641730340360928336478176802525846962083330042133576720372675535078514215856755418351863694048779396003914869253811110012061781789040812952887349134920422060663307249416452149615574799093212613666395222793893008181092909497979913824413590167732906693490421402753051355116897868675014603114965819462983828635332169325269997075117025862269107630527821327123138965296032179568679682276805492011854905876141172481656716270351575186465217388808760707565844769373201278444660767019277766364629281381793820761145684525663176678271065912112982975350570042947219632259517768935712870254924922977145307008056059755322039111824021770773864814793192065238986415205286955231098738351745888337119007166627283777715458863584630822272954094233352020864397224968703429559732259281137542500080640233693005509546958321636862563732166659549852593953211739061737411994049781687993152196734249666323648761483183604776528008238070510116093309699160087807938712771481828516904439735886807845326884774439948544872506111354847235671222756401423387182548596839629926339378534044234590972997266934924913546270483730495189829851615905420045107072719695075026417620684500385032949983304672684962452541041837646313718822921435749940964094340765937562405906073453470210539633967077002051975226845465222843706372365074858950830817371531103159144885472958886007604091272805967006506289419531694874953017406890684970595490346892186135075108079345101697667879975618264997365531459754589362627491149999166746099832850418773023038585807172061369699844286313143408321234824541223921170713970748041640440696575546145741637190513020417614088367457758880000863231722580445660408868401635159157149401290935712533803713473777926263917622458704058400066550512986744817071680841993665240935661325839094313462722508903449081105868030804562314674990980762077126393772224941307719869130621573754990225325113469235832635523195545160149280568143136418800499618524205004027967550721069644359135834614466219666569500026691601074499197349741187228789975139100051430680609612736980461801800516183315784868992104346504976792151619573534812849220064752579502270478363977684134674202590810193263949491801721504824813617749624326782251309497000017993472033634602168982376941012615261709629918592668136149012973782799759251194595883771631355899024484429499924629387456438082572922880691112009034565769591940955533860109620139106787686154748772773925413697960780537282658956647386699766781220565448686785466807968256198176873254255737622474994135835866343228314889464237246504206523634606609174359067848607818643198856973446566095510721153492341904971513968651049200901158713547718486427290610431835920611555106383404373850759503297687100737573140970597098448452427442416527690456378794472093175039414898231974030869205961937885075800192404968652700425997581291410335044122525653081249649360183112472276624726993580566180607248031513877058158322633235899448691097312902451780449433685174744651394719089600061688044208957196332289738120058618283041359390312650901187588463105752923206424115344143609924468689132460197072450708610373195587577011570662529039973828605231960736988390622749572382024596047827391913263451088446936157033264647013688822296900550248612072346259748771279366873510690765204855028764981112381658868741310818858772061866550610830795317380960568209968587901925129133080647983333216400857891039281293734450274277565598126357239936662491822053073784978288908081156361155647213233283575639949380820230042128392245256627585222200417528603639123671283817386904799427400926024310033108074972763836528127030950314617412642988319077376101342172024748708458026674084694271590633967345622278291175318404887077544431646167680242660518651719987951728481229127251723079506816235377038914204119546528917808402453027078802777048370470402904963849817417002890835099528549311551591669009780636010462042413081286357908858887298389295187963109603450404172130950531664708091964664015747176339641834928415175818984640707289386466826988561409847464735606910523691442739396984328472349091723528341151391340507592941575351346872281676554804981490482544289360208395965058497471338239106802531848732300011094914600984298063880709508848318355656053839523159296581988499481752754883243394037230686191658255804884073044202296694269926800222572022348889941486866046522755755865637203861246647827135860982916081072869432560984271811025203136322603633474524729269824619915409883650617016498824463741715251575989878641334174308681040518204423437921629242965886642065361560991328382769877680607069565889969698634102992246236738263579739880674583140436230075184706026686534354401995806642643587818019600417872460419684551444086444642136245925796037629773810303997957297383054974430945394065544272277401563546379405583959223763056936871328619312504146427591668188364503294591104660788928614978070639542475919086450387045467908623326060673723682619059360314867808729085193680895301803804238275135505900620514028888826266982479390801346128583976766530954141539185160315612446866554162960194615033248539691920963736931813404903504437630151239759708536304945385222089028904466736156599958776241326959035620470308443382363716712839705692493056807391345310998075961557685490145578490645400297404212761998641324185857501990441786831011190210459872826270236231827158852516069437774977209711852210541482750576634738077040527651851940988596049611960853094880963773553496969339739558728206129184670920883946320035759635214957450633980151880521572026662228214620196604573611762096243821742229140513685973499138014996823008337730625816693290513099547326734796568427138130014040566567427953220273525763246620743407371120119704174478413096093570031772735046381127206418127442308021950815881446245212571470598172311461779167663077324102971326369947864182921511743326412843943582413972633349550392739609979452156737957252617176609055517869317029082886797431857815569911522485436304233659319730257089637389490221603923097096459882500043678503894948177409557398314324171100955101303576725867954358938837457955923967405015116469001109853082708571415434975439224727983877692045613292504828085799480568498590596303179681151320559557078893424960036905081624221876721585205036392243971624013520975248576882912096119815768621075596843723320283723715665705842836311364653259687233559356943935280791332051495709160567042235114953741138619667184480967315269037793180922775518843770232558825531185806061232365162144913401995055170963173503587504057081928392217681343938111064229856971411286494514053497110898277903689565866223118597454831462275362298201905153249501190793912750314184094405110524560809339221288072945841669034294375676932716760691938653366169173157133251426616172128565971441837170954342130201670303620987335371702057126446885345597351668129289827632785875872199891205819448380173978637817074016699649390407115411331862640053092092193183793866938133190933458616204396070775873532299382203967805875334106494653930123562697843783832321315317650962746789962875268743079315801476877617813337472629059447288733400450225087938002225234025831567804007543930173719304744568679834007895410320393272288184230064799583870901779073944476115056207123502259057974661182411365062109369625587295699811312296100386307736659454890310347202375562677020787434891774975966381006922158275177714672640582280830147939996899246536482505244351869237908866171573335706762565405047322412345248573722256732926037224159572533681329109197228498834242819224346288325208053878178894761825613103328273631992187888960433975104779152486999235067773363502836475449079099061860389255303074468591921204676907184822370387879522369202775711898531629067052852620814069862511497450198203475113547806570624796607059944709710301268810111975648396814385896445077319412065859749633955982298787089710443948312803152317264208373008079583298759607302213766481950546440252481739613867436074076810866958143283483411356137805024701929651917893891197205310902845105492071099233358018083678222457452611189876726502451165953130368990079902458356852547457451677780751689269364096038876184226983400809702776010905088645780192626911303099102152900872233725199928573634921868145653341716734250673518528002888573178456826082281768090096634156332285359680794256993678736828875684074456479393087245267135902476215168182913712693600893575191933053737714601339878835053390206718009505114475071700375302544346905280230413634799022952358795933993384563728646159245456099727864901369937485303905243322122505059692147510014033453582540845016852979887573419636461083082016610044414658643842442882061387492345175893811560732969247511901042772117847461864868335857399256104657207548602337399822453071570822930615140564684039074168284017746533264072045353920565363396339568349471738142926759277445714676294908869618538730357550570361667573330209073236667158778113341893453746001785418190957714008214933631328988144942321743939222677423910804220030889139568979091835181876917388412338111089045297437896483737550981996831071280671028350496521602362082297988595454227884448432127749564811288328606903508821044648680051184135602572706853468208432781117400497228348961141846884726402925953181315026830573194489011949888322961512070845205613379150742388851250832114650787508648940695385347601694893175769432317885511751426643028636834209309216152083230543372181596829213550754302136754138047211600796708808896310380596821069125666102502076455287178603128704309079750644717480031289007193976376425529714900461151807787865518157252262895909866005190732465298763026459833477664040806678952967534806331034671642136322479290617868000660337818858735270054470484769890027834617510451937750172411521021354388138969377218409572502493659671099486155890964220230259739574421940425694148808118749827353831917654138892115529126411953493841345227979060424382102624016052488864147750459448785977338989074893900321165052658372606124442415315287005747997854526574369746420988552307042927169223594967708972170917782354946206198821588227013025696575096421235934852055388575208492829643629223321713640117199612711975259476285735355267658925323497359258515823505955319599689510950167640727459259051741311587385083293931883409562892126041841078337508586074412211709261526626293192332227027249297180314402718299711671989977657688095996558546667128383877313957503914030432543514175517892714494583506466050705187021168706693429626276802700782195487890338096780847371455906918696726095896534572550503758136706703141503822580145356087930993108976339386825688398356593006001196895441604161825227624242456559780793007198977894626412003210592546751585511063648014710193141276882530033999891428017669691041248698187710425996561334462358325216785755763506351715980331009051190260847456363903031238824537718495427547307783243359770199972034104791775551807759471608777447741710446984998286351726480963114949708475618217370584921561614056476496936823892334938119513635587564323009751906404372265617774148995423524290587585500520879120783510603230550470380992598113954467138671408563743067948925730205717908721096854985940390823807839528641707082873790591554543654211181343949962206074147087247928960746734627831112415034203318022918043100054423086541282456565848460503966403246144341896456712427960770470272017593317991513781087619679274720955400339122726177142450641783156645164040457004571252300586893588759310313435288071348397153514317645425052309722695422622096210864682277528065437847377634372359129019492223806716579850600970169921591145689719811430901196922957874497456980129382597926161118006211770476018596677062972263146528607678565106858044435431700487529524419253811657632009241811618862181971796869115087013226933191851389560227668129099369756236929409012388330660796997329104536267321064321564534594825566941117279219624665526468247295127652504106478298943097895533633655273610180472664204623003766037269914223122782657009718477470086290016683768536380952092754734663790817440755999158128956556613915228410156823493940406460479266199210689685132966185360268134956103837163329981135594021485215183735694112126673974953297381124295377014764743462702841770902581162649567924436667141580802002539397100702989609875025182486841788299437489888601328453015749783195289425645999603161069106821047473358942940032890809491607908473261901286253223073600425879599371692226792485080968724932475102193844865740688259453848659437161201606006652790943950363377344771310445028319141628191570472308252260062281275818054038116383790725733376500493135489585012201373551396744054704018385874494662897229899527406514743233681187846928916185725906084716796449764427997461451051676957791387603164161841582212371305899182048177771700572890688061475779374767987723242945190174343191679658748121779547561174685248158352530635477994450072460898268026891465769295721186274038974504406144873216641537841620733922319406024783521622690870429121937759402239059395028997427624426159944882071917451733661962379762141016935307314031860015263264075088377650359172603498869632692188265250186136444590975813624433935971361273065374825073867818404518001397347255475065528432901825378355312076318706938740573819491242390081654832162818117561369591016108206519972963306237044562649667576344238307262317940373221143143568066080966405623396000795308178680158755168883140524199044016274568345245941112804166713381243102128093752327798274632040384788158222421994238237966888502511871329954882362257049799127868952233524653140457083222860278784089888175526910876137495403173739439757682625264900655589656177598749797258874882966960988507426061874794977645962546705373590748958623582541026686509951089006282035731631137075315888627654919774429413856622189325576667930119342734295395426355244135193776753424543471659369610380484925951284453459117357674708456764960170486713130013210572182329129470058516460417000636104962963711017961716312088506166404423680276475012867654744310248250769113045982120872189103140293578937661883249458175569025113012556096038801405496066254833004752449851671082871322044658350362362024998604703426033811213025770334373979790173850291294548384631780538531338703038347754695243594421827057551587766546932192680079106924705242786815917939674879247870460702980907407979878461399811956375306628801646071683239226227309172029574732289440198634563999212651022192474534856949478775982174281766246941587108723027988624238275044146850427517203197663087599646627558517949580508947077042931823973574859972052979227664384206500952645382818609998748330324885756943590718778831771986989414303166707297856986289381401832983941889479658829006159800862211027578485092418154186961239193063196145182731875904190452203956659191104278678279481674119020123669582150849999549722743194346419572723386175792084491739386708673359830268122197325974011913719120181122932910530182662605726930303817845044403731975995694575907281042536751149630591971501474811511990985348299058018499016023370946893352327200254100142948673025815657551819950872455824901078063857465422170488899579810964170434908415963536879879966278367577155531982620236956823171284305297933578610146794282213178965145392091774626466922086905549272110349697175636372631014936245220045405117534633322264554252489787912733867479109706054808285382015885685809506054254029699861433386651145185340868484007603799314025827936876247204187705313762670486906358063538646988363769358745624351249502233034942657126407365085011151797474601371598432586554562478910190215800161965133502467561185499312249134543181387948294838523485189407894269155577878338578965338204296532412705702168906016319526344328443197185345167401480987981518716188032125184216487873737950191167029866255781771679353028716369552859799577593561302505785409701332724245192433272883513923155344462768010090112274773951663915683666102635496686429516701712683364795038186152761871242874784177388170485939540957744266320205057766238045903010275401621257188941988486641923778717760714567033610691642212314856698932845759125729026185504982102006385908125463043980603477126413589297904110541872203957630640505373315379287807063149838275687308160916119437741427868835848121319308049957154996431866172358518033613045016417720249060934555564072460989229083819620229361557360422357900239369068876124196743048777305166019921302996877107583023480835745025095942144214477452986967758495955520121932249719997169420381463125262716945376645225945039542783280215896083424546489837302040384098359336613928803302725591129761912299065683332391540471135193935431304302411245281819051902937209513290964176664647404924634585689928115046038317220749024244683957750467559428946226750972644247468232457708931430892328025278240853068958049713553687758113894287005550678250648751547107197561334576164882494879579291163307370999699266587589616658058744984931262197818574233968997081003767675384054918424944953803115838452335779783152163936136051874872080055941680523210916135774415226232077653471539569161465439441013449903938345147061636812329585897372361039414882496380072388135430739657826534974302179272545657014239177083450749017962297204791635549306180274621606193893819293112198430853407115439290569454448932958129691904551549534070367930685475350283811736683950431851701900337427958648897540732568417546042108771167247509244473582436049659614799387709605107471431181060451024901893192636599543049944452169634697174385944415868452132824040927018128400105962104587235029904705575174752503104775900622229394805639999762099915697083152337052097204922762891493143435060212460732811235669240264694868836013578778131050955663515857652389108413627148755423370507426770096024216723078499602363390622536043644671044198934524608833479669864166015944502666200438366857337102093373987928576324461188959481027362275814205734409976503662740842351032218474342927797807643577087376688343291183803620422859422182621709093399057206075083140335397992825278827015736601032060544016094580628577584613649165841298189516904357947954914530590557295298507993663879483666878234546495721266726224453015284303854454666373146854565695716794066777044634915030459975667345376459016256811447781589519025266357930913625107180904767040975199651040372853603673753598958238273027518034619325643168016605603661031726262813924437446016057688850049232481448112766241905614844580094115986613444302402067819559223654979294377574807169515761474755092787493894315359474657849785374739995884030492443455516016508191306378878272990334321672398963311799520759683060435201809334802669083597757886317265241947989170459758996919671282497725008010921127855453572151408316833670508230515737487648093831036212580409909848131277178652241851628002915782051926138097953852644213536731437118882568563712325830798567030274613879394957264732472455597696667537801864186985675622343895599577720828749783035528829135969711401628600265706850147239893474736817835762693869946090825591730299836857534894377794802885167975609675088582950894126827211898619121174162824534132641751284773812680124864756075093352108858343943322825538820977054670759957286985821245282649775342588392265409940593972890895262111402761850710177093273724337959868230700191014347543027500396196381714585625834504286445583193286038039559627692146827145237194942890968798026015158135600091344348504780732321039287498949074336739862805852252873011412144721177470705682950642066554949205882775825985027688489942462981759753598006902947353882849703670627465386487912067315443137071758488374610108732073086712021281563602993139313429777896831625091690349652717625871577330911867616492903028358926225799295539276379181649214958946497570098288188440230822767289762494863471689441078781056697060733285518983118397107225290320144143619950021547321956290217171652696525967922454018103116642582291255329652375373382308575604471044809441230455482470707634256956505716119122447231671529888982024533391724990306585576204619184069963431194164115628773777316479829897730778812097248760611594708370133033208127832119140116270255804021231488211938740269424282202755319021556425826298306802917965028415065181988430168710349548797564364326605351334939877108773809909553037169079246647725845790391639232626821966617986887473171733514311334341393880550921307040449059564589072786152720487752513090600489061292727545118521919285827199349224340160141703066239940747228914378881512597029527851503439565078119067918403694128513966660847358246571877799631807175746121798994680086033431774021853496980097182365849544074504505985948281875963143680183851930647825141431925345487253956227266018815140251012228967758626759964678647641218803556820172394009600970639067533781333584351651344919592829346284185661524972018661159508089341571016543580316355451349981173442741650775558759445741136619322911757410309354699641710393207512873372571760887818401771239969513248071868155377160152564873804752386879143476013096488149629950036434092416939670881747827059676249966314374398681735966219747787151657758828434391673508513587521762362328846512968627600628745954224197655807663344016247562318223376468060540411170071403737758629493164986469229395403080743113270248984481070573522673370519602043570877320527267995823121591880527921620429899827895390339727314052532592312193663762436417593376815434019640514822853526722503832216772193704067370668002444455016391033542175378558964831629626805131273486689668775244747048528758532111900599568192606772124953556619966024432613398822066091844629454063827423536859910400886015243414238467257951757050347817648626928391250994169311012607491761369225737253906380942398205776911266966340659714285883729480609632013890668385343520701721818079714649009305771954285139343554334311192691116413361055694120072287370829291677970493832947021098305281603648823349036071308367622740803216728751834378292253169686534746407525843742114259484139108095915361370388026653239876058112313424227835732910351563967274519433286602900681359472100420125789559695225679758370300579545970395557424382772035843306699581988203973222537580301242964647473892902465604231789396364467416070231521649116002862005083996889154786677592857233139160289569633126179435643547601547457160689058684105212559860396833234591930534246133145416755422295370439003055371774393366325129454256411530983102829321147256135794074290041910430238699585099178903258657267123143600215734949702180877101053251567392770075575564201976275618551212503299839481147068902648101975123560546867231038101073956899646742397335495123838877894572869050598239145361280044840933448866093309572988304098824625569972505938529684444618265143918817755169681227407580299651470609477897549346100387455142942222138737682450533578822236126336528930256772112893827963075976394129223795393686119398741648510021250858402188379822465751164973691736276309219753291726139225895849331409567051647908921602355354282776087734436829482857603265312746331972668158964701710263655287256746544616367174625407180048512181932136449062745542288904784268198923373172670711177604419306430201953135633198088057052038063534216068216910266585279574048262745689182171873625471948952576866572534142230856142441372513334974927275098564172590925977580814965992389379663429133095181276590952124962135966960970385626649483125206694454498861354258728753546663585589782319030391009794157747351704326342595695198057930587969959933021952853707728694384972697936310535437615246743766351707572155905390972673175791195761396747322242289661830207914685908520720400649869943758665664248930998335878865370784974378142820659032614313458948873018985000526193599201378914137814051087318557930887294595576339218582019966298671835815268992740350874537786924759617821019002316884416564222916226143336991421012521515041723549739313801035312312656576881756225825777342404544932587860178535317693070310836175723482164341352919939192993444134355455224911061099947322173386960315318644663528083990356117532250965778389306145858316922033845846794794849465369760042565710152410029925103675224738467323323681741095878950698941762118286811202417721984216267500194173654082959370316885665158849830211093204134199451223169585052055744135271166522009140075253441992070463387597626167980921270243291967872920323656355994272461131996967655513446785313087302115715614329379092080759888140556405299310841423640343647436023296932924310787945028143391788781348401766466299458663298098783179820249896014621030053347455182709998152572490302941225406347598346310563355125877795910067052204269819561825122896396059721420723840518429283333282978796152751571625958933284572666149960475787729689011993090474355337380535087131649112958088074760554694384731217712652333038167148700611756752912290779847414631216029432430638238353895876904120497607364695457707569606636122573077092848724569244854170537759796295786875068804490322333173001065528529334022146920053697984818822767684976494297191848363589808901793608573097425442581274420532979117328247405900156648314273852344163620909182877247353874283402344348738390824566277207045917489332065114473550424433839968169609429943309045039637793860443019191141563595281520293074359185200331704962641777338366803225968222230885833765222431039991591786923327474112777398836259174091473230746111176785751049446521693806333725060153700029784758088480778485808401035754992194091660924314679531194355817917505718406669744122814671380507349873831689314966875319976840048451956161369183557589170572468509120144370945981421815505704182586817949146400420930195359578673067713693844061943404742767260890559663880884768198527751286268524142955507083520363646622317536030046931085143126262376100819995060754426660461448547552563586801815112986806260679686768127229595830235897601206045001461706099520114285735021533786736760299181340581291104987565335453105912140428356633698504861887908775271220691424742806696887608127386717675263876059379946776602440705907614506932949028413803905674571030836952753577809973323233449902173545944144051034356947338219329358196657392918091557801321484381600977383311107795845936207844805802823720124545416111090980977943971728800094230925540748797280801298330894253664832737074421677147757126408951547916342367204371274072525232153497681868499752515517655552863611589483625994051094591153575956844513038477553079804860801809818304272244443689874111506536202288749988062137294444410684071928966367178784826694799749476656232678008538923840729488693998879862822320195227385314420598534900396040618711724104846596771235472764185929287397430038491636970529324512964623876307003669205902157637355404936844375061865421753371244111691500721099908395153184143802650961987848283097179225931773508149363989419550013071200485854575132063726188921990244153333656702917467326999165086709764338654402069972989534782318662907677858786201437779940506802827267651656077156778985078521084175038585750381502479383744676965797705622107981738675480375356674071195451510933033703227923251677128225748533679302319509651555714624604838891350976923852973188833498207097943467885862811305244532358606438245669156229442636041021183756682288619635664140972609829597666521900273350175335985821377144125608547841477151833675354627188134588516763834170295029526546166866132743808202255441851127656296357769802588924648552793910384040533725804084196394642966954894304644686620807516623020975152125132400316324136909210288616033900244142929834108791843949458283181941090217329949472779513597051766929079269770479100535545315956422035505923915711583336572774885784079550992635327420456123861970339418144163006380460217752237855051650190731956915445750707089375106467713360303299401405908801929877103566626569085328685841892692871364581573603459187787145346783427743899161671211493651900474274654477126175603276282761415197727579618371348687164923791452421566628460179683331849084336089622363858586795454506165536521135844993612453003408552673007767979443472928950037378811565492338097001480384715722162468568524898550610628987424189802722111366363458158125412402427379066374622784321941152282387924190593446282681537275216051868203560189144087614630087427479902203111121505743697580027052884057711837483754715813546747774559720254859112897342259822038857245112887588361899349521289052834806949707046483815256366996012054497036593760184446044840867847661514771505980299259716429696879067376936103292712888529620706647340724078894927772760548600809928082392340961499945029491837452859696429048177187904172355186218275300717695963856004601915268396847996844800089307688278211029755733583205964441899540271559838407147674831770411111747341640987838680082554079496668798138855999129345569299729754093093902525206747147973395995973904524678992123641311783280086797643236352896520275871183460697001947157493104110502300948390755624681484724834554062268024558649501044131720027665864008968398280711025247805248239503781736727227362570601989653217332326180443640559873870029356188170160026895030131385417865385132513620679735892798285128217874411963130301141166732409809964013802401523538814711136754162527040096303490763856479520428112351894354773905797626319078876098642806270481963591783325710493504748631883623218147756588042272599456468935670829005816151005884152788282853080897199493101821768743530647199379030167341910030149052636352126893400404212950778757240974027165637914001309528889881111636459321637049051143935285524254521927714040890962491006066490601353598875759841130281811303908199390931228150092463766271978887325917273479832529776095550622774661284705047049931619380884059502878310947053040688963532780757588036798401388006113358524240859752947151767510840956046169289479061050232009600413597625381895151060060928085699229613181903778079531501351539855488827818286149297104781960662207330622726439188851906791034617432872528775403020057841021092497552899728163636978115441846808691534696294184346413307688536996930661353438448485381636836091153491547016875114625770562953761000167436803822204489946433798934511291450518582747233981740877442049947582150271590515528292484512017966666393871285743628471236918978683930568362052316719728808401478628049957500470087425382577963296821245730688980514743153991874963306550281210625186108192450523937243002970591088910697443076997482561893422445150721762662875625798736948980892568484676798570518880596207318639495250731010712433783614731230552138776529211629771564797340367003830604358432687532963201928444472540811643624354166373007598676043456860792013554584943940217930262012076968743841252703493576284601982125460337651811577289504162163553437919787934410984987010564061385261587113393015818268663827496503140721492672504923924442909551623997109235725378525788920413522992305565567710128706265870624537873510791017870569976780899668001649082234491884961552417585610968161707914910624821409558894705138043284486252505055298015448446977933304729156230755195733075376710141405582986633426282536345269672893343144387457357786004501339066045965392313670349702375828852065188651326760698575496946981675098260453989380981182737866858929346230564368474131752729732528218088117870673497459536342541607200533389371114818418617995570115510519386126815202374751960398846799318787694071741420081895448315361320035713775221417369072433986193770578085540271998498313756987791524924575733794847698309932588186246012962022079365634816081224000686087271044442647837369262699501801066099128099180985372203596715918832258713840571975644170411186528783389808255345887884729040602808080211839933660054653386280491961939879704651290788874135523270045735951592069454371332179893243311197885143218461645047461626869048223916583198631417055439063984841860875510295607587193597723447715191152376405755866110332836226358538591469778971041328713829179574938396206009145287389295304460632830897175586708705670935600143743260100851431348206482322816583658522504079961179122251310363241013078148431948370024656240445103182131427096977041504813031277658918872617924339971543079533843900722695508537564648221125710112776303777442912153796128558042202068030547098970290856377568790949300861918372612987453791951050293224856461264685204663908274004244914638559990672366003572863293873182022345051769192108236120477223550717867808232774201644312248766089906887998960128490367909683368143503310976388032458133839587053903147077221354589984246106785900495953138737187138384305992232817754682597943952613004896992605228263550998733417418573714518061059008107251791315603825587255794175906914044491463552835197044172992109854044122132842611172350453787731411435370607975724415205925504356876058491665233443881814469229212568785985564455642804723283385652199980776768143435477313052423571077754087025829141883948791477389287341924136053707321644130675041516346828440416010565957397085917194581022560177503538105564934026210430700538712874108494468938557321567454367362965183961702646363168933067069202433113551831523109559185474647467533663643461754691440207950975046992748716199214495414715462690632542824646556379557764148503869830058104997749089281080396662399536251188420706240420573200245775562629607353852927194143287795504269843683850430831135166758692635287423336033581645613180159781963363806480577354961448889227988698895451395761742226375099504417079132545429952117166523012557600696150909173385015717351238711381301000659254136549263089821136287221310524534598670222093965045515437509291765931856509776400810667461417403448786006144047040018868562323736308397398999104226320929375438432007197091048737312357123094748540020334314758796092032736467510979416386026033644486689039305117886709443943310926225735980915666052306691276862230604387750426149081418165793962066489164098383032588572055668887364092007818942513836364174860773380028868090860583084402745777444746315730827820210599151492772169751254367844520605390570525240611908099988360214468202859975797030462650289000698379733690575440242326689533165007879017899121158205759838543041970112277848852615657385675641777634312643982789467324242423705756108874178671757006464664253973192657572424944070294950296621984497750364490772234347989059371922867311609670829787682096588023274038094301012301567528377604379568213994911417661456588888199592924244591046180234386613140913605822929533071800637567548786668217397302532676164804210039633697630518455818136866675656691768804480070743022390843844783742695255311375009654836960142488739292362614963591489728398650537836222568382423107688455429104467073379833287236792190199997977073364643953452745017324702600664001546978146209796962600912461893377489601510643473727880785289600512020965567935308520461485551078894177949864259453082504907235952213814425433100124174749016856659006589370969879977993515633229171313632332151923348843775659559133541175228793442582165816678235219956578878741091833128624940345152521743511248922771675245385686699247158097030378913554089114322913847418634950789296195455639125542876024822753887820006511048499511379202622715147703199367617650161209546121174389501001136485961712568075223481058034622251276945432222023459411678739534158672414076665601627624421940782353829134021209351463370645615311808036726361107562419991951649832285009868059750528745987149260103617236605119004299457473094635544526076825068293424946626504355066787553821063577767915360593156820275562802895093986238606552347950519197249532818023824106698407887215661338948144893512854071403671610932726020007688751127673044387739651178806946818871622202693827574547873653564054213570355145134824638193004017159634345640418019795449910409252567605373278887142336506902492090846778451289812861547508484939481190879772211503968346294832008304810818970439563005174190722915335734943278467302858681734549275357938267433000459272512878079207946125827418362034413728274465092633599635295871165024234804437752384470467441095897494734985479361929345572199122762845050842652662182057524740743481113874284678301088019008986024425533654980195971827936396423632443965175924673837712385991555938294387968748359734565894165851527047549378088972265091392053358691934873568325127657305642561787617991854669021383806290736944104267296911586613193231854347018957962732310081015873461387749369624607099173171382226682121173865489951790135780532000443677706094367459349421862365689364012632199699629519814035740280575800148902157463632684060079473779064612461977276257145241497368053489679750294785617246432756980811769458695062062450795493200578948839822755653875561368223225568734830143134907466858780883390501737184398267208196578601686245526369905708439546435735007942104455842354732421375048526022760677892600215838930014184380782497946210499509240522597971724553635147271838291663102330938278019405959503986575828847983331408490342397740080670502029156039530162353242746488928408811388456625230220408252015251583905972463718026745819179475874012024799689525529866783090628240514754475937563457955630117427686411845994395333614213872056499810697073573421577321479219889569841208531691721967515923416339529548852725524826118536409569311873302960830487093393769001258576925404677378714159409649758815239706703578573674683903420228846091623656980796368771069213182877877452932965216548327972875916730474759641972712840821015965870423154215381358137208262140117857813464677458933513364245104792876506741566732650929917014633513525060552188404697092221786129610287150245139723986382384710259063939942715768419572083091658984651015672254650961508624015043614214256544137951485117116637849591471269484955503016114566968248605667496309476859132395424886187849115612341099635082817103828728357217089673888379895004677124090026981952522544147199913432648391951717180633989611921195530806220889429796502329984813712034545891903643654585524284127789769966160120849185445336573486149245836839147364811799885169506438735640824986427352290727165774053399164173675951316850368396799030020584765881948186436031157608726480796633789959987022375449780308945930881690557060692223820179232175640572091235790455463680527939557634635556160189122676683264157015185252417412669005538502347065860790283618776758678998355728217680802547715441642041777018499563001161328135470625512445898635781557887755667893078040329269552413728762006270936031322384460250388939731111507265104853463252732466248896443285978093572606638447940357045289148731930848224709880516304318462680778335697833633546884575725936593501179417071123101614721918930390457848041701053460295158099920693797980076226593949114987222448266530460153658923549285354335968902051428774859646920693157081367352003473677035501402164890365606265971554647449202182474710365878794663344640712659755896934878174047594462870742441814289537301437697448070095512977420143786616100729013764598588703624917110224536200825090627691830859923029144431264683562747709082910933738578295125617988243215251526739735374056885326509299346097779167950901232603364760290476619324907347189775315484097718943633502920277058653512582567704045169699423458367625578722448481586542925525352490630792502032269336098577204796651730975770919840440950025283778876293844439734780117360202376426043748287159273105337015966236514599232845068280462491578658816067233642771539366699447488716619460636107572478397037046397532667404118823517819855508406082371105459592468014561576820599396891785583767224136665176361325432802821792837973215617004494952165308513208047825402759278453125510080549729811678013053906402837552344528790664936403806736384724456128376648603069540694218101117327002197210978374335024697133613971016886426540364592448279014954230007762373801738838985198435007249601475739901546699170968044344535984556408378728399981256776116271176265401266848424461008853016331888524543264905325573680698915590407832593429638467598869099567381794807270324773998591421916813247463144663029079083482723203174385702986025063404138976829188791122546006991513422011877023753882032804709270346747616312386084355620385233191692977718534849595398683893907850369014573459942669179776244766708929729043277807710915949486947421032805316595459038472137885467980983849235465145759714738241439266103128289964715417486137660892770689553145660579389910037370093107558754925524139934198362758223183000196497978113355945566226810112769471246296694774265122197175974767661569738524549944634057720592162869138730177781910980488288870809945260981758510578103069982154588807840616174654527227508522688632727145822633300821025582913673116299938487602618166581880398996122266549743369098677753274087537436686655600241277800800023223532685557176376403796043262387015237338579847384382895600647762390411514339048284309527673211986896232247386814847948144658130471051473136749663707116730539992920576602569289967140790496420580015843952170704644092178118473229391821086038368430635974576953358249212475125979518663754173481075208544874028388308395884134670761796266079271486327877274616631807042599917742486829018349705315646284589407027251236490367664912470645513158983985270914423773179451863788856557942537947850793034473056182949113011226074282462003924009472923757042607093348818308245778811598750325856215299290191436171527635025220491767187773671914183905776974451999451705498667220716648668026043007782377180635659434058495042720710363880399485674844949500354892086413369098486749737514457412817708086525781483338054478529054709449433809459559745780593516505457560848187832918443713714116961851548433842148327242317621587644973834101140584521906485626959692677841778376119012849189182081759222358470891334498366735877951719059945948355517743688263904173965672097590012030614828913598394327142429089186714432477272937517589598047416494879399845968519898986532207655940837590269309547551127872211517488460813197824536098667409392647963421888045420633086006001095614340711667317691684071068607338723591998924869183312692206231344977610092116735183945010468798058457320182272453496377363525782353160472112091905901962023439319111757271243676400969004502646034145829561926031871398717518356165301299895049702198965516490371960416316802061490941774421612072408372199799490176808975182252853683947948652816216235672695782266065889489869781348288848897690014476501702014878345541799544654101610942936707552691465406335120556190243820892446299425666042727712317783364851074443863342218755273160921719983105576895619492132728571504216745174591692104497827023182905389499964953793822230816793256694527080129102973502677532448976343323902513821387568427267364477767683655953236568168462941478218752335678282544559372100033852884698557556793739751450513176711687930208964537437800541972825932391796914790079029117569936044668401836423530562512984564541759825078345985963530481452940298270990890484124359625953618516421934209966243382164289770396475912489940055307027455863418287590529156803849715185259150383947096954249219776262734530815937696822429016146009301100448428671707627306384104817339987580713614834006279629336876175074541348542693245720710174275370263202753855937610677699750907173320242910455935651230044105652372205245876609786511962623542968781098099316182346999140318303762823829698777589697541148372595507264126402198434712435542940412611453736628597122746644582867123534989407848816631468761132182839120049690130076023475116628893364336845977327104867478370125802397885858713216971627730084499409695075518272237735027709771340860529288773216018905931618308422627956751744754306620951759135299122309280250303445575223923346722483687677655732513234416491789646034823808000624823504866286626928899013938935307008617779904369298292527676447708821890314632583813524991741609571798173471644100166286146322888842370710142107773857167749655359619049375717943483157130880672711861141017897978804356276012705708706239751925789046271515261301741395920525305889211734044137154532057358633930049627574998141773833024360677715469734832998482242703295940724550600370752796787782139336547825036543273823313485042162633306092745740019938774312007038595702146489176611908929629440112663621753108093977995074099696710849353810966637848490143573047928254379794824153327872352457955462906261694343423173592193362614077808377987826584270016329618924975628082806269740561481926381942166160262600137954260597653176801350377926406876468369271405825153400769371230771243618308661957469372860744088100566002772046517419890874395305215310467159677582117197490575834432919642393240551283596779740436389675918514932692753488263677960283086425867911035185610059065797467878687335813219352517841644847293967916916133219055455161990880591366306921267419251171327075634231779989243610580378812682689137081710862978557066856465921843667713625830734007304077649960327429142977573594802782788372727390718613609375598496733562921127092741201061524291713167084864623879846977493821489384522677256688616501507011176764733604782227731376155485238454298222789432980417151160229202745815007423941175032957038160655913923625025030059350524653034957617049680596560596271775807584191509892768518989078427584750726215392093040186602812222220817805795657419666430143153264662524340722031339534826875032089843402836891382009484679739594471814279238265208745302946986769439379517500086493642604816436801808995040702830335285595973509097968192293214392173744480993024481283632770040143795495172413536508208539500591931106650245080578042500330973123112547859498814578280415064383923583574425957594849000799346663204489807992011276978238875836476904480259130230565224483712615764145795867386433188135132143623330725297170173286556678543266477936259447730642112660393140146436478913686900870308086559232945850878704332090696227427938538555840136831315038911172627312542588465567563137162746932554061233854835232904290964432219120373443310747001846621161316716575838196914317298354416825508235919354366508689372657090148673910665233033894055565628244221455504068730695590108027018410831011344254971490152253364873548930814675971053235106459438769330749049706041340690460341378819848699676348289382187308149497375410328817250077386280596616007375154852819744314106426471024777908533189107610788101494514044159885290843848292115430031281136992222625467682233617950885586798691215402844637291385551046665320775318070950398413248880473020953199902183711305373696649333391018736928269455433363846957295660539088045252379064048069094890511783508435797255451760060327785312854513011025014438124730606686886520077202188549338020779299488261979011626674830765576390135404617119884814765626395410196996179058060963823843394244078453754500487130129921588431570138173195809935569925356306006365676235519831613092340927618144393786442054708240307343224728757206940994961258607195172480726080079610531495802975078592178893269869051217568361790120519514000755501276820975854039473020008921294602233579053988947521298752340687817216103257616974590859413688541602512170734464530059090577782967362819951901094510416674771747256683021192762551928603208771076298462292915210733277466792524021072042090530624783471997420751664793534739450925024099712095860035917993534698245583638258789618764371939060933425715890196207498659981723794583032776849457943663165705664029153717503339786243235975737495656429381135912293463656849231286928724695261929956943807905980346934680272114132172100812413024782411214977302180636911636024581855195666256604161479569235379526755740608036907414497635809081191275368807104976342944339553959242195967117305106106073248395530009344021997214768977626820312067160886525814066586981711447872922837929416101922721895408207287979521536378722735934739050905368008360608137618116804836249375390518298702185921258957579478619480685712142425427276110885793654635043179126996041951578440454085381453314447753578348482102142581414760181086726456248055464916605539362160529824548588020980092136857981992304666496215047834798579421245903059780554827073735150411832537371100294479729586441118307666313015842429026799030131780854524024910726343085950415508177346262498827279026670547611342245707936787309849826971569776390833995170120873430198871040659409074109726086363632745422881876300349338002336853231985024530736918505091681944524954427669485027039572641991496337453573481490352276340422789051486031616645388884629390421799581911170884240517756059109325313658553567267478038946349461206137073475717444523301157507005804252258308334658894915602146319240344135688204757112574962832083670221342395601703433443907800325698547218256430344396731194215941347690966602528261982897460700578478738881752536466786965277664257363638438243492243784735992528598803995192253738865679437327493063625283705731857329793976769017373427815951541889233527364181980387232195776040819025678627850029679416918581297856158696895795099804340149913023321046136987971579209720905138230582274714635758383973966120782818647859457600067230683953430270511387678660926624387420242066353699645115798725476607948321517872956387682562061632760539493823340491398107897927493350636680573700097234283163799111818261817117545513201050190500905304442941075459470701170975680312530955017249592482947270688568696033819298160263321799527785389570238307648401317611206241720659663254086613079401166336226136934138267135687563916497311772222329777822549379951585334365202286353326043200704148180840493821080596114644596427155368279516793672194905496990235898850649538827548765729602320999004975138427047403158706469672476281512399147249527720776416376197681450264310099745321529437563395781972942276500716243345408597920862462539113940109456651990081620316213233145215046695452076961944067730432733645291263774950521079014605715327287206071076140069262613068900765041660622687290508240946165077103880557720522705421729247900351623918100072616286580859232145596336803699070178688860606505690062855230743038033555542808629300885988732606747852289537796768886155068569041700660807384995268424187929844547825111605238203095918242737093519330019942486169622292829785083284017978310055692375235571818677026090937455131667971527412680515876783520970381425483133160975041926706566050268639527032224945687717357068197636673701722711802929471330147081094892978855541823993516967309095254641176558163540312004188796644575556834006659511237537131999095986154904679694357038387594898319855145886725552722741913051394278560494262763904235638496271158267816410935329973229668045195835334195090187763454013543932976368862332497870711770904384191233629917805808912322708289171611876730294328011378923110056337017556055226290154787491301052921317485805688595467022340536970585645844119014951110307739549061840068625215021903918279030215772529867583879146631981222875769374501275866874886832935973451340064121796259148876633985552782762227737534924233306393914402339285612483500981291122267584230347419608206759928239516129802752164838102832411628391060228807536710334487390826733202763506999325697116361237834963893751172174264006183589331242225594050392505807299174086525800033654100640406540601040031477184111947371621154576179266504137493238856866828660950777467801436744164923564712177833986970986167543387538838982598461334617241055704783392522380009495930836467652904518300484108837167356923381852917853713402089453838971988048045470416564874352684018831982397134806252045006145811987776742130647547321534166498761851275438726747994061442618597137925164080233983909217168939791598751268021029828784223411496872801754477641069525755959952229922037194170293163148534576010768546068712734458262749959908709450515561965032515661580299168211435801168068023201888707609862210765644441940585509785426086387590678000068234936071399247034169282934100167338217736253722198694166212550202403939945528397726647357044960324657300049301969344955528794714454187744562400890813688575623929336462093088275855470585541686398779969605408055470167250940174228821982554147133967239238625548419765951748450523348906095700924232610151370746527480106722603159375924162107730489137479186795948343585584589193798027809830420033228957032062272674195324934917948168520175491553494543261436940134377344513023578660612529999735224899600356114955078761374312393501055771288378430591523032607260554653469668465435736370480432032758251406138682182187357921256925787981467699511137383712840728609705894773788197950047150015675238626921171097857174370291644002014464844864118746446612206872000517730779458345784282604587275709889970754219455519678164557185170663035559162339254242933640115603177630994950800065121431563580462266364227470045196831775859670361966453838781324342835108692351755225110627243311595592701450183755860245093548229042148713749829111420361836202898054955350192296751167235232660957490003613640955560578869144263348789402631035624733108986665610304629462028657863943922500680387949705082893163981657967640553325165656580224912276315213971115059451750829375020330794392784677765141416666549227941889582040925130252712223721129860966292303666865249757429704487250935640023176163810345238754902648218035199034007211761417227916952979217162693486725033991221852157670083535665169958138695203931736272274096528714072191564975238265685356799294602680790614605865281278552737531846221800465448689230748881143836586628592193871590006208473118050546581847075510702514949024303472174477633011106609019080006987629552932253767573631575741647831631550070875970842921804476635121142057346415084239205237662148111392500841853932560122064850919052452478000256537488752899801286925427300131219002291931827088151674688202838076741756186986325563120164098650196073172316787656618293480781654385541159366359730632262196714227563959041802896038381788450967134826936869141473956090051694467250010527115174835701341798309211025060391932840776934647597041384528749455370267552959321316005227765737897607995562828716179464986437776784862384042769698425117796709101081544994206927315361417234608069828824721235190635140485531788861634991231981565813026233619341934011148876881065138647015749098083877936290386175623411761130033385400310931082884341966655230330704485889956824523843100725730090787121789983223400719605922681736352184235622126315746179634061077214260299489260664758712507307677525496926995673199701116606853631175071537359513630312389262318787973661992810614787211269751522303608486132939427030871797109067562418127980675481299280594637989655805754930868159167957063308427234098090678289378049836267341465407453464754894986088053575527223391568299621176426638344324003898968712045159920823837825680997244812502394021892794460091788150810578498712655412069312591366166364415307464816219116060093394403616352267606406864826238095142475301455234511153139976427545643886432177293853535131317426073350765668599420320598061276583017901775144420550172814788453241910555918453081898560523937943993071847687655010962139053555329589121705705113175519469140727666850913819886006919740721538576295884605484889460583875368646147465256053399403989140039707059725789087387389197644102706895479669873233268609710065075820411773857978849109440024125568114082786719072399285536342880616410257333881868898320096873305634535236397369709733739449359652643011638690607165123090859786769326216778138761298366672864477199420699582180760755832812749925773578065503988960185877686758436813164305491229386507125404691275882035241613811905063868264385427477755200349499778731334634565744019186061957641125145759597304477586722381511016855642871886497576697200337762526628206797752923584418995574470405852954442542570084466708099170169005960173008728918853656985394601774541329916030789296549745437692476348235887772013174132166810007146332740462397751767802021191520688085092260683991127356856334922983447790517207471774016270940366953701725200002873617547841543341103463119494619350822880496218244868114422643178599218318133746718623772561986280792747056456471872256405580456986696888342760122920736376056884218353619773418089291068048036550403563085783156200743643387040589372496132668683928990013730700871248473692556468880929908056595482380169905924108163359961041159680515257802608496402195413102014335500940490761322843590898013887627555449270054559387388483701896883840390786695576560570240703936041749271212017069321369593467740511199754383232218512561315372166810569438022676932644934755230294703501082451234362784398073906726386245167686133498321970068415092216895108423867561985111592293998805738546593420224224081010253336954999884937157691329954351562098918674501269569610121938631690326501042126987618711324059344064955976296885336688291684276095412052885196822309388648210214247026922781012980430075066742386129026058660022704829531985184735088366817746039812558448962351474837446704941940934793864839104888340733397903593669118998347233774349728194077651628044130297757642523612291771305876178245559269481215787807067589586075227242688002071324835143227068751576323180757159685429250716970697045616266683525671565853751168735174382979405689629508323037389276832444867799485341744753105721273002379967844100303455744791690441804823493762053157302147935789324614319429192628051217384066284994375948379709637363349400507540116033507854157276318629161100825983260122934403191752174141667020818884189262649486743369727486275041906377210382836292150882638482502029243497781233621166100015107335937226313942977433484233843829142648975440848670481763889323095550112091121101540356848097792853822838368024442396336194304279418015668136503640966833202752732174217955147407884164960906755201711311491481159050311617429601369369446958549482813538773894878105832226249836038160062979501056490190263030807591400687598368179735330636134796443500570378135276289111415075529206253991741468255822649777918789022786390349275395698967734517899618196834600667584401911785562007451301244687385617551776997080172599844092551122701462648672989840179034507384655831203478893291638746081225989622678274755875458696543814924999602036455355802522794187669524506902747791016134339365309791588380102597679365535814781990177390110739101189426544476065692607829991394507938720577473788078954499828419726020774566049854798532065625931732887684230950994232483036732589483642781882266850160517384600014964046855838047983496630084541963245369212580152301571302340849394744032923333960679415284536905732921732366305912475303079345859730863822618595753078712921289472122722731320306825195839848457411389856876797255463535653673788867126431740685447158227772377818036331986564632428288305897612836514775841860565204337808085306213576982512075858506739965361043191251929175229278862827956143721414100974881319557338578354853275675740142919073252607484307436192652105355719609938860939511426237294286963108647856854968243174102608023362062598106045207970742811993544233810560255414743014336240155174229276367680864247878013400498898218556755785830979275221581197929275516629997355236475836211511218279777148761670676460536305665814704029231539601091094291482670723391601998868194950548924412634389385859346537194495502378328171228640818879314218949146071366916067094330491883510142520074030193154260662628534514541492708924040790899503802485958451396294911044179364849325064153068759475385596063702042633156995606654503998147832551189823342155218291722745557435862761323592945752127136323908048416683292543343050579957749906759850038469929788729385228829648625955580410016904025031861233395357244888771540554469470746858756608185507440524769050549060957499366824043012228199648649843480635107789137894536282994775281204316995507656437207620892219619197017187265019812138774999634182095153150802385556127008972593550744859538047121294514000826072449971852047653668363068634857073077126930758863375769988227227550354987858770977010538988328433933763158599173481550841838513557932407313602086185976176698053165443628842475333394123785620528001890643290022421942534984318367371460946876630539226543994016897956607710947690550214055974956209158947285075032724506114196692677677746894312390890588706220106912395560258626751251673463640463498161789234324955073699245532328400602632490977520990858574546606974291640452441275796795934139423843398959844908499833026613480251887948905929169584724291512819621763322446669903632518909836801927451635573064789809883272910537801570345233773128988599107568634365067900926220563173491357167790729253494626077903926538635577425220959695287801861857702512714013733614244956527305905836566572778969531621031371286425239052133722036519856438498467105740896440388391276201598485946517642545877461709123674565851779276614297251031749242857406550935493326998793052739248796198751966801425811328673827353733708754166941998907021634502241560118375481008126337947617287429229452764563410005797206870868361159724785710993331382936642490010767579570958118573818075032985183462643223713570048008900596894836994729889883434423552154159993061113734205623689075695267777511799229431755374623630332616797301727436489172507640631389996614510879598529652090277665531438823881617389339402887531557952016014346125668742050449544478231247127633698598724136007233497865025334853632289885732178747697678774831820601784834504644645439342201110968321199939829810189195540350885000251817523629416154796694716786765898969937009791761578920543009715370534706314134451121214918494490242310905227702933489047898122954355504338955986978011064537210836982272753520935759597525085857542317145796291495476320389154544068845221585941912554816256720531537791317847695324643489201628499091375376852489339007019071361867500486320602238799376847567844623117075782015343460108122393486121944648983609807545804305521223942183906308757226010178752717415837990456738150748247464666968901835980486888561047435750137902703632397104590274111819919750027279641564313799628370803183494809721963847887619997409555577384436073106104395726479295349636065873125097112425311902519891920049484975564238569015161797574851692683422509968391004768466693789203886648529226347222937182688546631623042732745033217363742138975176679485740543828780642499097421846333371531641240565281211774887487781917614182944611607653620105840776202925566082423307652291035814979354541402126659898487502516364349155603974270231237512982812272877865358581929309774531861878782674356418452907833730177498558155576019830855367548394419055282076981736553088901429614627682560369504846803913374085491142624737020392741899969283082475863677561708748641982818449911984886746604954572366177479779291864268837876785572720936579203547166278148779944108116180171912943825895923519484971786345508132486444875650160677703653554018964061077684789237671295256093423521637475214497136117406369047293945153752429399784468939732058075734683652307923514127421416544921957480462968323345397662711017985486101250903551822009344796496148969298913916264765614128223067278175918098054422138688401969880873391850491494495058481357830009370879347927756185603779344647811463698427562224485819404405053538790719386248331836347583731952169542581359875167891737347813012742205632302778908918499189970997214748377412260664874203026998237551948438075092388677949423637951167335068790349077375073040695559347724224296829489914110541922980836555437907921458646935328440220698098003591452834652396423508323525494517175415977108851237429690518283268344273728787242066847222209877551940999331467493281256814547527215198178140000576971612759436598478763881130599398109312605237150743090893508010574707695069972658502620688836093443665086490239442600789217126941100379023103820268732188042140822270499600978012642940249688139552121871586422274951020566675844709752248476519330509574598991025634608370966649968584594950110728821473841269268059575957954709400666423763702160017670679103484895037016711259988531478925831549890961974931809798698456856931686835533637894397464316869249514475328245784605303054844755914865919958828933355151635360070966418223503661273401303200153451285066042494546410739885884296871914950121718074156859688730553952546355603866703025036499005702249084864803535156036129725702421111583034716839131296689759198715785456378304725318525921537563341627857679840039031191333790774253768222077251086470988683066753966408886055930254024944427882317332135229688252888677073068967259510247460846771098251094708778586629309451227190329545016988845951411883831444591590723782800962253260940341269102562826385131518395031770304725166726858774813924858298189534438357565532088288523455874338078048581393986533645091618660213799958567510423363507442248552621828478972820313720714145820313377016506787077493261117348575344549456129327462403466513556305565186615918876305664594617091013160073848304859643490638566859794259379655873432567933485278787090733261480792871298712444230275948960056507356974244944345857103818207328163290679462203251549380371299004544080176145994523280475439085763170014658195409263436564009431286248366692763816239063069239893002136855406463749274555835281878072006002703191621522466089057678112054404990280260177117718761796715725545154350587707621913425731876218840880188861206936621303601798706997728634393083081275738364284103370163505944510407663540355805521612342364864047690178803101751011473642136933161267610707266828010505047752500067819946013112817093640319922888254145751858838758150650818101716213815787145572385768684696680610771757141788249846497768345927018153875957803348542430364149377360640168745568356071144108587708889061474772800540162381117802106104368895627589373820874081628628413996386509632425865430172910683929642422144534403298366612057182368257062952137641365597689593725369595051474291284186134967971818034790522829430459060739000526365202478052842168636295419618877397316933919959307010635005845912424162078644204739389213172158667019448671883181326299282654753277957779742683626940060344780460705375423623734267716371515829395049497393313077325180155249468876982354839281726324405962378119315936324938158071387282317602436937442570737146718374960276932337423482650813488134551653632110065401146360658762497550775379511403483706882122095833231112169036394486744208149986269892732658451610798279237145704291765635528228765920321645335852899860655442588614336435638560988077738064560021940791112178024265761729393709904418896728039367381637756044858621748062680948890178934261552685141810786321274589271525933394170691517694870182562116424290010585749303221773210528439948699219176514810403848669126137919595171915803579909686870398174446860237242578872685017971033665444686434578795080019415590954995263298939530260168037786891649876404768967077814700360091055757485801562864572905911768735030374779843461729226758156429046526578201221506005818875987238604485835949768391676130072016323385533617432950883229942225322362270783757786169608433220996486328553455853386881652188109331790929217579816219067159725203223770447238306594754806930868171390496355976481363006965222679557035799572385231990302414024797654526517211017895129763804110190273373411664468775236554720279790715154327824809838427898091480572930121077881314909710029709359207331517700860972461330952065308307616688764714863297136348776899293164335871864956351579960066896999059264029308425241348847932164154113730385074051786322829428251991625036599559776437194666115581337872859037156767967042466528315157540247720088913309587015311604121709822583106834385662320407929891916163455502522403056463822214155363325833620094751817427994035773434086768002314852413966605856039235380709683993355564167449655988839879020410107956400215168662180512990309593921771365803657787009934692991685878535358982939689377045744510212012316262274038538718111793991231962747573284711428109752415884655748707209853328793305403017470148524409295962936972797993577787287169440903558626254422791263995697404378286229717479920710220742684909014857527162592280955686788513430497951587348425868743830723734583604623440101975703180140791259452264005600161962633318633438219412525261869679903401627933470782260272980455091037709355781404328452728225416579405766946104972815866779703277754269546921819510405399333485765347192320266124890496200934165054828447585631147172160520061495918371500677671854365033169555211332544987516505402307169311955940932620522709627069432570427296527839920509202676621712996406859347658914158484166733474707812685637532151458495992671050213871505673138938044804931173250830547753353249512768987082049759675695770159152866266654724701117382127495929494857111605540768880211349475831731440524155481325624162854564717135432467831062400888605651857404900323712239736297794629466642952235926774401256131338698116752964014166826414616194630564638370458768851662746990760252689635827447966394666096573247142175719920734152607838526167963601027900893672392045230063625372779068947499617691998208128375194790464586407306252536177594167843223563714264305067213195115859958963178912463227237517485292274734725833933159916294802761379938252375664923812707764501658068215088810208715889945121824867494382302514611850532029767660999934500995029364758550337951632718644113203055097882970544487899165061239407054733515093592979031719526111857176503696943032929066597898635468001887194321247846740194179344525913098649702253576513575858806506904630049226413928959636813835409807774555951093254429733803473819734728052468745872904475029047166085083355659292997521941949588849348180705032182298456683426985876519877411990207228958326199629016313885045507001248286382030584214689210486238995874467793034638768523316441242220448407002147583817437113505075217155196525535194548524960118864522663352277845925573912704260865497554047936810113023964784537046585077768937939178110662356380631488749455168022312649027787703984434838246519184279465929136406732509212743382689366260253095308044024051487313858112734271841119139698613505244639725971917773811755464550246000902769505896724160725185480708780509931730944268058094116835728422076844866193540615096141224470412420917641044824441726212464623209142057513641661623729390300357110689791871631756079371619844318819754725049361547533232769307248627644998183939692334832522409907245025769628497318607701856481733237811544369059560747635436197326020050271132919336813274811989163821509702516621878393132820369922309710189593351799188271340194863735660018775177614789199043030268294012565942384755154141305925857301393254390081444183923365192603140232372803092905756977639565038356953866990504141918095520329642976899006216380081827748160160234879223366629478380755532799906117907582459588948991875845948618149042377123421864618389663353691163745198028226751384955255227624087771562394792649545098828566153961956869507513001772196254256017009020088682074683941751104905832013869591025829257097616565909812979834626401221162923931925393051174347131623210476096754294840774503094509012936033953308759170214911549591432769959540294383689618018550021529323613925981427706605209961279279384293906294181005145074695559863910845173745212362204496600940263473845429150855154360543518578486843742269122258182416815121466902492706802931071430700184256734099963311871631844415689041255793996346670381725661517726347161673709211371971424922159193460038974816555154893310895381975916680571191279302389097295946174051128200621658334575904646778893223281007917962831690116535770627160025189987560233973044061056665339708844409014946188325669646190207593511329883644222681567197096339797196459622206917657145372602610353707668872817610004026041196223204102571092365164517146060071011261074202242246303821598369588551245052353684025498087979347807291034443851355252231970078960756494444320675899992004659598073166716288448756423844274825176782602412466276955409431949711490539157007311314928431339264417181054777363695502597145519841310941922148457532275297418843386583649163662932494192247516311273291363705312663729786525400246246334254930273597831038750932892142329182132167707359246279460925924536693566865335622289805932030425742813308945863098215509389727011112254996752649260982688082427213294092082381639041544242455696504903280168576265241601986316854956460221686954722560741301141355287419081498956503834151309692156389703145470313834724472394032101318402003633683492551675259372776700440101724199579660261784678444297536999131309114993674485743420550988939391479499187454344345372781255398671007756126106899692580198392931865707941715794890657864754659134196170320568006011084408607975003136514675483481576680029595937997666607427498267812344342850083097193977731315260131703977534180645776399652788966711107706874274618999737684914629883110846246794368157776808473736575114085812250677626217541657151914857631123208456410909417940947187267378022649983316113497356862970101686993403239892477424993422057475244578454804786205691413902247309807885133268151444269730076922810913973823442843507413310248368568858782525728372202286181683266582595171576666695309164793936923224368207722495373846977189505782915990702157776431971068812394884601966496975406920504286794741789487097697929657418210769295207060834476672280196186586374944782624436077654146617070460102325327125234712832847167218968544490876420229986304269781017474106578765244216864037707192655101574932219827879198723550229472094992867561328585702825180600177906011396973915204962334573912300743667126598046877918712797489208573135644860521326173285827084105176051725367300824887988934611123152129394181526769817694522531643002497058620168048555274611368196122780257930908103549911412120980032054411084931251013485731103602550019263052215188364827183983811255983995433188926779879612714124818930273749091705081214783882305370085930667147631525795881398280676801607827878796093257146832258501472662595463606434530531892797800865676896230510206774508464531138930464071147775916323776207445964071325925157349577513625439961389312946794800224165475080587107941608708184148662951911118044204733518901540949133710370098791721340843833750553229309560337878522724115592256172906365688618690082782226724751254851829802569693645850605049441711320052693322010880962089130067998346001666041280624952285561669161469011985942296404098862005661910980975099949880814960518547554359689209859285152492232247775341049121765585595329893911621131009424742755053032320993937995534964623409714739190630670182031770044052201959701955895190636439504028746060577182328472052671307344891909029626644379565091637316662157106054245755034983293410556129405054637288317561299615974080286381562460458536841218552345006736059304861823936631360962785806684285949707086004069244147908887229711029816772817960752899021523185760024252607631770990796882921099348269678770086982220213183375406313603175446814368207594024082361174886453517884359525864233014846780738678458336686543547881707405867292577060980791780873250416056842459652379444445136362783719398980270324704775191246720382629532062245800924780449280347372334953139489073224392402307219899822903159121904291784014369821534819694962008316067556513407192482347858414525916807833074174252168535064043370927085024286097293719858873410577867181906625579939402120014277624545667468876226362308721061055416528638967881835248802807059278213946955454886311781783677257956599121564937573755707827561702756107240994161309906443836071234250943645002062777725906657932104082132154189330663267423362930275072569558614181713334961129792652739547230008086149855628565451341152180694274467686884003838499104072846101005730564449654365707691660004707004188021989804007084933445493725772230551749092388554991373926229473582068094228201747695601414832098944100924640335849899539976276931091017858594687761256119750356161057584334334824127588194901646206049271523397672693351937250405365759771437462860574415156875041953772596267491162295313823685255255042895405686404396534595757452571077910682413341152513295351038908660428453324484266044095870591705383097982570875074994821474186271347864547614987579906507946786697729120948484718394071054609623335154825232706505309119323164415407392230863569244406245568883426698631172862407220656089385026099059852277596173752285684975181897974407506714835136978963145117886408192402821699605082878343515307403641126079023615529161603888788318004685949248074513166864401822572054490733161497513891817749827505024011950961034021859740240594192386131096806377311987524222378278461392720585419955387084568597702569874326393058557008794819167282528694459519975459021192793855963565901361701122710736456109109513977689658643147296203382032407586046562978926189444609178584955448373929737198246045055918653385640271222917463806649258333011024345334203744357187245840693579387640700337171474369832934766670320764678685123710450846492535236109337844730060483492236251476057546212574342210693203583851225216499111042660173054748420907886656910224789611399910099258531448094382211912241832329277478874977052677942765804237002723782752113049284577279175227515852451537888870993989622644892499098964698267457744999089238184853763537381637563441784486568026137984637033487558810135634506392196768157107502193028453342858223785633072207235536624395486211261589362087268691286233025803005833489784626917442265922396706881297668012456090976548507335971681177456150844646233040410309289481170882254444012910334833127752326995637500467568999435179465026138898713216753076530790398631845912858131531466248254106512186862660886338558411933067646079661808527844948010679629696272447838181927644551568053183222742110510220235600032078678910672729887092966173734417555902892275262307101039178364938414350756828585973421220328295669961244185938203726526211495197573353573638218107988480662859670345674696137846761915229527138698991023362600505918265402326870858637855819008279011177267183484084177220616062999053089324052510832686807196060366446355099664489645013384600615258562875034127679562314616082057758260821258816269782869296259418268470961199648235630634653870790119744185847258883971625391692053033009661903516750853254384060726904540689278509250942110718802492643810203314194734736404180638652009317755658934361573684349080413143861310744233429792491135261084837727696059002016760598411516015937549815779174015648036560498339182761555392672625200670198875794826046843227892062527692335036022941929501958948532346536943019263749078989857789973846619420851888679418842228170055363568087771692881036827080220780236478698102301284870255721617925259194029174891875702869608152937135579241660476444103982139732260628299874272212446207156829802404730302376076034190115282876603252298240920128816125340711919691975806387492999883267528209929267993398583656464723352930385233667890969809439099880664123898055061502123525082657898504632433489653505844650955346377506716304135778436377642928381307761598606615893989436782610113576965436061245336157368359133419427022838730398851580075519622144603405995802167256650421998053092342947701135890670652991973807885960530735348345494152036647150748148478899441418989246128259335220115077493073172892221764930696157630145490796096472817889055327232956083459107323477392059252239902207960726016732160999509456716964681785774510372410560238304007715248849992858055533297346745486427302822689843065409406843436809754650797091854567561253528036593161180479242946567630340016868395456625183633138712765094354665549514395336201498701194227390317682824121593034245187252674336938038680389704871301358618812573426326476338782312982590059881719432364685750169589406372574568602715723897660733253843184718954282622413509729479591952141067392900167978723238810025851321786838767971436930582895402142701946422973546583969127807449964128348878598128035143883240037054842587688927894768455171703364051207208322048737182927878648455259821709889090320578197630143856813110868187734090716301506312508497209038545415086774306712137745485635780652327745043338026516617227457120698479227254340110399469338258842191625055172794906892221509167327373982884076296191764603675373523226640004707223119177180532954160900612612065713977760486873627612274387460491761292103325253075942107715782701703174461980501788377146401021754332716554093651063829270591846186561934025785446708434921651216392039863151548917257773495802675145453571497445822657700309782468755720201731950930151458081021394298534397876351566606895486203665767559844053642848329351373053157420088981481000585266428455017242082025416814021094578419324818957022665749527461662217063645728725530251427695437141125852763308441699233167126211127502173341682536630195399576272815899103409173767455579309174431196638816819165769673470377713164764261339739540801989245940915112528171636137116106302321864195112068736239495454554947143142611181071934902726256429405174174534782424613253954784266109052217482385416010534751102785516078860045980817987716277503627546658166040663315367798501859362980954194815350864730909118562093896288095029460967016804867235590380827662729676157886141920668986182281118773913751125096292795084745475239653252524987661390035566146255089464685503705433096660717965288762794041390375501405815733897076656326697475780109864128822931681392085104838719152659744682792336625252904054993236065895667299309883084930660322700856380000397813733379077790681580653076008403954999382118468567143751868877098841268582749524082025845136617819813020345756229794907585413564750643132154225906261402754785640047627939252493324818502493925313982103365311093888247303046416751478211574441383071868486886494104519843225897450357038398952647035858994452946777041993033018224105444683758082863101604447222086872129587521976775453307054321151275383079464205601765054327830589782138978508659730083575063879917124528066852953449507790649671343111516183797791440577661471195554198213821559520287024997794261478481788230202687832716950108235216907158642075413394390974201541980379125612891991839929769867152648891521739384741246682090297061349099773320660802665718830694557629687886609367168908401926072815758336440716206929406772592479319362556371581150196275110745866424039639435267308508760933146295706927009583501446958667268177664288270290040554788915815477360044980448683476757613174857377117942944798513080428924893829279783631161570213838458151563387691255226311877656635748570163727455616236757635725802140709836269728371339669297821714712897679543508100207998784544254827816497967847036257360576917599952286984713173219024127278025808296409846384973414280635330591668280989083102196043953426944606738603777791807941481770379010845787359944986746034338905628306188955397466138875298625221933400038526744310297288791766547227453887494795085654006716457778437570812927269398247178325810063724179627087579230159326064042212352763549850591577575612998518359757166657672970240937578217926830237811464150021632872148602231087484204295321374554144861542261248844358072854497097720063656449128599470912744620415744895106470092025117561822290075297455187924005676188774642731380851040203412087051300257188372291355422501932804367179234330242688949773723181530275085277921083375928045859451950495192547045674597524692419668649013313605296271450328029262233365580603839961167249686110806674052704508617609146998224100715327984536970296228996705314236640234674242019456492985073642921496161006402097752660214702837319741989077272475949203378579916042663631976630417133979962269105138935480395674450732128393355758606469266173137913737793981132332677979715492151951124195880769535473382270158998054632123066810756508343157324674787225483377460911679254019201247828081438367426238072435196496422761833122703475253881829589872313945299435661577697395617776804174933575657534649121849032686042393957645330616163426360686923982568814934285699777749762009025982312952553164346548313390717506314724165725363356133422491239606938123448041598769042244693381268087598834166799172153594692158629049258483638710238067871615628239059627392405121652240356183838662544114621244279092192144658658545620875781366256341425449682410535960890239084981891940230654993211693815902420473540791049900714784344339817055226983895647640029773592796322515728470965693643442573823075571901184560294143516610064261802048831675033207055188498268312612344173939164484894130196943998095620622796800064532464071431241667698827376370997188508314937642315790101158868405436356898469892926520355361284483773923912055606979390094253345316565434736565769962911290088017201730930966260288133854587014937004499184024920048321577075284901111860778873288309094353521569679556885454090955855415846338592541408380621557938496696610343238377040696101153445162877600639865344941058154335401737828679162256639827460428203401067003687540788908460550049091115304402621194107868427210012107777733518295962926010962574659356639661718263013998194303836698031230753374776777728637565552935669117063894746495972906354809975515173027344434811696145327054560936453331846251376499958686237591773324159521963528657316721379753082641744346270617036847633551160517350343693606267986685914939506717119068407863251130555521740165272088142045118523813872502224703319991969214685845393252196990670055569027703777292902660871913520902647467864359487834398943862824150385347974303325718991406398417464118900878703510659361743045572424483873223696890702334079760344532618737228981297706367826438713874491255188082579860711081970094382810287016041548303250964370239087166228940745603679163160145330684224664594406571136280276415676716105849209033113187481173835984049348649029812889769006136650130444114701508045566290807578060670406311104142354804611207419440098237014515385768050105593483667732683604261739777828579892038166267170656499960192830664778403119003548725038424166294330567793343513679495396242401953789528193426180263148888421009745400750899669101411320891030286966903580347335631421905763092184846051170732564501480090213380430411049872484278098563105797082863697726642651243286398130633536709483556982546727827623416737962698995945650508468795236734618369092920847390530680512681845883343340416048992137161172970235063330189066200264688884195950831437399404878962849219849701550108549496795597226285029978454682680853622473980756481347243778446498140714693740778214126534728660445090501935579562679800564970069757539652217349539471281299236687967695536059249229520386099555660507306631715248552276535221213632323663654902963445467302471932039409522751096036442934223860063295957719598162352454300090547336161053860112650889716811327871173330032758439335945750668790777747860627324477846899519640768797872151181365124285070126165288478006575159748281393292057504569537735318807576944073573730186552277825687198871478947065269852137449480867701759558359139145731887070152917725308044929406207662058656222244056450272183071762408647252978768980718110706542869798362943020142900144630218776138832053158791242880910876608834775325975198821331043828553019011834737450212975306311300233910448135002267088751012719697933183045913544291815001053768577751699365490999466980757788018481193912026970564728587038233324859579510980244465173653777433375154029623069875862320104099150138052964462276793665387025842266518717232695730778421586502524917806792757412542102450445082392825904473696892104232784584987794561822613449394244380741887840981220111281293974065761654480314228505221022085067305757663397884768944918947145820591612275914403672419425180839439305913021314330294675331764723891821121472314954566001192596759622619122503450492961427539873416571192941089745171064929250172474677185384456419911812256504401343395522355571171171975729320955393361924519000556955057490668011301484183897356808888707775107039974700031679740703780770056219459003248103191661917858375811692388598579465222213277659678329065729680995383906978002277710243362611544872704164493563428505938294346796858166717686440206175081314283377215407966442553960542037953252008980845396685583904909215802979336625889754906878084790613788435748695715263022605697749911623515257430036573412826571465464200848437426426318278588644274119254127440172004447416530301521337112417343649905752483927020029833381069625314182683491570141023119938055455981759210965153387873246538403290812876896071319693226962242274223769020097874915626993295771921639201544896804722156805134772113145618007596167656364682688461492738489771766039212332523684769910490391167518278945852473417566343359959481093298157883024241982038069971831135303376285900372127046428978849764480313158869112716462695677412905786415020901503036709443327523881204428019043991261741073522158635367747593097212681229971333520594249846707828945457475274101997723160676949196637202790839386524897428543534165756862919398879706501497319727181075831762546185963723486547950730960886998305863828514997469381472383362224470096581361240484996658282614777767224194785408447313816805635300526296730003309479761391372132161644102722378944852889189781708568252075802200987066099750355356127080120977751863762257697055441502393671095516965870003549610651411997227271370079479783398038006931884385865800886385387052404485111102957120471076171080698109270304074899015332795903671107181894274733597971479465502244492904894560892005458045225516824026933674602889320277915818893990840130941815740079539547388651306321735737925152159758291389237728932617123676832125791290194470287630702645955782493358175049054342526244779280745003121118929535920696700498098248295905368595740379377566940974058212352506781017027146258969606093255012968144224290180555169615299953087233747849105555884253587864114574479260213005672242686438810210988843094939579498668971049282866328407891109576869846647482521211435054310804587370268358047627054898199239399713096166346789162459877005039188159261906704014665165944807149538918921579092617283281510767383169070248257185495828665667477877232175075643953068428542272084067221521856393095896899671007562229047441049934146694660583093412657104370905184373869166845140110464099700976100157731874523757259088022080373825557275955992802688161006795574679313215728429365970102098608114185034350349429524140971558071826334105552082686415386171434910021272489419669564237487854027815138736402359306693715966939663326771040457577337474443715222769925116817299894994361886168171057978105136701670587060028699807385434625589264005219031408757002733251824734189773794345787441251312849208184592667403655845818912782486414727064547624632007079169233745435125500513857610954171778718004348847712084827285784399023275259596464986937063193516785598528961197815102822710417746078448319497581071531076378449684878019770852700997697285836513870775387008758421406207449870094075187342438712107986691377689168201142130559641655866411135649164631845210802320235491501316880940214420644136477473878526957011246320023499356645130730027613266046853347061657283615872147096047966048556504498542691292520722691608631804999801999136865122227539904796213958231274178367329849919246311848640663699585851480014992606514222172859234591092075068229218877398420740859409201741112620510202497687084361749096708627315213485499130575201632317514584040359094775336229405713573388605433119549592829903362480337892927885928765686639741417238633811044174131655852385905984684464181654863362815734496502450052664519735979332251744536163904807100958618432563642045640649629853720877222465654739216813359690798426363809053923203881865891786035652287815514106820313151188132658404710788990571653025076312743452306459556624966510291831695516542692950341751433926440362948166533116604600583121581573126902938172290841906680234657330565162189281076864891352359981923774196057013631416398158799745988059513811422771536772428696594189614192927138076550324016069033713856711873539259770013810938387051071917540495011873130662304504223180897546828882867113852887658824205848956318661693257200951045002147372377373131435472512563577559587060716687071278728354140825499151167855968394324121596185833537344976361419641420767422857298375584500706378116758737908082667368521987699839282381533038386494439484192121608248915612584802506935838439428488219939763675219419761136826442058971172873411180146555736225814538702146792703687279217590638235124351705856723097096378943859163011358360833008868706834277483250233885031263219819373558690913234440531669907235764315084448288534419652236341479703308466217160486919719337062409253258765780219144046046272348831387577932352585115800295095854627715727283231783594784724349094584509466315192592964197269947734210774434264253556318849834211345741846671774490762535804472829784469251721546175638908157542285101298663021865567079290893068784270870597030605749586996446148820182816341276490645545004647702392880145359779124428252582767598049032092515266428795569919177991801753801590595873782239213944528025658625313854555768045290304435231683032168089984664585288408524488308344791620191728844017145007757337336537225269662054875947120983543725965551448895775135342655527141853926564513518821646016016651370500518908812389990690375713271162971116715394747627833348460888260758640208742650199386334970254531735747064329077224196974755935760010805821597085884231695496310618951189659278553441240680556671241130930586133168961097107728515744434369650387027277087284806718830277984131694339001249277617084472037486042791444623563103190525607456900874945504791479091701172970752330683214357201197094907230312410212560544757096525799044501222722598328707325469783225480658349465620473976182762100272157724113607916664112491111234699818189853560916232518945180478524312247003551846414473348639206746378309412590150501289320146326853867916514861494772586104869198777955627853500297374167593945812086342900844778306637074286285809062828264453617273572305661219791047169730290605865636307077137932625714970769467767399992400126764575900473443566120634475890113486978133778733171360245719071404029286973190495459964319120734631522556800938843968800640228724649665630124363871030678426410342857461865942899477872633003092595510850065109665024556357942376855135296841558130877331650875397362804998705363066530505810939359008150797698931330544778748121321730427078366169156597705082140786213442600972909308356173091439298820092470158352160679111962523170737802101586242437870025634036967349639385111255778028964653559563489263827297163080724767845722446050417059422490402039892775770372533510351968868590814172640298541363545557393770729933337468103877781954685427201862271301691234283641486766723553393576605274975781057851697539899166213300922250968340979585772422171567748820155692358446395809614110127038126027487726514261253330322204668626756198627193980401404184347067558230252528099919776857492987802463556392133290057623615456303045164235197481593740903261321445288708913358055572655301824764809202490334481716648131790279367127903321510926492719912277948307520506821241032059372927422259623889595469839200193570726836415858337622786444859362686369644309634649754610129150733990265318209410153627807339780655000653790789698210098471792358002767088555869391032400106588918469612304956152049769164851244241199112888176270855886524577963100873741298670336605879429090766198522695080795781352360282760842338479398641300760397250674663943060648111726424342705614141887751292371942474371281949744785228584102492592258171287721896806905350970444369538188990079246401619573319840579067383801657570073320993439730852176178999193994888658617585168122070048101162329447676909384412286651993121251962974237076855864538232059332204583111159674202973092138550341927149260680901424403978810384858972643508858300803281822822579613822102365363940707391551729063550497091265068312579048827737007256216024113753542603244994639276306539681225589486097601073311453441386498586032007754381723384604719870892549569092582316622252541158027799349798535315160325716277228830547671191806092056211805375848643150054084514613316419400372215992984625948333637567994958374452314285525347221106154277624149123216284006913271414520172064094309239498785045536839117527212988513076013966762532807089024815515074931030973536321613598119539364093687116816412025905608196404314131936361512275963840855290048990716194542562347479123788744712840100876114332543831029030301074154709703977554463973020926753133920087740770421829810190399638110001307112932325177745791395990687487603711936981292766735068994890668274049807445881083457305316921370517598150820395041891168235920913742699211993792194947162924850334556727417721831144223553255771442041320233177184322979997195978299361104641047886396086871686600642464367136573662411022407370355919894255394633466446409870202106452942096571209442854329178676257379173126304635911936563049852642714081254176536060256708236916057652152848676361018490603964573604196780479972128847511677566301808054673305791560818399243264664000851338757729033062177914247931777544313413061610151149491704883033993543029229501859238146422709591610516208357205557512562573756751016103094456233674435309894831247840576957333851654333159011957864076735490845833833472267548439051136160572310373903824814034606021018251369358907135930824247670151149114580519306369064735200468823853266047250864694470819071054260702499500495592246324404296697800421853275027376222460939776759618026086659770683321222849183435394400242207559153715297354871156998734748953907393671410442051188101192794822788579701128752686443272278091761432005015700027275701662820034939332857021108813271575120358075524415487438192440137289013775717012144040992226498593615023495055108051056254296699772769151975887015084123521833189822888599696446640076508454794940275517559132234097730760449544836553146660085181888582718336975209600681846609441010975063121004612447824908520261127629703413425369579961292126929268847421533906665961828271637939512465620689947793204985122395321748968806168208076870569570811500421970088394646310698036136735895691544944128415428249500680689686789840933860323288991663008513855498845672291997744911925026819390797227710950720204531521300276596749537279961529173110955905264558435104863907762704669158501527647518617038005539015890262360354724651189570904374228639334457311637997591280696536998337607834456728138582026908732858260950567055329665150088650390051085828099503081067411577833565480088315044329989488694309020496546418187722243291949841350976459277557750100200211505948842534592733179234026733403268910672265523165232879909254685052208047357548639736096452725848287308774386701241318326610865108255612216017765949109194597029598541266067259132666730366407848435487748907489813484336986500556958122424596849450888703889001880575566752260875932973972820183940857067907753857211432259604981611955229812582516109583294391353214494287813299135488281724855707992721806050409058911727258187062079765359344726243607855195827221543948252701621409534574207725789935543938826036910127167182459138916304667486331719363005564366251144666550307905767744442939943906542817331198625048543604099381817452042656918053888733142610598677402133086681029741353944487874407564618588888697938265680148689170436617479770953474864077233405622673226149873032853424139670193578083744653221885420637461890627148112711244849477185592812628847572667649487144735662002186315467813999783662716364357765586179055690391921132393240786136348961130871929586191073112406935616248016578017546987939478574454886659630480271947639367656504204136975793162363351629416001837164669578352373646482426861487482341837198311123946998805640565965530362317968991172807916584728252514243411792251801654297753241903681121802498344351391137039581833877098945344327746731399573810425230278675855536636436298119651376708379989048307370884992692067710662767798033851740424254673990930653904845814276213118636401433759009315434265964164752660557976645574844465242197844755006674233920833480990863135487574302192162887664253249954873126591204291877974313936658279678775083945786540909454234183810714160439589102336208730474571525901078649483878932099319010106515097850339734867306829657545146194876534334542235913489559889630156521120140085808984140370108442587684663103704274794432237523872879649274525991049020229785023833017196677922056677226001542469654388528047577941666681480252089364328813974590558066869747932499493572048869283400304854570621945102730410338189624777542018616507402734880088064211109801056550423034453371524943501241943584202080161942244032627591225784060139739280133464299326842209007249484775368564798976497694810194342047187367890019484113980101839456753411470685930055240611577218856656354632840109909645392324230689707860709842973278569323024369700199667780854062563346523674950649804363144034793757205181554045049285238868512744845664680050259454287766097491130346676008896956520084986975365315150922230982459676916767010317749506634484688275844994719288134426738780646066984505062625633852048245655510088491931319349113767449852870660667711286373706148002169085988769210699769476941365595519355138630288120976064280630325733923494223978768654076345531301542296946441049950734543665218522519863789347288086912079511963677281981166544692975899466157926855354069990997405896702227640559555882274873734936513480462943622533509083743961346414143002862430061620224326641889898174376493939211728524811473996075415190149705222370019519430862640628617128443732754487424352456588944871866138384786289003340991762869190608468704179133076838760884548400843124385916838472639703896047654407369007009838158613394996454065979635876177613524041637669154740265325970582223498088473497083926498672695884667105838295961540991250145947456598522939358395469391196683563833417198338653301983048888409326900581024811898495237909823160549233189951869184070326335973169564094275772339793379278754493094287797533805017227421006395572283471317093181044078521139739522087506104569011459696620787193018990926905567395611380785871297442339646314157663624300817212034937707733980473743918439088394848140196268913749190643752390691891237404913766273014795552819304743345326592556851923475285035862337520684109902748622296149446787599090300001236591017685106502225414612802627093136887398215978493923232840172135194791082039907834981304205003950256558049679108060757898927119112587581551026807841112488002239136716945712849444009417572499090302994938803836882151797529881083856895514497357432099233366835255115876600021055445061885639666577770911718477995210535049007288957319714934016238103072899373645440270277580771101301766731522471085420716908790454861811491471078343587490640394526651751892751014307597149638560058491663663485548176151155443009359548731336460757786466294640769364226651234791733650122048671137243067668368955310597478587478835642993645688074934701601493845642813547821276762201147063088470706147580969872466352012796743680903768968988368099904292744579868105477686894516503215297567206316985879720459413131862304334022917341851784689105586120129227385703078265522870493009824424874386754828557939413604345820377198213487191350609466977253844229375640987654232375182580782501122129462692278226589708819006548550777689238249861298561082878736979218068060450040285138408947476235852732797225303685173144349305961210708015411846514391833443881009159350821489646687701782748532694607798757449143028952498116206865415766430118744440566476197406276074205140312203685393848915423860260675640761154125498913556373427254108910412596146749200718220585111249540739820314346767167811084169079033088662868193846047255981027070644337514230655056612005926482276396446288808888311694554387771445434852732067657178405211087763383049880244762091433050768801785361203885855917138376869938098677216188601144887547648014555486968629886144491822868387125826416306202657594415288703641869914196995723943485011168339903507180214661469657014622133416768224764275468743869242392409521176976106055934089124857245155767506529748477334528557658806204172313317731059487623907018535613221187666442524736893618403442782101540937108157893397289981547043681398829373193298241082824443364587212324124213945504015302205018043008793092722249895892859826053775333414265669254021250410312752741149287105411672209913222247328862334645697016182130786547496460397835820296891058737460701582395799614143021456300090107848906790293358740060519519839824268852777191271153447485507547903003976719589619488341315723960997686551645336378130500682217472602483497876319935658941695210984235944951380874011949435695391574799411151521808359294979779785408624292496236983906158823167125713798018414271812416685010130587366119893661113251416251841703965245190761929376474875452620719116019461099904779572179695169557334151589422594031538887801152420527515360584853055477343085632108417962814524206213726570871779523970724774771508235219746767333083250267019843547963434098100673978882154346253187732840460039378181165690928062644653497025698961241955087366814095288147771393720983617073946045032698847370266868232269232642378474307946627174320203341955645626110048473865480679701899772813522255253660896375093803525900508549628861935119254249452438272353638109248154093656344282633908225405006110832313889675531250387478402806945820067101048424359440464834899059851328049078906901372520093172148957838109632172288309241308786730036763616761308760444177505807835120462624686182535746788505226676987692976791607584925420247150018562189967508771919480464230569678875929228746399821884166082294827165862348621597674452838358159787345805037310094360985568725400298308109775811616855382488689204592755535119221498887629412048053520234612619265694020072264856454218893108342845996078657381049333534544848341438307377452714760599117132522147461422769368516126820721342512817265761261065156758495265519694835996039179966548924431612388270389156607536586617049343046894813707405285358778469803570360266116059297369993810549634230373590384111547666428889775991728899752518767689942509051551776504449754110537090272366735299872862062263272913004221379694794753800034177005518231112700203369360630400596164222126152829095753825447184953373864760022449716790172041757000021073863452284944719645267780041655729263014955361985949646479467507137924753417003223211770066954346456921841437909908718036108903310943521123107431081103318925810250880888047645920050113836725474828845762228702426057154076516356288973645111083698429246807668149336849361344718616416296127330997412014086465300596561904480577158979339848655788231028400461825921299284831136266632276838627682511114436640322666152732173507027595807399880454056265406079253204693654000810495226366173545232356600176657749904676272110651071550557940652763484379308841655224519656800728354702244332455111047302720527094533051174614107066066231562427266302366125824740666822947407819359016091737806768400086964170712012770286104275318378907465589549944824636606378380400257779476720233304081277946172989914457312666747553025367610201466535240324095817889423866971570824672374670122074181934718657328645018665283692209965595370244912778534905004254238803446510841082915793491467525184455803501079448216214683947369288149780110524859987137276738609763270426877152287701377112983191191850655182712519000913740631733373492707263330669904841586304888764840290568250597123371567920616721397424574998622803672887677975087732616530488409331239768922195604522477200915861261929019810271797012289768119454782013100681662450945728750244961237280798580022497029220091465477022878619581026354104146985309854222946592345186750618034715820403861724790453012787243228826976577959880346457801245741562459610539957098332144987360494266100789604757533212746015649422494552447679099198062957847514582041982361331983702904473906477567620158735584713647103448379879768070592748566307496306273526199107461462994474251470276278786394680747642352443954126036686811607714705093805338094240763124808556795085473264758145674096502119937441285838968198501453315617453365528118870663823297666157947133003347185669447258625525237904752496658063819013788195531743122671017579433558277473704123297559988402651617858230580954921060318835727882888352047808423865507366531904835601944357785258397632465600658847772003365253494974036303268998582156641011266983860176340919231937388936278759853363215893270762610032190733301467459005796232516194196424309365729170418096519895395350979079237530544681630174367490254397069848487237883741727665659290537265902974703618942299864452843691488738511058585955100138228547289106926026622750595513225008378574213304747393483390753507562447002747734682417440195288096386061252892944224060161854747211169680277735415293542842200869121355285511725246057666331050097270050620916517473719578571626997842862647683931699160245118482648459334570752450215777460934685456498488205195993612495075404804058262996593759023103648566191776530388726430317485351482227212446478082881707508334878219504945082742587208827650743242860922881895790380378520356687359443499337113862277542503474042274569390298871281481078882730981347424756847004218090481059210230065422372816751129493130877267120077289856757480187556323629277966901895770689417106115951827693331712269917706025933980950109922419602386122788051770417857373512126256571258617485328864663163050944941308325886531925260721425060955343697306657968035160471023242342235098075342893302303989926644012690856122135270777515322348161641799841509932940725696175048151843075978847796352396662770992839511901025134914228370989691557094829941639241910876085005815680094571414463508857639596318856746109895462394944548395594334188789456656765578219442494405934959453413564045421838556930098409370976955901169406901097419409578814790889838851918760142187149550409989234921532923370914727656731463208960027658009243674001028471005190026661415828183811246374294181350298793688442753779675849081394529501273893967916401845782418883658814489982535269463580929591807249904943601382829730876418109316758037337653826852671055984495594094822644965905868595082325491602398432555282099040327204797719079387862915609596100192474203264464870038231167120414137379928670282094171173049192575555700491058705528153092223723107418001660122238791217754672312097969021914504528935249370397412054207709439863013953013313142099007507405910471594153425620585976529111818320607713409184081284887283534127066773897153146075735639376075939551249524529101124544356953926754260503075640849867856377748851192405721939449312387044072189888586843221547139461154917168246544986912687266278944677510085388329126265784202979284063668384579350291442161493231790408647079486751729972571353445394624219600447937601799327000595094241668228864663486375239424674617714592225859944279080053990991082929247278077042123678109750732507568681336845986215823952109900457547200368726894980041629770936482351738105521205480374986442012101606105184534557748049839174964753449063971602214632688748788345992837194482817040329740879807198315443771211288710090764490077971910366156880196924199845466577882408227125611725111712148731193994875790403894544754118069260256968859015633049449596706393219642437228730983016686633790459765076502568031202200612822241542926170591232667052220671530341623277909255678777688886107766760970812489841715132874841950382534076374616490640816073813000494919440860307659557843859333070571668058074072891235977099185243050996235092386523890276954390355443148053265235329891093222656560482802781218145375806813302681746642738463798621642510580772771121210550823614391480213894364100276489285890934452627101631605874411621718218268950233939601414408497886964313120776503993732413269934842456502981796765160321628642697983645124897670428818736969941402010666847103525893828226391139989929459780095014102798647420291027529621452577525821285958681297787955821145895735158937417547608596900232463289238558514692744838024115049043135891970533287128512212675572120065734330720518438499223497169058051536402314132945354573535769636346776192301911926768213493040590288682241271552465447126033968909198985893374625958751048986115855240154923171670324417747854136298182483893399706170605001430296839999304827073443939087664402030104287748835713925711337792979347956440091001129513191308614263086507738443818968127302337271113302659697943394276523889021476911138529305457721376231811668928868339296380672643995432108319173541774757102647475992532849298725672433583295075387535077477000548000518684120504831199100034156689579132046020532051751651247494178914162690765951653683929818833284441619814724865259042382590308440490523800924646705630327864728835778631433911695239173187492196032389536997644955142737934511938643902673536856431290305178538277084660387716296659907031422315815223700406800991817688095448075553452989597903687918095161721963146741836772686408704317019880476854869923462101365419884184146406644661050641887681054468179442398872698808691400165246727712120115824740385913677903224713953314289607836995774293313974368346144005076464364327204857215369622658908620671581574037192877391281165211254048563108817955227832904688906567187880352670151638742847474655740773746186004565115083719074979754986310522224448505440359235410378898918708227474066528963475673316091145880317258926011071079936747878792746835897585175169142503570958420195459455695345411206055026966996096839457353912226588037934013042939526144905596709453672971896271345729124972521869156894423127025021590696579301019304521544879374568119687803399714884689067772191774657308531923365003602594215588871159003931377130140614905932455608217538393520742318323529840025443161569163137191851974402981675933336030473619259089366586324179619721061673051391702383121612392660972837162759291340170323133499666493457412467904403817623765702206647679032754833423242307491390708012505505734063331944404598128615528812982920014617053600083983677087000254111306907853097889150586364853299751062915561251145535662853343567587267987079775866849255819105386598931762644021522930141957698569192797101367352826826791812903417554064773342391685863532509335922988013927890150047144862519732204344793549579690150677048845258295344013619166615186471983247107523050339986632926675980251644610101005900629083471571620379871095756634158191053893195792924468856741486377592147368343926492633655268987388524766033379341110480345776728834622117268297355838890262039968836689655115530933205581461944540590130637169897857554964092796213372435466023502484632721468179174963216035703043748482808797313334512664274013671466006991632384041342157639168162522905525303230593065937917388101590034889130031408997452557650660564350788536629194643456539298381303655142201453674604351590892853344587725534647235712884031298824354533086013806665958796278806739203573605817139562039034173443503353780865138333903651913447349381915647360913340176538508718382006321412602485352571567172963500484329987330306432963865689365818208416666171396280521718278614053161434341875292509820515989984526399412804672208184045935819522477428266950801794741785649260730124082255615190670307495900399033520303155696703357622323107722538493593206304729296290855422109537920567108398665565347271580422490680203853512400777339971461166949174110495716579577299641225201577052745266805741153528329669570857966767281109258576616260895405387611845336057723128291753171965112393105034585277066641494068768123530520513555168060804928931271412075364469792199241146320321553358902390862581457939465112410280690620648962244237678747065893222238386169723411462649059129064934440221691402466992439070960992835842247994268480188199141221656270627477810089911149181925762585600819144712954540752836128794976914462346585293355005925402059919773785690708156990324711497022422898985858789674026383539975829481366592204626463903421383707093997893370502238066285885170584164045406732580184753639725615275672408024752138629796889734568656801290195509894661895056798137938120416868547739782245325913008038441837821710870704288401504076398066397324908249753648469692631583976981965499022087372325679041672978247372485128531589628365753113823383053489093125326101582718354584108338186928140023601997569390031802791434452837398247832212395987694667012667567831304292928402380955770497080618329978169887869221206748546305289798430523761867115718215231147880993327872847604873329816065254628185732334698569063502383365425699533319674815295454005771874008534843238535424979416245481898278073108612454159837708254899620327674391627437506403089043757596773064207245067574286167778433881398448685747085581373484277343962515447996621743325343919632839430886454563498944914980756044817395035833764675723432804140160094537838049842717842567370673398046261781559423292237970460316966318271573020777602616864007439871818406242028474938868265441808790911874976754733972801956216867232413149953159164050347714348205802636928136028697362081770794069039782036966305560889862371173709131351404474442060888708124470876953503272448535491958149157754119665354686458970577893258825191549904215868659764134946618518409607634851037040815080658756623319011721999999712189460535203259492155416936896015523533933343768901009520102744305473633361608564201513364138324646126165636434995039386886799167883511712815295010226484884089534357338727856810423574350807102977330181173473279149470710025934044560811116058756261019198678810405575002518783307121326555147128391951028873264553862707638963550091603748468269908913436072843113166392146856427416454743129484043348356441655265960197588742534367647930826416755749167487473326719296596696353730492062688395392150947703355655858594998903307150989990883516905705214082957633312087393495073397349073671970070489905478748045771238455451627788799536307285941196912479819025179631320936694098861790868020889080811770295545995018057013812499139705192881447762834331106134489354836475302334528124970825873568017940076156551764893958486411997948489838641607580032301647162943419502219967633749146829495689508772381314699292380518936322331026971518302255080194822328458867926790342991937181615464573141374078450753408750286714315982253205214142153690488654628576706536542285037476753286865689056670603592362893599182283415307984056975594335529416117941880744106240854541279723381959011459271761945512182914261225065926538398766897323145556510792818913203823839550316820969946525706272563962737720649792571894010510453894264841675595777549357538172560734630904834016018527029494632541137978394511191153635792606834734539383049558425599282267961055664615873930761545507091233967174247976872946226921039022978358810340697657705563517851126722080452768001632015177392583295739180534138366200542113321531415880686956420697862555110694277091940602695981346266671474032826792113802505624050994808390292673808035667665099782259553795377466736064522680981270569204634177926632751884735466376236417745885127042755705468113350322999908001210983748441559586200358881874279707032416412788981545667484684457320719118221651031102211590443229439072952341867149560420162374837758183146990777789060795548993667931309671579587571142707089101286707867850675683218769559167190367191411247228825724260628290476561684311012870433628259545812500813540467653719744657972010406798216787485954508359455943251375617643377648158632760409615028286105105774514704716113418826401620268837816754889533222845590880228059102276320891923872346900459839999725078504430484422110010857879361286703548385213196545437234173053482072981713836077243244332235386164388387317481849294660391628516033534219893677871076577561597322964416122049017420283254311155211250335488450177313890381827519932636675407527132572447665832441933550121326061024759686547188784758311393918777885487411959920642717503198667156819316988425041374045748167785038529910810937919193144443530174190168199785515765267432701661894073553663329122801811173537680452212577475065760278686861987796006637421001225246657859167282694424040224294165532841041902323422324888154056913844351769971427150950316095250997477857841686897110014149705794999062175945287304041156105114966596051650279579271469078450097281731977387030940060382262050197007455093273544501312389377706796191268514658798836884711371710926867057765730590383999882679449777192157435170088906361303786988482114984040713461047069766613171296779518382944248134887662955743407169958372994259313639512812519862411915953912597782023178688727090671702796648472239619760172491120935226803362460115920063700766806079262362082252100816563858346872347577448276759692683009545931686202923993199575557875549106655379592513266505711168954452078654535868797005506805352822891238912844981548186101858943280685396294234822805849643189240373272867337679546986803559766239537928511333665241882021501343152922571176925164304451842308190337202414998272296731887873786559852148955594939954248127587212847550978020505755847008800596626408623094262399459621166735265792736094633436039030902451584652826449471143378365901683732854735596915580331968132296919222589799019497994216380237834372237334507724316270733690835770223251017089212571770387072903520822543695007033725955750933427306339680132477086633874444458608754714668761618289026633855337092922146786585863121915726945455970665976858898521076417190201912059674298896086421478282304923941152796221850214929898239693273452053573546785909293948910842959690396399283346657191853162922943086095820265143889415850721736223798875778757653138842112297746254471974567380516383724631470013002130155918905938264580351203816464580593837781711422068560223595611343891873259994568856125107348965830316889379451242077287165622917848729275229439056493465953395870590857594068533500412839940409494338211439931127704687038858751193884538968251977887897927247180911536984316145042399639824201428390908882611565415922443162413395389937869009694210611112090605132847777085567911657022662398970080260737182387322034375845973984253845477924661872007618579522531704502655167880905849734640845715671301479052816948906494587981812502129991540682841453782782021485387915783060306126767468768093341483507992090749772594425962413944507036748955991161950649409670837207062532887953801976754494514029608362629443164768198714290550695525175093020496550524378425654918624084772915024477124896568539332634530229370831135548704987357774000893495388324441154782587694315738411598772182275483249699587508996312190291702411953064528574085356522929519447217061935904318326906244371114219196935035059252116470914540077743143716412126684087566982432745376914792016101749279736122088363650896548215828218459719815153617154858737762079140184829862746394858297130127499252500067184547915859058086009027593549164659283496427116421070591603145269649271076988841666731807869934658754662114654328428509913206796885709550664678122735990579833685263446348434894209038415090817626801303443495334976153396980147921268698566262627088297363597983926170351638089020884579222747242279726208679756970322445092463632263198955083749517416779078240114492556855007341978158252348894876778496093987866700009911343251405407993924530627086093091877101665637096121250413573601975356184908564126394242955603447373855610012801474717197354599528328575539338803065094075240562313684747696757593419362791143076921498779016223664728825472083023556922165673065166219541697992217812322871701039231562050359624677283055953580072012206197419146678234295379922342593719336452276886273571706869492510670374531491478084465708183633035140668388145133080938472704382001023369502988585536012405533689611606615214053198500202862019996729966893644053231432259388769654561514477743849529528081883725079719426650242275351320661425253015786322317982398554831073890797769809622073882322244922352598813843084051965074537777261598643506963144891995764632257421088436340982301262549857608074248192782903769900532062654499621517447386048306965530474189738393403311728665204101107072010276542997507520967008123897385912237606051253267652344102103094236198075807307817474342591679045275550373764513743908014496254399935146935493446583196238883934121817318847690176763428716276400429708483661133998287770826588550233020681990556471445530283188104369636001221785166574340017490124110393614160642727613299848449181000900016242396930378814420843101933776221695814268213187923325772379497163977086892159717745772768246314353244668016768529274477358220503642487389732520130872470526978748647734284491766779892329185405916902120142384356090692631382014360972494787452166743568477398015478754362829933714947186929945997819663639186128348094243465127326247066555238202486824815376047140352710046439568307325329002093727822864028868210884488208445578066613555004171814518782123772258828839168512868889424426860639155439743779457270246903328137878453204371813473580831433212521391405725391701197866855659679320980211556119280055508483834100796769699229481089441500183422191084679998125108626692780228543604570149361537274878729494350052189830874086945468290252856406881394123462801764309207907760324168632214201153155119361007070079340343541295788874967461489256803147777030931193204445201120480922513516288456091932634826992111350020165289994756959763726670647846048327988700026601355200904545980277251282612495928273393526581193530707307298301697718527739384409490617277183459480962336350061170256102051189442599083549147031885481196718645377066759426931907381606887135995348411338062400284003534853779838699228567039277405512716873888254152927886683147563759766421299876717335693598327936231308566481874790553944607223349537641098521874354279796018579632309408743205381163640345582639238020374892794360655094698592555695543835519979000281503456451648036571854248247496201155555553870130813256840999836618224911836912757783762900268528571761338212768326432073836177819983439381832491209083202202332089562365197817970644622361820920590518399355610263373671858656398097847695180207780462619287430715095724462948020981320820833303436050564106242966763835459899160141828984466768213187744429492722370459003443878704464389503832575901484296123772450386328967571899339438625427155966394930651927508346397433136704534874991456440923541580045493848624115330802417669090936136542551727003744540461651858171421744677512659105882807742387577649276923925763901799985662264169142841580220603805318974287902088938929107138282666073266114007001950664395460547263428697352430244287698288112249744622741256829212762143195460161486285506851051999053649315003647987722251097057645343477913110826098970869312424332002995440296435006537402554513836396270288089839245234837286858040394903731641732798972957541053029115728632262837731154622584245928544881782193764447715347778597853207568753545063205402484498545678639347447977441186115485957990353551195525770693669715099713677092249245163381100407268492365928799412885459347725791468803791667618324555954413217089459851152105795663520243998712074115818808118207563535236276672877391901723908316652739087030516885933303397248789564611924964128033762861964609008890679653550769705545366936881414713383193649751958752751083529389825130112342056106133061836018218287521445733866047697595630565594293902226568384228987327225629168774448666787602865611867184404232336969809930895097153032558961725694235326835040846546075435615938497692946037864274799902652719934246660731255003482351178060034112178083201691526113562101892691021156384669459475478668813692589953764495138780718269027776534415231470112499873614595455425031532764465050279275785030828645485308229296081081937022635837727495350374307751203655977575645167255309916696335707508333995729578439551873084207812844912895577939952317937526363153152564253849833134969751048822740202049557301756271871846606180866078211403794928516302764205491618339438115786613352660179089254784774490711780937944990475607081521320937108263893297723260422541348493240232357418749721179572792522685801503942296155517543540632696156543810881754275480605255022251184054312871244395342561133508210190134924295321542218527260397338187561586051375822920280034694569197251545602738835253941888904525510263186442409042531007541101945513840739941609499746713488165264335824474687502595196866759688912431940374549030749460714656248687458455705647462680258307269823929977224956529132451784341582209212446765671165377635745529215774603549977822701511444762775572475052252318397650046158015856864661644560497323587025644376802810083015187342114470594578925380837254073676960191448685467626053776129429858403694659040625731749453843762054847187698906578172592080755811096790727686265063544700195521755670019085401562353917614524156162874036264233617880033535681982058205346690368722433323841510079024573838171205068054208328029812680254198799237918039474487841339802523626962780626533678597714215180964629209716291012461668238152568260167748811384048586851851370261078038809070928190094671664457057986787021950210558983124784102807016626417251135982521934516009355679634775876333204457447918334138346828247110358061350004399563394647411273409403877495071401008819382555792218934342110454937294335381032361462482023544902724420971416653017649027690326915293588774531869442913137474607342637788333978743656705674089383426519828293182789474775587669682701829189541757817499940467359845294141597673726863591250022621761638783602944547409921900638951566293391488103915719988948141337576471124143196661890927972890442842521171303721330617939391565485535411118560846619953752641150955444098096329483857728336716529385376003644419525134672880568642719925611715025811422487574391799668403430759049676758771827832881549666588075817689516859876783492342652200293773192221804920329983974294592840491284074580034258208167655051097316808720451109151447066117150337776478448154452259462023097174217742453812691606598831009865442782491919700288948841550167686087874115453800320584068197067909699970864419714035541406423705760352813079090304708970801184126518619513280701166204130098766948089938365710633278476261432044373579263871038859732916642844544564467192962385853216928665362566725576163182506380717647291634091055939451816451730083352289278860332306612530281979132890956860936112077375447585596902855002333893141558494547030699034184727022551175802955154423783553768781973643845118756556943247318688034397072340482921856610544654259957101181806177006927992839610589731616977357092184841857933268848331790245734065193794704589581740742731635076494362544197880803461890191897369009706433062422411083626309901239702497767639311655203099806436551344059115619614705839588914032158158305515907238819750190354354345148823292098950018571263705692433101404768389034249914561475409388577869147530873694017120770113208523980327697775650874942979282191677184938209634252562627465181812497378006282618666741046973236184033743861935090742195577242124399202003449819172387421340330725415530315530349103330053778827694546398972948169379109982642058944641289794640838250893499635784451349653507186870966399096447782851504144060411082162939043170020798526385659277315639966356645604614705427984762370472834211897680847770386775709936505113310924499226758831147156436668057326714003990145555709967731549481336562376701613520578212211632431589991764341079756168973256631898006030160190698531212266552162555221545412882650287621664352434411422899430625005493962127539602379531664956402675624794959488587235585709781276737471784934446858240155691530422023973641575202480987189267212370500956016391140826569136217151433172429773985829380212661256724504759984114154012535749191942376737834896239944640408993859892718853230829529682560701528266382638880648001665727307785291348571317337147570905968695587970537488393792554258239085002659779936495074894980069804775239152034672556680523911792747979449212990191516988150160429426734114824370809264604118838053283881042720096044093510033974617414721153995058491126301331897069859961029242259853775145034512707670172681149661902109924597609379365248275679089391168392498427954951331427541689926768371423553373406410651981629309458461022334164080610203704405363220197059844435962764930047687841807724241766491787713611410165256933174333411053525225805504755332893803803853802481081218076095237894503466841252018554360034476851132102633654520924899439999180213413179068752475906427045905075721900270164508538002618691483145218165496204619105117599635354449408407828513519974336600703922954533311181859683828303871063894603956849608752216144825626261118287753930855832655838361242066167921239001269233263498849064081261516269262035914457772535727339330099502894503931448029759356839661328800149755303500853928086349346194017894161468829577086094979417808641273513156581846593217186106351628836279292294992422372106389634880660332974829006651455567457622892207134539907081211919099959637279079851700886333883446199485300892883835296941481238725122314105960700689345377417168090235622301562006859197739567801232235270556641715725635182766754270467652899680161159278657106968757720309099567046521936878788291888669684095749195979993657939393818165402498967575432000499586042229207596802065004483594152219542399550329073024086912885798147902436718440979595427164564088960663206888387381799553330302984540629822479950005118937517508922154983788329749842477976220389524152102778404472580552554576898625397478835443365920502712194499728832068696242093924018637264104017582947054072145013647269011334482685680485887231768494062231544381157175089350334271670197875530563437227404337600808721998502830182790568904651316040390215015581390242758285143824274472564121393763076894383142904711032865447567270290396545918352667663679913268054745467592318937898032154269842274161384677209346269857910540227730005494593263527708624973374454149504652418552524611723652444254175241310685121176591892235863875500003266686637734823373051920677840579052932875772809004609522922517479715173883159359730639095184706941855703899874048513051457802865861243780155446902756247752310016656402979386604499183071453083324783358658515050559454225622359325948008677674128960265756416627558084461846447779004337737953382879713388662164951331773525196969099384823062717110299546805255048101697116852350733158571552589257124225092234788693771044751989940167159620703735329417738800798477965366441194070808822270199130574249386667084370919782444096607207959219849069934323229792171802909451229808237920067935099097115212031824810887416018202846166971839960995790931751176836047064238389665892801304272623076129560583319579807082315307661727235672114658641911928502301732036818084795554483610753343350197525931844267340439919501866760606118660268459234312070754485003622997398512768394819635350453804857554940360439472688278138380521027677170071136548782435731895929855050219734083210695549358574754878504399974629933941697971749402278033715734189940238124406268861021113238857600925685385812092576840424924979999225030340623795671871340970302634333195880217383356465250410499434829381145445641356319423170568489914296230998916999776525160016598247181039763966052794017686538527660817525881630354562186975212158813124619421510853155046210471624056684452213733588461746259602238353932146026383552088767820956466985895238748490905015523773078233519898295624071014373768327187007252311087293075893638478952751436449320509484899780494568514364382853454156301024534091021198666587184211376937225944632896509500285321007401242287680469159243044190093320278699051837257554532579781914032207497808361056876898090079283992512702058154150458823445450013758529735688224562016015934551594621448809253491194688262524088769267824817440735349998678340042347429253958588165025108748726446979142059645442819567992419556980180605224509358155502300374974216996961767438610730926474214687327651219492301665036326801283112771619977641687755356997999559079161552476268707038232916684281171782669494348506901052840291110925908771917604810566804309864507177407910554372958885907819005476726774646833491777782409185120929096840410130034131855840599972280391719142812821721682409627995312473156485989974035696050912185975107113742265333174289568260544352758561986549096822028259407334994881879638029483201387625729242730015329600652587553279809178708042928473485337964271042847298447459911984360335754565786874081770839287347285463123198487653175635611666003195010302119441924200351496883968574801232699906171454918350000351660133131577338829493390648646544459048894705235736263898568186791733722273897855297748627479238434945511876106258795671479685162350009159154120081954199222373659308439587145754787970346742790201979681678498811391206251553481380764844417517385521155086114057556016116317276550280677892593780691577669784065592306481007922061789088287694265406123199401796561974850195334082139768040669232917561992619528267999969302160645724361833084139317859804313063402413834834956692314380492744436928801499974284871522122059393697336297410561309544257458641917906668233532905200429744026994639207373808834300396321547463272331385207919644507464680230870962814456644338699276628757538881055480855359985431042209673113894493480249478214919573028092440770309775052376944311130186223069160985373247088783643466090375582402817202642645490976032558349017703969693524106675966913009860101506160522537609162087078380184664594038690240470073298818778680521468479301273992919134790406077567536826516056609666977422903697586923612678126086913200336401408402750896480893506255530784116484584759537151181417323020837991615371009553833456802115668860991843105571737974631626965348913354867955250656742194096908186068952808354853230793182261039095854111393142099149681690819384715139593229494393154623286579598198111573923321354364390853762436311789862098098884521548657320882587604352472462070809412545124435062911879052232411954376864048163598895286122077867220246962010547701397551213539374065409539763341338606313787394201301674016293131556777862715063241794417966841877341261186674003886058907945959954728103077288382527483610554175160740618093786348587615740352136447688766080886273849053591634377800215861729868165646591057736136312817893276731251665598280905158966892381317676826122429918402675048685594410348294747862820999558369235834036990521938502838718146740281822030855444296741058886031127432181626944696487616546740138722798884067605665504349425957184474499454115471901401344697171644577290416187137263730577221700815521457339467909654372034386206382018643955381944990520859507139440372572662126163996290786706164677021193338595392044424020601437516531235188382415138643601374793168287435363155409575953739534753628674936883475193284311832709428393981958799169214084107609559074602544219077254062647357508058566432927601145971985778035663454394344495513246794192643814370436045763317746579183665225967214180018537630931690832306933914328885053288728583434335763906608407878059708373255550005061202895890496894529114249819337454626204172773377890908112157564458714431365771386388611539590052270016847916583891153387427889135209998376832149975996280671953888847282179160652802523958655988821294326948205578064303044005222301403388452342704240401582925368946494270143074125237381689152316448771078028225283193094778577948940352097615307937228945755600813912694625830303546438490078108117524852318122016378236285887005662288749396858930202305394929007238212555543198651550570095115417652910296360429828561077559476130825376396659553110240277176778592715316876705341867815391585676842776918186818016058767694976345988031617432353725468978733989363464457494570576317650730220607053097552149723149262734406344630810748827170437981870469726962741645218521884928616033318860908013550760104340052028726122910777508732242419223183019931183673360440059704343213391755120704435684278523772770043199971585336919465561513760817042935647515239827690188007094785801165798325005359886984500594661251245603425030728250279181046400929747745228082665014588609435007172111003339647302575607220360787863118923322333575726587273626900583252602160638596051573560901527625324928656360821266637644299727620865160205216345572495281379870323002172108541806403017960875504368910388133330709476530439213629140767842283541449273699234730604746960880784149802468276811040531832927185168668835489026023981617413404486503062256184417399850656483469489513618442975068891830178595362516033156686303317649957873325306874064545953296381790815479708755446731614766346442704361133837976515873859327467363495221151240575827956533313858759274530681790221739135870746629109016544856059174352696642531439721258868840086262508173097413025816850565542091908735233262100224126996839557641240461073481168375615050665553349243055529994646261024266382401342148046959121235992083739345821405296977805797429022710125247076756004857599770501342285230692914610743962943024086662321622463344483055719551213366473774120227093501097681221663173910745751824155319259956954752471973303548748657915860268162477483489002012292874084105604556547019976347755771882060389715563006716251838800096481441851084019830944730249488080794498319548485988614734068365489128086247267346075513170186870388214814511677814468200343205766685071532146928416637185691550079734042274963266352969254606935422213395692140501177629843331167328967705757556631862111712764304345130479462377027473353809417296668967752344001539296796403280447972961909407898993083471814272346697401425584510277721922783013472393106911587713979560767237040836987417676953897848895087220509090060886119196844525765686165915256718563637240034055424031268192351451767630332675221764573275025977987269078731544373643785236178089968024604376998875223355533256528319316083106148347465579190753263302888276792878861621273693186863130941496342052319003637492469407877198773950958669376437838670928779652466019301408567479433976961634195745543383170586168662155128478662228325516207772155792759994276008261119027390074605366633528114291023189150192951478294114087317787854563126757376898813717508126998296394461900456467245355923370657025908521107627041027177018112657839252866168656025859751670093850861687585574052501895832387290128561671601285265350675266002045129329539204993540561370760200326620398152429357806397289863109274607417433143166193873777196412022452925714866067660617839786209186915514379314065583737715965671670580265923920752681746042025388347992768344017971206761322665943065442834630564751699741874809214944713579122634453468175789262925702447790163933827708079683353949443776283385434666995587813736853159829018393700386527181222917064510219711604845227089716695400288157212781464771689977767281084839892261315357761969049950343244171822799826056150512459013152635754893849596075329611295458484926907744958338544333185958813112904358960179373359481937778259697032929461392595010194577796646481108749746965155725859229028455943259440316702643234437921585704443102218249664617312338714404116792063719223249178705768066955872153482243402205286425875476597070251163851429586473010279843171140899058759808918961807940302009844645218885749235121559804099933941731678433334499279017975532601492041047577792988532635440550744057653377323879306594477584067503940516281889300171401106458443086019603320025695464517919702528135636166457131622252074597349901651895455669405604808857953818112898806050452135310986201716427510148121594373412876349299235810739496587073621667413931584404451219913224586307800425554214778574293835909424921382903728629084439258218048124601508253810941298091908851511037498965314476087063178554027509929256304754194567541998008957034754887932052785055452163009992726688015783735178762040017107868518513181645360858130171163269564395489219616088556796359805297366076551858903492590928643599187238570944114270822008057903433618673219284174442834865465513303279314758361960093047858174772034447861359178477066540081052198623621320079663173590488803236773932232451717065852955351502797649046403527979205131887126799966913891371693872091011630006399351201028787421043909954548862020871042102136221498560830464839070911260614189105302482271476228898999839129630296268246273717998987872798904514648179789865393429527426991173603819296864532237218020304754420456675580832840324447531129568632141097598506200034599787199130910678012499346292549652405356925579080486093852641711142145831803003705170366030498947994434933213143512741090887828173963658937494982940551572330214690520028762601895411928278606141240008365341028113885100757076663858690963073534410813596130797091114400753179568274036483135048457612768108370325962376775030779474535408770298293113486824340812573461813341772796657349145293748010227328378968754035370118514903768396461272608690990545757956327461845351653903187033649291207248854639303587685303473633390875995250048370553067358677734621596279283163831093219884986119512320733254703220746543563990216162947591293479603326999290612181798118703338903080100915064366322136698397618964208765224037073911162059762430465134467169374206439744771849565253424454128452331882012746122038110047187897817908187853029664314788528434107465157655144908313426709877937182898350708106148226579646753986545708807695454813509460710435407484636068015465481460541577862871017748638347476561443353880188568450045239313714432428618737959620227518945893315231207083453660434156918719458573678206472483711175916477640170391622488691158494440882140586143815148775369059018584563891845576646999196856945902481472991731250385658483630730469679100678514666666230245032582754819773617233713129404807778019196154473952812514649126582525167189612110766177994071095903515374247617678572288426406432867274687665353646255141891999529298246718231199882191900519145686737396846399507374235923674484496836667379699463096803241788143389699738780392163789949873899725655857174056498493159652117929995805515335664494116971288040786913218421168561733550974741729006845028061568177945390829935521644342547158880951942365541445201573854426380688906553985982703470785345848148581418854370499211634434464972502613732777606919027969318938310278698657030694016849909691586539559705810936698305769746297267257546544891778809784308485494527870646452566668172559402677510362308331459296193729427228983108467600831929853662037645306644697235798521867960336434288311624943287512840351866771047219533075579806023656654897674198376918118599534976505038274517740092291516205824784920307959303957678336598644895864813018974795103816333819628690866321611570646938662093806410852065724934069747344382722347558811530125808432102215644803193818854247713953021777536485490912968985700882450902026038673605588552341844742249310800799453009157699938704205834961958182695967568730068061333513370332077089820634175481204577160355603930261194332439592507011460968988295904907733459342946532394452643642922579225423775789352497385753173620270376778221656670530134952696961797296562072923970348299527496299218557562424905854246156456357670685875180339339789321813621177953358334873831007026052900126143970383829662653951866325168903390607341677223710149185908523964237018484248209704087180913076172215347656052289507327417783985409960396192984008772557189253920227426469398999748592173344392947485773995645187775891827435138264365220637594073751736807085986789521127301351598397449080925413964625525812967597314335013337886270298954966671807519780664722766878319852432619964208241156371856841823526415613310168342776202969275643848830427456797676061848316441732649047665719249946075790693933910154057058647804759777342276291053398562239152860617748230349350500434040538063801139216363970698071354141901099744448130295909089177392206474225220253512795925700422101058946149679370458328506293634004596579132525414119709686078605625689274344750178740634305065169532849936749485177766772231001358777757544031646633581957911755939011695412323509213871645240096605965282565197427780804042823304084421407156485488898540739266494359154127053049312653468426895738012332218818044031776478501628096309668019292548894908916360663202362972972010372191561912280651539039626258345472724076664112277537830478726322554456641407245472176905599247107708688999256106316488284022870837397413500578898461627238636282918481672793992039254657877571131229996693704417429332525644149626268616901698390841674139428352195516099458072346148865339367138297247212145261387076348217831737105704615731122725977515507394207608244924109368289641323904397166768726687987944166760386824784080097657705497904276788294901420994029117300292086239473527221341227806188590873707981641384924458134836181093616385509085842754687143653560604030293462691124285920639758515738211328106440216816934126297546696859723823043700169578970065981662514069084171026790633095037596435869462550790358129224876231906630328845205797179546789002890472640033347468779027622008707773708278130635570689633115666913288968017301061460101836954709188549848283820480269025609540324575420288549275906307779560357959234906912068218088671945796277134162208769947707182603880852128287632372350184109874004734276357981948373261332888988412005678312306423536353246227109325405203819598956058967918378011381462392897942251247886718054533374069724902730555026367140709968791021844021660991591036113616709633593163422869694676465636332926945056441625950678749525171290019292856662805175269867221923429373948131674630038259689672180199392804971755752677220654968623557986369073097148669304824380143064299120660166039672987780584728587455470702833326204529283789633376623742611446116004985219782434603329638539304347354279097663077995855146671206036315195235610186830317905967529277856507988943034140156172718327429713706489379355146587982606776378329043744779886797907948066852315250250291194587145412866369343693948828256626323880046679922544441147871000041744065439795887003073790500675137352766684216604053988087414560873111875118665309854821229403341311970679931260867942126349661080213043958179020677063045037282368049138513517367899403493608846308715921307275017191076805948036053087477000206383683021031607197962079092546466884902298318100933526186772359033749440222790955844167237653104128124369267279867920548361001900781788882129827571186673442372985023196599711516415082570817204443649254925210372830871565027232732183794631946396011678895818659383034683172471034628573495880286622199189469713871678228067762266705440049157534705361134048096394244063281938002530128680314333334730816892161341101492861925707463450519142891834865943105793785218342120151381201242084409792138988699017597057614973580100546456847482312412082990332592556636280323120541264446496379006573919183310129744524614705212139247423892571418402199273141944628810027087713192441024925913443033882385297283442660390946932544701627694518264123004625811870195965335443871035578998706248686753983649685089098516491803276884253404514396102025652365986857467136378810996734931247250285288411364300349342345632719966955166370920231528698166975679604891198499860484025527475598466899136768641535054090880102324045463289222138025336143711605819215204512802213905567445403985545857269203784454469292986010190249929186232056765162627621864520136444029619784726230139480756667023873951958252870371026655804469760086856063668105450510487183030852095457174670325577667576754225917299250751850943350501763820591502770686259375131546433692199344170307868186076885028368922181991662486693707258934705429790971574298878351831868973068906028525137353874070680472973755744312611710621373289820712543354116878166692714553494630368876916135736361346600102872362388346174942165028830394742064153199323361081206601396639260769365770595694152214620531685953186279338507488367103319514077144587222377726017066598951934155222251775436559708706583237240692371738732163033138453619606529293812028758176988731805820894459027322031851620769954992581149467584503049691117859709294132932963687711399669778344688259107785374875718676174432363153392283912578026899957277689236441594576108204843962658683168068751583966114795215340037920378752188860778376728311935816113009221254199589048914264724130623899533844203202101141191999059295555976179502770378336382940982851518187159292506303302456674917225735062923255670176628696060873945405364274370109640438643649912815495277042028946662808722737409365659774454627835419872570034692879159761014434100932695382103734212439304925703923500866288186859430484591087050435247629865870314050675491830300681640824431337533767777457753620967782328141924186072594543965324216899945886666605331931363769498059604429727117686593839525696321512628877725895450386930876073053952313828480990177773836358374109459942684591337106445110914205133390229003015737124434446538012512827455371860992620061449655984323304348625682013515403663941786215427735715080929954987111457846994159794436581946056496642208561593142218289972572897994925173698964417592441688714261467180743789936356519409639485030098646080961015115113898424229357618923609272299540091723762151212900981500727205448579199440492924098705841775525728865810008835432103706926492174891819384734670792431190260451813395193779389920886207674772293169483529895527372892434673312858940836005420421706487909689535118099320379435851334834503089308074925050146578903781764007422998993057232370728144762436210174866552010004840025854835823650273361575547541239651582264916580676071730982567136715718001268924597795178397394782170487288741720030389575597816991290883383641497820071499745421353232415087167638004826688531390213533529955985665325008673833953855551916058931285202682766076220925281566133233618141920431676855701400272469674647329259184745329617063437496598219539421646870984970740241604687049322185644933214922425237648765069422239412652728352528788310756069776153625391744647005590037350354509246834058836252616989836500670511479858940423923348299987761804390774168570425780294554747791166396170973375211502876081541366667545550131880193198567696675112475441672289835181329684804952979008970854115335105027538516226619802632042429069539142681152887995041249904412300523451671701668702822108736021434634695434271422602549813690149727576468117054453962099259747201473821116217350485744179687839369269723584337961016920501369171358214992706301093003166430675865384440294001138965222333049112433300073588492660408417665642527917733811635845805936413385909835357986865449604014176861112548412697817101309960671533835412305054378580524319961274786634495290659087641938529340777955208253341824709190505427877450214334064572538214737224529852438958536888564611732352406850584646434350252376224449752796597375444794693295829449049547809727854133375475384961883160373122104324383494474613433476916038216365318277717928535262853750684570105763526966247158657893851848731283137271719379409136709423416329902369969879214869388594182150363199731412312756601476570190526613928899225356170947379716967323999766850369579713216862275046927579208610682765225725180238168261421033996370778800214349521890291789766055663928528950726332081249288484272201976152822865882393245873888054243120805882159463791834265908691524840827846058346463357738426344607508027751978755010098565000283995939745661429565614529914429197313103116390955532094589850209076796730923585677071068058546659710433719931144724662766494155751459445305755012291624202358112005175934650185812091520291653284826730983419094438007038548901874781879909342371823924808254463348566600180553807012030186547570129862841409143924478400125047211550919740154804343930949949050610537932095033934898000533531520933134122075776606360553521855182788425815151311481630593538342254939450659507063592855329585790056230089668772621441952227440122074307570028600847848485042166024252399976195725061572834815832098814838092905970495067199636979980472466387975252474714456338914781178221105125795909975662687228831946916941938536307059585161166906555959636540231472464303385887298083347310080392968637344074380072964919343386623131156810640761386015472122442453370533367156015382299777654488506835996707504667591706509804065050641778013011534383394274991002095518914329410725224710447121568932890810789208962398349809443112077754481446342925339150424150824353183619997800377081225733939260097188251197080313334542228818601309732663651667915467023825581245332025431416305881352191175109876484303689230738178864077929177561349560904915247817560558144420374430236742220717090702470273221765050239853578710126913492090359119197726041825994883227299241748742767754990687274900874690970223884144469317232435295193360741934469042898603295015125194302089191805759822892053035771498798614246484302985820438413752919517693604364274203566071197417502932235982275255341023807427763475157018936034248828413029139636298950129888449124518768437704306778963852638074724717893275521325585139153475677202048845961209904847456617761722780720728528047374839229809501366609342148843534860280956943490430320580585238587232176247999901221063470506962330992563774071641652133158020933961513574956673641785088790710472269942015547496043761664245156708521794539279495093173753554074131797208370245610879752238082631972145632631538344710925173260054584491878027533692882479470042974935444235224458633573664189617718117736418920852461507448132206108705469017679262515178474959176498577620771286705408809625874141108406857455322457916341355725090440941036092779303636093333229163287178876821052268998223090781936146665611050767052815061778690941104737407288111030401783836736302799502296945667049313062623799152268529512009455965339368933551318479559095039385718343857868356743069795248133559874764536341845068318512885508601683753236935366805046168816561115584175691160822050388700566919477080742304259606584786349588765355039688354035979170111313143893356208259850650654793016158842385476419384304066569114543417160934144616727236745192893967642712025202823530351962468282471035301913058726782587981986411173562962420330704115999683288636250389650883026831809033911670924235180062612699199280047285253984132940757629519305765523066972657288010789842680784003218443989085093894935897612605744156243003324013535789371404303340029051929683926203771445936619097225511482498238484385882090403841258560306279923554951228337629245416339236633146228806303258245340676598098907620227221091261089617210315174120362933398393138411438530062045133913088191382093978825006952277012242081877606401086855171395158155242934567998566889171937917194182046245279054203911592454442632055126167120711755447882083935521467962056844672751931646936161744406347268718855429986795032539565267511555196127951885124635907761356316449051591755337925791467051529537478454221543256714131613609733211184064940975388113312225632535135539168310942058870326195183343141468978313087406084390065396322277404952286365346168206329203891211929418861015031509656909740587224684931850918338881389704294100796487053054959406303994750857034075019544559363445461728720080269238090035587753228007779604693587302057792537230343356637032024969104921288799286649006376801650639753813736526245560643239783081360589346793983554017477798244352995583861292117341845024780686213619135775162298354362098524978843892492721546345325129894637440882870413455710024997742237169375836618992074828212177645390201882148302237001031051521347883593740001458393965653970848391919731832895415201653197081907703532655268147572655156148528810717157841975314183438006715036014686979430625662201169737230919680664252724630155185190952421385874136889710933592671678735080424861117696881011397186833018426898704174656015756196517568937187030912026525226294942952035850078797641730051387358354270220839188647372724898343249268999656927560444883083820869297396617799281678867808242839794731138781866774966221787035908959560770991165434811696617389712955496356325685485360897004754069761919909900997227110206729003469081076643366321422828749579461530272234898620730247206109247129746734478037055405866071127619590787042911269037065664790936501854866769169012076482125841700281459333088916459389304922319447570775951067290739547622285248942253090142282006059718339903952098254816586645005847761424977602418651048776652575229117184146360932964105709006915031235751326571441901509196580872555488256564471534652930278702189850859114905825333015715618509163014292581768886229539526484367133170841589608737535450808608901846846752972420992951167082177118471701018294183174093870185446862125667281018938799718045160358963123832426496357478957353544211265602766118611475914445926057481697608286761880991115365255093455824311738316988308754654254090144911005770039628602538283387717417145354800149777174852575343304364604303571880798585115226003770148685648155200035582668675091390527352829973913887412322345330846704162073060980284252992531864569646663527222526202317802877127560522992548286547555995809410337292074813995348044760590610684673985333894990758508827673588189706021170645618147055854671085483958096988461161186102094820063739571740807315738559024196824132249330056069068918895116664219082068847455815415886781011449590656901822125713734113034396339711411173737596842941968457090836846090450153011718370590892088971403049650794002466775032125915356791475712217782718227225534792802357643224133598883090844247719930202435646098300539252345995809891946819414484964360786174140257216137502710299652013515907832854362842045953276947834770307697503948741361897709608635502830956676992635864350185855029181624781968070824775280581312375575640577960535253711567350054760473358748764841711532158893737944726389886000888884588912473034088919054895257084998428360066111331552379064989508382206224496097375868047145715364336163112762026507886082332654576087951046837717185930571042244777465690105875559496194409100675439840561574287645997969248664579926730463325776838772422471751782269807411594777891264012645677982643832503544046639548343783076108606556364213544057120313026715993887132063955837859486677596242536500415489453363802187826451165079216957454009487673613218341656814626235303591711389575190054399205067091678558718861981453156643448692106491328455140368735140503336251339267606042563710508316299202113911502883656610070828426183949635549088103076951532145506384812860663930777254976458076253488037240008156055954659122420923396300007607477696837556515503347140422569801015255997196204021654120946569279069761898465639682994286279594356603950096343262214930523298766141805431653386374727752910791079486937244506068646736909556926012589783698228070894663020174876348133404847965064622454263040527970082227297888142444432050318270572370910740179849028537571624950898558902601909876640444185663879786625953697009535782537350930692664260064136779575151100661604628820329873692274190002320125283855642099200459583169412985420317892632201665607124348568875525335750108986895282828416744975912969052207309606603940983249013800351740747917697170637445984355519385658617764297438582298131200914940741842520450337428158131813291898208077531763859700640456135863828236635834707071261490491708957067391165243685413655795745836888084970987008529569507801044019775769603382974926613213001789682869145033400025643611397012327290116110245806666344643099534660144629374540209045290360154594349809726559305882253000902389119158617867629713718586174644873222334602933325659126497488692145073990982577289353864552628385387810179920809401659482121572308596387905003644534005746765655319482135137907830254738210918357511499187008150548651384840917575058177027065723580080174168963972390910278562054501546345900720404734695818139513914286096926415163630603285271563162814355176388106187112718299882935267582825626745240398527764670180105608674927943222683873988146419285680013137215779620258448370264519746289244291950940930799162481488199490836330766431339444386640408406214901621033846367694421349095860833524411740799184001027619412043784816568963919598760649587529231218233788454829033673498687401563747775346728772249978508996333943305905115203470921238991728643269281237810237331918833621997405720849788293760383844533855401832189782352013900170507461150454720661521187494568528441443789553355697120654200534365274358135088209967012384121683672575192834534750498447662713620505880559004118180630736293832120099979779506161768270405090667235952254118290765626666063067617258317823852884084487155220716360904787164684379048793119996912429190490541859681734237981066112911076132448649135815743085816258998437654931921535630321337959150481208448900149852750085372144029979415120080499582366129100120580836277084248559673452345840378171288789880363225816113763732819503273273927061929864150790801142116703798214640259813726965422733857869868613436625676369920574539021997809339903139181725314909817931071751031326174106305757611322187826016187080856520799101417146136553670010416548992866294412046992560968783470153159312523924794449192356751377033496063822041243569891380653032705151822745551346461476472096967416081724278124571465364941620312497520353028373226906643957300927318623365001071931144021085000657684173784943681139471075038395354940740684399624034772790883473487405118487012936775100885713042623705003517173105584307344035789002994347609003800396799548158802663157842219458595627340260021433463250459121812404051677612984279748991340888372152674897113574542405973124545816767895904582214638376046638379910238092101218512397463369103506009867210169291872556259946907727268468348866971796772811911591084746553571915905125784731113671497233392208778084402695800422842900758904460314727312567040978090947935547555726824655080361561811105603602974047406999536587049780242274450195403124692358447223356973300542406590939942903538285566052453671348190518685914122883513403169497490102181911568395627946371725390212103848809437367283919833449607402288068028948873000110764504865946049918702195557832727611698406723225285988475912581070561126783479301852959716487110489876913692330718981023119919114464837371300963287281221872172855385584764756477971939686465301361120066006711088831154792106691757677588862688689554353033889001897226303565165727400487646091751296782960869837861240035471241243463751194621268510298109183991598706026913744461068195983832732751762479107506178025369581930769788852060281095969047775516243258214575682980096173900363784603349071092675311080726481460559000316815333533418783294793741693781971123891646944489215683283482885477369306722002551765737033280489696411219875198080801221976327303030061945516799912189817726270063525028283004004143727058100338383237316529819183826818038095354029234262514182898356557924391486580281436864925813603148671889008089668179913790361963848236412971464947168808270365953861110191293691298565582549292789978173929169934529122836561310423840430570719620320784770718737878033404058874387462003091859845546524878073618238171605467802061846134258717704925011342629765794428453553277371931424236186084334268963616603588283748473992725653822582191887541403543211667082075165255012374516411122980125473492141262490119354564398261576636333758831859723421102897080529814046258787687501631010236651877146004428242345333979483262635406234412194486003762809742775999277922497964085978928162611733763352876001455528999904124251573432892390679982968633362046239089101618732456687657052951661642966483902041652919286560242527279109202441239746829267422290343031998528639154579579961730386456068063928423890989855599312167147186261830821812177505279498294371852597940248072237241844691006839904498423791288440854678085169618847077671272009102264366865949066827553611502850570907596109089269726782962911463164447534170010037528740747719627260743693954757904297880320069021508682430317072840369788309864277482599681157498914353675790179239610625425907822738618061288089066794910364502545544796723949160169184656668750541586605889998196464175685931317470501123188800804608836519236499846608678476827192671926856555485611173936260589485763668495228301907733784392398377526967489884571933271549255331440145066179114893103082212117726708647114445143057811420617268926811008085229547175222948979482476337632683219340628489050877395178362521213038075591150349279990927546304328032227782475441363854425524187409240966468865209900957657756707225578629339665315775122532848258260666550154731038659655112669900631048799621837773395758711218818082060363842321412347464989698202835699796100927490109891078368861570744232910008325665421831614992954402535139314046513894490431040338614488870424233207975075238611590623297166239151428443638863540865154150244606690087612744463289875856990503025673089971309092948687165484255191832805471758670156928223952781124532154769591930929949162347355564227199865440465104431238677696753758968245978601169892229112371134463419018412701505479299162472283825463445196378679945561073704273006452139181834812149863707408531338370390462098175887822886250533540936356925561572862619709064999063805643502485415685155924565199958767965196214025809272004235659957497361619643599871322541596011833146987974102710706354047961377243025276602149261041360894624443535216123003593139611351982614432495223817958116723521012766866155763117417718531210307706154560676579364079178122803452786259499689411293842435966447185288917128433376875622242141728713353096619278564536797563909823480445976523538686766033159386589237350208976616793507720805352852666020717275601664263815018405220601188903444398482497624532002458308026688895223058003300251488540899092412728662552962077902597430765129024171969835638982087831844875222150081706056135629319809580647101695691567064160920952296502745366429354310901975667421360927593575062466314088092765865024685125481317922100611579443898998583897898404416968792928162923115381111748827088030074019985193249169084200950228559383315536980256768868382013351959031719252460149607172454162900210860731423225725037303887149900502397880113140658858600865781797891563073340977776172774648541597345179174054924806749169658546714129804868915387561006921407717486128851410469586535463218907258433976254262558447961311370583658101031943379528523875588851363632945008507053846313290004455835231691413552377109233421965405676820494843701628771389226880304212348330548200792809439762063633859779349315028724715378671746087039567405848292079211176854376291173979784150371635967905835876550014490504877078114529167102957371907323719744859669101264503582389758297483262979058691828220538711951619010482360366359807296288841874045128208108560047371854273632870208516284898206040717492501694379096085184797932060461269181099710557642020812524261385344610053415684801097250952361515109216797099909630906245447792502473967997777290915650833355640964725985019210872404894862083181030536265038029290105147673506459423677350582400999763092073735066452367833568561739346757508871574772827659099756380258148396453680143381700867829591067622801834896373797116938865587272357875040596466485189144278720219096298425746950366838863348149892382680840597897907815655924607225357169104604239947335026713963927123494674256520317251403939505892481145241592054130930737617897100956434222149121328772495871172591784339634299103997285228947176300668098088377341378596781337669688037851033457502790684373897657566434527415891114597890340002913816137394171278670030608767994868946525841153407677153753460991133907985700979162990358758837834929391886300309352836477066471666859510793800536144331602600940911961366294286683032309912562627338172561281633794086305728794549687707928400169798380026685593869088470832774208527227582171717854043527745799490880011211814680775961968963431509715596012341622737374493084597787653927624916056452155835249217210183814201808103615202544822102973462144411229262828391535062668387775983411334446355861007746285859617628499142390976682532948644807455358273581121034578512671181142265462556016489242492130731989587812190047585030929631222658068631341562533968575924169802937906953586975331239638323059218381538213786021794498587091522276361825746237766929769468068045101349296692152394413312404911739849121219004231121860897376065361328032104479400663448338298457861015997775945121495019226922406518025893850072273417827685931896957782566095533799720584052168717060182697569280755722029826898460256245631511023733809405786375883906235338273017606458868647286336724662508558614378524613596759794059027058005361117494393259763862390468236289578099062423033843912261843872906208604822122996539382987062790039666875996743261865070815277721724939498641066971171331185394212268318531806288145872642761835051467146863187059755140709923417969017736193209755100338760808697190249293295926755769356262663211195433323379194699304042122510690956254869940120897225880233361001150958658475035030150080721544189537717236967336541016491576071174240167623912557707317668695744877846791004666983226064090381284839295893735982066734709219695370290242727451287882337255455578868726797303062768639832647537204751783428824350230484584378625950730108885342667651668095235283936660334460478941054863936277225978075968991157535977999087947976855765325777172352331411954424876957326289047574135138868660556403545595477004131700827344009759027799012027462677690031524786224796628497121409075912912047672123611150127960656150975307968723781646193969927089752546673912256910138328969348917378756811376121847419655875934583809269630775940765112061137116295597852223825847619353501479613860177051902732435906926762532168748269060829724831392226993177891776753688082516585510638798918430203968217565649330570983665743252603353229820628511740603759673645488648084954879296843324744237562067808637191674989203089951912015703476648389369147899791475866514061459381295341446988425567896663877137127621679096390250818263802363890672726330762311608506065030278365043784134158726726183544735660392992251373923008352074191175312577473312540032598638245415078466638749249713659627290633855706103308547307605786959374174178062014592470668856839094713947787065623405991416910003441784038015566896119178145608848124362921011061080650724025134781398711404056420105298182137301047361188367111299818732200979399162167329536916150877256715489377643287025543693890226811150305578803926106319130101177096258553976762738312401277653439763853101589166952054326511171708339791235542715143013070058138535951895147662076495725154296217583221080605996533996057623824507518735087530394853764191677464988123877008859431798085932941756385633485025492264086233527970049424459692287638073293303945066818662803692876970009296073783379897817100438761780527713529587084285674687113100591612051943610279289789987772077952493629751125734705405211891589351736920110147153112482773036598183890163921579075265859559892886780472601535965184982150981248000146737622472339294051383186255488253794298982173557271139682700977734845283839728664154389786362248487584835194977523099010699815586587292913702422856893309817801475387677577684707659808144462689623137714002171635067769408244476365749729690893549476577792190832309029631447345178656583454449863627788291718442805686899765638831468949665269524435781248421529043566335434028716923075135411035864195184140076839832935945368876921597183729349250688824973446713067346609189933067305646879166960940640200876333103835520292321033507676597637836706440918149595137915636008423855810109569381828022145327544161902761397605726215175414661474953044114552163274113453888370569293029939653344580260056102122167054385686409355836182270323684121218112347817586359056936654994615199361560792752633022904024454856404933318108206802533945448736053997247783691885269060020798641961820069803846751277784854399807879024712437786545149821497178576268038873720121484532167006372709471027798439387543435852835025130396386016563480600864357575587856523161752088500920181423172459827609751265354145931667999527907449772152533805069480418016654696357044904912191723922244838629928558539830079761741094742620392335740417339597923891914671162663630498368815320282709910901148708746357831603291277963722755959378571566827018222678434818597326248088704315702954868196203290197544406419642746937050989181665085164607078516128490313689337098271464099316256215012267124891182238104597293186096999041431396336884583138922686498146397936413153303691675735764245600485469656017199724101842356965203000484125270626388096718674701057848316158514750846368755842299221083854410154173657236500025021628898237020570060767214987630173771715421212759006435055106463588552229570587062407305272789241545560578767897062905890384459403795346408953799910820674479721071464572748788897753274545812569011222910123963550433562982721442324406665196332547699596502679161061478091480755660151098633764651203234292746419547961221063329397569538100363005347673796278372664694714816282873500218617272717430530676018791139413130469569666773409135941533766751737458959183322212109755374344677408343450011369526894125724168591838306767499233736603476094263224789804668450526222169345834553377855424024088970604391141048292832978710613922973564366522854686511628856786875984932662900381543924525769024416012985386564092450146818247474823888238779629680772329117372513121392847425105390979907996197276669382637118707732761449421554249939955170877672804946679082826495874273819711136915603177355462633479404872470765215599054634910671532946082540540619500161247968071442812611227561178802606028564805568674318042255601402792395142311402888336076665286512734707683348432859336617827273647014997511983554739272759505840749429155876512229168160165563015993948596252521846649726056438000576782974441266553482176755698360871616082191173304803972617773451911797453664731021424074412062039779392388218460601240150305624162815159443612502873695678601085723810365689235360588664034881351418978008135378231397787003586234330394375113428591297743574380388353701747757305169305019743875378104915048674119985058654656679676426300299478482590498176111554398844348662918937284063343465798778085399272540153581622584485102702210711788969234338386491829900041936124341889846187772660631507163214580527664328841884591247156773764145958978115439662334436428261498237356828941590701619355722305210065946086023621252945464359379015627611228212101195287096884750436356036485885484450149542934485676776541899569992393039465064540182633136059731116139362130151473421635926944950507089568974552010386410921048044684113673969158934172572635012357466373835295942306801483258412670742930927673256774030316857014199605863050339232082569069089516113672984413623723578729108168124321386367218435662619928587201518580950924607993107048073850227464628490702926953626807517334992145961461578846312136728240275798711322684846670504336834728958261935357427073170520571930280837086742029988922846809102245396077197419589391787758996520868675686034079724476203783656944397820336893094886714526832680481989329655394465860640166222216180848368036926654862565827907076823346212729559552917779455351997252141713808583353451735311654720739599522977882059372858524144955701478033249523274000812793454757616612098074756077232181732657348215439652106154113724901599163186596588647384639200154562946070309743323026191755853134463135864358438813441873472773362318546192323565470228663970488348022331808211988816860028404246385687381772486966459685438552746661213887231448911378736380419667114438600412173545945227943449212538389880775908760772734372545070222655490873083433690260129996929554315998758181156277054936745314466036863663841388147505586471685210239151919726307280712800322150739791184539790085149391686582608567379860350204285646032292574121303882231015317004422301961418895165400290238700183551571362756705086606234198165625559019715399274441008677339146183157323150545483367579640040251290397998682932535486866639384778711604671924203066548523212227597002384656668271421087282372337648123618749399489510473073694502998660528307340393648533712012106336023592505971712661136040719158676736984001940739768816216301572766305210766519015992184257885898759563485825619461971648921257677252004805854257844444391294158516150606260496305059319938785918531967254789993269082527557147167932645466830030688482535198043817233595880890040812841840810051229994625522372282311832781831596163058924487131431498841976108100956639674900295456496722764731079865315645955261016508746819053648474409485749313723490938769600913980543206863030094853296087137008486711224109640700147775308090910288368137066089671724631633804590833432800427008125150460963028857041761058523379356982375065487937108408324257157551226047991476599643577706169932211680358124711648075808494326566547857188933437388528762139358162875522125166704802473127168836401716078038250720984704749853618004358006680717311619031582324692433594556252182618414415130931888688820379851509631689787829539397798247489424968763662363290340014266705506852246864351718399951655163157365439137282479215836918060792478693878684068476355877323583945441249061872783777365085944089948650378593445133253137352268805272454603768201115936376258296093072928363338423792849002963393658796365671487615327298285226417849894897119300618943152154301876228882334325163516001381688938838211162327744840033331807909465075312934805885417753025338546479740233287058799991769584884115980446329818002290814046985221988507414218609912442227978774678431346437114667477681535028686673695504182942179361301521527577080575808737369747154536920399636083176601803307784238637388678387292494407576688286146570506681292699113190365847082423296728159702794525895366136382548782683082489165709903584201645844563959225792254132087305113862257080220322271022772408689892636119731873697609363831234891618268656502617232397837846771835945342026395126513584149997887702397700054310419247530394098094022546388195603206425798408772234749399142646959368868111790124095800398599323261744766408836112075888794068794409943364828822535062283803107973224603493487762203330968323771552087675635056866034553275409277162767330550547795762397537542767038099771015471228502964776408861269907938906401675517092077972502804862191948232210142745050447443896586994630655196937000470704423125513827109038567969821247614733474993174390065540650227004048283696304972797616689430697431335185958787461572505696013422973918178439627031384368692932309934496885635681447584085701407047727896858911035633205786724073233908216473759130165262760342294238134600436478648699904945256571661293331957513717832803109928543804790133050455082627998869598034207456196671100148270954845808584615250672254228524429261250442458718970888797883917093700667064217683745344607539131836476182915249981921729333791224010599506734227710180532840931803083119875260495802124751036382755435922637456615895165326299473525963025526865687361595360565353694861748701271415864946546038025777918616618885391427515265006789822053951513399623855748789201702548811343380638561190964452875667707914085235783963547545967512405234660538164212908422160653665125622012262241652815853391272279874890663214275242435170876432752906813733878987464246189012881729620274031563873477929341596150738520802955793187088692864097529288273228596034687149212746763402790987569619930546329600114413878882001896118433015805140414116835541192836466512867371425461587633011647413412403969533740339779542312376330850899689414648077907508379065373700368488895429736127933623782432034474601484416856232509383774954496695452135181233602590669707070372660615351686449585570095802582032258838807554760347336134752567081038309651197285793072624920305657364373247219118231255092663204397489371259985909004259166013658751908908188604700403934304743934575957513215272293733197358588868798480288115125383037388723861156886457157255943255003981946335761756770924479256645345224284955687825450076989226518041987486564659385098047153304084364316614880961893809858228846282380222464598906147194220554455091766281598786016284245058422413030974300518399815705696437933737387258454706214362063659353999619675739621766680482428049547929709578237010082572863956023093564499428012064332809634161717074377444073694278047706862658259584333822649774290024728635045764905640829703948584243593409796513069834471205658479277874127767959189584521116619907520033300510376759297536046769645267368097953370636185010195449577418643466724517978499506376458874022532112718743226035786408164280372131239405422132294803306981377398714738042053017524039749253819510730897140195101533661040368155692253671394403859896883969523635605313091968711730088266879514698480424859874601959771869356732589542865545154087410452803319464885628472173782037884620066209242491549681902065251931198088301232314601868818116056839485256630335313826293417534389529805035763952691832092480454131731280664839341613431030350551640236138904891149106739192744767254463900963749418629482943823485757168132246237284669221404657246000773359562464615444359178331049925051270241006376332541490690149210253129252848836468605225556802082523395907226443796341419145886042043383985254764735020097076018133494569911710507073043211416491965175694568583745801923203677050392567775349542958083904292203354271539348207833624037137969816445004590885514145898605746112363105905200745480411278909433317927169182535110869002335693286949053367735612700210512349498031888023995901054565369672902984840002679152507939553812892822136898614880386330252088688481391788901379003944434491307064067020502769730928763851309870830448665839287843650752367017209875397815607599620210991973772700010799004036565118528025539872188248310626218474895896678005045188081339539037789423424038337908796580341315257104539825917702021266877812635047119581752310320826255547495884396875840361127382904059418676445551253886464559004944473075166488272034520156514239316003623876127158161050246898409454988265984474428821639796187261541420832230430811916805293542200865000539427536631422187112213624699018192456056800846066104561777245543250460311856137379432274388984864845351762919550903535897413671704078150960730860443993933623673642234531067604252008212354554869825802615078606629352117882261308222768297081075852382115524559890511215936863400240932329434744547309323148820195143297659587557991031267327465293628577471513103860138285936930350925471008191703972822300269842779727219770544951200063191544970564197476208416358750620623849064931671314521420136779718272288230855457032610128209781049515325114487569738069710662620543350766662189860881917524545746025137452318221926771133155257019011037800493626740698277096985510435771161843371758812262339088161872278314436602971241189305619759280229960655931142779267841247132177906974939736357124409957977246139465041608610656392874020092657651251254437768497823871337858954608696338259324965247635007027635734465493997015833366318326268731905467039087999240129015755372505539132645932972465594113382788901532956100121794897317248644485034224913884681584493514597039417301473928731814889765574281094700206902063062602855601900691615250579112803740067261740516502510649539149596705497654072886673367912309174947990244591997728590677493410259273053590305345153199963836834184131807148052736881079996666824853886154646906669598020550237769949654825211145493061383719763577810147894935941307358069567227139287190842647090564720461807478367581403307454617302836157949995381796718901440331960449095552690005505338223397144138681747037889281469484790414347661593545465162931321043998831363785251268342787695765729913044086100315600997185534270626161355713852308746952024627991616310729687676810336123314653235449466987790990501788490640241890478083811281479615008441633105302524098201890402255390556995226644779609397384858746728070718023829146915327758662798295803637040988456896448492690589363900851009715551527729709035958333628525855146641144354257935115461627513591365261083836411242763768989861635758275916477192279926966574340360761991214921429381700309803870378845904657445431994104033290050821041245125446867691488913105380005145809922261278128514326995831312999984761726172346834891034798213970269658964786829736527551227222558839934330800695085894590028230529028594732428871971123985096483795574352132726700612274287428407153099731523217400083538990641770050543392208214138672134460678076302225611211757955689717809874010929141836943857192121191457912924935304032651223768391840318461574506225134299653126883555860716751081317595056389108783242006521852581553059135856156505767284349359969614997899100688017756027634536191941211157371058153163707161985977461742386193353428774265715622206898334335724243956651634296965389383272827958216181291193092097372222810164885788886156651443970277452536174653730237612045445979641713255086204589928559686093899060813285236199585066882210481795481968563844629849291320397105273180197313196069713982215055075756055122528657535411909321797458185276845854002116007128401417876791013813333511995806158943932700985541569697793827748291604755089710144125859324905406329821663874425303449460818059919149261203704339577619876005202288362810999628535135664019470421893615500953613483714173979247405720414080837425163206778037761553510438618289316932461526547298687736414425136748714021939419812015980155965708938418511704240300951580188468560346462843214790410301276863638586142635962341926852824934713401460636064078313237202076053065596906150793177469779028233951548036615563630974586210388649637867455102095280836239730032625972851000041164233965251098867153144818330454179521065796283520264622673319644391952354467833802139095305138215902317297524703166354275114860783570930942818892658973743359046076336528546861386705653302029551229382140942626746814694975154639004814431692499613937092088990214966802811639804106967273660092055495082371981677926398300434897355020663458192498337722106369193027547125560709354342096255923125694357612421923820209623960646893411050695287796366371843091255146844414820888969806527497192202611564769602506235397043305522954431164843109268827744069358786382577663617689997380557444660831949829835957558383269062704904290930776009222002844634143998673159867303160709290740809688347213514273177401835562344833967332350761187882140188421682896255406918348503901239193153848491653291427138342340589361216510693046556366045033394372141209615627679384956773844673402867981168936279597664882916421797443237220519549891076622984489653832134603221268132313015322443381167753654274000639523431523764780474071427407245431356418168243289315095748190608407640545702340079896492592109166210766027444233834585869842635597753785647682427633564724766259997825892579440946227684743442317347288763538901772778671777413777066575040199447309167299758239756823354436382267157282278865558647734603285970250971190498642827857762087209164237891619846042535456033605859659190249574492071955514224233231433622802008871409223278497459473057927344072096102169915631685554319040391283893290287848082144764647110936096134318549841162612915749739032400858483869212723152006161235102221246205735383910059934615328981005176856784298812647868627434625734346282214000517176454745423639794834674831022199631248354516256528433614978978758301500498491781321145339273402305276626441557392332141874970585033268796725769541345908802667938230009013447445987465250040064638899858399746661428776138854610092760050304812049010812472441587607234652569521686119204715260470522223929747705583641096563408957299510017440498952189474499889815023789911417403495863490183155619120644618110289526537033563304382215455005777037746939945188552692233789619966627663809949816619949362521262064654125957252384546655746430805718927149043800112974232500243750088975469867051490786592132018692164740084577695031679838014346711642430047189049125871838138865137522555159875880773683877226261428314821921377210994540014557058247771974645079981136831915849379138312942239575638158936393800641762008694154431078157241815837899770707867368162526153409034795375265368031095698865950322899169299349834735771596225362970369640953938302189224050691109302982192652580632659925029212525336777976813843272594222587540026671243539477203021588847257285508856553428764418123451399393487681375561897106159181583893167830354785976524352270837401594297078114546578703294643803549417265339909736589871425950399194743934526828760535281704149677631564654217802771717628124769998853834715822324258417918391635977496811480564525500341235967998998630533777122737274673162752156863770735407405561189177342757129706570662311314752036686765071284589709681338194288435605550850249302209886652196841576021334401903800194424628092581893452541596407673505101422880503807419786327915877539265409765979381098319955683111724151103424934754964794926746974274935581649436148517690280533637873662020438605739568265736340273304740724443343080749281617559058932935014926298665937182455529517655732200074094937969960211265702541795646872026927091387268308568670300856716433580963270198700741578445109838190551566765097982181940640829984902723432454190374504898607772983481205760793164720608279432803594612600071927107633120560606686197345004542774855087700266936308679381104507674365006894730306572707565689145914867930804111092682216196762899917778109409786046977159833043357324887439801777357587916807289837325697334229134802521291418808931859211358189820174494058712873091440898995830981862705316157922893455807907717580641617235587480556495178057818914689095049339500236335260306158161574790877953293579732845376305769229609175243475893549837991704191379650956413351963363608226290060745495614083315738551231777945205541473483170264045956015041351702876476435263249556220548623615198793953017628380172966661632964030806116146670578075376170757590506593765065646447353712083910010370608138524076230052836805357664381621141911507784630094999773276419675789865861920194870510089010313331990844185515793756310346923124839056732192623561804817766964883045846970345428767159995555257011520704257154829510366908840929625168701083081095674331438093266099171844422839225685329206304617834611227029109674026599455011774045726371494037301998395546004729103063278021495576745447266362591059044949842495003243336675608080483559951031611168889874227572121382881287356351847224919617695550281488367024548070598896409228904131787244369695499091420660010577292041142805921569790092733543081603046629738246128454971643062505701791304075775212476678969120427470626502460663340003127980506815382125778990367458879755171199789340750969799533642888497993405642108688960569101712381636207346884859455194372529298292895833727516898825486658647178962861831064955107938260923148325681167728130355925027175817856861563065369084279298937111235916400146657083607282512445000818901776290221216786958223610733990699624600818048286217043553513483066986896991132020970136246057165344518886618992198769218755691859913089787454370731782925657579121907398112711317463097690564744649400607348851999478501814223156638793124681611545278960692889697658961069016465966094789671954628542213945126624927175515311030162992025901539939193979221205965836005630959272677697725051289135303381342587715229519144049196062495000701345912806106240877525668947696707399595897000649899244590848046832804250239683542889738652302540337212199439808997051366437444495040720910070211860856652880719932419571276829422246244040666441222473043700651481798601486091885871633279603681647858911784695008769918871282258072245338725363171352982564387374334634658662290740286683924598405156909694724399850015250519921972034327926165580781588755615670775271924131436683510251675089755854828531324657013001603801439622987744978311784183276088812436353888914223625192817513009044713445325013490551861279810113433502439662712251414630464896049794572853528478528385403835803314186652305613628546352630666746035522384964777965451555499792905874870473981489401685883091729004129260474818570008989037093133616069437629466148672206414481131429493446762626206950457255219652799367451360480092866859722817060742026572930753911415311072598922143088343814428095679333869812079369128346470080001323030946381545478193123011503872367458665708627404231986206793933639607146111067461610511308148473023890223758289533391292544763588176555729787904732211334264097501102183805809943501770824561448522150564567631732932410345984454898136281928621872043708976646173134999308377571007949929175157042510772589048635418369513764751240915334154186803407444975689778016026153265932664666382178894910222690627375230296150195743531569274479048212185764686695101153131397189037960678594826092300449306370225816002889158503733299025140188660797932086209637986997897738589513941579142297983799086083923923155079515993556235234966757529732509296931345719778988311127213648107974428976200488171776729790669264145758415217715765240796314800686798370569031971415521566865246410411936411404534384135731307279743260415951141365138023250029170299255505205116554150545721424589679760958394935878811543797723874873223235964482422869331010725627848565322159150604597039100876138684208750009604984967025156443657695872833805604314854089321124457165710602573597345418767055204763326343735828129105968009448371348908012922982438411628188544866531112583205363821553470636178292972464037961022705282737198000402955075994630833623915601088766564835107340271314054269146748574166474502477250323567342216828411298379890882127685775877102410656894089623419540278829781918594107992797060548435436619063839997683939732958011454716462939923870920156142929643214096298727070316082341835735197990485290129607874596050849298194718078408823434562072069476782953037520012848671935409746584184282260605337567020772265953435747545000118773844945160027191343337844829911716782348215971794254962468202449321704488415836588790668146717185916226965479020461714901519545826097698993036312205635085002444026772988493349374757114191933948460898142224270417686039064606683419673567068331309136283334118303408921928026012712505982168078706211611842494001256603343895331949585666993461593491649606135942837899886884374210413450602352568016558092963649157782728798245441897936200296046080808265007028157995725544882275145404279319838501725099308762287152121038676867478811562675578391656277125434819964407757808797129224817553219770442676763127121530586050398775997640969701808126814568768679146980065717975197171470454212213643773290815899341775826916311195578010705859720778333743851025344871719132202183625500317592682199675953025407392501873956704517043735454957830478638188057946795848183204515998048569815450974787682140562945010303779506874631555138468250349307965183976687367947335482727730907191165693830128244452139005392964677767959138474573382240097680182188552468852286412725800539314864030580083634977664208254927704224490975040396324784094903237375088605198761110060141967889790062332324570239304966877799891183364988108276215582418490319516217858485070985813131850583099618360914475967591117833344124210713082130953667429959749951733907654506307819313535652862382780160797049908686523014675681404446892702732949901918139059014444684639067382955046532810925088843209032223486076348409416444368697362721733270106159987131349628349828721477328725157373749089105778798458072546258318750705658465031282762604302335933162834262824780583394519519640312512347491771156800788645646966184857276929175707609769562274797348745933056312480027833773149575249772157381854147902282562148030529910352558272007493636248404556391363013690390978258570334878647471423736088109361275895335034630426013104075508711979309175924501264765021896293873068454736858090438165304891469533898706727380668549672721921995357761665135094956588838825005804132137219736733154916667701918676849318234190491522168495903307448934423897108845800873719097412053260673512502012446062317916692033043986526730658181398473167106429755076343753514339360041537209936360181746375005147862786604969388589183517010520617185080797108896783117997247885517193130635650838177801920735018015736692847254923942114894330673264409347680729412045516448630701271631597061484666553007158649507725961442551632653724876255276000445888471553929676452915036859270079684469788353844295100275844042399985568147309238530116417932627732718951331521438961524371116438903028590702548442004045532325057659233871992276132404436351368250145375031423281831058546371416029688360875920133828136807100734778348672132183802907348669080342715563406799269671454986849933309527719306079143399516126050359263399104516449376389588519944903331086501855705258248886850875713862121048671478171556681575995592714265247014462511508835987721265924943549242948473268233406002423768078509906883112632208978715115890616642871300642127661160220317520951283298291533211250071301298559369417005750606674599894845577899347629675965210569751035349148388516277577011567015029151599722296714804574690438486401148727510597592943311424144142744747396277495589692977135064804865971934353822951957280273511107755270651786557904355821955922816261767617582532948586896910443637135159779607831366472948790121915720077022722934797106407063328885809721992816465888852063628806481687687862493009657214654700284008540765386506828728665358226110285153708051769756689291264393466973740326716017327126467283859438145431067565195348680732494565353644164968617641184969965271205051699882265096665597041706922383762163259723765994229502861968409821184150227656636832199634085050060848630399252845734636609219544048924205725806109587565214455622061775762371186103689565871859811630467425249953607990523162968125079071441509361616691000298138496608903609147191949564320362691726773709575176704245631992327099894761321515300854266447825658443393628792504982909637557293869539494681182904107353470717938666530375050860996192290821349915612283848416609130626207019787906843739505395277123349577221214567135779331584004840424081810266833327765427398122726653314929022061390969429778264699190373143362567118980914811576711701366840876960218450886336685686904525056822918466405898527920021838264862844922547544262942152398659481089083365789941680754755229998747938440075913567457176288444160176023774931449415340197865034534774774867251892900399442088500911353193327383554532017363094745789743182057977579897426177022668209722359428325329877228679738718808750306087122698607378035284724352641671795336023758935465869089399599359063836781410975821512009265312803361584494090166880020878666324746708173845873962980590785755156787403997586605849568958892799730517323408791427628252878607376610686288761427710045527689777963932795681138035681713530685811784804792261051433585027199260012321697858277978905428456362700995421088153993567731585051064895119799269172067539354811885724637762723922610831196315276431826024380555015336059546387811183789986533659447227201105603669970335522626477225700003064174100007012085725600752348800718748372864364387412058038977581905658586794623675958046957332832986184278523277243253906920110691520508946947149790361485348564973750950949197367607353443869031393152155941969111940500013173550901107426347264183627255171340112943999131739079060351762296249814958287923438439531702269099202039059386271822622696704160159537774416714543247356477285309462743007887919279500697925911781447149788224213390932089247355731332282828937851068980223971912871245638552396049459545531653171003874852430556537535193755220401291399610907621955810206625596006233339749637788952129114102869491071452220499330997009172726553345000786189707251546563253468678526879561384668124945160387446678338734671266573951541749850306627552145396535458126173946954524526229052302505809679763085997271559238365447839086392183126574853960944133326797497862719712112163243267876314114324236745464200072424564267898753060470623797296923964186987244960356372848784874809138918232600890539604113761358922954129311679975826612364464110504463065566951734728181500465725604373473411397838562312151678813330988006413224611194558501102236791187324798425553902339235123089813676230815477645678087491973530167143161068127576972582340009794470739749445885848729265888548882863910722833585808328975790765672077426110571039709709715640017236046054732898076731666091375676541426872560578804009553157159734532741497688734703181594735898574010904751304997537334875890861423541728811840972392196458210555590470939707886997396516215807389218459733946751467010927807304509584771998461108165834930585481216857837564840665980362575462023692654449639774055917739593687502825525141824212107762739348947072991802417015700143959549269126891607366714377824654299148967646425246638663159451826282962981643247792945520625472491577129784003034285094058679599535545058566110539783830030074980962300215805085212899519909135440985838829769820455106651734809318501136787786709123624594413711073491011798641159618336710854745696233990569710757310141679155587900194273127617441655412329483313692337261513317425502444655494734992398182331556235991616136998377409653764674252585678995227761281596580981187772838126323237001001523746749862725373169887231935416833332946081883031532453560857697382739156891947554474599630481643728310135477041863576972090739503843160861149572985408104547857282304721732612789275934328420347542256893454371219801234686457213851219144140500254740115045653812914037824132535489109521771039153229121052740885570880408405060208721468389397825630601395498741249487018051308646748782517737748408977967186566406384957670984018848804326306112242031160407634325983999857769529988218397714105338741906209828734349217129707189033106801213740806824729076334055269197755779097994860006380458674125796568541994628717652668690378291355158989877587177948142465856413232463039362331415440184101606315284305987361160816737394478855283699828172681125350001924456019577428007723869972599755960190981257390183700307124082586020918654433209501332126109153505119000668011403281201325201045203606634467601092078158642624574501052554439249393042233168778757190216389107150764808604994259704345000611277262847441837642156743249742840452316255630266103975140188790889414071651675063914230839669401312353947315711540078396549425452404907977118409389660189187567095399358981635279846227270854779050508138066746574575127466116401617384594569501330275595884032357171507418132867024960228208130883383195916724310634839329257557764460191357633698019708173861598332117400966240552539414260910023318381785487931155072277381971175268720786092076148124352576533973613023742397574160640988787746529711268286361993115239680538044002881609795464564144955129793913863356518289563293265741486358051795161240627486826360830732399854933059447638911294336928886413245318850302636383779757532705430928047109982683911164169781434065506239757441672845193306062956684877633932478455117080159969257858098594340477005781211839910507341324337579662592595006300644895111541187972148341132810108103564042455088424755382653589859464821831389369542092670443061099297179388119152089217201707072445346423411062463515507399324995999284043481632602573043823594025703504673847218715661583349959521870707997524017203726454703211810683482928364856432258374564208140309265221445081486645486046809601688772986486499425065374470818886096377999708595659420775776512449646211278786110138236486657817583942442578315570346285112114955156355068519673187718295281410690675534316631547447370426802534176816156918474971564656141772674621699195291707238144316666596174098334714661005193612819529896591819793630333916162265859741983087500128478379175991308633180764854209233914286559144379659887987727421591743387041491847751564528909577800083332543960795215307648802175757614501198853365257019396029803367947050177608949149403812663790911190156333147958094742680042071078063481637512436203098193870113167432627485075692849968544349593432332255716815761740768180962639265133015037424875395710617136261397048933199190824601694729391230456107570358818493349139657998067814925260479751492661201848129864960531023813451768199723723855173526310092711369863009914913850137981804790085821913896368181081580664672507508944053308580235902952161661563868174536502747344144708570471237000311970682762124188750675926577758795704118253698562426366171016902376349834225610847958486705346371943294650416524962703154020214527342302950277234780262508196873421638169769256777498116600749407660224891349081449380472694950883733225888211119765277859319967326075151160822347711845206950360945950200551945825387066393434021531144640211833740285930007624889210804548632783961577331644390334990184841553717303300846511934894425772659766360411706158782667298670377431629610405552736806908221607190955871013199814770676087262483222009075415138588785720417880262704313926833909277466190090790781653819446393348509477841142527693289381078035892637711105571831430768128530056670708239970407675675903543593593539124122119558103114017614178146822346979534583409966073658110593040406974642044762729278660770337856406939680931949145131923465744685896356471780939260865946860857060585448946503189534754520615705659981997819869525962950706026175554670634424171638376795002291556160515005242208873956669861025706010180308598706059667111399352729656646165463742975858336421046376004351497342309695756180992435245676386916187008603625945060948302480992558235312461262457043013193271663311102253183605067124688523229420931955447975261246865194038852053768344511268115943534151788565413958397792909084468997286036086095709295922340107923668259922946902157383364606547078937384290184416264240054874866949898940766845268734968611826967521906191409677308054004759474997528561113630725539091878793341636393792587507255699217411978166057253051067540935713116323578811260607343484000507807264045434851037886435557748518760112330914554891965265117857518205795384989122773131362716321500524464966649105458298419463678571185833679428991978565113786346235256785222637550356697624769931578183984719211955456147560991396225509165807261614017895068349094058451489057383657828572176189217688766621041941678603436289992041178668339290580624159515866531094475514357335462428890162510597205372586583305392634857409442503361694339861595582167346151047017626170558728128783816229163618278102643202181516183513084704111499199534424129717168446043020851437918253094263855705383337623721808301744853338202347580415528207124860172774743681191503285792271773980733390039997904789013526537656601265378768667998796882547345780028599651415119444635460670692707824313132461165236427568564381614933542964310196526757317033404054114543701171698191649218203371151219964407129823213884685481474366897326536593920642874215537962559123294484352837973194664895312808331395284856883406416744668820704003366195703824761645064026490641836007324969637801251952394938262454822503668337446057439225491296767511209460683802950535182072598446181959048137645419976121351055467384952753025852903446776570473640456640389715706471616853314094491222445088792236358656631702933186357189563586237258332129426928406739286346489739904291147789621903315801707570256246943781635562076726075586899030537789575384711934849744306999997889855143498842607782927720068131370845129597672763366708285819753547981296995429075483596381648214388160169489360120228401934875200297995564491461814841248323051216462204320756185407297630242055192475471454114500536157153731324257908179167991103338514791073137301682088656662293218305328823336436828377962632426357789667247731412182978692913677168306486411218897314617048424259057193149354213318091256791521382492621474928958973493932234807794188187963137644997461043812049844707420667263873479588626301837600842606087530597390357776404855712691418245022166355241219974154341801657536652848592563681387957792471002234615467616798005750390371775452984894892487694736470934097146092077920841006146691606128508656565353788760862486864475857842636296334912152828127713533750711540462734388353313146732007856955153263690881795856582833114536833361579989642273928079387217597557582521077360923989635949222864939481177342984082996303071711406376875519384168215765339674105321966252104851593586293378010284432976619737847431348043323223028811627863305853543375292651520201890885176673475248741187859623750720015136556356048478356780189935292325826578673318525898946998738219365030191534285206416154575009012176023905821620058590903020984208060980979197309063414314446303944234002604349477842752665578552490853933131028756871594212144516819582560672739352611919566012463694291032154160926397869274742760342255584401697591668354566213450029408005823206039820742285837609906529873662439805754010161861598803479584133096889800442528765209678629198576984837026868162254780336955825096835211346941834712394525699649593943462009015478564223456395743592065129336214414703844934596097921851534851319162091502145804194986629888359077605317728489340344958003035906603442508895198568374377332793584793119095276456618664005665222255283261417769049073994273346751354020295121922625532790906212231916908944663980943384271174008181212587053028601766901808348388333506234492190810565980860439965935098748073063398865582475453747648058566930557730409642066517084006057607903588331793349255326171913805376394255484635080373769414963151532643785958818908074669760924598046985172027861136773312740409096851676069558378492994926108722467292902798227503177362202217014840162492674638645623466298903864550179963913049858051510100388623614576649632370743891535108278637786103248620109917884550987999945659745856560896410977431056935690982144120768610639867193837616677727567558908377389372299676411219883024894391065943431416908868680495135357382683274846475580930654054063205199945039266157633178696191002566662619236315917043904956365414132036549458592753889827013381691952279377188705103814509130375979060075397168994037070820798687684144886456640777572870338897116548299062423312419368935435266955901676551863080941095225673682610046413292772099740265098327416861384117802621806275083835617020176680276576152093279686597293238587927716847002743851530599216031206499001737670725893175841385543151651439005376109184718779698444527850630332196985427930208503969915153764620466176646881848689517658613724460933626401744618736906101782828258425033367163502803393384174646670416854989995808305317779655305337848561566892512673624529951282557327798755041699730151818533461472318458026779620604302772105298636151811351088143732994264821868435502859419284074780490568248212043526163258295512160915523500019840448313219962702456668780056628382929066160437591646626629827057363732270540530937395001589594027364780441445959164208899284847054237669451098212141770724504654620733086410240210824269160962911073371730499914099947717818155708308995440074714122373869249536426616818115964300139175848794949907728740178948451321468730280977696126351404083588813834362537093662114541620321097246305439139852776171703714548834601132325543169603516491610518899468327580697056457681913859600603053368818175599365527091687233369548291521601484506181472176297780219492577202528742477106367264904294646540203041671217093810056529408891766013652960583028260391096843484450926297553262418201152744324135353443323500499432198937688944593039092339469862159354306891689795922167522972197940494408961173839265684610882744813463206888675445122856522856923956704299822495638220279613410029501042652674001146009369224442266526116429654349379100932323955023818459937478740744878893626091303194475149560656173575659210242318622064784563006578251943043769532246360325320329492048193402838319643660296890166395866803235366769476876455711471417853460970495455978958704225433677830264942681236771630954983885716132543253390416530598963092681710445175898600620085462731479101377853893594934335749341817235971143815858202503361578203336424224630935069216049949515925826750580562705429643933797063755704205674563327977870053119420090536971259019438072866003854076726508608953191411154643449797542329781207451822898680263108168221854288134604046012989829521535576001065938790895126828580535388593721183568918828998437667466723765955157614488757472099357928276625046887984787125864083700914384015498615922908189018797477330293763718055033389219166097695069468523923049141034343011757128821964694257862260851270890569004712727567729649891959166331307033719759608366204463025691272545395391544977666621811699932974454440264373897260939962158944581795288375859112419615118926330302707713648651513209047099386467757755305397822217126716131585697766617208067322096113850223682971042657997443161667777742294128564641732455628704723121005804318603407278109772335492997154747274947345559012592772475760829456307822574787579984192185177379738947930683461975339248691136640263564981463664116124558187067166319711364724868720929611823535170628860328205030154035598527225000340151736740602342716917923166428900129800984831424856598676480782719712292542373348626191311383428419946785980970602497537277535389023974466071299908489948265504489736726156047147903140750327653279175620887706668048458852354180244965487861523082289064737360201127485194501346293267535362652798878985309579000102777335707130077559997093744649923839168267001127024208699949580485419685601039149921840128809999256272504950442206585423456222983700219062326550565285193799904831728442780003220422848083264672005389967649374425158375416483459888126760189997445571707001854126199017582578686028167447475194863596045150267778587530805266108297311534252529590380529858933577515492096203586269704038759182531365464630163237784841041674311243649946929434513471529411203418404820488005187702327310881962994837983249947719602325237688790995304452185584139629284094484237153792015370785579722662068282021314205171448790100320345604401051358628657426040104031314672773267681163614428632027982910638540321655789331470170929553772815399633155678784876421185626250493928157462359447071355479845349659921536669481288066109341530420224985998973809158202134797943619602530583010848024748454136780467812383532616889360864496986230608667875842789504336462809667602933974277771741408497240746520354348540880281385771070576079659119269004891032197790722754536199637372694718595668453859982379268136627022937821133914656428443913988206207075715385623796667526547422401838901529810885335401860229753433316830938662746674823677913386292737570390884110657253631079041519036401288350473746761396505175236388639383050862472451252617916871085734675688295584897158725854351283393234860376182365185613323767029321086915823106680951580797355046518012366627382369876117884009575589770940543035167285816459056674543274321360413799187282460999158049947231543610435894701148114292912580730527275795865625219861586082927933765619671372670187404912339878238588689306474866931716090727105883156192395338090087435563240243202420577773379338486896541045390792842509243917757956172240615940253689792157929365450276645262611501376446712424044135937578063837092970972061782510783495414697465904367306101619830635937179706866917030763745721021563018179991894535643451058360568582392156545895505371623842554355418078082798428667982631824960938356608340285749712769182637859877883462198648622592316945411316183306817880153546516822040848518653639615840842591286528576860981412734323200215966394102933421721224273921652393174809957383876488638771274574444825123337965252553649554967704591331532894471877366516225129768336959759140746164450495860317673317735623375731025899155700058201092310146501803330968910513050054463741808258019957459780612281743841059041192883525056980338070027058747212197109563758856354746100067981381346262192579433519795734913354288343769785173958187709825065383661949858386408971564524277097838172565693605058739403035889146871772046199000894661021319791162118955395510554132997942098259856474986594408380769758919640611382756272211158009326648413811918337716740557036895892117831152366126775636811376058003123874770282199009774508513665034309369652424369838595415618163370968776272037203604966445173317038540016146362387721266094315485281363565413348266111516246073344397677227133904318139198454597833843387304780177713314525996710119767300737862959504673265167136384040208334344565402602922255079326621135134973097642288811578827094721236296669800314467260571706068073848983549597263449598762828999118824020520842812953063679310890827514087832246438744248012655531532472164488267213250649662688653461560455177354200733952398694077159138645338984631272152447136024139641022409961199670549456191198189391144375291590319163813710214868463023003793563135382910923021656742660473711145395356853350865460590990040498320996914229450117299353866347058151023893896905205907202879946355885196243771891330004829903879235693687499967258818146592555247147534538792551047280864663875127611848213199467224863928412324089021492553918030304369827865640753265392932790282308210608457717553492026075158946436101038623711090908503385695635052149772000756011483458374796876003757113617979788878696466150193280438190781526404245654859747533174756536563403040548729260768706562916539174304799492397777530700071166675706774919906890305873230292993979049126602433381899003046980171784399230403675831044998913999643260520202983388511654441424637185649622734573432019185642570530300787861101083446796037649257148304513339390937775471473909096392623569079993621787363809999702543396536637660537271528637529185377101348349651650322894372273984834397749600565246055749671399161227354070418256001291551302262584285278438231297539308692241504022405981335584108592104886746438298720690995234357917505320671122548523817830402684662659096567822536598576585270414557445782136642812905244508719769086678403729087674383382125041199057275738133228638474508605329186973074192314211829530026730219989557894161974947537348486962887582421260771038097708400254340110895097223348010266721721865112877808841398892791867687571064272017344507680875308134762069065327191161906907167112111885645352744120360232247761592802053152960459422193774774249576944225190367595766610831943353357369002678829112862228283485416903996644282071470612985896348072637559360232840070105627145712142366339678894901532448602356587862395913949547625591448959831242176600229645090391409974475400826194455878303688999886687641116179939190453638379718173734456431776218115341357223252836934649311855589355802509531722676130596922811547225946909847806996805014959266556669034303562949598319333489951293174216832158695662044599350652914643855066627674956917716496677651162433194591016225845725622764489008727562945803903623490694983623612223793185760841547176701570453996610413515542746883914059769729691816755771890121332277462675163611350873427815872523411711229404390294845111668975480132665807018455580713277022898165201747331681367709797191243344990687321171799234692311375643172949079233314476113073487662333029540600610970901352379335390868794295403843997260320609048438316668430805837187440167168111189110298860423178647140590728737065014582781782858919662801513219832636229535690901318001276588510887395342537288857030711431659768343165988712050492737866715010115316065886888818846577512015209264278530262481434621454728138262051489289018797794438438600364910076159032744407643302192807951020229577677675669183510943697026720957101974907331081160024746188992162204348691434578007131845921559566816669261691681005786157356636416891964216840883787925467375528982920028765589773954118928886583689848864801353902214617661893561869275190553106486598691094894526359874873563834523522100089054482880575936445771054687616404780385525034097229242172959593270930599866573212546980274445936302115798231059793825680873598785197135957829684762609671028599783761544165952781267928137155711233872423629694303570684847239791414362574503635103766878554240270147292901205394782069654072044545110466423798319619078931164057620345373170234961760422413130097711868965502472000385339628049082326387569565206236474585138308294720401298453752103118696416519960364833371435251956410792720280236890794186949353699072993633287525914679940269634508728562839399200745505772181269194891394396619092428324950060291347664416033404495861626681502019696697004798761543716169609405405485286735497934631008726753451150027063114648968205294221960842854561687716798216833182234547620925345746870094556346695585664030633204489002984480914241491886153870878462617558244321852498760104950867538744107335107673532204971367393518612482813231225173475053994076908634005059990884413875411045857053096173576731789138889761292302804977816252474843620701491189354053905245762435922924046537583991568969073609975798964146428073646130134240387706456477480517614953768578259534956933281453806854719691359355370930733974756668568288313334084895752182583259535101838252922526806640682525293798086115553273246227328879841917004000863140301857346447727612819255181540023672152975494585297091611733287403048637289370905118266086632544999145462148861413288149456488294756550002755547118652984802505937836819468574403615833912416574345910985198535624123710136747014468088131428297306346230646004767019999042279248829623795162441752641387092385097952611270865752163138961486002390974903200295602496802704831001945575960242466265235748045806477435814665708192346167935864340663168977946035234269710483747663905270519243754984875640951334807339924024607476903068971337217632152988254263457366960681335581959826347101609196012472232623017806084989438173741848447364084191327700856648541938036105959212114539978702541359245278597045647063094000815903260228191920541560306446179247526451907887636521397842759583692957548857057724382752747421119099208575618122339165804736982862555264621611450778389430451464332464474471176073198746177177904838840669498334865588677177964027117405846830227723272649408057757210378729997718461924785477232309109027950142910611273157085581587241644165824985905661421395061150537507890092077002346645600595222375981154206607470149874643581970264190592355854421902286573812408810501952508051977756528423470476967470439099038150670728517931596203388393744044083291448075787630570367280309682739046991157483850410618693503590567772805469728697505898891800863871345638121094660470319736895298224933898171556877891057895697082458595836529201572370018808965707098361026077226838980358407491055509197219192854487397589816552225515234345768870650588635211262825196958132070004442297749734438930713090333433146470041681975290202955752524552428695354342345102485471455801813106969197625897277919262782792063074345326326549124185233937900860663964906225726931534390969984947174622727375750047032207184544646184460281245445293583993974082821270641834726591745547953673936596453623571823092223759995105083132229188588830934095361847143474451199228191947118401620957609098087439638104590854903687640794607174151925723982439732333235339109712585449826558743836031965698510796724081357100225585369410506693061722856572991022085268777145587578854126272422731244738213264917484911787483711940039636282376066344152170947987980806185347245994233057121588599755250024830669203045480733860960142896976896763530781376080883076225451070618854586384656524677175914857927178799382779163000625838497422290738278663739830663451541236080717742446428176084872976574758541715809368259047906081904201780164279039398707078442692921964017243497523680664543309428424730864951518101015566931562636388365650846776684775524259579287202846302182515263732438836278261473328942399596160597444490148027106876007855495527600117290228478881801319863862606355832010814462290876927648470610513618638801400555272385154954127183717989573490669404247764131983056816170124871772453165908582748595029798702733309296102830751013250702265979711979372076563964894130514128855222589752058682387985756207090087130433329533899409069836270511202475124877167079104967121174263234572643037738352312925829139106769205172790955492406914937963418691168427846216683163181052137673438770586913196729891679407090030768618484900374447031474884146359687188267412520590047609935053593326157639894570132178500546015447897877634234442235116791371129329302512442352159709894171827483090373241109328679913627680770553190815076474258179976579693939549515596401264304714440295594577185505507397288633830895663311945072749727857355373556568831604769472389101383592931143400031728185906551605699324301027793381856781654348270315100198742991220121483198070768001063182062075295880140333739179906233675306278978360215138760456712521447764585962260458654755136957836758073729823913615211106903104062732446437201378519815468415607970243019965027597149219139861649852053072041917515753574187399787323603993334964690521715356602378494858237461319700330571865427835868186616321647425113791338179259488543165746273969717609297485429215536941696853029075888366942936304652419214860161971301026313526574318703350798226028216748569736434206595961410658724585697037618602568925136486084833725625355435626085063016200544163246141058145758045663753655077562958237901385469619818435677175799551665555111518812782930628973763480528889686229909808476152616585463008896031273347878545167759895008959229182614833094709683665019781137393804599145616213667574521085361365011926661687668666825579007606808924607220642669772277356018954408801110385946179101511279985420881641340448130411143341254285447657483814975749032853928934196219892062043314269035107845992161454709078925157259343768045563137320756346212245561997124440840006033414708173682613096040508828602960556788848521145484926699577396467773690007637015041941867991108277198745170336399705556725190651883362038926634501710481236446497656536419484703497041691709891205396878101086526557091610910985140575077310028018480721600146290909238807867316454839120843385841520699816877444505148366513151828677952063311186914659125328109602937503833335105381026324613137543390746483425051172799947149069450496560665717697714362859313195509720164850800693681525714167414908939749516302938288140427330009115844167315179595446342799720859288656818925173953537708439219450810877548342350973614001520389875112320259427974559233376155370334161515459364786862679282023567402733676488516555179727079191637781229725072126262397827321004929652953316921366454419899501612120986815202504234435587160905140790449052237926215876502761161707235693178711792415068702389663534148585222255002776644088514624294787633599608640138397057534644006249461660648706734350170454962363171517092157819188301571278093089329209032882098344160648886212977612684014679021485196995943398313639633724834060474002016523013123978063542617075819927226712243370852763297788395355348317539797015036535856599836769900004957939107443551729020001521730151850750296106250861000631460673454666877315564854839929248151858600992599778512414781836372719247279371600163341756146483697126171887407977166187142869073854984433159793095350075514524139279071954045236520353027305103039313221035729044115398606299554225794725318112667654880678692440269919194977805399927040243560325212921415232207323271737063417193219828652321965859257187378550261756084952971580845181733142096371305307893884394703561442859779638338069190006690417655637538163115046701910968695511703083837670775872065385563219582863762316945019510939531565584696429806022477202568824043913591376333702321098534011273625125508914281582977487694162050104233341481844412486052877105613326122729315809365831321413876712270390313101239161628808000905376429038116065518016306827382732883085774739085300124961129619701316900894315524359638428765997547108580254533876127757736286562992079256715331704440687615245197302067948368411850627918968105240857142187799009147725751594547360354662366185197804188353957609125036933706648097653214745554143894249765505383459578722038302842670548086339646717403039928014884294236416871300884938374799904439989325853591496281153212166444893931033770133774096078184549112965549577529358999653018706354652459807739442058233931751053229294049317496811596345814070865212209596514106370033132105711386536593503755163380558360712972231535889114043478381498210094729121281423210673399018336941225601822566843397979304770781789270681865255456085937179413070998912286945922049810134739153103412666388390217151823580788327941324460737137716507952072777304576150355712927687560696735448321602411302755717068666074863460265242886245939345787822207226901116164574334043855918052056541607328507929574460814818158760932688039888699193902612244386369356213373690943189962148140321534653023298924295347271624829559625373441305705994930256149008592391216951293823138951436780600707210769551058236343034623886319270664876184122699412859492441487516047816708173329598375226375369334308227474219397948163275882701347849935073147878270216176998977311338517151566313302276614047620296438173239833914870114978846811661869422841439265699572648699085570651745701460233488554393691765885852685490875300052947154234387993016929539519069247738708378129461238352019244810241186215166964966619057024656823388293184371205058204017527069736371090161210614015969520935010166753838402284997952872496061855541617608595316785375141770295338443600689459186511792880211958194395809307884550657604971218986663881780311118267239668190241939324588927471501167411880421086222311122406801454187141681169200139629586864471331862126225984910252204471276699957145258757044273124433850536944928740087398832819306782167209225629775331747268856119325772485866498863958483660812034389314403621909780871632424420420142591042902674648889803890617317285319934616422400669107323417575969175147962298815012445925510448547488770323119943040952094109446690285871581701961153482593613599342501796320221686686768832245498333517198783763033923531672114731859714367028117082996573963532059784637913489406532831841186499489613631322803006640355508891769794035655842189305158322099170070891805265645211102109568328411112541746460657111994795582839250593223764383219213666090722080963531873108945414038767474382375913413974626792566420237123951679894674422759131215621505428919981882608091448552175326541557212026339973822926988933534676926883103938007324496339050128834053343014966458022331655402483364615222813671757314915944275044046549033138585270084302855593081887871069939899834730434404488951663599878569701518436460188419647533115543594925812627413866958880957952532250473270186350029899008754722110623176404558568395606520786363388355360116299818892938498805254428009782711836190851829565775608753931586374429820444270066395862949500041995818161317775667372373274831268011729876286220809391844663207801566255778226178692773893695955401058494083116245102846454193930969694601669950180552674133110427690392910716346884497556367441894813349062117770657519300683544935925991296068614671524976858296612691122178156866632860534008552943852023241026843114001183885720613424350048303530297261355981064748285344439198480571353478056515465292001662869393821054225719145848242875402526674645591447703228508357196351185282278546173911920227977234319356176628740783533857047344397150371532537194775636525319178050320808388263807425823539054084234034414031461488415217622109891696989850931143086906678939778191461812262726566611445347595602104317244473729255811106486293833939588912121436533037442459140318815037282463149358695078453623147798040701928013062367388142589326571539748775758958472962560006014379082089258851173729605845807065504956259626019348937361726676610900759114892933463829261536579243720645559355184215910634507887105214259274409600737361116256098420194955974723149159575830948113607065813808291455315155915778178736958189741946413141057683612050957590558201247480089815928471560915779852946080582864633359122994237343691898133742896146801675276043745318950211729293120744444727433683017251208807254049006253370303025642876790693725250499255752548395272495795047045457179102412708800372013576931166594751614168166799865031568137112469655645534518513954694316892603464189355317432193490808397372092748753628866251953345120063303933517894625322212400968264136521239283080585803212561279631512088517587860272574890970063591644247733226936828478954330945085963606751874430208172712153303279599876151080170436002136517006909456867003545038463439038914801316033681626343789170650051561570141745789667811613760061588394826751130665106232908539159374651122971782461960262316133865256050907309915230755543749800804239484178027929635613253552514074825946384791221004341534846895242805430076653966840992805434303340249986500068894380650648594444250417880243100843164646956765445980976632911989652352948510565203914685074192081203817368002836002880972739311832373558440512792536425081631720614588328507077544307585118452993703486556653773699762771973836988178586890630857039721908733287628429439266295722220217522263884535809392184462812557727965009772544102895633677453067976144191866008314600771118422867794659038074477823605516794461848091579298992165604613195779046159857817577320314159007864014376899935045377738277848832114291175709791886829838082019562422603014954721365248378279570344670703361846858124939108553726030696545888756084366013718100181049830673942087034563928412069434630753687605362351633348081696494706435538723769613498786574510360711798024671302180693798196365680447905518179810063899727640550444107189828657177957992625757359187523794570507073999480164859561928932902631748242485948024097974244409886517276627760009737554683065679260160579628205290514904318830593927202670270462730053536583768009049730698340301069188363540803682774057795867413642651976153137527577331187735912817553788962455105959955438539687292100835307401433050358147522401867725164003906675406735669054732291807103639049981057787030887887762831784275510854603990798159616865604418460036116262346251066678117253902991820891265808849389232764336406569458299377515969080079418427191579577990659790320452900414016465348263972773402009355313619461447679182286010159957944676507014103171993176148493073928930453938752055933335319925113925650650988474915509317220937252837896636110289596158227167198905395152521162661127575666488775835528744402270654763866249885698503155253203018332913474742488248450551961022342888829085126125189808445887965356785741475241610517319330111669323903295622543225438720221860750359618166699480602589220868046709820512324749368325642751952224625066461872334341256692688724811780916011248714995555528899798890207296105573854464770527778337893338228617283828812061217703769970450149052493076568403587988205363487532972085401840930053686145533929172017380914303462756185408096675895197153190913278546162402170872499601412006490501709873263441050155885324243554334574599574608617688796698313131785384195201530036887856087741827990210418341567523667985457857264423121181911265844966796989138314996059893714067392106550291878676002227675434430630865439574124363872134829581543214512042219634176236308932503638175930582157264903400777458915438482734766298648448360876511265112628830397650006228130110206407543579265504858619036929130798254336927694782169758061087340302344429404842557876579100730775984197249280903558459291937633255386541931277058412561942141863287063595734745291330962680991646872088129347338888864987958976282833532741487374620271713200265871562349644442076357360245761209674309761640633008086708049315558120608687511368742298678758404196467942167146860126734223046282234043513588611072047878044232449971302828585209742344258539006576745716475050368604039833383281118305743983738482985538973860936653848787782479545379725809727144865770014690924275466408836018349657154859923610821013833971804919116694627744920745492467108177113734006097399894718737673660861586247896972677102916022305922195037161411558698591126002927274359670559616494688134140561483021592995186410750694689490577595503885613970633069887800297662890011129506150438166443846012836090116710255458853339998443896455652150623586484749161000058429193675862040093089735565436111026456003173897693111407185599283315823939312846177165663355378473642120979916335473244412235877100868956750012319384590701334337721061795864088050864739977078514931415335595048228526051250570990534498904708677654866381639309240285832832637580660211674868234409173627772919296090403622852421551370715207507994546857320513943859219130922729814508187013741107930976689411519760597637585748005401805364314170256695526572177853278949548539136061062392440586830627906082328400327307216726425582052853196907435719013487678260099704869032898920256083288145058087888973719395509771074632895206059110698304937088830158130595930543790130579278289467090277553680168469920086749199030012824148779412530378679057599675306951485116015756901512891033958391081629512725809682944487030792231205641560219812537379442317074892937750713784227461550548485095614825482288017251106835931768762691216804631020794595468909050497860424754609078180143372795225869097471818119617465049486049533764043115644436132485013378296487195962964855250985353218088894143303163707201361683009604061636798948646507763611130233295446861554153014652755020918289898744002982536818223927963525448084669131651170797768361505487597619070669392383736993526119548600000887976624461033088765784776959844067309154020816351490489022711832775100586938695408776784563513740721578665035492425936644031900796503457905756842121664381557290691683348616563080661823553485752722831137304349227515247756370230887359834854469233039632797985412697275664440938498909981726853840313681682107979593356631517531758586563719699499325810973351214042209883798251950779000693461067787070454409347710513313074481066566233588878387388376064781964938938966894166914217416846898400967205334634741156744595366705228008052864959996705416814552832576458440484954496355433466083258050436386186923227551280141166931833963734981287374046953846410438746804542669577447690226611586478451414676574076767418741641472662766239627564091055290995465080385044001103127046059047942880240358050764718519655171630388532130991937792367572387630305329889806599155620672622726685425271030334136701442468363312348863381699001162687643884482206789786571881922814487454412354048410334600500946360224617603533152403711359189642305953967328817279163301959949701839463442242594591554232914027117202558221173162534177744402384520731087526654567991307856986879254436491007847970995689442307305744080709244548315213701029095521946962385594792820941715364910991281773640788327756971600640894187550715802421282000913842154766804371553458285150186789126914600353811026979112907243969811392275428972267316335778323959624527960840300205801551605583245743632832818952995992434054002520634438637380283184941156858150569569902908100955722453467040823563905635828232640590290487693614496602818841764125198152297230087159829214319923186658319332721244312408970689044186856384197171768764417210226848034383723654002731158595186599718814674562789766375760150978923400339403841226781021513536071523694845867618510547181166666460593988593194473304679123453161349353150410961509094492376718428958417004825359211548118089716020952421375992873258469085443209011898661858552149751167831700702903920763440722601070532460902853624596709824886096723055485559451322328145479974258142285853525286262399612842485533550672155436171017867912676979304335040105418917131448395685828079801025971603405604400405923352975817241590231508900088268585839851825363699205958437800111211877814423810899865202211471696320149533474317807787156981585106978073743923574403057787352947841185421109971214206542166628825962191208688735683567066738046296279733237944155391143999729621840164329780431098206994211849581198711379500111556096497396311986179438791362139244702555358479773142753519518950114988556238851075926277640120181198227442046075390492035443432165619547372031202531431147021474346467608738073462639141317772293710733152260338274871460026925169104512720970680602553477136694100307919071961711070293295767371730626451684828033449194652653855320564132370045482436893938481738805262355413330606828505227237380356750319232923188756568543995318174830865784845401564324727690009855228930470000271310151486831170879273350688089407770593608864852905055355656841788932005817871150391878589639186954313028398130085550199706211991952724942169101648476768323412317874451576113840901428830684695974779940458770278416879545837394506337245007486435782922633522013620759500420944171568324916385523585834681045552489655629560656671392452196566435593307972246379417816998215635720171691553411367886425123059444326816257463352988877800856107783910027289314549786899410202769793186792218640828528553533149462569854539215259416369144354271599874148917726086538229765051904146123667977746465697872596042267085915890413166181042501173161828744848811876300560286914209644609103388113631619350466909701989820314216677864694566951960426237502336661277953037024959791129628535369328191219942457201978077765411427736177740820825941991981061260397516557337761607918089599698741935474852686808718086232530042750539887597379496072008864818865450104474116496088399021173898661634359903471431701646952992346540406180960796910989889753012249135734513325909563066230385859688174747164920354880078669851557285820452257238226209491735437679111185957244070400431416484905934154061672313572554701856928045626508880214546819366376095598963464262503435641989512619744179502993838118668888017951099927086051521973503772642598593564492257880238620754059513843792457261556709425298617964854568531822549957200140698383279018126700309101399130455647761062079204381413626654749794317823688885360313079782000873784614470907869895700697406100015869784065856937240390416163180612326353787290001833808020188755346419773349189719307548802744078681830312422894515329077336562588305678950048758107020019811231648892235363186527942432553151409905683380683943729918656532505501174840845881506102572267181050049313896304732834173631636201226448523714968873860427378676168549670144346256580879625061259297570500944691915017137988729374815316011988478965622399827317006007628492966899364229338386517166770264900258673427650017723099987785304009724640350402091009708261939482506532033991870661529324007749436818617572080127496396306047178871062125350515030174282097013078235903095284584282041113631742362128527863978968631458949228712137643439601645739772709498120378524021945398171794140591385357667141153609164961357170213418813080291802786470662607384904547491277968047896459143799116572744060861189311945199469170499887494175755595529484955011722674341558211371987258783810135904540299403900221307252467715337227027135755189806836650001962231500785847821467148890671501400319457756123366592363897268536108378661810705902365216627179494202251715513745598444696135879564380625710087769486811508359486498917305448423210285472631150724012609849236143209408014705521366865114761116904690450379481531904423725619074731479617352625643194709559276823948063651022434359408372950634669313800270829868321504943167253819278048771282574370813502280699367801907835314512484373640333695641682093727978182779238811067143995009051326453710683635277961438135454962570307601821731779446939620474272138392193317340048119715485199480487021173966629597198380838185735256947670784477052666865480523272281048183427871534065234354322547642264128218787505855326807421694350570455593321632288914516636600204786441805932939627643927471492848932955738274259696966502652207497767665263751379405144006681452776745602851881092215146452818918395804544576976278825998125605595530786305120513098153857713728942371175528787317891146277237224443737211407502757294619587043973378963486987633960403679982191837407719467118196880961226297978492781358355651707653659407138396353071227905972194137012501634203815512681496508621714083978461221967763067761750132393126919532552750256883630586906252746390792557450728527021296531853901111248450482513644746995178425294030944587507410264761196666137744496196110812078731344817003904402078472063806396180560058461922224859305524029879404675175170419510046222853398629440019936686667614729354634294367662069665332017324122814186077410527618057971235838114897096646766012477100365409979627790212698069904501905979546126156579868959134184934989393673960939113872260951350446511143644355938906888329204910510182942418224415742723142442348231774534213586128629003293211010304933072647079911250756667752023419676131773746166117872007595918717536916013831645308830404806117592302571881193631204637453730506139891822199628514880193569115668550506895754183962747667843774747810296110527604525305657316677562809859664238185778467447802641247751190764902288635956868497255166027109145756195770819946596260124959305785370816455255850827605870702513645346938352462347654717739402826672882580564559102320118902335033374783077569483625024683928072590483965650601373530952100069311534904806848426302206428045689532377405874387579917019766226294976902317246077297733574937184321610959966585244276521579670949142298677956902928237832693754162662413047710326930620883344005253666999316848249086003917012705208198856717170397455707459502781966735731365719830896452212629526811885889486373080944945305602478919264419388207445967077566822998540417869885116815198622616060475399506093124360592324670150942844936358453129817007779019896130949395709988900771239301208074457753167429423853341672202767441872588865760473462895689414413700427980065040206188060382927119242021182247683933375619473684918002132450832426844348581246262729730888350271283532477742966086824485750231865719029834992798816338758611090407441970547562661533679921800724193386391762899285972961185039341064811970010176091940000793414623837833792333447153014402162352272808325017668721256970717377435544657125114700113099347329874350562535051422521368010176433303633591351382608960780726167578715300051453695945521441283100964514949428460396945398000102960369869866183930489681568945883506192857967630102866657197978018689792432019552776672929441988413622100029107759084265308213910732077684390444632422706281841613835175896901739608149132620771692511431059378337014059552274346897961766681006404231400051913564701590000552905024754949271042782077292772226800616825652378132211579422215082393293791082890689728767827802815531043719497650462436899155891117820227690197203417463783711634629303080490038187905662814466739397662919922632799225039582540819478426928228485253108487360598520108396240697106736711756893296253931180395125877747201088536319661456502534484082956864315242911290184062454674419339827974906098407688189342410910627784034521080756671221341992366944557991647436215126738322551039394070140520865507867505787972575168301274743829284710748047208631703922454773501237707933711782747368312799618556640304948167830639582997429668543479945710966599974317213862588946876604629306817617068891582662065561928150654051786470570536539341966261866377140596934893700486402592125296462440995736330312876268464768034381964426000204559773040788365422080979224499257319384262733810329460923986081822731408871419320246224234146578847932963289690319199153486901383002813659519541049819816179445283389329823664825895340078995721123098810947475520694309138128922863353568664827672528800930482820918532725860833976362776403516341280456738078745381853494205941401032809681433880297875753577137777931528915762790687028390136973318187032777243143040234233306043246140148436014975369489557660469243156689440847312876272146879370717469043779409164755058252764638466902138044202544744479903934008685140517239459497392892685034319040320554270687520243304751241974442293177962882079501256419977133630367092066188703517581827215708958077573464561999674226808184592198115655386809262562240751519689413753976360027607869749624644533835998696937943529776330870373313081950458746636138719281719816200133046755990904792819612278597895922643032433331302072202126147041000489642999653886306586632386897164572013928052577555127437003233443532404561731643256400432452946583586560867741987825699722758575592815468420705942619294801371289302945652166751774283370738993518849056331737675910749449180073622029981630480205187558058700066408322240650418101473948665726920201426425793217828085397351669274343795082853380359894175006614527711699597932695260284943467796569773709311910210608375071239487960796267074755751659809250488525448147458526185717172565967525260815966987913248342618117003664766497597848616822725612408146224431592582685434687477967876252454526838073943362216089177747350018485679981751034692662641034408988893055018269718981759288397036576073485862880846165909854075627136270030985428121048323997011792721278481206359528337922673163527763666701983093058396082386710376407087433333190362023253613163858501150672747775793110902870488804087683032529875786059797046885919082158799073668581910158432498726660652138159420633506583973337950345142296680746396776843622121848740743754239837668228663918339751197409658843461587404040479590690980476591378450044434346847298291874592042432307213299301788569713858109530363382311742194851814240073462634315560872911718748102731480776742679931734729490560688549766392277254319948900611937326204117914653164392954948124866999443929859239788099537073459908736635269379201124541215643874384074604498691246885107342188075211616005696214537026114357077219635132772953385142323147963867667595439887472460183360157804772886249197697479988678469413266290142652996358425062967402069289749648866665367980291677626869883959758705872308300649345054671667609886245507429049871943200016494133169494325389080414556011250754015866564657715167951018898379235027236502181420467541234967989958182992270632026492018100056330178680535999336464089610134831675167310955716614812675884945567959577830606956047685380653483813970295135526248851558628546719331765532070133964526065633377650907195251427330863565815671849745378941819354315493638423288518676343082163918014263261447475848223433293634803670133843794784289715313346292053056294010316707053621877061772368330602314714993223337233272818770088880451129902817914208804960288993262413915924498263290090314010872429875591785326595725784049090059461427214653847322856913840456399275705480380929195553928545560529012529877461082555140853923383257471551464666694199538345479285088035403863867473403352778201226375229165020892286805233345132729112849446222996553836788805217625813583942257245437363424887913355594790176003470355758154962392634831789969326132814579346976173227814400467653774428648950818029479448795206357368314208271657690373163292434765571000134437071841978605689405259154668353961664092472887483087689172721642579501130936222751889257386694598201790622063456158282050976835880970712766558519681470311972833890081646121521287184331440195358685156409525118340692031247216811811195905133997417650048591444487726264234172918495406768755328491663252288262398170959614630687595238201240375023228376632698036510802557137633128924205969760202023192385053597812730825222823290827734336146940216997533279645764550327786667846262257531179689913070854431339834315418060696025035124550602786857524138433264840656880030019003582517155939462779704054610866783876119108697873835014742003610375615982675780095757128485491838431673042377833990420243174180247285211048729056731423148886219138983954175101501593454454974057211954127437326537721110166486392788312855227222903669530488474454699225577793550620125708806430180752185760056237240895339243548223082013309075689648374043636758417289152967882852095888072029361444131448858215649011485566105418574948201879552614970700248943151961492697517967399167408797751754174191286897503236015550510238166830001324337819450392073158580687785838477674126295438303617600471597943162719621286748510990585325393460020752604964956122071201060010154637098661030998915813893300235308831035434860708845030854646989075447858577614619751669653167334200356816960384813745080866699696299887119444399556482090879426766597395128359135544730308082158076094438910243226354955319370104197237798115493068703066926785162793423618306328230151167674188965804882269438590669783453608082918605409519288130564705382565747338157768273070350006906883690986297327346546955934476248231176790974554382417885037875679744943404397687404197946210384313528354012336287340360452971583897065152601226417135039964595374312215706459534339424070677714534231444126691907691556581781782198228928340150020503653856361143406134285182672451026698702561800818547130631150191633379626366476153305893574307357162061542150721217799304903201242169148954296275925359758635177373999856191763958805566356247507406215622110446650822888276706791613110289281023248558919537181817194761385878115355248680511558889307693204508028735995425526319927536546131226228754942783455532276149915465473947359823024045489396003466103023325067063758657391620886364847493711163225334109233345905407116430944701786403570063678286692452853680015517472244020492972586741909868676954043818257297227084068323943057372180944017495536507379889895491819654780548682146821725925029065535874897650080896512530944669066253273684149928844725646611298208625270188235861180237204498320345583576890676282428220303017667512202315951762138330486288802990258949023055820470242153830359991404837600050602614542486895082844590437172257923277784954606619419529699199366483060854820402431782068240703873155766023229755762626806917980147783248020892605199016961163128078164554064059457393183276272936740333518889923480511106777831898790382119987760834307885139222294636808860265027183038163825758948825950857826292381959996044299996274355507000866921095137324294141832394813466349322967717038050168433774055392175735007850360517411198430419119623199971914469190773704228185742504667488734778754709294416805959940881722579993925619952916970206533617478701320040192351125554195541218881724617466302664815212882093265486774244401896417025481326541543391884928475101972888039304610284699377602681971520699914151449810478464698683097291733074687943363374769901650020812365406918849028759943287837347014270600645138389987374969713045705963152330627823138693629102073480521900966063280576098111431918315260502064094344818181258358710770182197320981488710615244879248001424615719406866681339145373477892756409300611987799496926636782031974506971733814977649256479490360503654643806509092172116198782455601763851013949842776604229506288928307031540313225784591628489400203557564517672791796111991034644191380074374416417881541898335023333291319102859963739975506545808972195936373648073871520298379094532980360195747856164436372306581178267534687293444688876989651887483337938291913312391976187533048694543395141218860928795361469650107026274048111204705685366442123495587808724143981506224495925046720831035176376756353885602552791134714046033033325022277235818177344429089908946241133652980677618656347739148953761078887003446023889954522346605312623286881414575902083322481125494832613911496032499620847170574384180452586274832165334375143208502161519727465433200591073422983106489945881630984115134531408549948495216554622329451219344762442388469536764481490336128404771285754857469135847014134280826518230843227237688166770860752341008093020003919985125512371052138198961136091565099509864618452551381230344860199099661509584658849586448133564569919657184135937804518155923556180570421617345483014932000387104897970565535328790561357584448807669100674183462844944697355245956711629112924225214217555502314205115332101687317389914021447434115230072526134739319342044767420733801141721251427227257406559525736544071051946205396630583561378424893019639358145387589475413407181816248802677897451364688640477916581748827247905584059783871249618592766495972835149854763954585433391290671687924968033975720640812713474892073260469742617423653351238939627297692131421819557907701825198927408253409486470692712705274490191669011026702733539436171007976007452960424675381775161706982281816607926868008778313189219761208457301638101966432258221292719990335658309641825253127482748016263967015617218137616500679501929027301853404904244674701909672132617532324169958376401683028648793717460072612588247319501247050202969633380817242683264839294219114093324747370090464030371903706516028792248186437618019907305463111542848836049677606528249551282076794711109317907888241210214422050303746555707953258142647770554787570253171528679947923387056852454947084863979480213374638464900845295010946323502004028926467905404677882901319292694998700855114188401405425513392902132380971062903702447901784012334344088367588325575082205316532730653334021690129376033716984264417330462613842821101152106994291978562325026322624291901395769636751682873757071044125633245741491596350946938305001399500604280912343132285118186965268570834030832210218642704735216308250037319702157224527842606959933831491782444771193169206049707271583985497337363615323982504603699935379706534652766570824028481684059720147698108438641304338419776083587285085180261290821735150221844845996302436217860275599073733744618183362503461170612464495540274138575300481629120092792753988457823396593397944945426275299487561722908010130242614774099623418081461246777928612197750784172291142183836338688700512053900225698751491026755975726967283228653737406859498671010559963500367716525016533559045435226781210624780487018669204930652098098772337224757805432874363954726032249042410412519766980838368923232975474384189587959303506171085750638902831922698028024575207092889274758079812670562950846219200887617356583085105250791501130997470267754251646515456559171966750979407849826737629185826745509707961167649761489214493941454907716131297458592981954615165685340219813579509451653010984680142665301564445975092040516759502247782363311389847606939246513700851448313276337891793158839435894093875217452240222422010339096984012341195202238632714053839703017545357789129224440428955494921291970594764062259762321723879933656850848554161543840701947350392698517950349150439891395731776951061797885551630235189178351118319631282924136003649138343437681407501523515142806385583190231531116114328561786629425334334684695392963322133923470058070655413731742243731396180461120566560445850887895128909049273291429745409041287766668562012485513706549110533330357537936582474468611578832840290820697412817888892121170341498559944172060633778928809319737625396568251824523075374172496520781936221451121170859335975855137311859249278394246863113135555122939895734771053838880591487925399142635541423759485520464080341981286457859514379319516471575526591377804775151246273025533807580255760821078539189623419518522977940306191822518658401807007932767197223100643520733712951032248078538819552788565462068914883475225658739232809608892548387714535837089973324931873673705735932728534207108878033304631640940177189195531096044790366886663518978230217321789582131309185199352847146330962574696390305307769470303941780087966387873990559123625178089039384785762758769769807368007378698783154276698246241201378058475810959878297597778594966821937020063407498317809179956216102420713325721173482584903096764745897902755262070831087707907830092516533287154716281712736671486345584885141888023943028097267004782953108287240464885683720953399833669884545309782540737028883048379386208877196991597232541172972357858821451937282135076678402896649798850855251213891977273008723361473303107358796728079708140938768367207547915698365335707838310452366328553082508281129389244549784861501139060458100855694054110790069963074024960885926763963693847228129860724917574424842751236892265647969455127351391626820217573430630637343377939988753335740448195185369829386988724845875331956328077456299355476653977739123061477041875617362896434207815231198386297180393389260040677999974460940595160106985412373069359236593496937932201729494473198253990422370920630728484887611605920813052279646546016281845826137372532960547620312106225299975819443150776323375734594909571250318823380746433297042946075525891609513578959281851728623113010225401715405345173746856174156862051951664429157691536696827573744457641038308340926767800902035813499123404616467694035361045460123715096903565575261612509410939280287846907403536088105636284941879134246856858824766894674673950889010560211083811667886802768825144738053493241905857685606379462122978182206528840431233200102239359777733156760899253347741816993520291787501296792778038345001874651045622581578724646452295541076714225921694613522930778747425511223896487908690169065619105853227999086217133893789909274646994918193392709487503418072992624956310973396471348088316190996629085522362539617670425317707776254878173780526230826208488307120476380144658534119280022412280021745135042678838553041924951146294661027032402188841145806872956443992740607238162344849319566099944687879527915600218405894070025431611094377643481056898890164954656335922047460651407175236145970662572463628482256024917321133645898071749741656673669809139956947700707914724364215182122402960643801421449136272733989423335787818515644749568664496508087432867736106691645752923434468809413674344027001232099438195711885473072810560327431143474930507889625220296219983018524989327001667880447676910428566114972388141346018737280411719762276204788618843290381627379134968617415985717286727885943269294444133981916445395145570883208303250507168579105608689219313780969461046291982447382951612550928854049671689918844674170169245642308411068213833536004031087583844939320283919266843885676341402630211349851736489103080798327693742571406434334526230519979609495265687487286529872055199412592386773033908794614348965788426310274564338350569387800867817663346657944646653388383396553439670591182486417096732575947149347197985801168033629607185795366415198979193073510433163014977969756176055176158358456582267005011970422061273988394663332883436096487696008068710415687730909683966462959099000832404083231728140919659192440346912432177061608927151305500891652390256413383077594706478016206237130238467219351117683228439562242736725652528466754174906168461895875542381288484275056642012558019611949196376680634839653951077019557469603868690353630984667011331429576774824313262266466604874419911711163044571573247378880379051851956113534950608365595561077884390500112016431803353007047495133848535217078017521355362759631890042486254823376487813183251061278078231802448562431658585196144548053097187126054631930298562730792294884847966492856951887597858369213325851876285354902424990999601597525945295257868078445379981349850514301311173860049420169877801913695658337840874723884471412406889465148244243542148074907348089184810566291827722264486076915955247202303382507889279543050443142393885241479645102392091329020244903895856018634494710504965656101144833949606036624827744124004559025000823925433602551333418310658350715536450439307308015510840612956746022623805409233565108678405573822799433133156874404086404563151924113446128808314069216950487978561783099266566624603068151485727786995270951338029819399213958063325235907049617007210614673998893153086062523013030979798294079358765802764469092987535470993603029936454980828349742319655395552830265354884328895110830958584803155227301669578697795819203851591334535000963606940160141075917219654709896945998796866550291467227666157757272063806999650521982698196052370943091360111580586533180883678600067043768533575514730651827178128878969347358790382572883914162148947905555977060161666463765509196528716480195188932749633027112708575795692659107543334568491557782748470507854346383804884808657449219221745323456175228816808990855963879993767254147053286296822997098065872413003204172022682901295768987797080531971255946392398889777265811710559573082633740782260991077654422885283256616668967040149881189479761487991987899433452150939133643247667438302335372917528255142253693692426602041912129330119209775526897936976636051250822641823205345280859915178344244411675661337371177575589105084530026056042515913274134082675443541175889640240221635372879099087911765147550153740329238665124786393159708810727220442838360010811601757341096392238215098228056049186727561747239957665310381197842768482893012090239210455239147145201838673118853023233321786063450924246538768116566520083070144321559300162724223817391711944875214190405751960141220105431125915027235372959555247466481487986740653180281692339145328223111475400171587303796130248192285889186326229999112127807551809909575032828788184620060709218006544043503312414918088029371596716724649581336072038772429156762662498869154305497894804788645564106772738104819007116325566838050116953080966874352576372339407208565664242977215010015533904424839701788908334437570044244869108284548066704092666304458816479932903047140723719354007756900507084088945232992411994238260849521621747501025500287502538653884125539248438392333525834183191612245102735632780296125943318283029834472706463926693010507378405037294516994564785497109235106829445031374187070286768796358493974341818396855413383265176944409231182207384089072974302615483956856294455092815695608270205548010867727346671782509537917114062724110076369030827412095287458197134368107468584832785246255665463684013014803924987942438979304210756326106608925845059137525633929344050560611135158602640963378432838236559058796810485594583969965774455996129414611358016898750562729574251050987831146593573306421202037068731760079825277567193374631262068957618468350981012150629856046279345371556417609200751314013453774274973298848008413157413532356118732750336510489304405831711219578687597087273547336722776793354094632465403810814505881440719700702891010904480705700309097565968694272565141262253331441488934789352136331814301873902395011348304517850750290631462486056355442219869483778555742887026867845745293074378469851919262993421705642444958292270651501249789005803614146769094352477743722844124877828049907328961027445129806870286099217661331142681767545868763630452214187918667057362010509774412234028297430601867991725995331340528772662000261526220055944715748619491502389580399740915427950096835581681434893063432914939386120258271227373270934582774954265710977404048565255818081658575193576349054230770008552143252295789128277362751038268401947214404080454405334549458080551578647356939713348007608039869510642689659755773400961274365290108942377663197700801140637059124751661280386963750810343603947972847366745718470965547950987002132812112259634214918418630743223459291452374903010069332882938323168255886014163651162333717996959580831413924244817905120842508179590405664143290263296289712541079948916832067210313639982377852022409524039168051106761713805123055993248009421938877293204633898577943082683318195130027861668096789636512800332889155944074632283969822270997309303876092573807240418168420654972673985734796525432077561699852326029713125687427132751748658510722668627431044162558173094885481526866343830396951192668825151831989948869322032404425337505521330503922178632805451304327226596667123199745589396576495425320355760923648040150312362093372708047577451121750678088605687968676967409266586056609978472240211231982690505156478717283342496477068166868286497441945567182147282564529106112839355579673687201298816908436510247460953700099428153200026055597207646452062023917157354792156780281693288164364711183811826899618775703430850340969723352848419454037737979727992799173374210185006641568902401967072106783520188824126796514247254896606747066480260199059224193337046195105049006149680809128313900131850904521414305218254045403091861367381723321538825124932142446482407421342925149842081641478642115050957310291857238448511165382913048045523366607298914399266999448707089603634615222298211757241880094316691876208266982249045011105942149635640824093854077621501151894091670583102190801818988475101668735709968532802420967606057602044297781665930525798211092209019736509412869456501506449496297576912237974482870012633311005280805840744080563758406751585809666441624356633315183978298051529961376804873157253554155465968219799949891548647594517760221970853423110194153379837619570732430404042784642001294430703887509720477167242954645996275869973749861641066739753634114675020113805708046074836629339414264984408956413617528080341686993533438527413693809323522479335779455357667110830738286095301471740350178596339718477742770749029736276059380156725766826035737060409346178390763296405968966636594122342322494217169283939894379726323736276367375232694130328651035258530610932532108268394096944390135950242145353622043354606632940995380164413288207872339096412093841955579524181471260075014171174879404987980152092510581418802867114728923841482272811008126236308442017866528636079312498766261491375728902698271623505849042957950970262516932264114866772192424144033083226346279741476334684051262203698863075109221742343215046621227878535103541487815959328298669194496894618128555454202069288597118366472805354016624927144361272993395529285390030189667597873174455179552801897663981473295769622347369066775974224399117398790982549335550331390953489733534794343450126063867902468673694325630433384933126411062956379380635380642186423683751184004898658110333625956522191861154305480773471749955527386279983538933970057237606950061101879398295583624108586076234576189731623062383000730984612639396841995734478377504041247743426039751142587121922975603545893110919379025038043696911583481652819849015647416723943386877900363771592435430005980240446867694163896623401834827657391276892546600197907516041972656465393124309828474841724385395131207372726606391066182521590948527561068529914983924303541344194759270174232800829711526669694350142527722375055750551252290237685899401489061924564841070651899942947170256938920271390008954731847699488794610560761361798677402358458285225103544294281770028714773784571756569631554971198787646286187820182682974840357469504194481920613823563566983732854988497697105019192568809151229704168709914635318097854832802459846841103900491216045679813441479393392510718368144314914289359806834036047129286626166768253639140134270724502687082955828084384374989345062544526856194142212379134002578791125563369676133111770203561950061428640871433277881948433271420829906771201758837513589478932807329161631314992511649388293767354754274419456508155237898227673287119508675312457358475646214996765123160179290195116100468909847319446537231463575357512106381590871598414731834692593157227335509526050214342642302160203023393129924141799315424728890732655453398368107303586007870233595899065138899522219104920296913529132033737113689727223911600920277309745733372270172651470975972840342203548082345411560890977323408539400878345527007347781162604393756887268806202410584879891878793448469385264338003209842174134860451465617518698927101320765773714057703049385796813340008740289650540068752654663963890502161358258674276843054870128147997691002537938210484295066364874430940468030259205316710503960184762300659443823726148260656641041508220421713751264163520183344730385894696448317788427305968789789433026098474081162143253455481089430141358912244555482873713555699762753759347688670031311422209540845539498797714832832897319672910353976374382698902706394306604634141157961969105539296360050390385692175011388300271436958622014158572959659368908225844646015326378209643901654053159779305114455682703829210150903115037652274055014877624319910010170512180438692389636327577828539892333184569756100966587425722694365593115023962208053205383411979981264196119731868575686753811432236163810667111980131234025042259120970167372362752674731351158341636067527283413220178159686607546110072659884213436023549784197204065402294884736148375933212324592911125076344703835338120364038788508388464590706905231688699572710195604813375269665004893298257399394422672152929526102989095020168267462499741019656799298984869566235720229526686090104064043794178420262067806962534981113094684650579708012662967773361342112156027577556641581334494917041698329846566754949263164460734330074051086771782142739041364192518907069493737668035566596269589920737408315303001735123896310838869649985837439501581970934548956718117059948197966885292843366080951302144265220946847051938277620180221887486855910980701307027419797678685794819999570718258382257275072954975174855576240348541900852106089480401174590712195678199567158283289397367256674828531963306274227250277346910681419938164530541451689501544276552936478974341633696455813886114290156677617471814843062329830860526597428132271134244485034844532060482918992268819236172381045297145851398868496115045486391526346096868984502606604740967077353981018053249511437622465705006956056164213171013973005122463523327375365547098688206312526662722183144070984665243860732854504243492096302730527248743511666930286575633621630524555582789791845766459027564173070238548913678168660203451071678521241795127422704175495663136435328783887399432047835292139521359563803580247786053714074700129202222657079967386553508284525540385870994631235913399421476813461758687877955720611761691434445486361895986598069476805910589546293830172079767281595508034861627281697668693065663514173521994198193160446447035911463408080337957669181291800432178475085828308354648196048860162763667140392755778265366420729225267140020402491730873232673717618592199777458165466464598022767288935586182794930728840648187191717481753146771959498644688700273327433014563777008062143904701668054151435222274560148989546192471604548772550038089731919523863148433587854942337525670641651464146135595134725817464438868542153897432846259108582667394499035208230111944590802824264849454820337889865837238680504930966855228737961568908964255166110362644140952841017635964968541841980675663789334350234279709301194190600494995931413126297601378888390579443429365495224816243750660801810649688642958110585606890525959385177030000099773435208334526697446649789141088878483054207923855198711036900997460015448975287141762866861635326036537457324197959233249946771922838561459403694288422816549274049004622881390891767926302032563281344183236040029765530118521763348089063983997997202536474252429853317972170648403852673463720252962224745582721511582680714329764210755106874525800009903966507426627284107468863690896916499038387238275066374970543361199933694624411872060737100073562268338657949435955507172414887636717662693260056811962165890899460383599680518044075936086673745373475307939084504296925788010022220818686474574007712448556347644987254872791295893955200307989220370253965378387417246052708001742118399889404515778602079849441908458763620917087348876985854244864453716518674535796187093391255055126590064549703889160069599482704800621700782258243049798443807265027437304537786988505155950610818609888609473374481508948186728843397280456397883909907145217575794043609965422361581489621569934037510036708952792353127767273151467028340869671686356582460253674955459849501472805106933647275199064320799138775308652742546880302506503405106324537293709417596074023605669046559876276940773709087186881887535888585343168272339216465606924340920347691526058497118025420311587532017739762488367735916029695032973272071586999833994942485625969554109904959835886386443096585583196031342967143810628024270145567573636013684556688144967959728847900711728412892521750153485755034668946039974511224956798817471744114525942779002086097626557916440474982410385667239893696233810319847202760678590349307114662167047353234097989182601839478419996212135162050871591779318513729982349415684214218763131553511239742907731343700876008978695023389362929822078070504102738868670272809749444171775906785776301931750948397345489329754064188871146962687544233640760094474652481149173328144828038934567222963768082096250966188496077128717735541620707565678417203445929032699619476190711746048052146326185873683798077093774207503250608253022886618402759989065913465325793051623747983292209958583430298218938459851578056017470168399016387961634066743199213940997972774883369773053501241949280166831126061253254533746586284944637816229691705519262132688606833872689994162503389409276676207150490481230277299656350360084977736374932865850678854729885029421897761596686287504418547433589891932818211849676007449610934048582836105351846071082783214685636592148813960021455104842452455335771002781777245078641625778285565186022686458739794369006258137523386483451625145938864376669700403485646997654484227987093450831251455498244446687747169369640291979138750416158524995843031419560246831278956902299670399129402954547916056145060868963532498193718654697423092484273316741777775011550805066366173040239807050957505181776550388674888660118296056080409015288244769948539109905356687026760074382335169982267612170478701904599298942022152811183783814157562578485034922256734127183736942910566915061161363237958684359784044163511599366060176173759689259586955723838849817676630166649924512571667801456942507302102186982919540845341131020262588604306187324033306090803137545576619908514663842851139364005438308687514178948326749286681180415214541647628586590708458072349244766495159890216021758442941233827952196107601343065309485011481016410757854768804656285687285538083332203766455351744088477157211986151858724332004882658564282968683871317240197125958095848792387904623651266969500104254953637253922309448417109128262256772788336164695738941062496837619067059537411641975050366933145202159629537012564246592934013912431194996014889855720527134973906334378496375193360954194503050278239077661322114112150820537371673603250991273093588182529148878626461453979105742468618775910963483207418963531990458798152072748164646027110339552112624160801073295754121874358827731452121459383356068887413136631053394550012736665862066017690962216611443448960661086171214065512664351747332015249231473316959646319070575710031029144115953905462474181028227957082922461829042567112564562654255216729095464107393906560835608010628920717579770356568334245772945339041835677909867868395553385897937366367825177239937260443365637398131594080064264329809089342481207896722821248642941881357726831012418175038749138192125517836627538870465870333495809926637558021320400899533268398569034836676216382476475514239176721630342707047018462680824018040519236463326920253327733144840350939189782828244670719510519339957609354220968566014946082796342333089314976221452428047540039270605577774143715913230252279801965567031941281946592789597588961992945281631634256687595379680408930607146896273981486589665001240726582347882886047274217318385465114867199564387850663874779066912966544245150148623147478741848440733833815366824822621824422415082536890448169508439544560942800190566374317773827164453716148175378651611133501621504359437786918072026724842648188623400119637740095955079170372457325202005142081226059549730878419949662824288011315372430644448925272538086949837897192099119239945910816051496148392881215811667441653975106173972000528897347918871575902542997291138652945374696804440169795161033068647844422756389565702043048001486100339877477887671396220645145727677836916985222016068648519325344788752506926499188313976798197454203998086265263419478799789283257905723656266421557633032680753284761433922084394489635914300971694391601171482379599080912787522554174818373139182138038183600175880364186311610280331819427849374616674910655329759040292636917903284306163886872352745413765566819889653933090181143692337179231972444523646282721802676724005492284273114616656466128242311313036197276487212021904498895468377230784371369436721649280894620569491123645865576776588186872586859315308269041918743711371267658756742567443309000810560396311578718844120571200527350548471346659873446542740449374965541742085304705262827580572564338377520621150102013141456542105429550262041284102223735740705354358880163408887554163200386072248910312704297543784025916662343843999794226212766033022053169367584568303912515473987704526184115502854235975779833243942993747131869633888157846005255272660616060100920482217613657794447997885244710384554503881288786343560389187303331347044972528818292464597072227116043747141627358755304874861315608856604854852123276264783927263770865682218116937991944341658817826274208799156375409694353366536400792311767491930803257611991848291543492593004499539345123656400510882314361358740505316365399295252666262601035218545015562631923820758014679790870500827254607569620539399684773256689975325150320383391176163205092859792624832092485983415642440203132945628121101149508281586297820366713747466172308364671308621912430127780806884472788754830470186714674270907957557716351480028977761830960125939405372192594852350325808455289657959079526986202762939945557715844472827863822490828634758429714325070819984885548942510745242876408413716787991429446024977026054471663515768244054493838315770776100088191225239691521454456501288748415346212777798742099734904559391080318139062574603315986470929136579581241459165824870906259010738857869947611880532059943005576782793329626971974941117612577052289489000998951845874785351864886747396874335469436453551831035846209423066474078918868208430343344276477787630221045880180518858618281604159387945349006833096535521773772379347143028620010222562538055198545059549447153877770271639952438757033852540743892954066655149767621339758001762883438427186296358345094195554940171374848054416204273285745978521880963007868704219932349237190812512271307963374806467155254469925198225987177235402838464567507887834439606987812106763636116344365011856795942186615464315584723326387132937801875746420479077786183160603384541667295671218930759262807705501304566244290089558009363104716532753124054470127783975500800744412029045553574058300174083325614802983498860663440922787896732855624063347033027611094371281222308977616473966235705298243139607426748881348860915478853885940035855398370539338972258938624784014694698110248526729652233655655987706197372495466584821699140628644440940475524650358454827880619965266169267252142028735531035112203643297007377877594737013956245145039329056224502652430204803103241382707393998839637306209453888335491825837633757567347644919296406119974077570404478542616927409542587932734336189607848254811347236356039688406842629927121604421367218365842304951915682504644805039035727955082964558877989063280128607966110029599263803404503988095678073133418772094670570404975514037761776338446769194386998810771879960815455693632535160889369184568725061748918638991560824787871601169110423598681808849006357125499016802554993921150461949160193313461155395266251793780846700582131819858213314812538822248873870025385130574425604437855944865559324232789780709379593553789520717040731663210320682523102989802436220089110755453950333573161278213785350445842495033231330040341065230681478697072359446404208427207324149204795552703642090570511936448460461299766889126252005828262915659460509456368993440523762087366682766338381052055147867312259826428579397139693186737650098807973640774684434971400944842201926716438870316020805392634122065522227057072756202642796986902404508328986341991165426006070470006835990876142534750101576242074988744855888239502581861397697436908837431111437896925440480411734221599849886760863723072277905161888380831320028987785383215222312247969748512629773971936851922939764215294125945842921896129370161657313998445242583638224062516662631727369362196247364814186560535927686065420147374501599290109148150885696698708663150174042453868814733976848869395816794004065304786987369128778589836103454592909253938816432771216337396819633127597654711114737906234922919968559683003057664637593746603383799245114967703474858685039556191813277404184744975921900453220754031072237777014027487545696163556282508209860495607124452417768733584701169339940386229061846996047948752955465690188364946488861393768078410658377593161534167323594003563519374439517491782945045891423544000443190537049871307834386417828356539721856369370700365160605604244328737857585265066701595510281097544831394423009498608928820546090826177309174679540013442919313155736401833699348142625719434779524943567777378242605739234030602125585825192119208223967047802569069976162375690451390175549572726885338470674458316489108056924935586229957919667731560297257172953703794482147578896500831825641509321440662864919138180328424084101395343381763375431771337433127175027351430399339499516816383799240628042912703875976762382357391469520879056884616722812925878175128972070332462257286628130827619086154879457645435685047581906497740532342563990639463169837776119751629781537957471272260782826282089872005857379203136248737751872845126443399715609701355470366312304478624319904183263312948631123147359298940007690558948702596950318760765767095688977675752119964702510061216607717583462861586586808272993362782741600267336971597174924162088422019382500837862120433420486689943117494415512676750140901059241195044025694332119643898892184258368045332876917235020504882256419404162255266458760983356799519450997856787371159463598349527995581436073986198842216225250290122334478008012656650334437917654789699189146320350895952664103103315620554642989783604509898070226208728855539460990397018225258900491552033606786135634328959924259593830993457870100056595664468824444543713819362792407771215206820667482982609611971503802638982575179079056143428823815337090487096153351391513684716393345882782848753583237926779114196938962571115524529476992249306675928648999675917809097760413488722290497236452367742225664766687204274198564483865856936166947054955715903432915698893471812220315878487199640080129738402588677299965861318569507130776712989713355128844284881638610756254138544772070008031641326152649609488300207077166029920824038545346142855268968611009472885691873995370685006131127058647743998230653347752101929740871947950020412181992135237318688106177225629183444730242884694132379135911175618155473311411507541032579328118639508223548698973561629472833136983356212816201019340856963743969271538317634470441549979655600558516612140482876149034074212268246211591568451470668043766873361629719574099992968785395073628430388595693653476557474621327006325593561683855193664123222214284683705378736395689100223604992646685890341160683846724375947559920706037178254472761590605038135198864256458597214671477300655216133626648282424281257146110378168105544325152634120891558179025256602902315441436331351112876190729514709618312673861142790411583008980817563528882011020370694720117985490751843745663211641969410732406255915885525406751321397498817080792762233246025314628833084006843784370941820640904659603361705105977177854059381406509869879940184528186128298823253213141036423522692166464160523242267528349313296857743120181076535700328800350787435417791384667166811057674588566696876887758640072211754035010168130240074098059590486055908362772790143034891712612505721465922226169068698478175753649381319358335554643951081418232397671203880347699714305950443511397196421912348976652545479413936742887132074266472937810749298549543174103746293459636635739612917808722334362296367381659918777507560287692852284206374170631257203193290308898712352176919969033362983855670341453231106678797187474839563071968630694415044958093839174836390170710287466221285094416295198454969246766856008423074077598421370200367192807224670261849805623954475859749219394373402869368036993749280387138704189756590287216848464030357761234852920990170526072245111389249950481505717004638286705704951103911970505460810212458802774902612449981749921720517485627646351379267403594562863143664475438396830351680823643098876099926793174112839929536189091384112385313657842584049976874996546170870243143432808254452420077688920788000725762666691395700751830627619269834674207994259094981818762931226247058362526994780718039205160900002150235208831977953464813540717008582899979946407537837779343064825265268693126269813737022850627837688913078335876043930371371468307205380779508181121256316350470586139060745993288004707819679456487927155600093693679589044698345097228104026974910236133307140900203648655989350406811469704332659437033464545793192974125060419581159797816637982721326845921840164687958326495013034533681479304563110295977496988309782241941436009073746855730752139407209690184468825469175522898929009798366952052289844143496587129730209068279079662476681366807487276493662689032049523097334784178596893283167117817481944783171322574786655184751467115162239533386984241195072713105213573188950096948251000898726479521501362381015864348281762457831989647192345164853843036620248209941073922412814744856216897166432522341669928126002248497151176186182751835327909317048671367855316756937158036764599054639845486700664974027963409452345075255826005104824112398655729820873717183746142763945462750157930946263370168686289114327716775013642185276816185468011682320059841147423704908080241884131384935067400684837697376411398412183420372381954915801018322782997840412731607484534193886839585022230299401922845088999934112556458869281486344914125453376504808840892233808446488723657378661016116516130518239580269689396809557474169347699504095117206164113258170678767634935003736400650266033289976461891733818868388085026016713436886761400593565619345753330532599755733195445880277862330443959345187680222148897981436660297890669439823283915071139252992101575688100385594219073564635482144930634652907620181603495368172277796045724455153782391368910704417333152295526988541213987005627855865042634961850786684230343651203684259244423595055711135915301561559417340104063780565496926296074167642052352498857583282558023924716704919984113698508288487348980262982239146523792600959879209661403312156169566958574882667595340577794798335308104769183499541040901394195086619577273971640579049964380167734109783316010060589833234395554688705043388587501308645624974432407257991213181175349054136173191930278680026827717639731527759638481795137239532572775579851588520320128853102116131234902865623695089576389762266452540136409770164805660585851656257847365015465590538988750806112556903276454549504207550346346109359125541009488461255594115617255400217507555387540738691698731661512410583719248548011209944133677683039181016913473444574711221851392919656087947914043064484775372902782235948425181668776338523376789428297827309794557545764097524120897340449247090555303475368622880186038903125280125322996316651483632707239870145583758848909949825950789720796200688811589489059628815483940975385621531116444597960351922201737446315960805010775570466384531352884235809542631746557095259018804613690777316531684336246457315647369644346729142226551126690201698635125112861774923913984587981695364884797479929860285636056453552222578747130982348528439311579813609986881856625583935422451061460629237169762094394821073360468587024589834850638751868611817162954450660373630725548117752428256746803168233280335782800142545029126419921979527000737541697644974697012750118549356777614273743851011959062397550567572577337149297675531904977243740928615702425647851825032526222505769400467667981186019741005669445679528653309344355164830821067117417867363766030381657622462285241778318975346564912655900360197424124826365554452820074975521284098834417714933023718286474213821202952082818218604472853350643927933405370932806947605033228122185152391935190617357563097615972140155607705201804174457748417071872090886161110966534228424160884789233103902592456928810513624258749608958236282818167222429441079983526941350006987017164925300724390282004518097711320560752285461593829199824355867184000308548618536037061157468924318577239536643621854611019864975759402011141184184544137982834802241833816003273732740441243827341569333329268806951472137646467928916028899616914661772086343343650869533206153377928959036210279109184485195022615208962399985620183771609808664372200155604066578774487730736094758978532210392761191020093314115836308277648741302152614094170022928449358606782327383132648436920425510622759889314114539020550566723249315123468836830005122431074499523161899916020134197974177367662285812990201275125112195903330653676199219334599517466001267107822618243679693592270166140552655309997062311242429452429285905431820199290034224312199810141216129362686608269272883672371064200512101550900246754992966326912501073628941057571374525699775304954395241184450564804141042377240948862552247447290442363187713398959445723963791073311561059614801557772809982658225955575800166208158336135082707275869840629318957027396792654814947800068640288585799150245643642570398595097316623837591642073733780698730327954748012806099982562689568584700157247173429346537156945302606873506131901909370360494524692435112504647956847057209358795137146601810412756976894172491018354867517187979339989662511817322068549000462335080424856948199864991137248446756486474964920513592927330477604654290362483195276102860559285625369386635454386348290800211304067205385177373952069017012330792837228841591626723035838091198565213904488145456361689371619828544569533580925520334657806926017700353794352658216516985298285204138824237805331399559860764286364756230405118391403100997509171304407111477822272540074854345100183842582897876249333461273068637431253980306268281210156305879295208375445775706941489987522533751126951763183322740491746520293316306649469913732157471168377123953540506441733906204987162988222898212453512429674322648498715833962200279261927930767457138788776401459567883308472284036711005446310479996568620649396644358079631413431538393768288853329174471677907770720464912056423550965217932132145155598607433005698802292251728697670534150349587525256085461892727028685078519669334313702278191751282097374802599279926986907509112002045779673388379061688419025192469727162956043517099565887389588874285950327057442103785467248189930928319221743442584692908509530195593307608097103855367777448720992549030315790814585151398447302927129464437227826658918961378606511450452880534544648737693283992003682323174543196268993161924396859178806494346490179369325220691290829353615670377493752880254142586747876811264096140035771324119745238367621218667233233975397892567393090231593347538352048231047548469636235113343393351206887350568175663425234050097473513633505156457501828762354636244948663911248962127562267426778506333391102825641609555138417125419017329384510622324859625694121706438387385485530763877537548709555339579825922997875989906373666398799962730393787090663620683596547620312006622757387433524520540151055878419165782187482622427466747240234582440284145936921565142579332324632201293269867931419657015513452789841367924877504748609393837174594922299178282310952443422626426735800094868615629759672802594239116008563404414577927687498050812119145493183153558391238986574639332333906615799968225111501130190584463563525215473386054469115498141246563456329371212853551155947490068457262762698453617350372813467228895747795308767414047052421006838401740945230311791713308159436926357081205072753939934128679796930347409188718955043307593621141558306923959272270578255522562180169494631356358890846772734803975027004024467392915104033841725029179612929511049699884827884668189912445272979627279791038423961168648394572126359343371778746909580712085995742906222675137694838681457745895380039649526553824223331769430731926735366613039302310715193492913364570587364691881004939765551350182828933040965788806445758346506283824461522977144324266670713751474990609737754913646167096609735684700890289455699527543770456902358006757499549135148990798158922111185300592474544326586080979125444619886697961553338520499035658500355130844205483407126535196608886161815163977355648136828992103308409492512625454743518873214794222381132592031307787302475205045411238193853963951781708424535681164121252428732312246066202943593434209883131618057881686324198580277541342619264926522331748313230511989566360743066432008501915093716530400845816135516334837521346758277513361137068844570064643893806763404528112531861984273173183082356745172827177363041456229453657490108344140418228384420715121671622232454773083807781757454603469777898346914905468569193228006721191890633921351270775735833697739370274358805762009111818959513709603658804623073934905505263244840536034933794519977796680457775282563946735090281693186121626997515583665588156041060715537040841443836048868098530556945319674413334629858449035592376477393022329837122578440727310890233505190404668149310607349817985386824068909749717474388271978178829138659799599336636018990615859060310349273032451041402995462783420505471031640171440574328899115645484289623931159342378848756500616881385702240050249538830704591226032888584342320493436190838984608679746657564032435321943008623755135899584758960372276931126525391100790089789305187157624194611634699520984938826846083449110533031147956153236342504952827442790446408296603210652135292655799156448983735210583945022483593827571127830124773056490153489751950919049592886723830371391464711119323803221728820569516107532175843615867416872760524325084874008353836750894516449880304050086897860490080997816894935197056879561789713052886726161027815155962899539186467053598576060537965026196484827453297666436082808152130191783003703216323038806212528045976657116446746411028809656042641119369675146722192296116403889663253370422118691614932932827128956273207232540432938395845859100087698891585427991693339673186649594272322781165831197397727535586685162881367828692611764689200334468165060291622902953554634541912443971961886215300335026083755167734426510424272780350228804644888798676499958499202580185833694781760804197208380252658589193214103814666662806377735955517067735205542808841486239641681486583421003191065112367283046163273272059769646680933697601728170990083951023980718557259072128403895507242382367076855714777919166248848258573163072640965456115242550475376527034760781040845675795167787516445437149403326749451078691845569602834567232089116412882006563072800578930081263971224736465071545748740807938029591459945259908608955640982904362697164084575020508285384597791206502808099191241310967750270929879684950804759958168746070348804308833942280448467221671725469670823473640503312300973756401576453120451375044052003434211619894085451562459538284551840975684239689550896765512639520010602741220409604924584155332325960760987547631897253193572606092983725056024090318503184252501290679890766140856981901519723655056340326090881859402556952894673715019935473414979442819081557946842605176827263604286377433413470067474008692170812289013142954485280883198449481934357354191932334628580792755892772604216238590384522404727997371532756108118162588002452872962159900844259388528251894756793640360000279323157558859056090733390138316866931748345324679189771347563378224572173891254511351292316577120923881101214014706384085976762200905374795983668784716519113051109227071615337795324252330307013310938262332754724018245026474799876436499090683867443177575069923689287966660020414194927329970614330928472262025654755787410930664327139634209688666829597855364699593134066182983451063592717762694920604011680681247145709176149630795812164208151904147170761416317425217105139421438908130322159319757478613966262865855897676582133692738824574131198551565493415979207216946788118126482491451646253989914984639205374601239688930652219016214011247848734424064914905844138493997628549020623274223695507876304777690959124582033959182514076547637396710377840094293398497773379660998685308584541436002331570419718716153465754623171134436246273826117348228919471026844300330411900198125905568094336957308781505204027742448345664420311624989595081255724550789589755363936587891127278406197326081914956654602843527375582450338987690060372806536420595694282392679819724798561849074297110856620273365107486409279959932465765386734320734293258011746345991093198535117404811398535124251384575634094416652645731634353978656526609953644579419912343576065686181007102762774553948215035350102648091367114100244719231700318396238271153725517632331264877693998293459202230648726383005037827620017023883600276674101273523433643510197096362991077760279479072410917729233043818172998646084351400860102645044848790120292554777913091943250118745791923666600477279660076370558678492006433901424220078525624349013502273698361024286354708391653586087521881803513259865743402153332847596450563567142535716582431191057467222990216596840134877653735540738192492245716648235248370021881838153059726648899436308368870895844185902625219798979559074899990694610558195868074308238668627028164130897744972465318877114391767069893899269381054798785625611166269953311940982133654192048710362876655979690165314839930468638252777085103749307167166684840953748218978635540488133556494088118389429296350561354467322192150934633433795464692669945535566003157157812837478958919650888922498238541739896557752765302375820517086365596738887025582935043855420896241678589849707881558258941495954670101121010021750316327819578831626708344106130027197061360195396465204017405014181720986629400891079233691780392250427975808849611489779071039949939620608111026293326453751511576133540891069503130305889048510468814522717604410851761904994066391067348611873007700375944864469218356779901130866433130634890755190650868433585740985819959501430523970525657832646327302486474821398487775991727945395091444602485300844283845571294294097051127327581961934191735671181162637760506134185970540782176696602395662959635833900437269387630129931716255372590844171792291625770257062361652993780138797796791667962800437220580689082047143440568251820744199526113861320520106292926420415577005521907222549552713429669718439221031021135016338123868135999574127733174742983426633280363926670955092771128430257899377953135813118840589347595368024602393033808993155236659873974259085715892426502993791961211352556087584852544709944199907964425692006848355743364313463172484445214569327175210981491622538377364385483492334079014564805146627428213225380922872551094668054345994528847851242804541706354660747925006283250615473446199760239836067696107014558448469625773371818130126822252952540623648089313295326456087095726764287994386169400474765516578039058597413163377525342653019993931335522121345534434233867660181567457274157669261376938327560532999295806483247719649058196558552420954551482608676075360733575568529217294073784404987178362827066036630488299750212142341072808063173425663852231184132478909872728476005876026456487747285631176478080621693679550526803857373902326273297951695175414769113257327718839621099188519085884666692869616260673293608425919255824396150136200909918913962709569416642819944579468539922257961727282581391430462910628182779668199395967092253123960672934545055181123944275966856338274648310235176443458410955543905373051105865359360785394539789710778544568497649954740617682410138567633433145413550130715288708863963671647836035031878921910405500274754854491517484819115609204997385425800135938394006153625174745000567415767350798117609616279605499581876502574703763577755656013551793691336935745879105855102791037097117256644702548635652985630725293117682081375578417949297815210603044794561833094432063867986738429102885841598603788072972593806005981322597849261753736752014786013874881248872354746623701293570159426460091212513038748824598899187402361486539685435122625671866363228683557668882144165921323750496347711176234296636729872266776639622663261508938001461880868725203941003347845815316911507485349902063589069193991960528996632463151862031937661974493896286677947364539500346210670172374818805806367172247580757912131544539181066454299359724960596487090848802086809937868879742352756036161053297362652133617788576976568470248337396838337550560825415750139430012613424612449268946357363175072808461674482623763970891220935691067811724066630786619717243195159722978363184012966641866998538228038217246430628131707916611602629683220147857926848859354958608779532863056520780410315900598071887534248470000034529112981405191685817298571831068494774617186687477362845264474177192669627379078153444981780353064633258186791652887558115507392903427410465611211072975995828342594670291945638441971975176115342225390868618795009458211346030966178353332065506357448299669391495782428022928921955104875686649638976745000169767803292946300172760391465861657512396582694280712426933611111082996868056489692571922550351078134267765356537363734519476285887881699938698850965884318971949875683383549232921778907110917898301103607360473379744535528777824760460445425006632333455945155554271641196514992737311030312281502223389798662505900301410714409073393108983907711058942787453459323558545797172918632487444083164650078805098039678045751551315529656825881409658962733507293733438963818602945765486242857096187309900895350195654766505885860804511063289576237585406056339995635769585966245327595385701622220323366544778392334587136035729465835218930678602211809268720296971828552682367963249604220559036321408955616471099583906627667950140591185031291868051113330031845510718450476369833500199025458888504493015458254822809957003972112405908548264132779498704401708304747356400516139322937551876209296576091025262653348896747749666098825496651145954094092708837448000094892375552883794205459983227123950069120596596826165017671021282322486963902269553494995115390274260506437754861373092226288189543737907406287699610964253212953194673561432231643890696696836039521348811237699450545890233338063145858759381069810594872407402944115823209382675524801755785744690751698141650979337535756193365261804056652288808452126235908282781723697554233496366724789043701608212832629400350710663071883777570031019184030216815241676872845230116081527043288753476171751143657784198649837717420714463606522187308742549834602899976314322084050522020696638666125745921368818541558483370355312214837300883774752481070729950598141427252272658278466474542512625892791522595277449353143222400166926040348591815706906084073872946533065910981024698965128496982335178433026102624074952779179998367145488962023224024931581904121235697640447957636001247828800363789257826895669523111727633476485500084600585608300442688133378647100808514477728752309204481130751424089406977177185361780028481646215173263896193855966114816911127374318527629145701980090222193707733240599380181846258842859954310389443064169423037099620921440535798062455995002248660878901626550561952854354034573881673818729395479603842537388098074663607876244888736759055594536788743309625684195121062514244237909627734295429762224526115294732855196013046061329098026835353216381110315119048828242533793009579441389136465119440596824097577545779417579794335556572710318067802550269390914291189556473081163914388732027423122974515388041318874197099052699364487288141988700722971549760161950490903217115704267490153546976419387955780681700005272753524409566182215191509103869641900042457783270758835356368871688816849847960898401719907226691474387106609574588751817311122793635903160292118773096100917490958901626553846884628357051683378534310902444715906409436295234214046915685669597956281624474499531344766656860426694856491979410366506389947226154472727864197055348075416427788646425810091912646659933228107799269825349948792522615351465944797013475434939299084154454678334539058079899483323449852306452719766304442116061836489621611267424879572683842727786439470969498119039393325110897763245919565304579926885848594198530609971563601452757516816257195563069248122942140989019461916986763117826132123822865160600928071622341304403499202298055949140857046735688466582426057458876174349013715072759890330931065204425924728954408440066845399591528872371259580436026322936080571986746142592469980824138439976239146424022576764000289780025050722937990641268896675006992361728098115123442929957229522706428466612013462377965483633401060771264765181406876357081606173110036109729481050252452829807458254500930713255983284500705393128941902964310652857370512352326831376418355169209689606866641001170927876933374181986990264343353255201096116361577151946817162698179548624975615991014175154779927678286109216175290394155929981506833866719594121685859147754885968449264040084696292645121533774769340422095837688082707374321393696421192690674262305511684065317436481911385876148820272047295004329895457301452104240822166877390376728185277004835333983702339669288855998983371924824741790913267280206347828155298140669325608753974952118694111836452405510139024019735165416337802994672925833253783213598572057589524681832267099313174996203949451572674018411939462066980560721237880733139640612659195630655176885109631625192424302841062140407747044744822096356713702820253105520567356040597257588620640735694985117460453307207155619241881520022334179900533271165443514094186941489550947853936381693857804175982570448233719823968466702579072547547083793750428409951671679261369937243605344031292652349105994113716818271243403047079606457558610924364429114982668803973740265617288649720316463649829317879814409179041970148993076956032024664574262823011036155369790271097977371049416693240860805061919201276885850883763352828896647782488372163133302866115856671677507515590726099754648797877475748723111349425579159163881556816893083778483697153602997576346111486923895210421048597917247932848103935381494072347153542351552770622896310584023799607302325751468516790294789202238868010215777453463107965855989634228216984017198219915244686035342532505519518073728385433157047554193113147820960561701465733627030767515353098878668631343807814482119168416710101305460133945539783235617095306269883698421319693686195483308854080301925229289542932434686533881951804967100701466026113352698769373192894736895075273791715321030760205808364959490304558109184261963241570421323718070872639057297924589573336838450754949779130806831484830942538279485475376915810089989688270995181528221799383668088798296002884036392765646625363560787601119202069617816527851538944982177536209652401008106101419430886869458361415804868122781083217644704140558459134613241370752622190516192786796239257781123097505296780097570612740543377643980830388076943574100006904888665580835410507011722769720747671769305479101786853080285254284197629849364408054224856485916246509756569714280521029863844754984774920788385344183207572158885085068255181744210699949687333848990196820861799338052909368808696116998094646561858869042187045180027401053834294015857433644914340876512482214260101494240765297821418174478782145931836296007779362177147410365171974208176432122896325774838486561622562598388781515968942800155523124037159274288549631288426113271404541511357903736046285305329529472702375552128650073313954553592287737904396885955956335220079164732318066939703018098611163479635375614437934989612521706578544951507022827580582834351136116180848982636411525772264970259177819705751714509938402195434389642231426322065270685021142741343513991910748862517358908952665049897897150850555788194465648749673690549303250198534089526931150716567940633017561669842781170886335952286659477682672477816619001325859682261251153858159761371168030149310135493591109361685238819705656523661005381324463564754969634398776175274289317873135953685261309267208307230398018027451286111725218865411396714365152138990973635094232912469951537424440008566384154638395952352674833777619139775852651130264292369957501790996162665146987414822658463693031642616598039633282808052725902034747372306666909906156809290215285944079893120681117903431060682085511337224937406291025509123969729879483945971772981734632065406769324164713191692384577040073345643709055448178203227833686518433742633243868259600521646757099036408909247246756751236566766970847216676180454283306027299592575531312882279093128914910344276651841690536444514617122531844534159953514251961708977110872081841285359677788602296403556562542929130686756704459172888140894703163589951665310247088950670259382557797488895674383212664107315704554468123697154662619400228902724830949304705711997929855249882740296099485153235022048191818751554854369624626624519775967747610293293193160670271018561233236076162429521491733595151059670060944939727352415000954130515471963899131223629626039955192271518190663377609039199769238203785649331912536563064929292844870749542851209166339754790401314178231025635881078244320133345519297045505933749691242034979756525623356406322871161933386784509787317556300411343532438086911269759676991460846131732689658968406823549207909792807681366078295297471710561796385810485127116058129723749688269800066783135354903421705098006176828547032560224742833016594116703584397654368136788001700083373685939046973548567362248136162350677132072997847831330958450972060707635290758369985784121568510159813171352353447268042552003479293859330833303488160774106622398320064002725504465086248777757307860270682485400194316894045135311983892763876721510402821407699830769861150389446257657564585955138747123432198996802182211213744787273737005714606532457375972983524054495613175745562928764012494276218044166893404882062852726806098814233171194070140255739683401087989340088741018056653635487806237436779633330213464061508551143595161027044779191695504465605194281225385760742745674769765554375885284926425190583723018869360469810517536651338243540859249880776263072269688351617664486133199509024633903379742466441952454163450741168344350958162413848957485157169703263500633854590409510166136416295595120528341798827060634711816804296788318885386915369649218373889843267392795013411643480624758552091052260063773410822324779854708148780351044968090659642215294619944705963091818026322991563474740001909134406982842777238725429605707614055636995553482670822537140613352858215520232292785678331258501545650151151682601981266283760561708582717549848653602213070539579682311903587745124572299738019964785230912389612461861061775002161254000220795278060799103496431040432045110329373209768241492465379339905658515874903378386791266279676406088644699657884089574900267351700729932347306356068577454341439524477961592593743148518897719499178859589520930727684871824254098709566023520786980480941658531540604973118022989179670638670782473664987272547823768611907311385080659029166003943984574140509078584587234339371251015820357476495520035020455038536534973550144007052992632591598905552438838938581290978642752648491169697008650873968531115223158821451447701681659329820902031875681549123111382778284597402717201371734751297455756172122521903652397394261317487953344027074188681214406080429240740635012308207073222437316736847663252340624955918521702452371900941178048358830197407751289428233022957253651852901257842581395742696684816563841856477261006277117017956044401393129106177214415070881932565578591626815286691624403915071260497166495512204663189711479872764320031896363353483721888020427775742036092193148280721149271025838467015820448635517223122195721643556760125089476748569111440565286791476759962729592280495061744596036162060852442091073242246716257998171554012365610124589274199721330233859932885936119534292695820472056408474149407614175850478856491434705921763312643916054311947664326842558216168951627983761540157721554286547272668419706977944835706937511661885506305392048518653408674870366570753898326808361977410786367123083129604159041272655321789261021524296316608612067690087536589539697070688289008510396760525790281869254630720564316719136390356185820312467525542286561051278495130299627798353185675712629016195872617167578161514572053989343294044109918739385292948852425426189603786609257888233024771248751090690455329204527078262263816446422273060984481891140286567131381144991055372328105253645949246333862226410542804144170637570306916738879596877828391927112945777027640532761096917414489822885974529799627167540709258009443470359539653364778782110780182807344454910919143222532024783680676146353324693523043231129839746467269376079049890737217130345002814894081142372645213121623417275264712635701606107380550324198082679869621247421259916064589978342314471024961897256458554219028569729595506912570967591438036961090499140863495965405349806037531471133247597205831826825294333015437990247831007952406203162446611335473919415771354654495533485517026961027391510856244432689961944753343841116555269457795293046930448419667835644516984461780456258464990001718074550321775104661839382051896559771671797555956922318870943511087844631645331433485056966695740684335678760660534907618696548832147970260422340792389778465498175385002246797904504885868988998249615815035401887527604802005076501476480079247150464863377888086265669476794891952442218951610867682831500088017935701336624299252800893313675065891614429468974426650332795246226140314517753924325327170780967177490269579637425061100931120666264133982457331663843240978779006938367367613429337556465007731662005702002692451396002178371922020206028671113195864764956658603935296446820260484774419766613194766648656950068041715486425994229006399311179186810182220517896788998113675955521739464734996695724593012621442768447986870887259041727846573491516171902763560884145383752357722460492322482595911379645754373608072439562552138212609158092249579965670921204792760342625317044521779223137320230040597674642701926911349369476405209934826188947796840035289187404289551631203388300979136217084528203715862524084859044116052979186911760909127106502320999080931012264588861671409035874717296681201626016151193164526590262048353211252120814251242018743980748993454002584005511185227812748832800567728821469258702283994342455842914736373464643292614032035678147312506682691865652127854039988646999772083905874454704408754100791282356336855628696578735914455896080205414460120845721636907452468328622582806009263320588938594974339410530189525324748923990694150717093791961568842623604875420752598869474441235583490588901945057551629346976405579006685930258283426044268439114790695808169721724600841082661826827931471130821104915227175928855781607999612898934895717784366850694024282075284657624164490482399494396298118015856044950292033837765944373579042131265238519119115787755825610868529497260122815330336118544724117122220021896383717256156685244951070493182994084706175461527969163792932047089083518560729431267412712202179281707879896926653610980028449931868619409802310952522326841092087595345800489693358603117337557456999215247870202538666759701978831442361278152633611359040406653547332519877911509149469872541749779833307717351126394233499841382922980139206079619882783196049191643760804335748677764175805647030657089160841491592771013745752594274869992145597079926961635644355816754377313013256182691691424194404421924014348742858960155019140265613691833254830951151575956519031787193215607394947763880820080708726623228573630615296165456491401685838235777510227700033460947301591958351829423636090065763343065013495928100866335397879287774054328399552941042075948595486095892083051813041163441551811971469662307940786605488392000813432427861936300124637509540645904793666725389526571475680470500203955640272571076605382706837282897458938438330586272944123563507359818086876083313572739504803179149210184866805306583561515411049427135298541193098953658172542860491279104359191891466302772906826452103883568870170071654072457735220342371395367472871185079254859845709716066106271436044246783719656122344042079971657450851961494520166619923453107057099959051515874370195678533067924462931063572326885630309881270759831392908214293304861129130727853218512826340287771737840286886627272640859580019682167664066269387511318353070082643016418288940202994342060807291969083712048406230319450116969505480166771647027650524451571351306046329187364870262990569699219508651651857533822730029385022562620800198016630294075579971244031910442693249937130048183288279358812511245174763340725400361949040563892682137170085918152398220956488210419177483846661606400742134443406603247305644423501515415179372980801845077978689624359723036269662333611511490726450110421515437273777677027157568559739513318208647582991046505028927759171311974548933778427686370033024728679343853249915100150382209269123190455913951277214325905221689387437391015442560085168321713846171984504476741702398085226303898648190897782878699935705834320254930583476031015377452626210279089560542385182903057684783469521744618367694469654542955024563268073444842588832413596904435503093510273363712240779767721475595904617533068884116431866833406859152182346602285705737870153449058476063216270774096030327457172258434452374940531787589435678499258581326447026838465548314776502229263205740283134630896159709634973434348232193590629948908256035674598481324310860241645576822509897809655932773837220147519867149077987037704255942224225105501081550300124279043620485459523188694490998807563600262865049403854513758482425420538866573048141217943796293875281475644451617947991737799987962891809858941194571578556117230756563796785509437932670467696414143513673134659308562993910026722986459322135287541961073025507848530747443216066963722901772966054055860289820244366875173129615983057191600759276164938135487295897814617750205986965291097539182651570112876643595766502530623200712249560498404530099820114791412174540939332028606265920874412056671708055719912543731932741874464593528269341749756646475928075027012301656881720537324995648894848373609871804967333142842183257606077376539977936948451609492922631326787771667595951724565834121003664948940641898892777931568835643683417707462473850584845150849471196559301472668151795959129820104975769204628652120672407913012401046005210681115709051881255854508645727981721317406074067150348655539517551184602706548971804628207469852827103397461195784628786753275969813001246482201794789814946391556154046840296111139063029198957998646450224917000409457139720532564319827375076502490189943523424074263888668427091693598509704522531751082803813888621628187944743529184485559935432388036575499733042434347105753449231004833478781063691096643470511630424312630025421283919439884987447751381486975494188860760709746208042285814513093059065939080107559029880664885210018461570603077673858637560700403683906785720858912306210151477306778365608583133264504017882293793016147920651500341008900730507217964475367163035011985775138199101225380665667476052641350708669083217716485524604143867837554763331212074891649147743226345296708830751646466529321561923287250707511960487463341649932893763050919555630095028321808200109229959296503633748370168163311396266381713350944237741897973349040393989314442432969315816255865607231537423193250188004603656680333755621467197443698134894746154525830705488547068271217922050385805837807461447219056254408036088819841104808773257842779793793249527143095128638129924254705583029721994972165451352743336524438649539789163777108039394714813623120883022735590538782135007062511547818242496164126385322561188441542976447299345699902893348276489216880573587959070736798708851606896231156901825231296152763362219534737285960141257235382311869068079297258196735045931061026642530104766632342204239112302681571184525106659478437530191018819917356965167645645199571952578583354984183704454894057611229424333774033260222155657157842310909482103511936763093678316779733693684033110629222556528083421984933600724894791569633438008663714664623146639092959784047252876207994775904999164264676947761916215462409114330367164668546591914936549191665717664418499044551432011195790300259185971642632839799384500494756513097369032601142867436108213434656763382766368878024207385163109862464926718854824796685851245116456538183478601929980934720333976242362762352432813583160498411187440325585173435814742204732058740197787403499317633063588704735906003470729927690137276946502501640312690073588053986427607014817377982365091326236643516531810025803963831781020971585822518388841688067038909731552757217182790185551187799727004796665762578040764583509173373498381184945900869443647046536209873378756115088411064617615055476439616854329831828034774010131187933697731890834210685867559581216256070004225490533184408960908358800000564583630774227950232235826540179921882970075254603323843873242972214892633765307818039983200789125274669860523395838824874257783247021593301795183787144118573061693693659997079996500407455258555782054344938267194863298324201007238789181322423318275459494887974422738559008836019288219799496337935182809491577656109117648418797483642279228351404681382259657606200140243837918237792034755879248074637532447412556539665938079524281792230062934260047673947644218188303026552800959652825201231237960820287749046420645486495429510138843869526280326866497263414984996289182313560851345941328879675538955027995012774798996780012786260528932080101382488900827086015332407678917047674286053989199697080970149510198397201386891426450077589987154935444882892209118167609591950660069264085808343026585425855308273714222430284534698386310552294297376527197484515554121332809156753134681554331822538102332689764916741183364823834121497151184093420756730643713055497591259367747562110413608784422013993533649765513921555142424959276173546262493907813754296933743785716253044309833180512832955223232867600558590745085003534439789657738456190434871476654146772016766338995281082698555921332170218682332282738713941346152410315675738904003517373941161613190825678559052696863713477023273718776599525068675931337447581727403632641829173160877592312278644744016546457685490268883747487786581024497084024484566078268808466456170471641800022323634146432577908226890470282957582226489373801979390440991199597885886055674862430833327369181354815348761213677685762457479304968474243860013745403553226147473356841309090935948677845542181660362947493887164716694385495788492248941287223059869042883569224254564437069064422086733173619579226301079276563673357154037138957296065396435081206268785232423458366178177552430311022293224234764559071932617275363081950385856122078693503954939111886470718730177075925051313363093782116093600323754513789377460094587612735092959330720578178764405090502207372354790508782705133580531145098104048780446255590712752123165577200371194622355044120608067098687185890600414583119716296262003200476961459849844002083754286868614335411094344311527666702348492865790098210919579848484797121185590621020478399933753114106616191552295423668803139859063868611506974622931012677408774057372137629642809000898608415761658278766752277978530128335907417713915972068238760408997508641098158674529133809853306874471427942927447412548234811844727576656802478382432266348044780404052695137150868454320980700116752079107545572809643001160524527704490685398025685695122963272538957119231446278651809973166431364085775080420192002353782718823896255402598663507675528761777169695707183439730746406099387450712354564498986255703869349410436256817116198267525096377910021301586786623963384710187651507735297655328208405855570171394680293936902940772631610744447382329104052396675459096340106084074914861645019424593724006317135523578409979779335324836248698304909788447442799121220671389908027475658926479397058174435951149429589408061524338736948578934944727136044343720565170900276742659928267269772084757724195079755610775102296674407818318101229553048000328309854839396667604031100092831468049806799777473346951768717219793457148840290219020833070194436695577589123176869870050607562034653875567896512215294470968100342795888096980214564310013808511007235594797491159036176667509371393769949201505183808877216580646100645155695403320522103444310428397604644378124486763127229499055518287133638132427862081052681244361153959920184452678366082275277625394818376517840232615903295654211366265855505711167913512485464980459060933076722960031001132438326507255317757218009913359471583519717127458307698948578810345716946723308056131472568964096717070383914539281746768471395604723712045446285726780496862621362222042506633213363610864941504387187504545920523668098994349810909270844548942175022398976430276711605591589538458432367532089736444965643248834030047829432843866127193367309064203850430495310380455493730071286217184416599750634142412580235328174786523129483586111587829693531114261596354554896518591854634417692857172980074751076184406380997798969081894183386971713243437251883384652352070482502120155260982648388353059071044224762993497024592724073288371682672390677929511645122523775689479346382624614249905531651441335647565728220440479098307450603858013075045412611752976762283927605355230999913398712374162699643814578970043757470837691426582958938367444772605167848415966399922364950663819630573511632409599449943495047884114373395250361478209293360693050499153912274922813076488877386185912790738180401292117209207567706106066802157078318553676341814068901700888020681904448951468170846218473351048718080548267166703216027003358797871403303859691591906201248363335261054071795450132054514219052662704050906831779883593576899913790818438942888538453058032680828215813416086026563583041734299848348942611146127461710159237412622541277951036691704688579912185045764717390791879455424574033419599675318201526956951417796772105317738202920151690168093588423522528978725653974188315789067218074319910820225552150836997148891701209356270107766931186070485937705145554630166638336314879852476936726565812559109737400857508796474436061027969762975028155685830525876395111092858009525932217840482101789528259990494920805379684626760379703886528998677443775867829149789398185438499417428344704249166224250020620403037021383013427693167410207387813426374206750737814870328255340220923120932528339230667965770092000837031164934742409293828765750053964971646028175219549795252270181040732059639537807456048954954572353178647190558502416351763213730778199797640100200425699945605028895548148218991283890390854141267296722043956783772991292368833655399537438897149396239357342572726022498170692626491742699308030925397039543402455853601046417242064396454708575388041214670883159028239150907252028892157506790279272593455109136176968543559483280409565129928552807514959942715801756812790131937927967300489600371369926053704757919068047501537956450806395823333741230671709994609458924961396188626078547851596405435626329483050329652435117401335237932552785047541508702430616555541077739602169557277179177555125518949062631321379128148402983370044974419022881088292138393610076391595701127290374756014079862494298992936359216087440658699850393464576518462281275570689481239509807656872963535462694679560499092179665712749301970554534375428345381568069508639222824937690252895852271461702581318771358149121841187004833565841234378761258735160474169356691159916283354577539272375084233449792784978398078239048470505719233784346129800433882331119106044254405358825274017040196564247539687126352402834798855345134371854630045902215217295636471627649148256027034516884332266032306054174939166339112820004793501500146458578352682085591134607434050697744294934808468639847888692197256105824901456427207069663434017973400179751374560171095431778066084872640731559918706126902107849028408362845690096700194578146527806377141285955783822469220971561395153247205817558236096305718204255979442078461233850813676029486840624800046952475150872597720744114731387126134347006192895739411227568198774414306157834415546415113136692795115702100904185637053045016942431473842316015106777535012325868673179824312053636541599474633740807831853286148746495284579980439952704721635206544611174530340451711075412735106852740099271455490958084363296670431790169254176312751065624839839434937830496371727990988600500438546039876899341907405409221991917017625822120863672590959640868202866433356646582504479247584540985397139993515888167641293547902884127803779044361323914896628749037837649747226223329543087352633843270117681210240476667069170114683988340065210253178107544796364869103692795898738874509006802181891880134167903704134508210697388176119634050754586065957176598151958545260269612553537297978646873182411465005127721939656699512908421949400875314721910672203685773008470700657180973747896152392260199876847520801881752710551028527792981360354261629014308575855012885149449728672658638771248186161746327245969853481768748189394150872773298742914354600096396279204637531172311297441423510208095762899686174670096641690889749106559626874190165014845767875951259647594326085573659849979751337233001952655768379034256351942838212323961730069458339860130114166137948075900973386420041063304576938185703817569833164300988307545274961626897891628257112464926496419284299316220934488078062495176444144429370841956694482174289885601187897929446331328867526204189594128527263243067930877950219754545118766937364402757682872817733832474279184841402684890574436253634201978064488921116923306687810608540473211424357676474794258519145753177979337486577165662452146061835099373352875483232193938452853545907704803706288465270596245700179804600665239322998043415782263023955052557660579326936746419630749679723710002154299246564731748769393627056994548610600904997351483134611342458089101999226074074536980964418834599911265751352525642882449199988613869032439481124934892074278059414877672625583284667987173853285053365427335129843998337173332696362897736873230146558305599069882115951495984503758306317884540687279997116892668121415326798546872106775360536514114463760871566046504125655177904870001018119295858364433786838052848011946412233679290513438553886236925807221911539719198327407729530176107699585007988095164197049517537792981835429642993374426330026160430393195413766760781071105540098565337771765816509730460221846410436919828227507968556410930099083000038352540914475563634638325504176778892087580516554062170373117592343125657701883827324107530970368343559954920755416693594135689700363693472969736326446342383959158824644936306257866812366140265775295644525859603840261298862991316321155626734344899353907393503101933342699243513746179082913684953569721013624104555767974992189409344197249102769067817403175141346112457607192235213131148479734544290173903997232350976890907170360659237011139041344672935095256845022213060141981936880217286548671794821709920765538558373426480667036540272789184034443267392053193443190268177155327049244754017926439657861416176099101020746849297527542408543990430308286581155027909977577951183543149428768064096216963214695768900890403134785401964683797513801223244529526520862487274786332054621904189983659607010204956035404529933328052609827730648934845780210117201786568460820030456270563111704173618896126427456400386749502194140626617034325436091776606778753196698219366184683692650758571141108431963388529407277718339070534858758303985992636210374998890537641834245858753114953631118294127689562760172431719176928051819369467774594608434031236473183196743181562819826053999001852173179346816456420892641990909953418737513792278497022001383232430931497214217256185818019465095911131310081880272613205663602379691033713609498743979699667731193077006538913351890527944242018742318701376610906333953047591320385320926046241187050313439077654121974797538239893513475773729593486765923115407228251149724296790715680949783733790677277803701233164949382641150095862718451854676209287296737916345965008510173188503088537733791230166673245939773422099827856628283687036074481401150752755495320151091271109183641230159110526395197390463666675284659961965689013452038441011118735773270708462255995867365654882887524294133028533194873219777531832579038383428664923024673626879825586634492893499758934551202768762197946992003259382255938098401094062395313608401957030697032263015431603977676703962895125830480295445762608709476174352061148626348083638316972937984471235599493445329022394855344022377556312467868731818399808108804692420880268541533981238627598957520487394464180520999311728906938210166949851697565356136587609112863458917356175318279252300199569608185928196203054345662575863337682120176059664992422223447659223086784572969589124940505546323477196871933296749572384629417792835831030508824524627109501221368509688807700816310041559362119491699635802466279794995788639952240792201894512098618564670869788803105876156094397876216675084568450447524208931104197708444717262445949244137588179311627718816250439696888325466819643870526675996881528251696864048860911091410741640200146659065746655618201927683928520234400677626699463150864446241010965982708418664725769934855218420940522560203869976128337800553982102001105657670316208672113250134264328398141878778554598620400209950132873505235359243930367740142891449819796178629893832873160845110456248646472768008129528792094353127057430208208629299981992035661461233103066920353135743696580440724901217175419049285901990922735052850524826422229642146606325524483279764288133580462991611715384723227320892300971414488239553616922083052001554070529056404262715405829654685000584315246749221820208261639075275134129477110985324019132661160893228926895607309626025917174020911854786943827264412793272632638500721517710353615620070313015530223424763001245127855525517192018392773293461308608521219329473718352103728831564277232304509753295666168557690790613446787076454115273847835407039581978386234094992934761413074065201618840468064332644203317479201339582949505068170736198850885723229297080186947570712071197439699188002586289073832269125507843402917941245092012807895531931317586499485474890129976038093281533540490547122885207468894703362079861051346161017456798218014924661746896606367081339604077960395653159447914756825084786921998388731168170519115568868681768390577541962960801775851500551272939825111860623540738335876758087202561088450520142445795719919445390581916915598411428233311588532482986318615419220070989302515694579748499762330730130154696824637358658685964753831592764231410493530953774642625840025838772182913900817873064591227781751612266999463408685194645203493293940818596119307874410063894959046993323554482873391064949027512320437958723765609712696195865712320241746681630730260469248264003238558368968098455661187530732463072635191370340198192221357542009254419175530949661990820847505317632381556108095169693939875672750725604712821469759926731735510503685564865860768058796043451071760363567994066783324860465317008267956240760173967951574761059186782917958536534558555422833683694487908809101188729079327056141166156181284391718980661421607781891343327543379532104304721896097174993103485751006452400976809043939415822194059884496562055857039068951854545768532707023485361936473807258930343468347106955822875258290596836177171309005874036834110741164346610151608818690016326863064644897784400312340267154877124006498694546416421574615569190690493759032952836221760913669098404111563212772176939042832982746046216643898478030197951928172876310555691779278677242345063755901356429118640299828233556399886367034365831127651886524775817381832151880994915554420693654497142144975095298749450556892493783511920659461686107399938328027277548978959390329813571850854017005508077563583678050695174285530435209371526888703030924591693758957485800947975910986449631674130535218889038602509689506099247154225251756219383147854009233792704094802981058409553694220640298095672491718063607046049595440935965344753101879721457134656464963658759703769182934613786686873463068342289745619381211320957720348297418725258632128799562577481709793234062727878147407532198961979072932119617833898882074701752060238080153656278057955509522292987229396824209406058769946169508028762117315031159678276563814750126549851140289682563298259646572765065930858433306129538173808005298131920024192961515544994740480684843190328036050806624291935643874195655944997560454635371393326903437700673649803883058947816102406456526469352281004343091717976678735466119396691827562652285687389713137439318160964014111805619518860817951182847878472946450511205988710848929456434755391178199082812231657652671046115453784210513579736177053971824218339530374524747821953327635052426424798433785870591932866102136715413008678129580163100100704182486902263779045612578094845757767730119904291729684278772294673262483625411535879962259918174214290350687841300907487765349720265845228901550859408958750713009866312758475905076220331857214321987218410533032396752463397313229799207135298319008982040040473567017739551785935016039580955045320947961049943716903779302354755329187355991267440077859226214085615831714161852660604730159679227293357273857391963677124603391438104033896155518628493217113709034879899175676408917091970868666425098222952600939789022850651078755882824940752136213084167530790950775771544455632280218933014624259043778511318744863539204835479581909048147620180420848305387968086190860342046583868234186379972345879261306313182363095343601090509842739746395421745534917804578329654721974138538744734747017903743305759857133338196132723106912011170379079351428921856096396109969389438884066902051249715880755567886964724146582528525755727362931261866386125790793608361152161307125959019751972090527680001753086681583093107582145063042535290918325061024781822044084381256200194601471410946702473824953327719716009487160703479169839197413985710056657876856582748819238770723517791239462065318956008319297994985001612553992798840265388284068491513596445696735678420195544419160136820825054184958095433435309116925224378122147333887598753751055313146414505495896228548976939145729154581911679816099083188822901332428602242548200174200683321118634801272834685971942311664330028543133624000731801836841557557115908363779624058037741763362005016487226592601174120460883432188884811282639084493641737550733234301665280827510155944700063834931003127736056632094259647654914981014326143938333305668143584250890852783119531428528298832764559170134637343821736689914756266559764859665552980379886997104794701224950582255812343069119793507633467601572045917598978096197684626423603682970173645871415604859178220816327408126791432973196335561930031866800403967921704331465765472348747932465653884292054311632421129799904222909794450782417216068383006857772479433072940667341574535458230372087951716599021758923115936217763306278457029017357300469342711570749552765853159348944345106868270380210631752753777716458133482491573640117055121909516868089051544505810555704742469883705861567061911912849378686823599082220995674801772654912220350497854585776150315465744156129045245586687874902026376706278512849635796583930426473264572536911385531151966915634456723899902718596416393005642175149941374115959178812275124460528067901700442651768591169019432807615672316473135513378757000334800951716869686650589537147988829638583246624358907743608439231246650767056998045863232435428853382169684246929114649603800878125924758050148752005531953024024948487197198722484919641980971906667797234453641895419126776261843633331547485245642662726521675880397451149017439282757631601766700500581138198615097103160099001429902229979136890996147682524238021942829384345593278046221162385989047969590257094938812367617129452756310301190798992958470689855593020075080227475220568062978738473276740502601078992035218130232864661633563947836291057125199142157670127400179148294992513647682744047204524893062915978210595419353672649946763205376824050317324288778008202431090447418498166785430419759385147534168599748646577936221452571118301456487818198641495509559469178061547167074974081481977068795601944945008562967797292311205173038703990174157126922239246751253577253036174016229201659188238700862276121004985625159328228314899639110967028801521987153228002433788899022077697378325101791438731108594843577868756798919923902769086417439833070204566342842642905209289183171896222165445816776641342746165332209020241754013873433095528830217304317011708102198051421644948215254399048965817107790235838601740464779756132018730427088132089386866779657783205119250812878802934982155574253262199941084314882179180842324875643971927681767692536065359413768381074206415981459012838194396239398084271643148764976345943863981891727800417478463743105861727232796193218031892620844508720035730376375386692134721099255434482428464703997226454243980208142161655083231222743441033569558310320627744658207654198416331158526368995008328857805263078128843674280223747614258775843477056664021461911004207553284787578772892859200270876253710501662442521412763419731911228014110872792875865921329652062988616507611183512488029798360490796552130060236622435705204035132530726308122941866397003793655324210611623030336785450370997752899976455768116718320800334174708243427717582715010811307033953439848014320705803880691669673522207707159389192059631950320457731100544745281662012223138990225412683578743201972752470935798038381423802696994485770620771918429739356644909245859007087570337849532674579611273504520680643490017022009092454720960760558811644727646325321103548785910478300214955879385369853881369638150494148113454389990929476947288756902664397252281818984570998318252862433763488298429016719888938464767902925045475542994232018470034515785607248063800805118897166888993304835295336190181106492687337980308300739894269334217962330558844339448647312824435961576120465247603118073099043863781320196225889889215542621235300728037786722476352190383767054122977635244283282585792792643223571162461616995812760480042345979092866337098285141828438557926783650626965376053648716747778561745431417717556379282530863042216632464172909362485313946022919805745160842917938804264806946000705940907821099611019080476075237136255730436800490298920096742056256132310010811486445860834885602558232463333845412775430277093751723705453886453902672389046837631325287599851921076542257382607276932683164381501546101829485421946562443220191319627946475901092463807246119432196441416948213373189512819839633085928407703354019886676580381065012343856887845285460874383262013993413349912786628643220895909094199892973156418465921365681200658679636288896525713067034952120587302381266126567312599668997317466377918234635092154683078087113529875099944961568164581921885327712599892039779958418074055783252860560972421018044133576738013428885780953371638657865926567970200234986959852214687614755337852997249056178972485745104445083799806197507458234842000777744098124442693216343698425042860447908080246186213967681194620432061722534280091669967207440984603086082465953312212051224853462246333293752512612729996754124838670361878509249947887240040671814228209672062150331548285002304420483566325528049439259683428801747210628527768848027783727081018304006662713763498957683707438907824361764997477811572312127775857947941360494011554867001997291638135125989319238666881974505686707872782986445228383002039315922609179301688565774961517495402587953237829534350567034249209310333046558434334989767567481252090999357306822971658002276342983571194789172890914424695352900174172983581865865329816562114687525127169802596114770033349795478008827894280473301729243913484795626933504825788138624917597680444801626688869495467527728481187945405439690417934213367763565896932073421027964806678125995649573646858307104416150444703228149507688459986653816254932716605640386541970739850512963582824299670906790972659391676896192592714196465277699756537322633322300001003251236282896569921181770914088534360584515000593916328425904959508817374204583727666301912347956376844500225155281665168535581958102732627626669191610788280905899490549248617413386015058665118556197270527933500842261210712504924799156082232510155091931275933432342568012504385348955511748860644562167123027962629795692290613323749484270525458491587794505614382715473877325938579045372827447452932225532233723343815276228380184907538472160129790385940383201116194014731691668149742286840317389129614805082867964163270322497415667861055229505089874230240629965869139403727592596858199970492644763915117831703361242370689581107505074554528834926249309286791455981304928136595088347818528893019631844600125154785368042987173717496953290498532902369920850849921068976314730922329485930329206055274822670811140192640395581016686248193837348747734243484073190909388460464433416243336533176077895028850546649858316760875795461163409205710125083991864310417987043242618480753993446013781976972644420014558715587058118734926090629899263821750348202464326184729306202466663565221779158748094181079744843412341041543603068862938449620752532073710415740514984931306206226384317531767213093397823534583432268618124685302177349731332217968284911513063274484332170655565105638257885540514638131920379511245695970035165601827137666279786279026485525773544386477854389069581493976135338392790735211539599853355335542408389433109504559036739756948164280362666697306082447805094873276064482808009401775747404692768834812115435374973691036729288341419784511392028682224064619833533755340725882533432715206302929985328529561849322772985826117759247498508825177863112968611976034536826573062614638422142948772479649762721727199178522658083175734603037069915085731670891913152759887474464807371426428391354417322397657782054452043276887118469439824130462456716401450108164572541211937002164656135570948089785166815282586187740690024010017742512232556922459233198282496124422772293169361037049635376845179869534043840828063268499872754713548066124482755076896776982462969649175346149298831739553958896999404848142216714582005839162761252978788831526071801797834814144251693457276687082068663846400242912731144973824875079237198809916842758953283278457329007691371395069709611047845481704723585664944943118567767437182850471919879280130066571453696277868700788399459138476570333497871727059454079320174258648772496506920001663700008699359707708636103894791555964853169878180360242758306036575629402200228800663187107880793152552832638673065056050744304270166606628206324771183144306279594060659975725504488091188123524659852138290456680909164902695741143796204736863339082853259701428232277520269235781366714966380393440515491431860328702246100229932549449200279734708002581357523617971732660858686110983043264949887646364553101368862925738785038464441393139714017558564844387464941632517003575444260346855593389904253432274765261528489057644048983452096246620682297951464587635411521009310151160511162011603958932154680716806192626944103925011591153830721918011927358970076488459603796846034716726965787623614956069547929999588232240096986601818276802955039767597732910585252931453922830206923809630983413799227377422443358037157404720020961123577566297072740827021540788666882356316809793809030401102443306369805416742455816401300689254855551460420372249728402007718115926552732715063246352481296448165536984181095309025202287704085794312435938662823719823520968137765989953200036630242570078672566482903514377597256119832682496357462974652237936024079259854133259217575663538283501993965602883393453366214956908939310880043033299903848561380192106870027105514112106911357491306333304632292634194793655989965190141288520729210734177230316098419891706997691606249150849112212355258242241767696600359096746785897734820280711881467337350772085852731398677836687390961769815625154521406512762626372485465475846126866497244532826862781819634159114823844838269230526520283899972602761735912762974332330956226889877986285427591530706409529795348487304694683846453455073586798541572963478801542071457418764102534483511313437278276200575684249779557776837788120493586855645647959442916507575711629065376842535594837531411251675771729927356987848115060841399738499356739421417185647844366184106990755028282359474633931493963214886707986873219935264385589857482720004604152924751715178069717850106143148775868411136057359992871339897091769917965500897590119048385878284753038835709162523540008572094991404654338101250513553697189354745007959134053578850518716658098219720280690433801085466689794614922215258224826822972781426715005501256750512288720192487016772670465810118804714120214173505652723927134651134161323697724396292969213698155202582044408671242755453419565266341083405278282648221334232975141296817390758565549310825553513161093283141544125265141398856507858921794599415498022702466924328445865880687342911290648128253800147860419294348952773761043196417765734111032713195929451024573367279815119724591155833720547190976144054728722942646410517894259710090894199610088284140043064744274352065422120218030899147624333756882446721208802718050394755262504384066089178130920916661354307583515321191021752247537606223746576716214524419826941219491823222198066360938311184975223324378109410051686043054262735388685601707933466617201716721002681783145516614592822862583888876170549352815483951124418215477771814356155594581373352765663801649501232788763121600346402124438096757867444296125355767242732317380935796503714096116024315628064526434599539059058381888633982255867048542728790629057764315884437002302771892901849249899881685866612326211509309745515246310817551093026268053954581920878300193339776732748301886992999319322012909243414772030870789029593181193402198752008768514062225043400978486777618490153249157292380868065721586086781523769091860314530351132882445033834527641100481072716090838765439552700022162407740958063812411202189733868982362705863182377571332171652466634683811266949248092307522592583774901184115422333605894752427303002764644750501676650908036780935374298961949720230954168943018883896859919102064576840775693138449680793431665407949236066291640240761411890082363117362784460024803395637479552993636045027854106596014990672153220387208563505507959398387438907527371119653043964755597598513851807345217457137140240340722976998117548747717364598282569335502538807532822371082508211676858501494884329813065549535295050011649957701927727918996170622604402612104237243939747806453439973435115345916848720863449642385494118682152489677594937175928814339812014924493643115130572002385966171612112049971935176732699555702468727923225986935569589354810916397349615485021069029173669639724858528350929733268634181553860646659084034832780747458719738543447395985196622758315823304889431812293842366562978769165329230781468361853681306683492246211909763074623722717859341990076316748084718943211696639544317469946758258878047440124793407254846674064250681097404717988622649453086589765827202806373894365767152307706145495645819719367954740436473439685961533459523813528034200283848808817653164934480025036497658672162526092669775755399225260449273508805224422066588901853853405605444693695155808252266466705133689433783035716580048131144495717929604535302531195356400265786626102345255192667906057645422727864236866592921127941941732818549766313899362170444663889905925705663258185016306991936313544978663715434796661643932099802416218566249346665410457110834025968208986987466604147076725552863598709595609309554980806856122113572297463989173217780251776582912416818117814308035572544337674285500371421926949912493871963401503193835549623083448077325819737758974166950887514907512233985257704936108313394381876925439225865389197432357260813446496779559906696778039065820229347447341306963609639428722155442116682038117244072517562041930023630752702028352482042147144158789482924932933297427804319778720655491731406699442195594268931560012381644444725274344507226589707558252592507838235844918385415619811424672578291276285095421368975900743205252040076689874345262886486272811451011887955075005172015688289973031910480710474245976831958360324718608254639461415186076089079969587506698829948295211370396759247356117888886765318918389269260548264236811206606695158360049606483911908195448048803881938561338917781707950855815612499877205289285436535299293552711826454995382143078558426897005426952022550685088546791467323153686624065745716275048065392711985563456817684122920444444399502948939842960699126398799340858006972875282945299032425553812022473199834960103715940984490031346320813103568432663443663535060482260833784355360998973770355395646952871475379945481280339285885496054983135079410711323313550359798505996426633579178242596123376121841312973442143255175842803715706186496249203256877336801044783218344943929118557348903856433786749033301294013766396410626571574779020386982140633873640242596778802316814109086166570989741697974647866880759350350966998250658773212592694300544740013300121679546446678093599403699826058215823467438936715939394273446583617374062424739493610583770873578674884493282884856868977427912691543317820964877567173005460033873144898115936119976772417600568219558258470362996656296748147919212577829219963940020049366804968445711699073221520308958852876242043654301223852328810780300832195968897734199503084600566151374668477917744871228790650132038356138769123510526782547067286281736262330013977152615559721374142828258980298238219113910052339929300881583605278671287269884635496985217354737917016483218592973967041632256017640248187829893313754732785142115740236399520789970346184851633415871436129719582519375199454503068994172618416125026402547040846149296706694150148568222030719162143123527599588563422462239144234227286881797049683297174857129973084054918457414025598467231438245966024702897996774908577117653466572583353809419196526379135537282767120914278985132822403323031229994411797059355216976343486275536432202611751299974684584035190547601373630793017140787749833159158093370254479254749694042988929737296426635130683077785547690170653312859486769965673406989182711584209470455421300465994967492901524475171704885823059886219248709583232042975105840183956751182278080641684567845699081990778184028197314183789341372102545883286560985701050019370395555638907893972835418742466078854863452707933835571642359968015497491478212979316598592448301392664029758212047746264780359045309571810290193835517673214156506387411982238737813633948185246021900772182325955895852480782827675135888618212670052160441707158329228944299235533963085752671773155153287123502000438507531937490879256465326282666538012384510724169535943576251682575988668383186996428011446579862184601852145879368535184414407091315599273068682093164588797861622396970709571487492545671838011629592034324119468187864340404842470345274813362864062109910437891602376357525765912822022161012354092847999692981343227306566708387894258377678649242415664662311622805280693905170542998220867760523324121055636349474952763138711230897039884716820620259870699149631823826458431553625041323519212071810618808209464338985820584768171868334609639479548995486276656112717809263650165861845193645391260950876212012919272454227229170312267863027087119313811179845474166815952518237948008227404548481628449537224103561355553758584450621535493272734468113701635837348427519289110376036687639623795515090757883308201831110377318313926766704659852016502353783741373006864153258780898375967954584093746271047263534788281654680224361651426550294492212244367893871420462053121799169995895094475394794430430450609921104512035892712352893077944321798449632274257300454210124838556167068093137462337250062694137126985558973998860414077198103060636659757438618753554347526112410188728741199037195795572545408327533364469951373137186137802088200432459183068847898258031073390194933819877057682900040203687280252574175671964781335530377443400631069406702253523105285861841448379846317238409382208258932900497203555862867517059824606211885261996506676555038776898575025745307627851991436861640174565999419203992034448121001657212152626840419614775435372099768640239014214367540620965444690535019022243776948646343687749005454894212935123536126195827429488483767703903839948041188676378105687578997778012070472539189667756218640186468571204457966041127857553862491881955693786471518514434787227625856260236359326136886439036573945128993223923884002508653277562188125481275262797681791186563396328235717854733352886506901060815904000931468883104405952409341335326341885005167267061426452019356821183827650239678642879861270106027698223987197056714849232933875561257328103485537056008542684237871921255210781026720050238121588227932758415428452652111247919643498190729891690167896926741157065774326341278121730115882697558923238079768827929584105498081708463979595894304404258790402202772977508211155167186468013421934201571786940260637680996305484330801010178199731043835895740898021349725484779638304953378242680623600214406163211150842696801897500637870970673065542839360526661545570697364234462396809730052559576198367129952214635883655775163419799677260989338776284718157226907822404498277195781992362391044176308824417865469092444875203496645592916259273117691378450464865155109317349217580039453891760048079086150439095814535535101419106960805495909505601195404128500828289357272854044437175589282286817281993194914531927876861584253623773386314280303076145553044641183110658622664307316966945334110230933032362344795992472602410197134515610204068683867412734352883733760256272016330529389907258626486556380737350730389820399758451138725934580684807979629115693918415467853887111900955061553820377050993431336106925068852951641369047634476406760934596264048108947993681807747605278261521309141897037633085895066713969675409568473996746374560130281653926028471331912113773340853741084624930783650169705814736449511609784438802015868416362077018578794561336769112782237166524783836416480755831761333044893956601187899709987657898247177445068229711175511935134127569468030539415867377786966594087473366222476015416533288261823086416808450901256111985531283059439606272812809364077017666411719231101716305013100377813326722070877997912275844231554663578565619513245855936631176172193143595664433850639432385575058196074596617365209824392351936166867402323435090376652671998814077460692021896573673395192672390120795705675623611139369702574045722149262720332232100026577902992793461444122822349921084327513657654789360603334394403252208227890596470409851029783949253806761276277665753851479732059976762571728492493765820682898259952240474464841737533401695226908097467093918116183294973953897453456651454742723374845946988077291587507247040423311513014245952912234678334129173682946672207661428706876478926793356495295170002904805869174299963944345315741579454165427878361495711765946940148543321347314123221462499074686122829148990294562807258061860848868608013027436755704875182079408553982792252492206109451190951338424618535697636877729139799568240530757030414326354207520499523078733150227739302585890667298917218769348974540160197826637961245495234460103782575699642033569450531475236708080183308975887798872147151597238347314692905052228671936783606326022629966063027562006729772290587988441358509491959984152774063481046292360309840029981198285913163030914691160928349642337360885141646286078051541481844704862641987483429842839971889222534395504673112814831882880302246711992419725008131147959594646837203755506302470194606317838405570885739881734491776447109488366022409309746190761787081007549661656794365794265504367356129137607177969808761831876837227421797323767765801169850148359995774797085701225562199684071494102247453784219117142712506376915135390482958987605174474045220898147023156615796879750772355628994073224687246501657890184579796655758061768766858995961810165283144084902274948345377487706180319195323566199080368944385731236229968893017155079807627387439512456367730325837899512628434373218057599875719707319793942877037728982620543614284921490067655097338007927939060615810439923298654325048903160141889405964705559028202528400217888570939967177507313614060843796572614564372143597083811077647830874901640942769293411697762541352274702297550508470962543668184629166894329672270977748000160298224287048982590434055061348418204065709867785581232937981810512197763991284824682551077026312204193350928621628753481292096782836896327403309563903215627671554280054672774491874145976334305503652862070055930356732131664483572280728159470154403446378820935211687141919630537969889523264495352352384998006991799966725500979588755958873413480862484022957901494745310548120917462365796080324639442878436392728931242686326559866752037222168110404333226263409024615882675257095850127499943932745314897908720129157374616468005565622219806464675690162953893273421612831349559175770379390997912146807505075488728267112163070000584426438484906607039670856863006957614914537348375348196023204460858294115453284992121955939767183510812736038451460834985065417567599492187587751154617347144794462752460583344892059097025372469753764197460046898562183946251058850504335609299401919203875273071551587917043765640797285886920804471655650077231449234538870089721885114543832033435295495106849825398807230888111641518085081176307187378199284114332839005353427864562773406311184360546449527874982772765606890490975339647650230003598159140503014450349110821901309278414089533286988671305814139976673606673682567443781289065093523530298535948499224402464723216646750931740439783609988471484232684893108679633662487357957800706760091791445567271328552759053813807937183306436484360273144247950382188985786640803684221732250953585140600702575617870571793793876316190906576108912714689603691672003842814981847563459457877261357142482772421350737057343210766673863936457883384889349803686648596841391864375741610001712337834406401398633398843106935029919242076899611545280941780818181753355508421498502009346532809862602004367671738195372441016478230504872497887890681013555678756663407470171763974815507518703087994307137546684182382165155528409976256555070558009044640006111132591125685437523119124951300896423479732188609921944874060508325532702798580509154494501325457815446179596533519237459004010569697364467729669410026646887447185185783538507320879170342909216554809860070040661973798787819763621885055072589804166025647472271224786791709277858399822687143459637811043221582654921840089609794749226989690523682799681894938629458799712914684320316265329753644161023615158144073046463802879561173348532841864401491577701495447883291701175222096108574416118555043109965946367272932472360464605025599008646985656330679230372787955022909851578670103176607035926699083642186413182538501841995826309081162225371553662421412069601635055186351149363675503298555278600820125791370844101495837021803598904330398614236999513112097181197632231188989779928981850210209081082079135731275693942281195311062284573151700203960238668600660547874297675879739714850944871717362703475987305149217615918728279367529404031742210182927712569964087849911301405160924456409992547008155456598035920633716688311906948765782692214831869119914887477691218851947095487004443739234116299313551893909073620153735311787712113521637957022858386885865606286135153904059146575330150283839696184945235948673615288549947903388212202166864231433040115138192686419334902006541232430519838374306296166668180975469788331522769447108602886296683211777578568263185949326636103090839234062760875437899005653170879201214691044494829092259471194643969069102171708084008576401791198481324026510799365615662579547750991610417574947577531862459833807335472663029106916750829604252994316996648302680727116111198651055449395172022883621537088272686869171305413483339263290936981993212296929179999001728503221499957437016310895257688169310265474424546868129768155156079680975025943870320302261401251471662753441661016828239877771595168360738863039827784070443980803098512761747069521234274144156807114076917474641453943036624501038450159048590766295714390671848970566268045132687451238355053064366169532327384271639923171345651360592509540924407459838297472085548525775841619057677449118070023893390464666020478198083864402489739088363016913054857224339280074277850504272269417807916632721730849773023186149913314972557601643588568254935419032758974725390260360848426805970416298859798715225029349312037286745502358391953161950105337423407987639916261751246460569461938356274477250974387117234826151324626127188272221682942716271673425436018000104549471321864167793199365463963044212387291558258538353764212449712728410140571570233820386988203424794085795993819914813464002782592840964726191168721195090674282926668354548972320418239585249609743477090820738100910045494082858188034402443859806564447842474120150337225551687435214257926038331550343022052286744955999430445213568533105503898096591156776135436451916746475331153282380659474698370231785659255795819839350788882411044520699261340669278241259383601358354792041696812967409629073750441546872010731837781764289140652268712082602017403175320508080846251977535945306726711977630569292909014711730364985988696482564527118796794616956528303287156918366202640182850272121173907974242532025551031349007821470857806557224445546910394057203251230781408014867869581833455860302903495744512484287404314928941434276241006678462224625811078274788486402315406025364451664041014766676640136370194005537639026709121707870337971553197302477536780965526888171421975865316599744432079134047428434858612934222770343163161154125347694893292568912519832156389562589999748075864356149488974790230189039066037514480801678636283428380383414161440274456086312517727950893001534369472425505590883565885806327686443469731295171586321060997425152768134797629543033436110461783263900666838138897714683472450003226044674093623865756946667744045403067236998833326357899251054939476498725803271492700708995486308881247694216664595431514657091713562149868615989135169223156318466450558269505503320137192241842286451201500473400771760048949507289432747940840576041381392967531652435448408985655625275898006827098201619675746420474465923498609163292003429675554286451911330202620651994925372196280642072072601159184649457086589813077135712906593054921860497901583475545295653939266877741474724315250308142132977930454504111832865492714767569855208504258290080409931526838826734928855504866145315076149744583551694367239718713284655818356739237158290117054963324399165148356696790973400656757949956589037350291708757704023023747292124773450187656011438290910683179282832973814217883645157029158985824709299579562823084241063376752312657052807874196588254904896607423188317829978859242776832333038244512024740869299776110534688239641543005606264759423421077573687429955008576020435547307042151250474405103827222959224574847769953390512387451205595667871898145003351746361155060255022457376500249139395156811446224459035183176202720190866819905998327913964552250117263235508966953498856415537935621277790056200150740069333104351978341358584238600125685663101163955073718042942119490961851852380366403775387991017629351595173714301180372956453165358182673553161162271627213873648881320219265130797429780848265094961722714388455760350286659360249438777166807446259844677182012281909822295217996399709452696966802656046880658243159448515154516276561379431676958103867514109962096058427661723352600259545028293252838812487322335690266392780785380036803916557697088918273244622532725582106915122221549451311996027911245625060511309455794015382850978801649903486391565331736231580968538739875256682181977832668535197688591324977279005459832755685821405710043979405252993712090813577622996097906593853170108465430195230204713649857595992053658558882989812836446989256799866116243982298626518255004051578066731242546141036493664217579033802483220430543048709775581658422666839973988624481252555109164274015601723322403069564005803476250010112621559143743083308568272027537480058472030351901308731423736530958340633245847048049257280162376541443096601829381450879279617254632172846931629025792179324522358746184068420505623222628591406524627704397034572325319342954343481391456704578376880640830402544549854116067117935518353904475441702977866940003894802306411501547789811126553602454405434847577786539048699278793722867883606015164619027320940949410678935386760086265037517791261167134119620084745167598094306444645364758710263120673882066703133192613438257910416382067869843235038377591928256016830662438463255399296147292275590471047426052339744718900525073587838211096048063571855684891295262804750982432663237613343687374810820437341482646711967530680577560942696585414693957130799475167139992176957335939533648077406021983268121510056655382582743029075318874765313833913632775550913288436482128339368271114137543601154241690819969009255271717796554305271303008970077929988813715127135430665502813332467274400603131414565101822212925163893186976973504438849084902417078305495122531456767498604680630685582780950154291249902603728165136018611021744631361515256724156626572978024323886230694402120416702534309377801155507946395566971761066189914832070954629793758911217588107761780556960330164413553317010656219194415860610325645803345429402514966509238851609617954440293178687698325618306690563836734530400617033347899764461013089958053675456132690507887794581702226550510898107099370078584376115547095771376237753402906402220109642547349568983295735229980944756319363691178640410658323236883877903339567420161198581491967732626247054658738300324862817276781230105786941388563283879115043211802922661292525254148492051063376221266903199540431342481183985826217322462950401215479310406069763396247064405364325436522377890611300858905211851407995350163047708091177144795523415213391873170845595846848936793941513832785586292759200641172409803408496282028298752338468378219443625560441203315314940390307272774531186786888702186823819429017669050197494573277454754922776796607904063977850669577020888916905755200765058796557463003746413227183472886424922318370591633516433437658194858155705462855800499925409926290898393507098734129124243925626966385799264877737853879679913038289518129626627909193991709278839496447109161885514198988476182361696738902961340188569453674045331055306522677939277884637013305454074485544577198423952131249465244131597834475942352440857996490161218993636502247939324544627638847003115249723818761883945124640599041245380935124119775329165137063465082795366285235855282627358352218593766592295698949311610386600059790422107327727895799293399281901496415584435116994115543180920953895440765483275256450180070177561857917800173087085800219603445256654235553769267109211596195019112774816728964739073687465170429978750636660757772322414132824967825729530454011322424961549581209682238182965450599987175270138173116846005287316045440195645134301105942906414053592151114742153373880628270484912477009653030474211229629530474065493524268301175080530604804375643876748671395863953450247151750493735407282050528172190883576221030904575970912443959948841618167016099852267198968248568966878652348407171989578383443732325873681946490448543926195646046010887141115412137313925056355546570236371592344710300238552634227703670922549411244045598122682869746330904215457472313996593931288373321923842234128887816310900265945548922400289264412458049144123421835161411775993546497798940016399185447533132716852968581224046643772482883069003302135794066899645611617803304003890621512830595813689031804128221330795707566782375997539726182575705205477528539996299079508448247080604937880466940746990070874020162457138957497824689282651789550975312633539001837948300796597187704042239107920724165147117321210761033305164109546329288512031375549636156581707870291375410745911720412614269717684458396491119096899086967059649736548737976444128003753410416447231807447387482206479831348177753509908978769536677325008830923521206044906334913124422484682078712559557450943057089506387140342164419317448161896974772966763664217965997094669856855643311720274195039931038821780285950228269071328132829284086098992130215014880072645073929775495016532048890528343038716632449661955416161998627745033427702708415019726363263598738348271792829224447120283678583865957241608155162120053750408281325566047747035725931165183909857327678040755009024746193175935041157546317084707858349501020260566891665292763003688827618119624044431793745824361712218252436888758968630002502392508123124745422372517923680495378433578960492331587300938243856454533845321978832586092003388887379262243190211542630802594727051766561905708470319588816005478209733134056539865539512868075126794468448397899607489177611895941205264763724460377557096134719944530114867134779563068273140957062941303872550552306099064818737490622115463140939049677110815700131642333563033722207233103855334076595354070140664784008268321699119032903815898829517437952106729074913712869229858436633838813618400023555289161458633772712256569413618965933406061940345697353873356284476972763578380411047234259920143725462989195200841835595845713023165302538438007796191278278361841537629285241743889039761916096291800952057674884199525389971109368141411428218666828017674395216853110782988107589414613953538092388122994950107182118074366096010237342776838917924612335387528669828450761642304454487302925075159416828616311543981476703975556969510663444903779654676222750117309191431575915276635649517389898129859125964802395969341703442541440590591109937822410469687884274882002780279823290286909212271768492001035286072775877544894388563993897905351784289181523148169054887182765340648544926488290033812628827624062713734109116970112242154263793786941852298324926251061345677218211793278384533960381078315643900887162397820019091998782435652795051988536252456299798799184271761367508798497154180613243194145703046718820019505291901352489774306354337876433509719157222245756956243758131588620780725123927884272180976525466257635463425965642490788324697154949902476082883307812129897340996185396992290825939962604606793574213541488022049200313496878276539154234069969683360305887368491927847441941947617841149290220772936235439710586206431879750627964989808489368313331509015914774594626912741247929609091656597453747221313884525155065458677233035071574214625968694370526223931018496818738329629949039845072748465632269540521176607948948814820652763753690015664809715330511408484953661289069902904498358557417937588454458007694128359286983793845618152031054708186224029267522126474428513866582357993557736038684726220610819149146653411686518097414566980238943369126630543451871192857682043548258677207788291628079884104803910112956009217615447503335522573425372685219143375493396469324839161434987334183225918117586414536734906008039424909839431275069776094060200042405276560229559530622802692230943183009707585536906021767096669473057605763062222426735762174962629845618910455747608555183258990140555036560659488992784485733902453009930506987956646634352334668269767085004303192298879948342331112487000140971368659512155076086716798737501608203759101494025215674624937024143971446361315699623403003917881551614067736218505202719762540505456120950287271526856893971650639838060455624700465496053901482021098470639216091134209492573287638693272814001640245896347616643416832558028007673726993222921141855229473948433630643875908260617886023956653527755364133838407936870192959575254686187640409987889367378548629823973154217560160837830766584239672248358442060993592769210611405236656191443911569518285017297501711298022663056366809484668711897938722406753888524008451401386363890753110358767900466295744045788835226933612097391595787976653067929362819785184999988260235326581272014703945114394115990214338736848969027470956868379229407744833681316752476290237852924996771635686473054664845191542587153907148441929529995378921937422136213411916634465188522364660583519057619546792894937769537606581815607698904914080328407235055860177365417741139383019441311382701479055403395434095429599440223593274223051124452417434612757267277234138939910057740029552387171319234172982383585562475236902796150198224261198022474976062865067276459598500860590252064528615715227364676541194990785803512782239158326446857296648268835505827020214989888606493044385243818090686870373199143009100749932045768668405997020150764963496384315659059147997154626055708886561507684225860439822620368461701607795597248495415877821437479199523601108244257789500277387771641732874531868934987053272530549344321316004095221781340210046546069556220934515626359419546972062167578673846164762110789628875808331568690203023249470815832492867638618244662307231256905822905718464040255972734322651098339568976570598402785138127171962444789744598448272054909384333218903589362450217952128028045957752673358984051063456014449087684159694269577883229650921691153478322467829688605148986704775612159850475648304408923460418135910957800282695498446967317236436111286842213607821662514554368458881553182219480928221596003509957710643290832045916364836673723143843081716568669773862023875650202597397788107230684134890956276800280383188896312532245803218399856644525281888386606383161434287668125875567645206843267056934955208499077099864161628869827321700040562933738859092267114069559604672611537115630807506606399948065304205359274945855077019750278658583791710186284515421178079682604343925747844975574158126229187696836517510984488233570122899596469908136739483446710315179470161155655706113977093970053447428114687568926959296149661349477265659168161882494932107351493993446375771686961860749228979809792614542103058290560906112865598637977922736925316489181802765388248153371529010552054581436208960003691187991992269848192761919789008162396789805929135986647072780801700589385820781365026114641946209211241814686689242771760550435349166204854015955092335302831697262554518307665348213373147137168179452086441633167377397437525668339104293140239814032452946368175247154436420837618917136374144807656888711272150046765159304610058694072549273376196094347647773711068425520348757217556294927513418787843846242238091144453076675921040749949483217243335461344202654479069209891172960180054241250345935038153421659181026230407956197387494978815203263628245820082584071716880714689732529884535339861703248750646751034622805637007629466738072920697761938253194466098308193316860696313219641421167969368740346172424091526668593967384486141989428737974330873428933463079356180595976948212678368345352481044100627242853120331784525642935134474322930552958094022843498113944946825473457022950304891877196014228770234467112729597102168643447616522710379012387674565413470214277553849960362306506674086746252242905276591462335486433051919008891782497439103549405862256152180767602139213962591058864333244962291205853815117901276475786082368340891209537146196390142367675623480226710490315808507334461347840745157043570107304110450001934251096002359770087854413380024967411872228377101804209028558074465166881084397772886551127462020032474750969694836121747819747135283989742585095119542160169240838774885338573007031055546601052134467103627566491863012760412687522071509870268409376861983014447044466096128911010947890923074461297125050073946856810685802980040609548874021765873230242587018572351697844961368041884968078359196525577096176978798408981549281791576141585653624668883864306884686772655230075939068120516716458732310784666088920949161249028430643690920194377503691014845582647983155015787036428757089008188122710972613833823056418357846904004229210619021050761163631775812618288328835902593508561558130969534983357506742851048352682451208934266718258741856897047287693777495553992768271273894408777157733663934694062558503759177199124307980313141368601819431225097954899956336620648227681392002066799880291240194988963447190180574339973364459934073978899855989776699857762346461972729722494056303799520115770227975481461965862399003694586733474801316957931304640719414272772369036034542390023074671642255639503901518043625540112773020879482107988900958818352673844355326930523252608674714428151720113978425462239162240758620362511097608067431423285800660143903132020472106716044395190687044477366736301689436345812725406749716775364891361316522399600306562394869914556687545487179556226044083612962538470343443760742788182161563820981977961599308263192243930541514251093878803874666687586851400635776722199913821318919071158090977802002986921027879504789923685646305686000129902486569437829337087223075227748257698193406435307018764215798065550377236673990712814905670832795053388947983559993555825757307402521884894316294875860712527021808792835793522223270027164495721538615810899438483205701995561184626947423208928634269485090297690010664074663840495407638503422222101376123282532473903687585015239855691710394091221737552967123316664100309288395626969791938075818607319628908516482441935748630054281186213708622533434970181681142551771884675352370065441494025818911847494169975658423667604675579606975121493194794487953711665468461246691381110257250111960461026346375566930882224456496113122773615340095603594025266158723987966302078077052815954779513908571963327381751092712323347526078448655809318698840627976374950073033523672509408967844950849183295589724459411987129936480397575822473633733128867808758262682327797941206967274134883403636334191746633958412508501153498456640203916816565942775483534065754399829595553648358825059857925600114828983464756957648042664406345935271302120627026985581143873512229575648280037645155145184139316223216870081626006834739888064368470495900116968308867435914978171150930630195166271422370739711144783172007262137880008942745963362489299397100163623882078746780717071978085342337962051129636264068782441525801401896339468341780201805407380998221526681791428387915487329539778733974252556103623706216329121494768735812982478722745574386936262391143822514689041982021809654087984679952126390646743812804924551755146500035875271106257030940052896034185521214990388165324977698295445116010125412857441571914366035550889869337171733097121678678937191970021138704513535556937598242405201664055027912035030142503119320794063032881722689052967818846724456900480614181452241747346294896607049362250060340004598343282801327791342786754687038089573022144196178779329506154110407054893999715907082460901428844407147984982001220365274054026347178009761155560323383059378274456378947113144284764884528231664695904340042659725974875663322040313228521605617047258087723804863006632486477180140359365369777135142967308320869420116845698674130489759808065834474826662982417677700448002984510747285317227293683789422097395865457191781120068565197617974634218912744419644657602594250588638375375616757676400655730980951052860175722016714633082682510883037157891093412752180416923008819148988870716943423740732332766355607046847565086450133901684837058762324849297842310518707395740786302982987557294429151470538581208417741509018754678972258262080452818914987364531757234210425294371694982509052724827164971900079961116375813814908925263452561278267550362255596452010800488976054973714335665195489483634451892592134087285879765309135884589031450655753906411432412492171824529533576021200144533298842524946887918839905160076733658460490047595166169179142288490726351715745604687284228284559845283176299891858300892973410495423157672339483899886155932990315354885057967730038929299718866605705026908702065266911202061003096269359507555998993484769044884836043124514562703361367014826309377127164320345088125355103781506496694399995425990836128244394989095204885114414904276766474913387916541183313325063446123956648479991860736347266108201841889765961709544480395002508835492033674073173793350496751544397543741726861294744673914596471450165624165870771669997095120514030371688210488065784765555575398813506902902416743380432196900290589123630483370199704042812571454710783815703217201064006507392756221676739710417433267002261908363941345789157697644232529448631230489798063122457206286612125198463784870799433576881334469825535453970791743950004937187675429253196877486457126213511248549444224432888660125859895179159700221306930956772350301026362744606548588912613594442712533017589939013256227011088329701659681188137615269324538631974132803130373199974656204045624555543815976666617552537542946676500924742248010574960117187265069839953382650972303761949656277364254479790814008412759835844582043550298055779367751925850154903015625944907541585097678373379139053411901743498273521415507568346476893828308603155648052244018080656082909707768496564594390163770259667127987757419042319846535358995772699595325712749150608259875809367058221745093989682148145521051381183727127862113619661640868739301912817903309978190716919784409324288068316012865610124220637712662574942756275892779998241053815959765680849578915278682780529231548085985473774862863149024050238375824685412517623652637911888606192921048825228180528831967010536863844096611181108594265145183338096619861743474314937004201567809143795471606210210673800519516173688518966313496218783010860955789279120973320851205715039472967073921416661654051342069344535510971085405906732771073846412282609553620433840966779418040852853159032953198484582015585320089412229803626740050767307604607849146613310162079693404068214878298479046165518585660198717647155148199897132379132623075968244946470274918427004888014056322765807770653717051245807796500509521130880958275911078445245392209624376113719654727985937125383033694162606046359491233664879314571786972680472371865897191751961936401348697350938082516986384729722821700411413677019458981586928314982789945957816272803503360680315129232599559303254328833426889685733597031391538867006577559209899347736529931347635766876142154740626169999430448991842823403457400100417065933573216654592426520670076085667724796295264240554867673626890838475698965053830787187845367995618564310366543922822452549926037251770349959649409379048004367184885635420595660255710972042818121028053612663784155131947651367612780508486157815945205294655937835478238283998803259465612360273770446760538544548760750670578907727369176573761797599917217404357448005197160071699238708439664974603429354562054196074955496496147585688518068480259323333928921173574930200499613893368558268593694183655157596160662020077797392824395887201806358812180281682511142693017615964497561401194612042358883679027872407850644511853533845953313367579635584309959773657759721259680175033270054186771582933341466615754855349623894668856457841082350366149205922127348084322840177653568992453879306593251273326513470976690972645486332299539654521775289668433741222465922803045931740476738611891919345702880505281329053681064321931303197898337239341212685574704883798343219527160532204325537831984883923659233094608339703364567589055740104438853497438984936226164046803941356915352253888559867071735947773938274736879064744049687195033865131530308955006737982012981986998327604959721060572888345097978658289468587597427351625385253677155992445733168514323269882474742778848663870745071095151247219756768042719893511542081977990355298674089549806540539442395584174087122614713593556596957390035493895215881960753198047857216955387212898161763518950091885468746861911912175818273606254786049046908969196507194352864243885421571842781180475986465024794862406269077205135507313663692331285806596384940805006966093329691869150569453663718975700093468896308149820755226126551699580513015654932740387247202493802781109251089506415461446752683165944762751717029728224162934193114325925049137728208355418304199242831093733693661710019835468124198385430208436134813165055601362936615674747641022014781372696142651503711250753682072833576311987725820684143640798677189736063210994785465401065955203126895531944336736490777454000603468468153773013951271689587623386943776459647012172658922614134154749341156406034375445029332808649403045564909274436111210175019676420346627004377758313839042280264998935165160450489931245632799549064578057317669297649667159044984687056116383570610981758797282155640621113621542257010009930975855990215204083807924091215866863957128793560566776280587860448772894553069127566300973523439017592126572287658206525687817274669809606309214112577012794904610792605227559644799788805204275604512090448083617421612114636817025577159639456971038452666795883831404135079357754154349172627051592410252382132840489705034754943901714854735084654337986569000409566982225042181579627731477486334423420605573140298894327221226016864847689745795065153680159362789361149746550674420934877123823547231463700803748329195561009429182004486283859119592066329894242894620183507865842439478111987801855135554911405838773223070203691847863984708660894630793314115506636367381119263629809602533427397204208943133867635043122245953275013517564189969201540843412635415246708772650640889291551470865311794212353477408162337737468964842383723251517268403822831405695324373052487610638245115379378863489348839359706300214903096884975443710212633450864521558048090361408869668039521182973287020052595056606492945244318869162953444072067656351368534531100056953480174914929822708618065137629642591120186498770253538204682941099782958937974576434747368906837775748620123204328955753881516263741715013762812700380377752816537902340671615734936250722371181917153886733452791933241578913016668978310217920133821591935027294319587000284108878425373000490847348110305295105812358208845096760269288952448831035246298520328070092369102019679879781566111420651825871844723606893033358141537547250380566117320208109857537287862905352484518884354635170322545630406806492558654026711231385314787685291383813113805485793026708723308225734913471623946717519145197630419999502183216659366657344226931279453593190309383746409520827247740290395201692285220492560763582141618058408631195663283348286852655467541408550234884729107539178156136649098710886015795603784506985666892862040621840825076081400906861266033271348320620620146996765641039430207776436730939041593042430459844715591511226658149148894627108974938202907419457208343771996229944035212936508935360376196953690661699437259330550367025325333312072751436194029411372160429817099727239839305496911346953946129939017561231415731338037299131955879960134055297346696993375865459626410422381265424672752058526107647622207707483380706475277680651146306133639002051156100598783719099374336692511828624819764138341410815868188149547143969478366449042415748902904914568347272252598360755384581125378176643929417146568909891241856802286782871744601161539110875669011969165466859829533291714294886402111233437107893295962852872141430333427561382393994797781985025222471286118887991249196258993750865378345600220687260010225527332064490389735228939831238493048093589676154548906700508359158246147134037984799998303977335578281673233595949418958673562114145717070414681649259696892886459623730881996394852580165206327523024202678760292626102705948646613169830048125062198172433087119872291292621829301104798638357068484143888155618510927776865947027315879591672050787989165142653511989305879931512832758121808649220812976175392287431434224722120948223083268952310046979197339559913345413175945688067033702149695286628193050089951861322270150939553121964296781806250912452513134468587960899915977855110521728653153658716803274998843352002950729012972638184873877997312635401116852411124558573057659923275496757480584713883462917027283673045198584226272680628859303740962379604958836627761388257894495349442711936514033385734197859154486451457184247158547633143499381508178356568042830275245190301554672399800276088820670952874790794318183893558768364921193657376411825576992210487666866485351006049893639592034834833236899290358316416741363629605600646457802516869648567326727260166242119419044473999168116151017770233552752020307173946379214081824084917245926279501788585693088156608434998908824681519622022512967530417588974700648187665337823637582930871748734056417072343256840992555310635350426173825508668940551874614768094191083103012597362376628112742395619923306048317097678171444652405870133894735597681175452436584322507470171953982951149885537456311951523863200232950981121158885615509421040158694264244808184281348167789830002485267951216905508035566782098222164429423749119898040692902574455019530238252422983628470533166102850928692034298963369688436557834229387777024144042175682076107782207303471114755394583482732013979864891662902637168707946072356235359534280401182250402753550494694945475718509340575873154497729440944657657737203860245465092425381610946333475428527511317272269360604032155341238550462615245655161596627461750883342334694302037464137719050244984369532772189833563492819226088174448117699707350170383370750788496313020526228687453338738686437431679327272974042046691664908844752168957819221678822601126510095444372692611066744664185872589367718021954998568880454270295452705309506989239781744844517564084638906834415834394424593118153477578571816930004841605665086558945198223899481138514000504620277182656913342115497995517920437155119626201745891166210746471774770230009911892035325392405455875874259458161403361639737232794866895233961087741808199914770316098370092234723628864399289784515574492759803793652152214150543828692836918849226627895352795460875554682545991079205761837151656403477170901589502805912192703711944952821242244942227765360628709319582758929774735786358134183331007348253732992103997814957022429723189700548651309513993952044519431847206447023138570093056913421620277985697850731873779643132166349206044747807258323771394500406365555118600682231541583201377701754934480283441002418882246986177039690849969978545525080524127450191504936342549563329947679120340483492186166558692631784711461781339469565276407004502174332799567714805520907700263700512293774151244700454645922194367689101003877733893463833372125388083923303942705424632458732599285039419567398427771120029867295641617146441535544592274180793469563661676586225828753936589584747025933647879337733741026323447801058473304157033312954998808622121764632291093341012903920373202343009644984677667880824670592185502426827043000827422247456484431060911380124695226975744769103025826559900981237098896441490887146315484649711456762058385706902893800321804072199585963908083324238600413721974121171701825144170856012158357066387941653932477777105182293110347169308155542814639368652573449958032070981130165812585641180746321468498867500218861625004331571169479036142849061910739030235901880005346188018279527551311439331809887529804462754913473042989196676416927595164949388543344006574604617548245614130521339517202571057659635171940170974058215099479045378057135849786069396823620623554137462265357812359450042337704315907509995792098124612866694051484587738299898253133083657756610103333843996538886088178867599093470452818393772331330845084078833425995740373901075438177122265626895469809900524356397300115627495275818553620399457482054282044206530368400011789726876548856661530733862695172752393148129556587711774544318070908468917208943937057294977924542585947262872823116237309988486900383333839238277181782782019824383623696948831907880053057656449429079006458628353629978780872188473963549286595536713860704811132499626358165776151766803624989518840260521775289440386581278774892107200905607023630191722581538653588639152001605206690149349708546515910185606109714292972727718461011352445640502610849505725098759488006496055872707962646508855504059624987135285517875908551864885029494936943359560114871862282272322483529635042614845141798126778146402431442924795320942070416876004260055245391991381697175827652586268042981924365869943319748620701284484381642651801005080028090343757111558629013271274351240243141441105383109844618572492855311575062107621422367558789078803750961007906860065904366244383307706586469971445315529160302954158861319476859666081169264114016195807351287903225959984428706194638567958206072489057010843631624164945899926521586989599921326366739130210811842610593530721375720874620842454246367656663647040637527717514783646029789859910059295874223316926162107759765531606549384829026251267581209835996968103466892376487154910323508435774322889670751639116745918265937242132372457533595273734738895956568610246433654600929560023708791855625313527922988508349205518893354782901151539680480228002025703108119038577621865772322536783302984909563583177993832239627115753445801183033614949147484802422364298783130848847777108548599307849080604119115645160448005477549252333480021037477390373342695742907678579987844944252629752481884143766301529620526268682975113981846374431873611820853387815777041789407650664849972872889645560515250853908907353020107749847034059515277841134099151674469518333788830546036544669109635593942177744443571026484100904735502007960417704242555045282377509759701142527304085978161024920691484880990749321327030159845512480524589310056993770216966062272643289371320475745248429362378217816346225706072174486852108693395780969877938139747010321715020558844056795556216404754317618190246821492819385073878497850718263376959624686523974591416901286296595001262110811153965828261277246302026707439309916437124905760373105644708598833297805492313302447669889366324939076883291846192431220735029682474097687804226145574502383038892905297399463599728439828912421582663588126695351559668343097925153822184501033728262203035261862145582412224190189329211454673474344679917447321493406007444135303240651850179646678829738033684610630831629945892411850951794464084022937649747697069235383900472912836525870384556960567658373627132543431895135400144730731966376565939835603212350080327812002471931845133359461590891140249246168390511125236900244275263164145978927128329896394228321241295791202807854476693360097365451745822467173834886588218059970773826459195942777633592695500285869404457121613636098669179561999734817963131847061430493745514978987510540814937010287402258042627255192170612864841677120178182130701231268098939433950154310867942221378426099966072109952228480440342299828360905655400294689697016500658397566776522837771172532601889340384083009551975786915638166552374629376500967136610367491741481355113783591020904733942737769854712892158949762121861561401655832465538630294552958234458668924597389022169661522583035692144505308212160621085555782292011658040926129934576451900167069495747469935210790168737425248268679076039732288560428082079637931598297715490507053985160651813827776977580385003442605001967961629161038675255507491875201623513932769970205268146996392670403350351761078356840146646361094880244525053339503700319197182400795498056788428425458604730226457921679793824956876056266974052135904552516376008756635381731747295090512970463722645008149917180805187783051357325844327506934612172709399878167501334567797481129788614159787833555139248986863368870365603056540718190614896436285011983906422430940156499437751298198519289439591082722642468164863786451351153428373864638878721733306199274908514366256418355047244614307663866138082195885610726579113141518054773350186981746317592566511301357451007701456850802485272393985709898013187710959344774121614391517469589717587503774779136742014383473911000173177300845461720577350938541616211962193337770987695659203207139975479728006398301154916767724799379733468482509412978519461422142666922371845501032882667137589306446202754460019147422522997906860286015190252416528815439692268625659309887693931908485146961887893149706806896592263273132725592382709824532407102802825612971911270335517510078025087231188502858305729852361725596106490138507099312138322819729912837205797603133042695507047634263331294566815903135366707261541168425424611820262304196173888858180199905559503940291748328544373171467187976770281259660494866379442657709596687893201809647254822176384850138408186320745624706621593616168761227241624721302992915841157040839258578637402177487409928143322243985232406684334218584243666829659903298585837487905420337849215779006416293584559918714555608776485745940487556067582578527894731477388162452063727458749907385595561909292367724119308290366364203739206910036650950262970727209151510306429801497414696327566416465178762123333668719442301918922911647229288520458506856023684272619431792730726948529453250379249784854896972155555907060235999178007412701541294877479339782920166016880563362869522623139870969209179154262400533098750033049424741890215937410414525393103259979593823294023515892499939900412385350498717361267554665218352314185075092966826489958496151663906212589116616642294071025304081057358466556758996431404409016284665531510944598944672352883100771332230235399031682356362525822282206046460339175756824062553492885533225072357516120130805495226835124313396810883288179200271278628117738658060635095052778837208323421867570416857650501818662911955406742648104423640161823968519509518707921003835676022179700702439889495454194688196670393059894944150873853364719871129122333653058266646370941313796296214952939076438855586472573184536849326106446306880911144665053651067962378067017512404380771773671344981487898164808721658672630427678098934840940681488158405148450513887729246635698139158464972449550004025878331832950681603922798368388709606700440939057254974878425324223267935962503500387373082588421807505910533352186176477128850018090216824651032506183266730268380095664625821816767509602708406991162779321118403579767096909173986705953970393927565041946487833730075830406364495718433430617071513888089962710460011694086856731744316758380772438008911521478499335888881383702720723722416686705134011540677064420247329079818619314729577794234624368518898783136650927267121924366860374093197708569052497586189878116526877958850771110000456336917686615951564817583357601262240634542074095473790901095686834408525733754374712826261693368670880065860066507160561476195669006748323609388811818037697637406011299012032585799646394976874951821909685122762628058775081431275771606741792830046839660114401989225063085285995000045618616123472803082624251307226116670502601342208262409588752595908458043698835077793022011672980150681302907997280423266744992688822462071592101016540903624361812114593402383842667613460690881627524366186929831336605959467615056024005413815605329204721570402205866286254225358762531331988607304087736990080621880403146891927070120017059975953595345065648001720147269106588239097905268942664184446556032125541806903204947903714391587109137331011823323482919012763615049575138373115394848382850879776829628730351195249826397646106688572650680279539796247308355770148164031079878028260181655990920919762266176350807222036546419951460940689357661871361638298852826651779798741788326600544023557967164869105129246045318140760417697079324190298010574181573095935450143644065322699485418258064439117356250774372056902932997097695414853525289431612548245603039155611479638258276801760925890055193817413800409022272185836925754056884955161606965345675130212684588007200825224240288464419464987735087391176491673684357716935355811528175778077820025518689422669360021679948250972493281714972753987008365567430787509605408118106232119829856274893036228911012022938155913457723719010970803744408552388547276871979732885427523793115976663829516159323910239860977963489307152843239264740262937417802460946568236084477520176745891443274182222003899812835504503710549878579394149312489645033633292229799493723095052123317624687795292193768035772852445127302032213327132915459727462612167466096245081750784258750498368948855468805668676032169277028410355512643051670597697670186929980401166247665419288297676291705968821187485768249376117257634415976573860839729024953667467648535844860046150786580147219071544382402530194905087117545513043521871024138702155996393909548528229184347788971049696610857316265114899431268055881784589517688264273986836011598259729971522952160360007208348879795508756226438449639097847990149099022617473444933564993581631441628518841370497878557826564554857264586861876024801919985428747883637399487910845184839714601251711453968957755848561187282384768051725933340918264787223208149396303866797793456539189903450046626970644029674786910433618193861257810041672147127184453673513047169941593333886992828853540492457679112963133359248424810003306256835742938296163154702439030233772162771398566759937993448061121900691213951032438156492916147668306414323015381173433487926784452803036072430567611163235796983795576517448012525936066607783575628943270297604842879884710359308211320968033649441441560905821255362887960309662147616414037170062483641066727882208758234528344142407424429140319621958799278523721390240968801445018784984406171417566141816419222947001906926306407771625999610264993324598909501155722043077107170486149935592706560171144977434991796363526245681040821683304940372341190593625170135004391920235668012642661183223686559664281756108354831670667841866771581464534952165376399506691636837065516656537799103237114976220413099528204451446245829838927907039124072134089532499867639821181290253862718504512155952158795608819654603469982596194813549774554629105294303229768297524688023602266784746261127826040628404754827020239939799208549432926682277053707549186985408941828244172886736383051886784477090876337724299754980443785251119582119015374591312016967321719805379583864449832939875939474719709901680742361074790115260836711483642118218502041861592962972660947075098255873853054148946225240852499430826890017585433541310584796284888689647596523047521971361411698943162179887637433956715005821311265846188124125324632971562134521761634605511951967592343247355272186979549496405892157709129406209455508550153017624912800415428761672545680365495121974284190266778993831399204882292319808717341435990540981745279868138643364996370171823843563373578493780559121047319693105048218744351354095746540328813209282436669055993368463307916687443923293993630693931131640638312612136911258956323280457551290743871784831014761954463521935119589832127540240734961105229697586689607272417887686049534228621913251805927853275784185027270364136049105113925116118989982115789211601964150355082438809084754620872664677830156997357725472670278927496551630169852215281923784546298265990793444866691639405024016167328177108098339418237827342490045673514894943737004840971320393839430585813729465167819369958326832551757356851888265301029966172379656260540257117839792567744581369292460532980763850131105201136328871577170522519866174720951685009224432304203844279922239063138440776592099033167301615180580140772857740780804178576507187010641236967057832109857583990893092629148712473756889771099006444114407935427903765660511813306253334134943754052771423016189603864760198550858307311910173263915380517625635726861300702238993706132125298303662229570036878918520607645304934751962753256371496001967992989565704368425920450597038943141224009252971585744139970587522057441549412606283555004803160283864394068531917569233564941614366363209398087767535699933055730778398170218895110362685628839086487390028009194949608490480748139065103839893059356818100332099996966401462093533238623283984344308282186012773855786721070424935027384203818442641102308702247167087868207461254202700636925247441005617817281300544870877643479117630231950959591879336619986190979678460135347312499686917416889854492958806223369112298199139288975456014064846334197123635597944662057248516702674287632599199357496379962721959568422311993574309646542128135960415897199318170744245013115653499259468418166878835279282364972250353446692659780105663474102065037045316025647909472488381278976342962882253362934255408701310567526333323007700179743945386020885362983269626461702919800208295916515490244280373673033583983326246216068501462083086387025550091374375214195610010255530789921405052091313955239062986283261049270599853524309419747112365251452222835997128850434454988549288182817323516339102193855739710301552406920732544274767229017162534100388543907409704291041898160487603197902477013925267899486063388944638426687254679794592132183206725569866205651466288983410408013310561499526903578570000977128379677924421042591340358478519355990656193832467711122139060461541193912931438239335101537456949968229540408594275382567748263477230889276653154325994913472690667432932511226604260891161630100089054894739623603716605817185010257546109725423302101213241462978777880669183717997094762805953675823484490973158303168314821665957227739301814418456172389896126830547409849621754115963855211173137716029323913881478150117269120174911345561938996369990621080456119427979621057970118974993728980281256004000394270065911120505836283055675984964405643968226664517101282017769931040395425719008683970828972898116495388979182409141560794903648573001575616789346808851816964380634930020647380692944686977112818699621277743330210251533411674375442907807983641373749139604131226680153755060367641378683618097556346607332963371142507327157043237503278639577624556842089346910335723596033894067268914778622804168125148841591690867168190392311553658517103213474881903827734952771866326400813991597681133033719384957446647925092846363681947064420734054643854944708687683807080728142095372331681465960474024765582920257450228519220955111114674902624624734098828309150743420008143467648287810183330104527793112188227153408776711951911166275792826113226923486621687610525642089831629178393052085602244712045264704520704551417278286059962654253238688138230111633395092582938453540859954134550366312250246602232224375150335016073353117639654333596653673588515832139623714454437984251886397422790195183461175270204435682803418717692998214982438392712677537088399660255215723825430833673930074037844866370947591455103381070382174536139624952963529332525596540213551558679525709394252959528305408625154979881046431879301015740881600817266655077194083929417661499527709643015237458368937004273695774983315830085307062374499584982971026002168820458633710997459385240268070897127596578224525261404864164835724920558249471743938629240853134392116343053888996758530903116432648216502071836396719037910984013054999270305380141563679490980849320814834164324976766951459509139150868475341475932847276065271888716385025796455051459711775748029223185018084731389377718037439978228519934879776527240560274683423353806462321066810651998049520798737027246962579976830857645900054292574692235508354987917475968717397873523032622711058097989287626548905802764949464075941232488886642135077163455827577816930159197048411446182406077439073276597729123571232349405521911229705519629091368538909875478676647219334985663594617709435726883009969822925835958895974659275727523100447592979024151617394183662308116873789609763605383015826857283040558587335426943226399520958818441365181560619245667362663279262466451710163164217705252115204984018187805613175141303700161770387902088415113778271779427039938198446621760597131622459955876105996801666431613136719247819101876477004998070820117253861606562302321620894332168887991383986078849818743992617163879081577621017731224474156796543657871087546943690326067564409253412467648630920261385629220487765444533803492447268638347037261127411942500284509969160030608830238960150384745551933295393905075771539592036146992483807238641478350696500863153595435852165496318758146368916740077756088561890932592334677332154431257797191628755388499385314485617630679791414161926440019887560167492499390544978078090798294545147362705411534460349474336655156921823667253237692648915195432560473651695403312308642130578575871935434942038009789338915819802488219952725777813424489874927097252765030673103739516012808657373179403993547928351057541491202564218533730915122492661010347505088513714716631181127361895955333121279983784649637277591586725654545969834456197881680970979574652355995764321386561571699864667620567516127495643356959856128914519131935628831893674206416329308954219848669294702701155295174714957995555755109358172877149967765450934669738785887740797036527211849735411256085429953497274161463144396423013498070269382789797879967369536233043588043478879562873683374257856580696990216671666461986349088512845201259828659947348814787421297034453478207937540489542508033339245473312908965375316230841777047271999495436595432398994728102547606392615282421804904453795923858543086904790736850746687001063174061068015740766754410822795297369781960309764049391867291141630861875598458992058353062533285353800834585310922862937140062751322519422155663752242681659352522234285454824037697449381963859927333852684829402169230689394253396509204502035033481663868775167006870115959955392748811688096463619724519983504480829637459020600136751697360694205017222749748165428525380633504713057384598576297590510127619875848700947966430783677591451583111369770853122887603040287694893511714179457248273611469654470130280606987730933704852307946824568135081982243934719969945415511257011875287686660052785806616402032278823908080354736259155266997002698966217076911201715988918621842159406805596964770578742220069041276479009442803101490018230532161156228155246094745643967627287867397492606370789709196875677698541772211381151560816101042183437434010282221098686896913552924354840700722791356975937868594107965102232599514920802459285897923534361783544921986908705487181147341881056771921035636096190014590131132786354748450098028461688031068608470371422778887339223049009781111143276071744154177943622207341497258820588697553148646078095387654344846421480786406151774604461146566305749183889908207078053959807018256687869507126562741560049207269901016559818889772386550072243393369648532262513043588453531504096331185411184849254748627280860957278772008309358581391538911812209953236890375673423411297157225851550019179057055319374765206036616300247134956806184515951872252706668554642642322140987709559105272202438254232854782223006983135019217045693233976968609267941624281757845871639389756935897004577268243463750746066197925820057173271311896840460305891049604198662017498851506681869204985857658586031992047605272453163898455870941741299142761651712918689632363561914630328739458972892391611804722638814522443579715802300436823539278585105894334880062637779619595145360669036229821089742319027010247753631536649292125896781605134018128308346905452052684234876982499123723245329579081317421555826781757191123386086040768945535698742165641766070449379908517944710431703307905542972011862031717203474052903638140391192805868653690817036090921301489460981337045701628603342724284132677459983672988706452405592265799172155328074089970678751624991540626275871149360789953499957127006695952663086501210981605814778151446668154169725636041125474297610339107994605828737593518910109177892391780706402068675947076670825733175106654622178095594792222848196405571920124880450498793064851369401306603359262003817324863709887904483119549678258136632762072598146032398642451700491411827879078762222787861824176010409355363970985637973705034414856674927331979500097471169099064231982535200506649671844724201534524220101966718582958813064750652219668778961987003848685062891464528963740749975049858257991514271688469462322955052426500208553882770098298537474775399573634182096583965575859457579205577952104104772575419262254660285848017491370268358229893876587214582473792736729552754436803171901276093136978721601058360989664656119293849761186771125939083877286853173902526865968476781071510993871217097955115805777010212882628553059888782252740991046505668926595844644122619229701315569913842533548914279583774005557894371724942734505755484806610319664954470899942072455912881349041360531921322590535878054690460872477473551105267229506269298406874483343371883520460461417982455816006248024015249925475502476706895805980274600097708534760022226273715829648732355878415502505532454213934602463711474223461907931495809000206542317031170460020437920103115819697321208495063809640531308596787969254071153478603847358728929777755910746489934981205413785212447659314388624682544526871306673951996443445707002947711383474564191447576446959906985265960866210120748916645858481431721336054624289318609991238264526808118252842378670518184637649636472202937373004654167710111719925295301874351881532385418836478394095483096191126187857593314365933715230980593379856364223582797970331083342826983413428531006855418180672798689438862835483202594413683940153570820626974343961582097381289906158315500345637557401403626619395207688715559714762706853531055728154214436604390260428946233993468428569088791110201778271227152770798822874805606234842750122427685534929060373390919077514350285782680213614726581231468380088322977863459750764571091391611826870233164163161767615614200851791568932410416158325474689046267186328914903472496145220712667788158031308922091736111940180156725127005491985304264070938506076109104847785955955993889677227810860260332041875267861140834714621494557170248992119140750912403127923087607232570610919373407124358625496944887010611506911976298564611864565241480438557881346742002649394048901735651093238431322340932833169733302230837599302469526504574091401638445515048225844858422677478137963940588771730135253117283746913298654070718183015151436833325412821948362909561276172439983214052803022883365350150046130729474667360125383406058205901011755050572202999485840917280160003284857325530196797763982794457938147872722397846286736787014094005295460150152365518640092579855900325470723039135213922541734759456020472810503746760792211710090431520937598742094425549134427877999283980167169010905059836388512648580562337583191834079639125909256316126239034119634044464512634804078464958018273283078021043072358953609994511561938482852189799732559874451468396241025339730789734879073764985072691059913481345355945606156211463423538988636728985820779018621467446108742323992710387909731364970970779343424071683201162292489209726232138758826082675671058920526145522919751457877948088416210440400355324989868645424305761854125690308494787928990139493697370297731822474175123549960522123179808082594279568148470020358743643556460610686561527898059712597874738482824569835914031486193742884636102040910759895464102426983962031898706645284817429517313238784940865329230638810968858845401065878303558463861431269642162649565169588501279048390135728348239687679447665065537204564395151238484363605576818342679031665719480350064817247567594301793530283802841784448213735652143278430296178217484520958265987310922859201045394575887326097009608253499952449063936964197892811061821605633400126689052151782660541629125228572131402608702622202383430156652882564668937968132387604659990096147809224825699274485066157982122764011595884566060817883670447197916613299329758514744902301775013880209666498072629533362472996534109427888441283395792525740782575292226488409042437319053532063161879445768890247396228290441020847511678036501800271117588298554629269725381090034734321279988211931617177930542533678950308594290760279634877181183108029699006935982704828362874556807000416973984907488744344050572626690739550017156591537609136308774988896291773688666282409810167110432055931472036305897157939647705595087973971625224115015277666713610918321918593262230396389604961956815800268104851775197467792306779175453251382123476123565139591287871336893224397909368043822293300901223731228920291208233370391188426780422576483676320614167654383729734379132032211631045477986456516928011458399864664051901872376829676943013813248466851149983380518122428626440541219775271639751139128500652008937554867022214498181438591768636957295090198404444553636933137362018379181543982493308742879040743666832535151790372408359931904616755992945088520051435468066949125687006629626232691219889328250540735183073559187450023443562493132998611562993221494307183443032962260015452855687831235600250423441633038838878454093144681572517145668848107261299115400661452692373988491500550733654757107915106705224841814547885122276373863536278324095687372707940003973328915653736365538955571883017998287837053421237717244666636050950096994322479927392758150863429518612550498344540517848438017387503254424346511883103608905659040292041361920901382935523573650765496511943868075427689714120681039335743261617867469736961018668448699000982812079651787134696445140722108867658531712885644513705962455627099167562805562853537157559088582111924555697777494221582593890443321067192939138779232171910646802334260281270379667212120374392050877333087458845440141548401533583433967710791246688214443855456686188369336512545386443407556489483565409944513821856026917580348313582597363385850009403002723783430636048167680226438938252208528347128270781443170106531843195429309856764101616129496955218863304322223185685155333099741733283038412083881083760041753706281625362342971959001359404600305079855543899490770486852949150489877905773648313812121643866880486221260525035136461602294234419896320432844829064014103124802994188279195671595352303283884197191786610839901315508250102133226950688373067933690760477116915224136689359250669966475516972697170923374906081348895231935020776379586216299782043172202438935131296865595558020447019028894226669861606342833845747331864418942469006899150734491467075848174035290186852656542428739546504706524727199049715454072099380717353285544343579690269489511757687979068539624754506565104998581901317481181299393381026853759731735749792872338294081011415677883489848538002115657111289190523258752378924835137879745720317513878922410492318519251640800101414441274460702111691775705201356861904365033070282628544205949297754212565869048169926721580166149294756377801596377286715038333261169603110751544535993418430364879663455300568904164444817681070733616301483688337513077730302993256034503102927221517703904127816261288927002010082283706835396370875006214079988432297913813341552037401664081069046899591649088551068988523027454091867422510379436296702808547929385794934987284052553535641604282674086865830026055487910164309090051598827162941279661100270668939261381151356786811389468797440626140790791459738969636030446592053214468800030527884577163359728585860332647175352500199588614331664960754190976361240626298875252691220814298433474867948582467997859629300928081358971170053810818931166409582806621251901291672464734172257005606334977975916673557036930342574223466880677518262939758008119133116630760618313366209472703185539711004149000279096951862769302128007236297957578465197941055199382157136416242887991682520318706711081780221921233039176049231509187735090380354678456713534070906676428534968555373677778365348925124251075178700637703570663155418337457235723713589461307910005948225875643833700947486321920085194854454971805487210947557905161673618507256765781523337331970609721795757331486423644297757260959714623329433018867229080454613782201843521350605948502126716167346529207358274548336936540439753057107357397345703485748985246954489976720623808317154655523331419125610180515591224458752464119997047431325394046860393457348518157594371654598078683930164084731074905792040834876383369082094566097901937461550415804432942125682315278486696730765931368570533933665213112630501210253576644525532627067918697426400478610086613706330550320874298948034147246096856343673412235047307641691867600995639260073417955378706858790086056541802706689088917828013443948948461511532792410184992370950558061633989069232234571243755300036881655968327827048348667519817544991041994283528699661972705870629276851476790506237879490235384911782580103319825970228214929595841355806189129985761834698103802839012288866337344370335531311099869522960498694298151442350511454450414539596715232333929087963475462294476907274930439620152714451238808991224833492452079909773805697528077544467310911437276353395530766444303694333655833758081551730110533513835981258946915618976496456220133771775991065059497432553610351782021291095974310406611214497887364299276380575057491895163357816725182883994384757520003127290145860425026161115107195757653005575914337923972679568880139788297398900426071820571148274586810395134069110328840459211963496201144792330514335069509926692201050950824850284666523575859407105547349037169737523588582049677750489401899793851369814528316297185253500541393878386317725920387957768000434004757204052172857545942943073597540435480731381319489669514460750354947319661797091764828024422054709228957871855743646064286939865503392967027716276614815481830223634127087078344854065139052583705031049305450941545115427340379089634825056293055838377282860472241077357607063994243998820239630823753706560356243537222664925210398707197689928099470648882907891232958627800560670696763891258967557050186020722922177002380408294376349680930549383735137267187999399489524403149077986294893183785266746474479743123924059501571052324823618667464622625399606543171153720752938374083963502459524892339736300381059414404688289803323623170707533724603860761194546797076869891570170038913008111976679818020965149108090358945895892389204062652399819083238401145079550997094321500121116882802479620336500667464097683089505147898290479698010744667069775768313975905590065186830754020880717123728828040613555984028685117301876881531083500759791189779132759603418326496573129175001449618558195698598701849737394709773866444745451623868691557379380863983337580554477085515949021290015121233578793107856602734682821486776092300471225866940460898831988233705687109568919948604298064808321559057108616116575936720574676846137594182438139174195774052556851912251454478323426775782952653930458716075973526686734376623807438097160284599289632174546975091754790763603209609309609563350000125539901803449573827386782759382794328844797525917965304737173066849401960598394480637859903203445958668073738724267834798032202345137078999437750179640421059320688360657430141848507718092396184687946755424679818545970134340479097133736969272187983072189192100550223070087525524003709040468980038713980465424357921718306710502171617865934452952703910082465869627078059776819677577451079768185335384987771626051707220252939227909413251428125404075155500271071045398307910359702253840184395459413669724273406921115850825123375969781472553789496948662662759970627433763473246459246556651655362147565470625873561045810927360429357265462803754362356426756083170410919053720662941199567304670410613672535711595095053028613459028031742611296015152426391902256167563623147524777113926712367603876831466799916546110325787828439096616028668875344535629735591145862120754966839300923540306208841006618724532975664237420331270298788955824291754098448782542421292065623532174848620550452068212902969188326408004350149039219524775926518327584985381707280051756479504230760731293836848751712867046713465350517835408285802734543975767443835432059368767533165646026526753892902319429100424120640833586246824810329746356584256416283783549290831476427119040862546965105281185835680001480281230792302920675764979711765918729562284051474570712435972515444383600360442922893450782082473114192424236820356399664149062546058086581207130794338957734393778990526553562242754398200953657015681049736341815371751440933471916526080840323150488673518160210211983243233250099959108717674667536919919642740415601759604261264280534318432477725532536073049015928910811652864608977868535074167105665412708448179121906961408180048744325389356489676440826564289936377096383463110534999494813535896199836071257374634758681260407287182321750348482066915054264086164449847909204311166732253062369050614954156955395995838779594335483188196328226464664534781742504792615784968430791893174248220349379129541408311134460912046208558949044365212480172399865590460557603704561340147765159229601966314592742696627220709817240500064940569199092069119828076889655126345297370950170852339544943675943221492680126539061176952803713782913341893844277711595513689162224397297983377288532092636693194257359449031343839404263171428466901549582761152630635090890530226366956268575969885435667234797491207105670442463254242217233878800269139760792511497986443135307149713965321569780274168643926012016864246204139806392360424703678812913067184941344424588731948711143485739226508997140901473994305528202954540680803833961898142015258504387463349438996799051763348686336566206928543248813609805490752035798630935730762588663057005129261710648596754483570462908252708757766090141560004126428230512871173773085539478576440044683282762860845173498316882685362447871281635349879166583636282920871379654295851157814513512705262566245186389034154123646845998377632559000070048972868809075382332314246532268245422352993290240278466743777998434285995258375099479398225207530088357193765777165765101041573403387813538131467882775197311508923212895226319511755809914398895515048807894121572658730726750855809126016270157701882088616677564651977779173501609801240469869617085868071812359200217923884954490146640554446890044368224996488197574080432694883278179873060995664506784506363306045265367371877337009987263649212971635279518166087917099320188381746731691628086299441300825636100085094293960761688815262436852548065177010846721740855547761675617998548733348626241755151341118343223345727821210665367416362034313716306166356822205366741446585613287964825279113782569677952344106027258807492510160842785593038732471437206957619035166317182984003595288581671942209019907345742329586278897040475348033368952427422040956694838003354786780927726603685430172504833640784703496036618716545429341278020618426921034577279441146053497117352899445970359118527320224135057576330033141857491425494520795766269632559633471095820629902891348204610359743504069472565716293625014881484937840389328978880215119210849604840212748980610632250232557819832771050314192282643179011693813008049962953485923972302731199880640513893553538272019345912699465764792117608686203041987954072930954162340881455083125144798701220461937926549501011281780953675810660764110287803039471257070504784670321039577815060554478195090716857553643153681444434725740121401849213594476629872257167007420081860197365816834734968578284441900302627467637383578206401726854324982509792282111200475658958824081030430678379093079226262737462206341909836695930279548426956303589556694959766247700668708260076710059891634110634697185362410664679612805661517369085178552549120855191868523632854324254382770673633855104100281038915483668729273416598342762832607870876950729704191321461472657737654612889001338166120067426467071463743958664760848361845981519285752915020795235051363884617723195968615541878706902064906586273405009823463386403254307426523018655385846115071663294714259529231230859787371430463611963756931911215454316796236586851653294105606083076402730172828181820941331902063957616776343093813321652145313099941819558987504444993521511740627390849609645380280240438341381865724530887014467613196848068654277399872594610948538895458019502557995397723029956528269167757171544718940871654031350369791108061508282704214775146120510868260246309160331561987997052736611496256471331158893378591074578428199816239864869478994054813873321754881602576789627495232735452472352542613638954942591376613032300610190016105219622462744122703695682175387367799540739762229086499222516150243913313173701263788428546532355853610925264411969697184400534308590146574628308929369512092662208687715367794933149638570610497660148586762358423457467108129980000257866519349433054980667443968651089160039938249041369036214851320774722288523817091431638737619800533814161099708062559764622714123563041779842405514805958044783978722562968341294252128781189099417879151182738817191951941473645845053033561965507890706506095074542520001584857905975107996102038038846439847701792814912680705674612801180041797020418933703413394936927362405912443308444477678531221719399062213436669813715064743046130313522614218855761061443210472187148166021978876718752140490623054949858704360715211185610533710059155717425536608043479219024631090237833355719428662638678456805998594516530131364390740289155069662829769544062261856817243532496012227947693331087477460196119908731393976883828587758753742138312193926389352325443576561606069191109694240415322140397782919682760862271693788584630107075067431168249164523041685840719767619651047507018389115032648100801951258573457807468476774063242978855316686513625313535462689146889553543234829687120220453559190303309082925954475851008463534908362288234788021631238984808723197275473130465417690237514143351094855086661901679334457214714253921908797421321506045374442113019196837349861384690282250772249867847518107378934078791201505905880085569542910455579738337531224574218219012433745678827995245895584693643679213167679423673758135538294956374930046198518568053332600340258826067933634178280186498355657481072959909736033085071526882832756072349391256494715160930438981764454674859015599625324988020290265996606438286248948645522142510850294436213245808691891050862317673870327079082197934674131307017344360106715427145411652139808194702688487551069731837489055193914500241385753344304501414875756518487948925404588037325263466209606754123551839418005253377374130369757770515228535509020287345649988268443655734206858265758250326527637891757166699535819144999215785594219638739280687547835352327366482168270197885606040486349626188788976580944857253227400654522827309627192728157482468860079228319589146403408998912497070653101137510265502083582708793860033922644665452904239884422645518393092670777042940287843312842492594845967736967829529704827022457871575104445074799333023680139373910320046856156681435368696710521695438279474318758419004242027125192274249087285142744872237076792954777553062949823633233380137149056787719916022159092813775438297744775701427772978677940206672147791065174569518375963275882256192220132609020951676854811534052783703265323834881483778571762089103876341797375781647555935009163758971363743552083507208322753220115453126671801024605018274574862151873785660582019476437472741023681963531792916129888286662585556884749965781264977635752463069718025551866606006968425401150886385646868283156764967358421013445171998266388392610430109979680792362758247996144395078356725038255957625868900402818535655666995094575028041656840693158957612761018946927243244067813146924621658239620654823828049041220050501202737186764922083121597110619458068989907203838045642265182173427295844311458018527922231796936466104503583585620385553682696266919835863397265495261288140145190417888002235531275624332226877438198483701689143770025815111900897674389056112886571000364121103056070142256535938818882042249352728880974665860081131857872569145665262619139801393875741374933148643993486226037952490341088503207496089692090072259933893850875754387430546945347890431268310541054691349640454434198512507278625835843093034997893236562762005401320030737576659042826136863105385337181790010063068443683996319778760159164513505084203476619871285973747622069611179884866356518662594724541574013188856996728331075807241412759324415421377615572373892866717350594102728721146024774673213408621726078010883034823608358679096313022147780214175109796666585873120582723067956939010605510101238674477403717002304633811587481211059825297510225276688255440849321889331480939834326851854802611295954455909427878248745457302222991820121898322347549123325736409277094186582471611190863594512550066833009803683926375387837999786199268754798469215936740860816900237652816866498162253292710274936733568777303246413629051286876552378489417621602835242097596562268071385746027841733133693656316300983806024020861494900765315900506870189679095477736807683580699839937023521858534940302282145524628067745268512205978489469367055795269139870750566672589691797213292042611016440770061134697114486288616086403683903127642773459063470677006187226404142110121320681739080471055530822458872391317504071834622774636578308386704564308581144510378132178554033546918448564212313086392007654230033659877359680938371948211470987108524186349475010822824429261119816816782265354761443886365831804438506483464622961553485610380205237483986404815750093153865292176033350490292711380362012033860749300475456988521579731369662412648127699377074079264299177826831611268337212272310135512611875343135752135933713371930552981182491633775012752583940699457996502571008176935273695795207295600562371779043803691133030442879557459065230171529255044821028039711183367105523304232676415719745725785257887153398575096214953921474514942388007198884438860862760459984354711475941225871942086031584388990682294809292302731580935308909121244555565625333464219485731387383119357380961943109463033725449120029394656803167232578480295378489067008642258740727095820662988003369932052322801289928170164665043311877648370611901028650834101463271167965206443842666548340243980021096697998120209391198423131048277432245142400032375628151715916418440824879331509885770909733718041963916103049851013721567734687022164006456322076593009241991946059280168599538306917804706316013647003804545826739519156147103636979675117192709472838816850411657423096156425048956235613968811910134679213604651368793436704567243212089096854376271822088199392139897211898225245202209290088980849109178414060479919418155774283719163458300598649802565260644571793768088057528462369620678270017726514242664355775185513906040785254470338026966984526123401332199815417166390956086587570274868188436605996014332123645967772906796755246054372076283056574332565843607075101835386456420044087746909333287428377602692108356899477168732112362726439655773959427386902776101427953551323423216909759950956307928941838554547805007356843018249543506385623202390611108990461226698430056520973126071000131210920193643000401574639233153046774313655796507314240437319454851299199144002272395489923081303644804967765498579803165789916330041739589864853044788104172454273108236734720265608827860884010888220267142212863126196450050441595011206034322500024879620398935512177461993830104734269993151111603353681499060194145959745670902424786245191643699413750393145571593857614861328143418046695481097056639783600881293916220235875963999593292904588144247222742459785485663438586012413368275307108896426311921908160540276250111837747851106497636611896559765407181539299307512704541558724648272573515586179322927196232759118354636522814673042976495388427495191176384687740697402687358299691241583429118848818607134748806185871974967338273496383134513456088960462928062492166108134649790348471674449951004921453908144544359867170527408075097639128100982018289914538231395298723258478934806007785526517468438245994269318616382757514945832032452180186383862933904911062785147450134305879294898306932541387498981976252958295605069008118281892985830085131729220620050095011583429042289473623753306007212313304324538347436798409290020106332433621204800576342864219709668388502047608220422759385395635679942394489207014708384690208296815688687522330495526489287953369578588363011267703344384541434737388771846963988475972876473506427930211120252639142222549908429670589384740604496833726440269236961764386447318335879286746012920401826783215493440989017298746288508522540265246405715737398543507499378080104711150210197964710617927649983471756921874987814601046273355757894767309888384244950767221919756938308079095118991866877903607364020488598584674272222271726662142998733615376457047820008152950357472431191613533034542078573009295442278783960170006466615396170701440093640638832174860846523249906487587267427733394956686536584087245130286325128524906072104820061630200699252871107157622337577341268458358893097164768520322055860079675525453953139680142573357498434017651436470008156514550750597751739391530794038560067132183634962390907887107321481441239240324847150131155660673649191601966472409726324581672203136454805612296884971410384243829110841139080875893491757794368783203090994930660084388175228204011664226484551370625209950980212388312751875334405862247852438433920011489169213097452436171205913233178318984924026379958702985743338629136196741396047568724021345647627202640083436338601371094027138481836324724114560342236904474530951427235096832428354707098582488637887474728671430911310885273616826063444061768150483722598642872678758834432694437252710970924014587276646698767927168375086746851122253895757588789533333875821404803451781538288337753862198729445173129546072659494775446964111940234379835355411144828954983213759643231323723877336022366717990353259893100195815609696960410325250440969032334389317371175469047206560598291543766600388473001170906837556824653222783310544037947501978250318631947919584615840775852349429878011092782639417153914913825944961592298357280853058701544204461432007035271309556453248060046861817632201103750049404243465632982548893823696122719887520822243196445317437018900165331257972438715429340576442844338888084850303356542946480892817305117576998092412665851381557376443898110057353192398678719887971135842207917208295531918404394801826445725664993609996754769960709533316838639817355234076695317363932570607977877044877147473459262770742034850173583463335016347321365588731746707692599987344654631614808034387154404659266748979193638997375894664570322407075597494725490486045500049092265914593510146173054613490576967219333702543596470948381697762642905815150988109943815070744258129953025822718266031683691279892366080315299971791948900406892932246862499297002191227701875083609223828683144288345304117671805243128624621785752670563118691929774380505231951331420807548319086958455908542413259251957268791126247698872500140851673935287132633858570621886451522763921424260912287973050324208669019729000580210307555233152080767305823555907317363751524902192692668221499272554292288864835836011079604164122492654695542228178872355937259482136110947218101906322789524640803970705378451697764806166737974978355729672758210478076701712204633955622878914282356311986069105335942646776663556397640930840143151161752174884142348501709076528342744749619476367097427262700180439623512899196278885833312529598881157241599199176850048698776003713416516148177562592762941338407486774985390615543745887666268001950773131017373289272369940664829526455282002387924782808840302131453756906989606259564110886554882734921657518709079392070557991396853143147505101370600629270637052074011988952288493717751852982968685229679821854992527812531675596972285695912043577145424945013758539970798088168476836076741596367596472244498849481911087297703183157301867451478533175953490943766155456953762221824124614392247452079913717897981813116568713308607209588031016848882257336442964203935622432635208110356339078680991650794807664431308513454042135003512416258416488247061925703716898387189478666065623664737746899246117234258478870310753817335261080264010739930033949492792618694151409544729454172244282442674365770429865384008157016194616851697629875272295812900827080448330349938001359099832492612301009625427962521035295026117599725668703801826769071430145602565882895622325521835817304303542111862135201432619267836060404965626747572314673112117944202453126620485528315235897936521000083607409305681622434801256566325122658959984393026781060674650615499660755774816707956055835551152181749988806608565402219536815185950619946037852436325678833180798875076804864797024547549293867173653667708001071982781871382081933982769657625430662330899393550800337595791820673579133190706246311455016449462304014549427032176491185629594279335455206399009857255137873272297616834736524200270759869287817027465950589575305731454296206040062941689229052199343886940644077305325046705803975368666041468936221899099992330122868501973654731204597139333357402208508482654313076787292919281480991441262758810820631409977107887765591711900409881396828079788797670149000953306608110786935036177723484191792044122072628805458833372005793934808663150678078570372467163946198257516178023539320201128765070995662585303647104309266483967216330033475500995399454353584174248011793671497656634264357996728459413934276412728626068479888718246615015658740825421665585793910700576114103482965532287869032177482169883770643185501624040276678369393532806332304908443620743691412854818153240824532191904597386735108837593297262198201164273165102866916025254613155325064299265455640486183504088557395567457555797317767042015737553266951694179452907372138760118413036763297988443829307413997256786466632882840576968414916495570139807440815870309637393236694027739186574044616040976575180855303650004463126434635157217331270168630306167385519153355936732837712419746881051636247207192211529846328978738076006723884645205810527887956239480671021219622124819404778093085189146653890921773745249018612413193747105675137258528836770443317807290033106343615957580086896255938945966791642526115555276841285315430871828747256407803693943885793566562589570934655820844314379812034878909103745166860859758753755614424934116813733273806561276402506467138158071853296405347901712381427500807286038103781414928428815126696867294177952496322884121368711394805064171628537239941131224385759594240874348320927024011865717957080161977160342112659685773880791672527941491631433883347269578849473688121380158062086297222588605242395481109254541391435310028339629132904170349198708732211455632376418506299952322370232633677857636777925817155290141148991786394979789652253896795578746194802814466616333356143313104238048289129029362326123283382687148694880957113707369558626826424325906921568305595124524970184441808612078037274082577959284830565922653666829997596602790513955164008454775437287179413994815616051538932913115415758994376188769024253962286118080532399898272506780233243111311398739619883502794590965987649027896764513842077439311728773657177645405980804198437277455821314174526823234498370225963827252332698828736995326115391414963660393472798911836510429625865563472838923687627564191344153601251628639938100631233752923066627624101143367311816944507606033990260493753797788803198833485266716942803000943400061746159305979205219554936884861861277413234541488010196260838670303548183888426287766737025448310798052332943665240424707775706636523097674337873782090786756535031077632005217689328558263918328342348015914460950423307690933683905964134066436608503140339022575084264655671427073209734230094449841515017679398614577213548660237246492329367929586389478555527449921277799318966960847798312194504750862510403387229463133890849272848885229551490717530966793937555747083627796840255303470987573327925844886434471765547890143143302187830532624682123112536370511919145453858697809168029633245088089121253074746999081134286640025805049209731111754998690270104126776572606574603395709623066436080114166085527486430755865942638719913456580038042702648110606525125747133844933214394636506365460208111204414112295071270511723507082273397640322426682036321736115669204055076053521648992842438128800278837186432940622390364762764539891865972720654707086577127297318216945343726968595062798347642927138649042213310285183415598941625827779306818177331679226749062471274778477634163529992559046605982382295209693931915367132241649071704529045497128436444398365866008177011101436845020644636080013061823261310138118920583035054458338487529729384609356544540339297817718550325418400640097942553674757029664432889544700745675915890170251590684885930107124212028987298809158607747970145660684922189165634637139883373624840339866861965826095712953245899757314107497044760992123995191297507139589532279094883933615782561527665749278218813103807468452840183791017592034585222722570239717421129564170001376185275944749632908644500845027209748483840213317220910719894814685070563270510286596877983762486850183638986117495473922380219705127328595497126552617815667323598842777764002245722437054731550425231737734008905620067640006130177653874802886380143629000581149945792983410165478378251185476676715087966956797731316779169028884883482666025267264931913432665514630384625775080272969994340866319248394379490585919548137970020054546641602601885917213695706611795904140384890438120069359653819747234271190876194294974483622914147271148171364730944812701631639504650113962261415908086608904648386277391478917055519101178455499986636149599091084742733929145161094748071587513851559944580338827047780461500180140555260403113593971377342516412520097415004510712463098342624413754451374194323899033893234747116028130131595532204382372248257902905928577112308427027147491432390145583586839186547202792184859945802143154730448084583804226717165936913015574217509622643458529024155298349802447525224427264837269249897184436370006955909591543906993963982909637005105007378542817335790078121867271570539255273212932260642032688836865129900035891743692529035907129455501879606676765723633528690738877698611538373862122445635526459772017313137377108609197556573261342062268110142487852792836569560178808829799959398540309861380024470849744524591107850815738606992903935072796804196596153154241916674698522213297627749681197660057020100251344260587750272514640025152090984971442143789013289877504081023505525615573869116982764993548034676400513101374498366510565585995569469229196966809174982520524532784330719814814111666119590720527985831162497505956062078687634407916472088239716265962001137439634008552074322482749050244014011127349342361933907813277611778229407023352790499706703776901544900149041173605166135079603485556927612812637629358553436902253790620747139830421405326071003440192104667501700085999012752954911557539544308179978283610669357663239578281968348754615506660226770785063975127827077141656258487325117215810228679455165922691204666552465131100469582679876223123088788949518772170769264743782601318822062636274155971952048071588354083497467764683421684250679889488205816288727177127602514864112465534602539900540037386477133654683227003436790304827669585209836486650147669799903355744732284582100902478901245044533696246461157065749096588344508298065907952678581780767623818345449090619049923514082611175377564681976574903513610021881900826559912376141597417672909691195866613870429067388851737891892484516940806354818858939168909133221426346810302311556124930715007583384943831150726971570412406556630671796032231423400223922583818073441170395204956127746218460807455703770206617291500600497457253477184964424627847655659770300945647248916818625748660415770297975148688281021673065392355219708635599253476310078145977581437947576845575748555787072670710757088191642892216514086082402994860645681981634493040569392962751259991263146086209960762790825644435950458714117372779084469037671064240534308171931610123260895425369485915978712650937901348734704164872625463274065134054489133383916106087453559503191874660628002563021383886206848434444074141041251159853976899907666070710551830590594113707734130092378030346813655934556919801710437211185344924541742266427362863319835307314965214703608565609515319239096961987529775796538540637512056946175597020870313517818680618988181214884792882109013590676287010234517587952160623174734634410999821785046363670387831085968843284073649375736273238378741550971636127712490647767405407204236522186575060223752024317286631573986029730116538760746421709841756630627904282736959259105914363780085375832789335037967042204392769752056227922238355760988301866026753956808422633890399075059427202987012432900867368674905541871388081754791190113929008529069862808080267968124331231737897168788275985677473455645502233022910481324539438526095866607647105260370504360105983269649572272566553766350727248498246794951492039062619675691498300541388447680694909771401273473869362171477592309334456952175474953301193189530675023121545656263841893536561310212418108271830948563700319808377167534831324341040999126698739130628689338487449009671917368293290008702923854088120933951238562162922750324966252051427889934721007381621410923617654941694083429318704623754088080977732914122368871505795273361749406280980623626940283100177202349153417889816625865613032031428357805479601237817428914293824894603744423018596931879543101051231570867008749934552347978648003532357195233297544818508555907652757670638731690341601838705894518260595134647375301660547540676091655584325415488915557860743847571329442994709568085652646996711050203502029633524577182779856930849125285236023070627089280434943337507704282815177930132089228322239704303635253912456096829749259243342873925558028017880416559739367270190226197236081555033475909167952576227551803430584570179697734462653903252342875722914180726474357865344093052102676661146928736633280843944879752728705072042207254033835580918321510390808928871176618916434130328959350859409034089548646032377594134760258544000468062997092687181686503076474007820604889945348948416255160976736074270922987767959994546455481113717207267828835102349050704407457400269944304367417843233536495358342883319534197741618420141417020741134639289101673848817105816503336801830936455640565013823949086086802582111278148168263102778216097596620626062329425439130343651427281005650024220053636471025057833697560870379463643731253557683385428039469172691153922791326958572027362986632265752486207856092742134233336694708720626877374826493688288045167556247286155036569237473928813339173529628848780832914764930079015544873850281333012015158264470305271807407173352422040221348634485922464443006048558213089427583967872513460639912063670198422854003070678671012184661692468804717486707540353497558567024445106868138043885444172451262347482150510815945105210116512969286848990915261765783674907764756226711248738036856876665406339673021262463721348787989995414265806416459666611819248047679544535288076177320779569133218807812808203774205174039837454930576507966086738018851426994936317936248285715912033505127097223022678929512168484993716648758951195837341325441381437666287834253777624605240320611075513777843102491360428785550747274635939677034482705430803251348821774005654364687907233288123242820135028612914217328166956802966673866118501892998871140725278856364643595791371310725792487777816083734188358587341278680649942291028072685075944127841324801272394943321989617983411984785006968917675467676634756084754127956253714023144987328673418891634747480202704168830603133562946155796249803546639120108008796399405461893638237249103135719759235719428550221013020954124853767871587994083602034535796909096084476739668888896168056029659956135616572944390089541110461244166957475073735672366608995274900516629456600417886743296616173644709157712410131614294254872479866372812378852298910623851193040025990259201467767323510998999027597584619769940435788211414791012364182652042639198839683134627691883184483552243879536848748754837183826361072244067267383537089019724205630278580183242153515056314150165413626905532730498227859670426819072483689007270833854240473557055440608404809753187012432753764201685667310756101180797984870511882039574090184414968852426679577607612052006868961436006760184132237498891604953711060912270215648776076381469390815793936200382037997109206093176934327707928156018393034723772925655816289364944548057330263909858565681453685984839037596830948249252957499800806968130038771170686519342372787470216279860441944519821317690375846350111437501116570672429235362901761193901101069349424587652336847972340530517909995433146313476347409395372985211101901297022794193366938615680564446757097799578413670987880680110259022806719507360915536423528454231474426008201855432042375960823524476371900259609340387848580750288267649131261518465301376051476067046800386079404268080825683271617646135877725670631329901325300795508710372443920940678986285736290816674450679718814737715389927494419306551615918162471901844083791746933038822989823695355356429803877387052945781638359495888304714519983808915119264867162287430488488068254675520330010588318336585114116794044605017532994060100058091396417811022390167154033890465195000185709302437582333066559176164951277411301485766769814602661238686541995517921961440159012380476902288733733400657230786239162196959672229100281866921794276083122007228983246561840618762142976941114432956652256720576210616489348513722838173613770911960372478968025121761755155549409204278419419329236699474894208722764331252923831428207768916325105890248640760232730670661223592601195210945498900705536121735019615529937793014047997483519819166908810274022327122987468584589412363567311396059320681594849350422037683423166432883763983853353663674028862652960183256510473514911994635198778716482639302986656875315164737855299621939554193937847822470868611860438512928392958384497502412599349109222412006753786297363425390940790826336164241826791654614559071391494864961746232295659885880491844575121550380524609535186485609597047724453859522951436074157601365260567011047753038935166422966652624914934479395754402654689958067141870051504813323281922099244388323783088624516768794812197981854638199316995234290876891540459603157496676084381705080997531272726306930317325210022089140825098185935149560040772882672413346803649882473242781050731784372306058955957392452813589955555316587251886598804179843810578116166779267841585532640629044674230731085241836195255470662033409174620994275886933276141140334059330605456194685952213189836074534820916073579180140324700519235460302491946019809292238462780653824789742023094448893345381411984628497214769088732664900644555310300479112916097578711847444153692607245317961499194189321276476670249995667482356396131425910695564012709122880861578350831756068638613022084392329956744078507354157364353071827896782828939356128811794798330143246922002697842414864644622554389238501296058697735723485996491897293420274801358104531949304371966820956195791868149798886132213797012366868153004965481907393633143416834046766989424900432600680964418754533480479327096617447846591260190974645950916404657020290192088885879682133833937039288369965639905020517937096375028643932266711064445187280628047634929449339978744533344694158318984120521217703757471002437308435055066500944655289657272436479130742772311954586529343628789258647703763265050521030112015562669254549025673396639930836808376038368273931453603493136103404044411250451454784297520325702183076125062830906469682735437784078135373275104062230398194173954564981187957745546990385730048242469450552021804993897934615830392275107858895391062953500045892224997182377963815489109160295337070031950905573848908377928336561896585182273839834899657918391312366149916363754678261428140423286697901792966925612689576685076527253620687287293380667231163317811945163104392046911274850729664889558436430729865828820155712693847120958170229573202921036919311332174377251468559175374815065372812056417477150499442488962364293075999567258192381541842029728060422465839462985638629340248558770896273577694551273381758565205158750706652304942333833926754784110986240259316160397259142848528687123699819612270524055255894699260436999998211884521974807206026926118549743543140168095737724040330029218535910366496747458334343109708093465094949143514869994504394462002125925104225862724737898028241273932858815146677648748708146863982085136915619186790366531657282440423142578714135031769072278894415926764413951129134224749095954333689547800649579621028740666918581130850095251029287188577957569054305305812362813661672804234078526511379521529794186594130978323458859572026873685696903523327371346068153519160099809268725760450743891132334965529121574586594747722568868634614068427137003702268957706718200241014612160232953447927801090929143056415591720122324241900711575026808758582980485911129063078003386429696168111188874071328047060591783762489053271523917153811934999739691164987010246614078503916191961702022069102099382357400903804677396604811138777100920612008059708755935593836119706489709037745857625961728975338560546019045139484440708540107152979820606815384975744335785789480203436439481197973782698853297905858632818143314707640506754636269695396128678116770976406093630829587719178246518588132788983296177612285323008549454818789595761261949869169848882515155453424991303646144416409426059219429239276612903355779032069994926313441068296032854350698613170426556355062426288976090047234245563074451069626627981914926503022551166166009618144177115610553286391731230728069292756894323152808517326059005537133198199881976284216739979057236149132218429475968226941546208950016344073509483299190035051601751636912249735866090984710466517335985366729144991766563006955429329354997038603325153015683611439313094279194240921272206124561875070373558572652328452862938648608231676257772078546632547009988026967010368974728739133959707899408162994502519963914140436274223485425938958168066553691893147020259828295473372978190055768189786643134875299482690952222234987225707023029678796228218537629419919172233787908402997890767751339295911462071331392766668670429181361867280810012314076107655312460329784584165608146779940538050515658212282569956225796557039335168688359374769620574503137674422654210883224335770373980534936114613651244791493123192827486426749199157412578817628972481599364342060900196062712845638458536241643137219839799246938484273905967805781862123852811710472046574396104449066802238005200795736480271465450135171155904310061253798985771035312111276560231026029552179071585074711357718649021555536439121461010971853157947515945120624231865019889748981320510988893773108767011299178660602935277153539823191814496905640759256648575759278599010189236176416994879329987425378238021600025550255517478172606569722782407839207539234757375917215614733171700489043146038740335240893410522523244631649406749278066971280384847973450328698107432037315283940780489470475554020845451542619286514479399977113682300456148734339824374285197210459296603329299327372324523550988900198275554994467584031076426276351133925985006193986537155030257797836927605192794205612268335772643335908593208599059494748323322782198600896682171843880739352460739150470093516828805881120736202943655121700942233820240347258382638867296749746321237698233954278680173067714147264364481124203906328166211307423226027006320864317888988088611938525195927184664761396862958993760229358594296594782607544936377733200401509419398559543030536252339457025949407813770141151295713265568960982000662946444272574498107356203749696028694267595636763742140752110985293778860558221085096113704257439811128510495952054433763512568875202721982832012917139832635643686348331289842175597638379345563520009434449908273973271885628276522446278215156125247389798177293880564658610654270348222520326689258671890389139009375744164449646157184677643336100333389475886271155687275352344519970082749465858814968397383476152671941366769698569660826588234078084490471698288659109702749657587900732485328632328782691126650217691721355236097262766354670657071715135444548299877251293240365155055270679332592338986663889763945430797183500597613626654634096229069368673945305091289892183939827436252159893813931742818449326146165947170839164081281467133473943186725066132849986098913715602480865495964519852344818632906295720505163611040914587746845429743242376919548106381878214429227053689094949661043852797212394597597446377226174055433328863068059080721975790282791195798470352553123514775676099527937034238988012275086752199562633743174652462712338246036723466731219742023962878967566534672436193580177855183643072218344874522160841367835355711482353405263325909695033898317294104095181721047189595663748269044109954021568776102555689037982161844665938696741185168501045145948640977482346532953687435120863012088165980740059267532996942625203884374420814287519832545407226742943677403566641519838920618829157137768905472633068249984457291005026675833569040825627496084895082263537728826447588460812576422547458168520714380392345208758506424256242978800333082016826554135800789420983905707004201727234969325912353339251601721940932670235425783218116901331801704628162369254654418945774383333997490687345715640813561922237306342439686508881039193115598143035953444563159973990093169093619419239200245748767744405168664752559044406589702274461748063502706347017426489948850412708185099814061954839109046433094676531511692988198566562995069777479693163371393979590351985141111097032508401028526644447618741353259282833248086981207290262477059377887789302676883938155092770826976168103716358878868335851583906490771999170023728113680185327472217364366932840179626475489904671298651726873325525269286316773509940083768783648569271567447609965817426992460484672847094078563080421551828298342680986172668555345319309592145182229293237514373032266386563402705851771075543686054099360680309892050697736265400111862461011295958823647592356549311808339738718124977414617283296699672574583282511730202323177369161784340111309881640008471691297549228737976507585888399046408934650953120732181137069096136593179888873252577342639659045207483000327113064630008515226816610543656596387691395687024567771643812147040344868248288603230648816325308085283112366726220868559805930855439843256832071972843532484867358960256035083336695449566204051121136657077476334136574948706037621997061371769881246354434352602109369116041541642163962470854326004892286488632244718428553057743449093181181172712207743039009779399090831255535275100618964530595257695324182616162406948692033487401800445677050889577418232759287908342487981063307904309377343280778445467881672574404443216285968513588800337127011242819487478986362145813769646493510065353522746483299034532310659339714064056887267086348877520386616190926673273453963860802616827376236900071666151584713978045925502029892799344688634238217433960265809449399305205225689462564518270519407720282199537509466368304509176740729536549878853811083481832831541556081964700046925725887694918980589125858159277873451812523534375947128953911831498907150303109383979699197866250093846724568952734079046514893465396752967196743249091292189288582879092278724142185016575821851983008677285788589730578954686450817071079216581220199659939287411095780103359618231391569515404779595045637060493833494737355797827584468004669639805351907215623331878126179395932453655782332370004517697591222945680475487714599351494565596186946099917005408309965598340666772286535720975506722313373910197995381712083983608907713484001632771426890201969920827368378137921928852316831753597268758553561506332288880700049800585995415271369518133329984869275971861064575213600748140612909575709435129012740506089512113833850799671842096853369577744497664076659382543957147138683878352858362080531096944210079155111118112933909478142555045781640446079833288460460330806821998016104200564819816204748374331594952746297303323669888011893732614692358573240477506161218031810274888406269017210723169915552842247984502134742415390713358135105739158683375208270911239103190164642467508291126754705554666108722174536424301277448083498315156858851531294613733895281706829239300410341330559542172707732822113472287374529640862417277693184745657242155265508378756535176666088676226348742931288110972671400107759934860033051223977207992781087271181535367837486775342055865415747429195869460050151644758189661071599686159861470836864096879541559103472302398172761580852320452778938622751071878231434024350099394181210584376291009153398120213733715401946748203515015908241357836420088281458185999581674663293349368417774505256795713150409660947047203785355758863644700624653452016299809702738859499013713066648585257994508697262820739284321305044896919219776974745406215526026820483436991566174554501399293887280836156645611994073529914384973734402886995197048474333574921840283880748394257138826828575281744334753049096365945832639854035922841724181648049883576656413643429600122214137680157585468311762490442485589388013984566111618212116263894651379173897499530299136364877549122359127400757529627365925997798705098674702978965970518092919169303169363923001170245000105388321670768526298332421715032973398945832857360423734055522613407985000960418379418380721481625985299897265733774743854476278652987870927715978710659652649102208375140225783848048356980239315848086959944459481793708581177061754401939311291877046844799003446450405739984089307512816999209743425746581870126261700390048922239625640654881870719736677249068700468430615516273283376147457800958600904971356340728989663839169853249960593044337740294569197747509453699257372016581453423126221075868752734296543491677612524093740260029536690863685859188035554135494951435292211423371631652339033394167947454139747755136367787036327494076595430624575310706602005974579551310022535189761993151357108721390087552964804391989950277584154184393779500633158063340746190690429670887969379397970515356166179461178926015045350839138869084126119222925953932786005715764586505932936807486761110410356799537818416233827343603111271858599402441089524453970416537747059436759152721874631869314561445688092714002150384135709687481844967217812362074438557076109218224754690432697217307272851694661643717613578884289579688725901964958183982255746158425969103891638099458559541710331257054764624876431751025904094680869285425031376781523502504088157242414956919574378585162691158200542189695026605497253346458418421704061151977774477479104113610846244203617753213157402318380737131427534595750359763938800333293621611334415069257393034486721036885416649198522319931284459436540367937106744398433206203535419440793157534345025876641367801670331960071058989775758107501623135620849691548886823686658161205333339987230770286533776213560746231707758547954990438336309514349965429091915452024733762264110110265040759838946802791942140392362271187714074456633026726286577272532673395895403043219931057234420011780116716015524175180263888617700333577922651781500225575211859384930918707541193801226863008606662822828042597654196200975333271410367194871777901109587951759783101340881883675576699880509973421132499071799599386485512924411370108067241470344897291693185532054097234255394136033518516725333782186556441189508184373658313221375341120073211379774111013445940080546756224479469280461985849600536480716672849876764882182305454794699406717037457361969489552576994123649220726347723021877015571955592244743236730754707389462952339153084127989597561339338697625459323395073543902220170752528206604017176026128514560008260990690799800245590680691481547648756950389366377558535631100283328939925552936941089224102190635244305712926701104409795614996213490720360631688644103062088145439013352374998961449168908611241558346862132437844984986402492248212937669683486564967389799999663134587476423003595200113605866528374921714123206288862168074960064869352112244626326524511059862970746905027634671701695623096669906898575380086230461690379764167870148280308994967167130267786096758645445590224367360755399201569296796586050069021778210876305368997363453203743385058892015033986623145718270370293865580784741795194541826350187093791803706382115175654421087045836067553091730861475353108737518007152274831380111323525195555556110704070036674662079544227458256455624568238634082374131787081189746981922173527526828982634969930680244906912107241923558815617119208533250928078658426688603641846812266368491443105619316626951784106733312563440343128920144105933920546439969432690378853498722382116753692821522670087186251806968583527845777912149910821121519933907872569751478831862793708335223930460674374289053224588841246774801851686801998386653102251666756799657371843476385489714141112842679078349120430979899786835976171722961593225618731573755519225590249405043762418146983540231344167192231422183218285474494663982990640740827587610262400515941678043521169821789955921019093100117307168402687015962230687009688466407671819365955713816720266682052071127372921005790371264287943882456414373318195844064605561115569411918098046043949741745615399670187805305909697310266997083592533917774720249759241338267650805843127322725122708907294819091801101789851766110289601572800661239534069052692479754279313436432944940918012296395106016109836716899101876469581644695931757083349305908798292366591488488518462535259028632188124632402306956477005685880422999453930501115813130604698013098401155238596727445775661606892066116830351993591924020976046824642102341365997546765482223350319938402995840413664373428568433358147762253831676743815435096935584484788282040422688647899267013075177503690603383509065022146604166709392746485074037584210976688054014636308612862218169191819686454682398296042289354481678256400210544745741132231153314707595362123651606979515698326602275211198523326283679777477369139446324439471832142811784316640079869363374280068055339514957740372543133453831752018713427664959667576494777538664008565339288917197703423779608682826220462637286939037104786966344282837392703673367408253815607907525272362400058969653465030076439489897243335762797717019552060334714399239253819724216404751337131600681437008045151360201821297854874835499078266365812764206930718541918250635943458523297615143852382338073772490853958792196082952465573539227595869984523705192625738927294783918140874759673939647836340107361648121074952785097651972392342283033664041356272843573238587485791445028239784925935829008651515843823826401169376390334425345088539628135452912204943131805581665800961997885416004133107003069385478911790392096272196517655079987642176414979152150497931066882601341984162612469575053932579048100813627997611105477531648048547111120922259699046701251359527161102006101267972302075205201351991504645560394877592829323703466169318602539606282799957237599175824844526598014581702438351877309699807752163318296112506093552758679675473172484179282821145143355921465562953417391930888150621607613792185969691461144914296952827221098502403282322111761234482346562086472214032410276485035859630923642302421116843683735598400568344110367244301054158242552347673805561596395917612075691355692876999229736727159592640196672133004196969420145943620443608925941629564004015873270267901684738782702610133587110068293146163996216329960870626917222191832643480175772633638668944694363468742127297271539428161932850199050558063367277164619704674034937974107347889011956007071389166006246228742704817157525261473658951072928486304233214383121436148611456659674564259520143486432481929262837197939012735949967977247942867341808827416671638845209393560791448310004327004885091505238212377665576874774711344246103347986569326320758244977660749123713579685232304315747962160493936801959135088359417777931184961787843213524653696780937379703338783881314797737456895725368130537026501837110079608896337255848624672700220299818845449027871084007866384517123293993576195180085771734529959810140272008900971122404809626746371987826438021395398227912485833312823538239442594696415448965619444230094341487165882031253907893154703553039474682783831906232278437991390644946036205198553538055188374527211588588569734776851869931523299962294962053643937156179755822102302523308099805751744820951722399164943627198294306552522525940383982278780258570601348185570498968281709338440553627248559812344674082480912230374491771488399448905541394356203649705467772146744108211661195619871169036044679467112746494393290656237937246130882562845270933863564813473592837151705881065766509719106005262600908851587866241249343512604740025189594554957837574610848507417204557843169379701966804339276627843065237927799518897624060997732413984741865130966614336232473382900347936862334069331834820243784403451092411714827854307188148632470810984966807907981299364088590187532524526290031572634263151751863437688223304756330514199611179500234211390182239342711240303663772947760900104925873942883576683107835028382366600004538801635720659258883325647865481682684698098278904611891615895693227994883967214939916570340946856481445314082267950844226716869144502605865529749943274965793055339721216721186726719241615539763486227145191855444716972560568247872858993310245267697732952372908067298498586595948626990260854328481098339189089048983126417029578121083492327157613150870667034447038133654091426627332807588559552899298397834403308998650561457898202383794988670823924994351711943422410148516528301845804580986846509255567213166476081615008511742315874961763847697372135368830885862578761401933121725686050193189179970255080077062953001811773839943025082520958903913570679244724222149777649940540053636561439976589685598375366772867706443982598720722287730745340591219941076604836728348354441211815334141708007562237406237870409036681314516368421258021147631068329384797406525099255789785655280999235218767883799331512922146553542340396385927057866680408507112854871226546963557569367194805446571455845711735655958770792266092810527700492934988216853640860990801610496248723936178323898351387999452683671501671915684617383394868874898336436653960119816008187659533363646429862027115967477031488034750192626239891917773204885179724506654506538270726423436099977969323114537875877708524989701702843847168224926135294912374883278405940901764169679310728740868491172060115593514966789991982733895947081166738773518389217464420235101965736771454956212433025890776664835455695960221680479962816947305696023326109504989807114100382848571043257958778550774563788640892804415707221061706484310998456089623567693034946708270441396627753021246115789835673062161140184307023200111823519597887990127781646592761968964882224349773976436759019527590201253447517088180886040298072360855665534333117609756650096531368322183842583962517271272300651418636613232307134659363831129398345450762202878998300120980701884812175115371482603274376938616900053088867783345233616332008492005312071962489713719556458104676742976511147332600755509215646589879198450455222744678429172110675310535141710164676618988175264071603990390778135326382045043915537567092216943436031636627419253285525497847689075063218417232755339643724285980898479740065557230198558796137118835394722202387872720173030085133766532818538527537977774578327066118069503853018434161751002974640244467111619946896258032656178300391535821688696848017678630044962730646859550023397316666024660922455620843275384099086611657925521252817732002769717890413301069623881959337843854083396085247203823780076332120300890014857140397321040704296371504867062173299138839677015794347877933151048369949126440771754666902891261443636114265571798430266955287859061096145477662901737634483515750188961179365113566957398856713638286100533380778297815367033304492797545036471172041555215503292467545182787444771920438063609252488186640298828585944766125965121286684045682041711494830199901641668249332262812210828008775442822659073872948088358070430572101949909200899782745313503235350027250906621103998346734442981758180351217923763590417707589200089300144447169222274010990321516822832657191348054472909591016804118777344587796781856614818668246232570977349557416832571807305390225791166367904291164107668773383558938779134299212472367466337724436189235341113451514483039747357268400671027406806751904976729971990075648204830818970930849343479498793684133539250851372078574929637184329182471779592572527205097261549944338579508602351039360094724046901204283382587179401910131631919781932501656811227996488377496387059726104521192491990716919263472846597061021568880518332882352894514861426214288447895587554992531454486616332952891321799839673987714596859896393986010569620084987924119042020773733517854603262268919448283620631712368793370940532935413542529432600606061665891686507365083087851707161148065319771762415618740325043205660962573383533159430104801834378002164242606102707120016408104018012510514721215977361601681303625656981844169641705014100024047330449675008349665299568893682374528502768398959090576866215826139577158674498475628797634321940628510822710676197109453186416389316807741533961730437339457368452945311489725161112582290759233955768378875519706990180321239304181020861481068122596048791415471096236239670946976026649115004773543656835178217441425239766404128089203697972015568902479234887168350779750113089311431283112616683293099996642153477697183397517021736497153591939102550898081771664821833763712257856133548575581389114768193917570020197562653547296184188108905540594710696973576614020465884630906132388972271089241347538235219908447305475993079894119197747228718481680850971725372641340265892592192798997646651699043283375944482161428427761079045328069355132381739203424372141442952890028175581347173741941422424626972950426793572379792003613337920222303825703731227520403672461944451509948436719924399789054275844405310033137687798221296593754815399268854273566126876238805191957821530313357079523842314723477853318340010003211455058244183652682949893221364550579245070009436764328084020571128927378462993991653854818291893784511323970372599249769760149682743825942676341123098467440424585702843276142044795931438784222200486132309186040307494277540178137972353032127766634894135821184372982121029621700544401604595705547348873287802780502134868385712098516291608033509310302478344116773710739548997703913479636468008972059255679782025561063472170109240062318750943097497360627010855612371243007194499725696677207615434327735912255941683691749763050513055781505082041265329420795312944353775232342411096075200071607594470970736804244118278378264188583410642415692868852982118101751788199221512280250653721254335785127519665478058825178092331884279739892758943930865197229902700745801588703691248733997451612527953825323552624396204770431034054732126458329520402473407171126778549237367230369756348586798742402656293139956206621816412187400577031633446040065802806293217136421452449608907046557410311032381690086032333135966981295520134696390851841482018255966164786433801175632105029766004293811590157911419290895272617514685033612425115138594319752205770985148757997520149161461211306807391887004760733573639796180871396071471963374390600863921871340720239629583823888971766565304581006998904734945351943596739113783627301776198004048651212985816519865194786474917602946076050297571628114286141549817630690077298063120233588199001882448304065783959000798674740879588525879929909650039408198205709005147762531002107612489865634111289108002446342506807609665278242207958873106099356683509915679947405175887326028064657201852927932957554974437573978971924100324531680221815575944758979960864955900483352034144350893392241348720954587565648396304758948819325448238413691911018737762855563280949687270230036987270354093236438286315000375119396664766409205917873630255970117953985189366400625071116521430769124780394992108955432860526300349474350900480015392290514118165163119929673376504609098253017939034566426086925002344892894778261253860568372303456344577304971323111570068501942028139821143793372413116741623877289345572154638767179251692121478719323883711309304945117149585406416551433747012979760967376209051962366574661441924837034530321059954071666175839069327252643208715608716710866144687184693780824494092329096901430467603476226581551000364992371323665430054302161220809883274490097681790524470376515663685578354891749123854400807793218310509897144061118325216529369577735326755988390112205652554951692058733563353684087182373679064481378687483590229897652338778418853426796559260417937858532066428969197955621413714394057804541964150507764855834066352226115689335614507599149241524288890641918733589835164056592600652939909294799998229347643900067902757996549609778669229729464279271586722785692097506538856716371874617423107672602581901637959873689073396703027531075537411691694444890516919137426367456910469441488353278945975108748810162942136814323012452190514889308410222510384542035300593138705127352231772904044028054953382758420233949874494769093402401120364696744646644280781280677956416356282500012375803703072798197323686979854493856178657697606146587341814281909059600238806001427888991385166351584173834546839981564649270594114804277577501806446056298231794178606702677926703199146349209089027773799950674680819188970731854805917034807538828265469936689451523449839242368852843866317932475138239102304847303995738435930875748536272009204680607115116296878902440327250052483196823119320722974702882979500041587598485226700903998280302503431116559874062125387881635195084923765959590482785242293410610555454921804394669935916574131135639234251334284871375985937565869361053838915976289455464427348503722263696984044397074756531538106762806382540299403166506243898253888801265625700846504186696471774745808865333706594427229765735209594275835809343193965802408029482697303542841036311731668849433180227745333122656875007199961980116882586622899394218961053397786081630250624388190996401969306931464647932225576070348130353163524833914084797985285983729381790136260969276243216573135601820811975231080542511964949680663836416953682722768859416263351401651435657161010019639912894099566337749714172984717679210283862740907482579092221525731111780613371075477472459574752469999817638306692333373200881012871607989546485453231922883685093559366679641348425814870131168635438849629329786136887533255496885376748342067266924283131203295257968597715734622729995449605789745230733381173012816961167760186107635761030009573380503916889528168486818767037261506985050494485809666873037368529338335132993465834372817664556074072743267995404201511103436498451636408887658334535799468238592681125784376037884764509893915454974279991964716312114313494018647504511408152694895394092680326450485925074403202478571815325649136861418886695501103053707172046766539559390417463162938587390925007646004861716675032577618225548003476137838560615727975942382158807160303204186558543539009704566776277548482651609231166013229371398337787544937504481909597001562154780074082456017475978970703806356725816143248980006006712752425347106492708275437823828656495121227525704614652065806350225250231826877123528772615990589711543920207548117992914862483034479278436548404741740695263578041816193056273991799790947855240208508008933843452879584915593268630340478598898672934927083078467337266492294667159693713546792157124347105555196678597293995059174622222730430353339891416537525903799714408885744616417781110609544337112640693690537272517198208421542929116885774003999062768813507545966589764012162988632353826928512015366602325137779889773077426589334865052819961933080930525910588285265879203147433670343516183160942093848971485943355095188061865501062617377721406769151442801714729359552611827415869957191691371458948440505508022060339426055284926554357269374209138103628472237469046733812993163797462171600792267280783276233637427222319325556133640917698867310739423331212001032816646028975493014780555771750405473881065138580557264846161584681055757419931697185730740149028814443503422373004795028698158019095763919971579646483994336090762977958567300095229038806598212857272221650067663710093936175895541566676433184260405489856309196998077062018988640208103330253306000453976683433259792143656546712903273854607861381750852068558053360087689530866929223362472455782014711457938269168066428027631112205972739618666616413297423096953770996461624356591240162922637588748519848907523845539911711007916129802933581181550631920681793986304481781865907232044625609572262407712445766840475881291444787738489563108219007103802102923749307069099670869147382304536368525431383267105762120108563332352719296455628547924014949769237255108966361915454029484547252856989073923536648029598926745514011287450650017376185615828768598608277317942021583345116818874541800278593000698164516646807453362335837512773738800328668759193711995936689948802169828712706854211520313509549729710242077996646053191819355944344181737673668799299664740456032698896585936691508873062706552486051961780082187532735112259789980311470193224482434281868505940774847702298012839451351973977541107629576355652185053551410369237468617363220794703884641923448902332259640806624135549994585156051525988514804264959971187013620066559993242535849286347352202866705978199641721165349669068924663700681008243204350195729005298940993917256725075199856940610618305452502654750880243846188520585358837646961048090030309386996840489203399972096335147200583020016001611350384274382185374671720715204859935876373620246799829223545175930453826283882894860796263699131847836236155265446712073844048620660768955756996023226909866079786628102400500469360497862464634029182822103058843024425258851878356206183392872303480555195312534932982586191462715084565915630595516453597555908734058226146584192194266130580587321659099286999186169483301906216879654387088651609885134279488054172080247875092249545043661238013951015381286360996004709166465009657286429054134147353794906509627586989412349092543284071097413103595758449714892056375242500309737554255747854007323303445044635301733645746424058639670109254258334703394760373478620555729466151488590302640820153849410819633257741387366436103976523432377735260878403330984753117900321663429066372539301423844361068531669918281197207507124113246397157235099319466833185779503636968654705098374354426708848093094419148348484245206148515964061902593956056740372960048533723496201632759606919110626484929182839085017013404747503202065230044605613602710519569265835120296005815676385373352392552773865979294347280505310851910946108270449229634781642251391582576298987414228848728913837072528426880763774318590264058982856051153395462147044479583358853540377867753424458348123825359317912370465064097216359316438946605392326496581552664056950859288488897909873719851400620671404351070509423716234410978967295643411168756265127911801880297500646666016823511586951564161309742045779583099505805229643850624155131567260433615966622566054658423124343186725963261922812350570420759181152696223033864509505485820594869058184183746957109913853412557592886911510692765002545214150357098380761798687901505576690620891181552585940614461917110495331600416602914396861615999490209740009110767431334850305812240498623175264288502967083721773811447069190839809016647242089261220466668894651712056987388421610178700573568861793270943741297630343870792435267668717773785314477745851711030269479242946795145485191590068722709007049756700189946967652647708549119693320512696596599681493948861914112076976229301451097266414588466865975448156632860383865473130844619868131889429926792630735301711589693698448870368177529881452244617526786333391817457291542044093895033237189762162581548455760985441483278500238385828496581736775916492143009487372926720357361232339913162866230687099464393150040167763453677406345873200450705875638005229047967588941609752977735971993297553589651465828102426035220265561038698494655112484243801493794024293481975109456461933654868396087666447457605148535554330698839474733200915028696465794101115424953526659055379592227468852666269688194801141203729513116441979884025027304000170718390421488720113346076829768794825188931736634295462395945873340093492875540445287542319616407486112689194815654666493294975304295021546624694633094394644313077126420127944764072677252103510685242096647950089992883620970008131854912033011894041092906380387686274008599606902333411824069490959759044330851918114820370473835303997139158980180150101988902277247664344283056097700190036270642742901830981257050480768234883203617168304218499339972359682419304074246312185343849059666208832837806923195523886453038344021384715668830168765252555752886662226325252581905289506594997313287103579263676179949432236551910982946913790821333947736708643053672382281155305331690022889478916791098774561946331469749980581448305736133979672949283102530728139363205171468711552738451607895143698290631603078521083533515001041700384737858639972699327991297174447508820079350633737578113612770466620909419821177966420963809307882018190161200683172578259169688623442778400004695417614915637811733278433794882560831428989434728434717428888946439624460910359512043041822417651028710904665048766023857112005397672036868215044012419202711518978453201100689728947977797822042780138625673241181090476619131546467610381389184735029816629567799551246181090147294057579937065865972961536496695051931451496810079213787912916046608839910655356061508655544082025089174437706362116475141437783676997219122071928964621395934088865785008381314201774013166763701512725069876592091732526761367512125040355555961453690872880019950066645366806642687604621420340449698869713624236885511312623770304270198658883187858935754711498864897191358526251670694456098444895275766041815077915038910020045193097816011740519817073654725149611288231015953244728347662556556364316464577935603749855510634373659660341305166953750678262964438463324423094462671912765941220530811548331668523639541656444172514439560614624883180186434965975014821524473301139288517598047386801207381524233107185135905676331489530394249929163579613177441733152255816299450987539713745304099811587389390047957184802306729069349327274475263083271408830312069330661948280469222018372865186456242896948136801543938968110103037275072381782927800624940559623321870371801514127947142292861427628997987267666440183467847676907044890194630175412083658799347069421242830778454153682605250516591912048286097802267253307038410332614010634490682567000175235981645584420759657542177961656663544354888694690906531412095725717068326287700737290431992498064434397342030098865495430832264798051435651474200069048050407436864114655189453808695467217464586957262361750331508647118410414511141770854536482754802348370935763561539381718203689161792924335042553882512950416366549541304943029331493803875464370494606348316239364200697096939656944898367417764661605868414602313561318816766744435122492117242157586808400074470966172824471731929298955459312517748402852444868494410536105010057915200662685225374694834815419423862601437847137176795538953068887901703548165108209584310923527075956262591509707108774126096782010445302048786943153664187947444262825923212139645607541477466304135087408067549483388700432012066191335678362746671221495770540478425124771735731368649843514741509011308747199645067536315199168894881676779300887229356514983144478261545116433546517704418027509100071879093648185354713707439022091590322490499846218971303559914134572043353698995389900581338259254572284074486016427403752648051409804300960721844412143010585448302296141234564786927950847536100323155115796745488541327265684688526710680347590861519814016088449294468038635183147963272566438957597886673046320743649365517489819314841473149541529606114367055923290355921748782114522432928844069587286980467332279207457183347635373898812115676938113656863097950435958798578419111632334950990961368562528312928290845113829333777766693216992956001290794038550354257974308341559468337980844847885401290031688973143891666409765850930482125361429563986182819312377596102775970516895970493971123288112786680877906455810230810322530388582512182773456129029153608366625687008324844385086423309092520226217743641957397950205681592143215573860502034941885248498184830029525502914165097329928394534638131024848046426547621365912115192545337441243451237485904819876589963521717357766439146625434792308925079709393733520681602922897585928236174241775202200954622514228619251776507229585930325074984495541826363633535798404102656869756926796708468976763965065843453788550222752893519546576336403336964668159011002516727576658721090540153401754348599455753653796288963418400628065388908504578931180506456905319133094936905782792682968465892349825348603363657960702475929963317585518414975515718889137928031860374701364444749834726878667680212608289064898581219666829454818875572799789400755594531897633794463163861432268260552344519161936498229677243930637208684038479102919490336489433195388501521209997001234677628183414802018529860543465753431636746739870129740413285480510861503264615413214445895545350860973280568980970240220454148220437882412571459417302708626811620779670975443720550683273399120686294358812099210836158832562282357574628263589185958448074472486706785259781532311042750211697615584274744823219482711603937144190759122379484520989613778321527560290213026044731159541881957698415071214159961567788686297919885129994588577385816054021127720339149543077070297649422269975229057513056602869253949664797947042853068622079904355873484575745638167760859753053993952922966806750672382855686944419744901072259393136012697926855616158076438588164022177452846243094780196059041139500349665543941470050998551090947315242503875288884575605076921548292350600170986790703910911361521867571968695345967141067782757877301287622840691342546624279735131153709142574774960865625867941125405934883138363138930621619728914350247155970149688976429881442903793803390001028472809411675835867479690650297931916776669189140793279789388543615688407792605510078255594084688101102436082090440351305784672997958231875261768273484950430663341674885272136237249792657176822766023235923983923636956634692477158254791399727129911706780667779926795515802295794514814271999061336132667163171407776725118848406162823657873975607515051057086570044816104858219457939283147896134592332548261930124960672158129115431860660472043242712563821544718871902858842198684916326203957054480214639688687727473639637742836819091499024615241979214595983514065118244846678065416284765970793829361071643980990632167777221475172406423696918902831227908426469052712281163657089192775033233875847823599786427128074517600718317726345005003952900379017923628985652506108011490000904740774704186523774933213047004463715970994728516963222559753473360244472840433734707685563534727141353838737443885992383146894654418554636787242139634052014868941675868536183455354721994796714246212021718264586159840180893038589141155959009339987487897055975977221070884552359981669014221183465721610848098579753476921897389251751171809490807559140284298890685754305602082645748792591034944529710718821743797758735540244483794937989257096884945170842592827800488655117974868864283592698459289190310423786551693813553825274981012396634575280361035617784631175762927929590830596767938378915285358489369725131936572446889707948714788918565903962418164025392379151869880728876305934592226554574660473171999418821190920880885420951260284517328649549415509863615642608382105591190164326873632513396810572393400483243345962117230970683021494178272702898787638722223194122003603675202521408321675332308153285753116979299880430043575788668149730560199071032125240342098234317369870367504350543198887763698843319950362486502292355014394091866692373337176588947252611904966314311041059520750167539454654624157591007837273505384310656522886585464241397851726143198044496124024722044137930211303073177097876448884683659564396490485168194542220756523157928042004599073205608915970599188385879393775418879896604839021183953230390263345895689283385225705551804386408841486519310727150609273715601181314225217333906490613301394639690577613057778937537420275357974343940410784954218538346006089851381095986660535448768706928953970117234644019501353607539459800148363513004648906888908148138549571111452751043756772221922870420707100758076343952473307651858453271151405176042515956227928493395645048113393388009718121757808713302562402408896141313744363923534983689048544009060839314147594345332757169474807788618545617677203590364146347242817456120767347392248160895559263799122222367364915679442924149728944726550030447549534318871507787358414014104878852066796888774609663035163705796666806378534795486130519851272360273228242369452505667235323754810641616574547699446267403421101083250997209100957619588183419402704037779876687067971743596202171936019114894917608025265852141289862974109071100437241383909938066274737408502465128372582750867869512381003739823653265112848643727663365362290910300071306822438629503658310253018095561044474038806065225543404947916577328822815773313335494777137844521169812812015304261703798792764318531420159954030712004310696599106793559392425633124056376053967947355645345963684787844721574521552486177557115912034841807466868309290117200188911369570137107230118041382194581187035110930221124693970258325226783566468872521846182879684878618922198130794546247676257165606061164566966755304924187230142913240555154032970567700060821536435178203990331198643094884326319466484572270534122121572239619347009034021999676367469663357939674419452405053075479278252812156139960148570735163150425105347930898696317346038785900211794149184776649028748759657976152790741653503658676162116843592894844275354955588620907256523121805235310215258961910785416840880230361937209060525692523655944141216482181446448858367779191245287337337568814904091967773136396203342302338666746130331900054387580261239296082773889583723131749501637621747210915814525336587583184097226341679422516973066337450882699885025270980026952021941119610795684465965765201726876441036422709231861965045769549640087802284412153688946686841365487125360852805572110379448471326158498343867222174718045620840786147786152734308134034009298281531592654051932144766342711126739696884632796361271433100359125765423811775346880236538605085487106796294863517635525766240079553472080319215977459315227515412400099483570493423623684515003479700228335957456740754617490772199478575974670316090541853150991424404247802678677602557863153930407764459982419785763124962983283870199218613934715409385476975856476406136771344560729364451662078604280423141636314063608324915792671257954692589220249243393091586610707921607292676090364284410344728727173845978786054865815267796129781194408757700673774636825761394597291815490885563496308646400426650053626164749072208375823742670408835655410860308121273573750235930563223487191803809031979423007209085068497878030511219836458653939848086523523585601742172243942015761139088579947667059814062035044557949875321828977895362781248075180001500239621751808012817021380448369600253461262922931546598180242831035863781159220048901366497371844368385856938578114037436314960766332463668456084025593967932492121225517760334094519334133805072856781295690634050279733943034774265554880535027838654295284119316776742876646563542167908174915325056013256551458621589484998697016359632437546086434240252001681233710175731161526298635146844787643967726404300267139967057659194156226574507253057008031861425269206203356191978512675769182503012993954671364319847392408211426254961112378378571547725850026226334490885644817034692826805337235985808115700878620306966884386496784355191883916565055079663959204520860081023758388654339186199396924962863122006084651146610600322142200903648893578242601596426495831389993867145733585982639902785834802057252970652537027030295719461490325887225634038689506108352501952713563903910368105919146331371853273709796760868113185984429824940017005415068150312311145766499910505688425254743476084251006414960016011598027890588077315000640831098919679185932162964049194680989964337494611929060751878157415128348619568513764703306704271411174589142767832474355344167884305203224595274976259850813179131871441905521680219882887490452250593135122221610747626925163063440150401087928800980422083064755143271891700432236857492362638728294829564161074536568232859515614007882811313779631733784125413457626813899806639845697051421914069516988145456869150772267805596128089597853229059669518569470124830981419281058124754730428852232621005790503208746996221895953650401796974213114719256059468758314233186657335916572315238980450712786606274510314614787888413471380284239752359669249940427317788429842022227235924687469928677652976092535423967095508343954216342639783262558294562147428252052197033992568087591144380228174845162161867420975298729055251038507130673986922617619282675685111145170706776226431566734435312476299670942844587905164754331443843070171094732660219630133338981456361135038149706759778217818495903572808937841227556004504457412623233438166310411465576150019850925289388594951661604671537466102288614087865666269128609600510221236418948300669585203990906054074492057672015818090769117316930671039002553873048817835765496571131248822962124156948918509522305379001004166551693443345116489001846216870283545854367737312657701146256260103540156431224057342699793878970236307033384165390385127992662378298444304128023213802211596361765972989847743432525024145662680226680264183947463042630010180368520048085384646942623985351719731110033980655853460392950571140528154242656074431283188601932580175013943848741329289861806688275806017368711951927576689972038015569137027619199630027692762841094207897020863575302958123565737144496347770772753799301763803407324834201409754379588686991659583337800866731545767013175703449377024813708927057271579679294499230389064858975999318615795523082990446915059336759135938429728244659272323379104896729838549571386269748633946285881589897696297950042296072844355126204676110772630632843514555937046307279944164074893092254030414073661930814113695418544615838315491259910721608486771125945809420678271826732895544655997159774506533660671412283941700047003324917850608826492034162477015023063337165623039169365505358189850909905677231960511570236314832396812263201016987592706292150036626613926810200982434581104615812985655530211271766680613116202157227235938075830072631155121979119805670404789543737541854611839888296227300598330295381698592212066039922108483620156831658131264748097741321678153015264923551915951376086427306564841247444228569063714376509383551987446657811381044635884039159328506514408832379200321246740088397696292298787406049755298421000609323885125271286884089379702850867807817595529881344072890750842931275395101698304166197154571751697008492299585465373280113738888868919129529179538526228618238990987577200831196678288648283972220366732364067463433472761643070472791884499396644567539781306798227610266705167647946896602345770766246994163684092527602710667256999989099160726289826178977968978408045240445223813102197233101616959717311322074029341685543223491472603557844132141537838023971384161369564484268341688626488938692131688506599111863801741407330557516575102212900987380735500189096526567854524401542259053573925661304267795755682394343874380059500233778277735376388555714576826222370197673225512186933159253421386742983834461520188597555630301173440447426402134417852893290377963973345887821928740415155377607023323489087489124776888421757425608338335551305305382474071425681766071387973830641536073140356942453295147596696399047575680617937484717463123081484406249794502246367211862775404489619301421355507005585836872524553522154407056952164733577600738428269110117938595263482322875705048679920052125129485165026449769101792411943533008558027906884762047108120022916935656345092157345312032869972963767519377161173490044926946418522585870957038705976740672249851232347891699825757567905191108625105792314446643278559802156280576361689503763563149956110914188869277945261036588602634393411956996285500797208671715656110018692773901204771374407391408623160368369569935200455730246175518657724276853455270521350927149680767233472445072017803163485572606585884493456634328859803372590005238592005689019950279960021907224711699032437136205599488349941283878978640905985531593760064174070778939641321098368951659608435385443048560670705304153148556614465261189422227343248731315323391175594315967669449818375093862783883869542949700693199630057272182436816632725104004446542460236102229393946696404421341161799309552449549539369799285948494539163744127160138702710593030915643840663674927732583057174847130149465790265186649869214623939317174338113261749690306131041304199868331934383383012234176782760164061650211321905069270708964496064457066820211952969472729106531703070963159508233809075181311417721978849262303132341227993687142622410765382140602016833862979819208861285422528407643483211004898195127330904765682290316674485721646644525879015685354814245713094422263451901650014146314299947189956854997492829291188863292773921554156216662306671557480846173665795515729299895217826622396307277534529721624357025745946023004062044064499225820530189119071936463396624599799990762028947708646856526929085000107321892249452848237399660545729375810963836256918338956037702840934633244126561497099344539688990652779624906329584367838747567537737175957600153587037689399734726044837688709251465124288760455189006914513288454965697640883998658901729052960290598403994575126099557296319487212010696453438181851031471633638359282750428489508871077701160452578140950896463847665927018427139416671028033219914095416116972282842362742678125731174599447017426760826451541450894861160382735723644150994953135888127922170350509085412741561163094311871979260046653969794958363597323103796810007512697173926595318089216309017524479244802618635140417113321172891799893775538255311949642519774569553450197413121013274706586841829904146184419993013335411362450372416162331897600642354970384972118761388151271374031310835842196507492083355535768640799163573408746336559963031198222661225480409826490995110511896319691922772684976817219721896849163990193627036779509910391042706510857619535942084216188166896956251434502222590235034873837547970297844142232884704534508071376544493298851037429750226396933993914137009410986551714852235807391573765721681511479676002794874076392894460458617172978137802737379064153687766731666711184268757328297155665613167641396929049480392689983333852954481532705683381661566114611202617619886847823759874789311117968203470660712036067558262672592134980233318814706865993548711600590756076646879759298306429527339380627959318655869776624770072166051622401794556382508109758100888284847530415842384247831648020855951484351691642216054780170564217736794305072893530650014173923620146749509347213253774365753375790367090352501650411833838184665105455346217716201148518732134797541759185778407417419060391950135231699593163646735203415022363635721122004561647172684776901833314926539407460143862602899049557359768129406085540289136769522378872168760656405511307611430291426063875954777448308765100622872915426928723525012650957867023714186762387772118283819218579809961127527271490411987587210518305850808046542212161404082395625868056569079508052340887283767069207230570284807614634470899764323055630931764642027855632872093405354637417953083192763666865532692325769805817172688757429549149589995988422457143083775132112663117264919818462701014809391118670935453868954521673744483925343467550534438496378316684632671788540069558268105714921136207851682471423395280199747947779396125611891932350611518658518848061639054026355173840382334280101156238711045137520747806721631874804214874447071339305459169880194521392930671003741738976419645220488269819914451137248297244735447729463295870945439996774787485804724385301082585497699850542271016009855093541383321621745680897296752086496354547888629600683791343691669149126016123399745528404516262500056769337353677631274800826465530373598674881398654775465807352762083683438429381834062936800796734748507005871818907557688253158265299118117897413585672314497652314734170394505286312406760214992838353408247765809447828835239052935995464906967722468658084861812222879123870753214796477743911155675797696460560570180778620013502133540694329244570314793816145382656814468255774583752774280122372735198372335676658813977838593654349256672291228735690143018626178708868090937660650142237399012204303646670828344697329424590838820721139411646899122903521947685531023639163591473436584081162611222766363373945659406798881542888488840525011022477650029900857928225157051952131125300761197337277514056826502591088077004826281047570912143990905869204939813834952353114253145684767316152666757966144153552524425399471673753832956665404212633707679038226679685354767033894356066316604763473086423212566428080898533531849936670222724257094047932489834343451640552004616792141603923286021332188414330926861670022037760678739043157898849602246995739034508782098597773529526309150108539384071443311975635597702000725042202553376320403617716098440065770567132681467766393861271486842845504297182832133660384782290022657480786229316079159832768373428424643373724172141779553728298954826269273306987054397233936332886764750227702383495685709316698161547599539058829110227377787076290196600628027592080635902041024245171946984030336512753685349113224833408733463610200876945725152034497801867985047018140929420521925258028598578978286131715277585485184123730893841339898843743354247783470277621601671782520936163900556515831414078661948230837782760236700837563063414004280489418321701418025923517127400206305088494421084619804582103486971174572853320137062245310792134476683060506473474683789766858404093325135079019204673835912577505590881320392089415767667998535184216729295244889422012927425522569054103268834549675311169880534470034998905198655099106050055909211340858780633890606685769427421549863662232148704653197447837078445788298163292664849502615457938946808831609225601056109627728703740574852892420580863016439873332494542749487550016381002816686158654745996770939886337778393769664288471314530423726785907062171031157495132311522901155361100220151995425002674354113652250590304188475336435784055594986267115216358728718819971492980849442425382243944849959110195182430594667872266740268915480701407584182377634910506278711608000571470987200400781441010566980295911204871189083019656091160971297279983787464823178277923729882077737793067714894958815424939995614401001179399470491901587930695505343867655019971779310564679475858786840234242476724091162024293466455681210876484601920390351416445245230844026023623127076147599175855797025163743810463768433679089506855862310531883982652917032587462868381853545012965666040349023811999283776906551426150568131601047990540800643317994429075780321074039829207037801417263653224060752275700898258608429909646503896005525586462857351258135255831494091326449852682378887393524946564176702062095830624134384335528518496305999205892999057451759544896196002287380483940666344870087074595317886320533551318615567529906966891594732704667568905615575401317509900884840149669434944726051273141670542626075553338823758745189888550112523659993992980078661642230521237693946312612776658141703282573266351257263921918911884822099317297680030295939621196751318430376961239564569220877272220901716411823834298990321716997454213449249384141625161736404017756010239205410535155133587769459428302432274529908708399197587054548583610695490810565156828725988185613114332226110690319315515818032701230525551115026621128370324674525317481514445669557345924292316825621401475946656785210819503745490200300426798810478492900529927522912192028069859711028133463907064995011874087393769387280018054954182861628993612638453817420612872729063202531663227834112656866519605623821915450965393805077448649219767266168616141943409880673115456440783565455071283775419519799235486764173196102650602087485001379080633859522163415779045237674823552533355769267399354167949768409495143592635184386959316888381014793946654981827449640961421763251480052989938308312058209630403068290783922047497673460736740822470780776214891731596019572823350143208997688347598470634443321870697888725723527758032615009482095999593602793352802197289955392489694713097061424516163166153610586575724399132312084506983354960571221420535315053945602616975551549287467370091225657000385055725040230566586609066374130282352048100809730742430577669950727930133804643628350186997978853329309796668845513984260668942030768547227186099223829778052549874076445127727877733391246924331458409564049904938585854360010484268694853082426541698713409487472351843642392494360666498124118515876700403379170719974245550976397471579421079343995182523218860816443273146277308985213129466897449687959310149018173074832950063196927706579270528031504128641658621140664017709797876918736185160487176751071216051857809719505933993521175678334775829995120731291970313506507147400192352975533052609808658008018183158968438266197900727158062872088026153624961653622021288926318019418945618900987420639810894173810895802910895073030586738724439850448117922685621484834896972500773317126914003757339417376519333987187860260600175942190576116317043301734598698018936017604517967508838185559557171501272579425777711344644687447325323794934150221115725415233908897146823091669371545457890339170862115789157572429488679696435629502744524760994028329843270067259333817069920384753662145622631660418520083338463320324614309453829073228492640289449227682038628857405567325453783134626847532539194411802458678907974894192317220945377527677914085886412017351359444613415496273449603777276143071033428911869503162163135156499758508907311271302717694246738584168888884983799690591302749338218006410681019907739975187852593806772412249137808406821580906600331732338100360662883528116776494576522569575112312324786842174066838758509488610226784912809625924369982862547850546862858356922909931873290348110126980788519681273271151984874712039942713129555077916004474267413695667520133981562041519458298276436401838926688057490798217969579435126186914154299353843126521033599301150501309744191417021900857173598331375292248889022657102701224983406147381605641566113303639045707494683435881385925534715066756615702822329707003857907881679645474054985630175145483494127137120809514666123323924624424904612560888629772459835464896867887665697817730785678726851646779947967837371708830713533689076089187241740123164150286396472602848088734891151864879009076435167824248878561715727064655666800094183016566599030728340063374883500274790456040107905272308805193523733526496221080615717018889994899722639193738016077070976534044074678465280374971438637173046762899489270798524116047030385013511526141961831505346910057569837728618843990966364293611095044542757921480295884549532238501931762604305743440334813197701656446009004228986254707576701027085487476043247871094269057493834610702808725038647648886662076140843078848409066761767599151602176131213095735813562607463054032656786867731745776138230237636581296619028205310718803843648286869865908206338132317213196305681844912685772370553480135746681733542900900284648978537190142642327366594436878792401717061921247180884580809980154986950744654113080640694187202574363974432942297999901030308602846900732993514305578740959493394542451863322427116754210537408559825377450641512144337985472586357434360639030118493255615370960657123270014248832181296642377898605507558104682312496276492527982840788648433407332027319390347224925849396773635568769410708616803919006062772923389917935901984649674260041336633148560837575492117991008598077890654857492831406336814306467440949177422085407439134485775976185915381994171415784491493423764602621969051365152981776895111279385001057558520379016819103959338967356729019524058508017842250424764060328446403458455230373944852072373381449830711445767708427796989447337030971275769246888617724680120248686849693638268694893398632252468118563753282708390296950634959985673829621460948570809421791146665785833598079295353027661196364361994163274157632544845892154225912268185108837991254718918712456845832215402197486283648656957402827746063796155657916671689293397599947849747525181328301594725408743723824811240485604528557932475026849065838097459346784194694003069516158473630222709514458079600564662839178213776018058852482598825449974961824031694460956717922394605236321647121091555105342369658808479712137809367513024926036352686946523134871487717899215572302357493116392278884630827478689972901227222235752691125315116457233304907782140221629861523682858058027101481792308558059092018427198099549476245767590963081938293261900345986821054628274697353604702807324483879223586188957697108815661402107249069987219636070076991642263968401572598406521454671055864218889656242896047672896319348196852116718637203482052714546276216075430815980445722970507323893186129853982595313617822213150289736529825061638364008181706421117396178911573264934846110732243383894369253423139638400732373580702440593688934098940322059364708622617513081777512469818180776750733691734220918566268353037139175636515417994168661191750571352958514037990683235292500217319287596066061135287374359978121425484789184984553538261763191422335396843613082062699082204637343869499218406080675630576526718138192958825045367289482905904149559119435304452921072368690396750797872593841150334216812715128412449847143180575672476050002075799667709821789866133838531762567683197031270867463488132127251050521323892702944277426060980916659154301062652216332499758848324916707906266921528349498328336645580284340649406770590044267077798014235073458692653786588121018582975740801941736941456636216988682547013580777297365222441806829203209165410598801818990719503532328798341912644153683326276473698247549234557085047922680432185380151822718848055938944566412266009681973680725708922474200944949067245040134955143285813574452043922809005894087127238135557701451133551657052600041067525236268025401137612648312582410773659819941670016696771076964045260667463021012173474625242439470191218892676571888802066237569477780576744071068604410012657350960329823323519778181041856629630651885230544260567082262112628349424208459341716407837443874990331222667249159100717738249991148459979959898672909307157026167134740956236371496686348564599758710703588431475394762717861345488562205530983574303350086322473469173216184659752650665786115908132562190447765556591487230963992080766526265585967954570565347502980873364581875215903373891767423399764115104337882196602032819783411288351214241760408505203040574583886792578944497088997714289106286576882166361794400679936319486522168760699376725064316878437855962713796270567516117279676495889779730057563688718897414099528097740465634425700038051801571839590013992958567608247018811655970710692675811673492663426983044459041763222694833112296249696962991535109739400095091491362959278968487889143555945974447850760462791528523218867789616901644704423939717115430422355223034600756419585599324701430728165979726141662936104292070251607288934018177744386350585327542365487270394776486901879466010289378988809214583243579400845112759640588476014748998613778336437497663295420582305706050463430750720813518756967382941638623014821510394616641539165235660518098286637231737113171576382443671800495322585658886698117699830990454895059196710376267392138568462603292863581431151061841242599063329115959075828521146862500291638750202922602531733531220700616384947743763378802933824301263864027882155772717429789446229430922376474751105121895414578446614201986795620465477752349871368658986992543397161226805678368252167718504782017305739116431529967181687319311559974597351649526081709481608790597092807352684172459382681437660259240609984564365502455416229773876638781381281404456253665045346578756182729307729456904244804005632901905989407490466865484825007140639859949008625736263250658149914155903338820668924765570393095172796233731555148412542054033798873620957621066633953321786806735945741823031998893294152905916596129212488088496789736406643912122747016422949140090476898352230333607643663528868453819027264154198157363977281116473795031613553899007216764636432170216155933155611264215953661988959382539007109314344385933413509430710776491437368919425017058653060837591545870468465314473054882257073604031828559577737108750822245141703054475634130151465142423817053790384680226564407891507718792885594710990365381348935121392607341179450295537217920422246705816295661636092246855622424785865436424207442958194307724416808682047485347798733983946868254308102992652366875775928644998352950427952025707155001648266742155050783204862550537267379783334590129891694373926902144908529759115175453472407964499382882526450232746604225657477059391838544223955949488765894235397978837650766486651412149743985924138689803713500853960227583375370313140455415640331257980483531514046924139521574745149443032400270705302745550779336903743383672964223790508188214380072743693643765978417229103298190937982103700560823056474523619834144937552648918144278948801285308887970955645143312001760282678088731221733321209292349432667080552648609977754645841608549522448510751257586464976967218253239050563939682356030363750421505525019913836090432943460623384443070912539417637399902774842018817486109031563293553472694416686954802415544114214643098815689738226808666294387039896714868129679234781477671935876348628803514717291215483133716727993025073293295861534137710396022064760846336489097181101022699651115860282930593593459941273264623002976078319607213761219607912196084776818570390485132659560902294277060677061971159349681860721555205843600883707878645968760062611288025674389144835092481414445051753796581155724738568491785731078039699976471723650280046880721631888338323072519351833107412086684122856820723787495117653722846399457238872902438917599950533992578289188973718916715944479846970615120814356756519784679857627649170312646099653163800180744976696538826077352022159251953857050794347328843336016446044092546730801283517874916635458250089606348768625088936351257887336019774798771566796010963769036205769503906751390054910071842992506229474834575654864547875528389484128802325322469323101450700970238747084081129166882699965593874698394940635212250660794527758474511002744671865748550751532497060245982218639198275858439016268863447488951305054494393658182341478762281007622084582024356488931569797458714961359030026496685539886786543502384693427226059773947110050105499661438227651505257200842523296777714647602650740524567816017054172627181780944073850412608916894359436356186442680759141552083289245960693638832661816798984617159199861764080089512308535988322822499553355329945967236702370269443779816626627821068899451947874869564233009188081105069673710080596635050268260924245131229509093146827451849076189733851616031999461740693502230617633413627903348494586020330360180388678721039637671028231579847816672863270693996988061807293635460654997847674553280962118206781175930444307001321917624348834900026080143687736052322768691878143547478327076604242287435277969183756653643710912899533413407526033800851799133810907497885739099485418718640263405122287866632916784129680316224294479441657072596472104591271078402443347122564974773843207050411478602156706976183223655652805371103315690833544604056959347977681700200317585601548767003703031621364025172911364286216443724744279864330030800296125792776466237382121801716596907206819707151239987035747190717751359051497211490322364333378500678480308008767564254876899938226670723950605950646064412217026179953334963440468936203465877767901651020165138972802585344730112354611612580851768333883463590454121890003006267157447367675219180870026362533212303623589397851350122292224731193217625362470447581854626971302626708675779667330313232909140546977549367927631361250994629446845447015432973069223620945586908591106950088531077842596327321544027287546830384915083363660333854537775293591271084850254256747984107098006773621278625029502854730121373094820655481550639272549778476322903676760377900690131687129922315461693769190313978838441633511709057198471199759758573138013548829647694862104335858441763725125577012141498049959867417756609492601754452269006468693346383883056196302255103169353942565230887218412335075503821890614332914546539490901961718970097388318189836663995324466861835596871010578416661273864244719246104821937558820201185431930848702664206164794358249306534527776996890589122608178150028314302310681322612386182168884004123353056891990873337726501308755514774265829585437521876614181552899803173179688122027575341846215390529764075040973992571757070163189969753596281070580487166456030595488370652287329586973588001489224216170739353368271968316300354114871114482191672758941998039124777205173545223425618495268664901872218677451663678062544480616812312286660612030981076395092136738266127791514408984420492711444853977842848673208770152169900876137084473855344676289009135006221845509446183642709214493088057638450903074205941070248043906946491959732810025182207956367275884599746341109988612279129159292233325951540170033690470289832205475976126125914393707233058280944039536148212048335119008303191069019660551609079918931704487229487580201988407183044844887230242588861456486679163766872789774850080501617639183132238581372195598856398791562739037620595640104565771943589060671292442768366546853548484811768176282404968835996581397838075476218326898329140946937118798855980470730880466238232827270760781389363547133868429896467819857942132106620760427448629955455202849942612444562226719892924034553957604926691214344847905050456631758140373941371340509920890484296587973544910250456399566558083283836239036539931178418982718619540675779832405631709690233807958549336767146446427657635023750278239976418406759119937305713862280448135395284967619861008710939065515843571171887424737167196136863894386624036216880896498338446251030048202052159384457881788266587938628425895118023719387120373668528737539829896121706431441244946994334242414480501671677885165147468674946044039395834562774739457332724157070405050089878573311146274312154125407219564094124008945186498154846049081214428356205835129614380432326073917163659114396506407237524040685550953707603536098480407941230856650547669617465625613056462823784679062411565568413684769075295938901317207694477632139729291883365842859009692407424978774236104781560366065682477112567604135831323197792765519127902405460542500435680212866577319309925880048332799430732605374577474684766370808073822579069232516506408756934685222806151361453089566226579306411386108011469406626528346336225666453881298950042419843811339412234348517101558124901065968703830741813335367307927646862782166203548044967579288368964483524497539593279127957951140199123984670314430294025612441784774117351284244298344083440764252690873869370045656832250457563648215547740074340900480850298465884476324598984528585065930159025312123432741974295627349288234282456387645713630859901784596223779250125855612426312642146285545972334985864484591193081885543687460391834785868611278922754001748202363598711029104987615999536894607939742955419617280972035993943153528591869146205932893722771042270845008534791754337511607330592260070819464550364842125170667514898669573240375121079963345059527320664078640937643732980897847970468862764375546023145029485782999334295311987203060883693505520231401184738369401915700683529399695572515043536131592522742788100104987331307471936822813874371163036064098937729626215227837746085544293615822459592972115619751388160207881690227022011610186375277756039863961407673743986071917252866442735153089485287366753953766960851619808048743104857871037499261807206390168259278124636066440650808264130268525864223252311557934030548479384255265114545260427153596009619503087855641325151472841205077349126789827624950468972048231661993891143440945605651355240340168100831190582178263760558995971571822119005777410270278379054503302309500349501433271871072368615799363615896371449038482939678969565500924185184407476224049399579062775050760229235677016293176970863644750174888890859875103271434628935544998411759171080884394680033483950305400528761177482915838227372332039855282481012069567595752443989299908355616554791369632267466056684375173921230385625586137311423068630106352097853047069178266766276576811023184618850179397275579993468968177876221725232896818915114213888884430998527509103020523379204161800293563222508334274924267416964430308778651456202028859427774685130983741065523377653872875802254488354666913084956167952164609633382689364529573261241241753810763888715112384614838626635892868340086003447949725756777782306399152528251413966533633229502382724227879631040825211540669011006256963827327350512627785537098004066410676322894496655254255485289660174081656887885341125780973942090975355686940719077618466956409903679159647710687269588576544685657474122087331996508666201826009024756191451854509016708310168738039652836854044925738371653413681122757959852537087700089028900520173372652451043880186365694384028519686365120714376582065352262252525436853123945756306791244527411992032721449866061357010047435790175009650724425235715127702832301499908652082197555085639826502232255298090797866953471811846820653990879663309025812978989605508909328038513095497006783998218265366668310063203860828133906561868970881095818820297124213297194886427396980325300917317275302956597480843275172745377050133750963344148148049190114999114221001314030069520107638289362505671937297386597808143232018399121578549089192257134361769132338996258499231181829647990520203201716917453801787104362617931737810715032728383424248756025740256665876558988614406002691155421300150075681302665317119514395175240199139190990120822022576693514354624253188601755714553528279778347572043270480252588189722799619713037058836896297289150608526789395526980404280597720198180448682581287029110851101467483691952171239257664009814058221126431312648562514349535494578514987554763551519581423487725303421530230968934711252960923917430427239197200628307040870775189849315990283996869461789527373887772542217880703357158631851829097799250579101601365708246491692754081849239224558005601550929267366197829396403503168446680129940951540957906328110971632008996904268299059842603104973906412912033927894589324998393782616169831373163915029003933446525486848141074977077938656848935735766441407323508766726989001324773056120647092387915272972008260477233387042443127448485450385829344206327355637548512492794391957705091528589247332461654290248859922425886989981101972899286052771202134513870993795696655009509594956841823419358492360443197383570555731598766758232713650765528339292412772232509623596158217396743824415129851293054366938901229211296191223673254200057114878173217478298024063017867172125650165885970401337522175027712398325337096713707127929292493567720232567675970786574579400477539577282017330649638819975588185807321898289926145027499824539044471463506028289602973908978037975533504539546476003743621910044752216347376113362723106666069732732762269737939838358624005714228599822069657485590233794928064817107288452031988729416854250614612086594600431038814646129375646471512867812183193812568399388919293444962466262855093020613243263269434955753669367938473705527954185003808708361225540855708847810523769241096723042027249285854771706419323875882181971361500082207046884119447716160738858589817855526252655853889146706119079484242481539901530841753592904161737128240035159901566643333129272984646016424091480582716939533370982734805690794963105562054854775115827190035994468602858290891971165049254458323481006262514966989901667822925256767235670560381372468728516448616170143290077390298815517476273280720038820785898035925958586431848327848061212704859646683746790267398688544213335844047086789889086234328635183940506623598258039595769411110566121972736613141823634591589475278082560497037039879791335238269597398446247097417377486832164223278303797751726030182897529587910874972089867191574506975598873048569120292109429732714022973288350087362550424064774963810837439687273080633809951560624181866462120391164086422103566681177814183148670175061025254365194676879999552899173943675064242216639740118919255716256819137414360555947862071356432702148219172910397828234408787587620618256230440149480325028747527270227987564208279123804347776243784320419048901881998917463011260122902515764773587634004268701703749212511439004669775113410638760253590422505233580115131777478547405541995267142392207281139449485458026204778556717764593077664154846918783344650958097845336198549696881539172615108744133535357439171735100932450011155360592943507689609001426474593253763821109327249551721604693156956550667860296302240336933706296250287650159937942999919432514843407849194858759031626608608333313748981318716880017722282187694488545292130245095371039749603069091983531877641151821962955985613928042745764222945965145315693314107427762834221990820041986811194474339801692334257558810148980531285332527172773304859139573005923091103210583498966269757962818279525294375802699209186922231009875511109955187885876113341904998151745173142041278915440651041112400236994540847229792374001183375965268720868152614246670707801118728706249803237922884335821198297867850601073186237494679662707762783539465882325515127935083480613560218645672857803307843610952936645163405931794836440738132551906349550363218622803083000399177807937216000598948061775545628411549824185202787399235518294129082251182426269486135812890282091720312297170307201073785919203054640187002733138031853251860115989242051867545948644541352463009877620188475065855484672418605731603793772565927600112178518559522682080084946500965201144164548550317940666189579534697261689544299055157183773279258655348379470981499087897976203314775150285042755215075005255052948090780615311587187417129862070142374136597052897621929209189993237916323726897781574425664789343442299096477793599166763196918414988043336868650953813177601854429402645770989030836681396575915943959173183520940137888766289013126654883461427433986224472940017204208409005581888569464075064121024620193797611217804648230924647686311625879906477657323720698556779524141303081769373101394962007354371021027577822020882143835785885943692096071831532236627269440900953697432552055397734523970210424231844895117361471907006369427548589147015962113256141877525429477854961381040964887460193732268934631621544831338116467851646536254218564429332843984699530225456450297510433907341643137609620342579739064989800545772332956482734274333673442261746976064661950712394992766194912735551963579725645519641457927420731796329769869766753983846603450053818704033311266280310880959942732472259887912239302915514446458415279899980132203556629447664774377392843881924252283773681970076828797415719795126983980692180243122300527631051719903159266394440261228601882870927722382877410366664549192443704938459706179536482681365963564010478822784337443279008044263903995666216663680604748483769343208113850367045979599823778961380411719607690835711364801734653997126584046054825449719154443818311441044873314836398490505733792618679932612870952862100114539896189891557869398948882802398141597716648362069688856768753132525363433540231074892457958041588352791837636481208460510811834210528786216845778458298725858881991360605895602486540913617484761853529475435345036343916397947356157215315968894277438884966671854119299833367034538043465899810945388822421430309163693672333191843870808496760408384410450691945430787511098480671641084887336951665048368202694132561272717790036764781047897194366411746470848406484418041186955561134619865245150912112485257898822936799507828483794394603827512353284873108823576676141677991510886874610351542096727359334625244073569281234564984430615972429720816732351835049450974598813044762223231496039081289925148604564677571347590713446032164223313987874052898651182039441160502164063186548710786438592609756141819307640673751628248263728774881645847834799473370811379446904580476338852248475476858277449812929190314534678235832630279810906701515291710540546881975420014673272853148271999133907058317291846536870421341459169502401107762351006963359020946399818595340079083713801737749178602958705066695520746982574816300475269320353692384965591689741052472924900560851567335406125345763524788909676891436575938680938802619940655194852371545360584530173224539565925557978338301803626877383458242762490620729146700682153610542995114424690574565210243612363537166501193182254367317122531111806850673728565205541281279644879964445885164603969528282774296347938760841822516481479156965747807911561921827582659466469118662344538763513948533176525315026061072857654692926863354568041783161098616549374397856457079724827524535918373238444605164825202982294951414377468482663993567541868326323797428443298518582836849950678832815054801607721897847325033945651834231983098172259364857207488997939849366238495832705553075761501851426355109655660374835481243596302910990712929542997695624022562777910152649202250349002460082872819284197063468853756492662261613508367618773767896839662054161337938754153703254103828455021100815056064138541248532118770016411626529993894379211124968719552289255454453548463038390672667158760283426465130409412976428846803172694873355492034860593539644218094474728689308472427028493412645216875439479227237253233734339800323855448196742971978467064648590071055942780250388221447403352366482517252025871905822339011985154381204624081765796278541922137093842608957085627644018294122450825742447716621541653874993950870049978260007568669113474996825012005642687788354111550340526122651540706953284312159594549773938851563609536234728827660016071702602259732112492845894099608214756309958034904729156772240386601577504066130017912754092052524127058029439248354031206773829069874603709910209574124839527989846521125540715289930635741529485797009761844574550109065457595959136888798656243733327154927656477574290041544584001558192638863725732716178691046142784573221453433367410592015818489227751477697782774886262079635139959186411534623448921495573936662093311574551784985261484018346771548978464058114840771135220159082749383013959894374929690325545212554833904956032406374345106570419869635908785795138185865497369848957678744801317463312594073601594723311103719015705126378549829222803680205541293668601771925988466204078799961951228938869776769941610174043149059256859650535046563640823001451947149370854578055861287301024895321257623174222732142106998050482466365932893909026662129448562751326058669942750162308328888500729252923235780580510681422298771095847781522450262859724937410968144406036979052683473063424347650440523257557244051750493030500868189196344270482781090463272885931065249760204512888143868376282549644272699926388069988550901384354383722633416823476884172869098863290026609969755511719948667384888277863919075166832732226889844644133551516884949728844772394503369292375808391828847342749831570133667813728553401881783216040068075643751695100867442107965019489010731764714257671438337939595776489396912782669649945774313515334233469480330390344488101193586924262742010579238467980683093474909568895183829725564784261306835170767124068077954575093745733645366945450215694301480535938664742154694076734922378645143691680752868539442993638543408505686335771646133599562755070987263710546030851887569953594077574920191793472235317010709374045667818583655938362905864475462551935168866501041617788108878196787036248539779569760209523488566973115802508225078933077616273049773631889237706577579453230982183573050992248290707957064403761117562157885238289279631754421384014647977652932793226356373692464183118718751166267476227976944067759390999862057206110918141459912661196426683970390198688614819280318955249111300002091999435909087628837139832790074461241596525739876742290928249538254103482544551981208852640306393975870920125654273463805068189622696290364331641516555662048701247441312946888948763098104940363400623319004045222596664024485999053064388889072154676284944889402089406654667686676027955627918864877881990177219278157485683087386765649377912320351908775423128538376274373482407823942686759516591749494492095037857421263238332133662702962154960972757965002704723962937242405839602768637866697976192938693709290185640426250409034993448473151949947728320607038127892113157719480176158375239113517146762583689227760603644392432036485800605003361575099907076417141290457836292099665168804166463673891935039917578138236151885080814913133613312867082221380328360452546814087746416193276096536448298850818283741727748140200377206468449066788131361109641966275571956803191475854904128662014793647510514317139243470909921788765430123216977489459667251295467356253371379783921489684632819304030173716197100299459141748183624096562811339821362788371605548969862934498752604318254628392233553128276152480412552201533598116668366090799069171957597380782464399187249562969118091011614447145626697291004129412111406329085907778343738089676015855170257823498781104403259298355225848050799236481753887882011258926327911727599513561291194404786101986046020825510114767261018678648989062693205785436618588267335728792545712387861493727834782571482231320725548276182626262447471240945415266280506739673013995097783133821235588863001928518691956310535888439440158868643198313003564428640275951981150178179892984412984884671434132493826466405058490318244966484551617970991706330660013756316259901440890234891856066936051122163384358113474125829842759625462321474393954849167909549185314758444696782907178322216364218245084445216651213627490944806247380832981871564603487345520990296387922727885649150685392030832718798425572907768655574722384979735941532641419921711843537501280714234090039217754407066275911240609474205482103010703902770204467225493924460403967555857914283315239850356621338225759671923189131103012159875277645823348121074332742183710825236045060950523180364641083061626656740523166748410095040045535350813465072684212601171824142040735376919832988228523246305830117515190830796124287849261899848580832581559095236258622209709249467538410540008637058972203497088453542881095014506485413073484044031344883717513484002180477126230638994497643140120761531718454858068651850814930972610588944249400311605630600829972217507502136720405609037748385732451914550362537105226502954182610505912508728706360320618982662367614343650447775983553568058140562209897970700815092882594220305347118776462113423980777019481667339685388561953112684710018940712838366960613775846628845232324367698545198661564214220830384762658244175664187115107775205095865709548461809297747520726119187754858812145069896279442945469675131819916170845011244614554502205197431062567483738853348638472697462121133184269149743996727971435983669960723783218171609516859176341109077768216906981643704010215728810281883508726758656664757929006417992183971091193835418320720505071149935679196244230973407360787102101898546191969414011702613529637969584475419564457376917396465636007484922027162119796973231446891501052454602533839926942580627367270486097526872408187075842982996897265199755591336920221947796766596260985533924210408938360528177351299075793722126930059849279972299275654805038849552411917268392085440300983863059883219062190661048916614946956246258055486247718718526358742013832098235081186405934432634628613196405632858925219192179779926512721665274174254394120550898983243591706751525945424482580932492091994444403043519803452297555644755515021957008848987754433863558330077906594403424957454302653728660600612686032462542682262484580434316516403681629581388633353575587130126779660079759467958164509933647197616494254841069222331768934069945058337195135987768848082440776302207970281642897814337051866358178926167698470746174323693452535769705235862321122108318984501837234827416529504138828306620489717645072020487804354125938147343870591887115980012421842241784300895177218504812924949986928107007431291619942111590125496948969696203483127160942339978675119253608869012239222799447070234730789332944945358537542549564714868570268915172541450378303830363098712109145152422305998306733128590096063945114797182945172094889908106118247187909539416175953047556707734633708642487620165850845812961600737216019045688877676624374945065478636406417008070746763972517284620484773705150784610782345410418050480760851574505589715183663680685044001597317987993799966715664164491700132837277309856760262252780845613004781549060596993254711519366034513586553431944662089712316344172145507390260333252808195959240307401204240584974876028638595074156494910419617211999946020102943320035259917224626118064509661622557799547067571544959357421522615882677479507991951710757774742192169787092689384433760149071362980066267981645197630593521422021723268385752489709884100923791126099833470985829069237878315969781517666143457467958343093735659422086449157149926497592818530119487461263945867179795952888014110831823223541171730763594261011454957121654882214902272914594198056713413186876510496187528220103720028832830702669095631362628916926055176076389701582956293751239696486181117505551782385706101210211469746548997810797996316914683670050929164995886484012472676233253746362181513972012284878801643192824023282119340302673917160403241889160198414385138774564391750230458052252558672312513485200392033932345895302860238241201442033808321554386003445386210360311249748513679331327985252345183820153336687553221991190916230724155421401804365362743807052406976633776765499389028377336228830912725193992627174278808475006453374218459360433782818258610497451728655032820397616895569136391066677693666374633426678578865212018946613881960638118401242684890860477119165103458711449377608868674989620773229221807462697440330569826758308957441697562319122337815433185970344263247279592121018067057820876998145673303610242891219635531022736482332932472371559424836134914012923955995172751385677545270624978815878921834265182238494895728605362154752102349171911573484467527148844875592092453310236992628560524756728531656004310412087828834566244486391433373609058638388277644505134018859417709703364615974502047621067026460415460077839200125399034274158292566035124169113105414286552008893156219968683154781595079581755474289212490392755720895447083973278023250166679512630838936139110563848797682738460667621131611649429863786454999138616243507276517028948457054879567152289315641933586600744086021089997042469762740013364503898242511372152369712472317342969074685966110157860489484733330325949122447413712003514996006066630147209817549921115030348776069977403889875831859093263203571958604162908432867998648228882065267354121926877516235577999604022557175875212444381850628783327322603881387609748601010662652305926767228867707275638632193396676125118263555712870189625677741287853902304520613251529364525283257191261255165199423468743812641920249026217941296639520888777730188873823984905090537904173071512950027502811567909325217401651945999507485107012928766886780530056077076096145027518854721611566657706726583072103510281278143905869966756048140104361740654177108630653793555609786106372743974413388057376534472312183394594988192306078729386399267665852555795705008204916882809675251465871881950425152422551652655863096261275927250009473661507370378936573692642370915384728145147528578110993798092224551018442663257976916521237940612318942432168987186230080498168386448210040338282606111818429367357586210703048414574593936763022079151313379308125807455206784773044956815158758418036513287063321725473576249460183542214247585738561646379202646375448486258897929996096287644576647867292831663995361276011589638931539021946515567722206461850868715667140426378916561098281633792158705261887753645181292314950196469090387795766169168394573276857074463069044307697554259024582914459023942382645504745406067050034926245011105779972045574065711088115598811659774786615497476378164992571349237992691395329134317521346698729826600799888665828359648914123583055536357400237558744747176206395891037610081040043486325849685587677038043372042357321153113772703466754292853177789962503600421077785992660786153954415132841202285596815931750593640107586341300175691145731738372634170196061058435126692919276225658894265854455021952906688917811166878794728224054919853083575762376133432119782270560382819880460026885580559090202552949483225967019063044225911140378524729791949413392125594109014961444045807855586005607012556008532794138484806394225809814742154717336867365858016000860640370476701536709342446236808720294401876239863425380225009378398759310360558373237963380921907609066080409392501792295571073718562000561069982459933796143280135464408890299655561116420883431874586437489447059025111882590526473274423408025972706826942269276253798723707336196879302360986541897627978071895902733912111728084812146897582581890778279109717438036589612089358084745381207828910107417271723409480182268396104685879045346069387274793265124671831639195149514220488541920275031334898161042376395230721137627161934533847251574181809898405529847676004499604231839235379491199452511837758183863923049327286612293366287087035640597114355805537413162089345169528325823589019115756028676115743756202888136884156824336993784568836192923992316826786418809380883292846326024645134850391192440564567292179590654312595627240376642672626731570542859416089257102505932040108584960822503747855013510517358321064712293297911839416888007787541819817899732810129145134010108591331962810944654926607917190005649021391983109257481486677934857126488813111616083337351463221794438848704620150077700925670190440460780662369573496562673066712017633848485612935728647436584733492437415813158134406886644877249304915627763256365092870798371732078334515847471186148476420413155424513094517148089931281877809771323203818401154501177141631539138664482173134608105762896546257373416287820765717333764429110730104043912197933283171213613220234562488834844443826865192812595400834239329667528989369974139791812431160391693978646870207356933286868673900591270510860682136813829592449158251023323318138095386353193483355125439808877692007752291008128351189815958515160355162004185902319580395714499826909502809729981230757901799049277318207412372783840839471786872038674228547103958758945539028844830837736179929612388416070590384442203003875801074880520788608930761707852508648427337825963151684917176885162689895363875278416788405978477578799508431081560706753573670703855753635196865095451731279831509362399489265056687779251412612935048764969361897359142833670841618383996094783417175507032221669619004949947644862713482120620639337176604767508215629544854141231018973338917966598021989475012389599491145745490397767934560007118535132706344539980809416512616634549367361378598349811386269118929536069777835643472870786654988811902612034533669652529121188390099225835681914085104986730314159291277149037340616587931755928459135117679035074340381413396299756251301545285499249863611617613190341792219825989945170796333399055495678009275675658279230822253890101916150894642717288817457160597744518318868984580028729903307247485587713998422254618117667274180448144621457953299265888743289754956214563588827828411710793087672990061849532876837825380874933426358644733330304316150565575080773223327796268891660414849191714214461070301586920163440203275386333664187555203623309256184262040195791131883755128927481851319502722553486306786703391473760958828241387153265927610453872526499250208497590617384673548582102754622519594421094103085720587740331678039039434215184923725476297948041298582652472302942366985322854376200870154139690793306323730757420227891128311094534953495905741066363090624630473023059916171567943996653201418223281480175690530544787123376579045216873345989587778616566486397127554152801753064965545883322986952472932200311268028076410516993677928781380861868122485629232880531391516044916891306008094586278453439897076289375264103712839867697612760638290052969025877775008061857101518485712635977346970912099264984080415503183669055810833933059661791205101797097342691594803183850275046745097746115755856721036223835115607374850245399836678718772633232329261040307090154659579012784528922425494567882990219377015046283574503095778226790971377419616613191404628585866626577433308222471129978192225283907553755276224828261074644572511466188689718487061731694996453462638939468165334749464501593837852922496203269047388556592138252664172229067036132998226953734763503432332048861847707446488680870084098442857280284354478490622513041766188613784425818727765974457152725711622786106197685993853587094231123084807309864428686637571805830446364558745262275922060282933868619764074463905080244159190095826474499484129348326367012161058802506358676264811181859247181631854599040396461812436261013049056896186288675013430626751725656291668049214243417739989495477540893002757743669445707901683256223527639732389519160108570756281715447648372500495180738567985634979284711196725622151797278526870115175019182553616567428907323646633931214141532136656707681404807526244687576577144729511896681056658376996200961704589134333680285064106473446797681055021629530407571675394001108294530916037376673703456521625087150387371660623319986282544667807800194026302638350503617407343948985996132254330344023126362130153391389649968576766960821676238379046300926484392336338578235524561063738819509132529249240810152364851717223406526113843187343055623160924892334319843843696555683872565809789638146271079827487546176246599149421693166374056430516987708914886994733211409991978738267079819064849513057935633014959186513730031599372212472775233368258734787576590685486291997969234894703218327039521323514947741303351613022007120493790593546151180709185755468618640815761719227533814795665395142409284223166466304391185177171836567931977502570659675518872775676947658231369703434855110724599512597733079219918534836753764624760552767734854375707849223258877595386894612482865491964304971016878982410414762141601957073840137083211816140775329081327885871494170250774722587114213481588072842643980207330588110905711338219386077550857034798147620135477565728102447533612117126402595097155123951013968689058988341373124694467749507117252685179675719999291205234596772391969366637621520057884398362447671769027255788375065224945188827273180261709055009046654495594635103499762122795155731992038040417382365284765520294927349715007990739016823903739167742390346810834519635637777596247582290796837689920656995350802156514737212418207998472298573300439527759630482415096208312243093337872896057123015248795222597072859149877139659769507467179645083026001921000777828657445952831779351883940892145839603684075676099329801139376897474612857721904937689573518467317673359849877788171614803309078580732431647542719061510452652045146835568684492214262098855899826886935621230638262938294276114021819312780654293289883945063542991849785868534366242971419771180661031643269752604414775356425348754440299260506117003089086385463715943061739908483956244339206250864018928465174189161342073125350299230660141889934421732959538826461845286948255444440033748687740523143430038070858243109709029758715677955330707896777435993258898694238475722331438634716394805236511875803873983277062599325921576241411921309391447907804042261389422218074244578754870057381374979511591517673059380441820233598000651348321321892758449850040016594275397050663880888769683737343882719249930997030643059293540364903043053760820206220455309714781994396343486007992528993008924136813299502546804060542552051271130785765451504065197364931352824969104747597485174371331980176526726966659048485888558870445123957785290228094740973426613604545713072756908462975240650749858930212574815243098308264267805839142042677739429482912413722450319351435465643314587363782170204014631554793190312292962062726994657920790252261043778902589739608614298664175448515728108237115296351830972706866575065181148278051400664013873794967366662692330794943116152761921741433280524814701144048613865518147733023365599986443291437419527870562217042078749317616839850499972162869462490138996416681364254769766244344675455194666810432351206546748965788274755870748557975763107267601663575100552606204886906578313423840050988802573012379563792437479065455767446539892635958411552579223242694341181460068489622124628863548231647205717599838377730563861181174189059362671830984011041265876487372817286518266271302281099962937820080033689209661375769264926592376087884571451058900636230718236812062182145356429664677662029348809426065812033918003864581148611087963848542566014581219036368414094400321704988465813115540596103820412043275031681782777728917887741080147068991723641535114362112979292932865539269141895047907543125610672636973830671759256312904582190463713952880980379988315321447299628614298553531418730375776471812295244738292121367420219660939005510986425963191373342151595491980073769685236797407544821347588646275923383746553043641318698378717812867808496310609720723946955665295443035060630098664737090394838923998359128435248068365922954159917465992625981563333260664484954619792496435550207934050941290606610010411613450827420197637678115622626313986501258364132176263630222535783754813154922743939623627211448380263651846341951638708526116716415782271146508063775153227847937422119873514808516807748512988503204807044577550721322326842444772833688423197406575867185341942826267356763017865541850640503733178255029852543490780393359929948436580268722413654324848845064626918257088932081670728268297773084033983647731714653618985562292750807552035464965878732610566126305995163941597484909564842022135109761083427941262937935269262315205275536615676993357932463085619156583869592864521733257084300990409800663959895354186365354743904563103615698303735972875937523770225543166147757734158563530795287642267446012790447304396627276265577970987844949921441285184784211947981925947791122451111344022362613820536799188222270232905236663204774888182187945238593167450351401513639853465574094713517268906059555990066821426718549970022207980093760590711259061014535249973790124284580859813580262764022850354370025325992876672028737271822400678309978289329866203432287113782269182621410844532304773258391212062873620907671117123067675472753555941392573713428426221065890881075367458846317684034267353924651375225070363939052375083030067881337206997554445978628717107149629836543116699090900799866226353381571374273182866672369224656142022844462827970276723050825548463090699089623070962488264605306859057798062865386479690710062003348832008128728309929056584413361241677965562151997195393773469049108552988801408305581468250174899147860392506883493516974273269563867246289110102871997779056463254235578881239802678862811605121479180647820840941806610009546663806376712483831318484276831199847980683739948336112288868845411076362227193197548667141810400476053831688248102704145779038849265192021203788445342336276733169674027834198670551671550263178431802224062183723571652684520712808881654854923431035691860233960862503889879857079947942254646769536624158482012121559232472066945427593654977242059514470897909875481181886845063620973778501390150680931005211068406230273847749436537037867071381189242616105704400466655445676297026805080863486947632591864458787617151916478161048859275985822391679343075693863954760761306142891089123071230912601450801204456477807823469250845582134841476469379412090398661774284936995406061614103144751378457757842560318994507334356293483977906855757602871482902819558815031456667752019637116577842954047861606682967655105573294329435033592650483766592077213359714919658312520964716132097203911240734295904333134107625814376783771790805459924402312377137335256080145475165312553940006265523883093653813667308692408235864284426290971278209817065197190545617646031935906740342062871382310182245571792620736436744792559413376173981229783204052603160312360833368692242037608919393276472386180409450617622514555312488476926907745388052517200573967409914150236768906075936641558659329127158639150128086452632764123885634096913512400670238169780478897680828384324936969380577753056657237743029343927953135078854398538724284769204742872835576085925244724696044438563168472306708088876911812998230797880679380661884768205236781367055409411451785096665170339535985764118753623206449803146067741909664710375514255376572745147755616274594519516707834928814072034151903324726094104238592243835360005178943915085561920806177629940875101984686494874356164434539290633534591777000534425396596759493797253227970123473886926135293997269374726547019826306148290220514751164823080072024369922256368896215129158331960034808434480118799932568805186226618996090853458539070943645918410617281924836588562401420976612972209080829757411105866718003252878751023669126036383265857336551633172041032152288062912428686714040344329496544970865101484117508826647015759457310910652578699297789152921421846018737099808593489738911375134199376943371761060859010999372908571509869939896236391486643829742652213177953718824348181199123007648010515987741178663870741371077700420937854963958003621979951697821880276443863970896066764659535808515855115395504954247523480752538961885204886033615491680523551259406009603480349572835858867235348659477743790587880064204598419744932846972054371535408965838661758647985004561338338531514155108126338874152602579474657420456952955185530379793239924227562894044889040073914591357478931109278519138080751392953222594283162367424119894864653337157930588969547521212177449624966066396903822857660573372754162338554472721281011501150824209078237523060073635299230171139670749224332417655945996380231689636042622873480755158752244107507028544553234472258125020753710054539885744186604076071166953270495759930472860781052181019043603972632496002615879214677956072996102437331340613472242568101065868005507463579626062959606300846347957513857906159737453594053722516013095150690928142664114209478160030306053062401349888859374952927365134950234157776291559566228449280750930280309725856009109640370984239745921237383800873031514113117907804444042160443073180996334024362288213110576734542283876425225933073484662396771280221225430778242080421210090927712580300214563708580969402136761920561629708057387747939114286653921118840790612602807928387670261571450290194844230408006023525206713552798191728397030470350859870054481353803852676417881120799496591521787971782300333136652128579562385870992928703682851006623632390789882578712097317045055788329583818356767471159731496647304013675576408967386020277596760320080874699659180107246602581472273667757364880088348867438396700253102372568466795040291829852231952974472165171958720935675464851153886395207408675813272215697892117942526054083850826293163991382914191119409670247005090335497865280317512956718823140245407827645684117734894520902986597955461694152845955996605093920757376481319846527463889947024331453686263792138970337479005471620772849168593369648163783375437097682834344629460873071382099099182629842353955579207278928974642122832234365694212948881952027169288649086521283947126585531281337490528827197828013685840725811741235132875215204199604664424185344171971813851840770973432821063784077247589001477969380168468896604263212143597674878902136253089804588057275582277177533793218911007962112949973124892147936757966587821415414338917673047386056952828330263598025441965088767390145657249687740195074924633764178534366563901034011868759052873918182252630137829060826057566619488346305003743869850212805405069735717068515371599438672844066165941179789637822126297434089920190862931772999199161602806401086772045311129342904708781852093072512720284675260890074307164260425037353873736421984643123228081570581211781333960003991938610870099124052823138674051429385618369098939512187558988303290266682007376236546139595485404635148743676141401858850873026604628367937479444658242592160331882247424270061493845389539303169768136805434034958725176894813538156226498752413267811386445253903980774088287313614254516957585459917811367854968232170380466340459932591183774510014287894262604614157606154839161306855729191557079934241366727383007986483337269892132249601979227393201707751876674576076777087300283821035438591190805714226569660184873357317038447226324601111037924841020235732477060684224835022010960841496883068848008560004195694173893497253694891042463072047491713749686924052678415356896307212791318554776051914895455394571378321626358971802325167159345069184048810475475881558781948569825875761794784859678959586816265323721569174343494126275203602675728726948763557851573874095152805627412732190334776750497539013862547080324629221295584076045436648701716041108721943079450483063441130285964956072560225315601973192891790104755869008555045116636873153996681498828691897273812491493658227168261110498435899398898161857219919279859395033428143925836965028670975627794528192707663940397085612844878828642493752834586553587282757459535081872231944612454511874769292803477361877681280521519152158219587121956609578180803142664312114420956653562111661539022220054410327844067644341847386495670676467877780310717249032024906101542161135721619548975736656334530915432458769310701566067066492627490924549854384289593585738174991147171963137520211239127696656924050931451092603945799453687167977938138141581907335690149540325649734385447988784653601039940978915672560374217446372357629573397236069269459920348145586648023450573966855288758866462312939279520872883715634048245048846695061217937796349776282014710208121188662095028043900643709183180248794154742824718705993859456844739199332545614555624731221962490213182119557672671449761516569805045910582701235204149629022715828545136618724843264635509707265543695129349558777168104688179556776255117945488047445951743712644264756762384306102120157650315020666519423861072591498836571060390341955447459944985681908201725743915491101070706850478049269847466495523598372797532295927524221087556419035155775505106907942408843902153658736534093870394306282922683941476355705622598297263523134574094006463193818525464470909094822709775072827987554814845108626950260379638945188875118007087343396910482102742091650937410258537148104565468248334442972984799538141817186334460715975986813408821158920114053784998602080414198504582862022252480796107889546241794183613229473527837426987657799115762589496195438437944654765080939631683836886120629830251908842762475923739086514916436936516999786352355351489036345907367643722638788900542888773812781682038771044734629323891111178121445778494443218232617230370351871322580223075451075790404961214982621108162836957201223879140521149478339192073245174213407438413751916830781426373117358466967558479413086362219763816221797065821597934108785335099765509007688473733643971191674643413660499976718864493194004652101326471259557752771594001114141219777074341497361985165594898748747375100125698940357342595746389211025357808540942372586528700093187614268413015968960682286319375651931363837561799603653994000128701332589629571654368344521686463169615616200070747482508873068674123576357927287682740623287994033766241199724945297569603861931174393960010990739625012862923612579712415348326623393217052316229821570778377504327145950541622443934773263272789677887287989556048676508114018485240762905913820807825872415512950706231550434910147946390444517110375022247475930126574209326396886560113784884665876871465702406160051913949849922995861813856227757425304079217421910377655529437304243262840262950860471859728270109762280255460407689418830772683885223253069810476221873788341503982249681876108520738181445981003203879745634931028394291513127901026708422693931705549526539234480862422055496434053868099664191371304722229573667181819767196124081413875496418685628553021456824285350641685571709545206226725749748102380059192120622261312640693737296466794831030025132596643965011055638181620268391881622710648915893132345551921532395556401878150879070845704955128044452633316650687445904289468925624759163464617242946444802879124676146874682117458892273909809657385851632067356712346949076022163627455681372322919384328150967461728994379298024381224791853222329973919682591918214798845244583227859112331554420078506416226511231645060633059012494270873361323971847484060127081263116968247698008986736605133143029671827148520744474780278142899689104051688017030296300198070114482250551243514598928114768737120772376502106298276301721525237410050511237791866334622064064143977373154361738156652350594633724741546279160155360758268860180983195509426222162164914722348917607700724943200206528645304458255414250984908811813984853615128562699630915143790278464260263542943109209370181501558193677668987803315938783146254199415407850447322051900353856237373541569697042062200331365048590288072494848142675273666683876452876372978296517257365917477585787199169020987654793504487595099026097488248980362753513967097059553746097793993064039757078707231212600251821932738343495744869588272471525999666767053283192289476772750344982038690261515857618683862005590450589786542554310180688990764490121494525294078767808977068357147399301487814900647893747345514185686536831365094050442607182072854009912410132734947635646325817424515183107416064341279345785485318660605721934637028733074325131992977293009115649774202558173605173888003037497062651017004653813902076268679991984636405362041985018769689271414394787286350095610521186610454079162476337718236896560083594112170346833668603354111470046169888936705359486227781366235150931475738797202432795941080713795136368404454583306955203946480763672749131401439836604265190190726162590636713637551250991792396997702246645439084648460162815930570033322677649469924695039372471742759675873422985244347747630338016525881656643109347517402403967661128886679544966788762133118291348242270949005671352477725859745967371662014346781509396507649698945441606798965731046122542777608263373877351803313813998770582544981006301691005143665714581662575110226471905992699302902980753057446846533992809959293772325109001786871398133735353415162809211758524280626067219302782641679413192756694657030087515644492533627189858529314712823470224958004054613161063146738457773441253168861216793830310930991911614043327979486434064585902495234086624138000430217422740075676001070330002517045716438997056895818437623701162457295708542907438373517685198239798808345425908269159731747428170033881929030617370932664035539295480858847400012511333213880763245909723001796514267413731898418319377074230344578900944265667313644961625918143589340371053340929913241597345320905870317340428395630252543022757289889714345994431056228426110803198037245128369484317245245058417866104020802915571650848750702885236765699895950753864351736868429187413311017774109160922990441299463062558300314396052299664554822684303513304716940963951142454605365954838903055930878646730891122893546226133416609706200592900384406130244975649726430671185595922245229514125340534076956305501422226182574296707807452147322156469442649083983030928498231907492267611956335435055333514659980056451745856694793746191914117228305080841316629570823369612087610902841337805467961536550838997813865957171122276711951759356155166600890245244601313879336205512347835089110768192178334672736994471521557899952017826510192856939674458457354968816199339540890298539128989620389926755022310970781855267776534704966602756859078415722573999633228135350479820488067056283719736820099747335432991534328848205147156821879215938500559602775102770518425103916344656027223216589539632760400096094713177001525784174711722203936265370353891254610330153010393061107622695058353293840755579576599620698317654410451938658423853245261525602603556472761742354041079992189718727213882204867720593859381408560052906759313615112705283418545207342703406552571873175421831324196718017513955918095051411009113765685781337269294643127107936932872414070619424981738321903575342876230192404067294910203113218824525174073741579085364321841899378462140208779013398462946437942022320558925552657701090670570415187889418969825097914951225541501598585146722087446817033070777696225631596980974389090124151133046948632572318046280983811501341458949460627888482941106228441357882150167080447500179455135978487803195416762922188208789102571224084482611789743899982243874416857985131482065038022613496939414375320131213866846365384627718654269333725814864737528829504602601522932144738249695053736573000492546898651679416415564381364487159326020285788964111255675873556532826781459174600220627681492979994453481209693312202780180883740330145355092716315355467321337168696181308434359081980946867704379729880315865422034511027408682936509592839750626752089816856842354435405968685600180321163922873570485584553871477389362762133875248277499750806516362052989485606871970584758349917606829224657236001778795468640684660716598692689228644303886639912722236613539710787166420136903380584116532873886866007314638148174489340699433355658214328322062529034480605748161970782313868278257072009265625110260717782446073500466555009327765434626840558022715691923748756574210715518301639731561020115459124915666966298478378745749580867940653678183888609312162261462004201450649054441258594135603286149735829755818539970801916182085901490395674296807236993532997113828803591862332267182322302689768998240268263127374940535463907545087882849797070209373979398381426044199536702344548534129448486261910637150894704981558219284003294430245149943562743000551328823757376208367581073254615646724648084319307890917442255007482710859176284855605332602328739171299430032364672437890055645317260752939699642628882181545892380780726473462089744553855334517401779283150881055535029183189273406850000851759965025608364199829828712621687378338008104647972313445993322471826071759455640675088140923414284589283545338255214637369280416651916372162454389408560822945454245854688151837923413611741443248438888440462409814650277828882263463825136085924817425260807913174033815113802892230139781753740700476558046906417038618713310441587322231978061537984597737184082274573237825470329551650130055395239515316736355031925118112063484267624292636818225075464465294684523649305429949895267092721818506652505532954004535988527225025530065066600011304508531713868203893474728400135076690508442572888124983514683815364915478472541161751359444373533216581745516620603150839244623006854479668553427501921381186143569703460816549926588509630270293547449347852112215391788193717501876636053839116966557307027566340382253588492086652720388137196665137943220500793873308968908551496371270339090307640138481347466626465018901279269010666002293081187242856822216831006320170072330977056652197335765643669276657115962131017102880551166038304231996377967046647872891672895641750880581655117187382844679810415325541223039874711564606572271942806188303813573945666719900524141692885344365946304766797360932265958227335660314605718961946966636636200819006025078683396460519585434605107135881398774609958016106474198678442688677336351443525087332779007238884631690966071351423357757779193844565931674618898988246094679789375377721583985718482337741706181545999018228824785410448164774357997438254457500851008972723789990702386270973902541006992124273442255061019033389501228522762270037292301108059247929256320440594148380762779962832078189608471962684282060339378012627537118991445948981182373323235769629772941961761179037073854556957805823268115357281485364839911446722040148431712964841281548291088407482210936532880012331700958413275669038173613648379052530036938852650577589020116827341623500930401735551998319033534436815062227089616718450953480515365380146863761618724849428267412701051714111805992363273331936735410153376648155492868382980427935556426034988151180658802583787170043399988079407149383393554053165473906878821362615656288980332858654421294755543695469293685568832671862321859114413905422598364752792988568930483010848010034539888942877320713023972267552169917151265537416761655921302105160689036783096180110883420761495288748712026240826301121160069001737119482614060632188936552433646992317672408703968099211840935886521652828977306767170010752997715953385903293559886354678920912102715938127129374253276106339728460113390414488361090552019386691589189916264107233890466963217776825221491769551133097492014388142411411375771669832678559177615899022596905602323377388932617197356363088696611340500167524349515537254121552483175075464581372789274163908479651739240672729491291004400283508246206765722153282333083113273950769695477384162366948558627032536686766901170216373079300412069171376888078067740145341339566667411116630573913051615063135953504159427650443359146742196366924859140063509845556039197056501235987501968145844871501175939819725159296122754726086846634825701450096954521213178173722742167882785281496220822816441722047483925654662944610078759141150557752156921188865491658719385585671501155857171056594749620005595612250402678381060770352996888081518863583178542343731848863631904813429722661896225079009552376931809404045651160637595207781464322864044278764615119715919057997651909316367711476196572746661477507257608275920552150087659948441996569238146871413491396258132993586751466875978056861809872375838788151670660292515882060686192359655827477303417625438785012256555696119522723798449946097136124106490278409447243366772804494701059032597704841188465149328185788822710496424240856663497952028230855322452503670524882158091907886662255146468377163960748391497683464586115378031942344377947505619417459873051442917299158834447215467494315078901014213110397942438429613810709676960536587028905723004032309890820863396066189687339134246829302038392037640217227820458179339740204909012730958474021939113681589482133927034844690113844493151174838559366106264023430549083723171215198320060326663106435735085614517677090735757369718690776532686769013748017021510766810143890986351641233638565269281521013322949908401444675969178169370254507553475503381430871988438354332779659851283521919238563562766192835360130681668567623831210783332155333835957363803283130229056283444976688894616011959579398450031208004964899981089750926684666555284348115975636998712219943799368523328583422991011706184192131908468216324452992817033500568485938150913375498110360454428488356849308630098780500007849671554056322290449126923520394642343843368300089589517392587897344128003862962394039369779083020917780890661234595364371605820071069364301298367726085647367099089507296043190644076284518888722988957178317639734181821572546835121035704737548235595467382804232069839701360092807687016700961091898230127204093931145811510398346838266136203558748740152519533289013762608267614959375322498527500164150289209872126973150084389484114517195862626814779586229437510987736841898687640686049335821056148014832685937071091105728270022638343172340054713945346613047866712028115865632249132834514651765600346238599387300306086304476555878979070313212741853588396176484609640022568360666562499594849914965375635581391506896225470816779428797502165825130929360362124748529120267042063392877278728861238093074269080592471186272584764682086614200064941259643663347758474608442365543606481417784732394984316635589262468382508622626635737382834934272403346443959171153026529588525011080913673291839999246887840465590349463748774780701401208742633631691105569301409123863767715693858059973932440887769122100952075228615951315871470602429253840170312133717559775635591941306682590268374501730062063755172710180757249760190606793213805661282422121476375151342064617419952512830159125901733043215527622781877674750880479307702534673607795382576379808587148080566318543173124052612513014355106514385497367342578602327972527644452915716029246076616532880899745939138981080081972570067690188528840946898625304744870159995715373050822226770645571265971742780366632357777525038014360304384739742429597527282746705743110308320015726313930625208377223844055651851335944804983087601497770239241820281415329958625108102977931794775964670880844199171029140900130882539041520448315083253857201847758144104864121547432454058891377837136974279323457523421631554323308612366773253089477316239726932563041136544614637931389469277888871292849953654015765083333445857054557682375837076002786829547762877690704861408155247605279648636721318253096475507136898179766195530660870985077286939464005792451090153423261850625802432948550197547334697847047618892325725607146775531487112935148159804213363664878783525466907797551079022408312143667895128533325127717513376008752599933393254515388081081712814337335258604186102147822869829171267893043796216452934569403904431587244307104283331010123659777581837370960108492023751999350410304433945453115500243338425100397068267789683600028796350623836350051073608232102697898546822820274862380827626802294146360959427929481054921049120769176551183665219033327128178935231920932566234657788714446435262574677744861641362568131055674929692224939385357044805663726608794223259756024833832554197076143235039866082708863792010534841163812844731555798225807319863222528424415631135286482399007501114286341964076268539286096265105271239874186667656492138150202823388002915084462572885807377343088379201237908786976267165758164776184482728037151018721663366103628007040273307788814260138845685617077394454529058047499934613693382946905392882400573011835341863934944244641021242639055548342833077427661574250466206048493751208948946787130484607941615733121178458723339601154966482389953478488795442900501197567494562253295750817898812314524416507684861032157952816228758459089902363237016172476369461651925332986922520464123341515901749073308879181029668804994171068311610622668083860144730285901926142573287620998352400784297247893469937543829086042396712390679702027265128129119428811847733360789122265668989258528252330151369315223685805402621953862423326606867534728469981027911943670284005515505373041473539939991816274981281938435495694534443896696011173732107619828087672005153043043085395651857617889239301288179077277753353903975939323556754109765476794521784293676430966671018149906311349641228531898854088209753691679172630843837907809492916180492681086738405953120587366894017398584775726691457313500989825914044325348952818904120504439150940915274843709087206170482392523017464780864609447064196056945516342269508052920871959172170442411893734524269707212447378013488103763157862845653948397406265099862521437343469204139896012062496777294942833115312445563198994055661925966484512004405630324415306257231206526687493336108312324122974140880414152317476477546613681410212378302111609092730613830807886100856949650777081918910552126618637932568773220120940825740334953234506858444529789452162988004374193175885574739343492112064904300944754036268702274382109375846433239403926545784361484005875437725830301211668160528775377365309284034338445253436728317915289727478556401406945197087434677370240386291084315050178036934564475310133357407291997791051568546149102670093164794308915786554166914316658445845000283693374509843085546014986427934629925504276496594255912298534746173576852386838473158252347511078166686510853344939118423821662425608779930691772642718217394048025561151693544046403806699313372991691900193379741802680737231181605114560858184686452236060964838212029465122143163098208406454333735177101341932013816712714185975447968395038151095975528171409686253726242082442519316625215381126817691903271453439652406423031428296905938184747716327265655553758304970819853580424446436872937544361724880563058235393865578549867407157068340069179354055122695224073325575421455455946186440134341162838355878738392274808702678395113330922234230243468131335124077014683042430444984839825734371503518150306733301421503341102364668443492861903717767549598968833781319009589910189232426518326833234643518761053789532771943936754074300082613082249930943046555852959409672817813407320513671162016882658996485420844271328503475742889772395318462389355865312548815754461052221201453240890597609546468526913409881980545182225675423504425568854727710447153062388027614255710164443352268320314049286421052355120801594448038561826332617098256706439164892924284619165829456022856980177577053098382627612346240025322247859328605974784379534930704128976946444845777837256575533588264669084364236556448475692360757281305942166388114403994591319298380347164578508877090879062197986347436376332016154013062490893794656647068141892688287487930485495528570963019630000668050261229785158843417886973249857062884782943683243677697761456621580766546045065414358390805515666885563531756779880600756488547641068724602867763409035671290013826479826690456143622982014814853056856727549171851321626862544381310892329819311311918069531238672909508717108063863715370651415545878432776676024139013135004078674461287764910601836732036332559168268695340686882453475040691576588130970149661428003138365621184758007787136907185093151741338547895095790252492741703486536929184570356246132623244512486172425774648980215903659681953011689315053057644285155281419085435675358836090509042125865496639734341834093457542915893327034891191340925536000570134809869567738754448073748677680762230815066271783085008080423938051457404103629539015312522204655607609623805158101410813876122585307394044898715458611728887798266297270309516738952067814898381691078955835984515559360401749896672123506250838952740192253540060680186683876337244269928595391818075268140744950372414344195047648957171705933416926788318375010711753275478464369932342538971752301144715922599717810355172095871284738253309161018876667645951262929297785418472352808304463335461931532027874577831289226528714925917488510952548545839841558766056185234253181039341432727023372863612830062617429025812362042192340989144871920786321410506252414671704704732360707953140883683989225866085873146289044453751231738829062728960099467886852313052997879942560509274009820435211105101148391092094092568582446152979166210138967209414383239982146497801091916133954311769526415695866827140757584287698854820478079765745568881630191704033570364355539602790141452190022514445885445320715167622483284268795626177421188870284692616145742291804446337339715323553293800289658314002616056274972363750619552328002990487017339812676850599190639755737961759312569795227012744431221001511242205096362512399247398606661041758527101385448719833701178490911708942658126308193795418560515962928954698840885268905307577556183804582043372881154657207308211101521445089680275575920294774179157170913149208585496115909321396283571939985080599763122013396502072629273784179716065904401454153455274845946056262249548961302568395098194747531527666600037315081604161258733845701887175925428300155231211172339637669212046270596489682584381329614165630116485405265750137347492313930264997605799279461869913552309422985214889170789186867750943711658827980615307192353845517266855410982286261599650285611267347744518860553228847912601701421210420987253678585334288169206483637378277959061472579749505466616651156581906150183890507090362418304571723808171943141762406388130515450152121520545366378959395519055166885293413555814990508032424557361020138145731879018888146328444303856467871052982932818011987927168643162918259319230419351454220156728404930821960343865990416028396478896242276613634986067090116584871260056582175224738382399413583756125638997316353548144477384454404312761063216462022598744598399288508610603455735030935790155311186076238206869876374205152494643800977896088221921201637285272130169293869432327997854610560841600555755911979801007871496017047563285020085513305901713552100852810448095488129699357677776125799388113057950259216359859621429430040214157391300682848551265651122182025943680006728765410427227659117754280418237389762639971396623797012748537525191981454929448377456933677533308712352099500639904770592340855705294772530578314642869376868819584934446261827484975806210253283548345247562373034917108334228806969376724464806873414306567191469547560469047072149223276793839842432529289899795248570725012643462971742013653551108613861024676728600492415736638735900709627178878007439062506457271694055433661137145736804620830714446106588907418650334786235614292569043451660071108879139155014874024301161112442777326042445380665738302011208239181624079299056941212093186826553331829771733349486538731623715047460733085157479558321149237044671017313182666571382074371663396590401402137849267091909220437990166849085246927387038022570185986886999972141078172333086103046512587574962836520005167266985880499446909723108772105160892442791959374889239789816464190481612404050288490173335646786198375389909907843094603335070031868060834644667033959399602578854387427715308223880305600570507882851400273805367175328551969268519381193716413062481817996547938351972908044084828405986056539806397372062949892729171948176243676288800146742819804166754667192309827799818666610066386187198088716649802455558123753201166593667029490489262167677486207508969064370954356965499453096949156567729888008124770952776784529786179774285579892760140291822600086865840303517089922573676551796405720558883479440582192982346798653011069600054701060199530576195660936414485963739956922659798086333248826734791695595995383991093699250061844760505947671097345031944700414544769195944510652155959623988511644180730978324130085609283909854413592179289337182649129135571827305114864072126438632417846581348144680682175141594035805296231603156706830430087949218808244536389973310949252000081869257545167019392229937129043172755705936941120020540750015829316603311911217130339841834914437427635154973962217886317684208548126506830586620384936034348603251215744046124530382095910909106679633208406648074072542828284703320207232894382029576147589463624112562763309908423075466346788096949524800954503756652016454037882855804096107227602525699992468256382006702318196721353608960159488129769698851075138478207723125930144223598653945832478777239470219032379026806377620993017641994970233588882958388501940404789508168872292066512012944822912335877215121841841612662216991135043279278303717892928473343618258323410478799347319582681115357991039613785564459016518603530012985452204957796081151667471144378444129981685868890250768569530510458746818720365470099295656674056142832898393573761547081570855790746214100116776969786660746471114752700850613933310263248149478724700986995521974576049212393133666211089609944594368626091108114875063666214155286416015522443456692141156272710588475892252659398326904787429921296693975545792263957648372853660581634986830225754559751716105561003335388567679562082187166300177106217975224136179065338561655488318806761969217553184793158652001211114873830323942405073748365117214464810248070453244562016880214132682104080277715035914663094675459390680866529746658669709769337166706608170999503520597827898027960624960078268859203563963443106986499584571773384096446027858710568192112163914768302519352598036822466319048752866882225828059916430615334005395398422022320314915825543646669108636613505742573232662452771680634476452308397089541902957732059074991072063267717725697308843493832215811815340290886142275337777274982323493303096967439070523629114614990567781330191296350853003523083886787269150899457230565256153084313283892387242415394506103305179881953913655542984201937344478605971379708474590943963340327954047877945858834689608666450031671673884653352694249014631169350529178460517244890110757340083235551015613920961873038688132084708307667058077671443677751050132346711972366770929227854848147662270801965799974277290188216001148535403462758118348369853379506330330389804801764864580953682686105625648848479095269129808163986240926964545743297016287785549881352012479582571789793558979249842912806384402308138264898666728448175488317538887998804577431509871370800647959367700194918194976027725772788266292154482757011046662944133909009764414156786772560129220157262332404181490438717538998808168627336251520206054856256309857565034175372961689224569875386473399560395053649909065955285747469040497094685920182497788711509216815027153765427399603807802987088988500170051567158868250702838832386592815319379360171838012822289662993130900891691729646055087129332338801894789645355058057003489120703108049939513447423587126013889820031155909630402572858893972414091751214402570384018526053125274867292300838643518967882881799467740996686868716002563255270931111672058947820415076319702922526389374311224329904202779160692102516824201429127848313872537680790750955128509639585043417580074303493166165890979718698527509345754676277760039564513010261350912847997927041158338658824107097251067921398662123815296310761430745721710103289230853927181780246345176519130555437746335028452132615098624041991891129010950221082306628362301159704160980438584175742549803854489879904386211347908364366905779849680620591840360275448567240521678069582035148603471978768480116934945365497674390342700819576585379727989778080147753445032736730816562404541468079667553054463518290816032597706299277890038939677018806358717836826309336520196078556008447306493952106831843327590857398154019800979624164141774824324717390526004824561025148646412339323636746873588011407980568063787083261266253095085906896829020747245967832286587401958575372761288813206777178739953269513708242572096476756540621318948600410974528809254879090125284875257820790380136048924220743695474864191761785809473014550621462146540041189355612476745585639021430986489635539675226588672051588705105883107801573793795660377452550143296656646113144844961242623038860529955897061504295869830681283236913506134546227777416577499523393653414334921200836148613262145273214766520771405338013749527987974549480599791062544360429933671022959473364963686065042071677116430245947155239071442603487557899995923955386686305784388386357589992735617909770099701405716244225994287236748277825800769207146220840164200349360242163667048307071569196925220986794347259323738400684628855031667366304736008943457237108633619689755948877488365894999243033015401106150959367774333180239545973217404602865336166839755257180892695769164452696063372085919341588664014205781813947749964464609386355006557181231801902385405568625930505468699812403115715348334569676045006349917274347220885815017642981183169105462920537556431993499914703880971052082114850547791532118291896205529438595282047401460418394375291374093235113897279792733700929480298110561639812560360085064639056837233894132789103544095457122953788783501976460484054075674270380460619866816180526633976375613890210155536335939654354540341645118426261568602561577391271205955523160433018032645786842986389441233781660757054345803165396204236007385534237807540524347877043929335376355146736635156222783796395845325723889333966329218905003758264382775410314419316150379158353879250346569568586050370826910508554069613780803876612570452249388664782962215548492846332554727675821836145863846701137104706602471695386755085620510165965957036181175207668560923785504404016937692024241057900388643617110586916321796378356217907514225190325268062285775863051203563358695158714767209336000604960593418353602112807265227852168692821770400415592860735668766194483066793212431374794636745897604362974036052669578982994348236193770393711507213757258565780347148232246274049343786086163019298831095035067774035741015463076458779984141976786158294485610808977853422671384683126932600429768789571310531646442210392651000588806598144334698959296332933861328634273001111125399587616035797868237364832242163945396599489754732663522158260840755041209489844644609998721720167585533720074705652985998519060466135618013335082764241257265232451286652448433315430280468825085490910437806953125214576612313829429292650254522042605113165591782479545975310954071617859638924420346868749881834226139087358736456980309133394322043884752791357926668827064340716166606551319080204423020270119001191911703942019194819870061289488024975130477321991197313539894977593462913290276503887745977027679588038382821207828620315047599402783814022901937133473989113710052695467265118402885467286022388003736345854255327928014427219227988302696602967104928120419708064148949110378472386160275798216069254409671792601259513830068893540683631637194156054484525189855064906347724296378303955880962874835907725704560244187516822576617596198671456221543141646619720770259972068406172096200522192415429661318552558379086251837757263729248837991042697582659227561026554485853404054144045386449591003698772083255167090404341369448796159374923695117765041665830820718959740265317023484362691988714602400899832240053375161828532054075573474422457113959697482096216023240920551855948701921204390709483313469209054378250759707610722691583082355047347328722673457499137745012747260225511472643237623996108537777741761633150361537079688044283256248456393604191482878897779778636117085200494964317352537591038631973014773296972620387827966920645389457408201417929521103344626036834268806395102176719498492215518189041641737805449728341854377961988198929376014968463345328990891151051776583459391759887387966009718675259930045266123291039426229314047170315714068920354709197011761386988188767100776188937945738437384413882365764487939109704588358033543502118773111342818253849419744957075714446912003086871460833519693388688674264129181663069928294694329138532323257614070912307160972794937575579924483506576655593635725462851122591157636014848750010154991110913944486289424933043997737335201990358707528456736637403010000900833940699247958037070995897676542495189637343673301834746985457199661611468918341008116733859559164426279180291506156292616427168407528704209633751816198603855776977535049435455421471890181614081517744979126904123381356152450754499630059102776850740664473975212084539528983207833736672946081121020178972600497270911250726885026295671079530438397181792318562613023468732128067348656221215217606421174976563965903367707966837757133559213510685997531162681737662486315644013492565311876471229354972279247895889831149975065530999859892318194408331485431178459738586367146992460421253909036185496359197039562846935450506638939107345631315752996844030977785806062914828463355660771501920102833647318389474360874040215993584717080480869218309411932211774880529016253354494931317186652787160251124438207580398992431641087790486806428937830721671897685257847310337819930701070050766705423730812416115077896319588593820493853253170071754075106390916819222482045806484914817119349561406611409439129011834111836303778985082381174284832457159607846001048554448529068902162439202164063117419520355267770072819116915213839439277866096172955032506818908234341883155214468592020429091489960451657267741873379059963173151949088967928477824505867935085634434580182923700012543227785991991097675597014011853901436320629269508174020716004741898537014873069261820609485361912538989394362292932908323300739001359317798657823468944804590975462739701380916463760145120225078028905370706583453465591726936752334706272292682993234711475367704258691857486194241862432285766401262197697406759726494213542921938041297626639986201169937671678085061309786568287007551752249908758361040552607292324882573042914922580927424616090799089627304901506316259707235600788614536195531206235666775889988366350647283595808616354148141715830580921987808940394601904713865129057915032153313352471663155764806260114440222220754300305410087132810466969949914208480900405272828925975964136736386642442155248482136177936657091948433240092800705087861181367482448875893892854212677611034097576196250506322190108450149242925099783137862043473634614308726854290436587559119723211663715423092514756044812996465014674532789203198998420041486308413029632944435085991043656215217076544642245567007620484850227039964080045604240813236307843356253187046165710565608559413335404101673404661590114582068957077254266154524340257417266361647516053430362971877330121708788086195228761073527934743201601935007645082069448513069915620118732336443730075345456331311393295101371436034612481781956166917579794597203838469075431188982200464956229373165150910443009508864181421101779559703264384637328446000185778947300876948799690674639273343394644029204550101924553128311950221571546372640530121868720919029096797550753905141723649190912936281754708508877234970457633262067586044963775045569504588031886851491555010402354828712992416148167911101358935114324394728506238019062553056438855060597945465863596219358453972628970988680957953790923427703280288034733578877639011948577222938061682524826246448683303517206241273548765380783990105896249943962103620204355359448537456890044156289301053164740066945447870205170918236223736296132716331460498531098547944642112714032924569934029967484395476194184955793777139193032847930704809500828099967102150884452417463478235910668364196347380568078724224696604498990377453704958025238061478309751523596141904488488496340972194511297744189914030252755809545416135498101875077772404645278684007878101422386900716315642658302243720409780954587602958053956228890650192513375561070057086690889635363056857159019358442603076626659687174621752050414608835594602134086100757049108916672409457507776437341197329841980730285770537041148786550399804525421013994619328067892863123641762098629296537422176556755239971193514513909638669704334055395490314087868584505328887114142167732508573866967180841652662828253701269373063852696157223708606728329211262982139208722839569245904570528027103472326565504997920057987332513352401902894646255885077147366511656806487798609624357656805084527653492239720046826140743493847254970188990857983356154737481254227408682288722961907925414119172911391388445514921930151614066987197087553260003826244490309050216978629005696743178282965578047312195502266051868360356040396856612718265958607530413008957874778411585050832398068907496050958972515703564432302743280808080617610907642011401232418647890831561165373750205133697412314303104130903117579969034476313139000335904943193865356898839403427027998328735563767557464050336075124356166859230468550828470113784731986227681885581780535797425175980056544187703810301825185127345144221065806129299742697312701234910432990025682320613382134137229313123477189901596003126335136267685149345099461717269803736893424030154552844262790208193007612990072006131017564257126334509430803161125474431718902621308607293783440259205472533446920452504578615485469605881340336704887305631340866821531600462206383975663963157938446358013917914600149401400095700287954120100973447866808663665552684672195027901074810121078130232973338306191988205387796103734536525038285533141385219151508186346990025766706628284978244797397758776233808489585090490734642876879761401447506969512234095281681951288292921441137123062813781732436408878808834265380176021586009966637612538945245305523847375945709623428614834693827089968616245336184183168899805484463571832730397819244130046791604401221231783841211989377631326958286677212003123134509675808542606910082391659845156013609804638934609899203134729390127554474626237914489062919137333932369839850211924945792902291418315082111859195867672993027313076374039592045958128178407596348824330865882948890557564941412460210315055015413914433164403316013105914199250920516809905585293476741530440327615199678219939743429722607052815437721061157868368054791583385841377416491927997374897227152647710902478044541769860764916177050459007052511174871352831437502662649299795022066987964689660878754774619091771795931344742939279516531272471745527373608526412986981716632339070513482634821861514073303644347268301525167325834847389568449318097564545378887067993082774225605557151685844323359826917435462223076938163325539455312875822546410465207673178861702636061280499680682238511341379797693083518774010692336624435441596749976004351510618605957738833518986358114909944160295882562392643268097636824272740477205168353268412893176942205213068516345408943745832987927986573070599649378622232046004009507136857764187332664923694055252048570801609372802932438497697483410144888223181805432186770187948849198403220309466654064292231377653585428376385460357652409962783490530615534768026543037458267221245452531740787452296596603925690052348779796146652368626902552308662502857498334119284444898539016458642196883556047070818569258294911894587141852659888219497764344611420482783092985877149803509132562360277981329411657043778115776299405345971927197466189917821241176188230130717309619619092885720249295206628310889105639403357414119878662788092146673233279408512023718778176587284746473477190045663843737597050045843950660811476152712474448710168769068975890511690490477185655472766881619786810851369320620047218129081224691992354769759909649071657146167020180580990543369845776639752239179344038738279539534897965458702494779923166061634919704941860402560907879419229502083630611203613888423616244288523009724634087060867782952936265724684071975508655147269787504408773050681243675500574542164464549273340509212959947301097189551654900824600870007788793380611788722322179558180580444247026755003067966371096760791348457589929686183235499329680149816880028370296483161927960759193409495548056125937004247650300565173950890448973638923571232132605623463355882450454061181136733054694961968147501678789023206611988533432813328360970486456007309998118878868725678668382966060153635600315743438102230095374492569292538973535259778289735267931981186930414852566277787499257037775680832218203864252745413609790443535255230580127608529424914180474560536586594776585578240482027543357122236475873307622998497212687979420096290886481383217124003514610083149388192083605281977680576021152914045787113240826252312341698801322124821620258767541520535322085487388971031499408495789734967682487328506061679430316109739069019553002743968864282778058665524567821153062903240551463881702522475126597645570272272466121346816501199641362352253154704623755127383573199763619590135708823556883786467185210402360316178090408241971685303001073060981915570934322415126178142559735746803080187092917800653702882930997125980509825447330870405754711775880470942623323931545171062600000882788403978785550878333118457164712348074520576532583775557067945004460273552500425735537136659713029801403096689469517578700115655340793134924042259531210800965400409325016439887002960032707100024920527896848818645996816010463680552354186131679741579591030494219337056615537820168478199676484645763007800750900006661987706801149279925653010301029642835036173906820796564682929375937599001353658140876539533339258230023381322910326250368307482538086853943268832501446013015030035198008742281535166034501157699021832756774856368943913631932693122303556494333839911160254648137715632387172894031270735360115859092787668893709838683258901358170356311961412183883197708497889038839013861878299548869985584378719929200934561711896542311484124887175587954832537347057575278470019036672740536643429842801295582834602571472329630946010941792473563189698210157431017093695741169045099930628086149830360835138468896790307076452717128108118248962452623878975408500734932193894000333585769579897315977088079458873166804911700326149710897492243743729172023774672134143963433006294862791706577288297958616271996831851478030906517240342504662971804572968273975761323778332141031264461848489450628921971610876800029485591246641532141081278546359932089016015059395640343654595334415744007311499735470421177004922956886592647939436361927607865679218173929178783219644421863993936120642583982092536429742310903286585044217235249290516170002282960587075140874626452195699378497630391628826675242197398958185087429382126015368646785089443062427053879501788224603519709696793579994046830099697708186426802405825501058149260688076508310967774184465103704698182708821740316421604215009697215147032915786919151311819159315285228085652905007991158321031639670049124243375878857380243238512624707649660366945145043651208695108778197022570434225789716962524804039533751087469149599909535028443709358893050709337324379217382131425494788069438279752923075870905219660181738618089256705011690072282770590101518428464649924775157028981215795938785856035583020279339054178783484862616424592078385658444977557973419676320095809822541764304828435244350880992518250175932172482100150777156339771571515902460156590283754048384694333386409568520620227353878205483840288936828948879455358085123287959144634554915298895960307169207800300025655211933468224824175785937962621468278529420455665264564354207770922747582521377585180644502358206010909751471883954087657421354121791280320095946314128834788505447700743087107769253383721016721525742585026487706215943629714217963728359990641020384880826525928670605595045914641346144087794569509993575679195828349272387183231667926645700479754374511229003847463297197618322548354986464109601935728366744532984391208082363637232573045609560999653665716761580241425918063658456329398031383031800004702977643591870475826679159302848281032043310131504636453010870081792052245666674303809005111822306121457198144913326682166271786633072847611569956235813794109235976870812552194921612596709413562789285337971817456185638441079384679308787851423110742270569506335308918753643489172670989183132760700319494269134059274118690792394615112261555378621610789338692198571274562049048180178930691096727027782425539335662011249195619419476198574484899345183308471433654957624425191168485188688505006991483647592049467939632479774317126107763481721613138421648238468829490189288693093122707870391689077426992898145859423110464430302302457917746660216939368235050493948166067613464159514862836216298544656756674582522197236997485068063674718438645929855750010064082626929256923551145758150067010224893265314616873929761621779762956798292667915344987151200463833420394470571631257062880357080314057944626198136948889260188285094916578283414865459546751348918539963090653276496074639088898002331100157882048687836683091677130696446229611307136942267012499695732199662554296802684843352654781112041709046183855740459281729689276555900690210185972670507437122214927285724311454736258607190242883870971494578081647101389895524146590550719755523642715862357302541648181231645144909285388050471397699376344486475589603576034306306105486031610089331714483104589576632266890641276348590658015653304837831353736029325340373710709590480291251092740086984363088439925114363510615347970243776849982148037416567117029411201932278288233040472486013942228679935257918698652804930269598486364912545644815696426158999080908905555606596199174718239452632387614714984546243184833008598257149290261584942036530356553394792521250537440181622941063827729652700686778329762077296914002467989245905429481724729386632735335898999233505077090963154609369385228671126355602296549582509123004713907332658279869334040004431958256784647716534592908741370763525921264712802879272506083733944937069010160421685190069875427373664363566275782479871058714497099878259856565056667272328907100411047216026473700039295898763370371812185869005971452400081878001504954640235361841958288415866428368672073595225933936864139837278379500318250146241212087783267940147903195832895770177372529663659868430104130374810176276868577010287450854393071793016886424036603567901707781015834403020918504332641563674837208010787629940747660833917430217512341264104065378733758596073952463102943396413679976929437888798372278760158208232187427878359944983199919629027462888584848464872651821560327332381884226371715112989725343641224325259524153247131810351550879862323605393782650364345408100312811443854078056107600456544388636677274843766520637051187764518240510885569773583125749734679415321308492207941264883346921895562167150119826722570639370131877100739016340181621493045431928956572641456739723584385726578863552494092863368813119172529615557729404636629656522797081365289669835814699784707882337947524650083147965440274412845552362333253023609486293500686637697562392283770831510557118544816301263880932850339116087781173326637081629164476909967358335768574300467467154102278578127787948605792940127414048664306430266734607860671550163110836221185604481078051912184924280933577683791108625282359835619128775882869462566494552208118551484088117173313400140656230731091228248101533496446527182239360915159363025628722353825109350888504880126203902732138869100851753518352573242943236831015710219227427790813092883941704288227628310279128277096944671001928196740026435027064181235320351918058541489379471586588385568894365896600770147337780828706882902537018642331723533810196538048714429520177169901935628678104429691412188188803435039116380766815084707320350569205769483947448323389595357509539683194449106766470098461375706724498841130678914648999389919057575148465617904510723524245411452869541487970606379502648875671240942756308963798137610739419404987552330806667960965612423361185943686530226511391034279204446519776238986604990548259972469714416272139200481494380894506361294697948491582188896672674487166553686397675234081603173213782847324653225066969992952723492986440316069719773651700378586221655890273318942022788371266578967464575891852730000114597281850906157071129423570904702880507694658865701521226742587551429824211124972383035455769351520737417757945693005498196803004583334681750024041531177500211932688866300596873844521596766487952249397259462988063406044252375682961569308627066925951346723929560126730071269470280695564557880523215158919691792751468143179530495145651382130151170091565716299559438355333801004488252737927039335808869850272497831216332700703021746596992439094394083734815445012763968323060928864609090821507334740739752829382583999850846391055563136562573501877706599285307797262652966531478926197989351354047243795989490836034531241541561486817157352020738783038934311446684092790822061543027824295650205009830266095340406579793185298787596669808075822072928745595950234905668996359129113130671872083359100177490381447288379261465600973356512571153540706687666541157148092702203632808609996032117931634508397317477426231812058929612127814284710152820076418440673341363401181266766089180858181380709655415938296536716609146900628170871139878690679483259748175229090627421949545587645531085888606632535339200507594623158926633753229037063357734038696946440777343903842224157363915148296942609116245103566305823069736148857900741814141030727581351462523291413593689287803930924910963947649616894168597958935759550396796612051547598192216180027925062423042859384519575639219399293439492474182929772116420527961421607307641445561171440831055382842001006540230824948083817692020067046435976811457048641001561021948039453586411858777832184709873267067683441971873076905294499062576565328043880648376771636079672985007252285605308247615207764197445409855995682929599354843177855237318284828592645392662957830601181532087528654455105815716766515521338360798056644336634407600426712340379643215639284654427555139568627592627743620537225735304646349221635659082635324549251164245755701567225628027474793966523825875926689166802872518681232738799702536828243884670292090467942544577994169231416215145698929105356468855704825809986299305817194085861836564061359956974878980025227359854835881610760647106894939075829521149464201570123864092272271332002554257546261949928034521274796950053856487092425110006148304578546809963377821401546864529806878966863175685610360185821049468674743273586984694277253446187482835269142293384536242386627828093952750782697747925461220180248594927532008755053893999565416686748442039334434443291140069823907231942186642983442066433289478057123901288412620523905876694748596233966904603755764956120170529388143903577514329693279883172517234154847777392798845520701414995823507695024468772017017023709847649750583658461996963623348226458338467844358353480142627177989356374843323152858057387959489177885874442690846483844975646307868427912207429789848455820714001133742140264741555735755412743098966402757387010078698371586099688178971957312737743622892270580766362724902398757451453516204152898616091098631451635384785457685533806662840419110574449439955740433134626198488577702414577960691761034010324730660816294349964272208446110385069666864234719561440122604101418302558266745912483153952765118131575561255857315229984042759206174874974931278955308462422437953097867822114667746827031361049376626711699662550265638812952773281910889951665874825913658702300251136235365060556523681645411508815173101288996646808469316914877078046162506747232823602700759460683328320194466804831146815384010100531763351892477088164646102456734123958202979556911203128686498555160654334158146337297783749580659378935304460620508379239130306060577197302814398447848064868532828374301633959454645432471834950456271055148649709453723203190730287167043587452567644192980144104917057591560519660307441541403440349115833147875582578358786058311625574260663217815850383648955848562991250310921292882115351333465647100074681512613869864723279047177566956028094047854763439131519577442007095800219907780961540424687352165623571411931920121980527471591300198755219696318558194735302763791394748692540168870826142183277044066426174761525937854636588642159169057674999556325517574754389217295076497322693168027429375033451349480109474364020847676447582086232377559992216369476017343876270771179027232792874297741314436909621434747536884178545715497304335903925763070482441248918052704500963830669523200705753956049604269129146694627893812827301913801324595888704224646566115296023806700164154620263883458795407565496980179639409588260380018313200962116917353387401032803466334156623653938535349389122986790117527228390222935599951112127967608424407006962042420672818989261050002614991479898613910443640790776237146578654554373551164157240060973457410271505943331051959072695668287029763071546609337314784420040809158028289905752834030842839607490432542204840870368408059700610460681906418759734786009004007689774077221488778323575268104629869372522316010449274595984829100595980073093089537267072341075312250692997185975826621372007051238190674232212599136070545725984155655530639235111222907711264248047524024963806101180824905063530519963722569145322110917992503365385930088322416996288644908205587823368488247342946159962296717032120093680452459717061219377884448954442611611596550859342727748194871802416285656295990182867986426493377091639196209688344073449896151897454956354575931053858593670582601522773159019563339358486428618032503186713691808216229492806831772704858749695448539990565068749064046389850153204068173544668982913845112132237484605112759322305851086941021487103335194765098504368696510020726096047939411011211507154808105493800538599394946126952399126388069688784454689446657304681855857879743939394699005347733059216447835895427027722638235061023279291821915041015992242586066705726089855679873526514693236034364008590045561491763393061569499485230886688907897274401501248155742723676171275311523761847872917751725454292929195571271236420450590672536019275883311962379654075886919093061378586265403841290231216951399736737872753828432091007773237642105345663955433945877758768760794554317918890344339607534504925294068664292692800058165884872536101469910175419179378798017351354447447276307500774348480268584969788094135235680650952782292822683653587436935660711149206761228154206226026969929958878550129548164486487244866960547299470976324771706778248642527550404815265999253542516825026489733533559756051877835254869491122201568375806944689447572918487791152037054212181524883474207641745576899599098379546785441561343477419988402321616157576007293637885276100579127688504293476212072463711009951342247840561171531375206653610449724800525462410736714521495169316228144502512322969975911248139421802936943493213556438267043792289093746586248304488925296079359872118364030758201015185188949205144432796024173597916793692697577024435375897699549031268612524261356543706744918840582368797895772704875590605053313652890279345390342503077712742607349970607089441959971943228927583368206840044833273113079139001225424785407007920159788009572171566971472835487350326362088527939958344320545975313472505337311367976906825367388654904708543846720998659093041831013032809590030386049068433120699099754616315273471090174736263951969277806073894412184106125373126962539655724661935572853978462681230477702657006685198761140612748947588211546294749496592575017201328196051386191095103723396474937162802565523269121950869698697959325042732460435009484556560770444531303283070807351122417386592131286325859304869471980607086679404925121395738311831132569029453476182857040323757912175291140911851586372752643660487120610908557323201170480864954510433464946226185499019839978766108924316021606112831170857409135039972853279060464629007053492250215021740916595105858697679842402588582427892975497689650824954074998777466728652122118812665087336115890633189552697209600058412390728321389709972277063651904845532542806912516291776828151098282917320172190577299224012108977331058705989087230537511926881932526131053375863005083254998098860388689586621073061693829874249530508840341751464582901791439507661059920532425933656906304580772269699799725067997979098905017341129095267253346116883562567292148031542501226680742601168800493305627691666531479332356407544091771836850170772907736642099399668745752924531691490713459298723032474466189810620313276905079427763074935750927792150766151586038621955021867189320217928612601973374186478941135628053658116222082318781115713520840326675856131348279554070948197962679489020324702778172663885533256408449169703985152966045247961946968682610833040800740399298040514672811789521792290264081876836056804237071751961141752106323106847630027959233666052578818280491009677268366780499540668227025755628963837986823404336306346974387578131241898587828654975416126709094708416123673314988461966428102739332831591410637021871965612473128536997961662489058457146394050134796149615089924178122795467620469554101332184743520150203339633631209454182305992138101810503812305919183648437122436889753104884116475257823182493042353809736293070802761059941567580394944991620163435192915460089367735012321141573788864642052442290417388806062435065599411178871203938348913963887376524141943144052399538439338915707394988041321903605819346994226887020113388426835321218933656627286824669987933635022369352311332470025005363781994449084994022839318482851301732021237484693585248712493407648790756644457686614653650011151414212179910211907451697734218726568505317937591578749814738631896831270949072021523277512909636312380871386305724113755251310691826184076575421620153081394017769537794752169495827637761070295746240303041335764846068836534291618228518672210244659685846127235495393836531593317589711677185444233136895578085741580793610864581721902920996022330827399922033264894717418683545384438906006960143286099617005568414460430924425707130161059257819388913236603185064080495367040094398813985774226110489425778699864124836517610398685730677483696614890749980350949190826528383639553471629334917673582540606921981596304965345513562969506688031290067512929644712385077566548349430552595298223459043351215360613138880495028021571847766940713302870199669470538677952749512269702783883755366558862832027959010660248671989661114301443162418154511007101080881134778174090803140689078106138087953270467764733665722172870499976709846017706893262843882588946187608713249037081634917404161150772040593481294375995079355168797448070138533482851215480421319226105568548243552052404985640628128884749551815880148217426634180551889348338520397552458749998277652104638224782935114704776258597723396560453147039049294147892271746236855374151908488844882921775736828971455669330683105015238203716769559850605141773916479411866039471624233040255291196888378683713682868476859616784549297615312479709681057975700330260763755857873132112424751039992672805188220200272698318697224103275637930250629745975967796664931750377482496283613553259538986876202043320953034713197456997009156607401398220090631600228530090934146836118865678139110090825236452629169814753615015222000316566484242764541641638027002757383996085290951175819474656938571329835941808828541183122023328239869818158503720318857322969674326995077445238133189583705965577323461863982168336140204913475884492567261696810662517596530168101373738796528021799439856810072264681454485711395161412292794568172177521079328558694158512686409974905656775157092865003201513615253364352538976138972795074091378751262021224002162647223858288528446932583018904047081863236196418079316138553784065801162089917637874669208810842424173308465235982838385124619994031783691417770950402880951405580856625690982455228440387191542383912348526464165412319976491243576739897794144286210983073717472343192854578189899901909646474033107877679283839442742938253421408474639532540772188438139097292299304041358157445214434533160213127349699592755346770412489634988378524313770548767314988204107156133750641461987998755483160959619875050025155689746135432355282271049978993062104409506536270414002804015329699471093445696792832705493531625839258952669609006970961801339633797195436156220002241608839088322561296614316503320182199742875177197564011619909628970857332828003835671869588186453537039974761836503785887282428387830202614892761173391004471268063380114813051366371922802260174709228107518009123523730799334443756239484606301774572781993888555098743259460813873518660759618451892048709575665989411689883558388158717610154738176963861220485970825996102883067018851292042227268795079182602091200095184951569483809540632375715385161782165273748612544357969222044643105484520898094586613822658091153785490226976035848083949452035911527190167743916778517620950586601486209118018128062042763676034895400378082014007402593722841705867692683696848624146840651916801004978424672031322422294480547976043222570709451425228037700952000795390017698056599600500468055956412662585164293332380002475513825176933559413757882586911255036804039443631378944421713008829324464620433843271988526181263226017591610281386288444313412237100811531857619281090348004571819799788548400574163964416261379037354121747070488472064626416805514744242663070619466684732982806764385090948917493017451857146213292678109049007468459504953357157670814431548635505368419228035623255001861716116456000953402838361706158179658520981869582950778897415720629020418699786006941515966012089707830486811244323385824390733698263810871465633334505716735054210912137378705724473228373992287300690473645905557990179166636386732165124681408405999575074351899169214606704983259878298358246040872827684978726378729669793861091192353141391736191770777314056353361258068089211889399616968710335988456045490279063129356688980218159698538372116875642213981616889730175514475594168338242581856054556000263851985092461164586435665815864462669045821357524359101733573720475269813840076194904174066022947012076182102441237287085926524235543781246005150300151320844736603726760468942330971705166533560507612898964242383580340736380640529295228186914459158532699186013821873657763034077045657083353615474546669226000076554835559569660835627333974153886757059581432633709764933163835952634656899272225757804198845187860982780758621223468854263890322875562957182734490406415262383601519426546651458684275660962969390426100658309671219403258608347350473161232774590979745774526237730922712863675376957384233050161002190494408754499813018123890240324076141856746861783325320294352970912193418847855330385636391164579060583413387357158047375843856944937579609435815064492523029512690213383353052363129807040712269928567276074242686546436502615186014003758147280236319635938323150065114644545737530190123821479025954041192093755206401484780388907238187001731868246082875467456116983466096933590786568378692627861343551414483592665848765653693603019939355294140931953794161281061064880728708563017506377629111166261282473448959728828533613285502781213082606899488620623801476462662756988784155975563214265070577194144561762368651718133570089239289646266954386434399170249943340226279839761586157151809267671549175825426248755282269971474204303684350835809393124740044496704704312450068504639016608734100965764545888219520131904226781141395822372122425643571719523441947420945052479129755850582670590577337288382092710875371062827972181582167954693842376307059443714435050508863668388629999318092506480369883411703383419537538505176213161321385097667287010250277035340026057376038694253746683525154918363500732993451803670955787055299917994862867097844254908123414541669889780286060042961871786743474978311287193835199801530264932004826041481420482748344850814597330741016396953075480091392836799523089959440253837683563985620240999168013965522351323547595929414291280743138676159917610477258052148159680923047788864043169815558228998624514195062344829228515951897275396305868195282504687993373383843330707237233437171407749109208819343136880300226217001840384910643670664144758423911392903494316682165851275146451515582069875609442529098569403478989909162421916630913863891516227679003499389830523811843939950201382179359079706978344755968401720078320282506392923008537730503419100616524716420217627857837740090024741131316042572577616686129385214844995862120439623225183037119103606528079649812268038587086392790054112536284826676221465717785283578969320714331396713288131897484081636122795675820142398078714307784307317167123560295021002394083381690349575744952672157073230404185342290121253965687487653582234677211772239701438219825014555931022470504781931399997472579065281036462068101975981656286862409886944841614883165880693083494989577705002251276337040931653581100021972318616606792986690625704271444571156627863322934760517716414466546381732465517049920009777191553023238829074785460115353034390378484973647892852272652274977478320178168656845243049951591413370163602976473556406368863468222515854750148980808984526686610883554284653782769614948618267657175574002302922750736327365399304254975586731414278695890106116415863134803900276376421536123819530948428663825938074141949046652491834879462981601417862842555871684920554586800203476762734374663313409885202258135239595659022121136400854920446372680736648925679369620860714780147133021749829194692169580816693532035955583275951483403673930857031308843974684941195593385203593171259284450829674354828016563541163613855513191234665147980483857414087754010950458452492819738427619085101155100795157366146282504235610526003189851316999846257693647931246247647682566630304851549020516642599594619176807554286418430006386958711927634099773935133161559287845697071596384815061834356088551897249598639340743112090044373199270094358624187381412739126111349135191415337595710744072225993041998340020698466662558140649033103879836656393391646368431607551502524747228622739087237187161797126528777254515509683875776405560462142214749587148073500693159449166293299896208766072859957867988704666744294986993211049330568388374188723977972597449340076480997859748845732921052507089190050824591781005959354219015502070102492363112885620469107902304230681769836163052864701924957320695046691654963051840499635837918955925357631705121016808597593397337891265343127307280173889413955158367225559908873421909132238293807715780222270105901337149593899470919858475695679743867315831934372499147499453376133636988526935757661553083141549879784142006692227635889319797407663143801301618569656495676537687252389630982188587165632040200724157276351827063582133695569009644135119805678496099810231447994046472311640852660064419354710652925560651308250361815877342909927624192344740328923817005139085930945111697055684255913369686462066080884915658480114274550709373146624454908589524112813640669835438524996625736321534055969183777608332701010886152466353568160361040763274815277708170039014922674452371165557455971355507856960731241228631759680924956471476532007954712638554900628077611202475174603411492236077708674869843953470263794261652571301679846018389254169706723802096671440981466668081308768467987252795477311105238027775562433268004262999992124622167894374759713115707238954867199354676372162732433736782557838464125200249344146123450696995976529635411865150061613435015149432110937737764287181735963793720128305390130001607653797296882552256821960689040550325736366964450166628932754227889243985567501402557177306576017776352158350742493875424681303934003433429298411860236100854725080773305781118383051050541999266156949769056751717945802524397649771083750346525429811380447220886183357900711161872978807918429447269002991060023782375824905461800124160476715557294784737650697923057583860142660676667855244527961578686396806480658807918955316678872454330644510862294927545845152035094071503645255332584710956173175337198505905908277827668316096197130934025741145958906190255567880313094703440544002117627061895256493743510819747633665452351780448694317594261976946470063139025195285763606568601649482801575022229280211120868698459136206187523951033462708608808173285684185715367272080464587601439082649462143377038105034425718760072861482062947251875505724937477862624900227084973808268830595129957188056608578096669096149484874249175023661281272836883097541425927096105229787105238920689376169264182364634477279045170566615703909378233679835953587809733681617554151734407287614316058552825750365040677532894777255746078639361761124956272471296103972673512838844810555965002167439684897146480373682335118853102123945510914695440782985671157753410135086469104377450695998928837432281148646236348481505332642086409696096726161736148161148390093277753425126926964525460986028695438663093695096168818101350332676227852647607668402428138764203417010337293377056504089912580240145179792586237624096254516113032708481890792556318016764775137883904925148871481648814888108840892155442384265059453667948015817520999030503865320013803290002886102713347281633911763091057702968247187561251240331118755806367395066176357261482153767785688162710488183660812672268330234244157305140317332292686161869008813994890997320367246682802161874399934643957085795737873076309051524389217146257529136357902151313518911621833695750880942856479919493896625952133927642578960751051121414883913213736970678657935424381793714029485977084357570088055128446966275592807133002760961167200375728775504022539139888796882995870378884773553393983048959258375746942674890187057095599287178414307184813634886254099394712485400715315789910700392394865383754091523142184072918163589684747607808011944660806764480443924066043763094971066662176207277236580542775594547313978826576013075241039560132950073367365519295164158999384078838906808779438903188744782438536348279055405846214649131751291438706001576530161363341452784087870821041822744143612266577228486157341469703704051732454194470132327514023191882460779830431528460555333216562440754074404337671462757110390100071450964021558594497802081561557820706734911112353789942371275824991520419083833374423684182900132570392087831062747754139504969052626270708007245938572808437405008092525313046994526802750158654218246776400173588982147531669399664285195998904501281176653824408183068120762706502308794418641854727798064434842411382913778982103307874666477144319813665297503506138341890275523341691747075474155195650440941006449968565007245238051079685393127147991943987995457009062354611247209923650696241740454978949763600147009627787600823845542379103326035268917291096188700259351908083820560602312528411044586453625323420016850586244947778906177101185389368271355113924746390918020375897902941927439499818334446122696485365597564475231194973870428783599783160811934952381470776246748077730360553630639671354584839577325751907963374080410290124059221528665583176683034782548078662823023629199005426520545614004826065083967796025706191153378205064704108203953341859029958784802990905843653573855789984906409857637551411390985107417886744722401003827279935169053913442198707891164816402836047313671283051015552976459644083869732521569459928716887058745548952794891703410662065525465270730890506380543477793753909834993247022768852026207037495165614007758432591581338430712397916394645815330528572405643050418556867875195036682616391819031977477649029681607067209870552440298779563200902416736927918338540616613341712271416188548374503678159093432428273626158937308302724640919687211494434806477452552307001332085849146969358009393796068183228484738739701595895844294616317081770875439165536591283911652649086982455994287746575290939125788259770554652156635567481940471740782459014678790868472567439227663372435631295671703377998506217406219950027573592275687491002214842889624732737480658416234397687012932132479832788720939571553326680336888374188849479992487759894351220819155179004047295692422890072317135392036202676333087823965692116437546921282520685731168509484292437031593546306085594094102751087347478973833357494340695447981151829582917493364542612564582903770898271608797372557596585133148100429817764970152110915700342030652437730575993551312736165987380719262855112295323823001374978604270916981609797343793982386412513252641928645881348207370999480599681491930172694209488186616848432187435363088125322196670312777885924355769991941313501103825658756555337594096935757292888211928000599654135148639825929406664773226836910342832339719619090920697072370850579258928757635515094579134859354543936049081628904945078201074663569879764087430367603669152833166417338368716298792114859955008239572553867399468228699899472423600525062335139650598067284338681897045963526690477508000348516490136466352672667842493753361980611305600476211768458358333697706197577945470664645855290829447793473671782327834414036254495452905090351997893716120847457263394170021385505545602765372124854019900556037513449834044366439051854346809547153640026658784659383549852001178781408221006650242928966974800544249538083958763070250057032610459257722745940407252997259939278860728216461595531229205861608802381080592738944694858875044007909960751286442346259567906965030822755517087095175505056015835749261561470109242919778057409015762841431922888236975057965716553781823754082849257073551768028965417162131444668356588978036761958307112674571379348141191166311048089945010662040582645960976710633065795811739564560303904241000670278011000346823853513037705194233774878009655854686348734129475891274879644087350993411847127808088393511738224940913685093821419988090061625393952667272786527526088593830218112114249174479381096432086832603658163873882936402288599620766944795138994346514173475734556909041495420605437926104294655525165057768103343249514488456535615819924301732727613679445616251505429887265392118747103170725721552194715920586851742689369185970452693154688499632043971805242077447653959584067104349211884975360606688233022868315889609313010130694851315776472048887963324177641515709007626533491952012880642138451040595234423571854988603831910835949839656881803087688505015961973213981605500808325693857009135760857024390404840862686388588270680663258995267242238759009333575742064690884762381603694667859256280763958987037223799244094149832373518674554767420662691755215381287734170003859741015642144728618615259404604106496638783034404972580100955501999761790568476808903725043464795421991450400683187251255484057132967684331686333538698508013866253302400286579327123278381201211654165858855377136283172361056515498061481740261838099681285615038645036054964543332603873881801459655115327909950626103553600289527798260311353504685955087328185044356224506403200221562257511359518954354725258204468925691052561733180701753814088332786157728855761370537313702637511851736121345121410840061028878238315105827066287111344064438566363418103352196153007575833749073688063099395866917672857728681464930138809553958528643167622203222159971588432627637391851022610101756364896209629047443401333853523900541046448521702683601347738165811057409161166232075190295270073390000318074856329345519809432743123008202244073111214550124046685112897195125696929747346087611023501935068803946016439751752664515923493516049723629036059352195857602443821024409354471216704327443521060999362740167645907438807016798041185312329874861697342123868502673728424572454086618310844152496527252892787210684127278261761205479103710515854886184978268237240534481155497819934063290962460446947194177320291669885551284049864630870097540231368113675395394353341634511030065125189687581629299211594195539988393071393925721650052380226772540684517059128180770885789321091620432518165311362439923252686285354786895160523450990772031109060184438782300483521078806932419166869030735873134035083353205486553509649554232207054352315979338809039968492817783305384600482762724283906079123841009190933869838285288224096552073446386217701406790476057855013224098236193433514971248938081399634527285912726097142756305348319357060294577128289344257451231242555392990276169328193807664176978578725421777448905193931231664293358091046036526914967411036253647078800492817016599509487300098967414450837279646218302572433170116995578446446210295710582846966919146279466355009863602305636530429408645629968758516611278479566409273516863509030800944391017418753061790339603966005605663594686706546970152018303276990221092317959379020941963175267489899650097387644577528958390921818127739272956236343212560076323665281987821584798335631246932274990313072132715590150666137582776038390568718241748077212451006760696929076878269218435611222791783739676788621428003381281194141071674490118624637609782199069404697896863158023295046826563389207149664885511004316806241168195663626057517364084691241515785258049261640519908719660638131650203126636814687376607926547534961730223808383945872129404627656947981676758752668492437980176213958868024644906094689475948231949010704800856915290540744814625054352390680123148349886821313171347535921712704799349401958145679155680787016948485919690549341814602488534405235121560406791877394406958523206698440515602664514553716582540898995745065822861934093198149259469405784229065542186722379207075819113689993062951799821435038762941970170144462827985763696520730460788484955227314152491293971279352421305182602332469608245605699518424979473665465789481028954050835423348323085140280263912363401978242277195202380148815547342887269526631498456506723538027605555070126402218132015948502661025965603025326460662839647971140935895278155614817426769339730467788170258139110047374939873842280242869797960575368080433160147206199494496594186524616019504060928691542767594308533554523976145882836165469587278145238334643377282554672681997822907063954488259142641843838675549652513618085047181776059843722365317652782439588510118701150378361453541223990488762091862825089665411995702189644775415396388600323295675447914944019416459237107752441203136639735651950729053997258816460319676819702980282711705684075716325248588029183741957427661575800721699788525260493420431265971097976073926819803417771271841123564735584915819050769047128319348267194574838458823442506515272634085642659909442422413796172013217288156783770884492563184486728433483764319753387827723059825921982120743310983216147520094025391188853370334763051955264269016915129804438912911582615644215753362444251269207213546054852644343281331071925445494383335890644308730664609696235192390000242936237241161109899051190989802036938255259418540987740297267721684611250625756539314445045523800409796424799214058683014734195752830853230791697397729693263006726470705308129605948753050397041645535407220706873886067222095779410832730066903048226061502718597965767640293709487678185303508351614470154801494867437688121464874128626068615684775759371428764917324492464455868399811279840197016572327838061420718271412176438253861039364332618627548431328351789791987916757652702227531107903055550769895899817004145438137117691508428185917392139326275229349710865511870524597352587969390632925886961930489993576394078833628458768420557215262372932219150809932659159108757048239595696714370231677931119852900996168870151951455300687236217002301602730175209489544414791868093937032539151848510560277976390272052453435202225201274436054258781350240890639358878153058652601182407949798712610677772543213404230857166391698066667015072049806029252114551350329594397166730481136648622145099738304893331418060264991397869453052805269031378790372710784953571019780636260955838507582878751995585898864566656435930604615247611796787608111615740445513389010911501856517479676421134555730457939671886531776695692702121043065706006287535052518099439909518881356760997334971368627588416269845254970493097434979454445717831327091818644542620605939791329006691692745406496976157108243816455588394126564565548310712425092862840889532172208223799929593408789566392106070319183954243661263989220861721898118216762585805115983098625957471848649774611280568939780823236627109164128639401091689816919702437476218275460762270994523694145764696553735814051196125283708566869122854684597718185386623152043274552637858741645201032334100109651573923519625554691459619527710770671500581153178308404296413794902812162367674257719041268118022657108817510953181113908025808164975261207153218759775290835820539828119898819370749651581559695045078027829826533768391713722263622721686442119717204162392678004580022233782587576452578835341667440771787608605569937620689115694909350888299514944819693835484204134356749270725074042845618779175664821966319936426841220435881986581633551483437703720324651111857711391373562769628144607395012706671665776648605108930154735784791074428876166166052200576102190924149567017166954296323352715392490442640751970195139243097077131532304938392070030729699300794413426754178763085052747527523122093523002352496027329082531333125959914404945569456260760874751493609475692061415083837187213217660178332385047977349499346443854695223852174825367573473424781167423229174503125865660157749365913119881951026226741147107219880910071962706526838879457152145124180773552348426998962386678730281524425276439457851328054405062831800402364980072655707187546596799469627429050741010108357650783762375108619078047292633447075116977999427162340515537648452374471422693381671167225247527678962967894711759412875998715536418644390302987092674089175063553996036819780882795128755446984639609159184279273868344248150854446893427257480766517655800131993803072868502943969486609485348910868568519217134711379488751590280729852955575436356444548869158057047224146336686254139116188022497404071653909245266057698449630138178852518458264668705048529988688558071171079424340825564835451214680141563643211330227974472304785205898389384387038133413842641022652722357046740299507405369069122053730706595287994186533320091790171885175896592665485058987349788569001912073410315683323418000437499700134692145318615099842953437659771702339045767137733262826318107537255152971947500593281927416641350032242518326962571994757619599622670501120957912629435352668220533114538512351987780682871129578374281673591182729906649610810597118660764001279832679775885108895130823013665876619532038541851226976678345190187253398876922490542377932087042560370166635285106322539369952611118524625488085367859247461221520044197157913479279836208470011154279585004981336888847454904877468018384301659220585560409953983806398285827159274743542829230702375116976085835541385441825061742706436867530582114575661670561920225804224968019936989872094656434118317554836456275983358208470548615036990069088738836010596860490590304024933220009149302967066511510181716844862447098145506305820947860975044428214842043670106840344674219782691293099650998504272916469694899742338289215285169044855391082117768751553030511109176495811492394282373231478685426239580268807903779451794459949156538346234751432148544730648587291393936669351786675237028575929193066039734695318423925440438371008709162785758805155366602633500924368513594230010123481343623029526039274103236194830268009663658442663835487761864796464623689143124070009405893543322015147040343323547038542710760878859066130639829473593014589236395022349468800011001759013198190554192991544281308059412809789473361349557060558461825620942030678486146222219752369799327730132108873051170164026270458223957188470153128475759504043050880301071495431041683419885234903898555950897865609417334840058410748369649092150658327129815149448839206725597324557133376164317819068848570760667339756886623561062470414154292914688531525022161989861882046201050172354742489499947186564416636037068282163410735194920200169585496983973209545906561711965378054414113848142498647717316937329335178544940701447776020783973545321154883786443248132355099063049965786489304582973162942836460306384603781191594765155285612987542059203891090080672939941628574981820552528464961401057172566829798883261607048560504392324748392109787706532834065923769128103317910204215136465847195661619411345050497173675929267173791003430395097598300716873863863641082388061858693934515392289059644276782603082918624985413642356082221688543837947966854604968086448889469537050588788227130746383705464219647615230520812891802664544413321497804170262701296763145705975296462469350367269689631905840506058497012151004996387564278221447724383687727069511920273919231284565867423039622599642402450101680664598546042997503698175310719873891478590824014976833881532798681242135946885281429979151736097208462321414160512691373534626369865135574909766574793843324538299389711513319544070292582870054132506091693919855729721653274858054596326636663940373721536434506932777754003995917372885401070500288783030493352201949641344861662129051284348612901100478409984589433874988880792750877030689887581104969044931445080391760619144396768989531225471196513202352718654599991698675535727806706489509138260525020380172221367236987711034707382008915115198159798774883848430504211968285345210816661059939864242418540250989861298012893488791544677170413904898732750547514974701623482374787863224545610327215598464607517482833145095055004607088686002537347966314160853674039988136481360364999072671695436416709458576919777392507063064551123858758142962385575378850327921908393626786282671043223339307940551558317458651940621927416632000004663954417143532001248038224995646754778085740453821618648618537774246093803741792746113635325146281698596280754152007421535029735934697474726783183212917133099828911381524142083640700089023427190196944883108250197183356501290396207438538568488138278057024172468592296030047007658858077088992603686023334756396977881892467449719197201646703963077353322450494362746610843022743546236325054260662442433032801338387202160789908268295818957700046510402745595635863700387734932677698032058465546721087873596610829894009146594778712217470956682064301548753544935603410749689157853419611633383909159543041705443336150500434362272571738002149389612890959010728276865014349652055626625436213246452760600885351728381283772372368619834379634598908557306748596315041841513339631535536144834222213065742567290693900666736729709604279231229604665345176019743294852055027066566776188159058337092485600986497380111496360773368506875356600443960292016008007127646436482847499823418292029018822202807145248703504993824267529528850296074615341240265032704359402039745497747672935815626082512790621189873782231966642137375221067587578547250468358813817818607316295123539581970609463446075339078049265989383136435441320301462840671669258549544710383562051522430210938833500933810724023164901643300358654080631429699758251934075048210702367999837177605590989696577819189619160829143753283290794409497279054521249204188692595329713902082873023232465604961280468752635298635390132258400270267091190592151789258042648573956505393904795110214503483460782789303768616931675004760534067385284529449211732491925965240745904181726096989768313212737791069903348624719011978225981864838213413584829056203967214067350394327447142812279716639940018826315799957493559464863481602315428069901290374128468765600732649923650134340701608560710228081180554681519997034083338067436984176408553857905351388719533391422303022715406643649182403057714748310734844820884731164660264600238129240418880900175256792371738451132178152303673063809515678092403926425502791576610770841829698918113623275450089460963154723936153962856003070006114960760948360134207334139213560422019941954505995279875990166644655019555738682728073700407759260669458104701691412739114865058084389547045923349174669134472396924312663172049615857709919905834480429353613226356147278463026557034552921317049894193904357301217880370377404933527267976703879785253041413967455039060051834926633666032090044804063492922662709251340032490153533791312438794309623480715208464200870311891869397884473303404050301832632262708648289641080177939015814917215363373747756870899957877876771847397634659290875542751187771533299539443132883656728238502246151688991238127726040200139250249565415262054925003871303488148384187941704902456218245742397865624591836549641451570530546437303803458247194333147663913432020142483067648683958460215189003920855718443235182101016630382551491378410769999699510536308967646078369494352258341295664589602064896719949601864261137273514324445303941727564860436538494112951526549487391009290739607917302460446330037865429403884865756645028407255536572352364893698103092653418580024607019316573256633937839094089670533755639689906088894499107889478626852887786927086080668987399625411991674320205066196724922800923225889531087094100920324075893713877655185573876528811927228225153832720294360442337673460360549568486047388651198440870041579652205098728828325014205522989172330642721903205016932565853879168473251012768402156342731162562447369033495165720570529616683859606386034299002898028345998272136785140360824773324866811578650873335182394405365406648699908856884825104664599938102758870535873223543673013471840723295410145715572370362591138082791495262542485445670074946248734532478496001116858184706473500116945601571589110617066308799654301386977966235470794609553283467237935026289175966842493714725757405193741662264880710580647792657933823741792381611059691071599254277375958575107759915372368469557112890120743116012557666283127323626812968249500174787387043797276838586732865936601777301240945957294770764606916266449928950772294222411289458679257777349961024845466811002152965104654277897288782708882640651842897738299277298410726768731678592656566919465371018002266898031798621053544389216856426965947377644815879834399378537794248908708916297763553351208181449064495417374805124759039083384787033597536721602721630335191279508904526284054347897291811638611844488161318228655541461770146261121958222634498310914371462342362793179025310113182263128253151508544562095207653140753126379528364892815722885860230460755169448646121806806794453366903540257538596008993017566311372873005127980244746215768113696104251371009498633180538362926313900175982918926223586525095606778215234884127871744157609935909272811496722166979191432300869713963909637239200804332451136080170535330119060500742917076747726271738544085693071205852905759199989100449634283382759332254432829340462217604955554436751474374329740079765625148773423056835772194170668585167660093615523375952272654371969596586302876338375465503516557667992061729410833540975420898802895268740113954480640690741352699588366762014044754818412587679771030738429475237853259748799293319229707619722447555572210619481408543139390316018427618518754467559907852926161941741612501179558936343579339655471816559511646469397238791085691613709825474197601900311842974934648199562597181234709013347057210611279198149561207149560484144053114318686050259179900489788323185174322117619088670873577414898792073875285446675536751976824248977405014525574249217885312709441291657868262136561198342815834267460919100554708768570497280245666661178724857540783787852041441289098280434550913484219687215845482177002139564211967084328791002752874625021044421311628434281860379435719353638782629189592484107029572559776170010904342681162823569425376216054894038799765495564679957093684686420850914493781485168801923200776569599005351706201378672175107060358530775264632039529649904377116679668273636092623737428635384527177480691628040660163583491370864893575304791836255631190469182055093444480466209468175482131742104615048553061765133087208653828766311466471576605931061853602140452723371864380345713799936961487361299309479370240412757295757670130244273443379389489086228928249550731340895787284973585154128370632919260316570991833651134129780377090662884478711124463176619233087022121282564795615793700044151491291440015002661742443019602170655146238106493194966810587840563079092207762256691767860847228524811312239944699562682698383226726875977920598651567792613138089255663500898440241453870197880699779841878086754390904228717736163738459405373417705429770111497084317000879264010462078147765179291389595718140818370216499027844414138371357280473194972831184313674656356642545239527320034928634144386683369873886595472625181567063127393535569737458065166383191767014443073712887184426057374912348475916250838888101945539856258363076370830145376756632353795226670787976357490702545052388644387544647089364296469687241186883251105620419743765925613080088758358074871066344721163241054839460802718872928140782303423313263474182533968543627430232604042389715964705639434064485458897395318428109221916661863730849140272854416404149535355959185426548514325871881415693548267083942456563743360751510775922155832122515679153704186834079951813698336948811473027232277128349046173748345556733523752349429542647604325256107875339172858207678273008805548958838648667205425930934795945297659797269488988940560562333737521185249952741243861969975217485108155613923946501506685690157444646917677645635986186236628533300738858347415477309013300211212599439990476406445760469299849206681764818278819776272872750156592826922940445984133919965292299744963130308353759740733880483926243376771399124600109344366618683479782060307885793380637319081136361913786712287402291417677961515456825421219621033914736071810210826993066581814576876380812578452688251583775352322584618828574855651629870318604753628720197971471519515216231994281019154886686266700557071744908626101172192531426066814377623434438826272387906672309080485141851615265625968231182929720467701640236374219158540363428536402634380662901496877516260145544902834001821708376672108728593200746998650255876187602897179994111652475091016583742161302839108928078448991108491194447470108108135199050098852539314655020081766274549005233309762513387019099971150443252886160619612811338282710529725635914544621233978494913275951263944809256838977947742645526149962818813522957227006344466748348155047813375251936830789251646491711788270014939748577810295229681086254678701796774564362999858547163147288563020474380333142303992875504016764143443850327197342083565715208088636705317711912542105147336984079798197180428085994606304559806859765605766232881174362611115138366066982435942060169635910510585361328494541445705291399931365794832387166645916571307825037631744729344310611429452555092345067009106970923658084375774117036175063608958992834752334825037387583350221965173060684697511985188644626864370746236279276649405397679604674225115389304201704623969407706344115940260293642362981169090156858344040566763155130238893050877739633240380566193981984603619083568085465275785572491266502026166172203395935577133259584222301704981990829088777257854181142626561492140778679200760816150782987007530430424643215267655069207303613195888877421798331051821639189125960379277604023143710878324603089233993576823215681075604819917067466530641668773280794743402120870856261704596926885921274688795950764717676526980512363239705802784589074943134788677265783092928064930476016956841972020709869411953253976646891709276146992744130940438889946131562394949314148614318647051250417544616080482073376476943980882103065226501535747354792719567713815237584882623181010599555388188686117613233514575955758250089510260313286482992529783035618051952015051103722345574793797303035489527563016119027844895790522363778698039367439595253004392791748401292340854308786674160597695979881060455336512824901451630385174571767786414699776619073373080156327668395167388188503893296162904243715373754279321508420188232075773986861871216202723133395736178975736231445079219745398251661148486031138120684296825461578353177875769220838057839748390686380595251683007487769693876199906992742218178278513086245447711609197689793920356007317439638268790559635208511582070511246475175472144983098181427163376367556347663722596330858814298021676761929900093287791378225787310406477268180235777790592494008543697753290191792972382641447606198509587553090675593660818535973111728745042234106344713972472254969786038794055886437196803413938834924125189076611558903309777499951697998709370398481602541568630209337201598513803204531943332935470167334760651381149813496686132988216310093421973800263676854764048689582001207165133911222221187805748340203294727385649054373261983609679748575899958015396841194121979998646629173613678554082407299441746686300608665165288565724695368926243226438182948221331854355031200580416334695988992075673261084955965503118537130140304348212766874627466240192235481642169973194104659770168644986368966360486120170609193638161292003946794112384975853062570419378591465757155590433297837385492609550357308016840687890109625132093662588774377435729408293931830884263918550372244863131883138081549851589798925545703536554227784914195665639678152928081211192713287697331026521512603047951678861359856516175870739352285561087333389811688773012772629970705764782559735146572176339507054895550603804003316469534218997783149544037744190125497631757673501820110338868761948399378028688602135406043119706334087543321110698982791971299324557800048184763496454426565794703766470282193795035770218426242969135031785514296860693116606317277549438304043074759181995524244503525224801155690646285154232335930041642695244589205673273510729653206891129649370809664486184321875564302161956844980505979749767880711453676983274394852558903702112296928224602761591970729024471918179254698770415915891698969704993568549560689106501874509376961682889728529209896556245755476462411010730978785639765199155623733158130963309986481343809777459362627685571140680413362067832684699999488870618377946801015584305853238899036975338125377364093816627270586606660667282086093634376126146474251827027684448242911892899231968559575892947015202787916161127538006671818301065268040257850711067267008357894970530144368958228013948270589700273364332603058197162761989524427506569125718389019656556911217579804887737820046307918016975482436511683348921189810260349075944409862173379584943671136614307579336662810716608030156325147030191409866460779174637091596900194967833640982261703739083117637871196246958954667200307880723759820179889445710254158172862888868492973568419398780608026957226369613659723499534601709439285458887236406018478784043828412187781583513978076389985905797402494727380575204195790321791595853886434182820536984257353981090447955030692166082130003049902533395307287784965891406839821160618837523715786355770827333654812153026950233359558954121043855344107528266399585680149577001699413744980770535583261672510526433171684538416378325359450034238871905851890446278492987088444206244175668386398175599804480255968392845674176649397503855032280590485433143492848779734991337496222644269820689603023752846626855666154387443602444679050524405158735836699192755975868220791555958018459073938197227394369053898312423705697575254398419225123267365408995735678894595071453200610080483359279816431691655834560771263134511812231290877606718345144674368093849125440068394900445712164267662637690294282386375423869573395164391813096678753658072269541130702628090912710258856971253409004476849667545607073698701951093093497031864199232948831650006603371064693935498068946201660573074418653958287956106201938969710767252752441457995548303625965633618498900271045275183352376557863923842761188182671418874250624895789285941926140887104500478694191498282169691110297113261723859674355968186911624326234702879582587482165104004652187479932190075798347515114178512423954447295062855304647748254181262724213147284429511546841651424005967896750918133363747494845397624812321764612575953131596055626610514594724196064113404657573323532616719037087066132177602481244478097675002555841376500775181713846422459715988801570505241302498807426239586316669417162033202850438026801179635666773826399858699216010012606242415520106495754076129132039913277188357682841816883574460822692891321007478463296230107108758042546342893358775062794717547420014380113329897140944252352268805270192077508412781099530523743323177497517923625213388247724597801882118239797350158825279994877351452168027211604526230529148550813994427884438550117251036819268774247178537706094512041197368037850868768793646694986631473308377848355247219978941944629556528751017176490408815942326235074692551379231757711031305804836796016823771935932673858557601405985816864118738442057882659081047084929016443228599572119842783722201360772893929219638294246448215044333015421675578775908654525823650999584918088255677818036066202063945269815827729017357448605154207546617945978642992535025840741386824798968062302582392743135307194154487726202842351521061882174316236246006961299815872753607003850190713003375985541865205062561873454315696220190619985420468817098674455278785099686212945865410770575184322829373411676245571339398596943791564141169485041894509003173970835329109390023830325133216275631087949205496043991478513188666069462614348548694350308185138057854195885135939601695748283653964829279958964346073410001827420244907453149072854329644902996724260603146612715656031375598288531548081342556061811197853351797650342588352147055906912127977393477077443357717147926702309456403833417838111276197026866382998714810467100456169376094159685969680478308577521688572305366888062211472777308762494792446885982798062539274742442772043262809252783576165373104323358129763240422564071361800358595791925733860701196903471963687760660996706974225036476811542183121578090098369952482638884305527566239869921354550806165347683479821408971703996134979007010970907018150273963389067184132786647353264281465522540274868025977297155066287016476069452757224351359765542512048060749508530719486892404858666537154715357572190725181767943710258225434940866668087695842430405390877547100981785004959660164333155090490668556549339312173666051576929271047479902610706809933109306206546153239613982343220402869727886800429887629486356344237012877634475856627639904690772254712758370350975434699759103871730036686679161496948197782855149657767297546632397007361330575234606617445779980272284775665821195286118967851848468141981512476404706661825645474496020051326064262911659706831781969922618009911944221084740602552254584621911447056986867532542706886761801717652749004482137390652406096887593230134675080071721567359019937217029866630789725353865958334509164766960383230442650534067722275067058954773726062349077124609577338910814894630053719949611254060754521894134693531888487781244348372667228887083815354819955290730351004766853051582336273587526524003325321895050525725845466569950587829862618400070796515305796151658501369382137984664622765204318611639413260732516008063834201183888479874013433940460292586081089016554365489105806538474624487729682602243240879765899661278447272909349425233701304087525769429334791927559896237804076321779144870678687314047240563228785024558475879516328951561517350700434732951425776634753586587797891698152214550578372985112972934998252782817886483471493970851269709472729332962253539221398010208782764846111008489384198540833138954104780722845608253166846993824833475820994029729299782645584551481640768173438722805989354629428087678525058587423816611000193984487752604183880986094134529400578208805822506922653167708121332205087751991534257266039569716003137346622239840113314717439299754234017603048786198491947639299635574617267816789226854041630795473025439244915900223275108688740864648640818749452687937990902757653718694794753565578406182332790997029353635858465773164033021828632651375021771254895808798967329419505968861032174135976347017617378019338867270319323123346780360986927137886040928102348119742123337234879932723190711946193418916384308761553995637830501276193448537540267221139102028585318298938784190926089172990860887571337093075534150418047656886249522137462932498366037522716718630920308358576351476520036638597001534437230644736443170637712902566001695189831072846874680640736120281469658636730823383576351493764195148138570999203305697663452067637055182918112654063087462413988121729458121624014267167955328000878509131234210859580208143903157022954174595928591503144188141627212463109728475252835089368985320374807578698027271453191891763478588262970097148024713517244974620931848419977105340099941047046326729407476385940894894393390703427548894430002647240690169331321107524722086057397435911877290164378320617379215412026482312175629415409132682335500506430397733476630721295287450448950228307983352428147889473126234480219151030353433378191005581656226496396658836175560344209465125020923421865361140186697429276248787714997729440438983080384248401102823325567684958643311387314634941152059673406228894858265451531062949384863908326493516910785797346207500339943406473433838538931694356839918627043499406157868287638157445819564799988102856397539833323694774358018990173840062880560496684964618820884007949233415311897162734303600655967517296689527904956086886502007140233558754157349972117667348126151930361747017380571090375657522152750121320032052111929149381750958825093999337598429340079518557125272454801541137258817027758119204163710530804597788828380536388323989787124390764178545010635566684269090467266048470024960142875955829284692598193104915340689918165296443480562599643474135055263921807586925349590703316932053950083882127780126009396013626913280283645891709674727351993823418235223286116452621681608679565380451326510111173854654936280036190426835822158158211379217493291026267729699154273873841576392882400384451510209989064732750458291162967566895762186309682576944552883904385894169522061678543415356032163220039547484121009613029092761986136165054981201705702685519445823537121359820894999324438409309132248366083051583470342340154373166155903681532881130495173783550481318159394232458559964125255788041770565766088354155376757240316607359270482885009521145271801322950880609052034001153233422684030291068526925560088544514903996954621585282749299239858971779976048631622185568598168107016953180253602016208534377234536427688018971935318342416868034269629456221499384792412533005513415602927434876328397078516045279603220648462484293451209679145473662374915371323757734668919566006041062345993022272422204659667659599000866059799010009217036793528384167318165710855822010761648988959654867257331798932401082858454432748044974236611216033522653787582591245525285472977440705350127752191930045288569947307180867124890546692389024119468508173833003391814756150148539519291502915429075781783777107490714481753761736439953687592013477234121496461592689621897373945282428369223125464260565411825579865760172178998930973633733640898363863514255276849873084491654735496475198182100764616464012331659727349522353172070220184514957872343795362032841125654210818122847197273476459347633236530935669943826980803800438238071479431009247841916454138585136562837735197867972331757415464647999168399597235260217565711462728970093659627536767655280653719443854710318099352364820865394512218905325800207819789262507408406700038557668527400063772464306567876274341479559677494818197492646182351331388438484546300894524743277826064304120318241904752342843903291175633696479466926350814623693707369849887751273984889380019981648319578149567584786150836802156011669130430410082292410933027199361226773964451352001415433124083983235877512005685454201881526906437414191983908008156767083043905834595955630969198228670104851619794088416805230461076198530579321926457903252966137243984125382673671660772491607683596308409043009269636253934674687442373208492454400987500002468400895715769146898830840617796557488493454637122188217577569443715715347041271148673314158302376331220391472250320071423412670704466615082426817398671789381657311845585692946185256570667094306363410275717907904755162570397121686486668967169149756106083875770344587208965518000539649560205476112559008712212178895419684450737196349505507768804526210263370042892889419148707655001109658402600558203604647960557283250465301097136792774606407090108323049213443582266343707663945271216089159641658310739241524756466675518040296688525842349108116973420663376580787827983868202095794873276471917979939782325693895654049844808980982173382088648576370155047238044984620661308926862873819500364514896132892519391347014913339011065118265324056617863506389339736996764308025018445258132658507836483269477692974714474160379670236160461137786742840499063579893766145555082652476067807360645783007517793440875724279207479372646048760703562766327081422510276390283451962234036655356132556954733473601637027922354477454071850810734687452603556409284981096273858130664445930813730750359956262480408022598662745747644011744827406552938139942530247901991015706729232754668448646691283455491374706334677424649246277065248208658880818147910818861213557494366866990803750242067283977355566641992044345714570686032174956469869859579149756125816397589808407931234617423123712863858165027832206482870168180970054795439647643308690549053004411521785985307494550263326217639637038808657579674991217509859985629683028626291055779375704828137167445468225262196658553077862121902237795935622469789327716461099002792562843644983254718663330981342416959357528370095497186490469664317336883336252372958577048758926686913700725058796928615702652641590062617348217486986936196064632839132198718099985847462451581839019713325007957779620145959381024049038256803101234375635462361962027496388213184605214559066398736447358082799218561434711807196678308614828934881091547708893129178766677241752068308270520032227256922689615385052770562449549132669716247362482567138301756953451572214199927053219722861534717851378338086167114715072162673209674531319504583341409545888135913690335579338624654885045205884670743110370302488191612360021523392123633531595676357825711822940443817740041040681960038869724993150828015894918787388757950523951242433903434529829022932198377888254053675638719163095348594439255530413769456456964783898698965486158522962253334446541160162363401197401288744897902732235416254821015039515846589359290242664234766640908417435021724053901700568943251440837521939449625668768345991248233643856372742963457572622326636882745494792139993758897568054620098903525287698409508453936327439671881006299911481631242575018518616428325763603023628531617230275258896930929851942961231355514396136892769789072774107797818160082529653838769336292003705906099898059577933179265561152514677659160144472609341395369986529165007289779265111673390939930345660737857278879541827196557736470283873550670590418514868944579301420440794591647010486459075860647685274315160805666339846358265861132825904816648990864997736355986143621969863686477263174346222291392379958804647545276125168074068356134238479955901043169788289724630522631716413227809192321284165314109070075834648151696927589519972130081730137075354674968301544939171528543014258192508996909769097379222533124042371634407886361170298274870714160447594812563835334640407902650799283829175982293214834891668074078235384985831595330555458469635711751953320000527430062204901178400329221232973278200996282561890738430230509553184270248599603185731145622480461594982881235522306789262558464074077272341563154153452610350102350345673122744858709737011380158651496249430333926821242549323151954442463419982054015088792520253759046654587644050485603308485179343693543007383217846692420701380088317521157518698201416769903514952364548319804513900596357225216978246168816553735224302379753197520333065481900379962231417719437019698040125646974328793387375363302952211885174009417240270517344680649248153061686637210157245273186371014790504841035630710224260242702459460152363060945329673184467814001270878446107714038562144970310863516421149484346961879863799466507300657549134571043121589943909001915017012369600003911670679785277653751049369116128217229842927131482179848258311835308764537220337869922537936530973267430807121780519400767014372830202222715173617864563925060082668066188135368734262153194561511287267146533962320017781681264863025596250743177743414397155520276471159460565211992198938107784003452456112340632531491234785041744447096409351029517775791628279556827815086185421960057085824434997482851522966435868855306652347103904144850904667991774630976482874998957944302278884057172690545220915077873061059716039869239902162992753404114485124876580778849297003163680784697739501844702223512267434484873192672539999027222363152445902797511601824532627627170160872211373389995533258749947501870959901632962711992130363503313670354482810372004896691063327035569046046885994025362778205420842997040111930964620880557164392127499947645422793544100224362905465703065274706803401774568243127922348227363841709911549658768265032135477227519970722021566774791498882798295654786249619647457677208276685496077589876726592884829227607572403081612936464474773724145350284393536247975665823419740215823219399575396499194205255438416001914578621267823307790304935101653910279385643914283763616163314981979023862202486560668576273867753442758588247554092725233413938145805921666510083393496001298816769085777634972322548955127656359905515727532701755943567869676127707436853079257086753066709979058098624729017561109650506537459556809581191333217169881629026650640987542105103117050069611246736804255897911422674737720198170776501006150132446672693137991160657007800075972032621879434452131297083580003719336561297557264311527458644930901578784518943576015915054235696122418851840659406118748014733795277119918875472097025636763933244495834148204799851231315926026608427255873510983672508172822341845562647544820772858554626478627004349578799280734320045057685557367778526874802736624972908904075268264457102677917636390375217880690662290030897886103178195721700634843640097788869113023839074883717251636719331609475618106413031428382029736055470922747239763028288705920663645858463461967389393455266008297037868755465832476853034493303607133681069317867618940859460567481248911541237854963169127390360495615743872155112036151056295746596555529187912892382726724733801450844236819936827133354274213669835251722205903689826487803125462270545895934260742632298612634470963059433633989011827002306936642953303219144017999984744487964846404672260791940844545309094573496649281424831970555040888951361932867192737801339713293850333439402100253090674004144726209126906999530978535651667550192648860846129857536490017884909206416236446555548593042338293978576631097547513223247917280684957184832094171795141872783387417566692217498599631617327419198950739253221079270492587544570297481617590618118269471013738787494048948877803297535626163359076773094177996381240110969721972358075364995622180713602407169078518310185741721243005014922574802417198252352017906994252607888220929273190530793500550914219730715735893991028538075250718303586981685418319060743216758926745959224941508139575914613931203736048749488733644159772642094556592199859001265720009891602068538337335294459076354675381013107285799243302350659136360987012808673788900154581956971116830330266228426759911945739823786242954745744576865691073464268169103455795882555238455475110207167190671382541711838521452310347420665759320682322849429050446012765045647969240499751022747868435339835122000476511656336026384914312302017488245158340051347498796075520347745695270071545956777158320859193693539145945412899821419610845038964937795768239225475744097840472265986706463513886377104033579598582390969782618409788413762365382566886862675058770989234751581180924595879117448499020832620884805450931578049809855542924891454872445420281536824206406902072112570648386956693781144005691887218772556711622471901425819214260961302932109616057788252770450264699858885309986427720958544488127538798650437081180590228317029398539707634882314566429280695368964803472980783328671635174471830013673930376963284495983437092707434996568814227341627535708834017666907856851337670587286940626308945952992642174836143356473425866841651844405811410035853931189201103525025394810957723578753255918644667650147853977656481482265402131935971502783478628974590483348710251872380343873171113966898276115805183322186600171517021769184734669946711492132284226695592087262999443488045402422515739384229679545885714000622016780828834776137090403070387176620845320653978074538142258276631330619786846779040666070791578236556543072120060706359650130388819832462200490000871338652446769529404486734220738340856187661900219081937127413864153955029946190919270213296959527629111899536850475311915650621854358328896903067718324444409766128072502767386143202468786781717684118213184732810348026516091996865111252704491489473445452240467249564375654436619639982559423552911009597723470429849006493733198015079367616656108530839978510594174898266926873081181512846078072261079064375756466794923893977641230464843204192783593397928980104946027426107246178673538632628202064747353719256595464246048345515720882599516892265861800240474472772427371767573491677889580334884170041812529307723092415938745121448279719296264204927337482751281085678643732671775214566784739943664638786221057279820207823161126810473149684211032346070730310059445294607524660433910293114387938092141683072616564192991088750551350994448626281531868824480983436701101373561421691845318530645649617617735292498285118595427749611974495180845510836880325871120352305110767334846012768100446684462399294906345649749642561058397032286103331117889473311456691072997832685096359464489332560114622525082178774865132787491187073839579829395891507305984675685493698532333461937953902652613442195500458635864031330429286893511918916014169291525683577648013372982694838654838395294649683825196666828084094550888389927391483611191986873047012989118278544991940467307905572257838540712806564698281680509542405942559850741212614331542842337887658378139602406709655672577023113006205742163332567962392652700927349849059135022091194756331487810708462333957682940211183862876646566112173093092295548235233521106601280969326329744146413431115580622551089941670926207399330702833982634405972512778932326782554615288880752836678733007057462667400797419782028364952038514302804946405866980733191747439368153384297480946829555602158819439264843180172660404365391053374322965166284960443374088075182743360243147749990303194960569823325584337419055301636951646901064365159022321695598851995120598723567756170376748377065454230173997867642006523389790613527861212111269994164828596594969835263940351199832553458394032062908154199334425183586939954888861119743668978211916964836191082738693391229077397217193092913477683999569856615672101790821263092946015054174534002657608970034000391303472137143815041008061534192799211701204413610075901796524167885117326044467423542946352046656615304001328023270198398233323521449062321201421631265546351963495959162422831928216626647632693706260500048482912251760523528930943111917179066783440303496264789041482045212150033007616432129301523473363699123187711019559414333778915927529489577385916343585288287216626616923191685248582248926342006100645535891790591170412362930979145272386349856987256636395166915156412913768202134177401341893572417283436058241036406267271989387233263729895693093430424903625956209550618719386806245518237943745376107405014980188591290180071619267503012282792539842605266183992284611623169693057057457094319512037482876256820318594547542568125565576354251568860274589190720517499023846474861903846389644904936381420749002691505851418641879314881325710981177430581858416394401447095634814148003828238755650220237104942557665994776153292784746163932000306264272856624594137997153972524823609908820800852611776133036564998622787790708198793058254167530556526927329389542608108832371016784607882200064630949583835500664644876346557070004427871063387538926649575647888071661555038330182355345637310584783302243296429915082417206742239497793825246668077963541163362422422827551942181296118938632445208874669205072405361297657633075746201850809138938307342794875373377462087470198144894928510793398712273743857626929462504218465830545482920247484953997197494886222030657100399344034040996228576679722098873450947845770916188102909349979932324427842162531249887828182877672368005700763435378705372821550855890484190335844544795475364716055664148814941194192566558086453879331372606411965073936585451299374847868632482549187609069868685659294070793665566783788422418955779200595427665141555879901233295013360338223181917995000642372288176872546279981250784704876664899461236282068142124578035704108745181209970775843472391584885054677721655343318830858871730083055687067308146642811327501402361619139383475439412912377262235036299176054781849308690668166596556598726600868068362511039663969266348075876815940108083295419257069305834126934051816131614475826966667063205673951622475032104566103137482158815046997131392809995787928604554346212359573767980351409006752229741258594133219435696459196867428782696798750299684740131772265467091836841172445535814090876630068734168369137338254657090218564754982998986464220525983554987171784728831229418477952272640968639567178456396394069489189042790351223234369558338422910856014147912290643822466254168863296092926785847030420860174919992993501022340971418579012789164580913235539955758714352219917449824028490718017631931693655488961692764223287646481725565126277908372477077630387610006481420738048640062389323883497474149163284178637297110772882205161525908869852750230553065333412148772244789686328322844874149174060765102156200645397678540047060127688258223247314152759654690034162825105467621588718399918142231464164881475462201775526492234892283286342496915981936911885900481024878535259406136245908229845749522347259733106663377968709949701147354017478642089090039832044722051997835899940229565057890429920594529107074366752664060913913546147826641140088971880351011948444174720999987866437507934371734211476131100262333127356424210581720290994739243170062593853013879410652725251896211779874669368759802210776748776904655607892714383427958700000594734715388684083361203055409129535985093978759853065846884756624385019517931674897941162040521767347186140956062535828949633428737239347185819226261301133441831669541716631108834202586341314098019013788136525472093492268506872434147577046033702375886886770698116624412403423948843697389608749246213693441427103819743745681078239968255452852158872632709703528891459159182820126441847223673572843471723300773831904825732255532570775737688465786728452586369091642569308933239054297753004859715040032904399961592366098793307782004301109059541903757887947233552019287472116178955609794470254210677820582435318027587873236136244711510170884777607763195882673663650134719699785707426170161443369549538757513187471868448999218506063545562680258435124815569776633261461959716311351552775123563164422863239027381504848668946623809569602447591169932165636044454384821497513536805169841531816463215492621210616624566967185937105206991980367542096376729420024887480094053307968331229078390326088289091578153955525805586480913942585960580519147811494816777210285456342230959673752572543541548434064798992439288634873846598585551951704683303722500039266190871065846072961232116452210173226202555293650892372627274584263636014573961558459659858902286719383988952531100821616317112573802769315875503818373325758369628832072213438258569104459153839841213349661298797086287055755299006676611255852949960046195712167042599037256843764008245569656104695132170373039868328456203043884725660085597865249573856794764226703748778107014957173841141624547538558747612775337782262047371262047614793962165973407505054782603381978799326512829503107048701069000767480987679410102646374429999402356117349028954873193991080662504735946891303424409956212863337528918477805323734847293075782015123808746083800437280224592057964182200776590067926131517610882014298694108711945535813621612434915067788715907526181399495693137890134743086948445455654950054287365044136701998347990824748343602559774591109673285322041111623300053866111363732588853938429070343026370896860441409904565372038369386562048391729026546668289140928335474565171871120377959598429207034521476913681133973358277585026016755255553701006466700955258366251309710954024900725163208245355005714064711438795243526294544791751889528734632754688226055215012202162804364786618518914659649154220125074865524623661226987575201228717022188407471214652770505076250356212276830100478133169505713786312725564097867260464312690017323531418903558841882301702066273873467400786073676023905077198480756068238174332741465103289400845433594280992052441445125771576896577594009785379940987578652892444324012782257190866921783077138337717183392118309968249753764283735239464108833487147501170499617348257277448857511798703728902404237700497960919131762463732360902221635659377865222886527776258330538423333932546704040431757564321201722511705226511767180597085952605547772314199204692242319207255153039070319234797869679259481693164737953349400194715756833462863962840211707363480315688118625688257212470463609163689182105525745106044737889830443247848844912639634246090708273280341429173033384732151116718482342350037087339740542275027203905629468671614660792039093258954885240962843401103685227826657194086977462538872706654861282066867464866112766288902323572504854352645142254246556600784292473018236943465960216948462247483851938188739514142491140250459761826773817387503325478840271259071206226805198114866376979399060682711781071088407072334020848703352758167518528319228505756733494452927206680495997661669072257263257176949617272738829056189243577601840087533068144129119074201229332766502060701549804901758964029018689035847621740855123244651468478335360384381029845129590865346848268325404487343900222273549663764269964273370280906631032089125216213068441966282367751944207255822899729875068014176676612988914371377887193862139417576478516204013699872464190767165920321676648127431836964357333792981701037877310592087179467944325554345987037729137989630296076227660629819028242928701512176511901737852509397129230738819674014781498434251651603779428867076594809561321648915433227003101445794078886724636033212197698924442128352853846743094515547683679102447638442719665868154460962743227583400077581710474553614184601295263321840699941724801704848684771507426579511633159058894506996933667211422539171360617467514974284822191116482007857204829684625529837538052460389860259698618460431170937109181195779698555559103966716270698091614955061098477834041532823713205102262181293629353624715087101977254769152058335780378700741884834167986003118866035859912600701401357324573203823855760792281982127093763709201638283573326122248134844708626377165042159705550638936003806454441570513132620595768313168760059323876452246337328508068548545524369383017324022236350198550922432555314230275213176384464008172337795548682587938461987339408383177825116732991856776305445567266425990635047474288327116257967742353546289309617845464238369972168162953942090838468224393022949621947791705028159374315622953125446993081741448633484253357031981692640397213605940320250747090278851411687825268913061666980178691101321425726395701506682892298454874102313474469426140117085349541462722403232014923262742986330650108799020953990267841665135893872404082198770953071239135390243055271537654579074140583864797019682083661766750382021719810825635420359167740426130938846778650752910653698893775302338370163688350185544097599041825144365040046413969410875211244938821009821794051139103514019246431283921811195086009745926750383349418368476209461182860254020334877784083313661715074145598920258275339011958086653634161725194623155738451863536539880967650234486801927509880840767407559846872186698916178468440514297857439983448047892946574305755298035242597249576479382443762602491823230367887440282196363074006702442872544564431904401338944736083624671392290830520458228301863314396451648407378879571986204130556071966563385098710576724206964574757900694417377702942905871584945762837253357532313524614512847126820615312339863488560362387558847033900704831906378930642347720671703601089152000165551571995771375399678180336694280886070208457718662734220512706613838021057074078278234945407507093558785272023898023835228150220171031281820308258533492139695141409970538493508929797196818393921219273436150241159335518544742692733289543885938085122813949384759930206938967000550540256459285693542796622499959520639584918004462437256180877506698182729164047224559636371164479874848847790989037829602259261365997853922583805037092557783483820966169979432328947715503479370778983134801995976317889682124048441871599581080681284700927794080011788974956062186265695943772915805355097797674012220190740998392261098833636975073302085045111223932477512084604533986214553415715661110055613528322371948031677245619381861586074042668938521343870501973383446003456334710142918767677041062872058420367409936600759500154427694316620978486259461683843303949488928671326874955545253521907904488704378984487482075502225717266063821952535072529140743352564210016371365406834267929435573740784234484260692328500589633651062889350506965400801550261401457213182307029778643792196665813015218432457144551660901717042089880922541010332965923498663754551851535688772059588127288151682283922219634635278940821641600458881793504292925573442822788965965155489392358945697313714735470145320119435894253488561380065885898249944242996940171781050820745968027200252005607675866377746193080268061989164099319905734694972153517819471889580681131337139758141671874798611810674502232741159883689222861964270435229691147226597661438609112108763123932569836006925972826091669345078174442460067136012226644154949159762440357988100982004547985239030657612631540870333714590058767806108806952636650945498027266985392493740226307139024123705941110930954699427085625915683083536176249146767552010421362987408451594951149195615909616442914704462309427094406599405040209800956863990981503358359240228443764660257308419525608609613848039504023628606948669915705214193212986421690507895743903420518240890811703387098368386335723109111552145866596278336901069838080905256314996174840753727420481884671757946602808998796606064139362714951095765976344979737902775824783663678376832968431135337926906325863742556335128295787513294276173208381470947033081683789751409444599945606703897840097106178308794894197355588433160111107640766212942215169710949797443110321514147701316302316501690626417491395021583400130272399121221390401858421793263381611826142791043053360820364356167250877840097712159229383337138855960671027056287132346355337398736123053437838061521445910267575040204301989625335695416125131446241240421081411581837464371867140890394107514819659535916052060778263291444064045349648322753887282996834540320664423574049627819792181813300271909660176680141889463117421507612588042720139501427405721847140539600476886520932456685320767641781696481117333002277260833360459680769045252989933360968923710882780908272695199215375611579333017478557337774653262107466390322676533162014842427927913642864560620840262558679211725932173429658795434988913879127163335809292948821805350106689327191484469313288416038354313895611600047576438503142935587470022666133481870075959605815729274078952018298060091332302959775941460502920414601765034733398899865441403961674780947782254685272560754572620598139483358688861294379111627720701258771102154950047694970579015790357974734819767056518286982524145753539987098505303178359970528934063022555700434688601421711991645538995748346156339603997616340876609918979952619510995768505160400332321784570111297696396095803147409630244764216178635492602987404998562610615022470119893838117002952663262204747967144356978008312970644803585065433181533824696844039300382305609980152355480312577761803678219159407284533282937643210133705888886287482649778760551681513563905842157026563677723353573772509494628095867934132020197929581714498583859058138477955484443072152642697687676283814246477687630999927620851118097589676537017960175969546769183869934533347953390975431526945616205479850540245361787231660969826701694060962010951433613156839080218096628984415323612710733122203993349193746306410751961319545004391777255556435037254639383901703302123671341443372436004604424406734473451710845914635607027397550967283391869776136750382925890342595434636268520518121517256846101631708158331756433865700566703523793009854924260992027460976368020465861148796435629700481375832052847685732073220143409809098449186944051045549514959826675540113775112964073303135596462964198740394816042936500140586384174423701588100976260869751379329762283980027681221806145599863713505227902093807199582370074905478713988149117203587628216469068887432760629140896881142808090203696024884328294090245368544766799163830750169158907282531134849499483186334178538687035665005811180506510882230370848433738972426334990492493122003926727926516063681510785352663286658932677516537050402566100468843544581498244898616359308327702350523304564953038734746043033529227063989033879533955599419212691292230819087383976517319069785796040960507194636740563275734130444488128851159580217471866064392259401719353801996050794099236184241790182773616946637178811090763659700646180392925472809416845023234851475245796360606853427745451120617038160117453398944719446877413083267280816239341073720490715903790068293232777146340785109489008574050246772755028182504069431486916776615009945620606277807021411729609604859933642777283007407336090027416857658776199735712100923512694085936246513669829003335262720817195053003855779442097282739965756568630597020650073703842920400979008596322466863002510244575679840256291021909944633413432499353072844772539662382412173151187249267223659781095600393011003888706728828422623123028841067946821364694426993264920418874407022967317213335146255639231217893642796342407380541112442001130718878519162016957199244070810279236976968978294628034556315178724771524270743584240177778074316174291119367346594123356253965913349324209706344953417637721869436417280783099588484924787299926274825596835287669728005929636884779270161272296078188902474166461388242261580406596255342328375969310829631854509575048936299812878392508415971237639078825709539860335931459902734678311074754723857438617880425478935885885635696502967006237915130860601971749144918673143701990967642123509260882537010196190051495906898240236526392445089063479440098081445032255526447079662603171360132505687642855749877027646397446222442599657411760988429163918071195394120612618521873435913809243432842240218645547202405835261309381209349555668083053341491678441750320332744902034722785105329505710336242413617126009746891569872274906327824710160698468038208231676111962825251830240184497939715969654248682724848484470385775072815263607894033134431621978474628994203750099536807946278088642979273135788766450479440346042157586482370881463575671332691173281146067350909295315781647420505255782311845252636359491216453588254298714424728264649481754168492410896814080208434036879225100922173135627367999124758277106969837804118240544677270997689066780236982203608408855180849523637415692071476960628340742498846746580261112842022010335590562465391691378516538613916356858817568852116809693200642409737344916756283924391675246583623347710089566839533836787636453531771158528226621912415500264121433804215859564583734708252803675941852604600326679506938479307971809863829446020344531138435232901351468534173248397610975370471509434785286886114168503860848969677372881475518511195404525331986753332044717728980731672786059218726111318779095462511103711218027354696083142929947158423642713065724532060201075550262630910159995518862987175495439934645009491964649352535849758476833226659468492010720445801322550960457241082330372517486876388084677881379580056985153312400364033398762725034498320679514138734621026013991784050575676745529064233122713567072594221990074696265227905455249527158988887484749377606799903006661896881419108178493966188904032048862937107649876118979798325254677612671608171686396571001460471788023145565001692136251949328065382865102685736540759024494937407744475187736363101487700690535162943679818036585382084784800726532122806963342695603843116008856703759772382252140156793933864027520540306598236689639452848829122927591144821327734662128525793631263423394358593863719791908684040329849744323420763815055874459090391566275161716727467722571724184315211054690596177445095090953506072250482223209058430002976289881648446174908795154779038029147602648992722436725885963035852939452975205428469936362701806134550300139678885049526743291317419094599557627031921245309548671752301641920582153950156539861297293831860012538217137368229808669952156386122692423929218229103065039318902626498931532818112100788694829095276269207330477514924524363643905459303358775454076661938792030438013844959377810615463854136563999534542677107850899238331397261179908551683839730030423988412362730869104374782613813596345359136478202167813685845037701297339856340106206597568357619592330960029020306148040759742161636856285534893790271080821789166042634985315941123443225773904016964097912116953571429849470299102349300992720029851881376245218847218519286896698599356068890380280111895019107106913858719203322679788317461472919804178896030220983463590176356150151062960531705272627389981919693989477019864287003231677139682380819064786533815411679386055663662860612055299697721967289524434665019777603048378110517088114012315278552710921263457599750350327859679199951119165493707867982960541501105132915450762010855316812722220634935391706062468823117772635099083339805708590006809848337110675495995544523732389465192463235353331406488302717965578290435514150411491207149715827178495561520365454588164830462684003498499145441801306222801692850256705969967618505046317009199373009513278433341389224636218022254754839580054027495767896545116782573246279978075989890034743543257232212866636632195937272646389289112282299316037231040775448736535051005442459940361216155893765734371787280407413222740128025841670898132097743781268174613158330181626713304238269978922439803061438382926661148679476231977693912969345246285955780288202506330378948871547896847403903181190387074889938284243790640713708251836463606072971374265160197951830018588099695908208141448920151189492795777978375785198904788103737387214990100974011235337351891552310712993753296247579618065443009778772124030558272482671826231196666594030493806468655900642181868429041911354104186092151537899581708587696686051350381313416256962952878649395077873097206057071014832931098574064109689663688578023898232222121968064448352860807399294981855427922059514996348148948391199000173180170254402058131880424436783996857325322611231908048802764871065373411625521961660862665018722322353555418204700171601233098568159305177502623446037975842326589953669558379172415555739664703614445951970321516935405917068882730845703951261907882789339690726678133666412623046035186304789049827996138903194436446766057203157587199390434092042554357806750700824820065738211126942455080240972639206851694741125419623260810756584290123814132716261557901466193066864072829319921641373663007705458038593419603453162952991954619874377848553098251418442406542667519823301461462407139638345888253538192829887211786938396035360694021259234720624358976136942646650694129197033981317479517145936701582934276388588941823689331161061955068022086864674989583966503765635641069349584748161328797345326396510979701792749176824039508678741000125406237039280728625728183085159749725162620406999202538035973230079287884643997873958825545999701321668162313563955623912901614921662179619770805999335285764688574153207922272596445355610018088254261124593416602006747818026933825694371472670923529164148846811745116959171130993271751700902107137548326599325370252406328490237681590831316652910045318343899423432917694723641374952876478709958726876211542970729071143856205964666041784197976830935644798040677037570515632403373967374960381938534145880167421761098072555111905764967267568289521533735310851023391651171471205615735679949393294965640576925532508912077758959281814919808232784428611093951447313174700506021266268159025318370069860707519699572029100177605118682735170154942501929185735048411856989434888160975715757944983420926051817300129432846603213902281188190808562535532695746383736388862858257683973440672352376951993186150248146342849760896290859532943224657196598252654878038876827521360727859433352503735986144022089393428873232196231730809065573273114466381415078043207773257544302368899288364946526930246800200291395100915665428030999644976216502247552689800412231312772212503470190645879424914186206297617874646095717648164473287797555561230266288587771399385027512507626872844688015877083317595293755270596562833335818122835970175512835442032991714583270584063096774782841466762826066194032067154121556279283458718390630415826967527634830540816068355805271261672592213973798783865922174962719300020221993940516733759159136363642510096591720051389394225988707292032208856817597039735220246748538114849681390112802263668634730575517915486992386420250677623849610924597110980318723723017562561373309120892297002920489205046956273020495882264010078227957514479671485080766277807170887149358722315978159022420193395396747306411349676685273414174313675339006631170908327737006011020449705159210808495319333131874842634219185964304867331727459175945419829690837096143790575960965031345223200860261492969947328469431263459606717652647136506884742489980917816235121988915323548594402106518349758631866005480193368751779644868142891397874479883767931695551937011053759484249917438233957746847855801789597010024157684238671490496736224700724838905695652341029924277095865390179291418393546455456661393354558708437425615449512900976510644016385135251923620882140112796886733710086085201563152429913958498343741346795306747083280475491298868440036128116672914612588994743109306321989658788733934518531165596337086862134699457970874432001818541012705343063087059946505907287957000060048946719345641209942566114334320354168847453242124536615378164208995049760599247081058120227847663845995886646826241433961876962542820868338388946769172659963592222099654725031515035136604199455761972379500779491346589188321368286623773459564480566015439393697691810572489864840713958352987630518160264371929481055555591010407444663959178569898716703569143094093159860888627628426457984652147886559135155426390340012688505888323870618418415222942574122569539596055253642518879593209171551715330690709718702364492069059893256898878766280402110654893805125819975840689895370546993174109154720844747972206724314351247131140657534023804491051464852854360797335471824713426036636944425860333130538513238095624634768508265227859846983932318879406911015007608289782037597234439926337563763710916650805900903738890045716363369741091995823157217072877581281513742224131187210552826754865008308361165857476827570367911576015309512434517662674063636308156027431717220128446669529952278584124279057648610124514970317030473206491299941772545408934252087279270945350501668427492631870686163590077258374370060622542583592363816428553749603214112439439739109654922456208859291393074129360069699695977965623538851473874518309651333187529342591667822574641330700012564637462404110219798718991758675617239589041088343066973130022562774140509285687758518939197223038229843159445594624331642277557335843152664159976653689808114239972985051020999834854917233029227546126668181552332975983746431283442457728305074976619647971832686000859479410154757416489893832464839876122488539330919850544549667244844760763688295326028105892043839356308711393676293645194344804549563461279612021489469320599094552012407786213205219338891659081474551968262229438047728470580885945626172059183256785863826961570309328450109623497201411284647261293481558471689108926222645481769016361870661517109484973844710871201470879731364647220523697574736459536796633807691851389664322819746697078498172952022423031609446538394155652702531281954715489247558867518525695549733127816153472219996371796185376255089657913262580207099649496500282238276866922228268962755889233541846673188811296205022946811259795329372752296260014508318543674254599191659300121736018788035401407659469449747811709470774189113001053075943044207316678265906719585679570142199567270159377080469165042024105158091262338785170523310814027361625617511116889522528091168762691834663933559158702222127924468606271664253470625986269335802831860579908044403977236768246370340662334901752445764062205172028504034480428425170497333292810256582276673513691111588155782344958238048477651430634964100330349632102541990971180352542100321781227794325519834192624802256587392043096291912329577226493659580106506119254590946929256950460618847802051880325791994343493422028225478184343151368035946033469880386380010615908936581776873365198364113279811761592065413094053723476367693791352931285085034982521670457172169643282400800983096288711027316389335711652315542386183011072241945168166200610404711467724021254388816717215058860213419237804009820151064303731254759415081323089038659206358957499842891047255343900585233840140281927662128901303992601523832069851406226669933695897908909122182959360918102846824424597593536760579254571640651648661358192521111883625229291578241036756406317772496491381640733124381052664772264528218536092409440869312725127299843899605834688290626056109089784068082891274259705897582052984723585542779743960342799530770433315828373135380547164257019862601526206376064627064503410474098466629854436954884351864152998044495070833361714745037382382643578180936077274387974322190396950117702470248292744410237169582313819099999209193352000996085652760248934468814035242882953535200540721783350506625237738990627830194440361452574859130491499659208167329831806521490527184072962212799195505136572805742057045841117241480871442063346692258841969108756258980856573483932276517482892953943723533897327028465107618032191975811953311470243700873168458349175960957794317625185904423946843801497934485231103288586770893239706939362553463152824201533519940388320545467025367586851846781072233984401881849011760612340958395480734937807497319183458411408696104057368666580603531001347214625300386622605909870367610934379221166347683741661181480630515987649785418764832153107367865416340428118731668091472146352725888864692799903422974530536013960671870059184844866900707588159163906182758000684034539676172441330215073517367021409959336806091744331699669384812646680968061117168879098117111729000256896464709748761478724022532994439001005602472706913331948949532089969427292754170562416496975175017183558057743562859723139118668334264965677183171252039783434838656760073530254094209424829675282127061590132927534374507206209573650927276911050936228798660312082017668777956149894763546504510109153310340978083688101217505273558690061391181716034399988302923244602705608318440724201769398324944812149130447612452079743507268341315059571583679276383528915153537088997584804946655071946078264706209835507680108178687725870240464512706068469140214432545189940379902305247410151403586498259823396171174831644724091186441426091027120292629430134739141826671378221313015097454979454864637870074715109455574937448243703529514360270583303115342196530472930622884225324820444650663115558316032092912184093503481166090833194620437716623784020778603248149867219869438095509210004601009892337635929622180136789693834178752652755136441394497550971888629367785041807707986258232159999409056004612138787930533697969052671511240180507144043923402316778836438698506343572161326185792917215058205753005460275814607234741482837325812125878425114392233751439885211495370156835408596475804584239963134649682950899905343897557719495353968789871932133850729282052645534147028376785549612807559382859367459539409607895839581906229616621491894399546137589888868508916628723650791415892369030231548630741104440445481748255303871959834068462887171284471321241627287911075224221546116521949610953898794191228172171659556771981863366787175292732464636524816114569275123108645305633069947402939260376934923184877835511733993091451940670023091627175713095276920223519686781926601455851447923416331636932229943553457227899438360722097697499042088745578281471634932219162679689332689381846567181711871210601748421899187410765994024852111085004596330409978283755435125355017221634912630088305690653031027609620321616707369153226969092690775137235907709563414932862245908343410534617441097979294310064798528791113741275209941692120393838035005775797512847011200533313046435013879266198593226478870070727372045268242314533911510042880097279356600447439950342788333547857474608248360628957109272873246730547843122091808499051838600411138703305050932897185633891250237901382456444933201961272111423631021016296129509135321567804450075407387136886864372036903740250077388685413625514431501840484097826149595657206554698292566101871176944841233329084812393789078655012882535996871447461507517287025726868647818607662242225868224824159186244668855367242297053122082945976976073902836846326481025869397902529703626193416438280965495520271997143348942581204329267193470245555567159433424932064132122783665808797628410124562973589525008326898829983146812518237835606733446168048400539224952061841708809043992498180593869450080752158671991793568536463127082977820548052414277953040249586537999423063834904913909642567043218167287422103438262369804835166042253208086007040605015715449228614024367541221496827363541154228647720542803265564457279033253284087134439933957306165502115976951147332025877793713771196464196826684946325279284394521901972065569838382304721521123596043474259305588235566469919273670661619823727511706445413563185491009332223767264329546703141336689832872236314355089071854625516294631235039319594174562177894830390470538372170732560823233399432349141483223413887198026843658056566470876135057884699672031563587731405538908444826693775562548797897015575427997566643941129501044370509307264936401084212121996292211506542278096195308350898889965119782561162265200203739365253142968810344137476996072531203538242435448833914978132591404183550198520966304986119643269371433423834408639211800694469454148990843129646503121637442439987898191349108331161357213078078592826981974183964244734186417439983386682069290320998931201515812814140454874045742704725447265229479773422286503497024043335793287257609638365198008087019276635197325194389012111702604912088163427261719890311630003277988655458139028227388648992625998017232565115625794428210253132699266756117701608071421896377421243021939910195980349175275399838438410812287175742522087920875957260462219574316958700002347312326327429677003332866490623535441720607194651160758149661515571443009657073838399116672135660967700443107372785104738786197271934743638193554762410291971127833727200765334507594129126687358858370117092154546302294458033452300699996093625914696209085210617786032884808053309336083876226610820287514535553857776138344692539893615502358397351640724739858716934258380654201684574363501368940904657657124280779419143796512761409391717139570554168671353729310080167552408562252750152528842011049390669732876767439958966500935930859787021506016147786689954563272786221752644968716113280036082878420605754795111148302353708002177479221615680806517857833007820723824742780929749519940359000889584922905102179706818920803928202560447764339663951471252365551064042454461870870468070912079815219826856399607515520441760500336839290780146724126685716474471286488483704026008954471977409087975673953578469849862858834749579887438846011769722740256256779739483034392841569647746723645983330932271951247415124417954546658406977806624441984075930797319138293872823417629005272758081789877588473235292599960196702664665952888038855757645356140815486053970497218623566635141186644734877863327922585923100723113261646700306789168003562535706380045621163945947591761243717190373873259534944979685751097952370091434476273330278578133867911243232341467430942599490555833621072330870010283333290160752428263247127637181940359572835973927278068158291567910830574773191107982427655825663540223501013581114832439172577726522224394783885524375058870812492506610535044912882269109776400314001072424171485907849309333370056551354945283460366034242335691953447253571910297187359672707505737447958096999151313924350462636105460916041614901200927174090574091959034047790474317297167406385715970649991416763910031372753492345977070813925037299650155173345427039394118237887197963068913161428650876009708656697571933021804156957679272865701625357572962009653355362717532489900135477097478570905943567405837134397679455796139692244133127168969038049483908212373225188021980923475764941924765608479498503789050395088321324087436582079039650495499917661955147537100847824874126551804003294857903866149941493306922560260896165299254230645745014676593788652288659907073736442184177971057542884670216460766659061508958136570462557937466860037762333157659208620487473987528892159327928646213597346238634338190204362717651637612705812906097138856556374041821608064593230248527054972563865480907322336286276749149679565907270395855203746138940399098167674902563514852162619952773012608973551788165861624953593396924732557170625151489202525360586571756395122917690479270180250071072979121618315846518218165258156364797247444408670235827596702251834425364696964119678654916218940538165912967998830804872856747497775288857930557930404499993571995371634593812144663177816359971769923414947953263480969155302515968964114117008665575154555997479062646341511828464140138014399633102150856815822677622060712338472264650966994344159228135408637852579796194592641852353857169508692223487824952264844315697387492793909742918756089166947321884188735018424105499194565955911633082538656212213709528504684967259587797942925836178949818842887901025963294185890329333660054072054615074798133255303150749020223321170777655474129716351232030168700734753713426189601277847592458099364629856882576662966558213258448524414266364171038117179038364506685194349980168565950402399821990027114232655119927800020374731548165124469989624195886789823860143593883558153621138145215422108916638782431546030787348075030510191615048113547559894867116041662497136904132712079210429745901232765030301290036492474028120880603915335698972991742927041791567232777844033438518983953384669552164599005903161786104655702669726961157109312700520442768036766001578472676653761118389251812939582824442694169868295525273597691349545067281312587753743766928712174522231275542578663482902579897558898297952330044032495336311620406265827974956328287727352329790571868811845123625370891937685822852977232819490696693269675231107350536315275878354396279884534792175182230271048114758133852893539278468075632775033436127590568141781842693604700440838187705198132405692676623621342954481992829913963022446549185115666354282578538910714933386601647730187628572399863030280851397589612618000283034304086056996788791656624668417189667525157258503463340254742811042852014211377650404322029997821776722830143470453439211196578650129698253646681469669299155653358967488527196088074405871205242257085609943677669355417422021958434587524408690276460817403884086734516066110778562776787453011230511048444928850301379487890719858254615009248406830027253461822468231789918612807630537205107955494825277149699369492475503165252012670322912927892214568434077757051450919604184684207200170707324255814550172494650772430807442892133836497805706685350572745122196800899431603865823175602851216398892448470544482462924270210524755188100424539289177878626796231123400687791314343602150910219169034291602389427611077215019142273155769477800354319227496192733924730784073112713889947697780463337934191366021797643414230415048327215222124052470923626047902396461831769228821829844838447071868472863580967446484785592210447594258211653719550363868902587899407116283595314206223378230699518512330031844760533351016567444691389236851696389477624536086633160371205265065960736506900397730835663591459462967148107108728838901485719195313485114442035898124263107730867598057165420050020426151466819983090460240601493248484347899576802123559876634910977763873975023423913122275006257067379780039599519835747625727502067430952452640020650171431833175180033344807235698028069454454479101774804979428706906841573632060409501128529946973855396080002252921774584478000878053400376828217721786501779545695937443166991996086363711445459196733514178972443147546448396107063615411997547692132367817628272854020315084244566974257706397508459277332511351880324270232207862363845133291126703655492491664390465293123457573678881009564889465053557992801964768637193136345287155827186401254110509324205550146441476380522061695217811905445969439604544493804224369468936046564697074513451050128248751828306644993866251256276918068441167504299462229407407422620935237724365146058520624923011905684870078744877289702729693416545295152513658291087893897966374023709893054781876344650023503547356541817914417584754311866603469190963579459982474732685206969869936997824251577690682430874410761532093892892681189138228299039138286433860129141284141874008015119337153728169076961861689720954106383220494621415854879456033756313679004612279567745621856041033203520472802897596812897598953490379866420442862824290578555440903940685778121376073445695765521621629993462685591458254709592978081703857996984153881195611614668220459702285973439344557641949565814497817235699189339481564416197306375002044492382378676818858121286445937527033131375913202628057701609746069703260076848550562628122876047975066068650847788076379955570169650413369224942312415215254759854533233611435132915110034959248262063820919619784876874397062780747043913797617524443284356477618637520909254535889690790573785686204293417431111872372272794385566023890437208603651222336473054134904102625816528717049790536427601463880404906286874458841155209563332859047424323798527205681492442684710793032452906128591286975687758726648117650499308607503693913960532069699870181944769836348860289946305330727811337762403446761702340080227132186444609968146713182766245755435427798602795667134109681505314450621582130120441470805946664641783918416331774686622900158019130914444966368550445463431387324803523593657242903847615983957353397726839934528324276506522214444753163729241009572588475835064949500049280583282759127409809569408530067641456866556552568233669292378044647988339312509292874745499036750351387817606833898034457092328772249381654947098659068011799574674034986242483138406035524978901438744375120206948257181454731535690803379075610983223572254704094980456146495030781101645426322763498930234967720941291241353067899868941667556810109898819214824295081784901415323379574209620592907269439232536512807189081206065841363277770031145172212130716602867215233551321538903765355066617090346481404807610285035768319222791483870746537773344925527777761191649872950211674693722270932267056279579337200410562519286369994401761958632060091761659231045829175316525360220554094668857370032910583192021692266527449194659304074260898438831076779566519521768261930427669920009614208494606703804570670416426653633168049952090803641443297439105788588782725969613218337747547287595087325711935517962182696179609041207178053470660540636637076638039744959545656800387830828797031873212409717437716936006470958833590415567380332233513898646956683305631229664938815972085176850420000496902608006813497822822445037805403457556058172732171383834516747577792842869368190522534043205478667654001952479365215440456577579240532748835779995030752190951946238519914837453677644720507322622117905047473004156205585903155105142170068208776075527441459832466335031060903717390408458710972791779757208482494880077453289616255540760748369951352316721441801599683333131535881551195478137967667983034891044330427051988573687503440661488687473592545215237414276764838835239158384135676508441150282972587635583124588321890588039245551965283463366561443235278728347268125254598414733801006288106213254085022365319857390118489296345609754962491291352975505232443603172846226877325329228902803359898261429735755869012681878468805524588219050868712774405659846721728909857269515180032640513254714641994478798915171285538928556884072580017563506166502632462012141821779988758425192071845153375366115074303866225654890445345246841040044681602850014417512104130225108246322436768550111793362802151198519177085242968887886258931456157988362237662642469843052035419288762091862573362002541973930751816141460000218631612451743541622657324279005863989742238841960907778817918445885165161958542734464611987793792588922708381937247582878006643419617053415548663754528130141793556548722974822759800268386928320191256678879896464820641980222042296033771405479647713170519046585627348786386078446197495159493331883772691013760054232878043151683306361136222475411746818796530243350607307183582480334654680844961255002762978034267431652839896117957703851005076310733522323458948524894046064384937091833252878767654046429170287598304407729926830495513635854940045765668266945300172830946655482882628757226380789221944497404461235507964294774498818843835063778889085662493668451315825906825284747633251006473222058029726592963543844127342222116456004702954688720955838698205051513770595276825408299694821711729681769635009328893496038311461782308189017753764076548065385571757760812932393908660874500349815138447679570424999035837901577497487395297397610376132318613644935079503956536615678436273822604460180536184059795076377194215509145377968347597675914149018764619848141812468421341170616033441278721680327709847362466240203090743933879474731901483305609704737724638329290884828602128193274528811656635824130813880502230428755417790975202023704427388906078256281432766646086977108088240504112502088926811228092312128727715683596006115974502677355080808506924752851627890731745113019946702534632894392148101333538818133219564448079561989755731670426530007249562406846795113015395867211671280059061449423672516643439333453289823124300726888761678206440568019740914950336813839102812305214500365194593916273990635619947886109390795240491990769062139201638429790880085612355176116060429742896714564306917348459705609284382299055313098806890100148572244329356261970230580051642449215316766353194335128285245000347452477053108389758972049186313190786335070752476108789443100725884276041592413506813334413023821502700371724818906263591345497858935244093089129855795734086419307322517531584215948130429147970200218007591057995137374086331673077444346272040237046639381373617917760279035371389893116276102390721074590380321535866242741182897917949795539459341539418397328204111465823684368960459043443140222738493802550685023521369991545245742341192280587287089846543995166111932641461793614744197590589458220447000650652155124583653429437288557231565643063546305372269552927722095140589990541646554549076063204704092423333600590032138101220101908551425233653943432453938959856623515360006144243547709950108056808989172990944556098436400435408615001300447245619464041574775177964108827689439619272910031186951692231887640131242572466331509995069340009508103814662366676333566874390251375199285848608799728958793483078213497868469803658863681306096267234732200300673802140091284273218618058233502913932431243666177091008820911803177190933637029347231521470287531973857771504260866673387694013791214236231786040578136756163726399440617884368800665642150998153649354683750724415775490621112922427343845830928508552005041435568052796614011220500283527641378449661613609131103583303193802077080323055313828381917355690477466308325618000020663358840419701191628832784153807525467404904416613788370934133028248498667981278575408967135412587538595656469748884961509973434876721425072440758051279818371121707530113271962432409960855815641530669614020894224393012061213032049956105984360370668814581242259950047753367431752017685176593512498879254675415936000146485988623555368482620177335119929023587362017812404512219517508159372450299286154529733827683319169904300662500313429180241246993405476907738936376664688792244030577271942814315179862116106733881129230531106844873999976732056921885252975250305557389157567233492763713059190890718761231201492957690189618840405092091643182095261487852920613146830225372070607231391262776446208217529431666206304325339064268655719190744938429045195993495887927178980027950483433056702135621474855549694823646544299205049243488522941274359526407346450346267687861997258947995871689583019089493086808735456627538772716532403403803928791227325491756475620347944513657840549960503667382690343544374554643733207524945538201582624214980758446915820847908311461217610404044679435005651042405748247750261278493264023096133418221260235628332426434947839361569646217399640767087349667542859932202502972698528648440876374412361148969320996904620915774930357102646686290520044495925008236998491641603473522908144324468073159337289992979402840475969083181292161656846138141762426745565999152878066823232576984373489471114941540159027655378050980327800236670788640022903510490393306048354379766987467935848285630228861469374198378888807688837709723259934987303801057471944120134550560010824334142726776143347383931865104353278145506919986038743604173868985068672527818165054380938952145108423591554955695727232899187335688484356876224502273749210016667858558628949701893635885611153588301120539701545912756246130118278320956754780578072387755214870832136412496036486520626200582101189831872854081226875517966044353417586679881884513483425675079596306348920004220447974494343368871657798923641955121116398149470634072992354205726788993445853120192010199278847160989478622061350587135114876311021506378952583290592779725713207475056547934973285098348383963142686034654316864993184859726220985514039314860720832980936096034796298870358956671999857986675079504765617538058272556095691040690286222737284653181306858784538817486210486526496419011349463987619565403063865063754365453829139698430552124307127137975609871859227858852228318964880515706836595489559691500355120595521102554249053719224571108492704651496299461396420649955372967441540737760121918575993813744138861170970624962298015228630317471986813614015215914805797505670448343043237430486962248562119374894515267288036744045601639861983350519924373215839164594684859489890062914568385513057154780112424121295187668075688290448844532775171123560751479196650857405711342692518010969902838234977398015190780913576148876334274829984798257684378615948279393337762836992867199537535271572433638119519974567574607832074515369818947382019690222738801696981245360827756652350801157664310025629103509382105351238127782767488760683725494317319364706733445239903305229708487133400831238852791640130456729073473237306417075736306182900712491466261356677768989046024036884585039080498558635505259085748508839971649864611358021099965496006502963378071296694872560375451284946424996610791535898098758863793010949466373860224284938149072772923819508735024657999951058422366716934721432642001885456873716134465233676978262061908476765244498651505351216674962164529425864372874464989387787585844392569734529490523950825415289217731938572494658050250629735764019595911560792786627161869223254959271476108206401719789192585605326339254739346918577750956467894151134462129540263073815978420608699861606217716413064465718630533048650016652747127291903594451536782392108049649425846788564333547021720976604047083666005813544548063705681100023438012876277996331390738534177960457535023575299708722339493467465755748214293409349982541742059432837031964771041101759105406833430962160349776712017174725581652341168332010185514716743057634846045769379450958922583542178593350369581417595998969949877436712046767526919739962517863607992337569950491420582273542624419886861001289464366805637257226802164520718412582566061224023328752347928774009726613269103435428203257422902545535436920309078554015632654490311662034549862937287558287400351904583836131208985118823644632608666465029216873070730722210196708755446549938283765963116940506572134961578439072463754523907488057651500919639697895998719085782115837681659600096747891270580830423672487075391952702520953934857647965019992806696337523137031730395480911663892265512453511484759419921617653012109089327291958311963594122603059318960726593958498758086842635953907020851500511229677403525598721964953188494285198738073463169634395143010244044572476009880074461608429685431518532097117101513889502101467069587423879786067706507181658367591124152500603558480011052325740773878885580958020680441832748827416908231469748777435831011060709114028526427877380657103071077425590232766969505003846684473696590002335813213821958563267781113414531381160023548401952745555811836087979140492204592174736565648424614283621677421053961928558154000438256256239556297980562268207838959712867512841218925425302781348947988745673835397647008888873451541119918674008744327039462191859542978746132736084936830172363096953873204108043675334673161280659343442773605503392616083505738539016421485877167080725487401946602614382012439086312890319590484601172817513442423822951070115369462380805803397634686246824244742017254347343206329580480116710703141153673140272257190054551846984762565551536361512639186436412549357939964289258129165408476885299463222935387829213607130388262595523671057382947665491445778381443914493469123884428043838569018073262353199122180172958052235942419464903127286121522854868021724457087524660136622100498470737288463729524777016160666223702808726063563364260971084271335242182986497685001945918851992041625787458796083894666370182655968973263154937865462149396806987454925998093969336500587857077329326585564013017055658783284133789940257315982334716117291982057807527301054079516438216332512821234444823622276573479105435560042735280005697530001728615097057590266883970221937673014974793782624231824459996552825494473121641791672603708048785833695195648386048797726864589469775472533811193616860644820503869884529345066852359301032675361873287702200347940754237960129804905268042475948763742406861497356257294282901123977558891720740209939675823623451743903331001500857546418037533945380416537511950836695666586314206532552356582610499877174731894570999861599684395130143272998792398485181273870573906971797099451757059157657426738224413367033819890850095380910616754063010247383916456373382153374643051437915989401603650140504077733966755564842111142584081321513209482033437333428672345502248246857820507177185031579422988334134047681495997507943122996423706300520351538553962074891792020893827604791590677938465028563592092752624849445175475910432923551921291881860310424471824652325262467700219331671408249482349819217923513057115656166066233833138574566990171261922465208656745372103628641718240114318874892356894431209618763592162146909203716743978987036319606935552180176483876172443264129008357860573596975370928877318227905348986585941907313898383621016747157191673767753651516275710529120136225600919599264153759569053028375514169608079363796422552826717331534119183776236038717597550604180497661277794745235454611285205480690395391318852852441125712433726084075895483256474064515617266536001792978202673822821290334021071924735867160051689190683280567258039086386991267270513909965017871959766411399797851781963838106974609134604188558393946596716101512006188829877160164184704836584160822353857623629802830219408331097939995578467182865452795914599664087976260664597975153953249230729484992931315714222006176187172027073005554253925849222542528589747721804380347994678736656557022523374845598919911381680254828333201764046614027519979106471806849629163004169503315818652883030314514109272998732903353402285294832010287129813572364324483756015703157229436647594009935668974683708613280400880116693744274045751113396451218007987842845896067595515093634884249358731884664384810104720822013980466558580490130713512268505572691851204339474495932459534348712284289562500677769243474770522849630893771975832784322103460971172550139675375909087645255331034331586322078275778450150293065339533535143472075047570518256818351690323173282276197397451531964084057872207409839876783369523970872101856094340981927983573259174019221731364528885605254649702889116095554067994329297508318870678958774762270227662051777201662127940587970887566653145133317374935380552418593831446679886940540617624031013201533632672245229690844092382151498658094157682518441180874082579348292707286670749946245818037943658511732683070191953796407484402491134667685874174757257673223363888161900804514818674486075301845345913407669417509643265890340424709256876852495594198331546559779469328949707790880188963048082967102153469956245391093084211392091749555874524244810151236046046168755488461325250612263646960405047363459278528322090355834565810772728470339092525847010961561023531217201432120529393299637725572835323706489979785405844641457349177619259609965041853203172826544829258385333593930878473489430502419698340457905820355035948316787342783992640768070637655048928048250851285564125833888591390853680515833655404792527062777071592944886238123897040559973147715875794774570791162993649158875190359239920586088498593905263408877013416217490885044435258857151741998621114832580066664127356652175138028022775282486259510922157973447467430906316757387466267784933466254351811533059971997913076907904828572601408628724154102257486507490081392924682167749369532602184428602085783676220970359114018381333890994953039623460101772462859047476155986349757876669155225944219697249966528269373176920200325775702761674259123948908588374673788656754462412505384039610837864539992041787255291427761263344027408731226259926380559619985511868259463741465539351419766087493193049882174858619376713202112865164718720927121605076204260975689185351117992741195642225331003753114645293081568959376981755607051984531606670435848192418127541380960415150982422604892777490689321734980293010401436681623798485225638230473749527017492750528334204700831654656634854161580903996864271823136855348781330690700081847109075854481647601036728723429900922461793591759298928310781240991624197541171161218211663016024931769221963750497322846410127802108516493428221790001001369170843113004511424292280654409802347982756106263415687810344521279886995403278354137188340392316386155298845548205646924394613720665942999107858728303582841494490350611300719854071701796750642626481991763432213608593424932343192597978651213711764262480700672324202033766926567364388899117373344105894101489347167386434409401012639804714074527956911010442163884886528216285777026418646777562785073856325884048276087156097001019143719704370781300747580008027853333884394020299672805213091288893341167791781221222178564454091315285125429292445757085404068748733009421659403998367083609120143585579621743223780342708534975252455023815538545784158875755723768751411309598914394223020760440495958723771149084781686796187389517777501046877507381730251094048888703083111653123160005799065659050743648466460446494546841573213579416526262482429339368825444016125540606740626224861852426805723602183364937098143211619542614669015003424957008875450057082692879495256488745103929562568949909693860205806318184517929056065977463811951718495533406450458907961830898810655937510840361772934498751784714177095677482890189438556501713887516338647725683118226016690792510788370190316972412596656318386484803107626128024461941099015436581388521495973326237543551756231456115344727800465057783954934622130641211371839295742479214845512875094085339312561963090398983271381528056410560806721519472788672080541307424725762380753268499842625377234954368581276518848841662719171439315055885604963879347839038642561889781155544366101526010915347694387671674004227627431543943365334685357055340370479543874604385099622459052876531424150369460933368104736466303227906048930972790267662329054298865969453895639452242384062445314503490108990721836258201523390293768250773397991935210383193030533654688112915401130005592014591144934088803370698502158735405364594264361773420598703478450460668341913458068102636329264056336594584430716995210941259474508913455218548761606550371745432125216508838094928614777896820138012196373825171004605535178466918492982382816743637905798066568724040123304053857440921881139921136799334216468315915522005110609514801818438931043798774054816475548352221596206512173995469499346137759420246311395234453240496998035461057517471137776424768052938491443503751691757653122045394867116762248001595837291342166832377058774961437409362408440640306255180193400827859688793475455896547652086385035385096210284380694445051002699198092742193315565089489957457878440555963448402208907637034691795516812876435319594670741350032648511866406413842920550579370316347972368194168330878399613295309820949467630765628304788075395645616251595188367647620260551516201936707215770646863820384093803794732475493979968715219569087828194269910792829545674507498892061090518591186735525313245600600326899016781455443357341578748262763054142838915156764073347809108775379603536357539301043642442552672596822528901218338908055982148031651818015215235241812602642420381851231342651929439487183919924763408482928848031379951655809473868069269737475096851085381968648481090892325887453366747931744399985437366925574514513133222572744254104333009836276660187095981887743568306516404851947683640796627621422153700226261526537077640207359109293167338648990557636839043064536239338877290957571769395535356863546429090431124017198461345275175152517387792914880075337732813460995459481159771238216239781298803775193197213062845618831890315206172357449811874863392658636545393354026518638031021079864052627531791318168370924156747011255081358414070577799426528806055439294032542055859700716897358967357302731085888553591388466138547907212516065048737949459508057957643249015753665912770045321208711103856446755597337617884865559999851920750071751524493692485687863406707886595548900384985244119741375411348118760037664789828841555929212885148270147155399086208161903265275829044719598810096884234508283903429143768349917791762105977939577641884232203117863198436009344139476251370626383072940686659401363607439252210429610849040269776339578395882851327359820471329431734533528955374531329475272728605668720334986306898491273357736843548776700022770450068712614049219634476747745972575875162864187323162123175227064807804226536182740492104236258016897473388566162267617858859690612450137526729372780517197189011109951853134560101709567011038487849771784024080867233668966819796545831816230039617629326726608775579058119008736467204147153257683106059612179059284819496394876765635680213675969276781856592492205584981763207277421395468432085516988148009993209115554754200849367329581240692198181294749562621716758795478188165098659065357084761991777818790689124549189729965070915083840147895385660244683277937151076585602555472971702175164524453606313412454365440620693529432316582861283152918750311600432622301989604019204385147836376685034934406110496314320433778884544727929601270572078419629641862207954330700402086251409660485425687896482429198207229826087823875963990738166039041134859425776806198769723962616234544313970689031176243938559083685309851070333891460257843279785361573595973548144346068210580694291538420883798327128195172102406151026439606806819531304468883920200337319719005901852597423716527314346218199143917362626840196228716069222136999751228358067905501225873845800750489609236432414741071636598894464403197089629149343369209845147311854219295211411109492511868914949950293117555334896110494177948665245942037409228297171265595475183206635445541008805605362613348255192057496839155945301321190536099722027582400778111427368586302604249670756331426420931064794802570400112360464894849945507322897381334863977285717163247523912437298395488212351072367391431612285502593380397797130723191669429516126896516969073002281313866086057896803704198437635060088338527852518857910384674433747748562227265931811014986986542669717359918750537866433765026687021934138794238677610194434065581080456698237329672236006100936819678570580566535207607067893342261762794974384863184924851300313603847677936938818799186550483948120821223844543029525697934295364208325436211605875526132839592564306698549449434269051655564064568225871506413469405474296545906656623723585631742764580302486719062760600676945994368942639732454073793699600624338172990891234512245135925699160569671903339409687590579392789902063794215851519910408694247970164846477044005179568151260004212088548956275396254909496723011125514806865518046087101590061697082377459932993879478557545341790105988735054783179603259882295101497164774350568503268019649546883621610798935656812757852130771770028956141594916892256687000560873166109366538088695537093823662863200022820290085949680076349055922422161136718683213717905838653015400727841982625412383690167424883468039294518510717055258799698186279205904156076730012990515334007230281664323875955776666043395029704766880019811645259337152318860910076025916872044925135534236899323918497121954754363197297377346159789193020004806183601417109363413790531796173454277131437015750316964711777788865047919378847372918409673315320934033689121249029016578399494769211927498505161975750710574849544817109727704768876426236198324526440079089382259271683689640329758111460116851144531524507150677795809461368365326188053589932733062442736033716104892300088864511353976401621767821560005788284020649023144411180927950387203462661554126863019634014987933760971107247710180945712028433561069964431343884874688216295338086933234655969570369103278201285182024435216266290855936946584572999662395792296598358332364540052261591880490623243208471061129412109351830658607145109563690619178707824593016406088558871212818159504736619664750717197139232379446818978510741848341472027401800744118557382612940160695109934607505972315666380668171073388169262802899964724674380906229302783606840477339756482744434877822459400625267196950186258741297536242586167605512383897041909522925066543287865232395817255143578772742529459227481860863577077414535341204700436552383418194080197037923254176183259646178286130181873031071457259979362651476961044674381006774187441383496993133389073700801004371714845155653690248891194249795930071849145077089676612242421417764468522666898189379376253675708023729060947597389926431424582655995967622221868335855046446826822639745694893248265116974824139981934871579650933868544330395644874654554989855661421142051523495154070794812557107984255088286209719937559698933408909282836135409692992461251601840333120838264427324867565721842005284038937154477079490071603374132905513950782535764247947417381025345092236315489782135194831450547776234668573442436229275203954649872433022050712086168414667111678761643688547980977464104876991615453697581172580321267763778617876138964988853496646088609277358068520667496655460237973853759029783789647708680095036889209343161564127011031644230949697104338508325609707440753912708559390963692141360038856938433518591055974522030871846115711687342181625765757634081715646967653713074729681708443491875795256866904936545969419724315739729618080976039495940538530847318449345346484812745090568261462513661201275734180003385567019205094798647322594632174873456018425393888897585087423527770314141080004793599889551285966316653505645551549426033957175337002589016398849134828898995693825530111323399918157153145491212410629164049438943768893083679107946361452116690497504542155018040501436590626793637159861018017472544993133317908833810156375959079763461076139186144106007709456340695997325409254551668963329098881790317133891111091653257587671742418753313928538006370997033122709487826276522909166052296274364109751620899562222069024299326496196915724356848799452477158728188204826638367926257689447076660283322345926509530183626900327871679493953621919913607975188625710067618887959426450298235229153134064668456722492772248486061077626248547576455650612982782400448898932888733255124381724105356329850202277145465843220707819153653255007845226763304339459377271014644696497447391391589333287053742268959614310733445687017069199977811101630939038787896696430652904653969404962322486429084333266521304957561266285735945574485961411118758480511382410967850663569580760440942528413814593974259204432255026338495262627085595537603719431586814876916773223978332019543121952731487922500514928457107073255917970334959694937942286595021627012430668807701428345960412322929013824760053645800186925071779867695506106898414451132101870248069018173371866711510545515172169041633209362764805047149012396689371395009658849000657276837230022589547576496267116490811919494673871875876412219887264624399270427516011364051330208351963483986826637503872795165828488253270768759743182803395657784890441203266074644418757011703921685121689399695309548569890456603680671734488090822860182103710664666005468088438964687025897095187431335380957802980001753723740870220058477783632319342759018093207817484228496838725796139158585541301219993111237642702822977991148769648970620159152431178173599795707400947515543239084164386492647639581766989575505706259238406180190097877121645274254363208747419317944334420290966129519651494981687032379748955908155728172517021609347776483377577761881268318697955958952693905831338612992975488535876085774165530412922597916227707399147171354726625350208352955502309525664793880408538555172879651190757056681948804703945080537065112689107149184228353212577470016772828158804972128373766303142618926018828978292385606654555617020961273306531058632581517492256406354985714934054915188488094009138301148703117009317404263210700425438436075334646183707783492413590640686087091563785718742077289832215801943029248247926789429087561751757115251885898646891465774218139143640104146592323113049358280355892919741701611207362129359213850226725494702870589356779149680167525343226704384144957139068496646417640655688954349912551208485965660541399817292971807106708317120958126408685722448548646222475283754243044629400676841942345703014025939978781236449675311671311884752529034764484098865187359254808327621161239658486756661326484383836057816355965105726171294128806088257855686926474827673833519007303618443463854583484597688867540661313263475969346385690993409290949708731197136880119754242030975839223354046055510834667062351039371742587178164931964963005536293918928955377242304822354545436596009817365333480311025737947813816715490501014597687059511034114210281642641174470019174276364388736633326672859712967672417850148621724960894016430424324419789165005540679178259927121072757199304239813648508147822279943400525316019148723999115201925460718131367353782649605474076666483257808093316732106167091221661024984970927820609145145349834759269478725317037961492990471195744076970011041890627101868659638487612578498759916625755712262397366875899710184028846203992116250979724265151988949455609035322129035249529212417623734722540297633689824543484152648139640448624406640571973766404177555372888800659056754876059231760379597520715642285025289698986159639861505920701225108617670839576002020434667523112414325335101540328014969357164625080988570026298581421703186617963418500832055740166998833877726220827006119881992265652211803941780854873197874221363975701985736894463831753991341310924628866863151662871010925391963229424563525828391861102079522320153114993952746803142747191028664304817240111369704838947063891026355400723115863947172852018485045995920766643550115772263092315499417632511672556541095798202894500227197379645166315108927391366218509807978550442721475450188357178952456861053029681648593773080397886465364853510419661612943121018731169646702040388237517736131706516140445075067414075183820061912263750664974490535620813334393545597091267147705703931132096520611908507416973645501920677384831339751306543172909288438234460343968397715073234286744668463300039426507537316859046259946677712108583454491875450362853268892804946116032101520751920868843923660987666990421731042365999022996238159683991394309680328538081595851050506334184070536021517883279278066728283810398100374865132402910410830524007777110703565718703751832099743056689844833543059660279056612066221122738384719246162676573087809572152004704226800093001979625350485779727784353016209179549090298066874482265684488237665502808443290733667231260925130001848399992224646129504762905242416664171904015362617359081961211698688635956170881104243000605736440783313753111946366664381234970910727282363008480634006691284429843232485567642447626912280666465432873677579455202169621980174234336764829030360909901454196027197949047263459344954608721886171982924441840450572552364837082761994617841030537451827525501619770291012826548638803612881453706868606070010764417088432045265884712672827811006586277241528070880849646783821795146700469688492952978821484006003548423508746389422129853778390645023124669359626775135664759626401842809837428405092488623615559712486084072023135900350963597832237594817199129146387841763818133586258868155411090693418468264313490748581216261874270187109105838078280635152325654061539323960383281241428146788334129777472674375405223056963968564104792866964892107065226267345741538290694671269400953114026705027624264005054324994251141364529441157343535576666298224985033872560185111113117451751411271893116796726096399503981274392356304316298141243147417651392984905054063584456781610908608593761398450006422171001168997634579347086565006615136778180716447524215585185488710878973035768886722263640742312724883105382369814066609515570120627845060356236364023170115773824274318823440608980181927364993112789245538723007209262090858321417661858946900657388948296401388006520230282086835500657143165065168341937981442882133208493137063241658503295274223633778202600416223464456353798115024626678402830546726429047549263176791082322750603615669324622042775624603735649609367140893559850035656489863675317148458826967673728434412078335690695945387242962410243589080225287237469403220920428187692915532283028133975506829176048381817595017898006370683598128346932367622261868358971535335047446020283641926369604547026921135328034793142485720570559406018723552585210223395318378554663571763299912503814341736771385134606416193872866030655337487868777347869110391517428843964552328436859326833615578753190743593101434726506001074539032098251604208772488014089563543397514956064784236636448547636952970396379357353356427566018131128332821068008127093054876990068558800246069432729024589947595376895956619539240267979774341835867862668370086624518252145870973329632307137804359012087367238286306209628503149302547717106419750885059214487266824345147922726035468933852447774647461869376128461611198654221599694247698074488100824366475793447807893298330664920618634473682983153439490485843956584053673100025613197266625290257287379445857783748368551164500550930689070823322256361921932325643836326332344982372497090517055270864653385300072115891198010611061565189671597612565019961461488709262960419559188997887406646928898243396978499220073552553737834514252779537470572352478381789378119475425707416768119307832735625195431874013901324878422861350711878621699277770843238847874486765595433845011169445145298905278438763692206582255441354866008899637917519210127665158530531411110796921255608785035914918562747325648583944611209595356779432690272428200041283761256103388323446278847474857877512172569498274364960772303534462201832452836035877201657044114221580974205355906839625998521189402265014027789006440923845687159996879061140969969850599091150696710605738939381588194899660012272322898808043155607189447070690756718677725573382942162831973428489086362649554573909092524877468691418168112877931270742010843892068611666130703279147270789057979455311241998068141758626676930801903940234903409487662714273363222051727342481018809542559385885826224867991300668363064690721065809368596959647568752736597120919364109322108747170483373127701792762406270519248668149097735779776037362110397424416410276607173506827957458171894874000302612424766559355426308146351985717860528402473938333414656905039437577151033470261075255794421888684886874544456965154104413573862888173206848912643849819552800100532420081410289016472167584505829251998591083853162313869194905722791065926397278392132712659935719451305998007114087619729551534452580239213893658776888666396641854635151958702747510968563347609091424714992334776038507419958340262992555375981959675374120074200335066295853472982288934421038494939024036940723981870569631693364760725403899881657070568494329167754464176772284251226032295679422007070942115587168921356035217933649649161909237115042963815237211998596569576202267888189679320999987165342521219199227236176228554453584239420017478419280567584614773430262250872617169262553264016325885155090294636263156236811038367871473474409295990722799064577488668168326505682534262102056365922775085142649215995061755066741964616963646034194869795205546229937294328416873070742950771051710211022780497758090982206864760219821771698219814003048902240296362906293725483530961818978444587734853539627280978687503095777630536937892651577303571778092232949688637723136485357406780075063816489060240417597875549298681485977185494815600415926706971729808399022203565698138512533769707616543282962732084706154541338950144890645359563140061848187581293253519670966747549894906656742345338185897102360834211033242551896817916518046175304564623090776718781535113690807152761509109079452924578531430604500695452130871681872088105840823820419263110374021289330525670769877422365637697961009352752945570072817858841467344664700307309333631345223170259879460432323885373181951827101635900985406929065066926121312292401456261911096134434624880515391086954963099044289000531747163906639685650015157904160749698719218119242458778740913442054735578517479047554493025498351477169371752624702492882790079231607805381162126390621574660852298717286541450673460582080221992012342799506979712272679713724121939904477658011157293260629345350540225267132782865961365937616932753714844752181623020711439766568762904241452101592054955645206449215610312639406565208573914101686902124311738542422991257259419562735423282271699053059716106561680720652282328815964187492264154846537409060865447157039170452303498970656215317912094850174246824125752576132253300833358648567549050587474245079464840993908643611028481781113567327376198919780764421790354802042145781399883867741760199637522381302408155964609310845075618894156337899283829150905932308864764698619245156100797109054720547125416504506343091301055892439440928192943978186184783783568902933795435184918460730860210112375510245571414993881718639473853420809311508097591904178542333259499855172313443826388001472321601624744350292937831147255991461703764550176101326459868983392841526342137783526162729177026628426245989785129601239398198162453712358669720441424491634437194661985781031613746927126695792400179075323529134573536440071714316518218391969811778002862570771695257148388852295046927516977480864733519816601890209814118454255370502010948888391948346280744319827795999787361934957914707879623377997099089502765178956205583032007718065080377662081595044002172230730818859726459786046500733955729923265630264345737070231777508845816450765892933727378912038692653546303733427565724572090445546412056889151336583764685091596060171032000026917914693650310901934475422611315017059097704569716775666414317899869098536270412043723830820946778190664112725289132706074348225283767039391948020863860813006715355986784721361122565268377128520309604795527797692886890513571022579707385913228830106549998301840218436568204395152257560926155998865661871364091926121372082392847924744453304268531332613387984721992290640962408685358496821997180618402731446351559680631564177020272095974715618085209035735891666477766569295480969492497916276990669010559386715959292484406784211248231135030419872540318487120329858129150713985179558933020082788196521666450906736541165964858531031368311478200657217276168346070847501000637141575001487500246376323724549376511509072818897538331554169406357677348843636939609437499219411007892470785060574528149589240399108384456477299054082271184742551275959381391439715392637072840064099227844968645347785070330880896438935030477816820480490219829793216741329874952382867309304394747141726984156315859433448038537687912260094535200039304776163641701422538414122057995184351641426133730274655685535619507029984719201057730270953179560634563835353343151442218926662326901371296938268747627470424501506970844258562113548774754204608793718052795388445139486309096245791774544573925546519082579692929173045348664418545066327442364935643000408543123537897469155562208353029557533789499741640105869785174576933961699385131423839156053144845642056614014276742815373241835172165018306061175192348477441820722612483693497826108362248161379149538943426540229154038357208827149591751162486330002686392779838936823686391410538389713278994231054742151558355530069565473406805924160152962568271805353132753660903572358846716078756999985762957334764134578661396225902591703935414331682246060717507606499328208926654567787903941884885998331174713829408480806340413086534142135350545931730017449312395712611582369788155193322952976457926056654982966096897998070382128455419601473618681236724681270214306819313416656697462938848157075083175298661124839705432623168045289294844079089375312214282449765781061590486343108081781063976352935005871810032956345426442358035925872176427559077166928352990195069937881366197764087826724901068114424498449382595257198165936431685286432684664607906229621766235693204538021095343165134335867816762784311370924209524490156135662496313190121729632538826689428917956865203842666429825478460454512829531899034849749753286162193117312383302367523052415792599281392783282349498731023835311664190802599511419724448070299792318022636230540761517586741266530345316100061643209323842917548619125548872827470916985989740706468639716903192468440042645613179752607708973580959534767486358868707769136773212731781661422442070796485109682255064755941574633973771771056312127036257885402203722999341253617669366315636259549640689736303465210584467203199969092384211985895237110623343455164344452728839812907454571535270212534575275502245905387657416503010303785197074308826844180466759768168239884738724304462405178203402262331497915788928841340838176946247270751759439803971813589521617637084945833386870861875574014117313279262067108136469989998592825335010560187829560455068249623748673706646857989436539256851941516150586799117748558316807443023276680838483136249479366194869191574438555766226131714761380801349738558590550561469653190136436235230741274463849213682208056629371667175521974093258763429586359023385104186075296493942161097847142439996658824439315517489992434862337323562258367237845939881917073765828386837693869935169095410887745117692966442526297555930231595504382583481206113847431252559828892376725594734509669221051294403306394785562052021610508592920616036311563392444149757931622185152632403259588634257330529122208707633539045199917440338806467698594978328948960732608050747892166649196183010882543988016180076791353498186879319810048797185443400757812830322375846217076298232681558929702563117265865483839133980737564941692644668043134034697948500596431566867566878807148937401230846941665532385090566704412384608414426745253931826035729008455928870041417967265168260571070814745844552064678712268305214645745803973281071258911238606081019038750464002012950064789013482881937016688480273519371465940383647928497737465160087158702942502513644165140636388342730453475797213977851970289222820795218445250136252354259395423261323737849191268480341270216487521839573229999895839189932683403677136082994350110911371482954907707943079786795116087555869931362068742179276954157576135753272047047510333423004514111193825622139560228071239668437546451491251478614168861097433458592397097395865851709686421269965946719090666473967252373071727326858188777770972341678943483638854905100877257597276833475486650009934309731070159651903888616087081205389501438001584931773402970374307807365811738237362351974106488627193155581538371246633852430973098667288888658888371528194784114534340973587103190910983157488127492208669953925899315464496588859290986615518494712943912768636095792623780442481998005343676722345069782620539338201418138415356353226813038941659954018886436247533912205350977941757576373493882613143002037586155659254375526754859307106108052635133792356859440405978175955630696613441164295691331781721317587524844500535134582296062461869741469760037029778464093978447259109984853874351642558668263330088359207627449826228706145372743006635269899891193490376222103105049705387074423553566750425229103910810685372524691430667368346817864774312904766871776109473390490126781850171083611571639129326594275768110104784090883600952196371600131968129397233143065230607262043119487449796756936968256658824084394175340925766283611861820801599128345780756060561589863524176086966784080436014513194537098607545409579042578510516549308317783776303435876049111594501598954099059764678057603210061966825076071215452330103987183239223336267082203883804415661534206527456786782231417398049767841227411428797247617267600877849341340704186594356125023979934815196661638177130930282334383117929014139890198711746392661659670260171060534524759565474939693695622997626660268047957927716789036295796006372202165760851022136499394256781852583351207588889415293789341021027828969901476461225256424665451339609781244574203540273173698425844544218064260287512957224124609941186732487652786953750341418300502097410138585986716966480990167252353919711467003137770954345482214792877232816867494421611882130628893159805390664025487715204980861139552186896745482148813890777884135004235939842833790627296146732404089992000373980816243350367935548493783861099828407669964822428787122876032638251111621009917683172795916387444808019450530742640171004356389982033123847347349651321150792580858720386836525915894414522714266001408070903524781417000999748841102164885333205587885331488319812661858583502601527749447700085026573665379847508770107997434643425422559491334001135144789242021381298068898349727118897944966290748430067032296224769680761181373053317931231991708431005526061999070161208135939947483365074155595020580801202664753366094110365669333073927953033572748900301339336356855648958797213973840605081407967295243018732074541224274551318835377012823661454289978868101813346543749643801567410040076734044195899194159962349363953283189675879384393422082744090412766875187310506579567018656049164574401571801300374899231553114845294069705702098203093626665898962366156415064507262339887177872625436381913332701818267421236910200050192626774536154646983790781403615915963612198414485453900602453350115001908881306490193351071222740391440552126914233966642099634063385665581406787671752780191269402571363628422771809241572009948665127581025824626135015801754388373142601004630842064536127011092701110277809476448794455133207367155737933945974610220560109886869838568326807035710328024732390238619028607143051377470831674016465830920964804852681476583278078412440706629193589392658295807362874568702258876609087394677637307694896751607210004291637643519382410223857084988501099677477632132431287513146032461580141602769624059151097629697595082440022447036515172613735773466501421630116590796386869938173004202586111668257804818748143892158270114856146226197001977571379666689051399051865245940841989748658036051308199897114858369834355210680355519663016076940060324111118455867311611412972741475685437013485419725639435664820241491040413468706605856218252715172995825063537100192953320630465230889785230235373736703486813281189005887833129465462113688816434716221321449708058691519802744342631465193716471873774306846772384476562093784456473445951989491550786934542983315448813043642122054980769908100686907753923522595072833895818413747556378337045517280232554963326541978992598367003029999375211780233363924941505293527788516270321601368960871934844410520260809859122557127150272132468740685906963304873074244351786345727594671963784164849632246701138887393463629218295452006972125446164508865892526416635431995748304489471806591569381210979860695397609143391346908991160992782656139041630913471294803406700213424861067559206954575688520515043725243615259135576909097479852820554788453265376693720886739212125115187406325226612516197632782155515345038162341392342197470891307502484978613282568786971266471487578370909207594808898976416932214806885546363125519200239073119840810160707129560424064752198235912844210119511082526393741744180676928245852621262729197170212442541023078939533003094515161056163845459424349318260125968964223481256320325212677706497979771094613553210543015908506240324243321159031009170901670495612556217425052646487710778034503499589429707034242160523654621882830997275375694932166312918631221640987006743752285438236496471386747069108492071535480354006388573559425154915982684152048243579357525196462621520263359853179191401395342519492387933284429746622660657923431313603827439266231876473888335094854809447316601460361773560074487286103766418318768177697700126911634413410667118132207000926621949782600200587305231231940750741050043420468463934553406104506295671199699129012743557634362812793298242798804519756776139815246876364610137333448549801020217875506390862732161968767907595616792860872907807042139126667569662167576780580081450801552361326394206824021775715755582268289839122111972246455923633358982752420549722588551200406608031525770945386718066450211112484296016779592300238144204468249007303865061258906510503699520093602124499378612843413623631346571416142533612279172282555449996816996015271427060220019045941052129188949186494570184240032690129363419211119599813317029346024440362259015300830458435300534289377585043150329746398186703922010116743260672209166184637230604369231491867554159283353831733812128236053969556274311158551717540162896609500189932229310376598582023560867894102856116689653987692201028701962007243011128946211296118507895180334570572356976049756141135504823978047989056815056352969250914206464212862931223093182812121045001012955076654250819116372306059287059656171975343215718918414981391582980272593928164390377275280838124481155946242476651315946143014186942563180014020439351717465144829624351512361792550145720093425942385865519706720192227149539437372572073990368012489363404967250859716181220661757665742266471642847353432039234853209542324852853179097841558534638332489132711020192710657279361697898693094485388139043564176220281193241710074116543590374152120011665108732156943715262185957516292050230652075025173572049241964769410209193992682699666343515355016547425553655972479182101710975768916290822230017362159723624228817987001318702318066152857470920356128516955976777692724504146645903584578210698249586454928031585078325367877038051454093714777625691606868697381114266280030719053771523150571221775387382114552777351520390475074304707971461593510415010593564291198753784690725219170184825604450068252345677203292484698185097355550431891312330674786138065951885921044659788533470476754397550898791235648192695145271675895727419854206746326820448810273558544596561569279997185388620444110226261524089989419186660550136515153938081342029617714502933136384602057333098180728765619716168511582098845857512885001723967743297406181687734848621460145890024553082844023465452499105691547590623993724934194602578825174009900025906811026390444913607262133987672378218309593422983119453457469301315289737311100263307710721687342582792094930172109485339581687283253890712224131942224904066663039882652946005400442347305522959590805657951141044269499452960977407506490028178911344437064584674171504485498807101945701670106741348046178088470974481813709216431758672776130575744384805568229579957808409801618620394485054007814228801576024434295578156283075660840463944329590940897979053656411366417001550473053539041859237785068904779343720013479057984146803541193128628154515076133772846703702095130266823549757163055152712912443134440076606864428371955739957396004036315178523768305847360939549343711855233788466261762647016116376501090174509184878329852482228168114078877228484600362239142623369747764120712347850977314037088626454646026899242515731083860637211426156024576884021035821708316646053598264521185444981044669012015738285427426499421666785243525499428495062625729381823041870196500502924627676938795323676157823569770206418698793158501670564867694932039468564709388875064615160706474010236284661601104055871424353374358858455159921612889456966972321288280227631752804307125564684005301757924461228882782595815034281677048721318160170027488737953312759200639035184984701215533184358829665937721982886869451790414943724591480718396372394811812151270431680795487988856759987933119971195950655764290959539348407560909521645586891087811224609360937362832997332052489247825944939254657834191569454383947403565572604346235367296846596226349049936394100416425618147578386644224822715247597470170147811569034898947436420666475127121896848832518481149869122159096871867014537432678347287710414226475077849955870919128148184299655135544244694952557106556161364511656445873675452205878661427383985140948034440849134460641195488855780664724331991887006231097209874590412479522804820893982489881443640884164341203205514499088030469747335785061450715563539513105254265384397288723676751526699780837220451526707393078089817322555515974460043964566392028298131225245905165414374322147001203707524319811312045880948941885994994377167869215757355325820758197207002844521443564571783541251604261796767383728702268764877093923539829996006799790676045884550510489599491150643887025174794393363661861864270338895931320846038330660290007623282517421983545441364712887753148110725969863031419299056897804121322947316185777205192616144996675074818215103490480734126938808124185125807209920845501561933492602398662303860562188025898297674351855114392854411346665704460824385030491100909584889316384572656772033093513788138726412047176710608288034693347358053416053704283580280318193717097782343614884945697318167843753262658015996365164373650762474486547261422995836222407661706815532972188340048473640174562087519260310071900693875423114812996665411474311371186666659691541402678448750383968181418640268513387584395032185974621812214413811334291171886733016060775429929476712768255444615406392120716269773641426934245588333405049458432829591088728332820303645448121946664121751312713143701385823278955659138487288964932609997523394327709475241396039891558695468920353936280048362320622333634751586608586784592925050908952812661365557691960471849892258674680747054865264504165091718156728702833029994529736841503341449670129281089147147990163360189532902179440306547161883864471890926570378858926881694389642037530129279312542211523678405836852085291308293447342675138322538133209772035875076816261664447930969472007232572154186165721439878106683741803026692089847674497377026173247043200388849284375629091523557517486505015403538155000806353150439366052823408515154894689440223999289365933861943984671440290460836534767097274231669837049137681559218122493349745078582630943862949800082341534837823190870495257630680016301908942621590718834756958135404898916431499766080593857593650194966762695993756558905841921763413130026021960480573532048756689945740246697135885847479624117378379168371643500124644160670569871939198893960260894905968618383162154102503958200276617268304980289099613224726071585933379834447740905955772599256886322247262140170235619402480552560253432448188933079180628021456207744907557153041031136251030118075121365801335813733704201518091855028670089836040513719421463203985727823427853555797414154449990088663984379336730383468802070575211127988329374238210130029470919888696504965595915272322833772058948543589949799754721388228659144983387292084517403580378909925813645651062251197598549185864114942585940172106009811797410501814140281003588948040027812554110063553187488752052863951687315365071016482822461464822480332737748474909967145902541469491125847198192543941598288316199852554533281599204623068960407141435844125698832281430807055166786129721878930292157010907276522905489273464455935440003888684348909091308384356192854429450083443053559454749707032538676297424566735596616611145951643209821823858718901226692621864661002311272173496334549345486127962967415045119361373740137725391451639839604549861677123335141280905162631086812905505516326360273367850650580640602193291341466333851737752582246580850131791980962460058365223883009204367279908477035677724864754304317411932436130288014638306748611062404856544588923375639910160979165576494504112564739373429214490741630686358884657374084782526196562349869751891436900264620239125567343553463343720957773436983580103289319355580898196922681161581049540875625231977799851388231957871584373726872529746644875228732977166014905449307246344577299704666064260819937133232440507028294126434369605782559188331887240625679727351915661655963810798151737902520648584869027667785614041699206506443174997813576977540489527768183948305063737255600615028755979641469741029593628715059853817649693770730383254373167063151208050548597617130518881160375353533134784163466683963219639919075561872491049897223571505853228063297433444005709850268486793003265232620407225418204692919886488582389441694067976983701475534315458249253594022764098022937229445301970684152894348757185571417497695515096291380538212437778104657447574935210359401880165767257877436477756109947939040592359234506404645690000351310840701048262589836785798608865048726254879558426459980992861921227588126072735140594415266434444564489888838188387616968150022784221610782208264161003408209946608181814817864358425748815268288513456068142034681848430684585299831522358333030542355013656937786524746376267636720205306481392567645154445992639100968469766609388955864488248008586725610537570948278344503394894632037657444691683405795885850479508328465566196832162595266970561544119955955871062749406635192163400597534682862421317144362718409563296588330641701424307381503540279825252336451585705743703468831886629077804525089888467324354932453913166718551343958233540938432738283374305894088716334340664263811520933883379712806288034912063103360852182063313962145248945503937664717523361205187504942781726499459599922699376158447668695829256740208605284806069677008684593640149804978291910659082314914815860750995871764750397735611791676557564495500845949351665054358734189389082024912956061462856517751829474571644532580344143244417701464805746160865364439757291766716478020041333783872043963071070123966818486556936854136041947001762628215409475648967283967134589391230496672086567892864016242286492500398495954901228825843841328825132230938341102049534873609001739018036027196301219504888938220703380797867316331015037826488329986559124180031856078026073733903738100068551302805244598609377183361756522526152538493357981537337303632002516893944602334415979828298412003264388115054313738557933223650801240754776243425274425253359681213996954608223752633777340345356203831217408461224304235001756196007887980684597073222779411994798946264283327261953201727526437354369253879177207981202118084241990511853269580218194330086804990096741297711231957346941672106579834989455217756492823443951785118411615395947096389006635156203324964051573875138854679837389059316154946276915299102590999250224473690361215362150060212712370535895813089822534845231480590766257591978671374057095485313194061995071258242206526732937061753576581919107698331247059946037049051003295721774567575638096858232269941486015357060236715962784402641363293169849980601813840056434318258655779403368901954447808566779118832309586379157067084326411262961176261045749246357799213100433483429368769238532510085873019067858230236729019773607372660514598188035938543513610645159981662283805221586862693878284341724740081442865512691733285413224574109881276582251562121050337264506954232367112958750834346362955305986991363504225469368412151802191999858853945185015717995805357456204244468434295936113574606813573556195021442797533020496496155389374822851426052753657688360719086748645612442030399152508366344832980142035780313834075410202257986816098056339597744881413086117992231135382920780019932777117610338968213581411991430787812567956328944370111936923661410304664093579619053671777881351835289775871049550987562808764018411508140955217618571471760562965604162990459954281486529657212713723435082951540489303334392385547814145908227540483011394694338720564604114974792931452777233347416614577369637505278881804455147041408009907517883463304356996828481185848727352855925147649924434736930950088415276880972569360424178307802834068221112808507364157245106456524736483318869051052682175822116907328628001799983050448583930349764271044325704009149187345797047670999780452407667448172741360953780161818230593266058216072153118545201613912704174061149803205010849502463669702019014800143735422661044379910846817415431467599719320612723967633561183466825024993230116516762345514666186908982423576314147897353485524863161175513889674529827432572724584685354116600699845490144559119344241469901535779261934667354354260246909301525635356518645011797383420390491074899808609336926332746353887908313151037412109679884111289739424899837981899287907769669884381749750600450700956311899941694382059592112665492224273051609790405163765248387348101106108239942685873023974053204739393841313769394713755195905191964297737189680259845936740157170017803906297543672168033136155218182479752657352697257850206486347260793391616368110896490832429759182433077643319585716066332205187654141876580582583225665832137182114819258160138116183717748387761744040049441901784408283216840432273638651372561362995488902016552239127663056905081313491060736280957278335525830517453903295260284562159959176435889344888536888069031959869004040156115322230748713757960558271333352466046175615638630795201668436337742338938693215822976546693174733289755401683385707019436287708961404144676744935088428110399198495907038721036293612526637039898044599843142602467942448384889547624779460853998994377836744575569322861010265965286517433669906905383730507375205650253903813184021233189558602064087662342121464675293387773891081237647431224704640103579446843239100869604913272079923770072394597853536919621437169713507805002885549828560452233807121582474239547015052703189779373811163381220581151333897979427094723177710280542069925153804191691485076662768051183445396714772619073427768019131642588072602870033849163371161527058561933440582012912851856107848420452319868530908957599469504045305152063768354984439151780418275159389572665797332148461728894900116964661100309542497134805762537282154561165401862301506373879826944969569020883400406795153223440728297063629697112552927128439270817503078971535679673949875970714393210972447736534498830627479340122166114445697335543360213206246727959881269791965728220756559043619504794618937747181450171261676457493471518536875899656871962214236254198882137900577915352499539907110395711406324961888700383840566272677711020388740012321002420080783722779604781832272043037140998952967833916858923166529104746105106941744499428918128957452854240577596657872057470886569359509121668424543874710683784717228306683195655085865266668039239498148739113965928230860667342948896399937989760595594044639810478541518831396856649532883515096929147187787142352483156349427000333273800663077466573120159475233134479839933732678588575122324749646932285211782835990733468910479306123330581652717040391572273184994339050398407679219420946325975729825472525883839205871833360105845657106507182576255452677385534074736878775942857178999524590980390038925026336677706621982320911469667215662279354067735023536324963733754555072907692643506441992988154453687657525000445791406144058132175821844760111381803230389199946156818520194511097205231808344845113999369943747213764107878188530596374018079304196799463532031590086282245279933291571508713752732912044361287353652984673293585276358270137108557825456517669877133934329045115174519051578341568626711992755166156203041199824330183843160820495119341603554569125149066413810350752715313898012407789078491982642388691230742433603536709638181901964291552373644629747572261057145356235244993523987678469266673582449191390017125346396557869245603286612649324056241851158909443835226209719861086664092874205160096075402416254580362072878000209147534890750259354749415142537600281773920605429520762553562069629303632536481998863426786619207826554334842128314665864063487652479681749906597768141485043813632913349263774555793278502595224094876694047008830385635946981875205660110806756637121117727966035570618975706456781587551338987979013789280026809688978744292792094201070100701815022545293016040696445917151390459489444523539804064494970896850677186043705364375812944816630584434723206751370102837843830255151814967765219132262208012472341490866406227976771726692726795817700249810697928804877316280964385027583389219158203036412207271083553394237865897509593983367545382122768915157874536329242136216823556674216411450496643753990854967922857484727322384145325999767617726237392191057034708111474475973160403724463074284610145439234398973576166548238266965790737243150803367464210249403899921457513385694234152524830097752140121958469194349344598737568419729356117391729273030001132215912191675766935070881606837473107989856691612549894632054210786950231219838116089690536166342437945503827146153585792811283291110252695990819872702038793226626061195791734681773013160218790116584006053855601987307838603136113104872005064610546620195367761386870021987700225101120264649121364840761764816209025393699060821445222903965924051149912053473326233162745922941591574466840495152598013318615188161412168550539516080493248138489245349754714272198391198236433457996500480017494138330529775919057909194084427892029392456473919820816313002523207086457216580889025347967143736799577091791544618660515164466926714587797196254381776650158334193991857034687981231358771997998506820338128285261529977869111783034641720656839721371926932078675990170289193104068906410955570699750238686605473454735151605937100348467041857309891331748257835317112677051205409361272098330151439168237227070916904065784157605204374752849650484601148866458016235312333915001480911429166220896315135622554487421260835484107057663663639013723211020436694587000887508468135833444125158831762021075895771788125624114086829711838156329163375442655803015972054500400988165135121972932400672843610144907045195705278779134256055135004503857214462360527126864872767391564583211246866951170676691554039812978985780824515919577339285752546115877529951131844242524325978270881821513259596187092068884369823494272571553134809709011690394418893572794413314136346666574871615245855118937670818267115145463289612160069389183888630193301991563432847754774913471416973799624999569422967857543659844043427812653068219761723034684530666924661393299574669344110116420971083269404809332332241026654381637548380118719310568398978431874155936492763313736711174546800394454909622514263987332690500605465743750409016253183451127120510747084761588677302104521894459950960723524210711941080607389362019848465478252803105517198405358313194219274343157763602866865896355047854934875235158029960424292909384316142294156288973624560772735222856024094623389372995057793877511497951671142760031926510378208545149021723167699292652346222040874482113148330874019890143198264366146703744828339779079486491403960295272052123189379119901680000635954308805313389128513685527250571508596402853837487258723305015205081981724001483830906152493849594824963322322945539239304059711854618075189244385574191134508593825858011429669873823347139461009449997836591020689687972420837862927688726780703800574767974883094785483942238542484615283024228669678868588265715793284423573642207095946933088542014832392621387083985911271133728620494079165634176948734685674458329205943557852639461981050456163261072697049360062618977169374519503936929956048708927918195890999754836754900842816762329554780249085839937557340907515438023061605613497975329546285677301482588056816611240986534446700605089359468195463538924430048205059098668812701531241619355021902848455000971087439983232192039257808084436585091080356860587312077596831102098143824789894923191934881733474628068365454736768048299645544921149070694273646193762575723366282532229693247498553207099728113514698754279786246389368986279295128371724113417270136238278503018876434192572316359785963184641339308372656649089764214084552024867958367100059688779910893161659012144697996611309765384485649441082365850676611950733293021494395569965521177400273352193758764182446358791175907835162895378577649777380109785434381297841423068355688620406707385740615002622094695637621185720597186844521842104873076279193313830006726680305754367997044859149329251797302818238315081023183626021790059211682797333372568934778730012354724232312873551765296656211429696770907297168466724322524422836509317488998501952586643473873569990634257774160643956252712859481432708011523868172718803255345473035790063227006141805209237748338297950171511432411179319450263374088603185845036523114931937372494878006092833388807075575637231545278450584615908607183813324895559562133191471576307915919099416311270391375389009833426998444222291708285542271404068316540378226884154662224198109283278824342293217573614759348841716441032112283754018452639346612912507841938185029464827702237769201873037876099236526078912886221670248646467894653782466981591702513216945841440921820744128982984722373954485996556738726053566070582178925419606773166385970127771592327991683190426786603266322582447996546826644790183123588357883832790749699983410900574227567878941558465935437517383123568291204435875917766112458716774546500738619353309414010658595186037705567752599523459538361347852659687416569377352087430102751424623801112085704159435209401666540203171333916141265231042888114270368882347812874974618046668118042215639740259752226423286772886558151642656939572608556251529440320927895296074659044964687239981739257456487232970426801863472378527780168265233505686510627885230334614230716691789527802998095410046312593422786706926080530319409888139250818505639297740816950565536573160151633361629422741005850538926089873803021267892370037653029373341001243794432906378777040058059482897417553984907230358435523966405520801931530250829778800499269225876598111544020364410283745614304050179169319155745778096626194443037842771355606925368500180568682489286102608981709491469787932009509835707806978272112375084846261307765047520706824751467899252820560065094823059085323732711960664997079122872635101858723088413512620770395957118693766255005739301339196068236815550780394594340951855145543825028612242645855379199288029983052631516947978109008965656629343166523646335840053797836091848336342112648388975277322540690253442619001736408334051955700872758611184606002725950984500909478393129624485192336780987291768200988764274519864884221313136431837220203000812356505259894523956941907287441600891715008118304030252094535286434452645807290271334056246577650210964471039441807896006555889167731717254406209915240584032698950732852326428897574128424560117467664573561348161565283556375813134581139164560754616771577568941878926154399178334302869762893693362047935874129385046835086467266199991111538426382443769662222620146418604925307461311441741493996230777896944350126704389651552370879988764776043398902235025179356568166472221419687198114487023540267819058089691360487677649396113039642495890749989480386104094767338792434370480271522076825889737601592261530801741841927172559249289196749364288192795871446370028439823238198550072496476414593878733647698239300823382439117973553521107837397470581603900250306252684102778980141394807870551367821895209564487143936668131492204889739962058523146230535987886486590061206702775049547363760635883878121557557167608629120518818151295800926353748037753442133186544712347505085291856743695840897089994104766834568926169794981625860159589411734021147854309735239663685157559314936343783654370049378193875600165121581438993335139150826977830719300121226467841412206611495313855440266374401162934478247898918584487334665244619721182342529937819703068039627171116844398574881125809698923608730673048794044232172718554848795356262471196025858722356747611221725088241415301675042976136280120067847943350812177771791829415814798648788894228199986684443370142869740304751359823630670084041621008062317205397572417138537601020068495650212646009748529755221773108604303932079862653522614333871219615948708741033932185475417890088284003877541499001942454190517153686123095886929805880811613766027753849564861942351425054092494209036640619180570230866100966771018435746129634578469451073897606220304240882011155047261838130400979404598198489255742877083950227071992079427440329912662323841724485883446021790872874596613276169484024314239586701036840511489611357699121449717158399314953156562049303423604438789286013460632869268896294128139527374030592097391294640078293694672039570843409671496453249921341030455759200892757038446162421921865806581560594714698124291853479236965454464402591848378072806479617923892176739593268651833234182582970371569525013656940815581753193825124969147610073555873129820932189599386209092925074955976849336414952241500036076425532348523121380456698550791718546555595476604846490990561339328875425760259081701238549148936864812112414772781559077360191698103107293731926692850531491040035809816990885466520282064750239628108857286640551546919316027713659574862614492022590952089749108891707006831330543969930293029919888291731416382688648381247823166531321363354950571056492434664312389284086127352134126259293747714467691967052784862997526968124297221893157146294091052950653830475442102265644953107403341805713795356063886311137329822600911198381425669528014392891900958343488933731273943892219338827686504827624669937764424695692369039454407795695197081922236222968208328594842998207348380625302175588762636017503755173726154516816087181773729092337086328416172196740887730814669133888108389111198936506278320657256517825891193405919482061837248211692832355859230077851421710920999065185985750177166077492966288737874868822147080771397449704778540965689779742717376883005925861341730036458508235543641034918324666400820733950248472250135303170483264352346887747431105022712290486181355351980750022788443474153441403577476059328944321101782747657597416593747455841506139371101249796013096086901992066915749596737087942385624451340781335125178285531256723833554936736394173683784347739262904041297896031368137452369266897751300743056159767490612952395399918987236127740348670218502240397626464674498731959133327494523235134476739444235795607418384669951843575484930093606103682997472815776627362145356717435939590095508568402737063758087389683220765174008662365279077336662622506948014394726176769013833008660130707001118433245634600721386537473318042659267588658296094324093553105059194827859085420805837318440289442640171031749675502386278633599661054248387730202841400523809059424297895025107526193592785245516683967406004906724991979799375194511347343744085540473587350147474864517615506913493532245205195439018504865929554526588293044196491476783733505413459367013280907522143422358306512154150974384616634395857021944154576306095243304757142802656920466655958210816855737789320212082227980209634444862026313749673911565274015535627163305629931487612805654508488110578364911873981593905017064025481134184868902614316403178461173654728692842036495317075867850701903796776546027662861903240071130008635094457352802498769023810304298749953453874741741745927440639666240141289066415994695602016406586823390742833440627119680933595522676778759141365046898700783548154311666433554065818478528274621070287257871141297469291031053477364009241501549060538562429403091952134424948840542115918397367712406979378407818717414256448924919708470684274742779194003036775317203191260966205228121175587162651622427648026923947798280957642097908637909732300154200545961565813345113654685741289810499196701604000835226311050533221418403772593663651763525425854521869447301881747320957319526815377395876332036958578129540879026835503311163647964616572470154676120439849015236613229151859812645554995284374173689661858200875242427948959201529246195994777130041804076266316733058774893067684555782204975276745832939165310178190450289381096493629198134489050537333795608316977425535184780419938926594153205704914604060678239343450867963028209508711328641379988388785458040270682669698464093928211204431489952959788477129393144390282563499360638362547026955132526641355858788581986362837020203002948489920146357020188273584160262225817289187755301845514826178494248958471371162638016969099912892368828367735256404746029356141723031480088387227927677951271226085096971446706573321763601456023013054557753161640994667861401400132278893630440602514676942451751468398988133469975791171649468355299240715507126642230786952478123982771283623717773244648011772660360298947452162047847538591261499689271905139586588234902962606057919161209048231422097819526015325427925735248204450267288289973606558449125450037202230458430823392500109658713714208881778411588464140366438590464538200579475729682340051370747373336206837316012383572339979341043213690090857777208340706155215550762581663219130858543087617887659931055553549435488802241938108477436119110743452309483384325602107513837145152146404828043903854618401898419447834371456074424981887113011769676128657680003825384516156995475185958010538963496793495598229692973982401056131134739255132425365495529932294627253593229543658719460161729233197643724199230829337170863056223066980883092317993701078334277225415459117773334554845858001287007258996862382307838375994168989840079312184979923225165391759766518079279850023476234565053268359323682979539553477088305751767743216465655058224908112796392995275050083379539826358525611396331079583121640582030573082833434735978009080213924738515304815016450026480201648543609804974490695333607003325839217723125468515356159522493315223924116796657490023619342900355147562790781087399353499255797281497768526047608707242743881319673541190819231328269710217644082763673658479466572442911088595438920535745675904924352060551157641089540620346662995159910036071526456175634244897141202609263061688763114477663046908386731332768453871348933122692441696791415761189863358591907666151158759869758721116017752173062466606349302425240585682770193557212908144550247618743785063391453192864219851034850233771806122903873398812330927265627155704770257533966879670726417847525828680585661983449263488443575171891559534444840124504611975919388501798894589467713096360355052734228720009097838807538978722036953796646010663030594266436147793901504898628529881472948202284561808657872376398760992390068823924398014394669077780053295600961113656545488559039737791241409607554620592693493143327697190247323984772721807859914282195415812835438243504790581048030086677698694931012485692088348113806715333720668699343446041604465916356399987257509251270514342771958737759429969193869762059372382230416440671634199523684030544353505150582310109218830064185927839986200776821055928752241809673791351322983219768426419839396679356453439842630455002537555027187386477078293662100660306005240383626125785028302803278338107333462383651760823384920254935988636744374940005418526290865772443950598983764964487437230553226083679450522511455749711516490357227184336433674015109224173105001542059508923532859047616202013168843167933769009295586598661778345264157405523411441096542498499093180111784294524696412747158695252048207294385399677646940272255999558348249201198339548597477063111364698822975241122325754684997387357449996052916702483795207179615997253355829707842318271092936245501874120762777264864123154129231416596540383575126245917588471458785393204691932045182592471122545592887583204290869742463580690064082965785816860278519910291632273656242856724565305528021389961815737041737028670280397823154296436888277750547061551779432786267241295027715900311857494208576722186827744831064783405199847298430973590823219999418554102286988881880207673057608954196720750565242470154299050000246019126236116998192130773022263222735815335908839156304066249461930029319699428171001966132271264130361335984657379063006782311264965387493914442085240654718710890365835110216246355339283849689657128089676458171807420602876218591922152111487239851158234802459105214465391403089560187407744089600182853366376805123741871709379868206879205476092536157658129514015344279504725195972538861005900886069146244912650736375483808845980902094326412844994901633129056313860713404440508235334615869864572796808645692723096839399561795556804631597669302182567104413266421212382297316911130487090889560653783570716014722526020271865169292140783940533056246379801057617392034619384714772276677441982064809126417374214825103724091900372688792503541373194178082940603975917395751529856977430935280633096497303525511621319626706546306797126922491268711084234753337681867494931889424691237918633638159639656548166432135197999241848933701543025461897890687822458103995318677775130618226593683141977470281921664255319405383109711783381682035319166266849499669228977167411811855458874665796805714145494815717910159106954421289509213200083807202234302670190543188202200255039331572830352295023759763206247353622593195976007326235388325465388011480637924273286546694086045301245010399360169399004479367904487669928320878153179781796380744543782669698072089761330903460538828488459290234127249488707683010643135113186835766529880633439608595127202555950590953262877844648375958701162427981714018050101266875308707843044805028119193865539745226125712099259915767331137533342204610450159875647758702790030278775935171531307202974570966626586740850888500012810040188911008296180891012025819289375296894981585947896633135994859700213432327822537027540704666519245935614296288596746555109745217172131131660713186521565800369355635134528871002646967508574295910477041073914104345501626139124145677662231299042786327389547743145258661648898279438454660793734289268026432890088461784624680688626410802882354395639034074841068354530300438344828341883018315132500330413201543619198231532458202310112148440444193815236674751286391965106418518140504282159113367268682970637985164471805699518857793985410415297318308851006757615205725972484357223175603510329053309619915278926093463839103685525828441913891403739296254712526213896688962210658422083664981903816110331518030420075211764952098018072591761953620097396818237531287126555926382052423881274376703767483758229681904283319666878207417048896703875620429247317705225945550163677409343732966192676252595824230729892793003788741692154621634868659591006002502084567602711298406926189871545592941262710467545731397607841408898183306604767694617161017847639682845871212484542990059410368579830531225583837563491387686344098278388012786227770848922961586887889808691766766725408663209625754762742093685999108346610389644494345138919149841606504880422105774608728124878556374351779550802595231956260911589983505902079275862400982377540816237011293751228450885827182795973827790883745092983131695005460840550330277201627364410833623340226560745227088717739885913540214407904212170340070056682908249417513886467858999345629622793208269523619418466642683515802676141685064550165190265887069210322494517076876673859157535945010417448754006587840714544140705649222540990003814396343200325037119727900942843333304213554790300471543098014891274730498510381213172328400590243531706643180134551529185061261148198039523395410431546284790994832148308994694482668965474867550951908015035390644759779141343428581746238949188241167245345167486051997924562727608038143157034239962102292877482511416483160635160113544181726459700206633886938788503397891862609551268192261641774270167237760473070588993071254989562605119887772778455938205487753088262801500544404216727820334057996730976151643803064774962770516146206320405362669026256794766570204060183305296215294372416600385629422620150969877460488080952700245778701303816811702387171230826812800409342489265189981603898041775945014258544517295931908411950949450547649360763133819620365911909213279424648269794358452994651595945220594323215025290162725674886592252351289859814822139385164002905168979804206096876049855014044906148105542869140378022747771132896715163825730922562956242696338312337965311998303627830799097006785725096690167843832860134812963176035486856987151988156478422904736264878573693199294718338487682189639846738322343290800203086856739094737456768572221627636551483168380863381859521901624672715258400862109430129694596215458651842963834342254093980473724894599151856859996269215461166947721896103446664090150149015131702712753854640128779988125219495133615750023218247490398824334196248574597759971145802460845632058002806901546158752784198880494287441074989797899584902766036702719897787404823445045208881995622534135560762672575192588239145786699165569171589283026870766162988998890595996060240216658482293247513610456688895217654456109263009014006515971796564666600787270563178470748955843807332584249179702583800582164971549846565741901057121830170348601983425953821647444339909826774479765269068505518574872243014536043965287091362234292951765314878907165264934914724730714286973229977799206582859364688372718709390469602305997248664488744216061206478406953871535969685030447538325485824571812247823335049297648321060307345159911697358646550318656830088907407452100787422430804437063268841088701014606119122091963577943582632043473504883477818566064080553912919732393577416587117421591162136766914609112774216918336163869110916364917215213204001830341920232008927247896831916234769827957546952711408032840265396720706698549749708112270020065415328196050843216236268908123701027154086116040466265509299523720185267909633327990520763635124799740946277398855830980607538740731214706964628809411348650832620504499772071573776365512327396366708210107681187641858206189001694752656827355041281751366531526587342483369934024058874519890475645087371156683378091537827226863351004513346526568467729881329840789183495327091860076463763452326542514428274558470603448943123980259219703564826499539430421143345256384751589101800689039004127487085582509735431684090928708397772190743085858825213676823101415256202280101984960689019007384026263559083876601434645878600359980238006233016863778654565551992455188841976310679578031256248545834228791301023430352035539175447033851917546329555976110406970299579001669626041325614952565863233996100301849358273592053201335749807483397558344330742242294226369976756812947810167088241815972460917814469136584555280056738617845252239907636494939632571828414882768872108960363844338434508206420391186918828357073888021750932526584932447604823943777948030645035918674295148319795106038827705145774522244607826187297589658733117050349594960726905918503488289696195011091261102013444103714020947488779393379802706759619158973234449204778706753333455508851632250093122101315721007203661423010280072747250372284914134171880099871767562935239187866125760998632787724083067655468768586429321803771500110794178084657179176135073275682047830158646166186219455501858043430015149954875638983273992343218902549273399966920607270367536538272153619563454556165662212204569236884132055210266234674368888655545543360509354597395076360295306179010510454556987491602045298838135569786000485200968716764129987281654417319877299729747255584053152276798520780115678738908135912993556450524275242422051515550874188815517773795804145614010189627143066939606718493033694741210559539542226991860238776534598940841424759346051625048172586111143637940517628065538334479349170092946237846769149237634519648064353841264919487542840460471428060619313010920760070460745606142515951987089420032902815347626040744747147830875162856560753004531399062314556129705596494330851404676379144349677645508076915067362151922971513252316151171125512125364117258607339191330131025105223263378738896799676459785688466194628912555695880598087908656983962042001470652070173801342496785362350500498098738465812562571011735115062354804722476659816504412569337303957900802718073025733878497413725473959921019630417499539208610615570708034254729235230829168311047437662846604961312813440807555588281604759970928786889112028897476500027631952480108394077591940995324630708671941451578600266824656215413881478453659372386720501129451673679215289659226308072649433060894789634104671276853167716008571557531749977741018990049860691059876337731412174896406700961579408302317283248613131350092921163874813967183679700330883978271254979120499223325301716366034425369927880748486531992887733234816629052545768326829282726452711843001659681821723582679730006973826823122204730783201427777280910719077290174732644194188730883537601971370083550567420789780073302812766457152641989020493121243970214930610137371878469279382580742028662124399085406281445293549107617174132788446763847827915574849057547801856999778591936250717814895005801006010101158712211169799579105970406809723175677833157000985025405615983272772549989743707732298601735817383427597670652219302089299902709168808029645367826900360677789846115276123182474705167220771571163576232853123842121531611530326951888345576603085276345013384295368284011908012447843477516164294681100749581242335720230514397299640742604209222682603549846690013081342333161941404979318357428720802027620047348201445747424180067750003627265239032429389966141054837253156402594308023095302628061171632925049504025333092407268997001703878170835406857442467500482562197079213626890791845924540861427195637194527143048601816022843388984645232716342154480638267185906741053255424454359430056328053761383824560237679620148885218213506803471047273512322889175822316982561963793099701641671735118130899670560033212130541436342791269468178066080188323807030055922672928853005203410932378241563492453846897226116780002778261579340063698275218942482467357369591861140264109787859733102561001568963427571986598945921645030342834560916345051667827876998771174300631986264690212000000449114270897962514498774923957034079543834663648769001870662579300023459902361243956452229466131089383410091967374828255632267935824978795730974677147537215338271114734793048857098082101760964617422865901220449089365634568769346566572159027710854794251000651984040315765114587039833786111554315921051786530253226282364382642456206503718225002127241224915332124950055208754979870643699924659717301953256317110900727874774139453846018156696367246167424701860121284728058757615097145066773467244067509049814132214815090059080869573679658802726938369818713513117084511623715439391892030218507262659178312070567682646378751896533408347985227355472030104817784968698250754274243922627019338533832850298178483939893006477452608776767452018549850358712915403858777274786065191502467210747265010262417770575066664417806484671589988207331740662180826195398216901470145792390340887388742354173753421922998724152059203595342471467939663597789349083876255591833035237065018404541233044211585852862185980995482763061071780583783577321813116956713664369481064943552382502929132855251677090219958394600164501920712158376383029760387267150328924462977278719209804655110177252567098569846119049947282509741819424881257844224471641748874630613998003285124087498734206610079858020428466080881041425703359468600264665869608091939042701145666366504049069528024243503489196630624911383722373513949359997065762000061817842320998131141737416131952497585587102042669648418131847326821032953402604966367185203838182133484955440379337446077759174430253310226263699046355762421138459421398496907102892197971288940886805283468532255616711820704118535970922499118600799166192349034092222710989546076162962804637250709535304967037801674618590558012075745671990452714775601419353055272841921438860842053249714314924821714206424075739661023886388843104408009428156196957256796522699072659182966753874626706644153271000902409152149943350082845092650535362492820336369905730786467641681393544588962035928930374005564728310997726006791497387458837990945109614182354278769447436876643126209848548645706900379837717553965629056138262297498344667535138325269468819447689977990673971525988729508008703970353480232473615669117548839697475701982683271514146333737754056216707342984070099313446385860383193906234992384426217848700327546662004155113582783438174708557421609563827541676513807492640791276355323667548040760423106391067232759789555717520315419891754723210367856375539302476055122915007234423514969013311713949914551565088072970064676820857602374633927722724362173662977364435994691250158545107566173642776804197107763278841935924480231760298127476670548776509207723079932700787593033196680452956152652674780138487938304296816096868355272661466660291267600550850368041890408281654257017204377441114763654748337683377102059568721799233980058048446576446708948593197030975413040758159779772240049922327895984857336394005346043472770496111227515458798843316815495500543503250196030744248321966202966995324740167456802522525679853163161171084496073227428876685893954604968854374394933976055426547451640488841360156871115570404216241681856359911872255990231384164370619727588510990738098807736774894608175531969985149552349434727914826138472297087098764929155252263860985922871394930092118006913557596276932726768389009778366834071795850804399776060503512242079654108648079842807768391283973148128553520186753361757882343999407692522393101695523962459594318296526553477928197617890751979948180333032842007908434607456175827126629814480960253959257920955138808787335234919637165201210368907624097896736052132538491944579495396341722193544951940647521176427119372548815216325890320666361852790185081458363045455850091699180733204687141359865333169279145118425012720779450805418310774817727673866286770743367415791702830224762053676621909787326408904386015490938653783746303145696390076187418214097117164199162169070922031361712560741008176707797279865596289963094051050843780634455001197819852287315953351991592039477657593322618595847378768253334045316777878030065737296661636581966043953813761378167479241536971448676587293218503328970024427931852758741656412951761339537390108484142653549140906334246870434323442132888017889204612057345561722042793414651063435194996160218781394905104297124770189955877679425008147087624367781070616838055916979058697945831485853456981531925701179032099683526253474075765464039025278965891001933558414128712795179061093816832965815959933102001302084773454788044359025806240339672806473303914326781253549197656409513996109384397011814508431066151046923197621193988373230452340587521404723721757177048302435554788264539159221727996998181048994694616867443001848799060351373651945256201073684667567054487897233219810093895307879475532893312822565754795883504307493308975820857654971784514189259599495020554907302377778297829225832831751061475275443630686740120668689603074985375615831980805047446909883403163001377902966809112323608995390831806498272598767179575671020308840765240035749255561547097186504691464391050557574043288059990557972183383436015177361771969893301340180026562374458273095078207305048542973431409123156869791883925561111273622733246572674603573371869420173087434973460859186532941344143924770597868875542244201563003995183473447118070240707168887629816478210341161031345153086497662470662471462829482343127183287964813590385545265114231894682720755795182931912118932051758550695927685981066424537195695737798873150940448250861474326690973437234842538788555739155583542388420413524752004620668276271277846773543178039883010527760085355406820094366887198066408928530605184949858092713959451891681932279197549030014265675013321681656665122375518724799650946297163587511349560284459318574720529057454611962399605593838662433800398955459137736579683545945815620890601629684741278314468712361101032225664648492322738785945791224986666370652604721385702311574113804534654351575000471798385916648212935309087497291049525400300616271469078452371219430547961667183044041858382969939139704908899340261896519647965245051956334693281331700024367573256512095219955529806515814774560679028240154405281062398463489864308494564500705520668088335085363997768463229330264182575103230523399109337229816420747411934344172683541231850640588769543095078608542882010350312167260293587624708995672611612961430225550366903597006334013945821860582310908116326050927368040200335612760812465793423524909096512649785138025917672470064485427240659710972928374996868880369308122032225387237441843569285231677559565686687671790922619225554086887892159692879851982769081006879632971508756179743059347803449111061301555052112730725804986762165603390761721033964595533210898549650849288715152762967533452322699582020721457487406318606268636405239015510742882991817338105088482409503058705802676839658616882483296174804329843423177972860898505297156801347636414503985209266667939456950458813786726965659913746861109532550930345609114855951666710145523918844220200590007507455503693454324989340743030748339683445522978545297973272882144187193066434722632437528649416624185760879430530619942285164276522654894600987400788036270521430729740315395702342206859328554262310678359560783625586240430241053393311886760977414532943045130220671719179567745828020994024345689204510177602833208742286126657239989899416216352284393433112737249171371950917610937805328854542410121458449052143715763261369261292786814967122287524308019568145902648769293458667723868638142298686940205417423688089659817935438619819069284752603858139149331828994070463039360981613346869736745135555561586381702217136725206576991462834454874202370745886024794671573448364318922190724945531839258618714504579943543589747789720033707476265521293974748590894069531354335330945236589493531924301798187633772743549263481477838885496455210167508877235829501168293791974214613960233317407524805178327584243056195706419604455979107197888167406909344443169437556650225797756601041495076201374910461345634555562737982497152326165072997422264889975069966487969503005627100586551402463292678145180331913757816452956870379178031388139477469232318674431817565300865040128076897773569914562182720632621098683250177346210888801068388739090611235174349486703200277283575912458436316994486721572793328601522421876022586565812160951406909795484684043298110625488305953511058578098912966454301208673644738560486984124255922821919163046151677966083085381500516551429313550781609929357712189224291207122888740983030400375442995926522550087241244873195770391826658082913539065224313067023908454718907542842233161060164987479055822176700509625557481204616098403464155014086107051064673389427814561012746110439277840302486796414202353574503186987265753341929542352133230800207902105791463992051129987021315088426197670887581053804167615154735055780316181444935159679922047825609244830714680582242528271212389976412501252908648733014193558713944392054583568178347156923847085814149253171987506146503359245425380508146082135073255823884219874982767639308974696229516360789678775610496700564546108598245766094843351342232929401844717968877650868226683861172555981897446251205768579162257281678992430501325925311527427621323493111141147963503844947909323902897131269104110032019852318718871461950435525703050775021056842591906592692756287634567082233543306464667561747606064619358567705442719888254732412471147442915318513411149506238664990572979796631609449445169200458080234868564628401712170334511383481547203841720547789487870290707938090800380400014694523152782726545725357355835765473133047489577772717254579070913978999866500402084105555547754963460783632227238436528189032552922889175239769799244396770544649624431426552570665929610041644762996388217453844030315934835709503747931050886450379647532423553313962489518951983970456261155797686006356023862425629534053736396421407940229227097886244727250541963776303760232288040422920740055271310126239640626907565152841601166060324391190477798993392629878202357992379784123200343752856425527500169304403031422347564454378815679793071593519824514621406342046331608033965051369578246344321661011156344241853046841878300627730567547357939023756566089569977787475971850506503195884781555926902537812726544671230558315734982295445610416179435100995803717782404968499640108455346102565397830156953828000788850176839412180444236258092391811245829931140267424896170103071300918183410539587655088824926051706558708639699400616393054398171664165906012914790116562242071303398137920054729251988730354490404735085379469058650091511623391909521474660503639070501364805621590482226827422243383360221855505239620943952747910614923385006951451335186561221415231182582389255748769483036472849307839900097359376653033923959241418703725336226443654708610202211047076088916239096058594101368673165550390926805751464210600932319159590190056340728078069659806938913261728187002629479579279337681140607619632362652820121631135609398019377425289821533424612273042907866874977975511010309613378631767820291190808020083864282230664623896752073365667313201593408340736108196280239669508242796087721714438619295074249808301870798395198148282840528801846318711669064377041090268722600823828567339980914434445289775679830205227287424133181526625424067242722526891804316403669526672059029518023941745308085677613046693432759150960798475091342124700695052823453278448632102985810796035656609287946733459472468317117698351664807663161938117992079996064000124159882008315383409994702055144355359723147502853990281264531561825087818824824919357008470569739657797034116216444407401360013245065388487513643168349886614631654195963420132264611500181123650950998189173826348580301253571747528140708924214222925540066616302576592681303690432054367254507394677753798565916061607573698803681634325919248081139720267350956057290338030493772534965843002644357924432012770409250988081963550317459473382149385752517793727200929360120639726291893253147275448752841289090914668199357683534341817046176568019564828074390660637269918382425093000802514946798140605716172233868708941616954600795582630315977383010036435920766487680945546645605386782876907288066072613971585622482144369307542162671469575158063451512842499798688355167195736110263798861694401221117384464459916376332195388147580350188084072666404441907433207100253039568631435812315289438254967362640109141525407692183647918989589227760979487198914278787114262846575900248583276097303403880304362892216696766744942722308782502097359888606156233648099902270022076315669927576513072656012538943192498750314909048511460460621916365130258025250754989773546056446312800661309972845826237325073780305313781436091113910484132010331641492905400551732254262011462743374264367934452116216544685302529980387395784486059323295787633529268005125286770822664141518932303689772548394079917629752439327095202848671309338912106105549327326047406676245872228182537006372299017593579821568619614160643652628191969058175032643381591159242299036005297614407931459817836382319278052443748171173254637169335366385238507267459099913314912790221629956196899388818378312890320696894566957332074197273888740103588401137009965590969852721557629759469551714868038627333579432196721062167008430104645012563760421717694362647650815942370195749361578521727149109164352050844604937679936823056636883255413232045707978864369350036055116031925691180485697601656258286762504126580146444984644766598047531272428416846239925784122804590428725608735126888318495090050055315333632078669218736666558913322148939759830518021467633830821163712256307602765409489499510106924202382186708336608834950961049525654611274037139279663221978187731518402176016268919936598941583238871640819834771504741794672205961198267013035774398929286978232654691232807419966678285719198020291724254459130899886121906285524070461213145103860085715809601168563579056721057674555298260475887856966015608693686373723914846492156453483086872905805108093259979580936048488926788011021894074821567833362991355715418216064900623752919310866994476532158074812616024812441020010104013663244565820782200897472498299926724285704654009562573587286677081612244136262777478537562197838044837570984660910131829519497027714283776789805701121212471395824400726355941020301736167833486371786551012544701538613087958521701963769292927092542015033858897750097548679610096186601937653198022151852755767566585633676894385238755227006302570890728148504740167009725463382054323375736592001021565857737474246110455439738480737599839716902904443199024360425791756322971862350512690387073395513551446943632691880627048263748930619582288641061718742063115138456383015307517091298885842969311417384869038491879607782978615449639540603322926512597569847703592812529380906071504223492392640251771208320353237652801784187727943238918208992125540262701460587486924462367230560170613996826695488331759481192497903461629688597110057691309382879387243789410531556450307814408676477322818566300413614304103521977607023868915189293455382949362765421553093607820214551437138576427452980221913081334068167167132408248827388603285125188282809169044084987011978592556240631687688101601706981571248527433702049411124416584245148262617042537186131001524319843661373222003441523153637376281048272209875820998548603115650510941763314719362599773284790891568109351606708891321742168966682096689787747582348673035126735136264957355253223977515051894814781284192947675377138707272786504756702704785120060815458514002079156196525478716333218521807571665506744672428566530895418669364749883769351134300664771587324722112213227942450178479691903288856194405982764329042234657925816464253221188844910228814615197113432190972347295470294739023458574171029344008377164826858404204343019031930312975176321731681358852347739961840481845747445335857750405230704943564972966435234593684858389901462242396987132488413322152891044785894712787638055957674069394080756055053979694147630446249485378821399259117701512839917575777039195712608393958135466416521767902590844210577285210449416384462198564660852559708857366286821668130153806464675840284828697155272151904056863996688374947163855009385816869235000066823255995965559023581065069435262340728198140489788574398366290461416467321492011338975667557245633961199119445246561278582233534191710003825778111912687119052276315512226943134934358411050001124404044992889562422766873326436946222833857630165402425795251760995555468939264358490392295135411405504454571677850509954457382524980681154358787958611660678854033704898779735258298645083457185153456109009045642961767395799525199313484943632652373450195403856114481784167893092963940378222336839847761412095020260525873573280496493274311555637744371991299636003506625156714232458241104263811829270966030602326187916063661160473258184450275922322450650044395696740240456173941707227054090412235893271166494271499907777313157500453978084471672783420385061742927638833698385421439118086496187477768481022748681827712271451019237702485111520407648479758926738454395270094070694503711877016830531893664583558407200574239545837048140381422720920422417526515792764794624795676933067740287987149049549573823193789704049125437026974624981036345345875141748105000575899346440693349172003349853256883744235958055475873482305160552038916917888881670828942548214204034500639861289183763021872871680967238281003742094688156569031246237250469237341277319260093616546261526875952113610416150089671050508727431107916484467520421088734638439778639839013025270176363349708742217039099247066663112479407584262960690710573362006565056014342576067483995797137006272441889229226617194461342623480629378548593316006380189785242085766465834976455435598693098961910858049824292625102709690734804523416565830934181262890861553709464954506583021034050784697304786010961077552682974951178221947518271904646079220127699019703779106661346844221944419334359665492814148272779369396158597470511473550133476514207764522409303796916841529967564816124479557412735775095015557402122830106120335595357254424089139641180593835514572464535064475043565062457911915209885542851165825821552387682494525202491824186800091006671854562307671324240633599683954668119484087493389629483884489970429880630607746144909504306265153740433183684017583326962815434229043993398093443688384830496580446260581320995354921322104846440071049331066435995127104190570762590431570844729559765491081742010254531095067093899347464758925097296687435377299869614287475592575078857282582457620832709983826917390367283093242909886747438584376349400370294267971512057168734367068350233208639862055424461487115443302630867471077613436876852302208026954782200729452494451625964141394795579489401199796296725325483328269238598742319685141719523447315209655734042422011794897625392815031683687729784442165824066176010425988462397319125526173217879027140831687711121010198717287880267472393367424927048525681554998318192767617937081565314227219959385253031281868909066722330823551379456806529282787242262770447974016242904663720695051772950836121055278843581083731418860989204593916714511935566283990526152414853636344595816143009155684805532516004220608107617525145922078417944034067051909724206314272854887550327288908645811820823296579182279118651012349335431122913221422122361722117231572682218669672806794565120534808021657221024122473901852167974463057383685285754186723447913914873786443618109278755798627120401585859586951450101039016584812941389338161808111433590059385331367606885207815616755385460769806094071227740797629499951124117162337242230208928262003922484630933524856923137259755705055511058065299936283924005365272554817944734988582388908749497984428429268369094114702151467502216013586287880556042608402166302495959301722186323470630518846393151203394968095745854592568362653574681687301626282095625757368339442561593249391234076730592888793434002712494920276248676687123296619986004575528852009358883426845585554894299062151494635343920565504095909110165283588259570208385511728852657403405483827902557118905066249711526285800101774011247127657076766738361797429023357016959305553844426874785898737694885207420823270566226857237252030967035879787239569293532950351607291699212057913707110137870010390366351457584644201504608700212678901807064683664511789726538005154253811942063990560275839218562690065939353145363007430941115912857794464762918765363963460342538260834253887944097647694828840127188475607902257118210305060104709530066626442736429530849401164466398910496551442201989896065697323995655337273600077047655091083480781182974421584087120342629415880138623335522975210397488197244843108535147211318084616147766453450005471889757193131816301791957976644517663834391443552546395588593840992795032055952046193419794648013801084965217349452340882185235824363017599030739410969377810061791572262255262489686716754877496018766386374770781365508784202340091529749934628994754970394137320174452556507349285832729918368142543819609347959623835034123007943162997017879967002401797734746768879299018597355806786082652598869242092546368657310261700870012907503596439494854942053849650203956708705508618998043640311895917004199199598372125843121792860182972897098005078047734760625010614203414488591474666622163227378051525539814021585306487326911655134060260703562954884773374943414857920039156007031237690010249981617019626087931449114412283265182340682898284389812256430327569115821170403199714465684133235797247613515286858139706179567367545425931367474646699214570004279012749170151146703002671448431675633383440517632466703647804135310025085831771977328704482918833403911424330847679456814832064680802733729312465430879884863956278160989034131029967894829360325779139757320899776567730469506350421706512000424879232410959636084922561054839724533293189177909748063319909428071823917382648084390702555009041456430419584647833254811302277585968204366279302832445119489802442950486886360772198469178660211753180785530890775225563669991889066063690194862795885452635275028218243796876878044073112699495345090423930257318764983303555556276623418762569533573100368345520841340950093587264445570918564633463584769561022712970611077313170900157679947606036351005783040152055117378093847127228314805213754568799679776335402586630528951293207719345653764837096717180615812983376080552340910092872066690421834998845837284319966394137075489706078094835141123929655589947892359151490076597716049773739293289762520603410111728522816794719124131979671648755696614085468641228993268046870254718151472647059965824974686316380236246433626672880505244184971045939492698375575581753347666131129619579262345753949600304948292392563544901722016441572718630160946522877309292080940952213722563411823347248710843146383544394524424968858512543253411529273035820372766223831939662945124159867260688679834637454371472426401913384549087960517265852619995680044554434839011785468358286695329217626265346906434813603185570741215594339769770738163884215487676495360566459793487850141325296593913620210649845806791086265034015221509694591697278681914621969856883854347033033616516914814851157235543209688464445546310054097591266863936206862572903330588901712725000071247011789387992070494549469823092848263814664449630607187076237526806218849872305267005172486003190085083065840663514428226618483253949585054943632772754251100218907544033442824955578298978636183956158847603939852392761145714351259409247144816217262987663109939325570739229699101080339776079342275895904636892369472405228353599380552501522181565035113482464827560224882381679901246123367001973870237499992180221372223291844054979959264116357978153289227584813737912655953226943637140813629056073429056803236481055616030750903886108635201152096158718071219503804680465316666165829059512629230325113269602919213586224281220098877084573843808343433992509650619769415746594499230234158329037602939990066081813448663710115727719292124431581654908271653524357652340174627700728404766410682135580214517743897265313057388191002252612520950317989617471273145862281903910336382794570127927577514257099978112596359032351952062374074652216998065466342917653153483933232194411902842348952215766975645160885997497567976128578957809511520997305326544717526948495877795419706412233066627504521548120016650022152259721288352701033318775650550664368534538585202606567623691168955585831227748268923280688082000146084358866533846431994881553956211357798937421595696285473694432595099027865417411979953699531905073070262064282383398711756789760477935013412201362572614223559823273441338584251581565544725981445974978204912317593629803746982601642495004933992208966063696539648118614239584768388615086167147437079875332689415201320884571068614509670545031811152184727529832415699125208676115672604454756911289844335904351670310534180522689615648218014785374383099924111003100685991118244640978777912272403676858439975630292747936113865960205181782559495858074846530810565130484533376298321234668751055604811854244288113648479494043139685123695819728788522520259543373306236504418510584185324754425228057672710553897874658775525004747326967037567716213360432942487218993714525606045542355740443278193564426923395492694707435785881571027575362415243834967699685141759714907652298903783595550060725706651866790251949950091528517443362809556311546241492696791697423222300761641111747491777235455452323205834823062082488804317891837667496809350865876723918001611082448988278264765880802985591108054969411918485594054643030926438363644053258717318546335692548107327257401131334464299049899020952376611013701453407993553422295487440164671217928324026281751743452799566796616157428110616270548821927128189523360218788818858435566375061660061146573712432728131275748474283277535926930422061428058865364242068123716446692176989203788738290940689115349897575220795104949450696201424941831951770929154865155216918840138173898501373928677856702471193447186104273410671723134764377295862442107030512910024005777887424572277863280413633715980621048777391998114214775544498131754501375045893598638108620442161164250226464654672991091261316862970142066301266394999447215385659820523788302732268449208826113683350476961482375821069325717274076454614915355865390224083336954266743197409735166608092047676419221490962402333488845010985695245111985664169396478672405112726102103858612711160204778616294848431084552287230023315470476777315052815602059864489210981703590692372958637918607725590573440374601898003887138296683518719660346219171164623569035630148818452336752542579579304715080452123744017572433015735228934626402823810071869226029414754575346833672576389180465641380927746099543028525844697654869919809748216498580657333991979597486472676995938782383949915997155532469298057775727424810147321584535285169155811463755378967349140396577062535986233874404525201570613394146740222250925032306788501772894155135267574365034616630385769055368080705448236012597052504979821580146438733602344895050215617744145279637519419506210879072050213899755539080217541761220857193219318357511397479264287030084961489141075939266819530209508466795774052764335144830496897197373891439676042021622223760847494902221880613096352386404912028421721393580239106090032658422847827135950005313933069228550950743401816170044812273187007428274194447161799917670507723496258107768962358535637199127437037896861563881034960375395214652272582603844900746571967772036403881307553521825254479958806518946831455828795425612304010810864051358745752547185923181027661868876886501669577376239723509085264916182437274892964436815934758818067611744099557946906087945809482792457676460070533385320810991184803167459232507166282501143021286635752643773384499373434137306332324409997673784780320477886342599047290521477396549995411079945161524063921111070739772381717176089189736873893939847647616188426120943049779379034862598752314975628148469304725322357337110735624102549588641310456479461173709632798393410782279375420690714926786751803977720399091528745154080791228974936833035189562542026636367225536168076181142986644901492400920150242326827081403533739280477659592612394710173265014093352529370462201770199447411922893092888954370172044355070810471422350040951877202593538610554712987892974635577901915014269758925426368264415451688205937156844801220752030216492337970585912712089448715584243060124881023642282978437650406906543362370322483649319875914054409306430582186180852979695906223958439996205850341157957803546131553438567516054401128412244606016761620579766748955837500311301568195058457140763618247444912167246684316774091786382510907435685921914091873518771531614217399007437118849161193652447114011252661740585784899829756464258980328519755981386331651636814624309809423791538579882177843647428045587156014621901959103496201027351500501382014364998196477331184767632558973158398909685095149482883039875976728935170282723058847079667969209558260817792835989770733342195711633081342841912660273456825919341969057454042456345081944387070666789206943992081461024297843662676350804037625821388998857757822193872472969735525331555465283938050114712291450342910233718645731580596518315919676581230562650517410557540313614070546176856683626831359143432836401184423131799786152739303940724703525426117664600314706828632974160214697379013006248398653659689208250124603877947491389809076013365367892481983129306725773941187584766509393743760574834773220420641981674709896419796593957932283947865732569807278577144128729796705313937801961255942371069723565094988317176627559854923215842746046847466317641896591092955684298632846881207356768703439466383355776469050389188509908048196757765413104269765206346292926193194350408912181225714874150748990993533782813248031580231677134995407154531202246505432851371198310692812237717472805581800736857692364355692040676343035571424354344090693348312671639238035294236497861838419922847492711636548545195957814642790464837195676388404588374642792597247484955288105668958325503030077880357506477157680863935884579221079208864701192983558450422238872905669172524369486461548932021041468226213606651530087831012158193930429301084775557731706923387630999762081692922002548499308798687509932060359939990666780910292253797321865712214291500169597405325796498296764217549034304595562858625803289831023468115236671057839028474343962157361020391153580326997914460601654933044337071672723774532716861897948775238679189344772311789454892379817605924700042208688151408681879351365081851248549275052218361222516478435518306168023873854659492418232845800800049791673157354548147712860049656451519865466577781477941009689884313953419248729510369981764836884890026180573657707733251925615890173525596372019781617735239448687619015631913716795880149250589509556777437869049477407315698875089090789841846623287568466509109911169885677375799378267198043197176507958929260503632715376903044955447808844991528144676667149550584855666168904197777665209760195072198646663098464137181340313292522064769696898861834439273567527411544128585460384890825598734645714724144702679508584504961926828248600863016734506351563092626079577025471240976828359613565829203504340533709840287931046636945337711217756311191280649908493132426687764622447947038667421088899262910659354994408154523776496653765184211490921632198247129180132435526855218282893918394672241421234043586045666184805784202295188124173409824682646917943262962764057413796506011851366160593027747878881385430525958256456635193136823193203267364929777211665646468693030997531623850833518996877240764480185510870141135447864881835654919316706908979406820735212864894917508948031543740949049145266904430937460702592557499297797552616339312561671732926438180241856535112973055132959579418812012157008538935063185356761982370637432445130274763241579741683818274144417821287610080693586023066905681613277029710474233807401113912525409043636885633617613798872745952231101018722515677036670379034832166547439702340720288443270767955030148641280970520301960224561088218161139168957853387341464051766772644814997799608733868286511283504121786654880210974192349273025969650474184670512821253202524476848507654394457525183090180192357169593566493612395102999472410119530745952088808735786167015744356373714002942928493736124730822958980496515746546078467957583915552818142663940583336764133929135392082611073959744924078294254116428025454705889068058391534520296139123822090585637674937748354130085901484658802505898554443748220882597662625478154980082838968871885823754458662876279068464221189885566411138129297384151766902271641987972053107131043345002750185687948488512503541650037281612659462220349177827129295671051079776515138141155324599676953276932195922802798616852419396971008827280227720042118475577140379407923399252212936250191195580330392546690493295886476283158494073527956584645789906872834567414672611875306439488194908306905019277064764021108427429170085526570286154100784989751882081875996326516925714614942745667512615822260956716537600578317744163444937495552073337499717652039556404962838658810201570637423749649442028951740790965240798856606901388314281793509107670216364223422740164210865086885696584960067753273772167953263623182108755137438971556787527707165681523372578345156120424476974788646632998243757503235837471705089952609458325080491547045351096030423292118337335700761588724504819291274722903388217182637694951077337582918728700589901924155100804646442121851153661654162972691906127043976261135392362259524099696270135549754900763025961324083071162152297397352818132817141289021605493895518383658320682044437332190115249681626566316003583155858945342290693333975686369043299620105436234260644670109951137904314262417618680091816229320491376479268594230859838000715969343383949300419197856586281743466682216978208907897724629930942465581256659167635872170446206832620713210138763806327503232665312479090196454645813418913235791840033866447748988987612801571498313410745523550290512759086129164981021490514149179398482509312086866915882157383390919007110170412141657501770866834080506117662116359363604803414451421256716824925060176488949945964372040299313718239784464187925335716608934463804609493905255340010039951176188828790258608781796760824624860539946153020927677244553497522309456591493259956904405795000138505865630821336274244944200206458980989515593593054164421744584725747684766810409377193733575089146565400678639550547543963047365272787923426254222704730648247845715621729514400975702249725955110707915743489725675975136501799755255048606571638786894152444153006617624974498919765466551647938418975785075704329692629336543822375774890876411467084012149940859102249906876830760254385609068825338660350230340093596259220217680319095030040913448520556268637539087663140389665754120700696001633378846120923014334091934083701714024526131765000175312178053895652257808513013991154045609534397299096113558372975562354506341261653155555719932915649358681821579028183242249371408103850945986019922029094661903567639723799084789571994645568063686095876081697116206815664036804987883744300466251201462809128778808118789988068231890029931988578633347981353610285192850224291758053678501623177941542633358387463614388060755743012301600421948040632961110677097516534552258179495334651329117918562185273801843721079286967441190643498331026523153960642658598619945906482404335281357502508365794250167833238988602330709270092553787108387691724206393102604362876957516605904821781913385735987368301863430525853241599805559811257754700466397669226969511755726342291132696593741528554713479824713344593471898452512408544049362173708627743523745388165576460994521275582384274967443962861814257346880698910817652730106532444088959146378449234626097745932780151394805237867148250988040245513890989396254598553623650786916235986451179603056175202841903025757592601132948185038505082521118231569211548104234625986468920813149568676504226068466598117353214342505589420490579334657949712909583619686035906772418366240237244137766138539116188933871550578563444573961703062343231131455524655994877759118304985436199929466804820311770578380175088891058500120875895663580878093545579375347256256408660752109666433177305031429177194921553724733374130706841680299777064950879017405748975184871393600553796941909937957775998670997513017320521819068862143786501820933378587492450518300600171224844312018343867567443821982089583595528185502801647047649887256302393048604680046475190455833430692236703656754290476005003607019206238965591862492559602259481864709640193384941000676845059168788361389955782033315086396521938304919091481536015455214787148605668449356922666080446188605022662504235793820246879977053129339287958580996701619848793555383213929339235577481934067750886693770959618511137867932495062759784065640661032295463622125589431872202747431243258140161612344701140206606677630783293260234625579193769626375845200029489596551807925732366562941333943826347276219837186597507468179027092512007741759503268306680565129143083978689918141779931038334184356986437746508387191863373981911602287148598046671237741194594701889056050635441999577705258008499496431055601854951316352875633342939954023993424110154864090825120185711073302089256239599399963379187673670012980323009242031831166965725816075977497289935535920613067660527053445537834096409394803898516548886752176769325147897713176728503161490878934343262364713836418513295017919930013105697360543533074974297541334839823279400685939975104417986865269809991927604831602707526096733510141514915111718224672613791984555378570978058281549898669477256936403350689304445227628709520834736356678375799711458838484483264836765429299537687045474533095463731282542183650099848998339268429234802402500465883985108569713505487470917988965000622603702723237071964247748538309504251946580990067914078152888911047112368527218933091013371284379469016815344451167148823926944509057623983390338240635767712145546111958263638355383335016770149367095438160661849590675663618353835473852180743353641619655877632126582241626800236469880237057420556352614517969329566695444123309983324483114907796804982876783667285898709555121701890374153183960740074982554995474542538466128155258621950951494526455481136555565384246824144925149038888889103514437800616855810889572467046806182086998233848093619727579804512732439580296470472791151680830302225479269611130378602995304323036890855006599387242867591653704639592297557020266361256221013837623325926816989387742316726220937043177710064900223325198114717791688593075288149148399648498512527643336555777574982506905546141406627368906047328611912975331834206867423072639946135209398841648640014201402856872907371187123341004948836948652704996315680030553813479264601003703359548283713620190447956150041160986304478944917826048701828015735634493878144855306110884963912895552301602444527290754526990159111888954584504727938872101597576615413369883844739340004232429331179088422893015918247030425791526927617543531871504979577097578962462663347976597364903071154161896838091574178320316325720036476071019929134141108703244425490827229929845957242946919109122512620512628293833221160150996733135128698812144216157101037576438991873690894794685388236817065629605022149233973227348600084124442657208303522713454906733568685249102747552028388577765519758140424801253465574818872131515105407921606022218378467114284111080061109394586470321836695838136918472458606765939504205852501993699356328193908915825168782125265575398720224738559193689990015977669526472419876488359222773213574286380423391132891071814488047767871192449096085520300738598561098781137994405332733822746350874840092860125302799578840393452531892320529917773606411406469875175531348520887886001136426199863380778207684067522514782836659959626273109093404103860285884957287291304329268358353039104073194921631376050315859034450400132940959428368815054888439094452500246362050016561219624106890222415008949041330841247115664366310416744710012966354727752442161819738363720210374891303244358762600567081755719682043097959862925125316133998397695422956337316766226065407037394583867908936436793363836318662325170382218832508288317054872246618344799055154543299369419017957193084544335779458596238839118564263604046853010727452633000934936953802059048150666141518237715935760557395809874404911149648499762034305885878738020316367072019815131821670788478941157143718646953251341477331054183183893182528389810256324571333122055581886421169721473834444567420006163484472319081272981877586444436505151819880569186570683762182886436015272322461568358617292060075523589167652838366267750147777824022508130453614859963506385491269644581933208890212748934577101265536240386445605529354053165715537384259836353779604615966392413449063292788081461090153308460499766069728507137560941529765092245289473693963782742769517516022203137087947070164431281896779612985387368095640008319547623248587881798486862833174662468618620036101643403462793180722655354130964421388321758977708624767072469923775904950707997831464553625424380766724363401693279497869735684846487254172419214938611518058053393993208270672057653629424304296328837644978344762426228024935454883973085459227227854297962175810555208655013278121655885317783226881580253462775117036800189413144024452169184955824726433706498557156689494167081527965453646088618864143690888372480010551346379506911278868200876712743411792808798606417444099386296436860954437390979490894165779879168343355930949543004538753984735971133875701050726898103439503220823603354015901977530612016365140325381462779945685795165146715217369488574523673276010084122966556016301708194412767114494624263631206811354651908797313274195459611571129033210611054678860393009601261833496439067033567986907780029114575902106200222323491329269722638395632465626352266474716037737045464334003721330629466570808045736089591703515033777316199347327617220960214171657797165038406897920064240193601314578211989217906824501838028842558552640446829223010329676889205238633896177260958909510053499396339997451570551036891955211878408708450611809819521044540255296847642135033100133626889519448712403566836787158588399034649900289522653125313197497909957260553697541425479938048697381292122709574247967323667536225881643300142464025069425386757698652272120556342355764351270756037059036422349109901055747035663126888569207433772176827514377994229309366146198734777374494827295985557262225218141668897339526428117025612470082898401932771212777230595059474488608708574887777787853805596234714098192588439237570035843090088586639733646973602700119459462087722513816941796519730783250593282819621078814361262839606373607366333294902887915379519864858528343534052001875526101500111500998081463457359136842786240285821610436687814852035265083356095183238285886769508651704817528999996876808115802965401125183903411153253255618604693880603171103123506766701909561518698205420205726892888034805297145203738332721616216264897953382251857660587579318110968412826297084771491886555587176710724710216463292790780769307794735122904890738949152583199089174378805687801527673964283479812007920720627499145733128660809202181444001966368332901687995021454229738386002600666131185694911169799151918511167760694738488176905706082170239034700915379078351099068931901691585448133634136539399403759248781488450826510396947753031079480140004173361134585626503601835100098817405443021546699248224552231563955195133533710679258349452358649959468140911590790720072960150448615755439011359607481890926008698345211705857815445231364609774385215598247131111609116916612124691985578612251900261649630558665779785632200888844310961843173534790758983549024440128601579686496843802157646290180526876019309920167277332849986139280882089543704294377522826242950009610893528914013511854433653106831887911640344689908997969953526224349877657524057545851118034569096703749297821446341992395170299524116903166885728901223653052601222106004446792709511811570206312736150088573710442156835634917633902384609298193693493026689523538167852609441678334148389434926860099129836574356123077193973109275928138946499648183230573275426304981600527323163965548753590691670494305924685938212418633124128996211119021208478348503922611483433737645950789487370674337218220665448503454597260245437041056315021162363017092319054408211114073432399566301259853290185422021529552278927433320123042214301641369684480363639739261802342573925086484293806457671882301264730073842401884285568607855895120425407860713028241155380412042069996767752985610012208220401070982443505818486347625794511868066898605750134250968673437213463653946444401857559215340114207465469860467007804973247454042597902506026343353786371780287387519858298450407007908452605314002244898432703634021743476232476111849682582903514435973066729923725632098433319711678923902285851814606596419318686505014572575187527496072112796022673671349359710973489761423420313188359710953049846752024525859689240314336877037858732497577558004525054655989211675305858366320903216125027488698201678213755182400706803230827008623806994599600600555012505191674081780167458874471353923984023244981274984830310643929640162172213626828149875487868495817249383173292775279536458134363054658301837590933620884584010551650226742010047077857745822531761957031775837100609621961635265379086472517629179125991564164044853127759332544355480984192400416121077201884806021122457725527942566319658529318558071041259349542552393358686674138077175969475354789265150918474645419269328471167790445425511250862049468758946708689593428702985952562958615061775990113425900497211950712906567156993411955058615272174541986699700750695504663187706565202326816364176135361614567879282288338052267811983192574026150377272643198731265390645886053708277174305689529740216482903406952440918144173076179764654386988770559008661694720599759022772432861247489302324449884056806725629818852202094728468090330712805827796111473084641235159974146449940381465397069378832109384301003544567944712714019095630134823567094638735280924863807037233779998388275749625965760877759765777152215592920435396387851615093180306126559213574303105315909450376059751725254417087363430863983489560004568517452924684636590290291433249115187999292391244464711568699698156054315995424048112261156416167010676843068754133282224244460212534614927848199206739066329269551965546992832812392663785391636806429734658278005319485898601859081094345221209432235889600597080096784511957956728684891396266682486152260285847512173191568213396596258944811608307279872538667851827238070786463538964808806282607361211980092510411897322714111138758999246559387493694058585951719911606254698869167542473874177726815357418773291390181699602765590836727711152811309014285649154912218234945044317208479014352099977946262426450851561552157886989419414903451898435249141925321630956172632914767319331606157182698093048902468831599236490446736776719467049819430339923316214699972681371739898192908583615747451199295213516326078584105942456260614533238978547694953719353127308797976334722013317404466837053242313325745665366446214763727460602255144972714876016784822020046183277789450925567287389917515579105665730469314204175041295115833660107578901813089924098053029646692733733091873811443435981399725321592673049666762734029897523328509442263416611028008152649420554647338758242728739990632334535235256565586180585607907902117204492663792532611001918072242561312068441227127597014899657107156340661187503897319619504632413213758569010278804085017188978181491822738614743266078081975721950945728573911999016598069641040053791273217070420661371541437171571337521897661020802585277580084507230634623595803612080404396107165388694148633128584238508830714399150518139270552890466650068541529700210110334486809734745278729180131799569373286070153832954439866617084788467830374589729694633759927248553898636348042675971805703461785193074355813261545123586253931882515393141545190554713237601305805956308986501286864197463368893644466986999003390409803777175083849944953019910748549171923118505387879092773561396025322354649176819807845774086009513163458376287958924711616294486849558228317626620789205483828389556283830233002262762050899451942747462949410944253535831576800331304551758912233457618533345591778326989766604294337726528222665863328996927896351483833618476987576946560673781025854816328832254545158304656268235941231664530457891987659764872464988924559584633539214974272789631158984132001081389074841059924587554496633427433354052475212378232349416227578956657288583797325038866011564489695743609153390575935485749284602381910956045805361317200700848238376931168832598013286250610787350384484270257500379916952457771452962205543539809399946877232515743806114823870193500702039481128202242542795314405988812529302590102047889816447183370207240267705916011355284416849483138239667028141131100472843233355438226991289274789041048700411420450192393721543306136631395178378265731799620310729627662551331659066860265774810245582396171039347877355558632386733288658759248159207320958954123338808407695039997519173953226079459063745753667427374987039442020138123891616303266183097447234287881275798316692449211135761219964469484618806018174486043546364357359066050583555017502564315184121848692386171833669220470508398632040413465484148856031771414321190860871622906973802896017430720279399843801480831659908589958976922473944329686956217401993765766478355829368651181193723323252216203349411273210761734219612119769654056009342031801822787812695543094828527675170800353397866464551486425867545588340677106471990986734509286194893667929487903502797368103487597905815990288059229227613761419134270134492319893680518886447919338904609176424317866863285176460834517488658361762791113808360149801873118931380481571509873023747685948229058271512688237810779633446102901323768385160555284328556787498785909127523556234320917870929638977126007066521100543323344040603702402124086532904840698834689770504279999508884231002567618946172322243687881384356868191882138654533132969919487521947534270825427783977520229415967262411808395101575902030141212545313714394120548885147549707586745761514049359971575457422421253702843037199553666693114099382419469884253564184694813362262011732160913495895096813795959497284885845307432570062149895199657244773889301011930960740807064289115622492103189464557634539804095088324303501297390824447927821165389291882673850962113798171045979640989330653946909005331941691721815097431907411072432048427904890551855992753632295481894240742566761735683457704870684057233706738577300122590659612891591596880733555581557092971679773014499781380160683126255411350856181458707328559715781725753896894664848177557557559325218495631680895102641244121723777306306680961957010720845724309208837957762093133904195837812133774636662322859085071623377323818354329368832765702744988951543794913293590562588558889711500834022761946754228121636885367084125774181440643936226018186460890621277252411948790765237952612504640786199437835420746998899173159484927500385503791713685289571104540278171803121482941624813128346701471281695458119220037231677347899418931053871668836565816789750005044529861831251877315160491701878238749843547151148412091707249629687557879667639980007539985024068932278546966864457691151247209666981647041519687195847383105796050324898314699703561501428886085963425891331994207044837512297531215454740475806464762988749233456872986132480463844778852747589717048646843001075100303729076364550938306489725749886914591806119297023912331352195179584225348464071487306021148746683737202217877772118963693999654320222816181756631633467714161846090234306154979259034708691449030712644606358271297929699939503574434240397348255831822728709422076942854785177960741676483861673784599593683284928051913954342423044552916105851815863731721533530092793262648649264678830490351984029833946731412643712357478080593297095714012193905718384088402135418118347442018080504429828149319163719520941968334836756608151451518592665299838144878562205129936195767846339134246509517624935887003283693951566228418514589973843889709106329341147978086226835750006126428964563763052356130691644608991230417938034222433163940390788574734582370972293278001842973005134912739178337124026938385013215768538773564877434791014446763318552000885695774829971107762699901149259411807247224445198413212964745229548796343911572845433818534619658374591116404417758613580417212713303085341384355628890125300767635156613303945520171312992857857159803991627243025296048680498042685043228480744384869220971778878447814779721388880061150410738267927252180120698975258620925274692156907408809487806032994174533704467875496019884563624314433778009380206120509900960671322492799651613190282698674693872861729965658884077446127944114042225935414175394617501736198313319187092103294102295133733381340039399291223765441933468433570800746856097792221758895039129983636479946766367829393100386742505584243665294902587488765966886186256413247423856336646762291468122386311159734250307406263828973319057073039023937270737379517523562823098491652627413864308244952507342596406994934971699193552797748058041512623757432596099135307251438053852335479366232011062481124143373217348509884808323534288595957076914762704549779446397183115589133634717702835817456397514171850050678787054902998468264070590780216461357982911082351430971220948364760933224678870521307258330968045376026976444344442456212568383156308936346788722145525827864868862693746748247299516160496011125961214450157797553369909795331149586809647472644469032330747129863296994555721877984882524948537888031897261442110709156574069291364280715765837130007725029459734600741691288912133702925062931982251863018467823976404513746378758002132186655806170220595383560140153431599167813067634826174903171254152174505458360795323121961766414062975604551188071032914187652286994249716313990977888732932433166244095572168313316482080038840155800205606727338418129169639931719769278596841516034800229186186421193361591764533822887439898873080837453125176731681662667898060157430069533065913527709602646273927943013953501634045355472467787239256665912448622472866928267767905287042559962839265317974845093987300933110947559098897448717452762981131743837189743760404716823873952645242215939828914181500982715100829464443775437806208515148646659558515882497632426893668839261738632337102359064995008042504968914284645960828891999211458655028746602552838982030297222075186718038443290372154278197034227007738427257787924342745815097980022444367304796857202881794464434953561549966801207305714761587210433738306526879777843743169064194444963300473981514509526504446637009371351967060633839211410594253230198183317324856224465442377466358067020771800422444014151967832863353852585529644241933988748537837917169312772947194782364185769559506179308921516664800415915600064739118072905971438867158351505748326547596331426038394032599154708613251588649302436327003021459123980082567050337764805379626978531926403090981250626600420846335214407684327497782725488648324883146763443282766050930881379697597437992361814225310172604993781830342894058424710715421497809391177686799064548476035200562403791842428489547819294540180690675285920370386055437681802868295214609539626407046133513782263175425466003215845487143066427608032616005143867370337822775791911027134065341617755642933786691830541797450977492662703920720034498910408097633320350269769329993739319603029040257916053350281138756240160151943004310384093874671897620158552221988643758851205361517575716960473183087616058915718460224977458022251729725017004766713661789922658155900755264360835911040244832548315993388390528018940793818328439754065533340023000129112328226952230148146313352143876789634025242460927041558982306447248198107413054621382228964649045516998649258865603049215977142603467992070501686106820135781516449173553613979729624693478424871782750532688777004518309782977978602410339737170377250035698239901631051166656340660165664376452343335680526004325217766121714601026329657500725013306794330551129945520432796798764019131209816479449766825601062825580055347951062723606854245838811121740260968051839493957433491550589430593770411465387896037417703890667380778653547435861076382685490009207932806544937925082281359343408637274652663759237308595716857712142792025253578397036611329969185974992502451566443613294727237043630625301415744491348606783416873025065052310600381173115999771478498972511274696527352602020355735761735774870079040783369960583309867795512239376228918224956081336689391523639575444737374688694951147747643337673367775895636272803657629360964178035543346378142857615396324309933275609851215760893015649982599715304806770679105439549109622543711820574964235877615502704418999854316457853549684366497285697986722808183654653133206858214149693708137149487159559248346000467584857056754828283751097984419637183279280456343506569103823493929646477006018490298006928887036407514344675112119322879717365863287862735023177783801887582059505433450663801519921467451893346503159811657976587201697816783553622389986517394984628713867859654266745969512116825220358005495854340487918824604254903331738534593104665410877544860011317301286826553194493986415876466954760221932190872917772805709444706263744697860989582386998845403568282964590558644884254243959687499014784251144031229155660659084264157924645393862911712567288591428240191742322992985889892909381780796057714689843450076345791311798792177956432316655082906583292035084605725090421735864674789816545330497446245429078333363414849784969598353321916129025213998188723325502562248951429684872819541554703992258590089784998746990520512464015920171405795614349582184841706745620971044047955476074267489258507456813642554823512781567725420746601852863579549362960153171429906554199157818578939434123938976513693369109039814954525726580351345927140075835435664621495287619412766110865061567373382533747771095028251586722415702352761690269205529026978389664178772962211910550790627503153387437004504956433516410896315872872855325939256819440120052745699596559802835115231052252470492959202000043664972092905731272750602998044511988226232252413873663221295276431270407088400783674769806129298961265995065407945694523904857264006596783300860073961222826373468930991407732810898529032038595672339264029640133210457238457800981676952336615095020861348694142799336146748179384548099023614010107490997923159683303399487281119868749494408001588781306970569302712217333967586920220930341545988238821948642168345290284233580711491481463665874297223899592808616491843166175036131370469226762849819510305976980366563146395065110034450551285387217875428951179776879527270771491848985855061108755497278509409296050972820599414395870613111387030555698886575464181625746901692986497412821999664561071633608191247541956451933693372314787231366488415972403113549157412637495468455721541334842928631405336398309534549713397669641499657398288012255332949684214754954701866951199989648115061253742535318077387469967316318764097257895209527713142108897799452915905174729850298026982713918709282479199703588357626979311345087211969371960188222894580956936827167290524571466451826737772069945992860841276404637095236704964333703389243234331704785216720799135282050872858356638966272629071694316163507723891665762670461541621499371666115637264042164015115801820228048932112372127063958528982131293689816271834379344282782613617775796471701071633835736816674518638013940757370530235972263538218702586117340102313068806502050995106516841870539022076820857043685828202958265718602729834498371757183639297853943151554637776013739464598592024095120782772931789946329481628373528585063416844238541572447179220220931444887262498448468791136279401454176916197371053494624623676474870297102271190378227745794996827126520364536806921642127198273456901679619210818411267872388800461096999747101503401907669854770939155500207883358410826293696050097136392639492442046653984895643817954494445908902041616438170824479223525355518448500233857128398541730333071643495867656899093776529432142573767834612442786513912715389320182114445672693244546082803938493826901686726689891701724594482307988323180223460328904441185862298922695088602824253708223306422925706682000990915550481488201036976197271090957348228513682616114799544660883662432647477713393389599475051558989606462818407675595568049887035092038171697163277336382279673877340660029670145860986761147130408380455013894835372621963680316657658418851438087987228456273987174134315256243960291625902052310331630174695821665066111068611008578104888039397476496924289368374439851032525808055020125907871010849856810158911456026835919671706505069128109729847485130166892844291249146071719475886318677768280062784345998857017966187315217611454804548271483545702998804976866600153302428229515935842631797315789974760555557390913472191048163761294829027999588726729270806447839493791770328097863638837391751078888968267045110319607999256746717325151205440246326735945122643446437259959772281718540781356050353440336939647775170361866461261497834014715565908783715113941230981858783958006478207527542291470509632939490768289709755182557204327645602657954984653331451187765884686255697068874226779763015759962626747880337330003133664910178850456350252310893996503823406999063306886724663790477030771926097151986382775207481364812986111620795269079706256814169029527289383582241691864838359590124014368090587150007665974269501352602054223077279722894556263426230655848868317085113180995644094443144283539874503258924792151501144644070835803047988860684745231351720391571891127719563241510275112306167190721114527978518793597357114607054641743427162633678194996361588592671430416301323221437317546728497124832320970667531168434793594345882332232852343397088740393606895681985270355288715577415302234112410065919590935555254072871820356885350186927968240637027189796284679168109664913248300728861688502458395266864997745954419436790212314768247269090875450663568038006675744667539930959198890196762513166409864854557332448297368329260321221133615842818256749185810677833464487551623713550366757964094747385262532943086770285362120386856933147241343390024987910283694881478004902681721808971166656665429559164684210288225134289286305070649976826147645999019712616192831887358461673344319935186046670463690581415111896927275744476661936152661445780251823653431493457628831193396315823451368126431859370916699043069912701980989409686588936896142454010096528443800805853313606501902783819525083764333048361686185995354896076113838235977823448049525330428455856688006763568975046979995981193855288934008363754772461039014968243632322466880726916623588636650786348997717902729908694721978295256223983165078673989042031376168897492866059652511943027789583290277892977049671132797450219562617004286974858285028289125726066870682843616965329116679865831374722234212908684713458536121194954598392598625686395634468207319759334765776395480783368811546633837052489236393854261789588332559611146442353235252126051502070144973178812728049230782659773265492130399356254894825954827683750822940322004086136618628139894059183575483689648627935795515554554349523734037824541908461986707694879847769625001172358722637789051350220077653651067431981319718749700549650577855565872632421245043020925988307389887409534642650471663825283620958341927718564663484493059733684840485988169087258473291829325505034037363290717371462559078032380008346888888357213214159185462709192055264302045362859265092804961395416620995046652135994180089513931981328285916191082786637386922788649000328262986526505339501717325880583959530381771565841244950455273042829185873616593881474654931889127871278415031859853980218092194996524691160128766140712334514021275698696075589172570991298382100021150623027998870165276737469657352495879879693281220113359120343343612885325213755458042131933742935901168340988094193667266134058879213851355775805338952443127987364644438726347307789472048656166915779156874279616792131138739848847877171623538056088442379252670089093092523151633993175060921693273469693226776352178546148445464134210351771290501185038677734042186505662793076224553883279128676599938450872625898638437232217623127971297644546380638468736194655496969879315097189603620224051061000149374213699234554441599726088048239541128062677225652703473083563906915142954856465343441313924112007441439834528588435277379171596147036312246140394601251297395579332238578837128434563997245504408907957966090429102504088567280778189894067870178107090180895057698261103267758772505188216235198907364792342756278348251767179851922685401826328599481866517999426779327270350375907222938504035599804578430784596156295189755921652076307508351523354954412244161925303086759142180881292760623769458546778279185452183353159966964064777360914917532980871197496542589594907164377455695620015041432302576230046794212189873340019540088831584090113027720171338968242671048739216999126461289993131715146397703927477864556004271172997985816159860279890668648342140704994302705631573870078178361146410307608574258721142949784711052025819113157941787221085080748832866379200474461158550960366237101575674947284419236289136571292489044654933717573033653705261316376426566916854542550916585461328029564693894279981104089881360474532954931983936362489739627308608408176752306715098589759548020702486348160892777132967976728434546331188680042453721899323064066206710598293565637790826366751655212212856130213310197859825504055768486848678100843115983304750026422978553138542802693848799701854918053555146992529025150266609015058130610872166648902807125560251675499181670630354825087533143151374266760921128455517632241119539999032080785931732065592962750556363820481111645734163496887925834420046407766965984474290832110804756364241032513925334226709457182351755048584957882030690387965782365436229536658736960220166376868273287147755634687006504725515777839167616459899814131254008535078654400771193315934361045146919468781740856303845681853902141784772393287245213591656659607715601373317187195819407649283725611315297443246983115900310262456184019971064320239384817363753443955099610766813358099520517114484173156618387437720661902265288281108487875920950251535969409107374228476279409207147682251755926986979636421722083687239298915136318530172247142565928913308935491525499380180956272631801041612998273235681721820147371017134312280850830380900635145663021925575265294467842227553884901739209243468655819350648648855685604865409561594504124770292584715675638740076917494728776454624885431517045861820883505403567700801373480991467902854158921322990144772675104223240930739810227484892875573714932315044265884004728371700802332097846813516736779897645307192636218720632180509056120080644325945702078172290017120815820347901156037706447726937190197340679157463389455325904952969720237404880034310117775369550351017982542932507433899929078648334492931295377965374737427054934742212853447963303205738593336449494697323534682787837015790261713391263038734583411654544197546743837418396883616093373943020014316726916310098047666723193441925396661242494243916354241375709210478303971300856000195459696789550799150988487502675942415923982643898194836492389179228331894867667719724259702258639641843108115579793831183764870537764413361224426159097784271206957156512637808273696094123836174086023241386678360669396195810024860191844458117231959646590313551205260336026600411212739153245260142902189008506874727345332246078027990205669452675867049643140597242563635654203657507603560994913681829213308908239881310910827800126738044363138213110043140024511072071434336360861766629400213544274071451099319104519429027606201634889516073753981201616711418857585042828477713165316172762851468439913333605545212503883285469168090149005971537819310278145306234662803721616948185078120685893188284469438209899058672228426498670977826094905349914124654050786586265270695158037650211147463864595238019853802610371008043194930875086063129891391670486436567531217382395184132207286981823839797865291306474380549290339523635429012829994983783873423758646782972960229107283485967440356588024425264746201797754210987364657025041096132133310966171327578285846031965049792041070554605513898112236353091403158630663975491261462592407137014570702004648711239801581182973149544881907406040137126447704833964330409971365173758567262880306697827753587896120268139530842578302389249827172651622329562175663800774743269645486074440390755448893258848027010660585644293622337205686111393278850259338949449257277578966207731663745192660470454050915290416923770117966130393800102258827723431977395838786567486772831339834394821632494507846834340116861023691800044807288794852768521285030759104412761535951990315247370649496248880085686723602886351284210086881840069768040676906632760913046917604832847547211069262517582031158298285141403583555751864776944936658555449626025857099496309929365075966315741816618797271607878465638122761766323114443689638930266745900180540580267403518945740505980793879230832034096192852163351014807557618251996042406404928334174226533866680074376151464325943715053222174827194725453614397120195216831731734430085064251505203694812623269710031178922403737553107914546190003043642782456745299699026642399430146908386347441456109328306756004552395925432349834830613691831237398447704814127106650453559846952146781731534782258355042200652792211338124043581865337507583041429648743632715751762919918189550619182183473288291064876806579556491883453154297233071369430318392492143226420142088706352428227953664496194763750946102452418244730945644087549539635037053528257492316260009567262942206952761236900438963740904055868315186371825883409179543820335920316175506435398311878909265184414159103953465810563829552826993275255366349670863601514586215928588208620906614918679438500558484846616723901498106429090392959358398918854349789804228475507688812041728922163424312903655847356877922221682190225637920357858930916565463833871207223999411778891782678021544520287585870713871825729823841378984990952349061314685413931166429332611985634847741579355012150622473491723470036049258579295710335348511417599125906239377977832237494755905410034367119538487674696067546018274805233138162777406685622383804250980473510174926647865886482110188949541512902034297340045513613938484050835002602903535658214801069844408351694916392968701224144975873379922515995786829185039978894889960985069982409181408819510066002241137321509393630616346242392557638929237728101307286956184575673346902145588483258386210977733602460946979338872474071722792386703076598510723589034370872328979805957516383078718099117325314970402240379358303660920988954354712464240356052046724522521302448393952774547481171465178874722235744416757774249544402992753751187911990993937849861894531498846738711116557009081173912460755014063789636092797278955322967748555852075128567954915179267480961936804822612133773676918764903359984172993856958237529719673625103828424501755094458640653838780831601443836883468365510830283101795898890692733820018268179988790311219662544564849160025713514249065997314105301145094670765622595416678137721493682426624426309992584810391519590617337863780686261288170078750793749273041413522903476026097951025724121049211789964421495797179401509646809681025158256517242181456173801483286553711667015424459319063087519476165082365765327263186824554112219251672353606132790377896634185009846618480274306980563364788002114618201057003966978112291681619295705867814185041617240461465818154847416056059711585473218369630872771871758213650115709421559380484925097067758312793301327942468773298170028085898760132574976653265808231568596411677982134563689904277989033791506985799173050152710376451834092596051270806662905902827448233753000671254674418193837707023108582796250671320713139500650054248162240209535219469017778682846588793076445495826622026809014860035489318723716156739139725855529664327845630906863504794267137683549335997347793868821538750795845519246517242924453075793545434174878187033525495774047733983244990547625329504500389416429468808312200555349387314723822613352580629113842952403650449665938147423328199469726273905068583191951802355418419979667092079796205183620317102907866226066745144258706921275013568126562577164674165429666989881245584216840054230359238850239744090604208844652455358653290517404931641246544692508461936585109813948777226672520357932387908793119239550362597611367629859529846885118053353696934035677991952838687255892319860000304597728005770498910599477970729119258452754820674419971208207369296668200953760753040995096888706734049112780597657373928030403145575243054542830368525910672085381909747780919328251004271166417598277962831438420791943284377605785937095675819433219133343057852020415949674305780110937273386689598688438411314117047170391000894927018939334688636141225434847289203231211194137093750999008482203299210296364224858209675444690051833159712300113759254214543138024589404405644664384916507382990480219176458782819889462015050691017900687994799047377621070160436275894388237527728910337665391347859599185370638610341141432861324407394121005035809043806860065784909677487825859285783876226699638031549043086704312908076758878166722795463651161020780134823543760601129887212519346387376005778963102095073667529805011743540398732444836404566788374933808300190714957875152719286896710576942171247216646787406527837451506163731548284724987554561354179358853265094817704208082985407852554764659378331414440436922270463452027330582941205082527927260302992340972436085585483905548128484993993816847378231944499029529347928986322705847364245649450662217783243048951578263358863895405643614514564024792640166378868455117283252651519900315548631829371492172757242180740349709305546636272282029429437779838171088156079618217860753395233610455518419891402971615934194607272958775035813651861228173201222484471012180979369031863542694354140197415717354231196647677695494716261899359552300500602396591087630987218335432443216624724631339527457527054952284632817156294792815038155224550604382380547156876003079819997622345262564909563042766896502961709839738207710257929063586178520980984149130931696085957100824229653463467595894472104344485466026607663591323742421314893287245638151987408477242726297845352981987066383534279496518787019110754612637736309512082954214341810145668481874071821815721730242306040426640311840202231985692288069900733316770841220580955994219426534439684887838128286417046338342130734997782922124368660879719806029553909558001831338636733643093910175492706152515584064618405118883373821784252814843350912055111029363366760692758921354974936345464102631709743462365220574785926434787031082362832599829584793767042511656241054258606740387634162149428177917108032385045834738956393569578530217477866325778686386871598393212716673003628939939779602435270862105770778433269885911233067868108308334406757588168168186898618334033518638434043667437817562682053320564488749976272490583375881445400602629259096310479189045033901063491909912995567304407816342302194893662012902074869276772222887278735152308187922579833130065385231844545395393270456118621073632873636361704514055883068392814359481811982345487965076231494761198092017463856636893948645796000863335603676684797710333881546903619401895161164621032963439073220007903785687508785122883183344040416007455367272968015027620537363409706551400735291214481872015513007915053631770057429854266436706079628353018526863959520287140563450288897610345696607558421826722815491841729739946626217690048419136646078227620751088231588688794302104448734184597319475000912980030124972925677366419822445142091437551420884914465021724546220851119881719054726443486993237627504452131061453563329719723284671234853504003397197539649030723619780714686984833101095065601968806481204750957737253446838487747997599370975812260927350869956350229918174762174315731050999425428118470718540073386583646835010512623264980250371306229375770243736126470835931520888254519222183680440494197472132399090287870656355689615724427488029305783794436888643328570158928586455017968300354755028780682534092381294939369040655226651542045343949367997825787215091607001743723120270345444902648049820739370361342694639898049779526517674791599285952793394232698840762267979467348603935436817039690533511157016311355797154423493579829169752369092703858131841671410546787288744692356751702217622729528341184206508241702942433260749076892980812267549307836136919951276676417577141866461719343568051932908232642022512198565440904859016195027775957312497528346905800060539004400119048632806658771912569717412861345043443537838333666235245563321804847968520758095129275489468124435603987841454193653196403390053075536044111640643865149889745738339892596806418844916874112022274726439142545513294403851523010992133030887801796156728151091012127652772873872700600805236890397487749457230264215372537349929474301166143405376136345727471400133129704426497919117995900082099209166561644113420551202132757432194818442533817847964155718373836161168882915276023525292361562656743195415286667107717160887361839900478728720627201628534114553467158767588499865231179144998842017993176682601945522533423946627842412304753481450507636101654049387424073849867603780669724698272629212074909602656201918355548810436393775293417224320994265660832213024271965763646930170410740364596001623547514646555786971795937546152504139944004058145022045925287906441655079469222102852412801722785102542009584198282577976728484631722552366392455232322635777524879513621648897631866204368429902851892175816771999065115072166857498439675740239571434505985912133324421274221973434746939487231269363719573606716350002765059041274083484261047895452168546721513552848377211573651334308814899922196741791330282450519587883769092979486457445322060409323941163926171693053737700514382424517424666150122007583514456028269171786198523365961979904851405422296467438436350937947169004155475290395008481948111349715126637106643220333169605946403290291118892158027330411932391752943684381178556247301714502791003744221182982717281940718550031614920478664466342665765030618345764772983742511426640166686861650233497558438790048380005754179643717862078917345611789644881237819219983746746847671767302541310743168296039264980715885982927048650148957195838553427516604596557426935531716583914505968923527991918449947008577553772364915602274037985526380268126086243836302345046490548667150672856875384952529349575086909024116524962722421696851157721624048210649681101926012322863359232358296870081722014269333666516690602959529321842834759006149105007676806123652094469550850771671803277977118471499299672598723416405628018852300849973409560646998873229080179823141845447057931166201773632837508243871947371547284190614772832906269138430419975568869556124880797355213321801964830419763153841896821688627142560235646276537342101912998548540867356703603766100449291072498251243272631752627044389509191743071403632386236486281690337493486246725067253763674558473049024714034524776583840928608595143246843578470728826556126352843131878924885590740464323239370386155086195040451642970698590715016789232323176480456725669803003499973768404375037490837766998510991338423080530505549218756898715180475201242834001479466506241679080959660518628597683547326368958879636815880524174236156781160093873210093653204028353920099327599875009198971288535757832057759051951195203007693908642078389483728400171939341065935119323959222619590046369761136861731871670007838507227599003913638637489629223788749945638464908855349738503035679945873508585530808534675880208131368882998278578074512677325922921269470236033467599234630756983691486359793181564808377571692199221405223358848438993771086091718571292276062611698922119314955203235355166364841359269083631152613269566183754484839778355768360737431781844070957199585300319293819586097960528027961200979811143927113456279817404177469151510200273003405887366954628062313757653208897649952289575204269530782202890344430061193706887749728006874381826973388345022880204693264364853906766404473214712955095185383466966179657542519282943460565770265358256857610990715882141071036056433039645431346329122772557817782709775125884175388602954718371145958686503911594289848893521358145424514089506362741437309697591272178298013510266767731903287619926682184833264715077633996139319252095578050261875790006010346316068521511958880224282009356508215699840534102978843435999263841761073995988645521768201255076853024069168591870185744856602969431509380211909150134208001610966749697873213387722854751225425137150054990704291381471589376447102365222503898439335255244435825041565680429902087720938277445776160833613758667327995686400563373893097420814165276071947998495968050133579086400897464351052702095071994395386540220577371308330407857503776575237794384865923379961519823848978797430052952323931905970827122184127809338114591063348765661173113188206940142380810022709499289002685881236623474110453135059095928983042254145659151595077859570425842799107017673221845344502025498194949060741758201554844636404447012920297629729616289119277851325944375292219651757665739600434647194616336022278410177217549910767820219210570310985591319993996316811063885767669757272077515362301824837463784963856460592450909827373645628185131488338543196634811248870368535793753523841633734046489000479890592167470308600328946535306599449679084108356790722078684496554870084111009279114181550238877611776354427292496370847971723291553994521169185767644231955476857748214823941306725813745991801648206317712206875335737618094004174772980547457562577976909780595394908548781374884043110307621900012598177765929138411374522823553318057488943164942221695008471625548000048383699316696754884601910961394926553410938865147401374677820277692481815217030819576090418482041811028023051546987722781844037187324977977263492221777505741654730305398649759408918561223553199327808960373006359525262975716778060733487890654149573426014863707745214735457266408554372659272493779213077832987877958627837122888620887961063002243464459111450832594674488394210219704396975205403841381588681059053236780842543110953474127425529174235687222659323064371552173604116604503571258441699117556660760428619049334789860638885112955680536660411948591761959851952952136177231301314148048576283018811036741596270981414789735977540880276902306042341545881867369634187845862540313861529810266777376707678056608488599296666366965803861735948015714658029205849678054024764413122280618137497116661709755379809213563745617081424369386316082723038820967731984177176147384046723808381272723824145924996920345640672707086734516514254371120962141586764705791171275621461691302090588001498268852613076771499356246504163442838554173124650569924227913679335954214865224390854095828745029287481209447189551802720239459279406798060379042112810352634527575989740938870415311644416148893306556004894568196030862547738577167309241054997094395960264558229807738220409357071430448154597117810087246847930174435307159964143625285270326599342365662948930021388093916188871644566893509084059642571737037557912147920185594673521191871830594042489195529703699369243590632975360827999729522247996152240914088781367435693949872967332332414861765881426662695416193573110538274697707129885513801110658544627272550242966359155216793571770393237961989786463397578824109715309164000605194866649688333623183768564268530829106699788690873227342009636292321102031538851384215502597019578754441088040504262376959466145642579548842699782771244643238549931050010777982608472338185220564207004249143180988188407854200786838644286964130754612747809759703200346651489103981694392799116276634808769203241224580233452088496945326818080388008897489770141006071716854440388837780287038628645033493615565482389681469623112192202129394813394235939869731421243804108800908310380027047923644521828939525095961571798017545741700310311915760449302349011225540654740121832190992504294225630487642619133445581833318775425451790244755673212566559283747345916836256281979521780440354782929187825741202980250145041840123222297356391033856783439468081010284463122325812662078812214053168683317167594660149596473939847829431952488181775286217130431749828663216449014597894043821018824612531612887265644443568127434496026264139952431171884668197792690036054421303661183165353689884264068475392872545615110588093044342565212540124419287282535974464115582713163058410112816194997697700560200975615246249091269636266578077212445874201708549097773658744813126351566827950826125848794404893903561885907822650334620047416789652449972550997014489191706688641994792381911175819335142866430366233296216736911735928325483310260023288255201846126576841177841373914866299041290668974559477932603527757727369371681860392516393012068611127364752739574762135612693285317026725669546570884900579332378961150676422401222004720223534411460350687825604805289191365926647123880255782057399023260907055489484119017187474996291326051124275321760804107750792164297064926877458547192870136698513908874930332499497746847434079278906991710844234337156630615376799474251166770026781800544889850541498442437503109100402383307354959765667653851724579959578702889595363206994530631042602340619727796539825941838276977210545857125054883824489324857047949140836955799998605814666757481750382221388012389166722210672389664446130820658221712733378304857465165707324603426900491812684816894057239531265001276328142237225839500588438634532045484831128839448405704359662788246750833260059346147991998548292328459694423887361568889669564972106889329091629503010332340506093613955546304618378240291918564501735672698023868421241041538066541578618374325098049384400816789554879107139076760968199961602369408158488584488346458293376754504226595922138463328528144246890164872086965438660758314298787393341672946873214193144926343845766066162638072348987493112997459547290556961754091667264087504965436054762321676806884898507745914048204067246852698469427337142428250721284478855857358067307635932250777806812883246452957001717634442148139619320230607585586345850350463529644279321354899009642163109381931004494703657974719769623776600309306934137598715198689413123560720285645476817548548723693585687695813612285412597257691490409272442204267906493655205130685391492303883231759400662883292151063656032113798737567929420477012594561075562039628249930199140632730278828635981272478765477423036350242677656467872465119791536252435356226917166184313690659187171737440534097022686027234671834068145140203578906794054589851674363982611184788580158485916673251813897903637364557840905404441670734413394669363891334128553359692100256210209130207789351969714863181125626358715434646201000252856385538054113390609055448016397204483468772695304054618853593730501603273629004383391817903735907915562614179491331067295990575428217826153040048272947580421490324653654914237371043356822279291798758788318848259164202798099539730460096371840584011840463696983556137592183001378081119198420538050751248630281385787835466214539155695635050116530267435786447158411593803913125089333661297359909696616872334347597556790001791540216564410640306055007623627709362829476580961094231752714566707209013626350602403286916386553871913451529955325669759974204216835609255454523072707318706599690682291247291198799874294956690437479225786256761930984140825592912293208361084507397113896387993451875460356333562204837686738754455769167360653608081054923020554242287772668402511763063011628603830539235718348167795325911921181428791017509384390721163599477968315078364227442777177722902641574654187978997469459606999445976827659568828120216583598761693134785272935468210264026572664959164838179404646608591286834107230694480243049767568008312480387607238740052155223093347093214724570941100945611520175237325309243883909405742005534921929567485048472296762503857937133895988284430360594626966179918877133405955567415514843891237078527269971134512744646052359710896451623829922650506781539034908133370118627730980027120215689961246333062953618305884670345436281673655676082387560523548948309820101375098488952369995034650941936271203309813420698895718975864125176465166127289729134031424417074938345665763411067491423438792757878830319453269065017818496848522117333633082260451096222944459797517551860416146970427620095943717973914662445376843711744006406875532385327104048170982310257490619776102866294950214560061011020892962917741221196186954705058921545564202413522635186685705433109586522177149628945306228509328269345868209104798741241225251081895095985013216777771603121909512226857410900891265432912089148009808063881246535919744640590511597534461958326549705161108244767812144076691490156108349232548771741816574064070595514056652289920542190550438980393401651023965740232963074387113826584770969710717572785693215325186129510258239888734487760928022904841177514116072685016847967522336878661536113530809237396512986394029204355626406662237575082281760409526398257688359022539470783293036788762813150123056904503547881413186057216500669844009609908065347560123471318236447407308491875719578763678546482788370315673304991063062994017374611655408067433819951501039095202825050236384199699547465831430718129857867063964500795006657755730350739753091081615355340758480482416819011058689519046594102518603529748814688143781546009894671990644142349800730980391619152354971234507479555057403356473870607878662122225655557725400276026193259103051218633573392516341087981086753903316395916064588488403717465442114741534365191509257893891845078663524816891715202125070548871975528616213022893183541844956297993934276433045393473201920447955860630692685012272683999109536587761923274802939227758300671797594902269306228441996472818500152775641457025035152622253433328342915937991928312705964929108819115663650555105974577708601626564412462803363547022935577800575906332697498498272187445245433351144755689456333977257987911209305566343877911796584832789004668852039307019880908898368576857300699482393223565366457612345634812245211895366629336586515541211844880209711587130786681933091745593318209982610652851677444885338039506098142704484309192044884186633075275843850021762478229153754544128370825667780574806428339323424995157624586407876498301709519425554722131555403942242934864384768009536031784431610522435858911797714991554538950753571868342501588083468470215487563160706003647089199858508839269142943813513218304872796438541155757163809957730304549199894586352245499538082126478397600278202714710472155510908675621724700908926400219487946220350158077806355075833179474540367308908919444740233175860325266561558639390442826318415842051622375849936343471906514903195010100885384369846338937844818456075435485659662560942807966947997772332603836159214492261127990731321080732348705542288296505828228209187377317098607700091578605923805394030526242129590803934435152136355174547083429603946551682272363671314251470071626684209913019761686277415618455850383528194614640146688129525865716349404688282847680563782708948897984109689269760579227954591023399748439946834859985989906077254788730046120405516252187721412965405171419292834725137461794778574309142531016829704644239285796018658134789590868557257510433211429028952371507667007255819184515863752851352520260654764222110319267243732447921907301781674767896990860006028658882137383937200529927739167474334408869185907802903061846787043021500990792185681711559710966577618930169835572681918770152580700083192194850481182493070762298741243730152990177431883370917996175603342438352661540912198715536024489462119976322366643098264233132101591944426129569280101798026520837723806862734734343012097577237940232031120680450638884077823252632466504038507104865345643040690092226909326136403837036325805842092904295665211969814279751605265303994927676425978818410254214832271743812068941835760030878495568281465550128475849190292699129484856017179021125767057237429935286695243519748407713059827221741972820281443629177183228580766461019903819402449481082708317299896260397534699580012302282055369774359003981351231313504670559950286129112607079670620166342157201530898671947563915330688883109910598410610178324538523671836039815517556219322241995614629479901486183013094834611839499192096801966468712438325945446425689830653635944455670479125912540016830304894820205370238816190448881897465023314466360292661814768514933631946094764679615267476997453937719423877088947435965001936357690201656503243705713171971418363088017106201766706906632393062033875566252910410694529642636842301259158487000580838733303612638194272359888055561241312842346903669848904932597106388440673911376775081705187007471104759091195364056454024374130944658110247454357004014162722107322863601699604076582937528194139668337594106836299971107407080680110012412675271697407752720418458762036730847281594328827675191673278239232180279448353635666410312973710328244924034651238728726165857103547164950679019977685160184425414466550019444953821080067634307305433543269478908987753412193101881525362945613372941264351654258385514852925083259290964456861228827778083752025303652162066044080060303182197452755025873070290903410292939718048933251292884469925459315738277962947751867487985187249635021878014222064254018688481010539981151736231144371526150518677650511336823682180610016559323490854302796420580767856547800393183089748927304006589693599289328006957453615676609224894293079913798946368272292584191368019261114401028320966724873188587077954420418729460788436805087538813077984483166900244392501784637292076811583414886745397639100298912539304635920788100222090156098976265652432414140217386824735841098007002606972417689937021973805796081180320212470940005448436415154910112739996607894115180113142549489729594341741362578200714467473203124525057196025363093238179354723921902048751458187069040909388333712667164501501674341687726910658686389451848805520120046991304093575795213449650323042707053368371021216469609244141476803562452236717860802372058175018649558695987601326148861772187981752328914378703031626945106568867841172715664848966783398629147551556216848462952539295301891800884688523337378534828605469934396189071127278507906240995700061836375491901225990477325853366620295037049304852922912178382401521055181422179014709110531369131315026884744972404949174923860792452739828277486539921389902312075433758035713533799296122835004499914566613129097851388474167815136279906394321003513257624280674079988946457514948914242934611771765130048543631649820917387013207605216458252879246229711845158492997578903606926944456164107456960556972638062420341913812347543223377567051074438136856036031391886238614287220972651092746004811311963093628046845674145608064159046148655956691257695491992351479726466524084497033671908468182617379339876609788948970228276105608515051937750433020174526971812993337907809899119341065954992087257349257142268038505696267610269079277994719239610360156952888598460723569978929326239843251640267711924796776494822194006291271539279147551270075151721721371826424881551015506988064646280558622196274682593101561903961415603841487056649605076804662598896432385760420970880885829838407295120432818531252548066900211793952737840916453552141782635432351934847274608667075213639164492018184781524802004741109460771068904925846622112374038599977976343909908705101429206634306981800197850484331942102097835836155348960321956517309710417048364850775183666526631844407042268317549856284045647689235829155418791916290203265380869349017988656510460092116950623279701104859678418335771496012650333330227067826226940464870632120621465351375938771066169122357599807172923801391516303284037399133136696737923768871621145173721932381904989855053241478870159957859998459559174493238113251582711765252345080769558914611782566199587267348626867571445481209705430985129456067096915046082444558640023961589956589655882265129850472070908114986530568596434331916766379032936227007837949163217191919496656062995815369975300581976017722831961395016966826896288038196199873228965437504239671984513558620260443440071860845603812168964034360313939385951144327554660521006983580005764072477625640783164435738476311063314505619664965089480113974042561984932981158710116767275633157008381861247693079848908588164941478655054060802324027500769725726130904537689925047322553722920022057722110159614876190860718612868566159966299697396847473140698512784836185517464563665247382998921117929962053266712698157009872113463376653232215669509207990051638989019769758678165590384213846329553990394533763489898156596197206849738694973224931636501235579981106787859586469097479004475311049934394824036020950892078546150706283440364483302518627499499458601788508798718450337586341182776858726939422937824438539920537174977636867540806054948274561205337953618941302564409053896615717730705863471397271586258964495921391217248742410705885802748972816332856907757981481831553195894636260544699840545645786147865210942209943241816015900065080583013498912971238245188119737772942773527514085373191215496419359246354218140505390580463319711286140687941710698224342409212421248479521503998379781412582472880934127974679036916519780682982894283358350491982061534333690873153827036652099754339928642814153647676397536170466128004407641420224923287525549969797634640828816642719276161549465895085362484394959140946620878305055002943196292517773483409400453382997790826145196067780301054844395795221834188981733782994513130450917357957306610888499766618331606691139945065462868625360035275771355112090124449176196692368765966317793302311383714955616440797671679344367931128479757874511703584675673655244103133556719893347915455825741367810494671039858506235873479219279042837226003303290434920525343795797181547629233673322454168681206862582498730385792923302980389665392755890303046989056746497950922542725233932879431217688768299305514541466529383164183299306384678787562831396628124448407472139452131284207384318714604349722118940782010721512716991984097773451141365789125631139799296439572634854754015211730509095727994973586425145895972189317189730582710132797362882916831095034325663617312126875847299048320940035880345537472915743683279011283739212164116466688991476391069755422114090639220986692764479340259858481204792487631679455532486654672244169626345601179067642219242381210882765947618201382337331201554381622158363382152670220895893029276554858295485204021174158722600845197546232999718161234588919510894708387303365890471081589768660877170387934399250370673182250049900118114802517108408774930249294171158058910312174256088991258362256516816983929452119811309582822678596029467887738754994298326544933205810366901209807380235946576623736565488416979330509805607090121185340200583465463200109452864801313635561572123754593395561131231823596848848634696738368823105901543264980358029251959198164037902947071519764849254735305574984806128805754230192550266602061955206486953077531221321511030033716962497429363719337092089266568226860360678148766758342267683938502655321233104379682818555451975019563519195849568751514119946094680424239387078860340755878738619476672716291348602240159065899414829397290937037446214241534525420050118656571912752425803235354276512340544621813797832282041704463217367460945490862165488013937063307819338686115461781358734107292705973134655663044347806464721537698838895714243538241165086634073238867160776773129716334251158885943981690477844381478701927149587869850490053879743253242605956449447999333905994800433818994600149481369835171416655021076864855035230713759591591257749566789779051156512771922740432620462347706142414573365873218146220053426238468137574357623824641131346349162964534996968368865026826835189795570127344471117995424336615566500254987758050327992785431573797069967267960246823752232251812506140191520777600832156978683779198569517101587152981363183694749785865017650717800197237967401010953134935405989465000897845266431145873938746085173371182963754540965073493662812438618388675734016423442707905258856608610258053644162432766799645693362810247421687390084751544016723084119662925110885276647764060963574174049852461883170177765068458018687638773234026406616285826209914200133248182429396253254267479606504253250352545321074421786199162034915571266036852374349995646634595593989488580210420549411280682658963527584998367890416986898464506558458653249376512394944218347563718475926558789701028214386528797688583354139692329461717833830857884589713500795401522317722058385910939180764603409410177923144084259712824162452603564922812509985753707634954947797020570938070592710541384060995810704007313179932027892970849623764248131431415258652670076203897350638484549298003467297017613810952794943205309550741022594956090999407625332313083587243473111130369035831377272740209648156509844899081847213416139936317847256167834508970836441917240707793020798896743009279889522075584176915924037277151109259292386520316013852849536801692753104100575560179344509873900080822379536178286352268139789976939539627299389037258876721241468008361005435444588677165472829629860934353273827984399783600255385906389558722914406307536241247926612731744463357634630652565816161243094348326164364603933492566036962821265856568943422640596771366886602698740303255118472412823407317128685254578273543986701231713084706106371182246850347673301228675684431121366236067420053113446718827739801076823648021191921320513289760754883288037139432600200554579435034596363185463250094465343755409753460621290281265060924657645917731472243262742144856407169220518199788988261609736197405471398082158951346877233288578900066510711759086781165388137491144168146697329620892992098156810448095624932401747830251366326535334999883671041714186107703607055246628885408171010793721983558219519931283591617571106224162898016289915357257179892494615114020992658181542991924222975270937864743974412399890454217824871736163968117559722968218241968134029064460934291990787041709670014547542150726175876684222584466689802063813005451209918756595914883387241512209961017164793950252325775150710591138954420953578539191828034855355158383424512406635322858165124880257948335727809957078245270312743652508922469121483140490418936003504475345464585643971899576590812071212538166438715099647116170696937436807097787408165762512513141676627941929790086488277600044312814623358084595373485383396030109982368155530849679089309409165440327169690548836065009793838580205509326391197279686437485342524297417111882186083134394500241673403652507880346638584219259389924370764735415979902476622667658887676513184979106672422381158065817902787232074780599704736754157765222976821432907581203226460434640460401220969590978921998419498035682108032328428344135676225939390240986551511341706625232331584357371446178802829989609886431827239531943676524252273474363509444660825978637709431743041423478841322654639998331805399366631101374436523875718550320639635465088330973639678983328644838719673271000431068319050964967959331486126538595966861506044470578639385734765500984992331810095159210718013167208121680626752262132490439363238152032778892230632283413225087560192731588137639851536393497689812780187970604891339954363643127967696030321255300277323934698438527716675373398866577777962334624059430182941580590990062391568711655063695797408476708109610208980494066761229053602170624437092790066242501371056833181567912343136298189263113427058348106532698173835625703966338619544696059898800804152814908315918636644403411649281298291784046138451816159167698478991110630015201125401169025185816320624962706937227215462885313540342470583167308164446264688146372262171887969880559164154233636749946688133854946701245440172764125080529767751969730690342951625882797080503227834466415503336206936636420096326531912860384523808803834517184347812833074509168120132053197593655508610778078037358441084495884388808727274829083390638430964717832801544659356354849082779984206834630457781499738910249880619014717136380090404714065352945234115275489432242464833266629665093453702931196607278844248903812716104912121123021386672378049154838446889888343071849453827990517192318553495119598533576900002836635019438004935365690591440161445053152343808408462512888196403741283094588990632029726702916738487081042996252798319305351590432575204722196390496773442131061519860644334728158034650001271929883130258637418517153985725729208683365011928849019160427691187383986852236643309514374049316618091036122539185776771277611126821675545487315503092328146210022841317671790171659742786130055377371480210378729732538040948192781845889082582887024792949456566460519679567339212382553771199343530002191677895581224105682792494666307965216761764996490422052672326724448145555367672914445571229377149415053151053651626244888651341422652140700249663621677431392890946060499165208071417770885978565225510725070624567198798042303098109446380665655249389665505169579374238292669116716031938976811786696690680126813581742839113189048738698511653951859415499662828635338536412446632250241620686088993596049755070799673474547799698520020584761157530632467615560126777659500973663274849171731176124867582542883238886209934787064282349181857779926826584234231481513339948934193574169108542511100146808370046953159429681288462030816351175735621023811642251354420120972820120273334078713742316704952659581694117793105794557223831676039768362128258354712816563430632972727390098031700370181697213947889595949316058323259620945816882639747568315642738064490309605645111784472804938539413386487020893012860871786244542361002804464681399485528557056959412802777643522394977656986063446838109165946755255310919174452912042329328274735476953637160143724474657279329381497576910848323717252120661942167219044445912204853875308305059508277510465691214079574385983059683545483745397524270030315049782000450766264907205787426076128452344250008544138176163214298479755614486895396668921613700528576011388624577816769176188039251795501003531134570864245479694480399078287670598404353991343508283055435010734405982427696875604726031452788362776567962333757964577305383119716358332631871985105459366380916677779169467974865099092434010344244896869718198076189714382641931489429512036143063984729211067998891303217353120497179625947197548689751249268516701090157598245682388296685215969512118050727838996471757524863644625385778554910512029674388047470649604996278189261587229375042859510941078555215893558537256742622030476649427843367336009573113906825314695302011148391994937154229712444033843380885901928915374920683225054574686281352265288269629857622004998437914657083375604563093455245719086803192222478627688683771993561984212801796599700526432663409394362167105214359370529700130760864829499403186201965514173604739428226064574607116374377964277325832996679126449556642912136411448300886620166797313225684224731368198565672937066182310419355483388267349581734388979870246606844642653121816590243927490681987858149446046708276814078485794875081871476547835055127199018507648907786292571715603198314609429467272137312507239508772747783444506634554063379203458850281364612334039414979683196165700960457624033308243796027444027545198479086781377769341275632259579640564038130577317384828883280893486354304283734099137117758521208806053792542516281001834927844033904631503135665816656686335231161449658630183497017410551103055971755574043687495435069045041411358077264829216344774261970246670677740657828436922245691065495816276345504255134884913916517658986723115117308611897404773338826350753777742671671572254371874046268041211858080227607299813550332119509787683507878851357976991953558432884570568855966222171519845050391938355572274962789404642329945646239778000193064904111907915087046506775351819220481768213364858780430563043662651116118741691004533828301069740336526405486918865353705483593161295408203587754318682431095836385842423070125556911408632527746603821517791823322774359195195600985245551961813520473132821101782464680603258858386483847001087048077234216834232367674875528012710451470067411284921225562185775960230157262948898170981783241081907138587254994701965036499467844956273787472049997796750254107732431319378669433618168054034361202328453867277798715408196841768591204934440803484847613319022340299443043543544155831368581484533570275037597349338515390735350851897098615763386586711893998002612674018182948004776228780187325436651218586532076246026561749675592884069655147299083016191470015788908264440591583299304775665716814410118288927150859604093802424061986234223077893674189711574978002154495338644930019269179583020936990895620055139082810537002357952128525376339358705767887711117272353892607802265177121947455543366018933379426319781598622482296425069718523803062173570285300297260387365021888608761382807133646557533665707074646130428844845919344988897308443352671352405917655588865825944901430919729840110069774084929687919744658409067116338536425990755240066445847276062720974171100007351499776272561571037257371202326350634748158437216117022220586506057772435091190337870349978801341266837263198715463808558386190592013692755669798985653860261103053052435338186565850876596635898920553431352482745888574360655573978872873990474321170704687551208739456838553605092626174571262719555644605235336684019280407094025661789435913725726757317897165160343277563583123927571254615708519594680910530202187070156104376340311659743591172424663580375678062550763930570610848506448863785206376146581583239491684467735402012085426469651478812701705959477735819598991053748112750468229979276688355084910702170823376442238667902838226191577459110474849842626422006394670682061456569857605545748989266588253174999262321225994840083538805492137349745135576790075572250313073331278407926153480893961909763325789227500501568748190996681131906883307756129780858575376098540051179189432924919325144180414159132825077308409524022885501901467451517734922693360985110602622019657313805256685629502548020718212474751548201285696581140800147260835061434398426884755572635058828445816665910552901853750371347262125205594838133039441179895863799212615068844389326348868649036484791077237100152697879191455941064984021153305196771177024397498555545690350265504951951264234647505082179154796807536412774960497233539921601688946544569924692975192005816974184331165111703896991732148805808247449597239564558496136352618319077846678735642005445503819888342694720836550450949294709711607130572980902029233960503033080591340988221464318342030999401458521484812506653479299938577542556351591565628131308025416935431861208754122236075837983541896564579894967254496369974432208755322824587174792423558837808557836154573585337401838464161527425721215280233165663012243615995882555705916596069408182276455998239791079579821909507590630389991287874042842105609189469731809413381530422502268511649574401270274322942289121948679326394653670340703173427146241094022524187843731360959841994731673177664121602059329303813244142520529853803228877839044927712098302132426837742170532257685401699608966211250401824083458322216613101729964884216032619663254910014486411698670897075133968005782583742158189618746090784796481351006915870213766129880729438630304817784434426833068740908779315205186038484637466715886327920209691059592552394421545553982940775548811792583382681664203650565070262305335010953456223667004760364441661939853492862048603901952334686188096130971503511419866654051999865114025884986153018967914983678490487695504638621097598580304441492609711003412026861324607310780836581644978363058336267698752751070787779786452192121011100185120171407963678747765079951111352464714914773079044333132127928096643637939864057044155497695706787535489323735083149856561721478505599310488685064505696565308080523011966930869614464025764724226258841957663338383069149432721995362556943446243085312578592120864071302907637812741304699245115302856174281371546256503699530232837988553602669022635200693630478944512966593447886865782479414341769293526332926857486020317942293246147817542049592883043782758756133158607960464163795609922904556354192630121871330581656595758878899595248529122372255830292272530793454622813504976343153833121285414117855144852927027683672124438039225244948064948188035211360758000004272452492843048146768164956352295518100444603170175676657667071423411114277395554433678492584724080576781908155822023207638686660890595973302845436616385663579553913844233488479257296118104075077199913675705743020290005261953804170434746805333633510239777481970599368299654343539783617117562337375711462610506271386318005636929810955489147448160413380410833737800982520780150762959986507642158444298701664296528742163105753120393619761900971164396499710651611602693964390238627744273270150555430251647509480585067133858364747669458128222622700840126145375124609705830538917780876452694920567281139521153622635232621920616391597446538930231401815418523509073873057253349641334368567301413369342953962315533108294654436171855357664344145528099135826539999241104672156009988830853982761491006884291010323387026003473249268478579402583806466353392325515869989170475176502698163328213937436487000978624384656709136626569933394332499579447491652223635437897009818626788298021181114904040133184557430800448519967368938858132457965129665749933913977780429839292322569840795078980596529770101938371103315717438229109841207006215553054819809767667367150552052159416291994821912536347279852556518110771191273511816713625237143709444764789290665203073709335388684010646360753457506779801101447785944170160884611298896393180709351909498095270588189641322876990700945144427614712257464842836644846290001763950703220749283278291676607749838016703804572640498403367103492700798396423392401337625591687887751367912195627691824648576502749992321934174374492254797002977676673085146242502338708653698722726632131571536515568090510162924107009098502740342349537726575480202127033000699139379668539824768010642432725571444911921945325326682130644662249384820950201180422218367628955531292459018316328210495022256781067050047207753147677629595839319106015538706472104771753843892098390431511484673993159789976288336855426923070505321992350131354459168617678403284768236123443039130084895933283968343968148624695899403120527547294173234510569327707544031285921568581795472924142677159093374597111553837748664668359165297266130211411893877315697610757422026287264913829954656486551932500634358732209869976353531786474446768463592308873694975407841202457988093895291685898675478466296245628919942358850353801207339115658887776380612124044515189179811909250998694129383787151376089704256944677605196838393007289244237676717977981073546761773932598414761163778252882825668474395641515289230522608519023632107965080910526746912179440645934386406465662549819515590325133789294320655339831584238883839942598309735426755054395958829437514618759865990015815446498910418148392874147086357987197606121986551813094552957657543493140931075748099892170567763055341913622811979532781556042899660861529380297111560091202037012943041618670856777558897709580965540243913506928155636609161150571488751823619301099048701983654083093400750347750015683023626967207363009554523629727170673843908378008560797327039202719594260626182708665510657866092642940158314869707235405197576787026254916941340879693216466777929967806977122207478649385643629891878783901577206790021487745958072392127260158979435209247244647196772261723025721188280663313746291989256309500520163314296667775751084115688394375675442973132505826472652594952659275327599321940532480624558153037986322467187393963621530006523798656328222872394928821451614033424629343355892707118502167389410463543206621710441723906918721452302493786217465923448353515032803114069870832479100243991517712869238137577523849462677376446340354223209462190153614928103321076978949880513689555726685759288808000414752264462165697423793420971919824649159246231948526693209489308111350630369136066949829631339838281711811893608334189208171286872119566572616966495721922930470961540428671840569511660322006620782998239421605306497826972189813911913723393649125747446412221818742032486279675370143240749967753616507078014647468480812022131453179602711838125863241071926598401360142024358965002688265447054058085466382608480366655940259863460473409045074688554692973957757452281750257654532247843111742724195005882735106401369650428401431118711036483749630577884771184803894698682817788524425441109496062798190591555813302861360963073435896033053745677733209796924130434357639250483858860072045452528419992665167232561656169964649553340752484400102096901262910575139280335651929450840815852703975878416072720954167032800553945104398849841533600233226483371743070946664470439719506283444048718059523291904251532327347158654971749631149278555152556955969970596532947392894330077965050714891595656282206859251944610804400405165196646350248011657991819404182161721265555870012193030727843619835195481029478021574024836808888527463765857220183910272097663315990436638083952357077889431270285856310039993932420944988398050652259339103765488840032506124659458596085776767757214284215684760330255921444846555802937081655683696280488910196648375870194599360580290021336966697533312911240936416993155353732045400977055351833118237884422760714693320292696245705546210164242220917341471102143264415128002226949151345165777220786162904588672759611245700231412759641024107091193458923395488654324556993076859597241443391197284415989410621800654068247230038165931770995417242513046141683632180710753593426596796117803232105089599271631124884448387776605409995466451517148200437966580878267388591205778099615580699079360344212321189025370259221506358602665944672600567166648415215071770730027035993919035632747255122551978067618922464855340980108046082732384690515243995009229031053334859279625823886299192950032691863209881168175953164118800902310809803893176356103405571094267102631675701900081077161573211572431300849219081848201400105427432251234298589858808503657867861501239031782575131526728387339247052559446927606588452257092183503646935030410287427262540083603090652270028534776163840128666494738219887614279022531691820742686723233394404181533795440669571878214901074705262661627153562946567387290625734988827456090628887763578554534799671353575225744658938260390014731436881455440416825737324028959446082692735175489457758993636130808039691164453889070124632803265893337038337765466733466808479932344033735055753257739171422949585984476113993669954533000665040546271104901162039218633094245912993285661527932946598676354502154006107926132305245876206727454751645791509994583094459342357741966869504096640859989387415358418539686496991675178121176410004671021414174069629154947673508633226733601988258945735067930054511498405497425547187504226964806989600327231189305546703229698521258713225657207052136886668965879226740401425288833601608889252734684225824378199883478927427017143326716755299727074537394609709982155098510354344003956725876109813343695233896992296687408471681450125943055460721958651721158013613687567237889445906280444300322284907001093947504220837959839427554693443436306328875878304863055637225928981787593179677390920587466503249645408421602245471164439040199440190298775150667151099396221482263059001736707101678480386108983014277993016581512829921595390498162937562355407787382933073351686825578858380651700907182382458484342977696177423639792905025912385535164842798497975258681263756325268791148425581730542328760380854807787163093002398406930102659393798010159379609597455671458256283492141539408346825711983397026416899727876508515740567117363562274087365965704113505374069463241104809030272966706289536730410625459893294079354238214310495833096253580220038024863054435697546923977585102062370405654715812043492567769410677149192672180004866416325922619692245686066055286007754661885658086314679470775816615579864921341315233808783402673795580255658682949625740680194616619154427901249827219499252956929095936101451461551725441179395997335541285647847469438504442292282505393915684863906700164543268183683108479673342145149971266519256185296541363210168748011427976456849479194289568104786760834979241016356746045481121786218706507044943832418601930961702583773689945471692948826817596565688854658401321867301816601497009870614850572496481978800340668086611099910521378340011533786460147764040757775093646674050357176107934293083184826786997012962179956685538498183189413711097850401430945657816558863595482054543920184666945279679348311559273988631889641083164361406536032170506965625283732449034179611626343500079793988980870525235414658290498298686876393246571901664128743071189258983317772278563899716449947898777416294454940237271980509238355147217115625078098395128264922489956330457357475855239594244048373764416256205733793947625584894105627353650877685597729143781429185871074748429392153047962055677498505623729594634747414815209739237863094089556042196573925060841562941825142505042117973202533420965729543178379463055286365280566119846235054979028609310114772411014464455135125202830506747430389567888323867319959995278018849520827016561099199285398103611977236596037505041559356925118507246659440370399102203591714011521916565479106328227040700492708506978622453062984079265003448869183162737336237060164874719716614577616122714688069940702264896953595166919718937613221540959287825280707688778126301674579664060811136242590756802671221485202026717987899461543065753360520771292209127658141756442955747749108048964573947526779409495425605459984766002262761702117721808060290847631564458009615010301690588300331940813529141527931834904087299075835150184948203495952890900960313654122522327534530008389542851813138647937178877297348359779521762201164184741403865998831636189910942459580829008101495007588804973414106378701630011835243081130640651380938292319081112077363913228254902811237046064514384321049778978950848726477572138621740586834411574997286241785487769237329425187392619295969017019731580473825143460384198349015421393802521510209043762312416720041316762908149059646773479113189926489544275710402390385531599012504481523744454213111691497107497644366588241783243725583342752776259389598336407089695847452133396287985339117374188430212171501584584424134767158379023059428048450015446406564260795984568404528659601717543239833187267994892987529628048563719778617186088763775353608529172642055486128020077507728039110254721805768928377532761548148632931127396369208978377644593721619889194521118406951974002143460358299960892199650174525266159219381617192251775500411278330633851851820013750735952739040240201591919660542994520284433126848425702122362155568230110432688864267325733513530570530481096049174521291331519275409803706290842061950404266566800378692818130005063972782230150809639334290410630560288592161305486545101305831847329091296726167521091113440673688174063244018952944288441710040367098530542138758468947738886983642096312822173764017897051480189122763995686151716666100345280401780069359029115446729998370353362109729309987842023805561737996554396247999165363621341598994632229893191043202344558709958303993968171498824283629956476811814811489318152107593340018822613693786499990630738867421634842999533548588403013661497405432661691960513777276934302003886122633843713337838712152596402339195232111156030054340204207653307305700152437596724772600506734455706856146665443298988720594584528943312818777593113559250067994329939258610397661458157379418683329634246023280094051940832060001889526224152798764156704943573058554991729616727627430161905543073225377461579949882591577562801950585641545733075258645200332983667060699016985162357326075801008859894659244196680040992526041810004811637606330009802670123948445102561343325677159423248607524881372767659753161925394608163511919366487636441795882209820414052587537674034691131856217069282957925734458858761727244891361779039707583858542452780139201106028168691181455539775236756222401523596738360165042975456845411490445220554565202102051909849837623620931696008679946168853333846337702789458367344178741941113949783246352574558478702280888636894963144766181710222887044884085860456643670942074636101885630283673925541815247928624411179917412444558422174903319589551166558427029588582688382791518261694635172906898179919541958854205842674972213715781203137647386276814045881679570272118890985737580260668707518526776373455310126478951876856558386380321384105522034106962782704562568125862141486588465699816685072593159697652754944456558957264923378372458944894840946522568495870270631631657058111414861108313808663151065398244290972433919975596794715973348151397694815514362386354155450827442934206267567777576250133898287138589119851623130927007835611833234642843810055367028081092056011663727490034125330820546276290966202631403533300160047109046921418531587218996272455273403427829326956318404460093040414005782216596338381861327000993558730300372517862233573462616697696982909644615897931211104290973711556315091621414803694550459739020605450674538801425262489225262388571613303454896830195284566913563157750161796253274526947439996013962163312368009665742221765835326252551267438094504725184679152948099628445131901431156390721364722594797411040961080625363901704410876333849957098348770856070777685125041858033183309150616596783354048098033700744789797577061756652909438041997542035570882048351838263141001983955813587704111534387888650736864157981455163693413091842428646676946235560412962759837146085734586011454439086300445140492019680162067232205419472226452180340407678638793747767102711282312828172491160541524136479846150721444395306302704721427850098495968547283673980546415381596664457674156227918947714911030426752024050744322869080354720606677805932380135096097308291716957658913585420143981334882332175721655100729616880540686086369869154248860176388123713102411035115697013229454881824963786494237853226341629021171040972892955587511975777886830984989264422227540440955305084541062707305187656934471786305840407133979908728343561336447134472909389683563912880932074861565485731246068741314717332992498711681375857978712158061120458342390484815203807104101836017481874970422099666118862103998073386188524614466935908326583725894083793113673090219483449093919689273289319392073370704183940696044557022407324484718035748429110436793462415664044656549682878531859070752411638900167088183885493036487528203805764460977270944965312288690474904294255465357161729494929724408707982910648133912843897760888360791861051271814363643573257111444724636979202066441381550783669938242549059455390165561215698788564021767806650028761892530349663323573534000837347467352373502993471941412327963692315755491445014326881321779839877563060985550231088595927785061695875020533277772933846804089327926942286522605522115432675565556761463780613633578600735955862092186975311555771623246287662174996387895104278249696138741434568120753479990222839513386859869508204161059019475856827743348624265912243274046874824162816548723888520964920374628737862209345722099492860531651356376935559437543686091887360553797340260303085151061477679484725661369810785135252384661200477396378138970121191800687434231179100651666522578074370511271555149041858730830115384851306294496751612206889666513789115291270803575965801257677877865162773538592456769241774096601151752734664441999532490829023957622610996839695673092232252435000183038280045817968530202555708632135432001982554130011899124924707711863768038419788175590872056858965636322077679070819992820457255803640198945352075760569393988654849948679982086998431973050880109454139940293628341301373254545995693682349811210397588615530252250438225379311777922772922289944103020857906204925863718715294316237668698819237874558742906845596041702448382087437942364855037866924887027188183508503574726150483443224422252232621921272503927964445115937671247668391716367997528368815673129514356634505592951941694004265144043033670362333057865941530684675544460002586894189596550636629956099386461008089632125731971106941332669119834018038688242395921291225063190718763304459355828535021657302358493817692599040314701833433321511417142738118340258804706709508472518985469318345107321395366487195364444168145558690181890685941865508833200126707244533338304358414689125449920697841339434709163262655084886801782149331450429438120643095617733232105539641479052396929525383005074473976968423967085186269263054657152240888602470287146865073335296053449631413757400176498773458041625604363302445883883379323680348182149078412133296566703669003737647193220925899581596115522768684377453677430409276393563747625308116381256564216317550733944159284457041641074237321508903298751943583180159952383610865450724358038385763791148197736631365270345467869771895429385501006161213350018594021685618522023801622406129808959740531027168698303755888019548961238000237431749576724765441746289597447369455044356031761161112551927405878746394895246279380489608740729301680452844534394513475168142818182584247022364418599890835668477084320935426582423858264823387264506752240124887363689852205693276576002128097738508069732063691082270002477213935333177033228252451468235705157894585249674585291051579393688581979608233723559777222183284199370967979695391642018915787231567767080394202437646556234574560512041973527418716365858587297082789966018704003656820665674207185516535829348642386419497600558463799472870583424223934700375636810885247836439052293864968876025128219064054619957753165567040200164772047525112893478618728356128127797781078037199561848869130007011304436553994048116252858474865814306528493498935006329269750079321084920299517489593771321066205873563483417987582803261135486112174270446424563699108161929885983723722877379740681249291283207941723720622537134502988777356582770389949789477442335403966213769509606056078884103144147461297466506788122131264079011035163437427606081503756809609613360226082546308911099679964670491423817639914580754194253934947706378625179783984816301644139649344513321492942024854474512588558023371864344708840152385443682935858439436972575032708075550357416111089464060222795811192839350150765136551791704839122407707047522418551984752238956666582404786792815389751078433028134385392464842146017021065345272933199193593468748517130988250497653905810894151430356827760592307038204283971277364122069402690006017110576001039555054005803522754346267422601319439247786871703709084462756213012127129842991416680091198372415656959034853850018002052763615044349370838306978540018515795522151899950479729212374331759792096807407197480862486334415311424837092946503296642023619094326585018698336993905584348065891012188252761124855677354737549519210640774151865606825755231646614947113839573290829036968315709955442105717713550344220301727595474334358817740192347275972420503716441050634695047547418706596766740959260408197124900749271069760034961040840388429253828841871991526773121465618153297464308747139541445027508000599910676828336652001091040874399685333946841224017745984798072610638966578165899489788932634568967072703833237197408860598238712474876208974606099541403720849490139820375296083528126190901571341261966764497652571798491829277574571487109146534747999704323589666160629089300370725007606434361598158424990927703398070353885713216121372086890397480678584675546432336971148715634318749255233613401057483576819464013591137911636527191965537589021681939869556787964406598359008581364730906094231249200623883913284193638370444687538279797731679676110414530115349886370818666733549092050706296189711881059638044604733842090097066625046737834063764069557808836322372587286665965975634079740789962702309696559112121481156420410556713418736267888791891076222573033669307251365534787879292571850596303984420225729227713253156724525067461231533683432419522848901292642015027945740392894888390313824447760201803851322276899962350937322305507165898199390492370543054313310874052797423897871975385491767395066088531491023478706676146277571928448448693387894529634146236541589799230397871976881820415013531890696672092786636584929350622645690958966251259703555171304740334208453075394993720059669958679267579360107654249998858442437916728438018602037834182960674149364047096417395518279580055742119135539391394821985840795795808083402240159912233044704577336656822594141504805456243405610735503695158903075645171075735408931795541887443798157793424478743426445365993074233177075913029219570410561021726588993391866170860122196741691764796310807610075661958803488879851645106023122604542275059899816331441996980539163473297601398361912599182020755505372058579186123714852802973507757512332733312950237334100015379001087771104247450255498592387222092462517092462599652717299948483572683790958680713247550505436733982548556068116561866081984445844051364911216328005633538839229300232088709534669022265772448295669385253656936412232504977266214918965597464550053831472610352576311810740755781044882418777942833214953984403334828386659397921001230773673563537666600670807301095723427837963301421240884620819386239924529214433726116779958019226184566905400501581234264830479814924030376383357862217606782086982626000558418106073691838722370621165339012507665031570613601151276880004694703442996130949596064217992130339306190004178360447056075639462772530808630087196862885438780068403389375577490107696953209028297211808919074886813590899862798409589157003091372914169540049351086266780878728893603688848373937617677098444597711465503203447319469884095683472098862080641064162029162773073259344847936091362772921080347509880483061027169082033715341536355042124618763110078524265993269001828475596192264620814311679424649799817484584411056849267158121350010222207960779732384089035533830781649943022033998675114624359629410092989627978090649560463466097378235932147358995002737396292968018717559400644621922336867992269755027497640392015672199182220210725625761212050508202050268781532714322218348277944200907224584742432499664821351874004578349292980301917354057822709302981547269285881897853123431578951359482761030645003405519543226378445558826106171605793856491821640530019141782631884044296943616821061552694350169213645821127691950572831227094167146341452361696293026399523936591126148164259076844190497718312592854885574125412226942778105212575006266790772005069629916069665371699782154281372478910307870453690165508228419335462361671696437206515553469772547535857578207512211546215094629704515936122689811508308158325642082868657289718902168092659519082934247970059037790258494692168414000430929700922018002256549307710598737576832871987690962705553840188283601692929912478563961099923378415972811950938783550247004587690671480468585012832920594887283294275249853152578601048176136979415272920388744048002204967605617890053319794852026037712655972243506709719535807369730957569938947923980108911227632029011260286915553439838645993001252992356218752278152100063165672585561590605880495082355395776873207868926824873955935291151656653287004675586389771926583891088177164101836174731745899118643502560652122473201315295851591200525157484825770547516563270974495448297345599169106838596720637436842649642954401103074409043555602173546449591982624717409554357213079155504111868904556939353784689941692702593982617897789164073541679713305848052181912891702007342623553403853056953996326361336999641286574415449710410587843199133223155131740989653573171777422621087644884424293322656892948862068210137196726667190505742708074080252538153036241552100665376923196221752161817793254687293216110111442510331091987322920238702905014131305953061456533768895897010895687426584218156786519244636910218709897981814029975700721400257599554079823687631768243466293130154341088066068296017656246984723499258198520662060122145537034742691803759282169189909844975281708187681166107328207220218548046030789729635341983354517834634738666987096833893505953804598188678682456630014007651167310325807247108261261764043280975355982691681173117758751538288326419481461270521462634129427170453048700279881643477595786072723135007523887386789090168119835462392500178855734777918098894728895424207874162639895804199191582504752124855220719491809863123674794086675008872445314860001964085900046721852276146217021450615640153703370790465178192727984490839521562643343336873827720005112106719879030479386475684781875721891229872454123620908036422328969471673183622540295335856222320830405871543823578250440225941132522844839905182057958469998568744410339925317317445091775426844451807365291551668954072422974395548004401667079005780679818095886300980601091180955058729642250550228263635902530802251252798486638036221257692969265391737678302585622636493860784752904898467150581963212346098216913819267611857508498039903621460979121319640813365102181772298314517637310660851159148787100578267243347786200908799861987210120011661640096442014355263159741240863594525175461825995231010184068719918758405316958746372911987815224235623920765092531639812424542370794525409658782555911456257895809049251246495188648867885035475725588503119281562623956581919023747376416996679077732654833932640707190342033814231762844577518601795328514297628547720460511096241230665874450606854334663907346598192462322922418368233633899832754924768568804616765115545241590971567772115551532484081863644708409403051193633173929068744659120090637754238361181000010677246317352029198139007861118117576369755097692197009422744920053260175729852596715729380404918682891331033302397479459222590210650612263159411951489726190210441113559795244389535769263062048784266755858014132670811179965512508159027433788914799849607014667055012190631016411728630661302077450715783206021388154551801247395403922233114566997230333815775796251377907093520831236279790128018359007621879285203283774953473521224063125555582713275169349788854719699052222183966459368190608826057814161315223038653150912729177942508814480447265195700392508442653404995036392642050560639284866065585624978469842572532019840808258088066062165899648682658010174449455213257664233926564708599865403694066587018949825574406448690282707765451934421527483216302221675442023189313450942062035517379802425685387529948806005698526708936945330754594880132637419666622915130950491190499577407850412641416955461086520316928930315080045523791818327860627825838732490749907041525330027339928869033599807191522802712708589029449850751124502321959878794898635969975984044032845967310666455143295289351356732434480625199293465851743731437058658654792267236607031919341349061102504487995068185344472141538902941370429728741377438895078982393969629400221419861758593528864863563443739137535560089382404152481812352276599568888551219021900262882618219639173301410928446891939204436114571783814305378044159286726606331512923663568347699193670357915584808076725347974118072353053098989393521558413560420657656182579025161813850573727225097422712977254969985664613869660663596597083377191864777903727424408748146595800664432591231994585938848834162836099689395022586251908480143370128046291146288701148112283792546569031085937670465260286085070223312487674502170287246638416460949765386340109560917575430822497493212460693594649098403426104440077375785545690714292075537148969477963650848042417019588891593947741288095884338347313294121514383460138308710134662159541225088433486570733993821693643292908399659313960052492471415628935645680356054706682805859730853788650086793037463484504978216432998209910181487680962551018007089582796690926350719739683262431206664315956312097658963365756284926497645098282106476123539610079342685390016162926547245682014986824187800988542647214031500406153620976592871650112749356070656434459261266775650610681725297643232236804780749437276757570633847113007001183852879118299863515487945517849945787269338381733572818964609251219212987120744280843059840230583837188167688642249401929660921705532288778632632436655516220994669452996230075718400493108822804448546186421514297486930850453663394076159924557320692763237531235240432839960659730991701656344495591118816256424692892326481811570379048258835049826938089287959222744017892914015039277586563697362710114759538862743138368239143864824951012870764705348967884719893207740375371518189008226644113786122247476384902873789209681885789197315058199091810043586870108329281650131566664156486402120639641428132912950365856599865056463970047997866487427527041073639571632138290766758631109505752808900363028980200262474751737662730611616526144010059055666121873130920886925892432054999997524800631356587477625538919303388813548157794003053957638272866734359996892489470636989077732442143199337620522004385114990392834330608208130869401350761602333725717942618383078651084860620850112392004725055554063481615625397476838259674621687890263516561871642486814518894098594712863281125784303056132210180160102923041111342959894867402577433653933890314598421698587196785620633023368001492452850940235354808670925954200599906653247672808076559447490763550264853076383192270923700877314664441290187998817441963456600338655917834282085647066495656242011128053683768366583891077780758607439208739257925626551040716271309454108604101105066707241317354521110185196904448456677718504404630355775870074101430929757124582707092641631915433654000319426234125584465247109014469658773508947911994199919064675665188574821011695017673355221692482676284634626592087796862471761501531416680405166741828179894371596995647210983977497424469470515179717674453391536959517115725139694330025881272947839378533335918936105857597967913851089562890453630961678573262435614551405320748227209330967728798794724994088126444432962175120377943358234764951825231230562449107535434764204068335328298955919512810233759646609366779771984879638275659644636845116786376269240777123840346532780830600474149697502758255004084413125059818530807058514226734344293630996649001588425477428004305723595042565841778367267630929125130084231848609917511743663129452219049422576827083671397474465542506751359535904018122351038608308924611016980180479993739535746596117467367950150053219878838578940658411470206366576867607147601263436230406199291418177213941732606801901749527776071221781374248846225963976199507835570298153915366464405581064009362731110686616505028614110321484586855475448857733260028213685121197128936659780446036816260948133513701893945899565785764714575575787865597323749671384181433455369225945985285298476023368045042638824708152650032533772072194613195483771128147511629939302679378935617724235668809354672691488503093220954547991883460757064040467783148661902360326202829691366447821700218543698182323688813119118207667003424712361814310999024880674025875664661139179107545430454981442757584424616382041421947399728147152507624168269457736714733205835538563782005881535126505868895343943686441135330436644548333829742738224737817116076370720755778022335308862639252147727754289228774213504874079165736727158378887038482998655769348003205099731211882685074912645543192512386676136018892681811778659162998359014085391832716828234253502165754138580902774229580072390520258484165347260138112668655679980669752187128268052595187355384314820288413996536428701795268565595078033186533428211612307587482595440186794473901250238144496438418184368837222163431735894465064521065638498566860975840959596737806253027349348319089329498835886287908492055582330905721259404395375151339470957029203366879592599537495825664917965210500363025011874809592921198883300631730804752704556515628275795451283769515657448417495047811431623535027753535153020893388038925014264170039264775335482105998923432783835155321252886187817705600483111142472589757590978322379108154643906086576200466291589977870015996566944898884308108900616375742102603859255912576669092318189970286833729917624566069148236688602984061711052508394593713272660223638713477012856110340848304787656853214999651383229131583193087905804695819173438782720690657882267584297170457483664282959281230160205197916192758087360396747522649044857593956365261687202988648016132148909816723841006705561737963332854752642286716797522971558199487365263261567265006524610741693925851504369374464564937992483609585562264915632919000843879053284305590766808345790055902281748969424102291466418750120076488171893072102933835896922090827209002920223696834892268999202063975270558486974040347250375689783958362972549216024920593531048328856838401487075146127960048733927416408654572397355293986747501322900026792695649329964835571191349172888350880633853854210588233920597133681734620823995908110634233262961454220034222088331856474960335286141905190886739453348670911528901521951388337509558512788314486825035151239018620935327896114247398455433842231962296545679462614523732627133730939710699599469188658883059297912098357605089348213605628978439796386580251146047339928022158782561810763863112714618573124975330123987146396064560951491763624233265424100541527550522480544772772810414251637816116920216558613970907964167693415684875901357044310826131004308265605798330936633278168908064493289047430570943861424589882338460567143346304097185799018635790405839401133085850576513143592609953217217138068371718325931654441174802128130780213528231439568575630798431384421911161581565575252295029496660243737373099658702207329700853040282107092336232533254733032492901800745109126666102063431887407420615842339487785458830923446179617618929550224132399052362603957459813817247581106835930779733330636898836438111425801049110878412284906190992517923964570097446369433768167649278823357031898905462858893068744424861942481068991788551222415247803277397352924844408245958171795857162425395899140495513634862096046156738956600080181854635425412028047456658061421727838249233330098136914350592598545482712367787674858848438403538235219225343290439472497037137071657160065143670004952453777774495669958739477270375092555704000975824433156182088250501652356971268307098444835192531307355368434846271981551725154504358067235002873785018026140082193694516196046671362679272477782000462915931126091984998917346970781931544725365614716924664314894057217992789150863054712209901290138412664633355294143101511530126680516914016964884456588594708827313773488571845403020022031251447586407320447155408444815561261701701871106223589337583046910687703009754356929423447422568201970256434340663480223346583553114228390051673302027669643342664286394904763356991769849278517473155691128317926922055688127890942181882162607775960789341781124956684411703396756592804413784022133005827261999543649794630702033365598837155101023033512940736210645832639941528970313190880199700218737976648879536774988881016120835502979697479353421454693027661706294133823522522128816765152877081914594223079898151330687265421230752703727554667811595300807231564840003986212144374742223037343409656659874912579716871555753176323455652225678809786406476493659359339295531545463599074074293540681140555671423621496988569208131436133782186432088129461364591852181110435351582174784163996204764847849290563418938995689679342041019225830214144784100882805169870758163730684849832749387351771598983994552857435203992674197279546852758078929454220033756463141495852030682414875505600468873336931297470757510866008332516534643684562321509455815439848112379084344885260710123709869726227364286295465709585235215426520917631827012515158943027462824133562496010103224065776537579742427326873550771681460652599253095086821565517270091995468914146272857442104812151073157103178029084709124843729946201936211771771723299881841398381148960571654690599406157973668145445712703621621917757986535496836201695274354932536459244310227936109402783102514203579657835641386569264326441097728000183378030532702089189220096458512037671327414712409806168273104912961852474292586029847101126056427039472899604383649075440036453996767289698717270698022693322402673754958395564203973235542387347210359219504291282119919271147938182700514365956649773792457832712897683085501784484245596449167394548606940121858086805222060192397967179309633433208010757785860899550327362899487792788859129151415013001321380436684686351948890534125256879685964023200781352631896079601443075240208244300723167113004534213234077658000959459565217524398095610694240363509209435904919226810625506035767732157179160069970592573192845992096963051655434875145765358468752165756441001012057204646726212841875864161551859675545385812800855876287733794135909951770953134295023065714692396223247319732760828198688629228061179083305929189232984588375916716573996674568427847684955961343694868595698640956762030741059069400514934149496757218233605102530368203494926877111804191558095462642276245558484712761642340415266770594191827006566232840253086979813032847720731422713476496268856969118404406490153112541756566879336425175666090322649801008744521343215583058907348688035606521961403938821262649190687339849368510112635882782080421994844471422366240634146071090696466566082765154066785807306387402831181036380391702273076467550169695045293687807825591723694371662192199483887382822438772670583124219231044195561699656619669898961261252413993746913393973387126664045506647031704953919482266048755574970063172991197057616697689392831124003586582093022635484705353738486927848883931740254293518070190056180888293517590983449214235600155596530077812548341851425168254603924284708588615936802982499641260218032195977204754846172317969129837382802130202287434036167114973496937141974845175799336154187766302481223805061258763177604335249974307397080024447980280100288588790915181897604189923103403094356550265839423944833467717857947152571240436662254480813534296873437847687269150520239523131018644548999526232785608626821377423163359703496748526336330957195409718014621426168912228345969436872136530849241582334389390162828686390282627414469263122386551787485274116504664443958310050553804407410447087030343208656906713077285727159084313894658089343142526635184335309677371913498257978244417085659531550348341152262382372644628307241388108049979838787751442831718112473704417838632818871962274630418890553205383830866898179392625955462246121509048611921519472031714493264440275917957259820522940605355680217031182072673922858844695381544670841199007401153320096913931724386817596914391894992603259398057781351413302808951316045668551928349000920978478233275761334177406181395758726470143461238595274610994610606845124236320491070060390238158863133772582068456696931150657460974178006805427408831715953566851145548542182962932442691388885850221827316121157332600118446392641008745511933784370161923862818644939272003820954023866810879651922942154335914418912910200783102255577033695883074021371183512989193648990232746477923072822571144198192809249865795352530571982467673692076035430188912499973953738511582641403935242697019444542888025772243397411421159994776762405537811768567735352624516014716603757330887670464337220452401082544786675366579157295268455052095340235206070243708011181184332875860357228906490382675234980744051225060616880506190707532187518543085232640846438072199496881526502472473580847795303231261950270215429493068673623363267396477421664298775320220294997485084527753263661984385459801516377407246548173673573717658844945484494619121889075261825799611060725597851932330371554570677258754174173944720546506914294747952383859016462725214052491503966354186009309714198870372637945346159088662168080200151353964281179947968564980841724030693043274170319177180194157597558411498275004599904319728094151884898822582023223409772206899144948879313004457844159173518366924318691352506966786283512893120202791678636878182005981541966701334870195524058394377798054750646081803371932391805450892600898532942061115120590058112419438974547914279838154945052991967588056566593309294301404922723075790522057033036789117777274230998481152751602790558669700066066874303281617716231077443910000543596559804703150378830858315026548537994032982696847201177842725451387534301514668700631898775534318853055709563745346090488381484853746695243227644286387923749798382623421136328558553108071882399936664543105839055878800689448974626383155555243075472240677518969071286383445806110064074327286682360509284162945594592903873518714403131679554851572572349779552398899374760283044053842025475191842421055703572421455653148782746289244537658414279495124367075065873128378031218580699154182682482630412685003702138019537266509890797062146716718005332466515206699484522189597571213251024697279547210927196421618383385042139306511714839739144674941182744572646304531465822573450717614899589010717287492015539817425149402598720893492218336118970797826161605762500416380869094384775577664103783763228076422969786884528702214141155366909897567042062221847763134087007616771662063817003495034523039737187514442707936368125371106253384075308926060147410299759153299534606961131553702750368457328393676426780883259162002454978663273204794362298719335488636773337847664289000281556627634663857459533088958308973715129245558258928070626189432870845742774781358220339108722121443419622122810854252490167096223110618491778160799739611974238002692182251532858680647633991417576003827252189326604279191400736237772530473695730454828203146458830186200408320218185648809606847920758405589489644596629416065055056521009161412645527747601397895458743151436391131226601987299802893506806621622897493934043293659649124508365122108634475701915705915175554827111190901532140093166512941565365840459725752896710640530501642746522059146276294402414573126597219126198775117987434728082748295125332559886258337613721951488953284023720348294939682655742330968147197318544239395111566741967902751958627628776983302876893896042920595247711728923488272018324177904696561732018779595404423384599285401731355768999152101738213513455623623701280559023191056837660146798771347878303377742397877361489082446187277733736524730208322714114251270999916351196939921281365860651919187125121678789158188536485199595910193074058618363487110548534656388445159501717311609692669890448308885561641848169626920334892318706596587552490651126586680857861846281576040037785914574194328870562228132626839575098275357418849469256170742684379780612105059806223688814420257509710616338465012736301069203817398456997157944570422354686514266029542933056215587828539232824288022373058564833110155034898298808523267569993531404653085478707329584611341504868800119856126387824148240468222573280150978672846148117545190774205954993899865855043239224743917846132953433768869716177615439781756867942616102817681082731343456254034313861878508865831328263785464817386548964932028430021231948700843191616644482761290491825544539917264955340774397523571197982341782591282095446410279930386983113613585130624176607551228544519225655866102489076331338402171473978984080556952573358533656273559755157959852194539262730323658892878009119398810361078937564394691302519388683514558302632963916320041606021010855050552398735858758572862488020919443458039928440783539467544671781192341588182795148272758485277278988642221908894363586480667744003206740001337099009721488014320434102545501026983041796070376856865164251328998874773521472839450994115337810397709249386946841640797526619845909542221724941652012380671447730023370137795329116318965187627328786296084458810579797720703818208877962601178537791772090316084864283274464732797712465779125747864385809280341545144560300260024783361380148539285955681421875587662702777385192124089911415712788744792601473955640846304638943471924709260172229090297099656316458952906492824284277279404588129602364603918177278347245611001128942416510167569261732373997700804535316723433931436987750298163217996624965574463672917857660590471050010167351450521340444535253683100476256195004786592752287544001706857514750823950643044295222572127940798173593193953731634048454673885465341299303391892408342025011690063979645257733211983939854461384922646634621630864235868611285191356644710415070280837984085229193499289628174381320741919220927253698282370686037032080519804725419801072982694409291602685247726319887897986265732264081574590505784440559399778555226608374591292078058920461577022434617275430560929115446306916087574353094950912348880568730901011337891605074437645503500294438767599425645265278909074440611112569182743396663951736656198947652494210794037965893947650932149754702773338761947208945218619141306163354334163200504146580460007928179417900512359032897690295614045415182469639514345684167399881264482541991618914119370691919462105449827710978003613660615257501202135633922758600673904642460444942493942924050760161794268003323030587994471071620476936889440821860837470175650340365854236724618680082069664383991396870988477562106275226678015428116039217693922987895822364036038981704170342867729090078906712045540971305957414795409736505180749498663240135316164549824441712859273418630199644885641322403289584748285996311486910857775395978157005326371290828874029992020802943489358809129621543806428530975954726585992094282000068231021870853498814856528415451523498558346909017604183406643881790361355705084336506469907730625098658247197496707705966069242982769144881432318417550546309293541367776045279767227751307450460009732420398853231663718122374979585935115816117335001987924925168636215226446963537847700923759956622010986480901665797070711050706072245027925113347344790919824752493365613729011936387709335624406595705223266986158690274287160128675633222477482806494864096872540056236765808298706517568788980976412845688572824774776028090943588174890162025338228038787940743739833641448209862382033866088581310446629642444950473389128907004105083196702364236613121872596862292523747580656275358139808405815747520888818564448714961411877062593684449290786575874725382128881320016565771235385583995719432486620971984091085751657343085335376284814772300579409062942264153805336072976594897265367308922201505575655010848568722750553869062579091079453725530395965677368131469577042169042295913796526533922253212973712830991728141322510287671915170831563060766639315347063366828755547811713859526559185912441074202949931915045405864247152995274823298630112638622725807464303196392310513100062915558278306201586038381673297907077042759894692359603275299205692047321036766996878883591472333858071655034544226276714447462335698413343890471872024185893621328311439232876095094240754043304051026008064394169944771159930862458979262100563251031917533998765951679664329446684797332749667634839453126081274908495760997829799287097866200635920501062203888252648438898265240796243599329830581293359387644254291946712517281549852298554916153746663897093944068878052520267050666752247389278561957699198202090191950446330884935529266942653551590499676906673364453703100653261788539101197376326260376877944629123600933113013027958947391943733399030302996889857225385194371642042046473396770872999993305512101132484921953790240933491392869061793215795025372263073463242710706376810601487552719044932788589152416591009673249920720479031393179861357854840080688537162375962346800008573230933464585070232102051911019702047634855956962213621927968471438366566849864598279321707151831952803100320985073672261048944891817198968481812072936106187497103215720957632328569507737127062808063340413819024126619006626393890728679454796108628788525233402595947787851180791296402516669278873224240758965863531230602999077698595472979442333645697768159513787426492896289944144673236802083434163859332732865081965489322161543743258502242388953341857112086643746454932988086042215711667907211682182104205555692619204331390097635169827293169179653315807230453047462757167686420149476868189480238982696454827711972708483664780417695503222205119802421540936280735320003176778685230753135115564979153791318961104788464589087177497824560709685484867992617101396849258105194679973450291850137305661656483491743817498061423425164790068089745998808798082432083106952820706712896542244779940845777479068092166316609826676674903638775212156420172083791751847759448588192942037738979370439761267464263530265086477120462497766760785446569719782793463727258970444114088829112827039305134392238135569886462279772297326420164187824570734609874538443242366168448880218696805060124116764292966047511140598032002897570640374953068817689209938582742503989597520137436165081707963918257325152688478316332566134799122195591526965990763001905117355434226998041913580922322102149370597510545326434868452510109827032750525295571709084859783208554038461198906415606929167860684018501876509592031263184332143970735960564043384160167930764233163978970161011841104728737660035059048569945096472650792088980539936753845473270718199402093223524492066837946281828369744387226807374868078364782228004714656094682650452442656079099310960799250178086653224709707398818800426481700810233033518051977300495291155994048938419149920263011856861222385647259906692732829914408303077686688480769812566156789660314720700015170224958518853216766140454577327957832621241855959580680433128634745914257419134578618333296461554272165484146133818756433799091351272648434966401498589509414950751614623033996512477522184845313678389953464094286890028970552940607047002737717126010843382307619107434191419717821238413820011155025576259821039203865536751754690604306752795063116718609736367170859948241172376160121955029825051978342775566990421632048776045739963931391289647808673864116174638439403297608378299874639629459769645816716388857678377008377357257025223425107242771086679531227654684906572671292162132944870615608808336578481361846763458563931429754024571005532795221669663672088531113735947935014406059898810145104589021078906579036380097815668753096853035017236955315926078403154742624171061974921000992458298773321575522296429414807852849037167597916955935315703426581699278413409431118379573442921574529115721474574678017139321800454174057579384182937070479610523518870822877077498030287448641851184270723289938736917006378221928991161837344057691170730331460698360386809704503842012548465578152444132934306247966961081083345607272420106056394757494929118697385542471586571365210002937034496572671834660356788078246986606417369920694742833051810846494501418621586759970304765750809236688118209016254903286412386151926370321906297202526079083493610554578103344178062615185563204293878463086412575831792386513944110580391260375740547419264345957448939400808242804582668178070856576870089798452274374791718417070004266393658602073813905065382397605540072496679340455007400360440380334002291463466004168963787080142144756167257940200624086439435719606110166797317500000458197063986711699288795038786417463907261287290737200009231090015943022412479848855152466654714213186214296873091562369504332025234903654898102174547608330246798196243123211885548177498378043944178841807166621789371452076901188893065196415625163568878217354447479560590468953857839833820877562820260799339141192220895911980383020112663468281973377260642186693868596705653550350284630828225445670323908536555529513685038389067865258019216776948739995381075286581407472214699155869614835511626346798676297692767531829001499610732699610485118402350223649358190925314767026768844509573322982906959165931706495639473503028448674033821122937158249872668759329073309613870499084013370747000759361900804925896129736200842480094164334661774485482826205941780808458167774544639644385470253048405960103932213297167909087667935530478487088906877500011557666176233298497256993054176787142281388758803493604902020849463136275222788514698393530336268086224399242709807421079377305126539661078474168785722728358451112342246221266627604219730071144727754549283686990919073418540284077491925919846747475854138725953634243158975595181298325140376106201258648986629466942379913089920506418802208161284032362585695527852384077010977325832260156990364184391000369817100545576649464970491823833638481401288472051705437684571361264309825421260876598435799207547164210997448466147741948551409746508032374093337536290674127100045997934604056286353096857413918339637238595633464478019999678347158535588307907024180634974551290383232330671436689061057440504822428449803761462604451597469116076979570745668632816457045539887231148666319510022889124021927142481647112972057388230865153706281432117680966209832068094063728623369541763011938017382615431840048328202654982537230850596421394035914023731645577107335134899852799797390221358800769167293813746893773116763345959413151942719480946358443898551449700019033621326763533440091962129284107806416785977483001600303007438322689005764948357857740622047975228996856779860204372591922092676037709571322079934857651082439853311311102637051257470219969128448177590918774064501569963343989642512443911416766837857144116394170277083128813237089386249090658688175995475248313096335929580613185577549185569191870392389050369138481945707598562537057862290680358687689871485999858614030515960484968137670614548442000632953338432287579095544303381874691593544320244806128273700545943878453639541931125768251723994214830630049605542558149404388510154652798042806186997317898716107991198058434866197913037000721182242794308133331502315231043558530723657542086294788832482906912941738671244900630794910767800604819197364838879240833094176722024227945362412191467816720496936981192676845515257339594616581666212520104610898745643798045647567104539102347502995695160255522619838823193980394147131488484266815916003305996865384178445149769675992342564626757076722833401562839338022904695953036384237343513259816430545226979028935272140115292740238601241442766359645765263500393876372197036696897966193010932313052161240922808324139799869649178545606127086532501734743885378930397571941014566083226248519613144935416251358235602547584894070244108022709719736728127576583967366361874430413621370622854881162659941872711631488657090584658353391874578883485117050783737339122485934819728882451153739828090283034062217634669747755392075886564677137281003880262643384559662069393221938844186814210232643893517825839393821283961922038093807193535760883678314996203243663495268369193384136481587573595380478959096216955842443930160438442002166218998238189434434600318362778694756900990994816702095307884875948782819331450685259190870248235067633392518440889668602102757116654142820765676334478800880347890731051549589563634732788108382574587946778933347223428662475158817224501169169476087152205479547833656240917284174402117947036021723868149468662407468752297353222286567821738729555487304067022147278876983693974075226482028492687269841023569800925921789685053160003891738429915729828438086107464507411313865661111484712285218249797390500056806307687221391955399390407579235862293630251925397511500869404398386822280883110706696841681816448464234299547732602942717280143267736102126254053917349450548297192115057266522643415509189727300582501696875306421937915393213735308987667463366594582441133178118225493641043006071483692413392857409720701349594171746461412050704534028627475467291375724583853053605730618655934946677276672052820819301013905409732408353844441419144607827480677170526354300571269668685096087917244443051693654697707261059686666973143065078359215219174559455694242215403042755406696965001771850845633923780148644437751697726188070116002643979193230225533654639739735566312502956097610814500252583482868022676768434978407464584295704189954449736239813124603541534314703037777841269716017270896191422248711045568898341277244455886004791726176409795692652011098656483166235451233724835639573024106893646576964375691435362940828846636432205774783321375027473126860940587392624198362819273380801202947513873326808430288896539920185054852042279395537499069410552771748056829291530381594732399716728153088199812979596421848059994991820556026566556600573979402930014122630305135213178315798621769463870472001019753694252718839353898702229896508036882469691949310969432177540957913818229911851817180238950026581613333898220577888151939980270380220010999184097942736609408794346269219621878488222928279149397960414816287542755978902977244609074690665616468236932403668974707900179601201666502514755447590657805895724375711175217872626098633513151960605700047536933599011525582777853136547120917782032216353210403687323500237397207598206057054902106165286435432960990345323677106969258614469252125742208343614137819691008307855138600283602379503995291740617691746406204737324786506655117104202481995224066902797079803406157049904410610335120229336244434869074745182805889588065398117148793065545418257561548687305387006975163514917649110966560550127050066902549617886294211634199116713623827074142030553099175226261313286381803665397718098408333071836449775806576144158879806872110068267592464421954680289017040881054478440059072500455659829123077202437518191033693410968841527426830849710392065787682762078682530638352034458963578952240555524585429323371843695096541537120979985657030246870433041484655951516881523787540237833436845654051911284322819684714417331611405632107077132500671199206716222470719991151978339801059835378396713491168674972948227477537075637061869049498983447334280652424956563053781658863589768160722393330433007870111483054471210847501533372397917634945508508063481956268804240232002321118577646226664683133484546247471982997244226689761424709088594611866384279370681981654286605658362384265167106291321469195726149201635940024085562687481781542205289826048185656897479337179525103708197418456106062172670891747592981613075426415017624149737729881007938413021362960006614606224360000925789112460001739512697004176978972588737229721120278575495398356782689979616250161575813149934230413703705390927403823007346558408101431352094714724531368777681595572591249255700869640184585882979761402060843587161146643918844008060947901811386572545691618296163477261965699840360988197686926814221588073963537315801929714110845335812486130878382496123259700372933067683908805530227792712866763149729441829288108951016131299025564264816539740150241630224027672083935619608245059799066086084514349431374667406443583890535101213753141406308643567457860358450429223060708342351625730641594275905530969793854208217202763507755346235560540658464228153347516976283175215889724987989600711365989945682948257997066037858312169018352041644926168882679504399519937564815284724458640475057993426179994370486634212811912670867732094656873618007544426182517383976074421415427163589434979686270293184433924342199463800233961167080396031246159893736303398160942033418442837978934228108884879312078591868286632569354530119339899915018129863937357255689295024726402061981384429379307891497134216002385352495270233373189211505365907626335272114450075160691633638072936815118739428984434704377848711883677085014271826125581063398502172531351132842025996302942283215499554792040794760198737382584777760305844947556420947489161414960490197790231344802599484338540428398969377223765256559415448327787255982335809691819461979252246040727292448361557609092987802846859479273010369970522386422658671931928303870825360471383630115389973784888880910619422841769947196770691291114854495650672346879317806460532867307832150482120582950879813844520560819916576815685157887602064465786742146709362421662423366101168643502602430696762119764782523844106264848494904012601479180421484958246253204763634123904488179843044542877565316802160411780426554235895620885265195564294178350020375377802460777341599748881621492405355808775690701450169951480360364689589911171486774165207589273985410007452797892633483041480527372767144680748899393106269975454597049534832945834794741344561266251371240248950177336602705662646333368013676252867619534366422708606255832330978021650597409093757403342386985904410630711878171561296751898049284108704107426136318412889578498463225179007257758673933314159686216120543525025502646408202196620276596477821933189236815406365940655040161639365049157495683757722854551288573895080078737105237340661574489870098544761933586442436268336198638294623125359174847800216509510525284507579648456563422999588865749286572372704107527669089895381914964927569172422630899728090102315186085838302175816285022998173315916003828139520422723842976645473335677898993387908204430485842101315569452054887126216171170023954609242864004869761844079360934471984068607039492411202902196980493749097873626069999168290944492213695802430694288265691263869056231552447660710264624779616193890971962344892141135256528931793928510264251867065632106198379648404848183950312700684859160200708210326917040453012360555915756972562271786509015884331484140411778623624122348978924729733727304903449068153671327138462460144687561205344638591926535295511966407133833792558334001211209606323992848495538177953740672758962688810394746111442253040879877789096610418964291001960340951644416575883991866549677526175563331031550460649256364351268197692284072029479783190015215422911432191852073064653316459254521880849658617328563552695080837948405275167871603486085928749977769714941049258424107305892024295243500840303661721195999144961991991769546283315916132239417181492245098006198366432739478684761880918546575180305897556917949503924431182418634273412986885517997264710060842103258341222039935243909545279556468590196696330261349435930411698621846706137872631245065326017163432739233634218604566398159019553463054446455297763914466437049466577352665884505659429909057689192056540951020895833345132477266360935536846935243342867261296170321892388208593030176684634858312189038042200471667077793915502108541021610598131990635268766913227008334697676471287022879242311115460399576136054079462105127339340089311085032999835789475472964868494420272871889226897703773033561024782325099430410972170915330975976902684147223695889278796529257590440396886942367593981195957280403083025744087222759201534704917580832494180974602323978949819152879675027478220749727715960512998539343647223333540267791350577973740129605488102981271266536494130254251765016902355670560763915152358153079145789333830741025938474227972143287268227957342008137002165337628340596587308689512827648815743056408251753915632942422088448614505966353370740885706019422967039783070399856053158489031001097398941381264217390569857074241259377006267165879128896080042473126849394213202411244365691370342935499035322824390308819196310095857632149327182387072911750492919688305946836981251631674223806713709913699707272244331267098182990312526820645878523628390599828634453831730556075425431701541164926985075916104122103258836751112438539233176830986174604054478820871009371513066811093877397279998090629060880870642206106446014628118376598087066437755547665149347182962966532171541852276239012219023131827482606165215919086530415909053909900472401886821826146438661356529824614050664011236881717396958861565361516908288198714029209041830911672501426489738147484980793910600480200960263162454950136085099627267776211900973924446753168638833258134681894327100677618640730858703971531377360476516865537947425134301872634023988816496872064269504332787241636184989557232995145060846175659353540728741837219828700140914848194196529848497076183806575214989789864517159398005081264484550371245052621737554521119296515362965357454124393829957247977673950967411218752436978833770522531792057802200250333829224497958406306315094622291811357047430103522307204924230032302161338177884726458202710141121269901723859090374772586881890492649969117619098516968069411869950055148114907720068051587301538103677442555112234845425208107039854720909065303003535920842242306981864554220641245624498506016937260167911124279508242403396528653675161557548142798926887930688288126998978356318862254315748255101925811408886666856383991790011382830625543800625246565247869887702958690856792642580818741179577301892208220024163248666894949830938963732950931224723092894005904525389383477193198712638304232636762588322151254811921958251616208830850800686090970555262268301199254929204195201622431503265775291309829420956355299968478826285376574219144804241154605621011478995241574023629053974039793725295945697920053975889963507455078706911453220235788389265243712199627841808643586875702402151367793037307823187150351841084210916276596392302342395013243914476357413720952806719199923554379158053314499300050171710650890913406849648840612595409218792591547842243737237349574106476708139022997669185519634021318602601273016188545386462569332935600372405826359373783567959844359636660171944687598754086111631658884627346506085580709994940378797030305987396799487739485466651017982965369147778946347188296031397198756032531560633129006917128393220067442583111334272709929740157876946650130545705749926986479433982420482477146043501335864682335178069897781639815417225699895610295644051077196626059592962581927681182529519177081775994917386219258180597547326911251259481563296075114127165994100864758404679514574326020635901306691106492026412082581475569779833488853497115144144624990699881635411313775932418196769941666800176973285726334285397114617899705968341830396452625897963153823116504191922008568073919138515230116640440435111686383817606067979698847935152176662067229573376344284853985349305053535670912424066656294639782636920772932711145460056968551158009910258007484411876296103556893264430520048597780608469788463538085371587861317839614071582856530136935716202434371457881894562966826865019028486191736942477393036069188884221935695330925624402451335380317407324638456410631415934478915184286499430530102231657319269988258867235432300301233821125152580141990260550967983051663389218977713557165512019802503001594080223954311080747455454432242655780880776989141828638189049749339072455725167988446502180446795547205382051438496891077084645506703682112717311657233778953307272088123413215075337499049274438506981384901216294984886745942649986869277499240619238014023377873664654972202691682745291310819482501527557817041289802127174510759392810182016678468064369793703098183466527612798207451455126193066288181216382653277979950818092049785346154891086001701934510316396658316312111886062730743251808324482272303210814825399681502079472739878635825652745547660713548490699412217895892126168802992568806120028394722665122562583231501241077734827027764308136269011775161485239137924043351626790514140259002691266427053539092950314889253169787670719417483009018241280590234455508824266247781180743119360357578407401002900178112133581490896154996094757457581441958662694125658165750743732617665982634143501073010192318112635925221396690876854731808465070011294111149529522964852398428177700602919053661002040600765200355925461808397217004668216798511571426630295052145846890959956763580974058809780351369680857382134614797966533124165199271789549760455231054814675997136252312587057112807134444884538177695654931198293582554974182880393178765764043785835772985536471073006203693023477344028424904385866796485748873679618132249708764507456672788554625080829666078773009411542990238912846511415609108092458281878467502330717764441517365531511334655482597636488289878364784588446273151293360333426502523402646593492253027394087112445358190664020085990332508381059485945218874989292948543487344041361845067540524788930536495353309561390524491688262608647914238525892680571196099054588930670186934153754110510823566376777511425619624626516721821233547057591120769419164885455118409073923358050298390725347340912255960525147266164457948160395012980241884303017760202590766252203682668866016320038327045924098226647845373228248430752903964214124214930175023281217522305227713185854296617826747225060048016275184054655942927511106985780059746784276034077487599221303186456902016028704286355731027157199212012037705526945555291341733648041181385332462052388434575409947429071557334699900239836176082231131933155733846524261301419740292729929391718719630043214055625656354466247501860240802196906959631771184854639997949453628672088445894379332361082270933794715932065437236577120415486438850166732927503762152391477601907889806129917550265536289796821532569322863216888304496727056033279400931760696239573253549661426800903491836781237126892275947031804212818750227022031769874340156807613019249324870981084285449544436649886024006241123679529600184859825414855141621162592522726013924996415545523099582434705024071983096744223539955669607666472172991217998483000100348847737400550435250138327066989626523373682115895026778436402915258112998329815591264143734316139079722862556264434394736982050180506673886753213001124872634146652847086546849641028005518352169137408368572803520188613893024760637016487122576971082712848444819129761512367257393314644507654259339475169848407074004815138902316832621763588924769291370276981526298841294648746461916623150282620021732353461166823582015857649548315082677424044317031481764649991594076286592130225669012800205182919672069620651581466661971630760329356644507980490078984973101506184504515790570068227992685499699230830551193660568862883085369002385186194198367149517936905094045041961921986737785528490134436162799493034322074861580779964926239433673583923921159552744167231405299179062397484459425165992981300817210947628905953727120697632238766299589417829388309846716816513552672132697612531506430413467764786896811862472864261566077251238341025039843964824404442881753555095542549546081828443666308662947912577340130699854330213072564219998858960444247120870465277569230536143181542570872654857297370681517575060942450548237797964739524386896357733139900709031084049360713019377464239891679025456197182424636470896987633231151954269094243354266291864387637471441719045070885009692075051010078668529328926498814109995243089046909150369889423680788630330477811853857342375294935835464456277595068628719477534744186528729767166064140217140927378253716144801819639795427239411928696045376258002726903414451061581709999175138597196861039166335017241502281451105980661322641272877356055955877970070414229515781789440480357466105859229013519427100799607037865107154339757778516823189092947020851030032792001109203823579396223256763426813336456682591812521312675659255724681153425010535804256007879598834768797423759687751015459658202705903370004076318755210561184766266012622784859802326561417065230514221109483247385036419473846607486296616431890744424582245381321755934124486231247505640833583278634015228146961682280511455215240039668118191940802890649856247287724819498968882897159546461435349589108896335702944392208458708834681367810398647969134163641865983464828118391213122934521917029262257056424058706823382059910402111371569063555877766064852230834877605715779480579005319400172718396749365374429309578328490635273141171282486571173426978763688594753236472063011555300494274227476969127450064757493078996048758221013965089507267130676795277232510197205907238516625704908489785318513391882848094497073146161603285812073572227316611819967446356686387276146994678194949156004728104335240119853487132699364459433764413061757807487355708185014884855908899153360513814451607710671799854896855938780991194297021477867094546166705278690794654653452389055061711731605206406569041835321444631541503759407619224852817264904259425694272530946579245798382718355549754178508985111892398772939372684990418823484989865979691022879110683720640481818284591515346479012173670168458672297240460787328385155240190521188567146987267916485746370217578614705325686102292380101144942958532767692706371002319736833059901194236467127205362422954564020476689539017977972635147946465042414881846478495367771320464672931042177356417146633518850000389620953985265964794836317666644463208731900975840729206013817225875402838591700411841548553672828396320798255933500561325193845942108017482429018478956526146446766297889436783508395653575396081348626822953863427393440713389798655530282936231187896945680977372309861338865804125755212586649098237828824536924002167407853564291220797459884075726065191071647732342329108747578904395099065993800282300678381327018159379149889538448599631661523950106236025315967356697525670838291837218166662158678319592792862977802311154070346008907065329636126061286090481498022860173220767365698424825817871232638479791316333385745042569744366384589003070547830933673871566037458109572819745277688913679339973421454034120262793354176478184229938645423797128748774799949048614025185780247468023471970468224441607890924626564782904159816251992033486446933309540023918551708422845289196227495746944461048300692355812370260237282139597517473624096131633672079396033893726287854840150680657707584103516017626472304919227411930817830766913913857948855122163848784671201633271181717830529932391080299860928576666294024787027971911681172673324330937275817183588283609130263756400688550447891880092913704864536131199512647178627823192879595708067480254157373954227459255348856908324735391327426860679495597164923202412666915942375192191403629224979738697560548606803570826399445389323515608401509658745233330087503954732357856993655938397831540017659627263635225014883598460099665147746756500035844142120517050905088320049237459597220970141808772444683040003664930782712423366192578032966387447545175262108234691458636741668054411220877021053634300447533957963401183806568048725388957322710138304826021068908555775574365257497070667678471351739895885480029481703874841811704951805140698897046943253846681711361307312428301653195993191506204096100133331711369912378257941223341148494178540443913556904950461452105169252274049382752742986632347997827500543155680697030023992792612347621943150357600658254347853366748365264152109183058059248085276467140485236754706955564131450045240837204610648455188230037798216154374818604112572414558820616964438330754436263397028890821553384219398627301227306186364774548833224946483826226152869222153682459673930394426588508530581578642104684989541210462259735141097138001562076579018714675188823607073780322626503054409437342805282140381778551788638835343366853041479375587524261640966671269597144693260221277673685369003114692228912125257242080865181894590804895197727831383794133222775629907499584384589003929229199565547477241869635887106626420124022230539218774995329032497369771516632991502323670398722190057045750342780012666988200002986246618082617179754130532487793367669072321331391667902410624265330069483972064892548925125846798874457587992234519152403552628017016848296967369248170268368190793039789712523208592286171649661353559077284185401184987154444725678781896390148497494143971850175818267524159154819316078567329829051068377944713479810111486689997894631652938145077310169248214334759397489290545984075944103080295832222175629364622715279472683652120238564994129032596067176250417157793226448357039853203096670091509996654423615700269667890492360318006113880254263890950762167910231962865776339072506923350693363843187450741304333201772867205015973768209801233123224474732898896456892832809196237910416627425680091195909506556300268863655701838349624503188116826837771148869121750890335644652785069563066476887527717986320899557934135464793755792829412756252498367968020065141453916671043643316041524648133407400755429509740505677753460184276310719845237825592206087514022358127709316172856598990647959339962787689829227683713810640636420368642474514768505947279395436574286872266382557761911656036286839331196739839437680732809228607451974283864131611202585999681829367021874660935068342013942853784372380150460387051515526741631579152028152774400853258581532919399981573156079252114429813379047328428127078157923925086408024817248662975446315464887597367305951581372307084153395847086869354630282922981246050926892376033117347804036680633112580943507901034457295091204409938808438274801945171447011580606223189718476843943323578466726729255942558926226430502402387330189803376336636272590156171941393281992197731194883586710556902857889412932252061083532811656568742061523439056878226789851477982158164176767721137770603238022372075824608828080103371915379201711365122364585851225619757098970499853619409691846515563814761387242109815825867423643237994273827777212282230881506847740715328738470944903873657548412348521445699876090701821505080098445897662512465005792705044157553486135632692414115212958289036273575649634758504189197327715870385405649846008512207835899826863903005331090415292970644464717873055732396526004792357519741711797972797384133440366128425984753003109514692386384195332622164358488315338319282983011324414030404030781307948702318792541297171806810999354089248484814677356713892359351740720327460544423834315884295940937594883584355764756993493489293467897439624822102119306211246828449903493577742224279130592797880325898456716748736039541207873267771150699708674396832010256608476707807204186968745419625544009045021841954850823952330357278174423699738309189053804706173312859872964197174974987848992013770020283138483596777063100057245114848769417920332278365005814140876731454348441494380285992018166017004078317562158663506465081533450954044040451444942654409965056271957287440413708251569464972256421055186586812999049371419269232722221510387353885766622129940230024099848371527616046242746005135538725952684412322104576765694994348031505301748037298439875941993092809118522771403839015239788587006621578288494556474359956739985500533564472004274013172711662552988279393241928978235002216920186658341703741982343555806069559186867882242436685740487268746487359074790838033799705296393705631287829993300068773301710000994577109754676630652130215574455101304082086231290172768488723517643027118045681053321128292766845343377615381340832949738967930653886865948466456042285031375250285291461911464919015655742079525215617281672662939634519537358757842586705225403938935123252186560551700946845343643063317997263977654372046760834534914950308992551620615536342550624124890736124347686847654845654643498944768710791539481887938691291160370409335525530332619186909479740521650968135596205678204433125322470441810876944739715437626837279333163321401149132341992109470098954403894596879748783370471867708939094764600145009195128203709825102598308200710641170848284680000233755108468509780332092826696903166145440670355575638391270982858510144151619001743507366591116793407274411830660729370392105471760853560626475132901988276122083687119580956301803251913285293851376007813773148285320197533068229209773267637573664133986220208769572348167071611296439577816913066175863239344521993003243124497258945731937368709839509417330185317906801356037872561974157014807659612640589384173609423210929142907008965248833041220190109972015127737641001202986706090401988266175561296471558588992266944385768929799183166954748716899830666923773674594127852432174157144019038226651443543229919891833878701195722065322151672586956746173232330001775377656269416073858200962897578825797381838273722671217963349807375427872029313677824767935262075465321411811190053188232990933355468758504249538264629274593013332839515651071604838413409936972591367550138820883299888837230611696253935120438671056259349395235378305925750728807588490392977989436899410993050741094100652791980380133079483140275988557796892296902952039204965915379285420571827833613556369913416680284879257864848797289156744771832872000061630556290299863127186076623494005089132738416372158166584101032420555704890607961335918711831830893251688768424795955680114668470644608730157777856346407951896863244830946166913439902686600871545719846035583739691071844445861692949704689903264807873521830291894477299232590629383893092974296296522331850378939246439542215791766848893566807448828055627127140572141655493970002664045726147572617908917105301552779624814112442064081141111689305413441320072778860518151950261685289634004192539840253597571498294409578767195644862346812611785265373627026577428325118996481792446439774410488454217999930815729546077803018468736770171072271352877335178181441425181458035895973599450902786998435015100053539750001037459969793050110980021558896427004259928477421971515583536397693339745902669960676171097740557293864103287633067663002951555974293698762883831585925312575356228945912984652720128036444137053854354839131783588566624147331372034525766553074293009132828606710758207609603832361681425387515878745280776620639666569408959546941395051461602681208250167291495438793000756731198496459720728310976270953306019078218558149399068112639439316076169540825751236899822991818950162660663414824235995533776965201246720018673136167319605443938107240155260504843974149435611317443895866066445791123717093521941871899834516268625424210232427620899806665277444481180067115824885475128081341761690566305234852718158547574291357695738039746777032518912567468444568554979436878990846208659759674026308909955132877160507965794471970390060171044554011984117708291623163290249172746102852714418913539334214659982617537259227545017814344993233535864945063935917222993958543595603639202564628423634169814703927417267767621841405866897325650726791514976631385764244479694026127041960758967009410620765847652897973885971021691877882544678706754688842069379568043150376263076375517878313662807832061101462495956414120547417448700975528025884315566079724755420347126980992883174098601352540264643306687933683311292615894752370760334377223473163842539340989554541714162503623087023461591484528812909921410339539591596332504388035411789392289568409812723646402296815494025762090585121325810349437544902952403437580328413178169047717665005791232387270215112529317298701055332428608053321063526149090137340854003254320351918008336641742692750527573671860717192187722296732369454225811886136223109269875067087111593407787648841498156452124911161166124158040036448884485156659566137816477638751572444625511640956205406197766705509889186369241819739479731991151967068144730998136455574168073399773096777765115425052869843854914011687173853458698010963201976834600811340689019738423364631899276477781635716554530621522667189399756149793926348115348860580821405787498697549025547688763308696421409260679960921169816302635441818161328466795839092742357807652123924472204250878411172016065867340003403063945715871257536387251646200455509139610382063526505565888701527064876130014176081164699355023440828645469688223704808096371585076251349512394052154701525483874595626110229402593055613579603644980088682735022365122460854269041076620540309914861480132637527931232685978855957233412584014828942003757743095625428736735601295627365043352402951408793095554324561639406940750403006028852147027990043357668816715889129708251848088813320356087211137571559711197571206473421868040818086878064715915925411609862779758043767427066599492356067431113528967378718571114122015798006862255688525174973537571587508717489663518812664117758011410300599176805878561748875183766271501524912432605667998996570148982105323979654683434010250519089022965745121303027448520221483990613311319821447388406275915927182680546543741055730535446803296745200772834574570765558833342827111614976562729432477207161025413720411477355736375365572931801764163924894101841795903441163803053685260998148541323951601485972556145103704949305549013598319418976712527582717581933626772599916829580324156683139262171436152381772719800417916936358488785014149861199356123981287174944479517609710788255668568652288095574455934020901767652941759656832446589684890100717174470995290558957374195018000231394552792219276555114303548249542716725489773421778901333971473981065685273970727529987305721632073607290963647192266940507834322994786208609277912187107596949099197844212110075762495164378119908522097453578324393631542846709927988316301610665475660544577584325042554944292282384325827994542001354224580862278701612100990605370809912749007691534167751765340777215423152670369992312236086919179215209692751714814723922207801135042306232670697408132354331937276531829719532857511130119365619134992779412269254833738110717740849976502597659295911191325352248509513624357895431270576818150201262721558899517106672517780551071065865473264843375522452750181781529155699475405528338168867779686308316012255100743326630312323217052690000463351004656079768135968644614292105071542859331620925750677120657038164770160202107359705574860165769711340308049697216980537800388530339949528129530606586322244152001344285145760771232135798124994463341416575524494507315160962390615035122873485503596947939159109006713304867320079898011225190840536741064995589635150176668673440631953370408728554458743127231814069100632303115481542167157482770056242183044111258834811867317760832661292971041877600667961070106159539434469020274829219987670834968794862436876445902940814061115223652951263887819608397907267685373808819660853227002777220488582342802585045909751561402687706464101981736401255612771964366045161187497216283747054449686903092650188915326967770290950437046296720634583948953950598054039498155222972582839930276758687909559025627771343480991867048382837580271236296024516205800292763626234621894761295203253182558149950515391872950091725689094344077922570737710926523499101535758471306501648346963627526776328624186260196960391471737725291001469950177873242576984881416690760272589419008966106722907859841109532522957724429575642730556298162809616824316552657726352175214916196145267530060983621082881054580897675558483089551380554909771608326583037470743515113277402121497504784349849067100585612997090470348890767280383726324268954237959981968660870497621371736434117165418869948915660903324268558273321144526292762948484078720680507716146129573835262600557072811243843378493745198733011065596948565448972075933004180218787472597775163324192539745762659560656689088226326951796224224042673908490619074554304203893537202369933437640786064360274089955209506320033290726002454107654404560014985456689853081491935045600801905291684415627870482623216966427580482867994720271864630285526255707044133623105116846760481651367655309952719164215096894360771016410852815248022470717653489442807512392911615968224116424636627271546286999043193817863639098496509746890341967918935243019179595903076192287813163229348307828658672099224267217509681226291044755920251741902220992818008554859266973183375006636638193689623276668612332547827096716736877249247246821842030404949177996917611863236306422601502850405098846419126278660996476380079704845303027021625099714294750751426046645426686799101938169898366222414488925844526582210704390078332464345086065771125909418235566917822104072565433044062593424068491589654549465802704439402621219265557366319089685914536302477648735817441434344433428457481441234566151605809494508974266264885089561202878630750215070519764399970408283390565647417926919439875457691682683367284441370049855397290537060630631562699864053077341465781757719583711639720776333286686418714058921473693894945633565035670679548653512941886413948622312603477626557915084954425588027399458979940628289373736352515984399890878813830333001748589967247210507281907412288289302248846770777184183256470948672010413843109150770877415222409097924724217485368269081826954212867275784399993241250439032483678206151188632866913913743917904948104161389784562637860093882855676630259793601260370337389163067761769493077822071284755049305914126351793670504750574452444160879710221539746836178394836512766033618583801777318450328173540024721761643059002271702531487008517559268479394366584081173736383701721521642400945794430965309245449077656668431828412541705465274081083176787786309286976990181745308215426837477357990296222814212193328337425722179214320856551176587188644471439730978217900740143668430299278073054923932453077691312763481477292739319613909749936965503072801328299559305718400667017018712156054621083630275114233802955313222643628268896883618742374434246591948272567920531597596284379634618770588937506228296724992247812366426523214521170864317656518981967798596616032758016580353633464683063543503878970170652011457671335096726189319905279209487455357802638844009570351766050378898472115787249123899748176737970757969856743126369506751540380594344340143150016356559211841935827417630861556194835052904494550904054618970386902038488138059953690689068180964627940727760842951830128469921421450832806371309241441735061894581668884987097083311510183061387382052776939573494337546970036041147638130738880854757808208852822832451180168950257950626005379365459733768928796231835924197498737045653952703963714483873286399207612257038791897549772563477483732786079149069502686829150623057535308047806206447631722549335959719345702529629733263064021889644150073948928490798260868628794455720255268056808865274630397505110362235554889586264589505834689052185379232406642106683764603068697645343844298548299568079736077011185961550638490845814938790186635290875485420602487931407059832862324256565183949018151407244437530837145909007756349207744849432163732767817193320440044452866121068363087505673945925485722215083957704725031439536828711750918244870889393358659963075831966775285596492945849393306259496815810938125765331271481168247361546853725845072859573404354001030986366281017861511579806855673978578615253964410896509562272318503046697075926696373017655856749844817428079021811161761116974526188289573917775120315716912797467901684973969115996740229581412738481465784023292039517674385015070812193453952284474147274609795012837591523334854903476388410464384311039213957135131800483688277877431832624604390165750292675997638239537871054840251655996486867863187180011939443721208152224683098534405837329537370901381511153244615501564031426571345160189191103839749701149923427440619874950801049491888323964124422195284518196181394053317281985625401137177254844687427659004359998016831065369615236198131615378443704704942170123583252166483160008529994128971774234602720314524965875889014425303474433589381685271965078761043487593020764293314107266757761458944783110396481340759394276501803207718078933822727702793444054929947271328867801016753251486239190304227118713837908324487323210814231346037238284921724489417669180584251795344445998222278042730432503383299612423314171290450415791575848125022399459551844077409984056772842852548134792514782810143902765477098932143030348699267397875581155144841616981236258769959469750854921056091206935077360840684538799827818815297329253987652378175554438566086334800972736519066826216908848058477233625942664851366710964724748451379000220076917437313533188597463607331978785773056162840472463908050402171161034623954104560139359028147428296362897786435094351307281591406765617193921553250230820318817386569911369654049994211733821291307363254020687023521051884176069160268118325442258632372596596367281109510573866402430079807455306207367405507004936463531017440093893165113641257810995620315951289063920961006682132678064408269762365308903878418253657779758502087871257516781952070768415013800464341145891233209235198824216006472171045554479460360196719255509632734220749391032678012649755462390160545472404328914754819589197549920650531274152180664069880787542482748300883893699012256139769328775078027709279653974974898539302339668725729257769285192830583910677172855122260090506198411934741829614670815400456419000885103819337817743919831964953246043643880395553423555656569410845242404104685511474949695203126262130651844621160360482896344409470140443478907377080956636454669362702786631575183425212550832887437960874661673510241810321438545194672225790986365343008989984559244174446684272160311776334681333713368270782662650762276330706326211368466980434755761726284841680501051317805517232016669887592531955039959705349005378963047682169260573030171944828524266767373414369380502066417222036752996862735568946417409876803464099010373025793712396849053823374089985323085119497042178890279817047497339851001452547622281843704699187139720803836212569301226675799458262196509326627880820767053570356971884680142236379134267374898955542581996565587409822266800626804701496335484810208055997328850924778271748948485206730577300819025078083980770957080943427707045514280357889078915122981144975469258210444723134414454748539067182463144880764488366411699520377179789337104390620502439439645891378366414610797505328682854044386006514511591044668397434458044417070650846903258353700807933725845554103021704083595218637094580210296118067552289372881760188953560295376413846963234214455840226923599810398275587643631585161312599974509746809636699090477759627344327309682233873573752433938224878640183809551550847184561122960206848064830678159857973814387097956348911935306819815309665470064192304334916008308039233026151671713344371339816134084106275074846221991985616758203331378225035969447345761756968239658237960527712325660510564183881579029309064772031383290731998821459375959596099219479170296549566743503464287372185531427785792224287458780211098087955537668545887006002974969192321344457926071115249354771086335259048971176896421868694097882534299960012221638412491518145483048902430835463262406047698199168755567530043059824336706157411156016493972943099120676987461665288053026026629402294778621037927978635211830146608890919708767358277840864976824415539201294235625720727158152037521871456971050227127343949479072451708867421875179576235208997001890640910838547934996327818008875548161023194645058770468188949239650254302541566595388827803593919126364968289041884696065284455757570539467327796302626751250570952734500772261615576074672011701773834971766650698953412121904979203872916060932353416289038009504230977679356036300997951939023204258945178311524944858850582923033280586661217703600718175744212931086619564361934561087824240885542967010640795673463374156391357372319116433179808205416770858127460463379182384928098800435606778048171161064635137728359584330960165588843796474417237784523325014639286574403856233947119197856773033272452119958745872765804667907958590710319820905800340718347916364584407843956041196742926713947537872666925269644646470411140400329084799259271527594270236209362781543921466904445223781420356337714037680565558750648075880689158131474991684650755894496650315806928317384429435242134642194461143398117639129031433326794017656314933431005869263905889197650177675930682477839526045274123550153079490235792069469065484491254606725796403044721475033114605627329334809769234531413995729080538771596407968120158900892419995302762781882019094089589486622180980427093877906747331603830582338117625175882219120593858670957111524894330664008018352405078487285494886574936349406900101887612349144509257829858581253490206106629007417739552122719122504967704702433208961671968044746838152841318270223703608598434740115730888821851283066844513151686087641065646493708963434767073644019037899013529479988510614075355868331999925222961314202252032122313755430222806993881506345858827500573515785662197715985827240414589906162897288217649073554384962875464106530302999856236638830891972110713022129013703995789500220453930330620265021146892873603677026687804996152745624488306711598338232209618781169535065329691465544419369620616512190094561478601949610693121297710001798396836350248646573763602769959118272940154136906865982757187829519992781801656374878216990030397549760733875300107676472735696326142313041087594883525667754658030763955819926680951178080256626429766014058318881331498799835313177238744242661132772181624485151043246116376860588195987791723434619733775152821397405745355878070701324826933872273764545293836478848300443386302718851048892408000904433865971933566376997650809189826796776946273083515437269457218816227632065350662582795089159044732318481244776896429299688034756055450329545599606730670122772267770843887845395456433197705377829255452130692929052260554317225328280400835352076258077538836056266865987056175882840124248899924985817161033903119568835538671807728742482987281399877925936299157137533716841622665006136267893086639812331392618211058825635486324520933219156231769659759931670441242948970410738327496398382774074800499645278510569838955413573347372258076729536174756840498642740949128818045893656015998780656021030361726346242352178070790641604656883639211860870598109150477741512743227235846353419307923031578686769737332581394665901064093034802745110046880418376773211320716892687846063041738141862737569782407317521251063768628504640733211001648532066634345892770085730789782135563862143333566985241629613066599030117312198733746522634628954820918407292791644658730959188405690503488369648704772586566617623920881764040537859382290595701363517670023745075167201020460238564349223754673562161069625744783791951329574958968097308783857522109309448358908495802521264409560222926041603982430919206322822490748828315368273880783098960037256618994698419683285082278487453187275156266336948824462996548713180676817456317322028803496185850573086100434960185687586715630933754446252992190299432929427403682922015200184605994745571788912796303667297191034712043800040584679444386515994482631397073880500918669555391797607846808245281283911298410597649514393341497131309489266953485257003435393490674988120045337460088141919342118091133380322520942741938413617001586092779960570910418725182022673900514473865272845623067693290817278648799095033735886671644583041225349955989081607246116943596645051249373143685156460206049405827674665760416192330730213665116894748874217184230435246420536677071593305204801550868574490547910581950692765624680799008297340366913177993982244140508485567037518338589900641053507055403378544707096620188539991977747373383087941274912539903858914432727122883142979375903023202415657737835769601390549864944237016901213732274331383790697936739715443715157030445225466518497613025542042582683416110278495547389123620660553905504044495821116806436580525415751111271139481413663895257382553283544941898983346129871048613233390561599857149773676127400656168053632796642372122154826053878224098939326897535401672977503055414435024075058483553092544907799899537313163705938091209757119538735320566618526342539328134702106104093585378651988124644991244651632953606881689684479927738959713509074275754221229287812620770585393979678096424768518090977088757040472578457104730149255605510665249407937174848281508097233750118724991679359036000169532247822463300880571534706416983741299321159387565423849144973041045438385806801008955516706374643838780582430719217754428434598658740780424211643763232051935546240932584740928815568205678882007072494916362429662260370446138256528332147572661606855950317736688076309114303466263191383700067175636768507511903927972350770261738732175390203810827688662396295783138900366286775176267763436081286802732900032228784138225523600441108302437084290858297814876704684464215033952135317516294864559779337809743218930139773160040369451539639882624136087301791886320428758522638236388757006964504947238379011021385704638699552162239190484760676155167538429492384809751312020350781864321709912288490552302045768945945193769131958415851357962140983184161489472283588243872534470779908739866751473189351978132332917126587096215711055969213294071900324047318408475858276664802589882363492317803664850301727556741391500058007674854518754302922860922841965424362531633199850666452186553499846540051199120914134623772946125266732091742914650083832653701065372612083286193742699643314605991895883534904557663693260858640731919380323274660433096878494579378157031378741440397414449905680542867309296129299867559847199921918692299067340413163724579260427593734503496605907593153171541659171176147418152018412647527642892662032615582709113715879435022083334190859592860770278666123135304152392468091035029789987752944480286489457647601932873751939523409257252757427614702481934026916270513225435814949344227133887760925523575528538544049696413398831471994327580478268806448451739044215561374406178120658056774757216476002774721600516603350851725738623668317133533175317939637054816273888203631115037580987390576254086702391233268441669715989104636753306454380269365921141171861517627321523283438817869507990163255441588828687388728689253694238224849364727584449933625024511926016994095069967519497786190107901207729545123385513603512245320713037261747629246272396899942060460874263789391433674720102363797205228264325204123919999594360717963597798249628315186650982306623440016959298920774935634409278643417711427872422420761767271755008090571605715118995378109050839855250620235462972481303642466573234461553677524951621637587644982332220021301363150249867510708761331517618633851203741582697658931563014224910685276620065776928544709456619977275822117167923559867666995736045608776837208917863133360884442855186841538656212072540232175695137452850736848022100676615538453624132976182701636381808465949339771790121009058048614584569883152297942770204033659017989978354366244663581411530244603830059208343683959798402096012602349313186494236548988740603093445723767522196622929819305517590299228555021453076978862992264958226490609705984967879217148193943498594680051708872038312307651366405724073672693409462480682529582294407537021678269150769930846062723713583683099235478109610938373827208252478312438291081361642977767680341521373363098600413019966090378211953071630398239594321371841861466109796309317333154307720836758089452861152355639813303455633629247914510141634687878641437512389422366135052071560850073778740676278419420447833812043413358982051672781952191507301422975289821951476304654036147178062530948194054090596180052374907208534868852814587277879561802638732822158541619483601161133920801543573540764376479036540234456057842597508788145824954090122687590739652673103562021183692583435364297229666951884368717336276672376295245252335159749130646650825902530155282055476405936935471266639591248021976705627361647001203092831989972637664950076235025467244412225218607426862939917253124338503131954383354410567800807285549526352509160331414309095516603014821713405936034981845231522162873434035552976016739117850890929158711205888311567503305447992969420916288849655324082369109580512241227670173456930864565107823337216716839302938394451594748691546753799192409534352214590055448235383926311595282876168095668139592713389519412189907702645041475089665484366253544593015950475808291802685849097148064577325787226511951401590464838956014070248608432379862134522649776457589933943693985431756069850503998640467041225683589648550874497109226378037865362667644792470282452468963421927564957746000353159540038907109037917121416848731512923349008869366344336785507022778499080426681447109314453973410883263789932571712837660697258713860634731228235740692309600158846834216858964763826361552844742905873734208407163534673263698282262031079956218125300065613800050447372101716244900915220255090182374499086565235504875526082795282630132069233462790946931663535025865333882793497726679478132464797888548783308977745475292244140841611446039486815892650917433471600607615976939938944284894982814721644073661923722050602658994516820761094657031354794711669326673964048315160347896216046569164338467873468212592184153743920668381025790145659385740136170711709298928156695203294534226500122632600390145351114832021648760837393539263512576039199169263462373993041951339410764625103842687575701583728095175735141772123620027252251499879322054521236571591004030731243324144635654690539287852745323772440855449923907517225636082710693890413398953894615758997241483937252425961032733432254613704703819752888732716416248157345572091983243653660769460668066804092869084939740052269681202133146689333947976099711586406828275139366677648071708087451039485926591654781694746461915570136843770646641526982345723150622525937244352817259879567503191550773667738453931571801794009891824806875895464943220650936641672627497392699889962201949782260282814060058703638781981358253156672997264040396999755086454425490344728127638031860871105405563325214891182263465600284568010607633380141207101791691902264760357987518855598160973323894745457704890572796675770689945370397339356332055911936413836137137875191353725333370840570311746766331485938658040720708451009910663873566166697814037316609991178540614794312572168100094471193993891181710109640035766330520986367373140859899422623776620140945399797694370861514522202299202199511641226822698716554270018107556967086018169623342617626400839622864335139062339188003827222256705965565889044746553635129766133657996350182576109346796425193574771116519517224235957358110919077749918203796238650951171430239009392327439841594815656072905663839801197269705150634803996182722764327767016684368427965844536717300229618860113997143190300653663058354089368991043342588099811770909032076279321231177188967090587504663060499479143500131727563810606355325846707867455462284761310189945456823508803806614265774681205158429057308037340798012721033064424328479914750173685240099083522958371454135975267284496969125798106428559750321580174265827226973304798800645237875559499005674421694106227556134807813961184368248788107605825092971941992112811076799083451910526326899528210785397244162371190249633452971572283308295869661161434392517574797091443087707014331642628681125854171641725649481470443730360475759467205544269927217241538551914755814275755792130062488420279461745052964467130721227123501315931818498956918266157544055080611228832194961411372749951816266793189816890779666673005597911734796814220517961172636172896505799859099414753048245489320065818905090636466230667184079377886290424700466075995389137559870821835082650257083337941918407971195309980301133238108387547354224726476835649235697114630242238815246709344748216145716001240579870592127645543051568811197331253898615085782099806758467869621717243522400439530943071123179136625283225412257928498916341185267744606526679879214001915093147061357310268750987293833344124642083806246311440045654022782668447152670022812786404027900248449128622831088011726247455981734458049265680335979775891068167432422309560184546748466256268171038042965927355356000686542284365958137887964589279203977903868664678599849031131673488488137513456063703746589067489502374897756796767603953357387633113104173567635964722958846267184525712300109968706272058337434322050961496000937153586753489431392381139718447719632878234266941594690940252049435894048808511940460815084366677260622847569950926307767079279339281463565181708366875120685048825972188088661646457543050384941432933947545433311500439240963371983130333737006086228747107165012699932211561483977355433547472206964610732395186287911129869668193794022101136497290085184546085823231600347963484544623640458446770338188850604347566883568788775673750118608695216996358622344988677013707956105854148233032448450155625323847313160507761714818712470992855798968442230817282329706545121495715350861107319428146175486107174161330692974349175486091939970133361004773455058637683540724041551016267128142428156949402649120762911404200490012911494719512928213716723852087656627162527272082339337019442402083341660629368309975221253348069625227243845117487048241547345689556983981507489822788338846350959689772378034980672236258742550621362928262857566174705414721239715378620675535409662809397109959120856244974208892283836746035362510632572702401412429575032780337590439474743359864332869882485223414302765445168671057165031366542913100952555876952710128172556814189462618092791493552255053257419613020804067094364200451640178594772797730764313568793089909000511665255908511241955723000518721274755593781162440797258210104579008006367390903008512494581741996219390610485717181669264806307764429925607605995342278788906516448821468706436426215776215896246820732731280288967388192253064436079718868137310671072882789669331142768587324283842020026606263384200453705172599019444071307509035370397499395897690477619727128289585966420543167866558790271608363654581161255684305853940009231234115432903291858925691037756656760116647985304544867995300604821955942697846658619940713370437625892424303988219064759430385128078568839103963213273461261527953807164795343489583596349205344645827410362430170055409688274222645134590256914263103087719051265581762403091554310123231881041481737798520130874711869565998350302724801422701350730989161147246196982177268539829671809266018006359274032171492196036938694031316365339519606598879251966033472065372434964618080083069644716302162524248848834851813411491250506533311294629634958218122114127521644545337713507650355384763294320750879836277214476172908350715527582293446983076222478447428099490406873441551110589018648491799721460340030022273033421283681318537246520075671170503869041994625035175823969478679739831522791629859539522434856057745860032442031968845921921703025364558867057799329991956729396206665697336903371339406291318172682015328710351692803895400975838102729135391751356666629619130255823186531725345415919769291439252196077602294465357425323008029187647016482758915306871747158184010446701822001620634129797979650650465854702657499487864814798272537359398142258491468318985580997066482932182151994203902362485317848427499424880609224572475410594589213944581933681907450591948150211039406915644493922456967000017355489453673243688408740052112173534125855416362698602052788685452519737315861922480662663237700265773519311262557962148684624185646183161060190922922640245547402105063465036450438282117460401549144255313603417412923767615387041718615430597399988842901449769248161476293207621783797395604345085439921000813579414379734365059226425839666632005945187707087326114664471490660094414542629296234340584463843749769817564415360718847923602472239198174346433296827873630871992668526188436440376909290694286255167345296946591521727001001712545385146106239361311931499886863539002084240093786123226733939275122481364082606755450740345061475726288053133025154716136190479196926742944323786693855119417135867439811312713286694336589042672691244875281719778974451977019339612182984006696081995221116227765380982203363192444041622385031161894423339347497266285005746548199321224817852186998425221675486043999250327886282248043571344578537386346667590885487746670190223090313505639552384347909391190937797235941655927189880454129786000738531870991535871334989731894259358373912677226095706142662322068692990977415674618695141580797069028810994354241271451772097199844140745881891427632727197884243526830074267231527809686537188976430355326309384669521176656022596107391912217824163115699397569836858632729296606817355981075011924298947258081740610451736159264650897424751619601513417476089241274606544858955168623538591324872859035909434957989026680758121489691832588279260079956699858263553048693692821185138657348046426147882840750936963133624904511232182561853672809384602296751369941083263575581358764818677525163334211451629240059956673113583811299264928867067602308801369680305808771491686208889098152155082920164065572201699143517956976405504380631482227116558418422798089098261935457378299991109814515909303554274657193155516459278263173836487967257458463837808044676339018791022264025648416423550737605267185464937596638011154532827377648555661118903191963813487090999552743835966037298012170128071354649278662253400128525594650068372578584662796021933492526089197050293558094175307589912137718546191513381586250702585941173560745167026072841253402744382430316174348807163248918431026253642304617947736957854969284576058826178973868116145310632082550842063298976983936113745094480418049675008266048935095966197675389473952800939458269150605484115600541771048210350086460326396254816400644037021711210440942281815217609096131187507755815141482321823130826409014206991828398459686052941481644907257852889084106763532815078972507150065215807135031798645206897091331527058609436824476118191037296935135290718596233475050292778712503434345578291232091251320263229094308245254098517037489825012702798800667831221684349081706863434907489437526564017900106670480744141454048405152579280417210548965882724380349050876907291323984410109899385902974059893795077529519922763913813507401695766285955249093125298496620863416125103764940928750289331289957066214198706279449115050510528407578001108135505838987876535485940293228698433346638124262978674374094148401584261930852210020857880642260556841132532823124128959957435084851728273275995670112508507952611631120308909950098570854261451003760605279295668830858699326578765402349040600148437222888421858002805638593028415625366469176073114750780287538468940930081301337637589954550245253556433693477342247804724582682275100217365033761303100838112637397941207625777058681512596296482688366609955932077728294291506542927694852020481444461758477175556026255135439519813420254675933379042867230148356673665971768468100783718850576637657682905331826863689589002858012316970595603210893032361286881948603778850102508072550716756239851712530159024961258709665212989039780945243030864807774221867004761860037777747436151058317479688582818421592981310651237445932145713980924578621077424715606925982753604804332753050973790663629923938641721260763747164632761250379656404965960570367970843800386085627695549905538195506191232859035864619276448378438396118859158359253340658209279231212178375122622701739391643794989414180147772562949383186660246695597643678278047439002955115512400758764781229881984242658948984689500301370248246915989153430907398528333444650464461364640030716099204399806654492285504124602872551359856060622981571193875693966556269043396397541052728290980680707148129038622609534231413504447072433105960263612478598809426046711889665901858856521356847511206262531111772275686522185845354662048831809260100599622870352611463012692863136868668508596809068531979258510257461942734896692347766866308274580701050072498805662040610329339566229643371028863474146814533557234169513115890523004468446281327758043376399050981472118079708529931718327779356201283783613505479085072801042570724451189235305533477886795003296591594558533003420485924391007294184886611837915312952302741979394542845803399014389548972103813868011792264318899874436953857718902084235776109097822702836951005330743132205846943043571980230541814640289380040678885140363938667293945748528969879778496737601296170314528697533052221956703884415646980082806322320494171150114704692139684076837024534738192496799715175854968447658737836560808077814485702484590263433303613971793399913807779931217510963010464766617114571429265720035444674582763526395509106605800155308272846064305279634106372075104856432499333959208339765830430300311673282178176824130636478797453202925460846823881423214956358396125147502716370154525527525210967291069998023545567675798139560753843342922401535414886192549497174765859652022561304784984689503057927860551023877614765669128923465997143658282472838742978054669700609288316142941139633955903562956644087025388972124398472896111756124453529138180696232785996887345328126125239001837695122031133385232063191914217939553178981109067411964369292453942651744197491666273081464620596887039429860314346115922282404258998573598124220935685259485379767827657356554432638932064205487110774729032689405271598588170781992251154352178414879030254929735273217871847116449159619489679637542403239264043376775944463913553586361159711364528367018200591664160846736884462528975418093176998890949175929574784320223074893885463136434649345137710371995519329198167723006788481003254626159254586681959488878041548315245905848393026427973939395282763515103623542387881011767603044304634749904849303952684695215158779451679011712121631899836404607913745950235381737818422511405807687515880647318388721965997533571898124952750645916250516895251562604261172223533807608778142301824962182880605818060639854109361265411004589212664148380589961559216204651108591737714105828866465364907744732406875622535129410423246201821768882789062288806041756625912337367739002277688128257994193723581629646759956002901259804809965279361370896573337471440795394760017877642059132485621690507130733672811265347098795407855245045953322135038859481342209586918078186737972066082797907197144376902573829303841259720919314296774006765766235200048914722188816377510426077625158778719768998304215551053348010788084143870653860331798910874031251024710684990337138047595262912643304194101313516902246918626625230964597769256552296486207658139146472041959451858177536487876465285794074040775098542162644003958833307328310195425564052908241915678888689073042898693187797890955347577731063365031137756448497964459771457846299642573992646307548093439234770002561221433687102801176159776216176678556732757935350508509030596731471797582230477128425682684518768177552141362166426533062753052773859363384934752746313841263567578957406880391544642268392851732573857577602793711980330805616158510726200185405288776012832160572731424970016871265442774538305650591439212246782749879645950237183337187587889792444246304255446293125505597671661207461528351413524856391914482091802244230856839806631241696191902160854749247229768666704729974032098207954488334283393788991298301501065289875455357561421171688634054359842150200147512879436476907809404373861308887666986493401096214551838848807931240898840431732939058312813314833806116216128936785625052761297240765170976661255272509747850632052360285057019438312662161960089972098001413039260969306329177320339066176210784756145523173654263471187652302222694056350706130288745477619485841066230804352448463210407089161771971458260331309730334163364602253442856705241202247146842736392796954576847264626541220162223560303385760310016266063079611513696713061436437077608448628697577624660088124925712098258283929968940368377671347573984541940867261766587939065489229302486829009640992997639505379814416602161267208024810971505280683600075606213297967487848327296129731230939048776019992905504119017836463691884644025485043256818614471127160749923676046623966571870382955475220258429202509818366444900989766099636894537758624395395956359867763925145046290070639941766601729855627778621924557937343339117675375006866129481390753685622088918608427907397482196197320576477935608770256124798273296212471719659550177217454456571410014800115180308636585817046120447091912005630350405890453417427128188312642888772307666981233128050747204308891125528724179524588825410506271957437753481334964002142397212068227734974071604041008953966430814837528967524250915213339188540985234822602763709403273564065673235152419946375662137191853050711486874965050197170647836426395012444764756297462161728274299275567063179744649407445957725823222843927238626874542195153760276727172235503665461262329933824656639806218568888708125605068516609540185920864323018273420131129040548664738072914244543699544939421517361380887896182067298741393577652729074385445630365426696087294443568798677607561590775690433730825868898630932088561331496194622519960471311133992909516492331231538860794574338992535137423193239564230844162724372582663222006384058515993227860739898196079363655171014228358186483145840521020140583086951908579202520589898788260601840298673432031252692860139613482354742606093890669046603991572139726581936615326316397087148717353952223488763032252535326331720725697085940801995062797724713293426029455151961056036854678721812660989297772445000839487811779480201502671040212981265646314616714086076784721305529305118151489981864495897955747783645846577549978965571656679204186546966036107136000149681755007403137458458748632829215134941043251270179517050701680443052743158883455874914339026781031699930117615346217012391041859684112275572275860666123054944584283551939433736845579100070576854487688254330578298171935620367771768429919910906458584119720748603259394062029206544067998136955128489061309062838953997704970712476775877702012069207988964631782471980094114063066836620310652106930666391174114667920767998326006743221606450850569894318682235240857982171909340757029184203377907432630620902368426477631017864792896551823526364565029928607616424696562412499107991125482373699761069829802122401483373337555226483858073588727423894721426872030423926074425973725640281983318002713666192091727726932144640518363544055292932024288257401683130180885716227304625799493505428173518367255854030698019759896563285488638678413153141391276217297442711508712720230571648780910497726341808285168774615280288392802277823447116118468113323400264883357905235131533289202599878998054085591225662574570625515808848237084792558068638243515339922753747745620877959253193272746493540830932408536218865636260873532686050709638519591748402505920215580596488770771754872181418255083487745239985892790261195692664977548002075666931057678466040468805334927228232940046139461920574990745088830143288549046454211920971590626065565104963888418519959754077517614096421031593978827950273489108484312320938792228254838472603257772678863019497658870042265477658049188804496668663128659180018541737253075620396619419068552076486702568053356252421865885020349361669503280162715208453895241930059006254112503068329704708270710794167406770152360622916103186772686295454738955020546479699748696714853126442003122123267895151649514582529270394134524567217653988090650101490714936017329556006048978858890512188085246966868399370884888193231910656885632785455865695853233547103386358525691042784936991951779917612454862652367783910016317779789392948197487257274696519370004990242186440310315241074215346669388706329232356767927240190102201346620429300379313919346758218310501326503026156765045148771286313549044963382705850965662691267802412393438909996567154284734448462096402099330218866023619317709827954569849719116694031882205008799917003749240569928001266436809276544422928987574506752180212682172438751220816191041783873676725733033814571761955363574592735880152950935780942027290416764428553191075960250625963546844701740575835922074683919216969011099184676000932225108465428372000938854085000851342408086726262313648974314503736592854675346930777087657826449544805806128188140252168406947837332071051126239786209373663462156600139488652223175998815083994050262243083168702284074575089481607379879903348146403537599601454834464996764884649544194319349197740707535531217091777503230107449171989043323754900735586190562289361991893412392896219073500291678533580774026449388874228655860288451296990181107128246800817888683032403565742033982441256677425039819597849449926105327818206762903335227255454311995342754634276942305325180910832624667885002894648173828765570028653671073656725528660873220361413576617305669410084439583401992861416981940740881055198837924348490177610416059591665290729980425123072748991781038995451387098807086393919406298528804635808034622933046712247875925401169975583560506651063861597919941060104746906729171793733559858545801626352009684091720257987439456888708404467458142508294296622158563881736042637334106555715091530867374471641600275542368666167824022402663709952374909808579890116092747217750442342035552357190189402051778105403503130237106693102157566136017932055281498829851347996707643240758466778808872198729388703898337199793514850526027663685042077185842396823756380531324896840246745508825926258362256476162933825331305927682121717375148992412525291588673339189594641194829092558059526684077010014853082980445126080184072733886840075812704099715284916511681519805722142381913126188190349728034740184571526321033454110123047941837326434007762982563561254906568377676716350029920604614147316036956918430629881979623196942146883880561564027698629201652503561171857085985581418273112544095691633262035957747758697659941563542591800777879426769953284395962755128103230342354758051178997989014591279678815793258226162511818597068074632980867387375198345419031093765675040966509067969308086138569828954025160406522402598447991758930692986871842890281726721787532175856098392720286558583943488868315082423569938082104159983118732926895737192561539154881444659269307868083159310466903872819393947742422627832361205909250032516669135245398292751997300010804772118334199927267400763549754463604606351603386756721420286933924072235226672342729056509074910529149419362790153910131146742757751996832863911750907266378613741080709562986640797345066499527664418450250398585792457350644407268561678595066662546126537958911522410815285819138623481975140063770638165906553550437712704791086556955861183477316574579471847732359208860443164000001283417674723773961201385484031073686771142389793866764095244272027874717208304828044908903515178307069459694667995679198989371880264379047935301244724881115997341272565459826329965283940906785370928977970132295311475137789963383154334368645041578467911258026458095745170827550148136871869062265935322268263408121867303662332052357932661861988636789755250822964749872667512026249059372942066563359663321516453302840607013395681081672729178596706745005590483242138475567761977239932071639344847396600481795500736665411697019974010560112532723578565708112740678061618017103184614504539553853464254124668966377381904592312827390254968700801454792041179156070618707352469881609090887476812103965016241169200337940944285619081479801306240427517667325835223232918317495627450854302476217260611761224438206956092650165618266607705227359410241888394645326548378147318248671361721129150697897269161482536599706642541589121050775801819236356631414088736084258524562161858780913205588432411682248623574814502150200574112250864638228657408791819092726006436040302659168585394986013821714719196233200396829686223732225143657577472864686107609098885723788832585381108117157670315496433432175215826626830304909038827924614277806704925523757392538546266836456142693113884922780540761528413860270791702887429282059074374604158410361200629330437556942102433658702628505420489720011399774655227252376194680842809948578362065993625974082165740551235844833057682321772329715247690950598036897889755528125208304996910639830772489274771496711721964453830439380739110128766250213973307446644121561305781964181664606613975088929317440561992601601246412926993908902712599379925850256607228714058069614924546384183956256903146471585653778445089109845589056734028912636671778666641066138402502720216471019015613346354010589406996660442060124273725659722485193284528914946122356933295188145173283202714737743361150559308599143676081548282258568552150545999212826526371197336199057385775089681844579982980405187406686423765988014889451471118758996610601121518121955891383225246135694060493601527927909535249036321031771365190804950254359836035451715166356868169528227247536354430818018196286777082006231150748508242268271769862691046698079545967030153741406915553100547573945005517001787593236145463733166518093698556250736344471588039359678607940274308041367977480238662830260561237298177700504651028387769430782903964553240407787271708258568031664077521140092837155363769248450289409798416994483316351480886855339404664860652726858005988184412531422778472028086060706505470971875284078562959719882858235813243023789240327597520709078938432796005751438154615736032176696434070128996887697085032601547376347432083185105585207598782230558811632422477470895606964806125714564961708587511804848792798804110729452217965527252435560207240630444020171667729410612581054636194609906466814602423264719983722535902365317923973251455464478774443469840061304317978738900083550264099971396109250085674860870328666089508217407545364944991870463549197642307316100870947144337271942288094072866454659634410935763070520097155051194351671981815400008503208575734021224470510379784154359269029063182211205134595861842100926238128717988558562286221671246635227810594895948230302874170122313205759390565531930338610700693274077908041639506117005878199685543032318316609530920976307835973650817370362938011439483660083192633269025113265189625689741117483844328629163351828809483152790022306363933089820243204426633399772139019462518200386589365040812550325834886327397620122106847483812246812834790737815311935658418045782072168394169202546714364213698003330943340855176456090091554409132373690714407566790665497426184186553933089243913109548965734069663728988751935555252623877518474981089502049503632879024695286777368011455956223282252004011410581988162661545228914518132921198257604974611758992083946909303927717681608603652506349376038105794311849368249770638314180457596810435166476440881012199480715113301450118299809230762385897514844371826445767164482123698638850537373788139060040974939633524375248318829220447857947789989551235559518396299722102568619355579179324161633268652075072588555645114204154633300059862718238434434401921245228867393641646235833626675251542295282231433198591558757012798820853460853837964625211162089199394138576947358897390117763006972352160671132935986398050682525811263783217937494941014832180434039274665922739079851956963830126142503488494983704435419079180603992882510440670799811444124620168553928091371421990863348227697003766224847850619253367441670526050451919703964474807349501487187591836395238934067056560662205490820104043455365578112718096814568864294287350926981539317760820438087801239814481664838178139796408183485680377605525635671192093114536530671909994507787606524516581871623253383379070568063040675898588495299503750596499642775882382673498473689733838345270144064345006542449030833912427718392278913432593481630330628962685945342763728761989067955282622278568001055862881348178322337041921486948669992100282432709871830300065666566717111407566180192810975874735067449417199097647190527416455895672545181089596117168039274186169751204468107414533906977407086048448084538002413139174712612513557612116236440928417803441489088838051552563224339839539731042357294077671025518344390896348988753229123896503984618038664043861001388040708109213238293016070104282615460026842342802558235317485689437201483792701728048128885735906364473534966153627965775608709408540853393018827644126166723209059223882116007326165678420081521663805009867742009361462241757820455464718914762418145417597766463728731209250665611664449305632384324305413746780314572119165327790497950568917080775691364714767606309370765529836845390185276490718666720699055141331293235656700241555856777173193992052506146793510584849959707019418646984868152650543379103160193716164270347715185234988350144990657481508606061739647385689465591455274284326405408408340721732559356774017173531838320525369882708859937349585135599205544099793272538094826743447681096382654240562927164541774964971945620925503770682207606811850788340221712342068391624841424955281918908282272620525046682328376786215918017124654285774547419911620009962640023705274075761033058211313677480777733785865350804492324442795379452449459961816426221915324279177961014218632386136818971134283451016458882042529160913411687977738520102576718437156906188026730312491284638798937464560330906511504338337434151897990366927693002569141306959991380194622962825975381699511380342688483735050111713180279715752733025273630865794775351971487584215154814449144344956644865485976552268270292538873415041433552119227900222112722643075311122849758404685467099498032174870498576392834422851857426360615806156838965313025183226166350471368854049978509406894688727925968760965679120889261881488861228079464634484058508153701574318336536478328055695443738781975431835583796091070455487680243186882877598054728114606511092059820222306599817332905846599676843566015815746300729879986714434312637878051258201622097028945846427585502458870584423681656365513423383881966650067867005885767163503098134870230166438964633011903617620069286564490576123710230731445299886119615626737375206924686184197692154191194185937106047140870066686586468399029145641375489580659477917421857853709643471214820923121571408060065091994554591581170319972832389744182008653302695982199218507858946754174286377306681952733281557670393441760087236687085548018809852401551771221872842302893208197542568674028933304547705125548338794397515507057173678647224874621632243621002840181298814177173639165340468017434139126071254574416536606005449371457439451378577673865123435501149640653009617491862792002432537842791365287381183210685464615922246283637494147494279397764268113649690639824971324078613674230689462893870542381829623583182861927302890567958729231672711068030432133507324699905325199188829463681863534736145562799649627522948310601867956955409678056356675468337459532671761257935887464961492633668143687980595131769410312091366929579791645104160953226930352881251364250324506022838602352939505088680136261262619001925218107904532834733076501521901426946267082836452722657753120287991683871040121373883036669446430602533872811563942261611195541133288085769848876136047291823269746156732404346757626375591512980843029530066597565047997522386023365884460707054932736644223463182597306357871034576481421874079928268182402506412803983552080731374851923456307716110351239966950725064340315494653773349936837309005350305295733495059227194508718429178621092842493175429179235347835696253810485566524272823390006685447734626838554499647354908764091859857447186525840763512964731496982056200968510202609667799110973393031999277146186508742940227397258259049616049990382685874343861666319322152357245173155420543063787755581018032056635015594846319593206581805317724412194504300597290672493137471533014445690978677469441328640347694533829030345703112025375376958877144252764424044824216042117300984663771613748384517390841166965126610015628763922004217206647242251864923787262647905823745644906690875571782470994592346741058667052089788477650068254535548268251502822570386497269483019331477816980580766260297994763494377734766399067908566726645249593222449241699808270731277879744202387585003766595002280522538175336189290102484756602606231179846514184272350529433530063132607712762062843406224202070942283385877113826573336802472834498098745723581961614411248001127415443284923498416411447454119048542751036664781644205837418260397773225588050727081869314052505319149712439516902547011089941847473300179700122551961899919682850015833495263710748004484428157386803705533837439088968256568264604087808117645064316867573299297848505061445543343048022579096427905417204558233048078165525523501776793784120359712512102900965083283131078908098049097177605835436848486111179764650771965721245023599834724166095505546971357607597246526616367813664581917556234150350636763956156834118525675673931805678147855814292149077436814624385179245856141557507693865311041946382123629253899879287128361483062498845467119821040706643750249092755199046985323853695959720979319862990775228590846074844166754871920596211095839534913591510389990075872711219571365972419502237169736077977929403029307895173962699463631187417473987704414841413050340187027556821877760521439505977995241312746922776032691541579776286084238601488914715652306249079952658153895238977225800899982432300394600637311614510213272132725535129316453330549174833360037926590545153045720369583650842661859059990184318345459617853173416412255977540655294771502264067294835393942072875161645478131673907597873023879949114769257885266911932189204560257362339466884032284568670583422000442900270149556932335782820189628831722701336909676419243470928753503423381710382233818964628737145394107315317026580230474568402151190535585460768006918790269022416989000972496815316214552632318850094598616322365752795573879290990316613442418594962459422944168539373119627522531329842573019787530102412429951961144480258136658684110187885490266501027881489375968156896897340129297719897460729369540116098915811913678611005478615523425110489723314445396159111743190261431099758879845915163355352248810040053302628790178808042745085710399032323412805616601094942676744901117680492628283143901507955703583166610693306272566690219204830622590121612115053242177555681112761963585427930438115384814706596326336215454221389424398620218876478013529000481396261543003830866800690544620809735898961740653573861820518587864439715557733564543606229904470917074052716914409587191420726057094233050291767829414256639345680089999587933877519235052773994332368825928074945390863021459361325561421862903766419869216208576885115324127073304575967020167209142633120611306841069784777122341480589373629844442797559936885579434819320948860996432847072507018786623225062867640975865607282034264068705079540181769852687776573299863995787899990854785551946029146078275580809023602638965725165283696624885510181109756656027664526995581160559537229965276211018470813550617762152395126986149260605927192818686421549789674684203020619365206064564729658763927999597618755909071390579944312322371558228962707038771044387659675463564335581537895830138054338373270859546808726559527411194069290881810871500757571766219163063807091763142337763122421771320194855465620524772340431831512424351150029677290118221480442820111957792480609761094486402972619704764426084285448092235935178263351268237371813485422225233205058118781413823511708925129703229300772061343870175705368438327562571064427902302659033052771712297201853722650335641659801516850353784869449420702997455884510072288616640844651636154232200493287933171620369940666714459284589875738613006678992899940971561176183042137817065853941891722585414006078153050942067753154004153070224176297804551702872465548879320474780377075130934639311031603840807130525672769473172981806026796358450960704944075980217206374473672954587809613208661160768849469770333873724557496348529545957799074152333848911360182886842390837493999481806860233839746334380860664926311286291645623595741855796413191091246983876456158819722548578186464308632800837249715248086085435654099719872232450016447571086141703340877285795197508849034882427590125694650678849488561987269700448504816643053551547359850736696378686752752877426549963860214194863734491586644546636358154753250429421213833860089451284275151915765653830453718952888636374051783915826323970893579813594767016407920776094568515293738785539836149210189819256674596778934792738443306245973847247860263475314979752850197432808174376991546001270539400700223391197982867054704552154491120742302313753852023312471380911348886554256932533884676700020897868845304505534218387814866278828033021520067175343269335373410031704511842258896093198243178477772568629392575892020961030835353993614496468454783168858333335372169408371393175098466159576916786638373168505476994175419023522325331630752478538906676975876687980636694744597093237582062233934523697273693896821771507584548768907984898111504276800839517353925369593327587801089923244019231529433297509279723504991878639131194051275271568529702592169359538385339286994922928775319609160056833728560103085952507459023746565150481127660632081718909181014078107770784268233705430991132340494232314489201470540964896637884677111540994455973212078286998322333531882265815260767900901929802799706289002633735158339846613853334032100852174226210329755841317704946172971076707198725802403120328926049268842124120740423460521191930285893386074892475261444619961495274001317670427452740612224360137688306836211578692525599537454017036127579083393174474175106487002461253648542999713466461299182804040398704076372748988682284022342652800539393152745692670499670158715745299882041053322908773634081452114280596267129250922395988965539241777383577067412228608005964506330539557177449325843690285098512372793494786519237477359163912104603328780762206198795931190051719777468530052217549012573151845444484696368333635282278136848573659607530667917670854537546098427001225745437526583687430289295741970737612619644668288178257480547233995744394158569606415759441774753030246922084541282488744072743175317859212559744834511553613790604742653903532015251400090796027884909661032719616950133562954351585981472133702072073695123623194815823447357649233474478010994373879889814268692540670644942700587730246508946089443764136419378306161098720432385080940643394852579157428539224664076802296978656389625664332976351741513985291145593878233405739060285791887284341770490155343594817485637093314380825625903645833389621174625413929830505165625538158094891067626363290581494089240531736915948106022756587316961917057258499367857934564127412882543077355383854555121179573417120279528505714673532430999716913028430937944521861064487492167405598110137517402795582061222399525575045116228633922175579491605281216267714341513950929255009615854090040085248697503358435543788817635760792265736171573733031245124724243454067612071466342343151024595625087688196718115989742927979217077126469640303352327223423295712481246749056932765228790576560639369390585435153598511434083983042226152929310994463073537375477819712433136080489730831464097111603797784729362120763743843313342051129622037917796777447119736150988117699011698040906396388537134939649487639395774107817239037545254529088706360717560499743456756493209205167886227713262905154655596263526194178583651690884835902977076035814803451937358153180959644279060435437293026563969620369541088850242804284954810548669065775262398555662092814242315341008896684144023198022388838906467237281790699555306992839327429034442943657181181117149926578033905198014400707260198425532853951056102460639373746576287613606126286330466739239135192346174434694454686069500235612798090069589783975424551787449722095216615423259718783152424416186860312852603663553818824519824431992778326392442117803921443894518678753105925860454152420561048796242611630187535731349463907248687735697633848184753098742189147714930749748331409956750413935439302988454358759996801999787247216717415310916284648221099910654023225623217757173846604812869397722498191067997260045690471141166963539226174548859705416060012434957532305082448197564330271287574660629714838715726307287088332268224710341813659599576648004889337507647771783355563508918922926033970550599331730760782858224259210620439600214626481300224718975987745280168506529927211287746092335133637327676077294059213552439674392201719128284175139422783647012934997827231399908394534415352422544195261238472424820711856332148057779094884164884831786571110077831674633362229330137422766911590557297010444225789748318215874985298758472117709111113637580056534471607776449937628971446091951574524719672202292935614216423560815162777279019530671144224296389475987671828476127623752147020197928433282484215603508698993204025989923341937429297811568521120823700505354897354401911702419879903768646453611564995725520331463976220323718169092963335654563905019777119809595331843461661411556826348178060406477901262802381837261010647868297722978090216703974432154936800491472880008195463476386879836186016262907338894522249358575098290657644867696463543855644163567822958998119868940049922177830155920420561536316060410227026741255774559291830682944331333220112535930229198896883494816176995101446979180195467172252252079920132469660355501433093554008185117496626344266885049628564728594990524352250043665064093820944137213591079738158922768782731811934702673668410509498511110007249406227730883351903104749222960878730263102907826521508710600100067458224888929830109874716285899179800044044318566694426242044871322022906992978848264401090367639305857898460213721272709497233832819744883837942946828769366841125576022277277964280132383750024911401474953671219083979368761313946004053607543475908746734674433896827339853977026598381669225902914358092852241880368056493503806158170632855601108468707381822011873429073815634731721391468077193155895951192546367053759443859829547663232439475860365532472999504685855470524611556915606527200805589105765364560968608461300233485962425132006383760187768166542127246344637811053362303899052282303489312210963524085155868113720838517858319092675956162771278699962839722629391423262333778269836337947402725172311232636987882038400584176407316808878002502770263408030053044407696270982806253300208701562007355030647463956225205128201858755216958007053819520881054734875141244150802513590871118611800867180787077453057405282294806330969952464848251687014632403492286374563552811779266508031616960772939036461761245260820257003862398859798584277508586998529197824109062072534551056352609068447075286396087049972884042572879686286559710120178937341001662809054979820276517526110402989613705095658117099025650679581302424427804577624860785118987561813483527192550330842331258582737962712618132852834419396572775037727775112244521608820971668502726948488407070982307796090888853704562444550091101573555670029359418287051407436972396816146863934534617445640510256203307058081532617359973327973888276914900331067882620368713082825129542483197257450479342094866994511970273491031428305901810206866346505551851363191511419940735287695889329313913862605076844871065652337414316056618081371760473340310418210627294545401174408452794027264023697410977699185718221699459629010068890283079879271929066809120271950236203154059350901662666798834854683153414020341878918203428469657463220577607803281039645669126916884053417308154365629376560360019616684107254483582972604573128858963001294802285443201220848204515989127287381302935906798281027172796446782491867459738364170155904422273745896232977009548763119267188227571650487679261684847789464905725013051659647992153018223660368109945189678931971406160821503125343808266610898435607588627664218952357332273882454176896230934146810203254706521555963020236634065945325909296116562492562001002971966660596311302870977529942692557739170448585509868860928200961715545506100770122316772319328296334127522839930613004235096861179128951701539826834262139407693165558363630974472822638785413330511737803082668562979209250206304270404495119209676865243808106712892134178653870498367133794222436632735976744059751676671445798164220210037029207674865909356166522150686240991616151406429343444008498737423460551716719527506708055326162448165972053928062915965881841199297968316803879766996157884510988412692126963320889736138877998978966330416799537191337944507079247950612175455373893184649845717811094927841655566651765604065191424746998581428320420023922655624446448411180340871660246131279468900235539558876141435177144517321457995404332250669123176255826722158993539002722174254998500576829444682768615651922987791516348970247156736585210781188262147785948250240551356982935385010194934789812193862859852376107975327847222391763004763035684722616891438945985437403702295114228934612017496977938525916416269360003915564501952210372144008440531396007400047303170216602156478458606263449747020682033914407183847725522077722438413080557790528868445303712267078980137126733111256802956830899676516713060789564101506670324372900631067107254963387616858059204203188259609147105883739568935295438035777418296051166287966215312912244391197915114810390248911297559508811456021279268679379213184782241437570470500628892450398653050758384139358726941227854894839769343038740276538102087014339353444320956783117330529156254303838091728648326140078008583068945537868508800449378027697416249268962176954996758644777964292655509688129539769862027636959367118769561114294664964025021353813985110147553437690048998179889421229293651190146486290063548449322557292196384376904410898564004380713486947329204600675770617563399566211840781733763395727246004175463021663414390510982533490110295866375775632686005356627295611967209219791844891991958761580864790200614793721175663539700702402417042454087391718167120325701684177833163758656820661645635168304242933530499273143861709699049604372608993080433542251195161016061620158748381152415444845175065186356748754475841716665339650108369961878864591182850937484805721599415032695709082873768183548652358638973223871856324825728258475316389177754856777955001852648988091992669681694957774153821197383472923626017150509353512851610477077663068451021820601123049389029758086554209643964877084648298702427384094010351123642066888642560811339393783294015065142070229908865754838990930585842511484507262343292508051543984966180943176870013658325971279632962231353141696685237838827687933528344339589166724484441024024709523677234388056574147209384991410031983838560917712894570009166248251104005958884925773426331315204841684472871947981677376565027976711911637484499806723531812232453184265658306376875251562117285087677687946285072007544988385362548189956238117890179981190338452160744148899203745824767535146730677978136950245226175379356286349473583053580453314026533962407632843075807628681467116008692377843483971711540942751257893588105429017534781703674725903365982559149523777022352650279293484506054071459709548117377375164531170503593120727054866820153808289659659063930493857023334789091127816439965139314288413909446369604483212323892762434687839817565049152791183014408600887235506807356380763346582861070141578985409630786126719567259513975750492186404544833480303455214107394745730222845481347569736716203535782787042602319179622877275956179561167047584596480717114481302400939184845460724153139482115619639069614793054119099268325140795036244267158842767118740765777117428875627919129104548424201985866139871621930457509333406963166103808901371756433904913310455736453182720594036413719431187191359246792155357100716040063189516158662137879460225921816962833970489726745951663917592512450391718164118097874532359434550680109070542831323414372369166832784949494360988706523197585398146017374469583409359187415811269455064190926807520059105085755250346243329210021577212943216745248368128901962933089381901372612840228492328635328954984072107779751929195824673562495474377636476354546201421514520944300176281710243599706165640872246540249879084800005687278168325704259908183823305746048790753239879576461085920708252053713655906355514642682898389567812844260672437693059520455863414082721087068813766052079394182029007557230306690354133271041221416889194422115452336677089443726605703045944643707427611099567787054367537551077074781764897793874876951938554653191146275220299514842145278805361000995483110044515273932028118231933046889207122407811000516766958601850070712430534792793232591946455916659255160159596450148267383650816411583762297024056107076750447030490625126152973622588246478998215605649535756715788618355814201816156656964228220469609045412833541292262393280817064204082199910174446221874984298712600363007335899389419964644621046575983547017598221841151662071812417415469754335561674474196221310955651276952430145236648030862399521588659563502731143719562365714964418628913616572154467081076264028182269537432325071421442096528341192139379113754800876036873386655954944688497893441145950865799028440035795127941987518664731506510700399413290575390114430870157641396400411368069749361154911722034062246900820681804775196100386328781201743210251679654756637032347580210095495448596319962558474360938553043882499821659835915877775781472533435058785882863126180020217016660682279153690063279858908311608249756681220343299603838445045450771367525118375999292944066424244321565676470521124917559194690157859944589196891773193209902058367242285243749103788323018671762303152223629416856923502244362001938795780612747099897865332536697578330568217668061806316673825981502155778262467305146937560162758831941003468835025577514892432745044821449712623388479127637807918864249648630961256834533968390815906403922078806476435451911569836212655384876587271490119459595112646231199311719383629017264964380999428494164403509859715284397745662113079704936679244761506307213073976103382840104637982362711810318867802965871503560586270734801058215073673564064161301000674649483432754177271852189146649031561381497230494386950497533252120282042848928144333515379072231794693916339436099543256713723672157667570115356809275422329977997874976572370147330267990673596142149260274618614886020480210231544923105459453962578452184012688399967851224980390509943549277241039689018768573182335207930157178332127930450874827058756348873668975586922900928879393906553725427136973696506665057167236125518333367102073766478288652248323419320558799114036640771975374504921888541251729011738639314345984084593650502407682051375354878691694686029686195101301503705006949985360290315338753015952915979481661683412264729092624921267971206025117259674227992153416246561293254225597539035636596955522313450854012960446543470416911187198123532473340984627720953377637270942187297369629785848432844621140565764846440427954633449348212430474254994146308990244098298953086098775270536352298444184884931211825126238503105111768727365425740953214325134257380869629170678024749392897712140656554019304262148215322914860564693588444221197221163649540793475211108057145468948471371523493863615707301841280281125485136561250419481890234382316138914400940172617373245313905691567016205539185677668699203936607446496356573021741780046464304212747771681975215586200086316025993953910272643191786626790314726705121094329092369946182459956445492994628727644968717544245894062842427187396119972627195420891256986444184006776127619545267333954248786151027096636279952052641490801678948226652446770374094848994815175517099357360828293975548615232434370265899239309310974995010746458567555296096434887335813831890179958082344712802589950147950788475873555378062224959329411718253197832904187272439118671957339369236316875051431383952966119350131172217822075385428735711463798026512968687077405012805941319714427712420565033284689918135038231054486363538785108917670783042842035094532420176968765610893995219088467864953882446370826421962963894544043712320643985306750097836327614535725977250256658942219580298665945685183897470325599576521892500454152091295272472363175726843955556657138541264113345521109757028735263926168159503372811886305849207024076139269273132661996850834705090140771787116841451236706271955683044397400154118229974202622627105301317418906655265099549994556346377137119477693175125165569294862959316805017237995799166191738097293295141128171544334932517716523934092368102706566457676386434274598080413676224858002777702583358546839317287807028861909266409211397481786983512443448358339803491058692765006691157195583226196712259222385864831892589882934555650675408178558004456409762738159233050839412665633638179793447022104840937735252186423771555743568849714136729417850689164281363448309977256491418026537266285875085301491471183587658839734910541853601475467990209546336215927306196405799144836115786689595396416780763448835850918552698933412997993661606433707159084958691808106816172706406181444598908848033636075503915269136203217964052909407524547180794951587999221260298221844297504319001312849934467712039412213572511310010926746225091306549458215001541450643018043572919914551408103869963943423829524877465354569155853329153590640794101813814351225353385100482606493677050583788034797020980225229180427733425717182502411774199240862725775801999246369578137421407642523643800551540499723848165223406149140469916046393452855094303824809299338724448770371129593874913068499384497175985943341328908421983706566002834629993660238841026723329621778338667547273101395414234988289478759630243301193435640268956213191151963412399630083261428612172078486447087571191767114550403082344140546345514325317673181769562517234391078043894551477320530499988240461301293660448299233545520243007532811376195575565721454604026852854755120990511055135957710962625913381857938852098358642410518661985870092005413659463816463188185148540469657755214547392411445648595950625953354186199215225230880189521719698014723284667009186347638683585790056926267540807229887824938734427544952415952369651323324016055997078263058115821991334285542238024540904804646696989853447716594250576803740946941651607270851869135879052473223458587417751570839632766781858509032733279696448942492794168042179474320516633244647185691670873376938747629946359358267795858651423930644981670635833530434915078863813760059224115728607903071257627250155242284783587832764850789992467403784889793112500351729554729460326844284831564192117094190006006406075907312369533278910280799265699144616667999638617395702898896666757646188287092431610713455033574067271167336705869929073230683825819543178912663359658758045073911806121359741578526950456072263454888661585828630830750022129345657216854636354067544811582980270417852661597576356000692795311447733607674357354564558862255665076637002336457859685447710553661733994355378337126701279199792678864558138198026685257680489861285290653847111653119339696958430662014006736314179001167770910760599436508814499446094157856629140529740923532285653046425595821340145839342264210571635835922286075963733608704998486134712263926716381739509309128786387114313970474552672029138489193353714272265853699134829122137231933962489487926888055382026120363104795389432726281660933950586935703356681057765785374536318639692962446622228057924892828941918110183827387464915003498683597689394925990960091746632728714352434874121785314224542901642222276649256647003117104628731915996547980594555869744316835774717333434478375468471358522556463077150432230514276909760121137415341644764119565767247519159130442519762903579538291090289528951899179444330702687146500840707847624248345898590130872492027084325417807789818074983147809353546120337613055702767137138890178426599494878229492559584987276578190643149685972239752741674289761865563307165630979510565662225149345057322515689263920629826629706385309606639884236744632030684776326133796544016482276037695430084473395542363500862431081708315904285249320119985198586103437626343505685604841038037766183842395777204676611790086953213095372041639695652037820507352118296007406004619414793442488896119581371673570966371203322906292242627640941326372786701534279822951078048108471089981667213094350859182829696231476365348382324418596152040225619416514710962249106410179578899847499790111345477411908423997858439453792631669859100934985890493912590625691515542346454655363533200811720491621327870803398929846503288002678378148073331617476311012638056768480379318346984216216469876325251750002804590604102360701658195863016515584462106698704387163126803551083428490348181756689713145755225879021691668727555129637495293388147965897155744453691164291986844466771323917029437161501609715798175175511678620742848752171927631215060212537469065819168070246950082128765797151939026896091300908008726911438703796218396266314809472942908954835883961240787599544541334376139195116157044657008305698702234415600584788710299190725354228054088338960378690077049282141170111248671654015151092669056977676103340378696732055170501217574089986819639398832897859501731289684495076492890766742502001789919700610563707915055252824924026608520820129805767264256338470647964400435334423009963046071018337825544651269310576633358125337516907958613192760514095089128032924357089307529845247805432521776793236376893314044313637676251881118517805192325955341674919903882125044455854355942811371647568703777620869965941045921147696062409715268571979837786289704979838105606068924838733810034453819070396141782978493441493501890950804741194189678063408319940270399231184476730910022035396678423609053586878388067260810783962932102777596161720794591560025609508317126590312992707352751661818219380198473946662146431785581286425771068323877603905742799408719151637265052655361919491327961244311673539858219682995787168869025424957673869965182814561101610242625224794670414082428522752928362164452734935805327625471125413816082199295978916489748720087214116787587929493178359341586529207612280444117858054130461734787311270886969151763502090326914434916042652470265729891338278180917441708377022053608278215740184732956066010953151878660407067600734439998099267549993540964436327722752867443699198298211736698035909453746935217866000044267256097260153100940472446116567904921930725642088555588843763018025159787903851960773594162870843048869188810113516393890206653655997655629968843579845973994578168788599159454942238287487670071740017264639459248701483232145771819378592724786836117910389909763188023874613954307844782283112512186183927897568025236993714395612142934907230201171791154935255022270769723655596663563750910262045760395069811606829998206800996020999071224010951105437252203400780870601845422166482679508912149595101189121002326360728668952852087907964548180349113686567771831554292269253700048254357973898713694474862394901047032379305028043112711637903831765487206209833288052305432451471635097805573840403159406492450258748616533982730827703810069157275357943086290380859017422935648241354424980392477192151893857338839048158631255378503486068599534939250145907955574610290602360068857243384416657897386009391095867693361551930200641157577445799555578142568601042663933697954146993704115886994272741607258340522058907196251888700522233024636219391799048612558915475736206821932027688214206182311447372725263315683546394442045642221340054631634764691185580113567526810075091403176787822354937722784299441900543761644592801151127632151638857890571310871811576881995892211735417739793568458746223238448219528017594888527356223491450305245571387767191386112524773658041104821318714786780212714344289176138764119384641825078988502909422130445654926774638392882677216149614372071167486950873836648261095130122558605922183275743966943027073605105212978476236071037160506508192260294463426266475011973036975908181701695788095087917617394005175188628153546349122929820726468415015439473145453532083044000839868661517219122129272636590145855506852451383026162419754176645455001280610501861887143447816784602081429784188127446996615491034225954611244330258567605492810310530693065174807129196921283460681380851700872150760375709632984032288073646885012975647099681203434385201479139211861231502667075724023798151113105278659122506715550372818641807731061855031121387944636497702603933352498087646497483313804677379269522417855006584791932805322741241279067742270242291431302086177830572075489959418741945665311116426835538235618839703270156102501674102695436283147541856157978139339024867351462623582233631831980892367719610324803101127614784379317150472004218349364392266289343468539553082075667764169472628726464770397504532436511334817383543805877587406564247194565635819370616208358757961379508929118231668477970947318290648802183361068752230991031646974188354245471356435393833146518171496954595641613022587437055524625787110273110765737546319054127534816017396650408574409753904097599784117884411336030582572981275233080852251302243319884473682653505460921460914992163602683197272999460560627626669177642209337799626040422567027159086430575185094824838960126920999167785541310565141242055573495801315382019326157418666896237471688258485452572243895204419612905421953860495050614527083036711329896321712874559620915878700142344651474399971556472348638932326072568233046888084926106222250110127566273494414996513896605694034237086810795499171002496810795918020171240280181014389253617793848030265300442907889012768325350000118995982928116469813194435775651887653853524961604245201961427369067452778191527324561361913753067010151676031231266244975294966849068227549859609782570212803035955898874989490536068880455284780836282405843372803245513647484789729761932303451066227255833594788607217119235243035575206476706886704781512176600663750093027115757391597793830482825321046506348982712186278131604527342121907970797679342197493859980217851740807926924215605828939990662680179773903087038933829380210912703007159331130270587353925926256038913079695527932026459308979565282155437000084385506574222816294322505829176954031667033479071336427121463772863159850377122626498786731479582780417278431262368028950712263115844980759484533564447813885199387505351639468105850452987502937089541986512014857158398760209516716571940470200694389413254909853891963295860955879570383525879783858814182505198748974220489417154115474729769544979778069497369705795207256825746503422013022627867682120932270459638450070199098372195061460367341303059282457220636827425370529574115061985351912261781972408121613463260875819938769529775965094984195147263462833887633530433577765543904239258007944478723619512165534175144671196046955692268826596219337286911929443547009910718679640996292224048551995685431206594051430236075575363569046924597677274966693596673617505301938996431846706806191797413262668259621985159093591073837968930870426975416575841995071594883373876838417257302315845330299425839903300072826904820748606173740603244284652348824780291652887026554565748681217607196863071364423944704518504350372110106507065065664077336752694315627490806462752884440929666717458147857515047041477000261234925204074545925916169664695924925512691123943159405043560202216876618240580391211867471068185653464310251907674314529986709214796245416169402821448258511319922748039579154520803058072720093134562157003197286250957932757084038985061179961395827632511825638453909616381083748134057834300912174083125697718311663254758342088888218658311321376553401991006856617516477230693226160836700665992365065102894353580362574890152362359020813091489422645966091738240725638717171883375716806605757704303495034752211575739119203584726934375846732093625300180118650855993452851357265528351480714973981837269709294174914476533581291619110388521058702326531718258775722371050634730653279377043697965479577879109281692970181102754432257888400689281301604505597098157947157039029676290233912640068855659329562071270544246408032103513123220079544618762714303658955607720856730436198888831762732531078336254437589834139544186333013960877158360652821986717029505920313704422604822914902560624473853411064369939244588331887653244842721241551749523803817724044545691694360835673933411536283747001689789286631582966513156842971729555683454872499019823338349853827686693681052962678438894372527781545952724733088421654068796679451436184186498877656556062221020878370685475177603607907050258927707857290952194164616748014653860617013906312101673100607862961900917420524697442356571976503847964041029011530260903197464865317428089107552309609003309407659310770370149906274033558568433883397416392852644088889930484886502082789493005002526292394519868641785641108255446658701219426416860097138275509376050716654771539547817193027999054163897779293354214890188527203201502314666988409235877604332020459200627574403229279147606872960982110041538430364471041649653003550706511510538349322777179552785047027347891120421212193292786630473160759653036326822592813580240326396129526302898020161714138008191691683618741692544963246414711959095776725537580359010649595600162281919447822592945825306158758006529477594356950333168179984270143902223373384696830463081227255279706413667522664364710459763137683517973681073703267647644864413541653819742972039588197083184219939565261215998223964903646672469389030682767430733206376484432612631983513022876835286159401040637952671128028836076353385984961928040656750316337150927404126773742593920162278570683577715624152110747451490437657653416093037645243462916163876807342854575094668085607336326407751291256826580621767823377282258089926685245032054224103717126440649521815471435316727773614998853626612338538749481790272173677618095201082552146369463137137341795824630005728158367222813697506407918254399230299003756253303050083738794579166280720951593952480279624421518437443689719673489616473315007294801690041541696770608152910038749017737645784967482531554651677266943585815560367756959676514669934050774350554317229716104482973722915362715641664748714703242726843089610265703536751104847201314154285652103544828761191072503756318507750283372232888244078277945244850807719674842632207706347772029015994846400806882519930514190939625920305720198267762280049009867070669470968171902438357212804955166037877370660305059943584772249368219164153197623624834682692783912799275518845361451488570738287981802553570586899150508250961357947070306657148328550510781303071680240586517716777246309571456531079602403784109923078720800237241714910342773859423917397933756039865100625321542995791493923561867679668869431060495096571374501409465607020003440345773665340006055128326308979784587581157083655727644058303876793354268782987025678665148703000112297256179778966140161475211687310315441159705443766779322088926069537943957551378663121175611022368804232171606577253226709110673968499800140540608399668020585356423175626215101107749972896055222245049513684917615365506688087790127945437686587435465041673525680524121507016720006473640598803344857888792711811358893934278279533511551945935689018092483110738047955864772559319269826297922207133238207826149219737712506040990833700861166755144869999373625333974967159955881923005516062509249382323356734136259794428634383192634186913880836928974880652619721525417851204259279243696546642180071459754040776098831684363995371347360053379400548196474268270398507167303300551065817936516778748478971088934247702836475034356572647796371153051208897175985674408204915809681932055409156448934341461926955708585179024904298376807187779282709377532405357780889779882801328567468887009404504334767202555827578396329548780370326671272843598000164822607097236698713250457059764457258409107785529608314127098466970369506072026365756381046596874463153321932377376917530824860485211406001737684844824872211422927078753201770690107529904691133992896814381589324007096344605991227454119815436379369345957129928959194374942841500990581188669459439809890549026448534324947729270898482219876121956345704285439281084871472817991690801260768341684236861369993944784309307069698000301841660420524219854679807115063125134821411331764594971057671779622881257055795017938013832224338334200819573040753704954308851409651724937339107990658342702552685238829808975073197497407685459980497916459080289719518523393866485117455272431465310895810375901889422496783444409675786497054458799917172948199485488027428782720100432314786154742422467166558451528340202441510688665066885109797137153916272501382350113380712138442187751444291567087964743709990568458834957756558610137434673309015872251539186265869275609596185497838239940344658115271010585536139340947640141776720569562550627522791336670071478475111117195347712033881280525127011637694858699278718108802491565336255049988129947729322740895231863697004793958459188782778643730149511632432112570864565591030450039420909908776036074745851269190283042430097046283920183376968186419079432420785840312142008790068882001761646311953319348082424605665925640397285476126178544680042688184671881330764772832915651472527933699414190548560280191209187172340865970112548010558548099600476555101500924944405496509405381445169546404816174783471716982440769402868903721341231784332850339070879258534913926335238780707417010943535756706817225334307643575338044223922103417011879185607974740834842006861424499010301065488950850245077969020721486038043922259491492078718320376665599130375176175238262814564752103809100740296324062892426612085511473510508477382425055833365355890076303265781765361198524053404536362179953961843256901363067944215734315526537392713783959268636790163436477324581769467712452674198361320103789352847130276986177912054491859065604814280289726971278841593699950026956456715228722357902077259817696823942054150490346722880406061149181687736094578439541929742055059707993650748464361704376929184171632897444826210958930752507999222760621583298922810230159405632868850976861853050334953208014368011725204362769705087849393739948061214998610847404146804845746287675584061202824261482647397602940657326478935872375606200461581632323175646197040648941022848742491079286195100092079376549836348372204045317724353813414727886235527445954677490740376744648441964146897898125110453412778122581570160830603685784165714114936084361036853265094293189545069025647351490552137055017929852439683208682083108610523972151085683974538598838465716467485370223605081620293010654271722044733128686515966243613636163698040753883508709767026546733288052042194207750139006186697615843546989632598146791614801888831874251094220081988225357315760689079088434267240780592590880132610967930002653023444148606916891413173255839618811781352843183706032090132838292067088882618937097866371450243856269987753994215110198397761536855957581071429759256515290729677930436289069289035671345003173523964442948186213270461022983575647830728766017155317857503662964669659359618408433353905222426432825700599285401979911300816259794232997587877964367350026794292016023112337783012992852295888535101352401050056345769539179235628219977912436557591366778544578232988345662444200256210977180089858647216248326852570983921990331780139977012764867254155771580491735057843494755138643004479114053152250155314281257053636536864599634209605227837700125433735688706588495678822197490459620182359753145991580369824788778827503049549119587137341123161715721395740589282876857820244959889522522680917995707413550227048488986764678559156677305183849530104999902752427935338787842460981643104265539865694639288456899538774854037411494696582269647407799671321672391516522436683162687131263437695277857153545727177903823462995541104517869738995577801000418041313843457330401577423268255187173475756996128507603965496182802980777929324824415351779777459011694139442988148241296456788625676560464565360727275339963628266539474501229732083235172597421549782652409791588551785914173921686680003561985362929380785815394731979222549264705002564558177215817297577948375375897396024882563744138406154116339805909036331613203392211260718336072928156057921489994239588257472826320135264780015665616811459711918086315648329937445155641786414866691328917384764705650682128142197840772337133513567214750868299934845120500535509290441141332361892171215193776342860588261081772833169555714954629064306726687184624026685475137675125304189833940534296099206279321411632613202311522868114283124958561921558478691828177079997118518021408839056031332243140913598553803138380345182541636012516680716890565969030351427612927989302718922134177909343228733851445499711799044006654913650353241650170673356350389275808227429245016189876508130488622460067684036287588744736739813356996520651538506067459917937883648989788963053874008678829252188018119742917471592288601032734546789005670936215480396899922947371553213446659299224543439629387151722379513266456156853449859208713495603427495140676909066217243675045377247330974616758357648386661482362964775458397522185858431719088791834226982145171295331302257493727370809220036111923427195387394622298691423202078063345406359794691938160646729934423746022644387370513429245346849792956474897514007829699172933475563327437068927264091613747096632059538817783118408054578186777418783884525643604101829643875896201954227657495715468689392407260621265034315526959415613527675240752834942722889885338158066078929820750947070822333424646876706006492571023753024365159054731098928951679373515286517822050123712079320477117387565099191438810443118473047955049728708462025811733905595292670415774034624008184425267993024561000785662124179272230421008705369317257319054806484314105109508530134335104829952658491734030529039206108829493981809484010637983315832907516641035510782529575754973324267654491233844941118027924046716055060975223704303710535845117722486262876647668386133959645838626860419190179114849357001643085232258489581172806266929194482011618169022238524874230124776584264426808717674289519623793413853938253468110592092371471851485020800708984579327466891915023669483513934157468784225746041056090982449662229175482454576998057349890096970440021452664581322084929708107718132568623051440520843112633953457287696922187855507163146551206518226615004090382494970467577107158516932922313659936121357572084940973152082612170778858590650355980565351432908235258110051229337370361897465994383016724607947153809794254266280717370110425742459542364353328690388644299851676216930239166678772056848041766221996781149558349000772378664873774960360956208934537593203877352620451177828764279404671293553066527218560304910462793920232253885736586588608806391738161556144284439314656822490057762732214615324480581607799393564956748427057985697635142289750074341615218421748949714155293989366884498968854502734203570429289301776955024116979602468379374093643298914317934608381853200157874335125417348132844587934022544852448097532152458826269858844689048533130621518470901613348472331898011846886710075836871507571664280332790528932285989754364897323001865953301736721227015918465798083503596009789175993847054467752003696717495956108435801202754155350396786964583572748988184871506909929740421277700335486901815007079661672655524626429963647568972595588169828246898178760904491929569802478645398366861746959444002813607452289608150694702481230170334971064742233205849512498760654681211001948987165626441622897177196946487038118927955766293200792644218982673588049260705944061028133792767631154263991713422728877476686751557798657763376362577047451291313053458056162522968731774857838997766057969102427498086703937283965900445872275327809760464188938892192291992403915939147827147845202656214489695172765491608092170974731522324807792045793629702011132602883822486782191479383208938196437166420087747502950588032820337515298964195825194523778460446269414881085589586866414009277900184648132322462952181771835289616368317835871918470696024248728893330476973075816228714922736786639824796629013269997775922409580864289045975430091568218019429688940250175972108121469895710856972183189885702740866498853567984611628185057897206728255299961691486798273389148962656522444986003138188342260817401368903359878002643046535939936835789117290331301365244635463315148802465156084051774065077411191243411160131212782401528374248923220781566357268483146277527862318723231530388707993312823372716417326539316350425331528068352367219151166306408676564825105496362986403248747120868460846761584674093846738582203619421205542836339774784170777263056930605913828580742340920450795780296374516866017657886138172588156629845245076951177797909572537437612914936818381329633791527473282093427850115043493654161848278735170153989685683143101100950682589476408087148667385816555206841209463879414485488750621706368151000636698411316195224321269718717068170449070462311853973612602663385993246984760755140240468201421820666981000828689378245477172999384129369203946409885735842005756884192487858642138534104312501801727410004900872931498257912720774019951506172696169055973781540039021400099455819627419516194544948184045238885466282672427256876412695176912337204546250835697379638486012348388995316966761050206363666843682192099188849697479047715511877228335859318668384177207284799732140864218399759157042040879217615901965148811906079916903360878113027907847104163276056409400997290725575507881172999597989602252539782177777644166607214742969894763426493911193935856546401289911205802679286719929564667746101129979431909496267555847354217656590229702122125991117938928020913167531596885422905296938252208391518811137175844000852298768728374883029234235381208691970677477164468714663840478814121481237082001360050534468662318481413761390221235705535606139657757625507235191012326509442012287703994650597975535629670831801730533907430626909419940156663329817881785494838051672055305462512022453921649539364041871482016259951432785814993842213389151346071073174451930275128243902648058469415994733328787642278908716563721908058607127740241781353309538705239046287946920744547845810329238395119550202353781372134155218855228674638650515838631753658103258673329674339157629181073620906459284270246476424415000183248890215286372670490754549197714699843393899538316118795373107120058033196409431937375552450513359997789481587153471573255180109424078775306608725711754837239910715335508640473253207885257010168192564397403629660090372129043447168337966293958997798094328702381079309551995921974948576575137230534271127424392223015887287764075267812954907829833075701234822861289995145679736783619829948908548453192792194380776966201724562911528560853705768113293403204078172541426328699394816306769206141823537488239558836136648678392868052615032734460506148495399102855521303142810961594791475035259098541318186693243291449259165982471979524228641845436614179904727092461927489017962534021040320394544995024974854097831250583188577659737652353307252009278840636290938925648713627820462207475016255938572369604840342280583405403733659849047868528726740210994740504422075084260657121785347236913813225076929708393537909275193320408984903599927757976317890224829779058455199256254267476442104140180128878131494039638337234188702196153872321940929611833344987692521535871716461690080922791255238573871317814716535051120633950928556273452602656163298740255048903366436855422778200695821226984968444881829529420666516105615107967299988868731846234061877966805505333734943082477512919943160041504340374275809761272142351476351044712565765779076730207883693545381584667143829583963166602800425403110510180290942959212818824390486134943696224749395335851599884001178505486142555014569014711172197707364889838468725583956109484654836883917953174674689604630980036015730329815897499693810884282800217237168731879817644160836283372085010093205262379828732727233937737012087251075303260594591154286003563536766978460740611981723613116369200206998160004075386720674616436125453559910041403966730406141900289122324913827924377684526609373405186990155441837942990343031377912653255289297606606968836275876589167683939595242671538913808598225063418946694312657815071645886412381966645753173332604817622029804652260253104708315230582000287167669870085753221114803233694681762919057766421827584063943977404150562710709530752576310185876901327587889407716747595897409650473398334471645387300034405279249712442494287148574995235288011893425280974909436424940656077261029170590942686130184945081859533343136659627439275412752621900969043362589886296962244310626107981429424787318209690170053470080957497769676613317746010770064855734238738148652663293765930859573297841084428913422422209560424427283203365664114389087361501116240755848662750986634274380146190098655366869263242560087735061448725558247814436869211033704152945717961257906502407069288807269735701264518135051772745052302212110998208158517617624105633733602754756551395230853390238331724258161181878194059508830791032868137672345678980032864311022051089171072195626912214627322645952468537234840787521315194385098952805532344699462107422620663679302828572215119234884813194399816608188360116561111137566250254840518642186386480646725840314983017587925621477535576188391831880694846806512406730092890203259281944869612680479173489259248661826534189214598757690764907186115130501405250573769558009895466827195770317244007062804434696914769238462782505473926552304570122362168641211171036174395197899448348912068867271980190104616243873413605860417612344069263673832893014590070996758606392541166503645934915235016500072077793650803521165172567460773068963148024210890278502614293892183029482899456540109900812621081190445025460300668041761573245296362594857122238811810693798676873276586592345857775845381997342487227113696618053275224171960758156079706071917039947423597341745415680623948246342164455600301441998652996341531506733461924746325249881497640261856671232322890478843597250228063272903680902138226982272304732318015362385061887253977970725941884733270085333225519512832274717500780507624199514284593980759842921735918308330153289290166748455721389909903490930269674960756776983695499292394461175563246492283539096382546231259484947547153445580699712233923420108618413306433954062941042016134702832468349720346489639801277516409124030837832358360373479359008735610281251243512188322785221767558816966915325017875126269143010023498966067543566867994566186904785887244602608540413623707936820104964690112672118019465651456074306043839526928119402758047339759092823267083691777751532969830110177474700325927006572670217038906223318833164408724725602425496075648076987057331239964285583347136735583270914595660212521650288431507676208397483043040636984743710307088955968645119315004133579849006352659844399225441887924169012854548130757647285329906071072969680576638702688801135452819698049242788913500075429442111093590247995532814747903725445697531974937865481024872426185552877047046222755585235323443391913491798786770644893926003173624002623860073637799104282557851037809231624847017304638415439139983187899934491019708796619838654249612984327079045092675703461098824830927815712298723201356893083327769402199095720049028789063213500757747253700253456509284936522419002493833468663286938863537711300442465427399750454705624947082946256075287980763440130750285283383794879115269229996289990681558824373832599038933711068616748360398974001614567497672322824110048988900733625797510435116500836903643074716078346527950138255247737827599402926899532234207566656928054561356958897909909546798707053722550427361410406062241765208336811635564646669222118621259216457555865979033107273244329854361874153511479359813348162173125921351891171781311853152945228865298706696982390501801629229924827844164501448932927111098818045789115733852108382300583380129605964522221150445288968938218689375292171974455316472937517417610082462638301271007257595970216852511393904885648723451889096836287775806746076234475602337556655817507056595434457833103530518053980498169999276867439920967650812083266534835744481731534203831106044387743188457277762502201273969655282212542644691652862167285022088497114995657421836217959552372428835917458422044361333672678708941813964678190747812950325016814433110632399042212276303251494042673464489070306840207063979987406872121727509601608911180922186592807891280787409053013535776565623407884000248076531308274624222740998628597275231273574105531892912983575698516384780944327258131174148767582093428596900980592017258748677186928646158636314653601204151058507799965422744208076608872432105857166479684526490125909092929173863036355444172828690896866224857097222494431137657295189394739716738297799037179175707680637612757410636547002973008458027271629674401877697496400309946919936106109380634470858193139344679149832347150014880223624825267446663509675491943167717281192300684944993587076641600224588782344418461594857868872342289547571958912291559499605397639880955598141185264852836986366126581883035513519403830854357962746604998232525564724997092129670735869628714939474649275921793555548622031460074685214446845222748644848151175635155138425492041605926426375231671954815691280025106570300505126968028178774259239783698586946875144665719628651697973394804085515199317741251934580901148977870598585315450548513863511187494764645836904867381814880043389213841635194158208415501036155396754282703993630267658508213844228267191771661235073323319054362774454607432805023232258837300533420305065520978947782674694635136762619785756652644947055685988376869570682017189239945263007981495078533568277408110630986171441093492808636664478009591646966443062766729225289792504703079592411937586041843748989651563997859877377922423448624269824419050519887994500349187964017007011443645889954212291147087914881727301741078240542011655508963690663821537053325022207294665342057504940890032575055220922069451393453642013072076220726895731329688209861902194533643461558815543759867395852632579952864663509752563109682479710550654943057829305709636316642084841423399330702187770534129154534953538801189195177999091850356355342629163124506335521767106144609873327472720881741484385412721634784672954196187121267871709142052950966022427539673609819011958978581234165389852830530433184773138239349204233626487131234705001781025218893833155496045360887957291376610982388920952035506337731964115995790589196405078943320087802627929116592292481870520044526349909211919052262845686835178452334721595156079413066537811812585687520558700443383439557299533586167236258402828941390239921768510274723758664982245324661847689755618386327409543302940035587701091650080010912048722889001977695153115840018057338528513912702414885290942800035802978461039426201745078621995106856728243349499063355302426585937327557841737957720129368180703654105734787483423590391904634521517157283668958841375878849284856962515053843243403236418390362266477401630221208921017283915984583811040013300018514671263538330312162945576909386128256180168594927308752282880082660860903449288908760697979839347530796100410762218456401293308735329912597842238785672881339746760893674873619900011047880926210250252625827013297689527634156025332540635911427477070714922362931941966509135445905901563448982671584094947363303850623810819651800722825679401414296851724866576193882172213095373039689651473978604766916260313231375837263153534197319001885284249557195422989741888185543674365486455153017340868884104573386290705261366445207958694135611216270619122316937148140842218170306226114034112194786479609152118515504287987415484654222530755288484729651150715612962816696694998757802684719532513690963826718545625857741839031735310131174837090429977338942588143991614359721952973787250507789421731550169120209918513355057852594960949700139202749586442741946704003303325273296958422835875281089968594953101750813985462390990945454960480955834788656042900361917864967808876252698232300383671361659101173539901229812377121354399327438084948035721894891887284859290678968864620804780232759636269368140394413285585838550169743923069503046382334272065392605974506460198083275094235410361435466449515037293760687574630884826817370644115314246371027305680018512467193231709757358140192486129815619052031552659763715474372314591608897479569129786410397828363618469085376614447369501812458544129647363540339707969933942896163294925283802017789539001649014299054650168464814933502165971794351597780414640769915259821822388131326868052769382950592177472688759001119965381958812357619357044843220642375971744712854229890534466388728005424113907662666960883978593910171368611576065495819472320998563219454092136612444922583493216560733533734993468736120498703955814448386125020784089945465952551141358120944649856846550583477161214379627126372538203341328808963070413771017036010963833511140176767231405465411662976995626954045275934593349761405711059407462625036794581010390855744102582333634017666185867329299851217718432906346362427810424001368024493141720563658142913288134224370964070756162766176228171922736606858006667536362206133149919515260725810464937214089980755801550290972520230724969416445943050401699662555001848880188283013206499284827476709325629365450138133940686111657000909315283291990825787020610828282337072041620344747911341619383144135116748597981143555571424962415258216097280235211655236545586055649995728956823057117604061355842589413154624462533442385724217773882849330284442635916518086747807145609958652480217326692734739529924735331728624991421392608666744403416918148352815486902243576906801318374556026231883806002024749785702217655171512548560943443981888914665243224887034421874969636456344350225333599439865766297924958654922730809347925944479469271253369560036011718095718011008411923221909653885194439714289879806953332637974164742737671060806779340763370337506884116043763089120801361435697327257369998435294830191577050070627748049145451654904825225958005446095233968332242406333867290310906779638923668036185775563530991979381387470214796358816762457144503071273410183974513316739705486031184907661639479593798928383165545516010925239064946937863267637836115646663674331896181687650488224701925156523908386397712440943048433180336982847087265942398997925879281892715095545845434169521977208420627282208412599900484169473419559858729052449867739298873656716149836391551651959203915271671365463615335425023358773071478329460256218623783557057279980403855775530336617155085536674743451490214739116702745568316426990700959791308998534604292048739320877008768120130820152240584500541148682225962139340161704475500052408199741953334757818262883859980574644606589927709198085406203642019972881276727868113300013014036137311907460226992323142172858941959001181067902469303567819718064243531397952774112915888970601532571743087518618047256486867681774078370955195007236287522107537638443531062516371582982630569801560870328956376831932382731065683293741420989361447384398248749720260584224728059971773484342903822617783354983865837217015881844818505657219365847446752153984515156792300259759653652896504764077569212467347781344395774769457633336949514621874111566727222988664547093454874926131354401512425552758396155167514432388360414350907676719154441730922557625778364468447704671911510696240401503741214207140079819750380872181558504510359769249222917942929875723364696227166361531089784057028535245319915386144176914067848690057597993773258000218842962227241091216089943971874749685374917040792689105608979129145594112860407887944100281997671929286787356683017151978889042922553762547741169992536856608661942010250779965936231282402219596263474856787386650166343250902086734080031486237735417685942370422520494995078058661003068182234285545962070669131684217673408938754436904635124607209954905810664327385166556567712709526957165581127753601885648289168070643064867891045401167946109892053942368388430526428230423888238220126759584912085710274910491206195909881289152143066580332269156381777290877643408893391890706930118763864881329051910040041396503247023640636654092758398367896780139608215405390871940651424829350695183176384315681785129618890570230631943452765501238751428071288932661617799146060556782612061643119071848042621191184577342757693711441373632313054724083855217445303069400757336859654787398785790395573639647493073073943484193851473241550343646715628451412214398966401675544219859048920239574083670090954388128520741413057179814119069773607361041701295898822561657191103699458893546322151326887629151107611536749950452931247749109164536783490955444374413576128216068953841718297660094454161038757987227247158175886662242788447483226380909516316762115967813701924534855619670742247280872576997535611523875266485128342132633679489074072686350090071820957763875967613595107109331006211040665146945214638467130903470550308350040513869449733917461696179636490972768244950150200925743600574125978758171581718776377879205829661182181264143102195481017832153318416533126406782760839555436564762059034827304753903801499988789546332389157663245065758724367504283777723337992018008459962782275832629203586097132277765303131261085634098490773524790162258431874984037677190519960643233318816515784022464685357592919085636959546795456375506564765087838129995927556720724424165307972773536981661796538385934092197349156120093822333327572315184855657721723335511382685579273925599206475600673825892204373758265738185912852212554236188860304773563288235990769506082111699701137272779297014918936687309739426284974397934899822148850716732424483490363536990027093098305863441266842336474122272534393416811806060501655589104518434048084191639085272129696869600857353742175089449555740694020796659402256443584695142053819369157066195739470939020951375098580559932200274978573078091239166376560784311487493112943287465073560201202087504303732925397850037700565620294423816622475418350340916520540125939057999678328567652366150081980786883241657335252606459060567848548898164138930870749345338581437914324783237993043025022054545164566121597883456848886138676999785973838909471243964035718600516288990032517520287918796405334034545084381838298837610929389383681803781825341504553187375140405155085006482208289945806172133700120164141268095579256705459685697013271217528304372315110542538725459718754214792376550007253892477407646205242073237409366444054872662316462940559148795101795053655955996828849468460181096585614188366435915236975623347007629443429612528686529656520663936533839112551537694429259062077786995085204234953933138284103915472339166094559649957627496708159431027625698644865825951875475726410665501259891979682821594489619467046895065528258656509246517504018722483651253428637645346552754645287316084707345565152997792856646510530771983394322523935584253039676682328079761263116520626371638688723292549453474624545245146414153769704682146730200953388416395181047141832711911900411405617807726616508406269507258479280482134486758737652916806525107901937638101272366551073380424763289421330467255908622588104834657621139060054750972019769909434974347576462045485999579977789329281859999606039769086821936572391240854774529580295932364985914590213537611387657833270817278626914366809822802864175421993103357382842286469212922783785533886458976855487670357948854441281862197479661162029090730453692328802008445283992852923426691667324907717882044471538291530066597089260552833101547244388108802909218803345835011521268130011419411702848684002519419409172055739378237538901753390011128571483708339327336149348087707973255667921168447726897135618383997768673857721325148997823193823218978900475726683748647394069858805735079786318162978608631481445853380959405833548314762789693085251361381797920896443490364415949363749942929564355796539493119493055753499774641548872067503734012382695526314044246174260165512295478117368326513139387628724747580834050643372418883068134052466829703809697762394169179439158989192286645696925477533253663598572744186077196962132925864743991593475421382082325291434237694675624919041112550767686442843823259179608978085271056896398269566271141787742723568565804166848091864819127300605030224890638779815070398511200750479834532363356036230607269024951734426251371350253486698988788461964531378104012350302489579697655797198848645386627389355690372266832763745496848215482792797324498884800832454835621385771614547720943575383793040052806160144138686321813060331602452435959723896512636744749055170100681134538820912318860932219939727555477585094615045794884645662376438268856628983546827661356630159509879400459622667695936037458168267545274007321938026199565365963306975325181693108915744558717003539345319008302566000560772073173312764921638223604957983584458154056386569466449512944375674788203107633662644083289935235366205897755017332359997894661789253109268247993209123627139525120155658149293339053300608098175040065126489277438546519481909446527886992768029911603750424419579364917523696371219799325138984590438169955980082086251499636719339823718321869550776869041039901691692932927465836277388823117879491595105550476780246611320110953525486726648527757650319562859889689745297475380897406732703833622766954123739576895539202631720478854762210666830677947328197526229990479991680619661276845397515714845905003181941479103658688683069264995553928553541545026496092699235560720459389712168162054310017974925533531279606032641654003137169450163834060080436547550048394006080359849333787543077896013738725812441393123738775859377020412632471010835678628478747449566464484593701432499170351847037772712585836890316806109078382422682674043912458136966449150145162730969309825973494085669547259729154062802336637152136080472340999257252078716438261187345095811235662851320683002027681976199350165498175122269272952795371084267896862620418041168616760683660467429107289645270015277536460256816439872060881270377052219433795218729694127816316604265156406700482982849661540181974714432871252805462817703161953449671360224397185458499091429136216705820449062717826020872576445363885931180191135045859931431867824471995173969919498954222899836592737930289261357530493537375651458148457348352165991886446782178003951604276547363724702936718453923241861464980235416584199183220388025203090175928307006880109757382027909804331875119954649936723333926304436406414879756194713140512361624451409521845756281501777165708917971419113880703263444383930969444256049834449743867800465016422578884399586733178091351463524440277733445345064717161062642668637689784366182843607902164539993099135223770322655932512566875253617711872420404006900379673154244970526191643886317907746126911083975219401281515646828027290321577167778039918756652784364874459977591861019236896202984947153220774166692421669547838679660292131400206779157975944402641670286975076702279750872874916160288040942449581555525638996399717482079714026248712555206387667268480571640905179614768744115835816930886165414704163490739600325954411017019490087837645225596458743671417196883284866745256911206666448191280304392866124421327240276531434830924038795986816826212421797965158336827150978769384775471566383079185316891901406077110731373515071631281312309395097197961044526779194057171532058366089192626379475776826247637237973864607840664036489357989482647543796133558742503864876945825299358485152417400166264234453811437651450252910248404166216576238366915562513703789761115425267538875848323032197656299036297941144840871014100791190753781898380802906281453899893255863182347390124285046604016024535631561696625612753479095943027462332363602718658288348885117018575700679183118509859728366380634304797458795652442371254803730088784247936989599666432258858876749188809135079671586384303841610810407696168372547777197523429059875694320670801229225548307461796385484996772474754251175082488775918829596009482557234152257320274711728849052253159975290463503045161856568337059919660062520327744216588546973175897989612069869027665455948636745779931857319855859856584867208006295266900714917250078798136957512704835867201525085985051779575923506890079011289393020838215329091231012485482433672017014022861669453126614136636541603157694965784928553126358266366750109398948890531387881367772237558211065941323979044766472959493035237368010537568322946458838067951500884106707669370132425503488118596270329910275680787056271902159713986073156998880453240239669982939318682319782160981806104974117361729924268589568964191136027357637072056513878566470767691467062958562221789866005569598704810781816768780118977692326264843959810666389771428575614430659148068394500499603279771007868703808801746134980147878695680143859350497908809034403426169843013903763118632533388608279425634812610542165316717937793403540767161587883665122118588656200187829022591751944933044922913002169426006990746634172280774004782411270787190587120942992407509524785138043159393762372764263389260785233070209595037812920228522642562859457648331760087025633857770173220115861395257191827318731804165197117456646498172327880529463590885996990996806908331794430512298971921518920043645203290791808402727003719341156932370631493883128185463707495783213962603366201934694204306736916069212070691625175544866057725695664697382695072634817228866001272800144169091696098337336152599562027839329212471597991082221659345434911269966665019856753397638121347477458280379284373582138296574568184972105378136175756929077420562300740323972337997443349820984267989670381540335246477264267023142584776772776918105115592696939111107193523819544537899408756998892694422081367066716252409026422571758098404365330963379560943441866944613562729584539998330213073949014120598371875217807582760959365716676253625765336082939283463789397344267447856274811835342040711475655793024190245001590683213723260117048127644911339696229572258982199085782919567477226068355258758229762051298028422211694965048059238999218645262923087903358109713176304259189515359919890118883140409279959950946914697383852874007987788878067714211118597246728606688769408422103663485012013453495801767185337332732868131219671949998726870339461199780270732267918559630707762597745858451630986724238302363162403273512603653323032290691703487823467056359357043951844131478194679518635745164931161999266913543976316849890525800777353053539194072146065039336452907448867855726373549237811585788450781281387475076529904222330187202403329121524837572036024487629344563778978061143219384431140575702702770474871059740786393526376094892267700629352969707970860971626631344276642236992029615914897800854295516648562062216635047097368317076073248478886003689446033948175076342148435586509115784880795159743669989664948246437831370328513248398769905519424107685123435105175736152091201643501621327038938301742303049308290147274514523363680487733721250251808341082562170327893579844322426795215512637979970746442550795763580120108997210818224173499055553944207931791702733882968542539090563036706216157167422443123564736241420434036578276091786095514715994953748944076086172449259116606421185091092068696775549783178177265513075813291560787053077346723149836396026773234775137542040597420929469746539797676505559857618315703868258347221101720249980701709899127314968209969321529749349902959754757622242605731899948780082865503247117318422346210069551664700427574269127738413308325788016711844019015711966698609276199763963289845432556469801919416081370775116414525026548902776522379431967091803090554226045912005504806610844498836858897994901083886250316717373048854061092000491148651081055432129981685279553793614781001150419929472508041450226933770136334475473916996572675951382586462227819859513542378038434484199988177516812554017900511873506318592350123891164455912749714518630421256147806959575981610826799579488142854730729654508912999982492782625691340347496326905750577684604915093542985556770589182172123147062139633966972518992918099609783376126444627311164034576951380884158228683435486408629067168647313806798083099576805252124348823794846133176272226654454783017710266469312738379024510527285702656562689870431409670839296635462304316429296172126468058203517011231549030200792022911024448751094885583042593444930806276330837365144234286413673269058982728794357691078228537694413691639443302800163371445659083383159180407595243534034952477011948907611531451838864264618289172617665927238837033710340119457430681925753475546723711475175224311492870363391672042488048628932534073586099350963277311605954380281005284258727464857647789234567856150846953057048996810411514736939028771722844273040669651218393874868310381146084743805503091299691720153304356472949097074291289037031250505654580522838289996736721614916158558120345351633078880237882807539099682181170289948251384060063210347387374002298535535794816036179555531222419284528938832121669154139111019763050652499255664729034594753786109971649010180827207248417361635576140786436125928119926205152523541801447873456759433301857438670461805476830557368812497276632348829607976786029224589712869752195906951755892328911626243087852374566641586250301572253261485877740873178800096683696827011006019760535546021047457390558056781347968536470407976579205785639008513057274614802114766254275475967123305520871702112526948953320831070567723128065910617712883093749838014059608826473539700300802165697434954281916469399239508036470272551198615488862407740898158847710084621274202832162815641920722117168513979540893177800546696430403269929713310189807862849249018688071820816608023122063356540950334356619501870053745496417418287026807910043745625390715156037242987636962548147256360815357481127355960490585213618714957120012386675163866086812462928398785400098104115315015354498112470602568568527026343427119443525524821252354039548153436262080759981012658827508327676029815018509625908532331575895778993077167360722192959114454757591456017388379368757204879917159804963407019333936598084494268248299187536998817056360102516754267231889165016468858833332648498647069481362702368775111552290102960237414265639268246168352139842423893479502091516028493032813660505729204108120943409152608791012469547625050535411468513163107720212338934044933032137113357496636172684257703194294353368781030692589005631187003602475986171806735052149318121650340105116668287332353334675235294656632316342918894804557650153538019713897242670603305400127394742816492585079248338186314321308485978992028249335482236727961684838762025232393058062343704079442768874452930065663056833214128247082927929260275736357313562506728582854295488078772336336921564184838598281825646590107233903585466529722173726368636936294778567259788173343414341992303825231456436027687634628647089171954719440602012099231846426266672292664990024941796232703919101574233132882431323138952273104875512370175843952115382908908068997243170987724573872414827401862859967919148021355034883558232285867156686444805207461160930442000172222069574604955190173817242508819114356419430951793370572309189034303283242736531908947784365207939705143361017532825709699998811390688354624321221950968420858190763360624696235986927402080045131971819020038494365397439023604015098136361276577747718572661422930381489829569454137474162063027794090735294500872336092205646219852270381965685133870058139311131482829276233690048742038970080466509391105076203724970442146180544107979658878411925736606723918234865650692915064335423728525656815045755784337425107995481956357868856370366310914367971817778437018511131994296301444965966627532014075644721862493383533117863195003186240619164581193196298646178132551816878904677629467144182755062034254169746858756181417686231904364142570896248675028384768875685876432965901037825693914104292555295465744058354209354881386221283937932499318996267895799210365199534526996791148372773734416280367903211221335620165909798602490478947308494947315344044988088909824388235121657046923205388505085790261805689943089729048641943952187892541833896126405307199616514053996846189096969879369692431579195736721247773392578263970807440683352378181380662824057922128741004496750793170058998445584017105172362393147595677831328388998316596538262321433633747099162732277704546538935642704465768449771550459569927562788375038344028820508444936775760933484100574035644450594103710709013851439951304727752775638122279092071834379073326723287844972989009270116449794765732548336379166923175521837670392589188148640069487664373246912143000740942507208267333552652584440597651960231097259232927819119748216529969052768516357701534867300209008802725746541657855565851789229610262974672827892762113162398155805674313700855263695816507923872914953441688198065517331481658064951141033970232577821837791558134515802756873454753089880186286609339309181796499914073541205109642309010287834026346833109297461805988002164023113820923201822015858610878690537104603906580816021354991396875359491471748946511722511580644642565581068515029379146689158918116696308897213609058142923585512418636481565414727488011159621203347917747349128475899823272347562828083288591206796075079285432469679708015320545777647347670155509260322603660769787942709123035349200010744203237416272831412858489751433050737609620433727306481999724662713277055846067526847283269735042392096411566707416577386106088583859437739935442769801657102125109608477371357945281003665087064921217177142349757973230444059423419459267925281764892992433186169803784593787914169547516147185440137641079668334943059992531481810270493781582531401221338970128197166738188310738677811139370090341680863022669566804638612366653197424372006512726070069744994683562311157468260750558382507341637052305131800375881905884507792197137507704896068358436094789537251919878023068807151035098355492901696451119669434071761086497209250216728777349925919177770869543096267521807568113226144083393703648916434683271141281079066118771061980689703587353022679680912608076862931792146931193714563086792192495456689549834064856482485807794709712098749047421255652301152099841091319552323513079033852887138151253537794428916034454995548458087467305900039460012466584685101879463467251232317659687437172987658728779372154538600145917101834221421541420766232560131448857163385457951241506140177433925976007956282228864842036419922800541513585561790078324794722958212920281522536544534292134047125058146597874186112140321749582996590253197423520961699809701685329671622100743439506358277884918166651942495074871728114622331310152752914491836349899847948524988478367813115795428750873243003528185149614204030724580344803500275213979611407119397088370253186496962079061339068321313379427379983918063493217511174168171866101130474289117719673300580648894663132062065821204206649040838130810471798280819623012222340458092066704545588969570587891484175158577321610214124562013430695526397394148355436837127763762942360577671978605053390185878895945137986297933974571516755219847102021096626650150104487333180603218807347180000084017920926433421041043638670060055483304765599722861809120213047415564159536121730668857887068860798134364664713516601826034831041795203579724164278958886432213102467856293078397727217524644259154129624481601615682965944359412175263285055557444066947505407361387735792441351351470186327136054194654056949091201528053747749240179402379459573259389519950818991850346677930448140563300421041927733726836135715350553974182207278571638480092611721805989322822740288182987706327242464682988931232489371831758643219010442900868043638118633708980974591796419403423642834456027921044292442838189692026606072367203573047975417974424910393411243839742146979994781211640187152641794689103120433518340567046764775607738942690578379784623980996801946682764642098268149316494313253393772734151256077237774492420374451684813972329996058345963576792215092549430946245418536726947003107604101574533000070122389592109986949576371768508020161642441045721086025135702782361817317929715916937976846082662019122610924402417719978312179276507584959812971493895388895693035096091541232952891082313249882446951545191933432762284843264938971733042097369696719613603677595879752775476290635976965838358241101261306000827543139065889992793572402368290175605902363174103342821518103819655372493102846163511815391200805932920943519134933596725566471124260638351135143179930955499227254378425114399229559820887011540309335102231026848922781417660646178252971426926328992783834622342479295119933673111725566993762943252275857531328365829566440096896077957474460965764083417854953750916785937020020500799847490801491250815168606703266715897871246853482409720657254509980463786209597997187458860375508589490177404807747086554222719164035821030125805192317401752173407203382273643770271368939302872649430806138358121481884094580741857577102654153496384191033896028396648393054023752812577222446057476153800875646966992155974461494329955333546948769775905988084728020592540743366933069659376074151494058677546470189371833459114779275316330025935977035566026051056941871511047198954687333177378702546356766578287730456538234724433326361967041953206373188456063393132340233923171346675557316379872078868799804931686058727169420594338815424690891043841053255953292790826811983075616936530362915528133352403717097409981438707150699445092531167725664023042920944119207023907777242613186255754610081076449841645240438375311666079395538532186609025819128504896166772032884626117728763852084586866966512076271066895953580396511095251890995253715769717721802694076756770652104439116320697069612936603694004585752042381654171606649312036340277825412655560484785905456111361895435848385718267583871793693484331622113198610404837822261365863967752397095469568355464264035825751289763226378756521548769545360462188763654525630258946106833424013038246108550077427227108604585530316662552848693344195365731974813681754881959580317651590577132046873652730377722327491769584915651175617592897446989247352971430917211605193262209996248503451155426894731449841708409942614716417867217696805003640542530867490494595196137406409056070387493379191694512096577514787201031495458502118269776847288230014022760292226324199424575252622028890440964227280429667020535433088958143122887032036790639577630984446658941375238501555199588725470748615493530579975030574612516163504922402226741523110794156446078721699846838638510204061792363366299244068089547775360551742598082889644613759894181880497474745222612948531659874198977910197090269885556446572163555538755900860816664474519927054843898882063500348086164931086063515975129574257654562701427793408548875426359921511969765871991792720772900352706611569825247271722923987737678602563371109235323155247534294868865699426812999073757005899515466196678013239643895359660415565827412210716875885782559812655691714682078341840049109447900983029537607773338709818664699499083550390923501684114667797525852559134662076116387937514588877644562239445328512472113448246576198285874567325837806026170220242808025642020174566452728465935492369889552909205071550023300867815340945369180096955257217897080751118607637408661129339056320505299145122213301029818968333483237310229436739876146334005930151470361057944898565894304147263628206319462462592191080886901513085739505044118781832601211046506501271811894405020087926717386571692189326168168430441345808518846923140538843995566445043860407472316664786874319419304562566126094214891612611156619542802328426530592350165810584747018324856499833611196604871912827314379664619289210915447021488893167479688558576682883924406663408648814393085916326396965681620896833775599039641675512159195274512686099116195377349177929571549059172695862727453795569556472248851716285206435196240872628527873877631022572411110037226517673281197926560253651820379265403389873913298594142681320049097011094350552940235206802547044740655589035294369019051052582450149096145808773279774123959803235634522924899425114534622590932923505076062444211083165176770299670752385512689494718652785760228530134847778546879201454551748216741943760394912013676204152349738359439237289654469451754080477133156180670033870741950928839743125293050130124545430304266981052241090883576215958490945255934770918572801708184795816147605156675813489999945229871818371257028173157280809047408798374270293627841590064840799586982402959882485004527185131580606251216698304661914308822576814842443576992122447119992622457197352514606833815288524159781907559491807989801025644649958348178251637910778037449331118227407378835258005347834816919730063672380001751180114368371408621925124245489605157885444833945781812024253606199010358240143751505909154921570822634135840057574013337863888275423602323280264623800312689127925300602511755287850201995539656317222060844439617227662290433326176311056473628224187949493370430115555317614448281614821961023781869993248151398020195887611278335539021911321954359401810866568425386716245173798377011243079748475729205860448323562220355165596395508606564625870179774197146432825622174234777024104827940945229292475603755159605452978064676953227866766094378195365231632485801953245109155572412656726362779760933944112573358881180115595047796320147544126723306458762338437615829772807071113063360167511853980629021124977255318096581624759259247582766993197377207407083208007823280710627649255453057138130329661525459331628674837488529075848132051299620847035912700746419830831084009141144975706066225190676716140010761183360334006180261202763706400301404073647962720290646153620851601170452054254970218891836993299026497824259562644277750120236981822060115865458077474910149543226902992368725020637512002279986888292324155776511645131422595854432867176591925482003720357866679678649432482482878503069420587153855749552406114774622190090693490618712965432391825503511228599681208052900430747564498980922686623268485464663592018304594470904497759838800580930223849439032155023637906606963012676545360098512242074175526757645905385570397575515997263613572474134382545426281586585523369002013728596880457903092298303668847774713250412867150881665069556654504625504079956844091177475148715468797636813990372206751350965428482269281570689706150685138853035835519125665555043271616923792287250093320702606850285487800463238182469596009738235470314291604561358070473561954760698554410127710457751621855124907906079156955194228393277533450938483454378857931754092943429804563693236879155865224480014427526525321210643228710313880536322354357492609842572661022916146727416066169412744976816524843497091459578164880580598835228220828979946309427579682352625538296915105403999891220492448686801940265710243938657344780411043313304518699083867252619904524190928917352843772381670269850232678280224207208209420006649913514883910603827189177780373010459086023304275319428283710365175607982686232528374586641573782937657041130643471651007667296434815100421965266507239212818514878736074580149878202708111129438265347252884658779596366705844713067997810332618381296439928015598182773755119148393482849150114100037540442019334770011210659600082225947857716165750965355954216777087895466353713164220380603073685607612420028923257326234539932988871402530409509238863193398442206864647909574985581236805742454012759946823796848792240687246730676886277065020990324366659257170227737187208450031667176667149527532287709335624937322284955182789338976939439922864982845949222988072615153878908299502346814961753361289677779350887978287865311290218598767448646839979551879505220258556367041519217771942955932914778607013393163296661458406057150989271944785408091794284496814239840483754715417522092772907296898714871928936139975599591895646213006334659106560947562008655875043288406109926062336139549970364057930614629740587593545368180859894764178708401135705170326917619211710967306272334630534403940202632611026489717438878958023069056562530543325700085461154574363265365057090363408254171400023982928358120744161039438977734695399630881555341354509976488891448713329277579263163407388799454626077960515815761896100112994210270802675157619860378251128784387489163440764597884007614012234114761351490158860364126963720317499995335199616251554730616576062528199757561185534653036831043979892645955700449026819298469398505863311683168244480919511034892204437048963084047868885306939915280720239642168500484559765443416097843964402939767628105454985118985689078141413223870587448335131097315385798833971899873764414806853138237488753209350250283239528451164388382104054330938651277088228872439478980907744387038678086069273384576083139130978442197835702911634297429910915376055199279326261407629642488658978075359592246310564703278383198299260495890571686881294381106161283824066020875232496351187718243387905361280978860082321729287732407690025320594796035099307394745165100573393692477439427599198997813764720579625673879749467190478285520894192785357501601377371393875007458872858641278917171307658033496286629826367385718283976394737958190783329800707640631201154263473832170970182432562640806050758984630793551306759751859741784225868771719739916933497951353695116842096258105257047094459668553236338349695800891882053177892790505778333323907772812282239107665479423210516222337695747225951934752030571484676791115681621563008009700054378143104734635685982702991576335852894413898166305967183049748521238522169352172053991983745078541352027395177742250370387323234193930596165842907490326299139757032190316936782958315894460147115645442559339285784043389934812095618458341524145618651961017035950171493053340035970756307828653853615373445519980126548159105608273965140218083000775054599228212831802189485699887765634601079010968055030062660772258290899852999131736431636382433548013389404052490782059651747720852825054933639690763987801786520299925519304653143622461119927681900887413052192378483716683021027604562061747658099932738399972531053168467972907697132333759885046557366929958087154408802649259930660459962056440084547474947423226306271270134332855047314192908675243833893294974322929858615018285199696449150467607405686127375527135534516682646015678443220105574158688836755195560730493921024551978777824201385312462031065710652057757010947212713036963106751682284509632170593641607686213960705640879794678762816293285337121498375807571252276145135030083635724741363263296214760294090299787325930156756351450281452300690717187014533682792362009419078128444986713807403885306859872982785651888937452017233822655982593886736467164797328877156157768312122770494383813696812836001532525737922802995980512675511714279161908205069891208314077884791376057124210412693807632326690517578722087730563429679105560628377364761943985905006565967853626605280427931958501146683019595769195599394044023296701249960965147434401757171270554441983708038392684769623641015169851738703105994387098067179109873247433751450176236638944314213427692729866680592245754730472334181166237560806029185767153413305001881136140774321170657835577123906864060908446089602607624787750988036966987559814680002569760126015077651998545435134329354955537238169629833562018274009883934432509051082347917331971787352077904035366532820354158222149963098842669471594286355470063351589015225823914533016828271857958789128799844030972795955417005352076902677874592300520782817380750915043490255237954935902075191769326584238790467540824872505115324140333572573918966031043933921036997093196534150797626074017715910498983237312782898603064691001989452783344292728961714163584479379618686670970444895413796748240564724041978821904909085215362385344663836692591648471529848142833945062216572027806368903035117562959434585424519465014994617962795961614558706744641120611619221742327309225958386552220224111604817377853920811910098385228186402870669374262599012252032292792199979458054752189440963229424779654979370869729382751798652634493900574658513623763953347717710350585795508760483724628629973608025522743660065951500293679619324329245582616113506068698531095723169767921605961990952060314613838546840909271708134539362244803756701861690656022461139961501538339133417459271321963219676659822265644147522254952858013514742597719222664733144615546555648882611119348233035073973324531669528320488759654093021675228178943887219879748640602529021130318222281743821687784731320613694022514875573529184932019730347123215304800579897088272857878428162124852431832924443073432540449897681841535673594244003851066406741325278131127566083948479768625496821143529242555743110622122038115519864533145162257617352086876099548793922103884269873422957151600215583665115871153795059434730242142560273036479461665753775931958054498023110494569374854013052251926060723450430194278404624782625135862108367495014380341751994601509423410208976783446458997996271229626312481625528429641691686249555033745560969779961747333935978628285135554070994418491159750988714438266002835305944629078642895438225198843822664386386859704288482520873427519031987866749587708445457724487893653887792013031121073116357565580356270053695560036743704557687570178385413196231913742969843278668454914186332595973048604192881556639409207696324888845024433340223892719190204830958784476605505191214904117920424863003636874756376173343156436357027507812057775464682121120516372949117161361820899172088981453609534382463624629793879370806505490215248053086770638670488895883342303390562693289335819845795006251959353211491380373819912551158593620846829097235349657047503180267558878063827303374354348909967340199102457409393314481029830104779183263552440771350747447917055481961134248075762422821925736502447199066022729363508592724433911705421937293236308759601194394098432337972021267816472765459461850669077282710791749483021037576312712118088459799903640424776637106888321828768839822807856279336798880017402613379020741253894624322213693827622443519184197760200134119833158245452486080430365504010794433056152973075769873348599545686953969720656151433936052319057596653416032515977599828396053053513508463952957623855672853115036549390731228149284432188376081618641378157332575968786819733955471834550835159237364944808780026415210624069922224525311806323880313133216124456781577486598504003664865613633396805868496046653263435728142151251218068195690095219550101749712866545964892670179112636205487106178691168366573207559471167380976331331448470385992564406037502083827083072054582544684081004543526475748064242428040920669683436540413038617232903587160957638960125697456878234767697042551800384707415031682121871772074118543518975904660598993555712497776280720156202241352977437744446035552758996602195189969751193275801133468935901152479104194571155596566115950606786176676806350748737362897887394210293119348397778405124375379514595744917080561291159256510356816224970531551801689182720329762656515029678857003713513193329993343990180654474590751955642941770626160927407085966843102455010006451087772782213474603865452337002846774889832833832279954775032678729293800380771941055440343233844505407377460930308604781935760606547365314087849147534052266473761405130868299441891335951714749240002697811393557996019292566879397800304596789380192527667112983002411012127716974278120265598628398019860842337763412807031055121616926797466865791068001400558573057950430876921931834898047245362657322336547926120896969005838403094013343457870193106273138194485261898296633039828987386289452704092691563961714381429751267802510416737468976970529676092630109459002065970727196534810582679410314254713963333885624851871692982807782119726839926794142237239549554242913687192138200040520999194993164769982062042776746077026442903674535646601890188705226777811671075747702468523540739173623573208160621819480147497389060168400708327515403772491270365384423045852741355280385625856709492767178634106912641969520057898951286989110044741799272749133120785640703704523300803787214539109009935871689748911278924457954790020820148502140868030019005331764808618133140583192855767305303679308512738488623025901238962846398909902991983138391215915623385701782083280601617112503258540867947829963034592845176334734021150320316836744070185780939049910041634057832202713010940397898997326871983544396414533442491256530180722912550018656423309421335745693319739175088110292397077272446517317666161455349129425834157466352881308764888370252070294539582447729260023947555858837452411636615022835984965549231918414850274404143454545978905219825597265383510904937642265739447788278127977038572349780568717893045278200606259697510691967954408760244359014856856660402108789282629065614412175809704051855239878936963685898099513797697947594791597676076054194121128163641424987921618980770374205003078974843448559750149259936473518655687204124557867180820712125423003717352570456121303710751985353337966511226321238838547110636823775521575522680381116643353445866137698043858735436753656828381078916195134946489786455852825882052684007402358477776295833760118168875815546366079054601513205651222079527412839901404456511243447197707458257048437094911637745196669675419169091892797191728697604162071163734904413642864324685498323423401368863138699046674122936617607561953814103035912092541922747582789160928615489676994618281627719149678718610724797861755672624447566163618234581276453489640490881508776318109119176534249726499681000597754152594284942288064868485678207039709666897952525726055410128797235514150484637103837718818524347269345356509965306073115296028431230457255364836568881636414512467584347980499508292772735291585952337157635339446122568997968547933373342445520020120846307908084354182047040041984822796143625132404102546313960887103361172634526317736250938250529998739420878203491641586842505793745805349059692294088465127106872831137025137779846609143793040388724778285169279157572863037966842023670567424299706939818866918682162551042491620417915171710399279239651921035506400712520447372989713980222831571064707819413089540234801318047969247367493030026479280389922616437123460887884590438897005055643904847590541908444131925328703122367312529236258238289952301669023453832543022472450020021640598191023623813706995885382898940091260508914308079435802130529386796413873150560081879577720126557442859750080535403819748144165902038625529207448528917520250225558835663283407039965877523612832905924977806095231236223267705117222392406577758378663120801911223101161941120634257748514962538588281278433296476673182231235726353495548923822999022280142998645454979458571697631252511155540693568193393568496972203296754986025098918187227127877687309966575038990508821955388015663302495163147480444973175537220460998682322399194276985143145727884325546771428531436312750219898994427797304043171432581536700116914523196181059696461317472167296343855862552079923711574298701775225470741324584509709557540271579945097078246656738414116432524975318575968739242736221138409313035278581547637324180904291970513862567061037971393416385792710091593824818417187469525106731107902806763549466663555948058547951616901053405937040891835033163046833255867943067714623274400424129683663999976777836139861461623312164022102667261401336611784304953812594640004591905993812678946667009407479707178723015277703606403937870240205412162358782652817311806049823000388076546439380100437273779333163439307228339311142058189121986581821229249526185338167559371399869757862481368644877410296808092857402190015461182560302422385850231248629523492848070535298641364503115522227650177284106785633350507438207172126627663061074311231604001265425435367711190914284229989127241238485534719348892565639185621401759417043972508362450922549455284254855108931511225932771555430731372421043962554063385971304986845764001947265598383386441239632817253530944199765986527591887838944680923121910910740222576551884496433701237358923290910629409047202866496923155331858065388746281885095368981227953991182984908534390738102149434268345461981477657493835721577533289034596578454831937224637859417320406040753963521014118552037956499489261471969006287148593860142863768405371954887740715818721097838742941398083705911068015970406387223869914872141236308817689085619228794513585858169259445329871647010702389779992546799553137516552983588569185864144059345424084853278401974846333375914756892371161682801575693809211103214076253696200378618403234384774846721239074543972520549569916326632756981079936139387000421450171548750035064646707398696321770762085640868515133302435764189935126712857318136639100492791184829524082043155190513632852419065401343891853086959982116506838714717454420967459022356009511378444116654773451258581124516081736469840141379275201728386116224620502555546341489689064069333393231833425884813653480032961135397438904244072283328022433265214870960364895543113967874529181583221419133021934599874014621144910685335020633800203104187152001924621445674285351799069588029250302091088615374056730489783942343636028166122472490707854868363551566576946495177074548844476915462523888918233338067136707658673507289133745924196298743102551825723810064386911395395180865781275731646563928252884875106280506859415086855345325821819223418340000868076989299413754030387708427739729226461460249940125568944689935615472574369733100960547066970636413773041954848400449750170154797107181125338697679261702755839064974274487953618238924422500065381212267879126165358704570240042035435042483905271834969646546366311960919218628761408352297396828259125497669758397399705921561843292690927675122247984917495875873537411969715945666991251414142850107386698103223974398045894454128771051576221728208734511054085278293807545535234031901721979465898837886963129443454285604298058085821110735372056774857712615677900041958027731717931935059309636006939575519274490320682598746743328559109125628221379610638429717310272394072555374324201141211939052854699242327980376636070833462338672979983108058909761250113348618182006197826478432719177986775329817611118581328374982844031072290451010411251045160828067646219427035278273172157671793837362123693862906342096128819562889936268238913519250696157169461888380298660655661387186863508870773651592214862246299209799471573183737307379721769566569282583492146672282672742034203619438358987231379655375767795391390530145175900996959151266365463685225033324913242736679271718843625436245327727851422281376036787391003022585094809636110326760693247959976887864417295721720838140494091679887586081578107583007124702013395289443197555462204171291588081457114457516499746212434999758145975113873286150825539745653817113627217082563807655858964651550537958307014749240726342058992553531935742385923940361760728875070035997130350208039208809743119232290392163235021740594630502851967828578089980224956424062903179717335253956289434092166277782732349738254466197645628460076729216691525249936395129634476832332838268197372003925946995327112646777386340604234395358145878775832716391634615849138882012784932839945178687896604948459418551476796693915719478998384554915773871691389625989751203696803625156295352328027736496546694414363670848658084233663868217901219322719993923888886685506175656867150747380394496031159546427649604296151305189777862163800461299750560421042658637444747650493298691194600161320079579993303816050441798636055148923944477245258917481701171378851514732469377991859120781930285890006798948665354306331773498706854604229980170590493577893763207650038482742184200805535961020648957728727998349700320066524556139099068579831855674150289578246634371096039286594701097185700462278128151433562085565130205082951631843278593696889197215264153327312344829761887898067259473911981858254758246243997729927112447594646121727460369738541878558125404714804890715029275077512500693257736252096451799145636351524169601765071860053786162722113461682000821046500499926305417140455749608631409072780576790572049233083634199422904231781809821607520152046311141043407000812606008112680052288870173494760957120315974159590697030646694983662529560976635573557760542931999182380927360566310520330144783873410206176172613094080760523626377647785414797437018575591243545372442411622756459421994104885760675674934966068952382564114011506276267256346541834646354779594325133407998157944272672292804184498673501616724194503282519821593396197023428564264434086609927229576378389285999060809965041268230115941148438192656728097970766874182373384183263643785615335286501837863723619122075244557293700848283399053142975912075676331058288797763610315813785836199480335327983917856508027953430866652899773581350255243165175349406649145616594338638774407594036711133094030608382404773620104878495638740946926770842248066181021645056428675944325934369383359105581012686781615917754424898119889568627737166505283892581856930003673599828501001164156998232370731107711003111797761195674919779182228056067442952095082737834263926434026817193196981610125025219954418786434215257986911236659200272642145144550980617160666117122158342344042292114709383635856001918477381444574086632406952076260741336619958689903771814785994216856769745287670473772505888782369555223601924519054755021662392327530281196165212785087341764815662574018503297392417136060606069874632174179519050033317321215263941219108034515812666819090639508208540250634528242748977497745603000045648743829445125213091840326345360840070091813372738202998715571783426745946303100326699901698794275811536363943880227173937378720117543654282671888008628018586279864366688410370128181208385065179819619113955570197430437540238973096054923924263346162128277130220139109931203923500600892544760915588632738121385365959808089810625530321334744152924380573561420059874778240251001802467986711692739874650889322493277842684725582135973200351710430512445416572102709102882765894272790284799034278090329788017089458421737122733582060442758547569948260673453430086961968668055705356060270362801215827823940289697994149638701361397343261986473665311860119243127240563235972321325414087218329785178242921950101910299708464834523093368669861271726100907585891250620571419821632169283198802458256069173870948359578972051976787053919268260851455122839682821221101302202041246799059754496988897899263736103424413802383734312435865316827734074315550977709411253769168035092368582638866791447947040077202162142865510446014661401122686698318100221468200394296988881710412959913295142872220468533190428540674769314445877101492261385581947634771675844769891632264496713898661010683168225821830134558966298974223899653748956119382764918752812749972922941415246123250466338667904404337042628246207198945385638185669028879119411165611892689418817786038775115636900125353402191760683545107000454212370436638708629009002917980383669170054854168831585501593047818293911192083253743199176915827934001560464966601411636593072364937608521942014072076235888011170603815747585573326898607924816718465126843306902846215732470893953750510856772125431311343219294487077480219956050292808399476326929584969225115326417484186607333043570735469140192306298003306176279255490563543080739398671621488467780511307275443780457179426339865482741658498513081703006765291130809323663143028691202173331977310513063296986658791554063899961254468294816274182048924840984407804940637647844415994192089502009366062121136735676427662055766177405854064474133749980325473955582525471211334261252710824954949663339024572991953411210626234251451930251522891762443790529039150511949577847196281412746293512220649199027161669866821594878846791967958662909835218703020725520411609895067483908997602787720537298531071979232240325279234936658604659899828647912712762685377826933842892379416915883984713726061455905046955906601557307243818494624624084923889623648129701550596751829067805765663251179984917183503221678099555787751640425786498229929910779913315180732706441335734784734269337824763614718052192137400054463223133468793890557233433502856046223891033649836984058436231470740073524833555623552682797626364461119716841577955331133175960182549842293401861043635020489914790996867571828945056472158734860601609119944186460495283464764175519790072237441130537570278194180860838221558567863664389050372960897529747431058144150953972891978275376347815946818015387895601552040496569517605192629290046208262209237413522381791972630340354451087720137718131726801983918278134682191318732427288425846755387813182218205800685891969548185739137540548646870103832965175425957278670525479448113810814435265168654710810107246614109048934044159241553818454528864760629304581414693636654582829834307416533561023804410109195303872645264193168868724973185479208248024298640594817764355030840634407001406585794624087412731706822651642126892049948674662087697847596335015040870799947363654301057194270203325475380023282157239044300340472110922318391822829884638271406892206595304007876771496923199088035144458923881395942438289822166108803028718892981257105430171424122104093299191000451419469648117204819030079349550747393670303219706849335345962470256781143773934802068739673362727499371022598092233636623346526697283676115995810348791066197330962367128704129669017142919092120895640882914705336289507666802815173749537422474952871261378126717459565183059786764110235387493538190381323698645730954527965864629498870106954510510011681979064972566123655019741928830057089198888838184003708132994252460244002931897075784551919683936726771770721346185010247086846100977930793450699523424955100290881024070289192955933660954781016072068150509765653114657516596841322493605444442990983748613689421298958039027266698770361721853997398719354790414202777575280334300041262369931788305771133196448638895544353133730076407137139093669176663192734827315087449630337974119880749721951313130363040590671058975959336292361262409420220743814431274949015076453098508759496184175979963124490313168455739443856765488123270089994172677121685027583695407026797659870892870656904046897408455278033207268884218881533394638692565534036966690173706014399229026445755528218624296378895081011524438666845939016075550877460121302558122279270202284293848506351874611139815922300466013063870189949845734389483579450071470883278663686379778938163381924144623264721295202893077980520024819981965144005837047183706389422724473810551952743488401371640762952100635261265440984287793503310004243413298880666360021281704096713465814216795530973892441266075371360317051112538769398985710890340853351148025691449237438086373684127910584961511348649726470241368071159490869633595852916750620105148254450841916217785563755663527487388233537083548658378950287093554871304802343555224668026661336191698713236164718292913291263504767884119699557338289842641155596985327018955870735830784761995379625964131178128609179008494695279279924545547513462105079251683797594253909621687128965252932494939493714692964963491788815580613022180581004314770330478482928593428032741727272655673372982407389687008646336644797632334840991724992436744680434254366351388050312385353826329877125796023801084043976386734467290544964051155831629092122522606081717047319320955582162425785630724196558574776222685052732532947584840671241489281531347594513139983202238862271109351201990043882905535123467688388014394799775995034158031168401933552271472947108727218300425869377557667240299487981091028180915395030394508462858440055651931480423478267956563267443953127980500544231829257569043057140980226520770986176848189669307956484284777870815813331638824619966017691684676664761979939428725435918548942827730874954933747209860662837436051281810109176219251829502230265956550683906401337331653419573039234972943194917142643961451726727891881680938448213256558407943824311207138388116944048058840159895818952124671108131335578656944376969619699733694648691692147504173456131134805171461861033080550476703730986453578456337345471651771013815727925327724461255690888940357926515100375715045076549330901099179114166610484677330282248314267986750942712149375823800407847598693566777141019695069208755588694662398959224732336034714686019615406783249639782219764152699727878292829649299413950868707272309426637975542228340492399975677549006263954433141711301496816601596233555862993019229112683501796632727681568045050198805158468721794664819487850081152149180522725937033385874283367304920715067636143592722077836749572901472394922392691935240013817143606384795824370961353812903126096796568713259101477873477771821543402792809049096797034778280312878211437254081988426349878007077048094586211373050108928212787027161907018943479084916771312283251538210565674795990568335226056479108062675514607201835317645570383095438292726405379876154895072714009212452585256072287269365272137477935224385725319158914302253734474662028041880944049154006878778791778973496778148955700850134259434412732172030967828776862707062461055585741187083762776542132013588311588384725194107238954504055583635077035018913751321472685830326084798070435372080619603205441001900413022092982468413424990360982222644554547403352863649873940779955482470102525344910090377659164071089181104273367817945361249076421542024834664135674443211033023573568301975699652496151739932525942673447129345104027355955482120166802826421858272717876451118740801437201216766703732942492041511942277678561563658370763319895676085818423618603114199167599482547798380027320369635611861123399779786710835989475061269256376658681997452190818780487835946519977480498258688866237694835830894844157759585950107586997771549298298536078644030201784278804108126657207381379676641916120506047370484011519521837104445138746573101775984977552453228637355275219759211684161517903414048574748395143096316417427060659595344848960382297062761884194283424499938634342960954402563624700591158750153301463018841546894185576335056334505818850153208266220252908172430404703615820252492391745803023352171250419660473051844559758894583376383349315753888714596430359531463626416196362614420839431133771665110888772796423907572694148947266181844847857175191096664354291316982764109505666112059293464915592691283944055069925573398730905753004959801608347630788347988524032198300287109774453566394282475883937903995671544894829866523939199439905390547348009100327879871370841976060650660302260001968364040709267450922860301843294340396613617452767771722785673460566159691141384758194946656003990642082468919526318973482238457150657412596176137017453195408489858111092750811193297570454087316762577562058321350780405323641653723017641406874174370062707919917675821253394566577778722987714910980289741793322173667091225818590728505411762033798232528858941003211134261155692865104871411582224991494851228112165918063853932123035634298102434466028510563960743610368365785039687860917227542439772309892337920154215045130019454608289633837039075298656811984106940531695134255049127240877136051205062409909779001354668326618463387315369984683524615197937253951100156596081337402995093586393385024665675215717366358887333105098845838896163247589722371542965210517033054846257062139421008448653102313102449704819632287901790045740319018382534892934186270069626527048581956302437755481796320262747754831270992304137061808992692306732890435997386526404546917501538853433830222307604226710993933515170668550967534777180656265714701804345556089760920607675355212407212083284256215531696829735239768328694016617685445161584489727366378725442554821561532494772371075698387549278556083419089869450002503259196411382575015876380908705049871904587438803429556379187383665743920817417887867448752179790822713392905321937074137628686454559118569169493924531232454117027337320417971282860086893394606197486203348913465495717946323817319303962036092830609985757850809271643554983224632718432827513767146510412842086396058756099248289506695544867696688354246228511020949800172472169635808813645457514418068169664141756145265366621413104077116942297352697685362352037756012575155907817460239140560046577182673278305119712273080476142398237790051193921135363678173430507224805197484948655367494937297767045027907382071918459463218723495073140920164012489099423891974200969992898864787865570938843147376665585230753093368503436824577403680158435723071442632197760992632461290453323684294109623398493887308143537411226229734648690882465556198418720250903045865699746026271597572569411086120015346033518498166735587570107520901984262653046268145789269779789272665057028336776502062835634813232070292085649196580327449900714294417592912036071396047501919369610740439252694306748888928878773126245337252418773652639634333202489329370579228395664044043660258297306830747326150969950630301221855169338548593750316493651712324256201807976457700664578654749640339238430829404321600062672168877434828298162684991326916667892022529056025187616747850686931405986089028506633992741539795443379556791371927142693440878890767653556012515917575861706467911066886462056684716388756329292461348791077141422571560885540315128589778751511892645172602777245242212735249628987326320487884392538287929087286632972107900296731924655270634611096324791042517859305107675520910582941152201329669084201962316495911292155555996400928467667304309902280252584778539437610788307530739549159565926439837830393783369042633522512010314833410721910981265461799762642840042107131159002274643734585245328789850151462982187520021366892532276229512023007472572574828121392762103029131356158539799597312446530960741855478980016776622610083950630803060843433732212150556931859072490812908048431194611243199065852726282849502981453713568066019942220891195063807124208203975068883966531290335368126942643449957439957911159631948433587286685845452399636169848744922472079737416822351926591357708001654320209344109218289705024686068314962381139892945514673896516718489390305183478787875910943689054523101829551264950748337919011124383690175156296334773372007515209442379777992872273726444772119534493069128961498879925892222781283686849119973317273250486183638060466166567400708451087020197625518031325909143981835889642066359991654387520489544241838303658395394921793105818289314620048730902749083915857538277129147883898718607403406807681234426803344658281809193697781746631053175906945275064866597561352483409894996861935460152539704611276710879333393713102885336843988718159416467166520007409445790194532758137590220887999435453739217692083042720980526882083547256478144593147346997487555394387526378927033291507894582438863785890692503220021318964386298416914191056162741496680712352535907901172853296190017408085335849225108722957679090635437462523677048700055581811909467007265058227396208145073843039425186719893402334551597798609525621896330727743545900674839426747994143273986108929663046859018705470676561590842765218012861475173407082751527786992211593634434456157846365832167767824464283030428470995657833622012687143741591006483311867199552188009569172754816836823346075438622434249672452323155844827196129578417777863266127735315979979510032685101579942317754597091206747969468039383078709338906370275343771307410490875700753151775552767725107846694464526933136620632670712787727862832544766716462651229213570836626620591308461279775766577048825213849631797318992394656157286808889587147149012810980791653174111170648921549336652838791881637979858269374701308187622895520499659715383721882588087354437783897475845996790150381230378005706464208733735329188814142482233106137697824984183538758215685349031983433856516201465628359787586246986118606593460288095224992996561803349060029441844731862423213471411356911876257163699015902841779975819640162121599869282935923412950025085325762511560203136283488663284116583472856833670138731122461591777488781045728761337044941766925355499167431207907694586273273424193764585241431519511977713988143318888641751410625507670806310970444363552177634538293589016029100408659079789217062682535904212400729462833300572978547704772752583761423712025005775814832521347569019290638279838308026183938570607832281952051866281061175321441635356730550081420938540289048121527995558816845281096519016445442715473612185184626883783366822485561903512837232138977852833511195312651328041152600405719634817207632448613546904108873080188224777074585618648225597404349923701288889163007084581242984155930341216848766200300734911231931015749473036445027460127674787643841827421574664550343919475208010968116587911101588643429193539666187073739759367066460777041662962397478728871487581111838095801095377081865105357945281994555985986353725745536993265009123820369014266360458968609350807059772822357866411906423052866129186117880411419819695750777193013090612184536705808117674396680902630268910292764937511694520929780520489425223070360190546955498606961851542424603449673153705013875526978115581255298796303403892829575149990483441134262511787492717926105044900716979907375957054859146912902168395607485575886980007576485910564267554071489978292500035415059017924121146357568819247318816326130080579337388085580988356735907563969726064869338400977302646628824642663636469072823407378312655624269335718936121639554105230284835669333496191010158399165889644637239011637153379733959189162324894793096628763464222870537201882105111768038583026137978474569929702425049608078913149037578670777738358518011823694010787260055825290998782983617624033269779946657132574806601778762801532827358463267528403411257342581551692023409554523783257841490253053366434417849202650479838594642474020040722429957219837198977913322974672175110857044758572633635249194826670526548109902767473231154105438203097154960706209593054993910065931839415990480761127613594240327855875132819874147718469891691788260797764155542713036262420530563579477699823254616932100677818767171245265787969236224800025278899969749537303607422789224145744778175212275006053102221533802507703366134688706663252646855636736856778696849765823517163846561826942991096988819760591497955948386130409391674785615357663312963513888555904848746603079034108287627899422866755925171509254148960696714828244221826114193424616009817627049665970041767930865994218936592259579182592643639786944975022086133524215781828803349460037531800163963644989890254796889125157142688569268069968217061235170137838015899116548599049297301345947267733249981614334389550874909228135946004277026568676404768308422108753170860740666673174711165731341234503169645562505484514371950000367498680932777891534051841506450112647703769340388784530950669378977480254034859435886557565939325284263237559143228786849168557059921949941582832285040834729486609508345720154377829069695003677112378228274870679194725420820365183960285050733266010142092192635716166436485160227719797087449413602795082687728141030730645639154782764849350686771694717490495564932089106679920451030593819877358367047440092467400611561533320498488020757558118899704461485046811601336777075457058482155276597490422488410178455451818583219505848922940033768472193256163628085875937136744745708037478437397218054000656676363967562685004607917324774228896266134877606275519851499391281162208760227194231223009290564209180796115218273058829973424806722693372289243372533800792692863724739875304407354359801937616133486135243684609498660433004226812293674937334366088394185299323606699974489274982261931002514280909158147537066855563465058338885729940639028701022843392113924161250328496313810371067717141072820568578853862182727654829909640224197460900711190582144681378690770351417526101951667291357508478536574646194520606964439691161347226885829883499993915633585760371561863247289070006229361601806587732084025875741546759713992655670460408328308499552521890880417969106519649688352562536300417592669392409374501403695652481609663250497517545880551718164714529426196168092554283107442347098006256770982475051618659504420196898802337698770023364296096451249385852874584210636781718832321624468087332080528333716363429588451363867330010936424245492597482428295536405153818667503814782988663771425974306386946371089027058349855454804381637396182651831680532069947934662838063102805206812633730140173396224771124487620508127801998821521845794439076207215880260464157958129104623843575761657771643231724160456042795637741533953319501773395052509196557044609628482730751038571739193576659061737534705850838018739256908006713307244671760040957103253362291950351096366670832461034684151412176461742951390108902444547845913848555613323401312536631298070709056751822515048229719413498688697802760199276867102729827636646253348556303597563192154592898436557305012574638208255160282254872691760979745227603945372092853845127729803666008641789413072825569830639252988238755414418854612870730752007842280856531209701308839358216101729033510817677837324352714275436980932600047568384660815607232073528086608005423262653492248010344015244083851116373298482751225481402734216443768816376257478620806690581271499178409481118711948646643547390701446681849004080096777770010389581710513269532904559598529888473231360059610983238768764867516149761311881734660660823981776975110728189719019588953924850577701397681550821208978047683759118589118602225139879744995617240923435084435018051675716206602127089524749048595054025626256915155408726348304094789535795978945804431374383898448561283681461395059656907060899917084207898839690395847609689334614223027898932238069044649618065273604160847547215212255230069809195776750680345099600113714160732835082537875414192712414826539218170135919581892768783674967938224873944946211886324091993535850216557846112443961699854199636071928974300622640116063275628449924216316654938385050180680566976291207563630643447057905690981917961044236016065624030460130300040807534899812157850103134246356348785528082869382289264050071862449182635233932512275883363558121438908086729688798561335887493893493776310629275337646064409226550329825711034748443948008944979809057919574555334023293152622904547053002044185244250846083589777262859139605338604924043519779840932547383659669743512601075050614344659766805286213117158160344321858759903972128433567178506993525895537487862498414076355387653945500114136470502811783768311940761967030400097037609531237459290780901941601485868668415562544523891931040501667114888311588838081742042866858678875682216069973591617805809225424554708914767813553607422015398294818978826711198792022124715399961634052146140493839610573615427149819917281702940074164964862581589258735043465618359601299339687349706088505365483259429365249498610951003366416449626368041203136752476196951288851449676280541682470359479871061587371782006407308095595225388147178188277808705841351568868818724663016829822360792380007845067041264345078358840983662132073059389837992917876013392251851983217397677235153331580042226462823537122586286248764163730868090122357087842652270229370816799800202910843537069464964015132592232808060541516230633878663106626157249425411944686501074870995727930833969093298419900374585495790129062436296391973824301902181808698604999016027253840116935062585007428296539627014973652751818916467971823128345976031587831835207974926272911909507210107081572641498020713307076312138544188418071911961581050938387779703419182914465594387807475414439356367243758115936865888456526429737220518708196632671375565725845609117293256353478874954960214523905681700997069618065715114397708417613323275612174933769956684044672032037060892595175010495799762750413375973046667194494125330275819977931858283916498734902973465809561683138484512378175524551910899195920934075521315208161300381263560713582734955662734250294773362481485355602541560003710763843676856774102162245986663668343371044653334873522757916716186087968440666062656776011886506925120606448528846874016213631020547094649393706457464854286129873082798445199546655281769736783750512550446943413448972945595375418441043492370807041222953962761927016440630987123151941840407463604573879928100170933793709197213011851642173852021761881625636582729837054641715655268518256421638007923925198908937167459475345163353263640698541751246825140695549609008611052148072568386825079465209151349338340943944798802188570722854951148841049139530905059463991112677699230738173487470149887360401345028016025780368556401169101719809174921711154987700082207604841483806535191495568449703625446289850509832639944620899458687190408950998833760651099398765138207577127467079086192960320007404435475166689444511200228942627951842550927136616369189425798988816309927186431861960694341060269336565526244716066409494092294597151085858380193325960689099869037462913622254663598709121859716917763704088815193579318085084608265360503325979814505457467627579188397355887047963242384016508403234573977200850438539947148714163289029899122978182642128232837364073282539253805888952816957936189925783123650481680870641741586300006893013245269618539833692136327161418069763407896880805671426610610862248262431948599858490625594676348228862420286478903824486590527375872000019532723016256820389221493598458016795068956434817369891879609666259349897354858805568032264154571138874396966406407892930723931855596921902093830172412495163038623300728366608900115613676506891414244799277593070409687039200245230664548170299607800489170952725292979151165144774969852179011894828207994508335230396705797442142763015654907286064924724591153674438449820771388712871785630664290370836404796410887530920271120004124444284230639439445224320639285121895000561937803754535024377793917533690296870083421213321853351139387002250171141541256779772639478468885794040141799207314996656832617088529901798753369240198587752059052261202532713417573946167172899197120840581823939143932053044389341556606348141893318420438271189040160551084293788965699425931571920362613544848737740751561001714578646987817328670790843397650487619905868462199389005722591588357519933467588435304692400430668444536165562287086194946300957308919649223239619931587420444755500527114036198071044096979419799432897483011117137401291428439245692316129985338189837064819424816579873977312568065633804899756805076808993824826336988184407891008078767661606852976111588015445046556646133967783822897707084649042278166640230905751382510880422463206201900227115313592153391447072027423819775216103391073437791739238331406233486694105807311580298590505230250962571298461619129848477343714518664794749960699453743553114525297556063525184814896011993059250462235396207904803063522920899134541086284951981174264138043370743657279031186022182143620444584189725582776507551612181667100775117722071763032782689638439149627712901330152005074822642302086473061959109230556480429885697719524880416186404279522205154578715348804544101882288477547331353963570595212025767255617256154307891728020819290709194081197539044630734837203964520296496858233339067899235349374155228766399561149472572781780133218003978488145921045133315875399654814282385205071746912311791406152928625034282677648910274161221043799443460831364448170332203106215038329113191531169891373896637280447595261957823703117746399506359370509881394103558536347566255554114475087985128758206064270758617970233394218262029659264025522135612031052921785396174957034184536211776052686593192822443304101248808923894180832934636483958546425102707561504343088278862717335507887925900884673013680973060835094731304931535942340349912545284833143119320388130866996752366151284214284983238913118205357911139724824659397182403227792881091170123219039166847256733437541614318544423436436654889328077348587987956507782521319523350431494454417259505927229231320880633635139765663935555351668159304185605733093289012774192329465725932838536304653170652474605679636282493859258931269613428096101186471285640968541741016399237241714560965632756114415200896296442455529449894043487610408346511286553587494582454641765013659785845477685623998580305315365874560872312319759250083099188863939919228937756185026579443218304434706991531079302610643586607587764042653834686211533763907434800323976182197665080096906887898354729444865730345248502728308843892665077580426655056813535406365217647613814240866852883766882249774944312914221000740501008212618085982577295829914860557254571798962007985100174861874918001103502583562947878883121474695914798080823490061843405077391466895090432534125651694563857462192471596378740225067385806940860494730874853606159310325995734450487068888106545150741172751710855266349909031352302847348123668470232594659782963300949738467624266775462580621346443658229129202169370007611066661740215773021743993578440557100248183764683955960077600542627808754690157750840319859171609500005520297749521045813382391421580745350590745337770327422346134421082159324127667791495815731639661511388137905667923207497335250292265848233636599794556778554376977104690927846366772572268031377039198421733136854690353118022358075989870631016539246893393968174412319272287341142241571755032966879831688864826029923901945732760264463114429081089081590686151993873612655097671605921450016176150690790920838450101822569380134825190520899570761977389275098239287789551428380847426922114163252840196438158998922907739478114953189691972440196834147924229663347763686047110689919065334748425200070459057884840123168769290229348450348169159638301529149825400039476980627762379291303047896854657561733109388064748665270169292051656706669422316417401411795552667877355057853311781590245842897899796186133399091257622901608515372344926265005383081882615251590176784525308535803525879956222181008556288387528503756663652191515688998889713677683245652229603976440899217102783327364837726474115998640549790149849384624966710135070617943393701252249100331631988672917723147465313713077352029181515682278620719858202645802966748143939154388011275103361078449159961806409593148370454976526938389307296128749205520110008600381687362159018585757728599104651777351607679866127645275236246397168402185270743890003813221641494113745318882528730068167396452659470907397468758362589188265762125302077791139035147993821914509653729096665596738879802049692986330236109182890377636088164666591760305525494376019944170608221889307972444212953760507406816487712563158801736115596570003225512590623105837607850881379872747694147273794786327736873576019131617510359807451443812451927138580309900200747941044761061876085689563192879915698844856258395276000632334502706058826433977613939190062547937367209717382187811352343816441460478225127442944045103767327570922959550340332044326587088763241481598007239272489470468656993510682881943598901446712586352969777349016604311458958477897095394931452461312250274265654649853463429360324284862687942523431182212165359909131964221416996083846696757105881211959491793641623942932602421643745609123166076631621610349452229592752234776968829727244343172966197999018019196595661665944668164293104744212811203732034545740417865077578352265333806580824343571992380625980595645072677060047804260942651363562485629690022775163962390126598259751375755991794896239197647998356181295015486299521799150083097671993993759138492904109668673778733146762178384884548453899209728429409883462863003815668276201040958744201577608479661836837053288174593591894585492088464770161822535861839456358819526234732076113166171709874433425034879190676888560070219492870231358332291508271163757554726287025417861092801170773738336855251597436591813704418969583065887686741714127385357810311944121442785868920908998559484296516310675762349939216083417094674423159893935429701568895122044981865649791209051374059375225995926996373565092419484848873155112652368237258685955515933537187472137561647062816326199625850305467639889416149158562319709015184446627241808584040868094584576068280055601883864631441547546620893228226348998586682503547415116857945732548531037332130335098519535567988550946213837186887303430108826178523283964881055118281975493337909570834635262498645609518098610551138344553116406138959910010989119806162005298824900909128525200163635714752333628200822549271320780385827884345745279239773425600770726586191845021935523429606429461003970203875890020217365134209470591213554845020436484651639097880521390706523804120023888590935114493723600211945769792782321237596358590569261881728839469580029059408172392692075836087074031388886169773643744708810594478127410729976136900031595156339984320841797005912219114565026063414531217366517108539525836953170538678450866777408424730376521114363655593988502268665914114317065685976751757358412149659576682859749733920899530325813348494024933627717239411767580343245282526957351328697650365004492200641125803950544782733510178577929694518132587704280525358979003138263728916666176395886245065757182009310418210585771573355474306402951482817301760344999318617209959593888513527737955265073825727048688106948024726013098075041996822480159929060130572713494126686662589420255360430590661851209931429337374962852795801838053332246155920034778465722868337588956888523890084933391644829272620016671751695901679405376744162161886116378771798835733128146212769986566851973809562969761780558285163078890194731452205015070113858606748219871060443306694001715833401438089699716923778220751474862305127290848942584955522736128181200347339751145472288890613005978245560461045093655195528025301031022043753558870508781324037282959819684676670386829485766605058137344347241832144136264465191586085137819245785135282470377702603874010344693653660426935671577194512736563295517964261244249537374557627428085034736691256902758368090978051670421882688127647525383299337561456419550902399156912126950870013699326823346326870472614557181940222610472888312437213441915590267784067495045300982368678726990350579351208966404691775069464336216281411056631745632102427512573083789823010601937974277925494033127802201073780982277293203355658718410877137890484791732992669266971521516207201254832109884181793397302645326181143007302531869606952368315563680916773478472804714775505420615086274618289139349574981175938967395024687689866253035535634884769066270743999207842177902485458595803898254907422711330779151939403968042682741958420815895758199529164860657469299144711598933658990664436532914370785174118456832396802796163754427640348240885834494207521450843205777516876085734777620627218987022206916260288780551880060606743521168675995377656907107567896129522382258068917198573035011669209830401437946979944246863555799767167984501983884032776427199382758801160675737341198944159606430188494865567230104483232283962942965688210365785803894015404478108981008707713471613293011393669539234133074582033598491895557884113623072295510512581644774361048968689747206423124399273086808431959650621742965010585513412176734138883282140595092877564379389905068037798777565699249179048877002501434887262173443382649113189563261511831679850348168253720869493348716993289535695454709229421981751819833904670661674807922758254253688568501829638995333983686745882850768596550095934924266952380001959500773947477721742306427236193638456777131119570271887051039638414245921940109889383013068620682826133123134864488527651862261559968018507465630822802171284378593484744818128909676386504114555376545098158372419673142197005032305398538325251639727879675718693605224599596213560560203434231055547147175527169486951623462961077243363687384472446256918840046286178526279891064786369647167091939272460214196121301032257087321935575022434267590285805054087778327526649118161330566764392171608709510327684657331113987060392968072169573224393662730239162074555064854049760256005955106670666974011725692366150300539590500234274848525780225121218489094388830270044396272645387360729484220345024608434461137491287812529260937775715045174020645154400887760001755366988413572214568855490328235718184749682290636779357615341392866056015960423916018789222269189257259679167206740899135056246570449217925261404010842922313815238417870598997972207178253388259707693078499162803189800775089574640374757491688168803404735939879678937795954821005133038435639352132701046261644189370978047788069291991634204435530002465762260690166528992118302803390628611801431206981173384751645657276255313342155573687359078164584585353354852612006577270350198259991347397332102102491592800831378706475536166848762955022374637756297022945059689944938962778220827737818478576843070963430909465620839161652609932972061423090064104061938154616071938931523470542026334897284864912488171002609283878257074205111003509768314218620557192279669581096053658158682712077464790901222142375973106696436627592614565234776949785142403584670141688919593705207967499180066685308127505447936249317488855611297802955021976797138912852354519880034873023339093701638411005878457338660586236308030704492469275621211912197167683611116988822617187120096958451686813542029194031293162457926767751414389682885836384246585059234911263636371772664825992952859810431204658358408162837150299072054023511524290943068343800049180405783889640224464020012515009195158019143018266924663625730522428002168128082300727561104543027099862452298287903288500610270127444406973897777858193894170300586133762972237746315102769942215891820761174220614019988753023919735516044673593628360963466494580321551026638542991086138698781810141189556917042853022365456071446706719350116822170071760002668810618069824432432491418845239882334532702075615640555875800507339947024803960909397136338455558495933957658205203797919627065027512449633943388327583419741243283039423260269554929623653878438451885729546724505021469448286841582570250693641419112450935710558832902773988298652268142721850823089746647476710858709622436801453415178750730330065289544879199156923459496635009422328023732748584003981086466938124916873001734399964829363114009191552878885130385925974859439560042060773875900553243840222861136435498481702291251624406189137069335453931493859615767866925713508333169340589780721893077644165355419198627260121695999215939324149551430839040817775951868261289517157774332569969720316061384380460927086901854906826017947337769540370576241441257658079516674967937744738172356842519781709659878998670203180355356634756723229293877375868037431494359328837575348608073223937627229651798856776404458357131456505251703203606188960303296196625014986797180876444576212018923738882127331874347085478706762982103016476178203699766764810162366890549256839561205598123018397661135052534607067279740468331704715231371020376153617355312237953505854897558079496504659875672143150251465732946732169659445055298854290841030462781012456225101644998735904185315736569161162995597982230390075794143157826267464077388437491709733332566272835634287919252694000682557946713662399235713325114342604975241256592121822443810873170067999821165006768958477177857424322400894386064578415822617454347617249207402503014679453231465403983875310619234698650488165785522113639757815541221805707897822823109597911441021200334447903793791797930373106914471821811782948151813818970857975020049365363165072965742456427711966314829868968406109179390238282128867908069711527008214946071355247897009053506805738997770598118541005255249266629514176061524550503103150873702987439107030501002270297060220334430128053603716344850081245310637654085906355823298167778483301101600473837883107712796356282616475919291602852713601179121656293111157953429513625996144169159497586251224683290815771261487883771034582520326256647190710727538773653486069515159176767816113423048853381883679215738266768278690680590952053225299798722686659199457861705430728242783243399095441014995720996815907942094528424191492831692805481787324000879618415334570864529707069831341818313771549907829978867675987018512756356953375499157370446943862369151395682850133903678006607368987212903320265199782876629510445675120457794976060701590924010891517489526828781405014362866861200241208974281695659277655023842705944452777235359833298111242246122624979124402780094364780378537388055021717515475437910463855681488018940520116411405290344675931152174128828990175162466116586439316794220016562274497701098425503015908750251971355103121824466953322724391747925921176045716998243311015587313066575513053207170125039882780694975420534088948308898814617076213222235752828501642431255929296043381791531692479305234208706125303467944610147839584970432685789631284664074815469503448426381866423517439785677396576940321632056068677443536560949856347887779794640054331457086881005202376597835678804215032000788025106210900990361305612861843614074105736907067297484019974099528080090872344101416948411366178921489534895343300938694783663875006330253015337566827344004484078226934499282068775885929812848095292716061077097322064271728279655615399766323656308519941069597876132214368331455312956015642584268274514466651542121622705883035015680690278043901434661499539507893166928294463952211763933678947982218919559846894253755594530538061731361677854077103956463994637216833733315260331769732211522025052629322888328652926686501815396050358549041717139887483247282136181787810766004469599678387782870818718244803881775102386968046094504245146822252369860406183821976543010595498357979994726616910363550135515106464553481013490133328898527842060798346474919493711109719887698583791132841845791195509820132906242859520285077482618755251292258082289650676515813384007781877581142279270854021367291305260602677814470500753889292409356458473199095839722791868939278945173758046219874903771076086135760640685265638045308900163590836659092402795762527701382030181671002953174146877175398054004822283579342650331058855992866573650154611535286016001930089856467712808025548270809460565212273404049846901076508764304040449271045166658011520849224881273132924460863418327876263979673046014638194113777472199259500167779106536711484946576140070485580646519541263729572540288871707754829935645530294414163392438821883764218412043080572586336907596513332900883497949736633117995964901154868810734286360691376659513711624647787781213502671412732540432886675810304088568910612478830464381469545702674097861258593785578267146876089110353573917073512252321148618184584511464823007269900977441833313253305883022848462420346573685110399614383335879549355668840421710637645026237433629042719478416034076077445084615340413883376736070782965049209122873182620876441998143961187666350643604370014444311277949148347474263933714555497319432237480178792384201771530901793012585151343070581952706301769552760779297446364711588890069041849093128434288846144632003193201545699784763253316112643810174978512827068843539362858523652126694382858963652811366237486282602189574324221397837880849903586312711780698802064608012117410824289028467740151074877666835211996262565753201780601127141716874903857596968060292618153830291881076161583379106380663841895403246131137458689331640307900856376849858102629020533888766776672979147638086755537805726504099240481733052751999532087281481551555221478502587932226136861809680126167307738277069372487422568389291066218042802599965905890000234272150048216348173628346545453406932106503071380342291697972196564776968422439846296863910360020077334725168471114051973556988303273231199764750557170933915705283401009319299339360198191700570666479348942710381239748878029943144240069805385196766645350297542806555308027199282170492361528275887170843168241197983080825924873478681897609061247936466937577726028002244043347612660368683796053192450048481453892850254417305146951599578513215853106271128594361857425313644711646615932732994113143158955987064760926541367045088059993283348959865702608703435839179050554869841206245547119093853196025469939988587545482567881668217625453102748568301601819616640257356374923061770075151503130326343929430149574375729263222637019076427459540055773837989357543404535597378129332776627746864236551130849072840914807956588558311039656521476295682600337299957238561183221324383925916541845997402977645790340325936066845169824360127491798872245199318652014847020789623528458110687571671477292798892319860038673595590990560302926313180607899674946354121886095491938983009740333033150493113044049862970948413725777333483806370432995246298523709841732661965089769208861099418780910592154363592777515811629672315098307267053710128101287653231693455606746461437337300824912583990124561505038122506312028441745388494971573276463736949168235781553559572849035906048409058838993850825480814314519682879079927046354911391946734645409455330583389550093365951055362866275552886119321814711622333467306868050579023893560761578267670024663624907137203691202616621252278129292129800869171389578110202944842721571606289035817297897266302102326539624940887494499280128569347562465955506703533197660652203038646643157957617953266817265739132421001115663102018247000641460499686279510308687972070530622413444475359923234456873796832429855619270512939031335980057648685906614336101049857818716677665187183520529907092694251020190428085335138178289964158527963273463891333484268823290458545354714343114221155543285932180657820123546383214252756181840441417534448553755624797212791319158505469192960384347644322468920877481381927249837971155451105884323526176292956633857191734004637108866070390651889832427637962860777716759480230944903539270451637795540705309925967321389803375488053158283590814762005294389810927525213553404302956429411997486430044612649616593255697523445967287035853545156053382512364176315664543632689187409233858049615262675908788940909258430451394973696948461855465375720772653860392616920485225234402395816214504778161004540594151337557902603876156787432701542757410184845554936595252491899585567165069234580497584558443755186159437992786584834446072573124358238659228583534407453701890380444514603646165678374199606654729261877723278084861699524328638735366562134802452961199187717068419018522472287416711638383183445706823951049377501654760366078880852359694710823666156219701481165929865951228020133754911331641996896258972214859720547666863431654695280171151859256349215305783977624166532557926415635516926555910744142924238125878449810489301938728129700890665863610661695123210132406991903534647357448985100327100866686123500134950326023427423351506184114866835612749201689402456077612510894623259023578852573037268783446658791618882526510177168455883767025090034812091402570095758947282629509055530176819229993341505074525081302278256774752682834522988677438794953799658792910614675417599041397568215077856605993778053201483275661465807535643157651407436716338858438175209813283034326847008355405331315449741059597751534220911231447975168947378522013982290226429072167118569685719070122382583813242711962573481228986220583920659610577606042541597788458782020755868384273876695577326199278619845912914861009646189794120204020257641035233445751843089663950915900700516728435528735349647619109739085706768389228058311082667678977278914531109910673465966229394724804483626279575225509603257491582781204141234853245231104088632634513120057094270629820935035016578889068461784833010043398485867061970181010223585145598362822236801090765915179070158859772839957133171679776652681088958348119013976189312996223588900672119008674605118983823355801988902052316341935286329382218854530748965089713989986179828827661999884211926517005021455083065718349779725535957709066335123552969174330396161970324764154730817388901032066570846270383556351770772418354180843363050875177022322269135882887057362338222641353546437762618772669440479617837992911784714535949039234220970351490132422645520348347108537819033104984589409262459382886886725088647351539123912728998131293096414813126926910996945583542651933659410294140873618569519193852264048221527630935526575219786984256263862729040382449235106560550542545530348583820131917533652079404821035805527601109886433040287057516256161330677913077442723832038948491269854824202653977297711480769973423137221001949213676164005321035102370473045587350610904566336994256667958040966472236112163644988875331922344851783423645589672311315329405920107986261923697884904494652763485144539502274813793655169232755208926882696573496585867482229133764340972576131511852444312936324287940862860459144313178778401672172709963752456511868165230850396706275719348022005319403398329738267826606586125717079612566539527061435168655801305109284909274101603999482941582676775047626824564435918957203913809788831627785027489044016719977495527021445380004988967041486402152861515311285092956956530615020651164644106052639016359717081822506656744879136513898197827987131497690653371980936042394126600168132332192807036840467525522919895707242117882492214901370603113884487580976089043017564490349211990237234105919607929025120482440024492182698362126343251339872469643009440017869663515086810777964724573353155313448178426818110949078842004391071821602975287059931592335975021478425848397793223438204568870034628958888622271476370874168860178870789089729595710192368602497042665727594289458955859603762061462226772006291684695389119800082094033260852018690988097466055296905540238433834961446125150981178814429994051755771761934638777294094001312008424685651437488056690553167225744557393971064199063014788695745677297012347941973264814082717359012433184066752861899043013932938628946078152525493528162796118908210873709266959776454140159063589054195668971617189056080552618112346044971403848858215459933127115962906839292821519064032625887314884822613678154803150900188871388675795309267082482209182301906664799554026202690490156191374714811667802008498366757358156770913175635847054224446010753815653370350522616587478368067165271780770770430891609295306083568408855764011557396273767644053032908617345007159098835987065991661977167309402042892485230567507904923401769436623907822560665337665037647022632854643824428189273837519781527923222041551677290933948488963650998285685245469313649362097293421956597227335586927688923542443712101378022501075485396022901300355282508500722164732339036914209457031871914648486646546244984190675666773487331829295732512009407758436716565189057634068967021334115928452640286805867475558537162736972760833350112676637956619592518869695000500944466065093136834974727475177455833736594278406400993974150377464980269950129841912256106442799946649727774895374056593956312729294469864336670309575915076907528160792780551464883794750577635473329865016911413196587007943367652198684711905147763627546383914068871851312106345082939370356720441647604614836895197209740717260580145025852336574496918173481902508432816239486520733269932014179349810559172956106866986083065086346505239089520095323414393974399716671077844503778153766248803565167968774569241936281973573568999652522301846136613417804904002184058216514175861007053709216620088475448932044552224185666488367603694244818747394724102384957850973655636068624519913771542445652286670503949137437425896099190282958116661020489776250337105268723655052047869182892491261025504061568862752042417733768701253900133380920931580141962166650370221610855712087958559303535336766018903843357289387242459216375191704398655687952503388026340184396404473930320462265906982207504740010460415096616550315686460933786945196307478510080894258605327363810364101269054525848233616084629547440472652570612620958160085510752470704598435998781250149519376090225295536730067871785773320858192115926237758388372668733780851236950691283037340208621654585683110375385851174567667166279292923074150891705766976876506551673512142306766497276143904573113859209505483357269144610774658388443594501733723578168854390822126057459063300143857064103209333093994226943987958608468076072883842266293529581591969230349390977985768490398549367779645102332761453430022441539395500126915549340076365655387864867937058646918233363567649863245880228425166275424025999635396797089964929488240831243569973960644436773933507691428132567871168383404293098376775418491382171305048185827521527214998087858655808961034031321046293419425215434552004593882693171946005020413094566986058224061185210894579384475414595107557098483521685805163042233479011644069466650101631241995444689733671241562718408705529001422746992570603744779501112310527980399438435553663298448033657818025875633899312189487747156714467033119428898974533099014825748758539769972398124272464488787425840760914827787394084130879269251543442576938104749630889399425700290284357640145076976928812527669200820399636378356111938227259326159222772658868701394028374426882941539133861399486119819910978459901696608141463624023352388519980141961235852022011171878216286147199322604851046073829149837751312399058549817774791212840366444599301422746913832482486359077921624099721802783655914960606366066024783835282916719994539916371246660831366705766559582235000274094090615559216764593228788851054701603165406482750439265533010057909137424473284301649482132170997255483345108943483772675469328348684122764861559579030453756179754510363017920373001656811587860219725611604676251934030175469384874911532539039599416002265018975207981881981262411079955732895377375398389363798723624739068793080537534843228984586079344587916095944554698021903758142475037361977711281809415341190111067108541107284664964740551267840607518753263920679226320563349905388069759823797625613791710213447557907366228419755031016754989469963639128368639930460094882047412742840385180978127413465218659757299350426793114603177148138423371894320587725555113369420838133939395212101305225925019061216000598246367309892696834861544778605229310641553477590490872146582985925771757304870472249375544225438691685734696986184601642912428494195707607616050739380190412675441207812518615982283511470621158688252971144310566072641862943077028929899336504002905895520794240110433626088859493872368044309650441344418277723544212976726419299251849694981159874009067162764729510971457995270632089076793750142839950338213767406877135472732016841430260533152949117830197283382799923506962100407765149395183590401391164486014983083527503605328452922678536924072698255786465896899254999834647471849953419590246927779739839388725507620768044957174237569434431058320873414444024335309961444253269295570608664204492548165305429988824857794836594846411712841598043463568867628410209980974097104048176148912930284489376806492174584194650125139312771153361568640993008973057502693572186455569473828260293389508105861973709013299059341509477043573854613177887531338965856860580483882476493261905649425021494398647708082909390438705665482490459442456008465604444459687999065852305568576365646750395283891984027367884783657209177168593094534436487867862133896754968106521810883890940479910252537998438233593207944990005153258214206783796013730082354832886073936273712073847193743412777768366204528252987394509474966288803439476814189621259907341957003872411288621122927096998936650164386634824537547653626592346706191688348491284570213393939270255429789076568154287077085734753906876698406268154934572188542668551532472629547302990570715103725922714683957925756157494625482980649049192719657710446222918466315457111004279182654007464819047452252873484035389975998727971879131827964915119603616438825740682407330139076881972681757602929033743686885742346727050898456250650991319761726204834830846243065087427398358570589323176729892551523427826952760187257363211397622523170203149759623099621203441852411421947815893494324457685684811477171975239403899006002731568290990512614721348478017818765085004148282341577692846917431390412982319824979203524711307690670663680764232546648886233283121553746138037420994134895061567335459643629340895970427484799923406713320793565760650538767809132369684317800692361525580632896182349415848232113567967346834989768564934692469211863252450938090859420174868612256084496755322006967308053909047431039423934362326169099565430831334320842342157421180583051319846892743457624263956866538266921814403239558994067324507847891065899664707124595195928676142814190816724704599780559142141157081063742650586875576236400295502852705648604371805376322150641622749150196535962007007075836585824228914353567619604045672875187763878747675514060628122874614681432595402692834031164215663476070263702418455421625760642768344580020753494046882019143971983030276493129328516505405360400788299991571085746513931669564949149300271069966432132986675035244742243130051717173173628247260117191385672401925874791853293138412009926679444896960265190320406167953997211625375271948468738418514262431333585860028835764621996099059235367636276307285875737978100377698692099589998453941526184784774213695782922577393043774157581841204551382180446669033260467388019380529594903718000569362112383703117420081853211330637346956096279465359681425736750694673755671272415181823177766155415584557570627795014165828761249235682902044568860582535428345934104093121861933269036215040096406692626646225931197579324525346266821667953761942585795840699132798895762629382457847674823601667168979009911462207671277869711123267875614320878089194215200718980361631718963137283081993487570747410212823800994289300211359565649382479344458580568146386802732868072045503234627618475405994574412093033535481492942475863699221055947686882285733370552759461633224970769489292737793837122158284387602899467977317850959823754298849359492586205191981260242260210351238732876967696776485893620972073587030436038606491376448265871165651820271252568720337769395672847833718452447825345328100078384778333836773812960305397136155580512641446123283372258882391187433676217662487868536957599701908317241720360416048835322341989590568917648781224195867228258895278407568481028618969463258389893351062496930266498215984156355889255289795767747498336255993679805414933326369165158586588747169186799740228893415279458452968655992435384252183468157212529718788530447654082728153889519021755870868509070641358479217653003257146823093357436136593984951414329198965212080646887975729994556144049487408144652744565091769000795106051703371396380109147986067182266201918668972747004672441864310318632776970136333986979311456763029684860270942565475191753880618362703061193378014097823993231639801114049306262911030372219197384273564246342362843788217598360917689351546698235565033040170962262410031434508305835516711479955908527899626395187290662564433991877470407367505959694957001963375574032302505123646288485071591818799515625112527432158985585038547414218028653507750217559796430306053397590143542331294590493789697111826062458087630315951962077484596968969739760518461702597580917114744333611862469024477472414940881335348432622069370152926849366784161483485138177458070715074006438048813773710270199608591911248807654613019382946285721964213418816488364023180928168094109950124906340976238163866763730287044511649645164941794351866641832527804763058066378758441220315561414378607030441152229615224557983372915667176457478702857874166592131250298152040783417171042064159564340153571628838028280461346383383310179004002679195255245087354967777339040364533641399224523542530394191995058296395444634300776695111737432721968014138475071293119924886093558564391097890275310870159545724155690559132643717025034052658246797404179621535837254220860684610311314988264882065752980577084789007916240537703833492703853109656573209136356188819292149650411877527609885978166256995275256479768402108977703182712583868577458366057893773230837657309280023432387953306785994432156155870080403813501858357415334924538229803619243923270129418987981032859479915979127492349389273280357409414901204948355248921134049629105898148952436269452251314027612656431080036182632353886867637607860127724994138164652040746457268355833399122481755564301389399396819416970986955136625893226448365662355050518413922676411433870070362979532384924471469366081403753588733690897480567847589077088495672483425293325916290273634000819604082516256026820942501099021627109615789840985764600303807025587214944636791865435697029176820790939561579415699638617392148330966610026808529632995433600116280246158952440126042000510132989132546885094210243599045670174811128895087665834791951095277332549513404499622873952866919686499528237420522360187789912973609405705494452905249101763020831916022902849226077055519749301290277574861676100577744307925352388892667634117223012435230594299147158725847436125882799954578014164721130513527882496512583787699260879089138245351460176532146563741582396304498650306590772566296532873913273355437826683121417806348500819215276660331525810186888870919116289549627976018466931177791049902501566560624396022299520169670172405219587936795245842730815456848616306284108011629267395220475200113076894459437611467279630008427029837893336708094272945618210692263128344857579371592801994302618421213068850974464775010532100309786963761761725416738895747229654792813166696754566758463764837926107357244909962740086552437940142219382405825139731789326362285713841805958998740228504614614550756605741458301837742805347067676751319509722450290711047407877880308793086643755966223653122337116958602648812444416828177487979966528583592196067530869451088020076394930806532686536614232688899914415347617561913298791808741806526373359306253993194166212785020536446039305527515703732691119225694244712883187529063584124804462343659761115438180048737470518492555347997353561511754444355909501507020932708812862556884877969592835115860855162772407753560585092476056091192162430922331881002090517910147723557495096506141676678752098760613521614243186745665411548559090190533727713244131053177509422764991722269570537179243194286846312066819849139829621096550455114279524652538641134207920111638427804503085392246031544611160900129994635198126049489882862909329606201560686816030463119579028412027610017445538988608469498892794620675655670573367715816220377454725105650914450137392104704281533784756376780886430240264249911371990232270750865119493514330891005310988173179708949155898578747620297440410393509942689334550159658193350195521136714297694316961760536766547121883093246144107497630567876926460723876100413001880778158962430263651566812174620636727311718809616672457088373720927634297064397193609592131474530498098927941511121035700178081026147185248833217865448264070331862097329427545843311812442526702587822080811499875214837018073135540963929824357476411381833219842799228861135357292277187941750923981232270616725448635379183831118653627835932414405043129817854407864434682806939088687718198599404016062560445355798289375571307992937011728311376561130128549302643535713430418545794638166758684056466974511550898308819862455882598978843106628696045883835929703553548530959626977891649135989797962319624216102890209747578836583698912142233469426937939787787324061857740719069947710996994940650390172886030397900497406650135371021619164167435591918983406895059493874952052652477737539284031151781254467555981439442316202948575670019816453427496763750486620548375279625821022177779259997966548154731960448740217582561777730285418646991582105685051191410823289451412488892701611023421091702087010284338467717533375188331148487553473987809161034596629168476433353967065857274727412117362949437316531491606712164721280706720839897446841085729312077182759536671029111581373095834500489167221460246894016133186518343347840525757890122351988502061992600096931160522156404860623625992766043049286596556942110162495470914852363680102407778580979251646588669005427445359385267484296092825551130014003607805240621680687659737440896744011088447881619548996080775438219639005733404656482636790841553670336203960781693192632210485338466015689552647498562829093525224773813944632635775740777737466028291329000227468035876048070072386215276093035102422636545781928778108501318252674742878682700704612888155531531772195131789678054018120417709900104609440894781245722847740237254552914747205196363937304851441714211442066267206518975984076661089123983370962692178360439322763386564831689696057957949262739977706136545775833876310142718502681193575886264359545314348311852811514517334580932669551483712311360036157558496347769838935524487164337611051143481300266946416904040017974000155383263367017536610938864110022449466625451196621287197897478996793180267669360684180528246150053237228969519422409545371844302702372780370712643133033572620580392345417882358586217567675840484880647845415201735061868374219399230907079367665160266633166937802991809069964985562586494915048278895224552696368985620156881576799400612768524553102622796891093601230083433860826674317850654117723720160949122582198033235317769206322389359788184817369661822500444673022085718958870377121271386417829771638958605744935357462127229936806405622157129732063470351127660001145313629763769345204187012546966024520221906152685914639797615592609035865795777560099840417399003721994672879328609824024453394082059233374368483224618235895441999111526204834513572298893381055293144876194493382473860741921303400265158379937262978638655880953221060424332369866191583736439891375205960687259454599319594800956075937344202369558144252745170605682233674775037264309749149279081749385245843997729152994923264277004604147874655177960239682938331446587841554456212221372993842268409122899636471014066265710660135355001543332561402798891996126396530005848150050215085782961583059478601817512532695336074279581388550426635732784789024711796751154108674064123803373606520530798850279142346250102145463371191212318512499576539378415677416435045139377601450027547391669559538413559503383622749856335363612388598521161359893570688347310010512610155865632857293013235940846961793688145121179033134897245837391773991518506303327854973486911656361535543335368403184123103168190046871108637390066850541152230604816198713784488267925515223266926759519479514338582334719635966068569982631816707031484790767605616880373817858428016831653043540551843141157524175250345723415115566659932600824192629107959704793640263108447690013629625866438828254943403757297094360073359727258114240377417264706076784918969512905567775300252148443791584290938658387908269357781652798215646367736562178623930226430407329350755935569400040380722977281305463752122236653634604099283023014255798545881371304002729804321872958141980450125583523131970408631618099740306625570552353437661717556057381528402802520944941323582768225877338551994476008877588285764349490856029383308414533205545164348148144182604820137608901772453969199702909380564159847755910215970607416706262713018435782657793747964239697230169187556974148228885675320311470898088026648773409810150724577773150153977995900030998155028391028513099285023957672392426543498009252910833523180840283377774100169966311277090316461430394163372056194065020716811355870333812827482813919078754574368260584102900984474380156393663919076648273778744032326957891620414145463771928962013891094776652867755842034418604338433208239263068439769005422191482021322899669479970933012131754136950627949625735730766468837340454366819024524611419724957682246680250880869164875001544764311707972525238866147829372887661815716278398546979632555452516885803974914580277256527427798247827560780122452483197480483686289448094183668010157919156034435869632660744539849864976923817656242914846340617815988639136175716463652325947970854219603234985025283064049272760687221888222879982736280219877874469149749462829953429715060211334884340876008945280999062041358720506765187250114169770484181058311923692179782357167647376039748885587974788897051326442796398737051869655586839985125395346288802925467672419924523597857409939970913475056058385125446561716246541733999196701430282745793729609572119931669884975595909385781274679223569024604099358540489324015633447731325717491373214068014608884672074107148485265684359151004426206071370089323210992977243503225407504578078797756554407704773104025350914342674658176044390656881212281876048786211471251678733105390928000951726424422915393589406699850144772259527140342775516385975708527603819555518309244283610117518547657275355073573838410852397995990378261648434447228604974284131766543520551049307040660175933604646094198727873818927474853981940041449335356398480732500255831611728488254567760900923225431575843279548039713323940011310519772500985663269461683451629668267264940118733287684576353028552089120440503658498988016312777827937101282336291794165849702726366631978605479544774388181354052890138222787461044023289176887233541883850698223474552202468224747359638185373608847871466807174626218415836560029835089312050631126809114280003332092504875652836067516642861973188260978193104383273589053492622905611266831894039516715337468272501500308698628491127368234066085242413619671718456088775316670582930674722576150639186676564074023807652866739498282426256254038799159157681802173389812909133703346404153285937711799789668615174551349406123661876752112991198104389968600560319197986866689253300460052039710207341501923264268641851512435457503894379683388923163138226040454175678326144677722200327348206624155996924557704821622438100445039376618233426845713174825013175342647159460113488431381987732855048675142079891105109314503003133813942451235196980933451489839525716017328222486197914323846839812515568597189609633376768245587061702957013738896352813802146805310506227472925147154632016879346738279767706206730043195978836711684515649867881509125248155247246265073441381253778739770076962771144835487910844974028531471853397038249976956390748757446035860699593273790028836879464001746740000315878135285193172138764158352176179701750480406397588456084296448569520028124655742645064424126436273021240409234693597285690380838600382003251173678465040727310616245156044462501488617176363772220233186588456564785405111706418847765403214483145010955885383664512839691698281813494544909021961665399781915611965595394940252522120354715844404237957837965593976945494728440976394725740373301043511167199559059343715760432869796168021872498544637414703204659031232412582003012635857058465473165330098766801615004703796537009527863601140171912796722653913376343980934954658573359575551497937804834042307593220709003238740914816932598835404093644845334163438482616639178776568147364850809792572216575474582602791739123780920777090282762040323572449577142014354187924663784723149478775615852155606279354442027268172589529997879255928941434609960780145234958319068452006738414520112798280546329486238761914556449002911579811448461449558053159452989684092294939313268311496586617100906757673039762875158097520527852563166788131123069215811511836451700571878687903028813691173963450405822187575396474492413423428289610089115883074885221368550883841776381553435264215683927534876239226790571969926667778000608663824225344271063141546596043304792618161163984414778016124682677050795865931462602447286055574898359429237578010066742511801523776273482483024027114132602896805271645979559118687736588547705926701605587015830749863426481881357978426020863662235211286341218825255514521866800621664337267998367401164557270972284900325935050143781754733161580671160703482390525718028111737113754792032534954380762836003834413846939823886674392056488784937586393979565408976484443178997950212036554388524858955450963919934619916110489434276162361788646092484753471174634808842435981183266790056666769912590342503839460377949663894721720005742800199422074564262832148985371621947180042626382610191665027649884592181501077544359551754494411079966133457090648768881819166682854343113629340459681611656526683422630144384583238616457585687168219342028597495788411742803703536435511374049871956074472921895605018016358576502819537869904358222595833266991063305661383670038531029441901714383626499188284194676502984725869044611496881286659480690732998630173079533541872372472068098238746513878527785877441952511501388068406996587121427760401436296232693834488147394982114309891852352143121964612902424706931398020724902512277518928319101091608608325861954810955026373476531306479683883676656957259807807959403945189826868976503896883691635695966472151927964136349481097059370227547310380348898289759677214263368861548155950244278491180793405741370134509876220047246873788435114496987439685806795147809548527277756900036884657218375699715348911777277953239342536817468455837164211808907475083961211879488127705492436122769269162826620832589615253984210932791539984111582664805507956048143630962628366819899272558188485976098603816874187085109241609401325969033239975003688817982343835451758378573903896481320228790086924858582882691536768745571399159287879489719660307253055941412549212320709851093302105433700504787023228759533932447322834493648154097378181730800421218242310767485331266764638079735489445187860240121926115694237204256736522041981700699246664956378874702227925607073997010998711952028195570670792987261035633423718249399844592009032683383957461255603445518359346473188597100779719180404841598575882368587483651664645087681926921829751044192912175963821382988688463165113369886894978186028453611743791471307673548680291181792896733747565954139658085560365929360128311890268732147451923816251887869176792423043469598511143962454854185744830415755544957219790428963651583249082068135094334337568789249641811777944134387775218519634483892475219117743783954468230801791143496196125127711804052519093171948288276307592015738808491661803952647487048424371532634532831950386416597803656917616511558948062101339172003532373549692549397045680813959433060410403135722226671357528435806340646750875418590970935773412957611839277180455482696248039715918169597700614003315596124002988570967720419263590136157941290418675233880150070950965737097374592865220275529998792587678902215281621766144650696089236498580723502577550914574457801595763318459717594622212966992086651814537913667053067768529888734144759578615787817874279820350810891162323958637302551400014920834201714457845768297836622051203415118238856262433520004140718420157963075622769602916188290297464883225381132610241339540869889434395792258590262407602583637010900459877731664757790461067413627043059546497436938410186600703623364291672193133345616613831207081318514175440913621907428782544117542691667246618757722802105080565278253228629821937049741923909214799869380560605758624160408046871327955859239704200180763661127450102879175037933595309518486830652208091163381439152772688785175545784453403863712297880889732718760009932254692350197391816629366653621797091756759511813556965402553091340402941853462631190841968082172969628474833808524347175845014733885428689425710556548179627254598803807083827639174066037226967402082727624967274453011447367661316590558884562414129055283582126653405345940274151798885774681356041866912584148156050177385705513753904070823681772475936633903525546530622569786339198504722095906104982408073135972367164287897578769155506510956474870003090971991713075349573311232892323329718520604101814292578326120443296676564195251482322732782959628340606752008554573465191442251768287884931518477599242275155870866510136490741297140798880443143577070725949676366737062419409914760931639759321282767984301529040204776628872664609327244479724885831164312431442222444484976268886330573161754166364178749153754286708190311576373746059359133371162157652917487991930038874633468333470651963614098239554995329286413426792502721599868984957564522904473694237943481961241583286196774732437852408053383399137477791092890133763249006921578492290036414510747714053320874636111208772054823011963134180149042767582628525014560032058382348278819348553092602413347459271577268328690700544467999284394602896394691814216918054957439381424601073241282802002969431074720635885689958714325038220157498245931591099801294532410037881487272118670067187574692864647539805222505309955542125572705950704958816797707841124013332538703341956816772725321928530219059032537462167978626889531627705708151468777385443370408377719572049060693120555404307644258638964837114397522563926867085420662355436868722944695697323608675610572066702441761558873281196139500116095027778011116300347130489089582484623491427812927261825536300406076042056205752987533635744336171661122687107993872057749335765346295942969263248002042577137330141243778534341490354616053263356140866611463321099540485979519634914116368115990354634183320177958069438573992394823403134344269177891416827049605615002405529000336836904247533657106675823950681410276076558189123223351134625049995886771227019273284939687400283496044834487157472413392150113448055009704748786067200819394798519885531877265670251710237450501813213018039803556445918508743043576026664478166058985320233063808708274953404786983693706915048283652458929574189750418707144881462287994236618480587249652595916986189732999817416843969547998627257764083502195884860776364706431889934900260405204675206012963121601819121803928032049405208533114775817287450200501358763460505140058968475516528608895728687841163936620153039600469445247527434464489905799092143953106195681852417406084694342189474753632379821115836911148776849375413098957671414944610145684733411038587949487083643193918353355774503944822252898688421264464794320862320539193297956451850985699159545802849933931981467688310423242193793920480643359523807829951847796800991711333718020177408775733997506254598085816706249830462145357398803387183762164533594526781569439404427859120064791752036992309995536874493229023158602637867859747969375941314832224387462960185221616290222031521752598208681510771876421346403516357304299934927134789038259875591347473579253474515031816483415720818138506190517086469171736428269202128185064469224375937391534607941824278916233673925130555768258968839884300720031768804882182976336254847041853332967792294639427478792324491199373688473491529669556078119088326218547452202036144861152665070713550546622492021330483077789865790574260382107227248073808288293554893095986439892850319530450643326257265154345326149158231001468263021862407218433796064148133410930393347253106763135632845717811561324204400934366271821364601327964146040019272325077491433851528131012822709612698521222318473247391383127230357100348450094849139907000009057226030058408118709813775507705137792138279442926618623038232523117109921673372486096043865643004068364773215860975343374685105119194720518218869060370547127957566141057567103403851369894200339940278692183652181002436320399158657364899172196071618986714255469818864902920157990056104060580037937997308305784927369646267199368993208789722025425684180585254930670904889307070895318853554138800351610930167644100779812929911912605066292803367724364316758657080739543955156071578797862691875366451431414242301498751720414901599810551149466743751870656337842229819749884659127709583223190670824685403381367329195122681619948891425839520841125777261501364775274260520972531933567314166212690672778865820772883939792267286193021135223596576855946521120851393824291703705604090869637377784248477315641738908924127343150710448234714287357453720391333604918036036195908359269492491900084748390952013295449247592997534223165189117703652007634621090391754647423483400639780602158445238953679540653278629289972140203848664492744765150563188200537891631433925764393489156500088623564756345293896999844690597719052157934965697816495936885221317399952504611341443839532741390952858427818082603271115489396721705628593965588571312645472480537671726750412447733774962679994504977549728845494758898327621914211318680251396206723761561097310539669817767074611246932848128975635900575258814541151211390041830035144575268926361831859552013080417505275528656234178015974198992096489379845593159234520170457561364270140993118128176041418022089001009743494333676595706928833035942498304534213683857224218507829011792229438675580493649777282534760638552123825733532311923934187962264936007235688231771216831024997417785364647610303608030363703926449700583410413073778417334340105345326034000891122090456121482191237119804573213058322726458637080457133962276787513303961325352485106900063423395588353294993721217241027520566934345502771757624875844352459949200916734724286277260259505710592314450269766092185843611989070910688602189525654708088114520553044700199307669407380254645757218919343232663191582164403378543990282112134672874300149450609760087462136068732151626862967046809554109185613221844582783921608725310116536774394901123300809112673307828197283842318472612990758654791867542300251067117448784422006700510162170540860871379586784629037391471007695018139371511274012110220099734741297523163234834727373502708877426955831993690021084059363619217635522490681393216983087118631266346520497328264014053944773994463486931381097174948821735065294527576179058097726501763887741455754382733914736863248199853502176217293155427851301115786522035645323163692690336800050454024280781984850207436419785418511695747659693199243075408215708015986677980074405951504347959190142773869984685078414122060157308120930748421158413080176444231572817506301593355718240032772890034988690480213750724416310597838547679567918300162345002516876263168905911744708605142529375782325984208705537719119429322857050545879376613549268304391682025392349207270292718919067422964070762958936733759418593487166910248423018349047638278028921903524784533285146102013897039719030273354885797931246122112009174747694075581209544844777329051150568754030606226966342978736884739524592343191614605355866463449211618721250337825024682356679174325229946725544081698556986949955998380784764193264696751792519600624322097983605051306489065685677595770115935789073310919445633773388427123482342653553705590103064904411010416595456545357601831737776402681974667990870508373553310009262586821573740116802608677151613628468652975129143814757040135718510543551923408105455451156933625081284487628483660683407974270793951249257464855810428550594430911455029271576407413206879656739833348900977486358952829460970916794262479277926846378085830698441744144708732918308645852207468547748747605792258380672548745316337792667497041755221259148450360391966699940267294714039779689987947955641530971593226721409603182975101915685214116256449269512614700544813876165036553934545224558403243849566435316878449798112041453183139294013823772133072401752833115227473161125423118221781736998119974852171029611122376823531108298379407836187181362442329035880714871320465595953481055065133355376376627007376475456807863861668239845651243048361211715252640245766769981940824854433155001417084794099792282839499260082339559833404467318134793472538121458237457654090148615700382001509218401938391086850383441991433146748698867331919029805787208940948071000430628225168878957580579869164935364262138653685057462219748873035784359300027453611913908078142590349950587204864025998062961062232802666910238789768876001185146281172871838537009307455884920768388968940152586200372360744696204411997959714496633519527368543600963379121536746569091081222627312799292601193738508602862108155924388237865233936243989000043235376430434463541726143711297648356139336167634000755815089471839403838830127850563201310943572808959368600954913620201472945640422665913520219923563115292552376859302098074521424292963027203800810928677170034266319730684276881654395378254547583797054873713584740705094143370305380388036547419930847051987795596126023358444486682104802595186667485957366764211943383047195911475518144526016630902676544386901460477865555097581794193855130245484898332618974182955424355420875938063359873972586395308393988825472141509178606667121257027586502150388025878014779585686896092997161980161324456112382719186274278973314167926767791206639224023397380626903844645374848973856876018712016423369425861568010414260210473840414541905980025925068958127220618214440261438246907456842085586883983997207041624149828666235881356166365446507135597495185524797611242884489157325939952110482087168990938169506950195493274072973415823745194096228616110913159600930478575824999135739147591690070722996864126577900302102544526378475188112293564398862780057616209566054857797129715944103711778665606395054994978374251944395643588678143728783954711642118899896712216810283005604014817394204031096553352501930816739326459767298636434112888347429431369537098864740534260393217407740725286646780481620682041305627720179791849620749986283249330838942800812882598270266031063629420623478898746393200514903494359783491133114752210616718612927448517853812670258476320940225115032852955704175224436474623184434681487639648943171876769755735562065842850637451870757597151178738532498881061069659028017320207888576413594451300751653491889858920970831853134681543133629893776327324210630276179652153906075039267050239876745439884329813510498865153608985563593267559518470110015376114028542234347280146319102409379832987244787403628703338041047104723319910842901942997268666498134235528181036433438951330890053223769699385449984412737371220696677697723776227364762356827427833496952519613428432983847146270995103877458786631006973020666492575458337510662326566879677154032913819450615010308780931733889395651655931141635428039509739246461547968270736786140989203959549671425349324226814117456838242481477471502112806997793484202562897523056872369206015396840076142773882942975649501201042413718140053135137555182047381543488846290659187858501096191157884257192944627222052060185859450251780106333905467228291264004799150100573340762162358872983524710717044016933801586894141828457861453415436878341221723583758697642421265399020562355595480097571182860157621309910154043583304229318219235120709523426036184795458939961935140868328357134256439129829207574167215142325043227871459711053473484168971267009940289108278642892925009413560725754943392029485132990033034707573250265218840107210622314533960028775497976319506959772649644307690347834244940237166306077414750798958106872371588270442761970315931599561393262827211910638347297736257487648861724976530985686509978513594650574824061850672947418958887793902379790913220630516609179672913072841000463212286894696690410107712961894246716551403254508647438528686516011102060202849300485907973314452838018588769930348272708665850240787007924412841571081852127783054085139953247463779447366482972655622017584496662347108386852919053356794472702913812541261854332846626857527766715901667262498644703465210508554060921732057178996287618436097364999581120869582904403574935180505106893059176922411857020827454475978224545868187388700481813301498318033570570308190637121103918870359930001452765467590752017582215771571121054514507524753204771062370622438397358177040668656761565956155491496621085968418456787425916100575796188685512486656039690147716813650219877240371607446792530608312230954010417141816991675670335671595456166701232386300116257852722176974390673815514073426408635338177834766864471271921364071394214273325703826634630719874166531166476649836284276965508731501225872156628614996786488083896413963004507090187575362428646205674731861945905571142957362312592636930082833559019777543249087013492135874402330513488173819382824500465314724246459369375017048459090765458317550429109216620671266141869935602413583061995131019953756311902531977304179392001693176877097527705274776176894050853411444425239984007655663221894518138199351089255034377779990361696366016011104840701289670533644356844305841382853914789606152011812695350965659409399632748241766931126510571930763451434409268041262544747870579750556902257476129589808246704955750589749567597275221915961946222845374937936725044244368861200599402027404756967505187595750744832397828503948373420179781728003523936381181069609789169295479320689370498810121569878974649092304227151206738848604937929511378691907758703794526099372947270361133564512464021358171611754182337614111414488753042322622521922936379352738446859709095144817062740859420976069796844298676528395132689102640442821302633201065229006046811537436386363288434078140524728151663672510753200518311937693847403528613470478781117468429460900888040223443206272764886826220888310429045287728033087541037674783633606178530962731480898518981069782416649058950559991292102282522522922780137155463569824706182958172166933911077517826064572842345418155051495864208403666204803274450018244731413263189538956647707574282457269614307437516623934462213152330262874459623702039698544339313530008629976732125137840708301845800917927893624307087446103235298267531099216136552655454003857885572223336808910759572174114045380397103015929229710706674386634393873164989951778838931064374526004893677312087145431831267127031931953131474151819838163904598715868110987207964631331107705043650098420899965140859782386045038691580761637495456834926370102084266388151857897099326179563379562817125908857345653521405050307557799022586824235124073506939550897562043032234994172859454186529932162604372748095637620291776797880534799042011663493200084887804152164626083416150408903745497942829495133475192764406790799386858348160232000824488990689822201932910490929553861893378015556309741428712364632316796521150613247120828194863364185539915595346189339298706975695675035820479140096666630882252982844268983518524292685360126886626866447200814940416878732627424012586938712065752453704199679405283591109516090811456961628335983802074073161519908255604166417894948290374502087840183844399962198562332954406829631106979495250269118276252472384852403928914645921153328153741480980876220300921583942706614677692831444766630718200838382888971711966550612227414846365388415257784508160004131728631314544580459287478220542157227571103256628261444287734817904799824798330640825352125375523476922042471982135744350535853048619310325345225010124239367189837384271663501600294062454293749380784397316778341774538160196702249961128049853232135583421312981271514134409665184555705969869998826319569140123360656921732857946353829917416991840232556024044842608861484164092136967136188740131012293006068081761988802674316069914535504858897706802832152564271950401119485816738975491107123810351074867053635929215545286228474971862604063313256008411757360091867486227745959253314502859752570916834208236126027528658080030552218777015708869943415222258961459517462027927482168958749425814325086203856953587485239771229401449270018113546896992177193052761503307421520513599828717709307214345272923469928923619267189392658045949399134636167160116322983890590930129759359952897876531988499797098630360443732735835639109630025332886792088852646361754745964802796371884273252687242646728578737194662531427270872919023061880523356935705634413288825014103068210354568212740988996336637118804215593920087569638423843586153401396403267246425819063116463806871816740869546504551670976679009558855168598407766623234789795472786514795542967558745121953959874411080233487469362378491069481119481090796128052414499561808908536472653539937203797478840512215824525719597487242265817097658722921998303482646595468376950946859092745789991061334956489430111036834616206532140531046655661358794115935442458845394420477624686225401354412219175724041317706694859559238978828884581786349599228541516838825807563779361380040359027465231309660910783213753177546985215363577613855964289230270558610986151982928821283172597244391580936681660979968680101519702943190460417810187634609331835075349115823605965274489307571533964742516777684603363724835483142846182245700210931374303873254354347177200069396140399128566540160966820749668440973535994994179355307937621663951652953073822792982467405765299307885773982343366988406611171287820694958732021664422129711930750884606369385521735683141265284865907799839522281817264694768168570014999155929294546757884030525141379970613926837754851820404590639557806373663604440548837632529900010002159699563755519113761472889974048184091722020026937162807583603991801353138877824883107823642212929488031612913080695572492460635448409271992001533502827815167611357176046437360169774216309607715547828614766402026600688406513957248950817021211489624854880725984564090286283669049368899876659762428976912606100339127615955669719336984402690498708544032711130953557297277635277599191025980789537239204373932530792052926420180283660457504478540255888413882666573131241293729792259869039238234764316175745319381377139616068714961766882706217424885246410273632283427029000537830021958338273272876984627119073529196086936968147531915617478319507661066790994387532315947586259644033924936514902905125408858289845880363943135886322517803093548924709536160409611587697544279162538910497897106323523066722609414827291007145765718553508393575941116086814563857320023941263668873408508156552359575376926382186412488573907121280435238184807734547707654837888213656733351398571024180200939456663226658339976309101904326491626400732406802806944105395328818718000858491545928943492266729312345134223102304381514970351492887925694450839094055352481302532735073983448851428424498657624630137593149193941632164429001518693575670293974934610672044364628682657652188418567792738254504390050313545498504678754823328128136463396196065285948170865512188651060520070924313480595978145278050484888155809196616286529336792589186635949591487162152183191242759872156511934190926805459085595582253051782735935867247720489290230471137529200575058793061070301154341442035180330079283777644212743400243243624465881676660058640958045258889138602782755828387936031968710626331294337893153834453196056713775829059751703736042352740501640777587848357339436537848950415379776636587532732182071708604638728878483512395095933965577146941197720443365491448185943492528309460942976831168079915179271785209647858539154631033146190432171391798124735545607985781598959210561357976121742829787295393596060387604227488131389545891485374926871157975244807418840806191599632140484717103869595036589059334480281496200920138967966485829798340156434882739901068480142826831332448784374528645465059606283393677391199527865108567046501271246190752355661366169096448491661464905778028927554335576843678965119194793313066483685595988247355113935667009097492588425090192357823494895784869074081261496286354305004503000659202138249268380960023234613644881305680473681266630268021461403018433658665067454594125258403682103844861078125514729506540879172213898296889055820003354419470787950713319074023335256475652716722675998403922727167622795668124829657325674401214648782774040060300145996821324022957281772838565048775118576151570074633228968233352038137374623816784446485197261966892327712077707269502801117899583355181080085258629904723342444931390158680377658129288315995768492148488036428415898333395394318277229505813531780314023159059439310300581768283482266601209494957231476651243920817059448044985436029570052843036517837877775605364969359509769210354524718925184617058394286018002700921143970108342874813825786599252287737300894822388362607892592955551087440103549203192244114824712535054989884929771816660715426483417975906836045697271186890758303000104929230117854743402257675201445493345447260137848978016928866731052193330764035549190892596803850268685753167899723944149834281935017866021161693947049060913414835895238889490650495563796295866137446728631641599902970875913107016349658743038037740672528737441108048520777228023413303938237554144441162452975313929381391646528015395083606287189672567386363375580521281884091176086549493933105148753773487731491428454198584083180355782160342692214884581489314636417041802720388834999866346713320900079333464031178455454787180934273965787427930462212647661133700413719821004872943156381921408729154284914525544708094041039321878539707673518595830201756977183470843054624413582885381121049191208074767106797538223326588920072058108528984649947331805180978178541317179655135109796277713088748546801504648786967494277355013540625020163363092233980128011246846772139619291578437401346125880011845338480249597939149163098923408607030981740921650109567302497349674640109777315466563586856252279642654701512498412462781968294377993437438743079042443980516711895715792066271875037966494894309121455782655918586694968504894077861570114262999840096489447055012995183357427441104274824955198288278462386728180883964004849668122807508997634714106621831569163622970026423873006242967525529869110484094707877224749260471580808808952151938962273235785470582043861690775923316786388144937419193831480381149088177169334176847512918959462807578479833831047092370646578780102202678771118426853888370828773313365172034728328204417379011796513934960557615652890242116742365258612163290308312978168375247399218745931865704228593357619991217183131098263190460119665159611544344948229990918885533735471422838604002418235037708575645856306751538302362307514042128495177894836357708085327565156127570629926706733739057026173744589609831618557796152058551394199388495828288460013674536316845273250466870316497703643867981058151209849922447922177180141540124501861814994238367533260692468370814419959646416827046835247242072940051109912855431261466361800759192372051330747372719424420071957064691000837393361400874272686764676619776712691021994215900539124117290414878780867467512786305836265087459464369044361457687737195460131316251125840310606101087420459053827909458314493683117719951912064985519830412795483100019708803020784108003245054399369720934094197958393965461633280766759294173773515110109028715848477306146613973986973852137649243905450799732187196102644260657025522410987989879305255238771124323564564615055778588088564861300045405981786530500712768375700500756566710871831232762777766564215122492037643769635076121333507019474746902580537639740663503517617117830320421184056693748192742051961536572017161090224310793596863250976134369113620188226873046184476411183894325176520744420246523648694880686833385852131758678023783242762631596378197809903686492011009319622947060184659959441806974306801460398129237839919905429917448570445841502973693299116307587067867082379155746058109937629730019328047919769811687765915974930668691641124509058283013745196242252503062671137564962112429657621729230013965919962241853990588718582402066896497163535052470473752221613177719729724361133271884681087901113075685312879486051044584805787665156199177321908893642717560711333836261844692168533735779895879965714127333985209672095472806439486660597959301568722078915584912194894511579175139959995959210794941937809354717300574077068656788968170869283975357261161037125110594030644419252206758929031488730683306825403081246064738211666892707772264761767966699705736707413544231652789305285921836000359127619954612616645558013624269534510490136748690293254844095517148014577943665544582674433386453663417675430970446866298788798234427201307975528473359668838692498602723002293683884245865110753771345731605865260584364465149645371703224620758941562768772599780675536543055268719883321050501998273690589950012067967167485328094952274224623749170690273780910669022984305079653623407742102939754502447418406165504718702867448943726925641822381239401195426529848408586965090413470766852928450841936068617883404726480843730415583585851537266895930099514992022717949916133414417771626218595653843402958230911993162550232598164356072325804528065359934902342568792954332842904850479946639503750075143637143865628847820437935001390866819317679543603577180768202315877451771890178260054832162674500329018265215807440863489134718358880352937845641273797951637656327882780448566292172746976197460799239417612111395422692379399084093675393980736720245776282370311884598728988084040579790939307905698246528472431812026830859365010297174079756810952436677666640315228513332851523869967801917217601299321094396907336544609497319249784997992008760549189623476393968320261597207918876246003979676504965231924016445731726450321817949026081551018494240028639595206711980495566075492633849550148418867827848033893474191879005455575306656319342019402500884379609551770694647759840279044143330926409129198397734071240252623864627124274347031936539972190918798367986772283963382338276581572535680835716383179956222628137271041696807542345233253918575541951125305928461693870509364814609746106885196342733940832184006038204073538574353806272457295528398647345551378651625409635951547891874284126800387817680976863938524216195831097899966206673377928720740494320398503233159947077731258571180349048821970788113032207701682042979229619391890022183773591322632944574165809944049460217513956433383230159523507104339183683052507268677300681071386988335431033137226470716235979266103371872329384277226906974406853087466145589071327961845564865065049628943744968610959418479807219885628862048940588505742018418869124029605988941378411909789758907446630903607344989959523939831930742845670114997321340529727510870884380760084261206233774788109539406804615215186334296417911957789363545715324139334198322566294578001475511039636929372034532058632848650184818698548987861397919566347793551244203435904349718441102836611681518278375272179732296780003858341016186432169615398148951105824210075899732829680489916755453540655583286703373679346214168483764298522043659554239727490776617958744981585439654940697215221719102829716643802281193908408572885816620372017339801884277750643313860252513212123896823305792016893808821842983282643582799639058308381601564242142344387282312575550160909279633820892565965836993239750158137896244523790774558427006343778110534225091969923506592786538951786127759119038551058362261729228273870236240849409400051449523310460878247710131420321117345157637964603643578613785169955222121812484592326629103404969996090885474307256744359932310532176368237580879972862586356331176746927900719409135408456382719859856953903521105522476484988963489695225676445652952372844679509561142630410882993881321788901292894140335829181338283957777475095905325796076059937238074325431508981011547373878760468709285041546418741176593776696125233911554458482423899316574469600435814721933611927793821775920220094787462151242486807016326025598241575644232810638462414210422750013531474271784738397588605599667507522731904019878016482888962528147597262563481285118290422735343552157831141874945185715980599695576695332806463054724844878126823448589513408345575235925195486139649549187515574059666932216593501812964459256920159887426356118647985153522765945279975401862876344200039788921593300572754078719349774525871825153413890713627164913081833748334742473792130114799820755053642856335533473532769435558438733882949090329543376335579252417233715978027045933568441897095570073197295893222199869402898520332945565662729681453503730998208426656576610252622876582574952498868397619285511878110887057554103904878908809450000987129956820808835656559588613261374666580181118917415011103871737053803050227129720469373546212693303842099252922573348664009498960280594763969329863049146192621219236395527098221382426269802147902937826685492260751089391209554466273202918344260316328701726081755128615954060411580196775791504774538606780301489243088446162634926254936409872360745000004683104195829508202039691348973631533989370193344570193970668797441532334118630973404702247404910911894284774796200899495971190684277449743897591063390403433277352100455848064977658260960680033491452053207397351283039404321962533310187869342020356546682871562920416305249704407742197431000692234805928901804333265997978487362421664502218117633738152261593757301628844596383723055802455522406519883614246790048818179386820314465041871913820792233946295678523371003801558486212292555932480939175413297844615621104978903468762279255514897812934896020634895127620564968151799557652475571834616629855353245306620585490206321612083325030838195407779362251001419525454410426201071666964253521628791844900984871206987752308663538496346916130705934711771083697313243745691995706609353124375628920621037037035156767370004467213455694253784486319616075242844443273273411834460484840496805973619379296558563356502166778212006391234113238034375904305912357633748362659894824754934837207084478091458281813120639301804843311996646458206379118272881367525567219502641988272279147926615972537077610953629054242242595036091071465759610894348470104975169904953350751476342031223005474741725674146106967308355984191924725993263232697014786777956121849082635068875288369335755456609907689920979909583707246255154536748769482610574519922286435380145144472885137829673811362327737581208759426248319420375033073068431704386238258473024706285943779995786577439418038545076521603288956969488426340850236627369352504603145395531696421915976980110755515978544286177189528310480023686710591725153227602177677843900104636363216537550053439256012538346593647871088270590354723927866536608173207084416625247420581944601341774412272926894302545311674478103137945016953714166013131795505074529355107036764768750682945783232260024083880636889811103680616023176100680622433796140882300511908218843264251521677465628020518656339657495916243473402003832000681222617394321682429244170504571519370296233192862486024011802607259003897498154921363985043200846705853104687451919551601519147716134331007874251232463068308087261072701678042966936756330393021851127545102747535328588180456006488070230502016765583884848509159910298141397806239664844036208642973162340978335200569139324206313460553782340463021943843395084765050429218723288243801341240409729579630632768152618385312289028496144984499657575884391324780958930743998476120015569694700068190066803800939078631300327648380480918487705254780592209062778435125962440922499320175786464881822997236195596026543822850860836192092736793081581919143605392681901849890822310354954636385836682822174163426496327636467491357177085488064913224225941660316517896421637536674157542468893255409276709541258038906507290036732503083465341072376741320992560713527947566904500508384002823702296089927266415607297867994365851643845174003604636411063776491026936640285419947873202644439497184131989147810247366366322313462040268144816350373925421367281629882225986182888401574924136938770351184102410539354685494336845055342686127191480432392892680094033350175981705302839269898877964944574600230298253371755667672915527053153402781737532930189322388607337739152395605741281405089209516949736605065368836908529688374259824917392995284996396338593041611727400764420701290698932528178712630279462415588620422199364060954543666344735774748866561631752618649221783598801263900659708840287541070833180252289212107667441936949481600417633092953192486939761653949306719632026613138910189611105328816508922817781003470116014415791701974079807137813367022757430546895638044402649991197851015257734351868995031417875611593749304868404829178518795528956643795540254181165798851979154452641900134012381248996116292657885540924302995317936712825649036094966134502501069843945182659422931952004316982214667997990005711328740872084114841726037563173642877215979212849746402007427907989092806721406205799381222016985453733117399249664261440179637487868339274310198994731349313900548731576175880940553326275499821026338295918798703197311874065798434556716494117180026230203106396730115897414957455061045416306294172262053075694142210902440812459764072520306676285164000600143989855434713079635032098023468415061934960708853150838627650374920656939622601574113694825609153757926382797287884494078858061113510363664422158087992319045321659500149031082038032788552373859570955883345635033065807821526037448493266034273369579178577324590881585819308692848557814786337312166428756326343001965844790879713076848441694803703839299819868011090547112429963747502023399378398409575213083967557745577812578497989976130598999574007685143040873036581203052907753966172584215920214810109362432976845079744341690433851551631350735979231269953142782457968894896594975919558537511618619435167943709898597503498340086392317780713515004382441751924546618267058618210013370170488036927452973293777022011351325027719004700467002550422465079825960320593361187848078652149685989950295267644140750381113012361224882002793996411657977767541029853203199140459843782277361757162559633107691457811972117567263367214858425611155990667306282819595140673895270683329091428143961370251523821766383391270985154501722857141911569181652323232875191047566993902710377306173870408493759240941364839494119362639857765126713287626898266525195449524596513592886614174278922644787984979974670873434680034912511037398150172932604747221546625770411617258420895871567279522348126228249049319217074688669727464197831775545358129951254268103381574114871168134868796034683816462519611621533327963991242452328230076649701285723571597041347336003504547048914606668121412170534035703727879224624939816514291047304307427309391606037661411727243082879400745810491171784008938772818190342500348245928556328123894343911272475196177182675632980711923916087006603110693913619409982121734486251178877739698962858017109158113749562415135394754170020910339778585292440719749928160106356148122073590377872893854796677277642593307351902544200185629162008275866000408927070513352574041278104566747178253365487391889210742321139842385136860889756300208072760476407931084303967318284462866262303702376698032293762422949412712557514733403693115947397719929552086996880613647148148331681201039513836229513636687436514116935036209734743739117431232317441301720350118787115103301885227502878853300424598611788593434723048255911937467487608623935725813036421417913379673591784959614034049213137193861588178629812231346347832842515424934202600269111833826495458763938991179503730286065566207529686048069347252588667652927430274344265746238810125393388248708424695584924068852281184060370030755059249701032356006556392138119227952385230000743830230636146488868103950638285766049582984403009690248554727170003598464115118889113269985241692367359074017866097181731273800837176172280196443396466476273813493705496409367919266249858298452857908035506926035861940586895891445595459056084440110469169412402234042349834145972329727834887710377688390352619056678200327739572372555201052532965995078410938987097422101989352946389760456862548170692484712062071024627994063746683598617935170678762115849884384967709437540615194360108731304560664610286601031416702811738121001949595810466669199735010947173747011425696085253450123264788215954200758901025712444774218432922535677082157131132086106572396845979582115645605381001859812410830907818690736036076653866275148741267485712057394623957608428793669169794748472704270955053818080171790265117358036601976854479009907319278172095970580712122376779713765876898401857961046464950755792923971712280057207166935504193570942653391667087203015230564154361852247897491015414609780554149854338826116315930376455956417508059590989831772290917619444295325904606895752958098103540491327293920601095352456051421891867651119867154421848940834912838321022519672606158865228404780352063615919206834860539021773297800034196823020074864800903068384754437476429376854511399701785349445623489292568767430421878851594191013423662361986871920801690227264661252524343858997105290693019461291979154034993846153705167998197213551152707357359012628580791803521577515798838831006384052038486746467772297112593884602648996431869098475400798461138072454002784607833639859328776927146325716867950530871595979330085689319870597664409512072477290499158626027676263109718513485846971281087645972914693515496495666359738918242885371014579733450766545414272739248062326175610881318337593721213634057350868716803061420512459342622400081405740648168965622994015522956545549030581976476002284179484243690680241822860621891642049837770815395101146453983628543287759055666711998159639964917626854222448149537454613342767271066746991162475227365873363099056535442896475017883925030721154102948824255114618017691450196080249399307637482234714114533939984902635265359219913491793955561744202732661867596457060930684393335224424826562759504279989164752056596806078526700055164882732655512716386301099684922098300740828551488273494453484548890749314256471211682090212154311709434919765699536354907623135241178008307825027853700954692021813288176572593577318560373360386526451733013955803172522777514696535951710168310291923018421303256099255335874429881935225362468265067369824151713327982455199956768536990001651875471464876690699657853307684129437362955291311141058533347580238197526648288753524211244561228901586898639448301705424052647600109192858721489838696185520317628505757239564512086961430179211857042248498267221692618912149449606547623386826043802299828694385501177785806125735476389801022422493804595774419354720650380113996125866544276884207142443238645073644099942397811242286833543938632395906215558622335316453833743316410068300559398273477741641963623983493345166522960937837071419207905524047435245585894582856795394552097901973452021087797245469100377222730919591594646812077289916672404236721901405418322995573180042243857124863811227444559819747233254499778500290692598086393925478025241559502023321634523659860275002757539467064646614289083783137400003276980686172053571681984240374744494092552689744902989287172153146212832828283710857319495935531376430761589965835445986657155986463356368086292625464553711306954789242105903054737985720501612033094947156595728504747523629327599591273396881878454246104902935899171244979323510497336983835848991092747656369719405465252425911687977075190350016455804362509734007594185111085409130319541992641281466626053790628448472456322063365604219217026143336497552512481997393709220678216722353901477424158694493245849201683938806819878968878359211944667461682898271685939030952327189908454591396930971331189603845021454015875518900609323575587672088923486986100106292677291154562944031734462978273547487975167925266838518073775416423313512705365889978581798147782634033426361197752644861751654344301158572310597397525980843529227220121059259667952248309800775235955034849149684993235261954073668944406916660538790775423745213453578187502762674896940002072107191652969917134844873047367490812968252606311132015120822110718047670367999894286852545100204718083766430130439371086433828691577443159516897286958647539676236900261380865294034797411606089285721667641343507193015633110240376810272002720244608751647445129835865603695325150810765241693536056119600951176560622787172811704469389841076932534494750545678992892341672483545260156723534315626599747888893508738254630718135442191163726907126987638388949454259648897662907598439123718425853578226654720078492462612452937211444637121355735346638917516224445329537248073055338704320857122003038650535246520217268142829150208212100401472415802376202283065214815122585848728513330477473336404243356603038846219357809580349501048494001122816357863614711099165565245489027718870806241385256135018158822077555810123625997415884511941684780278986249775000934626955531609132728038674723288538511844134409961316120443368671876673766169961761565933926872101432877843228483701400418833253264315820468950465016077890926868836671197370440620761855584513601606959902554102469848444932235832707329070949031335151309341680025699288122729526117795163811033229115837998538972028311995499665714022282756322682239738891246223597800712333706517773592020390876202315198507684104683835609612287492192862146597981110269393873811288431196481553621781640100625870163930533832676619252499982762659869695846787107321633559097347575998493284216887255954241293151081315707939920291782077769486114903615866580547461327448160569033051815540418295290091748378285065597176507241067976875474734573096816623824822664990211938970222544997493771899876016264115900724923452226903819505059012743505873037640269245378095419426014662769190077514553012259758206495301946805129606186938268788380429206976053599814891248496100932003153968131700370593870752605680305374191515500547450771148505035658042459177221591750615283229286331251220351138874846502502433014196754540776770489429574193157543137720877548312718579763755668896962388928510076698129612263120137548441644181297751338898057891868504009493619534208036587385704191087813396408269891575262939024423912891793643225500849622524800241050378439685993774962191919902032367327546666479287899992747800414537385260307934427748965407750262804358347643197901446119732909399332957586844721717715658421150319152771846141992795495523387399952132720895800852541837946748322146190927577459194612026549607622411113763882584554643585928534367986567351433790441900859098924444249446963080992144802144896043760713374985722441329862672511482449914465329471002321330389635800782707054442880960293626131222507084075750358575084348106777601023382947255179152281080293744833889008455031325944432688038388270340909243527576569706501557929851034513141341933380932910760311734541624338756066443047145097483487925096913684648792906597049228031473627340383241835962198917994546008842796909459145279224170523049095440418672037821520350968485513792726566872364758304136829887021427262367564154340993087739887150511381245837297965623017438276992485391221783741838712704450495577067032436385575897397870719787807372958169882052611037891014721494863303039582972245656276550475871826969060781372419947730546272844660804093776795769155474997870622939087306742929185492362043361854670458874593649902165256061068213475399720991580263427666403995304907695482877123526650371051726880862149968590294676482205584100224277112949949450423216073872980284263573583436371300642743654710757915036728762895446143913108022990834747382909615576522831927601359445020616515084042229773915632159102803831602088141712780819280403563464386006096892597980313694031408615550726754818350347515455021794453914795923077450739003710089513626270834281768269564070884668803002644808917950870574292560172021724698915014197453953629805514462823565594374777836030986811810225812272774395578423626106123174873252953167606245598813122503235604129227607673632614998246166671058887215284411596731367906166799111239434802613914223723743709718051402391396644969536657635328739561768338012951024114176409729658328230847527648111432378116474340893812356446461766366211921390519131202178766566260765288548996223096035327003845450479039343924991381325100825682496993286584200589563908267283801007355516560692043750281441696371344283961541133405513936893574566074464505489301563125530044505257015443942756883084816382461166424752514468401426996699498520009907006685627637416571086666170972976579917248684468077000131190975914855034458899290697379625015718562564911820936263955618553065578567775542304656688264326827722899472503770678923100497352852271985037414724477354434381960076720245474347108290719506724766946107498292386950197535127657061428650284080520926172837190124090740709078530878855153080629693514914963056036025783425870832106287395836491560120387680858504694656216514008294581259775415816021052581934457589476536917344157393174864146805498401366468540548408115886341926264725117717693340874015410939615195131259838240754036014264796764212143581697806858156495471098417149060743932024217620764169853779393027984929754211391501301703583381354667809354394082944967563928399316282649823491463727091977305682710301531602897796732912538147936229677514044537344214325873437870133790858364948077658414253121687483844346957026428380195882152753655201630226341256483856261792973804256126820278416956560544017299943052253298420196476837357016734113076246448358750767212422109567367967473381762467644103857574985070980382514167875403687194449750623080496822405605248941066553921677159203000350003596617537553576388485106525829460531420906924231647840329244935133115530528483573986772920126055512301773569998960445510966634322338057323048269061018499725038865739748515361654156590192112616088459198009704934291161039347728238320434836804344862219654251446989992700891658402092961752895163275894091461503811775180252021951719525605261542446551739216562169295211244142400129665816325841906038123574589162496761314178025039496707346651355716235297563099733672516526842336507254649504511202749449478619734029637732140028074988038632140796677245316440536091979656736552748270439253822086420140694443074920735913603959810586310062949306005060704991582142285885608813957347570707559871328624067855294472584437694297315548933890404339792392470389775997451667919491999303908821018594438949720024002631484130255501805612776693428491008923542975372433297711475454875677550534682879925863285132049527353027010656938601480152746867600328545157644432262250187072009137310404889144834908238700558281519802269768306634424660932896799984761651737274010015635531477597698367127662826911824884201660673057021787512358026536224931488428702293540676624099948161509366582956980677497117040652584791360148064979670326081691859571330608340854199781364814662041553840479620237815674754467858535877173994446717171485289376238206139079030055309358948908088506142546787507787557497260443994312452195244850709399961200587676661272406386725050792671930831437937628276391308742885063185276406812055483310228210691967654125770244371627331560970509113514821340451703690903168793281961399441243887680925201851765653642991595128572414993218849593328955513495564281992986344603388811584802846612694700862597144692284024079083085702843749268124219608533513195381906152489104707902938170077605931870296817457540415819945187050959760049871373557526607891352581236419234548514153285864650651377609351913298749962984704985370011711981577171612294872864241144177437013880322818118149168166457316224597671967804548970074252482310664479298855064942145870863093474848089978846647540509265119554129991343122005175601225581390510177728560393073384362794258862606695420839618478529450673924249439109419094528444917432131200788756654866040397621214748465738627601673875282729419687455949245181931345698601596728925829646332225826689570742910571635629902266746876949104130634186929217371803705077963338605613040209175898303116563519960263159501431546469623328207551817109492742139715216556437104604560460423578027073232954523931701852908781029128608530514116969274564268078907514576076481317269585258451722946036687151920191217200159112848849771627653774529657718307503649748863140777562268416987077412745654010960842989437555594909694723584400967247003164895669861024060207563359563929997152136339797894188474867330889488727716365563676912444210027495838850884112730078784167909694792149389595828794786207575532467763360928361260813491184651627710216353302283823747951304058345484426275726455745969292871423255754883388314663073800300556316517938249897452831488264778420801479584218697394648707120888825987210462365618274079181836267752412401974987975457377832769604217087587847645342054358335320749510099763270001791383281687881861113494188192524396464526804336748340126294543587068436176475153945799740430793654768441867871577079362296282768139930042240726911878162467833724212835368235077511530657300271501067899561743806439367942971736890257172303023190514113423661907115893070434047336130452594304999882081486528654886680976971310554602930517662200060640940771910631407777590189657860133062289649642027358485493531291932588261671514661015211737818875982346319906301988945512927078067551587650787159760142547682159088983868810363733174740752062410768907288642407178038024242539924681426368023134010574786437922260056991380706284869329599673432582767891176850051204178320540935045297433150583167537834287780216747951115112993529814620379729628203719240380106803383706003381678348534624745174947035037392628426852855366889235378903725869932358342793248921955989384454209215010297196433003109088322901505840757865104654841107864973779640544852886700066776036066760479805261857276884245977480999721424506312101833731008754767269622963438939180812717195923115427133075039960343300951871731343607559356068434352468964425609331525873293898583567189232718877282673027362036333864459848224540752101957028365102752259965451544179274381813248943265567195892734413561296452297371121569888509253338595724718048137588540342355934669096152119569087268646472355727465398335988478651287661559482721682534413364734744700661972057476654265289168122147322296819995125907928895243132594452863236916702264878813000889562059351793595329354651291988152971779946710704353881856072519620636310770755327735658694315483633976303398259967208650695613634559918624193175464622449191176540564905843325329162126543773441412068723886700637347490965398836039953958901965692899121633919564412333919017445729794240031275662926147548376489528190090401358981310412686932039341038042010956905064443790674113725501225692021027660616694390784927968713391502742547484356541661912238658382753755197287356739308800799783076763246049413442929381569931118198302115231083294919378107585395830924654941025349206872516157149537507847826711179732109519551373278942701222218602354921898528633063450253394525353218010887532740475123981239089529694035955678123523680632614639558541009647424197179717920202221499756182562257883917791123426502635621091425757108156222146592367034115584349464905780954288019507673506890888948748993267571688195461093939181091832682249853756692493984893633456331238688706998547474327607359133735942781384590141491377955412536205792464252124961326283548473546311299732683142518156098207635794226011979955513569882501610839218625986206514114903784217197731108771297706114140226444348360704204324538163538086700576580574021268307498175113790758899803445858743318497103493065005413844084786246131898131425275326199552353219898424596813535074927618512770411598022488392569941219478489687132490669125397122570064029412512230129149294506556448185635125979618976370440666796054634303861412168000425158177890658032639971426666947341799503297172073911182863437330606901354554303014265334663556782928633511669480447994427010749323215023068525557565152509918519709145246704894504683817848378316819786539067717956236842166547944451857368951984696768127238947841416247775887115566200922822343707495214929913309408313784754158601006356168056494669462712877101594345709625579869262236974910619059964514844806965895201099483391314432048327670154984950814027336865289042872710369389298462899013733006174141739247755821394073951925279472535960911057860693073965317210980147721134508816255039112582691163542962581275196916148743889626630079235261594223909747091784495763381383671418304756811879456370740398488096165444528064417161342888356600699371081195438027029329016556310104007649782089909031929518697378646008915227918310290293560972442434665915578939108223555602842699175829383092147142980533640543964099040326235111636655775722822007742659745383854219021661940707433385750505885539522961072656316735465727277133218057108649612329955639142700724461290593008709858864281649099930999990698112965382256927437719332063230601231633730242582921957510616399076454241228129481907987675833918755197375393978045115591450728924378997400782336143485256814716666304340695238885970433864688828105098670378771754743624524625498729313982188111878431351451763971251985355437964550572989530781079336279447780475819009419818549991137328621319350046645877589121246674535122762941704911910794648191921305649769793280047389611615316462624257320414206651606200617269779590295175271736389260363667424781874572572435808840237760898344402156006094828777145717352667224762453203505229365877162465561109355083472895129403557642092701388088740214900779421114859457825227588777439724961512380354710025837485184137975500544761054846808890076100251611424019931977994320854371661329422606602656910950814318174138534138394719926558814779904128418909614950407616821083211580240033637236387124451860117016038827303327359638567358289250362227953280453665038655241296511558338226398079184713002045026424174918393157496394777569221737824977864046359729859401618731335263264793050557052259116718960932336223383607413568106092017765640975679291519068572192217084581687676573692440816546613705313042159934925585372239050755493746124200259577654879056080741770648699790246288823225279766576939155751728037361944738173876120937027389333917805258026958737758611237348796511287813492549454586618080635042806491031725960413169839935886957323191643751224372405636356748880345374634494324423590395495408229645209192208343861665921242492926782897687809693709028061495704383975989505472785211865701689271932274477061226508555950126559483844636288662484248714980923773397214350686286032042795344091379982196396674684171514964564015541801017960313051221543449053578099988588112261644652255548848881836874655352258693753307251763397613554800766499081534061400628087543187643649587140095086298149853498899596414590140180813970273192633959234530762900728578139703236315829060339419004479267525163882676016505534020880486084202803223230495564875814660967763566518159752030780044196081200994925742658946200220891929476110631647721693635062291864152510903127093126557637345732378613427506401612260368947969029626130744968074286502289580372884707725514422254762729011048424036837972532769971310166511660272515025000909225288294447255138113329939196573057370623676399526622769430033533458345517049906570648732554116460087722926325409081562091796723917160707434988176072376512697432397956284512051669835332609174604924037559634167141158446954983785718468522421410264223513095548159880127082953049774487611233812680941319914968309751156221334231680089785052815538631597350016997520659118633586658293767524703290420808487439453805950513337968258859351737321274922765994109544232955907343831462343794894714213314541924117685012882402777838574825056582382179386152106466963764393552912746267625212628476698642020177500486433466391633517094536647653136887476508301245327200632730742491920545983294389062437866933766248847592651452483975874240045151041130269749186936730255445728570746802814009871227938269681392325197656206776182228365135472107333666947811604438576371393894428366796629391848120743218153202789786585546578375406521513646630289160115049949442031190634457003315163914699762381592748561313026217607837574697931470462278709287490850669124011810768219771497803069377874952723374803371222798482596195910613609328759841967113611278319022456419368793904196134656665015994760448431016362718696598639863688744190792934516112638310013674233395801679073983116304245596084197581791028499658799735986460327453487718774779154168750804694165499099836631803517120200818130839497336369070640979699524803960850198560878500554257885657354033954222593451473271390412742602256950801003432411420385060830851537798367463678591926192448281315544788587203822714766527372844102135128380729401840388826901387516445662944994655843185314458084850808966021835077329819953072061083620562928447802624141300461918936874918314900242822158793572704893512770037592164824513635890350558070671973882044182692420793125954760178004121551996618493044522687239876444492552182025004866853776353009681234046590859272720103135869870890363483985766617496902441114315102641459642025071723621093865857617728203614851760734264032661653025018780959490500471392222204401864564777032457332071304702811277784548703392390429369508540643210488044517739438481159113545479194158367244564916336458716737590664941089169799356981316812681137265734991355992007848051061941419155852156274347928682565434587236681543154507379777247023674661556097796136917550371226982367818714633244104705759312118493200125227628016141507498106592584398306131846503419580080727828949162864281017268270410923242480463916776300188142463863928828510824936075047019143773042417868427086239465123232255761945811428537008380121553112094513727859331163362486696986292457115300604586424680124931357090548511488154026669469497310853922722218418635554810674332151984138718767858136654680862052363724146480420425591566905775296302268973781242547268259519304489186406445302573154449956287009523527989470351893797037176906311659205221332385663194681313165735573811521159931091605875998185599628953611779402703731260414855206468605531941664095082594530813772159729214159347446434100618126525331168842862366399879383197725493434282922541786146851593257641620635825920088172540211431297028911842586646702736682872927512513720391448058990943316003688819471291716479012591936653641259001718571992762203028217581817381186204230863360658161402018245528404104089161540316230947074792715199969827128102564219899008611361056933372259347463927585857542397707589079453206379667894737665432158319310828118896485228608975346287017731582111737609249634431710148157679540282759933630918870998476189564220832429359387444138008258332977728674511871402523252033656340706458262104516851034631760210557836511756608504965734737498826041211589197284189138374405196403485814599369525518176507601630297371602545553575954610153327984726563869390589806283786785874995173195971830448640107811747978976295903570206492197144185584137644450598120331534051174037496376050154871227187224621495105363124518015400303680131673828159662493079867146698910692494844261475975390790393279635767786243134111111305308348659072946153562329358357062786779612753402293543558133982749188135535082082997748020446756987671565789010859994249018503013009687369560668337461986099369680471815409751939693995052250129904055524904356501099063621398321509444258103173331221545048246988053604302961394653341702275924313354175178568328953896804070427978643413300211375975983496714348469869935993084226780316359327148521238668522988721470451372679340128325089488854693632307900081493093003673133017457613341803446252203044870610198790169656352768290935040390248253006681304511587988605834844741310845324923634944409758485330485965969521436708277676208932472034533390859974231489160266418924794589237902575817675925401383303152162893707781221288855208407633837221277743177274620601966210168740315222401279852170416230592213066770760045459848008965150291478562630707698991879797976953587489644319922381807134335221218044705777196389237405342201136390567491033742087770730184174752539999794804585606962462321308583515997723288560202169571318305116454849128558109148771188807452532174561084959336589543865511040493604575214451156113538073134648052631435648850634960628247065914952361464243993791184607517633651514418205045652747809052140219866774361539691807100279324856428796427518510518601900718116195354172622619652393258646558940187935172558486920515605305707183920626811658181730978962346847413362351663891293451926297144994377244773337145975465946507054401986203830442282729653961478742159225348064590549111652974551651903265731062435888215802952541268353198367458385168157775795698987358852915704080767614959008277188432743487359929883080845814331181251706283657579325646866597344285859580731586216035514051533480115790663890024023798169915461410277114539834417916585154143512659128864846544914141155185338320896710169484442261416203591809334973682543575469030295231436946529733190807247026964911236599064488317954788962998030675195162533235158673881462094914673436886001836032980411933074538524342875219090002109644607805892660499608849224277116145780666428528132307980250240483530854557038106310503985923285291233887468393219375164047302621988829197784272741435557412689695045517714915421455446669238351950103385720518986796127818811239235796613908407320373224741451728181149098013022092818527503388809803258013036111985281289562031357045413118887234331990624283716238175664664909733788309135601175274581504346938875124987496807049269338508954922798601829591404653348963393178030656907713502848953641002090258694124844447141370211114291525132691666861251084489420222284262462918299265588988044879592543965831154044839207802756621613368544160372767613993148908301694906683625979595128069054215174601944622812394546305185763833332003080429800907436779456545442102018129220699584023190709026835052023697269773208132861639537583575071362638098675151236349493754438326652162471089939407022944731673038321751191349472080397717534972082591309096331907102123235033663823016851374251323661589999637762974722770902205607249485133173531641663649767137722211261301173777919585150950356822774539289152887968440876305914729841538700405150160698701287234579005771981012409249295391542524000148870351119951856514081586379704092444067689638032095831188837312426697720937123159025042757523100666470014130807783359981841170523868786654883293390516140300822878586829566124199523111196402020965113106346673105512012085928429486952208983118742241134837519561728377356342822313687817000935468757050311451082652845550328751079811531874572475826414527728620832967712979591860017350096784444511351068269218435781885095217340519695406252325583768926518743102956602925239997303017114815527829698839485456522402131175293829118023649801397603784890111176896251786837825443209100720131783399245733231032974371139763737402489858553482737223324461478166140308972580156288900709743232690020322059795745020909361259776405968771739854624837665710423052893532522418495014516576469284482964332108050130889365180799685075182100978573065607090845110421707523785688336597173801628220289144309319674034554589085992471816496813392090823897095679506226771347882572250557783396978452708054849527618649595985481778932038590124484435323488448658751660558152837967103240925200414187551384029744862703271567352619985557831328954670185110385763530883320095631898096501562610363884183622353516798225393221788186525037528588588501496051284990600765411966556319785685665922886372338091252454741262255942564716342892734389221356887436890921814978422628468708400119948036322088528906601263429744456591447176980687753777991466687733939069649495529999026367042830099713909535573638613719896137438561860528573724568840409038155049095742704552005897152465427671728554401032338920368514837692835386563356757428324310855162289212821152644847004125051610775481795979305765226738855854196827673276663751547832417014702427832632798781140254656927586320308519853061713498426920838096004843359060895452283040653285493870356400204399516246209559067326109345970533851999644329345692175028297784500181626245110509664503851705433349436023120905181443811074290384651783435407043654291190898206943027581485336198918690448771877444324393007292310638095124088484858643872149953304678364056698523707405949285944477249141471874511503494410500757312648507623062444251898239725492065137719213606103072472103770151518782528215459220125602741133688277510002731377634224024682247073351690989309429152603999116409413171403858975673668786215280336891402393178491701584602467684242585596191308775576440329230488781686286974346296220168604303277224332795382470414989128213805096302907611916916229975356340338891502083068665779577562857941627564915861090552111742659081364217369641416075679062356925469878038569569248506971802545151639512872631524030384680608471827071244995267889817162958566891391650456930451554836507884793517037177046636487546704902747083857864103449598884289069217167553518088521600644701753336309327990677170991686960680321121741888065438799361592269611763419218657029016550622029884885128922161839032083827170424857000334068503034141913952886125751402855899465126191292499102014914726168395614756835297840177652036236035814645725094442708460157915563595597791727960778745151392873804879817285805584704208021811728305701245829366311426699879278793248484303217419068136795837290210708393825813950099495584867442668581440271596013006988973427836230697182011681388922960804652667207733464579724522452424943814838383538730567145582809113185136607997909533087809820070290131035174868092039957252481775921691484027214136111371843002192371002000509347443295629035147947079566088312565095640882860334439275441281429259813082449627457130607434265204421019336925196687739484441477575088047726196677973176112297111937188920033195608707101413467454765688069789248172064012043654134998516763584427057051508541939979960941059024168074685343447777725487219943465672581687827245550902939656056523803013822835559233862333266432928994435840392685794442874809081224758942458204147493335395003814783069661904324464157214175865490654263523847631624603491899328238317244993189538275956632620571398583998376749503412592640237523370147294492797067736407177757738336142151790044271545436456158354507064560306670062133219001102151016619097468762640225112773073344770359380652866950009310998502938853872858261936047239609050048863596361046081864297316405871382860927691430208298759867616257351262988957762234857616262760407810131327559517254219094995270955909014489436925300946898684847273400470336549057752627153861470539479384778811799289213914906509234103321126043280841088665089192237777895066272433753243115447092408239419470325552380584242559866915887015302001055183132361738733923492302224266939303772653233043691630694517779471766127247407096681090551788733976667975224323672100008608829254823800449661339996314136621207155295371326215826884966338303065480280061085558853824521981064073644190337881425048107007092204748419162189285221525390741197647982288457823512153280370643198809212596388533335180301577374631776079551033426009358688641540856758013710654960254412534546484116082343268780460201526233764267766055071623314475855166962936255580252992350635787711583665868689416501909817863823992200511477230342112891972392471952776421135189875215837854035485598054949872747266342926609219731970597611461869429784927696917667568266531690276960049932870687582255640002634552203013411564759368667096238563484276826145214917145040729133449802833719797392303988288706049969909333040344538842234421337320773741634388521715372572541689138491407267849706891464214483546952256677220931207882793914687454851524973773264426582058612743545457839879052228422695935221923333849786316556754873452652353421253133009511619454410061304021667965702589481501640080934817861205370247179214084278312673979001980603067757534679504557016882783030874050600569437334911957893398524308043337416547454586015475653560193076128634085539765172861534080316073763087424507725626819972907714272875900756491625311456262815854536628963775769358574731303237022545940828050972061775682985852219643711917423430139832276983072343519036299936701932063675342226182856017021385277613680725934024230206681583474950247484658598464154000229081962585344777229697786419399274582217856770076770803846612494241015615886498987388649204138423573641464622142544761235183964870483235520945364969114177180885478129539637883631438035958202783189073829281796395156949535099898787324636824472064838451283432407391261767208840323535316770001018219501258909500082384768860346214431158011051468533112683003474055880981007331605750580004731229170962436951358633601021244778389059706943413022546900609690693436845727570529911958804204172015593113058466417297393351252764705474977587165243975865661652439026708973105052718955446646876533595822473732454302231532193257657557946341437092098806346258428713208317054797577268972214847193147385255421146630341441388643753656916628032371822963260507279089589720126032293965478218778617670910582162410979832901447414302397829573882750805870348771309824652273110609616938229684125533643022681702887809192606517440008481504746533860607812689670765218067217333570349869810588317410084622529529051056585993803955855721095934975975659837045717017319118763410675916017296583233421580845255548796488594497914891081668916679196684435562942588579279824383531894279494079208381052752723524149696461150857891916999042825775301891880677688766066922354233221030670655672699094678001892784746404260972533038620691448319913140095030819915138989591998924249720703525781254022230490150216624615891329501081246552248678589203780163691815505890416781693770116598811146849462700002362463304380336681848481025417865599312758447029597130342286889530736033845644972629932962320761244401851232826908506881164429774592183158527477533735778978002375564004957111445442852936482602728593510169387573045556875299211940895674600561450905133419031887029446152777792238385317488191827576054420208091394911740166684988210605147998275433809463595960442388273755783560543445630432587187141005045444223780229788012680192159668044795330227702040197507489861401332042039739449832523323150666195240175369189575050026034019328005089155971038549742695364502973579811409686876429487317162232252093610834411880413138359376969869501070278591339842332830492680596183887845110161098703171882308453515363602935842980129439972175873420296642989077728868496453549753949663284199269070647505578050326398641792068841760599415096220663556069763776023836870430447381334619102553721200930751955455954014058906524825867825352056888259379263232348594277959361978142781008405052428286335879895166701971902021575318993516179343324705713575048929528146000885197205495299985180016354130397571371569207857469724785718918956588787580095897955485663366288976452430586302441243668180641487049141692171511751330351142529305590268220844130874710614829632317961180733073599470168077841283077855692477499683046777219466547233949401186124250929474613177580588395314864783330302010483857608647956341379388806796351675247903641012794631653116243346881872108908961922361527019775285556641926931335322526133194516987911715590792693782845685289409827001019235040375314296702174882656606256947323460971020443110038512025503074349275464442798302385748837634652670926415939068935884756695834529434991108331334237366418317843746319727023780085179599902791760435268019093835761351464309086840370611343685922375642989888852023982622029884865000036715026685711454844089083604111838019169135986481491536901020799591506321479550228155428509321133797564932356237551444369747199400856276567391881006339850963496989057692443673881423157168347876801839064227480067985595431830180294287099741597755277488634652692405286018316703360512692295688824007365989887154174465955996381246362356566849866315423509693417965108212047279593870637771826782165668113863958491442311882093452373722151525633876596600390690774427663319279826201479588613973782083212617422099325645069736349590077487314636696916939287519074486558367155681254164772424196426547063007180459928786181380643742920360454532516481751385256932006448255666451344902229637944630767056403597131918670457965701908405149978876051602550799389744985472087436774921861171903368398602070371156701928400040369043718896305804528403525642112536853484508907199294174174357973037486091275904617571961190347139858301054342551397121803487674235454452602897913512404415740397562582446296307119056985413348264294332730330492442637332781589298222487710102708585727672122161885129123317931374702285385938619234408666355773925467380365641479617816980941105340189138441373635796646391549666238397734101906052063848632223587244778991048737978489160157288648474925281795588774030849310095789744703785238274402272257428789882450253461921005634580643226518441161180243193660580420114160954052906601801007952269438534096964276073203474003534705636530344676095798417022405117482857225634867315964589463142164647390413570443520187240621004913241048504183975402774049847917595797823003481298863973663087987198201714883322611849188915693101007476818399539209403065905353677370842031163793744867860070529232208494977674455856959739759496385929346688233200735022998951071442225365353742477594341133075030932090460786217867540931550567164824777155985484795822601569038728403959459474972123732418338595678245129621448303170344864702640771366074481140915258868542655167229646322867717365630644937814527154669822988599792936412198348870820330426366166273068312270486582091422312343226864697391027519083799174027218362487112967981520088072712133722602420701452022262592600193655454060779594727359079873562779804029094124421430558469411616616182217278970438417646701324001617632709115571353722536920521203878450020898747217200453891649340912450045729797614922109641393447915567613902177839674577401910065301073167152761864739103011898810318058856477648814851999729899285779230584190770183069338952222715566969447528920428290277317675092746710520917197893132109487964676759878048456851986958920013195018947604521095550018354816648750229191258751007304078886956470173943034185231663736372945804005132377595343463442020868196507092610486707681272335242584247653344331895427744152727564035761647021180684685592102421773167556647864807019835987362663892162802916757171036908071168010804005200331651875867004907708816759776928474591257464291967888266799249700093866313806814218995745252412807547346388570905933741047642987834601523290134381302296917732861881172203198691085287798186124881218733277589809135005943538534745468945503596773111989824694391639894156866192500177177428493160781496669488688606563826351041671689634913470229318034075144716601747553759960409040196853968268002475318125309369760915311218847618630956157072733273249530499261158873017140544932618973014561464958471718763604483012094717325596014911607683338072936368103266364160869030315979248891183092895729854567321445616092991835778876835455632038798237516310395213458682851079303673587958515441833660771062588207114363623312852320990435513365912502083850919617099577099572501314559327543707546778401553205223256837876267155978589070892941019730647429170760917775677826181670557551676442086695608098043519723755224535012343858010536462423173252427146940055035064850862771683428173363749003694054316476032685584244485126366020326333211591941484808192822830619771717653963453130391090042754819843421182149686750193945988133785706280571159188233924174050435714818127090495023168780319204413691499192347476096626756094806234558271959009375773198873233335119733183754012561103939631818803965510297055309666070248150338814234876248522455488012294000394254593002864817912015786240691578106199899793173237490173610338347247658488024634915557920614974483353911348814656676369815145881623570156742641216476195294348659841775486684370688043936483649369998671793722640292184713452582834208722064387986911838155864975649576754563606228762239455434150985995512015226330209115622933255247619722042445335475209464999695797324042117755359670247432888056614288930705091425547438094795820936960932763658146174181575843737872060514798943921524156341435074052433794109692739309176490040550654784217397545508243977965451129493230028484021450651814145896985095020211102609018740263272055699828620976334526370720632184293504304978621724313406809107627756000801094955330164686229747150324593080927136850538541204668866383914535267796989036883323049638321617376446105571958816320691283225707448021383046543713756525497131546577387239019862796695822035218244561233984180056000960681835314676108302271065903789944384143101931585933733413155123462499851939804661516454198514743333287667688369522477169231239943333108790525102422669520857078888599409798076614819126164144859033043086992907170219113699127987680897339056437864724936702411196387571572044869348264594427630438620878344996591560587246907307143532483734996605384024979372065123315357682512592997714047859085429882112093983142856134106170364244279749738659068546204056200629486600612470436297757891648531235313775555377361403928881256631219193440004528908047571309949907962054004597755905961410126282254933142266105540724601968499303488193769540985262631996249490591317802675028432881915206995656485015643386531960824261804146959534126106376460845029020958427395502069279052372130487680462481954128614878924659776104617830918736986691055452765688110208335044023866755350339268070763424576391649299154021916393262801450270336366506575376901555535491094090771325856031222474576572009438572171344875836786004063921593875658267930122474433444782477030828312200840018593346619258938994033514548121433094293787817447964046831360426095429844461495312095963511898338724369345600617705614526716731471128271039753935887534486248156297154558565636335693905120012193928585248458168598429965849418233966478674010301642425048259578185739132053348290896829278287697340009197177753349142507383190975216020011132162769440750446671241810488138057019680655582947809099051187678257431281174471309343770175225995092622336187252570486915567735281088728176646236558415069242826312773134659733578886096349501652328835946006204406396908512502138133026617750394555048190581133378733919631837444938592325262252902714619909220672385103919066827645294555606422502774788678012399092754120601642493185093972024674991086306913517366517066650802719605242035816542120150967905753497486159970115470964234923682868281582015951885937571922997972552156731196151205436310693275776115718886016516242341151946703879971029279572106658957250405109529738411658108874516709294649565205478673763037768064328595494328038748913761325532532526133628377691470604763037333717977388358454916566250428711971947947113373781912919947485636435115815203287436518313601744772190991993477277326134710316630172678973030726398712590732977129009503959057412696923565649008551503335062313346230653790099164594855901570523927228773345035129896030485600864901774536828976259963687274075687466407429589426865141838696993742542181646850960329501150603811659092232428755047529604764566045246657660270699277136445015172934218186674974781933913476231052811003631013996271964724122373077333538285678987790131629016524944353929399663097067014147836297318118190512602443253040937089098998596611369565802375717524767964197224878567776317171915514832167416355633033793392856957513215025494248589905725451576919996933390767011762598587149884497431988423136921466707082526073633021850241004880789071672438960571454054772143455119941175029429788021521558040341013023124304209980396437273539475681609374952466469953493950461718654250558495037786203239801619238731545862114386720140579420969480791836778440526634539405173148258343662252342379770135862515690314880839827371953968335830859745585558090779310966441496556098036241781718693744213277585359461212989178494979805455525280454808539194141263798394767296710421666781468364957894080321842194952862566596112504818554554175895899474673640600911706497800236659754811851009043916940059069707067983110487626892061369401128463870926945487293024470366740673493886298739999219342266945348710564734643118208515637609384292509029766337537891937867100652303331853281729292095032833405839436672831418552403045102395338386835710767588721150743563565668052964774881020199951707687661143985606496226584226056807664695297399427268946409284007910465301324253283766556309890750132972145885974416032467311899036802152879567781100600882297698476750474309381039173468815827540227564384449825466412148428610423352621882309738583078315357813814654577053463533535397471757977060809943223219717296989668198463581560494879840324037559283685447281733440908493403232396198582304242906985136024260672242788611892464244143524359851316349895066717502231665591555170296766911007071037715115666504810234131334654111892446868105242487428971855279484125403388886177416224698665445710166346387175609778650887644484885116216135556126346863279836325721345952409500493254482321547773719621602503291690515007801683836890906295075482251438455697687957278567477962096258937032451841250014422594251057987992555977710521513165605055443512018175390242307454941350948082150690601165011197028108084515544856195492138245881213970380463116324679489812831521372997793682436150829683559022646743452559444907190539577199130722591897803702663579260338488754521313086817818254380109797136304639969176142597519518845270562691143888717829213174087347095632018521530954765051720565585160124067838710148285543910760781470990839661350984741222452751088332003870496372874709730716921805909231940047424067194666575535209548694160168419710592544601936162218277063108600157021100796986452568088632351646537051898553574122661063619438270393049301776311631620046985346684860341661507736689079484328417255077499597167069784111653242702313577601176825264862961373002830473310607022227188833323301308122614059794468575901525513850857387930523057514000575369850413709993177294269446201073716498301585073783071797326205826805285431293725152536695533473940420536337772316523958203710723705636020619831677354275896032814496389782570406684996216218648710650439092824400305837716754598887552635439481394332247629644621537287217828687650576609019036458778602028637590643322665602790272709816183490361877638921991473090509474648061757253943356433555240079440173090932577894705753704712762585388253033734117745521044239888737075202573758693257062098828264472728171597690973898961218298514187667340523066138338533980979841303528651768204629005167375967021836209501888487597037736300121830550266655267718912732137043875338188493649240319985805904252821327058204823799625535943292881001762941044671990455940361715615593618483610147367315340149791901377274737876659910653072851398860075442808975671227012627488068485797566790356381520598358060545794009120923901679845084411685274653199550878327323416851324951561879324643114434723312956120751646967208850066240337344502816583851699639743363507521455435433852252753350336344150016264696329691937162275477610852205702931400380264916152795961383920728049394659206706471041840505807148063514105983107294419932067864512117616929772473310548098488127539433232411848307017904964091127229887292184490591403270668913114832197478715932258213896661265740549810980882276464479424851081784645037736183382030468280665519708442573141088697597131161742776703063484396044897699739391685825896922928083966699710714478134717877978646768891474300261670395379933330706102298579687562798045217278258664901048115389699320507811026813653282951336047238757974757511647220137895977588183373730637615142103737925137106013611234903638120248085994946905500163760248006372720286809074049960940755472825900081460930638853417219260436674121462143083965748533098571461484948672752810898086740350286684733698666893733108816274267542950437375865290981391737839600726588185838934365365000014324562210972321582628389109003749812891772842674198308657694738997041029130547760724462959707244322117452218683836530517873354467136568777208485911064065003428249748082583021390252868944482527266476544944979955835149539138229372575101378784356893670603152763463705354656450909493336081178441393958453096528312618157796627347510051284574032711050076809195170641841085261595622272559679453190800632954232621475846830551344908044896215414137148851448315142485536110565235615802182368187664107686335502112985259209697040219317588712611616445907788678139709007913047455209030682184030731154148618227319053055423033127391881119377457608482093837850789888359744162777559656036026817516168772372330649607199796818890187022787675293327460565745124935324442008739115634323858142769355597535925690992389028887100124184346688742681398079322946996743552879075006730659649714847512134109361912341251405754658553526553197266248421622981462922158845917492219184006942072496141747182394128632651835029340991396566272602154993831515960025910536834656924266813946144385798838676732498038052637849923173532637428038174970605768363189043745446315738998916590663390154490031524470113334332002774650825612953965914619952933435586793948787540457862387309560585375756764852104493520447225412845584109838996239676636942474022924936156931315956440013044232117100840330542891854578538885097237549047700803207004695152381716546361845305387357814557644660941139916909683410095074045560981394913872193920132316363917863755877066883117945322364542161320798960273308793773026926911596764212196844158108017612807064188068625225733093911517574247876865175246712478092169026546872774961436260851268739400649527566096374476551571001881117257305095634800732894390102515149280400050690245861682454217436177876056613075672917290824797119837175028078241750643625173824978231043337433875425191502531794964276558329928677065258220345830989345248913027920994959541194543746643004034091862745106024163284420050291220822920455584269703772938742399354586337695456549207487889511092372508423739170362868611403352082201236340768997065751801133883645614424705411793709885637328159207209026622319730215870626292717749015414989407697739790785197147943068116728689985680853651057894148777535731339260912817076986575476920794938502794002997850866692806874028006198804905052645709513032865183045311238729029222301055248398508113357461253738387763186562708608714781924362742671417246067310012512803840470324511735210374170898111295104466552320691282201042911148932485064194369046736659961290886493472724400126636391141158172470194581519224635025828841126356636801086950395306291219091676661598927126818396261408346571362226455984668474439365978504938533556786197368716042611647282671677474359109015459627587097842746795794088290372988257035782182848549779470685315963005396510994611437906367192887694298503795828951106440215767404868447637397671773247200055353188349923822072395846125028097111606485791851511949217864005649888651425252206242942415439425088446860133812978128477145641171194423906335401824256022748083719589520585368313635654771853005928678004370305221654079871020010775892924279267891478117499330747238232304314016066909341694471443274585899159492213115482738332691654918194678871895287054177849115395318546668169526872414290156231770892343571275134094192579750178858623729581960236129412677256498110316975979481461192805376244171691434199309226759737438304212600439121701325812552770474183871125091379816745708351346165678432895629830756843041925773033803343770868658526764529278136090684380667443612961301141074142432700883676323973209404071209872751672679388569756712232599897147866025118516993789449872423240099907077190805774565652818932426473222264542187838728837295408317522917877318639173674097539731469712019770298785800960959226850102677227790016808376696405331927724939377982475242076573531900701080076444024173737037696654365338529422471089761987108876194097740127612527132972554841914929064499964415031600049969373529213933725737282004959942309504332879414015388353360117549189185935900675251900732324925435829551681397814606185386980310498393955948723154044401902437314570880442355755600641615875313863114521410084062093429010799693636101902350419087905641214815463888885026469609665792158206873833310722433316503330055977029317889589488481595822257183989941967605862415188056826567202779096994717010667832024199617891433916403806524214811506467091608042589931025853349958446140730417970634162533258437647762000287612379268321390859772602758063762065768602225265607143822682413887054082356281708559411926565371224600895572032959652880502161278932381160874059586678278513178696416619435639721486647523260191312301188573219240916300130052947331443107419029593524822525131346029049538128060491871038730441301311156246818823025844607115878477643296529423574032683328381724105651796607863527239808159368957177711413630493055420066044496566974759676539208492639517779518590663352592241969253198091346713862060292512999034876405629671062797531697741989195882344987093818856862572780671717622538279309055208383732712738769403967836743459035256868076792664826831938435213701407278461068305359758355910917889291766419377308448518188302086225007752656385632728856314429352679370075990117623425356458266785900442464571540966904796922624317811358561711502709085245578419435462798629095855783787985672451465927365724169264807813215112905752244358528331831185752108000641748068459483930151161754422024444663954084833234543244011938086073921959801297972762105664929093537634044145165651592579263500933428179735177966537689286902184110494464801563467440210239415443513675145812723923898100098545835952619245762725835344256813958961466317971791732392500840704967179456150315565390898134650561474346629160362687237491747464201388406362475406532533572107774513867151036285800669245856787130132978796017904355957038034945077316309595422593639802493825548598676448840504327830425043870692139643380067231040235950501705478230829500986833980089581149700879555192139655909282910479024546637876928694100508484530516754697683303131428542318298961670981894212179646645013944829376109446310730127991983160884614659604169434152155188219023239527411889224975092490681923062631252600285037250993312841759101804743048987314803143898135532176570723618874898228159357963899807952352873733490037898056960740216143716683489194978898121026191407796431697297195515939270316979578705832384036414418821474247825298098139329525399266436736677380149091732009335951483604800703959618573262900298069682637465426407819905105626289802281459656820365557971237375073452037013593542558678065668579519509202312774773664565077328134709715052945677780126430535900080989699766990280786038375437584223947678619859747309460852695396376168499813083506223077634789733169952653510145761632634889553106994102804234224864516194227278690159746927818486885662308862564811151391645410755879542816800705434255593967100747991809462939314508997331806585789534955448406986962034320640980960901188825140172710344302663017488074802846086174034018778300387362190718491299726707438902045931186999496471764795177110417558657878055153479630905256762584299974056058194569056715898452267862498185850671268184471929244814989779158987709637605788033818078195280066361814199609334189304246760465250262786190158440260726186771605596330463910216994751044594666141026142278310375550592960547853455581957261891214250973538377715044145215322387519462626682327403845073044224495202596784925955177018262009445213618092308230390397437050709346105367351770364386639714076151355654242337340051769208609095950307271958560180463387527305549029823430270042590593613641008270633617158472417080261831967713484701398413727435720061303521840493586854895294763985878169820040230020336834564356324324070027361973326300659761215570749181521339076320423252548268362126893648198358298803971234822547317404655776244179999116947766569524585158643684426086284667278677547814133885532031207025587350829216919022466030285569986704048958344487157439057627377486624134188976894182283680662252249951143255164052968855197011337472807063674282786935587914597265331714940864125456520389755944327916257237143123389672949566972486167773694912068763484825093389951906283392241144052839025006042444056731830448376746029082240984011532434703228609231464762203218563955698966121541238110609622603032372127541867900867058087845561531916706032301462810147205713741830998675274353077918502654228244246813742114526666982842890213628268982335432600646457750471638041952708238541449095861980754495695354789873289756148382909023783963135596761657795042012569178501607970519045613136812807104272608993896134075534995217401038764667596748347812336425074873210902116101546738252014485244829720095083069701501420406277897465047044785147746456705242135483895767849874126974729638298748346101322822367228209379067056952003653535205311436690574016803670352791639782597092808230437535492281327662868873207112388883860047387625280577733421177571379640290182641602532785114320232131640332950968619857834054475798409585029176995354858824456431606401524738153354292645710513159113070575950090580936113192913203918255355261144145117168344573894514000228412975291742500179660870426188158430032458459083614237080153825113898129562392685270771298221136862067395427132947647909921655127101605039977548097169172039891672866112226592222066242515295012307347806278902979130672985379102457027039664753534190822390228804088115202822006247958320084577141033004416840118410908224978270801629146822232518675297176314718014218768775470688056354098836834472371546932593032556828789051273970284157122512180905381242691016972684589360673117287785515789622081259254189409737266135273358273635359668290226203055685049166275471129462872678182788979710583606630845957039886630036910899338476354178045881602435206323577148314652380183838442403011169286949254156854821014235688932132095056577944448721683001439780672298673211839924640017790496783304141095619109509415196603489549139372174747527129970916873499043164735185444909961951549778015716498599271427633922035722952523660354204619959330435848020229116839163168713584229700758162456791981216554660107234055563629467014904795821480792570591341123027173529895166529857654777000386507189499835018862872297872033634046966724263310098344483863602083393011118635780436838537143247400624628870940696643937928253265753483770814653401041925787225115162098134252761424672167531184629336747015895633318465076907715187835477627950991098271894851594580882818634933757625637055733734872659731159915171864779055276958422774300625594818914596698231858956143144895966451609276815658654720600125156402442904822545538694331987615171580095375448879414238136510596773015296409917868781178034375384542286032804518443070375808165493528837111438562865795313764419370651175631574039835129906429498973089941633372814049203751253560051688169320141852814411135939369736129871114304229060923477462146237536043169033986510562417710822151662739315828513447861720029331171980317466795594577128233537055247689212095921706368865794565306876457067148182087181790542360112848674225823508109658168379034012565707107822527728479244220989226864580474593307702421173030485528718612990335294479022846259729967848670551578664324581189009750234257762426765689927882094819045761737818541034133311808357720463440049545890193559769370324139614512548005031205171958332869173406770863531089761353817700811412940402304066122637493057212214694505604945575441317383406648198136696730062130228791997582689756681727851457507285344001325959906831276742746511702955613455418505761656462725055714367569466575993814430715518741223697418188033301125786289925013290834921195613556669152284718969896364039063433973258503484211819161333862376327058802054758343792916356130216620524522784880806080658070183344719856190928773281626691910922298296940948849205067180901093019214204141176029792380361677979648726264083790595399774588822193552569688432499296207767351784820754789611373035927687843001449397429815902336873533176561704929343060562974282650918820471878969639852587891493165698637701561810016539340467203159862370988476240737958619842133157129737744976470939232624374762309360774504176998693377020955679061287301551198335492344483754119303656656159791910577598257750817899562163785592524316230765308602136289281217623794145734145498231062231004007930763897841250058356707347902078859189737897550970594428659224644545681295900292613236079727998201831086840362120358703809302296946975565235913968991269067001902015931859561137273889717920681252699062042458237405110933900461634849338074054937441384011027115627343243525250041385945424718200114168017962300803756269001613592528836007049070246769968775548159487893427239228703351559595855157426527863257177482018790446841808754814735682218672805372064372630183343540645585864183190360281004994653200262381886555499280750410837631846355740765162686864438346739276884586984928936934419244597131138301258115907527091848354726010213930923259799190370730801404816096877970437175604015238717142776726932286063751965551614643568085820475607733058692400951297053872079735445147944690924425667383063582812160789161601609234781265971667917943386559606823765466584094012707050423317577909977487867436998608580207516523040725715701627307899422952069412662717094540521352532579420316884045078225368718331919375835122428290534101169853164785764456336748113575228180372141786957334400391398508590749063547106695586193573026361289352049591957193617597452693361936442885834493726273218863429143731517142431640323644653422833166062798797490654711148961439897986774060959439699742626201441551686130522573124205771167464923243245204527515397293118744981870002643424386385358557265603107735033355435033515619418866820030131244539605557696409421298105858071065616302176516602379481512964702650498592237004385829485296305074172531353881263023609404531141837758006960729748000573597384466654318728992364481840747078607705363724210137733607326233364126796225289927652850950961894342368153053488145790034439789644177497112563655206089980040141769962524313550882903180677572517008162759897834143807160076513294010025059991218477217328750106529245793587443255963015853645583441311222217260425975682658115632846396722116264120002721894354516362310521472442438870593861885982456274419008901033961364931304797563337128750761955029222224300004911121431892818754581889207214482411410217992174058670639957790711297777846328475904072194533250867599040895388738788961070299643241602804397215410960799588424644104530344779285961105486860584193794453442468613469269532522183142708389177518608833878660229220193109179417269389498461256857143425192422382845760798479700532197406100397328289962523846828609264858027936466323572929276089129160289812415208826379662082637315215826613654982304217016192154693518919885220933581712590051888354135202283992210475574438655855916728849192213973671878775518496501587990664844990423531110853071052211612352382391676808414621962254367427879906037282577553915496309950530614741358206794151486977800331684931110526036833161419581014015099204679946512123610480567422735565017965196821862809250502830964913729875521427231808876195963929387195846976069086054652591946958122241457107424047317496672667903926421358932570021970894036744576433320424043806601882308685392209143376100842154674787051576059709897106595763355842737118792195463436193097842070286926431660510530396477243376318851051091282132939000605524816581102262568060047253001445740688256937488674595113913568719770664848928086215467330009093836374978766650584146003168345305963076918797762870350788072529052432744652361051888421937627617313939404747019253610410825283117073244483557363062119458511483652594550725042715748123193808157038637469470498111893725567565874188887786593994819598910487758235509489862558995979528581378673878920242788464856592028864074033092543805853813483474968083177388182119702644406580730857189238074050399428331926305433046492945591112628829788889737008134240216689846251488365568265482967641377565284824918053055464884913613228328182463748105136385768831141546640583442737084926846187147406596565227162963694950939008229473421229403272501388646951184740507292726332320702384022997470306948809134172908023303014130485553516395622807029109620010393290034167926660511462856438833560848040712042848583636350578763318798523956163439781858356725314033149644743407923775710448152586800044344783056574337290689273142731427874491074834157559957821298127723652470644141309851398564511075583544340650130308246791274602122709964933535666126029370298823382208398080084340447806670980701108179563816937905359892042186104065538158577806607219549534045128379417224069697491226018108824615520966354886997700990047058176157548048332009221134355680609878628517547829245692688681980910210196785169149160211620412556176354532689458608618166865868207280759871865443098594656114955165347319296038818681329776851204500477359883447608556191733889160018810010277406181355603716451906232441161855765295428345819224675265488550937923160994264405221221143778803110983221009591547549959158902194990667168733133409526391677412052914676979414978346820500954493348592963623956350019576899426209364604036388397806802820088987530570412668182080268017862321805301124016218063776071166440054061829640811930834601563420646893054500743921673633794944961398301641674955206593870508813373303668513016935226090237215540048736368011448261873970769832994346710642244065311670862329484418425157740405815152132151365507465746080255374981561581792724194886595568814428479066489609553306908701622375913601230377719854136634112163804654788661912242639671071353619452764920507012827464698923267539574249429856709870793673183487737364245932726530454277954222971368065389307567830435550697379828237662712977995771784902670852281533132232489724002219696122990977388854074518613238510505106433242503815707856810643288324289462564698013747154232701533980950648770532386483607758209364561123081498756035764631788709118783557233849995688841923166505405833416969371083434667373562388367972597210033489998524589910143858432219993880272176510230801421194422869772970935011589650901761558699295862464500552283874085105600492024074189726565703292537491071069186125872525986389096608006984255204870101029843405247433869081799745903171574805545385737797174310851952141841482759611210091287554608383690074222480263947139006010376267759989752280046437306951380570304159192850778217276367818724830516182787990726716032262192720688947575318516742268691265081708269477252298131526497717964608239283657508672995960346604343341835393030325920433295658130891831127448827290604238851378453393963422079312929742082398962730508872834509696710271563149408286381935066681021384548762338638373303215276373007561678070361164499453477733575212920902212041617666257622993292862203594616228646197639506956058923631894031157064134131262442834671385293241216436400757873799166396299732631848928754454718604578658863625464023798587964984260058000443238632249672104691311187662832959103801222497511099659883120890313906973974823550493854568420230250946496254673829380028305779284254873513550049247873178557550831767412391988798107938914579914645889145245325264770447519249146682582717638628036931658032641378878874673223585944321355555248978128747577585282990171785058927918885013977652071476134323465742212404631530266716260832938055050078305149111038061783616698319878800552654926121129222717132744737255812819892911882394329912251089322485568318651980076252438629731714417447879292109771916300552872675248181648894515061162632186569298798440272314750132551009585790215746494645387787397372591585575023726977889538393010104399736111598042319381950589922274233986200197955877367240665674863550761341063238363972358130876482458685976550847634233746777023646443421194193543311989097420727494979969265301964578938705092932198703999198341728129867697902734304669809369322333330374693204249012404048259633344283951965261923960924765922669784082884754539675097724296556739340603661096325163743890256239989525232902580197246456166448122470643119534518731809123051654153094113421450561759514447477615907571760854774752078157394766799938591113947304842069828728622394602939030973037680279746259582431049546429189526256089389082828751516641234090313415377360468143649121209731534129672374187006856571596551100136315235082916988379248500088763889980912742342717809097942414996923505776556994240131475800922513215179063955539136573684433535080160704408344118336181971711890278216614935988469665236754142454427984751644796335003432533000634883984810261896448517794411653993717064835842080913744529668356431376007909983408570131304538872381328028429149447511790032141472071997945680085346709389323452857220731753103078207084436793252555936050904499653690354681292550979706874385404905622087914983371129328491369278137114790807619449805379153232910768493502850236157884110798322387466366371322789259867531044555567109450373018797560891943535941010616086269233047422915405084607855033988645788785161236244288433243686661325240367360149338875774484838845723514343352653641873355221527884139961023127752375283201103672728169353848705166384337115673054602054544490459747816472679793979281610950495113044351734529741364054480371553752798677873848876597266011226659804022207873591646461523629493100663778968390908442650847332372779207437146640867750837714831925966141750725867486674062163531748580913860690911863760702825305245868092299086624975465205670605057228083456652229855298194366642005528277087970023767694147089896161469963189569603028149457668920667774377175046029247562991280093202010549464948157738873421553408295433991042806139044009244615715545049002598848675656553019951042676413436454898451060902920028514457370509570824404368444419961920963225891823289418205339095094398628189302853533195564180225786784147141181661985219789604992760509536914425912025418746636468356695704517209736424620534199205983989660525025275970798419919625961019803809982595867988699530470532603223351746570298784562754260360305247145824295557216821849015666770833172420280923895593322289497091327340707252953107302258627199090212498220320948291335814711148202421922941296591340514754347236265156999232259609630023229726604197502663285049685436435928021719180783624637480208663276760079367224227617348045823409907843459169173303553241219143212750667969628429997841557801930368020480625701341880668087756438552572396631356041009282207140801571752471777928980184344423912217769561832825532684962481091944667973445438333177769987673931469226050991172820003143458732490647558143495760395660454353123323949020762018830265293248885837272178152785356798894176786962038050470549207366229459233573651807272777754077475541309817326922160850168699170524232007870895049556780551456651291764091727233645918570952794377383414364145691799610840437881149936682095784465604205395289365589862356874471556007832535276774449188452626580829172069931072764572817699271313359350625015567844014124671325859610744253976976667578171522547706143115489194044225115509276431146061010833276231972751813872854504401932737953490003197355836637432952208838074560080176013174331988902341413127692028325912240281409531415769405725115991977804391479826710873830249947763505434151057546102211040740961932265270940507601106760033076309334598802081709703478907322820090455791048948817462162769585116615066740164790080902617268488765714149076689378801785865553689370995616527788441720113963846521726385022771970997581577158234218714597245925804168894846624421091256465586262433045001772750799536331483645333200176189963429190336053461820503250555169358469744400288775633082868706803332569616604218222710297913505582458346119851743515295755682306551631576289502536536450753042871829220710360250252795443247162319600828799783236295729883547752813147558929014551727428490040907500165470346334825684386452765248058288026541660275219198466633189661096766740673176381749720393530036838225255006586814341428285184208380877204769028415499411466707963016996235719290867889668401599021273081334777632585427702353533765075862902557832122482252661472492588632585915977636036338672355807421054751920452236574741057818884013234836203100979827799600160810247331316158395778526672399825345285022354265448309200148499061646963895389809021882271011122139461894752055152259575109833174486319681194512120091191557251330730657078998008726355837530080136124884984653591421093484193603536864991059070580698905967584158647439758240970222584171315816427291655907175638053859993341504219430412176881735372818375738199954072756544414094052363556426280145927864021870475727224746806888308512643121222212028526081843386007829413800409137843170597251792186241120794562381606489883312181264658916384432860068094110119550866466185547176032180803958976186401430379221328523888240778995060455501796110972668788891940249375365278456084105799846473611662935022112846558141901109458911273678547417112125960568308866768154205595651286027370760529639282156191882609084962175030416672564659341783838524469593375166232611881431482732045703305110929607165678239104822059082429249778033375362436899208584974042837944888004537829913007293597482570453150417027211799949497063926191668266581338797442853532529339576073226827506662234179386102609515000196593141664959684998374562960678166091150137907839907687655680697491697972396348726221181259309221522778779429372507793128740031524118931714400701111688170927205565918523764429773200296499425528433075347351530381827131493177120177314554873826586910694661398317022397265971033632506472982218208026054389310822992545052239007772436778866614115232698080575564545954122612379690469017088450126598169278241842091884893153623222078910037328177020094323007761696579873215196118975894871031674031188660606547633184948901800182654804199410754925395632342300388093833448309531008472532788277300666276680116177861697195216482906918858397546622269480564136706445057952412970223425162339040178287206527976751295605365755675049591903209866326324923833472526574552462849479788301185416402622008939458270035258273136903724559276983140699571320051848433744498900000363952684847343671042664615448001915769342455993837985595341120316522861271233984817975433291931015635479919859468274469554000185373099376975269230165238489949719736182168725163444764017581298527247828235653305584829650291433672200992500492123402181921838577099703932248063996768876620196781421288643858730016843654743284078399857728602171122569481366913434648557436933944695150413185279711814346964514592878015694684158834859809194703412562730642129670456444062382801993310813784349929283194034759887269497247420287347779827156407332869292518604563912242808079756470882460339391905621673582335370904644276118607937464939013467364432048589328510855165831876196414105823557751135938987809438581920800740993982476327196347146583363630798179989231729456568832617571052215519828345527016564456850769980755709014035525436472969204721355043919260627326440241694750056696077699270489869315055028774573780775714976977998874386572254565122563849203429965179892430730805978087630682495213766579214477091876587931417255866393417727213972534300795295431244084714078638384693725210820145608565076028311024567204519356064672561026550468620389162748215316293806348278226967924567402667298838753841332967534785174082924984211592588121130062333001419142891112264297065294958877745574675329386008002562368980581829656480321713323977713372384937156677729802235638739907522865604722773758591739695878688465198200400307387181254690677549782132385659684227323486126757116090397484743228654479334780112363862481788078623353414435380999712910728468464956865970000299916249700603691122750322061678107595564198558685513581050691403120623569315728063679808121884161425638788807326254045193950301282551653049377714796913702595595574594207552726284903914667204385959947110776623405061618150990500169742293192600505581994006248097628981065985248346848607195113711223331995033474893547939348216968450724786786913740083465734254383168355264722438188978426558187731396833236337410364046659165257207400430625584740714777666424742808852091296360695212851978096955065098488848305790126462771176058520820453810233671589528562978203483705948938999458573227902811764597429107683285910014472744907214443172053258239143652535354187778694479731889768323539980036435613909036472431313172209738568610619796748626277829731098991053237595768866442559358760443207328365385033424172316497242426828997136865394582910535367760714089703550557520286235186868369257119896288643628124729006514320052340843380957401320755112077369655295409307463087272703759874382650928510037105543671649917768139608321468940363251755621543149425882580959844339239816486173270790280818463358325384016925942389410796460782721536587624840633461344415976860197809106536669021425332377580632253086161993810753791533457391925208036361588156411896939482856670155280294191250778980956907538663210199511126121128737981578349878058841922498629333530656215097753898560336891805601526469994071213650268584476464154903994258661317525144743230070841181486925562758112647474417797067958649737779755463608276940631549487903614840828024439424628171280214535937645181200510680549461374728017485216136673660526150509687067843298497114291591914125740498275942414038417012256983652165299417796884693547759195983520249322566703510774191919032682162411755542544059960657072595532734423810755217236278292596093851819366105976523866132369681255799599054009502631576965057318561786165384675634357946395310983795676730856925522710790767513530631601111032896907232740769830328514392342489949212566369477056974392104249923559070586957928980369255673679674829488596486512843903833489528711198519817140076641298103416331521503095636427959041740597125211161482140977336777267368346180889125404129372439974391849415620942256122977416699711029861709771527080478861933823375264658008241359238719266177666236684550299166622999221498002277283441369846240958466909884975427595018826746043958127932453082267347898163660867405807568311781986997941029161870401559617492191856213764697588031958082572951443104952177215622661332356850438732478633094854647673124238362038447428354693991084350881424321256159396894904519187622090828910266488513183926218755729519268283684385616183189376421546412186675553033127580328877277519192443266066020098544151224277843886626259292711171372169906525114466398082725887678055660436479714749722848358370424164610046740671868262251474669485037390112031940960687070448557864157532432722425333898641186066893798117025488259569213698131270458052469876721964633415341136062941311750691485654475168626835591718122395404703678590829146159600326639280495437151988332547108388585184039857479611403238657299445188396993138193664205528730460698883813785396396513815595940103901339367163844517659733080600659348751031769571966766683176208873376881434761607712737010854122436578893901851778317483157583103822709868022347186071777074388996863334931518635742215349160797629005677496822251590355591647433578791415010989210892045929130911746105373650658226552099530920000275519571573194833598689987616516800597405014713777434950474331942884586676942696486246550662717866674565985252178115350939051824410704374177770399587190382665610339200209947999101849729821792606243175046131319565239602347558639488289852070177932452686922285901550404290051450741120034011956295671874826366624069114853858314817485074061733732656199420388270170914442204227424568175948990530554407668714891048712702873881072041024314902367419571963266186933103242590435918118682764360378640708946295764268362826080863521772211932302957917834976567200707501028866916911280122355086839191217546901628536498561967106464759313400579290721192348922977759449825983464589011185640686890233024982912694199059334115561739881166652676682194417792369208225989992888904211704214575045254441087772377491431349613746144982809948565204724432170041842168076035731113956406327352586964940007272291580767084905102446860457441058339035973329699080510267139755676985229584031170450896015665234103206634232829207877016977027233309865334384122721626541370491107428018887434058973346395720670073454912528916587912159766241130432058607356482803747084255633347546035172014369724143291749257990845882274563520919865287781945141895017458201804858734277342196099077586112968537230919037702366995369543684733905698040619254161923783553660859014170612016201636140746195325412059980853906901852770286979702683091575988286708613989105523224277313888984137532614443606213800162859262705244046947506854298878457206027093729471866832501627152364444675901654454995353904701970399314094340990598877034269209253481182196728534046720721636147360140911936279628547057540760054276884991303336378561109375034851199541827491036792621415650610663058111323903617205549991560525752754093605344024513685464761754651915864797248190082203212731951473749455091466504339304970205182220431451314968863125732053616877507670044117687453255681953551564521488698636896307063440767885675758512519861072684958377499529712611230705566487104430234278026737536616780839488499443093723752512418127453206889257800864541212242619005515879998601738175922032693335784365502562224100672977814663002867244092818953413985877558534903348174643680555510131688400110185683924945931743799002934441906738630255774793047823913725654503331998927909345283591019653206362469703551273871496672267551948038992806022679433266425650851218935245668466344932630640780073331907364279689092451187743969627646444465274669864125965445055911151584917889283486503937420743212221014281358034258195039863106187086197401194327016058517915634995938602704856642659682562373838395551103559011899886972278482191520508039221498921344394124738668665501686729391719951628103572273763857933668980580943211713927525828065772931111525987096352055605749349476457785888883581669594234050026860654532018550379927466609424759512802514081313783999482684698862854051345365313272849468700761757839851965347882570990792924270000391781893334343083609594178979927836072154484248288352108161455229917253079822763485509649319165146854016216845890803514428146175020810341398984949482318145261068087787304982239899417805365322984449191192058999315949926197478712656481923235232742269097908061996176292610916150275506290259619672727987269746793905798446476715562415187027610495501998058653043428185137638359140912884911364618373292182116634907602154013960200509826493140938439568906026312451565647365915401571405075064712890915041550874695940170029986200868473254730526749220751789576192522555343467222713889521618181088568051676632661157645206286569066174132250757762100875178873504833684231867495669019301266534492297492424460293655468570944513646851112878697769868163701783815027026126181842933239221534531997437150780512427609659394234113698985623047309187350647682773756001944420385028194095944691505581900302571357129443752565252616602248105069641390237441814648055227593231081497642107625102830458456679853776342099703814128164611235229295883214676179974891652430786262340897073950448225863685582410132668797112692676459955170585795336435996516523253941589179252588009274529857427105262902636591541123130518166094120120041562192186843263667209796332875073048092472775756904833570206863275733873689419347233849102885253693319491257069869781803150630819989087622702671447752464686314320068427547702402089515384633886034527606599282226035477971563160937617342802047720073946014071896374343118319960641944318662212500701604423895221648123857306709517355104169083639099434703115445366352203559856692528225737295983068448182016939459919780667549232566803087067066050487850858021368498011278339445188654492682007418960753720686856988381226412311977382297812630227740369645959135606117555304755924720658850089425427915568698654679059350681902692621814381019120133318264012886793106357301291322960927873648125644537549856004837786239124994016796398238735882355837211659777154434219414979128386668431229790267774837370979933596290698711702000944657925663988403118017951034019973371480439210321766165092912730473064998182445212551244413441951344236421093211124619132819374280643040025962111334571746495682598791859130332179654890429686674454691164635263033636695996006657106723491149330338918814548143428386118243934398498986855038706707249693447153793817822693104789892896071054645913556116613423411520530361911070089672846256124243618010852016604790591921948094892514317480157524259477656496241874839931273625497148963961080567355886570467898873555804765408629649843076631995813600895416267431525140399933327130302196872949025609766745789255387539628119051360701246004333178750665244103311343931295813774890579276110878490283851195268561925564600197446776945608648781172027892327625857426596312656646420892194636933300610102752715755779671203139632373571994475514206002438660967171864396016025393678107689095637825228717906999323506295599929240060503783428329853353023718991103468969859804627021188610434376875552731644021174325804020679860615380944859270319388573008221626645717187134860385085184509591116000941588161227021922878820452023046803086476776234139683409744605145244045228654473040305406357144317387767033645781588217204101255491259451289555765996347903941143998993922761178556587055349073535401660841035087717248990788094466377883401367595925762704267222144036000063874420439211242260401672174129573864165946496772816640471479002293020665220620772726220029074322935210711486336073160360922236391286813578675187563667794876492971582487148080792821936197673109867882857089897804290936153635731316643693459497238927800289288667034050305363029528072546629676480149124148095659808341819885461863806595304064080187516970910548097188181723490923017673280559964361588713195216174084972723414730473526254102737294519784962695688313644377907419571817947642630653711236992418184913310920620530900092222082268448262741586878474038012210473677049207243186934987928372040301898816347258309551854545030109980136933198919571553868214895525711573669535698132803483179150456935919060969589852281259706325837317877416886128581019062047920681954267354266965651699113836873279237578112667875275553976074868292067203943937166047391162313297105138138140358071081612034140954677295349734949083775192216779964741913356359640037078014635996185868647150663281070008880245975226936607498402177831431403393507278214256337601728863768118291638322107885663393443135613064174638143955604354966228009874694443643762809140304245786108072143703269509985219253681757245407046002252499340135034187122753658577283649300932240518955846210921557823964457318440837210840402779924801177927913778765656297215290936025282950214263381497964933468698338941465867417508882399986994810922420054438400330187939226336785237592128057150876857164744600266485308664215537875447118351141606824658223727628843042027350916276185985547634516752252238423027833327735090431120974576865577932975559126637219045920799139038874091705519881927781078891998590694258064972024626660692527404876044222269215718623034684636123555823756425223152032280604540313847327340018366244364405823127908935521024054395997761276447391734837194945469340629076496931350043051312846760966665142462568239542817578353852190200623804370534410263618299485886398295727889707295728407055414390471936085625506853438740301042226499951721107377596671053682459850729064169250081759563883623377622308495271526463576158981658372857712805565213504720066193475196230654848658396348307104202398978422612280892232972224527723771407963654989377413307206550667949007355574840034393668078546199374926105565939890840444491862697347156352765024300210376425997608447868796242002324400595502580967632534639100275433759577309859924555598136726758230028976118964214427019157389638685652146190979293173103953582218588921349250457559040256126457460936772388428224813420477945951000427719373816586731738300877192631390769501252173684306074763213494520929858028936234819734921988484925729895092571594890829340472795730779978682154301531501684364481007774791089296801976354516431004846076823595526788784761736306567281233768084773853806466800507235810362812004687025057792867507447153504195765763234814776282396917774484670573176437748347173062763330172630147761118679223398212652234312152485503993845811746718532531191655019378645970885098205611808427132165040831780349616446621774709147622414356900706780209289811805876911051184092267412577946523837978284169624131707721039868263164559219373299876356650710879751623393984750549425632250841884452834709504902638047635825125507767971745268715910083134422423834682434572208224465428375686025199693021805564714633200061739111899218198102690770283619591459593888073850947052839921372543302450978804095701893185954806787094073781518475140983535747035055477533333882223264380493918824037253734626924718947108822400911082290307128366485350177883152930479796142059674529055992509778062464872833458187192274788891387521706104572191612650053757998337716209697355988517883969745093231140990969421380043110645362422837229864387987004321415477756881626580889158600568161141253118211737775652548393243735369222413378985504274469532278618184664177261028435197076782099039033105626889089840924947572062651648487259924496043046494513875243399263158472230711348946290535726853028372054280551991067685271852419158844207644748398055110124490006604376221541283240632052801895903995584854335999669175586153398943143579329028804441243701420307149222093912444670867968036831056216699548875688275129373204406810093081251000199218609135305878637694515898188047910774188480108317705766721965381574805188947724868626581577851504740238250117499465735230272578842312659674238418446337170029225037858083926658594250353855909821164343792809803574528150189021429787354545366743693919647374033031742526146130494973670080588344805255832826163954039030425447093971294456142446853577855421930865190249150498270922353706648945023497543066488299791354515140463041733369995451415100228096072043975176013795919979134767561678045766382897933668037358564040061945479359809676483230389180953207051106426674205117551913705712784560501912519722093210247292283549412445272779855185196016148053994486606959889390569428437123287568744874125198223887860541105280377924345218069732443356994788260252656861726528445118180098328165069057346535447325511027360165192747117508453982960494417491419049315155650340471081862151510486495899121560141892613180694017172004899233569969254365744521502737979363749387626710299898984376457897396191609095272883657064700481300795164201725964114601244782247935694563912982941662056871826677828751212093351603852781952096549542587842466419805879869978734420302038806011112817324327191993815561093156070527550235941512897195979750264013515908685291506464814011959827397988705495821328518502613409435330307960292470452748150669769070983030549798199644662232855703810424692151051571495655203836178901108310851397817761694099284032022887050878755013774587567151165053154412878372170474063372338566265772902328033710026851184712201562111021598088253356704497953827509449520091733390808912381084675529107740353908731416170167323040358462420733104697006831134738066329100580446083683384163442339439847749224462178634531979802082998927622212797098770547295990000788302643286991151038057742608427436699805626505736716877416338777055729012251651478885854656958564333800528049458133395313733211532878440922528824503460966456928067015551182538754599081157964164899162942236944248400816322608630642215142603209796564296793083625364811101815074289854793932144767624092410279139995864164461637729823539087161184254743578999264472028853158396377299536507641414324178250372539835876545269904470168857284461465953460329507594634444400005227226100741813310842119108932095807523575920513088860078136314495259134274473814755126752060365611512952392618263872673450716590328183689435478175542336016628235341361943940766648675158709877263935319686499197368929141341505276065090325785258071753330966369334493313056690429910948800619711022408862368712791001539083883389310500895615693773279128666795712900524547934750234422913375905594683330869389036685808100097639378766705593931773985184278742402685322329316915124135110468545670516089098836054922054968612953685976489366401307695057402571255286688771998842714857146886455823346049812123032504491569385700793214999951205096101124722347897655021903805180056089773894220349227890407839727286213986937977473912659736041854003980598788398564049832810907820976228183429780636960914796546961356437574451423942220440638916124771908115402576306050595666534264157702202004610315739659988012601270735377726464689703845494442183888137145237187723995853324885986648396037050645693949254224237589844416304996595381621572867127302633238751641653741656255037975370552815290187584277069696027430614605813703234117492705379234940249062959787522691365878700810680751862179056401386098177086803122290870262313987600036490735318110751725223241084144583947535572696464381381620455438624076748958710709161630042680950948390461175562872576332559945004008505517252924592118756502816420947320771424426417179453540039957679381650287803535877052992641678080676652487359932917213435513224295130580146297876061436214921476873810238406811263871818436132824845287907984457506946444234957153878789524352995543243947773599217096837841151427980224312984619421329814479859458168938066136436151277919641487501181192288154453427956038113866418971258475063990487573089960821812891706084527285848371075678004741877946361764734187438172676502860965174815100048185873459572394093286303930563939504712106239972739536235720188779922222675667888549616229058076640664714380534149295530190461268372446817109829333639170602078737358620201516036081735154255431169146889813903101599142440719760407236948882142378340648046284664312588364031212200032392905488169526119411112767289354802875119656862205739435469039309660214979244972132545235073177978495431919055794390398628588653232197685710117029585461990230107718828980414826162195251601935747116520180691105700276235440006815568607204695082006240395463517232388014233689701188414262319506990827395741280023991405120451031842662839400455405951513824702898751625255573846029341824796202339221776818048730077754216277402964515440260424278136299657419002464697534225972010551798758379582489579062605056474472417424079399134723309077017822536475445709795555944682000589248470494795203874339056201983906451265005816708067644416490594190196689079848327232273316068999185474458394942293524131418829686206659345483202910116530909221846935167944398127962812548128235807894003138126634984245788990464473175534588222184763251061583050451763807779766283263417019475060936653562606315248734896612115357708094116236701044658435325070340961377625034995106602968889085095569488615026965030882335380384782901239020395149382646669470540799106660061797181215594615974609730418781131737516320738658157549889962922214283402104139581202186387485893603925034428161782311530192376712067962116973962282381118637247781406796226601922740444056212887474880329382956311348163870324186485484995107325590528953180332284836239442873358030537631402556211758711297503220044600093176141226197265111509919936394682764466874581019246640785415424703039013737099166219933375174199788527011727354550645479178146495964047318380983321268741275159381391723315041882899219101907998347815497124474625370672934598457546960730523932984732026528331825632030933214807983773690894825804206868141934858037516428011857431787050189862732925570198560508263024473774097712022274966942688021939288570212568127457930952844988069764738036236821847416244045965867615497453245730600902276919290480456151311634300361162773564738826231354477237584266722157338442487499624727206527993870769475392782098833423674501707835390799902319917257802560755218198979734641756142302947373413985006589104216640533664639798267027250690172175361279985954301959195923324650899408354414099536900644998683328022542454795195675987442135683760337957384468410349312699375560097581965329431788259681956230120525749318395597847568437722615961283477725017065100330847450253149624632368824592505471137707823523655874032358507209841268234228308017447276094940908572306015204522447344901865986184931089646127542897532682815319674852001736007112092038366372773652007156165802161157287484971454897386176167107570344524338707094820740809632326330793350884280762356547936036686213453134670398735842168433936161637766003058873952763936699348477555428398249878100484981170520951288905784522197026049545095084869220473012601339169418840103207756167587760253212150946030190388180416329314598803839096931056191414373118445238946661177750784411803183089032905661259336269226466853373418917794286511388669237558440258545812910694629051351151426211047581180814974824517780173237070719572694641183707448292970183472518775030533083850866746621752959117686813808312029266023068644837869194435791101134983181861937831565004979466732198523638520983591569369156657724812175097518133639554156464982756978098891152084463621227463454006823876637921930257919450944394994828771454231002748308481504327836176880564738837475358694089036820966256887521491482077501839942211354920069108150642426934622098559225201628175488666028634871506618667916086330142292292267275610444413015917418642679746175028445591869759965916169754468511164191146454845611592889595021756489270926116594476959970724187191875805367127482942506922266627594017706282379936415923280792026583805761743392011555772074069418015888246633730947227878374629544610325915168187386346294403788450689855044199455965797881693220487208004876185541721763446402805069837902031585717636196869788227736962179044865280900298843122905054689101042915523976679489240602875497060783439110007959815946732771096051737581470192351767391171066017228577923749765682605471514637558029151919046678109725773691886925396541702418129563135608631733050967237136056217945009838738916642169792682190989308651016107869875401258761365392643886479649680839225097329584476021478855557434045923852135493402667636811854592085933698993813027207557336370381979938454941530435413444789624575086471133657987357349226101497499465437248696553179038182177837464261093541050972094729941987578009600308312055423153556621976025387877421876898124733606870059202055329444875084145244703028336651604843636797820273879397049921192293354524161018230254849669792545266609321918307791599015540077087121391850215681027892781752659535373483801760738601684357174881789409481788526766790408296732818284804887731956056636833673920894472982105114550459373202505524777077495044901587186133892427520054203125097238643264480677343441149326946618677179230425826375157695715729156670769300183732302262773259295849323834094766524395590545694149655734188749878927438735937855736050704552339509753085128362874850703468759651424412430565815757423380709512503527011840941701283835729527904877435253240447867204103846558226789314007970420592707063452734389962728164377374135679832158994295397985373255287744906252752182713949986535146698176525732064184024315140457331731576936045533055002397889672225178746042326875299173267818979462037571790578646064032906816873504104124278388341096952490661571006604452876346136564781204751319244804337218560963946120032638007432887920997322141055411718352257321357197750452450044798858178768476692717572741632803981451024066063388386139497688709303621376869286067503493212440556001970949609108644121656630514601305322622515589295890715777625772575516889966041451210095985883008619451909466303876042069551350016618742331981809828405866072786941428476291701156463442504893292467730640546935805875063928630822909389689334470525415364108708671428946391635021863466043706242000408904308692088124509725969340575189307258713972524025073548903639772141611264564267882054687484704894434879161186674184641312968894905580726449269412379664406348977980893138543759819507937651690986530233021614846669231452306784289964645607981193049194907569758903817164710724802148001012518660158135694435637917262291514193521835268553321935979710810894697840300261623034426641401367202414394783917364701917829089003757484753574833719877342101702778246834347567835173744078977512315332517249529995702500794439944698026383070201151491023468760241410624111629749245367268288456830873235315277672520016854463570515507706359201659497379315251293738146190254641059535143457619358164023775536949201343267283940417935816717171177691313874173320173297197548205371828262526508243483219567033658525376252663126088690912693473103144124356280138517973109404677263703999745762619538906577327869865087970010487517094987504701597922086352030735164147405254194828084325362407710712002212547207861102698575297963256076144368077379331801577908144221954864151043551266005701498902959560763666980174412131195677430404413473483073435301403058266544051723026085870986679929653152249575555187390769489656839145682251118014991055158909704613622114948147533688338682710438056445243121183934474750474227171925116080353736936500959518299875970992202899837587252497590721469374703033693806467768007885315504748062415816625464005032620363290149342698812110122810557766497075857371829706160316620542549180249853776351505853337896221075809803317652581599657388768369813303841021504619839825675581892929486245728413800936169889915112468224868982952687429909037100434155013735701473244141075206508218333414863379148722486385010218061937429760404409691486578900241767540586436060677225500912223152284906965953659898985344385025273920879259435161630227121500230654605158029804629848624408334450468524883837091928230038821037284869517503257361450870760141816510823617730670319040602715212568959940813800229570548649469092625707677173305463918236939249585553167064646981743068164574907457778780341792178568296309018158290680195676515024006284523618758213638182672030422185385044351702136152710342708120375784714247267824597192378983859259903318052240949425586071919225254775994656409062310506606433809679727546867091586786424066554443508522396716430444267433593416398119045342222641816294289866771012966986023600754826981515037174532005666559225261764876506678630842988947668079869652581623860121443233285505940709815771270553626510151734917481342477440951521391106434179797740999961977073829940603202381726016489561258601374155576492226462676786876626350276726351350630390874770090087614962892622320454326566282170602321400425429651348711416839243032231099129392327395430707207944201744603368745221079577897767932496533113096855666533862794566180653135716692679789408244460433716176139654352971428543208190791163617546650565023575430160863025525888037145419111017147532232957929577965931823676757695633741064410792380097067184844479022546148171484082813300383998052426556988489909982898641520115438329197416684833602227144048449091790728606381253661736890571145885565987551885155594732811475374307365300032227185571136583489599349325532222878874062547267915136511076689857452111173131837445603032817536400914223370692439836673326336265780891444258616015065481673650809305996206023025009893042777434535042317104149427225466380879309698630019420054284889810459478894801811825658749006706990419591340247202232960099121507766841639607744115521170656656686131866755119419246518008795084125210922342114619431040183625008577127801951102886685633076206504894339375620988214723135993694787737332684313461395759381476574254984189787775516128828835079316045491056986347281936004118367501799876009549009652836221040482012680652471200326296896507083756105716641154272188748787643854113802057391068606194655316460218907954891811349850558203922854716755251369906168728082888470554109417289563313390765325495395213491914205229277028497786214298854053056384199060499849297966562066367533643847881702158857739058831465849604033494039852445742273861396505672603897973506270214694039850117840061474856054404600433080364365028588839277223035394110902019398626270775881143889277305543886253155044831979851220957708374112070805815155899186810500881657867874640764702502567013878742990883779247617481738694742570182294322317935437021068498837693609336850359551016188076189070821717543032350641312986222426642918394389518787837058763844914055737015736176324264626197084796065794889192181126607837167874299325778646456681990869484136672184609347405074548235077632041415934339051378834079623397482231494551235499626209667030422489227601533594798857817882815084633699254547090713547166748944398056621896344518141357938634682024054331499758198887614232146502330655827587062669180344441038414550427922431679668555841660665158310488084921721134899952938148919157908069616782110967124713199451931119101341424654802148065705806268672312924441378533762161110000924113748549619567059366920116323726133378845749612066117227134914224595824874812690714108865925943294590148407696500225269038079318874068531475675572730275042149832557183329005790395986482847041958482023122401207792759248724580637804507959238062265797788219429072556044079780837245817695137108533341582126591131691446311128832251137837360139761037736853817613189649348265553135507297986034721282026038736325586219319331040324164031845619832918144853525618120494504904124327630536810925957764569153230718731033312816251398105006056747511001474377941731334315730552313352253093779577168926434832302977320722933964972367321861974874053848655203666725508108697820429444895201894951464543795904503484754798457047518381573277267162687462070986883832470912436575298439344116213192655723519769700751050653403980795296501899643515644781791576679841755538121516452983408507510433613784406071182969841498715791431942980116570133657497662230200556816138525726916502259721193155774784083709058825770856246381842258522538464242216698825237996490454517144570196593476191258286407896364344513196807848469782345030769852281751680374875508402590277546985924443844790858682217427953458856927167398350928692569613318137686532266177062913775002590646019096052861092239093230768656563411019116869345273341706703085408045538689640522330551768055910599667449580059130246517061007919834623176805422977882948763667419582624994197725385152891870704254320445466870052130766764860211892034453923969859005606702660702450728531995483897220889331178480276414840234019204753788958645115897716441589955777631528086898909520186261931773027872059624509639916443348157975239423410029748574043737677222607693959468994679560876617705107343380566324057755576365006010486500235881313013034199565482041920636761109874086888323115887860548955497275008525836858749868141739565644723633126790427506708917173886819064585401473141931401947296109008456414914859932600624325903938557434149989119840636127428526444276656825943562105640529412382591595914581201658119566415152774961608976560375969700186739089786129862000538090262200097770728789781195231911817577160728134048792994838043210351656607571043460714038833959170311080964825679287509235168130001749591294970849594378939868492610583625289605951491326202747502815905065796431632931327937233126654393761121119737182371808128119765482335208853215407745177145032811060055105605744394906493597183958747704360377028144464193519578856948839607455486615280953760287807033689280388924571053254444108211018849412969232854813549665739820075348073614355296886266786764024388791289276905502303399688536823358788739166860055121027282873242417231620829119741840456498147863644995774311675676228441036098605943569786883121719379868861756062307405259810575632854299119437059303716732035485661863387138817218920665444128093784414227001839102228526082721517177695031098068153411528481960501321676787990017088706270353522068815776269059138922932134103687095443129769857089551367935747681302681851929607902285025003021765493492372228825339183912482373692161895041209128230348202753863520568068933985010354843240542543265213978804142481314441747841188732216583457451963250618051311971939248491589113923087948243515814142036644148271304941241022742575132613539940724992810842523560720083794172073926248888251131565628032295966245777438951380851365286790914975850002713090707583798307264699749556643217361290476233233246651945097881060329716921052398007088049545789044697873213627807328545599337129221053900861189796422500634575504778744674610860399128698917468104909510804628112753777071259246819085919159715526024708381748800876414856306355870118629702889360033782524358316621129563272815997944418057539176552905883988151174885230583024403687804173878341453865088319120388746920247607425156894852153893307620087790097979789051069595230240190248741042284943628045570793381603814393866656280013437160163904112605280923323227512708635947262348327820035427642936548145955231905590271712165854745803324899603845438372030311338106443956885128571589299491135202186601539839284726995513051042105698853750888434461252944973282593507420610571183955345335218850440557564656134990783958823093792741314447693786714592381975159010254797321829680738409383677911179108154894116311668743678622758241906655326319498159478288961543513073789719866905476452117706096373738195137058005613529423233416245174813166690481231580412619885288186967665862315956789038548806879468645405471291581895018079751046076517867135505865236312525882626106502958487702160906236900423652289358216876459496039963737226649710013940989429946424512554280177022049388477891367593030430494132636496122441994353072794704301520812177972031029851034438479576953984264031494942126918688047169571209884698845412918598384716075382750947843586096916859976065167111565740097782741559869382820954835350837413537577163001623237845768225709379641254251458722165212373515284986908755292529904448842752007316954990725042824385287330136199003553197409040613936494788518338572763914746010362413365599629427955918180715634243868691085646702954550911904827546892163264549616836347156927675337541716062968800657343598744755501740878600598295990535458235585624427293715996644996457823166344520482141091766108467007152468309287069537833515924241214225898034027710549864321967564279318385556154021580031684683872456585219933194817504785834896923930094946911210875313064455363118168482696932540583504287560291796416261287364802910846198171994409986755478709174717982751320345576625990055636782994726087044596634134728215613609019091161231692263261325994686568014268221298401113283923453518950176951016832839104871975650788425925191431028345938423738940765897505017084160429053065844865949873190446902854241595096781950872287052018621632698550494672232282014015958953377687175170061785689477757569712068288021148821313824247764222195372858447069860550954726159410237311213785938382109959380260708340446839168592610589722178724821935827820345603374809956295037056588565272279859024454052851323961631378538430280099410825522480027462058815344237158504986968961842005196669105988988762952842235300634109452804358589109200547558460995583832839751695071110596429184253603315481881578333076226184700927596269450668843452098394233777388011286108434403863459172106241153426296761437317497391124525213734730170418223252005741383473172270272386187936477987894876168504747891673359721577438627248832774481544213418624081968211197091027619532013915237209364380272084999450846132107331529130796931481313330287041411035732568825027508768639502637809996492021043581770241779559148428463527517759131958836544422591726369976074285234546981803371642760644060211934069284497051660812160507185804540011742040614543412622242297651078121802396366710597084828956674477024614655709777034429847202457849640786673370739590968019033035852322430267807975953560596261746402963367899484340455157345962554162406942196536986249381100146029015042285610458294851840471348331673169101188692137502492589956479514524233055752551279064019606595289160049749682480520330583543722192248687484431844745106716304954992106301040357987456465769311970689352093337407600012593170547613287275633490123564771995597249515627589203092184023301012890997121603085369322429475325691529571078463517921256105376244871248365326906652851657402912115944711729191421985795503937099286679198755454304554556742053457252202599226696166322000594820695787700868504831649170946874620386593881464939640294595527856949422043804741451420566164393722987988094727619240458155530500255297140484052475603731645286875281004166129453259824847560930885744161321434425975948830961285527099975041635209329760861551453440185725786572487067119807753428943812550538557226360207590087113523597965911631598297770993884545911742828535933788676903754791637949532906050153748627762522704939185983506577106717681911810897883049797757249470115488673323097726555127959197506203304530807043619814574143066065563398759461583946287242475289842482134592890688880501552378328155083736230945571341258391986997861302337728676760409524128781889200185068541805717851407706901877122846387890380377251015372832307091481274612780706898070041823177274538259910187355654828802454201977740318575014744802271776247811162267156849406525996219740291504601324005489494317302219449531107767137818034877369588889584142230989334275983111607251244406791165356423538952387981743648923453835910725375715702754223708386860143131155530197116079859478189454767705370850253866368779636437705980143698824734925700920135159191282967701537201618499402843183252786374804170038900156322745225659721794935070259422957237153457852975555453816036700085858271319055196571993871884053704382296951245403811572164776904576246219498393485901832245636729247641031380174265964420629315924600605076510581268349061371150765826439909888117010703023184087923073867527577523398181768264819915175345553729907782821074566882783913261389054151280913404518682076650902620346671678077575942138255776005010862089414923102046854195807797705889379141364819044978455950229290403440811677974091216343664120881593998916714662035058096061944073160203379486062658653927028638865687974418101310585729872046752526422020083443784936282779444635637577761522589894694526832555078373199841518859357844098626452343643532164939907255485550181553725572179634290871636345724330810236931200915408323429101618869702128952470975253827694593626134507298222906563126643692680205111355311178505773143364766447597284857248612308384738570021790973031459725526327916534987112147310643555131759864332476563962921823317395860226869461283913182057223069836570332678400408938492075640480095661402944010348632173002720746255870248956405021952027219579755675270552409686575854158143586406042283172403243224059354501005337477699740636801897754586137908645302650317354808741672318042227081676368611651978935391881704603790156947802965013589715865824685405706624127892847981126301128283747185649799692974813715101239198440028983019458242390499924718192934261029445366377927233732213897680148992983694283621060402628104328752022034545243057998996329890094025336180054916388751045528633224028261469670947569786000431046915548339448427144376947511915695632993140201200379832244317386958432112883712408648898649582155302275865397012749602583658797714715446042327586810976970235093689072927293990296039913463371349672046566220930257746780927526642194696299685510574178658374978214401938083856152425098073663420007168910593152769383362339815823464037595742010395974501416454052866180850477218259076395963413682590261504532940322112953400070422886475276487167088240351378459817569211559463934996632922093646227678169969446301126366907879816213555733421020708254786112244968988972978882927809228090741606609031072602697687811852116422680587937011382671939836806951013600912442165257652833805977805677141031299038104421342253519241181432977704015295387941194250183055438951675614285223498425206194746402973903817773460942646778629819526630238717697971285283438067545446803788161431418318354359889597848623207797283267150872605195682947751618095025431689302062580015196823104238568464449166562827185667169255538124170596773057678766291146913925005956447914246804612335246666498819895037389403102802648989572675633783626481921856060517651021410064914956618646042348453382822211415703118964032154737476903953147032825708979963631244227110659542587695853634805270979445261322452960843304572450504325882131668890432066524576611796365740647883208440812013432843014524488953411950544056121571397011065265812340179951268741135433247448695735597577236194396807573124231494833483322446333073788727535907802176544067376805491213693818037539164635065117229875079597252726132038667171308638004614376772686421833594139486524187396068648563124223790533388761593938453340534368290916499276792450897728346437383173979313448118403730320336691506474752999241905791664256659525715823559179230756716618976855529236140104198713179145304800807322923550342171989634792924045378816735085051033494663833569683827028175750748715200387698153820977175368791413510992481104515073209539937502692484796050278445321073339148943160894682099152315586948079589849935179308362695475805507194242430835835355313832378467571412524661639333638303091171522518858412625329711603732935429062662674132852914696894335725666405964996863501075153654258765792871121474600765467839246252350919010078607193396813234008871177958894928652422785209211563807412329964068032163305484790710886567166552721847810755753339647736163379485518213082102044566611173742558439734736387747529744170005265484910965151832851162180299983587338127417790153552062715766713123889499009301517061060426135926002139383963017912230784421108955689101927698314189816590502156046689304492995721695663308841509052144444112756001641171419788666589816863866351800041220532573025699511870819890874356379286194675588505944230166219331868048501583555649535894371983398704021607187548140556361997853974280283996920507694563509361999274360859457009600668440556439800702652368544344785053136683746324935180681057599421290468887992402436743678219543334638597532866939265938485793303903350626030361885530574713234319244785093866732691624451040041334437486631605195729931291853622999680328992885491571333308905218030663337626232627027651574563887002429573113393076258649077644812298966437997557397714732515676951576318391002001059989739517892668316533993067960061303590361888561750100492960635960287141483480594455399797294243652426813035968538345239290595734206840535723136109494626699827519990520680374338226236401162518808987279811955862249708229595869350000054194426585240720683480515186584334403553518400465594153085782610625852328278721384484388813722857544411089459124820076206194079778360183590820933222259075706417373837109590437311234691803728256485427146030264630741892742705978443550840109822279307955463428073842478226644780844794734402759730034286216880854253085816224118772918343433276650297989434115447827267982960029817413454544439735468691008564976532745264607862379624584196286644563581744381000403248764147038133178346928040228706887712731746526680468483931171278036002562518406908990457273060185097234576712928767748396387590818745241605796878530554354169846868000364987593800890233040086534864444940199516075618357229013866377420854649472972650454580807422969294847947932793886849831862129451199886923739299041334370527164042828755728242435196497552446280934159854514029396103005525097662882055301820059434463743022000926159596184897322251414278604466143360115924743298798279975612492664536799067976155192490999801944699909103897227074585638714239850170410463243478056626890859035207570312643724755733879178929689078098456211574818178952727779089791156341045885873983124510690499505505603075108754694396551038115489208880813272982249362041225878646505171650073758986385640719321799486774981932534851942249273222099641265191547273712568987567899032708659445786127065181567937409959019508987617949663964590434866784357561793830712654825610183772664428033391665629223316150187347938481466999141712605581435257592013239530483434381816336055670176853365820685241178046234926581631252480111083854621716840272693167210486395740006955018538672434222605734602539605559494549215554205393020455260918390299340098584385326590472129422851272856299429137049003747410213666313179115658191474636111476684934110622028963668803889765797674912942622384033521404806049098618104795770565585809523047496124239494791334767085654221573348868704347381742490067587159466647522060869717236154061531589124332349309999076236659254532334903666327070053164034182012851331351665072743989548438874643922471677659304196043143177607053828285505272737157986756002760820482692358975695346763146493280469164518999376401016290889064914554199296728354669832412124273595869373093078770306361932681292713682348750815421445569436575964370405096589556853781815123144825237929224529326220237399055936474542613612284152610617658119026524341681295335913855618073313221071811044702347771253883049099854073207149381797587941980654513471082889846130871198044325633821428300606513743163323288059303018447557715250777541213786974064054165169664004035107911501336586439983887261272394070819404563375033740043432846775543841884018823076954907190496833101311504717256020778672328693583300014115808734857491000428222529370687995299426358324245429763025024312482080723705003778000838889147791899554835332228450119441021901985139285162488411930083091736800505182344139530515759996053584816927953806998107335258725083522404049220625526558511552428025604502603342746680531037277041566315411038226403324514888558725160584733939364452578600056176221356127458871536313114006305239213789492812830315102126999426740785652984315920397576376365122970710851390458104747723374331509622139612841349560457312464856658550425515956886814844773595124173821105422278959431333694869979538832668767208151766469889109314657453026794291190499079759465778122770891635068600861286397321123045830985405566944102063938120248516660329614464364964392123660241586131212495963485362826287407507961956274873444703229907514625570875984016961421537400957650125551952459817130386620707212853812969077243500129456559204576457216491272005849128425810594430810614080537103924857821126702043338283714434529902138573771364833186416116346958130781170093082253676936656971273274855589841722076158698879093464575468494685289990483151145558479123332924546750408427465264346692983629471644058401641369550797327888851927020577273188311717514279335439072684246030455468743794673802437540616572924837878775117408678403791071452308279756423511321564590667710277394649719965826571375872661319671325738313000734487813242963619622404145665614391639007009213441551778026264137909321907879781754399145144340905755594220631296507076059950492163345630961400329481988115707610132444197364535306326390308044584580896591977705592639441642213077174615145128952064482565588554083730247324235545838352186773638780620777242808625689598849309979820300663458463474712795266695026146159321760827602762115569633795665816767043796137379302326768396145276051836230764624318150375072903166095006884188405954821373060054149446360612484770107140399597477576394389017557859504374622469526155170310105294909908404998756638342066478339279582644733288105747632427267666272172281736441336301825858506111135564349675041517743865369960713552881698565480086464051324084855997513946703944120881972988612634387556234037484576377814819781555202331608164799965869264207673653757649561202625245869457589713608580331251752923207126161910365084857952258156672295874425162455032953955045862401210117203635219286485363104363751100740241260027748538283865259908135894239547354385386663943882980142885835721403872005707159348701251121073640344033079729941230307380491831986094950034778336242806200915474065983829314609074677629510019170674269864928589578003295783971720697898989800874806149503989007418245494335606890176130655385017073177823959891982141246897475413466701123691551186159520837185934659495541015413339777030695434447145561104331051333735012794411035670573039371845264670215076706232566596702456998673982682671291338823038871562987759696478297010224887988512895416180332431570792141463809503501026244322178516773697682836909690514824960412374404633483568517955964452920216074416427532810388829187415612751555861542051062117224807424661238240700816748795741824830932667966883253310784009322550600593653254715704420510761452855110960618800258994846114638409793224759288634322588073415903804880687921656407063302722610200176056635195599552679680125472778734415395976756206916171418247101147733756191476332297180490679020934059215334157891200284376315829916976184799378316190100701699620994401227591249881848866808458522307303132229493934896560703927876751190355086292175607788614954740567790318151521549679831833299364713428090817577667166846558940051839464712212101380455165624855101302938554593154053084340021049517026884861880926904576996193733468389290586839266182289657395723116568113254485022737283524286027454968651667734398255211051188176943071290821869982725254286673122650182093794491985185295231323356588640213549514441541470376882761629343069612116811213920025041735729171442438150926276378936344188269843607451089877071954848205217419737578352639390360806592162703380177826569741103864250883304488223016845291679808730690581778011256423429722870448967808876483257799973921185361341221453996481669807941778949261927510176376357723334809525402197200283254308047228957531626679042878013400565606983125192850444308407996514033698043390114544122577281011714127841357806453411235288047590380963364311505137595263432246671878986985460418756602745036048993575399583846116437688008423667557431874958394110051701642112298088549643418287111544153747561689255750235455246823069590342402850122597001545298649054292391813071751772065448258219825262636282863542657159111104147065326014597311370168673869360368898580457434140454296263631230083641330931774083269908541446772112249639587007120289950718662652970948531077691067681962021399541726611658175653134132150276185170930274098680577357734572587416499797212485634399518818448228743093635844578133767460601252309678520225215320416612703143651514285694657368258741283713194411152697799328101416853932158666814846876749533312583979133787467251441327436656104951866499996801740473880913259650402882315387672984941607699875341609843146547416604473037601525969415689332516415228400708872825719431585181561938776045348981826717668639153205208315635713958859519495707974864884990684716026334350770824569954864177275102835257116710386475752954545048820911772846419626972850563322875175611930513855749814478013733151284627292359971269033779198436605749296023440555422976171574516646297670449428898262303410298607291185179312747855218004760943680815622613447585900872228489207076556872462670151594876125345917758168476878219816246008130680959165511474346900729141129715566023476539418667887814039801532075321519475465074588583504675061693920366318814055765818525517195415660784512562664834278778343952324981303391490372087146762578161341910000882400671592673437361389735987880822418429626364781423585758609704880877539176569551702923496225331148501488249859669680525330872311011447677613323764186131067604552105676257008565879572473481075428215189708257428991620343409185690291269670497816136904197055055420884030800596945178645135519647070834661906541691194821454857767668641625611720174998993983685285948155990561517699292873812369532922822673548619530069470106390662763806163380192620106973428442339917324590920859699892871540210777879284162713989432050315809217078395856951367325164674372121353095285394442111435277528943872316576611192674824552390134297551205167801966745825916952106304119107912953001641229483553282482958609264177642850364818915139066478398227368007294343449841960194951825505151240752205286363292665494796025889170254653050787887689696223129052728258774394801383616600109964113323559548810775821180051882243249115431177926679064549620279516104636447215789461654794954879656420610755542148856671243749999990366780846326301667840180012139450863831631244050618044345769383140014406379891632838289789152700776363362678528029065290860622515741444866418532009008534116369842195790496442178467759944691956721895939305554388802592246379490696110943743662024847379886286217308372985762453138781238116166342208210722675463041687798372506548974192866267105496675691368042811128068323688808515235799046010199599117499322871858926391144052756313322139155711182767924295974067587321317189879322971749211111472307914512342164571807445413805379425415533627493585560059886999083388973377759847379376137755753121152643842754405684243277854029810737703868807040747762133592606502326142172244399481347879874210098042095907406758922879683175773738581777968158336342693050922453815379346045018369643605797448348414737479262518527318064418495090793707956806679179972898215478870066494392043961600323367276628808251055327801363292131134384114172710470410942418997078665912585693657955559753449820342301078445069518810607628028019021999115815635174975336252795675607738692456561374846143936629544845586259038319163024887194236145335774573241748510597437810803348454761240472595833776616518723961007182895261545726158541594938660736459953258985353416784406578939329188408022765906223796926987199336532491644250981348776308572917020699673722810108695986141531116087180429755505430337694314640599287766716594610098695413505307557592733976862572915751806074668075748263027859518041793599286926357914916046728384229836156435952747502300265578378493583539497332492510792673544091607871799557951883406758475080933943759045636791215359948213429257341805317307291366566965963143280169923058336731667543726032338885481408615954547044718746607307455884435432424359005293874774189194417839809556378509838601253333453332152613529450257471897856204264873927206998308970771703385997725762002079304148193238583890077736739843640985925228479303269316739724816810453189781428191654595405682794686602610751301887491851356827002226384076766397957459420925095634190503491722158094383210661041086269855711853599604980372315650665847187030250073675372056192665775159865351311446650485453834517456472990521585536591686885805444095876836940126803168953322911955514632321351817056669767505395138832109286225440610192178493843813527811449109539578781263568034098714620343626985757251721714717780096055845782542489818302564424458623169519418103327583179686103056959416478607276817493277414428256570793510231298526328765218182811180045320204743450814231193323263981412910559956187509256374776934233800151185643037209844540633042886814054979226338124169654747317159123916562991952255320575971423760790466577294581407369325739496902427945011214013506965891156680327523533314280721426123644047321582026197230544828811564362726778948128841522554651456937430166133733632816286163808044565257540205200002120477049500452721418028835594564588832521925536062485786339579719987176452345055820368414166928633967801391343388019145116546684407586220580706867687401554084758918532760355422056578842728538894650611559670327584295980894168862330079873464383105381332258218541100786405682321182794216842060472025636076444757852905270036737110782009463279879698699203639200366233492277091854124354137356997626633018169752384316336897326772053176158171015077329732652120706270855685848356005242978416108716089265037200771583460564385988717827547380929926039842228256327350230406964964267397118806557511515189596649903935198485033323679025835978127510371245555762201875220668250980621629552210840273583555654511701348857084273397254178593033262573701153927046166376148050835960734388448509440936124580134702617639935949068471822182631183649468861790628520518410160601721388383239099180583226251325946269239541036205560200015560158739809373855656082261902750261961657270601297393646018074543142809405664902976592381767004093349534312429632564939467321461969715223106198931198113849715071686242730329964376564986501737057936118704790555612166446828845690389974691456554905506466605370833652545882533493714278798241110409722228147344182619678299554005997893790940647087284703547904525155113484665455347971921351916188217091020387794449639394075434790792122482748341497275787405879885873102500898155465778911197927579080053716330990832008607572804326478266602889407295683648350904565939244445645851343798801616222905755692135455748923716332434553517982746399404790224658529631340928612904758347848010497609468572599772331163515565244660512873589698738426518182262705403605269892131322496626881388028837502317537801115992956826078666855530632871019590276646716567344904829413657050276431689283368592846119570152412610147536729434496303876908646667733679551321229191217301170011329060581444490761681611803647940053387247525195777649004563701834115602753988687063033949058751460519918237409873476330782033443593249129134503413241530460624464409782835429696917843071100348249578847688183662323827898265082499534363407138501354022975394921555643084951534737808739653372787920615352970682738226526471150635051906500583789480845746061962533203967199167628886624717842717192596037050208552768224666429984660610978248163302353319107628893049109960057772441324883075207823982967390194327274686315790990224785294320265022112506297945124596187368221410205364591316289485095444053610502302343532366315806397137769404035963932656564568692620425303415642640428253426058207388778934370099081929472299800004544642325450586419122768058215181308776584670309960756107632023959080284902102448853874984072712074777371282917278130589275859517421468618716563957120078327919642447872297494191370400761052539424246361696386518342774072371190157290803686404595542786900173220090286103671806255608357383859200026772808041444392912619651547849709304798099594991316824044685388450404621094524036575920603484973058202626049619914974582077732468156407640767598529731093841222610340350729905461077407104200119641018482796836474489229288039854945357534742465135202172084840912605159913689676065934621506671893692686373019350228325963102462043485863608465514333925034320632458278033963669855502825536381880056382212232735639412608539494757671434925542850752241332864028623767683970193117207152300645977142509780546035674415231009242729156829791593832629965036458610592033849616196634029324521927088521695671616592851161524295885117754410328724149988134549487833808819012349403204894602389634240161210054416454323212304367019386962712354587798476282310678781934168665971175212486682672597335687972661867626518878717858989111924737849383713542760754627609114315268772479800526264300960202944198596813279450252425114328948113166284623411378083935286119540381808704534750729486034530115479225163177107813461287163618596534277993879052317703884875306064237228758206532888549128901558003185615724662996870030333190484721157725482370906091604808180845094320250639680371803835740281278697814769304884295724887612233147564960785615115488503162537190974491354056177692883718448305534852408934009059789769934281342882966104799960265383253774155417189228602665801220420128919631049630327940884444933560464595487563001552637665790896487782318129124102346377741996637235383012133086405984757836289998789569537633817825059269451731046728601409745608832752012190807831634137773539371744908223549316513172111433101620677396169740482351963255763826092115147391144073323524984823219205000605106102220101972955320397549510944901812868511557809451159571872451007436257474696796982949045840581829388831416398478458096585665631155274462907012409000652391296113484823429145675497686291188070086102725594515879046773914289669585074631450154011261333170238356566180365200353480956046872209400165616877220483459504765332747570771504444905340428436556470060994705495337622678766766116798022106861083246417150158614800655880062437409468479811403276573092765258796404295189380103500893310315637681185783102482595686188583992551304861015229025491013645355639188956538610102942166120171660057195217288829901500755619912774803694253802246169946094656440074202827754464680139632352779235811132619615076088453628610353271515873097642125757284566435958201376061452758341841963464949112129081075171763649300069941098761861484383692009176134249198816214460580082094483484961327037414302694628339223171883217256817594635574725895896621730446941766043486166003201012246983987056398655587410815505547968496242064530766945488734256382136329817933237216667603225543062541601928368774783705610233415458374397653310472701308854817357858629622003907058346819193200600222178880737901289854474437448402210453693928796069731837521795183559648402045592075242371733970026913130486760315145006108722256511875176338707855351448772607539802965435694153001594667248808207031382285573434509443655762771447702703910296981742733726359123377691134137809138427684310895590604183112137184436039849708649758292702739667958982577091709292493124934682683893489772760463668182086131350046370893079114767279613184298789039149710942276090531347610993721250926322659907771199246790549066598243318057510236046456178230146085901891773759221033455156431577471537433557694281193357807936738836615735762507432511953579693434288538971330211962948579591526676994023720653316112323461880455727206387399647901274086826178517164805348939474766451701228242473471372930538438481840111603346536924805887006476320383008005695534220202025273555754373966034766232698714009508931156939612248056150171081856053624254333596438585703489247018588635801044351294327089819590285883463854509021518493925341045758163495618210245346638621529982763851120453571674497966604730877703898122080978528093193424295141063765756932997944445981335254246709601978909240291468570378236499783743570056692399889438481543579637201878273629070712264916645135272134660577349749118378131074308813959798493997717364485718853298966417248929750242902734416845726513593639364736077923702576102550212616948700596535699689329787259659110025173556219877581771549633841072562676895163378875856374872638248038709635428782821242062471796047418302618830181567577665447360549842286797387113199146490788220635463038022969337470577579639044801103891500980855377857993988200731117133433677351846953039619831639480851506557320589912899951739594254431025955252639986361666937253889846264031250256876516206832698437533330144917180430744117938961227392373224801997871723548604190897579088215563406465576412428526361442940284484324858368164974111258086986204520960985940111745261045590921588450902892676760399591004342722213774982617640533105031752725961093302345017201260464383829002076646585713903055120288550992419037392071470617545707628210661519011985039468106844590745106370901206413965996340973370553870654463847107224768765881598384455189896327416069768091437589465966762524229124408320378479129572660503237126140265046036145496092544881543332491655784092851294553731994842902202094848166270541039383886519287223014217710240861223832838085759443898216036663750796787824471532608099366956309076344002696501650862991507383955152128206203099578232120937037120477615721999594714474719550186738282763276933647528404053684726609161641701021080771238028106770488566401292672796829390172353716876124173965945543402845328223786301640580518869468188098977479780556172790110006328166813294365224600441780437172336112800601430563356619576048301458097109025840309836237809901998642602874788798736082416689209151682912944718241538800543145096941830776565702942169829258271626514362774793939355295007193211702585519731343402716836934821876250497748296188447196588381136872577964880121377491878837937066051170281554981421863482380451474118590276633575431477278752824098190367270431205041230841167603468726507593263142324567985053361112703535591312758970671207951805572694570046704711762966278449372573636621414566802792869895817854878018503814134223421604684269541939597728952220234277706155229789776656347373016823047149387733077901718345661817276454143390852697496915494583986213150949051276169904732187301986085556627864941538546562170842130231316896522717099893802082944409427377609917888200497055660364437626906993948293568635063239438607700267964345620087418947442480821810973530174448683267016324330438405453131813078303133822879067667062234022982049116609078002589168850784290369907167482040946591795185444468541642263118339123774878517665943270771258275362152209139446258035345516696242576443174345660813497428474171274443575533717568571794989807542010669509077568582136193740395768706869844951119769094518529264082979476093361723507969057848575071112538703991633483579722215156779051857113668335651972125188723110047240817294653574073458914430989033246901632062361449036330788380672516077307699394006871856154485000206882881367597864030810436067638827250968048765571114820792821998263563071667031894696412272897372542634095188156147489005740885369344278264444739922299142005390423622377213325647734008172874597767362183881715653578510087544886086285376549282696371668713332415111621674450852061374472662931298101161531084402045363342971969950032986188380390691535882764160813211280031689066429827495880845378131704850245464911264189658760315483505404387682160696158949482769015971333291304997715589548133757462212066629144909964816912124935132544791919916219297169299206854813054500837094928465936775855686151655667303323349168791120834732823340597723313203030860844730323781748275745599817279214458627044938549364525606159706521925910169523340603332700814703256055311090369698628231992740073208365367138378090440240546069516887199840273358734842684713847415385952124715953640852942420654930304387140451888317452310218870657453471028953049589357543153173865254055597158659243334993963872918902693150069431426419474987535338605018684444808222676358402044393026223482604528889335374686587908212341667892469680096040962778916368454895728611747136937220715741256473101850207702367179196331676935879024437478693599145308176459231044557150884501949556669949756508290960132349839452760392460916515911528726009932057643005671348231641571380484968138107319525224729511612033476096413852806021253916019830440792992041293260375661296113651280000980973848338595834628244531920268236550103574415011009598191415958632551459104996004479813895155820804654675273161947806663844283131351795640623746988321918038394036452752713997985950563280431949586577115259403206277688200338222321831406036418126633813543348747885744775739129364251237111504845583699238845888825376022093569006773228569193827471997157829750665016860051185722926623827396144868948684262088858629063364472125183749352545414896630705163586897010301841258434326590019096425024803884336108199495580177189760386190638288508712185877498232225657280489600756244464190352164974173309586850626000298940187145412965506596770040373317919692394904173357370547251497130486805696514331965258800810190219167442428037665369518631747219231921746665374896341839190910578677104858302040237640829666501133750079177698985324805688145845995296652651583322214210084503120030383798953307607123850061178487176607788660339560572761063312844157134293764644893017179991839904116477872464435032898892480600133589330109081858739330401995580585900212629423379327168318859087594661811669575699471798629903957014612664121897346306926375191640090375941943700072181621288134389522661440898467872728468224385658867261267294448356097196129648302490351551459537504824290988289463290718702798626404843382905433927500752553376355285350216162416135075204364797577957532045530290391348279571738343709120912437517136418691283217784001520322005255083402278476171345595478828352886677375554720480691675756163133887355446382196772232849175009160746857095760375913258709979105353144389297973450208699238621201182743955485207335000703085349828481903871559125024962332506016894065679040905618032097989009813484208366053138554220179209470125797714142034952193367768427067392025816625736403434566969151849569242264641359597248094153951927910159059895343803912231774961425379476416547274770416235346574687255469832985536924801019849140065638450644271468616141094725876120801049637813103637387477429852232490239321528460451277827362369651593480377481598599413184715647372184704050650602729488684376475273446304615761006199004563990589444107327329042951399435127633288313743012453345729046521318785582375238456616163510439495421428227456662529718473366795800832336301077473867595096925330476441260301597380722070552037338478699826887054813413554702679690488713228048357665845041466729503400180881971296885575814550985089922859776878102421744655767915068081866018764283502121427164260744510104843316181574696117012317323013819918913237552180245292181633740211725865954635145163435465923337155474386421017222480865200866854821187720573807490111377935553044117256728980778968462119910666038547550199149812523303522580264018427908683607622852288597950603509640873636240123216633427815691823928801662394912010635623536231073960686193920545439897577135102998777515510969641890557400888517052130361698827143637279194092674915829429237247368539396030593799928151110035840741268324140625207985456991775296710836889397979471617151620344646686196437841739477943045734995257581861414208071383370831884843731910049123984364912596150814237956761255731417237642158451975470681616995081296120626421834669791022931891837840607972195646690293564025121767596116521185116288918392846480261859868119628542642693898086146169844760465912021580473409449824198349798155788237235326632776258928284708976711940580465943970826397805191965983390039151596216082746128068676646130297600460557461155199904858199607873752197913722080977223285422562238958117389204909296466290455178700136516690351264832241181692872096305111447549308884867278521818921337104289888585667453411801375473067651040967255772890799292254319795203899514799409714348333993314219932340687877451294245058300799428727376207376397697153770881588096055194796935785866648852557903988997201954038868183381191117817269362708415717069176010183681845348753862294396322107211426317303040420156964547284894793837189639909672698704995804225401288843305549553139109988594404011683770415756861746368598704523044138177097364843712667860518510646485692841233954874689215981232880837363469230870810102921057241226118147732874757123509747221306388008119881635328882022148298936652019717831426259949627754672955326610453333547653438948218487805353514708530026856890908069608605620652745013239047596933274136467102930689335810111776147073531544867777270691895176101123167030140189929406605026080285350684886656615594147285817777664173211904918865731656809359261394884446147541270987882614928690922351535954756273324680130681660423113327886449291956235608737292328575740276770707939730949364371835310089816752458111383859186010264831462249336753331724850441692148854278627413613694562257616397390498893728671132198317421888270459073835198425885427361486112444160285327691870223025299343294227097579331500402868077066159358191429629396300229552932223408974271440192521766915961229371515055919519271954156517733369491213872987458220623470290741974463582430584907558846398268233747022869574596044443012379009475963576233424380805425715163965609886718840898908042345113625445948246307747269645237700078942207808893830173199897651626405637586556980867518489493672846870856533115499994112353629244176310885229160078468488263846586138189029301085783209644556251266544014292109397719507553313844788008908680133364422574785875558726727715622353661695601080657605743389858271776266830411154638835089217977899685016821106792323659355811642331806220765715909190946640572703734693871655839688795167556299940133316243340562614459832625322828194267384867002624586320613084008655900201423973639336978882029852830517041941840699192389319010881906511961808495296263771314454821780954124349988355152758388488123749532553271863819866415049081739811844351861032534410388389594211029240462982408197916618756540634644118721790556262179766932972825751468019358797214205902294039129283530549404688570780873414413744015881103015857597342558718231776011271009476537254549134004076576851879406087664634522602199933701227906472050704836495832054406708409656707571701024301461588551075973602979026754577058022117114121633002343613496031536543004247358429755952317727506189634733580740221941768619300946229202687601311135255115255255792766300814464636124629960437002328243370991643023532875061827608171138557798748576814867465484281449848923335553685124497633385530563115537561159605685398839487643027234780695910583817761023431917769595511865382669449893803274996736346290709600793101257845430946015723216640798381872213204329708444877328808487976897095696624112438206225421934462655019922901967685482756524573535457269399615004331270333701231809005245683468102253981280111061654266906245345372380199259517632215969068914921470103912156843646401612424290124067429110622483595177886179973266255784576099635283965098123250802373436646827267958525631420370280509223798532073184200913274360357500197670786201888730545802997646782884442226648264587855832482506955522146908391190859116848833558131870134489576872883507369197252117068622240112492519964165533156966201076945250285312113668564896926763358836768933966179448171380748031416350459255520366710315070429762952460574594861187194571324577196802763855054798119894893710960365906676579648094077080266260994655586901568205998021669840848177470905287820786220947026705559089425594445639509122517847270364648292368833066781352703052833809665674608118670678275913243477870183153669546598182144030367584265517850549898652287171579705854760367596144524454909524276015359308220405544118305151003950110705912888281869084587683141801333301562448402351467258842700478814921509747039558564809707946668354511589777439006233622679925699705458226874430743075113294253235161560142013357929945361772924835697760534850609439587721474286529608799271179540225071180811926547016752703543601557328135496570430288069493175024217902835328584456790889273420309609772604692810564681795140815347161434209219699454598301987065952326079956275816878666377236536130175383029536026285266107640372544798976199657855160618912701882971722709764557641056324832918278598886719114685804890389757514028855741227792351386887071835093858639702484828347904528171792970677265636760280448017382958871923342684293141544012795819299027044442338684559576818913965646622492571901819395760944149342211871080079287520721565795035663233416320159105170396518924257839906590807567841805883845615384788889549917338105861265527446900015933621607248122773989999897263122211382001776689459940605213695974251759477593901323400527561001859683333562878616702739411261580568127521531073240881184405848237317417773023617343937509327198968686519252402498055760967249803908903060580508861726059542439276526418909494777997008152565809583443665995506081519386198844164173700455739865518967242619395534389955917099328694028052757054134337174768429491358164188806435875334984233618234076524198716621440748573816368226224699389432129356844406685436458029017519135469464830025795916035728315790603374767285271794965980299651299486208039248815156618054222790469093064136665447044905271218024606185797774315183102527636836593915637713285270799305156104791271139928902802974015956382923656590426338287732086005098969809418167801559696642466565333425173848126870041587919796510587251493062366299105012260747869715700748664513562111711809101611483706027780772846354155540110200292237117787131561148860573646753493929289773173912283365538784826235096690605719730488970050696718952457141762827534416182936680394829531900906628052810235573442633657037442084199625729510292306579441051932928705287042782185154481550267557318391033554288254777715220864666406893558940139768548336120490141447901455090765164699308758582228597136583732263596675867788382696098750264764826664398286218138779846675871661080948891623507533507985790707082224937929378573704180737099615792150344973361632365622733724809300869134094423241906775235727921760455731518517730439830905425470868160930444750249908984311312233750830971659622466582142802222849091056147882530111418658721719702976215514485856872756621562442296117063711534230069502612535768443559999201427914983497912192326730860330540905888850059316942742258104535593589626001906943931532115175494377273675740178395991696423490054546673416229248473163487798894082492270399181960278660622394153801854512637377626854201707098069315971200966067158647978830761613768370396917261253328052367409977116385091890094881867384489595151122199924101875585552714299228857663118276813618100782428067868847568079348610269547255705118966540916765779050926510876116553742974822304870642377842652296548504218111342906499188533102906377557079079845174300795723650032383752688117206857011839885261382922913586020944009287596945235641227097379013337186575142279454963104524369499263819142048539056798981730098277730624851519803791266718269268699845573146957713082378600993174543405726455353887546708983035348278172398869692489806912683252623801988035490313468015172618018762131872935453809598554089484440197540053909396255653464714610922856574615271803142916282638648217579898667140024432937895582308062365021945079035550673598720038884291705496928425055297936241466132642595538817371328407772496542005759173768612549063945026833716954033394607578718372758550341535069947925019307736036513139788536109858660292210908829710944625873864796734555711291615258627768957523296882818283640618353736434612955627079572914298507361253611291950311170749772669827378765829344631928467450251577652045588469149887611306862421812731681647767120839203531916040119931799270943118518615237292894193270978549534957873900833595861643571085557037254960346400615941881745507678473935814383028184359844567413722810099060412453477201126610857942673261138625286808812653175757345140052808857673844436368526182553809264550375973257401366841622554834657675039465684373861401528084133841183578846653233190979341108473638103138575613727989361649057824683029554962783607823215907385783993349056895713763204244496296767582253685300728917035070899604635189913865571515489662924885265874035957689765809035505373702855295074124099806975367408889830320379697131959152312410278302087541028755846424215097691348478315173685060519294691516588018633124521867635616385231239392491007012396258514139863046036760893297097666441988648046024986969696386221558614133551901796283398089626072903645818029938310823048361200618979077932949406951715396626754014597483815581253862808326422919628388946017021297628840012328340377492795892998899458924646342897743459080462572518377031288141593792000442932528090778180671121372918005581487371844148061237232076790972376046663549867939318174721056021371921416817740814083982429625896762096856863345941024455582660667555491615575710236522514288994449039902264376591298050507315771410430576799022771202541885903595133917080306922618107761995011310509078723793750410955643480162754090338227389840938701456987062591091119214108927080532305014824820157933090917588502447060185590882379365304918190511007976967854958759646744986273718309331267754523950643263471596015348330865318043065657866299888056328736878668710012050032052927771043187165984183681946116941319597922437453652717385913047817791190083513814008987313207068678239450334941862851427258194726795158576556195976134709087697303879721898715716431732933890172951290245889876863380945030899731647734553442118482546661172579509383458458899015221286618441987405721728841231745536630266311501198370399489125277616913984830853044932797496193886220496090361971987800004760193827144100749782495428468466527262085335854708405936635758084344527178257317815476915641351244049767215638762321239220469993002963619518665548814584991180225558698022575174629885216103053627244550650854115297244520798191704706623676601990540335613611423265838608179007587123768679352148165162878855854712392128858817341417696680017525561971635132009675779838445153140770749167240720395314874474517349009882800809289922749942085076211044551462756155214660043579223525534268359750076300084768214069680420459359855960692328964591298094181550881328293095010181543082740653894088223241333886297126512164312455011234333985048845209987994902902698265079474378444491121734736841391554709655495900026517660919296603622461735966105754368544294436869820068415667656195538749517135740317854072295558489690520279524459909277244700615472357814143937564341191387669480915069696949344013103758178561361122981290472125145782671337871659579626828551388539626034443011632870760697223470715655129542748659198288590286787513424419362309134180632252061799966499496768574558472942171380534652065653380998481130225379526931004480891749371218196148656145555280372728568266797286963099362112594046391715354374247218646452334934252196122107292119314929550620385604491042510402326876041432368669296047431810228889108621040961406803040770444702974298295547579402562307923053715860505560454066108203352892965977860457175761111887236043252596907331835511138350633174274143339986003155431780274217808331210439690367993184744472982022658725808156500013529236079412866082381746634142347850117427210730885861988273815955663359387238398102016977410500591719390477623422107925932688677315453701607425050365970961094250797193476102237258665995079890606933794626646059426832102827547785874218854377105346527772441950772891450582182556950839425713449479582561986964367797697414269050352846757115694715294965719603038425132918978891377304997588354795052157730856582159985557771452850461249536012229685499389703567663820978334962961894949356060611663118832859778988040801729073411179890119299898503791808082907052577715908629510946368439116824418171467933102397145366108598451259752706806533913014055595726801308872720716934093841102041053801565997034588486037901416886453823023761178368925229743827197378823342832388321879815348766082811159849680869981067873674764822194898293712509301571320989838690681812852715780557911224169085152095295053930278531775307621479114796130547832917485989829502526186435933947507427372055369257131648352574584228991419211536069622607586718567941136911090450662566365278954121622327313202499869570597037903293997871455703625204959748201015224369300354431699852238055616829741076838758099767076935978377396658837488464144541866186591739107448833151198871631490277813941551424675623121088547350187502641426030936091796660353771700564472621543325134763399219910050104054989864737956932131618946300694067248217642438321992406003550128387410069610861799701286133592411360634516185175192223217869918176902892080192321480168868341325724718791881967072281504058657557106960139410750295850810403160770640871852408574681400970273263036516938212055552059201339625351918022934573282839994812071176076977105786159948913648597199186294090571398066810109964198954697035117863087878007583654250637976747533532801109956830503055086441289764037618204301384816288552633977883888587265299234483782984581060777444595426293432583987989652729987615428050452393189431005660049177458154435826851872443556359277356781950518247670617215286964223885281650873769717307790244324984484755973101022291984726249464942033979691854228801918364163820160502547211473641478020700736481673085948566305408503536498217602903580360493818339520972803966334577347118898063112449787272691350676338175872752595500123821773594375645264040183551155136545508894866021776765421447656994906694888166908925301996366398358034981029267444069897177287085863404824148825711801293607700378619244553369993429241943778815546134121237990961154887349796069032318843419112895958107753537568760807473529637446748624140020381322999602321591390679185301476791523186337176032931456493151281531887797493682948018479645198568598842279506023240485191036315318083170469284613885530160749532597460465339556998277770844463895347468491093063787673573380958264840584851897274314524423854919721071162499014388349045046560986209366617012350512795744945144213473700060576913971352068187710565569090469362815904009110191835033675891384533322581537718681281203478400655157630710598085525734241541333643101066008506376093719806809969111144766514477156169494449045837683414528228648882834150069157894665322875499763825473819194521194015393328200021374721439557166550857941534919661448762065413896563374178446189911233346848426687137150986147313817665111492246556076457407982887458302532027256482255170744994686254434071169496052374247803825605768331568792240478639302414706699780246215949977724168671704830707275748773587449208237091518569045840931155538362808495160019648436482472020529096953314800887122055273664033469946636966409096445821690928985506235540480278883202808807228405278974672249333364892975179265428725789437553135085481432158335171577006340130173965733219994130005562338476673509554063684496058920238689727790618615811207404652284607363228761904895522974200774806880872977072909699665193036627099393203761841138966690122823767602203008725546121700052342694111107169078397858672924634661866896136684582088230297127419285037709259117540044476311380520938024178557910158533875096414949728990786308314580427501915217390108960059228205299819517979956444699995130415162349462457982013827613183984092651205552665072201932463358883497829370920973811997224587755109324271669494427897462856768013779976880067606404382036185142707217834968281191101387974453563474921992170685502081074215721931342346358568521807852927308658262624820983621184994096948496518474735712590531895613573720149810200127964007749816740461578949655551013761906993276955325948309684493282527743855191614763040156491296524702873419413687104470310678822082063288268440124233238161310137505960601301022763584810146246113252753061470931956316352998027889593344265054775887736644423013063607205997878847526578039493296814578777952226602934855618357550299956688222507327136187190761176687456670562854188004542483765118008779629986787036105235920885406992040906293453662317786899537159240490758908805116955207743283948483918819810789304347472316652377877761141373875169314814582917476852224189063457242882874325369595748475274011849048041298157845349627483941229106846057369857881356647287354974695285720280624153613696531512604352959204099020388701327911320463531862774107697549080209244217794822832029768454422862757133415858078594327891432903182582478097011410293775553013007284519198596612446332378944435075708110424002558388760422606677743352151711061601857532193270208188226280334994901076251784860440979161297611326301072977323053241674739981421359186096222473618052490730848766590980475067815461901037224912044901679643319258693961430924219431336808393304550677851958994431833938084817424601465612447303600916363416267042168800100263725382602398741606758935439767877165181027267174583366787739973331177793789833633512363408059617815495505611706892293707761523146102775604592146008737192479730522086235260310172424206271265500369096284698768161929761920487078545726907817218787408688488171338784482074336957712043156664337549236244244403245821664825194179907885218469185077335051217157778537743067670055850917374275217010677178983805136846984059516120534964580241117286223666136696969819493045293332695005997210323262794571235154799906247311556317906084887794284725727883583037919596554615250672770565384973496706871078094286001274966165672949700194946342340525896150966560994582183276733003849322082980054135231562672791635641685472170857488266967304834746438778958150634697466767889493488084271491076407283139738647366529866277364869177552209490705203366406171209357492933100252105759221268852821518676594180808645032105233781895174734804848564951391913004199925161473871262954201042816834507663747454170608685399179564574034425336986957148784726562360924310575982812481626152918630589290985560724813451177624641714020707906771275247767851996568474170233431764052872603498406343838491980386202442928793759063410319579780227506290757810614532731170134508255249695362418029395710870921744022865748138769742503781325157245462875377261211104594856188924401113794267018731584842979458960388543436556229500874734837509807917374750629467073073270710695464900597113004621287288242978919195656709740887705988278456737054543326950281073292673094967096365998329986283876414339989897003420698435315810858460490659066054732725010741118366852108000858562897106555333291659295365556553666242190676654191029363395488847097067248308376071887054337751485335394560935217231746156164619123186172615455936405184813377274444855303658228022189299136182116167080251152282193838861410217141786891740146724130686351885176063916672682192862974163254187253413565409076589947763568715783670407519504392477642791121758535072843223624842658737834046433772052751859662889723834353194564965124610229651617651773751978486462050704102115620714695971919481790257127870247285082056485976068135640629240028495948698107071265481348861015552437284046729922319724737002671808409522480942749816372431154587135807994556557101645980662806107008450498599841372385043924278607391566009530168056829225642483259009881296522280577327274733178905716393291501564791801587553889742527792498098452816750698470263248790698968740137335057505305749998835216928306187531972598174943622446491346466489884693846604030759689703507278495900302907512076998068549486754214935844104115626446443957342641778304282762078368285628736934889406843831714065545260593979524568037799861659234856412237141017427906343472542904846554938271927400475697379240875824149767477527062418597660419471878402120155322804159090525086358570401169447967928070647793361262120025847476857762313238848591724452495387578530371573258875603209669462677450830034050271925955959311156064914329172681224642320929927948975844018931799895118266347013431513063373805442403017925422352328733988019223835614956475655187313126994681653668471865377349222716096432383006650470122241208092586258362051440472631717481326753984233073181733225969803565943010273111228400042635636283940612414188635931625542368540089975895763088368608128874461772378410871041977622066099631339961780915823535211662261670186744587366200789505139524231695563222734894651191323063606766338713275610419491981468702506021671735013741327980003722257342653251555398358556497745599933879060147812588204176610779218588108695997043196049900655467144328853956054569877008777922288642380533046483816120983794541596470158499628452593872248279369886404318749413101955301263729027423814477855766427671174799618614427017912378492080450823045662176392821981280343921366324818571852132992247500482664707714735621918200490405510286568739455301161256385111461016275747669155292435003966009905496723254262618624986731219212593069568116043909343700257421244485613196980085767053001752345070777190316634172235671462387976766515606151674295694493086189513506804728260584349672073358315696079884027638271322878466273362791605436942599498038211123043568703616384106454331698721787077062349571560747477760819768407666463267762105850183205649945301677554174829609028286524789372860223163576913486103031888403147824337702999329401984353152416160574532788078038823984015676416605721370799982653586312786558743798967033064699932986202611709280706061678249363722652596601878031454688298234022428516926612820601996929727632837431283531629745748233052692290413004735361886942440499088011848963730518284410550242958185583079627871483648809968197424993933260510689017691146783232108727663350793471798044558980093744498151293333347294487756001514274959772054251605566802427986035718841645036412281784738153928389189310297095502354527862150890447034663930904351324292062911450757857702852292028551598286933803436379940691914229925625996172372459705963200095410526288818552759732782146107963402880491341704498839997654053273206798644933288694387523224985865960679446594717962582966679691259888409603640315225450508907663562007782694272419952956587015953435372520432706567434133603498342457075805304767151219722484450084630719522654314067162736650263593075172826846512969711178444905910014346734762111978087843978987550209907187526399454334746889570913886707164015285936602419623217760423255607010979736101158641810603784860071887127890053262364883370733540425454704167438795994683158419608366157617874684406990689953675483645147715033615086827291702094234914795701750772212968841171185092937965316668852504216258227573227675169865567313461120708922427535883297210654321307112358367457793137748792387500715854224115775624334813037059040219911074390402734724127347646483709882112244369992385341854838607842718356932396198294979730760648636749049858214966900220308102730136622248419153643875245114663811498345661358116905524033115698119330720106367618705047870417586438915768609853231215377335327279338983539177349148023245531339686511435491308356771791242332775392774830539639625127854560652124576478410474161821317875578430321283905134722799655708681726102174363327319945298589816997962312515041139559182668555167565654380166519473136247402136064646807976060220991523219204822741736045046706909101112944307360785348295965043346769642137712870543707174548446474110807392666941189778953892985099877585139498897579622760436362066794200811926094058579352030135730308837843192419917213145254642327030887126668171195645365029965837193238115668529369566867862409155222544581846281418083293322297201981464781202261052028173339758493648576047814033755511390016857175362446062204478311227430793958738199760765681159397305267932867689106064811049509870128876655682676092080666415777555703164832994783118843331121804055968043112337914351763263261348951825104763375129613972223030119769456537709404284376512037053393807685792194124280933493591811616556335211433677514081124716820467110096281261534760959153137808237032232917722501611421739297715468025934834145850702002377845089942292608458412300706505608262067243262882306412309880993881262437202035467510933875174101697267728995782026993586169149572836006617964065126502262532193395419526505591188328383963406003112986462056265863274759264641474036216833648691839968176236394879966627543535319653119715876670378081737772412810245319783854158567488548749713264313819753421851642077550778756616876702743988026751127710238922970634322102896057201973238406642591399836687952512133963431648899132612224304625695181577844280458580456466603588912267966386015369632896780327817809053491852653527502914698942917485881219166235759398548994039481737085083419088901713006145565330740258391170372362688748920787043784595246838516907947212816219150640073862972609970185381297197761063794005286193630990244521890298274108805262211124994611792634172161195251185333156456066739920591723546880684680881420744340497393539907452099100828673592566629204010297288737242202253676704954073698501165586268788283529374821278628533519011128126610734211331161941587075411938006776027777421770366874072152573810900240532122126243790832244824484407091710232183447017941677130769139688181031657055337710845355776990700665585795066298259422158460702897209682860617991466048242439683005739944515465362144706722549776292701908377642855564440899525473476620636474593935236091202120145599859980757209589161989770419590963709512588923179135921301637999165084431050779126767334446630267923329165944420008218138499296260457192666201456409073778948276058067119274194283715001150940737403773971477572004611532695093986543541318760030403281544217671607035807493668280105793905605089937945407262960384814887221595989847371620401083149963567305760970648308779625669779393603678973439006253767889353644117007695952047789588730441158617170006679370185486700110122702741958224446478175434599373011153020076734038713372371974752905476004598912580510130166620295059874908376934786926320956528633533173515876418859707184498452144182949812043146051945637818750975965319630473085338267169901704212373232277495767578398302237471474818419138180824135085552971580120322510995874397605395242965283501913679395962926740925182226741970566548281275304746103199783829664220007400782589227267605565287248913875309495540439841075831279790820763877808027505354817566281106855696242099074914472791204923146634367151131096374487417392261812127340479661287658401026086279030242293182020038455119511197195206057214748184750695901262411506837693341534318771862021234555887760956517160846602787083225506983100175985136183323810448996394425853119911641424364950704740919960313531831513048150047077500652904773005857001100103739308708279489169531753615893734830722906263089695421089683827942212021765975568069501710303839522331601289183599605088975310808873686788730751443214660671939915596989903115902348364901137490700868943219872753759500302641583626487410706359305993016865090800991154273287734448270209980395253447017007805104617925111680889514577026595494874405455731636238359153713407388999018641518405562924099611992184392568208411130147849239508326720060182122380133762049006577492351991830203338026626903499041774900303646317035159274000900832958840051227342267317591674911743991794798011257860650179516747631923814027362048627361817513463975218447929662964889205826990763447339227430615389121828173208221340770899141547535886169751277838117582834810789529766406281347476824445011793399004615661349130254338038891567335430418972682027224246673622899058702260441347845600654228606552703405276460683051599726640332218084931519559907587793119032283107008517819240725194261543617813701168570137370698526708927296614790154044042031106477678484700147973301733586255281286212425638781149766374178184827007514665222701711075635204763342583078749865905914163825216277102563962201211459387517618641369840636706227913160668603637819417914435622526754231583060896872880291834094341086175957072492416947269275056682653151056452525394793862653238993232266906718264740765190712265785963140844190474441711195910091803290566033054238931928102727971971950994295642009986343082276696253895837250936931665443227986189618137299333958452425161335697413349888256198989515664132980115973949918488636839539374276531491013992335335784718853474722661032505031093760811168621762187947322817754142445816895464966273853932560991054020457023556005684297644895928878822394171088416480375736324451340725344093186529530466443393767241082259480175263501215589304180921226736393573102898751737939648710516667844259549584005486238103790274032017234670575384737326300739327864565928022403966605863899566729956684626961674325785780085581234814616407295405404257891638748120195979374493284528769431892561482648030851913184754218551467563110789460367134150088347786011175386174133788651221595103732976810284108602909853481088845336657434826022546315790128982323766341120031714536478505781470557182699612513523615593158243369459843104944678573641983666560450770634567878813861484645642922107155467179976300313556487330207443272172396334027087944578552888030673556552175902816237187676554959802620237239275923276633440414454086080547284966693651568760740296781993204937132523656791310040941678327072740897004337339922965560524690753973131666117435739135713047297852193330780895677470512978962622537367200817529048831460266050876571063679772382306833868146928885330341546795651717891576693733049868500572860203127723214001142428603282913264518128931837990111241662919062758205300728341146572367414510504697082541238911446295607357400823862714625818539737778362862224362758202547413359934886514639142714595805782680218733294108481575696815800618317859122862738687472841618710720836764685699603587761868134213874561165686218361704690304231503135017563055978911035084300860068849507410656987228474123820697434752851853494578013854381468805249126626042876075887309135797642506716902385002510546024425498923775553485764858517063747794878738666104787736436293997683660638117492770646617918261299183405439404818037727454099645271372681377940299228375219672463168418856157388873082176720846514499475285730825355944197621650533016856330014719726699186617264969490230755457021331481035325212231807123896908669628313938440309567428873667681700196193986626784108686597033144535733792678837365279279722438686737903077842514626337842303101104824016188471321826326818378932809784551347116958787380913237753615454276402988038639863552633099345909215053368646607985248758488874486848378818936168696130758726566039565162175970352407385168415335518824350415455785702638474213464333866212964472607163522918732352556074778291748730195212293622855902671643883924631693913263702915578254904513439039203931396949155852256676579558166637219234032277545812059294217924880598992464980106980652578360185896215606430446579259648544117542629069877490394527479581878721137567355239842334372887331450879006881507739075216856368053832069451741071591732866711103960046885939878165176871984592189576001021005256514408747917268018622413265832266952440903126099224795327411497725979225616118578346944073037072988610932286224637390469642802980779723590880943070539105892973068627289501244561231669743784154192539597447518038632412777141874310802188634642574983691698978182692339588017699661315518798714274191902397065924481516665714860296317214960018581957765911085459800680573097031842278896703388938556319243491315531522376776623125941016231901430781611804767836879866839682756432838212435302107786227283277956926436750462925123069871103513388580929427549341181967322075044928290922747893063138104434782795573004892418138123664224320953123212010807001898283495727097385574167489137656863695926096338557211309455114372356829151524594805422573947686323047448927140144213329514708427785360458014394976142975985939799305311719916474380557505511640894823747758991391610144637381071752237235312597930469647750813355823767631192834235767451279162578516265963510250081247502692561880251740965837449255462946748137145426201229839765733014942608299971206844606914304802996728858209966059203311891654958435849401190545852694519549031021049571585430543471909453263283517596855616188665247855644447697708755251880245190014305466909757666694484509799536066821151489305531979099534057735415994988113277507470293909301175032234351126404249572416309603214501418592354145350620708295325870347298322920982582805119165209392300782082698781552390425141866050228865890012957458499657090798879039587662796959279667525625854532434087381737116740250565932443012253230970044439081903535880224973595804175936347061196926885535405557605037542736613774753631487912524723793544731278199964390919264468313159060457433937673579798337140250982543934042040740576210253553025518731414254311148227119564180820132386696861043316184376507343496992288115007771878195501238220349603013054773305613103248080750805415576274632238454321296753777980450496822895581290501468663075534346204267584462397373378945516870315687635533126224492700968683152564349251418288411122355622095836713648932188712487982634051526729810779580823221258884558006648063237370762875978141834443486577289215260759799454003297096588842296355059174163573776729970218380334314238159076473529493876542277841910490704029653855889720372485930844392983909050879968240749899461403187677739208812023570949193731408144092461544204157790133825859052185146704647714072286389913017734803763137551284618288426578784913559756994132300921451851479342130235828707329753637888258881163712693988007597374234473373715095497701572998008152070678356284091234033344465480230511006606116100050197525013130821332271297603098289684153912568387648695417582410602884966762019674005871629348597692638637031407740793979886384791952040533820916854717875533983597049122557559882956892494789789893360209806384639062396013210651374422853535608079174329364058101512841191738859375008200575647772534245704627601090241265916158209961801284312233414968189683795541472382593348196324759231009309584701655147273923410386977314819591484504019415153302096620814685494462413321686310906363473112880214235360627771703063492743512184525406924050960847397187196195543236632482904509308366768801352199443524639841495900871061017418241349112928584458204348171403938125102412766518102902296980626003746678662660536966416598594054829192382440402188346072809518200078963095124049529435718356567729026754966266281059912479592615392571849408179222588842767162800044284207382750300855338515950533492764906523542341988217485058332338826777399840812535981045147303952648595525427649784693154446098207296949474920347163229072960182547916714568964904648476640187825378767833861845626442983403537527100361119445412572653697839893921418089587848198674037451049398826345006390844113650831272220038580083860623833732240759049073617071967172216750259366464465940861143112430180693274129210675256795546143208829974957544603600512346771209460150397601397465272779103375835375618599279388894913960773421275254172586206969314974253869531566000956886315858009398036858482850363066457936373601428364652803122382485901768832966187260229056973290565224468100804623046918700027516281394356423830618383385870344386697185629697670151189056471796749565522096838717029762744289278870868183479515400446296791203002539125224838344896256403292181496101410634310068400098270617783670298304692688752824687630796820775590322655008694625024792832561848646925368656148436112880245077715474556883797067562190273468727610116116953944002277089271599377938792245421719832121683839236336479597148104124570612571378620634467907025112941871276471188435715655660732995163286558721864661961110268479613705053472255787689989495998227315227874008648319501632887940858074138024962220131668265876510066649997009083111670108609993225985086496529897070831054488999998313265460515998552913105397896762880120792739403367995301317629146698829598698282428372165691247288966105952571691171272598645823576654006302908127488940617370171667914440256786852326983922701516284911271768193514539875810781393556966649810268893345971935894903181112978789574349780568690208723894520458905586798799689456169960197674379794818364532981476148107409144390364812223034365916773261583832200127138264470103597675723949856931273802207803406325448012298556483347239621886161048847655049591686313206765308796630759528584917425855144426576246859921247666369340562806458387147914434718315275488922218756809599755075361930212058370360699508012867308607457418436866228422509172786642464136451392487129135764036063865936999201654212349291739929456251317560995340483993817096011793538405963209096237451994467184598472867614306506104159236452722418495585914884199041468769519174455537171707857297680995386226829824907772135136973068366881243028794751151965414044034054004119457593901333106697925962159480928289372124771430333154519787328353093063799668405966949640321265982024332724610464734683195638424173420312242346273316869864946536698655472710082210542705983562353118876625200461875522073849288023858444784764141417542533804800389961970048897437305470646902103131701942323657602062852576584647209521659721589733337120438090691889905956004356898797526931808412236248655327512229844871873383095414061070786234398937761127716845586091039354936145145663291649236889484910387377209321101736872633499473975517162427003267742174111627669999202609349756192680516927904895798835698289821791974276987475003106815467005236644090891629136969406008465825268156406656710100024370319342292870674234021656540038765162652297879831186771294026405596781765136340497304116045441482191911472022201896709792018977782047418495206892449135346271239864400663344171493075739762113095196520183651500533358576079681078099470778463871376688039215751690239656734947644376342192335723190669000002865832642530137490707069942239128481464727672868421623955762131668218862309706805327625866870376307270833960054286600881639823617920774158643572851996620868920780755685948827653854460069962053314180802053432366353429228294978263351244760220029879025834346377833702243124889015879917705017362396540968881834476034607281231530416164028691506067628218028823228579398110652603654900718126477549708492713726519854432755709904027866799005096095402142795472805917627356151099431286167781202782683608477852324200469241078161867657145724855596657990374052738933055608248438659277509546093213718049768242408349915533100642420366123592340271651549686949932207735068415119982448117610576607133441894698896036063143005145361586379267528729758734163091624496858979281036476030427539530014472966934142892206475176604865518684589376744528907422978339369558460136623134988059528583674693771575610073119683153068424443528336057118834555464783630348422508727815688369310485448023798107567612482665433825072418867326021174032038303490703321154412101727876075210511242793440103688387991195218969666041856426093228792420024545110868655572443994444794626113870488103615759287377960830515724754703196877063104310511784540915048044285073542874921653203051149684075883974844372908286750309392808448933455388630604495728037463812725178325426977679080589248230073669718183015411805665000073941322073706711730960848338181916181122668847721148038504987903560578131079196399467159036107986062723775265921151800874818893041581206776595366657872885828167502045970987357580956288543335393617335029830627357748709829024529147820154733696853367343963225154794958581125128609093555745903518105053993315585072144801944476883759340298487945596570484172194368080937145502169807385265258759120710317712760075940175442454279009772288168690551506002301315225433933930751110450941136244627087821243037557601375101136883531489167988354210126748920845797322079972707329315773514594924732460614440513770573480449381652048115390985085305378038017768125775117041985191774082088686563775064535034619917565887436153545859617275213494374186578243552615441961498516347408490830470855329915691674328537059218237884982507323693602948073814612726521048951901032895014428828747106700861859388885509454647409904987305868428126713380964863082072878731667331824042925528775566678408274593566582859526200203861299473352040818148466636730733135129289588655731809623095021912733976134444212223906068875439680789355679218601355148826963621122800203144414969576719674833019596140822220404490689544633884641258217422879080794417159535241621302627245355880678025779189933998286197956161786613787745072041457694533470332980733902498757475588933688487736438860197470240044054447143462502749801885572557203211226797461501886588004951574448270614548222980515859686021135071716769436582981920483675635748945380172228616879611625849908508549285571931819867301109044574777663391441769067301459950408966390497806262809496218458813955132913405853853887044492287808602839318109055438086091042087541175873121613666079635344593178895432218767861229508343107876161528354611308746514502842769609233810479088359966333100031864109535587608033887801404614863627409538385221345859951555780531855310976106261531277696534120095928748186481879112930564485342134727153224588949699387074738867077047947693703760378214672903561159734823063365676680456290029702318920614386737101367700351132543916751358404338324457775937084318428869056126399202934822852303286243799631254955925179616333970103819436697724903118794296258180850024660463492004996088618279540897558969724387740560718277531460735272851958091530485835561565122624405950384658804700925544792332147108266941901984624366233946183477717210920736339681247615898859184562981892386623677042937006507481410275242450755658741987812230377532998508375394346672922655856053306195587090608541213001769746946373648199628569718595603120968548431717787468529683213634780070046366648656601308711669911827408199057878264371556096744774129176486819485336203731938243632221592152862167203107629714408338097627641566979861222363357838277197405708547578954080986375701338374897373325571410670037284464382190573139893476399317093117030965797700862843934242311420336283144940892346962531374289989887404806866539697535933348463958365473095999540209348492930501711783159104171901100800763740896453437319107612732769700241978592286570918401086121163842775304706840415207773828021880044820894845002026615715966999089083924561835259601923210035306225189235265058155572892275596170109263483692735642959469176072711910563865684890896688346420138732319765597744572020648209384886741724472479261784408698895168143029163169824766226716273221790019284998494688044680326221867158857749327964596762904439348359038221240316025992178467406314311517057657892866925184508341587839258182684086785219834726633448550480772412705031725863368301814412972662510718604847621690718688591038012487479376176647786434030327040247908290240275317065914900222255388499423719068669197759057715507924339474159116614165859141568984719690087160565567047509452996088191334464172084741622211210072590354176352211400746256134645239377134110263250428241917401664807159514870331226792913620821791273219367498188813116715016055618634499755243456693671901335838783981669793478282481473975374317727384581421909200463236265898977175946645560334407658275817650523584405396007782497546879700803854780835124658442818488318548146778998573323169562219499727956927255566868250110123677978144185108498848364692818883613456793683128154446782061169735942503451418110886212774152949593899670238174491599631130805268783552491185801002657839003430434143361912788508081359456105441131340711685605623620582949148544987397959559803533152991357870878019035995302128925408000972929174318679587028479981851211636177886104031549868902713030992420521012162956604270742544160069232533322378525899202992828847389508209409982583019252007049982942847410406842872434686169179544113002972272059577982616689522353139903244811105890972203455578544154822461355070238071035770904728594408719375138939210577232074881902306923435864007387095012424505512666522133374538236449239425009401816931545026223202510662702779005977003251359552698528023026672427677554088206140831419234838851374188970007205547246913966506580064898322386848216182395805922145556603496200717362870504575555237088062272632135405941403456750304957498608013961491124718555005209129941287328920901380720837390053157571387281796376191512159531434542598503424559200262061653642928654687915154278906435134805066025683180376792350316867932396457944429246561484823892770906193822996044126441920559963354767614003842374554684188825401701965886883388707381301253369190002838305181749166194477954483603121780526361081851898206441824003152853071852440527494450187678201416591994196367650213127963279835081392498378171932217829841174855296416844974070872640637427353704122487197817678278748319918397887984538413345545065059634287658785546875660967060171830053468325632552120448566528656036759718331427968768022266202483230107973263637483423457745381489655621382658671333864211560378834329549971151023753178439601873665752450962737776305666394605793025570611759795523849434994379781671585232689268533555824385836606790208778429587282182554038703047153634434869409130031674971865241947587848974534029107323513789129163487529545804145814276977030102385056939827836318835112856987155560324095760875240256755718482680126139063794462546323827492156457187884126781015516526162638920310545781709870240690964776233070170800542590095763783653393146619885299846677310988280482500067863868045347716281018456959804670737053556120723605382822494184516803512208811642146205621815359589665171750510263583543264939209916016038967697478885332400708266488237990688096014778297160155283477291265151553318252967015814472552931443907658217882159518929509528299521580034661213786217810543932254949047579097817695188064902716155931334809163112551193206895206231021465821499878366587197903832964071519703714071696786795504571843716700780493502126206444553139382465034389488787282382620801410241228214650445422509190264409558481306721488785355732617200611124838024805867894423331835167633963415498588273163292718259444884423169287928432233877022550842151310103537814696684331106112080400875521894151577231097570685595790209759279341463451257599138667532822388297264373429303754337492034363350295707253566107306613403866155660126105506119332824667806609401020552733613394511172040994966842309108232278568139741394139303651593325610455973504323017661421927111987431157369851088463593791023244568183553843002093636760199877069931792514902303562606736910761945851816842331764058509703613994723070866574253506946902759379060141156978695197803066776364340211457283382807158225754711591568331900810760143901379764774934165865390784622341026416467177133027362505120786679351766950144586691326952498799456784030607409867723762873290050327860380094697087417487412822513574364440137597054666604628783041748947345758555398144045226678521401937005517358347994365363805873951728754766130961273090731779586474007140942126628611964764379270045406314515671592564384096596407891551658169855507055171830558183799307751331022985418488377845813236614792686313607013521656932845482177560619066932758725015216078230108514126322368690894568531933256755954688391602315352938021649011843497046787827160966125983279415824086104135626425002190718886599694596199492816826682420252566786077426082024749588628019640899827139519582734845795205416669615492580492077072043238237010894547282831786391767443918745496761253771691498004072565474564738108663465119158053127953040260638191837470934349942143222549448214332639136195663352862402720338708357468822349922808155596028571361377474155216972998574690080419635319538019084454533213424849955162619779712899432056239033355209929589177314645001719913055833174491169915930393707864364604165670893574429627826714297653758066679067466037624565305498772658298193195333460050619095821270416024910155241052929933496614716243685218554648414215562166705087819894388376142263459983870288146876591594423417602681619358718504825623656469669802673094047528303017608354253424170924703976984493241795609731983854597509183819881645214551391044907323177895533014250582053500868080105953656115666947474025199967704083150604555067195292546651824177973685643743389809108942995946749452386690552999265651067136716834403977408133931245225776769312318328100026434318319768084249590952390025876327687388132806260895396561356545378839464105629671519208159334342338320647501686457297420358669251378165046227834923728094086915952081773076672092802315762020393244337325995725738233918995500366386489699540601522945798805180020896898340361945825420985999289736572057365199217100644334096852502892352080397461998982222702006794134054712984676260291366749336745282744925493242245964969766217026803634516758429445589842993632527113997315498162369925289108030153444533072280542642915527131330465084453307053045953253364042744336935141149353417084891598676573729791364136217513279250757255395729946619017265246905190083317524346179507585788920056454399087139261774890693183517067839589450875507294727569577620972102329933497166099811836159070952431233239111678011923896117282468751786300975427456108482739543504450796648253752805873353751716263832727244880795314307919619745198458694110964975607895693252968400303059242745198923988555189445042973924413658587766563550097864254666050400337595316994053263692316449405186715690775345283842408422311860802555975361933323699487277999852148231888865221736223479196591423837007861966775923043061147224585770221920740107282042599785188852060990841988512955164820736473035048367457045841400849730341500641042078498220383827946301568461177278905539338541675664122587555874406194981669521603018643549218257218960228315247074520754739534407618244448077617003327686200970309436061011768923726066348906162840115750853983643073094270978822185311222980176517292602303957406799285580812348068151216978328138612155021418417854571558051041134402971172807346787289925474748529856841370185595791860901632876277730098473197729202872082824633531920735669819959399421516034185279396041122345062341687451650374156692812095196195508294743183509804326564459363596151656011859626496045954618326372031505402065568987750192779743656982808178207343055413054333518620065750491617634116829572070433928144314978593422774293734638921050836792108793115186833924865249140116002059342004977510741111356732615978572298002099451922350880495556285205603539499157259489262916290023471466919051690698614030263611574374558832335147983169821551989873582154897152759073677458970914722949085017464613692439707974809369456760211780914470133612503577612595949141202761895341285480975209513114035319463634618279673440842813512560416964995160431277240678479389254437610897253572992419361959183284071925649403331055823865223237778723109311035215481242659071961132586258087535770362733015972496574630353689408746561818694288358470671988224645974304040555496002936121187847413876349696241260402626243223969780208300968831618946355983023104935241545499286184567589900620634692653391617445650361500502361746104815197640205104911348450456398153184616629057525432118788945193253989082037334354325723279063803233113370876241212547708531160754855384960720345764134722146990822071914291337962381993952672342804774855709313856450234214052680599433249519443958091440571286131645354837711811168353340601490567392384900701789786340549706980261543887604632065526249730908471521459648405465200222106236491653395189142270771256120202166523413520299314988666762537061695456729360835842306045479349269130521113318026206558317836595954708899578084303087344698400626159908559713128149627447139642683748327993634020732085325979781068130836342242442917364495445289875035934404003276136987485315129668023928825675523376211425313733934130904931667510259669899119189906586975905677232159927128342726777901198206994844457459441189227645870401241186110024786881830730486464824144280066004734540728519664283139045695282020013811842077286418451653555754257594213768946041723632217428077628692384715055236636125771594232253502323469650404910281988147524965849817943042519411366476980640233636163863167906987828591435800849025382624105782975736481748283868969475105694552279029208292990354451364366898710066360178830494636960218991422056780786886125795761526621019011309391992814919359825793351432577297997259656843916178444502882859152558983014380959275117834706747068156066176878840911360895840072770583769956352133820182659204529011105121730284049205309835795634244363078530198279601044629951896889055273716750746074480798529707613740941484439871918427267237799647559946628867528675421630995211333944800757335393580419599469724629650558451468590933212666959262738257201397566843279770133197503387053006908474523369427110290469080637311076371602953905693788195877614795253510338837797231230239349031633887151150575821072185799107712591678892586251028823407104039236052065125353213033531564871059786070379234373348211030812333947446131496685721134603602363225268133075070406144603868129252455361490247114719903591900746514697071690910130388994963011732670788368140642780205750417937225829049968089787651288961358254371438391454245410338281455122123379701567883888175604753224997798973585516275847043611784806841436667549824988688960942051665046159535011681081120208280390785627252509786186063628368676387723277636180155439821872741509333679395334213449623866386615216794832902335365022755907113434430814985481853503401924224033921186056941799494518200043178476303972484505893454137528273108631242687462455315241021512964257023166263215409175249724614443479235327935362420858894549721695405802845582377677575910005798112271688307748009165214601418669619156052877206764431868019225773916584963645985586271491641852545305995749798015564495403042467265030257143695304592946571715152935320611288005303587370586698836765476535786597528615916363809479506336393953398597660230562474507391196038456484314078645473658536920249235162455351711011974402369786572996260370913685538074051927868324780261473686813978738962164250781621197550023406925021772318478398740072207556187334676211201003880218546114343637723769601951076293759829718957467533539509872957827447846022402240730568339635759960490300009318806282310709796274508652160607852343877880388817181529855407247707687834401386110399283923682010368180739619898834765600204797443221389510860082654724262624207242551279895079036274395243450845383563969724442349617142598479799509328234665493229379676333606615677721807656231704105168866221963624610456406402850961224303397174594820812158219977246876072899527794359703603338037976092501419221263793988921750456561989017378996993942165095714904811922457844202821804738634325708339188745829529848794749814011309496135262869176770872725924984073203511394445091926280368229056158814301520929667121890538699623903626816311322830944002802827245871175952581560156451230395379953983525441264363500741716059442169864740101787842774714152436648236794833997252725598784745085530122345490555352361813737257619964252252376504684692647153851482350288237275273296467637507211492494595963216826880059611024997205826114983300747477262312606647157124276499296618647849097575800832481523299339630826294172350337002368313905757012275494176603382756820674193744718713910835559014957289761384914243617165456823745003279098573096583741512696220691346597898730430511630273792932000470885509296155085898485388238209486892228348429174937878146431836520694325932095042793757299397252289722049513585780411359863169931577166757465748533624432752080324355378366798894406532866649308714992743201708721176524907037098181812951359110993400313003164505864931151731613135999783500861275496221402823673700316175556724073907456505078620043571067438351910068165828095775229316222981780790323144652071637026665501424758512620344242716173344960067397099051649477762824832785766599203785564135014573954740267025089924398372562140273358531276762915318928944254317901146519030750433331410950714584594642111417714872887092730324520483886765368323777917566995122931214309749531085484013889108795656995109484776547528841585015367614688725290916052307703143367926118813568180912786750483216797077186472892601667527489667402100791312135494361396960255833232195724148519142066016068317253056680869467169149461423063182020942782284886363503638174422896306612186848546402948751024650786455372755075836060005124681779190766018060987088414861473193897828029598100746050765638227199716478261016981587258325705665909849367227300812412528575600898122972355797380020556664575755078834613892950908179737312128029227378994305818741143619133179821857352958456148899894547100743946486443864658018427307387478289061978295163059860688046605937697658447204196196620554662531562515694912775159515296052950942157819024982506071206973602793084105337642842952730863682828604539191715016002892894797518088464104859893558090348760563986806208942274386254506181733483266151723361184554642227111387909920276333833814119881338505571013513731704695312332765782567036328846200370835781107359114116214681404489810283882985815465401441720718883829046135036762220125619746992019216161590805409278138260431799850928505798990902389130196330717351492931731620578688247289128189483076548141594907729519448509804184033642895200944502987173814583447900655722748393606787642494674279558883826028157534109729993874370672118696539441897348279084361762179239233977950650485126911214754055176948411965070042110634891097849202055789067244483809032817879997880589264732488949531492015900253146101288977294382540103863583618555120158963883388309214383188304403305779424740268862849661399541554335010206696289107799502070574684444500076470477403556910740682019782568569634628902339014838499708227359687667828580253238156819725164253744111059189973353328327985638275465727777287714184905782665806377124453953621087991345837282614275878077604085804000365130481913251962830442808174444869797885704555785005883368769457740695807694706672425924548103337521396016537030589590770699598074910374730667197107740553761618525833899363834632414392854630037647929604476710380387109245551876287210056811628947956511298323796417565406980727468039187568782318472870522756268379460310465086212776268163066957322903233426407487913428880231327244688025475559497052190198664604615622855152100635851078893036625500167696758405051063124760941175269269960213759093718886024711232853423225115181531442757436689995060937198839981264018064063204535784012718651454075754692779975625963629195467444101217430508513540129664313164513452396904599170650990634886926960709495242852450449841112111998115647477217256038707311320673046255871425499889256261290056518571110752090190892497213410706905495599551185293876241959591167347624123760601648803785579535384015780785992033652419664863238467261644921759182167558417039795192697216002726033407100465772635142380595927338393802627385315825045908126869106895742946273139132936770305850505718865279165834994836260177008248539443310622301291981434769538012686968559944579189894560921988463891954791045161115936233233408459462251545077584389206127719349434732200514651275420656321262073127472301183701431567982416779537474095895382417774188588097107878352360891869653728587530807136724577871746518820694444546061669469106112831131797418342338308920996304954002777301894345482368368418555782375671714264323179299443973864331020868923135108097769183910629316951747724984533101159401786768382886476841579088128745130530053401793046465246905459298205493477273579410978971098684252110323752770062857121542044983964783409530371516351634803517039932489502681207694591788425691587547698591708243767618565399787876964589897309951650137160112339522326284548480876724374306523400953576145412324713766216464915351627989900981340041501572563629054820246794864632518639736007320156646746201603072613077460923007632939438293857137608464366349435386561439460990952944417444638504283052616711885192695361208180681985007106001805778446521903287898772682707971634070686745755765257826050357332817857900830573272730642039773809559606731003050928273817407507233199196601934627283508820543582592948602980759096296697760277230994994584425269582263406511101557049902842315519004322796624683337220985468069982231709568705509063520039530284941017632018801787171327710305300196476971748456721629666139472449173831307457776694470684498686942420312317540315091470320884918942548983095550844532578526629607752077960589747166717362813476235799103891606452209127669669423989387034922488920476649820575695995456098559181109238392071905522120457891335275451803381848017760817293859667628079115019307330974035702530192803517067871301362051598201482722478496090048484925474087496132265070241086671415340281476335933888168683537329890241467452895049424348152679579145831354160660989612675835357819072018800641624881816128854234462568733710848851477963341820148027383607610403352449468906140244915008243776502996550255282815528496029747568273048781082863193812516922350943015404892360121924230728537081718715261311302042550568932372721180611776496016184138132415526375478340243082131182033763228005191878173443071795402996645660646171755747094938969231119485528963721383818541220363840101888312411908952220554249716971981892177143289480845955119570476844110993049691262043661484710782960493704068998820962434014214091607649043396197420560516293665988410839889217398618932589823184806691196268675003128355388763191373094301500632547717769375036187155903380752643627107980809920983014352190583867983168240002404781549866744667065361698440817983159214682013007678836557400710532581947143627661085548262872016943953678880998678072439830755227254152101638428985531100999569874477413450609003680819580689140711324710826639326104307355725252611385440116913005470012064227177972456525041992655388402717986132501614966165847410885465510945834673744998579024638959625738299205417032730702764509093890232571772641650918533221400481348965908702535759867703808387402522701198517725725861706034834520010088710407450365094708238681982915913054660275127785383791608180635656967888002867603084508687719902189347037035968325144389133451677089230836324922419252981461418244536928628750650095080737850412635185199096110103742129013132629301411225058790976253811679083387715799510423116281271773059301876237391924528855097005520326690502566990576213775874191960310786651626477881367312872555386256082374583351718927651635651055203788478751207617343511705471405173930474636782199812498733093603949071726240946930372334714412547351665538447972905237685659900048828388643176632559615261719001709305836353140169836817095737129613776290649146798244984592117994210285635408128655639038491602803802701296859315884931281762527939670015137675351617564369844881776649249806965761712374595975691635674569938819960652300756556862608247846083148933434322900640041895362309335626315306958211929662492572354843508453079102146746009210605202575684256264836807082346903728523428229274992303463813549525325803156101746796457264516183771892113521131517441942657396741034177548735443224036200327699945245475855741994615961448138942203196756414822638228006311605382177078668352606626157752991810210154916643438452696256213246905544942455101618973900866850136113559970855137088977845366972982153939472040088780849953342211455007840414072874812398509046643313582058308925159121658374622243209853539048799580242241951077129173773533111083094347721756900592673824052882423737634860961280623124282175172510087142125761826882936569904318144682977995239010074234567682919282502304524864427062904751481778844096688079564417188904465407351842832598469634677553898183203347518157310674091157108375818553710913391971386156002662907948798791747976088672930126083458626664077186643414271190537170698872903790968934293107042652317472803645048105794982441401876463039750738999855871939060047363967277945658623498191581389920866257201716719482640250612204910040536498795633035578673597162776828184064366643474164342579941200595102978390866863280993654773289667580521526300667512509655689240822749161446924389877404975820321239519161535973917256366522180443914948276768621262156353718280875808509733013107516306683923326410934267798821206424446928042003825883210854629635940470378839388305114516480478417691786193125330631475302761528627086232280354988102303608383814805520487954253771139294052409225317065388686809774596956384290728602518067107751214448712127183594420976864623159750695681256784885345204346923245520718233842984852298398133017803316081789926347183011817039765797025171842719558583963754856959154642034101940877165022676870386454122693001658210265212249488396334818774265225759596291856543482236281815621619754947074475660504999048593298352487848795206593212672560174043343870408878982079982403812504393002892656976247061778907868874347218789937952873653952654496362363155742910432107733346267668100691925250020316075626153007999170270966562245162610410540763883516619005378695285721525180001122116759613937955618634033401818149663728197798057188628159371106298109320436139365936656400737393302078373953633223298071260322353481676821850565546863613064655517668262924241938467383530291998980149595663784345840981641758460562201973119349275672890274730427905411672907586217203626401837739878184542809100986152307432257801898066520798859129044120269417663784301201567128012530297416201311180640391119089960015524134403924026540699361377042007622615415522660966917022074545484468252298706242546529037577570287539037386639295797980148861137560940950052010950845286314192132172107091296692474588671248567282191634731372951633760198829273275004941562636137790104538611038015667565072313455161870512213015260603369854152751233386358068384940098203738968240717356645867126879448579691576421055764157062696261887697454543524617320633555069636463501414061852370094655258498596993295178182581634608159064161527999694563066752476087119938171667917653736332194659578229351605952369469363386267363899151022915090086970196765837131982451496323158007564270832724360122906958093640250877909981358263161409767562617931100535789590787675897695394800556372995679759017995451002696317863504043364534968443404387406391565021405959864378299764825508420616770602070262696107205249797753381135661359874098606032504444557983606346915014286975797878381559569790745073501283654355369090909153568585749365623215383061783871278960687181930865300800061374397515016016911297451897173160535893248628867222698886963741817662976890467663569439565659467109247994857881670372065864457204753240278488685174123553880839312864249229007999334686251520862238081058068213942150991956993076542463399609163269911109210697332649990831261737414539513327853876565709530914326124570124932355733953215813904987138046703887099663574163583600981866904943933062117182962197815360565076212478491834635616278172926182852970479589569997631665349918079022631220346561811153926335406305796079182037890262243130014691422699893181964628988563081935973491090428651292330728409981434158174652079006837195046513925814571590083383952441963428835531223186733484567588981953784588735919379169499717244570990481315972241136470380276395779489132062604423694321613200802383873622147959132123085081216033502198808693944338360427518568250732258106862420283441821598390490157728364568633349231296637636703178860826127525297755705889805371784227886912805315591118746236006177357365249876203876605323242163308419901026849277797534908413626192749434442625706205982363544540437549592425795670506801199386317928942389106812509670542461084308662457652065701015270235382107684324058787209943813568501760677336593638346008313718866725789114190223268392071437667150903064123255893980434599620531040467542084314872347600781096721771978829475154141788584169648469853911241457089676130349575085496171632376412611258797006690149792780792978996620385621270055315731992579872041605706265314179413574867429220746455525703249742089353183813351677659210163899925656666361851195078808587713924564743430060776205788321386693312742115155784474924062876986968991060184911829651039317927520144700641531508430157726976586909558732155152429152246311916916661142385850458270970647649279604695869518592504177833119317927702512317437173806060864230187691051684894996230426523576729272921372455525687331492228701819245583577991703956192924761167712527076407971879735292794718474903023880199875356355130465978068027543648238907267838404000667033431693727933613932825831172754271572003600738861459541168191263256813639635030785149080176857344159788383723668680868982000351273967316770286380894768689709729189592376298918089430955228463676072073665026919283376504120576184692489956817537942204173794518032764508004399410864974192662329639048699870663563863387792231712878998250759769441793764103755538443356335874073020807274718629452126572449700258263805611710227219405551459210163421689294582116836121908716140058584536151654913824236204254880151700747944274810541097956193211553403283393187928682376427699860516121136112181771864999307835393717578581627853485977747908504590378901226308960379154795684938168679412537958887049361481676191807278877072519425207556806024762508471706762521584506622618015452485110557175586650601794353290020538110994172967520880836837751782113065961433629173276980477121578165796873309212062409241879091851642093722589707958394273006247878810739258380845723563323866747499033256049298178418551016877871752981948180614022650149782264681619110416322617016579528548646544567542525625436595943383471145168631163414713071598788976730451001316386298329515830817316463000221051189010090595177096342190801637424077757715912922975809010158433121860112233769187589505933621954390450554753775709340382335780996202078679913900497809453513988732896520434796314671323919706446475942780389327470355058205744630469934428280886399778115698465655353827523833203695916370361558487443049067563759445905578748052775769119515917250543667790396527011418382615166377382045207011671253106014134133814586518573158909764995734391242254064900969493827860101852507704265473898784777859165380954307054695534544289389498230610035276321348619823741498644905089575375848650667660638989415650787077218071455022363599985974796574204137821205556495504023736414909691623782139101912437158827290639470759794261794585722146816505285985496565516632637349868114590473615626703830357388813187152023971945099154273174569852390353771537205866111727868000515064266937147378331194714349852132603818609291547685701941093822737457304502192045452325538166201950068041629178245031561842084310996919361095006629622187206007516257016532410581100675200032237309164709908248896963062346491261711717706652110229462361928157185269728736099208633772501310059104905193629082364025996415092861516337212813680470017582529896102604653934120226113151362891894216466487075075673317187185804022396149926433399732346788153838801412344552461268398648836264984450215995702210855714523984361251986360894232981882195865947220599811178403119901776659349292009113904125007619072386448288281678979572078256259994754699111037627408772588224323188298923897667694168768801367631790637268220676436793791790958417445351867611716528624224429824448210715173764626220630168230077021624730912768966318294230328100470750070322706583492829634804829964685979947477751144761835483350426057282686774409059706698616544401894865941172980783596222401347149618920405271254608253318729620926928400059285056292758830166807271065284558431207750306848032686344141983990418501864005069859644953183490113879168875548842676140564509985040281396556405549827254980895380980450032120474503126145790944041122222394260819574585915350103539300268413396828737406441654496027393182078963285352347858027431885421600586015254027001194107111901529580240569935381693500675541975974457539261545540319824762245748668783397695963316396389806819209542771870367302074883171867122995656970782862322960130826510476910647856881135241357104478962275115790272640531448480906169667807480356240790558492416506716170926639892481166864624548563755323070529922919445920845161432078465795140785246646078723791504434575131466580618098223400282938001381571098326872987747870669083159170666613096349606441983169536808231240737674075628869338140856654894922632205826774840261165919503789920051868377718043815831484158309718562991974336406212442273337621085070888861329450526786721887270496245295484899953202921644507776831719677057300801798640035144782136767416379294493455305394025657818705412895003248213584846377362065660659984910634878227540425618009181514511498469604952213799224184086567638310645122771466152525918631547679962605273385259915683593873694207792716297786210538264441349342194665157642683996069582982301309970133340124869363028392511290109338370141995510020915492817078311834893889886439492827633612082666980422896877939152145876204391935937135341605163850346796305559053054794393892689797270954933770159085861808667941697120479416942295977423070897286309323485677400281712649990382736432432548441472451567827202086040870821929299718010654176995786093763661901975766499123891640059828221756307078786472342661406989618056160032465117355717327893213117538887432239813204667201387762604041253252969800030700509484301785618808644904388145228925259404656685942820312395956199173571024610795598258788183458775300282364323675411090910121307370185368267067142363521680769464240077313612107213534529127939539464508699090069665581522805581615542569734735080485704305399802015228377501854969420560687104251013637150819460106334048033615005655043273737830459990279682470178102153778087691456824484062205222214355532486476372253112470031423619585066162399204203906559767394440576515933958970203057171295604834402949434274077172023514209584285913141710144270945604211227152562374724097738748835736096346333110865052056128163515820538438273041688196009866798037432414585502097371288621175236188812644638738521013539650843079151835942699179390409539192716743587219402633764308782538554539052127116317740094681820026963169943135812724239862916661439922624528060842096012461958277563301043675264541275700149887357876932896261833037980832060004461586081681712984142889558845272715019850622758223427590872880113243592434964138885266512716440007819905586616452795374606140876939674364898940247444968700503553745316140873832938146693637030699918633295650301409695923947820502862882431308843245706336897045100739428900680108836681234293387317060504335473397462649799765569512502167919433806210544878975975603499138450382221713368975734969933880373697812555306335249411272345043830800668879817089338709879812541238180503710957773967883389505738694211218491491197060919132393705392178805239196370971359441186862826641178061792444994372155714012660311490668908128708719879530528736979535760725223861032035640383682894799722525296771293989798321461142889279043581033426331299770736612072980926397083471264000477830640238207133920576088431486184589264449094657389417474914638065143904043752453183127276214038155564928979274357820744791849853284547691744756213885305698631136008315980478181055793792332431039050272626800868310390370844132730743627288274099064952306173516928106765261009221385363627552238988918009671412366427560888870391562012991109752312167265158587692456204052233106865407366779924094052601500352140433052803113785172898141743194190324735027527539615476065315648531597665477385521429494988822604966693066764331656952846794421976306007919889287914796137171830576101048583359909900790113508973225145070346466445316641677190843072493028560450787387944743150840361740075421291900073400528324643783075502696367497432870143203619316044069705714923277797107787260368599203210747118246915197482288113851173522682252588848993434623654922952128517680837799659970845236843311628065235667517683150151128830523829438951603786482238617385988013018262657034041568963741273406946592173985435982731680292022047861654745964375801952634467786627685629565116782319950254499183436272796548917151096330118596921599144282367545467129414988954966569835640839856477542589802177837526529466464506656340293353756234237745129775845003597148249337124542328657399563441512895180749942349834467620617746086549945560266031618182453720040534693355459525385250043384147985021994791614544385073025916267497599585564338468162003587455704484025474067423836120901373207029338429237490918379301888132668496974385081292253463272979010426362494422605930981889910107991776763505735789612545360951159780118541753438448789300720660182802298221591329060563314109343338839518798655195979225278731952928644870503046131765201143837672547916023417615671561950080755177708750202534677569673976134197153503535348202663629728493626822597188003367848091827527298983179079831527720328627979228157654315813722959940350594997609880778827472211980139135149429721082588461321879176433468362758335675746916538004370355465496104991916618074572479691037348061296627074070022143337013334616316689298759122945599938894180062322042479907659042039234586312945278906259362000337950289260080132069681127728689606146080574531821946921451353710898500019197166744414294360776862405027897171180652230814799934857915058382160585338493966555823474200995329478008607042965399887573963325249240700559041031087552040047700839880674280692301754231183105442994543264089660295742900704622420052117712987107164457466584638805547268093822744589446433867742163329499202401869462719878426291561160385804189586288416463431578439580548051724867113916863531186012974735385441394600331920488907997123447694300065520518246023027278715036031034268140425257704726586927908596096617905471549528755085606667563961975930995196277475092237989156597379555899694111823374400807140044292922180026566391268414628539732406354653842467121506746775202728205191991761934885129266037581611228119054444810302279329524561677664514668514849287774754041717047109138240008161341593074018954104504209484186123439803732971727780819716001636977482005284844930652373071093917617533269724151545670683272546212840827567457191500728037556557114974401919954893097196376036958417243505638959489725423829577127256885700027655798482006695307584683071154343911841240415196855844794238324998429884364862514346996605334401979896868733161290332802780886597374584301480053474466032337614621724035561107735161328794429947319473544065828857420119186145491654946348846665477058369074826674124031252609301214758954776138286835176697889090917477018920658998810778803334418731922956821860309845338248149688679774647060657108275806430647439834312749939003104435651001191023596298064367379375379200708854782006999055931125506172610682381093321117531239072026358509515816877517594454581159445686993995641173984547781690324690367929322198593186131870378790606985956917551407361365807909633076724630558563651658274847624812869521741862967885863235852754942891682601193923033303086463292971668235873371337495525686395717593544447547358225906292869524865137144288852470199088381852076458646230473077055144618216590649440402575049774071344994496382071819525766412149313465271151639546504720699438682832964835479072651099767480493801602825354388706191832433899156538459853770259797670490463752801447759504659736915857423073353771749225966967704737712531859714487651620337001445800657137619067503272078488435823284810638040098831303690698558978557694234173826928731495229858819038086011124111409509296574513016523897793591822426150553046012703830538909244663987100663678098215956056714806753375157966363971712429749390818644419267415201479207151967925661835696656599269964768729611688596514601159926594804935662429800438780361068800417361890974232927469435421857679242535179618145356244274512528085106437588022971042085949051887885008183838740060347510151520762130673304965437021325087945112547242201584578380301795860228937343950349516256514120170895479507885933074314010096921868055914751668261873117516194593110806692283481277964264053092557694208342687085777609308630037216371223394712406252757407445815327340964921559044384832492858090530975856279454610582091084861433732222202234882766706153797952438218630056846018696123049278818218285976750313289214409486741020445327981528741298844099442509693927626802630077219876054004456870959448197690039501472537966986698595827416222463890287457241758776376014963644138883728552022963293019034328356761366404402048087257791164874715467705393087304518586337847523919314344311877448103372677675808023032807157121936849904419954398828033741040529309631782499684832567164894268725680428412576352985434817586495251413730869544068004927404546775659559599657202639616036136227536375428299184204886884201323163811347035544319970622320894655106470342610112098422545136398554010802029701974446707533765111790213627240298257955219865651362343315370818776829015398144386658030025680683213591336772133326525372719894594826514252936903031516524698595636870261756004946687843936047367016553350160764717339997883009818799777448509977141807510283009930879964005288234160399643674862019521324649131969995990606502333297335542066077125089956458801545371108451764045157964966314581239219636837670057529559257293701492167313203362466612247496000412498909559476095004151122000894873071621038294668331915792013651483520227947960399103774967453837341017401190195598892524438296616458784145173884206875740100926540967255168153672347677953989596306757530401403821032002804600049592227293077319886128343168557616894725420633296297252938584846414039066090743276599629326921805202251443547022700814169447494577951299236560328676918884493799082733946898743413260943791476408220237086248361207303923578563982802468483650019370380838735150827581198927007921515385589198819770290748677550863961276492681814043445917037957385701207311066016106134036046979328329658531776976919151643320547592033784754164295935995433381069846227701918903303023858719505171775235880972443908274332874747063228751796087205125241521205180122432519824761615628029707825114399222273384866437704768086847476469838061510789732767026321636891794787634730624901444862220971385590548882220730374804426773559478607547023933243615877538303251333241714507214224762159941186872454675424423151357731374861215939585249570007463937852240813792734013857542866794069708358513464754942042148197118008023347365176127946509351226686471315189029005289775293576082901493229964379140938622409573432692148631646009305351084408372773555163802695339833333018286085057177684207082927127287114691746236991975550388013629448525445441625262012780159032384216588564358811819490978840663222099616194770588352006597700220016002765513204799685101330284280764865646286934406608427033792423724386776868699949241586957499500856137293658422370232100265725351460400171683317428869302360586106496763861510705317401588853976050639633198884959591929141524108463322334115312835793440309064945481380947395869944179107901271779696443545650503789223040431159122197835639539244293476899942033435990347826071590923985716208527057659118413653352537740152898489096157222002642826680722347132682882568444508271418839195963219082720652659359362862100664378034438858581320352599597810853682140635373812199228299416858146157556618813582601916414863387023697994002965285433035680695473628297810129453063103640641310921633074302678935438324461247365323867732993179161010190660581828100186364647599049205728272691446234859496173970947330315735403455468991089476159827345792833300485580933095899965420816959668305888472825941544373349367757536716397471689076989621678553876554580448774418386043393894725355381897544547596583529738961069355177971099486256629925993040650437992650803201841373414187503169449392312114381222968382652859098374334650245925325671103201195807059651202029365349416832064348914310448072915598052197224579869177559276000596630913465958708090466551430021249561643400264942490308063853604288294182296940830707303809796972286513449581660934890005851091248721482144715169141408752791556968500436554821938855459033809399906861663217087761023756915084146791470716136476630537221528810216998750104084950680963062820772627081516169928144377912106208053567763204535321453844291414737375278189598708640476514818513953274067717439503680727516358026602772104232398780844581380009370721841573338118223812176732814423444909985811272292755191742940437025333485685824401058438023031092614359202126405937028641294609066676882489548614965778899570857442911819027187250176182525036650527562222424275650651065445960925614972177888617084572123234393810730328915746153063022439008326030441792036362554703029484430892088026915324928487594554369227666582452345220002880727088144043028269240125496220629179891759041705574398948600902740907068231078965533255059082421870054540638085792447196217138798575125050503503648806024590949906418290900188966478347401603949233719868225598148479119994069648808578491443986189923864210900016944392187580803533853441806537149913428290252015715445653791111673811989248726283962260990873917195777277815761339866491814263731296851031834665661908956278204894236216589904878802580975578515737248441319197625248437457431501147202183337945166167284205117347794951331019209808433520869097859576268228507532852750588617165823198657938975546558719962417708041596895532878749767028340219745430560050931185026244962204602171967927269356011757779437829648097962248033014774112348831332148789802368047876728837887138550677797985620182712311871440294805046355847741843534510552456321372119564665937496595021069904996198819492604187372338181573745623447176744426513300383891576941791251815894001583615954246017699852077320416736410363992451291939888006357219121527081414048237412752182045422410598671287224126884190012590608942119626601929839154070198410693736995778763621901725425480805530302036645717626872343449490452834129476458168367003717988629708222857082987440558715082277683027938850221017829443704377865664907118897084295839972728273285858485842630057493525119589437755201899361315171090222607689134773947763900244974506697174780959012940738662272545109399255592976952164326647834968403744027570316657323789284614873157622723436774793038908059389620320811910855409680730358298757538745481142569391970532102210225329061021312365010070254454474457964735767152846299884380004621563075850628636507947154020102727798448294988263809040340118171170574779773333679836212644304006614046084100192902822188962802617745583734103056464440066686992019662226673972996896477204668627926357903396519922213559281575408188517179325403875897906070196383120163265653774952187655881045168356438486799194917291010505864154275713380895750328381867742475793178402620409454576546668331675343887598588857781793562755047438599161447497044733696256603787392174951068823007148388843095591601086435975769904367057966978509244324169287602047911463661234453969079429266520781217680594598146419536383409896849974029715842157948973969255586931656586408960689233206683954184170858574907478014726966786477854174714668416594654945816452974071471987461190958474382144853163909623888154724646012340620502519107691144206122471720099965016861490540023327780226826787366193594701936363489889658741027302351027343041337386926114168594298486753227128743766024863282820070598642299398915318491962232394757594544838353248450422406319905523882261009437549954439113272207454798460133536927932335982872684806415540879097228765067747798071337642258542929673125072747572636701385042444904113068290787201259127916391231555350892981734952578686304590179437017047407531491830031015781178576530948937084528074239265337224481160871768001478171182184279996365010690575579457479253801225792658656444801233807049098031605724812121998283139408871469324118327866385521807238035772713135586082132867386199767413176145210570893526570275857032305112613839707058697975064787971978129918117594700328950229137124697475100946505788218162568433892246775157336571054467100691179191279337923415662074589131137449626100163985699049633773424449697475263654997495410513467746786071804845798831454770289883777709760754144500893765956757585359770748468063880143343007542301055339244977407735363192642392687896730454565719600303380526506362168207766515084697386890098184011476221628172547792144333293683514499590262928668803511947118195112260099238761359660907848506910623402015706335438815192897221943186162698637080446979547546118643007199052533891522709246760086447760151206744020635780008892179974357433946504868383830053322519703386403647120065622656243010276619765437849985629400718630372344987053278005144120879221395825271605775528799705068274279900495528544670344262083067991681593695661577468143374113017645582817944153939344166281436367281184558333171296378954385913595150472146235200481567718322698594508834451043291545523242711506882443243295789853021994774038792609954032196042446123399285822391199276310364802209991795928262515376052746026822549173493939693722796540575590925488571902799336893000242612818970135997333805006626959713870308271974286597692285964504806301998059204203301892231603913590507665095264876365510201884745222694578307365738049496220711407883462101607804012862159100641471820115637388250321288732316973118185196853971513892135394927495909011541566360783733233951039577505149631356940446495867510680808568276600685086407328337319676046147256330562377831155095966589817576568756926970139125399405613475201172402643787566414741368767028311247633849331414561214998251574177071624241944330983491510468880952312578114978104065983043658574340084734863955561008143157112854582907324274207828663902161798699705568674010921473388874961799922976848090778987625262098856338443109964178457540232662119200040268207653037781261507473959456977882347760394175429604116739741479100633660520283798088778312256327681775794583630030630413285836359287191117176533912693479575748434017802635741891462765046258752355027689588277946479803757486672375881445748882618650715034780563942078417348405153706260464083509035390353271260653919510616289743447868793392786404654447268116674396027863718478444550868382803591047098682364233687479632420949384818839627302176147365135778499012117277709209850451076907083226546387781565323834883167632442939849432507135902987164598030240509328057531946501704558454938759272494021403877020609470729691450441849032707673280082138810530146176677462265305221685477674114341229959778331300138620164515913053358318533374241634698776099839582675653536821150789563376149984565149651425019636145219560040873512670916697514666798365798992590294322569970040600631085993019698044263412046481746917571842213949275639324242908024973058274706354960888484781665389376108198992723145363534042073158326419861181807918423517977472681777154040448109676100242576149314252595114253811077619805015024780614390947015627633765505880786655503715233782921845894587138261333380301268163282813689162160493754059448999580917200449209101781568470469995171818330567689343135609388961428445598216939300826280014676583289112800433241695088859840736145150114105695321695949368989093481734394040479810763502302264847404237506984038773545414917211062308052274858942585806253167505342341726189370760776878045685053060823986011911640937529949687957117302039670586801100661957325156168137568707989011126963127016825998396214873121693008613567675457410482490443146247229014547656984699033885184739515833753619842757433769686438795109578501978319415702841745780133410686714548191595820850483474618568341093381872214658462477667545991127659429619032853013627728107054482172291601410859827544450419166731878714017667724971979340730872400908660052338219147008878597081301699793448090997985682899039027740618347226694849796987043045203900504532866513679265356347845643040391717340110250576509387875512480074198443217511834484802910159618460731410211433266606143304590412893762121826491144063080952226319892226895334289262663693383374734436587544601262930849429531000363689858893197082175900943656463561326642300590159585549596626777960975391892259735388034319981414599862237973704239184988593614389887256529928200846247291304762373347867614080963029073852970547751807722714869871075647678341470095295664680255121137443468449978159221079541856149753187581697475715994532268641667969451512847799512787581472866084278596541621835448459661132672234463871646305249007415256707242038845340650109712895431355611762992763021022141963634726884352514961059491290676108831399834826409693976980748612985237088304104009200629833779514716267128976662921656655603756764669544167514437863790481323712447299244475384372329856018092785077385988589105421526143671963226473920641569054101282348658083883857917210897518564307083503434715322946269262837899825423769149327836112934513223958778821144517709513425686640361066454471876467376418984553678011511398026821304751104985677117276075728986215434109363297822572062489851184136300538115345206187279936131980487784266913762198283825754381316537688817231305911628182640150608408897410055244636671634846717165190780526543267408475580594191548308443983832012143778370811068876790563625299073141850906066203945432444471905245464715499864401919061374638670016906542361014867411063721953308543089194449081661874411208930748880669503033965953580962195411883243436528299924224883665012684427985465627429710788142231075809062701343193440452193541344606520298706737907546531740443921198478966935242711305492889453189964691847152409411444735370267873832186452596351677584836900708710799430535204645256540040161708393048843797270301273838401938978545820656711712970405487479155517346627015399449062947153774169822431306151713844106530018155416635039120317320360313767159296607725589472583130503752629642292562084800531991785352057143005220590339634240630036910974697240677700694853133143172945387706721904591191700535639443446753099670582768710462665101482583109795477305019483963578130478254462306127113859350228382544448572910935580618160590216461674807649460426273738769337288244613293814964167883717084982582900421173810067831439589712288124502812377475054417616567521900418807881365681512013266933934091444080685514970329736227687672190810899422294857595356115817833119270694214053782002272211142207808090805417129749570197887711853688756384837413392011559734139749630771460504281426578843637127370604783571730746400839048134236205197330452908679417383724158738686524821306582522759035669308791156725276638275386864501093940951719395380086966984018914312707980606418221434143225280979663530298225404629485509147553399041958662309872953473517156298082293172553759362220821758165710696830391756608032651481833383288439056044910687680493457198920377437482132462345342651301981608727013885861790962509393501032390597218255111259081716910483509994519683643259792629582911180367610010606622627131606407710455481690205099304482302968729418663890259309238398078772067179680615916008027783884964905979234236695718611035623851126814704475356738413795994557286191927142935167958121899199950338226564747948011707737027285359193047431530711004366788188406573856728093026751032299368013153292181579032557288140488321540440193660176024735490316804291346406289713535763648008691497208763562324246272964076865563657103278629335214831465766407873027522942232396312314323783321661027741940182252352299324287819382783428299789894815420079172148635412974389542223572994411744381650431815363687710357107182814913867098203590556971716425061692318169669381761234324286416687417123641595232487268962369885285113762708601023220249392981458757223421186119195787317822809200479393473950247164117445569775705263669011279204926425242232546167575268775319363432694320540294797521074263021468780767708146521005823973495061066497669531136763545744631114672506573121534191744458552476580920128510949397265426194415374259165749873929343084272176154609616734486256744366203297467469648306639632692232068873464269378805313271420630054735475194060788338258479618486313004516722886177665439650005197430746645844929551278784480240652294340335562353712674654049000068407452346454119038900574287184405330092835163470252165123141819817039011238243647127303334281594994109294301122642122197701453859102566092785374853915146850854324299796856964789896238202322933505619579882299251832105595176335175434310659901421616204709493478626436159250931776932523104146431517904623957379742620992471494421086795021129156374172845610733980753669409401786183159082168435765531987056662270530880422444561776907266383222371885358723530405992152571009990194951706913132908134759049881514673481822919318541053154957211605582777023873296608305013131089006610864641151290996932786647791156503452305728872640130393812807276392691964418261323292866101242065709923631982471163028583259763380876202306177619157527332059767667726294774798399458522240685362943460370623364507050240755896488974627110255420713897020340773518760333984085369110560932344187238443183947683695225476812937125458885268924141276567279501693681463948469272357400412207517263520255950016044469521615833821907788257857854352476389508610418415766496140033067904623591033770714930807812400334311397448116423303628157869604433832263915947795947986710880089216369879974282868725647133846976502907069155689381096419231022902639565080891053057725544401361869882169646199718696657944011323074215238161309572229657084700701642389516464807247285243690405028538167247238681081558837696765547039063234522175320831835372415535893262675261697264669296922112296371924225873323004135032982412682518411371136665091713608510685899804984260743566250585453432785011478440504396691115653231410689548648768806483671333070115166647445107426267757192654320728710578357876777264310012758986924425137078783302888002255734886847786116115031015153220848861518254217520638512690510125751776089873785078850521612046347965999969502678577502592598711474444426754414584327476427256708362224696969508763165405129072683224455152268498493051980831488313894446709856455336046224256226356981422089367275852069038158833807448581934092735533238173840549847247210602457203639802798354604860218412115435587562927885227040648430131126348312149977992900801127683308633651636527921870864058157546120214983255443267842656914962056274551668475817074071462722839969711181728114603825780447151877312345798317367318023909854273858255161049247128911300245843546716403542649399822210820950320106876608129573535870438878297632605808184446549433910683705725499174483584877304906629764673833460872885205982248253552094844503311831333370912719388966260638850878365759696083626879740705467271766399637424244952965370156770638952158245521979745982497843943446568213909580604046691363162685923252121957931701714117863075534670435387385600974824580117557223841745827725143400173954854562777033735713624455205255354199465476080566649324891975464107183284698154857229491035271035253370090853283539683065705087419251248130141964675871721503450580779776026189261407491184993663213064411595164152542722914262488129760830511486045453144094205941561737386051641259173454478834581562938408059788150828630631688419247024767985479083989891094246091873292566148507633675186072461327813764458639244747044254921760725865980905508242929732239551234830460856513116635308599224860197660941406067551144302952907239952831400970993175128857928909124653371241991681180799713593920531443531621864573542434266622779956604762866094484526144506402509507006130614822806723023146453713644242870198788732277490400220366131694768716640161610955091327227803067954730060457908064921236059103414287355298819864461685725739361815990014821005254808251042361247051463668164271656521261249645006374231361440824403687358439213114630915609816547567070035424405781929233205550482033234088930234689956561400248181128589293026650959278401658211189740457756474855199684407157866187112640837901595411998258611211822241681959894267677122413598308037462220502964868874776021016140408104582523281531590231489640424400753898620784482744057393500841769425876981961563126184872230806032268577588074144466968960666778120777023837683660267357295804573994198757263866261233588049445263374390386131923271197155455902925134805270419578940680087258919931088102076058991570521849846459743817584862319318128028548569428850049593420762741019329192229320819590562297071023278260310556923188836596953191786371601797687602328345387937317476705091278386523604794037454048963979740335600935657943488091486444591725046933761792758659553885964752478370573091026213777816149550519016958061634988886658147526132375243049544179940515643100078803252375728822845974928333727305167165336643171128150298696256727253606436467979847608278190351996609341264538478807155617956240445048503591626329053986927228946653775505429603582228843384738953374024901908629787030011814567640438106893363657677838961400983482105571944415476625816989473974050520235008049798598572288247820631371701410026360606576509631185731255993915282675724660006210517917582586200021442435571687999796653101947276541819209202859790360320567238599621562055542881985439226462759401259625615855655898808280052937078336300831607058723221249873828422068956363945171363344703967371869683199123112682902023693352160877721622104859665135258535274060372513291394973746190651200986224178183701670632222383826152864174582083113078954252842440540873008495625105331687466851692435468206488259863603114359630189931259057447787425670609772597974270573722091199533897281481342438767606241141606869789028350672220090337023729831639455237539529108980679901850661403976677347149892476779869294516431553840180001294857078805545819421968966716277382050418317552887505156864817682069998856877009012138062410943745401565180077888648981624380914234297138638407600626800232168079594825604939956625265536318001288520901579702493034955418498517743301615007508505052615953663613721536634165544002635816606052564802598991113454380279592015819674103795084783366633365057413475124782900093226132229159366966072759323620687686184251801151860443004210639034196202512570853162707553119105640635662811216919053772803574436810958615064321688348418937234676743739087083185661004963635904021598513453347578057941350507128740558866628612246774401149612173447296382252094114984310871184660834991496024679520921378948368459175317138968081168473140400467291697667740259364573286521023511593644375478625034942492502338601403314077474125253440377736364283060437690282873761424662222839891270509746058607874131536062305342740749327038173247369721143358989754574917537110212084315610581300399241299200236199462094764642540564339066234261585345760755779308963718684654876503592548554133673157731902911398334713452607918300940873277203144753746858815158813909654824264326306157521594132609299347456857775725656388322741483153182127722327731409998490297133127107157460127364533937472466382598853930851198279828278548189487705731799873828838005486821046557191206271965377225766437393094470404091417669171867768233813326654927796461331966115700170201021213238859505162989112964121308416932578330453061327186851056829780295947647894459885279574241729819765723039461835256586987890466076998969641118627249208329842484466885504049087098381102586937344188551763017962004981808529746718578205776778148707695083180324848083193164000810156905600298889531023639729471649176900000163511308350821616807561655878411111157371531117770090780244321195427600476919056600472330837430509305533451474536259558484353494066078154827617836082899494573433853410789687621195726367866587630762806780858271506684608730281750141783725529730126703515368034668393812996157233370796462787079302776645353464555833692026940940552033626849574389745885513945241669213408843096935517272130573380645183972790411079392461232492617682774477372827523218473690446849084542392645905375565282083196779498508062663441285534854522984675382703874600595634300429317179100325484293684021887301337628505128497614938382624361268004824315958902958870055393714861738589411645091843701085070231372993021126555855699950430470319397318770756992034264347167255904219577160893820977994792548229222789139393773505280381402072939840132164583241725780138055520419767297146296655308892925466889682575073496003932104745705266541450678151024809813454722376369586313228879847350314916010611863388239078007085830284417093694633088769696578803308680748936810885450482564598594933940520266464895024636329564151049160242993844798171798010004929998157057843864821952036578332633398719801952714046418656574071251653068407995887945939908495741463481586011056434264240092804522861789323831143940478642048755041203808869113723938183318163429027316683135318067212210157677385208620294432720360281134866066797600201338966384480271758958548188949539025768381668372555228775023584348428269917263865305420293186883068974751616575609323549048131493331627203201551117576404859659637363592819911571107674868921082055385720385789342405386984730373458872164235137988449834853909302341174837660535966594821027214938968154943921585765806983933109822499802577275575126367383040973111856572328555890459008950312213894176120129524167634791731422573291969298382924669492321921983805663725398313099695835530183757704577104701073404425461041689694436343333041990868709569626250650965414304101227096194245310847262236310593916193454268562931767673032609108020189140633761286464430630907627593337144804031429900778030170141956199773108043166586495863370784653198337818515822740676385131256190027219762131703087505929852997763133383459197056049814807419996733467781278885541930277956193202562883257929168709283990473338326518535383311065868890274667874836794406454841035352564159432215414838491153517357017240689362356452128237878560677239955120909767114761567358389707767463008860341931871332833165860852908510629401042698298082825985382333313147099464719913859383950386274216041518685073947517133952776934493674274819921933527930119468136390178645640035872985867639317922704399314481756427117313272563724259223000607116850713465768006176211282660534525294101787886389016625828326800044574892203975570799859865752106754028953349793669115786039614577949724338365690177492990155830854168853225873879171452170115347479862567784968955158511026042933464198531464111885513398906975932005500679018651188733936054655672872143844314672470962242084406660898598247271001674024280430686376510583127533765850087534890460571509788254643665786682161243124562828013425103961357708377792167465621307594600506305941741351312065973151092323491674637938581110743212524185085363586456650765031496176251585866433346630086202165859819429541416113693378432125809569013902973032592234637536916515783777701842875267897902430081977196541220843320644093432154478227515482627459104430932029468835622276760372440038793192245129583028852221329128072567236965227044343235299795611693539454830480534810502002545921216403201295339603594549782754192343150542579803340089337633293112090317584308195758087230318995925988591993534978952876589303138088091271377524627016600554584958347295029931464110036382703329969714173471569798673737614384353448203087478635487438305236034929199455515829044955031271206230249935890748204144618029790321698187344556550405301621187953044996756554885380764160202734826056237719600262285581859477831946093765853157029328109836163200275318161483870806588147286078315983354914104067848441991743135068732051992309450905310156335360851863345653025150080276041906633073339836709265295879394770622689905934771775900276458125688623978002364392289719923992443831379073148065750419771493915432289818387797253579795391893671347874866689651848274381730638772702025516523330476611642852106688120511587723643066708667832140560381344347631073144823042839926985525323744033638326810348280463837185340919521776209420460805370790727213279819411527477890948025316467326560586278178973641656257274604226812101885864977843281739545965941801062082843932694861844299553279224505113954203698877726068381207553296391062972758206920770658330380222951682509596902087147966571601423738115524605360924469987386484546135981638970774835839123426120532791477829148864601476445094917526692318593684068911950429142302743059622837703401111487790626714345533845352911666293638906910131570788092584080313899165858114901975829205661211579404287226157842170122122507529208725021116517639732744287937127028706132342908782235335310099660811832230893938009642216390848904989813581824548332259445396364889907524334147950580842321364915450053845059691990380868811174894132993266371640519183160706359583403247991051955622872211829604222204442816542538495586083374923537488244214982833525232890980575557072190037186386440270512972704818025568135751189047680362599283463854706698847624839385074243801853142916857532313714046797590059772898242508629276109457234144970694046406973136224590902853760968769640346476042126076729630741462215906163186853603025892358164765020500795323853825646505195568143302924656839148172853447413132494413129338288192692699216238615270920030366202931562311946139688001084154739379456931288037814248638310603099600806170452250346359774122506842511712766253891316019373526235420034169764553406367236254510263838722062728443015138317005643376947140926592957268166851002498057269832856243303365736312246443137043576858211083576181003740719764004347557045815136135357038222792823557920609054453941318564475842123692206941929662987762307061797529893000905795861055005192364972700638267123107928711912961641690268309469193760999398386268010677369031021778109098497645737744254697613895139644253308671235984144248621441996355434635911407872672963147113914622215414720148257881388611938618368993198525207732990526325163259177927060446930422440704450515762162977236394487204319487301953872303941722395087588312708085921253893873501386775347598117456455634260177975391680137910084342244805032808369909665627702790871675116574795923693737050447367979308718373913506060895955832475279345769479828541654037144362947248969302464377237604604097203103785507199010457967713441066449960373875203438895482611457836730029409431867566606126740663766946898475091426955149884264306308698690909814911971887425185032237207961940621643546043099751352638550578207034607926424108614743444710021661717706508590319856494736393281224216633940722764260885354604617042545350294555715022244837445189210446890104271569591610169373300889798806601970427390869980528488269801405248976683704926535354841119202337834844089660804439395193125964789825738875058543149554177809666123595682990356171933065217804103496511301284299571084677798423775388816877428132363390390723475917320111874520090803233859017107839815637277831398638842158869473696156189526772049883992146743743242872647188239049406207490290446768619900972436143376337916699384866583102387570549677355554294826614871097303067937793550999147384366496620199740710769336559113818834293924973267051180159363268646090425397865252606903735540384549491948175800635749399657297221735845718194782488636386338562319870892940192853226521628309849478665322346182273357958951545142818497867745646553302601368256436957434573451726604147572533645300173220170975199989058216910509690219619392346799200641082300224139219365150758648456801853569121735747587303652319139820639923514678153334104934213185530829957877731787173014093527955347948926676607835689797804106495163402857874536907730496142229073903951155151700197499672176973873681269686354810709596793755721606727569530753823360303238197536990818638510557614930910705050700862785418907205169226956335534344170056143123336464443233728656007166984096195359563114395312355126109112152252289991197954509436663989595525948437844700666142465264224057038631482959752704486641650910294902486467203040785938603537689512711374870001941706085237403797719568281803713206019271357275092742407064842113604117385737454883788385221356851016019628212036195535446590774299316485790401867302354448213596659751527076072843446387820564434971419467847853284179255445962929232253883727635578185286418876337975358942544588581387006069971667022928335691618732036850753688581524449210064534966892601097459750132806558255612868288975425653607412309914903607695457909087542862294562933718675174066698898470258232179333973551881470081619792268061968600617830912415719644547786484463271787325205410489333183136724550842662377872523140046661723305801241501006385775643631945158105237356365041534530559758493741067726901661142064898143627661891775372590853755785977249587095108016239997146824078743395042843920097655080143792865625051724374919061313189014288731644255912953499934126830081684650534757530058915606859199628372649943643181256165007441267093245052585835771126417943214762640095563976920283376583525962430669309824510709678053536615881913529710228948095026180087789973808946984433610214262249351528225253686773534520931809186422386058155158697794003469008402567832732468066688023900586867011328976649404010787909789578420865925931718590867355268971909439774571531494277330219793728789317729652648322436776487220473707614193515691139500958183474569128868444381021258377988210745853206759383583914832918830940477191954124524353956551930617390234843026845618395868277378335731258322959962501450124879851725665372037325684000161318219220667146923101393170699683260787569742129979740516069902239955426722329456714601874779803947710768095885373769822268563358041821334328115462461522116217283981904574419935795732344191274156054909936149789307241718946874820684177512361833378193207632846435901558963290508884160221834313128324092237750331801142734218485357322105309340522783730071843222475479805611210910639494994454337989657345572502480231017534212437922573410201619320261368986350778653239038286293499343198115008800152672861532730344383254077718012780789696718298100050266943023944568985379106263321195714433241594763167475688382455182079572839031906387836607870683807873785354203861968924948234949195998074258789547735220897459058640155308216622028900632603564085810551144597739030339410835897821163407901781421333958557466151083213523617579953828145848053091983992978922192848667548958488926976295461622490864858077148478121560324564338424230150674689862255879420706759912763028584513518056209563518842577855297485072742157745861132230950317897776574296400111975902643997557013233025724728401458238981576653873539755552827716304340245049310363377126571773380594248605323941235297451199280404615651345021503727597185818488502948906522540734662997570864376239305545530040587630390732912559565141632643720123335684926532548464751214955686295936172376268342908768290319461283352998461761065522567948741402546018719912667934441996947201594860442675012767236922661187428707710091670126311247928276445540548957435933963582851789784235335267399592305707413671178453460057770556387518472472174221972464371765561374830039883656708854752705182900388226342468806516417505069742737988222975547803508445943513394026198136705865689141048163251076226947981450893467715865147090841343393638951994126831773689806319752602084013536393989357258134837003872868904740185524412664561663017100365132941585374967492714612575211222914619215484243676042089720141827627934551544611486544828947887535530863209307115998993890376172667715921244838708966252177788384421837804724037132574119606106965199708821789934351138133730432662723176247150572268541300617956980151405639843579972302940476899840778857825677466959551218600293894038929448559330584116587582436879688879606820323185687218404756801985539522513751999919309725404874953001098421346676954076699089835599635186115487186116598683969744524594676444198535914576743292207419823757199944478395835963115486046635757270974221996060084874357826891256052023600872704231171178968304237991642819074467864571651230868789516006096733549178769896244650071514263021628688555589807096257714983107086027773529332050217885914577069575282213890261076953016553182277758616654412951259048702241329323623109994064342402099516195796827131393944580832263022097805695352803814322527946878397677225888223661843090566066669213878374648065077776825599545967864489478710388244611769519309872713442245672042709631029274587269479969536489409974467108426599224235465469404121491772520908065780986946777841121706041013736710834601868115133017652248724810525611380912488937654119286249596276069514429041274951466452080548310743245244887828327117619360954469799553820739397573959078049801456658527327650740464763537578125877065851760952035349748172547018147773154249197576961542823832605443650447158175941646658675502766116675557852235490185150006993013010141707889322047817182117440057586223872652307782449992408105154979709315693283187430610798298227064194776411095681744646372015357503391225376335270907520290742483473817136596620960163166444447999645995521380815776693040368538242858197077621584635265461968100191450581795858377459370647524426051848640114785594228891749196240791708429178719287103586094708824488365539056636164358070579896549205740939333427112824522718683180821670034694588086251597587847805382419356447854018638010330227604491209811896001599594212900340340387250416419354354285288644009997561436672057502080761900657824342888527938114302755802031374393364187971518452300752963956560566321880727389758427588918731120154237834105602569071214815996145004878890211738850881564913121081174846899120581668028772530587637267493878401616381551194789569113647049322270349174641155528999291691600839775009565977743185569473275392476698301301222535934781396280189482658274339239521235228036525960506253563602139462358325579422421348575172181285186035912801407875398159965707969359526470902336977151326021046862472849598042040078902111566536870558940535642569051549107518304574015629472997451757132867536747648760903248876449193601702193606948953515925805597307866861382447522435338401477095518339725448773295350137316935073619708553129185234776493877363218530869036587316307897721048257999242363754241027194430367485433560457257195100669991476480162839313218033179605315531783017808995139845464965289881813524632948040658630801397267233186430527414335493243684059377291250277937540954189922364801123939780546080265961193773664305911489394407735440081871791087169733159779973429857618454987371668969793734894660810490744643749648271520223637405853419442877179482338092425589438255847223877601082109184085435520105980785858965562177562904252233556962565193434146011628589639951233963692785824768984554836160802746313706962871637631363508924712538454494905399216896990846517529611379642514057237380457104842045180570278740029303527162817448495728183213593635731037868325637202019927621438399882329337775182384023589307160340742425816802075968850135815574144217839977549393573016922146038336968110674982327724520209778211501193225648240598543689110072064439973677172310711322441291249199362312214045075635827651620754215944599192060891289704175093801280952827930858997771379442542342100057863983857378172882049978646586873154367645254231685555024523516928367991275414703678986538511696457580198399869732212444057515511180084027491590812619112611186358006519044386232236469133988868336600872399098259954056886771813600550583864368328515878729489054600939838218285038195895198820780726370412202257382628550415893023778997805761902884432805641457749832519701328903748099802857770364611640002380949439252828259679530401294508225990135797443138507482185648168252079743160991142852828083258971918395517952630628866752433240856867448509297863568619376816648172001379830587272815945640740891999021552479571990250742125365942385664692352446506653162225022696539676831257115979562689835089309815727283087791188802385739289712986355947050773147840879205681351505547715557409679520762748333752785543039422184268073348652296304561684616556697774273851420970944709934690079390414354503142603848997302229417759379201278285393735869631632304511059713315619032592039244624829159602008963488507526914088259452165704952183041288606958265935440544239850310636368447611407362616442886039592229865005856409180786800982299673400597551639243717764513122598313211996483112802705121597097233187058493590088083536005482867435958684451997722209206769525651587910175016485579787968408180963525986812780880747131946267923208863769517295290551198599914954766494937212347281157771643086241901571043023376418324175485971832599247071166016721374597626131548603470793068323425284415551920639587342062352949999895864651837094005791053743115993764509096751722123969237739624354722157908934061176312439227859591625190385763894000691815261127820420825418011824554657828750019331988042002140200998449996199300901156391510461355092598281927177331402230884814599332226626196312538197853747285900985840145398349717176346119619553241176136723018945474876296453631242953226908154257820945992430399420100804133104963652060147779162265553939437572186726081591043990400126085475509324782541064700068575416733965797251436065029191301879767527523036252502774235405345606064111386413848510273029262617854604617240709453226070108528195449405203585870246619369696670337614842156886129374354162404237057019011846265927605842230075048779765966370338518297096052204393050111582736634895313531038124942156393932269069487476187639603708575368770954503672764242547616983130400264046551609495287808947057037094047929062987144176938755790739772297111633599452571048925549179472677518044513937417017194666650291103656148347011575272186098643141456567922521866841509024583872635319572345064678172273833824621833962408433865749395207209656242081741671269373658799908743806530056236139644557493977169230810998974156847007608842241329850120734643987585504898135176233434764734053160599495443418347033284625123568931721219358871608017475971604020075898611057718933337686241259727796680196032947461006944074142778191941483995509205089129103021131752326800757776203499153775938448156618696396723608374863483701579366322057544458636001299163862267530551261248375745068813240176848810001958446667431651774324017831114082073507086458808965140452595206362082216345865548784733980864298645688253756466744289510276420370937742999050583026830256226330156145197626733670953424289286061736614289315818986757957182387571505021139055402695632263840789670943647246936328360543415431005556758344360698154654862109535795325783631720487153961042345210843534428205702101172444660832305317625132519589441202906810167209859064990739979380432102975635408384619652322344107327695669797839050716943194385161488595724463090845655236537899955810591007724585587179588671899910163877145037583187640951544868467579536714806269192921854493876178304662035566086469428099288871020465174454467010004701542314778636061482595750161210345112176580277215558846660113409955386718382609555704199993319856344508870532884537814005956285313578135865750849469385467007106622958976268381433139075126827111011157527970164487785937262749760703906642938736356111360803889269958981755796341921021566116360242547236592921207516362918446103175887546468314569199739219586954201822841292194835774813936151270355210994266743790400675907603769342392934504990105540010862066424509484676202342855139246294965047158725734657770477263922024683334653232110088929529599008166533986181470863746301852024663084215208419592055089944040915001084629825755101169019584576050182995011366099521411443025001368560690827243811309773567744748351122377588658292628322311396902059141820183908008027992726070021521428106853994142943007936659505969095011461536196499672581129077176860690690680614146423760245170412625191450521204235630805423917369023442857967620169279805666142673504928780252947963240421630505917502882876279119897608305892460582860287137886042249866597636951745599242667793913031213907144442412554539065922751979885088962849497790762057004786575450038770384426395264042901503138794665127453260638308976594047647957454944458911350822374467257026544748431604810963157744266128267259664769354438113558981245114502827349577826096858407320164544490414877329701513718039023674216689835635666786461108525740302613688587903618571255892028145902084925973154822370920642598115982803019803125779423433611660370402770577664413350003082660071264014275419831694740182294518616144722602738251921387262014855560883044358576972052726336091643303657327312816572530525078652604723273955102291838570136425279836034685033471520223834918833703877026954285712377733817185276532149929218413420633569243725549191756025527962293246945157751317643147033408296389605200077871391468462188649923293270001595514775713701642798618232711800305031999308005954928390188812399481283587747729430815166780402312849495741504943821895095396958444825395292861190787332220671858144984805763905012292427291740327982138655076300731678047490031097539202680350085863507186742464242601222911711461592737888201207336338660403967378936303705166601095019400535247786921887303796056910087119374015097242226257356916616593104836833315423131342112183587899014336911895642710514202201195277578112815565271219548748718264932158315287331987685770340831671980147920473652951033773801359945341330258254902772074817300563704783864256555619723114820877977227693845250919066035677637673426800185616789641651187698537208269579199243904203596307425994570409318834135492744879890546604274979563137023093883919618201997178981490094151162335700473869782298260081600135632962172082291731216066300255752221185362216001563650314795472522099005972778123397807085562576696576731724324588243425984675836904718867012441513244872862048722714923419281330993043617630074957916677125866517158756465015882415651991028632507531077079964358176977632791819930131258128126066747111409175769632963119111264107602044618044067598718440219418851020125762131779990579008054260958564735574435906866273666024036196686637421457162401591595167883677044844372755783240141028527211392119071988404889081496598222085960817747559706230515322199720240871094312442513812638361263033047069768336514682106840741476244607632168800702600867327172842597868395624827864905970697466561973539043209385676179006210542131290758297871175021074034431315423161830017031249862494893353556811548486632615796196274983333557226382603206893957516306639352038652706173269156731585294181773812722538521236264545555064251534367230199102920310633981364615962303521577344889854636094032660153569255826931934650802971656706359535554343350264426160937306681058529134125670777412328889962451643931081546853242223947051305466817128557081462479947604805699834778252153104453881486706089063746419824737142963031964850643744914190870859560024290612976337767037759643709039965298029107112049742629928078504899213815151013717753435974992192895303859189256827941525607239278222092000741511037367886540478655371014259039610373039498455807229435160268294789267207526599151128132325624872604204588593122036231106954604782837984145775747987214220045559478275516638094813443110667899783954618093011299379307986191569791852065598306276577897747834537227493487619050846166807793701143174541258576757055151929546790695094662132691174135651765989234326490403889702947867608864087862249153724253693478948986306069863151492247550708021678116191861374852208524292684173739012789059210115557849329414811169632007573762319632277919972649965246949177451289654884275142320808059278523292298155882768841186060978162563523842397628226288028635264674721352806338340112507578379591161113240921499044181378111872353407116709855784195025836378865042957202750359428183993765796496908607964666207264658673993958449422246919691832112728918131927264772391083854712429990055664412031241459642792072404941770712489138693760978364082175057018544217830624333526466078435450090292015425491377644471345666583368636601504168653704591495780296911653694173066502858273198199181642348602692503543447119558512877937846503203354755946155949156050170080797966413144591301620222068138391971535081951199364163680670628021782215336435920587170305235476429093490989730072847141722443236468488296503501220076967982651440715539548735114438955423450002041611860795034785303673541482075866664076659599031257431090522987717767640556351246535204579860711033192485798444444473108045607994578042457034667892476715758094050135295285547260871810832991232064466283112358578244595795357215787461006572275348298460014699081714317112906344268724481083811248237086240556294859043241023744897990483176209708250530109100021314411933428146790897809483789645681275546745203826045927003095485361122576928658140571541402670102595201460174207603163099863352923627771310449884591612051830309492480690955611310592746765111070023566571363747692392757374069183972568900576838109533168638620565991408667509041311252296598266548970233649891972657831724522849593723227724777187850344598267062439624117661782293356463784129814847261661817609949317560421009175822317893946829630899554330255384784230676960003092673490568613579438369695909174182142214254621584805531863353952066209320936594591414109134817647822405726202601379496066040820640593650557858624292111275896503370513856020966518375151684755969229891517926167821667821282488097313767344356504098757679559598157656430004454399443079930340201865946460761502390347102187664308307749350971933647349667400845319048672322912239301155843419201271770835694861527268120232792557926367622248484779675263883212652338564221012462272608509502519093874968157405479424344635661736547796883303457104243032632127106918081379600052316810102378527488261604537909524203106451213996924675537303593049364916771665548594178671849785008218371832217501726390157504594676976822542447326909920956710167017195343683640981045056911254020407634132777885176257649501355396231497422722578783827548430634927530836202289000247713695154554972523666927160953708813594057709448185539752788849633464993171591477076991680093706702956787220855795464763306159449333076840932850718889599442624219753741697440221841888895060815594261710819309328450201409692983325779081671063698662668931399135885476731637534765985928108702330394396140683876149708503531112814701509478789892748233624839835830833251828758058334465338257189179533532776453287532434592999041144735472041282152680113311408084628218496561107596890772413580623369608745544650965328771174452685740676354798337830830672694013364830386894389497562384967011943463525409503912693399833250141175884257629164769539796237541555797790957803308426842012945862864998588952670570962407568161032539023493517590741442647481932059217526207471573770709942438568187725037580680810622620412729276857988462451138321906416784552467575288480597971603175113397860438493919297194768874068163471086475448951191673248949151624932253035061684736614246614974794948590252028060152320265878739647665016925630447820418428471691084352734396139463260984147990455764481896720604062286308832795447863703411824070981670794472322408674018301806559384680932903855686340938647267407484096722439558363402591477285142458478106218655937170309362235871657490499412720782093901889166032460488458850530155130160625579199461629490779593050526972775119215202988099397688125932116064607774639665828973229080777826941731476587134546190044626713429651698839266190264921721863286480751791676078330222312539012376093619281622329566939539459259675553238695908339277295298315767438738326299294073526667801610067155042537460458129853518755763939345682396933270546089981027911170331175454404922338916796908077802603006495495840165848566129441781933313897104219388144460194669792992077010362718011150930537077098742552447430080042239254245944658374108437852322724914373827408028053880374230448453693688482268482740289656174675930239514962680691992654904277785624102488407743228224525288043442648776157443416021603225308057751787532364923949421877482252444141518393145409083516675863647088706227877294089713898585654565839913168367468491192745689698788595055188967646613752571489364292117455731094193918650716796349522324642059433824787052987825839651947598006266937376570902639538048531254413965824781062743435043279519682639538772218098207220339279925621130748972489592325808721931633237267620738989298050554466430798944391172463386714652467419124476665259957080161498079092029712960245524504790503850714500761934058440879411465814531040263731680639650744177351248598193578132824569244257493584921159262020353986141579139787867112865225817690468087636461722479174841500887709106459306524033696601306980393026567003177743638748397179896985980227970446021851220047254356854646262542501265003160336709826366020644471456964692032765802438122953100627478122245752311610709190403173828554377786110650516452818918080693248898985115441524313896722173360189479067070661354370477079823381270549903112176043459535781559512281132436855836715122197513373874415413525072409463595587741353120955706096581591990724523851991906396681191948196937203740194359293099596760907094597071826753773017260354845986906729880094366781076620948511801119368483561219789408776959901872937785315213652609303238410116361254516175095183790650564690256533015225999693266064779186479040393140477333106796064920784166081964460196189358845018873280102690102153487333171116629407674648721396720866270323530223701112778330278297649111018402259617640756583545213256044862100396678602906070462659540738807177512454052025394246424886009468716667271204594725575410759808879354717511560789149130146955201201752037156768038621658304009835572216954496763358248193365966349256883317467853330841915109121054111176972358892680309961765572730136560184001785302678663770769167607317423598274484511216672031500451072648703048326820326590832712780245410551089534376763995037248837438264034241076605201552560918355585208089604124726145957926380379259681325851568720958108432333892431240517908420253010274737291463414231638657426889847703901841530369596659280619449116646236938450552521437228966043299950501575623304177555831588510834624195796311123003738244683696312047985703950441727928026997555056292057894512442269835696529116107079386735660250940255413736656717295897830411845400376298025536466009714768399598021909504699549198267670894179683624349378162284746066113128840403109141817396737737346992477394003698514767969600282301440259908020233039165723190345392777817786419120101569343319196658070011504850789054639158163774856297335045847118386956021343728050441805333483611527263467675339471639918160118815459355695587438864543538144843526091253395735107077103062393370625316547735724372946703430473418450646979919845540353049961568653061681061960967476393913868786198507088008494745667288037488879433343058026654424110392558052761254145380611549071576593203908717116144020802078326163409821249925450848710199688160378804385566085569442047958250050252729144969945770759543722330878417586351292354045101335803923308897482841750562159990162955260804742493653762105530254707275877816424540565498794270596378754752420438340359172117797436819612217484168094887398729666064234352217992507049384195098724743016076169710151587320658646877870352326546729129456990562966688198450056654669992385574539880738892979868636326198044039041167470750993882131954943823711080919250889658779249327038854682328053507395694791450144419950887947048881850488245451620512353767277128487681036842617847173017355730356077009936768832504446811758878300721065598136612259372749800150703510714016046577045378476741645595762514872799520978935328299879533167111588461861765670214211535812680355672421209631290469778888253781047336161624248993315005934108590797418035825708379103809452855833276650945985984859260700149127406412851097199846951048535065655086222485580539688099426365446196251035281811485584772153749420633098488781957070675684596738591273788386774872412217253317622879511016107159277934351741944885339984288466671109652290520985294193811435864062906378985675019083565150064264249187820426075239026041249394046757266618598716802989057737438567563303724807285854589766106547395118483373598480410560781538396617735336710712561029038486102802413560831858574414784704884588344224788875776654856968524141329578587941043830174070654460739159094517265089934147599554973633347495193634619727065348032960955402064803772585163388803966025538038136379190801021650840134749136613204884503547211143598668803330453775491981458250932828415547511848309291528818043467167699294562700599385418368757782908967642497780468966644231246863139120268233549555314974430954072694649769487032594833935126225713716108944183176866615055174431802472871439997463815189062272109872443630300504890286084509642469260694234723527001053124322458821670677658604216502987033039659622475116849558369399540274277644794010905387004983722819986008038817557885234774130172405110653125684164350859328339851563459721820793344602736574970702484058458861888818206333734499764634888102533090205846668082290214462886145475015730712293675883299233960166646302935755110149381757561559758735200697074531070517389950650589920336485351859369807670022864087874784432564266504334724461299145787642956941963407899094369564760924399428824545204129190818880768050493209121769699672292580583473752907286235734855245891470785511214030696476860275863445999180381864261438798745324720065083971340399485039434966744363840963101171655570529196772894647912040216673580602834775186611903074038838135185500786009867231394198324111209486126229273643799771409317689499046372205679964827700267474983471087181156619021855993664971315399098784935429868356068835052809902267700366360038641193847210447963489001884290642529211371794625790966696006050183554698498496721767059562166875850461680051992479240887550404901426244885010672116755441149026504913486282997131345051395301473278942781572085527336669425361396377228262285569276953009333100955704680748822088976509010591806060664267593519347694725898332907954381493671785572147520630306464542548893428615523652456289722065190601532336194276182266672511251308339042660712621756844426211525368578611067271601059467358483571860736111419499141361069292571568889542916613627428141226186515124007581314526084039462216231158339671639931048377154634395096896719614683342003063594340751369909343279442366265306877012340530342780073543089452374955159519740395231967930815929157472454447809501330240895167893433521959769915324193493159340340050441272643495677619529033871910985933502990036059846603018393689628530205624246927197178211828557645215354941662870485204271260434808149060992821460467780592526466927651549365538060030089709659137166785977731421377352627708037251279711475623361626023351342856220219520107905685748497577610249458831341664078821493651235881498783121027461558877910603523506716094473083235848682798415200525978717897974136497828349189945358274335228119176997596482655020398596300483387144630261119372365028290310271394326635238954898984978244032652640945376378622953300853498638527807378698492289848190691501906512071021659871613831985375976229134173722337872561534490011035574166677362022490746215257321065048825368674295932461157767709099401685665517789335145472834586787182627082795120364755383582381074175987405585947046949593381899008382999102242833325112362789987465229097503509933217490652028721009339203327708790768083961360421905751455446751917032960905538846729052229653353944685696832473534732745042705307515906303062563729248934190117982040840210014946857435886330198057554225269809778318821474141859043191384630242094336088421277524862773051288393852587838219434420035421964788061514740011384822824662572472415980621202473041098822489523358997247986488768356751727259781675681912127895953802629248843760527849418198059333657273210913057029890759745826209871196324927974802619548878813007174613204706673824361930471027072414602029552576915347764880317964160241519268910575446994292858369642557902700732910244350252480492283181543370352326115523864316026716944774746949671005886539920642458625731222307108003617162797639435519104328360951858718969466255976072305928680773681125155904189014335175621825861445778861664395622199921853126889904891435246572446482704348836469555717960913668293001166411451660886580778637783433106021015334568063476217356355898461068408308313769225862452526723191424010854071833391621230532242098050267091823783317235692346018997395245020901556789000203719533148781562793273725854799695865860857718910289599475624009992066092836862806232370907476948456633302842059084229001487420234533689660985508183578669081453182966198389966843717122014981050733499671151833634343675630320684988437867253670670885902465143345067388346763523371525661208784612039250451634610550152964103353677118233556603318382487757570883042123656301837099527762904457468354210615615106634848923486760718918775144664301674724571210239709308219216464912190233782211190326894049859149939679253896407396130753052374609272872598835349929261483647042653075635219692524076787983716799621142619804348762089040248676302359874209085578092940264201326092413367408798388711523284110222314852656469365848166100862047759303127870964648943240480368891504742732631510487807002822027840686029371142584212305901525370127549812332616420834163795468982383310158495467186913839579317865049443549124242703174328977081759666599869883332889488435510232646213212708494076919320809697544364848322210972965765942880205756896652447665074093131396902989774667141760587723060597992858607335972325367323200054213968642983289494820495037250659103345701526854519885758512657383517449961383153861534575202994808501868786606649437639541662695635402881435092574957126134669211375157079628173027162074592455972622671834085874151040200726739309976261909464902449705040027630555134296637632096454409111086478340596072796025054460792520393004381672553656922479304323901576392352801606352843076848521603097813263444683611947426135740392094929492833951581936929024337811234698230651535560131155820911928960917550793708241290355514825610603164136144939434489281713636413350098432529962464249108809838733090865350261252317521731234400450303580536928866782991998033812029271406610813848454565535388663657219537791517491129706987591438899882035744624305558976692915065064752335176556224038693441122649083448405172794567952153223317291009433371139965842661702433533597431029369789081128800564826318111939340211588850578984554711272152326568201039727499657090453665643678469504880048606041246962606119948397905967829625479038269268086215271369382799448584410333570541761722822818756883112945184577638372121717139985731067357777970460101272400197957641475535922545161743710204915304935680523130207768843541332431918969925497663754456862966461068649720614022432867182776430445132169878408315078711218034619276445290938117299938530046844430438640824176313600650331221657023288052311892775067672544861590711146902915884144968700779890927105164833297690614453205197481382493986315723933832949821777714340186164919389846567444739626336203805775979283211976643263627614466038055015097049019148297478902503927184847114977192784901924043436049932918692546997224570836309645566378507536470855208097078794656366360955735272682472734928641763035099611239889347575269453517363872341117687998588514820222520788451485517615848110385819760927496506108208753464121729166845279489382230745981702550226062681520379257961226140623655166009687073573619860778320716747517785584604134556728175146511610665585271708774705988890291096437598713450538369220144139864869277990142008610188324228376700881946144278600915965954905650286900438292418600820436729287067370118287838743007383397433307602233645170154417742155722279797795540286101992289881600847393726443489734115823912811485500987630648503171765777691477702832433122107740449389671693763208343217589264331644775760617128698530359742688631357223340857552471688621069882476495277703372771062732996376377129293308388121400883497986123687793630152179474846170166790613267583511922457121386092102140956693232797995829809693603198592261799480679558476803558788677451300918344031801366136456831735914445930187427525419100315248586185177009449769712757518388964205500230057770757335447607743005473628567711617409494392285629599334221370564298219801996157645324259714461385980339836960664054390815786687657098332739349400503273411506737436355962066975612200535516409680872581757680896467943406047282898605132851468344038981050172501786328954559642722645100336446849393432484432120401498680781203156810620034755157188202510371140965264244049406088967680941077236484390934248183847036865622453799628835725175014938692513000740963453990634872919177514206889603016146595932801378960751089671152171708213751189738726109622458515045407856120500806587325937482918453406553588691617896746764969265043620339699802220925017648066544190811428893998271115263084396348455345286986514844181182061982203015245154710878259156307478077072790575080037162095460418455802860238565731792148612118802174990846854668065935095114066781537239331404921220279307392538246681084468804025548948448566252821753813163196013904054894359418081775095308538624358508807043506418121133274689934333209163354561959646210957212225618468542160341088163288527816952386952787097827882943922875984953737796424087854127424761994796199465327772547532145656449434089842825099173604578935711119936648065449185855521825659521506123856080061374373276086759389430491880676054048135058033315576366736433024126271279979123125433135187758725764663379927422300920790976327239182721642408423124039243736845644816364130331294998270674984999762650561064049662184946170562459469195795043783592044135434995242391304733805884180448328171323817570974528105685967786956633756348626013839398392343480323879836230828741841491093786122182535067184088768675757093220148997285638609938489394022943633409118909445950132096160151775126766285766527398956935821839098756854889009376331109999551363962277552155889858611353659253337440859226125218668979038998644876614368152225999948726539842034205943015320452716827286311775243255256155160678798582443841278679996028524329047503171874040308527114939789657631320420917458339824967941476068078086612807078572467727562062466585040500143519332892209273573153593915692551506019837802229227021819452111951463251248475869758898792901715563641519683854374584673792099486065192238845569921980156519928814421704758983071666784702138011184694119683004412866411424595741626464424859594987764694753787468254895368393274517814981703018738137652144475832260800425750193825348335689611151841895250636495012520158299548157608230169943980486836417750780891219428722598732488894378029319284155057600176565145507560489805388222017077303088069115539348529209837316080949992270068053767511295092139173808898702105670842686283501054811090592898085273022590173881647430561588702808523746783073557507613355667872641883435058625070932060961523377019044732321944139838357857875507489232281908105392599344206875936449668632774884567085645914042482171514217730922534878564648454203791557360955871766705562784133769072834795413283348643437170096519721523399294312655738694378479420132023513121933654111815704364986861668814016349426047098964144365352195656977347392368218740464288127193261164304415575779218066087626153776965048099592347812998602452215765481254385415033155836929243635379970246951546676622574762263347749189823623549292409428802798683905933965216232067247296616305185954299879031183784356835275097608462857647771373748005895781052963817423177115872478107804779467324619804791541561567244480195974783885900320048545012279659788928235257462964477093043622193759839171340730891963727090167214294311254514348596795621896178447632257538463984593449748890341641444770114925067965668689879797909069914575546398402205312939355731035059552845510812558288950124762266744495500853989209476306776909748424248769024161430446679539296444678498322193902467983147322206110353436745378861471723760374208396262202513601759496138778410703729452704035780381415470828107337203089349613229791057783346224917033303453065119182489381579133338771832436178991320033860257390599279841339815058545006595349215739344557110919418313649373008230305695476668951245954354516357832087138959143395417540289160421898975212139431553558332796610468338893433353875800461577391079375305630935528976294234579372748976018946941703708236670008535365298434041767016362502070348895872190219793032787738556412898652200923880922846100068594133063526885006434080679035279463182080246578122627433531963362956354048720460833502224256277095289825828798922547935683140064775830194532922445471797740550122592600746874018075078043572137433425854754198144006494702268375848563538916457240090687328694698937160241086400694383000514160401242659657480899409669567765883083492318039789708230793210139084388237330949405501718066626470610602694106232753452306791581056090698360371188144562394865225909412334501993699166126145900338136396886262696142203000001425487740993946041245620848045832468368771372065990685188704777590768900257274865244402627893634347896246605798602042855002332198762656928944460198556224218977060331921394191156402304544070354433885045763245960239391231974192970761820773135127906239141127038085310008339158319535280231965479142230282631268389100171728264213487789188696776783633956864231239752615360240160754295043947649117739183399407478017815160007147012423991517414278176104160194709183849418389029503431402361444558750917368737803803998523629704738122903599502072729272565353449902230794939443105844992626228515368291852808992187852319710648863607483036738525490313591501102628245502204431801876668735838284252447927478685441526337914961217390090734568917310296534654179848082765088117735306471797916587342462572282592724073523833131641346440271118736403474524922873467753462970640304234113834852062713357059652431746528664350782593080367262226385782198737345693497636461403225747865288956547414253953217321165671452634682559925491524498692239131406077684833868808158918499449149649623503385713748307205433879312434979096853831224106170548400907600232402980804345664330334639025266352460334198754680851545951782052188924920851375326758523844451369517721477109034821297461030425522462493673927526277351749741478723933445715795484132068110700975911495828664345086515363706714712301970551479809560953260859190051962280549697055357558890400188577533712667466560811396773123668434385903353347394194960018854406375950554798783424559454046675084484670146889989047074764722803858731578802514138325815782263080617229991772740635163288388868481954656405698350028191767018598691249721158780382664854145076666172812134582363822405563349663465592577220014160864183948348147701874323634503658314260685156660477114432035275815569051751906936069166674295230725631150298688594019854465156275452487825260491458219678720028126170553720972342503058137601693486306391814634924101857908816524282719378408287747117769522013012769864245420884619692316607408526841015707472293511081924285983111806020153704920484355075275202212636252382342288440004539483784137591992051095708828520613667178567728895824104892937396007156251244462883271718927714019094556741044783983449886536123181972276110665566247877274720637349487722307627726829376110770387704337235951427292885066122465129190650982730741978636827773791084009852138547142319502025602951120971945017186132501771576457031559166707785633494404835039521836899327246416765560400058388386097524449084383117396421712306798680367699294853134315999414182161033869167700736023201252629674218125939469529787885745931396685965165325582029635788652938782890181571419985090171159672709270339642907297010499811318560832820000712887709270146570163413212052470396912431554576033518255393962563573589901465904644018955901414548646549254009922183529594794172989873982839409165910556682950007607997566261573470868971844317326982093963533066513236859000004399658647229396396241256573231338399258847547007002133982593788792322454786434852480534121047060526776724245599813534906745441545730296494522776035077238680765371969365876674073516092122202006308993053873968550195139616047645309276848213339722583525426355174322824331231831471355319806868360684997992255817145533921492621228932035958052338943419716660002872362664364249967351248899644865542760482206357515555749751632684748332925752056502977770780606629501092920058092931895902581728448451659049301580927674961401770713142140301797799195673649308528765728548941915509246043975399960237214366671433893275807724735235664923662524403370792609659213220445419095633249401205325759320651838680376323651777449925661658552177615683952881591043857368050401302556664793607238658584462522961086904846470545849277007639802152867290341864278362764263139427009970536524820926071659686026371887985576461602504922169661660302088450879593137784360993172117667719382760569947379191749660304162345121032721319010558322787259671227559613644002749750885052772714407801887072485399848185159126900571015687840665955058362731677144648465137517289063467550381850340451578124949628878506954686314128036064086613162964143978851210067266393380252635895709042072333791426929508957968781039543731517145604932179623492344309224367557321054206072399082229395159825539280716633468449236617421879941517137682114259759616712459988251202255380138472040136072602511523721506214071785707613421187675819227006997844262056927377048596147966571770568444253156704914532629781214463679080799368362771843454109027059891932953267520021200341569925573599731588772144725697094071937825834505742955300812768273588272772415188250677703903156303852987105483879198072278783912591711603459858473421681586290825327195313354182496407323963808976865464469255474322238827489034408589069100873110612720856285960653848605966085965568301664614134693291644734631324125007219797256849803732046580801052849679587910992197118385796547625364727778656529883520399542839973227800382552735837782966236799464559253012702339618198449975174088241660911908138131317842507284845631885824010838881073541906005732891740225245459948181758113093755137535428651760170704623329842091997654605640703019115676305098399585937248031168250084894149125009517846908676091164269284966134612715272468352295969855090936558300369878659534111302250887011587826077109889746900663241687103665863020686780234393779830091424461952410755502608727263247009248742368328767844852354548074181390220604906544062921585849232236717812338084711171871210821436559091594704915268514395358403266797436496839555240689367614289357274087389463924773010678147502187566874251664927728662454046678603348984206610219595527130359323984885425879066360288263965801512004045915943108108576909424624658223805513220278423223691745252857236917972381194911167978764796632419079327038490111649454370662120114071610994399452217907489448676515902282228884121457651696640330648364985312721931639995578808812054029111399206658523996203891684571325879061464492130054444645484790169088928883266984253275909478471506305135536661288836241257190498777162789352623624054842737419152601805337742423847925393047400569447551591690091308852550831396457889876386056447932121148720594134969453480614070089482562600188193577267376881370043948041118502642320316465827687742781557272024758007239052626430716393557951198120895974366273447897159383171684900715473733742826862754117552633029962857713369389488160645184078322724765707963632019881532967853945988256559008700729174631440552016955687241911771185322385357123732560851929416985094769952306395872048842633043806838354836246795304910797198149456696109095234244141775976762171715831561851290399932412046768089736325915909934044523413404718159807061945147267417128299838608878971106315694549829426987251533871842408638713404439270351226106237200583901677765315376332232731406457095386198347586456360618587002463606819139999014693518141793095983012234346652858577253767883798283844830136959076592090452161514843475845637695948419522484043094416859639661993101222079007742203383842160633082822071238858679173702590661071577188832131290036380903820142845463699872013772596923142260665975124968790857972080320619166478686489842246098470365353182633587636886314006586838405563465463371478696917515167893850722621392103972986318142973374382343938689791841264186930463404683225406045154580946602288548942723277339205973090562443880973401542989149535591876900811388524002957985087188491064927928982030865489515420148051669805953584254685595298841848828687893910018051941468310318467346895100045234784703965093387563107221773298518893351521906484234390733359280368999951946441913196028455428252881310920002393738565329878298424514549543713929163649356054821785103932411805631483472409954134344491632199600004419431641036416036173793800945966614676787398755044642310614437463722139247186137282851241609950747238198834527667715977318887189958494045175203376701367686179021250744794468071935822163170456812752258742235083462644858915185853177678933272291166612027741852519799938910798648925833610079372932546230095990766135280116190678059971600678795763269536673060613235693118598063118745939488918691526510302564723786991840256039653638003197619985027730827943911498811031576340122939671974855493487943989238541634844883358970819434475865527563365497795691742781091356245349321753539948076345932217446129206977612428749800043442831670469862699587908523830071597693216002172178161220186616737992729686106629225197837436288759031667414391223068624670104464976351962552927391568341561463730989818092940997694755672288462116746081885477868678636945864900222383578017342827071828110135698531211830971701092101662974275605638862557682718672836456754557847206730922950269881920978913704649802964100865859786917233124053339589375702368804838236672765587723786471446764528911302538600385361744968858725281422386294655411505416268174150456213317867484479469818175761964359035971745465904783200564530120957068666838182972527525771286145507902244761303890293665279720761247116974569553609818596542910039562828796056908379168081665581243774394896814944149464088248031997035981989548400517406243404261579973042807912755101932950812680966889139809217920675348649035800181477095369083170892944645146678988659641078759245271335788958611761774913074054237632971881703337624620866275435758182407754815786991836434073410829786613185208242364391398432579017673541583942725782825149043103235431786276255308110926527053853971372514916804941665440439521392498300829146676822622174002969790634791954637688270776416168120552309632568824356059985751802289600238643689841103080337151499779310373152454546656310359002720365437089212846850929855141039707908584298976098832631464047191927977855941767928249447448823888786920870110675473943114870111826210462189190278559984845447158646688037630958910595867227366310719317112104610728800457215544090920495020008644712456543696962894925841330207129204448240957629593405108336127404724992507199076241408449585277905744489007148168161937513326050136871683207210634824264048360547209776648439166934103684075034262329183451244180220681119237549760023843680714806151992813591104495216726173278336124852251204590216044471198155422634546859660910809239849714921601875903109242865592583062880360427162996877897087168103699769816881343150221481541913924717152878276185251899369356284057176242080450567119375158117215130384085230306257492497829216894638595076183843044424274034649125897258532984145722107097227449894728324090991852761656321334734713981324413524816819163715464012249279915066195790027187843370616056188190525311096204852610184983022665286411477277903029505530503381288683703895057954342770691354679869953256141062456923088350798331793315200562101237616684433663519796152528752153679449544542106746650187328976022190817523943983987511926463837842980771260791710447036455613173116728945219665019521725879809268662791991324901504831183790097961822604060637699240993358288877265827763924033108458528199652187879355945551634315985612207582520491931584846508894825421071725055396442952112431573264240805013147301148232375853295837685905269472835479346965945521043102530386812926428658916157660318225976432946365396081075290258057700888512459221837249138127801428062014554932512649381953899970801743910233780504552407421011752411041525934089160442894274411740336157859746958205826266883697266571946594680152368995894394439829408837741567223325411605635806805781307605353746467111655486813763936903644664845975551002588437130986944465411459190440381171331456701912761975542213412878265548030242329914314561199948124325352615937760634217030057816415492182657743993499630755209481849362216054034086202726731009751208490813583002390220641222902729761008617619872486511065560395914646395325740295783433011016627787220817603933554339939584485239204764967802556672093112109401949177477542118796914373698895167377393522562515218384562782597663684066796107343477729714680020364411447185277727975693482435739705838272543331709887867669030716623355551029022965099690399658344012438439667907121714827472691700857528602152780789878062801257971563258798507644642215995546247830356157317213931824643914852948462374563248972417095248537626163967996101681556685591480376208734839628745750107212817068401756568018373562448421688458591300951527596884951697118839554400372650850193559835421858527096299229373078773343425178548468511730901703931630019021397142508204153618612600295880619658828783864970836136490440105251278789090092341916210888881356890555101874823173813480045581834532879741882264682034198532499575637045785861320171956703884880062825630639775434453756166750544009166654406930789220976525283917174328887548912178110303432044539622502908628769340676411257120159190543949795669466985035100032673999619138633156973874950980208176285955472057045469254466820874504599478418594498093327293246356686881518344937640378288174812336130394795616452651595371599165141739446368657085133070183447163843567376240364984132380013136123130204401402709420735366008135140964737299525459958427009790836557496842184819232831867130022982749160508807850094293809117844542529063475295825192652520794501221318213042742448356702292064119280041317943036353654225116228167837705891268544935166896541375429367777757378195185841463140380032365275996027654472358127550662321358800127421913656564624217307224735486185933560604929627349989159242490846080445344182823711571976020691325529082748731028840190442331876107308194735649633460298263195156332917629551609384672346145352181169680966477563233128926573746860375988165380026295258297741369130425205044107952921350995110471523228228094298823437643880758018085920327492127122542829705966336439409110378461892113821059065803526539816862091035313120596969611073909408854067868933703602274592073846058740078905280271642064361122914198406873219533766486528645604593865351459450675234911472471046435852895257484701533583873287124457237664815696679699249111812252036899364660634390093812526887375352788390199961070066994137184763223539151514068461231353339286262111398202028773085606345194750790758569631836927654420368143210072276106998557662686541641652372180906148932902398455162599179737498632641387964724345462596082167885062145257573740302386697068501363760221534468272768058371020244905035728087611241371378387206679179292369065360290446948680746554402628716734309886301154690711070253045026687815532511098660002464889419800254276855382948214754748242594226679319313676452729709470843529560244232199949853621694099106096483645693673324803712760520170905927625465971395278631158552926034932925029339992495511723367624397920048360052238770214225954107211841716477127938068684140720148417548607026400618692079961200352079918293238170196185052071199239352364144549086823151655997251836739673731579066506911630917264724980841603685734035887355925958000069818123405778529331786341309210942079645127271700130019942218569497634463405918779150059143646997398542558504144481882848629066327130584614460413842818580873653517252568998382239704049029258313201152442398210453121448577036321688506127116107118832184643118194027573726026157031436213699360799938113507551917213967234669186002432102126990218005571942081702531377487136174348654511201784529042405275856702802104534414954692046743029631257541823362488482467254296657604268228571783565301855338783269649058739984014842675245278850627516945512655508085088162117610851885321083655108864319273000615015095559121850518845396417392179958822101262095533108739595750946181363496666676396875565092644725322422098850828172962701116796235692372828134532385113358254320369982086124158815070867079828891991907679377664687069311774078242066917852210255377156330755235878123248511440222152869090308898454273187039876918299189027091929971446678488045140900734829452070670114440002987309797757185607645562425168015578746940029709317360686494673370125516930637720422673451665778711353456292901269888347603888488707578394413921102909317926146528580125029623314857525282638572552719740014442941455297209716987703223311063885431204306357011710526365005034638256801606952121700298734970997157743993622511884298967656522914177325647365560912452898296409325699481118497683907000422318025004290152239871376022817752407221275663964682228793126626764860709152472892370268655321946126849337119146766895695275816837224106260253154587946493323951243068882273511777943531185643043848260373969442352708991768447341943779252505959857310643399860011015645408946795069714659195298145152840612144616988747174106726770587417556372244585132941718150669203667427854481330219620198699656953926619922547622574385226357045629766426507052987677401183065107651711618641881699188410354628349606413693413823051033319025514390093728137119505919845916159656512370297122219320422556541962786774498614863883950432604772138131805241177153718081751138908000195562466572105240798033888735985179273454524507110015281265699947004324674750832502949644784988199733888413525204742517171932227358290435640527144069186304731040928339759427830920746943223556308444627616933064133952644435668739690097755046334400367150293808925957368805086679161806255563496795857897367859598688551459715565616059238289087450862480424987461096155424823938861163064957074612700740679370287614015634579928382555868984763915306935663782816391858552270112065627604428033228848741622170874288884284533199891048530208542834615088937157447057181099753815791018100125836948347665287369626996374247086608922030166965621743160153595333106237902809363102156480657334793909108549085316883566089839212674692669115878961777287586912445158891110217087930812100226295511943845852003557747568520379025656820824191244933458138019669540801105965376606925101546441009584883987542799026926474059398633815362174632252531281337026773716811611623395480998526883622468661140717653709736242072666129498712648698803504396072241584325221718802483560413022089812124259973319139391108701112554791386001155156667954409733239512608448464142259935208535986522139991494252674712038674330645611353726433115801902563042921043154082019571281165225983200022412812076187136345472232952470860554126629475832064798625260937284352656958007569865460853648061006520590560624355870953431902287562236400316794593925820076264267499004273217467409880237163910387360016205777849059334831445095527651156530259945113537782745016572263304606206152269121246378797525275748849585505603811364211596343625951055260645813870592163295280456157331773675438930025447240421844479361424771277167937241261792248619167499102199283794090197213620583265297397994774812840749782425363384268450873220859551453571198052163707981662184883063889184875534643181032587664136995437134589834981491852778072535098234786456072986395385200737467973861420639421086946707212193780538577321969729693363106639479836627240485632868958406302371975991374118758559175920371013594297600537111562613308766798992270368595486709758066828604579867943280149585599869309763671168423388267745293420319639083636900425170643726358575227825353322483046032869977998125123135060772853354111908579657336061374578325757595569740032704182486108127200203354517579535879133076367739030535152976267050351823075947105319897701873972439957723108189814990275949860293007845751895201791195993105643006335873465442394372824437563157170610160798209456830031643059940470598366696070067981589551977067324739681901896714313586366119556945378866913524397044787444134624210647247445715756004676042593053177791528945468290426270682228592318029894389423907941740938434126848907570979788104493502734576852524580452846461499857612766843746162119919197702066245288422516265929363941315140317964757405264466184492353013599685786870931028628807471213865712871907975121522635095011541341490127818009992072994950312987860830305727007922491742294154178491764288127675221734217045464279668316107627940278802830392470236513368160427354957808694188472521772914919018105364056012487061843658081240618606905163363328635282721605635374133474942508281705581509861139358088229796475996455284740469242050147194324368488212951543544322884409892395439179248550897263994693214593975117236933421161204584157079701147786025360281220135819662923649827962762668352883860073239033399196147324478660816862623416450008824363425203903262710372436008890226094121476822768921006615410954371201300816917057529027202515609811344097043619215029242005795173058044579873695171079028020202304207684658987875802939681227586507783758068574272620209609895417670606391315928221061670512108008213822660631124167721332398035244740087882438681205650069374310592667066461763288695041931415492752462647870267410505557370660805482873340810279902995497031796960272101103464426338163056019279911230834759083130967662479834731761090365107044964910399185541032234670977225567165475810827048322761636347424337637403775885983017231735093457108458997267549523205179959942356336581186188759558455833184018413236335734550977575632991180121653912153111422796072914468166019042834509313402788357943719047639909660534967385266142400866075013291426149891941641321461646590059479667864278122666060333556093771169724256322970240501225621368681142746627475992464935198928013630604586083512844554923440142719106107606814235812087630582789877174417063941410397045905936398465265235447547962398585546114852436873369977748296213007287774733763863886941444040589341988760060468389058638350976723666785180342536944100844317343735353790069496214102834870311963895974275563967321463268960626019668485300709703415619297626275113725441759156307113722077458823825174149008613126412494391844408758374117977226894665857429125478644565170904831408399069338753057950708848496082596624063891182096339553383401663947021125450468158309460322843386928259894284166868169382679812954546731566935077126224380985855447838509645132971817232419818134903641238147541047965213247197067589871155182790099510025650787488037308816990293462016489610549100726682813616017481510253535606847949554690736586905672954798778124022966797151159503197686724160329275718921006368720768211361812848696810182883587664713621941250483480332552280569846881727209166653687238456424951758347652631747718384720546867315348137602222200280082886382898350668064915591174912605410702440764220940355018475495754033381185042617376702792286813909789393069126413811838466482353191108515782768730613433498726536155689000562088466302764296533649145007907190637802308133675854651459616857703417321938681389704695738429896578181320380859082352742509668405450993049073061299048945049960362748464126406535404122462116463955763413170456752831791970573279101250424430649847960292448750711004039567188603138154524798061557624179010328381068403808550611308295955075372274979793039361036259052964203916337984731653448155047232037428230342891971849995033347233637841026801030839516992231803191705593958771571198336021416807687354028403732922398240216183661694428936918093597068797841220237115669198407457537045299942382986227395008683378253930569723109532482771505943412314846935417550685717179415241602903579849761824978163603028850920018244481176001313506091719555734659823275562612747652169747930597805308166468650850473366731342853578816398626656450176883538445798525983556068978689479015327728512152032558987692856232604123928734379286366447605084859273388479294434859384330898548247728536179512536106797965402104793330514856958784812208996184062301517836171806857717483494931702500322538654795625222045548263529395643749563893785236505193763264885891084682987276053558123921311060299255535406098619240464590739145242003363018583180457180043884640494509604721072283741732432786056740712333791518097113069792372223521916338029392914282619411253039466716353658678475974062682386584465255439082036650115479666386884397538865868989768107290161295150528588164997432173357647027024907868058657333329723861792507241335703672090404620007064573652737351262608211131563275605951066360408924733077345434260876040972551559710778324909676941426666171239213909410312095891322326666641376296923333741079553804083587457342367113095385623173129627559123214978228364558086145806753210359918815904336696672065534880804311721254845001621833213722023693203239431827713563904897619843885334987540862530476280189150752412982526123405094232111478663262056130163830242936779854058844501732016447580827999273699402167354118841240298529361844052098774800613212944448113188222299454550176384742950840110024425648245596364787278487078078141916083445644708968184282136885801352057178946067724519937985895074770808792984017410265610628829486318014289175789457658174148002006289831387322253888992819299622575507776658572013031146639112812272015826654346248504210450188632119131231863728647927971604418755134862385338603052907738948836119559705259035836419123309986148219998838183253656894318256218806470535677606867697752886277215797804347581435285455853806456620174591288656736715889861769621670333866354259364854543947530530385224877073321468021373449971035370869382062091310928408735689454841577127813328300852605223689808440595232169397545482494562711320976387636804344111106487302591442213420291303161696131753616013945859423818344361971952108178436205534653779945976208835177879138386445257391484029470738346256717974860432073001768947760193925301235625757567942229109145890480650433498597338268645515642444240822365233297008988061305023969233971496299329194765229506400767118743634929123837590440443035480455904453757327757931613226253411914798104027579392388986844599832734298540394512539473796230890641788333728256422593154618698973515230424085258044454572388495253289394454926605551842354565717855257343718040480963441318645989007521612425224862154601466285540633065432943649577401355834274653622258852247326211797050517674617561934905626929818544029268688160742441790782938761118042613953476224658893593785247154077875317269284025899579945455221292751340365192236451594277148671799734032709662975246861144262127228926813907066781361436863438185715385936587384728288378290894468463212122826000906105561532391513205054813934558102355150640578198621781698166854249118775346956847842052154676426599390221202020358378658519908401331279540192680757062861104215427367843146553982600187440979352525696951906198296699531402584580810873526811792218319316725559105780003795882897010459672945207505955295728156446930104968017957701878223464941034958434499815133465615883916602695741262239664234386082472401679342136617017662644674592812837277533232814010004243336264156411451907632714953431162090590973664164506460408528222253198513247258356880391061966707955237614123334131584277893675968966816306643816784945743800529599962545986414206377397366699080559088456289154630084421301668165856214479053034239912364431650248657972890982135489337413606297121298826954667407378989623196509555963446734139377780840068120938384437550865192337917926994391868832009536415404854632710021611835204488693669179791561507430847347572326543471067991339304268174523374811079729480131141308012097524680548577556903635126445123620874741808894504391211347272372648347087742658657620268313299517471943445734091852060157569604901539003664290825589387072855351995570454226103702200428158142928825588914950434926557604189792720188445467725036426460038333893711917372142938312315497009558844080937901851345838746187526806998929680143890905351901504848136989127028480387240943566188816329640091944985725158392914251657794609443009678306324391076824160151738033999051214948803083552282703877420290492211023191808085566663345448567765803759350456572727686183896848834230930175643768379201657413447604712267560554227852485397138542819103380413308424211610746656586726080017621774269346415130961833482174392775505906245605290806273463365852443218956686750898097214103076620049222328833500227001944243524500867721080050303303448227733913200951417241996288704564335291847618536496631416137735606224506053945427341702657642072795819042329696077514221676422565004809200500539560811036270578891528411525721120252743824116594338031209745963294631074478429830662475113485313439459659735749198074687684782727059560909937183450265488855601875946934732299405548956291365426289357207155597930337845684296414751410708501596622079158784723426386746116615452978351720626863254620888506430276041831745118765861840756674641220637178572804902323209675178642459435605581446095149619729231433164074493506791107284409577361601862782430568020257265371998405221409679392119161444893307043274566911671464199390697483754021303451752741639214977166693068256846122760630113870737977457800263133494959992584027222588133248155521178733315405593576536469028328556530800432830689600922144509415044126225077554172382417788437150034855477852655851069508075667977585064227584363838091745474958945088454465643062058765248047203112065828749503363500351655638053001532718980858423430766538352233064220497251745774200389890796374354965618591479758583429180602729624541428689992783092813866940129003592728708129399597533313940184105999618110726293670111430527605924657474944096354292826334078153570396129474977240007409227428351346498739080167618522208970780214311285209599045683359169933911732386240846917661790714756728863766930077862102859694111699346444354759089492042471600213842201478218076091275210823121335695702653993406971602804171269846854355659863968238494788076231699614862549913763098069653950104082828900203540397944874888332525319705373159687083015364421895170539109594055569220654696198614032877846093192865534480506078693485893918307116558423658460950964239783255965190532572769041223605726478999603104433876135012333897603032982417548041552249081817577115623322381865402341514080412006412727348637815790252336306730664716583230244198460170811111978731536141151564501203631231887807434156943697538645133200776730706894157808398369145737928507677580921965283606018681643880391713350838782992790977869642346829569288690350710091240189091083846824555751672548042772818567555032125558205072698235795394378287295845395994170853725699409168117007474144499071156962498576477097275061610228475847683590790678741330827272064607450413960529147941013942747766003740301203685972020048633851952683858952929591892770713519234551580655242263868790249647268940420162680854599139184182245091201800086149304012915897804999843866179515248592008256656353328806019556868767313625394656821065191934761170241449064051297543868232985807717594584348303034243632141649397047513585791617569292531949574947464424725647893135065850119315240177576680404870513115564866498475837263904216414849671924644539624353722807049804467902930221864391811952811797556277161552855878730691355149587192985970110563022239492351227929338121464395873819687410250572564553140579968981279580957671533556817816625587714542769246115396138077592707568450287171730651165712083583368575730852662936670762035864480285923253321556620794333217740314528186988762977057683323658156201657185866042573336783246702539057388874532038265512202308618144601495051710021921322492826902514350905861812644470112001078727916617306072155032321341749150645200411192273199343392537494366463703407997570372217391300228308090982271795122746116939228938451286370704453335720640994296947873864581793442718250347287137904563100760842963851222378417759969073524360138310433543400098745327480861172882373071669779674464281801883040942511755327635514843505589197617389828003207081070753453703604781493193206236858023390727357378226168435752859765995146276307174747480612887802573946281603679952970962724295624498805171578438134791901946197593303701215315942163480868230206624116346028735504981488216070690712160746505775082412839549775343957292224427145580180088754976490891984112412953074591184632072878250157870098643149935181202304650426540989918604250102843792255484954284612258903451498393744525126216901621914824625540953909296861210802850634459663534998367905569244969798358021602135606904370884857191123622610417972481595089271662969850075523852565760894786018131419286125070708229994805415853008230304150459022208294894142294533544117566462775068294319084025221699081408372720184302685196970347886232835954831002304138656631703692666728907903818403375725708700061519673210609799720351318828457284728249682415630315767412106182294644335813333389486224126782366186605999605912047287991739767390913660709925012846163138264534064742189015088433709332078991220698533440305595658075944432884017722394778868592505345413859763566054839544210835506958275244141182136692082585258919364999879216247106258716090861334282467695919579197005632430680282360152139753730892972872453074056612064812539911047292672940996648797846827601167471620533152323339012108543066694121365999707608641142086529841646823928563647322123029535626908274967979972961795945631023541613214399201446787571950173914970279459809113097787761158988628522048746791987886677588586225521434299644501295577949195787298009046862118804452848811409187030457150964270605459912089559524731219821436408683172786630621622380413331179352396584425471440382563055641561144735420715882941133254234532939412586007633151271675849385782702485777673723712525329262596575711576262570743799350436929225302816978757468657052188011267334470183689998303650634745998034914100884079740319706026488905359077566470962574308280041671693063954322573248985402313596115737950298194857413708852810485619184874444934180098303820443892528674570384610677976854463842770938374514706665602909834617183513804048426199408440287085232480128555996398527773138044617982019623471296906714725056363022853344080471215484207248372540998703154720584759137423897835896496347092108169413746112140770189493603461481799962289613218705601777689919741177939485505866671510685808986371561484711297076729020346186915824073791540679727546260843985203722498562616179615599519462003687687401783031212928824634098637726685325468632912869473022803466585460319386573220625346563123569538968089323555482096480384521030255492467670824952134018365742243761527695484735421094596623310646540104044276376290710991354227993523922799963850225450635480694304980530114790085808073402462742495783508406674815098785068903023410590562329208059802761339796638848339449464682531242661058781651357477424798115031385665999979092679586163699062339093279942637162033501531702895171144872115430728984907292435858180118472433014022166330231850086394689601039602984623342252513384473763760295482823936774127512849629141614459162867297113172749505112347563475189650033839117800082198475196219650985592108589895569207922975742637903833211587402869639043913313727931910614857967040138701002567851739564241311338089685795276647145473064821852570723915855123185724707498281608492109713427550505807706315660511178512103409134873978548993678217030550874766237679063332824253886495253364692290835808151424493465227554568615341624707715755740284860519940774829587615739584547254287774385301857370476626496424252193365328613209020437979012715062288485219280387339101988751170984694815144092532711316876876740406016998206607725627400329575844812389329806508943795211414229601076927625223819727738695079111476040715746476542924162537604307902183903695818383398975319974287200070544910616655833284225644784053852935106864653834733343100473517715868801736865648996796327322068737839318342665743683573543286862897224594842360044272513090561359096369310010683951969332095702025925677937010590252324251098896491478649853184505389024646732249801994795388010088881369147128773888162092532413235063282103673625857910389382779660692996724093848734973941677394529296531473228452975686916194557233292119432764099165932862462927064116919175060880469803098682634845946615799204596891951469387168116803965964947201810442646594436980990156874494097108192308084158601952276507079614291895367525904100151456637498934549403664075190618203788857868550146205875233601448566553618408095752248773715930695298276017710401315532935936917499799304553440005866117533920323950334004506699524711864664733702723650714830614952876446951208937726843566909820458080829027174546130306085363289926849333932881570203117185989567802909593595272521931435920660613236030886315303777436999931799493955020559391623548499695718919637649789933136702160256980871199780107895745875088574560908891533340535521962078967089704881382240931851581809417251159511981282565272415201128057595268245798294210667702906592460163690081392080097614154267602896356721880908323118894540549800051074426302801955794211366335044221589247106368413663972325242857234606754545106764382175086304334605565794519628823649651092817934125071841318678238817556597707852653383814403606908425161697316073527751630369477789682710085106249943252722971385427796566001158810363592011106478343128822069966656810209648456134685572569957154361285887073889313858615638758510132625996369849812739475100776020748186030376843740471715275274605350001700232168514281671117964282266769361562224951208883901618447829713356834521266475161293251635275792566479659266110154336538262751385040857285276979882887882510453250640488780771541192744256445217890413945098038859159667342054913511649087772713144884418200687154165104201725397395683858364204831566262104104389228819507435259544049208951632237829834215862459215212268434002527178428774487209301493066822833513993845038211771263509998088320285170991312178233817480881109639998475894946276209955032772508626604507723168439538703497649879917824236611043966763562290992393455980217000698456927116152707596137782200809708541151824405650134940174847330370730666094728413369650599731261346892359200315023314458391308017252535725022830865314989158222277885857798719659944921527147084729796037507692658451600336773765336887416815860803559997518739077312161569149452785892778240774108121698436407715694993787411035556567590950625680577097858959128962539435088542841686430798879578655391532006431299364894617411438226056467585690714845645858057597089805862886787669414784404189760592644118468665311343947296889088951298097465970906833717199702560210828101281191792403119807121348453297692251746568089753831776766967732971256297794261057904579519112245496142258033054069188598540358368216757532020009046801113727991422914366023503511641597786407648585123776706201399269110849102304142901794836846912179765092070963165895292629565265450515244883082044753121921988037698083380258950095360319886098165263026753574273763860716762606452138279979431333433435746300211877525622396531801520363135223536840646125212842345027703660373748038127664875276172723428554114194760937321604840154578824313999858803484966306466642908179841721166615423945305469091551662787484478196151505109064586950441039579458998503667119776496365415937583460799855391271529553407949514200235382346054605577990886130317080041590891780713825023782753392878825246648077939900352174124006540949165791000094978108088632598375198761847145632772297590845253030660006539368064773706222405709495443069212462408553521682193807390203941028013054466906202745308811276143432048492202899001767101449654720479119380237392870975242568014476425143016381171828674254183258413686333168896662238043170417760315883577803170634868768563431172443220343516500209505342700483720634766410025840520363356225583064530784987572552762108769116427607272229209869138770373452766734047276457262525876637637569243085813167788930862365870589961003839264482357461680143176536838631520909264766068412981662598674352210588151206160624831239662983809292224426570767601404327912620125391209921551557613665637690860395866738082335996841782730581467106722811852106672569386832236525934170066294658308923652846979627861155956038921995285036374512129156592922079738096251896605806150284716669657778944342545528870001388810266996787802226891611187164958041029734050328782208811578375362216543301939699387768395413080329077487654433202330691212695987804215449417274279554291285459490489676122559896766621213467916821030578116637248028159721151493835525447587161499492172940219077978651187993518832128163547548099846637168289960870911401707863979485511536677082001406763177584509812119186186414549332917287174046406794603884480622192746318296678428502948350316982689101018535694063440990530658424331698973823437657596311840877893682751230262149308477820842178367672150168918517699391058684540230755989876373199248920306096843711111747933824217303621254569935255717116314191586541510286042208545706520590625789124896620730428007977653924154140101627913577119050448758906936378079520273953325846555410773262036140627468192132664453656752650491328511583060520119698412245118198389480075461138412657500957319466724559872950048707668040470440137218562457024471709138702214920169992497785640599557241114057248415507807623215227594453193490035575302897361951863255966411626929950102886151063522277085383314621963042591721191914972112472461946149810412953055154520387717064350386721489618605137844301774203592610347966772738016695130804209935168276914520836550753142249284700516917132721043461422916176721584021110414655284274088252601904911575892961772521234035865657110478357280229956200531702630111773414072504029378879636606859999566085188160547450448467121469175045555699437068504642692989368195107289117312732567751306156772203716758246441553274931509017383248124685654747388358559530556281384318093651441014027872543111105759483549902579643042770399829733473164971242708628460080250522946729843138519747252559554813219375952772727308873373230586910643929462054805502170240669021924371592007417665397806998966704746044006704889634523608089773790057545397034613800896416475007228661603342568810277800875682911235683094263612190508550526398976286082830047824108815635112750078216238307233644362148934019777918715440917917284163077163417955355538373937378949227927771607348122877580987273740494036973519262652461004877460580725002517729373168408230432192850923457305774278483483828373139404926540799345765654204106205908917138112791778909033554088189141618685212517938777640408368177600898510398237117300061980168705550621258788778267689599124312230421877679843073304968197707918060348180622792461845989489476460278029387997762058217324273551083924532824461566381897602401925943580430793621130645996947029236487987180892601248124961600117931056223610238363831942011325129366210414209605328024102696097256118066855079303061715167322578439857248638971694761194520979059565012864590648684500074570374401286570491563035118982573950168484590256638494481430187997233596486224049855275405518384485838024000937071612483897078162685317293023988359676034105647718369931089984134239638451989711747014101037328913816312792743966501182699535489506092704114981663014387569895521799059488608899013616948726882377465698855416759456830158875159958587965038941477036051662579120972442193814648247185463483127077622625882434755299273441728665485839690852442715353576042848188993570449826189188944766779148447941132607283389928846872153351703955783565405450040981757235552083945339712774403602946690572211403866209771353372802441574034963715671062434362512731976363859435679962954038512340853980074388818735811798976111379253086975914577096564532825863260374768649630335042158988122458549874040762152138460831643360859114197010279280099903571982731130771314767445599667948289292614444636638948051972621468742027047116025199640115440062466661102940594777919009218895970605385816793685461741000686878955324799459185868533822689413135680519280987044948632746981958889569093861184562968556724601660721042675660482129928924911181071602543563835393942080303744355502975971070584369331451276735513776113915229956766646023661139078974847975231042747616651096919591227219256847478844699052685443875936057079391417185658103584765665444488456421881221898136954855835341642865868487728139758754807609239060080580066270542307743079507636831428574802312252639914987821334417166675653997077929583160066323318559545809301467314050397696982823696257824209894255542940515382383224587482317397388614990853121995978496290778309833517710499762511454938542463170352224596141848775564525680781319674832075620155687047713888061564808158931823488798306021366399016086280029914282093137943108932381455229112356757745685388519787170024332172931994571921438422722409320197302086855726871485710155329421200781442487455702772593964953367656730074759648931082466117392077088790463837900132119105056434390325952859651972059435496610285230235355347243427693753753720388067803234896368014704014866919881514503428278986580702513161511829004134939887062937985082647102491689596467927275715609000851019812809372078742233938918176142568436954457569802949050625782598233961910971218094413151727024685459163210483917912115698219984681571239089890642863380080447712636347501865398415151225941600167834453821571175627251344231619431130892067589333532441861726654778229321521176135811869834968256232338369770069822451845756210087544478663162871519082176328929783880595942199239785963554175870790516943199100974644900994801463840650674444430772847765059176026181137147190526568869355843827687446828078687753142461105018911189923304745355261059414350514069448838001065684651098656092213392941498544930393291257003668061448266219156948787815992568944122609046165313589347981140918833924748554138456104864234613783590478755689504234394772439150961918673172274107222565329634764024279339341362943923001131028973984956768260141397406927592421084037278322916965105498489611029520121625044472246485543595764773365113402245047848029966952084223464794478816817283181513886690744930056868379963725427765646221267553708461431969561199183329881723332241136061436729933778776021605764381898670714990621665904435315167140838942558385325046948172420224864469467191864071313954171839850503810308917857514339281750470990176554055418484942431228287932097676742711117645485807788466396844018177062318610614092591690628672107320409507876124479754395669157118312008071419483755365781063283736978376837829925496693041654407237784740874804818187735002233997172342193152166970809802377718228355206587407614284754589723272563363920453221027487892736375778172239351670675836893869183409047330806793000253776862733093432096699040753496003700613453410010790768225581108239358087386374154188038831822485009591201644716256724958554412658057312322395853114927720679188219595967014386181606551050731221648956686807066044781002725106816498364647010507151924673442807150513266896625901205924643824010652077465408188112257277750924484961339564614074596623850428582216538433091855576239447892434589800326374593423810666909291692745599849807006804525316419680674440330198477821787641389033000652988509796073017851218945229020488213806729731344360501090221802158839902976544483771241757694866862667240974563495137753612960516686225400836484626020634573808064777861550873139263772441857811622747029372024954491966782892708935692828699007591373372223959510047666478367960181668420658062577058776917190783715059572008537692904134583777589916171112786579557171847150655135970021053423982134375364239013133216445023278834657615744653531873427165721945926686743866404311168822174666659565639372142860866205336156233568426549284553610212043915662584465302800968618170070304395431129359589711930311136108840151771171717941366089212855266932424265962202112330677665575187769789018956247842823310887803702964224036405128230577540230371756300404534524793232066207453330366356224738181674431049482897467046061522570653517040258514386281848880488627648684886633504857571188418482997894437638267219830187865911776949199743168643651717747159107922579465722380039964149445359986510159505171355876512238793568548785099761378143581845981043438379643848806643586210683069924301725092666658738352758554271297794624279234261887781967970511299365373210093020769515810277996919334566366742506070925816609659623963219460836027439636907977999771807525396472559271647928217956095260003513137054211456231928742620440432490173215554294932283793864163587898078038815716000810690412367215751408092619169569338183189078248328305655445461272360862463920736992918193031765127407281561981508488010194785012797454912065919403724374887752154051260666719288731122845541858817598208155410378434097859956727269875371078651033455483380935023113625712357409346391552552365282612290104334092894424245197154595296513228696304134951705356714373998691175181378371816534676193926372855891138715429347421203621639903342127712482949133814750240268145414387074831959276371224001530484543596715685132583990069587679626610964000226284799000737224260486888174323804570177174476545919293957785076890592683074386485347790962956300972862140275632516346748398309992622146663131171788223313692555924722829301347541830059862491717466735413231296001924338149888042934495122296883891001469387167311889940656330965477594511875652490516815045812139053693247861075243794580499034969018129696872183076340020267993051333557466805692897349293962371130167018478241345340332853183311280398675438762364625958809060787231288281905808276254774830022239013248403546492211761936271660711187496540422867925952378430716685426119096683709934184446795739149642488311998357421718495634713383954566517780691069031178693884920688631093830991049098921026747452088093557440528198514623808683362363972682348213461047179531020770030779234243926679281693079575593371622426948725550339116539693557822986996153176314317976020680593312941915978395709573675440384195711155539602661270156047888124016832430882132395906605370501864102343532589269660148557425124611657302739654290656884199169786105906422309222665256431636493951825823370368546511144646725482797723341102640258679210251847798797273467675612800313488606991950528755067377479886962614674570051853082889360739080629649935494846734223630810195763688052295371650164744692943872306876444554886117677609791335361043066395633370824767897960509762563882268864217483653509490640715195163335179205922842162119785359692070387719733413126249448487237760931917561744661166833151558768236794497187747066079171457068958367361411840193864771174855604616178473396095311877686459892259025502999839929016995871366828181425447718876658542971156364105077816707202928953095396398607506036498515104854374244100469998348045129027512506521667968766182106180770997397144754901599160275702179225623550647230593930317280049960194192078900681025326481490821063112442599602783669600159591065020724305872994623156840138981394954723684794082668446891600195003199622746329846412873425307894613370206985405536406802847553772772525176057140753006007073393472006237336894131582496674040631355580155160851204519933710193785379987967825877930478794750093135198536463715540540323017711235182261489143192972272240024061857213997009171681671278304114858715596293355114127653924631354534542002819283487196167023292512940965993204947798163107411570433405069833677465432234649296883560747587250788904071019213920202387314417945482683958386740866571324414446663982801453191564518339067154822256242384762769780677525996710200249772666525081069858291947291109421617341750529051041885176169746872032040143329177030955503066663858467414626170303453083300412022883278316267317552318735983221991913496367831851180043667107703783433312348812627114725245542270272940140435322987636695071668859166315279165662399510281587811896351526708285902000363595518495905885380690830302701190762405814085122666811054893904725437396152351874169746563455874549710558544660044254974875513589547543734805495633475934793146561215611829790852368758226358614895743905618589604824011384246950364031494127657469071100055640746964425571187836177769464949410956729260810749348227012684415550384461749481089641062733302302062027476617905178382735214563355870806006334839774570122961661718699068537242610180087986754414695470149553160778514154660754945486316824539171803577601082692257044998285995863867543492103000707357348978275471732088173194601856363665597917216408139416312690377563726662431214777834633921757647577830285092762379172702733196171321425023351300947145398548606959738639457618676048526222887510573300945354193940524183432610042411182246711275992901202747122370240967709324024633553597597416525175705565750526767806094602725999739439209362157327674405519294829915860820066603205484523036234094263834615669588106322085208575976799898791334535594918600260417601176780659870779569527511026240945708922548150296297718129744075070720505504677614374649455236842594922450739652271685892452724227128832175195995938975999363171306957588398443071179450369917528733284949380588094728138167825235500390609515052852806435544666602554919343422024726731647754204030261158504173434339695663019621433601716610977179841605973156943322148525044138966504335073539320878552075450810770762837775607914204310850381998711180235255820231834902396087858218848675478069755925608860859331179546357674944528496280865529157630639865994338034043385874924574556435975934032825858615979609523428597667892975089318971530533184635855959015921781600332460129404522657555051854959633489223780321777889955845955238283832976644459940979558188385672008945115708683250796694565231170568352718486149163314726353040894970023280349013459869612426346674761294350963362324542153454994547805693414503299334272392990597586809691767487682431552043844629904225895949655926954943992448019080825124828891541340196592250921130788859833268229364524010850033276662331357124259288897020272246976358963740315113815849411718976531026659288736919495077971780887233774280118737957793179135858076217457225007738150273210444094156687939895322292662079153528945191762060672238674232635383030455136033837061391528692172841305634480669711529769047797301099483796836094896045156963326915581617476844987582626235395233384073601923418265454715142620668098345308184644107828483692621338602412181332364590202686157024709634912469794471434893006127428011224481354387716647195257597498654743766658417356844645238474743198326826647251853496411258613398591692263104580560013946549809937706086997050819080695651006532401920533837522265993691059631040925727589940396255562613482692581524483714134147564215426542742430877686167862179544289857892576572006813131704599105796441513046815927573547008852426933944607651488873100382490964548128533936812134987200235645822605158813143008609418025132340553765335237437747635198798652569125092435084641442833486082369284939215753416472450865272520182359250153041997640711378920165252168741530358687052578246550235220194664435679479253854023930353264677503210043049232807946734288765263227776683647607835673563080350651350194825337780794574606896746492649465424093558624105977340832281460693440003289873976677729345494850818487802489942847789626563544813421465538603711807712801924933572586651340984044639971744721588189822578627765941515674504203585922072748156697727243647292898859474348108996613002804649568624412735620926463147681301782936759641548705544011754010009264554163125950502926513989210863813755276571883360206947434740012905657842854548345894826036460065525733049230339636753659993044438746219910608937906336216742451389400028355477534844838558358591060322509045278551107315435426169048028703519662822373335656940757593129766059242911576456402270711646212323470025251909547047208128021452196892954278797325517189320804174930119953434683265626502368045829033283479413738263948577390958890195759726478479687270885352696238373206467606541581947028809503113474774882469545288412547479802812259835936746879721785937217592985570427007764700760676694532492638150643231746148769886855630973928820885479864640472097666881267142291175693136126682415579296487010454077739060784389423280081271156528708234881970614734422460556115077013147502077069967414279446487245563309367054137491548429366868491197984739277789346295760758169551113071303286440955015181869857361859086816875632685774478589606776647440754726099768314642711465793092283587290461237569200949143606065122516006686517937980010882666549973239622217923318390885874073629418224941599384996273643998530009914932527751172041886384827537036988051519448445824191904746406362399799521684507835133807124495642235628469223747432741193736144217716182541057527698839743487018483397969827294471482933205825130896981205056872935551471705476940247561430269865347149552656242864237908101234140453235915938732751118130544186241222463941088679389510694814630165882847873574892408959357986744611576611759872297122314588538939252933299328554765612659618651676815437921527137795083699579438818307006688691321776409413743790922663465131950756004469746113514297491421417750257365005158860409461420014447037476455018869647353498127981083967244696641554045052852996893025179970883230707994230764224904943937543212254155974489302820987115814843855664269583713359248273684962037421809033570965406838704912402912449919030606882701958992565009562003801819268265779954728727573001824165708776613859496288986374026085432704477688882905445006305150878279287077210454930790965102704631487658417818334076826161073447659082740338335490485985682580794151980829860103636014930067815062409471555757588685788719958914069036721954862098773124641118738388414773061038023706358548995428470902115355867339740495825925294139396163184698752923529301423549582177193433310485322867150530247257063949848361986305987584507010065671982371767530343305788289855122361941984433288794620056573929071512149916877941978290935149680309560338195733225169566596734883231278940274433322308544476390112814203167121436581323712342358702392552842282776006622939383224998255372423524970271184096193522966446448631951315203369147510821008060465375370436146810226811973664445698208113566086683727021024118655601129745136786072453562424252259819602264338697252452156855155333196364143775966350886978012161039643654381707213366075962301750665915801724512860083789181201019850263136405731987757668853524442695365538075676844130159852828615153527927870610876911271610985862901493091501508890489213453920214559351897864419957022589380426241298970986794202839905456703695867763492335385290473342469418197773315512354236832212875387580532397313070263402721070422837514435622407366174486166274859134742627308755131127221427645565690451770074616617920576943063298407252146621373515574028795151274254566615431516029876880256098571008704217402433212058092012344817168852355161096022052010099540740855300924275194469494392173893817193491093573131132785752334046475372065969254961846229816958427663168254392536040506759242027706979516115214975127003582514959812651664610351009431781385553304047252425952746794367045100823765540508436561989514101013154057941168466486940540977949607046580910080199073617360590510123247534916888057588703824987031840662576039145905048153474066875659164733075093077233675918031696911939247094078427200425428477792624384675790608067192071170569385488162876926356578209542676041909951435223641212698349519594848960240517503179198248994338114416165373428331688697186741241883913064013445136588628928857127422462713989946574796579870504963163442558032752246053080530350214958465588005281731012036978749829377524992044149164944590103612821007056255262465518975692270847976540122453577437770294452399852801173444293837271664816382595429008969758807140635773260777531910189664205369086475894445559648863093683318052811043471043765814600140475737037182283106525421345481821774118302461610526726132134808530272811640551016372283582097341480595352476241779190623283135343269862842301759695238758324500230180704193864360723851331538287180007359161775802190503978336679769360796479446733350021706251399734410129654637221056198855717809489400809742335684135771026255922343256524367122524525052031556780748557755019027969869737858217752823988295549106731147241308582269287090555753739876214186762077985462531818762858003134095720114501442242533505552275212411660542958245615373490138946951817392152928890461076832538090440546459240418286777262915726673670744183834621292142771674702999097601347050078628379668958504087868751907859242466403414779641679741700208747577986458046978574376065549524141961742289980763160608630237024559763191584376281085696106635120549442441507390182037745617428792553344394200938754667850149248200333950775784929298446156182206562290077393239671573279806009886944879270391605122485500889854085877325627650308839060446024974538577993262797375494066407616764298416116511819092009457405887757469891388137725101135666575979509480205140877728088316179340286726332246096630726851511783080898029551964033348161220997090486693584402725637706796404741138184859438095466348984890723527577790463601756320689810795223799278228529344895014189538321750513253733687083776508408143427338512332935931908177733469505830440382013700459585052151246550396091251078489645993072937942899733378120710690438735939284676895989255598996619316273025517069595920897584304773232867454684473675042236164009309042884224638705031452625828023742873781659927108655366772229349684673536874883764426791195692121588340815536755611925730983626523297082988679145122731845710903534466785907025283438344852457608354052539929210090147365747500252189395552532383803162912785277159325052487176753306049999199530124414087249473785284220246654219937117696867083747465542000822707116940320478497337115723209669293731277595749297291162160000522814666152678045958780563321611142559905713063581212738764607130341808418456059024442382041631805078457973338025672509164246741800144564365745446624416878244656455096091290639116378540180523992393907965615539605511472704995520196599595884797186721035962580215569411665313975085970017171326209628529899276028242156330188530015877406332615603926907898126557901234540411811444681751631607399606765857696353798838125283068109983499114459891797639201922513088887879573116276131972866682140511466857404684554122653270501744495014081673714032951624690841620924876967051898098516343493870717764500488159515413014946362048947448880386575532163855978708833849020473822744593384326080352261291765371616344065719348355397085126665479769449332997215189001176053917219558583515461120087155399895619705356989301572409295249670713278089804623811752934102047658474346735382378449514261801190559809427432111672639467813424022469287907739390619630936293908497874585199329481930673065302087963069399395314350694423520538385157277743882537582380424555124340592436828326649244549577374576213586602206153092345758305102223866541251941035800895692135830421072463366398789927494223120187319828055356349222715919369471467208409584309381108968594191556350369790991046713121840570540526766857670465825091382570465378712870166629719671245391691043641199176445323607161194400334438495421746054774737236832560422294577440134868771266972349724106511609447075202223906436064057043457608625553651857665033131077682130884572921200895260648952828146912988660828048305442565628520702371309044921806227376209397603652005603800506281634887952425340655559474363795988326959326885051957976606224477680736071145979054175600136579898539904458578314624805995776086255091476761138315955303380711436681448065290544975548536654535744639169269034993301999667653047573322655511605628146523839956265102257246038502493555414234094234236198830217695408892937998675494908631343205880146061711902810214180293514902237797347430828336214767576440987874124133268243409630449661090564051590400170259261743021233017876699376549522008990400570543493337750607306657888952923016789141674887516249647975110155579090384806864871614138329072310152478178268211298571761310285446564087220115133181719679128202641020037639311384340648489278403908758205356298512390487270019561256991111472856039884625496124544468026318008980513606765503497833211896821674142960549382561329353152022514215365904579513382017779743303392831799977828132138161629685036750317044297711019007751331082446135890320358033858375325142709891066477937013922256116612994556266636742985797639113726752991897083968411416832790377894380946483782842919617182555464156540735874043045093296325852429149771175629970599332466610155926555436368139060974793876486098286033268148923081719297117432653217318867864357576451727645859251947965688765258838980052902688496153511293599267869809774948195740236594743060698454065707112115231942386505388793014867366673899254071072158333524565901348065306010133235316016996085729272263789917450787464190033009265220897222470589931158256375657844100733441668139631055329725518963704705984735304509376018901727979340911360904931917649277120960932790063389604395634414547644019782580600996996265755899746812881230011319052498187488011124706281147847372365920743076227206495762290603857710970134502227523747140857817898473425785215448970729255139668151741485029704053476491184834906917238682783551767348516078447590189441652232259046222019801357932751010120427145197558609585073787340058307706948089458175892862949509950486356186250925310291281079669811539925311302513140567970173993480584377162216075776560246921141887309279061121179190320592227787742811311218575326132313183488285914596148316094979315841634418672834104334312616588405627785007925997232329629657667457085423194461832568703013960371191631581735368738483381672090216213343745339637477954584299770737784001092987973001963240062131395841414056928774829452488188411695940196466264753302404866660175486981209437347962989843642771035445109343559929564265248988138247053452385671932469212589375325287743142457577695832524765300000201250387959472386815685494512623013153326184032758222104711267723180323555017375652093405292897734341097942984871858004943563549963591439194677281406768676580660402169212668133511730641879196082324384879185329767552003975107292839359536680268457504570399091522305658299975488254267317854272476258145107893603422004722505594851104404619961717679953400520672786716283739315207541017572795184361569721646039949860286251619288412016029000435853957977639239111230647896336220557662993197543035423405537242628100885564939757749811027565813910536682450362973731487777363559655108550566344334842944318365205755228919774472012883682400256594791713236008681181067347058841435411879165338094716692745388865682892208758050246530564133585714274078290783965603346392002531516398568738180753997016535013448265474336757306877639652434419569779679057936024349853110929634078198490220344337497597301974996899856911196533905894672241116364845520635172582812772890834489995801553024755780247805902750021614475235031279861450775475574217200093531544005102873889395576079093896456851393369354073959175550043262552354280168729638984545526823056652462010909486178988951953805650373530678898938335229103644714560882282410651982137629517505069515061887364383840943831912007068971210893480764090409834873197290020058802928691203938256285052137899182161877070433881849111677399873807591050432983481053844921623913979506029313251514055370293774818432680404934366411782963070078673118215073504949439689511211016300729492998120966102389712489274257414611188839292369937500623099644907614437670166834694901266592740927246239028969133157898543792400338446875756372283156461527426809352076757071608134144415546289125941617811195297250377012727317493122822012960356692200589321266958024831560295282140463864592435415570193348624302527884684467872423593775292428286884928295074709459172606150117237491273800905834454950033669277632439042440884986216491972848822828067326176799737364731021298766134283779734486441873970838571486478310885182694376508715003644275492125710042176701921405174232129604711518854174962766302138164685498402659492272343110662741465702506491598843377847173436486976876670426368443393299217602286090045572729482682287590732174817476704642039132674354188088648817855579262717598564170392721378479609545897601592665880248034158503646706362216228610481154826621173614452654090317425062613684473355388181426123135114608948990412488768655936766983320194869610941424134102212919624862816006763785189126861127432210184301759976088769104586504305690676809925021450924971156096012849173776451747195527541183917621478910350421576143669743687999814814696383904117926053905479372797538310420806155785583572884627486582202723681705959172076895979140563976446785811597683449294414680658134319321508835165625317463331021026596319756581009211779534006248834062504607537889829800037441159174543659946232325460997636005750977764977634478658569070478951546788827620181533702261878171655574046945763834414684031435747335262966009631439162321192651700550931369413128758984169724377195606644866235046314410386085236920766379355666169926145496374766322348310833229949945393241822009656571488986461074205601745976237582479157047713736684981739974595074181114101386751282835124414336149812325902184764998368101620743650384849403521152677460788004111752109456743585463970176542821054803013817930100079409038151028842913317329815478403296193515761975815806733772253864751030670215698386365460984234730458878554111332886250966733877689801214613510976347292152997035552572053800491047862636014987393122249084756688820967388287040638139620522716479625648123362461481244425764510024602648070998790237687626078562683919914638466744923457880227341787204538022458903051878831836753262309189071940267327722576087366436432960023560172630869248923742158000238699589145197980274714725429757201897349223583092429683708205724376313865119242229758576912287895487160615296390514047596674735944597955095343719117131982994292841454634241954274656896747473135297884805906513167812040775061256832106740409008215571075793508119076248222717946929513611910584743813679187907442574956307026803064899727727707458603430797214008945149695200167020929887199996655734408824357981969337365345552713708960461788575870357526703487084563956991100584756948798055346562483069575368457232739057318379730581587058895935896533009722130055298436524475813439476464593642274667586845205044991443728495002945307035553587473702168868986952682146789525198011209662431776089302717083184610243198736048406210806972369021084408949435174047211941897381816175431017668659174370524464710110693050657371426229541823923842800717537277223852646307096660204872276000202065628210066977070156214996255559592966073946422979316352719717331916597016711873086455535845476240573383767836909449850805198504518642503915173634590081763493399628726427375748321490079815885282777545578931552394974890043298041217599092194641585046482496884665393476460826841579687326779224468527021948502223289040757736461506436621762021954808301868585165362817246797942924672278999727349238735488415791738203646190947240826305438496249559724213751012963577079497543634705081342675616442633701186272093064492577489807637529311943391809118594928797957079120695310021168981240466593699724185852629205714045498247899033621627310114791468272340941292494178278994350958128954413670396702764849740767655513492611331138423127909647030936871055311299639271978236409802620989738174545199102245211613837983268797070074250220265100530913592566839718308019972715519617410923440651971951148399328420793048494775935969459601495847398837664607605037748926990802365000784615010271454909174140753452395992995158087919078943364661164206943363804022875747433072793626282258320332237883617526912157210554691544126025913390505190726007425476876619879768698293399015985498251835530697662498541422451877041551687882155489953561906638945301715736325985676689895933162443169014103449486826757274754506345517954433367691981203177864200636434510355306895245815989432953628170243708252819558020926546471624621370686996266049335280563582581397899043032177132428275976493181661315358878508166741258929920446883143471165203203781469794815660683627114350457592743861718999688626850500650827077370222743582436243364407550530609955463047790466738976463627574275284507584607287931421303986679154086745377750698690166860880464228400217247944159453747672356524953090422383840246627407228326245493471887487133765543793202625161287440729698978673365920057813693715351174779586082361806739831058991684427486045490132015208006479978393540720549105264496299951028380134866820579501540859088061903462850701457531144540828312276741978681429057362103867597576603739073135404077405721761636065127992884242674918083869324012407856868618829978237251336665539710880008043140802023884921355744585265692083738011266966217360046590902614775651338586216459580356010838846911267138572480243155871678530846676825087627667623896499812040658556695430028846122940731216164646819384097966540470455024829907930226490716797400785919703694729516308589885213827540327956866119485621585823992292389529777042081968426812885507598866009369635116534273240619536933622238509799295625763743876038199450604624122297052379213495459045445291425682252764609146046714980192026537017755121139875668064928812312293130279280845631373945583901780546912687634771141370372418762895978057301800752928449597677688562676204861643055414945713751578165111094547325474065486256550860845299026591534995603856544096245639785634926014759111328012260091032802195317012618983333668926496673281059626814383102414191060453592031240804329073057460637055293946886726459116561180390642700832462049241691103390558628110693583256245242495404777682561607111214302120256538881299315950056151146940176146170408585910896911223946751859065753836816278279154224936724330231918664556713256339815253425842309061355938192022511232167705535961492861155271582667678114814823465333856671449987878990463013572740703111819516751619062398025428754123815947791657457103252879529493520388154149164662572689677962083132455469200377209875578956026210687292553556803058986885311174011043652991461851069844297832827703251701468741187908366068494687081940118638150474960173466689961808174841470613333068573686800767146258785180574796126572986851804530913552213381935833625437343969363353860143434490919330851803726393735669882310878375662927370191884349175524938218647303821675352958646869164254523466601173872479252615391845394332180365156122390657411112232365867730395053102361957838195204530446695212258395521150420871364846482461639070656662019954323830256117271351015700688700344367314320989287928846946773418130323117844234637551371898639668484816962731730209205694098561332584314249901778214507815107101621079531860748812691759730185303040123444197217664501866633372634258476651866057490249084952737251498739709057250719287165463211249559831299242875872213821963202522131024029886890058676885582883828266298455669158590384181520262282741459751935854177739570221561305550946968597997493610646892070308037002428194488565095739009082825144546773089497336545489374242009432663870371674483440303334426176170650737847740149595253154511076011027706721054846971521293262344871469727100897873145738621333832454578169017428702837813538062921096646553099906992768148366264513112288936537733110048894394656790078617648164182165088253075267042234156766362673309086916214073007142641694540464472736321844298804322975235170984696484243054741586025849287233846125174700705700187920008864543913911051229950725124778951392878938882949037415143282649983278103766575772035384363509408360480626300822809568476892842126704886835952579239348861867613682785210463522328289089523387669169817609464416364957638721299757099760979217285621619126388708552477550162190255112031471916982707385303130609079309457798576611538186325017353869775759895712503039665177930527220914045324465155688199666847966098473651464590642620811415135918653783577135880378402968412112908371914442261636991199620763781867945365171423833819335481688986656762785233370526725079460557273635338936170246333687663271436011583202240490425367897929272396310713673342273186915592882694008279388494729945433296554924966554348898894324994901949289284164411334196182022406213040963753310520989530057724457803571625612015797823262032127877599360775977690930702627387689119385623638121462864394257870584386061876564570835825542271345575599699131986280650055726104814794949340566492103048904079754662696542119589138542003666247318513549332766961068596678035955489721357853046263133582796452995685992069059382887977080084262783168682737025900018449952598004237819369583176365700943321009461050099346809107483851818095018939859825762338900939511090250600288242458029913930590133190257177169849489663328681722326561370065583182708808876020774860713084942223050775930367769169468939362687037905785002925846694046618790668342413629840442498556688344708193991193777604511501712995154675288881537114151920841325694997934652077301083935245640832135889686079203041611994117506875340280064003719948735171635698502647815761025097336114092790442357244153899749626802831193277826331428895169216988757967393083759241438236443266557762917256445866329686312324564870006421008342020528430030982186096176504012343522528467488347845647218365901743968070597384756174453178192419525642777034752510234870553700386309637811900599289041791791176903323149717103439582052084513564148982426311278858220301827838813634664906860007698074249471775387910819569698356602744236291599783915188463417641289297845084355582274244166941749769817675906141914367679460746653458619447612372539544965472692582662136712780150567318210159129977778311908658286733295719076325582677795499315262751020004260407851579054036142566906399647102711409726836369860200402643976436380758110385245915729352089464108271113045834679785638853849620357910259048495497026508549154403897473770993636943046839913159122438616073220334272425953194813052194421034891679178154144860604394289287147071941918028903740051468920006563788563820487605575534075111109401933758284951376612318103237942678373454595606420776203410359710309911438080754036421831208183661009563962978767239311456708979907582201808882925587251795818405518031361660409786138444344763465488660673347957312007003382165995801780748967116700552775790030933506608936279746035718898063247557974906865990468086365929984557162558706538011783866641052669154342198330591388563257949051725560428349284754915141840819534489364934208174373172468584193362342458752478444698963037209083846366610366300563069834953923556958128298645208618299107542369994239988919137603151207139188376287823810914216690949038225216134745664340717413660206390837650646922144730564691177644181260384480813979413006439041335863967236565736264045980967273811175440452900077442155426566726413424846696402878543075507042868560979610156227106833402990701420514611575705266508472537248308087284575717479527706570154076623068900338208265094102827574626831283043274000101238966870634376011325836312550755200404590058404560155714934631529597584957007597197290208060144015743257099390613437118522790370224071426302001965372485724369027624916633496353823159705375772162390918726712302226373859276626741595262180298708366839906236226761935375381706548197968332361173367889405689716812467908903765886080181028588512630750444247538737809631566907055709702523111206218480495890761446717751407775702252987990998310804698362454323279065897211015063160642154101638198227459347011295023629989256308364566042298748785617230602056873530983965763673842554496551325201591733725526507784191758246459803672769173084260755555722385252285639758372846432940778487393709458138278022494288795459001802937721335268308769537556002581239108067055441613596392983198024579067036481408891983179018006615089834070159445310821238239482601546894435837027358318095423656519344048424829880616113210420449091918887909688053411091934765912992469640526551996444620643394223896059265835014298388226321217893892305043642381483199510384325846876037330605384969234863720298759172232381936465247634621900083669441095933649762654732511742917249817981990158997430797611780600544622290331452175228526980659523981558452815781853229047944182828092777053571960636276834828200542553120570458704642420684381879509632321332896278326675962874037797871072295990647986673520687432388062268508104610952510991968165124832508056230957078647173765800902490263081986034514003382590136903484150264576000862405025466430318113730460345736559880392102387079657485965900285233285045630185658366905109640327287917264237624186700380798510593127652331819270247191092002882075646803154938716997852826875315703367885643081074209377555041574491077583635974593270604692097393631021727410149351058914537778398325524898061010732261632881687910819410032943807662236497818320264675747735337488471788244229206645889477628696390626456652551699325419350387453482432219758507983959625274131249051700935977017843246477284365935487279812288495168431367498607589076865699704190273474626022010140867982726333302397206383585189569011064630194815546661901943811254702923058094286389991791551029689748309759619419770708256686543091543564298659294899928503729723425923663964616528911054670884283157799818103800482684155326799162705504265119089872029153954194789956643795963755002493031813417475762977465547234078306782827054540503989378705660305397734051713086370196500901106554838033329831722445506707632983647934565660839896895172614965945786332542989187559182954356703387255214234716886520448903357763757554271644161074081107283095116953782086673072659714690413151632023657831582696329248154101741207788590892075229211787921029535109958367069437155198064403674528056266697438303050701132930678909813989448435424869838669547409386123222179514071603039391979120560102965073290247514659515638622032765233411478350338185808199659492343481730251631375048685551143363431270550316189657383284662672379694577243218800752596783657662635802313032494980089554648455733405233048810887993265387717910184029581106372699541225294025188130830979032374223323353775472703319930550339639714039590579791700002818721682752466820717283260167682713815902075165094703241895292104141565369010447678492668130508089770906605108923432840678163199853543411309475967711632658619840131360678533839306306647697427358012882848721252207170601726385127594470014758005875397847185074094392804102755393358089051130954145093178980965299468403809211605966365364646891358662860881457712325095589798907316895109631343773414015480416604244244109609168873613518092833474988306053874323419664947349581096238139738714437036522965081678297161797754864376045510135488032819280667052594478417179009220538713301616731629639935182222726753104447697242211031400013736361099070135866669821439218060131736292305984708894149005005433577920182091429901979133812131722146015555670743273726966129588745246989033345544797817597063688575933706392495028870206868587490306972058345560337208952487154641547454101423830745077541028667788572996920161528291266462547026255253784214800763691196556580723762231563446019497313466693719603598598398762834551536495376386983859823979701950411777723455644084208986368276069055749975252840097574614080300143508371006838059751711497616856518299176100438121197710578926797588213208275052854675466091124261214369606764801984188587083223590134195204889169515318097277811132874247858874960243486339526621273047572558683291816934959360746173663277182605023007625805668797338692699540392517363099771671100610531957060233332926812409239357183598158723254496326224940298328069227191847783531556758626998332412970771516580729343531616392278291297860740891362257936235865550542707887476400935027603889638574357422534003486872215028403868167837864054653251107387540343197882335330600450630740561489806364704885208072626903525591019677563648235581068876933273457615838106556775610916512612080967546010321481638050417885045363170994453865475951116078985987097990207564155921000518791265881440169637110925978960244578892540056794408469633839030703716498579850147040334827301776727372050544920061319352336954147637453714897646792716945126899016165461276833681511654406257514026232339073443841173444428040355523606192065586573881083380134414088424324926961441210413601578015094112879984202822061489290091015941286481865222163206910836777897980766717379214179043718320190947728084336326559992589506597476023098320759306249718200393955528628219998440189892202267572940326842767600450788834097174124594402962160494957975575771258456003756417916605165616293502989645042525269347070696219874685904066298303285163016952892754666370832147076123177901608714049457944447101160239892049923265276784831753716542377761287581380672140739261758863463307210792123886180915134141458596182064759390829942933114938133410745949501072236339154645652695512987126550217362538266676017917386135611994612661721943411367452173715463069699109042016891253514711063052211634860847834173146272844145329218129879228326614550523856739002757921222729197932315501848468964696114624679431115863392450567835553819134314393553938430087848736224332112910063326934312449149801544675768269215259847955608404158803008409505676342930363593597576299671785679964353550351583160204845913848658057458642805172969973534089580818123103977795430918385926377916386802329501022438403442595827788849582842217142757432804373180330717959063962048597029324545749930888382307449934224886211797382102551977498118937495572151623568778517768975146141985507457503127167087107904352470271125688962754750843898110967916026843235132041278107833808249120229771040797921181985498366651427934058047163312971231450221305775376590842949845845376900854129845624742315123581844473036753261698893443115645135111131969762069772879504187116813153366985440707226657470724544322162127744508943915647189845475686883927291987756228486223674992679005624897842869405717227599260048480943713215773278125834372551764067396953244303459451072590073621923060217444691132041144138798703065217209149437158630601439245123951237621948158176218349786292825691683576923130105960035961837403245565080831940176749752721065977658511926368544571401891217067512552076506543089751259031244621148769239588288989334569911983725674372721414971961234525809351682673861253088543349832837682905921464763799677948278823713575308167744674199802824201595000414815991516551562959313084283582236314438285647132440476146895650147265857236694759762372071723579520391250335326896373703773137439878814944722180771028362301543472028761968100871684615844888542037029558923187792416919302309492140225933593036243363029416610040772230595624050728411953580154078481359797488306550500172685119847821279110414053385712087061007405563419259362759002671773235324354475777013021362780718699941437652704522980415126666603189317933598734901600452336704935421522532800170158866079787280827980195024666468176759940432103107832518558846196318077266887376141874509646819786016309297432328044239761555044191795893199047694620302367747001763661955575912896774373988357220767136612936399391717084829922774316575420495811926887796387068752141825944290661017348140654496694931019270342940423092690555681520291398333650127090313687796251716565856564875892557583996973827462124234608373839842378973457911255295171039310182183034663499018182183515114420993273347254799605807625968726925937355728774215535374978752314588734049746190144896337957849959783406077153048715898685601643151733084545560674631171253461269174940290469161548480932301449037129918318025540062759617489061514701957780251062520590743788145481153528512441507374193581757742560117667168054473021176387921160914067839215732318045302443158035718023928236363390155082985123377910489359474692753861504792203619624462365370795068729828540878556497891746895773834494359554612801665602748904489480587217762309356699779931773316343859346381687932918302878489546868642347109669851014833147749414948844183847995906291259503079277482616974616853684602608629287246858316206419424158167889484150897108326466010792315153565145447679107919176898779255218175375451863784222407128701276704923171749127294756231416700002165529850495241418094409885033990271567962532575526430238542258734713014896700327005214958475899325988151524723407888275211499735719111796818419151786188809485101039635095731420744646533440985174970958021486116358850469549662646203164912211124002395807719052181571277848406178191293276198017049179027491261369417209695109180533746051460583765850845153847868436650391026702701837107547235434426323449317346053014907426399549242949676692962358152301346331167324167263120321738819085403489431664329535061110249253397200092478667114475176853006592114472397248471161100330872854577011092330993241749421206817428255778567924294211655506170889132394740536895750979324071824413015960846145728134278435768973934310952994443384837721540356247978276866092273867122930180630892942852954154389077681992194386549091975482791250955672348115504595041938674263946406273931451499288477028002906349209411162556930435441997639805968154770038257505808085591182181717070292591388408381594187981003130406075343567851852759857228121742888096015613307705372477000368092744800160283617148225342105043782363902664156539815656102900250822379962140682317343177372182429896812766626454735371285723967515042256166686084417086911185820047173706748854245278934352850319078070056420293874435757295914522715606692083925588389316265766025787444480376985826023381152766423332635599571845104903508922602688163941717071741657407998238069499451083377592801013060608816613717367874576223920082339588461890347211187505895562828926828197307668883091164860300028067743037930657518442747315077329563017924722207686835777881586746532269447550779698421788444848506972557261614588728002037834304004863737881196439691413608196818211324049603591649250299123673807882270594785143608198770205530903830433689956495385675123024834803036938502656848337097483336998436427375049701033181126104756948109421650222838287292982021758078937414971404294042974362995014136268464814803295663408099249520308238410816064326318891673980459767451364760571309267160800795343314704871135882617220117953442647086372772293518389172390252913885105276321307972321834478559420415186066080479079713787556622693048372179071626389156918780398339400740268684835989440028665296127103501919759185837297200898165679497739600801431994444779738281531591319162479353889830775621647704978599237987980989507996675064223098934358017099235727045824068932504190906262946729671052050780156557467334745537750287296911247677466444257973505316028560710619674170335701811382453630032196191426321214489705623655893115189722533732266923589676633288743424788548192932685296790209663428394619788001457535450112532627589522556409469127881909375845382459679676396508127227350644782593226295737337758056359387787794310773070247545848913352471536994962631888866744179813134975111580770355497904150049513788377696912672689570727070370636905735720381062101343789624510912356283389169761423711565875065237034986391784467443648539078000633028121172005224371678760727297263999260447507802782433083653021531301344992770597318733442566386206371467890079795513706868533282896933502095000650737008496758572976271667111189877369064280462617177322639016475251863602820966875442728987643122903672010404287598338120179315885744726645485488256667942145085928985257092092314268980925444908772132558508941788773093570529499991546228445852729989682398278474196010874143278888501337846762075320791712774923382758810150910952668846248836558725998283839840300792568275433431731773492511002927948558959002779370387934180141218262993331186763084048989363747487946495164612865196357526124082083328673924383903203325781613713274933203657296334600366205302515576507933003879908337648340603289171163135890108496505237158635462713346042795109691920037083237591969542725113262203659696636570658767590967479185621781054507728670125362521574159048647463529635217361464324346932101203437926303580185102521093429757638433754323598633793465692101816713742888817777403762148282216545469559282953651826996551495399753952126268188527861308895278369056095353834972826512681410375934613797054394421402412300954562628884009902614886861915936648049003821525729674525387748688568865422529347373672079365276375916126234275303271952587295583538832279361236893182240814970669588170808153362182363019887759367523689916598410621113898227561401701645321668040582045959141211288126483623842294715036624822694180969951969381166877521439810085447147374042009146872901778131898314727769345710281684390555107925302166377030574435205415651628765193969936319867070918325603109534323164824889958193757956287120091951235599281479570037849619513879639583277850535667003886848556880219102575466598043723317973171655135315097739531656456177851596431585994595127298364855280182837729304749813776043387621842341080031656024928084785751289038361517753886409793272705032126451368386558730787628022550535023062127909691181035849550915161612508976416553050012618583090549647625364140094021074473927461392551202686758832079762951921738617482894655480334555009016686822626568679990420876769819978635884542412704081881126179183867432278698750143102338442602909267964774975429581602760575766935735182214358537956475934291175204422576451519228756273069173765836948883630346669094738878219342139079012875439614375470741495459839551349887776739296623978976643713065779309387745373953345990746051146249037774629524759957017678040504784155639779828867374013873018070622895134715505544092541357800752155988489699007218054527203416284785163938062622507775170686259805100115703483178063721605422906003653081050742250242724094945649254858499569328560158843891543761782475011628080417050856370138875959171782316638109209373183299765904741062212818220675223169052308905069872939377161163696841240187250504416562690774835480051937441649589228566332198575858203002437747126563252711727169863161176756467183721895597880293034822653651346388301870778415828652453882386861694100033751040594904379975839022777039710639646205511129204347786755420757625227371709557542818259553404684262958109241200169486881038040761362972208161840218317363466128078523474319243771381608081418772268833040705672709991220194420655688085642144890812918178131839769272732893695258112590986925814454824092409311147461792851532652539139554656489285241793851438365661001362481303017849312042004076298599591379462270734563640789085253702111350585729848119817857896726925115000386000488804087231602856702771064030289832937899603445807828022350383612431177454569832225534795280502104376633014976122765184240133781582975082272724774771913218390395094717405245117370043453315983136808609049084367763997673612861197372641761904641244460395270733844212900100670565808648277799342717497228075063799254543080137478398385171796224780333302518697745346991871450290627174025573113441687483443476591249908595022134006827608341271458151284491507777396029750387191954845913700314096469788668425286415392068624989745567170489800546924203586663346457485823926114742981900444158228995695776758559786154735555809450900666292439953452860780696957306533019786302172822464997375323841613391036337202611723611546282164519117397008213564247361470988679283893313197183167691543624431411640340115223591689766617439786641683805640760919395484488238474400868515714110549302883080390612416668223714687523099168138004451003053032378095094454685566331938075492305249134594755826847558651305373430409625502135910314463765141986103867418244527663968842453100896515913798507137631048200985175203725037719722146292289735485452856498383618965336560862403744482503505449506770547456614242519215980071263256667259331987154899722655049150413449611992691548574557047555291876283078256703243234174190770688917772621346871050399654987506033853611001616583086982407357720312626446718806796624148065095832149751833014566035868710204376153702874679558035506442464183556068587980113249144907318123138045812247812744471963342406561564894047505844308927279779350157910650907563356855368906319533648013085699964731219911088217152204208536740011568666096188968390916169133683621592070013213372628566560353379964119876056495202149752317294785697924584393749885610878797733083022109255485198426418790899820174563513340417721406596260494024733966795867743796839643052307885138138178253317764732627222059431597422797705382624553395292930880687088494975613283826110473527561548527121614843074824145251080757489569366123230379120468675355998590041027876095056829778915283735432407031911919228834423465909861256024592922764607089500558834622501333310729342025872638659920442652441181258762661332093556513413961753678884479839893044807055585156451151637206375131444429203116268279144739582025101766261847517425006011557852580775470129322341683340577159729537475690731818609216153537186204059755671922000843790641533376539586229371503786728420714838931633480345259279947358581683243742947796919404679532739312276801583579904377445723983357607077047963136450291830733033573878904920729896588247547330978490415393147969647752588109736345504670846671699130691309361445257685012959655669150971780958623584852472056231151359153326084884394205436682146817674182463042149773734338429504764870981044951721063614230753845616216947596729475473567169256450483986976072252139925874098845781003042230590999728258925975243818282075145304007927530890384690765978501119347933636265911501573020721805392029371198491198468589104640685467226511295127668970344396611373654508164090726702775894429040775727619015197603639908659375989894606727535462088535670067212150637348127182814791899830209530177815716120515815605049365633605774006604872348086793984899559928976475410583911980154125143809945686158123777711533877613671253105959709405169730713550901180571109429894249121008353022804863084894216869814802870674195303060819624469718236626680809513110874622656428260552233600995529598958261412225297811214174770291541567921428568293877259219913081671691206206113150804124811275935704347137396107591095591868663312552332802153726745850353023758332053123928703705655340450814712114672268980606296661943037865659375457670242523187484509327783849285304727067969182812116868917525574372811189998434689125565874844065700629934269431444754317959575302984760715513539737011498581755528093846312992757060051706772229306103009181399078198984814787114325698076766838598718910345123864770873647872366246542057015807543273417994551051531546494265280197902379031686553932345623581997329638871402372765871739797184857581323339672152674987358318937389228329871254875165609071803197268895532853993360757930455955937033087087573670961477911772378722423304531181204416719391504219402801912882905442494912283510145312930691345016644693681497563617496812967698724923633017234080656525998967139247716004988582020220081733278273608502654630074689210248579009960850461842726602790824798544744801133662346756012778419858394125378132531828279109819178370203198745619673633842360243746253558967205154636652123689717943752372562126499552046490687821606452742914435388940766118785780859345681829729947068278451642126262129705189523995117473361046696048516615233146212549465901149507582638215528980288845241166994375393331168379258459612286519954963347355924527782422152911753341755367416464701735260805617352374667195505636873584036414909003233555127887346672333889829114628136249381350126698392203901187043905636916957713767060380697547334438098925181295542825071955453820050328229702800208602323210052596290443273406358904140823064530963182458669591781872316784485367617494042726393031693194338374472180887159111970499085078730406708070477702800525631252687450516387733834240581698373176369003325909967786342621968830259751404907452380641052442332814928344514813290053513361275908578069063364606756595912386910984439490125658869167575327797024705771833219761207935627450805411671186719381489251542328950946534177739220967549334781282134552672846601147049908096582592551615242431355913632265778778361198855574937764093726816429443342933204936069899027905431748172434828100200483880211014021956474660417019245415774897547956043479793790775182687704241059012798263432523579363174630894470677145430640003651469037347289555495705308612144802872099194332875816117609479074053844644354823702624773295536304118113459487115826143640303668212455733986394438312179434684459733335341153923700160793479534228510192053068827773191089918919014773404714881518204239871586656951459871452969751883601283951291628840852488032775681451044570242457758711609641972661730636661489253157108973539415438801286500013168357062519816355936693460429810790329807456291431185356377365764748603694541809944137589793196063034511380413238357966354805226131263500660821830414947006264154655730541331732101845233552257322542074189090967145996401976439817576293479061643075506129214648228560827976372905404104633305151788624774937613986290148204691530038450614464672838150121462605876198604958403193271448933576466895743469849452065259734488929399495521496182490857050822596220026848515786962377364998138002410140751205345549499000848329734111818326259214584678469784021872313839568617677762143800168376917160931295559776129574489466726256122204884267574465857871077199502958767258644876483135041890288693465518719895907997034915432190425372665925196147061726057149693088652082028725398666367949632955570357206383692344888364268232136832683648845660111850828677637580495837631215778453549735669107322744328121003833757019468017500233110663773387339128404999900492336861954513913408980425087440938477125569667360688080721693100846839967389158238570332818710119663719224429757854008460478190452707093733477733551377554986195769464905923916294965856448998067849240895023637547456270204442900420036525027577541513125178710304325422372753950718128705367527913866881396286825479444969798361792931662877367901370410848073073659658224676263137010919338380378908514688014609731112998913057228548720369020090819505799681134162306595465776361120939002273250340597731479291712952893485710566613533483513180088384306204601755913637435304470587080800229645312266980735326020782873375331678948673157120000950077836842289696385470207535536831860840864088918912455919852916969577902695558888931033514825288409539166786509130623413263086864371481217662915233369973499563129460680793866806748438149240742903502677642809700306766427510804863796674145728003625048128691959765261112282879759415618633430128115310245733934114308615182507300314065669529991100537485566282867784096374270829550673259159522940033439498640688894944679407801246078148414342977595820922850574734420176994588499440618903592191594488905922858536375363940237772400276064611401452633223544609578850725404317511899895533535568525325720753515862575449163545653956631256727504737685793701262073779527460540846437527144647202986622683802978745306498214107071612211979661982096631108084686782103787921038950281627516959920904383062049692465661847739774657646261705920636899757605185807784934216918821328544491823959794519924730766223707699964528942536114005213285534011774972013071880223315540161484866967249577620467785854404819385417802515346160895207706035777505908498347260217691480541131124320762309164804878776229918505874770480934172001549633968115361841353981800187572888048401695047068249855162355695079265659220512356956395892634934013033676395870303240996098335674138591126935371277858061303527169998097998025947657719228726187934633864681379268539019751503508052584115635764884514840527730130230680519949533724585077714155669497372482385877418640239074493822863812281068623635188258327835141872325971309276242954663932275498877907828965285426430495046476152064649823722395487918345183510409819769078801763556317437501712746724146020572639694216954178292866710371325750790756845767104776066343451006948428904079200167352507781040937073014502544878617172223642030479577714561915204284575520831873001101377849610365443137585602523020961996260746126764302438381101293988376384751939146501945844056320706616461924065631919256631651358182730762856848276400997429602623656016817572737540423650210070908816027044354689373499767301063571627875488799856861542165699517696119733329032408893289079924001379188584866421762487822581450489522068417174076319226991566346031955441207893121343620740573999255656983882487465024037499174984747176865286512389358045188863313470905729750835076545609666171746307862370455284966440290012609880178069372438420964239135251826488899376454883512990203378526847001054091267475304110581476330511703749283208452559177282101806365577136062301547377874503093700763419308074822281273594003593290958889350227489277698228572853416354721337156114740969510041590428871811673206430826577677605354151081296223825819229071657808911297805333188611674747263091761746675190424872344522331903749837472491894253019731462636869749500655864809134989379161688318494631681247103770241659633508961999420087688384727652419061958417543245530760130704499569393305062995287307644945504482003564558597832839650488412333612366691581893008332634066307856435870291747137647063165229337902325818186707009667945192552537616048555634988956662692005741123545186118129546467303366340929214881066976822566366539621650511317021503359820831603457695165308288531916159430209039643228677679340180675773453113255799615461225515377825039125729376137268146330306240530800495433525822232480313441919613072659349809483004264890651852133515892820971478629117611795659793463326426108183256669966497487939906086542171947945500755860787155495310555808529749197399859445223050491258243439883428846602209475630605546473865607849140880688997831054820130546634123938862237401087698130561340111455309581412575799970407467570465981334204954703828384710689877023052158181028896104529425546160160104084583179856677549564281987582482731582037747869592774037959142543553743644185766503512447654955819282960291473157145521940708133753142255310367714204696285709759613510158863331626319885958254003959988253644696809608293421802518208708543574442367347623195333093398219143746296419047830255908507252575077601159379153468688047533905830741578662839376650888659386809993165832472559172061326042904924425502034651209845973212288218731557506426236218939706279608136412041754076843069329014754148899504965295143068082692055651501656185316712862753938758892031246700791044239009956950663760500576902546613278449665273783700312120297095709491693685763786882256576945446326569600467451065865556480704967365375235392996037851888245867362982383865469504625209823252195729122318972444553994470392158187736342534952050442980087362697786862854756522228026583231213275934809026577620976195717472773201335395848485830041533618490707542187563802906863692037399507032470424256754105729949818343011029433528352093797732360086065854864223366473432830580514647366794668631866013905051219490398777323880793665233270883136815379777477239276644477107975533947541173181358230422317658053285114348736426627348523910443978064604416142137609889833731777679132224835498514669145050374380714953674903497070481207720137165048425865999170444813484344427739065373514255060268125203025377774428491579234380910887566194723997379326519054861664906559009400528580946462184629812176429119241393638058159437273630514346283822753559586170089229228869571610192990965293964590795424968629962766996689932320445725356494519138237330186932142286367123304526760616495181107804828188889650290556508995808146966893537568048723562585578998253204079350412696184796135526192770067110077472451965355252036819275659989532161100211085860311491983802228017053988175456683894995017870072832316473668847053304641895944438606659365015648376871741903836394170040620404866838866780930092610415401868591197876137598242457267753317678387753123123785427524890130977956712363133787887328734867143171583182707838395884209932750751841261051469868339907872800903905847329930472624325197653370083797675575821966325817307668413245273959385586496573609877587919981453464369497750119706382596867478805370767567219655533547239321284210815599280159682288595786277124352109702410388999760511148384232816279107646718672395516401788280032970430583563587135792540555549791035593628083422985232636724796782221202448729278546241886384640174798135439690626351239927651209401409206102022770806474577394514759467071322371298960609634094335827323861685964661755911349251550103043595435168433490578064038445223868353413467294661675735218344445449540125094773988205110644710280161875254119107290573432680835347478817719382957360472956372739430630652122859094142424768038764486691849090729972975545547912761918032498263408435111871422658079037570103879277359450045036094986105725584369519025433459637857777133875450029696982064230469477212428764696679229290537340075318768313450714038923431261723468142121675311439710702311748075649751514024216454354708331039234488234563509667271309863694586848084543068959192635917950194195774097431965364069949926290693776315207474082104655225097244319183716544302149846358678986258617172520447399269317252203394607366910501368450529817389406912294508530630828208612557472877328599303302401020314633154880422398098331991939031958171642582867543748391524762097346177253912579684720979785359987425459252952353424794484828311555116586035917503503378790183849875479728948392150779046665751523863122467289436271202395687123967215139411812476050020382623459160009260340618428769391031259677386655994043241812763712888957164468739561802313661353763237433251926123095756519955794770225054897615728942741055913023568576654376421068599553540449116096444256278892941040359324604554600220116669038702912090700225106753633971866277007370247886139772353418511140601267697204834617771918923746271464536687838864576453797941510112681879010473096676998014918269449114791241777363655489345927277168997648885400885621483556075183968031172124163148341851478112721287419607427852968885912267756580839643318520670887326062868710289646379873691781142747770782715222716751824829420822106406116976671249837544840439493271427347910573277005998600652642442339701927495672453599024464508490174417105980185006403917649206199296048074569860258564962439674457129037199849378210348474361156178060112692434481881579411612821173912527377765083225379117640263648773973497842501481205065466385177879878627601143566149120972282985190917940260112972971717884354020948581160989052386023959230198462500081672685925289132697695393265407120532307879544825960049841020238313389352942804836464499748083955582356411361833674835629077638609467130628036674677422860340028733529852964821718556528144540903646148595209350309611841653965292384587798111801932912652513317452963198305068914958976557037127051866910555793377707399343215721359547757986213881196651473297977128751674373655927320224033980188455937629809563522717689325830718370173943914288010600441839795989821827558806227933531353138584355439354018107668456151701454160353481892928442635624511515463289383253780451600888968598929256147649616259511395247124691982066019741573729298401100726637222358207343788131637503015957065335010580576469102710609854326016978588265997844995245142740130463683938580573555903861001654810039864118269264679048508124400492470062547403451595179817208951632316572279997932312273869870106309973489244671624200066391755245987867790820543706036200488800899336448522916577869329336530606791114004660914576800485461388857110708876297907189792215637128572494741689326492684497423885445291873744661956688040664030870593148947077736049509607351328177400470775395686361264835954124550948054171457413315851463712018514316452944332745611857173386216794425555710652701510309757468395915706178751924267608905137117841355095945981052358398810749737336092812714340217363495261902114525138409261377211605654936787053171128516274131111928813216213098438164234676416163692321590552576009912431974662697408236518440815631066526221509960076180575300561123109894477720402363753570733019416203897353015036564877293470768800428748384883126401768684942438653194185626680385003650388475702243139993905338198016231390829534329056149945453263290299005173481748674606141345229541401345097827722073316117168930237084345861177168233518925237827852974123010861691328415641165306945941621202110154838361436825508970321865403932061173320886818366651201751269098408712666727004226842913256933099609558653196273178251632990435301109269075586310231094170221175166720183108966021880340586512866766465298106074530954100590424576095087527087355289062276193630300137596020448711903716953937352845598030995976354692317912509031553559169328756309147760972903871170387588668409986534899342114071911084127371451853263283184780373324839787895357935795372139840083571010007431738713630074676966714348322383120332126815784529382719603789853670269053590843795593738408951198061224844755990609168318649051570656988952377040090453783528202105889658597728217472050169012164405296086198943702142966944062231075924817899214051990595334851455405232903256709266803525059244693605458632941365042354662484055398090536380269759353973917123300002979318452949916304759392886453772820293970285900125102484031700589998655361430400438739935897608631713142630756639495340269430049722099196272466255906513301144027214301028864717519981221927268989032626074007438740674718365291429143930880921434014262022330782036540424773092111444900813133557775979396087340225888918436187198971037423570310169720576140425782139633517421976126114620349589817511087611147026769099772182805960180713263191665551419900199081383356262495029736689721645932318995048378169932451150608568010202804068150111413017526944249034577151903383008230916056480045150647432534522927821712133253925275154691581388962949304952320503403420232227927068039253940638345483431957949889881548087292584004576184282868601077759617029746961484943604766497981279976581483081174180946131624375639600215312920660754615449342353913151729968957038406527021804561244814590254138917204651746722515126933919365367970895014509349370336934639825684691557083904450090704792700971527914193601332873225591562919336535846326917366854556663911945759086966094270313466750913857893076356089856139517266276863422016086431612161753832723349417928298079865351756002153750976710123690018699572127639663856611964331752146717113064099468687929820013352811098716022244874027657494660718129523262028586140849889014347116274118817028579907816668778572225407840033430016073836867874091401071759861908652942695485647116166353501151601472997122534306988963541690902910426965913045367436533523858198696273662780671854734190178026860799218214490492789404138196970626671863327395903219908155164855931660672356126472357609735355771894375535593178476330928256341272454175614849588012607925904914974461316684327717015224061664344314342815454739792268169733228028116765799655561364481994818676043757620367425710627979146627752301683861589230118334671928276383138924383103302446089732291092525580980892640713494985725673789866702869665722973726913283378138350824007048365804753495320083662966196856617532734976167063392793603486681798487893619275051263700564732543945691989767522128545307942437806431947273303027516165744333460382065157593887080227922975619331744290732721049324753824320623840019486398357461723725003306490824260014316157335688615338482767633535445326543112155561466904849143511397830504047659982590559565462756941946442877390892717121214739047358194301650575515799701583373427867704404361779207390519328813652132485258055314244437896324290840632971983097068085463419283893529971790226791074106321190749179152503055211810267059513032900156642459857404300504652886039584382335727427869905622819318556883779662597502214815050663644422353740918637540461158858658133839230992607621586001392431768218944845518939961293686981766791849942659994531825413368539015057430652240447097937747420473451528704552964623379382825538019698472230141348064184450446682016827414062709702592942177793603616382896912201850553616564557052785564539176657231851490374099769090941410549066815962978708662550981530190995248574138010993397002467214664626749240567045903995850997674699870239402997820756782304371230147938439427560814361213072314882172340480187576852742979643087564918860926272890598760529515098913788447757747240674219763999471581329316832233383692249876018543232174609410050385150039028132454869120762554941810066965306010082310514363649452483069506385007955210555590425694522701787128138455841279560502207423781753973102460095066522313693972351213853246274287655252264663743203431954479826458137869646795794481523439287675409595503330653738792939390858247267647308504531931684189576814164121026264445784747331842484518838821727076831800110971284388760548479637401763772675564494778878420003390871736126516569391769741500753858627808492792685236811493633519164028899177421232123749432652607497850212990243215847043358296509746921512793614654386889696946555147513801125936891489902857551186907458564481257290782299801686791459673763314868641473727089294580386435359193272859759182046566985909550669166350833098367465757482743851358302679416681964714019581590471772164752028086100734350544341873966145271450489562100457864120192317434942336120922337666690874091844860232324991603996738664655290433928556055877742552895900644219271047268217100481143151935517117625729234657042145342223376760766917655993847580597047747437471115305423728131638768463996122936679158436311994859493984586022475881155522173033602845435952852932925583995323969356994902975306817618230016452159108746764499965462377560657183164475015605215836881438023139159377206666913384792900361988684192717998894469349348600734785485143610744353296038514839003396528431954683367295361964712172489787277583891268699604922068143752461453794001503544308204302232081590344405892014832089238224786246437052765656662428701073608095777532337199395362532683877944331418448757101012768935240063875713940488049362066720656063282224363400807943053549954906113821705359279642921191292568917045384010616936622978691373613529331203183895891161550072878803125454918938863462734011108133050131234101809107555496297137860131553842196720678266238929733341218485453606460789416406708976669294364002427388574765145952381022680091640287502295945916008633445783715311924777316193837398568799200881186052373334178292370211971757539029868575515351134321443076593575282648871350236241562263743091141856337303407637188240302435067884891498035516161693884966526520555528171614804415899928536080326629548514309367597621086387384111689666410532138473301492920366439327326099070557156406251611931757166578378762684237721661594743987113335886925859819340029795972404332926393690113408882451991069204456972050681078990244355448432266462552962856814499139614026023064577283019351515351147996764806678655092671194664958172139267271369909318088478337865602225316491308199439803771037442882442746597262185907940664536384491295471348531052805301241483012576430808909594315041196400478432716909311136558350973151214934158865526202822624081891814562556323304371755509124010411227054606936945503566180887480167405227649194492774168266984117077443833692899674539863250539981222536072351869325699368321542800405040467816438073058869220595688459923835513421179002651177426495082992078136155342923748744820806258647374819183225345380433594658747883170273757925237898842803947964318994702461061143611111919737187553191531437745842335983025255618438704961100015081013698371854849056107154858769513491514203787864457059579051099031668030430710411755528227888895228120284982079302356032020719202644128121788535093877958394286079757306162334683073782011823898246559906492819877896382893715627436078719822228456727028982875318069610119636379423629089659379978788535512704230635237948986835376095540459162012906368063529181509395049367377938444496598521605571729485143398300019784640149790652290278958811958414836601706807359848874032136306084406246480286159289431200376150938591883202300189682155647195066708639913699651862591404586848591317896121977355755390272280289726068597980415364468821991073543272709740687452703778121540435335105006897265156259498298296161243426018489720470837173393974268649151011104404743081999758596607740099592896535819995490565761299663154144261318698934000439069641007488479436283996768265346651360458395668861943512637116193905947842423618364863733988898441971074745283778792451158078475861524937979746348348562727617995999540610675842376977672404030177663301996331847018485138708332637639519036594452724454154257041554405532509796093704136676343245283373154978911805879222842013285323909933140299334393392977031197462288350920862767540610240769524076440587270363624744940723204186794249400053900038249319979920332745538343774551180952760897663440687440632524146016060057737867919768690222542725065325005589581387738577843375513203693971490606708089507585324095426607912614483831589709974240329900928541695879719887619726048611658186281865703069880933383063617798336147675029440208578172768369961501589656605357915439963054286385236064159195660994603256588122781499521088272431888156403182006498644082240963646547940235437633197431791448251451858933356370670730939982949356450537029255421593323366098862867606674672134920631149112982096747589611629332419814498223135104819174799354089324450952725447983969147358889634412167766933818395059369704210989903962046131699329780351727003078640284181840375954686297608849474641546913181937550226404993526703297919193340325900514748524788514481152782066439593330981687001011878665980832215809400732896782792488252959413717262896652021909794744935450492308160502447052553334880717297352498519650349841723792666236922721564185898745625543543393861243179806075190270592495781306244139940870780476645422200708463642966669755249319694890264465715571982178270052367868025137044455206980073925034224262430249414796327305014833865990857155508175230167402582133624844552966937678365374258070888600236170986316672352993191339046334636918017537358707160902228166438913981550554465658689938883516000203704573007805464660701579579790590233899401107489759988070935595878508210294835158334428058963631005903538583102204015428580804424269179715123393180227280967295871124018232396620149865626383449239027303910593079758813259542179971054622620014183366388123044429484636739102110728612150004476943272414202245779796975224500384789745100373801907375347655584040314350848032262034826242113984794376489245087184946663449172258561841598439771632868973464403952443910634194816443062429684738441176873351050965386397118631215399703884023472977944200373932061635792945235089223895863368143374997130886962907335683714425083916274077800367159875639240479647173048433394349749163489065134076482445603215780129122145955137868806979065337221216333833159615744045728067758009834404979672571330100725252769263816593861094429573338105018217949946103381066432742161791222949824042070375689612397864893527737653921141471121064123415819081088874640635315772375439463532883641178988701454119463597049292247613222486975117692688686342998706425413350166261676638702322530493951661750728412056171484926154037696036353558708353002575330367405039073819652526291170730324370391323138005364270620774190140213603464882401150863127274876461234131396391565987936607046665092751968896050943736756013835202856113399283316387640985936168945844515362924349046343396765709063721590364489116625677488078731578446747078926587634938843482829600266700560472627619048011969855659775790652268030127007239690816661908093735806250924214081506634063728702392532323679735415931633731596843382897545369178118437616166054817031771096081691929677048792265476289604592228921615694880462289268037846813737197698825320536323113026193338030356121590852384362512925855161862820538337243322995715539610329941553214865520487195039991250132214615774615257523408576439524458209757316820195062327281482467532366495123697400623191181614966155957740998034218509662672420778843348081729589821772439389229871316167814351277407472850096165171719199560760310686957917275346834939072116145282468828600100312692459495102275489712116982225025339407840161687820225309459344527318749490119480122388213096947215639466372134219494382615726380254237463571094076291506492573101305353227861306303668696620167837730575636112296417312860927830255173210468082794978396573780531932962448183369471069893274042991894098629738863622372149206023378115350968800785259236808581067108301795802969851726185057134020227523573004222011684702001798369584088757153349731156674753726587837508325180547148132988433374005648520781447183855705576430400982651626119555443067054045100260431406705444528351161625826071221075322592015562096974214206670449219375108398112261006428158421099431074192303882628606745411126775268499410465121860208317673116674758598434300519853947325991188554032767977146998213192755006544659781031164872533259167349320788601719028750629585899847533936056479164949957954720277408583744717776064278904660690455505444669301208550679727069504240951102896127816733574679427953804840471003322435205143966591038950237298239570089395381661476204636340283415924480727788150719312699106492506025032526924528554352331063652392978667996125019871144528687797557600689265670259416845222740347242129258532753837931451591044151765371463088741130215793089056346146987401193825087088097422563435811092833210194623937880217406541648057446377608640071293052803996056258071279551087967334433543844093447336340652091510852798505967266975423477785361646037653041027116324987006138955231801795434641070526419609791502004948889617921470302160722215051483742826187301660543028218067554354023092235516038156029519083855265153259935151747774551266132845032190327352741609577989090856593049588293131368884350732970851921675329102064862175149504706725921405247241330117948219475606039967043407465841656827282702965905166190684224410536926597303831327859547735882229271280311436078467825144692568894835322475506751813322754212474145751446791341626149547761027479640259609872558796050171141088634465567447127902665416153692162937203406344777846325914785464829109444293228371054284177770977043576280227038541074901553080601711790030147272450813299133803146416622895171983628841127672862798908604672004327279874785826240254105833405364010949723933810035272257210626404369665088332012406921969885229886393760327049335165512674239556553637056350670611899397492046778627664237297174119138788946830729414787216198431655772391138289519918396039393881632314666522428119415366832545254650217162230251120330554443640562623782898124015870360464339258059738735643112591340717590549061092259361736998028548042806430892171204793787356934229641150227437266700259990137338759661825086520131045634821040454126191619369696538573958284341376111420419074844895304196440996337239125162985403426197845642913560094062704358726563118125513465197825775348523637207287159903839035509343358192965363311955993711990886459181667386553485261518764931347746610762255024544237820726044105445486734009467954553177546638846399090043259315556453378358986848195734442007129923963960424378684910749222302106687548276850104457179715267535829034974526419454537041270511531181011711166249848298835462401037605913329839603042035056538031219695566091839994134178730165093318399840909161775878241043550780183907954652595098030681825496825147644072091984776535920815912019827736898384466893793419359134190469186861182292357348088369454779891720470916776558557437366939818631801878600010477451075001144778565011976203594772187671092530504777608319082823330864635841159966620572533710357800728694833595949448042428322229928927816910721623846141705032948430830845202399404382735788518565875514453614763245460466658091692242785882721463199001568976376883524778567462415456274059557938759995241267600350208423017538664003881901579957053022217175564862623471799918625165218826502292423099654924601458283766367292761838906412265339671100737627223945614105273367939560899584800270541093296344230242466469824219301621772000635237090306799717703239172728758600068682577111590300546970119731178029732267183081115163707970351271544050897079230898167338717694816608667508772624441485669916909093722536783420870230730433166959967828963005362868771377464159552065345436671905809984284847442966413649893091845019126308530230489562722122657151788682090126037320413679169818774849378809341047362550614520714534717912542230368440078406397289917776486548887221869640572738164503457770798560633574599215771777886214990468324025220787058249638015807344266274578033422416410393524648270040080548705579893595336583378632964659992036754001844367940627848656680196804520704269612292369788639894675776655255488718627319296359937828630626471860105540103803893905279500186723114780611159333666045824460970076978888322746615242101535121473022215583414699312880199183577414772991882095680290175544024854508100236619830866428601394085566704278822368180893529537206613029676264593728740043556637179364057091102098734047697188708176762710604245718475617563524151916066321817291750659472791115169386111933185823277404434528424660425642682794605638045384893010459363821384101585365109258833264690076748987816832836939539431135134163749772637288988777945842662132532511337681141841764258746325450034438984190251420119306011901645686013837392723447214059072740380490695050328545335181474368576213554451138814414898407250904164839114690401798832718729366962771880401836427701484459274088446845065135694681241100109459414784552085255261920231303526237329644813878940741692998664005544854927771070522571475394435029580900935124713059227205585972056588022787439357700303411081959736456530350260282534484819213665107686020359300124021839309735763651610994812786086635562637330484763175807720651656563425865466199758619641000580169808805527335172063252886129458829413108626602292730431941933020170266452622427919165864370223989158824306588343670422645254287859515833926188218729605624219076389802184051259967745292873899228215747360682173329153111219871176461192829254991981545963281102911976279680249820053780407635817384055397869106642806469035814714410139097085585491367223845501232851919799706063368549303207439536003594984754434983135821491031893741920483182796848028337176832052207755198574654341839742036739763782463480969150896414252325250033214572667503247732508387811172757277613924567384892168722560156368882298759442409712036063733208748129255562751226736466065429534925002708820447433286285936445016533800647297790857434811135244334099191938692528181045938130969677959747488368338470632163517524375377536086728520560489326733060567843668812822106651384280204063476077102925732384082958355471975467969971067296592995167965436113677686538717629722281291858192966263163598027609371540694594814946081112309710059896148339082255015296195250692199175854468573845412462532975824986311844614837289336284843484531301984325289700605411256802073545645160019282217898737399554495521308561421434770454794163699946004119842858954365207774043935647303996069104655829657748424976301496017587278943958277191826791730053710103327854877370967773510514279823242429886921101620357140656091198817307018579767797960958195583707423232276663184879483511640106801563556708539265866923649212287089680665130386831384483936510383360917737181689932045977223325678009972308180836017949380899757188085846983304528606056461106098883581105483300471907179987026079467212316060700079160215349393787459388300637402801398672343077109590305145298138445740095051602469369168484326607538883501889121955710677155670714722237087523386274633689432578659054765571540094180577277222224854630273798470024359189999984707834949190598881236962212479229495456134965873054826385839931730430808968937891775342683780765941946972901311615153805084387696659906720066988486774728091591447375735286108692603627811537114859059611882270757745047187721993299057209864236055017339078918988828765985335267115589829946571458960224250826746046013793660811690317140345169129530646067729994876137139058698747137228309006262361183297300311411527441692574566864429136693627515709235558792421061278572175748085404569733748877635867468103976480487958704397542117412207611011008002076799570112571484878548494603000045295470921790047941931299439386040532388364136060547342215780248720314945830854016009149613590098616282639133729752397178520167946240487020656659007105405428345502335632111995351965480447402275193168507702195193192421455151043053817671712933922549159603070823417151145487287580192973006652164254490333753606877749076911441437959166431898329538449678654527865524164087616902689535267053731065488320753890296915562607017787951356226444953484260325620478788115436463909494256796705680013429861277718761544009035011471974189653144522492672114053049682645175580658327229418586057900461941119559907744665691646725157884828853819927501095123085030745440108405837779438660248282431972363246369743453479005496926284953130613736715256809515921891231738553215509393983898258095950095524178735264064318804024773696859703484220487758803939743052262844603060307285463565663208889301251906845948249743263054186154954309214305904108170911642958784524379826607951595865128092807201827068585764064851775775233297673065979440061571795635961987801811540202347724533562912794916586153020904006157658936673363057388938044826347338193809409978398039370096721757899016388203432490685345244974556246681679880665990493108611292212276932370005627358724802938592463127021912215294527634807998128084275757489423224445814624447372434642908182905922189219784651748289380729157318095185757648754383980022240444686039878224471498707665683255998444349356489857039722978991523727276988360243974016742399935919728496347984718208492756733007761257724060180599482088253276063824058793333535369214842094936813215570952189500970882121483542487715702772115317421107217585089202873191001100099043147116160802205421103715488210064624689403235192889108051441522372333995082714335251762590730328386651239771153946323444284944226339069140843170129905894938017836820947105748059910418788289091653753236351639305916427264764993396817240536490724434592284052018968121073191222789178880845256701182467981020680053491074322413130187834339885241934137102200039031576744807424164704579740787660880593612204264918098842290967252482611957455932082164250044997302621019929336147378045201052673437069155700835868094931560669272470649859217297394650376477075304317194439883218512149364770164175856348223932296742674628689934185572761173135172748832315271997497619003038327112590212705407965918909609133901247006581842833287248517236112572562673993343778628698010603587046576314173955721183170434899954578749605970313979694998125929917482503094134155597850936636342279624498215727231566386233386209667407225447686194440781886695000453086705105357213289106598861835218763251266103493905488815805815074804483201184478743784930276744988245891172505914269367202655938035596290907332431598018810103087946242149803359240730571006799493841352373570275907764186724391775382687105015448924081708301896149901418859003594327121706930015681209514104776179264300636141420525591519413179445878206908211440053196789733130765529215302141770571932689958647435680761635409729133637008610003096947820292149367950264315635788072175685235876134099727260141224247677103629623141067842635839644418170024339229588681935725172701058569533732797189495039299721673557576243496451697381340722223136974014565283871179700268379144727210285781950190884627897716318969005294231004331346936628738541922887343131177297884794867769776098950779555297805858367063251558839253132616267359918700888958759501076769377009250988312389626818066815767828675199344333318889335526574128923747294646120699946859814846693961209797564514627594536104526600419703661574804472527737991491834568662898576937871520371946797899402847118783067495545121566814384522629493813912216038866327949547830405857353251138562224289911405734840415862596749090545264477285274922470433138839549823478106917496140007893281580735166808263612412325398279875589214821968083443569155041774642074713712645019200715481628038790641926847447899129612521843800159401415760989799322432357421064334207837832137315076132938273045480973364166668586284537574528598428205564115594808718873880349605150527163169500793010397488575331010287462586654252590347573875111801732947840060333845878942537315543050596721928757613227387200212646253555669662628352163315888143725551776602490170410211864602430829271335920620398076245433164555975620796537270167102482832809965001136521431598395994301969275898413719689358966305544782906115950328427428318999213178113652303584310150313014276328111548963255494963332655844084566227509637131386315413693415901482887738446357775823452512153812817006233238543337120221007421360156804800329436202356164098264837681348006822144043494220595812664726321585455621518836153891587414356230017192219622842045433986644872703450644266442765223596983666853146745040631049716998282410477437344920782775675157362369631381993692610290463828076816677921631239839869360612691242513293490904361976845274434111316943100987257022728573543584801654425448619115334371605990293033884018933631544231405831480273679752353088654720415803455054534935102958873238221398271087468573238214046504184571912778044595542027581393211616079407407418921302664235236703822013906774514891317037882551958261576387281535970559385826486643019976506241319417535824843197362068864156327572332653031620484670746149826842989060664716754163634506837991522524171889963422707673624002467958430931884775562134913887657869321255828262998456019268568999487942662201888895448731573813670031121381054881385700894036815389723311277318554283609310597247169890490809802521443711872386843903792697107745538070813688130408172694449614340976811189457128158213392301802936650488980410411950536870412703078211488444687369068483946416454830289033832079282656408142136134456750024924551368073564905914780701439264097404383004300225244094494177209282632307614569593376222647661770937510964830485146550423362199849305797970374273207803735226053949276934051452053434046213565185660538659184895923272785776991616152357904618616731239935884050619978106789793589546038585868479241512338257759070720376811633621864964069573665862143824368207808730684866248324147035806047895175603665025099698835443517855155169678019116312475770277251555425025573624466822680488544483412716697294109114596647334498460213786450127657310333185788702476316796852572551163987495128867700397312658546440059796926470611116410864400786296013002211720146144868395478892369701428013214072801980266569861972831474081432254587589755718519887898565763673195041843284229663887769532057932732084930613054234981572879207085679003765959602001407094103949436515121930455989487177911278184318326784278193608583707203641776585435260520981110734091882250748567945753938574430475462653858147261669000083212781500251963796624313053953106954843704133120343699916274620351144327800821499154601399466840882341830937413817177105586960301304894115097007309827870314874681198755624304541392087690545847253459569014760095434834953243812180587474043804969898308280025599391873327317901358320207727580078762731746991319296197309467015411083269218917145819268426362947774269835608742017374164338396882172825772446697488013864976264236349120848370527988161782205553792614450199539898096484678609924793058339413691617385964446829743976692992791727225626400661392484798087242366926599550602004436493732199104120860542025938107712370603136120414408604249867728598633702445403035770957598161359117163005845230398686469577277038453184564975589408564986416761817122352748867378264162467135190732481895675836449919167099201486177091514132106155496982019872567461719174277065142802999498239826219407611811374364511386297294016904300724288752227056139399225100611059616239865000379102466761182366268222559865860863266488801389317180790376794789790590374570205766651712258356283097938872291722069476928521386831227647985562421709204147529940622889506990001395580086522330957829333841941642278608543492781114100517715199827006716211126834414257024914943855021813871921024538270857257137754125073427048800422362868182820332571705983847039449230283344212470169680387842499454316158566413751715422412728713375646555690456130591449157514890946448322506850850916939475702529915882840933197246534286945519385265081154472321975334507943691867048918602424859132703200367583240292945955149199832623840883223094789485733285198258187931643800267820868539919287937102354055512943677108551469739689645196565407611018195012451358356552072447420397287998142960184766524357240518733176075211349706625659522888498063707686221597439080537322396603006469486106693455234926937517341556810571302698938849080361200825973180740525077596446856982627679275848190882831502776334711531160401320736277108391726472392239132066924697755259940930253940950010412451821016295573939010911420133293575074216255432421846965447503937293958127713263910792821575569438561932063239882593664048135169277952240469528996910259052892401450844539749115978501455826920310680524113703466570270273160865126598304867953127465871658762636941772332601904279071705671135595057812412500610761773805173988398355114571438282428886485690850577293280881651615659578076767060144493155085591238312055418104660777402514369459209628570784468332577909541948920242465425944240934181539645374391532523656842806550684492480964339934938718237589881569271958178119148780023770364163768707392766204512441261419408481960099141836140142310686185593213601025272914576162781674858086727705964658647453851563997339627090809343902970023928698642133950402172070567018064809351906395736837017445490169234509715424405841517372782430940017676530984599565152869697239203447515510119389533961358266296407116325535599102862761570078552750801192361786084330059678766966158677697271045998761586028247189933366471092854716400793346234418082253931925975822095504029682997831295779020084264081652321899264508713648657826743735673945813525664561643619072064687385604765728646480427901190503718541865512748965028280304043989915880086109397012153196591694586144526253648836230758356691661326586801412282639405968984803769887132058230655118910245115929052190291387262854027629967195650510982740512861480974174894566014710955086692875922728636451956880366436641135799129786249458687926945511394409661601499416166607614471840197974986796104121512513574926587141796389948468135160030691111409817168350525042149519704730983473046283271360105048993782495264430316880592643139076436027416889025293103658947826322651549340374859482970819022708285762910957070506950096318588059309535572159991529741925934309227749660782398641718817056397174366712759489568780317386172674589266235149285155991667903162348341123453572011455392338474629201347499679823404728692932352768538882352397599115735932929175191401731516556645830342228029626880102511879298766340423993562072973492750865698960289875740372613234819240942890197586332856310053736247030892631551597674981798057102107881406626871725172208522627002597393303208394166935537123659170149984773793945184179350750814828404611852519541660336618017675909882606241231341512841582821646814910370209514736781067732221549079746091211355591461740337818703617175672691713061189647021585136617522603679100841053389941405541260994835614548299013179697475436962498191127527465246803159621751844800810381001090393135224489455136743817316157265879667372623596508140209629047693322522061933516754255579152220657756212510136082168320939372523356212047219182410032643565751621455058583178732668649968499789388620882951177403841458404929754732040541588262448949546761957781601132740071994089062308641415319836270411416930281721364339959197522011089588412587976887892068114649788111747999054283431938377155921061532425225075187841194186913776755823915259591289624271617401257492160563680418892697647696947069356474539640886364756683834932037198888757621187427680573950591588402149403662914607930681422447681707319318683411513736837387592208966585640898715965976435038900766358092300858107017337803682189906317740532624108676733964901579320124690308462157317217510764684872985504024887565297803470808114162929238806786377715717606219754974814460878711295385135112107962310437682875961125347417664767242228709797621077997519646006841721869038604752478266585477617189699300331015556407497138844259794421122800712645666873539896006822914750958581084561341383587093121913399326282014156869551619019132052629532171978597654110642820032716579808585874337365782425847169245786714669175242182595985724034735358078499837671844157530092176049461381402235232546706851446590036008334473747497620314644741443850388857692841666096618001538897800371200791087240319067420415013765908952295173943925793554899524822723741446008791212973490554173795389567411800069120745392392740824015258109334332528618210227435154335494398361545421636760411052782905452403591155192928921239980376013928213506952870660034401471671959024436539213306484778074256402577167866411573576783236084535071213434790950186651206898372102393686992829933874674574773969066529900063023001094226095642478119275655253748917300365009154058404851418299797498989869685834201867851451090232361109417397445598178892817391666832775295110690906928189555766597883036027698796708911501922063656001028949960839711671509356593884349324085694774601039635337075962807451506154690051319045138339126134880679111162234397012379445334608013170119610119782648667169399857588792720912392380030700235192379853476999168619928486698576468866097333803089684639541857366964188506961216596565628650495453348514243829109856149108575301503295803425263319694967349301741024235176926409577373552914071487113981973960491519292729236926909911924014551272055995553721655568569797528071114866971559041669524911172306287732200711863813522505014421391566970450114340684592476936369640898075861578778951215082879013576730505314542687907519454326333438994637041052389287301345671013702550837022375137908123464884580969968486203077134771399738455801052222689906495188098382778161698275110755238602959217658037448882723557847835584565791059091075619853749381421033854955077793432865559762051482769187101230799563690789028356735872224351396301349654257437900561375961283137619572331772042234005067586769150060011144099041022967892276495144423378983470100829543297963732447901345401317574643990332672747948683786739602987668805645196745905085106727371912806945712498909307244630573702509201205368291062667501869291208032451657270874815665165614264867638543968672487700032007613497395315823689166532473997612070387593387330839463686011105023789369636065573248457340925148587467649224873466637673311455895902936130263991108743698697251386910868332770968054952507749272717051875321201985612439927135404479578705617907693881183519096237226386022381542335669327560074407917333116728113867205533048970256118349253955985107595119444637017578570078096221615521249324078762330524118820339426559409689666773406447043755317056723409315838766637500902809532599494435424370559052548580308885695988970113744706752627544049825061280636598581525350428214005908686644655092727590309350874803659172322541635847792557277960727679235456105551436875021496293744362724217679091260824210947464250992931809014903094630386504995060512786240185232633221849737840262371038339062604420177906284904874536288680921418133043486875467247528221188734833600717559386354563790570106345043934613144330417437054514765427613432602482628758362438338631782190874274844647895610911128654317230558690964903147546264583181829879346568679999330208821014215711334798579455839202959968109350188051745451031935294082027999190540720264722161228546918167674697165082081931279676279605414487241735855185166340012092944209048287752844318385649338780650015953686340601538153893830567581968881140976924103303847887639360388543505813848000847882467324723817394228350385186571959989745521213012388926753304054348032197187485253296259735217192250645896833855864801787835021458443534309979551666770105059439947946544771759324750749552635637856082331684045595404602497647272616880805018078345813295199056647963285479065587122198986117607677668312695361970460856940324054840484792289138526919889607180636815890012549539345741154269163109256443841334500187359750606602789527407270842364362980761140824735575492519894377617095707003926431332716743327189638281993489351440190454348737235031489843101704028219058208312713935774621211365883896127909059019144443425587462680867195135348623424138976150521014346654699879486561123964887810219649584684399170364145137028945573491158023335169713571039410217323628730299422507231761126199547254107131206877241016719107024441295905358057290144091565392828299945514078486715408885868310250810762900062353808777312433758010301474821272150083838719768325496878235182518553205098592518701994895371032897930840076888344945617115732908054638992900302656475281134824047331895668192408168863693955281577085476243997543043203187385079860403799255800992877159587492955915454083652749812892199604577194094352836774094307439860967364844028103444402787505295096825920639139828209622117316261728663871459706163878869280298285531194346563004812430936997379727070982092666615308653328225978655736284905120008857867966246546196471160669800554091184885833313041853940905907549560703872230428738861899133551204465383089309677784621196506388009027305681488571886290462208468352113024644786264671113132899803716038971895946005889368773238097480009970213201554729331094200171512816139158983529056705489877690386424763938124447178839460765857375753066350906117969742399358282647680734815572035739040122612049557392974524956383283801350369843575561268113484103479411741857638188947192520973749789242338200763132872756715904019014321676962919368506024720629346221341474411134171574275487363241160369762839057272430024701315168290725317167185726417967785888007425640210570923277509710254973999961080251860641132585560318364244730632384778819540498153763905959730600361417808626386315530823212515223312614793634736218052318593924414870012302922156689732782820498827111238178764655446833819011293393139559466238924471898248077092505005732251653855062180730690794237254008511886435392735624391988388960869829900040686840560289786856969445070422233527634919068226578204959454197699482066620397189326885532051102777418587625717046377480252474515782917172694237591818776379635852352349002030283858164405810415145851987104138029332338833875261523260181393381630147956459031294020144772995591600537808144782030783255669772488405520118440786370075880742048729893786876715391896352651514283808365250904861845139608062108621363025156967327494438608221883393511360566999883767542574344304184482652061714951738984593396024654746570484512787645537120481413790225632631378079781840206895149704769756372774501302580163435741664727143303876068561434995934174070608667435820711580981988763112931496268380539829979874165040689660345163646580114863308370467117408420751496120176494523480727237948106516015888726952734974029604042749433488069571901592866813944813927196709636804830677451878367116835518093919029597526353596939785828921362851842368103835102271509471781371536604195767333481817770871579269485388951548400081811743060024933347179020169667346653777457229504874258998123445391615071855085550609059040143710981786475589388263671100991875311391492915920246444154397083007731973901662299301210572181707130942560143538464661790951208609373773120948064137935162831487907612202186184612711750565618887696143534875110581323432891032390614944238436672372562618344465889527613306630946646083764917099689620429929334500886045127054049008579465100382901609265455839889663112428103316695432402975448277662771507767097521918805250050548765484503057234819390045585761665883268011396590152539758441870042218004334691465508233415815690137427445184420242359854767522384495805044359047363340379886535821181389725383895589569566555849937616428292871031451347390590209529512486698560842858390240981900333314393965886062223271497288971750801905072620812530413811532663051480608602559173907224689550887766031863327756314472943306591583784043983394216653621775031082689948423764778403838306766597530976194644707317342045489005841429198143741229425996117913763345452318229142723535554872106472401766222585210377637925765696626156506232690058586266890668549170643183153941870174470290270397602397558296458432771572500827516738087844222542416888960926913320443356844072676559747585218724291413291646381811852073976183503403263330049515597663388530459373440757949009303029614586934391203245900967493578789786023363765267507271885501913136644510602506960889128347169329218436728424037090961575840100432753891989791727205045329778390171494383261589302721368944316495723647092877091819341864857819298601931179191497011549239254333608504505822762205112150266173325041855993980918238223861833211365454957442413419392189350622825786453741199832222802453183853855081354988436511260542486230026685493205258997984073353584506982047023790037965109526860335828676246046771526424313970131882314888794878842517990640082308534050227268660952493691541398048059700939455085040952868477650886130232536592860440551988145683409385203874102460107476445870256825581776105046518548163261168006540530077896946304840805488517282509291613245484400810348578352473258837187482521102851936982007212747632758423078672236705981866493076328655373415319889482496701160019511987845944462154287254548909245579384749973018438330917386005076649513138381373242248458251150590226277049513932859699426427958437176480939499704585055247014772346864599938028446636394141541040067015690467501869040948753442053804039792087325197519612334290507722468872243698451214957242802619797459826353144478075386198128733005855487968393134821908016827594117666409399609234833379711497307570424556359128779908271269817593245429334449349526194846526521902428217849740579337067488802162092385066506416905006678116838046846229090150722411154181046649080539094772148880103901785905056748198899550849563314970688047821739453143877060177533616762910098652394622668270091154040132850737667222076364000525756648386779626929233223655204572838977003972745323256369782829236467029692977710752470460954326508567444781462530178781819896494019374918899338068479216412691788960502766660758640528684353970254490037080429741274548902692143465502246228146779659782220981788879109932859598069325327558552994891307155968370838534244542806583975054876377404633234073225754820218324261427876645475628992587950802808499479151667208616536303549277674179324236990602938211981736829653351977951526065561677597505682421062108916611227708939515017649928511738163530422640455523140764635848586156027386800412306611344408202103742264480756410189020862145154322201794726837023121133153822090447284516751493095548641749354158810206201771877413399328678445435249940402528754903137262137646235150655455096254354413637022512095480284326565358903106135411286585578238836231942667285491813593558288494953928997594000054610999655015136861841990249784246280710291298961709327555766115338914443915407026702884319727101990025988761399196355196147845635681237634633512034153156754019749212489453334587290991873721329935088091107098811318812298961330851185877277174678237985840918071144179863390532024099053578633480626086717735933257719482670580093217716808087431478128375875618900254495488884427658161913595891410049084269545573417350213559291515454690165689093908796044630914629761154719482148209584992146727834475695871050779631620647747380633934488846893528059322176725640262854509380538591665165354971673906837127456418009446129508949480575419031412696666299504862060646506807480354781568123232856610002944196645994192886361856441840589065633430605082857244388992293033098082939543857779338191840155408044582502602192641066372610820691197656285741286437559654946771695370972196507858501915876717612971266863557259710754833162155667256164220029124224420048502495361924360538252867902875802170731138572799421587328983949036389222062563359465763510522177967269274934676948233746605924432929996644551205868361065526449435370611443412478132074970805977428379633080194737844585398005808151020295824959900643342910559125830223830190975140081618885524991369514279066830792637158840294169143538610609062423730947196212001430879546174363126532427913253827572656747082880958436271723788053420824422364326306513388179814969526628270385758987424034219633733620108843916285003712738802554278547002570395373532218007428933209961343260756527396452752634358841539422406206978048378333138061459890585444868279916470448657057465754951805800096228256746821249936725422999803112267793533649719059194243163789739051956915601611735587830190905031651544699511312916031458119664538110482750269112532628396006800332399153106949594089835279824160506176180622560528924070641203459436001392383328146529407310901711744970288801526217712400743397621448672899184270735727147809606686813509528302094803007155431778485188553349319247349080634340104303294400350591536761599065555140332177093311689686789713739184194140112247394854674212457428217663963768461807322278637239150896161468723082334082051544804223009741920409455708329928946107132249027300012139913138339691808999864709122025041972366763139963702521267837519491550748303517574702489862537768515897980964856279176804006407106323485578490936212953416338445526022926295744842369704497341148315756753239564462864144210400295760285520103189292543185601955362695073371469388867383088171718727188145552951511884223842235193581968691675141735050870041423403446919573963580077885726173565510982201799579949772510154098116189563054137151740872103239854227613802440291706243899827342070398582579609621262318436573782275509966067471429016139856844747304025825105583453904471760626618695021048296157297917923754959901668392052103668857782342769548020141257915485557501400380083293593425135968615368324696664643504532012408515478188973787296514805332263197366325119793592773571553719142512697786299897030175875305562331333296489915733871485119373214237689961806472153092228348169235532168104079194612959639098715582335981128186563872293464276531580879396845622059708774683894357880781221935313665814131331505662006314238709516709395795825590948638290746532546028542549460260709386268358788003856975304028962481647112785203423458070980399111192570947959490456071180153780221584775647621351948093861087783555277852100956400902390310355669965692884706588483928817723992197765774603831968678351184014652105806541745903051709672415365863568920982635178983368806594817629781317825842775897171997120751973883226445272525369295954487086477710630882619929456496811410767934629012922177737941016983813255537355354631175777752004792235997085513048607460430856760165982210045697819684165983398640732244546751436185184855160755404658538010176863062720541136631115495352790284944392506112272584845986984783651179618054117658618542699605476786718337777707730202912829605495370375657496351738543845614525869057041944110015666602299372819061630668148240856225109948153223286053241744597278294898947381901788721468798764929228870903252485565016033224361385534728301009753645045551232957170633253358183447893923219307582762111125002933217480032157410819626287891220426624643528423086769134474619378942668265367973840364038247050686037769057095635383791992342407250474528622870559921874437958704134261941171420587823139921421586191205808698488109738229237600010845625525895832513211753209879785529581644429409470926705412678387069699566720733677417485957462613053090417790659394430012374054989953052895020890721267771028409770308880076046093087354409856384255637306968790487409659577221093783949279853902942022011370790069648102703021163430692047646893116924452318967000594530416621543408287967114823074177505272204586525901814080104973118396129415913396952193954779208850996636831856857872576735221039901232879044190478462414679841662362779920104875491133938566950625240027102097429426458370683881361211960435440176544336948197420350566414457416595503502464289977823203838476860247550080980587532272868827591531028649039092746064369892860499772131789760466029665517103764485997787898888457013308889710346585407908657333426852975882954519713049811840528976195556912412667717788518055279391831735906877289708382944761555322844575567746266741472714325769333918813717594004636951096802931323726916845085302248374359272625645965443644988122115618314932701454553922450734217051172767908324051010730800331390492075448051249656310003016349219763573514158822312551409722432754749902872670376293408756623750064092794525407282639414900233598743450268258728366085235310339056226389302907525415020079640903398257877394839311777621627853080382456939349243271874952637272688503021055899947859374073971813321731768259613665871529521953217137656838246533456621991530007610533724950645250144445162711301072161156635927571419715279197020306087971838679072029487824894258571768653337836316742227623300326427672430348335076329754600884709108369659300628070722260693288898450896239318298492217147282296793732300310820667383869213975515676965885957162761089055666608572340745565196953312083628220434739147190131301094722697283530317794575629324281548854427103237166904792890428231602309976476117882754975732337149070586123950287469150497444847504112090489234965790587262720061106899286134893154141537948949601130976646523743251665181089095288060366999530546394259239910163012859031772720053161406873448894306770603670695611058459692298576512308295977185135737943030856075894367142506313159539125487017735443010631579010786075365635772221400522422390538442629032261133577524673901287928638785681630262182614115144224317175213925386213513104414586972095859281890366495311047484982428052280839393714144863209152980209469435189650586644506638552989289151919547800222573221525526208234474599017490387182888890278097628907490644127078205587820682112932184038177692545457311450194168189045523446190089463983094641755763617686332544142693969576290119342610679647392184978750054310511004745283681976308638553854174334701291989263854880511116232559961889483325534835809174737544646527357514575520963006092596396251704162565888871173286704756464408874302099806790886373886710246484168766268009526054820535877955711158239689963051332344092213728266034168980563526340523177396421606078707966450441544717618494821014624456956742815179938411363643996284576823106332035613195121195159300487960923282152586535630558473010124964443521365547719527873946350506059831122606026425042751364552520248595094281128454982900943527098398622944999851538513164393497370414979141012970124075413760253230656720729177128973695365237151953842070077822907765363472036998846725334344971101874973039592394144897449329992890092942869667810341704774335548359647215577853319283143525372969999926010825640947636182420632206006556794052778925924007742327965552021505416486917557348800546532404907512816987273048053522771314964998597518650979307558394702727373050242881863728777382261848899531999817283821486473405110380698197632510384354063667479736523664702139393490901081330031591565265947918408514562563284918492369960014451029053800400957373273366092322026676225632683888905626199401182163283460102776608258987215455236473361439173631724904005512587718325003407476050981784132214191146003983582906204039838543873109928723692605772058040450729901672108985005850692990385309317187873446176881778764597594715331525363862978593254634026726824494523777059184861049834195432826471438354693234114975731061655599001220851315710460640278506724762473232340343652990919684747998069822954049465564176439634449288417822808711693392902743317893433619012238544378450455590842771528293630846020790004909947382812125207544150288576972579998714891135313437497609232593180441433170348172108576429568816273132143446174142097755180502682316245651640613827763306097471351005045483684573047882945447342960069105881767919023071894137614019338432165796413920602706166219099348475270553174020843191338181101249647852334925122985059724443825225271209499989501978752724635584650359537754980242560673060472163935074747838043548458614408341007501048225728968527180821608381743581030704170453047036853252482550080975266804826997898234837383334780763443401480280031532036392130370561773615487032506931595005051555560056700753567396637735127240456766143428364230158538973353524359738628476892895340987735239093071485805124862299816872468364261397495780044895744996560630927874936861741706626885778967957620905138501331178734457871834541052913767933966736464373692039276043180638031599944818361645050432263818927508413381680582606645068982262162289393379825349041345476236363209788622627796179466021237865677940703075098980321473411971023138223601234650553352099630254898623671449506871793161178804667497056563978124682433342719258359670232820546606805175372705962478390976847105790152118137507278441942625337791768811446571689854181913740371170358522482273619806985702793809391206503417409602640083807222426310349377123746895346134697378594268980354687830758350233899570509197323011805664087328697077986585538963036303615628053228953201416421152057306836906103874166713927677289388734792104032137922740601175815387717124571430106562261994949539196870748503781418537364832352606456273997010346681536581978529536422760372774962486367620419261738197054936536968683516292869421856984454228325838665278970946031341445057552769942853721212356964435246498504706136594859998385716495242232371612020539551514484500524040234257974911841925056747848262673568892607193788999846839503461028962493990428686890283477799821374221698795703144658608671673580647974983350324815621350125785744319619722017037025593068295681741431787210125402426916553106309894308926351015091202232547187048594252438668055628245877653951770558891842493128883443425993861601521296559842074276667691143885990068058840276502345202938946473564248594575158856286678612842192855974788905980738046715043468934506561132490973715707359800021370303107529510446558679005916655419025426707020235891359742184113597418891584374074745819604125386684592822514985169244730302515844265277142687712595661149426711723619776211447732665042582790965551921877281076190884646011920285122505698549381757019112295019216745789898483537796518363337025342972129994536596882166117783960349586534498420764910525638156664265372699294760802123799357074876308810564698624530094976472474673087022374626450014771024306831352170639280444632589196986161522054871238718255795084350995152626749835051834364532966546342580636761495031739583905486934834374906234419965756185934651564943056760153204932165943027653523713998698155881846418098609655505786616095649770556558311827038130942216278502049360751421611046332460277050742701321460870827452911744819255525050931423995728371728837895685183078476702414570778472531491772078585399082725082165575604768047854936516338098977078492266888954623878719251631910553693690030645155398059792028069767977683783502650729677941778533840981815474979221602382800917069371538878540696186954268477589022171968926053631905756351291849202363743761534283408832210578839903188965583209370757718437477475606998811750823290387352386377716836561732630429550376085714552829236831794288138477621437595037856764974564605996319098748481347196630534173531472419723084788855151003214993514086010074201769703528861051752817524820861248435066790564749321542745192138975255748639696542558912438287446319446360019544183360525190450631590191747798895324537379165871639576804244161162974148425318824486636385217225975847665850280787688173689607456328679253001316382425822874651972760668227290713125886970317301698313944105135724027991251594956332278785297286872742001731054055775271159877773045687189547299790490485543657641504992075299227855699917760823123392397687758475626438003999936474984792951994691314848375990066030766732913459285048469029902320112473785883594569058852996228964798931207786478610474958904276807381105290375224631769593637599695680739299177953485031965970591958867171806772293797001645178520778015040526219170894152295802537530009619290043902825001153831739429985628509667455448347239113736335606382789725258738559260918704385673259328517820162108432664438004591827956824432733007740226506011991764204235923649672426732532268759589428554166040889599782680124303239095290799422561319338639642318742302436716530574240088837074251149810125141590166461391638563113174639763455678762961087385539705176665736627383358159611897656373342393218658574908623291199373051561787382146181665055770318685430795975328022009489857810742102260234164299182577091582097676286552678112046150902122204660432298290096391567623747273525301390824120183458107813962640727172726928483694704564312111405889433225576645886684466475652899420754061075633365822606510206115572467242447866302792653034732020018105661629756811232769282722499234644345990768281133087582145336144913827719686281947283792466855953951750954480549836016120489397831836235884442880268509075351446389445480314521728965076134879162992656469869739818078913806042993763175021135006965043336188858463637649095633271649104008208225842733102083903508318329063810647420151690454791662956065311670447728926892539170873905001164716976607570950519602642977786474962623322999809475094172451421619609155540623469147523648541312368865592485580425330425850791636148952299144764774755321648594269680322832731261007785576784883057014596508111285202385223092678635367644016407392312504983636640798471964975827102461950471455897343085495743038898202604195844182364051412343962052185764053950330990613274475190382811955230180226934674192368892407569648231286369530985736516010826143479438862061811888657288757748232414009954086662838208864070705647449938542793297124968735608173296957718779515768040396884418696587705951648388689965445326759244518221413778670657209981034292890903278281967319232668561837456575086551424710966139348763119030426543554688294992009056734883031312212483050994597842297114455537203146455687331612512725024183213642070104100993992861010365635071793524035942147120521983793402460712159240083041546338567056934103484860331827186379676733609375561980918531019947192265057829705728401972074971396745528561387018399616594775281854787708315530920268456725579725598110279408361769398860304191657593338870317647894070160927721704657072231489076429123228559368580205047541490098806910744345723443093075850225245455762085328608959986272160856364269383717504495958622974491723961894031708053927346555371572834998386069412097379932747769226494592037632533286510356084695881020539910132959797659655359450511027217192215901959476060695900845728990471193291660118178746026541721875992193709815432422748103108105999521904450629532248844698361459247027009247184848511567397285899336155382019989878254331228831847225959490275292798494324394175953790255534560261719451694408572034235539025493602404322793494096462767831998324792753294092917362095969810650499361194496274471021680545082451791236090795307347697781734737182824281953471510722603489108464278648277255363654625114999430447853998099475470832737306320346272309141344437338129469039752112018634140713615031550246331819455353516008115499977193878258731941691420999802115057396045206450803079667325011015822320183507925058793567108377358158258661000258076235924174692564914760159177780293901829269455904462604576099486823687559184798983237902004635159386349809256058864427075773443336779739484584197178343731144002548931590926226128985100288423334883365404732918022203375952935102996630732619487822592732874247319748765916903422452874449913155895773411992381120799812837358658463883703381040821693207954940890983250962424278244358598773149041670360539311050304191007233144085288344107092977249300661718619897481317126797986698957717048713475374998825212192276777357364993203554119893727653018559555169349263884091173631533093451707169228994433342294797520395868068139157180516170234187091339072958828685447024755900028955508004418909081290240916998084433567438331805967662160428382835931655894562267784747480767698714349839144547743587793850333305119233994690935518694999410565138452492953617527621745847736653351155173454385440854561599360119668705532121404200025660847094326701876481988264611322145453704936588312771624447838687030206116978324260719851182755073850143977572549827267255037783891852448471543887872961747980442598801198167270737150304926077250533180062655160442107075924306764309259718883205427665242868528100523842778095743811933837459027521200186997007331305766857757995382843553624190042711015329264737988964535169629093070144248039370373732492454531499583150039512345385973614885070689182269964103839302686784503597785376372969193971485084787384084044173990543504332527187176455475479503182814325856257763410630719830167005661954636298584228442041825983468550153342502666528258162324580162683526065359791608813447952288554732113966097643075096286841112857608380186807967142678469796456332477767116941990773122487542301139457866910459283260315706406227401241906889869624042713251028568556242973153312645265935055998534502566580399441252914799480376537870823668014378686520694755086375585668053724265665104003829199893818977465868931276411402375297416106228636592526688414039855840061034250180842682629327619105196444876825149629288884987723691260905876938067169680287794082894041643093996373077765863554278427998789301773023768714922856427451980274359197954089213982850091044857908040475016664735963594291524596131520037812169585603997452656197071448889555874028575121442044721790547023818965614381587128633382529416088242716025379308457667380843900440146615418107112048528494981428408142351943459744911020742701815845154798709436972148236270625058669907469551075126282798184498965076267784855840828012904455652700944980793887274182839753721471361736476539099993411815789790315965133020167188807646969884028524926018269958124247691806231867226405340147093525701597771955952208411829611013512285204080324522887244306378469831407403268167037143712546937648334011898337033317957558990014625537292519262281195215761819534022969155817633821747251508248928814585153658318465974243038580146728094552333581706106784538736993903034404475829975168086471184060734014100415555019725411962715586855800819593502080000997157354754142064681527714269649088593896495703559451494319663592734694228291367995726015024256252360557100150318772175226742652504035299712434461855701416550171598481912575693988245249557282652910814183292434813029284854808294306044929730906985014066999187569595570633852489131042817136824872074413826763971950542515779528877138146207974049648176943389452734677421261837769210148250879233868083708584277940473377730553880891471525669436222528738140010985174147826366969460450545650187338625950163463452450800627109636037612148305524171852461933002722734816577652229402331665722338704038930573239293165365944887521577259180011905157838349674988197852187232373917637066247697756394796552785990281807770782886212620457425704878214213122661597237469112341811449311686610531623484320839558075806969606579292452144834686888678374398992255380682938018742549040988472913511856727001350608789410962175632735727474234651564269343768476491785652397628564973324217822174612972218420960792822435443284704001300592677428738639799474627695817060364113146748619692084873111293352330104427089015267606931201875183363632868847655740130975615445269482737494823486127711644478222335058558307354317456234618402799274336875825807408486113620254245341164723578717302876880881677342146130512217381702472074528922408689915252739021892073601352277825835804892790155511790103032724202941444490398695661519882823513704066729295127540184276365838568798817973209410389624440584939307051147503060501195502847837466577116654838306429431719880673422712832079668477453499409071778733215770797030368105006113246550319582940226144998041750429656424789813091392690595459028685332231111235453883581331931592183458751754110999138031803213980440606224682612993183205994466162656087584819390739739845605565692037654828881831164343554893786854504073935876793362589095765613057438287992154467077955646941177029098427695620461293449525968115619803699979512794626352473141606473675666958674081610872718350505795405971586324133865518793485331154997480822140182664628517156245661649132349016746329718994116718479518883559521779691575076717170738689473220783909131083586256012456345090006594078808482313573033764044098876030025453703896981169787345420679166787120745446868832341859727129939137862334320915401967500974689111362731503644749853708423980641309133517818824518888659921714618860436242038413002951340121148527187885924482218233820363410844599076485566527179380697004380830785495566363114324752501677944324976710908452041080941395759971691032404365809395084106758008287522340399692308802809175382931021704075667801264954732928857685299444468601764568993262249275093327044576993228340985348752316260482531733802486499882143382956429046529905817552239127465668891343814127153074795179577885315260239957502854062432626804237163868058446568619590172810139789128985255307790651154093005949619994773548539968259271335823358123263569884592990559031712608126402089010213996331951420112037177809519867556696956275487092019318382256265928306397638419510054611267555450140509629741244333076626001836103745632465905394349903942009183483646512491692029599940570150335281508089965941102787020595463244380548028159903062958472992481401485506622820863189258881803544318001532700706536115129598112721798740834276163367251823632350036516417769092480162101712049149178411737596460889951084269153373980727017939958024200694708041465431780373893447105489103753025406954760923364260417925335733388523931726449091605258373756488229746183365085096737546486008369081580408513038613523918708341067860045468362892070040537833438910487994779487647649705351854362738263134310844211868174942675058447065723834118630822486700369900639984957215081312912604899665312313409141434210287047766707237397099048849482839528672748216371845321636398073358293218402957704118544838808120292863525061115991108661514852617970112975352211763939389990333719969679611509181737673452256874440692128021302697094339141823469861555564206442988505749999813271491469196953880215786389654117515551665165651760125818285117727313226471636756725874715048082641613165085169699721321063381949428919592324950921649833525962129859912309731304580201909163208532584182424824087888761759641108028974844834519570248539963759228963052182415595130076927899226681916580054298657688208995610004103216214114810448021365322070611870808258327590656207766354414364865445702364724905970112819853782561901730446142603122832760142141548193869520219757331347165417275340069482794847424989174146572527800857620876163978455962641186741044323612582162699253256974815096969326221463215005169003882386088796715262178854398128098783402132526048229504897974971429888955328545125550763368924800461743760631935211806409907237434499484046228052148955381471207480337755619739402229500000945524498470930321970351405088602572966973332767622512362123692736732609325678368085080805279866055388623658565135872532617079854764299741556637241642056146862813808226286949453174111877900421563621292652050053574890672713002518912035558409151642166765255637081146199779336671241355415333573430709317281664164756648761450249028778065930086257960049939537652931695963390063047628764147963197332843296522606535069097080518541692705702459752003607213788599177087936907289949837005385585480046727553679229388369488039475630791627367824969081100617071299561421221416649490580261422201380064792141370396889303180664317468842419529964386258402218169303219570277822244415407531502261151379676393009461139383585263299283527328358784820161723937918129220093371637517519556805138241636122330517730429405500398798635588780584895827161536821715447639060373169318752075881198472944154168919407008789431245740029033574607188666079277620443642065063647517164078542836274350001847417684602326593389289971723724561520213716942452229209396571426264078733565097837895072325060479363624713432431760754544447914372039421185754966195579857226165532909000805373868335933332390183448030156887970600368465476787519749342628305415753400318343875891191595124902464709893049704233171596325705707853320246750668464725180982951095450442502887323504327717885364856465453374168448819084460279458704271199728415516344052447177420048361148678067943023282409007054829698528289899660785230652743618588916407510660926144659857975729455850400524693596911739047529579879143832079489633915177891377573490523298736594257741648202648120751661690565474281983053793560879706730297185569536329545948193724511604404916102850379955283420182144485990052275272420765748097259248917104043834588995159442858386842824896511086514780224012766934469422226078898843804496809706244587821881354016095801722125214476319751353920223859459614529808809650051869473451551406496774224751900588381606227185038537681232544305508172463974971459971171412682180881076483120372895383571259694839120362119258864423339172886023070228443815143409610374400400887895267706151682098846241301414952195549110993273015191394493114505658437472821886793498904626535336414831372373884150343675148687507986509065220294911184905290484519583804821377845649455268815847948135423912593777827061469428089177254033350562582883177806680009835480048577462164431525493010864822577687401510246542109727237181300158741923226530968225696138914811850226691334383159291086276217736599097598687277302659433734405777916533948387619759971916840940620932592982203526328458602183741040220714896617114417296387494276946099112248597103381156270586103537050683107973350451559252676738289040770472146415955534373749685460293077330326266375666939975551748834751706040173464383638515507704597709821284464829362671619486433141294569779820339262740463417027090266689441330749386831408320731715370703053137685179557920895864295218656036613079308879062368202169019342213098550560663687703026128742837491775096396486774377927296504692201188988047994032026098515247900846663626373252336439806839323264834274133439437752048902859907287870411392657866908581722722287335617217651525157197243522466563790955952048725836600863402237111735141052624494237473249812586137541574884852616243344699123587100244247200085216774151658276795704285991204344571791943853050427417503490727115294976983260695801291998859615070985401113280095909364449990085754930933743741938498841203327584165930459286602833720731827897994622243937076361959278056413040951465037354286724879178116178498583604921260292919694056120223203651233962532022499733220915967030104035888259260029061446761184209352503339734555040883350748186914202465353227526539621315385691554811738370493235057272858168170261381002495989828621520626540197239928578282990229368270414926355473555654555635403193843187181421180339115645100183853616948454981920808639026789523847541397458784770198708278526496651506048888223351058078229389948495997135302830134691995352948348995293550803293777468916194450114455801714461542626376496828379063510313054864859838883297664355711719309109801183219884656798508219397234361019987689146939525506463792362769028581206793167600876243706406816658648711759432465363027849167222507149853124449849419066100742003253905925242688878374156786781014735341950950702082521204452010556182733335674175472554554916879045076759821178902368925243399074542338171307677564715142488689572105507281139477021310007626175746062116899267854451647961473666697251876400745757990213244105809397548686318855564515999030552073213815097286268701050137252633981322841894087524333418484341598830752519587128914470624933866355467911034339931812308370829588186645973231470729178138372437779911059238584725735657109672591329294989568539293356562635062184384585305162757472142847239489748381660063086561177285476694474157962076320401580678529994269066864366451754780515877349300559697551403397026117673104062254277985088656665248345540243093434470550852152500256857420794717309865692599838973408775263297781507273275094865379047320195308031356764903665054717786465198407238814418061802060075722239972165422370467698409364385908539248381909472426039669848058242662220601343066866121030557451928387395184908644283258859859762973534923170545638916576397892849123878449002620259488765952613587494213775528264840586656459951866671776704600222047154433647625094343412219934415078961938474699731659222674974976422179768797702396561229030199007799479371243199077404967282506549196820729786283656277649787318544038677858684186872038396877753003734402994546928845841719749026211719106343816770078869242231320774333299608015539959627935028143413171896070887671922282738122058519909221740320964311965315415731647813380597023193259774648575588632593515118356317263974744024433449511699382202981256977950589171268909845280805663189577484657561797191050125556116615275846951369393061569332080582420803894382995205674067456351035808897448110195576123129953977645886183397428956186318113444316598732321440646261991067792941361981333567583762319862427188596630362793118870548524783038596570792932868495512071546456211015264548765858191575361232556524988580593774093392321410368862081148163865594505814765430216532901299519198648982008187349304164418743063889770826309704557098955329565185688296896100458667067796620248423965679613601005272793744936411028437352239146363202497065653089333491866899591595117180012132267110279483856052900597269706166494969487701035088823744012761569462322798448618752455343378372247098152924109880158697782942274414855279831631805622439681166756650589262012230236268532070753976558094100999019791398746311451358424871172082822956613454649767213968779630165709344321208488201174752456867600306971017738871708300888492709446721703401570561579207664229942831688065075054024401238481468973059001476951102629221135364080345854370823773844459565239168869771624371255729818508605211068862811753312495143028276913174903335731241537267394413909993613943049809984700482304403974798243454343036637409232049325311172031071975585615194935867281538018946350501145680298400249150878576268806127113821630604680594132361018892748474586550212504709167608460974074085554046992759131626385097631697749784936572670816450967530885681648033581646856773871941955165613625577179964847988322048597539541618070949053697911123737577292816498240637694376118849360330594946619646855381341866101055901736686245638304838114090304256815141092171329954292234699750869311508780748500721531522006508973768785507537249548902473529055861135793319933506661380065203972300229769498898273093671635401901406804034142457587571392277292510404474758316977353422352969624870424656293702930031344164423427295422224366273456187384817597462705752259157349779756572657308439975719081124976004708322806869782753340666549773467888054488771553017688097906878589346630575579942555369379217033396410469016295682615576839824213728451785878105019177380127922041980916215870839955663605177102926706008303831247831689117334942939208038063465704351706300653415524157415031643405362140950061734821552634869349304422949186429625544323968156176469777843643981585240718778119845535758022029244262097138671521068337253658845656256998119451715055957933142685586506495305438496316816309772679765174800012177576176267171187750454641225638403525769415838157500386926987464225566760081594022377648755421414035953912809258146136265651640690397952199453709415380121507261879821851495551038170627009604536480050026981703446872521767317148215892449855589080148347293508940634110988707588187830992952889513896027254942405328097687146668773375134392131177933437389664110964501110268984787414968644078382887564458006884604344234974327188092493093498682482357332193156865098250501266244457330376600213360387257971639093751765373533424619520871456313167799773987653411932754908770569583631738934016029217113353413869554976192541879676149691208939575636318397277602763754806803414569083547205746458668286752325337778534652879862298305278934798903013357251570767256564888465682607628416358961749457945142229845524099432893203561608075967589914477433487727389232613369617295875797372356837260911439715540432979253897450183246461223493801625148631647728687604887308551051026257185655833389394381986142797552981221127426075606772769048400838764806652095783054378381889494507172635781347185072467638042669831103773593061132338893362800413102254611087745055787751730594000412821798506974939279736959825030722675984028232386397874764217356683878141836439750256418120920502621810615459746142088222407290421733989728348193864597202063612092056741434683449978492770654305430495025934006823720110095887891108581933988585843173251068428808710622529240503070600219389567316495529640911340871201624174840967477102952118931075699427051497494389039928274654838405856481919428566192948115057733795449931443694029717782630762099903812041342253697027195152888696081846646411814400134379688965118492859083470483490555915644870421048516169753916858004560402675417700482344231865415797996402368130288268473541226649925509765137667255988429197051609157777537123370269912393801603133544587992372769980193303743923354134863959267833030449226378205973886375366958041606285334924231321540649604861225462937664577789615990281363694033724075159585725270989553076810129778188278871392605158743470352849247626780503471995395662151143170180964450999924618829125042351569830295106625150288558297945602530905649610906891601567341311112586132111268113777166692275085347647852159218561481969490512017332416884722887610556497838781003602207445374361695194260363121615109318714519030454949262244747740979043267489161766413085356576981753125501330085469878457575735109851574529647666439576410392942939653984299917275302532282594186822093316464448961746365939842537273182337737331883645510218882373612086087318769559333351479427639084314218852413492554142061213398084447652280330362765429209037281164999970222576002848407462706672711666072047975238761899700561469344997274997664765457811012314564513006473806156991843154037560053331759680579873900555254618496248105113621607889251054256901896273665704630967154882502044160280685244726823215955661006149354806517723637667681911511028840124671706331780205567546079833910194601379386188415517253014407619365616858104354650428729722685850768624022583098401084910498159892937378984708443297197396469414383928675806814305110977576148239871760267740488751577658777390502468905990691004481168275048709493464707235586840917262172370890250654616172718749968246089175420206378154567608246922167975699141229863635290570033395701139822082597217712664306818361451672178756529306521430145721357134846376417139917766275867117804469677990617047112154153843828968581324631914486361737087246574758980368031793654390161703211285074591507005741364732319478299728074973267568078980278830107070993346730892968009560129109526402238807323712360501851298024419142734505031862056653380932685576090120950742419805613365494576927849074364866309430154779933395613133210931273474845274111344207138870917912162226083781622665522224448090979908412647753806625352013090754620663110025531694829274739368196305364936330388703164285422519372260293067564936430593542966516759862067344279939182247891633182856851297198665789205152438426840872256411489658705420494530566841077962735535835755517514858067128107041268665465717427600647600041616932414416385335949415361888633718689217129547809054300809809719792087809692649080105044587625935156972744158003558002856569812114406711446127387071675835745984806205862063237510021303174579123690062798315510853034462115589252617670897885886055431257130720565997035525156509116663427031192768001623170569480046821579050411472430316235913219240661702816452731552044772641098721082096925336833982910526418648288428983842049941112103792127074502950796144050507054898111648470665037880782517250676918040708008264070517239997481311063786509670360247689767232097127142986684173942321154714386551129096599678618032297981148229783482923561930305205560790360625144560962991045427472340521389422509849970863796804861372203711816722498911079929398660143340451643263990869987348305351160343523356906900019392798868754617722040234375556569592045224567181639577833296892544611949966019394575281096621279340618778603586577030632901643666379236505115375910931674898643443357326662812875546004247735918255390260030736101132181300347868901324753810597267389678954597591519165082877091768020569658626075244402701995605685858266067344618875935088499823460911610218878109759896654283938169963818199099451131101656116117063037121435928521957680311815736959536068552419107575501495968011918678317340203614931583399516734382638082121840935477605249202348263940992239406749716321620082258101754112087215351047276917873996071127491789577234174936014871683860054934315489047764828740817679023326987548680199308970464884772238899025514245237847373556230941925006392895891449973372202148171542636234472320499850235883825175837372093876810852366516094234661594077955230683154901945329844147127481757500293434689168264985237249671904180157491301598244437699646881769019802188138096346322890789813156840135278146073776376167445125720054282101188573915825096000717318908135105114448151562647811865515470910143006987936979520462105265715469703001396213178106050488297383121410830189697563972120623706441404485435860436910637938647906865802099630991217663362394445609347949639162669405214111614792821659726369285907157888306694846582072196672032164062352492210690786581300209078536241252979225642159266619073449495946322683071802840636827650725708101215417871867988473478057919325381919360472339275443471331754663717542771223813272221378801997602229668849167458581111879648941602889678004873868040689498627409456967442577585323618060944767497299198300968446287227755088265056003896035228747312714454601869971755314591399406938122795372223683014985238962706795199266510988301948781353199763615693916703339585146143848173057651768708933080434643268463852891978745842253308769857506422663577873330722441904988972926207273193565810183406699624595675239238315512231461258113682961950256121805291292863461978472888350409884895275668852365950025180973541122914901140823170716685362912446718417347001277056185430404291388192237598869551603347499529174330702680129898757918628969599992994627368908598877476504605101747281901676116898319292156173634555500980490214043730557403954036142802416859333074529894560108576732112171068394364767431424372252183076329605562844877827731327284880652344752041934916903341793328232655664601992511302434145506761578439425115069643057130026275445128742167109041204376951176844993679415184037369914737556616897651886381400193672628436544454546773466472054753329874545812585583564285643816935737437348165492743009106805953939772790042559173252110469575510793141502896408124500900597854507075099068633689822194837741852002938336396406746439225632288085949479863409400974945581265004339215785509086435958652094201235694146746279588323981928794197460667569080440829097001231409502059971672138691251976148790154441853017669929101416863078536542971756543373465524327829647512163967847255636803643798734254557087956636776491302058998631245930508772652538264219787807719654875890249389985817709554942929854324945576539595104427417404202110498146990412825402923167282853262135033957211340568916574964056656486024873882388385147659378945853748887386280225956746871700515163737614938842684421162369061837585653687552503691936860123530597859849215468613848804061546739857931925358329207772249190123893400357048216416423513507916449989983623339990177108839494217043324828534230196514621441988725090486031607191279680441386800743717423849884248533885609394636251840068285657531420669890341753707959334804818265384584539870555029977310959422993850435274057130953727084385127138259376882668193927711014727949327514761966631878829094473295095892003355708664792428288612786557003621982152056856020159032401988321919294946863571177360136063896188195341921221178001906129496528893009024057417241555103052578123132884061447598920757518641652501095881069232146413357661952571138709481628534313102121029259827618889507541711449178663174916915962598364562535254769660781559620876135696943387129764722156151835276815870045794041668570831259877376848309673936854809007768062093972814392402023446964925898010590604394630232560588311910615687816919638196172428098705258403529472685186836181069425304811013500219038704690639445218348642177595396198178716729702946346653208315741979446074676009995831447361884387639468935824174757851924062638654645842615425496762930968950444825811985686088530702688986396172418222537965997797400511030619100453699424911573204143970630114378173956619287211389248576440102214382950185988584760177350373442452537974984784266528389532045523502839282917859606068222833268537534648292009213547599594397775706414850875227779153084631468293619726280347280980202681049466781405825036803186892439623715287338469554054267633098927037934116186457175596361995980180023589165524232571725059409516118929935656257636963612376101304267560319022045472309500485549955319444378319400137610303760960066640109543789178825331091238396328625583346864585267270298216941074690683223806423266447437250858799169429522564286875781536294238837994633162932360616091364693375431691583699935693982196166217138536956218443573472208998307388851834047552064926233047355958967864684128476989559651039745463944136514004159174834582302743139334453633989569376855790300684076176689930744716117745807202171655608968257643454595197918892577577043059726901955011558720741999746181989294870239079710111606620223559714198244810304090050818569539539930607259021252163828142174619626588223159357958368862037081278540069761000184955514221387848508243783930130857400824531387692741967655628278333509806730021591770335839813156309691479095386247606034683701050316757665784069140130742715163357058758431322322697533804775856403378465681987731238094909456152490998799996724454075121264075058774836852827942216365071279471526486941025184743947627386267088604706873271090465352870943491128659889595416563209416893454131691426594252466884376538138055761971201548829898528026915115677784424660621030506973467647374113822667640904403606735459756788696603306833162137141051770147477995731510585043413733229712744247013929106661862987309945289052308432879634325371789498384535690303354678174487434547812530309351321648619386304705356592952510930107640993699394828694909539923566789767454911765744080005452966472600851543708285310845984191834332617566394365044674903514640183139888512256180856461848890020715395515658209235001963811459798600651419242310572144093179826338317599314347451239607295331220100285287224470960751494358095120339447396211914115787922083381226855240966683268980323573991641894187146140610622799240300417127736259078884501743442854034404341002920498002903270114363987590868557858732324474267217323368479045969168645281012120271690570092572850102313717306130896800357297007596382978747193756838111531060173368132508895486256301028951481687594644052804385231461529479709570909793237168656185319214108301866258311346043235359826171195203779024809721395020944114160526726067166011088547669087236501594650410847401991096036532429477156428350434520478982944025594545576285673944662088087386067816880943933029420046826208789730021051779548605899897877495176563762828519886302311500583407970773831756220003042369532531919382383567583302460425734448598276687752855285326229637664707397399888711194220297305061542589180308104355199312485342957663762790955460025587559602135067120820572463846813373166090289180964883503972094841326541445545070720190281503146123365385352489994966530262379310945064487327457878367980197432427523385536595390799473568200928326529892476707508959599015285287065223331612340258256949143182071573173538551914248834834789812141344452615443039589309990443516261995679773060530710034163290726817387345931987551215797396444064751731109807346734984126761763791241022449927004296758578343732728138375353430074902365811171809553467233755731199790616445883690799958234084373368160264708519184010553629224721488244316085938803836381573412947465077084351549821400849012031277890633010390907755648679444201857068924239371741407663316996918793421359510356227236264056586393631589186172227230655381295159422637222481374298671227310338850619330522851467852117222140767463953711010147022346812807144154159792491738146219086244536302156626464479577106260733528751700306810402159382475587393172696660030593326629310483895736397000275734708707029459223098513818721117296252570525581669806813277031028505798301426943086025383808184319335186309256836144702205302978338347143695771007124236331836188003883566081486617685285828277294023944071954759697346781681850582359702302296487681500495090032522892450886650887085543639010699310639998908219508340137050832631380384824619067379375391119816545629974308917627233178968174867236154071025029711506486600364011482563806957647331212150999385889957669685171907055122357295215103742624653857760279484201012733645324717487525574777739894370807043530555462211392569160980431698951684881485648630524255751312380678033489192089724911863031719336091309763352877049469902562626309162353986546833627761083101891566986445097632085808887193265452423220765149732777304165500646507257145571885545392577065466724604293633561524498043860435637244600523963901857608436527840881413980515893830499046859576801411170541286643978383491469600187917130696706514766129002903491241883258879959891793409407264125650401266414532450014865769759322902103199595380997185359884546160412052430050053813758988263094583804798624093549211345266538784288462216947640965653239662563807429190176294501763680264020551880821380520393865939732233739824667272812443779015694541592968137623050625446934477958156476588677163868616343944274941860658765072974226251470320059685412831592323959769344909166635493074741770181430562608918535863694924923686484237058942396647716143820345715451029031031674290538877803139364998405482965890302852968973162290689939945103405180238568084194821543893565280871360833538030195579628679013160648748748698176523775640882393430651033746611568246216154766395123752902751037751483355526306945522138697106190323316022242737604313988780054561090310601311114857041237265161218031881631153577129977951421763592417902563077177762384156691768224728685873795503645062318181145152361211965960468592522041992188669643824380603767251968567819195862717250933376162869853193003118030755729056941822666889539228596665132141814893378818159746942561459393025398053121833922288095453910314260410953883284602089105154011254544749733104279691677301529202587705403351323222190337818591339137035963441986404705002877996128603914260467410543346949593612662330055173617569973211885195180117139038187084794897525023839747734381676993127708458128440536800898182528434041452247855912035315498235684403566395234023580845420381955868821263920375316630850964844250655010356651797507700028320490263285092764778639987384527802417610932195703930820469406678981753455064854997238483571830755479143008410348588083297935315551076978800701994182118711141715668108917411052725824293240454014164428416315460054579311074395085324142033577258919243897152824273845976554095652653110878722715006625377424250774587710382570568385250832623229165434640853558392818949298813319512571983921888668683299547817143528163607264418013787922178890578816930094837478528665252222735541176502095244133702096052800733194589491624718137317109440210924507312986354062301700647041599954722598377725637218170873425733447976873977579046977678874390062876774285341797138792694375036647052608431613511763610000617610290625937265468354987916865177273628130217981342284920603120774291744897258456764604068636466193359904084268823447624986230088421987557209491556055467613717099669682695023263689037649609395461128814089504865387799740386021855376189312278307962350217494091725772841660121102821542495252583760420923719726019110068351058024134340809311838550048889144191375458998531725521986424673123624973499216397623863883575997028510277936402360739588999717196552831899024954815939423137782725538657308978049479058496351565403448901615093250518326296485459773130143354012066342900106685117218019684941414843837384350534880279381957273105284519349101734470019410298424005456294440130318950305325789846047628883006040597467278744354355513937041538938130451994140788071193455854153546507249888283694521236671091816474747285448822390857682625851272716107116322520602218840848800555454374585761184596558828187885823389185581477930161055209235290781824775092169594014200548370756870374594952045379619782071924566396229049287430804500379357401940838585161363865934856684696047723609056376572014801993818724883760009430571428737460590726593547684405456705744275408730426181833337991946762044062227914590990765193794452997162395603869902789472183778694113585030044917692171444710363142652713880996860637782532229225967404479959034894479698730527957585252437033119695034056254361258699947482029848209235808860498966562658860735885288200251086155988522976333672961443569857851979666791510919649685095103068872640665074388080009681613352540310695364761749716259813902321100079774156335930614031677376223102185786726535818617683126163955591968087599454033286323479023443830201457413997847520117872010397571287205233362527470794020375210607544659980504850724629435173763964593789816855427096079445580990623370454999685565575709506552719684942755798191007803551281915369897835025872178522204693586551301670964664987300783204040948467985839504463382585902442527569204647608334962172643758919917451710987226379234177680604876440528823474361440002035601735364317206120271016666559442475475961852876894989895024732823360829866692540619979824745461223285595229384450501776108353114935640746687044938717565190954472779310792815556344383825921375364233597468844407373996904969207744457661129779809508770081793261422621764828772877744590465170856103938677434377106938358633278380949880089072300963069840146824323778776327311790439697528395238294035337497506469889257382882668199871037460396282997732158243091363543487447828354598982457415200728633391072200577793420329839145879852941588344547718240911248813566344376532982160846679712843506205983987267786476461268068069901558136190719752441954733049457843841981282201028126497816050844458968806891003693953832955676201820945366172389036819041921493575414995163207381877180889750834316120638561939582148414985131103334817690322421732310164175740507956162715741405516805454952898513999255932690601260399639458365215162059679121748922657434255107511055112819268839478186294726484284673431304559572505278828148008839758755778812944442700570945123204582804710902449575341343805183761219395429352074880523128119603051621223938872217413057050961964779683324829084844415433904970782895896007983077496345913285787242462133491111717818899142467293637181665148109579481837409602588247534118913862085861205302116817385371735893112124528560899590127523557576976928916699570511609441387963936991418044241879740999896124326434715331636293194775991034173213635782597499363950838184793440076896303216666571922792761749061424506163164165003055611527832935899284994883660122960643047088207246185154229310658257013947329971593220034751729860736297850035757868151865272209929933588228290850544532376009919903145251937576798318356354456894031834217315295137259139231916911872785503913912983032477780056793925837378148234717243048915888357559202334940768149381735295900404666115984707801394190430677030087626817413513372672428018893011046380867257996628787809300066447277282955412274977828303495667200559308661102547855962103308494405029819221960475802274756199576420483815824818021930413126256788802868072989646643048666084434639623762752265655089274088246385169445548844457050648524162737687372112837407844291280436705597629539049527672215781718214417800016513325400703032113238236886635330635227992143162817618570521096172295150393089372738911248303192555396015341241136729666711570458459539448698445614722117380917243055417558103061254879085909310490180668766135004668821181413487303438473229054422436928782146370985558467269380246859562947650068817394306474310829119641317183246220096585307085758601051219770784887438161904278657781135485642397794717789847903234897646012165165450930314673446451133027766688771534099095598458948622093905855793092451080346639241967127633553900183176886220908728025028627512898347979223633643802222567770961551581543517402281182311828204079534824803680852192183118549666728621635926077725364528066974483180512603188979125602231779011970004497308219194043897331492006058696685628100652842187401376035530148954975390259530903040472949369325980484161502462834051066839131174930862854705463481135377708476485883542438213319994353494592205142824099762017785035462697193167767290412385956240177783209644518863080049309853382315269051140465217915873838903912041961386010122805679104477239307552703826038183467534827725678314599040502871693771112365640691559677037779829983393703401568685630676740115064182608986492839642142231328160967146926299901011892191802422681257640836625017577656213088317253030317051510054594403325944663262697804414063303474328671821937155145686706788737704972986524671001319280750107245372795341830523492832690216992738195518545618000718445683940653820295476793054565292521172747597242262235561149488804425147385704828346184594497319636197280152422177375553419447263004641089948071743611762858520285912718832065724096126820530474550950866092595789995687235655586977349616587924274241352112659132653936963259286309514933941513264685528089436845448476775817704313754387292585877192625294127188368732346259983505811854353438355002830490068782120861028041147372701949073688140873015521236723148128148695967990283777958547859587521777592517482765360421665774101372764152703774528454191651754366987062874325544310452876883236389899197772802092755345384776647221577528387866584069043810849741618301788596398072050810922148975228612367138762855353597353851041503150018836989524934646812001222604261502028697881074222337518102725500025404369724564687066472094200808702539823235739780094400477452712901878826908329458970400045446126721358470558971368653273902041192791193609137406377015070805085024367073194961822740525638898212101523311933936824053593900389803764208406492564738970743733777305917724158365635371852101252568481017362225385171014990210401635713776311476740648742554231412773114410354051804321715692424156102670327398910135356470433416107407582223473749514930206566716584199585696710752141102368640356457748895929422605194826563450652527137336519631099029559387458667877100428667714599893773270739128536990249415946920779062067020311749385844929481413091439603025352046658676163133788202989077327426552727344889904418892275981922464626901265960263804729331311460509978593318616148683050484556262850015811288436287556851325152132916705124308811272503065817098533936162967786721381775941184721654011738010230794489167910532894920099595692645879095106280614516941760826656917218973829485599192399150071184865420558369379020476264034165950225216905536607042862245528876258548503365978932916170341139766957660311828177437294411029359299498607140286416408229395987818250680578415507383194337100599894900099225570196835902598937071480589519400927509620163328197799819193355823173393920141478450485705185561975904507308088789526239292044999964546233161731498093657590102806976297853255876231031519516498601443096001616976769945968024679315482555819360797474822938488661662171265577209821581854233662208898563324092204660092628557604705241178693491838277385179621172886964914677269381569650337198848601184619531191154105225740275572501067076727136547660552283581460743803756904977616230148809667479708956947948491957517572352087207621030383859006195724473000297689605546439530304432346006452643030646441150378120597266346543253048518270377382161204381624932595551422389557825494165474702289176374631523335113833857676428234273945201772320933271332979433820866209515177372086384945279037588015988146425874592251958990426288251738772781001906113838350375648049718028195663890584137878029511893336251456344600745208761635583257978187918287949352652135489893840468935605888740277359280322876893700053307664912088127937387513110014401253728418774278521258176074569421838620065848655322268827590087415056604949683596997280369910050822470536150320220690955793923280481118688325211783411756581274944802616954758096770173950371064145652560444119388490818993858252936089494227509312759307942331135440932697887622702790971599658419711440269865597189990360940178396184984753609033394057327508578919746011825976515919407385170398970150084917260542373073549769005855816491658129153002403147759991128954843989963492956867946655075388815693334290904390578121755223525611639254319784913769493537079864093152708780800839559564522197329030625510527736553253556152634088195140185277426820562960078150241084869708827415332526383086561639853764464731472454018457226839689643431852707606463598531430075543187680320380708530327432852831509600506008716344333329950111250950557886081744704510315934558169165530982522988782660992400994304455595105912963406478207472969392711666121310637248395265999783832289393875426771333504324422298650185084970772428079735759368918470509739706950113591271638781399499569781864996910604795930019979010062192236814354066348439479179624984432155545377119769925264593389220515655123880281098416356755470011174157858789185213489548569195114482836585230786583526634487692264597164246024488519562256085727006096034959043335778899850341183407121753198178079617912517430129926142192292101698180094989922730256298341257340496119130324549982261077482431668135823355678204855825682580954302673114317928387524114269467780691095603986706014897153070625206006508789934725805788612896158199566322937948719592683413933525925165339577780759571586828869781927108171116385752357485063683737078857233345640167912585753887630753369337633816538244032805697375471475225751148888192535695925185181537840246941855239596752829418975762775312066832567285525161742406229442909680343669679995506503602139593038354684292188265442865959771792524061307312850250008055868798698361367178731468998349104153481123581868882972254098351336637814678342590950054486987572599031666141701769803752080540965916112504096779348104075721062055551219631039804177095401425798564443653544530602648473787707085952583984286207962698916594342270502460024789458960410804865965633156930203362015765508518957034401866541154202542598848961991254983483311670285999662614719025725951325798212661203646192341125607323847150677633126761800386955985245517561103167087294472239599476127243232758429400706304566209900847304747676350787894389121771215748218027238932440407553532364977826130364876186173281354626776581422579779455644448297931920990739024571833292564768996570774684345215638368225516389747327864902148506635629454497440590109919527207118475841145789063852117972647941025641807242780330473098178127363124993540634484634617338039886598454125094704102125368203373363809642268314378389960393157751571283650664169881688357176569767368625545791512159066348398137768715072915278228270809347406168169566604495288464942123970352499113617289987339237002355078379245201036524439822688085838992825391628439135003643159692249889358607649727306628591857206554206704522610595033955065907247441349274908916007781608027104287421414277369462334979258290177625153565420857344111307096431854886524794934209655389265212956988921431564468265540023960009476022729399091139276890762684044367564221019520816715427612367079682282994498945985848606317541091506649229599177662170020838698826986553128585215996954018816516310292903536892262823087597483509347735756777393047495468812509420679245745081561225938713939648954554917935616617821708814650243473551102713199672985422460516291202480247992175547629411657005393406793852671845353646346626448751755862643969809664589729780193761102266180849075995911806165184844335045156026387335878462280160998673800751538635217274469559752375059979161681089457139225796169761420091987491007368292423802199344256785254131883901106422733946450908775859417508935094470320074207897810774933496718670598619348922671569771323644633566215432015183039628110289976750823507746413805321569821941486251747788968080103414604422211574521697812668655918651153498626097702188158457690910617823194596578083087764304563988939274343043298740117444833062860864691993097428266764150388414732502697993244653335622664406869636624733292636608044075588932420044020060273353515403106743033425682937624350918394340644181139620066059236219667442578223424082902787603954413253040257973062943111891941228535880998983862962590376721069600350616790441114649843192434384915045401465710663354282325499755251601483547892214595338874770549380405070092951190171359296129466139238111688373534245015384984440622698537981079669202182125661030750006837576918356951042938628130994112148441204077420921143989618616090849051585268509899904681854968956399166135171058466829593445159429557810117901263204492086055705562340874403968708906461955126667476917181813214683105623542155191655433513457047702299717278385956994431592746628663034791832030082077671689255593981250519234681842867346367032791865097189826597628850354788647054291774306826770997804505713996956179042420515547098825494151070832624683428677591303963782046856969573631288955019032594660003687346454123826957489022700614958199793370509329893556376156120602627071755477673548274113284390602185044767388531865816249000416057717814581275803299068159097431432611966014306642763521850308598247024167040801031929267419460754129658604561498201274184712699134299830257440368217339511776370107452535859301061687987521482804602826921066474163299367524616933823547740683969464094814828882672750759512931576446032542102408866986899097580414942931422859060443607892984051836340099542429892648069637509272500263541519026516437295584378493716949199815642893182581901072195885980687379600819809510706504080618424109993696593763522987084657787767617322919960176369721785161466500301052000227667742846559869691703077614984656137945856935151113494764030062358109956205771887724613160485048628697457514840146202910336175191262654591625579879101809738586788988076296613065871108841688447952532995843703670889173432041369675076934692147242925861685883107153406468046716229895290501977040936098369750263376680118554982384597942635649597448895825447278119799352595782618994523303939324670290870183984037595332920494623479927007903150969502697450367153719106885624216030283821013664727209743515620679943813632771681403134101669335776009797021095851348903771610705621919118970009102863539736024206681749252681853195382119020985923457215973534125470871748967008954933974254824870358895303702760213612125323149411290982415100705604926530466337170577948846359718304161549176010688289586967192166278953205618861778528302876775813914518677068192666314719713958130338918251686191811388414412747345804692627791049514852631398156224804604558553744006229062361774864667026837900003726348895783481329550389354083512559297255120712039783636977889820226249009963938729394383496782638913206436936699823029872436549505331781413881502581002239328639291906493900978492414746182612917710230941253107292634396536491850562519390036335998775739325791672031958052023315057911081867829485641827021022024984612859777529194323310746978796212239119481903216569289710972365944902286857432194200820614745158039197115432856565819044308232529530983907153060865290941008533491190466607850223046051450842184164022479673482118882601165111858973364699314321254779606970108256624328663919494969317130541940470083397942206671388365130652261235908415174207336510017508399015863302387165795392453686402415614185760191394048201307244367114779180944425757883431308847477260442844312677127876361562831023989000498236396607294426770117114775284932086574307988254575765294788906768995818716539312175415809288169454070520294076926580871882269921590257315168086446452459501108000201825964205077045251364483749900251311276160925324182436918555293950498243364415186367249765481736604113889017047122283506147755743280068402674219811475320448757957238864966311607273840187363786330577391335169694478984746914315755487886655280714324047257506896411976149751928055009237444198569329025099074075458837062716804310840524655554322169702051794731300813532964905540951650726155793480537078030657776901240229279198065561858657251603723912636341923340660386258761157279089520597382103946741423177483211846718602228399824923066811829109145169666573644194378922480202750752452213578686304555071111887606209663117540763474417208021758021155347571860422800650064204290934024105415674564961250025552294295445631110077241606174638201497618614322641752680661751864314134464448662749409693196760168643879234106902371783258559054675008368927856378445847473670183952113189749126434415262136439319676314786376527515139173701380058088428709818744148910865012542485413014062900373365506209294621465438986363020407343364331423408044272169310708814492351608077379668229018049920009890094906922278894025713875802212831511029000238758536877430931062705113655699967573510368237351218134361492095728468843206318544507461133159543037496541142715634950926474514930565180484722048928886983326295089853766350159008267032172275850454003067494202878776927535939963301249202052507500787312523736178351034555287147096700030585488822525564433811045517881774940711623350958751099024387998492939150128357122320998126336952001902135237239949190195284969934802291649772739642095998766648867658312213964888091600525349996570155088440216907345817408563943559395125139029208855406434106979533822163615557600361742839735141782970617685803563474698269398122763414315618242145244659544183462058756980312638172905504491644464723683439050624983446789331528946689527008558332765412282297549691091522488619696602723555110773692301990587607519258796052912627066527634966514898993525828442888163293980692869335217471840343822203960762664676717042169990417996110297341620495820720809194179074542223140244070137817073837362363591640988691101480913755426281972907479384692387552461933758547141263034036525184733835639572281134557646115894803792675319038063358780719528000583971310458505570158481051447347678095487343711889655992316841875369878534443492382075402402747488247632854910631748555400678444525679090284418712376468585792408690588890807653455618094081567986077520508508660749878130138290861794182460454101703937408308742534117643917757260804832048786962607600560944248229440325479734057131776419744538537486953399667225196618018784415962743400163251026154202768808696558396178587312845497076769170843557019630704149588697166706881885544928656376377552715931848638273692336405586756467755382586238543895648036983449688360418807547987556470107702180656834918893372818349732394987295578072721153579075964890422515547093361337297617656165621727811273941463340540814762979703655228333327393647881272865847989469803560362315291566074055226854948679008925627457191208762464015724238853329568852016434414055580478279779684856253559495246265207574567666782615580836931138654470922786383023901863422139618913990931779305524566199680091060941716568626318456504483132045630475235159018673226840547170739217462614030222811496427723391306542313956624863544293076212501342461551913183315144810350796926841046519577053098335689632716677592356786125545927265930433695053999762348982265135681011206161351614401931460003700993326316473554892466491598259773090339129953347863720902880935696733139306105455985585421891032765854712487195338062950356581154044731370943827014033989656853102146325162467969536882510518928364034489219658648758551897181733176400372339031103092371631350309659246371677614440903583108054073121968103884458192416128003934508249544837125802546818497736685902879817860807751652340660787775766217267815790538559592569338893850121534626194973035036446719404176026574154182414819944618318240094657893066002151215320889753690006611753991145360525303947170059803894759869629739212927536862039740332137267213715470918559619946189849866314903279568308549593161838941273824612082332837156800627615015809251203398065634459238873504525614632145772686579217650020015225841766715479281400360742288435018170234234841572285053153670111798158030142689008707739074755220036053010512529841001657478851256480980243522841307027181693115612440556139278249358317231738746933837242114833946244663382187667072102867446412489837532981580560796626102346941251905655349803370384486057409811967883161209994893306251515129088714417397277642092756799276805058293854110413025726319095846464285131612211526298178291605171479711925094927171306466735910364417902163510127677883063124698833925471855078653049911066329302981505874183874257370990623420519235755012492166034560185550795648177764473693733474241202457589851480928050365250684147277199857624984119326570461740143136336960355627663767279167867359866381865103512767606980919387672768366039816760478236904798924213964043460312208613299494412470820766652970130460143860414305821860277182878190511535114823994635550756488118410900476917364282001975591357432916180116342348006227162533826760518439954889852728994803916499809474743981003465160120385401185180243688026582261413401454508314746886773002137369861706247528177771031667921021626411663663732453377535017244764111677668056776156924189805010329499732045242063618453436064914507461562406638238184166573515435741307049235776507318619782144443990944190701225825392949438449599370407656509861243231887678918369757410830820642992461389130356487372475409535590434641621694639456982267060479365333090445485549960472106820732228047970320993588584648612210209781437086551649992943895791595018525520059402277602288475569974910477092003829405646374481004966613452225478219670118393939032931749112609274211886635845388087398914815898761832789929619238435863168307477679351071129217720625557564824571595878292884685591014532123060199665237787302057481777356995610564184107457262722285067982974082101246801769428285884456988842118098136603933108025311964945573412571480605349091337264730529181748398725938869878251820651854485724449475686658620732130520262031536046988195737181056230039966086311960234871334715173229117710740182472059022384025336814020154788113125651427727567333869958865387640074153219846231400337796059522506086401084836431770413658528611268011359004171091815820575749435534067398564315795279909349915135746563997079422575304943849462482499725386766029032695275031828878925179548319845468471240811400152823026129838388427917492390148119538295732918593653495589729026245290560180513040042887357317891721895447237753226578552032450101339219330421734978854096971916705216074713067520924699649914105835312967749268285064651842021358097055435534062650754872284147853777436613914533096694097019640663121379886209539847354871172679737952467701448540432428246986140984240303671815774195639167379118949334852882754532165286213207512416377968557835565430894527100572794577372345671207130795664043203041519649941198704262713663158031405194195768618826201920219878801684952290591884818171589455145750219319654126724077149311360873976020671131836224345772267691275235621337890178288311312836132957423665473107809383563965065773020101272370864014365823815296379878088047573577912007380437849758919648275093135608222158636841353355903485934962026940448959699170971158828094787507338952217792652544201076654939119294488131741873659802495521661778898154540892657420087674492225565589324657200320783527756610459454275787799512605383900332530912073888415860908497943090800401995598162742673274708828529486018398681182432083829254799327453532168905897523665846308201687133877062364008138955761233916349264736747147494680323322624818508508492397488891768906451139734950983478413259713211694772552513438059410382458632941646730766605389534668237438594896840524882704005255436698707914993120829780495674651899063825146476590410488060644637685055204875851270402305766701131740423717521466167624989439496947074532626681385165922365692483880668775722516383534976194435044332074512097170172735656936428522722985950206323846008169424947995996740903928076930368676568675732803076703712927406947069901479592528730515226033300310649613248073149982681205154968833340200984471238894448342247527263642733258351980487938917098290736838457640895471084786426305883770542799002671575502983023477885210686046812573354560038459004620428630870082801240660041773527768849614740056028957077064256932854900147670424384200494440532173570541856028145166026372333857048262637526017058645749841572398609227472620132364995658168656325823124643979538695596783337831998298930665799145049295678734406767708272512010469858903400483650485276848594038857022304742270021184851855962173679070543162205889435988889939603787372622876805451252505625210497864080960238444138389344699092425950759141283661792670000955592152029685388613402233440339889443053120684970701404204258814186075080906212384620269559086760365079727013691094512018171841998417784227009392746155563857405373107645570422157827622031919956172964729084143530247363288311099187754142126023425087080607669759322706210167354858186496315683755329674133715698285786930847052641064125075253020247769628014669669144179710232089138476323021258844746696100171222071187576175893224313483493418740697067448061025265603958613238257996666701169059739345212131850040556051871908830673833369356268263603211234761627027970442469631336758295048870232195272690857564371684294376540447991328803843213529457475882782281895924192062927394140230271810845707521156150443001491019422266830106849468127548621509019205020095534661392912605194460004778257720706216711121284811854203573574252260718824192420404003722953208358632183345963840355639132147726141432241831670247804464575498970524122096870563777475690991703853028598983218880161762844917040028137595018637584972702218318168952429507215521244727861781005317682982972872422248868501586292151265293497813018611469504377758334292543597791004734521644323719440649571508078655161285285947090592038475965909908102782966536320826769782962003038162327326491356922096697553047100980775659976394400084889063061279526640168375448058337106215908563255723098858203468441798755670114561824035155240023039348278046311729490674105120739155682826592937924076228242562989352677729757749389378520053003232945163950960701146821606168461398962502566395672524781454322592023385848129042420164455326621288266589680355591137936059333202040085076400370176345450775826912716631085529715024824352821353906713201505532642480914354750298311017156006583400995568449420990173983253360543521465682264546253208774194346258420398648787041139521034677814544534436408685072229681218833086500283766335764109802595294853146898022663977649788456862917135516116254343492896204245782027903702174870667096341475041208993148204314065734900611900490306444577188492633535849030494505780113412566656446985012800768710985200729368120478676736015835443699338648644259246973169143300465496405816010480518719271004001735563433080808731680087785390523663061588098485697561470459643644321937280185187246550948244428838619770278950924039252582558174599373786676874515689692971598982518075605390392254253495948139068551298626547963976039241002135871194931661641007062059374399432348497506501560028823038071515720615137679180523974179398876450432937387554670198370557947999469629481537698195522908189129685990225859619592563458370738843026015667907126356219763683231108626542220388947152470732955136290825277184861295012557700587457945294677902967509357062728352470859618799002726472340815603964071789251403649234898040767704996942870148493205284362364490477757596811333232545048450829084516124059887315896712957811571633215576962337382407837872405821162459625394034949986795076124780299948726460492367367382776290437297296641797691974731779881876842354097625307202735312625242651838023789750715376843409629954152180297581820545783921440228383385258849549058263696820257399050924755950064634453636495378689563387255940637844348506940374411372107276120038746826389610616400243093527087989816035834260626833826316852889932017775501013124015604552049850870651142914267905000917396789753792073180874694944191184273845259266950307090330088412553456642403825086597722327461239474809192702992765313118190361198360834658171255928094956903808250196960397154833838526529889398347624079565824731045925533510389363671277949534230924870303939688260475423967397345437575485595059775808246476688354500458893164513612180608207534454949549603253490742113967666015804867472379037080476382172981542636111931137926587551823484904673047936234360207499145497525901236445841092383415834677447045534208177146045351244182669344919814320411638721247162339162339743149772887180017473035878761638571146929216299157582252475682959364209715565327178176726976431027106360611689433391999940690935059777947397674274871198530559015206965256999023155166503467933584226776802555062232885855305586001317872868736937630510318087917287013749036389566346657265852662152657511592217636310856399240099130661462859817567651580590942820838954603274515397375522558983412132962647173238815291867975220541873074866584726283787377720024499689689903029935230095961527623221621288006564336218726557341857205193543538332273770668443714985700131520676231209330330931313852076460236848355222763877732390353489839454050627506625320446520580454134020493839298044115323294104928052639678356329925742618752878055987751841458693401432122393712632703016750693681716557822975012340141713850066610061555638594853057211078889712906256292542879166642736383535065321301882787938020035192738682695443925225210880192571260213487843522754472085681676260839442648942884040970774678831962903769939620812502075352311343621177026468942743555922476972266015493375482112726606684636553202519101276559275663615898423592838465637408752544276965224852859995150509609130817400855233441847061308391156109597980541797113921228420864668647872245320557027150295513246905094341881947446902188450896348357367689151157891975143691115326797599022455451763767005341054167174279142347324228291520134753447762709167436063426814669004267814400986981280147923983061391005359874821170143840276611714811020580551233531931052842596646721059119132721399959752296296936357330357537968919070463785130848603677481121655435900178370417708241808217078322755417263176340037197383010295892986084071105118171277983182555520461045840377421346213301808049642917022074289142143133044934986496744131117023443513453676679676577115716497698558828651267855392157048677659156452062609418757585017912953878481635046459451619444816307628044130279606269845007007512258507831382094468573579137642834513390239967338483932436868251872699708129442915554606487214302561252566408910264442003091119182618408428330486339203710083654530707919600736538503781290874789421942403901747679145405676418878643772065587585493967037917003472658998779082623785358161999235986981094975143939701700386494836756722814071542641283950568896388019421353892384018185408064767411484314342567695158193606183675345829595638910751934414071297273969146443563303335091071989878979849608992056836705389220388705368426949444539179164865052105093431427605365183489252651939269447564507258092143508913154752204385679735474765697342433017480060468321432305413686692493613835412378572544352039488227230270534853347275787192940674081680600969485626891484012743457075871082519608459584153947169211352404606845508581692374480260549722121472616671783804355740107198902669524731196516132866165909297713918353526501284269971237047113444443767923280373421815615551234065215013763765420817689479071466075958136109464977645010688080230464197160025393155968582738897406443937613040708661606854091938009863557801753297523690814249383449983990212035567173642936715724807159000279085055216576414452499359280801383398776643878559597294788396818301635410842020145884873580929675540894765048779984143658321789988106990164063823266356493035621842110892547938658733896060274002277269568292435550432386830891909289970275879968104567305357754472753216180599149104986563898786319787740312791326089405050052996131266704192689928608613147387294476091285440260493135040439049418441856320104405332595478714295970566353443050775427150042401374794102836942402271418356103490357730622314408342836394922163763566762875232815867610533639738798122077172629411412057639778047610490136435905972460225810029845075279499576509852674603568152971780120611174239463629744251391383528178132443961811511989894530870435981283486820032808935453635687802396029323184546768245496337857090498155616506228827435377701739350699366049130118390870720638005712844637339310046434883133548576869366691892194359018007347267402972978801291833693261440812219827496345340599646381938302436486579858276891239028392589566852782271477543826942681931513043754498177234882545601377093945913268652307818928732178927526219381441479718098554536304999135382002422890168585578882105417918312405867062254965662009495310442419934082568597944980152537204227235150563059810300401288370191034960111664437348974927396244488631490552346362299681533346493595215576040600351631681446426038810612210512442388612292343328277854134137964926232739701828728232381322348980326027865608691736529008048551990471569190023607442193156332663175738318084610360824600421174404354489003224085052702087888912708803435379870417161174038015837622043525199660893732821949313235982776409454416259971195179955091216056353478428521291074306556605690538684355514228463495022835974023092314233852898130963617826051566366899554269440334082104133694211357154577176523787913430990720918347941635954150463787691826109027672520157032682311127669229109774036038915547162291297975607781415315237204480373311603307710508536131685495728770036515413524247630990233257734874953829936647275744631183650492634263639929398911622124559478065009117822671229148461577047092533039092228363098351904634069364452382163070942248624712027655016716485254649801392496075812904086077118869694722666511525832080167885972769594000221517753867023430400963338209737639288903741362161177463394333489360281938145079234822131155372420776034131710287938024904675183016259338770284906811773121430338907389316292948773935302556216352193638610214360244500200708992700241179732814589129394209194465404852148161044034079034568433012670054887119625433703576052147670781561682956668751039601608495728105651182600924988994913693787420310453340019616512604831174710424413244511932254990108261865288268183975586014581364804615091830921472428904276247439902662205370382351177618913170109516992924912268324975912935726282357082569244129206820269544429034283813070400157760849707462510423653302272313120196749723439581694428360308959094897788133158201495034918195254798616703824565033629089723437033193099307623325357963374672559148591702706027338918582286101197824151083190525125382982488524634321925746542837098465261778252025423300283766991266538477812461451237795429977277274556713088811571860273886713823387776666305983976078059409941619459771226788088585845727364051299774376342143610587025708719050403976314534663650466757766667671815929029888083488184860378665106651923687424982122252839206007860594721722765091177977234644617861190684173581759289946133645768471518829496616293145001396545508799456308792610589222834309630200491865453704122432659452084491965972414316729340228662466571335687580423665727786072399190265595435930414340150222655605520701727214657759243262164670717937294971697360287672613443817006723709264887503557429264319566522959318048608079105136386600388647879769292147347310186165902333052279105770726683980516737927508326090115876601840537360825945652839768295110617920362781810128269508591972858862226348564227901903760432898690804263844250763374924490997788787683005187146389125961003374382834862332013944547995303097865375059881114780131383817843814629269296927239022738197164234477386373694957055626182728175419711982643381179222296043322433566633538115221554600481190992641550799912325905192918266012800729690770503310014695284318665416147124694176192710764949663142847328788704156085189502571456454851327480903614197393508472490037480342596672299053622448882518149214525504495069579081038158862340597331218596259339417319892365040600517048715357127909632441595727731831713086328278978712763717007648835222878091189963349225616677349992758249200127426088034644355647155168351546242766789595129716890358800027763384328167062713305074607402121981722903767299213365854894912531823856895008864112674860087177283477116986999927526062471866249859140434707244531292721653260754854944610829254414029088029799431576763077824446577426730226610869416713820393235963300478094897616183207089878379126816846916351283123119000123367716861812787374844331774877678582840955534388956927080303121295081452812484939766958131407643569640623638206051203865198246228148005368017447322467376138774297449960830814769485276918603865826708357118826555979583677108091284670790097836218097554431927700543955316282066298129608112267918694772129117964654046234861806105019867842472851332689815724404044672239716918278376690937267061972799087350721297871313935423111043459274745289950444565450425083126303216636978686984256701095495921784239065844277365489626249415646729853324695829116327099520183866991695801275163454471209348993525864153274854275702210251412488084600520036793024383141826579238545053784908308226600150279712355255524600733069921151832232273829188126937098250676491779332347928326782459700220302030539547716005522678168945776985963249452722098397883056063924964269960521635107915475442324455446858965819902611751420485186540805655964136674461367053914165419180967535881664150548481821934493098440898037855934798604083394498873349296981120329610934888244135837428016546534234026738463805601492128096844389059902343168894613461673390625884934511458204828647880066780720838643657117815737128238029465753279654226496220966428602450949169960611655624155007124888819945753938888396825952923803749057695629256971660117453031352642257658754238634251435210748842577974109945657901779611254857519939852580510843737635516381688773438712582724115098668233631813758877861601944475008348611215647979527533317810505353144855246812618253316511989354614922955141958772221223975442063736834398110227646003191435002667353016448235516745972289394028602575886495680605517627700852182736896181802563429882999930713526921544574659446066674100240088203213878519242582013535174302204932290395680273388873214772688982886172174506065159762502593785504522809510942293612212321580023281088071102973736908171493081382180089409421959821177015947215146650333496757763198496340112939096709997619169567638964503669169818624976310162833174715943572252320306388269092089437395373138152528274338425929448165480936971875380023130921190101977526689723535356067593017684470687006919810688779648245196841192462597746461573440812895153346548148360170834810955337917511509008295916419501964700678731040942773541454025194118985738525529879776224467996566610120595622029642157550807917891765680968807895181119724541558569739010960661062217768010452314283214122869333023935620156023869638723923144921935902140140761539527358438898593723713466658810773978364507897215635618666300431054092443905112871442477920402636545281684547988419244702275180441107916561803330084449095704882448974376437829034524421145546310752050036991927538712360531767545791233078316760327959693882287424677841541696598202305640688422854699138008747101369312785626727315820076567298460115481026149157545836481059832490387848292118123370561610494401437656181543989842330282233777928265194272508196447445173202429850387719006402816151539872712708151960902535377959087066505354741136044251797466109041531439111953187443605419886943164762790954450371825505212734051002333284507452011856141395438239419122102723907822852094236202376360168950628212646145921225429456152630613397013270568985250406177752504907760668100216872335772646703405468312300159719700005612541127245345617858818343905282251562780217719573733321592791769480951764006727746288471557098230891663328856963523938814790045269428112679484234201124379343225670267061455955387662315260292208682015824996555666899129068936394782743249788665916180277295805367148009638392513700290561109010646123931003309881995632693764334023810109663130881195316939863921992140182166296688492985144185401177994949028722702308423060454245890728815710822062271600915006384732827722068008676622932134298259113969329541048537719613484251283033660164831534219620986167519809988329475086334351819372630515887727437356804554988256132811878343785179098896023765124340141547480011347296793216335307020993444374400181846030755261649647188070176025510732796902958070896933139193627532631661086862198821425053460280597842555762489830638115771549609962867457884657964129218756553353326661999312690320262732158035785845937998810643610175020277724135243438788946217507279713061846503435073387770471046900603273578743247449651355114785034757462787452279847459557789555433038205404153801058294158661047177198166290411310224432786668110790448872377262965789372056647374726984254431785351939722901473338198576960688301917541505260364820742628939167213761731171711754034729170704049268362074769506933416274586975481846957332542899409544966957993900019750842984046449735158240337598726256985635091895631903835205873251220622598982865046674746177399951580655642603867229782621753566651511450002374101538199453453288437982721152897836160354225335475818193475969336276123777755191625532895377379156356267140461354569240921030508933862887321779612199202399555570407160817103748252291905180442023848146189642431882246852082582701862042337372378674554554316414291959623608796352747080889854822355248527995153942255938490256688314793242930434750489101448913700767874617350669121124212271593932463830641671063617970428282999339861062747304332159394636598599579479132541559107055734024562299899665778090942485243930249535478817420817952133642067353953490977965133982991437705210011489011700763019904788378648994840477102084471075554068038668837745589585176932766700169620996838870704526947001988095624271693715411239218807046960864234109908790012843085437426038016147067979404085527214762856120093230945416542296229388822826570473620751559664036552492099418341090893593139729165508437911075006434003389626422409704468289590075917688886527403653376557898521687586035134642551738589061544961695311233769188894953800160446561877023068607900054383956246227381404997525438284161314107328156767975714540742176277006690887322426296458856749382419281924045036271661052172904851543830712171600131384594578336445035673214495776675945286616013475951015990348051869790657829290731620214560954207668303513827346036729899915433849705938717142186533701921761754432985222013197007712012765992262136364916325188140368653037608744596416902099610472076644395781888050221477153839040976545229338350991386326897080550273329498745130224370946808536693246197067252739459343996614702077515008641541734072210393306900493724553094078113811022571688921619576385113130253250028941617384517222769952899377873868212091159702929927198923073935281597709258973289623288074711730037164454913728917157098791577800582217849365594367784422102817157629264599512427754966200835258788546603993744105608265450733944188274844583503803505274568385309308212450179238488121720555168383164742185209118266273267636707830831150497457048451746879107767941609276321214302743933249229898721218529673141103645621363475628818353835813891119249228982964537982142658766315350262166046436138208051812037078631183497206184565506367231318964957069962750736851511103757849318877453934843845202092574380087144749104148553662274613035833164368088879363838752579786673604535029244166244606993722369229473247859238963773621005696282563788834424043310867013473957354545866781676516802120235622643181713770160261275552023649430729058861374557256510784178720540888388786528756618033988814209082230918697917571387358746993077417342898584445332338336305327769816260832190495020187901782121184633087394115209945178072414857632610408014739557444944238412305607700730577626434170358167411894064326256598381777436453017017505725037026243829222138069625847311463986986561467020632365473486913862357801174031683229581013230914417870573234164125070368043210645954502151479418226886998524228096451285090293230160690754016572598355742137531073183956080065102635965165116321485530279116583423164751594336886843917588857285895812711332312753813494479880272355325662156800105352140753684169381996695805566942915546691029733214904486073779331194507478592752520018824820707880833803859175058087163967061787350137456130778997315126922086376035500050276894522164819867307122919343194380050709745660538278390603315893573928971187581138475125718177521642659245814780050934976470546096830821320303138940907450703653728067054304845558816777979030584777985161169668488756973486383997764751416658173589742422145893997631414309950168305804819907222928433160524572073822648340968119554779654103018504958337926298287318270045566711394657637408998537077396332069347009352488109577018032317227837528002175664452904233602947240265077469449040407165032485509430464067831288523601534505787134662412580377885750991782792081312043341873301369812042645012429047289170512119470735894333352108200092372142645929839553663758501873590177868262896439696105917082866987431078224037798827702860269990417616075880801182887317630761345369502145644665523368184086362364105046237649447853130256613048434287557665832677466075720574903861770606843643679148923028074305193513898602237848102714571544891950788931266677093633085238049914923249328643693986774886991510603644489758489977805692231821529359496564602852309514496892378462985484282830628813282253928021187559357127851879865052761981803785426225015605973183261180072824405263073480463531076232107358026800775575234543086222793975195227493285695990053716991741956400374024033399268340899040454996082400108302359815158922897109078387141282993882067371223962672802946926116665028346528572930722141036339953033445524248246688680214918100948420581033596188320941035297839205705132484608301385235514610057800897470172754329397165730798566326177105533183992664132007449967486273301223735483502867436474973628164687492170360915989449793334166451456032577331770745901436334240755201795396805183665867179735262267506162081005400475162897144017593087374021628487193212379253522540403728560613035653953378695449558844829176699329827223318663339624091557221152362190631042369441884713587340991346995228415380245564291703843188009820654216541229762451493480616175061848847998908907626295535113728407675207625685265792721093994281970869763131182292695515847545714006428400437248526122425806329671620443210225954004850357984087992791647533641992549548397910012956888719063400110795810671367219454043195025999104058497812501423954333293718227138218746431113885839688766738068675642516199058223066128729638692166070849953589526586768895901792455521510485036425326984252841357005638598376127008491151674166437583250639028189734802235049961738214868625302137345827067775196068651033816643816521893885482380156690282099534382903867023938774461682059997075158508503115290265138001549537531954946904540777998886796084158389530649334771652614971179761146033119930829379679746854369416506349198754690925367592138391778328266326161051918152959350499583168307486337500676130267600151189654063786014093133311659363739541963381939997729206121187334086366436900355496802381516534756478630019430591057279342575100856478705104978289941931917249211809205795748883345809587580575429339309562373095371787358941747362075863526218563115752268849686056599039398931993318342230953845651098580608145667759740082991700544217217821931614808919295581766428154150887223456007302125785760639561409031121203300373850946746000848262007286138835704100149287510618345518679380589052430627642947914799939803835818195547261687354821548820509810619348225645826951992722790757521941646852823120383556914363791463279874969618147689642334788014036533127566435136157522247190086697746202504909975580370415379461294284399891080166656572224827972989319839270126259593746982329113282475039414229346925632125318789397669363937654308255387684427705232827240882368765617625527352593500964310963595394208650625769851108243746544650201059676779303600828712990833156175238583127649211332582277409764623118853793843498902129006968679582471893065386249628205620293394902041734540176959334043100825961636055553373742757819964577711670586959343223761422034228488509389060108913916580987425988536090785290082210724900530994916213821641976647292642120410177789121373472796539611594758726399490806097391365558422919947360647414309835027134789424629348109933943596860703809434490613683873764750756476345745925063473869180651029088779878821866367301635215434102661489786050136027857235063355700349825383788660526686837325788906350521306488681077188286722584992864881360493336944321494583759510401487084797709421856963750017720716831978887709656569120073936061279141310098338333679223787341972784168926055561299411826976161417444129111698536525677695328587695752035231019913447416744133684175824164415817749876671978673529431388738410547036648611633421932585503264028611976454369985364671103648409919339876275879885719029950565809335036114918385765927000896156624121277865088912307915286623313670219317619637710650293400118423086611193991736904845931807824012607385800955722812375314780878565963507878385825707845909099338823158943184676585250789061717504756626515884609646162404085177358643987781995579222280234970430554755564205413080650840204387042086455922962444851471970244614575387331834540437714639669984634653987389002359628094663278621904401913132256363251400673696873700531950767764148607694974181637797813310875308977854027618293746474521018907141716976093244361609270283213555819465903697847619036649653812920973374635530718714545574257203333201785382685326204410641663459128492831630342537112876438735032870898477439550653071539140678039490435910311153582841707259927195470670194204042360882566103205166996251583511285962648827492651581785936705146629185566332838327870813220343714370246523706468117626984353959587677922786275165808781554616237804816536575381420986528450051385360515718382975329070854193125230007783984145211632537982741444371277796932921672219107092503542015203264648238137381239336208082050057943178323906419296463530722963975550283320726615485071982221113052331048167794805348867725855592244958013819438333058973610482395401556652329027583402734848090503314671883205018068573646380080031469416798536005294487618900462149192555733851521054889660342710524302069186975713744650114094262979480163590098464773605206251491638302491030390810712211363780381933567317663773800822575908788033745646618894420426079782620219963259408451198874648367873629999357076370260983165569491521984203599226912681285372987359926563794905883943870698245466426591448248037711199333458375964638767750455531095695777724977785421573156510997541856672197030874417677072837323777610911448471693730501942581365198981644244172875888445357644251347054772009819273652313084430333615470948861059761353398107393502683098930102198801213447908619408169079857164514457315130342315537238156055642517682526825348832778500367304800363485813910963699680004765974787502564123273340578872252968551880306981391449358526265996618780313918677998618199229588902520508716996965681920434477912318739868772629449605206136584492993846059501729741277257943127967683170556669989722526859127777937880629022842609728325120229305995018119288798117010794469154955398669754182571962941690667805664922044542596212723307436289430874326639587048018580801595072081783983867060606114181312938821602355292148366517498934996451346322606930992859833640301292843764204175138636822488236072747971468207090019170381208590151302830184061307294546197226292998594643828003109161463332409245297387085201407334777652851065521272766240045150948941979457444287203123690105074921153239620211942379062547060224021020184149283999888932542404183195270022706721556972816871643942520661942973708896395138775983943142356957544262183306812678891301837686311967500351782624082851095515260492335319801617768648804314032110289877049063271810539431035617359332479780728636133776930633989653773163688473487495515604894774405226411189684687502246586100041662921538050127647892305887026652623132525292111246107317365328873742387077680540588586846965217748131441573493089359773183067628815463892837026432721937161344585222928044696420809906246141840331746695406351828159110923332013778857294920443269818876326317089738081212984490138490429017596149246707637880486930437721739275422029013766753829402017764838107902228798969538416835472464284258966523505830342716782371266024636412413593148438951914556632477435602584196529275332161415696637778588481567198858878621166905053881148511416648299262353136361227486851797234517057714287168120400054705201423926249356511946477969739506690512551962416586193809325737641173218526313933900118033172673571834760345309573660875851862365993607117748422510672143893072109628695186387124411983693874404199667959214540658402616216794511022660099258998631666760080407949107025401262560574467466256774335483308917262007160309700981618258951794501969524532322567370362047063860910267951642210398099804523353421485266948634324688460572836829886394030634568249025082047608542176501337971326966908926931747552385498845703566081802200733685132242528350954985676984141140078602939937464372439441777518701208620660048715403066863842813078462605608520786131322001950306182932002153258886539743291941210364408260920087889327272330130856569686782118259162736349258686120747100720941597291358000695802836244158394309974269942675839790323529037718989674267381286239366506207391964419949496981946157648403879833183002752048678266882495844649013648843162337845631580414443053899487192792979568037175689318774230743924574230054360287226392684131990094043028863619473019998541214637944622303023642738121850132867530069358493857584257910732204608564664038480972655262247546359038253775756433299949667069143435656605804365118631809476461898942104914617263662864859971574563516202932044958197492055328932884536483620745861859944924055021642013983949295591991909025884820184338011346687360122803147652547098492548796660991441270967528361537407330457994974984335691421813279515785527160351869811866717112317632035346881125872733095967636409011232440786381156714720821268996479716125350003203200805372710621722394656705363878344588024039720634113256889762539810697186590501589899046312990344732559798668234201274452618284895595862191470652955378813880622099952807393766765312750235895467827433856081790234563492718402693267037349645977918300230108337703198366495543553696159131469281959734125848353601210709488787418169743438870832327164277277176390479519044109906469666923724349001944428872808373621926495516161057674474472237583154544746294463360477327995893995452414056130184303187808779171090746268097162126872023240535233826295184172301102298182234481230560547750305676843892508247806297198272864822809902094195810809021051353914565994729253468671768805841814560186971691000197725712900705243321429709504603635079581881229612400280209430857868559194292224370105706485625397241024252664359126748650294163596534091517645234901388849178538178178260731590910766037289928733888592475910989526879198747085991721245927265696434235921022504315919359668960463722457644372375774288306964485261586050097800137919365978894854439277862288948922595370819697480689667383519242680852218358774424984598847734225173521700960199534237957039456230982642454970875584111375243337337280974029908851437979474276309956082649993214884244452896714637807084645143798142378070098838174933709253376724900455088902434049615579860597431922874912354414890197621768538853548846622507605949904891354642908611742061183155905308469340758392348925363903738639846824523432145818939248820211284651439117795520695115694285952156821965749724747941044807359641834012650104763009687616751105099949275101970695710784891669117880123658512372709404279587264270421713770043072149727074726265476587218325423817750318469731929635480872809279495912743011404461239310819263477366155590244204905669552993871126659248021282152377336296394414921943058282237146208148473176556228598461262094268091012709389009129221981131380894741732380678825747798995029511648947182775492721592801036273976278235712186498842603020562099842812696274785038020465554802358046468261296344616685991059035038156084234315485538483083977655450688169890774280364864890869467286932818547355301593799296087068256039189260296537270610740844780933777901110661545622897149928223042619874511528113215380746414178132474313581473106324941769992894599971244097118333418563426202375644286472625503686063794930733130030535923247484809322963610636304866105880725772624202502698786166139802129850451322544348865996703675376886972067867725146975228297867381612313197312957929025846645823470641913788413690322521701354088861182235201276144905701124129669731743108456225493911866641428390402084881178682716579634331347900706151543536826348882447811180680058598150300179067846422305480376681842609489934145111732094739338823219319769762473482629599298586309549858839951486799426988472059101909582688090662169080725942921924984493812453840017472231641255682686892373948408607750978985826624376145378430416618858368839227399235407027968390231747349325015504035222575330098447499248269044676931354443853878073811329515508456076379406573771116867975454858578805814187539850915526643260059334634809031185588647252864422360198671877099437765008658100807564135186583014413503196361311569695215489560707323386959882548302570919631712663889925361555441762097396988326630355117775738575194149720807856919329525741160116795427716454205535258141372686461091786430612256730751246251795959367328029704671785717008673148821501686594488139861557977073492173471079879558215744888238563541069793636565076617292209796459983399358149211118951949687715920752146849916698743384472205052439001842382611166530801207407347507866297885181216523738843204936818795086229001258971623935778127809684110467487549681027680323983423503552566366068509934954737174854618564457676043147157517482110821138041018305643000542932267411582379390185063751578161701886528444618347867767536957825220389655585996077556202607865279113896093480620132134307858572233681185030623594020491595563082022977399665420647954731330720481055635197712923844640213756072440068682810037237295263493012477186811933807975417156126882075711322280140831477414355080504913624985151117715620121075630381223027249023684417846016216022724636946579242259676051794546594555043810808425422758498690463647332444913360526936303133568824359980853282179811475533569779309167539950273874681960784161750099486584257365907550479224743228848987382325469727064940233698408756269481447673863397952255324673283361045042812184354830704893353522213168597789487880174211454397955763893007406304674371104343355637611373602938587804095418165737309264563240599066150790884045313044065495672889451509057294884687111168076424003038034516030037428832278406574305065995442605926245168653469605913115298938690046695742871437812200395834535989468527083439239024530331261627718970954386940238688558768025369669467105863606716188316491983340262024945847149897489807826016993923072052683354366338918577100959934288180436854105288392972129114383903049764837443605349139148642014303586939429826459349899523690776726179080264171355595068545738782179818633340617456340453439080594193072038777499879480412470578317035975623726815969641424022342641712177226847859465244962526738863904333254255517226585095928293833452576040540823081736239741098283228719605173358207623103368726369366330258230005727480148521587994834868442854431005283099537982300105614453643286149980819318446735074426443835869955189757337582935672480152409967176515375648931741878905112118435856371128538780538397464465689517735372193838183905673176086287079234701056781522952462619876915374040261838818027346147796792755816066893459093531896512940283529196407347806494443774711900947847467905034118775926062312707132689160112287746048922958351735534180659634803454053007429600273541607051084525464222030222240447818349873758475680324394744554134263546112086381468062862573112268428327021737617493669899400674198654445212477492504227819582830473240671816330079293169563990118750486671284579791043157531847862196677436208525363129738411121186509408401972370397961641101493167255930725273495856574038081656573341264742740329349215752865718796510162090638102573394372984045060644138314002797653672215361555620436614364382610821240140980765660881684670668788919698864386286590137659175999519873593752276666824282556401284040987659869500871646934632969362080397136733941088504268718245140498630771329694346026914316406334421977310123404957787220555681256888031766053605983276456422045580845457113741264837077325282168522541934906318585773361967538931131548657609168922914453152316354607110271704421935020510609487377290742271223410616905952253099490420894765186119915111400002778933941555337422626875587523942036317480917743086089161464620046017635220436636514429767963970514550240427814222369552752075481111611694951793596925059023997317613045966696648671601822613262453720953900240065299116918378117543057779363502311934476060161102000293282907780894848408911911908433695546134376481383429132994057557542010435251343113675797459365081381323604090159353520152588050601295148757174947184583222601874271716721660812136498044699725131343524958858731847003195242141674279431342294208311311418903438362659456230916984459689243523690225227301107410147821003852504662489761647903287609705802832722432558789349561830028761588262298254899253808122809019490551760598833587680428942665282286266603978046245809624500665965350476135383557603538509409491889438092784769029140205372127110720393769659199776260149588941206751187020067943514865119241464890451794015511863569045676472680557343835090969091852189222410064352814282900863463733120921570522557537512038206936991584731441043231181461920298575616548965077253026770546525828723454728190637348120007809720443764514773904528849617459479407600192230722994548268092414036731058995138668915974023272851178090269383654041584606500893973232430839562761795239234892225725520075192579576918133460328914497705721002229875495735983333275139297268625656386485781336863118635821774740369020098034879522098424586280399268698517181933745225269391248224703851371411025446589120073745253995847071863030310109462897552955983537740170012030366819295990395450871542528169798794363535052977514933170374347503428956717485745618085772968190370963367331263320260689724298667481635159381336914881238834399300596706676810774029603039821739542199945248226026003630183147564651526397250428946055745869294979652310121367376475192788064989764289036476617005975360771298618809268627271829147861985185409731631924730985741694921138028803230244098155402886900087786710787728388032773775857258402356277046453276315395837704109092081990335119080925319123686521355535362117595264638265563887169004738391365168890993998820495004132570855293975074592813054151052436137758007356334645337117390453607159336745885717031964534006520702940759983078568890987730138127866366381245599223420106977103003101791219173017349858639616869892820793294239276478916681625636584293586928127515673939031451196845143398153341728096983885672652023481084967377471070932384931117294447813818480710196313871588909030759522704334944166830818908902873217023939729034684414645232404839219844971536641249274518447229072916401090356933092441280206878226468594796926162772749528125134100816014603755559904153956444557909895218335582607580168700710687405080755568320810860602008934169427120907278724277310928596818750874351774517639603707119642971529544415668326303424139893620114035245707689421198989769192267577474273216292863413244219921960804754168146233934786690954608104093959969554384409011890284412918974076706188788235388387738624572398583271837935090570028766544770522218543281456508105651346478661671609708275095252222454631250939106407084942177039869611660110725430017480747265578356196239727138269941244333837818135530522919025481758567410038461323298380927364825186192183901553919355688404314626444982860678590090693439963489920570697208531858002966594437847218410017125219667721646266375312333630444950284067106831602744065126320593594120691465739740747231699068379291831347524164374396540637157540888729533100595784107816305821944921659747117670328756512815453480582978122003737142913229975345283380411928017816453648280711930653572439793641921780280943759361994873100554370023257942029228217036097230220442619473152934052233538610460783267783230115237152339196467898238667468556515069422324069245753912874813588889818089671481619877288545688825983867653821204740298396688597001589685816985638106801304060471589780403769459232838881806132066454563042423209778644834798296063686199447920311324408009320683855635206694633097795202415777766858608820118821158007781577223769920437718804201398840113276423662587288385467972985117071975447180513845701020647923493703123515623719051186667785285939697805711616805288847688445556368217832669971223794825030116526643266255234366978699182866269779684424388949415955537490090031200644838047923849545835341227725662131124124080964551555626320708656207674500536285657759058255895376164082001469720760253148149675781236446139176207736177621598791663692012884035781634133188679842740636996776843564929761194104357937104202019741266952779820234219022800702149014306810491371443943142941859739867040523403669094860753055110502966265485422617944094682929418506177158037874301525079110014350173184631204897184181682655540480647532128440992251402926207881648963186885277262166219448640088481842154557510482256355184192560303401471844441060755456042589732557042572831518469578295029686463861495547839717563951107659181518393614335820406534524563643050185349609629198333218154246520000692654621876744769961595273801785349278800826732044121469804577749814186727286436698250013489485766151455410747909039887914785800188389734677398828922611551168924595089712250121821504523448637236166132931182318056176445296049011026646879318587454941806894483631274651375982393351430669534743826788267117626174213075670595326527887227860699965608938264387595703819802293210489326570969809382521135602968649426999569358574837208196500292352115197027060913212396780705065769149286411880989460893590448301019254788251547654582422246068190105568909603186764656452658675032341467832489573843655047036876324812178812658337875295038794795065998962980182849543704044667513028783797515657554449093492855618524337277600180911469821288790960111335863228614879721109745768031309267377093367565160318693289260516523161308317528084343086758764406007457794646247456916970158370181069772787338646334914785912775189676244854380993881344736025172359756670337719718376572675550816326381418931215053543103346337746534381846773577776201922299411266585318894004603118769871581722948893768407848066958132988153617144359325337765182280653260222438131876442123781806326172714019819718336824900450783859452287855258385822459202734904965285429175285293307715256267309925806329004485290220489477412936485148019341140514601967676927547515093487143766457604454520825058772286975955196616619161246922109739294419462516952823543630164235183112364639024766378721710930625312714035116593176882031016663380933100388129900809396300560563482417783252140921248438063348559273880953523854682347108621492845272229965310315503893911431526340159090715318920542266970207310592544159788359963754865419207375785606577753425283983763543882341593421864326691788448442310365152894973847282191187180378019853381790790676876459343683893961013552923829905833413664862704035954898755067165568081268484983524413519867286421094085192907507494591545015921281432376692665633354429093284584953607524302279795544338746839769556375802727014350910866606041241830609256975484325027740962969567031165862271641429783422265358835959017423834848739723089499142666940256012415074730680137327270195744663575685669230966127498933377577730374862093136817536709443994869839290231298589938999154955669625102961481350901329308676783890195303384399051387928799755704103285913440822123715383022928712771186691414858223321030396863004211189816306437266542486805362590171936824387451401209176137764172673610753361622635511978289689786120532644210758664875896373907867076347317192599365627696445209756378893900282232848198378925567668006456306917606405500800515351081775021951325322036498570611763550639301640084308537367051116978657424086925044248459452947934677556047945698918674696632365529272908276940064695037101912023287027607145530525851957876826649302198317050565433192059611816751120228042668976023559939951434399090531875968096590073190983220042412738104755106864952296374330420849381468628648374565610078712753273673081265637703600471993037567652521639733650971731222173482811741545821403708740334422463606855702987532848790450648244916416918030382523106016039913909580391776744216514469539902192761424400801471424514847562028475920371957219807895672704831009571581303395494349780084045372543985119659439260790151242485617946316742991793440460963918514150009536163560237186128188176374966748974219188193675015468465361948284107000144664977480206585450986122214940937902654453260900536500101407686454340308677694563318992011138179908001505210001733482523965431186166051492384866608774813668210507109966769017256790621462410454423491632724808651049109219703651703973857190104449469054709390339427519302390720318049286874383359607489227813345275120721002537587907215774405708521384786226992159753231147738252154832427137516075103280365164828375366592016820671735884891791707407217084679069347081877898364264653077953438950541200916517032578535559013468539102156203689218089165736390330472609106466694572114391979017383508205424582526359343708858673832976127133382105234441807277546897015097386049191561887790257866325201184905909590206957877353367213796615508356823424589984512116528813374212332125439810866191014525008917242888695673217908136540818953807934132658310287065719619813471609104432848644064181039736130550932463777525804045891126757979340746185560894312989929512801879423892154932661554438877215833571198315517666671298175081803144219082171072904193309743708325277006366826702099042753028716442273236081219752088754739843257838310378967309716670022227120357787218804648668685919465157466566377867602869580314972287516114937815849084681279764929843776517825069948718039477804857255027118337081055201069698033278584452787528462184699499795356607035217624165474412816320252897369759151612273365448528577902421787111600321531964585557194021627389964398649769254833788859001860992962951846274921752888520882883679514416092316015637470263012379319549707843376545746578423975390335180174614287223779380550234397063990175959570241070442357420822283265878677394377389566499778302248481163394235508742483545620048992774274635227223580632965905566426139029310411394232224754126967000211290457542391432829344435575456650178042599085275573619060100111026477603556135321572796397632618139683003197828368487324983262297413849856174185948766555449435767036409636488068719380762458150124559476051576282893551952383619504133348205494348496406311254347219707463437373319659827047459067033855266213398614766992019010365832280644622629715163624840803613227666385842711749339529648382917344150967997036166343285835346077220279418536397351738549369328390069208187202546791249347801005789802067787279798154398617908497498547442149751941933704221665873589117730602108504696657783935588375479613364025922603190200723465835704769148299142614764998723813589152095246829605684837417391675410790609766185181108724702561948549797483902729655223457928686666816249182795709490833534992057078901881471104577349291609766131788492405299190731437870159796250377712703355425712623771451682837335140185808927423218439753823985074541087908932392100574605635009606090320268579047851177654092463161559372562246442203097986312543248737103529913390622257674548368990167309505815770866876973788441812145667865781850868309241621492212415362856890326766082865606664189792201184309544824519435202720805510937330869063354982798576840540735781637710096957172702496994683106416565336627991899395740938687433075391659719709786649646789076796810599430156726759656254167658441819875821142007302460534014842016824665213797569065625323550971599928106992714791947350844693454704709572382871317923665517038713919905449189937444834084316263374683052660900216607146845684396303981486559704776057635764098765656002421848490789732070060799931204615958937052904783868549132966602180636499924036422441848435493432153083838990403880678002782018853910423457477331793399485267565859942649447663119115956892947373558568454224167080039702919613108538872270054153322725009178583325228827341729554198348660558924622088584362967144842549698882268230165176631843044247955688374937124104387677129995395105951605150973245718957919646458151157879541075367135529528561533530016357993129361165907144675099327883406508126440202921463411089424341561281289635728113860814524645263837599140779359554698485804380718840079919654765714685517589520466620775329771127169405688810653689724346149306041279979974318124770626108097180236733262660348789868171085733247663833465827083556003360952321992352922500152271465641151090290862467279952438794741821314492241697823391400472579995694170707435549012134334740180460952420504687656680908878671085403998309997237284843369738946340228420849724423431980009563058842044222401289613708821085784514324537378585182299566698143954380714177863834027980772409299433633061208794660849250179840782602354272032689928574789945277484022809074280387433803849043872380794465429636177334971086878552550731779303684595168249735493984391398655343632634150310265813669912375984698377142876230439435052665901886417451870451481417617823831022786153932518350696625776074009206807883290012065763249601379382873352656054425121220534303527012407492430025528460387264338917632526124760230266417851403058079551977913358169003968509072388476900505866537291164862760321117984150845871812434771712888210103205593287894528015297882320671626616508502085518493568380540055152142283013581845812119045237286333367837496286158934356545019299099692989295526399604560353338371037879503638142755606938638063655266076339979124173192974379773493844017750274660995884078355930582553818601013678264704220286787053494679422647916818587882691166394104546342505015198893665128831965374154249171354549873480047096787627391541386359603228971199682816056992342898935119417561958290354132659502558774102999097698714799344612632735441024542545001596677712790769089880828932056786193315079442615723858018248684204149324064286144659192047997839071233044503586412037560147595403828200418282052824733642248772733131009729660307312170596340701121769254745125488229596126324784704707527885975874335536539077165459601005677400499461062708205596308621399232139734306914326107158907243111374597697444550692804254166428260666689466250432062273305220883932317275914886373428411915689781240177606198298148255876214459509002875558593531475493687026415756673664581586151433007990475540159130955727727803637549033174612193361941952870077188842053072437481470597907937911608470462559640830279432777295123825752806321421684298401004834331978720284321336104738460171815907231821377801056203208904551675746897644610227076610701837505959042396562865575296471389774075749085120730854574336972498395933944913977265396471169188254871096719249820125707541548911233078001483526117970718489617123369827305282709315501732042035554907241195837533804574633798260903602137929581345695974943236150228268389839866842526254675173385548802236075221844725037148336611787857308496678404430539910585474066711037378627860618876661160192493706989383918283875817115029722733362830897582432471581121137645983433310137430786364501704708836746975900115453888645538793165013444353107507311749887123052727896101848663622560462016197726601476544513429652703820787020890312055550533029353461496323580814060404456920351992102145335417374710759146796283757391987520477943791782892149089465150620205496567663398205936600943009016498238669072806703798400184145357431521222235458478064744541220059783741264671497954688568257683939969467985999206973067565606332758554022064358607501984383896790798497274696614680304105433533999096052320057038965891963678573505905491440889639209301210886722712656923603593342118228453119897520970062879618750815507804024040156520378118808828536613047809020585573530957442070793817465431056496311113299988867181859138818625993978751365294667582751199942175350944508342514960497179850438016264574344526673523126110107979475718167622871522788610638322035200215478819412561479931113884208198913541611341253180447774554666560066989943091840549209916792945120286712413546325859370893591798756577132877485194039309031931430526711134804244806882735254153287513391754124371090548400234272586534142732477510678765791284073948102306714907027221747511884793237501975170494263486304060231704964331599194811172596948734182922895500054400141809118891410432010586929778838417496605087838789538215025302708555936787370305941258624346599574306377819094192119614693273732549647358365073379118680378494203133228983994071254778271066243821086460586764309519305487142672788325446525692310417993126441404697468219566003717549645842666308352163177574322405481015340989961708000306703271341163846318733547363798965247224878938292785231744629033707745856600263426388756431250508656184947339640296771728243782171563990887471006153043293324297827256440657785146160541944858568589025900982583328235101500508057978833573916186729867511524418593392907360553206777395309785892557124332898277743020235407867152832048007990666666208395754054743023002172325899715590099663141896335393819032351419078453050192953926257574842468790388145485918040117285698675851593548807136253892943586216383060208298342073299641527610896795546190611610469958120577947917411813267087113880819723229953317959861911163200590040775317820154944189123679822122141526258818830884206161921185378927422866501372277377716877627498796004853020959722407507688483997524302308405282617939655472843521504775686094598519809969677280171948653072365672082347821825636371609597250793243140064316226212673979057009497383091726446975067745364408509482359876639445460318656559387539974959081146657588799940979075766168701501927780055809696315576675411783812582429048967518819847640266572237854618053478022217070883082922522642580605662517530801184457479677676472991871171828332729768496483657359299167885943220480828817315567548524930352350029242717685759885744280503381246088204601769305754870664291664895942993211945597050115629498841968317233394370318134343701990786831569847844225750791376523117037096974232225282430385158920614568438201640759161082086054793717881603041523111990327055849735694650532515969996462260843294608586550664725180606209375412823274694601568204058808678145316660204146106297891690918226866852772754969682794404560143684012645332079853610448346943820354813407033748788862540140901988873610734432166386845642341154116386587183542567166343307825391728535939990151431693697164356977767675779856792633259464336255333958300183899482818295074109727991771556855961593551735163355129584051177294496110031926304076673349030642941075736966336764114180715986596243908813665007735887754057480567080814253954561317294086781543258040418097255588677508083560234985194533796263181440094231243638861631301393834126336983485809643669601000175285589863419785518336706902391054951163081733511027138566051860679994870920086670297273084879189515609188096702849394958025859861887084661962116165968766747661772180660299469969475307073275834016267415212115157427461304024088667492024821205421217458440354777525433510400514426442670437151643514519803506058412898138675732067542500246802340143875671910791688543637522447971545301388837308176366555808888004507083226529006679968261838782647494523746418333704019270518995117533403542528508049500184522273181845024078460312839283972142527008006802328889433749780642213148539739360713563963193759962427890599361329927770283325057418828808005792463517449774587832242442292527890570304311955115461725779472695592742819958826937945941501822460666966211680657774128266589322978597844612063830754601307394206521479504431492864214291386363515627258458450602590552400470057832127495051828728216151421957472993975828119079900025433466172772202581681312498105375735621225915288498148053786719225716448240805518427702886288870489144544924905725299369989762152577889921791109664897814367381817705426738023432711740271279355695896204190358252487156223239773002121453909091779337623281414501853555151029943030700699248520598140777492847043824042978691140710069929059640209455565033574219267697731542805886372405535020190872812621111532833755051330778309295313772955608437073997189514415428316339104442086081894207954089044618920398245596671564861217431966358451086214034646732959713296641171851638455971362923683707893688447745532072294095794573817355088182813699626670958346287600845761037223363718762455784976789258985636064867857824099695445275239164157468891411874943201779454232913585189661556741165099756927346716129523616010703089173331217552864298107833526641468897490852736148972736193601333807503984499087854855789772900495519721634165541326131428378823752105565983888160082015887669961370018721961538907102623050525413278587974882091385825393380516982478404286558689455321899960649886606568773062528980722859791867097908004939992694378247964509087645511938274402541108126053075530240100706459652756031946893897267254691107875960297148795625538140606729255968884065642295307457279825640201192503136377902240101487442742537822902864044458903029531406797492899641206051681029213116319481531109404180830105011824112159815146615507296732830023383146935149710254775836647669842240101486726701842525904581132201307082570186780082273577703800617532927043279543740575833152658691231296269580438353140665756367338074859155304266598238786884469539065993604747126360372847646829384996738191820790472229383122775346283408884674383404212966449120448328361285935005717269646004622143454745419612852767839610856622857377026160859500355945840027131311528887924398783196568635645565857917740488339962427104811606641981925565895420813764659120332301832019324455525493279346693879897915759079314182006060621987699978759044289118015840147483767893404183031768024616582819392862201632185309210575776350588441864448876065600945659731349130611940794860234030801889519168960834080092030313942768397132895595015374658312375013201276614343061481256206628307492726736766161124666438914066118986330388571416797468927007470493951307307127137874966525038352582757905112740003394852289358650670736892183659629031393106043673711449827685954957519986640430822027288986045963448540262127137257722133304639272491041222229161024771145121395931710674700358069042377418361170465161461745662237013304501636969640793002122980591744431158890021517138772541224145173049158114216113182487479688649903959472412798716679803459821149394479613031622878606452863734971704145746329657098522165744784450277818076027128585172037772626326990272410681087582732222767186856131821075356264118313836463447642355664345648452743053764725348282659337519012922097282924843324644096135158153266335788275474989445864590510457375853543585348294289882767660605297780673229022041746594912856718749133774222642693576118423373676978025067997365725623951835325095335008797983358795413314224824360090203919404175794021372386482074429870955426231150167487046085228823688003199118790809541745540792491709953834484318122943486921957616573819973537519831571894106711634633962965441173717467488515570334461606602344348961813088999777669440780705057941920834618393744414111666307738594914279597482549856005050958442945961385107446444613144960177621778868017097496526147197051858961668050356259318182774541273442470753145888239172674264082776518906322777985279493193044309310044155374294490950865091770073260425602265966325057697500190676045602486113253694971112796451406156528207607486959633639993856463328022879041420556248077891996159940738408849216388266703557012822109436527357179775375541734309442072547306508527690207940063247509421775566074989772509209922554872941379470663613071345306628396418450663597627438479571546668115761965061452589112072319320363175580861696211341077559143303482881352374732313977297764202904112196491919596218808640907088682896940525341990411705487268905069095680682585808513335106732558554191906630440635196897676488495632104028272337721403540677818306466157268200426792985922112010068226682800640066455707134792757559013595990421490395735118949109721897008952071488029920356963729699862245217659012020237611567403115268365920307851703056486186783984084376259801280298134086679919762865001253762280954815368314714850445374174651179955541690877671294020230689454436199632942483876186654420784947559078913684718129751337927544090806180896626465243367160097108697411785602142100365408207274461741035604980575395681434987361485996749045423518576206656517191953389884703436292009584650455175096258760034318598251274564017429655359924698274058181779614417311360277576934271138711950330302538579565479822142455432972026776950770125876214506330380612557717171029727600831003823996213952725730587762219745372244207251148279103807043342658432052370739491038111488637896079906885811646998331011413299866071138392991057980487526391470796739249205799592809667457561857396328499815396781274295725560080670316506427671424467837672679128599905731306566296942651948860422883346686851454153229065204180889030581942553209736854216371512379132061732440834706856984797872371553128907118839246993040195564346132471381633506651409509578452623267087920648507459525103772214314406373450551297840210229754434546904367108583717027187260772280553938085175830273807326439155075268351408679666585831499457647661259483792300900074660169006860099259362375249276687129476768340696086057985619864902092292742808968870841101025279902145867598238094609841009757204588720117481766827546539215980731188488358527522295187615991987899296090160028988397961050614844061466681323159231793944420524743703527222611482926260031780132956913565053254211698258291476498902378741480692031165564618309773267420346444931162505632079576223918048254992072972784500537728222697501500842440117935493148138190558624025067432499434530227065251006191046208142219540060438637717095216887774246170363307161332009219475825428795546499906130401863996279295793460257752979588115707027416958237352608431679673809452912710228106236359173901922697648570247186530131999949472545520350211225860123692905570777554867358481085785898319833886829556347628094962380280936832690029821222422599094496539998259131101545269358012109573029264617078974291277161265097064280580633280984016725327617572251269124048031073839707075097249690509801533911189592093472194612967873716072233932649874541156064247229749299224533426396952272531388716144918142943944257910475671353840524283882553958302458389250224218188160860617062216684784728828875498730292020148690498883263852480556846149651851354914144353106942466889648994772495398392400229293897139261067766098087925752394336040795487240588300347239904677395509858527975892984382079200764347668977322881192133289345761075661881704259435778539110224714213044812888035127525962955214102760666795111669845903670595227453981599541729200568470128415918269394829461654680003501650169292391996335993748569401502905212460925829697473500590792967041496827203401506046791060190792572413940451561964837799073179491932460212835307651423263153555064898601451186007383720083193166488261978238956427253588108256224533471335893987973868042353032072567375137446340473661716781724924962614666629893421466712349738938165453432608915849534692478703015274922898482493154322303309974222042987518523689561788608568829903627832486120125910499284353460971759817943852668073510630007671146993921114639173724917996812753740534666426261891929934040165773886887268844259989054765508787875290552180182004238810675287443247148251563732544734711761941403980278922248484731704460213020780951986818705587786106671492342432534540545442943093248405467799104774846292707583574440104183684196858590294018940621533877848608003616859542276922035557740092804501261820814756321008162399378171004253156125198148974694468979964826305184815070530298223075129188999292372621962486917476268293902413123175312425247668673612317893964060010736580503665175023507679172966128461221195887188587528081399985657784138312435754415059757970174443036999794166361165768965248179775301208463440932303028285954194021964374942254643489529025132720176026059211024936095562789079898133909387748408982712169210079632530349942952484851751493835079337191057634017416034563282872266463228431549171097492789566982736632897699824431520658053232009052687180983532386455209556830129710577111100881994064014341436578837613764009836518329776885956908580788764642944327555257082132807844250274024703818270428257470047230369387106346603345180434526184723939258544337674482325078606767491005399725860989664849632276231180722218526323694134626476330315193816727493105503073239924098184737921868243809299246218076099429087899394677355536497582251598491706279024430332543508610065993955137742648913326909414518592231408807023404761990037495421961368143025272158634738014309631725447329049893789566307165723567432780125818150224138922107597146806639707582424158711427107922060144341478334327287091678961145631177134231540359836787874580486447686804535482105215874378737265986589443284363977189303687612413595428148709571532137547786339398543781845661084854900831416287608794154105035720468733835948284545259820069092226075730621979599588670730008317969236119841333017071182134589072505928360851230605017736190846580852574612258190999494803546446838891361890349639288828837877460863210584573691875403193338063389769963501404284615966901907312904783883547355732962341953540803387466378919933759412966940480247913793152839160062484948295528219843056420708296286545106524689247328436085563142285829101135314607228269215432632525281893737078449879022223010644398458275433986720924960007508019701196876929237736944043009152669948769859303860958340337212746447528138594056920448188975104938378617259439701863283168867947525685201337451440734771189481787997581774819583474271007495340318718850218091607143174632667266123091246856027332316266312828591715469660126687891501710411956657104669775164423317830786716477247079436356344177468494109316901053701480576135667413691746531399204420744287089341575091121507482565164378153022760988655359270323443770479243681183974010525986931573864883528470936185835339305187442247322884389267090804709565232205152604000753630486245244569461262753073434767130476125006535117407893568312163405686285135881677332539513796397250328663945419241892330856603267765608860209886857110765684395218010018450520127979384835172786211979547957090892724894809962605271537080302752965544368359841113595059508242895965053830147376126273238461258217908646507108138386975870887213069445040449651053045377443126993565778989850150380167735002024513158194634912935293309900261445307951289055987062675944128350681870760405581658833487514303322081540898938298595636151041731676437826054573849996150718021511492889750648471947378425346966636257954902706133762416819959904154428590342025087345537931387423033115207804493729145567857287989016811705225449433574650008063873773706695059168618754743202678142368139091256365943721914723264084363752297153991385500904004396278587770869474972609058776012763583746376796875180006748474926815053666508345182611059115343375076278322803430471649444370931422782235070042907293577522490582278336932664323608950462003572664434551907765356559012923863225225934849487041690548654696533783547127175855609298618342573485651250342747635008869671131197827454010082361225940886864475157011904037262132277685838950731056687048764562683162661251465148730311752890292442410080617438031463008201699222890073204442816368888799823925535019245488237773319235305164377736133229921817831469520535274223731960979320768575355958283232118214134152371548858750864351239260730508138431372885956331974916245661472616400136867732753234674469915759001940444948509852874783928759145959927234202578598408842534833636128082711653472790683757714661003019980893541274777536339767051470808099010882550132066181926285735952692817775001519641520991223697809907405076127929327757762774797516882877216489503477238570668615788668474712233721059672573321025421968682621677335192951048487546095877561378650422280730086897200123328709011733640612493174289137375587846882207130708317786280894880218862102974771407861938347723582897682181108270774939590618131860497074408982988605512999637417026132681087957851581753304163900287169696672266873851072601592033773252619280486894898858113273042763195655427978355361790113033044329259728724200486828367270989324673163415164354892073000486930181558281051762665440778125024111112561031485626416794634865139237015474960360113748063469823379542096094885102509562140677426951655145531461153264156323004594630982856511793493837889462994979261966032811358041830669365706975424039696824070123425644344679343969540399779039636584094394609716653698228757281451003893301727359291199995042021386052984487048278021162105867279890074363463863679528684850166616211761451274855689815559099914776902076086330454448015348163467819604318001178214376080668968080154261128988600911054092132634872959397636330654709707571932352114286339735595388091969598719090062503079019237299584017753952433864085179389828271903509995844009973933969568032374860955835144081631943101624599709277104032968142022385505633951403444636497423076212103022753260276376514892002575846498583620045226766534403716371434625230299001226784562637303808175517102146490137863369883892723841488063555893683288563479513583036199104104971703107528677794721754509556510537686869948880623820929634042432033292408048570954315732788047731685282558992679631155693930312716191331902846796521199706088661229210529500763829904978679120469100552419800353861557845514003436429150324659039692029564877016661517333493535156524584098273583063860997309531506129313215306400396686153985850255045174521086922214674654761138186353800727588857347144154131003502837702761353289686898524791033407756504942352174750393401165613314795672001974973252935470198741650928064740466592460931141275961714672025624734522545922774710719631718716377655737870387627759812486540297736429794645501927684129795254273821676306640605687267580672042638686855771566187748110717438720958804635581968705954749899029269291766507901566886688808149322193961695497956092778477685175322719971306767570273888756723312513994160873022706333602396781415798342510585442104184456115258101951277272251292247243602385820049756005732381789289349035017214883218380671835605469774366444402009737604529404824559319293093274444102148188259949031459624039853047806442452024450737674069779487795482064298631804197312445977279438768752173261050423827126392555053673326490516789553641161704377395510831371358649112273033094767065040221587242526661748810304771413546875200515754917048951549780984675550725959348111222253872307126138348580249841607871358842166140314617152697911907640526871038245943643285131935010555695844598360701286377985480550059247978273071165576144790639265991588037927418938525784695843857288089359920933977835547584310607313319092232493775750212227410576625959479456704186729852610736617556189916938347594707945795390901918313111722128836588566565465508217732410292206868904392989987863119138559478864309097632529743881963813062283184170801392564898490866253101825154388955263191941520938305431285050355121218305400149157103747299637020281299900631538747036793259739721855111487525967170190092699134673300580617060229403611583374136630997726035187196019612552633322637144690966633781548854102958541443268560934734598087087522554790373063655898382195600566295734196478231712482568618719713704861219265496966740253946893861972999964800315122170143999269519552769576376228941545143373155258724937632011091533362897480208082063861181111067644760191565856858918756041085405560502885604013762613135564229647628268433826281149551448140353760444663034034676061918294508635687045616845908984824385379475279387733244478347287080176993665642026468563105740576673469231492162296770055293203208496783518857109473333951422531248905587743114614074184309666009388105887661388480641162694513398397928576527966006292681839882262216010190847688846993598717762507831976514405506415943730879148696935372205437234628578160532932095889660774858975242404931135254516448301124248510092367113811038189269283950931540056469410824705726987030026845998036989022925793311121823122336650399345472123561840779759341600805745521039985029156568765389056885527485188356988892191035458665840854208420498562380703629833346758665644213773766841147228865537381303665450902300429978040551006160101437745223012688735981407517944905497283010933157633788919209197168867626042238483626063774875076797195248364752590992152089358917419654371444556114794180249383493955156928097852707286428665414917385799282629840044475848323571843009534018328113174567848726592134388579444417127518603993587711622011588885723841894211624743018604872319722096889197626680980791031221068662719830124574001632946940453743545040750667640219353524941813049503781895262671674107792782317836955500197908889372574869352007397931411755762717170784566290064339907538641744782460651175005953262312660762362780890775490506319476188607532393267074557007375876874791801084641614688400233188570567386380394442436440702613228191195966020235625897351324088240859166890333375767418408573237116605697835210387440555293343352174284146627607035589059922782584451675397193218789628501812162637195445137231023898901518281430287577344159768686056505283285597626800089610309970152911936059538747132020887059360227115761861342440130692449548822563186968387835465929955048540122115136213863578776758381387007622621741119093761638598843966116155300595360247372580735346251020161961126379895268814963813114790454225266930469704337135482735542200515749040676702917086544085501572445417728417533625048476086441988222700076406987874275113918390378671206746563351885282649431912155794861531407939045281824716650997592368093357750349833706414650383655991937217137921349436024859327846355219337988080895405701563519315190923880769818219821463302148121224246997173731021893353861660863634133640155016746305299336362472162203726513418854274001295640160956387763361898530710745423608989703613932514896171859830159645721852750348035832346777260335571359245802746713022163401680771685765574212178186680269965641564570457960017550205580496929594278339082815383008348793672413509539660751349963659509017681357357658235114419780958148986725416210654608604331182291254657815265156694538120140122878319381681925559397432272768759784419251506842090682646561102797478885953829488691928681072845094741810186773540697312826424214885129347358379859261971019090131489346876908125506577088605309358024124525687496415830760282827777381632551894015600456834893368645272221142764689284425614128620583091807821314953149919062044124121638054526628574416844004229326261458333587059764408558629046958151874684247621137084499950472813952528860594348526737618483979974839578215023585650517675837120563245640339498300545542775887330418316645987228271553397094083794244550198841477280495847933001410543528598181353909990525094152422425339198086788853511059688773436644009817866747258269389528420777077788290822206686230669424742965576835893334590701831692252037052620922456848889704665296871911638553306857436832026816238626677156572714794234118721621297491892369982013342556094318018907572922521411394524571411011471278232099367493163232056890962330072117488907681905055169535166369618887685495645147286508365989932259757995646143202683140600174778385154089942234455218536031000433665751082280153046269982175844620795402204142652200788595430381958736863376484427863535315755019063085935605443173114886448986054108913853282013184745554219337141084424739419014929662751290716912992238559466634676994270631875659502197046938702531228946986669264323733598774381010721042689699292141084153264316324347218244245558165733925893295610543205106277899788864240201431772383962925395930061912487331701179143646265524972361321936373792740191180794507685334114653674835857500551004053254792782693785293351391885089016150543694931648171795822864155427913076955222033267027055512305392849999838048813912628764865301837272299673343392342985378159791502107690793977123075146084619949093533592049774367769905639339216992572560042038895116388994092001080947774006199998926764263357813835101335796348493903468186799730218473714794679719300444612869125935040206896387866217032805704513055897537943206523846401518110917324043729914286150034035213597234979700863476011656481094554775790021858389910303931566538223210674126553853022278015729759341599354724663017033730686123313171613175393005420734601132402506655887486008364859401628097213020795819003354151656725556477916952220693552026344464031135046364017686530267087053688614164663952278686496035039801485955077841302290328169176801017302929507593270794531560019391869371979118515101101305928518824679283728527013859566709669412694843703452437611020218600507796873266110430932043380525099980627298081866621177304588044304355016765703803259365559043150562076892745868300466646167730508188660154382254167674257548635245193713994666070807506288022503623213202636125042410203244240482567960256896878246196741388830714103663600776779043581638037015477685228388589242533339862618053735045122596746170901838766161344075913165609343918247955037257760405462020828196881691490674593763363729874307421745060840555162463735833635514284611122017686166933194641135396980212075357087006747292998056051507319845814888913027825018459609556678217234599598004688958243429910364542585788642254965919701996832142493411160534380446904902601940635195192044502565441397043372036595357837289822673283662043507313566845909184487234729711076310862878508090585919039582858333567688283774093614765707878401512528711398008599997168347026891743535402890273982128784639075523710595384587807753331225044292117120774321624418521388628864246191615910141939225265732171083468566986251266118909413162172023386012161057513134196495432903586109628151017300983812153210188460020757662771058228113517893710270650685967265793076087973070163532819619494018310447118520428210884003246226931000688734841377285904810021774481145090358873678902323088377256008226871593550458347134669751782811001079065581255596042370022846483553573971163308104374051709698920431274348568193108784076748424528719475105770731215613397586229331614670536434329814518450342040927381358414529469586288089385243639948822303258202891024987904862351896299028141744054726086944706207430472216197864676392550351034021487748648453791020009578816727428292113022041890555598583605962085881355498282053809717438827103873393536078037628840553229991494137835142497192820877279707944210222864589786213082638124375166238018818637684265208666940902085740133176445438996024256631981857615967209647937231060957189584114786759490563706934518195311537368873253994927532782702249460812635601668887304395834650946189017216128128000103127675278499480861911784484473273644488546564227273088258115140588539321143797575933189429025983328058170799899242955775397849205462975895333874435384147714308559806518895933458891009685075344328379343002442189831126758930605498271941985875967260101671157888601841819635050850298153743693142328887582889626155542678321269025336820540491358033898152805499986816580116610833993456979744374366876538019287963536442764614564627749336215503190075882572104032829709247515631320662512805957653004918597479923695075300909736012028815477355227125192917834903703744292254966926952714143869782992006032146830932320128654762167417997329066135467639910081336090998437870427501453435981804691462584293017003722756545107978983885298897161588585919964010689622376197986171306097415377553205490547208466322756644342605294720748798808029473531125147359666154847804760091701535974992491197489591687308427516317502999573947343195563948438968254303722515049622966694165192890036625885921647837658412048000612136232145407781670124638286094976846144125914918394122138532041925149793887961513659769699254776236319094855333346844075601593818941547477925972899820370836527949954376556720562655980966047682202094131205736717886760441901158649547339625799723502155592213685733653014967107464247618151815963917962946205539552206550327161411977077070573584010670786454457176081129424626179414788749208616177427817840239984902843886439138280223694345219421527676542701248101756510044125348363821287003474815283041093432650581372224414116976244437356031726863832183847311511116556225287564060093986262184327374230592198970957876832151191235483839509896840207619883941207395356589927171675802795506031167564893709534598660088146299351789938717319533784267463543636023511837756504741662759095602107483877509471435554441623848910050439014592898645334715215459497219967553118699617273294281183801138620394662046629449801850781828688132838402771801444564209931403065214467196941898867447631993177822643128251585254615326858136840861561564475862751827127650305140051754251275354952988944650818991843439709157463597317689096391452795923723957266345922186511892516729801039550875662817386972356853738583945379460368643401705894328310271302522390025042148268668282486893935072464941907502061321218892884880712648901731473473860392717162303718043016414448654282053210879780806334213689537889439153282576382246651853183179110065737123580006846714382076815260786516315672357970582974147851297483953676700894978274280505822164767460368738227657585614899614386017504003768600008411667873186686017290642769176615823796874113300531565528760792631098079583182955363697030623675052614455240687340151413095999158383553827940546437929167496550124544542575905096246367188813407102855347015889786594719090632646388977884990503290853797580746625976828759973810733453298962333186053039670361274455431233396041772065975243026069521155118785589839293049965002375689027507835768993844456459139294962974363731724056462076891645059164238350758629435368334167673649116833747624714688676494767563370030360311993734447565039645911713460105451893413377350020738838728948863203009599706858634730011747822234088337000674517372962299154604733672562902742316590181117612863117987602062983631016802820684711661541155832780392957430372225055921895915846712672841348482070017845400312583420205056454851616605030664346852935199000016802264308041894109192722481904429376870529747041981204689063058225932800602609267420949716050949646091351238620818189938341187041005462578107230946600870965640430403571854250109848171710282359100390991855441933271379340142455494083048348627683946835270528568539365780610321998538092570152375549703056369240852513354425024253376150362695131635185167900654209416837224240301959856977332728451884306153439569845349710944039876376211300153492444782746983206913308379399792173439210493190157081107034110306122511959307445352102109035711334038297893482376004481277865090363455798862288701304117736321460106188348851838072480778468899381772871423516618143339836073543127332943175087263076786025238955157740435336043155906690171477033160461244682335124676727013714393590642544163537234296558519057160674397305989369436199005005755415170112906922945191870700658519421857842291335334798849498569128277673994010050672264111994021697790842615545563656358036386376147604170599839344213418627184308794470980482723082576923060902725613130758907004903554174943424935021117971903206402752627126292024820240154579900891786117827580647702553400957792136540720279010181434927947698271260623545369507175329484215023602645324076419862781512812412067112267665821303450390804483448034103484687578227477887494253711454082509411687460728891099660948878711788053977216332587395631662146507422556568852883627883809198247000589490327698350841157399919081432120598786280421015567776007142129070510827367974365307405534863251106910062829868569691484573900827919834794976579780080474230910506083102825086591228949793610558429216931529258558973318935614765532955586904307641173833074842858715594641293335339688842067809654056529521722149571178589432140551470921218338532540305130378575134108110245650362583636809060893354409818758430649162462007921214663754245934023554900588223629280832779977778097121656550147203790578771349408366040000689650467293620747150859323449810926131087556190199160650903816273621298931324808435894490182970842240695068723755621079108265056580354869681471021994105563096084814156454639217079962455550774489942158196119506024298838922668170853116188264271073763993888407911571612816203292747240227696265031936160137323099351849825103777046753054584530090759359142650743435850927860064555270090316040170560385145042014637546538944607513301733350991932933045382050102962157483921249221445219390633632985086247807968002048419103689486881019663127906876964004365793167993460210293199792730929097064701402438883757230044261555598117614848333035413838935991491958210059300331693922255836151473492620416606326744455964918353530824144423829304283613967651695917590828693944346096546841593637886026621080108998088324194061709535932602072594435693086836178934086207818548113817294850896632697617027758623970867942825846161115759322024646847698228292023106452876322684141498870051188707425584843784595209042325766379139478923092747833229532438331319771668749016186198040745767046631408323228168708688593892908379736082209664665232243843064879549854264831859383932695229993813906397189894554100515233810461433246604633829270180440130246235709890210450592069119512952637865168478001759298128936250643558167283625235706475310856546409603617972345448062018035521363742441933340767993346849347372321734329531305877995486637267874042861693321467169831395965177400083996608827314823670304516797236614811520535640697905288131534454269564712439877146422441819276001658858777003582630228173320359901393577127901985687206896363052000544123011686729611284126382834559451659999757286834656183223109577125627386974583230404868040454415545408474234537380726844591230560800238677436704618032629615387315078210358911605812036643819058370287142291680166722089740692643348437946003774630928234156045911594138621743955186473012961651948588071892589018483318237235830472758059671674964423214963151092271653948462285203278534873928707431285784025313757828879633395528180544404054327090974977215750908635734901569284377822150234846130478131100063837584563572977399496111868756501026132262166374839275104070528935270009606505735371483431672590458472944681727651737396898828303873364702341535346984836726841648906408634288833938469662397987360725130760079548448500519554292273606794174813840121905466112135999367382158246125829944200797890192529033203020951664548395798233966858695910333839139229252093472137320325615833459034499348187639187664231426839561800830596225153022716986560839444111152742093767129656111236757223116229710449858690899054969912102400670139257388433779053129044334058988164728280899415976839038262199584773646938735471703382805764049960509262154157121845160668700354729388497224007385839900362257032889583765039879972365132208574950367815007416500191043884254728298282645995346556114814972094007483342559003735861831777421237579392484327819488538441060997902366507543946125111398425047479530792214759090605632304844586738277201743977184037865721804038743580448389587430196142139595407719375429141085516593378525781159894811232893213044905879311013541681659472884690268766390161449634207166823958777504149326366855756993389271201835506933899692468204346107964950478262659795440776926008614638280648317788244704039943650722568738003445129926016239339414130186342641622904655805659345499037715068133434792608896230664882233775604361922543957752110048832806614234586291038214855790740520498726418682414899574774704913151656150420824270530681208901562708195636844313660117722150959063956046439524391902577900289661692297658510161665228562453382522352079424263336284229831813126090435901499470588041268798185100538706010706071786675257527448342891113367868484563068322556260350931808522072779735151722934776522646073178800565969763237216972697944108089874528454936551258936863727300140845959981628081341927713645000260443213511440744354719693789317887841913920521105795714114345095811444669815829162414609923047014907565355823847353069719053909281595653229082140513483337978088402790786247627223065828534747094641095187562875101166019459539734718282043053549415207776822761088217328572018471280014890903454110630586653782447121017694471827031779711134172714242668573193827940553529289318192445876690344337023086325530013911833430954895301899083596543010129751522102342383697553762330064847417311233900873511076237507135581032613353511191252529964572900170100166658730348834248833769290852281989944150889586975303341746830501896112884396155021868140624497307676296211252968318873049565561360263088453044439922132752013797496369910330740827240806310654752341061116879341187477189364683004203435989103725840712830613964667164250962880238481800046812838025607835839786635035368733287816671191812731468291242290720282009559673544784808598067214301767103190491566251826964413395349054260989241754125716763774828169717897467561565891877686372889811406020395521144321429818130307549184297373794280976997167134569385703803437057382803502440138326202129336869352987488548110704395570667019741756840953115600129555839741057090261066457898745465719168758765136951826578659494882637813557762724226632312205005918523512334637654045507402178699565677003965262431749187899419514862712558084790646989206783389768445027046027096817354307063897134591025769079991697446696286386623895130582732422340173735268005120531875458439119685716161292261171436018547209862186861490185960102485289295101518209468470759113789756570472005119121524826357692535702035507342949646577577309747241670873418820034388815803634350362897460571239568039616627804275205449782446773633934491968962485391361190436182276138584351661906449368912274320723127965778597767932484176973078462801778133800271328514254893643532153655395630369961154808218415052700060880185483089238602774132831457449915557255579819723869913243077918388504736865294333365058577502413614954678801025008740047148716606374978936543830514613091761237924570872087637945186570832124021613990498146366369631740797533914569456127236291623862625932273660937422881663828506086045131316110508270260242097537749939552503822479747793444710568501226100151552262007317422672257534524708248073252438983418936243441820879379531774429591884095989263705993262354805302778677468848312839514342662172157939297766795586186904005550491038074651445599326567191710076670208500697131664768951265923919136371092478235162625584566469354241152845797015615887348412106585670771461854911466102961695939613911725646582256835789605314603015913072723254090992727235536348883537326777534273829217483106782078220300638869249124355491117850475818471362355180475706698447484689387960375564551085451519958197786240388373437460627639707893194728879767539712213138733734698817110312272854922895020771208539473944789232187531921826422031250311221991580668692510121346425523288010978124582415550371848865166958339680226512820757785959301571045695136100386256896810961249735136171524123281474720175099945783877463488610132814146547634334998746312187672514497047217238261071075366641449186973383515722008763965190272802414758859239570948442198130263117026999067461457041389993999401411320670325404824927734827398617309993109266145781359264622913864563686147937805502124711335863371326033955033133476602664754951146440691284543467688445704709370613915568282228921036914300312341731522193620380289480901239044869459480060088426566838321002268859543944739876612522749146287830553794108210184165360809288434736184552026945282386706545093408828141517206703313899015857039951169714261535838188365615067337341093713586114937105717310483719001667970461367274608728031218410226925417739686040504344008111731989164016917961832049536835062404667204737570646006716727930603766758795300086331481992471393042309854426577140945640026384603700738301471957584511765205589678202081890970619594400241815992064278106675158026767285164318679586441579160956215236078299137922006058738063729958748401333127092193506364976388195957025801706189312348312729467850122803955450896238826358316259701375869592357061559837158837560037485901706605368590241956132791654559299183869195412159709838859651694547675065405849145346323711939005380918832334891571644754911742490494678405836393620671172625658106547814929612808181494776156833445192923984480638884100643505058773980734231215602404855587503950107693802451711871823820927267740181154625212077076133735532919816276729574850447053829300542247616513501396082010217611824120867621091728002547422419781504373643127785141965718749232957275275537022255658991863761151444721387769127576713329785282607663434437681486487361261765650445615796820593105329402511201904206933546940810207571422421306402519376028755451266898670088685660147664281047609319196406078381301362477686007862676224973122019569813811404695800839537875903386444771957832420950960645511120595650672430672531105797923986739957071140260949387087984235187754356347181297960541859334154275950144111353016076082385496014805845844796550383657840112792107431075999701026616926080198587212436152833803701709793446372167972911784487991758061712072239701805697258098974623381736453790812767000851688127347534343957570665631313860973299395616399029057694943019852077153670684430815089624192459386000809927295896106403858608590509502781260183535980891208144292341976071828127211952196928630677680811039521580785072897592406134417495211323814989108273769113777575725092887176617964953551317234859073767795228040920590350610068711489397690376395104509734609054377281090889128626764550320438137544989380810254099244739258838644800832393603151257330881991022200461924595682596357448355704404536323675086728630585312049594939156259717883182382529154619467447152468812379597875844657314453396032221497816954628128032057436747313838614777721102061947381697596726414031665276592648917950131380963572342071024969606074168628593468601063133377783263339316456517436824121929364472577579817123950131535296678866889678831817570172299436192618310868255627630172055938657189478575313775510072643365877579479740682180801085656089892850604279553000424835739543901117732394974510910486105437867561703703637705218913871264708237952657175301597140321765274227972713341342054643560992842268704528400249815193336225894200983620042911958839928211721078547363532393176342404903674958286848472152289286497625162583228404049874394614868089220789601019982050485160956121764969818336497546644109813520134861334957120574197415197787284608896966284358155833183093160004065409726639330101922142029688173177571941580846138203875531256020633900493111812605401775862096081766114467003794105350334977151684272056768815016934430496327333765001691110099906939269325334578599294160353067783550921865816136400170372780006109720610056169161085490706362570351721833098825068186960609814585509826669804170699928125044515538835691219681948603767231701239844995415552191136654633632865657002836128982498491417700607292056032441361042532417500482697416235760885988606548327991969054276819896313710652344460739309856410572243525595500925220974001220373353043383494109931178498396653633921407048978491524476190478439760811121648681040775061356463801882646811600808481849814800825051135442779933437241959590879522043672964417273225198607635615344200636481068145555953509373877911848058744887185236947409668306754239126617727417813083730331988346687270242180000051819949506820548968701005931270259732243049865512374606402567484338147718116079425759918110251775688750114170223973601653783468420937120306669415248169382998345307424549539011575588607547531179694324779698950577085843849693655151144897237927811325304946917389651646329156614131427744470464141162939756824706084435072506415140240559753241434634341409747416463093241528412292051171547954628416176453416549391579161946131748255123256875771656726938212107732370080653836314408677535095438018151942628628185386405254167654515317288065186803129780281465635933900249804277400278202255931167255117042995022317161353977207917524291444836045270314871122375828754626705671282513603071343981239502014348313420700191675227938503876416974897239174368184881379220555231143448079628554375044894117531079458918969008265609159862098973791664026010398189270336382629044555008439104778346653602082415553963877958784439075942871478691056152834473629137134104853600731707293118639797061246342150824255618624929824176314908498375471387109445040948785245717359685341696452879429443361682020024375068714202582014049860684197766342302906934047676983387129738472256898855678558923086260256544088630995795023762104852314420793796770002493049959112095619206307468175323952544757808281592486880161081852057080193134661841475167583602139345139194450681660198368181235192789131608925974959732102186645266729407665953454759129596925849364304844991971220700687592544226888061276975215325079239791143407269637499542020717735479072073979406530186332506718356166992131642016538819270131424320486111411601105267007057407374132667403095118661637789789824707692034140781460869968354277274358521919174601475420615438162684875894049729057994711320718713947645890805996255263878037738446531343070606442417047018358444150466897243352673446838041148805671957007953047563049141173061386156408964061830265417512655472797986630821884349639785424963633504042216382312315455752471099889681410141515924201370395100628981242623417480595954330386565321130110827286739476075297798075973781720758679537791146883308854808683686230853913788417990676761935355138590681261807834968942072640661482845469983699185197804016509220062768291299966286347934048042418659726899009797358868971408260984544244159470644274367531241041584547561582852027702920370737670143163992501167024955010972246715340201778799894682921485134519893749270629738597998847544326522567237140895447805412677207848929345642612867712562928979007054575019369207807457154266821985603245551361737029763687962021107319511783801327135268074727343704588204456174442291496671144550921861600624487814104208385313430899969177793702263133819186920482863014442960190620791121565310427732602190517421360682277212692787525056101790755068770785131718640859562787409974474258148793041111275814392551900830598610840528521794828250380052910589144340144444719174624054693879877729570498401151885128481188649477266547157174215471837850095726781772947683042725130522925484555111634431083907359717669015877795309076285480429794942658357058378720765649909988601427780051982923746021687857143641690619035430671167566558695946770751260760891008959508964718571968017225769994364609706541003417563428888823913522199897082924814114703817356326874673293672127896520843640895072073282481508498614867714150856453671742555461648022309709521078755978873254148508464219013498039447639648882812159156648291882766031390819803847027848780968546382015662819175971356009120878607495652401135494982762889404352918866471634489989541559069026728249452148300740087508470046678365340458356393968871591246734123504517342269363674925582331409908919686998587634909223199296404259771194516727376191648144965172713527963682528111303141875584510850395233591259248328985989504485534006336030328844645724454175019323513873923254824791892900946500992336376545663424598685130838377349969712954185500418746796881849896856559499966970993100880307601747406374708610859946357251678999131735040435509731351559086848783526842821428087552522871142115049782671831384949679147304234826086180622979815888451667688238589986750688121182517215543668702085436793703338127947303609842593226844859787626016844766903844062423192451854247614020412010025112138071767045182408476086022688828213122072907330416379000468765355031120987066727006023448235134818459437323813054063370210484066402585756829906872888141469588981285034023402249632994069399751842697965862315520059661044208536492345756727905642357977511771771611944831604885091185945586859704307518391605575303157642731118422265479821187116163551624084754272884297732402755795704074635730217303937568507796829100807194462890995208399107228294914483224572897142490830658028139483898526720974062589002313439755991020623488343718063574326307431330353741477473942773419649906163157438380004984484846584552997719603469084080504260240795852012105142461924986905584232592067791839929674126432626152559405068104201374755629008891755799621957632289091235360593481643666471956812915221330471594669486590541553154871045073316603669755291512404581553898730915295974340041458620263608064576741783822315220264281043962115061134319066000059473876536497883251769385483996539484508475845946795145754257585802847365065886806172237486498066182657935735995348895720671148516585384068299604004412642505435650412241582170432848446297684505707207692300405009071426260440969150717128775596078628737994397646488971624624783574583894197397691078904799658274548970101950194953078968158884656082394834367820043950436594115308349881545148929318545526553189295271899606916488675736155165440019788285355891368609637606331291399119903520161236341994236397178681683120989168507922016312684196948844221186167496964708613032377842330817242553648909024306233584162120331555351459044775179702922599016011477409482418602900564366819137031851022263103882729026106352168736391242794661146882776225698248018851603112864250113821953975626640735610355909172570696838697287739373894553590619994582061740725938647156182380350675835627218985414710130161260144822439770450532759360387146029695982156305029964150522982903994977380379942956985843474658400739483380124677237115012101873785830229133135895473915847309643118062242577014127991587660498112042771471354671245100869796408836161651537901717356572138359674946783605682143557007838780012404440956807929154405971496572912005711726196727919492135109961507295193070575366149906467296401557005396655837043377528515268871100261943253721187151213602854568191673090326422445993076201500463075889899271454790365501843200643089175077284502635476526505328103116440081597270800695566015720605301434056002677844170110957140973032556861620399223802132792626473820245181335218229255352882174661728815749899257627539147171429007109722459739178555839762073686023454575117331570303564632288237359350272079362472492628492535348691612327630137217509060041084521440549836146899600234316848618383394615805580960909502045945832299313322425294836912784882850254359494459415589602537600401806442632629903016315279932504602698090583393367555801603835943654833193490029964170337153580547410043310430682242552469679180135538735354427860760359236297048675257675871526207466830415295677166897455983506045132111557173984370718724186474401567955305158513737638276195748371644825227042268801964547929389490697295226477761695808128800099200195927951681936862206278337060112019413240420670957841153475662506186434139156362547976399326144190920556502898500405667050206687742283329898666735051624077107763725282172835575718259399972792110284759364393911356066277403786993559389662067339679899281131286019214240395141295185299345900754397499057201160162923846309754287532653337394326767532774480836000812482898220394231261143329570184064668122314278253630334855840108473835226357384805850035238785053725707590380731449394861539294791476798302588989334880915566470654949644476681855342615741694796898213362000716636560935779850284337493632611840241410725441814090880813333035361405154361524028130015796667316388511351592716279884358514130905269610509109755852470356402477318465514045572297322719044126999871806455273908968947203965675856704182045612981601286531408796974989478027030538774726355498267439057235494921751756018055618225329815947653680949099523895154478394420693426701750300961182714411434305609450037127959126735899079286735946012676865036774636028158525541023417531228747725001051043781313996642702765153584412598110376589167145614797534974579054772564985833391172115093888136978741489964143787342004721681182416087474983329315361275695377289874259585926894601430131433928654471562729424662814774371639703642251633785609094806256042398921443008304175146690834557525928599716216691510079568948513505835450991744373008885032772728149784336816868285696534635795512869958054573146203787069061930992612901358326176514558290939664770031866249228066293794522683503941588186179946288664775215178025061541419563973074292021603628325696879649120797855202158680036819102084069713696586044832762389893381258177509889388947266957535927447547210444823588933901088363142787913258369605397825038288667532622842152521254598759860028060245874590330247638214982372428347279863624003124558241612078719001136676039961348348413031671818645838611526308736542568236804634830511749516636913934219199306681546773824684291316659212650564299705208994123409395051604711619744635072289596834765957439557458648669680829535264075689260378886997462127872073769012180196341572117205525426501004146509240241594952024868562382750860232834368020290287094361225701500897370758646170985577098185001508904590908630218521581808230429489024883076700991223128633003564933634236529558834309705914103251982052144962974123194897903147224927056831235204798882519856314177438982770785411046124289389256847245417050341016999897445350368661490192558468416258639373119648513377739223779945113150412200438178421622513587521126768593745881401972552376521888855879784960901618627768149029539350910289983414167402331035626093322876364780693903510781105254784638200810079886122846903252625885641392806298977991987629768310256969965791384440712659084946681283311154445386471862143705930733745644658013205895002368825251779183928179566573823775268826860579285471485280639920072309457030918126665297894618936449614531710099310332760755979499098730577606871619565356828616814605069313506991467001076790571778815454161249822784303195387295583385195734999063578028855306561949288791698477424538467239573391682941237425318497382263260498433026471002232319301695013266007165358126481051384083529556579163624143539263964542108878954160420456612628700176032696996577626629489888287092978819493783309394963869113192275554519560124774722535909304098603167509152422858769638525399863795650332550592395452782902137040669819101733219148181478000848304581758502969587185126137158639695198958473926406024131484833706541465637456911064468039160903175346686374523112486337930443525157501499435809774173279277984905922758040640093702789237040551273528796565283267210266434166537757631301890592490787627738477804138260024347457279239135386906100162771173861812003242216678398870781119990185712335484471985178732069243571926876578814215460416133038029889562712443010633840596757555853263986883974984079193850434492042528334054016065427317904624762423379305857836007137584649982212747649982543659876090794352946054426650704741876436133983737584160569968183075762455745490102863002985294640837467912512211149147479956272295834614971378953481253385648854141125789559830964482972866098510025861957848989971358333904494505984127271726723957289698441837001135579489453657855982309774101737571212117756313757321408097754176294423448084863014229697244748379562230149443817262167524138874065412597252631460264410915861024895120633774368815697963011844113637314161541690059539763733394974933895409566528530597871216343186933502428748454487687745774292681777658205751516372010239647888978503107621039766358143398228610909307652509152465417961857085430028196733824849753238250313870232977932974287126305465048158409727019158760617959789188413455426566433695498060437208520764932693502539110358493954994599888525744634492468316587086136751686568117199212560772849883972922424483389336824903512226510574991156856821352384710912882264630263508889008149523056446439999859395210949557516218177395768780230447340929004974914310396105433140799927886725748048603283976608902055536389600290890690565234190093522884085011048414133744421221606116440481811209568271669632272732940012425802422948452154278337479456578545171413652826649850429911474410146520072476972071142612510806097624699676875339831173002306819188301602642244395096967396385935930306680763821768269354313329283961912540058862240034670289422652875810539954258995027601023287467864775606053634046369715770752013410672308646685731890398455182687888725561746587739958027624651138221884144125043818505249878678573280591716057549386637658363191301345780110371731810243217578206848281968447082731107549571294383158053918018898420615899438305905431893365212729948818155747164558584078390227024167433023355129957050051937841976056037984559397094379603046147535774831610301451026581757275474737997259814619364712373209636545912537761400451181849748264061315298647341437417933267886074521531460793164854983759410126192531103279239761247824392320800432387055706029380036333312467104949965250603924641771094148537204786814123055078269468530959113809254655973935769803247577889547673337231897145619752938643376330683323663607367133956789607273820078134092421091348632121702476044710955043190454273860869458785429392681062710121272000723390601591102639164781319438452360598053954965892483533283430165325140808042984687798305736054385995643419719169050881085811410155948874562878425647968072379080519440316094903513696987474179984263940080579846742837441813257827847196406609171403502078320068361504877956225868788147033952167845027368398997195351640575975655837017792678161465333077156973479491878126026828609401914854044031622841477603093177081179361972797071017333237281451237468914884273691446303055556809072190537288477692142483406750403282174851127552590170180463138314929076635174513908124325109804620210017780021516222431905883917259279656708327450425227187148957464210736119062452499079852387456415940408635268806838137626809691605706805563068230429995220486359631301475940287905281646751773604360161986174342819174319560563455134103278219406817839989199395185015532077532728671750806855674781558776341870394198519397149769557393136427769545509130431594731716828443727615076981649343287319087125389591898396269107762536921687123171959775499527077520551500648475739606352819736544415293941861544103174831930311797931239633451978206271252683852514066433656311168052749874068729938093135742142146986894493045513791047555903092778812076663769399079271491651761845568550067604818639644590430071664506399267326640901058273347618969490059957723669083791806065682237602600879871487249530966417858409935416535089690765408881109013237688952002755553804274097809866611993379058862666165857643110592873752045148189479799069651310161570124321695608430696230414833340872225361600447584796507481832095600487017575495644459601015951350089847034894128909462034489235892070980693205363618848622592897224318040788980620701134669244534847131909323529682541290881390275447364630494100218035708834680925394746188465291587616922013521181529661983888846831519331254527679405924372358136247880853405173484199116396816381891457480833636803647563663059327949157210938867601467125208677841280037264747209779420944625318320309665273682698110491264190427703262655792970733723538743351687204240907425472359329828140053356905701680682225790929987843572596456653728994270513025395229875858099371408342377976994203936622379494121745593998970011426075366900291477899097695129981187002757016092945074339223172943733818839904592493196515014195633083179096693963367464507942945801097392038658151379350526220258156441238156763117410917402069369391110971090488361444011275261297361398683286766963015912077571660556927733432691432362141170888240709590241082010818878518468355016743007698424944699825799011539400731754890859112082984280921558868234120269830322850032930925221774589068345961272634500531438175032059617196143090436607233903283031264666003578648050045392156833377705195601185304241054911011169899565082818019607053973241475361494350613646073078565538645363971223801776910169848696166637802858219324875535669104615563294233149585648379657526365821715812424633641805672742740463365468046759640890355617499429563209559375822406278109830777336485007548078443414400064595771382199107514992030108797155912164323765088660760093630437156221998267116879420230167119983527109732801508485435209556925794429832671659037470128971079516050371053254829372377857945705984704933548338661429905549906832188734748491713525170166454395300893822433708943920231452983664641563941767032304459743743614043587917372405779193484641395794940113999295009430683375219116904022822454127993811722022593795063853826492551488259629145839797643422832687446762718085890791499514696042874662700824817207112860238097804118808885411171730877937715869773304220532797990019245700560176831984808733372869790874420475683074184584284863593781326757135993497965053312033425182831356909281403208805438882932805617115872606006105996587758979688826234910520675152286776556582783593836255653777704465056453226111501822084052691394364600083081291270754148502870243329676502930216214735338050755162696346840748747664006222404877115100112729951023868618865938072654905052656747102705538415220145721298061842314585520531027387907050833389950716064809743533880933900967381064168489923308933945605875230444011763291233197974827147587826778859000791423166258638798071212774979572635423743209428411387928399711017424614791352307390940789314531591328589188194932751904585865592430924679274915664527992113557052847877430851086816414966038886033767961699013004532254954403995140290101861314330074531474084402331347671827332510542542696604551363750762639440857397888031194967799809480296843578457332732054425624102092576053174579090992496698150492483177299823363509884667552690243181291731617884456334705857351236279363710837634786681867612985222635861789947136591189847356584046469592171245266400305107873076787833355070245965793746678905561877074118967455470862970856712069648754412279306761316252190450423329701733794299661871101933587302929705769072569647244464591851366541747711366614219486854531524732257106329519530015240655047345130773608683608576813529798551525535664088385383620861990506018149782704147123739107195627334788555868814148161774696820219520719751359932952854166772159697212513645556773363946391103368816615469934650496836320771110332004502303435482769271999868843174404014274381898800448614783679634507545672197748560451960992122131642257768385281181618810649603503562497031885462670058090325569912175932409481052324796953436664473573546062988284761223649739631228716969189524905782715460928223522964233576367586878793107967109945100270269563330034482725811894154387676297242092692498687892073472495975312823136352545688978375838249106360137537238670528436569184573559196201996970553892447069162365474058500817000360255730302121630915564884592931412259926801287906194112431743990195534652566038479796418646018318567560791069600723375981005050978823381306009038333931464131101696838569824883449529056920531065900262693700367494077619411859248734075621313108093990379485802954931981584239840830558001424542027889915003428780702731578410672044211382753644264253035796499810204494870349242186770350423803604975489524467238372005098623024764557175925641999782034665019314351468364458031075839806465831902421248397040501500170901466486818945746501658568235868528076125879490067349615450428884598544000713797455041111906534445021318256509731774820527650303750340765869337700377651625491823765586894917276435613887431290617872970713342689055522975500742438496868298326530257853401280838790878054978094745383788419824835747391349066209482306724683373128976831315315981804027658036508456350795509141445315179516268955489774419827460999370690957144291346022228518773954351304598976692897050055902767625015936110123268877304302543985973930242750778804675767442998962045226742300882469546090878649873332046896867687560507834763056786262513506899525724419322122833566860039424811807880500638915625622931114103015101209616331825880630154100584481204859601423050407210920730197938849742992879012523342581668842181619856066825998661737163165579087613128630968556079977782027640961807215185056578380853470049898099311971972170287162109800099001880774615716584015065545081167426809471859818349171451418047841512836156107717130773203255613674883760603915750914583674992953936984845580837473034709237480664776521208014317268286237848471991259051994162015912446807908063500451284692376276319021285359986641828179009942594127248273239718467180934207886553354464718311247535248671523999321472749485748502831092011212869793619755323341525520172920230596106352173708898222079085810194600074846943291107042974760098536584383370457923694246301008700541099633255926144459045230396101158865896405470381096907527067646235277097769110743125194858345352562149342935467200866020645358512124741470058433306271066348974373137012521053421823167563584798646220010258473411540889259577877279973730603967347759999782539454707734684088020174031377488709360286926839385659422956914492686352272115385497943892194707576754034016308515256171619204288503418203002415145219049302526376707684979479057361768834926149514157943690197265270323177823803866176135992963291130053446401457486866806612698054213366074694645723838881579056586845781228436092038141885609744926589938557333525958281428889663506532849047786218030126219620030464546572098926789811359208663645137991217038673981646705544715907153418934857138347991633854334024341153789651667186129540398919216587838669645439983102213748341930926566325796627151146931495346527091217833114178303459687743132917049842374013152968851019812611272953511936353701962825087185554502820804988109989828236895711032529926341347153394492181495222566128417866158479423754348949511204945361065777555268767834257781874420685331786501524748118275787362644990953564923413191543730835701132625522836571945441159719224384427579107239060353640995910829031054446943714971653035548016110976860276531102738904539650588625859131889307065351472156539646678715692157976377280727659608682551308400649765434382402627619287097333964538678754959089925305527314425899757301695740698798589333367188627579153223500837238070305145073355571511163856941211890846076920854997342987610518122842143293955791514095287891199983250376244778992600905176054371854720868500051598509952587989026504932196166738606559485636272354315691516395100967669401211672076581930181446823998955279681608259891407326452114740376222222177556086072968118049599528483307809398109218598068198564862625240680428251385689054403251530110015783587973656892075886067926879798909537329494527394595471112720843202808668743350093820455478235550758836336204736339238191224426600084540300488459736713713245902626470378444026339552856153921107369102352851521418089457665358785910335703249180363670062460988169695803783239960383912483381125484303629228648842363347432804111799674563958550205568531487401941383054596182081503882910217007179285016429005887181208270028634194996248757967872843004464355854022474994727031748450879357425753411754123314519785010879145077443845140901504806304235915380406916864966026936925136753516268848132998880323926259694139674376532557163389986843915202665699797362795905029067457262980807946168914423614737896459917608933649003319062252157357169301369756370675832206997004154087914538340456782797592009773517002051016870056878094416925640700757256106609600329242486484726462994804802197571700577671718591795738373176794082914879456824823912571782755389454443273112961234107083401438256854231195290764301516821425152754621697563983925593428500537107374759024392504233886900077744342145046283214876384452433668482590600714560631409910380928197127437049866659033236981821187191573428497131957872918946509438591253038633163772931281755580984095627886364415888710943579552521851757807616245039644871738383186904382678245327588879410226612372237002277850533695340375883674374723201909360971028961727514442993766194175723095159436336884548457336433629759974599557055332850718419994501032279870971042125085134280095170768875742874575682524958165485574347095901816437140901368688062025313942709426671902238261529621524018284964501876172380892832966536725910432063584425033152542265516192047276857638993515295354901985727950488696800725104364956817370037594406197639314492386082328014017534243533444680393969676270828502106690293676605464054320617815318414030880615310321202463015508040904108228056997069435484637271881534649614171001127115615219766388830266825560017663018617142056197407976162650343935082673796237553149859912863685387016074329200255255746979617439504972911474484390660087689055135193294015864058073486918135797816459939793735268981904103731112329952768118934487392106928130912388141245425350563748134609685248910025775699215845957845883407748638788284182501157540339151662981344427664008478741369343814652953539451686344940575709309688707458197048145702456160385860622311115809008469228694817899868861280557467392671817763267854857098184301605599084037434892457078698018948508236695432463214446793313109949845270094720213008376067421079980864108203164671014303832541276436213930247669061665141468569648721147268872835016060315810133929310743307534988123323363729572658558636850121571825424122809995247610248269882122551712194815373862087470574860159200244373508417019050205024264793638007751849827747783335579721254677998393481042338356209673848446975334736904009246079628364271668869696826730706376147585120216135295167146534224894407114266744171638629582192211760671595294992464557832991144656052723235987776688084925670480500233272872150336480749762419026153620936523151612641588082109178150664484008145684634896125921120862207126541763451207779249466228693266744549259143993267046646369544617912132225237379349620159257959698818035780620716266065313176784741574423421788590134723621019809591947248726524348985126691906901542964029666837352937248715485101046259838411819418634559098112246216599768570883676073856906964916870104508245740199577547020077791836361820193583423893139194508192441230099633750068339306380292751246253400838354849899155683848256351138139994547980786864023265788550138733697115562550337360070914483716402440838415615711273970822530196454135940468199409167275318246025965310783769883955779557038656715251973903644282394739658907823399928682779183722647710814756778968197117342960947169396097725479544866046372855966142936859881355508920983287420129243281707177496736876573421534751887019429576499735802736775578949126350669354370133876103675813685817553403581140736578270235062201002908761789543149584109209962995399035591281637633578485023463727216668587937097014207794983710202265787460605544114082679077647931597468589702450582469977919968097763385392733623127302048323154151339330856859494017842344355657794658546024946439830057902980424179443819963474116679264528988022543692556958218567035982205349648643565618893251129892638649585626141214273823182872375925662264625553513066325397271359888374375123867997583772142535064301153826805668985733989003245531464256271527104133425931322661896036491004324127511201644759764518905882595064996006890300214038474236072850713530522367182703954472716285813612310381635108616712618434328220934854372538830644857057458060675540908936303258025792165662585617058067744942389977964114597430656134198843089194151590428985962910484923616718377982806220490923489777730401809256223278653828324065165564425748192643124192359704867476619795811212179661540080303757690392899384382872953976937655516797654473237829919957272973170658580143769404389709650475874263326685045280056113519141445993834420396321098518347037773905776248478478329319733286395907639677198915992838909987030741444294283703659595615019291867295901839774479292783617541083762575794509915390089983886844319598693429655054862013539372193218609710738071057079197102796330183533410255383440410178911124675894909949111380841934375076621248835249168353439001208720923458954244921991334028759971500633848789373610652013459152819700873592826316319663981874432655694668775450025644801325912690728916153128156885530533570792697363365014181382463396418065938035336437270797814806997237273955280499782932916789309629008045127447455366426270761102163844605976338027177128766537176151636110974624520275256476631846652068735623638886429348245111819033302920938657973306793318668025390847580904347242128339356729002296219979908969536853512615849827239582741100670785382740631669378099340909827076493759197863261707945537617309989241265406366068862480015854874096942489432117115973691212522167529030501653984986439452631904190478806307610409600095214019899120098475774597871257571905329744161069982420356072775912476328984488696898657653489488823869417535664351779926622193445187140721838499087545279327730545591066236491673483116824971220876087090001308662468743445689884948135880157621457578405181179772727477007457822241767555351382870063664161122957346487668930727997540328992832097085894183583165632750757761825574811308730081734246267099859057481898896677112553093793526578201437989756982619947365255138114028828031218465311703109637610968488958422667119546699833813797091100967438155841944995192548435792254431009047335697548083814484644925000916200974520024683778836749841233549452907086057914899031664542560780055840323493691883098146479186933203148517543199871001092273896844455031348829070774306157063476264426989744453133839403845546058146813229838617580652095296885691717607546846187872106220775244296426076066434537585030828848991213568226588403915425487927363040556346520727456027058860926065467802756889808434757620413865033357856677797403910770719709382709910040300416744788998117896714171957637006002779533634197905394416739437015177346731871455960401054466999001722117248361961233541512027561563176494177588168022859822052348078143871884480037445020420250200576398843879988382457336176091719415072127255241210906931395078628380598964056999629021919863293727699195933664703198913566130000418852392436190209500689768590582335325519898322355756371484273889502948365751701889303672128747682231595407436417267313526866943561069895687851488569274119187010430636742601805242146605210502624276045582220389433157211216192857496280628723393122134573333104725292994096586713205437955545771055180377151641036821552597554418341363800586582946301911767676965104188911949968451475245796476642985157412693339154517471746392369207268955147313546735469047495442324464168777493120577704721027591029313696545549604042995124812897538424370202972727944489527945526900448071955428866794825784136014315573097788760939738105512066090269905881017256182677542422273189086736979420982009016875661921155371804620979442532462375170659339817774356205697937312856781930073004978729063751466332453289517964190104866080776947706897728317065767057584326867710388678134774492419747970862256481685261683792954004918925749332065493172942539690268258088631280816328074407688571989368914445447847349799095654244411883301820974480760783311602869904135822620469328254594920565384691628200097311463800626611838628697065118862350033358171675710939764016462053464198123982472219763881311323735727593660135227391588403124156090869212043093180624764121589522895085788634440680720703768034895503698227686979747897799005737844501604986769255006659445916452158873004462693390079191824285215057708126436444140669168665985189868730493317685992246002351280062080633932539581027956562837050504102171302289646805577653594258337881444248545505982777154628155109733359765364148456442905293503561400774222946954404180325135319747809226868344779397585484112756767072427673177687503850091908822264669928119117162891419250032921411667260585740400789052979889598906107188599613157366405705551752757296214386908450935072750399267894612839296047478121991645614105297088546785120433473748854257114648951125019208305488867177693127415881005984690972074138761033839844347603906004484347165294950467620300128698361809708224183019061993175071186373679878999107353088379192047324805581674804530216052266542593519660054317735084504405561765136963342994470915409568941423186340379140960909970398464252114203496336776164821270525665319228902753893123052625454434147894315733658950794587563281830470465279245546235149672255947791873086295465196996596477223344627001890471375812918335022072771501708890968064649789046370653021081514723267524275023206262000891290248893694625471890614647157993601455573095469588640945057861386360906669361154326065026608832316359331936890833943635605316802411827563988822056692416820151543815031306146100308551592057996738607365285750094822522377403263380947445440486791714116562185625749985176593667598171899658729936946615126775533722431501301896519298207933523831963525926426846292698066420657941508326166232832478020208591904893013130907757862551543238865763962385987080937499363768157119812361159366153187807684591722311243158953912717654856162999789423666205187778246109609776135389332232516269996693778577659623160283410815237122359554521886953452244780830994440503404080884591541591218228834078598913254360609303416758007921694292005563764009614069468162527964930925807187435455094336647396295562646583715941107669853975879472908991985647576047706991779806546825289128319822627567086557730729174068511264960610969727607118977526341739040455188868483145033146563676089333075898024264583274073423529113116774138137379371677584880543565838589437133289245329697893450495542637269803444721782395929829157370769624491246172514672506048862979552868990425537266761076011950242778474296962637760235245874677706805855602380706295801090750694172965275109626701515849356279561429777368571463073715366522406131456707591347490716341656302450509316446553958704079358458329397381920084739016390625861931428096488184256347156271375508538566751587491941402698177674125787091811660374984565574458501861911564720149114708940104292719050036520937620116076319564084496486186383573525487381541976374749799679554045728980366479437790702976476734063940511267291140064794805295873094948190959640458355416460024661664605668117805402037747165890280810362536566625924324601974422712751810253530892837122284587825596560257693989445115983585724490020213331952974367975389110402335409125001262384283711144237108773523524627983549443805091302912948209502608043807775306590405112424151831742477122350292691208303397557648846626472395519535475570765215202739657253773301067033598195424325071571664120851162353410694105815925682842499347527532022777604969934406588527410455950069247413943313377531975035654942139180825034153078417396745256720694757484041274130964685048438190439764315066728472909759454589354677842145858054287969260326151388205272749189157579637373413119967347917572208314544791260013678856395015058164263561453134364407561871695618596120511608350194748696638277610727572837269110260981414130410239553974336468947591646633656809999986682925885651936058046524780615215425074998841480262677041449288150991333962712819778408415072545567817821219137804046840455575596968577471378389644899703501140844443422933444041563659575431813174681178214111362107164110445172869094435104479391635508293753014396261035474165857242022023864225924735341417252148093812208623556680840517117919398832578344927798161722131397337059946066960163095231206175721475338134181529459102948226778788232285940093840878260374142497930826997436210320592219213190232378764013272499678004589318792799526834201663372127036226555956685342596997335435166223568496300627730603805738557392272948787901398163476441921824423471076187542708952446341010831968561742316353439830673322894789599646716513991884892039475755073637589259443699941526771111780418291571648293352147425069533148612566494479722210228105012512031812267387827488023866371160378168211010916578018362960518588026405750806787004080102760878239963928831674322628003933596663215400108313927425031632276606421996899542963614643245809259977120283940023994262497869072030020360736207069748626801170872466660532320965814963045808038093823631143029459321730474665792198944982385435589702427255854487158158761115240341812467818013427445669792046486430397098251327231687598652826366411344041666769889858117006206909053939382146240020083354821268375143298919232577674673123957168368809175963476237538975413763762892310276147733116265239021435068479103421164118211997692025147785811084788125006497054067785198958028037366630852731556798824431853448095055021804427376199881304640574561896944780812022168018258314526920344774281565472845977672429059521370073837410354903455047379326987805067054460011679535301236054132449899416689846179488922468845977878174645993010227328051887612786694552279668524226130448500082660989472625626771053494157917385390192743455860597683203072619453198572029780377993684457937659602532227661896058473883329992426093712017464849436123043682442683344016799885374584285543513291927507781740522150775940236660810785843293487775423444826237088059011688026082734435376168639718446740903382258948883746811903098422959018418380005641236104896662772853076148528552774986577957707586379151836324820496798498026074306316917950267296953750940055122258749892380230663690949060425045434675941749486584036266792369123549214604502635511092202991868641058497790625479689590998128768873684524969508543231989868305004346919554950403769273516989315427433553140687937863024743311152696217946221447541025023341502674573792975234449739096292839917014690254080309748296523562097420250739576228160056565068602371444282517672782563065360235289513750009262274949222660934427674707197017129050778289063643877796800143715160156540761823415943374410392791503384467832878183175067984920265372275703464002869168829342601941080315946074228815185458396860764083741170875077573568638228775807703039218015324352003604891893582836538483540962173481815759414648507097132077885688082222645298239418948877663904908222360573561543851223433620120504411447940009211870746524514773288786307825827965655588728657051970535453463936150898321544056403057116495146554896784290383083761840256202535270359861104902409345428722566146903652917368189652887483591751950284359399706876358523945638940522113887583607604884723220227894051073999640531202994886808553486745081911864656006676958808627936616994880599043339099767622975730452227103468987764297586743302878919374841039368606756917454458879197903998454924906081784752102990785576370534709118192467979170581462040467892001445653327457562490589241578872461782867700716545873671029355531952127704853228996282012896488265135495100276410307555446471153243221742073693477673915239371855555814980897056569029875843152821001877601095737244596293756967178230923145811615585343906986860842549126892000422396468908541769726111732654934938715540104571734186242724326087108369699131953589453689470616208205006786715280891521686036711645845780734419284732405226921351088570414514634458042913388686495792232181947495480359330062745135382966167936077830089182049115051884669692714321774013796337317846638532798671566673450657319176696581427388809753805791038009888354830526449296278467749542204271090627793585189656607425605409348625885568921724579751027881624251488333594736172583683162215225027632810183155689529029489694194825279042779392191339432904318550318325737733551175399058380155598187013532559137549444148842690044184142150890934692044713672199526570181342303747206150969638360030484028388622778544186304608501714861631567059704842206684643054515354574690259952564895386058146442465705648103646568505607333230730374541033304335114843285146097472630574812829266677630693430949447314557972946026562356819580071376444316872640247929585638423159781449539833093220541050801671919463437537859834650389089762764359981433023246047324355825511644392566502858697311386014194716562538177084391386370384850532487524463644600002360118243382863567217639107643044318619255273794608030843712258391604589852085902302894915455550541859133964199609907348136233606166320762225747604273181539231834168949352045188993945531967030589945559878917291045353749360913932294595805157173189377140338164935610773912299603767089096664054763209139194707720350056019179614808803715216976584304219637512548746644607910187651211641457818499326131893443265670823793258708616979664910010717063430018521939371413543104741675680210038754295630778472875624220206253418782094140283858259472789266902873662397703938834470584755462733164312926929475501535867993997682557370765676434608894584261928232025109236648422933880135647452957922467471292213857250536119445291973232745664447483788335391914962122728340825844888971382857930805065527021310619310814949824123007151567637194020667085222217025522318833020642861381546649219743490464919434610150027082383523711826181460258075107278154812777200321783936442461713722244262154535017005586300438312231297459340465257730572975703760598078101495050789706317339141564078034904585222358159516952724315769060794496008505349312766097810487250992778735735040710403559274677209932615368634028065722762578697207486647960205304188349329462718388757264397378602674138440909394377846393478596598072527548612058342773837042868019472569768610026762947247527896244219561066657073262587067219647102965461493680066318828820752623182413350301644542091011227191805528861223708820443801309138530772934331935050583015635485308729264464161289661001264299322920411747352724366388813687921365909439600328541780993777730015689330548766116810311397927091403737576101316779967738466396075708924135699780140676600879038935990961110855913251842972891228995761879673344711851644641145967044704766607370301534220491905038054853445012186425869078236481509540648707161129201294663896691172896103476555867456685449294810383321269017490262108968458353509665510376243875835647001700688861976770586364514786510296183384308502859590073794708022043279800902704038384525302155736582186786656763260231875606171138567022015894007211358219751613401264931236592301232024583928056918970912266970827185543592956615235756780529879707504493377911959297317810532866416151787500225072570470118463054356632473324409179053054254657767579726967900555633041182370861190439648910903604870083114248028620891506385848178580381555700321047300381206024364511784637934387087577587550716735707549192998748520568208369335064899207292726604024320325803899816112324229754570255714216467485662161353499429394164636580981554260590152749245483464133936701214332816788512502409519368865381989719674398201872157610681938454329609038855137337667131265493140048532332345427940968624394027873632067706472501570903454918798457138028600947956091163585811169551168870012515655145010490152089753741965998034691626716061236062586641762002890778280896450383562087009981485014908102048331631236063593258403526605777337213713842955266943038453757993188352920909321279038863270033890089446304955822878538626650070866714915549022675745145775940032017385799584812969551212244087322898829902003861550450904991143400201536210616561262110087881497004676631901106337408908662391068907955855937566497418569863026883118178152972998415112726310804321603466610065967693110241864742118575305503240344355409114373042725486535932144816234075429738551520336318961515069832253801606154019386734379447559187556300421388433109889561542135238997024951106389555985074521035647029036366335694603749394064759292781467061126601714328884948524223680167062757927880839344093462779880540115799900078117591951700311013134061223287330177900199190132518287816585104058718262192128962351915865833767498053047604683524562039095234701230565316350764763517055015448721682968262286445200806796429854128689375357008022543663211614231221421072604321008205052269001697084485781480852150157223478282755165484153255642229791486062022372987126021034941895068535800804603856008173195973235500100300659960534683902862588908934610758776062906059469770741481664165968641126952670555620750406178760133140515506638826571011925134790454679154845203188968301994089326981078331870048954055759530139472845335826068283680857297082220136989094083591054365954257806551809335297045856912424424948969114448315802618834429286620128506125550507956050478505383715968107637200956432790387265525171325631157284242352489511207925265815598337494335376713022184464154342558571956896088413368274719010012237028554915675694502580419807738718752151307950057480453332032374399135261965406890930322926106752811417481686087717917907629368194447832669378723716926708593106649109633712162520280494727222411909513323888008291994503519010455238762353879217940887159682578189415939530158106651394197822901282874622934943796717755184951678876846383161811004682553073605591418080668790191181973635901767580465245017316604083994959358358164842720288522336237789652670556127291301865838193441382704850570911753331143093696403946890951476364543076051284507505179619861121696321175142382178491434540880327188403786716475601399585505293919128440540665351096482032530578091987362429903596322497193779872570278436880343438094613087379528952061579705696221956616147394401931781561192476268534970708387503806882849157282640174206580953773914060459886852481358350160392572264611996153434863795587981103107660433539474974586280853092850713872387285405828066837547333684501185602595315847330840252789327821447185686853874739804302663724919435043874470233913806579301457959886900848814454604731870364486074764420459721093470378712349405132174905441505906831793839572054836295003018798620452506491605459728900374844607169348537759679112386925400874308397034749846106151450652559537089847111290089380138401098369820353356150383960710601646826844708157873504766366725072022934509982287713123348919412142240680598618861953708658887144575942272130012593196118268623752427383053092997747723918098914050464490174573631012973185241569807981935875363805673822794473494165367646296347873060068489213135302630196711660488766322923978743125985056607943996061581592455926857741691509365975123604218230396802150923028812900598797829862740212723916473111297871484930235684399793827094338220657620398667901588656670768019820858720946190238375213687841340368364941663693345236173337350926633549261313091869069058679258878093553714337954598487349549258631754889321820513203690715764731565086338957312085356317702128584247095953391716562359771247996689766575867894075043439286277467229380737501903917924957119044257610006829648164710194607738064871423048876540891113169247352048958275962343753511441216226417403055755394228357947214283956083124981948886526803024456939054629114203607694843372362163527804485704989333872640983292346144328666520113394901786996438514628059005648660028633777560118271146321270627963284907799791714904803920056124798061067486420598914415624283754493494402761582575246918261514693372151348896506560912922718438407444920125105180906426430952227404954343471501573511145457406265483180615482400935763466914778017046140146187181568733275454312725742650409314787110860891005476332164228754445488340781243271975050435938094401647212435724491042737522142724877708226220204176375335327647250343416314067448141258620702307181770108372895324369777348671322442519658235911785693990280075048594178253711411110822651967319839629669723080971783785703120756343320768449686350771205847671759830508619702833491602149409756210575003686320073724676721483958912234935916586709678548840293342358599248260669483904970595181419886534805612404769594511437178029776334353265856028950684187230372288406822115469512131405402601042382321112302238114159751134131033193697587077883274848512506044070850520600887276598053396845156341912007774405553835582780459420518462628160501333416341511511267805216047825452804460793572012468416982317893296960071069731147563377973778088224251423946260508250368518716327811306223525391919502285932367231634915772624115938437508373414205197034046614179395875519074537604080885047761922201976555953301689312044507909635608463695352526987863026822449075075726268340585134484235189102842305184326638612887207518516301886382968395234124918708443583734242017927640579939789343476633631182641492775460463274274003754209001204133586519301148760132393443845496774837906276595692692217712047571077556386231991213819891927145603499511022118086067138913554020546492353968407643118173871921674054851975271716289633267886375032721624455739707064060845398781913461949373680999184290999474976246425494530515005013040149845491488691277911040051187564403020364024169978034423849256454665097552083422805115222065673022371586795614641471576680470883688333554826170085268756729398603811676447596974813163874722467557603753124951891827475186712391063749000158645294525343799476129123325734406755823386602106383891036582136269659064970225353313552248564172452078441302562452246777712179008032569060326664202570726240380020054749456740218219643661243960061173273052610944976088378300056596710359573558125702903619437293206900512737394419309658610507145313527738294421635598286191747712863132814457518168038338545075573441279213993583121338783285030225031053509647072305128672685131198236820114213516160955152673695488425345437443486249671520187629714826146008262010530790625223423580947658322368033639659584730178224981317526663962107575095294609055541691507658296829243790678049035050195206557337717797357534139149346407675167674577052775591880160653598551854516089521931981921104440177425270432019583041343113491398884544538881895393576106570812628858210268941321763190526066643175423658151484069591382419480744586835180595214064476285299880754435522229326624564333972308747659182770904046439359467258263684142850505987881886183627491415461134218802087333235041663845897424314168038404864700339843174320874287021608617690419613560957485816932025645493016734735545734553229311794285781665886186187103940039630317176271781177594186917877857890863141373928947837700240123884285729786877240098648679642064082292518175015648575383062643583774488312556108555141912508470221114498687392835872920592421732881806659678261081915218414116925882801747073321261769823803368409280898192154306746679429315534777060791405655871730015296870664616035603513888158581402944168145950795684789246307658410874883189159659804679368700823818593173391439956113615723383620309660775425937892839375072081146125492458870499367679267829459980388042453044878001583320669992770586317335743953164502156398403167830515558529571715710714904458361556058762401548243554975044658566259105932127959503059257015932970039342851757741175955335560330669650533516425648562844699644078103703345688110252755777066517885273266280344770090479053813624326122902768866213344838963260808340192148962565875459018412706326523828680423613964731313123623020683491182179234810885000278483373062353238922698115352492591261722330999436388734107685829954117374912876941116932046404904595589928125566145796371147077299933218396763780628084854561701103331927432490208924526492009573610171204640204373428472780628473881850653698528712650926478136871821645503560365318732316319725781914433613550502173968262248508581231020610850480395063948357819969610449700236092100685778306263272460299148604570080639854502380599469511357530222867778811402520151583893602867088807210127912315738029414750701376768816698633294527875358347784543188267942473781509509402191115984417894497080346163947428278918169011337726508720880209221382855605778140747331679772138821413105994311098134824284943466889285879865064827597919431972827955014150169956147474659744045091505139651458880966817032985764942149191694191652888532383855440107782986084911313099791840034447820146314692150581770190227370882203862405393161637258469721474563001491606568109901049972698838778727796728578066258198474225951959718704799293162420795779603689157154559486746333678940898762398225797711901622727606079710241773607507161972431113156410491809554572887550131458358003660895350648693545259819121527063599890780377570791082087339236944605006530434703595421937022508911482362437353857200919657433759134905340360091156931623183916226367674987196081697693886407558187605437228961778837642129760599809103519660723448608827944287177214141984586146284633113446713592941110266828346621928172917924212252975450905274783840518536444576168715917001529486625048690600784038591215422343132491002995490287105014204389505461277082926060920361250803573465886903202092962390597225076745406533805656084961745497437092362989565902545046495071191649999955680482559745771552116057881209397943930535290260198115847356452636534742061590526499136655904582361162881393819059410619740367728589072636563190148920391993313863234923939696535748389081979099654825835420713452231315531880966480582854272514597926066617229622621597036044578649358997052109001137266178091200638880327081041213721056753623067475701012075253148183596268502858913419351711630240794130355566283817297978855221280046949283506199871160740325710104479244659363974852160544630649648083635062484298924108762795248068700109594151686072929632059175719144926796505857093197161608060089803547697481775372937846025283985278692016682928058724933394069210435435671570933936680650390522261571242868466456283995362564000460862052634631369430839077094399529675918732079628404401158538622971039105430948947386247709571631616798941135410045075477213416306431753128934992139769239302744904040849416752858511696313268647763145350867662938292071540303770089739457471739681485608093676997522448565489318723184884407498670947351931996250968381040707741792696133752137265784739457383683753863515234004312225775702963309185971383163763943375973325082472643416477351042646985987499831661023485446234748146212171496945359536743563014614934528706969585342441565774963582221116594383188020844984860079919806480324899469547603842699373809505899503729817563846134103276586755484208828198857398343478685368482103480459730144960257783758467485909855330683749629763209435327675944874973113784951211620902021408116907331220356230839391984321437650080389614570173878946584034479220765484923455122231180219226824356758133633619170176044842317875719486994097272027457421569303285075946706772833641276369068922432821492996454939158185016742401575130074001571495162698266767186466560970958915631755946862795402288605837261621493806521207082571238641577273664945757616177564500168367705938290531149702304024153047852235180369540207415192807841065794504229118150450408934610402593523867749763670262626136199275450589005379881546109352970622907766633941109880859475545878289806598579766568848040935078607213868331034727673606729939944163320074527375159699842049762018874293363572295740783986957090224767623096517277416098717929946073616458457116567764263999058298354830139110750267094296760805001828360591746609501562890193047674549250344897038177469089887069457128143036811787274474303841177015622682893250587872874748140871405373303300157332474194485929501016068656684426774543394434227932019585576186943308993536576737035339762120021850249401459581469153605093185453307119670209553640190751266032315151976360923275730682096789958216963498046278534107992245887991575543373474254807901992086747112352667903251303057308761314594308629091550327407791870960237690022637524700750611461370484169717839045785324914174028098780258157491248705754444005252145129464102005706804580001026200011862738874296121621351650366456869287852376636982589138233230762443174764797415519874815002544839403346138508358408169546238280973923845039726380805443489853976399964529589024494793008657548415215323632371359127970632385574306731788533692809330997467980629947442600757072583286357309080837261841155177311042180753046615048871012136738044871045858675461894247955163445161291689699064906900593839094175094672947215681310759429670599813996019340711905037044007405634696919644233727271896818312341770259358140189154640684095779259545233536282344009295770701589940242535073361440779283323513173000523603532616106821625920202291134534940049089817900409833333723768902217962669356157635937545668875932693557151217222826107545242404130267290539995839638467966175438666589894126293881700967091579445807700468232687662440512056404331581455836407585022027567302061251464467899118531967312875678983789237230043565300310573863697878373920855432740562257832344799889995655821980225621049049469172653548789796642480865312725625044691287747151249599131453376310112752261035188256157250626075763721785108200485346210605008203891517369857056390575310384156399998143096709733867246521980728865107497618020620706441954783166604790273720522719571811387137961889308936171844872882741782737727662516487021020759749004941116143548816087682811298989211339140668310332560553289169047308885750643913111492193012120756916363069011034705894549845703233083004459916631022591279273045358308866610032441689632644379755263786067844478575156951371056158695451497786116793446711137034538474663425828279808229743528882127774346832038298299135179255419027547529001984994244019427992170675166316334996522635174568302044058233916078472394313914080929801182011722620526371000895091819538939484136426733886142963954104057846304369477665985707300245438842717460904892935926956294887865749265077097087923562010421646460069274441880248489957995696348334749446896113934068549949939246262915969841350885193500647659711170117578349380504745823439506372793518730927112999860886764054836699112381113008587834995392117888505837891122853375569938156639461778051366709615957118223183942236258896386056139061300112144201510792006200537278616777021441202633697182600392052616691483184144727524199883574659596879195518448886829435134970614846882901713341283117119783086139723498783952823988248691974455458426953447268671631793701265868403415886200460029682604790126675354883526339721800782749574425431953203161757439041482882535320550323103441585963108386901923602204897458795110091247970136137569137399435767337981672992781911707254108354397266502441067346420525230932050760533274483195723283740301822893932049646398719921080703076228095258888960711343913032792110733443371693155524004637637068015933026961902311133782933733373623832294302582200208902520749467926993227598780502239420491112790055293505883511376882751674216281211238518613711480997942761624116128418742054565236583743230531305634060466303927736408809765061914613118519585031165341939410804517115218786211473410932283887255422351590539791130782485364882944010154763131559369996486186980468537493885633628772467608183591942346072912973460581907703912424460226521700601515315254764389292272059340342942611968532542907628798484708663252441548841017842919957447038799859282174384036500782063374314410445306299107840203863835168224337309886358218197915661714731708346126883825949863123426669882668538763887116798198830015025811461066284691782475699990743508181008012194766308600415534093686021105778519375545339778999116614119186135865439740353688184849617905528396428421663449528331730386049058518555425726374196703625669845291466115919711413079990883847157813653587095757020141157323596539929094509723593262622107071745570212815541420749357600950219802662366034160512679265378082615411669381009364595815535692703537751100572055874028000719792133020256313399927503513970458370352063534754100821352863609576448889639193560301224744971000500755202702937917757736575669982938635282832567135729626871185249974762848544927766691085250589632798781539166299780772516836589288219868172192249956069511277024013617396405265046194016120126966022116211120217453244649360975741851850972451187272838300834015671867640493467520321114962624875151058963749516752375375073104655054090483890476782658497197635713505992777204163448455330959505379715519528615420590897889589751905009735602894694279395953664754987875804036389161128364677654487676944072849694822616449814302711944585807293120415011945542815744236195050588589690037892812325407121173335656882423558957448521289547128390986956180002878618257422126347844614973688453903692211750012440160768012325420253559085975197839297720050602491985852729164990457285398674060873040426460658144812418877871849390288726384409725356838542001363488376200262926446509706230881750513159472989468266888525498971159804230979966689006235331448816013744426957143132250298010972219781210287245178737467111902596591010501999183581961734006852303405824154756433865617886785005653077587186033930117368579110375321620979210925932128296827393711500183860515947155206142989141916609596469061758728212153333865646688774471984344384927213300358560388401126570527443690251811574448998517107847065573334032912712049009663799607829771244463439868455903005134088941157205340694281954084866331816697143591030044585251200902610559251436065725129773395293024668496226952772589418380577541947463476954679281525667674182147241207216697144208566660139588761090164208611162610551708282126146741996079017555790247593219138585376721080103637169321291474922030570669015458972105261151483862360860065730460896759727435052373395807907832401254195882182748568270857594729386175488278094513657559737562468920060107970980949256030981129465290416050385620187794703061958917388868196061105996634200914630407110118448738887903733053992532936775444062197334018182128188430220033515369832208130035027237603755493551028560455576699616714056659640231153844888142117129241189503455145965439566301418259856808607488691835172594479810873610771338397823191646471812318183139769904904629315009699318597748888316669256417130002883920278904985539972927583110929609275341279112801136329673211522439776548888531180277332121570243314945096879089056133418617111911796979390113302013217751404018669744568821823302917513675191583205088416414214793868858493337285766216560341746919408057470508864781538570144576384595376897670729008803200905537478676477533043059438321306935495314865166327726351387706982902414836369858775546584588658006087973159598728277217773285278289796855151071624067784001088266951314524912987340380423457335601289860249994311201652141362327291584729540744247019499977705160754387997452453129247457341784578900234952549529329559413311252072430374676347209057009517181100054859816392027805078102959026966073528151771729006818379660716870205736898332583086120786594020998348017492610772017407017230607295844921767049562768827807562470382965923256985092662601763843030237059378350999131559656148136756828159024485642842299773894503405103217146711573626961096763691164865501398618883510589419403534347276407334177843147966303138294476818188655680154226119909335986694408106402523420412052429541517832028310715893980880223024435257484530221793158094576017614621877201504864796434267890799537740001643852524215919857922772641498323062281845069229425009495023941509977982769748276207799557373376880750426003682331051838713588938664404753176617147998067897696648835229751376921788297706010635242105469082925142784758976818624527639735303580406713651660181097313841399078335500169209039961580367149743301046612127447960546059525442110468750562088240998891961913632955665409639933741557633646637705007111648573116943210208268735278516055195660197284656792867162752398187200984672806629070319860243468491497598918670675443941958274530067403728289826383874604527790978394222871995360418483496666198071954579800104536486093032963529747151346526364595458688315227213861707754815503400116941060523714060621532320153220644696191914131181600097992391662772473661457343362758305806975818414671594519281241740855172540399425244242457838802143907641447059863148194861985903437354082018592233044583007637737044433655520817767332566171735543669352406506920150042134113420873232808290394504308310858645385383158636080575432724460800451344877479893480165828109686163942272409626181180270161697121992417828353636393825454239392588232273708643313462502366054294502883748565680876482372796270810197007520914156924296662406941142773894100045351304897837543986087881477943653101513568398239158277112924138939151683490640731089165636841021207571530163629453711663274323284360563372579065452586402247214359090825790600519859495038699974512447507922332393708293824145627192514080163848590289657054441180768905617789422694330258369016775022184558273259808927445407461043222357886336888334887994704713889060751927504264572917347021726517612910955978643116001471888141963465431466123303237244744208702098442508108439806935633093417284612661449721094903941463157195982883984737823906047464856873721280206039064794792650488759769500732860932572912136003975081699213566428147625390416823615013299138717664111303034009066516724503085082716196950180010575633010512434779490052811023010100976791093398947723606014034293043625164773168241502333558975679497671747067165495346364546086526437657975230350304676156776375962856956144812049729905055166459624705252587213366915199879736537738502095569221199450310723417166215026797885980325895231840615599417119398832604492687426811547879250756494783179046924328358034837733465832042415582627298045900228360032069827956645748413937443378746719709124075968342269381345170835418890578748699069059728677405852847708783459270583294817995685672805901015012343444347354740200815188336210737822328481677968934632618276466435238452571893661440005363669037895213834468631644380648884209161722538074473143029145716977182369501541932420554528052682094941786686235784647525146817705473798119652838121016179985417174599212372072200654143871747616815875461629994458550237049176391457037662940865576077303432040531695541878755716639324976767069832052861553221005317406106590718314162252462070051257299921676132973755190165099805869465105920596531635137254442123111687617582056427233506094599357074747067721158837812981943046854721517709619101818449959086773473261498399488618087291530363830297595780535385107205697601854972551332639488879800845149878991924316123097308350230913203238060741289029396925780937355851244495332308709230121937135512530337485004796367740976716232557301671915231669819552304959321829351877415923155206205552393960753568037768799486469835442678139174656101602568091709868587170368176627851290526808008184487340176361894060814984272615843885852642686610227937436432301177532701065848319701187272521274370803026340200340353384515976344011321227661152228507795866373593281655295979263020600836869608055198116963276952824239368415024893049412885910506956979676145756021040706564672054804071479528405149142326033525136112178376046592622959254192774752795855012514546936330262237613135295534443228353481482800093961187417562204426449751787128210845079608406107638771790536375241170376086885615428855436068376102348893459547669928774598553058742991088468269822756797406742095700227586561852493309925413014092572995161786703711454608102584489286853236484370181469173252438637828677625307397270070101748370315828373525463539842043377553428149949472991894727821452351021016797938503167024753388613423095860349396977158741484224739089658967578540214332714663962083767219810602412011246111891405812496619762473759042456659764416807149974968337641122102642031791972858978537553089793828275940516344565763499673469405258669269552609213948979922506472080604129502851914301259861270618344469269287485041384893939170555867970081547216086847041635794166038265938836620996971182307534249681637199649650028476492408847231684497330048658386172946229137760907695515144256637818336644688137210296870132315549467090548009729452321665241695324494649533262772021985942047304005771447251092017109563584946909195065229231280109950666939148899938237271111542762775030774455682935977071826234536967129881218408915514079673550315095454630863267930209495688860526522189795537985049790973783242438108681881665114209818743188086775910078583428919743059191921743212058641866930698843118914815337194590400827288792722875453136113942636659705043691154594130249495518764680543777730408499728648306905755929807525996717974030039603831694272320707595425588394182553624880600206671996756371878241113584233866509368541089390122638325838237867203216829193174689894306393797343179647504253108960334308413277764171942610503001292538193066493130562742862431373848560474355360366676397405350250254822330112699244411062711359561204365119832425383350499948892156632111928204479141884326521903754259459846257662522022743141801670910858344596681553493535042412667019780570451092487763866890144662534476905222348826669943964516860858840524583259895135641271762942683113574458274288621982980365501986749286268745346891728950191802889332336759591687883447178203205615721340401394518717863794424795348813642609054702417594284550914402378663611649253703254657883783197851214328049538827903341842557689117814010382108131719262137290957211065692700435565920952478329832214401996773780101797543564562763654080529488514558105891269651761717459999094006915886952469003348028855132249052987482308084691765013086202477807814122937566588354085704351158844627550132690636817737328435428979510339982078503231173622740436281760500854336665350841680190328619702453466081462459675235074270054225471617430164296629492906521132118240114703387995250392483009134095048883981284843751236188107805355700136926461686878358845526445639399577825116841878738558091439825312930128960610386595606003302516354102678251006492849894390415277974084162861575174452875246493647367108049712675519515743478160661575863863295580515312382902249960472082396794670764663405865459708846403778063122637343425091780952725584553940554957568635906582871261650556229055669652288535604644293997174689194416653887315963940312909332769327918302689988444131583713737699202148213831511125679321379652622047428967635014995890524106679741188606607086739070576849905715952732363510001302260740471232657560512363582137291745630396247813873337581057460600410725273129686967353626256432442932330455071168471349819241968539428707335720928712068120765422920500959585853110609269647233809432011556596940126087022407630784099830319274841877585765672531851656220487576943426037509796649760781673812327161619755573908192704577898087368679484272642155277266864039666985018892490387878118593580129849605440212256367167237284832649033481689081791651255928800437813565537602119775089495670281456227632015243342052367880835002037622647064330387116748792844910949233604544810747365400726832248306963439779541900403712338907932009448041282253147558429898108801427056384800651399178003432077368055779113726681801388466293092671665400442470651911485112894501525534398828624026762661475038532750646233277880584518320220569289441919415263414524602675804803681766067257286345406189684363040749814309213632739710583751712726599754102149958349767357241207104316178079632810695092431843188770450917534287541850351281681272274994971943236330336788857658727122401255386709491721725799087245143179316531200297877050213604520293741963339205339706744535300499842427410941200155839108517141407941044297326058812876255735202137185495261808924249326064543730086795924605724305634747916267339508388263557745549932678753880377735864999858905639299114214227203281404713653709138056757124835000178802037056855269944223713016996250514755985079992560066191392146386612342070204030832740934214789302735723394523602232937907732528762464616169875368996373385643488408163892880470858860720635216502275919573922089742440656869705358973796823414572658887507255212104672904829021942492541039556256133517696522561952438873879376922630113582310991488522429029814327630912541173353588981115994915252993636568330436321154917869776503223008647678399536809764957864862129860192358895910478829147186486689592589222288543172096883257330977918525061632289819394733381245643825660195408341970258788646441815652883381299352237757563366755958937302081658262838139492800681697492422454703073400323684704132053024752029840488546719455195133688316293172013014834131529876338585412144098661140719418980029592895738253774013617881620281720109124634739798395146812740181619572474496121454342350286653959677488767418420948081121156250819113806520063025344439406071056075097214625453751264956186368689594399798870397968484920569862052933794268165477018273851550312184635131025615342714045693443244420990733250695565419344404227171647571735278841039450797984881943833024899466581365977694124540283332328342684256684825075339172601015163666350918662599940211873187534104602331841879673461812208380726043541445525023224301150166655834323298423679501397386357220718431901604576397655319831714653990459676997503493861088555757566163702907978159443894304225163577212188986154064705758588601849192904453239300389811149166069945388466667492324742223068620959404117076811192518357141686947312412684183234460158767296010709603168742511380135414524029591769666048506875182683906003556009238542070143122909653741548742691749439219299027575053724427982779284109194790314285134455951801019177998287911299175634313576802912636291805813881976428532503950432373888350188083639015014300777518217980128850565822826536304641691697388205238207046003197472500454497025017729178149190835525331236915100567321246119345587202120729084846176020581452389908561643965638721339907882301041764102226163239756428355212494880104277869944753440577814871226824435357063237156205348192637317213182935978513896947099544948961727827800892896364006708098428643986876070440003295885043818619808099630819508743479493298165879927861091249502197428244374568135386236501319327660289359632046342412521345199083641053764644115492038506370840635275722313401924039050393626301588487409477731224202791547787160353171339716516221208426360382603105707443541086206385165790824820654161687339694376762778869015961064584298644745422009054690948029497156007610918134489835345144309106585844181756905805287070741605116625780842881681697919728445317806151351185368126446767238343073908433758962592524490146658657618108516074634658168854413269760470904062126236070807446816961124650445762493882401205528400399822248219718098750466910290676881804114465576009420811853979041804339613327176662419269333763648080884096441572886607443716713741123656249626637926106707880974005233151667240412750772917046189037092291926367567456986650011274213972966544808403313559526815985797151662859420398180329232018853639161166155319328801342691947662949568664253732995401588309567301667838090117474851054009610215853389335206613593753944665083013956010315493010504301568237089452122107184517600698107099613457426343865185241315973189474852469915805575525160920825040947928888145116428949607702721664397060346537679898739971312175352996391864654606893120791723021331309658935056508687516892971068749680227260977282557934533698360483874551281172868258610281342283077660732477917706088770681571497942285407925351938591145929672929092784323435034979273484977119573956696824093492392081406205714877089530522584008076286017691003716073419440338713877252323584142111715336303190240822209112867648642626613481716526660448191698575730617885173599883837505949975035505431577114365541353687580070286965898451021042931790297055965138916232678922649484540781997183837776077575654881433715427322620431435232465713432389741503247350541676750550784248139436087332267535039900826912861073473834789481000374130415874861230713265771997807123605835706727551847182234527175085422722748690557544998206698517372062978314683506552197286758207957326269629323853135804420264463893965596844209120164351306766563776827645780119294833856744538662478345823526148528433038978500384086573778505636956724901478583138164420707151958695376432066495109915440023299679044524114634024540263701471924984187544627675983446839207023071336880209129611844825222178735525841282397276444758865010225500943220003574873044472846663719509487842391164449520474164938634477428085980413470124007187192469749852879928859219266695643473622357993714352615240593785285680888913868753295906807070919039172654558657366372603577707021040706533014548241572555033742329955551719985692216994609637238244517827321108347117383970269800087668739113978907885695578825788783059485575338921592960648816943762978514292067942347356741364020553505597206589022422989223091264772529048570989267957071741774969054147469514806952755519084488849873838872440345181732766863255410912409264476450393369928949899153589157407292658236090419688961429140100057520005248340048684866689432235495365642144157661914973200298524107451200560280632618525315628902225653603469269531432958127380451757945334263009861043403316160489211277169001297814966133626312421191742695147881369418507656430834462210707051097265797680549114386188632944149744697901008943772183420178221666564447153704126318456877503976961100506373241566363240561925649068747207100186126065621075070246396439103082257875324616032770325685982079031020157051144860898197123677363678073516333318862390278217728314018509320113582796147650716507678695545684912667244421782867572298214090329586730705241987881620686178665981563757134437874381416329296501097780830644800566228910497670808270325323574724806963637134889271937665095964643999462267852836886180434758649168295400774759786783156570444412220870064742750672649048776702472149866315544027485494623007919767677564379222233211342188821005400115624260907344646887956803318907923156076183068845852490614829301107092618737779553616717544699660294418601896843379507780943748436362179293347494924164975331277858895623817129366632754009763400828754215989723349434307925643349483102353598540323552844450394050246180177422587624877174963545584665316672114749490171513326982530011922400918242088933418048538827652074328260178566358568564830292500259609954689265739349493185520357449346582278385298860860067371784757380101784788412053989346732525712747082445879401856779223416530765740942486854284073657948222632826877576359957079384209429758283139041704073770547238193171476645284619644161508355691256494599940714938044202547224560785306902552103561674972670985347061957949191225621580150008256261201613653337659256402301766576389398890444399100412824062567138789437028355577497559895788088264404274518303873634064469599443430013702065373461541655872320769872379457964675610470149284773557852844189469765857708872936364595375568409358495335809208599827372822215130383461889083230038389995390146858041725665501479909376268923040883147985638835682788371640327132710160733652648936456588213167013638684779076289450303551932245854093549388896836475862068912507155485241688011130155822453145828027337259861111626203438326530502880469115619385872486884332745478995864562000535658344515109569694642198871068575477175262382428286847489905578294474805458982796346706757101683579902764662499312074515593896073619665019442753818421586938969180484168979560180793659027676896420968028612561749291687133883378231436702112342715169327947180861830958014696691908861639393793326923717349559700188606055799079889579594470319690727058182033035050787747913003606253635623088766674504863612296015384427801529380570694373172874376218060350788163649967771112792591540498846816405421796102825110750502236191048919489467431904593323812640119370348292755951061665411543676726209228987351147130458083898184067005782578294051480494426729497658382120941415327340533274717454530362719238003546219031385208431814818796142148481718930912784273668105583937965896147200004556112025054022641298104708945745803599960466072273567654999016598860805322542454910888864303818606903318684389300160104614199172208235880765149654521455644003667895351491187244543554393506681308683544766379333428153184649782223894341045426753042960166221579442837350095864967571044881057302459397144801159329122092672379661077479439264792341065388261123892337073131536423344583360125606431014249693161943799042601377390920756946800955029051654666623789513228639481191636426444621528062184674158597795161656760158252758588121824759903396659200287706377895298664186434801846346548439000941991225753622709512233855402027661090463197985776321867198560152749382001888296777219303007758023268507716787591716215999018339325844485089983045754366947761950943448946841329376868251003442655549350513636072496238140510152092222856336639094936606646547786713691792714507188902183986540696273324046100547987629322630232573970687168868465318059370422616511459582068121761611324553595802587669095988216622748686582182842327227034496420902780386148236233296444335493591698973406822860242047937072631083114484744909290347510826058276194732121665351612987150083223831354081169669238147164579650546929841335464065054286272747051473865961517917108619038655026562070557118400938719487589172971469589176857008480883280604464535388623917006061548883707276289112389541363890870245270895031466781296718133259411233467254971939621233076046122202068295579278905115718895744384337364201694023874326300856760545278481898812488848121515943488782899653171386884096265255098384763086400841477829492862212327485547967699749887747639206849619226738582854484844452773028994915248925287115695965636402478687582426086860176708254020721819790776093227686485952030660283471517579413106333035991727615769185755306196482367678687964661845969543189613245709718536819552475767645464654655846037971900825498034091012567719163385532454694225520063854926142834118459122418842278342463987291042888888816965509964854596649948862316785930135410170339582720844508606206324087694400469476519369113495769832496586569172635034013889369190035888407107599152690253486205348815574401006247244535154048937734867659439921134682131658696847391213268897981623275275638257169459904477629850508954928101650020587489155593942298888154372829786687681011219217429549241753862673457543242784115465335245925949291867609556934399961954031396644358141353339949805323321858818053776445894194491432368042946050187413234439425203309174661181652786101568401073409793803615454718803280486467059991874238494850801505370588511869300333054643567579179017912430302308680818547222145992328043915464601700564030121533742037098372252608215395478771356033248826937294627164319786780711119748082044029383071187452331481969397345924464672078178956854205521826836341805464787314713336897051863896859314920588360296491999598743026108945555844725927608376904247552843961910182893902220043959169396348714097890366923476003961807409851621092473596562870780816768111691856125199622600697258598072179162484192070512208486700687124366164941817095411477596869018943985314732953992673388894139378788606233791004900061212965582523624523300427902443432411587086581170280396892128453854329459169524526690844448843863710429637335682877007686003426934337408224746691384516050805433765570532772125933232023477049181012480402585854928635564806395685624337990007702568478038660449404708714174655334102029884785462245109028973834801055024342555772138544998115176911948048961739539762205053007582901018800130650297247770426558964489786283423370226359767861263898120464384872947460878257598133332850234157589351410000437737488720124794243794793433903560796333604277987666572922327948066421221269607771851533574564577444068020139985255472752416030726492601502498574432476942738490578757439286560196207576230716276823923509713416690311162876258688249335724030038976646635048031094021095967535907839117303409809624758737232549672349965923857924127931876684772362160611486951798470907299933203178243602354698995842024154143056731465522709474237618703888172721510735971433671135973927048163702951352902302803696315056416114961275864666966176153606366189256515348055483245039282923426126453098815129357329530917760550189937933578542548229800715432529504653391213532240574674068677446265366107532598717768565969667450579052339472875978427135962562827829741083028143586751390812739021637821781521172988782320866868810572038524834846445675718487908219911394067868976861619140078869885523089339782059256817869454261265734419704263423129855479261141792717646289586940385172344395406244324312182854243538545406567138521360467394727798014651799355441009355547043793457680157983481379412257752728078692569460003470604163847583893310782444096736139036020801458298401618640854933618944683097216248957408857336582971349208865458245212556457778584637672223600175413193788774918715737120447961677531477649596426400368946560266551336254210862370347575212281137019970546652535644234624281082182398402125312107922480983617102505678034623835216613324407897677556057631144427021075467988177059803971988492899353132151463960223534701953492013994164728322823298259628823957096573573983363338119210625364869464850682871551732558067027022477159092882653651634655739969973149831851843563991421318017314183856832623842532196589120523000254534153175720241576286399071608442339005065252559101666240619158169300846623085202921471313661546935819053931847538173065199843343604512481243048207052834073981634736213179605738864770525889944338769165791474281252689999064922818607931556897036583203696809064795943539491133223569418857881692255200030348049222569191777114547350430166349078874756370751080683140669130480727688228432371839617605691662059531892745163109486079907129773608004064330143859271332802449242227749530477633122895611486119088717230095354897601897876383702486036453179481024666527730821326606010227562761625119266701962444786304289279785073083171537619791479157293320009320138842871289201184799284723757833050372290804898033376316693363281676556092618595627731666459551973880304494626240373507257027733581813554826121213526493449148634571971294218932475325012896905166061632175398419414479922679737191877989163967355738428297501742861210745914905508741938093733941199620365602588246636374087205941969602752059956491936177001420105933364554318236268483976680510269860613006961044906407308397598080217160016515295271357425536970090602994162979720745642100867001788027601592369039568146737208730686060566056052200239587333212020896904925498732881547682691309341055660648407274011749011289257557738005481154125205481648425966164053265680199193320203465012171760616890496993093089463643841516594159832387104839566976476320674602369750698272205789248405023938367006762984114654269075103501961338676934088559289466743990069152945089612424958004744950218692481089683017836469039879331342202265063240149997527925295297493269903878373485232136437454395163653886958955351492796431614528978127194741756176510596435727202064919745937445375143141784180769620353291131997383174100632667899553794439147273366346975537770138979859127939452563323839157574450227207061927015257872786464958176563697578320379719753159798054351657865649142592458115952930361315526057377511516377885173565129497538723629417713642037140450298458631325211256860547003318697266800102046070719327892322583585584985019343366616130724747051255211094434924517758894545834370940223642385665560763349143368500637372521677540721008123438264322581794340692678390120901230399263324780898727339184332302423952910340919608032404258319244668014279885323394708694287174989322241909485423184644094838122908449794759009619237435466211957877065838262033536614341765648480219211827175273940379103780493706223945229582830442943409154283278088662724368215529500806897386695168997032465524390490760888030709255656496823098730272655157436253883677983808218072527486976792964514674821854320723730954772714691829361478073626488607882445460109939683160857496499947897589843188767162706702045446200727189559709122275664030567208184843835334179776400843329851028993950189223626867840630647088010123942579006292505054262289405890201094791214915846550360284563454719191415885747313906567169549189399615502374339774312379673158798209167351018928088379957956195997454621014573227814618239764679223756926798189520253797752505717916984337004425856565525782251008950634669993996096651864351318557202007478523065524724038681182216482770064648785897401784986036253694175648891368400212789019448003973855717235094080274158761207708495177710549564084550776251670458981065002168848385222459307669240168051493360812584942846787416424826819301682368165363971487428845178809769858682682036826433496408153770627728035120834867887878229939261304039880317260790166164120932255754025166161976149757074498333597823763229243932924274810367858500101601027170152800408483912954458492537894322100260361631546259090505341726410022516296134721704332818891925767819315652545619251045398790143724489010811972976434863438310007317669236226231492360672832760498407144267665632546075005021613153795273750884543260443328891767866085664269961074680087942092723062926030476495516282987972736486236219786358763220069950278015558756722539124124283754520662631370462730691509125771957796899367768921686737585182752587588512407422958635435540534886089434259787677705467355347815191585934040143777714299788196793732650794754449515758029129948245491346280587559951899983210430246437383510739429200553989526977210869185533840485133871751799979114395028845296401770142921616783074088733318362709908108600467222055430062501774948303066246818431711193112803922676281084894524281854107887580945849781255824497779349457307870328925200880361915983615394852625228613985479661822863582927781317894427790910865135188823548657841669445316769659659574192049561464891854591676474587249224914536284656570366339214660014261345855353175587084704548513141610945247773545985205627574167082598247651179633460419883953427877616759224928651402295927381372336621104292963997455913871094578306121417606702837306180566600628733877255143616793479468697400169271319930427308863663732711818673519669978373774850321992477717407182476900813089268549796657306734689317196709640754822544888889217270019748691556299789513913163864374773898819274836095839585456047183986925603039008790840122145920557860703444185971626913342638493627118825380835168447124282790098722536165197407471273643625658628222028612408608705138854989137546104780142902083903074040251241250652532842964473155200750901626945218640720810045925846789170039254782998261412704477128996091376133514702992280746310695271400377737128621395928480783507122236042574771831127987867760473833854360995000076806889797858988605452803698475236929124577689350553515076750809199956405857681599949114757986128701795774025549608577096937345166430073188143879720517228060659623100984936436597339823276138506136840227792425479798191454549579481378424683713954366599280135614952812917068459164440606550766821076533038640052172536509209919775903834477055987432338808307688292570126957423068695523031971724188092960739058625944782020679823333948771035391342506289744241308198537730767574704855982013735564305872663240474990896651943455669782599424021133222660836477408527946913532092900636499281691882341064112944467667783935867089530879990592353258292406247583828086527805926815982324940805909699687564319976442434978684566619980532275964424841127673995411070941704737976380395124697603475948544051043116549494627383301559546395697669945775829085142362541590785122917383893609477376730312157399600336899235349011675914003412285634940692617513061476598217317073281262974262498317851555179692090164301894948152320732165143442987697940654954033390123914066641497275981021165037060082626853629840237455384489495774144732895227290456618353516221797505187281584265165444971646451116478218818618445187396892216953475623662279505851401760223940222899177494124367577863249412268309982049815641932036674205079893402696109085050758918570558940571416925965964237843007745488263627795167890711765419005557840939260275629847747199367895524988896022426004424921581095341558516720325692247441398940127765374846654849988569167248117567905220865518583610396580245715616565265364193525501265553744639206676738737105752600132564144338470980931563892881349697969858366009085362915359539974741792790508677415111422811709905148124910794739802874241157638919297321434081502863132561104530298894965355417973120157730780575032671902325785139688123668919953729015245273342807199570119843180251434706634197352958080207586627411253168333648582467412186857382774654812551928020922808708426254185212391339858056051565656905737527940913197132646536475036824819805280968579579801349904112997699458408443143479690859716396087039764042707221956508788204850784753059876566855213856454928118198055852149915915483182252239517865453918038422828586539707795019392160651941616770485909132064282735481874098024165350165516602891643724050301670400629025272253753474753856501996695689497193873912601706838183898723979781927857787391910103980170755539967323044521876645611052353764577791404820009149986749729086013568039494816668907574372360515264420194344054909202885629141999164935307165668078332269336257505604983521486758709785090914385689478316279790452417501113777068654889300353594123378233472256267622732996865226595988132023281971233140337635495411991562787163147901826533959587623331723596628111492797397145449921274025480565319809508690454821004977561199250020305263976788739854960380822540188250940324048367347908893755479253638864241652248197839732048610143663279358616577909624981774273604688280365577404321614014645852383794192624473129923601868293918009054450663664609314364485275039938096280541708311157426338042538119308076747767811673099101328740235198362165473301228137304787119496070734238336918329483351490918524549820959077943247532812689559848673548242343676916190017693745302964420205427622341928363575678659776795413632276857583889556151110360676682608080991872587286880377517891483491939053540182863646895471155327286566070038228349672749762837699605113258537958939174206400622357470513742871009123692975494301890873453796290961440818070577860276270084536678943755481769810027437382665549267434319950511434292352560616302836369989764995808787879601901508353422662583915589336587846108683292942182027328495480186690687335648740895564698812378616017402372983678069895543512523871761151722681096434063128492928957252091519757790943540389330267858642589971247640824625196455238223458877346963951880227391806647286830070316226124781156560705648998508017813970393459703976761934798729256220118734696305829200569448264357481726615488718191487715857137953320797446009069135238942688331493639597271471767388935220629101108532370805300691306388513151552077811259775762238516770504662413673968268410506052405151676845497684696226777015700454830624671311795982956715398536359355148393043267314557205343644911520181469593357577163010919759095424630073117816284602748249076064701546047746586804084663661930754861725652405624789362811276657515578199736938642106629221935367587496189521363034888712531853530096535469952609069876723302250780258450837499592417300538828012181932936701085517290809522246564151912866924939766010987937645751670294144568305984350927329877192366932725625342361367095610228595206368679159706478340643950997173847768929873345664531167348967801338161117949281792946975731489349777016471574812644335313606500287434845115598836635705234513167919867441851497868498612469451923196631121159507883865941205615477120119905494226293868473074089650667489269579845132800754887028733508683061403206615691795303321340799363923746964149279391340989440322800695284374818650089431692279097534190488888678732710291944770107194710615366122195242141130162041884636025222546991282920958720881490481848821752697878963783262082474048177667859719447453955870777793199502229891198278032404985217894108783393924912982603869458408453199531327777754928926070623381346077226510273431019255558578923768543877077681101267192075851522921464026872859547621290583073534808717769453465854323507465747295158186154154822936740532915780413437682278795873118230380810540842645202823284194513068073507132777347985421041526044285302879623354143181400989843466682870121989247367385731248531374617171939115921166391504208903877138672731835042051337285014283541870575903427605253441110163062263584371246675441588014009854584323689109760553933753292988935258111654262420614495218642735744127071925004214093646216408620956111680979274912167594622054727442075203183012782965251689403034466966725340954855278248852087229622470299119673876752841145221185268594578774713349304436767820308538582941377499112853472735088312513758383395885864553270280196598239992760341253692864793718928046963686282942392541483654297534745566343333123178606360647477213117370696513925627423644501934962052817831448218067721950652822623779118700629055656807306795324770579547744651155846008040329270303059217065687154191905199509460626943562509875899119856351314921388622487859280334311632803314384519155246917683533567483381662380886771696182641722115344190992644870849771665896443533663274012720690221372023265008106819559989416819778738403007070051039893186843206000690058346659347028782019935705488470603516225137068274128428339880103245568042176325732513515251061187225442730093678839943708224815980366310505955221098696420344428854954037968390547170996596527963369316844156526615804384525784607085519060014893499880333834397243394282766376297097981358535198995506173935102167185231385598939205330203145640693639169217960297532024226679454893624355348829638402423425672701474844489299284577241611509171629532384528830594597539998491199266028616486005467385517830262435657979667540143566860883401347802099223265157014494261465975381558858779513449617201473616338265768229555261767997149416376237012307695055455120307672704823700115467585999456437319598064456812539610697564146154903724243760206573808681479921514077127409221484547062580558708706887616274221927890586733332688527317532590597261691667467138607420583994346668636366817260933479261482276188139954233058083907140140392030899497297974796137496613413303015911075081471707612938230644047595748844340271788399251834349140771795711319730155924953257976731667894305625075807910790094082744055953886550148204012253381729856006321763094467710542989841704628324846200959999757926112166539190671130309719344186619822612116054759772166803487134053358041558014857421141324281136070023513377403177821995427880090423194135806107332203949856795251012363891098211181180211969589882859479783680131381764630495233316159410297918043380430231195364411803373694188904849869767175759519597863850791766425839777437107505626258314084893295658250102058525370230637466362115303768066993470018622330801039938002481337229812241632919227836990714039431006465862325706948369498826537998177774436219298238259694380119086073862632073309342711638484786025796138221889650177397723196465047865551182329838720747806363069880485189410100970406730130801191528739668712621641589215460622342657313612223840220505605934519596769024049184862742147457345180861259906975852073517100996358462290728731007385050504319048526755511712061098433222448591167666881238191523338701771176155451586333765320070237182357305110708710534729435439520955359780480691398570088023526673117639486284585414491109874034384205297620219123866508408009291584419781017959444612403117178552991540167240552854428210422138646781719643966634980708532087580198702757094010749950573276593510812631831864525502580606207969828948380266174032330224657695288693676895480521732447672295142488185146670214061191297133577678359307622470863329851638344209519606369479546397736095209398692446111342623680381012841578127437740284314775667507637909042216992812100504051215827656322724413577140249575416173388307361342927759889403304147674777157450872115603078661927739343930149426332764203837766221539593401531684126006847633743733257312093655935338318275535872326226044453033234576961491321516678194729837119945943629966138617268468311837701306670680249122382804193569377991134851239854487547042528616033101016978391766858265770896189772309414958656465045016814619621352846853652501825356828091804608331250764029232573472544068505684688029680855098055804856614650127901741640311995068222100815824076978595489721903831268036138224155515365796325095555704844476193107695837433877931081912648987636640070549337792318082544702556741863497513515105976662518887098791678263014976062861162519573502619532284196273501268698690486691903397291055318475701877006427040642005783945118717602496446723844434282514768630016140584627212830637617464434199079524724233383262475950679477389092323894361020058015766724559983452483399244283547871271574322897506937142340843941688486254429852449651699594487442857384826182041418608449977622070720592141680283045344974131342550921660230365459663395819653800188543066455403444183432220541598837843559890008489570738960099010696991351193515803909624248020834111036649659198715021280301588572157740586071006983585465901817358844656122820746563884437866179375129169775219067806266408284567066755196379880969426006283257094092610488851862535784762932259989233934618916748044055634520265756638126519211839631549118953357739345687577275447479203596535951169952681515594509543101806851349963812819196150607166485101584851333059610819298884211057412450249295716350371783738066930171560477375926298094229478918606955905842624727790504217755171719986569411335448877962334393848188158131124646128401569480242498614759756858706737755214581802791958673518384370759934032610923450557340299998513086208756474147139772864927836830245124677089989678417409950438563181620791588194737154272275498374777261645912226164037632667245595484538213569799573759028916168726583696178502866103471481011167572848482192447101248839867883379410730066596741643615326684657969269516311295849464573555681611365662383632309808426926610380284307789382847210846886513792239002653918139952502251775744457008883000993372803580052489016914295153598239084709493982628769792322202162014613725289240787235684551143362612322677933047676358628696694538045809737728704493300599629962838302386426429215638170829013350769155696326546139232999676253199341491868274985553487788786358893981520328070622365508692227915365465421813403704356122898345402286995985470124441786088597702478912041434437858448312824739215136448338732372388671486398400961766927968713161149681954248461645245306308754001821397523797197162638697773468337441222221786076327968308974115919738289192873253981325977816199219025584198907945741612483947701108621277809773065581229700214099803190456055399682484827281059279959687675377148485556497819253404066889364085026038535186781020935353312154176310526960249668866634388449015244243978722536522100095332229844611631894739552086384356609267786172049099695775027630987159311788156991779655311654595972212520475472882923701943360632130210433728572406062778899249330079124138649109284174765890656892823718790116710862187600838278712866535823095408757750741240626528394703005501497995481149028994154146570704869926557245833475019315503261516536090449764743037795053602588028947064564242053539909049125633882698380308605968583381004868525073382610287973530735233415163525093157397781025549606610617359912450039690097642366533503474571658268455743445341249794575740430034019611245268628774767321956363117528957968570147537587416180436456981488211090742194279923641364704592010320235072617573047516207894378647735331562527535384192208386668406264829603239326601162832338071539565397490389961439790432501178233981647684199725214876380260183576622340217763770393000646878436719848426628281276843116645768891265819601647055419967689755706367252629982697812494928889522863249058758648899118974144986452219317376529310585375761599501964860787654687435241485279311258875826164969358853502650914332370458922145533314359104631081523505587664654905568844664667313054107479624057833190854359467900933064187442282744699112200089613326304109137676610440865452438579797878093690927864102499982194773109640611464133072220201735336288883922063693635225365940179866438188585695825063974567354380432017694330958712992559281056442608201653099296758792165845804024331171057829453737769783122513816252065607272465353847841799714909192725568412437642055477913609120255945124549364636642365002325351702522414771391402294850238252433967347120528476506170411658219209392628330015158374986181053454073738515489464936846108731987997742450088413575083931121610778767797660045842529318927485106366789852910934699118778506921162289026627892134177475544506905502621602113934587527886371498883589993167913752606674234427090476038162759770908464273888456557711995711387306435770621743056735501583439598194740388208790432490795075384982717735908866103869495636989165536932333305681099009261464665565156885856602497024187677694630853988656429535154903434413257982041684955986666115178235678183956725079562481607594028426262985455997086530177223973277342325026775568565879194705279245141297334168457718649503729053004773402710312430019125866430791021090342160488830078016810896102809627755513349736434407384094457889001099582052368471338481139708219101942999144178946019704162029505197517949826119854824965713582457232088913808874958149836743735624193374432577751298628242732939397440529955447685871977078144814975816585928269970364629094459464384328368377372055200378853015254273387930404300438047546972607906753868784566218512421651397810128504290588807096944372513335069072535367856172240565800640645801663377917117440279644041734580813406052584264398394690408991510059538785693573260546565274612598150127893357944590153773098760691363712788580372892526444169741466502290406563291854624928574741165263364329855230412932323800828926331458287713259076965776196367183329588137735042922980888844398495874485934104102293675530992517862968995498035710365126058388057750564985354440213550309075267028558905041745476649987535991321330334634150433672459376973935411035394298427666213988505084947772452771339140600729066982985407019113759246444775839702351788653336581155865508031125591934033981370045560357174433692468676840907966173337228004780322364595373950437238757872662217213267466094068489989502768097203370091109704980338761193514394391403135399283445213225379015774852506879212936321569732860721888264549300436550410728982155733983162631426040907425609504946167977748820311380379946006727875738277345258883123729134014319406276755343444745585601716487277424434204744106164730700576880764284921263479126809730521287840483326664963501168809279035422102010354444098750838603074853027490484803773815049850663259674442598746319729945529551620028857154975732330066532802686316920783460247787631903231247891033782182382567961121105970099210654596123663412577988592811395784511950407182431304991676454205709673961223255721374603391618983888388277106796145152187412964741119400599944550102103583138408030887362034874446106387139413805826028449642614738349261035503809144553621654062321938475489972157811969926039714957170551039112642897314760361114117274386697115699940759351856795105675185406143044991936738656134704377472909770099706876935262788390526769205219906277121922342324324423698693426386178705825847164712211613124691487413610262041568397552120878786550920609917619725508915605299073174533056824293233793820353762116037775924489946465136527952668027764663444992060927346814278571968462697548770614894299705530024692490612415850116963311237875964097194582613434840614551522391464138244469627081068698973400700522994904360741255607753712129111198605322563669475466299480550982444495412634342961471324523941949940816190507549830085344371825720278382062258644043130995478594504069250892349516480302934895384637208118800114168963304558912014170199897163279070957061410472322701231823807462758369125344335070688268495010580856579519691044863989352777326112378936891120763123979211283657717839634293097592954908317016755342226125463574868227460034730489380608905490284684658612404282634378199394791452183335018391605644530515121020657626088651463971146730215842228125578022277090977272129318270232979507008677740817544586028340966835012046075408741724382773424207513585480846752197605437065153244108165399403246859329347748459998726509677112533822217102619694049692653569113204938156047489228361323862346822675670828269059798016511849539668127836053045551477351498885097604716596518557274486505356611890887046365985090196134405450156896593999926485013514435910038025707976251335368718235412502507015062477773538532812984013001358189990190373432476567552138820509387575939309795217507148059046621047630366126220163436244291112603123691893902085054464836481504145582033901792783034251550323606885259168617906339480969367577271824812567842164310748000087851931887709883026387486692717477190783273881841688086811123589853012405094114229602805492405119466153409871614326110592856107172533598865553499271315248710113423603141765033896106518815820768556026724265274646697314806266505902872478034739201886916257062654397777874701675024357242490889047921067445394226290135341679879511838143482078436841891191294283435071676356142906806337029178164103371351449893182515734173828028760944997187121068862507652786844614524604627220390849112064804877516638630095650801503628924227950456743575688293691228102379804807416216852690971447131585830734376843945352103685803214367781883376893502892188176402656163849485185386974273045828291285786077019729984159821260213722598147648632908083329096920480080036709921038459820457485900679542011861925216438416179735935035291526837846495246746589379533122074261239573282998724086558912375799384294943022415944293086628652997618313776126089923683465452684898213677163423537938959069312620456265634421788433686014591152885022822209610522238232812910012824350789973754414749126427249415514967682961191443755386274498272899977418914187635081301511114261253872512928504134608072242072305353412085135694827339910871448591217753503441012078230860425383807748493804731819226172146985654008764339116195339176237731511862675446104985232946909415932717926330603039491281489783277285399337931680482819476382779353772926758399345588864267831615372912748210571042573496835021077209321162287801075290485196404456415477769573383370663367206293357956022241527153928534962239529229530946318011860545082969006419511998574416755785692918722738962983616799999465000401957887597207310604691207498702207191856429241569582811575283280431206129514613505074077191595650542887015648855495122895016101267874468844109128421094817869445979251238485837682963571228929748738340117429284887369269196699361739554609941338856039984379485613346711179779745295166579709981799023521767789681456361107114668507719261847938786716465849333332688664508759100341909085501627715459007605162761933741641893780794063551331694523125852989817584845622927156281714125128947312118731391908103841251532553743073040690934850283379650852823735925385210601502740110475520500857454550330589471585248740097921681358970691372807474147332205606151820829415093333554610779382365845359573932886154295585139839275941621746333505396227186142725575946224752752570366445112020139221597044639689335608900019573299841489945468548806733435073738437967887060231393746956675215432838610655928214537182243792009379527111416935160099413976571523387498665339833798806784613763820813429434190897495156755214230939613849700539232184842729267827416495535222606041918171191541597430868199439618916935100291409326274608748661934412076744653933640084266199309674080414982554839222870611371728245889467768840391424831547396150222023672815672580009826662536410423686119252394362660308583519975955116097219264199533865560907770194798467391483133556738129147956549465671852045828104677497147855998776826797510026101478710068649674585320812790342696085749069345290278945228947617880109269581882555268688502054287262921808581234945648383339622048271048528091862670574741917859863159789955178592552078392101870550865999161997261390805417096940898843067246005905349037953000237641565242443585379926788688871128334518992384673358603786950608901976944890517447913035973180459018143498832917854216275800873551036555387690153377064822324355634158115384833238322175829095596378473906362978064004012038722904117241268831517024150169391300043736957396522627196606993524278336642354355122382713982019602622496175863819469475808265537291867583942065145485809571013142017616607275922980853480435144742238481268367636611031445558097554217410768056196532016901266699336304069653141528287189644879621958298609465086520651788538901879814923562510198410849992099866333495440206738305498533436672184308615191053788450772673360407115224025788818010551590187988156077377474134770054234566406546483610824530996634230961804306384412365038396773401287930403690170418615725917770627674514199692771408313489382650073683044856049905875892445566990428667850106982387319218749201484322478818378884280798769147348581021213111485782674793984891483642619835949470265279393284622144659526435539256714651622858352925845461390499324609685090060895932462101511971951701849032561889469886890733683614643597292897386978740624424041277339516002507854595212196215321904237055480458589347793157804059899593171212173162780600102798992932367743368161693785545214080780822152530005345942455639092441525571947206171143067787518703695217898858310533284895123015950624320640861650799498967736446479237238821748393817111950587662939135806943612436441983925360517837384095484249907977205636498373524165470450712655391825384715840614382027004750024460271698065754269198500027973753256772683872413603182773470109855624590084292682260781981501950548300464879346663252388865641399960466379740694444143458652961353305701811433280724025629490054484017018966317755024022245671077999754981693954234438927023385242403131132924909683715644556827030495179992677087667658344387835250204884905540691831161271360529609484762374203068620534840991381241047875639074072741351094039042073978903323879659730551307891685230555775433063306064913306235473063671647044028713881455914802929612651286073983691580551789773795877369202936767812723108066909085649775430852780658009540886064284779681463029014406802940835588096784703219531389497460333468763326601113824874450711145209667035945379063825792405039495888362537863081513409868024873115583035886973847654611448210077909034141504017584902126786513932354478190302998490041159543797063506932197073956810978547751136586258323283842724366455031666223688827395520871367041143273107200403955000821303310921462930902435792000899712472057090323331829483927837175698089096250738081809350278132928590160863527560782030864993917292298203760380419766537134135940612143401648207926077785606486669335097781330065439796943467394238304746690367629722341294565626996318176784830100498852680445889579645914276995252094036620742535796749631929038714874754920795797139017617822124158336447856418570015630031090269821418342008341830882491059235940114417663191790243498506604059522034746787125587606772579744275697505720222485194903639676494010741647248255493126326787787701084898713682954086677069535352887326783523231665165488725507074274687972440518691628255027038381694644263417905762368284851033495856224247231986887919112212410069952801379651811080423274600949220839141452780453240702911328972494429167617575397467954588923515844605366057429508529343775099854059508137062301690700672659727464343198001785232734681714094863821063935351036901819378842820529819959610071039634210511804196291803554796830250324383504602921416980274676300362781693872581677568916188650692291322310511689573617844251351230825590005476223069503658486909902167060718637014522574294426534692854789738896307701120612206798343059324975907186295241085830593434650533760292669513684767221063180998673742144235752251918272336511838737969937438636340312209032427005389231141058572691503563814587711298757800360828968016988572603355371218562854435180519183939356403374894847405297229699551531690973123483679672980174936835322110568387971823018098095679332057774321876928131976198998350387343451501417883983530220025307784307144059419575056704556933134676099731141645885670335609485067783431285819310343342231940540574885989974795982681858627947547182639912335748776501110287859558397022916578725991696621438097921303802165636120570752766053805993319007049745639170375481357374036395727596762517691872625702441074518534680393458077499388294745872188226408819657779852885592880063214299570543662209544256714386615379207641456044460356767708162539205060028701287453152856626603616563150687360178988685278291314560154177198901034919043670590383436242357155281614807614197912598388797054532945836116356948018416360960440932012702525458530318506175399163035377758023781517653632425871943932619445512148942992740572881590563548984347911760689096674687817625425282608815957709398840899579612753053983085603403390656131902315138680061297712155560779362400178053311563417739938131943837489378445875254155701585534806669452872998388347732306417349651563569491565309852526399661868939258425437111926616546028819329246097851166581662348931903014023239613436871153591711061617242601001572038743308585361242265496338388365383592688948233872507246357940367278405478145078541069741383451940031036733404672156265726003832170918258876642765682407855339791985287285383849527903753007633435260452720750771123767362604069490037656376192722870268455087367102355705139569143770153526060542590052985022267921680303469386707393815352064545379201101468306530090924259790495103527006108063197445411636565265409751858815525553370539396392540649879884706229182597726365110153150393033324888997737863244838928689473691521254660752009143171583648931102967314892503325274433692873381713362724499830143816743754714774859659126375592097573521740925882149279677947724732215236329557659720954044164815532362120037362148651464893714234019306090787733328713316147133941757246234898893636876845941256867227480053508266408113717510630210437927262084222615331063976925642111796128018986729522688234217282663112310750182717449925153492683045106596684545440246923640137458665524893350151895193239522599966135313387651648364384028063643982631099291926970481991956032399765904951987141594805240436388425620415174203457255495652435969740284319880645389419719624072557150182706975077031753816696287182376875565395224105230184155266986291197335734108152832038520158975973547093283347466593277993610012656319825308040524022449452456513295197561565218174654787589639782393801299884333220819870863520231114294751511244039915042996035411178250557020478303869320033876655858638948652675010464349648810446938183443638021066551760450132362216742044865431772748090329737356440129645309118098155440664125727929917504574692548124094537052266780629467261527248778715047918713006102977199207469497279520167701128975673659046941407756866045683479126207836332330108612355417633529929344738647109437509047553662817960266959649110391471895841394563865869834697891642490490472414510494280535902111935046366503764401957324968338001607699320295919456571210366206118394278056699684733799135942053798902280919355575900357081014801533103495076100941007121243115582300000920738261337604045023474125817971387139407373966942402499668301158108618565492256526314545571998008670512421683794850780177944670062049365534754794899818895686187653511302210338139617431878401461512644106680589766862164614675117135855038482273108356586514147948320023060682539875205466601305635867162264875359843365422292022264475248958591966413043611491337201488735387554660559090730411208721613532209527675799711336911204623912537648138345271822861020208978536989052794791926312808405968275142502830137305054527774653690279549374334838818381856012013347469385145641710208649518910668893760807428993805396165523234812053111863492016491299149646358960559473430134525997460098994591626131522273195914890723067989725751036325420047317295766895390321468577727229766725943147629108621162345136990806203342687802169048990757747543359020035135057171232470321424920093412442073626504893624579089423607338769260102773868761598358654366445414749565202589892435295556945598896241525290955663126772511154689497646175796442690578716458950472005063934068619631312010383190546383851180753260145765758969866812733852268696121476138659928828928310038389497761620835608836568976617318282074332979972582880268506467647952406569851182972338429849271345967332356547564153540995393089500408192273947124965986406814748965277584705781341094034012821183188021925921382985352991993539509311570881265542648568513268459975347501385731742686627740540685583163773167802320230825482019153943971800292664482612881728262626078594997916998001781003218377325520363920409574902183412400110814009781608746643796002608749752520750379898582467209037169228651120550650723349403952466670751721204945319167784126309016823158951716406610236807735399878336425079060620692937468653080816909462332523250069249846175424976932194493026749606151164479537168826404444128732241017918845292454364988693775940519564847381104281053818271905113303855999917017592885758190501295818596692996028445639172498420813888593224362953543986996937355919443670565158953442269704388376098166262989150614096659876254365129388681535511063251421247730191150742948375943980465877070492384770820786580910958454322261365757449715930359816485772177420746866200893864625666420465682850217216482420683022719618317785069426434431611662220517534478429371806890853468539284575449470715057526170794618509854915376685398069387063794322872936797571728213397126577756574461950696136712159184410886329141560498015540174970449861660290302153703964885168071122018645027998738091154734387627033075978403686148627085697848762526491637740395601556746030502142817226979465950613958387953619919148968810557784179189871645371807897276382990231409135990458732401095279656293025010706096542723501656742178686755598404338221016322884330360207330432077488007116454912021500904027926880072902101741538157462017987559306996442845895200665145776518141381347976460750079699776836359539026554725657305340007281300552777221610274666853432542639217012026404605450622043420517834413951348338611033766757473462181706070105231965524856587254345927728473001989156237025889629411049217697822270576193673258431808505376150902821453657043709275488975460465297476296865849503937600605504485097108048233630722500090138963635437323793649342254355291122526536666334832625485020855661473095446601142727536231100298206053630577352584435301417446739008075412422668619304832531692544848047885906277351194274570456664718773570915022064161805851062020391943129339540827571673843706882947585184429154303475956296930651870091542200938138406476003297772168827473448648061938743339466559684675224053628877372982836863106973682231000709819018425080348478122104888282353511697905596120354858206020203880354312832031412768931670174510327229191153019842829184652719124960557071296910850079232623977562705295254160372635818895661848590733619429944863159875550447451840179643863480031501396170478410571346228012705983401778326539658717821753077257566318833930256180672364391973662106852057896925187747923092860786334061710584151461093978487179207413115426719503286651673754228950641174436963826175735526754563071765421142073047390626764506897045137007258596246838627888139340799113024611021125703229770272222359387014688178762251293226971445710479029599483872308274955703991126789574979071056967950002161099883672678617290368901638876770502930406099075921550490680666947036479700000449223656205821789095543530243134857015377019829008992251698888686760523157075032854700267417847197593999362824394507398385228277815096259618734699661287853270968158584684952102957114243586644469473185915050234250334951882779438949247635252461444162906799319607933782504009641306097410044940810951752248182461146994005321166030532015137237652744034545356556522922238778599063494939105641738982224355209427016782616796932609075198323445613861030210673016377085301793871117157581507667118585289663018643666430083369534086414800361036384884961674906075571870419922798484261682148686633675108585089614454986833811850950152984356567905456692718906817138314121644527239627619211891250189120969838237753470911816296008035537638890830523223633580212153457044631046611111808954679324241932801217753585763564121304578187795565365726425061585297722230149132225522782580530097680691372333911848784509444896760806248974821377390996219719601115672261244510706085382253207748421542593315681469472274557224941882324610917302654275632389627638951122640461697911577551673670455571247252292304744921793814692722507458561588967945945599605729784930670516711685132467057391483208216492933937258781350148157223741208503020140770835087873455810707528762751001021377061197069786607119793395369233456747716631324932590560640370553928928217026912028944568244774496091007727832830612913512628396171746005733343252544780239430229287605044826971388985921721833801134870239817084478820178025286223453756325056566571197171857876365085562955020759594123634363485565983532610063502840479003362666499814777707967833497839023660082636999190318503932085914787931560468557695793697904674486232641789489074190609645090943897282777277370301837224741781881940146948745736484279184042279123168557709606744971693046689369185115139833597265790748634971965501414748910864087204988769099209448927348707376859100277553719522224473841222124156472117180145852909478962911371861773743259883650619781738296424025315189435706906438872583057615230275882926067780758632433344793383828339283915778063418915484027559723399112948450332092238144621468972642043560241313804099000064515303996103755649941498638286649556105203666059988587966116435710634345500273645238225835266855914571709041899360407044670754804673241473563465947155201821075673708251295292753580987647818282609712513391962963727405476107749738043237019769980771268068269088043772423662237418269602081668550068206972604325375550990373500031470380361102396923990792400874498331839942017158416788048576071833719857514906378434308511286590573382878176415610286719005842547943219021186820777448519167059137051886836013555243895320151296926854752960790470957240247469444432440392631780824217382319030474558310764858997171356379077815565194445979461258190122386037022850397411909485594057116702262813177672215531078916829601539314335199015186159862397932271233208635572461593157311918877999886290045427776861342648185004872112036919167049179028250675591700625185891420065805743377470231104701381309973908390323493055434259112061043816272483003871574447367701378083773695031327185846919953229330598441490079558619995612537295479536159856658928564802766744020054838778722573997424430935206520835389357113211023099559462252763725664447876812557767674316034514304571334054552356713514400423573271811696907797369300282515685016206670730693290185701131271881848062091405703465723414488028874050276024647356576885316380528112825063167011752492000241884512008351390323786149232514564041051616724951094830013909179887782005946550132869164350718945126353692927656239529383027893813379563582102104233879065865836629432699425347796251071225067592315875942838221079501745934707390361350003909695209570926323453379672086884336539114173921554327312429787172714804804618294458214830103776032708159026810647858506708860578258857757295380965926225617284202686554363162763952983761466860501585855030678192064568891370791027035121495397291118937478309740326375290401938443283363750575178427773764165594350072422788656378417192983121799864180115440512159402906268462512315753943195865046754748789711358735296512356125514179430909373613355334542401622861389379367021640512385853510936977549462647353449719515126270727123921968672662617080169782078709043985993694059950758902112317584734938699402684110891499838370250178281708183435482631126957034736845152005667913207958281014603212170059142216484025407718793099340644551164711722123388716954458516369561327918698330487902100733137332496386195908165682375729241090900278311498466973836712795420245538608025180241236020735107279246278805357391642391948435427835385979442959949702124408522843885139190796186370008843530447275750171418336685683779833596128431329203606230092177336602022179260694392812042954343421976779131293012707543455966109075726713890748681955868413919793965360367160757369856392874385933809009428072174996184381308669124579020750983593796879854010309446459515451827323719764067618727809659073953301594206239038565771047364693033385750120630581355749194126549243806470198524273889384999208487965697300057916686651869680915299825432885222020434313041145023915584106758719268003797109532797426335962019110002974070598031147955644451982520129140590499144075784936757313234231756995578959870329407122546139202633502854870597449136604624368686393885015586673491672476302718619457677808202471552648437397989575533803774916144147758028253225306099817686453555031193666422169746762101009331641468807918908271369467732304577428365029756713000911085800464442009702061574347288517844092984603438592497521602142198594302522239342622085815109815546908387057458020019995795207017231200194107566656420546074877204102707623377455839702247189623426837037872075280764175731500268534657942207658166371271616743545733760701231271680524042943105452221640490600774626320138671673906404575628245568870818516983511593487492915402001401045208392866615341612808279221190346935681898548872685960261038186009546824675554734983860316722411803031170818351559401004418927063928559637017767486138483042421421149351270279302758075719550389873978730860570777743368480691847771895673873953711186818910341858213074586702392092937533784959990315749339109284183163987672283519290111469815124377884704267062738670764608313420523595338688082480289609561502970599767219855453853895570258855215552126443254244667865257583095155290373572966451695328564578686255098970922672699393303933677942216356551848709818890934107963946261107280374359805566474134250488450388968128998317561474567398646950769527565682847708759593917089062504384864177547501186841523056406533693277639695278183570213285923062509050052817120562843715641151627165914286663064066733692214044980614273264619803178658030238673018370889786685105727220940978262746524629399633769107370798606718446148923994740123425443168109128854515869923766829886446547949396358701193856816666341791986123929679562367889960097946942565510237709085062196548380512875197973096810106796432817244199473334070034259215839140026417607879745546418430298841561497863004686984591315226721568870318114893467272105687543081090675885145761475709685361155993145128144438321105897236642630478667211645554648818618035630543772025969045132801749905601885670417231804264176787469610362262216808556996354843431603485514979535141828009057028016449721861484964532068988081392213174306563018971628231889856637871300196044435733688184859517442915584011679109303640277995169560366673068135109453803909145871120420611365098165816914166352272864641685969577719426646276106261687413778410414321210400902116282263316000947544739145623286263583396192643894877123860431417237157892126927797110938047147027778776372456834296898492924978863841236321324225766001577178440110657807001201350306948154173267550434333761693101789486970129291522916374787536224519558923784761089103667006117661328480136727605019792100565104979559457276518852423220908715614015567130282295349151514332619786469390285823918061570499396193463415721669392285813541711321738717142722317724182688379174668659017055374192913722502937367097667805891391285651239546757407887194568634385737736998900845459732647290582793272952516239398258604071156982906523516161806195675474571259900805994804174813556982342446558014980163766780353515950344153474956883619457620705910975700615738575479227343451168230764472864878236107658688743725311093743526967869382981276931454059586897157015706368955805196889214895206381302347047994341836456124134867262491693232197211020646537727347063687223227621711237071742606857861396522569382620499146944370456021801678436375064696448165302070452166698278239493168913126028811840381076530816348700908840010648056322464110736929996857099459553784880761176411138965492833524845584865966781493505421377707988793182765574313955149253486606948538068749202041088635050466958500625003656178831199489403299981759107400716575774273721140965823341000057574372293204792972698396760707556046156156880543941309714037193415734824667877941008332608976833297364448667807615178445021803199048148394669573676870421456328405933581294947363539591766217409921212936344915976990565157339833263140729028256874262817974972173031681465901736300787758223945850321280122942948665747794598269705468495718884702074326693312957601187610354896087539181004711274101382167366340187399706722750011411079826465135936173920044562427291748173233344536648450927967899255553314314947967778478110693933373190431681869130574660314487007920476261550682097657081875362861771553544538135444564931306812807965817800478187254884687104454562419650751808125325389973536657162362880785576873016012581496263900304764180585643076370249265968636275964667821129531814481251523054264553670717271470706779828074629752011894272473656989125645809852992635547235196857302051163493095520283002168437104918570274121977226176997714289929992687149995954384433493984639483802945569739632580103897795916203424163425116165852098467110758778337933865267008658146096954010961910826638550119826715241721410725825426110146083181503659616283926201100776874168060581424377500905251517561043033161666926147589880641877349567433683374835655343460488283615103392384086241883075055413903088427427166080646476693857721000294850315600333773640152718647664011451763446892516381791745139045435263761991312612880018555230581358469271840757048059262085359250458674496931625540430239487771001252095318261386149539090637081431178786677135384871423117727394564980309456919332627459846833953900556243595415191839713148730490993509106235819773944098151451149616528105018123324726567129379548120602296326136183911954593905361653395268727763679238701425812848224421713333350586500438252714345549595193490859697446600356645391285627286086003960140357929955711092080447930337748068977274472830290548288647726133977156721844925546224497809270800776432313404011860122098499337124689792643067796933182926507418290735732174723052661662717236071458991124222056072169456742969777270941531607186140818980070418887676622342356002716446005218865935610579467226255952388805399452604818214915502488917437908630813029133412334468816957162050704913485245935903274836619752469370909330442581630036093242512044731422653142231170673062775854074211410076486363022984467486792696151599963430313770287619325623996910389889532748756754405927259044959724920443329593033494804590422710524736541141619458283079559690188227880064791103231267191972307968545735785746155560179983148067914473935726334267085020937317169736804153427753200165393540770586996174382266422246944245638671126348175632117371121988172490604684290037238521272920370992874266816891077659381256173639781298541606954381506379423081017547666219443144596419134597012526256892721086164576504581967513810553536620488278664855287297368949923821756008968344746234485164440460599214391390883579292300446144049945271384467343095775080208695105784740895647920382020281953073467950113734032362907708209494006816257395675142175015497941801297103235167238043073754031099583233335622787857914973091715634928690440164014127444978760890381812910176771294850801183412342365387550567776966095807365446336176324468456803287344587045254302842967911426811894644088274311874070493635639519190688551792366829755516750685285905863777433942508485453735234596260442752346890634885950200631102279930667677515876208200046399816270231683177078622020737221637476171585583799004454893736529062138132469846190143485857070422541412233144753175977849813782976456919210487304324830819960155339869287857615571009054557429117573382722124987239137790877692785627674061058006404407095107507425505551900458545759561082232025989517085044874266744228984020280447674906085926067418995333755499634984028158724105993171491222818203547642027576421613219076749426708766801858590176916321136751588752983897057024374076149998689157261059207279179868394956934630576453508963138383330516674475950068568282882882404970333167078413767436678438747866225092626827714687274225132295705822398853347571957931563432423341989923637451779149982442535142269647098398587831037494101748196462180493860924539263252756943342334661933275716875082757704441625854369546067112387621185931270439608847573335149812005585068455165106530686661808658235664572824400079350373390767966422228409113599470239614383310536903979172158230207649933174640862392757038796101735191677374112779241759467399446663120760031216352441725370863777112563121581106998925403188365170168262232624797691166619949289200743678826520661134037522124659841408048018415783810129035708044076789564943437769287235890185335240650259506133115624757255344177636318441999400380799622516580944309611324515757139225508320917228073793050055259314921621964343240866571315481240046384185863322337839378829738117091736895425225845664503563846280692983616598721085807537259880011111622623095791521587476238999504592987385291232948672386945164249051811243753072011942359456761738405488788548448079978581667789313466459699779700421949022297861587989303046952185153859768995701579063105952337252996238059184033677168744838885450631337237284793363234166840878586358038131221246196131626068789378355787282002710388311454086512812142255558241152807248455702592174448205282131340753449285565875876567186308107412911742770975663569733690262785482387738192078999141873615860008406270859804476248358811884195417121738147373212277704924605596515654294529178237177988874003554140158471043887946056029688750860164056873475568148790816081455657799969102020944136554126379992909060187460010772950847198184287433362828265358106428338332885223981204035162863924749052269249398175318935548628547017482655023229394009368542067190975587956439054672581905588540516602360039216540144577123995796702971406727046489208066080862403985989597070495093753138256228567962756765263804906498032154266791289399042382131156052683798017103651802682422216790397822307785939041627686602378588386039009893314644372750976287608779975108015232532064969448671712845164934038885588260764352517705332784492646225599133337867370718317803973738109507185482804782258438273199857218594903085808570815532438841648505616301820010907207080617093518978791860574440046257789951502324594994991880432227748602499792209242513019017628038520710549879270199991866909179500177165259277384914905607880281380752090725933608367677624545985991656049582367809073954491093221991272698481302548293493219475938403487499404229981968077052876364049525289113496010585441246196371229381945887570779867748265478335259149685302932240296100173968008828796110815560784776612939160683000006688073425996578386654698937806237350497903054595482255249531461287277814837129594537924380050107680727091748664208407918058961427595729632366469400152238690891014329201925441463746397680425527801600883181274079390956738983140293955542638500502148543789454920836138196022647561570143985001270250607350614749747883097701570280806695276424492849893432700062144178010402759821823751055139156441842354293610327472582055033722515736621508691308330145530900611360487230797656705782417736800725736703999598970425993651202942793452819001436856547676342144192990671599436620787359171103605764798076462467827079230209279423929221764507561729213470964662269281260479737522732851237868894326845788743235340784078969874966574953109783254994162093811818877881050656156942302686661133950741290854223688952606767507161330216785282642984502002175477190795922980633684801240051751681273015124228260776878452429776967289894858516103878481290290397434171867872277506614453395946264154618521472535904161237045407158988180113077116256069277206071655379190343009038746219993144879509572429615031603172144734518446466443105667553308241151693328547775305873650725862371521436975813990285727181545738818630564722542079919385299195506314988907348610540446479755928296525496721269415670498460113001675986257160860945010529313078067843019674382162593218920888893330898195682571947081491924682023015625266958606086003856477941709659176138669865633988213183368162676687153784340771325183301063717579397767668857536221021782723597732886220641361665235611292686372699159744449501901407625928616926092423006244006540333234127198604221617273650463590622437561747637704088052098453269706249797156808150290078120316386639264285197180891276302908052354584806829246924896912965412090468974295807608918703847483267275008731629982243906968537761252763976745686794002521661409513459405139070683108068490127329857945318578740312391238607547373890744095771170456811491252076683251819116210810659854654034714271268739654811450312974357860161415647561368332951501592889527732056925454779551285968535862996358281725963821376396541760101322789836064452571750924360908972118328172509826344265565603209208417170362451032926798535478729320888242710905857202070435603932374417183661775022717152441645110568101441179678119756013860927065940687519650012088129320038887482095053882065569668828338940626344419669768577211813694349461896392806318338088024777178507574190914233759138345397798305568891357887877721001043564413135476651895617134317665522234894755635818220863494737199282166629457873350584893171755584291850507911579306351758735716325709985819255410002582021078624127745760840499438000034238031880405578646117615004240089747155295017263776646677348056007347434226087775212761295839335796814827493481334845513610471791836747234706402057365431868992656450591888286127048619875828761120940961200334893544259734860714839196095923677036324197491063877971706521252619543927638987462992982012193423394368005344756538816200450553411292507074325639027453571704778883083035446587088940633976163314724688689800753083058480263034455561797203657682596932389310180006728780272846723404054997918317823196317013192418234484386691264411725340787674913704109691517369084517465218230861122660930419260380330806664809695110600482738672816204595927696369863367373248677556153584126420872723863746946959479759638865311581061441105951536950197758146689577435729269592767594837921142322249303189580340445457171091517310010511822878109150305570865697156287848109862523392124816716566226842143058823046824001580080307225245479692528870472961903082374688627562773405619266212947997174701362275151588677753952411860057997816645481169557719214803950443692294293778246977895462735585871777601885717274597189272586014410721459180416461499346524520480636844142027901109461100412582550206036205918488584575625317593803748446022607921783478486134808774148318627042022955450107356721345994241419294063607687975316288686726932822704074527468545883788447443232377677092120152025393154729901204754257552417321993203496260066198946768477482673754633594345322286078117525104463906406359934107888824916322620781429649679644412467831228418795146634984689048760870619558414057181076530914687671685348534432411724862469142796336132435743066569743314544564272603503196953433580196227745407093258356467676753380461352458655360864267239319216148827472268054635941843067470143052234737551878902592764491434654429397680073315763383086725755985205397748894329383745057011141596193176423043644835622220351376964893697290621281598098937520092621603173326436236299842636484396001084897970768215012103139618389350141577221887468214095373010904733244844026179077368783040241702693256718769296473861539493671460672806508914397574273568507201273409155308362506983460434386031818528831097235066987057700206842004931007923930241747748817621404036141844635744405009778662673257884247761270950418021629509112891078588151859377890549293232663301215691097600968874749433294102506936488787516463336053328839117256555330989450475894849572989524367378116434678011241616877622554182000990946356822982231626035292271463206662518729761377035987269765028734893796120324467389795990029473431097044408808292355356055482959459088282179181125137873952976630849169955614422604802188257037575208999087348226021463524899683824440204184963817948786535016658235366062486301891443782443324059466665750613101527795438124561901245748221288192246201474164752615606642634371513711083601487483036465563954895157899815665889706953882249216911928370984934599452973482269559921499827544820967506088662252089155469215070407553881548664541789513116646443906628172073483855048041897971587788723303207586906056588202085310912874926026362565810107099446009544580897160285359726052560729943039630326379356548288747519769592626478505031933155510021901020271797340390322332734679268808870055501480340426795595992672777089954070824887907313981203737811014577232575138755732799345549171588455820542752094455548290146073399529659185336082267848268902318783680598127855610944879744728589171677682538547741349421616049572828762780663920179581886744781677658605803107764652258047864284094215997117739133641148471015476412591336581710702406118510434270868704600947934190129459193016120364567653123007712248043540384226998829940925350127632463218231247261809617774056715295822212062346879253817693562938141891579624358199760953214564605086866980452102782032102343401645104159001691211757749656005075743734016649596661355875529945974072684187478459609441950420612381859984124592868951484195101655503636348603879001007134547517205254243071946191797553381331547187394502947275034100124475409374405969109303820383930187008040256819129503122375651375022109589008560072882256876641369218009114750754824993242194381801052922511355572135791219736669554354125392912958705172038843676540693918520270107617692970514062843560371318332596497105993044555124867177783699206498557989063750560489882783003331515790456985739720705280647911280763037847053461416529748594028799181988945940353111976990358576757018837757886833185511090044313837603220034740896741972458590928895671094048149107369980421542548182330316323018129103435657238889501617571311287440072177488947830744075011883889424552629890201828198297888568380860200207100516739883276017174926461742734002617781584043597137329386313310454028571697917948494419196995547105857969255017212185691756970572107097626104227533688176467260061327803295528421487393542751534733207757439826296903194172867894257226475137814498438691149997767720374273141188814875785403497101259663943842072477422146571884545314562204777947042105469303530331133290305474027619131386337481080436009026034842688419456688038341580912728871698445250829749359202765995305433508649598599577904923155427221409636773414803148149089625991521070626438299493654885182100190880708533839458421012899062957359286940629797729354664494611656100126956288074481593146462594441006825062887625747823852979539611735477138994207386464247188480915948684273529827328662815426815332075619052348125910422981580377551118873020365203818871809861523158083459206394567261071002411096806094305541738925372422018829170408655202788303956523728545653256402537748470602108751359386944995903644164700592539762316444904515535161962533751517550880191999549676414309797286434907769313479504634654105858035043722969619167468713164006775151031183913662544974954311276130628365400187085307567304922055284659600099121355379602865373796180582257696680623497304285476548008012892852949271254684749021354414994356256287908955061285984753770416573732344084010244921461246230084933683684283076352332816236958111218509028040803791183592546181301129754071630394272361632945859580863589442979676657123495463090557494245459474150751107261328215731280783296739663033069917597707908229108991117846372691220198934350261233462448760107000635813901903129392337251141054515285007803329990581723290627666022426597662861610684798051327026419599239101697569985675052712147673092903682576342776680199277708209673287128724028806760475971028450361571593101666770543843733445589067743640985445004927840398291111447216749707817757309513938038046070155233129106975309428410143939247054260907033871659162766783097835985773946964740622578648555085786950184903313194144995428895224422333318547335658759709638741626510432681711372872174064858949208492154513142308088084746704093554032444645903244514716221332748547252483642682980222932482370759908085143441215009441329099023393586329316541403256993196617804152739207992236714942329843863050156656860190556980822650488459619978882365635176698546786091357089610641996785294148515629853360449392768840015941019061866542309696733597661002754888038147318882269372707518006197870519294274607914460764188612584906250604036272088511744494273980487535683292491102082908352792585801430090132782269033134626219606445853905684893015926444079206310547350091826323512602238257705786814627822788844710388456348440965067753418427668038560367960448719942704810807829291320841166157594575167791417009008953547728148623109601668842923768400729304707561200531966308091909660999544398016775083248485696445379917338959339761852868051354074106621497990303160138188718072019972993313358748383235786054033489459385411991716523111766136735025869497956409419068299976932281021174887774762582457767965576886738323080331985698381483350744615280058517907032069605677741371186198993971993661139558861675244268779532665552446435823129207820292517075500520839328701210199266508316837852635089937820646387100929491578423499306672975239609150886385629633255964186263386116838610691734355245134121974449431464072118319403625613776838489185708164846015115636274949237089908156364037121022240663825736139739270213308336992296074438238058665749769742578360603822498428693759288537299275510339779082153064965350782083242955174369951554464031552113394664959194245177835688834128699633053941651100741740491881487335385034556044152601797470218752002641250383877417738466871706605973599447321432313192168533809349431983642470698150840100406278533630399958735158198981024676880725548594537171205812221470526336603256654078206017705076863017270931724103002165834982502028770004640965913202114361501618795312174849029402107467805450794196096535223577562936720210785572348440022933058971260095333838745919315099840826928070699343415104511156662195064915856235463625720706537382498680125435324813173096596418683516787395694775892744116791216522426873584630264942639397870436071522805929201622529075031327532870111267304142397260333330453655832139008461584978261962902402435786852621197407590447383499579532896621732000379651468949517918869489214385813794799388669652693830236965521639477876021797538214014729114048106132208115568191986746271476683260003996198795852455603731067032150289999094562469579622065150865647035460426182062157099560298124578522692437206766395405313869944545529653750162845444182523136317884512629518672308181972178037138724759113931737573522309076748684243721451052324650160108789178285644941757043914264130853609906641580217573925619511333020235211331277906874564243555533235745913904943619344406006424017551006842582099189028446759739888492123690747665997693962567100640242973984036160329489635765639614891630006965468438016893680618407273880245510063548879633816608976421153176040326751452481734337633319112666510162582252442658441893104584927314726709450978039349683492890225524151776413559106950865392390329618834296707357247894481073110176521373814796368689389363041462731854845352209615699698904554912612400948222551682558356383534128924640239864928376021669746926872652068126649011454465085341667709805994478971770623536992401140426065250202085995520885699418691234330271852992463635830641852872463754616121619066309708576933226541300653207776012757878420429555686244382381136868754046966334305167713925814834050258380273662883111076909628714917015994182306999864539582534292068989092081481525834411756876588200296333334126176637061312361111556804143253322966825872220430879212320055320631505205830702424255095385851028153690823691868857499180930666008711408030629568044485130147460080129729462590529041130071751502729184231849227970692866674298116060725421614158664540769288872245845589138917004350413968415830858806516956662490500590088868963308912275343476418954371614099181536533645355336868724657970157841475458328893308908248219154090688108540804181202652307364871451236434459185300631167732805600588093058190522828527293728453633986122905408739175437408575763096736509853430698917368818595191818527146037367064394510250871746015134042995542962595110294340100287659006472305177644893304825173331102293140421754859298950576036980010449905808101444178260968323458196647801358044780683993686616479047675317782646559041680358765702591694899534094278883699964067433054546094823044602461306190984675973585613446943919142349686624120763812893247182514119328871742893725659684217335011679892254084912833332403462287203645376023942326283157605821172676531876032029798586701385609361103131237625855579741791567303680059358303532331672881377100592308921129655926803389818067027797002880536624876771300193735804060276376458103778470097522933687321249566692810639462760459574676945367917950526183150947100066506386327586272394006584391747949388189475132700492226134679109123025937571586070691074989486299736442485030348248442665891936561289440552314916471403538916975293107752350344685257596091326977519600983402773102166542070582198662296390777764167409942784918327709072538512931255738657155574235825971372537488044059770313843442249894560977041392549006570653373093028937874368854414097035565203460600194557887135943862061868891905581467388916288631306026440370884946453343103833396350410947082826343754117844803548847227096342660317358826765281901362554158197656439031962064544942554847975069649808078572906027376206013232779439089560743709846393973509464667225693190102373630945485526958197654217163402685312369710998099840810761755178833151514875339183886889033922011100617483217544839536983326836861272256681211061225871987872639679437698709958865485661349049788951826845345836473728169725007236064459369239545306960675760542007284987475540115779947674686751633387782821314246753043347619945621098054770631936386382833112952499041322534823855181488964148677325363541703143821796002563367577329710697243930820112978635260882668965257906606516960088776285808569675515023680064625967550006750152872351117580923827530117901712388716856651606701103064516109046609248198024329384360815785781775616834780112792613236565487112870821809390952368971524116941186629094638856972201599907746067334291300530201842988008828944917260145627880467995661315677783745177630340450454162623974662272993646441192496240375530757311319689647752081721272553274938634595173899649375710302775450088341304772862397822858385781338855908334986984088306781024830745782906289686064220270045351116062881285608722734343523751472424807312528612270696761203336012752382735696780204777428748196316527573033102787334527389150399855545440955001761398430445487850569382709496153994762670715904485208531294679302116499404890292513428124005522463746234734761109844792188278993197478015577810333159227426294413336853367588844768679086574943060777766739633967964789460988854346829947726402896126443329932179930927568322937529015150236961138033807154917292141778565976254517303689634318346307746629776732300181490334777628810537542529012261185130661116635106145145522793240789441234597275721717409063659032743698479019674008608501172835289412497955895386904421743064210964332625510496052287470673453136221618088503943198632047648127707855678031333669210994337464652847068019155858960751738385930207602300294112467809978156432791567200826319738827793358268697220011382713141309745834441695558903492415309725488467615241666217567355642699223635398645329183553084672482295803892260209531887862033524508577521324100110310238688244454858781405571512658249867952565185153529560185233167641715452103513156314862927495321995298972138202432433774363432748630511847876926344993558688625115815522844568445935929880298787543706155728462052698051278730248150325621800297783213909373211010210746714760624538737112783940956919992060760053288801642181644975823668776404044214539841805422602380152134645294398665061337046227142558255292401714975607623813696570894746517661092688655168397433745991042726570970214899275627146455207371652083453147343732910529091731484794391422939974769994594367823053499588151968289336511074065854859927306234733879230215867121637579664322206350531257339232990822702085499636633083292374943423903739425873493514899268070267176482217661941275047264274448163529588971810658446843908545107682063410038622484521244363447251110011235880045326774729294049117430670553700823060275938757495745494401701307847468026012066115407956736822867473375283744657480212543447449693245317805265049870692350563278402947946864927452922643119605075512819323325625262035913882301665983006221455658271068261235240577456529002418027189077673512389065255686300512055421195297015623961673526709365923436492309907043476318061945847150149288545926612941518011100354079791619748107501560598440438639736555478900090884790556988663908168601628951966181048304024718007010064477122553030169982517135088765182897703256491750097335676630289593151855126968565904536085137573390308508027271317466330410367167896773934114887395636643567196408429626788237440111745303250780956992807506009043389037501395966410257277578027252331862348989377372353920668196995508264547690335390317171032416020071050395587977681439749351432821243970739091364702300892745337524307123790377735840237411498027135112409859770595877777047982313366127498707108217617104907916251512870949159143279405772158272639558831116082323798145834727844032071614628265309241499207000937059067747549623686619604721735000653821797545839960154948869472077275255367964942329739732385615457236563649780822652093731393269032993863566470453061611722935258799073524500121493771346606611430820919483971446736944401066480386385971509753542523303565575321398624075125337085636869709948293981888158787269585114417330728911246740838817215054500228080995903025978213132836034036219356122218145187611755715529364990687845418819982911291238473932260782421185084998009447800713318268323928300161603276401209306569026956292906223181222644554761808954437456333486448403237093521634951210521646234559403560567329503312023010818923231694139018452878482428142643974467984019314398662275829759168848324714700549928749863446088143054281852389153327678568468062767589645146382804803719996335039377935689839476978998711259305217227006855047464466273479845724689869267795445430277940975044809817936031382583225401536130870663010242980602541801105635275920987514522906638117287164251146705848417181870424767527300936767723464192741728752965728541583239633224033529702987220137118546540916462041917023706031439620228038997858139067345083192712722244461691567404195157690719838693710410377394811345071490117754400564458230413158198246606527396856398962916554628604160101379514886989557167482324357552434421003921910299771448898595889368471514411643135534059122897146918974600729824661604737626234030435332463594654511536405404379698028698539229720142179670194349735749487100404580319854787603589877315580642424349799309014895143064839752251542590851853102580932796515321921756237056297205482388284907292406206674247004709354175133507491471349263150890148202213784737652423394329925767978472405466440928386502528081094973134879009131884762200742111739026776284491249668274225940893409145108034142142994603574986295973840206058144306251621580763956556444723656445988768593334414730138195043226556385608440102450400172623565755472595810010479658410143007423708092279560093342840884160556030757711432157072524365235504414701863015932730470122008145936859142767984741408454719850593878169050436474640477541677672127101865104690132353246945936425978041929191149982045007346470388548726899305442041011163663746263047164569727192594411676926586508146012778228068387024148206942399436558351905149007752533042439482722411931578330802293100277464789011006570963991852675761971190256034744394809753838663734447057222782841494906104277820547602369212730876211759979435932064111850603982043709721052710344309562990891503600893852235038161525461655152157755261167082861609333439491600377194731214478726979868557922728832295113813943792876408978096714755173449090941839502612238733442488128651880022121816341231922987929767370329213918011482175150791934478987172252954166514222605801799133512452057017045019384412655256740177470918035515533501055735180287618336001368825351220043856435101197336823650043027132395033459810387948326024423994982926851989935654953258984529324864223718930696500911653138449752704109870535134898471750648846611800867156228370167955265357027351147832675615726032880926680584681776462493865489732781359451708713802158721076850950217387822561795041054154690531088236816086835884560686193683109223106259411806807515687381584060491049520662502933854694897329157010884366408416117138996751898594129445683575743840766017329246149678273909337118415814517691350215417613278454371345947789703865652299895861486126390347669694773029828214098713101609593499020463926868752833036966178299884517716356094525590744880282126263793942946547305120556391252037526974477697032421202254373957267651825719002341592457951535442815818839767888773938382826477266862849650117022638732147508310944519417292179378072977354740722448668251979956565269474722604447537681340209824458548264038859628965434343081522984573687769917135113966273916509930249940818108760334510821738999520167190404229066714031587105005986790573149521573796761882714690208162228549425834180494125056372218352186674094149813477483412140307952792212048779681298196828768057507253590013288792725415869782719411902976469537065873919524510470781229159943521539006958393211993825850249800772025824968680421141535282674858662805801940510901792714936421914145026223770461687979101344246450777992180243490645248497592845004166985469772990009711414679879939557637528343475679895251862994829667071647425973735097927363432047311740325523661107197233891439103651627314648451667589080967096050654698014884529536295588217654507606765875256361538968111631107366821821714588709171465565189889732983253006622750943248870248020877920006052035649809597217699403595477250777787482059438007759554176580991713518747531847765512428825259409026873045966394046672078491289303643878813808325057430020902931788069486133225877230934166330210331664600406284435650664319097178950264866220498306331739596606806684694342549915580968642297306037311177683491874932612946055034254445770342252147661484073205001890523159291918597854589909928861868009163231512855197547397935884862715544110638564213090206075241824150250416600626625808803373102571840553364205869211429708994130628489033952077342961683928453082397320522886013178369052950811277691319072558598605124919850373011972350660374843490830626861496113598696689338337452312872372817192100544520426462582112074085687566031613047134262534441886588012549738072057939118269166086667079719144629106023573632555433197586232262108043408615182266741425719024203028400996516448184952050197627584910376909393856498425181113628920367051439607295223975130342707177377276264127705677543466883786760700944836847048228304868178497839727487877097968641915803645248467150430988062814198126031959969916369875247186178453970340576011022357753117228262579538840377471517046312687161321774306045848396040648616631115379724509824774262612822257929844220754985108466761757902060377277575877305248117850482473409227664489363270150188393709536860998518477262499673267879785351854762963040937762992193411908112814314373340123096514837519076764478901287589037808849364525167329676837309259650156228843955363023699338692194988954245054490224000843684167067314179460084538313371005577111372948979517490972469717787059843796217896821178906697114079263104238014633214923320278739412979710863770665076432059861465358676260193682333214833046859352952982054665321560798414935802396014330369157689883192861949242630087559002705996649578709941141135906300630502589131505364247923957036130252341698053551498088118703841783287707359213118828319275978057340443084223197402541497343090294173358778558818838662687353346617875493083261278562842156488008663880208723636453292782978090714161607422845165923482947330516529039620383250302053610127949935431412617295094111663957095437967345362613318071973291279884407944360156695273877540189560326740916647850013531891375609570609714864823031181994211165646974363936996999480246399321783480228421068661425072026536807267651185010656146298948349792554698742015458712713889157781250057099686159381992866536572254428722537299553418349797969171425094489615747165329906420094692996507026025968087969273985585445083871350497590750195636367112721881715282266376165984666477765575203755486163007895674568731484246517489976082812552069643845548012625608685150652087416674095244050342899995401919892576454652129632771492640707325846019216971340549994885669010984744661394532676556002591389315829521416546809319826491853653812808267645040073989892316346246634749036017879950537920070831165778998443473148038665855183143157517308897158919824333048243917524752643556064532452512816348641725504947582458903354237983565280590420649403430725834706066704451720954061157217563026095089122254291093728699724127015841425798316622434624125126818885775415512812945813516027243430643070182630288982645461042464132020951180832505267719305705196597214458202760365197067638023280906307640727795176252417129129965119929620773465004777955321282907155910043153340174413290715284917065522930249166770659283152647760885402762415943411604177164304978612375462878575873280823241339270894932293394544992994873337615969558311320000197487786442461144818921610659952114470980396332938883141718775069719447356468888408544888218947851283772587710077295960593783648294222256379913627697526825194227540046263319090400156717129706489256888658489315577018071495195734591554278237092263473364182119026422542625057545500075199746806254814150949084049791974085505455184783458191062870494294046719758630062581986048157322752516479464183540287067784861255002955501629062477803192874273301324739459736220702916827558839509485847291931956453056400916352846163501066913692897255051144076279466656580873260424513858351291247385728523803934986380677187711424941154510755319331205800610556882802958877836719226391036453523132463057563418226716886519809027736433337363228560752092547890075454097647669503838716918841903939043410134709512091066550747388121674446196762894796435121609904779007715560258486684516554354920039577406520561507800123785560882311921448224573529023044035599135299813620322845928951967886996939001540369146222432494209812851221554133238678021441559339792380888594998416990543619962570480114932386860109485443932524107332993855024864070818377204702504827267754227260681264315310329271855385682459930670581913823967401580217026337418527311914094862128353812942709566372576007390088355408090720855455116616423845406113854285589178385475210357002129397654494260254187568968248331187197301920447287839052273336301762436719478661186392885733389639319454812553118337343560816082886894437126166408649314626317240894794860080480169415555127240649764823593354081522900189539599289976797677205305974439476198795850963898300565050264110823282372494968896538867511134690491477579105359056986701196005879632955855346399072605794070214602225719540667067633439420772397108408540706639206757593641377568557518718493423725571344696652278629144160196510849130605106434977169473566095817091016389794406577145567387680319373727887558981701607225663500042397781252898341529938709223271150330370078465842648076754875413819837879482257380958014969187792671725446179856519204394833575840016894217951924308783358315590993458187222714731112955557400993973433924624296687749262411555831082366516853260043008188925418178632483744566324805792544410043608219769629730054939307183174707643662333501944285267723345712861278961792710049523382032175671825049376293523169122139819658795854643115097459861099323885770969462908737527365202993797919114091553992159825207064286419873560209428443230976311978274724759427445634231490248892846961590522249985447665721808461191137598256745391795048600643858931060953232792926356137532157986947755442870303630095522502674172471395501598547736308242811845733338886972636459716319986637337677122718164024091213008871255665852075055262308682492136550250291029953014727558378606536555311016622328399656704125599794192617840671926437624098574953278550734419222714154426215897696815047055695541883054100245305622621524343391789701985320150486329847947248257157460280231737473645741306744360943428846897537021460139601971152269472862084183490128094523206217894331262710673604065472772782656861687339086621243033397343810007360604032796016710059406078262727134205976673985881992301775106844731891874437573150334049404703453026728451664089235536696458052899114512200469819154280344610965513873496771455928939691598050512219263546966331289143589754609665235574756967605894127292349104625343892114348435741828863093192986812083885918212724166235744202534885480548904810713770232959087356035310801259274381788973696110953756431676923059416745247128874291953453217606834307886210802769886287103672243872976290704917470575352808939882540872518528745400698749924057561377700354377644708895551908816495562179668998825479453809396374521865402021227787532396310006885626711279436926871238306211795803083606404810353573937553431869092225157931462028236189279620924276005893836557800982303074697974557182909701873579253655642601203177940879983136949545325113129009671316561503745551360339951700456210822855222419691215954286648645240999613654172132674062965071724110030060441792171175291438475037256895621261768769268570193923239925736526774282043464561351740690401314326801686912909933479993726987063611064632899964799187684404292631471070866555274456411408511794328256831353813735716241634989121710322079291418756141342772930391231076574221471720480827623749658151589945823373820405723798099165060415326218993803004646071396118323190027252365887441229809030918724479769859597734402917128253159975638021655256988053288284445791150199760949160871656904631021050243312865173709039566986570834659855896941120172648213518140933305729741840800620248772890365758742037939183459207707438348483839536576465080017066143335816026448239374874783191840840015231538765093619895441279567437122030624757358175767859717396053661675483935493731518301230595272560879011048621448079740881943260471253751525435397705483955621585241964370244694478405161731900738041193115957883646175038374871995696353673920118408504315442286987242904173540656012646261767440046657783373832151405138047935425300590157880757019557048034264733605227387593947642360870823480973698294282216666186092502970566361071279012195309999677838498047752000404985039266145046778558697079161015788579602215754462151135297171620668193914036478499206365476770605875121988191223533859382855881539615999055521394419074582451179186162099422107407231871220481365137027028222446418825511736336780238029155294002864382153109603245954240465692156180333709300241305161930109204487753791883333660338623749181217127224397078721345912651424085026621576420897193957889695806290722994032094110683493489458863758151388186673782931961938646232911089301387679989397401201062422312136765464401667737755065840411130698777750474990810017974304236055857105472106868345752111170325249832140222708810124080515835259709507100402045828552878641455496924911519461938377687275471308344102315810575403531582201152802645378499308042041264721443586284242341542836589403622247127457746612032408247613672656304606177679009001608784171780520182670859655385880022529809068245807897502914999741407252425442040110895741979526807081898719352494227214207481321054729242509690735379247860621387033768000759257535876518717111484173503409031702408474707023676717334542230626998812146154419896126336015774572644498020473375405367149960519593597127937493138723942720643900144293182421050474999161465890989580464314052421732055822275653257211771442530669574722498290609776002527998797899883485073075776130975920562531195753491023984003798626009294202000805421367741133082546556067561642657602298610964497083344257330440429701759067288602427839194210807156795359492390723648637531159074425555114690992510809232726157936507140544525397032432529020115630930583849869141889417665067445491717140749089008264707501391699200180476447253643231568032264110472139351127611595947544926065250397981845420265385380385153636013462823337428694212615166937167360836641857700609960656389816884473620072440631458165420130021532501958352138651755211693311979592781477651999157638618021369436097938589634131621648730083965300106130280114313541614670659298049739123704245166311450331990514696139748123459193490081623105265460821097295155382719543856080822907471976205223519179274463779760370077149554885426910905742280698288058584930704080398775213410565103731894298299650579494727843836416426820810257486366481331371413586192811154094111725089320944912187607286272575047588040352187738981351408573757049165018077261741263596933689444763837992069369817268880901084895135880953662426546270819043618854198686957434570104430453833338071037748042357652353234513059487560184989643776032626762609993909827299412986930561879367866198474590047272656729440621795294587139458250926118661246112282286009580681548728888419280418683769647528900249765730734124637041267527674667359891061019418577879902138230640744213719080113046154964768940282787738876816651602459739734566452312794110601941935052388772878693860103484931489381569234567528461878015401019563367386597953305366644069280403666801144505966859931248770085129359175296308578236491490365878282919716102618951844592956932360942841154660701150709153722672961967314660854404839502512842892370763921734603662274028381632888135772794554598440652769800566747426786562580906545731610087861722209313395433021326031109434856029790394034063919971664769339428875791173699242156380935123288320702099066776139462698886611021988082994137096194289742997018184997718177750470162273634582292045675250060860151320063845864202251776428680795266445567833575987061365511123805740547054600217207104859278043086236027742880849265451049209937243625034145307456109551169256461544357895838309827524511878027707146989311365001913883290764742262825072397521787737263415136458260276189706308390820818279439388196772526698927478585661884866169787618971848637968568531270399315923098649857512790265838898171136287892933986085783650528210226656280250882935264209012543736250231827611107130320312420016082687130865123413058820208903182879725540572229781800557482007255967435456809531858081451396297983497191000634843716974131292581763166328693891021991727092540979728995721206291050067308499596443617711354997483066742469486780833075195529743000503185314137653047506173085260730273708783521504910459212016338658897288346954857368959122233824750774449086860148273818553324701921390252458384031451176931744069358054944596700411966888486248547760209939996832146734927460691480312352669981536718106738843901361447131186798075107445886213037788849357671458063684327229373566084360417963349890376542591959026900139819937276019070028073545032103100670500202295421307551012559581517824218051172266953769647850606016670432419825327754277988642121052120973408416256655610433402607970231545179271367515521057305295982869553229212507068098649310421221482696897445029018808972940217127760357273290608540811333133381927619803389658518860037060141836728165559652872346115043985683700443087936099828388302972086113806123428608018575097623774629388964293935292919006248051340568039247715065554308751019532778518546114559511380131798896512140228495649583546064171279157183020552712777080897232900788227615770805880742264309412885217520651310472028656391849139380841500931105514450735161763286364353147701674683218017896937317196436464039396256217711413940343047157888396533035878411365810664592179480030260791984118571437226779377344900420185786895892586957452398741005683928219072647714906189997464898851471965876235965221885172894385272925527819401329912692028883909919520959077558221952739388582534391229271964621201609249267784627663199604947873355681644587881998097645554983958232973970793625389896993785838051417652546242599239267207419455054757827666310757779032864019079488333034940141216229458040464581007351184826988652445046052084640218161879012203407808957326625851512521416249698989761633428127720773273557549388328317863091959794577034069273008990225390248559305165154705928346575292293842491783393885492735439678622397157972173881556818958971585065218734890483003233727040887885256299434138537876945934089317794982091394559208715786235664480894993478345666672153302637343363634213785368467905990599451712136151012451611007719853625621651818217350830104724745373536165445186082582762606032650609401670273087967443803255197500113789735331045014978957503053851133341880746763887594530637102179935460053046834376388056092669320209010630419360422813894776771939543651410981791643747890585313776831609911972612138948493489508157698537628090605035510770748019766001376317031308531449803092225677168883158847631057265963871510568838595690497653518273050212462032204511391645554460869636925009900842255743014463921519626511768514786312663155920717278603132678407806638426962219297361955264516577553942204000445385256156275730138516674044490216155656412348918763195469342088772887113625168308193868825039685749795205034172719437965162388157338600385765507435277264329908937427305627107462222756072289436269752551599711365834641885283541597901836143708107563286936158933133252348714236124086227334716824781805648968689021028004987967708556586691116120416815524749242553492498529749529815382560147011198637207153777295297179962862742562774121519705962012171248040224474042016376776513404958067741373483560310697198036848267904866079463089202553728227765491203586477482638640249416363825876911638007925515628301145552676236239842831585710038076028210628995769421668032602166839655437993320774421908858679337211860057840849184268646797625312379220434879779201514521372551329261724431639772369746097697710769999101348516899318207957401762132136361631914051769143579815968880176423961103755385520393993179990932216280130697844667309306006157484590659458431350532206468773000090214124204501987989340390937333330461250522512936075774956465022861917779735795073500586253349669298105748905007406238113448556544631795414508031842495890690340588296878623086789025378486055891025892913179417817755308960296041938722680775093768229552466215859354640791653036445800921622302474508001974391015452653247827668545496427298581024430684027660252337708759473552344046755281512150958378565758290834763063301852176054420753242109705997421076022164325915286412876452998325384622444646101975833016343322421255610113290371687350448774325562319630453443164534726451416670013433149446123744722042187013485108048670289889228802976728988644296571579717077025223242585041619358232070465759337989121896046491133168750019796278450101521723857722458075299070033376013603685033450404178922413431732819492434065384938353492173596948043332821211833789487218967377095149606240624662888238426074318342191587802111969685049401756939601318610642960948403914272905203908623705873588980817299589615252804531520213943605679710623320673781153086732500423068014260813541927471331187519472481535372853699976675257899774559791908869703077501912336926547770549205896045266016778791696519395134826632971976105937205765803767079391941943183539015781504515554145604303752519674076246337400488594150183387143822213019988205601175833681771079296993132732683355661508937498366983886109219953523659249992546109900549208956101684492724929239323554494251772416370736608526332773758775827151114956994332466597671834875071565959410739786893189972559991489074616190618331468100839021538796228019965298034537346856217470769961115277830121687020912158124557099485785997152644760747714974256840448777401176405571084427261535506674367252884181493094871803227476772213501957504791433202249118281307199819197495431148969563481405929333501599117816788646420515394724652691549488472027224719265605878305429830201555218695300371011055564958733752032420476102518417085839365681479419326286392854499834684953692225040744449895063116359464624556517164112165581520472422627951582843292247939525489637310531388364751259726216725159657517854463884331122307558196210304017754208819573737414021776059820674250475614624932776111716662852611225843743227374576111132447713247716756469242812717783580949708462411362967272653482314180820051915343074166280731129105498459252307041398964822774531005721500294716930688149777303831616734061039735258741740818128363133919007708421593970801249548417179101299663798892941590528932263337718904684533709447509924033767969164429282075519898633588607168739428135733713363312149199777037988649177052516872076741678900936558091472885478768316863507514004723610073985862960905741085140329913902092854949068206237677258416717820649512446928435652147110003709550461066229361817557878320317436398305032780810506155938167086287964591929369294448479570661681622373301940631320726993230103869186719944164441895648594650778852375876199695197640140561064579435878940731808563966537886607204176860095300340821831810470088815499507694577418230784277157114098972872942569974893903359179597718074360561312157949945613345205619645327058249772846749298561387876952166282221222693368738183784652400373512886067853194527997247843075549409619948728859627074917838266729682422120215071779955726670354929317530152354145883024001360888590972182159647738314580947778328620804666649619790849583868984682718506904415329364870839328296150934344906283995631392503053105112818132884361289993980094956696898549421444897086989776173534870997245159317535824495613547651828742393736631918559151614055009071670571750643086208404280009189342030698976644152026768508920609768791610676136624666711651067329902466258474002711311909747972209812004540928114940009825637313664477366939127125398190367571934539668777742727512778516962552481403125843360998336441671168877210198818435622575344154535887757227958361061587327606782182665845167384865872148855197976246033187398979340574045903619349061866593365232450186750948620505492387307409665182972133295530040758866137392968413463672169738899416741673535755814662939868936370078128454144203594474197331402649811775637221818267939176183999594307977325561522400406731338834637994306023857199775561025646708067894565030723876288941324650772501362248854068807952903105177326582020306513193257363637845598340141045708269661215332825526681415553310427172828075766242874440403477076020446438857620393019436400101005435798788551301554174928870071722099949887081241524257970513766732015443765678547950690069311045020759497803212883447582134636551708881980566285354545364860130396445141553127044750083473396234397162640781577796901103842983655168266681673652883518743251167506818205961079256199387885021223255263965888447346603810210714567878951774545313325323156645414022241935112630393266143453265609679840141397232937397403993645483756967881214054030484719147365846767229570951952692322394253345305375039583125714474309906191005838724514172153427441098798172644841220979096760159180363385327947787203409345559209904511301456520751799779309919030331714977941543458014134598571772744321899549543939401049474341325732047262258031433404609727652577386109440148957705534798270799616061602978330793010184430188258030747836044835110803112383728250108306870322317339194821568134370806249859652391190592058484084115084014681479757654006802255361912865860488611287285535650763566959433428210849384487664401960737075599180497201014384746110798152772266011841417500161526146416706945361650113030010997987350160108534890690218357266368429708630234979390411321181137776902055698290452129362556817857272429656039160685153535321242136359629634616349918753936358598359101279070110385326224416077115846058030742281238764641400278029708526885445829088367062111863790342592506839467847529615906490401888178697229159577531488616372200652776461085579891906964366011454931569527798886733385782578470648909945493487426139129780607052217058837957030437730457768983851869408738883385172788930941113685976055726457054260330200655503131834576937569798830848016747887477221314103030726887572837673080053932635805167656808296107211603231917659863874209279287062616327154917269981045825414281024384421239184795330397072042439364433666856788074863807467155297081900819113515899379417172703835138918616355032092136925950454177157349216846849680304029175054100551745913352780388295764693814769031667844239734107278455723374994228028973692076917140345381105165228202028426655257289552531037516683385250892732998231394625960645064102558940040349864898058616491380202560522800890595493441444633365272346082349247786814877233589878507838274378350626258053704650690671583971620712501094814774999818650808741561467916216221048260021474730129967394172170187723870906573529100194439976690141642728236020625677093023253990823376040458084545176026933095982359923790533099917721604128908263739268568074891749290222236565053877813765994208057845252154827435464654114489822399548882299527266295884843709762662299033020549869359148696101048384028070696374850958008404267495990826732845429617875959828962810886023567890905626974585215047218817145563901804259119040431961637315336002698248075669476621624440759693681979374818562730176478527393771031353815566398123722864411607293766732828703187776172603992057166339569432216798351161229831998858359959202889209762590870009540231831676603657063254171484472222218611104251713051567053175079691864887891062782625757180461026490660795111303314524615566635538657390173532186682272712554749304006454269789451873042032588672123486920498763016936777885589786577200987730471174915511547358689393560670077851290152152977103339753545026504014957439504871625304774215959812784069438692722260702391179801810970451644104726227107394925780668870642471876937574998332721788968689974380354179894848129412753704066682993907666669306807389362817039267717312010663120110164516681553759676414674897510271605369190586498268214977974564699722617636097596555102150535201533011590973830567174740867482074257011587387681855897003830449012084391413455476460198510136352801499703521910318787710627830030076623610056828061621340159259773758339213210642216125010372020265163199903139011520396997780991009731993067060683569406572946087853996244896106547777037780371067150354454200162891195963078556105652704113244880348317750730950181961716785032638988579262128620772787952012198581989056669110792259213246607217094489270119222209188453555436748685495981059945772985521955326695117154983269795878292532238629506200049200269116750047056932868765228514082582164766580701853507861823574774303440610023312300604431397548840351085056897799824833712458347782439360662639819358145477418888749762436672636259643758922045804732446911644712095871937361604481755134785416219299247577594080681304764629552981995773815906800943596744185098323051877147569386988161127387667433125878303798323795342457303875573205959846288581358792986189548767136572550821840155213088459230977080484392961886202593757421109778360813102132033606214985590560554879297388015068223310521787889112698157308494812011806854433629908311173822590319764164195769064504109072427480994038214217675101083067661149036069631000084089475056677977258097451270190178247576156556792824750196041505689555095077826568145216019256165793633472642589394256032487512715892451267529835252414669522696443415777285404131158592419448677068981800948272854349646674961063574541612516542885878001217630714791534372478416111333072530240244546816678886134139469203182873625230888773198716928148207346125980061328149979450422554365141694627801943700457229600057017415188280237532906876314287475594579973523427876645091992370645076652939406795660148136252459377782770946210001672925787323236116594654695756521905597072618371359693456753137496092616492274550458597733324269585217792074850674118597548521721814389961947342451510696226520133303312499409858344989240840596137692749348741077169076485260431613609016369286748752238457161297286032215728741182603993366213156158597012105193218535329994587479504077420949312772611445862605682152461146643506546815344002737313273673076107235302832766113116554151258263359991837324861237332911801059023612479026708122758306776512798687177311251408359707511536976189739752543972447772285133961515491053827552061203339328482939600503222919892916746416045253649666233412828760644026980868056194588959712086494480514284088349718171325348567759081024059036217182808253056448661421593292971000807961349446491404678915300816097596032208062394555901209789311041264207602119047844739283228844722640278812058817930031857541282682324465707416766072428535340594130679691673475825353896280951667137735147491275011944057624558864104392203430004385946819445444767555136143502992539186447018518547765852856124441278495127307392960791084675225505501745258698897930639355619247084476874650240297103862000827536389466169569801793300922342884525339992421597203712643760880811639121002351014718269255140506951240076736130200922449628325080456778861306105656918469946249966343818937288293589231451428416385031378470377498778685343619084903160356652660041663078140256410866133633917780560008812493464945652784360151926339835619719904509700916689321092554928394207033089137782864806142740182323871138900382819928130687316019544964412704825563468064064640015745811359516723152428506181762535230399975908816134221183225770006765205269539379225324771449766146133405964674694543189595311495310129245405193232790003632582699344116959150107391884319163007646268626338164812383457040863474052742799789105009692119998817484059703753043607212914552163446575346019244561473907482638305826463280372369051247153010543563583871475480306446851608723082176546296737955355490215429800156403319799667855901528319349953845585900440144151993833711395709704161140320858981217632657482152432754636515860876175320538015701137595263693085485467217869500044356014517064429267704594145157814618736343495722417657235899712180354521116784104401150003383620567131315998265013967316300940293218035940452249745832511220072525643930958181583815523270798869364067168158371302001102083831544604735886027243196378487945648228638869785651854018070038340373807329916764236248777349165933531473543648048345308925307514400369426494562339734747378904178469601707486660459310930754328602312690321460632223081223575788750134028129540009284551251241723046231342166725097294892369618763298232015555460204154364308402078922320129999728551864599982555211613748718843582027655487644709867561663582243160617049673847202607796431100697710886207778694352688101431827138858981750057585329301459181322717420074059907863017823665315932160259670320093312753213105105252412641225911268998989264442177489441873988318488601225359787548046505935719903409465873878135830040694066861772058505529152128840005979768100916484091067967397761150296606170093922335552661135963073284345181879346370037355487260888305550389388181387773159451150819177004380362555957468820356924832805337741497735317554944093452347497542487366023733124278957275600697928030389635271990777493633582992315706159969687778437998956397246762562729037168078598745288632759331526440886104358450340067379640950321414459069999113075531853981713760876480127524067545295819661557782286640953190592636017469720702956491372125072892149805198621257950976225187381294483146304269443044357612913821286648070604148932991339284252580223511271184229784541965924432052763712009325869131485543480826577637780793501395280884598419533450251560453060534721055585841845860670927836309108827468054468671069911768317787572242954663470513588007473653894651560794676813016318323275653936300326630939372312716443537457345341254982706942153815579855995153617848561361361861491595408258489909643615885319626006075250714972071015078438379273512218373923823430065056407710664878524328746915955150325269313591588509208989832727839789253382517869251035922973173941164323454156840980006210407248106964689031380519345261038962968885622286862958972499269110735029868715227841778395656242636531862271549974214819554374451330470819386864528808620925735822985972878110922682559112337480036084349395483721559341885509327027713206365326339384018540158157002547047547114209274202004901992478732643292652576335285614501227145015784326469647993324403376630697745095839211722612520130094860085232084133947652964290708696564787943642678338803797588111779707951557347672934225946428233800148903057613288932991959588802137741840142202896553072010079999263066577309733619975359297533758454130869149789823149335220683179971964008823698667819764525867677072787592338047737232877448644170293518707584197416634215077399661390185109019023974701929144447893294803151495109643792219958946063528376003948637192196378244298058035618060223306721169749177739493114329048267226415149618460170542771884946242540088614134088503490234705905068995635760306456256710807924070417919481777221296150116902106987558596091111782924991161750659915659717762882418485366706822282673989807255484271020468777899060960807328493698511808211700126049983511484093810517682227520920007968552016604758933047394974105096378965622376652506059864158820319775215122879677528364152980297504325491648245713333069059870279094361112731297896517480146449240199938701567265914344311987445742542404023757568614699926981201152795263437341011913086691517735448273129675674066445864025186533933168277377390705695982067326046027498260002046649250381497701666180486574409418670433736759951232255967353459750326526455403742429653257219902639351612571204874660354523623603766608402472424642866948456994275395573327833070597329106935137755854826119607392471084570675619274327821500346955268004269776952644574723076888300643912484200685836498705971762656279036850927481742510372633419973246424681413315341192112647634047237251034178933504054637310672523856707024668021765714541044784525670863914453109512475064253761279043210341753090662029906208375013540051829418396320633228857028703256815619160234920385749688242648455396796376423877835793452053440287507755329407036731593880110945715150751507846589529750415455741817785448608488473213733269884800999796418647171570120310219169300547707729652554064385724573135489386618892784388702074248837984956270338654873893772064454941392946142730655493355526989540075859874491479861816776188296859731106357448517815394026032537156431726817914030324283819676273349480036319331711758052559049199014310788695456165881126107802170533227152026107342512004821552905337756827771449308241851740428375769267287555535688728294624716935670346996968230382219408835780595522681923545222226993370360253922145364119194162083470593450395805318580610370463433318576196899728300301433031607118203911575080376368250260670816312415999566051783402848191112301973605165926482255926941577782112806549574989657791103796514728927176115042079136579166112590555690692769572004555978971858571270477821981685468072773573059245934792848148259220597735091706140691153174350563021440992184673126375257737521091809956518126969225024471878254922420051757471904226370888631261851201678369660692838997687174899266519916310509460688892304888943463061722827741779036749403062134355965760769062518434959866531807317801975034667753905173334803622984141464479294870903263078428937915256545155227599097392656690212433620410566283043197885052976269940958970906808478064952196041156145095716938634523301222192193773497992571726491249765439545505573170632831384589388569326157216990990855320565363099958969909992272754951114447996129487477256580633331037118870637555384122269537949730363862037330374873374434463854740077989971829116356285147287260700762124326550079479370470125493811044696576168123059552409427410315699913011211441213375510881723379630107067553063198345697081879311577172924501903523841654438620268222917453605832075290478525921052066715912283023002892664017562225995890888803188256353140379361970833851638751219383773736638004275374382783944619331139273864043882938233727650252846091751840360569412893830185392556958102276691575759777211649398057246616810278810704217647741168309827883117964771123635497162054118567444625054223297710610386939582796963232341913187141768863817884378388304213922104483566407241111088861154677877333920296823781108010796198804139098277642864437848731742977855589246576555015833549792390975899590805112094504993048909810300753562573403312687088803117743942204055463283559263731678955753061667087953186957377502117814126250910285675124169628859591035707910103866123875205031399678323802932941295190220802124094372088811812065767149152735735292541364993402714465641023299430853144918988929165831441529878264773219883524482616098020113739463206732348674102114338532995640720870496354946848581594205533728225473445609438503098647712308608523248191126407609368402152312193118162024337289538509327426039540315973914471402137548715920492150137753110927990827994605606559154782846714236381287600817570418185005991943850126838755283734619169250044085746023229135253645073680679666083090621110744248326734106973214904985256728175260329801762300934551502380463706738382732075225955519499449515214477938644841693342063183386690218551065842685271408025193299302077448187073131341762587005729143195440229813483403943759712077103036642380352857066477669554906146750001076846391805568782848762694834519237829658306056010790050242674820885340793161659344480256093909334541495255902503452523461921771461203192975428246790636359465404381277023827339979477022995618363912798772628670979756710361997741147465090854761968506937966823164979927755167245162972800258361265438674315957024718547573884074114534917505472222660984278787482249048342857870664420880221686542275359888957353143944193695543208454184047043926052372841502680462677458138930551916804528746443524096354288110576324365570201342093757125194462120435926433551458443990074305636607144016944312591007403605426829313354803000911344084919697669569285766955700750764446133250214762016219484936603200063261439334376649499509560822639080892931400318113373158402366755294116442105345092606186985042467084743216200998279655319979280805462913008630698496327228986472007502774373681348547942140729295041505425426979459746570802017053927697204333330752818575021797471441603836787793118460662043783192075018660703264458099507019538513318941268520684250551335849660973146587265545459294915243715866390598978456677582834467312077710447881290638201460059036171108261546648756555181733334680853523563209174267309953532156134815147199443346028884253057945251940974420822749103960195151437945986055909701249626822666750425497442875523677363457392593725518116166443556607115428925920874919457463638507140467437878020969717597267265117759999011037330285639998714469463307025016016406769826937234949937346614472431771584563258896386090923818530807737617539791325388452177571309882150735661688726982229260447058636529690407682716666933447790649021971487218688912272441533941798884491879505571144562312960742382653215792647990375869819311317409370625489139466952146722906276076423702666403383216913025731153969769175770301825296534579042097335902962362101138676130731143313061779060217219920909723288258523484495441910750853539983023838170909581567474165958862490075317504360935246382736543899292424542902336047496543862644084552048846487433603922454311612139151103930892825715530404557924757285250042080777948665387088710875782624025798000772789473972311227023795826456164603772127117368692232332005457270656099438431360869618086420224612496501687070516782957476732037065379931598310671815093731482428831367877879868456798215404577738287757459497425672677185548810659080184199524866982106843392327591966251476990380444091693471094447891892307470698551659473063084273904261122137105468054820288161150035861084349962173675154650817585680636033202895888568980308529216298302364734540755276602684868745271980614883849990917048112211984808540138593181443137168190323796894085655734822174933786831858338942310579550131439260248198340277598825931013324237661402884140336964591976704975496071426824718427033345251031646949019719178122775681546406613321189933915327478084304718267921546934962464513742991583238763819186090502448534240049394987813746287625033000697808250035891954821254835276125090521850080118199953987347072542898800435283655277261437099000072991591367258259781943136719212651947396482707017390795377297453539033169617033940347376955355733139683171657259295153732842702968169073231394132309103170617063488798067731524387000930159021320413737963529885046745289208534833753017628622916698043583217218126062807050706393024036192535178137716891028573785415824514125311361528277965253405436427130276564926256443008588580199301192970801448887927881616137757714905669327637438259551885340474179763679600820764568683374474047516406469613173339528282525969818895979844941712676544555101883336322431221341903464027705147277060201788238861907426307297313685429665901105930416050181472105791814038104549887623925497220466614793254449120693666625076549091592399847359514745107439573739430785049973500481214208135456552337799626839088456230307347685254770446880576312108905188830085539713151881339070351482508605227743234153705317092875390894011371098007152075599785520715689396403666857035861373752098977108268227499421752626054384073140908831745262121100196162634926568125106283403309621428369860070077819486503402216278261865723661825489463141301452623432200561963195140157045018557316841283066011597002675921461128396825813265463356748846107915716847597754717709572216086217633111311589464120791185225997106726233999523385364060193475398705113404033073881507098662652541302600243665820990129711403176411528397308613737097459792973718096975249894380607785372452146851011429562339663893317770417848640299673941629080465266635157648646754596857358393538882844455003019827212459531331269785335256878250335252229745070932335351228831563189596995021679297188540327708345588713975340611710636938553527710964698207660158648004561461126867140415360661876326571922860624465398108603362736101696599158838829647717337620251052317309705238693736649488258924657635295882127401368816841274421372227989164305118615289897967520963916759714984044199817905338011432150442777451350904306442452948965736053690846258533896255510527643973359872064819795601603774480814749212143858308816246631059333172755068381554033874887655518531048919166282839808575140703282907158903725131935849137138912844366896310077169027934758584946533467908955693073854056653110206076617514288775584018896841396378599258398647226727767236522548871042677524343693447251649343430086026336619125073383276035170101383318975571177463308034070148626138395834925636032032747928578875178701694492149694895180646824049207710062838914225310211771599831889343104327276053275208023437198064742499563453945979827025033229277585273578915052475027094757865951668032576998901018044513439912936489792664072301875617488463707037111040831660772227196668374790709409915216960281749258937083438042789239253920403449527640800138604937403978986467048878559249628876989306089630742123826975616067550285740512990354118803151933560800522930675791420245962547410156400429148925545310642240039514179581360667762890373655081444302082631911300169768639634747326501324631737380321169258930503585603575336112794323950960179783859487085823366092985392043960002468453344249022957530433638776138456941831332249012283691918727574014697641992746097446574602740114664775847852484563928198357902911146386712787539361792948827731869311394061911880219867168076451071629527199024208051007359519124359187602478092160991412948323019070723365259857992261725291852590432611670390904106522264139366475579616552305377127731077714911606037786091639839370188613118726673931881149315184652086176960586109012685073787997948496438224914291451117674150724420546739591036595341776802954941061815144922365311997849083930827600363733605005154415102199387198280292312207275465077754020586203477917522752452740697510087899866231007084969924576134297153309197538631989848590661224674032285528961455308946994750141696633115883516983210318596459768116706939299112373961138690104180201531305475086521411360254579663495964139717216799237371288012740005656642208085730894125398090048187782736248169819988062252365633861486112542548899126665400938387644066558554341724200466423846719883226901753733526968240908070104444896465198529039336297040396567641115339787058717015712791029101330113126251415799408545712857001381176865075131212828165510015442670849794324788633660222414846362519277735209172305719989995540135003896727258341739877023281896442119167993212256419313796871985211489641354089596982996207309966559210265373197032698232545349817173807616029674283705586535395560971766237457877109280164268944324866396307846819898711366833384426083819680494415803183301850146079276239384422562517416474809361563537132294693007543194221832795569098026248815845308667805101181869709751537863032639706064071633411158567932508533819528259520188043581603228930012181828808186384985284864548938800265006722168455216609152105319413746533649411198365351506091180112579907305867202940991039267742934316128198473079888627098403830278586012371597737664142360385250326708749271920403920182717458829801439756845151998766634689572484204382486986841681658009667001154701727523276072047326873692592200902171332016023866519648223895444532865656395261480265207034285935044890263346655119883155014583285706591624984068442699784812752285322711018124832530632132291337047988942843133553982877441651556001519769063430733842748016776016128833597111752672920112596547475831716588309814894971966471763204448360110005265016026193089332101466288610279198048672476239931280987302744756398659396048910681371648554093344182539384352899214511371626331966907027149569937456009585622969366636528278279774391130350774289936104495248497993245510015652475002167959789500049816706782215818813977538422684887805431508018179148442638614585633727844629019326213958089945120031607347340955604201609544992381028947322431191642427734017299040979559696363372157027453873152798252268498548767747144795503924894859653152772401222544491461231133106773926085854122162416185482084653829790873992842728089430264392260954981094705225554349000818140303834660802425607552119662292924993672424195010598762212168405422584368646284786056942023312446250020760078404346922330427077546538136173647659554667154721664199445603525697450389781136088130973911610676368688971190589071690654705471989889387181698077500303079037120598901167798809173047044696918920661617421782114288949109797354427098226032221318493484076263271085855177914718929389662108493246606992169360036606128629597784097399511204861755975341887567249866036467085846137858641658095081367358792553371748585473642657529527610599760821517493438582369795713160057874084014527460441741220099297110837030828890908777826194836171836347368318885111246622976630896447334972443034545269672305130099126433559385508159924745376291507036428242645416569302881590816931332414521712954226191466105258564461099702655841110393384498830394900514101105224983308684961152585255109337650839887897936985580968527518509968634737241054055552599199425939212660425405305039652603651044023764253031652936307344841272858296385586986638315979143572835799599173737871416831003834301801842761213393983903748152552594380803068955821204935075703635600337751237070113133371733247687857603993060002507490727108822736356655673737378411002507512916362425224978435310365883516033289002158590631552270619963301267685689588123176319224624517033958903606648586546576030651965912393412618475173215717676914556297256588177561189011612794043013773989353806973352242583748923138696631560925467942121438317535451168188309193634123913198765472141876612126795291039799966954885544375693903743145843431144333508168736513657728847570549815912383268870512987911735777330665456861162449122036971707254751792384605913856930959761738969928065672237785964133249273303987154203782950927598787976162940663907563036556989284805595940356957834372133045085894574907801246187547253726748373885929286874908525265886780539380749632229175336381121282851076944929270775620122205461095229018833685315576736894033169134121600809310688578662306684029966692371870081365704492449684700355381093900683910523219044278909488385429268735465686195370318168930671859447994543336671896173032926284252301982901907743822270048718703741394601479114905790809728640100533466366308315838831769484550312096838765621559659606856554434809008031313045979350527517152312295639439579079671543612103849357623170979023118425631294810488358625724749706670141606153015029815877039910464210172235335419598146780539118240968921597745833002021730222288114769668390327178820807821879992634980696676798171704814530361059008336808083140471568723781043391013069789318980480694723114457300783851487736699679156087295820583871819797504523643579400558560128219035103324538191789053302960557367539912461312998119049743184127761857826923342838043749679739393924264515780340270402054596413334903774096739590326216627802073599179861022253963144952166557148314258455290284646952007570389481355573806775127736676725345823402708248350276802690495828862055351846652856666685770828504074744007059669852957466087741140224957835198136319076141299420972262211917203269056575016419134369817599137212542946176905356344320592595367078165902853393607852518212858490422669400446190371897938035625159006354983238740581900421090844414436650240672811318472898856402406993128921005525059832154420424292088694504326984341168666014008729087241314373162865311443413645275405224752166392057549632502976345772318456123387308834195503956934004985081314624817625052116973159933544896828652218292048095666912339880891536902971581684792781000732379486568602711663007681216568797228525001363944486362136392606020694264442211242166817488362913535686368649000298487576540726045808609779276350528361033301455749407666585631059632075704574635709046608800247592534102269360559543271965788718574237084380458805180510028284161209398118710631545721352826402555772286372083809051096145268899845700726805407041310080446209821938030280120202756164174039550290621637958639061369539208897581734338071293484192764210124339357042402012160513588060540337307903217337594257782827792956547603414648759877996000977646341352376402845465867425154226363194982058412974172371759888083620293583921515497607753695845132203427846314009005220744342614067932621310816818412591373740157038778765640492538099527170072382347336863643613389643448016192628162027092122809771476573145029667271488284625348948732229164312369279628941309191749022367593084562574099290865199524470233201375258008444541503196719893145959642850230331422515976260812197312233050492539572765662214575477162671636518002742158969637992188289431819411485072286122315655593826054533019513767588473082774779996370870842032726599473637463160901529230060131712527166173731250031461748415454498967320679608501704109586438054360787389393112128171572037988022850352768535868462629637277718675321827364380620584925264674852465249148002260347351667667308225613578753460025756085307575333402020772842712768834448935181787818598262608707301192466375755217554369113353849378438446131559107671889161200455617807390102756403849272602837197175822025985855272988502305264094545446931157162539108192840529639205117837517593560680931903133270976005520042614922213879947171820693287214138316566315846881875704914213945320817757772767126906187882103983943635110908153028529046837583763370264735444620512949354147242844393062906960670724522582902776243973654030542313395162691695909219830226509810636243752924478425594567273043553997758850175258707803477099187591323281797297907874251354788548386648073159483069638887667857089435219506101191578953041288924311075360386499908348600885229613978244802388320252769093552966456343790474458627577148210528718571875303434186898859689705974883113175201322408342921950832862323834395917194315282471647136786854602672416077060332996480209046807721466180985583693513715353178587628708858697446324048663208711279297418089353672092825006165562554279686597882910017585829552692491726983545698157041373504947143842041593252502427086231816393755856853555751748135051204916065612422209039502176791440943093442556049743608296329854417894715956938894661824713307122723206530767671986003531342266126228591557472007523506354584593263269414138308823895607964857461120667132216944643905265417074524523361955221283622566011285806322893109698698998583900087816291915846128208528900332423702556055137442214565670665661786422801083703265360152814313950257488003424237710393031258818549367938511452170119796791889036275832544415030675364931287397568991395394474145299136238495212744817005421299728441294628938257224288964138406458319261827607548782063114954031060350087742329530374873890459832418267814529906755956225901737665623236119616149445653591080055787048429662003918341989265921244443978032898608735204783839564035725379808002500581096079308026801247489226576062672296460369051202725525083118210463332971349777035725612126087812474662742731521585275059639012185777480618692724904545326673055604221882777313185419761591472745422634910021252784167045286529970079132383842406939702699522227229880025818077948804661278701976377419464364874430832445115713180538708437409881593423113065247958635699423277747263674436574172528894181327714768904384767786007432429668437497481775062559515267026271996133193619265326971363489478079348868877003165272718508801820857942806257643378495806663009907950801435764713807923780685152477074915007070998842202110509529706901496765865914489685520294653307920028575786420436416058712672202675379049935385202405524556103381996234271771987932452609027713737172387471248762869750724360271522057894129999320886827560394694475057747707973961764984264614903142860845990912850075701988076582003886161339924077187301041959404049021669337080272225909564985701638256996610416372476387280369355929747135067238397859008111037419976330359016811267548124382426949055389492470154602326853914196740750761526735846091069436043588351167812825416823289114780954765339875811411723215636186129118557518464356264918353595293556826850500134729135850589709026770308284620647641083186855269046880513438660267612451683500260554591322282284874271046683193748922318255011095273044828828677222298720962929336556873845531113190965580626076316509486841623186916028779407439687028026927805803970623341301184430160927030942689822267910670997935376789420835373493178722571905393197879595022562099670087549132883274697210523157291675703940548846408233335304280523331849753545012606136001058924065673661510664072931046957532390068191856938227322055261595003067726393938427752676804860873953094711818526949086584626081173875880122972680192713736071913871897442432690222041897115621949671142574706438268593428027036324558968455895888016509911246862624102550019065714323852425628038036515967664913369968365582881558203633162146912826500818076732892203771132339480273307714436505942701387121450691576741425294605487707450537577154085645845897470103068664724790769728526565822421936616224925101314408249985976803152803513174140712875362337507844412368047341447852354224950403024932647242516809905468184061945844543003261951003267893915679239917721217513462036539295797179184029302395298716918418437621618114385993726950408947619089332849508498829702698754700567185788249707030012695006878558091029782477943841264020255277930137257962278416858974218803327790541209224158164494562274522882209569125103690706768273279937774295377407142847664506397948485218346053587094279903142010603789635018133686647125459618888922581874823290972429392077307175243054214818839897794264997623223507168612629987086171706027723431899526606153640922985084513284387256321093369632197679425921797281033353245081441285070025574934209437764207628568656071958921376640417103029344777048975513703910430723371467414938459284354870646385719166021664970275369070726144374160015261616305922685103131257665374659555118927662701905492363877902144497862564861755906098369739565878944213650292198718182066258230836712440305044003527907315959980032783374205350449369744298041967041446411295987197166409505250575211465365236560388424576955749271420934006454984835360338147695228592698617538341024030349885390152633638686486092927857869952155547686914764672317461841145752374570749416969826918771702385474851387886264370493819348257494393059783428504005190653902313572369510290357029193325728245317656048622977163683253172142086173307428395596835605668774541216114132937225138963590392201021813444756099762794084867250678556231178868977071741014053239603029700197983164836791002580743472949053531289813373687982883919799003696727920142610587833071596435811691551977478092656675639209643031352718561741017945147691468378774109962841796229493250902872628716114685849635229590338047921277237333701809368847170536601109654177811989254365932470773991505715744074840376939720746324843072268935329541181502970137850064249736955933270026307739288841074522500719911936413427421398194507092212384719344597833088251410931935770819857915827029259166035453765082893982773653856578700540969987789920834356093191426836710520617033994581994169425942592276012869665726176317193883250374267989912930853682824711069174016301223171514837391531009925725144384960516175172928976180738377109206387437424984042130060103505192283319135592713326689198150028053002839340055313105251863929243791523328218191734512785256077853895874162095098265531192557840373361397578059933827206307984404252291049400761820166889913514701970122898980447732808442209114151090948591982854421899080617946110095105716281905262503955926798732687481150376082171804147610439484145086727355256593597924031127472144709396993341108666935860319213559273124683228714354625314546399459899532755009955809385786513926751386249559884050555174908133834749951725371005270530470136892799169071028604912951142581444800081562400134426193226421372667625848087557302565887361478386634946475996667445316582226656757527218928612293642913219198371667430187476596114230388026655975839429143053138150007339798774471017154528725484226228525806094327527585531008457700626122936877550973684796369780516578116135293568433509193661943194474312952298848945093320100417220933593413557690185824464277535723061451049619361674440045124549562354645941867988444770053273296416619966265708426783493500636967218477454299391862697909829965117816571623358015895032152902438579129462219752484045980149937465141327171022319959121111209315179464646917501175183543133815840634464044044234686044817685345860013324168650089598768320310821077833573537803519044180409248070987287870966328859119588180395510902017402779572213886060633190666929103644601620352232040669683770448136130244716542366081400250151670043135097136733082832857698487179382876314612049849109777363412396543460306104129682747961395709675283237766889548117744538398362134579762581485021741993980333016858177133381686008393455542649828833276445296225016071184951638454917459775518379808875415997791525217443625233041493400967279457182774486163101106150935198799494263498931028154605318622586939018113133827794990224189017832913692521468581288224446707570707564344133776911943670958451243693899365777400816192306406485829364811215508971942587939741910285189696006525362346654962737968592193199959484686949966179317831373271766981815698124471948896403635417577732320772884542624389275950656487277348468379350329059124709773615495909004519937195496559477699469899519890828596327015226291871306978256225358078229287000726502485154355331472650051268544369407528758056319271427983039638113072001550924111851890187408465973506141793694686399690862740668414945519080036900492118578754592614680926353102907001668365867396886321747217443055209377995695522148660497985373295561248469943008162060894792200497144911141558050099167388425992178002672255433771963459968482234382747766757598120948123152583273097249639324234099835906142430985682585493793312660661015831747730255686364923017413496016098018010403059555563892586191936187671284224353093665205377239283499367723731311111898694043632334419116078322703779129815980648923048635619873737076980017616924415219011406863887378555503461674768249585100179165861125031938203008432046367400123132587590370723458788722909665042294725179420211121134214900524184125214570943859603820686918772220594835613938319376394218241873033234550035812348432471181724597689757762240422720680230011094930590517110815963261091604890711592351913554565945485408718147584955513480051744624119294684375259686545014420803496027705726663724583147002990474089445102266850725738568157124609493193599895215756536886913062515682565496277898259465883868281025822572222092699677352115144275314821827685103636234690314256463203543586846466751871679674663452528087167598293279721578094395381129599736451539065168909140190113745748332286265879009074435618823096988984161241124646231052534112944091605021499348508068781501077950879363283953275405684402297889159605584867074756421603206792515429674634531657546555590296170717839063172946081333240611067862313296483535076852155436985295255463127681070300743917115358225637885337657548791085845644466091365213814550125629971961610916631520972435808309388609734121758460323191790853901114642817568575359646539249388156767237151774039393785599683704169618731019913493027320101638961305744671583810012066096808992681204757507762575931130449041331999327062050129687849645068366519909616340554920344943254565328726146287832076847709391791545589916066836967726293059166353201127079239828656805919803971067779743300903667956065161317566927534390966991349440544975411311728424038736853908411493898483584578619436416505137772597179794685314201982503234360317684111893677106721354095510391826821810818634248468041993947383733560051270461985688652154547560913661067359896004565122084075113897773067923439399229480737134405573738683995310190851942861968284256629245220211953838247198326988339542979005649671799732037673529811876138522137186531597851289390662616945557932081922489301202633572968024404302675379116400780635423324732528442688448463049674981653486602922069641945590676696770206599756292155461206157550429733329285288968405581144449026911965687731562711053929296934989151196842227548394113923075932110726430260805281368221359279897131724168079227264528982316248027302832103603409136249271371704107273558970785328473828497504372883206279854040855656533792623904143937391254897846361571164529482943225992818856589773606014643560331682678864962038622753556444459994227124539330852349330081284716533818401437117673701026173982873462400505379465379832882842598003819362657114054613433829426261669059882885021143354063109765408196031394532307023537726349488086043213955656913208211740958666863728441361647228795532577775170224282101930646088585522933802912480945910795933655278823089016703500968881110542573395259020175353735111550077804729947288978683672472700594497628366883023914312057565715958898593852478066463822096116975279724525517285534451402071186842673351070577309196667018626526301920115042550847933223647925994549029770367474047463412652727128458000148845506053745978726302680767429694057026853557663476802103523044290535854823146223269288396766009228024225689760821130405236779301238131573929474918504550596065705186637762004714310292985044325817251280259246795466533110311975900639610528272959601519687983654827140599537778577442373264934054092418793031552926919797808341317811338739793449692186412268646854608356857060169899929888515979657942014394934471845882432412186290472836650619310519343928883479307380581388936383433305447568142724869815628089953877371789084810140550121954710767671653571539406808640916128289648256565776677081671989431463630044510270424868377647596675904960158182405948814348092636954350037163437142570316571849093547538881901965845527221652728941278351102101473028685651561986779789558998476349013478818386875249762186044536853803053797594443283803390409269339527854279677193087064825864695562431572838078577860438757441183191042266163514839012640689069502037791023096087841692290133253929339250755676658820391343195827842258167750411200818489255586886486650227738656096115918135738237404253383782412870015271956549283596662824063400600700592569192441096860780236204271557159695911632308360872762089688812694645379482068894640669218983745289642322162081665611834465986837180363619328663131434621450598939848717135329974473055205889085516818081312843136694141152071772453941812442757415504065428211764819875819382322084656887858550509575851423196832578581904100634736979076753064571815866646033361576352771699450436838875289279611208894108072096461659569591378252244362491260664260579456144863217083411050778302462770355759274011942278441520332153466405062659768319018146025027298716249966473737790165606329516800232428780496842918012670490818557142590578848104210535604455693054118282239059620261687806621155601510093390474609935545165180365594484613363975692389640436173068725890528814924850174172237466222820462915722497682933845614250115017143864559991918747928110004221161176516266209571809205453676669531619561369962930744354252604166081617415177996921171466235941216728541640199409390370191150696942209321351259142877069337954197397641907884204983320717084739881390683561462384298198560551368001421872061449389908839554384954965786449422103462233178181568436232554713080497724910895665353558057678298344367384570426417794494834017799213339521022849422324374568781799300989611216104651129546381149163805963052227197710165857196380139928366836911292263364543903791826723290383157580114048606271941484699898033813586010888587673283875614457548983464379777292182722645009232795234613475782157615159359149558628042316269754424301075454631773854433379140954604811860680393877782043475066935987767102655494246246888911206205335377570930967268388825109712915671193879888423287378061096851516278710093670678006428979346475849221354354160899699177555822499440527097154826998473335992024298518758904657784620448842274435665272261333917954270146262129216199062036180293368593359063549499652573033917738332178361345569435566618791745039881781923671077112462304080400935180448231903986197100282867823858665093022183008456017888559283685764268177251621543016582428117336915540988482510606495507691082324499427058297561190381298006127062892678142071014626267002914269217705925070298790673756929941884608052720031927381715230683730659400888184433329606242693480047647799995832486993921267146333232951909701960438554233328651650761184562568082985789700133144502678458596921910890756782607806982665527108152950913153408861926215205443688747870224992074029997666802715595845940316155784219883693572189056605038818987092896623523242858467206932587050990655752129619090836310284356101550220094880951677197770646181231559096616909221470409159322375291767123155728292922847334056818063488085946160487999659701696133612085353559225976011920864091796335890827539590522090913525381503052486198036757442097444454761849438263676854140339366256767502522834372152912227652160885085600352229562056537616515205300728487179564719253864409637251751533119529732797613910609159890176596609234851461865568428284488849464769910671953121646570972295275052374974426474765238916636167231056614466837866661423834642043310368241685859151689632521585073108498347846108911944161329910479907906076203217961201184362249704682094869175790300524015405509397305802658714312530684149431853001730607960684548164049418183387892665887553250148009018987570959298138752116405146975023762432268037133014312333786179246019774189746422675407256986300384503496702794676498565127141439762742301615180778381940937651541514962305311883508300847870574524615436911875333752706639901876847099998794893154071971231219278551029462717177737572102668120174336223261450461400567152620443402501688560042186975329910699274191012567611681167687777937359848644968116798555941019827101554309344341084998974335254047301423314260821266757220118832781020351719135444130032541327541698982166723894232554676730037701586149279912524962530821932988983573974984349413112132286600046371958994544880940118289657122057529412363235108325074075362978782229050645837630223738584059234693183193649415389678147181059813211553070900301674560159477692161295416632394578599820876139145819318914009331113480263993608146469026430299818981575976680599506510676499845028567578890602658357075203808618302450453129866105869792883195804292301787213377555909556229525946316737115206394119642039098746756861763743839804848270618445508627425730341665202700572124502636597317506087537427737492919526658754221358971826427234474046515534967089605017437477732035795498229774445937037743066795725262142364127203206606325147139498923871455069893269597107112032344994502174049086957952919185671835835408508682627927949969373154623969435953010172259230678469278768173761965740218245684165877841063847004599577977359657543464522633596548992061657417580914198076532855007534957703309744075179326722545396836942732546859482639541424364615116038831768767869841673943389278121909048931979877651591889035268728322242663744655586383844580821629302704099300197504306313775907231327434675415450162630136456741349276707952847177468023647002708417802399765491342758552661509900895959923967121793743361728505690941339217215467004941059075748358354381685543766080901825423336266363602695405273531638321527200401696975150092671962009050105033839988892630634183496204870480104697294114552066501169301881251296412217090696515918562128883512686772198212896823040248609285266960615251226107308780813780531711008024926607740302027494279382546856240702129897152979379726035567947765657756042919167201559669910048510120988814518510960132405289969706092068338688094440026175307942894670792790165110218870431164170748194084618223384928694581016395619517538442371215924801673366525567326203568483846953730575346720954798430007020883840304896006810546598003137455466622031709914537111483432988336068132293117440205886041508720520410499827624232966112938035562643779381059407910175701914024361541875711073146858875121512060849625846802943357010333364960695978875932083152380707215871350766208257426507235468593688643936018007097221850956169089478314778463807044323803645793683898682034208205026938589587949118709506956597520320387283971879914318660890858287187565772306325331920498931754884287516220138644594333069160326622250537730526978079680778575100443921490327587320503996528927894145316506140552938913017699527511204712857826714828332435739197476913431297557105590614709303198580907018276893681354964289460910560780013462934935770709763536920058704474361616048447247533755254257553583205881398658124452321454655269153213764509651833519990403748043869439600209709523955346144569038062486021929205875510495172082673396838695516901413733748484230207866421100338949784722254568466140200304853215471598463627036372063353344887043226080954858805388735879344831343084887707483681982269125622357916401309748737655759763860286364123067032638821361310897030631721716279540281070629991776930135265559483851324881601496107451721385540476000168853001663527953844727245411231662677315398454548248178371738930612762976945475374676513772239304840900247244419092484561240612761026313613792308113473856277348408676364276782150306649861058292395024593373813205097571480060114286355534287247957813487342336866353777291837076658949027502966210359153052698844954343240531323010793387298333753639299613229988667917097956917143092773657121835701454842102186887019199329901972231693166025022177774612864632351189310934976275780754841803196828150746799319328503252287894366960561133317301957826718568875017524582371010017891869140793814527789924165498002791458565189151061730602110397054687081736194554711676308628555196938245146175753164354631959048642795598856735536394177608805959370489467219101863028541809163771062840487038551488418893301865243606672565603386756395835790041585542963622838469108976553467331210242251687064557294481391500906445996938182188892288214397904126783876812040370787031181000421524585816905989658568833273631005323550942998012848003185842965034460792774490190252602676913319033413279303332899894946691105867871111355656598741985057736887292835406085504632109346638218594263717885715823422217741118240179857516775314171423773066627453792818073454193657087203969463206958841511610278621520498752228088796239808273607585585626823439146432592042269880844239024674329459444442070264543633196775597478496460173051128239185753929170537190495705215337483593623570075426361641007004496521888166104083282965108591500708368555538992793697945977415239651983315993957316667723792931704498013969231209195952285551054411281296823495701247021480698753459597619447033262879782620402588651200030890105914155892600990611235997870755420316858950064973891753835082513092639636992129773597481198247349268565358883990789341587976595129159317879548928083086339203293847980267050673171916929745079665130429021113853234942292237571229605520459910680835825325769998643739886039755123076201598551142357595696413911709155770403993057380076580881003601316276470633030956411657921573768161954869065638074159137338438582774029461121227228203370848993474669564505610371202414855779251506608591325014605260707139982809100626962041226091805712220381386730930218483138446573318413343134930398818927931883012840496453018179028051028222227477901398637799350233650661707292949592238200840989855455682058700017176814419672473642781366817488882744146897300701903825014001437811404144252825040489879590913602450585891605285172471943619203739637134854041777901561670908390086806384605554446110107885732198200529283079577382987949876621679215863197294447719597667306028076861284803635657618339858771600127334292772050319012557817192622350023506463385510722058155588721708971410870462980967506148624319934518388223706999410461858902246928042900976015889155818261081831596203248048370775336093363348427788951894775912162206923327884759413166467799957732071720007838977274912325246973120520585208508394024970626895439978413115933107281575694794969926683005935924490888179705398726473698272864174012206981909849099216920982073954908723841808804411638579118087635898439198796680003595870022226321283823925793096216640205419047149139635358089966795470592485516937809237564325330436143578191761290080313806191815398625725777137280960310319892435607952913506554680995198225705260505993041982639476428427872849879803962832537338347906408816610056988253356253855038203438703195184220495488602401263049078926269805927104135137288985818113990813633106616516222940259574536326239170443934626765578188700554761251845022032522022875096534135317819994548074031439424964401781267517008624105814806869392550363896492962389808741440012354951726255295254466183804524279602143896159314810370534897772521464030457670016871464856039678354383604382267825390648220705793980115281811671845037974002956419389720352067675518591914252838296785170003317962759893341872059394322617677735744908207940288591184262344404097019105996039031353580480626652420872882319227986821269874699509955360852644884468296547782691007273642670731848347891530284968259070388193401694493812711004355214962955171215905635537294393570967262557960923012217254769169219670447131020547958621867430122959675860608210199494081695332103982369303993175221359425962714687349900529141594906474399938862122714358848652381599083100228700872865188946552637088071989330994210528154141690376338621328033491196857404266526580688805297936905563457993944814465683879618353734038290671837246702074562451825542191425801895740433117802284779002869222328946967682962141585810476671428789488298130129576193826959918875311382737252347834415347567858702416459000275504309219110587995318652484524350066333676895464022360573237098190409385087123919894588048725806125953640264711513227066105151744459821857639755898903093956623636338144167526725960333364536211824120055017454642937600854375764889079675569081223425543521110916452212116287036180570019290431441130986660241007762447870200207795147650628132221653972075116643335454246975401944769559420770515147311708749610110702968154209275203734104604455801596231299226578481719206932399048871735806477875866396659638575750063971258614526602149527745184509013360197807562011072592180366564087899821735337922296650985131043359947716435418880707345097656880838579605134104467731488224920962101369815117083044540414454901094765672278662156309987369183847930412070737445379547124735035507757124113464067970421147825320102144792468994978330606957349961196527211578293631197267999503110690080939807480451262381118846337778013309962526841219472517525421080064342352400436981356733156945960219014871955675371589830140871709871925709135761799655669922267972242881769724257899047351216443993023367346810972820048273951245755957822535990496257881162391895401306634734329497769290155449674035318163135405638876777345351595601603631639376187445235323755572462155078591053661255704894334890795576509209024381258350461745751395630999687228970280111493096557164058709876206169352211912153098377533030171760451217697048779283018283528899863529092689045310865533697333808796475232888376298128445556791162145308330187668372552330033580522218690368288131690179992425002899181061522732084641471213482452872483284054385280795375545888519303006145886113764584934612699741510940121622741252079079436387523067901453328265596273054337828083569598857940617693310451714055699416934402964684858681366798882494400918900487357572741033040159171020221836484888613486214038059380156910579958993751244882857906420899244423243807543648578167298957538367467603194215466883273954611274149817408907630073999250091125054455235373321810083331281141242326923895020204993391733506238396502441632760422957843971101696954507652521677492918339347015923511829969849285331671869644846339390827336461173550626079543692243925367996232399318344272192138723565988951242066882432728445432059789623614155777454220406541246844559360846944169765825105683234142642650026673063623252310407069283286283025860835299346379177570799378835443450462796577676249154407457193090757945840970794702092267170465405801168796322727010802653278815836454888801941658040971722881407009113101875196742877798493488097944006097563252264664116922600773777080452542533323564680146911386152811809078034917792040536671138174055734252193760523864642407114435190003735415865678708805250369204694925153647545587300657659642411162845117171208061876231447751128242952034362264288528330839773947104917649317130251187337167577843648656395924300339382305466018444060023554273566050474633345734338629437334282635323736275421402320102286066524107994716352915330889199394570632225124269367306823846040745194566021266826878145502138831475755737524785375016347760592986481512744914319932602515139205508963978037337794781078609544791169263620656728134329282661261820657025094275712289435777492066949273109979103111547792644738236927780948274723554952595894526195022093333520837794581069883436648740307056392353486750788845067905572834710777352728813968828322221024059442738853023098131977212533965748317856558283902685260023406999565158357209013790476683458081628417066571737947284901939171354068353288817605231067398993004490443995113220226887400351426243796591868687014142056485939159682958522926301823926976290770139766309916720944760021873504227845084752873755979951226212013785185642764158794385659651197454011544334379132395076337345862229781043373569893179773914916345699583874092493992684220316445640142401426645660097502553324576445076765720678504701763625161974261628919397531507215743345925843398798754501669921720699069459761459184448476634260603135117396026491348294502422532864413531569513474180473242577751981985832213281270666343569647153567787836876249425157731015311493368143740009853009455998465852479213827977368997358779545077828194896051425514197320373722276306081599128653355877624457522090857718992057098257054569785036693557826414942043222981046449315108974987502820313112143195514282965615361724653139241849798648859963502046032683284521705167581978226666020715118790260815654426647198959368288646726171092211064031632162440320806559845568930542865148603377596184277836385528238757667264716264610879261107336753703041404007726079481530594155233391725104354422466891518646356718855995652510630280108107975447661984245348688560636111088322483663577899689311813508643510319470009327763700703374139998577600522677721487636747429658418922327647881671973083334006875730346743306035282751392788219291110575059485213495929909351160864595253122510967157981708770606105759186433053909994522000025795420642636380295850565729055045076627596686758132913819782696360778686206733178583206811327942337442751915965464121869593980455294351917353868812650431935891352472317409739166154044071171833761246530538926882878489613713194382611202411180994806405417957921858002760336175477843482324559697647153769344901492451231182953968540035102042430456055729442550246987413014655733253588046436157482445237753742204955166781717470795756533788722929447570169087692107346130168756024184615457374076728469882885462454974798625193946480798037828557950721394881588761486841327316975130802328891750065409919840121435635705332578017413091118782329388669224791757526758465321435282967816027359608278142866616346225201122234963037123652131837232198450686703121285767791371548701608639281241210094262406163352097851237936285997425374570504001458225969603472426380296515729106310996294965206767533461276551487824837638384681094240626085326911116782562566408252594155250673722723761452162174082703020803490338929489863354081691699641078793830473258277392800730813537395503828788433198417247069450660624030588099590569106404809710026998478543271001493620520469030122762506303158426870006146269416578550280224497080770867688247391748680499792653357659679162987362160369547779814922222471027947482662219436243740644977933658912699525734504314909830938165874283825535008002548404261038078982246085975786614945094336130052826492061082634070979464344915690845743550632995558185022543152074532019677680033388307624979819361612244078848388160518701991387644281537979453102123448829808741903445630257298143369016159094735608866774344721623693712267711047281837676683380143811189837870159171617103521360002944367544615625662399541260005817290914083005290739005156815537235488594501295824400623410534395019896201332214207242314110469209488637833876710205756648831643153891666162144107552399684104272770565694910121229576644434356186605811641340018957228780617749221709367185674337017284218304581588769334371888313101140325713211676461654854977391913026999834120998533684607308631578965959949380256516468395860535349242911268273613319958302944049395603318585908653760133558421225648669754107831718636660472810310022387770100922330577897074947286307165717510176116017488783385650661485984195655322483705073178706824657935906038040948190393592675829995899352599064778999217378110933382394167272979361897848273151774753741264700241502368320864015927600640935274335444418165653141262501374708699468633379041139155518722300029279769834515247052340477536316396418538813420264303555543503314734957820451392337509817534166804727846032506170773056791625933628352435383365045942654984990340609151311618402764166302756593946876863219215351557836845460075645313614603162956690278274785859954603434444639792922098072492070460749027737370269063561557906827213204673876371102687541045167391749387450667683428510476118830627559116551347063994508195362615119889718635978490056969377892987734170039632152944936669927926719706230628228425991049462153659903378199637656404761099885592699835247608220151821970050139798305895777118770899412949013569542592084193392200996812757692961912015566533399104431319827282124541251084562381210829767596615833382317699492085237552409012028868036629663662772425458287615144756448326850166387215631072478240840557422124784154185565518575497049436374946541135342931461645703156256118187137643832126008090931562464318554173165028551128496694000068442973189356796911081768007593517801471347335104602885187708927541926644123741979979813943099256516797894703383297823589685975713302670824412124775559611895649699710023823869308873012900992536114792222301103134418772995222378619811653189932237704832542390012024352994365116213317511291539581335626254887785290000803605964917160551967221127448018351594999980953661253995785001526892397220937282934126817037580615442851213005029433250714925758264421751972031089409185575070378231765059365604460287900054380726377284690359619309527342905423569783418494390931859418152153108910753561577628769487152741651399685238878127837385688659146774835230621851046772120547073410996040745030291852329392616314336680873001265646341533563200820211128658244003616346413778264138500739726082959192581856048189025810544065563011532874923962705691515688456872857384410176725110634469935243443136525508251739192459622271213246024642825853056502697383961256036509127051608845543399688932758408066792083616592135538486156792807739860598120148122755430143100311195518421259908482441523814553401616486831539919595282006571580971760413112448143889945890338085988970934812939933441629705938938592686891040788041514733436603867617857414740849785865236008742335805914575669447996986686658245822875640499285719088541911560626480463612238729147012978066728034396501508963215859630397654119303040186290168145456058637922001781921221998460301120187230069253183464631116450745339049253646168095889442349081088013788817369328147082431443374597618902574216148296324543806543628384701547390318123239059361776593417380926233523200245872751808675830286251575214039855823898373996989185428361077670989974070538353857766746179921111706831467984776305774942603221826682390198191883877600004200579909300582639331309583129066196043076238735255828730423043024867572101361918138232662837230349036609919487670077072838519114234382722085047097274045098533774415307743828913371866587001227646087164635551718669481288446020451449522520235183302797467544920859906240203091984594309574401960603292054072053211545065896906343913716354383972983082190029564311282128292333783006061893485264369654686882899704994334707294663213034710820317535119349348240547277425173159243780089775167008882754060387532542559969369209748067402961647230292135407418153441683601874484224339872647438985118083049533848738346337427169582396490106378597595690902137594411902284393662200760056015293657931023637609685513128933431971174766315565741413898146883795038287493900017917311627154446181232974951547416656769676572545320317047206277775609235273030455717361462236758828293258501141269277684998347811480080936215586885745349612930082705526920324691563614524945789771736246219027060106067934338798820952631132401766489893011277891407867964199111741389897259961377566663071389438617616093847763094274770063095683920214290408974264117128369539170526813924995442341696919501299895040217219323760143914642307062854763834637595787349390960236241026985123278202918351684560932905662991780143719430761783616883996923755262476151688424769663958060259541230577725617657633820966478259285275686300848548235444568457478360551960454363953891000656623703102590715435888870241146488061538123637636156008458032983197119046768589980694336423967751528808881369702764921593965826846126020171195079319359900442155399698900993042605436187057850760667207885022903133366392721296908634303148795949563497725116918226839374116285220762169352164235131378475317984150726999726279514671963869698183296975458423074446878467536872675342792129647045052364128690018987135170952195338638996102050549492570080591016687263490496787800414290836210326404993522187061324965521569471397592019982609268521702393040260539818428341483282738910678340522893254010412369638312005155218321957686951126549318942476199954356618385152385681664482412343958090805251624414958636332139705571777886639537151184559466210371366389800788079766017888399699431259692874353846280474178553340903481745491712387354124704974922982896470431668097078112392229816843691777095289642405580693672521698310747342473090014552511111552275947771815768448685091299646408744105009289986277299023438100412698301517181933687920818504934454593342409568202875513597520175963114510038508950381048852639485272082709600594063838894462969721618020071473176853043116692457348799738191116838281898026959085648764562832306094765562235826008822508226547689844155919706196670076245582776318321203941074504755653696072223264270073587454051644728393866062766985413651819802598980021049544327144496525808072366576604559973535269318586173784526708192800074654589307917439720287046676177260256086515322948287626625608695984401153915742979926142346042316099429499028991943684901778874393832872024205769794372640946940029529236120646960420036465047502682128799052178285246709176647196135992411980022383574158527589899290028184632650330934234786140693390810641282000628058028124137021467296383633321198334771491913425931262923552388596767308946162866182974755666912427139200864609808758945137683863076827120344481119017890471071701238304402597965996929934366987807930994784070089053841699130455615506681436296065226287483103447970011577404537869812797181582359867532383307893944002488793598798834513620196719014473894270530030646547679746886945640238338547540874750629496571611218518698678279160335723927317444311110504100134396605302434304660303398115348977169751078396321561438706250723706468171430782552719872365067972502221697624072612943971654962182558260455841720751204586737620543375977448558338877502883371177760763984581844382624415243088081359821344448546325535488821776694387407643369399420015128634812172142925695000315688564148413402489081321116812055639125956242240427437873661809732911667965690007725748972359246584989768750252493866486350460857529097378838584219651911456052724664787502939077924330756202451887534312203727982663357079921820521956648010611683658664314721869155660528519229885484125782713830489436805006698120809206781885082976246400141468679118053828075040769475984480634648563949520082556183278581927709072063715249419301007450485270029368199482901725852847073903395661267541673933668585483831490970893912010043935127561627501254004581885580409195740070297399764960613851464344069517362077015301391978250514548307380845253214124369181012846136828980893819445595173699883398836180531651868255711050203165157433501919421004815357487195358104048937473270364062708962845420124030634019736087155326002392515413005315670329594826875406931411072464135858089124008813315144116751991754996916690203154953260254149216535658287322017116209111598470962756371686579283262420605664876160793319265947665731040831728907717495649948473092668148315990180010710646643421846321386235528287863754799342569761118704444459251699775746162303951501630881378107499332379938479492210827617552785035166105525570778480530143196728879488522993734955293634708190416482876373673913841162143142696230596248837712427077368007409893033489602500808414971348862019745340636329165742222321170666307175417285074082802274997420435768975134722936631374435829825707044042029765548407859796065101856317343103954137876275276161687712191669587012461966345761409834556194829694353288930360378719527010651007034339751075483255930580307735284120713171206045680636662811737265913951144177627354560996534784762275293577649890665674651765200143395161463047106463260281921100202436933985955867224274709684194173467583321632216223953628715620712726488983750514410419792904202410148121627295614571347920433997510084233016178503370647475260365972612619830172434207777651728981947457107610501955620479763995385064257976998129926985833583658834193262039735205176773812506156947547523871713498946415783656321531693280927541359812881340430830790766558889949909116458259699553874680530515573414348562811897038878154163103202403573739795456921503318572569190559178391045027054325436644325312510487286166413461738022838561491193510672319878194114553460222136929662713538163328251885428204298889926993093224689990579543764421818110235327476126978302542525345313177425003555190054147138189771764068817681813806271947501870074021022767076912694643440658017332541397697298454293594095079068887523587392301421336164793859799396452693992639030241687656834664936116001414684825269957807472848344046240086416889772837134450778983935078416713807498342026349013593409407343616935302064803859873218684812649426648036938363375337530852877862027447118285803261640455864369996060985483272131604468302853590182739764610958445003255207266911305446346828883546033135523913881722431681080315726384147956226610391384164825993926044316531050727517049696604496916950258178622532414235347964984918776352356213835384054610853047174846662368564836846581799152057041040326183856217080317980327436406420008107239386984713800874059323387421662309194078943320493353428811067635121964319074814001955476806573082405954851212691942297415438857976379520586423930771919865289760918320944028740626828780241719333768132060217314268349404498819322130375360792164020303572326202728801449041992332261974278138438640118772463740068610327290040620874149164122167555790608469792686834938407615895051844972434874508473320434290808990249724253529046528847513482412014725565741901015879328851109752819907138601371465262516688691297157471294474383211389747601674816439152414793953058819563912307174485152046659854899512993243101290948264110034525588887744404184883011278427371300936123089092005015057526771319071982753579656813423338248640229560439632914780917524191532593944573555847616899935841363270451796759215543140164445099128873158231392917178318953987246583424097148713882711746292674030502980336758204542743149532731921057989658097879557928733231352289792232036133118354720405957462677847155713258121983921383602655595137671120742943532699838744771018969783594180197091624370979138801526740002332378328961466727465848327558595938996218888000639810779061722416174929586083036999837331640780046566550929692373584340550386014514457908301139350906222568153913586488137237287758437450061143614382719796941785371322878977720363927501361582820772034449891146559671090023444078160596839766509991025443215811249916015921653929489166168028153325991219330055248863217862633599658683471304378319987388234901054606843415680926574462375028248226610338404411189454699141755392617642031773244840902066196209505450898259519543918381800943249451687927591239849902201019799966673726325511036164382166221941129100737826135987439744540393362646954719972828955426071548834913790163508683245392013898515837792679567248732507502072816383016648170531644548340812970326635723435955338432477242667707892601832391188270229519653210516444355411942020288136558762143413981859708665797897993146166890977800794444073399647676953567260091242612634678026913915645823914638813893809826631182983768002008525541274689555733399059584021454499815045361926312545833928465917852501903713512409395642245142648530426354856036611722199470423372778175825513355691194691044526705252109071823304083876803321677842269069049498376498450113898233717299840060300370933538956915917551922712204366590517812539867413806352422141067779897090103304228882489032845830543151662157312704811620466065060329108513307233621663569098431690170934004180999004156069311030003826243730321054765436873486382575707801715947486559325114504763237783352157247447391342455344239418109285028238129470443477252565983274198404395249450046820383318625116134553111028225078515516915371636301427907114508310475750205860839576867477000345042765949829495398784818209443223129402805545474744161717074028178810335088199356855586259641807146501597786125063183131892854557557319209702239410424201317537508873134706618203141571982456794820033280185853614891329871020320073743603981493037244941967643938580345228274288147172516926054838968778278457701948803057396875268576134532431448339164655748707851939879507705737272266565841722717839485490598494642727996671357288129077883172628100841441692274146233399211999635127058914806402838399890208170484616463972821028002115290262680533655030176618174748894810861137407974853935214528559039964285995696666940695029287508614848476794812655457120808123262330335119393911740615836633345512829209789047085586717634270232199141836830296221097168026644580453201965916733448134246270096477541839515755213303362773762729912048364745427640188473649915116101270154281316180192293794901987603310010471884743685357494776538277013992474470575141508386926448596218463528286411068512460079140250523249935389992577113758095189293990353797228030210805259693999656050182508318579448806311368546366057672480523217776452207606295385807676111093894891168200597138448216725288851519568741932604656623631595029154203620365647479748240099690139871621436793754303341923073446633821716996391159472023258075822354462914493145316548287209709924040638012700157547074826028049466502804929039941180756739340955170229653611808515107801061098889438313504219102609033130969785508967090414999275897124157017929673521404940088594090051266553772075726358674748306573254180969733261733051817136438898159055322283637587730732488629027940869477183279853530699143352953377487008448338323921690576148609746456353949024992495391030069623314456603571019006360171114100387239136446313475196474514128607399601646767212512229515816945509847159830364450098922149714976091754021458195408390237535620615063553940137412426800791300419761491539492381653184692495059091736314690875118836896922151634821369929248780011743144324396215277642825190796521880124027711173568150047686670746998983908638981873674843003598112769238993322351818570711938597033231296363421440243503470899222884690594528770198541246756198229207125398354629865248129699862854372890072845307558015370367720789073134640805104232603783026713635962868801000145596975871981049077282655093232667799887453609901351691093863688578387340373811319560703510662466113935983467745325536541310337064437162935565614893180843939236782922454882826785180580983804358061849598529974640204920355989413986124161079988934996383050784050295886203356224677961734577909626096246082635528118365832471734788935085482393943286016848374320666356324165326016667516915911922501099374214321375508364795088782299327873708587638326320662743718998995896372783819744235473889700807957717923710973354987660946145775732401749331470104102396969276354987743014766354526525077611446527676290727528743723285501342074542079545786299252242169899616985368001225366628856572264832681290596933433661344174101312588816649528304341862986148266956288733705020369772143996516866614908488086327358535753270623019732073178487158838043034615706675152049810992149492455790518672154971036419300145200043682222319427440711489627475302028565046582040953526920323064304747865790967549930304730688972998703938252652666905551329309647727068940845395911972091992479237169318137594581347838462599162716247203668501720271416346102197071360109266675485041091175161597996939352064747391793077903243120076841438146014651551010100551091296918820692840462263733221184232211158658329441338731626377932960499791062827861762175391709040381256886948338865430686658533508376714823722511600450712775890531212895901034921265896310968175665014345192406926704940968351352877749194605359806582664883633916365808936114431779212875629125658451391634759195589516636028732302552705887956708224429347905906813051954089904437456303343835513562123366253811623192795501606684926963541066285602475150892271736685932724605782096456481588246202907868732308253498333280169520818709475184764960206024684266576437626667765182925259988868625427474914302739902470576381770505751819378223397886843833364336330060734677281206988025802556480183389521713607107301055960566408511250817528502647729784282892384351908726960073674269419492973848474676433072284817787171370584145055200530381385193280906447819629695392601663285629848477326420514368004225607411174806889451313401202876758182872428834077486377891804159903445368457169868146734288278399110100018412448050186582281633155568895297867891832819888727057110169754192736886226399257775896392746038077419599147041457550364518683441276866252623844284553478602800350411760937909902127310618211801891786245770694039947734616496325566196953451454446369145201928623805545460024597349331982828324638074557745007533587794848744815655558181119754433428407452914777300564444787366718979523195713256661750129990264288981683409238143459697007960605892146553836537651021361450183494615091101095556418023020094411077951992402525656309648133057927390802225747939804355579008587012449350619265400493077558454698572547790339413528631485903979023034243478882020610266727408924849009743470872981345934968055715074330963079093249111871466034322317309446196138079948300676569937827372237382432679651734173181657431950074403539004642724564856366743718089694815051823531639423138382037756848842440096137360176372396443591173215056450807023408384325415053835747567521332709413369255150224211046799882366873467479448629422579660621150562163290367835780272081359103277825866825401190364652100047037799121851220510528497707428550389055428562419018957342596836880591135295802287770863663597913147149983637636276132924518980571262157120004167613533160660846266299306339868683060808429936215115512070712800413946163577615431681553659242901349163720312588605285226544838221255897752259911598124072702177586002740591592047264862647733277817468149345196120852518840887644128001380474949702622812350839224606119692050919875124390299184390540288700294819820959713394412471653659229487492813926600665657370778255124356213185714490171621867929454255639957949509811740435511897982048304609215347546663067083776240236945238061134615999251060974028147534635557884183458840007304578823018413463301204731436290811906815807058574206101279636179510573508386792954287691679518625385716563096462659053658373830280348645119565471873009698149390356308310905362179130632439215003190862211253703052541869072726139726053200248890159115176474831865004845072310509266034032176744207562595825497134514344085497620452445195595231628037671770579625961593169383054057753849449138129053456577447969133661536378619423510468961927610602635648249768537189410817292498543590344143962631747130235892276250483930602416436984374564287784404553082456874951471654432069636537978326676886572713485188295936479329110599032427601059595036283051010592058179032922685079561027687418239799660902930863842427667645736862596872367986132350950046562443064616941004891551312275079742160181337161689790560072296840666875578754078582673401752664553420737721265864671557459529270148070573063141384362686683735352794157971747727136107310128673455624209261405275118367856707664458763055388862612752244253139982302843597143731497391311197290947567258489759417212974350512341318036384725175984669863973043984715673406198622390896871110734567214413394105227064118960794253019453481564221654167457425353536821295417306441195920056581024615762412124412231017577251044318707675018612315720285711256775151424574523115076034678131372518560782519626055515284886574235431879198232133118801486904902152868419146252662013044614548238383298937580631052330036675098950562429540547876862437712344809606227400264388654911805983443970853011800467214225333077485357720230531298739068915782783389408269368806515614792355709591720206512527959936230148967834395210848799248075816450813764095135904565589458912525993861999537797078971242924246974336202474931374370461600372069786606245589999199417797400967829640546347589052380091867833559866379966775188145657292252052267861817488955329558148620446622644421204257095109489693020505648973303748987771936219471722458993884079254195234886867362860667643519347657273164992221342471710251391684620783313330254509832457250923358328122372053268731619876596896614188849213331868795792179687426888414382401287932491705960183769714513534190173144532755825521211462718400475966561380195292824181683639976030634886492137658854487507633539202634465667359036799285913356567926599564492292110098819799986927745439109715847744541776188557102664533426356607844007698858208594918823523330525325220650718389791789004568629990911908738551532162360356378248042071503604478809544713642899170109722895057688938365521520467081867476895735179282207579872383167395785811755446010751302113069352430527842232504368298403692192460089312126351412456841366497269197005064819381394021601601105933357361284020329360583953304805989856351546867215600084800853742732169493297058659447955612350461002351834153438716813175261062615723588029144242513321598358480095453680754812557367942015357458482062960013509740519528944374020322481685253849520834171905562136591537831926418657519643786161638356482606317782066770310907122779302258714679937907873697713421133620698717017282083009960069518783455355383034262995035120569894711361300176530473435610584602731044751156753354121289351018509792999133584462132813839741344515947035872297669294636250295206972846682857188512768015984530407313889501588355135831777680535924467380959934352772932250626939072694472546819352086311424485056813234396761858241392053356622438121571992809695186505000257230898336092513845788326837215926194282226465520232097312452345337186715843603423210024688445054958791110855469933433202781134000152951245633954245336476704917849432928553699261393072159837520979927903577662331736224596917656614117604490740282880475722139278004937463024699035515822526704687754931755740537158978620727361339442816909053571916241474594600626865934196358350579699521822906965391047064707862938656264460192562988254741919305960595205513111380525147049899278009867019930490439429541131351882446401039362193753732990051056943086639698398349439184694904664484788115920954990342982742877606838784306636974766443770507949467910669073692697254256607516434137005608623823711009358438827176546863557663998297589613080251769898587732990417520171870377031766080695072316197265127214785307422465997436942687742291407519310879406252014256280193095016588440171651126089371970347965309003277031501409785534769783686044879645990085946442178007622393009607557119911474357211335886202651578359631699722779355752818201327162578089457879422867154017916111577031897771362701254028686443974230795023868517441055806428597385143199731379231029411912213229707788154792068370551560775955685497802980670555895122192527500853365366163257229055366867988720529469700252029874811614269272803988368381214266990775754780828163124068790144253601905144156406711342305766791019419868622584327249779422288720173286446995712702001817160740520702214605370765477057670047222338583121654984625559357570536718959450093939445359354446106680710275818980624743523993270098230171598403409899087295729808060164672848165178876082619230729933419009122022549768543523836630167505388985172884646185246870948801416018059329729451105049921407585566156171127665274104827441458410209107919706481654539437666538220456642354952782227053630985556309018740448953530751784472420274192646738656147981078786554655463598262465469873102359571367967085732278667796607583684601434046529420951586710038549677894375740252041531026699447948547519195127953443789602137091702591743990509128947358029671128995978541680453052291597077229203912700636919748166466387331736351258724085764489297372816734701346234022271767121554145306900084592675061341519256233066638806725414280969833721137227467766345763864947250372344466164922526663707260370812029728120210055105377229139074144725070035343264592947239878220165719275710703562382566350518036486872387546938297198866495193722912936477030325480438963654022776144754326951815333190848943686429588948888550883357439156620156633851108275731815393629799225398405412990147406324998493447649698087332437232749581367927690453590915371223084827938878910794484548460196817917644162595841006069853074891906206735909258218314623858236302706299660893820878315151675461491722203418113001183065727249048933975623988943199840207460055038994546512629948975564305587631834580676279248009692553408704780295934275049711827522053783832229205963764766184777589824752109288805281161662959547719970129550663012991193088559014326512260173156850699050003399751506496456273217385520114009440855711343098926040646600012280480467697585865704083402027148722860188418553955400658839491187455508474145738542783516072239187884505322869675051449982850865401047981686121209735682052114381276430254515723780497586253701693046656120733303515329439189011451005791564763452028646484175282032262412655291907444080952050436538653550275288390024660369989918672908335267115975018506966692802509041771678950506674808659851008342449062771707213014508961041571992300153436343831407822521483456934217941325228344331726880959317555302616343734728388333199213525162923277499946441331610223018770958908690162881290568186515318698768150581865789899501841960140542297873914904362679294268641920733632500039701683654578591853614813745514165513239580647003102556580704065020673111355933344876706464263946386909346760458183706163955948737639398708972264669389679166351041380709445216658480933987610936845715501717359546362799097090373070855202756573883816881077685636301171052147880356547121788171213306366611788342526673380284760113401142637181854130837467183163912804304350061835643100482808550326470604012421165088243307098099446462209614687830372167195717518908533137797176292411567343629498756939480201692192284588834585439634295872882871535359989276017876650851673157404133589390763617559105633774732822978559094125688076470087804806739108815231787055742057015848087537228749913514210601424494761024592862684315237383765816803651798819207707522199688305364543324078012090077552991755577466517384229853703881276976012547248280851085206519774084698333127140527255253689365267265686647042254143610158774325232891156335895169440237201982375178656743170870532170070662861613606106262903508048724841691029782833171798024893784666395783089236285136907913203178253083781107061027937591875102459516959066631863719320080990372965320738785960938755137203153616134246925035261180382605022548985019492317973121144622976773509329834373960759693485165244815856105670090029865516649585075860089747080795859656198084308997455738810996254218489616011520591951379240110327483561062202005205877348182173909248324609603490495774300533648849972802208933153625311000171296020742078077871936945706539609043005026748822922918559164831755582685661138098539701591130047926622146561738126857037894305534099605962878649744205804303104828217501738571491394981414220000630804299913732496252241331193353453411707353877115407271478099705113002011249381688336106354539745850508396485231428898902382079737266456956692921894038562983536698442181504783238801343934216792272964734073472908109121146395247409539858813398157131101568046708910678905430741621986325288703764361111062838319495071550581962076417275294043114226352319359270504483226613241236472655229187937690701420949948199676095517508445624148889661619487382780353426057870290723468644813569385618267890491584937238934171585597494569931169501223054657694899129171197576832744389641506591435114823176317231723405557777355578538796243162822950112743733167573121678625475863531883212572118943886677369229892894145780778232869977554028347261880053440598084510384214802216106447111227849701636349168846948375028278138748978262151475916491255275102943607806761328729706443458889465113337400537435496285392491381203236269548829017410808484232807702122216608910078898933824700648091811360701145336543724930967846901761586798417331497192296749395531382945216940088913240749826521597354104188005357047213403735165933355720854533790765290624345468585523742579967365719504362614449723473342876305968861265533456075391995537257618604097413038094424137508442939109611423354845539599443875306582782413737240117876283616531991764414239415574908546862331945755643166995375822410286273032062383500215635406068070967092937974870935786452240036268452532950090742806838842301499871723157383062876843904550451479602285208869347972043737149202767978469073875027325317044690100247924208708756306102519163120814344343489776089405092995245446652996739625029548184492545504293845579986019235965710716571223327203739252517687101639143742448775409826930100462011452679226780536353688692287345189367995172925238034586478125348687395405322146411211092470648703746238677314311170144546909210421860719968621035327601704298174651635888075712425601047452176924066799242984853089760667965086477657101815869754630377457282916629762235834211890760146333791282315627800425706442152915370953743883987736957868700757755861844641193826269599344167774274171637462993524581670006420094354188642838752397700237294136117803225707584851578889917636718667225026597396533307870027471444304331687132543557819116325804978498463295549466752254183728742057555388729754475035441613012807788013690682772634474612551670342948169967444402202161721912039833505494942991421051026718440566492915619863589935246035829334572997479696804544853625583229792650767603224243748644329248816345064268219084388985839750376601988584894450906508739623928157873118844652760835671733366351226386605218499575137796473010358492604206632352390008748989011941279442273845314176032705512030928592695873118338505431031578005022578992781267594717644573609118638946053575400589338765892503768920522990501623798383032622880606892649041930876740231844349642364345666382391085401781859946175602042925763378544584836729827539534591703789182030373241321076373851288546060177458760751566137241141793748434052959738662880310714911128233610851045999832263269513363469404343816822928583747497720713811247690905397381980678168383343960102650939082368922620459514751176545689622679515926287437827622982268115652870072229600382184360988854154233234903836445772545854966239919573335465865092146345306332065462023043507435591942496660254965122220527679017357239044333476816539766099827279097090106808018424311613218735248279166252732603210532603753598855402440440197631199077245840077630906235986608422936258130724194677596211111134214413252551432192114603540995903388424973310049471093884312634362329037904334752516440682262467157668154466948278686030040631362013425163686883344713144093963239553727430444484685325067825083539520224929745280906260907501866637156498464854350440440046990864136135224745211483617726505051824761456104053868158004809113548632336407303547461061630794252928700009762122303367510854934320346887858475071398013892790890772511541323640162772022563528179553859603633652394471224695849673210172390490452711314471313163785238061877356983103798880793120325239423870100496555013137441091255295281136527245700498482504364395401509361992754776380145075757816546443486911568890289370967722370872628291484734658116666033915717136735485202107396269946920014422481374484148168543038377189617792958954544087262416433090432340887703376298886853585711074499669837169072570831806027057599192908688437985086446133448485264593362975722209417204108733397460944765750538322620262085351978516009601588897411903045283242835442222265390493836666559611114590200683132362329354853963641602163647615700375909115576759733488322666284490330229010296248536945238328080181777482559553841777895624144535010118939740842564115586681801592615264626852227084622920616354465393106868025671477304152520571575814751027863506296276381907799925658526277820358025658574115958202245175807411386620932207665973166134225842347372507532089965408038965977178576912035092925799976334962983911718800890521153273213784953290122432105522646836595210379719078354323100285558661237944247250038979416707130574049406707552110206900262861266187765275893539045074368308641756254595921933978655822229285384499692581843138212303906439645713314460716186441266341256691337099614955061857720493816891048129483151092637615843673585068413599378038182578796658762221940122679644101067207384594515455620948978987070269821247669738161231131204436191857424210628521678371757669570461673276616397294070522463186108434090492732412102797331223755093629293882834650008655969124940574328821732339946604221006939501571460923703145728133456311310162236141068520764316356912705121786199599724345364728804215917765085113834318964480134990357595651013188859613620914045398227542514635730839064766927221266223685094640258793636891482831363398995128004578240460804554892844348379966235671084943288928994197041253225203485666766327555126536247457197250072140560628166758769475072540057414577620320759532069800879029227184237982150894487547960670138624682217861532206597484147270236939786535217190158842246571633666313542624505386909335198013100989547175092429907181789759840155754384021030611985193406982977501026252853985714049769670495396353308484205580207743308098352043159972853377527383590064660816051977226460918061288221869239224527744106915439701161547230017697628084663371368097350259594412867534263341322599947661777481772133700585267440816750203025600022049202379459074771831189247202723193866954944152209962288524258323515358522399801139070611491212587086296533385652861256011964067205627724090228065247047963386655362747238508735721351390352641909021035393245287841400633473595135791733603918600957101558865924717500467028166849648125937114774732192047954409846021291062763451041341325720458337026888412672428595894307003673129667642985165661586255761748869338674238446053437032414372966209732248037125945558432771800251606712731517817328997225384149893748628044968976690815896010296727502771417553516121062808488714237971595758497323802747635772650928156625359971195051088108929065916748027231880243685309512603867502548292769665803687993505961604056089373991419138822683786382345820086228340305066082045813558576161864837730114836850651567497933650357095945623924178673385080798822404195423729573077148721732118479079407420511422089741171709926745957471913847348666120303114753360501106649795117263973677501342673561939022106717277245448486084094756729958953106975476687577547739823804973752590948633266890531602139366426099413512163204613981713157743774746872570684889566823740924520832852028268111503546103147284476751768566827500297033781421004168450447859191263269610656764370735982617552989486046625689432304811050083774893190294038543180726896805694399279618876128408556157801003300341835853550159760786512597026537891636052509122409887970929445135240068886937767892575424259048441696868812849878182224002766229941970838054027055334856187741182482612840074311434846452142976777821862954585855815834518081987977968517905970252599489740540001528010779545327650677727848041255239433169525537365559662711434810882414837023632660558839364906861431704589094295404701448876174255750180666084066139948285927397136618692147685566012349478953944967393801756343405419901849969952874851632504843556393411083320865305488589542537778751423892945430403239275985914388308110497948140076797150565571136828114084808142859777680375291131428166324686517761897572229310317123489233735082552513893527136124855233289993214242512596567171487017799194947042351904893393353786295653977922995925849901368460754647508261823470751895335327427173351130429844495437783006178587353297621624844196322035280560370906168088314669938211547218779413110256403906684838273097040155956163064671990838719269500575569762866072355205299741757522703001890004976499204883891202878747587805744016083373639731199166230467019317989370185963926259125195679601935967605888778752768069642184518935855410808323259084778117879816190913692357795181749032409562771211505653825017201600593220292737370043742837757729664173767807703895303092675524544230418594069825059263313931242733966637587204887069486195107767170213114931900266957312077430225537508624625837170384139380420677502890947796808483489944533710149174221925854118972888302816784057167922668301817898421796522692275690125676367715854332823191378340009960249439290345248448579392788879198478757606002400342828669904689079111565510557670320530266929963256899229786943860984846625293609288205690882087564564355955537637715227843017081544705672880442742653853981904623557279426441813738658928202527077024510603388066648698647833982832101521308611163205557232232225909358920568939594907957299324010739721178426770414950762905339317229209775975054902225610571101394817418366131680237057638242993156384904490078435976646735785551401712187221429348680339284692941752507579981727906081259961704912809795600391938054140110751126543744804103391168250831311514013297496032139648129618453059654456972244347203410519304223052362552040152514371349796252300257230236540674579961215824614089582699310620269238307333805263917937422413739023762289179239130182223130103144604317124892350511285724645085122215330132114949169214932827019951394357063846015764310903885576062974702648374376904232462487441731718059261161435853607393558185022061095201572734385838458500317326702632783209787727984716417149871384651678986751503146191729925789558708726961002508224369661226578415433663447180586591113565647712745015539474215006495229763208393390631518611409958751812862223053076569067328683481700434762501349526235416395702067392279402404908727647852682501374925010710333302198520611898841491996497509325429446265240561989349230589628127757804800804863569399971124927083511350689617689460690754574038527925596226588865732033179718236263141944650627786885220968238353288055013010293382734616031387259826454258920786502518798907828175566843573121035744370299261250432796864628702471352885449898267743545669574909764469851652888671198297923282909192473560607838986626244877664019058685659951620454868143892620730543651033726258723045112944122118338623507037496551770151671599744838101225159466769345932004687126212516796967243598917607836962019411450596623745038220733677137661798615730151446622801316760915605789633482365828347806773869669453146375750040467691663389069577531429481361095660212768395725553708584614794890242310129832260932349377581042184440179212670121602116329377169861883199052921079871631781693148401891247986487589808079496017664378993546813326008301957296095182299398049202269494610278253418185454149791645809081491856482188973697743219713672754275031907935885440452402961669533533207010537461702211446071392820113633077327576813550193039069109147422672309333689619315102360071927140038216756693451050659891332574290546408623072743431729491971821530732102428827161556682863141118185622873566733563159519709922459448556635134838128030489675461785647185871397943806705198524303205738865389756220707433483010810798916680689575059468165464011282279403048659117285945878999485013745370712832710959105746168508659922590922260350263354750978707457066973270092860691005311093710035295754002909637025753143417595890058326892678363095695449976598439497981966464639367398930120047265747840221758713338918711170447262967811156646560446949857903044313437223557676414454240706978748333812841808852110843510138728113210650613875705876537411859701970762398127939699843364355876917245281997704851858453626872863864533811152839150955720710221034278173475040766147288699305412347056075895197112083290223899480790795454453712598985723481438491869906201146796318093938956091961764985796948659008689822380248411947573655146786514334133009033498126920072662102841726955438544289868415734209710152311601260270652252853796980058911392083247300499591769542680800224653095913340547646758966812174148135635328124451684191010396564486630098121711863907100891504781029855183424281209081850251647269032416669278224730688120253544177889969141027666206442751106952762551722172512649929399999577437906716624762138472349308381441214686701807260910352262288540104434371779939211518240174206985119621229264481786586526986343896794349108257491471937970902812131780176181124319059371496850820931153515907704616714873593481431808549250237330391724510785435197386193910247463708249790592007067621952150892521582613191525933709383954334278341563775995439699473631739618412886221352676356955982794006779510460695117665267991633213732680624430199639924185508373785052289003889408580733836604610733993738205732719682159860105842102681268413000661788190995698291700903707740811829329714312055628398303044323464924707076979306279776502672154298001703206558199485518833915289497033344372660121653931715672643316478207143341704813424060796863511060740978969345890727514007505483059899507384228903899556208273205163861671885803090461290450965897370884723685298566914229973977462723296137384818116650725875683787461068315568671347012219060116266722137652419874545084640565694139331918729538809048724403979788594541200746876831113908209344176604557371522110761156432099401161606510524964977825398489758726876089210433640385984633152448470044781245716649072019328247035895436659297218113062096481106907205187596664783600386720245774960226429529958246683055896326833563535598271633463612304861078896055395976612493649852636384425890325599445570084326859219931199014450668317973167167702233874962608519877480153850989282241542724875175332088985579328180497993555783606844356865284416601109662260007144355045745490325269525725193514519799050167513663872612660889457216138693345080671680976252990244257617573465625304598166004423431758192055714148761920457144879330649979536242768529368657209147333788199351513357586049962066300222418838846323687164826773241988364015095719525588197940328634771283068476064427392885588357558682985502144323475621263786878463789232465134909643145220134830822690399778874859856202162993130467521669867494703455704047849602981679187577668193259447786480216512539180377085878176981478620493494911412329869866900737650555861315702652457703701481541466843647045559352984792380010662698640759599419241958313376300330663611619998572159053213464090285127352034011742039835617204838287225698714816137714900982298963174616684578695743765067075913589927407242237490270438496222786109589528159290788549015859675352087992030016158172651909385068593821000794062517952846457193907756773111055711376107887903776350627386912663794574151811318938111923562089379059073634446010126492640737241620929076441418996803168880372819946747683711991732538527834852800270608515897484297235589863068161305473412203666251138892144616073744246643345396863936513165679110754046782438164854663698256901987822692317882846104328242193473584749557023255259470521850311039874491972893383357272878569404783315249188708670414552143310484763913623845380274701673509762808045723026753587514039710399676356253338619361165485196526192808019160047137029367789875667039390490167507551943104633119021698406796267264636504170744936318827139940952098817541740349857139520209811206065463944637807974779177048977312068579973676776127045782744587165997741221027970556738260476286083272659770734549149533921027907945224788793233590504975296235396851063218796501602793791382078055669108871998129352482332646206111672055807497464309264542865792689513097492267460569134995370122486209909757682257201266691292081024199048551340441864130747021190349241303092707707637197602465518387414442865535157075363193243754829296943680890302351042329036218994293180730287615873590098554623889800878574519851934971728729852477458360434217414507381482333078847794512918174955700668404503754009860335818341592958131092849378727081737126591706607552450071976732315495293320247982708454798406288812639657892254725075557316602061250460680693148986695888274932090125581041200374656013609383101660606062517979398508264890166331753102300058629257234947972699090041344019701505243170669811872949660712703112437647270994762080967624501494784876252635469187644485703224837849435475717314302312845446318333077634788404011131254762804635115741163112694980804863515748275713044732855035443070194648958417668895054611494299156553371264681421373002604226927940765633637810468735459410500570358317421976136333849198452257718627797345671548844434256923143068267321391565834739391026969493666227482987116401854314796554381725082286325558276355344931650435172506281639898865214888103475421860279039590038646445380561447132182648296715179380654703992927776449113627559762148227858629306947031218107404934771507529035705667408662162318104003835646470733550870264380663639222296490097850266308159253129902127283591372626027908966627672919796229702977201774535551940656667797337821177053596657751036145724238000660512653759564898492641566328987061776381101282812295343018238911916748836208943205729647516138202100320942336531627228381491240490802387040555166816724958283558603786833088655105806309426380945292474755208108125878403845155258169197772107890410443818075204282205000192252917825675642881488196517203358877885665509494330772327789454867083069184939059212006170306323238248905659908781963272761131688505519176638398451749884955505573916743367858010061058738396226748316100963973104484678158311520326224450827933314733532028159273092084726008180063135668244039946481669293271158763399735177263444806309329255925215277157075075438174153955877665954498386024253880395641616064883670882726095021307483367824320902359481824119539106820378423030568738643233496802172061764544959087829873252940525351813208923064874509951328489073734962503744086231450783234988200018906138971463854245129467698973160303156881026367547082854838744107245816367115167374683092168093854800122599324192756413198807618442444594566928290655725540022850676786511602729972177940242722284718083253343543699155147567809925737654226065828351753001381789576901944252689856029834882631336555929302679312098099233012334492214300478018212675585340015008656374237738047699600935866932429008321388891993148973359483906592534383227603604939890101987063215638435752352622594726256985571717840754228825862212128236047374621663604460684499032235556752211065294936622230489479981941062347847058029683417406710050955159335768890269413401751572554582680247014962918287820001547618090884103072538303189447528144635990211823332594353442008297575883131228998888581832994289507942429932643959103191711768536459619851790499826351164935150674977274757283333971070715616985956138051152304242445296090696611118409433478812311851912844774973215476522827103537559607792082822953722622694068392569871999460297121047333605789805396639047020009774689208873950148787500943720574443250919343178913660076037099301985106837588561768748224775961421521311284417822841994630246802840984448622125897665936549363356659459773924359879513242680472264392744212325884454474551442612913109036978315884719520535876343348817488362049964946211655715416883101748634577963775844012219928792120271754540834198928736292342207585847941620966689992862035927948691558267202079410762398119705179597321742951082799703937368404897983789527894099905887204666157774882638913263290533910519893438380850606815784174479281644133364722950068614211824230489004557472884846308956552285949924177068220770686181992250362254754300553971260702070499867224594399036061909887889323307072501067924345226427306838023926850727676224130276536038934389683462773124787479683312861021796924597106436057769001595098135840927790084849386036594856577674468238580325642593019311516470617776225112903433128110245919292842042260612181215451599183766674154634105191653019075206976570416670034724562637071899383317604893535626504800196662507896230136648837062913694533554828470546658107803365655652352124942000147916910012904857395913979185036307654104645757063424685486626892851030964636251865645783933997719961595128398416169267500474164246638134896985381618915431476586936133946356898762358844922071822531697505784492216696012995042888135984217337178220688110295764115532941883813701279958282721389947717564034888117006262431269958466064212223701708203212459714355526689074820344986876555271893095780456306393664983348747000718622430147810683440689112256430901429685492229535035932664997937717753296229933591208658835012553410732855285668885628202000797562422400057568393254279619844305668528128014006288058949697903667962867039515715526515491967769807873315821363953442575310253501898567354649695712295647371268324348640812408129510117944340857896800766872631932972536493154852522864934196711612313097536990589882223018719230461359990704142820165895645663526602184477237168301440112104698369641889215490847168710451819497550959917572313407659496384412106517557660809949201843669096342795662857611439669564961897095082011693720263162315202386143621918905622628679550395331501494733420483339269774802631599367102727750349264067330600669137418908044232313419565548558490436206770504923881228527995565187709344347428489987313594148641105794960999134125245576851014866934048598285864425619646806525191565006787759569626394969083123923032160507834934406440652298295789621737340428971310634428143981078766686357801130628857521502188065427403893854717237912067238181075842882579972760793795387552741586720694603623143480073720758866892157788918187485925495056771074026948001525301135533361792515499147156270730598466898032860519450410658971695992132293134932067302503795650678221610017618018066752586812119164073182573226921259516238368869517319350757564145461614408990061225414617171200972555957809040981389230665492494664023121685595027737768629345627792980392569421000329445171310958016156705137696912759487210359645242898921190789292097337003025075940799441631477519106196049458350794742516480843774310218973173075668194814946943311533212235805567994225071863111059239848310534246850910396667147706014858322833959351492980089510514125055923036540750669266940957362585134632566837863135386956649165976380433607284779183947144963539841142970417958080355873445654090677224368296998664364022205955362143612262568549477693299086312333944962639656548726889672098776351064230075159639096023183352109126279877430413422559138826605892390618615097345405701548799864206930966116059149400455464809479506067793520140853122036195464273914521552448487136823025751196679752801423423981085496326641885470388677120123498489224884772201575223082817572300196582477622760108629812509099525148972661084822074826898696965417798733245425427753298817338163716361774886304519444807934832868163242885686343866809844173469566295446403180965447991496810528186984833295219555407921516073873128618997621828616572992892370929068435419326751092590721305627978325053442169395963969532626515593645779118224554858733710475488671997467216924608795150928903263652656111999759694080741227576862502611306064363881380307066242575394729756269876822802897113055503033474555660777244114486972246431064639709372466896292301418965933062222391310201027869435126980900923990619828406013551974394017212625764678916586605592221281216086054512173685856183240686903026605416572606228421266574877220799023717121145359273712249917156499162405000747823718930203479884253023348785348168417385697006155015322368325273846415576752588584804026714625421943586019596370951741288027821461335894581536505892787752816563274808547324307575213959141575031697449107918481407510026948667175466527484338688675668571638980191956644382210517934144795329129725423724474627341865849472965012416910254721116360084003175531192637727176642292804995640248401224226768627140857320427665009413696823312670049678445687631337643227320043960030076432001145351673421062313742142487146656606476834709467660511472971403391449707286630506396868545916132801731262568897544237281585817371804272921782195181431640934892241926521896572727912307901969188827442187353888223736498353776603663513405037417853275059151078321063058600871342746660352612822666083963710586938734361811773870967799884193194561192056258589178480906250297774059673184405490475713937917102933220602281171269992848979865568618387464572508240769831792504712405011589651077337065417986867944399625806314055478229576921085565089362596888047441096609621693668781957752320894474154688639043688285121508579824673236110754488632891374419469858802712697731749532090187841459884648461435597251971842903400315794512652517557151904136590997065803400269323866213918778942349270696479391546582397629389825279201698644514775704077126374092563236441093253106813454919483692379923616381923223641140149888803935032301870661984778761418887605945708305976051160890587717024768168362497784301479396150560508052494800730227903554626982461540525134813388693830007684478526128867218360597696101959709164952216185070156573574153092161687323827067081385236149025134863805318618551417759266078174576057505714551609627934490093977687521321387238433467324014174231002267660930507954596992740447075575704835638227262362890120146701764721376558150139871848212743993175410406600029870212583924017383424587433541937735165584482094018994042116446976348072995368091894887451780272891221577074580319600244753487232226595771637223626639096630641279371650893517845325633293679486864335175795392335659258642718908109280361957417609498191456461315227943871967904356721803707046351273070956418536358463584622227001669674669424613138197308411742237401015908527894223948347167796134500729183580380380798066014073588522621364602679489664322119790039711554172208383783137758415270315027379996848012717015481252822626965950434693071120014136597212271360075693893173154459557286435718781872775025925880952457806484080948562930541875024961451297535531794891779279168714667515994710616487768202947527123597968938013742820500891870597243250526535146822048522755744436168338993286644411904821350373408994025234420311336807950243931754323905608080579183395304056754061585948415060210623868102712676166803134272841061070998422344136958895684894706899078776587775565581255851730086906281614766597409203559166359199919112428346618889158942856836047264934357864451895430575515345421288209990361181501788205098008565093488638560620930696857741906603474676821400071835067186968304673071833438738697181443254746176023669804832352936996121202910803410222688268074381790690060708841833294670008448985216456818933241646213292951369938421984657053078697549064172920013560460094257488656608029267391310216624843703231886562937196198733779936675820720667745052399253643536081143526868958599978112906150211131473095679697093513563288947313999968891836874201462588653565690314727061236299180646837157163895162495707811567644005590195501384798245271919772420866512636085612021715057830312015591488940911019747134461538307422376805425160924634941187163418919642208927664015963227667210497683401458189328547286246781008187074734854271865586587266702187748343455915500561427999655726760642515993722122200311580654907921279548666097279312451151592935127699456268240611534530540855221501792847169585701250806788478589457182915540443482849418874763144676895107418181275193601916370393758969352476242578617522301740154100124495171602614314167846683460899892696070148182748931552679418836763665261200499082964077989765242341934148056264941395670451807830414135495260095586080542546134699115223081924421631565441126060344267106924847531884436279698080668987514265086487975501825894856154386538234094855869626895525469328813952337842450638089487876238998068006606438305422924958665803342492137076507811221241415942251935572783392632265301164138061642990318481461984367775686886794931610073386803611263195258546542148284507628830141675394817788342501394504224855437488173331515359541668123620952891723887454561340119739228827055462372710200681103257569820793689300061516675223559479298335981330321101504102621658288841651835059958133975826851333409797783631650725623634665804556026239672890729063246303508245602233824636211623707370813473868679685708938117736757222338592547424345079320210132636991190796800419743678760821936927918088329967197129517858217547864382572244227687410198475022368977541497837302366467205412758519131957959471712673461748442163802028172063985543420013887965334627191537608453697465425339449533636826866446768473819940828776079769295930248244380674371254757756019188399280393785877257575456039018635085968525129306161641451419669487886897599003595228859281120668611246332714204245404444452417325886703772943074233954750118705167251519884614439051677444816648892267002265540512004351043129379728608082647013498088057627081791485019369944362253075350965523788649259356244131948784254762692705262880370928488067564272830986371660887703894095304857804241239481865101308684746121403772951399986722559290163763269838203886808264529885143151367734778925913818714058797744210487380382309138372523876642823705845553788252676571953911245689462543265103196401335470824102133534368850049795747657973193622847968456993208906805235460714112246948548881554766834964134867152736321629454013767594326189494209575864465268208131578818311100323608249596301079744766783858898787233991425987565806501015526442627961266261972110139068676724413787626669521058829226152544492570770495167713531368081284569116189048604729356927409393957238332586911030914252826072885549903079585333384927018095885534250748896601429830463821733457880733038040510830134817118774445669679214862741776842882509665471756613965253758131834190907116237967404337778529635893670385672546153145024061208501597777014647645007935609782819818188817873374042083405729552061443935914623730068131594417084398377850929933041175276116782689643347611078960200707536528469964202096636023013608660975266577401363556562754768356831096762626209952900759105018661368216293673150334659284992876691969882374951774089698487147399395191065241160303515956657897350741795288278960612973677049788355683189411326418717738167268265938508389201599454623824387569746952505957355762786670534854291706681897663567156101771108057039482028441786393161783131889605721909639581844458511015322186815802887808417769762306009839728411659934109028243361150273436520379541325335764337510991301304354491803587299794813943510209844122657138288250567824217272797473617280389217062433003789989229759027595895372818725846459436148302714132185810350705514918528329122035343737994491795942594826711947127803255986661623740688816691227844983335769338912005388211231146240215008246652554266603834861539555541373576814651257988758903827470375784702663417975917419118388809211312929313587084112863153598123010939310715703013073832545272104609144658998582512457846009378529067274048901256913016305640541617862110425835599486658585670367891867782470053714031611250334172278218040636320762526644148202289897008577695693100243007220107815914754427752794829583781903328827586172136763016080001464113106182184158455744883058565229118306295592940394257954173861383386097658217175262272994691743993501753473858840882085122018323058713898202725863783072914080180173987535693211832634047134501241843622333101010837825856212782007374632173142660431782905915400833205113911531881162721526332576854904708489722897375963864455632858969555542232880940969951235529616063862172656191774988429021961366528582241481047617518236947761688346080990876457904703524981902747878213128945233043622253016121313295492789270163956624820557905659389821008171201101494418422373893320698866720189997748032054000386830657344989556693141993165213683072500141647377061192360146111932544367891438512228675436925113354581909007650917807810282371794411101419706627139260951298507833146678261699126803288402624174603799353863868037633113681018060839511911688497239932305737201934082383255337549400417506061515259690032969837493847854182488735787557146587693434300865200660646852118649181640881221977204087669433791430657452087747567709113280710361685761884537445032938777258367329798377041134882009203336585102158245658256893961214735696215555737234593848259634219134527317488335168434854873720129399145033025500854283082452986169978653300063685581027076920822222330237298002263065017643250488147407280740922408553734187216844223366789469758335723376465768073776172654635363213662188182046412869317539017800513498222151643667383718998988715904684700182117332597420452862226826114777955060651197147941940669910368162225211719319533590068746939576337278220603471899200082204373138320149814051197731569981882551649532441519011154907903847389132413508022539453190750251971261609733838079011152770728477891923194484850707897803751938952037451926585028106834329197161451473712564221571953132296732880366491970268436351997603632764486038050440159137146797625127089548531178830991200541665156992123248012799106928573411813742245821268588103032236289648655942654053381315174079158308376785992647055715953629312864282820920051263271525249190414371220844405782778836628779658009643553168930286264055059056560335413459536647658002409968072871268370073349699549996457591410396332038947844539139545702507525079818306435333221661755574360300605403236211821008992713284864775733542600277889865541106871370991274003348538798682354344557215190055015324176294556729188640753259990020746799420262023026389828826150517212637170195279467589754337000161155828949145808030929722526940957497935929526572663337529921290819943482304225432985371507953870832435891703444149923998672950578739407801023098839531165777139055933240072521507588543397580503023176760364216509827760899896164341250660328872730024956129589016976631696475606329633278007719160466126382335945072177666858361182828720281509328367096730366144365044947065532506150392759525846683620441190336999182066861396145515091226257106397727515066081218477277475375272448771495899955361412897519014543355746412091184596560893630113433732108667338271169610472991146650180802754546344385370057946837753261554312492365906728358100541683630303539268523453392423925469185154186390648952480685798213559756467172142647113719498952834941925011599941315972560647028009716318539988853272047470512819141378668292465354651584737796391183876952263746383343794699237792651827488930375279974777415471715556832901616366376911712707896223698413907894519757400207319596191215043505599409148008860967464469809898987086078943815546441365863565414196330470438782796939219139690598803050552680507116480107209708390587740119635455139859665005373839157628039980824869694280471021992255350429201106555457162618657447177786998302978480913647396515107402370627972803472939632223562961826355116534361016600820925022840630297108999788403312350242071075790255405484555122588270386996323128319614372913740828888496464161388284403073521240845894921211496390993480577719572560179430903409765491245275902935131541802276455145491679236719187763549569045598058605760187005463888554421136844771267485898455035464212977129907601814242684008477075017051388238306224694526396385414074609291906610072221057589383860262512895366282752505338182787587379445629777678569954162805240189980822855752233413708484446659039808666874631648224596947769275397721734948086847288088883382502842003614682896302075049947915044153039326797149000966002062918548779832741720562292325926719178748706735775167310933274206584039499507052133895323876454063587973294644488621182498258690708714266504056185264322713852982971283730463028486000656900154809303706931371419404669810519420960545257355939414172023269781058162942429389869776518460295766481366514869472149288583323655691377111426248972635283620615184405290608860869586142453251031899411217513368162417676742625905428884484308084672885190594702801567583989747992622713427436157796125126976513997653826196763396770769787146730897889693691520256995496845034604353923893103601982004872864380494146126212302086844088260438409363410950725513513488839327308332844470177366155577236390416777459612763046806340479679118837701391502305012434747799331766983809189593853911677366862745307558244254927922995567820829623981198704983053713677347924355090847062264981053132136751269260492640182665385422471403092035255501219688834366051718172857857321150932363428974203942405164646470156841985657127940203759615541582136764714811281660818561712629550928309348537386213956474156635745338363385389182787933395675205619278270243930863623055735686617043557363029788770139195543762542705313453978023417170038064069029942964700825861262536950100853713335017474180899335798666069916463668657542442687311173573229395985533480271802893177875105116618278525676313140448560301000618388677354276031250804454767435301334467249403468838837614888817714660403700741344644852658573829819497338523535922338520475493451448776964445110233589236923496923293878896527056665374239879896657162018966779708783094916023167034375235481851928996958772182482800172930666317362204510794642616137326260665883308811917244342428548044453114085888009062940640359079122594845854432251966217849136109722630501417442300260429744280024979371101262064446804312667914687719598900182559879280070478050088808015573540812979640484162050745367710519334382285625292264427069615099248808804056013705985183507247392113071686958057298663268209089277073618898008042564715959518540508198647362538950239146718497282935768041506402832181210209366443817114266489874047658695662109840909911594795893869102752729061212349004460390510758463091590771513262030707255333001976675537229111377714820941660089651351329653806915593795950908647313065222462994168418826061649202046838292267347982070166008938166592554986939797460021725901781456537419015782128621783934452401340676834030844441212449049192982425868425274477104408966373446594648553633772770950036662047431847666471543214274456679393435802945477780429632537213669545390953911222039320204898580016631377541823986357726562280480681963351581324811607183124088649579341636514574517894326458251243124251850118494214059517283044510919483699659122518099208262185148500399881116568708262232239672038862445179908887223402873272667983509682373038324917553339820504100893367851795385309776539841211478425712331417049509872669234915153900209739981300779479890318619529665983794685313655213250185273038387692254309210119476194278105665656741663599961482108246565551771808174204907154294530374051512485374774211417022734670345440814616301374080128465593505017119685209063948771884199176454698531272207004432339599174268790923821287700843888592322353751213402847734103959941041407543880796426678815503968695316921493783492404328108979521883304900897546882516446116706982946507401256189590068014408863476902179405522145802754721866095677224237928094042199979752507317623223872459463951397377729263505197795122024930457298216865652545023185292807753992825472862607005977977963116803128704199915906323153337362801865363955090116417493985333407915612020365186588278518136724987031256786516418222046281042172612232837277395950918474246209857357091724637718522613825536913227479501237599678598674886696311046388409316658979091802926000399227274688169786272247717371789269929548249013664471444843604838652932978218628484256561133769954406943420670138644869206146279895102455098536099053030840721480635606711879987919529022446666317636515565827623109471936190847631142289292502176700017751836331848173461873984750693383870833253710222088614927328861462800274470252143000110758457237236018982823423401344126640174894353748398532094005453594511377496851996292001836383198606578955775397308114240407464018455019148102018836130226481265132310983272109449531061076563672425223580523552739007537119079830772830653260670108147849684647202952912286716091219589389773580787766176290621741577606714533361909700899090021178263876753557366367134495474628591609141122710164514424242818518390727684008627731097276362497721725802812359010771455213029171181034292620334489430314943769689697791520008742929606458659481021906890431747078738826204036143260785468580174683530434600229459860774775202949142881918072354753314832105737755069263736191704998109459928505914290124697332972537319029888789422366482352667986928003685853085880654319408724386084580689224693254810894555045164078794040417543577957756919409016400731483730225885814489562221212848301112427432819268236106870956981647618684698665193505744182347971131429327410971504075879621178258172362136934925276795500806950308679537457003537668386644230113294547280691926287132017197808790247812951540575186030972863361030367025477089319741859082410812737517150324833670743431045981351258392813776821167781014729288798160169876175220470418360300758088591738130875528478324130961399319101653070203521323021917508036269395409911054719896455189612091428294154062756675751727349567045276680211730628941150997574282940643591080883500197101205928932219986459590581140524644307775589478408889957543620629775496846964978895696211757716519846513388598975819174533829021540767746809829316249490674076997705424340829851433786664821463458601041042575659555342334008255534307715377065164959704439887289649152710678238029663259216179272662879580749014026178019691724850782047868064939331386244785628060188921711902990002205746882142619927520023655384236261015428736743910235368544382872673101858474666317729487096759019445881325148856244818755411655317884628140722914477456570686893872897737776516420903038931854611219874821718779097068688662965900279759200244790743114823896077710418090184347436869286615771490807979132246947191158312809408983515505348564017312317669800399207001296862916186358184077923769528444650900053916427796030424351192860379016636765704550564910878426403178298446458651447652588175618086629483891737633472970745423127625642101052846578209259075384192464775674597953295509301145916530308437752539931729639295102261838947715155671172963821471466480662630417560318421095247918594924431149642966371329784349871792224840253665076573400370536102351337734540403960439540773674440212585583556068120308009811185123170528123810721091565508708924203909035871761796837694789839590623764495397665439682866894565968083552350461650395891825593515493503283187365532096954140308559269050324063873951392261692491800865448356352586976405517501812287239487264827513759556867919087988831124144550360405134121875483957007609848192681852859651360548659403659807422010093005425457818444535713602680855531206084889495818813409147359918219644350239382869106063638123127605288037983224565057663583737775880136130558843828483516527405767708420074923606648474048890094124532603327837845686976290533840089372556800206636978565811604416125530799021642516743284078410221771499428181077491751856881116956902906796424209016088462393829247103985659024982279039289267502672490549675269424319055505119004048480678603197811698601165887764683070348417814213162834646920609287664525111489905821857366210463382611710740770682505636642970864507843958741263838136022784974571946032167985875566181169615466905174164652618671563889966239871367244160514764716788464325797702171898352760276857124797748775606311534034208327005723257844411747748737116478566331421139651022004642506100312074799796741392390051526204949603953765424967982061353693236742742630202430489336821743498618911471268949153434831754500250605636588339161736689447674286569125669089887861605028629807923985836875503367321618843181522408617036359200027465290057216954439055238509465667475715200284629502006985536250861908013573547937657454852712964604855267345429536355636095302092892812861925562218367171204332534050842354541039274193110329327919504776832769470565040810514302943973596649934102535329191187357999432150788259459552430929823278671667806613950205363740625672363097466980508217342960769566479959008435838468691832332844356008615805475840226433752719708280086756122188945343226300280037084425267653579459430673649181928668962453154072541068258211702230304867105482831971507394320932083424960619659909994752002286391047277413892549038356775637208185119416041835977484861708440053865119990833947402760855578001358413471753019937018506078198993310766472165060043973906704447238097878223399874398145486389904214520545465632552988624096290567171765331706939691476257204479601305013736859773435501734331011884819923792130495926846388977217697169201738529135935552364852199422193764333856716841951864387971880173746287196906117173665561325767066657001472737322660019280915085935465799707396586246254969508848239522439185316716096329775964828347334434017335830527807982276710720891359240799324288548297126934863259435521455208336982741518075089439596424687879219103792458214027137655647814152851229536729422046500291066754032612974080166669106670924360419722034558736012012960684322553507315405514464384577592451392427278955543418123827626234771437129541046645893658217292615140240613724261350041453189821195336487010421976351612685354353040495133239091145329715870885102676894574191650164881489545377980021738063085874641025365488338243945123062155660803532234932909650971817494358457329048465820766569507142421028381729646095985732756188421829339939992507506253075159749399029874017884319893647961884947306018043296545719602137451132491509580724654538535190515232905519035723473418452757361539684565278398517198118477131137258607292327583542819361150234570676451501794575852920782783817269327309762990994132781746054641707396051297320724079207689969452954184922020954708455525186035464049381671352259690794952854602761940696819841802102019799523536116159145133818531899548844451562710291879459381217128481117532438152230292663215414594948657118216761680347023391851168508379696273208121260987340508539611428280049014394573945652552966894992347038097728595370906869855840452817533848430418693876179889728597678567723870309684654764257354923436752583769065606279317543410744511695379199375872082647276695488192781733503653236803522844766420826671208250536096321832870127034861603801657386381089537679115441748547148167805843320115046404887508908015824584846720180380252608389650899021268225868741952107743073562285295653272367767801940289730429135011643635383882103130505360633537881893908518992783046465995942953657398817546843922983726544605032843463426566908256246515076557205369506153715645950109835525707666020741527362942318625671257255521267775471635925963779700943117454128207591232241040101933529098569434484127005710497012932172726214571722480231414132942092322168942321056422336981953019764120987165919097233386248282623500412004083330927582351404851629380805273356840723264237748685131248366184552060686452033184290245136493774837258620221577880512501675242117465450264095034711056543435543586248069241984917621948439499024297826526311882321096527414991811598709158077681939663823042308586536596219206018262861516878285386301756174504427443335439224014962627809358142180284256620712411687483580420428508425101205329645248229888002846394241157028877143102033419165055932392849573564461943096274781417744339671232453137769039500182383168708810453222759474268850767080700535485989095269114692493393795128138168488055009367909721382967196207493322875186109923817388541928169128177058083252807273471863205233076422962394757039043989442298729054409552798030438362909138142388589270144931502736074156102233981777462920218620421791900672769457083590281651383157922606836088765483356919326285222084861176544071581893033305159460580105658497845028696498305627266035330836818959515699362130248860247550035694042055931389733698379480919181365280793147087988896220896908766647477893793732453435190696768268989236735297255707171424333492750615690570647640062069739009521289639381187129832480046402186812391259994334604464276546362124845341134339515776305505194201490786265104104880620880006227218582256972867060037163951484625669532472268772265941837376996070342575357324846973978395560880401981857132086540997601840581449618429201509683551624319479184415933356294005091813658815656555677072676955138592010004389116295544985045141593977891468756873506181411462084495729220056214123011757990485997051449300000846493047246580359518696499325004373583736090854858020106334265664097938252245647168404769393330990545710062831992661807503298521997431663806551387169081764918432194599657330030117187261313074963371931172406743321747751478091799456480477753508487140413976673247905717454256933914890284445016901784554194702750523131410810385270131913890665917395124277470126506897168765424406398834766983505322088754781604748707846793464371720107405210324945531263349284286725304278700236463648686667836999580409599236726718319727614954269493408980073549365668911589175864185446407542818660575045382751665343567042289765592683663060641372988771451163598758612051042551334480292865882354738461760433138254930494914970548495123383492704938051192776364800502732281571819140205028727162109703836854384672940676225529637826983008167030443079395317816918045312962408880706505508065116131202606017584975658647373342240860087024158996587584801750069127236459190841779084984400738506731917683500783706044718798759027705641898168430532522843773701372615135902748231716729012899536908268634367986601185565008461639394618201862193540224257641125649995280954704897193375826654972748832075481416685711614818066323919466989148055001007574444636882472548856638204470516372079102400360447159339698898559389658012390696936836582400787050189696083719928974519927721432597522272957137162841004933205850004140533567900364528093701673378180008988751893440247844002512091299145151822664719536011115587966867464065376757945112232221765513724412599978833887167083464785441991661941200372636233166555781838000166563774556907987750620472598495543623004764372845103108400531670236022335459420157398608524961442556927399315721592800895951733231654641783465688583326845651617706139332106182272253577958354897607378824842119029010041573308592621935668623119123277676178016342193393705640691030194434047545072225619737055820731059029198929830276126695836061390574111987112922268716895884605848190206623905906845479748767382708357664621187607399285205566508354775618419848965453704548866954877930513040962566032090236236470144330561858008850332807963901079555658486997175682780200404424754062261465419380032705631171632344032906162597148797564074088492223345283500238617111571947230455199464163836288702347087118402858376424133335845000799474295769770834603546394446350845278493479982231845052055706068925290427403618103849067607213719770076604780779107368384833116712229594957666722325865951814516271181323605263389159671652677057207205787848200433539544392915451630252028453648059940918390251114180846697815774756091884982090156260223742519361900001452104280551658863787365416092740163559283326522096614106481342529379996772783436860811381426504658370184075430704041829356372731092789861822534149713585126483077299027176789259602496133110461303185853252238230476404961440241249540414181400715141142573942987659804186880677269337900319578065560016866168687017921207436500562148433762770063383831134203095393419000485416539029004414537906289297909273256307683849787245615323793358366743168035437694311205869272831702121225609859349049810690976199393267037092908813126067234527320115531277634373575782904699162562854151120184482107577212640351938741260485753168169631200139361249996757836055177825923647344455687735836452765512529012867625836444128684618760486985566041623148056089275484592129546762421317175613654397442877218245826252962592334699447792183772602379374169924391371867256113143485338204603429557560592614192012585957957877650712527462286835603351813730665164911217776009048446835798411516878132626533644628625602789460110268758948007237207957284868269510685512536852157759483393104141921510766492445880939657953567057689090081831960873451999578595506306596999053661802695349108183122840615814967504369175821993845594733038415585724728241358349021938212010718077156181557359121603187242697718611658390213399502666073191588162179781827168189988287546322927732731263474192967410010065601433538502145105666098642566562546172153033026494729794666336471822435211422891746314571729122491707408336140796504899038763042611384142901223397292197183045955336809175403264685720567775658429379901082108853595358572400666283421072187711357473609493920267808153604450314722678154546411631931397022514926296145930565242081136944161445696488467304120928566262512019632800836399888281783019562960920761637798710522752844916268563040797706160320554012897958351669516686205000115387672960056133483492102237732240346321517278125949265272002911790035780345614467624549673262559628469205658419986608307438865782683120685592047271314335380684887937132390842815135004036915076721157302937749233911012761401498360237202469544585622732518174963406558176888809919783918421154322322461028797437578247522561230345444650124925463179545822156544103900534841686342821709226679955027220643366497313246544338947854892005660867360465770872417251665102143233872976106179045388831951836228366743280868397044486259900337792389786282951911430364717119078775135854539650553316871171369448125367137525369210460030813751519480711234731948387152155315481212361704698767022821393160368996937311667633098024951469958618883334698173528590375603833887902159435282716797915938338076703862720150585084276329470118578400347375738304407220335468354180814565020423547362917434256773113217241928433418229981207321482665863306573958153846511601676264169511786876181553895644146995492077493463479919658282125426831671127142908871248260357082186793571494626251826811322362008838688857750287846661242650709110434277990134261892126739205383168249660676559697800049527058653672453603436786145891585288985289196382049125448450028273375296938986911111476912113350616516614694518511097719126097540638850067599392316441596119258635523305130416170817597842608725047731176575253616878286681232117375382905056619152283155725787945227077995194041893655609339552633427663997730329306402972820108840861839434730497678184203164291019844924759359520469485195589328746533006990364198737869753062267123847232324648909855687403698975407673414720301992889976242543071180776162899843308887793460277574767130135473141338164932312395372304428972170149947023809208958194259202382809863328526786151818736408218219943766015993449624314025165462777141319044097320055494263820623676437686577008308968656821782373968760484220604373464255195860492915667134900952262845812935493457217220148518499588754024399858021616176527193231273498619569053517215190118784200274576624469586291140163307025394206755469497475796310136021177986370414891681734394359867415032035610281093344996829775282597860110932151960458858577769505748752782954343472013051298544518820318601409692370374755609396672436626015442185003355442968360332464384294206125710541933480195048297691491013161810005254959698432828981253539495793496634901941566783305929057120411579909867025629609292610845735333839149019901983219060077343084738215658518523964689066009080999673028874068782401787113398983542916690489493492313431982542719305067746993244546984082176578051843238813632474220876237777003135262311961982255662540455293130121725854641867551926713974119500669335185115392785947345656219687932035163460019365662575615275283317495461123136839788228932599445070679309571733102857007862617415884903719492740050975046591652248245432573157483697763802830994386266104802464812600373848777978402035431236570596020839464107351046657195679754782068291832548680413871464620342962575641109746450101506723205068621135990288194979552416454514447918810816208048994097506259336067388885361007845869260983923399031014344313130282189396577003636635589590080804036407316091104370860042961721086985400841906555073785349104404491461139701092569646198150971808010312969822661449280898083678934513040750026732798220329175662358014799982659557084098313914642904358919332897664422475092272229537609130130500579006658143624718285481918431691157030699995376935275927465915198287236183110431475551903602553732102644435000043042050769905371685175744290874932745625893590271926921932992820336428854296363997299676029321498915870734575220080898747911762627012053477605735371027502194680172899006399261577414546349956663660178464619490912773469368229629125857691239641281762312535032563341587593438267722978020754262510910815869453415664403939687633894343393430193604896346472844229077208005301227045607909789738630718377702917332248636684933429967282239335591919966845823760989050987145392029294829408348574213394828669320679231082136889026087355945701833635498788284156766785839936901274404075880064118310141044543617235493970398856868506148437579772868004775745806933614716220745006250356940265441198551896139939347965686369802698431847281674949737979832151566606598279854200445131533897293755368277994502991929235933827461354927888445349618459632515752832615695301229794703701898452778591515058501561458403973202341010043482856469507792589346971094204014693098377615814053724310996388569438194771272432428553721282622587814759490254363953518794004163052642168384936659665477834338605284656160748493528442445436864744249274965833218520828905239805837364946449700087857460305068314926947195103657801786220536568506645991023838550822956838228164229936698245568675321211928967694296343557051599471132699529607533144133852272176065664570987202991043205317694970556293322442433929017023386203704236247800103606161232852411478298536978560903460861885787370022213387400650893243102034053467870870128245614805170590418524247299669445433047911363948755509756179830505877972271326883400024210018673637136234733270637166026289897228986924718819541805523245089785411673427958921119210180577491901927083955495535907802902058524025762636619265449929054063502062797570362853854047881356400779026869957922982753060845299944639991129977733729249078219308484943451098655753523271810381226300344710852258575240970433332486976045682698826418566762669896035339000502766128878238909000690477086296975963437629705382024043780885418844748341175017786828462530791924168845718611178656095821667408593507337622353164930278221533785151275371479220005172907729780416803433787914122941417472389685033288715521274160240397644907575697309183394406572960753188452286759799167878435791732251671866361076807052158447297251005170175700566657844563145775594908656230520925145877977767276876903760944229725992284553309715815554480644314386489551124590183093098840002287756083230373396649984926933859689654408544859036003525683032187722767993878107127206892760284841260535278241313011796660362999383723731967162400077156175094263837768237211423086186662242369234779640390111844551421402261639232420467681022886315445882719334450473875433630986736327085699408325280975863016227895248034513256464409620296235993531195189645664119732215607117023985623960748340867390327484130677922377864536733842789856333967842229310455142620480737261266944333531737529773766100538413160299264607243352725619003501126496715954456222719825230630788399966525839309393569891454419703137594107808113364835508538931047572907565537176649641077942386555739896339825484369177228125367230152263200191258716970414207295563209153224307487619753257676961795641081044499156827939964916444858884793532708158609948887271088365856374349153936482663219294016258545709960293170209583062230695847974589659166756214814903894929628976573010025424118328884505987884753030404080894409797889585191162501743711523318902407160280299212547045749794653593821714709053210774247031312061758882058431577496895364594751390391364165634457033827491118669209850523579858484595592326064644381123404617655158253660816639681029750283997262631683437085134842613195826005918804715144272756977985726905054539358927704150551436062303655033560281640798864721665059483851072262784106403363031528676653971805628146885488719356736270586649594565446411266609030949823883699114469949123267920435932996015821209994711664150834645370581708921278844509480387554419698747944078984449569120460713205765659719619351192431821121064951410388100601567445328126485913043998471222263490606803840262996688070604339250791012310655563579868051478708934886606572216412117445453020662426904164047996693998615209204471417711654958967044279029803501158085276295192836889968324769087930915220649764989307010875819209896101429399687361254433767046035525502314282306284453485616364220008762319150234236652125846567897507735781113821682038551861042347083878733295323557368490022075662178831871903241025356733384559286940589857565826239799563557121297688146483088857315428136448738451211328722953649046032272395978644767492419194127937991056633172914351444467458467151962576045279065233283698750155948081119533158456877975144439470501565750552618403275375245549888498224225636779735731694718302438963038419965651927755663701291772258881000522878166935634506944408170352384158064421115349222009850011755320124647121650818250796164881781367555541594803639191902832018297150289660599245764956390706126596208914517954422860462857040827917218851397702910068164075551958863090890746245710864660436563643588947278864310925809982160896593152130897237270322990127794634018076083361427810567723888003823250294756638016381840525856910812414406609399987610105563656636329360544115310865883945508774127563720537953422227894209183105256484583047023267698321986942831094042209635735956451808607805298464903457748292008545408628336928261617675582250430660898627649131723499394142991728043670602338739956272799191703619758484785023104090160548598994519810780607521569684294384171381452045155846153547982814333811556926682984053544777753341420661624706629228398287078275970461194523414412295236977641633889255254280514764455212077152338376778711491804294573343959516543968219045017336347273870986682326702192989437100125151411598495476231431338980603860517454086634212925077276724341061383981523362989053410681136477703896842204578776668577318835678241434924941425388258645757258413123776815487673340296423309572187081435761893551751272453857082591966576698419440623951042522263084544454691461402480775135511271064015069403906604325772217884532185982447040672950755476627724698675235016474727599012364083175918796468762479294433999399618717042819026205457095697183856285194853149896332109094257811703353693593634378616943061957061391253415205935412762423546837622345339597982614649698181585233021759632579108468175562109367062969557759656192899532663103633579193381055820479582066936578941783960767796783757485524687359705931324989663289147291102473677450640975406133134308931894237893994556144142894887213410807363632613471588653228467922322183680267300384480766666052375764461654871598118505113149347266086726917571377920566610933111863611337304610389589198980759442211460019761547703843398189788900575772086314209030764537374939771845654872069610443468674715354073716640880549886773267095817311756091535565393642112422548430927693525590844152346013311845273703393633772774659567039717153220295216262726215284996046606295509793861248870173231262711982043302609714489744823808657016882408208424024876883632529559479815152697419028744985697082453177478934938109158974384334362551894799583738492980182295695311222384903784787866552495144309310843052145010690212510177153532917228096235321286773236440717018443994706930308323094484101431493337692000175539295267276665618757478669817157286646496691478569184128519735822298308159044390008953011148858052962270061418875757492991157509295294711639533103088975802716927069337667496648135296549694475990308276738280707557283947544615207343058063706699164659919051924166929664301418071616939283920551656560696836871908017682272279712333022413017533194471000169264959226800144874891464728340305977248854754026839019651830303079058457958982749452466762536495277757746664332224521899789237605273553588984674910147917214504219661731942006189684415993483512270824392314131351382886584033588795482074674230175284932415017017085520161934411122179134286541498553380869559223499870004312110531580304156800569286848575306554151415573468036681700466636699086775207061122087213727169237284039496967069504996659035800048581363358870339138008748446579343328399906497089926229456123635389464235311763925323494602199547425898488384599601922090430629002817712384407382896366390746450211537305317864879126465625198854685548175403969492733566379548167751718385174748769344598967503000912862071421250686681772378027473698499229636995074285453495823472255731700221132084820581985806916807659287534646844356846841800774282470669506954945681013467599798000232588548900557397661340696922730436818068033115523990273317613951687691568553941212105829988329366937276235014001666382755842595460571399666562047560611120716361968170568834168439716296601829051196585906674836614941453729868321799049130070705036874091540614743936882114838399701123204227528988849506121239322072485524721299450561313772951796808906597780498185371283626249370648250481824314238578259657362999461106102468103702163396487464283151922343817853043661381572114508456409545026153059450846692195163714419963667399933574205880300056359766967071757113981813612342819235500734090515844036212286896206606388859766381946342157398885405053424891100510769339986224530267441111210793635250153834597557907583165180940565541706844087144627391310831235551705597224357284542719865644511185755888174206922894054475541485488112858591208654454826692751198826506193015845309361676363030460029305960518422650308430032485348217811340968823287180560008898971224029467394039803859870747696769802656395833242938710427210722106920365750990373083060695876372447985527159838806306369453832985538348981015069896923112491233782327184356219155013719907514694046175766592803383828273206437940870381364918624040564801933711656731556719059072283390261079908933031148402251793282237698616993965156257618096685287767774531617561986473208081917374917160379762248654688398133363709212915872744245299993826347649485454894070379188435211728786075826620099010708250205229306377138563692788745052898130518000285626093766572618811415475886447691150592259090603909981352135708115794213115981339803785708527857147471805553762838634484609087419635168564328077797814197720154731889309461570888793837811751479160938794822442535194534254962520419404423373986344337256645734903163050712783490743466583848415732607417001439090315941881005961587393211434547009538812310492036926624703354462425185370479866398538475177145910856950501178516434934368664342846132702057943285946617998202234187922488448728041342697074234049604565555367482000544991110220634147980830729719350642645223821302350053024206897389640639011515498702682175348071226784634354818577432882018952338471950885953903586166037972246465274019723403035367254336160051512847312971864138348049919801499326702482455099512275977598293821782283650787969561371588058997218804324670601459529185441043805345604196544441460518176645408880563252298087791631187751704295597984038842169964415137227092476845271674641672419476105588563310766543340542286154015807764220114468782760768402552425656951187820590085509176259612890406635661265588366651571461191296142092569986462112756491577834561596091746486432444168232451036700888761310613505221807369943478829240403711941509872875904359499001216657214418301707831880086378180439180029578848472417213753388675480602617913254432772023419574166139062665332327520248293376602697179703194605216177823159465230119295982392835316302689888274076169620996116686315700540520293928246465345598081190004369735814724238274476043280071028436582634918308265933405700087465800072614247349463268638797901026119461394041440872377038210939805078664235479357278929006236813834581329895248360900858328984944115111485719706653039200207309938635515644999563135586097610150015390772590053280092515377729196465057526588265872393287648608390790871366587746780487902797462186765406273456340681705160166311425377415190400726700336440976246037938760335691009768109695465061935583352655668994029707977150053529492661408691386296576986920342079572345028740195298018986593759091974938162314712526052240956509187990058325424770829823102824083549736432384359968457762700434999845048322924531026257518038859920598772325715625648161699691968552726232607411145110803639581833334657493936437853269212810489404252376032708459874511083446176667256561911557584886042992211610872452715578441205514413127808683758531018687989824899267436330613713357150531907759980941377987023018890233975762887343068276272571304017550576213787543675739526748774142657308646113931738042505152576217726335635832003001153575275756114651846260963592968608658476586681709243678050158812638780432441328056436866512934662402541324357989541807892128220770748817544204022986357187808537332198855679657389242147426510143555073320929581250334612576553127478986099516330619095683239698732001911832708185139500283568069489948918246755980891854506058611269503726522844115298263980990307321964177670276068365976294713659215379592883731906142937029076954915303838550661005397043566630619596843993586902583652758842949555513799061927086447556748069364395740751384653501286961225738907309572238075747179933138382288344306509789974475091591506069623125580475188100289314940549011298415958941457482436014020038717401493454268165325396378755862944816126501654859942477123917384530079285680310736738197784118569443894250090822723657391159981582352777673138696343336387842777948736902888500639121282782580186066808860539740313716556128399644681000542217006199628701762465302547713221861312526168800286172214138361104393165678332438832858533288706449890238054065134874672106240599669508800469142945672292435297389825371070547941335946446776440997920442340547190868464982843869616790127488112062782219600369718273968570102827945720939185270516337286420965213775743228990434721657527315151270275476272489645862535265699510218934872862667367186044679321866632333332710929082366338203840305666607751020294402264275467211712930587575459586943217230379486081827164549657424126069752419666442455034426607709346019164127683907654155152858574768627635843248768943421357932869472659848086193152460662496120852096956082975329589615552158283243088217176649622581951091935328623047833654251696285022197732835173843163909838017866537308488333097137403865668316058804011682428457356741673630247866350492821812251459259989518333318923156162716233899943429389126581849043333182321554837984319542912263590499024958445961679716726316289656990941091026298947904121645896528677946137673097145055951623776683611450593992276890426002193915730012653759060202838063221665127701065204449697663515742743464581824648341199003111079322142744655842575715399834899751322591019105377300148634709771288443338603208890806698541389023008713844622319036020222735258694329749029355549898084090528936125609699070243968140979621255320999742706801073745006709906825754443147280340274759949325650862869019873639906895518694985746286612017085144481437482636401149697774079360580152374154037592510214864114852516816961945938002215322379714919540791352186727795256062073096526966580373696321810509210394885639139263352539764631864114461209564949112038504093505391278194617063386857714078971012223975997557732085717117038169620311691443996162683492996699385601521423206003166985134822006317851190213158988080883220781663400133719497296443073878662468431303864714513567264889845082840581764199667682312709197865963181172540348264269751596910422264411354271398800162565259274225227292267145352162435056627655117306822265575136035146865010014479498861801494288046370072643998984201581354719907260744576578425215941362552104855954589509943464347067555603131517205019705204215071475938379075407512781164126126232856687519177589574933280297339986516265599677916995369002210247256355670451063049234095476784518391704729882350840322752863878019683721048471274569130167920443198976043512167575598111838918845028065112764223944547929628508789019604562275625388788778512795331594427137128203831246938819656430721003671769168388770767780175472366754894604862453540990123619269576118984093294665868834179770071817290737473497354935380199994174672964547062192508898919165599790136511974014462180212088668234973293466501658335092827537841182367498199734146315442028292553661927211044628486239325089155600300553631126565840008020961695857629854623916370740894241028442125689524731288281053497295410061073748052218522899627960902323029747710942088324924148811473830659162110085885685312608197781051501429295141156126987155592235379447025873020892947372826704561464791396616561566963210556386804812837966692197288467388861807329681721511406033724061582303842316198482194834816490727565419169945115320303864431295262919896621194519405192957288613755953935095436784950133780164782467920537267253204243789650833511043186155381593283432232335047299078585668868535800731633112747379411969692452315650295010716686170736317970573119035379613890338321912401177231909056255467883556793008865405661233531746797865254372116669466928303833216696770583114257836598904862841745445654654382069296380131089009317873927710515256696191071041398362130226647488482268725224395451957763349896392227708470058806906079478599473919651136622504284964069677804036271655062420508028151275914514792200516542277914592288256638826002999750694615216843651266045733748785187501331301374829441584901629001428372568181298050312142045718974178101905383831400703334826946163543090277816823658254607107773759037289891755710101946090517459910705740018998847676372802824001137965799744180290631614235861219988283613366548253304394317408911324322457134817966685949524824360895275105804571269922049889782421107903215123950248897016779355832455459227424634593546854488961615927359864510177436517835103973249786933457269388783719122256954032671874604697258063189099131640562223006913299428911925318133082217416666598395205118680740842502705652399526922323518423069748202918824840640201155314554330606682657351562129932423376844933319147907494702600625089807202069989888607646102271997639802785465079536015064755682980895545820750594179529176417663927848543458260881716562088473219131213785651282021022737849874394734935332772524405732113733468908300744697592420086448389101747960868183332218156529590447076359679487909610146896423560173406385865674876475920315075005195387317298056657608997139646747122645225453092742807697747722580246273263499397955842537194521347994319952418297456126864849491055506186308721398051671145070183370565514134564685637059578798007582317232624789085796631692147596020813646580703457265605047409297691604634038086022147414859791528618765213866208116230157462128221269429180285783548479570651865526551645774714379004495812708659659949784070290521758502056314160130987435395153695487871097506918533320182765487248935878707823632877600061487938471193560860233372304800301943662206450718800279988659492053350532393124974285706060776517060781263220339158180775653321185459607391387184014011356260739516104417913755537810341710969176795136825522253196135541587966751553662049758221575994692716778025874577374804049097961785522972751563621458495769804327171937806838776679918892900473134154354456971505288308067932076507049541329282923990696627431513842526445079419068596194182770550562642857476513191217937172595056475145761218135084828784026704187332329012710560747881700876940558808325655747512247760312730948248427238342582888035986001048182618073129400437423108570208412818535120901275335984374294466107045776249635791916905384558344531844159198934641338548614315538631808213241728117682290966502642230301320475097737837506993354146795851670373726293160705202891154856701725545761168221362008811111368616918710679043741894922246177550791394557561343937658419080413391030123401456702929409945279477192241417354882865946920473083288213396073635782121479189783687406266538892436762378592104677632559153963358557918066672282400161949845434615448548656292390407963682913657851702708820981206953547094905251445144104509398796218515171892330541206513636682768931282680506901316185235126997491579104632193071612262311537742480056645273621084311437496112315133782422463291697795488053171749063145370492174720057594176411133607338534646432834595084530851004631911852025175606070752872654955164559962078049727882636135885157388259856392591008228095265186583552588233862014665698906886680399848846762704568170102291227389600902354993870224870187417810295739561510029645047477954835296036617308462304955402041293905167732802962672565887923126043922416488131620381061093813131936348406399146679671544309300045662246079731209174940604434154521407843437141108579392235506387653772470468336511116775061218772934274950628335995916592553945123258847551225328174439732921525183136966620721049262260919121587219842278269191817363982268540439596750324054407492406207168660808015249598173747593311135608073103132497244825792030808954593269177953292060433836992163688241054551682965550883946414678294979533987174792378108527887952386800319745808162888872225255179257258688025040688366525270918108953711418792897824114086807128222575369385824466659257874742977148205102594226723517720381248256926727253682616999034607947119133610005531537965072943354460879019366536896171944116314032252570105338819524721410209753512002777906165824994070895679781529563900249716994600278070571047485826117442739852412799283577946709954754361572110941518775400861942288466336346460621039324736939019846113290369884192265087653376063274515893344304064273771582969711427673321723853389122843359960091452717295155465367248966359156938886154306683254451878247259786929664104927494751047251353190285866224080957973076929184962400206869362319053493763209369578890283993075529478469241422290169580882271340868229354476460578311134614575757884317399851728375082504136720934059767492386960209087985646168404842814548404056099945593099918673698427471755079719684403130159624904540812049244284133200017094230852037003920117908043856509603824001898705916398611455169036433923611947303235498896657617589914500887009729261540126891376790477229553873691680177966754595997821302208241468377033596877888403910043893338992228074980801596355484971461902793830996332693920099589895390209171931847188163277410928997485955555865409250492449085640769396704233118279404697789005100099588218391163486494192617785952710444835570434340520071989792284352588589793238300553970616055374505138595146332570386030938524670525486171466798184038588739562262281721735187410058775797141961413047644817927639457680303339422196601136002211204522292833654877589293618418935800686154291284445352064080484395992341221461918134510921432088771435109898371191331876713221572976992428640835076130304883339138130266740766224396644905826133290926667491643335573118090921008901266386270627448462650840971601290648002972062854155805524312251208657338126164605840492226630036613837543669138378429040609559643954829907640298230784924461558675895523618400751607974235494828919639357489790348265717770981951540231490534365357770868894072960731470460701801137029107544200012276283644745786432035844056676710572003909786559584015420363121778834589852892317702572611838595196231148197807148163379291058685760863556457098440003850175305840825728664889860552023825920158020863765971820666524016573737363980438487566581279795375301114522061580812177827687395518934193364094521250414687949988169515311931337267938472534045437936462473930991442428751966486326706402251697049759419749144565789795272019511451751592362873875691873107371135653376093283400041175073331211744300615149883419271252559742280239205945446692586861810989702774404509493283356709995787402726180947629860587872260931282275380817503942794232663721205810280616596071350033090506690987637991158073462698298529051339495228700399849010911486428596515319563181995400620875217450334523393427936987227339863410480939109551016956701245671178662065366443330173676715992737686885640877298006431225339258415077752413396066209997123489117114642058043395955795287320737705929163180173172211939029515934352675941381019860090343624474435975627380344545555618214533361875284606532342643107080252888009191011328363823753484545069796930476490639110505615511317698458627176421530159082901991077937717358759624986197608469305398601640149610159060397185702209444988849888742941793231778960089165474332086103531888190041979393113796321084302305606197149529176176676922332338982324519463134372758723453929432143939990170262453607777252029485673458402161112797714385100834282728575947932326799610309824055071991919755360051479143678485534013065916554602628253561666722642308974790461065766729903830264121259468963057468267445373814715905982602836589239318444049103430369131778545902413860406037803489603741495320073359930478071779412880532152550557084206312291114343284340576058686960572999902573114084841114808760900473564156561395399100779648131073171387921521469322399019001331973640676440706135879721242023331193409553883667342727599826116397936796995225840178010215680766172996021394653542470412808211633196456220807817792379895692549554976246535924338604637810393480107298500383236138131765397312416939113335129628148306877464463930031168216196472298931375463530356349232339649890917482798287086425367975510125251168983909168506538569888164192513128198620986978591318460389465135938393365967686430519096690197428761912399720102893823345851626303819282289563153672097262099668007262125564834178038345896971038262440659107903632096508281019131846265749379691719552093553243811040576543011886644226961118607683291156058865077288795000989047589221536111949218736884899331987914800607642611610697834180421547532870910786712693769332131337242694423992992364698601099942148228072896327133515698460693148293180698777642416815676720089540143503724192173985164835345331808897000318821254361712270663853530520522493722695429253199528373041107076006324183160918334868321381682996265662767636797884120518526016947713016836806864961019504024855723729958799969336774466494850883437583235282347651753821363073331326014680499551901976983301900903744214179720864301984185225475631926077399588182910495364030230287335684398156818847806953472952671957832054073530061393248905401084897094832327736406105617480169470105655546771612814423859773756487616054387806810187237301390665702203681562312756855159205338091432135125819688751964884693954924273328046425813665567856654624929582502050554187662454277137291494073719261499998250070380632124455361006360181380640927040754219216688668951845106448049504544154509571108802306094155216793200997644106801641352040695431955924781235592876855259333299675969431394890201784504347541612708865558241539635664796004092442537123293538657321235423655760711270798753507880440101496177032413925230065346601973648602105697149886880504001620597433914724505102876211949868908491488123040150392436025588515308816025932772535766462014656231080345553760768000607550578181035791360824640571454313698400003548615850907892526640053768361917761723932601930801510815584908867494739732400387567408017278978422349661165817962121246420489305081845189439837047063940165718178270416231910436440769737691332050342459109948882389423267907758717999630124258241660989645198571423878290507265087090225039339361700683384479825984193935145928480476639377667179273324731792045362237443610907026254885344435038262861253802183734176450812440795883714867347187836474776351962649369934681797015276152217529824359691502116958999464554157231342704064911248414110652672548735423115358867594262386585848610345669667982178779277256730751717292606311245175205226595434444279564182175304782785815900462507162823064157836991230339493080822786779155853693887643951437497530759656680007832727438476174070464991628485660036186021453493487106916265772065214466450974112138688897049088773844688306806548681889411406714943585693339264645348718506271292757144946858144437603196461283519086117573139623753135187137660528404249051004370108804422409506933445053252256522481833213269212369855984933780996791432173922359520547034659639311824248863204132633331689777586628665305093953260849352063089797390407447401766671441249575845044322141080195466160652828519328420039644534874017708917801787485139804201805612556526583742906045265277903639457142437306230491004578103787626691523974347305980684033097465160002161733931978236738550823591929393847132540025392249633467045594635852706974297604817451654207979492286398029396236900293059853600615122629163600298324984244890810527951663256439300126935179034676412864260116549764138678267285065856610826510952851310263597971359886451908034685270175977360422662604610075240736457568240610628038074575545279347343539348321120844893251531434003734190622493314194186623564526268080241622029889434905817480355714943011979186679011878862222078295875740149535776855481771535825209321528780532700594663886598408578841696188182141545902324324723772762503531641294811869929185140690666253574999199641055768957296409460093367757642980635003022260268691410039042761851583092960472171022754400431333406825421324380516342220748314994747268496056377937328079374857064380034491106833477568183213384323500088745381717343863283677053491078088327617188980426308768537378399058757763406673224690668543755439555873964404114503569369765428082933141491103121465480002635140933169807527754543017850389455961207490617998801340637275895501407576298263718176403781601816023769027644066968772313930436413360463900096966769239745454414255538732294672208908988414224419217276709580371094973160100314042644659833992999112041307687512929430325197620331081179153858865663639385832415315358654231428417611577721695405699102930112044233637297471182776969057878763410817004998370886912862836080577834777730742785353309502621236932837712419304140187001580820463684361111465797470191048867098701504835447026972355352690796919570708215415533465170354010108006899987878471864953965644776385428008466223406511283039556477904785876462013939803123547427082126400753603262832812566953714853471958113290089279619523471112309646955797091518425529455780762943887502474123186516012907022515574507544040301008672593478533367283272002633615393492740673084629578330978324184723038513489200067566514628316907215302053308016627493885497903673934661815961342993365712397804099261957785016153406293509089727834244907533871185177889299142023776117368579239095585855455390462738970627911655547781432771573937537765382183697837215300208818715626094803874556048728888672538813370030827401835641346558518660679678626263727541919447557838489114263282179176867416240452588466101910416721696212408844991818650990789824574841566457415186952978732939944839807256731553616099815224263763873901586213410669772244843522349232467140288789129681646707924669949726045982628318070105801331368168636825218061335364625971309642183677397112896747574092304369155873089759233845413656510331463920416367413308817140646868913710319171458733992837873831637521903006866378923761614630934515748359701873488334701853197417239109998669674573423053443658289808870868682578560252079876781858799953306933384018496484554013413580695189824790999281803037208593059896876346085054757963746413203254485807274615709278092468836067063609220935690119305402928668629097658026342359200319193080977121100351755818549900948619276010891425060051723252348363512565349667049428671079240614672410670725418745383333637085218015241574876235172607196119460468039402164146082047372046990109019211697428235925222706560072619123789691554829359346719092546854905219158532839914690784423823829608650026930570861842101871088335824830223478729161797781553573908678889301734654751563765612304643341609846502134474543916056809057186640199350925145752766576051181753832179017147512077779389406276227827108688221662516204906051780439223530646831488644236548603428852516420578721723096649385938873706095017135992051677916554264393605892757782899555403428619079226760731465057338473688014007719846364079618771359724024747632023073489843944471645214264929296840818497452715235384813325063142555099015778286943185334679792644296785913127553989789394532118577480931601555027716130029732895431623241823724963630319792652013472425908879782077112679323597568370216714639278139513894450061473718588152962324902402862062587660703254930581817472051620159229805804787109619993616354161564228304387591973805699661996385961215801892259541052968627786886328579294285562429808225153425535198659091625354057759099834276708845903109811170096501558236708429569092449448932500215572523395239295984317287550965663148882097173902853236935856954859354387757380024465948614615924772605352135095569135564136437767240941163335281538428150223705678685509778623029302186406511084857063138950510049001221929968180085118454780651698316087912778899597079195936487496005614096755033349704554735858100771664920145584200038925855934556554279201309667270474544222014557147520282043021924939951790549436352985145462619832221321592329791853127552345887199431494584707216361601120480989250311371563575454705562037090091363664432741100226137346594485167654768573008004693464839594806267099217949540229958113274512029582170559960418866278706177404158090267813196681572070751133790149082146706333739618321686311265713680984583617077503186085652340068024221240777426358980870354718236218039841693345343776378861064674411982947399897673148346963525981553006653664702741853033597853469916714970575358596232578010907536945472857925280897265866646387610644009860494533067927386644359880246263117557653565593344043334129672185215842141154484680852194352260427809589888525320125991521546062337027538656349213633491024721293814152215711476966108760323451596956368022082074142110037237306547831465492987545061311480013719446689740606047602864690226006822970045078029803608393277285402144476782342088938697914615843917227183461026036786646520542937913728275230432347339735134977745309931464241366417019141182679808767119498769092237942772586126099497475082766448335747241172635080737508944727464767286300922204527004365522036943723479230152941198211269178063444719912120160806067192397751400069770046013236859057106229998483201441036842850745157181428722786552357336598507041930099138477508172747934826503697965874494849936720962892587729945616434304962094488620389892156097112218335127996880846153487604381611281658712261630528445828145768265446960152331394384834968216424248125904844084966704693824836275678067595582333984782074133214137374229679826874917791548024736950423126877100011434308201435208948648955520388783952336472556462246810153722608129606613703196205045859096112549353122297819099096365328221647774081977377659196142407167391244535390998802406443336945027665901572373912331376033078790745892754506032235027230128438384209760884367229394730202904551238572519165228069222097822255394058970715620912233764552843543800902340262998276308488379971669816491134910899081458499652128542255604404413716639809034908486543892326915893997790670385087190112275015328620867134602730484982687230226921946470988686784306773827825187122561822573925269335581931045100607007545327065840756317752004290255204134075272400881075434619165721607381836715898027187864329642090632992475580562122896659686139821945378782092991005932658365587510740497453681345586026693429889409691694007909535911183667862306999883686496792904392208137256259025411141102353500469216847574661882694168098135513070896704473594550225516396480996033886687424806245673253620069404848528575879366975822321159513740099390876606854557996765694083881871991993816807866350684809868961056672014146832711188296327059902956899218661572355720338078430283284938203039099146491658503398147160398971481552081998963043178510086199873538689832590444276108912226492568225806358263666855122344692720558014573846997159727911752871883736454393903110624420210492719747120756536498018898759057857331092690543130159549026638643983091242979308559902057506552834478410457924055642920900697686172823644988653373590044892523997791439953856337322156167791934722922110106562300699020537970949658968877535365636387369550306331734600959197882137875005423792109522445673635242027444595760935005140869564579046285344387222066951921749755151202006859136816044647459183084266674880575168893193585445556149952640662344083993134832549764461508689973571237102859754544688689249165145069836104723459143180413683692428864004469791669857087305130311622601472667025904119406775179794788438787361610956624365960433712373531879027862129369578394921257369100600967003724263152860209968599532953441807618025255170089383070966244713193980896222454678994836811149709992779706395390929234295847715937785573550704860746055434227623587868996301295423962868224892477069330333364563488327461610092536967181272986736311295316376834529423544767410730619733226833430612560570953214548695908126190179423225657679179222578335134041470620604777720618620220601659569745795625011694223239175094584745228990045191009556402156681654509948073291048076233474373495972515250288569840996508830371095274488974927115425475904495628793902278792363786750647883587279762753148744762663198529517110284038530345412622733995327728580252778604821315966665411960038856733459544787825495365008066780942953538241706843281689467319451159400340589047981993127219774136629795357589001975005749527550627710162526738371603918470485004120334721984368112063722411417880762686580664727363249621215011981084625208981410839114309998689712737006965798472049216233812903487388858955782727481851870074726642258986735565737942830093251437455467182123394453767762930145155905526412329895428354020836553385201971012794934211278135056751489355744812295656403829024344111225823948694993769644133457799549635652877077452891304572086206173558655180216199968586962043322175947823240571160744115497515716424638254980755639608133335969613841807241872995114507921883958781293581790893118748280338812105112839602358132763013501400981667140808237325695165265668123529847235625803346607477369892959281300896174746040533283525617915272608358136277384065716935608768253005752332945465608334693188924681198684272004213404103339678042705500248856508433944336528192639405255713717639296151819674671107008503602930254292103156321512144385832868258567798954457746027452137835947938877536042639181643568196180978582729559911051688221839281584604407670986173881512554513141075511876878982706697448647564974567909975209945940994511522593579639527518178862400059133210460635879737691541946839536928329662283051039842117965914950975622515797360787294645936450037463427960279990897658356213710186112515170906025313973395505030137086837112205569133052079947859044038984270274504578578587978506648055761981471544568920919929303845310939144943753750270792130007075042941395644214740322337276773021229950884400467390969453393969052701543289474628565737983533856746364954411188306864601012423634151426226676274570658369098657780731351242379818551047872027698829590055838108842229065350125216170330568342173800315815887015707612287102610685701405708171234059687896378687600675944336290217375076596487716593486921444255227688376257722520849010954234662184846667440544284481461998752001404848903012802341575778398137866842895726786185622924564762753394045892885186183872709514021160312907879025427374592696769962367835792227305259238707131236900576140019600618693751944202104777966522460573952676052813346424044174393814762139644621343717634392084375149078527649391729764229227296601308097441792981244199301418076842030918702897448496253974638703947000738805087258829965500738228443495974002995669552293132110642205439876264724995810373706316354956969266582869596966339773667701044576841712266654034654579162156400319981003335523421059295679617774800606059797060663673579081206416277004132127850242365563173225636416374479159434996784469557659602171778998007054702936630017085736212139867016033607208960622318790787122478227072344237843288132318028632766147757812850834175990580148128929509763043498404584132069895935184485170303263029221004638606700687127438586310341448445395358984141141094469085836768052149641592668168387996375309239208610033838094994434491604874253725666197789775045872610348060042699967625382389116577884453547339950327071193719635262778294145745196325759846867310888334216254568327917198002494969188212810705666180715340400152620765255934437479871047813869534005796232410666233345340618459907365987508376601973140354584006053565270704098283193608266338275338193135239660346090916974307248281543448527228263220510875247387716554213680444379385323764085359942131593231409573615681283222180632650850679041716416621078217272486301947459056216698802000471230768389745426199904765497427320825997834289344795044686473361830405828761701986655303793893007336163697074607174947223402686254164967755827693718066167599991309806024558078502192780160010012104854907082101361674213084120816899912132784714600157167844573570226328894012140045721416716238779482320642606828872368733312266818970035922968191414380902438861301339503282644344764176541019175814390476002898909361364248184872333566646908296338273954635772955095399138678875371346758277732510423736564544021889736457398427049642093271987609083866078767852480204926917261436206113708395862852220527449430374795300198474456766504247602421781948628599412817873585343309080810319459794358114057225379624046095797829911590058034899228507183958087543259980689690959138803210250944095385674337931268227832864784466162844275040380798365439294680412349832680979173256208042742013389402154805774023366026273615893593120243674040124351319488672537640976299256498102465951507905061353431180838564679924386394807942543852781395937223296439919593811325540811986404551466660070220381447745130784479077388207675571258147363887465771929626173046731057159853108035208274171916784542646068283351456523700515328675210895339911778611231361221124061120148932964498526518987797523332141600373403913780494004183009387277341204531293699666237278290898275270614563446642058493153527441666767842626532647166244765645477469718907079449582083841973329077095340702615241994714137054187572521256308281305474042647161553862807233651771986713323786610240167933598858243398674751792617754100288920397874383177560716849871799734045218797462750010624454331169482018814427639264202018352210090021618305894695875152252913611470530707615039727549501172205771218353315129264817973692367792582358035632678532448079709161726706469296915607297505666757231296808350053731140340166931904365987490910185037877895855038960976059350821058737717479281348997926000184735066489040423657280045705553190375225263054184920325971512060717450645414712129209937158863210554706736946323423341246007395255662555200378612138372844370551899821508625822338668130994780351097189502162662436854822786336701877944471881080919952777408343291115352827281864396104324041784328958103959623762361423798998330879610762786303815674637558178655304233463386975478925155367099834358163922825604858045248577031992564828875862371321704607808421189006221308310066407178954887136027863311637857937592200869575805576807938624122347040300106492688545885141133661907098255673751287825087288274569568905157070109857034764766363316832118051680421969452951577753788883109703944631290848122691956663476188561631135294212433093685967960734391237341152912454302485761666049876218171453334128152936248447687946920461322899905703735058840836663243330785292090614368604458853038476709033089102774026054791194133478465238953290582917742645947304810259380438878921778073995303359172460597082068503073984906554450544689179368562159532964852803405162225385953204433391786371431248078570752757352855073592395536991511184647584613479091109146199000322969440879868999711390458263963978828294510322283242193888755155272923961098446226899955049623721458266430952222844371556024053580067193812827716222222609941933148806307948043018778565547342602089936472229261996643860057329081706462454337294730790831873382450095708908813300785579133069902683528126253053585828581938149422320049493678524114768415497139467527927705417108752445270875860635823627700531204884995111419701022556150835074740894890941097709368950670368051114702453067964478425269970280335660124270638326728562503836174929251819924298253300692921209968102348074771830052061691059154261820297191849240630815487466404101063140124094899254138231309181350128827434405501922823849599497559856332895959805758869711037987214258122423186263993442023565396089193557171152663245979810385708649038246465012338976399860856924562253130545273536284787577902204160854511817863862513483931628787505305071672478992287522948368525203495876894235720188303852847600800532627687501279667895593922078718380442911213031705680886093080758261729717809431162457851234746353060926585883584476547890795128523921005365659969296530250046219920599797027445939837214594888401933894154787379156483647555067693961132382375295450658168062891736035262536074922839852195630506769406793342271311212438861949986784391188009392027379931141971429824256208114325087327218833566652145062780940162436627491848521450241443633467752543241669294239158097841793992960996204059162364514601602809422843665655094375854708042635449408543491318196668499571110234595352516445869116455686241198497785393075627350598862136015069485084088595907592043373379422069806633572058894361990068320844187735008719446848412130908878947195383990510603407423624464580356536755224706359518534016307334020733182582301478760831992331311087725348967395709641529796308548946820286534576274823411951826833898393989466702678113508404494476455736178503077311839287909918085662851002980482572289825067664714084214143879398071214962476057924582254714910345544492100982739915319209338177041891638247704987126193223080008287479629925265667835560400126540304738678765984471627744725432880608502342947593448131284905452823009067505991611679139950281781865322794066256200707559396796496711775790128366869927293574507552928745441200499488498477715991338582604192979394045150362341142363095680228164373092925231436189539455478788936279604625280229942316090433178011580271895073395883139449230865794393957959994803799387622715910657844570404961066842129192600909356585638607616792629869306588171450047040734995475517347016462588092191941261347968047479290358453420345960033774818072063221508282009405881631398619389892886191214880700796902094516127278597941940354094717865123683498869303977558891091025817361960423842666549786133523461207570259845300368915374487693008458149135337422206511694732709519026950307506129106839760736418238857796810058185853550882646596248327484937861184962127197941866000182314580901761560040145839734910151858372432429537915213955694718531590905767002893836465837753750209268745069316338516284680585444236103536219468775983131362617483113931765593945495877105742439749508233785193281242275241275324497463293393383010001183666630503555063367214910183249587993797369976412318189054413527450882482599349871171234164963196382965133835658622076496868241155880562011247407133099951829491214704737407194853793594371444120890065499445056680074314534968682492098563903221284610547765304437862203257799136571274334132433191432519575749938883885224084060213556925612078495083618043571135331957595543202899726108692593117709559057730086876984105538251482967218168728800480880300907941456661435283245238688481722461545763411132391494303053477519636774156189270478034790552432193518284533848162952722123754667047515347236810949874186601155364035982433568964937299860755749581590374656659699639736907135929339967796782259917007060094408988218514852358708010853657723986832292470281670254352582579310800540655682441828205123764925215369785122689019617310031550199184657419622890856196363178226931334387003507380739498220697736310759823811931085819421370270230032188135939011754800720946262087356426605080345623256739631592001064657300952670729396264757595740673149369979564475398243710108360162374451155146160771149153982864016255549272891767128960134035390267359251691546547159074893389672089884484260980876424259578541228333318193252832383330805949370833114079517122400448711410839250173750869742371072673284035326875222482842334631776962523574401022331495890900162850404625366920263431639546274571546597402170925522808048513861116270001490679077637221727375008804596112252465249910269799232796566580526103960942819364521136498941342990705664970758534002413086111412976074399218651845929557863375061761246360645493767669811329973764078371579936045797378774749547091029189819597795541676378736374482367325854499538848714494890046010155357255914118504564641777565314885225040483082105804387776761949879530135916866400969439042804594296810636482175896952170796275227961747769672947340806345344326147423102063390718080737440999809365761132156091361835210984687888026967362309226652659086069496034529533899104296882907379576076717886374788745541134363165275280789255920098622340541670993109885936514593388030907600782845721387018751365153148220092322382573413244445566252106308993590599829006921410994622784121522923863048622865176638201376683369483022033457183729478697852326128999092389557753342979852906876073080420222669621264806597233374111502544275449437721918627756196599689015143937032768222675559569456526382442981430202622791799065320308597368162675259122509904207295275492528049638597589421902813803715330864797906127834607278845685503870636562111666281630260942378777996899652568680365251101113892279344197884571970871891973419836066517078727873719690045337570092282141997326445903449551981381126423765891258164556113725305503832834440966808938477979018795392032388259553339035491321937958014699879867960561983568251401587600093974846889852384313410085820825423142644540248402574092869639779360904992931413985900680058390634204004744765895186126709311499907357900045279142186904225406950087762233045786853510559810508634870311006827179777533181074664399381614228930626425376977003582007123690796487172818925416856534041819516954014357386709262906194519428039574001859435836113779643970717978007608262327791085728153900813868973053735146951992968473733283409578514697301085809162134704560214156081632616545460935004088337170964135426686133165569756260745958149798718684163412523279263519524357112760074635212652078228204747758280856672182588525697346753020327837420757554396174887453704288937547507711852364919139805670501805503466004002997569501593998869635137403482235626379823847089664529571502711400442755146194156131630583822792409637937531225674653739371288015847154688147658788870499242725070731046840054538860136767161438369945136174851789894404104301492744431277558487415685857748427843113856363599867227915259219245955812914393121561916452049420905425572948976240874732764445867465712935271351324431423522163503781533098316973477419593947232310406276535030234341898167778976918261190671892697677018707407623546972240244559441938844618923229279517565073755046090373578385781521901994720192514013235039067256004850171335816478857783639646805405257687389787669348229929434760173791700702912190293239048141072124662448577220801807122605121041184385763355296161846020027029828773466977426765542908196706214332819256718775140541966414285628622161934577981082719500243581700543506297233004479514786881497264189591411841863668615486481238412373190608079700182247892149726918794461100576351753076364950410493825365563283925349781114129792116052794154988792554426977993065524877650269718048416326498777678401185837979692022460086639602397550350475126281714593695177711348663454070867847003107768125309083773626927446912104000547137902404285417607321859534513903549188057714698540017132263064386844629151096824163588461451051553370141764517758284869606343064646501576616439071753783158882048753122873514802835241827615416862215453879255641637657529270732899314204192890139551177178255845185170426726898402366917578102351061300910337674976671374365871356265049290911509812323437797411327215580274628830354974061311213606584432824721939066744579126564626097593707934500109266931192971635829940681302693083749510750265586519231089521635108663841618192818265731833034848346340759142059767606232513659376108042247499930977107342410469924590874891082694327792490230533374641141130262641429131262217359338057165781573058468398396611949172101736252685033385307660151260244017282182780057215179654956630153387543732337813515222217651514737254864955597764560001506298016344179568393861642802992889532634484243755994519282019080723723013098908725915570041056051235605548942701657484805671113306871552295555800770784724326157385187626036145432030675630993963083491840599409667435673135084173820485531075142531659970518522239572524420868109145278155416326442947372490263901466485871510186099737193897264725446042045908541807745074534689065644109525001193717063190994130745926249588099624365907318440201252290487785851727001317672270199252612855543803544399197979012769276445570429897697906428491961041392827592821427816202696231670166401767173317299086827381992385678204255761458919364039148211517417883571305988193141477373056882374403041597360523181817278864906175992458585447621658129692297399657221058206439089425994391301895862863509515548015478073467479188584906254303482229445714446681399006223062449664132773270500618857276503694090581362743617111010928820930415684369972069506203060880014763320902128114705795742448947901876703390003684882176014773585923014754332655613450122986219112097291484237938775407863964442540041933380902511354166193662333569065949469575495074784604652624425777411390430123371551973467471338942953805878728035027821270296264724724838449928104713448992205199981379092035626729250068530155761021615765391431825061806370070158120382892029944439868235601510815406091180282781820835336934946219978924692166280272558836427876346039094707177354430298261966552332083497265676325098268816031882532031245166658418572308954150969845434209092865697615224025964732101401319288228583134426507196733096013856005269611133007219914697154469707736136780586400308788091443458308072333478064669505546890350760193602592336275057615364901842233488890895773038365865733133474453287792877842725948330502848134490141276317131666522261529966369896502263267531786821517582320686387699423434875542106136760016368107558628138650162198238076325271233720605498706758982413112097942121592478285171414535211697269770285441154132579048852159777322049852351075228225050415013916958714476249454266481849915266179859452341006330997889009129370596901967111035217886052669048413520780281164566687774981578684395819119468862606926785591127167283392465632412788842113732957109339047689398037026711726055087798370445295762455883340748271637149372820393956347173048515985140213503049836519174900996996009654544538962052333043479077000941751245019553831260987870602673352693248914678902976624780103382850058854126069410418022396100249907940411066216259903692420731900419462499905958424791469589772092927858011584447479098994564356585115680250584293578173852912864794058251693749235885934575422472305869992507453296008799441717564641098409807701266618196119181909535018258996779234158718105758248729895317162022024221504810824526859571004902311843636841552900132921975215724837509180238649560552627874048907566597717424720260008771959731937840560977514129822534122585213668682079840713634218558723812969313043092358560829236378311482451128805623955141876183936264532890080916403290275996433631740243026450411488532453627932547872788863303682791405039942645032886715106902682069244321652913780438897265675390296942002926030121601761465100757652283512781524248345014102763126247419538664045156239847947374351038278836491408474123992710034029464405811225619567986562551301420566310414956763813760970866987368660036334335143561142865468365508090684610028010195215415941441284564683116472414458351107475335776159188288525097790827331545029991307905779883712666864981340848005249538136515034580123362678348603768142577736543749466275215440717205575637938779895074718196080182668271036825560266411761337254828634170526494774010246774254953947711290318863430051326952569761035293579201837837997482066793473378073552204453513942286416410082879929388939935662801009631587153890358126162306782721186326285415259858612032876578519023577446615860139062820160954704203823068817530131860958846370215639709843156039456447005977196986485758795193102946468042064829334503483482628476176635385774899179091053557730840130534495480087643765487121995333753142265657027036731570253068796764041814576981477444346495695251917768401763073376801519270236132036088305963646814765208789840330483718591724993195752265394377209283777721498339787858096167000528229971760511165889720209779865666137046339882637457534163128107823772839922093163856972981772990292460486003023024455226032701482885167504466924220629291705974166330900240137149753198044762223955954624145340544355220779786292915036742447925732816482772224560280182219022353566957929250877200156480269358373103299223936282217796018808853644501963046108720262934120512274315958274674692456846918719695822026621877458507795801134740198192769647174464644112556262337649039285668566097572288652087741966237205391131365715146457288951056829428493283694944692507885952137469058662032922678950875075262914104258838565658180364148271247184844410027449485051713061544160150677545208996283135136526605302021956598662357497024608447106331285704263150965075682894818166198085730362835466055445887044796355129231695797976122964956744336021638009506887509072042683533550640777808859542337025806191797449233593000017806341091589321573822351017475692533744992882249298072120726834497193227780169023938514678519008941128878148638448326601295369799996592126271858996304615795382950552284027053327415016912971911375337277576239709145457745749114704993005617051944446929246886586669965760736146192741034559386453522398065396968530707986714091345373908490394505052895018979092217214917845131847512545765066217806704382306838690962894076196931194337752908909675493028449240550000314627967867769403895744715292511176928430756472529371672942262299705199273868496717804244752199095696200738226426376433485815050438177213582243093359864597760108123573502802914604555157628544893512234111405713568909451448678924601017545746045986097337857700658626351477395249152985285761236967570113347362558252964652448800661393279796020299598154312834064743950398046612514132120562291676005204946639513180702875328808223571054140675877722715402460522620301457475558826263052202470503789211504881162578621363789624224986114660368889007905090179143312238736641627054423792947848605078518602590784751582606483379843049432151883692679735853474159497870333524482320466098121380875926735444385211813426310501834830113748993934176936164031719010550384745837420071120594975653731139594288873825128697251475417960304139441151016362154207916844237532250549903270627794326571554356207304596673002745380686737606262304359618185714247017385329307944324033626101877120293030061828691261688446955289120145728411704118663832593725180371753959026548501935732170764167347757698159796339485367197046357578109136191295990989870912841617241947509352979644527285633286985235463327072404803480853614183679701551123363587928766019638911555791366201216510937192007896802405914855722709091532805186284594153382443748577368736684870913388114567734226473704045963298801820125353237162942989908902104301379258329895515701375391095855184297685366528238288192340689296444987026627167728694057184234465399938059925620208887788577216877033388591749826650955135169015998846982910195567558486512745121566312263155038882964442682790525683518670237950939921380047890612569123595059419307716066663827454333743017059454059526810221641330227339461195504779397766856613375057906231225832258421987098396246359678588186904706248180437022260016941579710638809258339720400615333132803062690679178662881464441627096123269115870569809319705501332898741490066670633387709505631091966795008793469520103128293315943297301532379071331489694719348680071851591831504014903795512736598153352752572464151591222055354376280536096766707298564361781296114335437234621879132717516662810763360387614555682983737594837512750401386860754310506804285567225045954812346693937073739688986763814873641047060458285800800562264977996408925290268217826198417472537761567541281317348435770284375489898698451453818371506277550091497743874901189746860878206964535263368417373679735467571771272714925830034727758069202187349490420073237358457749854811130353938118889515084646097830524393525328257874230621200398162110744350169076771140397647131307242186179993845335831881482644861056912731709655170503302209079509263636070538993481772381246996017782698949245660621436729064477156142522058568198263528679799292545777708873845083402306653575806141276564215529685056779990364970490354378711448957274770511703013471310482877385997550485919238170609064035626696859532667046440313112399187454483648651976398905320401320228161979413213696211805307964652844851695489847564389285339775486402106984087508248362178329306531145032732486177404471718386722820418865172452998280526579667506027516515384206728857367503223867780448174744426943757221972779954047796972220471937769315019772867589335477634691328817203986712340012386466788023093689736728237375332033366603247049456895045182480672585568094429902508104981474218409703043230380393173217630234017711015522906603582462100753609756699554374658610211703721945760660569506532394052254838813791371829264665608271682916804222287171487883928321715218376450643383577970972196449201150348745263969257907969941161578116589095584300164078824427442598925679167295641117370994417120086225760914788843696006711244625421690044372703047130372462420093123181372578759591684438094671464429325529244669092552371212358582439370132165276597694470559993781035597173653083085797283635620324522074995608706550528556484589852884431534805978252703093972708177780305246065167119793166847094936718530322438986203113898954100156363988738723839918398957843067188451439998425426265251286773591741916315449841960969667333404405767418464529958120424137450930918654568409764880465016671908043019693948326788647134844890449670880995782748652978136143332852761571117722853212054005102309753575789985974183147071754472846230946853569745769948098094874217288057033907514243505554584590548936386801374054119775405217080764630014124760059359013971487444513062851647589464175892729153506243789763681038006435334374637777073898702329710422980344001068817280211251242321851547334284954959243601997056171523845858421823491230919506442128684058501555450789314304314053632615341139124380091431133514154521723125549248120252119091844078176382513753253757560909152530099790589479748192498662631288112762597876981850996476241420607540665797947232954123102586853303340382999685647086252819663014818552004486686773689853717508069790039253064489444854097196624472634073563742364440963899548419793841120140206899914187050158651242900558210679885456614418963313877669411334645966298098127864961919436432561872792569058486662504468114586892227512715551829444681361722256337778905998737435357288374465612393627572709782572998355847156427832417932391132919515190020883097013124775628107469140755194016518984192328746985051324237914978408608651984839584609303359995995058045442867811427350058242656140582509578642075082192891617222278963019693124880828037964404036135966428140139299190953917218094224150685936443938672515623003181895728317910766211445727885979703026541625034602521083540808768017219319521077022517572260268897386659382083549745801567135576017137762565398965988227410319255133450700629413118029358148844519006919744612140235957906075380041044915292961707788041821736301082320848918725778247624711959779152007803222154498807013527801175705029379279039832580508714270381281042427323596574931689830796018801877973657583968829986462830719187362541626328634554252477472800996939320741007157942786488493372479679796455772516502664470129477286510311732779111102755211547918720165727204304146003668029054805751883680099704149877159376845152152515737382117106569197641867785604496092514777224748119427218229137279191305176104226700218113000039391706273845573723172380632021330146037398021932035055839948594497602458499944457153458818732161847709693640669136300169406124679126952668982622805959824933121069275486474181947598529842577886368686748691923988935267131673718081515443951879944214768943243310131165687105408293565723140629529999154182708399469786156593063805827534452027931968623057126928373641990015439025784924372762117491797994215649145498553684253981431482791813281295265725141827044845554945912413664862338043854541321597647921583215204341542381728244712941523593251316933646279672570516711363778734927001724144624802805049091116869137392447747885045431386221523924223784825681769424332627015767645844727448943592477580921220102968174108729840493215035300632372044054141104297048346970340512230879202253488972814383447848152005824889249182636785967041388361082070038624276177106841791006226831319288345339970929911493088709417369958331932384211580072876238388058435705568887127569147829633860225613943953860241296634832288937435258831244724396353556719891389629156327140820611493878529914368089937754879529031829970100735717072028701848301996611155944008509974028286962886132342249766667806527427293728413155996064821386990572530214923352970547857328412876695619915193505257037985725433144183333393238509983395227950816702736351385289976745342312220820274329382371031196334042212390814944189964467474452519760623049246038670868025571592848127416704720217921592259752953240315949520411287832062994204695541262189344230578008526677304742902488251792005787207164387857099372674963000151557180098098720819510712255616889203547211854493970812612679974336068146217446794119592992746791348562367519159085457624584981124151156779390188035449663818126186225170421418405325397528741175594803729508716026925448002763273564215281259820507877679605541658996169566309415273759936815337649485883666492269099792923013667188096897476154473081407135681941546463278367978683541657188376628037048143050480267115350092778226362718491164597905058165145077080612730415308399708015942885042231207382548414505158603899225014424347578854728204336338855634686476141800285325500372668110381245764434962322065848542691700270430867383560704854269892357703741804256015608283603042644409031997686377530300772452646121013606164216217873116943335077000443965302129709666845167306701897057818392027929877563673332233548978538697583509358281688672441651079468398072780036965044896159735871506037020414103836193873807307131761786991028082664123780733767526833877337040924030376880756636414961949241223271423047128972437264118346352062350920277428131504699527206991865274051461790612166529961886447222375851906986561764791711517240490275913959557619099101290049315842105701111172706786961211682500286539001113055225757737017110612193782144194565961886903126433924414292436141580069048457322895197304962519568306647041710833947251914475469359258085517713176921221584635423494008460150467708447224458071072650105149854802545533044333618602368844288102999342062871476556342896772989883035617190907818269057867656393645255044362900726233724721029093046046543787860172630167691883980930404667402672442112702835610657996972308712234135590335475750485206732360756407646689295919715834750827352312048936808728329631795232033282532239454771309020445585576126076651010124933918902908633793853933883103141154390238404894667164673132002546095473376204255247105683171551436751252100832683114556920906259527286737306984912434533251339633582763111824415690082754434831294450998455564589778715631797805794103432831866399954784595646784417227687301758783705691362227886955129624866252065523100886889824813513339916413524683582122725697701018692023613897031680945060486846587947081761620708726576086786983829632190223156226710207799739662948705539272093621621938102604526729083222483170249655636999069713374710040194624455004550734840996178036846912443465029359036540121881688590744174172404480807239224072127304001765331469069827020874982261690078110440311555206639740430884632163917395204099395014310340886624410051573639941606544430861167667860300563206913570385653146659657168508364357198403890848590365804481385226904795453888745427836432291422879426191824218832868404944178571886368766194508989261717193871634909178723713227949198951690866726765793864483175000511592416060412446499459047976177708460123151234652858194077780957088659637313571388649486276549190937239395755173912192325606824152791996912948886129092300534244559808370715294940063754983066007138976579612162059422080069201489915712741755091737843787522664774807909119840918175054537561943670621605433237900069813942050060984902537337223633424246087579917222277987537933029701000463446635167051466750301472620224243627552031566889071995785863585226016824826607170372242882411449553831432091734719198640449040195313101933221571639514290931006174416380567156703101838158281933812218371663997808242520974456257501328165382609231658172691825503908457136052608009133242507002591691022084242665492973395509078674817053581674182564148800069343017878491075408216580177783543153926206445043494996162150560757249054056947553442770105787299264664782881654332748054064293678266408996577571982111976411097318980270949179305398193158121413897529580708149219495904035624054093861309744749969530211440589211276954711240294867342400921816084290568235101105587530251671087906671003345516806427717225868179786827860777753431391419924285837968248870469714635585633613800423350059807828323981056436025787402898679637133478477017063452842810401202769214032741637536367138313625164355443926591825168938634968242283941199049637500067621126004008565493824307516409311571680974423355252825688296483219124876214258305393516580471951615554710225617435050353015707117622429395050063702249823104487276719574414354423547326667406040286908505589685233546854673563652240096525895905286072966397747075940936228337078502710810872017623158594335990093959767268265785994076932869269764417995034019641145780421285110136701453858041837913583078276153813789385676180818697825811038732973419922768261630992850165642872551684293037280327120495488411311873796795784908627016925771166438636705391980803315042883492441892008996604065531208960191346355288351239404378731239017154430784750693224172605952864116485835450997466746183639445959552421542058658149507615794214364559737241477691586457254373691903359370216626279436904565147714692534881452456806620238981717349373139394895117948925413571738543023367327237588694950052234818781065058579300559475304639750395649624423040282093916716327892520181979527210882995077353094538805530266159984622907234044665350189270527003195005231075691764980405801018941643833638720465606520405634924333919350699728893974717199292664415185030577673902984054483791035116805561394084128344086248020173426624603328603901661903875033422863428385664891665075490384562195604391629299764478625952209308451198952084749238648118135177681292603114821579883796207856142425897054385257115232669898345701844833431030358442050537687439168750638875215991887025751582493510370441065018114952183509687578955171995147689642296754491842345747608253444596723301217320737269829221376378205076059313563983640986269615841871775841558355585279701679805128539677880627507772669089771508436190531140513992767429460975281039852986515518153900878055675301884581706302303960953280596359905947693723280174849475414723510983479926727374635771448978128767361982237568158860296327438843178429623225232755754160638979516528751679755172590091958212310931455956713737117796326918089637101283614454251357810929150777367071583037045809762287508093959230672275792235208734338543183991675857371962011751779545627739816470356516104818886916107737772087070439218611026146364805822449675325577996422081509160273469016512800670364856289971078049264694573046584935212090491208964138584840855164810607672703378228886697065620959804849387115268486616413455908224317926578932805392491572628412706258533115348668943606772167452499256834543274875444233348111629379988242802950928659129408013919153898971283254138621476788297342063364069002482402327271860808936251040648461037346877142291939989494062695223038381097234242566502293348600395611225270832937228158903552069156207636381595125868186189922191476549837165854948115679762580688328277379133781820090984042268084461973984131903420799913636998300723282940795415202258332998483883199871859778972652404580173406488842510300369301066705920238276145477131804700425716778132786274659139528224493914388801881888372305398265198384306175668713416369350431968808770841174655055176149304143348363518605851844436074117851525059825709319994495946039551937486033582658792240454490429847099541470159168429528404217061285634364442746702241607168642148505276996125734735516923559067373492159594410717075541241994609328102092005393160808179220963967220487749153432863869924554731483959938380042650145916482991862380663973437797818973362502112802144614510664558410511081305044993153723172869561960868753756187362327971481770877330561101119894348689738474996927204102058561328121780576484037977887552686342737173801202369219007199540819314301651454749706323854901152022152858409819086713415493781445591618094463211320128373586824243059688897123852098840775236639962704521543026718279932193735991972002145944410963919380349879293191785000160731236659104926570473005327633460111172910376528184081935992720318009687175897424088046960938891191820345525214511356909996897907173563812111310120361788279326979879044211280548819841641352237490084411427598561715524813281405467858026883888991698816709438770453246244273000900971799497601051900472302785670758346627861892604520902464297824047074996754220165542312568326222717603767560793386937920668720919979545540219425786443482357922276914828789812589085283516136467979838093149220915355450692378076591374422665484381714172274567285915493593638670790635472985687847737427133334576539410751449779544950887967071005460330500823633552142901066936464926130910851610451056639978745198204746219368727350793845724378738416370311940655461192623359179661509594685982403191168967261516017046903436204878491042176620688797340557412430604522878928355436436396667999474779381469625170712388157411682175693690006710803325844622315351407801253803919679731895787883224549432253821041127086822264689684219039524327771684392428924957301243685785942721788580531402663310960217803231748308303855440212171125635842106592630196179786296047581348358204552503399568582321403284409699425065396500534274219547844422958770950829661118531840799865732237233301170373416300300216186252784923420715068531860686611457620303233879069744507579923567476734373847182348800144191560719470966692155340758210761785339239717326554951892641228256042643834491936830735794665895507060886585981198177513500683169038631792561278206034970340875328244582539475039884350472763397583480343859825547482514926996405678350729514804423266042180853162936894356945631077137103114774318225741467221687369264922078698545778345555518926387229006378894032296067621778253551120417248220154522524494161398071460245647384800883900578643091754456515071641525994234033091049873467825586827541062204148577785304627292581952437279099727959638555212411096663531701747386588232721903074348922342130239943287956086899527397435765796666111522601753907625076822230922977225388815517322058779898281142106435123488658145833268528489178500461872207697445381976867842374810189553235025562947492400622537032521453085364632983220290409888635469748691906362405124995610623938770748334255001929579986929358671172915103547243261021330752747679358287499076115757887777821924018003966869588166245313910585981828980828444096311269988900159735172101959597827463339764885620641241643690984276851377894351376450525619625512779125043538783507348451282509041735544762506739757584371339821419990214033206980864291158446012623781248438662761216346367730910343259713350980711762268156479733174344020064887498916559672824896190123008931499596660774710338215676900623082120385300601648792057878941349851529298041006779989712625711348408180563450590424533251217640044287857896812590370996040808385171693662283423172888427083364207281281108533814960119423414909114971367579504346597644729510040007826989238945808676246130855436964100254511602491010566563275845642994898336339162909430746383674890266188117336267132953860359513760288238463819475752170373947756195413040160724600825463473111693891072078918327093622273182343667866000493021493909835314253097046784344128503463773104304865131886740474696391065222848403971701157429991258979367042372427342132718041241646753551185900468495031456376169495812020898987959712224273089245344508459577782192092292182838610891899518549125136385268680057247843763121757413653092378153883926609080652857727013162178387996062475255238224356255808245154844257810812020309383750951181097398343477367167014706163954366503756850200010653970605165209279088896522260860194171874795651521829272787497145541185862239924830224442351456090951979663815209911314809163400587848623699704287710309938055631655238631183589982522738998626477449837581494600476847163935488764756282609363049816674422066336305575654081443961962846642342536145781919277008828296265579360893627444626916002046038792859157161149665005734720371262536735247455173861622758944481248574706322088662518313966058512389183333952744647889987703854981831365457440107272982699150749311219195770195127879092700871451254524662972575992828087498966460560970514784344836807334908457282218824444971654619945970518832034099212352295732066967865720560787518004938729564103730485177590135972022341787339267367573954333168787835171132894752740880908457867496997166606621077533735277441901490170572953243508389061266149553262073018124727217860946994315913735095611612174033916625000496969767098713474943971968511797854822490080794237409989166123475930347118954313330897392688580832668651424669275866239263502420987385403194329923170643685351049369174251983214697084934523278532011321240899462920775242082017325407869544794324849544948712876141142439752491093079407403791067556122339956586754893475102633777293763009316336835949263387481205461338056422075624686884711604319591402059373629908256912418965024935442506162762626156598649900467697444159417259097158624118160337911352219464118068021445109026488613928758835266173225508681019507279427392542333302481787775333833730666679121153661023245447397013424511517141073136803567513830378842359565912502629622338854582302736179730150178253657177460709472746128779575271991179585663657852264573970450323090157753856059049215758637375358293460148392245960448574414110942929281952804061279267001686397957974306107897748282479420339674320051252030780676146513861296215854836619794050535053788673246532192243072708470217802494605175355893817019571998142750574068271113060264115209090294001289015387905819451308469861266592202755424419420192362142100034391090267806614997251174255592484836852769948824640552211030544569221051129059444333647163734485322484131716579691255021928581657316590894480674828574665052001331060498268458435280024631157071933702302985966548501938837706667901059670844917332134724200408461560609857300537131623703029569649777714805765823621009482133099780104206084692001339790950599343269112235182007701867380797201435169506436896085554427785582108059935722797759533528003003665038835950522593781956917351060193811048386718717439632917987186646726287157410130049016776247319681595835290007761251634438704097256185191054051975054319519490711873597125873693192488949298911371814391791082422605215642696222778854829460592165087504905037793079289934530550698282604797934204009853037289881541189192433698067656237774074545838930199317771985528131600797963686441096525584196148542419416380624058310361127240946308936730596845275496292429998790534922037140629089867785521919458882628124760191873702808079521212687945832325714242515957937965493997348320075687323578052143714674246701997727218689346729440383935792083353999353197572675398274289280568624005926680526032458482174904433351965170254368583396767449900257478162775564170928295345805794384800231471713598045378589485052201877328129631934697137195297614342586233321071117871594350063973251753645859124258186321976450519837417712324385553306656565923104663118633683981974795804563481422163901248592619640654541992384117243463761441800600747017876693596822413170687407189706661787301842875555068023817495552881105785925747676558593239012362034954514379650075826574853532704788494965484451379358785840635197784613917529737076353476693154590510438757040784846573459625620056042176558916409882374647596172767822725851064189300933422823200900219399880451553120492287031728759113983773954761451055515362834493915214489058273934120703092091256230994532683833004326423327088743767966761078044848603612935098238506415694444396778050928448285334958295472526780930669001270125355510477656072112693131015558869193706773807508196286098875345431134534259362635807651821034335272233198311655261407292054647412580338484867076927454154698288392118177793454532091622975760395817144457315116096207817397450929174263137813908292741932991913419655568192379079068068527334087773380992830355567502045396182770868924962552770945340225564481628274979446135493168567193473328107351301414896034490405339161113781377839747372164019900365770496848766776595223449995713113257571802953880241951066298839201021314124472657200648925980806504935219510528420624982431358886684919076056214456124808313855144989646898813668840686885227458281975865095961787221446231147393494963811664588186273261827566228452295627177115360438138086211178126367873682328427538905489819143612064491245105889104868905187789538481034840851209760951685121007917482031353232076486420500785162434927202127115878652777539545399884463432680577773454513773363340318513854786342547995124271462591341381342284785666214134757538110144126693063343487407899176039775980891399234921528755538933339787896457575208193055743694430156183291549263879598552789790283147003252780362385099805842750641396248592255773834590233583998064844877850855366640371140667913575603387578294765612926485978118836855772908999219540097406627567337586839309676413325142775478771937847090681143025327960832878118601548859601374106787825858660021581883866500259977601997810105539620929650562891519556079955692959921670619675882078500538490606016435684310705399857435535872843171724319630311500890641764748629053797613988141993866821790598975590025050662677161064366854999621956149750844027398120858022661666631572228186937593442623637318536911078888960415707591503816021834849285286752316921395075244869955553485924790341569615430523180679033704587942379145272115709760819014967868368781236976949920286065507864145072769422982997713820863908455853329218373959509134431962864220047950636018644288882566978777252505012769076227117548136312043992563005960974702350528988570176956407874169030305561490326393697565535900476905275237617915205247721982998292828053816342975214138134262351857461806916755485108727399644201043094600509762976481708080676777446703687312626543320450117788765288831921471022918666004491029180766631667165954765814880254409356963654550638917215745399021583761013981047092171939677175028664726088889598249370251322126056109541120252208581673673479982140981972604542970095035223893989368231285156514339547341441126061781437465685698977316731197134454674078559515897918546332298169241649113866065337883514082664115071041925641528159694392143836015666053290888294422022240814477395936146081995015572112415186432229204884251848789173988652760931027419483395336284503948029652617975115703416728838750027150885494305959756686248293135736484095960965579877597582155585447317427898152817987317285695210278063741056897818823287178186785610147680264743057684794770109958921244965747113928787055750692307617606320604519290088906001351869909464856375817409337633019600512712815797235928142709724592869170246270747053247275331113546094043504041054380187607225907711048719446205243165187166371111423485389495293091990567507936143042815407085361777780934850391772835931016352859290169392341208124427425738161447539565276887781207823886421633241205815940071197211053006356570000509487416882062720372204237021483979329267439344808180349945216147253447603028248592771238565366263323584146563281622471279607705837099455851554685180079256869456148204835855797455481343477269385846466856638531760687745351273745616946652929687671961939632609106322611245798401112591810355170521833327541257872619048666596006422236005302800735171394714787723653142968247374059161117556945526406169540061481494911697060317673847235691267091368720744310509949604451515641092868393614645666492211105162347818442565816772957038084164676114496853830175283360124288230953659304659648903042214059820251565868904227551500122701482871600026029478972017685399946093176099654770646686096730989913831620614441863496417601852522147690775067785657476261755838557131336620693166000958522119295078616384937070362651324915006756206503170178798771676807747938946648428707457741594341388205848086458161403059551718278262001153141104672536660993517593857113426935288857902998888345581024380485940410605442985463351854299568920819981771628343702362470610552362696304314621052290782673271829939702301505639591537451490091674317313634190908289684796484111213186955555621071973794084534096501947775021926391222935086063306316869383659765008074319409003105071803855962328724282075668992968990403093544236399633103978795949348259226690628966727036618759882997935737940629448516383875560423526222367801327382589054937150440063294012850761027871945759436244933541282096942410774745569321066350558199178523294984762635812255108770664203628002106380259909133678895245242175335640493768973536618813838824941483305090892385578150591558118559317614543949371102446521392068195542731191881661128795520961269198791049030440857489785402183591934377417137189352070200814021787841182719456217324556138592498586948603646793341629065111052886841275771930642350759951246013083174775094630904432730469436574898317998300819046270157550335282400624206958051455308301360577540525701934088291891935454234859891171683174907846049802154180903751217667433617002986330906150365339048289673387449781689415851757597453742716762645436338246979238152772492345921345270949760241922946808259105795943493712971989077650988593962103379421467510107231762479661010521341944769153748578137773671644086285391460019875964090239229099727314743830380039072101614020219084932552462647108541576995883543275316251667336515623652012572864496044369265458505477487486543184281400293455224349993517635335223956971544319477858801905394663857480348426715638069996856211877261503335745201325587183278052925991962535829440222320167003850045263476323251983871583024756523150007776445430980167129452344141236857678640475352815649003509372321515494829033335288392438690688596138422199905162931772396520740658567930511102871065300250513813283286825074573475673667574415730832607401972012618602354133521617760386005669550380633531681076192014548650328816897620764377449032248373387389091330301603746643864873628683456359951084537571124471293742564789742140912213469369328927230231240072650053516879148744572931867863033573908962528725821795894143995733570770657374827326212251963025178523987645980013302207710035381199676860276894875453057407925419805145955922763336601554299231153757580274649557566693412403849687236181314118040643855479453589412881114779801547442367905467991538672923032691275833481906186120530265342874137992548068457902867996945579429072155566110119819185889073436764762725453684130714281117016835549129083035430827633293064623755200785445012626052171258169202575882713267124143555659203210844726122843221719714694097123019293740269033057285780475252650223709057011152105285939549543114815364759087313614530401803576987193532227880608141800944997120039831382517676781935090953141260968409652997181933255276744522922350130485513141200205653948890998117323759029273774504579816567324061623973821388190553084104758054397736994694838535821731057088687745471492152726874909814054689172569161949838463508150804762964188690436461641081371639027616294180290367349294909590630879159659174357927851881006684669037253058520552534715386748316068976844739517685249547646495597255812457273057284895482416778366537979525982517736593671119582701131333663247727647107868326827565351478553303365208934199504998385783781941712265010870524440948893901615827113994953880248883101205524495864686061710232721886219335522731534811330205362399679452995792515993320861703365249473799550507127127782018646166194477209760029164476737329911630920921135045168742418247340762242722262380508690423499662680876722243705792298977210817523976839513731364982575224864210478633022107502032189876000262118740921788319102231744137124592235703521261391556260087097156256112885270840396687131589947267140346598734469245618299225846330358272625951931266911874897935959725881738883156028395475143310162353655428479360695816116533128060292019960055873645810572315000245036747553713080769868703949699310700633481299408628737924689766843646421882400663938297317617878182546427984114729972276660268081255862125951585804649085701724498552586328682358060239247702973915169581276526384011665347645952820637596014522692206687573211687090073254208130424869565459446107316755981260925473564142138723733681766697306296289267643860580019454609787072213635832905195150980040039767887230516078393571991203808458390197941889524099026028903902841869187702131539237527012973492123998635676745523329962315979388348365158425853815822089247070578229157112766887626978291823599197897730627454467415224025109358656781033479928852214194592120451731769069187757028221878757448993549193725597348084779202248921853933226713768967723762866533824799747101603806880293844629899280013061646371454354602868912527792813130161253014246487516473637865791327218669868770271884861463682013499493467956916994647521479701451331523346099701564799236144681512961563445255479710640491088344295170171958081921577019365193104923534213077200289058294291135674812991336239035354283283112712735249338733129327368610208234460100595906662249921280570446040401340994768268297759610884380473577689584425547856726402829286951319797950490019727784481868136372546411731745744874311255022365466858267846547812807297256082932833063445254082597014480765607013923969517574472612352706811121434604740853330015810565896247433092131340927420747713885680472729441400067601850127552344279950037695046666750466235824321519925613719661092456297900021873125931859612574960636466502386762287517967254820302923371819338007312674250328251751556042595186699110861099015969748038246626719083311088528234661981976422860527781069399797754303634871931576644517989319074967688773684954021242104412157100063130873891702927758351145283104994109589226558375951364312438875647675151994328836158594203102296655197830625525778816991590799682176066936337334242811549440592322380105665464274771595468962526434625206242796446641788627478447324317053844289867708078689128939270706852598798479162625970595860691897253886676291213520204870964504843401191944260841248054516542245038598360403590607900898404744294309484703487464878926591208119363853403160760701602691758859418217417121267805667325436262893556362548586489615249081418699854105004077637327885411296296713611670333675339938640399425194764243092382790170199575305640601181875875618047193481202387874172964227525891980113289579983507917844014365078353255138779627721192108351586002095600823697402696972833818823762016982354583179509184580534218150741083185876246689785229465873629187348854975008941024990789478552181632611333052709445344474485928295716810904721858543124053052730817304371678358138594742714451133380379968363241490006504518793005232653410329992685085920863633048113226209234628079759781815977055478138003134440376197514622075825592536052389660770411668170632361185972857895158748270495864306297694436030163986780229864003032806308912879105828349465080340123859509618586666344196052119690950366596694335542679768485340449536453557305497591916720563840798650773658547772575400830374688691563791397459625451936322607872553215313041355693250743161174191792490712840548635621573303791388259496877147592421209030919996733658506502624090695735068964797326462155818478911184259969701146563071666477975191824936242653124525416114198168348805437111096072633444925213872785636920689053364750522204740006753930530350329526028557399405331527662941330865127687607372437419514845021963581198528877391819725356769463861223972209257997624756455847800067146279075769344741147428191873191084961679275038037199634467423513566738130637085799343536522480208547857211918820226268137848486837244702697309640475575838412986308618409926917368412408907447586627953075267354886955572319780310272724920089571019066131681382832659450080612847090641564935835836958970651412899834843579103826819225702444124859481064803207082576280388270617457765955318063379196665039594088699452307279323372683076358610629777702351041031091087508390706610235717397388837331281642288998924514736289957247821958227849421556853942258693988258160456443332604809343016011893135865544957647417565159826497986942894536914035399059423508787341653703478117328154014498138023724364528839000556282753419938059876085123272418983557304876817950234503401445041642503602559857799985008721257244626577873602849882881219462715718678390485075187665371921197969187697535979445521897669272517055803508410450041741476178331495608071653051708813096379292936235864997288522876571760659190386870837431167720739729445906496296732308757966272675562061308979869593553065145790517803219173668235986679857692010918534132692975572928189691430661887611826695758402945340900415760873598849828484952406901641967639560195022377654802662089094645953083690864154896950945612287221775038145783115129944595210432159919617323533376389875443100499283928499011357230441004761651547751699103846108671767282033981655984441453620357057281532605261109012665653611776015815953343197428793979116794073788782897234559678816857560421891245717616828818880075175873174750423681104432098428051932240950368612017330819852870813150261884208513148023891073507963067990900214778095748781308918362119902077426409311915611492333045251435952882709917570624454525203813198056759834659227218661582138726538261576469002432292832293483412436273277225951148443080208553584286445665209900119326675311824487142222095930125990408409755964728230110377988984099524212435989617234670378474628510638641647253154416296350993520892240665920773358694964175985253309589960824529787543247342122893173594898323197366201734868152359140371474955678681444183409955493666698861903567621374507109242846062762301190555330168197501591714507302446809033811251882815219215549590458633384048759274011172309019873051898726867532249950887855894446830051352702092679124989347584346099888124445336336485544888380227436931370535777302360097396131653951310465801185771067780049248816176076677595947228027709267684538558001490945188307781422668709938497709169797011528000702948870066880613660023739179140985129798535991394599200513919247120798702175646492916855490256630469777717906276806920628910140640261645992487556904792765711598412769089955871868135784150991042910023649015980439463810007053896575761665835487281823929612010432833770847966976356217136633132330333797935746736736103581130784000047366859744114986886624415306448865771624392810862223388753618468621959727734060501279824087599536212216261792519530802024803228967083443819760436791849753818700208379898413580222345351551943917900793376339595677817517482507299980120930869881330706601860486574030614381719333531994555356160431845364131500486422889335568574962064952718811848135729800664236510866398385029301539723369012481571141441514822084690907744031346675093999850357124108137691076635464242689930029964520398945190256538160061186987405111050303031721522216854537457129929133627481834357732551898725222062316824549786096351023767153847935684532755440037013911932648248793072436731830568152185606929052553495336287013399961143088103047543373870904965946451170488019711932287006272650207214632167848253001405158835766879475741545470556876655782067154759256204830516194627432493937423095665949127274376642148090421472462685650115187585182185285814374084306732090871012308837466207097745295031921242262296448224333657065862012142361789166609338435180285477729688200088080733824957546550597204158781696951289399563618078207055664863053082171366894648004373475029294788648948581453543498775260704170037669014507924646932800424732529859568006133856827387212940381004656171244973058303733423264833330884365047335024131048749474885884512492155422753334425657713296491211151084420775831939860529707427214330982177550216486743998507673412149317143286048522750206590164833392610493199675550532770133647791358386294382935441294326550449544917485415040226918168587780975375869376481966537373794392421394326298965944551788377657270936837879871272872634342780550993564791649851666510507004655063001970647537594989965346064990945374507100141872781348999374694136376761643877691443954927694606824954663080660537734511240700952204007401266271144267930206500925716395556711657453688754614566818055520862359212348392816021263220653375102855233859842743047460278892520151162546523561242177053775313598164081766852595422353577026420672292580090554610021521311307838331322520577689097950691901095188804515227863946471581555547100753985513220053443839679060624270454572340676005990323271500698928700498192610323960579350870266712208574597866370415947935328458609590087601172376107014504163875261585603587035013329074914154351533964829684646926863767070827084764463411158444724139753690680856333646676946715108087483888707358002901351166314130231189732047153671766656270162702541439630675034612403552179788747839650249068246816337720057052848916900362597511358675210649020208700408610596522755010704438334729524168071738826170941894126611305417285502725274756814517903551190663178351103606887016048438742098018781836498600732804546008137994390941703255083463115885091196058587762745583258043153258008161141866983079599750323645800190747314306417366790970056063231679579955313534397610519798107636258348011312213737767927800052604695990607337303174876693021113159941077754341143669119788854180894968918190188025942809628072237473966589553137575353439497779857502857816018120955632057006906572699139874036319781037593315917089615308747948321480307707452547498847043287525959293364186258163212352415966944154888406777481907842428798045832872473250970059169046325531077798015484241144924786923752516561569040713127272099404874599440873424688908453895745550897835292337797678662554845516352437236421310904775350480794676125808280212463637996539750436968219803845616590537905068448445487662812533781281743760294207735964982330183772536701816521958396521125116073756053772139172043750379278587420536506893720702733624298384149230352307629018772395889019039030916580139688945015803121882956217767644689857399908815642312072900573115297923956498875301868144237689694565760258534530207503950773085246541093245189725465558855989905728134890231448480256223476360589954765613453576923881304621927170448664383361328539977126594348583329445907410017475329556534045769189983056232941958143400577684581552477465947229096869470076844659943047034526792904999723016349368910962509467280044817977254393332829916998410560900871130298723146916111862786597002938250094901647021938389094005776295997296468327236320156605718238207809408668302359443344628824904244550586957831950380007423988215267779867331164402313001040116876798118248171742426529452787669920666279312811137325130326915144655893086956063081999057418337029873221334095055240061818778777502428271342907394428273444005719906962716971186946858043079604127697538239627513915467016862441533123919495615396873141525008974077255318292224983847255427695788071254275515342340863952457295631832369535741895091143352703497567683385294573340753052758227281574023035317644835067630746461474510883745990452103440786989397298479490211953544998272090985727916232303609417345298069404478874442271032449506772777294826137324889942996748048230964448577914122927350868423789383602552346424448981110725621616078979581255865597028468316967779579148217873580491743218031487854793186737199781925666937104923490828576168398549090216303162358787489648123626488403982613208611301603473761770403974618566314399799359252851369439940239565929942574046587547982230447131776928278026051114531412200981021168278094766928852186261581389415914926889615166566548892455369785072843871300529940546144366176270153389978844050932196950272982282681412356582974085369220793763799289353225294274555136442703106397841249539066607114533566634680372944326141131400243109637591799818902831099176015786657483670311169975852360325912605409855987913091597830556735383650292783056184122726320949450914774550717581608063097609875559390487000319617776140973865864573593045580763362387782709778896202114764489899551092769103134097310142786725552143556991057680597601807804851772867246619075097136841337283271986179276527006013053875894590026756585902723189840376988911520319736712413677201732997035769670366375769310480014004295675672779461119073243321548879428047384851729473884602378098448183391941151247280036741383066218018224289125832129684902038969847526637675456756419620447643921324743068935208044409875182597083547426088529919724252403248778591771218028874359526890787231829151217461861333907449423538967909027373679300417376996796109301147594616002501795678264641054636593097519187048373923857850468793072840333837684857215035249251241797638866410949526437935101081552846591445391204075181411001664415485970549671017156051441865283032430856123036978740207038011415976395029201666275193270813853638943240640226250479229493571580049489895637574835208591117195686030459657139170428008850071376118428194246999331695767288019980530692862759554636822676873088965125211405351961297928891528459681228051782834526951422592951519103144279489974079621911890846293193559983008163344659316045088680437189584713609763731522035228960939074254867448165559699476565426363860919559710013776478700938198686818916146501095103373220889735452180303030999988765586366903802744032988819852366578521186966374491160574789699654514843131701052812764597641854320522862834199256214816913824710089104524762601595489393254643664040059547569259518627778853475284857178439221202780240220956584202795766867830227079195882179874231934856866852148343398224382686726992736309629788741657020000426184844537930327846770865981343577782398935502905734418160738493422326787080766747532591918252241077324722868654351221906438950821099885807152503971331465239073394432455662958266195751063425485313597851048819046393643675307136785309744204296736758532960805826534879588039886470848660667062606596889332925702833303858784279781689310558848704771604800743649995829483121322746261469608829360094792028238511424772560691320412168199048318944811235082976599968399062821680391311065911044588376207607991861316064286563614624560100158567197143737060424164097528599700313518626102208769728619147157966191569410037139745254954868034998942505047903160292368108462307298212811900731931771286245492927462306387177822875939284382123824914505737361447243834460455326259195528223527232527282371910833356546495749190308775512936603073654891824100880365348009852796370784477532939764022554615602826254279876433030577994712928169541222346579264151335990043584937325366364099893813427413989367586663035330419826791143000245711504544330505470741263097113001864707248541790062203881715262587826725577361928802418610247868025310439338463917329527593870034444889306042398803302077238031973393865838017448712458420713830534657472410218895150466694957433511444384232917306930894453953093452829605406211511700987730670821430464026504218661468340306028968531384056708957264013051584652919677359279540913297330357356915888442872475275501320089360450762274506475847969763923614235192055818343965074765170571784722510769268505374920279489547865725860613286346692430015778466723121250431021028905845455320556047826986031083582799437781887130651283692124983205975544036823704991074553904960690521820301089802042199823735227970160542206007257206150886580931705011339762078243198685062928154862119548715936488432856680206699555338793781688275593184231025157031535079430583159914685585717709389556986918470305472996360463733924871623173583250624181521412983051765154261597496067865075952514554508982945171099797730521149592415591971887555810451922323250771615900130304245413531411700958820549318730604494577897140330445587499666407924064185679244302684195921611347234891730109362426598123425540386156620426018042830320717420175519829721170363058004872994824341973415781361196043639426644362604872065664628631929975985459967692066994618615347912590319131722193387585274137593612178094046044061035226891118988099509061729340914505880651232745696844797242199284341275587956193949089774005201515796333507794106509950469306712257717642877633668736857878511347747595452744111689223206836192256000017912101323633462505712968121790307665574647943874456384666528781570782919647803973453538801724552662099902822693881192717484972518037111117716252310718685381035169777810079402974377629558174570802645049226888932308133458146403875578673663713790822627144550197953159347733937849665571955452104840236759264012563220503553096878431471299803668656975373617957883865137916259199841463680737825960547068787042001353675506066839352128497469811951771108100384566070306733920231266562738662271125962938633668553344400614291326308198199494994434380587184978016910412706528231986256623596047718642976372135494218152618560019272043245623521995099865695197652746346929788035446646807177671312781250181011976286172363430709492626843115585483618092784116531892898871234645482134975246562013152067268525107470637146997813733468247378922337546300129815387649716166383479387600964918184475302701202210094545745586770513475036145502707099136894411504859877292763641116395057198605174134109003684487491940295986389080078006594440296533655490102696868275351577836081428668931410611480551496779124383055530763909480273000553364163383639593259160529974312360045912339516886618386699285325758567702573552170092172315490240659572584324938473063449516267116191617925739374420215797968280503360292924926746809891960542082283186497907678471737801194312034153344744701258599925016026648357960071832173915212019189783098169210024452144638009493943009505554388462247334814920918097844581627429026119535847964882341027221971805509407964666447328536027537630805427622913726356023188057756471701669837270565511107617001215689805680934656843542476907000833596070815296958325995429871355656568594357878080904388514233506480152700783602577689217954158369685281311817113689417027459930097577679561094621767033816611298948624752970995119383585346365390461656417028654443120042027262686763516873482887263120647480527339631807917206309663465371215485104016941519400204152697908150774193361416232768587150279154513847659947962769578163434216140164042460223905125095797157475082224385256119042549522223953032309351142698820070916013185025870385965924022183258575202286152827341257929252457860761378591248541999634477486427139227847760568212175636095095472024515580036482320263693753322846555153201914500709128275134583237358292350716082002232824605743104722239276898257375783957224210155591815241808958772581278598614596371457211890671096969419943728205909568388409755837703826538830883224934014762016161907180590164627392780445154943649036267468478873072198151652434152787854253338803071956659318010986740233555723546605100167504824117009255376808593795504962918953590148473183450496822415458553238715834575487537375156041567343993957045544490204409156656641476700061222739855761857893985108462684302169017180035317267631642402885162638712273669456399395341023817643848825723498239722029083083432526154432880511315777691136868726410627381738097742433152026633135344438065315493968070161258108131880068686587318706607939684696206105564787805244154790340666737198548194998514159628620981536156888313875683806790953068880243025819249134587863947295524631430453833209744910176081741838607214889200616097367503856018815420936808781337079090009759694679946369329747102353341700629737528421022852139911519057304444694937070669172582488912103005888648405181721153712195543136316336822455854556873338509308037271193947967163630855623251194838503947136943954801802999213049869130893018438767957929755919775815342083897750108523042023433945379775823309251657742766435244247830078350226022786361343110867221552432997983868128835269484150542466382273843170350903758995073741477373670330399093606703073593692640425726888715832234397164172430220979766400935836484907450773693088146674962348188051495114010039088538836660212744336652434654368747763626734274989512309010290401730569823139156613163636731596449252946661587826747085976636127865840272764669032527241325114818573699134245879553150212669101566034366827309836129197125021684461272634122694590288931754837743194253036678339644400647732921468219577960329443350588578051515999098542320643880638525353230301557986611092702229395219997550108355647628726782993658007411653090156610070380370743209623151322001660459435415254160727484875266605189758315744804618784541449081184978777724277765236551297179125561581887966580713254065352386421595188749243374767214190656750918698573530423399969391047875488143633776858255874894564068119052146402674477667001373897716515713375520602895162455575946787059189113375470338347683922430370614435880063036842146956556226538565983597871500460832531409646499216422371747560096695309055715573047614564900887582040850759605854869754348422384416262640712537296011345264781284470401016181365444001685157610787432270645383329984548258783289837223724670647800304307524199960557732712576266194754118920642992209593430258365271764272584602801950873011391364610350045996277031484078458423125491834658075095774655859366996872140018074276714069607688452157751218328342071112867450035713716250568727916862127979319300932490854315805445480346728384472133772475350337351389595344483467196449219942865970182022384179776118788282507731091742432198274363735462522708165200307339996553509174153578051004424750846304638407933630270044583718508362619050950674266456275625961166326176787238246055524701849454239641549491514498157001455942987089792193913906478689472080206437718206346040215911557766696394343268019192983806858360300701723409182665333311300344027322576841666494622957573761387907536486143505032050911466431483926437196553794045356527724575223746206582137992190728706412295248453646063533427994671110661245103164964101886589456537249539088561577721768309445299236739883650394866443895185984342936016274616319512468515766793999097202390682684121831470512388097710084668694566681480165455140754955049270782350810954080902106576729077511780952850261293060460005304014785760550690328174480892631783989599896601735601609081057965171268168994732719886430851709821971914518308177285078088168443000078149274093757072028135031939119981339652182096274993391286364647768078459390175285399648555029896944029545009004710042709296100999770710544604398366501467989646298686933037939986221371872034112166198124648146201425180795538428119288227445468209964828402323768878608526559776001797224197439522484451752774507756069527704752978047191184618724585651007990423016240942759367587116341654161757351418185043377339025093141948127170446981265672581577404657499565733097545593256509462873931092765464298658537180769428999424116695837524698904313661976757999194412370130476381816825668460630020135952623357664712255377928787615060135418711825964183149926243674201539555329273896360328386228444378293922147218797357872054762043933921789551733678309795975334500457608540391691277549043546010011337348955774998403112112429853899307833169293501361715091652517778261066134197534399243090231895696510522248867257374242539967770019154853233751386708640151829576967707884088577459814613973086549296127809780076897456879213211892490354230847522628698418180222651269337705894564537046182496747057011310876668404151838149594518428838366732093818063309481121614400007793177004896526971520227082860341144825474599495573927946213227945555219511955024429812054928796443144424250899113422401645390245877479256472825414725696738473990611114914589103133310261556067504417966327152009336568975752664004386642548298053570575085327692796076208177442942626998727363777892140459250278282526379124676187824525938761704140675387364906310394853917334820116142414519675727580432446708038282621917011247480682020995651292410754993497202691253763662193868536952841064545100078479969108642976621539034330988738865362536980800172967682034526057802800772524944721328603776461804549304929010221517868272150588231397134967904219708612021430270064503454855815651904403577137630751302117662870286951051592127490911012059909756018528700105719694443347598731664588900116919562477912561844915354741840847025483243257047235762802980006745787504466595378756580751937093060240595657652855806401306724260368749035008802387513755987640789939737448779911069791889999363686522008891803725340549363089541913733024968797054455399858566754840257740859730025797008010802984880473884434791230730549122060653681522832222749748564117124723781302696604539609270025012113786660683752726275580591233572936885150078895597398405595978074010990781411804912746160223712627699406111954203541416771209982869280434185820435035140740645995564513406618391125344870707450415806651940885932391232108583487054397825713611382514844563347682210893988121752625229552453606546082993572194983234425023718773260294962601340667547765683697708754143870051203105522277382143791240597195053703013767260354164774476713898658589104221073818858159399796102047118017533497539918411484322178577100024944833804576217274045865154317642711040202035391945546146737676450024521665207426961714091640418713094512035685107466870938101292627771034803251804004846159280151729152033831375583200965999407536739430252086864737961942278925166325768008504934479070779077164399237112304877517966123879377638126235523106601373408352777642938252320104423839132977364865900658100767400203135077191958741901058674377806853670517068309786459122220469309056778751084850596666993489823677600538618747868401432307770384769224787110585051452020152636380941868017044364596572790840820831063281000747594854985708947976482762216033643894883635612628775202697612993338457284897727452678166399878469090252422537262645357676909541921389511249181006424584152753564517700201299418002294316635021420063380512488472795818965938344302786969930483105728146488268572166533769988003905326059929694323937088499358176267158438613216248323153599144972091772188175287813516212006400407612696482504878016499506469657692555217182518013650641405534488738974479615204418872903273421882075791417461911254723839524010038639352664686006773492765222875554261427383345428747692029782698776180527273382346087444450141654832748242290164995676830817132238878756987096965225334302518354831611074936486169884636210666139778709547613255174902542190082783309575788169691400997402098837165895890809400132403736474251763091244451495451121230478782191011139007593114439809927481625906644610384734245228799873320866938093279207575825982384765838683668969603361785460666894681054787597121466127915678047991464727138345283987444125469833005003515021098527124275338114611454135320046613995685622161338627067985387751850906116521658996395333193833865093849766912062426997054560689183073004511377985861256215453231890604534305843047507017983432690009289808370709268265513562944509943456266085254606775887225354732435831235429556641021671190826293242880942288087260047188233234354831643757225071912042197501377185444870888780799560075502286982771091574392229234552820976899740299378746236422348390028692057003797752639173443182847233523483649549313323237021862950833330732787731230742123204643527737270514165970749583020586092159345918984979670783101313732485022226570557372162516733340885531995461984562429551578635337957416497611857500546257497781098668289621357563487033834820444382962596838949404700535754362125281036502331070046662562176515480491132988665601322658363051272058163411767775658151038960647714220968757472466119052477316598527660121780244470052740863534610010874800238539794653574378623183744815696441124659294672031447983857972636778486742556965527090959283814784503812047781372791397218452665645940918755910545043205263608781514723653009459806533412207342423607082019934083770620338261310503081015507588216065382961309410050739066266733258877263413235454245371683650236437510792830584651836722716098677467105239446160036534646928427877718448488832573234751223439654816092834251918125746648247056192777576778713019789467494907587495168579542306891270078187234717306466969259608513579608355069669265306171745603853791848465390258326022762403824147224960074761754966695480966301375466782019033759910416186035300835620665502871732570959553211925968767227195145033189227450222751227503310712278084546114238326187916112609038143270393966907480343667889484447434725714957181107426262816515767712269216750259092270231648689310780929178950955359040048213553190503446723260469023180049918172298918353795312092408665140521949119046254909704059550727733615147970309078775841975860592244071290393489516117292144082419375604738952534120091921902581064548100482217516798693008947050278447737592835677030764600843882828360871831115043990822020915600595123011789667954288789993785379059687556876900140085371463233981724542549220395246490886217539628832989018507050434874966927386732636399634523070016093850667607502861457763161806716272986895709993522635121127990909718135842616160413953315086845137493538302587844737036382276508795298265415136675784562942167117543139343519898648650134422955057765715890170184250539453224167868119604518532652919220253874011909096991400009729014233510213022142731066242116776412586913405922244172671088223104150134431346753315998290113751899417128479221272887954693190941469555096634630169644994387742303133040746427727338265885685906440204889835578408137735117967346761810438303046683290542336826376744317276554951596005804336685307317064019553193915788999397030419593191974844559131485757477837162912621190289241931851892455025393592363667054459364434851577767011603115010195559376007986454117501358026654724597151366235375070347443293521604066805665445489013828067791614741829482029420080499454336888799394824587477419745010643900511759850171823984777537914566546747529081386611887288742728053458582885997241946517997848714801949226966087084036449836244229750492426193131145759753172050059361058366508375554682694898696045926544561905735952483652033766691819885965298154032889531656939799360917536491557412347250320171489321584160529437590141068806877317196744349580300355933111291570693813379489853136892705900594854509466762974324458639552396050563228297245517708164143561303741778854710221480851098025757918618154250160546884931817967411346181849212153834395679867266339459605111559916431962506856419823246156724737262229529545029656534932591257453174655875462572638653598088534747251255677595538379159491500692140691729736990864431525674315888333954205104907361725971215999591156370880380616254545307245487998270322314552473574656068415145528200788977937567823688280318052140023666873416148085675851366205108270503574776175099353378164142697571383417713254925058254504717530580988134812940796354398189435275820116294170398452859317821064579492015727959681838430993346718517948055867076837420996383119687600178682297852246295550039633097794529028603884740897086377948982902051377465447362162992891022680160613532229632419295967784955743482427016811451488560926670526911749584232263923692192141497695915564324391341543736690882415713807847144725285499165312347450823287049795232110952363296730252309134258767805076068518927155804792427122146818998166686887401341430071371072895933370761332538955270972206088286389657691291450221728321029481604548181825554292811168655458541830959393217854068506933596759289793468689145939746037952417356134179302151660908846361661327636574101846085434290412350008612042401838746218138152600590050557724841817240148085448347792544759900694381165405242014874158731068318839511596440604402952488928666764648934505981828131487143969886455744515444462635890877938836185649624828847191005881586033350439069488187342422292577852210815083168074831993107446322815302159237434320663281969863191982633506639537116663975076386451112320884738285072981629169426657446186993195697256294742484473088982699374468048678509806405145849324398731586481294034684319262050259637289074223625274238078193022719243591129359810331093656196899689183253618169729876275811960378676052700829759367094514704100906144454030917483646164550711674040585490455360746633933192851126283627906127375303406861841339330179971470757117142145513221227061400368276961978066044858975090776276226826030786415993292348420760355805223352803755306669475767462953409164730077940865608845030998914602929705833808887503807390701446871091837676899863669947661087377110382518880452355096009806494943368247064215661658006027117570932962251523168820329744970048512182384963869045314086008545680934636878067352983136345814249936369023968762740321872670399035662775814819055104105239227709721233767435913726842022617550793529053882933535283432640778647952608018544350731350176908330663490148636845730610143485803070898859453784035848741403419818663251928407002299953661682257576868454323566149638341372498535326498397389756071568712601593530763244158521872843983742103448384524888832128257065472844683637777023915556319773122881701313130349473322199912694979316971533599489422635880878299633226652563631652260996998572997876802688607221790634632691976342142070606377726151966578203732755632522553533499912826729981264759730365653812671556950025310867188479059998860274158389323314341013363188113665152589582683188748237719832198934619580329202361990241188934891753395242781253551089617018608057755829721268155047159085379548224110923692226717277533240799362164260081580779860534876257390827100627651825250108306779749427676529939304913237890336203861423940686837013432891394983431734055905572087761841204709272460021911573247893464756663265101959376535232682001356087656793608997706606697173021526509555540797159909726816660259866519303660207395580357965443226050756411390617258370514009327782706391910181703250195559108593388811938096040527145099312944577042536367847745784005293129058259238176196699693235308771457189168032110338154792732461980735736679887122819846300831603412146128624946388977176073038612125363447008417735664693505448329177253912941309837013956566485996808268710263256152805541636900508932471992035348266493398766344220191421832636182592654340295025568289042538323226284404563280924668826944027328953340999885204799429926136924988895892123721545639953035411428598691930936413025760736679177542237559688546831936127502897468465115838080875777015978828193333995057720859022313225425528263882524184707881046673873887404193106655711989201317253276616214031982633347229720994704857736637481987543237087240520385880561946253528957703046663037295468892169124563299930301801545390959197129307768090725338614810588625418509932527465714404862907376145126173512541699987892832601298183599721542550819611691301849053310325088967675879945224152738898930699122408667928070995562764378720874096219563971874820773366612658081308824313372472083446383733155487136708251030848441369772382589013102892648009815064155740199693233299927504245850995908085952425739126583362836562937288367688697050472050706453082245364176534424219552492487990022715139989315227574821365982440720408075953894729377695859853702724776093937067255494754491342749166037331391900345502037342747360355271500296230176463116704775682481659976890711176171433162147237058152650639157576105441878440749571425535538566001104911618456566055878757715697953232500912069132160317562790031508032925283880425840144320004040177278403480236990859148701123817412605335705529397566623609250664875987131444125201209339697737210206571680931960565286547922700084600523862716737169720423778206074762843819471441909083497220453979472914236730010654071105995824806428649147036905617974910441668860175997854779198128723925578441941949917099772395842365266923328248538123798290921485640157388290130202539717333166895837603827517613719984492530753592399215730225983593866193085512207591489552169862125449864285884194182016666953322531991007563311455921832119564008336121929949404668001337701741825812495490161220130179501345789633109661301939780630301311151499022805085396257761286961376607618985262382014234934445229212913100356414735147324256423907852958088663992313192987857858383406013883229196607668084106656308572282793265586066056163868563753769332969693440419653256944707964991822442277476916308093811257021616741127022064411591698384228994400650781118009741601537619315852890471830206174170674321036112500886212674400139075956660863503817942650145595883898787126611973598525660754345999022994585590455226365611257462875656230250908782142108301564517767581643614046420614520304800676412575348224382783736095892941221514893095164811907770401555958143860228177705670870064146041561460159196724425260445100919600164848951101948229300756540129015390316734943243507379480852485445020141096144723817347141006588992425882993822671960719722551242985300442950264926955006514733321438518131228888232405456152847812586411109082613816083123951141059365405564789124519090515204604779829226222672727276431414101462859294462993510979161032128628854026758525621847608275202800066016495269488365347421268557159237678652614003649018469741059297117483153947345910370817440146105408716606187162762593124147799126068668251692040496578619929167753153482294886561148526774804494944883128099837946752103995067027469420712716512558263083426049965671037935565813924535033437117309983939984536625134286693146352082374460670982436268194173361335419417988591622398580276504716758752100241468174000691095620397396030325560210084782034426300433867190358872223578163264312684163147638211756815109699029949223742947856558527886979927813662631130607268853371059970176074694934992740666445172200324375817512027698830003434720882876059919220600889709498234105879301492997947058437910931797198769188479568568169142805601259152765409107733730201037390791160596011444943919532556098821327570280867558752021982030821769198867625696789243157263549667141108816780279870747368796866788349924179331280210922551147619523684916894519691762977384379796130048954705600326610063564268960640001843561835089883526442764516435135022340509944058038513548851178526372189693823703616238431520498172078623704309053106505350447251186052887422852677018895976041581165595856977836299431926149987308444019393662492587930121976005329243111086267432603522643800356284722428624734171217230955534699006087003014458906753936116770290995972501207678343386399383463136818271573545141141069073034957792255055957211458592434715991154810877953080765793810723480793503490066177090284915967277881721876269864109786235697517290559677838915779920601053545951132577811504021701053034769813305366395343831782969930345743096608333997896217402279659726894575099815050635953837476974219214248400661365420075552258349854856902333287834624222811744078842325598808784624636783522296231984124514933394134609405535421272833480505961114052464419048713434610113812173809720259730815412275537561789095436227885870768162336366406359702756117166725969013889177850187016585483968344013037279855089898253459703693375772338981302806149508674080460361771391714982730071944622184169311034199898202359962033244147386977261265729280978788389490087150980959786117184884394792077950743804436037056763996606492564267015456505446599477278195137997035603848935767016007659849791911450059781327194459466609053854207176259955663850104981431119277914685994233911973120439258872274668740624638521724478284349730315489733545395078173202924287226552672470928904519092374181163865881911851935059398667573132697935596120484095196402851373966559509955759477057392681149685914176418670335231416146795166302577313619628184713972458148908249146793263588545814987494831390800444713271893372650173047662701383941655065620069468741627391264823544073647446941877287224103604945717180423937815218789056854137772144051559053281591218350771203173182113937053018584651847671512203284110185038327304810795886129392955668569982217984538458035109478347117065112329599838191760408078469494488094879232458519037945618813584577268813415497395550260737997213957354328678964944097901632268362816304868483150151628126262219652366964863153220496179531799462774098964988677885523057681193484750261394425496515756551784243654547150462210779871095763238583614083320602582619501198893458825075780949579747909116687691557280118759985964910599831548280060371213486219462814125405696909414107037661795208229937009481391495180771936690210710465819299538574523119281586669899559072470197322918411362619954410293824371083064721839883032504656335577220935585264432631283095197551253079693479815616920722484970215312668433387620381908249505530080532748865454072182356082880852159383804643264463065615494979567729082949466454809898556268381055067398565898963813692639778952742157216760149941603397689244702613032053837084891177807501293242233474133679403377813823552211499257541262830962216062872673728969259985882996445493756600029399667415556557903370708380855003402460567379937866551584341295574391942261162349235906940804620498000110307389397362790605752046057099925005254315665834706631572013853631267349040380550542078973241400171717277993039530401727402293501616274167976872195758698268254866134272423521919136577752584261658108337991278135995038258591369637229073056780407205725567942127778064446890022341413973413144206519781186653135729862291442541120364480426788769566843538416814814477894895741046430600935335904707051537011409342823091923611607694961112782543573196331403007226422067771650383030502072498127042687536718673825164370531395738478017698845188218405490654272227692571974113854398789823466936008956403491090544677358921281248979585888940388880994071546174733522039604617363035912331891240891742784001936920180576249290908792081690618798697431775472868591548574551485738997736562170403307127025046081378418533929035711983863185552702824070614904043785460817432393491285624991572813877946987354103447472113703103103480421947445209992152248787028558415272635677870549842039653891009747098576554903658741072322648931610288417606606882934356292642935020947502313728533815801049361401839535349033634634734379509531762738242050113046926631385146776076185997987217558849275484292059002486515985883993457346882197845998472714416528025578088389409179248643060686508599928976253527817340022852435842773720096271892230330426162915586252080888862407611745062662646700426684325294954168699588053230778504399597074206056322781960145697219568275747877767782872327656269880216838488112201599409511119818444510312093807996321184386740784362005058213798226847129022326795796779739223479602506152763168108374639874634616419341771514566154075225164588620089721833982351155854208890465056126437103273771463609872997446216181075388930963550332355576555476540063748801917634282952246888501188403326596236553438929910937378152720969717284540144640379655890502861369371027002012174501570103613620976868693668262444842857335450844056505715650883417305479439594722030326505987970382934739475409810847893227123352359355777994819858177842800144556191528172793630134755321663951600432323385042539628337472502897137609152348076686165661770690399670064569641163808688788095655336131471475836088942233760600656806567257984287428502004803632594928317980863406222892567527305487464337402468950160900933392544470384340429424449017002545334596309087138423958492242754337023631955829977680611948082983801735305325055062382436463306554195615676043515726576888081243475178196104255192283045407018603922891439321305036417922739672556994678720876462769965900957100162927979756304352404795125690305419855337422591769925924773254353216453261320633451289073652446776672319687894878820021542326421727436010497776791157022148363046622886153965267743490965344135002267358606991434210095914414036237590459482233320306816358018933127247250832366148326042358452715217697339312988581774029748907495134663662823782963861340492967494725251601576161259435799436482767466434253059333310932888316258035782490503173162366354510629998988414945888209481617234854905689109523199152386342281959250865335330869300668932299369840594623854849524751906210022456298110165440954781177327447301072255164479134752943750006687199461168182112587065926166173882192566008075530864800761053725934354460393006946586287033438849540690421570691992132669317992857795966991130650116142237630115320526593641871945259669776084466078959764873625237729968233234851209907489160637255471086782917620655939296019445483053676287093376733607406872328039516529216425705881041909031766900718446070969733902991133896397938864294554288063036661334507176701612056919643740579679223820721989070059282671181910263178973550057577619659060200872564575639297255157627766283179021320156351566317064472241528128430230090158471246218659476440335823815360857144389988479357673848292475495496845739317346840579040745826197816330045882213090409712247929341838536291311390729658946936960354619367116380432624369033761497990443238670785854270807469437078846504630780563657445736778513185161820535619538759225386857776542896778233253153752600925151108794301083754334518424685720591968518073829444256192950752932178364312572520974126250640402541037322555966329857313209142703354239469085227401458257490053930543810827133246357100866563638885024210385583734558844691695895552219745676962174286449083402363757579907496450711283528856932476303720741621618981234898140554151294856601050329679037316161216485948057602242069517561588579059118802426628887183339351937533459148325544234815249286601306961337505002273755015842947570442736993621041256322851472824253608776915755878423593319288465390775836310126188287392083121408878684780302576603381496408216140239469361685661610297319827826476569647515302692158597270378207203179402558863955064722206485585600923227889202041000435436144048831948237410645654083929049612916981069061672213407469426427379084907977667738379026694077851828925516770430263886817836763235680756157544793350679670859223238873714583816571320645079227650456929104065097553387415200137680472023052242782950232478998138408685959189268633274652529812342667287519458382988781321688329012046604924044566893233683836716724650340121812359490356389332133816718848431181452143442537892203043053389189453624517918778227810774632711383861639200218298616445160295217625404758303403991212728535944562438610795490520728584378677227550580800018401639591051096906682116235830905908135192187729446042997200991298715905308953515920634765391901956701989849313250616827730922399945282947795745394828982950695529095786971035453276193224300771715611081912204167806189913089451781913524292221239391208624776951993868193992802352071214020151434761588612157087364917124108551363891457342270273380238214116560220551799751462423256827756832717096835907618103559493534188564594320361642032222989515910654584765674564226355289135878076701878729651506019510864020219026999588694334932795810147932371065335576044151184293884771045325727243025971191802075202924900615447339168067934861757884955812029722940409551189722591346662478028419770799089578684724713719021074439073454625292161588683333048954295671492235824299938794649766221476171511545962006576578746714646965927900391367457254942058352331688722515657680906725299258044424110895376761056346809456155289144789534204432344746650824495203719480686064169634868766137690182594586158734319451320736277084390540692667367079608802410522798765234724256607059787979065444797236058586655830016489743642722218460676382019333022496902638145811959568479976926995633797798992599744251531530657423292699396763187673674191674596343168569771350831507356461888705315463783774146124747230414561935913893596509870803195002334238205681122276959984976224204574759125773058957832267868843420716626225549056817229914119298598056733260991354464451711528018159576483068222253679093048692055275791703430663504674039888188279219479662942360335465559018224693038465035366789395062253593873936368746862204758337428659258550984211042570052435924947362611989406479316323775333939327006267123816055566897580432543605745732730578544673233608775567992386543260494166857413115591405333240735696816526162989548087423896540614464549192711970124483504187338927217238621130101902237984731330637405069107618265423039737433660790909923772473806099587755779990750207262196425323114450347836774065628885948081637394245606995618938862740305229297608477268467332215585247989244561549649223123424063735738168921545065361907868713514839808876036538152146545500106830647338713718861283972497104488591962014520413514414200242546685397577554722701929052811172657002967913307698247623588917597747163168776504259159865286215820716303988642145407748977568304373905602766099298908380800193468241894641882955367006681302331389951586856969177947458805427237268777560883258217304951501356491359021391531358626515089820632907506399709287624369819160239424452904807926080738484231682032897965269824830377320546191051862210858904509024701629228185800869384489656380028218364003293996913835335397106920442966208488377820119008174983039024000553806261327637787353658781065305568672649028317513010229981124425286661437068844203190100481704177253267433757978042445303155935208966288459086698045095938367111986427405739829492651830040560790620990758240984555032774577272141405043592277618485613524663057572159973215903099424292753668300171540365299958969995059007768844044500627467231535522563856380487744843328862587891119868332614845980445785546626312737911593089062875568701258860995870038687349988381390360297375017850854008273763480739842920143310101983475172298213137720035636876087453132432127093178884366661666740446292010174670121147091031886764864813307569567361031437301806946613802272379062387108732946366746108993595588847868791883556463160324648554988397495291748556534848452571795455618743683663035062602750291575605234396548437495690807663365481046677308458986778724662605127899798355755622251683568055320840512481850254813741717071745155295314262567009951740798446412215572601996230641791691376353906421856044863808972672627768482630794653176324956594842405192392593594271939352015620747429752241796816275550854496292090784987467704134791013192233280843398294333796370825262477297418926667148602200665332271166040107415706142889885976419709752447385872688229969202212362673243701837474101308652424066637594272399804375505319084086987206142949880214703783865882925104891426000300632687443770706170273877616104662562684138957106443744102239604725646043739090415710699059912971625391621909656362381026915551836606100947450951158516766512048952965259366943672408005167027290645100066972770061902004073741363127063434416001142447153113908356546414473213929949292161602367945883586876489056572840857741688520192071038942813029623635623092961910440276261952634470448256436834365508868462296668208101095310130097358680151317053057503169473124202317542621405118950888321691647879520492212358183635710025570634985425461317237480132961522357050397830846477416163009522874313333064407144092803191980376559982793109789280182980771754810378127015134891042330436768645411938046913985054303751561180504469210326617490979677862519865585538197870533514205397253019579495993777907990037519412647809205707968108508901379966530550412415593514124178201765726347569367827798441081062254825163608187837598009695568604494195870321694055073709204452119632211312906515496741968304724449961412318434592929509618175364719241736531962041387439769319826677122802791265121782933302917719259418502680844484487223726865141827925919215860988960247848546426765336781630305102063507559315031632110009753841061358863705268461431540225616845156384208764267648893413369052998298893464539286565353636612891551918183855075574776533729343433546649383736390116981224487108296621211974960830213057156223926164387814252293182502524446761723320210698157058258231652513092296575831792471119260114419517161752772363030676139446666521245878577472209871901958549905524558574954580800281112547277124021171852752787332318576876917385546555166617430964241370067404855528803005113223843417323517811177799213739800957245804790326776554574915191637876422033535256716895793975713006001425202575494485421742747464517623458078984403564027900007643611712656181792941849233243337444055445479378824007973639945083341871260165125263279465712673331263829858324089284375119878214128413050806493292602399619864574252123981503278446866670276083543860414716072522870042451101653521433759688796864733445946616883197456876066313685726966014618843959914327841734630989327246049706263767413895093843048703693905384839441871231676740750502230106295066951133059705378986701423848836279862449799918811957042932714965934623971404904090947007810801428302764117295692634689678949633890048129728921020667839063029371071364877872744697600513428139243334863065545321349274738894190862522093078097024192125654271134009850403673071962912123108496725290586021797697954571970279244688439618932194176874843220942563059249965717273233755111871999799709844627654267318534336871996210124994371969701070549282614692680592177824103745248055314997658667729046501295438455591228128729309573866939477919296138224649612472800574560815942313786774516354162561429483187776546821815042846513087517716478804543858469552276948405765434423403382859854231131663011933485957149010873160583228632761455559670285109932407307746691172248528503962613643563386920049428346975836867776089074952382098227845737408027114510448635381155757111185804404989045334704307641517426948110718239102823186904813852717407560858670595005499152106725999507774808759606280812107270275472090920238443487777701471441641818227397639717985891853083489504155049163908030913222899089859365475638498741922389983607624389093807714421331388190908849489736753754342790003333948388777522798276457263823220033707142230553371935982510256863674370892878776322187398942063587167317162719200986846826696961159217176398112821089764370723001253888081445654108915224788520817205180549033178994684490217957081104307538330507833220095828684170756935166117059194876898177147502888099009551957679201342903014210825032474252039147327226207953426924569802034605015059208891563374273898188281015479525446286115739833787509694033075331691526856311846410786648649728279395357682569109548524797287727214776196742100930125452362033094153514703178625789689274210200134025357648182262840775845912340623644848409078575962711015739081413097106380874177715262826820273943603779861647974181996710348636505590028865559229813849557561356091828621233375528657170315166737137280682889286155594830705227627138765235725069429797895773245190075148674268970791266272520278337405833787297706363008886089429545516149892393906821475337996463014901579705830055890930633531130793711359110211409704149621702505926524704249222917442747856775850051388264434363467831478283107870439127541909807939523657947966332509190596799606653711092648573987104961527757779722365318709169351978230830317743508423232961243395451527635629801284575083667040073150035570555983767853867406004507757870870549564940311586121392310465298865027183799956974784021382099328925850272982290461914944326877701643806026073098939639199470770971179788221654422586813464516142884229550384039169386940483840507087354469675119568842937382948790713753400220782811462713561560953222920325529282698760137488559203230715618640853522049612676890433841434638769339248331837578618605192203804277634273844646507905127617099015397197860656235520664271874966702434581936307254259265965051353820992492763321326453341031054465865007963819941193800341011819926551248663872614715617385325263306363650676964911820712037356654260517868036327495729004028443450636157502123146150245432936546959143489363025297662819835758368509070800576393511163005462677119889002557394035784497130858675374569805458227536006114325502286654342472467011891726428263853425253683600200346352549495549961882106553675872834104828868567961989983526368847680547952132468497360029561894965124102610246922683198568177368013424955618207977644466949752701750676868380132132032889664191808578549068809218626987366745132677311713306530511004768309133040564185034804753296678963958577009961157100894423642411510570797346485066025296941770268733570793671583835743594605659937517078060322714581260207718362469436380684306008347093313191236185535065430419603092737495452224079305741674362738425136906550792790307023678789469560012856824973060008231246651181297141084254806729870462021935540385436913357042656202405105057700517483411315044601390695118833515446430774515452723076090449837541994868877970869075270789316592369875937851681302711891750728487749207014838446821374879482305395288876468172566048056539046439015615940104256337457396022752219790484885246808998682289169672625860987396292663380779940524558304119779079157572999654160912614451546441928868784035278757825775883435177438089558136772991775094557301021025478587696279873949588852126141009599566519754884628240905974740873227459412291472651156188358478781646533146650254585775480260915434668672695423571023917429606658740603903499204765554851128975729009542859921008400278761569265357276226422363200388529255471309818100951361489323464109681405654650288442419564207562986260200573910149238342173105909503059243890945649066242581230843250982933162884140255136148705985319331772472043346807714507290240146309687169117616952240164726842321117519578802527125031954572449238375938767571207883456649417102227539012793088013136423480634787033258851159081438477834175622295096825474918394281555409479117513731501112619549621600875861232241362332009751738055026341291134424898704720557800050478230235526020237225671093725095053883661396584984609632743750749914789008678227225989138131273813620209088159800543793506057002145228689428816822639351960123448059810533147668508752474779573207887145642819764272921739239611065758281050932986296240819339236289631504213524464749866836666556774445331162490523085647925826851248396664077078946490948993806722364170063786787971881532088389164488710728047285578892808123109984649356129327861517013622352621064543652620572058191128456288468740488721299658389888215534152923224022290508944592131008284048313154973844732835339580097374353414251399013638395945665289148550144638758222819547986807223463221414005628451384187107833490249968715856121749099256522090038075446014057570080211541148089152696466435942582743440148036938426109735134282631497220841566676724639557989847094018641540695453660318390026842048801343296919770720441257253642220865051844439153937843510643748619153715585905314857021220944811698768013874951864606227475166517075925315760180266631649100206928363204679713539969105086514477527324213801330361532123648168821984028061667970588870549323729581453103187074523396952544339929850754720457470771892390683335541535794252207962503745322237463782994288041055764372511037483302266310090821558430021478431631895277999606795369448378964355285505627344228348087454145957775426416456607790790758468967989833254078840654431733698207658441216111183105123817935473989536546401427627519724291660773281944207786195243465151138908036818308637255484504461194368019258153426006178156509924867286912011621918240496725216882168279569106260365407456920184827159610182251393664592777499631112426266460268899910618627606811240957633371446803918306796078210011131635838769283790126280189559398821387092085169208848258297035335802887342335873739105494379031145936683885353205514273402201379067603394348532818365980222064721529898134941900098343849086893386708099115153529760007863262152921043797504135550616067752983615729215250257391852858541502339376543632758262802062642599930736934608466624544913433846735282938593610866936071290361270106004048934626187851100713377267522329266404643325757098762384285685864205092929306902792218243662030032723222487436090733521912650184794322918727136950742195389679050673373395578034295724485104206695951281538282728664915535230556187772808460666379614676843633871375177049974482171788388263496747966055113613716524143768027217667622202371693514974425539870396191738925756633592297400939216474033983391550146193909516449689386577867998012782220043661201396185237619082738493226193857507170997099270507307406390306236421797303992775073589147210516081554675150087745335611571265761577870746607472372137211418359787635413533776696981325927359109724648153841233189922545451249685934837445488589363940058290995598593285380299410733465522215140102212162241843562727830553896136433371957382268123033246817885269023428448743217410640308427171202215540757634038037788584310509748901864368053917366410827701212992474881305811723255031540444253719119792790943349741464927510082312306094772599710638382998984584237779459274550569809691516509627919543259945257619797388561522655064336413944727129465337321850185001724295226645300255350557016332455752181592459670199121851521872479236220755831060423157281350331567196004457844405675915256069867544150814259990826783815585594633340922742491548671040958481309521120070020647807167777620993494970926998967776563597189421626881531665237589877719040095422622252431722988578126769090115195874651696714023456390292001560819518141189093861543455719791202029368110689967736351663423048003107138548775325011594693507562838239469098168901013556894794418553367890210178940996297970894232971859532075158500811098883868354805288939654139739212053743702232631413160205206266582954322018223812505399253884204811083967020908646997765126905346070620708239613580977685751871232250959972040542642976002158630039807268752355084050052256374600104017223403672827788278665120142440371775943269485642051279432998750415627291755829271964521072858395307422807473069124011341348598895770386111311955772994091818747356049745989915126355329893279867816649150568839105089525734575706573259063206985502026044629712370624301625584011320523055055268636797136421060271350398445441069875968503818912415428127118636730402299502100623276453525324196700791500633738832872971048555897708638277125350095179285830757935180765531524695161716999082734970687418847981605528931669835587758381146281711243915440724235871491773358434849019674104924230416627719233320836777167611633988770576840317903433572737521172612113733152003606127137982404708458879034492757070064454360205499947572696375011931643916073249845978324836260025434684195017394533176433399057351537785943548286043265266310954234069096395577359671377848321995693640785691067785270896837735663551584797601208960497844848172383543618533439080820766833612313171557473527661705852326555435719801247714904168528583437663501554943745869717506483965287672109324654399722631740434520622332095007834680836370722311016616731955432883176527678477857443764480859942581489625824981180067260206036681069265767594263296517454060213395803466301364082785427378419954190870359294772248926165733405289032567257235196623456341072209937384590546557639769925455976350869905106990024112100817917638498036496010151312863756941458793360255361920550272001552832343214612568843242245955042169891286540980835328981391265471620046541374546334692974157268591235021457900967793455195480260783545735547557126609115807182226086199833086199845509556825736163568503815809989551023380935782923761192968579687441635896785079008961966608109320978647457361314346795254820285369002321439804294841138693193760073885760289685338566290390193780911443995057930907475120346986207367342616434693739308757709210830698145033189791992362027653400071300151018988153988462850645512574497675003822334029270127814266540683664000233946707291136382943044485293896752833082075407621290389974848505148867493624802350902248951655474995848359528157890906011737617651475209547256026158028580196879379051152437948807934147532019756151497007420354667850821444298184601832337329696906055197670426200103163008128153284501466369339865801151704005292148620636448089641769367305230723185734691257116325368572763791022966061785773646052383462644490303614340236355792968138389380441487208322167252831344594294744493633459328043155898692034944132514615218840603944706188359354769836387909772928758405495753593072981678651483332338508682396755990863360981672559104007141651806099200203012741897971253954983801263525999229321234982626296861371821244366571170171103582052057880861801489078420204750628930711547960039613201891003363772460836048747780084117026629134602560905414552371646608713357959747940028804001641928526356323311891963120804033215187724893748195788026172896249203235584514597450815962499990667620367208837067802357517162123135279875033511385827283311780268202583369858119342649947650532171184523890563494260787565124670746398441797890006409148983641003707822636542387366321626328822802111328289345292304821413547587774688177742454480419661664926746636945330438190783833317114570039833455439083815775229800402992398922340952206271889223855865275379227303171117104016976982164491129842338789638163337799428253997706441659660741945585299510570978657940795840384675490524889521893621874656004390246109092430227528664154873011663799345125100638970384334251700522441745694362366936912862416734150887239882869169880516601288775249375209595612218561669513260933955067909583758281045832729551296698544230027939032188511198665732403010040476800314678635371060757827925542532982051323883671373777753711234289921279970217825544110123479177377797231123374934982972648080344552060242454481044272045038086526625269414756899635785110111356500728278498599862866505566006555358049371126770634662769623674168624701042020446591018799461598681363275791787495219985598663544424274204734511705556551141274577834538036499210882038619639267529004933890802701061190166006788966762803271159208509941376811977013276437987161265229442568998267280420230916022819686408480280453700427534991491698623017988166438945482148053866428450150968429244709721191701655346061613823509017621858816141415033885267376766512375052689574817671846910984296284950848908880327872975626028973088199599975288415922802598938133277350606337240337497725049005736534677602352168795456444750553506063679406583557324936285449842808805404436534630096827009763810530598553162709719305335456474284908226448976853350655178841464069060856048818298475655207124663781083709903130566125755086136688438381364190074850492849214342803624649795636781543556828807397413382861367218666918045438557324723598229280976685861386769904429178478379582655397402991370394597339532368394072147466751699385906745715406327203880227249602571359305258760094026376156594125018811937879097497205364899994505104800512505608225725621269970689054460460505617078428655694480954421441968771731129668136059424333405254192323578898648673381227356774694132749411962881803329451089084320541482064530778912593347034306105065903530791765155242037197868863294973016925662132349471074574052335746293307771743518399763797058156594359523163368614122125365971740298519994064712319480403836620807652090024882863463379341006885033945957095935209667940515796601268839959740116412732375051238614182005646702147593509583370753450674377805923005356397405447469000691236695840963081285879409480467368382689999276024193371065146040722344494038694511358569831814690533214254773894491982503975556870524257997513119902605478149291490007379503457626216909245756865890753924247621510407589138501172527428484098269644595983552690335048374775536981498240554870005990702955509772499274884917669536642577121584702457167676178310345107830985469284332194792768345843317624323939502186084333352622606099116142033104553875217061216401776393713589601857614645215625830401582384409608124001361577207748441698020248505754207723681136205929773633007313651859971448827294366175344670245279393882727750478066125629385912845419511093880479161029518613925655951661221967347424785578132274388752238878164975573101393655613713646771352992353357463035369345272342815225680090214314501974397417365659874444701611936599834683860772925395037370205845726565198437031034283942702697439128395258064174233008767032595434891177980447155692486914198923313310713036244622272365477792831816195195164092329072214531713796811432083027936086324896866699724529694198158183000836994562061636411259365573237892689854743606771644634056062685215181418091406491281698105966110466102759025498399230374706805192527413318657462377922031132250081586801508529742370202763490122052675195808360189112791253979175353107394494707134786423664161456256314242166526895855344224587185341766866014417319477660356021200059369141721659511720070821225593826306884150334209475141837372278217831678180942592065559519731561423236449988693382129758058137486178970946410664264905171429223211507745466435950175058579295499773190913735925642816514098608230042255241495362544956129529516822054098660698492458665998664526322951665930643063437485055781006786986029688108395345638317294908606327500193103016843106687694057833753722271963393775096393111439807798790664922703295412751990255374266588867913589628369645211563725907752988336538289374754476452605363386425817531019962778485330295473488063612118976209693440213272374312233610200807023407808736994025624897648227838446855435031543819033960785350811234899455079015603499024986278191105764582291781008061584809926642511027720844219825733309418349742658054513128903227970487781963910208154428922631977325227882459759844752929814269062659408802157464914462712777150179395675104596679331833551555286193922891477657442758343587827284014753210794577589767963208584325005955665392755008132816176291370473027627835139822262248793237464461719837832905671668946794526665084148334413167130644956752080830099536017641133403686582636130487920717492987727173344457879609796476743817297800377671880155407454092396396302189832769856642609730158337954083058868557522963673588383379370070178257258254268218190128188574350550223407353696842900243879416022590691917512244453543441171013920569185842771120912181246704080464998430887409150850748378007801765616341531825548028246650818547564872232249166598219238664707302419672591684858065627002120562817212316784649712897094398102260987005852518584521885218732081623964509975754348117144407733738289967096448259387517828750948401562236917454999957010610901109156455752241960837580179665111164971958383137646664033244754119839614621455083780965463592809552482478498817958386238692943207324087239832986721290445331721899269944943340927573207699590227656612507979934175963070139275150411486094315333936722210940556895970165406417046699048925400587554955669379581907146950875429395721864562412578455069422610501269134385328212384801554155023285036031918344577191074942642595514655862853315023340652978473966862425303836089814923827979659737818943460466606849556981485672595701771270275000506646902253489995389052223933678003439368206624911539721301616407842952993219052881647326523507080729686986835175136970849440877366370361444308595481645232202991658927613411748618740030953714239819037049505362537345331734490196181825000914749543384990323336475218879473468795392736865420792082598130142428657803464668119995234943715318794862440071417278212736291907237802065094020970048933084574565805329620959161637852219359410067147511477354661441757750857771694982285329638776190041073216729636562655361831146034903463729077528909968788435823297785415307545574393048203979855820357133707305463835430816696425141698056443958113733270659217931478217811228253396731958444627697402095934298440873396281419259296646928121332314605500666540669723759391113520679027261348890109401481427779029130477974473157414575088515158419142669388609594416034697384435258027274129046296037566000177697966848004353550833945789426601368520760495754024796681424144038532827176647302261956123111238949101099677007006746255748987180713165122042588105156774216140025932502197050157147602939452778803962479915732773789205859896969093137700637972215986596309855674974045294235075491044052073883284878031413702319144259017140968047204904508619973848944764014546960679453278939271433947525441067204915818877745815273227291538446997130769682345610768857510688914529349369620128099235984816848535688444817613843030550199742110432741361510310277274723345418484204909424225047705232978619638364191759671548842442201843617695244448941240746280703441661555571506340817435055449936832662917687578164934695845589329476981351614118956293427753852811091999041803650022395387264319865593044082939795932609660858068551417260889162203657094635249460983348224527393599969403969539687603495121883888873464414494804651143214184111060888560164483184626465621510361946036539861388304846041291148171015528703943604734610752312296717443289849499586609547715082417918683259329340461874310897011441363647671134985195110898350586446724725101908273131244532139617622532371589098779213892903614192186845304320197507357175493223539084112748342542352967685556172251972091201243995538918565195423418712615077136541052399395902426612590129956320663404655215833100222345889016399671777147544830895173242234545530217262829346435469492790397084949198469926089209640176860763738999979681049517951328051191525675643371989452480293150994819733648826605981274457316722750370208272310001792555272130001327113155117868581428018813916094163021342444911733222570862002528014003422818211389876273541328965468597428727380223829063075877490441457947407521899644555491670714837238436023241109352016309534713441490650001039040483902494861666396451687705638034037053509557864854989189586584193371689040693243215362387408195650263904681793516291609599291396345624629733539571807326439975406719554085787403509282749926603014904166093635650916529615420010063745076930543782341676103942665630734195802686084219543803953880600272277314604836117347189851303117678041687172577413994463541767150864256630580152971498139508001784773288636109718730416731002254105371571752123689792263872275159956584108274341869892521998120611020979174720302144116264460954194527836304041907213501186162451475054723003023788403194230610457639833905945108764570045750650464623640382961763403694505747414072652865824039385395913364835937325902352110508577319809433685082702341453671818095872570401399396837471396749497434864358916577979909361777296842768099550078676614282698924661780340095926053902247848293769534406634781801074473470412871276719506092453408625815011975856219205344743399699790416935430666810227825380032592069846721178365820773999122457009396398866393767862458698425508266472433994570612530163116575608587628635424891283291744965385582262328186655170769172732792049195168788291333855502521821656801571862021454339707712609760072865474467637269788901279494119752885571742488593947170833855976769341282339296405836782366116154052912787207020131608950065359821791657631323990881750376109387633791412871041096541181546888882379153390027640025328487035007615569442529552659464980794911665263245261614049032563780345796856431835773866633550752223728796645769180398428963864783492825641775007139995445728226643351019380210463301754477438500916186344143476771151267534828006823023242690820891382585674183780432735869153237842887698990716335067319381407928896481887196174460130120806963112072930310823563699048606049817588041994270697117454820061727007629762949045906501391927819839650426615328798101558120563151827024919792981241307725242298987479893866848295319821522996927852814894707243297554069122364204348056741317815632292901663289475763382516541549658201940031184265325047476598646636410749404801651375805092033204660149842710122418553137912164928368424040623624559886530755156423556458136181592138481970271455292644391232521667073222135243686920431714125000310125306036325030595252959082429505178401525469201399162211832540030604513040707900850885327844504880245846767653964693994542887605359392162732798920040173113311054808933575067065885786321120288919532373889348299947458051278401197178442569986745722996872489762201810365318541610563369622154879552135711778811218679503803010811064230642302149818690327940380036945722580760534469446716184647179124550431988016874568739776909208904635487433207383966135960852231202941490058586758952911045595017162472756243886116840950365007232072815794118475214358074293009039529698139150166285098461825343933597055460704065137337862749170110712422693053898433911672636454805699917721991441618489060446200057552738948561400728833872500578434539134351158691930953033234922393309607232750677626749946846342547562800780906584041380096574503470502549521768073338101211274692465665424939088990007766904313946430366538270874174065116661907855960000095173423393476018208814828752940032509271879344720323353676534490402126543302517887354872126927022761607751099039407998206809774010327677425320845240718594433658959378781196985006803006105766549735737383339228044707454325909778613885859137177446494228906348766514062195153261006858160434625155410123491858552450096307467814523664763160719388856595557132276930294107728120316115608940675824787606388944668315048091219541425339900853442721600151003875444537704691695496847727518724382424335908960839581675284692850832263927686876105759437206396292980018916178363123322531215140334839333818271516151428430799031676962735646181693850340552897873302023962575833359175586690116864208889790518662957196131874098445095078706371188389429795616215710938340809267660659329867202252130357210008594924975758200203858005637586607027457616136040030558420205841762379708229473509690815497309495295026115067794186199255806929897716835659338128539834766846252933581642491993507351890775405319644482136653982909941622640346069888372295224933125567972857953587531381116508888793669063242167427216595185897404162382809717987153711825270140217132068048572134127758659204096201451295289257185421728470614401190407645778563550226362555440580102946126864178219115394045437035716905704057628715915446769122423171225399018080805153962946293434700180622303300682692734904733743028827289042744893028264260725696591270000904691505872153476828865613304902012092680772400013326795616121606741405471383658071345207907056379487668759561783124731440706795287753210931936056162263236687042398663292102281187279399521967950811568549415712831745018044156792947625831124529409246297504438505674908839035454724284714253339562302022610633064291737831777276580406135969843790347069202465727439360311960125438442888400133808784361714126239599067984315659475449667923131309656960370390337126050686725386223029019288294716052182830587260903173534463717737548193457708517576827264915033912451223901333089263024748795659651500142492814589377073871247146685499767026902892231872370108544740085669728805667947942806631485887673776601647070714359714934963963916821562440617845526033949265634549470825095284603627162257860971609645841178926362449871120711879358758582877488927435829436212675444815873839357020233435802089919622872003358892197286319914726995028588427426744690736120135806708901506505281267170366733881615152913496556222391857849526463013821044842946426293517045637103298819810693795175874281034021319585110286483124725010564438896153275194399901037711464881346591222177771205121995354286642560904552859423316681310135862979051544013554954666938318114405210580412889287695431805664622308294160600559016292928764426111638310938810681808196095482144634720947573378185728294530626302834150783961655936420139362573837436097125957661268170076735329558147848706118125914772218506456270784532534550378965589319011062210604494624173332629954197919328651815519936610180276480424375859230458782721329839030054768739529992118578089504407345640927564695077619650428969981119445018518804495465499195873800374138757778083562120825384906631372927355318419782063186630315280182827645472396185935200763489038505952181056919496847544137790163724137966601932667078570500693110501456578503350065850773481465837437728009642794084961833506114240286885380034855373820337287974128507399879137522354974523260921625508188276516784174055009075597758929842655374149429883278870468186216175694161768308904787048297060019074801056258088443831758328503254318487749378724698458505579857349699401409390452053301550568171127235873233703815339312937784618891653152430227620302594197546885030851859422373525145121732747839336903349467229334413266645914772537950880627136782331825392508111333307916779633693704378412246097280717459576871414525561575003809153263864273194354946949318071370619460670208531433338509792179140306502628801973304402638887288487658320150127246935509430958921090736337536657221526772161710757803150905029589204087743379254688784305937112902806899539789960347163553619386545852022906471412768213988536284210492791882566385981444910752340031479244299753509456228107991059989351180985107138786057973071352404306411369435581807683325543042126356082190215743988292868990261176724664400358761884931727347178386248436594109207943568225560924153545085049633160853039767295367640613851019720026667912290837090836058111655115275903972173697484354516369041775747167787776982173238596904876224945296813858509087085986929426474850344685098105026555060164261030695376395728831663487669523976401248460978032888425890388132347214178142219690904641915254221782077258107919091418275558675546096160046356976334038176336524624215717369704559430441994898346014654820522124362423059345335739055034626725636569991422969005539749776658278812712081190658902868695816941890896020668973877216805199145084703180486059614579846792595583364417893988206772454161499345267678826557160906876709342352398543701639932772337954214827019495935292263619616642697958650614472609794441663066194930841595913311433159977677709374472956704195788747801638245931477908003706428223727655910321263674111009097159280151201727255566612500079516028324876515505352036471499656765274537048414941908458196629521363577334724450438184231665213560580389605356911247788634834948689609753668254603397765603288803341099157415835188588412137839631913515556865740952262147730552753994683533730730796258879551495693296415785596397945563059873475922086616050419003876336947072695347080526444065878449943718228426520929028495298358781893841547700053361481198950744607594445740992858229115148125160278863095324254544480316241598777763841873638033617687159710922008283652790949696260175919232701935440240657626814377676238039599200052375279546611771418028696012909747130520429397408435103088235706131593986229922484621012925999569322055489922713279419198902259748468977064755323619113333992155441214632998052597461161142593943119156564676356031912941158361923527581820418571205001015193892300898531927450698750240772610830802376867071206208374993897611455086875418475118606838520289971918481039418077436649595741205070198245869621748973279562281473214350406948941328330770229659297719317308413847372915158442520772038150380329360062064283520693911624409422558040078742877912553634535296969568284157393665251361874319029152651836042267142026681359841845184278511123473606823511727972752080437770021412699958900437922668822095949260265080121878889867368266622120207488249390206106616282715559730807688106447288091712341670956643936113241068623747960460276210901399019469035709863692917373636067784458160813690760038324035645384768536292572381264415798297885020159291885896736644088046755357673671051529236772012073097581161946522086620434852973740651043640289760585252504893110929533917485494728877213320550695876403158958163086151838345758024111386422713276228813689869036011528568463689293448790293829011794331266616290949673342708085881110506830936840410464433189788211000099310154473174257565370239408727814445456612741735391355608702646064461830438306647703934050975218022484267207455572314842992696352797600692198905013899611311515449606768977729313452214675365917252645429780932598291868205879082472806165619244648730931883674961816638717069980913940825526095637494406181908711906145389612373303222317159977322926665154281798299520405282941561688076519171969875749273273409797086222305098453805879594293312900795245703081083411785055638137069643605612759629066902028923464889834504752107861004550591542491452383415871096236020668521633392377560020900755469343874372951052822805341706669827818061278098075063766513549812490100161802327311746594804333280141759035842322204268027922515325130617273165133552683182802315014619309310008542965603593903845693302234720548111977524512386101610399700013056242242716089053156314506846081345161825276298491294911353438588536312126972384082839977986208441296074917958777729969299964607236419884277810613001413533250840108576500120450116957761900810838187889183553253003270566753301211618300228368724545715322079094531762745945361480917312686374117446997140636310418920079939354117665298657835857909019020565704982418257372628963691603295349765460870981043683366886751960909038836869052335909270211634762659947958394545863747071999593568574918634082574034262383376166220285677488680414477207688804937482028008184039370659228605816356719485919535706825924670587062688788061093929501119265805890952224568617917399841420533963914698150434095278798478685496449635303842497493215186940342449079193197784149696727629890973983641831096633004434410667831578196076217677684942592394086632022754696245083230815786689381084579400167025425050977882820295583940134233793625088111293481815992956674411840112067373271114315903322743833978442555745504158555903353992623725871180807075690417114619686687100435565338776224971859247459614777709408108597336665986845146237582856829261453135352268061534849083515773484872506628269935507552261126970460746414788766327085985452834086364620651465476380678478371895113725634859556042292409917422228041694651416614867934034306411385028352838651215485091042412553530035033057560840232220562139557171083034285673444100032729423722539523218290043791312557113715228916738442895055132682967724509979037220051850756486862153531010198549983655432003978138259730942910249605640530242982290574877265161273842102489024003781153614887812016543338094431580564947105098706029467649042120050202242063730762142295617358239647195025341477801548929335312910711939900925775795622102977278599872866966446484997533028817405884870587480683630661244547353630620980105081396224410123963267793750719548914110852691828726524862287685454485298212825235469216162289606158595101272670420330545395642169333075407157254345836063344577502181056317260136002189705366864697684266117634045942095252400773358847450126703592588423207966570508705073704249387489511858806824217020562082777333354796793735417614718371911612503383641639263030928568354849356394493464561489155949105797891734277868456313073591128595490186581878384187827503033004266033548811544068133956731292851350747358109618415603093316017521858019435853398797893293342737364330467222117774239767164857581148088389701775722566795361508571263971027253802175062315444651752220080347728068877635334788351904211505305984119895795955888023378988446307629676867262255161611247574536621289022670334132566546014787265453202577225756889731171594073413638753294559892601682475128050540840958059858535344346169012191613095676886284493368898969138726017361126969278701248207048141475535681384263233943651384475607095891069750524876500837335016044826886517017597267513636126585058155373509300627231657243892478361541130963269822457182409214746639394684094569604236245407177945089365497148204551537995221041441998473599894777810399348588822390688436045214907472911010438166638092111800487910352244146121473954372513607949739108604914152150563281073939570035525333280896719386393640282905519074625842071703788015139100012797849908293543625351895542433494643925798416392200182612878943636037791828030144323299080436871426815382543043208596546305158603851534277638056354657212972683747305459523098608953761411394857492283767876009434653903965263287238772467582380251495676941670532103239249493098016960604092598791439781188411016205611548285458776383507944558831203343830246829502706386888982807356333993936428933614240129878407348092711811127316432967798744407442095773557006837552253226185604638553387000810513286322073745530815274093477328419311629758087257585107807615678357263972602265195347441682962122019601243256125563332629153955720057742969372614282316980742569582095296333122577760924586604833925175332593703688005716297948631966331808536125287133667415487254657504672721391260681868923981347185835530271869822963377765587446420678970537657851547841472615227912528161110578118231520972027991443588482297443039842120177795479700665850303510982615600221827525507388448372209796160846220950314814843706318990888960588541647932026574373010217348456646538076995567073187976376063121860088899911321440365547791407397397489115348265599192667300008018943807656578554907711719948890132665721266491656732121100732565758756996864097683721284170803410177383065858833888719226310696308052962997139024561384208551107606413525111946554497207226422646571375108023336534245129116698084346480156300191641086045432582152970670865397001314202446732896197910825142536130267667672661809067024422309893181929635331854103406340989896653145695381937633366972932382239351360809338123063470910927129315586835143226251916245803579948973614563220047586202941596972784136811548746070766679832123250450043814278408778554901150828280584818605811342440777989806140498558216543042755905966545196537518183002492582272101607373481365577649711308981222607855421233073247867108365952504435776576973078684213268630520790944745746160754141619544618548116636229058447693119293257015428434309713711324469030589441061595050029492724036018118820005619908338929443073149992407578817857406570523752167446009444571898892546298817159903125931948252218326136050562167963227752149319244595007199748624099729178968182263106595425523334997119880558235743820024203466247753199891380393623781777944305621047899275832339534878462957097627429469422543736518738453967599968941636217623752457445342863658670311543702709874411500873287469050023698187305469599111837548479265819373114696492209085037472099877557459381086063634886331871327655606914862839460320183178160526030147781478889194413244481873904476519361546521311617172674602969126022337146847640158275360493930212694229586962961979532781445032991413067571737767492878502564909969328888567764882458834735435703620685383427411645184241366455108098210701321324260744011009743907326587363969391809978612985855129252037971122074207176025347145552792318224631324742777363795586051379124126794212495042996655924361282964691676883411714226260867359647754236522158999430329345520823494837436810116201012705081641250054943499201644672618382915540946065248693295371067853649985339437118262747972458986585851254912941784300834680771893642874364082597572779088354744220350962946448925588792177820984778563675747945287209501373521864073498154404192571171466138651862095902653289208835762237172017145520993024655267140771753572342295320388209190884324833988075780996071740810591917543863842235998731135330331257296945586284205066309157971517809346972194323528289604157083959433935742961824778709559635277126633267553119964302234733669281055500150886198722823425271634540712281015557117547691449716653778571061962294035976628720299085759622646840958669398679644236958753534265485144762396397922759385448514629841538353286758261990439717561214721157618255497062608708208957427849140558208324662423552020047348807254419984461620434623528871808960697394130598375264443289482848934128070456067215311112242473078255893267366136842317305968410858669300730499071567182402705158120496031805820046433157513994067748551007119098363273861123662462611779934425187043565519910514037699049275032365179210340942106226023235629727681948367201979992197642773240075205596392500493168352005141424713489640644213477815440510718037383808603646171946206755681504792132051812410055070994424681373406136282200822848114990626696694655222156963795546945129946988556093813126973978396529847825500297407444271391414919056985895554972570330270471052893644532650176563192583903168449574429708503622024813535442214147867220623947761918726166601796726466826616051602219169555602767232603479891090566210490123959765138254461437899958298971785687831894461320035480981002242936499553628015846562885495096514929079317273028097594447593155026636828037870486803796979780208919009001987355418658826900867478952324243293219642934147912639788797005140677828358936188764041904047650737094572047777946089729425467051491444320255957974523850700489045781107328210427925088912616041331249745959682664497968014147689705475384946338569319765355300651100019321044463620400815508395243963724545459422537486009851122066595360970894402344425221719443416595394801332838992687508519819516211744093804014256327195155511711121220675179029975349741229179539077293913658589851618652045118107003147561827623264566500722477370246596030728840211391293028997231930178763497064235877486240015290416914273797597817880816677896280104729028832686792291195635990901528882470978673674121684831894478677382685727981761899430589182483892447310248916679382201070048214946847959106011548805678598486204139490002158389850394939747905874960547396411962708417123048139567928863386985443216091034529056878528207245142411745800869528790187794941552422757150025759715460776639288258368063535366831883372611898281453363593762004225899056422704493164212907159438269200284163978221281560683002051871398575489009810084284260543629239988711309879608087691720835183782575854087617968600602074330879497333474533164071417186293756696316444839441235623165650134905671289835301660275733719924374228455213216462755716853574280169231035771153327679595354912000429178455499688173909011553331877374662484747219323613651944600740693354026487124713386390901177225142131260412857070762676479565465938968024554753362919029448250551800512064514681625268473854811178488180680456599875314922432793965869812541625971203500042474266828224505195582510810974537618047282561601346257867274018989040207432091509792954199122148431337274335698404243404364263975130498633847405957620799159840919931566142520214463858446090147441589837921358229449079127420101850323071522713268818406080010238099416909717608197633341870474147564124673899232194647201156452688909520118579697806180270264495159058968916469088354677420563940390308551425334911880481558709200530996610701789729597422210295359411590898061086817727214262149159431706022082254936220627255390859823081798342385928866224997959946255512930192785555823530845619910921104503094620002346789945862026459690974459955135491050316662892313832691964430672997664212838800562057460381602415579781321559689959862168669274272201381755895078935739776217314039745253955223311577806912473792305343758139678204937443598751564362057497264192294098935790364904929078405907148600057267897176862023659718786391176269182043977639866930812431318390521892824742945009859329431413874978441835428265175986589007474415973151731031719754273279381956430291801984834358788364549047142084973895933485298597251345518176295709612903133999816085289423025987297242286537821061497875681629189670888703006416509866338263675746452369703592292865858497749875108847701838240593520706937985646202124155256276979658293074498627181155944613648260631877987284567530129885921433190529854760543874235553873330360191720718185930358942164022328638757873820907972845081432231930188821303309224949422362991221265135054404620932902938036642258774797901272971954236751513689461314628536517720741864557508332448740899670334257066395097476051028167918563705380787513734244464081885453739213450874853790919000379203612419320506238821696250925216899932318392357205396465788424388341692464049676847508667876041331416462555072509124812279505075418411004483878058821481165330306605001446031152874505818072387676095039560521291452527426166737639371271917891415711045180349555319809842730012486184069016474322818962202326953470431901551476911863382469118738295088768542803986999293355433040857260093659481057862562302623006321487814967728736762506006914066391064406049300997593824176047659306131851387897676803489049474230892861104709022996301200946417057239982817726821967033973021674723430184692102755724862487370544346912303550779169776958382527594517891123977954719298495700397188612786461320017231706881974127202082999456975620590801286272675105245772261703882779853082875118982725942956781522298447543758089244222306147815193646691525270184526137510206571772144650051646114053245148771177413705115181616866313987913369805373060938134486687677557902636429802376696539620490476498556589640066933276688385862538137568101620471399887756171893014731756666289249229950903210924692303200908017104664231098460256731297745766097244508970860233015485578298312139183256587508940602951404861582665921968661923933950825062846985792847943996980121638449746234445574229053870316997573902322312406762949123719234680753252468424338345662779410846602466383567727338465197675908154067280115300794778553890542045132237159339788897402454032464312261407685097055920754486769339287212381083211020519819462832624181594440780768621351247344694131408695958599780614807144928890291249952051875920596209400226826369778526690639799741276337085371547881211034271292391543398061590144368921558550492362609924049485085469944154763484217741156636104343049695534843560099683861814138767885768045703514987946194046841617953865293263627089537055041184680912709017262771471183326535322795245838722216731032367886201303759724680901193848233459949901246171957018871098860616611803456299263090258658101020601761747421212184230847344948423093486638361932423018380952888824622590666956054424139494252238985968617791925668893994542703447790753099250165936195651949835913920423285971000503641240884565765568734765211130446306783589000673151264735862539414942258584470488503787703740152864578799194126300750868728367525179975390362562051588663704235146540447766963077915696670175689084995465818639990262474653519893561657376329435004883331506152174193032521057926997263357825964055627560989656382602305767978860779252263641158311902976764403821784882753047012218188760093059838118900664943672854111143657270814079854081200599712975594143123701789973298799163757517378967845106601335242362173434912121116975714778682430385227735902986738040471221043038883237363438667151665743638287238711439606688697997073693016609038998402688317394189599581757919312923012259754823213860551946581775701461974424734136417491405689742511914022895932531057405108683319531334978662999677737624639205144334545882731176031004621196125899339122868170907399508253912734557761874420871392753053028571120907607681605986427226338106914410276704994802181222255076802070281634446747506752368457333252442843506818860332825254990892090446456589490137749249331310342980912092652014033370213854111061539853002685351063349636251937699969332080204990877193036409763037328865055114616277842626101301781639707798710735379071396667747846491115776626000106460623638097233384076760041146213283230991664115307846649483098648185367620525218300716649467390219470145590079925039939699826070250455572082494709983197614370198633111898027757534958213108605374866442264697977293831792491098586055865783506022266616856979608513205391767109630965647088788386385411082887258397465298798181818792571763754976572800151474495496220116543940965291346941140392559532745736657078525352121316061195897254990349749819212257800623902285917758441805417437790098286769354962644233847187340315991136118056685277611647382509356967716687503945306089652999645855213563113956509379773064586212298974586717882644994364992448240824346548117448029316980538026247025422415203687644339557283831007240200807004285073917864875180982339091633092676666400629968488825223525214475876000914052117448408446309164813496326540437660540583734419984157358324248273087060066514442606688373893559248676844630638859431310791232005407491600849953731128106345840984864958628054605358577003069306746185224497687774433403230526239038658992531973847922440418877536909077510884573568091430147062058182794857845853171131141636360883645021822071757674453167327886941963103711288615565714984175163430979734534488818183472575553040810615564092511850505054842069816045816019949547744773182972661562656957807897384679857514701291661139304113048946383753859149511989471480772719249875722991932193724115313551659676344199673939833316936742694081651976413429373818227319173968721628966477397365647847469336218640746998978514251260462458513078633050627143227027528660838513236438303373036924576531721964899821857700332432364412334580701144650995712696299741042483623202311637156046604066869319975884943235054193278446261988600597381049885456816221928265246270780481263692606562979922357239791089558869519140341321533931493353344907299933458417372937761967418980758457116546294982803682224236677957570313212173401738006786191638744256913484628594169079254443124250601292579337962513632129433788580542255123573616566752271002715098262410152783523112991575976432521691120246962914351132487282171405852310664845370893052077010110662756779909050425202472088220795480639085549179836135241882100641362797866378693477588586649335316952062166744054694863763082285316960908137886101707639965995111474096809418385838337955533061449540237870822676884294318320314177821863893575099066076214502137832690095066708933144593417988139441215606879807142944375872503734247503857302942239846017973867556146385554843379441043868345546857903624300028433965713522222112991023960821075615751484436669065023187324379224575154152511505327864550605180100477858806851073996259225008873000401118876034531497682220409013807140683956773615068644850667267987638158467396873956090799398368411644761081905230719685086027738600090375506036331671309113903727211636139202232286067645182733825617842535657021685532638708966517213029297012151905722480939095867854890408136221699050463823939457707133353416028252804834997408193558361580415694062456351387590439536845251191065705125310205009557378554211991099668142414903559676099154036082859602663542190391302484363868743697414912925328588860142579224562294356899902707087138589067514285540574768311408297269595934919006333821165750926578592273528639785134943506476329529632974065356822646126768196663220863570349484304372715408483236080048891021555976316184257821217190774871055240223847534897424081772424907024168925256802897029580933969715351024699664937214176265168470762669455510551898236392146268244483721246311967362994990507286317846731171613695268134777395526702884733993862890379748015470535948254370619718623867333534220770764712858525145600852514155605621866323697683044527832198973068179786881612331187317553998930013393576514833373370958603913768729994066755884353350783214276101172763679884731931012874597509922286000709457916942137335978505607052308331236944095945241250851537066881388428535277833133586222911575255761450199166476446396558684258189603777785277145447364900810406884750725762096271725955520420673942289884414186808480167194732617042218508339113728846768359212379813305693378979048529448292158524672046883509641792891470647274436591794905126343295698263013925411586614496892329550447668301457079948261232074951137630724693674208243190555650991844868365283547184994515663350558615190025954409813295201004520192610886645430751291397547664120798466656275643234336916673097935334301830824384973017014174559418888079881524764132941176412461090508706072432338724409376158244967899122109280243450067260390629154510565562709319075838889813200357581113000504958938848688885647043315244790048824790975812346758125181669569899294103329082940388274332949248843023433852747656484005026784432274843550005452481691898919801958771826641709176527590132421258031224007405520826974246203282185593030571044596120062153808390073314392020919630811219860518173425312902065880574533285312375500457139491938286144719626503709233698432538679477064292951298175780926560256358358191069351329730162487694095650355171651296221469827977539574158390136911820970271783729360478289896597300884229468468692592222993668492978513633615544715467565995461059841297779926594522470016772555373548213366557316771043059148310497678123643157109517813115570851436307297959511078784456156311562064927130103542419636920914943103629547505297710311428291491497134300333201704306707418901573842000138027123925158100806856705874958279767148611680212008582503386638013273729285595652571875893796841292013530738528509796568484491895995512326361089750568746523155203019292748968182164601065229255849976000338851135821154771528826042179006325916275734789921514646617831216714148693604718563153298847819727775911825850524962296176569477847468915940718569453040778598842452276826039101786891139634623195630787969807960737377866922134984248150510477688043169436630422948103038710247785124720060747634461533088789280239026911380658212628259603277203636009351539780307840251327263402892348055645037712258154421337203058708343214307933097699298711386906799167597672692339110315904341699009083169218454189769221919072822589934621564197764918477042698209782949181323530458179761365361510240305920828172103737773176418691787388801175358416919494115727714965176983305406899329798862236808072896959496384914004532580283880958066469300853245990465284222443457110287972858949339415633613942976707980653417048949527895741280208354578188240233931062611078697491015326544144503419176963417442687032339949564673773114981016359301431681367768312630167014066848554785284304757346351473136270363644408148685072327982576158687051793542204390472285067312614420645865299799824689910386866135541277187834242334082881836868525553592093995353988538654220858351393452950754825406872098044119092641749214411042227466728904949810717101765847069057169026924195297064706407520111706090232332381929969752723046406430229334206630317934574553319697798910265678764465761624170658611171997398245567978230439085653291264134043557128666153355868364090707351855135426882889826185214894503124670205824500440003388398224384303573844522499825116595829464712688479011797313849059695750340280482074370259245003824226856475113565278138685019443910576238758574082675065860113414808201866675239455538019528915764663574408740034615751366203334423595944052579614985372004028290652726092028262949725055711488044044739851441658061257137272475063633353612374940063772331241352551569843276911805957007474883161354193617413811079792025006325259131240826966988102663028797634364735431632064512226306845602294626001423153995563104840311654363649081640579306975160555697495172225115621343987625309842544145424599476075696936186375629999407125505855352190054632606558479838827642427440653480831867792413791593391201719751454477017156959486265972342176084198338831154944529040464793853928564486989848735246148661287018111061317697854299727348546773794134879399410190165781395406561831448916478419870095305449846272009954419178210402892886105468856151705694610073294015560497724864105285165729957241072571831048367627152005299995233844734208535891896361790441649801466167289324733917806938443478668302681548579547990328311091799328717917622166095062850381581655467106676718098821400715913767325326074685503580562285759262449083083450749281125603652997071721051236072597739341485852024038158411627105684189570213645683733944433734420786065979686152799100998026057934745983307466851044870504380292085820137126226799299991397447648260599470855725202856980866435946247586358941444960102856045251517517373755639969526490681582870279604994127917062260331505196982096986044866006723599365824613460032865027304131670061663558749379682250003423239702165791991681309719198636617332205294619415154892252319051335295950893832131926669486989578805406674541653231632423325345613058947972957414017765149972040551023871729045308244264750635308983118261276290591201838406193308502375033480309447801226939505251616317204934653731816159058029120115302717291618528544637875803483418565755563795298390665388944959933866201305346347989607204829711404944359807075384049192827927064533541958580351328881560990520798966714280575658921832197917533717892817784629640039844367727242760765258454466987049341551490029148076520594806790200121966712887555335692832888705024165520283649473653409664075042160504494760822353226817456988409668392986595509088638224923255333101584175730780046731515372902311943496675685066085869283451493801403681893420455444472296805184901113303933685172794629424679937947353359369958955120459450624075010148074528529499641070624564488255028612135629113108134271796674638737888075929576503437724749780676880173230924000103072205715355368568968480400765398750855132222222312586892675311350309869360715514232670949803218607334338940391344504821087487098044173739424564384075738402194006851621246956189843327874576354952757392251051184965357562111626855712353254208349358271686691413918975250726969576313208276730416220673699631973771653464033142251893464784678362927623377956218879362177555345599161559838027621919009975064479752621985394512270335387418373029266971583468351464149894813710978592522516860430861507301624051996740995974791302059093451031756759306930654921076441607869939372671854586795999893396548005892798071937778007165541548911074180259271969783874347097043083421311249769644375781571433450998289582622841687084008530796463164485946157895971762764689532409486968126772917533660796393147376633064603781915285189807472309950307635021852057369654712376409153307809435453883661595107645773942646550547072408448479555355566951793154374292437101144444604478822683694122593207843888211459838515228157626450801178983581524833824592465435079599327544842940386017843567219846860281052893521879497275151359517725120711760671989450486473605608581421528885579959598158760577288109970259887553260218917126671259211991649516600960928816240340650774601926591560648054316591137059443787944127217079018984160272224270139887155884697525488697263916131366538158512690063915441263350089929345055369678205445114089151313699963586865330684407016653090904074992389281231648412260134062442781960985383905781983924828774836673222026785757521393036758882018023007867711054563255103266215160777443350051584470042159425706430747158246346248289815113878534786288440557046807379450906285650050137505394041843848377408914279270046389234283043660356956637608113341633226471623444611536698649126020742434406266166584441612827421270004061651716446975358585768463315792085761512846963958498674330884151530317385519336956695398546045958458914601696216447880116863457249515500823695870626931944012205555162984485128989762062213178380371397438778893153990413821376991417009234463974513859238070916219770451553158490744917292963486727529216234917230933089572411088118312352495025573186129474652305478378377580095712054609456700076200497108019729169063812760220715075254824972170265880392730442937086930021233432797059318466324498022353665982564802644774838688419628943863796346436064715688368378545448662848960748824129998492383444418113346426907160186758148516110524752737112371684949465473669734694189336629749063898822370139427549479324455934671052781924063409836142974856839270957025385396125226703096757350094111396943582768156526593474018646230180051638267223925556490952406625520601097976370788459066361591905925107642830280302045867459932362689693514743532360156801790834520733593444014573165207527414192258896862378010495165567770488324579156693584930616195050761028791449918894416554997615252330884953448310852442319899637588528940413206570206831389939914617609522841331563349420740115401312375678002376647168906024473784089951432533649426828094490344077207020219543477579481901984543204433833012557841023588370976552840185634288186383298262169200158529856118985439095517588705015194315107435420114885612886346341158403223891156613258969786650573502862536432131930157399368435038537110760762637606379219528813728214503824283905854617827097189055626728461614564213509345257753305971442126317852763841875130793869609863845766343135604927511630930429171824448821881438819758072443435753389943163970401319812687251771711370609677746552148322517807955644164694871656024288740773052708690291342855619923392076362003509052625596307757493515009585777223244114359587836679072582769774587577569909265649603643167880276334247530928478755358830408538015944005401334067943003341750131109873981351935562343836410532921115477278657538301225631373652140106631310225367549638339512576723602400359583651583987548632048837812516741209328846383802593651942723014509564074361392257580555870530574388752014797186398214220986826300471566957614925344779532041958928056188232942059521261454625476054548671964316046807955835776861310017588247308203274951494517975551513622242366350063663552617774315628540530228909372375969340835329682666997705281684063659175070601587373672497254932034830686010711700479640820400237583715941638970075728265633025318262601057937509532270390328731446782475775179238850380399623082349140990225379266619163015818392401722414942267346082012671247073634393732133460380580998074573406248449426168250104374973553152278018449863805100259938869910765090003801809079128806657910435927546369107058385007750084736812466406210050037030998564039619162767433634685062050804522862651316930201686313051091596054485669926476471859355697585486546705448554269507785663010356756805490870724988661839605942224432470130773184856635319491239671123331821287534721109389162941627227803557632633546364799305524209102872411193447567742041313432255925144284154709061111340317618708577388430547221189666297356133120962321362724160088052074365422059790422561924060444837195661337053180841005025446892442928947694029635552145236868222887253327820024406142991540483779979225296025973455373721672068997887561455932696706710259129841005745838797657595278036689596112072578329109574468870400545023647479356249719217199495233804032664879573815944088972825089602218533291774269223588149867444039901294377234663309856561966555334321239392106730787429882831264407653766574688992566496829071128569844393847757979046167266760219298080568954283687979599054868203512916974584372048285604048002999741935992287211318842024226395236437314094798066233374589024482827132392809605231678647373030806228881876896970731193561909710512803499487715379377264823761186560048753305222050596034176383944108267935554021081833614917643869772965936568022629795792324969454787092678303562553100040774770357805730323505020356052306312327972657741616326969643509217515464503622996946022931496291784764600987844866036916865749959558727070470084122988572233081599393598336233099740020373884274783602315863569862352298662504237932896874366051052075245256584142447421767671869656995213869366884376833480046677572992967474796427237546559241064093058657958552386614679510946737564949184638553063081193951080321443030376749291155120581567998431661304548695511412484594713324987387201878794426816655618566498579011079451303575460607712026652823973444509866946932648453257989998446344760278156630868480670400112531187021706189307987863940389450559234224352570675089581139729735243991714285937345992514946261628335697549061425869267092206784709747602871939725139367791611248880133521469947903801148295625731073302383339175990656275127141419039974383143443495496122858244508660382471775352117289350065215928110431878729369422245620677287061447213143090777352040169181842477220022152689580134690720475320673699234373710400794145119827451986454997370686713468997218541223353465944028415993946590958855502476625418716071562766620659302905593466185260971667073073045637755616601086043281270806646493843688037812207323884310421348723560920655904556851655749883813049008470152565204288952688153615156634630462038246693686730734180637371352077659870049242858902047893826570084391516430539480823710425579607167838168676768156454831075832620384055668798271616342807808493957842331710244269767287891354574791929496779342461274724605925697351127010384481784482517375885248158348261754820801377232404100481937753474747029995362655663187332549565872472563616514561955344850435281942975330501619974772195134090311919502358697087936258643292277430057273135790045793128758220771764230299230198855805265610046174567693728456858587031337198050837595412721188452273168242197195668104938474596877290695203108933167248302545126083908965369295449241179008293220766357389927714954538559694916858277501922822125842336851298269282732286360344848712212024859512573489977258719683678722091481306857523721765082756215556737413505481898207594759729635903044759594781135171885372395843838612543028702457742858150969223015776040892700104849098486539428070851681627107687396433844189554390684060583236062647372913849871234025338465601957496941171475077802575660764390003746240790257835296722424443863239452805330285867293959332692546250341404237640325681285106144807530453374521201052505976822035535449500124879048121777038030374831040961389692415274226495678370819927451430130684824877532333074859884379828329959825975694207553512951054917869914554424192878306931102590288812200683300621292703001904301668185248187583333714523664153601234477112845141740899300992312098074529210950558145413107066124473762929705008847766630602255922221867641301798977308385328852556384709269415444701084099423511647680781144906940336086680263808698803758711369496649838358537282655998569777334182243507638039752216055308417225667761107371302061463477054933905594657362104838289562127838736505472918250959113028770341198893754854862147041553522897071841131974169794146767113952655037888420999871957180713629419042218897483673727439677692855008805952558397547234138078768503242854453596501017389069037436240654090583142625490000413152074482930695670520490656544095373050614073370015043337103652178358215999234933225185160068448452781241003435840226267428259875253449692514210940260012641676823140326731567557938202419023206789700156179331198110259599285507280746571579154112713004475767087158365904214301382646233278667761365701870572379603533105013100229803437273475545508446723789668608346823658051389868633878449074497650012448552337241304099060170990152272893702844643763169602775909765298938982879892709883377826505810043484124492944261881716357205374330590515701702493370950217751225427810428907601847037207915510213707163266311230848258776287417499942583371903148148620927425420265192502027044002601255043286788098236219222051738989697578682198282798103147700017374788423184505403022934508752310146541133608351040797585046390627584000232384880970680171192205296698158599011110376817933820143347115981252786949358624530594840447483551255629772157176607102766524442072748113691235120287498467099830090992945442859518765120269718865763256608475678976351335172247752511288961361764727656333655154562539649767347775609188574277445553338746151215494316665014151844231029534302488484490619473101114215189296768203273239687204393310825162645171538262593789796012704124244538737350201957771762491203784549831193261412901437608047598416075329618930777154089362011405510399774099598682798407926081710494705077095837055301967552770904442409665664251012225822599578871711472907492779880375323122787553818962898177263302950677466341139070272537952060018338698686237240928969256521419268667848282779326244268366001776958726003236381331369225044667657705249074703007133407976557085954876777048734295728422276692430646213848327437172889642246024479577832837273108783426710503468167004808042459379466984737515415851719068036557114265359641582378702247852055503810449143554537861542906871889669828664086839787747380559959430156311960586067854055922215970685569864522090988752897372664626653542212482056622779431433475575523055565002089641583682251067126384133250994634927678075820928601332480102634035215715421390369097885780614184131295404995878937937126014384829313698084892483241264303852438470275066744403378336979508757238559977201520425330025135798722967941847549153224118067826588261457123210053538350602827776902322517142368954022891767949191279945361659598019349075517680635047183696869190687986020607649919625457943111311078768040808546584740579691546203094325251302738756076871388709725317331264436806263059234176705091772913807340966556343644411404894384815145522900928587710327877483865616213575281688580720071710123856538371663964450818832176401403214701287278997202330419407159737593949387109828132919518677012258374716985312162742013332328980205927824188003627091207080987653169735210856979096875480597130751459177635521450696951035355134690315306159599865470395504007278028811611602479566096946480481058688284622416326151172973637828652271735993408663209958043402430266972476733946559796009913861753928748674034636561951821420149861801379674319642555936930693799934047832203885676893397904998773115050418376987363690734905225320461940715854831068960146329698315676475204895087911179809646411292928560531584392430829360449699174201976966745653296984680452328411175452917623771153276968798813411780518585178579276517563632759935248293985642072353464711979075459860911019110388988682997569544144182491158515119737698642606579223948176853920170708597797188130207710815229232121950876219087644541897192567529314890805345019380686090509013346979298615413188956142562539073095728755006301497090711776485967483194274165266526740712516359873893944261864952008830047373742554020536129891872864610223468549042882548544586227245464661450084620030931003982235292487028380470611468700730074013345209157473783392893024591432457086444940343728157107324671587865402798153449875783046629914109144101268495498722958687287422421606146405841229063684267482166580451679607249126177299633016740176277328987505462599445394109855163702951875678532198769886502454848928148893784904322908980191194623810755976599506449760273724050536422166201165511596968727487346675033387819452299481105856198963456579600248750465568014678324248065356049879173398657977784043541392159651722819952018438108332878606645990952610820006429468763274182283516043409053611462620450973969452556965687654103911942959792284166266862820660306832595953584616768710304750312723066826585878987544451221030764961879323653694579774202685361582090045979002384904499778541403734149560978158668768558837669249076176508077588443315935209919678662734112228270363796489909257003094317938634287568697464636501975781789210838799319160691757793279266698166099197910935393967390258058996603598498080575136567870594753929309055906185388193265616046238622822331193624427391506159169018800159942810437368333897068912974931393991068360056968223457910767754979232362874316231136441721274321205361362875139550638132424741079484092229910164542280153123738579754926674666354185337147726946369507251152298630962744450250822196483053822909075918988591508022541799544221475850925349577995392792772988349920128027478132168078275858839605130106987997430693208996026280927374493728212648219211833131405444419184142780308446969106154020482833025302951768063924822029223425282452062955441364640849564373774218797474158433419238650064491594041553694924369710916313390501120882023062211751764164594587133359015891616780552670145857937526014725828193218736940646413432747190966023301868469246750612396814431661924908402944977034848116135245695171219375271604180580945725458147763764951248983178525142668876730498410825971014954540578332585601096600955265072530523423516783116066638655938602854315519715165426389561212498205691454138297043708233531328148973167069081306560552024842422329092561974707916201805211864193044148727774336845512126883825701063860540352011005492009268412364167975392289773750404492686209130213723212182079862812265755271273453331555287781659974379679414911649064530438249421052007483171294905063150963898828159374819171193130364895157337375336488639353264354895837271313829222517966316665375500714218693058417911164087837667872719543322905614027646649100525989776235117502459985647993142127318226236523131515246531909132884559148027546556429459254629181859075973931759596670945865342557612987190646801730038207532696005606421213146419227528722244944394209350128842847807246081765586312793568303390344078061873618665362307503540695775744686675356327941773246265234637002546880120082290474573805557669285358477043968110238476270504852765521986413189763127273806456502320540856441128970651062290021446751830336023234454211811059162383307585543002912274028886167146812850307317809512443788600127775350931999641242711094684484260164951226073678515150845908646101072548264249857787114499632612263938686663305907084945770004536037277226128019720389247988462352511524033502636004485079410703294839053381456451619088292147062845489738071182279802841328103482667125612985151374375308580450562659737543598829277443907541244231280019243193598198628323828404998424953115484966611207850700749753599669252397212868892847781507550041432889871265372408294556944201896027389634173743904138776165481780154849503924915145325956955883315467199963786068824662513990346986493983263426429055208179851847699403280489707156814393054978782375519866651634134837112088075659822447658694773292224500242432942389679848561690077547314363937153884080273834847080857886698349897068610719451238619040744476078549300332641073369186636908552468267273366138382581059903122337376219397315671996550158487207250336460586580402682267386608646616443474717646732127460833197956273544444601572820838245655520378264528277000591956110749500094247722868525785521439560619079490820356621925292044716260238612190946982763689646448937884252104401703654408117350167225658439060789929967263162686274803634194949068465359705996894984949179876604361378777802114314941885675098809197134957239347184156936257407172014177294381414588566604351226543140958866864305138385037972467923297410851099868037450203021166647467837865435484874616969351029626229190070810735018698402399758568794852085415913217385533508197411307555438779928590129185036962811478962789496749675420724759171229483377633152636836348893675224919083434104001993141345159025688938078176791086593556607862672346429918111933818606825967335469311956897561715731028642092469114625411209613565711092056902999213795348338796089994633284898315980049337821889066604621837744881079602421091866035129451875947064614962877658281326120917320974347011425395702130772449068662317683173656016101804147213129922830777873361798394615584075352892088741846046073675112018233794942415152848124759257691206615405915390078816359333606402640992953076218432881688485585234368787627590386772442562652726484617269726385234432196868697461707805138504474596829899014488694423281061260448899428122947220427483996543309741235836103700107965648867913556511140546981934899731045391143804434415069851830903520957497799716505205357768458193059473265115508356203966385085647994881697353742549522362880295054170955275010957809104816465787757980061343798007072725512574464267082746571814394040966890909980326929855615673350548799004809468266989299626205808667868773722102698809319982799907390310176839253324762027253956381311369139083998359675645625669862314365875551515043031898074757214957189706797595095557585158847665180823524689497719798148369948597775517268519182870125049051345394239388893483765127965163876278449001308474671754900464878861458028970211694012338739080843852935780624326334543022740277321773309706311983702293276592804684528775342706246943729220368107400798005376053672637657814899264800938791547735437128137471159525084738316599499989985966368219897883713572156887085948302553227767440100580618311235533291379857038673052399704303767094878970150619886683215463015255767896681049895200080447691329799423668244003315129047303736549614529143225726801489776786503826950461846347332850332100194092802580516130990940809666210005873562879739846390321333974694232336519810196907632992348214334901622387570115049177910212204570075860696865560203567073562902147920708048155776732302868116087698655124765968545920112662950423893003704920278005193221463649732607457115949523625898236035398090544834578074536618671072098950027413436847714987093861378517394015826564943939522415519671655448437521265169871323201430206632142268746128198177655329688986009452919498294922816322580008513534919234717714782950872917908508685472690256297278756013248502444907092625336729251374459216507136031097550326743364568521994992212883296932586860152646389061495984613349805429524947853018717847400739273152508540813466912707824408010544161674811174474680974098179716134596618791848619692214316058267015273924468389040805061179158445715669661094250578452939553993119721752246151332609262772709080345082431177439838526202108546355507687048010721593547816751748130948107271081950107637851535228317603503625036708751414043668387136388263018098615993747429868238695804756467572315929897919791805621524897843144658682954301258427568652267197343871685051891428819352356648185512022282075544642057470867719448426555648292171874174245097640126874358714392826569664171157524247453075032962657456180608686912966222668907312514122454198150851640861073086543064790743432343441232009319887310107358558306740920185228499731380579684941438117478655832684059090122204589883141028794560365643912271729941627280315080753319448127108616943748891207182366887735208066696161702145276160908983149917097504683830676702146741940219587756202619969717883549059052584260736014444625933070710200378495887906783171608578594735337178765188892333809410534396107281618867542539457412116914527136100954406035829675292411059404015777445793113628210852000178269148089038199787020877174145758836564843532023208176290093039679907547884754722712033137471575072027925934885225125427583457525715191669818948349066708409827150573864597827197436105649467341844086989939303948262536656797589788875480351330165848430020816937341136136766787432127903745739591154068822417118764584979185675542526651724611909729598057322773294010091813933554939482263646126140663375461502830798874381949084367348986306085169829940687023593892444624968922260041078185043922598529316117400091019024605294087631245673060056622465118681237179711663072759976709826903032852004055431453799310849175460916837868535040432373123726627321977737909110132858988157331010790922252167435090067068571792899961542012506119048614126510163577089598205817951176315656293598511258246506999374343338190296819296286584326504944468463781032409655515046074777594235995649881436105623087018650974505712263463464188432310383210790172715823752845538269144997596112437909116611822740856226410487549777358888309293865867874017955304255198229669667195157376177709738793850522831044329921091553210912226587788843748806546049514406463164823047067397158883245110651972763684089866257807335991093578946538845964615944155090536699145342841446284815543439495919262750884524099831642194933141307536188178732345076374703879791366584714416426419324663569927270786234723978443143671854008695068049905697882396489720972170909767110973131508585686484234251764875491071525059559448984317226045030738652795460047667220497688683602324904230682069224264947190132356521956069527939570171843741186422271445635414280940562735651127026886023922567126453487159802165547300625525387712850958644403406725171277672312989019573991954778813419567582305790586366026031246738931505014213802659832158738585691637605832151259627031747329088766425461838638255161778280513407642813861872730993263769933898209265451988569539053713561761983199327772086645099140237425847055139431808241289564085877943194084135506450648878464210107440535932641058304924277614878863837191903404373677537763332364189999957186026632834805607766408746804400194549502755271422253967190461711181729147809612968274318191010477319935470320972899103355837470227202125364643631032110676382554269104431480583538130814867256345287899085875137261156235363788533778349628450556999229072551184673062766084150033295574997889937998395431335718867490679292013665925111923198485377360750400948250738384643448876700029968473961741595782392189253279979589276201759778202233632174477217395820465455509142601645928296453803956739450083893003623294106386166487517315145519621666698294118752684203698622199171577949097015279215147979982896584109730265862685838767176053473875293811661384667905680331490724767913573478616286225345715212036281024548089330575099300646508676235675732090783149845319845543859502535066864043344971501322247998791991900322611530690799634273811206674424146267536598275182255149136880723149571747135676838404553936378846216663306004024131977145550646976105331214094685481879887653864666248059199886598508850997826586790405167573899611434215087710611898603258175424513808394546743155724809038292625774376241653762761018718714597832070154852498720510951618524127606107611937772425639368310590392266094342016615057198406462007513395475776075060538830926756713330917962439815542911650806475875433018873508868457997027841843094523433597167870153035753485996622498150728798411421789606038888699561921742006342502664140773058792821325885499500996661506966181406646985963692122856379340575965305250818257703326337222578977663566259643759795178532944722112821621952571205744016118563508231843609401233518030693214878581048705108753522027334094614589787130885407870784821226791858069407376288911317022424340062978833718796125622988100108735156246677718239852480597412246233142191035365855663953003753642387698765026403069651924345536979351639755447130134076293667993062867842748701060786423185252906359683344110193347508219525624187824106297524549045045155018859827573737131711235471791181322948513128693325348540612181554710449922316100377880070014406790773262075419696159179312098678916827887857760250710195539227768628162694181409803435995975586810851865472532327223554638257282951879389414134054910845231407353002091776154770736477625349427148508006191032894550932805475607095234352568788518896009759746126714959033521738996369169928153444988218280569562138112695408975418425817159564455122039682273906872886084346712462111014691124715408442922395523564371447489317740879852397614495266871402287335182842486085207889873782453067017044589122452969025986062961863226664438048550805800319444573994430359476722506487435212132281130013669237185917753631641785369854233569412543394723798872132742643801636474165142608442289670217654869848258151431793561650694873492665966792445493164682582904614084181730700435406329229845197612570707458011577748250232462017038943878179209313314251481909382728241923240861486729820462376886659627501919204705298213953140456025887191461312202422233531677976440948005584444733218019921261374966951163291502154640532129793749270834230678651498897845524286816944572396239072165378992058630897706820257894308582253860606449193845180613167408517075033033113997751035387818746679916035538010112697093116479994310747127139366261652171677161481037650685833746677602887515036661844789133937305617409792486383874253450239241381576810379942937427973436993085719122518347730610414656827841672505266123713619726175600097957358263669518153180704948023439874589813188208345149414391120773694600280437171548451969962513893840533738430625276345220187515764799789882363087604739025693942344090217889432483051250003852639632354095713206332080138412203353959281775437744899872906406045940709189848084945902878345563071946707144071235482072108200144063221223308907596682211534287379623478427218298094578241491030168066076720429905659540845371876583268912604690904274713351152114593784827977794446978714303084914762535504106644231257390822891090795001259076582639032960637490045471664084312806934969521943243820191570760913172823694125864696469897843412757994439179003111865373084216811254567711088953133820553743121146607153711998978858512967555336496420479194561855691542840085603742724574420367439639304655480951301684513268279509570650943920054739553655302232181118263703863021283352567885148715811330774541998490508157462750383021233043596353770075331635242996726101811286946943111361953602645352643175776172772778125547865652462359061265045317344161149986019168321035170385257774642341417501048951855261263692723294080906183965508651610931798394262253522305061732694682696981787636796104604643344610662287773314910414363981193371018825511460751861156630442449491727299108377790446105201269078517691790742928984777365299360695825768892280885871690449455121286036898132011874831554568872251998111924280269497850805208434842051774039346706295957454673951137894149402401463184027648827101966993922441563057287886668882139866033288523582439071551892033934966139793205957808479936214379806507100654906069318112375773295875303127498042363665637883079789809482173025368336363576181500241588745175625854536405457081524730215360598497796751489908961946149935730423115375240209570701860886582751243484848915579080986509353207680776684486386297804305888869782884150616031764846591301253542673547542340658429980406685228755896103296062778672981661241827021341989330014839293643902646944055794258669237264914002784949848675107470092811070261256337499567247844602482059881395358391142577382152724204569791039459646030338118950882191359450199256096207859873739378177141085214128444189628199116661091227862092733621570664799197961869032076450373085792097768391217217722164655417268977938970687342024304748696680195412532662103641188687676918293931480917121746710654411796108333274901498476164915922479358696848275134585328345238618810660514136506013928927458667465764811915975465556272642004991337213205881653530848401508843468021372773420403500753016032045132561062256333051632599356936372180525318706563818807304335091257702463993344099308054784607942387864435240709599362330768816986957434038771810317448753137743242511349034958509728613399123779177902117282804915491981587235243152768405785775320217224701863870509724730369369994164538359708142565362179736042494815433081656831747430077329301162971676978600749300890703431575534349243519344971899747935296141209251620357003856730131075937592307864788940476468372359100519937262785914740831134524921855856623098801301520347102759018533861889711250750082166069584938513402702692972968105240189434391619211525025222086088379349696775227604115854229437807447861823871119111952281903144113491460322939592033244496223614794957208998813159941469418756672548954721688134276411194360944824737825680136998632331615133620742265912911985016206263133673596968744739103768213034946716426131440195358578251105208154877243949988636683273598210755844946343720393951446242899903327084784204120770470884759069652470824134106881823331857497686469206178214980740999401966042168731465352532881957510408452668136289123202806173488865411561649908135285377276903912578538233950893448299340351374061918182076320450211985985215052770783798024504210046528472824756109245192239604994234681004370307771303791965420225647488483100493658642338588953260903822016554575035638863766085496662365665434271125793622412580829857605861381113872055630196455455182419569511074019312107825698498571980057362959923524369296767668016533609783461523359003547285183231978777111078400689600491272112205426645961232555208025016785504590055848799791878024275794778948962353238067585131089845337738953605281446432064910772255841615018574676702704747338591684122819375319998842658401646969575882889078529745887087164248389146710643721464542664249534557910716512338087355649716354203866948982527325369808340291512445424946267167947815004110176675723688582630741963867061857787333090408743327316628693033251122778421326955096213510054538436186419624034876088536101067233862405114536172009672306541046450524404517506784994481174553106793621545491582271977254692959789712444833247477199925740279218333355509288288397308176635648539302169039857212378940162384216295388667188141079918001891557574515499378789084266647344364292527090669157936775848349857507826227717977826157194209386660478718218740671716990421675411143925627693772940132871274607764697313348258005084073037079368143517523316805387032771393060652019304786219971961662283712410432177480771626841020063531773514172511514804534323862054729370695248388196424998528957578310284647688256522583511635764259336750330957752766036092129110248601612514424806845902213879071520318929660428694845719025642456201576216639476725364033393367239314385885333079214998307998208638181477357339020616839226831157356415171909196879939122945607262693382536343798849875682270560127377214926224281611296313381119500002176173825708645149957179777880734243177586227733836806508052872641267456778030443154485612685771437759772257518384385016149435816943531377736653425893181945890637537175820314442955566041345238600408386333038601384867701363942013300044862375080568979239483483364715975450638551789140468975919104309419002996380653989190255956507179713471172513978708839390648565606616244390082068522775918246449885524710608835066919880401945339249701302629691560923295923294977173675276210628825271283899005862393040020890555441979956570317475574696954605862652427014766928336728249950813647213129725878028259634794259666354734827698002570581205511851532340595433228410257713164719555522773854793253535329513373116036026625414863131750745268834219543259252402980055278395056491810487337089619319060248292682434362941593355978103743258259983752201446908120616922530645930973597676196031483202372586002454954056182397608421067355406897275956377486562500781591384231626117424724708267974212393888420605453727005773559184740913934257699964522055166010910037221475556173272606769932196000641652043126283504727120198237798928646923050164119648417678025813604454936177771157054366103734919534629004538355841230368333016426033748502071268355137157187632943017674133861512295747399411984718548716401482566057968606213839075985525228448770541238113074288572655084359088242784757120379245993042466520559179925058967706478898975322631062263613922947422063962753206597512776097510699936526573661159602346937426979746694367425926559310250013706806832311910820091324500041904867806676117947163457012712794991946161763395054010738590468730936771182036219769151075314298995407430917176139415803988358015764195106704784413954824216101032465329410253510424260346221418889115037335606765805048855940480531467168990573008673755932417384693499663113243026335567658666656056035631308828622399801970932150806873682738747810135074703634852619703267428933337595250920841106223408286670520654183232418756948884100853460779398285512940594528550055463860841122029490508180454222292474066687435609917524851524024224514321669995081028148074630195298527190887942391364638997469753373004582747450098347399455795903389775628522480458196351853045948091694289766538431496905262619858503922998275112447893962881550638922778193888024510745751491559977867767796395830521970823961734780729622714035063202964465232046140662561214015089503195032211039372660759081750912982341746924765652399947467388533085310081086810430738368546150019151817528714891245159058343949245214040534738674505807790089300752332350381085605141917547125140016956279401393510908014501596112949409600797341307278660176616425610876227204855045734503519581047201644178056986149090555559419275905664285198155902098389881856310161112106571764782480732327167399459180855943129410052650227423807318266747596928063315776110609250371394778873844113788501664608655407439780978433294029678579670789262712814646642624429624540601149417408501561735598503167167814943306520925947600281557644746578673597178855183453808278754367354036387979200699341045833987846454587651401974818422771728097284712069606716396562088056861228747679168853391599537025277286566608758856846837441364884192266093999158012602820478897921922205537567154075126474602340930741396563109135502719966983625318244424746319074215499055333071343533287251923623740703241897585354556376262168738839193569128628813540892373990028396897255278930549672840045857754591494310158191663689334111706055528329091312830302579277167821127487033766218310957585224716270340411239926897002853810072876852055098039705141716979173484886692199354659968758645421901512887648708741892302016123341659283191496349745436856307599467454730503499739736284842190710100559294195194684497320024937062232277485550722659128993708100739048824781203723827937531885088854080016056891203719187756850346860637400377637078658623052336227284952450369396921944202340998322264140725769388052082209733596530941592767000499681886381028889370960319489023252732773521428571475627287381048650637103392390996246452098432895754726574651508361334466160140002941740842600202319564174885066628823662237686679387623018800027608152313516141946586579554286395382206009726492579707460157235996552314896245695969360719810174667953388852444546527297605488011908368859207375158703197213741732499348502311106841075416300407411217509121203529719539971761472509434261933538434612959694957814200433196462390578079387935075631954577579954887235592727772249828633094805426418209077139094312928959389369889900150452343429404165142274241787265041877709055607849683555196735754626337618772860249686154771953071318556602956070922107180321776185664287944706454664260602465267354023897420411610757542593646350146172033893352936603198780047476531192159905061720559566591213871591241089127067414119643884055462392607253036156716992242482366194825204198074962424122421016776421854323724173312918318692787400541416093560546092563870875501638385983826118335852182128740388514559543175602156109619003085061710386473069746886154949293680112410687725416163813248922562561578684067347905212748296878907157775191915867796706913935157247344948061971307076441038052977268468031602587534147108874695579014338798059317088542166200256068905989471209500882621471377933273077214045458555288014597051976975012740420158565637457316867044253766596437239056521754062348877158787410185141374709151369591661972167008466471000975220081319951155064834789553205479278487455707340655466334402016091493796937453128146671741714272204124962390611306854634290369045578759905866293900566013091344049663048298917045471795544691327264001476051559742219556921385171787694428410592102086328023090370068178774008454252513074321654962695687850962611180117131884844377301484932677016111183147819060663359864500464886642463030770935214628119797212128979489533366033524541254192654130237504203579214235436589928066237108817516701167711849126975015217515271650502023174049742026425541203237153848750948677704078438324396876479382187563954467170806519619027002003945083182153893028392774743840863446986929044179605043638932101908073399889620587556163526408845328660555226576401400355344298444616170853971657599475661239292161780378403331045295199433033854910912448883309608679140372970281666788661112924834348515441331958810514200110026053657852819037682029126151512723240186374672364577813041901544959839818351427631894618368702833329043755678016171268899948108370665224051770661758049144304758999337097628680936889154437867384499654630585511552660900446178912151055261603708755151414922869263209419308887148774612900226021335101200452815936183888875598625740121335842125499052239074581345736066512743438593306572666288602802532615848784326815093652452269437640502569808600684801802871060282114142006238914111912743202351307103186761119118377446367817928849150876610013533953068125624332240260336848014328555440521657226483345038330549124662775606158838099692913642033611176895382976507940926009229080406240002892348862441290672337530314268552164654571791797341847890693096173492147248115458362652714761009992455775802505167456217574973460920335494496463790077043745968639995346678558571646915436753162759370341000746413061137706936129229352630830124885816701215785749944420866377464249520497074846643640001771216685090167900184704962488355900141347905822376209700183267759362291104404773751224575455651198280816518946086531971939824672320750765085865445910781472111704660433775237815887100688656769676216756880792918039707620400376484169785325645447045806508028175189839431421334839264772279002215183651646064075941798072949660095579048012291734754132877302101026893746210152170895905567198839650434175875738267999154813984248359326779256799777345422587994614082259265981870100195827833234909929030582526161481812412352901507799847770278206801123117257872838671648887254875959662664390354527952724102378256216701942267024477701920380572180820101139708416593492887874899567655298571795952669396340189908748945757387307118756473939215214305973041124856215546104965160446951236688728890016366457837242342235896152655294964721635299761409397184562719384768505709940866955392363628043615963140820663757081539101655751293264263085894725058815267809241457511299012094221221646127369969306000075238782867935191284578493531651118357135196898052940643363951119187653936164451424965476142801184361502289145028083313043598253690640379395554633168719106869954004919627296045024882813456656713509931473556427238795818943830077512555361682328437598524576613032671142525109119814877854255808613221298898268643916272868374695869768762139284204159201671547932370476616912122377490269690208976727903786671930364347698438978495288364571886157123476578344033734441794858624560564694808711693524770643345454640797072618179710913641485370945675707199458978635585729540878185509435002420598139486316462790673749316902902493675681164561959853261921174110724268200246114662317201485877621787471461251526577603841975514939426949727921440092724491311824642489768444934714467805940369807213537442101502562678225597015167954779246968595999992304020893894779079449715896520740002291142787440505642095355691857662442470122393435314148730372473613784235281811021933414292981359633463821110681329184364351375052099341529722331466286985662822754835507095519482925194480245139336274778780542973787125966448278675483349463294357619972391407209009296093183243126086968256117584304377709500294202668594724460133452061254259029693592863162215900060335128219863354534668998566153449290810260226007499479028907891904633830240367154618742160637270894567611424968979207691666908595385765150619759959038147830481002756140548435080191302061609013182763652951389261940863937560636744638565040652256764632077350214514023207279288084672298233910969317111517898790999277658345668869723759131160649837091302466180837336460785233470966893834902149190839359164223642096107410592125811938771562241420769460123480090956969834455024918286591228970783676978435547432799853257154617836951154042240588300108228993607032961654670885845372931973687777796151189949621529639703504047253470145875882384694788936036137432943185188424913241927571605270990408266330187000891665324059975299276543303704942767473308964930043483174422060250864211351540545618979130650258470815338646648058844046871926634353694701079696633376277104493251360810381529058687452776525784686824624645879323814045392216391572319867402545277832218095798664927064193209453653085426810624451306203606165414144635652697217556908395924798772926190742829879332804751812477572829090875726626547903630616856736746335295075161722210035932332618322608253487777731464612422849544336477053500772776579442779106147368854289409139596071249242704661283841287013798732620273532698179385870078737531082915214919766511607780958231695299809299479125436284109208605859842158847662976717747134031062754733391427026849757391109094218213894314597331874191125625536042105551141870091299831632298693468849757539774037722743749447616563320753881685293651696427562588156479888828746155180229479440822157126068514311350084935533457005539197368616968663946646880994441749334865559924917095147311686139988311575866216803055179199576667677848583786944130466721221504865009369147311579238773088728424694825139916885072834275849764813382205559352290617350228281677743759954852293651165110896540425644588187699406920380575320985701773737013444863806873235134726934227870068044341501954378598993910549194385854729465830957548930059862335408858711476321572748998192481841192424751857741366994008545672238971788028844971437606872491694356325838016193372136890328880682519636752312582639392778911190456663120981594115941141672784332935684400638422285229449747522421857203419832880466482032255392826329445515896306201895202784128484568326617121722851092028666297608151005975258596161458434078281570825902818457344197264702424622075643648175037562741051042661356247585678873544994933240748665116027204090331148452133041710822649938971110623621236990053922749984651225133377961108673229102527844905145333316085619306521353404027250149095204741687167279542659581076555778188482934862748857664261273211325384290538513556632387072331359073449381360378562004777754434793824882287009948319032848594466419246563102070509286334210907265525089790599123083248416218111746659853364167439407366326495515436737936061089710098631760062032452549117260297104331739881320222528333254690771674030266612564166051552402483843725188835894412897859437103987442065894941791178033320032126281571279345314748339434766452184189901252676950948607185111296687217674641081930314893363444535648042025026427744837535257030394001906575099471969981680295914616768031789472148555238433359985421371659785196667596321838298057824202159755615179942873448682277168820363644270220281502440650546220755044779241319838209426038539449967505058546534173264898496800873267644279003002372978498495969976966212743701639308061778089691759049430882598001181012069658215652149620808039172317914693280726321218774519397309861677658495299929660202171384435628776434825971794006440571538234054508318538148553659619146104078170201832077941761846780738311903251864460151926969372300973482866309841839392889184784893997932497910248722896471209082402285058734817607055294138594561365266284610579457742284128608811288362979745753356490267998865545164445693448458080900472608593371192870346386973394780433376972959366876340724581560680459797675789753811973845030872298898132917582811555705005793832500647789207271929860201561069448949278432852111512038454949900375419057611459960277833701930595778396810666595646785982050529674256968512796220643679760484879281353590779607256776146753936787156826671264529744278647870821148902295634103718055116615476654714673904550115149318580418233107274258694765631706444541737878592507204843890943859610151405806024340412422744903041431005213961850078851616570368948719020525855180414871372360835146538848743504162798499509411384048056180146904468113050644419631485469892904840852062970796092186072658024183436291373329642816043857473753634910142515540123511385314955660065610142710249588064370510750029232420943737993028163405469055526810844179320907004111828642104474591582571696609183438617060701707843863864324942441859982915589517893736083918981105199783252069571204041301137181144693917873571140371652207599767905378040730429481731986237506827881083750837104867307308147645422497713608473734299763387951079345873965641174936912874411432655828302040329402581903872354329534121791784036092898747999951874051234443664183479006850206374577105841161790698753772319653011157863799803034341295126641414196983585382641034146148975085686545696386948372061140428139045280443952587660388550734941529715641736720362871204312990063272950115211608710588634807203107998143692636518011572840806100953141513268334378692720852892088254797344214894313800667916724625609011814082838802237019113705373937089635791998179496736891188802579656041063049390633800460650332801282139003697582410967638485299447918723933426748422759256119468179251527723459641318912401765251053395073700430158875025354829292984581380443710981555334324878149403989784038483711051426552092415605850497800214795152633761706439232680944997050044495592539770833964620158880953737956721010393981855725910201060185707147337761431251766607189727917282061902471607379940720710106627102232060525762251807799507502053536526973667761308505528116041322434768108488607221590017068750566086121342146816307575336255034843831427285322693685279051827555732512094042274657520131752704824638795305696014585239195710427175097214081235396396137420642118308498193380945960922912569683382435093551109328188541685380678438716620885013574996871391004555981106057458512505375667021442416877205285991381314356812200875639658403652308653821875403644432371808725357377825006337687370850343687755050160499126749953824582035228412266594297990931603485882491579536377181064353138905280411134102810417092596091815290381165022510179121562711288678160875976596955459810522849882434269932794382198470649040701561167718103268070493251358637895187371279825947257833285324254728201990906577996111550019426893178347180040493452868756795261061091741969073912759887256091965896457346924566099955824495509015111576679865675601016356102417653090478718987558584117986025156318744641933541417908625671306900290853072491453096884283901341946974866734196450495430079283291216525225350398692408551016563395911705099895430511209571623219910945579226899762771464438786725006190690507769477266719641205383124392319519803538646043234546673559931426204291675988004646691788019185068786819181091463322148603162600096562639825221066648206582428064707407481377406559281414984728235101772603800328808468448004390007729022747127744604006119414660722589759129235216585897378525970250667508955442368390900832421610876109069393645097766302820355667622806448863326212174258716061829731428088033403305471444872705690884998469776097109528308267020847152099087239975130102425675496126052533351497068575633053077796080816058887088907519010276545124551519179639057810998702017612654086519435926729698188336174670598488263466311585283626283148684100357563381724555390505997760507051784508704747794823116300859268786524024442032149557507036364787344353530407680987836532476495265397039563175236086409259045709427717843893412627232402694313582335807779155026805010372361910495822661287744544858859776012826126985790174207469391717712576182159942787684112387287472350381903411438088036048686407437401756817666870331681351990741233387888365569592198667052516793605713130797485370964380353971180264756542751151333596737749055880278039096877149933728616512958495884990420510473329569314000160335400468052910154595295309948484446060465715158555733469196153776142064053183586758666843351124083157748918562658121615062052790990707128476807398858149541817318947422832448926393923359285467464280645840047250059531699315033470233831515255147376263296093346635884823164796040296278891161372847714584275669119861314599720404731544109620760704196909417049288883628095118969559043919334709568397085676711142073474908593137120057854275874388862784435432463495858059579685738401588242108725920004252939300489792638443626320852792335573896355235823218744629946787420106116018396332764483677882282441231458852095433266327857048622271234169710626322936042154056570812416725441415661949041036318810689184694617349724768291049953134682020435672133592375749575656893956129297885367999421047872305906012509008985916011682120874521572442584793448028698480209043743870543292974332251830281782393086789740551485665074792284263282725038810166613452454040638790196422553624990185407715083012244267600014783285616503180055099905476531332002008638908161103318868174198173780791855478822700002089055236532882366449662944537403042545143870440712657449489604027658047363380281742656120466231395551432714562315290823732732283504299978587386669878921024860902366974619446481735853417375858935090405807121036032228982427406879823258643727965944739959167830735047079702728301597442189840363753956697402909230544648849065434733544390991693502966648034432193277552965886153293948672004671424592290051764672504507949175242966524546415801173534311627164155288949950826110734079882847590926771332578000876628503727826702601415042844933954440944112119072078572266563068226619083614654393289010244735164245876556774371527767956254006070795619327051489078733425610343131476413897144502422094354757400191464603423358991081123837926280578233057133954909252972623478526299785801360804644863694851748149917661728393948496865794751674215586960957481532682067223240074595177044285695898780680707324130684225936053384304937058876409626986693668937943671186571967944243648612129810530318337601936558264792555189957459068470883424017103158580570774378627457426308767325758785460730318317969168238182289329013648732143925526680144940839730721584401558296564160456512690629734706842702259567025000128063916229383540906071974117079252118873425081487090720882103485165475398477635506319827757396246377468553774460603112336391262994026742971701395059442111737364645698925490539843607457374413186970736016718878065476373894203442152800886508168161905549910363642744381150394103550177033523509026774089055782339530841942124433171219830307765264451549240644991715829185973359762829583443311123255515820945484675656699963958194397522776894551799944194512594171646160433119950275721538278194267548393515412109814515670240909132429389557772061288547064554007234087767176329495695148716551538369314978930334853582400057579488012849797150513711028173458489856348520506526047839797340706164264528784711628350623952027045576047451944816358636131113712895313963743047232752882394058504442418344373437984990861980064150289936403538891322413774703767690925333338740248786298389129126311639673982460776905341516300815316556525800656725450735102259386211669724595008734288651099209946960700678943788569921571279311566648584061330680794649215708021171040217135655334327071764553452181280875069752319231622739877056165779150395570699728871412987023525838065585764597479961886277658959609673107629851451387663687287155753989922298767100499351970790560728486169408768501822792311317562126775887125750497612860980753404891231680694706363799802923142421876869742705829210026640907467916754551217118384530041095682865121965599800691540606821087147358212501433123458800617729665652168709069059178903038191126753783450826841629001512353877747175735498918587125987273328454472763252807475687483559962839172101997988200940860657920839028154684657706829056924589918981012152061318558912766010231974989427509130986189382559497029605615142862020742313669223260378802439013808790967963762312642276902957142629463742449140225448844959485954570285021681164846070336511647544997327320992903962066899263706564117125399122060600246148575133298214822536793397505006043878060249144669257325103947345328896870311112447570739685225747742969143396720685905843953901957000681738343487154341137948214506826289700062714029561621164966830853930746225630326405793985181910165870581896677624220252665879189173473660649504662223961571761355180182171905570158437609551696984124970938239678656880660812522474965258202807072675450451138687923856607272160740668771721953862410685987654939650236930009654149321672517363734922223658660861282438633139188395489573120001056510961766838021535724970204824472394016528110287057760351444552116022711759112045964766772590453362532325127758565769922917954616037662218872088656387800055622518284101003402506157179007678849410197590933107589096989876891903181772908447517432205819797322764447208638219899772684358806018647062279921506039143041385653565954008568469267969132616742335366498105254092050936814165312742582080311447066119559532587493531696762773569558977289151259571970925625912002806382659580584975811115335095629705028403116127459222002430848796586349639260010014317741922728298829876795485495720541822991419246890437327180305176362455515850287180688424089669117228970223894661772406951923540914177734669863271062719899254677693661072652051957651140317531498461485367445347516717840334842535515527619679727872473860216147468682700206009883780586071958468597872658552587130985495513800934416279482594774313243290374335837208269932989120497545514630406703060289217838872747355736809952660781435258111218284893352708807834209817167847849226986623642147946407280830720767495827869715763156392467263996859479564639480752316847594604140727746212750056776371538121670540231328112592752878287292639601733913516842540214124687190925056455969504820069387992546620433063791916485716085925469444985352411113879104804909678758703761436198147490149066674093466543300072312606771256599259746518731673636157476647118034860626959524617332299867813985248625629722096050206671797074155608375794353704473667754732895427113916201704459621455902209832234376721182705604441065724579766961746922688260968212356402016344982330395142082015625948654802641340728881636024733910236779597307314798133918000142690744489062081407727670331883929609596377155062397894256864463691660622438403451244585694093880063027718354458781294252150813500341814662544124188882634789835413928749222272571809924170191933272906120143936957938503613669139003925867996213923170508966886213746427267587417536838640589858329401991345727721685374961764831799552249010224933771425335958561552147471713579721425632349004422846125510703113839319192417437879728053308128798652142157945987062035426605029501919236977786961242801793144987825900560520028628704168065080637488191169743320512738108750194248904759961664932904299202382885132959890859657608436180821484332586870283646335577586348476162113095656309400969607994624026894543614937477206665803416722625630873273838398408330997724013286719629698239456455207665522371695276081379665403831869795104909963837688520433592606094729921540308553896437067559374398448231670576035519052622219407078623266613208645357019407531194937581146603572623427184357703424139499705236796961756299013715583005783702090527583187513092775900372639059741211649055433432868014770374438008038709363278862693181262752468815767221379137173037630783345915045008862383766301868807521891869548882421536994784392464816474569244798885007125926781461516496704651015042555215064929267460345059468149759612380446158506463968260096222847635795301543079960826820009105212680783828940250595190441817858610292539048263864215940110946492997279622219545975425085747205657087166830045523989796821795229595765257888883823396712227555457502732713780620463234530620832104556740536992230690786220509630570392410746922074327017997394101677426073994356070079269262087086426226009290213326654141543301479545976684342619549272019853963163679207932632058571232711276062475502221543350301840270592868548270701222717754801285445772449298133340636208140670808524343218573857680165092156721390891606930409091966871218682035787045126658435630243951370388584816743533507073889058274946379000415859443369908047766020393660212426737980212543026172613764968850820070876241653774100918902805740215858344532105386600363803821028781902255285896689911583332724826845219500197088513896238980064215065963781547985779990638961202676066883616820277541088227798455346275950545421075238783572491470940290990515223778285529781969518832208976598551441479274847754878208562482483956750887002127163080782846537230286002232756602161262377229881769859740565543107168920655362493856272643995961243143453178497186343921092675042282708526591432704968735863878423347272891936542674941837538755097980303439686382272169371760768496598140695939687627232152032486705237231144315202739274341575576074423106247214174236099008365224069925570854798160585031836959857004727506981046875076361523673439516958002611298972616056095129241620057224466367029527756756816857778196482073945084479932834378615932119102360051367374088098103621093082831997799159694715631262744135428462285452831799541937878615727578328159747942201977358387636656531265196624312178761762287831999130014573036091650074893054010319213579574422416670031664269451191124846181920040207157801030868497962584468926158573372033669842332428664657874648705406130416168409225110358157925329687840188648005006676490473834823250851967869260139061832061216707615575948664682175743706413599085879313964066318095650460758727962754113683837552046634808747673982485191296457309089480910145128532311858967320409661996490503558571290079988087246940798970438689264599407862717706591422873032894218954493080905390233003077255446369978191597146305109007165131607377761593636888957223759493717614013995058677371602715754708892851267147503872432153187676179533048915660615783174816578702977079722455245503565451475318573656541527734387853783722158965330035714565998049289479166347598485987138374247112954752490865720935660988896951582037469000257395202972162076090293341738717792679140145095960174903724045367683311859287664749319168250354683457354319193961494079323441354449440493075654851276697051183146079916929102234117683436310540420666192734906648045189237907618997119900802151454286461425156507870881043638753068893554614115141293178239050425739371419387180390236504321365819054383515399714862425578619575573233006783097034708447858944660294566940434488146743141036497940041213630213567076003675902792575161863335212178803548260870390836239298056293310843656296166341349502400952785713706284269730468650776401899036935441400022329237833939403481208374610138881149042611562227589036195541918785400284382003285834231619562901815301985536306057594477038461166878367040562554414902192680473361957451867479764298549810880480726835146632179005732416230220692785403634665205751061268291941901610754059842106882184744095843019265758673123775544792562248826040921884326009509558643231443241714013219792094589104521592282131376981396072212911961816415454126300023717483820646143730942743646923465350228180949726352063840542755735682397780834226858017462647541690536364464197180956451403012172085102176561588549983242340348476048943547435862366328252844264458567333044949000137019984910927913004706106541102326138932399895534058033766880396625926729753077809172478635333943722407369197262328813696161349924832290676228077337337693377109833320446331355087546171872462330151435926111403933372442075468704329827870233457273573576089435551012926684724133424439878856656390583299425366812560112396265006216239926993991251385210501065682830263560295235618264764219452165089453736059392618104448501304509539247307435706138588842691515937887842253651116855898171177387811891400145716039620953893226112072639627671221369089371130698005974616143919971136485303526876123617556213435487188976237244638763936634870830301478098530252682798938156496998113216393818249652007306285379699890706708346594083702765893473211505169564037168512806173184384872078073651554250026573133487634662457659409550782441253947495555952666493378964650046353760322469317158975056759149684196253485694108663738026636263304244843820312708639632054581575194662773436713640393933043733287380684381408528658980439000661482069688194621858498622916129697012131300030379663505753696331476350114243652137686702307362414721929602237205731892871444236306339259979197132561689182924221016104912833193324482191988184460644247497541023073204431620558463078069061273600059338777558491957510839262876862321875486514950971175933378239501297278811029448873856953598536997563277554064726766915437386133896264286631553844008189597877626766449449187917945902928429179957943275537235065438079104497793370081852564004563579148552888235368388561192187168218988641949815606815179878911853619730510891045850307254230158677153627341271254129021140195427303527513259735569641785801433800623738777639882706075241944775637742595225324442440585855370667039912045241968021988117888625894192600970200788798424958127719573290256202311838525607765034464260070004144075694814736752163885383422546387615307623341453595232612917631578624789264212779994418166747745610910292083612353270623575745156859337236169625150450006969648726760154367695092511748172950106071642847920507471537404619585977189789893029785233190632990821030181807114043390558091136431822635091978711144551783782679947160345847615407146113315272292055301306606267905683468267443782322198795255051590954940560679003353437382309502263976763788199830386544589378842375584022919733600369387806779646048914538641042959078972338078988924866790833399455110261732926494308661794036612998670462166612058617773222612200065267783177432294378696337169753890567313806796685906816093786169446709679239707942559748476143474433882637400437620708257130534708073945717788558376839844227442950701782610888777958881418988745151586284913292153776703078657637703190194306046994972354059434241164976681995349328132255524183623444361598908611336819342803866554009619742235447664385513167830531965246106936948168546872500775964728312168664980342977412020069628239071807731954141939469902169855178508198766314490746786592282800270523858629111748972570160893690692304513882959761114323466767255074949722947755553326747259516382865628078740283569213739317728294071722215586408179810034784098204741560560724142010589563242015101330582466353732687710576460134109767280229469834060795191149618278382656239298829935738166396776523754500594364337571979623179722044904648370172545849276991804104896878076854360886090499065474915914928520430036213851662135659253077434679150035212776443542325279754947832579644259362656239553896677737510620362296910516683824204108093718542685263411072860957337507362871033947808251216810897536222384243803944995319316289179328743844361855916292070833332176473712605169390041094781949403442594622150150840510883481402992759800519007365181890275665300253417575846181024442193741624022762040217388012051793079757860253016323401425075425140000785658785953491503995104934950113248292197659429324628516106101461492070033139233654802927897481161992261282495880661013690605971049776017598902240283768594695437800842509797408999403235000102884782515917406514138856317324414252078908297827015786187964443624054447998216712068270536924072767971055387853140115941088027453479102237077109118281468647298676367736077802133993663980023273856243057745283591160200919899272890631951642345867269149457609106907302239605068596173267726156018066807106862384570581728713355294869257235416182147762474065545703031035384708019700483480050214945463378785169970897144912041880024466539336517817505587966623785424834038628982807502314719706671885227547377686853990135917855925926649729674343489287169050398725588705375560681118677836912309305145191198653768658141840493649594130095353752037576827870643959869254544472104083469968159297251983012033142740445213113307225049592456387435865499973690961463822927269964218288206204436250912979614524179277148539146811876170170849203402661352008441641211137034667475120047693628634692298467173427552841362635742512543142811028521463067197000553308153853175136697979978252004897099056429744348047841494606288964318310633787928326719688376276300591346514542770199962940562333239151310747265364621325947072524691293720738091745552095067469794912129855222616774587307133412979898400632186896747733229592705124623007116595720880394063587692911111366034837471975214010988335075318407511225423287192079359129287268591321239130215633322085422788132457640222016679294852692909091404929982846472636847792167341619650247199023717708118420788987997961915754790161769668090265408140984566987239649940351753373992201141874959199397702623964438231621348382008432728631111097877615434644244487971664284141810582556193346901311903998356214052470968586774967659860346127263131626972570437333657720703552414464236482660818399723863652888102463107143125925386546865370405366712550067792514315985262067490995332995435109516181240315134381466511232140141763683333717304636528900974764445146073710291022123440342482494212239838371845483977124738966750498612481211497121730737293411754721819885405243815001870435495967615487090560183345209046259483387985128962433867077705001925208241720562154488937367503908724683123704435166358442176197363371064069250049428453816299064895461074542856795442885381126680680963111136113669248797677392258364177214455517760095989086435724115258136022203552155392078836803201446903047314491865806509424322127592067883416975678742098286395087851243506241596700901517560059688023240938147310651137724560399309608999568088367801220159407224025362980435964987910912280478653507348413374384328745232970049277933069593159039811357864356644369666689116883157302469516187371446567063530834306932221003044722200926091020288290374610497554024605316548948665569725563338255857364407399250252745176738081922820952079537967014907652585489145009281661958370499017623767750585066605356297549286785543091129176155796128077720177878907994219729958701486330339976255564722042777808780395778669159312666336451215662588240618978845889899786177409859647907865040231419623742690839817001646965368337215469627160685866824343772447553299683713623644948958332083600542796021980807125149673073359431541136945785874716175317642361504014835426765299097908551417747083188267747707781473155461565283115185951899280255004490344233347155575068503663843861426424312035938680927040248719181645082958046426644107408807222405224032757412741605213198386227552385385323175681924556498614237345203575612791968341567681182181467228940427669076076055248237498224391847510422486004756305792573457988799252709676293515946295103903953342670805344492834766072375779308940231251055971635145471535940246683266524639981079969848084229839973161849835802419939629376860851002070820726698051503874362140944442901095499309661024647353146368437875755986380841636402353380198298316623144182228560657565143108328594658743105276071312958661666211411570368544748049561330860950819460467505002732064238303579070512485027236745103101683552529973310305874842521155546048599330102126139102019000111493077153161173239006547631087062546749079264318746391674481959434421880851081533321616509304998443839141552101679540917442945922195608817123938211818375330786839512745104253665757087886010826095518441200526340923951037293485118855252070929097950132906117656831227756320262202987979137164033403506194873276978165222024329139012731557148551572088110890794323348047712562595295109184867313109608461867638170774293830921098650198527682719914753445256872994620260377107252051888850152928637722631575019678076301563562432558792606005834862675958874944116396977326436666551890346415879161275459739660566622352372753223999662369584624639281599035146521892189260364009949750772355922971304771256324039606472806589030959315173169476056772618467352769857509712102431781060160382593571448041820698412396288629691840545033953455101357996133943547415897816965776835156571529234463827276120082021422082429783272536945486559170145996890633548627477773492267396128032766834677311043547013445001159175121919887553546200342642250855951431128057253790789713003439926898721526940116612548237409150206486694271874153266122818264043063074620472457552982272855136985869696907028918933862036780323390729623445664070513404076466272265305043073566336449667901840972093874490615321478281982580859994644968458427826037781078569747644844101846815531873790075013256518300858029714293280417650028181992876743114878352104996215219670758169452671002067896471079303381637344038543197062377824226798808805613641004206415839380668481881900757116996998073549713777389608279685633090384935486604397270634274851881213185492444573519497600332648270507889275035972670428946880198051574532193759886319552434210648911205427825640066757931235151892074461148793034061453423782936181727132688375219779835237093887170012128282181500422520944408456355474323322034386130131341780320896572531244111827158799514920526457407399114140085071016631659652406967182017505680367878187563020563387806701215487342233749696149370924762221669730935195780065124689127766907264780515980217296838119887089184907521425677571475978401519037323921301960700891518635998279490091631824404857558317378078175303877885463603814543201420576083976944617411806592855218861637754976158471157870780082077923838911650568639665024429560116384046601587058099388232919065603335250408526825422208409061555640815061809798467874824415386510114796321436694578931603696807535827711224396916843134370628016232476548551631413667244190429369352586956179510156069810655521031933945499491105843596183506389754176313702901074711419939843704911124746065101563738218879046898241159954957780096380657596278268146897627945283439588323136081012887916539307949845882745365850412792938677973844864466565432723376052594868532207169261732997760010920786647432505500458712113579182981388033613957385949726120456209720341971728182879554069362416551012145739778416926647967251912634246791847768390717390130615943282773890385912385205851729236287741992435705125975074524222356826258852826575206814437593708589209815906852101190274592301576328965833564898083650295239718250373945200817766159334826994001544574849895339491095737408589211233740801050740544630049308831360810138619776963579870200330448055638508316583899971556265928597697416821611637947693779542586839508296478661126556616658624385772085084112906320134253674513266836552005939786979726761807035419533492966906020209361936464574283405051937167297295068726964624304097700825825473149441365029265478744775180509047608807378212628331538299081810068546976004952022345579294810559479713043767016674352128349817977730926673501561065884377167495849488529814817907019298471547641890197316929721265245868306278060667002106530016332210234511190431035880636445898005113747702793993550827152550147258013348273576776299860672869005110215336184975224465277439596435285802892126476135117864977586137160945465758947623968476009259662353009934739540745934691445362365548831215475424083963070924061753664540357713806912517100689263337582282701250537035434441132121601757667116190844868973839903958180282954702877572695207613066329035444935474839092444019308123154350977206301645099062036483858280481865839809500547124085918554844490779795811449429444812102261646661052123566023023335316865289654264392106553941903909316510112364269965923554822074028362405803760301871100352320111626588379341437327180574379280999461218937466060577651981939864173025318899337868408194504081430264149007005480107231589862382920918857953646506705889116508360738984090318922529541536403245220355614804952281147831118678199262723053727235217898915399374311504884295222110094119825680428154210592520239585338006882183742302198993972007156949947423161790934907505348178842413500564876693683030477098978578602465210359667668160199581253402270566490756375064042836800672276543979153106065859506076809863152532694696724151868340945283095737052455155299665156524227138468611702700466630378065767089783803020359622095630818005709541324798164796450146183697694363703568327099342646756599545017234896590957021860199666054215388638254720244334295785479985652395895851848933343631908955129108523635099090797753788867524742575620721047899989577907851435438288417445598135087515202969505107124075490296453888228912532087389984089955283226499487514177860680046192175847673499575986864260788346404389865518425285985451150248046800215933800105636472388718505893996893089145321366666139994113675435950114259257370236657233357740522719987992530475286654134706669244799476698938208685895116727403485106995071825915013010992211524281142536727185809477892207223619453934420654569145664175289061433201034572785926147921378924827092319364720109169176843320740055942825893800236838786210620787212310037500897035384057997936236011027229858123123127077715491397119764497024904050385337800722517061445036700051725865719431117284951048918862364995913028831209596406044741920098925748782422796273980868497806205803272460806992632975422356941576664292651074650864667935983032464762322654281113646464333252294841008300806233633816090021848946736931111557393325722739714723543103667545044958899092567538538169936195774334189448143374802351559129471460892109509738138690901642291669193989674550218546179105324939332928027587146794809029963455888811273896419879922001846881676624085144948316997384600492715043495942358221643286157227533112588621590591326055087250238739120314183952658269377984630696594587882605772808957686865244847228529662458259810134359727414283089678549635730179806203999411062883972559403612892791763968605127486597930836078101504096123593882576187946438674337140764971484524750469894757414166490722911732220778120738100012969702076512460740609366033906672965028780301061449201780859308527530705616456105822191507079612539243962591145456467672934228562511859737700636096293400143176361959910805694296015370459962424837972750170173817098861688655113221371171301591676115582150569508097286024059922398097817797121130719930290204201605724793413369564852624101484684841498600124050622082695946261808529614501369623437219229989542690967167502293891088000431870030301721064349402166816165689012733075605459169209789890659094624060227281562548296878091512545441437570265584475822293048842261355614155044714962057380327813832639838947177636788744660959367320922801954386171556091871273948929793102596605457767717473758550529521287778705820830966123016462686725864408081291336955309779034864377735040103825582997869255025351882951032517923126537988666985584309682329314968379442549666788910915438595097259572172383915319614534466215983163100176959340752315629546196805321521422200012294643792497563881096778573703465788759698437837106925001732603995120719357309706140146881592131574430371766893509010546643058935370650239746693797840834825884543121409875124805522406965443933160747155148322061088548615343127308467698129066911112027495727711064955252241909270827629224541274701574292817009641895891142827250347960595334917346450497053077649897040566897887892242565628182200342548500180175454085892240193304557139088884801939788388566260181940910751790457613346304207370284667225939688912412285863096674562794563722624529954120196757283469520102521866365540135945665054100035421335016065045615343162376670895664482023276922657479464273927632118221909174900377321782335255372846736204653675716357398299459952407915840063759073044022082216713240654683723702595572819014465439344088784235889259323423404274229773605320222921894865503011409799910960311434421757518752710784810433735852398726467247967407794467106857657832931466227900557156631293321172423016697718381980911386643892544200273557057635297506514612795883166910481147920553170922393241293602103592340010910342999194539318982930952048101492213438436138227373206517967548525168368501637111061716651351043449184411593902016336624994139589600744677996835779829240506630075973183831952020644000404301050365511730112854248397053215983427767746296157326650626172635644301838206002278092561657473316814400849068845920161715137208111315146022788257265536338341607608550325799692188949230407529952424579438981108414486219069948878946088622000359439021240622642192943794341093219254855394158445753602810337986345813288570727925670494023037324506030960977125269689082871232897140245943606050181941324154692719037751636471332517373724696754677845444705035641293289531905158107946412977545299745789226506586196484062845073750972736286252401952776595282777684880782191558473958233947461411713474711180499955260079533367353507970317987878313825246710641912963427125499446358414741555760614929373989423257822386434075279503869182474187383488382414517672198676738238759067878153028233847034068901408764904095624910519140329325164304724547852139508386148207060160852242235589556988960756990280137440226080030087817507870133101266704628755689049382705910799837988547302911841640549385816759621764386118565741019796605764718632961409597020969972417332458011475092656142468861314100953207948801137978179637367758653555690239201503223674175381218970636775318911937444946906598598137914032680961481410549771441849579889857294816913602013937186047100882090164576212175761102453736479974334391043508208651578892512106601459615862612039006031923502520581796731061145514518739782029084412231121102148139585225808786773763464640052120955094890235585626409079047056867805176388938859416505553322267285557569442532313046323659189334935634218233020051400789730733054092205382333759810622908309834222337623231020750250063656748025879005882618141103746873788025055763956311377950997139584914513112724174728595691981380974781504399245580373778027803562421131902131740247013662472705667292764866053554776312383081742552873201675300011216766596428365538087276786554966168029883882477538344334148219899450512948284550136304298448177792169473956032547986523150346708201349989455509713659459223262067838444452465698953494638161076169475799847131771922672995322349597547852337228449236262335167813659428125280331016636725117159223852438296435209807171162067762289117765819951063241893850388108356491360619010083828841629674048113946053197737487587600488708525592198821903184140830874443818711134272433128117388793346133630184666291148156852938592293288431186927301601609474328909626708347590878530357492908953951177705867475049159601778614463004138578751485108000851635476575400505735935200566955567004225518285447264745948183863145960907936291071818973023946924724594499152833688553684867855493517923288023991391830275365284453419520875830275621187631174545060449160107610275615715739786300853149031913967230643482891599515912640186215011377771909005035225957088662854225432070847935255604447641200365774569486020650849835272687154608043711745277979097440471334224414589418926274431147427775925335324388455698206614758190401782618067491262097045996598791119830527179587636508083884258814675976166447297696534834240683136651037060780022352698899901809954607169773982040552090949801281916630663836276503469209877853208171692579495276117091980062266153551070214152804037615355642936931025667221927213644377871213198819643601679336293509051734746772839053242248428449396047837107227242472724839624964819255125376538619649398536481413671818634819277084175590814743031608566618847610057354212616177525419081318929698249499401201542011473727562008459465557123828818226957200992757058399617456452407689643262448538562828736242454607371353522278684289037172993409537167559653545303517523935900304703861992746231082487175717348865290050168200608674280139196582670860147745629609474220521728216746186719803710362226505161359503305865614333161503031457877980199166770103679145836190816907429756081896859662991454324997373984926579356786846441024557568393766833067107319320165185759240096474326523667252303164002291594042586154688953608733170794571052462728279932811313172685207224787068581735346289745280024028700649216125676436248794999840237952206081687154906110105818544692698747450149012759637188012412151934454461025829625758605887914849232450808857176110378069714604984189478227579047056676116101920147314874676273555420853934816267857908310018776549016789209001056627746516783831528892610155665692942374702912885970970728915009888620392184598038894899871687612962085011132041083248280340142760088463131647141139867943296622404876267683567961440117074588560857260554186650044865624621256121520988536794738475259899087066594132053687049095945415566020795467602306882194066568168995536780458688755535269808350741848780416789953898856161404091070257755218867967955433265031468766202168615608481224915708453760763647169557170481445403244164918642676968372691707229738337879114642086236562060080488264553726474768023530083146372041263683589121392035901740221173298029852223996310622587924304711313462407988601962883275565585070231176755476057847492481165900992362867927914508169341650622111211457925516390090348741843169093142132969491942062890002462242788509622973717683008405429031380845101761573594083992064330444637653695806254393023424706545242962381086420240126423630082039840449130215800398872790978928081278486461946720109912181831266382189175314919819775225690572810500544954439977162824680375138421107851175516569591380742237141204509844492224561099423320862958302242336494417603746585762862596961687943461940616151712433388575523662924821484034629553725264449748694674050112020031635743994440655620228522049617887187489903924008119366377923845711111919859983725179420408794779034085415730908876552769341249776387251492779162171030977466716417049668175618322928432110067546653016451663861582790355542756528220589003050123775367169286927960590937344573651950943494133041485817080476440602655323517875068773154145570580267601482004711708797102973662296955003487205415300476893186643887042543400755291791331893509920849019515317134139623332772137087467794986434036948710222983072242715569742978792276323907518877386122815898740455862606733522810523026242844600306772531363920321884934612707820906645081683743678065860545256728396920341018818125725441154592873962408788691977357378229295368562620386335168389545620955838798560189266624889172616843215669928562923713166800392098511477571154085060328118970066781382906991023100365924824965918757703259360662387441297960237292354552014266923808020971044728581947368701320031525023338034717098238186868083025803525461082068975047957441456099116354891885715457351990355542735824095805966219469644699134048129232539824205853572371269923025499717381199659240375675005008971478003812266552374597920779687624540984576228192235688781095632469519368010265751469829322202222005512859150720620162327608681643791714991104790468036726408373539383464640386389594058283155243398069586482446429135606775516256796517699399648297465052177585421885518953644265768510316004469563351457936472552709964367484295097513221047019626823579058763602399960531055173777517672723951212237395125936374237696130094134519355259330997476317186936323914620953962228840060483285419705189229098449471484840055713776170898179983743934666046024179566236477076785684715664917456704802480554896107771446081505189979787466711421925105446288596827450549855114125358882953689221064455918789175634811174609209459733764300053065316290407219083816645458193019592433092547805379613129372446034861562522274991730872295111785376742321579808662972216823516604308281146399330296358906484332421288285985374966156210953733143401067637247350673086867637927092593125545133844180507127844155138286355009785031902087771146108605008492376685832850923702634202644100436084121932333745250735819893900611380468864777570062130876393141449938471788356002584006511220125496626948098210637044722089439410869744144256679175847244342198312877222283520990100933652854892273759877720045234786739733517889678187502888493599543869730127080256200185231546751425787506413095289261295857772836686386461495465835089117612900417914919845163752828785796191232513804944528309774505458001259466946048310011094104509156323746120675187619070555932933714356214603025578936662854276696488386770116208389861417416259720597090617571508382917386904758193635810748904431674632824678220754296213297884545671594546018305973270267227228072551731418122818504431731403883901199637801563932698104500577535505882646177328270503592478140517228314057177449526989820268584216848811166721625554800384548956105664041929252904972904691675333098663977980824488950587332532023627587651321702961404973751285716628808369837578073503867904916076715824519183266410853760732903283783698897124408505388409508538744771519387891951064441278645171133360161948205093256319449946792816367420646898901009221410485565065587885509063918379194922204902583645185073861084958892437505647615574124116810007851321724784660084950697463238480703554051857580236634057083131604944640889297109449176156897355022342219994216778168472005337146668201964736315022350664948302837730507720966465253089886877159868115332035439446648526569072053334462180645401513667450941776105027310188039550579395088053096580812038767077418586355265157813963084870521734176512122244623507817518427327256920818164130221220746159415942245615946984732384271928940281177675216672906135257153833621622499802258981926345566865838621407577143158920011888415055517711084991378075441253391752863735628417773094686930274639460677763155858280981808077374761227635509076025687793493663245298269191089245652921929733213142523039808203000416212839282232850540477903673904917670503355594673646990737542125540298446177134609934590521092058563702408028349789148597252361344420231239005563113213280359920616882347487306285365912293852336113462569346395009504019190239108675014747844528847778795646916824633519647185580195132023734568628037306348667972716280266125486738739473773017897790627368359289489068803064458926533267824808557427829492994473066852094177456830049798171412465837304187580434107913978233168659119748439757248219103054785444999883329514052564070991541752927673213297800692588520146209803410331919428255452689073756958951918729601767272734349467888565801077144255416974980581745965172744514004167984215638719429509849993209391702871473219968142950990323174688195761076406208108790253573539051411651963806534847897541856188942697096341007803289895882031801612053574341853777082085785388669924186153517745699464817732799074539328531886094041016131010667329042547471186865539567234121471718639974478146517138039227050102235632618293586937581096749417618352245762844193449339738168392002942672295611207200486787746985514511811801735757359429027322286331462241173592822676545998194041550900187116011525199292214940245201777822967184371481676420079849644321637949473335256993579111079864374113337936220242494183273513800849095036664045428531284759347330256963738875432352887557676500722491888098603424057435670341756876898972217288368988530769241683767542382361703893773305204361803441675709304303155700545902450882089662493076609952732631570189630463022453540854572198612863131385112498295520582219711820594100531067464293142878220266534455449043995207579750750826641540981764422642587491908093472760890392158077870238290283413375433954254880663312545471413568382038224112662743284757807147029414070610523146039180999282934520963909003799807951003831699958064907821523102855510898511836135835869181215442078736195840451944569171976064866181803707049763743953290246677608889183713832140787640582103128832511874026765147387511339747602076097673010653402392063988389916497557825154872378889040351810630761770451965509604736292259516227582963703776390511821163947973138234658039211457417038132663019581205623653158024801909481771054711244435895429685030967353820026531672007380957383210852525287486316520355010469846784437991021674786244983652855388314283215228321403748311341919051466327155691254733087833705762805304547274967450389325756141406253930313966879336190545979523727131327005914821091503471422215303309835792489697630947861129220876626858110619264496929546489288152316574331814407181812015090987590124742741820013951876645925785667810570410167184603601972593993421574900316919904880496847553569516359601667024718619323288267883182162981623344925982279108819489796987003071203415590246329445640268116844604638766058258194952970467173204813713675461437897688815167990972676184082485614473877302198685038158379291106244110906138061047462806139336788288958235432582150912666377107948135528021438356781216362660693370155601071324485126819466885516360616364266860538705786596810374380967887002509045598734122609092836142725906325492917926156096023483162484705557468248902830998313601574265470211899819059454497549079098981233277240732978090603012175670711258164107788059216163408473689794417661733794068023985714593153293420024720168978944708859955448559587577630402881123033140010046824887996063615553183391291952689718980350392249224330848060662019003617522184551378084610666293327232168055306130423508024707986408982820605587467071690964629139334763628014670427681314981881922521439272605128319134482313170819933071668850550676622755070236205697146558484921519804601978580970786159858346730838016577971603441747938725838166291741185822698703895973704188573891347523797703883178138102473996542984647094075137280021168552482580676703855187490357320864840288733410195537288148074422904255989502482497977725657438110590620762529237704486254456414484400673568536007743617826481199938664093712921144045934234699825844669999236052254749739753169564695735803685924789758873226475234706755977210336658731577800091412332087852594555519453434227909288642318631974826576850479931101066513507187144469121495276092726157162976271996708727508119180243313017622079208907270307118163238378872845990961703685083584633128719479616938011808367989913786681664958797371426277687955079236886385545916394031981309411900208628821834304762498366055074957948877170792285169674996890891610608073574296154185731854408507302215715165150701292989665801510638190988849527450832742323074419556782640982832179708875662889777007269574740994581535071977034714720286400684019830050880858354432432068727549618200276644705604151773301719779765228384139357642523407474994929012555112863103623106951882922713850150532803049213223125945857352348643877080147718538488516507670528170581139890229391833118021237255886272707212763437952077733990445247914569315546774404192929679756754994177994820312082800576119002807912045460342690578993413705555575684862104217347319320373895518577718179819844066257070476359022554301372030798894156812103897918851650210966370888834783052139829299982750893716532115513498505086810423795727261530143092407529871622039094860271245477924336671233524503089674285031356043187849390786031148820985959798281104305001066963221186697179302077877763584399705101569205785186120371522698764718937026910967608152837389983667138960618737532578798557613996103009895235680351298579205160790595584833262496420458682551457571154482260786566188977134833059989546614787226962545996669897670176070170108395967259002702343293696195107105366918123493045248885757177495526464459073291584993220597734971357598321860895920498252819413477482460584807241884406813256949181323006665467065052448285329043551481646389525595131071437946988505658640750763744443538886813590981450081127183851421692218961641789188743169657414349425212409552102194509855450136974476104720533528263444851670013085013002636633194345715570837462437294656387183192121846518171817484362920441232904917995232836664165297855753676722254306562869713389034431564375805250273379396851878632922984815382853018058261092505482262323099436335739904920889957347192097105145368445344875273781837754569675541959358036519142681675214712569035903557742857106053455710704364922175987185135057695915745379241861359949895056644091479780518286503441535593280612380290548770602607350634902156943953646372272375196277965602837020360869657790635836551052931363910154882109897307625382473440281740907129950649453440612644762490638203286562251885270764439926694205339118539098606382766079852568471977576251541775925294024390196822428816794489610717728970398998759405801731208940700910471938599918638773828886242238132363977809663258945340691169365840535874169627622720845154070141198300812316729322242267044868509013132840571535094940930042447161995926903537700480172444554273400635731317556763535866077263905252960360728137474436664630772153813913771840173215558776610751563371650726608699614667422270223568284615494837955489899236136325809899233573029129637686691962014756383191694967810282868627581690845587829990795308771927478352733193584608502617175151011512533226345672853103205464856209277485076235301539018051237405334658169835107986457977240375929478755412014942145591835260747831469283197034199783063997450502150812883506316685488411648597964724789159105145615616317936329628698662434645381646275116426547397262416721469255819325295438202062308018397107226006018900465468808434897705352214988460978985782876721006401253792207286983572333157837906878691041433068873567538700268582405577271840836405645623666349999808068702917446483846603616032924929711310760323940581959539459429194063996398998598487740451697915934442040200782414619284455452503282439926918804354908233359750840292710755352281342061798687258266461642989635733647268462012618092948083390544355837989829975282748480458671778130584943908304717066717462510319047956379809230975686971361057564882182304456230033851912384337739560210673871295749556314668708685694464595215367055630604993897940640021194608577267833663739638897818388515957962826294720592155774318476836539996161869074917993565485346931642996851804888526527990319207307410783394697324979041278699151862226862643933447976828600267207090817639826504406472307264555622880324848078607920009855476965908796570977190087581954735587714574295549873275478710699361075151779708850635751536506547566117957339316357369872343068575476433934592975505337544964346784634991238710096393137652057381137272367238025490549941622393764435523962947311577687720856140535424944612684589574403597976275814517080218820558150913703512191534737711087518426662553042475977775235200141159296692346459526735163000931333030204044696558888209132606392156439016623395244697994578240183178464043161163769461046473621670125714498083927412339617219531203203874264701072207298414179639946032231635564423137912035899919044672212550701611677003537160994434052997663606631137521830780867860605946846546099823479498093487684722671719308462560761397203352349344301760701381130139526264550930068759286837191362208891571178550452091691029096069169086051642498339115306270951110199781719798508264460645411838681722310486993262182531374903338659050276503617911979924442404317056393016870574434196137713762239194410425466089811768933394622764550432702281754010004430089893313190165643401303414433803240995684170423152865627377838824073842994671918632349285889447219108835979173742382456666706480406206051215559055094562062010341401061346468113537141530288113832843279831103899276001509790886502618491756543262921744367316128257098816919810156225764542599471164517193311559188181282042305098556887490720147265943937218916218305358395551230546299306415429231055124006491019972143280833363111174327903299268934783492055296042275369160225572578286912499835351446585888030506411206673691407133980400830504165770780995930294648281040427384515036623537189614626434695279085684431637151101608816263678212495301362149455236141175367192563691317153441898044206583989967993943733893241235757382712916432769621207771140611983554033552120682397062316422918797733521736702795949152664207766244763455874607203568953544965687263389379693210777374370508778574825191001971247292849557217444296327792795033113949327129243302734139343923559758468109005221549755199795256283879123051836443946462678906343096506880310648941424810174886256513910043880316529453473968719140117312578702003199997212871340711513900979209970419037786234574663600197091325783339222968772980106292596754766756458669120921459442708195734370322058955130637153206224411773386032221624584848803950801188320406631522702522326328489961640799115962206456898283552964618485274364223032570306577627151742116542916291785153847922722841171033370127830014855534077649632287544947756544325865633030854087421798280218746312026943681796041225035468938588572522756667220743302171169209479251626436136060215080445253412991774557140309705527849495878791744847971646831811157093264423682454017711526695094746794466734564861604487260608254387336216654389235830768564902658448369718741084708516420365361317851824000866162040851661380770939849271872301481537771924315244424762999981502856149754770234575911714322593943278111472525733004383109506526888037595420144823057932042233581840740383412599090796463057316615801315354346331298417284668574244525096822332931585795492188994287709135321182579463740272011837428498628826862055043039572437088066996684164186222352418878977637347252734155466182657179881109446397767630335213360108819890352770373196389212302368377044842814282020714023588892928094612229797947781129885894402967634382029997342259930649198895085512150841322282123004091965405269373014669001013356764169804847329091932225712793189137898099774769553031402775724546918488879621903422054564599895320509646130954554725096376560708108706842432655093257059350452410520130582514243193288996978761069058857569668629855164040741249998492793711925441248153899971005749671522984553499599020959358265354139189993734677091170594933442557322896167816943006200245132374945853845519986620377882428362469446442145530447087400761044153027866651602695730830366294363292926528176633754528702075788551006594469026469515776076945306441571684966329114155791722983226675825370225167446949225977512119321193260285110098406248969669953695079867708852590179959099110558357871139720613934186635750134399704339045086763960616695358749993817526731963144472209586207903001993955835229965268328138053143396476669863222213842320044197891700982384060435313779750485267142476969916899103356343573816509788464539828212586667515562439526347203114313509528313186096380742596740089834054550779762320583891145678586244002930485233019454799005255575569816593462800764886979980509271950208065269094860735571489208757294809408914705646386603977362760522805796305805208743105488191004731082494208819819241572679187577845969249522943792039314005002341697349046080422787250266838785895965667428045257283278110747869828112017237167969703464474717025068779211552723910236888071875031379522434187613381012577927983915027137166465764299304830472005462436095603666433003896295064847065685520664675821761778147318764609947196810471880032135987458574389761397764947177238468276893763921898186493769512611574426977917750100032028985113505796961315351286792864640164184124611025723003698133587317293178146763609992057688236196025890162177310098291179755498923746641267549602542900996434666580511733767309270605711309530097248075421168315404267942281453395200391181470250036899691908126612450970514708169317707052521794240349161232770123260142434695944280446548706575536023322033314327441700294964157917153252916846824604559212616490365829533225788859023509546057983012019853994131732113086364813674287976992860929195514014239044698134429272910773872611029447904633771074688025478490516576706621417235223359476002746714271894602209862802902615569213737965570662275119446272882818583121153968233286965773162603475531857911516030779733297098550760431873539283521671077857621699152875632330110116201673314426978126546565066544944416227278114416281521931221096816722924071972771528585332038516340955182438561094123238136369977275431717357242991753201472695635542270889134609789463212572874921531457717263931889771655563064869769623666389172715776298395227291938848152036776131665378842019404959668675206084226969584226995865646623589848864630075650025892518424247136458570335697075033859371358978263016231744079500022234935027839870006696441238101218593531289273399910895860062196258050773141602375035720846514295243851205465712453480356674683369709749533182438284009112924978662972697911859106201223063765073163589080701495588656854901903304542283407316313294336394354829328922305523701637403896615267282246470401857139084147018842490176981488208610628646688934294027781829420428485577161366124862507107967081927814332063204170514328671875887323266384467610397142670941256130962407398221970823652944323983292545235348149693193501493499324814211996414708385053041098117505666161347779919457688476822468130061609498127904046067528811274134293008226381267068037166428827151591968832241425855053649420868418536417156968528815875603728706234663326374856606571770186095146028738142520151535176823827942486958239274870578567778114380756876974193507000964228889020317320289590335426181037527218750942265123871664229328545988082073001272975241482087183767813387949368184133162320798382023687486080663376741686481291926745630761491381154901222508485691020979998775030091496790042597252722806196291159089797881846541837672465756109127822705961187863023030497829226237023402189839858336842818014166093667689520023173125542959159340986393861687344773641804624862003004378117726348561518814842214530923943404543303428967022244746910855634863132801357607961173534096455903199267743506726716784975286654158991729977571843702313610531284316281077871528413687088535941019833390646745034050978845449670251264386297563910337735301541532995064009666257744935704824621037570026263256531034884608348892642210223230772732739981069399868103653619235009124191110045035398943653431049145079653392636675424360678149440242240930015882185684042438854267217278390667043243482404893789657441451301629981699040792960170506590901551520914367466827986726848969745072690172926064218023777553278823041952590395950746465294968546936519747349310044490781713735016137794056097896535137739814262683499306928160497269354369836713799939119432341911644852095712852185425299816027214726155622415531753746345530148172921844032473002935124472046598470748905462894109975145572686346057861439222317017612245142902923025584348101922432865197439867566917647915004640707216838684705731506848925565967594947623359196323743818181896831707509479786998504979915732161734137501130980627800196829807932938441220116176788962488346213117936259990118795240972890235382008633910596134426029873592734101117431414848461946967046428630410455039406640259195773338943133790660341519032533603766566039601075262985656832250941464622413008319060606385642372307154135787487579497607417134318161383405333925733930160609786468427932941038029927252400665577450487896033133596064104772215917763118222961822268217604998167837496529080340866951127150717858130348026970870812038761478874384260050150864803119344075368306707638123967577947216697600873952405664305130563205326033382420428546695024952609677750404436962434253061127045511099564596828008965001591815170254942393436282220917410714633208284480973677116276064641682033560037552076432624175586342011811800872329845260818817219921651716629095467804046579118155844774527300528416359208092777141003473319676665525613545112254536880605685424934341034291066000287436768969423423542345218667246527936437515994173795590184802761252869505414220371294493373140396439630948779925010778624339081338349073444800969074428344297503933174894972822107582736171399416138116825773301893651589734817099275861866309437118819294879931221311042629406604007952278886834502822373666793894233226231395817491536280698428178763392334038682664172668823685675969913597730815350486718521380725708594694040249837772975394320567330383119084186124239310648502052007860438510387415223186520307603901455580824147435653080315859016346523026069858338804854694279685845685946362010684225412951299602382260702407565719019717312816544273471683774312405316384699577422343872288846938524334687119185810798091082870272771495188638068125236565070964389027292988268609558772359487401684125634267849274216105768477089392133470083628457295252319158043087845832838485879618624203581042236216086425176526897221536314172558106587042487828255088487506742752453398042497492709232021947144772168709940138638703157376714874733922339201097177836378627190448121306983379398257516837606051006468001821940687115919847926317822446699061373318401592236794720933210365774145720267939903936340120507929604084511794356679423567628820260350163129555950815522016659092502942871229326584282189912668096363499595095917598862824792655550974811032073396045427719515931481090820874560968884119836976379232659312015139071398116082520603660362456368828554655985405495150473731252944933823187627624160014002828479314291589731408658806462386063802656320759867520412584948949124883882815485369763796440975955853871897131727548754686738786653561145814365176362568492590998808091441382196441868494558928062467338149983794020390851388282677247473032622060916545262717432052248112824278193963720321895583542423171384065933093118554897928536174451425872729278181521892925219743069535262970288872697455008960837988515758315935969983441740324362646662580925175072214412286823081166382099335022584401392021290094706545327829990236439325360561472191914087756531638530471186634789860108202502955025038584386170544088111509756696267489456300002061059056505682676590927698917827517596087229649929262842894252741713434049434646148176409503826326526838289263476263439539405480158817774084721675106757026320763759984573915786589278774476317992739845972629479102161498955677297816495784834079197168952201243052537215320678095852542289540901826815561371486354676770642825286928884836652885619139037540968325624663791759126720153429264025599692513842713799458417403471847259591159248531230003803201380329426621036890335649428340968365439891064726053403769096987679672462715643098584154565644048298096954731531324056079503679164576023784527013419340982644210707759327729598344002518714978611181984831046119117752720148923860648502147314873530613856735499333870661459579804021118297899608621795633653430898491811757276801987538224035192769033473333124627288315223099055623412534536458425242832163691090212274777207022217185236505403697214516516427967912730534751936291333323454037019591507651826072419475684317711327106227440965927887153746621816987249807460513213311602431456253405759723354059459335865616138333533522560927329733694515732403854875414854960266115609755471185961876117042993648925234335567715724504123099630493742822135067099197967228406251978176698979449538793286130795696471110666851044725049907259614147808812278715229318883101349305093023388957130562016802756843666804226052604070294610754450713502598755419642595604242984738757635022104512041589199522660729207887212261942022356999921398266491449373947948897431022943461798742497831263035158097712750855334423709117125456525713292078589746626439496912470064895249544025482155273169497096480458466910102936370324843121682926691571105993751560529406093614265601388834564474430045006541506471405567712374139485720021525597380975349524911842346094220867822107611821420614333109192640502468834785000635708659544209312424556283983964919945009440649341069298087417278695906875031366677898744394905956678756823455870188620015641880433057097169821085671372381165760088380315941966853225337472960283686391947286387263650883580087326996659674441542183072070552865906626530914382101329564744613749007167307526591914957244874154472706980530284309610007942661263788424371468138634042169235785699489945005620368363561925971698763287268360476578881886612439368387851182353283172785047232307917581543758680059037643985117533245025258941695439470109921644612227756824150827639322070492410353614549636007596644374511795008454505296765708671666483774928449703427997992639136259602521098209348151279322353678308175177058170906242812646630010005918455411873706244630932014228761598057522772756988264269642534297270239839240921132702514886036555293236747074301702395791825843210112809495263894413227780013735228941588443359235359988257718180108667704532068961669985848991248845059558809042529016661407275625980653491740545027281830512373394331492305191435279583439767335819299892266490122643841281662714135169223686988401799137728021529697868788231338782570457422161636274685426249219938557107625511963052891871820787125926756724757105939472064836192908070836745461051503946472283977534136013209645230977743836685621868144009799690606016184474694525600744386623525754670737132750973461073466457440015949932470437807717871283224112365564170900880257097647915568302308878404994157937564197893207539734947955778622030616253750333262448094679878799212365881685418523243543418743751226613582827906049638234837192602088028155762395821544723109266283108376909990242984385174735039820858977564556210055848450485074080850677802751612394279809508703876412315961148776185033024579346249005547496776570189318013343955608824180937400639157048424622663540256552191883762838103771446215276435466343773383667577931253988554925059272731516240647259760390514493253670374431218295220090560180737697615704882406516916358771682995260635060594460745383961948467116441329389888990501612042514709808894438374813921270971402932270545778182872868912026006141862259383024264919825027755139339022323666528288622507428167100254052485944585509456443393646809989917639519083373586935771344999711446904342674361877354037845426239115072822323009293503083958297073996105385443154420983016743072773852172525079184144213551161440121007938897293591642019364577936834499190318866109209260694293402777455318538871035411627843709159516432205822782933817555261625441764271764050682711950180894029806905738964184124242649974833254639021751135894692654197937439667567915380352024176350366469907716797903182873178514380754008016335448391368513173182313318563319833044339267967132411086801803666089644738933579791540166573535827343456592885429361071891569864889049088199565563254029216859538854871188234698377374684676055506435696213349298098125484711606118635771377728199134125382682404803747962950099270534729151324194986838555806231713772640237169546147841877417599428887679822826244311522977024544068556453249496199977119638186918712439756825236543496973022970597052488824035651055872960148150802192804278772249626470477677905148431722380547552460171221365071677014746924667438452025393330608048633361192323287286732059577458081078230356429491397817349082912116395582824087510705235427417787058658224521955507713739545536940645326576386570588165048252953374039966074568743434216844907087660403811732274567935346367187034394885214113222028816654048026570801142321091220556110363967243682567924376987359264601436317267098547184826761417695052583942078259644827456526490251222567495125513899855433409424822809242528413848321131061393784397773518883288980439020801406325070893814536802034721648924605662997910318101880100047447578170226837198314438053324734427381854169909056239938543613968491479259338130981798896753563896020852880776229347851123374580806945654491097474590244721227061072427850431527374372551754726513444776925487751138184906314682008458200620980704406667541556190188964502406228968960116220199178688108691618130712082237953165430503134135859816011344655508155800305209075629249410311500782230855392700341231973937584706789144614034766957572440219855136664415572767935161490321864423661836134468394454735790053804349846245256361321510913703285810842755341208218241363770073671180076282014445641040881835849429638555860968308720760010006138943340424939399897533467245939945112550033638076731956035432213353511215777012754684354438138510219137152784056800674414226622025281714225240762341664006924759415681154615711737965122255055311619976853529524419509922025891003973196685766091618298394929660100457561954112085009987985501667730775336999693318377116221824041914934090654507300941406016847343230519576899933311910935646047353366156788107564735698105400183977421996945069251015281129736476633534094300901994240908704700537612602206301905837696609496735585438337530961657552621221878436335157452350236820456668153892384581509257830924145201874742643104840922088762682083968172828983529984450891041721716091039581140881177438488112687264970431196335418239987269978330923933990970939026163579655312940911939116347972543524459555415622550330034777396679787687756483461077475435609207019312740773744988768925776820697775496157418085544017444520016344810970152767447589975162050329345050277012818135332130712303372420076930543189168912111304462638390036055105086599562859946536387222505416344765555866661286327841830637606749455638232742000810424947776590500611437567034255546708902037538832170819995465974700347701884230271881773823830821845540724713513430883094086670491295670780750694862987220811824186754642272453769273150917980254241955686548715980107066760672236203933044453220439330419222485960398392417974784634355140936201258594863446235951940558295485865411044090808095569821982171696668115593847381982511161457329289177071395799827908011781695249986885001240306974732963244995242351231515836064575685085505510260204255943607361268257660182936098657211862126359905108514380386164536168174779564484130998916291948820613053151923606313731871422253789517141544492270331427914024517106699934497890119844137966006755939246477036603529164521159321466975726029796616428127167029050773979102580072790751792539817662903273573317268032021769250175802360658089017417362428277249387855128657079084388903855554696306168943032181236867672652573273593332371398479674080357031407100338195762162014169225994616206050937614764115660315392833583815397489171462783419763331994408695934099717826553914948057412417958807139704012930350120446287042111900901898326965274838240801357564793585994154344022055479784610948078434415758578537100147564267515363329811180985289548355027793976806999183158285138745489793428947180529920788466857527281797996579173827419633456941718159063504481602725233389516937656663487291165910451630665545786107415551740313291323815780051808369555457503941879906591312468155140966433616976524825186000344408482253769103457013367566861487104117594449924093078344775171122131285991377993693390323971732898172287654147912913567957016992301165894333723954732495685749748441831505892900624152906957711416825175919878415170948526884761107789947214841831948603976033776149601838977749884436130217413084320941628341355275520547145564374170499612788400282085376463613378394639991507178343048114256010031009037011406667649093226428149291034770671567517538127544269783220919951048639448392383082803874756456167168333681278079674863569398770393767934372448960040187836947475309039728820938843905564633354254603141346552040246397812037674807075397982685268687296884969164803088188322060903839692570395174985637532975430704663323969106926325025862591770313453802540089010980377301656772017864488062465758507621858215863208521820072996520106770310108761849712926447070938958472862211961237701627199729128791393731044775346237532223687183856732992086108919525253176854389685989416281247520479700625324574269563295608517793815035421227401467409546442448578429160304196878574975279700033968975068159515149221198960671917634493980115163461560126994116311033396980740509762560374105056944246383247503145912129432919853561247105887051461093268145570726504653110555943565223582668190049011646428804883936417665885506943665362407546621436853508833626223485573348268017126885892328357519358915982113484829828900506062473172240758935439442759159451825802795520664033528506375532763179509339608575450769240262482647302830274273087652093308815992220603548346816301406188968231684744545898544283738664626275813671977726790275814946637804322825049729304218948595445540641177508516930258156853536254228755287319686879940719747551858640263954586964956984092570118955956299479466493115841176349523263469950618910501296166613207555105156952145792950558202433622327808497193469972044344906626470865773148878636938486822878144119721176002170820630750592485988095149277984294208939160489891824269730390966614056537452492724207386972238834245890423977934385672316975426613105662806844050196347047829851416446404934841628185124840040234945185614392316458103471335095913546607485570478457432845511934052999552760476662203179182346158077757306501924750621053434814422591691690772745334542745599124195104591986672452892380474554113464716766310023709426473669692051652869949113710831000323466313637188684516674783880952789890165530891626760227352053979183985560174210902838437657460887153425185593689768614120447722249470650383811165779339339207705660217919279415588440400505970505781060307600403787090439468545736632867254840821530039270569160875963229606779400926837182809983596059301211285929432031855942574185393346308853418902449226855725934378684721692962861467225700863158262521162248679074147154981642928378634096380222013048721208259893997392384044584084751068425319015268927692067397105975293699963675738078321400268766625511590111419122545581587339551128483377592288152630271767792630501153706744516454686606829011943745651315084982726330358196463143117715122431776601345403496467740191929771234179756485003350237702575393719988145998169743960925743780267030739390268312818709725959602506133156046688737903097024525601627798131170262025226757760480699368361394196537951796024491080536190344193146456452005681234128152235265743708377878072279691286886330750915451386837051516873465304424893076841911051221013873546398086613630817544375182392155032872954741305581826673511882692615445483976092818052698088857203148607824903453863888234269796678960335209342198515402462067088939783110724199992484770467087869550865969359374830605503110611453375582622221498793106831812514169566393781003722373029152256062699150865189298807555818385488558145250256361921174292560614687882496432580425639534360971875922105355222527650000737872975991678893497324357255095328283398558324007511038124063961672594244165321594520381224698956091878512156615145231781345855660914726487776666850697707071522382266732492401179197633507998971132449263263059195548822880870366445524287060372735788321631637705030332801585310971894725997519518042559659758761916138453265430225157097931386084778118432766435759819512642636677972165212417677933694359561445471942271870486962038064396521445117010540243517870252758303257546281601766405311043879523013148683147814745437617278332481599958098991366952401773211636873078278945677962132691923764950264875191760436147032017099750594579981280890239166999748081584090426617135956727253952138107003233979772179441658754218474928840377568511434802247699912672479964989597698114067033234349740773021785121612253948578759849739712027000919343303436210660034181241468869562304305442009797695368149129270565204745621856243341360101915504967245037170321595214050026687745107698325886724921838964868736750100109590049692046632078827004420777859579419958237227304319446368399611476495475757366818554062308778790532107150733777450600040046709727500944186843631809499537341176368939977049131514599652731267174934657983859942444301030734271239248489484895780149640221781628099296571106373912323461588607392563116843561995023649735488117473589243799922319939081922740072865952171781117945277381972672915482953992915489816989019406567916067331720976577023514723738924690560095942725064664268384453356610216340584389398238409394227346667339250565519197450981998054949991257095179536816834875009726941928303024360560881410734210059862063529339114727182920467341498014433664674263510801417748302799641009102298226585456146953216384626139893549725260890134379597945257633705603884259170822252955323012073049845610316317175042294310912513028336759034727930946239738976833864486939992021248717344718025727542902639635298685298300509453078616425818135713873925964174245728282885552334169440943969514659578338650892539208861731814907310992026418538641201841845621484098967843762309362818539956524792865492617105614995414851822596854811355287192691478115801499017614071655020814953612496402034780936779288221597317762967811120061110576990593038698900354967416553764811625126842823215512613291608739230358819072407765903645344961496025668464396077365055903748344374117898200062219173332788732829861089295310147401550526284428991167712199372909170609928238135406434590664509096967913487935611141394109791869945681021832011538007298854577395013846134468478525691763916825336449124838271813791718150929957941066569944550796230850552808383983684139598790243628086854496522589509652343194527087916726167362607534842072521896391263412936620825546504691316973668484129776287948329420980827627091605183799853392351238694848139982187185310187856870284366924473882715275303019480144022326281962363597237303822940977297487420824913785349537608416894721719802401152231382790934087839443531756671668627546768827571615254351117629023822252329743248670799294412369039060229494552485968684558163022281183561053066030931166118735771490690937420807190255830116324066804320737797721471510844734716573567408760121470709026146400432896356719796926841319767010370125919548518668613319331278751774548834736689849454581020740008376671021114088570216718310638336926536363927032710764169903717846205467343287154724512064421561773343404248186984415878236883051095624624077216476198935131985183351549631303888934034957156428736075290732112350349030134476203881639295283491282383325127947264210105470162751814329273650314714279606813941392455597608903414380515661779082309250347119553396727190656105323009093904654703235605910737857879965822643236199474580121071044521910243190997746461984243816013875535913578355829368811523867023771045577416314175292642971249773833116286518459504081771333342270343428840524040503828375756369624884590802239342582751902038493312305593334221205721881027278009019390431831079728860643959495249654114994278134465254085627353083433881536417022920496744478072851830339361330808536273504976368873846116586007469434529196381462144418689528196903140685135739995470884386248325514290180583033797985684314415858558054243182963336250260941884749765993630932044886458494308635046236023524587828180300866056326154087078718609613669107212925834920296171120160458739478414733615137850410562597736170217106362660743163581508860786390659799021824030110574968504849266628356624048835048011662418573536352175819704664059286621408759610113838855839706554450623062131536429819864158790073658265524499401496737961574154593417208900854725180894486812190383848358188588115159523779667639173261146068657905624519432203413286145489054934843529324523219870062490519395798994699546435929350320149013550643731863947593128461381015522012486628641527108259434343407622731511100149769233287446782749280128467202141632787458924356976018702943184274954135392208123315413109677484652874333150185020869003553033884315314913495109787763454365239541764628981584401221462196291496292921283573130311435083305506007385548429853534353511136641337441179488433552126401865507264156853448645119543204175685240888869572843927656130708900201481014374254483895280737519598209916770081789677805509436838637689610583432703217415053926179727022162805007706269613567062736416122540024876554666980983222209300310446552765101373504368405550020332378095345624736608529900801622542755705934749134675146602226321884185803658733728265846604381386186852962756056350477627985426015772484835966046155993444091570167741086245802237371838731901258625726784935552643316450700779714361838359172186137234929648379336684585479299576896434969936677082413078565260996603051224005726531271706326506244131670288419747715405839787769987834332477963820810160037243366276533807366575654385250988154753282894304068255177946237840130148603567939524274002577354920943454967784647268307110824964484037829329673579251575672687841949668874013531665770047582413852585142277016423691516997125950291107139950790553887318044310168449359227247054629090795440767284851905653378494940495508010981588490427192795572255472441830769287172587548653817176838423171467669679162378760661423768787368781627618197223096027231612234664904209907742160357700005234786836764859783356674553234798454838058684280058520067955401224347804199290345550731614074081677331594092684770475844372834052893907486557698017844149712415579958172701132011154823810821360475721153844775855589397777946517841698218011531112023683061697444574798387750082450434385891832902971942603950275831746000453402495110210907672079839387512406345178167282940796192453585477247473913640463258749360691296982151389336216483687028228349208403623059687877016969380578938669289743972134852773966558226085171317459397799163052922230780235807803331820936631245683295913071089793451318821202413464056581473396472269975688159029213869871459735103069545509657266377720489802753945072388642700094681695108547098448711043398260411936666485216326792566262890222676584541971963453268160073450133617272579003857207433156250226836075866312842999143476025990256341801570205505256553383661742666435597065537529486596941574659577761853344584018125123379942004113129790564266556648533254166183317985611095295762632545053127404230818552587081350653116343394579365053325677628694646634772649809655462662413322355124813660698638693156019650899719746773304657165700699127981633493102204463770574266480655828149655680961333718975562408947268831944195221493834301525830165998855748611542664069948921482189447662580802473533698903117920914820732237742342601064402372612890522069756972594924361631453576671422527013573242926538160651764458845900399701883525937530180120076618159228068810956862012188656446452735486431866782791246067185347830367074897175272731738859091261017223470115036901328460860607050754068546675479264161893779693635281814120122574733202824638020516206271009784815167619484311771865873541039484148928198229708634012051729160723898427817839700004387444931281664099404748301571364497934894663627031733265935156401175926536530180221809174445752467583312815977010952374695688222890897915903469029710475929005992597935385735881157482896330964978182298831391926665514866517044777017601311421394579557664138983720700742592900779415084554464412338121695654857877722259126435845184150793931592656850966516301941429435093436979998010285589079987726659561201049022829595594778736411561895702797747231910590744992668817972080030513919388886955397360172611604179263267889579908065668993081867227587822017469401844132384777969006252332352209330909105213144207857346419090794939613071750171521826471665865253866874539246758374853586888462978310403322010169415979834210801662012895542097490588128644773442405289642751404937036490319876452151176307909754135455076519478616878018196707045848184043179052346581776705339271661422197643804044285577369442882791259808770885862523154785870870724657717462166093020478133262448909125932191048254475252228156548470882156878171711082280446889784208687265190266896076093411943536255838071314295637918519670300613048803989747788140770692272830845514176139120670155976610186272621406854595807040139891267805092078468674747466166176773013459899494590375282237239071189468578600397583387518712951261914704826352685197238537537437433217420005441017593725681265883869140232618489852154722913525296916451928879686005803305920201406398940485010898474513164781392902967465130046357743646051086032712485525548689785223385891758967856712753398142319171715460864140817068577810106197227139672619576749137755988798398784207039871631863338429954777810254127537446401649634292903766130259548997060568273858483518018682334658925361059250492990346112874577790853610846224370987895780078794513741080557466080363403760500783049940187558962080593520334018537576351143832331831098844691301287227424754401825605865785306341816195326817513890728208022370756825644163683583406631866371642750800935696717474675355044915871498966169999557719823062367429295277425057760923460510854404980860687674659132465763716636911034352583891899738090132430334631566161211336594157931548515036062975833116774334604187003611082651607726213317827169669235114147128712772581588780555476751719691821756784212216126570393407479259082578840971257580540152484996084848596513177512990446255730668734126302113990229306136737923137445322061998755519800579508534448030439105669095643325752079731076826096224911094633738210785556535096661707041566635401241104418398326779625614517226085731744261192005806010899364784571253054459820107589910009222942358316128801704206295165152787260343389616487154939043349541274307296764359844222702504484181257375250719061580969924622101693750874359510111257929454400922791880923870748862079442137592666990047113695210375311941299447824609144499266424643572261704484243566916437253833522995831048316551406801193330979841341185171443324985544888729664439489763213387954553489823938800987526567628517167150875922924201401770927917234877181985263044869551592774880005724833314340137493553581300506786325292818393287846093718233903391236150643736694281913438284538493460457438983535176228809701025004203970219181364498414643162468708637932379307658624317334129204036962839129420461811753511435406182996636596714990354538509646287857625451687805520186648139109438369215514297184563482324690030629421511654554486187329542096877301281574476956794441911516784821471096998273343386617872925872711683527130922051892892705184679233223300582132755617511038857779756585052505530263627384740837026273343504674562381863646076412227646477869060068712918067073785695274628242585739394573940337631466532154084435874292338398951029025127974606846784865513168664861774770713480090775465585110277649766316019506728169526648642460435037305274569531249964660614148065960350380714323882558642485764686963721167304042640475780297335179883855141631439480721381842842693492411037638544073252251848157093800399662869548580156373064876244346393780000331375544399306872975733611163100389513814407397441532421266414851353076925610480775696095579709881569462182095577586712230784151547686683731981048435872174487804099202704494377581798620296021688834885348882213093620349551970602149498429874200514857326636385631460305032480371733675261744427042442185334213336893027302771641449971337608177927461518979125818853948854128499421415689919822693407141502180361343433269936478252874482677721732305907643612990199366916121167376112893451927052929348869914773615262998306765899421781713841247048851981501243341715118879979458201192084744806276937081856582132907679738417276791588802658384174337176844987860828666043203375967912054949697282608345724417844772003987616585609782237505576782026829276997925740977822050868030272811557616319088424373379739602027234279908806411525608986141065245005518991634268088970479517260678609213837297131442186623183501042564157695088746009477326725796110127222819073651423343966065666035989985256094496890556674983930374058615179835695002796802591718202628310108358731104423494541114549516496506182858684911865966525268781924392600280248944521822045252796511471402132599657738654305896463510056396331357686461066300181416997616831429164299402347298554750451413007965727043021159644019832580389041925872030526353014811753840090263226171966826182025814982937661208501590794513273054916940823239575581615163980851895574553871447474541751164125578132056181466399283189649394801018003944567358468051313747416061954339438086632495055974235407904622730783337822337643073344601138405978144930620144681805656988388497396098978292425333332157647660853657253091458480823141987288862408948329815665648300614760715410931611513403364391460895154457102828048642550294679943490684128810497833340501364479367462701118371525222866594843495877540859350885464003284663536053989012559234269921742902671316456125816546509433754808852371980004626366000930440486416405459666467750730302553047759004642798773285383392753876920161544539635815529668188577212913158772657685505118047801349147117400223529587418707426427920330406998189687980323304043637777195500485678464958360394607970751955651118467886156462835523591152202913769342522666764726819382666013248661417624590204238727753040965100975008686802511950419929290335091606196636493731196656767418952982828402684661964157473048092315265480420733383007151296155800542027856673259341977929354868577615582526540218649872007599843315801501654083476160493270743801358989959816519218351023250501564535677389845942346806805035380508487602483834376073709583227033011423899895516598531497185746890839477008405828116507315218196486125672812385488896547374417500201847069239198059109348187023709773114558574349737653609851474831076942016948005517844373038449499686172950176990001752837231952430716436602171889889937409514704445040438085438023617705844820018733811446432494527845113630269304064016144612667294001594532388691613269887567388851748541880770390797766237282939646239793581665190675184342529348376298380165906697848826624284202127002300875675002901710674422556827188423787815709504576016451384903950279090683263175656492619181622649792585784218234697777990275341883778488152246473972901423448758421031270804640060744023028237308664485283295508398591911694547219643131382587330080753873763688161256574042141410787858239100736730520259830616696092866665012915586499974752234267985704502514129875182410973840198492170898590128565430327658466050590380128560304251784519589781029851830016259360759495742850412893098656402271963577754780842119896579170723436648579760308742814793585291291163253203058286423000631885187277860342168888612173336297912482330257783073134960919207318477607035809794057731586729546600346168925388007085120381855062490694203956274576774455433589203053397320232534585329320193717488344351867615882334329923602947425142411679228014749383429882072547577492072160929165729890586081514812123261698221387066071493773865311689937949762303625061304234623116877506509312844968747549545279623799860816225708284055813541423149147335967154791775200556995515342246043708064518193984524819986408348551522181652814114585282927933012170259481100041304196420988310455603311734453517874859934824535825530786540893382495992107660895436567907574401145934803951386943713593230978845181773098569190392429575279696928667144957921580563699913459457491047410024435140775805734278484904876730411205323111726088984679270551156774371501645294195560346817989063803329382677507475751268538147162504297783364682553554703780057794353457781444343346755868652122495295584879248405274820267383209952121664574904232756834696917327291792888383445515625862966912156912208352446857152265169887052306369051945041639619882313217626917376314498560584414888753578602339154375087447235383521139964496032515427317153887916489285619744530818854628292102003966498984035118830863132000677692388133653497580393282922583602899897658681978548225385081347429881723164831964029310986309342016262092847600758508158071828295041844501482266612182181059242484848711426783325570079387602546859856016657309573305335801267212516209132078284586757405652059127010856050810442197298654303283001391675527719809025286347394546921044209584931991481329348856180946300759494114635474732853440797435412120547614004073267370903721973591378696370702202446495637556570274827394223931343026904080821732261210182342359956495097384834047061870962436788234697804677514125469651471403940841182890770165491789674973765562920220550732341513269756293920311781831532405359343924758719138479186814076857892580095295297351178190351843273064829654432640007081682891062357688982730196864233939631291024437074387280950052108376409047792805023250816721410422008522506591524180678374185502090795916877653712209147658949625204300888677602410906943403197032451238402513116217686866830629944963653078792380567738002235152712092019933694201071841248207298442204356475239871684026549749657841214774358587834880462496165890808375224489490607444995700793488765012299405241204073643318348216135715758660067207702774057828050331049270495842845016934027849963680906505520854547187697974618820654644307828377635765585485379931575418021305949868198556306361844235556536385028663749174004999138544800617913986727275165005675266767077888153179963930645352516948598712542566772986343062388286495228988302135709718638212314649217424385708670241659693169023098558787955332307827125803299060671086287967052260735897535113729984311886461116019607058942597367665604854484880703327508957378072469665606559382719210992257034154758092645874424008815374735833151944519215647417120289861054752237389622816802765594328083355551907136177006662403157574005644454700369374381413006172456271259167784691157475137319391003802463874870715025065598857222774822414453995810455726311659805109515742015983578868110866837962993052747236928055432160759680624980182082778550084088226793319816723138743203682036245552833907072150189458019792755544643778424058384299831909603080672682306497055642842995098921503538850790419199164684456518079431187503593991895788926919269791873905600938009342311036893254527525075569758238465375600878368765613258151787744458376180420866353703432193371519105023707925186321684889110779815100946052641388844282141115071282803832951024287333729811784048401161807351554122714547183279515797795668401921427059122764534805322117271981946819986513584626470427818015216393063172100102755658209953703064414562638331966501824325622217167994210294496026088777028458359510101808130506250170225960958912304816941039038486657416484632083876829555151100329322440914966111603407393353566852157868460956026953733577993933061785870411947321388255052381480052021055633469827142959391623507791113603364976622843648247556538834093512067832379323658051965206155882675478708037302229837463756536999353884407066684185281580600301585886455929549266892329238004413733958218759596135528265820727862447583897759971978078379453493725497369393347884845396726593298452341205632545980590101479409674604685926027022933598596366860292026039179185200104124303429054885975614016392676628318697681914670522686605122749493184562348042420501257492412681186284531665072362607942879056397914384566483339353463295234771125648212692483404297258039860894433539210737061740953450776665027735865834851076979786069742868615452957270360589188614755697648015423895245588315231577157526145201084655723467118045309553929518094591173019883739050059538119071088723962177239207055596798730219313382005828564554016157982371796021377649521183489913021927393232514632211809966015988255355561807714928918144344204990381978336201153517071877299012712903888128962928445756824600837702960357870462040801481773199744539229812272472421153366420622042933812618062431935219968040780685978863545236092703024405295231045118296833849816466194836530282572324228568704294599347829317834222616414853141800690744387158073440409509181167148436508679092225665730756485254507337810876951766666390992008405493286343074700924505862564723829511027095704532234065772459422837655986895628220679562118342729655657891363292538260014443214285825087883439903525783943878018191508398954835223914921414212893989703679036933305798332324281645017211940074988881946642019861209950114723969120091052157036003830253284066003164802671386293450407173093698726881796565666464237023622577306754565876550331796474671029692997245031428158258245340636678150057390066377076147029117976584538437850479432437341696970621025320229972190355217339452776612005278182014920068339240307970087333950162804816835341556158171897118980235339350394970829987594652920098971384621745379687317564056827418658275446335387633286596775957798033083215241867476505755911073183035844953944013814223867759399898145542850256249994612272195639954683254205552561980059465291644746224569703913057961469034266376589201837855377149438418714941760855418844525214319909112486324754579244316064077093847614067780204325798763543729882371365804304983477085345201505546187442184414917307548814857185083636388055297346599304956353377353699531850641511986202028440507681771377124831332388474951529734481301396999465540355064288847035364377070087471186681983618625554477294994277441096124446484171185602570424420305449972624253982548503244952128840627429712928823072112588118948298757339874089430579567935770031100352026431170797685231481671612597209576973798931907074334229244101055821839989725995407171436323368403921842958297729726437620450536763940374057394822452508734544659711923701970903892870578671154684074934625382783730826650826808907635155671233862348751938290531628200307399728202328052856268216965385671062620816546682844440717357161152385815143221745456352014365456803360891422675686399029549859529501188852267556960005150679969116372718875031876291835925876653688795504830901894770456949684155341689519241457632091899578870194218970270917918252511480169690486018859218044432678071583014620428865708746254843576724651852527637800458126366727863537352747249427813102100618496888183592035003762202219874287211851413157031239711710109695527547018215539857988732265502867370362615482940761169540970683875816941759800970662673344220432131056333429660478600263187836494715079295548762968657282591412364506688261125581292194728584074967154085024554047879950256631127176112349094564516532181273507481441614922420492049284582139298777644141227306048573770963899194915154625304571251749549844813147518500193282666245607023306822309149614823793423656566106426953738830816130516844375027065609610842320574541535254373958775834071618358820628284064868329461852441529799735830680493549252623455294150616682455813813666390445930102331868022080077902508215369483150221965310854107658786274146692835216912550912652996499627957016766340644326997109544889845439887161262084839403418009378533356556400576197281071670702008887046551025627261073078155339558549477608528235348737130047932662170910255384952339048966270039962072141470162831615833784122086468420655971716818989567192401708697473464901039612178406821339549554860002640977826124097646642854867780130983992041141286595673760409311928551380495996445913682184653515446585848118743008827430948758282482837448241471520697577822162098602032509234251563608149193936567222993170828779678061871438518475754587328507486813044726716285531237919522352226656442389775806460455216967453776497192551631629994979939706131846822108511092216479646997041610389669200290608083641556533669927674934732986264672030736448522189926724714341595976243694591717352088555211752664461975351280225884981761467833589889482546621184008093558097878264089828071976599549104790712043344991610045047094090397367657669520203465606976736049297043502683952061169294381855521333852829969295364661564533664937163421974874676096993714853571037570024541661257047345903037889435166743111574448991715105215654628519275012685395767949736675400596416976126467343504590687930033920725689098287225651617953336555243063708209337695889410451363556992369545373852024192540608635764460260061753134985448599436845495581505288538578244579868728027487903911681888373359838983484383500599646473718737833998083057232042891517504606649212420359954671562709173207720604684230992411892291235392519679201079605505550749677394334129871130210472602255739007438893581255310040575815550276662963416110643557123719903180456430590761779168912687674464342045774701879203026443411194508123482784993642161694390653276659755255918103394859335366125689900650624837683471353519839663837234965541022859333687698416263689949270680056297508363791650959134989858485624997949109026504861333790200586944595641983017027585498847070985110125205078263333274003113466840873084255462160846447757985134697345979561593005176578819831557092137175289705302572509150942329521977266289966214249688030864164227970439037587483584147722236637364601432063810078637516254299319435304047381716485662061201561301890628271828794308962324265543822032265916011218644549104510927480305619367078050735907297648391819855711335281182943803300340483068802583753220465142859519426478937879968665918647985131435264647734668208157663313071613283965272209391099275783812397958840818109797413121182169441355405056856281795140511479566269992686062497849704089340807759913766657916634380249898591544211668213662777535065755224793966594776532663114674844626278764593838182290585413685732191301922881877083775441882172666181946793975181107179409356671669280611850778192211051881306171732129924235694930680437615884368865164669909311413058966051050419891598131279305252009020206697467710624077488156450166599133680402834192095394786937216632852110585194849964166087417252678809558054788409590635938641907942329865771679048381379946617796277149571986396367133790904753985048088086489615841217492510658222895979489710639501466194525038731479743839625977134306816827342936648652023713757300906100505678974080519020788834017364636196881205111432938060248555164319833530183750333282678345371823298028411614656690015460410645785481602348956475753848835544966260197828776517191137221074771169924602572999685672086428221298345170164942652815897396797551450471752643918158560032463888753317125559866960005492235795439765948925465325286870845295223454204374677830432692911776447498216350816232915728396895628850364888341154971537009638195935078681593060501916726046529005149010667191248497816062679437417352859710456619910729761327595389226742038961532046205976717687047693947225929615985632593361216697420626939193171594802793554294430086159014812608741948281561118673305905610650355670655747294429984486613953552421173985327551120491383608815734742297736946058594192947354197991539895966866604995216490916725222468051451087267645982482713838383709624892264081362209175883944349088702119204706371036160016627826239197906663440523701348340917766673687973912221481612083991769708857774498040814197630737699245719455513804641155325939702299586783688362189459588442238027812022359475204635488374449332073895285366386021487738329961763440620688865651323581175524210047990997600301107064520416335173716194575633592673502383451252508345206269157653462237627594996323201043805666997689824092483697345076385196921868929143873180111996375505026358366832867948157905099310591997178197111287239368294547820033546168155285753103888464054841784413530886624004526734458580796251569918320070554463864040341618560193015407736146420772135602010036982428745719614455104711703695221656146966838927878236056618557987433161711131412394733896172521360194850004585645951738837635187530760511263600456130544757713269442778601645627934700092662259103502811497371593614465291965984586732987438893160406666501336777924730838646067015791177564909423974689736359757341318513411203916556720747590914165741845022619907530802978251682382796849651811599693894397375590695188483381426978469865351866986182824622502612261688577810843313405366066947311452969189296929560945258066669744306285421376776056074650023908555206111341895320496975636982043066459393923243115205470423693486148691555827892976827759136816564742764964699544869536999341691872056985815247876445297279454923757801072909127166452671022216235889302949897839174025003871687306894605932905107692112432309687509791718536550133002420934893891798382772985710444071015014565558466443212027024742175145705012578963664473200575921732260937565653580424933009651773959270068072521329082131523577776894047003542905098817662731590526502250209272186105583482863335048432470416321257834111676564289175416661931006199796498495982215966008306732544307549325522886369774605994110124776822770002335821235024855239808283433091333706700983451922414332695328548252028273306467592173515506354357770939441351322388076850214745918184056474988738229199319836638627018569171315723036695889251700816088723703897304437312482724855025626579385705509593568531034092037313658312116847061000558385283334978931932199018790403388286198349265909976959590648860062403946551295777497930121972796516683257827484801654286490373944395236499162332933971833619516705429842941836616358746482024082217668287476864263992728941638557395950888905847384855048602050006601572380131449235097342416808464232925407439688530887956514185096090350465768552959757682111932200388156068160809807773934550587234858798839618509208120359880356388763162090656554738298975439806629355631272659318973032216961295276048039612920442089255184667757136516729773236375083795225345190028269837625655436607709079117782145126950826645169121423606858376293398365547898112230687611747448935422236058642609891925976234580730112223909303960798923778263574413437548359898664754106350758090058712850312384636957003248919105984135928656527006233988693920364925300772804096197702514770371796954939449843510112768964595081622931738180308501376148795361250111176919311200276388907177608522234897132162684231627165312217161928726647555642888645843154802374722391464232060288881068103749683439299495876682964087712602261382927283352255614587720904042355718504426037428866962942669956149942931930849049800365991254088770790937258566358199051803752743591458123928671112621096232922884574015100845768859204504183397045392185036102800918149900148068253708139149817937470774682349529995008907873665754486421829769664679431637310155791439577477438755900093407571772624627096180540285853547506720771238058666666514686734739984035396628372659629957394828042614761736673240277037589772314271833802934494085684148288381528756696867013747429881433316047654351751119329635094770948357183363859957397695839996733919213916616830378011764517391229149696462696951691028259548163931218430106174617629243694277197695602003772769510988826856829449513952882975682686132477559794548926920237042694229204685724387784864095664532138330515704339848451670125534252455815478174797998012050100508301262349545512988661710289369753074722801811024534002989992506697318207645708951175717365571773258506722709821531170695474410415013105063566452600388171487515555629521332442416283899025016280314981130118008043721734490670226800719685722127948909412842006168062337395486193991975133364263542016300884038512108737916745302263606067398110686851725202163319689060657255547009849327463395867491977099395333548049413482608890512818182303035270500199393300883511838544140658250741567427750980586521854484136234766638657819670971052221475681212492762738154708248973071576351465489518296966509052905452845526047007116251028136467233538967621631132977672204840447642580949027556222058930061782515037458378618315833266740489097202593482161330445903631983386812066793109568450090367125955630453339226537994117761039006191159770941402150475105714521641849666981540156125116228997464330417845409421607766103731968254733155727710870117960487226809076009444510975355416178568149507177475783140650088850842217843041433888385534349922106871044360318352771331781719994800201587602743592814230168762686642756158229465101834645955891629160605650375923575330336135742367366905608572596226293824668297384085354931551048690224090566606454933686976091156872177974087546246175704871972270356768814671324930449227641032040424528544382300331529457484041488745897736130539989687321352851206550967611209434192216153025846330431050975184016700355262394734912062274252790803752601544417618737595387384935012271170587278896711895351241584847985266079092603368758568292887848393751355772800210437191591248333976908817437691149021235481545869740128714607145566382341907465536476325764316858027719089004891441275307382077755032005591107186666686690005843085784565536156453116957252230837859838581895785688376355178832900535045314175503800948518541493705994183203417534664700707748819380510345834277247981109272205971123232132449648602820805530355900043799765909507303570916167531091652022830593934086939790732094983085482635330049677162314528462305887977028753950771692135167393917068397172835223016037028904607413443935974289337137628585579984064268485533713106704011816177616450394472416399299710368317091759043794212372255811171028656252553595779719178315744170168188795492606682952264242404863767526057444118498126542366599893538708558393164490876491086883109675399474056286935281642249250271809179157554360826376601325745701307346030753493193988967631303392631145235997833603932671201962708713914117350264181587045179293237422219186953797224570025871062678866784178430714891045285823775663710909040095030536094195465374037229972640822172250303921970732377013426123674863761742663621279638894676400516075536608784378443544735854791157794579335093142422711302379748317073941010925755937552697282381880332435578183851865230113411160880146481856629200417377483408870822113708487853381478047868679704571302331886584873561082220666343518870762541968225445023461143454390865996239258610920429853973870198186854816031502529214152826616269184656089169557532721993712141034050611199665409984759064625469566800691969109702357430324397313162727136227312373854672706248752610818860009044855648297817431249313906620142284655495736012921782592406591606817990327828721983579078553280801673645607470963123267917716426680522712947217193185106492393113410742658466668154402561324068051262727601034569571082542798732038705028611313228205627618485516546976330430904484065655376927568594159288008371089826117029327341653901948424416270583477732480742900101454795829791779201397768714498931540100009687956405815525645126403083332471808371868592784332770012392086871637070207214468355764443149245342667574211843064541471222191938593420211897703058075418689088410838754381010595225580762391765335169851594272733682186713990469611436083733660367079703512270910366300048176066610015803332014306924484618535163088055882135805972823487154476617354628634661983110453269690787399456968994985010695841513041903580801501612479760251610493016273045597696121432614208165659026891806697705501336497842815616918097367440450054558835076163354128042623231814392618393942851137838013908260765338620589680765504584514558003420602469211226446544051295101633119314481585963730299489908563538455911075467520922990183177176670770050846974377788661887140877594067773742927742206702043030641547099169416715879077701164270455491369274781899546245310036889442688173921107095237068043766297934159511321850331367726230748894394539129850049352259844754802936343179354959365014466990333763485806766116061441478307313574840133315789632521455500937950901931602836620449488765993401875378758644347079269505607898630840096714000813267921855481499654606713367263881428378867925890109059630491276805476186157711124661087512063453884836415263297989306956030834013037155389223734798198827159811510233719273836246995162547254445388794730907097185611921005816168149830845111763206645815534183799733539932920458519645721233873704223667828830056589215554366800900857907741777816005730762563233841712084999725539929248702345227663091462054950189503884791140710453135033977024041342608161822408190089851292032981014284838402004652702987622048086914827590442058725561789725200622727116379875485262871603860536358522843899537233580821711935751560385481520656339894575415254879069455309194851494282390216669129927082879900441804580140235537486526376156262945110158601428384756569325383510197273919986890185474838197101507795060591821166901253976117385582842793072459770254571815205203930399877347400079488529866570465985125102325660244472520439871946132544904464227775173250458276071820207037728285848479859192215255033675829311821304922788973931344625763639991296116522432689757053971186352643571101951623431993578458176567257634493280158408230711108915038952568315670396993521383936160450156575034183219497997097051550109061737602297322683962907538416407537593923429783468608165667960000798053255285151378394831881910787690524579976942773032141968326729764898921677159084762332264655707691288551380347894019037747110770835883149384184641129547992192254174581456870793678648497767858026666382767218393088130322177407685198544076220674806918436195678268004121331338311264257363601755214013557039511536704969167497796963359118247624504744409101968339525454509605756325200741431568093553730228752539883288476381064242997899228483460246798390628827678661430541090834643751878277743086637639561064889436002027711779143586545039791284087111235982962503419384464430481075834790089589516388514617793745410075413301502875549496117186088257858325905345363585049833527589440727698556379856684270932474823898596861056062279466140842230417651461619029656590078955915301480413027402214935280575787966233722979391056944289558678745996108321809336136199533157374123610192723021116811168200240840165058315694628745192818399809026700650089941502319175485931063926839239040631147948607155608085450821991879154886386333941934000184440822222092513407853597924661639317925157780656326768140542160883413935949329776023968910419276841596837876350432865795675822329945926339356077623083324309490740718025346961124229809894580546429723864042414726368440468483095203634655417492342904831410021796771107596342638898065532229854169970502815838582186174559700566265745888870610878566973160448234932411214663139369204315551110347888495696502848613650772151306608607444185426010976591411924438812058823880832089550620528900152667304023345855241998081663327970325922461240605634876321447670101000074627798325075824803703168940898834666218591661935111344086795378738359644561310915036886899298215582252989948103455088417993739692599104114711449259854710149442709811016373516597971299936481963661084000685460283958727946908322431735423604337175288626140383627422785713178283647518235857202760819527930750326151666305827903792808443808082897313185089063177319215679047545636138417032806695715108742623398293882533768870426512596062680854404106219167975119824326122565501077430124383771795706547491441053901893965872912180433217991574241889089781274135014015571929709317616255420798706055838535794592912093997236864412360290695173591127723634589845517050636762695402246978928043149091322299337159007606571506495743977307736034113354120981663395992129427525505942207442627795542902989415546453346650783899292203464360335003562146834792782811996385069055986161797564163937373107560333959931568281667483957535315051897841792174806625795370523738159143715444785593159143395951811837601098152725133174916096203389399220115859572748897369751796694406558565615246516128607260643381927278372521205418029840954227843892116200968757531267256247348786375728921427490562327311320713096709215213792392842948690371658668895793250245949873021290708380390719822151903076766288594991754070667136767194961302775716610014076525762109667690681237788915519661909069385225691179904707735349668381920153754629611131873104122261861278413719232721079663393835639455663255302948748092420770907215390543629741672805612919487261113152061824160480003704020393231404260766520203541126814911351547128141705037693933393259154612846203647276828570052562838873804680079024825495085054043814305452907246523294737163035925924804090179182978733767017967075705406217557737708249857709007422219178757586318586588176835798251338484536624572024874199696040929277154870393222847269450432158529041732551137228161206834976483342999674137026246056965084653739212362460168647753077137755641223087314103711685530913530991096996003358355580760201964388568020145093668528021158883164489395000202651580710171412496881044284065163390599420674881260463616485445781007172009607269720832509442572872459681063274538482936630194174367741944541962904563990888509351074466883957791432176684865284218906406850612488988064445760563239275492846461719853908138055493740490955896430940058625723458898403022126869409108024089331464085893656312360713852701157545722120896353099404142103115229106124224274129434704052460074978094604860170819501087142601377815213533283438382379865339764147918252751874673081778191191447720676673628025670992994954397023671794628615821050973803671810058311356934912692489347505607764585405419193723810729396576372369237041762000807862664147353151598176378252198986351706025238864106185109855859815792294884883709369494054553955419155675025547004014659967567658970996221627108659924893412253483737972872877795510732101977090805701706599606757555651958539143453803523342725963166539002716090148789729347073391212446579176982726514034210926291626024620316207737781657902867504631762405846841785755578925332191849239158752507341901023915323415952808720280083822568178922778979924128262014749812302169601355972766726395546866672274147071921843575467105452933816184123028124620224653325726258933481079227747240311613920189908965501665196076699835629658051650636694973217753023726652992683470135329320497746147601960616312687098586027724229704876141669734339585173243509758776388904747074462071903665869562214590291241672397737744958570562891591889308584541738933608606987955672794313800259160570038967596323029839964329918292427864566377156447235856801347769981310181827442454056569532449596380395938461540426573940165143254526374990098924294503644183924241292417043313762976598263127661992437213093690083928643556582480659497619613245495814980292491332201238954718640679718510743836980945659508172698451739436889955806336238190705435096147378440522232143681424847581138900907706339539994971596023095318540178159487233394311832686203073361756626086780058777320520721483638293902407416527202543789686114331161705923304799849353274242262524847890869748576044479692169725868965075683733517940530587272406371152108389295907370737009765564139982382328458010796749183272444504822737705022829203045457537934812672792715191998559784947349695961833864581562976373029969363779990604397551124042683967051591158531671442452263909781617310842643869712282277386045614923823902032827294937148706447138714980919162833975809086100595306676562189759666266531624577362593597439315096979262787664458521497246979893393411858710952664237125058926114370148673458217895616239174713650525940465586976506196389302416704678814863855868008750284349351792338183910416400780151748502625758533339903273387266116457640953562091166130897889879793576704351640510295473019701899533997961534860791338685006577731208189447804651268506931652794555398403398791709782075082535329536868026613191648230775929570875348893524652520432168767551276393283938607865564737088491558436095101116088576026287868198480170997991801856394938388566481838382327721779914241872386554082201694597737285687293655959606521544187839530707699000113723300979954162985119728467315200307864289607039137019952456734439456619008315306510572665432682177439555125399018071227660412138707682459360704127053657169405891458546600694968698961648487326963794013363074276549968054260187771928534333217719190213211219836877031184744481442923078018533937372471414409977993474765282132882567372733535948595913878555622458583842035985467072641884299169171993131692944013427632789251658883914330823464303616599405806230071368401896197605068764605029207961455986524893248215526304620132061053359776389437898501430618988467477099467200221209034809769616239474950076658198691933662608981941684397443640380167286384268030372961527086376681139144302970653285481497363424977319975342546056444327583221642899920977765051463727204410124577762346398634387938908130279653704247021866486137027703782280532693595348014599472524432539100651930553322276141756608338579086185345654487110804148751674563862825565494692590991722293110546820030938776828462510909946047389487285617597195765899154328796595262655785411399153902021941288013046691925061279289849111928513701436053130541597729677208992548335923130885148414507042250435573855614159037575652157826094952527747888878937432515404149932543789938230470304768253552071765685341313013495440293284166267814265266746306038364729864455913539014703182941004886790041210620885595646637226271787864690903040529806682126887730650798543646955944313036411897719042665564678859332542128432855400563107340274936572249144047027462150685978464073450084638081275471194946779015737144881021666503605957521405934046884074609612225816852806019592012432273140990045357831513517166821217669681200729438853830268540228462564462417128797922035798787638560030863869896483963206684624782843005742832310331825164901231678978977592143865797992899503175045042287251304795566855854131059298157780613028579039697712822625743098534689832651439021202541595181661136254090663181634507801183572298178635237877129060060929363680005869950498775842855499611668750814466336097853349622074756421512817940895755208068369632825077461585918750160055929702117790564712217010322422354728515376488079216238346740483424343909053159791482017536533078339707819224078386711842169470858444282207704147901407593637487882671513561579485858583595512468203335150668315749938150665160401596253163048507678966186849404624893525806188712985406741737736728018423119812442192869895083880961296372184836869814985032839830149875597776433889976891040879541003731461116174911170466464123669919668540659282004772779956770094507149004625731208942418278060665316319272266277600863945216975753120270001136570602318460157423634847602299057643747243818115653798792535809763664087183587019879352499016131696733163144939848994294430510519339020567066436488537485578210957624940258464611994551066960805354977059507020719378884977142635508982909162435718378449801688960997984817335234808228473612211498780307751218920332545835200007959878719940515531251636101730357112616188763130337493374155141198667250239576802755652291482053085740095880049303902719512350181198922926048588634114823477994199854039630193738697606162780076512052825060134969517606470199558330687266006585780127170481660180018809175325832269766075267390212473989511992534015594196069776142171315924004837856773828604720155158068748831473899796114394626797652576004201834891300325631263252806050801960030412288299545867632115219768294834727546872725647381431679937485521161086075715609134574056114976674872144950506909624860613791024147468499841824805488958039237279015228618918796643940202519839322485981335718430651090253235418898637071092363618377730823645141179839520634303298986256210307985432398911386285732486914347640056000721998076983748685953866376135118491758239698028366197362495564202335091716228471583338148970293069344795425660953841700592753447245872645192386925535649584573029411998192975203908659658262284859522810256877190106518893678661199713095702996313891996887529193365182416377614289380902105728929341373494270614460970075950247920532555314898007520519722138423912090454608276686182356709838188107552497735456823857855296993008234386641984815974549741507302813849882362211490955644521089547290825607660156033965595814042649649362480743742450601161332381768463153858372782940138756347113435463095685429204767455429135664850199340297481681915894678728724425846459710603180360058298505675714844281863231576272494444098536195792438980253891260119792872827363020527452905687121191957185471307716236661375558086280139940112504767920401983801223636228210283005973691420774629967338406194489767078464845066540399298247981022726469622962563964132572001955037518993729442650108617423897404757502989016452914826430700565174228213637654650243920552014743337466339406753747583431465467492542189920578901909267866538104434096877391594012094488367997465213567514057294846611667464030840781617756720560035408207355755818775507622035926095553920209095914526358191919544563853574075499147635719694983104213305682775289058831378537703182324862718268304733101943670746084423710546813997093230818303678963470524689501687972437112661840986107096238729770263301899874304472700765990542429542120357190852496021898675158377992432524426121465442229087606951445686024265480976108651857059618553403514378581419219942257047464414414826720286460860725080424438364471020161976968150057948153503385544008086111989759432011640002872170403998990081121964736828958182158020803337325899830079401691282961967541008223426734752183540391396492586163183668157848036028213301718176543744251147384952647194892149359691718917172053557882894286820872180942399597784051785682106738120859938859392304815846195633118437494684263519276321040287354458459639451386690528686627020572354385811932067539226805448256612313342936638445930768749163310556013357728044148101460473100171535858958279773198584358705949618734448583560212226238938794119231546745410029549158422843291519014334930822198445488498191618930320731211855665220592245241860798938960498226806384670734545969487295964233937215070246881780572023898889843896843947773733499434290117711993545518620187902862708566478678826260067809432052540405698406005308733126637010118618712027631571710540226013161104096658712326895735215073106848239877071078825631429792722671437819672233954430178048906533697269836337450185912267939601156488419418655760205738328437184082224392871979681628451324454888449621983649151262187380673979039803509641515079833691707559497438294854513037826422752166685162963383040292023015560048079137329246297908133906118904559036773971344130900118890945469395141715274402256046989454090620798025438516924546829813457088920078137862670986898344819537555651605800814302407384607691653175032785799893737020504658154419249435157627569950720919329024021680081875831826099523429974611030513562535572287194862705641926193793157149382055354016556110742314427425004474848767512687213162270834137925947554931417180088492109105239049079165994537020854973506349147297721433719046870072283897767191905825218944963253120619172854005773839533986418396191676743299367524283938247032693372492279465134891383067928101169011132705289224538677384933375942664179458454474712227152962180207435654871416562917000855438968103656260568669608260997157062909842569965621405633685356612496626177393699202440581043803242990195917001142624810219469538321504145969668206712069630793674926126126488568288769044611513905327651216013241570776250569660386304420712845085971341740929790815011939000297683925886673721342225410017369122157501537517645284807812824108130112632377347262992645569451974513315255871346247846008067478817378841230357689050081919597921888608231021080825635592749011814351246945294919520423802544141863348197213234291341827435217488300796535457298495872232375173137274193335114514150459294350059985996797550567880394601950527098594962865423928494752354946325423021008409157732211308050585594709152892592177439648275528680485756758361498380241519820893558740742903340812152584830061844927489844716659752323696931311823229117381256200294628251828452398249015615839282096345466256047444705603227476357910046536743225612834621731700740601085079473747480769023232680248871095343037540937819719334894856475890642368732114090730731602573296615952201293879320267165887844272378613540243275585182383314088566544703222069781542201823925152052615430878445558356984923839677757389495206403846395358813880004735522336356917146410667649523808233951999596848632104549328378580143796067358430692498155459867923180178221555248513822675543213050968251329940630960108297900639897993905538655787278534334442042492362139053154181232747995741401394557339914123000093570066202014332668369881344639429114083787613852938760448069828480107961827909576467349091697898077103822299321537634218107823528103906931960200330967607039946955866807897323606110142555408718105250454430875139167899132209280684320404102945944617088827552727063984615709325001635544720570033241314819279023835165554213640910200833245611989914040143542362578576160793125998038923731000638929843644676461862503449715330257323949965413401483771956726809965927157203167880291908890588457575847526445661278571120965026581951090101256517834549136874982833326576989553491764461443466159651640037397734378933105412853901433312220453144643487360925199591987839672288720411845233866875517700856572793258651171597110019205273119102121248287361788828627311724989399322069269973386038319545288642465220331799381731760060897402188732327008417605942470261404498071005789170790012763811766117308158490590910941878578127685323140282266299805920915630812394743366910196522236053324568088000116882902893454024632362964265585735065001567833734948420931438783058487471793192238421797481258047570043998273452771585849092156169333167494668064985182589682763992399126759832299710640313412092754801304809126663523713647424178702565402812869127800067445689429711095007576960988779257960317240632049708591386881121828496395177201429426662238210713207750460445396367108930167615851621751754271429948416455953512661408250121609098355673146361562937636691545219088339149030960327522533516335815549440490845616206562507880118470092237564167507214292568580714763312028392690819905151963936108300720279054132807631495004866797766588508470217458839980266477661349867683623101482278201631758343040669910165461784778922626330685468952812740807148876990205131431585817489848177833628353537085607987018174060446034687943757633235575318180474577491283822121012308304961774666959111809363001065262216668433206924081636836093061123701507365360162282147606392534031186839416805520230261449325173765203373469721365778667868493000203182125364676462399922634596590394317733777533269352285932907518932729962752236387357681961446877022112061360329791860660910651594505394860155757820423327948337110107172168052141193194702521060124370178736146768193380242946866218665914661342114979546013849343780177893326758380387936115935041615505342202289125474218468964986746670308051852992051446548712142871770512777070098647414137494095353617375147200166926339551366417349430052832836809469487387971743052081365634263720967662023627772057832582047865255973201976168748739556067634184147886940264978418530211574745902635701074260340287144884543122133696679982074645187360318737973720031541163244194583837041246330410277663026835568379132068499997460295939038012376657955848172484622895775700635779950037199251997588956774167686215890588466604794372200840983926393925335465889120080085607847772229200418012241445426092427810687579817272641727415726773519882152138992665889836490973950423173084811729124619926124037038409310954577757743757346633474224792598844425993639358319577721606549446291710069475443485752248189968123007556153523752351329309952215038624137503125560867783219339012827369187578093143950351295136776148962867909238241115889281305829198439366815878271878070268727177384245041638397529631906290558980113961570265003581832150411153325683428590904229120808444893948607235799600211425605666932141617594256749235166281320514245832696490630288542638722104184998699928727009889435824998787184511089429023566131495248178326223610785015056569358449148707855902859543240404554696687651518840955589014312205419891629657327628184115893326038386287284491339977781767163046098217128279360237730624388416999421891517904147624836565025524041928317957308951214295725291289547109119138660009288494157724944235388829756878046088504162251360697645759772022358358410473704535526989436686146461138935880727520403197535706441545140044569818048891336279790486260503666301595705569952442524752951958625397490372190815574965592011851874423774818131782763352563473503579899550669705684599392500803874126352228818916732991286660801700019791793894108192025892816826537047090735400089149536634186675734415538230574340414457545665505912813833439838339033743620653641353729019316407345765958936157188015436982451740770754699494169839611381296380547554666344191209163355991380733693046529564344575594147682814032036346096776120448285178005778421149118529451714315285979488557207112273133281785683380495508183690322799637123001308359394445415439506346347149323799082312756858316683093982610172765024190340389410367979202100424000660493898497407497393862633699139605693766642913927208033395877941442386305836030083941939409015598160211495007740134776759272293225650308594547604706756168327838770832775838225734736069932921844345525213540181714869149024004825773766278185872900541742353338805994141088416011030445447765301248006050788003540688107944268399091231594359638630959621573671074505222057254038054269780689915871122077518936027179094478676831419235747022012556308886187397893500951989319114806078282419158119873055120059922501749456047285446305018009014683451725723222306936963529620409474779192907192830001496014583577851241661652916511078929257015721838896508604014729151154704979372908425438787287449648120640687332269979814445990965740131071842788932768706902164125938030168137949080489528263462057195293958384040822875031284201601142381506716023412545532665766509495361293420243730760246322060897029818755365003214230997607487011525686955746523112946926105011811742966835237625526207327448213205366961064048150146189083081625105578067317342279189094147819176005685140456043175988858675873048133180759653914857752327707908021403601832102911757236890406246303509823324551303508148232138634782388447702194128569986633717946033686781217335461225577422618536974996954063222898495917343112799716372320938167373363627574130738069148277793576209229756442502951801597455626172300810913103640490824468625545548697188217329212496393329426096348476534417540640732916147526483129796505233905797975802183587797248441051440710875612436659938560611500731343530072257035496645280362611218138694657226333882011377124033251917532107669231620160633601460381759867997488676496815971214427971788924861106521039874918794442700665513291985564790858655057215805592038840440645980825065768016786226333179069767231279199501982543079742578952883504798688480511190057535791691528887668224425292618940211008837628337910595141523724471101210522642178895852131411953986502687214042637653690583744792426529907541736074077585324184220814684389295953841919531150949832218577924035514387759085968165633470451176266072579557085744604450507875357924847013572068304091309177010808676362110985413565449842198916277620808316508544276305675734187407411317770676845287121292858362305520205158802500805669001407279011050924025382975707850295832039907838369415771821298616168042683237931087769446673456392174267664138951990701675312595520707976561576300498204791126845403153912567281907826558932941832008665603201635612959887722436297063848049093390929846571845480444893378396154100449227096580122167265561145322263219842693459227459845480240014624173591393476746333331223869481531118869740980507048601079815140437636750802818879797565970350417702917842287732088885422375826370051137194688122308913034288731074141079027001552405639695136038047987005791886720718268081669515656615925132020314739409717745240502559747305332795712819423962782598671330549378317325515810045795138003142592055928327948540340102602834806699379251425705109518261954438183157368275970227570230721030014834574587553962794963468739699085683947960630216336312319223129738658201600294026095556711813357705869696438262967749910820414009960194775738931893244800595260537466865066505945242358266991624989732241445084404818188061341876957911890812308401308734192996027807079608075258440568226404760250291542363730830620014651872442855307643619914651676627344453670131197567046529890408068411698673205965114167789999731750065214967367104140751504188820542511687286220897630521668681714136876062797089755831398612948299960506783587681925675485538089206156263519731484707546898503976583077477126394548581873580979705006107922834919017015750074546820217011705909660452098046938108128433839471554114502790940354960582537861404276513233249490715518833033571890739734742339647122532377832304063872844745389853131763457657863713948379876930625693131748966743360795296966217709929368369695713175566056036777712690574278619483833236161535259926190783935769618902118475031480984380213835539513942835351025396650378751614563011030111494257224569911066723123531924592580226758678402788202265900101109220380364782883334103709202456095403841955286413142057227582814150933549340014130929374526080072608706884180816316183512153870618274602848299026741633049567476451605843144313196241900355738924105142624138112344577234658931072285572571211150410380484621109096555451586903350734258771725643832273767317201672347120874199665545743759007052102571398976084038174425736330376564603240350693995661769292740040887834147737465977013553041048325798894509027919415714433339939312775636481126455963410594870542056363191403252572406953277934793271492050100799432907971223887373686886114387395924562570428353944188923051212221670508649612981178310756249912771486053719035953977774223389879121165848017687259093902595875586621448525434344713427211800632921684839243168438904914341562088327822250937648659805014386021761992464178983773138182693515672082078297608908175842371553849736164746226433668045907686043156868241240381449182382676869481244333309203587870341702660376179334351824900021098187538026799701488797482346280977652256467997368725210500783414583622846817137830827132299357177153860217815807394579797516185643580727977292592186448213993063947052776832494104555611603331405684804636306192115865239293989398550682337553671259303338428279051307272609131314396688555354443327533114619329248028064624129420842604817278245353413382250308626165692307917924512655688931482379550767921918812059888184357719024752911433488843245559565752635965295579848394756974109696286847292022909329667146866378402252148290330042743864314538692382651543869920248373567317636103807756159270561956260606542710529096965795816496562829755728873565609504060475908945990035705411592809261261526093094167900774347005174681917789811472596206259586330796501880390895993517217036583491493201955352906165666867491678885897672878531086012110137784407857504073506301704570343322568415296724775618347091325008321098996086634051195763435162160654317053371687408763347963176752653318943040717557636260322218050514211077728422073861008837165588252048072001733229808812681735393248637469131906888483951328696347962437599356258132206266868617275008807693676100288528965599555860488957316098846129155884470264935738282451813481277046009916897828451117766263984498653573288760620524612777317585780874398966318026208200832384675345459296860861686932948711081264241140815670164391048368490255046385994647917983163765633192502101709998644683856636504798376907643570694717107443532391114694360807229709698874821445295049082851415357871518800392749037351510411396885869029741809005550884288497209493368486658112853867605693389251228468363068194115488125658212014096071007793850560434307027707633311154289352469996518221008931871551145783452675610708072261209898609386657701319012868297058414470660472023591320051903301611433916709227391891371452088442098140598251879226231662700186343104202464906533801942727034459528145302308966571023568395697522492077257076532273585474453718023750771466343037774419330925398831618902029929574893729350787583072150989309546981818383379984429880499699099317102078831004340398563727769060494578344092036010431676846414383455520455825837313038883834751860320962778633158329093373733586313901869449765395215126517610450730156115591500630406217816556512141774204721933221273351166552891375521583693488825385169688301808162180620455944633268908254543764391673382826420807288811818807702302343090696941600080769514161822976281468487992466577072686880626566729665077344964808093192714921751962912263745153694858248990438988847990492373018342294235163718582477545221380450017867728561166116170035552560556340892758518318792726966418953194233628189895958125630696246854693383680777426550409849062196319337821685025346009148393233860173510097679455035291069180701554535483942774634730561881163027675598971807805567487976462397297714574166538935364012905864500329941923282093392076523345477890717431874812926438038045360730570288195191739945975578639118317494375245084832616623953945387170264815563523295835509191952757603082084974844238773370656488941970703748424339347370180665283067372686957966920157445893959669706727521919082477714821323314647661265935887533701282826746631184005467123455188123512491618994481769452834243579698669011700041253909219624059623314982385450993554439447026924199179510855849989738745745154906188558535960716945735193967026164790482760335556589965856773364143119262146151774256424969978440059399658531874775072361526592820031775405088991353490442489378551564498283299024088543419490118674672032679559941238969392141661396360269423727194591277103224083116529586293343281598267867590820521798035912553224785536624364461502615525652399758937655580261121036069845346709147187248182203943962124097524265986977608643733326603198407575462459333768160295215544434487275295141154082377469087334374096105379022503888154143335158656315395896593004892910154623519149728043109384986036919845319217322953738004140274792157108848227095140912679837959229302800799733391972237560330886654497735868852699751601965969789989636310111791425594401825037875227231854306327653964758050346076422618964049972146691837628245415881471236570371407656686683248223352556064239666517228098240531030632554985931598180569033794182354472134749528546184906608059308805785716310443489954324519111749139667361097088249484155629455260257856110610726798696023177282614815131438183399425366656016235177749477796897676985192800506343247132840006241482980517785285012090763053006390712660377023545886834601927733017814540837265217208798204942334933361970915849458237130720460090916098441847665473349180903456826440668757093515556434190498175768261241418047715952727453714586248348543684992870795942550932909565517744421979305157713497660021851253190064611971352887220682935651800223377412422080204930165974081521270645953909254424344134422772337824248932327347046331823720742450188689269361469761339869072879703921332474933127303424580111614707161757805776567270841159929078488435060750767896898704051392280727277715439618329404171755890899444188220147480038376761441835836530053962827204703020612471215771022699556484505561196833249276073064854311947464436916784401454440169750478031878233260422160391191345292583870209791398333650524375472396277602004662288740421119814456012074784151647307999913592364310850661205935390595556497861103183014197472531267523337582075299726439474322076789183891800481094630853913886283857050284877125843568083822656099635469989568929380195890165000004601837032761872418364248285313947364731832217543136129421118616507210108828431528564405521007831874054260778213898758926272998206863500677844474897136235760846717170405728297635688931079721235087374318984478809980960765193284995697891510405523539959977962925470427172792356690351420943070922265283133408142398231150895337514858834681366031785293285047589539640799421786913699781359086249776503014597320920488966644750216502648108932014390808662954250225158893436259052175741109043228808135272075385884635549304728185657916774290377049137931817608702671213610234551200644296874064647301301356842717846161498195977027293836368504327930969862553090591090643039977195106015710916415712575268573143188168751036723271158736135357002033047317507743542464930744595431521654619447735636997446292827589491356561950643974939089010488278839749522412190694578495219823678163114617861948940287886847484643591834352200308613358493239382305096936575859131815118776462361882167170788284507079120251632393694769699023280896316691090880396868515738875597826313798441077717127936118608045252836635949636840070779957910252211482348467681690246477993415200765186743568969932070697700469002844393802300519545314732245347891756137905620550919418008944974530570231979622391106128006449868503509714529796711924885916701437050721835491234300353765156468468745056536937121398312368842761377339130036516109844905275785833320283861155282037837599963513089543156714615106498713935163470435775908087688938521928882549301327103429375979891954216789793785609150288057199090883217721416675715037362012741654417801501981025069862638734864891309248496723558638114337340047250909943672019285249425501719373038099913101758383626539446428174418281654165555812450097289533760062211916325680999379861763342794627470568216239384065596213095908274168109190516906194506333970637801603297291439560282950250776515613121586087111163210715967795291775531339196433507457041824289260414754228875921297136498797310655234250249607214897007563878251065130810929182166267302158015843805288129666563643390953409323186209797665555968488424141411851736446406756087387164523081922161361240102464442774863813126909694812279042141754889522737982520359729853649448984915666948312283275907534792035939137262610638942037256649000845767998189557556905095040128572173260619740093670249598759986626914309742532315194804844432052847660278195541753006167500947104770371232769281852951042485652113232363303372838091491737644634700929129098013126050784163472548050315016533417356111517684822531437575010049281309124938735239203906890208559988395347890656588403898936921688073165531618846217129866085834744832619424736928574511731009026568711307871896681927876376321487814735213502251338847301621523097265682108850159283902042662643520002832401653706556750561321017138566830429236282261408088261195246413334144978828532191358146246523814508567056714951081834301152363087545760120509242643703770989701363005783640499853544159868962616189742794928307236427698523666933978310751396050696294233130683973146705070091088904934706198301458466594596072085242299316109896132149656798549300479133088233665883230118828336545451014070563782227743022858890739858043220885875332048776146390479496918476725628867997534163237686042106604543120801235549360896517591119406641311627469334565240703801701832754587865210267319908392825764209451743039808048056583272376112103760635704193704795378302090933894118351298531161632983089509930820412315828556300193809920612018374931148356275438936556798280505094445006741303463816401848365480967958417599482861777938485929243592416318064035414106627556366331901588540850413488211563293702392865580058265438100163553647726946732924311514327307003357368615055149014627181665882884875099310262430381506472502241827102548613370370775020733899180174830446976492053418977797485129359891038541706509680993978690749171802562984056799800692803813717217373947822692904151334682975586361775358933746187615384308648834135721557701622581492424939549545451601435464098738796393171823864705535518110541676563668508460427485803201590532056414637905859744381378106042187073259838993193256818537649787732959261002881662455491866501917309284018792477399512724513666958295286970305469265816929648240245147081613158293915214299809016168803528412112723019797769695386964546952587009902696361957468612030549901650442337027896985242113579590215558476140370932830690165797362750127452757979137943921758480261363168246493420128802971000907427192640024236122193021159446401254319373933820629733957632538305904921861683887729797876431969310558477811109471305793694287296656651848786476657235779425897161836151884121815809398076474531606303595345786111521991735770359180756590120415857020133370590277214270054930707906007543493161862016888551464795020246613600688451978731297231980000518271343953733581850649157868705742130917801199488060037936286895014076529713711364024095164923218076976556249376602618667218448704138353869070239796818900250820924931470321240068693642298584936426673566148834648144425707490319753475044774370373134972248244091515740114952156774864194866490845083823274809879011828741779203620035987894903440521379222193828348186749284098537730286637524603065009174110010882385258151439033067370815927347560904814982863573978230047301089327946718524509554194757196063672506218864264491675454371299619499714800006882220172840782868094179576029192720531248888035013357949433130653087407890007877798273334019460341960446465951692042832566749622745632956408859765096713119729808585206122625586964540572113074039090605213856339461887475026671692937338885512340845603305615981745387379015248425267348953143913054881301477849226689710988461065151739982931961828865769980993756678078777208789977282843073282907791699668471424926497116217715209872194953970245782668957213107711140768839258959043249389257821173513732690281580368318337505642105059218387043947904462610506226536055083603164068647297738722021140499698025042747067916657983137049232272101192347697576253212463118112893889287628101719631807301219543595944654488050173159570192043648872651831452322583644254547909633038958799038101794623584613161948221005694017804483556723473959317750570573153626862727813898619810148053979836501267327124760397626116993294198368749567108949347425404580404162157794972990411292096914590238036318531326222670603623748260336547118177284939092701562536210906121376752554519698121811221059085206105397300924683064231572664040400073309505205039770744514419846300047214249002414771292217151960949767269804125583890957737380902483505140998731024698137962821528739613402632103005688470207991191470796747516257177066635427825900062998106326522894664899746329866557123964044712648371755211055953726137376965530926947835286901784135909130448477894159663700151671711676177636743109630477387879553976524563480667937617535901193382584832131532864398571918531991699814812875268192739074653302898413884810162490527930427276863760088480820984837701135925031769695231659329662937358373966539647995604154011942532475496845875978819918050454267713377813370750597452761491410887789323262452096575948343545837939662251056736762307592694914337065672620187171826865412872782399188471337117831526414749127153538562943492599616403688104815983302051307625849942649202092929883214417815695065975118688083225223196794623992006626701129314370818822637340891392951275659153038085329614615131360007352572484676025760417508633418130085075717910959798336930711061195995445449735197339797653976065732619298754219706129996982760507069985732789878625506666381897174412246907784209089400031131970539497076119731424052578839365287807132169143867365343144424494525951882961862911134412464963633013275193844373463549477605400747595754698989722466142291767620933734896656406169850032337367285361161192422832661790407276197763991337399136069859094113425013509246103621325372173165366001699352499644773912936047897198611732919347782264942552909920819479640930067531755672479666425772301441138722403368659810234046511691475468784404061784804992425096307900522493312733511714187441457121323946518344201848728606711006348489540535307263241092827369703593579757584501070961370113635658313532317247887753191156943704991846129194002532250097623843940060028936926215849881046365104575215774830404270317925420597231954854323723112570956851412300078791557145723381634389147242907440549861406433605333078113677228212153747234877117133483893222355865283928438117728877160007695416822454075171829589573866434334419515715860907987281813938523198887526396438689429620871671431405655746020657508146841766889793394034150226472051277999903273541168045042424724620250618917992517188988005696866176619232622463436472749930236481866538045197971671580049998089622305823606145162044985478377031927639058921899639868440550232005679536947123232131457585788373360951252075743036760669571746233343071203200904545069048045540520980513389067737378875459442332721497363992422630625890550405538722888688004334467784864029179421338643864463799532185327325735539064096987245686845775064286960344501249606532009018532766757453676461632888350481388840776176626941038538257463565276502963571835960879356012234305678204508776931242669434896074354630423920801438754318792088645244346701947592310163682042331910762010427916683343215314008833075224810232424082776300961200121842987671841117222653106331723677605106784790203028937065743335272378902680611916733622927947095791209360662861933871109465058729026969161379680937422789408568900885241691489949883531208776053103736130038153881321138008594120078407647551256667109772476185752686287752152926501731172517707070117669297294243024948587952937949435930472260159646352397256611333911282179206375157041151221959352880175890199095740345581495350441535506367332552140246267992045072775745656372338774496481237480799226298959560471945519823972962402295649089484621443175726243400211183346755520399017391291453684946024454518800279940496468381240796820643622759919482697037954394535301502299972250276746322258977379012699057046414511357960913104038250997873055862734204125125196354406228793760226007554073056245170843710115431202933037653612906118511823333206970222630463349202250475825403343544695683890097296225527648522710057051846595581817176370747257821177736504973450344724271517594734006967325906798368103037728734879534072452897195213642918927657591313741160583025576808258521220612051807181559937752028167942006492768257357018613367069113985337584676995893976414761506883006606026159004526290484273146903027207092718471026583569693692324075350435850387959382063005789178750013038297413875273790200887153565391749562519326663597526528092672603435924446073216511088753206442306749655630608343535665538739575216428154405454651034592864539341712494840808356957557051210700663520989071331485205823071137727024019042894112086012795603177746746560572956296677574676538238458507831693126547266282030166918058878391647800016213358481057432315773976102555761468263890469884777491826605758544825546191254494948311146388039416970135533561318674262086418590986161403631535323239671061448201962809790117106236999890326569079334863696483677341870990200472985040793860239062258980574774072653533325688385942529496646003354097929493201475464930420188235225309881990615386329792116426816108939753126130745081675789645872708691425982120605454337712406459906026646245821253643148768299429872189752368746071195064886607932502527942657581335734390268597882475345480121393912290935643515332286502979786493771042932385950043380499469292376788540686528969662177578776768993625807404589187196379182752376453732223593212142566625846734226742053538211423219244844918578916458626892413212589026893928103383252942617980143648816583333500200195540984211628256230378535409460521167855426668178578746436355529177541038732107252814278921130213146238610989140924612119544247091974921122235045293470213227439541179762176275725041235912063909106685095132537849579826526093922178756521670063606098556034822489732108977162989114667555498678598447656464397540952705009440852172528399685576556349574344445092607363768097667868820277111318019330738699263449807026520174317207420953423493377364571265528712929665830458240607490069228590991299095492912539439220570027459576821015018515999414321989366716872841835164331974770756876789183085202653933380708176681964108923528222568550157146808749269579589508877601775953143850694652721212986361692443209756222812975319933759115615423006650930712797128149365026705377947009674612679132458648200381260613471689360315866032235198129376607062740717240426407992515201189205407322578176663946205393975086446560954712372704397997770977846227768597531202473456571592227015641739892747134009955697146844585132107384989569344404002996333308451063443064226008964699289475841819592052877034321729829289201234007218972856660065964966254504649916964437285841526575438882848167483835843321118190775023761166600901809950541773771590818236339830573618774015734225705026793162613402659624211336627268332734779367903127306208875663514943887018541007640119886699397146469152756279053374398575282670451713472013989678023752755479439816438845763002902918950870371824709306860425691681439613476659046639234154199754923858399495329842094611379878305773902172409353659750521924725820267283286330603750296738636725964607698232622673048855421769209106805112837549101731665933368457432322069382888934375884026920356634453233490221020861297358517959859133099295858975987133538098430308065160129344630410295945711337746765932116625265958398212431332821614958657488167380318963545650479995865648696674970184510537632155175073010020061133337691578462103111422300158676265927181105125323670075302918221324017536532175754091227260152941290095386105513279429860168758451845186675909234105475983062214161787777551228020488113708065321003350014316284144350022581364485012364545937883706274712122877513668299627296072048958376834039813739798108861161458612191555660601715139379780716672982688392920929088041472963154146941948751952135579086169974378795437677980065402486795599718427714277183759589311834364902663419848049560679518907276218689769768949452825549542607824963225573080506475998250132773309918976631785826078689469889319202847239276641339355861639499815427522956969715642331836237782271477255167451235779258062792684606680416397115856688342587004620351223337542536202681454615683462029986681787609067455482416866821193451773707616567244107864977253148924165814839199250458483820643402705432868317569988093034064329385341091906946006974525289233739127449277961090808361562405428121333127974436246473554334138945484641269815376787091860401790860632080826849318901475562945789480539205951545221519295516084784543793680124283456746919409462781763767462762122035934814678466920934898146852147002193236249428530805907267676823442119316778834608978302144457578780426587626158231940806471616407615574156320143809011261244194016166718322806514696185915726259761430699926568636704136017082887591966879041696495031144990780571176868405069007763387004760357446687092819280027642004975338789233498432713319116847147023847968075663929301497537297250670738459013535515028351235608975415428266283000891173992596499922697847236498431607521531081385230559734663904513728664129957149232558931810137274523494338905410207861173595382610798542320635209954571286777651091917474644352651454491888034324377512667434760936462543955390885964033479448480120884590185913229863700712471298333235174871130807918065921941585274488682888954780599367162386712157206631319957837815308430344023798760062748243471904627427668439355263230524101460378047381830999545001144976700351468670261071350370673564368623149973623658949910613484779250403011324368809357149491209287219711510496170708127197155696866041908608277738628989912632039131374279679745495533739900440803336049285009989252460053940371572310339884931246442459575063983431790901758554590620200219951276317676845325208301443609310101263999333062704904892603409580582718101767363292043610143317918227726732841192968242532049430299078213871218238095298014212440220451069905127831671063558154224431891203725236319657190450356546864155872899211870487418667909542684526878555133689144477479428645309591815613424066074719673381618736618763171476380372162095968402791582090493129285802589466487377492220275368297179041453352693493217563959394585943619007581085396820807386650312505224116950334495020767634643384385287354430503643156634849157201312798700865910888601890984327505788411606954879951235663389822728242420813121042656674758107178962743291416868037339891045547981038466933730256556932100943792735828819012881153268932261639176575592376859336185920761360867713421733552819111297765793921420929894755494481291310899373437112609225919381098246408422364888301253238036627333669883089949943915303761587081143620309298154381869476585564129078548278572421035024426640965959711816926656373273911715334943124814159719437029588966629959270186452229346527995502493689592621433879295658975028948634581998128297507912336818401096194497905778717076481996644153896790220644526821140336349680367243251701896930321719599176072192558349687737277740859584108534839278529053632231998149163659415098063322594743187788394881011769480169878917627784694998331585455660551284847398276065094976555596207549180255724671242728231549314599464490339338638053127534983672421597982857341903297977297715527684523652396752470919277785360022602063271209139113639199552185229981513387110910770053121290356647483528587723199718159707537766662852923222111570786228253509293956767004321359035704506148165641159888847823586878190741868804500391801233178847874959247929836462951566909636652846502689608732502001719618949632345953726408021174673348397764934945757990500198926743084712248358847685605432057521574466241247381159295986155419595775931215315619451856160880405187025822272499619787699953701435133292209214973588022498148464295559109489930604302254532630498725292416723510243187904886399669167464242847420425639844823892053154205433273118117401523845569085598806250463698002238633699001969082091595177967445305913849346538905188357033400343448852284305044968847764144093289923250297669004207238416302325581341827884412803885560047224999457202556660971725422801796312476757180318630729524434818334076741627039058285153196638899878854415182075012868145173963673698417935528160662888237408975165564036706204871635533968126565574621613581348535008299216329253519915009131141938765848228050468178175354299594150529671645595335691645043131841721519189506361684580667597859321013689589657001194702309104247807212818096688682272869564351143742152169499058909723128364721951819427012838458053212114932616377609866347563953534491475296058749131545448372645550155477626085786873095947492757455730484710182167585024875387139712747388884938213177366920524409129051275190381916663839567547125981323446580546937349571521627706550962893834791801329851191063194347732958664435905736839294163226294729963870666586014155289594184072196481287973053624434941103412285685296372919244303291092049984611572434226464491657925553382236104629700466503230763095228509159646208139754913106279107274602995373653832781972118348750002502473575208935123332217787491545600789854621458959221569082273547391501978492199249289036481025839540598056718660318989087206260392426331574628619186855500221038477475274707914422661417703854424422994026002199999901025409168226065469134774835580815504131127635266583139261323502555275912407582419529077579801431483299020149956209617943130076333260667984162026771696454189724354100593866662277651171166682836524316900721180397579804497243981099011904668003107242326927880218116413077035212736650076319098541757448125397967666141223906340640144536603686753111290855543218788152368944757321939694581658801650116017581967396506911594264800934248340084745124550793927539758640979313262021151546127235775985866625008964520053764831415066816151825877752822512479921617797922941084343581895168058141410115362133322744218060685535838477010552584586050624067855050289513197762678944603848719766130662421680819862415333482562519309939102349856576175437446209236366060597903429752212240178145322178156337760307186878836266373267234852751268955987472565474585567840682689129288092513797676145037634719310999595602360309844724128148640216569035911778819435537468536517811268315412435508014267726298913215058546959389796755369587469157693030570697207744094879590734878904183498601007693401589258424640029111313321524497712751171093842948627111519104652553083591937698198741023664536097461373143304949906294280901565401821061535038185516455452920855292096031105550336576884284040626046086036641917703422128120321705525006766944755934012235326886975699308403796543508208379453932372601214348848128269525640473523655664449812459586790379106678078573569905006744970782281442522925254642990751314921218183317056258564739973153865035653248607409120441458778725147095841417005270422282003453903744827337007015274288035068019127340539174320521068441021430122043399820147813200195842729785809480698619412283094634334266902242120984204463419376028864349893199523277137024931254554518474466589770968339838189331691909776048246601243052059933860411542670585090631041500284339329620289119900045561836894501640234782265201587993337945354137396030952961944569578848992243196728370379792215530763635333027280482631525174326443785906493270691995275083731294988872109229124809185517385841586165207193455641595797297547988432742684577010563397673208113945204430073580518162392223815282698613303960400295137705915713030035227098232017281015380784908626417621106317011632290926201044174634529662074531172428840457094190359984570652306712876513216239253057688537060708215334453995240318817746215781974063863290775977027060698455256847432789762737806590223337513672932725452714308732926852112152360082921554697424748165312057366698531158029614750721180978573551984355048711757423710598152489238685960424134564887246117773653735172521398656252060831598664301493048462741582859180991339117885265387673400222850118289573621432491691253806442651839117545963138328537491074588253378448068164122333994353019264499216570825473965985114123611502158734128987169653195095830198214321919876655608848313938840308324151384440357273098360495080675450316407184913421848521558842313219272481673329305992545280616321902939652017702046109071811427481023895906123276446465134894912737748879959809818485006463118768915808091980757152391219686636184539139707156753774208486361409499945963844735345883241519088214574022332503715611364979913559067965319889943826982467157990796696726893501567004623006024112682716544651943863344815726607380587115324527100197595666994869357089320971912540049655493618182948078897012546572855076621312663133398887491962564386590696323295454571854156775699603046184924621259567226097299853715157833286770405566544037597340502253118054469856326846464178585595064178138905783111880700554543388317575568272673334120986353549329754322035569484589119090582671492877565915142969975654792025727064566040903308257794822441257113124590086900775105796865725473709723979397958576863131415661429630188726072239647356379926535262410330766932231330536964695574410547209307833369025043577680919868807306471916724406233368968533160300131159906942852998754395561177830021383140352551051124457644244818692375165091318432241039284886234894307469155362204469474003021721097403009506379897266716895333307270046374654444503076739908009537301947202101482876783433451207420445397557598170016479330244276815591396428050473603605700583744757876569977515731508497378627080177751113238625321682686191500657643790410990101430926378880807491622580985110282627025857709389721212374217070106883159164603283919785716637137472328473664437630559047675976102575557873608111029606277500457522294292718759621434786635773495121439978837950599523745043921566985631635958112886281783145380788549696814852383894869130063583874868972528859696001741033693578546146279796860953112748444350229924093165380651851348435577582568538322538527104690959905401002331045761633463798919583901811242187793525259758752579621768633032017578494484726697712287540913219062627724202915836250449389334774252462395926373304495751475361489360432163130864181454704930115021967381494250470712923262793330909823746603576632894631653814520301556286663475142264655804803793108317694492374345059893064185526200751018214971577122132907889038132901307198580781334460772354562078038369217482842703048798427287951936717707255205383108737652441369989005013683662794946772958855487201095966274945225908520104717038997031063690741922914927725842366337360034662118517648165520705629328676148969088402054584574068482917638212002114023057071664851343691333118651488743230669890902115706807781060218983541285143225073273379852550755315490383914622813182771835183151698488394006834892018355814103149034729402203136766030209771544927974874791906935561933974398080568044899160886247953742959219024702253414206275557285094967779819960418591360269943582613028194714454125760672367122530485356833789470097512050785545038797797975912538789543003129047687982870630597051198842586258352359889267945746325259418741165449024985262633582218424337498917262192070167351438692732728170929579225078241000520448354803526642865927991801051557300385468043024420581325790333747636686669765807087265461471765097416450317359553997870736041913680873692857211592977310787813282407185448208317469237501425813470140654957440324583607342254079747647479788025059074904700566130544100069425976494982383019704940427234418041501637704830980717614141024551297017392366389257168669185522792952104290619879312302999561244719289575513541596113825331813648975376382411403342009464051696155193381788822932202714838084826676332758054941857351823729802801428351305964563028223332533619512822834309132598397622936818618312121154707573236320459667709860445020686996799374970069605162043778293777180187792998049046078620832309596244424095164832297895219248355357474320453447793732615661589043255779313046085521578226295871298183841101702006069727864870831086469769324896484801263411903959131400933163923241205094463945677111519425909972491682207819824100117130788742503924337932841321365562678163322928522067626443483000793710785638456204479731845078250354027716376685698840467934307524084516581987930525564572122772484720474168515900479751647502280340524891851984756233444459841388624395321794801888186169114264928715219920743137426598747071313557768327149596154725540683074285371147667713813034667232771404491129924746022015407226305194863359955683202155876833962753777289198460263360404062594591798674314277322023614880307682112668608626526122598890466986919703618700395311762519497870143395097751748503434963658268670906954180946616095529338345853518883031620600315128445334306422776664458065961658629339295963643673821922644780292181303225869390011323458924488576203466953361744557104488039045555858303549568679460482542939782451808185959621955549487875178328151401327328495016999488225141037564061880298264188121888790682844448524851116853300871172005458149327143587257968513287465496903657897038871574285377348528680274564410675476771420473156203595406233219009241029548592710162290863151830957300153306363001130897837770285367579790594487853768049213335421156214289805045733599283765532175206199610407819745902243975788996780256996431274624294943975117347642550156140850885978762639458957218456242985776131405070587767068097148656891296457623546317812069812590839644031047265098599793618590170345685770923240222248178608001323886481490430991683270668871088518825000547490157134394943139661759764101405650446797760579123847803388068914179493677165866016046180594310919072353600934694691578798487948349034853994035535424649993790887413204902820994450655046031091714050479281419668742552811790220092652117325227985454007179263548852093656925333273510900224952719776477115705047244170909697839793490333857446785106059695138533867613789367926538906292579436001538103528556121448082967457079319784424379961739844257112043859317650262378355599070975322222669152906815234807423652955498462475058832531622252032062015478363057495014085447303035935921433572126592243094062297713562189300854427625421445325194820251003415546331633352377701354092839830626304518620976941381338015542078961605508860207984335501752958474015077665496447611285336407191699348574079320106484654394356163878062826928568672873808432934855173498143354505670343916269156086931230660525603698390229224851237504821798311849513698010411111846653667805774820165950724330810212035713648376851525861445946935610017625081184908936809783131142945835715865776121130521495442451922660397499668149122972325029400220761252951003192130972615908446600533979100387378207104436069366980375612743370830709309876313726156758965449857621411926010006907127752075275905106380727825823505471280821050238905121927428563965805587549963047232561171065981487839460993055694253412875081041396205214936660525002881537191362998246800813374127126262403080451472777763215239122330888206811427242217343753499883791535482776325643661101951263134582985270491063498258846406381259978806551212902422591273463424665487913679401881884398528856829826858922118703087134321618002877738145951865717499671560219868220492652114096316021441976097144257100151158375551137389993966067836765868377718933543934308267384357522584358290676791338052346314654302219939952833901860088806593726485736846163596274362445725278084161102443881537285202722635285035999234875016941790453851830261595754545525755445076847874384239313719910525683577807431303549038625263296288167240544061038646886047733710240193002308786900430091046305459621069690881588314134422866796816387674494957301411782644858143912940198821431276042262455475684786570857620988916249903876748942528773265659895437279576533538432920669122214586923760427216132074713052370506827391895779230600027028392804922261568346012021477444944537587156275655721036217374508954626888560391262736970786643645839723688738568417680436954826668128337722263773963751519926067539705458148989072438224948888915739773577470464539012394812794287331681400944664407121837395074278180346592630435439975875556802433871625024837500539013160150869224557807091411169384519099438864724337390372501817231850262439676552377689933463161727839773050289041298405310373812372298957031714414945342942158430029356065016133839108927806411842204011897483932415120418896314555354444218812286033834329315120782585903452458145360422729503012150926495176428166870241723136343903813076295081717561810063681452855590925951542429960264027270355095837840132258792264168920575199014201012547929703325265503675797036329388511532353767641624378442928735304908426848920022755886296207400966751800841978078914969544825352340463252804361504876298262853264529023026620398531348922414447892358467051535104738510808557844612246399744692381534313480080001026742661233323576976556645351373717520151918185231996047158904019935400628470138153758824037015036978925617648077516978013291810773267364761738676326928856151756060684939544861493234911649424398458015006855375364153197917079725255969179438128646204858900287340056456972131492391723801015379256983596161302733957461331396349897973474410130479086534343034738910278048234919944174442959546264032725659700990549738751337159391361418629811979635350690629758478730073429865931547043519260276110874862835460169613573317955614741454482109837816190127256105834047765078785869206544025313024541953262252235553195764589876767031948225692742083657935944585920024595149898397201005994779658396774880010346206538065231218442585542605137088495686775232625885196277943732362936083441283995810372804575236775548995890346306410255408140776392887054729114625935375895129317768334512005787801316310833722321753940856283789856587825946153076297061446436523182327096221352938277449641607355066996144682550641478906127043251559307863864450155897705496048404524679950465253775052920248779148094922456394225995243775444055099871817994905187299259850679492304482762789548800589419046200806347031163763865536966996179238434158261245636589477884220529360238375134590882134904163531267926755675837749976679895479747364905338953774033718235611841496984686076844264754574619416693995664009419219256730428124916985625095733912204235147221133681418072877895725340889928471173794470659273529598058081911515195621297780151812317080581770296683329420294471695566464626574873102242327241122435469515856399002602754100368395485424247365596796182659462146242821647846174381464499687643245540807920723190476933301774107763153531275665210675188199605795989213469580742694885237792900694571650923735851273544861162441128795714988595078599627582660731786757718489567066129925576670269273666921267149545308824773276989931900015597196795850072560982072962455762549645263131075571121356506923303276614693794128546254551252120651762378980357185193287908147288282120778073925321200842660127571026511597510700630079148588715609511917066167465949565323219199868060876044186210200781984226861021827363808964594448804604285695922101474470156945906073012397850490938434386418419397111529865610496888554205688985509902166486064316719534070407157223716671167352615366342642737298169323090553321410706446234076544789188736355604111662249616440895305652890692769540616362807511287360057628335244137077803380954674783292564932027790724473857475900246052880517620062409796828840656339036080010553860660469367972014375495496764033292555508227590099689679194435894754738620860538155402336967048677384303698172296902845082983956829216700372933173098900843891315669114777734231760702550607038760807834830584351644940411037822968145143482225116582472571073523201916485507605076520801353574042825359564951389222134111124443404511376894910395527449420728810999244086121520664197195515998992247948086535557907139315173083913641880449775518069929119491175128404404324868074013398242428761991359053931246111342860842432785845545081974101834660828797367253467901096219807202245912710419523434553756320426784506138711684603590162764697097128420284346887194171852774738068466172825389813530599682476225654344421266601948230459784962808004515904773395704620261260642568566760704976914575324099072748524215978785960133162014524665611471252529355543880066706086871788714611256471327472787838611247097042705336131566865305348292408546748171127892664602665282703240303777678157712608884362176066148231262501174894334089965587196995460824394253054677751145826727270049144151095429508785285877028714494288113971761009571012352211616130660327926376187936713030077680207288681556972153887332609808028759836463932275031092560310879430963274616820147772096162687299036755077660126828220309214962010932345000265140232380884304484152664050570131923242428341820616629575261979488307806224329540908189056314370846291482182787415925288021290290927489321313717616127415389353126358310951092819385237862844447151101185070348953356508754590779309066003054497593029473503231119948475201157707835518726053981521703842194221229981568895523232992582340814899856670192059884539721009566760906110791006732333711285789771577097580913236543386102836306807733921142183364155715292648869037536067752947657478810349716222544387911605827685772217337435463663575449941772056834442878062029757722193693964389777489694917322625388107946764995737746015751812271008276939357351118823256988278389071464520881082017823692741442093274544246956950336794742810097800296801066786391731353290415332989004977621310970802365043173759710129471181123382722833507860730368541866556446551422627718379958899203332313760277671359830618771842326439191325760010622201394467189627000947785145910983386963968911200410218088503894811000103236414433710174853474283375640378277662352412050800833819137322060992354881440187128698815350840967864706003478694614748378221253885462322531686607379730639077832912280975366904002964852587833618085176063406503276440610184385630123371388433039703771313309227003329445548969725104251605666436676395465729302615784963795768968985419189666940290752953875228777491340850364080349435557677243211438456562864080104642461421462042838573587316387546579777623134759007932833955422029828538715462010534312065550122409543639723149861950010154830904933285335542979438597000363314773673060669105412525940071113284658462352868194786011177533322186919009705944804339772653876270251404758903662907976736747703626779150244886509132622891300299490122482110646131424139527493698893679413487292523230569042212523530624139404512963990568589837267615542666590530171653480700379201853517394830385319704050202365236712780044435752544600020366596969299277947467766776971279120478853756547214641719051648238869503782813722910638984568529064809195073863201713762101907771527020139231469174689676609336076191360818842167537038626324519178276158373036631806984758057237252765167014816528096197246883506196871104957001326925536875905276038760643430180549584483428460468102334607729398187312846493583976152844074588978439578549310813367795630908144431789015322689696803841267185655346921403742951849819103439854368202396181089619729293051044451724157788491220614973403736055851064801003972735617824719502990777102674032882315748609315155671510298403940116384947280442257347067547929660615130256093568919810527046838125632645689230832494736135224023865329903260304992232086379607284777119401069661422338229308734069028767496734469857846404848146313661894114378348774255206124137357192325977487293893497475325867430363151166841629826837307488824244128268450008553021400924282857999266069221414346699390179986576819636878689789985878700054880929167896436289851197714054447016405452380209370179971438018001440767762567656504128043550988594243436778498764588213656400372847883904737398478168113958708856524777531489760267470176118264958619762007806302420797918107054471183125851554690322408646568606702574869339750395200503944105722004054360924464389325607354534021242739438784701772746828901019731049166253591232206815802997151863834030502313453979346547138475782010874076202779840345310346080468183701102052396092098574589267750046981928310770617794866734497453595160919522176273287392690570587816925340789781632839573376393784361467935721539133287882769821080826012924999775407866282288210977492679875663923159809376406777312607890367149707463653431817400902703263460028704876246216180548543603533192001856860587242309812362426349635196890332774775804892704077346274286925891071816294913201433720913286362480490175893033712850761628778790123672395931653214895652674274927828326877849978421225780221199057196879056860931578477603496889510480463984633501049104889421367102105115785270340498750325255116640224100156962154896221389462653133497488000271450892427089028931349179983457759456010084684101479572766157462431770778111077078424396466364505394150408384191802750613251130798957720752447116924578223121974027177556574295649404512612377162896972189984944702253275444889472887823420117664515292149865958232829723354748830140866671478983058048202914889894774271810011254887640339268596550707276798557958250436497418454216747040762481460360500874768717439122352462795600829418275048664010238464922028647593192632378170236733328861522519172132222897685227315526614598491194466315026249921059720465358607779177619247854898690521334972123406483149050920985323123092655333277813907767073663068318927386552687032220443289213667303330250650093576033295757438083339457849324105994571875998617085329590037711834826017952575306239767475035953887297477636118280546270654813261778609453805778243297808140626262389246636125601706228268353589273568970469859869043210976823840705790502907791608761997620665922273592299609908086692783929222162684309059273682506353466680293973938821528021229883655884381962792711313191715725048948185220595621162179026793885873331833844998465742526154392333505140592051944946128323343625926364887653424015532953894064326750255929728631768797925952659432913841740713924452137694368753954875829700006000119385679963245057995692657825650401190202137764152245525302204170136871672127605108256310050533795036683103644134923355876690785723466232087064749233308595952613407896036075540942261123300955204452817007114703047662637833028288679715683501907880090116729134813815728566277562464639920691648605677425637528715002012471609031297091567468866809395940037675389676286357808053762310018679168391201415144885141491593769142920716419903479574765821224126297596183986833820661576980524500974223105407941453809185980203769877768230544288816631685863816111912836628705710227234798860040798228573336855246905061188385870595493980397043469389090886639231689000867340780005674834104424384667480019657601933225102163865009705170756523398131802331212757120872482207067326629709541168490952320967714182836612940655867203263362529372455893474118505670724509839236381523197674934830284460898450613922489079281529061939468951382139301098798159242208168034375102449632120174862924097575763413369662178708157462132919850012988816152181065367589303037046565152701858507865143187205422835281948159207120850250396457653415541879364625650125093281209536691262943697729924590997289864898618630854477933257259638491413623355661149003536894514766828339560058521272101665002800623637790982922214941938339411231330202356164075800095822214361627206238748215378886391974692625649084697210222363879095288490152627170430322000860816186907256616196974819123867263636531335200297136760414740336055892364766491992406464918271256513284116737809679921653590805312627989908611577110779186697641799517358523310728788807786947132900772146658234241060638018681933555178262317643196688423128244976324721005649907257654256345918596714381549135066883085661878393622567117358426935906969348756309024972384452555244455005370839499165829002188314977662117312472783000251306903371672285476477402691701550721929595349370348065894536836180389047323302728080610490140490444000668340653407777908089786985418101251251105753437738091230767960304989714657099946940501221803910150861345029751033845665141402751837942710489180292352126030452358337828512766682118443123394642077020593369439293372712443309812343242924317047287485777072946899073827222405727743664697277173970224828970916690729704589880812238974651477708373030598483198952553924562909900861505801211050925351785017352749862815746912919472054786220311613271823013990529518143301061069554427817890651816914075114170072848737557166786840300171397669639288608206754635935387297821680128127164118020274604295949895133377581626827816430029263705488369487732577972949004791403963964914674547719599357094560737661992160043543120137460863808057047008387495117697652805122146612593135985981171660158495318600634736380228624033181552957582614343783857425065160477239534407845600174775277400949070533685127028804327374766606938128220415287680945101899558218848629319803894357238369200753671437924347529650275691580158234908912623592634998691254809440558760343218893602871974692723042146850355357990843100946234092709573748148344069531159568984328260803895409791319732910406479981791378575966622073554595160273013883878684310599030711510741317310224014180584758853134801431472787011185966803713036515010941859908215871238666194300183506342110158284405708519892714005269976084506012562047441037569207601152148639510734677414189699821228100572119032694569712684101756592878650243496106628945702973351433983011940692136773626712392582346934019176561004369237224348424414438047207556996543243197668493301504848947973618338574515596825415559998657459090268658663040501938002785093856960896781695060365007057296405057530271307028637046205424353687574772290236740025962403741852845924555588915737737966454220609744987791698784247903967088915977367985860540091199644545182809374771294946459657096500710986821125509993528652521900749045961630904026455059601353294345604428681872195754132460877770759466490041115205999069799485224454285656525153329551582972131161453487588502572469708803424277754150383421842683203635575530370864453399270693116828329861731695331704727229944060184977476348270098848152005208749464179231952132911731718695452693928477245839466495157015214745260516591089710407166553366117625841645000298520727280613155956701046919811768554144122124134315888346687722031232241896987950243902790225558020157725796162460902900476871518572878291828319410882662380439717245139564619630863271010599940921223242848253810363182485420969501462382744626652004936798460702536141773400764950858829438445536958247200806386815132809718627946835276715913988956968778313977752770354860843890270087947312810699121542286202681441927541713056919279068100682472860609002304269833554852335013731411912393328534907802444521088167004716284568588998274244688229505511573898918679923589301074953806029202628191410245796090245208153688122010817545205806360405851912173554126315545136366257544115195259058863271155215096951163976535757612429975362437510079402765801780914056229119970940470512263816775992620015730921793838453456579199514444210400251430831734830458422290411187850330268537836687290054327704319049166637802513850877587711443978658988153297348556671774715848666224040555722022894451088411740374307381841593382154446905872477180772514558196214147120319118851897605785920050386056762855305016642519306839338897943230957250148053443180989398108105341966295788312613929987674992764517116492941093288134945480012269844092888739888568752864161865128798179639590379855030366088137023521045021939919174828711046178105111598664977550119099094113302090228910622806782398088498547902599014717545835645846632832948921094810418692561191156950245076370095985228201028236575533732942805684325588294499160938856299325850143019531543174780896651743939081252156714713406312935252951106032139572599132353045004319461795947884668302563528296054250537671410027335074455942193429705306662637093455410315907824610942317349393376982826898495207158935069444537960964791879299598926068738344875119629111077143743150945803042015488233039944309785864530614605132783125006962460146779401498010590045689441860734958556901744183484521445665848647031368714761332096737157709107846367123348101209951322396871196901812920481747356243398368098331676897023466900261347853168639006937805113635742995598758079542972714241206708299693003606128144928852370310513044180038661621393245755836778687852441959798180150443672806628096611607015313024916739870381546803897998903594874573462569655295459309225661257239171074558042648951299708613121261531891161918756241528744716948209211508985571722930451227077477581624887688553436046823211964391407817516907635881013335068024437888102661300212736167141771453927143361684284538293149192888837606743495542117298952850061386155921719543477013118867948726131652709918765247499493063105848848961675550221846799032740904650563286913697826526582142769436149863779889979136225846256410469378419658719144148362628939916062370632600023240543227203556928566770552455183653408563618380922888978255780501531500440573496781813506464097263582689915084495626335658536581262028665653418681610651138536227144178442609506454386475513418418872342566520889369871579314907663494903100752354660792381101181981759592585915069707833537712337261171505192978598796570676537396978009436808721471523851659191318473223067918954154177967222041343862813710344826171230089503761425105398957694734311998587973852433840421299458291713333118357406523545378065488501335742346777530574311289785441568577298713126465674567892966287076999767159326707794862513576693451271315921923348985638632899401923265438102860012729951358920110049327143939120821512875310353641750636578318109349548978415551473143664959503873078962612659979217845554094970635028630963179954362626617316502293311482183678121872156812096825244547658809522481732574933080311671673153566497632297255837806421625460078770501401422729005640190717244207323110986885388160791939663925467693864726613104118471312293124377260126542374891987765422125505728668111267528620252597728776978892097577128137827131406929288519608714671488887500472324511200905536816515104938851907583676426361013390932546904313629674709078499593524938520370922447142332226731567932197097170002177068617176578458201425828118177643982939882307143389916734691160029072818941356383104505047796091597920611578009416757343947950086325291659383294512183400679848730243380980837629018848621981621895181790278622639445598223988849220232596616770788630763368233924459608418874292128464544738164770674963619390591168096639499360223380713282119754345375340938968232684074984263195153552611450575573051237654230083770033303590105405922148911607098921524367902881309439230037767852034835869916898274383766594878612929793716600315572976359241013193625939974613665317099199521626141402974867296995071331730798490756589523030964620664504883197641771979467911451703224285453801997226081354155721513138908071426812890913887145273650958507848692648563605112812971052542590902629674356200168210098693002998106141897502062553881966926090724875575243390039520518054695169046858086851337751967720479059480198200402404990892109308826403441656057730953104775811433347330620938366666580858643700781525265219302057381230623316399370224302674138836371882871446796676509405364982255138636449342861511322582374246874844494844862337697889393215716352551610544830940305042430816248186574199002732921015885344606093101813952196826212275900370755490226149579398055847647972173332191286269050756653622395528198087486600520446111342014677329064197406383371351230490340784251534923262198459690224338630360941515817683727032246440259609273797306424040005085218409421704976383277189025041316604015998105602934349920542864008448212336492191519415805967291379537015202746345557567877865383206535070540433925364532116706863985485140443115480687748447415715248417108400319348285546011635467264034906397048246191232453794327373312409510671431267257015179750992444019487924894313843105368327948423474442436230876273184321991157162008961060508456372354941154311513766373580934131349425249063055214353743742027816336436963640010212771175091912132557283614764369124002195108201631490978767577143395860125503276375103467208404105581968907816442450202977236250901993788421046416085235143375650972191487403586587403083839782857890863901636518032339629902523243363401177979522589130136346692123645506315024311693177001189132519470652493172989332468658725893502297676476299918304992999731384468293846803800903181665045974224607684092656897355702335105334880669212222826292124162573688309638646550139177103348012375846532933924666278844811390644223423168940484825032680297259544893741835897256991675142846865265703047490086958312073948043977255555646301761905966780447587432976969488165892440461949634723264589755918103838361674947385225329343592282004984440073628844885305600952154946250102026101891011566546045086549952897556205859726967964117835229351602410630129275903721279516537350578137188378134606067902813871125701984979125163468967934896915605127619474281165423679576876104604093788557957235666161876108662652334426368546371686113914411717521473572405010279933489837311346609540994648918344886460852326195590968347934988766516206620385247368024811523120885409599903447882901295579010859776036740289190214682306652516559824643437861994006930628814442323841744852387971298254734153246628565086058634064708160771386366620557272168027805444302414814146307122099990878866733170588049654318262566751772009337413559012545864772327146254860549574141365420028887321376923337994111139000696487948447057991847456814468321446811879427677056031390459839540853063452429164447415358637576731226070542689031037514106807219063149794833663350996293441432756319816631630454186698764432893430645764501079828851522269972477060314553483192696384699954212445811451599298068449303148526321854435092695930448178705736959679162119837364252343571989243587256322274631611275602214987649991305635872872862809655007890231727338153544460489819446340924676827009683000491638698940946657295247461533181732668551928876544046646569603062740018193870796409351177425858101895291645341938661455736186693952882930296160248682314731835738248188197709603151869764335304559936913773096126454974178613549147861441843065401624639354375311338814717819261570346659544290599222700253194046076189459243207199000139251205913724170195978677443684110804190844759442166940961470302609252226697367635232647908097385163687232173088722848361153834576043193614283454092016623688295330983935859798831295043989686759137433193028688737412762674916584455856136332805522514776948568048183293023539769168077560558522486754908857267992689009345214491428750412429518494445848028551202942564649055413523386974822505523591554375291289982145203142720029532179856795636615172028682317205567675633531161712327050958424384674023848847283554088513728542422033878329068236855078241760374728442431130821947593683919249867605634697772819269289571748563764816396057175277737610305599752496702124761107397233168833216167274858239603388793804427162282320465138682381491528681434064542706707323513223785568775001918018702945360186956969723473721815441513536315272050130080809124129343528194512694995420101789142693292024944800108825670367278023729881696648446130318609988900181166972042261637692314230073258185694776164292744205576641107902046822005941761363808202771435299070148198558741742686268199062603818528145668028372495149875081764865424136966820795218308322066251821137246997511668480294597572179945129927389964521140353089110756462990852616961742051514935157002522603732916648069199497624035856823513962683365195752328618589300312243171260316939162060479088076759459949036412474132051756026992422351008435813543923260459041335112366520787677071505576004946028510513032078233790114887678113601753739875733045740737252582494728768947831357479372492053901553282888155266422250538544414822756083490343971861251412595836768170280240638811903678776774654454729190995309603918488295432565999854904129458566967946839901788023911859391038728728287786097752832266347483519057195775170061197973304400032634777956499108755964333588857012999254906882378794615274673393499658698340142397891111954790306287211158453461547336182943669864146057317910418881492959901091815070321720749675937520540725201218397608947323823018096934426355373980012178842656748638236148821008991706200325939173638409521293985675717015046846297123058100224157441035051655359732108407183562402765959587730577259961520659895606841543959957087935587903913317567548303857390252858472225267365394068770789769343514080836571283412154718613175338775369480473370050691990192603252040244753167535620389210154183257861682250894870634673686342533323509642161654915973535891028860260655449036577540035819310987242820084328637024366434182840228863393102325675051967550121114308271126315254377992553750657019092142465027121513015627270123859915918547015219931584116058961540095393101036149572869418958961673610833164566959626154183909807479967342893811029969509687228879929146257135220790914267271433781070392001526177971551523289240583847735151729767917527263356795298907790573799043909224492245543744706639016529976392882525048739478461451553429267283344781057626227586587544765066663467646310682001583202020187105874562594003583341506069036580651096694999027440526182795570907857401332941089275885142595183439384612871982240567727798812795263261674216182234144625709131799380859879401531604074301366375336528846486026418157243908478805804303107555153442325275554481646818634757390388163385725310310029849357778319408297654766896901485838512302021804700709037911899432366209596716780586425698868971637012382460592338162324269898357667157809813441812780949876873401597323177224874251627234996652555720779814007522822505695203572024531682926858157861380303466185336265912210010349160128636853492153506108500427677357969036145961976922752917801623084943104144004165127996968423111165945820679721290058325554320208863518615467088325192474989375994355218522010183214958852087331315143884575472277537643106367199523335216765215034089873078421430972028356776702252886068217167619355167242943191414219592817918791152173073318719482271367625433324888172630449839864198131584242570778578207706512628620352866696755372821971679497794948878985255914122881779363767085355850963891199296749734805198592265885635650129927223376744412391437162654196928477260231138793378758173084735213406072310409902192805108691193643553864613648800041993403422097085216277600234720540178544883228939898262278068909424650386667618231054227666406904897592401438287912289012292683236372644586299343077674268405007095590609994055938505419740519722958727047171670580870110281949775450944587876292078408494280633742741132986916885352894521150072412577696551893077172347398027034226194632671792360270511161137084934579808875209477424171068505567479735360503605085201166990916384757639200094889016998513525122585393405496231772485072692808067316723887216366657737144715594018615213565925220208438756040547293739159719205994625127430994044562964098710311944009298893169575250593465576351146146541632494677055874981727431637626305256962718386122526638689184577112402012152357980360414428224886762558285662543535931776447616578160030522378585084435202436710651996183536844447714446852040634556786541745305084707808973533246368339629631058752044304553561422256923438526231712604124864680972971617635223377699669547872137734481951784557090264214538031940112044130464743043526801101758670922639953648424173348455910011847493322964325065147347416263321932176385580777187799249265894609801575258426896519642429969672729057811169941221511926227878103181139281786024049625677501558102548222986892541824177273226319223079661593420023294671040583414912591613037972280836217163148973632349138449641387489231256994326390932847921350310912131480448346383618510063804122916420380800128378840981707019354182235952044142114450053566658368104318587713570495724252741591332946565624715010162758534872862827727236227063611616733913318257374005720271302117688547247525303742118849047191879698715190941765253816991280458025329512823219752972529728442109905348723911691763951514540385458376080006488978810604051382304105515807198327851422005903995378904830486681361274064557933124012089267819877975656003184256402245075726631371005325378222606342522588887977575584426654350729491646932755479252558660164362339920713410936581596044615938922051064068501422186236094819668567304180834599190786160405949068180491613500182450042701383427969215266965427176299460759484366987555938494492936954824385158699440173634645765288412760650581043767281244472368757943071243463162757632112808117106846287700058664711700821038050390935894726805093538364791605669234456052823327357436145539260802270976055142356680689444755389043089802637698658861219860793531795461690370044152178096886058318804344775471889302684839649516128252877305730660378155758420432173263705140885324477036067954527032163643255432480425345593449826160008386308359909642849241413730898202644135971669347737719748515487803422798287142207591657465019524223324338226945726497425786443102006077670238206411209401927066292574385416812163149358067082049282998419871579978025817278951648589125972181699957863031809618288314559671863262153050671060250606916399189509881241271430941792715514783058507973857296029085423606734929168471429734404734527530817238403800295631670225052204724952793053748948047800384473004044221232300066749632987348123532593070324496030565526030928365692955170888370687984272805500045126935194147817532623279605830745987493813084741579692266055306619829300229708957878045049040481460107389750820793292950607396644266950277114877611665940015301365391142877634709840368823372072567730771754123993835002016877431574455825799211035868662100895471103925516217147295778600433210456828915011945900195960960544995581646204357201391931211622637510569488964616249094115664784555654683081446999245213554732614361753733394495819217754974695219535202622277532871424105387624271623801715700566147859497654855099981111559097898849412548152233454904536602478796801291909843720718286986037992487343790807441529400341233876019716705890124979578896635118186717664878282650095273760548114418966857944012559198014007829806717287539011427744282917669715700792597582267612541857182501244608658061071740578409418602251622994580490952107450486129933424214004703461788024698440850208544644213548345335882023838015334343535367899834560858889454642713402915906124351077964032432230834366599584101792938462500495182395215098462491086427234815935226304883571749151508815422015227465475683120462366437582236163012676812760814666961973989613459785212549316415690437464556474575298021743003864411218299017364308385148705443175140945317156495743871283182497774154574942880100699682399211538011601078617385359208070016123238407824468700179709053015626642288356738909686798703672562891107152321846295571081460594056856867096945809690195428681948961049032378885535353708544609592497169355299311534521348522877588446110847214308183744344503196687240347136504830159457549729332659884053002956357304470764230575706014456108677238606153058047977833775863247781825617432605098342825992073556185781276542420424052194305970923400819298817864579184925189850164938399196352597197908607493434778746229587525815128245938693740920543485390819720184240770255377869410729503125382323519421992043976179548747276144830164535912053600549411901489171255319050986571823327043735252780722514619051538270377426494438174846364633181881722632156438777249773837958367053707069944097500017524352232820455147468842129488331871538689453936298345277143674260900625549834759154309145345328354995463837966130342476093921311526193740479101609063320635790300820660321504160692500163733625718314032427705653928154132531275364120200269864021318957344786586823236002844067518717446149471984437069858567187168248423520330844105514717549253500398695784238789684053410413670294435195111496906581623726713280124128778166379847976608321577969394391213813526170479944340087401934577157233296506389899008702564647166931494221075629585964373918410105625373443715461492878216436278629229362078046534376531310677198060450813215392758952645937456122240034438990950312670600827806510125765456172960784641660667313611012938105528335710359786886515154286784041896933523609633759370922843132691555700625914246246811318607618610252707246679771080435822102905456427057823122627379637411417608881650057121460291170726445239055686619825027378633144825394974954655280579290161438505092701248211769928886812581778329081479344042113760769655424931846711365478946983457686409469703713341460438802608660857075966304138047401999720365165640475743715261667334262346512176580761687147302081203680922642660143944113025260343291419671716424212797999134798785039308247741720907495109025476721041498297056077847479361909170742822478911690378547093716924715889930488029029095062785559878760092435530247163933146905261360492074730398050150355701458928907278229268008946464885599045537809808420997722145428941081752885836391763531538990677432530383902317787222190244605047176728429700685930468203695149819345738298168851292386309938411486086460542871618163255723024791921744560895066232847937981609810956519702579997386741743303128737720731241653597634774542383497257015942306010878306994039252126907115651955738374762047891298733386789429450831675444937862716264562148815074366412498420938585017842495494389980974344284684146289896203464850946083563012879032304889231287163571210014067882712458527253271066757785424743961699626669325767321191231931820567462967008329966152246584374796055159389709503839409944794274920717395987821872373174073136905016304753780890646945893494821994938077376219894240269657075315533935045758387732452243335093095773420935642823204006912312728622423073112506437070717593761988954014200773773109600197674790075780604879814128976233632549269166220765593120444667520155393694686408338430423619065631492901693688118045540308615569996970663374844311939403962944188522117178664789743415097474565762224343991366854743553121934282497334172170424078463248861065398765782857031410620491529489582571164626467592881351856938041212357410511178370052612505961175467208957731132445317814515265768647690309840037874282298712017624081120641280669643795720046053317703961325412855539210210997341770752857892096405213870961636176491033073487078752365625084721048944129338864594282225775040842877350901735021816545177728789932739530709425784759614801274148654509164286987544813489605065537293428159038741771160811383329870014362115752802322134534234961593464512736219401503620689372840671536592333814867044028113630865681011220029623507542477121362402903959994288718668920693735913863042962525258032411737333741316023150871310681972784740328048116489708856817199394967084762090924366064280567066125750524326030228614894369060489355715900973539529312411028820366519940573562631122791368079788968994635186883179587902030033608874689971627717277572152196299936612537123022046168369473186194721212973509935024048197032717148846758113368897151807042327402192209891814283770772144240117179621001478408378243895120871625049540768712029936373551172050936093054316467447004970552660979375275902929225357915985448858903212368139703489803840215429493064822266343402618747347078137366442033497897031560796581511591917229905320686199295785610491642829371404707299293668758239144821646610253343188063547452812824248688040298309509408365874470123445451516558133104633155541471901082753302711503138602015973439781632986338269805927877763602921093246854592033217872206950546132187341392445402262446146470015428930055303693199775218119311626159079189366619928339962018471255551774417362771267324243141561608486206489303541720895089527298510117171508494883114162190790531620487685921786617231772444914808212824960921299034111498512822566408557738097202783532273485694564490071545314132381384324679763343260232518806611056919043843487659095811353917240983575044739460262729146124006917074968987552152046752260399526726430505854534769141285776096259018840290994084696684390155552251593694316876456399973357389994307831316810178677532151934271297342574642204651921928158148482421898030080357014337267766453694104217728821964705250357522106090015784593093328517446062211767046381319233051762512035023600257771017719012031745143860785691749259365936012067209298972424635543091445405943646094026391654496556083115868419280620290946172831340562172350455969549484887931125989186616183169478486934036109451740993125886552220415752324183459299115990744224543986673430954325817620998143209353857634934652617562882018340606010117841669291577851458831246384209743290803434921822230475352766169250367020082174063459470238114032954860886758602209476548683634846165806254303870756530896439558724010053417572814080148405269774489833914266416446440980430605204420698943417847591613482105344899717333964720424772388662854904669543725434018372815717424045620035381412941565820004633102415050248508520336018214391695879842316031170283564986718442613185366572544457284263936970305857464690763880735712198148274348384833062084893451413916655430276082958004595657678018265227625644815970828261865123617778722504290556634474532539370588601291938445135394034094785955953065744067097965597473174539081650344687461916523876277696049309101416534890881849553776809447351575173529641447034231777540764739296000195207860207153239792924970501936461868920940527402850606790708452928692509041852216527190344442902509971403288481597466068233089869109576789824576374133347627317415819918038965986710722145726685206002275253598641949014886047760562341400702342216542396139962107770924378534459185978540351421878970882969555994844446688032512340548188159412466080793701147751746934257445743241037361800492606810003747040395003857921871724730550260348502100305273154158225877836583093514036352613351629603255936862039029388158721343446729194295518346049495622279684162823371849892907937989662946500230347735210050612737812737187408897413104108390696209192416522937471877342215161966042634639536857644982689808658449314965230493465171546903888379371002273495037242849581378875848563379078580851736162368047717451767577871110490764990272773761402330683470928669007521034003617263855982732238641945167999089277577376967388545953539086245609958949881234944178414026258408188540222792154573247817653238487812764385532655396763445156869916432489035061298496149613871771752462879563886404128673415092587810348058166012106761407222188160898989552500651262943670254279447417612804498697315062216698707146958063131864440738605513616523575533964714629565588766516672552930987887990473923590788834454131443024881512642755367356190965815039845217028935640493015807974555438898289229770438674889020325037798496064147151010976494327183130280368698397784905286363553836683656682190595137321383244028912332384374863775876960760191491958105758585631330882942255356523923210354860131063772162135468513643398507366781637275434391901822040110541612433543030131471270680183241493749556027909925665819718131829739682644763490443306549880879602685207739795981931494299450404010448129445428717898509472703232674729749944949925187784018158337674024682645117239928822815204390019156010496176865055340260918564009842046104357430560510416239704410286610057895630335109366649361601666860725976384205320310279471973931843291265917938248301857632692705184670121727983261688373871055963649003011745810449377782368393353510698219991453321624173662264618985425140459327605832324083568778921440208234605246454070901057210772840377843846967797495977471266564900694407588519287897351585821989709107761741482371748381850354042491884732794416820152939913503202300055237396896044395309722119111473312182289682789138092027974903121098346390655159332802362500572309420898551921421827340995998564940248951374389333622579936642331129324669082311833922249874774442694305351955519818302534854473893277691770914806755477371582617382284534775214663477419163409784657662742681740686924661390596425595508702271000115517794093803720529257846763305225469698515463764906186465897236759203244837912501740309538435720111627687997272115199158713863497624721847452976454345313969241146234463773140805073881383481785207131122937909303269195782204256938661506367482334265614839579751984820867933776939182902729630640275629525386256369919533543516140368151785702337433842030266391014330371561624337772843822082375129089781106042128838472420679598089416498154672896053754170584925602162187368784468943524613336118646138023504699039382600103253957085783307902080286876478253036383271233458388133261888747937346824094474274288922550139543103787920984633209560296269819418336981267483039581588201827309631610949635170381590386854881365358623447125313265287620693454971585899818710679405263436773340307699352789311089344413579385101452911709793295594028282708230279116958346655693500923291324019262251214450327297527916324751777289036202520792615857297447806650747747242092535548428988501726209104493757406591301146525805645372173145483063513072243799064811112725725188424057391970602827185770549400962809733382699189206864661823621247392548815845680991486937503520311037316188919562163976894019503639896918334158583406905055106022017850617605090907579484959689048312875314663858609463219798204061489935521168888568205469701142060799107999894282617744258815855846554152309970597414771774359531316082637086183815971573151372186176593751017211335014235713466979533335877433450643483815304601439107001789785327962505850774906077988045976689327592059051431539918232965567309360325250475382306514100407974026258828546503692442994970985831043729838442031821686532141822108826205744467002447488778073788262117344880891667503786997662517010397333705720466534924912188588487001012971426614523134497158186608361393467000157021363269406161151955729719929448698610624368144869269602269381602501184573308327172970784411864298381527711341603527405893958340789850278526417291471464529781642701940806924660977640372244541882928576622194366569664146697643239034002478033844947707827422381189664456648250246730375250264602299694852253058723693538130553770441128804515105457428988348357848563992638572274068164987327513318244789484020610489601317035856710286054242052925908684885092747274427859795656437032270656308778521227284774391548151698253874568210401048603950176825801425387529646118979563269180033269068461713306216035454521906767935248996439426262942419072580846810571951947187880341520275336122577984463752405687748570017213743686272196547529085937714532305267413419353793529041299420142894522918604299279562752326355063867455106310128777381148254873726051549496444380174048368335751695496717669158920779636209969384052965686435455941215132262230404811287576075102308667573659837354479276780981828957527168157665598349579493616489260394988617890687412721867220421783759067126547937596029893824777189213675465520057988078592642355769906416176269971216059312506600280918241700181472986930621702473219350533718868791023025532797420419383799090495094951994712499396775166668042281443830950617243490047073849726709462484114913747147656349397430374269009869793738777962977457856978154150144726504103454160617493913902830665939214187878871991976572665755130958252018057200107397438722762446511792431048826022781897055245867245113043389132442230611396745532759082918755785429243141701311271773801084625928925714863700630517674974015046119059084139045895522273036990078471336882215912774111390352826369974099389933160018795409970978601556646156681032191287759229444002163550323845033977039173260243874188905548525379859340595690338285515358527336308787763211540061666165565823543667172468465261549852158378695230420239843481282675842227620326568228245176795716767623502293644351429742152671031503447350755896627547808586432464481732169661213751996415548720495393947454561376739021692937974489851509928476396307445141353711718285388101433325622575821945094782566703596293219841584672409150406196619590145263425298512058356734838568147823375222736605244302670639010803518351762222254302415463860951988305406519620279961801601704174629646178659472658274673710815570937238115061754206676270001675858714632509786834253873584910997241390575118084902305652413037524336817636055207525386906096511921044599297455241889734830601569645362754922381225446158077627661525807153546412770409448804773990649418961700592737323738373121161189403519134564281260044120130780389965360739535175674453819185229895186053714714095679191281430340999708423607484211937446453322149590039117414412774117322662822055594496245860998261239281861827103317757364082877308458589434780869785962401302131744474900146418132217678498562578186366062301065647944216980696756170868722788740809349774172457920229041144270961167948548511117989520189040538369785016940435000153314231180692684960979538112222116104464885097420478830716253011516812224445433806773964958286134072130926180367405784901400636047642559874693326968836928026398566628889677618324319756632022676332349293265848402979091550842367709186914367762570876458564435568896348676628657112640591397687466212696408972714268893162559133576938537313851289823678931065951572425589461616508842554326298007354393681933573619251903806347957376826064122466817640594678477378798866317065625901698055598645963675986574547457308247330837651635152325406964474288917280355779346926728213394690520078443232654368823112753902879629123495639948488539957488144892973635775131381873199586476736073219836479490805449765278732026277979519092214828986729935044950663893228986468859573821465012652247474662344388804980006424254960257920091180224977336785069783920689529580807283639984948228359107621594275898137454969297034250428984077053921076030517976002240526641608585279259496196045415273504798575223747510493208659665204704435194856290935715055752994878418050522290394640320758554188770405667742957567439673669766178457789564002227074873085168124478862491081411453336531326674223457176717425884310327354726163568264511187239522456776498043154662625349467686160291861193823425594626645745156054249071877479730385692525907057124765073210576031007311043373219717716836796219108853257289120220414213471013212190208543685565567421722499031796005447665032072978189899019704761680827717996354018091914393952644715320713067263782576201892777469951436785651931352046807860691432226248125034252767252427731203182312672080885564553972223519106328615995264143103711982104340526160621357782984707837147322883719159753676285776476657398077570523032967501106983022671133893279610556443383629141675043282255542342594126863839586464855639238426946398277342795395929348859953868659292308274879141716286137896344484947266288810257906286544640267401880880967134931308045668503327867568073149229048464570395194069134583981436180217243785777567687305542484136644705262841371068949915597982570125864894617829863724530548410867503986821443740102087748815935542083807746249378338021472491251191452407968428729855845645861091912580221877345192361735422489360497970116752488284493877442204432885773593453286966447808722545537708759200354355639247336291613976901587461184611336124337499377016392989871862987539433724755213416973113726732506943317249457645335400617138952878200026339712282642475790979524967868681687435232610133304791247473697620652936359878292143823217643388250117699927811373701765314984555408613596390926732842144961831465831231860513164144619055258783710070186680618442207676150625718501117375238892266936458961209757952762993004391507538370417761399839939502679483976692777222420358002536868263534253722828876578892546568490691688853258002008363243064110724410401481819688408349669782005105938379092517569679920880558690150355573408178714499440045129357279431633296485438085156578999348085912470375080793167828924977828695129466839007461434021140621964577212205065140154901108597243826713263947888581263699053737434717492622717630514576792618064310856828398249789943629594819021692434614496919058210562293842334578287032180377759116324488334726131161652428877685786797426439454336381968650427727770366438140225321557044184834287931878097763695289029217205671095883885069692106639274750160632249580760052105500600130819850095922846174304677794156643446668961068408399771393042082060968554748463258141543878589218617026886772397754270389164339202143755849394016879025716392020785618890726315536009087246226520986315702376857097094881249367951407406401818308092860198676262328420977681845877752227284612204180593829383928474329225965678430906466834132617537133203365223572114956609928862901445577145435829410175122232199230308918953435740837755923417598985958991821316721929195431677840051259446669356889729458960150446107679638196758830100405570114503393970787283187661914362101351065694419151877112755239053296353630881025155408622522985212253373311785237907142568591579506548591598841886182171387875560019412163111471382209543524319927586028914572794947199521001003078439829586662356744706605366886883390895997856510467097048110170005524529353918358061448552943436546744941111302671097451719306007665197004640931932317558289833931553840382779216891587296079383682945917120651439242418225651316724605464770363104960785956805441008458596555932214111889035973726164713685781484432438189127712440206825103510401077416858533820099362820445888193558279011900381388336644336907556480743184416713288929653576088538057917026839490350953475567962313332051115465575953547218521297011291996831329761943853909080717279158045726855697790731911153850432881687586263306913860419399975812407871300640296554234421814520092259444866375021660780829238544051202825881342395806938314820691373326642163675851314547035995448495828201848867550557734774289352156775743578845117582699371639985694403609395155432458689194237058705202582331193576153583494459403494389218811748348245820106312919156049406110142585370401305081889792522490753152614353264109671615964195937367504096731300533454499103211616358683915433957914709066599025895573449203583354096116179687600521053923576299077983371419640657172412347782508219940164106854099206059223995068237660937238553073680733535754275069218549752711229700970816530798624601562303366467489916640702584168846939953889870711784578964655755844307616505599628686051608621927042536461543908671720816526957772196897245542862384792228553143460477363464222232273790118650783248061801889278141955675433179729062997179710709636705583646551604905028914494971868519736313745017836200248912124093146878592835178025112140791637433640868138740160390386456386869875213332605089224673119615421111934797676081054314010501078696256419634685372508653450972522877862307440769194079697547378171963782137116321505372323145925226126579174154129197634836184797921857789840824807243433654265265182799605532020385157935152114307792400466587020749663744805907026159607368821771817044103820837849178934712111103554388765446290205482733559694654281749575098198909047869503330091691357088870047898526487523180347915452983628561446252309616313270150426681849724192829325609233706361826618046507220611135916789724588001870512473955137321188340591040472332589443428627169022366360176361254239944783819150505690686846654494199747347828479057445199712379993463430520999508491204548378524185078326888842410861027389287074384002391423147407550230821484954562283929988903314836143552968854246017879028297009291543518335007698141655678425027691361151977070542576060542270166708837852559053902040066037928067958457948602841097445588589539687621099568498571467127662206016992361151848204189267073009595359193283291321890328998201221635707655540696775771147450351819183621454886500112011033531185972090593850241540669521127802302041218086434906908375466623491479841513229301732168235455778306976632786454234414040326492022081056711978944037587026806329997511291965294271749323458017664953581412426067720818043709008531502394249087259146654611544746704440317520335849233765949262897115313414070865964693410221898108746951825252350108505728980224616223443643699850606393389138693650392433998702420675315915395153726297590112509621431598396138047633032918572773777785355614565093140804121379606092882639748872114075517063698155852403597085467103706123363984825906897539852753798614551980621123322052354545262570389405731084110045509869598471535074065417080882817210552937675726926301917071666403722133527026634723310677239204909951092121978477162002616617519069001529684872406008088074890037890678640701021325550832350648068604178150282983376748400338419961738748821249078833092744204920758857223114038440149608758002647184905757846559699909489128851902888425288265091510624858066327646209099801983681998685823980975107749004081055768717304860135048177299851717390955430270846193771129307875945206418325560072394964806474767256172493276729391894148138211233109551690496708002041334709783474277846906039052351057239764450697302076857977248439757329818984645898646435946316530653213912722213957117230786384634320337161838007796513662225835819828289836983724544676075883757229254925772617750215935994335873614477256189495598914798291268351352663583854314291574688942342928406177609969697352102928155128410029041148705790189974364408737374538750075868899531184957456076634446404183942009719707239737560521546961503237589068517904382512983658704284873309910428192911854343449815964862096464986695819729510383828843620037772663911250956553000830441990746520035616912498272707808046814567111625047650794292273422993767002208445267996987935028986810474371881592237672122469380755373105732930792239786197368354325223191522342420778427786914097192199139367819620963742520560189873697228446975689402079911774662641002094274452068122020601222608147776001567028066029674873612916171449065773556031491819871920566467998681999078644243166771512392017669727227568366974128350176148773486184213746203790822291795902540211345946448528382815867472294939853988452538055822603778035464593307346700849947800458810237899176197299673931219827138872495098813113213483616509304908230681237128393750636948245240510381251295705081836999298494142107551383862713258309522842847459509962070676891138332712703830416914386168620265222721030721166089602840488055346879654394572177612161511224517560011115647240800193242380364948295170369259561958614445012708253894991508495174761416238664740144574385434826865704793345181530940678384213470579029351502578773026548034635373009431464867959053104388565648325478373099987382353115220737492341736712204026161368484612173635898310787100813958628582407450130124398276978672991012188549584409365194469392314433869166723896413705254196328734180198140834901648266376184450984121158654411257971429302610100518088516885962333460732654092186472252828764325136361817044516167187259493815733036498097121305742218581565823240271930121570446435887190404926692462577421533974594526032031202062277312642439349388620133334389834742818362003932351716581922900227459716186686659855478929781949141555243041536085634597676083734726544630934786389473779102628406139841564723900601614095445271451305146702475164695615236172111735882509481881044204299580236297215217963550185734624128134281104893364394804699145849478140439084372090449061780865291718997639933980420402908690077626142301928355776612679118912745417307767897155989633828902511926037723855994618562619580353396580472938591482120517188979017005788707065911020832354315337208733722453207155522941239005538639534212448778523717584240803856095513862781693004018477377456493285455682603982511578988103978529393702586094883814407648443498156703307920348524353149810439537597293885942594991656982035912008955080325693083806735958789737168182547547711446142696586007697339200416637112971659403906589293760247735401657091524146447956748128565530319777589652991493767077560759825866858782006518049932086212560802261067650598380551288527668169023408805559609654331393270340261519149023593173875771933589107667337693929924795063053565395738892488155438846484134041116174307122587000217992192118198384312035276562902361701351596556791312254474872249284220158066679339563865618497559881062182812947363751206355139873634516192806968318353291321928496367243997249741254309664806702110494824696933109022928576025779970320567636790283604842567898995710989994461953468993960276257258523139136941849744708425354649326045729341059213845715155880912997947672654345839353870207111252621356962615157515871649356707613331207371541790708573112804902241571680404486620439892854084556300319101811103496864841219727751749197471697648543835928397206471050686790619205206082186657611308669717285540489834117459589475504755385633851272199972028499218545402843011410257661594393436266743625349201889951574415669989794030565229046648108794896010641058135702892083546044954670403114063210950072044369431333080064275485043523054529066240552313115924955675751743902138642631875983114911657535366609453753171692089596327495831172241986208199061780904989049327987469669893336175989385015490680122369380331243430874029627332465232425113239593598514049434509642061692196091008959622320505566062589659930378360359439338010600580780347768529581147255794329647083156131270157279122502642047670994765759332168255484232769914709341868196446573083773018450046368313583018419788431731719060948657439863003247241728610098656393719884354797239176793640551564153566221116475877100459472035032443057066692305299608375229012376312672773106121157535672748163128364357419103201737368711165600203902528576952761830299980392605805765204178430721301482968185584105381039036987680440556853538984519538449091331463201829397330457869969372364000827505843442452589587277695979534148406762390409878200325021941590196766909784677637061760046417156033905343797836607464589136145306482213723327090079230436898273785587620243087695737089718199598760003695984722763545770185547669788636789349253006105192161590527110203883034691685461594634840880688254817716073542079261047026747419808062608958325892320778022257232169922831991838898814238900011961725062005822380598370218581643895019949578775813444276044737808806008007373670332589229471192534435631033492086913054856702395762714323862205407599192867253259764254779880638760228161398698956587918509953044262204593165566387563734386132721594011649458873577857414047773639479546553181927274037373593156371160509805361599905034265037284105107748960868259057913009025889043973235265013555132383532639588658667317210212850685198090143342715739867181193718482380681513244718468344218360095428162741645828335920779420926851030160388790079481995225092995407265250517303090829218284649753108644806603544917046190197339729255004068078717714017924166724195779471287505212428152001597363846286569933087979532818148762177335070584704442517693646168748666208037300876233244080605988251015374227394563972650498672011166241017537574586093323147293533063148233274123803651466033566081910681776202204374840032611762108146873815923824453131815432931736418202315677694921979971506199502465741687917863513881555218179167615459985206901618614818897870357457815970121414025720701202523054747265944893439327484358433473571243261017008580131895759449944702475730377670017489218408513245849512238619097704914621025496770527329881449228015226700290770429433312430199481447175238703779955291463977378654840050918005001623700138125214317767232208553965776329699219101851856217482277022868926504866138223640317978952577377201189781658733999145745763083932648228275174453535318485120826191672110398244611151229718970343173193902807052496110684370306859525246352353874499941041009125625007363102971085942668505948217824945932898959448947503982479433070443109136811312991989873421174731393512401809073570514046472003217179995179785897452270132612105094242834657435030882598797231112742427034740546336740631186939828150832928489733386925251340464647960250429015802594468700647828307878437607170757043878071779703577224892483889491548755215699153978737413985045938761984422686137658526037274939739201048642744550501922752918054372031861739966087337283266347026856470917493436285898404524784558345917964619234707267227956371542859476463455991018167664275187587838529629255586707113710557196740716881531880538834608797231384654470615647173698894921994140656571069795947997789467937293794259140726527687360693641526284501979698688839667830608118928284886394563835873598871015337295513548092384072408907944337810077568772343492829285030539036822516946896632249210472594993453370766072417423069095945224556505774823702322754190789446083409549157813620076095624009620026676232726474214569098329473048007012199908472102740142389335987172170508967642314055709362167494355105046347346379834390734832524428868127221029392837762899988998168134526366722557501165457503738315381101268767058031495514041053325008603534713392955276447396599630973103098898306679144068611101805908761111788694692507492395721778880806732915141195698843979859732367246838034800343794570220837938219648085557264183543562245160447310350685134156891543443338870840866564541260541945989010461515916635818196893150669869710833318182870153648865364886154947677411362337535410860485347327449331211364841053720317881293685612498453843942391231143376230229312531516941448577539912847739179857358260269599494314319898940612253563293840550873653950022040036664012207224851419906500201322848959054720050286062492155811804183718388823939010997979736827475748209520384972497048902324499872230311367103040577573667125408358091776384070953721875116943684616944491820972698354875362577613612707088210715937744750451602263867582587868425560379442261148581337613732063228408142856241506450942203431469049753635060802672473544216184033593262929261972771883329557978027445020704215714226114477610450201610124996180751134051298447769523117434011927304440545722456471551403400477945500366376925330419630962309305291003713370675631722842902615591971047606127964555552394662715413676059931507480431246933795562182780210200657368374614732513552478888355297855335630681953522696301500743886464135551944703942125742827992665533483826537807099356910170846095485448513255315605411236619430995663858077270628982571816996256608821497061867383797069465404634646746438814482650546130459575406624001333351603220508322333547870512660852403435409046871868685758346791383598286240303797149252764404219444002660998902741135428151689223617385277389667523102715948621659569983754676435575974298107215179321163560915524787491554182901089623847874034857995975097809967664444890479763753967853252065473479386486848143852454046674945805422429690999161148102976940808657895015996677520433463533643974067568791846474083343940327268572254666166278360229833557882096674028205711236894299022511764877173113920147106360188009773973441840176559845364600022973735960223775317072098238381267057435072212429742908688835493218990238931483214564879331504553291587371848185409514307037159258892168595967876771888323173697073847223023988688517448610723177547285455205736161398724701728213528365675776766271252177847967035238210865206148166042597367299909001217675267186084832172254600447639355834411889950831990249798830375548788125049462818463733731753159772299712966795500869740653590738207412286170578984587748465421199840187088357735036851309111953704055707563792109734527156902457440216791084039031618387391748211232306531788775886920443873178082871990523916618338672074712305677087973362360537144067515618037525683938987361491918212822277466189105213940557522377914643158839713892340873722280729504755379526309046772644931638635824266372557028818800645269169267252883246564869992325829894078992880830202818408834611640726274797083789004852478751682752317317911340206284133246277847055425891711534671743628050141334887272732541362864798751794295407972365751974200801278253750217424122877950386450234148583787782126615663828223780003145046629849836781270636888212538503953797577021558817411116464902308599689558251488354833200152983529119622615652757392823870709334044175654825840137826676898594600255526390389417138624284516668935807705346298733955990067965632363196099473460137238567867073211383030845727721086615024646995768974180163084063379183967572661731597909192438847284954469805126192749267035085290989468466568599088818918051816612804201766871946100766794250732686138893617763011183620178630417836858737067612906956217076770113047914259822067112015046822139320884806493955456839134371946549675252402557362733527435522639467199606361648767430355422810128529824013377788452515556474496261410467692670079912073340936907886457954583918552195250029595417385270607800215742809084007453498166715448882812102368730208519604387232479768661992618105406721711428505161853690259730042896630018892144031723891544592036695393585992077827181441918772493655748588847195485947300228671827960086932727143303377900655419926638669252447227370612974694457547502331498916888100109955753086673046194268520014926456023815684958336900663483206727505847619760701725632079723816072738367905749122095479455867085454996956551513434642848349364740007938047294702768068513177696293714996130021990384287747205173490922970659272278353106547877423707308841111652937102231338006715173113762491024327400538713168907925564611391760630422099770929942174879486781074405445810224262743460906892704680320055693323892531467285840933216112170075849046731730304198053493664693616559211170781982537161451015743201330249916253292098316997640947079468904995662649805436330227940244512114397600545165888703285799652896218582930599839664643940704642080108551603857832753537659895813556470774186563900519794398857860496442387884393979961591469022264095053129032145603664455374070685517109575954932122273774312179039187546150457166936596046120874339962875175873897470355160337149284150722860742312650029582943389925346744447856067888078691462988220435178850769012161525273402795350188146225209793328455354279385079113545144030533876233616766992891406457066588962340266069958872791856817674071118381591768206666300642174140053316251360163380557492434607777828398288792287986531058412247091371900688046705470839454622270509752999921544265347700444695047176094712350257220004806670643482584101335707586420721349851890339159735524463442065877598488420138204774204705593179715407243049882473649685385256388976232070122447698816577605346993876658099956661218704163349581166776300412933238411860431942216990898642350955343179435462811517903817619597240141467943685468399880994556620993732280567176493852909169798064126619974664475049452101349414954167159681593227976748290292579899210437864404332628720999513405758886921766853748004065900191636245178760269423236955148018721323892227218185173966143367625373492433261642255874870251856632964710143457555331621970794141009277110170227569006145123852861221464822205337463818998508692685893646272514659385520112845656634690158580913027298861258285455860947563924144337911363725752738735810269263646641450968034531836935389277742095950730118319701108268136830984595368863068091115089501815865111670106149986094924540614664667599059693039889517726961134180091536791263806827311957464452708638712457376589848089266938006297721976432725435217237970504152684037159764901452437657375353497835270019295633292111696955741385067263768772666527865267848129316497115422298670761184616369704426791400755327178529508536480699079378072919796896700988332864480283554125267691653507075732872792797812430558182062258472399672794614290130068772491615493802539225398168389535029862508948000870721517570298569011264130020778999030848742245487428417667458251398476693502572678332134482535310680470568550807849530651124456267586192761130649535984703004511335495633097489474429728251898521811119393913748658719364005235800645696543383136378686875947517414418653744485200050811152639583729835965711021734613902154547838732164957871548398964381305704190326195990727976620015922752172765701444204275249043524341353844471319395855992573285258987567925023060599802525535348019456491158029431016774363276724268303079502342522057122185571489106284564220315769384727399368822822042363579218575750223550476579399987229881639035418400313652625930728700903997651114318514782872082352108303862615448481169360624194431325886049108207267510307776696920881945718658256227896651851796460010384863226139665659848461986917365976181333245270497273760694480055878491715921990876064057001892557492523259414481498838843390928822228240175905131255208026433949089857310744403736620488146561545203606843921733367092803457710782154491042419464730076979952637351838329391903943564990453354182798823400444542078819688010798988820421532320552127231606911405106010744157869192479555209046255395552183346891540299089692537268726802981844986902162792008348503260746444839371157826274908776628073727066988612651676690160040003297360844597655610889313326871999662663013745266476933442996271177000960210583782389389148794407022904260871097749229811923858210830381787719015997148087445506266248632106121736827674959607148319931137135716069685757048792423416450237890130518141166393236291322591928183261245952710551173539223564376608841606694446071268625649330131581134136011118357846311362183193105894338399620217707366649625699733701028188924828407213403106959085435242134806884470530587054155012621265436904177479506436464117971020493607532840886773025173290830511482577509008502075127769593603463128872012312653436281205698345987367760632642027362428626705961875188679901261273479746852965334225414472269222329654300130788807114214047777924898715037817912540090109035457277509125259409285230972929525339607950689565065065767883775018870537043702991651141001951631143172942506753893196440418201873405457962056489888537886810260972871735394661212548041768808081586199094105105896947194759381659019496597249222058850925273651295503338209032809177229959801562814551604567486226136438849858625685645217842872202295340670484416350684010616217490349776720226137834910757673535297092496744915939726624873889266172946675799651415343053061888783826865741704662254054681753324994083793042856295094345970587414048880163609114080941562960274283788884749419419658895056024388201542246287750837404989748111169763274512183208910254146652914958273217732239309805932217649604599915872918980569183297369358900859463011238816292416197225874470587479382596670418588831468184825872555739392039004142294588690970814051926257275683289760522268793104606416210505455587900513662453528158496922123261888730116671506944116477981104081344492107519179236487152726810128957196740594476714433147792358297863337482287994693844195824679661916875272334575385513925169329676439127443897124179934369188312314895264449986543604636272881651469135875112159849701892396994830714276516331946805087316152292181995916437589895791090163004213100190773814776901956550896038902341958715992292688887710562845365171323315286378548206394715289451809156021632686299354135231714071993408532984087227506341818369445818409319606162956458004897665032165416554012652079338136859744206112927236945461523388838180365177521980775162848361661475619448486350637601732544223947159734240129075987503380388482290536261628262461750268915497729719235381566257055660685808239889827670152898541798041534696793019850828708294899963583875794227219980120051392757840702298855745555304216209469715982468642643097594262673187480107226904143641231042539919078617178773864409572058502513840759856265470844605237609422976424171961058440705372151476028972199043818254422584682870283505680988767625377692065047406842894967204882303252595768008119344338177430073075582129472534635301122083735124425068573956848585524793496165029750325096065136854748454247274892014888405068910713025263505048898690489754749027105351664345597711256060276469152761560773902515936863104011173789217537015473572151755115819890474161790183658423343657783575069090461451501060444584475878912295592063467040918724254521948397119376662315389577801686527189833713669421921017812003976007386018765194169772514173411968842210960537456819980597946574210944385551356672769099205834512561545611071698412560514115084480514621974994211649166783488937698119158677757556233119969276072732235325728039525738880490032087970811097036447960533098191455488093168367184670791290400390156389718386188359544076134202950299703698006891924344437425613210803979645403406272980981342240625227313621064235353244102392718678056516462425908514315252408348318739118908867777742694373455164061813222430255710488115818623003647209656478064611251032178265350035051173966959783756833900772541306676627246369064427263580177250005703106269521237194446162970156600527674583382879482739723645781235744607632754037504778266570092847668912427938388482863091202264638781181853665196109789296292265162978372486690272055147791707613683175889043115028843534387086283477283233606700202324117492923930174686965963443613154348810333015761969653774338577939327166918509529150327456273734291831292548165757224159031848573742777262044024311707758216895178883408560335794728660903157103901150080481270320527223798534376489576462000098428355243905092166754099987355972564693247338371267244248822400910968712247439815290049131476697141073040128523105799242587397861992575899354773123929371725197090125493846218135787903786049204211092508217722767957387830639793580404013911958778935136848541859979510642976719914873361867385335247003636112976174676118041925418155559870363158247373404214238869755716291542700629122256743114341466542345868654413868863883315000781723777392922565010702345882864336525979816058047193227604863020760733618968263540236903255644830261504335532530913570746246674978788595176118646083597753858147879505371340833182056660478432410943509346235952268305611328260999792829375071760056529239668814231346013286932026923821349418686760948718185648191319350073284947613910550248921232304307156292043109377706942789155506529288985730401936543594389956851577756716050955094687339275850233826257106167594615426872999621479071302441210962649362992376698703094465458331814887372043618760674077619392712843253773598938028071995524590402834037887238055079037982024972635749561698662195977551047791801973074878738041314393077124658105314237485845014624072838817311628857943777790823506533206440655160526469395869239388738329453194485849253112553700066443968947177996348807666149239044854200812868577563761746824672677299431714937775003654337642063784561006701858944149651729678415078335153035976320679680056751028920214682367611824805307544760461158109574794420507079599459882459388250748531611690263231107009617903489989252069056572041588445960513007283249735527001934711063072311816240228681836452456514045524525331661719939349790340039182578053498279982024298021671397736209554301023386988962911611555526868443135848637908798330819360137501444850455648683390905011955030136616261197397697749439851494641740192318955370615227968392011384049772142099815881945558840448160529998831381715948113569713601962678285336893133807294050829930175494222333323004598624095294118897391732164729813560485307846455589815128419896462673890272022300801142935670218260777039860116358235676628468914627381361337538863594944083996600893028199919960497506122713914006139375882487650250133330159883135198156716539023637263607491969142122916771802306365223261434801308558664724438101338193089175505678522546402628640760077107382416400827604880052925638137549624338699328011803439245887243701438937669534088775495024095899874164626949954376551528105393263464620008012919698229105040248016808100433627841864465536730466065949944070371278873819734154214475852260303930532154270181737653916152944847019294860930017189434198706718521764224837925540901583480155271155832112680554827575366912881560618356674640032215942154380020902788293018785301499386118743015256409760680611973576256894676197101247123332095304164204287467796666454942268687206928361449769913192398851229301409168841727448771829742564235981515692795560764313687167130293847951737889334122325551997008809371502490523864239335496657502395443925182531539832703409267129277931720167436764188367819467155972565351842784601808835218488470826285831912134012183949878485428138421453870716595813804155733030630224254293998352300717401651475552074420976670281367909734827763752282023925875680996746461172344782766863445259957653389250731594608290391180404740947074333317876239256618308209760262610619463673175657160718583835180669097770036805474644984551594929793393024543196639458780079883495727202773982239178239319521637700960813261940057649068604607624543534815628449200479121455798957755314463758288340736003012765031539154976508456737388165452809959761308715652732944086190199168892683850380965366908234235316711698677579456189849901737903484885490498869953683917753785483440608740753987472596695210259880603748413015603536003561818819666697163926794476971586449626591806934032599084045830155402175706108771316876585848189286464143948683919460442745297181150375324380195095432683942769367703060717272845587590367830663839852749620859562876048329486538817341545896131210133214444998770022702042677684050166591336298390544754680020654851648240078697144531586800893568618029295422918427456377695273276392452377058187863605515312797729178163184781860579806065126443151165283333308806669686760058039126507197878055832363671774252491890333902550736328162042289637966216350181480708913991061600171781124599327104672823737620638583643054040840969847877096832055340633985583453810499778814061676721720621335882845379509564571830097608933538155730349924787387985221152758810947928570365281577352926230118015142002185825223333158293341729306567262181283212723994405316995744547632172525709501604698293033738223805017436793974092177991940531021469813507988954550219868461776206675455292195305292052148099862845564099156099147733165609334775492659194750841616148913510361718289622090184015329522383680246540072256496293828466613155596108413290785828743453744503173948829529580785570804257871605010897345726881159848974865592964864278724314444056702502472165956788660381598380359316152729878554051923886635432474560857626613680563469955368358425357671190280843333835136365755298063094697821301193283776910945103141311753278682487456279423532450820288268995468476824178948730422529553486846782741020432810161929622293924247613906583634425795258669503545942815100068852799573810757297337993087830308560447955054934945219370439293357001631338432390774089750542211058774904792008002094341731817606252518653022605907982979733725824713347166266672544572953270029122506899670097463412646383944569679151822067196029426596238374205406497392969152014287376049025563117427787865377520887558648715361603121596014176811676234562007672384975001745588211490914769744700478725292377514329444998411074195614154847224019232812841151483920694679787228705177527199306423540692943307778596737511251708018910242214769143351514547568559494523340920690567914557282712504494319362106533102528126798310395140833179524996790660646716655313718513767994913816074911812752603757169063315871928918330551112835994664452829079590444460473941158500617362684126208879807416362796927434764594432417797348470370638541147588132272678463977538135136771253150367146339525987946617503464514743806177700474955256602346802630750627316748389436938871668894028638810037568475680655638937209176437566203217397267259023958909332396199192660039062001201995659782071749898397868419805912822870558604964317959905200246939894170910136548124782756927346212936215835791362785343566549165130992981489551332938270842895062547518526180868025366958372726451004129316618270443444646116364212985895444814721250547987359685953834175282849801483088920682724799716910165755046544287473627308829258590598670481141827030185858063427734085461456371349560970534190816922222112416088725258533804198514489916359745040120622299230128276818747064817422418041781581455701600248779998989518400180017148782050233240678831095675682411658691659219668978011962489800875237161824343633356807145897227614016861322826481201655124579706241745276440148821983848608768595645835896717903095427590024490217620643711213469327871211690139708365750760693849452529344937523139670877852559633984602852447282154127361900108112922568350398430407804214403173125672719438430852174051824929825161079169757316062886377139615308133459531505091528111318791619505333874625065089016331294209513282939051064975094848294228183910298753477922466042818013917660056381297079224216747979471681080438148771993937901152089429037904644589076411481945975824893886184977297334324085507673770083159715885932028186387606967074153201246035331385133112306713264209819085226065896948273379608710836261533373699506177753251093488413777754282407654860233151750268518995613871513544841878973398031291707605351797427793348524424540898357787669157271706937613591534966334998203932913240825808184884517350519451473583975397079555867586814702476028781348094730219393875915731224231956381413700824665368470454480595674548569987612005974554251025384831030602439060926398917199183482928444394438835841012294170256647285816406895719438087547696388514424089584554707800738228659596221450013073789154135440952450658128244429290819630099939557446452387328549902807381647391421050410251411838160159625427845493061621517874201882086466967767453870921255621920769309122106624487543602738936269097884873060967252295291390242836257988319059367036040132054357084468683440807395311920412283491718914926044682652389127955743797847971308687479250769089903773630008327894388517959913984508156707969633717229580193100723165331181272127668929794995872698116333516863959326028936407020622966036483774752977517720926481367970220847271489313446694917687784888886097506325093658810793381668031646810985578171034235413100127155356865821309923229808761432507447995803396822703534532390940453831027173930600789597433814163691262625295553903468239488876993512285489244904939334448818799663483951109751813098835103554039082176283202179406352882247156576425643192230982174057762604411456431538115214519607516178706709989398249954499795509765553116835124882391143150386266382812964255777615924518066989157599055740984786162900643739414172177987939031088426663693201820455622927526391018301181203817682119593617252183725642009609060730662579034626189260124833931756390082926862862173877894796003800857370572718167484406128849260077848902304777642116471954833044303163892822796023620372677965965858791400618488649730425866270622813428722027318905180033542620605025389899359569742692221773421368697774447566314001246580175337603661319850536192267834104639045036463213338576073728227195945401045069909668907853798808332761454751297451368669170343448001078431838195718283757866056878125907686146048114875089214871557627019021580802887114206234780801952179443544775212335849793491362876960302888047752018216225757102012659736018875730626255600397963292830767208100107173258508369439327263630844865274658428281190090119265049211006606876466630006035047030124587176131022680262035641181728292203475427175480911294563819948424374105236178465369005770125252294171567456375433375843486161846841905485031314744275953568695612215550359244552374953673299978617492037823173407980045830659304936167383743459081278085835708366695271753180188911000759720607191277305844318654162378383675428949976702341939639777460047098980223854046574079663494423648161680441681162553589306201649247871885369166511831757379578339652313601386757051715828733684507595501069899096136223581148494963191069842848312533233110764556440175095230279032479722255562141254681990619831717268671440641690195628245261356510620476265383516375106085971951265542070656926960590131969115535482175929216358261386925818839087749285470717565712541169654537681722015506283569122606798084697172744878820483185961535558646560418521010208954052671230369196910708721063613952269826837089064416068487038133247569416344497271019365942682250208244181402109099354449942042846029639096689733168299401694265225303287131375404887028347586934158619276896835090929847092820560038168653595931058166400956233200362397748474460404706775137998175286258219022183139265589386108576083639265128389294791187635100970340635193784815340907429823649177984064002153507797423401165196289607055406691505062655946960319059358540016179306404237950581787428434402394314771654906924267081361768667646299771430061715790917623481303766774019790221942136440395241856404393740391816056685807919917656999600404612592379370209213413073658161086539157276837165399313011718442472490786589780922535794467902920508793974880853311261395643967140174283052749951639860690319954254510547434478184815632879903628076130709104727932037107225924159852093335211740409097109458751640746790093131538606211997556601850062683009652863953167155878373484826757231877357319697283199501740953966171225096213759172956884181020475050279273098154319556051634222122292284302013981982810050204199153118920793462335013515442970079334226452927650874284549110082645337843133141817139114780402694646194800498031495574065976814917447487604214858345724484529352030882784289912241769928396032138610065905284222292464046146602329368357072426634253869630411115836806770317937936218273878833994905278752068404811965170778289606894440396564965194905336806825187143297256237699848450868223317204310500600437400937228637144615919171283392666572511445090283262779933878993450902803359384977846143151695984279516885515313870029837513698170917093261749932505364386067293112858895532650390496525457006665455280340734371316798898324441882396485638870457759769158685585544277479577555211384319963832752289941019288341907633290222852160956181125195271737179374199256908489033416814500812723891518235668932788819528078667135195004794030422522374825604538796140440343282511315041020284415029422876714349574481182459272545472922750683189421677462319431721800183887590712934743478102505066045177122471638515282566061191965145725167433796621462017906695000986560678448959531138500066222353341928177339960111081519574298921210650991439147451152224108061384440048107384995440117388097199423163237750126468858210562822592300306118534596172730684194656444486580110116389630351787573913596226607911405425118379081083675592073935398749239943374788239774888626439431647048359928928461237335767960582832927148176372163867966038389242204330282838033002758598319904906625847505266033775609414012939271206804850643180205792694787120176400644876252250386204969462326297407440458889883439598810662873409693227216298537928442775596463086540236931532314179344427622087490550515825129158322524570767397638815287085639842859193425012722426105926467447582090273641755628343437094618976280908494832503721365946549623626998076238094009300046379298766327932273549256453921751163267936512528538214690496340075338462369578746644085785542435952767326712835575732576034299522956232296741406850731034494909182605878204375569377563991087614913971278084747238883910820179696705829110283199553011452370472682006341243019391166188305615030258904412301209979244048637108383921347501503171175976727958072427143861704310285218665112676437166005675541885898849112720256403476740507557965668304986573738945118525810536766679989708077964785864588655453342550731225025270530846336429539349270329187435921909503952242431787077121887515904630555096948961607297122334226712037119037088335597680925354278607825787580030471265067128570634131012091669943601036041938421223651783270717720974643177842241609070696927321489856027350206244536352147818889461585411519611032774312380724122010508198222615676028014579754298601047410241724525826317564063778956150519016866871115294647099591315108555748332903449665509608830851135134127883702207360973862441904627374433784391306236857286648371710528803476434869044635826358200590013197435671089413795669060133438822134114860309870515608830966932910655357093110525754959795068788578247179429950119622189793983331965196949466496684505562730750483291414864311412838995932511531419555306021497329199320856361636141012804313988663735371241524647086690395999051854639820315068221584228461854254660438315492022070514534239448017920313018640499281515822257022034239116701472025147283723239112377592229390146355241714241024207291991023170653090739670667463894767119361181797405464033772116402653964830364366165126609160540269754297461365809449652137565702872850114870082191693380154041150478858808010110584727980804808741560329048191328226281116325038228159435492370441579423585815775856322292763850582166776997185508461736990293708246086259631636801066449470415542088019161454362805400332749815950180300138392085425130217510924469331370570614871573168292682661488413104997692302911044495491550943875915231839655969410049787641701521034609960254420304034970122046105989997405145446536217990819902632903725723780888807629399888753600186895686366095728196921215132595343791518691304533961755288026727731739358380697109040253107865280572730973462822128012541228944790984201096913589872377018668579738422343379652914787646872546956567218755643749137213736776060658704643223305180278798805675466903620062204876784512140492962210844804143326345124557262131058112420834036370468771887511380472291167499935322657922197263540001913053788969830774353960350106707635897120767303183453849629690202259598453241447614667971132231815988385708445531002833238873963145022483827102638698740404423614234066645247219694857636062074304122279325845644987354930039037953222005672155086434319943007394130269595475985698990040698064254011226418370024656281187319084158603572984645861680784143448498375955190822958701553699871393254947979282149514760568590366749739485310772661071100141301553701688167430763009617529317553313877955110558204184902257905373856658889790293518858313846408515188616362470593711933405328061596345922496824369312000971378260677874718173864056691391499466349173156332805363167158505827097193695119423414836142248375091691863815211720867722222708560855664049072676514289946617998218178256312256179341421444950182107010704391259588705360210963888593957663608490017738585538957638357726749661268479670463709342135379682109515033589422011376709227207066210480689345836628976989210001675141884166602515369428814694815517649114717166995623615345438910923151859259525822170752520278762433896978433667319219851338797285459972908284603735814660195844608399895652062372134964313700315734105589856750897329618647803211593645564010082327851677521397094089845272470730860915244806201240326342531546421128916628380424935592124210093643574563588354063281748376873307803146007536633836570284966748465453181485847991710461956936253371357380666068736293305339629599727136541124432502983051435426100636573316574303452101539429569527067696373366845499766221192298252737610091628223759944221065518217161206611376106061618566772301217442933727042261440404656441075930287994372980343734770203682584782368961008003981833691622287719546357823151817101538402687887574260909227152997805388816874901654211196151556611298477712667338836944283231416437998249200985527344149487430301326222875959522959912268213600849983937796657037237356420726557697863049574099003630627975286767230047723051145678723708602190274859029145068591165493313769037747393591468417427325206976010857855474381273673579644888130476863344008588569024794081915450909238872665446024620946481646651045375467919176684904325472432672740924446331921979465036340737552665359509746626371707968586473120552587372640617190073122537983495848912286773514812716428359970951244002822338608727932835046310855013930267924696396202630372195269913382086151186339706951378618016771877911420698817692237395179336560408017332438790072861919746185897511802984489471261138351068994840166084655958333193116033211459055995933067956433285860412211134659084136650272123095515296665495549443345231351331675870822227089183761266340419607515731147945779377049124554663477649377216174417406088163282569664277524070803598250375383690207276861535320008531091143895829259285441078763969048047624239461808596759039093837180444130573566384556622416269186349941693599268247511616039121318736477216732429999341213747813670639660155012838609694620531050009392874964990386975933313971292667194669273643620626133259721237485490650057085958795429199413634063437722114077861118299573086627282284604596608172045933251151361145514187535960100742406373084086854225301706987627596843240384607589796560638747662336075416421110831730217987224700068936627922552303203865571178914414397396380770677995442032274047592076828515116835224511991473319196454274690815093702082691188137771001687518947609501260895347752863159786178388515446308697005693415659454051091177515227396235183619114660391901557540536514095268187897257992675478377848142389383537975428070391595496064826368101240151379432173566352332027245253369761790617542773424552004092532021449191837453933838716735988390980039329225210017019665200737309176336062682411917541542438172335885334046333687354532887059626504283548737559943430053252246207382393226054453546591190011656241229630171945078183866110020384241040068995877317730674042367832934246278843094171094967675724512021069224601460618164206130271443220390173206786342517983537096438178506480782796171558658951974929393828764123546692280496753610167003393396655415735057074288455805547464788031574312332634858868357116930245499746724333655330239880377380715191771164766854712276922315012883799950481535647856254171397607662422642335753500200127888274792832165610463147548104982773118715048273143566606967511858427009336630744978826930555107414006412763700907481644186786431643996587603256842078998591624173309703552199458317435868933295192513498399673908673737675946600857139351661862897227835666379420331070144668222958658667452643490240260533972515928406778599682192416013420289687015267531936478599420256683254629862919896330812200616244915841597606739702199142126585064911471169231103435687695878868798110484612118308459357800072399581836820147746303757496680454432125053860195996353241560527396262892892690869693232134433819931287052027563946300480647674455152594908607588181255590741224097739455952952646036488680961313644074132395169433660744786420958837733334141394208442153299204065308050753684018881505115527341417643613170370687156302303674103255976704132573266851603730380477141202055187412708788798126167948099385584919948126199467021470221041711238052616394314352016124683024246849618469872308349489759122835711192494195630076467741871759661994427877791976222025612588985444212654870464368628066542738848729981817229537928695041630260368632320456152622204804281456782619493883364633299231348653068884340666142383674160589795304610303382631267043547487210515622169624045366103999707201988178346436197810402323840407918404232748048389692019618555887316275670377869013927960157930830268164285087637883406396446531315944898794253596885789396903543721254926653281048157915968036129267463000108465400018192328532702020456214006269829050205806751412499191320508667547125670929372185013517064107920716664738371894581450283203922920676204690404836915079337273006740515540212966113687501269053173636595438984390476832623664904204998238600042098536200222224919623792138489621265514439192509146877680503336948182289037223129166296343031421039099354547316083189026051532643850796849610414003500213954118754926197850674147931052749128406402826029254068887017331139573866831744999411021241797481511662849403256695584452286373827531347264175633764777718932087813336656680111665281202497992580545180358072813923370382226763926662457903634378787529183394790915622617730779179027328224437931588716542155091703042315569376919589007666743428160919320643224222347053687836687493090481018554852963428793574667974294933483131482364466506566655177214364378907725924084803198662962116111618385846282145571555928325574520770233884680986649547898641430318776764346335689688767601931543717218415280633040165520994469633376771850491229805844227235961978919676737159474498311333806607962681719234938282138667021208441907048971814611668779176769843112972272169587373488103782955452276227032862488509887084689466960160630872713102000189071331084140988400546647873962322896998945302293179057895032321506506129034663323726205737593535799230307501512351327159272641504627945935179418113401209656876425646018719096006097834175037534304609890430403344701826947340523987333626120822470480452462201566042958253552260138576480053425427124330911131018756960455865301339613707981362184278889427766652692270040597717936272973599174757256023081688956795180715267234891102028131886218806826600540100845062265940333751571703181992641699402484351052688656943350962254752893196376742460089225420312424484541888060675404798369543386332979856426031117161907581098327431877113979605455042864799866376305784885133424706401865458231413673317898028484853449046781299315363032179859398635190755798778334738280602095362049647467921726501330868487478446479943442325219692949651102403401150136849977024796484005445451891072514602172544370487697948634163769207565395951755119494433749824648658864386735644557218323174051575404207329851612109834864872328800977987332395147380104594571344315281915716204310553789799338037182698800265411007287574304522805410858408452623339730579926933378108104975507108952984836971375680193758901540796369600965075534183414759152468307351706593765986156467884355765287789982100418201796149300448319816621295412526658676923939242013936015236903642080118227469706882909967724404117886625788556935822712515070365383566981547620227874908301510726813076018158578600517310296691068016642862087366045261983552414344299361067940578959115061895156312653384349622325047188639284965733254774712461192182283088023941827962657678955458157069392767971362635270459441511131749543996628008576979952249232814621277615265763734856085676779682647782185948042299059136014593919146735305273115592674533015496707651872770985687678638348144533713209620401433975239911759751334548335941743774212450320139557624564574578506039874656089264743292457612989895353702148862981996100299706303551078681497815637815960253119183909107752579604181163297871261254307750029335648261829187740223993375668506973263251052623457013844348218657760880093094732176402634045594662114688173550199867198238049808140168400215390431688241284017479011250849090473055214126056636320483430827482738067836447638418280789866197815421433185839416997407107717010518512585338839829088666366119348588408162867154434878499310869394024232613884476306464234893397671849285550571600511505147308510095718002077854299724040456847294371925813536575167369970513266344851545631110059931409639114112003433335218567364234173261741976015266908042892847238327746647892150324178754414675832648106777504286289803704680855354968710939501406910159952399020085298758607750730440692446271875018365579018662324248666913406072274256230267352322543975928603149699566548750463138846678872557222111745044742556217858906654227569492009846536015100658220437608920254801750403981096182687466070747672322887038063019438750708702598167012189905188111080239150920594825054114161665103225035058877031969476942822392746524330744884855187126335844271241706918601931643069636682947725827262840327913610609338338926388848322089055970347141132153854159292629864637254088604480916243578799124455565199198146049464904510295164342830035852293303124841111491489410435099388667241738494884728382209073835241051879469589630956241855314962647172137656197840907510543491304537448133218154224176371485611163363643853465902360633755615593137891715958423979130545989163647347020455412692368723961659679407977675689239742232312858871262520632707980469079289808305902100807149670722366319630100752406338737522736900673583225753147077943877819491926991502304780343845892838104434562107538532481714525157913066833258992656697375172237162879398107900318822575077537902465513009075136384606708506228168035835794591371500250483005979674359237920506028296182658725597013320318853100456118514793225513695438765528300429497044044370087526504635755336122005915200703750364927529624555699257600010880716413005276017754849324689959821204053910987859125908222633890333850447540191563943590116278394149957824562770515009128325283330930222103818507820399007276335751931233696316166348600737977206789266197471442544092801038611553510591618556455929018850342672619314373086902388371710291378396114252506758329825958435742932904426400662185024948727157420891976501873576507844387310998437158725052929373050265977631132795549462790441812371225655252216666763402757549215587679364710422258958453270202475489627847760113704493433559490186735463001093101501544718377871849857672727653213452232744541093752256150042766996850416021700458604061055329448481086634503682799156590883413524411970285497313492281411830640191754148806401797107564924542383643254744843624356070128951113565146709191142524076819958277083969664836950277123225453847294520587112650164476695934333724379968944722020884654799768741530776669295831381506078802100067692513324655234731633883449607858685216760865740147639340337050717311831703589380326677803463312544335515751938814925502985549795890219271206364561589183619741356849883473297104721382208647958918019462407586990968459307074466017851747996318656791773897159907202004716198827885250527146436285289138200688199877490989307276628704850985777610156391940812186588466168129988350243160610708482131539659837802174887480573136954054733988123021955583886171619097059432458942012806474501908768901260926382999733323093084343072691883206727810396465387117890347012830287899486302258206352343505433195842161693021613365539514798589492035085921958300921257265680233949673215726225650905530160330488302799829098663063588919029997784597578677587485555257993525048107003098453845526651447666146580565853420882576957141447239912885707197963204820010674566794317528746797946478000816794633705474813483448656875020296837935485923112889147250312188676980272151403023317719187241342170052054728857865302472652306866737485246917436406688464135118352889529531299679805769075633908379013383693330174092072854387888427334857044303557488940165293317814463574484258463629251075136940604724554635235533341043396696164875325797818236866504094624147770739576097817151656020575165926227570581997916241311850622842525830012768965540157395474607145043797824171187552921532537424023876109301650791992223226465787606293601543445962265833983058470942447854834352297549653074002944248688098623829583915431978631769888327758059810853754609384381748516456355877346937369656661090967085137035109736612866113107878673230575393037315753414872278257653977702804594593701076216738002145773987406039596916973738743645188086799131754428070193183297901831278496386806632223249581419502211095497527023680305776693044128377448626137703344041271580015753853189483897395514768845888779553707210169968169920125108915684149309693310103302012767313064444427494988467083301136894170674750996486023687329400820216486707655375637675486794479502792471207082737529339393471112302731224142769601999451024483160442683011616496768423445870163600696833449702429574018026641152477036306181412680484583629581056168145158373991014728396864799230372221189864678577727362951875736061119703805897017601560892829283751142815471396778204117253352130715899935987469002527253017061559076250168667497985972626321736318844215940604922087838847808970890563260120286203159406827289869092516014477784170820932907237885458878320728130610667357266433753522044702484306018139107274772277765263721058119109892709214858318717136763984478392472783368754386353494835871032118100640075753084970803392377763634218644434972075764406454974337163167653989231338459898046983124264130735943114701826398752163738901512475441577768195812281464492833844082247355238708322010312008326595171855117906601687827220320156679855200514190455604220712961445953856646279781092879864943257225648050713628491436109592747420177839101822595796514583080853273230377877636872916428978072330583926488718761537897080662563574816282653655728837565982859521045597654788519858479490895654368067146568043270691768033834773591509975360980222378483219199538670173697005490061595688760456064770043599370646296648600763094980929051426642266392685943563410840885834658403624161820933328656535300283471670964786875115217592190692076302208118881291995802124800263634432447491579828652949120029491641192781505873243520474022894286455668512736258417346618332201713318494582396216518714428307444104217667182625798607021209819929690746475101456526693882565261001152487726449129312708192171173828172711230993390462970541577106027098043210171881334830188384298208125606824984756387261107601239000542298452633816288618963390540273916267611628642236276503121175709128270167556414386542156449089707609004136634003333790554131363726223384725980831210898916755368628788508259832044040327172623355411734281522905746975339126457158229729194698268762125233510459012564054437234012403975523738344563285318866565812194870606218289978893144471855825563532557180101698470572890135063770276455790961898014099471449362961523708879360167052426188620452267313215068632088324517110096572950954584922850110633521080766557641992008567189987414551412433681121727563960970558933525318065480125757361728088601712411526113410321667221682265396553989434691261007855386049600989231983264097773401086747401771664766507298920804415133453892968899602180631029714651895680440997320938027366364897917277035532896615446737354582168972229028997736827248110732281268427068015216217913405661185097179425891904464512127332374930605813658256563627440784684311118783916557491824383576210897293372571337116030243251190243449038952323134323793094920592148766821528389842061180185410030564630136013914250085952039754441573147644570176277797930756856676707965897768394600004913896222825319803175378405132963365927570898670512773769788844825191452800130964357449433467556485161385480888578691153843540052070144942646593644033911983929672635481675900004935127501303030705527180832093441096996957662338851084989325399966340017810557408150067878713875010154305726390756470751429699320220949953969079567175066012261471533720796663214557327106496038998939205140976340105561493844212381327487008868675237439571064614741380069366830777539529531044949886634042519073907381224040258237831126409606203187920804049299732250827588812612232430309761163936185198461356839709309294034391482365624965809469182054578236736127209596919318361897726225176092452091977355610737705449522646153745412122439661017527444051297574255178217348165866365530659781323421566709556104705014025135394019692709044139540870749774383461888616004301619949758878477228982602755430269967962556927678894470046478308901204898986896015344773488917350244369873249989177005938300766207629914938126680081595798925555653064369626096292567587859939014686991120638595913033088291538589834348855794857235071998377909332677450904174121197305998619109848575061047098235036259108497379658101293960336475828229265351823401428755297581214963682097422688766548082259327913389065052336156517307518484501302170528580311328318887445943187990985032350088754317877237826144946654419447386666876775097304171560191884149860533546086227936562738292997952231094262670952856820600175994171971951705075373145856002465694770180286012785560332394426234349644492616421402589841403231095372794055214030587155623811477262552694917649914747385440885108915025834060259427261440581187253728442762872662657497207767370994596493418916038954594555377761405711218474959094925633651420172984967011371270834245629167783265530042108456650859391560806010819565964772033519297725667887955049886131664911183043063468091925839143615255895658099569561543210528692857690916689064431697555472711073087052430398926573612798518661402267979183466662099113128550638192264089753489241657587566785314958430556125201927996428126988589122484861926295697666084523162388757987061209958202632997896794125929404808378768680692877188219958347796558940308729315464447634769674899911883342958375745630069446105221276128135946074608321142321676770656186308052103134964149128804141966291833050897650441865209462380671645306198330645013206008743505531311204864066465034237193841444011093709522768099329498426765540454166035608519215010919624019417836350835656063851898725100220388458598502171969364805848359461741060013564849621419841343953068078026091684938397253226591795250686928818308964646115635226889743104165290693402469560783461765110852737283998502665045701854268941851855917351269747060790706310474715973024810761751766767573343386485805007104912267052641263752988734546017936940754085513470950536404838446189080982264129663033951875366020727093747090421986421428449336105895478707931587540666798207873078118874480940256715627427492066325595382005276827049709849870651890311027867549967092483887425335666214654471813016209131679084690029226783791557898527023864996683740138642773662008874194340363936556578745726661755086628044395768791615824666869984337642377805010910907712886102643018724014304889652288884035823066217036567359822240099220161417735235347774119180976322358602306573697710299958951560391105989245747743895080235475939832742439404547355093026552595427107076133092345595292322088011525501340662261621303725668516388665789264299883642493473694866453960905267545540255254107395109400333155375002180247022606879019717240355221640835289500389273832184094522685164739912171938689413600747613061629879061577763381239718867747107653739376240192566870146158084706632372161296032483993552968093541791108691976769655435488550001517097353242944328489610029218266013365205375809070286285161260670912396688536113438616032685926587334047283710617827473263811211537457437638350392186214714903849838549798582680779296415664115930316572026724763064788825617501337518512126524445706996550619649272657509080496291410014072174968916357233260946838663011333895719452819356020299808098513665293332134999643095946259638880408306609310283179890560941622223436536597184465667908779369832144257165804824022669957634279108689210003729503266982972953198734715610195512150802858892075509946001929980392242556775515952697942196135542713035379165160675943900664208335968310376299127273618253329010329397432950814256370145928508418471736950430444900119756569168016154235280999673066696464447713282348932999572273701254358006012910172411639538985611936609239123119563253673508250339871337487989590116526258106086338078060872751239223822706621808146718661537446199868989547472685648986826898886133983331571656649574290533574994891399706703729802267017798607190208214531910818258183235100921797676876649237837278893122137835666260741892336221477428946628890375722348014997015114558941596005203875923778699899800118863203132770776283904443326779954283380405804225234224732935653342030283842837805177530052855263641039935203674654918761040760827065663034858988079754248866582298940722669034135213282344066658057539541237405875864477099974522292075971972442291888117369021697334144941481175395959293340549824206642532325677728803756350143450510752394413222444007025283653543724665207782607400073153211576781153118313714825660975842672393258552791773279872041831724727894109622371428743608716266276659855409208574758032954316239844625714904196050743306545644612203595193230502720375350565385531539765071501299341961553597056705242081377027194340004040936539269284132044461249989152922918462567519600673934120549187422605395388776499520907187048672404851627752511944211478402903763498161569786171094232111858222564391935161247967385597219565039895312695750715856368876923275536657093006712717148299533887885088303214714279019364535875664980689182485449230643712825894238990637067720837987551839534341375110647441725937965441718983787770265482044936983177263835209538714346645990562540166145459736399241521303032660812813757091347550826439987689529894007712022368628600435898410488227968768965062801988307764863699406498114809887952507964683543383561969730017236686032126308685676782860857160199822284528891563212244002906153137761500223413590225786216303536734904530950491325780956378238303542876665296764963160976197281526713551787393915962136636210569472470013052123705432965073408751284229079098079092374204698936805512776196922061927023301772960370423557190925890643183822895142362215251346983549805210005036262994847885126119610480832882001000583369392059529264143751375310728980528918254619883996078216913110092927206283346741962139367780238949315220877359389133975830652492286673257587981816620918074365059238276383350059434047131027835595422089794457359287350059596136947821769407196246109211170135147595374149191679865188108583205567270481127137964110959601572280299175013317084450732703556204910006321066875203728459239327668472865457578182239353750653444278318728802269623721905522699002794214185214091330414526369443876207592796481934011909131561246869866542166737553418682053831505776812423000471946091521389432685399835947069714120284636754929602561434742721794193174024795190947169533265380028737012379137611041017235751616236999436072261123880391954942801124836516925707855124283006428913340537625228109331818022903343910635528870578532930834908480923454186622142701263368893494668550521757210184151293627092682960085308312341737070340860409386404148064863954588873949111478391182457207735967494125396346463727610662784714487000933566272759316038596487157975658738839639470471642697954951240058059379987973848626756442240327275304964502705169622762310899179236903856396640839311067596058754566195765236303472484873789167881223823054585522338578810156221431957068821919939723785409409897801977926800588473694704179293547003170104308030513241223003439461698917741399897720637374502487861857155611910921222903507615843890101185539860648383486307815143699266864404693705232803350505882799983342605748233407595245509790260830444047232981496437341319027489198762035983742100787949265225476844713225802907330862544436556849031525104034148775137573207371280369696649006772201344431564425963553880523391555784760368764805103387002269972131661825369878791424126940522186832520412750433799904740962461576089390074734385231650234725362839320821470325130639882510365108203045754271396788122558761362588534714753922511132271928943172310934096148782581243218299316900937197489753928354762206461461731888770458802900880761056163524003367828917700126794590639092864196003450151400171934983902985241907250638046535056778265379964892718908723899979125206837221996027243976781341309292017544064806594928532653103482319181204478581512403929215298378234494093057019016994698003153537056734169212826972833587203046037808297138722132272109909936113735662127488955674831484360561260979066225314101470651283879591929312594888855351944990662515137780262084716563955348570016663805741928444688620059849136300900309517968279498915064970557945520505230969868337842006693644210506417117221410580289477141067245660013355813784874354408932839970397905613111327026451031795089235631759651407641429545296103255062594603882610397917309962828010655669076635783442477873670798854938784917135764182916854095694426920237364622355038849140141341543941420435586132824133979085305092766671721940528147735366199489111834323705730089525525411580871240776488821216842553017823651753158752887550767498240343727381937375101263703005603351686279945650565795008775479163461841300836814608781891910021788543326249179819322769241792642148337343015099814192530096581218102295203257703701851991937348810068214586479463876756492441165070418943811473980883798548482245178042309516803147235289213778059943983421538328106405392394015614834648560786343678559778859710687530966509330270760904867303814372045610857396711515032987154214467782181858179334084520423513905882833932658109722851981277922962470235811064430019587322047788282685906922733731219277953384867557307128203901862534601844589899463792948450901073527263794351080510528567683254071763573843262639720119920837038490736631020352822330495594789296197695532251126135596713800621566769916000192250085359779713747740521036337523839702594543014324184109560425183991419566005057441910677806678417281279896537404399125413451363285812429255132392266610442493665257742233052867305254514641945629053006368470246818687181066188808810987375700502169056890102856347634147006311571337075912673136818956624191826124406083514278209031486434801371077369703740816606856915742109665133215838367469187109925487618100215109056873936150534982591480617433760097229388384478365454982331277245781681522930060883740372548189158650856886787371606862462154277322789893759087405553502481920686075580869408033543158775837081966994960406066623807485680289830450681026518729025730360373394229499427457782447482426242370737267407139704749117930506856691205524318222964314213415951795513788523848609132750592581201265531994205633389488195304328691052680764948428061867096322002687841272182957307917536027767165773518002136811014332611756327722804525153888831406156728617491491640163097179247679266328019387873668747626179673729718993234434741931856787175708260621779380968354273703131631490734287166228069130171456823473090877172342085681826176939851159115952910289831386906796892357861493112204749593759058653783838074054005023876579788839386842226453138721345172143493838620717949154278247347993202648900506466654534415621126562026463016050966642824252598032827193884440371176588398578061773708066389355724673421856260153874367299077984568512355487587579051366393402977247640955327289012591678259430486290225844238432995335571634108836521559483239000610481796895046397220286013204111978157992210896324236516330491089685485548726411052252339401312494484057477649968200962349809962370830245315921914641742921972357911673531379711811423238034717895705802428390072074383359637046068124338064850637583893507670598398598241166336976858887789264970411321470897217213920050134953078255345173796235138234700603673191185501701050314362257790992938236666395452494292643030856931437329035236463928793304398663875623262371085897605717935897665034217056362951786455094865329172601890430780359754237549134689119690057577744279258751306097946368975268806289036272859865064121593852212676851212921404068647282426547172371250301802205867270525348803984755700091624855515664228293238034332980864522358166899650923716806365299531467171780750542153252623737626733909733804512812513675755356809371157890329916021219996310915422209691205580097362853548633878962747854747485206671372861496546291082967900014575473243177109197300787521836925838735299398090438066796708553930268771511330210491697957095104993568610040061531029399096448201171166830631897840042121875964720498455108780528753433295614022250545642169906799930173875008518821204786915519373954882051035914652077202108884883374409367826713780128396174804673673510570635671939880901235968756020239368343973209270484990017881149484299404492555970944981570455947433329749214487165184826027279780470726310084640223508640751921817758223974733792783993476445200141762448871797363774729438312238281835647513514861137582593910933962270443684649880878827970523951710415118889357076380965667128155960232905355964430436294099539620712281266129745222818616098949184584930901211788170095134945846591067036350468702364380002910129102424550997059418170624615993904990038472369383255445775357807735099988816245745771057769348138121747056252049166059176090397519330867685526530921882373967153974213832916419447280241969707133112924411610462686341719385357431863337424852889967987771806010382999038079500053166120337697834220207641375175921753070588016424902222112990866060565439194893705243582534932099085155619619136429298626637215312817257283467803563411306915981981189949412459086288606166949533377915002399365961126684464148041435879279543164551216275744601799261758730328081599770309861308625820002078050516909084775868664582400893881238352936966944056255735518955297298971744967524832376885236818208914469911921273176526237480798365085661939602534203720752954636833610400186517507148540948388147203310313046566048681479982181319523867049262658796021382984986651471600858696140709182334341354061643362907421474976898146482119990600946452276643083490229375782057522006233201343206689767203725987632062501574547465314606063279203787682183570118047671823810457262249804813473976202731605190748769509576778238864202605490998414672451385851815479716950570105633662783002424148609843340172442899373392448920081886610035588722924988023995861169317541792224817826523269533263822936112024506603234345498774064298890332102195055358126558040488143058026801953616005641416108850303266656235596010586691612378235559928764505021122192496284003544383737833177031134594650900012738338616426945584473606291838911796327723612145087978995292792695155347585369755821913010674985186986840499764949375086302472668760693923510169484514200474618580678112360136838796116449992909968810435259744791796457301571252683859982475347995840324290893984320891903961199660085624891057034542695129691125409533536905726370292645227157602069658102060917621343835668479355851320273584695601289372525424319351774899900552305587411310288237766039072283309897254696400166013287361578279395876922190408844588500286825809764532585914384085202901558773254839358900717196692006187916401395180130225769176749414194993321700446681969657024290918809499495480469255669183644983322881160973424845563759716537552339166050967660897262372848020802453734443419592567742020614426682687518209293979515842529825779772574474238967097650394447701759874498949489136518056601315713489615438021276569781409433407570714549760324737605748976110906345066909793423630889804947089106950590867095595871403691736269223670720959085160178033937409166037089685986834002130353184632670135439573153944026332573701239965461975703893984987985923552097716432672260671107991181767892073943825096799955715499153554584806302696127659857066674114644374993699484577212595425906468663835187340081160148386630226661673667866760271812934255728856395586959684304825206034502153751665315117040458421576364528624832538040875523148374123716625762037102283088019111047151018894413268763562069211346243797484001627676572049407876503884889898288129512650701721241764436446246449778202681911356686506875235298220631816211437736532091679522337634068035330361546445775043011049168267207978347866874941459620958530857813144820089695465298751560338137926708201000753713796193434980318431296450682278935210351629586848680074356476485838054982017785270130697509211518166530264224809058619210611605175498185311741032613163328897692219804384185610095402029083085546939677298919361529183246379202827886027432367934170539821947100996141291042949509602905527149973528841115286200236687975374189637890675011204968672771818812173158051021703992314836546953790645279544219949913580304689264952099654151315111303407352897531240304586914793532999556573058695440682762202569201373682048823962556503780239516807670567919407761094544180706685461664260533372182533413402168356117916216838568664164668445881513915876472712303010185933423767641075339139853824409571615121850657663820070128713714664034527254943957438250935934026283743604914899925782624556666361886127902927673969606410311138704458935480191776084424002857634193222879157557204665462573964331923755455465016111904704030484009275792744195703960832343282854326489667184987625296648480918356621790169298250057744499209371080302698041744517149579332361272229421770712382164560453518664400092428679520916700008747248316531802188433622941727987981127955085088955305442273737206935161980923283090072081154208964207357372050120173979448800928657638442869617533139158656349423728141116190292797786134929611040214353740502636971002238052205815981397158873028438056369538444583430788478490813669333916612931042782491684055826292247548464003902011908101259177490059327620258685553083460007103344723409295974070535801535671501785863814293718355873201897303792524355111269475460955064566987159942697098473898631139351093663190704966013958879129051102629652436624036149818943222617246213379378858904219113651130868270328167651738144996347718057219974756687764691694376893128413808985362324733564711257098921175724285219702930720203483168815979425271149905949853524548856900767630392426951355620539265379142516740804433074263543476717603280260837077701706874187433303798797794106874776850484224691086770943630557888963379238912474830115859512676908531243667919984109280100311116100684680507540525840378795370963330750817063734898073410607430265307672643275645942256546199717087240852491347966481040353677756376746713985803784309534723019073571335375901183064652646992052981146620440987295771406038422936574365009318062076139358770978901587048196723058406156599213390768440226804824525438444052708306351969116782389596727355854487380335733301961627579886849117654513512537994995110545360799857450832197169722385451230201667342720178571360427035129664330986505200697966085426871385180033976527399247445275676140682629174992379505386429240429035857968331699156323682261425453930306590549620805243191053178466765510468379977861856288689247196113721340197722537833028313260658450227618070369586549967106144185029024415719611648480891990676124249907442911518726101730430115394533820538205228821201443928964934256761285066182736426156540113825533914752711215955814311299190535079890424257166881998774857658098917131001471573162403253295328154875989352219158848601602879815871187318648698005146569302420171032405847613412805391995075105959168400587656664186253675333196138570338763600395695889672654741554947098227227692592553180101198284914506342378529006023701189257656326632061181905037222415254885742138337332576699011909056989780984664076601114915307068120603249024618761920015582438508734858910313816110551280347782271113280566553256941602939024635929706888226377450963215739743628527576857718524224253998829962612036144829200828733270700793586582867335813081157222170066851083099291687318512356748777486694860339462346741180869492199398287473226437321196158356019897930124457293867440837945901592994608939384906051597835495613799590881295494098427959692855689891909041068288180135756914698148653128101746287465093670994420419405460124165682395828733337510523104972231465719427670185859509665416425489639796769925266743343288990109756895945375054165398372008147602637785109218723318951536143060156106426999335203949394205753842792930741140059877185331686817252757228735312372888224776804623274022273223522241608389559666581452714437678663325250260348941968454190208667740603152761021773809083844317296677198657886703439585132251933996186143804839899660526237826996125082522686048819784858656115057969536917648603358081668789756837995514063529933371747367480445900904088013955383495046857592520274454550599678359114818358486793264087021003822064943824029761936706103496736872415831982774776554019575530814658786386671813759142681718925909697769928640345978481306154093266430964208559324357858620915080534366748169071412487842177155221694840068737491528427210928282548528196797532846349342107005860165629337412878563277741005661622265602865807310285341453027748810383666096063610268319061447132290334376820613343476240617619942539782141314698138724278188480476380655147417365390634534213704787364634843209834843616290781024515076366034898433429769949255717636031384140509410838393662509060119974097925209146838983588288304927879470735761240898524103152316281511498791222164856942942484796773392278426884700560837543724031027629157497990973418737611340314857771247613747440934277531689641162347272719537392013350768865524301247475641320256144054400079853391911605073864284228422074153146446222495617177166779492744801530348880964902281303976668390794387326519304745329125427860399929756716429469195218297470942301293894728032529365042477735877132287944394880126879765044078017592231161459778457094159702339608197255076361982528925903126273149399099667367106129195034229506052604809156754960486749346388237880456077409395676877625118126272829630536641061244521625287530581728856382276376283841323645732130346106365124183763642097470029867227813806327498346952133540511627807277766340886168087379104857468715145725833606392331484390303344999970743831654965903147343902029274995340756919120741393595707774322818270749762695935786347354695765803256513157579694133357555374219525918866185889944266550843052961015038814618020762840829646182518680268509237609584759641570491707961392462817821394095021326335574179864582190498185280854974357781056348370530952218545221427457742079314766513758937634066508514255136916776633987293118647566957690648807434240121064535193806597043014474289983140465145606297493289551554404289049573994906911264461967159040345972191243440653947676929778712906978092261285895554727287791519994081057827335558647492703861575328262752552780079157610269117812617769333479080852870073079926934333834619681539680341791708843013502204630297595379813668085823257897458936732075087425329766755343104116943285625157015946482513534860571324835320465617925770323560369713915395396459390418552118954801414647771841340535490528540088490871693075864069616585855320409399933907808023213594432483250662637302220709006403503344217864604042290950879110752093326290208894160651326298372709544322528793442473567439745631731379897861218854854253706124623921362673633512964973716265693488744348884383138012296276782096033977630828943300082042496380924486772772502465879691652227130749270695583800303962555516680004084422421298559251602813568285452802317323412777912362336534083341531548232444090160285726823671661120093990090043067872616792050535604995983093143083497306751934249643072181185172333195599785061276347192049611929077116404183784991148406187017932679628007398987540485527494570090075450260395069102904327956165264659211139100528555190837498043529039794518551813930290796079298889457422763654248493102675178487739749881306147544478872434655727320979568336035412400828473640501629513904802101139559586959035933809232716531142954907224257943938060326247438143938976552610808326556502367002968839854185509276130838599399359889573408978016849535792919058236242463878968485350685897636209548797021947161553321541995886331414402358467479342720513926167625068337159150089938682807451855039920276763292369616669267858083616298303071468468488308504812041483131462410867126875005998984310037446822800686649061311901728605363446359141880667573704202338375140354851396519005022236892592092086478395105041510420996067412692207769750932786297732865261821601291439339400967135788415697840421285902775894954476813921494397224215768752339373435555476244702368131903476485824009525691079762088657742767981531254279065696178087393402366414743713783516236544431579885795635611744999306728385525391189819793706475120647771944006684601978347756608715164823851656064067889370372243388299399170969656202373304619939951076353967014665187392250092231117157867099448859842069637635844014543683098539585423133213721347139421766148933358692816599664091060366208786774512381114740159227686344075849394262496523514926599811757702105525256078127615884294878786478451411793437563945204842408080278877513549134928305997982678676881723034951413235453899771210575924949878390732257685856468521992307524168285632809348820436382008980342648870988596517559825585906698967033719203636164455847959722836652764806715155947978002197648574083701863711413812084851710954353906701746713164000389872441840882811174727123606995555710862132130393471132017249210982358975138351786674453953457061750912404780529118277719753729257979102323062675600107456334894243988087222661280211391842056932927095895823822891819377021151404207493159281769560287688004367900301019947701406299752694402157314280853629477047183250404337401007849628728065931201027882306560333176339002141878451924808157979317208280858677547280343618266546197842809736824845523432206416889138275023364039884721312484464687099413570544149551215293329231232941610675241824203536069404248641075740011952205875992965087048680669781698542415696010703402562442649149898062143639403001775504902210145387340340610345899099670532448870390013415041069470242353862184487048437018501628824307840806355446304225223896271103468138145739701170089781537516148818563916571008349683720820124083804353979724816688747097764936646049506991399836343289674019621479697032775045672457889935108050043604561382232208732211864288524726802192653508037757542319732707352169524701273562258631298787816536042551542920901307013701741129842965017611276407999805203305069179493719617217357468621813053032024607081378967000069429605944281311068998118184942705974393729314431788793465901162540595657945924713742645869760404393897560444140917215409125791452031201677648507242225271267783617260968418274603116974628892883166839739462683668378931835878069055582507721698782760008057573873955723133262777851266759467984245967625857538014433488859013158342527260507521845592063959528795329451007148860743738626999381589735564066989637093374983253469039714786694361438072392416159202055491827265329237587094349237013177138964035980572977748561772072925738404255839880233396040759589610689392971448637164776294171185740755239308170534530993560678215926560245657358240477545466035273819864221352246150795911184330995563512181194657395472465974681824773644364455055003664121269014937290257824128750437821865451777781459192147677251845881077788609061501940275919570072317082722181087304918579054169365818895776050756724064471947080690866727662749659389916182134357809322117573436159236104997902139830651184283388506544433499534006187264756427504046685834929200538579734842261032694779061119624513806101686261545444274960234642171474559407340741551958523875427480889663974739375313544547144956028009567162983624086968830474746625105625751779481516330673582579708845727158005657489264483604603339151017761593957888161270105850947283150308691306696421227251043889286717629280717943614436085630315703609725373998042056764255584550905301142268862801401564368224635697548261446097863421836128466278988844512224850257884295181487137248367853516140138067553908525400771766038105393166407850340663754398601577437144613201908549703212249653233836170916005926827107983538404896987150774698496778956044100418801569579608424770431945241091722230201507747768046055960109542274361423324346033293551948000019409878267845249489197007022936018381473027937807119551183292536728142156465944897274116879663385914695034848180710544413333943664511000364978293720826151487892679801764269241583393072240073540813804484445792942396039704931046209858940294329091180295240477272912582144691828392446990490589661105376201168418329132993875217780036956007490439011256627590186141542089514580382423344323995717207681220171082352989566457122049433059445379581612263686502343931935648106183447946068270687944597543428861175362328911981251277697796353298167496191932355758936504557789177818310071997618178564796142497195194451861178877481870703559623036272291078372911284506016019653286486449119191481895400016016257679492300782167925807611711718306228325912474412481554945628484926997053039633233288063184462603844440528641203964048405007823246046988435457820904943165974886050738164015360246114124225062013155873361062419647736169503222347042842444707479252979509702136360604499834948088458401313600499981961299800701679062399967346195427063833161102705942123787560914172014134685602903702537172086654214176628382025384311174047333026287512805498132756307554353763239219024134964265782243930563738813678165523563490514705719093361680736176194843613828265067103032583680614678568739036186112231011228162700278298156946033194776385391203606078066164665079107006429018543553167264528160570278638247480632550637328568442610292783440179774062457307995639685240926021714814440691458031606606474012280252234577116711866033224539193686690603658146609916830491948939016472035454420060312503103344417504684941127997876154338761265923278371211489213709882369315004349754896557414760384382183069570536233539788151533701629542397271184269879918940117838353461175339174483839544802527641752186651140253488885107596032628615253637422370877375293444387096201348892231472220422632851428791926810422815201928043055152891511807491287697241921285937346588942790094279862400143753287159368529791105142000048513752977673525857262594407222334044141250803251089982368375014785686863608326224866690481290130364990827409714392093815590975108487314590399150536431132299754087294507768272795693740426109651055655182649604698041692079894246476134754990652487438620857270589464474729618341967720543605013886405858609782329959407200274026776356553534776843214690631603971386891294892936055536181329297822738051886492474874643999491343009822381966661066953310663001208784930899587078684306122068441393645210969399985729396843717409372103071102157933655153442381302490453610697394163541312574943148084273512294383480758224236031459829887587585801718107367123552155801572345801616355072750955348462986844225277146486530941537512531552402909332401589195373873763783730214667713120319140880991345851288685101037215990152951528157184835745928572946670350395612006838828827567981732117730373114621188976948051868145932454682055244157945615285703707302316899022398172955001433193636845745720074994403762214074397995221357037079620207748477747099272906694504087413611723054338165043278110792907558834949066560091211091325518758814143691925927212952295532551631669361530569595157864665951664989529032821293516838872928881185447844373090702794844134108051564448601156946528871892923388760236120729183264588905121213215060479840120323282893282407149911023552180621831882967078082553172580612978491213262786472676157034938506231382303473365292107079542122159672745048279443491907290944360241135235926181163890675016052046495608047658290308116474255448063364859487555770787410584825632740533684544845136685554845392087410833605407992008040305173487843244713889823516008191208035789622276579870885495595161482798527522261078621602637745457793227952043914553755028246603375233501498919166619843344134269405209687731070443344348548918670344405295484628509271083698495728300763163676439757251561845665265397519476949903056549597982652810301602522016157503485057609683391373503271388948985995005333353130425500760410270856446779641714885473782198359761789932626340011742903876598185870747380307040983704276218396729845652990888465320796552792075119650915713285365433898961701516698624684813646928671294999089060258738057118539134022268555744093756518889356997357990952401844848326387253102203424581637315795679881955816673958628322123536585632630201263272681718994996602867832059325109083695181971981781570270745716555724562829354322563770014348147933124608644991752745394823475682693740831116401363376362614421445459819458246128160227422416802548560136269027145798465520471127641134605168307264182067662013413279797789817143639969275051612899654536992324393863906579289155758892077713763613194516851129789022279922956811570264212409243914765957429272480110698535416621578613097674509854350070381373409887285197782597397865496381907367854034436505739601583975738109645091278526103658496101124937597673276977614120546421988489057114443881233517105307657672046873728590670294565605138774173174136281367429423017432585074936531372643110609492617453897057773702784870818022544030866330018393891076547173759824042865458586718333255252806872460349289782520885454865268453072687810166098590465261748007022179392578679482715870431643535758358144977025396294449762852577787441923133950593123752019231113470611843760564049964578237137183110393820835596613683229108500130504486020717943961187594260044063558886177336602349958230668896511392376831778840458501120742671118009041049508466888466155300757741972083044983622034236604410074163298188375970065969171497731624478813087520367727924343029639803681391759604687744304353011924936600918443624856102387138509480263753021915319285038627788906580875804828334268979059251585771677498959353899864772012018160681807851772958635486307162943086908837639345321607789342718572923842657843727098372620034975275710090122007491547854441401690928702046213763077745388522691651993410741513660965835178908164823085460108663117344448463514838095546973103828932926468257644312003802209946707932474851269017201090434226253587428964949941658131232766714722040568672663554956021120910759762797009517944396856982833215187679711669033051253301920843950752527974453880676997002459323357118441343728903793419621847170523867771078376361097645839636836622253241678742176148686777375459828356455107502835794876276256371344386734755787422068028891928092879309360737902232518499374386333326623286983611205074048889131188657649813441274288680379907171565178733969435525362037285295303594654894070392288499756494942222524938363913966296077306057052998939719075163328158695058747257940105815391490681016095499117745082585866422672467152200807111903921166719679404962986496936338016544189264094395687835622481792448585777998201593735610550125744552415718166036800248395044072076844771144165071477055934986997554190125897010089002032575520999540512343527582302645723633875257636751563478354802179129566784502958785105956452311256746339691809765811567799989997876755456801763765765533321079711477374874461771848232068415207541539444566910374097152705944211230089936879224019029212246847567145423542785902161327088673016354733085426527872244250005319011448019060444197393042043162199232670833415335257669575734847992377655592025529694626065352138087516318344258930209610319445767986938243119214125289192807080752945364884238924334866641401563089031249512243004154647994580717024773886329759541093735535916387127942550841310686884687698014815530757589705018857758611274392173771659825351900148774809572002772317999175948327143257208705261782736078188949907580632762031126806247402366134695446416752572123416230064673146688656600780268539669497177425657902342230276274964958978668433353337503574209467848721902195296693158487059198019799513423349937314031614054641065066954366208470281833804194543356409903810879896800872116231266993964775340980865066095444916674082095200237617776538076268723481069940040117999414286194915792521218404815552927456366852989634472549098452518051372815708093555534815242530935983880444268628805428810079193794654946966692303861413934362758713765611156842713152819791105518308545581726288906084721462968782548327550971391441706223291724425890140816364114290463489739787887752721690456767016735728735424392328928670347900906254342374831247441097230167735070656016355993602852152079468563346652216817723429975503741702701556253364594095976976345968511857839888626683329119328174302719256267901392302697249366716529154645245896637522238084832988642988759409416201750771031392065571003607676983906637216537424635904092690739489594003623099307556169026579731202912383317545656200917587674938119419173592286016949473948682447702830649630836915204802241713691010188795648278497176724992665986608750823667591315168614431659083956416339991307711031435109633326090327303106095193738428720688080954208685526320291931642447646543701842069037062650722190178913306271647653203697137095383886879610604762596787106797446543367608838221282898531056893512307964054184954573336602762600392796521527128217526451264295646870541568671840226650459262767877574637590270052751249537859268246804580615571455876640924131271324356019668882593540019213746026338990748538427517703714845279339154070331204567669987768144653590972142688481311105701835474723429940254333805220038419076375215077705541453677340457710611466182929905091677219497803148686621807807993634464190166627487461653592479817593342024171477539721076811483840748088788974294780156166672605328884225308308931711434236551698203968860788157259289006102521547910068379086960941327984348168481418861252251453933769245366629543288914960849855753116840998917694857367466527329825276653553005844004325395568684605780218609914982382820414350203443197696710340459178615830109265527424758638774775864396693183077841354227699018155926443743009263394120774812110568373828149933467808142755941187022635860141334850527100132220881381627421406963180870144400601549967888916845191223114441487909106215237131531258817798906413390871348656021454421473560925461401678477591792251942048220138454666166995200779859200811696496883802581764772192832109012026990011940245715123319923663931203251335081861465558712066315946993463151057740903912214470614707988306008327265151025046745515128966810838683129278751665890472711435113375284848841188520288833287309411378874069241090644124684977034120571707944915105617023447405098547734535967841301410525857823927108627437185281017676950771880978526457866877143849250334288727549671493745630424759544642635703931067494852288829635980075267303112009817325698007462499295906666935718831507655882879883604341864530743252160370482130433589194068093654122343017273712709422542507843756398845097563857127806230298977593222623565680475838848758555313601584722243788473337157365642834902738010536928326514787193983263795272882236184845728238817922406391726504380263175476025547785848562259227943701323777320728465845699736996625070395947878026851079811678645938849662287690907216669272005853102276521010850390059934003549649472787569614113950864427285632596511007278663198324716336758373667852154575187283390880453870762013164140216532239806639616429677277147986977951521483971566252588100830015995143231497313525181246523867339141047089129105598438396802757155200025354559728806511706659389541696650896722626496721923451769520345942171874004591167179448800892313348158461127242952020809343845396819482448159354408567590574025465730666440905832690918429834084000156587053114380977927228295963993086072506824985782502889792278110898601060972350093639898311397499836330022470227505086594878102200441366334312918475593399266877405766559282179094789552994354922204857188452829672511382504592374169715154946495600440355452722739285037557350834635421338111529488638808011292748750907099411668019138385438994215192721122138258102126370384202781353373954595047942800678305497214913525718214692788280095955036405353660531154984177941245386746773193089993848582174990435179992129589118124066867262976953396762404952242179942608782995115956492364104962450932530749566108844710645076146022364790595051341070990246049116436729570079305266224420735945632526373774792565357469003692905628947542910411091133011243062692466840439288732076824966363848073454958797686080513262372984007984465901905126403115878415440434540549497099371241635526119093174248371098596912982648091973058402866453475763178760298227124690224563397736865347474980965651924715632181114119016808933625646255313402898247426512979949846548039957733363690107087856308122737067236128085286029827435829738044852868820626108746605867636262017219866491571135077710934935338614509254967392409587692638855392010069197446240919518948929027491352326814732854241119423090928558010532444215433443403381395435588012621012983495503543671310959517120597036832137305751290814126530722349986901737639139643210627130352654085152912754500765434482418352229779807796503059390083534262837444325854846336645502728520495413786655540239713998028730174778212649800804953072025125773427150224903869928842856350667082609096757476697582054948925113701213374108768766793411761581582223556334896754172149828851125471627864604146971463448285352488399779875923427604081895167667657102022359478082431442014648192722926618369673925381740098224861947908965182468515088218466550084536283643296016538764280588515850705703481314261609528339832320527263025704759499230729545739080649826867945565026071524516919592076400491422595366367749013170270328193336548549535154176907750214491945293569636228350883578251116768868633916332409526810019235122482636339977115660844442470606931655492837303799008641729811685644723635155564273238117433383695726247279063832608417688381809434554835531295050414702062951609290644742575075686948057876874465161622439850843985813767074120319593676567276004687426992542357708882244894342061947937856187092695249039843655979405254869889098335129806058278546765503364152643006742905138293042575118144786976723287861546539335296707948622230276724433079394398377220980452364033542402106447670388631945655651246960487464908031278459652873175161681781869210690304412435043691073495912557231851696318253061524948020488049022070408607143436065774944185039678159082023264194730452395157231474029478140208652611369383970458605697350109536043377112858763284623038900141524111211430381565152222518479626800084808375785121816201716083944468878712702759815584885611292449496664782405762615904311850854405596125976474227726743361776574137319429391641250384011303804033104132541774364454959065597923717883393418655595980827198738860573422142704232676249578542234225628182155264299488320633532852068533072742569555913103746219630321184769705107998979171242153621025080861615188102016918423358607464823135963263065996295085972927019288750780989091693118888681017845982567364964911145947639642755632072062886693873279814519250233157581594086457511825752861810317403999537601419944243705097186584459905640718379862641872518929842194069638232573352634646624407075242540282685218058405989656381903346362312574070047861818211394651346117973051529881103254273218036599647563819645840582786297820853418177954640884251448558167881106319348393410901427963564492657775802269174321186942848604509284014225126073937672279091716035790157936229682669131103853996076869641286480529337095111191973696318829501750738343266359783893725898949041638141812930506304821341297232462313465743745222385999231531428537204156587673490937063982290381720601655176109064848554795273380689560165844446541815577940884537421182023272837586985579191636522519758801980363708713035043851546270400680090769279522422048671701114496293296739561315972381676858016272095954200627311209543406618323562922267011592206994111298359525352875120494997321137509915258913202780057003878062885518263858117896731698012681505137409149624758936951735426258093978018591830772145397884002959957862173267937463210061788076669929505520847052424710171083672442501489869544402690599595047167144081585533519081568754490775607176220762487701288127112200421356545992394399431910152781062708175933250951446163730658040585484128510433928128185604049218366007823413667937090992880660179015362265217206124894373847962223965318557101411233278651804069749828187355482176856519211457155996066862798029008935197957163568034648757280238532108637142347138829557882393057506134941732769386312128950429898027096647232766946886062965820444452522095633392761969752778779523063500877012904309578234094124128677155013318599570781328155483915237617356012674136220657616122373226943430297132337210831523793669913736805528228104482227918904336684463199556910809604931030387283722023990216559686213741464497237444566621738168867578682342975168001498251834179755550866528305323597646466104071719893736894248219308475104498382195822242728121420441299974676449503306556949968370809504888869740240546642599514267495181919579581875679905700146949105287028150687879152622979406816420591744783276192173730829637344565609186954754193368600073431709513797609338816846677692555907118401663450401018067406361081283951415670110592372050049146493921778710604734207319508047009106038997255451393427496434766211968458259546582593292148999538771274412764977789231884444759639487003136200838261176986427196009812845382065085380931412637345788010442516753334206964346109573216157065568472196892961709044787219350174987265736291388036832145792209024949886453555940660653131804983794878877026612136793524187703871945504925130083711071337036935306627619991485767108713486420966519558225401650540680132301348416832269723953767010150432396834906261071354757570444882480811663469863781060122933146540601300033956656669464493488025564257607117176453923474200981868729702766720401063674137164820752291523828216471659520644881306305801354511824443702110510066629507508206803272141978061682758984700482301351948592191043688306482276416121320732427716420736354049110987875056883954318155950422416713297943851609694280215400463324531449721981502104417997698988428527394896507422059565604567105980474882052727612310729141168847710003389779892373147247094822969400559992141142686792961738003053474969129279344357895825846373554195202446473231002592839047632822929883318272102157709610556524605485791860648963123624225529172179971487972710654678865102975369871713659317620923106879149877478377592287020411934132836111056200595672905443697890643740866427795857682064720702658238613097674377789826247101910895490018922155606280142315039699958351879379687671256186250872655773914283098000287552699234244824414915949376906936065873242838699623846380859583730610957073945402755904447724765051725603994317539391585761837029073862170449276047359026985616098848217493038497857659451762430095038328892624680073086879736972216147932280136166506428910191958759806678845103827850661049540630860341554638616584822082203370493813708358462114229107207276639825791488880209351267865464693385327415182311776460950186105182210291030289725442621766052883286630191343931122874152666246807892417367905896625954717862598791460302675049817891409705235739582137090797890549643424505620344801614017977253487958036808599149346105683771644883476636896541071868501336258538398195272738190101893739457257035478078499847778400603636763173137415347947314585719038363599401082624513412322322062542812621339807271832070602224988791359003992533748040493953047073936658071486193279160353695698159457233965581097322640046833766426050840875219104397235530197699730612522802630912637534942069461812795194706101321419465582005098993901538451540845751671924970877240279753642496455621159469342776581357019914449517654905257835436640535867227235725459787991756247864908349487546798318910860127859087678844044856380637011009733240882835107251282641450966698080707454905340054817386511331661346912065954059613618082128724343316875427057997790639053345317893911064216796114696386638357929216120396209752294447624040903413880820126575575077562800158534848124902983886161360132998111391179685015446911970331796849899381936910973788990724907780488552907775795857623129822629172933842715619567664247184142070904540843448767540557240945819426694113239271608433256477982276055003666584583108186341331938323429679931285491639031354856681018272371972162087075699716910674456745725660271862030784579550587736464233334087787822838288251076390304950034849217469431909820204653402602199470225187909167080269570559459198660260001102457837351442850989972053566665254909742434265115781883292469466006929242336215643987481613596863516757223207524012160393116506113858274888026577790474037906099997357745212166433462609381480217406070664869701668724395870012720160689237205289084391411472862604531101819909680764253718698488497893197217686660286706308404216252724188463512750852768433340497421979477553963408231747148081607817205606105472908974537490096151112762541293418038210503718267477693944259623607796712920290186614056300986804177098534004450203416438571843219900280708259212293900877456577312854601185768059649131467769601766645373901196151678357137692429817881891581412212992805785579990525833973368715491674008070575926141099465220482109717225953650727071637128568515689961997310219322127889213387414773336390870748948175144569249008236665850744645821295879772445698764706446149450245820896869915230487972879529258292143179972828728679364304466192413988740558278564967752162841466035434619080984841704380655107891677563962065434079815083701343388668165321858164720446232649997144466971172190686579195724006062709592662039011007374665401655283245619969390551837622351082145812363079555110736379709930857851391985233174523280461179149272203586100844951087675143452530812656156426611314433307009685149549064679789226215562286077216602048458713599488991934629305418147351197499097642809967347359397404809969041162510760644130214272147723893718740407072337623979124521558159645951844115710784295238270515612538869011346339993565720030635918945693644704597524910340093751746494651484767924592760492990695488569607210430469748871525495512453930357545311845558383227475344449589157434986099885897288433407803430407334273937442266858840714675663353360313540068278533687014041887783266727279589496596589293833462606337850759261557231382410356355808082316629822242057323895248249013500993705459734681356977669942646920278253173764458093769199128862784923567829338256709834232861788566467100521486343137318942362714156667449764673812412356398674544562260777065260231773020993185815622831649228490467550950531541735218815770475279117782021195853705610821400914963733493190549685159321020113510044913874834788302117693565196245871811077538819996073500822387912968527598323196181168949674273709072416044225351183089856593974319987883247188427202486914568131434075474564016476827169468284879918604305281360059708767813602778533795651979108033324374243847911241110575202937602902220772213043393020341354911817366661599412613371828067927886239733944605102721586752337994806069363233197997724288252859145849276114957074237273866434181960688951098717069909822717243291943861218979772306246078584194642462087218715685750090708426953342597742772121249090938486926609438980014069308469640735070496530696906473599048234217128792160666780987150585370066569029242873270834189399731691061714656361734173009790819684369999132343550642665998539432192962290476489191491880411215435440816626659235143006845532653926931524778661652513458264292771517946731757359344063766548123875321734710395447739038142345285058679762399698814298111061131552491789771960652620965301722778725151343767991140938342326452726172373070572982478536094271281679056899068241306886449595767553843170983783020003751927991512822870835622736725212149212490523606941747428240305022358721329590194580479235111235145035811757668759841064356542400097844767856747805437903125195475753507417496153398717227532422844022579248979282807102221362971343650443618644335118317067682136782468898161342544673286452826590741315385882066154629345176053052769429920356608540731163502518445717993373778955683905721390622550561990146765554255137563328467798374225137086990493483252899504837642966028104846843568652923156484339739835114499302738629237407220787051985477517270938553746163765024823715298334824263081357350208517822765212434922734137633263488946704674680106335848041700451326833336257499290448082291168100524845675091070586526332824000353763692259288227579770498235514361448165757987735797367167654996995868000459211051296853945950565496442429455027327779637385571707302529695023271916846701907976673619213816036066748782407040707345002580525504842272394740178008924810662320802747847939393414446913480356388616765690279833358722646147468484759413333407561657807518157790974597912738947447768808412885327240591001020091889420046056459058372269204887347602092730264084136579751166575016027365616394939437662472245535640546733248155677491516585080243803933158684391887715753986169882848796337506187159514438306442789257520067720284282646142845073752964308331166926431394910374408610003223407094087329742111317443418395841743005598290544302381701762984151023705105876862594943978851367886506508895625709240165536353211478701937637988700050612505670667383043008918680414535049797523046968924178214428444517667875573006849345390943860029316076075397987785651010607340882770985502192300982022590855014692195725315902547189252116851300175223442385328602885448924717205133798802288447613241896481890002086100383060954532784127055069601369273713748364988749246763731912256397435140678151596047685574365260843736079014002011343355821893316972742082393160002170523826835655770412924434005848205667964662530203978720843095030746215301600891669761835679957154164863054037259845672489213306820400093270751834290072921439057622849040815672656707909786909578279080191085175377186847281135813346851525319448850716080627170204176452985058925103642141658921108334407628451885073597672468348433525661678358735980016739915413318062603841467533572725891550481021198385371047279308503557444345143841575980663275792628383164088489002581218260201778607988211286566714016869061243785740044995543323017212629358701176219397881448914942616680806579214136888037610202000295038925164853478814676015493038012312344240314683493999526580624807893467133401202041800881830329618252149834984302933217953747190625782789412329188100693164797489176956904236587940825162273702024474966437606417579543955191629924774522942877834031913758874746043687469212352146116239930286756249662747682137212657498814833064686492635550973569396862346440239838533736232316693758278533337463113618997585049296342657096682618427001708965484307149685302313184737861747264974199141843170471289824121297023070438234842660676282600188750767596774494461546309159407229827165292229382774516935722964823110310136009678144509812487076505169748142473376674895145890309695845404072433362847843003745312244167546190095224517280525167284160255010040293734626429948457619442405890447895510518361610599330383361901849575589223225966821202335644944288743287044469573516026266196251669553530295855550542821205252160235142078376867841179601990317523758084676194036985491074725547793041931100347501813924411866311029131634250022445386376909230839748865144892539098572888410470601536213351705389152075654193607018520624841412224729382584037061804731127452532840692104028060870525584388620900234388704925711585811080203777779914911233172656037921461089998873698201989867278351611688366303251778113409002560387417300956972029497838988795047611408806866182968452628394705958440197238948024979827175137183154178445634016185221116673327080641265683600951119883433419022102159230219237014483575998301785089901515530745026405734322776396788683029788773233614225862811877724061020828567049943347858889429876664195663129485690364490768701080542219622697988893949996288120673859623277539350228814695144008051628375805967955289753484191670834205348400404873396396653725189275133309162034276612757744426066419674224934213392925628109882643496363696223464042698662703911311355995486443212830651415878811499261154264158872979476212690452209220238107930427483643121111488998754030677124139602159383122087216947648510033004257300926615031922061279603993546326014401575528426872246005507208713480011268299776417513848866932985699661067019192444409697342035410368281743101748386882200654073435386757381397048537341948326369599064726571798393869256073894117669966892628197387350954728460164389610875699245786091537698548350928207412246636987751812481878280253743980410016865813055877670589788101802401479205596488070267577776624785751776140984120275259039461833016316429696911783444801809644606352901501623900166426934308452499102505127114790358366248104187638554350290062474826852868020721665617293481920777017646662016115554154604181365154179373486404320093747268953200943088725558725551192401322709078930187958339923030943505402226208421175113706531463389542612810395254454406762082500129692406786292476943819983608577328405300688371467930877040226025540126757919606486585500995443014085835548231244710561481914752475928850226542972153388229705973921579921144238992144778380463406816308570155441712921076817163494570152297968097012118776470909154828995892886350396904315258633897402073331495601749117427971720702162282837959338612992081398539307815664930509185208667154662137011435859269427086185569138594899873852657639840593566297945925151137895614216968273259024904050797350453859054461688303114434981344164919141898955327793467472392502354905466824474679566689616752380782879376181386442261547662545864753445819685006660451998582878739463092710108624967191699016664033662382087153865502012115970720991679227557278792201333064774846136209810658874979141059758727118083208536443777790352555000962583094963491296456450466620949699168683888246563960243882756260150972549518431312967897969419072148409933823152740530703743981772376458653522278261556236825544640438216112592093135998733978047892177248728217810326791056550119895205033070920033662807562622836359420073878921091946741218309865359442487287086671401440966524736828989431138502785022386800889144248037196564903092413560180807109091868631394598470889569494161487661121809491678001889770885749221872857996488310052430633125386474562205606128490193647919952645434130498228701408804675282948679530497250100629222262559984981141177142084193525727526560672984319743035638109582521631865422896922064013640064664715337645998655212612643959883324647398047564094772852980553582000555191371622245066260115015692339959668766562700358937544728687522147127576965300891871237963356725476291043577948025547696001356648264860686582406067202831642587286698881517875045897718573107971060486455144703132356785213450099509932272749580844924204485052426482431210564669765714215110556656125817308260071239790224952792665635401200041822297346312267372711729788821361488967048571968627433498003417617956470802538149861277092912580386152223246861311399745020672286274335481752360024384854038847344610088019420599758416497676882497812842224051427453678628288979955696982573935251173793673798578290748815976300366333253842674305739734707004793435503337909219381831232560799472131073536897947955376725847895250178036359211677326025328629718983010364547560670533150630899310642609060523570852061255074678251076256490955129569160570174837336817300524562138180378561500376384171983978187498198041404563877750850221676011452796761731813288361888791491090357685772973952894529413885195679519626537732458877033790173372100660506519102641072442595181535032145721893907371390976082277950906633331761403708120816561228367380243442805657891930115073009595986663785283173407815254307653675781710928573209333789168331922569969088178435812760576186267236242767552959907784200261715732890497989700545141254498431384871169598852757462149973396760201998525024663759522094021401206417850345738766543167320932124295243793477922697315259189616127037171356591104486044574599849019174088835269289501888099426716369712694617172914955453102089543328571267804487191948460512980974588327683463121594254609053680307103750192118794607342986096484637293693080791319357804173745884098251543915044251345599359195535454437293062668021519470666250145113233437808902787702669181870984507141334878649775987470620739098086282556400531690839168871146076477286558692371014089896719180113417498368322154656777036539022063846481786012684216015014785698882952022053309012245137335708419516850998434122435405014339962390419372039047425239816157618601654329669565527782476060759206088412752998301082003829252178194992061632171192777559198217907133532810840306901653362768964169553816549575155997841564800129609566779896383846117812100353978494567788535101579639611007320924051615319535445815158437234743517986227102792944444437707148108703100098233762998850561959401125281414577701163823909091784982818603872415908451175478741574656678820444041222340838605911863621916301381209418722628262336079024137471846593217938158880896902959012001390757489551952299712392015874151122014546933239370639834319109992231171988658007817974685588017609763776744912844305852314604013054362377821497000825060877569319646670376752421534113442804719949596365862481809224421723691011858366117315222332210991314711286418344897501271555995344113584019522378072783509968738138193696957102095505532058006342748742559517231054269340152848147614755493570269626911790701674590645075138162652975964315774677112903024556728407096197279353277339692748505893483104454217490711517032047257829382364000304754900766167735995881952317943592354043567186904324948046459721744685796672408736522751749225987546688668631141515685038610280912788206124674806414344595562123265832813284973960235672539448130854900793859316250007277208801944221058996297306767504459750843935932815183128788833626110442291984703396910105244822518722061091364746007552408793741803349887758563133330186433144657477521384408880400199140128865127061580865465002730058015309519578727797882951750267342675030853642111547216065070750023788788801747069942944914385692908393865558495815853108614998200549284019194073845188592278515084453788357084000051417352713702680971512914691755851337281474019267134171726308709263309678036242216947579876079456004012722326740946490037106489941776408160560017024024128825074402117342977873414180418081498710482271305586138770559348865489687770103965029165040655339049173455911732423153903359614403879734862468666935328650518475910523690406368156792370825615565556692459725886916814952636782623759546667036836025656090633437910481062275146613974600545139785622342309681270494817340168128642072379746142485359139872975461519319275014062175385732364559757006020684633285830713111675309535222258751577274256849682403907679588935706705616044382356143626463995419385535778653786866848915317752995015551767341681481747953977663161275750510771551459218947527288421488840052706377146465974947241272435902967342414493828932589123733170308109655421176440624933446389609577739396583406103998848065332985758555990025483648575385948355652101091655590646377543269773055961491698861528057576162720308825213587571618195525393823233230874244976363206806194420916532903836877651474400080936488342485995602263763590192735353561803890811698144113223632512782690766514254195651197112491578243838153595841964818293248386814081064958907585558721800042066920235658746141970915580976723469485557610589683147704277662997295387223371759741517119674323038370076027221666312652140443707025690726324580478448608618640635954589490441273653132659343764923577445662578432034853644021906556386068721076133670959772886267183802374589221202324080944450000142215284347266461637434796801000565990742064203623116100912807348507915207008807449889564511887520030719921155479741638828943255824881602118061686641690719589190387523839722332816222567650018136773556176584713866136872338744091158225408591394808027331888476902688421266613874426343932062296026164688417491999754989499047818928632733441098045798409741031165600273270332422359100729529108057867858573755393449789155556138495498416537296284662617978284696059363124020874727407545971697198126559713304551288446401575164144010505871729624416312063190618064649622113093457855736538369358564584419138148715538323686806163617824279649024078589861890298557552153436500855901936297145253367089786419606195818475794709638795120911890161392777306033435943733136136306831338316650347940423321393343230121458785459520141024229849481271404255044485748496544056164626828134181606350072549765214607321073388385648398611225533216561617440701399213977799096000395559469470539139433154793881377541960426856788027487628386078971314808657098152734000519971359723608169480629595231073318399880865408251583124445683094812042951604048908267500995419586177548815075304935730968774628251479033247965865198823890363179451882393091906192481791966640574203530768584970813814035087180499392396141546783461949416688897531832120994034493114681296695952561872084251211852498011542899861618633794076163422300334157409161266953461073072106286728997964485300934088917222809007793241522409867702069110446107690703349846459027418375708983050648274574851838446422222024146333818156528302115823324107019119360915346849074726814617076878434003813985290085135737653535419246370860470361379484866974283229378463022695399396107692636657579845248509517509896710779170790486839621904403908134533775953065614603510767841841059410905357629013526910866037385868614165648892060309210541007067768366833626541216755606887205335220249635616307097644136645805567751803668107903488699623454258907228782208783612544613847914022786866254053553806437542460815273464731761071810555411886014554351362513476446625645127521028945291585029423182838430191540685010960794889107293563040449913756488661943135964769166157115806533094356018577493741032719541119337919079043933821585925490670836429618484861704799171114951247476124724304232090633755616930222614319266253538248563228349689665852702325477838047691217624718354444640332935898318723595839329710976823732302734433581859712666766227668287348590121979949814604274046152401879778383626270425784517367975323500232347231743241339398880357851484035894613939974212646245295794878181198342067692686026663634987820536754721497857363530174457779925454989902039334221967534721862767531442053142210056580960232149021128481304013738857383548251965596607390991127109882248598768215712085030840703119883358907502259841708733316300994912195820498926170977850095091404439224566231050687086592808229572648041956417533919815826814086784250835885666042136283706636210673584217619100643180809665329733132053763943105745300454552716930939614541768896943626974269558898803967507230424131671156262656697076320969159760823255772124558059632291081891762303378685356477633341973244194147866470231906653057555665341904143328161395206944267691878572430583330808092822910267018844311391237319418184121027970112500100430464052036255681435989983146095652107478075846379866326119355378092131993092034803162925991711486566219525681329622112714029586673212115129754111882625396654816553948961283832818725001916519715829612225280204138671583263306554305565335465319530056687306127162036113919865776894244497591519992941597943977364670000329975703631615940818140991228761851032121642588018071926230586515656907939950036562338255643537079942505200207158101604271411863291708068474164774244795797756383914700435658283610874370613949805235531620342365272120897684702335012026725626701044699516762180261549349677925645657328321408819004582132412994945448096806806375664513637085578713094617456038581888621092776469609739699258871000191778439750195477578664735679978109542412655912324859792733480371607430836077152519417755674883369343105440584573277284069993208412161691742296463279588689409390397432313821519201606722963588492181062923349150298033627715898654271448949563963308099927364311977220069371813461713824152064845084528317037548450298729570697326122907455499592853122717136089949798284289173878702916433890785912917595524200308177143937974255267422790390149434540991561201061663575454613222506147162783848355697174352013726034618702309474201321630161687793256701794538447075604883952625939434198117923198615932828120922321727249790004112604328382384244892509492032331416819196675595032076896400627969784889003358437405172446036905233428322961047250580311828999284214761522871978530892495152149500580250606947744340452508532838047960078509872971669512738848125830329751161322046891199988197727259951386670271675938294818695785583872281889600685420856530853903862969888713113519597611619934643582934386798232444545671257497881753724395162677182592402000947926413378607567632133962815663296375332388834992408743916080800539183937229236736253818209176176040922261991808510669010481168001659084102660348191951499132862322860518289560650878479037668542138966653596351656106365709838135496369618683319695114863033973772153334202279465597870156224315265406336870994945372697929416063292272592866456755258141816841312274388701747225775304332194469142114308222660754018720261212149149364718472057985338658785026546803103531787226437313129796895001660556232261230971224078815226763579648976710595638781308636971410830273139928555039841785462928836333099241925280391986128110654094802504729681331808814389444061712214514912021866583323783714278309197026827252487348380641366608917975067558247383107534993377050827460285718633570590413195057933584602998840517841339883818291333605733248356875046026463657148159576973190898842535643288969778289761714543768167645374251917655946067410236179005209226186513205234284855670815289381309705478019360244565799028487727054288872779493679090780922301217179395158262593963225099472096530727007037298465809581917333589611437039717191734191104369117178340233347348253411384748013869711038332772309641455204248633363581001873270081838571128883669941729438768970684051371129527850589457397642247852791557209062280799123802021056032337822444901185498920549392506985114173301789131396163610154864498017065658328133384837762584248597372111021026162471821834903706776805425246894055341704189714767785195105827782012822194154599072886283198207849841870007627837311450527764086748394255949797722514646604835842093967204227652590282437555482454475283851682052155839444836713319138409821052413267819650114470565598200653228858707069386118564530440689862661593170887572572691559715046326755474518640507937222506759402210095759517489841491132623257204857809694057334646003532759456695739250329068335487382316889741748444936288586262390137099538336201701718154831802567950005093289909281161058851553493451685093358449054740251029122548974661270677768361837056684098869238421496034966240023211730316182378710395628959177768646131918981382736967661633836623243122032443868536483295860671358976329599445675175706533588174198561461231673768509829761639905351659881653161800927138433254419905377068198834243203414856950441987979663030785340949591523829364246687263710232175693418791937243392220707865754171942969657618469712655356581253920839185103643872428585335381401831319695136850004624867622336311544410212753372387352665332522362851073639961963824765826985156543094346514777048252453104093169458491778485429210410644083137480210231476109575363603899028768075785456315818198484699055557570772639547099100100454244137894682804344486243756378237819660233242439115220444265147630833207559412708663051653922895633928488540386493163705779951207685926886065132230328401723262229948137275930321295082976894408900128035976937440079297280131753671383256223275728786636624022497754339563117860193208424397821005940047958758973034320334749652272972484326640359804604620265431404267022132465865233494679700171933166337295216385623300119670375203640296702000150945101626942405868830392581792730444298996476347674189375759285226387488949332591362975237206419929199693197577983695325970000389323532539545049717441254598165732520085481434313604551027350506044369905064969543751814845199568479309194427956205225687946026439401393496418934275577017365948730325400166942504926342601128783051293990569186063644222061065365616616758170074261751122472557153873287414709860360235006892579964920719124426854496783559681773855801012383339140961901125333680759382142125876596475579933636519056713080933167364495320309966868323796308499115572629477330395827268218602872861788224533263277757935543807179423896435668959893775185594312380932600337012063231046111579560351134395085918569772702967126392375492763109335651680335725905022869652659807814816366759522455073493207734271198462886232951886640684739825393427567639555676334405221714002812361676957393671527805629011210603021179099062518613940016676969862989367533819833734877441742106767156594594806443624682296098244800459540143696424667480140004030814793522081379428644768531283014531531876172790689797302146036198401940437765330709308902296051271060303894695908037562945017095782094293197109062852851460483742539179117544099899805291075146377306276355145011881429649264996994281501336914503659704040281681304417743381971253877077959740816598563331343407289622375510263921223098965939944161116000370160654569030972836024648879221959058083032979747760112744778681852015094948014349299195460731574524035180097508724796339081495505658295438042031663843156403537871811483862720692058782243845792069623172152389601937480766252520147878372729263651148317091635830721848305288498018969902594507144487894229127737509637829119015567712227977913960571132722450963776443791394162926401402723117138294893707044097635356050983421472925928328533753691074291339526847252643105409484912913139401916530869605805607597410310909214604219160554330169860728711750466660524941802708696989081871970659107253012602810028607283278681107164896005799829831749073476363803152380115313971141805326611715753098834659757942987786962855207885409083394247341976260304175300112319719061863652999682059781798964093541855474199200356355365891464003567335115344080417458143537193072905621820076165851069755945592104023336572959040654684416039708935636771189279906031485643971771922285243737537100885349995572634143181215473744503469431559279832435276569614056663380730523739054561115533753969636207760608049623934649249834476774656980003287833174159563381366445842165758328189032883476128980034064707105210860364512412053271311877138096246217466461918133791497820068025372663174343824693602674087189722542215098999044989407371915863300443405606374364784187866795811747241192877200371259092363588309876715334312979518849060117054037646616609986155891282538652865844392375732745841665364720478782704564603190981714030639568690071910126431017669593388530287850589489165944198224495086346854864599971756857148867482949553591466837511715157841151904561720968381645410290055059658437632640714249297139751014556143952879670639660348169313586271208010082204328836054577061555536579312475487173639034818993128572110071627713999643764484340801587004583024319166688679311533108960624466024923937279688077097735941000408819086179378867761699155323118093211719050495268388353008866563611516693247898923614550291828640354643944014208003188382286328313789934908216747997730276773094827498950213270982162427185018006931757336751750392311247498949995804176155588588459091914121812241997889505001304442868412851676838010743893562475408959247763707387681480421620753494368442401296718851707955898291186816993323047573461051220946246760572725588396497836267869367003576862258860475462599621289129824388357666357619167259341957473180395174453809929429575649015207584994680901109917303983059148354856467135210306374705130568440738563157400929818601718747342946674665166207188192647725259139819024145874695078634714791712470520249644962648767946361988923639328598639172225873690381588546089390711201725798666101443607580405076875240607785417961846480762477790802963201927979841756048414259323708003731384080148882521717361276594304782453683560922082409294967465988197253782328870121546809741141912529290946081304274109400794524841124206446409601879368212998596193406694062822875010920442800731184696740921472012092358342154337199286852723410450698291985582183456136677856973066140225905702305506346705585994640184992546950369029286420177593950622798709275984672087017878957250244586790720290804773351953170736103440714448480198495816521703983102700092621030130838060248315804673823859218506188074734476402971738507480247143495766005936925035369413106459560224627270464023366045622110078755935079406201880690696178608570157966121452679567809084042703424453152952937500095573406285727805734905974725993157250137027134375121736955179080317064334751873983981614775858030392959346923698980703150970273212927216885516585792907792657976745659186448741556497664705121984983061025998016236021516388339150460919808502359683403127242271701550852254352366641285491125158271472679542938961455185831364465542393136467408628641875911091920029126680646890464157509168714024993055499080897268210339799002559871874621696455034251039187362213495936392393676897562297967121470739630423003408047143345528200141637091235279307433943935305439245397688617577067040251390630058404643377527023729036712673831068140869168879411531958685678728029561604271125054431262506890809613066687612811415182285735491005039088815084695006233446059785776457625609424244400941150505097054327038950186528550138930321252583773194920968825254032182397632675673191536451860496959427051017372339909109308408119104921179271222593794318738216887419747181910615124529894894212878315719467164577083619296312067354521872750880185450257209936056256086380348386436891125887549033336101310467434575591634107233300490831364944933495029638925718390130652592180059311785442312770254985472899147261041871103463503796939432686885722097189970287103826612039922550320772317378837527394098998590132897374037820189965781810815522594426456797752471607294627097907235326069329949989565798424053485529341510894902989151507093940801326065241833136535717721203672494271113832970299106550817596794669476722449644212798041706118723149102231031936567202511853150306475032954725891844211523603250198400687388933553702815237233135526024687421775550248884187259078828374964401843121170291897847487246911873760017678739641708633762823598767917224655872013944425591203840324111342069096504342225147120942014525522667326568338555406729337261980737727291097062268799346702213524226904236920623333260189042495398280765212376213807995028223546144478284645819350748734663601235689408237612891083855270056761218593186148396416405151563515691049155874048120659122280949381096044816035460022944163180104033165136164135773039182202900400712713765876418448936411925349691709121804699981240518470341429791959263250753557391248724500331681830825887470702943616172477815280672690119530644325316791363280430776088597955948523948998653644319460208075030017309687764283015700119907662256029747637029361656106033117447760823336108003879501717341384485039001110910102146249481364303971289716440592975458914577044206665908759902596096323612745417044115383477221482601096930743588521346186346798346697251845253390641962311430855120206760007941497936878388403165962272578141958680262500227869579295330920337139814945579583535500557069297265118113684982088252135301758184173973536092937241842919616173484145691615038110894652779959108430268504559543323485247879988838537574486300039326160218997279215380785444880511348607500155172678395587731503648244094081565571752630710812948494882123476968902559931411419918368832884521490368242484041798845507919011293070221501390528744321328889319006520547998478141126176240611641858578770025863622226192708337020524559320697934636873968068018358730854500767925495393793714715174654949510748499545864280624222762292882521010920190979367348150682725496963710922713930251237591110720685031714632482375432957931919351579082168710606631536901313664593707584211745216071757397073937480802948255098578469364784143044111320279832862415119088645187557237800556039404505553678740776355211649368360266252946992844891300925756057448214996437578752046648418323256675995639670583056815268721439421376692379961157165035490907007756899376281442107120110124314995700511696738554606425909244703187893050195898865317283210347682655811072907964640520025893733974122335515158678810730248157160650202866225292553551014389686471941410148098900327526393500640052664027690230131131339395524717455030614414147132619290681899119738941803456159526729070346061622161213184772473576861616862621381103249043733692709078625306832384801092233425399733694689889408496188215255309665188430036382451130693621256653159957263334693937146689098262639708650719354166012956360155753536473674528664812748649908022668007269935050783684052878866240228129812383668435527207906359334331477890924930849380175605613821292831250862316845731737272756857499932455804016560349772133036209490366904017783550486982777159628135802467882310523217157885027013225805018149439050309843152310115763276108591602451273300085198717347542676743186759349263108895699654850131717230126073427043369827666183543732019212456751174932882495332371462074458939213301878560890716857291569686396613572369941940237570327496619843892539320509589781539752929882153695581666888982277959635411177710855401125899973940452865350346879256922735084051379642996769445080723516902803192137187764184217946536106932527078999026165874277390729517767931050374935290467895627167067385921283657642585613890816837384645176334703948407634966935621610006519324964403918645200918836129907424641611906597928557089768970427612551182785691425820324915400787153319491860762060543766023661580111047974890842400301794139211950060364159311142498275852271430025289326105108545569536139994053807024679342727868311632737298022696459656772353570657093743952441385456073378975856582763651662004673792579828511745023400990732799728075315028437835650119048066252166507636580862415731456059772112619215071294668995898628157638856717917949923072312092983148302166373288521968107785906327023093057968694527207959816933984708012161354283168411143363749729427645677421413954340770335591405442871359033590633756312941417923181054798318915177362383005140021724162411858369772628466409002295646687364517972668040350620852450259298820553946214483856959845046704647486485680526807936885191879821101077528176047929909617712284623632225546684340437506816564224559273056904937598865574156901647474964303279267375922014991183017825415809510686818345842859866739153157514610504974003268806609700551643627713897912831719547815582380954829605534494937746658704800366840957998490227529105021258245611087563114629295231671284120403698805158400908840076267631347437506962068833717538350446275659815810007498949102848117716678296690111111942263236489860843446929020637038999522059398257829655892192640110781901833007509431761264819503483847331745322407918962719594923184762440064329733950157206972664622484700127702478961210961586366496380142104144508276371126510300855964548394246887064605019115702311851874941219666230468540922038487798644805000314249029576003448727869667524135077565036223138112155427028894896417120708012237042280394234961478056762657436739944841954622888024136180317287099708776591841775409155746520493466260986425481844679142048708358633067067573112312740419307993644984390296138960900480091733763312163028641453314064111879048714089885160251266377603798095265138866893168201571006305876780921502045862271741920036664380085108770626598777128991034846033289515383748168420049065406047410671171094922415159149046842922530225156181864016146029534179882499443618966841158048798970785724897084620895385668571619388073544765421325789735175171507055202308924145836220481065326157964609307885362215198541063748009148158497913057918779819765410093721133956156810308199151860239548295859692219984134650381403607140439403354647952915016031836176043437573082935161387444272728764667889091230530537871525106440155813705357546552819908659199655701716463983963538440083166208762628006423384646358167294237472237232699757961779352190284483659347044543955290425865454745304064981253051101456659340468320654965934318217437941842769170176658072534758919812896066168361274056671005430844253993086718792957582155955406132044671982868899608422416753459069076640863616104569154986709269391092246994908082893482981080864486904788292435052609491817826403068448378007284888790091718996954848773277167340233443823271852764103638439101636306810882848224949175308338495990714344893657986420469358299455743995757007557228198173755122582443552718708738480184916737202232112188333076135647069225157565714993056181380714414464623072270175766889248294339068362276058057309546531338601206167455977157972769548702527202239647520385508285452783984273585856473932266319253520328422552732207135675052175091741382021694085069380541347172982084376976024050307097403277520515273374121971547253084236120903483178024854323839349865408373581784728835711774036027531322303959087079420604889719436733782958020348625314888005403547016328675129033672118708945708449808725845486276372267095935641209087175301361142153212097723570819086946681807252308362083148882559664741046484302560430545197128772837284245359674433184544601967517619498003654846703487499001265885756579864344606861253084124796983213424444538444932762487141269065476337395311469171753913999496611883546800549000589072026893232274026625294437149532317275765264627603137818225595602718112821064071289678956156262189068257508551421140523162684694040284701655366535907054067898713583637220888150913434120665224853992683318972991279162760819529877058466503300386882141013713835408156708308575035377657060093843324329807243176545838013862759338381295527098007001152570347607247208097018894041383516322365062966646729822583703832034956005045694875898677728538100260569775490499818196736392898822758886778375427892331546090248073473493089907446789487759147385008812973058014922787740870624873200007296027280462945711186985663232667950775246746501124192045866957829702534709013298339330836799131696672252142056650617641824785689082231630683440729716841383831006012698768557149809419861712851517097928153806121597684595998097917359036030751659022668980437312299730549830583097818218681510236090721411245908682981848909215790042647625008571942893905331092477314068110873873533481748153823588516247560151088399307078091039159851744217989673004159494690198966590336378330071371570676948656732016997319431447501410472511735859409244649017122014919286481566758291113616077287638890933500772574192161889238010933832917136967646106297025519214227051683739001350505179582917195509794732985497842927409440968067610805272961885076854347375419722388450284687180701483142828698585680437078805744072393867150381008187768741034479121919613242070891424170388065607353974392238237123513586990759044249513921219153661265598850496905060065511742069046095191608402737668953460713182729998462577960452890298282246375442642694677860623699168133742779983648081449008924494795386116190619973784018325678600978968641692560376316761628974982622303668873135970851361377153459378670389914350815199090099509766615503734086946955458994164006641202192005594015385645890900498269261373641369163961379764901635894471363382270091601701831709320369222714898120145082952370138067868303862664080620733508261102182836162409064740817824763109975947990154481104834582478183178207983320405949128702167138267134917638096507788919893004514330301563877479643675701766323093992917232313924882783117870866883119415193281954319129411632029377651128317113453927722775638164834306711740241693771794522528196466247411493315627787643312128704931224409502781974395831079331191510120675355518194153712101846700459682751022909409806723660737353756453922550892449610670927852290065887989857182445570056191127766670235050012291560049290166277555269608432173210270954076784474384179330795965301255472112753876745318922206599790126300935036543686297050834282185191916369692471349808156457155852946865278708354057924708741455354790925369768304208808033625144673271753295582359670808377927277292313074960494359930406481161626489407963711079391630538859767398854076117851167315599950371987233361080005029016263621678767503494037339676123039365304176308206826876215792004226551621074062980002781092286480923579930886101216926132179024406670241539572276983936120342635148847024849529357202221101488443018554322032809742770140513342681241154016473471658778151868794463136947117953190488702118338353219083087499397068170817373971036611930474271678651094989540565554119805982365456255417386688779091206593957101096588203017687220870073477882692318642155894452701159342091194011473642290830372025723149416216138135351164570051348387078880602641106463768018858432273928449902743629873761010933041792252460313998528019223906885680751569106081737639955727705998502472630695824420671437672380700438396905437380849546279595958419642070501867345113478491714159656156432415813184951504861469479816483399441562540262784160687569974959201100779851605258508135519702094618109370932975416484013046127636889056699483585907316967123173605950821578329176296669037330168089394588596305640526732138942756235255127286138504292005436026828691126367302631220506864576065637972138820967345355146682896452452814062813143864728279621068416368901859586892806002113657991715190916927435766969270146812412425391473580721949813242055829787568674773644618980924060882768111797770895938215193837595746444246881345742038976815963948972400400814033526903118455875666515074231542471937022902126375287383990595824547257954060221762725334181012970752951073905380703185046377765545946509557270340469512869661691759544547760690573539340560132573461128531352915050422652649046491942449544688196864270292700623156451697915590688208357635800629746421456489686959018365890836729961975984729890222733759003790144727903853242374198284713125074530939332070496584191778902582935141200972370727969492120945286183350891325389067436144527076317697405648669641064836627609023747179973018969276609131493683672487379056374226118903657697783246310228336386731325187785870775392284712194669692741728927555159862981866730070032611866246122062648830032674087221482611589559837842301532235010532599770491116493131218620215452188548810381886012535683485651446942835520590787531861483863253859492691565711552297087726464082496952459411216327864958557522699814883360791127404909214049887255220198375365169371255928312573945305705616878488411913229149477956999844598057074895348526986961581518131890670875250468719736044596951847406508302412114220047067018495075067255635624620927749381152543340557708473995298449169786465685863018574968407281537739724014004396668920176390047235753118616727177134694489457632154978405892320187495462691502849658608194883159174842503797031600869104736213624997721678212549309282961193249584747778125078970216893878680191268842135595551745765593663664674891180431441849132905720845423360249742965876804714431748176685959750586289706992584460590458095740736261358509203196354388815806827132008936893484045612002677938771919826715616378367745999403142504205799588921877561037173822986970608968380769119820290658850510755248128661663886112959147952509309518859969845261832175359931804008146887226305482707876769193028151944279426561671400235904204599850898011870925732925415712435654369166341030911926750452479690333712182744973117672798711971373882529706534901857836196689447089293993642983102702722432561720044040056287280166836821328919237961502562451422664808008429166291083983736449040087948939683045124024211420822330534450959307098575589920603429254729778422454367038304540436864726453202959343286013108307947140138819672928975191778298163382021532385001694380986502681159130688019559285697003373889841420347644414005802558493834557864876148487386171611489829101861627553182986798291455251073558865271386497726885506765422332020833158410490128380683916112787566634504002249549696300965018838977960030606976701988097636423143852089576926357751580580573287808770713857503845488802405636738439353615585628793235288647220037305217617194624615881940503752945897075996096979613633553568593409659092139004166068929950775496970426597467991453669927667189247736594887061081583214194463502113668385074542697792466920911436115208968106126027642323684975902049709818220460405543154104355304650678879086072630273649447959697467826070029284468758081340880560312222849446127874013699441144744522078640419344279953468281357800082601463902545630611875362873989349867473650546530910311768829229851480988880095034139059370593410211175452574601203717158010361127897601991584110136010062360863521094596639267201330450894940981016985743712864164660729684799429329861837373130392139821200593889554621450740299871838886726471286798368142086427384346373688752475839577195598293748112727642099905230073128005624715546248364581333422952462813406268524834050591861117683304248509331682039647863336132080856356143766315391139280872822121169320830071891956842964628539657109463016712515480513561812335384300108551210998760769363715295578894414775012339724841233345523150451847091351228796600293810150279383287992555576692419834950358352726655903145697357451679598967006860711568333151772153790321507718152003493792747087744080675703553817756020061755746141478177895710144325382324806615043067243131508731619409367077345792346011972985298841442972153851324915139280006156205624470977527750025883373011395252813117928280037636518423310593079658288693433285002772261461490204208789640373477012619151606861399807876040114634925958918820712105067856759334594022197437161858367245739125027877168958490330978122560186880477723073348070498112576325576599166593950926723391400998142255921206630968593835195611699221665641115729247544329236497644298454837856820555982756976104224995907448671281247761954690581048570173735515655002768753260811596056218297465830481979071519675892085104455720137026331244720565673153002508148942109211382898755129460821000952603263090430805828534350385901915623460982230958175522706893781878854374765097641635760275566936180272150454968537249758974404329743505995267800601827983269984219445659654746220825108480587482412914422252828343890713532873115100546546685047249225461808964868167778605849603663027722292642701557327468940952769642451249941409521867935925029801024169572252555957875607739401577085268548863564290211565263751513241292942306949417499865376403069676410739181403678181246202764813922738542086636008032782934456997621835279993393082568325316400785048364586667731070765674811447076099064971060260699273349300357347681241594890198758841089419594622526121882645435564594084233447994974746797923976876562122984996115560956828585523331501390458352217995213103499112500453021124875495523140782063262215757745943774953870539262685171137631291671176190821290554353940242622929178923118369847004472352482446603379376237501036918148912542738592790769767787439025900228447683645980630685694484336985504721723941324641389515274323274055586779142549586808328574815589125765815827680671262037638921895435891725883294560173481488571970157727291497120533570657604853259005995214096061698781582791241385656217203028389630814220686512248308760628318274017740068820422431064061120437506317836397700381452731683485666311585731555825630244788050317789597079256783424538738087204350746238612823219168874298259885897461874443421899765315505492511945514527749408599289222928553502020266275288767342413959084395644865587526040655719636917736693222632108930199234614409968876848671303709334226882549551093417041612922362699140697993861028009857315630003671033445718934627079343811532839395873708306047196254853786312613225960415686782298092463551690701765405710768685109787162883094328650054849757226067166105698421492793380638201020597448580187860521572794676065411506533178853675703287594434311136507671884860482036067948786344321896622002507645796579366319960778934060141348064891251536941338551948078610728482874996333782555665961381361389918908631462080460137373688374157676555955361277873709622290280322760480052216239440222688454727579575199384901842398806811035266673391469078362465601210851613390661612376357704798032058571172970381204807234159968752722650791042421488045796832824131218648109829830285374842672271652097642055184904093114246777813859859982657499505488251657032376862073656781789333257551610022269598030984695083350384231380110842799649452592767595070180065276925882727588447269331925289457819154168408158430763133493531690830517772534631066790897991071660738713094971517377836812827716666890295881231640787159976577801736240114256032782475101611971953196247431831590221394560036960062002880308349730198561981674433333759182346279045223476360959214026157003770837090854083224150899195611078247644347096593325314666255477399461729087339618308532862160105708737900431140294936691226848995733303605364288910294057834410800723766500722263929077277163966935536930618210201894771388593891521366364610547101516076782975308359012903949228573143930405487352908923430923056666977613291379201173355661647770689414140094060620242563571957899656555974882751015031523291198496154248843090805360380945205160989748623336143875309901289710442172248948475247017945579732866239490065325603859847523709109204685500634448007860906417168149836583550333839267619332154204329056834561421728129825541646990325100815961727436060800697204807145328434289148092662222456360520583707874230839686515261982886564394153275809288408762028104163326194615095273782090310145652463874831565952324020894573924653828605595201059798446067786364843094115883693079298072865872046520183185545279463497965846569981478719849394222743294099645257112959934058543203067027094842021103941053175302887719245113999587434988476785052947266093959007295245031393815733844753059050264525254267437621721702167722033781566897128838849405580514846661363247819541300172099522582489063811703269409216826372700247845514716524847318077039667203956432381219467261734980080113188371359348272232227711569076437350810568881394428300934672301458109204300411936830286584348571858039706164092242052074741932252731036669868514679873869564112319403274431666834856950350543225356336788887827846875434695911496867584104768098118169397900931252866273646092794270839768539582379143626065736626845870055452994387057845675519680727905542057505800178561057108897296749432445096357972478340726316192692977612511313622778725000790858541243790441449649508363027973158755919849732867241612190475756161723191018798965218288544774840605326644611935516918606871483774411103923987535166686536444971928151695926048330602163958027945019459439226157526185430851148572502406476091471813217126568753884513989539906672068733751924672943356034277857651641621580090250483544297270899439871809903839328414491408928904114081808527838951070345988923701528720873845577355984923111539416595781224298915628894262609567851551866962605849629602021158811022837837049009234558214024422073020106217173236009342314691826909639226611474003679681287962493962939134297103190002694645558469061216744419062483850937115808399492316838258648261279379945987319902938971319416858474582521825253656531082138956576716406546840945527640628294494604847613658578155390299920268848518167838663575980202983794049723086643324635297344311781363945522850274041099357852036928541534061520279062528275823225400035722928124712997730039700861390905537589464453289037872157196166825422580542543404513388381864851501386170325192865838906577094567735997711541887391199763617178046736817905136772732986189049990287280722121291063416771925440857011489951334580853687785116198330626071230524404251435052976501305987254739174840093933020091942755926130383307763971059079594621992042272960665804755139206302042252746296676910124252282566614459528989126709420445623780371812984082795369521501438056713819795555768356952006034836602460168312427797200157121518195859065248055276340612396843120789430270961550704233004984444237143521976004586917493554468262898575363473515063829444019966683443949405528577435502090053283382346348509251731907983795438075634471003375867128772561637300594826630147311331022899936692930843662354175890209959959107892839616289675391581776128689632119684614947335793655513622205515523702819950650141559328402155340943177757880429629421027503151176295201092125246753999468482153136827202374568137832178014874615856281953400987038286484202932814144361106320024401309446783281282267903816194000147896688182699208800272945652289186661184109616321777504744298303068582334801258900026149647279214982981034516021177149931829697766923695099204925370725769901618520929080460357165102639074240816715763281409923272583131222218698766637615921450935248091619933738960427625054722099188922891780783606256798802169316904598912360465362225456732924237390124489783272307967947026990838369257523748935486191034845578418852361439441156416205358669524031808406569806244048699953602709460813099017728219374766453983478184350753249371021789238642136924327800722495192050901335892903656034192921164155377355106474799799446033338662310608993115585929367138674140295277499716039435359655078625793324145762533676299962966774401447385254489053985800960046910091406060685921642324193760707535881346335637516645121673902157054298994635035601307725685241639030866684388908873427632721763046266978777441185603485462051132528351284592237509291422836159027194003276430006944299236803778402473172856471649301580090987716504462580814304962732573887974157584732757303948269227325084738865521005543824631862523599099330985264455223151760929555500940498702041538164925320885030352361882175170251493842316163640478312446707738484704921846078157988309646612053411324103256473010839553817453314864788087970087617987237619120222781068327008158548660970788284394100678932268109269705812673963593230829909545647850647345106985227325073403279416607080161323245753550943650549677957444120361945563805421741182546050134986288071412610081967977444740197657663772092999711728088435414904570412285675377026268294049743923833694069529842098910291567852253172736853813823757552777399411329283781119041733087891080690521686415828060493016947923520618732541966120266795859064212785422077398563112630288425299991807457168819516207789853112424495044792169138559974997862083134103838092820553538099666933058405310142932283823537128352029664312974136238318868525401573827950669619092883894712777979527338633407562086288129354457515963707969487896175384145162155035860995554312433152503021113162611598258245505982763073669662352947762650636827036683559677136928698455787291276383788433567349801155572203065828898151944694011723308191279784791052597158071852639444422094742802684113121483458112360646674112460754087542240893411061810206217738908379877574970223335256892849404386023163794092079821693011796887736957776118137861584372839536994077610360226526406992513212936840262089364767432574572065151325440782785867378196058198796275580301476370465577689703048018582785491363609783525254136856713525095626065249502233993467987117606734071704706076130737660906331288864592021204933724287435282744478099836164506590613676666254665106853123799158517359652469956574380655849602617614027738562625613750687890170521224168395017835128176565204354128007502536021036481549240596814524025268295083645412538799028250981258633313121149090309562011720837655824756669197006414755108177427631093378859329983009801920193312410491873032258141919662261984923318321829992563672627202868552379443481987854027132949291833766198353751512937424091941204900655205291365846189761976200622996643083685579382941453660678466843615851078979956074844673886624208965829760891078196636253149179759694647710811158256914504813923987417756959482069825980944394496278174907396261052356965817704316231218310336273207619804766913814510446414698701954662095851495751865172917377466958679637151990532647863056848119899566675796741184328632852116488577172301841040741227604676595305748459482168462850545074526778295183167192804036483580415318460151836599878622571239704438109568836934834632806169007054910769564171429867937210860723025052179092432291636760863439632520695195206787062613864367184616491109294462191784159205368774231389747510667175934488234360239608248533803463125335530453530782297520025616228724493171397041848321947257893502423651425359283760402666791926981182032820097099951970035741462128563441730405892639435157494312395111908366896755410056833297456346069842918804151631020793147232692612442323119303248612543869043214074699635728316733143004084928626913456992255753579243599746325580227298315544985944455063648293014639751976512794591232643750887187492021780865588228206943059067553831492886175775261938340139996387149361480353787329327879984631543862928042255277876401329794364317175900452603082899175333934289854204386790283907024650730776035889372452789716122619078150395986529996153748629229471307695785460931912064489601234600332475645213311771352111239207932210701585595308664141840487863971136949410043723592713571276648301330100550238353461600892171935269247507951147186646597256730328465166310428225620881785218801828261675884305202412127646273200962302416585842215004064582510087901078410970454324844620326598677124909696179415393188220843663964400409973170444766009321882214844926076869018066228127767801989984858946971346837616503730967363906503799811505183739377619996886917418521638381788804827807821207036183747805316206767177365192754124871663698798125687209439570149350066507130592726167208701346555650274102342348809275042175919474176679474670128140317670533604290401443765586911465713857260852240744714816710292026358370093296182392311526243842705231904180256318591062880561281944429346025669178495428351072872623872915271878680818183673667236343834875103894684740101155410125344398860655241473464739204344804528132655403650960126210469158558661400199655072393565102429344797808858782914531907816107597101016682717302706216228692484674651583524965589041768463767337387116633457934635872706460280590137762886099123176745597047155209991837883529679471217740349200392410493184885560568743194882781847924951372043693348474993908830497038176283730115803316246827689996666722463147248931676331809670033015890443250015623240341056921363759915749776157153726888007239120706821416919723087475412680131766243647427494040730471727772321803293900618319691235670300688452494050325860319881480368625785774105930610143730918619943351887573901773569735034017708946158510720127702493171956262747591533395195032613670346012946802320936954843153259286799925320751661137566915645774187143735096333090112205269624739795810063807013644167050501862470547401484547665898802654423578913240633603628715019618155517676902808390849722206249539046574692274928350346055480865713999060758038849266212031579837056770066696144681470451038024252190810877863253182491167113271910929504617490460120868429416706746088817808455700663681214475402124543891195523638249052702468400282926157755615409088009060448016557664717357940219196466667278380740591456139898504554456770752624453008551854011984930048417870670207046451443301913347941737268594229527468087756576686888313926210173017997788473661789050928513539468746578107427238161548351174842545170026873802780263688349513261766610777353683326411128416937170643799159437760444554332728797633772195645248110531268113185741391302048655056407242589861979651634903961946532606350711450163955529227408280626274656376032854113232517455997184184770771754190742620011537760142062408912481043249273073130273842940656819304980242615920516530119495164957779173770293679171976769692774323621739528137026028843133678584501366540609669602574981796190561332937461092016437339445075764150170641312474032474008150007036037749405715973129541576844387355824071930840741026572365659965264674568733613492572622116083263051358157706187906057166183091987907988443772560322372643405538255579359840764025671065574802447449119479547115385759696684147412873712030648294876603631385649079438108569086881296807448171922129084974984486604024359841973201944322086099748624636760850505085669001831765397250622505709542266148612918273668808895189836346316215577929802584654291542476332481239581288456499940433301937320589047159893423394283046334259714374885520338284651485614922508094930518126637031742948961717917493697980503432726475394739310386851067695775897987430179014015203295306012196699783925771501545240761411001996562435025847204838676060216901991139550755563743801933382817071351145454961295381107053192320206710013639003390239990042618205549612741000985348449040090370917712373745151073181702396687692000312854366739533523805455343549915360830589963853493418315935796069387261335696921214361506828062129473748614091748975159537729886480758899092931074889952781209181354772166985229651075838033495741485085784656364048828083317126375152148800309080546532243501045559679299872729344574134163312950284196651091571151754892958246698395244177760458596044979043069247030121855103443980540386887431258817557075322619966729981739075805458071824284946524538056205288383970162782153220886287631841854949135697853814573671892375717092725649884040278256052416592224724097068961108512380374086107101518923366619031695671612995371165364808060212725012625528281147237455551761359748924851485176058096715299323369342424940808783775648433411796021507879196967744635333523088949826454365996958876167215418763432747349076273540695540553483589403603796371814471053483884490614460249540150020274733417007226502826866009178600678840261758133881624627167982252083235003109197245654088928554928435855114239456602063705977065411753248375255579332197698744009329760958273676249713463475348172433633853737617191187416073546097551810743870105160652357986041874899055011301253263591635102773416477474893507375052456186440297940433743967136012248736989438285403778893759394196878070072013518550199085759292808364021832695838183418922695427363754596248703265198154412773067335370059792654344425540441464502143423838371620462096376592793279643360840041808302388248874111949755948702243258382808487867559036694292961214898963294963299743756040183870145802484465429982007991323728174414115656732786740525272452022420992962717235085254228184288983971638819297645045634842812261699409789210355598611371939770279293538809385088568145348429699731040431523733790647136588241187387405905501679274641031446635633087410523251134102229254637241910875222483193273775890400965444253789147731203536584585086840684311583895028798350556333180303757111271014692509672540872373492713586703521297958412097295970096074761303461171876323847948322462461461775025543796951508935598696396131101552326822953004198857292194720413341111728746439041121929204604083174313278780593364558291610819022079886799310305234455663883826180219299737864481820124936291318100032447921305354744209281110362256459664448595752702963390619854582650908119802656335704216417322065799096125712981431327281779158744308728303076411239162025703397861350705736953242547484327499542203908271983341786630938075976843438473322301304811014508447115086480322387221270971143958965662844676234953642370450972309531976708943159777256993879900960097408310855370797199211474078970863580812436475234937973154071324537477342574341724919268019387836316852831166747254953798293306550976838818919652080877606239682139957340604761220416482894784389826325192168409679029567493873579376270291319303489792259564208427977364642668588806075787137999811760619174031403569571659888006063613203293828179683073062838919215097158068254937286416183769246705259413274114250687432391410290406898013926910370976706852699692387974574107144318424606184530768224168299599825092241004121482255775986925194653676873186312342180847841162072846046262261193545127065601800101883364606149659508239872377798732956968245149146440451959871882846596720027151217931108625466177017644260869331035895942669736830601065605480298473476701671435072352881348607645897464366556015433367462580300984789859525388557964090035241474282734987112151589523810725477002591145762863317485611729115062459142013314245024892012221583215993437214539203430023449567801235369162722188069836841774353224253416119862638831043460918967230644447809879286298237899473759802298800904697379525674332875595072548739880794042096219356856735918801188194062368448693161262611855174679056207166072561617689031617300590804037566330301429466270611597353714254970075003969247504195160596580706420942445067333170541331675787333806466359958587925194949422116279099681443817983326128007139695398034626874272481172437540068292554463644463239436040283899813823975714334205504138675398503978654229579417219058917056881933266630533730796567043144511358514554681835211770196261563594143616428206246890713366775735096641864111079986474824637387009700953790797494580809550487501715875973221267904019093330494755726709194044240380319904230025390051289991628150560997499459131749326680810340237456839215542181164787998641917193749141395765871842386597934176723176745842676986369737453335327342158973025321094214326492823840743105351547080883396696196465031892170155036860229576375149462398644525339872794073287414779882940846864141736954054053979223187190195416440500006381311170427532830683477255166562207710330116989055939172336662999963476646409598671951139741221559494383392262128462617110991613024470354934195634213354517619600917465729937544093536885818940498469260211536286352931577508338155964404582137208484031599022354300736710734054199528863480679037372544549780004419276284042977856215895698518981821501610881153477023602230018026825993898567314885850616700654633066429479844430793952917010924650182376939104935439589812766694224372613705893586762117780195408963402741538976689779054642673493794802665550143557390642231206435493103236053333678740865794709976506819997597279329049522123740227938872688154353005044019124333480326757821913385047722826171125734086333601407259433057351332887146711537293495774651400211019875050746849126776378535328455753889407448917797811816794712577714437224275574247689112001147625205573599896075011199602311724851863336131641978092867708988240766148960542238480756289167885900551724379507830513520215471724660838159562006334899058463086610610189230019764207493699318477945312617199304401269610342151913914688838408824444779587557703351937664163750142194921869511163465403770229403929812526075906089569966470427889304625913957246438391102040064134379266811742933994708674557909593012194018646200569167199513960008484871598029314619578258391761132703422643780837532997739904543885688266940698659208919595665585078769470063320864780040024826455673549456412971167580653019942503869385550529723094676283956596152159892009287597943389302648589299437332845641594136964627602273187166193147898516250539653827356810567087034050074159328784966400763980453954203097157573153198901925942566019984006388411593534574416357772351837411202870731464167305855191340757467954388138388609419429654361224469717112898725508822225823889158181288834862213643871211622805045210428318747720678750151926318633257578522636992497196091710352867123949926037938507383851466247406576112036226012952459247260157183370554143171321330369207082823485948132339461718209922649075807884063752151756853289070281227352694123317054221655740319041936837164015753968820982761718333665425800215139261263751292050132033401594584628729853134023989073837128391079489626842844611110227471319978323688425567794690346142622794785124335098836164229135603652583832090238637399268158883323246322145687531605931043094057283963303494014425000255488281081007323805931962308668421117928541593185608743870831218492681850814443541596565796086314449802646545359381276292454188758570456402475272054128292065939297748228242116605036847304034057526021884935883298463078710991508348277706455978322554207371998368343446259621944236485998422697154063352999541157072252551794827057577577690293564187185793949490723827588443674894982907657969227074284041265295745741468972588716331605937119181972387740281465963591495839244102038815118446308261832303947443333127761308910354139139011479902098071747734240693437735620431182553950367606651159845188578802198727985632627220219370646703742702213508775915387766498580720117176737024446422337984820423006705014633767873779580211453301665753940846428974920404114521495882075479728401096919297330262605280776763621823721934897471397213598749651881804872812591879224798961616645657661625159883589594618518349932144277536383221879290384740052661942047724889999061981634724327966133506315665805378699873846430731377186067670616402382496104603155010359315333315368167961356246121869473396163368756030048744983895529539441827500820229040200637653687804711882347137625129985046060024144195664756400129298957480630164051509797729279374560962934469147922434862968261555643381563110234250689836409385108581778232188143888303450406640490823634981524972081353927277239065976674206959656857404869270770258982852064026711151811759661915561345429272571167441969028320694546480707153700121448897501528934526976745366840007864019614793595634177526004882605075474286298118757709209831756202646561831741363018362797656128442993401861347923989282197608772659719555847965624947048292843898686059034309288538381683914080291388499211209405652027817158150441116952870227118428882253763766152489566511801708217019450918969937331436030365969613256514169724482174799426735916501675509118052367645013294152623483755726653679842233204597544532217085801797386385974185915433621032571151159860586036519376014773100905929696834557019508722640722272392428682467613401473115936510122479720909275992976363206062725994888627785514718030631504400736625015116506074376429114185066249886618898361786498052512439725085412942554984771847375752639956122855503395989075544267663794466657707356723083410000399338826029068617265010228693119753114726433708974340827769245261222407753301028755881438675937437528129084471712362902051504353788481866971231190535101789332779417371675157373747285183820212029258582741326512014560959353050750664510298846729637752321378795725874341510184282452642515231611540980588587982304488967085302419192894765124396842944978920503235740798376267555123579463682393994206042529693498748611589183579443170754447621253194310295076173783671974347891946001474329730936693944532897994032401961805647105877315350306541361023696220828891487477763291654847021400168263835496446316374133198378927580431201007524183916799623926460539935532717120699405007154428297606222691137435571436045943412576714029830359000846854671805028272245010421382754348955854646812525301640184380414419416221749368541782784088785917749049034627422564997394166360751641204742774380852979233917901554775630314026873028899306563353700545985969237701561167810602377828969969638412818858346893144741756238131301687791878241172639788721415860042109949433468298860023673199010550289928790928177870275909574671019833703013283038651543803073331356985906429462899708915579033682741353623835554916812882095262667635429394195158476904093998607108286013043139680828309887413393923736845377066435211861607809391475964975063263596796071380147803747835843709600905403713098412443262389131680925748300879478893707313214435179480610421541241242895224268917288633320476945154954047784788157502323491630768660531998284571867563342888518932088250718111154836135021792059247300096654632926064225352460044214800431370052939968472295640479872561085923840309746149820326283352019017855334048717336613000491023423143636832965086813303745897928974205366191697058910551846942944096364281394475204508963479596295967969256730436254213224179497849368693095554499948458562491604327885851294028669234717745123627920465504134792179699906303472802480899295022336899079445827230184479801189489973568181699091860383911802399341114933353733768672400533801353385658689770185194650863865640999393273188565633434815171728157206307227788882832763050651563071482505354702357922174155015932437822701600477542381930228019084259084515102684015414293526838749293491603172793060323426766791161317116960488784988013896686823324373320156519148368048387553627685672327792788734740842924397076508226183624096033514395497164678309873120016238870356855419278143120649301775394129787721864181887737790658025655362231255714950873322737671925765913567723172060059820368637875749972632211066928955847970232562377797090990531477574564814155455281612186176942632484713034435098789665697451167892785263696771239446852732657640486415272849051511391275048603234876185331899130656056386545303172166686719304485802940095367274728977808595292530383906155718409311768172195318376846339823787080190232088972347300864212381228385079564823782665029940373707016079222285337961896355416498913872948169147835698555736770122444908917134058842256590355211040744753155840059773426415073743603088401481094452124327075034816663999588252091392699269826185812640254151179762512402713276218560121972954176799534623348948660472117014558898174781913573408529052066648641621029280052065443090900327727498529466367340024861196516881454701844516593549531137486269070747154841096415588856047004230993536573007402530905521242919408542614080629635768496759924878607921844678047981360571870539391902075055279551483524973115386873497791995949794352598248952624065122600551070961184626504550646262122760593620030204416269431231515496993241599129261210372107044755047980024721176217894864968002317367346886335620795001031860301543418050705833383301030332783562458619725073081310944653109578827074819743663257282364519558656513015244576871288900164519647900872476150756300697225646698709433539152807195355481060519728388766002624217408904165686655634526272925716840943723195827563041529757465077848514140110339228127910849134217076887559451340906071711890723478183902075684769283231236170083184539147675717665113904307397741501225211237958856387985520483237299357272680743387277176358453053122484492859700756677279281435532564737751093037119856165754953401729737124343279231804033472024425061273379540737407577573252377779866777506106201828569331601665954859068581848188393303546695473145818337216586633600000686286357244322734692315904252810372758008377509493142530208136481280470112854719075289766768729209193395305403629560548308243484131275505796733068927315168023084656638412415353529826293323587286840214771262131758658158923945084480637023944917076718564797393353118586593283675442498540511925609003265598551649284539093265182487132890066143713196612295378171088178798684192355942836914273341458670087568679179986567884512297379538384581570420201906897492986325291963142992799879033473578342230863773394784117852248008966142027352442212680782206650964957429653226654298962914652203777736724039690764230082200344345100498157456840903196859403146638808478451481359946958747153357351987165163284724775081277707006970818938425366703853488866577141166476335111761937726131217282056656021013278620871952034237829726999304454658851317747429734636308574468307496878155691761672979234256715742584407226585319000097090388621827547484382233456629796872531997253322423658702612440691804441100785138357680559826395323007204295960095207551837850809202837109090428078940951006443193777903083376786195546868144417721475693801602174209924687750732726063622293690550614846002224270032162941462253018083919473286271920833444529909102154215395453785678027560584331221572932298798866376483103848642831556197455104551548806399722051122835805538503298721473897001660603879608185926586825253290627569106171331584258141269704186084452884755871495458257608132301622016578217413845203717941239638987926731984734717916464541406406949164988800960432670832544862148362094077464395831341054798936315771043447282806939301184805204850552086273563714205521128432361923036645965760384380564717550424762316561784654438977178833284629133094690801280416683932297932956892846787231316885966969142249997782974739446697097037267454958876461018643096170353626271631762247699831049191940841416046991984637447925049629923167909581397363686317611708592922517092719210953942044630898411628592046121131223081021382804805615156454664562588968290021252201613213767890178460285221632819973972548037753054175408085368648706081716274073748795889534453202065972193853132663750852715737950872106904052128710035147899718219227779299445855313434323219904960090848841998025578865751920629521951189505112605705021598314524130223918112110860219077194510216016512236833758007351768707335414492278599619197405705728662819728793464234590807869693438222050799167657642809888468388968317958666709047160286096470025434701564833918706549383108444474714980300418806527770561562681968040966284936607059998756594699185068821714129267560900038188352681721630661934641567482154418904030182659463512042185612450386344795679727626985161038921158135204974172050056018217332724699535009433328573057770272535626070245883949143062284560306522071757618856023585729190001815425277906871147126746803064475896455735084524113119582013113663468407183538296809559641432140045651574904790210026313957838917371849554553070124048554852906740226095444565130372874904791283785185029271463435852055660009099342809830199760737084283072850467410794409325004457290552698890160564708773037286471562373941143788113969915074208953336878403415106348862343765741719574090969416209275168160764088131794190961989243232885893225491795531162882035054625955854000185111769472158662163647627869312813130337074441852266127712069421752186311390417687084087953523681607990581489982955663877144102536309944866839707698338049964636512886870656800737272822956219585197326507218983569365562404357477606750209269736592885792604451398216869230163786258659523702367900265615010922305777895235053711319479163873953238443915741192815729586924843305074778313024961147728103658752968942311427744605546041775209400006551646415980416854956099878944286070695177714661371184099090768143351396966979053917167662319781995865892704528345454534719342856321220433915995282243748201471177441836504348685190119999817897387544886825357778353611299088492051284925024461085162584155292637745435131737829142462814501655814796740317227402642415360042298924366653228216857395216970736759355568264791237104584071145306092676441998458350914372034215252988865416724739381984926732847441862479031325716393629602257409406265272184605861982626195766490197421474140018482521188791432243920431210160253084331193350310733395911262331019218244845472041916718021558612876054615169755871280949744356371336606804195504800288280834211274053507048843845321299503570892869526855842895278874971962831288612036363598873374012158123769741978729686103467040888393080836867243704217349787990169291315003222631406750232027555254107027992604270963663668443664727746665727806889074774982987752682545253148799965898983047859181258488261248892399777487192776266264258173133164991358151580644641398378694199576981113574444189362185320013241272414093223570108119887597562189530674745707962910308848334461355236532992249973498363260996348502512351947920437536264016810290702385366379031187708585825078592674418018374040463695093527056192108744525532293336447244646671720288059779260371944611108233511329283790511013610058745486843712667813747571924906113555079005715170454815272885468614422698078077521986955225731153318999471510070643477584300140566121842120717093211007774780358743588024863465421813516275003900634921265274791288879002273707452056835040747355182142552691841436115935217460707894290959712487910605892333928656207597083032143163354628269827487816663211856175340712525259629125384021219282800583015868653153983420342883351300624708968045575773722792296295296925897809856856584164297080017078137350054531869535377370336351275772671335330145357535516756844912441236805735905447743411397957822056003868102482575833234577776792447250902311517879597431355964558730365046870997960960056389053180622742603711730240221287141157717122830357966625958552821786935467584879749106861194314566478974611731211421513863309112715151377110996114316899388882302989268166589333479645677139978817721460921160893657929945584217547282459247952920473681016528008909870683662769383961500947870295886950721259626734614974395043894066002220093483551180823035142511566587951629559474344192547277807804300618432358586381735860791246361751818206141082441679450322674532532513655306383513754245094005311727786512557054382693592255833724506776105903959704655018990437106258380469965239952020417320919720051921352078198539209636225760264848846794506529700483623076134712993090692079279285261579112723417246923958634129935014158095174516404630347990195167271319362479341138280635986527050527595706375101329600405217009476214492604557928598689138540532612865921590842727981105715828368727453472680682055010510002083508672807445566447834739660201339029623881116652929162304353586014230712557278598838199848117550745384011649702994847020631784581582080790430181113663445053301618231977537711364359215253013257015688941908842518744805596912094845905931863718631516057806737228553070926332090188909844793919170554415052945108273709412056144292408959635412621713655843997026982769667137747438224705392998218493341715902089952142466277770545398683159108867016029123276986600260831481829325208286672050882683091163845326924474673313570936857164035832360985556342565134960868496251052060879007896273983064564637640821490504823872505203238742357376573168405304370422273582128741792647406092702785046803185627602331267105095757909768302354767315827027336037070875826435526046441295255699551042399403951773700020360828990861085506759281623199225431026379393329349172719472173329964732790293006548261497458054554628041276651092715419097947217494532382199269776597348310323153695769578692823472402632756308743363476594955791265811428533086326578822486333663823868839343999681484624595610374508626878154605244360082897562765443860931399257958331150109247801375831210946116196023849876823492068782062174619748638609809601761507484232313292971005846631052444449163790804987766971030055813293526825435181693411627922702975884052613285237587428813057191027677953642748731478078230311441235175392278578759539476005239776429642648487520110553411238594634711594774071893381956467294183815095660085140404723946284449957062064459833326990029346737672345109967348225092312960784654387995724992036385213526789281908811019731365957680805886546684915249083973592129058342693336721010434710359130850022343063967851143021745398421587049962009985711449955484359094180900586935290400173942107142773766102798779810494219655682571447142649584575323445881069603642503136197137886734241192409026066562790332896718211225285857254363409190720619581991806777914802534795818118016928051981948464583192464391643954520269764649825598720656097266712428209677550282576209944455532129751139085111553672387209145014185953603865168916959704142663593657548738226651572972863025029970651351857481760578053285571128392424864340797344440828862683239121370041405841632585238679462163272885070572413191848816352282411157195255263198366852900502924829909621546397726037256957674613921435618000314505839116810743180467221389086783984460367893972273145392258558615930009605722075097854060536190446506453346692424830119000064026150698098447057806604874520162959138655481657044461266286293869254264068554088684448115309198590476683630262787854435840558176428819727841919181006715070308620318404341670897615882224208053899141533898593221964299260648159747575148277617817784145223646378071965999975419808521346900248751807555091943159166639560430901456100926900846879472843042018377612433536144784406642787187459014727481561149119833640840709898923216705167099490586420745759561428665166549457694955619835629227696158291901899958938876940135595336301580629364732825751479503254289868738907349809936973828867630953919122272332840178214198320085172384884597651019767278366757671343244289813177667497948501201320371424832652635925488471758066393008980169722171782016568475647382881878204356592140785313772344928011688796726678580461854712932694055413696168671021904679182894897610840292394476626453717670989967920425754600148427912345506718601983475672196942456772696236613987288257981531888333349273289619151340883692185045663448319207497783474206787303284042463260490124808387005296065234198916661830461921380206584666630051088525453936418256245425858005615058564193971194965613605240878558385192412492735912234138065098921703432851154884288155488169096253386474164327009927447642617803256568013895561641595001448450990567331317384002423379565522094114024553164356547157375393470512823564023053863819092772019548659314293625985263433917229316611929430424476326006168205014565068783414096405722528402662627005541317661591591931639250479650955523424686456242397430312879400421962269395028151271799333168168094817778307321087894319919905757684307352711089814945672653384594637066772047562118861762984787983445867927295906718808486227182718482491001973266708523452962814747194750924402459430454645982739797975348117079194143709124644225909879734737730442506457571294309353574681800041119102774440965037942589442322293293897794852604015398262963229770741927463233640697535003355701408830094552058976219452985552767136557983501454662830311943229814160150104763358618983862215919191700060877114893715221047393478220769662915251431261563644962987184192340827696073876034708793508180798635088127983496280409055840965873532205760954990708626663316597242930456763798463858735503921595648743468415015473562855028393583892700036612305879438159463116442193339353590411318943370607609695078174679688954849330006532731255207586897114166988365007757145139300983202232139481514839769054131241105853115365544873546433649138627158168316217667093529470057725275490258413688095439105702374517495820605969517999955214157146138476866159565311971103852146394824539349282458676342963824459852614132558409681193715218118707215589743898381161892365603312109799181008843612726970310118418911438317110427707759140843951677979668188669654860336908586306936208625521871540887520060151108383246833427992022746896382360807058644954408514302365491243331643092583247143044263181625116641635678266900906556336084192162002075621409289659580219996714580765607363666714680685487929821053269758199010930008478318364119033167176102395696045048284022452912464638603522427190596924323977328246538844693112547405074231061258430606196500532379433472323268889796984733531116057636809350475502783467626250235212923262530033550507450124063299978413199366777909261414029945909378843424556676183461543298936801554586796371727107901130600327552140717199409516819969666214572928462925737391130771862232631165848811986725581167920602619824670468720141301538892654088442120013611878168137439064903109310610772962395095374669096145665018558187949944383702794496735564402976432391383725612636464754316708307873020397487580473458684233881416162745347813929075630820544544952424061437054385719717135378089477211870381901320560077310779284868910139952699972806462944189532712869897223963582427232992614997230593989653090064034275273635164543132530060834769172820934799918014191143006319175158395207406583906383437506999836855799721612312860015897291628010206986913300559479524643513902029315319986620652170992496350364666860101955335793694699146188052638189993017376246258420390944353154482261998865322769883060524711022724932668043196482329725273237972824390552745226593787575691794540243908212478153550909775593070361216083838948105601963426181255354467112869605656654097286845487471068213101774636683383947728938028623123829931217436549554870144806515514731132414207001914656245148112368243106675458812306601782972430305055099702621679301977439224578712445469045647205834344791686491409027953138684948461682777037453400378910173253269487064310426965271158628759805943966430970260642401090927647253781595041569403389558233874310712171308863472729074865539529003198642581058718256541819483072012536023660551387717384840154235142444237823830455118558788763722832003262695802992691397476444890693154281460263345137399967516570969019892090361778673304531333829332978834109173823259142158605508806220144481193981320998264621992875667043377649722917046803953075441621617200279911112977442086947125487599648561860189226629834228334328272694708145702857928771105872037931114643841633382285210000727691843594522810470612928252574809585940486858681053149388467368503635071108570519493173297620709740108280692637220670372699413394113305651869405339823851944734134228016838180253367457083626918753876201574279681571640589572641587085454581887888543461178147078746586526974907030044689994813740519528119729921066720392928062361559534470988589335463260661507258486730200074408319524837483863000065844212310587277581022548081192031158520151675984679570844824354646967322585780604738658446192041554474210939922784536762661800842337058145537162473214343434155286542909579713066286055905086931218373432990394584106199486067948994183211975822605647093140368996492542646148765436712740977162647591218427521344433920278582845266122597965763174675922801715381643434838262377650234475283427374577887377301191604931732002537009328521529943621169755887845743727177524229281008762523600092079207625481841926324874308273571342146169893810361407697885212025322460792933817869014472222073552946493853846683002345979438999544158465254192158096725806770393603860498963011134464003602178860631273234236939193971106852945624350636022995507597556523064461211166770609072167629254681515176549004497035438731135912733313764159634867640381692788496849528879943869999063296460678440660340748130848623711360417136057270669276188476509905389251322747361652403779031104017463709120926666491950729826895572877244309156795803626844753660368056320589234844556023195837471859914870723975542424622539791699029066127286946901341542574287959020117311466747366286928796928951314964834992552925687266695668389498691470126061901355474703372871022661912022694215506475345338459613970610102010970355030142744870410791961602995661277612757233374670965189215727024352656298799221119174700220293187734178412503440404228040653317014519971107900560362821955333513525078267469856512598420034324078528041574384100659340627462897068110556375133859300261998738981679489274542386782556497790418954777023947585116370113919572146545869701026952103479505687400924201981255618763930202888196420725343192907512265319388937565878358415274871027690711590347431542378312972536426098308409043480645250478599014723266683379718697406475461848586420910019644490358874106446986338889991177138765355387528061952470848234526082572641250077649811329351489714123876282807406035908701018016826515435049006000076516158806372220827987334566491069788625505991073313917017375846996012525536405033842080667297842345364788685006579726766829085481234511850654569198637960244636874689655158630709446778182107635540744050172583068635870598242477928456459404747797555578943599871882912360767378384695652116519548755998260409384454430918295687325405201887380865077887020245814919923507641288754427988864035550065004972870299183134088741636686917528754681853971862093400385409652284828788650791525552281700760213758442269934632730255201275363184457833234437395127990234601966067697374543127554243729725650741265087675659712466116211574207096833156193498221403720175208485911019463611500318228687482478947752730949364398749075326397213438345436485830736454563589827938485744173665298125279462598648499753885789765406152920216286940051848052280563627875110067632498494382180809832812094567657449788296044977350391037477778776630796492892132757300102083000248642264555053388353421280351120036117425817397279939357672359723037332434396475879274106773978243755216948789761869889345831119204877814599400703255148272026220746681616575855626223200715546797635621345092982945689127986631827646873772754483793771105448888128777003994297238959612691632339323127850242173829379780332019481035760493115803832256249977465389710185208676919662447380402740238422352250304091077680247996388670210650171307661674870869436010854440992532109209192101423170625035946063972170997782801851658980890307283084485077450927483410481649448994596598504313383224861443810882772662501285496508862528786418286995262430429451929109664344839951957270142506207235674570983867208951833281760379343632699710601953701467393659724542226455271826678521158589210593370735195908462502850371850299383430343432337419123951229531917772775355556134324749805539984098063319513947366959488418503399866395800555408345804218928431259131706940737284387109619844913318523635773790818105725152710368145709199347142472397588119019875694295312716850823321803255329201059319997091294368113696907164780688133621379624786256628077345786393026125524184027865956323453866284628401701579835967409681596725928956058990688668562507596610472684637656468521474384625951038251822086636660507776632480501264461112449533047503629909386984211259195911320478539650403545099858682297494835505708687552385675976003056107782481302616477308598301345252600116659465924586489976505171027486662689489317445785443943761366564122608063869344256451578115944848989911850087251806091648290598796936189804114982463322281351280263550131356376816410274343097084169881488220738607909936134882113494775423897839640098197197248183295929769870714788013312472155330796605679916027733644651243169533490409162237252311731468376707980253578533683409547897437894427918022285727805485306387437347331212173450074412111700578644176914891031841640842728884980114832038555104640684166647132938161097805183923349334255368993955186778134989547727063483551972105453706512148361602664650108809580749333107951857481910838842663502447214158435056395713176912229501758192018532343292456757626982237874929579098404363060034031636835917738038557633491465646351932764880358482805444389361519955254850417148896370520227605036671451650468254371312521559195590172819848545704442299624065785006622503012735742915235681410086487167883926132775585283257192732030228758899259362995033300295037886121404272575190865679159686019065615577913781924723233625365632057052087250489858587782890525790437075799958942661223774073848632485202765118170324362532676508266637660444011202976098148821835404772979862572361881595307337948355940098637330928340712539394031980394008670002994809499768608816474139848473363250475290527924909124638552698217429177000434243147009427939855766662717476288997081238604139388175650278569314654405658549544589569935714151741540734589547806212057625853627536745709685149201096890816516789496230132177177170218360093678769340214420393341259593623846932245667299781985939968258648929080260424124151488689050361616199260455541028744173965421520423155818924296963840255273635482042568728022346532588724341780251333860449404976233797783670213162346595908856039223292659700416521496331073920657679332012659307694242127836918345999279994149122020779361996786196009403008753270178450431034055114545410355905284283146805529364483410034605009961962370231403630335674631296097134630819263167896696826229188429363143941971559173019969828665718989028098723738824138951329243498818585546892806819553613953122810619414822492590528789460360673486282277539477678306581422896444593143607471779915709869144239492888825390244822408345370275499684231364546204061292249614486898457175077465667414739125277896784425700895936535595888807165822363556839851110837725727796856894375397377286420889920589128059214693007055227133872920406644678068858700322297676751141563116062555768960089558417100290921279295067000082650044672763788372793212245513710226496473546055608639806582712074802951674255951810255667935523698902556338647169918845907367065419930908205948533836491651634984245725812476917608631901209395985304267468610860344569662499026800090791169463597362071790830514393345633486898822256548266688475386871587709205600771610714321309644621813140388166751845013859981647732199732755955977927787443735579823963554806267177502242046158594039335877638356693816868541032501387259747508842835594056525812895037619108675929954447515615901139289953645036330323959774561208504171213747327080919034715029143653707996494485514981761712723412457265348943783793466419958876765641094015434454861719626725220357142875041465244725123137063445880065274563464269501038734792220332445270268277436497645066100606925802452062596423638367465960712706644621623964531877863725662558731994665188306214583966343641946368453005397788876322242922602148573712366563093455833264038248039617245280040494804228313254518230966554506366917411906087358058202583420050107354626354953658158492858010510681541817145845477453362313395584404847014110759412490794268723631493320599798959695093200532284592469693333757913015105538838249335963649350656950666649539347916042948371793572572076737036913902794203468111921683610328516902502190729048886804799557790145589583883311204820851602512380577082884014149780228440873181117612958306357138153039708333862866671990219290738906930245957678641462725079993737245706573565966900371582469438532144385053854499858647615038816291015045673660939818477997046712174790552455333358849506757174515470417287004242596040412957037889279500213135260131802132761328977111436032311513451908827920304195281044511075675605829430965352521524284666880094242601451155704283977541775377450166569889079532754400420146350006270802731067918840071976677143862582034975232347692561738250998246192045344115745171899201821113096957401124656071514504737694328454896791538672553469305122507130910124431349190728252554108791217103139335327964324830278748256774484584898448661405508291170530081568291830348536072182506657072331442847137444256781889314249310617010918798766403485712833558309235129063784815908326481848213700130543247777858910417395355388539651406576241765813194906514501709200987907190654295508508099248176370696657050357358112033071738722957760023047738675867821390426334257611862676729127409072865101252209122400230268162621103868845457276988750630856829155736255802841663703607619859178367193336393836945001427622806791735711858370872604614084068366962816295564067117088706403070256428402366705544921231826115667818760687453846295469037740350724428689576467282522331749337154861429552877810250550525517158760347530878297066558584280541824336860499968072061425614400092709662306207234609642335526822268732200114955296795101423401351994918049056741335545180787429000931558980196914494045705863586333615729433971346050391390565840745238681999954951908751179752821126999416726008148559984999674808789898119446118999348262275971536541732786304583696670486331755945970136744709370468475628960057769125244527729993068063730838309378010325897635645006572292076383291948095196173156221479978005315520997813983376912390734040831155780581851546948254320229120366019503267280105431223326224426933108310346099717503544942124317774816742840722012107820478202927306607110049470106614941326661152003237705478542873852491022291464234756172786540539557944207421464030693544385954892540361948470863136322132135374773940669620799806313154019856416866491544744483649896679409191927478758536194147973095512084358697461978449330577086063226505356903238919519161531711706834680651438457858227740488974548792066747514501378486310095810852402201583392382647072556666601113337670172009869970972572726416432738960608851469454904753667645592370782306064376746602345393368342609075936773208322945390353586870770203176370719011799301089916489246086693763357955426756571770731858455273297852165145800375208227927304913619871812833568106394024052830068431542511969223441456039898486161997639336202034011583828957888677855343375693215604379739501902862103936792351685113501057336857923761653299830355331385675618358001001567531731174201170477482317556096483701964512406222292152405682029124272341075193070832542632351694762713867386216519678533448321799617538050199619034902046366077981115334034457033563736008633076286833227096011690360863488836806131130455763856040549038407519756524982630219426362749672962142219249165861541848400453617737819884378469977025134281407815264825656149131826846964995432569372154311481633425486538415283628111693691978430799263138344143394578569606346367562024477886558676606369922720610041895530122562849807682745116619759735875464528680747160751506724760956719423940960355097068776112865863443013142831434994308470082508759356159353705539898947054995117606185645995946546157785432648749863551304388240556916916153996646165006960394373077662727039673594739222369760541489229081964057056156772494604468760356972971014632373526631324418199962064776757583536137547904857436947086468007950921701078790616506674877883963471688986564898825250594714514729761173152334832150923116282180340775136036837919586870417044371645409372883922632404318172306073937750687145641194531917225323141289689870207242351417075882013282598322086664797907132605874081253713165461112207294052870817171877531518383394289805434543681422343320714995436252205860242443009555920285815106198497843157101217960623691204476490429095551290523617208198137318800704823251714217682248274167935281868957240554136205473560443047259396622819701115615146972292922746722086539272944166590264489575709854307869524689133666848859647019022079779745204965686220683880028340145000785022972281476992783148247784455957490750523948305219374448573251210621871656196588851057918109761685914036424670311274964110755358750893717842061334764278414736529165542783279386036446340721226911999327238253866362744175371082470064792303844905781776333750229544766724739191740780558114558388973497039049419659991254314819727127975078337191543558576975007979421963376208072290812152000889180350574826063318090552581294009304306098437773258842153527390098287345222588703825456893386224149529252771967651148604586947179259951904764007020364369595827755806401670276852512567012695252633078625529000847498187241689084059729796901373093707623916009065851936707331404111489964561905297017700679800762665842424797926099776858371351654968855495125713232464456772727959718413114181800267135646905677521068028478574698966605182915117921246176506418197921422520184991689697590002569698013348591939886889805574198963116481687674052359793246042549429260371811909335437149762443755698809567473137349636539506475039458401806718114537360080970160575726128066810484697980132095550975400981977738872461497089070992646353952526927264148418473678920916179960024207817733141523565214570177105813582365511992753541889713308758358268260719615577507063074649042056655186447855757912573180651834787536672825935157113615336341264036129708699885593300919264775261662804217435768485433732038060959356142406954404167506244945367318995366200607179548833438606027533463279200693410614170945493854873572040930380154605349421571827391788669621679290720646554742419584046179841784420656375315800539204608998487889369267450743711889649488615634221890227431289054780717015793439765997725095181187180525008972119941697714683889935542297003862791616258438214760119874325980896867099325292468351872664591170408879038476346829165032072280259142281847574968683836386490639673841611746455191354798824701531229825700908173024583815771628279788030241740932022728397290945734278071833187432683043776659358486206935264733547868213577278186662321876832926934687931719183185454205115736675205805226851191068118685882817754326233278016238254051339656971683794521577066079417653579910753987436764962323534619879152307195710523937308620000310979321920768364639946903032656078319392285472352906370422331141382270842439376883267534316299459379183113631585633320621988878191327045204016751276201050591342607136908707259997827713933655925910542216234248737723914785223620038715360751465462274806372236419067431739864613667108048661694191376736670135647356292649326814791295242301409360933639742162683455935471179469662871542088511059044062116971734733854791911848273777794156891811221654889267286240741883681520025660119174930409635075050503171015303295189920940217855930718831388609096809575086427608593451155716522962726182535232413012502391576867149401511493246061348458583584014166783279809205816297738649098270526512476073834969066583706997155743363744755387269307110866586403702671264730111400770513914602244943494264210623198197518572464666610797190194202885615007162256253617682730657763609444105848215828394485543929922941607517243303382560103844577954287454563765621962376968478568416966893247098289576919387921801246294533384027258212862603476079247667294484744841433322893358160552455946769639763667992080271496444231600699057523541131443801136614757775192926624914119770483799495430980948460546769430116572306932431473031489456770185135109846777922107783577165536179258849685559984030470489100690713424514133638012003802390251716313551611018425882080065962455232152265670283068476818380090244177672582471647260834526445947884343076935797633547541088996393360510767561042374178501488113007410872105737330520370201897666960581422029009245304128563434703253557642032154881790475499096294240682810531192253933633702068630329562411712035561496301539935333038995324380071172436541847718808754971050851960977890340077057603908717509080769284741459618802057808365092889754557073079536459856223164743813012177277252375104411054804363079827027697481328790846221275089671324191318506817381704783310194231180758294322328682926916254513398809109916072636958505322386892730777011592860840439122860179993841573477952213328330894500929384636936735306534838267297488993264395021449068977962053324638721427735891843960422968996386673971289435949566592683879512905459504363356002037484155489011920354985263231469474246809392422862133428778441868865929948873052819212916980711860229677625939751804826729291063217595428388653601848639379336493646227832105370963493707889746532407876196735243758000031136751179290623297597130254543750454955431667331320320157412416377615106066396195069608850012882862199540251890519748619904721260245097681550557596107523250331779156779179563189944500631603208876463483734254778366324545417868615188593369910356478913693865653705007252668313244346867080618383111343585713615548461621271670303389725495919690447018809106313342729798347030199094326185965985140572750235529904434232677343516191587547518545014044613334221046476853904947802009604783458303788747548379649401338759870777977820569798211598144518120024953028071007150778776526209444073413492635927501744061625625318567028606417291507590509011746344068538453947244230237148388385185567239626507380030614693829088149174258224847092945377833912332479339602151421801547206234895117026524352581599559250032829250665658677385495576493357446760129385197550970022142119041517369100201321939479148360626919452364614334113544161253025040788367386823005968417457288776429206349020241475490553260425874459434590247789619932779183381468786354394060971600408141242491769198436861976330129504482463328861631232591846759215317165637278022042534022454626647447518950072264426690633251261011586060828749474670008489742028788948867986965470790079902981865596342623856889399944997927563690348711400236833778060028895480871149876736670512997479001235541660517732797414562676827120912387075290407175288322194903444874860977763921151451729601800473094818355220912853616067828931991667671417344056207600675136357994497333142298490980161166707366522539503793169364208484948357909861273132432035100222214202636969178048974295331225699676645390681065327487248481367696385779369556236766692423033226325006611473706555002335578630122573422841631435599909394675218213336463391004751901788796559215036741828980298066126630983322232140565453189303263344340509644220689243866192832246074988088575759035936005758127443462630974062819767129206066085093218225588415204917440256888642621013522345254403164437727948981763065161907776002704599470200652929795106453799538614545448384883824826233460264691648109623057897029810048796187364121911519240563057568388265235742727981659873562689297874755933471720825709611508564384384703273017564038075652348661998049382782548465717032756417002256960103557752945823711166805156025133359597533849333357311700217652522626570678116807546598175882658016803390783536214053996843786290537996727354047529145014253137794276027796479350774579447824689290223596995529128977358010872427894333926653052009737543203801757159428524388381328457514114513503021054227646653096811954669782266076648197579341363088529133380579476433012559101956098581807598021123597965475965185057812468539887163319528451426451711412554714011045902058153153765435853826507306821333551614228818636271844493021681988390505317402222895451396989139790560437542141001339184810051826769654171058306740684943023780391889144690778991709841469244714948970896715530417698028375717994631861141582334879380666443110758622853647262391419784278578358162450444881156961499897562421380682451045789407334509053115746797523215638713127168306622274106586478767861575938785666334145712362426803855518747056178664405073567182591750482259124840584770481627294380414341639511973852694340521861250300828220292512291585599912978764717074125098684818516526169362576154407778240835395869411485025319266046521871831214201030738180675951874670167527716080440033457649484362965155729342999746544365064662944099128085083499281205334232959701007505263323516877643773697909264889945915639863526307121688383799146439537487651732265493464087421227219540270442777149924229345972797966812424504874620057739942882411184824634981587297841536317031651373119621374951586101623421453111116735114974633272750913120080915507975854860431330152809714936821605185825453297709344415854811397930735285326819554448553034426759879329775634272643186799042218117364045490713524078397873513611998281659089605631877906032533178955800785669849622287434317235759715794854719761833954666736003236873972241981467745086180423681527808472631624351437373314907738655267955129506453527980968645399191279345414738990365260377393796076751180370678446341809375037996684912650283924133543311146056751598920793977976836180360325244480107111071730008683841359301295422765105910946402159176927788756061441334564284675262851803525120380562812231536917895913069668750481626174124881687203750229596639773144150130284339561790669763342242245373247389526022230835813829395801623173928616109266924606177299948060838126615096741037340145623809266159816627727859821087214216924482185963174018465942432611464034096002461721926280407524576332761582400657986908527236074519098381600097632828667480286906535316835764995605421935681778544475986382183199516928256339177267620300547102297144984777698409401900326872861665837327614848663385491496670313866678773774939128992830793594196002576721483225297065036722624999910224566979395827433044941096969233321534443705739793618367256571929656099632038990397351757167069385791504198102851319277647234309557453935761592642072863150726790309998016383688850855505235432974163009942111728374329318628717496264910488834820488078514017476049279868381368524791626602578814634696923510254807363667704148746928078062081250178972115544156559138112960960322296494141500823462715589626949458744300827355596090990802220584404806974375361187921835588745956102030235574742036438480650426782144105241237928361268956894640322599960210646207106753499203497331036181528373095858322903712945558494018530296172542683900468570800351719029878977082680035882016239028700823186579003656931972608342611248748728141917857759092633786384120902512561884030363556913287138474631830232453126859392046772829942225188271540083068935932495649291815695596654631347680086758485386834547496453608783144125652393523729597308293480881026175475782378220241768478537691447788628931586159360177914278586562304165062138481078181785446879321449793443268738768559977567912488794966084492219336908879876963366276389580839871596842966631324065732138834920304322138009359459805055672516044084055109995946502385713881114283622870540958652956700692268252115794103485387676802412139606493570610195180573762889869415582658377231892538976557183061586658771545952829383112575610194545872257043730088045318673874580763462223832164015309994679339953720700546685855679737982703021081587760296843726644002857940407403151210478695268944115572263960460627631542379352090567434831945269390487213983079699120798709687034216825711930916974074445115581230408482366647307878810670676214072864066738208528191108587648205522245404376702591577119759042223253334073185856330454406369392061610296774576698507411413518280775481588598633679828593942786778973928425911817132007671913957003018262419695440822613923011697727635590050264522204098766396858806572794570583766868463849297107462670931408162440953134610124623338260010290446111304153577126533260404223765066656953847691939547934660843363936385471870016994538175128073722609793926684750036910800497217876160905205562226424942036929587176195154594677818628648106518224387689487288828486878102176586936350695697264438462904715450866704395915910000450017114183144221446534321896289764442403315511380256209853057850165996414391782329031769956654166852964475806956496507316772205869291772016619658379088296831528167986587181923779088119718685528542946520410279352221722402628068898334074681850988957143847578418882527729383809199982761681851685930628316058189831486828413029179778002591565801835944843111843817800085174460991980093568090826478780602942926684515887121412309599981441131344933898985642796820700754343428230951013150243229881047181901959363946532660852162793241983759562614991528458062989986372408188729004237446836294100508751902124754777822287207059491223304083382407386844102877816246987599160747780620705576166369421823286268805279170444227585172119320717713501408060872980827881764870679652614927633517860880118230899914755613052321033838016726733769904011827582294591856148219123966816592443043850084483747617159160840359872753666710703525969137519152144340648878792134915846901912666443195012426870281576337442518461960912624348115851558470197182973772984928292571934042930040427775750430842951673207397183499537593918987547569039635434750663231426159911833091850832544727452044490784611963226759834411004231568339015690654112124549785546419780563211988934082145467074356527750677829829418515946267742507732726879284473459626272607603793784745345899130130360768723208124773549507725358665750977190714342743913150829839811613897312622817964216720721645866701820937235160464008454216543974968980383252898424824457384000613704468915168395143745953908893642602357541386854258410130614756304089701673278525492035438430072618063570833215117145417600505681544761903369291170292860478054753670323928283679147662402081147891675090424196223486187654962201795242896053816362453484464719346852297747966801870723320258926119484439552464600009320882938807035332964116513888181093148377858769686656549382896631312865091007046748830272791742301669788397063825348330706313765022718398169791927104762700610668186632459505347138010588417740751577603326669473187018804327502651344696924074656180815124505261974782846462834309039882295453359295137009335339143236712871269839751639356934190884132479522483738952886266047347746029938927703556621104901585422397189920320127318075977289979530247004654942739662537032411400654764603380505172958103597207506684071139094340442130758827752806161949278055946763313520499907931976133457481639858234828889359418454385598125711983286847637844612964583795258456003566473683077933204815168243292020616306351038409010990340982739981358875030020127485148687230357681945007050685286308978642975648345932153582203687304315034583051539836126481522433889090486365042725936546862843127577069766295180307736774936913494707536746278860490210383128419102223605076461999848968836016096300012785457357636643760427789845728696504778623798662653056686450853070095163204342810424115646880170033256297660366373986873115503197900065884610710631499866255520339993821452561925639092069707076945475879498436381557668305232722892133928060680645781992036307988004160481768284716741749693843281371810094608033764207425716851137579635474793465173979886635074956210663360841726875670555914844993970109078524397894298145010357055741985835023261894399525122965962661908602905695028409045354284965117731631369276507161666071659569980546380324679506686721498513128412585102988770393566236469016354432473587629012094882583127767171055023195842281478375344269348913265301908957134581997648597444873318164455238756957037030882663928695513893898616648985974655410751356063661109891706355799096591843095862668256629436426749850939575489650072372285811705366132476363260352102976158086079765593001370807324277617545682771165387240572412023736767056345388536926221023621765342141983973660710779227843455546970352947516428978582545258756216919172788426916206089485677763206006459962189659132195801525425885025115062982632772797836456469644295122668649367989114155483589929447041164373551001816798523284580654554109577000075632167287180115971194337583703140155937949984487559781164280971550090702493582764536608050846819360266521622345570671689760203419170659284896544130877579140908860655278474519848110202220443137896427399601742604508372745264090654985612933765092085715708225670497368527501212948221814592417145000778113798557692693995434483486513098663372811949641222393901561380265458728834129927185830694844458584375270422839365124513278886324103274174582642700198305776489889792420241502568677954562106485233083172074872877531985426616659215917259734333840218515825538056883654876761191350973001742804790046477560273244714802567688508427084655518815522930316050679501058574443818590153269617578365526855059133916583238206107903333452385484991645245187573793013588252394354918805768120327300970489000002917894856727881529167074819606791797843471526636424332658602671425891685566426034875216113937047505213910185528598020030171635514785755994507669602281926391724778788532897119401350525401445087928134738076225197781484707021176103384698547387123172721475106645879639828933083780953889615318687741743346721291374693038419141210005955964566813834632854949514495803656896061778201285438160842785819290569186776818595776310244371615700123527536424455586797881774227876969257761621697017983729267305734030998053720628975179606194864714963862823910884616803436976106474302951824692536143585567379079515816540453311331793712683775272354513414243411303920688683717646318998076186084885106985198616021861909015987772727742791480416219134099102235657044410993296187999130689426576217502458158466554829002883627355750283189269419668899893887115206311970978058021521464309602918505144284395855857506912345385966387286762678395219686472534862597061632015776812470970023966613044976915968293422812307125555020576914240663674126952476860074817504618860499209673460867784067008983022198760209569407209839913629791681403592157266102130276123674761543977076071572431315035996072438894233506634907422437680775483885115764522217400324872639409509351666868810224434786221856480849605581738374024956167810839039977270053940817681545951132796457872461892814648928585471478929011477999841342180941605746100369532550569766893708077098228657907861841523707213075321128643868887339827698102458354694832342810317309325648106703599702207634375608632801453962183463033180753099428278000643513436065634521804085852686100380242829935082875538344980675081309327978618481847809454839390368733000271563773091526857597878012208125265468872664931315365908044903191347999088078873615636871711553082732703068775315063841844340422688978246683986489519353004036249914619709976646825348730724331971763135533072990287796141289924777160350641948897985504799526973893868868703565200153874826913200468703751501234750489875677499217981781319564785056967651143833502491339546111302587635299453546249985771898236455847864650166088950587236294196151373646818281587956904627389732959429613080390042983417623795919457428045693646899145798229526076624267269345415437146533117643195551570623547033964560841892380530044956005464265750815545562528536026931182640022908754822872939447768708288332925715150161357267598921564091669792218812648706037042896868335839836748631651127343535389360533368298354789656462912425967945098003372363321752759262742136522021081355995166652984773040740136655854194717298337631766185668346227608769793385835769731048623201558422545136351420651498843710031854790423264991823877482935002908842321029568432165302562730931952484914538902461662435154341323742454651343889698253274761514514170978093605865260562695598951465332542865013695642462675574503211005575377391808816166225258845491593791505080469451171860878494990393856232985417564810786252350555578986511521944215159567213279850061630023929624979100954879250202551556423699660640286937063167743714704427206882046759051558218178324506871690589015492202098689165796316366997516788113740503693779241877411564029574589389149359456312598910254515969161894345928094346692481827738816232242943632994589481881042528715254414769622813999144589293102468257304820189607114526040266794506964142043673002066754883565008951905666115842902155811217556112050941080904410059720409966624857896967060544318368116044153229507685701929581361065271891770336155031288412999344682389964144288388962368118634298022598687477676679221445314903693615805682779024128606103783423379004789117449936351508223411524043230492147812032753222162270165288240696226865611911672175749503086989064917433080911764542954323898254691272714041190598561848805361296223118859716284853328641073120434757364829105849802722474784107001348388252480115895324211180423508107603216643728865682481288330447302020512665358680002992483255855964835580469623040865452146618858408355486110980133103296658764779429204756281755229109410347910080543870320242709694410655216752621680304321620267569334454172697769149250071650756966215315620451853179280263807862469345201724559683886603766718350299819417600824041520113503880436431309185260726593149773576126266991603529738331244734277305020468322067028618726466735214625550853573294417254904641826368771475780277543516835111230431942966565109645685809719266583943586214835660105724672717872930149934220072563632351104621035768436091251194664115515261114638628547518586630864672011499086427012678032851945493873761810180675065113705388287542026049745367061489576424450038922032913210716174713705159794192768831743274166463342943985819673747150765951990027887442771715636770316611626805646264383153270790272285743512505426361171121658833331651463188063852872793654781716990659104076575308257781573436815501685292475377871196531083958485457872243832322540565181044430985325325976682877925047332908170707899737582878739968201295596566589745321106455206852139877951031561914374483371061653649384437432139076750120118933690588776868671511489608461162975030943647710793263837133571193433886216568511523641453864904696920531423758668348668553555203211089199801047602815168395485685537877113339264735120111368778312257309097461337505830201834228209815650480157716692018102947709607199865758044210361205159832754212310848791547351634948158483533082542636937437876897969754157762625604613367997789916684067850684974680690363910048709074307318727014251616108693708268839125271902708925031124773128922499384277294776493103046474743040236255889155000041817090417934735012896550705107564460232134182784841282471443526186245331304402967489169116155485856747861750750071147466429980717359446044227401176416268075695734761259103843700385287095669904052073650732411225953229977769970052361766287959699379552986975968431781567961853091154763050866771609527722937130342347115593460158103815340662501783582818049416722183988926919928058035080143446559210687673094638115971264455862972285831437205190797826507045161095387120313058803886891170243836124511891816879107548762733359687193432345211157789799335912265727558064517072104382052410864296446878328468131893210453431313757345008481196365016397805072710591879380455296154022272143590621492087076223877137550570429000011485778018672802850015808223275186980533785951232147267420538682927824596572030733857728791137794314597325021943366236371936556791550972125485548876107721499021642720980863828083274998274431857898609547793846377282476270768715881964536889339785861211660596802880070705231711320175206022917085462598396007793728811459200058899660475378163708050595444230317256516931818534635517575902091399895252780227209852939436772317152243796031199609164252186285422685630476362923869206998457198681852194357249401775153575045167675836790464947197236396315682567981024878725405074901426653609338614070200229316893146567274853475015872872441686720360023088963505785293514326191758999992891419712693381623807377773892914366743293548146141933414781757189010717385232384633641683102500302360884748888362252677408026011567748093471295947285991044536503761202183833966382103857181408787573515778645053983817280773811378230671119666411209075497830902501098053101850050662817421089069494017359210572384899235320332804512017451854052347113284534550403156446935656831014451419674124277788773968188218060891159772191400244995699833208267843589465168269950634776539729967150630289660967130807272257233839648519913945616497144896987780754087490636596238222722501490839287399281415037670373797884211151788529773872163134179878081642715419198778737164333327247061672268722049630121973359662780138269962757948157928863992800609028440907002803798119042483322299819930014113676799776245336738250504258052365554529137333361093964536334130453529856042916261686368771956715738233118295074763791993627300926531588086720539461273678671480413120390585809306443898014212533223566468776405185837275764114656119355040345851242736127328625949549165304890630320230021447584092800188727035704139731553956276792023678109090932310467759913216279419366093950274001713486350957171153609373612469692517303637068352173298169228572575732623594074333537774708213228405760360039656936567725672016791375027855160334056605876161078036576828655530963845738709899935477729648165560374253141548804952650235256742966325538858860905386063783353532862014749214950986797545993691752262835130367765801254766772216357703311433647785391367555194113954219589344013141336316097297188867214479629315696121522304222177603786534622894945762546926635991388271445902438034923799648928346040291383773634222393970019933622840454193602797669549025297147037201090718059561770249048576521449788384570029335296207501592125474121779482054242456306062597333264696018457155382862541708673115578231555552507197598860782542937417120415941096405719298752635419781660370070357669301088102739139295474876258485792817953577935738789845775219681502644100952128279957170940531009811787001661761989494243033922041633469337894402471324709121873930813837394267268984339955091844813088938999990573387294524645980075903389405838782943401242036825479480940847158528060366573893725050701379904615362308468085209387678042879953577475864640260038134040389523067481019796540769772719749550339881638193056914337714880064288595298774818705823971834460883706432831908156104395415780093567561735743130687332643602617338930654362316301325013521629825295072532861392774377998731465580031438120335688443852607973610420135596851719436377372714649397100009900037831175365234340119422496572389372982208377318405068235071214376635717599159023900016335181671785319979225971515102160395951678244618970010960874103331353378100480279874235075059372625083414958298849786150069707416004177815507783137944061460276198771542063580820399776332032637499444481946468678722891084543222043636951820419442447441927491916238768598476825060422978775315666856677796625849226571386813885391544424728470111149636528922681755941933357241110349589541932099798388315304068542680354949485939005653678757301965550979218399627715893037589851255210890969643493036889112796512163535379712523709014130751213200255960440840812291884515436780265230211001005052162314555065291348043124546955509028403701349202683961157302961223280103251814267666107237516144898582701586406081606757726608071463980877442533050840394099388966066873809380790135389177407786551420298079045065538910506102080108773486501923229353611376666580262034606279619011728806203350369428262584324610214930094111604821749105425673078886852765198720664616855317635147262730615724000230688054117831264944984371240658188859924040495178347649201673329591351875291345681032937675955902766768783098801605224337154943975750198324723452762674090712259495585193775314625778701057163882428313183355696576052510383493210570741345915648492770854453943707305368926601878639963962539223110025094138394187811010112457797602653216418187948028240142918836837511288174197325250669632070773948309123048824631328637874714417426375080702860070201072133381665260698062657502246063153959870835285803472590344116914815863091688927044184064837858045390541886717825742326740828594700195548271053657716978786562813139716746603306564337916010834649389884747459108195989802052233567305373154629580717622052004700200896571925572844767918628839128037378754692358375569079271922227684414527965888135395218136824760338745932107126251513752621722408590641088083050235831857918605411840012135284709134078322675084967493397775955804123159040225643287790597187397488798331909769868009154937870905196211950702689162084853911386285892970727068845723336283849402967807083885206038335065595657217873904502016863717900696970965227243007243749612249852842636524445562012177446357182654077664180546220723099165310545586684780958338395798599633229515911407397145899035705135725829696967233522938541602213138125861872582000062231489436250286480454434395436022081393607816921627730470721578192100963103519678132062690400889484868928616827337014324205932750072831591201559391239860006944844634201008277164264169284917691457720191496837164433145791307598917041133531854706235214335619626083899852692808198957935411147731018466245819656485397002533076786602360729357806141866689399696335002049400869689785610920255511937864932508211951489852656723758615084426272677794194330783509012498127500644223641970474605044758600867073592112750920582552588109971485356583861175738841155997619879969733000534650575070970968686272838595582952966489553759120675501277983509273055560673317153213964495206115460085161168804617467855752178326276554248761114505588620867777142723735077598808841034818376659534167009946698185353048459460603021851399572959866140827300936976046409192100879297161403177831687826932273949918222736449636162750161713929409939939968131293608631854503411905534170647249506497155537312969139293010081162283598205691070644572518899822766408360229948556296869746905430205206242725926136636083795498634933145446629212778744329451282847719699447712990899345139692533946198956491003578406345910954336848962755367594085877026726679105517652911186533350261508603066998293780835215951672478256255679871256899196768087615988387476427482951722667214601438719904040593738739889547656768105329430878459730106335019080479794685908660929331169162905597349991900067453727785096572055448649980514785099987249852733835717939779692509420206707743578129386313320578043140071513191038377275263099752430123460305548646202357397909129037226143690582653709473540208498989451261671743568066941079248538021088384776680023155056917922551991474083342055136415628478939298306974449166407152878942930716269155928164215068234221174013338594730273660161990237833560545685126045404041365668520907907905159705838083576332543650273980567997228191930837665555107405983843767795088564536273385278500338716005399241150377459896944721591186872877260945429211367112183967204364978151102126114386940538687188243508407652368919780657668889534974345847740462915855918612341722076766496195570181021845329165567851065396948499850097361891050606985013742462076424120602699678419460424309175006208373381776326374927661794273992802932287361515058391862805522580383513203150575510980649394783153837867609443093202029614352315432575192287807634965670200670243356906129490400422722371576699463222066672082936512061081488707433691561476207298230791741199282790027815186187255133842321925982369278235274520074925015518172147329386434547997572876363506103855433621777761759981349626638228742050675334158989627802385068604531151549076396469835300768878516143515920278994373155161327837070583622783399810752594383421032084934415347237602754068288092391420605077167280233393521048820979768417188439008605664746133647640867478854963483326948061792716077718212517755322759741994580430213643534889757274541111379983360490622955906085800243192067466244804743532044454134992956545613654974276555331809312894055527465187704744061763833235501574288397749172012387264829465901382306565833763387457899749709532680548214777801020313834309069943979649020557891379994677129985177663514844619683145753077602320119127232402788341171730771611623099300309931195787887807188842705826633088310546466583048345749466966933377693510502537800467989102345767064451769861520613459453959879080957361663216086185234913112271388512929942652915975264691709122551237525440717566936525201879182007984343112310407884271836396217128431370973761264090770495934394110199447300719302848928964414053773441640383398947075918732565311180429833882647551528630474125412806930672416924916608807893888132184614842153983434129101366363953380871935997467866381587600146408582193689690319861587683445226008949017761836800019947066750845443212853781486718334899700899295118854730465038652949421403831451702850289771266592134721844254092781658954286981123401720268322627246734713138135188734871336317388390490849505149510944151762433607354508159357281544714716616906436498305784655918486663528785463611800390379634068623624257882183105275263438633050572339896472438169023613418356898175790433019739715712822449037682457420880923627430589654228482061469279992533604005273626505474799753687977297953024964116665232737930895479081345269607239412913518781900861778949812201928258144289749213510135415721966402761660265948774995852238450319519393833401428215901468442843527234032732667949184512093890145324400956241467699888440927913431487049788705109259729825362354987308522461045768996298084644108141415725446390751399328895503373234983811604924243500788332352933386602722018711722652356966970963027582487417801057621044094840570775803988979542487603733594444749426308467350327013927659583418765881914408445735819364467472988946282279905964426051952113448127555926202718888817525440561624078329250190041721777248054120844354697707678528726007218263953353688660301751742449140609786921396192842367294866387194789384207622226107315556987865125039867376285393059134521558914345838209747917245648572919088146818142785714111013018519257798527928400153517972153907617190874561684296041773780912463280301574016187562729932511405372046046606699899331199129079077983345243825367217652178256908800988467914841289543307764896120487690732901032569050703639534843525501938038392083773455916233158493443011042840841037550004743116922362313571655602337370636430416668426481776440401034189655207005996256847292166274352581050208317149956956618666973839551168331532894231625188028753248930232330978602448930039117829315046340087942914047515705416358680812397348574889094476476358050925949006915310360563654542342433217013605915132431005639113081111166484870530736865829819934845189295430360004203960651892113441917311076326892276962927255065853967825916448164390707749114068661341769941170638732889325633654462355706311057778496848975538145988730459286829008330104911040119939051635947188717654393518664935774132154231084465002775923205859205606793991201306141787762497603121559383517490648110461115042535892731611260104874460506889159407274614576615485053982498381898926828554771701003292088294838935888552764099952040435175130320313523878776705801351421367154758465494177536472272668298942543221291223668623707668339323240295859770461647265091149485565288367950848464830229009064406116147342631036202672043362508561070087999444126419054172087858335759828383084898383229919050850950104004714831094779860219897609392532106318601939493719133770412309621371637092887987453609377180832719712078454570685121453844722304971908515860563729976913249669493070586943028580217534126358171802230688086319642721088204109211311576857806685378292663770020464596429217826108176863715155958482246800395234745450299126761333919027935247199364565540305771603294754699056168454377871054773270097725570095401304679078801056541685026118282175940516170434111726518725445800136348592383725250786132777409190229781567207571277402604110205898756120846489372196678696676469461993089439190756723367097049166981136794679912540621045544761959189530345569551513311666610636742698402649293026053591163765310420101978571259703787039643480646424851805774175871348970112706350226273439754689437868381285181492588734319218342094411360149369268611191452251132489181590248267606496021265043266056440136990713913483126751322505059542615007737750183853212545752238024639848863708132256833462957850643223116929868912207440170141582517209364834537003670431054914416079336933996569398535206991269127001657773616960946173749607140503034313768343955529761916634839923132143962376506909371032756029271919715741028042474101479391483088774089883590336205424347071020287974518902929389511437219055963487630218144582450880131944225762641300664876202577566129961239252768701145822375828026992802171266989646870373396943524539408547268744641997739543426151652051062464561901082443323249958233581729050446431507000827141713033876472358662380016711724230729128878800395814157723128075767676287994782533629536105478681273135034638955303927013765892182075513334536423370689212256828301057124585111648762712792052450295458196552422868608943846678079125563437673301940768151871735618361752897637448758117685634097384649900585479662082061295368110863586488077229143439151962275882810404995247472348533208093893734094539180843520955073224575620587282602927614351561556403044013856923340198982031495465013093443361258727663085897206122446240887538972720496123080127590874622892718930384651563838949366114758641856521086168045292104797812499783843914177178835945653773145126035134154775560780890061352665871267471160760932528090262556487603748704981154979479762708475064855110053210260103552097587200945040486314451521128299458923444552566916742401547354890041509814152038845213694510083709543905978671478227884105429732352310445546289378967556927446231681642470251208148981475042220776369785780660913928924622259554423778352788653759984087631072928788037455129212022840195927215854064015581563326848389771621343276043839264981407238589334755827581219422467587925473910709577868101994940600656376334212604975115059669215390137802736397123351625862660084325032577831070184894034947815507431391066702095166633337686975723215423551180850738964617202992206398224286155337186002217209680718897880688323770699752920845877498729745691221344823541949787572254023477443080574084979125884674532144153172749690924072549052443909930663168514994680771348810119669465874859849121361279843059887796497862723166132206185947860496387787681648379513679248562239437299444520527416254119604548269240613535620881284309033118597225390039091186792816037372765361614750594576606803471124195891128814961895347665577194812992507782865631606967427400792119581686508924290034797492289627792945113964508853290133504962205411260401359580743390706736366358810522068982620228897165899584107028401734334589511232744215323083049884485367112262671852781198312930102344393257597441630794098782806888989816901756934417472315196925575486506738635980128619906535360729905736546449782224729586795633227289504778464397387631280452754141131487577936734367136483266775467125226645818942200041009227883067549122532770378113656909813221154158383997471275114878386028214582944754223253743735026110996898304083351209029850600453822607317112455388098886918698843777945720275333754437735125853544615206189384027307021045193692802191076337513764801683131463366685003129198469573970994756154751505434205506914378752992260240083926235379429485104082358131120950738793466885587113151968295946467046140662847740149300815819233125309658747361026303557196649281242453613488410482976633403674543944264536294771387866818680531326975001132610376379931875206195184933259947458060797113358014589354676988640792074984051937738822288920660525898671770815655367474604199796551883267874611785903760211560992986711490026098084773119118093296106231998001503885303238174931821815167418261122081611410024677415642202497102412919965402944653705441981535811340856615778395032399477832436699834275742912778322964388465583335130163228627992867243301213163461533612379652994206100476635982895691368559600895029437244134485630865953584348354597237210767160043649144893994929231609066663578892565854808536880675674078803164384241585289104722352302368164469624741639981845681780305961494605904605764629062906286302026610382955676254123058731696315936493783867297257361042952073779197215303529087096029308716670676122701750473955141652408471093608851032548902901775502111815700333304067676946732626251295111805797728192740602924536339160524159154586771712674857136489060918868701294298125194557722582701080558065643323165573244122192941844549642980706423272581380172167721743621308869449046167835493502785735046434562035205390785470442325820977434152790125288184419958355241166389035147812696825745558014476169268191678835610786211690133789762841748509656615159243253048060777456158210053721387674563898295645908767755688070490622736898272294420241742356983516647208681871374638353704047780173722574262503327788583856679403541914907179053935009105548756403021483925626197333243802142753278204854196142752157738855738226548776515993008756562598156829015428460919254839459987191762437910601009725461535148765920480099428770964245671345812315464613909323948326060585535479254420299547048903742870746167997722825438835574290464931498440225758230948130731223434831724398550213845860866811725715985175171602841881260375169139289720293222719822827212608066991774076983196890510708092792565828400065448376000891116624913716517632935851535596599537661801101166169370681846322207273745743135895384964299339118703659034402244223001311276831601371434711217323256579632615469781226392350352700657988263108845525935712417686168657893152202705995656090685570234437166525625408417273343053878561861021246229134146993595846256509301894082750135157848653937535430804022218240613647722384965450021973459605601943371942058023298120124487961213732011182451777714345585192385860512006924739330587923075768070926158625673471190629612865258655354436436055282145584361269646693865730447055102268552451694677748520908718933861819321076911905245364455232238595524157642603486844263535526709923623104247112336402082972877784652636927760349223324733324388463650439611128782758420179327431582939311802679227020249102629096936381747227684316199884709359799608518988193041962108678017590128259944856461289941709332478713417920729155419188608996724610452647382495441967109846452670543888363688534541720532151591591481522107669936072447494928595206675888369222187126952653702509283807412809217763215272293374624870193177827567201171372317151795389336922868848493327437209506842883169303897708247598005442840956003102093782771667035779103423384932827523032993072537321253546842669289444142571074041868792617620277145795534476742068783926230440861908760185206470637601085825748753864540332495862368411715908961074232700398541890628097755205592616423413590493934303554772704577214302993407541431004950474846985799598480326616277680144637067613559455120239820457726526154302250767530701646143041846054083619393858693188216920003659124438843342630677938529629302550958445725969637825198617547712188008877133951082257736486943963084585675761377054040864384688845102883645678787295766656089025931531570131687100780686728633553217491693863995620657067637743972109333365902957906731379581761889645986726319559076804780734361375445254665021933318455694338450355156095945106021673950108553962995201052131197565090248584743107852328654237338732821108404251111748252526830710696792764596455036118906848990043700065030411554259335419277685243483249623299726082132954035307200852157039647228377320562965116260210030159739051491397039198493411213071181699938275476642004948018766624882800562740141046469652466291983775824293830725419713259402525483565314742023563774580921230392049212389644460917564601101978036658220029550857970173056545530142411183222436962518997702720678109316292092964739931538835335059871885770707577893106850328558348647943829853969715897804068771215679305223845672270392538907139425806884474410703971477853104835871387278651540249682747452351938218815716587906639535586809202721801495055715637677254412817429723024784803638862629416126630314443916547702717798568242723226915866134038158700078124044166147174130816627062527235769681535480742524269869670523721579365828579531443187028488193698783465190435299242254201043999214479221319438632774611576291240613693162953144319385024200845820945054466703707314426588430557523752945947587547431084797629009811199000579676824874877033542662915582686954962833934931527397847656718208966211861395656142426775354903669808247805716052379262019282053404654001330454045835189490105544906483822242636285387638968018672762203994167888473097102986591524468443036786473765652092013652403192197888291025722502372929052943671652198189369798350108653320535934018008036360293287137736403161586746184339761112734874454567632695785012239468667864785047402974460693684442594772568367367064135866512128301623280064266616252537517613656884252298888071046924136551924120778699752319220604330040609488068892553695134131056465068156385148264504475678090666711897655227197567308386669566724438311804048259388264034957129621903484282390091748604137862137790934888898092048806696522917428357989606481370634733820367969167128327111334154571827698727254946924378033898393146918746369712013516605166132092358858064204748274791168080205652959550767009269072613882270580510208128712637738199084303263394014181032352612957888343783792226437948041553894082530716035514163298381472647650526086637153874589428947581204378434142380399521839865909768139532141918639709615916047885822081759524143586100246731689276646659587484342792100797082101853184741915024116524484771866857413914041299400077588596342182751297160097096569898446881687333913773805242586373113377357949710775072167808936441277213845702577711033166889259921326767866782500486312397351085460238534063996127989360166790061284202222847710736943154083224152252472143648398138990180588946584705924884525302149532516438878278962362095928975266251768640718511527014924704276557669135310939710889118232439438236717678642368923222816946762340970527735503730949564791059836153544559553301214505068890323178230042692194208525685263376525583234734976285078348445451656071208962153448709727775411476454494052121739692718777251047738833596782300064092220557680621211878379235318229377665575690886471433457603908448180104753551684310168682917331582490650754294737571986397767759072786634522134354330783027495029148226167553178007006282467537102772810708873675624984999440441738117775538272830010475868025651909030576336110364933996460592086041358875333125918795824810114166379537821878058280260367642863352757790829592767181605513045237849598866422738364752540058702236185790774179004732549791906313067624892549465191120643525236869483086128327268602488445336273694149111924506875660482175145183435945255183010957386692889738510691577102910711901008141345850351157124413737885882426816276853171947831799579757595500296589918989920919036385980719059861873201473084029181574874974219875523032488233227399485099249217175133553064958777297573745942587123653650904482767337669022123432892712674996190359895267903350814257519497954719531048042618655846112839852166556993869764931767069519734719955006707242662557851987522145471288359151745051578446426015997513770939973237083954223164297826778131421920386590983167277581646335010278288258900241218010177438239023211553608652603603924687526966420556168261877539234057789702996156825455325413237241620214975998122023832963215014827636366785901074960882048503299792912304216820932201918589733989545862212427215783311903791480978488720354860928573510075888140101515868260488834059409306209266110300293313008966586136564923740178932663577469267446703441089757906972340301289376097383546852407525445987835028920910161891824132550910260434629219352858714030124245427728639560972197602844771626907892550202487763816236119708468595258600544904067046695697367961916230459862736296814341986238552362923973592930060313397780929663799911272306803980972236835093419859163262399889210325057460545722198506720442075326265596865015169958339057338277355954526538781914530086074060829852603892705972665841626342069598327237892049596270613354759545474276448431628837065461122372681478049062870870302617003388995052494266070261248115226493735943457618844797704064623238153299757055325094815812488422416867160894576580166812861245699010567112264195162342510059320532192818423200214773208674162294298404314124077042177488094259341471504383046568965230172941239796401797172785071780777069643494128310023007081835423529314067345460379828973827833839481582385179490713376532188050799109408868671847644718235046360609882549708442807892944902566819240438924445632352986237659782791111976604709061578068813420257612975611981108904884615602250632804368848913836002664294929611617665066035291039330318823604506675847893420316952662434037099254854579883237930628805685897698261236711424105950685905997885724695402663543501109108909270912572659534044422564587406427972644619974546239385844465449965260017243751496062321872748617300389971396488938636905053263987922146908623732935746306390932391532657488740446053077457061306940708215627362551667977952570256119261893935674096331680022144178319662549493144321146312959053659152070015327342885234201973369811872731323711162248764641103503565504726957267726206922017743948522076351391886745531107662874934782514697215202549734729108369699320117693008652983705202306875636060954646547478682628991032299629149566704047530151846628621654668485751638975442049331015714914889106183521795549414164879317496295584018215173896452283818117923644287785291907875438982617134395544968435596886050245604373935429429449875716827177427890185136790861984115023087224605127233278009644217034451963409725749861051184237690326113741575100915065760051658190532883080119612747938478369705697231562309821182688763997075996693766210180008173180559958583085882024912165359195657773334883401407697323769611082073748091854868335714632184058217277818525762682470718390680111386429053494674685632432953473721195057554402751736400432164082083513734443756665045994801770196985088423513607248713093879995548783758059377779389911589298530843605114747348621727078759681832040950970107119709180046060281988641721308872520061267592003401879640911858272446038159991462934966585686635340676501593387111285911825827385924692211242939367281637808330568849898373513896652875034317207966692034133704392891761487376780004120225288681402819708270997012791069777234721179775910040957748863065002417076929185246206114157067470160580220560772272202078674941912734003956664404534265193801254357992347183201042307063463081013795046890021459892239364663803586785074950767535840805428350210328525130056583142807207050300150830307940122399295331395770230964785745258124334216377097553611687618687308458204520439595638177699763134515835773376020859135306471754483888839537634436743322214945062457565915845444939712030374245732398498188630311476018687227181379116711647751342873778119038508774277320731198132305836342353409899550390950725120868380482906636746096270038698853062350646258560246810907170877853909648123621455028653925795807410638123483069016930715468486396802711993134095316346697748357529432424637276512132456690653207098019475752450430176830087310531758878223454603624365994815000113801633791192293327288652674944558037507985475371907662480280864307651886861987583234418636281051985286636996883989809675679085587450455856238309744321744209989810426551651717541661292162163625500082860691379966363677133840445491622979302563896801161426111193042654825534904068805952550592429058476043874520615681404061258886996058385113034065001195330048513496416104747088244141689705420750349244141170039657133963385466411049581972836998033542905035848729143785003780688594197565935342851485847195168305993415575300140814549985262460030258598644850810462801825217604326215293972187603295850379939080972512718073640646067116252654743031035894794428610663054920574800260025278264696708369072385492494345208070383962052381016014115144645185243099826598807934358458618770789164173725642824856307700139918055027371651239211495007094638256494824150057339891510003846895890657648380222838243110078942987082508640435359054808340915843396919874386020032441035995460303757368606560855037267466011098938530565196310423431774800843704830080536386297606061193782517060603285067635583887303322248131215773257440486198973242155166484538789715080114799472860860740548291412864335754935521755051936174647235992940701283492730747753092506701414352059860816031816627050818130855906337560006954335495699298489928910954233828334607161282839227912338164106210318450533196571098052699737484560853572756766378547717445989512236925387835153393215332412662739154113711767598124548564795145896877516825899799077245642265670242043912847281497325211096104811385784938048606543718041091299037348792956273342191768719487081052103799819772768463268299585716148888384237927251125002410401164015776296730860958181111066301563818361949313100507860451461709954489738676992094834265119268014069315491919126974581611411734509920019826904060355121285184991424111130175396030054612134921779701104259734638247352226645920404261819312753806658558378243783798250366815784419673720290046260345855371399061932585525106063852013644377542007371526512345211854586245110542060517476010045151283600148966370280765629621305613499626943409030387421867599271165595497244728651617100266206648090748357892883230016819078250145773986209983591156263220789886218956005524491442666305312892742611702405311248977181002179188900486859394807445927413684337725559001143573346512876840791840156878082765493828615141507441754002024644782776650774367285411177019433933613138706033139299245767393414077047861362067131269779097327859959021739007128807087069731188931174477130791476321171648745266708694860460756566742058252565702529614704826737647445317918639169750634810326381773178361117279059277322633921740366241935090075754482114327059874986560876668238206805951310432521462919779551878528407826171545134481357828229470775398866887095731878854242302626404625270425857065722974423365017635904852886030860658129775512942799228942209131867897998765648928369920406495965454168378722484533512283916178146505693811732840868112789259006569564819802409863702443975157923167771367084599240305008485490292645702917338153042595646463390706102283565582538013321847570432503677510395238091068168654728648838814682214425175485703223861883257815647404848837239300006604983918955358438808036954654923705725543775513423551646255051846196565626681567830242949478814545807149797709541602207285053199829349361243985477172528309095437644062794431550969651128271209080833806832570905483261704753325186879031162187928102154087197837222024294658307332412261388086283070023982337611558923596722572060655813157367047623429599438084537436601343295634032317755654578575193262129417865895940227511470068157108109726990132487946270752336610703758996771600724664925458878805049156023358008197656923161205689860908848984311172556349587950013729598121117922841486671879927470945796824441753398254481018600115094947417156763524300955513022211187505713243633239593638801694867815927226032183617021866747413812873175580826219108170885961675817752512248750496560286827828531533449841430152284916483302229073948241589321144857036062127141524797531189072533371558524167796741160956577684792146160957501517168916699190264662284772274545531866698174408928254374414359491550420553012723679664012116425112134042909877885498250441045033032584713914618817447603046786380944057188317611163298693497978534575307061968936936063019670793387342080303141403894577944267728519569297001182742223241502176612514220733838776359349740611166334746503538246965041161816905701980151233950468322206752255839628639032967107896519686795821666156011554752740161274353828845092009789410471885884615377285848352696071466093677633334156534468111336060401865936462374929467506262343254095985738902148958292178757722470801323790035934578908503145471816748061479963542595025328057018145710681713427514983486106624154735938674799037744367676072312033572357677210124795564677514999551997427720457788392634537270085071711955054415579119069833339571226093994487417121837418068321325400490510288111250981088065914254441557211719038080289570366572691754572861232139658284974259575024647705564495141790077388638766401718199534616175625780368096052995795422426705342939075713292947154093745832641795283042749890892297033774500288208804164471152166279655867963050799609772899797297063200627821779105087822115648865907174261334114491186593318521394423082927119442259128030848380814486402276155355921264308641313974935282793274624652522047835738136375003765058143592264155431286852656591953297766644874727761232840337315436296725995061273517299174855750882722375317861695705797908849870600272102428664166920379568363627363633598190047005383939811869424034917002789993899386091012288110714975527681426699458023433945930895873807413375443058542111258720990244132317859747498135108530478443655005439094329255517925003782535416607208015209898737886243574695383731647926940980310084225738234310432241449242189914996746287706818792636303704254838808384298449934101138596343700195758759608379849494118303580393124250259651651162474435747749474049598043301833914940232361321226641731767525552116686531965250734722891219214910352882347556693432100672684615448037865795084479680582562760544228942177522119372753961209687612398302552806213076142569851565784608324922289671749286385080094260878879738629749910836921132625850099738259790244568492325127373620203202531931326892311054335747635736387460698426364221494933019245018238273414299313030200966123801320755210804777748119905497390064995062241143100417065214099675966109316453565715273514392880670778512541431682810023943449639018859124268822682468132693472803500897442300957841379596010104911472499990685332265898289502329483400895019558253991792511978060168621535541992039186014191047974980566091405070662025781051468032822284270981245476084266316276294653307075554160204882910100656098620214791754563594566277452821098905188505069581094385358764362879134457731835452036786509622716691364078614489404709237242344070329301245132865782836942690913680625729511746435529727996252144558074840135336604200932050069194785405676257653125310747505123547970015292289602231446026782650929684618015401089226021386194554420462018956947225366224340153021577800417945823141838012376012162425803381655583585558899557812830634658616362419395461029984187134018560997272229053555171249757083894403771323726551863234736454884886300803562622567970051288821712197429170613148393968464649873465221588810347095954686290086256724682356605615751189654095465733633275066302188177658409428917959265447264084061602446385882183696510853564822992681781960595024201737910566287119791827318095014294344247833108950645184613975583830548575060191868818215882311579680197777457225269565666826102444938895170658399227493060361576911060610907558426654267974772861673278820466529680746640776947709096249625689980047282347427514011017958303984002151286672482925511126081353458949387817821527336733215174948718760765126135941850646651176153967571354908502228556846174559199718044843004775959119970735340580302595031797150391593848032214107632401803439527373244815849962478550221932421114170960310327742472490142982188456085011535316660250442486048108201530683182653444739370120745197261342177809916167819036292430485206788768982898970347901281622313592879542937386150984062128016250815048626229799841866001738652998114380417134691987697065204254761674706019852040194499765451583045731112808346448601774856569945868002933645317619012475284847853303403883961188495902077709958549824855998425232736046118687314724134619980880947122641129184282081872116192854412267403222903889584908911880097982300279137149788244656646437671466556823313863705992478047432268744455686184613657400413351213060720712497326792292158262714726632649736131967498744472124761306620599301249065618599221199050366885801180741662678604513756415771832622605923692588462591043995113762081371858105465352914415259533872075414679410073817186702203321490595606083688520175893577884680480656847790108715835532719554967516664464839620277900436933916877284521967098039676863635918302071591524677706373284099956860903758081289026262377652521579693306957332604539762399563855803307354140806858566996323651710129722588168855976248489015988565015145807195351902952815317370123104949694668195393751824994045654889163796858489216693850160029013179905761150722605734682920956756613234766183306063504600169430807204112911607403891413182208233931528187823170478082094279903993462770479499327745765831265914829868836966599633753154956698664837614154159276740487084602437706852700605672528615933335000257966699568904908534694825193320424026499189112027403413285071240478715935535508842999280630951983248042482788989733757375403045778828525105687828881948848889569310669335865183304080156157591967482553197258869748958560926719451095697893309204079983121039635083204326738822262014594049407012723924463319667757212077047190003759180844268945022505180100562021901498986748500116451394284028627623499968759453740460089651511920146387734385639860348002271348715339497157835527101407381256888510220199997296698008663666091723135114993181822855746670452070999009047534245542174573103543811438411046280122848807477977504811388249004820178540099932410693292165726461704157346576596878640238201356107359963555710725301660415834424079934501910051751999832724521518490058164206299055213017503480720239772362395787579857435591018631128120049637804230986785629573162076137609047677956088911891640108370805159702064499997037957875535600583442972911600443988711308366537302489744763431666275396376473279324536969976692249782709437175479576427710727589586610719980108846931360868955707745732473394474982966484741759054288508555116577691810642078606908018033430807947621650252627945467623915860619676063203134329790523627902821640284594237662551864027285463560035008895543774303696508253217015554693666896932256622467906824563715707498679552605567926646741136246455749278400125102658816948295492122658747490549932775639175054282417486033641440444464847772438330231902847660282578311992040898916305674678449591154427476655762793875175357237192762912151609181471959694790967337780691365046999800629409575727639937462953243435595521799747025237910897020213223824491729714931689320191402960884213691826749251133846704760451708141964275467362201962232477216886698723372657067727872167580477935469291661429058124546753441998050733840146959970167557339245376060851075108246944033141188203151684950979354835387618406869498938626826697205755612459895710811290102817726913621013483722475378782825332716234432536636712813254371755485372155562620034386586633526493726414063003666387416855197182203393675576758855522993331441754576400830391908875369381668706923576703231607727200034867055035302164384926812906228276228283008247522671917527410856895472227355367257360463471406271105669461142384205354135110412327773381581934160622701283021104712912437359976234487890724121658668685645038455585925847559623273837153910047683056644588573480226241991831658135731130850787508801562023013120116233286982105910982452073694408661500854012511052436905540995245841883946829284853153670185201406328666148762157366768323840051432629174121141927096093545047781781021661598289226239423039620671474462276895060085848812805898480118929020140064659226187991233397137121102693528231471355310484771336111952708682885991039830103054043483538278729635609520020745124582833734425177174042928906624099048838723164605015621474866563804583697995279078698150069463966935804687167870483038651560608048195122735450391690910890785550415222561429657647081878418117929751585615854013441390159338523973180316444796872189161262533533507722421198560875179278022004238576961650945263584612101601459419476054111960509864830159881714161642836389326608915441601114761749029564170958562161687377904528663565983884185492777538655704843919649676645466554180118275155615586981781507671071182788351126263366894655375123989224368234868351484217075443062678613146011177005170562399073991935111440316723059952672510396758654915309338243742133173978035653495666278311313685143525626956815219791074044977505724528823421788237275022606180414122923241643245817969620495348918487381956851693117626399700468760809727719159820842297686439172154396143953365575048555532309250531807315791310510348502744451682660240198767539588466672283429868535452795108548209345773761504107123003595673336558785762768136024619758132099552547540535374781358473267435987528207679455833884795940710083645834786782324172696692740906533918376305233184787513022727226137320228562666929923459077601839454058058040396433790697705145706445509070913747875674531733613769188326307995402064047306358192430351591651764631044529661737344838586095081119723903253617009628953621122234371821679589087826715976701638841729982927236947194821854545336353309945431037323774528869289736337540363903844439009203299220365889064114370186306247460415756082106818148812382918894248560055925135097169518949532739376854126372475519213665709150348964593545672551634764288326566615993023315255223728006451863853662757867162171537382159128102714586391492610336217563566965616944360495392000397985472236748772966920070368215744004880572497838966409870535026450379809471936618082878698168704953171713998522109606250157296575110316852894902387303265207665652735703867556618233317046382208913058291873131275741019026258234213583890851027099894146047011325503949191104771418935304038414817047535689132907796208356466516118743701832754453518760548233142231085294337918293216552937406692018311698776140763482767548172579961646253339359439067072460442372578040699667441503014004234219930326500413141565121495043279014487101197610665604663233599342899769274566974960674451528558417915201537160344009845572994393492701572631363156042577279677651886804007113612233880192844248221233105656358541001943273743716229785131109858592603015684369757563849688201778807281506157400054486871998582697102012991151231169070767166707079846862911344400906791055555854924844737408838206013436904635830960053771157506863273801530910651384747890663112616423682218629524380418575299786254658470410944941323846930328191445978668576373302419948798180651079851526094934769779694448962091021183630105840912870799882997052060612996195964634352650664461923179144156351082505856945927579031848021633481101942227675107369182064830384870391875252819655008418007922882141294919299005689992482154407403758401765236150225657148934289778936192586467069611120484763949783328345323485357968074075381343862287714840256490119514673371096203879199567528982063870658788853710501989585884872107112909076194543144377007386037801016683231175761283322190227040683040639701419360441179893320107823170153156882679161463401313098195596801353491416933966868051793113333898090008931206187083690719535250339302775725076256073086873652923474373593453097042272985779627427883444606223555342528191636186265905952776234699830817492482108613137120702060178105851302616491215113562317171831172958192946182712499274532238847675005035304921308031469323160308942612374456880422006358634232154455154097570043288680176592663521968164831205773754698682887675789453085903639408546269672745866192054340298864085187389806441070765613508784273030681875393389614198944974791429100433435783802648652868583120079059125867253846441587563452856099384202065442311253140601249859351281237214437567284626574458654445399191703964477893762769643392478868942908373353208757861414384821661795553380558562922633158810243972561007992314164789370825886674732992185360166704134292871645734858647322592843110436476778573683961875084611296105581743666256715427660363706775391497901709920236983502369497426924392083477513939507338855099862193454628364559575762152416907932890420407269750916704198169219060757743928496914351974169960374853104342629057688537373988034998141813540311299244185262182796501258539320400707767837303889455401739057445439083596943872349775148590767706993410540382383844936371984119688132744797057775111071271648506966286406496793930826461792484264645846651989499394782016088631705310260544905807306799763686807583436375126921295394049228954260774638433048518976294256111837014064421476508842111973716088638037297894480739709274665027393160272938537807631100516780780706555889581438253092046896282395341172694695743037616561246905681118008082602008462839876097054129861987511000327764238575376350317852997734038183593957813840892480771095560046881086868246433102328138187619504923507767574136232880826427628146374051196231262028554615207295824549801417723810767985211390847962619701001402955752470240968072471811175619742687322868682688137468978973668819079325376699778800797549267813405153991406227294771701311755396777890874060414893466850550622396740268198026866041718412028690579910325743834538671557458007223611053818617224408339270428504521641718602061659474341209573928085574078439996494519887761121720985842646572721081783260200472704311120785017159263596892110352886079768814014848636218037068324629272440986010920981701277383474926411003253563791355308140503707572260232431693176526586929495604725896947632791375281996717199310961184936935366466540890087484369153918193307802222241862449220914344391426832829164460561852510029730206893849177289760762594294642099540904386674005115652827413370972608328654113696071653903018986361376226348504729952994295433575947590994197702277008797411866714683617033950372509069691002059648171968723395706292853125684443215571756822046454393504826981106377129959193328445706397302396655401635817506405827566559804312038021823759064989220579834284009595675956933444929040994693150191257870626290979918346951181210146444758874120500738533382895329843198735624833722461841735600612169019699266257238065329670348596077306411614911603193376153258668913053868700403304732103312138538825120933718514171135298621751260108800632167458768017564301801867092206828617099120517524398634072825896561102024177348575826916645602193912214144678232335446100176507139878707532472388888606009924561044507270413651595769037505612771203858415550397138419145362074619943156688629945580490293318776423643642657249744782939797266909006574326655257641820100459864408255572417843008615680545930940442477327669059778210737334314228184451754667174516750509349870241390485423151284577493945734662068548423704418742042369553533817291596410734671465399942027796456332797861057002645056071506382725832102189310524533260917525677356957889548659128728985531425545428626157352853410804249141372102585840019191979516339500903696783164911799646005368331463068599026325736118174807890047639149791493217674605949613154997311134325124391790047370317869271940707158264399581814483329877553418026550175525813327823632702419053645627814597564492071415642813935335465308438296574425661581071867682950479886975438394182730752969631085442238161426186569113649304698155808350472480074721637136976714587861318471420018157182922314953548821311955223546049440666136969704379906072950571880805496595444956807547800006364565641377790313486548835279287822664548708349785871880107574646930031044112106304838412155062376437586949705479533562876209779125598171374403583918739440809271673064591134304591912693364170222735656365599571314141603998072430539974231794413812892398616670934704865437714960612506724510663190960536901786651208269316957853578476303662799569802374826132770968253333698520836587347145556756027468309105518170886574883763891194039207442177857140019955820746634590381540524277202815903556998553619819601947414218123363733348808444819892261392867868574951186405184893098713595928147352271769984713868923484222784979568408820334840059629934454127767654329589302022850489341203428864665401493671478082589448247926824530538406649994764319596833630551219608776099001304493971061946977645920377843489030323356769609811172550578895677945445709703692004687389741617388551933016299936777212171466681910799246884769541950346432699369647778762797548206992918003754414079590617581664046425648438539319442067771264260730742041098496017229156647558231398620715268498840667551295501559524338437660390852493599195946655486512521009883559403448544021049481886733159992561113693266878046486677090453834989812225947685676831375575413985370977467738066592901386598519250069892452419661476642651897967915994284813871004490776682929793649706792748587250648859187075541779524242752619171193031330832185899591578735927622285856729014000264762780830529663698158696651718422564572905615145422003466425618208740218126885630847678160322267862274901350490038751027806109509001208109517184767588057211674809175213629638326732719476814366372411088617615223491414260988613005596120277237392373326798775204083315317500761686140560090291668391148934261133063166694037936441336907788134051995149087222912374558104114654503823924601187144440674804559127944421127329658937669140567430682713533945142174317240720298868589179777675026383070643757934579608872775723724647386169935763382710447884947260112984509997597481799469125671308559685701703831602787631214976856408300315480280034947358821683467015331442496001746820083115018820864256878570972998531336305725548604999827286156162292830532516717084634586075786192893366413442955324696920712992575228570248713605369321206439904017480843761451700363647254556044692634382248937177372639960804267373642890273585415004628528235976943640702673052660505939162305971104948614774200345357523249520305262214592389901528906804862528716005153312963808383022767613902159199945174351670503449632478589692565738500984110483724592066408890715188752269929171655079400861473989805069866558525462045754973266657553928177363895494268323276954544892797744974947650422262838247010547724815935782191260787812562884109986382083998993312416375680466179979897547378922305023385601780362950342452963579767586204877568966780578323007016501173464254056359172252327865119435086103786523863286692596404767213150299210567509524152200447432877672393165926716881238048577631805864529776923963164933113670085438999222765105777609591162263665724785531959493688571813890709196096064958855344163826417681541988131126428780107409244251248947258776362647127915345692722751162605727028306070419990544562963869606131872116661536348720229224700800562194269246489899972243466097394727333151863322102401715231226104487598801375123970198285091608806570273664831406624072533368166699182319663690733833118091412387545697151276220923874880912798820687581999674246741911144390651847978095418543711866483619668771813585092934734004047997554607213998534824298052019050181911211712972361474780157228171281935677941170214671088069764296991324036295535889216336602214071548614232090441734916913304282158094097098989875150871715496424775173716849626642066430155973250554884392003662413465845320328875000538427119806697301538050138625700761952315873390860349988134317920222720214996276205064472171357344883259836427548863441977430661694150520178119186781994700276811742106748766506143878794827832472616796048398691402780596436252612918191083230254115302671669084605717847352142218368650948980420372671506465364837260161466548165815643856086941546092964720710729009554691293958049236482288811852354073809040865596124306511620684507784932997330523686160809572041103547692180865538757154330109312121017371216779046243481203418119174871322219435694780222257627030386529616063143074159239089905080307668451534662928694020482456248452319072659050235666269048595004251054036913850606342889022544741866147952194421400379324379595142350817914099578240660064533451927992003148686733910504788030772236585016594082985180324901452445478817805689221657995429141302125417655152144802142268679174728458387626317818301044058536238152928219260271914109960516645007331327674764107508316062041770534726954326967204038533536686048582555718807676240641147163213597871565053532081359212823957283538096228004594774592561191654641453604228187808624273388457575556466648094140282001427565322837936711053334714105220718397175488916036454122188796344210637931284318009478335769444512143979283047939251872733307888516996191945989895956078432813643697285471931541204093524905626090177416920748889718098856751119514076820049535177567239115258938463900755117106288913844063422164695050808112109113669618066303595471740512426136304004795654246485402589660433049964545002757998958030501613122464318546436261314005815713876261976610671753439162108066430568001234061921139883874879133564663259161393843411217472624282178314717222677442922969992842356630982603283670385246276136740644089157207976861118071113010543040378915094826271334104137653433434707806220841177689853001097086314665517920048812911704821681962249209154429161786807069164701382534724994940978656452887775090031260280960621770206940395255483444278483312964080501065196636082255252983706425143171838474339343034879564532640624673111252153111033205262467456582372835409150120864452909342310082672738727030438926267660223775601901298216998374918176937284390208557669404445778455180621132894582842822069168718461380376046454376244948491886347422810527821288323923483844007383161118551830338478209685828237847894927576533756940071671411095687603545160043675337913381205693134750859538857003778866878864119001782884217432147291910250286853896075547848457146679077737132979079696460215338739715845032112187855733997091734457662766923363501421518258837046762191963942498514403754644872389492730331517380422850769847263038245906150820817607839761531615486987218110439805578389717433009534268449832532895944155321823577796270383185440551277313916778063154919706301273008347201193471690501499165098420874172596762524996313086354034469785281239345589874532048651896125118686206245585149850479347968843464910955914030684415090502566702019433601692049015539688195587113508909864108047668242912002196168004748134665140383454538227565436558587760691614634101527432071940014484624744473362834499517623428822082929902904760486203078281781942122173793291575668759327308374677208217217545416231276290928669712720354948253589641634577845691286178808227719717469189497936529964296293176563828237908649744759585496981790130113216015272357574462590826092345334545859792602529126766576926965505007027480665256545742642396919583470980877041962709638081184097474850616038505703433806888451453067117625161486860636153721587446342895459292166327568139376932135090378993101391082117611303399222420838247386440708703050603684744089525958737095395901021389204045158951702785615421826469201835254911295950513193370316872647258012437027171315611272509593844381630854313262190101920376778177241725785388111638143710406480548505196058112935760045171558461008332271639347236476460960042948528771960778991418001935397020277008868329657844115044191637774113915117905271680273406421766953447343480542934729064065568200898134859279036248930519680563294604739470566819378618966303620246668311315119851621096835914066889124819024842019152280041121586980308509881938141592170598740993286342343768889226301431243226734572666478710200554024115143969924694185966645333944905198903659447197268758540971479589564505569188628526327664274547066541889343280111957721072606705565527304271967863568712856221874175711605233258745334982670225287673909452144719500789750684566119410079397152635310721372723642649334999542821995308850022096954016192594996086162078131381705021230581796686436024305352534086265112209759809972777136536273772606873126949408256005220664051492029436645148040324685557447875231931603924162709751959709230985151089776016944989946825347776341021937069675631932819416257881101554127121284738433136444692766333219129226111203255671595640458689434699277290321845288512923094666985266341777519422725767576209179402898191078609021505039524952862787794111618756390760786843476231280508882562558834644239040480518538253904047983152037724586247593691547476450177333250838818555422533740238777992498654737520775628393500621369256426085870932366173959896068017884108099109076164787177950147356094542978072109837874574634450413939127994003105547034339024466296662078467201424724529701091197660966701287858304234825064102732400010444664383643762772604610334391642122985163313480529266512979177107085828593806512238919288821039400203525141392625602301875530996938807546371750782010586445302145873138117998139115490963081554005488169392483318738557455792084332808488679000298877210585776779099260206072858390166283074939465667408242952253476889678622388618598436541451312922443749310080361735505719943628228797513415315120307238901328515123659016631234643518404564839683795331635602260885534571494009897619416744761855526416131712050147957752434716920102580187973840117449060476056516955070482739112038970658453671713653409232687317919935257535770888401637609108255648454929125128948553179049184567010047784651846772346169275069434311217156537479944332032705562813754503671916972152246569100676882687931386851075375885569220833471833051072882414307649320355260664740880675681050642016332094220813902800158298909441945377044014977582504025502436102609147851697979024712224081540745600497288454866640350329272635520676188745695588581473612022943748449146843440507571267421323174334607298361730858595591081096510619228430039972399057989839325829265056684474032557187569507533422040064240003031748904148421271212352371493229535184184571607983500384606223437928932526865237214670572922815773494657402442261722900299375159492337520059823741691942265307578533896225720465373472043674464584573205622629434080436957793424464366221328812858284586794994999449927938921086553300279942861997675869558029487890969421540565551171474696745284795634197765142977830525296784092193995229948030494943348308105402893839949451627282047606941127989789773018580926081437618047048255608031138346862458128306260315324226702943041147082440833875573442258006568334519011016183534109777931658088774958466630095704076851879729784257045944259636723974211552623934625943786460119254119258155152095296893412468634641140804099960602304263196541868928931003772667492902411319703723931049791034828314274056138523476961023846219536484406581300237485570156052062194635295411145352370970251325830498354384322324927964023286411339136808318709771661997221444552617506028107739942341831934187664998015183431079326600150227113056113544455587364567643965578845495832473082285151889373095754371489969057525485758421955351785377749871062690283585866382877126772735408878961207765038894432771572968165025989794809714815456822364532175741726217974430125789950045425163723636237451669451874428566734605265829918212339713813367346938482820090253464135011590774817956393203816045162474965359239757109850950921135305218686026875249486551076968726470652895652320579156831300954133481463275815474077330503784376046232582993737273152312030150950414210676257376748571926147454988710215847862702852073428422139181617181474421778849095710406380311982335277260887564949870290808361969709547204458969814737888077348157747793641960950534426108503968437086914409875699467680702891093726062046148417837305182615791056309080256792714434817027846496708575195191349000514781438680901154154768211695539684087943261636928666733368881364436008942931852834014409598561105896950261492209234530636310838685009918454862252984861626661774313847954833439155656807225252406037532345776909536299885622746520531124274251572100349601392167414998425411868093218293170314138252480186879477862025615998302896114316005967217842502553176950901386258919784657252312927117576777715417287309782491871493659415310421766802544215270403021100096935150333887437711695370716577202114915087069547923876244338333733543717031924353860972805081924536967053728618793247188527329849245291107453848903658072967586507594992114103532875902232893830829168138108795511605010096044134519279757248972933015849212858988534602637054885818922750248851334288617266143531162552817687893353292486926804877813176819228188829701593543113898149610570661010960974893538941554051224052173937665225658329362117995018607927400993792797410447209577238930005239183472944914440415953967002252708602305475323340930952579463500428915131963611594090907150195073730540209839708910598105639832473968435131187621757067785893724479323096917295165944825466467196337631949926501608309463464816337584804378706502411948926060369445511482575606927075647307716795216880737157750926960690760287031300480898676152596203730920957447336363976860196895368005496341514579693922761477175975098037844442027941529930861603249263268828447475686808452927463274669541628785111687575618168708563590317637227938433998669461027831207660766057286688520853296320405062529434763018925616798199757590731736456719783064095704845110718316384638608381181867032526320155156122019665035854751919210512669697909567112612579850037970011220517670378540999253375763740283717230617467600247968171776418856622636593809128221946601548372851505762960565426575028071498519836966525031003116641037424858792940299934402467681933414975638099034903608744754802840755729264350253114263685768874741955567685600038913424737598659076334204464223721967414971261863843856621917568417007316963688585480188369993065105075487018586763100842724691564551648797925568224474748186837990219271078647442187994312287687956229059675178684024475979688878616098336289812537045197212270793868306398661407467384138885052977994214686411197832762743134174530269017275046655358376635361284125148619204327930025399724873040832688659933184631817181810178896808089340795675584628056454046609754460422395240497325351941479126873892197107016284304100113088667389117010496321049721714230868777938434458389485244671889351062868352066304839185106099951573377780513195932208535013933365491035851155645202076032661623930331888679429209189934732524463732860338302926892336279467179530557470236648132493442014692632862058388649860302333365217476199632614358721514300774132444640572517279927523705306681179309376494803985720263331359649599195541522566179964987260119736042936759039458614281557035321987269071137933114659445670346149404924633699803415998131203265017949511895901396505428654371450601566547449131754089311592679257765034974341641510834918756203502489990088598177259390029981653954682646015527756870877928531696124770481728142799041725362956489130562637067175594083216043716145425842447106605794524359196868248403124946553811884175681690932298265111364774554720364191438534767071652616408888326759552533507952056336741429149264901467767820228684608865364751585958313914479529192751137388542159937120766096717634230282169159095844434141444932159802674993033249956156977151768782324960842007367699141770990180809160709180746814452849402698197593920344952928410326741580508315234872442062601461814499905394774215054563818247338887578185394592431089753068244358539243329626134325100690405336907781407823093348261837115784369154958652330613638189894957677967196840524347954062844815256166652026661798677099648168520130860559755431228737921165947829521144886906153777911965839660980896890615320643491947003697571098300410699222028143621866179725187971365305452486903963277270346855188523171396992414786075539619397266954218888109575630208186499548620933342338345858823473858802877925864921673553343906265633685616379315036049846255407301229077388264693052149505013933295470629052164759217915492008191205509009930374909667491003054576806202833950621683789372172001141046564587090071380730422166814826366776235190204286475524941220063767703064637124847520574412576327497269397787876754495708045753011134928279334778776901825016883843222131928188410410435458441005592463551625453698721641212695930210626450390679383297105287894947972980852690220601863656621635220598369319202653749867720664960845201164480935719960549542158721423846286410007211520481045561194608959736108248787398309778113776994792623868538679467906964240273118929823174566509277764908583048889761536830432789681092029362311122893892942604418047533923418899222249205848671669562949594432550017973493305270717915186035809579655881937270787648795472723516627988160823271464656298274873756160653005483262209554347591656007584826216204132044812598776731967586269011087242842956454210529691588946614031541471758620407999890926797057776912561421532351790280821096885254576143168235779653421046637762253377279534470256984070775036289797480062685045264777716756091969818535230776638462411085530421160844434247390793295506077739464585252644916655926202677486796710612097811011464635188492118686185788599005875719704244715712947513307941401779759731683010313814417191017813804801465466741938661383503324607696243609738476079453248313270484793776368983359480947185640207007768252129384361756727521690557955617057376576827518399774608140927260227772151407133517806644441039617592108302255122376409226870407799661989655104701726577854101733305893831264520523372816897884103574795634761719295569347329304480300319539655735728974415612182020483268369017121969853589938272492473586356436979264845294363926739191628360184355765125564820987650158773167181842110087758979251953164922892661584171671974011703936871773109704139929831080170655152243730446357366751970002832205215980437049062934051986820307750823636743046399687531879588941875008139641108328905607937718669812151894411649767825421848852355953653284563195818148765466751844460017598059811856176461440292978580084605113224008432568147016226924957301890032652278810887144585455687519086618902786169673634856840111094160741095171860150154884473143591775817111102941091634154620506450255878774679024645040739674850185475570032543917831823058983424151723512720182058635492613746805322710619443238855175980906190538937656785422489773794143148479616067764543417528567646775288978999689114649766351875973665650194719004224393860302585687145177585094204723247980043543521425737671982208651382221716377149084471485447402339775639962836682025851183469102688111656808302383519286360323168300146762204031500968238014354936533339215009632204178679326429458119004296256107846543590445257122723950856096097929988279086606519474413337304334814295637194729097201022542243531252702479508673309414937098576841944117969257567739613955687971775486673207008676171481460063144503845981342476574839482789260380510045759267367485663548909211736428240614157107261857956897989849827644750716434479061442952974862948860698080535842893141080140017391078169989265711666463062801480226285044665258366337715955530459064101246561083207352449429824434735849439535931258309335478137415401510033122811001861727586562427933549210689956394932092126466160155969206388810112479936280133890905407669963214804219800767460164963067273091719969391661054644352045812378507973512331368605632744683008904138429151279613402913032664937226943668258910553422462967109406273951833712741257053067671011443928124852168008645350418642156888072065939951237850172305556262919447678359475170571315655375773384218690901205941155501718355025924647642045499581946732831651794241835180781385180852506666109386214293913123082674527029412501689737320210897642955929022805331297087813600787300305211331538538390356205192342249174600395982643682724799404400737433711683570972602405967357474218545980103013061268857031367534016576077882642780259428798318076728392236792577738397797664157997418957515170977913162053248532657736567233413412222247317804387315503239161989608458050339534911970183284751944543877597929418863253854420577443823717325338632031782736569619597188951206272495194820661211691614343896564607240113690853707775294385760478072303958974559936529613683121238657320271671768614781692397600408021503268637871664422338687882468798770059433497999569774935867412314742274878480903135168198601175310270497120699803560800683059142877907046628714952562494158310482919409817275003940715390999570253099668437882626159388354755767166379579612544160967672462141506446002355502674100033781177376789896941688101824269171467546661051349832726018988064251515386662833880905670067659294666773712405929857069444962317381764802231031414548998751341627495674722284172531455304530079408596167914509028306006015088205145813834115490406001339574344467269070665850531255301918979519782857573588738861430934728437490084919261120793397707047378326535582609012371862685462792306081384317618568727005607088418281862841510474790264906205450076886771364798432715657249024639108754497057279067377053029801317180479263071289454880981569873649110721210313361813134555472861924019837265202337100650264396393222442253235392174747011369507906337691977882374237158536561837479364026197202045653588809008633941569184526998942072223838829119370733171618136889065029858635004682135567464125953159873600023620570758193120400769428405116585240253426885842304705161408784084990348685673579684804986983328400982332543573575787198434923597544058553127466522124895893091808798985868660895185054219283072810988490084022699316881923837724917594791373852742915307153643815829029129711683318469548792817207407554516788522157267332735309958551554415926157661331047697329210782566347192444752239083053669492812437065718803503123038756776907371426846160004261195902179349332294239230650128970217773619786542145389029144448862302346986832998537521457106178740063518530792800621329989181090038617637617915168895302159673967414560006186010222125614815873977798588892227610206577689380721943330518021552417751919448988816444110119252034493719132662948428911481828066674993222957626464453504728025732745368818494997445008065730285917109009116361683836758191812994710612892938709350823023996968966896747290749279738040622372343474782229995938912158966787789075983850594281806256930274584606054866314137266433624928534928355882589485698949194125711960709731691045484850275258864335046672866864668593062134515631874790508526134863226177333737865196786751467691986827975087884214768873730366913374383250888807421813995211291828209578376495373337922260675347952558302909791295861802982379176664263100303491414638400686394631310035460377398044845691826242775513080053880658026581994095673198417068037492431746763012124497922764315690317532881640795884575501852587177412260293314708209515689878814784111539061270738960649137927655569502842608304565742122494709737913013410199052449704250577605100599947468962580876086775270228462037591590704496424435370790194921046918354134244808173284398160931492456640421710114409775609127804861978434320119494055903578825253451981761606359660456922159371196142857654879634256107443459170769536376349458107588583768614225418056160790996501317892695768132850702068895135698382513218068969384148868628838797220516144002705695985658120852779856834178644979887915601968110690579457630849852851788330260572753955990117924199186486567541653206829147681090379125044122081646876744290949772365824014793596203656896514136777940872302573612166883139162437077745665810047629064823557630724895926071097874560848209940971518807886174541344983644774273625456265126889340823458555249104568543300217003269942891505502987937637894460516617849904632576817333097647645429196119455811903047038685221687917663312898650573542234332508314321232920128906542219933550690549104407216481697237590874794671822016456720754294725334045445180542928486878513012809203782717438524535311716055274246833740548659427860942146435273743142322058714146241249823409331036261428632754539683531061954915402913218840096523025655523661647916559297987351553951971700885888871359042402583204200440270407807601123634665756204179034207805675959365420456892966752273545244595130799234411874548211278936129983872840214958636698705702703259853417267325397467222663932755915972239608902066317395476532271919141198804682320907121766485592366570992475810382647080219874118665931787457550973613150872204498677192672448615679726994543562085422213822293170942884074593610551160766904917327874860450404856674492654124008427876898730617681151313488534925103590842142006058882819971681450304898679952854471685485163877732303065435214535525671889384128592579801668845102300960189089015507995340435201091373043841471977876136058917853668103035541963800015734682741015085463495518583270907990517371668185707417790154225215685535739652410889328613094803369162425207292213015144239539494458337264274109357535709419744829170487931955208931052600264162252229749579264770580085444145770904033558711284245747605715288065342913610150015968244505515914702381159037840900454322933899480032223349197763917829471126785532324768079203472673706450953273940164764693223448063693361313053112490158443264641107379672900092059863666606705170967420732741262615848112973580347699067473406984947023743852242278956815297616129169507279731653645797868489283363464448416839442011179388850295048112789850706009383346630692197900275915328137814385847025868613112172614510261599849028279171669851810929120923968414232704323971165667944437592220571109282399579132526350704469785376050453540415746359447117890566991646010798005717077255293393504818850274359725368068908926780812940753793393905411025368182311373855699242849497166503200248591066250319334171611613384905819991498317570649003657225277723803855904626329815873056822836571370709939910655380806757603734395584026299309288374530466053592218724096879194457982915230209232727232409461909993314534306061493910164629415074724426020638012033788164417345872386290617461315014995568882640156662245797578953070999664954273025309396028139263295062295819190353731971391414168841955376738816869940447069381852920771535635454165190627136385417466548835712497510287701331115988257709627789620279969189462541995432793478213142799090543443295523468460326983710725103531260454289482615518014186616164017911613000875368812964832746483995758216956575818933083203675551462862892482229947995348544226545307140981597414062931936336196041044260671421802950945141777092582210057874719286730668163758325417272459550554288059351921505011557421252146285523745999382374894507938366425598820514779625354539709157603205767982611641483608527821874624111004645222422290645845072093238699277744735634064053153227322804319898532838716727350704530972302254823229252554335222573524358124934457357231241522045491898702305388069369689469832063868438782287880321357413934536637681892082641163663693692437840412945918943924397291620810568074061370769088402787667928713905756985405136970828596669735274348290982705203035717710611097775026936090339597974315346553245333768981146935584745168125101909935156224501377452559414518066558447295937834778981972021704566521241782315708218108874817816233332113419029085308207173238260682307885214805485746200158625499688962116354161577409066625863466929962246213102325722560018959016924721620209188368190005833099399845805052662500167284791389267003235615373463638858675639057490220505441327425538878340287157142134076265589022900718798246205901735835656279175667541441065217116596342538355664663682336922322940221655479316110130695630548758078141667373974451593703812523697537627792699941001506704760467231076329582388936290882686464564567035602991684418950637074678716272819243353614007827966414006509383425762691412618317614203126130169699858225639651793010707856078811922632676834289196868661755373318876590617549062849838003555393980396876126166071885532246329960984696770534799574319131603515198523874449135900275920851322591390701105020202746456244673432255461620293389631010702573787884801369540179161907571712800291049290637128658774469249807273511083141482481809011427836935750230642266383156602741501323648911345776473871079492860029074802956814352100398509424639943389161346015086239007165737166683113655296730025787527302615890307789527778038757033674884559057547594666006099633028997985766359563427177008792040189790697857431349189897241857486379113049356508117461307361414528826810019306435492779918336673760069917938526448927977273288388441655356305777619647042727276218331527614917827499576657398434330929429696623190034864469387744688034301573458934742051286670175544984080547632119103363140335717606578710182245811973586533676654681490223639495529711350244710712574253141541375344291220257569173173628591303783179725392067783148152113358109442755977612869067300122002224170743028050193488395864748297591898671021635489983462067126555704108800781864773757930120220373013652114908223974630150168012997325366738962232113648036480273213677149999162099493091915768850285705367403900355730978232793159487926601086819443169924558567570855318539951466892396498828245574988516180755132957334421164144433803324037926535828629548435271493375364352176949860516040793865644585178940413361734624309336091010017484338501898885367142740240666102479603024645377754963064395985682951651556937434167779411469586546270524383753288649549232501227825691468008478304300678511297857583145131664580344592797944546298856809622788156966997854912157875371720152716508422824475071790298294561245177296768833990399070412239615723942937960787608370189595648815600644919054496293084168621976286554398794405081164212626113934160896667995224643957529928261034834812571146749323928808426169777720634610379128700006802797124936471319814184845436552208965706663231613422906682505449137593442237830771860503930493891496377190990298722895890293479995334886763185641261031888835540378503826218096669022544759579423353012433294981223093472748057566781847163351377111554555885367669960784460212151087300431495278522942529965976139130215550398018601615401169415787364612144872044653684179929938431851894254986846365710300226619850137834789006493265274579223795562452762428386176287118379506953713920442244430820082352352678063631123588447674960390504181210544067766999204012366529081832413890642744153339137546910613913940241781886520171166903304034330851088213326006629161672271039165870821119165064657040989308249509913013835305020343901146067819956287429018467837638811273951619026692602513844147294967271961435046357867761947340146324301778436066994333414172542303092670985194068820091545994559679265237296223359516658117781677480108759807014444830963313915531554709529819061932142079775535752147087228729371326323963900853402766715920821246839718823627896768433670779195901936136008867226306221308745463637256646698576604229030853657073237468183557647399223192415672329138620785899645102626032452186095345544550134379284187340436615886811540837745742312139845793544892163619497594691297006356724524489320359602184692671756416277185710225149101261656808917772726581501314789716059666965899647765576369285830739275602461401579046407722130304411266892066493186920214804057348604781266554322277971339517563980760250513566072764785888260811895692135557748838709270192361037187573672780434784629488645650400512936090252561552575615289865370066840896325342527896273147566377049295696398575950325737733591653553583520337967754531148125086481968014791719160928676587829823172572028600019174461254537686471498438483267430235133812718739575777959589252898161284770390880143940686411206264657149726516709132860895182512200926327107444054286437026634610467224173729347436263118538821377728863789523836878133452308707981209166723435425863480761415339231603127489757024488064848117189163297758316688256487879916289096779118111030347690447321740783781308055479946763226263020542792281443429910561437817924404712028235530886704542486544862824409312327995065070781704336396741547922062092841538806682704177935649663964200516607219074461304938275782043401126385448500253240501041237801592197405850042230864518791768465238232848175438629498248718646895260069644970340589355348848260675743474818277520579387598450211882114775902468974313088604128109448570750711678030263303696178261927400426162695057540718598291765787807167911756733175896139659174632192757100570296188036190502363423625873497351391677004953321446347462852905795931719953098525037658233383045151803413573188239719217055893347914461407924112809021532625856711156990663076973466662261635218553153309640535724750473327700163485448897183106990559886869874666067503612005282008031908209543560372933487901562616038637780779065915667446119246299614092214659628724287065627019324413588064336667123317347265332112531694814582146861273658284000319174407986181295859815932263531677509671104229263341407750799104218071941793496169039541108562754989927577019467842516261077474248728218128902263804262678356617817974679475269560887856367368285105552395237453067977265755295156207570610846446313490138362701257228284760233532809259971006379965519698822093317142102807934555516303338994155807619561322347813020472420707388409433580685374152136780470762278597475927140393275656352353464246926494934493995149244751980223713958711054826239160825115980481312572834355130803052007357506807157305301358893159834293645569773655670109404972026097751874651973989877602262247657586710193535860292220781782115854714270296876172572604979108731782738953694009123527146706993418731595037234943208481002705463413448801871836925297691374220451395373518359513010147229773113565167465201731962335725944623660341456057220558686170469348044487574705052861517072908143626785557995606751744146676937023023534810496607495786684307968889957443984886740398831397366840749951062378299164151432965986241981210584620197052029645061685235830780959914813765597292391209723701284124799638925998550170756731383162528226248172038387676810710105403716186866897436931803348074393285234818583709989281506939405764159944968108974914280312319232262963816352825332549873851495333853406840212939532614983021309672667693222698206634194934993816082306582638394096091348217126321919914946921373200208574699848260491963690785370906137324975182119265602753715027944373345382874557411917879659792974142778943923493836810756480616119082830888515672386730340832352508144566015394641868760018344126118632791614567344734211993608350044994650899617016434389488046833707814428871373728476283046385043751675452597054629816471875004191411209948371782954503961015571398017070149143647243965723768020112501995253084589323323255109249928105641506691694513392786071721137032796230464168130557454706058998212976371047142718523243571145537723659547850066825489349612764778065799614109926537408322478445913777336665424691694884479135992263082407102142311405587018018149837243548009562373152291907839509858224246755843586076690631487069528192143399294004972878322899792750868361469988858339887132251516841148340092212006160586590279436456226051835996499821685780953888335385923241278109904972905211716550316003834591383063524522905485178516740821457804968536771940022279637557205176244568617377433409236583105905811724505692306949159564715847934420027651892828173740482175458737142496295264246875330676906639526482123644190465543902527056374319562451831782537135364288023295639912501028393575609359005406390238407234964350796940204619797368815702145011125484649275170715639358531314107305349142422663338512989647353205697291636199552927285393618386393609308849306119457037054949509694492392663348514970856837431905114676218117527169768123386110909510082950904413752979202064754054748130049982003275252809830677664312675871469884871998667047521590343929192447128080175858971504301851559891783830340776643014082553696632803467781554423340840636414715071235404352167651135041362500110183042487724575641185666056627152315465327481310674440720173555281634360848663857754394671936716583698333820266380784497931835358736087751526648664466108749080233299700987028862131315610871673163598621156777514736199912309679193830077850522898101515973442734304393916502681235030951406100896765750162643068621962498768070710322710549637187527637521270742690416884977822308196723468458220487515776381084379666036779373484917096553801123460493891930211668296977283821646679814881279097752505052899243638275081720300221476374288943370638970337830058173164104212071154497189077453915194642639680377765307183715163136692008369005913803667458556491133893227915606763420270292726462738983328828173019787315659916296227975677957530335170207233226497694552858171871323090972371530222478617267180639962918074963184534721395236746064711094251993572956416076901818431065529450662006479068191646107027875345628732818457324172588763436726453184401459117389220043879186403814345333027226862978858153025260646495689144176200521407182392094371127189525085888146670330087676360114980429097458755024547672516050896678637767226974706894240955946740515568907052350312978397893776065579396302379424336677068320424667216844579969036469266283493941995770239398203679648138583829485860889799258982492337151990013301865044753448847031694340302170146538179262163623527783587270894203557507774212754803955561550440768346600316865285786710867974457406809225682968453882781924867922321793412818627679024471951840056470267107588281304775844776944963375406942767854723208021971112013455153778475966979097865879458628900683686173447080599840298561457570639025766808754290045278056946449973839298230958868477318062893183445692844499645502761963174439854438733886963879362045322930892894182030749438346293079788162466887998851526994069184544390460501575091441136430928464171753367172759566419712367844438129839753788275589145973901269763773534171616321356821034794809147281918713915150579736340616608126431454206428338496695962895840738765651926956858134366795139530197102932926048433639574774481386003356816390381543393275057000245324340085871371172925959726895918932574044898507503558579900799819322022116278221686686632048531326536015108252776196548449761567470806283796562700613065575888709473076134905540586223270560912540592462515593995134187677579003428829143964019904455752671959395651833767983143228600108161471777860364251877844215997904583646517621315956819324246329410596200917354376787745141136261087831453489277881194659093416448027368962418337688914272945784046766721929164604560831906788604810085390296880234913923386739097614406361699905908402005604279844417211061392038426110824032852977903594053342065011817356369694610866563919958870816282595143882267244286973046855193612305530087186114215117512305962488022186543439227076135096330900412062547443554544117386054272199495570049742826797275357054680559907344582464130819083673199184446669679765386607371584955239281439105113010450350016005350229537239725731375398838817015192731604732528342428573609985133722861962377415053665146641806976194717994336497004460738047775560465913237261808163859956541131126704785804701547178970385518041392990192615928055127919912650617164908253600102668305935538998484659642093420533590217283226273510302017378282597681924379169371487407912176511227119308975667844976764584698095061490684010661170479536069541387154934688972500588075425194373419140740223418877776950367854883560662874911299435848526953287158800257497391286805563897887233232516889288504138312950388728144432895540132698248183857354124014577680188009536741361971127536687853283260799020929716874407805977518058633521665754801399203078023838486465133854042843451389490749106896233097205799320861527494112937758031596104051133335853687233784006724522831884243697581058158913207576339154026721074735278580201177264327972555692665383649715555760719847691552403280598912034953034886052322773941438485752916375269281253028597911474783631607408212358196900451402296407042160309253658369612216303058794697800872982323284313211870326259460934328197746425052072402249324425470353647053016763511172866040679113314515232728742539381111453078875023231003497171407750254787978326163488906404582367576912901102881092890276644397379785978280158899265596793632005005204133133104829720375480968550966515921787642328642679535925124732975126201884715150887643910360431190630271010636947308962622107233622189755313535861270852348743789726924537950725359923350899308940905114756564521748912446821348684921843169327132422533963943455212104192227991772977097081376864029415821375204113293612716267252953179001425164609349220029278872494453388922962725039021318057834949186321260654338342159236313042403881188146194218215465410890637190512459627367589548819684216412807365669981788984365691050903773719448104127257159906735097978416062513832600634197222271436904951514512502763212571732586834296781506818857091567197000698990848452458432910923010893777915050153443159542190638277218255561124022024585223747905719008057062160221990166584771138764768745013458104930096408469135213199741276264319486734375114820572110589505690574697724233555887745824923317884303455161086312002166624283820119302221286466125041670646843751526105870898007680451916835957886626727783330076331430190606017679960056115617425855542262725255661408832987938910573032961891820642783199808052394838646827334219402758525744375870665729061306764058897867568466370899908775320464614988576903640590470147859057266111551959329417714146952542280846000479425060633664795024506776138328234919993431579089924660970085993470161323969167446115835458366167093046554104913061110674413616869970790133210427283335591926068222395053776246631486415555760011525878780377545415319546744205876547743993540146508436560017232589906191984804133878036651332807711564664842209300917122150032714847898673867465741303931558882177174365829833350269370567709378512399760556960982280068674565173952998034449967442341463083281088585607836476683030896899825820062608924492501842733331278293893941281988417650439064658660292397965992953874274751655144597699148593664276208676850922931348630170711071646208149401183397325417206466501302795574967283279760545872567642927509258968480766848408639706090131415781709843418332113947447679768332833974207891584502753559013025452851928425998974185704009402431588013145015390583400522156582719326675176364254459412167808309078276185559568801922271147565693073131263838232735978475557247158511180514821149522035263046964519860244585708002311938232991233379713372646867247332348702174426867071381600528980415653257633623599080816714458604439831770816181146764272996896910271919766170518329693001183295645398466855302467239714587469283650507506858152400494552086354375815326753645214799873413400862242661561550711328775635482962027317968130029911015803480040940183618579684666907910047285333486396955827903551509194442093995663368610144212522209880909352268419122127628830354321561388054876469363985331364807936725315291908053475566598751684158567478468165550176563074528168698578112571155370747429058962928426047656231791956949640049281900106854952687663927260367434320072983013574094097001289728340889694109794069059831690284246944403950545081440611092135888598968510633055388322092753248099315619171159800182920483429191908307762366060566323772559826676177070341855483230026056529434110618200523714816302376601689837268140225709671867647937530625098435309238285554899270669715252775893701986196873746911147331322621757051539990592592290231363419072122363513138204864003886400825278329160599710957948627007716410585141027024600339278499109082321743320041186935985589884699295310825539090061293904260563278433690377301783090294821354296862012498338418069069090058026126587971258175453839637783441649198050145650006892935955589611523578425098237859480391614274847985849947153306402934659712130835406482354327494808040374926383677793489808763809331968861492081705315857013584863303868178441576635126627056236422005442402944513909055867780633679232977041905140896073248923642290429559663319307157838371053858441510728359634052406451525281137872691018865795449646938655735580298324352928670078462437422376110590256714231927169230648038784458636090241971681040645359192174296246618055712197505769183443135759773684241611676332906480896791252101414611995477127448339020857152142755465201248586064258309084510913861352955521931453960482131516906520451068841251327411739758833194996269850444929911084435575614444463200482327368544965434340663666702139375267922674320264015825857189649993094883192024758633904986986122513344307478885678423591125565292750620140791208429683042505846817270381356545918679877589221763082547518547255401442896278614425634165271063976786268403122067655898780577837263329957300238533636042667701218599098461625471165714630882363789332333551816095630179946958276427831309348515050465917972434565792352309163738513653526203722357206827249514378707173825595561052602326377924539152161504742134544484013850545104769612549561444883987816713634144063848122973349547738200490785723618877858111043382244631512264485041955949773184630393541340745956844253336579054587202120343577163917325843681366268546388901954060966387962164404902322243868974041054565490337222388535760768670848440582040006546666072149571888960376111479237489299917804163535478761832685769623428122675379263863517880684167231467278359258382727031280819520735208623964800868354365706338862911228758536644507746378659123809686905155203843494609143943473981675240526068852120874882492184651617268935426046272500590263496371857391344288906262007800293561865851731354960419174988396378984426580098861532269300896591073775417136747930196801530303019512344481988093476639153144388586189641765010374253097786054282816654085624115544432281794864410315591394540316522875391702320810015095361156792759848293774098512437291633544082126560564235006224577118150700856663343460177342582856976176557660034605347210025987510636457465062810635483273177565553528248592672900064758774282520492006116987204988906512785899764300162681097518161712012997738265239564752369765203864912235101797870678782911513499393531002081070359472083344739590277327256719940659674780694348554067210374834441594283024864755161572319284028817322791928151228588305817176843953611374709945893104406849654259129086672861891658402578295283185419326766559858305282179464784210158541923778033893647955851771140759662868004810843002527704796925468649274765777467269120962620291006700840378205331497538677966649327385946755902214986721280875784961142790329203919131930346795644485717460579415624363048542202189767163813585045815502652988328603411161940382210159420362378358634698543784648367153366457329942955483025065566272469317860531129736927768832701025779151144185109865929423971163413799573204518934002095894908681043995492011034429710266485394431260703539798790066184181695553219643765902697484234491741927404841490469425446300228952008535901620745219967749713197183270475444586820751551341725795396929360569147050586300735416342034905552173378367093682208395031933285175534762830296924365592038786029260679821122557928466551893717290655003741827815985256704722132489146287336320444840299084207842689272110592265175258709731916338305360603190484960507830287104469571652956455882691025065680080988321522617979313910275846257083278947538370509408608666405540398187815807618687112703322022300914343686158464961366329136369394688543770160684778697203074179895330281159566344749463747841114650558461456670850882080434066973665537018157403413679586627424772524134267463389185819244186503969754094235282284079906512061889186566104111615476755741631908214890934165897097348686608033967336572726034680035536580416392886346974743479464163735060093242822276611335318525001466769538079607004890695039086766161046432962073305914074271898018951310136815798199768603983202841778228707109662163386237413791621016767777634170380633240095091773968983984120193287296102643429166107302508214870035404880901890252929824077808617656285933222595590173170506016452461331665724862326510454911107787776595613387526842034003414104408521658363081928013965988752047422162107874115482006925273150234516199577926633911378422125074535153865387359450659797715791218678006605939700386543551526134455513653659627319194632892802271931583288522700751732366353102233549205309062161416242128853789668179097128016971849628453271286224128077468771393129773961363156672179132494489443839499139197985966879423426555452631228078755896490455922948662349960793785613708129599540007637824194641549294281456457703841172893425261038155190700097820573386973898766864295252547731039324255831584547357546373336402852054409300998154615902244302872485557236607609704289715699184727422754769137419671843737173240077812397652902403960393607105157668829743728230054303128669978518016615439716047888976122436981329727259103493301425483115261445881441387393656969845896499029980391819261130447576071402212021322585654453645060065981271733474355126316853114452230006588103684680782934072531344835653363894534290141500292187842567174819257789793923014699223519718740552681289457257756512727586465040489887809036770621016171739943789458892522334080880428179562892036075043402002472143387476390032115731422665214125524785762535123267337704870240964052583300603247235597483593331457385265253751568438173467689940920376767674622953112226383059519185158642052751011877111540643806418480233667759464475771228250046397332593557142651813275197430521735221198932400163137665150515117363980045254946166904051632969334697598642962685907239131510331401880582640389427596121191991613625774829696848830811482326933497314346356813576246712745390480741367022170311006720984037045403253492737318267757417834338362870448758955974030550178934280285772066644970840502658628132289556160550504938338059123017320285492527076902477664856209657545460590629094534197864225275953198483735759675028776551511795457999003235205746002276825102261462769435709477128943870847874942384190183994990109541050412314796720454615363454281914007722962589500356213434159259694699031491378336422285495312987233766835622470387818394680694059881518901813558424830806627983933802227952967765585550740087415523093788585664756247209601357547698186101870234919915998515080093736867603840292898539572530493285168612868884716239893612635029962904303796771012248064364821364874283916409354119600766204714094464151310022714570715662577837138876564351227792798252008604262956160588204464468190006052674813650980030362032146791946419490783494843764361800613251187820989617698814160843454473509065287386789509960249971641386892298151310041359769234645163588120220706984223974468252967284630744759331968727508589574702969921325699960605525985702499406881293293130664583092762356834472429364949519345505017338493717447498027150222133092554887012567481778428278027424009149088021564921907616019174401810032718130137271337844442772740986276682390096780234676602667743844439393472192719993033036811806129541924255956158867710986364419542721939081043978605032747783611734904718408592328174072080260342854090330760894158922402175301764927999493321252864475270312335506011228528153588379810548245869924516085769566996550174765661301229460293195153776521968423043982301944833518584144008475676583536441189767788729528113707403552922485518266783598751700088979716592579265061981766449522053595762208056252794527870261535276489937561999388202566185255954531185562189038156750068966370754987583925825419309447844192879840473276298043000802355642708762822210145520516500483666676876325372744029558059085039773099603545806012033121068697653034569566015845487083262299523064577875438050851492830422948938303170616783603133809576418306104264999001744351546171229593188765696079833076798165784836397752959491644552353527474249966486001779037141995371621435345122106476806524215982352091103970540943960130284199743934067909582401803350662852918676719615460385055823084956307472824388210692773355503010315891222818487001253083429829322881528549191823360123191259978679584930392436052409532183436712648227812726537272175747870735577373473871160026797028218889278987924425949659975239053625055309982441908456289922613019647080397513234479842428972382157122855754467028158041655867103351757913622910245567420038407078333504420036581232192161402221174346953856416150747119916546068168958875760959543217354451397012127599179575031715503335458732950175271743899873177917780913166455349097510711510184618920155212340398817571039762021471989162166895959717101985402357481737770520631149064073313728176716722841586847034143061165167630023617441384550646624397333600981334117340029906658674517108219864174123879668387889108697427496863112503625220202749558201984736284158630211398050117511402862878664064431017734525576173384155974770017637346531042252960886909089422215236060598564599144407610331785089329479811787497767981631140131385558484197152370571333418364289692464125365926007182116465046333667246615780736931841452742325852490242580131583748623921966525032041011993445696912406015560180901046145155896979121530126368180339979371694690989987782958591834976640544064730081929558254821136656292341294245830555201363861524246767521059147121003322073355543562832706941931444045977257275881684617167028875870032174394326858323663704342283505701067651308780649854454878172020798804902301405149383747301933167928736291589435089506376950326211017068457186637751411075056982958928458455949913865138524996477109105376095833295106271517316606058414044877252503561977250907195823002713542535543414784386115339340409012478883198428451223548904131273138304753995857069391694886452149977488607570388209804895081265111711207154458300374150141850329064508338325623730881255403940765744181838155917725383045343060837962251156054645577066890651805158858300849417669419489337374745115098471072368191650701894231719177248643924455413471603408775839914050972780792083965911673606512808157129925482741644888474000604474144711017832809887053433959930297908237469155836905517596654521481104943611191404707940965840075189558690371327649604929851855932041252249986438194648188358977412023400572865573039392243314320668783737487128063106002910389950592648820063312831710842047932587176432612785878519990412541304492250284340084721380057853325834401083317366455595615156292409583972767528639039744255768645641021561229347000656735026562458265029602559447102052190343127564881567602376506365551142238778466709446671156954158649954688055844254968586264676289667884669407356238552638557708859410547174765554154753316071992913235453877286456925520007454526889144508094204657629108025004661877711254187014796566598184916478538503971926961548735005230968605746399226702053866247157057088871329286345683762871421241024456521171009237110043816682849962953170840959917655046582281468040583224419911500529503914749429588767106768528069838895834604142770149237292866656886802624145036683596241375035406519574462441255457954907869447752978231648925883212063211577127951932019959344952013755698124403036885340928673532922532465542073684925665595573147368302524488990572076746331165268968363747222405054352706484389232368318647822459234173563230809687275405977009701676086859685336293715734724937770740856001685324245454469474542578183094368456129555596479170438417836928858193643170109237693258031893267727948369319322656307258238860409753823321106486650195326029478571814121266788911670729908834224583065169757161683084571904294787191746329190057703436866451102761269760600711774325593737246909904038805721302195500567994692616597772465251359484186153734434409412467646807362378421023925965965780462082424367252216560400148940364072271099266218833966460245364438753919726773169762228444896010461581129907442484283605557002650630993678209012259675057919658913766116194941092976035579060280972533403297474751803898702874150329971692043394973996966550760776760705115114703981431166395357090444140731748288326609052763928193499204702674725232872692839181324701318324696137998807189366433407878874952382197063454365823049849710572964453074518346271797331187835529250070291895453925232745636443937214163703669572328267002613134288233044639721310928824599799304503726617715139585935966494657353645715360920578098634097607177172483810929565912618418542498884711636243771829286351967865830809467025674711904940854807172382759509123016104953344350394416131492039651550503493899198832598963070928543396726648716133087445934605305197449862084162160506224934799843616466228604618276711917159979952148421333318135538126799535212024547164607125952084718028517294452810514346597919351182551858541949183960062812715982563457341311203391206890005919249838925309532983947304140076023442209296820422722379053137889045138575860783413906650610471568183788120855507087141707506648013124925595285422387340871287198787625941965326683895174256109365225442523281166118431336697030787956582250672008201268996066439670412083762065662905114967018938745023316639367371202013709077168759048103162277455408797092118067342501571845833697828927793983362396047403075924755672412952124401530482784437513154067502075397058646562106437472698315054474720871888404220169833168371194861505586391067413750946917378098725346886544382012804026940475811023730684588439636398827545553391046425857325457591355219521508200618298652973363557071980259603838350432363107148409652425437072114615707394550868709108885299214787304598195971531240552938033558872604493430506468985562362898021126942200077639698330444430821949758929671748835433778872616517251460169385519105177326761615037321899327010068335938052639042139777725123995696620259026213972237409884831500671757121816455486228806180179953153571686308747223103950293854970788503876366389086468739363490699899065709928287286715863749199907833568982036989787852623814259721937892763865698708033188945459901413753067100656473682013619055973737248206001269299244555410660250562967920709717088392267960701747707572037737945833832045368465989099400441545280920008472530923729425108188666227967916178900104352219979818926607968123124889729263289973766855155186533717744214374453874433021914438998451394621815474183041470770276203075399981688524551501907580700088951383770841733647396839078377130569025453807725108204981948971843475466206370719615044434609950753184698416068151907561437969477578111692749383048668655996339047415113918871815786738264020469367690368347117797441622079746913421276449811585502172714971322915522575011960198890687713453436843509570018707999728559484453802566548763526815380916788562277348820130788660412137538728592816221518320282633946624151946608476980189494228269186647450928212461406418145631664877404362973697183047392919785541864559069212826456902335265766136799326827213348991645202951073982797992323201287447906268936115537613066079470686535361853281140590478956535822291854602519016182681395888330465415589054248804252611847472919982069780278002826391705074733179285087496958714927246625677161490811989613994046762520423213373600586766121107335157160240998664130675374326082874214394479987887465578982201519627637662446667548710620865264807318262136433864680246748734704535638396085060034473071234397184570688755959621174015483483267207015494567583979944053735611522903927014844563195063170796113309941935993080833779675262399486382981099961070409813858573723367738783958935779297687793063194393580486620620063483637420825001946382235508736695138600102589061532692983797974869203603940287802263736563169460066542094542662964572111533013665597528338782671571124099722724838489939957100042272470438664784001434790741359392581991848260616357421743892288294669918598920692868035735968520365977531668334446626133931672886579470463031364882159251794431579412788409471259813637351598478682352731473131094474047481005062929336069882176184858325969175445710830791804308424335955608323050869695613554141208979417610146311950156695736645967956588922093850585590803917441770228817840619988176595703876722433717482755421676489914910353960531206703414597256851974252922133473461314762259619987804074159958260141708028086730440901842971638540867498722417131346211562481881034326101825423819424448464162203311118952472931336442038965831596393255185725079751569115229938079048776392589410001565858742392888897406350524920690184533477919704157734816850527788791568748491555376658364807011937106793947927691195148836359312730219037631555120856181854335631841711968819352488744096955643799688486260306608855480081155277798013614092119724641228494865427179420680535355736650601731317726566614760534957292045066309617730269452135686583659921371613278223822300032268926247061286643210050047104216111385612158043812410315301358658104677818313385564639642269977431724494362836210580452249663341743897923436434402005001650244742313399574447838499136768848699650206369960229434994096787885576231501063600028472837547992651839608957755505169836488392928655430159932565710174302584509528086694131635504701577309453458856295012996610942929420888289300122265379626130110138181474236698797210095550949934199052866078230239803710326107059191631516174639954709130080304140080084827109385027366334757481450778886274670305954020543406642489071268169680584091514361090284929783014785740177997859911084477017310101872941235391387255418499038472427420868735205343611198509822882723853152108562066695352183007407519445088258977583189292396177034089107008503655308517638754215067195457599838754314464737878628670394479298475798444356806295873671704858630080437215294913355159077144470816131759189743916947472296869191849957729661784675024403867494801778186948854402264423386859515379743011603467410120278139602486098762706922153491265361622550568910206752930090065471153517780969961679475162488849565388102789213523400314640790069607541583205921194289313621997641949312681195174678071704775656482178668125273856614458989279411353309136659943939354052470299975496734513582970668530792954567365885956458132013109256286477928636732418301192246186246575750058921370397619280991172340844224899978156005819935706269717282607722659147450861205188678238549625886330634443449740124087246303049137247217367853170641224312762910740753328219130096661200222816874479697205010016288209577851009289505997975464175768306903215599150649573548601869022922119776637955058019782571608458675349054273198521891385527927567720568231651152302022944967653576217905595895645004422583702853483343350419608959880890615737005386257277946038337778659442562289184135967330849753480923048462374959420656752640670951375051257908150828202119296193805504545014807764539749088227174897422300387706632654168752724337485290933649364837557894308414691160552415047590097611158286627691237232813085903542989283655963441462521674933920087679941130202619813209722872026672595894911571331387291237784776282749031271266552462590604226926788096973103874914406094860772735710796665381591355606200013044341376774668649506991656317721471777025602257980457499702831336219311060713185002856662851167641566808344550932773323622987615677911310567544829797694838124561577068762351810394344721590775886500280777177831692380925240143749271229688664282571304141033679462367728252785392781853311917737146934255819829253743994663771607468952109817661802314135538981569171354527409760160878883833534530733772753768068316525412066141810058595635348759099731716387195028577807144211832446384456883326874316644201502489418386777479538039047850962425870482604247007706469710144395424139324342329705729168009377916927199676518102124561662630344509982896948153305444638166373008109619475445924002413630106602860864613590817189823156007750604138021307091707548389395762913561114956067109354487240177495636244410576572516001958742140443453028954460591526919818524751832646786728129524709927157968167510640279933732892692748643544923994473530122773348554199515490077740248134489565559444255531027030143401890465114616909070630679766033672171150842180574471273700280267620126152846888901774301839618401433879816007846360395791785089632357065235009188252239247579702133730788929170937672794665863578519845595000718532230682997242672910659545898765334214666699339559651249060718447567223124037597036072114016530714194213410663905675472219085136237944171437850563491307165972150617204548341390338541192476922167479667237753757714594107595119829265450105187899503818609533026710469605217968638939983140530794462325730297751227394493021063784846500689891847096490708675175540239723048448210917393193387375348400091764991929277900343796921633125086323267265546208979167748813221475808802339793495672640175724889267474732249075444592598265378126195932411849390018842190186818116263668874855543187895472616565389938779686048386767059406193934387512318140583253675891343008049643289566561103605176013995733515150879440734109173567057823362077193257694174512440100821306866504927058608365144330390577181964746336076090540520460460049342108772678718113650364309367481231479098623204139390392779110567510831213135252726161900871892325145388358925805976953281912561076541669244745918169616046712138721248961835152644409080017146146726519397482097095116560513165107961842403569272807075166261375327387630312027317206736363003108542274181122863956711831954801779869026747215417034744985508405452342116956827129915011760265929294831938605459817269030349481595201192515147956857867538499740613917970128467293012299533916671751492548903965366416592695503444186863689475461989291745938683835590955638741059954344156493009912141142894694222482568447540758822119429831169537490100748471592866911900087654286971883238664856649623740806242678011284904873725720865750759195165871693254663359893434043443827160766756768609149664343913637056208080429136449905303092159456128588322043363786459776178322713758767639808087740172788376065087034039352464115572682526120669642040505697782233297743408308549328065498289136277838820835649245910981169733071063015134393893254735270158062680972089127726158511430565093647536385377318012607919367103274223755645939910668055470399125151683126541946693739761482068172897599030335263105060163780606939692572638055892938920565731109265980014317915361218664536669414159978087609574253044077922091013946210703044766649135053192753993540084707405482542859031558896726595225222997209322159027313644192443703560145876238863951010272366474888906560400319889813572670489588895231470697187404120792914208820279797364085625315471944515683514646046884899886362209418009455611117156464800400065764944826949573966133574548543901860980830358716781108524592011616117868616584727294397361219090692769588662272825801790252026575343208158368086558241630363720994309653769754029764360699280885880895961151961315143649893726073380331598776351697426795192387032986737576834717936671516542162666786875879073003786184604968073332288333940364493722024084020375419044341384894533627224518966597912191796386202757443485966376651625344762807523119639152154265879765783064378755987346718524660326252575940336449040721666453523576282534774896778601325237355317514949105898459549176379399639429804073925773494695230655344944862652897296230436591611829923718215907732866936272777164420499848848583951724729805195514717054579368983665183614095398540728338844296536107879383063530162526760363561473866795944108337802184281471473958957405532464373834804172578482407540398066524259422774258751963248348373797366296542420567602014466138431605449930926356641135616661631272463490896564062684215169016452472549930754364682772092711794311895974951043541616633659274615336322486353259364260394961566343596208384665630515130638429163941444707595792924553747871091305885164981246963724866629789339393664287347733337560120651298947893421347791454966620018265570988648970669884893790846631605001407973729266601927884348711595613358129002610434952212261262478591074959795969455919458335238242932942651014696654004492647307170505326939302865022055848324214544592475106766288083944467917175067603241164027262523938367615747230320506888087318312765243329979692632539834789235043030685959572986467875528350375920437222333203575834705934953077529809773479403018351774932779172154362655259198478853534919709224947862681226802857160393240065303188538308583483969342609588547600046835573056354758440866000893007869757226840495693337912667622364443950653009439118873935159646199728738406595472866463277517164626201378928885918396024273659338380892418430378361201210412890609852885263247057665977237276918120444107206609994515942583271079388706994755021161783772760201578871622758559814090259311976747064396754618247454463816978163716697887735162047398150480954624637657485577001772237073640384606435797609737186013976749567996527463355209025310590852691199259486212875054887933053372504119304032291778154371287691876914856740355426892963972020876545604531319258921818370718786179786569900327868856966176990093671557835496534046543962218813848585932639130987465654324443540960430679829146103078602963791905775600441005438136029647627673504285775137311393498982122716468937668268623722341203747688120749209424451391625243014475468652812912897954020554870351723966151144506958774486653192521087384277833789242309033233989644857950872808888919446283317604904785790338034530531959454108913982208892403971421572383072011386400284242054839808675777980526999082814565051124453347155491394399376833626287129062986041125607337030727656043624704634264140827689249513363283782291722550586648779488860931449665497156729690393931009517093969381743271459519688574713002831468498039572641077159880701385238921861411643754675902169186936681797702098113485981224208941681338950954029343236287947878038764801156000898808254386964434944036582074288349385740698100870866689012159749854714716263342377366598312559706244813818968399930722805583434507157104902337528423549692313414414713515634613935553282845472315876534930501800883421334898176243410165169387678090572695557850719917641957801528535590622799169658438600924908713913317977866547436624796573328407812730890477013408149055367433122545976075913968628839762056226375222952400445204007256441415742429608184301106877027681648359473456424530996054624461475402609051075278446524584489343167481757851986316217167624236628703366565258504892890006859249576123824363349670571488413169367007087861890434227994115372679954315899193664723392916460076172273760599616515612941319339213160140287611361708443864276437962624364407281621613734312493267271427331465403362017733179836471449660340673584228323518756160214226975740088093187526681281501657776966194652532022443939689884747037563294958542906440405950508526762235378782691591594337212743893536665471729528379002534309118853146504072918159251880214487075187702234009171675952577063021963158903813615025744109260314981555604165865372124785970747922068069247448235671878117236698293788219412273475561300812932932352192153667769900426873185626717469868976029722245838278599499104341298952251109689654003437856221186410256346268803029960590117895502157546187495622225115740236511173215105802559414124333327024077152566946183292932981095444176166542205969103620688766939175761570304713671058154108991188641092698235953216107993468089064775319675492433272714441059458597407568454150299993637832418751523952916330508023074010320281974901455453866600069428232588013003001419764348842158453716157869371071833613742825345654822902293049325693676727478651945195908586817926181263499713866901072643136984181474010669371847274341909005886628685872602895842775522035700939337563389928715835505963040385671141870919213501691661690739287955671565583347237713240705385445599668816643622062304873437412287007891013535437214114297120967232089549039101059010060434183772869073207886353064431504866218449590457514685005216142145822195126220062488311877763914192180826967823408758358217878872751997226334362089315226048379552992893000483697793617518748597807698925122343685773954345778253885049583854061262331968724517359278224545071549164882669429491224048490937077673770261297293988990647673901043394627045860198907447858929177934407893307805623823738471079046157460416105320046505926848951512446358729854706987063037310488540020288370805037810067545948234639057793585980431734357080715731604389791909564993451619659376159881918057089781539398590461720657397800308549816099036532729131824535226750308020187311383973842698633020503150226937500093761270315416795500162508233348805030186703720227929020351011200400923635874530656919285497056373877713172951736727342311885458706924382173749063995793168795389327655416885387440665432932637902514830549798131357667871443178534159300852337058558128362333334806899439249394283908458647056454939889842412617465968627974989833704827964621494311162634628889784325897757176579459942278083150808337766124730600465668444959808829762684818443607623970064558349972087720571858718598104040600713631802152296748925290238865617196257521383336997699136455668875594463481733366707337643162632068184942567011269010340886510315834425688605319709179392649394089374121925461432914114534255413757522062949844469850487973770730559002042847948896682375770336672866801309177152871254349582392206185902783227754367761952471142213475317595897874566441341830227429699732845128298121658064865815626447908782415614581273669679122857406342948438746702942093783619369348693446457521545725676304683642514979471463318869990739798109566493613769112602725580090298619432493392021209988189719072351899684229231786354907132651295212130956155601422657371635746574510213325484199227478330673113217760457240726224026690975187756030689867909656788317363929270456939472095442764666028220748818106499011664353528729380165811797107429959625052107414775411388976792795827112441853998479019672577335721865971380175015373424614119505793357132909616292723254622242907844186633683654664754035561417450406746286044486297579709109881219086833844279442604122933362215026132557668254907333272083106812811436544702756180868184987386748491932624999221496341813385507711759742786501329830150568143966792026443614639419651098512778598310080574361553741135701100565224201358104714715285212061508552987544144020225248086305956375238699805264946563349407094389898547908222750560198547232580525202974483238393635213068451084621025145077731654261224646642251348236252199669755799520162248115756731331604960102932349702643466393842633738839555335293421899143170142971092316611981817373426176564647455997827691246533918111392588505944553287960109900973522489613234919784399300351691888206510396910047755434807340381640978626001371110634535493194364623792993335594399925694662756589259168949449539937362570390024132528073195827686355169773799162938427289033477507894184664987455138407380772155804229841221119800600547110422701201279670168751663007537991693988396059954049302462961884917452914342938057660071552525026145855301143353099610261920442123327871373881953957261107526981428217421488628956302218810157169296063922780163893758225898751103998626644466766467010207303646513585291711201256152062800859063335434996750753410506370799132875297454787868988381851564645181146625028949050696975000335784433127515409894036234856897143741619972328800227361621085952993344114839871330849101694891135514041918544538704459238935983998697134332573009811993587720521228006715247106504567634643837092770598463589999568865584905279864815632873222842812978655160375037728578937062583986488197181648249954753426283776393088120681708454804215739863501548887423923787818767611659155683886155855922248298134727143372870523747402006798570607479528299703086096692122283032194346772740171039830782621646072496406043671484588416949290720031470813453182750774936084879192874457552714250723883223229888828268661735577980959368938410828344207669161720266363388673916763746325791001922683609148183813095546853078479115914529687491067511279823953170009524660197690717218044915360076387146487407489899273268924164893231730003589401831030822277776644702046031652401060451022787879970880001678285442871211028388564127303143827732525095767698316187751692697899966172471200995726571664205648814515139313050928249422944557167388000317363801168566008404502251340281963859318436976103049610469375252508102686098414410983728079300960047204998966464045967980204057975810108607823459123310852473553758283064295520579589498653952861696102364945999306358269899891613464630228419303633140936910858555100708901355020145683002665719492769013890350991925404836708183607311782098498170624691358375899665425571221478129902851218483929772232161429953439770381311655429116349892580380128982689021253390248616025963097839243163220456328946066593712768740746443298073380068912444452882311988544412356571253172456176335195679180477753888509400375253249592002999901153762061415262228303602687333134627490232006319964777048605235103999472766390401066804071870996252128564637536891179902937832660454771015310580356878666267780939899881844217231770174239405991314536678005693897838050418134051538859137341442330518369234695668224961560050434844530301481780090855025171512379778448922499406269301437374950447929146943829054347051040965602234305994245816914594870127244969110210336364781724497961462254123950950322609660926342274028388167509494754944036440430000688758640352488172182920536757309840174102303260156636150280867522906967309689625231231163635097390478833815603081049708987801572877643034167885309898843715615708819464771163261743031576232364192528310508848791678873788321520575300253494300994494696469958952136820244393772770791790426252161121780983106205417819275505559271233032623996697842684485271991070079060473750336416871009672866326391616433048597540455357342951651144165042836199120717046715041231550390742305960113375956880775814025267493324200607372736124633872917820509781001126654197464177803041196062820632170681589244847281629062887999526444264965884738857303179464722275527784883897006715758207477333086158158701398374699215855440989351467541896891856816989306948797945148707659336244120703447931408937990398843511763502317528704338173803338975666023330199981553718219508182815157602259458643120094605936269781995180710984601424045230871373088375047785262111273272298021441796773901401497156148309375481429610162463248028651858546127930420950128703292063810001635289981752823899299143911169237641785172357325430674479257556720343455574504634245451256878754907467122905398888077839610990511047636111752928134220986814361991588652078361737717943894251311892457783918646803173007412839709262301354301165651831576977655386686622858482685559830629985701977658087863165925813847865811355745186491618187221369168990437292338207286225933347564123720771242937995252205591333264450740068700828403597896218815324748636571034554570373585357929243941203408063630075617277804468447016590436972380184370926175419213194287073116485338257387749007655226042126695892251332170847503147231989893926887042098016847970565446141115948045590272004738529533408279802478200862041485479462625843681347936594210553881643185519496223663994545016835972316300849954642576190643218286846040262971807586883692654703004331547578039771170929461952004474090175461145997071479029486714110856072307059605601581148005388041492179882067933038516778615326571098981228226742989952172304280402224462809242818935885787385207752571683258947716769631679730039283690297969397058634362377820103432477697102455458694385872045599002285366418411372841907825534110080603354709067751092613491106631192893789025046282896169815227339324933360383603105857120242979802790387049031984104292105610164884044443665035792395858161404843223956088249482234907078163141135238958678931313110158065369821507624061397663257248616277599509429672715888386599453567025657500788256604525532539145149475864538880016419143139278324232953580036366332465771345908723819032940317395336415243838810250404422906409868358145327970308672219344095998300927078839876538767713984216725401795129730762442129261047299390756414945088982771016899335748781732667733512250334070853996987672821930780999145649051374860174069198768992916939079451257216848281207622770701318561275403401271820389226052873368640744537020194043181115539045857651589546993143922799945001027325593023072464132305416780664785895891623741400856762451203055760023823643299757300085455894144908108216770985733072943758119676707811542572123769112714673675672637397446846049792779426354851284137825066652477349494616760169620965861413233494922156089294189129963018851614133693265098869481196838931026124888471455042289376481588142140391719814113949748917707513312359076910927617115471868415827610256433299102666283014946139750811900094696504081576464836282559819908000574334252706279052585833234795817355078638994517891585271443596976418435973220932106528405149003913726921159813915203226958418989858594660941917918890306540110419341949318879247309150179468113630142312148477728110892438109494246371337972839632690522731876623851488377508322875669914767586121956024696321551523090074881915340775737936983452947336531367132571625891178924515502033758529428196791088625174633661413994466116189291888769792886469430576119493459978729795202399564988992904861534743969357153681927420222429175217189506821058598535111535370755637497381379622425813323192279437576634214450360450676041885864768356254742425065566258623293247694585553259962154757211435339352718495719189051578223441581603305171394075110181137114933539304129509421894870143009296853117254686489918765604203578035958168166566194486167628218302722752165202737573901649143492890246599474681860261585655361278409147463534216163370144057366520837827689207166336133593590792281654353202931484015212566314441388511047263288314338385676067305591159986531827564660620611129693694644581847662556466420838064636625373127908350706993648933391313409113907427111826361055622335190910829514794680437672524406265841739653157081751195377443855943145864676362215749471643953395856135007524346299879957596622103812810460572589457506730736213242269985586465844853866652326346332330169922343518750793499354841978164699884591035087449888174267526951988677923083795045599884249378245396678588317191867982289507879787264387123386205089023292475383961740862393104875338330902767026752000006239788767156206182643293507302368858942032853111930950719380623658390865223973800886981953634162581083605923146382261473651782178977015855461269988193733657504436206316166850414068557989621865845778958778328115721771174518731248905193429510261674652932659789106471782937836166607163016658056709515697575209612707967555721782260697735103751328466914110786327540322541954744611365743504331418888090506112262895570374816104669087789058822895320906186719809342890967390668326224506768925586301477709597194258303373920689835878444528431323369622279198241379424486900428478755911846140844000535975187549683238754314764365054609303642685237393790518719109779937285462620168967247203511946073015595729271562086641076274776655298426385393016377450174940891315353137438201105303538415452445257335893061781410091428646223907178723662756402176638887156635936815742092318148830785804246426431497142060112761501451919530631987900575975598868978251271425247811004561894973589001462542858057523073343695506602981647304833414401950602765075870606788974530599903274517335444545101043882469650435219670623503294227459612084185787059171562984930371969578834939651885848889988533896675329058746386993911541022812580965438047846551891843582087888847853334263874943597830113127806628319697719976615370224849557431019663214338238028483686138806913718673227030877782212954174551122424167600382486439348733308331800503561183949922156168629301321845560110727587441990597210615491379679557642202003474851812711365827436704433026363792942986289224000502960657364631744472598530290099954962744095478544157362746340650274596578478610336182499054899929428682574721489084613597682272305412074786853593853641898351865270465679630424402407391969167566505400656014369153520024192241958995493770926790395539502145359865269429699557344479308023543012542417384100052847313056325854217932945179954800447409286844981672166071707242383272323207905663704912285398699908621969287583632461691385059870818799851748253022721727497084359914374883799143413626838928527429757093687068391477114475308676629244632060631713913064382473742624785036063902875699279502228178176330817273473781306066785139355424348753326772004725734808908713588445162718593194564944659233392454458995383487661524877750292035238825993651798119982875489984781785627399612283048941366011572471019193986592668698209080945330659545690398746753700506303322482866883680692767381465055739916256038719807824401292683495406531971165442088441497025092678043306155547236788680223007957324894704329003729428478769622892854396907822348223369921682508032486346243501910119745478680122002715773683542150338660430534277652174379262753525300531440028118196719676743833650182979864292314847560053385791517819569848536780743395766952796752969138801895572503353452655034358539272848858778618272690911309737679182037562117185515733340134422626496512609454711767068501184553661211115459473311341226942920919837936082388058665886055235711088105008546336610244985846536208846539091151223033124655787777799713729719262323911133286117374642381457283832513935496846650399521217939042018976000020489552005261744357544568503958393213070003273309094534479609922561025523251297089582188603429474717336552456818826271020578688350365030933246616131074288012745646930264650762121818389791752607277820314910823571470295750743563636333277100762725976692604142498942055614948232453435998524070224311204916386766641470214777106605866199548487334011605329865555820533704002058317988341178075123193119147162579689783945894425237693400920683954064737080501167140071969539020521665026719237028384430418761321661665323444471398879182170818002351771834972920075950477431773631760626567087944428891982137784525255657670943253161178730119793534372808089954323243167255004527871071375433061129554917289168463734419320465101427844789000729298742466142678047767946108330730312574038052370161249564996004463421319855380590210686645666692604595498939033151758941626519468784319260635287390882562760574141324775976477802098497622391336842783592882554565786473191474365516411095030594435451356580628965094032826652748525594670975144694599949078607746592278094144728610348616537795615153756260910627946798396794968535634133277399375501114771887663475425507736397283055156758700350542274058259428981567428211674656488593394137743904787138738439115904205967796613081521329966432147970667975540198646156869067991147996583548120397149363466002188954759444593489787855454922522768925715004078673049822838841226538388699403291280528162982219005833180597445026340303916199220224677610018565093606657543770961686856547786601076232023814062386790129766304317267459769482320030615445287990585280785266544004660544193231584115194548365376495733684438335856882568834548905226224420520456681813507852859612202902729527719121783747198029032931551185334290671037761736118079861893349316985928828891399405811217710215292580860536535777562774568274133606181359074048197936049227776516390946916294653968372391982141913907944014601556413836495151403577945446276750499711115234709793457966282555144296347135253995123227313267990772913083110606968266436643502635527507142886956712589706785687586818919306068870295253437379237771328108113969356158644303154149955245942830248441987824432812383080717197579667313166118623731251173004854742089938359772531273052313886046770186801941896521115157879500509690050048979700820544162689463680036351124537389902522562852016386727938047795156438804139202515465675911418945802335491422958317734480489358396186562836513469788662469452298282196336301932910462531051568537154898178556429437633270445269663664847091321571551964946157145202123450873205114799297448896653769985782754246259741699005599405281757006490576141627588007548211783613367667111728322443512427748846540626237408396848004688639505677094242894109295792022593122343562350849766163371379039921417359906726125521639336577456666483131395255468810294588292506050595949854559502743547446369997590497432386648592118028241945048111000050828226390559920054072041748042342628549351037571920521690133751022719876326889461498770073629740799115761562795722785936615981914674937326224203675567934684337285036238686153500283674134353567133693893558390240724217850337878722382512769077826328108785550380018131901946012695432202934975435302802616049498737926496296119279848227952333176792342566982586483614078969187447654467087497000272746489265213218829074531614423823620128708868010769715449045096121644124187845345006818700867375940460168933922067667159504783288169362519182493272463219926305098488076190177605743794572833922841518016959686661900628159846240205524550301586902920158730959670986214393934399791511946419750424741049601921568388002361016028721058650993876350587154379526359201180148322533092503882523988355910044928831079218009942134312991409746693194331554178749648086813653062341147507341251752024255568572577908247089334955865078429196981710663552518049241791888012015898316596812120821227489855239900022483297230344214401229587269945609509749563845789053470755274672390174856899871352542871892109138060515091400830965189186816231884716831715687801560544486973609933182887503431397137446915915059529155449387811160588833375281723674909055598285003028089206079270768977072572243024600245777276724997732952663047205241686822140353102472214381351145395277233610512188081349975278656638237680189416949185749777485349374760756922593607933723563775555096802786861570313884801230763331259795369740213608305390555545994508498453124900280629092718946588786986058230628784706277366595730455248894541258623614639823964047570506061268171860622841444690816199184267985357805537511194038510970805970414006598045499215620925243850540153575530099797161631621468518254125457644934246053653816417367454418860595726848731185517203212062724614299527791584900682229508373652485624718157495594241934698787104174224490653458989072556185397265615426526548530453891801679287658133322419125053930342873849695135755248813341499861969951377693441676953199851703216336836272352427237934731616276746069820688625114815765875821403222875928737370489943939556712495653308922704782611325169489699650158915861363332354299400333001968594074235185750909234480653941795989519472760902405375168715880930693731276536015990328260362783328703880188835022719246550021877693253319747021931495567234409828098604752503376699219936402157073768366530485290897448253875828175783129771511591948441256806315613379056248139110178486086843797706022137354318754025629451493967183488684426444503065467483983089814116151577214972216481101406255984606188574032086385699604100736174416229594060763072097860726623222245852146545730845143770109847440489393861252835999747643150850460271901039232069465446953785020804856101389852753163262870586706466322556597067955551706037054639107689965626909718942296669266317705901852489271741311315857514409519899715980662602421375443465408944099272367540415676958292177229726707868079811179159566349873712700503565330329474295624377148467510578366009664147787122264348337855993903393775978196730081339887951291839699983773600928672129401884177787115226695268023269954855685362564415467584561001468310506904100405776061887150949203989218249801435223377334698269518041423282428193530264896457909332011434948582558541109784502677029929731077243842013876077712578490156876668921009937975252593478208672031001018456933349686825472601538435311719822637714997501851458943941395526129445812228927701282939159030153560942594699344000103908207577049222242573016138256530667702314673248674281942592336968771717643481183799460029004258871601363035683201121980023856778154438101344779895622802812887839399893081835384607379923187228705912016045939520542047591209302230648517901087535783082126288044931816051173213468555406021137755119320066073749212591159936705715961374388540549607710505420243923368843716419314537161252543548433856562682110500366699713732042410555076664227858512001230296418040956895776313166461454095816784275289744652691171763389329878395772565202231068796391138325326849903773326075656554850451135736010928272490618363127857745845478988237344483165077133590916960483899861190735203418861221654875516791600822399328549218952997087291265587316654781942979883261153858714870824844894175113321788425031908156382068711966625461599609245471039813394156164784213516645818469564801630117373886320416968136878997534155029392001624426520046935331463514875271625532177405172976939013898915280695126300948741244863462168215299379106409922107168727778138940136899435000373192956396389274289060524746225654716005367887577915883291361614144860929865699864656087015249327039167941923377443449119502010473810527593293869763472772578161574880247650513471643486116658061315871750807612997462124501366901931283919688463892466774986032447822562413433511490285050191057542779450163001127473038429923627110838933801463760326270740819120049004707235162693430907250838553181386175798343583410564180660276051948789917775583565006720682603412539436502965395771344964848185359755108607597436344655145266306090201595241166597065062849841025115766081448182919168718894622135247137238897779172921814541676998631166771388832420742445242946833468635590191859241754284607583415115189147562459441023236325018028727245722606019008471435230175053974277929246210484388798702850172495023682570892200777249688069671651612741939501365339599257218187459528428981643178233080940701837806650679053128235176337395784907865340106770560328271474574750333898073989133956157182704416972225856576768250465188898130800068213996824161144448235641782123597779863371044487543891589664390453477902479901840275566266655226600818669305101142696732674724995599079506216485491359375061472610595569148896045151197772612236855079751190058657100817103615834742060966975434354954723633962977132788679102914830556955904136878358714724683903171420905662789157598348929658069964396986917207663455775613443505640078018633495918997494554862777531034691281832436564043193354893733349077392110842899039709726807046768849860693402634484591148436714921697833324390673132899001310081870749815734073115994496216854311950447513049164588886109041568352259714338978747444617072012832860839642953366594543316562546691529378589949958745712682561786913798221111568211161342191868924852039161983957458159385067397913673853108404315679296156942343806880884219496794218494469631596912573534442023568819114306815080167041399611677324625524811965662051750134516599139179583867330189983222552868841050345028649666638471060460180489109746319343205244899640328731399308974582541196935962075329216145693124674385902553711357617734386573847264872164457180226045967322085820573988942424236237748531018938237373118639415809939187087755270647969388407660771420667554712015585482320183521230622015666154668287739762493251793144634583237400361670194488159385129838321955297302247328074824695985007436144109182619835003573075521688252657002145067480555397381324895885623907758662268527364425550102708201633037856485499485324585449679670160517907399069909995437817374605770444596585135382765777040966690651281305522537621644720279345385817251710020115364524906485823203483052133207716546528601057855815295093555618417511176452116067336351238113210245512250926177513196084173329917157200991674201312066324661387972799393117632136219037880164395809098568382895255112553894524422409614667230843150619851368799472674321283160529954600099891166417394231641240286571984769953493030195811702925033060839921757256539305967807325240255218360094182873386681409420124769941427031893464382671304468662336042853925086117806380313336583702856402711895300693777254170058259901264469015367747128491233077231972783547138103113512591486140147008441770218676306100326206829409127965385036304221255331108139912602129805860992393999891373948285056923099207243395125043420505337575944628165366700274052519597650292474558373958195593312682127795494827679795996353226809248734488978595339621790818544939495427711485463661343668604831768428845248432709626087436197293601824989173335556042013089300937916879026173749812649587249789500852159341381687537716406457070126503923172818037708502662402565065580291558597614881477888123602242205044524873807373785632381501357275548449794122339472107383230990931092025307259013220760917886520947588833649800277308928897083591525955643223097137946176833579924080504997648768506749179278142475401419794461752995603675202041455081773183717157238991108285619978874855095044023154989579711236300279381013580146724625221466915153834265847714126083573155012190722181644723393296720792799377519868366249404938570894339129640982443876617675208641059384789304910327904113363153927213912287519248094133105745963165845450581130051912067800963374656396844076017177494983916435571678287401823345483724745712281531832328843915748909696494019062416505115407796549868996223526190573488038020127985177741546173405803156000596214085520219346481646076974749814064169448690746235659989609597075665075556370043337363947996968797450168455351237120100921806611256027935499559299800139008177988686762817247610541528842711442382536191060370927487664684888082525182251576145505343660483542292856588217815583648744886270530484445570613611855437085928671468239080610244946951041719605600760158625572220807837921836882032424551822817296527392980660400877439805479317274731692410559266610977855195163743923392338597932533586312951136159053664722728127471753302685879493567631581794773593073163412009010809654827795265837391097545236703123125832906811984029603670813141465406856193809422329712104650132074196239235719290014717375651566411576609100928153884321883579565417176998316979029059606080436913499403235100833325612465452977904696786238934975806045353634484067939174188539714322672338408534774564235747698761667342543802621421558019681849100008370952047855465577308165426793026520750530339267488700090023211800295380300903043134886965472651498888040758261407706918557636627055854188431041621732456299596507442053620844243420354531435062051239077899424541014261980011176420694932893183974897961025734294233562733261374061197656717057422828073707865079324553694341409125106677212467445708342290019140394418387010940501917751536915741109632215828912354279151477111540889525786538953080986617313353175433366182038368845298041523222929566447952781375979400160012413100370956125606586325447843981922047580948824552478443556203511248337911907364968127211589506718392659451388479024177464731218087791654467077407920484071106064222917174775239873612823638955728737845568650165152549581552828718956735886117465703527016519393687094758234975880294020490895257746541121174667530117372427163509531637971759473101931092039750581166673594945306624204259823783888924939912002939700281376289242678058595044463229860561161405118305865594093870007304693467883577799523366668665550531743588178428815525894038952827852611015853426725952898402716418381912576022346613731732581553380620128285017868877798139773673043928435519153076735725173449337004850993290438342883497849974811827813830702268948052336451639776813811542648471357274602380982552934723135684870324061196441229220071300323895837071130795735394073259821523935516293742497320814369673344247544772107362175673652991617780030174153193570581145625654584173053711162942028231029065935975451600917121105661178883547114337642369679647649744054373238200627086111058655233474063455782900329837729887482820987096655566404830646101252827613425323801480270531084072679707909216972299879900209946201294824706359371891936333020686436021536459280132823956358433084614200545468026224331429404399262510814162786478672197468213064339164226986663041106527199637823512153342210794568331295114038531041125385009511035678014015425630385290067510039245708960701539612348700669662685471682077216334430385744128091951538316515346983836547697485967276576814248189336484496556867761237458112989454608786377923000919243333059776789494614700759814131415414877796736460258720368199080948405739956629991493931543028029098066451966477720756336772303257201992657321786606041307151504972935332624628088897990834424822047690611794774326923376614490003420373831819133987681635839576881105690044138075254230609774801770282311115022802512848030212624894675087099908860319836365198045497355318518566946275256100149663157864054140632133631704613544808753768944571741401089944243330641973445503946379984647804481853955920247215167344989765145617066436959788177674649289695118293420433679503177319500776447803466443066987112974507916464864488489549264467307396491485188422395940009507196351524044434706789112310893506867554944442425626148750011219805922537786338223861295481670368028534251588643967128379746452257678890977530463049739955912572822076435694390551940460516707231445161916213083753316134596258950297957838660071697748453965155462704277429541417375547491536363424588394983103661665397883963310064003240787504276594610980248420511365150862452997509560225326499241454476326135900901818468495159206569637982830376651717051790251531154794804250784903468498156956089571553614314658815313365665572878609183502572164465725602711213352909621354112349610242748946789276747041337455277848225793070297287392999740077074858651621035969023644561482365798539190808569373214855679784438883294721340529132497264420457602532750720418578975542517160782867963551826257364196357224437681912624263318885330137723043536984124484841536939317101595002879679498479015091154919660121187194761507781585615517763511992479825918363447553149360434513374254976455951658283464597111247790091922175243783416224112193236744448911978221941978688743292116926565190800230864112924086847192844733855877909675372040766127895952847414364127967366966743448374688475263250780302284845138007349546407585912190953140518243135574215436412840085728536279879663773865971344589051556707328080745374852880789761483354775334444501410490306096103287234353155453915073743185779803188989470651727952984662106007645987676105839294515994278872220439332448987011918215413018642409536569000454212527169360881611673093995835321173606120885326259147316589133634946789249739047843876345450708763966823354206407883076370682963951754900456614648611457736907828616328234127934065500200704854000418814670911918640192708725604243205720087418714816361272967842060966652776054081595585865198986773755207194273066093598637794071933893405096601705394653955876263662150603053405437182305131530135309779506236420761053350512044903461378181065442149966294337561095924715739885875649604953425334626247404529599314581420201645362845944643274597398818505822696312881549207591666024751016163193476926810685092123269063462495772731644297292759851634816389658206881402865152282901519568176857349367939934416540471561705326043207553680636137772565724541658298151543473318723101865382458823767507950084352640508243860474936801899759034129185104749567583873720601025228919929724427110052883988027809930976870925496575267771748600716077857504273351902262680227667585521472242036373610279817558283429233848218100073675531842264397671195668845770936604734992036683857596824544986946404403327172664454467988949597551922484049557407985273633522974450769481748371885368607383737662747928712893345788862901437762881291419778920359265920677425640906776138710034701149247005458111138702291762722329029097117430132041845205522147985865278784412095233305019656063949502074851006589985505972438804879565501913479698445984325142676202449156409910201472344005045632773143059099661614319111029186334596186077051142841583777845863818608903127770519834531893092663973954262799400770975245200080218734798452454644171464836650026265963021342933700357922419113734744897961609473235501686116384189364931776378440017725170292591266317640778127706163573763509972568904249476789582424326461790925279938127279831953599994214425888462556577842815068991581392954800330311909401074794558322289299206080541219425038711634418370953256715694379896478212201868774531407562584937620851726437162612367302513545623932484814631985784267168860147082460785919168656381354239625589295567117977075276758772592400286544586506117429324438966826361833172253845502596587671653501841000133169474493768334099259473255997320100291664077740630282639352423321969980788692777872082141989702652066793897542210359646671503372669927934981936297378308336785529219461464372302070111189872459315708811050762552632007789551143530857453618909687316112326472491375232836458560633008151466395413933413402731756750558514553158626079519349126380479048056460507721063637602653862452756561804934249780335927244764560642055611284553267396543384170936309894245357155438768020444970972113209552994513618249485693696059551187516849128061866264524943543810007395518631700844489265690954136590148222085035205484700265689065484814423071337831003113157928451262923588765597796423796226733235759346563988422987609428292699653514079957608040215978755511827351760335449546557754641723771640099577494965971751528412589501903111201483960431429203656595663162004672768155665681183364971923611978023455598159534551133276693875066184183886390939149337370904754715357283094629578087816725061354587140963175596603631004397460509350670306132646444138528347979483322897943425821801393031968807402572516029190343774280922751668258199828089935522898803909282188641981205152098499678209880394889641814461469208168792083855227183532697316504675492668227446825814391339673079955071652733668320897320800198261244258905783611243262910932629215800167901090364840122245379087259163754559438207062775879503316334101152834917313039412928760151069303612262687771286194804038082716445401529771007538682356843885576270019368803857476973060999243708704690647428988897329907967547145602423498363012060609228415584415857993139756198262658080177461525453330419423429922581304287854534874477823736468674071719115310120125214194481392050387620541949629401091857750059771052348577456971280877464584666245671029419573291734434180684065299075880324330621492655845870520633900744857856836625595774483324970545964162708541513043697600049876968501573632727267955233156605502492684830211945172314470592289604698579259551921882829528290416444994698042278598080000215818133619172431528303207376804403239650729261693165971422265285831212779643440935237030918454187989867620744152610433838158063968928747525977111573785996421180120148952251709679200051401662382502525348686470361965235117326148372252015938524929932946168131894214018118637100691467110558572063099451343650932298653510646450533023375983728427619023957656441298025680479764727284766645200195940631551279193257227746006731067537260656355881498169173968245973905241700719965984457765076106532801948184553053771882765180274893544111196258377450920519718336157903163178448320931599834505541705254293314262883539290550387984122788101630188238165954583550939137762934959954753829026201272934006686221447229064455265266692011973489957250991871605119814563100021074087172485291008857561776616722372654738005842337087841099602562528276326451610897903448830905841086292980759997768327223673858518463657940926598403797585367446273582178170929172720076936165273801158025296630374439033527776075717360527342464529734020112954596117006017890336145827900563072513502653972894990938861788676775652782558076748391748239655922657268881339551088960291767747397661795498265043642926668962984672299714019825711653861614661014893161750195548431553984276970687767927687853422322004304767421097970978740518668355483837118460804292481392224406285983700188014231731809461953635160505706137172467289947433904937868638183198795926580173663930162084219927105926481952298941557578338072074521554137623963691820843090073108363765269104091860563079796611443982414764365842451326542498056980666306514693351687455768112709804198544157898834982329376204088646425108395508640838606422460044517917475970235030588750948721323954682874788638335311452104628591207813021054958273623382138834912959985064346359611410606011237881443469463745744198763134999828936794624424141165100817875166842132389056233782620425611735746824958926849362689148397312377298863185516775291513283827030021100953797956791659645652566553151514385429193087490015886166224790203840690778848479292755195041978533186394529171866843053040113936914519664168601261959171183637391381702890033151545204929695186923800097854650537795181110805365515720086387565265924730942639196969423136797525023652808780801498754316748951020609341264886387310597852870570336517180705309768010784805632296661026652728286138969749100601913225039664444851782893024982556936693173593462316123212961427897730024217093901937016240826079608483158865933719532961769115771009315299576637620695031296961819034970768043557544068702709343783216099174330320839368539666531716003915228123206239055530648918449791173436532319953250872478908091031648347201527814499329929714331962026995960398166066296285906670606024203430284650763485799765015344270652918684122315470268231103323198141250441035719638387488048256652321404948968678174175885308650301680042210876221032584450097503428985651778846492367007179167738805864944442428432101959141195654371426150578750692053341732211491718350310477432940001392304894010103172425144228020004289174862529841191087061141959614749755878121202156147522121694347643283031718858073077335522110970071180225452036214694429478350562314778631181713436872841620940042792075261305708355207917325292437052729143353109682387945776758401636288252596160925632730572808146514780045688534287524574921882121975353767453444083758455342715337542526297898324019552993939749283975498292616252826213599853024447730591692117832974273475700439566633627590392497765050777826582987827850004697356777119193343109933848952634710984755895191784782011645779327878595862084642665549597155190560426946863817991277050117279388966037152301549932705141862875398033519716840731091812605093587727291260204913478611932038465546234266542382132213204073775291970450396144452732406342451512490296814869805437627311486559432409872660646554613757099707644983692628618315953833277876769431169339054539202761393576150692371372905409117350552693048644761053072180618773944427267447841594907586262279605829389105508121029320044462010956995874342166523303665233925750661980172894813449241420128070747518400856873812547004974431614306587405364119276275586113024894385852377636822908108807719623831703512229306177562476508935397711667146639143192969139913272487419780122352791544836027099986586784720483759980638309103742400793472944327540541948497175844930967741855397618015916115814186999603608784170840544345143563475194766697784429411410525880061120186760049381467392119388872724865216109433368575332004168806264083900431985731094123844238265386818707928028129289985868604819513034264899140500553334712759483182851252961205335654886480491345506394419279622602694156910211769129819120494958011732148140469256467695903613575056325698234929432762029852926468204931058181705835315901305494047502393657463781791033174663527975809811164023582594210680291243467482126656309220470408702605398945908104275455291171758303960654652003603314455096264533296726220345380141124745329732984863057236687598791590599196709338295292212312081143586358924999260151405959124306568336138632286221193104258707744815472013793663696988455700358580208166420662131762314116976359629856269835936335308728292145829953734976688329652344187430903032012266939648502614651432227023048728546798329944796526164125142907342558697330545607431503028881104295982138192183559142633853753893573152056140854926066187605346120393724552625125102630801812666605956292512081134823244663511857620327090709866391460859405140880171691362607458867632897431710106055505933408137813689929534403505141098192153999847328396801345758644131160421675042659642550257508072737050014403580602740209455162411182226244663574047935560891561844702543365583518965868907112142054028394630892259962578417790401855753503870785199965603232367105201927945581810095826072816889981120891856142078641731379395785161657806184236083028696591373566484889360739555491080484132735951087377666926996609838255395880601105053504873026190084068009426777626585899725955259068938081550702785439754917078579387628042993643279946411503266100242041509590783120099854224363644606739379328501880487557540639274141658291232343720696945999967799425902144429342080955226290322788760620453124469551801736710733945572335576308074461189992111843853217023886192073408707686571633660724926033798368907729528297393374766677844953858685816144638893267725652822441580272760912589345035682001660992625724405590355086959060531582454787289905583399048939945105626625889825094098685108335906898916472081588820349654631049555109339408328320485807840564277753337807171493466351408563460450372341409781258748450002694481124645024517345173110844806424878494709845092124933057539532315227809262473926090030917826874177595426660237101384487590932410298703460667032848375150086833607459890461640852896399388395471564587102387094973151746115539881113742560334504133348093655389747781858921168850529579859090480854613964613017310961748710752041473281044388842745088987479020189103661494676860064718585261613379263938096894730200554394418305717850633137969518229526087233834967199879226609925952984531184925359280625222740981367524551164137939907975201690972098332485148984089079600375895062395569696927900274541931018266074435476856579115961417832530236347962701592722810624790272872502704040102554234638609698878788264260182697672839262127443334281736534492076823567939388826075706072036218254858145490871770811276876649630944611811691696451429161116594924164379023030219439721130370394143369893087241731836001734122230575089895960433457771927814354186502676564844666735951953424157736235415809615195157954421300198856009632102285294942100751456144566817464748815003875391288237580579555527826348828892866398028486659883808683918614961783007385416443763111131265231283443810651147731773312052406506946711490599505198642086251419553181730117910702207151116692333485436276257639019701904680535795436130075851013267503287620039303803448824762677549770313515155005159910992748255582669565901016168550763611330724410455151036265403533493219012506414281657535727648980999451615473106040446117967370003064849030473449272844097128003842403419493648830660176466179723210691353597512530029384182381384306738919746962117016780842508891488374765510319665285610548023458062611275486802125707320787572706291966231348776246562790964706023757570275937270625197133050332680823577141755624865656658125298637085600020195316081462523414640235846312481593573961571769558582798386431040433854045465238258869378878801910288017769458309662994333999771021385872120622307263306603527742147468995092540241819051305363150499463224886923257652801190445543955712111823277124675319125804957942458097050877353928817485822517954943962842890907777651459761261503333112342244123527451800654633357739619366151045461257436979767564138066685509337801172616865257117229635112871826096093003106931740633265164068728033491016758496699411855614156952021087920657323742039062588398325526584700765397887617975999329088878950917442435692577306593771572613588633982971476764194853599437667433190336088113520516255717356916497629849018324216607429711116457070324091662372885141456840838996776461685289716049138852938652232403812396519265414081798962204943094354109054695436215296761081948945890938057782981254963798995334829528944577525757095812408009707019331898723059226775444154421335396066239844508883330402229796633856860116039865129181791510420307933474254769502921254764278818063805972257825145084720521912399776407310510137491665178788527888547396261791689900889997716777368142043115286117582496840282931364587106706248163720633650122380650616046659432885459529178284886279074442668652886244238985705732841098190834524467276289702639334390855264192893877058922036435981964661302272443152796784117722228280617239628635198373702851122697669418062015854509512991179440121425994088278158573150997442059869403551955510298595043953379092165963661649689504962719053937506720933450857622423504735353375614318813969847339792484142129904462388899469975384518176115776912622988849147821371728960250604697380287576467959732440330590066490142293672693151815479583729868631868270024432421840724532957338745691580927607365739458252289939677440312103100696964045272231609475644877312836369734142471216155176984692320840130598774118904472672689490634807512971036804276606319340100590103862513637886584850653260132317170116383794317204077699370568584606604370997974607566489547523959521460989145486130478449079194248716633314699653759726436236485377457690668818691585364315340104774731870257191934968922935287425698469922766468673014279128876118694373765317160938371456079379545132124548096522855509081018029273557348757805270520576364166177283648428657596853301470087232388102121366845520621335718870905079236083684638006385810360940012966242390707546672186030419268305854951530348959454682541778037902275925988664689428931429457942383608415272480139025992361023539271806397481513212828413325184015617545007313836169952619565744698696262310192807543742669170728720239091280231153588595128855472204484862096822651635392487962699303537695625314675880909047151078403182462195001852578569241982320210625562262552278085805337936850385999403737725998515112241547903287417639342832956654214082064058452472425177964105532989679791921035468004428281277430518777564922883124711089343481819427419549754148847432696704835235005074378246300547711157787955866261828688570568060459976471101958296998083247841019775653571409866922103837285642588857278987120273855569223588181781812875214224799226935679136753946865483213846649559992192789833584655721809814069706378415821387642475523403809701198776971547280297136223540730584326342735215069869657362490761020683562948407541770713432275625279097712587056077377702252108644913615114149498781457204831391725726477861829986752040751995241208718868856772296795071507089548093819653349020915099600225350623477004290270060400799119605028768977434843597296909883937962244637087071386073934943638654138716782819957985697843215702921410981913300330034655855219303822455016215975734511497843098195837059277938020947266917911665022434060132225879451499166435581269814566855306092184176057385545620424911293986430775599621172151744222955253310935540483396609292142578066420459893220649797118119050544476306847250434615290607630976077058299437674525716765786036900124422252892473770535039875605397789547556769959971973115079304893345129200600275368789642375944984849064684819470244519593511767012856765446425166569815776020804566465451954869955004053677895874384274096191117766165115318965046563034688529772220675644303550683106569941041415309056275527391080694443501223562252351904941727091851502428045844916440868905423591268786200417299496541622476901109721020708623577815508489481742993416800066696089550580794470202362787710320466883747047383228190037884592467184022064670919286877059417475663050607755970607227632811176557932674831390940428153200959831076279525046193209239683314462195431996145188821861474546015118949520438369778028145783827812242778524012622785229203607900145026625910134237887055301943696361139828615747368317329858059319666094792080470796022416170106755757756067146019235037961889181512550891470298103983131516852603759809248116224601023440518841183412021314971578322724385917245745249327411909296848991809296493203576358009794548004017447886225679863252279266157020653605306100853259420052703211125991939052828329932135368960074419818458268272999894198300697221178017213277032008033585943647316255563359467778560955497589974128232484448969784476485740926043291821211398102573168782143210369742474799339659540786530017247963260647266072699720383808125865677422531518969089581124076502491536903533589350269216162379110078550451610533683088364569225689484676197913118047022436505752332186621583683368639294104586611737115302411823841865630416455582238724372324691292945416348809933425008878873404027258579680799186483762476210945037095801513328156933038882868836286883286774499992589871042783170039168485599991965266023190341231183705437617144725424465041958492465977698175202833705099984247884642489528172595818647846485490045770199139048722501542815064721755034354603203204449201256685932372454115432041686537737637172937081731133388876809188481008597292351113834041862435287317433921619616824158844984334905976207721768392829606438141701712166792668385503025876506028326118413268447049134580619794623810089712917300974396124599925429414035721453113372838498192087315529498182302812886227952177410893046577122419384504693178076401153574052013405694824512350613201560186733842561430673152651934753667880175034494471789831752439102924293926979782253424920924716975835432816982396758151255544732347642019076963669552366217402331312270615059867067203150950166522992726434734749046135776877617804817227038242190953340034987074066017213278643301600114379158396139105784803195091870898705744131821521907980730392565947738948246300458377142554022730566103547095281593387124876342885972487319457966834358713387469648976942780648877716958152031620227647460397366615921849617465331111651795209497412392918033684390280507612116749907329768895743964681006379672292190392212684378757952649986304934554453596441098368959998517574352329082369978081935494109959387222328483120397317011657658324729192740666886947505102537216054637219099924313556752117916531453582595803439471735112445360816200842747954157753985468169060666479292622880604482600994384246467694993252541127317100061124513355133562021353465727597381425689258089018646418087572367997823413587857417508953337103607189444066509537768726239616774024781759154750234707998356676498808057742506408856186031129520276372483415587820563407560062271555314955364251666298576124383660719136307741596586961734971955631814214903173475480306758369445559913845912836159189667007249181774416183243671865397911369521594208707972476630959731401173814879980800974145228385526036072808510819243212303454384825451348423126839170066159342652798087602572387359672299941439274262309762964999594239706544219602855402691082199205580639325916260629476842885030930540078477278959106429254325820347436773715326937543026309787956404920656007208327853083213696868215726763687382960039233106599893725722645119882552102417311169890964059457700091778117410846272494633624328531932176129833538242255529358769988349006077549854981640724067964040437021604964259179908188806273343892945698464910221067773079088224050350947207911058282560459301879975606236083805421185995192882822908776316265462749459997707887380112316264903512967875904804656246297089725863846071022896955963769049627908078467833018872974235676862508185925769262099712606427637720420378290017960391057022059356114856378913358470133173785466392174931273141311677058284956560038429454775066990550912606975264241541524765425676419868670630409450088667985621769048357745437809497408871131111534730286759745930894481753232020962575588000091405180724354895940805955257817165104384413337703892109919119153187356162026862704914094077086666391560934446481251021603350769784730204796269293620350299472351553158578897972532270529204237046915678872955920058547545431347888742073945094398497294672906417707416272423451832801492144298131622995363308955510129243510622935299453007650754070095439030455772350486258953512736430835326920426279900351199844994054057460031315934647529535569364512244415100806874253052374591542067039728789286966127389325774234078856305616957870350290546607572429997845009487027812098085264818644422645051634478165701251853110110560150843830003317263271212108713253021482489674302794008116378751994289837956592630587840880935643818910500853204435516333405686054929007010139416188924715233793189321120313429792149984530504539111536542369371150967307999137784225708716672660092329571730531034932443612004409566050455065913459929068594219039302886750733239670332503220261812377403677715726102723656605224298537267792782453613489139334098319445970527177769383105995723589815486949615439082235734031268912306049260480255356989783439074176463398783947278950637081887265009039394733470966842681112367714187533748169566628125930004643890833894052286249314179136974854653499713198732540836555907038704027455678299011512414123278391755276305380569968408348952098007644301190502739234306081521785882847705870732596577175945623748454248525676295158454404380266714542335829937682655392151956235035867476465727827236734053922391724568327878711684782830127687838326862433358035863818260301164363017269914053783083152918874649057443538218860025038360395054549847155908447800692044681532973879098833770009310915779293967944867570145889889407491987653420761747601829931031761750036145491251839989103172404986539911981753810560804693166332630569410456854970739113285267421086641242411276266900654042571745210609633137465145233988012912974114348315958721324057574282998103799914268293498731330990826134761083118038482375547120096392637655568883864403990155845519431963484273484488013167458497349487093319189837449382650044314968546790091007748794438241186581762357551990051655034870938775062041086133839702474875777268628617715158481181277242772898737663655584939636106723485425756762939209600778199087443249366922871708936955443679770623458634045694564224781915429631394341097605696840639622598978401875362127249441638260620474938572500113749983912863611653015901846380511717112397138191777305738266977476381754551111252966203496356273358614087299493453442540907348040461280750765766221075651682286573447709415793278944748589761263231909096826216861724556203491706209019091897257290331709631257843876793372220218476301013453309216758543680378401380502608616933328216228244050664997128297090438679064871444462110396824682620113289639368086105697044550667890140745721243494890609566355311474224362754047575188100307632848889153434419577087837182339914417847256709784214205069038384568071180876942481794174851108851200193077427429347591336748840769329419789974848568447871193752174342575661246058167219586049811824896266438119350478507971541800117239623928354970280111685612915622839665498847825343743089494643822369408180875050508064928640640113301341822804775008697084105338990432706496256150383661437352756670673617706376261969140740981241133305179815259971553332964783409741579528114917936228123582017497750748594666692536319971034514479704109174969455411750782105573239700191521329571402669502119643406435624098871122400308299964319803727576639557604232875420336059363320819819995032518510473209346102906211023951292421886780990419355279608927073919222924201729547619935779716991111670185125056611030068030148554932906826533198742309000091236080634411833459850536934557669765691527999036065769671332400900045347481251278819934018601902420018708865835494554803717759745171338302582736643984483645057430327783813512544089454460257928456565448904788776660434962006853921502515587923449876252912527735827450832504534438157927017424026045680206773837213100866053362219401364295587906193004270414609697035257594009054468627295704107541411886544986545039129262406005461853626939406896021840978314167336440628535920665205565504488193403035863857575587068377956906962605409064545836140507536178274038325210473951705366526159675473855234835983829822969323338109346625891377769566337551582745953504589554633228809193748864719086694832213263248327526237231718205308338252866622793691515772386268013876782205699729531517946970559033110551264179220424847691250790858725501710529555321089748332138284034675426627361178771674748464145153306659969431715190498840746253760028061723056789730308688193283966692376078886681302574044644975275789404493815408250271247622572185960366555065275297668978315655632334877140475964769642846451685993381710037372641451098860239031581624505319254030834446818144510682101629854847820417887121514997335629961335654065273461737423107341213133792848888751765935344360868062471233311876004847495659972891297543045131059631139696010486499967159635615299592955020657681391898619792176748797493234978898483870713312367413436878905229583785997453010285099067051999966639468620645716942795042019003761211149162141211304828722789288705161519128044665467738833003571597140888846220889605847175997424784330389299092410869976869694274995949915894348694408190736246259447501747077313200719582188203785701437378379390283058616668125849256411194527836089968810331010143586286804334301805570651694405260776140389018616588359577518989396618354306539631185423792821188882685000414855467057226997185448826138872027804207912729867267654571615208422941768901979058632644457043272885792804596622898748860357040934221956170014687765381541779885065225535188628952699345092563040519841104236883389039231591555304432637931148816680656704459285036060362895748060938353599028480392266714191843791783869365929294067758249106411608895799469799452751004205977004248778711250454192228491544781939169811182427104537946132469581638797080886043026739552731552437643854124238638616139850901144505572119873080117094070340970251722076204358644879363117430463937174028045808800855452534487424797974637802451289541514383000689035526927130624638633993342172846279984508047562855531097746672838721761580136310855379593023605892531203134249473641283739832328594287850130592499870361738782890752899246334416912360967843801281200882361834329494564992720797580316373051306599728849678928652614032963923696732096752887042871287655384528848930475882934638408171125641066524977719174611427549595378626054410344459573192550847242257221499414660635169372954904542604093367836055570492265142382137373336509654252036933780906511011285242723933839227438348792702744645729678042767577130938201673294779997162356713922728550402132622424375758058064594368891092249925011976043158378036325331461534730139487265062237096872138971692382121562942671968259280574199840554160831031014972323954900792728343594892798090982703612155028749134189687828459049214733333739178888316873726561725142287578977494313755389135048458411610025591746535928988584593875159535372140630456147274516779773780112255346247899425916297671458126686787379860046513485820041874819374520553934692140323014291812014308164032155677027095309456064443756638120506531910940362111084479380159192094602615822017230444583480882969205054020360695374469560243393449959197397055104430313602977328906979692772033109968085122667015700747781630888915379245282410703134056214489512984293570734711453151163216574792039152032266135968968150382524351422110967050746034437696536027486090019516287686154217349241030606093134337068063201307177918458533723103893826292275097863498008488925279619980685566809234115156465216753383695268552579766966044831663097181189422223717315294587391768675167837802646028479577453876761526128562963951969158039145446027702028197195691119832100495455985619632392448803756695049819494739557402719628742431039534980615994277599597134585173138426294337343996480077173045583104716986433454958146853161118279510611845286262171333488803436441581871037255972532333141960950836809085745237896708374461920564049335137875623303243060739088576561889714051505275614320215482957044309745544576509803474763940870451420540907364730716832090378821564194804578609219131803010466835774050067095463214279518144117971503999729802311020732700715510118056745677931564490280422491156343606765091877500845252319856593097065659776235835594018026225906445930362564804053108973036479411607582614416552365329393761542201185890510641183310606043680245892980520176024684456436014501613382653741214440723192408131131091984738679853154163564878251225734558567909786445259300222654151949212268568570669540491378480563206944838260374612170265713121648266158340862373152869097092513795031587930594894208106600648921149237237646784479978101472167349197541781572414222354236300100019070923144841296391788065501297275910480856147495896091072625488592639513750066551409289826534923980044039605847628904351554247087408087155802257655439592106658046588413519740437017778910478892421628499648037376160030255547863244799817290800117075549846170520729515762768556603273567943458121423522570734315333163863712457877196504949768931289190025009323731015064595753971651898481085171294557154685953648750905667632481251107713437106793448413836953977061675879294328733984775797959052617273273765072049749793025371840087677616068509224529587235685575549122638254981064224787899896322539899020508675862255734534012696172332760188089496850977866263584203517994540979497308086536458747705488457164308465092569208970944409590633495581069132234496451215706028924717651879749193374616344993988182155399374500240002346676560955240422222702587819029762624374811109383034275580181676405467573520428805717602486796158871587138093658818993471633298430433897857752861800388297055107804349177508748068589161434844199732056695342882077476402219935992472042845911711769901752236110364801245996675889220808074931976010830896237362926838183316737092398847991841409567746370335059056435337640128049876258269193726187219581970309084586359347546995763561955894875839690239691299872838602861154074578652001667245300202949749897688721125094388283805877294993211240133397575424641431303507808945953381937260778646676549525682608292280716622373673076468635689323868023479694598161504819388274680619621227749135807202933791675927321790298545124007656062757096624940860573411569998021440161739179164913810020471287852712672361637831704701315471634003884530733193875077057466156166756373793290244324151906635016979106128405239632680323722899994460354628982958799218631986129074434158073783516546878652106564500053603411953273318547575386215474452847372914200231796305503388114333128393048937618969716290996091362198381745594072574032064855885701923274391283521482149664876412124702904057664780124584520406849230042175380836389536618908222121632686925331215625556294123128295077497690206930460755521547754615850371458446305099714161571877671421760408072076705318835033186234670449877232942161336500333096359417821438987418460106192931747495032783086131413533278314972093084289621861272102189115564028980106851660479632265869720978873239388117555570830287123957394239579892089943164654733646721690434977709679080372681241196499612846031278572838725963517194121918229872053960924895776850421766879976943234059721485752558393293461022789368707297771826117708238013090705629418751754364565499094584790066626394897771236798574884182190459746951422475026515436625058965299682990310783568092517465376800588621297485157819034838317452903178944392144875345393485593614247348971832380891326478310039800829987667973707664945183273787137962267151553320851542600552971136007610289158860410378864461388503767815238114418673643456860632538314844434801923892497265891469470193746710861383271083764397533338582198159647665457948209982009569756863927342418880539665923203562961181042631803412867677357250979472011437453570906433460639692007097304360914983285295949313086792261411995042836643802322775812499541837365407869447228809606819457150845645783478654708674850336257252824357647093073761048171651065269604249551293584514951514666535444944405000961707926847375701263401211280184620497431528982665443375541080735812663982257906278581581360259043406018176134367623583766281720747430053655832008681403891639687919550462799582085530485071282440364386690244216187757040770329708522145380659465360859813109450412436203046956163371399150859093511592700346746679505182521418946598897092441421523175813798759584998003067779782427572415802252285557299613234089818539260688723173880502180944118700951836777300998355733663896748504780864426278292605945284488973580167712166661245121208939206486964917977502934775410185136063663279079041547366729669924157432006940900106274474442471123507807197086390694871404718784936606913530386564748491674430429830804688072528450460155197663529577289800091347243620107409758381728843189768262123928545218770286219111600558962268152604015146617904509019236946813639286701596630090943146310283313745682021844880410858783861033013516434759471530516806522469885714308603698871596766621136344869532537741621040449179770066051629730178885839989537500091593923219082008878248123877834831016452018030613425327320848636826351091375404784039708966066646785891923421791300916661861852576358897741026435773543425265591232536839933440636119799322576188106082278344200689929810784476316360355079413431094002671336189605826497012948294823121823876875602211739329811493176598030009603047719120701858964638594025427207381151299848536953785966183612776561620090277384235934753623201785423224421092241205478270955355850740990039558447138546603677105453043408344488269395943744214267805629069529373070791154052893399458390493683618521252692471792407066438566338680190386120737298327051037248075199726097151369602958707321655771815461277091359343143598642429500019965587184364676356661093204464767470612597302495985995140944719402616231931516677166156261121624081027543083637242379514363243745477343171044339806199022479133658849327810166526965497619136825222301098561437891006747073286353152897723272421665788010682872129689628932725809827405787069037562610143995593195088773669544512537444547794677217157761341742241764113793332965664272367700587959883283355099685970719891596567594768776100729595346489198600206551609939672530962921480127411070775507482864471949563399893070867440442785489109342087308622419799357820147685664661353623511578088317416733596380486351800201057460177672964672328343341934182406150067387502041480536606708393538250315891764884820048092102606909938864796164987140882917383535082681613000371852932451897485717930562391653861195438681308424596955609509056163039674266167356854549290476478415858713123805318778341557744310201784265074641601559857081355742881574274424106628902538236788278829019938442504697009127230800618214107304174659202385966697685246339238626245965397630536517642327756079032727712143552826828149502940164000461474449356924736240383243954230851313456261470504227489201169874507206721737690893297980106925383410187508813274552064977283478856065807840576820057469955275815437911965909715911946635739644231177359297313035640432156852364369356771951479643093571204270069815281087286141902856698518695252804374084933953203345578258916562220802484630878035919295864654707393425655115433056326387326997944449068632306712544693570155284523408605164490832519142591399967503731145494270865848935970218047681901329952139851679144146987683091041545767041448509742166589322991867770096100509239597479927213218647514946063159842150608338476328736471991564657566910483623734020746131615815855037534931264999808841296711601432321323719198045383850393203907522942783915497371250780666655867601073938966655081727609251522587681456847395082465881900050801281537814567811650008676391943735825209917406000259844840909108402689362509368389977834628781362208729453062125119570439653796445936838739130421195691985786292404626363541253952541845227222146385722267128438451506021056174109876485460047392186975585117718957433340185725129059701697764344189416764739626760401219696465641687453031941995739785375631628301695403453812783985468971237512030196272828582707084245317142751674468097879496436777279343011881068728407719959491443247702942404651050092192593874069575264096226210258877775780908531472505867326784126462298816192477578935245565962675142913646661815011725062065549044850280276624203904876985082584493923954985162225751935874956989890117191646926940995726888306841398817810492450133169109671901379051012306465630777131028422271331861367330389181081309526534264205522923101264278837653652363995687508965729946300655581164840831901994423652670336707222203826925714930014686855411269171140800575394464877650929696658254237204465158911677626774533433670535986361341542527968804093701549230864640197425779373924739886479661076923160497067810815443886333137197925022443496644922774912608286080068421994210249560396413491754680942200941771517528318996231245116521912312139736967720453851698654299703057339937472099493631320339839856183560766461849496196839392878867367513120378763646099341474855827278991874841766736026897381211868107204619994517534889096562268620404660202582095810471416251876993734630502808642340747894548448988903928140400475593167088047366688933052362564135910602884712021244564940749864209274471924575615597866295330394340803991942371133883437830896523057384577397951681054084337363774684984833959717109995120005231941044494595483765849974751674616666620861781532129299387503492471966512559200648315511190847847875418285495186094113429092609408429289133237753553752213668936892035829585844606611459814892647288195744236799765555586322641994992630161473165766362042986753568041445572213634374223998649532159271590087824556386955250642488591827977603201360528082269561438113233246309296698783147075744431019814646379342816482993042577786828926402075102721690371773885285266040551785544186769885005779683648594835888978667677899749064866403496927050586162102221824834947147466472344357239167873681917425082484077443794280072207874129404758729268771217748672215768196176911821390793539423111630654293647735125117670746524927633230430973229278585497731211984970939670538973120978090428123183798538173048855602412124792063675488142603449751001911491149285459645968132029959828352788373584331661387342565211243349636326732518269297811330351321583507970254800177061457219485302548678070241154391122648054755559121817555426256743962677399803214631056679989434773921654911343561668386412323562443752954445735085573464045842808626736457433589546325069289867836179463576836557615391560698002944147476895509655137668036519704585576528847940345969506107422488436522998100719557738711922827685977087665462210579062968902885207750330822842438220867649408082897082414532435144470460953598549029993663576800148401530543087383192090081208528764628107071080688694918040527915073528832948063361009081245496042615227553451303543760919882649903643454683482594855306949777936149389771237182982394043051782212930906061383238494334808128583922267930377804397885482008420498616901419878667533174251608807715146111501639807047180244660903419127320220780439819311022588726259376030619827586205087612497726011921620726556609207403541308707931277513792771990873893874017071085394892282159139158290350175082734573586059043306988540452180770436738336390768740519756807621348573958704195011214091703380496650689289098404191306226186571891199843351006256888648458635249445708224450367117425380087800199840223443150471517239056683154144088622501967128448808710960678379931838220011796082820492259253514977203507152078521780548198729178335016621926426079246330966308758212421153486456904996129502779985481652472710080219768698551186418853273862282161803220715398206732625399581100222737234886348043056765478591886032012823258314609437365483942618895540303918870987316437737308903457611307227162215634828886712879794070602701932535048861333658685763210558412550355996648110314338443255836082835393010626256619820315433515356750247711599451668294004522928500567546969108193552151799034828154708626786968487207971761038333444129728893701319473325903092882973190253391576917541607845142975602374079214561276581016130607942285725430154154164399041958568148192964781834329151959005235777668629326434129262320311103546769095906569415205952544098501586194297699738477035752125861255692381621572860360197877602864248663670051237951555876379191802258003777315314957549801307149608899102682313861590057811585330897464018971370889138137992054190258092755183326542263249595628908553392153405470215896762338203721048595462354063434978932673032783362873181523680170801449239734254244345474038309045242117400874610218531605369449766792206955724975734085548062859379946059591520443234164807731359732944894438102851632815572662475209863847886393200921070955363598607300412503160422680186237435094805648755737511454506159153919460656572263661621269528735200073856461992227594478606593100210108267540163920619827925998553103890531862053682377275020779048813061339332597601896433770761107167616978748675718690394295283190668154785216516120074517651954771339186694641624384088186236161203627259007994656977615134593643027269842115472800046006838894556337936031510190901675862078338887598920682853099294998043971688183499211356666702078257248284102019175319447360647829151125171810379972332939868620136069733553378972926033843399813301308042976271939291485506649246029059212306109171037116776355584167876775158307732185781565934514113855914315723646269994355924408935889412679869959333100081035098970113104648774853518603473466543151767407861632789729760626664048340404417071819627051040090817383833673907792361472682954342958886432694403822332674398000209663896792700770555089745282415606813778297096247479382413016159162725134516740180374429498703442427120270278620398688527986537706560074796631080302603876964425969490519848783352262289349301032659849906481482585672124649299321984412558030334242149260439675563689541873835703285236058873084575966367594995524843422040090727606881344227734909925887232675494517118693455677953383977989403619519257817155742844159086561813172027487181934716374568045588648113480467522359997091706666739807455835375570115333321344559661726139366122250102553361986330914823472768432044565509913156213993135547334139277424330246484828327767116046692397516232015338674886032696446558420176099390186832820153090285480853396979566053614993353707251484617776906130984983641987776953443468122738881170806536772570864815323563430661164272194232606543115420238448065981840710199676941763697177322139011426215523699989657259072499952403046617205586317986800315529168405520429198579279057695929108952559120089095947195335665696609715087487115885737149397202093592785526020528099738181292342687702367500963327674028776161016897631076862335715091534149907046975947967644937228044853427959502824063223730915670426993516934493182531125597450939986198355795005270407746185557843337577974632747528869457787638832159421125927174919971201164372994384062886663183233274944388236279891504865970301399211270781790425587617335572796652538088031973493606836054465155754140315659815260985115612769158663079434551405550263404377989241224355146037164106878954971493580057363462231126643050747058784102118943644417952107488463589056621290335455032725772251403100971460101978003598445012138808588821044309239817992688141138339024051313485275736516407725080446345339724926368855715181960367864008627042779871711843151382139102435057069009808506549581446372412342056951865403844532861081362935858926665191595815153460113463664885986482903521249069072378139715649138962846739782263126640373527249099147521094243133699395056998716851309220023477874573845782919626094206435951034050229936209646446641964422701441359654817562902384740701383697248574042558425334937802663131070855705406687508292564052617441957605508172334677515414166977568473148913176699321183128651192211393309782159704544901059266306778484270496195440023681745292445177533836195684004318941770830649814493764065362376763348109233094714383533452427547425686403847821964597217011332583567720551914587819859194251412430618194212532772333744557462607982719799403790146933527148587255816642036426383830320568500005465022614258503422726475401953587043388858732200459379805749699047782589817836365059661625947500843909551949397938373830148671443032604009012311973735281776835389381209205874287589090515856822463382356465033534132397149433299653153466371345613438319267995324232701830701489398838288053053247422918091220032101048222760174545388926085087137446603772518262239535893786670919418879929913649878996333754682623503924233473059279079488973546937617173239727642165869356144883447053105613019728564983012066865668669137421107267038794983547176723885484578069118599310434670459961045880420663968208347533373949008201707496665764094744691643946289898098776244920998200041726940211492013937212474054574175642352420031670973550559659622995614140813496756696461475344604390091421395688292340219946713819795069435800853391508819277057753408468833056875277750932755046728002779251151562943998159446905145097218757351635945047593102194713773290870190734079428898812947221172621661888553671491538004040744667875451152659713641700886343314744013247118457382116453279623858929402910010971038060771201219971816261160487177184450834914042723192889853454873590775291119166277197636799248750185250024206729058405381008674915251758248359154267189566869156750655488148286601961447595824176252842452876249453365015250023777404973065956081011472666967768926973937631130774919539088696998130727798535972284316814217267305126887414727285609231122926537062207542007565658909410072578023606844235424037240872439775408504532017779366920235207066030954856233284338851229804017155210600595259359225341501214959350592089792174092561540629777323392574072060188533422581893519204613691778544197025686724681438999901062328727069113856478243893205384835265151688738066754311223801145720834301116368394888841685986470598841886762664929702065519533619884591460675167572647282062501575132928841498593610902447455756235281139840089473373327219002150434214206870721372656983893286682400569064830840445784993187945571756546160594189226944907920477156469418654928281479169477273439044501326404078259574260838927122998285760985879039974214091404975456576836481847620176875504453107482352812757238865886406713339395798218588025568368374065168968168151888710243812954528310581765716641008217943281190620523370024172341601787557630825825484015549576552734411057231323024545651968988232759688156473873679731739952009412604174467264783371514922729657616225172181386634465144604893108030829893607030364847712192656122929894111551033489402150647327846280461166973972393319835995922773389125233323089850785839506576482390050342372094227882428813138126433105127937972746695045152263650295119419887699999501777900009551404078231741376379601337611758908946665038531335305148031242648200894972839042087407719929470739607328784580931330338401871210216568870616141514948566860968362047474959439000487079357164789510657779492411631695263084164750820309588839159317556569624864772083881358556302388373486886862501757726150355990599950871723919526003596361896461437504273819458125769788334933151486724619058822105118857127049792049641514666030862344091671672527824965033995934139948964184386850740697195244271136315256962761142737200450207717511687698102585327514436166547588404329497791513067876078456203310838334519592527988663428707294134451887987443266035941185732710940372206363316097022474255404089733204953399109171067050723770896931784374826503255376610354295263470940801960032195129788872178391738536594494364154041068503648979500609210041655225690562306781024879149440536039019619425869390828667973124312003591848506531766767493417907100445687747266585167808502120179499515089894109454386438360678952116832298175054916037555475430452714914634324754143177266574614793487718559895580984195059307303444622027848458862886660461729186630786210165391113783896992069728942741266129668412333034834160546642581401156002441365100513040793227447115790736919532690754434624084999481152233498507711053794865520322710678256284165514875696497876119462705429942089325535670926611675359589048649052800463160217599055322007026954849425430130266854532471938825916222538449065074886519433924302370012790361852592653470369834069152961354637633216678272624752349915325662443068059749400985094057273873932609117092978299104691296582402001475177705547611253696158727545004001213591866857251243190784132161056252884936589970555437228411940573972037731466498518419504999631906729858780155095764712466017108085418799730030863825753588215264781773679710468564606603125976248609187753236470307189148144749181699126693857800560857273968258967387154510276233481758462338619221125390915391555066930994459049313546307478390217569894591682883569780907184486937080794896213161995136160717674255132389585064367854746296783768205514820793440331239962873036649568795377036554163112554676483042308036963372867008917607233636793678527604240762035109492064934731347377328881849695938733779057396988060419087707746781751806887323187676770136100556156969003022967071931359604110880619765849159160265343792333162398920773378152159481274427618168793515283746534487906699651280529502956714051117579589677070412354597308716074404861285036957108946752203574029344649782082414058820323838579062169347527117686214751042512826175353543757454830608805090648131367931679278130872651839999851715201965513003066941664302841848223349967769595220170493291875086275580109814746935021463870943230416190649167340109594664315512311257622529088802593729385427420937281765479451406385510509744390369409029588873664737771913126673207602040843950491036188365417829721782715358262779441745278480479908656652043842228870174230503684910018756971015262614488975523114980439233849532697418069617882909522636584383903003574158728863954915663881126288974887215375729453416701039432285208246742919243727366099983167377281549164384353226593968811540599837918533184505755068170932218765868000214961561955074746696256480110861038414936638627103980017825131867844368637313565519014394877988493205920360046363182353813768498090435571150813981647303593824953478674015788932573536618690349445918636397508440648105739901596576083672685999152717470547218106118482345498654244676209603763036364282213161797202498425691738151714183888968602445889682016723088481894309041770506135701510962412993494207888100957084906874572311169246135393202510239729763900057676332548040560099857765062054134252066340461842847512147785483614077280235501755389127288433120578137638467042377302406880020508717197486955828087512355323608008485289417532119842173970847594602621437022269915918949300570158833649700471585037037556686779732213018673392771663929168927153470988870726678791804456498157062400297138003628701085420603734202937175732942426019985995977527252527487018943158958033382572400681090961087277347499768463739989331666151504857469667503958389364209207553683652922097945926584746163104077299394144074407602130430845563336689150443481578843204717497598658380178176204129156860193649190377796811095034276867198616311222068673648328174521347730512181253703713906689576612449743311594529407022004230119595801571257195994636147092047901072027035122299123358367020946074898578892901263577917018018678715847982729259996225529056434131177925063903725416301978974125978379111880137905546016813125328864922494779216196701413722457242026891228537263190528488036475551662781055916297155022962069596215544964570467269080968370422871478636636680690036331164120166097564130241243899394660352814901396587549911609040790828184578978431672389217603406604159013722897025331269437933566963105680888563849601378155620484953817530025412872879630044578049165687766341632321312055865385935738861859402014789347668411479203999022660558381247400888282662613728223317369927078443872844684330285481525699686651126804758332411681048278677937625669630723505319002108661685306718330224918149475898532938405708573761090645361863236961366417122654709241481647302674437465665153915934811860120415341291861727905160054844258939942740935782587161500059484193200829807359037350708324644200274979928220209424081826285998322886271538406452010113408914175076073285559078663595013297138224255863554020372162844145489951756058136357430865840570016026686148158701346001317207613567894741788521555936843547480526762984041929003826336897635585473432745944491678978026614697061951579821608885350024784227340244694464818091604646461344260103643155615462650805468811774563951024172414006799529001638849818528646637737013740955267320395547374195854792660831021048216353382345528387266903224571946951314769089397424581046949065222114752571961766136029624214585769564226748621881274912962863332393301616207899364342135955504558217606601332429732196958766657742750406833402349144590379448693298411012020336467798040935623387753256777167457006294850341674140794879930773345852614442396778715119237398406891833913513017246445474539365956192994737192308123882771399618047929519316120394154076920255655911227083251457835096590943963731675855114491149874969985682961680498294365536653061510153034619242898309141559612777339562049424887358520199191068894160861750855606509132737278326625844865185152210589690397876617955214409809158800411135430388910827793686919213393010245853624825137034269296247728926807326807148777233055803300784242000320241894337676271751090022637259847807537916779829631950706005779041003460923674090758341869734374390792836505418908696980750833260147488325040647121666042388568339657079388152301811365163412564203102421020805444640386208095296487503679339907145461612831988350903087155449555648607509715706962106321172599598432146643205260976948909862575310264535876708228119023427938153972230633486354878067598799363162645023177606703797302316336970136222595338371327562416025192102385623556652595216497675990533326981869714487203418664121209483080033596700656768528698358831818130171062996686158937885785386266782765769142484442045565485864526565536798255856964873795004346790236113396658932191764599284921877756073136924358284613711850610953145029551663709634207909632678479103930878645073084045497830473940200304773082629190386381599369294090146178994082196797510259272328219804731978130614264308019232745906304701374843604372179727909196049264748649094995608620225547268885085735652601011448966781750460287665158465540615429950920121818301126079162424273022781393436349392885180832124067597945592646543552330488973339775686841014455824920218891605366675855936684592002306122583569435646430565568470675562785417210004101178458250590739572960397183587207276412896990848820212014272570208311164427845925870532135576374015303334675808820258994601415365138955995569314755540068863247187070918585319582728373564291761800231530688178179724263265076127190217084671711585219972479123294501227105794791652146489879701424717025705595704700442435455094683205608333019157196290663109001107531945419284520804605164747333355802901003886385469622432628493418980725778366602502689912064737495605419091435318456431619339498077922695366168913244623616691569865919100395250487430958915248235062620624564570573085010745558123755563620526774300596555860490835839219194270436778925883010340211416271474167035767524254852011430667190886788161807109634735462491955908810940139206092128728608158459370649285091397945712412353659591303325097221507557261143267743075860682091825511684485384508865060669914618372042267310431942819955975012397964309497989733627206578188916067912706218138182361820486044735552738922129648332195788429967356954952961751752115262676324841041211749739283168442371381494525804234166189950651573138011064595319448365017395713335479829883318525441052762464214071938493123822310108003480701103000452985210076020359026549575045946578053103220811488432547106639395387452057893866234856682005554631826155758763998397378764697225130536388093592124892278072226760757227249829876319525000118570584595130441478006825804863331635115382210620633525768406052489827580602294086179644867429818201623592079660016941140678687529498421830097926793766206217053819952182423285133814297682268777545409345685653190920758719435010101981779920132871867415621196615879112131553259265635171991759685836941864570400392834137874987658325045067051604987762394557608241121228294081650911924430465774274982682117624901533420373787242962285511894992393422273810904432002821254886048224022708101606778961534416947503125127667323729334316256432820882599711087095513146414826129956840440170830370554773447630866995426036501381226710895564127064808911568568199033962088863368007904852368058178112875786913486235976656556370978801401197922454881693296214564038503652315865619019061804855125920720717845171717266781581025134404580647543058052855116464844836856432911101153056578652632064204243156160062106041032902439041130569311841615485867175797967159433933035804051220136354707929462681859093090117433167422467305987472223480719956760379930550546056469953227536366641666681521075144167887426605590632723353726349172639698260298717841214181385862946326770932559587799842909342606380959662773828427477221201246207804308524191628481427109958073253873143344892235281172614333381874521212213449237989240842789240137616616165072822818732671135446305007487616136630636287154913763946477370421964547764196745917726447353261367358933889850557992034109125094049044820145302507682580933476814543695009231481406240227582319194624695868211540580500208407394704819322921845956921755555658929375510007490508687909089708281062090738617527848993223030090171522782655285705969630806036431770067391065874520581907637498343777752627100310208430659627529740784628291251243352500377748445918445200588901044818574947381181834487029069782776018538801590870526276097339756033888883233008604415463476514506939362007332347921562990262934937686563736511925242970748835772416663789416185275379871997352912313280608290641583526844561663362441827464524545232975098708740984153299610727224756162707895770845007997262699452789938096701353946581256585662913310229836537401591747209032286067184599410772878745481869096368469789021476131672020228969971963111411421062281148788625028360396977089753701150470406212293026479066873912633952126006387337907636532868765800004677166503096940295050155331858220249222445001063639642446696900194095023715807176843360284066238485714091024380701355592929888167619871423772644735311195510359645131482562104295106933582139685431961660526558985997915720050372724454386077229909964990176208680544700523780650978790611812518790824151353706646547527129781940768059073060683366149950366911633286515922028523504253029666873085517931157341855326303091677524266093506987045264811884231480123819326198996841554447466369323963411511570421932941755450838409024109232343437275603678444378305533658627936741193659439551172950557630074545640858976404294188274529734092927656655422312159635122686574279148192646420203911838612345233128460142629972282556332075146919477595529209525837197045323779459110217256212646517600186853138895305898014529271023985170006669681897055770365659778061881389283372507839968793536869172427844630257892046599675844418397697831796831716712772050051293467805552801800928764286887239233383487687332761430620548700546339320946723803903915301016394861179803259517733895919142346797951298291104757119248004532305898171031837291445445802998651101567403459452977019893591708440110380995934589284366614857032714602098104612619678266696839785316453470733649974163032557805249679385669717795895698886920783309280985167674528186791663977856870003580988240561187058999297033167264203153897523733924454228404271611670099571117943207509234321924959025844039155294965802807079106984648533884529419864248690352300765175902498819394132528173144770790598854834767981765268911050814983868658903878572898781645079366901741005063708105050697970543944313547976148130714294915708572807586448871558023455010199792831399113340479806615339562544198296267632143251504855299887652748420001474640165368313687828799881247610850325537647492099389876203638530142096936938518277434031655566573606749618126402499257085301811100399568684519237798415199334186681156422900005964782225062735696055331523219147324450396199349536150534088191601863137853256377806620495766163815082823205802668998013957395330363700859955934277850759192244582613528229153537131252393820631782335780017619137246970655585214121372440440007446247653688491946112302630830077960030385516827286159970463384524928406720976250504050227592777820477560318562638350009562230970723797022065244355626613458761495619096431268775580987845802081201470247425906818907728370732674235067264528348685575367827892826328942631913486947142863986467900559019265640153007289760993677566196404960793311288557746987766545429016541894733592402031305468175587031288978722590893347975702534657888595749151652244719217107806619520474161094831033914675975154254317020269463700412553742005717985710612025152658714257644517742305804024374052408526579069886140082428821467302501522046717169326327278421200213347528130118325293368690888184674884092869193301256741845386478037368527759633450967043115678153416018367698465631072795131553195763981809396004536622195490182582120465713033500855644742922730593095541302953793623322197036622525716182902103831174550121782250184560273331666230722663745441341881405767862180694601532031972713062451743518185906044469457007603808657744915216338501213665863176839169630058639101318226866615086649434793602622902424499552590386842240912508996594934417478171615973977720536267891994035316917092166621476843721047988928486063257330961876092042489386243130456514756626264242314028167144480986291611965400461577335436743167012156812157943924781870019521315904956230339703111121882971715139650599393456684659521925249494582213125513638440330056141259574262058165499244347927596107989840112342628672653675777597960353796248616552955885074439868248513779660146658312004019923971958618642636107268905307342098137600566160045282625720636003222479737421711381110547468428341531480897564986057817390673485808147727707651160259905384704741141977605761957138648494952550027157783668766050489427000839081605032492818946092280148920134225489000843729028077215775600829760733619515800372593799670373339030617861945359253032880041994016342483516709478396443842496552886931466415220502482094393027917005226319040399312364658574288520156305749349160919658256073702947812326597953328190558919363357192106210181422950832154601416214993405064535708742347714304972670177074784121134408404949238215554843189036692090272526391288696717051742611948712547844773726960752553649026609494419158368008361870344975776664190749266924583188759110899241314417528779595788037967065570295439097803521358508299265371350220224027446542853238417793041083093635159460110488099442842689065885769215236260760815934124761158281732849325676315554997151338809753899850951762168327154426474922729072508418646871436754396919678391197703869836038213593449488737056015485622706549111707105168755254933297976095163380595150331688072233366118295764016312238647876344135047816400379959865340249874686214891238115282450730372445145282000721491235177347168420477684832483501185940052032577110137562160753729320979499045543941341239108335279348447459120351789426199885947895003809020681731091325785895481173896474756191441275420386465346418856552735729581061219860575294562041162348794349424071952710048127308503596556315803610940585854068705494753255200293941558459614012788826583498140081108722166092635626187732734910017473006151384423085893917120511598187774431041640211632780546788397169955324455037344911735299850136675701040357284452166442127165479434023523408918451149335624873328932869313927201317688446207397766523944147789258448449352790487462850046671550800885268961045094822059584282942834136826428851366468312492508896473026972480075765339788276225164573375114094774546083727912755049903950661212741362683940389617288770680457327386338237004020583740690858794285648742866009915341850259832499604262222993489997529745422434455213530799674076904845633530968874877329872086206624143078592707168754942430486397413396848549148555380430377631908884345384369114901883033583914292177555972446033381075833764051138832476714953789014761430062473863479465717677310772227970527486963832811316063580767688987747918389678915297628374063899422758271877352088639429643614057899635032146815904927210415830914210224807685507918049017040126601449259164787849232156848195145995796938687771682623159462717912287679954902271550254103713285928528557925745901939685615451431023493250963463972381108409257865249602684910262114623252742461504110835966325856433465948898723431214378430657987457859911287393418251516388560745503220103072206066548432733708580952259809320130474963088498941869261328252538469768564100029600204922229359074784020659074397924852444745872676403001714370355366439727157131022316612621569015690220873995920333371247040581355615333140639195250131865915945951994967923954329239885724052315472424435092249525584658237534784714935414542777726742917717343327832810721870141639919948239935203384552767019388932531086296073706259222446815036615927037851711648498227619854287610833681990289535120001493735979294116611678052613027504719563431749309103917267859791655006184620016515900838517622221661396315276765391372892681155337878467446545203781207326378950595348189315758300547083992581966418616110282652649835120172777284086731736838938024911273650958237846230561391065757603425243117401227671289857876240646139223881542614818447456517809859375321750205289969744060542955594546904589142036059083012325409767058851557198347431529042774845835532303289118264994216482218933218671891828397843013598036038660938497647485943339914868445212149366843730636129269077697975747269196796538444050530685126706685076889289591059617798790127736772807564665189761267555165012764691918649822586626279941581546526440812735612440467714908306497055681544753641684806073411810600269575421302701593581326928785670975219813659498258376258851107430681319110059315381019836865276220083843679540998004089579444935958290683150111827441110695989401299418256678341255956951397299725331622190251660931377339337535227559560360200062712691709183378576849292201142818730721415197819426072031747357334451817967606852009511907086014926228901214433386024802851892231671167242101588876897363692524109527364519456204929802849452111203342407600844954813945595307829628728237044119179764349038799818136478199797899300733371371309798549413118091398443453633260517547183474571987535565946174470184055233130566739817496980933808275011721531255033946040522075657680179695552457873754499710147242570227538331306424043821930503303216506972723629326202469541190595254879113099614910397563996294539142046373301848268902013553618395477928741806583423024293496694012332642413075866930497597330568304958688219113509036740727831579241364385654571189307361298280408458030005252166507285462304721730420398962079002130607745140611499677913073294436579975053774363215943588102945804101540734989083283185556185190452287646126962236104526943622212213376242798269539475273022311209820047306991138633338213918853816847407820113511112894845172676581821906840499976837876801196160766297995448857000380050948335792112115624863987657969137126941112233134994787801230339203299121742763866194681203172065647353757473967716320260205882413445703092829199775734604532687533464794472549086784591558318623804160897541383820927964543003508131276561383601696961145183796089684521852026973847089877175208275507287132782215838174741651682418297269311335412799537293063737579603204284100237115191585527500973780927790124007053297643286842689000015460573535454767078618426419727165176316204371079278341424532271060695244021382088655708608110061637229591863068323441093782875977159838142608340697598931927447084646261703293999370458508722177124407499778840652621133672727242632508753686959139408416215588432207197084528968130796383594179785029916865859975932106769042421286740648559366456198310130762580702015685532951804331468267446715185286059878447917851736588689656670961232925217760479822583135325204953427137049153099459947273630984980904820640549526603693446460515381898041266399766118259405904688763701515170327753471508657466377738524889343826755332554105842006012563988126434123311639917508639414163479318431440202561985705229919106791909672765489260028301599182203078041513440080651932688465980189604102185632977730923085546422162882756416229223328574776796865121335858773250529513023606644984147868879649099348768971821456413538275126714455829592504630516057866033354257086327550520219239847105675542837037350402975610536517825010898150421781578839932956874017861645930854901929882488485283845257719387614278267355526400640629677699929095461691567362795611831077374496350752783805846197053750463110803971507268470529075901799829654014747359738652585417429985192157149531773826071097307472812518479468724249113786554250475684200335869153391607047715831645445637162087608388981403647151587967177370025058158391130258404741510541742318442026388596201008265098645042058271321615206677130936235166316094617982272889828398408249295924250137693222289557573865345964028363324509555860906415742284599710252276250784372971612640311141653556101140014907595296030782403873641946725530431840831030670956207382494008710715604304803811497378922083982829936501579672166871726651815260257627490861181862632342755620235176612567644944311158453962418807855138836894565428778428662580571439524762315955293585453340931150549382873842910505484382019365902675820143592517389634080573520702922492376112871013035177973137600175959048626411986091425739954987678775628151190246880154756666922808148871425959573231776600603385358367709069507099812747173076763640247301746685707154259990317174769478368702084169030683937456150086960474807422745080169980270959369697367917589598925454642950412829418775141373471984136073762588116044227234314874611306369652118434026669188697992674959378654390945820357077165271175627595272376038216911385110451133714986226625870044460208238741242949659246272434164904816158493826803081537678125747527204390035344535958017683323677646923386616272183208409965032489536091169358268861881832789841450426565026085706174317765799372091191325483246411661723684850925896329253720721396336864052368126505268068096037852013179516298276144983615305997862585471408241194140501692185317858338826752515963760099587053424159541079932227140485413260336820414831060592221808773811144830220625746879467481642899867743827399012079564170020935639875548689341743019318079811710194814100492014801078074452573071294565078202973269333923101068444125622924616577726647652471972047192309996384767402292968379422029586175703849956866699205817715833965131279147684902168556765387915702326491513158913704196304849286232718650146347580388303596245585032623621165625828616243516168107488109587831918148862000430658134261890320469355466547566144426919816143205965128134413048215117795092196220465935502283289465960819824242123998945420138525016413015867118521982411253579225866140830150846914286493158060027420626411317500871010676096639106191035176564915167668759122502070363935841037907137698782913563070471185252625557050015485495341999688847206938237180551914381950056518022337577787499254402194629253008650745272217518075877182823388328551528416151061132646146158081290606684377084250144356299748431815514899022189642327425458893918259136339078544368384699267757784069356926514564556072405380461267828032315291938260131428270746835643535104766978347697654790318699157704099330371984629666927176705796876506233871585308363711447935958940884040816588028809838204314465276058910928250204012203401088311189640930836288650151981116313105524216932397515572917060703084763941984460486567866213450543111837814955166487934958256328504077010525014150653491612729494923330760374345285537548767357879676371903738801538947817549030776090378893491766622530675323866038597271539479833557741293719060718911483876927626786743220545906013897247558225960502835662742192009209525441114467159181195512848430254289643722516300851730622167327935689266943726720092154422435870677098952350259798889476244206971081829732262506266292996228472909530109451003035546175269846204483682397208673868826622836919041608340404550471387686921517833449139570094417286778445909254696448517707231614437840543516513716576688080777739083332565829836389502751719441278561561193064724797044106629935725202513593238576870462806398370073620682936642064182761847549409729892628431353185258420398750139690469097541563280814276134418770013962836498808656235348317973087686981585042994894172306459579896155600571770644526151119297820424439842442032948125375434635180604442156379414964241035660043291749065518983250238564457057846214593046638865772887138770888502387602666582746791637690201089160695921560626927594704214452323336345783202831025295609597919797965040423706326930930514269504577391072692751728982524160029553639919930139304013325589472154814759408597636336953875232101726553413937366723232546589233831160867226603820764800715889685784570852612273492111971185864569819412002444879258835514843108020373827464844756135204590563917102765046601188421142944049760467287625879265030053663514762998227154072315561371725569454289811635320938253763566328811825153660009918970125544157176433622740895640820173949587834558042864226032113656205256218342215226406997127357682656552047996662473135594568774036526981634950224394361583821218099553607593783776585545008976147341012105761791677304003379669717515556498016381971742860158245178987181359182561234999083937457399025701418666574963448957690261657073792947122210640071312686516238696400300474414047281914860736876932909516507485984510990358371967571748884827866730702017151824566256263866783751560562693502427729523303142702219616698725405635025077705862594926515071899993113011573353664364781885353759096139531903472697986024155953755202613752473268661534336913585202148814472859941010845370242108175433655928466819988133678659647685815228521110374215674024455590044978783669187013088310763467463692420170593891083085223706732836494611423663184897721724130342001051328212775106049173142765710052983905286013667941088573693074847700822302103593910048544527230071322558934405412065124800492077805938811605490231660858679122232162378557899935885339469110816262853242558410166449944575164335982387122395519873500591830063892103679609030990738462973762401206230139920311060502204338884552097490405400225719428382357316999133213438770933362100331898915273410541590672569672027772660027312017063383473375932686784841180304452173140643770878735343081597476104714551499097958679125020118319977938508975291447670964862786687609735352252544932475398614792991595312694877166874380512889981437371543984276186898247721198717310721591128480757313667292488076515683131695539122668836830979771492156780054345940919200229481060270214947398095826386593295864672575295157676488864411395869152299755306845100015940115511094618164939729609492068383932017194616569932729102128406611620853218974020940413944611787526955139408351597952084817345817857353971562877486939768603344339501647858531421273927471962111278852068350761638244124718362215778688538785678999592410511414500852620150089865877386946607624667210686094262139266677772045463537295954725029443673566243276937184733448191533969782755235904786508227401708205113634914015147441510195595266259457804147663623928266234466525634298945399915546502573944004475540765303026472920174427160875846128119866486979249616182263095201817941900424878759649125409251854055695068345871836345267020856087561433417546502430660338827520011444395529376714340152916510165108509197628430888365304709567345645149465270026391319233738164429469823199414494054615764839502957203052628552538473570750596988296894511972412558166059791521274540702090879153378532097236249775344745597029584808988255572390874407754596212221208306831659200225849773080838747200975605346153283345173636232687601099502147672233591408224421298425975621119973070217878481541817611802201337370992816459376327632512783001451999189557147268147132468011023537767843123255987632369135886500492913252368220515131893546897327430686621978266526219108138339080225550538997127623709008606006852260492084619456527581237038116035260447572185804921329856394880404955337045169308600816346903504548533214489147633016628238813133056123167505184337814408314144707461359595262102235713329504592050585663876946926641980254425455676492766307116793232269256486106448734136455169332685720425625811414623103538839974249928403262147792245520435399872968578735405345768297299058071486584014399145100225615733920505610804943657547809519217896449671099135340443433718717385430584658837628801913065070342140825458295231994559026862867192846830420246893757370678703907421770799747673422528083902992720839061903091887075968272927070853000644210136323278142026845928958334642770773776466514922859507871529438238022665596122802157223808044054675633559414650999758451930168655633859484872835541192788063353701398386647457183070517732499955150986452980490291888487242272735622155414129893014741917142095171222185458195959225469936737119516200770930263129396908417615817859459478818945969980060840030729243399624069571949144195100238781847141686880706511889606041075170416833637171203337217857064427157023008241686029223619994166312989366357991450134910423255481000024648399809176751888361999894405084479934508869577968809558096916485043747702029412775923120406156965369609098861555859293839294383015761833395786335734892075959771847110857580515843577158080933957991342738641254102732760407946592287213164450240963324987273975160227381631813973564294712999369189843005468390942415572632158717251813795497487259613434116302699406426416374261393925856480881014475942506545987009881018613425558351338984737746562712000195312646852153243711446060106437897460901778904680312443346351766281895177454579296459504814243352796608843758197577874945042587782381578314646795174136304130176700811769164965537458430368698435916739749620667182308836922047214189585449763245419794915171433284421944374527389619177869917154691911329915484048730747261885985230081362101981356870648576882679980620832057334763753179127978140512999917793289820250630608984084907370687681860968280574018252600366735974137145498161555913729337113971211551513881004885464909350600496271223075234488023644517152734492701247412431709158783038579405781854820441053167869162938666715719917841493384066177593853042355389047856611658099006428010261609709746389696644630181021843669942413754275993300667235634858558848135204196489763176563934654602561376268244162777281548981047759053149391640249575028803700130148373951118333946323312613618663594091002321164184041547405187113238050515041664622029617366658622699668515193644197159356434607913256276297013429989263808761670861854843692288544009010445173137472296667899520351889955616301704346083544416899727332439669941043939048956164262552562641487164114162834449719710301665082388482991364118528162136366311021457277421611368808143770605590284124329177283735933952943330930268804172043336090361276413965563619133699426729995395780353348642419589312875844944563584501584304353205926014099266128171455361780866648391401578802650717413351331312744271158038223445706079873887510949683948046991002078871911946414226840212488645262165444888724737173739680989060364940245997752503345057294269669766138342046260659854100532638901560986346545390068579527647936998834047918487342346114083634305991475772943798846726267430159114788124455128202707055586279932233005493520579134447875351159023687372771243060316296045601516766514404053471774558317154187124771446007502446458885673028509969594800872555170856130415442762390298272505086298747787643339635545131382729132215288319796703290499459051951843584695878293826876952185177871424938376777503825667917166498520272844666736422732775395003402881244161892881093164832747977423941671393682100930475339428355117556603772563545589497159663129358327005052387067720972050352105643174290176026004307671189069475347035698236310096327716705572489826223780019490535183337564669434312931314473819765441949697585050079252520161267967310371752742190831933638027735779112604046592206406429300971215254560182473000050724833553708654379947558239518242925406092452374300051868720349931041826352861871175853197008600180089129870872936202491607194781282325579499093980181804313800455914460064820564912012831962822175097138706631384435207692967567058455095667200078139038116346785614580921559090797722276558271901156015533761201832591286485328717054886588004344668539583249700601453254029357023104688534080497710428738866774916423417864964375829594845049639700764537970748857200928207125904623712594450626142580651238563507769717630620015242028326079804694566583885782190386503674371131440670305557708326995927687830502521397501860016026623840014120996317090790727487830158748803675676678707834203447993732206407134042489693780592900264197052087359714919650754818928069297262042181773259391441760612918428461323081965001201200356723875797148910231930883735816549903704319543475660841171437488732068918979315944852226230691729713187388652326883985916647804879076483607377665629386206723970228701614288388950982206972849834137725956172863710748861987322181670423598403411578401671489019831565542541474570295761037400049003671150239935124540761327395021166549838557643147451611531986902529167648551691395178485782177628809042762754800524184921297745536343102564240219320786098851125273205490799512788915911856575090309810664302743152700721040927781435013907143398782745671792774695853179603143589042258739522712546581489939613253696010035687257285405963706840554090606024800812344509115067381643775438689543994486771634888356166044044237686520466237799471945468505893450973900999792007941672662008486743863782030522434762078186825646123591254975878478287471966972552537667826402531740342826909777309059340238048089239984655621481324727400547040074327692986180285470113162603454533929982432565008082987023767324580306782583521784932479936212156564423568602537687835849416181819549057682715461502951235073402855397280288224344702986796518918939241496823185067041544827841169631377679821715636549171390030726055181851367423397378884718848109957262407892891512934892538782167141147668520955763945093879909853857942207738179491149647941557129951499397356500014022422815843407318096162826322234022102287154258936203840569460356931663102623301332162687383852341744535270835956800134292377058892036630500513351357548747624389310410256222576052349828338205192049825263348438005552570092354275029795642194075606336571832315565218926579905799246121603567140775741755808211606827536271703171654219509666733322297934843185356797832651960790071017656216294411163042873460722145343102559380177512013540044027494246387197478491655247619365065028915902806262374322813642267572789832191703063168743455241475622061384872052439217780761519670122967192186973980841384991424667653463175230808504402074195571794414723833459563612562630176856934783124002984679218218867350972919779364082446491395360489549691759572628174051564915953552674448458603503929657514991173079567815847282222702451919475429167237090280680528453350628634309346406244351682219548091361171402599374631253256261230866998557381670912458201602604517801984009747008060793537713433879889110142400678981217572055701603060906038949992731065272551192243491814207275029290489248708019740072019701670620947185466432251424656696206999302747766094069686931616876831381140063020299411852745614097998938900537017446541326440011651972395963155030782349468140579586385790160356951960195080888100787849888537664898536934104507709565022009995427672002066079606112758779107212687874753046100522316194418626290801243371274814769658523746021668416676927183457508691131213456944386104955404365117981316983551026106236266305537644061876629033902452974666628787937052924715411351094659961778800253418569127790908226331323667356769078184624733492003386570435879973467769463930699167945894150504809713173933921649536383135353566947516331924725637528305756838776679502542926310405812067988565513053520401135368825896661574754740015800618360470528479498085987596809239848877711645127311644214916992262199153610874886945942530975157073962308472341786174069888846692019299103604527815084359015707740170298184077628468176103252790234479572644963438950713472124810833595846436411799215552034680200630061819873171651774591545094264337515864404014130467217769577233112733951045797410579809880487679410643732789860534496473375291189894575744329722661624657236169919622174867226926211392858916417433481070721867617903505407038159132042581908100597469807861756197908531837343197318587182377039802027088994684056081317036675238552428095165544804412952652721706287448894841716494628854661401787804439701891253092801528364459122009569225133971686450541581737751737321379868467577866777266593429462556288206094386608670758430597408637649396424806827831402917497778853453501166216715024668151434475981347423662691000166145962048130990933222046597055388143139137026910833026699998289916762962028770097933079971745836978022925503168512113989107313197721449062103548538894110806955328739493363243563138199372140396317831764674258039613406257651482303221381803539459067093140757854985037456630034793542376729376366416800913839667688173414321543500064277418039738026942652149349110797316841956389670835512024061075642332740582083973715258264757858107734950986862069903007609177162053190502610899361739666742550134750781817336073051845794877302234547983617583621177384634421104255175535134076403461050530970489655618801062627297684344573159518900760345808319602601362875394296711618055077115552069611613830592933512069079107002680767929018778545178920741450862253086290683651415492636808009807998303579530074271188841124566843306843176521263378384952114452649555927560509785706153809149810573343113126288729370665895952825646233868068399952823414470930495015573643302886092068136472223335151204835590726362421067029870460679665812577218331289867779695122274474261643512410306228433622997421413557905716158471772198420473668058089465293996907977906949690219816409273211546666622767864500979926861200237638424694674312042234656757745468641365232239166204005404065961873653762204471048104865204185480122323636966850624798042728503743552369066153925668379493362122633140660192221474063056411962181285494989897835604855599279041379387734496325326459517823176720369744644377940363695454559180783568269624316061230756488719098073927928945657447802533134728475092548593198802236700254251866599966550128484941105012283851613028325505704708300606864420020492072645659210293016149208735804491544249595314931575222341919967750129436496398512658448289494129912609189808426231143282297536365269274797895054657835168253369769176298416671638385148855898377021518436309506304232602410269579468276846086098839780867338105648536468120396237687804738650105261754704880910445198404250427583363230387534900085632004317782245177692706836720917850544447835348832596654251832566657710618563400034973282659995736611431899158622136767232507436459274184961512739568667939496234297219666877321954920354578058880359717688805645566599465277706541548967307722836665109758552082283818061113614984286425750218554745266962602238805266560484770948296419550375260549984204504550091323821804853513823067224339119654224026787899340560590388506150423322819754574275762513680605716521156540269550038573456034131523921064057885152572999841856383604323856573825002319356692334321833532768227150437768027522475295010923611197570935236959287465398395723503312008691393414892714853989240101941501791068650012812724882258915688010083044409398957246856651868000609385839189415181400123018781907253721488396409031475834768904227185721904765674389833598370048704181324935941089156118402258650138597914458089789436606798665375338617015970227351584736922159900752166801298245990841903283160152817511024305854971587194501240030061634075970347228048361062899558994062545926721584961443044255269681011283262667790681678954144990680405038234826868863451144020709413930538581018214391044247755157592314226818553226908801258294939325460079105188231496036310212819549014421065454349779171450950160061869665954921926580349688668602094822924522824481647598165921602433315758100001546442719891045928833137701611551068478713823152706238994414440013156831054176375626209033605473541305069572678948123404757565499435178635965924180253670344565176939155968590997947069320939534033778388989539464575394693657098667489550350418902043955331877808501742645447184919050475822686557851082192303633880451628842611886824750951925870563602877714382922754416826749088970257918155903584599379030660441036869695527902631916723493803951748027978104654973147923213848752319031536807512523907941064760922435360243960649963736213454514956382325792402775572936417209088610011258428454260080987951076966488539560564677801000507034887772778279669793429830542994715406362266333078437083294688563100467256810025615892810124325650799460184045074510240858928902058208670681856874559289488969412450431491512518009930793108682410177212498736749579009157490590325271747012185131048947515091270660782238026743493636238784913741753372917091934139353125255619533078190006864083443938021044311803217329881332687279193064238621303532325310671540352348230357131226190564822420311670094398792682198180191103205346310304543774952124732878498043402840498728326553684969992227447594906214908480905233669632420229369819412537539640164457659125420453629389260603798413454276253680864894973431517070441867805739904148968797441869674390601149155972679089380557634036635282715140323806086167808313395914438449324713432458017826790223671363496957402482918976279449108069828635696842071724715714141512123285692413072585550517594153949882090923937634295359047930477339913312766252993925485236900508690744701416731029941559079465230774621857083854788034698349642021362373531794932253605383700724426107731501951875350932862091997874208216620818335856116078342747299190866387552297797622104322148102817748686858665339229731318600494553450327135828981745310503203126332749448735339668365121812787884694226244971039956459865546154983232717907725259010380025796142155952908072432977135764290885784199284162277083936097291772429791983446926973215146738957518995829026746348878949430249979192431489053822329714709448512987709708736236913238498340727366749262354824082199451233211586548082136779045323738532847099377679646141557467018891865675571027113219241000801538522380252038179107743093125597073995287059200753480739721249802610232367734757861298805049932176415261521926066795370687512381646530168173091784570297110958930074835355681857091808245298554914121353142004119129385104448169238693033585103928669565141560744227668777585730388106241011781250431508522203693124212467812401574897368229055973395400268940063485981664132826074780846705333279829038953792563053580929032641606346848611648526803584347205534798457890274322691855921786030068332285007251170065948965634516059859316196744158438617271653043244219188227635941814052506561886974646814192640631906400827189117153331920811276962177627030544689628492174740711606789814311573561341617463076366735902943402057941264901809793574261923524727212383585286694017769343461130985878728655015154898228310530849318464007451305672303785487952287980361751482153984127958463281067674293658054143366948104008269381708705837332404333575447182278898933760648752346942937661469217050939781597629843795239453920824701024008013779173870583190349250885825853579125454536176784347309049886040494152415666357946663981528454682838951808712087824200182258893713463054793159538111153131331841658139856122125888216607257263637491823355300073655078311528276677181542769772740881818737984262078264071831180608218727493337033284990200057581999544302679475899036019021253524875975620596141574242103202192329932103163009312907164423004719510553520750645793061921838966071204952715858245395868548128193426112590252538102845487791987929869687162522653833439552167282095567181793040768854308985095260000329179158566432974976258762826563813631994426476363239410541241142709258112114253170553020492766026297837731006070413125362492696115868161633551785221483933996001677803045811098001121539715197823569512165768396681184414674350541598966095587989185408437332916130280105979913323434713291920294766203622156913666254798263949404476825422658303621453789799544769559164748661724497619102092218496340505855368183885981431877870498719749393824792144807225736335504601434907771086569066145617809287144497421210092451527090953636329289205188473035949804814623239027559344724033344879988598443486186829133074471839408544011600263277995467552827592981951385241962294108133987223195734885753010010839836045117897698677464809781404730208364147271846449106374822182066353867652177269948296193728095146273822830560325639644680337891070241539247636892375325932920601723591612352142919265267067396117771877559424627856119491308060580834063211297670313592781586714726892348547630864110594959494166491509255886482373272400829116913118856006422590438565120651327500967369397340547185189333362086469233296108844725808670868631748343030910360138599388803438665618310747038233758064151009078782376745339270936228199174135198337477561834207546884661220295710495778624286024944794454393897552039909757285269204213401197218752688414640322872804972382510261830959983490648526767875645734963761662131877257640658240517159405715207318248247320458874211510696556362737315050795070128499558225240946504945543175523507463720552016098992511882837020428189608681760496843612819622178621432510499636906158727373619890479752484454839624177053892077183259034906290681109777808047854931240314143311739128001981853562817189136980709511271730357595920866093887851984988029152896647680350564516299293813939458775292503187782968234462782405882566322170998917162304205041298394211991102079079847882306678795492247937187161193057138368047189245445933926840694647537788577883491880748518225174728188526273824327914607765085488763324278260477973125027439560666325861843336429359267974512759918309260251176729483712668181103338341903304103329357489112952356261431295053717499853974091845217354859713529954652279700391923067574827049657385232201770336797995919589036043892277980635224265473241037102737280455361706565881201403608972059486356617987516306567995169691078135344738773337933561691674894399330981729009462596037507082255703588769386169360880617354382354031327237563894388920330409469406172463933596698082361027913610431740293258309037254847691611500294847329840549519368062967831142988800278255813574128639754543970357517856753837217753527084073058228575116361576249688451901809016622820104452740625887174134186589241510370233715361616790551073788614326328775524205106661660127719016719041661197667433130558951883989073331158221873574930115435352536264085959071216695824337261483508389814526218529243292534171866643782112678576313416516750801962795987449478075435299709540556020432924420293348132147069645799152933479584307070606957269615924868494282393228346719907661731221879019741848095366683053118300251491168309874316712324891606559820060629439559827321956011478801824609106475751302554848044404692072182341948915856544648167981397550662095928989032070656176203352976314148856075296125055527040318333494795356245760707702334265020461489041383447627673268259835795728883823794037241326975086556676137676658629042440650024933587025716455884679878384924930558068038157637429380597684118144636742390625398921403380911212828961171269986194399864069735252548777363973014755505277511962083021778820266852263355489068070061743630126945924167750181984603588752097473552971109083020384365499950470301002004507934695977544988327627681105586782321202088676090912746426517983717205658437940409378195481444385827620525287998594495866023576039648598396531051811517343669283522501415288728748109002788557880603748867659055645818074090419702752792225430652839651342348164491587818123166741817248546255276746298063769512345694832937644588466034055877725124756385865918122538186967225695338994962208567447814984842326697338004965843614535823682518144721901178066801482829929179601029439909665986752931144445323088395950106237489136483749923297799241262227710606528041354200483661846401879062524343129854919648043150552097585522587511249008414379333687479661574030365766043651505534653218847949474036806740719675554281784788371100216946506019727182191151618736664309812088016123116462865583313763849135018494118254994061594580583758955391174879447242116251951680118713895053896145120431539684345804854398692026980356631678052326740016775797974935186081054144418278163840589599292530879653885389171775043392680234604120760970703122754570191597068234066910301958485594103551795456862793655992304608091758279789771103697918375330121220958839091514513128346086531163515667214996640355473160469108361822758615457853268016870346646489038611169780049297216351703149041839939099279584100043632737306836017037796708791392111091330274014609038941717397070516881070767794643505340754959928140687030381011677676965394027326314777622916151983142435700494413925901394589334208939188897636390838279584195313278798892919763679002781104395522443867280032385666428908383495448106974511282947168368229395584834849159802861917583752877680965481140900482532722346885168330178310138808612421569078234436675827385003775844846859860535538672058878086608925968762923166250705980913744640568487895881416362745632790277041382302081271306134372847976332763919448466501923624876434243175430843803704374432194746953860069024748859845909403018626204009100326484260457864815502351882839718738619880597465056170777287708409196276929682400604149370531508229354263301663921339467546284659534751339597894386747172090924564750658439261898927322771626106732233929449673567792441072673645210338854070417022886537052001119510556280497432752758655432985091297451536892905136983837687516276003284299343149456981501014735055587352153618785571940246176453351649607882423258467629933574475981443140914114910380284639911694763344031227744406720393805632831923728179320646657393221033564955396047388056368043216508694468941747197291818048236801546547067571232263169052681640676597916427043075342968905484939750368167641199776378375815327899797486145066910687002228536746766625556830726963923207002543892369127313639853627592660926692241821997583134540356633229944147078352929958855721552322379270005597464411783048134099238123671202264430082595897509637034487249169053093376646842897289223239512921595965999185829268696264054008232655406465955427607606427439498836841071740344018346253678431432370467645349732819549760728139728239667701796377935146461408743526595806011358868205109644320809678232526535713589817929210369796661848828045097860485181718046082767465998136550425333316227750011612718409198253181292185224049198494656444199163076995475956874900800938010443748277661299449865621234352026674175225168228267817084117338267796278420194014002237777814367572925403434257095668169116449412028358135170940466037795789408686500936518438334074168370382423575098800070308585685951556000060520995863193369360703678398242511922385029532173947324283863100719355328479293229509025305940327222677112129513504672862197592900399380460773679346943198222434434556699405152053345947112014456047544715160784587211677077902076974263902011870440247960862512218943017786565988695699288505826109700022033703164043405939602727667939682084664929594117897775150378888576982446117951795322235089169214072999187912897670249628946032096365515098422693435505166321580226240287692058801611048174628763380997132885406312295549006722897795852511796404724175806475614709038677613550266159436362594849105795000081189018936987567907901098345059169836056612786427518119989038321346155527421498448045535677688347305166140413073642592449101436512903574448646043160254621822670878697996480095081470181892389532800688712554889690816793521714468832868056344565485760885354624834407805189189390535427350544688155172770390302654277659550549781295498097141527864450367887299963333626867944419336802899404342644993580549282610401119867622848634173580468668917224754623204755751754850662479109079830698199794815409263840680897639297077045140731863993588879313409021768541493966560769564047643951238196871498834438081031434995145084389146594040919613736496684427073080424018157700189834950765249652618007476418499280532509149861170624117000656172857903072158080259482370552107258299316046772780755362932524762915395489171389756769838254004355227785937231946632032236182623558170722588007692661819808981238232806406631626678150272561616012630674358158823534177444194097284274789737087485682847301469475204921367732179545967962538107033301175511061789184633929253889284051365744320184829522107717664148639106678207078227447305352729564763397178926363796017975427991573178780902148474915379266566396126635704060059258427535793468788438946592315282935817878797424742633773417472878616509907844122409986601440157133435825278662704452721779149016528292458866875417514937188017770975639517484475060344714071599532509646028984404451440223982072400250246778973903610661588642841646665833832362201218872387652143520168779552011180071137919948045841611981486913877795465113186509755679538890571807121720798176392656857236928200083094814757130700423347887978393032978769306590716554637524636757196522320663265046879630030042373203037452758884375791095679527975460959467596973457542358733526526656754172918196505979298671599963173453149586012786852208047827210731087823044393254192167492035630173488822647307001002735096782943516481033669627442440244662365060138678224256511008817227172378877183441696029823958559038202810318757219324184395017596915755474173488140409236719549241230265870164932070967493124159788179809227471663353816362848284800735409175219038432851015821745050808612760430539470544527149477298549961520733957216538062622497061975015569781896537553760894922792505639411280628170985641263800221807891408882226589867235070950486437307021155665814010360426302990306208246571248974061844288463238063838116134233320880460755957676165212711040140597069882681783735158730202357736663924619589698187523151688392022925035971018755135539931132275678491185424481315980036447500743619832773959032777520240964965533405138217744309620429470956957861354362999471812862424359812049461290360423305916320715181556041739450437265411259274233097244749055842952902443521000392806793499710997386297469100353508123709159309669820696222909317773559530830454473820952302905610391502599325520735451504409327871439817653953140954474302374794734079550873167402496825106750365533273996164422820706902868605391231116663715881297294346733377019917287350549231443484835584823215253906354299400214195352286099190862478526976656380222464575299869572059155171118776975807227359469373491300201524431247411529673536566158821585396095880842937624643232385934195539289258570871405670115384209911891904980207066317768040416972580960231251709064491148325714920933485829131754902637471885134755050617031180735291363871777444563752791647418532555217591941433372849566207002055815421734527043434085369585652531170925312532744197901901739785964715023313862811200935259901177041026800167740030461534646408116250748353877530771133690566833191453702454755239858507882384188024015851786166852003446691895656914471731705173728366056600978358721122203050073760058337239424234676171798436237857392476498976769293000539867505907198487787958947261384730423875517678406128724482397910844818962318330199952020244767022856246207420077607294190248303717179420611064688848420201665878986831405603076545547358176087522218968965983840552247846805608832045279476557745047343074745532841510113688779576017532281320375905869843952654966179738998311694323545935236696614694180034016029686962503305311757710702848865911349623523823730748862233533575991057677556025904979746405929488261976413269035502183268973792314700288301833701659877293042534410883293369379078169937477903455635766478569579302841809662622408882905177566910392541883981294277987049950048082369448335510490896378880502526685921485746124415555182953680138874960715019076149806221932684932747323394249555193649766176580745083830371094804149076050305980235539494047919037344239280978432910824720543625359176032764762257880468615715104442557712800904272258451760662582655941437699409084700849656394714838029502971224778906630658004074505109540394747714675673109214311730834049265826788592971966557799182493008370593696563246001672973191188966781549384022287068329463906314082344740223016984309420892358921109809266808208575973585899464556375496002825081615901702447900386589380641035795139618273453613205518335938820234231217587475845331561097326308897356609059058270951033911183859731703553614044164922014972895273640998327517755069079411452364132717095936390051846515597204846693136606989297841891368259925213104164801011220264736903688138995012504803632718076419475850530881542829397953722200670834136040431642107509674193915878664575030823411633768409409896713835510389495212707082218491561977812542130976767343904433403750390708505169966393336449755904622657111813360918384488307305246119107694287099761762258218227341258037683803301926812399397619745321853866333677474648621186605582423537509407403086914047559731295264850654465953968226861806860994415012255283943953291135159182405252003851540146858525976570338954629197271797922532952701678181434601198496848515326154942625267797662659315904244741423765085174275250465886715622813239494783547930816306619566762046696833844026666046440072048169077010282928987945224367872933136363533597967008702390367217724646240444198446499866980372886881777505089659381751388452743012631882271278469670585172305175054252346523366344555625233107519247637318644064382290649159137307373028960287876010511488079784383437279555285452535072647058200218816167745989865716500833245286705344418623615591609615569808448821898240647338077871040233126447412943377523087652567037006629447104201244742191365401156531309689770715346107537112803300420241289792306854834551143367910151802812848466301293388301534717098578461893986811812436816294683978581956856209821577132617342016518250321078596775702974330420148045916300410787887334535793310782614192839997949739307235919920632568123045525877900066264268875591073093485104932820401728751352380127387698271696985450958599743593410592289748833112606841544775827528205849820816865415680737715502360326531575651733654525427424780771975187082834475075856333026321135359734694192241860101377119283313694522441929259531106711889963189241345412514496573875595597701853190080271522823245677134247333623022134809707920454369024926169585903443858980833353153059568484154058663221485546605782466624405919001011093150359777983546676487785023806851311715732202096043967528950594240922529015493548726316278883109575138004941862282849986693806102903292428445385910788670961081174872431050134748156950672526209531925373674282972080286319802384586234727065656566132726625998602552953258110281336222697924368742041338678891614136182052244619936698506968367717983183058288465600796745093654298562194469724561961948229808953913785115872924788818870421639903883479210491939801301437630705498464894335525450779639675542502937777847473462961603787109273012840697994610179248992827440043920709074086777441407815515479675295298479331515150458588341630366919026066050467479060447026090289589866019398493718249759521117102031324218941532832188889495143922925731011246012056928377423810672298738563710642061130660225739251980709222499377479635279914832988552504396663169226165949255608148999155883768485725518285782258797365321903664846308065895244476634562382508164350232038904706532644407618680925123527223467609278786571672975369716739935887003333345237734547661155183511595219595356696778187209611508669152838129519084047106654207480530001374245644866772410310612128259668576555387494091231872574392361697345795111882151391843162939654129049285012669961057478739486422906272248486106965180201278942761002502210310344587098309527238000504605975238500411865126693354469379122968361383018597583639281367598426772159508946692203849587872024348169487185501361877925692423791711276297605560814317869012973241621969807052752237507177468466183808694337872486412214966667001046037053930493349250297974905422314633857052043568055499971800484195735015343681106015133616116834954972204471833528557565574776815525827610688855711310945505932845296606224768084885768947153219394952468122290259434872327426225480372469247344162441530545598016175964615033895831417666741427588935767028046002940926695676420123530953249408323255885810117370035848655750214318827227351221590391242489836407473143753167944451612083062361469506158895770199151711621002586097210662208589192721571497657510649005059022952815698681908057748320957375985233293213711418983242509483910506853354496743788853714482403773195017703371152790470430955875355492330006456542049890671824786992998954557627257911920743266668022041382945726855267622153457225767923313042438876682637298831455646743348897445348792517926400519879791132350994103675257613067568732789861972700943085186588573436464292521386747698326368275918596813292566419341359328793149385566635549720042100529476620338032210140651461025439699221953703197460558865185096747756773600702008728089331918204947265689722847494074669618675303083004940910083256220829891751231442056281808186579647039884360365556262889046868347458918081913875489705658506029226710757382466560016535194596803151386033881310752189471920772218239611354023414921474794201929057994118996962040305385519726255003121688948820924883561648440856097060637671228812384129210049688561587106453367547627178343507054545741794567178560586719493498876410355528111646456160365507651351133305462129147175202591123017674914164606005612487596542687939255556674130737594166430778233699004842644839144386443113879305543058129157226714547848850726570224248565596759808096660357804999044618463325021414799735670263123080761214801972418927735961002977281947434482759981685446394933708313801087731825121546646798659204130190738155285905002397998922410916106061617436598640599601131168667758591909656839630185144152809743245784200641295800531510919682695186564049134159670713940943534518348246278757326768061103742120633268693817213082621589782034789794827552964787706363457258876144403311306179921447819298307814788291539140557602036418149664016215984643675274959917129278920801423056845032807424774389613302324117351230875361926309865883835676263676898605314616769432773589464906458541237499385610530054993081968648508843439993828976900715769924164516542539483452163527281798385765587514030186547134471664388762962393217450573286034969431638904703874962212139186517478456526172324469759069273828573732679547513680266592749751692483299235506142425046621954392222670405364055395972501812065071676776654530396348300833476702593626226984626223438950272985974553340204379918377413603982416239049528339455437154734869917523522230205416881545997940349673630097327562928264382197693115971683252672932163898148601778408557403842755878405981677915337535372008052068926686605860879959600466725564114143360861594848600641013245969906529321464000439820693682098354318582860762514158370828627433715662178326035896889141579951850934866213402755002637658964267681614361381877756886201430553726546524004942809346542100411476560283161139185453739477862397920342840900331859150584954360232507276038159113285661340016316107604160320332298709262034369096579264417478553276970776367466089659085178555706326592680214536091116537134175776931115473607874433141393426863750994281430544095642098922086314391811191808449435560898013448810618812978893644842715514604337125595784667071628278632398045064867242396348274933404625292986582159199002298065992641562168546123244808595377564022431288199415639141871677180472990305851206452560529392264303992578680055222930954978020304722112516338826346700331386051305489049502224527241667859777335528663023905590440250985914609754089663731298618089206775372599680136502081680715577000073494931391031853151228080139828500369344814656777369935217114432454266454498379332105665294243263569445460498431982679801303231461258652235567022780520385521828199879713442500193215809525512393290691986646403172502371671824178292850309585494457286389009237093539243973555457469966582743603468305888594975401719164800247479303313600144766945052163737160825055555374719984278766399887839562172090320410495507523792531690396006762659547268468670411494478530605484283793918546543157772861234112754832881390427737752541938313973647127482077519824748457241250639100994637239378404383159736394922283812185297584363137084044005504919659865255038041145844819945691187160374249464771810228985673291894173959110429513979564073171190643458184889965149475295695689324641106714220979717907350980505321805002462144322555033330816013116005233953403608602365753431979233408414235425329069133189236025749854087347072529841222062642332790520748903695809498722787595528764328458691354869911432906484820946552878979456099724575158178677619389583703454261260231981999720981700929801427322734134521092367158556046821586929523404867122497447339822711884511418798242890137704909972334239218984207194482160889443811183845755184452924462896660713130040030882387002088579099946322167651932007939384310728683551347670987652248626271984919872323472363713673117003142815542655606572474722560434674777700791656497222140307932402782730282329610098349917673997797164597844813421051557383885062961135072574571190905858146618383675701848871902746438359564858465011196217184748740309006966654493420784903838242417216928624685011810593131121669585526185166946056198851254492380048806611364475474201866172154818366489988631926765900173837710374617457018196056572085477115855385470191782017225084785618268420473961683308000423089652256125448603361587649096486874084381481457717488390927060677940935784547180814287118171935194371097794652356556305781935300191931720418266648476619672362659491460770603955825557178467849156000299043745110561127708275153362863858094814171834782199056510538777511353786249408344915723083337159366565508143517844762725940332481983488902157914449583558741625720589138596659160612795178210470117880901520806580671960663908293121139874687887464483249062067684403455085834111469271260127424907738943627137800081010244046911304870891327935945546320406570446742405106207791279984547913659292862824516651843632320354515878208490474534546016217775682893820047694232601747979929450460989304779902180839039231465562383168339124920645487063491697438821759557952820199162860713384176924082786690426210247934940684698602180681173431072248362208439524915056337626734935201186779040731426076075233111026963331227637067063019362520137712616464470562047497162808569294549548567796066480071775544064718657351638947280810821664856825373457374252544991036365678237282026386572841452153536930600101524060205325296940821460219822455033514827926352416780073598328002917535874205464869808320534657493222505130503277548755679934308162842921102847087483452683040162744410353997304202437644731318520601934462629717802156617669233408259010593156318630659872955313468561523380283638440441866200010198509666527492956847057815253444072744729512895985919842696557395200750549941230767522567815917172524933097914079076512355948676040582924254497151180954225869588561897331214945077851788707830703869144959149036401493222485698485868317075264365288483733785856939469818712900856509581883986417854107352077018434805372324233901263371060196601665291415657455219709207396978548289338533733905497871798235411411952099464611524366518742320653746035962625786774683716444346072957807537812652371331406610167216698785357515031903343374581905801960755309787285694574958948764484807842652476265216408498930216203551463266950761005907469837409184784088653808073799066522475014605392310607080896854032378149729395084235468012055883012095973759249378704746767534592717315607371762580544643083179253493245666848862233082242766296413363094295144100775320318139919506987683642533615351998671500340989179404200692844659203718222780262733819992082090856810764429598187840947936273473493201675105039134325792235185941049333774142543129735020481272260070666070242903209391813076808955773213543428229741942088085629535116201789966538063047145332636737469827114892324670524913676203042703224184747104673903626118531439342685186010873465754314483449949433435441384315043509399557974684525389879919483484339593302034883723940381293797082784751977330637013685755917884064518315081587967146316136968076500444080442739818528828800103386305294247853672492181203735515597142901048562378323732624391145132980395183508552923912089444283072644756230957977141885440249395765808596065486844501014645414035608839301299007061107485468439822734409970476369091482263433249435417959024625827632481291878672967494464874896177880827239705548632385547523248505119994167921667480577202241708029878957475707027515059000552770075044430439994329588420487469185240422086989831543554686492081528382619793799185078329932316159689879812016013252123763570191532967138862564253330372566738792410254107825579179752754045133221044868840201243660302198745847800949755537050851123282658506961924277710300840341610030186854606061488742173821779131892295751032809602937078897311297863891346064003110813114117707315345883026723723270225354928411954523311043858152004052397261339586469816105869133789715861328844436021773920914725427868803805440492255469414481461839431288221634389460260353559226260646920004114541299927445455714814242935995079517762862184899200915137131683830043024146574567426732539929136392881817353430778804280692347558942459207065011516533068878098128909356986391368704229708996797419969850033633321555543786650468394211671922120671354168984608058017319466431309136691119659622191047286175959708554037982096663291494818352895131718468092234441718990950667959735313833390238884627157587324888514939176811214716867810064181333630419553526407464562230384031730406478515959156691778204445458622129075892719316450748921360626439416960084201939706024741081918534493548022798104068076953962523992478612505921100363003705071671838217706760138518265002630515654445832402737776504144179770782463793053752814700003166098500881383074180452809951320647693781849298857971480721319233895497404149765649115707124172976894310171644127518524577921235612509117026282275889137325884629837298492230236548795590156724476146473731227498711065163950847225177573584787757441150069256867933648787489126259691630357590284713148521334987631956116380909546538027928036322781667805451703229512281046785830012394432133758873288462452079691612005255689009331904488547089355271714295935377042510159796077361737974916778517666131649037192354409385227608470437906760407656763080534990220986441692730533207702638040453073806623321036275657599034872461883838653212068924931099983157998362992310781941825398588275892320446453107014318499731237878715227085858953386544435208359597015289614586188323961232716819146453096472398517093108377365971752104934687018398146177644854474913879522297747974074105016038053006993776787833429602599210192831322163681313472533279479099651870196079658590398737833311857566290955199369382180018047253855564793150658288590347548544227226874111141575171463562335933793995521570567322071709669539174082942395647087393392656610929696294128178265988710916062737151573504413668200625020145569260514673188848279088893507156165791574526145762144902485921142556176056402546243250720260955984890369019313389418952993059955562543167091119364021102616794300765079918069257238074983493941229562234467026114999929167042783839412156922927076169275612998127150436856913122005817341068554237186704348107177595676081176374144112721358599622418681940481113334344890005608313396804747911942211054029722383418556856089505137303999776732789192036332732767555335155615342555880871829001917160590373875517335143223780100612407522760425889661376086303979612397803896737585296677845610407344018171436738942096614348784111595024778671266868400403628017602252246632059375960721276435123819330843239289571380879007909858269216259189507504823456644218950162034563067913988268157791803325926693056201497735104607739649039954887134326964441027235271010375004409190607186385394893073536468586625748116393844539023696837168910135350653048508742673386402343894852419030652257340931732132963836530495185747640731566152157390420228954225732745577629612828067539806075151332016772471803175866407923649272918472723030638145083612230261843835077919014311929666864537558302876936523873617927527657996305108583545539652710037386666622632524265544920148098267769255034532706543696114418691236783732831607787733846789242122810725465058673982548380008919330008191180502351824842447183574705452351389465229631407627795182857778471152624438500162346832255043621077204760475504920503294088985275867697684862087120085796321566862208306231868739679316256212294933103774680918608446538034756847868370093583407805328964059527145745513523598853408945398239317176999401874858941421956907312204291490603433093977229300097600181499866123558482519536056767892566441502902073176785958658102418044425001855578933858765059856839359859263760647228020512734998439032583409353270963779204097819483758587904922359648797815891545931886485265053268089550996888753928149828017396467813262323590293798539977892870399131669854258046026441780426222824634849504327235652396554441187797818407684338554098894213630544574722795972836076562862522565217203128807023751439246613125242622870380079763830107163970931226565066575065274807809563866536064593100975029959132775775757314207190595483537003112054240973923961067220935460345198476163039917006818494489386842764800699219120502105552336714806074575136177239333490418407612613478503754886832624347932164327467581655291635006635962088478683719788923309234884562233535302825932309694467127946618068995712784155464467676070071365145274894856190132552158768929171062570042268710072822254577584424913748027187795979499633724965162653974909157492189733990882447918635735858547830781987638932604001218757078337040684314948765374434527642808138914124043880843481595371534990407616673906253183402252774818874471543244099527038972982211775489613274388390109369852002205694881206068609680398717876160411448459246938291099277213225061601128263953116848085866717010561203016254806122404086775350529726697491454106873945085785139886669351817250049055915933025424221519647486938363659772201478391293825321178595426128380753373754822280730577946474566546891386759651269048993537780312694964425464302250834221744699549226474934152516074850034650836652028141875886777244799588702399783854380986729701097514135453872499155784063354902470999157789308885397876709321521428542572794436818931156945520035477116030132750726531686645194033847498844550307239072263992564123139848866108654730827790328067993670796189654739743778203921575947833640301337917456229897818087746247966722878629968082391665345670075008241273570254686347593826689685232107332470563631580361902180263226206942940415735355314397043157971217687504720099235182105337691498599622806482461975951805799186437274468936818182654874422515390871656911950103122401442789751744307028419155256678407248089665016411029241177567436420628649897857504741905919994471366107738161739007883873915558171311066756898898478627583648769109982658851051185356399984076652148348024127052712744645972667504223657487357194362412309143571105557562731159328811782850894814959155702501970994445843578725092180646853045352298826033265941629511697651972198850993943005573883260354948617351347056188094978652337850581443885474251396101235723519671254889740488262908014980262270204914760218846354689939436239840675164475881257386802891451811561376650034259843790872331834272051664744017098981740779632921026783219957289005086318483250032912150092746901928057249228917833995148593580166487855708536937929878212378350368545451132438669950766837858585533429821851810378361257696204984871486705825170371225537644581927073336461131282370669551587538525279872413993671586304127242340623230787739894025295381094922541291617231658551010205185934538298506482746434408837257745990970925088733427882622177039278120701105643544489193733805455344439832287762150967011010015909294779926279482843946930614591667586666073171461341288201121682215131885870848064955558627806287067265029633459026620809062351025746897617161178493410732974383861719614300362375595350939805276698837929868768659974584915316271932024817197715353622221165212242995968222751634480281563105434971240668498176718193784337117483040187154091668858013690943794825837634901664170846820588580901734881005091164452963568443439024327803059380577276088982270713759084838909978447330340283139916532021464099791730843857735251513339439936361100580945984277557376779994726421513772368688870342465682462117528515808702132344698706477038068252782214630255098595554746993819185823063219803494078964341002741666412481614431719692823384281975639745853038998847885167213067066589639111208802633096112686828351009328276980323650476028444598583963790082839926686817539861456981788344664351224167519890734217215696480022810956551521966702042528851013783319934469192197065061735944809829756241511485059090118393358556621638883745101027627413955456359342028319664794632116289368668734382616767416637091488293477848557150829461096440569101428910056255879334497400397423277475052266743698434963296566683353542122801036180650921150604289692163235868217720386847864290052232055562045824024391524382452070024350816658220909806342119592165947680084277251035241717517264702207644336402424276959735247986053196373129857665386760862772605694188217222480425590948691016731287437381351827627442000871797157896277639192041458061874669997931010902767275407627321904376471821545660669831242656618734138723186140252706145879073014869569787109779794883653033112513571607877085836189662289650212976218131489355392936207447159744228386237250986789507350117289869431813004881995569223061724077922573159815138756532781634159364681386879568806053774151228099334271401588517889009878219253550225438279498661265106996775963352760063030887534711478574586882835657552725715466439068185360406553719533685374717093443645297981377165811363338440026085777555167368018768605917673774540985034857447319585128722247476657803016899406762430138496990811178165325001305043349905097289665489527663457081650853173060019681928820627891837209256309706645150471643081293075821406287379430304529448275719235989736839850547839504080769967548448463119075692944760559343262813899131299138975173482779458000563397190355937499509611880695169029829557731235450086107078449144384300109838515547448930931898790917368953938486927689021426642948842899133918486010177746252551934221735461577965572847983787358296815350546106328529485139173193769177334452327077128651994688708721995531603256508940648275989499372837374015506437247249493909418020490643980518369080558118755042245755008483502172710905172822925454777233380315242088982764632854837628396927938778895280459048569051851590438040952906801627164661425196704831927207292318823713188103550219873292374479574895545254843546436474649310428822372627405583934918955547356291577074227495983807580528945164266998710597931931853182930481985746401445590230525406001975934901581874450763949460267697033189715053921767064645708474644748655688177615516396461728506684792123708884683336406881421844365353138936743968659132164123868382689837306118712183181457103370131549132947136698628825805887620780493484516672540888528554613054509404011412572249441447958678306158265590211364489277695306362348003000619986060397365907783151337039145723490976525009551465155738155981994694953003266958120115359471218429177238940448839473255070980166898021694604124039711362173552859870484026166838915570361447551377708842714901317619749372596074650370698307585854160906196244904249500569082169347249414509430933952468585214658869523617437660543487605524191128387430020873264930767327661638919153511281079722939606452415305683271760956766448163381203726694404265757725036394342076855052189362444257041956890003811260054116005941034934814411269754655317793463348374656433314289060738471702296039808811058046329630249847384160576499093403188431523722200081515607413534236107512929247804449953596947330483490201879081860429858850463092960462842899794122917037857253207443745262758299988976346924272573154314757861303879280160425987139912444718841907328060780860268972706294184209711868966390766995198625176326484342478036214451525416905840880971546928110171034015857658342125390149227451361987882840077858811003799559675512799129861897922589830511496870763201028327252428008020107763720278350893204561085622306365515565171554368355517298099641122339402827986211362870453983864853007781695157382930888422807936482570441159681381252923281203486989162589643947720839565881778321408299488506498892916359024468275241451892776011476764619197349469742682975539162253670232246545184272151451842308801891892096758549567434960444305813808676960034448971058098423383014062435975883636285241678818212838259083136634454233882782937859983856714439299686842300508844697480459887701299236869375385359682505596847814451348217110330403048393895647726836899112663426276892502678068256554025857345262936897722412530396221836024997774073480448141791357838612600602798560974226814824058046739100091787916022582493986258221907534136384170228547539527627728253302338581849545791028713317617524808172598876159549343283156857251267784223132183841924440516479766061589748855242619905086882363112138640533899749497548975604273564782203609387715351727196606061251625548904201517459015369299657519670440035222556173927765148809723085193108334489440934065436410675127965567109764830982902200910854867521511309874204413570792881903819307562477953824902958415791397457240464649971200459669549611407091451384537428908466142086087432554210956453486207896560604337049804788762434362703392716026153865247305431209108221960443224963971034188673002199228545615148463943895423009146783123951232485520242951396431853831945132513452854622998766450746947065876260673346880131614293089309757997813285362726169541901904542436090539488745842644209512282435954279649890846021979958962567504172389909159021697677184685295477118004541025448484241740131756037022450875118805419749519148080146850340412213858990672364777290637866989288884106754931701191473836501179098523919340422527038895423333315314701695417551678392290282460094022657093768927805898691442571351579660647931826224898581168691873924170873196148095362761639638150906440671447264195292206373749037741530493591107605267306339247111978750625169339268857989752396437010278182267938277828643205890543565383809022440504761829840804913267124134132990866758120896577197784562467306081446748535504272068682844217825724435568546576132435930103348778690329834595925331594719438961491663332731187267742694983980014027876566636023623406912500913789782423681465932804138667812432364855419252263939117632253261104710114195013870628738715410056326879656574508058006325783711627793806386258656010645713264548387672134317513771901703904762039516668580345685854053140818606156759322316342937794557672994114166367585721501664009455912232001304059567206577679399619758817941997246924945257375453725458794201664736977895181703970882619457139689339122658380599901515097438612954929448956693935209415158187411331184054984884072733282427410390045500777739913449323844331874364278297288056054310499089011274773474476406664751330783016971612503353397704666368298225348687329072927201268164815669731169298051983989418583114053432319000752115957420311957660229284620203781859134260232496832619470716125616151246922320589399686115371131324299156942526600935051815688858367911409155692566661835216238509430315702090709653016561317057294351452702720514603054645550718333301174462762844802406962599026872206648578259139901917710703145184808353728230334552708350506019927410769714325966357650861202690592590480100449390308334038652785270936467509585309361320361486271296680350893179011942598525433990643975854308876318395707536650449386741771552640773937819006214670180581793686417688709995815505043381947502466201818996287105742921019756392964225664199144789917309642716737602478798573539260706016412193071848263020794179336972872887554077158834210048850779045993490403127777839468446939653826015957798591713187843701163086084305062172348156571893086349952622392011801255956241780562721788461625134264458068756114440010245820265067490184285301940130375417033052512610076808922186908228886887180237523355962833526055364309694862180892366705547748590329570169830029574405225135740629744790241466625637234884018876770009038026840667419145294868173431414681549441906064491634878876916383952122569805608240652241784277381250546985059703400596278353314008410013378405439342805994584681546415645767597563822801100268631725155211734736143961400153420321995949497700620101597082930920782686629076776311103289395157967549090152661554239970088963964719743130887751653006969209246306284921764278505495606629898691253491570528619945818017426850761292569385028762633195518992104518737952373332263856039022844082918123258418637460041019399917368715048256783491737033851914649188519631405070632663521896695112362341491570443771420115068095558956487805135435626281317120843691383545631321758553349648510890873590503202482925614968686027556407766690236838869574374562037867943114419452392649447735036247211901449423949381228479518183599461401531913527383640595008489891391958653883354354154731049763092202725214441596943707747551519946483412990324682866581217620266796328031507478222275859563709218688719103400298779906244042901798026150939348851334856714656030051774817758266313774270758111754392502025172377857684076402190242544046680739765288985442344008974778868481389614484695753503848724964648219472758997887563862158688252852204928397030302708167060625103392598446391046879959146647619068306067088900603787491872409906347504558323026704882299205571008181172770165902317304734223017194464998305558051675267866392015156472405723957901125514140793250435503803023665315111351041731716975774695521065629181984041267051636295104265155230429595563373001989977803600867607871402631555851297026101073665082844912855175930776973056018373623100388574101842121218000475646805549014413461115644318258827676707507801512325338368993997024808532688142164894327342497780300931644877779141592292214550138705983883936564654117284911680164990462481766339969349188600128569018496059476410501881013209699473688100992877255339299393099526406977067832469507624826211844477544345898527036613056916761338443039943071680517710937672843907241020976660402226692992266232348803507569509374359424112888317922706657581696762454969866903922857281871361217828664062722075840089896721430396161224701645372480243880608295205668925601932542560168131585653075852702488465389758693815659084970231117166943168674142651504202308685196507906913676449731354352625568200235663847393969722169506474954690004741829000438680271346116279371314848244428607422055064335048527088913054201407246412705784108504004415425393109955913717212115481137774542330595584753971253568972967633493348074775759948938175450928264159271848948734501745844606328065151351308045964012219707970404686033570847619224666877450275369869829841535594232158564591269056994265891431908854296398941453072788492783869858451780418796162566583867970969732517167929500320794300621517201590963227453897320804823386108544882784365681846838332691213115743037619193279086289048310380829787220132109022709379189249854978439535361878075860497598438585294275134506470177007968339225707542304392233137821422647484786457357920517218236964629394992847923440623521494254329424016647498508384055213910056756079498208251125871131180094385506921992454573015734642897559180521031671467367861596349672224744832766090590007595483630538380505541707413185803932482614346731620718751014230094415710483879872310057705602005379727447199517268897844366076129734714788243205716370932099490897199484901276365153779573396864351766473310158470207924304803182828732857478814793677216251727665526342307173165698721304980163407749054374421654506740863040121133328530184146106483859113847469604116259984806694511020316379835111771672396689398284949858370354545135589232608387233340612129055824860736043887113210913190051390626715806012083198975713006401771330466237226382196204634585567041815863715734845461183211371951661151743504039853113278621811870417184492551930144398556683122791294728305872237734009045023686754855623387539078211781439168710280158495692641373169075209936541028784940632878665041889280204291116681445077232226261101680733346585287580252199408481400416834741983205523267016863435376112563468910021663463883732860998642125920086838917432217349603538594624928353827344243384515995764772756175953130850412585421463873310732693522022808792322871182621346785782019459766403693052766528951312208232694605979292123326242846971847910632831485931754749943177068363983814529981147801097927190402629021078076884465150254164804455958545061629556749338392506279346643181628613241046079274794144684540345132756006080471245558603754824462371347882967294280263155553566111746917949401840801948203559812414929255448660382320038177720453035238948084423341162744159544725171556349283044073610693745572858474118271870801771868070963019138277806259647833598529783812677305569338229369622502893286468128406072637167943127114285160165412789458569994995029327657731929292692646380117517237689728073346108822327231081359068294497189112378098833951839143832134859739457522512854008309760293873782183636540110520766299651728569097748581509829331603714740488066711109843019372084452407734324681709790557466513756381898918895036648251237453739260244310961471134051471516881377039642229314717713048798217201945147968573809629268870388312264149827062547708544223391957999554017755999472838245814388329048263740625935969582485701998351840720939762493828887947660900391819974444407940925494060163136816515486902169399965681403495576955671505831113342693256148822412533687980276385820673023351303586397432793723827297423567951127669380249226132594423262028796297342849771629629297247088130733431644331059166929756354197426880708601388130639047116588132338693600009225655942284991303946559266608911486095557762941521310931905865680782788946546416682668839880658676458175749428332102774257841027782356224103734108946954174359852117364631119520364215407106109281659653349192525721309018840176772639117297331735622475793119884487702575159205650604460425324685111869748738104552052073864090840612136354963765987600732218131405223523490725617822035385460514691886225204536677397033300834101298623607880334880727056799241234950056869353019364960084644992171268100566903093117140695895028756435543683545513779154913551416349528175824350222301942614920605454446273998994452275146074494461893981977012124378398857033331955180480084633862657476489888982579601463413835078778733249358631987254764398044962924946964082105898993099325604025992902125206788172969752058947556011496280265022545196852749668790806005468249978482946976082924323772570039363785484577719621252910364850592763740970244634621881605144594200189335253182009086671179941029521129018379271906371998501388628052881544969976350594837205643691110149968453180101052883109781073590680106823073186392980264868159049615096789887136367873854979568570299697285031449299288811894278090751369558400899248595224356231161872720290591307044897486249685444974350701525063784043272539550112382723865334440517513372714383921147737454208329162409034906361289588910990491332183243471874350319974099101407767391956743151052054065220413044952510265404636551313091691992405485938839506171734595868246471464981507959255791401894693641150621818007654322240313878723452943281566077139525178982716808306289141547138876986768890879521147593031672507736865391107791058130082899956164859256662550617062813988040033431800700519919832543403823355246632573330536054511653178182330808735118691246318903714268475753683808269622252140525718569473328511456022880902964263361898732252259672432287294860744790835790589537148294554127902121796010475672167735750903958302605308567431539289272711322396925468378703917602365460251322030731203969245402923067046242573431272025052749004953262712200474574003247279903360455121922610756516537817741315382836679149930907939126621825084102134086213607499673887207375754454293386990046348641818509043341119027157515458685567485463917040035564100060837883203070868010170600574057653249678669888054576386518839801572364949199516777400637449652852935934969431687630949524139844645516728297409838843653767391167243803243374887073672068132558667227213745185463736162640405748164052943452842604775177663124109170733134352804207933632276096281949024787188859761736284400797378033694828113515480087020704831067486283086974618648961791884939485858706163782827555774853505213500708790467780600338369348504503043699923007383832210814882985311627400305895614446886572057263601898058754272707709313519126098200352070402420862624980208497568974395575456158077453087750870388581604524706916087909740705747737024397075022790131769031349762898568806399365741650782903448334419490169565585070311066479749717766684043989008747556201241478234148798520333392997469101771530048193657047737013964648015599159935541922745441631369498151274851397429944954897748638756445891075349852480628669427144815097757150897012130903173587353071903300923986637188338249239766086314733733882275027933727009919862256456629051621685851022308468067153556727846304012419243459984300648093999000539633833192837781600558402250143253847259664178898528254359760163373131838494917252248333217632011604217417036666794686972122835642913326852101980327340431835526311775785300089744296848721235178805532537651851028873122143422304769317981083610327385964716221333089096782308761119742200594097161433382094587006509220592260935137929273528693462596673184353125369916100443680081938320948408959540166623504012153212526963241380571393626056430648742029743439817108144403006897530277466117867503030645466448731407011084420921947535988042362710989848326872385546325662227181538836248451415918965405689425749851803556783043414921259454426798467632449392678368928009548160290218539196700912392395227499368384083978859240265059960916318690134093412552484377820887913077650271100692722032880618299249743772955162075189920671334538347047977028887527295755427865001071591664271497469008324717667087210155510673917507989571087021747521063055465841526222303271759020696548453583977919440877817087888244730329735726419556169079648666028242100952781141893223933957346258776160310068479712459655453138125415511852426103777603637367148039068261950633582561566939399640135303374517664602394488271699842397206976253202762300579788411063786716435068513113335866299295839567535849911081746832653243933856502690947683401350363908320027336352111636964008425735571291230469150215963916031545798850553242315989981248826834357042191745694924733191707934694054030665523721236842569805483193358443565911070539325843412587082067160996833173153941574884635294019751212077959137085484322170820058506352227892676737488310940379966817961538824651151183585019318461161600072350927931348209462525663528463954452810903371451615362064004154453044565406573920118851074090099677939495434558524151447283268516918208854673690124755685133853609665920344043728677052220080693952384110141150210013587767601084398857832611586506367990214983217426865961176767838465186391223063339609997666559379895916974862535733783982182294580168157411743853272981644643727174858706567319759774954323858428404163508501172549872132045019963170540566794376285853264350612843251953786783954421572154982111152572322896417230235291289655973350483720870442444680482869056848685340972751550620980769095130893503281239569713772205439285729432647830658303689477691993743768964122077405487785628289985958677792860995957369620149185752185846852315414734430802067215112147069530693740718791301370065414966415027041571718556567269575365221013586684938933820737471636033867614599318579062150526481807789621325391758781318989811028344836197923222833406967688806214830804441400531143390215535678238945375224396597002905129683239100524548976028901392225402492604939711798867907328086815116790126574532980951477968763135225737404198146100698029528410941308332206924063072512513933221330634648644800896761825618391387114446892384827618898820357201038383866182383914679909466295399658200791085448143967933264284238356569850542669378295610302436053109368506540138512581298519392836946156789280204194227765450820961295692114520587554927608462946978533309512139750593691625688347887211946952523621002258027437922033981311138985510175731011092916843984093369148696512536960054812550113226088862811299021957990662055744252388745761788451668671604740649626284271713282640441800338208585338790551078810790460969532852812828411796350556046318925495531369354838613485299764440258586349820784245492960619748900993849472719979495934405415476146083384938143127685060629933194478397180401994233382258388299272159941872467061810364342531099078274059505328691464726033079633934336314780713054742263867569582828076602999411128661564511126051450588655118072789581419792617330297846886967746068232777677248671804165079119048829893811752959960703263849765593318383082793288228257681615721614189157439811232051904691290997555111958781119054962077038047818357412090574187412218101547992463173764282392629953665222110937357013769020461377991644826434264478475506905262530510677888808688746781872640917963083982936115635863240618105433857643887342316223006880960061085937388722027442620283061407071538964364334248087534459206737983004753926940013652099555791587066635390256844239541119357351921831934636623040019729402336109843329327922502210366625895585623915406157175379630048682405499335486037219806259348569536728506472889773884685206631707006308209747740094673895486210398089898501797267247004142560377657270645157757206166449264213167676641568952106894962667197179732622501508247359985650576869231744119012660392440977568863763093216836722615460630172805316660844640457376181602555224237285170035518815321284081526120297732062546607939621169609577120453442273570930871605872914905116532444838934227488407567396631443408954834431994244375360991632031759932565238873292713851117382595245235929900190478299728054792719165440790060806771570228592573027622471503257888463529621858558676921829932156857185391289062153104852599377250841557073469277549042667992446495905341991880718360705508965051170974872445617673074237020761138421367075161728605897956269081809916222809467082667691163874628866564650051162558244783598886582345952703772801612410716413458498840641430644260056944630073630699393960804282645134127233186431634473215873109380317615673117707365477703468941637265017269066730698242187419366609064729102858517684208972900353133858166145699593982761063394131645138575589144559232882650991246843962317721285547109000445339096494873255619455564868403282824599173213181643154387676193540101172143429387889979980348154305184203011707711748979009984259150036694976314668284695541108637442896112175569425104081258227495830746338127119834385381356085361543715583136819002365304490850477465593886022323408592921183866467450642993789068168929196979443927921381142806505460326729912302069707497361069132344324149049817328616753396539235737193112357556066945143251153650041110940520162905907700699887970029655491763547563015317576744856710526415538761303215910226958619970771765749341873736299135171535544358716951579094350699373406328682849921096745842978239822685549395183740144262859249568141563295594898073494870648027061088652479112304647436395786183130299323417070234265741428148008823888037863464799765081683155416551243981000314026690982055083238233141189836832728466297260852728815495672153622661242022064725828504038937591645042909285629997550462334867557903014127845881806896129813377170085376828637575466027553291757878426049271709479627584755361697510168729790967703601453096268302099116908042053205137341006514537029576516579435156585678540512436011779430400106794635553727836598262941407173518930303105908836595755231553353468366982862223645744139123752210870403538083683163880552509655104679650282695189609082900298661488457636905310278465831244149289723331860895606357876706954337941576863393780833155733461125880648512576938886564205840926465078894764937370277501783789714058522153199072236460657367321870440070345355276816641131785735491357776622539135453748652284948051922478691778697036346020027647407329761101408753647558337320478312738756444106483368548318068747518969828146340818823915076912829694737599865160879876900422045563412315474719513975202147780189974746175856868965533590291196742656433064055559744772277873684954755516870172984738955419245396079859253514689059067340710937577411875848864736150361159479429347607247809465882923503890472579050718307529754015841048267392766506418134973986633848942220383929495477513556916894641478429539652413889611235736706213129255712859398289505323809409139180439768683480993412703508736443386110504135812140117901824561554452002768743420543087281601707088175522696762934825187756113328368412934329325412860706871631461986161644234152099916035353413638002994414297383291822190148674909001136477831501116636835329547573741608360436567337124047640071533956960194886276497077466448549725856843847748486170657186986740113085644710899334300248114133769036019543827016354380611145104668226161413775122841760734067873883391632814221522263023090121537667624455554229382598655775342750966405988467399344722382450499604637339604817083890439576808753459501809682207470674535707753956186487044160230308502168863278547366232740598889391208962722230215868191228814488839447207172419510086812345151561129938934148121501679271257886825583508338050268055407883275983170613165711589222736015728640621098995749950312653890805196671563258815609365438713021165563714237780407006673021563544941621396777588151739591961203631117094494042414198175550695672354667096797343335391055506069338182386973352419949693307169982521771669480472558624130427088621274164101774674006471293146486702517678110438160802531114903822689863010281756729613195233062884988555382964915545248872624688204635170122628333805753018581928782845311189849582914819591264968869947016454296419661339437079683628044245457562034701018755007057574641485100708158612656068224139456804760527838654907827048358457182203611843518513917791218012959039496799676066885026932901061228864842990999689251462933962361964992699923870445517882781025646788831959603604200412583784567626996849262080188923905947086131439346195399935686811532259298691031888593989777751356027749396490684378822007748751101339043776337832641148817210068266302868356618196199733020739548512635246570592411261821993036311368069339268225016362732724597276981156061609441622780058507621631846416965810074986961542821452694519464868768463546492004753887385787850713432524851637675448077896323477902772316002796554221313064072396594036993177403446040732424179888013176276895829293535150684892373970714780287093977882033859026630690676481858817476332427788082226121248014201318787764746311997624851009808305044093268258237864233378177452226569323228410333622023580187995337423579320566924581812606713986099502310339551345647507790704102096195656195235757545969670782039651458999838117560882937139244444280185436422779849389718091089915346187874460762455959324782167527560267653323667066333088895542186867903391905667622181746182105355453148914417724447055939459071672395680126267713918352576448301909898030035133701964007659542393484214774890112039991850890967570117081273199133565592177880303726653802481476173082567848151004254708889752628595045747992383039906726320270513474137409699866899413504295010048754686813173085137332390231070305256466274983478896796998590389991829681029094356037900649071522472751825641629301575464708858713659571543048816920787992917115513823360442167049942873310282713298742622643092751805029647798872950202876340392571135341536311170606251335432460831454111146376060362668882448777628728987950219831961989915941887623327547137153480432846484376080754896652456856177860663845463144861523377887657066220301345082071350699081223185164001785682104869600903731933552981578623721546057214801447218175802640139090155613305434409094431245947094645466612970960596574279320915990053645375849854370967432342959992830115860574473501332193171259421220095218139144036605488441813400694406197411607305722988686174875442291417730521735749009690323070281233794850066010903589291722565089140168946431423281756550640512194647533203626559873711344583993866739408307282146490219754125535883104873952900085731995215794816343961670474787268603176328076921278452771440211992859322014179197598188408879196935109284419623619009466199567653185755331888638297315232094446026822659920646445280588544044259837521304642755713561176168065904284198670750371565414346087582626476859956341020671899782797199198925382557961120640752644143102645104054092850026513345836560200005862598397248197196152869732736019336645116399214661234544194857457855109376687697979266943480008926045418344141876717642333670201991201873233308490037628065826461372666333478045751936328361014282051996874215476257696940064813007646805186313809352082262765606410122018221074486968418774136282538349263472164512274643729379292374398310728859840345251103626246195607989850523246733995658028100861348825452736789181212898622622728222323361657276482005429749955014306406079589077474468280529793258799178089871975918096443094316239717807532578741736884400676341593711471505645304521393184935390180289394910143869837252954185040613848614462448771758927648339705025226340829422355444457278369010532838725948207636341097322135200875807459504437101660989228426039609875732514029148176377242330915099925912297504484911759314173772744574751719962699241868163451015266388059367295858897193375809004730198030382626960274468823644848047311364303761591059695004938964891268202648359545036040969736549809714233534420426684707656147319939917371401813748204274514064742723913043003929905337203847619545088301908097640571492655021031349674357401757461035421227891244791648509465333900753856267466056870107835439876581806297980356574840521057630238574571927694197517352451579758321390819767736958032160915274849264309528672787460111245738211766472762867024095418478188964052717841807349807983561493073019624240163846371836621632313668108252330481992028750476966302946051713111113960367828178011642377317821872650539341371256831877894372434177956926167319081891179175530386368474075976415041706402818012625261864632645539987773094678649135902383512238411543967387224644111497257448983083787774912393992919288734802087677648988736496098424000185182512870992014930606168675462051618545677734089108416104525521493628502897962202484573089247360934601315816671102798215240597455303588134333035124954288950445087978851858645362482394212501084841344923333304741851965278585029873140837489459771648056156157268403900019381976074602260094318450858460560542318435233826067298026971221140331362672947434791206867434079180009633156515946965815689078174715356587500154978777757723035196752488701331125873729131464344759702593941589325570815467917684353183297233880509350765325146321304060583044450217060767987586963498218590261030185906104629565608470863688986757105104919761132198361086328158492359846507574596544786444250287380610802825870516465901677117914613984562353428245591193870002652845495476279851556112248089760344825281569762049704063801042869321060395055768866795172470102923378583446782803721830296968156356940361106039339826782014109821760674353360177819855479804628701803975658867238559192638294075151964961031364569749043777917199775879200013625684233962508608704075570561862541321587853750114526514620523376758276860292454704996898379171742738418130227803698832058712726495575741104690386973498114054481389008184779823387366169199605087518163184473015831254916836784414641484499647130242625331555495754363227906411122798447818650632899548616335342141772656950531748129300691900542586572044315185195270811454751098529229115864397673042426660113943229355604356890167507716329233103475696110799994266944546021334147903356339426125906736533346003151371252556323280465178617981888575387782437111516845123604983969485798638108984110931102351686121031840922906736747276457976030087310072210602321674902503540253082772224047812474734605250614270008622947531946714865087498640931698305927012076884486480527969594534853062651526736620552403478503036193113904133359266512734618388487151305061757414624054068409429915799671014506687636207850387523421119406577635480491468098772859564553015520918089678332560830500257308132192973942892718520850332253841238044748010480795989628731060369778645959935738567368184888552911053292799426497763606355922229658886630031279819966891392142589434949028532678287229630482835241699405148091580267895636667641740000123322831091990081642690190305180396699777415529014780491446421725546698888599154290196945853910810989628928865273572927289989029784202740654254008565200226158277593989034261585554851971307428912536084008588227281241025754860210628947908025590552998307171125621556382559687141371645999753605178766290057963243138563034817729086081935794330627440234043939240935320934559831761243396985585656424969704945704426163474989205502872338356933837935317055464553800631170138288971472240460386582339791063593812766569721494764411883483565709593020665886553088348671005295856548508972531866514488294849628562098552194518460336537668855829687359440527088637358066852578809879330258205748326289717440913495959549240446107960394218848845462909449790811350011886960894131387041362718643349342944528405643435275737377550760787278231168001996270580788096670688016279113203485357305829932677215832364444206908085075307833661731203678498144607196770923241336822727975406585216497596733152713188093998050952232596731889896261915028862387970875036464420875018757514657564509237761934285608151035352366401527964716516524630455866266348313785573938657455554578393796182890072912988229018427507901445634171267092535195113739226635869485403662435058382202356369011283509774201712911161059742889605515188591386718557877406212258477441793557032747601771337298322818470388680411245130212129043868156937394937074871643256984263922599223499848736310132273728611102133048498485207429453310224114063428580779818529004747114996492521069034017961249392038877093001196130365752269591066887394489236502456192698539996525137138230810763963674084177233286040274655556263590964099115723631423391080402154119422420119271593959326751190564290069765046387486209715998465314709941763470086882753980762144401584345352156190135167276722954132184341071291138578851590436059308669583516477070450935887551565386516685084367086231228155505229659402564477814597236921473230630921135984054782604764152710082919881694922595009351554128706872157703923939839085937725950944407937282821719612350273191106021722822405218713206049639733464027064055356536872415126403938764356545418801490207896095568543433045697159040835067768181545822682359346762787084079679104616356639232755839129155748113740509611657647541162414579034809508454733273532279621289401814249414355398481407761048525184717814142640931417675777770990310104603725865226691464001625430394224249504640781270563639012592307432643213719208021444370252994045176573242120566889677953853239414645213313401695619308162988649928301052089317114632245813115741244271738753035359455639532394729448721645940042252366591114166408771705218860218532231025225068118820462191886288934639409185169546935052318314593826443029862734114356642662584562577055403265034414350999549975226680487817879808983248101441296612966028946194719768016452497501682040025999324996900237781759362797971523809540036744900663320181333449226309690994715991459464734991753790773894776061077499440103858088180925919020477199399293474752832879633464635213156500136093304492681779731034982563010919282679332799203029164702112545338901247806893374230772813104555855284046349668489217420139712682022057567012118144765075676894104664057132681729846426162651436766789367882251347474229121607101134916176170356990338226554648848471550231203680160858454928179227996260463576404452568867253177638591375904853581788915775449826602951036675826974037317280897327093824917589278711613739900620645245944895231147022131804975481770725057971143978316177010865162166041107171048217863270876221196854770793900565327963036772872116543756326220462475926843471680603292789887962152726963257844276117385176806017571220229738469977107293248148298397342717743776762527119144756538137085940327434541240777935911976927095411546859669486505394441653657469555809096405706825619654626826123044254870051161485830971863267054161379428586976482159668272242854101243588459408717978103732473621913682116843896978494563820880378408052115276280128826721770521030473070386320021502557690439716975080242042100167076631337127725062876465067993877325830388311611384307599631594208437160997625861123799443999270084145508879114034149297435918708395350605128046771321993124621002003598060714346534142524130144944671269472489423662163826679654868628403581899385726364320497580949621939419451305354018344352403376686869988855142474562773613323988379313809606735457933586119844617503339237961034795099426756238906683275303320959261651133641302607293029370034086756787838709471987634582844610492070677673826342583639133469825670165188578810535371180234708800576259877885021726605524917874996684923573835575534645719800259320599642345300803981915332789209361316796639234691700845222214623180314096001627010250582945364714375298131000194866557015682356895270891737247137536311415956078176367925432663964064447649261385180555055114852212461598020604614068951111382326588133977604542285685100882784247598201531756375476709062341459615200453207969969934678444124521845193421509914890798499297830812730193806108219870788290322274935450851798122618849553221211742561940820523988517920437817696553111661926795459752981552555444954209668528076241630246294781048993086021566203604035707737315198368114365498026339904518204379747799096649841019551267015414147369431555656943692944740938024543648352696165323664739104589348879645812520101570859427884529517331912051922001857580274861826900751614915178967249923594880228082217574477199009023673931651737114186983434753472744027366484602759282268479569344829026424625444216743859024471837309757919614769623640107476253029024507031028379940974866619323305133985617786174540864722997857327449372824290340818606905390048506128788626041466162475652142375161981725578573221231263311785350027840879256759585617612324275506452601319075501376087224258751095288686690665513858006417159370253033771517988830395908860898269716218936658459220689459805742337050729466159742177831275032747694604544377125433443464720874093731883799462451613032118031606275336583951146053661759197207466787418818351805458367624947932366214214467491008998805706005517548850993594813173941371703211722857823766284943303549299271761470362411790411257641028595569494318999226746921834450913829150501295570398587953058251737033791314789818194774868329989101661256259654107860758992217930985855012537697089458007880879447305251231567916881195617699268669389157354923186516178243907024148671458442562965275572312995822268777947913623701218543279949468305938841982224322363683530876572202661836206146856153125468740564451149032781591619422137934254673442689055797645554293582767958699280901431191863299998776568736926253964832054271390371415045939737164020075524083446695319734880720193525309194562550731469638454872902659039117294557356523127068785974450762910046763686283853489169166955668949072954868490379866004048804655812453553869307676719038228935033195854194937768053713481584284497607656344951463799696792873522021532428728313443796594729292404209357121821224185079280398369577801322713045007311643132008939920875255724291742921469335609013131750414234689639995140777506376782050059819248482852831362120777652043010846394319898638079474827794427526559107282536137055445651291568457426596818550476568778471000107724707717815947454544470235354878799246139899853407892070897253629316271950568555379427236374965915079812673212581223673801660715924236657543952425414129272706979310811376357964381773323922875912778968421134745472027026760301975140121556552793232417023599384662511837784074786268081574276122443104307649553842123796472656640222398885078209057490454094906234631285199154220846025249163140623266343689520132857465061911064061452227593952882363055168657672307911467286758172835939762297746404825227633502635200321694903025663630039231496301163778267525214335598744342738099504761951536525381333401307447328096281371332088653619491989194050989486174788880533849683007306054391373888261272899671016672980369134699940789258258199476837982842498231327119976638806234147361359468475829904997501806447564410121793585701438826013347720231910522106321412122656733587163761548869044471611835302526560860474803889660430767467333113583398570404114569673761847258435548709082233202417888582281599504256236487169653544043387740611437817311223619077707992047025444626950523365266042756509855090689604823143995813293351143928266749929917573233755524355530750865360642985893606729525288440711668270699194618946813275510617745463203637274994337982386329187000094656913367800493710463697069366278737990982324978155708908603988134191582684601230752744491241379944665345903390152315574177125827399351479533309130829501199766163871245440045351975186720632374406527004561142993265923782801647827015932743809506381020353253583900012303028870103664571478026570943100850464545662231695565512223612752562736453446465691617478577314298854761015742047246667412349678337835279449262191863523622819052601857563606383353956592569009356280123639068315493197376873164710196469061312404796846658449765628561038804283542721732239269349483813522508327435207130913930915333874705144342220526819086950222990203884204446370646681946174926551832295558277369838709668924087372701660610977175680535581072922867759344662306566622260792035742198660377256480846771865714392773169001922058412505164190889163219813290913097720570878680599878798341803508154301126473333207752980110823610438625456059692613338008060687513024742679299577998770192212161688377886977920561711838392613198448239426160511797050625630851502437167679309738591516416708242568991004372865885239358793239289698399846900814429893770893564315964381235967140371868307114485198899808315928126212882903211631482320058673174301183030722859502312710178342387875407066304717473735099040530151322260259382103727815167865376143606938657496513275572712477654580248794259637899613079699119651349065324731295889762746991569075127636068807333254913196185577701256877260273259547109313821114256802404646972593645323910989530753240674819644267451500893924041157392935375637855800243714734022967922035297981204319490871657116703281298193801085996704723432627955264015816850569421606909680102099928284404771680739219887381341961882809336522872794655096048473829921100201560444643601946176841319071321750346646144361463182602296565139643746239544103904347397668437890916884177726463721507654638882716716966538948011477240468282803143459675850228807091294449158969249708862280726424824830409487994824882722795403937439599504146707946978019956429207640766127669281753516765384240397876278829447495596661529818078333358034082738177328418868028873863178948648768960959522909999577593829990615668386332258613810253232117948628861152751099050403519631131406082162965642638039152127949856419327887738653993041162919933837426971543904113968233393202185365998152113402894678858497426656658085658267041037552133941724192257255692161666651539101590300896613779937434185197573239310725262555644511376824308719044971336609269665623400370657480761710676726096608248013124402430302029737980846169351950447389630511869553158879395810537134875875262823794869960239416196178422397247063069020253931681033769236044549862808844254056269362599673872258102060796165169112685518629004322409437199319851043770860396199911150162579447203477979802837140370502686497212383401876550283917585423939652910021390473175192380571095397884330600345235151566550115503795589074399083501707165146713020650174129902226805988907314522200702471143127757181556918941657869160416321311670388999045600338393359417255467070834184189345126018910352092383195846641402051778665012428967240423202763203597884911099531086375490447103078772411999792791690560686598333480213990567740326786647405023224039454432039378430245333151036626263357356780842678089633197311797806383632197664053800256980779980170240126904071628728898460628160693706808503424227642357002204591174377870608689252622746647270148462580192569477403518413646258062238161431600854141526292069999637722942694341335942611137383658407597543254195254476090781802207957337212740989518491210717341476248165972332220043974149570037435181347623626657174369378131452150353056478876116605942297288287626077936408467293698590042706213150382812628026895608832198825584452597548262215659496713851486527497560492228588550757491057256973537150946118961951014460535926591149417122163793050078295243459361566167380456589100028519100770996313785250807289583766211635097546649449798423345823174939995592398049808108220178119397361422681113041183038476408218215006399812246426782185469217995218777836315479365120192411315068713772475585913229497970344076351908820714733040961503136354176082272489226454844392752784139285489667393796113148895782233664818469593349190036694007697922159311891517504322605671390994986844818386010458942082779274633576702051185519029710151460266032481680736483003803417593300291835541697583590863611138892593291009335455231553856972712643152536896561699961377712063470545944723889224743757783277941190438246477501476300940929448824324385633140940974051479510131192692650299959671789031544146405430036626579056294244217592246407414633950821290178893716175443226365511220523093978384349845055748185138964530562915618852362883841797964208238196789087148867485886002716554451253082430764918952997451371685003604087213914614060208764376895150810752479039014594126382045046784109765059907884945830321597758433743193845747775296542912890550235229023141863896069645684115227915824120021867860519429047959692266564867789193902212113580635831509571836946972411915341027833093698994058410186894816652706035754182051360490524340919594621376208839531663396625989890978726161337008838174814244559458670324626926866765673138385170137595323067677981249282529021370601745372563748836010142536948442409181658771488993090026943092152108401344091154985048512644604326213945952245210389297245559199206875431030098526134883819392546037842949280522892208347819637286451166051702154476983032145224762230929780580799143299354858788544255209166682479274016712963189542273832600817100975735112541210988931367861977358926624179657796007621494603768172461743197212328659945038653676328874549847859593225653360183503021731768246010655026960058459539280178845612036838347400549588489562273808611183929811678688663205953178519224980186248301384622971897622654513142118777583011344146966755456329408841866119647336950323418078168330087027462117615455136471704693851192626849058954780618903411070226872468243780423749568980200520949133869750818160679139603156842252518707593951908139419196420394193189821460114407236596692420753669388181892722536611642600468709062020251259428318751002729604723341645454026210939515188862005962510195027805055212019565123187324755407867150643556253529117766210009177551703555896700039450392351363757798652714603937738816453386998983956981125937502413684595120807348899354988514321564229125067469901051922166527365141169366494291822640468741903737783802320819808123671727709151119081225536045712670161817953396185579230012395514818885677048702239511379619723428786376499541104288653547486813263406075833150209850582578690812636880481534308564304997447228387356615698533403279163016516479643202809577751639222391937418711113219274319498257742159467895776283306754763903611874389361570722802942628284551366453518379159934506768010122978046477971964284406670488138847421311719910905387011877467463282230981025720893621743617280754922707921870211308498977084260328572765440221345370899876521967030279955954338919857522095282602764767567782678893843213524076034714004253929951751827665735155022014339413130128185928994689659599257820580446792849005198551025674972940626550803669765998970206138023818635922725470918101635878178142087573500000111766657179433654696006755564340574848942804970807681206373074320515494547437181310658408402133821970858538457288016855899070498482517528391515637826464415077262378982003449865617513264320712397324827088622632880623542083673950637948222865186586030345219971655502384086763498866109279738875764818529664815183751727107419585554394697591751149398958266337936968608788638683631098404139167361872329177669334183827871098321075909327919234750457215515629986767708678661639504988641661471372346168479075669737712273351500466695255523102433065670368757786307402356637228722797387091512242784451350223253380662081284875337319360286088024598123967101812049050641725495203230175101852963916643046220970373273137697253993166024223940899033837989173855888893527291302528630657615132372303876804980831922020479378543364186205061224104338159998254863025672234515566632793544093096512024535525604181048612066329452373983272246938508101502621221254812885226633694178465344452595224256018620848365969755415034006190027871210501436724250257932392609823895881845102682563849188977958293411287006972910541050559998921354116928063699438367086948987817150757591155393840958106108038178851017405327056939323011441052004208944235487740691091915823154566056269803243931598173621854470431429134111762137444025858479791736596010500711286894846759426951662870972432562071688450406690760275391185372947943465349168849573252915892453003978752350943537432236818170388158906725532426737821858469782095246206882270062725730623791474926826508061214680178842164086666186563259746535585978022305543013564693830874494815209658189368599541749526147346641561972844517028041342370773026293758144882329897451251987317019031005267479204643068304139504966400516711163119106589288923326968390649417855010505023635820848969023528198550032469968164541023153197886961332388822950826531830298875909781443946278077089952240581099186032822458021283848682048030004638666335038163508522217112063149250312824271045716873465200062969575549720872463382263379146453619342574490816158525577125568739343441045115263275227997030678292376846834737099108638477020673661065938332883507968354991355941117134698488440238881806357816816977214354218079427092947344419145672061737048350031185156333715419930807129164195687309005229724151617503958475891834429679122115629742492308628848323194621870649695004406755052245323226783759308678214983374386912805908639234888605175552507520170346651550490964529710789246510903952014207028506571955417991437524630989637303452776744556941091875583228825611517666050061771033244440600930646194544965611858055391137513932208851635980389616022512464288542004825692782651912671277929140914795890361557743169209818519916836008846960507195425766603384507094102279149855294856960010726595414856316573876678814332271363826416735198737186701752279949323719435662248797718252262537921606825688686026883542592109996268705261612433295626482652608070829161820916173102368321054997758312279495226304697100657233814990898459191576273043375571516675951512634164954562961153639606621256871600030650270710524660455861959198339794329983123511476143738338640939258424409408877048935529078157064917791154429890505129887437528343590489019409001261092073079110260529397383844112271435721804772175539302135213053064078918593904235974744159769995933693561808760812810384532594515236251440713163694305147853854834266748140437476758053543255816935020425309865257049861889626796836463671640081354307822470513526570453196351963709750739784780090872600208610569696267223963106272027435039189421997196879405617246983090017689364742954474694134245182046634112998066790276353583568197707540088190550730462095369908239979893447378007721627345625332781118183659230019233797770049413915029227770003141370275806867815716696239637565327165310245895388964216562005154644910719538544403425124091384173125635290428207500135143213092942311588408985710614156645145767780530338916101876938232542331045088549334064259318692885500373977742987106209064468241649041492164909107946535198956981851436016074440201621930877406217386105627235424298876006394322808056659792284967690111230767536317454622012555323024565699245965124638364801798690923103617372226124530753206404376204878966639069580712816055842662407553668870816493376479836255109358867028263631962222284081778565228546319226950051363833100151001716736331261296527534582043505592231882535386700782204195175608413323595397171740497840822147058142736926129102215216586871907392442130811016679275229649751640966859778062882970657544092655859838921250038891685666319332480066945897559688129899533919828581445000662781359830841255210936683888735080640467755532717274801901297670178059552305067536763567631873473317198566246810350314217017067438918383181475645204759267672412611754235798826260938260689181509319102545692374720234661453970395116906706027848109872696515094936623860812395665057068858388725637677102193314784555603062461844339848739893912849504557498468926398461043326707839914681936836751331237011301873597171151074050840338583239970181720110827167223317494655441761817626984299387200990411206969237544628775250752782479151344669750714851087225933192836421492665540423880058443106818267745402331555763133284878634004154290986550727968676338753228417479842740721527046268038836361071600074457863468270462424561591519838553622164058939880333700173612481489517501945825941973507987971798004548547759511144097647215789994506705299324102507892644231759553272373053214640377281501850230900415564052023622839085050622497895125835327801311611179068712993704899768764694712117957329913370560798488594529139479866327222307324945386746707408871916909946795512002147599413481168753533432003532864648567642542393945731013310106713228001274506582962711772279320480287092527815044885810312886997336515071010877937374389742891544732868326344296640792024571502601685510989959894193215064899907676866033281350833301004345681142893283990237047663855674618802259019191774323158626604766120101657172597508525566884088501994472012775849935122765311215156076855949469968287557152357609474375722738064007013087099400309608699259116856695222525670108038792112708190561370179355251229765312461895443328490673965761510082999818910613003109191911422777591353162337638411296326503967151093875084162338101364659910410239956137005824116153726872645160246535636917580869561598901256943056617959520821514353230194152162499025697728872864408132317598657722779351130456086127282708474512526779980072997749546284889111454507709320913295900446705994188472994394476521138684499391889574276690276422605550682147309860736829234179107486122197659991905735469671108446803389798002215522471230854786980029675638811453060746187212548202694325627189037716494097932319852278787307629219244312349403450474803821915345647206884641239693812900041232513583713858859960829257303708984459204737065020646824130124043242981157739044227198961989584978410514140690673119492533574083274086588166702724555403629619543613862153100153923289344927323349469713786867511260470705747954206285715545382611207410519950010579051862278094212224121422541468661267909406123442445322097790313514750254967558179061313322384177940489756060382464038389695448938368447963787347888223108960281555068956288662819157279957817514323769310254780643232997124055098245263674826156585325893950007361035187442807308243615377774247552313456106090021995030095891302673807423237156910487634176338048631789738091278066318073673629907300771354187072168693039199763823422338690611833959862502788051133937494304817457489537092123742656318370645612294493897714462569345765997886464824748004858025165443671784722491344564089302329198986421291708244664357088929850411144890060575591124452556568319968208253147174321024499284105869627694473846973502189169319906852750699563471360690952294301270570341343995865031601381686214285812581463501372588061508012919058460487450144790292023479073610834610264138938854551394391107914407922630777000036778761924977515018021600797584607639690505032216008793765377909940445087743973154233626149531102829113859884281207319477683212354317690665633439754620522876270580891241708685242324537027006962069044999670266692336885468923771369757244700043622685070462569153766667363303727181563002031079032198796472358668216036673774437192728045947611004051802915108296735867445410503739168408724798525405094174034842694918527977269478243399253045325407256143491396540378940104284043396760251672676808149430340774505193761676666160270942420159563767006363770019045441823744868055399783815869379569091171278641753695214974422723441279908354338303062799884801029340750614695629829384794281071896462499232474207102712239125102407645806034963975593490832892384837556378698999490414863142804196471918164287703163179189611737005513924759580263722899526541984557439050541243869228560025155979074639422964191492604031540527490342634328033717119319073991168913118380943836526775821002526742989209797921226273848460935586767803676190764269878456020731622726741774067438195028786377164188814048839191454552725478677312554765865463261698147694314414350662528651704073912972208849170235006131216157056547920334756765889133433031834883736452176477902141736518434273693294695637921603267707605471314717087683419539647115545407988214155306194351340622319118361904105041294610333058449605790414636992584488222838576787414279250015279504075813663945300299430362024094630830310880119416104911518190240328043590741378320108544441210313315960927757115831670700315180808522257602484320759619674433941249231487722618269963762614872672603563857760571289046905865566424153832330757452281746551052816294297750238189555966594505920318181201166972409481509395682718237296204997992173354215723496802336906531732666441721398259971638431153263117474164238635157541915225018641372331833547153968999593117303816628808897739466853487872947803399830154721254508740452552782088991199062287687761066499315655262171025326931067121533416057418077555871294455727774096927169466529909715799995332190473427714352746572716845596747765720114235274811805763663293193835659146945972989866619085374179717328347997394204021064905665826735680456946017378594483339889399018628828848003004613014812771946948724969152521874470940761413753571781157478591926256385919126288830263016883073207701703539337179107060584986015581053293610085266622513894156506997941217544718686675007705241999485709561594693297740676583114681767145573572889587961739976453119900628146855561414405139429343087174904016944437381290912956745183875790132112116308185298248053380015498907373395909410517649991289803301651422171944668864512899191522958911355156601939131982242734384726330413575083716666804580487452465908833773056459811310513275111477526054819972563640609629427895572382927781209872653127243150110877075894180100300503244306505444204617001876790607738150900186410754425646964635635886902090885036416642609044751287458922818656797747233693106337033718987793178084701189102465127993313772549328366393950749758557703795158111495527807741842289448526863708611174435245844124272452699298085879331204574533313871872226905434407053816132972515273781855290875006769733377328386711959242262031756645168693085867181879739568391896465307482502288880112312801068376589414829390907650389341253689143758119202708856207112967055401418722193051326174558079844977215402796400530194396436022047598447694572673325387555049184170383499059235440300212193012043432528766514861500225693871471257899642245513787811966914899469037763896703077408025420250146216129173810702152823365019750107694934189632938823870970944133715744853670987372724895712973293758884637820447138385558892851519913330630338175214028607608456307325060258422310133967806467261015210557006228688200457282234480529497757771310064409641992971793240949201271241625024160522078481784985004208359898922167556412217793975258095378163132851525938913981141103982799924158811735665306453767539599814471545190093614307311998077731395116263338313106138926820750546230762268703885344948961508582349600675336645499568433454174490059943706280749619891967104731784584511184430939358469736329469336857791459095235000869293569263663317223402313241834942553096108650904714323014734761294602554978976291633262598127300441959321788364581271894292706744929196212194989105363878983256021232186778768316391707853725694041393313624573960846479675286711048424618375253567880952243670588418297329084245878483674815444723469648834361961262363875432410973064914412226251751435783871322870555851548348118012291243072610646936164447983542229815175849803977465359347809176702612721553127103461757618882578831462945362553755404221312851160173603591252015207921858671248148905666763203166397895216678714524721531254785343046374106770794246631835842571778239375741602839045869344056091998185859173115876923412203628373126417224873286659073830454612616080393021236358561310588488296449510500833816150292990670480351440015819445470432315568227552789988426059886537801583686245736956573881264517620664163723757607003018389821551792079810429684676064980570492375044108772441167080596938226197012565270394542754118287088677391838252283509723666451834732380919149510501282908602306945784358831666185131004679628622693918261437145095935065269254289112821970086294234973361456061259368430542021804898216826341794566348805148558219240060344018961373909519122826074356985993759206927822989477254139958936171687156259179545469289238350448492922146863741492380634063436506449621595672924493596143790719158381239763244332126801591556443648983499351673594306284035766129167677338911033551245271167351376407961978211231850556005832342074338185579137265649192094374680176729929315751752917768131593281844017003672565403145444943279937305607802488524851204909734609005114581252009029094931463981018707877409698715127258686065250324732761584909062686898439318478385677034968183026481429236264103160820559509046151961176947307056581755933430569958032045084450106206412768466035898631069775715933680299759725359774242999540769634475237850884817123516431486986734877048193763346781991174072454712619742696384173927689174428771359983584619458880478923101810868075696836521087683827116482554589213147690245804959478986864968404489166583084754096878552946434979453211633106795960375658142471985150409703862121073203206558376214792335614490005456313991980370246012512959325467581318211059250926879397828190445615069028842740354216149687904827393533728253474238793038529485934680689664722995820987556755894872027202005144759882231904569268658506446444088429712202059014349071057689412493147479166928955962211699834759681384360018620165391223109058245201010344516158104993678404829702138647043353894867383082911661197205782123830189474766331075248721742544108112004070110091915697715740156791208561773935628534003459353949778503524895966668698387910671811225251493486275697880747678193088858022192299799530503135328285127245469308713820876553681469143342609430874658335682769806221042429421574311347253283533392805270825790394542618202259295212322609848844222244392267778492935956123945233904842261708473518282256537361916634016168464250279906558895991313593151906890246929157743434993972925831806824548793410397703708805467816998768174362555225802266028916978617447699420232618517156445314894461346749124291996453754026776125819038523886064482416263805879536722577780390352327335959809579388287318910966733796855335725172936589406706757736895753395840975260829916547626498806573888254708960457750512853729091240824394780544743440860804370150401086123486618537293915344965117298397998428822708482474354510264649800950060701790465298332321723786018310296097765338170184120663898720396478330481482676087015656672917917155166707333889756647008151318162643047897663453638102018404305318039688914063837859641148239815123195067501358920822368330322870730042887043368867815568233336644068381090796487160352900144609166481062828966741265602491654620473137881753194135560486191417625139943442847529806069860406611714601161253558086271160963329124640953858282470597002958371806226264430839462973919207511549827505961086977123654889151571033882278170162503072651281259393764008228297473320994289001348192520433140303280450848722668244084440455836055441733231395221516826366445534252918733803687631320181418912690716065294481288812833106995995380771718355561607350310396844563630142164287773718028731118755457239145328650403403577574449100690045716289056647218728621705415644771933474175000814496595418511607281747235050339175325885681889371829525538262817599724539608278403205298798857966042794433383945946560191790997698009445295324342601725430204179570407910612947722819318361083516371667696785240581441130502481256210598003547970572684769120359143093611231809012989268276360803756808656734683323497275992714760432474584929242466822188806689957531542809689743832342632151485669895952519974075404782629330123765281637092998920209485778053471422698346741317806515358726583568399309704357236044381111874584087180554752045152546330148368701737112136928916385480195504968140179652625978604973332170218600235494380165425081603451494638081410200605136370040328488667916233042426831122839433702362137494959135702348641107921788025217596785428031629637856164899880249175465675382043035703801810972210785624042625384251602949347046590275056262689917206212997147502974513717910575455371684668449050297068012674057319079419866207432670493482424668408950051392879254249742985173313718489869010799517495735519579574547935809200444913878569608363500303620774489446980556904581269309832993599848865235644042853001435123658916222956297357255911358045764517060984990964959080642101845438604328294717936818619859315765925049793462710910081469469755503645210903593270697581921245832661845996746147551603119290084416112881037717368150628404159885781867151972672680864352962754365724333957357425297885572752138165053389796123488471957519331708976120949203980449302512481346912021942062273383218439839456359583628391944434890731629555720973540068523591319763838638172397973161681993161319822647914447517156491516981552537693476744710877917452239941423373000388004899723225675642669609975359732929350351398810458642024470436198633005347070823928207170612898157247900796222550389188931210073614782377704619029042216294612045620558331044008407261361797031266020778428793742254686043037681470870050826307370111090312355123151602564201683627320789153667122997415539046641989023381038242042682314198154898407740868126450220737533807129789778064430056262902331812934168547940313900637001634368843189353263546739291958184620374254935920382731288595133900040391946062546988712334790420549176390339082129666174397169082890744200950286933965609642247509677793858335185028306376306202031907264544268613216860495700089228530184369921673511009856335464076148088638719717869502952995472049697342001958751503884733625261565562057132864606932151082663312132261885647473098517851775925702907198130976484429045192769453817475080593919166585326687281283476626250341951619020231419698022959277511465443154125626491618289117412164944469263495207285864903879553748582382060049577875431836228472691926076296032210206963337593253910503813881008270451286918369719076812425099777550295189845032604047277588061609244761946941445225758427987737083070066607109646265446995295514544014294431681912436631977539055547854725825145793931527865152331454428191753584677386439112961557278736660780451949875980981896188958776875187922037024046790222740204274038953448310961727182960787440280105132577282167115088039832912287804648177429090829141302071807859441312554633085104572262556645078311248520083932451474921833241818035051908468227156091453742426005477664339574989317489811118265198300729250983483712237747501646104099856741068820662814730638277612490552772314344707569554778593563748237923069604326401560654519942744696815643622663290535842636323323022245216333948432035435700545188249106495121248258240310256051073966917038680028881528344770321255211500285421308305574195512927523068691421137379789689463656005637956770674424618394036876974319909730540633911384670908006391968734977460042659251584876709344352109908462548443195219012610205513761946866842846221909319887043212159366046725761756035426147762184545750271704341654267580222438556995655395771761828007755281235106690494311613999031439007550695375730357443065296486995501807116856627522526466098663913680367842468232917152561170639305582953815920506958254676836132705976771182385124011297752951080394690927713848492012328602684927518936863589296152283384197728259365122233410812443400678683612519240993241507149671898809440468953373811920757410440064582490232797603842574051964521450752430267545324940791317558851805148773089976949844182851896168037238478523928769534548177079282559862763695326751792257791607399777861668694168649253055260758800865123297740123415801801523815146633590411191390990480638628446605224330296759979624324705652404839311177333658081638466555860595162669615096770588946573666438998000810879351193251041690057428049023688266731725398713187811072890242317393787509397354655839216143230300786219809811841202341616214208786252707667256399749352302807674982839516508131222295153873105462246056352673712524626199449788794837683664992699302946113726535678987517500404111096291255864941644261937994208001041211127766119881505303849631894127166796009623744189239365226499480762693289342944477428017191792359949488200830372594333691761978629804660510702399470748317791657556318939251897906138490260400714436951999866099649094841277955251424453083914585787948767349386264884979095687523811267404029958060238972328245428058039837094939129861123686725556862970237664199043661695539914039854931378958472105408138485161710850742055720101535199237296660826905194274806845285457795065091758318654328871183890553385879600926889915420594022768800031434937420612868743336809178164671676971311019421463510713656156664798048738376162471265449213578082350308594809367621218366717566467894307739831677093074249372438186924580166929854215795382458618232509785935620150309259990313178700795124708915393752315722095344037439706281065433550561029830700197883353636109905520617804187972881214464462125665585756498635120169590318607877919633988910700248503427742111595671630045344749147871396333344548378219580694469939716790644901689212038792447491850454371149220447316470673754011764214396181186363113960214145245127356690874859742503775567085585023733766683111021855340857904611887898143853193105700926102029579710257973761591131291174138283906936950554633863845696083371428787368088118531175488375252447367305509508628920331707475096502143672881660611716610283190916270109333414868185710844179454309546906788720301109549057902001784213281015778075198723402795019120476618011820987117416592199425964042204948644303790498069440268417454114835734403117514179652898279029337213165266160627945537608310243428060158817471467161337241040071323579846917277315222978819403096617956837845959288184927053210714498529276735252905470499507108651462414197285796098522375065235603863011734427910978403466605348010762360356036553805943841050201303169119372539583544743858378624717269312497995852740656803881323086512292007194063945343622091093159715802433819972740384552889057947089010833680026168904193607801864350619088553669335603770994453066225971057043885229182818462271231260290525628199587512180590288757513359302951771614402290738851105154363244475781770362251110856822241912320819466462416416357789465203590504361143709067008562583194439739271462648089423741172558383308179422035439907959549763110459420332218446167131696740887010211121307811026088438467084856334672157373843445908256604934461765743546254895517328252165969763519170671299066014589889496484192523182529416076597604261545506369624546063184889612613604914893976856496219533743867522201750298806291246908774307994547233218682430487730409114680841443502332825381553677083061569431372167469316230607128220176463583132936239358984548765684243778623740052235271366586121167580127184794277484075183310736272945449372307168777547835098101133730556305320062868887252735275163540951048048005856589047230777472596604292489124016892958873913044554039747109131829384442931905680479034641501882021746917028942464071879545226415295638209762606845779108589549872716884837953253856368024336314459642852765814801248672386593006364939145012856521255834580835449840872831428649587789227491437216241185956508864507166092326436459510682411683090196731762116236429888251244952907901815606751472255727307542506086673577616084563333125359576482452515908565488280340697559687443747892623813247764219038881742300547049734540259549358844487670378709753509699054985255515609241299622642471692570362044366233470883576179084165739272729048788777482355726360548587231273998483834122242916246998585311673068754799832058445652266305900730385774032424702083097178511694254253362201824291648590884493471464807593961726506186854968764512691662752147618139186847198247892203920497986314950984112133682739466481546129801474563334610562228299620867889083207805743038026303168218647205903200789046526498254861013000550236114821979135766720351084415705753260136109005958082471462430961215563204286726173301143504458863748389299816450885531865593610776463349063439893597534345923018459279727343632628317220623347411727855962911229130409288298251723998818392449337764670007513331962518274449699392377611198339594215635304415779888265225117125308917070570117480109831918471599348567372990840639208350343446128566844233528795649540270371378236909807733169286550234086309704367257145320434954004228567951409267368444918443346974837827876880924654841178817860743868300328267001273066763136320053004438741239015360473275554883919779762123303272130468719960454147289349567318158139618430171913149102742796321787029335856883132203116169763562741565290301283754793608859178259136825935576532408775364651665148331873839828908545847251510826930628783532682120518032229749506290537553988993966462598156191369892129725959110856026067873949836950078848114072877051405323444251519474469243052636070347822525435293562889331108956918145510391058837471230181422851857109159462530172546373602135597749152208271273555637561257063539258696731904033891004163629380061072719365121027780287168549461211100175846250699662850201622097805367796247468972778336982552833671664412221537239113293343487171587361733350533786012981748787097785771721924862164917283589724643610988088494416151832916531200070356312772981340638376306211987447518915000521952382797680144570191746534041376545747496861257754693537008886449835864898532701907470313452640690708701445281548426890626948168461577402381235878445293895148753744767420992806721139717024485132267435981076052609840086979261546417052355104848511146778860587683402049576909336241852848851347273783530193132177891863008020159436772250277162770251072552111561844562738243130615370832037904520724661853904593712718656900060056756681798687485638529738015693903332729533364578407650172881205870777051791964663136608965104402671355585188809274030657123937841040328414025067116296034374373203196841272833353643206808595007420519230341704646093375900771103754706180090862447106140507933142373898075453067022439837263493850890196106776284242114315925026896165402850967720112097384569300748746619674600157054626963912013213616822634790453993374837317350342726728299820984851277053028367232518773655192939367215917131651985551913582134699926536969122555883853733017073248384121889644724526572571286657120964710310244571918212577719778876469795249582701623601643948967254361982603904073856663797994781106901859175798373521114264804926356008928278242817210891006736571340122526599389580546671315977294148815693030445340434347115526499332328030705320727340282355289516851385337149939503629721253824831578975874491056109569344635673963638271480889900701398214086122733204806856035485961286737069967934898459233422527864085780320884351529562906862234247314082360797392715839232583170301299606518741255802287022159518370861833231165766697280627829002864695576273679632030819548594944679568003493576301011945750092924481271827364689378268746074378174986394625097676543936808261059838001063631017073556308710254359001804996160517348661258539638477711904430829026808520847761716829564518430050088411418307058228519377855349895402173733126514070683383469332305542961635841093352927943462417350258313422934922882323519855568474636452806133786664326342029547715923302869880800332673387514831108852253975297421156536138842055664684751492861396659310930942585266046288081931652536200146388017903783236302475647293873433938779694142888824931157383015358557512877059029706926823586945048221944061007921961472542993454250739720532518748998916283233053146653633633358441330885751338680484143697562427501274709523777812359039433388922691720050336117141382980316639260108162002357677658183435562100262275443205551140041331274680954577252942393147484185939466229946586425101110249421222633380027975294950584123899244643582353041291684993108271007523271619958704925036658234685960966663812043783384531047293227436913700161010683796088294018296460190350050777985139711070791351018413362384566562726403705725679961847632185822966386305507311103526276311992792798227165932886203042610593906884608792605580480562026829636667943961965519349709717940861343032181237528577775149752268557480149547083691447751307490569320624247382457478452777969905195308174689050301880312114380971010173373033642162039628912615009012514973622611993220914335472101361387406582896810758942758021400147024211105066136263584976087589814565440888833973098437746252136936044914943962239692537113269955854966933320662444541939483667274701193146033620147417850219472081379648064788695091972628181794187769452146879838972629541100693624294603825430339345640004188822346425088185031170897675720269897514256028523828571045864666534212934069612688766668593276095981576322706068421028474882740123404636487131197029490570899919464070002650416955754714301526164822959558892936600474294550919104989480850803521513222419537219400320237861453152081062631541287320451242885756852343820812655335180399306073271405063734651575329803579698549732289095603687082011697733326673431878775904204259626829940977784476606576403056306885800018461824730750243271542119119965215718920149912580954897752034872491101896795466569358803346526370183638412547231173674704975515974441999764574732436274936187900927595058054186300104938608945460719979369280927968070115722344186924945977924956430832085735581286623749768263455443803704117506739395130786153080865280881844907130605863944233932664991963520230972099076891511058503163917865037179289492324543453735257342499200043204939822798765396255902674120227842181920742208067676532644584673006266194644892150358073795666515573427983332233487128114453709242763670665273693947249824191247281800346905866006767086685838971402762864978525079340242208141077636495639980149697992510675638997098334031099230968854340402012867179621615311698362746281022651532185403562618137413120903642608382943428744637130586227904144979505425172450667750741380735084681088224660506334099960959243770413944615888742953905121584829827468379552789859779051966443289180253852462909503449667542046678008255469603210827175925531736418851458872447373007637462904491226207070999519302079216202376569948363105472785181681809086882712304816577173879731861084587861936068592497543306324375687055736909390862415273540391483341234693887863049304003959761009695935082683149416047322104933959328002111523824676121827621075871650034037843733813666145497026561412969248995254913478270172129516184334331282440188715167930466872973431332947594118820094830326753289563291219473032268072495313796569630205005692696486100358423572592025569992809238800384108484681806611543886920366157573106409462075605071476323234410206241455472110890205047115915560396238957880354475175087446434428592529602290203239191123249871605104393300880716618784408174458495668852346288075670631440123959098007276453503013387192388664772360979601944753267883015635139704002582356520654713426632586230067384833052356637180309199580448162366248157299198569915339411144716292809347124363178332313311726990134063198782375048534642542248844671689756763635960982840647425446962037155655451197932062882440886697934152957552004228783434500175792632920851713638956383069035013255346244924637065333362406537150380922562371700008933255467302805924102846492583699313988989906577779109981154506892321011517265326129659230886931027922838030608101928332635106709994213701858621543183787568057209289166387845261788015933878755755183297526997137965501371038224226909458074676647389781698925368421124901343869541550411058416450030950244099566160837086645373986029836792376557705399168065112559860526100247801637205850446889241682871609237828592285098042760378338477384237888593688473114149316844934590063666943139112508501410165931533117862188811105127833938990332882607847196103877586632406618536641500662373860973557643433163694718241432076118628333647784741728383726016404396215732755280069363396472962552542813219397507295651284482982359474187634240892298801973513493849041985992524614351785869086962502568518221350449207768082028346639056734935125983541283775656545731448191882179621083901231029551854488799674029026888743379283261226343819679930183923151566871679540211648388056862992786170255491075649297934460868511439286173794308595074570745613236628585471489701062946707502431828610932699964459921902670220165383678765733979201714057879792947971081818741273678589640988553572320361368223730846625540533281978672565491945977997883333388034020883968075952071571178854475300617625531380775573643435101544387664081197208310617549455533181383576317984214603150200613769972918997037697245036748291497424970330925675339998272327953004616879439366897059388284495102271660217269463410269546779484436736887596703980241825351039864229760010576654718495591656315671373110555055262221136340031115304414801432261808934327147588083225658410419133065387619696870396084455356632608675390276459032363243132855879055367647590381491977697087226797059947864194320567617119662853376740666129634169293513715884142030470350805744793539412313401778305196266328564938692494659184452108924450899797083616507020188214589953387782212815863634719020056791268160296216863614699467586556293122183456373800315921106374535956116558911141220852340452591209983804941105403264751668557317420217092643018817467184699938326690147667654542790224381957002211096019747380588699759374511104877701295842192943592220594660955786968881153106897336384790366303864017204897415537298429283061630664129746511776567522516446126865943459497968883346866313888481247080628061020543195185675122022744297894600895347709684561729870392524952922826380975487670240584733028493701561928671759410517402549308184272579027162709424469605737002805010452635479489224614215328074629505633479006660632853573158011102048533602876271363440469412962728691283106752333204877303581096763989890125700286571232242689853681075958947981964977729795120685483947228929113985811396900139286598550974202671561236010317670481588661325005764458018682495602130692310274190626527941432041233124594555365314140479456968204237756378457643026954849546439416236445973628555112618189182945578775143946104852775504863931872294838725714530937506849674750063016165272344873420581236753298575993860173690649960781457994471075854360573790542899194048994922244477054293130474683057506975885350410601515790324801819784263636681830179816488744356431143361097820471756321488924344831504195949343828384155757156932029456947861521529586873893916300579085320686809365494815312501898150025923129287132441609137696625969587060929803712350677852228730562088039593843488901266762019808807158097049030848156000153147519308570653576334086585980769227634567146829325622448613316983731062372244445639339723652805120442343238401016381973726403334899120236480565193799875711799491924923339652644910938170120441269257018164423893874813042432022251327081535418214291608027240269196741266509693123987176911308688483773970934474948795722721156359536174169455085576770501139824858787396559490675598312956548836333942101425887287086131467774701455157022503796728770510933733778734126267994943060003766202996967150543118625426008994863758681871645298053435816002037181675948399479851139514002460006403566379538925684837209280159955760978947283686529399478241126676367973986449088234598432594821666743849351841564591630555042843083443696252970106257772346352501967238803112591187443604844262945800530313953104925648112899790849936818867439590149232162191004819609378997558612696900824783239442885708224718021101674975148128720707316180030665594830883508817215665017466234930700600524188745992465521795476645835641335422630878496445378487149779505675773194695542352470154813208229536503781586735697711184402478082871042072649701350663088713480771252986383664006414719388304566892113496537159463365058069960662624400563771344370441116684866260098971421071519975559486463052778773674689376439831137671569172698922668412414720862391460078348496560664307553281926583136276863014111789652117264732666269363489615875287717482127626177864838973478578432588674852797000675172591335742596108441886960151485197354628907260687833629084138194644763991477113450479687925441054513177405931296600410161123060849298777054985242386796387071277540882837885273382645224180239459573273900546246928038941576498536811407746615539023675370103775600828791558934362945828478013440526006257628373094555222402636820099003589398165933958837615713600382210843918109059120569945759957975492885654546195891919940236453783248651455712168467975569758986184553816550905447759732585504583635498013315616830273567185189652506983982910857728025188783942602183778517425757969796071095091474600624541820466482902591507119228343601738342550980073216181864243623022495100620015910639071868087856745697088190730535730378109338354908385308433378942670069123710397071646743180629997978108092125380421808835006268254466714665533935683997834100000341873541296782758700270926972336082016828388046153370742556542437924904970103879683583865793331921306992913233957954277411409145399149898486125178446875060960622442437103965538995472840134280782970102696859250850773980430301187938345186350407664611449541113279540810114204970955852863331598755929246926699431798110930843005396640516788881492214034004684818023208730962312308017918040650477431455532093946869277722427590462723736933503105385195087373521967160198998595555978496856943054133049650667084260930218203751812419340936789021681341323931892581267207120265366753781578185049149507944573757459659607072894687765841380116893994231223191814848117126988941706570045771477937450165767515360647406173595174996974935480062745566813577131020375215597793213692549056599367176960115699005074795602232290108571739268953844175308606958582194843754430940108543409964655114126449426586884292361035085656195413560558264120207869087532174726984773710580904151768087994704777757474019544688306958760587470833194371120813557825892743479362959212210721143944909907607583561210331202393540419006621230185508960845862311591722420713617064519834695199534246347609160890479907243344514378584276870139124826212588429239303007733582697132081733883660466551578418330751611391193965927715159433943127704205635250317936574211453508613111368136758046340187734272776927941088467495312564442688198420568178487082420975537298646675686306720670873961464727836016467701857443030416940067037732187965856335971102296753964634721432921351342551173412064178243296179000702392017427791341802050066287015867004175913028702210699681212701118295872383850909489126112731060791580863153102900765864757012515422172843518259576759117607836806225408821562079985376612490837671511738179497084713016489304124107196234496019776291683306155573564013034013858229967528027293295673971558708434054766650686206496203668896875546356642458209592089705072643323795871068778104503672537026133941097089556915060214411822131723477782470725335409570543831399899103570470961920310152453282003012957034306728351160293778965319773061404876271917401222483492400116616933220992441778937138652797932387632096914897561373248327105264242994016065277608255592156430293411619531022941558251721941157805064849231972520232095953654931054741758076309816613259351254838138125707080639033722577309713963888725058935024836990774019193150798397410232725777499451828560208630436888775158734656504469640530170744493172053342092559708875046910644851025328500711627573167230270292039215954702136987742240971912066649031863994238182377064892981805647105507033048199835245750812862663255711761605571529658682009873569580654717035846779872816310082876810616970803540765392556215954859311476311935191335480382175265513459944723033273868304305822663291735380535257187523597790212961096623091838678413711532953688058668367981494297804915786207065896792028552208114566496202433445298362322751689962577083853675082125877640205097382043722051315070041346206479954714969027328816675773555680655194545184039666050862349887639713638902872682192753280088130362506804008587503458862103651784172412734067569404254251368034430605377145632502950935221618475037229254973173489656689624457322065888702509174379092960785797403817940440128100682326407949182859948948136591776612334911411834749421413637090541218487162595419154690602877959294707365326639005171177039351828412321949824547991188156686533584758035723519372900904648585082226615572249399116208247213813412744166416716931116501344176313644734530010843741529669126986884338719900328419620877111407107554242939465231221179927652758023349038224028282231941392598201411608355098672160605821115338834052922726573928443128050351705826797843365083361727108486704536277041648616612773742625189413913470236023579851743647882652059485329157549215920016752948732526446584673075832932339609039573151677366205792252394041104148494223141163711257241268595352108965773898733221674085183092277134761781057219053172164015324678688158170640845703281588503477221785046673460404977797691400290006560732713871485967144127071253280717652601419885724715093523546417270026021758019383054930377009121496798113938860123079564063228556198390605819619011833167162736413427157521919945812399145705150479531620311232857163040600472550885603348038439228654306980550401774304362311274994614751654692790954775733641264437379951987358519441686762955087052066600973858578764554650986944770152633241039045410793905128995287786267522431579927760374960073064322347949118826748473154334548002265414183368991260574350674274754566902834015818234631631378848821491086548497409002155614307087945680709530754506424065842002538936185568738156724791841096555822298295075033290569851374081935186272544352178918414148162705082638929984922269749423427013706542057179413075536938447058660680769141587630439059470806217088974108651266140264293553156631287012950654812439089391244699648685377722661547446484230765692126329185004822129110064996050587735549087394772378469107348968030424782820667619393651350902308853360003430956501268068472721659500322084245449555064091513112425822361525983266497186262946673486248722662991488343336318148983382060090897973645758245159808442334860462049255391844005686805873610147750622225973442403997536327532184598296211461482554155721276226453410081252526307925586480922645120818440485705490261102420873607394794488608331176616916561070775867580738696694648195754173986395405144128612207836664093985294300827571716658670940117969358124281010007878791675966554266127576775440705643323460236116167147041235139768953312877890841420140843380060109701539259555234324012210417018374028278292834086029827803852185961842017989815526663292739475671950861921177745898956190992491523288027585399507393543946314250693608515656780524837038844172091947386954229008404342758692045132669264383603971867591281854794319734828781674404767256189212924383857160319562201189930855483640957216046121318046096901599608669217943191847362409892159103643175302817934988709164497822625175571666126577622429733250374290532742764917005202125194688632268370799121023160285180231101903397776159430450648679091707780948387197742469378712584978594818533760618198930783780744182080844553548701194065983363668627842519073651035555381891762797169372973094598642821589251862543205543178674594876255444013254164292650222102197060861084385857153168069524175080505218510377602854916786159341767668653530359162237394198816081921944392859688210834373129955439679040927981060844132330141517930552238523912929539283836434144449972999191079880185390353047950121917254099109183633063533494086136474184069895790944232334270119738889077759354819929837807773048771610377055428109650690005743680726837324462184880929160584985596859818574302575161251524726867250706793304439739919362800081700887551748947213144843131039103906230797134489903649855133373172667326899870281126793369054611112844204214307394715841435363369241309107235533596308282063873456788614832468943793718318422262374620549531245011075417000576050010313884898469033780050988326688079888001535991894892551073163906105712738117278794834010429917458338545439679345339229246737871656366081463619450777187034952975718881990939242317325745593134003958504564100823140078285299517538821775433776586795234002471867047594013744615729997544132891323540841098518404963205332853023116503135537409047993507635086321476682841183213270693221043165895488169483278818049239129514626369564021608763429858081488632743414481062502664301563555992789844792447052162785660897505381022514110819903703861282732778980771392178855569217635256095388393337863403594811955384961717791580324905845541665871976260655288981274605087524682625546371501987872408186999554950138712395008013634905751729081348067855267356330656500576023092228460610509054383613664109105108216937064035788164606300026173493075303433162184721664461433323434778672538699580130528222422943797968271493756032861893084092158059299871953150862800989123510123900069523826472984659117571454026191011351311634493355541119868338085778155936097892040633600141559393422012849945957319143391205371947864152439535565189964051356134798598539639218752476243584166866462184369178078256798461590109891309458319387399155261156385127421614818067592274065213136203542235439992361344205984619983001647599653643054573672802994676312210782341473362499978711208939738450140271275556697481447966529193610631242985505625570306522681176069950921982976581039802125832644944693132885828450361093962808682045618655937429360222365691984128090905886137753930879656394820460087099124497451232380988408138123294080016615760653541475081917910409023618039866057084621895261084211034724483401882162255018516779095898551015668976976732484433129638537615472437612085340871052421545327497780217762462380557845096530591241638635863524278246899928665206234181810163159875342687232489617282582419023260906931850094005372849398195818936411697079396150544666086631469607607417614240324149412683673181018081393250720671658933896395744901474421374136220794137714495730399683880383561636437630329583319909438623892796409005443833610090815983620092523144316517113704814969127899296611029670292040254742699152360086191191588016629507799557883066750459334028400098302439394899230527711415217299965627179309377250721087502273895200457539058178563972345291011682645607549906074951185870880034560880846643989464762760645228783920516694443934397016970279799625171477984113259277485730325184694673844858028776857569247882936764487787742625701092139139047810106509834015695025819263581942657964542810030497473222705538235221399293973684566211012023550807302884908646802654832130695316210379807968452778303752031416258663202553809697623130442007397161196021688253247177681228610593632881260113140989542779000150578659358591159729663827760425017928161826178199085038254330858524224163937704900826286533042129182781092455852331944966042507069079217430604026659984452013918866851559034226295838542004174797485556698215658727529530286333485545105051460722078804457058332356011606884094842218011678556026914224618758166194456122308775024793595879556095771180409918649976703134303144567559554857978198161250177990336151560500268028075892498491650387983703632830127040135161116472221169558194739385086426886990915902850568244283765149495542463367755777991309129074650678806759377639215889519420862622319243051067062825146846810196519371606251541973169661728121477515484345598557217061140862789842286000924556341302420054617846167283930195224791963164528439833640722542458035021810407832138964653258305892578354267500866154438907064562468973710297727361244061580047219002135178513162237614819121570988238912549131586913748631323703220436906462373740080857416848592063833291474502776066503139623354813779197244909471029759441939279754924412969307066835469498221671973119657754437348932559023560976934458368053249791839335373191803844488456292329032348465699379840531146297940326299441480044704629614867630822248182657086444340758442072185862215268914528342494695054123744535369747101439963133339824293203083078707658544640161551883501967858860803567619664359260166516596624139958955586701315177734404032825219073301873424630438732066461158936209046881867116420066414227758492629393309567213851535974898705558709602737933437220653962309230841137088734379367971790087921567597086552794043827356471337839120764545389082497082225038441729218040223020077246647023968041424372286247720330559704610543207977390817654195233404756338597268063774734181355822668274874335282601803756863003482374352693269780356894956861310686217130842881307152198305514957439675761579092781776835112781142987167343785998144755377649924865298232220701374335907731122845105320491329363231247520561928750295292314256404103659144943433419473236888926492402180333293729028040082448994380702121133556422635755082747952654773743784329295846691524065492184543019268922617333670948009784689860681175435681683690231077426407983593599652905377969251809487731713884252468847718756740369617436376056351076784638080853359685959785283485180132295830126066205322722267165662194064862826452832548897221336623357739894550536846501897346955826260353800443163224348555897007897682916798203751463176255357088252119082968789164365066192764809628791336349743109874281280020608602879840632543934240882994956098147542780996076380146476694630449130431505330736781843833257009260047082056710644444684331411504295932550010793721928486612556501692996569485820796968344931149176419080255158808992067000498260302625510981011228683152630907911940383582014374177174117732974256868671160551108443610195343704689378963902238145056196365630042800612508252502423999046183672260878653220248311073827405469630852109413967462433612738015120544571940515153637061058748180146193743221221476398494216179095448023078841874466432504714439150309797554239018180719778727543177312875900377338513419033039056063231662127398901394988242288496622355198485130383180152441650352722423850788236935466429212951147187183433234360449258231498878841967456972690388641078548045910194930273151564578367380432673002168945384138646166439341374469779068205615975451541672270440504359375841342596194754425460483295071726287984692648215898450269288611190718026261473298810515596155615549196469960262218457325722951165610886299794317448878891464101797007162961321903127994721467526663915501210045021554136416244523766997576152019095082631481999498518607809880612834841464188306982766562469373672261042646216814600166651400090261856316065929698741236309774242635537347807823113083814581646967442069677005106907097598237385975281294010661073577865073809141736607849130734568254539999358274617026796208025231908262882635343790415069703110326922433585475264783921180691229581159398538178593768833472018808365118491450188215947596387723141557637810197893161050031358949647889845435419819865460579491806354367194763028041639370135847271232487782534856764035776999271807468883187568960542404361653088290771251483918545615488197618876857681107231956800290042655905049278670173916512968917069738182843836991569175429787364242355443000519307397561425976146919539483343023624332915897530877478156357263704078778955676129600055200758968872637166887447439655103669121656282348362127845393766357793979446689518406098012368827858938347631563139140002281904810830672605816417029927122358559165004747301096336925170423803448851511367635915092317821314268663339418624743753824633295970029867018921742639707439807858068826680304177718140922191240144522775002059305976651979781587814019531923926442687562792537266674934523542301755276210481839482277931668869721272475822960508592428504275683941358412245680712418149374002244268192237659934874074851461386459337545954187239985515605339400279134076762790843537268778632768650355875308258029187885632230563626374252088961165949884712420946957928503522670419462825895262974619914258224306810688650928412806530774396534497498587966086138605308733924315564710049724503560847065213027773897270288188332017445157419839563790147042985098531200755749385938993144601749934800472129873146454918236310176504605676961340794828973016682719923839113003507845230665319884413537718330258357230468023787410023599697136445441671098843525081279754881297429502591147906747348417679617433426360914894615738136990281008478758794581919020928969905933147638874823530046653111376278397450961159193477672251929921243410220466431673873865967327023831370984157811788329563084469372231854006624406156097455055502026338329841980965197691911857447488133654802690095819223515375912943589084978435713147020551743773012312707589648831125472953764511827185710224708380214522795625271606517731024623313288750947542726433746855300876077228979189895532472416716575432371945426072810600915596599365643330191680008457134667352004866632324285652691978347660223189431635847947760242689315559477291207364624220389356389906784968594257708673854309988163483321284005923813171767725366099975479736083069219413488127822166048943732653269416874754844051504244133441870049905863986888647959683649164771080256498463682705882629502334124775297931795813611050465544121589539960131916889555819641434178230001234970478205537365133551955169091997371874270832407533670156210403472097498971804841353260317848848576261716057617702137510709292776206176145217018764776255633389997545776956909735525295370301865852140417834435586296548585468776732959615337835648354764152049562988745929486425095097986079998071223766235810184652406385544256716506191293087894417093405070336064928929581116391563483557016267625324228805729527388143453512524535605965416926263072178724891333976219633541333906209820887704467343005288630693959876065696538334227262158841515418364934287202500568092888988056054666845653581565644987484229618381345429474839845727443016918685146807931195269019406204960354644058293980910760621396299387455432650281858387467406890741028704134952397039756004725451413784581032010620212774693058044267243792087188301485058076293181157517189633637806533148184131166617399712829781826759071186103823165767963894707812661357782203711163354757700541149340755990651996622041907405246953952850178148985122028939292592815838603054002913828593881470207757780177281829338603815196653132455766803836537449711680896841141146654107747581414776607286676883332523286191385911796703801995619272513922044268707647371387824537270185965751017530922434785506713334738924763221801790188478653334961500812577274982020260777621882862130908319080997134111243583327701429181996269455311248947501754211024127117782071195775081106106896316716664171141626908234361108584072578840420587976815598172517172077749799412676539525036890489519063010612967742680164948418008628735643558359658049823300468202428669284386580775706300244233494510077036390760531559040877066426541224539326387519617361000619664894592059973579518852099297712407833839222428223891840463001838845653516714288779962712685227872309570062434123730303789308039481036856216158450337593784595558639473894558541615796720598376613343017316347606743592596473259461949738951336466191897660282744981409823561487561347224884345843473866228545362915251834616324821353762954178764649419689914848113854800980177188822264124955268244769744912498306328766441376805615235778315194219163059841528185675214120305300899988727903750733339304743528587520707846869739711653296880950731501119135243751175661494518267630039305950646281845682502406125198910542579360626131169620593906527533251513123427931852913052461491561360956568256685069834732318508524857749823771638258250809474206153104701579918944427990742871105094889482419115621700493214664656738234675759717010641407225889754904407841766873010396893866411345991250881498622200179286399117053478419880181353938456075820035197534361323794114871987065393562651558774366010845553453018668120758428870101354728469240213409863108342329346261219435972231746371553495755042751574761690796843626545819649972166840243979808430299486463614302255974892760067990289658579488872363485885431388715191320543790858333458939790745107073434067075165168373972846302527900732663812324902861812570544823792524414748297500458582087753787959623049430264999712620295578223120336801599802493479466980912757139868359294304049862574601813181211445958773114309171172800610560974475706226401311969433758134089900095716560027068546734580334945640427653355965474217606291640134624700176019398298291471802854477291955369000041270402526648851670139643388235599413437214725455399008246644766105316309471504963088931044529837325314741828632785099667557103669673437572132368345515878580160155530820378849619855775200996982051144504749206819109478545287050821562252693600915428645966334502383877748027340969760321278035440571264775092180081699704728807814247247515344798137089344058981114508849276137268063359674986366393159190511124786451865373057912736578936290489418316907216653509512164174115260796368039485003464496477474694254468744646247161289908486271858236830381900760917380048014758248516300418807986199578147860435556133831595310389543407388686358399711276577812203221712610515095945862029589833534957542965929949062878450364523360553848661136901326191022162975854983606816136294200039075639974711030463670905971035565169568917064131550069149790301793132905204092267940720188875691648350704056109559624728819261116363252751760240417530213231522566185714744665010321287533348864855952353155222683659311781229403348128848943793616724594178562127329153349675738172147269986602131164508379945568241819660699525966837154043952851803861223823024691652345337093741377890705838357567749452093188198659547571447604311222745147932286846713330438209779504198282341937106945306239466585479509190687780156833570628995100838120106730492472871312607315191831452830568809103438823685695984793265011993308697947298090196396213534018507588582665882236777044437882064746175529399663605244782615846436144779174908244952525338013768999591813805471633135847267892366055376801846327414749343951314446298728257204156992001624056826151802279424665649891454753565939088880768021974374964903900647906791447808966730004200125269413557638812473872203574823113943543130958393893349132937168058985918577722041430442281038462514488189728134699663948029254682307946883613632790654324925372887329159354659495965339984445258722111464214341623044938078621853430189967971905940345540819214712116233728375386588991319264791501791079669106298965982763711153577958571858646855927834459305038287004325756421402061438162004584584786148142274622820745779124567389378151166574916670964753005353777633565369930846947913351059201450781968032088257714526118208001577532294253128004798423311625569574844995442662960435087991767988230564372605080154166689651887108745255283377554667085806489058179684089263812751944929570247538938603365716237670054489644817367025133865715636413173107466081854903140229101649485240855162516734803201712216339483425818436773276862059312529035097099950826676137341606716882769055303214732790395291642699264938119699558165622003566815652988993236320181826736739257446077005254647561530464703048461889089610578401652551565495110227539941583247619079373895950674235359577534378165828893400553349319293138028497120429403708838637846336049479188936134492665254913298917269115076254400084507989387098670489624859248234987148601806256328437486852828824497994756326695418773795795822126608755857186743833430085191857922966180748509952057216054322093129967429437866824770481451843156856664232474426398337394277554897178042993152301527212176579794633163017600452525712720227170405589447606511828575365909765750670526708313873064949723006312039352181740218069328460055103590743974158098423038922501109188487943575094310262316487645198042504620245682669910885759335772105583004634363080626107900488216217192207695326063197865798089291721416540069947399130790494353533746988031496525548286845965122571981959388352158274773488880494920829843820911073922241601828429253672585899975248336079408760285187319609830200015627723740656966366588673230856185598028952754646771248464399241315738448977007564063899902785979732271831615716979779355868719869044457204160904392088094442513985531119848760218711477474559027100019602544159169597644349060104362742424327605487833037410482191546754584823919232202761143306260307163132608611735369793600219698794423095778451113729550734597258357828024882951909964010562991520746477136395099891823132954547624465726827618243195457204019532777255309336422028908674833263723272073575189041590657215902252765105109426286692524791803556990027414635386812931511410230644201742166531180129480560979753320955706767794405270128110806353180629262853165922760834800606663046622817443696586035202571612892459064314143126943783111249130916934758893498892998931042022150464652913057498219210507082433004772906473709751601327984456193696910774120293282570393824987664899821055381616982123407736703802953271096241411891059939223403555338568616241717552972747500779565424665048081773938148012955595032506595821430557956356747856747764198652684616660079277360809497316815417502871058548477397031795879043455578741313693845277169865829932345804347412202401126827004816615991457743402527648523636537510730248163149949243144624427818664318408066507255598599500096293014629376217215442168001339335380609694559680192789843243256328916935400168671175953634354983093907136333390636770025673901517291300975614692558173065485881398399698544269111046888809011588162455740212012944154869591618777161934124088186339303502474638983474352859504301304283036390438693261254448612736186026481369690836448034405223213632581015617820619489245585934952841117099936546027899024224663644003874283515549875646471841270864401349408873665623288539503867732478438858659810310613855086170795896797219414818336794618052903680774118034671406126484993012974389806811146727232292227347867384948785734402644700625747423526420677720298292058542117089370957721712251103626465724589103564853869700365187497848019653508200766257381056178831382396438459566413439565095769753165235972591305592723287564641942153721193962048029777019200210938488772553110792195872318348908646469684142406827145757565243821989958954204387327933950282956418356649785793311196005684030832038081906425670138118198246406602523698321030553650675455147429135232495000863929421668831679339336417758920500847947892405779871680699496055664718076882105508450612378247795899046653942806321656681467657346225578497083914558161544299097288951980644096222762557743294477987987558598085118570129201751649696225343688401911949428133763301710274849617523764764379942968623519649073916456758049072248391271834578661114756829816290688202037870525849649926387367084907968399365094053420032983373891701246934544340841578364678687574364624489367165455535641664775155702514691926381841650586912483931719353536642646023357732316112759260584859344173986696112188740177227528635838217022932506326200544801040428861575159606552189712068502055988037987288587099420666484796404133439612995347155824258723064577396739103584473612118110641327663001485417059765166566787310198734335290930736218323581218750553077194585621095742597157037537791428197125875474714895704576576002622079209874633312518353166325624426917363864014238568586954981046305347122698710532869435786152679346220135404775822580041017340038885597222792368325440874576154755969905463809133832884277100043608477795185131558880301841780333701586023935648762811724797954526031685362022706244216077485379826491779905697141515711643090647156185004781221055537473608547623047240284031211888212248626831255744601217819314605413916930639779203591409752186109275250531078718798768005259147210990411772756342171135961782044767063832189203060408613106184115293408900529790070181389372511555240687616721690122697597710289654568107593412109924865091713399454665325668320128498794640810671492922408137918504394351491148293552354423317658180376932669584992647585445324858655447424654106217204510868613979812444948889377527134967150717120090518772749200114291235356357105328090484696537855221807499356317014017033196044194226994611777416706411059858289319706086196943093933331724064101388781522668248569335488407530027094950059826530361364909464395112020923097072221209180861943669501848349102940864928564711796071138471897269883299230495119068784481283305182257752106911510163376208646440922526261681248621188525636056057072965834872045165355295757777905102686896532011649280580949589718780659420564594971714529611064782748789464230237371691725907741310756913941655634372061474439814489568207400195239209234813098501837204158002211628504959980420127331865656339939313000868427426311094987223269651560865201184632867661734324463179668355694086411962784799957529068210627985958506769973086032121132977564631785051248225038546506513488594639556384488875422849365097875032323578467729485269610368583596160957011219321266599172369733876374993474754949767206656742594775912648224480164658794103209260492562684835898768406953738823030727331340516906404383936256794237298718825399819758570179812518877669513614655776250588692196532640562208975955901540904233607099584793849030231761199867990896224716793012930930913085699893415038732687251887131001276818893704703964059108172440890420197815939812928031637074382310000302731102217176620511539570495031346448061184883667258094087468714778505589898496614047839220004492524004298177636796362526777583556582017969061710249690390490019692957544078990468179190835456717205867290168228348437696683419837518104344975927705737168309185082889357411584846952262010776323456867329213668592457366373325007003017979514917966657342795035391053267390826977012408401578068252811411334047132269873315757345697432815343274367788499887307589056173666158022599564866513006077645232849648609337125701359622235837434669549885920358922365138093659749404476224013013916565387719024589030077771795195884023104654495815518654022104852084318204348266841001968204848646254269956253891381507929003835028941826148393285018269265622918570189486824223593508749275549297161403317988908589423516566220810833174218251413158699555535219500685452156277065560798654794749011349717108497525383480865550958687122581365470611506669699149767090847865305942508741504897441434494372720620148445405972720303282355699015762399785648358144264832455724548384427320946465077181495151976348203068486659099652500917607002492451334676485606471787497332068395964112885984312847714438636476699410651902062285082285634392752769662691780733677826319391915679037773834409018724305311722433252071353927822683290810395594168540158569529711612427770222771682324607236684627591030644086080351021745043683417702427026672268259309326754277922369248412093429649793498342279808357011463913513067524047350353079667182041072675552599549460278048496057843017896540321992614410169348337933031485670958899751485677058660982538224962596116957695140468941492742156419277838701157641903635897789461558945465800848915741720427890236783353660550610649451839225365860865257771710590932656770587628227474157642911034188119886390946693645345194928047797530947971351292538098501403203193179946009214086390595404263744311816772262561243624161903600410881638444700558416663713021109431941669662722856771615760141229187240555113719304745779206761464290333392511827676201265031634753251045274908676138418661285927020871943735476344507468547847886331050628180428726333314262495217060086047872231169081492877677786511997978068706937901531523593700390229864658852759598264700368024730811947354363418575837887851912249285563980093212006002978223918771532151108973297863832215205582805289262435548045192729269426551978475388415628790582978963512216421137391817130508983471352495382077003911111673921566776024397610074024934963589589493251473158695979537491584861918632370266155432527007207419391555556034895514616934002716256141769471193236472602671392485544962871927319819465146786542398180087682940294723241702406838027642311832689181994246805946298803202055635233915793380833997192013728337142218634137840841816126280387711305575137169591886486614091169567073362452053121290025694857337436287914691504790132035040671613868233935913680524739889723360386018493180333128577574548259821723901069484332169008744512642796786319873056170922369117759240585846948445075324477592711010565829327352451829280395289874109467537371145861810616386469096619205836461181122894981224922321076497281105155732776436469271173917757229158429136354478550224457582980748735498069045300006267598820232486450867053328761542341090820427042461498593913035097356346402107891869807986430255242895233620153978198782679008401966780753536004421869489493379987399059868850436723501371079537085053908979120428578620324822131153751741963753848727617308530594864294278295968243934001912664426086764769631618957974004052205590098674827188636981797775730365637419495843444190451704846246554604300829582358855947075020786066684949056215041082911896939238710349223522363508819793765767100206152130893489827404912460798461765180791960284962729711873942895661281873383413819808718924713264657552258026928963146555113810448988802243278813593582968993103028600274158364377681040989275039370309292596237002662561577057857895288654407563236365362785908734428789792081066066123558084864878601087344423522857068559076278314657294819965945802412554285673039701967020450836684174931977664187476173112395536465921764269114749964947960732696849406813229520566600976422573372950583075603677335910104191393851329114243720917889671342042305071494916377879525763933942254534916572181232923761412546418971132193433053265251330611191985505202584033696909426981352388274546490420138860015795875993421723453144854600144871840654493969324175638044602419167052482217189521698865117271887091036230818959851604801872084447757873839351500317537499950162799101329269263479697777430221371779212637872124644763806503126203799074701604542665823748738139307042778013209050322349779171473395338031114502411573420845890729331470911675995241861754584926230130859902938678733081169531848253101998143925063002690494163339200743397094200479344969227860690207183230311080069275100324065421024829922952162386002811706249024209335467198037686428934123481127144998119303429844246645934813077714033476658153285688516566715155870061020046892642345524002826844533290943618506823111735971494087861515646077693611864025832088882629063395424084105404119829755498099568738175216699714740795635836858770497673126593125763685224080558930826554989166635656824044987343081164070009335223570508281362538981043301205278440393124383960366897692318690317986998484686567373286702339539181615674604478063261677559286524012751878994606595219930550231050647531557238017886840833311032255312326536769820642385847003751892483757669770638013926784396710729619735343666332599650376966049425059676840326176374840432073779967027646049872617154358049346960555984207690063310025531635004103315876316709063638700592861320632798213762256082247279263923147644521414396593111203808313255558866066952304421852984899621096351694575120698718016700421674331942658748267579835587714414102206723062302080123068667884960529535461250421504040594105879267540333934526449343164661542581609200665529408383941972306401701830475549532391147827412798828573381225924338015340274553462198214696120058267356498863352383635534813842303429774682739770442056489999506799717734583079176028770336260373055153313871528435476409408771717421643571799821507677985625317857067235410857149397664401881024116245326294304271094215475695880847921867720545688479281809348238581626477116970534148716175445181624185559919777860580257322819675245132786699194005448030950709018817748929425866961116470881463327907009802472114837530508834669866763752876564175246221282873462936358311557065678226130622914842010346594331744487911805011186449346432970105353168695301995435328473820716861706321778338577918175607589017027366196170567920123091342562027523744996329745097656577301157856336452320313274246300141684311774533143089957233456836321124437453995132839665919663007304082340100701794263636048844754993639583379475279027106849695467146674164244380346776447944953792725029193511764062620502679018308481250919891170797492833907983644286641806046854521314392780287560842430352985537041147019960011229605657676032472870830937701629130537325035154222014791891237083754094850733275768397117189839705211047166840576303517230514699578952325123835707169675266353233213264177201290385843701243235186760556166237423005497573596808588562124172785949729246380823974034396291346272795863906325147421986461265638396890565909954750392928617634954967047806007663199309471942071187916349349898502192238957549760300117294544874929321655504382410121181591167969664176843791328316624273107394408424882041905943326478540966189483298250597659364752677382767631223621035192040452427882207007411342646780498656902407250304439201246894390025113717479064500873693715587011145142710333715902287810309567040807534415008349640756128559756269985981179359708654001022341719768597926016353076497933102475718810502697408853288296240693508466942645381443109197326978790415518662541734812173300225415804618195651539679918800240127467326028082835302461377573165688582224769566016335839778201494321986400919401642185118019994541577315422466352509548709720792988327650315083693780181606617881228289322746207051886036467522691816610512441617416080777613827059900235329351159907807658232198562530011223972753545534784009803689616041248368608088994967115923173703492679768054749059255520824128063887121734586682632058868108782436824072512000933907084950563514222654670879704733590221702422160079097642386505525132382716845078654477967621878323752148262149406620241427602822934498460366437420952010576895391269741877002228126958627379784560126355153553677156364386969758122265706353162913467973538873191385464289214643987785874655144300939813150018093621686442357234569729889546428365417818583490994522221965657667934802203485203451856104996068023742799863426220041124339379837157148225434719006555606270134785479102822948030333872084976208149382919401226346091750891231438920405942774643868469996653233731971356305369623287095206036785298972891449607837574736643827733953149741371266534500982219108196637332130301389037495925801280876326432131018606481848043680861649391526442656791909763631183659696138697127237038694048150252977168064337426413042239214931554578719834299370407025206121699970428383507009672333620144951935681287286193170713243916168150154101987966370185828920292084121430982021267660518368572478890853824962716411806485244002112048622881829505000177574006537465087663290496487332470194961639599540775358179153502345220215507420491972710534450172909520175047223393956364578317837687081599712597643500480996843614516741818650776494752892183244736284484101193124567586919395249989294430174339318510807507400403276698230343577758075706269478153040389043925108390205658772599654341728792222404687115639801806078348768325759030868027857844442018266597470732765780486422491460074622148074472812195530051849674382690149812989378043441998145421352140869934318385959325020090243267333728639479659523970219179366632986323588600202739570105455703382901199076833196323197995712203895681778035739120502003275542322275776653580886025172329867515101332682690252035342324305832242164443462867680474643748360088804074474520673392558881832199829961584198972618464324966051235148895918802275803876396008483749568636217187521282262820768510749296720438861802252691232842360759002864951182704497789732154190810220035993350427836058681342442029181918836593186721072609634654454119889203772808714088390105218000727330054266864123715420823596113914638712879398150139745986403606585671859371041064697857768607366755933369572815251070387969460226061351119433143544099035256141905314303969378483550495487872915010335005676640150636514573076848360911816464289009175820257504161835100760305158003938789876364606289863698559013945740264220169556459130012206209635098090400183043215564343326855655957613421808153528596438565738198206663611499360986644797934956059383394008367236271590507669105086258360515273253954910159773460373822445657485739148602278187440789077064892230033201586477058547198080047907993915099013548628096405021940315615227872906496120477068274001974576943631157699435094493912623599255232740792356230535162547306966532623270971109748879785289090835794297392361323977845476834233573505184934229309055921424249251129014831029963245367005706624281078872501587468169163381898057242628294783793159307385353056102583862912514005774314127429957186674228350803014481015738913371998637770136058901453988651756169823676751433378414060642884779723308382418504126148179739578714294342989354714435932086491192922002118334800516116746902698877089148491725637814435663781014383063416362550051708335276788799048142631773436049711979536863673901121261492763364245880782435759138779827327041828754558154821541910609108916994151482947233351059637551847864315825265316281099769056607913686993305967503895610936254876003918410540546816487918108496442479085279880622506624609553162099248060571491500518276017967246352123843871028908384493206581218730280609696922651912840771375361482105567629996371804458021446883931767750440983310912922241067597834791400428874355580334074842299586813295960611867884766250488290556242518197313565839619821817184714969505145421390481410698533133934915272953431247347870205150739180668140140527214466104799421341593755144108438186965111457664967865170279170543352876462177555873509646320186898736913022616755448994083020389741674800840065421495889427906799028261686930408745606008141610935908809537619278702678067653450414288738912031256992689902762123889654001654348733022906393700077367171761820048419120839872664067170197763052259757941639167060497675875842256010447896306545652962675732384798157680259254660584653849548729374140396302560337996570620148839227596720884322725842072788505862877156622679225638654851702235268448246833296073316829697430583700245417629840581328755806582122791369924969908083742190710212831256347202047317615611549774529240770531827709387097590662640174180021116808543622669579662928563067294296176598695846697240302546301416823994637945950314043641632046225286562788260108857342124538588151621122172962179040784952553912822589247241829815003344992668013989420005863695564780312682917945571632754954382548125821683145129188277949841827719895836544578298179571795723008623074704515657008159055319187877829851804160885836864999966164717967119995209489361402433313918484523178784614962284067036826278893874580045644431099402500950047040620697595545356027116070177363104989511476724159489511321667547482771678070014254570577774552756836166732799735809387465522378579633748400125617719347008021042509268286093244629225390468248306097196089489132800338523029126712367765418962110148976567224508237754984748305769171209099739827039442328902106620634098810175862722326155418996261482272767489024416671056794830458359050639695185960570702915465979432499282862951745463693111976086228621143354208350110386162244734760707854629339065130097506107232476840549981535629966176350618347154889246912065109638668206810992401926038308931924384856634928017946553979420136457790311417581916784938157875451758857837357308664168160679653037031606917936900543457300829848677329529273938941748459857497602106596463318265545831432388885977107253270456106149347933151748397943097401037463548580525777959243531712304799906831571387312297014068441552427493195340503128852936505033569948743753325245025144498106603282414364735453804557596192278428673394066974050273766456187768239142157887289722896861423154582864449115578887285204956060827925719455444357175057815338846270530382063503850074712868749313534461216540599845959590631845076939984688066667134721304356112687429690526314331707144548561897321751329368638502512205280680901966055389238885827909138964527059253075544879434265214182345827468943530657251217959212578493198501633992538489505431946795927415074875056763922315564255687983526111915448659232158877722291866867696030590343615778035442463961770577407945675821144818829235457470471999718969920616647284152255798965794870974683254052055526602861471393197734800650858584672990591050654259241176017304550226939494412734023123142588077241967396704077701876557132086154891462941344967223858837140757537150523069381065252303716469701648564364175889044069654076601019050366856561086621386719155983824850769826284933973199376016621684366494075704828395097118418356767758942465660427154255933215408064819858231782700745927911435368560859401652641834544731244838515587319601001925712329310815641861625877439213653527469967229914314313500676428012300560952602922989560844743877272976520216364321141041402194574243935900063830159522589549178300016761386083278382087889680844988585083473988295219462457287466707687691800747639477281868690368587240353059125485366035903999633392697173196513711642522074600407200118533884968877821480780960559520053355064913338478855456976247535405226572394041229580081408519060447556584236691178890393224466921171041025660851950575909919233069044347612262957464939852757197171774102642330982892388927031473339776893910840625519688292291725530841615388251526401456971313374929602318862980101533685310048659232887496414839818733877004702965740508795882849295262520494140863501844883998889379960865738576286692780482442245009095202579829243510430090790889431571710884945019161995160284097644429235850870575346746198382870126470006417340730182546757734905253016666839404149441321756369798705382193275871086125787089619551403947882371450754697495527933450099707415457417934792097725650731369890722077759390606303440751368784001739832688671010434891139706213831572841926240351546014288932680598466355358211268806233833326081503708709405978069124333570238155124176829276531520848915909292333865399239552442265932047810351450657736886399396221021647591348367584042782013041325557965558583355502393629573181566204512840395356543839359769282233031258471089228968372544253605933978395651230187426692910176530240362801550943275420389426602589428702960568722827854065493387259580358340733703408244801408007998417980849105508247509623629938252783812225597969833890533837918830991537960960641256326882216134434132150125924466750499556523886000650136510763671132560738875718515208841752648266550596209070392000155507189699548052553037498833343841748952165135948189625796886789015121399170042266933179081584796490550414960788096896374531226068400109327548491432021241055785965042610638881626312822150960461517414050380730272785675413690203308671329511870188487907403220895064472708539221087038911245683983323600847391187724614597620719178408401715685411960293609643180943582908849866779496237532314671284321163622262031595487131575669300135286067956434803151216165947782506163234320228514650627656132466760570966021000566276139205960902282335540521716023228486329361357106589224638352604600471488361230692250993037133021585979772084340519382018259609744840666932464123205469496335179176214102022230916861579618398654436564376196703272161126490717279487423512147548879337672176832254280931012485200405167988179732147832478703900094345549674343729497761784334908142917369746656207692514532196327482618525289370538776740322235539480559890368765394942842696463320182822093250236694390228482360386689298453902509706617986831421941854684614190625610598681588568425581257113427757270168977202056472663494400334683671543627589323966222422667701202159433049263001367938645492531165331734337446564987859258770140464199783119267400944311529523269834737122132707470589240278895572401227115771364046867821956798240637908819164298592211410164933486939061903679697553565958552679711861261760262761396860586984158147979736747359383643026261113732609794160502832091126740874081294457155250569743748906006221257309711186206832425293723537848300969347889524806699395566959903770765199175137387635641945076592484385332169153210493968536539754563928331453174269114345516534581584123538284456721400368957315744156250791742474222737047187395446344787334301492258541851993863988888350891962912685786604941507095340151441941992280940317302415462714102158900510466589867263485433498929562475345983152762356824806728833201058631780717098451350673925764575731154630050635864214944495729257446079635749200339966187052421233786085099294197659101684277780980512176737889592657690336986543681349688927672076454922785938875441644570726947477760378568234894153532752883958677105954493874835910599535305068520902855458530402077596452028183248878753044872534755787900535765180855961812824888100829036053079112837725647992729969437164012437232024927459030475178264257819164542907369917914219179978503892888050613641194987571029403105686215229803886388757778845798926920295627457604183749036080902296827161639573779108084824053519052569328119009528100493353350859257247575217298347673989210714561297701530207703159861345887419886074739248812209981814235956894461086701011535865567116795545264746560360578576369519625660341262739547038577682257822323095762878165387916143874236756088825222336898571153658746094088762802908520414270449943199353097628494861892040392058267124871303623139390118357422448335760092149451108074808240339877715272396230596811010687352693931851078863207106271717570866805277894892057475600592022143279251849081744188770384493798580522393942201470524748545562195991440089426896818975473675347240706336485890577793552081883653846742043452834772928214973923966140739045001294603550212560194511641864399931440412755414521187434654940691603529456217794783459644538442323875883094887360307274967426443848038161125557962638232410330498158346243624046215769750049277130993547162032670993472405527280198501189573257658956437475968795812578768727982833358175952184586138650289855273734224204684258569258224490828443816662682215677072733520221774463525396091349140584065173660756284426981639970559255251693600788784493837688207247640332212820375208723314376253130478369692324105126844121928063920560520651162624960069960894493229598239683890974433744881513029789391401924212157162558375562711271582165689171827019813524374346888158045441882733956407717304242793421586058184837350920759666485015168023909698949332635664302233853310825105483195510260091437728830858856101651316117418841707344061665091006030144830047331482805210044508919530251485385676122112981476732822752158488849164333838611096868838334213597391712538995242122998297893795715971447399683936691916186063274606483029644631824524334012523684859899930425260072112028368154699791300633886639928244828282370615479722284664829108027762926888355228607490172000813285860824584564951938390468365514781269890643951781905034360594964409083739487004389924701411202989303929316274909900865283988378156146729786740516051322899377193069016050677125818240970086608896379117750707592772856346139321473326347838516272434034368552504961465263245961811099404568702354169725223366901478470857921398538358723442735654471613184739308476465817629446073811937196252621931698969094835408570900783152882805354184041828051239033764508518162008887428255716949789779384475631344587685560165330847563653894901881815951640984450735688282069583596745479192861132759526294452474737849463878521394579441665392372804939923714438175768506017608807420722860728266957002514909191972158981851024975224767568807119350192522867040377859895904369269088035113772826648622475227259349152512493421512241969352461025665752513820930597971041229807414597943176122163229271576484205119425750261425762593605710874331379841050605989653717747903666151895425222218998245525397220579296361701938974131522488657089589760455305181847299750970704818212823342586845692038647198432079163702708852681290542777256403006168396687940451133088143734085633242358816738320715509035688548891306888511893038213575197386751985777271263233800655858274818176021453681677858041920130253808586491200038942310147363191567347468465599328174377082599918198717355891424555222106598699596660440486230471516810435003463945642041397851602475999758980944109839021646352119307045219139402840762440026952781367339497366684594291336390387332945159505041573747938492579566871720832471508835457518049272777350623222885530075407377792192738360504137406876806151189231865273318074579336788858525316663422262467673516428311954460966000487990741287163391218927514044889506757019587010260660161677540481506683845229049083332260129664885367710215240398963943166174792254413114155883844841413177194793773510365982588244327106006279647443775531964476471402751820087242151491344570594550544675777448703829364790442512241293471788356499436620008844292595419544126491060388196902757877578170884689450491093867192114214079887870268932517947858893850268936460730203710406172530957312028050443991280657064962459194258234275339573185243346245018700231926560274127342225490122153911545939870131486085466311918432197943381257893895301679055627364455339600289176478061641139274590547040095851066271473890441150311923391796714857690131608477368119434670937771734121911115114737469179118254666348108236772861901073174971354286788524963226814102459237510086573261055991124055128674881101767873228421520794072821895487212356730987141378235497696946852506235996524336809231218485060660585712743568724044277961807907649110286197439435239337320810771842642888141488109174140166622126284083550088772967605054532390480275969295699612828129783706288129569808215035178932419732124872075575156667240792942283281742297043767546684442536048740453529409185600916276050409405463058365569949720888791174746819421336871323256109373540496675344149613482605816128021900664656237314555585928814485636281396754285206747248788258060748916025634522116415639391864065959657096859764879606200179940993810612719488696338711233138453910367502440227628472534428899138531144901978686074653945519157034041626202471051716149700635554392734809843742296057612784634695982393503017408945552972568922558460642093347144893984943914370607648824644360014062097575839050067937479945361780940082005624567831972027212612961518868069690106428756195653460399232642496308145984354716107030752648171423901728520415533124420793324484415863629506635909936278802666726254328905815805178940208322826018225000560154366263995038397872091410067997587767066254847920000664020858966237970890823364795661279892918272404055207316396856276784104809723659687625332489062020931133664755320264609725573411226236923219958133750120158571487054764347742808884450221353590137954956272415743702288950717794618246225803185927942527972048893021888087610218065102053424916156075363450090246154342479677289795294980929766296095230812561248615188954319817705734135515271421494289698710173073605206920204284278456638485368388681111616652084637077364862016058371033429257257713025688844794290661458490998466288772013422184259787640170686197824610958930205151092069404054203942999543080952082145824338357909310087554482312329805919781391684180490575405740603203858205671381680681190264383348828566091111798690678399113790219580079939402088948684719655319339455087907750733477353367461112592738201102813287320788675964495560400834709469363668889978692451689346829220968164202335215080625775368801360186011525716734262701299325306349324191652401617150346728967808262980676252956265163612846194885479050550335326952955914867872877721940812902380274932732247824224799056603215332567121442157498092727629367758001668366056759931066460140978278619274134790305560574373545889347438854637148588333974015779707709175649757399718911625005132264387852284190588482898006451938382058693044152069493572571529355989979469438187939424515305353276251354486523019271044916056745962940538244434705394284365295447193679221755540017446550832471042969489541977563865285659515586571836333055108365442656325127333476048719927512293195418503414972178145857339257997655307502055401854461938549314663851932163672382796346950566259589226781294928373771762495010384309650473943510956434755020750075358162355034171887187723418370470777902373192812313685989743665285086388180434635021186097480487761190660893973013320399907363588260440649759242164637465302130652131039274353091507599936539918146942309580487553379421879415590136072573919429061548789592908792491009854065018363531620322460150402071153255120288110288906241531113290533715328985085664371204023773387521041312707767487076907057020542767460737342645907688839217436637137593695298404473009267055720004191141742758480751851363996040508009399107474964461125180604953206428827942947406461889834955422739839016019902850276792145473696581839929206687794719598051329631225430479345942204020897955790686744471805356902374357214920960158999377995399405781516152672805442006678287847185443680751607811160428764620421063142206890891587985152221651505450407667418908558420886399775243659948617635004561654770294096975921669920878938397662153874634417893952664503369865359586064039019494321589785592391589048286994290292468665326397168565310651383691281137040309795268814935115899408635370171633546295845049104669225668182793974506789249392036971203276191204458269188380760065207141340727177793312063234963575058936395707913530522017626426897078276408137850089515677199251506570230608675627777820442680781929536976119512708841484464179675364085141485660823720015316409495914168020388906348222790862818792741842234729588158131416859843617140999167797602223442070776329402200718960349208413922215846326433760148532196414246937287748283737165702215680770471110223278145251015290292685197186430449365767456337167145178613898488026033626284552247240353082720500193204620689983920914058522581576878970896795208034039950404257457954607741308278549770429743108872626141335686250851328536753584056159982831362625790191724404369716019852841775082244078032114544577926010038331871220420536190742121951719799694431985006630431946192440609336007173471851286695587900983946700072839763057062974864573309813967110702367971169210682145836965316968033327197029626835642805351661116631020904621161721771386366286088521936686233724262766525056477494443955876356262899816520110079147611141871406585301563400540202916288778240917206155283575398152022711104028642461078116481142372044702982886621684392573891113452852833939902536181930293012214213642873523013230839345326210336069256043272087351457086514341886339899245045851669756972529318801635762609203589529107992274908091388640039862027587792941197164410271998899874288180394861457208471189388691614763697862731063078065961938788345035232020652108266174011068439554396718292140677768797133880718318126213325722076185452805062827826076355670649569687938543783671702314042277160352862974074383153875828014763390111536977304141007107637886735692522887927023151690443772196330874886111162269231092268587849956952395564331664315802870811438975396778473364649654619052300556652466487470127016969354993556437809996945362420275340051261853399497114525816598926848631536072274847977060744986679661205666621986065868502769403434320209324013483718632015524788400872872833044218494341711319215765517841203155704145273774139506594574692095756010244873548256795018050213636452336534018448668976348102945364855637813796502596864270873186010157000123949541603270223376137779282373415208256224141879509804663927739957219812798449822380894072016253555695865506997417428031928128019649807426715968431404945685008546306957659914376392946072834682730248760272504895243679367105446407772658392145411437640033586105996037968710085558305514070059534589725004708684201181840879222184996433836841575709526223479030811868114490504510660872862227350962989293102353349757559506242612960207680183816460050440618992120827442231274336963573601100366074522637457265328655669237312415878354988321337921388722343333023609607782451828827798193370945410108105141500163681570701117423098031665417751278221062067793499339474159272364848585699516910146046776031790084035596136301467116207225839125425779026531189229021912784231757154044820490237034358172734648565099707147796706972941292860249341038489360838724086320079970773603810982784986470458152336070264700907291942691792183602043789133874968418135911426284177657588051610158352538283707708613248198218586495178064037652488744231889432549781077149536440085926535527826912176781315878344331883099776539293462869527345371780282154328440257263225759649769765866233469104903463984770393628860634609941790550236717214581219702828395442829712930087884700727922605284401894666418308225569590872212204849767379728136303541809568927018468246668797838345016546347296468508892926804402902936544904550057022619183495219447750484583991538635093623638471702895282500746396012448994811949914681289998725141827527139863457548725616411924106973627118462573276429379505557086677566080433297563967536209085934770303627073328014142384821969495442899529666849977551092519799928644541381036309616768893725011290697622090799514977413557818253391807739500876626220105933678380029451873568500217496991814720154313336670612823383354787177562603087844936948672873611858056122359289532914690847909370791380557076404132288142188359372664585839951277253487377907302077881072025978855763299894390881456307108249513695844143743424498444703446798283232085299765041298882854111570586110291238505613286086627191417367538293241668394640057001734031892597707491872136007468625858940971898686199895469081234000750103169858001534177876162879676464278649641638458627759064198267279143413919942284296614958527348827214469849173024385920946905315894915815643249077667844599107092607651950873525031924642209445100986205905844122079618722839016560366621431809586095598706432140868208975145459702222500404599989433525709525161024550197543033498586079118071334832995454437838316148088226696615675382635671334005938077274855279507559306058813688734739970587021870706055765097271437962165747168678119729134284011219920587307541979329554525892365346742758438098766590647408771506350030563605179876629816167711007612141847388878449083138287056979688621707046117774312916495134183397100221283233204480878297082327218529680958220065787164606732258873497647900781407959055515510923144828005922580671020366645461569558436843849798939273642237604212545230216707929179744925008492348753737369865383391376548360345599969225040023884943986882696177837551625801012079757188824784980974636115079861616740712618744439701978374047846541923717188244400498027439117462757928572945653644971078099075142004168787983449493558156778762732153013538146530151478215420392059929024975597934389001506533387609365800360810912945477661505345935730710198319762642117202913183821298657935598795203662384404749035132760524692797295380720447476291480250808698062159909731972563991146747769781242039949086396770027799660981538941786058652877194689665785210651504284413668997774785993572052429705499486003283491828275921636904863416498566762940573206042932469578273619976208887036293376532899149914474296964288164099722269898886292066091608781384490397394257830877825335170439415799049120805668164485439089638909335296544462634621225026568121105267586035198305180184789202735675199100198406953768801583775377658917050580856712165168625705672909783013959401854449950878217161863718152748789802344386736501746611482473558479821547092747090079564664787914305360574273794744913104093792148744854580721253901307434584055916815641735806943328335851854514157586902761378112345188966467618356717724043235764297224764049193217056541215810681745566040324456681226000113985487650802538610702373060102505520815535507182339990340217428592752629929682856922671999075463373064130942161910983686691928579272497750021643374653348049051468791560824905376566393938221783154558952602973204088966212431652071167280742372444140656687306068071833631156916368881421785921614282450363376343447773959104336358074582908109485241439287200255151485345868790654782251246603239866010977975487902694133877279003892135236702629005994429327724275142806127306270912718340597488648434588921400602585897037964188006728572006442998376235256252665633874184801315198392915433119278989996179292032289531102368246714123563832121185591300009036976384827717399378201098042237525881446215582979123481220345359342347861634338906368131201316729773156962707550383422796979843491426327831908882149429601707394073926288533747669227870153928040048880308108179833765715170830548736184392194217618830186342583463050902781944937287989853079466783350865232287767674657174225813507679037282107064708300612322376029367012544885761695176057389835117892354355794060104600708357858372395290998393994851445130510713162663247752299885455036592215990510009226921884850090220256603640202385618972412273327376963164262928858295273627358033200899238415779938048922364513748427390122208719087529087068827677697843739875753804000237521444745638985287436897440171228315518196093148025748301553872547417128701837902178328491878529032085953498129972275110598844437997498643637299283224279375486073198747550347128901931474906778569583556212095060838766170016509169651765601188273656260597755546281375721781071002631163611001027443049334662763766372289757979831719468141130522526133951045048298024153163915410043413617161661859743832231490851343877229741965729266046600228592227513407667509203432035705341759454476517390517636462941417389362451336857101343326244046787305077096815197357303184163048051316046360924588841980290292255636586011205734202159500908408964587577175462631408228057144360615454252912379902568027641406225907919739720793519531560730239523339846005399134530186717849553088808346646682376418161139821248512518779299531222005408633543954824308195701225903107948510818478781137778384833407567447861660575709922091440654997335446090215214658191255977675917394624699123532903266111350625121245248096375885366139395670380153635819209006348375916327541572918272550124058995770830950361667041222029288944623517816242256379539458514373693283105091938542954405141769297579485593791795772276610114360564830795973207350231023974577258611121314769859799185365473158137922416288303253467735271285922890386231038895735704767870128846517400046187864653624193785390662617330228722921107259631398476650747572301720667943064210658341653340049930102815858901809070657110556348987297197938049984266456630523274054227585602166262359643080921294678165045407514677636850071180369043410769949712823112621477831794575236988827740729096578046431852516576983125865301760338919264518100982276942128274613729756710216920457710859415536848075952623221566938599655926339135814606062496348160445125620436551819121201659139077828812433428707459810650848871604984230838953105164273049069998600652118928634159769248870150064525438528705368797375674083242879070648664978872806305543052756128179123288707904375800497011252597195779052406984513555783774076955700517364526276197123069306485622196695052166698138875343555457628684434400548308457724899673555823091649693847009218373049307399046244843901089773490386309294361052441517074599059965466587625757013928757486850971154526546071445140841729755387663643823535248252928525557623266455602947661992197901927416895778611604111467431284343112996684563860997229880046423628721221966480732944659922791514448818405250516245912612295968068021921046718760422209845693985419880481991203380948870181697903320044300602450721894792268854424679479848742689715657313566099660753958218816479309182269560150230355407882926576279455250470177562368957326193224639225435537996706603074290120414103879482037794986834800120825038544213147196626382858954684044911482630332318739573516468702413107836129388552295953203866996903410229564903862156923683840577690036572963581118113389068387414113801375844148600550312232817743741521144164878355502506941446495750498847338363193168586955866903384739448212775035234938928442342014967470420173659666276513067767544253927604481941540356876090048517583383063696394025193096761651506470829815813353983631418154456248981891614438507723579278898580004312807741477163518446042552409512705903658422941055727901536624191123342324358092054972715039825884908527412851531480518374227122582557739524600919786980061383413933059514150644212613202552711407214470304306414128793289842454865605256478627795097457052895961900466299039660191920914058993106802599659475155190516418299896490074328474576586873987569939136455714223431975906475913863382279819037859104470529473313618761828263061554679088107500926973270612342132582769078057244058124225694336560485311283512764777100101811054546531529250185042498007235817661907879148604986448276376351760257259445122457196697035279498443963466255901046924293468893771803654287414659441014592509903086938902517067520688018943620860641441297552904606397145448975956961254245931816187880115834333962365662624117726646584018920013766243763000699292358389592784794199229207232216566874921968189913006933111256925203581705868150096055806096142710102065359060273632752715038526978846723091501408743854576978019575389609926678161688034153236326457566182854876028775467626453897067490841491387272663446515048740272912138627858941080936555914391743305772581242760519467826512090907214565813422157872077332646915337746920571759175821968079781388464847506828508696956632140942805962447542328264161848001442638223271658889026205432227751696198770116188948199948028420639261165547402316046010443637523664215640076718126223084974613236816531429117353521855029600253330901014811819166207368826213748746875622847750258409507721034256526029777045008907087865358668439617742900404692869357734500997364027199611383672847297969284993018797093318545825725988910845620760336217319844034222833117917839240712168304326800353129272447758913024784969936422815038705096512170979273138557112252581428001219419533201261649466693209301964948571933045208562358924389961949093106315664587852422077918677255281572001089156638975214764783749315463398336674970530927246200337193280302446749940273972227752193012847941092195436544070653024394192612581963391037935556500301743988211222081658741090883909992328845475902375494296539458681597974137360977140815373959388544735423347264166237721102511440625113374392985282357288457648938233180362911313782258370716354632550229916636362479167116997406848691456439005714576135887863308550449720275856244314473409189272814227599304121392733848895248481047712172832999837179039379308628139536499867680149582482582813957679345648950706827897234701738258875886056190132999459321350285906854517008129609566636858186195529258117048881456292399249341533666819881277673241995025649748842059857902611333663588708705740232385205805788133565802195069233853395204773432196009625013167652077934915712827609796134142935999418307906660960713369273092598957480515578258654923927234354582914660564958321528481779934813207375602964677070572943898583616337332069340307841580860833938229033532265884961722197653196201936950023635342444385246644231450425221300398102693854769458185120155072357608254178609088316040096168977130028425831911512694670144018145121017138876732776419095796982672495890946941325629385058217661998227547696317317222152313946598541313983211668746184148030497648783676311471584866626727246119406229652737004454676978013441384714632347715285823419252553258110263313679217343516100431229359728129262204663124695753715643538793812497418795996272310584034718090654981031287971484194119601676438144137460014269823601109157076555120660136791285224701083678994876895104692678304528041795364347295791473603248457723209745941829689722247835881854291712866015908713622825056219579595278891154530370764771296351690750896574831981968833324505772290674111955709330558579313145281047646656927106112714852111146223310413546845043354861434506498619322696500263664212862278874218796176365654843350780533268439212255493486470513973715118194301743438540442559549983464701248177343545476817658694999470538721184295705175211969328565116304722189115755990950491098873520903309599005163628314309007570986959042611529864720927067531171460531645920261160326847282392229557447158859175325244355797042458023903252256690133332905183451857627021280939451437930564044221346616073612552981389008753409278399346309241809736392923850044455604637210898340659209090444898125315396168525570743267527766832280197595212091355938153250967730384892464850037636673840987259035566820400974264073052358222706574153314554273637646199053273769036825455972412125672497983561417109498869246095265177411115612287415289994664940901420631529509794870009320221392068064568154029351108411628253383736732469523929641943712427367396594007528977989184341941517163591862646273223978786286625087873301240069866178701102934608377010210187654182335842799925039372905517738567404912592427929976662485689156717043808650665241943339841193843979151595447716698940078349157370748954795434969684594253790041129012143386567811285228590763652493443282485685804864595484343351103172338723138333878652464007388058267743248115530926219041561134590711683948142736266407600342700307218682045026454157808263863056788871077877672687550475928367293491523298428060872866462574369007997296822768826026716599556689562193699556095472785093251310401030520918027473014241685124111015978624432614595888317242495763524719020765116599317925251714601019845532267813525382912755111963148496849970489193627651243507594077435708891002344709202816492564071502198178713287714388293857777915332682719743046872908541361926961306642349391931660540449549539883745726119463758829592816308341835365757965305479112069066250548165563834327870933587149716610057356435295499352077734934628583186193892973745902525877824248900144495019927894501543844652096304340612683284835345029894923868957098601078762467545346013282296384514643355448859004299923591696038874935725687386322490853788344295504717420718087934593362752276383830493218933270680103167529556421396478471693117822478973156542591345190844094961106407290505644696993915029508984354840688510574877535950881188636147156118260737700476139758205711919885516533916669512768701712719911743305668490407234849793212600246731941948039051145127548644105034119178714943881465170660475634990410704623946276142240020591121622206078892779392322910102385542991715445743169945318350050987081354822736977426967287892317695451493170507277537162495107845639585540645179363699622600485634687569505961021756901763482815044045925853290439812719598059577879333814724901260139538811654480296287077595116833727648838901998685572544401568810301420593779121941348220262714594299373615790387974513065830149713557664563051521150116725886800453551314805782458612255166134676642769269643780614938415424350683255342440980600223296028315765853467132640309197721385776199139363850434719825438800393032350586718639667351599060331843510307638938682202005553661302801007130714535867988026894424031162437012770499322977703646515946573336334965066074988361805591261073965841208687872599755815598579186442263806237994692583723565257171130120635135691031913170740033832927899568935046371358058616982170632682345838415193339126197713383677321723267230374324762951204252230142733618628059213842539542518176383245681151407146934438130285412804650794529639039292322294369174738402043345265939109283132301700876164897326821595650666657285594840230850014661986835796076999992881958899833558478198863795178258697038705506195615384184005568032911579210871290608914956187451551898825369698184049559713824195023482392481538028275025194691538198567795687407624638010888334964632957231854531688475638736519561637411042245564938394254509668009612329184385518860915095030795737322318977740346952801826019377016702514324003826092066503494158973737008181348058250334638674423654898927878378131842201072387323336733497155477822864951492636092312742239839030470514221443240489095817439614614524267521029224533806862849165552783481297064666833207357079061111715087505537534022143979266187643644001880446115997049602502602449282488145546214117039951732715090283649567494316171205435304130985825606262343319216266426857332273394891576827437570675706227243391227271441579210174197560371150246956248888480235773249657833687020992378240904082677539847750843788709808668173467888072880333552861405340638896366510012894151460802512005306861910490439767419015582590949016759013679174276218197145812394027601297700859755846753957846048619805945016999612183468984003110200625340174970685720729147098739355114188163636704737239561267190016390984879729848434013333751338380960248359557783585932311665454307538718842778064627471603307189468467824632501413408604860032852573184860481351643363706817063229344339676905635942581737051582274372906174488426719858482515174835948275715013120806925014381449655871380389021421634459995313258806838425975590147006956231271904600773506418114883150257711400020631823105913661046435968553546516940959775773513589747284595774573898544048444150374017957694241665814282252849665965987040613207090945060880615884858193381487170815664484043283186553940453666071628721790383440355851410719434894445676047473758543102940647957053085857815990992486825311099843669538621422004032233514889163543198296107196477079229593222686181548660670613444412939561743902511159640584632434452995414335877313396869521374780916466735000172338969627242781823657620818909545963242852749089492561119173609530581177433041726198826217776485792372458970101106369371846490868889154385989218205712655496962924007954576659706967518723283354306733630190592547523322198579477713998555719638794048721281296199519212038768002444474251096995460520098319835309374206084597202904897495695516884533086465842080173806123142503234655782836297812776436226266252314904380148594842958828353664423543963375818784142608718929978752679748730465535725802902151031869971691938612880715988978827643901021287297536236199429255832902274530004012939958806063756534844428808717346308448991888076302680767619108615315147136910739939834136471275757336591891471224845606706911894374678675140794140054416196886850928730972836361581113091995970175406948242749314610124439054382300623069547348427367117253340937073202981628461846157915078318407325967811575408673121730113540393585962013957537771577423343326543033766713032975367446594747782181219406448217790846331129995657405048971446372127289769262764507861503037417537540610953958639889350957721973628696001466893549845884645537824992131206558058619152703534627848441464409341843054249393485917974840888847870089888181019495183841869255155093936630200181726951992155238659293528730745081138615630841945647312804102736196623204847125597673774370422932460482816720303704426691991633829092976459709819136524964110795266391977792225209276056924204523865074394800630185911624736210825700159276751576503359272251560137502584924558326691051932966765706567087018094102227024596204765287092943796072804019062284075046870253439318827106266713702777539823016360398609036120526219126636098569794301968676733097224739414097108122854207633785094654682705101106307126585116471526678354953651795159296145956621549782160000405582701561932620192771122841097681410874444272932721117113184950911771629971106608806326513292113835214142596992552576451896106571582616327757051498793426773183052193584990759384694273263015723942865107113704797729483922584190905744104129572207773817414687513259472879213120353705418160137109221540045112535785623109369766232477406955588095804123143020868115861860109864731299446886132847948576598490636020262606829434035666626820961565631067482968176632908358988564026653731818458635583116588280865388639814127595947925920891729172941947345309436469699035511716512508800522276698133147872195941547171428641547835277311550564047374057995037198583464880521214210703859190863809311384288450750867452085412822744702255738591552414988085392221088010557357611150666868524992846424573840275221010704333172627276138491826655411604367531602210218050611714357766179934501264398476223192759281279350050887062424224163847636717780064796128692796132065259037844666328229879759410751981085053484109717071806709651112999354087509472859692117329660813106120870698080736334834213825393980120931961863589416001004275056492966895804678636263078399707535339426379100466444788781792751995258538747491505336369534141061908392084538883023164146188748750065459070918039889465750457729555519966174717319964203148676374490436332750090503489178711723511747519707068443366895448673578438368168008794836477410832812383385257727128743650726315615505689916833289827432664736735059452739442692851997031617901882341900121217621097933328959261399798560563152590117277398542683808789246755947338313355383628534396028704270743993354279563438129847250800616003300158765548421348383464566651404847186927858576843394075190105791260949758013493277196750792936708368024511317550327361374499709648653905117934926685972851307256498799195923060319405431516704944538826922974846239586055849842286611474492286294167199681003354996150778403346103508731378911849949401720271423457472068166656826972125514962565777437360406879535130280941332237291648653731390820134874957284689323625510743046026198733596100857802074174490877260015306006864001046736034801470688277947849823134533329875685669028714314149628408882346480048336971913255291870690402354308251705229930034913262554604118345473668924343938490359123956330736194623861342036488945760527041506453503668676134259618442375957935118608603305422198221479475327144990132228434637312872030715073260283387812573915999126515327376665837603794316241091497799227866359258832411553820325925497426699090939465305857819440304961216594134718626833761480415079634762315215806208776684123473002794396481943383821240085243048187658304436964963392292001354718967101813499967761263097232383977874416535163799001268564869947796664653499014814623020329192740589487330010952465154111734172280233376127382164256971308339884063394226301964885859064291148060484384207651807378430148761238573016705523074192197446214762441121942706869489540202810508651050230338720139816665552394407189184628999516228782663238460824377124573048858965747589017661054093478495351186276957533879887277978399175601637742456263937476509050896002474385059878426929314400833920204560039832297789386638745714557749193843666082653395877281146066854943705572962175379642717803194286946388648420924764145676355930904864767377737137778582686028997899679236694075970153892928019470764618730450717061902565885597324224691945576777793096221613930492811915596943738387049870025691338387051888885502594971323543526279129206016366683083184734450569115833306204303320328311414861108517286617107853117567130306708501011203521221721223225345343676940144668749659562862348932941812316291153898815718343810983331097270787503893541494925579834999011297928941060835003274014109870567035855879258483587290060373941369314623907778994375766719185679698358036490602288840435690369986222211652473085999836167623257801523224120169386035317527668627424011821373071167577979267919574219510976302864955913533712577035620227714827646477830833851553167526055830492193621404005801160496712041744377645036278186371786792828257771818331979682528244544418030974867832556301260064367959641699457696587982262397709877729137305018946356087543142058761653485530043568233437185071436392102147133214557171597068598691889290176791320521170918128796073182976282445017530782432175244975772639191954884522422358743466492495242984518468093764302907615146112500460091172934827094977963985284604426084409872405564403096340169290814761348510197165212065823980792722687796770213907704092855712358722741044321699439148130742311475455365691341103399463446859023897383879844518499461337258849589742163011491709692764062170965557418779955988335099791145186674877788529992078848580933725757573532204089048682971608789832586919593090694889288177176335837744510462350431285499868436655848222255368330999723296524436299757708769135396900244450036990530950422797812679787892947855194915407996648449807754234234698909724656897325732271660369183713445728266262000994869440812231020810623571391815138487382994455650366608402770893816589478242869211856566191441210531078058587885315655656891401769646426831342245039603320886016826169169619614056086816372789916911032262347498016931126178580372660428952940166971839720161068906622548075784435126362135141810328910434870316438815928111149062969964966429467131781293936255784062820350450987100979774930631447823473243215766193160839415486783056581886462036773632857677850153126985765091205756199400506114334142963976660709164353474732397925048201702196733486318476995560328372719940938295627603868466183180882984230966970355307222137417807478413899315688802413561640983911068661266606536747864347294543219328380164778974318929245662730463741356803972063267381187701972963877260673913204371440654607039467642637895371693234460730825334028413004736646984131128297441238922185389814550962454101726686120544325343585900704275777927343280791763785647136136890586751614667819642328407063061322304616601946885044782698872105585521328443839015773510348865320501880908185758186965439205169458538890190867733443675596841749574696705752668988042584979864311594761664312999820469463502181069789054357500198309844386144927152364308062418948086076400655705724610695270435657131081531986832634652076658723903496227609800016613331823647706418475455940387130589847538923338963949413857621425799489485794343531903249601528358459948383877466894796886251281327283963082948198443730186051698641620314791886590241170037972618435987641769614939554598040840645927603672508164822976538878011390001667460214430959859661110005565949677587166888023395914599062363185457653934204189782672459968106203919779955030636283871921931122930209526302884897195649019337422242026161501351242521755955809651686799377508787501326056429741616660435597786255553656432442828449077357117815575998736443950030874223461520447876196195527398098617326916844018351217494292922056851808899112738177001002951288665278709449243607890486182537893533900714439726398433420827027910545795411048140894854805173310443347863428124784915144607474892881107437813665163093077776703590162946643578035304856639523571960803621784971472450359711057436046623806781222256597309977393975280739257654903540282907146694125045408905860605819651085960653735638806339887991595265598339042150192027785302618731075985272570205743970096495360926346874108835947958721517700588138717379480658743244338295505052392658276506885282190711363872798207724817580874829841769682323452818369170383627582021591662715493574683810215952205483345447009172426598108456537322518761362967625299488114939578568194371184717134083232772359490069422002748020306961942721748120988648566868275430357918655485792203851991092343619042350158545232799964360643317656790103734815204023385050059654290581263893135321457224232444069681432192344365679370984808275688692053764668335262861945746360538758699769887056695577789607321828647298393113217557562621794887051240125500605963471216193765252959610553614827708649583229659334817993176787252062417280049323358161112509059151684518827643152460348929246149995895725474554372442405230997137884208561474426866663284922604261745078319142368862187028900273486543610356996666879071135832172078125773409078826027488695317152400905636707332394350264507197956597490889253719800166353376666218849522533185306583969754193080879284083142249548491039200362846052801705492312215306687856152397790919547372628038122332119064317423209119591003629238975631704652917375426892927373599869804286959590612328749287266527884986684908066757010853641557082561115948601915128670925617653034644366819418208346511229825698014048998600582085131196776710812387622545745470413632717518247789704933764858837311806429673339969637204044974591290216088555666750596830737696064934841323598098178965061019085811667299931521654854853439652415327970651312210198775593350637020546681630704780862349574203483842576337685397620340082027322529898251827299763827593307723906455086106597246055475335754808187412594152878298958884180022087098663584348937478939389053129756598562935623366306076115536390164326426914992111486316735919069794069838004304869932059198938617017492783433954586686394577426063040542756919396551378390384859886141778120767773928692003331080122001159429635109977054236127319371897675041166757036514042278874905599700491680438331755399941414260319208683536483775935941881210099102372144860910968923443067628276289076512840752613135195151939956007731895665624203744917040806660632919871915302428488178329924086279821017089222908285247055803942524972030887075366754121264181309840482388547793793093063849524465584585435207741225748960296617799718147180071182745125804847537360055040606602169520267459924545123956255484406194833306574241297327821801422703799390923646462647100170173331854977505951226375284806553609066816378074423634559548176172784008576035071059999557736645144476187304346469505726371487627651351199560620118575533042326368157657921887097420202522965222834020542739519353192908101457076768156686936633210553782569745096870383598559142715620472948590570776916214921897900358459590440525367146607875509951184891631587307110390664307168400985059276055074317807491593786525218311802430634161482821283513360015539094730844397563329592864622615303536578437820769408488238251052923798841017214776704424755950661644261858075032369633291347171867314364399695635708053239598827016331431913864812362666418082373068040015399812603694639576391263884776117023577644191451598909509336836942828768889788765827844486761448978675790254118926424273071910674934507009427920386344020840327478324963969755294595372545307452590431311107191224003331869786338627117491555062490757230012091062753962674066970792750778351645192482350808423535613075616337724718506255337148026593760058288712181439172488118588052101767947264706141029969482745466498208623345351977883208905849582989025341477301936310653066320411075553533490530901007401494885204664836356279688837922692664564649682043523141530752221205519094431778585544307432199115405871373166507629145236781651687695971813581148855331661876156091764150987893590482968288341135926068973419676956827443077021962745513117040923708630615914897233469700210672313891860668711261457127539262229881185770090309577731193982071852426262579454672891253718017941019585751379687432153839812719267551315925764336474626534175785263415731165660194063969614753103525098554502469178465313113142016815273133043596946244951746156980522938875196853014157199723097296545221057112348444661623321023866910177374358764874514140625860122874015947235090917257578972341810450765348391943712261263501667801034306736954688150533402656329700697644690264269966879848709896228491193240655984037189790060495676516555220296537072103671734313463695319251984254539537674064759055317589287416602641766927152257406750590740495606945012370893448029551819053567364902757794970182200362845145480107725137432743574561078815125345799637929063941505081075719577830557260353139544197847488820229592298199359936977195772662384192904879509375856522104157979560989261381434873239134187282517484452118078901210500553569313133112554521999260379640070676782440747081745523528464273484459067407603648077664807986623981853029465133990592474294866549824030047524610312321212432959924177226426705610040037365204088806415621268390221746419340959297556857164060166204618388666111856801747366099721375439915891237822679044319959231265824057544232370717580262101478087287499956570509530233824612876846811376500602753547386183006982080840091386094668775602368754296919085051492186017069915492688247523371723835731869855115239966220974526414932316093374024552507208919986160597822942553674652734196179129783178947012807930719568505876230854152943067803263287097311054485785722473115855499680147696327388101255262043177520691900452010904273075410731892154275769354500500065831678470822118284056420888198898498429062430426743011087932778276780322758043940525575373295070408130439199271325195402553470254698256856726849045182756851615647054534192168946782371101956085602457216801681709487548741066964772275758426891609814884625670812787412053021829098498263066880526333384064649625458871513644491674788628421991885394505393625644834416175739383660665700763472028181962440204490423912611040226233094111013927317855787686493867879249773282041222818044293527735602840196590096099240059460236324715291731234229739304168726337030922424835157834372649677550008772093022089351997500093289492342853781533967790041856577419827339167411121766609955430757503340196858797720147591831449359803995777397568493567714072506347192895722587563533498821627093967403194506277828238931245821636604945937361450894158011385822634040593425623010799170509963365640584669832717658433693975092122907878185049183627762184490529383544487984804846374903466399601457793768958121401238609710926632635100461496912549969104209158182123012597669659031873942898003217202827969341996196738365206718496522686710901159060721362893402972773823149872643833506283208276076019363957952809327199815240627015475740240016746812332243674886659028146321684807869477534693626549758233576728453393696338585762551462736197446175569920445146554799939322988086523302144202909822334343222016502965292333143528739787284027174591611800177767655293546314980983535047785044261365688248504553924595706487028431705400207443278796544268956949053741840390286663420963056170439986100192348438057478528724699942065641072984983704245412642882241181036425557261415433768987505118073988401870539311340832744798230739826929540425670835099832213717861227399226717043491788689180502154994760489342807895032393818504178140492813648044064804547938414491984261448076480015234445145435240211630678475818042694173633151614295869216029564240465464918541413648876220889616096838878992365734771128750884571691022897224063675638017349176208528703161805649371456717446018666057453498238962849435333790101725086740000439850481679269771771738433887308172690382643019950361319083901993196948776097548187570160704213322667212194556319708506729706352933774624196461281727848408615828399479063850551808990252952463819021883277296241525492789346366224247607340442484244593244847643256070412204886278675789629947343109472936174637875077869443071143327753178457082242549600808896929409591807407628897076476010874006592575256743428490040132085759484798226379952119713066995150112083336654573635011340664009664668829213979795968824877411428459698045747963640233729051834049050199413484747424213443493685095952655265955065673480274894201372489604141235471892783956953692412019707760339961091505588361591287815603297117121080874168506873576134833549334319355358189385585455269729445892126930615570066158341635103053631427474335870039760592136029040787587636236590724417742017585876939654015666990140328969682863677355659638289424383979216041335892697574875525715241560075424327088063427436240897408054203643365794316217212135766817411623411346608531627653652838281758255919556283894264457204415527315699829041101189693706735177214799786079276624503231538078556156539145133023500717192945344500074781136632988632242672482524804129870116847663569249404864488168094267360583623049124124794567364303565639629301800882733455900791835290492549987722288504595453959474991728088850309692427064945900183079512213074031511313715965508200116990050902660620406734286145106655526421344445821543815948044197911817371507644333483406857225619914256460008548270703520639683790360778766143012059741483581075293599283650983055523432358858604557127983363048248630702495165025976577769675402075039108206694607877393284188409020610746934273410215003494437510388272254684836802960019445917381494737448420622225535794319250524766231416259834533431016599527433103175512169724710242447297881416705440191953593524889563603052593839725544908613126249586319340578917975437194640926799658751568531373831394073318963255245161183848971864372435038773317422654671489031894384861764838858436102030480316684063885329716620403423480559396647223504992094818978448737634794279741884303918558593463231059673297646656132921777051370511263114879894334839008005172287864115220490694350352977899473261945443018239780082332211640422029677129242340408620615317082539867897965753324548175349405905673774323711075232975236186140410381312537855362687864212410822429272778859517493772752075082874621508089597916904110643066240436304555568745806104418543722299315347054875554150982939613311102370130966626253041845295582702354983346946622609168971256309432348843725426652715112827231934828784659413819515957056055563473890807062689061440420268720880695256417896776193452056955772550291906959676125955169757017963287471165659578692978282464043728262802249228921537819802496409761322786517572712335598281392211061138456640888615942548432000770224303049906959187206263595272442267886873665768912776529088896453691821972447999674587235185481525127617969521376531394662044452624218582428820760515024376219421922158953554238834673545825604641001561420720919931237400239950798601135874977891684309611717153371681678573642627642228539278713294416117031719062509983874178828426635779251805505070383812819573421349926545377129801757507734643780415476979901184137360706228322043168954870343149736433058814797289429546027130322832839376550573370594787031886227281819313545661235720009095947096409950066063003524960409832073577039955949591964025856773892243548772142691991946845533348773761294535595810737336392920762979300587073747176591507766384815321254650201990234911150201298666275405152687343650566653439971125779465216538706061359393297672133042966780519420799430572087150165482845012240514023725952569751031603204481434043777172408796202106593027652518524630222404139522161490476414497335188894587113692035137199165356186746259263527680084424467583927903264798269901253997445847581599229744710254663599543828508559760942588398726872108362157419856566982689587521322579971003595486286277801612062358477881313800845131206140058852176031061413443359791816759802537619827459698416048235143736079465999478714747707559001256731388470457301353550438751583714691382563835532892413951324841637836380875993156753322324862378638405381769833018233396619141898880730648000918236926712025689970200525983926340484295127450676984311415868435461920866239900325422364612388345350678608746020610599801555893578494827744708968139152612479866116927122148134657862620355524137940064995635185908282663094145423865011512224759877000042982482000143331824561067297644236010218179959619313377031899979512749573233594323258401332380621520713824640460551447100986554275048964558927281762667603711401399672197267748031744128401803271814641762261907796008317506225519785959688193655515441497713677315138793861711973032210555372785169507313016769046805015633184199041577468200777287340552796140590615183883669405367286461890674606927597842103456790289120136361355367274109880723221833425647148897981072984945533357126713747960393778666029142326788542840514633305444082720172966872054951459044697212823827047041627889548388008350529342569057843139243966229254934060313419366136729997551956787211139812037719367095473193017537495964719444089249869142055090021536941762238938291616341268351056110021906789161828629400132710870869955893758153302831913325830218035700790476749630526240910248043003329121108089349552512606553464028422129924355935027332375217953087445415838884045273588349585408532292908482332138013758521477043762174656840577029863268329135621225157571978490616148397208127341298793636054440419791249276422571853017517436517418900749148218248548432997394419783918981943601859188696107177642570344328713326168533387264211078886457864621879846260551036517091184785166044169293699839641323358676291941718995079824278732634781114233101293134055077422268017010267644552874668307778010399230150892253189574653421176402639968377643485678797562485246388076257651672159346891044821735152910098237237998300726762488068146037140300810937093001113005155596115197958511201477970850009620117591703552467129484234977089974058582660777466418482330315222688496853695667393153402353516356045868090634693519995395160510352285897297291856830870246787788575140408877263080228919986233954898398895705847264338446213757558608075592324917392385164528567296831740237937257117062856864027359978453780120721462520204633144992503143613285851364256197785648481274719070154663574068432523730384607326873199866196335868255972422865485617136020491794110781575465948257628337027323167140070558506427781843262621555894324220198866770596116471339276034684903889876915170747736924925144201871276616355300554954144044777242892333019025887084006054384615220881468140650966274095335044950426922956350157152908389984695401731538329464372630403875496200375203205958483234244610396222889485805117747426187492016390136016876069842085989194947885774355120834904209690504084923978921038504205868247439442520794567058731405574331653405192639211666740082418531700219985853993975562954610064245316206730732853892874494433038714612221080196362833251365169856731939119427269278102655553668994905940209785244819963105463874664260215221850744469361948696293910644429599524370255581375383838264105965658926016450987999013247201816347834093494577765031678545070276603082872402766261190279520301986540215701257981569264475933534146974209787106233059163735809068354290299382654021609683830252833068848606952803537949895308013039194352594321300570202238557248940994624175911686565760486692522532619906677439362928751461536479107010144062358687983437700334285265941687556994571602983385122830799034622240800651899835762567425837485163052853389108317194791980746792030349582467255182945296735725421188837223992238918224174004364373961657967572285410997273258097981337477208759342492068708060946024800772281196193454296953555116976671159895498456834575783603733362558585267553739566431863010341329182296034750902796917622062497361237708740900578067529775010064336825263941256787838291699879088477869875868887329261473770471883678264081719606008591081039176760229821579208444306438980284496229878722738607320237264710858770685550931637894835115206241951261839096117000509665765175400801153604199250889599257592675768276085512475676943700155022466341829170380718404832193318609266582066366483329606396645872199253633144870735998659317931340130848763994223394764314939983405863187943947762660912144843482660995994972675573828149141186656789087321473639177262085161442591595487413258395682107593762222458536777678898948092018701184848337145205351748745763509610973807121224491234826146218892003760316146350332928954287284914024231052169843069374479043738043371807208318554776317249898899920621648562504368401391549220559788115790729220419022961703761689640071615860141395373706097616195850858405928842064426112192353375195344226874988317205640426556965696640442387771507516248661627478049582646510217805420775455748863410466488961937346925637094784546786668750210497692442055639900034739818669127576243646765740227910344952798003327763216243180087377757709356525028596497310943456074149608987413736367090873416133348013832208618037773756987388568450427781850627835970342495259911105698927329276999195365773276033313724568494310723125621933564881407480138007735070355038956008099156892611851085308075513696196594654490885033926840690901538281523914972162190258777051143024091277877841737677520760557435880243943029358662183630894326002986434027274032023118774726890372674516659227319915842687220453286820084413529434901560699760188431872230117674647428408645265043331312809635425267985622068477577477876389670480288378790621958610784752768332894825562682667905794903936469077569283249231230692603548863619263700276934709091918499587593356226310822075706428368072742283923606496680487436029036871818621821421004870937293389311319820610347918150549806237635121440159044182311877604737502406731862756552901210311889623085979781442546194367477105528961356379885615518721707084302505395693957396218383366102833466774707730528587217002958264266396264892158554482246289737161309211608122733545865039813410060844690752065476332695882356395197994782618327671945673382955519658301148580574978311907014450555752368773706426732218297463995851031741969020537491739719218822989770966564502396640398267902769400978256229978598944329251732644908653035043370123534469853836716562457572556949303967045495105229680741052396426570624906586891627288963753006710795198668690209346926509103610190272139536129885691885332232656621281590439171899275676721083747817594735533208276022925637410388043628458444186327540869830387703168352527163988908169488269259742126501634495753796426426228516171698353986356198024083269914494691374887590603908082245018047165693894464665177673938299821788964214554840616285702245820371724141375981556393981309940402749167750385133296708060106617289251431671290924980569484465702491255990969866640653363847838535578840926791460474560245062560049419198148320499182704982541280285664057618712980984457087197263149883434348844147565629131902941834703911278912123583313551680357855286287732559753120308087887783434359149426822039417827823280796018148691127318693871056368609549605905559943528860266350371575166588286948691432414979014148599410245991790377708676707023575746455881757962820664978301317446631887381828316072286403695484009383748584202199386899634055813752810379586274916192012009800026590039321418032476036885107178786425279874480681832602543619359038544299249511939123809478569776534213290029005356009913970593398729555833941135739385265885419376040491791595636320929832115814922628790206358634236115002007882691840992954475033663259225042520625069330453064901194305450753906447620988468579233731765829982127412466190324559647119578520242305217768673708157307338300658870558958496560799561524332561419335337275877792339932332955406454736420997488398213290284883012177905159485887405073552276726693636913347624953018365573303014459980978403851141036198865728294350255420408140849367836277627662708150357104006722667770377220148064125329540305717497158275982547206454473850015471562806158232781492019679969860529204036003421674373696036887131719088230729223750847660329893598852249128922919541816283914046571587953735312257418797213787202928953516258185172541153122858407082900149540728547755640759785958293114986276839253010988321334160006124069385229689637256827325366295052336760219532209979744474235960471160268882648225787534525591170987712591231574473905661004007490808123764945606390873765581529595227716008177384325016303048840097605132554342721991964523400672280841905551341231403735933744931916717466264688113866786470115533198319140537829018101894962844033700307706404130520194605186298312512763996885409766021204561387631313618089919878707744262936718715822372194655345350928020932006274671157999030276411559797745270937198715925606499069508530584862852454215146943021651984996719674949929611967845474308507596600518036945481138270227950997119653284888566434685010565189943641553125924678480598106350131174599196157359745993541404983803434726574961128101825610271653880893984083880261989391187358643945695096706049783309156617727687931252546984115572738923283220011817291144292007059333826502851033662189128143560977452258351061712508890324204663847365613687513026005345115171494854645657537907249316833522755909877062239668924437065806651033814666494363971611608049871529480318077508491178846491101949742374013486850199996595308458309136709214431873038276964508671618709133810517938525951642971179910815030088012268372509971869601964259450194644053709543213745454479629475046599857727311190443725510164009863555872664570795336447727981347862419255093303100398446304886348228927970213740332867370527630194715463201816541320871373879514881278176489188582781716057373012373154773400291924529546913802460687693904484379744240366568135938002314988497948976500895382905309748758076773631320016023943517304295739071208671439237734967867142578844896161577589776191972729733285483529935162561779163157838823835548391193105960025468710187595898685846639221073496426459688476179830553052098320567106274071360842609152471945519249124416803909975440182651937121802481088337542442138741171921227083053564227544733010102764741554227589867504049108902691779600712905567120647150746519911509500684132082717135592398674859597234552742854398210938089563731371165003693210319058454806381265212690376143113071672788387991478357926967513423148027397701444265033817805149489096764549510403249876139379493905775257688178556880557905397780009585753250528136011519478039407558819917771293742230498418962067120172754940295326348397522729718189888948799163293056415553808237417262695112292335057757663592640622744317498150628572644299993557918266438008583377918142872189210794458067779316416644969584902415021292914075066152211448360211170458461149483684831732906381445047687974713130751411430846395073601693707041476761129007724825660013379337350477719292024311659353915649504570020159701395086250484050649427750616808023668239911441062402888389935645708744645111380461865445369551499582940296714724144291804297445706955319934110473245922585346642787406070017811467012044682265963913020126843183580051452348655192441544126408710730753342849328646314181309500896575882905542703223658927653469983923362238349409573438756029775513803934767862285633065964424116626362937180000063507246530290343346137620132074964391642205085861792833494477302949945484196535422669917401385693469829667808846599031629755988641581523335334645758380180940765554261039371871372744547609113127227259761253323097640989777637858879862945816888178962474228155626299488899528875757158734085310290888417908902647910631695292993911540005056790286918704911377879258824800514910230781145270649793278838867819031559699741828713688221012618626653631577967405914771365424670808407224780654829946807042652648395129115380613460709391707827708508997992164007967732667313442481469703432628198811098746666103693127518261222606703486324297072542627379436034079333120499692685705058539739049782166720858516306285396074540981932670280007906421971830982822660464331748953697499469026540074283959487748887432644486068881574323012712816689263129561071246666739032794337445976599736319421886504509674422513606640469633275031201694192843295448912482360635364402887434742724859595540788194030885674494298264309555185597205598710883717478502589945658301673875493500797237824822642190984042960896491924433423883256622445977228365074941555127552003772743216651043926598663040389897905249438684429760575086838078774303628816410033689683874991468395920669431449187089722928073840383410994251494377295071845462371750543552867392505285777468191097295129967047817642579630821881301066137556502901617684074657006963168618464789530021944775273816532864057140927855043056917360855980268448300121146790626691114116315803856367880862648924052977145689098102591597028977784495107166381180907382467237595274962167164047694107947950627004382225141651053557884320453487185683768733250837545048674036141347933020070433386125100592545043492903886123447808221314118810656998606640134889255797533184535674625469366342914851735417408949771741531399005968999751318589206869269763750317416130274303958676591872172463960962207614274243330251939051966685363222248394341338268845167707234224361223949408437434445050898462485996357075152062415161114574028748968125633511517487553698867176729073736896275168728651369099037556789526729542744034358710960440779881572387238759732060034179204478908509897046447592502458074145173870774219200379942804561125548297621672648711872491505599371750072713952425019412710004403794286763540220274427487155320651909041502659524804117941072053329070820727323652728709883346471681668251307447615218566628754584220213126026095496233710924588205057824265960329884755068099808094246955339156263939057766301235114866289086299419679172838843444622897497309272136905409859604393674270785803814010944924479147303776488847540514119478087260450187837139637792042202785886339108120878639170998110290767113043117372388277192186837460500578248727401513146427732666763787886764228210471585717703170011667955123888255845887080739422553502834794664882616655965682423020030654045812310502310106370640190888108473441880246232899869135611327710739593609517073271622983890535031709601574434180644930528920121650737413827968859153803111028059594535607596160580616667852582389531829099695781112034139444402684926832017380406799595597674421195439906744950100938739850271219611161522749447870524058191583803057224384556857900110852704758926741681639956539930582933208326538203495062772825817286357130867672708803221481497785677958742997427550323606986177220657635966076059755171032429124047073135529438290869220187516244074377478940030438580929649268767293287928692494796459532041280698251457330250059392063932195800417965952412146637308944783620905822592490643832388026653642273155234919988202246009797833076163091794689722557296278931860548009565269675100914179387240370719147423445708831193135552367255399149708815848634287874377152879373362165033086189133486134225256355777169245447241508576292305978961863246139274491532795467637260953195784959403451331514895372781860581645308197302581377553049076961429225770404312350544422419685624108618213847285838458369824545251661197465291376031883818788824147839524379967178028017844989569450472652397453824116077650550923696652649424229298849888312191141289447749547421232753197042408190684149064467406874482265653311367091464340201656851802454521023100485899374623533241602429979416939139514832875556815260069421431990274381628279656176361484819161447120950128842126108667790086126719548041059950988397480664777025284035174245542717382088625794651559975908933804758125727037117366134700077982780883940871445678799372161375241726067071953275933122014133195632805478238346418583582988713497965963463971162200584047209987746331413647925044667297926709602846433209670024779508386818408950230520769434611377853093294489541424479635367325382661727690951391220838169449114854353476633485643745717641735634486573872938334849616497121164009857328814777690898029356185272377251592411657931760446137571634510389331397499578249502795985900569485337894964205218882703060674768169780603114828503304674561190111840033700231402788833605600744279553060836758827997959504765321119868083436286624719379411415863766784254819138794220085321550889447891602592015441295991011990394179757419791387712521997046775237966539864747032925308534403832415813035142026785824098116950485710659196616126345640866413724045337295567759804391331882581165128416688396326718274983945726942259798986943334876375712857978298175642825424656041783901529201211191221470218976442939106784163043429591032242019990876568171691097108822615047991979855024975975176248702222470435559931518391567979114462200577687562253268246082672234310861662950599742898073920793579745904113575749233003945948957534786078294620851056471607618237395330919456575934722540727206698671493276522701377589127398479925990787195402189221044646738173572231784332739980428646948747343257248234019196621952901956088954158855686948929563067603883121143494077252913801375237865663374147390544407631687534707797115321661454801836781799508537099559846970736785735289081307704836565190786467587599811187914723619744548416112632740864153322215774245067360296918870190054017136775358765394956703353952352005928003607682288554161291518705263828362305596069087237947784371662366252345874349126883657227053711908214228511914356955867782833580699341403479050986026746773951648057557654454385319255779636061151276011489519424727682280445168266373321448507969786295310409764452784590387355219904781786179907329685682954629933132729748629930907792864446592156259030663929233763936257679675843668577281906222438881481938221098361072769378839372230880284919383881205635864366313285780117407927328995898001252740941736486832815535645322636742175383968307878398797899435606702696074633668928090501873131558922049754736775816432560948837466575636882875818550469743630506588114560651596344446114632468201521804434226461458285700587365079106135202665429240637379822402679149200517300658192179514163105095511553695239508405315409352856017687993485366671173508967743743118261385890967694503083319452329639348342930833678152119023796098405687128597062971930652603852960283334622308482134944330495102102698663400306178511398052394258686849223785728018205554769573114487347908939781903763633622152553599368728060717821207009996384005019348927343338264119207171208669128305003691777563812121711973822547839908278808906984383971121010523178528795649817906504936436597398517179536145014502116570580057048361171450458013027603451283095820171011318787777493390643575439249716462410960132210094243641550564089777904325174029743454356266302864488402209549840351365587422747299460628832376564031153614835717411008236755753008021884085393039663971444512168919716493913437347200760005067206609320800323142069657939002452927956860586148556630309339386567170934307419370529702158905368205046143235625611574626335543307641540552504419100250244377196191252611541222853576320795240988064359282733921538220703712848821188673470187780553557060657698814118616734073655601506448415648843782040501639113291916217250416554550087206417318932178020975292799418572224491839056796614608484399491186712120148382204699372271430695657245397458267743144405182762811365572936912420242383657932699692645197342686784986069025894479057354600261988739692569535835251299771674236139252807081318039148863452288315515956101960387483084596122642926417293798187244125839977645336319819946732130201332659078176151566786679040793362970299286099338312409418677913052728938011405605543514841352386918600264176897143113377153445226725018567900728123544744523912360780389221535259130879441031935076112877972407551990687066821375771556669367869059100772921549916434339335004621357312394072121393310700670524298171491965194938400381760359948919338731402334024171246724058052556185640727364904420759896940804941896499881679921839793732851702840365431842643618617369705308529634125940125536397198381925746537204225074152342280323745802406817773430793067096655404536316433876320310488731933408356585185849352829880015513404424727792372342118974175787635474661024854144854788258174794311702584597193965216420483329499773696077032550379449672225600451262850431713822439375158067855826491825747969503232330828235515628947253462542699378878687252688220122102785720863197826610689041680925245337769003780992862815319099930326797850870859431194555772458201908767751961293387967444463634426391721829548887921080089133279091379609964409344746185766674695591460301178440190160720686717908677923073357229945607742700674801040285302812466033558281363655129538622344328644286758113746541441616211932391197080901576180088740170479437620980689593055578394648176225990591576607857366534520377083722086486381851531038617264260341165532243902649439353882703309374875255245715012330030090884849090834684215205209921307167245693363500150728473418731412975013437605747643277131655303613089065427072159788731024221600725335534518484332458965342979827504806218975908491117876382391697061250754307639023750358841710570737836166430234680231197944031992434555435269336248581540032574550189603293368048908762710270094142793050176618280149592706242563695979768434636117429846226500282687997568131827961961661702085995691473612497004143207281334925909574710185609365640533670021182386118631687869164080549245413669302821419240109711667943324094915034508941658782234789087449904685097072034145468044125317301551273937686830970228521015280018453410313015486353292438081901017792654324475099428118516231719198751564028623257809785392129773542909415805162773411326752376776155107836071637117109598862020880458537505556494758736424396853838277982161266791698150786533106642093741738676751143015672986506071609916415325413588822207273385612123758770319617877950792890189137894304754014598917833946814854846007110711081426696964888354873995862482743493849735099557586564767505638910667681016190990792092810352857416220648125456016267845081652768606564877917233442174805264310018731370192913010897800372879131311953361082277426447839612497694685935312969173493065991162407560719192392919201971160785732761809254422081260888750038146816109954137035761413141254038796036175928964558055613802661831310987176614886079926156036836430180784201093765624765199102644896979337913983574061048324556784636905616982388443920025134466768606613712746283208807861591601425955023714364429004834814039255671178398240707554078742496081831231496768953446016433611337588485323173461654621159070249604984714498036888743728049160625478536619567449779250131400538730460684840644719563005005432198148948492680892106637310816464972805224706327079740176070685083079193665734183640346764344643594468226033854815519214019185427994249646907178004870387337777745689325553347300088654480159673883609263338367580164426716286024847771244268583734518137798727636128770153434138325690699177190729338635745952257933276848123177357037270780436325823837229095681934813108156159021144434621951345183403977087950588122392374891659268509286401030113566589104131638682180383792428885925187167844870484843164453602511633640542683409911566412354161401334847059485263281360490562615827002396622991724440347373598486863004614402526181641713310584671687566979181017180885688753930915672987567713007660175422846687928033371497907528390092930152487827283549226760934246171579991507125149307536076596784919359604396978148970439827803066336694676568499378802432256555371956573201841687373720484902617929403442050722647951186792544150273733216561548299385491117028216936130657799720616288085516981764616676353830789870735688794633711692705976019462450547083178631314048418909735489162045728688834920394968491916395754082396285099446974830583996752509215895320778333141472873689117032714886739799926699908114223736768113542479922704657391412084287484918870471201906358852524750340355808136914726195699027726780565715875129630375536150371141102914018954088144198198019129620194468954583727102808957790079751995910122392094762946653721455207235670971812631694991406688000946719991629548996768359047579767428928019077110164585220457270015081899982848850580297010804943570878720489821536187235329287625272887223578921382477468337569246172530797889082930851610488681723091006856608454571353254959750558069499625400934441297027660772984151457635755599664121119834699751996828605007976892801940347095878721687321388894248755821642301870824754399020408264532225096612768246508919227502488271651351553324971608569020763675080690335133664762939199069630584731747480400934217214362374996683085503982246860862525221208989980423833875425797661400390023798656700102382824232198739219459085887983150997332038564223508300073693188832989984295998480867949402194188790746178928330273907393135199417813399880476345450335390797217366992808219816581786959331641960569515073563310269863667213836903009998586771443338118062794898263508674364255056397651252967182964887194138734575313104501688983231981432945049309084719517559839242753312834751933051422269389626373269855013649655965774170080198529715062144977035171519283235034840591403789544878085829801747060266353882695931270771639210178177165728309506581049604347585815104650851263326845820946765228650739408262369031975572967286299758803089889952112241240381791894465838963643037317103055707507379678794652160985602882423259625715090830015251178641305029898346400137272751123130651062379497214698988432970551569225006592157269132902874519298089701550217464041184429284869868532652659567115520546738403168914326654766681171815368092512919092757461246207442271505748915313590957288804081915106152879061488698439642043012153175495844977444765299690896906303487604067233822652954415496003610379747735654918704657780910968626429151824911379187435399765103653786998369671365861772810338772299781303700335376926722050514275349555605867483209764871757313593941564951607193331828700644277042096107330652522782173846641691306171875661679289143990034682647754712701399858409548077079770878991030680844226787250797135526646768979554563582913005052734271693646558134579015933934404925094766343102413401877868168142168203108544205431719337131251217071510357789618675135706063299479361248685924877351726590523934409311369832689161497107970046899758014695097980458044457028255170663404205244409673970304273720644002477465300931601651592839833141331128969596729814461176635878418889576240877704200133158724373110408929592231931963894400063947622423223746076380560831269569398619334122028737586616810870253680937682769703303378745228249528174595481381640463497593853325798454618895209769709369594352203589066144697220900455035505240484953267191183018867108097021018151260504572258299724802968371861021169849676670279245219760918669234332328092010423156622676618903285577833480735913748837358688056847651951664537629789615576262131092184521889684701502355001014949295110397188473146700521630602040299149342491856109878021836228885770596208036016386196022194810661883746711802404400645086392264791505926567935369404686067973876101636860540969683637465773087354646552648462456261762345354855022715072919295670459354555017212728642636160003173610778284620602061802480304208665490280123837116630495732394235906786723278703203524534596136770986237841821676089568310498314378327008946933916253926268311884952721057604945121962099404034278967089833514303209170236858319145824924873168632231632690200801273298533980808911310921868307823291915227140936419547996276580085482394722491300645045484866759931865594818781030467431628855182120209489806878373354571707102744899311650391447767393011169418707526808432615703646872308322075996076761604076531451193570846606009103528310291241248635248699309413392941851879664449835828913368858893928775224313472210436121571797511652439246875057876441214465033625464593316957597252654943449746634476163802826773767346824023566395038202378255293483478156271939461183450877449505320071280875397223205053942389104770592320354026540870721233124952685379012770425500616752650481325013306202777823964253149979146268241738561056673799485538573862948073753721945058415325698849280302572049314066015130986224509526142112995074904917681871625655012007253511278551856430034481738991953823709362892789524695578568766348020511749192282124960455883805630298723848259227839952460358908578093761092066003144451836970400544444886497128420264519599255574630251707543189581329069810401040138198453433235562419513766096876421760625845613157990053508237461490256690868847416752089987123753419681337079378441512130591246491335987355650727839157937222168872617101533425393564037044286671037011510557180928023176272824361430249939191131212439269253502790778020806777707339291402671422541274600832431102064698160082310268417836756514388639343280954164934319121342657322069878773513093077838375845523792168449540011791906682845065033546342530422067903440301762742829871015691669450552353686275964013814317896869163329782508557463420714064938466153084390363303285137738587597884849069006910686792318055453676728638680484634899979485072365182897898009110324891455271068700590292151717781043886531241608716316622888510297546254013574423705558272011031267747144631543378570488543042264315173774550708586988300066501464441559661686691518687144981997185243103086616435186373265090399722420298683863905542631862570451272694557143938580280581307165913233800252136384857557866191549003486640906404286420018496652968813846771873402934337503396708013925206707309520942814545390089736682307110021893936689517982631557410428356267732419593705086354483037114321965497825081446607658678162384294307657206304396747989509934019774277504123798343035090861229987514596645604182533161265718396910787298777216962234469831746685614150777081618944514043510391865570153457771285051022607867493060984338289315846168812317582679839908165771445548473317958548457288602808111458844630235677482333574483434888464041491732194341807863290107545755972303399228652511982820778924307014230782085167732299074864737827374537169197760305675993158094249731303930144325134187146773268496848245321030430006488240752166395991067470975313761051970167413654868205743502957427927883179869126015412457249553084301249951406386691388001173964428192545882960550841001732158228704158512759802044390975981328839005681508142662799415978211345638666516205393391814113185376268202041000740495434660483184877367432036540893650421242494741373609590821221595573402883634333833626670050516654212906451948456247406130653841175291041341248870263287829919713193825815538756852643632855334889549665777650710506792931103031131684770551284430359744513763522410753834081846757748754692310852575761387868676607080408578210000497049916315891220197672813455034725487334783684464530646713377707901661721009654062275208412423618489778791891942074742498941845420882999201150636038227349026924692651932483028202202766035983589103327346943097838500286911891690253169447566028018374189205174216661368345048469443410461605966263405094867343907974482034549335875112966442538587648166212791044734209975808362327198617421051143436467324082058951641817454602957266194090140198771341569169515129385702128117836221525782975265625832641134669277760479323164114587693043471774310799843660920681311372417009089618243580950900554325753713462707672926492761747915497773482680232464669301821310788084597709774440458778789694148719890468087017183449250220542512979693527600321857443503066158044111684159732715253593428105126016489707876714994149269666200322545387829749923209853836471082206514070475937124290013304322006586067832090506205183995486561069560658684629430242632953438733774071116671740963673130013492288528762516642814313545463072776763061172677387924246100347948360485049025292478590814927732327638313293165652718896523978139721913065066534240970282516433963306742283791813373754768474403728382554610839137330057742105902051190865821959017429637830629499484688075887412317744849057686178573243738514626784020136853749387360333771613955645711073015000544032168139713603791285680998526048083312224059091335848618643351413210089901574822932175405834003996871356172804805516251371948371730892369845100791439193816191484860560725075685349814535874877650095000468438485208831663655759549673115400739970431402706235028228581945187966246626226543915174090910586800754073980994414121442028270496781415976984712299528736102337803583160354020929463362080837749199803760542200546001209025896113297795551780634038972462262599620113153561580113395015126499201161136620691555277002677671526100852287230207317060170453711270929134248243953374799741192072515340202242912158632593305789601176670178409501138638523738848478681602388666300518059139371799031285448409927575982080388720780485163057216376693603898570678374550019795897924908768202865412340057276392851272322462105582363954055826234785911649234055709090002584997012543051625352749626622481938148469179738619134049510584816166956729740351454041415490012096587443473794329089101402722245049578981537900920638518240150774464899658015585555622421437661739763930045090812144442187828398644764173357287272912073681174244306071674884902842091993826512612531914516699279940644506490224954026665638592661252041277385795180058595543579363219440811232185420249691672583122481643327314134750409460448501580883959793211198290253216399474088189575065914501114455340923435504901034754731183082723549118611355791929588102692077243572905083173166528262171546248855890473937564817733509296585882897886333300450564758811257052496725094496885926013875153522352626791388770357464026050169435237641928743063495318833413729895455545469351297569928049708768295373656191639398751349494740806263780432519251228649531123198846482583835690689601430166954442665666330888826144913731838402372311590798234675867723475794234707206581596192575981323819271126816040863390521931420235523219445125659425770487838327102627126414205994277122313381954251168289250304192180209934625802807266006934736464412565392489878861364999241125599009633277627376027030498232854411251641734103812074379580224924943496412917543183011752462169119562920645367802468899116981254011608010356173489095891769179030069754331910092491668803977055326844313077790703749283044224784176637935192736494299674159517762718261237184971855509869351980363260893912424117513745433352549447220237752070268673145726971659528250183873091395242563524364519351754028361150975357775278762582360056054387490709925728638472356793615364041398184347174393175371390725052906149540376592210585293644338121382970939338309954926054701338356734041961105350484651412057206191222923132122896776891804885799960691441958790668154956610079123273340690981106164851100939833855507858842196590801480529187056897008004801240149306015178001668871404753456920099363207440999187852211824242317123702638714868751441990484075920147068747478730338598569670242130113519423091220717513035944971946090827313733581330869883257154950038740219656802688830365295497207996434559371372683789455193588058148395629257477060609918093921887027054161669066415766645635215256550577151137165977140193525491827317487058723357192340088625572062095327105890448911947636523886965940210094054941444255588234894020281136132397602052970099232326977757196885554315119511353210876809644776676794938116091366808819215727863764743528733619246483223114015877860390668626690920995645084977676648190382026638751524779096808190644316127781704831293464641919942302628878619119207957332388640221794362129512230065686138136630249787999958416097871194292178285425148742738213091262356587439655802428458544411026564329760243527209549978770196809932313220242467065773965890051709182899500114555064647895644345493394780310894577335119361090773438295573674680600655317300621723732389492400570572697570172120529064690041573721257707066832869149927530099139429446159248867819451180920823950504613545744457084165730859163701829981130980441973355413666557803140087395418473430980391972817479268656965991055296876439970115548829553189821138178552476433536029830446956504340225985751596283359246313120185649583027281502151275605965515217852101767224128717062154830213444082627708565578199309990750895150047435396406858632161736609071899604416410318940533219620999750017508854660740279634251112549841495652308259643930643768745878475461280018603433064011051014075449313928852046675677105700586508911949882129063306460501560147057843391794368606720093403025765805475265281976404502100948444626305980917968784231075427144624827717967059753266732135104414796973592333469235619774491805246582730617900048319724525494796160001392688573834686504439428578359226455095860977975036875855504070336278850081954295740440052278495833669194015114140991636895082599393983851625211057524778678409820034403359537899910010773204452642010377412976791388104298585939541723864163087864202255589571752340170735996706417447078028943816340199025829274722157183856964821655772364784142419937118406776880593760895660084435197645068203879177218839052812196235051307311214452780158281502910772237150684228205415709137365632050457784585647083570923613208325363978334740282251529930343692778099555012050394914186453730789903107897600113130965935656363159164067366614431878946217216777297948460881803672664187161244231356858850209798759663086046249555070470953731578062147414187646722744275350178389906516588361801904438194814683939946648608479164376015803353166553624782530713723851050615142401566129580192713057370991760587240150007963865096415309574984041872852560229806518871670002348828749190807407072925359471777917592146261691020811168844604716079369742776303099773189111050807810611012477183378069964490420815905242144729112116060940567957539214674570962115379094395943636919357991768798395142163048618597149031148515544775771620947316367867171541226005768680636439631876170678368556170463456237704818032627580618906304360681137976960240818416499659481261523114742714654593670768895985512329142471777695702948224191432575119332277003301429513027903643401419312771908735512604883029108018258947233587505043138645862912594446272564306220376839557721228257163587231730059098340928114876877446845074452480983409340421252858308771342261433014534789662421506177600593605790887210727420727160566606466723085401555977589589154353835788486274680973539605398786533880028356283151172651842100388491716696215784048321550791805285390508722356929189589758785236209907911594440614912410560747382768675280368588702790022250458641339919922997865059092848018750494923575810385572676450190651514542617601057774005996007693758127828726665478797820457108261634168492030544292278185237714884438335260361540244174492134540993369255796964849217409495242269355839074747072115817985168141523138525728571399135781581803506296938231776641562136342312664633130009295609862582126576250673246417951386605211557708674064144674748749839676079148097380546739956911131774912136841869178078728431025937120537434880202004440615983532112908140624656774592448070150123210505370233061340229840401374959423917143643046251528244775356716319948783182876286294884568326344121685727100396560415771873913066971801962182584716336566511140848170664910087997733454895866896186382579900803378074153030851422835335050707228892978875814523880365442297547910194655907120923690937008149789807615240065087469890568770281413070463411950860086844798364854639840675869124782474053631823643693412020783303074812249766477536108385372282510872900952104345884689972209698866422652309119543615230777526768459011355184170641317479497600293267924901922256885919728905376996655110242216271309915487041262712742904538125610744806226046677498103147474167762785589201939851282239629683635470196676057697358553091449970308348845701879097156499888712731704156280099303268483104908057649999302029486089545231778678284450408796097873949927986258545737476918837095139854947897868831036682682727100928398188666736762320874625439678715423040416766351139055931219215644234075260319327926611429914003671240660518920080126587275253639079564599326291169197921740214784818179741930493892689095342770505000536387648673073366140331851775116155881545598245121126191880108419762598118512992089340072895467322054498224291381670467130458640522349327839498312908205126107025639875397340156926583021638714943142488365722908672999591127142784534045709396080647206370298169110717602578193281127697911819140831698167344464908308071406934945312148937759901748421303695959583516864291853855093154047434127965623490337985219403841445418466558319850157388391686633124545898289338217282282905337435278617743463579890035461299278614400970020226915319646267000020310791905348495144654826529063401723781781108680513685744816414009704546296185287633375327211869058500650438361703907983719100194249038222658019692383467587571952605226916157966353925668117222882317128927489176864001187858068956393786982934264611311485947319354507741497120320440969223356539948204960619559180253381948863252396794608347117329987761008581992367685015027425428671134658792771781969935808690700334625962406096401722436613304293956037331967740969156058707197522558484704664841841961314058538933891481404751789209202184773124652655106869377168525924410189781049164980198111057195519562222520553992112245697949811495658492128991175532496861814554940699137102057058319946770808416968243435028713214677284485367204635372920136259215664007152819012206981401589128889956256458424270059703540871966191315947849676287263277581556944106017089388162259968183354787912736773227906119878813102962265086155144039432555857133496248233300842453813735452561959397426736854421115206492450988177527587850323104856019497447114939624644959745271164075513698930255972344799148428890110919655074695822000354628628875081705437759131904780655069568643844789158847039162016226168227780753546186052066626564599990133040632295962615675354146898848199281919620944602395898825663470108730877464364557058991893304601440210657924471207194966092896362805139144921118678506778457083540352522825692918211410152577538205610535412002201172111518128307061236956902890228156672272733053243898180022895958546416463997762780662924203236636657650330957176406471217624933476418574154822148918674762321275171948128169113431993762989260586985827372642119703264390222371504930984463767432736201676056364503608508017696815743167654159910369132094725047539115661366275005812383475111470436960533343027613244337774262728483655659391006139268865274139978624244891038378761026140538949537101900590512280952201665726244830491302491413019978651091608322601171997929306670809073559044815590519805977779421342065686858211108081371734084722523782028382496210828723838921880607516744531422202425975052991355549595117609983095889742488675392213583039045500167046049607518081466159639725390688970960129494848817648032758693756355799848573553162868896019828824436076830766131075076106901354942530336315954210954956495864660294823303704980827258627621685141087572694316984561604017274806679079542118853742507098127875292700828978764447065395235503004635315285164408115411579849001340728422135186981454698763086800666861493142411486481613151361712512028952237704000766265375918317401279919485336492305615878655023902330776266236918153395950680638193603078178028300282235842659856401983039663151761859315105281004287327860828104748724652834999079105514754660245566014924662382336794084057289349059676229353978656409574855758366471781411297636868598888708066816991072392678827000070214520555688159195267151182315636499616318781954516012105434346611977893743936278723141453953082341952876229291953167012281788858487833376298329042038128628158145992958594714460736339075375352508992145949107637962497741835974384371261205241870092174192604159235903859521354002621315856035692928814675220991092500248938297712376046274140698184542929038295624124148371954319935688883143053364877656755516835547717641972080598702746238961882305870476944816393872773385293319918205395891461841942381469544273765512304029855769883218996514974293582173000151054283338111518821469672396207588516975341932294871242893415241006915568919371992274912254031203022268477694885609782888332667353713213494329482160333662669249909694407002601086127169045901557454216588048259304936992091988279473904615788708992440675045714160245678044251047596399753992681007931496395022410916227325763370284288771252596743715107693149297053629892480948162885844697685323490535776175565352624065041995542349719110239825956884659694991525206083157759358557952395658740585485314900714609416198995322606123229189843188569858355317631523909487798723132926485710864497739932266648776238094785938392227456600029943700497299496552266170947163438915274657293625154747721880851000054804098513286439464573990410640707838263888722000845232900284006003171874339864758040792273843774227309067137974336264903894121900526726900973134627418219526707274726979698965485818825171101738799097463378460220430185849539162606424181681855243723030394515488338656819109325025229775004755625176513338466706661087041476320131965905590590067568725080656255369777037457946992293877058657534324371332521470414018837509442913047366654579274628242356049656981929155928599727570165024881397996683899610522871259077594115477182754787195095975094703529462440818800923951605898229243078467999131627679645079924889059838697340248011115634202519971527235825396641106592497555001437494985162668734923814362251484538289728855305412587037011209118720313422420949715529719262763545029303978279517006456435190995982544267908553999507136268413793970121696305132264720386030654633782725544400700503643636531384227076046310159711051859197717600306341161490081922812709157191933066844287817292285764485680928723209003710137790253116333075297563266097782782235580451739913635310315460369040111731114334159007302990735972152658447984010920488626893511527320149533683295275872121381608288277236418550529489587142717443389753196672947671430374289031972790005297048886585950903994565086020075719335658127788641359118708787368206247677566063626664053216019958359791453051025069048804354328041798144745621629559184399308616017814781084598059741029493818166679605247803556581125828790042716206085142144573812943769662667687823839547202439981285214767834005997384985110875834430000576935936094885316801183873683794999294902893671702561773376403981364093896197717730829234859521140672399012459354213994355289641939781969483892811558400405315517224090572971571110250936282801599325951522312981642513063127989747859261860692460169542486307878915916492422620636261181859697149564000134422350430045502058525820453911060766555848560913719160789938135097187258954865065358263405500452644358404310565208403006218565504281129429133761057892168177420526767275327329972587798127830064423958677801017838696273555648919289219065890691319610193740994257511174694382308679498466730812031423428939470538434931211544479486251338515472995804682462457512640818333498044864868771889494764198699353505547655510294855508245941073047417269711223173056544878314886107929394529187757275951982489337257677821692332443528307305714629257631317645110653220319685262421551838020470599683942362436881995283606351061345417072245315729922092799693552662038460605223203662141406986904569136861991234607308192664759796578558829697148848984936520631882328009990335663424254890539749282130245906442369941532633623387984931934790130962161456323059824900338748199533513806045481300633744653373263922646026079690200023182521426686776437551073404667062329818116608335676197568254526564563581724258449267719104754427045478035739898228624397530911718249822227373340088295601891875739384199488109477525035332241261125063476790599998671485067263601246436406132049158226668551887772839813701893677257117366453033597477706933890895891915546834095858366036422448704015417986359196567636666526779183284397794646874476866945400614411984478241692404195903444151438027415735047928009118274302030355949875825105753346154776680863414230142919755062044488664010254070189466336011420636959940085828554838758449608987810728569235112787964583409806975672709606770257645314998831335432459041281136992789613902101969860883836279597800550333355584533926071590798215587836642909194278303194862691093203679205534830171565591759283186943849632024430170093901791163255648001805984237876121030993564911953891501646544555179178554752879661003664416668478951609054766493886894993726648829413523585042783616744326555208542843916972844044138388859689580422771516736019408619017804843885339449037788358755816136876100835003663397527612528055550992654642042576136079355292028193377184538896883599154057716138916025700931589628698113774909487376149049872637919912956570866472210020949747102579450523781249401699722231972754451273316943478372494355324918191924530221565707946084057606178435805885012971402437471510923446523723913972031215161500570461532687487673517987816146533543567363994802824519407797761450248399763051502887329681412972498896197840226346298496898904371786318714415121203695741573933818021407085951395288338043141112940880452621913367437293427888625304559172924129541308499435338339281227378815070323093125553530328107324757579387764177848205902432643640668071778059907922760857579559224676399067961656179057957048059959597762071055189654647924672758355632030794797228184817674077204129163832504281520795634319999958306420380038513612943462962239666266650942897302262790614639472349695051754594083829058058950811583106745676033937866750443085000115494662041675923129266197787666568808624395463466651967927932782730919883003127814028041701427554287335469776332222198610677452017369509754420736401963999489664472018970030738713059439691460839195712602857241598599301560619320729141676717387775334935147477552190606516027908550221499764295816898217521871494286586094030621891145134202461609006159916265882884363115347242270948663772170436111954074673141725278567341317013764070561662631818627641096180856471280852858391847281630816907816606436066189308075128750616057931152218661749304396375941425877483117129212931628624804107090668670301488092580046397936937728065442454476312109384017600038804833852049429186641312589786638272956428284154463465355205762309489178503507531531760358394756876110846137652059234413614192188889863716706935412019267371142563510655973590749640312131366523407649383137599098034284971648298734988694192429238521138154879452847808876935574508138675877542533241981775645539032072880784092579608087421561276655857168536796962213518923427571650620746907534474981396045860984989672309249263902712997313534908148939636735999972348958699993767280765259070474744008338706445821124251095574621242550821070643388775554351430930478879974409961426512987883459294362099936536227102591768953952096089926090799999093402585856505791501117877536368804873429729502333109747675568594662771782371250761422540416583205921382857954545008514023036991683185455869826657904326956452533585706794457239624673075055694169732385493822307118266483649522642111139462841107861708232612465492480248421444277977518668464712962275739549112177525060784323657612253741122637204728759256155659433532667531261488031636155114891119685470622420162073461938618677266796361084040915136317895989419937059716110464486219293082975896129548232873637140033629964901358248672936639607878681114007043058211036561253577721245470422356173414717201190560128571341635949082258167899385508240809863536131114016797703402611063534715136771344805128230785179303757910425659383466960008115025910531515098273699936085268254795247531495613736510890896970112968824918643216831321500980803515741893791756632207258218813777707618370659501230759263032966757198721474831525974153953615936352854918716688419301908559135197496631023197052091877871732144788482193410534476194609505641724017071486234619586012338690711130519184847895596954329841954234057793537343766058637993471974188547205199043994918988832545910803718507786216950974589781238040315525023813109076996068811042795729853954031075101245220591659511386329910966493684316243913787948539231602666100687068385504727253780100913691089980800540084927596662877729090724314911254258815067586475189914889772765709729377648086050930456153717876638957806473947135283433352382099050736429675604521188128905364729442583934612462561900624034456359747476650469756461593934184886122866780917492906327835365766178022128483564704379562617483398051483428498210209349007093505634686520396754321870599788299604311901239095110614944514674515917260009216748329778481585951269733025613270034133930689990330766028493696245627762404410831364325497306027617682607346253564705620020152767600794030304677789331002986752558427499187955492847189212364345829033495314493420111651944529637573906068461291782122797027291523466249539559957475493882933873105602542826562699109364758895680305928657231843237754270294497285816906870637634425438580002151714428445112473086055092258271313262151263182423447474617380822754040681834723738624037528028488571131566050572845874186912522562228658912642920364614986887064451316510930297416051457660481660973019931620949986160154183577422013051242125507428080854218339768795926430391821987928154370212351057111668283415861580724390374378138782577274219220887594438754040768353683387623994029589351263377022402876636808396322200922836256516892145914748937611196058530531155215943092894614612520980576688424662225224288004951315247115229613691785096385301004223081644079906414540640136838049151622426865120567900071620880083347094140874513824758276779966101122547003862869355433635746840332082818872208807883504500307504520919277198256593856709703731800531012297948303867074321074052470954621114938354058267265322455290965048388721868825536944195031456093093009501288271446634138035354837884432232504320367375690500923529869210274063322711171676291821648205729809398066892339844959896573447878890121547735711554779070190623149263403443669355080602623683292458242284691921375790325412239559034641472572722950551963303686337005934518861903232548504848042890763051709552933737458719685739607809833456270620272628000507203283466345194493353044149668846433240263039835221550498260354773129388462853387022602686469152559352142633067935538639017377814104309567220667123609813572001754116028970327075936169014859119350709107537611441564985692074989729075064388348857162637842881959681022660951481238668571601460356121495319525345629200484864063721266496476970745996095974374247967633542934228384195310679467004663329608251674529111350098530475008113812911847459517689281733777244374480656061092132867973533631103153850449296251462309121845592639123323747683015400151841230561557347060731583969515874074794924854808760287221972866757441982372827558910220188398887477750702057566426080528414113424616203228069513692806135639134896022213242862719026381632101470670681734755241934942418791663902458724020545010133984282793927817263499641281956710343972809160626077554001007024062484115546868664484559552603710783406421575784131874116847904185889704164017560236169710176472857692701835693695900099369824421468251539862840646469677760424212294615464571834190299995996382009759739190436920436521338836507945907049696900034477394378604176619512712320664208622708070271579722384109096865571925297813348118367929991448069700462403886947702159047485325836175478121022179879087063741704590785996551066792051988910207887195288776673744714707192228530047018318822449713147187326524909531569029304869925954142631201896804889583932825850167795770308622841202101736443236747187843597176156503427977141228157989850610445790095866966085343252494245865295134669068496618400133326528216509461895971684683232982399473196511551842967950829512041207441871599925277572810373146274508011553962962411732522370480546199709135264105053629921374565466885662540814816398639448569045141219262811399242449654396187031899209386028756262441288296270212187921385775083600366043727782775307008858458310053406130386423712697053728998726758271599190520211593197785632876992190154951272968678871511958764940949015628714960314925507632189038235267385305536353644037631373081843977529821951422723585578277584679570823213121642884071796027545646124924785433245132125441655519827431479230745911228093378631028621111344581815189533786022203676427895739512833441509166480245294863444697960638998339627764372004308114692028527252835980828704743550814680051491156255314513074212034552901839610319529422606887313382900013650617623346402026324260414445259543540820106231430955311683636952995751115376572194291038756954919199411176877308253642988173754111290097247476691976883505022450751292566255353244776355670246465338542583316648930863086026980030858231984718951095261033350004215191367265614870142669004306941094894859711904244293858106688035668945521190465834180518099602542030178044053029278165895002608446041716393755372237558680962897073554442509410551030538399723086278458868704317326578008403805392595311021123539978764291109051852037478384582197070630413360614108798493941411661387938653420888012550587622578569498267521105436489333313909400257645583206661056913288940552418515506418552570033315212118431515721401384357647859404821240176697011056367765845930036769605332003744333827777439287586444800612828320978594077143544681860258101549586305979266652883170601306407330488955998283411220896748424314538555686571784600980056966391568594766200574267731677820932284384478720746011611491444762763802227680577916392508135045416653700772839436847365437227601805533984835926052195474702746515220427477419663023816703080022106650874732756392578771525241489332688858580417155972381880075508719601452296766671761571234140741409820449734008733484608612145254115271384847485032866520718052051956467446115985693685623113830851110518029980080818224559625085383346758503394613981319199047797653961604947130359250340008600635292772370521721114402308045069429846297572607335835801164132374666619995959154501605451352891499342277111057560603880191010035476988033865479720576045700187204912136208814369548356118903852254140097649845126268071884591951113086839074873945807502452617853833167391159495038309453836175926144142910276801961987213525045418185045054746883608752654135267164278105558263504589582477317723272879679658570357586314983420433931680935959761613212695204520046800183681382915092599332051548012980447164933995448272647319451336243302547654607673523229751457196451377659475971204050354503589964674172031550309431141168084020634126516392100532411568041545471334990746869729151327991688666818360692162834719802813664642727076585856679457255590102390454671452377427678036356098678598843683505813713386017738914930723291897599447904932138352327501203169193236708297968863997986836465615731304212061768791660536498376791427270719148627024850272082516976388480590389767563590173063729804892924168308919927394296857539525455119707319250149632082550347616110351966729326653002402289623460810999357887595417880574910455512581547138738438196447189026071948495538998866240841021798061231748430514815336829655877789603113322907612718379789704876398565627987894870325380909477057589403680921613172990167919257658712738271730363330698165264175420918669505658316950250189316175913257877170335395727578506363993104974480741617080663339731230453688134492487702798986291083621609292665386450340171882661770227211802796417925287471176788213011539116634450096298316781353583047669160587504923600911798333854447304301525705289374686899186694859281260959391254151109910307562026785415679267165502248650057889217008948498165114043093563850365506617970490284286977061885769787203260689394707423619195986959710695775666335444995226130151655459861503517670612853758655988912934936136727589443282545251750058143520324049053937700676935030702166265476774818062826005560223227873481602768314586270894709459271280920076450665077347650169196856504614223489856795864727774868904044147522830185497014921182892118115321859548444373037425892875858033382656316556560533874889421253107731762993954471337968765145183080384621721169524785559737373995688031410320690473074503024607689974025342648191899590732395497955597053383892048043741571549689752832670056622687692383442265163068771946712582271582732489022376686934190927802776640026043531792489055207211095102869978782684061263049214643782869808135798558853277429631637866446891178898551851884528918006673273758819913228861756588056624180662785139852100297466388108404611354811485121097752833043415720004805321610119926898126346894426033179178551392468741103843917308889412182225972734474082753558969478803545935633234596510060362718627290896508118627243915251213005315705332004495010363749900230672927819222964970577317359447977069540970187055907302391353024582634142590474641584764397257036141035181972939018533542934774051005056200629274929370545408716414313764970388561236751198122976044246383375004749614040667796258746161644104201033894978627097881359051658745243553128887735073199359737599043506218745866703195441439476306217009584344587215794464283734901186067078893846449079738729697159667004434321844257302891728859185039974236881973963450427990400432992181169751263590996745429882826005158528822129013008091888042567981852103895491303273211071237632465759294304983129454026906806512880354519020420867010976624263077167061082343460477803108020083284011723271111572275683193014495865853961011464609617197666680379905503311187584405732583960171127277055706930489044883948057042329184540283114594257722869744046151905334366460174079670733240184740493113748426656964765702016357045496640854530336535832164353911744543282989477747718218382872767420616452590568625265389471146369667656777525023535422623299138966568725196810024340072670658034034944856358074669097064595549435986778978751479307648275235936754158620221313631451665240534740422306526341852938123379338847075915098797502829919423446403082596350230260467818274267755898848912426943960887408251618126334870230980474039199476438879289259443238128821532296386819953696642467553722818857947145230702708533182665967026802696761263138539012599219205834981976133476331241510789148242058097803803744521932665078897067755592345558315914515839333229937431253928096872967404393247384992609489822869770428085255763225017118299177496829491288511699418455132808997617060154994990776128484099055722985145147010597685551165543477739852247757361384678916458783591249611063569024416383682638588565952529954288906438517769966846050847998520554289550118829925772085277152094715659581678147613582425732424785426037140557791450893441322092393166970163515809761289996717092637713078505397522692587385017485265257733016802521148171135704386629153454724605045679895078462887033959994777430390594238669751149699843825985314678401682075240462870574315481355188700602945187417565374029651078134477163920410220938684053892078029778297101488251446405542877623046230758298645418371909152957490111735207406308119592495510628414920504571707785760420011662320519523095901073739088848066007174542300617219254391480778270678037861501666244374084688262656036515583284767295518022704749261630813334020591388959974206282550815255872782428399278230919166614350417179902802713281861792691861627335411574444883595056632970092949743023479103883589909199308224846981443294383293041909162413748551660724213019112704464622411460285933484590169453167761372704067815130263522033173587714327139312092161487593740104096456437588648855762859215344073669402437234909523668113188351509989334288006883062682906270124729145121844801618184132486057937223165633263580218766972481874041231228355701857374239210676226274602099600201383616000938834855870723715755964623485908599285477318902543065260043179556866798395716183999691754521635345430270602807122069831433829133442361219784583400405869218119306890657447575034038044332093192462992941711783321289553955385599978491017649251214553625083965737013873030314046978237961198229520619557364664758256128165546690491573226360359350521249767680825980968047130817480245442986022107752738524693392721114988465453292271720647829443689949548139231990573271842056189470146389124133910249290900367802107718273132472694211348664737099618493159593614019315577111263307370089617646193337750111611711779793981461012437347934304991169951950272755566253397239029857256701146719734827290775194189893976361891771228004775070711546503281553498730711490846340497924425980492777829993883527173584335094106462557375729819515955971659497912462453641312794329190074044239684931796824639470394260319029570431179791031963413061501417301642160418722524302887539048983619241614332273211675978224580689978344164931402943509467120669409732599156012454791761057206288134985281927832141769820310792802519491805098558073719780582382346717930779362967145215492344081785398648840318545416683065980783172921224650249361828184763209471551302337643871026996514314581038600931012065314544202805806259451440014193023593621355854717180699687593913004438068347620177950953391024089777430944760637351605581810300732903859184488543967913601557079952744709281928780893971145060027522544154128672656044676447385254046756053553475209580008158747796615735810631739021297580905259474614545288588718086588272583341796526926727881251441144149318160660127774991498965258177714974737991809030324981565849688082150297109719824956468229546002124536486005838238568703588595009752547274945632401048447890733852985618315156323682497145699417093818305187296943286098730120751213455181080592780667657018853343823390096106251629228562628120999184264892159632995552074348625202291208897614383688781064170451664558052270309989785235012809439733543717489207872582547781047454794249975919760557428003786762082992991274636362515445607619894179356462192927869514585086787665839508144058456811993426994562282301658130782008304320282829444161976674250837716488566871209874596268870435695680386667548555109313185314351321110778137387145942690082570133342651203234639211749446377162723374884295090556171513204814238666922500273419983760187047151608078323201934876692954600363146995381762045440573410537096742131980918306076096296163140151432321643259819378859875418990935896411943299696420210973556645288316603711299519524177353928554628530005762791444023692414423177199944827895749123824357754421492524443817085102122267447209411643447424067963285867330081728842320639745194891825207769969429323974713196789322874132945211185559507148327022964948703452874941538463861016752052527484693574370021665329393138635331477524412713611617168185148877528412971548641655429513039062934241399177951301729394430167341629358797398208322244358049757946469170224895724828638969493559136692957801467048486658771329886629699109405706405277368576814748196712168928107194870336285483103593256857421925878059696188591479005830754726550869022388204436283522495597836598348282922386987007034115044703382818528398909379167824650333146275211714135942134492435135909360490055952615358646216862217276014562356015816853947990604689425775190744097671281626531826187435804358310363971361547896557212786012157722060124449400604354932555423198365853363149110148268111744839621808492726369662314230141147518804878605007552415702120092476321773951543744607756739509847216246426239574759763417060472016888049899942057765349430976744466215221856304464840420272705351020385214698755457978349121497331885672485790581858059751623251844837621803773850780333602063896653045390591909734120137333932144103159623861063083105906827010648976874575752066446546055835175635258641422615851114350713834558315343884293805481050667775150983394868822515876304993215771720119445477056463201688859831247502945761967250446914768896915276602340413421820330353595217833600842055565383719656500696432142853797254231508502389036685945659377651597288392451650030263115759156302859889052139914823003793525129301473720107951551532324794798209639370406096261478116700023607651174830205122110914840634495588459402860596636734685611294145449515986707077159769646769983721582805506954024724710862553438518078759715177798463110976072683386104591224788766988221720500243424051734396835226055876249576905691825113383375216782197948459450716291194890967211287677605490584233767510387610797246097869852923002723934905834855178516362283456930066217201067288439981784256439085800254697821804367739277776144648849256727866626064075881969142597248656827843776229437265918008388200826226908379236507873244821462407551560376715248835834242741898326474428041179211864762688537652556471522725654809395534829045166225819995004466457931715637650274905672837007037023821834564009267300164805832461438410126702494463729425976470849228694594111194611652247773914514686646286772670993864446579536120884214700100211336699343837473608114216061569583566959997817458023447206270675400066974125199542095002660783756580902446507622663494806018153562185239354521851557528124222424427995898188767090023909356192280462963475504906451791675935191835205354042430971580235418671819511606856053202823305417867622071627396210655818656961123628804878659975178798286412703466215513552447654193736362169507323165121198644659055364012687085306008223230752012276311880579886243651508824646981388513456036876459382331691696224682211821785241711578473490962202910715795500859227656601519566756556066387160386070988711933250821633073426738257400489421888990327288856815349831824678715014656432852063050793838921289616910348535077567942128942009957012399256479767315688746594896799379989963712465386334928435103360455407228363082247867611957555855030295924615846628857437583344537058095910939181913366938761091897194875783461625507960526860268249333763240776883624918897443464419845594029795572294172698734432645449424900184036630898664845483049066020691010559912022593047780834684828712095926491300142576156333714534078953908801001269371409329776062222243803603893925230170549736272624867189343187834677495847571764056208755815314475132730207023041882496161951921813072270034221890852893747440099365968271474699477988510529131269788359572970234768838213615751140944963469563418899428093532922669482283797393569638520677337333557931414944045268858588391945385817047647335714098963055077934045164973126300628616382547694668505435602791189427923937285781008208424753062640878818767873757311117454811294490134195755006701218910620712326360302696527717307172759325115570433717918605411563610127427800279731916275974367890813828963835916858927219943342251780529727802070189129560245510055688398006071124915951745254971097701243769766479788146366023117015839657674467087940511174859013481193713168357382442146760962779797185092052605290143960085152622076089620834492483301805525607604383637216800132138064913633441752026002504719507271557945520244741955605918195585008507173928438452957949816834595509688195849630352324467403824094780423017990030249972016006292926483061400552438191087966680837736129303039092205183071281262089570915951783989178441105157581888686777509325675654922233916841218405402999084814406668387956294159960545089100848245101228503534669192882342335829848758846186480921785802962871426282902705388667700585672952381088314886861466738381976434078401926509420079150936026614045745938743064556694757350957139795266829022204683891855066511185601763038001501740564809368656162091209964364092016267469367808686604172307967321306629172843791125227046020352396483561859285519646353618185474790274353634658903767946734523309035344473386356300730432388316119242683259117566179131365177544373030052522101907043889782932034913681733637709275520149342762247844714151601890961126949205107557570194843986481577860516579717364829518863562801561596174661715606301788314629795152614433262416598060612894642207075417019408700692725420435633456643639409781433187884009124445517923822288562048118178655167218603617486138300230946168766971102356046568295994453691676234025628689480398212665922265701772226368200728861757804291847502364173995097190540207719074901562504760739994915409001651136259670199901572538081112289298204578109029181040161311263884533917344824799767474889059229451498745463926294294137632171756379532884857323557869928881154567924003647844067287102989992593255053016249266388705242334461198777542702995378184857843144167657552502927455248427498475371113620091167212628470773495576161540159202971316310574390642646910489305926041328857643161083612143358863319895409370510932740420278336916294608269550885917439928543917474168912334404191248412271348197606890727054692441488712537624366557770395391138868633882415014907227343969868377570744575867695822146668045888701750424808306323399193179583230187159031975912135170808721742144084061436950359788134407751555193887482486521408800676653635686022068524736017182521757737574391890975886590474769751687080957437612726898677650354024375150150293973319245742181036185645503232414375115124165894821427377164445545537048943324555034515226878266954814375630285875283769992595276592912536746217089037824925791938260060733471738431202410348701972019406501683833487359009007329452806122706879186384272262766606918188197004466973066155115334929808200091471051641077676701177401839610256928076502503235561523133372575357024269073869415549446204446218018026640694708820239802843242631477381465623889406206999173208405095491259769634437080283042742740949341102549294606061414598164300947944641814948779035386028208183090442892547420501555445940914741364358894842873248557864221757689881467238113559485810212167835584703640197306314990227961270065311860010203768418879958841737662825437765594865029014523064470913516058681190045080550574994653078101664306080033019809980329414811891358701039929821818157912976433888371938408312410237486312521856267188994028670178621774917410609213928858772805699091604998163389784034984678637725305794677398805649821853814370977213600980459911019245641578226100966314607007358655435838155069570445642854288381538746517484505283049338152528764198939196890572947711276300203746752417516626642724060186500589676331754221291606741443664563688758206441580368076283469825242296401790271647851143398863459997280372010638588719671178149223761714811478444913844295795667376363416271249210822574030880326652024082796197487907119414197367658942369699443910517143464900409816175255704343626360003192642998038794606500001474713809105607481733305880729886134026942253301690364015417148188904829113284513088923738677972615790197689416027892265237119306471804619662311433015090687811237053465193310668918059124888516003561937247649683003972361907321991127578827063828226761529223790303268838711489634145663963134994889792043408111118808427257694652874455788364799522941268735968938508308759934563176274960148040424596591494058011272744021784350315417537849849706071674910273626894806350707493337250968810260799935977654568195273269387928077552117339387182124715797992434271443480524144273377746091274117744170190125137938941444003680366198715612956487854125500605760330608437763164653256366390645600180619401820409799116246630757186710852832428358836170436375016430682122328099270833580773457234415352006785042271432667107983579630057333458001443032513185668334335821402556631024833817982511517095959566945358442244787278853373093507696030546210301661433898051179317032820059716736688664602761661627713395560813783003386436026438771233936735234410835714071514346274037267282803414328094366200922931531541451714411508673174106991148883162029577831226642619398681399716832940922657679344380752498932675922439846902456671803933592446477383410245219982951987256484755110334674750557251833612244783641783642192821607723931995974541501552715387746618851201420383551716402370474444421808095186545628820901859973145721685892490440809900781993862086840361260969111181580197220952139137012057646200906345461622677702928684976196351224385062936525229395351540400815266359191023823856949677365142822749007497336063437259574382971498205014095349768601648460996495737767566912091906638175656024219243146331048600210806369566996019121506907868218940714891733560616380124341523111482070684109805506605762324533053123032003576008113971194521255393612771937387633779915959264297902287363396406786841886634521366539530712468428389906994705202530837788780393840155559287473029810449967862424304303726401321117486220436279992381789162094674740106451273744421410633408970152514155868872266409223879904204865964046170689517840749094427097383844144907640283094997413825626845212075832166724152597382631593454290313107501541818591063990406964797781903660703386754179601059158325208171230371729477326643814229268685568760887988478536638227138308787196836134323777613655725639294273967512962255708469020631700243955853080010252328850548355464727703364397370939887457673375928264018487537071844137755832014496940592948030984548052496465215832091708303153388252011684750695761461558652600173769073464602158995156907295062426962774346492572364455927197095925052942802320902004933819920946339982419392520044117494833054039682604141823343446328734740430234213525176937774884011385492965679813873531537839464605459945012343858939346266839635528080130830455054490036736900536581673808277279441628800853812113709377742417876481906139079327724981804899977865851944771572985096194681894889262558273175919911087891399934742628401952503546377295694000855205856153547882023148831000085064898216856017138859384464201787833240782343305943966917288990488225018485946593242087599052622466622498580718292704818277925156466538669265582572109131058105741363190563897001021116007427891164637861832731876227782918362485187447545998792022464754074289082604528643984876921486309453233458340399918531683486221392075947383706269892287427927028848204558660172353655064070818036167672431763942290858930304355162201540476809278272614122864192355206558030778294599061787514503942341938978246775253319686779667834051282137710514623236309888845872582151280031381046740869194195735864445952539568925459040784820545793744672011161078876044843150320931823732917717245446953529008957394707141111304188168073933615588604376814391109465756085213084233315250116932641448707640982906073619106960400435886621229639403722711901104145923313679707562475736670570268853834024813272197132723354029904362508507203551706231251969856987351062373670438119576846051557181640052100033351722722613795707359329967771852085003113669549561850991801636514636210884267626784525970703753995240728414970382575436394795238232711543146063219939236185945779892630051421109210925971490080110849469205672579375596750007506563147472260323662933803131272448859350777642617624390716327522801235158952361112406642445727723423394575849960825832718638453739987112015026151193047757224978713711375919899651169946519919379222859174872762080508558167125696682408527290476444132021885940446312617721977953829998930115423751651117637222360948129847011203500805533392677315253160847833090140457253239982056148712072736793568797470859602906227299563662285677932096658617886242422573512054399944275546364152288936742253666186638545607325045811825921577561687728133414183829300094643568782116132480372336046833095352430198298195088226900811689596668388109083570632063400596435386941336879203722226145593957858228633733790095464234503574091395976204990934030593925569144073358478702583794724688909794070221099071931962665816551266143714524594484282756972326578404857359430791041730483706500555883359705208601908316122707221877062127619412453772669982096391097342588360677389656858423773572339850717160144267577239267424509464480059382132938253016617452216775641459773293313880237907943793582932626590286216156131585668007520555471360051171021768954163431874155112314131837618997953127507865536982581022723184272139789174741945280211166151530453015148508436530861282942843801095938418296911658762457648996976330234385386682484349589771011283034181934235557310267377405437701832602784820763620111540909031757470663085820506167108665239415542663940366354301545217935364394719863345783304893943931420704386183371400144126456259616674802045876623659461906679497769623399205546262842061764999458044600940559698083211476772577477140234149444743183217770855179542500701345471718133725886718666796054824497586144098500425448374949281705830893460023320784674380579604298556695467747612976233620229629079911558094055030941224140358489521247041694296385875867116981427236851909237784820298178680074049105843051922051430498224625105079873758148476354159941474125221298355782259534299351406177152225191368295308031454349250435952421272126737296242364583711776577260192328807496578614644169429455386830290919094080516991487956475539083598042827893793203526124733196141639763203290104585514342311796963855619164581859807882138511886371027335120337038675353819497400302890707393616085424245838675811552491593645950165597105508641855197604562817791571606914220750028284667877715284972397270053664677980111921838402899956282941513447956467514499178859970711351859302186480246813924099285814484962185599757567876232570069806646119513988243980785419947246486544398846197217749515160267095760849023224015381538175153193458130553162075409471511937201557077571197036522882964900375872934799017861383246768083243090357229013488361615032827076203416780580311346212497284394825503800842282192319790259708559059141729353961898440598902315557308082387379398445078645976241777328134235228932539262574117593389128115744231597115383355050302219397761427536501585232915785690206790091783587289061896715605732930422251099896600717641466520910864334858756213482006085505205366897902862728312272023874287044612369641662485888493770827537531475827574151466549024429760562038425472298381473035289731754607659677331210416422970459799994078015613730140522197272044624035149311579748569899075151371300134076968417996303034932797223335059191996137017018409258569126263974186968034446736632665288709380491568325799483776862257535634914640355066396076324847033410936607219983497477076155832796869178123997862658301604085202971251368249542818226215559942629270326897390875107389649838832098701988671567612408150122299302562812473955397336134849559069302159831739506348044159002308315885513736802584410241190014258451074177202290226891413888240359115862656211673140404222354155685516282168122973616997726597133811840603813026367516956551003984661026918044363149989321240650964187775183738047248079582004322430799206442930496013140623346663607508340072581200476701160675834043367633482498984179375637673911644037853907453937389893299863099923115230130686102625105740321699605163785265739202295046224076733598007986380152177643690860503790842522508654517512827891785222654744662260651956449992815383634358435152130175107471999027841271793784223014260161037544998535706175502525425739302852644177273421185160245237736772702683364349879485756881545027678614339696321392734807615214193469342528210827513597776083365622700279274846011083774501946790081793711235525851797409791553923766974720052520795796304020555778145345534987357258907340471800158530233815755465347502853809308968399319590961703746308596265457793319937427318481620413201011388626612783399243710660215686825023319140813497423643288632781563450248177584759291324085329521700449985762033670721037774412974295844912595731544460936747668249758987213830052183087420262801267043074907555967346445964219052047808480795468390829060874581403532957438346598427246326235894769648888739107488887288124919212796558251593468704432410929767737467075960666036588888738843238602334043755066826705208247552013950865462604118989428048657856109855883301314889064564238794917280865918853806118046053342591323914446895531734403504714136179165584440573502211327870064710523483526109535170498484731058249779304254657569938011388168962327432682387966837039803561517127332237979841805697087793591390147242314806101484907982051671656742885631954399668103501365549835604556944264384491281760041814688640481108777486008295485376124286909786705572679777977072926377665730696386852736210679691743588829406625400508905464562548264539709591314769032368274637650197528696440651294376787554148645944166904246706102808708549102351038648960738210873809074816965465837153637308822558750907143162524301436527545227631358046286691647121558169156740914965117938500040004230272762285141496512606449036226563950549848906064802658062634583667288372429879013373543891581550679046278297607369571004419082908791544010341426332437020395580808925085446687993807273644980206896128333939566077905537611930927040941415702029207999679872951211062512127495673447460048570948007043994346878913690699151122757368124484394002637892235651379191536770654125954872083542305925552314495394037515883624971436313282190743165121863619299794365771533457896559498823937778040336361891721785803525444286230210467199076536640193820158359795916345226782185312151754849547641630189246367051805568932468151939781543080786963745757042071407559172628699532129357791682813959817270487277862303144595807164516837277387475874346049694665108507227350336981115193690772762574687417593338637081873917789164100287730800121862916064935088211571997197900173579245196904349599536955959499930379754364406184678741027659025364118042345655800136457035230176013831067611987401364415426299333929456460724335839504777175034183011525935641093857526490192752578947283406337057902747924710316236461183551176190810410907025995161994780268257429677968227696308422841676786683647198314126046316412393798477685506727892433744731110630285279251932250143003254135085131736698833552854639712375259044413336932832252267456649453607997220116636333142805050574521140752705085305068127155611867484595795195913071413282685469098866666640605375905431929827421699292805224514326355384340966703110845904099325515777344331509685535941659091999960285084071318096885619740653508103383752891296674203650703045902444611610870651024482211882553150046140503695365710013586222695962868072222909603225718971256192956681744185909278967716609781050506947801757551806415509166794530608164345582574011723255836827386842121730003515891617750131415396506219882648118207105495580230331278820439512393344510069514705803694826730125665713578971586426528987553709512632028394660569327844455986688159123617747279044960110388502748659149691802523134036672776707845610486540600797667545353140620661006950746540166334726842635978727514428252777494606420382992911262268659704404498112567177266849340415018117896961231904667972248925798278951538014574133143463545315998022097203245484476026853202463934481738630010538002763680667817653441449149532571277822675099859139264146030809520303198436910643887867298442322555303014777862730325559300531676353315530291432450163446712003946244782353788231926923061594682916515318175384405504603561776867655648915852031540504732147163160044233715243880380906455205762200014336504492931972066156877367567953210963424602966084393872507095833016899880666457382444819967574581593596458128322291293470799820882032708816202717132171308419247051458530592187849921033233110467093360638266031078633649411853654105567635268771239532115487560993351848601564733072664682119202820686416665877355486086075358116858874327344013072788179339834251586000257687916014808138728654158492505846246677693797873302140727825015678577015477629170488506482719420500387550534599674916324824374520390033193385330894654626509232012948801156567946954229110212605671890141494029023346209586222144194052256653816478757113188147099608962315576672311286593384870649571391092331629297969532896368731747311756059491087705256670109809381969049228318747384094572224968406143809203182025454393016143734738242816408745908964124979405129924674071055764571650801934246659901032540581374096182978436243375596403785441279722764616964118200647413128300485937537473411515828032869572567516991379780297112628042105216050702320045369412193857460962012123224452511865102833114758503930186407040699371238380399510480159851261218914683653956174922706382755164002852995353607532674073969079377950259717837527406360226247860165678433286748830891978404482170783586538022480957848201801466960218571887321206693112529358900424495236641180230442728269666230235615149208251677219261878943063970961247848587255712208095103744507052368161219583918711354183410409375395624519594779482211283101106980796617172590227148841710776860696015964114101092443393433082022878618683358918839808589821641429984059526137216379152754862833921296778947109262660660257278661338091017358769678650242639560087921972548938682389110292495543741382462972560578884684561850590169952332081342419412961642246711841545241634686519748757435400182969559618862213984070104581709903198101979007779134480452665089185079974637844508298404937827831238826001618106140369502520496032870037854663840901024780767363580931000493749320453138216717041102711399778450793502688455606920660216863908101135051811573889180339049451275910154509455968075455212008619927748357236367034309083665388941845443860602185706216387491364382284864464730583777223688156616806312805801894502839082330332833221954717234811379229316504591641211687308332756801647062855551582808819459128099677140547675644057973439225283838792113716519153470854530461300160777621382459752750935172508417936696240339814711639454285322410653685455509051687371350006338144685036657166234757809742476722195848135842464280117497516222872213043880600976030415454222904067838025465192083273301337808931279100314833700766238789785327113457131412983389903634231485197441031255970072367422796057487390737453212582889556329284185087224346625464933917371486862749999752873204948907441966273151265726178308771463274188460888487298427857416328198268389785518449302568997344612689562884882746145431134644490427420887222129870935076451542751289761625489895044913821832157953760344175735801739571228293569631903116754416044259209051391030267878929562780769106257075202002608872985206740309600997747234079203584820084236071341189432441266976565118426135678862306352687150074657604611315015064686559998863488370323975580674127745452225802860339576304363279305195999792307464706941460894437640253576556801439856445560325148121551081844943821858083758662539393936038229025009429704935259327253622420372966182510550045035565391757819525557889010746137593277442343695663488504302497701511857866233843611478926499132156480525125780870582848103880711719537198487339303261729568470259107589460334847476137919115678593448878109658541824325710235725412279819976933067365364077735164016913099880606516636068199770337371871381343613414457394705582232032265029427724986629724318425494062798823911014817093089683631588607763315579837988464416386178554865574912735880870329243169811658675032007719902182681601591634905958096039512109857962372870594907547393192416181120926387700137960758713096473827949492557345320020929326834483759175131619213346369134477558023417389026467209022852556274941162681423887651421585037986359002704402092318220619728740168115374021774011581160282801324428889144127782836617468504873873899958584036223470878767596591570620678497018101860113945295865018259835960470706166502572797315520042478180478231985874486916155772964805275855972363411384675362573213143862937758434277397653009210431539584168008734401925914528806102367047784605432773967039137266782383604553325533485628336077607521327569236822926121240250662601193710780686614525028801629962084716746881198738556311249252133363340707397731797078030681787743756610886622560584867275053488798165445164670726506551565626262802105854582063097834566060433942424869723878829420193437635010095716206713196808174752141210669730314375177276092887325195802547897855233848093210291740940542925037227063851617025333290861451701085002925116435300934532182432294115350777369254954668834622230621056200582181323723722009351182511049292202508422428602927494830078269900269772539996654865563363621858829162200043548721077702079919576980073227656821223597249683680462024662516615570057922749721765049059468681934175706957562116423657956306898996198999293038199248072867909398170413243870363267606269164161848245687391379802778313270606154428395137895343685255355965959029362971738191010681947295040378415831125995069834829351114069683098501681643183502238414303340643092682468258245081931876739571986583092032563736724216892342377084116750410374573293352115088808878735686627343860922238461051738401128689421874023860896009433545869686938042192669161746560173095496417961342386865435393433710388034864184628096161547902664312605011970155543794127557797432083803014685520441591069837044519689672298604862007211091638704152306847108647471195881418866107467262844158677256767983292630791928416249990266653768246915651295829432448955876513968016611904434283908639298611185471917055713246037730490675864679326529960318907921324467858547353340360039963351066626243709513962650649805669684389517846659470785099341576559292237325018916623100726244004990565933668524366930716976453630271762984426201424188078787735983122264604279007244272433849365779380816636794394362675092479105652113665852345622677005823187633223313359516095905373564708231093595250995116628802487374698040490195832233775672744823989436441914596228494300103391003044064459931090417564015092140814424846762691951029574095547109363050903320288990841665883345310207408985363645492138615264703729040406312165484395109146356281602873570073847179992795214403708008263261406270658213739215098097698449377679779261937144348102958915009824202676684977865524552976543550002015239350632021320815234136529889603745062247926078736587824953621799087563091584012181055277511414500900582540118237008576816636694754225907128317579980772881197987545324237163740370690710849636090842390663841176328753603961692985853625929269651020621420890968843058161408496093545012956212419631956898464396017405631598189441844303497668713300895105395391134046108531180158395222441810631704892567276363266066945993155825828197853724288350325691580685691249396763130164975564608060991451621399526923534127256390410790679743774046025180948089504144476897929893535983011004359545948558313438533799829315546673677986228851353488090541149544777256120836303605848776187851387093081844442350465485977137357757120563436494547407143542982491472404889543444243825892721624223278159519564382544202867954065256298007513882242052682321986334601676012611411131506423460972651929988002833213043843774186225283273733849342123092296020181846865194846833718976693393658785325934059941158628715529523466480871584080912283773003273019639657982106157555034471556670926619762219281218598842645738890310279485701809257666907781245659402188339635155509593460402780561599938720044020527880327123481701033324061949633870577387660983009894717706735859464373099840505781557867603416012902546719155771826895870749137746347803569372794767806882458121351798102919937077415793715121616197182769309610544731170322224146728661673432977284532561034546564063627749923390003136657747823453148131769368367007398459047666690371962063984587185583080823713729181754963286510390225978460666944497781347226957515577312578299368638485158360948619892297924706364213422704784259358404217627276360899850803314270243031763872405492633098332624485617325059989374669591667123322458744746410893848648346812263781612882110216150779340591176230825280819571199417689185034527933211106323517119596791723351440182081069027130432287122329185039954932417175152363550619510603684858453413562681680234093862679190796750603337418294343898487201273833522915295885292120648844267495807606188999594203512583635256853333030314835918080455193050329892696029550796955499524483583695122682429337936273071866854861397562960235953267872406460230927235233047135726137736408184310735024134391342705516416989446853234295791202617082842618679990419323975291898495470350304011983415204123524487571045724006944634270644162406109517228692700566209055493474803665965662755105560880068857248887209281378188651316999729421267471678514504966471065811330360166171507077909579045846687120847350672308282810718220398376171517729408689604574748439812238744744602803744590039880224119490689137027413941928095296747186345751973916046155111667014364721234901639158549486900933757989295257855214429747176837432151231144904110210765500966989025458658365753767057212911812150346399343137397999104943036779316542455334396382445704700072261656221621935386733613915231203305056770009592972060772306518341686351262490800010480731864872182725637409518218917857214129263810522297415516713901482963600189013153090622297565429374021447761829305855262010070148443517811988786276340383433836686238831458212796938037543701135584697936813902567380053858312033159437697913851326434269637747255239821745777387390077955488181354793331420630018530498575102396377118186991164046941192198376157130183648057834019772998738322103040252758696143261871292749342385021234021177982293971211450625359624135837683025650748663223464961130546225272833826184082499422972666818234180473939501797629783676234105435258480794734810121944211689024151232864757862110831952419586765981561349911909731274359796646723691486615491260960655151608252110546462392938193586265801124114211962265992947225787324395084547833427277303284384196761831862492161514763070044112815353638166142862211192276038704345768988779879408710073033445026626191034154017238201119307607650337341004277433167931296314313631176622661758746024336667030282124809869462220993429750250176368250552860503258955335688986937822698001157993047745723485716687789301449951043593893960696426176737840718666307831061185706370215959894713972271960205205326356785369066244216178243778889763763916273687554768753324840389051983303481756226279953604525411133697430481158479752856941807072690956249435972484432817013348618657220317043877227129669286674053001535752765835162800798244773905581160770086344044964828657009982717215141340402403799572304510338234359594433146302757617916961341382056367917085356333137312335849702537716494070215819896573663209644892876061922012566324498182477028086912767000922206556904017495092283707337038885237768044712672141444991791075658206917592499680550129390097978215382456669525254528158186207805070655656558718852527659399806259822543531654887333563651231346620783998008720910267010587454719060938053070129168572904039289730356202119576190885940677390704072481590358488507746622537611947743331521061019352301422110711298421116118042514716741760242406948639600703765888228445852680277722902761215298591590949389845030178144710095379514461261484886287777762997958058294858905166318649254242644316653454378703856462404288523206462882656544198468027624187045684327495601353718731010579415085022255532638422760067690642345031872254635430120373904690322071822842152087506737681513136564139405855497038508012430114151887435625895504974659990216739413837375662626338583468774664669234940074259713922741571937739457122462574083788348021784989938648004332126566146629392196010350542072953368111331465955381431313784918960931828443014530119884193606260943690076370778053385206816622401268609500696164945353605478250972023125654924156321948169847252212457707179108612274654685423519576035313394860970699947155003488257877906581805326402208112431221841496510650012869023927925651481729856214625317598041289110157582198150856130622654047244294247246278098085625862617970061827105769600833000434588537123006605285371428707166743536254300073207272747977339155213449547894532798907920626840033686220829317064626417035297782188591968325021961099965736919748804477960796738155927518282715319614258879939839246721496083380626030433821605995681683399418983858770032181786911301468583589265115703742220837112009231111466082980275774344975238704101103955107991627866047166833957842741058158119878870769774680178148675074613342885006247235880640759607309542179427893868393225537691278545305864212607855547978509790583253440918679649635571153474847889503082866624835058186220001561699116845660351290205510352224995062432879761534740466786150331559191303107577528624406057044116814045261319881402258352923293073191544569490692206420726982715802765816861177434081300456385737107877985082721463979153203550257765083505153888392988076212090336792875223262092638367377711872285827899744307752230251495825479838629964781584926165116910235977994502305393756030065383924688032162755675088378053288737621319516641332698968413734310875560805920176345904002224963611354141304644075832410986313949697431912316289616426901015928686840956624600193870660994547959221972295115966531472680910448000821514052658287716729386284156765318239655729884492188179455745413993143411632307077791144706128223593184328505706799192825965646492984688636638560435185349712643521449795256212730387505745154231858871871844132089246175327722960415996462497323066913920080379941272918410363717318925826899684323505957589108863122209979860063120998547782251229952125392222041257890445603344643744828915424321084138849833346635855164006132494322457378051673980740057380770701539377524414724810913427759894059150095127196391284372329953927160607847301514872847946674723665218834925422095888913004830526392435873047295175610785029530551817636435668490548764847993154568911165608913576615858594496155137029389021887821505673522218320735485206570082943064338663243565002249577177366757014298210052542215415009769456185831622482566844540885068549240581361036506891222959761118835726280664655440689635579926340955621072713829451024614736063844452887190680501343724928529408924858392759956573716901959762980032776971088000299094163627968608738712131821897480769853296611318480319073831375093459234572145358561565784571453877572678978536593966280835470948666193032627733570621831386569952011898704116839984653727542434199963966051780277932044808606634297884240754592124924996366042499439691431580457663149635723640294557687968722072683555130740267702684256421814281433077967818557684324215693795134963767172205272147705228602872084234406248459066146318430359498620971896737297763407787196298244178951924546895797853080521325899357093605143601497614818880564383561962712965109132470235920869765707088625783731970273701140758444029078763662919787064063003706016170114693285764703259733823286382985429969812109944422063615651127507250394950106874249803553243184638457463452624696177700727652824879442050555918946687152722806878026107049138313414424541350186258906606515239709498348953195387582677235434067558702323999714904107916632624830131292806854723085828236078046360906314589436119996612825201599302125969208945611075513309445141013552467406950406767773024712009542158333126990561748034858842603953261464707761843942159610123734879240151186968245299888824279634286190120401998370673794461303471656978362090248461334512723234803477153558959855412155016982371657685916554701727861982666926112924897655335881489084447654787156231198312967685565998154850613391252603310654147418970041467447285724225952638171680938451434291031850213431294520306953672511389187212159098188329521852529510170286918265179577422280353665814136143731381722200473182073129452677465333366923791077649422585482516104521385485257707662101317937377522733887383094412346636080327813287558847086768966663736458633575679372995404136861178211275994021958175704939073797530438000235932212257518000325157171473047361983976590170247152142447057589159742175632846613023786106120287304509519671826752682873413564180150818006972720458978682645750443246545766737111298444703169740799573245751084063538366615568123640408704871561140441897383320530335455807712219644706985849831967087724787922144374978109539932681105731567241951629980781700208842256111800314438020652966191861682917062160383017788247908241198501403536903397251426600943823788837045446341448650125926723733858910944848412637806413349480334045762668520606556187502382258362359837401053047453585871821994145629076165543133147188425347339440841665795453941973020713248382387651832116240284962539134928100487501112928050641215991935965378649271125747468693105088078272025497973195764523782099484159877367381814211546408894392979499749878258179383649088071783177381281294277737509055737015478595582544130522553821673168492662319368208238016724412549520584527253140538091865916884534762115984322998601521524759129744849241080288423705199264069015167180573989879819329320653229259881140722460603781857285550068519556991910820552339500652404332385717461136361982376967560773396732063761940804145079363858305096692935787593881211852728637156338227489634321264132422043864957967448157314194501800165966819863089772149339946087352869312383063937143551000583487202643427307268566955516517333408257875420934117393406168254934797572548217200063332683054405526027087527425176504948937775976904805239093059007473204470007697967709641722967305187733251016955505776056187511065256821624840254799208004258238889096886745704259738275264633199786292022831073955542883597608935545743751584800262374724587390380028146730026749118292031139417189213701462977752349957713574375806270814570038063525036242859407705957574952781017759573482484384313017482398485268975044234058605967712330975361516097517359006436492829841736583979644172331226691402809831508021154090763937039110821574375262928742251705476990549547560755110912407621410568310558321666498455759937992047260134176853242588135602598624488372019814521078572756111279694118428861478713617079213689236205474781481298874309014546883977949521688986738445080181643200242928434071934443104774172346793478976847814425547898819029100924813637488416366731548212821375579659909540118226798910927606217906846002010473851500025301059936689536773094215277810479084445733950623104027761256183051693325167368492058019589261935980286839559852001656806837478796158796368135542557327917083497436573057496357207271274752623983301118751387312060936072038797132309465101672790093228326279843659968414185768012787244655043575999072939332086564165220117022947736131571267480136672734352457029682096936095077343103487839963280015047836837855062336019709470527645799248076581999483117687674656549927091225306704948754761410398720403729941724580916408427329171162520861603261158657683002423329622848874700915494437034539187938997822356171874822773065768248369189938668559259028928691817745433935372730645557364182832972106203182816457005125993564009054671217103135032721998387930511032190892024267217676352364318712874290009645825816646694589269643213883251165001012568857693705791109843905825093346065969037091712347587216263159995512475301202707126344760414162768829569036123568028951437722122615409627852476629865419406704454445303377472074157889535327788123450156055334951301727669116955121877933477870280563448484057727782759832012550462900443216435753025349192097800482211210095082784871174017402055713629059401674785947275686217544992837464452670919189274815332614390210096618523906776565302983443397969057860491718204258839790845093740832994951321659212215708795129566345210259979628954064838909096592342371238323268935763142540368119243698967252854923653862237620202037874065658699232121435271208487968829779661222853884252498423940689128807787624846066379658028991201902259689451637498479630567104755076845816434653718862700940341958094956744445764643960476946806069887665754147815670132804455861089774886073607673568843635822760572609862416564791226640770847848198295534825346093945230613345376868265658719100910838204004460936263713236233634631810578599684999071496510830052582757459215259540375110089903456887622673419815971942081138546085511169156998898942712386938349210213995775890170824026067159834592249710943764588468493163542846227146380076133223279126463534821756483709520260416224786660387353445622593420495094770195566399866931112338643738698770561299677174050662950289653001447185481307750820031705260186501212240258862860721449486606142891436847990743283733946771095510970284851687068106325651481315280614144650999290086633740558503690143493640926318110335086768523560104243690555147776866122835739847535639074211292526710450329215459181528506464175535403940928017289313589213499986549555520791158153587459109593754888390854833268357836645602090308456415982398470560067812282952479869155568734231821988935876937470688675120638792855843529987421661185149145699231127278826435523719770176532581486626827044198542648470560515201204965199083333736832137619962824702602157806843027004380093194000901307509379378673330195136088644418768479783553296282131578463797111808825693449118958648517172583559672967506330854175820113060768240065314935849705818918900985916772889480711873376426107362996942624929658343739018898273104421562709936154412882647558784389144840549630985064618954553347716276171325367475581189666971808502982690058702965813775755539401420315163594815203866157826814061240244200549671726260444124421722039250156166594703470656161604066134247012764933208837533619428609112061558918364896047201723285386435753618796843366939162675279717285858290237883052081168696239450172788735584335192825756134833198931968708810740809537403871888727725927087668755509620706424204491233997690064355987864850851612027487910996618308623582157691496993050871413851327562272695259326660160332887772007287361454280623830573471977953780517885655159549773413698811760066828310060002860927988962672681736361088350424099459117190590379690936285542744741790295416197629872111024180899629699077109934492445968065498373183320813451936639830762772507950895771676833351719853756337809850192154793109266899245853174266781017423521564107550334192907951496975729976612691516859293083957824629395398163709814511763189305094299810600068804036356849498441125251036139491848780352557516709619570599580647959993304563036793380617779471911320493638004178343535715313759888311301021781987625342753238049785320022491888756060472295980746726913438359130821123775794474833930070187731616115438045509047434016158462532284369729052197736001070953247984585179500919163962896864946593545574838431324006499502391040984815547094199508372783337526415256003595645414557918780668242814621860937349571319722730938952524849234170242991389246001586095393721945851314714434872530812149755685558844725275649200521017335285187441955328886029584861893951051688454658109905118567868127716664900558368570271766110318696854653993584111848774447805262289328272133276929060986471881600065027602212590879119599145730500450191932256215063642220652970912229984699661966852192235149828094981444299108168937906538029450092757555978489084105798683591515989392057255464553760290522354581968790078934950171462875432559070869701510075789212964629463403794343332192298107686805225699359160732432970817112588724182603961236082009918895605049208368233745041921334650764003662975823794525646733152606435481771878024903343719667546048795564489817750567832653271220936568143836076078256799019937860076149609958194491810866379322541244464264633379173731595047834568340489951190156334605687022877609469601367651265603850692406124342590476901923172269555063909850571534163568282765122172645422377819943339073622057046271630587824031407594157565075822744914749183434403814967534003601039666111123477599933040998161617665194429236478798158909859098837360718202678172343363953172376239347948793814277833857190701622102858728181945043228134287741155484255143297265941676476603058312272836611658859937208296545768721599739460878593369548325273335850061178963289849728444284148730303945178424322064501306127106090882088552133983733972782871012323155449696793572064702732307578838804489274398248210093262594303960542419505223190101142095614729156057055445776782409670350780973560769859919277115977975012844515917702807949990353098211647301037696065752051362242924526200865264733385701711652696981333035122105644590706489035918285067888210500560782732072106881051949758176402819478572069845449676306988962388769832123703941669787729191526668880455152847440184864511192568109386908146553154301330542642682105773891081320837814535079960445945221250338828140733217161467637414333274623160401185387357161659777656620976435762798007841091911920514061773706300858041203000561994019855533997209152308007442872818739125953832115709693257585170725812495917099341437467427337482268828711834604644646761723288897672638789555427138911790057677249388313559409990179346439132471520394670812439240129620669073918432282937384939966854347380632539734163963219146461417421391611866240089538335315454882846508265683951123754924426107201946282838398806558522985786391686245563028178287076025960082508665693662322278226200802566972586408517964021673935010212853436302239940908455076058837421391794464873692524271549067628952591603111110307980958249487512520129679086879803543339106540291498174436662462024197007175788237320794679067801512513550299569410001349714219736071961416699816305770117042104678535858619692267095287549983340832315234578121359289731352968519133881822587142893369978704473615685586341971553615196072099245222176471625778767643168874257283135138933450824891369112612859382297517305287553951577006133944210617481135437955684968173389596098057578831142173383165926068142969154457434190886528002788958565039887521039761331473144349226300147488873797923588760366025673333192934726082432714882664041425974587448284640974323309957741198706466961934095777713911064903242221848782057207723108155302845108302324446140784131543616640150842583959694161482373106092676664807660844280183481907029019094433488022522173046779320423997936567789730853650961968787256417571065837611113600009788201304727666839112358253389955455082772542695208701323896432091994373513942133995713940816933777219102839562719399446010762024803589677321915192100238971835643396714868661842575566164253435659896945645456787255243128172977917053022989163358687398543360110550491195903048534766614846543126029917391343269465762625538604283955896641887603640851979605998734553976324873705512551917809300614168574865592661797003573509471710197676568381870859270248211160765787572451855307123383117060219499120593524389466096279084304401371138402434747675614978541887515391075307662173638402053218419145273205060223191358883501219486725704147210414164412797579348467541098131681403965273567917977424460229023817456470528505175034137418056219666158012898569470809340580218951680394064508924787361497099309983862075337627807846376576781248431192548574362109201297091158411333629906122494528254832501770954554931881363969719231658159598215012053302707965877985696590540198465554938889481212509679517558917002088160894705778931943740351858682478023805290741024819831494517100227147898829969734054378840870866972992412633949198717615592628719523257991127531791443070468796397869310834477295914993253457926868051120304402690601139848708104380092107726095045327295142057315347458800788614540921559941146644098167960358938124189790609962774143921464160597354608260236783853893501223762965529408512443675355480156816085357951381443188155616761219706122308257989897533670954726625326260621894826890627619898532793802292105062255702486573244458276493857762363387589998237190496296213867593476998072575853519233401532166665249168078999029411221627312019773706951515539993006704423172358854241961397183603429030617373996715522173550893337980575629860770415010060125169642085295214513257632999527202402597088179398513740487091580632488347374217914644743533416980870510480137393930668756271449083829400839781837671788237129795444884737369028388960226423878130574224269491359342068315220809044872223907067907088535121466000910361699508151624015780017740410997959598664442862275845680607091237389386579244106794566123511035102742940092777054253994031535450978712159002839091366074713477806512561377355667651983997585478790884386438273447265880914165244901861917095777363881804804176586792201823115814763624043852995459519074170464698338153949899995769443929614287762097463755884207307298250543258487976351443390681582470688200128510678440922695247942052892369420337100047027000123319322071447115273486743549446207782549697126501333749431688732083838049221258938778593028689979953697242491388870106295811026115038455573632904441240372710508165529853026611765632076011939441863667109016549499800160619118869797737268288266516495974850251682529463380607145072222012428570890176461540602816228436843128796291632986245764168345112769372159115174003834097781410113714708900702237377425142035945171290969654918393619317749526050047038305849956997619719240566397009747065926874003751487249910757086089139124419892071034039159739055763368422104860271477116035999680363511941493515877934416663824565839357945767751338896815754840495284984177902045206929898531992068133539010208375788286038692741286939230498546545546308954597478146644929975817428211513148882574462823147211646871462584381458154976965978719337135235394050171631977804922362460062882347790050534438764509964062593283747104093786578322566244015040242615699380185621181468642641309815738416345971223119562768951040309909859300631325168994876010799802897912245378902801885866839794356040633645170260385185568378391554622351821205911750189780387217924557366240572455285228385758555225218323160309362380787941115735766816967948925434586371679998376851086607366310312306063662581920891525863972911495910361939606941268887087847053246022000649945698498649530977596902244648019025188839726892084460637629639675033684584355794999376512024661446041045988792931129366904531321231040036300496176551845114695700113942883044671574561445925495533245786247288009938476334640568203123338485740097362792935125358987962752496065880285660334998683002740379888897823475308293413581134143720617463175322448032528677147608975546036272104673689668222429384566797420730543244037671523699883482128616047564942061353016458145935441329832566130126169758395554631782266331664397760259838956787161771816496812540105151952861415459770702492244443259161934511209086850475081031716232269443618566956033475787104157536370636871379349945164829071755277854923462002338665409996476715067661075416506269036376086417006696272434427267819503246134375900533252759931534016726860702697937423217182454779295360926763576022602883761958585531295707285879550908531500241101683734151700208230951026400467261990211112268525666001061091807995841579449515650857491125594609642578362752012510193209355219470817109512704816475428645957100961640397650869218445717438267977889607212732505594539648573417432238558756053153616844178465756661485149951878484736718791021892880970839175630767668042819333336670038861878649829077278814783662060872248807369418180464538846595594346149721492636521952938096170253320409012019883156723886248278001920087496199084919902970873267029756797436831966081318965025838656978847099578894516072407660209748184154163296806739704852395966739888765571380946199033694644029500946865245550937010766592145697869303103239413657710322746942573621656872363180940081890679493832573584252299063697386242958985693603563012981321918972527518112733491239376522721786225325411377756703292489711657683791207800517509848976180570628175344405658587293450891380685618075522092851970442808298937006796371416631667590725254769783702425319373685509318308733367925500809656495959413738024583209849685290160683478371947282127276259528755504523277354202542832155035881539206068696617220249587383980319957454331081237095117249119072844671487622714483847256783771160816412644989630329969709109006162181916621447070878129985328558372506617363842947923979747175888624123010862155727528219281331029290383352017441883904709302995963454749817738883874185137099361768609063985162109411502351707063909336487706481865430221780580871763114799533142025578743648618476552265895304023550666418105435869224884729399225181440855643693247581618570500534347966288038298436587381660131966273875473254102716438078080247765735954681893513610001111305847247525493250732811670721866946280635056517534723205237286772710640508066123131974998634364537049189546562246956234355541667029371223820241030869675901685668703134305193271260623982660466065714177077043509550936094971349716485844134323705601270135531034077298425568076094298345349603434312015129293576344102882796077185215737644867183964407451843874557623351733750026439330044350067870333804630995646633305615840544874368080487956701570786729370408314718105596152664060715690361276284862351166853257905387562064670469542965962534237299422591287286441267485412014969491403617786817571316734597639215476807877925719416961920327593516071309350762624984618141489891274123466802503941816066428335787471089948913901647367476598794224696752675973772059781944383714432379546512179210283504478148679344323051841966887665274329933142846472974395488937502151251798272768675571047962124130179912967154066195951808927325802327631185358259706415120743395308087926181635214770487456196844198980025637477916103020611483324721399540437253758914892991720495072138284130330106671985042067075864855045776433384204210595355054816100638922955440826973108778659735092852370960695318996709919709038378757226746572600273822958513983098075404808342210642061233569338959790002030918665076178751718117308671107156514890817671795923644008106277849956364311244270505701169938733232506967519864624581334329343124078718401753331550200683457973544814536207810005038345969918323367060815243922774178786917533297028776320304530723781047564328816662665872900775580217771542885151719356164820951667996930837675733021041224891188030605923685061664258801587934270515970912567257297125783325461857084032857012066257587178299786357226586360339333529061030119669879514000882608538747412973246307563165786632950140427436492641362830760135290371408330829388645719923912930981051159044910494340147260786923162108768473562493815219119121443553933137565772762247320376902860297094240666585580688715795073328752394281379932413740585770420329470337599108232795615828226796931497201807890735429738567090558762030535128619536239754662918673129886336046751597223007795919893395556284890508112961104811719772299335100637707855939689083106232345182594985333342373326837982977398976683874180504635719728805206103224604377060386011697683049232556392396834971598780082655931471366319228376651141172530097916213414200488575889085186079370799950251284623297276920357222853973065196301365754409323706632155810362709876951349849438335210833504330151205573345097751989283723941494506486854000197302443678721402757673677422324749418488554271897728370453425163048896382516712363918521912771149932449758475761822721674544195213121204992695130152685343784511584557210673284733361897577392378355320148641789745937613667615502881048560500032859903918494480447511856841134347913642137795220411125827277345537698472326576896242742867576498632970826005493181418962767153700028067416560327562909223604577252986239078422415882537804243867593242472856520107749379113371038366322617544944856651631498623549400330716288643152822282616891634924958219209404666079486529123385661848043507052223256702046491628969221225421515476390977356294383209684021264603443963655156775111795528315588534683417280738152318373874134018854793561702321246480626254571000257109773226120398504927557590225807884287359765410672892490596456854486006600937565365571466987486956435162494313225614478138096494058672232788270213901527512070413250525251108902437645940503466295364599902082121864518379768229798124113643761535257211437098281027028156917604359794536850585421295201739678251554816798123692568939410017143046588208738630208556797121029982270393940646098317030614707194775025941500592738193958059424781366508349189535000780143923255653239866774734951035941073442278424746631315678536479720362433836863746798827284025920072678986377092492103261218050813422970489137068227555198687214212135314223548773817497579513572181131163124489749965208298390940636967287969990152469277082976869494950295239309010676721402548107844126815003562153109170450361663715846735367383313384182591906783293262846142127564769731366649776645394367603571411986262768638791251303051451550096369508907470914806560120908552785896204412427229341464187472113173462248446784842856389269848482850595405226438328506027961722380140203471296617867402158309802737887966040105111759255963228103175002556281429976210092953414618177401390954819920718201617729468477163991010671475039403827674435039585546102846292048434976277047401006463130875332527493321462235064562490286190713519559472437137917998439492079572085011297331043015541020088027395895719831711589964018453240955720202633445484407757910915958803026905844890173315156055184230221471268704418548088327182851448316890782291670906612625548548759147860370464023171782313868750436734378973469493242070570506065921909906939452862027216623594605039460550725421762434234965017484521197707474041856494624122289417639484141260324689597473955288535027264380791882990789623616324908218212331983612113200756084316215100675358275087795439750511823964353255614497938829682662371397634981611391118327904828571789897146032841079269391124447712757036909353110977001847061895932288676080052285369028169027498815674224746028247979442159315622272941046151691461254451579235743916514885043862609666374506355973803892741570398702110374359302946276252010756967446992789961667753288067116598606074634720999885892990543967245947838086113261700417215791910300151161788444402578026512223923788099888325925321932362283944089073164419373017161721535952531614992889583853114154546747762073281702394809422299933718025619356266448435773921363827603648226356753416046115966382392168006244597652971028869006168608866359599237500934699069390868676431926178509786119496311422771815582839956326762362657329969252794698366288791763963666258358564558480565563955638234116244864842197995307433370596172844129751561217413050675139909587285622126781949025984570514065705976007350351871961142658515931053507618147707920871806123976666251981484157826682434962095357697140802561778045273366926103994185917103234946360679128460751252713566710763900374216441048779903478729910356237770292159032089502731221110982042400426655497549825463486733131644977049841284336576809729541975581922776698905045812801835121715862551718496173536625756286332196982539005111901340588001214278523086549467067607868727403617193875060464216140036513538465339768407784861313438748128101338691915524404037507141936458672290082953896746023452665465145457850554002386276719105674329530841920702267788517867517939951603037758093465681260842640920654210097700899454283133235022919490731506466817597693054266865036373991265707977477445085079401958306408517682588000346001266177718470120736072420012573037188401606727764210734762328589425924054768667993894091982311106348192110789528202837370208240703731507287602866434668127210511028010896652672047046085693787462468351443682198748901868753642637017007711325305614347753640739970346029025077444066156566178019444814406120101751653215917582762581168105489071291522765680313999947639099725742504467471627205705162241489139583500070132159026560431682697731853694076951901163130242939536212506072947802416529224906593282634783784939382248932130691250607665644039386892700205453886349832777893047291343514581253472973319517765825567687769765050626969524262229207900876572930960699782586209800850307802297402952065508412839622194022348066413763215368004441172260275961785538792052222473493490784046267856437694408812284932127044437109835840057134381048171541217490118484598545565449186254248777615603276108301427596897185819580614924772086756652675550265921296576848765428288960248815709799054010398003354810001948612192738039535411866172409672954630351041416563923209965704176126018855075704562367523193321067635341594007463495601895133334272338851880416091883536674661520176629361996560203624838703204551523119255843274264721485966821580141522082969332361773055332071035053035922541951222867831744956666055243084382732412050485613169094151316981874383276152821622120498381542068640630148055797783524622445482089114042935759520742741632699363329481473681797315159313833276999529692803088107668121906424636782602722114950644962703134079120355420519552415982387384442617537527907012078780951488305675883524454345105904978630850676291741174978263655782108513822305417984308708405403417566093054352461010486389814012295714944963608217868276542710447902696286761268841048082137794154637315746146301665293866925573758967675630510947778064214526427000922382922675196574454454552236929081567784180497832255958286710433090694196144858213115890643036619204867524312525109052489856917130117459396749307966473796746682042629178695820565284132678452204535811149470062092836150970888465223295298414718491607874462230576069237501973859404097595031964495610039760939212695445880782407855281817192354873894670235989695395808636785391759300064484975457592703138508438029938313862633496491120220618964040429534944488073839502445474354164913122006759148952741853614511087443345715537081446268317248384155159936979887962168056744028655861300140433281049411897436105900151670268353234068070164397421055750800496788122839955635940360403958184150980272097206252856043008751332205340879149883285719412416959990230182549698136707233825585061914086283994688755174656695211339684741959963090339115665351350348774014180825712411662733060485257607625740780529891250416369602569147833345697418625860901781574653828802175009636133767931822191989911834079748381416548000236842396010650385924852636815119019893389204096353752369416457258086798125991187530186769173116878828016984384084280364351503247661950184879173178569410147189713577147383282637132042194898739151589784546543857045879510485331310343034196471067910843906013090164258960497952362871204936208767100875870215026546437156569906534643441599964365011871125669675053928258676963824268795354560146828154752837166991363634271183250683979633761780903364831438390218451770702104931613999846650640009349683353129283457853036861149189342618776743802352204498849155888745477519749386827250496388361240938849984347868321059496683027710111627041993078373087313802032403782423893684628036350482273317134837736241883812023171557022806821895933933069298796785372002367512706665103520564328082958012731830586968338838010479443376980168136528396255906148068348865035349440794645409388571899873092862002078732084655306102990457940605282918583783233889215606269019088546443719188927451350630958044478715608879753620618844363312749313089342379494191325364746335630023758996278069937878798598559372842750274534621137660087023851944679155877977252861943363059818916164845934372530401676434783997806721817384339081944809969857383653638307064595538725216077338356179786924731265884649191586527790132735110709271481425235015424243851526070753323946142685544606339622247415409205769005682676634132165929482753405876720552067224405198242284283167762637889552140187219207913566772773971043603903286807488810596055437868267923870038932206481346848521845645516224995288620690663803236266366617859179528585387658786679301311450707998419725828887400275156274845039992525253625627951666904062216670785411333261395729579336011889274770870017448843763753051330759750982299740244764821584134800087085220671741188834684025145459546808496476060014312002826500898718517999694900714732261253398242212021833799170234765130952412254466562067832319690039701499720621428870247347607747346333083776572783566025509759492437730724819865694305519675586480387502126608817609605289575501709225354543597831745542917489294209088149727266316128141131230422843707097454506800020831678031340263574283239509043729277980494451006551594253571713468257706497991584237212900139171564057550957568058442274656352656513047545372976756498597277600699536634446783830941330333204487919119073780915792613103913640543193096839335256864263359760956869704032753901112965129632641935714783226129531603497685827769138855581657798518535435904077229629383891200986441865339904022043405784005751888721047878536526355205714199175453503234049764728739854366723948512067141993829127862873904208956444747065843983153767145721000371298931701137011841434207698095454564548318331980495329493407918551056604710035500834906951224236895987495783362647790408351716917684250088829901414964472704369270904092625923753099982242380545030647019184603566706475149767675534559278649160933677123539540407097356938078156622258647153813761023004660344909319383195295552955182790666495302280657114748203326376069039597961189148541819809912342778737784806275907189606271924808784307228362553079159582237298492476126844538652296842395389059538404711528653070428499349973217007591226967650354065055550836686975631993243584816886186603010840634612659638020759022348256878179510918632265615375043576278126762977703125137406891180467660788976561746856945309675501569681482633458729829626751006483715665042616672123744232259488084188270651039451642750940515311195009066878458971152308734162613199086249567319222781763629169131325972195031945912553716188178825949864415284043599248618699796956998923247366346889782699346265409799494311111892927808267644765479875863222000303304292172852257267612895730794205369621679732675638562089082100544355988186157215629204404067149949886424024638226051303914840267500333512429067401529932038013541662306284456435785276363102512729278912266456031856644369337003397521250356424708465502924691649713596160274333381240523634921342350146657504827090681263206305760688872642707242793166736276608326141200661600999018253009563993180635851495805414894446871350747127663019675561423024460721651930593719067159990951373478409860707009333542923316310344535995074024651847798550035481105975371671518080956292433688777593680519659918124922235956512246192876605415279385201600755809208036923646599032125304100849325194677147857303191418902237188453027779167775578107459320712071951181268234807448323213204942201066046365503239090838500244271507880261059334848970260187584306780440533911593196943085826169452967373323936400786836829212468677313565196513007402185144174383988109631333958720018812023937100844871935343242974697269934971163308918933307011799254761335347815928937311239786192543861422118463607490379027270792688024646451370700983730304905590760962977540799435949701153659936573238055749929170021722188466562112008111940381696440289311846117890861499386650377113436754796137924785187595746362478845365391385677014406711515264823646889718553542447127740591948973904267596707041671141495812249401143206763282080405830506577404954419365007445352174354747231699843223525898399658260190797360429904779465792276362136085010220169159071479848212900289278722199697427472862368652815786912444686183332827741361674476888628428034736113777106681467696948767302593314011720260202988771476574562181562419981741147821003913601609604005421896224340327230316991165954593593677131295122317338392876411784472128458747846932105486681769685410744053882428762262592947995440410531016694491972679936366399933631166360476423948608901256676437921771788540866910313896379060192141106122049229211891124428405366444074483504757120828456903667967541491916216344744483577756792314170698633268952590746364786660821825620455870801534410527167708656497117488443603526712612909417623422777509604486624271921220233736224707668213292479225144576128092554748808487393808302418475494208456295641858869684044429392962347386850556989399302194963878391735867578680363780632162739125857079450422269794737217796947288173362205892116848233902473058176433587792207409093894103357214020214559989975634857257811736621997869480014681231415179328517726174584437129134675934729919324209784234343877222104463093859085200835503886587242528842837328087449891746370895797561544161485402359273615999754868038331111096202745992612452266064851810743757197849794820863053774423527608029985648764629526244506513914956644161904241932968532830234471429567205367290736172166278796785179260358672971699058294677504257495434672599129909063545242371218037826331168483451420464502915801974309938460276814155521408273758072804699471848682009548744622202272634221199717757597243562489242291474694659370281426587929115945880882373225072396286668646373227327061514637191177722043886454793061560669091850778055393861519593924816826405805354733730791696281188151848941279137555301156655323794521241831874114608860957275397149019900874188782643011218925776184897675819386897482282710148916687185106572939316577344614539013344267790902935896644879959082625973368144370784762181598989255869274573795323124874065536995209909884148110275448246318831149402148447179825678150548514320512308081764228404971920014921139394574634896047823067059131008392662218566223135541943302619165703112218207266285600017584123449565843027358425757653644091988445846906294729866408082188019470768356070192680787526933215313756483221585722811494146478433860750784537820211772284055549540012349543429638370723404982474141977217240242594412861102765212524257326724954290369477150079644261171759430974226631932077301507836689385198904151916081859881616463037146463263803467387045359793288999392059887808676572650476568498330879665388735105183618818538843997585991046319898704192539156575199079719488331203671223172803972644096227137220507403554960598981461539357948983478418289035762913262909212335219836021139042525082714508231257360682312702206400278445988836896243412984961803580188552222657758899287279198156846129184710739346698631326236352956101266467002786764514117470777947694854610623274624957302726151813418426415944952256932727043277289713700921256220725140872315528858601015708558069035480219526396244586137628424701111429848559251226434157182396548093829368717246764322729707205782160371638280529454001082712802071318353643647238282141296617214871786260208653911881206646141789129873911469163686904075598492128280236515248717102757976153566540480763646249987503054023118542268546967066720067301141158049525947131762050594199028265640165845417199972291287662792129749717225012098517199254551176799342688781219389437585638537647440459737876628839162398325135915127844745619295298141073682062452109829992569139576790289682893873704452020116704964646286702996357442691804238753264509888702996054184498556797201264488864797548717789331073852806568063014558282187302356922523812155666577911271106030925696351418937341795070783134695236945396824681333382551879034493104776728390799249595134069869834845788174212567545892511642726500318951635470710391774941221037112645845283465936646974860439159582950953341449423724405540921062945907078650575890295033507882982636384957409501608359971067129748664990633268680758754050321143364101281428830223178593046324250957662065582264825693452503755499065220730188862882030213519600924866382265069869314430342234389255808592506451244494616614390509879757064774555557563147279464064795209321534464701757918984359000933042661264443737373458996146822502685484916449217637890563106365056041021557308828752213371826450407125592898383564973595336955132935544817050786186664313124106618235959580623303422014682387164118273523482739910464864354575700711527986549171411735157797423832548659488584866774156636631701261637397899807241008140497862605230212235712471465474982202510920639204324256124796483148656667822338919754765915026501328409600652394965398963473434383404172824328495182274026711803656975987288647745132691848954417084865496008226579426637627701221393668863873770690963687556420485872124976565952779166654974617969271611503630499739830429646380989565375691151091941374439045178299255613307241027413239221564774376160801008903055480883939309615620889228190876499806651018756286010216196275622800826751749820080092821517660666371805853507523736507579619152002789283089745158836230281601621946165291503893901104139318860923797563126642116754022483216201865408444470396721754577289215863103057231958228318161767907681893656366846751161550406716727639568128180114891855763086883464833012837134355537584446535705751909327725366795638678804212378937712163007240238179397379706117605934344800530231695150342489209804763365900603509244618106698402766919222017332332610019278136361082632274978142317877119269611310739462170451128888073552584497615670389069855774919489999194779217243030960294375691839522970030813764386601656980799234277214354511063166024005728231493860039118795361303359742192665509995439610696338266849051638006993302475390686798874357748586128403972664236718558519308627699266791791608314263224824948595400228638461670118067077474673944698464424257039893667418621554338342744011717216776085174775962424901703878439771015249039621146567264978227895239099572818326904993875657467363911202841858330505758658218769747294153189633382217981896929054367546583433688434134841621540273688892861168576066027166590446938337364701726846409720534329822332252010205152496479782834378023102523129418964385622869076941503229985547591104853206942324388925272399038873528865593923147364584656286019312590306647448006128551109891115816502919389414139097562060632307140160088620940820507765571043380801279458638617765773870225085084399018553741926927237089142575803174642439728985972933617564737751923946128897726337814219664905964061810023315106447419254536161716366995536648741959991317275700359114941406670297000573324743221272595750092905749886761643572162237440410545023188562011384749355630318667945318090173814462971378080253379872181892030677954068492072208971924663466130852094167260585109330742977536152342117599623750164250447412832600712548898954848240562328358051938104958711005407327076911567462752524900812655212653545905006772415814630055736973367832526432483843096935177089592983206286192989178035476828663888009059674264429357442573776150815561612387403811421296322672856319375865618756013682261083579378568463497043593248593635108370044248592803147600988258222532672888072263876264365939087487781563753085603088473936129964997469626471845652470569198388518742405043457818009648289657659904252596360719900213862373586096302443495982052889153228646661058800368551469197465053747441898569099159356641334433420588637090811669901105174342374225729329277797255763757128848224820825267126250913948906793657131806142277093264668074800655504452248578003903488968367473240673022614015186820394847276558719194620305634027266814143770090593464937406670024309825357338193697218172459743116711675464423614928035869170945592277612630981268560837290363909067053920737653546341095967592648828979412179920399421793734293079373015740755832039869097412795378500318941948281980259019250028449021501190760846629593264644138774138900726978594667730123220249556963098946455287662355925310041429859011562369127043625768019026334382617171169576527958730168519114916788089027395789513205747997235316136055847865632038959859379332419172771907909804115973770724855310937886633144058550487881031124382122477064329194081339750376055408443451335038192063165200330780317697402606370158248948400272331159753198998872686139095015980670333777477679046226130770482833761422099421152229312689053537406435285675015957408133805751639621372485051849078541810719951465641997418900916581373006121860194571476862736047640502532159693754630006723845619806596378298653218041457080550106569086620858223216308501606187454450047545282594264453881333150173285531227436745079096590685277812940805551589297782023671917725285094598611619701045283068349751476714165259589988272282076075846019045267962806988524842340601193552117403550999513885638384241617295276515630465542405571440962615173069654553534165796760018415943751375134180423247143606038515930112066610674064833406482046496807340306977670664970284372323625076156672196866393366685888343200183535455854873921483154706564997907546359226382946876237852755754256123187159699012660098919692008141825637125949041797350612790084787800837822076550967662452685637199576387307149008211066055630532399012397730698490661598194315154182906704545288546540140361845544805805985605517050691791431051982067340177834088004932740625732301868535050083602848886745585543876393072448687080282909967527474400356397409053453754429667964852253795370852819239077481483908869390818778701519779642082507729321302686911483877225640123861209992496382254601245927269307786297686869100997563030031941337133927268862754143793327741510259459505702564931991810155337426124833638695263508453293511713788634269328985973915269525417365410623132624616834549060233786723146538580532861162715994798677091703313466744593804585721379718318479687177405088994452731681307634027007253535947507472995460167555223480057522073566026663628129655289249218334672070494306585108052808398345581381040745529560592191463681002644872284961646225317800177707736926368895656417340867036813688139665798085965815831336206205089089458893727563252395771269178514745558883041891108973086988830045033107294039650901211711324987790630338891671186727953857333631135508726933030469461327944403076301079564701235612025696723036577974530758901327195593770969980323197804601183196470595311796628251452365793083919449550918262992338912918917249529645171952566530703639973843245974899607717628820046797767812582805336219524002009737583429946838239409943723786482923247821648871910876476659661671056816163793322893089036247108603110630132247397517795444151085726400988410828378270317626238808699731007973667216957295639363676811118705638429629278996053259794946945509127893018511412936971182405389593962504881351437460322162496911766962278034423246062398732042736877497370753368473577556527794789491982284995336684657254483056156484592574570033816972302027121413493901812177072892117564388546516305640840333192063480760056176118546804632795106040002967591496306396340870144173309634890394673395465043735927115034865806356112530765060714261724401979821017169513427289525519653556682347800071351771399416625127443111054892850810900871330128877060481305475552657911857618706873149685345586604235646170687345794370577039792820660981985688354674270488627875298861763878530170753215446918053958469501576537213946975428838294084926929745255361415074476965966019597213084060377319345370735156764385153725753780080031057337342228772783736662734736091604980642960833096446382440347794673973670985883742183498856082402305148999379802158133527988816875414752556841334628362312698342596815642873633809988175992654350094115095428446947253299118375484833463872666573195173643836629335131907203520034964322836313809392025237061763790775374633937884392723303700527224950108368843719966094378855834063585700559852899818926375329268730477545565902003251959823072485573467475955869498254289693788359638561386603247851442341957274890043589618169604099427452257900752638007281290184387850167261727571552273024108539965641076043697212955999737491821353133457518275386759868197676525441333346086800255673929665275195690387667110100464463854165081691483895051911253965775773095527649495321595942018538602707776955939433342549470610480718854681889544905690486286522707254253919894144073978647402145014303675484081619557766712790935620449316246654877654438261800431492110211952208813878103182806586730015958924770145813357446508815545796691214758074979687689359559366697353500723061636229388450125303654547619447511926068598936465889590696580991610062906951815277866028972819521330078068423957493242542536981035358905466587377578407886405506646946461790258918791334523666581515182138670991359872876446222097765647072356810416287110670216735429556278004394651476401500538753255893048355201499300510772008924685560567421238529767068538248290544444048936005993004759408648397954708422206404560279648054676411119032937008202400981287025125207949350154599006126143458843252235919323502695588590692247051823367691973307868968586802686926190868432805672548080376653872704458062428149542689427520568680851093763869415704409993000574094235204046597803999819830181698041510350950619795136172444715501696652475488384767606305976540279764812038028802753163398589771977791766913598602561526033187294283579279835591945798722467528458370479209900611188600239560557969474514453671049285276900816963487082718288225981441504617150029658615942253482974861369491370114640025147996561494248496113001045564330058439329354952633847179273159706901318459336048399991830426596485265398925746431799744442354947969537177422966250998971453631811459434427966287779448303614749052988732227233353552760086198834299940362650411362952586506704414923776077812889862572261571109399736136324066044363462594327759926205941470469284893900817116583311514078551115893143487395459992111063754799733016578375211784158342915621246417771631167591300115244698138214595878414762898055916830234779264304409035185647006807390980117660157182963772060110879619187663304217587019314046451785797163851505629551309317679178435310010378977973082733952708445442589848662549203195251098817366093921911676297395775184050955836713629121523336303216661608982440854262181781512369016126810584028502007183583750293082624950088809035435029369742745339413835260728347363379773842432505381485784452928329033018853323391858710341310734326700889053753575870774627431212244601620262932804101859283577539868036962906570043644103803306554173022488147001986163977736463412720450303521724468630644235698487816203182685481141728673852731286884576574836407676476621571850646131239031088303698315794933528277561375480568740050033160125881668854088408453365908391007448847605455017327350702603315845617483736485740686519882823617687762657285789879301107940612049382568737285423964569416465986171083068313460760375097665037404067359511379455608725623650435632319912813510188757838934105916250009710480395314672169160298318589983089186228425693343040405916560351618043378798052188553592767283383045247064922093166548430410339082202392706533386569361629638478182488146707044415890087192995474537775034500249586827047478308568082942268711994860774063978529754408480899256562184391487191629991490661896844765292959960921743179528533572642442430861097895339743404134863057257588457570494450426076045012584573920792109719589501019435997783519958941417144851950307027127552992825036301513169194806031218350990956788830998998330313022722930081433329535018322384198382083000875159631287322607230442572996764284705226112469513132410984606875828472607256604159695017642692490136665457724656060720329346458925730238938010066483788426418165112506805373667467609842945755511591020031147719853485990614645813379822028373274123711861997112142663722636425711142815664916480822742204590298851694217560350881629572316536908604153199231670902438670586604539189519720774937322451872462935675978636458494149487041651393981488649093282321476874429710027939310308230944201387259251574487832903689583722885727034331929146663546022889462193879206907198787175696257803933584809224496009992925109851241509039678620195642465007554305860472372977322070756312022237538033426498837512835143272191516323591167891510533703760781344252312175815501565595715652987889037156879163032159496254802953962869021983445750496400073171482451540045838339221841492137468577871043191037513650836144744152773819797489076456422780618687397423362006464146370517379766234316343867625237246964318359106297369483022151033210612009062140650812530619585565021140189561191765304866044578399209925593221648770398707748273521423525958221344800558927709988146223702020559115319149173871922595000664295440772984721983506871511887749289898306543977939131885614742679915253304604149982475357593804787351332578349591120658930189453867078520615408026300789612402149321152220319685590589518328316588951939004598242952792839609159231612380014496273799437489829848006565471835060519050978748966202198045716890188871616813403132211962273277190403139425814761342868870384302359652596274118196339648017300806941876860542256529849917204203365092266895167407991037992096089552734719533605498604895944257595692847983159290546582078807943978091438499037089580138692177528483638415791391559331912047475377145229511170608495513742630619184505603751194621468080234084453636912090988579036946317845297878885482476739116885913576669150398993674251951650800171744266622860838019538804887140959558632321252635694158185037483253092727588662475155810786089390355132874066518548568807502979643760429577209730130367865846149398936543084706471680577295578022110348919587055270321644796205982224342458644764861325553788600615007153838439159940175724362550723367957322190945656634230296228053166084282620448920104878696193622383074678781349972896539263874934727565855926319867361950898423525722758613552677393143077215760147942303712177390008664049695320259509653317187301659463983449219128344459748663012054938350068342752416582596824996259984812232773798547489739695927988952942736985757107816200249475055682366821407012994014970358920723830490601434195494896090402536847260572494461718500623805830439320126155157568846134985842018017826392895312930831988995586990451672766004403444065187796088467482275791762375103865708975300094727698288674738890178535361555306050739816024877920763528968847743802182730321455888564623562189574427677155048386095521425764017036388923784333068172093103380616033573095344129227777649252473198148369554667922408686391314477876050782927747330961902134817387770052079116010986446516457723084621999804672044121701193393964201005660569963506265010030670811674752006350249946704941599263510558394091726299015647193253580586338244145679886052426087270330464816437897844577984314224229226479011004539280893053397537507689611450584113662545811256821251920853774107469055794127346878487437359625580465134847538263683787008853127977133118809805740125370262343967049617986384213431332651597088596523192782315741670831827288764701520938554595618581202358864031970406549098078108472626755147995091571986702308872874815378092119066891918380080559255024068108936502986582921118396692545803738183286232722153957816153792624552122671294048665656960905323112637317044931736776422907253111295477479151407654380959004797757263002035615927197276691129237238702948038623457637908577344957143698850239603605238838607508977308076437830002074176717104203882101437056160773774834188361729263384487445835021581466554274506455020981660087710004810967289863523311762193962479900013353442148114803276973570459767093097602843511876666801914991737779122416992956071438679328304460858085714973331680993801119298120162840428171017197087063252035248901782256411906076068748286225261420263764035197290973008016420610496774177409069874949955857288001184575912189809045897399614986856810005477936299184845152049700936716501999597975777509490913109834510921324771990142815486022990409996920592113858133286431912607020846834452932230634011641675499386742918406969048143068278782326082382297742661148369397487754427923431531290095042850350015775911378541975159253993738362011014757389113096467056675511247886372905123808699767457987793261272707828724391333076692592256768707089387016146641001913244938068794439296404220875238621465423481610277498083256922071129048496680186301137594966269482812417429071172268040525244134775427155589877300738876435035804406630015417613585445552424707502956963961248711650759558736649681597963167260424647133082490140881666522164006454858101654066196618771328314234625452737106108605341355620945766992462061222888701265170605885089515061146127542346578409827963155185454582923829151658895452767253537383575862109752741847889278116417564118636242982755163443734234648024321509683129472622746484576929473520599762904877277102674382131629729325801283962286819188924334380090743189888471555703617494330575163469509632209360540345442219452851991712686206479705864048023493627650282755477105019514720294522577508263728469264169398530233602448290051940615809643305209264800546965175478883802507073532595840706672943481964143063606037479795690083424266656736431208084999270593067073789782441427198012293394945362300731199523310864673596297187196644054893539219966113576676111214358387786826411749246463668906362248758357912419069003368680499890324551722579166634167475212130203999377627735259489223851970312372687184038191277516787133224481915585861898871019128322793063553183954955437981633547791716420511025821079644983168132875392158615226317046230789536645127063695964821034937736538295205106849451878172045153546555729858731535779314316530292074950503610745513423218729236487267929919467409183755810239693784799150772495702136232853542221793420558912145924601593378606370081277999224453879787158617530795756656931092239342487667553337840067784262673559437744645557144953544544803533633291971865302667512681442436631046119212466157006928310129786487180555778566177937663091523907715818900598924837633658583138811431602015744075037114615533031042865128741847258062616558741227738512133139392788031730624193035780724286587206070668758604721760550480377691429490132385268764761981386074703164882925000204298247291515126325496861851826737199703635298356700981345395421072592802281582100539201146376876894395392387251824559533033843477200329870027919606547865400821321783213716014184982542747155858249567364085701573626797843133563651452646797235336915337563657197445631965806473432241912777296262070425262502768454240246963590313361216633377427648397783854160858425182441889374014860564738057312972641173039093360419157326575587579845510189351471880864814747977792875049221655274218616401571623503517079996196384590619125819638470719063038901788595045838196403708266238899893809230185797160581783437864192612450287026865052737451760754007795878919056408920187947678904136207778299165377425075313186834429978498202321275412533583596578684283114708320959835427387376469603370921919946493116164878984272238955628717668830482565215911940422962981512667420400456230395086961689787469034894026274096198955317833071882322448791972212862461505710470353150149738898323658476778160050993208452036062299187700232541091599692000774205725214428198046641452384636791491039024258549497216852284454313100679330628834354233676203777101684025076847398631822748479305924919500973131943691902971501814573796418317938511154302021603787989926508389201268530910189465843962058782040996369884869902689817834513281695248676539830160843261632381383179181007489993109550797740625827334613780855665175526035168006964453539877414185325403990369300405321481064982729257541508803995312099853578948673388176391176242943484583668156186128798978545174380155324132924318674278101819430094118262495798214026573937980950986341986492594221858894107710128992229919666618988173369303938895241756653781891286401361709370731716537729509679909111274218641026574929532279601873114855784323927015150817884640938402495429601533351865242267447748317200015579998126506223791611534744777106596039630738405178932675947315189002399393652310120458017414383227819888955884895022149853790086778251674957522586254824341902197831555595943969785169391838856006122017136512942342199924276922968859978073531969579320224466115778009243874150202874765812928732756262687207365977681807737310580844316990654596232214463938746605592273272026107889684391837831738381484373330871023730838251955891210191981114010776254389326622036590241486409659821319136642260420684984546586346875886407419252301807116802970072909956746978397212652201909967092702694882979635352236025824637749022702776314524333948836103221981846602262886629702159449233651736603244426077940467271098865333713889007338327955912595168543893673829597322478989271657978162781512804475746588223379989738692386175636011492696311220572621307359955223049978554107710500742466736666252275113767375634044563501494212543681785163630021811931403053894809160331548067411975306667545177782749518189494130018381383121042943324048748812517096223498976145520053036139557801696365837126838072273391674720302597489218368933889350357930872303378505186306711359842599490367026593175334680441432559698828200807507174783038101121210759742230650854738571470541193340343791787721026158008694660378655226478185202954166853658090122073583082011081879870881662223795978380308988679729319893299485419770348583591053239179137814354273253614274301473000066955071221146174900863385499563159119228091743455530207932807388718501305883266133824878869324042916871900668803174313327142534376227584866716141934110938809678158901055975227367897626104216341956835928172602793766719942440141469191703751899266795372668406262918798892512923927691516765238550574207130895040885614826000117288552773916264473810667585939354532585866060527194850312901296279157054557109690866791202114469189945392753090934484764629826748947876227049399709541446482951937041410230430685085987093766461442535607180002485334704573673409030100690899352271625216405223224236404244478272120158012792551987905245095098223970567166331176391771711175765854229793890211853738273204853829733939474039340761723718379563126515224301537391128127623864304830006403094045418379871153606676738176026584559668559165359347018511305797779394138618656423923827285168722679403741412447384136378708930612390571373390248932144401746416806897985055682610675834208813109962464915411692170901939939664303851964903311755280666865489521587906593397924302197334569347066140835485483062678391231116242919139282768442225931311953658827817982456730105473806962483590568790158121622031355546577938102831743487709862194322152053912860874410508346587747874726116908905515627752050239292735963397241657250869755179347748124011207370904226623932332381617883704799891819326047332001807214714857789736594483375559379975004473507929583891272827189132986642145535422957579566885819443810167092765552798904047995736718345616765660905395593381848898598463171795102030073447333487947989813291317022782923915455074111245345327461419251900557486333757854293035129300740001844254417535636216133670350510907034698807900657092111129564637843404032219297023842662658566494355303061749442847694935622556949676290579582587321044039969492897747204089954861889530530127937570549179499539855519438247572465451845129031658490409745091458078619359508317443501009518175062630813337281500633361007858364027124292267799490711367122804162429644053738283101395411714124128561573591590456516087051622133249335644632911307673794419256512380284347375724085297959875010515962306944488404560654865092696640776130001870503858653776820224618499635120232524218107750249448790032110828368786903080359848010144546205436134355016193407712736560422345382045806982215390345956640498405655446106846931596612255355642864573787303083010970827041338569710357123262990823763087987537290168097279534033693707145822561581942724400324103275089780265084319490474375666006784760684705181026330198325183860332625905411245759231475566637768606293700085489617734564466263210871863208984887897493817206542399912723465627817328195630796907343882761394591055929048414826928950402202507181684473355589877045027405008833469429686123169567500677644422055294743153362567253292630038963706386937654944952365965274872340178314492760999615751490244528260650618290940711247346884298785298956797846722821843528714357950918885546258987453299750913274794969177296909929586175020768293274282578951722152588478653541011227492240609473505679376549955814184272962431024084134147472979820609191168184165088942558045457552924146704863154668940551655550631591330191108595493963917982879815070367349230960097274835047889141547028143556517082825522770895696093979748859159712881237186839764933043308584074879428264581633721862894592136673032260755544730219791500890909130744577356373710292335323065209280273335114541024116402611574127213625735488226558754223114634434474611018685185474739272678202021714267263848389412131436632691949906065975476521234477847253948641638223040462222992275801752444745998327453332473376098202443674063309964860533597183765867280994724993134468566596056228902724204885287159585982456266950059220704690716304244016327016863704409029036328477530020002903184890690398471770421339866022616800597989236251111557385613542830971287771206767947079044782002476073644942477231743154383499742870886356505907831350726182281892320032636166733367463436443144110625837739168597872939379316659886053393937893110762273352326794265738656108861218665010876967567248956294192022900374635593550967347696922612542153286959982485913319692629906905512090967493951414480950438695998864513011860026071743722602925216422352794925817086882584089852275347784335759322305084686505831000255848353513740529391705502108645347393748779474585785555455750957516831640784390138075082877682542495381740195465238977138317123678705276912730971433263249006991368106935782504846225453729679333549916504070627143151456265040193805573562130882959036194046277034527246399176531523510687235854586950972758384023680146914778772159712224236468553955586544431182613057992467067232295301830181498459868224213733839382780971124316135714060479096292373919788171321625395873231568112254793173143344822019987796289193134231971695256398254638318201304344901345125105596941829242294283175856719028277464371970974774922480307432456516415387247704435324757071562518893413383176223715306222728697610325349601615082773572714319940257175615788652134919211487536600920395208606528903961674604082334316821608121093171121513004929284334448425779111133081539739359949275974101859634003295718205995647038711382946535822764398703924758968407753725993787104153586202123995952042644007981581909661880056047458697814050156393328308997136981165652940704371067472838758887409929121482913844783640477628828685234880925555337809188169268598566176425686567616654214279490100581739768076265315199125873263898559625900175893663804646629742320351507824958853971631744771102915362767684352263408256707165968540815296788186157199448909320140825307442491755466038422517728360570699113932206580853756677495274553683958857859861274168944498832094755737364161785770015589188363441324116779532237675016520683284483192255504840379075067413923595539481081613955640970413388009595918488071685135149459430306380642785952779898839246371949094972655895375458644641919062482613978957201817148589071495646513302707034532634103047382776351361048787825418371000087001772938412287295720392314426940886500812038389060005525232074944548863082994831216456713999208534760848333340813129700093455604105174490260560766027390894142007716326711206605892741610876525266255443487940954225238672512294912671622727986906522770878832257065251174038282332669380188791645462651233880638406133372015471225908264458056218054572558807422483723636037675118780497689760201311003584168011776994655575487701425182277397226679873418038481004987105517347502240147606682758729937937952232351521228762593158491173472159983484542267399847105000697600162370774506370787327687206097831759917782416415732694677610527374330717940608703649877719782086638811387517844377252722055296086220900757833501880564901330478310149324652170585586306003095537165387317741312517550414440261204512192356101612424056780533565119707447703613544342739127987151863260489059744927435826875535765847653215088300331063926011526416478454796176422968126968324990895800385540901223032528224579594037099610172878150280008768502734126866055128938417936546741856237038838531436292328181146743293171705870837379125547345624073005223152239508190687508316434483681487109196493627773264636834319117099671596026142689859436670813348608643882296350175920439964546252657246347253804550739788145391566538986384665989980495677873009866442618674329907305360652963424507266659144589077075232856512079044753506008528054238316609796074685708550587745685956418441748307669804006954300083227507691983389873787547946633473239329181948245169191779660878448834564234249990135511778583289871741871015674483893378043950256458005166669082200828065336410451387733692512670678005501769073466294485392075926382195171363358692203484279552080046831699723302283122254690322160036622730206107531546045144555842853190417114630074658347369956683633138956521036030866559301880693616971769089730123057805159755522966419870471052449819274051279178612381422406098031490284694006118001569360422582351513490604176094782447770441006016001609793160889257795458672161933038579217106236618856428945533109690739090081546078374883716302999614372652288730987168007601057294713413754747097178768793433653048109057738378946683780538239407641141653982961003915889522537285518054784539120566411143895742587249270655065991407902973370322659419494716149561223305678658514292805194150691589355441994791283235614896892248344635704559235351608436804071696796385600343110819898932156992052548262804518554252585708172046834815037944847077665952354867123190126603533564404408905489980138129964507124028407332014028369284853249640739302196575687252081661490843450117609214572240478811532646963828223682400550441758068549116732494842773591616309738329375354538148629589211021767423821785556674177302602983009455340096151532856390913078463751905353274730431464577238538677974299575461845898377088671543470811022185953650602918827426145418595789104362746849245771205460230034818753030262990840364431090355504621300718905931842161037189097972765649971795888037358567610033337405802059933710864401568460176588138651301145564190739435550565595437330417176542402501818986493539813475643356305468940595282277711632678321493340483615927772069779042888912336657056680599384714974480058659306868217022533696432549521060901389158125519627181726571407872682045025930893932992681525802937651820178784023223166853973493491635528931627813245779467607396675366467924141929075419514342347260003554774727847657485337431651549750010518957868011780100678700738895373134188436366162771929368076730832738803153926478139611441524189586072894871222204763521545010357858657795835478806279866223589116695706988325003667956252971151965175179006776293758941008752007585466835313701682201087073150669803104124438991066840787509869839034062216117655475184812099594955321912821520863101493658625633301479313763944868246730921270804792142964958501922730625133397518222377602302140113872165165125185117926817344027814369807856974857332006865786368193121348384575247447484187269593723739347356925179281869597000795950263155950599975132843386152656658388888608383779934204714655180461332626386886456433132390323397452187367227651198451776862377389661089962978209682199832792866161574755744265061209662818816785004945195431037050709226786005658292148582535849975044922437071416850694208345211609100802642712300597137674227894124607247908655538811425951364200925562699470146680547155329522608683668627461639464912463620443017392410581155147198767965168300466504377353329652791602279256625885468756091706118925471748600625933647310850660068637671024079014737614918227515787963604664214106785012632932399362071784187666824405824075701942561023834473610128199757951395889342593713748282493560460341586177663582577118925991470232500962405166276922603769906370244432248963443486513769221119315707297867086952911658958789402295565997954354692258419811698189442827644978714626726709104849967285917212754239395583418132924175745904990268990425918257797416511162480407552250301884751724066485432149283884325826600114748803362595544850432168312800390984439407040491076350571458381297060140781654921673938064051354360198920660701597275211691873537582663796881422477930864508462537542450286340800343662694997091266738085523464309244139892346990125470066278752473779240971463046895263496833548469600380727524938474698163578151928996947726732072710443876750006864471343191352502249789875850156784716400869906331052159165230745361154970408733553982437695054893440260307030172704775478603844015487722539872686019520336023691752996375296839150305669600938694824751673278222369792327948088284801258198375880984784220498127128027327137868597107198499496963174446223419238345655979116256044974743002416859736585690620797027604607429558050367616273636992455612616861160660887493964773749375462763608588656289512526805760562119042208786652556419612952485811205410486640316127181087652846810700325017422698838534645987836102796139479139131604863815121281463024682895524212673226377282723939319372730672945567573777799026585484967669821592367695153824305108373950306761427493108376716573818145054198464353181822005914829596726287734241257616929091379533806363532627728744146060083988772665225863544571422499037342603007601675772603266676212740946318210545447156655291139812384600744969070599045415727616226830260873337286169862534162916599023792758873664001325471856068077630706261191453775835117422005272220235699107322582825686871834684380484336606111276576365014958513200262979667499493595614203147838580832025714074811226999167378529956192893896034352037454022964457016404493369246387392222615509466277183284466090800435312640146902281336266539934968078685113559166163463075349911593230190452706057550749252498542917642968317231124822065844184503673448399292604308302221352788862944062885205312825192649830493280140933968937579905737594265388163268419594420306780698573200233163778230632121000850230171072025450226173661095848508034803535716251187478974558193699451584142356374307460573679264168380433758696793819618195508266854224700335028457678698379641690678132580473963496502524007116455632305410040896932914318088715369321729166602562123107893486359163352461100576365628768073717220325927371531856635257118399380084342356224819250189201905313341214162698138582965285420256305300418478015928280651309470917613917235679875479030241797598516843842095629745742755194522656805060629003932417892373989604201546146074563611622560470475431272292657334600337215267189418780076558065248188759993504081805400609795606017648996908144166130416872320615115483955334310571973340130638418456584393474464040763575469516432298234826393208913786695831697054963225804771105957925550239351852803659727370963096599538732365015646850290253758551517025908033934875362372692752041678965939665431656275889367699841412178097868821996491288311473485639876660434014721928339998552822547186050740129687931486493669543625520423555498771003332606976334816422747030781607656522054561171319551253090276215307677060863480562530870071691032703350077091497401491309762666379079789514752123210240590517520346763204686529420022924937967895272756588965388138258580503408056066204784980445994105891264103035860839778533470088802271550909768092549730830118853276932578548090316826062011663025384465888661938129170080359091980693429151326988436127080440565773393081083724850482799464129504641217148030035202806828547364102705056588046233925600878232232460459923722754657203011837390374246228403492252146037655434504963405228857286842779435884333242008768591991686688382834770374039426410467511618547379233936237624222921780678152009485271039853028801522970859424045085460319455254214476844853519061299254833543914760489442596765594561051715252927940410413844383371109334836566485547286424951558041347918954328844830844274519174724113829787859221435497132685710489723651391709770626646589679926274978008937511664835290247693775181419377476590317342891472710254413694030742763213311885076456163116023622225111229013054092242256490019564798234331068423636508708992282303516985271914294458451673788275180071940071116877631565787290407602223093358373183495689698200975526289905296639184260145457626697535839776031070032454875389327754712220415918119775957275169346937534214364541567299354008601310337843407067693630718556804700211034928814114032854628505478993269828545210233073829630399553650788148825150990629560844693581305527573471242855601828650667023694151732715528340855744007542239213987338918424130015436904371784144108436664073534469953583273271407673181790070679568141303959206847333109270349188653337022630618075247017707931363244051697532988547965171145115124178643433115838343472562584357052740022862703788126699143203517379222662062700925334677233204917831583041222955854690229338958396747905345618040977747301677883621443272624306824838972201806038286787764898572220991565616110332425192117827324759669435106885024129488563994825694299073010028023861658267170812491787370669456823486739729349159754783901695178295494117954762309090887197360666960911300363303027258960175341413974857633977832595396816745774532491560215529049630887268081504557691313711134071218705775973589543864721896206651952407815441410062590641007460130465922636250459139460549523199224182389986434554010617260590402509416494153034857129124060827752045550277368530959867490550667671184364429807099513841082813655367451833862468654800991114270203708866883265972502430408201084707433507346193332463539737642482844556991940811227643356128843810558383111004456864885810475828205504518097526539270300230699581437418198614106428208841114238202830274864194102049723051906346991237396173332814289353535639361663280079297984983480298916346918814329362257829668777301717369246741081263325466164200296817416338608282141487983477055356687652907622358611903111586673609003398760539196913390136721019680389310108878039604344849092503609669274320494740474004218956219595783038998659726816970234925845509990190703220652688806388113605482640896634153679280525048498951605071115185451297462928450538305530708662875422008738247212573910678345257786778699269951992393350104775512922048611481087209627212887479049399252674863923186472946067434215605491505654861847410468392244008089305899131714090026869369183305207193293717556262860254913981677513522910285015145415732857005205603785236323605636223030491329151747788614435692254740790526051015062666401077634476734086671124268846133820068026677107316961639480017200314353408919073766752121858856290596435764556345057996575062457866201849490631791963537416983822477803859447239564698819769223730844974860245292392388948925442658300460829492399705871370303098925290274210079093128218559473986324395262747171330277082906376554188822845973301184542725388328180041676166557121976644164194798865772410786322492093698515397961349922651648053886205960886888089528505750489794050509878081252355876896849651336426170214351298943512610677228686110457680578108574012359936555262435863265707767579411847606533350505384035651192181960666788768637429578709894438057932108046288268944827313362324155455407217916072334079178275872524106007498789907540247402296178871484592239645928618625889019470720394293636398099663709262136904728357630526552955626111409949749900576234349162674848945544469481628603166852623865588585349735200295158383476503525627302953855719036698384646368776456036879354742440927281915313748462334921133380124563715342709916135735642134399417930649478278708482105929070939432957793984575856630947294090241420879638315050450778916619482298659419153709853563691275432256346606028826855339822121700478236789645279972541219533793164621477370557871988076975210532258646734490324720528312403873029069403383701094476549308867917468884953196603989030130011810297348618128736142589678792695877844709747666311414723047945849800766305135342647834392371095579829013005918538861694926121737508597535067626011923532675776433750291320342481162939502168819428620602277905752784686591709136979019112956000181575426672591708492557669190796024458436411233394264063273777884411439251784966287110276768677518499108422594821928728674300034338785705190448175663959404145581701663346793788982641089313243858964615160617861416042188773563440012663926751480886993828584178061086435092420824378732429135662580650170222318649817806458317027062247397923928769430903760199298271813863057127252653857010108956303704985758960042911798199712392555306183487509145065314495379546290604723153768896425783785297025431224706707468257262223526063210812319162918624181934469707491015097781810215053451272994618493184528915604015794795291771839375205884730714747128057182055938732017599874977866986459866499901163116020291674931454815722168569088852757717445886836132845408734956047279481706203178977439048194774416005609351388560261204518234232275250597635516356320263670846036212817787907435302081062471231869681616670260217879773335291200978480271447269283149994601905896508211034054822222468197134582893813135235660058469824388420589544452558518068027083031511267205283491534254684813664135931070349835088008159223010904943288113087191722175803793734368695446749616194527427112388221267896773951503916654045829306861424034811287671894160665437328130828950821945281379167897483515116298002668201667873676460667402696268599703840831677000958043261245229697246292357898842688708024889544588187684910529928997798061016313009779970661744028784727752933397882091034864478602437468993477395039466821951772432652363684378704119642671402991659184245690442391695321909609914952886615723297542935216401101509973308800717581489629724363190661648783116577159046868506127016502860666368877981546362979788655974415159853476638200483787062763375124903739486976741996590685341852908504252255912204763390434124776147979150204899217256699910560063570322109793065673534125107544446610251596649253576451242869583380153581558463790999489803804432090044956324421270331378070427930627029034779956323211737888188631274749280607603083096479523967465228879958221838234172522420685214435314095265815299114534810605647270789651780915580222413555830865917358642797882264029001252875607017594175634375928582224389380316044511651339942343345295481853889988798962750316069643957747501152984300663023176783068249885796492020002900524366759637343168880319880386384005981145819129958391449649037074363566913947506203192666969436250062203413618049567282305659106706656354672502816193311188293240400717396189549183595354454204197328574102402157077616331676776004212077716491558846771325757261383542877761839879889730746815064173708460024154611173051455656742999685062943294671387900161576930639268871800122978716962930853245178999741885450865101218664770668624637617472604420381723538715797322488019826591395556966085252784757323460564529852761132351092105894591515243843342762514408765081246558293520109746238208083081056836192131159345510281025306447745755742825424777974269795054175762478351659286167551812186582365552482198567444806249966858320573753729040962140489001672805311085885597426565218580668818133615960993828121220742787963927008798276660556885165763358677890506354003855655122096798742483388306463401700948683480957875310382596111299557108785938842864848135851105658597716184237072789541852058906610200436409076028697542458892996992649099357611055242305211426367692815880093183810217937122674149307877642343854316517522883718453314051823099765861699100826523960329980911827402801894164385635423038507493520179056110936092617215694522851297339899399735676297095050224622315482933987516327174991639680790571532277248572186505101708680773323463290902516054225445452485357169452113233777912153838397705184557236974960913028427257531239386762892121525908319176350254182475266331827072215019030499598880793316772547585833824055608279053083622332346054316888284574213101684686933059808552639120381119838585547235965360279154830186311124584872579328212167842817733455328205427688908143147857593964311185194336312913591787890910932198217476808370145591440556604839525380272798881115453744186249831514462832326185175097549628968570576663361069865800152187138685092622254481574431782067316086842209095164499023951313268993059496974752468307914022860157142441565537119650330960412166264824084645595064078227765524595132068078878480784589190614973796183265604583962209962251904576838812226508769951325346799777994264988148905988534672251873315695828460500458051867187705572054120885284368949703773249900447803380963643050077745682046724972282453935789728779819954671017567737966998678010544700250903772120122807869506265540321229429306640682405825908886681313066985643776217801142479819740026401250554437546586736007176175168204011876443016032341197703854292916449438095228132657439827251248871138126649400661955171025674128026796584427411904121875202429235730522917814885944988720456493746650946897828342733270623458982409130267087883537913392539721032047069262050396507210639096949275824803747511791599269095149594110932054217870007357026908033210537299555978867965074557254634298205948121395516399545448713896838899696359007716107836622359277753028957229127122609159467660886793484536633039381185162464209357910496933135649679720423977477427063605831127622047244602977858443460337628467054384953910214681690022249971256928672677701044134563763736045964910649855616686757098662765326176797976542469427981290519743591774295234648032447753265451434079116206023329336451468263251982744432398344667431388280780919193953101984079084067982119372176153685277520664692992921653303074729104318141871850499948183591471047542065501376401055181641450176614514900175824279681798963100562690891054554776353117512994143888976476450096142625103035643896088069111598259385153422323262156498603302015460943611424625406645851760032176864732106653528986434050904989994853598955821383946576771310105404299798738362801725717495034729832454448928998685475740313160724600366173827668576655379235600334547725509040746592831782136919953527052744331227896642155502019248105878001338233651861023463686913001393297753531494924302257102204233743937590471457337944816712913089837835642458487966198781154596178980702865698333029124615776485769446316924090509582181574081519215240046016164932866638870320484640704692220405389445406060165323464154214951584732249808425278476603758334223192153170239371334932453552051380274413535273848728393431516722145437128734547248391038755241148243686774892149155469916868983541322197092416721313588286183698304662631687079311129160523114220553223757939886497603338421838518444445994930087786740249421676200579152806722438499080619965710491216718031877331675450508927089754304007255478700535229331605238681603611410966673015908159145367057311788289376674365606578890142786820949444836565000818938253370419688867448562628980060552500713757913238250605720683257600280245088718387916440925786903023049601043407309720498704138676086390162434662532071408302215602008849032321528189848791787969723458743269070759547199117395065883826652719450817562654690208080965334725026571917709085948876643611710194827990480940487899031042538909971069063519425742351979136592275980867605776030504733552459007065825484095507208207435507310541159541853391594540800301050222560402138423505291703056529553875505920263372088618358212091870011682928286468711096094299346305251947306835668592674897235236019067982450355574419275574199450850364805714426525830935350325113137073307172497108492907050120655011802921741467633149206669729551830276404693737425373183406957034385118362038060903971679746288009606444122779202569809576147527974214012883123333305106952736141440985859383858674336691607263349135840924308600052889398255238757666020550383598954547576704867408115362207011099896247297690670317183868965917063251692118390381587072021719972277609650419476552985692052015985432730071083315485209155142521866502441324171958163620492448484736289219740266874571469526221759555090365493546860391352887199760921448656021650942421947278782949140734837082260989217599551856576918660246572164397463689827685112147640941160553683574058620500334924841004644420566115851505560207233969227823141523060698137420216899093955138247272740176905034329003149877905823080325253185004439389396925963228618525799369053458746372216214420751136841993673219524710400393539898803931270813153100780421611700125722686874680628174778136432755925847887463107873507040048442896741284553891220149542472851978313661433446522142001542602869669634087040229985744481323059255103304554836377020893913740616204331327124077090455729937067330390345253007149762203376416168223731536080181340676182202275986624702234165471399943244317946000981154341028028820074615814000002775722326895088959349942940168346720687042824265990630638713453754670030902257033794030943700532302806024753271305907434342380091574308331840532767558700808835823545554458044038733513921027456745604497336290529087153849756168974532123800262773528067937451621676554727483730235807320815468399030474014096871166821568224935113297651573954213689681870603997284040750821887497789482587805515203888587464651249260647343992335627639626635465735896975792521829353902929579760663863533285370809267265264105076202804601813000867337380771019740638694484271495634232936884432558938130600414016127125371429233106499064767857922251930106923834773417667123247699533999312488145634215861603747356478428190434962988034282260090737012797733520276670757774402393854774922685283040102375354575265548863222883120363531488091807767630136890278028018192886428791531832065565410530253220176581879190716488743050845841961305947792998191643669785705742216966666532176192522522517315573394504984112556804549153524715758676366235296132054439390548059038202489291380946199072547027388717393309728704298768753379062164208475180951266373428787977121427134159317436379032856073199353091126969735871990577872675242697737799988931175931385460155864404669950936466089366477442435500558089755633425147929185850024456868862788163675364283807723265800508653813706227773591271106766086335677081291866378191956627327110104559988008625008807692619725956687929630734189894078533583415088411465522748527280877938481443610723938749516233756045948022172761183267652765479581465848807011384304207935343677166137428958469656855303073307687583460336143516294763746772153835510368822758233848466409262982654305042376909474843449403533877961279028579223195685703853180871144955891092892988521240677437436020785808817590193027151751339341506177855814582481292763824971026970766460075787976612896587385694080131223405495698005387587282837352231368558226142869957056769760208895825194161263269760058023710637453666301534831046222639165728866714889846567259533253608122744245490963835840788724411996197019132615338911876788049253596641599715143841549695006207725298214038301282894776180058438480269760311986695726255055083120707233315334486859309028170117683374579051989410106766906662176491617675189446250360326928447660040861855391604424497310035699048738354949128656514723370394408834731892530147653739339572867926649212674294885757796362173282610418990581122348663920246833442224267398855777834222456735567240492736237480684111288509688754872295077201622750716452831698719025125270980189720301009050755268585302006895729281739191826078551883463934817455876269637012846708060745942277634240048186024517568741609347600086308950439923115365366259727322123513207129805680282069165497039271773458651371614716418030283737818047685905450458004177924476572673700284263458111781438231357049299377243949601778885806593233038412936639602275479944590077154884158994936284341452976480217460662225396657451070924074915545745289567358971662875825333672037455013235346404498041439574225329187429442407613366708052160186577699171222881400625139311650167669623331251484534359272085231543205781531289440536528160080001114426969349524863949463589490344658165238805542566635029014250358139181325896579432356908767702381900666118802394428906160674454540097966106602013151771285190946798494747590177210516082837691596840886860715155832697278107603364878947106053501577725937729901428771818194765645371662561252658095690520868875265189225488420528454217820169705659633330021228889249912376899625483754367017871750945109396821002572261991087726534395054114975961865987500507756175951745875591798673785560172170858872306255538199642770073733709521355378994663245795051326061767711078349287694165941679093319688814504591373360236058995019265952200514796469611501295408528847730450889345219516037334857253305257816330726089278186755068413832735335928466309375265060265798274334509321669889462270614481490511574834800891711678604844938107819794626003111790320566659492183083127506716052718383510513029415126130408213569829709236486049347016111933755882466825161354029045558651821062952830550373729870774467950149659130443548814719038616849528621468000452624670182601540548488352505519837137510924360239191411939501414848874409338519251866918152035603035347955710010028622268508285343665012578573874165917319709468766615845114265506593849250676313596321547513259059454092416812439078009377291670408085004354084016492896593773754958095933343088034478264706730455736158295011710361898150185091897668210132545387158234045912433933350215905875996553199953875791824111948854567852190773418914338707778714342906408626041600531712663713344296556009736311357585530326411484175958796190407195279628074855447703940938853955633733970902190727914899052366291772911530047717543541097681584946392914792437119459125196418116202644212674737306008509832904977214217974411795072760309727738902187870829327878022187037191144910400678914795367891924296629120133556006492927199203082456495550024328706595582512409993956664596775199012934278921397785680658607049433307530759710628675130096669625430319937409450210681922999716151239914173589645299354150829920098471247577241084555933227807785423962981844918888587521445451936453756780898916168847470363887340444436784568248221597405388981325991650869394215745264855002148321422193383896608505653571667907871499258648777780720756452286510118185472852152622051521348748681003509662553646680939210844678537505671738838955212449195430018374091376313216784899564844862465377987005123483848288963986835588877656096361654606525391443278012678770349446414285928840929767980459111838220197904486857239916659395295685063958095501928514563668422252715598064188929373262486478240673612995297632146220267217554144458907983531864383799131368288215774882282639157873779021813588834702788526966286525110664397883810504359561005340717505739129055410869763418078615296281743389678616239092234915647515263287556056457007146364751766839640356131694443751448082735442770584343650587373270970130709750571870811750485930088199729080746341177923229824562075026837557869433674876237174293784287125382828114877684664652460047071809487324350071824780347798990673377101021745530684598152164624104024136641945020981593522040383795652343755281940187272146035720353848313160800744817484515186578287532322615278358696774827354573893445612586165751937472771093646013526323906910349387244720067473711581640652610852598608543337328009165611414404087315637506031886842071308067493259114737566130662714374282829510913501011101094379297355140881657812754500225480064406160489121181708763259414650779959391485483040589898191602232286205190780265061428033863382160646955253010184308859422663242488307082636097124281571081674036138261430876079789951611632876453861602771060695937082929733476372597889801245605991731397790278243558520598695064720987021354612404348291386491075817477269541301627792432649668013583099172133113231475552822962368763442252185950707074775706680365318142038688660716970063687538286081213002633516759944064168263056355716610989539713348843608849064288437329278936689992691076799332884156781197692556172997855492837763671669453108049711268298742112250373934871006554267101198900105660137010654650051428951661586869686675394239292106635175761532095043651428260528325891394952684170242951420317718342074365419515526233679866262291565513415615084121433190362186440256798179663342814295772933099534974912881333659102711350949933638687423527976788784105808970072615218460278791910976908288353089599310819466408479908235061459939626911052538376681885940935467920851864706759887440485430814280891602180759847753015391477711886595106536108368928157165217817042691077424033088388189866716319316289152793738493765357151680087264813232274119729756291661639293459463932573088745120280544153554712949996204989574379348639205638748957261474824281569843306034467193383118508551841038082972010006818439860186358740403412996132729645155069254440248112359148237000048500932933555731647825843414852796719570905518249264467700380863579709485565618832025712436535464009681680657452422354245204444678848267134420156988136425061888805189971348031314901568086320556960512986371913627393109495848080835237673120415028408255468197300694609398163483399815916540255554327328125540358500627713642003117229524216170488530682581822023520479277047542161574087869877177610806579844762888453276581282487878314228286147130958611743680995709819894737116809779408991458438538768900414191002733059007790197050606807895858878635545406516651702630816444938038499376046043232310532508733959645730827401841926139815903277888404559215645564509967220303057865945578844142792430733812793423421360323246195270597892089468585966581885169117559823694897999164247381937105410703167439021663017737711228771353869586589873842113593409462369398451289042442707543096443971276844972679110900098754259363310180186479966045481376275290406940425985971946171069136658686142837798060861628191948007578410053999100123847731286577673420680993621842745221216449842324634408743235488041283119070335417889847218132627184878495382771546555043160143868399287966240350176954868536376732230980864104532458040499597750959146456685832872969603463137019042211052750135013594795315633379937105673704100471444724660505688238804115831942386202858622282160673844859989810361693075088420591685868535192354241566454111829378516759136211942084210153182828549957492698835150879821793848548749871512770999281510383882160921285746750652976286303945002093262443931209219054389948633692562558467170355755123247848338190487345980772980231148345824071996292316311699162600748393930681095784625993397709106298424392094521746286308839103898608229421268469438284392498258906033940763418115323786131355387550396910269785871458720765477344886610792695886903264683085103315518644440173895066411111602185829353986348234420467270809424121099132858399208348615660075109586879992096267578709497358882239606676350806593215548558565046152355890685247384927503500470017649566410752793745604398758831713116586319593134535336256885441922156620431364245658764601090145801630653866846383743357710183554809786300268241611701928411621341180600922435232968181767755504177131605989881060377883645437141774776612819893915344244738697261150375631209072547539510773414625221958405016639433171176702870220513484704517447293061904801089383586327228985034128260197573438076563869166997388836474280185919867018981873923707694296509192747601387852220526644740062670078722855742170057182679042529284155425905830344194357874206150875053617553056299485614508173147075306123381912425999017571219040107993582306628373450631952397787567990754317646142170528292736736270676744151183386637809248933095743813594622780673166910492348051705946168638381695994597548791882660631731872871858641459858150793532386441395636871714028731801175288807135952889099904310510517291070959352059224931422024706531867154398607939388913647769452686336048691954854853754058226099582003643258564543570510754735160050414735767056414027866677737746178151707088838752052754919414351262255699932552330592387265575022716927743177990689636443806772521712507991144914049662642180727351182587073406260681494454441383489507230004439886485545560074207313088254235687195669738211229685452749649049904517425123781637445962001886672592990608745645418780778352342960748029373767117442126797293499793556478208088041491817555061263618800467425776132760532277839941579862593909941107751411650868540755115712138317668958028573640632495187304041077878096300535627225762785101883347599500734498180516113536970983632815374765349480797318656457824102187124695337032827864145226790378992539139049656065606819120232470765859016709990939268248189272023476224065105154585691446613371800909214408595318831623601333760673708070322309283686079350710140946724049566933194308438707349743849755351960446014509766263635278620154073322118878086391049915517019675954405422754456906985617311396114295823794361596683764471345122539307267938082300311367528814249711645133416061627175379455240474665501855577002254181858754227973825571696454460943470139880224347576385281989237490765787072416922857491964796967966119574542046127764596675443705647293092770304584720251947699607797992961161200708998372739593238329184212472840250117940448033603500619175146030484134572831059767200577564161282913004706903509809470404396503292250368239662155435137494987932064590248076969808638353935559424328970290077953520006783714422052866417531490160739385620643587442673819990536170626255151461297084026415945368531283501183473746400370010106507675223776026870828691469215368799182962519791007050095912907868843419091031691718909694526445023990494404239077935361808051391021238934631440305614500350992329653035818627723406916096813168141278449166555790765913995778993757510758709282546429036683917752607142966288886390744268296645961908411891649379542526404606386667762542999713708267892755867673846201008505075902941299049062882577118188907141898029281368660802114870201425015664673197446530465524947375010248615701703448373081742662675591191659789601546735256794100032874212839056206984283404541559103955929732918035923685019525947422565572168009929113692696416508050002739709506131115247757727540324069133248859150679305493031881964823384141059002080990658332751641199794057592893525924074471406559655183068156360759957788005815625151835246037927812685736306082466196508650170467730680028913784139976897565596632217494412543028971919702898635827880374026997460295991398510118724513147779352864639464974137099147362211956654221103247907607550668707967941312371456529420207979536086412876194531276431167478717336702634992751143971242139866142580025399088229342894220183461001348515215891970053467137608263289439520985300475060116621483048524809190086349785298752658524059299531050729536792779878561280967464129693356620137811607917523904494306444738081718981873610274212528876310874867127794485640134993897818443379344412984368407288022482314226127393517768617246388125215037686651338869871125717269731288414740457694913713853844533658005823388719958024113719920189778494311600873273867217380379491254989559007244419482926312911965066885842942676638501826229937862885029662665043854526927414284940685457685346777895793783234192597069308992420217253637709960075690513047123579636380700238166355156620343632905362462550115586169223314951628620848286625662205274788830355032986068784768022126982777453644392060807746293181942445272543815155546922250355162373299976432746766583329754048542573322774343961599112036634298168216118723171977787169971623462391112009507984101615205971420640798542803993998716311619809890618146285082945320548341952901607758603238520935831127853477264317134396342442953717419740725982433298401886125928354989582798339018362219036588468888876455076483524093846856743488747888111984202321155489602578972129662489308060347504491677127555023846948137400546764801617697505744095654976106982117976861957475089436435219243811973362882777859286938700650674858446473532159945451707286204582196583841396964941021517391753225253919443845605939231028895670893315994346609112720235206517824679505153799732067897389925902825368407512827883942576424982083230214430287538041926715381767262070476194104262783977569633411984109901192061684852319898189324392057449953711382420083926543403480521475103738722932929797121026954236801516518884444588397865360907746217800537314627838924178686641303896012793598313387133605098856102235532812946002750674215780459516270530554885983515769264245976709514842425640902933519986690170578820210660917890435755581718324392101534920361943217244984590253800092931595791201749682627813644570715418181904311248110697454366215232278746063259024252199754606530335310428309479441265166049611867652722925111174988065751671800207447721868147406859970715593719866962690250810115614311222367091009819995552743496202424922145765982096856434473218288233551675831861186143597639832600104959127901023216877497904737485586004034539266809059933310992392517419383490526416880254064176132783623884152312249938754129287227241048189441020180328132029211830627523105069727491471102962315326234248116788263847556540309737737494282706533291057268192871627718744397187393205206914167575059093572312102751932771103315637903863913455094160779106564058204732879516743567393031140756305522351723179163103741216151600295558820451555926676275217705244192536392533589746381262783503684456185139606889769850136242277995281315140478428909410986306989762243328626415471600417521317540275253681242882762350055556481120780287534261542886222751608219895319005352825436724526745026626644777372588051888444401139748234050711151771666743246914548852182116820831238296062741415499165320427905650740317903530223866082336287585272251757631395171815625112882329741235709464453068846194110125220155940346833301602355330362518574902113452003940258973998338679777202113306254991536021934647456537899019498612340861602272351358149675614255662642828890334842639403888478180393950585641808671611053302202509212694304557058837976853726532401282375387029000770487913999622110976988990994060876133862062970590895719451346550279230914081533317918557032541674625170314846571198139599667175295822277156107980877238571223551341131239852924376340322600163633790974362880475627592866002803864117213055129903285705374948617271164980779194035518084334869006994123302307169398334227054182511586377785417948600740380926769262079244580217088152041630365043982879781703505970792936470923027895214845712147916430129998260009438506469806181521929255255976159209416914227433379783706764956864806335919482184103765483894909937206029270932031352971634310361955788902472785761990778227676051554854069329588254914466659074836597360680037342286484889863778157788585808161141643982396480402119245163909492991522488994545217313577412627435660925284048740811030721734926227134616206327006085130278082111420928793695290554138147823607748268097472443023077553940434805197448312790008215408830134984494605960692768461510893874299644232619308946807258560394153474651654799393954694841228696241185479831685143430632523851085856231103815596927163333545595192427262553452278148480880346384209405060593047168947904488825552557229474600491440331980633816318608586096867545246550850222001701775928184225309541760385864627634314725309952896128392242039164436723086764228306978730830036886955998403957296493293354963685908306131123747200494819683191911686711684293921812106610549653398005115423541287367412319764955551332207108494142245238931194727139205200726557595070699682438943353110392468452817560052800612707691383225263816350730177090796999097863610755448589380095061303014087754471364869973719227801225525355852335549971961455899238895086139574672287565109073893931818592682741705725379009564056485084709833769042588754852930208176865716466343514082114002314012506486867403153258281407372901669585928665570958664725715648090585930577834617212982553884963321962976467265544619983253304444195213655682174770165475164323406580256252385277853715146460020891457625490221499625867565591058594104582478510598364668000934058576893497654251013134240554162451946817510481580918278824557603925920443119162730249188319662440593064329042162446177247949548870370029124761394588675366700820747292971727773710250944560551919589420657350449148774568630284071926621394527384469557868267566611890883101959180164614016113559179752611723747357048216211128221328185827778673897079934627614951834668595658931060633094894719988343229787896658577740110661112962026034428033339944160275568821331130959205883939975059880378660222955499712938139030548991353825279743629453681831413899574362781116957006092952068879069143675155822277294584582572365897503054358051445919887455643673959639643793927190717324601670693561299386338075074406430399601960969260857897291117497443750389511644627534383109198075065391598880478949047738816276037601593387329056529765866051354952928290922708988044770269687855339988170145033934701170254683600539740210480269840334529359871168953974955752683753218569221994229942396733710637236637774925848213942151414491607310846885584400597452089757151892830007041041224334327126014912778236784269295124681737198817066534826924804740563040339915337706273959497094965168617551173357944696836327238696509866361962121938130481450934173635016066857745716174847734795358943620244091665493518326021179869673412736871373654355360098186442199914177689042968353835079058750111157702328948334682767585918201693697417143317967394984317969144736721407433055310664133209565607037594127447981767733528510825706213622178340584151450273563186511893029461564874836880102141292630906438916676850394879804373466799297797727153156327848497866500692662719048915462885553779347457064954993343477271175353146951075486256526581146778675828829790535702702106894453403862022610541360595629735078153278960159790040189706987806115799658969292447049091899793689554058708469003151445237512620585920010148589970079758643650032864807365362794672970624906033408506896707529056386639020455476485154460520349194563539609235754432032761636623873230099861359600013625709001172879593696850982039504739402001472702363406769803658895107341306163607145148770107578281229937229833391031939254761442021574574479212853456243075737909007650657008821569558532364655284341929184178347793751153624457508392514834978161992438164670831771629363346336363577469816570096446307111100626008798888876439431373114497731337949199962878841949549249101831304007303327722639323389769812482203889531168116630553971383933905931331945130550698384382627662880605102493456556418421450068468693854131939468526126437010007509915006123096681151933498277293666617259152621840763393983873948549178488217466334968061717876728564892732453460082972474351178430610833354398736249509992530413806626982436021410309646566081572583908675199271737517814053005147586114005792441681541703132443745098555236016911751793232672739653044296302945722352560666492916577555475859673736914342297838327480087173759673312481642593149206739105453841768018446213857594416444627806047800606905276353338684266329128751970864745901921305145839208040564071248595052988442831532282623142782085856305054098961099876233728254564806015476505973756436571006090004003475055083441199269540194687595662638249471951262124016463624798532618979628602452200758240141025783067818187121982915987923304110868157565919792565508607547417465292919147262407933446848678492511677118095873905323337123449350293562916267304748600212003020456124639805429861369944774556775794077766133830165707976552570361468176145799617308703046289205570332638161362954834352679806368959616446505629449324607097254590358673051728413075849050818113563401277370672331627023929880512528782471543362721274480584970573121660878684315579154153142918644334662372000367200487091798209158997988806805851161839921420841677736043817245712486289643916972967945312429130663792098818313944124556423173433849850589160889196292272760266860804788369364142117476293445798243567772861687662710468451191670270920781547957241132382560337167611914782626655898635930911138551415908314839524077428836206449444252534829786266239078803763194002993153121168765565299441683574407734304835417231830818649508927784797401642975261338276142577664012183932751336411113812895681998301806836338319934171064890124520508790425603666748433363002344149598189953218088892318487965724232311405781471005042421359662587666557408920959869609250961728345411097561896845179074310912160735368557179423618952361539175152272265061468926365849570988456109616127615249335516069050813650211921048216770238180680880342238430805670617184485832021220932432988724828584640097016488396036681361387462784937878553236990631092386552036302116824325993977318924781589008788677599188475907738460434585891654915571177025516039016010985091737020032586194420266027891392013317506616679415957984987903066342405968649759726019166766255045579474507046291098933747726538118248235409279275727836900693705606227190514585474549588301500837303764984873643156855052702918031522999239148222082157280481201411837135301004997594425127102759859902607372675893120185843386578434268054681862916923255482349197747937182097513316073020907568431587677886390678920647559006322382226972904520968953268944210229896296792430049844882850498019918794366240814549365120208911208698177603231862890519139687015914534119652118939988534139897349370042209768915437201880754389046282394604957438398540883694695804184290050152300235467385989809524923814933480188931082752558533854088863271205644645199501359028660398718367785718091426874744300492521333412211348255047486384713346242106030472307390643716817400620023335713127559820844227653509622401595025560841243676468206476146266938313474940964568868462046003402436091503846940793779637010666867413160507636436099099050820902438712793458312471246842452354472349682976929745459878953661264124444179148317647703752560947126797042096086861982472182919224405208097776070035999272097556776213969614912737425984676762468398212115551314539099876999597078087933461240080406647053528678820893926346300363626657731229243095342140244817529698607586567845975285453066999704934351446476735543344899645583791813796313717152897093439473798052087422810481614811202807919697331063601873925045156483311583659107632341921140574962546428930919493879478810580730031328362228059317084660433265178591281410505435529570842453843107485795616785658426608379849279741194019728825242944019040065632697823822400701925817603806014244355655999973241056256711437925583302743044387077036030389847245686237399867842962114108458995107759298375333787154416653424058320168989510872935576455223010802759330662926059961306951114538859498813676579713049719249704669284919372082252796271634195762535354764858914141209433140947155297704271499949955717649943437867613479343827580410097149611436199052272354583584062303896798478106832982491071520141332360985048172172641174371405433464901680327982129366737368000959373744363332025186700155324871523750308711388221996362598267280243914714734369827211681826442077026192763509806483561490997928393577990537312736208822985199829161421243871643701146210921496549771370090310639011838190178798188205446616240817284106205628033313185776400070876635355144258131958852328099971036139227832923566185253674723292314612590541887854754803305492890149970714902323727656403063687032566192828595113593562840159216673874383064377461572715937629716768763150933271186255575216274609641784407761915353624148856531645709845965672974724239125756451283191408010552946041203707411231893096959470404747679178715393928932000714761808892915381103115841569034788197561346096629614019113302328268565041208190537279624861757094912168951163529337387827486244152312867067208587819730171803914750387826320309732049367371878920781358236255163670436241426647336098140063555331856839372866973401106090689008832926192585369777006381959548646065024139192482983890550421737770530792264941814819535779884143324908472515849411759733709327667005521114613878410548865615070051976221876105245436873792793253725821428337261265146133599801515988286148433374310167956922560880017326431744506548582036642918012888722025342552642411032146301513641534689112421964919861262192661624808128998491668726849534695143744091635604423875283404708146575588873667558073871190069138927607400462507788932343467009223300961161426071657400244512487548576278207838527614511955489679610006599009456397730332603229561895705922866983915270665751753559691961296737148234426634344014928006985124941299852596927036155050465732998159139635001662530549962582308521214941349875889174213574435344284257680694937176593257061090291697440916067144285252675764895507510591913581442254733499918883612957201624548682235787456702252181394260478695268626563891185202734987568417155321914253673214502774301395851745842942707109729268507525535044976660602235776208890715439977999991020204905693396081797127136125552481532130345013056092095224106908938867337961394486438476733304226288245635459242461109447803276220438946938567335075515264417044480369196384163611876739921981943333256507343642724808901545081659269691082160368364915072314757912128464217156370466337916361552387940141417700087911757924744617758332485838857381036859625267558962953652828227522536693219329783576928625996619466918205590744845712649432744564815788833593627995475733712730351027766040790425872427539997606443202206688993690154446883673716079708992954543055990693476339636620128951280138838817569572823756960282996512428817678920547121743719889919854427146783603689464050722211060978062882356350018275723142747609401736915875892232422390313155535724291222199822871154331643534205556212980650480357957658221450996021854930746641420634566408828119703857560719055569861680557477034035068621730585045306593623599430046718097269980140030399963203481194590155290009052794476768158025841592197789240159163086383291414319765891281617181508958260663077648109627138387133589079897919454809019110787561234790099457205625480001484715700170370030825421065016167357050067145858841790049945870355652267773991673000481197281879496030148131828503919595047307808011980400149452420408875430446746028525153848848103478325941656739330490349001656528303902716361869633804032265392854262840259561273650046962856397257417675669677629115877506732637696478819404473304232847651749630449856086071489559583590073035267577306402073804882214430462198201136404293339283814852880383361173638186633640989715122600462101142838730792724630034822703088796935265012825971749406150179450468749877096749788000369726718893855668018397691609978297963686719288575261323474920026281274691304852316551958139900486887219429188217553758489004027440027890826008874084107601616504498732089127411606767076742679785979690255097968151149155888030232225873141802891341369505634603516135318990124047436761717055398246877592122122111616064925250123875368496203364872204718361440781838689182960862371572601934250352251191914100545256155341197362470637799573434582682344923149641275328364059789561026333866641534316566543801481696635386189849614150019496952565842375799926229921075608644527712338953133381840091721035032431440756445022905738190150194862596049946543900928489702682206463979893661528021555089832842756343736839688255817170489499250381128092754165033996504579232315284260923965825857897483373277500901982134762425461310115346543049293683424341054495108274117087130934478177525056369988706119128184371169898996650496997436894703740223598883059866736599882571902376304153019265359338847490844499636073398212406434159386246937519086654421547189513464219229905757210240770822834492999189023393933958490445988274970571987979624073001155179949679259280432799698361809864133072438469397890319577889252878674695419184179108296667352107547554360034452364426537303346365157227487116451680857090183685884524645007239448974478062078480759225679117896667775418759114184152245971929678576822737290511377486873837508736570147863463299909411585829837391978623865313405632282607638210050920462859956576097433926138651533206457003313138013654380072291899977188239882388169341160795217337151018334309790954235674867623121181518065656052169628868306673310523581601251761516890422669316129068349830024841265912105392320057359040124272126190459027836130356325362631355247842151337287486684973413119230053197342314481295303819922713242097839070364877533805612919271996541446809661645213524141149126554341715741143790719151821122084384227142179708178253367371080983836564846210371778279521293937650110781832288107393927771679287196524109999822619044810406208929423005629679501813133420690023310613309083856152767820390795573188075097852436041517313278058385938149210923834119729838594077365623577883827859005790798098812797340880053560351775828758579613310387262422457604826921902463295707558773961404888200476765870771608025629037774348960631023805631703714179107168361663883554174866275053417002477815910199876672292224228321420721234208406889283861591916506310711662862799422729400754442358682215994756271873052577648469390131909743503302081263189682076048771354303573713494987770038752438646666599397163171352364003735513002297470102062855500334696073731086048994002539746482960037924922649358648618612717677706799858536351359465933259267900985125031677469357554206835591273586150365759584149985316941614301087355249568910435927685576425406362185860071542673630868197515347907985075489856422694498928620396963853916165448082996704391257687918815770386161642714408441683808491740629489646896067900221653251452775858938059238544611047031405193947146948725117646650429457430291081819890258236398336423621285459960709274495501767678198510615594818020906661779109324424260233364206612684140029716662404190073782693783812558049785020224224275139766721586334154047390328981228363139389790662545552095351339654300193471260205976918058848153582837999373515396022966507410601788833329255001938082830605672448926745024229206496654392718658501278870229339752423075164794211809790875927891006598670462576597963025616205951767741377083818769911982255714577587454705896774768136950639309305979351968481024410725473046835400705222717117449626983133743753497780840627575339023600076509124377473784982903491373253205668924378191236341907978535797654390356918413853938781867402398544671372477768880368956049386071496935744449645768340812238527150612773778093899115975313540584857033968809302043052165920316591341495689636720247735649439190697343667595675320230110966638090788675915715031894345728946030194126920668189687416600264115437240071351037763311901107052549796747159985300872442173335044590463658236447295905103768850803624692928421891816121194840408148345935079046769809067300056994870597105900088537658908525297184739433762414127081130161343677726282802954703490895920184436649713795383963370007895137161156753706696600289323658343662808549690199787981349023850429583350488585516199088680397183685983864464169997859890141678808176826630998669412820178410363196218660410912542335598520136357761458024591041253523601546918775580212770022317890718205514348975167069685180628918799469290077974022622186018009529245588894947475406446829635585181300957733714766508210070164453034896884852187173517190721858537316887256065468506590985958810345107315309433749489319376042615291038776887536843149867681872332489790242792722166545529324681360552881117582216010248541253265020709386335398700598338333852424000978114510797457190498625817164318691142419815127230032564006842583007644214508798702389985567887166618928850370797188585086487724400449799468728616781290443374848410655212170304739925521052399996603409245833173181599768764239246849639980807586243226210314781700482304128355616793296215715948436308046886695929206630484463007133793974821207015030283276880862232419074271904085882187779580040305694283897779026091045962493866725401068260330039547653853645424567067042650829276886180487058033645212514625383720406680023401487461133627198675830180789136267848594471535451345978778002272712880099045751346731952051575320953742109446295549556431085605683548428670983164381053334670552359706901282663206341301990865441856209153659115823524506591928022254690534653797832802085953904612938145262545801674980943117715218818957315238487186445681088078581361175935326303796986912234791705920547508162311284932568131337726333727831974494823840882338733031820880993827564461511990068927310752075464103028886359498346277498910275581730587906883773236421443511829294929694041168291193521738481633210164516215974798689134418688403043727966293684433966019055405383411668744400201840498399980742111472030181834809252294068334602738880944642482059004524341285716141919491960935952186984019646841373551249258810422909480886700792335328998556816710728941691116474894295979471071875776918221256862646024970227906780239571304134553360604349499160198461564633212639674819503562605216080915627942764346295807753310393885276715426334086426164216623734730789323522612833470265089259980886246578778718280858053182583327424833709648195186931650151308775326708218745870224297882656619453707373977075350971530023359780279031148484436292843419634087099815007791743529460690096881060026604085855101566865891936331860081883623679827899543136018279961389873911950746011627704594517948255678333773506645852131853165050274588330555089133109299046904866917211827599639703087210508721019910016763784504870986406667792325947191437769143859795660556975173548822711094127277198704570583421585104127374530799772972921872398210051746638739063420407265398522001538109674228544342557936368846015152469831461187515363926778722073176601685747648903998682423811370767328030961742518267270602480397746264893210512394210666461109535810035545017329145877449372349539280317458809533208136216001475575353912639982690402216077599948647276111539301067536458735136494125610026377926608088942255566050585708125641151390018632190848459069096750700061310130449556394031866779520769926443088462607128815349461918865521224506540578607253504317223861703619143932992506308928770226350112307914586674808354081004533759802573132604445724417392015033961513837528943683365211762506318110626497967902558379584363343380345508431541462993719018630116946029534207162870212860689788805651850596600100030094326865852142710606559403003279365325650628169193659427450195678331168207272274888205641896075611403551345265051084669468404894346386970282765212071900490630305248588582521760927681774974895056859906531734327963391355871434774957162436941870499238352481780794579535677791587128471303910305758202172080803070329037793693855757707171767355771781971876520896732432743430390907185078347054147590636980545941573714929832859790865118536444957651721913506404385822915816666495867228026698157536381498639261153062468962068395538384095771328245790238244546484835882653486268609091846318896621870558302417686623760521733274088994773258051537089033951577051772896336404099848242047495322569048583576371960460719594043494031314477052393688991934880318510803866060451218937303141843807291724810920655269142493923983194148952321112156992238985688534862957010869064874115815336720896590477713692184836165992420504267710984349007669747302702675980545841758411510781594307612743650211774174978083257552765578270274168958486965025874748694766018844276727117389347870631743988259603412117062521355550658171630354925817081450618751188883872075134617039319123742091174624495082114654704067976739353123561318563043597374166406403718897962214672731017467672562006804809469702936056032046660702451363169769509932734608413078146795395460414523697438177158373909035948964239595803175166523587603379548598180962303624504612402122073400791964846792755409641570580581825408376920301242101547953335305047105869656404494740824905305948978542545458925281845885686449305447515915917810654158527052836868796860010713852847592714199489232253393447292935098590788590985945602042612775635265233848157866435900416717126755240343245274535554640957300957090827803816365082025654998462540061244179370268369747916657846424506075685238170299215152562454772533435873135524634857679924217516880171033177356364608093922667864265247311190275180560829482104693622790932813953570968573001630314648494806358135884259895369190458472801991037490720678282512945503093863189293785294071597234996410236893971309604003332959015254082596041857844289994698466333908716928172196762472418768808893802140319900738290185490929565081203431805855900565851929746285836848828644909722502900728743454398344130178717041536885318405100864267193933423737756566596087837242321729230377898065705948855434116888422064563836995244971286715944165819349232841927470920785070783286871711013878886774549821343031461018893276598637957251004504557006469645697549381225868440476025853782654458205928726157337368581170715680454174666132755509810860426657213178903061657376178930851027759939739457696392974737885995380506067037615478857236577784902772581282072038184535633371127379420386711835699748406533438138771947722648364253780485537388211261228338102230618893277662663843066673964617743480506105235366806887590126939581530632074004680789824352283175409316951094708395871336983060344604134609645667704005450290776382394533298194258502598247115470902737846868512801382017531213754679034542907999660556895092817537520885690970167678011715465907031453552783427209237919745793043159068976104256539495763431377513168539591457452259923803955572515901901299113021916097892254945927445517098173498508804790540938953306776470635678230144583751954723902615659417195839926197040083068066086615303418733057191225313206452957893984637385247851888850554486761970092979876281957658425527655805959159453312523645753757327519061348776640123437577524215133003414712458993125031131466954629920588962286266363440568541669442495987999072983392012824664264447349106627972470130803891518139994802745872883410465229866022851030778337979542490408716647138490484635868047329023113177344296064670003341611440125207961774269932930519083487767265806818894194197830965393767121961486658461877925970050846277987294539102090495366104843889627927678256747793728565315701021313193014178351939221719968778329112391329766147009751738146197768420829105586987558448557697767655673743051536701461688352147546427959977484112627587352949310158137842276376418529006648957519342226910441561933044692456512194834959498450100844372659866286854812977470135581859260713697628905969515550891966183207189070073355198095621860681497858234890954815273989079494166516746395726953319613442510546822928113603863529675688292313187778527947131280342212798044626324202960689095811376297539127594701528904983210339127803826402393874761312397686527037344783728779008893152614091260414930785383786435240889365153543607702733416958653245833577908446995283312708155181216209930303641756124407778593224006602909940171625745347099935872518147127609647682047176289390442391067723670841053209175289126445525421355778313219711810655042624940006112320680132021069071529806532360545737976138997429277368274357076636768960056155992477284844940103517792822450726417120840031996797347745735110005953007579443722850170372322811032753279612477208617757264591283414514325783627881023869035311135099454840215270357616123305210050611279162000429739154552004013439322018603644499563492247992418830193899856015407723856364389956728165841931064408012614773743210790299676414268627792619084669551313584077839679232954408424095793842663389366946844828751760949430278841334019103328766618194194548257669058553789266874438853655125074273436622617415532317183195433318676959099818061118315974514249256027477246891076960288433166226470900920170924317921507949491022229669386745894822049255329967704040437121252028318104223546975757460116068096841407603755660479793461690630707478566813191175713361258804985273409729478568181174632590246437134262874807823628948309919902018564918339403333811799158348783696804277305125582388723138722254807636141644039635255668948264482268170778473768140095970076207495039671571581943727886023888505187281411712436748786570459379000814299745690446770194631834794192429851705179273432574643616922188476903747885486378077429616194927885921028438117367183149866909989125941524217204014440187646359151799468249448449905835572584499641380682075795714247529047358472228630365445091238423746265518978905416327623157131211482406396303463123943236711403659866932846751774573990156978136934834611352389888580384651555438296607793041989561841348465698909129551712663791875328608828384768480485285904841805329500831543445850155316086452785176717030587059034463572947119871952473569683801873537995342777831492605698460729348510350312770642491443550698487049617253743338895931891865966392290880442672292788269976857167857824290968796372745557181886233736980207983827194333122922526809832691009455324865042023958723695267741931004352821391321918336444990728940735858470278796784343156449417648551804580717420311743355008630197988122975961694006807377817476729655576620192902120739719360982982451758416675167399630073389067562662389314845246345399779167238721083171403635584218458476478818865999189628332001358499604606354927373234621474132825666988911647357071128041793132030913131300607867334756752693164829576826960324292510273095820830019556704604754261349810786954096277135445236240386490739853660661159909208733364139384533501661027092076771445569812938945691470101258228911341134850881816349156348407706292879920375848348111463054530764501598315248890949807909944263889455798186479103260133936723154712861646994090651028727467493046037519853723339712200387456409315381092491987793621948900655758178950622724190662957753916833149725585143860464025852133357768119212943936200139042592743101445605170642996169028173075089559323916763744849947903364536871064796405702328889928858610245493342227211847746344011295293844679102471209960647739087140298092575173685436218524483339868366015345338254785394151710197164926186808565563333672080358030533805339557163458028433771466946702321157613137273426611291821994746594681454034458896216667353886547503511042651269363827709407442847772194169672325151152096159747655959254866010051924144439083065481433780149744405220454028602635932703423437771936644935987644987470777164741269787297239965101409331439148115349249967545673997988059814594365000909614539662808886278381980961442369637096529749944723375943235870234871102442671002123120487376123772638116508354562323959261668859866433105042769532554351810911586932788672475816918414565498085651299619097864264078581805583168378025509012902567894529663587630629530532806599370442611314702842963174401773772161339972985498045724467290566606889136235020613172416388015157342690825300335646948321637726398133634996766248096362232759274975958982468265568249233263153398057689115482427965620580054747321373250823196117522575626433160335593567998198160629965661202845183249589725601909783620159455398891597691228596703572055488700113339364788317046042627730655814874702580593701116424670020302526668116392051585306251555078665508328343764044690926191732982751584717987273546296970476790758143843739362213153644827381175638562633494660279976148738835335437010517250390890684710072937173062368992868391466575574754733961222718271443236846572223296383882497354282964081865165237703283821751962975252216634776288651868546458808935086358085044334123598660802857524962165747353085388656245853630289474558690359019932093063641886801064843715829683025280834986210231627923249998595575193011839144781278238881789290702591986677614159665020941622384293144815334296449679622850795186518289282978943454179314033388483114518011730303829158167123464018180668805490887955422436118256682820973787650643251901563322850432889620386907453576356018676662093588055994973650780536397062609929761166419897242217493497003401855697910936857717356571249886486826816019971656665833155938483272868667423490692521302780315771544600031334492245469001220080983605396065232015309975786410970755827790550831391199931195171381757648523110757153789931611212286193273969914826318423906377790151105519484870656207716774714128246884242596721222197081164667997287682539920805998044123423557897854958902033733193899641372791175696510754261847025571913961925740881496064627908706893526589583695761610623807976276858311910144537072746560198528785193439854727454087098440951494973438350580771768824537026964164521097363780683355512964681717779135264533044667505771485235786612110083936806137070865356365379447493109413201464891223869001332432172387416040791129546280327774003344941016907694716165636716632540789512743306711116112036177043661969328651594411615988105713773348972813022423858680852210762293250752870179875127197407179219450721414530773718785199371054334101706243119425039077750824037695943077977445735622674887002406981543003379141723614810290636049897849300797308004559483854659272542492071049502876118029204578978940026900355396511948008804385528071465778685895262920006051412272162420988898345585676434089760357357482452517688524625105787876339358858911446930596671202218119267272073867731875123302128465843624556238635211770180495295765629855726057491171862190524938861568004629769017517246777837672423292125765585783381348696902772448609513319175288127304349373121122008715261682715391152157174471743830212011999157268930088121000277092506571287849661129861425019147663897103170457853466551044656052863399987985722873966441925347559634589523057920484604023129571711429808151183546972743314437936459890850652048902066438660830424480579716719129278860841501425700937799199849725385601308450133679540347493322896763768975890861969245595165651929918257484693138103149247907901235482532580890701844767882708988048656044817908982017492166724243547197233583992712368800878582107672968602762536289599215911526778604414802565472704355567196171556456368181200853649734936531227957813459509942030681952236240238657457043155127806795112559309514264844203470916828991927070127335816532839755539728184883193019187455404228906508514191042686719676464292114436781989722441248310038700516461193862771765933595862799233759605279321350456026715161106004558030287588954931856245571142063009628237935007800519029775418977199577701586484487579439352718865465512978551264491517990452209520962442474244448142615487750792924794063221425917235110753357900399778001530395216733795308347096854923764511216961107297957398175729993485327908101459828735093576852722847312772663535583528254181608647747219859236985507601295393680642543139924171581292748487964090872577423695020815590717287840936370882327331469805292064786090103631170901428355448790237212249429219597374261685492190113665741886390086919925969123962098316682025950718054585398246602841817492028145058367122303535140370890652999568905423980001857653564055334309469221381984225807407987719942228488236305259171745185896578808328199022182024172677177267056392073907565094690683483745474048904737163496381126907255455568643511812009570842734118633664150784858929008063770477043343470111491257943342989488180419421593744632111237854185625328892416011593789845658315002073097828561796720042531046655157702831881987396859284894246768893166093885083311077573297273069289943638163428275360452696271868789324808007880236162998312005749644817120859487579835074729890366307101082109843094418375956580662837950773571637911709186958542829786213345649419762169351856997470995085049472367193762900537510241741115414739218057152531471290749715588888374162676569405789119584765985225363607489538056640591924105928663258482893374248773004155896808419121736853725076321649637048783986013012106140956420754160232983577160549533427643021571046306630174768203000453337818484020936189047412907327703515967249851128778410690611872959967923687492668954810327101525513219905767238856401329234944356673858794859235000072764894553257995109637382402689878739023736280976208973939722808531779533465015993698145106681920982742871326515040158301407246405945127983426458070153960384377188638745217821866880069806777555749501083994389967221086170443061355597892328874249289927710434136401443973722564141350884823628738926399646395286331052026256614309699325033438800595101502758373583602181740966512967483308532556752550622372958868808420731421354663769191354115594300466210331253106775155428022965445592193738064409029563832844052970835692461464100596876925826848555024545885159055762538438492751796882182240733969071012439639076763398685507910936042722273756802578594950736527517934927585554632601187856083073572596199133927008380678199843216532325577463624639752581788593952873913226749907253499321502127074211049669798319061120026478117675462540951331647765757336260268996120125505134654469604626408230633280517242905995747304884837786800728128164896931297947230888942913777259337995029132362409140432572232885301034588085291837999830204540709787383103397599597204926746378649669586258466223785422667883402845600013757384363823625311212924926530674699431562156131840249411468808263940473264407174355134999145691959481499181232871544638693047151541854448384403778446064354947349184896420970165407608630739030866246954303055292194028610810425073646742637961526260642573375803262657825886450964198300568541953501054688316926825169316256108969691980895899800461030831562373433279697240403955441166983775790544683853349420605853292064982246648696304714555135027887843159911262459858168032212973374368501361814469664707305567264496011976690594082634646445861235057276505928358358732879904522581191885471962879615312288020942029682872624062425412163489003103884259900953869801938998908929889800721074822582563639780489611361858011377766748436425306550560339709378480573000644192175697679578089267234020930178032294163631365168320423490081985431479470238568784154278815336526711935897990066525361397265426310919613036177970670827369992158042843092234529270271822044503324308391637688194574268588926590674283667602836781459914301549101067986480964902450441523850055763467732576872949736054617880525737202519867074676471888970204604323100162952061525526535524778073620866290914395896321011475361051171666657215205407100977947669449769633723788039755249151037378890015176257973572019816468499606114908648301242052533455687583408470456777246351373940991167938649918622287155581110341406305810597907652394949725452932644540196717386033343856326842439636494015169683108071704474180263324098237428860298420713806370530174382830074166278088596389365465262310951904179068621538495825518606744291248544264643598861609232267591616744105081063672459883929479917541489210656047658309000535283580178442887834970556564821658398426153701282790358506301581194500005314717211956660963504653629663169317600909151422161777350016194670951484732313117820762723659310195777357570800917693052933295897287722556002632303084313291213815610943872950602044692073929878582280285219149128492927976954755757887971250099449043508459675223308761192703954698515306969138684176275876392309387992070228779825787349399702293033373255326111624684683867180479710051389014559624531424576575277802911535652990649154445722508709119357968595844579443786483280748799719555919040890460887706084397032077231938652197951815584646930333207844689938206272870885613519228467349775929488028579647517791326555106932426788824840800788048921011780809065154794944961821023157902354308486474557456727376165528198992322683541959949044395657888165796610383338496877988342478753665975030531125417811423992436757616229255227149004044313128102540267660057130919440188419443554192249546792569964838021133176933325722666367075795305884530048494597937798034489676988919204914642714093361902325761084179539343373469765853324608500505654790329533456523827995377891626695848711403381940069531178175083314627082280069445285604034531483210279569858988841742703154637083811329387218729993266665078986223074876834907940538676226940001448005181014897723036025872380496550078287910365010012452933156305949771153940092059685861852293739257929480037246827279301351428303355076046106863136766502891252789116676464903715882924261706139229140019387232727259372164669538770249202605324628487390325939420460773481051096817462600685081382130745399012857590122905964289207756016860726847965137340649293702685262323929324390311792195267640059143143988345793857339410798595554837899073138982784060290207446188298324232108887406180977242704830840218320481227279446072173300447997980836364727337876167425317350469293053004851141042088789766025357589451254630369101956683894243642830938044950127311982363096950751119803906446862040419349882048923885932313840567092818391283714421003039426903074508997575487426463898728895797687238616120263363646869169730691863586796711726844202490445724244001766049253076206893936983805632087032493232599774055732249217124882111209009068005130386062158078217798772091752579451512880609085275407833378102485740875151704785659707339793533527655045260743147254741141424529646434625623111943696777541306027494980953873988966338909698806964293425665631976154561708658149654006810137652055291751677331595777171029989644228476683398229675719810756069423493238096247284570253133692404721686692934183639935337824823783229364161899183785838036934100508537223061292652908735097044742524230230310904572718813762949258033957673958056376899625114651532708034452710668347992879150465740933621739368517430014070287555474324078498014314191947358621252151483475479562907385129921657877024413339806505649887310773769274320435649280871005520536992050526174779449338527957188134953309249471890018634547915759101642526677075040200257324400454204979257778503866136631485435401877404164440703122967900239774134045301494294454929449639150849438640730118153080450691230633177572278850645657644124064039705980991105607782276906105118591886760419480690876771694468448023373986968255679725005625971140870807938256229539343522481179268109227656597655254190252155817421773522876131676254823186588390107284310222651441888381082482864511870430076144650623553554981720204568309679953448804874824571902965274568983540083451267788527789224202307621786895716955394070783973393798275630773611025572168423555334604837356670514494933239578025429770911405363201268911995416542719739791298858767805388517080353937378670025452796122350696149525345102734630984678347887479582194353812570052480095220495643230894957103763385312009168499044888892997147482904446939906337827627008500632852685283067834374131011828368876796428359260901411946236931708077366025799134010594590029100724018411888197643741839225816460727189680864692271618651999762313199899520055445836494422613182457237377604168293046356392700434711099828118327650191327931392243480468285260035253681542976790750499511305500340755671264080466675144552098879498372552753811122281918854018172225261695748127170814072730665835106879654918007525588815256823412740342644113731127880913729532675934619327600975448613793828820577375200147691770283231738380017551951294519906574003161950803553494387462765888919337175056971148160902471555624566154870164727175397538588412180689692647834509515141081103874858340816376330024406540702511987364758763369082815238689190123024653061034230082780820440488875630176763710636283215206265270787356612075415966508318973631383378190831476605300647815693417388094339052900404067366563403516146823055121000258607136582691766287857988066557104602575185280245059115530866045618661927290742915471970306668177775134613054232763816536268983311729618414332735715150110214758786044826511757025898036121257507647516053509124967158302707832181764856279951298095407322092469020364494494681472546767192912842785163619122312860673685188047644794706243028880537256445829604194445280196946522654390315230142811984357977672744204881910194842627110577271227713814212540114143811026790111873650573253993562707255163840184398293529107744608477762502899242620234487517464721911062074020905756688180885953048117761009000904622098084051494436694786972740070952719693895979429468855004834968137462245731001863354307156537128719871885208299052795321012533102986893140675218542394588975760946717913394554181021961864566844219738507857720561718262622638087805908478543487813939779508814317276065266157428802832341021117697259866467985064767921874661769357928107583705447697666390969783501729928828011349344899345052832603992126550573894827052310108896724446926774917769287859297099782063851695902173540234817658148006900515785718298969628207913924103671139434538303980192359569593534364054554868724533090830525626091650138757705722034977663106088552407544000482402261739055163217528318057405007102472383201598176229786840163044728718508960852529776835809873226344436655265055476435780901724449681360076591880416049697716514837095229636880152964005104278473069744630186329015643116114803819810984640250711742657381351171959361384661991757894868162750081319036797131281505692047829257535724123899527150993553860116672769441125534064577492602508084920596670983707285989095785528158641005241003160655768987727158063752080769381684818804742126625389833815474319003414547966128206180665895562328800307239839539276672643583970894738717824791656323730549898688270516563284532084722077074392253572760934482278731250788486186550348826383327245766025004761008051549051066089900453676630905678378908676062963564956689926629064001967567975890886518814536333405670483454503352623806975298837434253173951098694482633341411039972177566135824442637333113453275689973198172776557768277768102150805242956372210646001390756232992251884471757613793799016615616201918585341395004203007606570001679676337583470328199501829756437297751072749700103062472729714265637847187642342050275346220932211295719664025511053434421712740773989544885838199885870995165751223337770980205002639504586870557811688120584360950360213959811486982823193128480807693550739060659554392957699920604774002995514445906837510853588909288467447975902723039542860342981933078758279297261442938445945920770493828032795215377662900968032255841618950181993738145590508713198988204110507926164201503690192947755117808235867890036236217911311810905054103983444824473763212633858540920980745348528823242107857512358377134765650467251631320950163362803083392965176380840180317689869966850377333295380210895560177279015741930654875932412344581794092198417259894160824026539430176981401149320380084143433884229828155059827175037345050367162838248559512835980736499627778273624299712074724510152521287333861131946501380600024199159562775228802759540743216079535814595207696461115476778403267379137436526736400598620873617380023242107039622951463737467769839197854236567469774540746133490191558798908800349887597604101840497383329382985528936809800983458833259308098126945826200991899476592333614013547588479660022044373326747222587386778744578537399974182263146510927583641919697262099534782200964755328467643638037334481904000382120403696641747607904099373078522553865879533383544214543715047560572306628480242746210460494259283584646799862349882050359131857536486555853324917553021073104030988763400549883910703419763177224169319838711093832831497003400707012637571020915544566926920636887497932827925467898704107908917326202016494722872368285615528523987154683693891345352522180860814644620026639334820323050462996121996871015900679934648894133989204710870602423045562836349218214145845328567611522384129947566882301799872518563691034687790286675188579272980426477277464523752995068988761602079627604969966279188593097966950595717669952213952648603725347609094531682499372447363675967650124610292199622271651851583753679892189753198109688316371634570379833114482774407291478125235890563429897182076691713148660506528361806674823074864626150348491884555632103037353875414332604708572623958102753714559826808102468112684549886805451431369569707793850551507018548712833653160344342428488286122297674260546468746402424208486301894795870100001656077395420878037668752058356311445493971978497999566495207676385048900742862067560910153350252817948644572979514287785519049311476163274275906798119198304719943620868227297004534950142554868095160292204721992894424865333506399590067175243933379138313645999179620768241283209657815817379219935902283436730976200132879457181390319294965463584760557498418863212913705020341215229471054963357227904953593331632939958865895230154970081870362593926681039672826906879310025251700955016192258559031195432141341887156047766774341793936543733595400755831292337935825278011885544611800088308320237465689676119861670712128651249665532744486233833123789383020015640001717563499391659536622713827804443835459005414547434700495319486321432523753774168139710679581528726343627054702878218319937461050550437234363108848497404000290397610578588953901829234297408675907670550785057882306587397475076318119780591274576589744954401721127064957699156804550106434897181245616711890452492499764180559694496528956666703576670774787557523535611078936999639470441034008309444280028282093887225140631453123996588704564786594997223939366362924688601970435241272115015216113576130881336545359993509819804789250305320510475365719890999033860530369990746390534768376777610728897615972109574820881770728113274080187342274810229854094766209574004009569428281637873361733945139051039770543261047455930611821130936686896649414634270884029347385411315815082877207915901901200860980490023303437720836719387876492216490685579644687324277732048526964745222017401023008851671496672629318082447486935820813385291780951345624510394080373435636144735609723779088961490929684807473645756474974000003172607074536076826343299607023018085438931092882940127178739547117030492157141820580514416528571713767946792734139519593455611175729974964583658408809816721747791588361804954870275930303370538709125721704332983398599630195409866519027112318740284452120537732911266175446450325313118726227419423937699673055305829794439419809364271840030799411213528159711845513654342991935306522890903172821784390997163147246764100249193417222339339996211908863170668930752991881510038798121140552429690243556387203146865166435521057204952308253139651203137778862945584535132811116143093714129394044866335816276051691693051367176273797429675442915486106988862135756094069842486956201835197280294958051168666487283030269174405618012922712771023901480599568638922703998719747892850278095887602091987275173994412734411635238411411749454042807619521700379149791803719242005145314075367253398625768601199697595046045050530990304424188510070752778610411559650120582427222938933706919143703836091527560372510288136584660733168465424362586126948775739644906736349696497718743870224590194902473542382928779442753840193063190183029232738282086566916061965567934516679632354093559802186574463389071336879756755039224326405156889896126254847349841234853539606672166966972443784554926042039409886092668142228058701307997660692808751530178487473119271239560572211637795129260927512545909806746836993877551271515250835606233550627551152145222122873655122192704051784734851476975169673876903434626390435800648989190606130330716691827474804256060621750252987025039164625734689597154133305203589665779943748873674159489529507217952682049389424542297903744402673347687284567332463743927153860485536830716735345697240923669468826035021793256950384310775726087683343761835860583193333579032279943858300412503572832816925020333364607812583976011052923049683887333689469882781447412388234651401788325662947275364448760349679280523135610958814648781265955364290450179016571390421867400154635835555749033113713088712611253948949788365675309051128066015853837486097581339245099289799586468842072419600088659528516781885167234117664617645599465524057233307923017100350519172610969467012540518837067221265359732073143670616330168104261607173984756046185895879223436939876227839409405435160777074099915154529243527773306475405154160967924391484262382635005817760427089125018173415027253146666251250869186080533375298229416565170108665763237689944382814313009990348939738143016524079445259545845917777932005698681104823747780311066271024844000193360994763076071620123746870938127525168550945369003318802029574824870867275630410455309360045082528007261190148354729102594944859312884564089987875988196059500090826477878458141554723630957596711423429760672463446728418504676691150212969662710798648025895502700649694922406842008417455953392610023574295771459218922881804336868306696750642573677327272756269029348614771833633866466255388362468334104424243418452125724034600304174271747532946700897992613671595575363944399066065814639564008893908276367556340791610823033607075524976491514363274787376964714705223502592800567595359739864053491663334594154863565649619530411853457663140826894557619353468798900791877126106592521163330144291946177893290729853684315532017034259494879110447726163969218059293798062293594364250972925107571783860676040635920513071821811432955822535759620730102903531190940069379078607966406217809205328890542963410405211774536689541299283012869931926881059950017487368080536979135570338608011379905649501574912321208337932184161724431304022791014425064995578503265063108270365456191970223538213647911665350212435474197348293217639295211264489719848764538139056605232695026244566807280291922776415188576486908461623641552061611312387530344058915628733374392950929845881831902107917138140414814601385989546828788547128877003923435138785496320979575284948225977531638124833046294876262856325988598209774582609063355099755623082775548522880688598245569194994302842109092812046376694847197273914239780016019960657818025247700364608974767303648690658638758950914670554025903022406640816169552770527439911745198706677588370270225828611933748149972343784499005504248411816837653032975774493149917561369849172709012914838339021075848280385649399803403750878934818988299704229688670279312438403956371254818195089359083231227731322755554200770348707777651190927055840087966015838477445754247419443709232264964181736212829463788490210032152367254051528412349714492464912378237660923672834834253292122942034658363117934368269539263823321471096576859738797309546524869708842521784198142091483301631317090576627958615554438138656970293591455855147440200746204738091345162991491620110975196903823068557686959648550276287289088972664073236050545306031984306916170969199665146808339587276522808244651506233464042937987000335285081577672387119831814902516679571358558725278465055722819284708082420000944030882979485776446708194582800719555259760467344587817664368391203300041033902411134099163635512280116535500134612933746087152719314200270022275049584774149725069904280226030766771674530273632843516871655271969885118509345408511208808035752341558944345440583190284037991610019233632721110628908864520858777958625711466349595289203343744442968843878153338363216809591021416854612354482973978118049159909785461090473735133685663649132513987434379820370489121728269868034786577257524947728339652357659359598356982252887308495040833410604462965459302530156771431113520938031890935723848181898347187843501793237572880817903810964710615064407915521066722009530042204289587483376195815359434977933449506979562135067465847069710930120754661210472663275750358548028667907709799200473732120021491256826494535667919671335100777916015834116933730249905130043116869483634457326687824835887655093262299976697840211412069408046226554302330270894386656332539185656327518981818421904357534950481639105410266321212016188102120892675392875211040303495897949040361371160689400785187851706002446955125473837337914261317116478969367356505672123472386453209927211906051763064442505323220876574583394205891810884164675249871085794686172573051283162812792213352771160555354908103405873828940532205559652890309513901596983931457328646858112335245348530505597188585824206938337162012714381703291101759074997238231835205367995456939261941006260303392046797810836229325765393767631041867105005762193814121559213652780165134797965106630842430376881278837159836539406942739387309147701697500922340048681502309417358747887679983853204297304108179546331919521162691761900950911900910647215187306045505686717012128338466352409886643535325190649562217554568708685118800960802708664845243606047871652793684231850984735815838266045681409620587300222910314941111046599937539748734903410772850099248262845152159051953245443737805750229799008257608614411157549622713959481915270835304918290930496674800362072515296231163313635383099880827194133870094668021145117269669039678329068503821230626878767238597352046649933116479552227144727268134160811290539828571121223295687208444848537090596653195546321095853594470497358166350229721938047661094041798874419337926564619333339255397715876373225235861934326242249043189690872860254230536974170758720595652094144600866111591394635655711282422231927982275438974677961203477501999059181897817807646112171300050718897467875791219521056637786625340619975933089989177381614617053963357169403655296013629260689709408224299810463049574598515920605038455125502075032353642140674821045450396218291472717206451965853551478552187243244878720365941034182901367568916124949822558040199406712101186041259690496168933462234868306691638850248112411254407716517132730064111227470502837515643160781424757994823780576935497146577284215927314867085136714031601895441815984816043988224058880563829950520691526990631839463529012030902674276260453536817978439377544924062238875899586089250839436075696079400279878521304276533924478756191871821390670053807602399056821133285011289353176564991646854339152551703411668576155272796762080180710027819184920906012743151652449416906666929796395083357778344500876942388667883817160619764743806592316058817619919324271784906193716472291424600582376062979806776109728055051704221737627179216151823542828334069620162174058467418308533624139605297715328324977553784328556967765533717259764083768583491936602263514523340740682673703464459205357772084252370328153076093486030839717763818062521734563466899187873646057462640181655521655688259630116222799074733942750062008201693070612573917905849246415349252731660417956328670563560329046970882574873283612785977147130408588851052044917933300657066311956476777043846346214991115407796265038729267986840276629051907067477753088761369505663783131772646046235793465227853424447597026047696043184460841680634484177200283011810450419369876524440628099449092877224561265348845086031102033612127809375507502989095500843491137710485828468159334232793024519388859168560007499379008325161871067717774830496119909084051767640195464358748651702330056880547585651532556435653106730817300058170875548509486147476257662199115175038130777593232531123522117568577080877874682473565779563453197142883779396223764715110876720062852087021904789428319762865028899300555629428249049253740352593113707607860720887751730125988172347551592410379681324563715400685403834377708023268886765010431340799279478418175785765421250481767369968351066073010614104644038037583101743055287577529815030901689288983056643039678819960554038348555719309951619451303886724737917695868576820488300793600647434549625202405904300657287797362091245014061982786471859773414616679342973872594361358350948607808545909878061011214997594676245943498182068698907027061266004936104281900555196159061285019638644980898685500856093940054069345520245638389519760227875547847545199112566962004667910086686845842456785205040774767227703341038140109034630562366185321635187125647593569482216648726933900340770559605981427849660167682083173850798875967314407299678524126501246494159273584001727444245027364629473721454482232936347946069182997328593315718964086754602403412299510065081153264964797170284135864942980664561749900771921615965617115647562115160943629431261237876958064764349657895789235527819479529178723478372604740431558015030040640473476685251499765507273636492826638990560593032447040530451451396854656307853886202770982178078152551102911852606686378721126597261744607797306328901867496495911698576460296756584009849592309033139900637818869966741857750814514228846594408953390514470791816321757841004961171424484008341611401261234291499760832702337124708897481497424763977842910359018951743253255648746247920267874542284801415827181415223088841932627023442513427466299430884463586693699428843398863717483060808427245788431581408499182741275405711552666288720287538561493459624519848091360879378489198760364643614036806764797610626355854404393927751568458492642233934081471560821534118075573830134322023191070218766654275980558548476835305409584808965933977511320259081938710325504987025246386784312363229016012434589546571153178323689352073935059681869248576008215235580978513299223481462154386385391826887834726835272849675409612489033946966511123991447295339762207540432964922568695905910968374168297027612268189273531921364397300682209255818711396793028682880837226610224765370799009289751531041183592246293620448991142599254413851650406073991458509258153981215025577145227982567339075569299715526551794913404470458384028799624429792073060813143158895599834351096385694325159990041796189874831709515895430379255564346186111854037819672115256333527409974119560993937228852897578651377055995942754171288414642618995999207365529501762918576993055211927801641806622213194638805941315167914027154580319723168069088707496119938675400505462952544840551440587768196638994625652752048026587582560295999680036713953509488158341803463615054676447819242010035734385027773819820084241208696397010594477802467801303345606891676896267512975377869569091900725166801057317660402313107542578091401535037939186522428296501718064320365144697662654447448595661474831113132011754715262481213371778153998768353328577654895758995583509043515117602228841068771822276219732642463986515091151470282016033992857294333528016446686450348388308210346011497470874513043161116494657248902567291704728241794157983436062360295225117837056044895690812056395066229272385650014620233845080130266264686094275922537336342217775308781507580718952376934771392238927529009946620527740103815953874434060181119993189998657788020359849096706277452168345142392591509372705734113866641372732724114843912368495788447308555328431859721771027621538076633697292549180310901716729310712827939940670639747916558184696551649268276585584355327345336731700370068618084746948644724980848998136392832111804041083274744285897350118622160533199683741166610904351802790562586827171654424851535992650177592963471752587294986132747334901153832895694015397906221854431682647456452650839246169292662052722175742707573238682657683049017599013763323308770201680184944498139938924690566674974572206821179663026779971314684710484198798401888840977435389327237827772806076950932634478102147558400000847109889321270178160858092413951100983701002999012102788476904029247877963596083387881809325283414305724158684974373795480442723656003571545642981428972742440358772595927950759236286555286075640342005474639783481867760669123727456396477622820649633198147538809227224857057528159263570391694645183472740013467733387824546051567412664492298883652960204322486837813672092471054445436875985869461527236694102631225413707171692296846283193696285651055769768223470857493293697914494098332461438710017007182737425144957859575800556647005427201252218187962950632805884622218435908574144709217420442999510711662561492283355421001774169990155336142277902949399233050520484412150014758317175049150334815281739495923958576322455773166607432500671093134324296693765234394907327474975760306656289705403874956998650452087943851759988560579350591495943065094670955267412917233330673037023453310564880828473757885374393975843176114889744378365432348790683614396965824628681691766610270118437849338134943286180765942325545146535112207188463847489393768820366152059282870380233373037560150590979080204116026979249020081968092192696376591942793468224621394361459813693677992772088926465413738732375292340700779928202099375669405552576215764245967775752319263915385701149284569359556198124729829143433560197794693999919294887640959561918314956403393389753913183074290044013288907786126351141919841701241860524024206203035186596170228780109481460425964696094873186584328874044563941307720251851021384688845168773996738869617690828343947975835553424325181988017116682061427459144382316551805717118093431238425616198232482063082132511432155261888436122844684242729841694841028836315385666335312963052397031803383862097572049998320077222321785497430915900513964115692627040681749735219148849436799010335343975892247441414985274245666108649797172436549406477163735581559058019789164803069499948620167190938610435473351799214049930757054992908616384628908467802689097990154611919911928296456695964734148705358082975108778554751713135079027858265495202454700557971040531650352602044643961075282092512676407931491318106044540600256609393488981870389729217395797007810321399835917246771975468501945995273374980155503770025786751399873849049185576738429188205033653182506996611395754856511950046659487922133271789312270324257065669681941378397309322208393783536088177243073488121156723357287485477393445238236047658320313594485886482499011588908102572941372845837865749410136612818082869483846962031526525490505750028123668160204744546094064975616231082402329901971761022751239235496400346275382626499138366505403584389177331822054176908918082587261715157710222454907100877612178943254004466888170265366295076715724950055376290784495044229020770217829204719486816918106630745645701267557209469135427721345135158288381015174843577802901676333780041862986364853718001873043911949479208223318857706193170787386743737686280128387643276517441880133153476231365796371180194043640653380890253030700350015408843544332347770704707585077203119364396045147039422795217029580934706572787367404533413351820515464520411776589177050109688620336747477343816227343598806070768867398355435068274110929093254670478409541038698753361075670551095236341958583851035299151503277571436513670293821472238829974714074711756007303985065700024900831050430367961114613714515386229876445117924437376008165814309103541845238016270263918203087073212530488028695385447578107332876671195846795097419119371130764395994298692968144201146593979718954682936129308076702626216599514650250299256886575420240257712706385584104710878195514008719414095205960706783763277197738600050424450830591675223902201900845430566271885858638100109280502319135776044481630450924077926985037774736814110439322524513950463577379880973034453133939227486170573990461006640751128894655846430558852816386760624209949087307907641590769690099322746347724679991454533678399606380945207068654271648993069520470826629219462477526294975566833203162704438572290477933134413627010088161366225099759555312531748425352436047384775969539064740285386504183562813678149520433301962186197720526122142329776694811393242199536104269090394573674810445496848206803358548270190915217791322187793076489553592534655294174907559135768263810003689589792263359166270276685867333829800759644321616924370377388543114514591720808239051711289189356351497724742144781800497888706714570123352875977662606705256767298802555962196922248974370402494184203328497348339029845814160822351893818297621421109625846504747143087978769810715870100744155668786391516033122715642672008686328096275406244691857202414782401100932198428643789864204496029975600121207088454278078297580315726662806397854035652763659170576774087930487055768524027889035144329971021887778276356709059532200457534837017755956000381854413565711848844031972711729281962480939142756584775408643715153862602488584368754950728293254029175893433126993082216697733120032385119292292888263759716219460568513528255809302441745270205140601913478362819916792810438144091423006689266347466254175455295818147644247950543223877954003951641226921139878237217673871408112597626063880238523313063363975117398484050252555223131937737958621529530675865832465707049897027127834546843411342331594274305599965182859157686623615635382843870096016369374630828567230005403617579684112184058650794454962284218903881721549392099732257167870430363597760910993953266616002130775116007888104274687302503569186374500718537053827078585552031875171243297634758740854852756528728525663433673514329486280176976619017367188021996237854669667079455467137065792545730025476864191184551791930049022031964978073876022838711480302156689562901219091971585175634726369331218660027234141459121973897387454699582855535823886780900884384839532664612431315146979837928198617867117335386811866337845946210065412656886632197114066077032517994550482090415021370099140121022683641040861105893767350809041348506645442155397666432863398493195986138981150336524961631460281077981713094202630682810220648241394917554760430662117893219805139247696942878220391102348157308511088057043245305565289956637042396222282625430967805679006081543935664868160940735045248649509982429483430752693762403396839007538053598474524067544833869009356196104614859577344409705653142982599305303382164904682744079734634064761448851767898086446687613895919750636240038667697473925123811081524293131059496007522998293591663972029120503296771694640910327953881819087438868963389892132398786071687322254613195043952010923584552028068091036004045424311639768854613301013457065159133175803174168852824780651423946927492209988994527359495931771941104590147427840174288071897629508224891074703907781253813060580239842399449583947426461242900176618993979323733196717326029463778715659762379916014512771969233259734442391586480978745951233146099962991735762252290749883441622588643985306131182708684356732261970732326160019734897934309369099691828957580816166075880878665047889164122212718410279614904330169922392293959677650522754197553662450931768400481319102470913946927536996369121725872087008162621044161928479200811794955196701807186114199953189897365439877236484450486397673280103147489827136444495501984778299259815989310367410368816045279376219635870187973481251099707149090877650865175835251828981452191840779628860971540905444477492892114809343299151754162687326329483381682305889520924126683434012203586997242166323575750908529260737220417728389559257706770682893239581913359764374496598394071788923955180061837165722328062339023529604981162407397958950236521103241770141066444132708663569419638291563394995975769838186217132098168833713225037143164668437031624240588917144870450827337338892275546629865508567132156309891501490666790215429219609157905735145767437503219978033908668771808352311581158673737561891854403631211319991921877462773679002845724360408088106765780492244751040920364848420511690100200697448571653195740001033875778349858834543293854944285208139956081447528558271548504315235611910597959349484176771892360047164554126733824556986098490071350547229773413731995128236215601170106679744561632259147992890854146492682117497662489789179504212576325361066934766701254324609117791236583268055929829473875447783191957874219491462939361637537315299040145268158343308702162677539614494970320221961657253240088093876377115124536682005413685470165125851705121741087565220524465034040442022823207160668414091572489143756382178605564082920868324039856417107267048305730675332355343729075730454803081181279789535491271226298824825616434554725572568447397561490021051309468711721904564427713138323298020449584858872374427855899572064393920774376317523828219144705757344218740968162204516216273759551727409880805551877024227627205675077928165655659715316699277253322876715356145526152242297358436691291071983336261908330869080422302903908792760004514960638146335653526375938793758704240984645251740698902989676136273202884701855273480114114011639336954317412960158783521310663038117577228261776787126697731940642492539983694403620675875608705573191836518628599068784499746182456959596104307661775239082318794989532842012412092654074808561417474053563210841337018454808876150578614660879397493765412953681592044069470676097258367684970585601397293232469264278049358176026297403101180052756255361022252860748606981814579166624278217021271018345911921218074481289213930981188791056773925251640818745446426869036181821494667572780616166738039674530692735886809306258687366205283615089122690039920841988461611856911399064832055911598559546473989443969596930840817562716969107310606181200764898965644338151523154847611503169753544195337701229288720287287295160352870417654388096264610687345738538664108114816453046937670735730930971565705697415296347526302395742832062698888925905323410836178487140899048794970411551563389054956176611641828984081400611193279187887767719721066623776938606134732941823570053375423984362370088816643776641450195025603634585828311650594794692153574135637495162185310090528435567233684991242343960696293535841047714094778242239110654541358207033036513748670609683658834171694390303866769547269398997632951064857389321543514208603404173707120854570602381680805033958610634250908507021511206219086508971621995726323461534200329589867326958915369401489181422712270850913101873589712330514028844836240823756034369225026414198171310657520028113828510927825187318331161174683601052803329107413671698173065046677401189946440223966032813667577683095082394577887402882988641122304108702753437363798701734215515281000518479485537461300473462027795426008908984111600952447646880411804505724727100940766643897017836269747483693871493576308181336190853233273618974766645144503291260820811357348424943488940352371521297906926795427154643582406036899149403615247349020895016439289244309973964495902708479522360088245902756362212772752014669953077398739308929950498940554395861519563770294793689181080311694064426391972863136370003140422701662764623242894050130146147098087768857164386843916616215128121941883440507565907131056899817766146901370816467520380468838250176112626357839490553199266122631363993643042404184509028470111467674108141556172976774197656559346241744220750812253463296453443505291307747840767320394700825201245016237353988938604032578684940626337486298079063624621654217398067086371650227122487497457352788042163883477393544581855595185330196695401165096630974521338183426745344863794153812565826260034522036323483692509375210409349659745103233794148377359847083298657140857339339266637127347773075415448806951615548832485544213262544753005590188994091255246487208205458387949194530336579324412912059579304984304433950452775846647244029686662636806225412717500161819558527153883273178958416439516773937936787220920485761880007466943849237029171311295441876637078121441835770132679494501935770516273856644250102545841396430410081808686047756270991963179097974847285321607069072021394478339555667846301189004309102440588965419304986392075146317084071899096589432791514087330547586327479108075319421001371023896032020656188110572893316010142607123358230964076608747031675421351957062292629354836546571682692479269323977508065450916077783541996402220722738493909321409002927559929472970277942266921808481091376226168809701972316252555922515290694791358395542426418970173269611199524971539217236615611915007758472705376091098451802444869773547863016400631342883172141966805937617885358464796442456804740238212499882579165169607680287570756865556270150979766542291624049254704937206196220644148136757280543288729762713894057667211013539932227549805760695257818342550551548263665821858720741609742817974756951084321952292149491610613093057530938099657233093234897217671582029521073383605237992766606992333657307175369909899588942646377459675208102703507452235794220878247344307921259289344253561903985138347899587045965255496565662374798037340714965202660932633290131322418274401224308498152391380403006617449343779319781080886074284070164785062012474295023956720872874630177908592715071798403850420790240709633623870434621765453846779903513212029999549475443968562805175022925755333606160684810760874781685023697194676659690797426815263178031863282099838642883618687130039643809594223269779509308033175765253685353744725002144877798633657751894633319490011235585215910310478854810244743870296432196614668874307167181613140864003581740478683573591511274369527785289611875723990385026460638214009171737342996025946007010585262971176542692523223209777580148514400874155016291288202313334789495188997072562430301155968512106938970359232935860532432487464077542750191908489077328921848140705996914608769679058195612755083028154344512817873233127639178244340913279137620205621729201519497287639614228319679150293040302449713088582909191012003961985160083614409922900255779039829555848108918935873037606690024722845081271135690950153082431114647696943977642887272203117267153946807426458060968053577096359885331178781973688505550313704225813284956222177149379140191404983332918628169417314272681057456931526150607752381247041416163349372855708997972406703988335764800917231960418657237401547359960491129262260288460646634163632644207923677823347559306752302170071980641732200009460332464259553095691930528923034791490844480577699598370057485212238767307197799294465703093179533790027761638690482401123487396509322598219105845822366712785728481376204223701003207213903568741464706032065319061740684212033880370162465383835775644358395225145799195909918861981806530454014186973744604894539610924807409590157883756801680087998659251817239874492106728596798171985626234920526685668874458647954166321759442635658863755312990824610871726029815344586619349129226445628740646577268321421468344668449215647178128119357686158923093275575699028727985347241076041207041725999622882127193201326567621969029113245703448006959501485937023794083252127064465778255833378659619308597939446738714330230571175860879442384611840175311221379275417360039365277819019061876503842111121451759894584156018388097442427631002662149872959039841719049545713273114681780411307029635474897234495753647947469164472347849340121781213025846850324885483525487950634421324541451024917300211488551205557823591870677342598229434997318792263841797783679754244130581313210542002627809928998616390040573306531841298280068136646907970378010617578967232860763479183175380799548262736888893796870518903378635937775914282851272941565888400179590382611513157334880876900175108908874363784980407340539926389783367275423434582497968317426529227004693106702791674779212344093698838406341810668257911550027281153454426304732902638343415759114744109800717177185813208809338551238372942371031376303707567813496490514422340048670537661001258484036976068248014508026190646355768116228969740588888253402835194778504263811413428965375222999319143578549971669468798559258111659163013479487803367612015756871402365477227903431352456501292684264466304521493939692612365162378534764317151076088474005819787489076463641668135524996499725632088667307852617738202327112181512815014443479618738321558472033033242301012573076762155906881957575446628378185904893180940863230764309846390312226380642380247020763763107477543200059429315867624674640412451816280224828312705598343358494839727165431612739106114920537757475259374025870487775525490910623478538863891436423079196440614862301041659165925637098082595453444848720988044451137049530751007557891853905421943014328546769171450621844662042829240985047458350476101938800185197090437521626627150887545675020253068468575470715054872002901597737699054304294101157200176320548443172624681822719297899017102275367601339948306673183022566033615320803848747268970294177050506601794403110829471728065040515578102744293594339835938167358697107710448565010236651882413384017603475389733437008177745105941897374638319874582564932906350294306300164001916257434477371782231386763664486145999841854991138733090357579105158389969425035254215065499284162955501048823482960875135310514666947289527588471819684601956058255678187624821274347847871387295593853849679795032975952262300170340280645113024691590492217890825591066181099095970887006453213137719744509976480304334954385363088890653591528755635832193114391188632670492949358096486296924740010684188240666764367706459590805380377065576926697564347711551126986945072182273138086814724188414460818637830330859097955670663291114840323510910663027133525093121926258382346117479797826159552808907520900125219624919789490565783783212392666608463041954211406834112871205019366587627198856241314558239614464535650091977667326811281252619504858373066803255651122556033260165922753182470029843987402790790356015090923279536615506796856117091863473374070728867751147413338553030824020798289508236977234689912883586505215648733602942407000716830805695197179358336739137543840370658326069572475055438622242700302132337350879848208345541336246544262894450652297387696934878603609268287338734560308101017208266150460085649537836901110321304295993404403577992844277222284368026360869778751701867104652814662089273216363331778911489211910488714009847917394349859231173275733033525564932640963013922626694590969559010826450708217843403049032112953132271150386825966192802447650206769079942690981481615118038384628623091186477320071087367446344826348621281837022290693294038308341239654094761921079283325294981480722266160837592482851340467023096586971334850398695587974187095771708005700498238483167094692697877011500601015962722377957043252105989590486977184391226751467787913821994109740439032606115257005729929368766654105217618477070555282887858964786711403246340823306809686134191652744632090256765534492383554292839293596620299268006567783506974205137359266273651216245123930331134352087657863623840620901474545708502248255803650513205000609556954987182935592357372534773487622833447093447130910452753968733998573104439008672309015347297912207287931369946956979776866918543142984374140861069162598967121994002942263970037464397345782618244682293911378644222162811123692895971611656234259336798600523749813291119297647971422177981195198368291972669978853628434863188721959800987206062592909968108683521514184437128355613512237702454222387154614842361839561662567371382894763791403260082290080562359936333032263930787740651580882008765010147543493660918416134094815107135037768076896432022967698040976719523813524597183410996321262291258437682081510130734487628781830711724954989141402904711347907582659144302241850156297968595068810972403202134540085666752337656629573022364367504809921602488413934079228924162141749518134214985640294516118791866733441781908279378637580472513175329176184236510622542238220140599224733362037700702644841219994498801983433865780119292097908848716449663071298554857678197733483732058282421746774744007409607439636508189277875977719605223645808532138407460447594747541519420446583519139525121642817817020753826981730688030796836535916061948580903736607303600150234081699594460309906240897588426056201182413991286627958085740242870984916099091797572469529475728246041099921026513313437959420394088825224696858519241275205126375940956043862015563800231359201436985420634999249861486354501723591438236152820877239248470542468100734107112735143412175803751670453287804644070550094681722596152288637702494943109413793765463784176378743875898596801561030182317612737220550952360869845586060442182218760547814421090670425130984936594435546311529300951988187918230796352483874342133716303957747113783496587014464159307381108790306899544081067732981388699056945335107291370321530172959196931283046488924598254518524398493671506017224863030282831247912546694340523817519192440994011827819165844812152397862584974056702365785528584546795287053560930391766870927259003606544565018385035694847875540678274375580034883353957914068132126050358026494635188944648965770516344222620592386702071652734357505498353781350017461413931569094663777868371263220016216656360421264878488418607059896869245560138748927380931601129987733641400557788076529207946923541599989082400196479794312438110893374756154039892189414184199612073131750492358156047456232231744170251202973396222754561514802747934297513635778777352950991775155540023313184448108740012470290391364479129196213268922344945768477641662658397460794089147464950549918637898221949794275605190902055339349588858921969317798619084807885753637913053821230844892001548041254868868782068250582063818492107402893988867432770717231157670546832094989435087632175138146319802543580565240443309217514838838778705117402411173371180890825180687354749051391912531906402534880153778773644779460321735762279620406148637591986274710768841197112874776004415884262323368827320288378383165828649634136286049991262999177473818519087248173729854738975655382058335427715652762021844912671741451972606687860976944369584397972862808031789008902619045631858626416291732800298536975370504079552397365283410930690139416956006404734523937859967962408864278374475081568076324928179877848192172669663115042213737330347237532555845785233036913142818081721806721700075121328815332005612742273821568344433266031263225745436459772286064262924309118462521774540093653367513257050508322888392775215073890760096387740125416100108413517672819104944976264403986359117358688374955924944364039268277199895417213165419734950529968077790286325921846248294114568964651791483242597930997094803684553195251837324756751540302353743093567595284859759993588849211567205796303072155966611417147932184219653611320726875068193891326418294304324159009059130887723945405086952029629886502614608367627696713750177138143062041173471614385387470433610955165104304482902691136091640644597251817286185059857493302698492600945255559589854212602846570567361025786071358336662982062589766440827956605372517056562225106926966439226628577086472437667403954488549964536986463053651811540438834479088556770716947443944305448948776122327833473630398433427116382117502780106736614161995742542188142947835323031595225220749184741795818208096975511714526205562731588904065080640587070921768184000568805583029138797309268770267751189954189699250000440535364345713522244674807070661317258650531856237397606371230747318792513280472036925860966376698039265392197251576721726762196372655728434112843904763654449998702278276126437778731538803598107532533639185606668126005848912529132222188405464648632404946713899039452134539016291201853094129710323792176818873031601652941555810091111736720426298962432192415047287236033367440225997497763951166407268706832898765192081148416184950834413574770800461048463632674816571355057419548761284383426674800899393575310048445801602474408647877033749144783232888302905370458707563823528118626718664631423093885116731274839647179778249737325524184617960923339060666695511347310174343623248334047439560028353156397994270601344421854178285775947561924167006580744577889986872060269338104050573085311384482984719468131850147515264505979125854039336893405446548647961549331899855792351579935038811139616847046962424224464037670095008495297385235729254270487155872449705576893021069168321996048164065445843194389710187934204564046840429455355423416221482971663988767833038012893656049078625189083630483578604151478812313205871084189008674490225482616708746972129567718867465968734942441723515588139113701748252952619549508211335949088539444890621376409088742800684562348234482062402718825118007581420128363373483814851261736982321581011964333724448745178594849845482041544826975518018959485786366528974649911658582628620563166238340531150623328424271163934083794969492137580685425981917261949931070887486139942070409899564132567429699365126531430430795262983368515846792471604714934765287810843698272838615546743849268547827260288882889864817820187856348095981291711049909842529207279568770075343019241158643492583978665616035058959086229944965517511942173012166948935754430875194979474044924688488746346460770939428609000331528286021876817060097144252272505132666444513015177919429674281419148499478132021961870372315396531280398874776659172182500439973311747424933972721052127491599400762161035724383060762830489499164779909064524659340334887840494619293664021952247389513712396791839129477028956127391222542967294350950039255821080102434805538736179343650516595539137576315400579988089821847240778376402983610484488746391834625709959036024916311386177774693865617083305394209825031997337897709805848869604366428018155171225643841039219437100983243961296434999821036930407556731070227136457966271835281662438329030071475533116880402077074271265915693107626419928722537359612759636945516386272714475595637496900889718073169737865832070017083802471635677886546771800072895848179926320428624465871409618865221526560854925343554080865182301209537604139264654842245117404318988677819928653644330552179512807109609499238118027918900712892851587006185824276169037901721181387206942591663302021769910710852404617539509105048890365790362607839031719907196013405808686252702326973943087680734061187718147205067781859290006934805068244743991513537214289627086924989022633178993976525717465646960592543371092377831684906758795364923862848526618171927507483262362282515181261287892835686540345131745847867090312569958578068942262772021803254645964888265261848745583098244432656997518256995957052407912796166410118468492665430072372677374920944312522973261655577150381917463282715011148412782862860158488681049176841811331599438858026997166196486006468168844608448333304368039866968794816096266721125528668189128177040863518659527055090430370865519364382807628847945505484429997017749668066863072099297127015129679222601268594540554440534549755590773112140997502900602379918493244865043696945807802490222700355630080667550740017983647293526474427317722054426848417896426251641127396657064756113272741386145762690159498648560369157877473079517295805236476592516305422005363272088758981924535839558642218874003731339060424550516835986795656073919307930326503633403553448566143846570502963198356691247492274358449625769140693448441282163104288584472902702347265666816773811222788373783385770180886104211754410956445169189825114449141962225996208952466413724790735268864884652439934917277359890100030806783954610545277257955517659029214410987992667368496310415616721854098841498172058887761810468244306045656878315794083938613528991467249510940143429889605624497976144872816744471898167845157974847809097237240091037332377152716958911203849481114161787549672783471540555208657176853929825334843829405511142821955698518870191784002020265595953917030677715223513849621772407094402316299579237361251853195208426458337952410109314027896171116491996892173688361178041215853076048272945921076358606270464477174851294293142399272633917507841762872888452625572649762122940510396345349512634491135276572954181781387076595814190677810592194462805964356366727836077569785753353208861340129176782168196929209666425108809020485102404886731866134325640528468025012309651685873913671389122984642762714076678704090599399366817310193850284787307097397579518926891774379567047969480908181638896571154665262818158023721894335674366251371011951813642508919067033559735347154618478909429561922536332956252235689376691917275281168944724218529938813580618186394714716253039829425427463739223316155745310642991957678642123918065466385865838911021400890120099241668547705426439574784281651644407311160566858709746673283206232640745219557442302401864183189897305882282453574834035741344370093795696184667449073854029240671860793452176758830162063436745961982290297666401372401802367879640961678706172612223552756228042822230248147086439789743205202558946989641393576260291885983848120899892218118852913533053481223730891210009919865854679238362254797908416665765351730987535519271628944765262109024955215351694780973568630569342986386758764827439808379560497050001123194695927039470591417316172033982092669979523607292417468570378534533217281795753001913509267686833212141578095021555167974607386924877069956890411152895997961423172848343980775323881569756554841253218995221211649290947872323866944567224313914246062219685502197762152284164953298455909329452873306507847532894965903160241767058104559653257602355600895439441703158927082903695825971705070656208263779394044463535272874115417510021420526963872651398582097765493635571558945850090676437220993348596602133250178484399699811362189809302121437732322255075126993563873277989517994914440627727214586385116372929797610313601702635402404732651566714321167763284187002436742696011237214533120183733786977612945713784102141803824991297631976262913114930166915923697606594786796402203449270921797060415938112054656706653351913991194527261670644001559768772923009733970766604480674761992917229113912555423762423565211486432877113306286210948939814896621702678890882588604100917284320617404847789721116360669963949795293740905179803322298777921271790566044151768070112925561866043905011316182779896107315691708454893745172117748405838331939557672828217619837072986122403695430971221418924678408189874027892082503178165496566437622830569752098103830483687487987915158208409517068661413037565297942853717748916553839192409790326512696797810410818064793695664950816144119759713374699914514406513358722326697771208842035769067828932559411842184068676652064192537700076740466428737689016113812581154622578449015734679817839914922218641279192618736905674321825945847884724398756446814266314365673612383871754099009309635738884600716620740923661083626678606772972466735785620890851568130937156529177738241730171426533035105689107857086926597794889045521811411727495993607801327140177716074209677295185169479337734978243456300701700331363442272304365276505643604172470587004385838772667248605674172264411386746131704174470157259745946996500077281751439748710355121337433607772808829646635679894548099630804937235604026979995282024929607422612832817385310764131016078702421693400332666958195702061044130391531319211031035549417032369773663172738518785518093696207991918869672950586559725832083073176122688093520407071604898024721153059736945442557079495381962625040865959636013841240152011268358670103430881984196736300149799661625288449769943851448442234005816089609591953090425171950871600434642381998921589072968984091022868912564799073211216064406045539275886323634566915559043912604447966252609465203052932303414767058775364701813570849915711756494075963084411386331026954491348604274989749797707028470447845476122161431700958584924753128428973743526225355909824881488569213210090672439291730144993295752765248521542635420477395178840346090053107363053838153693085316699826009727766363959330890389094216025059649365500817367180887883131263959910884315079200176388621021178527779281588295299452100454899775229702049545590570161440187819013969342386607939841674682209979928330454161876464479737337655620186610083235507063866067952590893979447722463158552348347504323584551569535806820794788544440962729388972831511988830157444219743825694727366487554685300844415508451267211199807253273460914522563908053514370787573925350543855834524314897072087466001500866471977931742303743417956500561656723810329295140369312791535905239441327805519704022969285493838669747825263963742223406850722206884636694578718706614579073907678289540059644027214706834125762979546333152094177598149299678818389342642975355932202706718661833792834438384665478359307003552827089445041555245754730636414631843436749061910664676012024146551612941844184600539816134295502334514776289161709531273272990755034322812024645447903302159602749861529566586170238131335709174059101932827922997381280605901804599862453722835994888769392802786588073748982700949656241250285919640739500758622376810491611078201007409790379723318562579145939338999936627234053124111020017574247557797811657187591806531804662892843041731008800165288490910091429125523077611599437317432510081064938080504296368494142608407337207380326323673817268872824978498054717924720635203011721870226397200669417890889258937067161693469120841713103304182840297570862538740104665478372176971459002446763959442812233054847705439121293618060624628980701806853884067484155899446481296797167849210111093338603082528636932958057463363673421271398831780123832071869539956340340492313043388620266273371722363897847988473350507971141294450474239914936920548666062482385736162509198816483473751150766491267232328527218583608830805660728687812700515465806784171289986746922146334514620634336403671283125269542785280057766029158754212308586969757181861258899247885337910277657391120506752493746009080675857594352582649577625109176587955726700490233488681921083102367364534909445712704064397901231472040338241104636910963292533710225045290662579188795630603085481169733310947585410191241657954375440506659919352034652117782487613727332109586717598863568325904245009653938682960125482990134254447742280700751630153701827950968063653521851008550263994346677560844798143023389926884024528925013214911042886193761305956972141320882552964318550727707995965653123551077673919868243481221005132217109230701735998198022932432014725849720344422067238838288981224727272343903894189680458520854183976147243834119090689503404251357758898921940730427065585320637424958305046221092449355342476962471903200859807956630148106770264418704094576474906216071568945884255578459347788827225678757058442265726414380314766117457863787912653171703021500244241904769181955535200975188131376216906211333916432856883887175497431011819273003025376535947182922746248714075447038469276358119582269890985686586949083043919824821710899314034807649002899455376357095097461349321996611651093065906888238053319051400766641749935342377490686057520182261793159925734590313718888896353678762913944584090769624704191539554681279229353219714930117395585670169952429185755428065254838909868849350979970536611511634926599264479763467044493687425152710952726882927068700403132697708570180378223543035525925882929562265312694994847782407556892889417177896382737707495681141526006303270617113207591738599582799834557126492907621702360957351754025526580687833088294615791581192358487192169009176846909048327064720522803478139020528252222007073303220425171151522014726097873743461891624711536698786659437856202462452364134536500088246592400659047983759858782009041391931796558430940296912027866015352309010370573924446501628964886773698425813626488664783051500355305959534863274472562348883683296861593692137877287569101606221490886317670754584010114649190370355005390433332546875680409678182981637946955418323033894719679590585430101386497358798043743199265461120786510526691531673844985107241015990688921733099544475692326065556437444187713257411282650920888734398428894754893007099921953962357206321287186275884767030106541539139759280278055552915555254036837409730808647893188686128021248480326446819422863426631601204644221095407594158593313016546261342578806319345079936541017328505254547887538724494672897929416498097496874895943859702453648183688842273186871969727192713891294924896173380199136977131833428350333637527156380468895687809159779676981913458776193460725721360673269456756502815108819762743595708545008428241332583158412272351989866180182741944018264216595123391969941528437480748480261117685649272264003350457468323695987455246820014794000683922479883256578580244447750145884533666925399698222563804602589563090421403599916131044819705998548260153439512734561500703982139661722676475291561946916821504397366122127094569760134554268415867987506690449288919843512281420284378902288302420732639974638346227458827486089277702946348399607520557627862420173704259325206893686746603029344214598124007150236782686835440577228967024734384709613989393261555760140385918992867834480500127947174420819017027598801718428237263061975839948024671485778514603837138271588598463762794627055449438423422563530209912106357267560858631999883371489155477474430275017433687570853133800690937567760171826985465720827916805261116922681749481583603333522364579849353586259197279731598687648789673776686831038732281940063219563830589741944908764590920837099269610358090679299996940209745012600118787319860898311142277164905276149463821676721052908415856763165748802066597040595227029323682862851908922360366888477323541937538254698012603223855468132393817008901934312756261983666226639997887772751753382451929661521948349700170198142820868413406257910482514164161912074457278202568015527615897532067072799551864159729337833609296705701951529035744877832976102960451215697836770574101068428882641312620745637803559492927746620780894583903960422476942983544044232670725711985815642879210585353709785179073724629159670408398542355606309047129775649780840407996783319255520474870595033555698070587160501519286247090754531794314438746069723368716351403566449887664638008477884604363409048775463441588945620019896847908423992573273138426397665358110890497110977639982557408060571585840475188414808710221053231884683620410889949138728135822533502650725187063712861961484752770944012646641989161881497617248136221014112621156674931126615257406211668031594769496766724342164348532527028130261732348706520744856346287520230103976044920155081587813197769202866878343940049947079069047636694305669995111264200358052906933420932482658779404696071677418942583589010960470337284803957955802695282560864051422016661856733508187921709372661541990089489419187478563228300390313521727836088271509872537478356822589900949432724527464217930670546186457393179257775296423187111278230623237391263596470577029760612394317732993357108193262755223664096704368842876445314537536727338286167522139371107971150572464119041410084791915291731361688416203690808143762379654321979871882808783769666530187501420349196317633307526120400517478125402122655886882568966587090579483303505255182890896455187601678553804796749911139666408639065514866996563187754529739004541479532182920028343281596361982543841336183959857021356419995199250127330435942840123668440745007764103483545495749773043077878231362551615504370956099432881791802675382416378419478649201529535885461915550356343618924057470340211683349233166377506717208877580081399694802319803492221742857124127253544029229608359651170061419186783619771492221191174477830493886238685894324955691552746691937289402112757435916769732213878441505661970978588766368105720519452749826895965934501115251424065910210577101629534954363751639518993647324789961496110374253508685517963542939836154441561263193209493119591357176729638363842461769177654990938523086117701181047218941837782940545064556469406209367189811497973634962696295279098944357538918703586936845284494683659862481885354484572864522912883741097967289509434384310381110818523327400870855749247435957353785153440543250006187631028359609021954879341605304855744319109940359662275845790083651762126889870528901822983487768491604805071227926225174699552844829406716252784682799566649393386808598276685529484646187079857400731211599401765341507603855560994473158598165949023602766097744721473536503196176874052034502380845627700947874850778303375297101697047108403719444159379626052249493273831092684664170593386454334203788309157519511390372972647489236719977961661158098990199895534412296525362062594173514897414771983179373483290406246553141779159083151175772494612438167158456675357160680111330311144768645150642912186101991916377667624542085463918397819871668138091005181834537767350120020511837919877094069625956157785630041503035202179056248525098017748060326910612066102778666528323652735324125477092235099231520485912327327026740671563963592033557281891175537804173510731150212090340098339329111285643624033450487786408024102712729055878844915759222570782845089666587364474663833664511840317904748667510754332568986670599950073959375416642052248600347750245018943123347743158181037806481625338444172345461259480248243709165381416268320452672261245975690448361419068171027015646141665754379355592533851899844385443413843139751830015756627613444935583028470113981886594046960093396391592631382288162013137994278424241464350231815572362704699505123351315231396207190090280017481598702831394792780811970881245165345413125180684324726074497746342876591139485482671938412729155792390427377818186636216919632580610471735151060568459891190087427200521507719232989749784328405801362203432232953827673293631236123515152222117355477468132993174041833217356908747466395133899236781120813887811235632211352535002636108444558440839703312026485347405792167527470375703577711960609986164064289092169549606728756006006115684244504779272659900738268319901325691737313555149504721517660054429900995887696752780959743241319177397309891339362024712177457128275822909061464470493032694559131491330046406384061493956363316101352403217478554860259118100034533500197069708791533825676850383052974408205361851364131789814479906936668872822368982359117653682883264670235657101530051989595102435191967993541452237206555373275780345280252453475525962281179853623666380424727382572644597934322597390250108163505684232088469358128744206477834287704534181017728248912679623502918780601135590703631955367343887797924579358558192833122513277513372891353123834795866799569800047944749230920514427243643176745765343351031932811710648048386630321675135485369865928236905155097014748123917535668924101457263578791786663988098351911254524355362241484338616754322474831550611630259461679036286102494654157553308583826474402996014754716139100395214522288973683869051928978913772965007879449065824765743512065258564200403538515009896911308204313513529111719181194002328889460204918981515314641712243846680110487911001271173536260194510730666402389521972859097944903299818351604582654683816359928633759772149462785674916650529265516463544160366616008346905875702100140733196431740446751739325168049648364940411774709929816630140293777413439764397466922286921962354613457908036488463163683206148451969610312931056596459793400274130006331202786025375322452707872503940178203404391991440260906943289077382784057471193202785757038204397543160643017564023636327797495486947636092571835308555492330070218921302014064887363709440448112727074081245764128653190185967678499395619941487254935431024677793305880414370936470650284483216531749363682588125825171517927430888101910308508216421058801977806954941264610233412094871068322966622295560355410314044532340657116496880564615145254129173623822400253841324066905521519802078337931690635022770385974099894597698839529293166388226680612892456896636534005455610338992650888324882503049004434581228764994368052218414230710234700286001154218757192571598853879705559166195183189382115040714508005077366066671909730208367151045645347039639108495214534179819656092340128016077708607229219224418342541439122243678870395380056095950789262395796959642273758015381040125933855100118221067816626567248500472979658801913092637202750501901842277929660463227469413599282156993139819643123806790625111301891161168733432947293614089257528169805804592741056270586859467871599199371613330790343929129252948858560441825196067070723226161924003524242045688435547468974703639159286216293201112442867406875379107948397623825846027758073874499890618041648899791510994026651750769728423924516641268324431963371541861221277399177773737511484013220798877638769164799991644760060337717664154368429080230638577616725751927737158307038398410390777427884256131780488308725029832816347115933379967376531345667058236203905688129723122896750261791857400924500147400273051832718003216440577865838719735335315318607336190520048705807522932552264557903720763593835463848555575723771961653071787627116236645073936040412246493864463740241149013269159344887119241382548003058720590100659911304756338246883544029918874291891586957831405871817822564587662685255854628198376301751699381262132633535430069460231572025398679187063472110896381189347244545023795761768376955355992921463834583880812102488804408846483059787899468490672374152695877891492759421251734792841735105733914922528891829271774462585563907453863124393566197569087930677251742723692717286727084139839487629175629244896366205328698490855885729224808027248923617747135220268325104664824792607498867386441501148269318119360947552115072511685991512573632858174239570890787935332603032066876791338398299444205496631911043780326696947335703170986347920200450743798100845266598991078213362564080005501726860410891465269501529857465274540154317500637136227995736582425875201185099204026468101391640451818132218026901592771656726346306753935907267184882678612767660257370981652639995775762756183584908916710709139230236454413462767580676666804670252667607770577524623772150822564047166178168652049143661082513336099454781748841426888066202881394297455816427211882872102308899478313881317263258298133751829014899410189106915387465765251415038744811952196449872117677034981737165927163249705462193270876450796383791195795842274264515078204641629979839728082791116320206922661779702604436706098129649631375903753559581811414261341178230233890568406124251351005161911151859878777366658801988076109507866031499546705912517117894063441351707752638056108639440296890483358170676810883019222319289269701381862774638123372208309967140451598438271697456435677519772702480770575457769199870310804062357908143335344377026529744885736023704149412923689993669070373042209574451961292229820860771833860070129523904514753091513629822841885711507763619750998565333517805924680285472190281286447063771733803252757734259462217817518982220747651722686807510244746072542160139699157770385343552003853288923246833160089245430206286600873025163179152363633326483944310831097176735511843303952516196467182973008644121030179916542420184010434464124578375343561027233811182085162174879722399058136339341488370897360445953913403329958380111269778324634006329317736327495536206722767629990475553016147791582111554147406806631015151524057072496490124264517337847399206413219886728333213970915422428890047426525564527921530460386221188317412286182707546401213942323652053265735982845282605142024373992810843050585506095049916882957841527470348693067162659512557839244860487711664346566418088845376066160092031491361670261972339128305528342505572357202903490329031618417453145067556091596428855862594185350183656562437118430199821478476958275496380401167090581088577469094804242945070671476704835368458231614745501681521962116537313492018183244285236759676285001899798725793093506074667413142226649033047947131540059152252757568187480877654338859157999128442965064422530730034042113028511630458068196236522411335279309514311082810300852372157906553632341513701351773455149359891504751268465829874369192749798851709347481342331248710449330505686646667083585727114321215720021116943091410669927493061962929413367289835169309115312272540842637266437820342224027285953555615867300367802125441164681987673056673989165011275577314040751123042022721160011862796803528284378554145580311010616416483149115494145298463004659073853210169975942534507765007090434625336129598933331931497761044769475933573081408207604416118445926633626194020282571053180561964587070863619199995812990524221395988455618676053948043551834749576104441772483491649202616609048024360884337810803045799481501586780645019699117199775962847123514271008599546803769362578195388860670131423117044932245325332007878009250897334921558976349686574473212911650357168825590805484191335801220093783198335595649660121325078549718497704487962834826249308027931790856326153922909519908779787575351917442973695808443229932607673263346676223860074723587203509636911836658832071708622571036974729520878553789218495989552222934568053646728890031852452910393674886442066517572677415884085880404271905478046273388917461601761806613664847828745472603281342168947492891862228534274457889755186744048727745028824386629005046735972133118037914206600283932796222402535627035617977342678916453762277056247453828015694485440398635376216426857102196494846385181726940021993274199738646051683744865957786829273141396925127786122651409370768528137885220953836574336350945418036509766404340204841704875902156448816756827130230754093755493901809456653960838149785542010681607020519751640022634561950059250533691437300617847951940892419219227018748820592231598522871860300800378102442181772163659610494955067187246309948759433050071086788266504452767546319440537845174238675598108654321654320385374579081297746661574108373380219559614740962167212241440991128852336831488168716064492520366699663679705205701368997114740431551825297492254327624820217812620087783748470660500864661577498826564777884922651617396820439246347050592539343497553045763322722838328868371932232368902674232712973698089383049106702660641198005799316975714376836858703773878692982645487897365546027779283483925515948622250949564834845037719715724083912551974212204962941209317440254065930805050365058089633485455962413443437451068722262806262416081879268812847101805211380064739935397898120144445724874883388038894495537153457419229844251235440323748619155381828715562931023803367710626963858939361635917265481248846986787864841059583767111816692484563920515884179857823091302909741285263973841009803581912848438483371074360011636468430130287496241281133458816837493531336758208700212519495418805254483967585315921602329856888748254588437258951412588272799888575980775055118273867527113616146269989290354202734782620942809940213020315558832430130697745970271931011187526566591616417136156658079874536201936727524738617444860195719626793931694377521686318744905362346249232989603500023130052265799581177955838668909342145689330183009530458693811989576862498099243846885141933508112808964795185452099385010841940357230470673842471399196500625735488539993463310917248409243465688716608635999833595404792379438038139713326829447733727805670727318167615039801978527290018639046140115086875367620419716809124865101787040857334713084920891086460877438426645337093306072042997203492964271016229557273926370023438937901357929937184049908146223863035593080686227314867940699933768079907005463503309066182786783961857047482218507360342785139058591217165712917752649016363187709304990166615379062234551396617664835931382934429864016334859190242255188481095576198339497704223087769270390251542993943945958612541663865364849963091469432151346856196580139653463356502583694244133822632071109131630098894987086911828061720877219645994430328348656276566526101229276055694862338666341292031934168663018440297745552626939647037393752078418790231395649298041986938238144384323302079802856729142207997447285202527271841827156351108747622831644019273204533859162035731962732972909794451244134922227955648491812909417404327285196909963009277322367305442759934027212304599284248119744740551205397409304816053082553866537054191962966890414286146114861083809731986344995244511059836649241118862933779002431528079083769029263782817150007960732199827448161723221153200541819664478241165992593176606559632373181166019280717202255722751879601829620800883429008193241048529857438813005764882137858499538543015783461374004578756396076093195710049497183171361476707205267185343864561821063948294132697879691042991933757972980960887065095123871385524579992716084243055212744022121745967190476909040654174366613288074423296664056066802180668047490088287953195819971564739598681242321265337881664625212962618485136960318334918109107962579522231746654497845326256570279886187647277493367862479543141919274972728337981586194617435254142180387969826890102379739185461397398490757258725374796164737675608707759989633952956723218920508227671840058984962618384439415972213759090274285691600756723812680965756901289994945687773785154319608462397582892724984491248596444096462385030482358410767140051804735875716410905987798985783183445386493877390002942312330087921475938195631988955060631575726873436785671053973743846157318957027216878515991633328450322861480442264324584710015048229957549963944239861351977948203623938843502848388321631589303356805370698618244531613745074068666710190063153348920624300608475482979075807172846119013261639534641339058846304979748492346147896891918729444810299955835276616020002891612788322891462081018531885344164069476312454721531220427001131860741719698140792389128690944086393540721446093640843491352817547493895622691216116005697112635279856098667622564037206795527256567891553082749788425988708138144847649530766989309761835167913528276048143882691551975754512410374000103162396794047042332422457106899923476768498652394550642983660007453192855373228662193814725042537806660616350074866116787199953478477878707867580226244198707731441429173034491885610577733126613879124128692738776857898469611737871152623094694134690225059185723813082620497264174694050794884947505838738732590824734593462973976835131246314824830419731047013944523355722178548796424146534833907823304655659240895379116575491697886145979422807740227427113566938619155420690294729059169288336310561428974571346613714949737462948066319133788333112167839665920378316760075193119186072711310240808064101028267430076322296065444206471574574714949519532932273607135478862215991679951099307824768954733039364078440362713383336503658339150184277406867894625941915662819808733432065958897304370136736951597270702604199525876145155776823991671235236198729727599795112152043116573812657315627644278364574574248401461171999499202311447318298408403945391813668726454266797720622111098380210279158049242604944078774316491721572922254087969074210083658258318003444239995291531063962736617018606948186533954765228283896923124836618203126536722193585853036649070427078195654743421591657774195197011837083464332831588586126553702088182459188839316310116028562252137838175354265199209603557871447257922540415032640196940648973172029363836862270271343207033021816714566045516099779180588547483232227454468401871640420965432700383847628324059321386595494218964567827464287210604666923078199177308218000019175731874571157268298835723964906417856230895027967847175233826094405456879698174852819959754693127658132355466330824528358227898729975758034317225939624534597032841965271309130220490280855765315868015070948363233715146394902180397564878918440845353151868478329880174362179158088049911911470143684135985972903236991769815911472312820614842940996574661334480142969232152083024052458126432607351253213131960456439430960847288595537344951673474709086293754908763520518707958486255839549370675060442383057068101936431828674973466921930904096807285591160406240266458282632477137878195798417435286831538132932750977159263897771758915112391799290961812824776757524194529100590368548497670764384657913000595032148314063327945944691866138806154260708793832865995382264454702741516166840197107030996124772693885954822761338026033378035707541747700253539676977951466355272292477112149847477361252892977868712912378258449106854711780866005121074394025871025427508799183810413605516384422993848926875280100445077012342850135091907052137227596968991765682757841223926454217850209354357077685960316085301960940029317961699665275383310297988275520500071855839170589049540838719743286822864940463634509106611539539646973594427567819126537224951005038640225462266494303909917568113229577025402940147328414521660602697977545142764181373587950594978682320404203733815176180967405372764645062482869643203904607540861966328108690891523857698082702733335414980300331949963380000403608009804948958054730909945877638457072768562658693035746157950134350048391207125329369686153838822861243347537876706756585027860858254846625195393173099097173162306076763334107869353372635882067714290533342483320996002278387737794796840969195675499706133105204230237931311212231119926263083069378897047237778829598543162429693089834082372947982604022208841953827522870992024776217111604666541131921522331419043538116913064651320494718512087203903404511319181515440673305938993640845510672666649497266556463580588363684453253445706897771099784860737775202118173344086967065143463069532715676763054169759596401753848919550883430047942757647019713905816723532464170136672241237087899936990475964407356949328393690310693731090618510425593533930682668807186687641469151062424880917944998482701184341191234268671358322649110026509057940657485908992698860399283840728013841436894900145422713598687775835932495443053530809978841050651233987911287211780746790786629076935078266428263957870645309485600949573279163786888254643305975019861244352750620484054880902564083507209236028751089957176964900584447814223087328182351124236019754434381623704444971362094409026366177859220058556413966817456452166044053982753427581535668108643391678341177662797955292995520623081231046626136203108246507010906387466771132666222849100371295673115088124751962400863673868463524268489951270365492527909991386275838417109407085442267805806973547647753769716624559802347333813589648010609697937067546015033123130593314571242094998739078701861469145482281936598045439156087548821121640263529261260658841907606783239422797898479883485532631786917909917175670190202186304715293921238728397473697493742225620998025505592268021511902870332650955201276441758260148579788232534061262458785684942625783721820994451619143734161279949225657483702999392656533776956489479854821696191791229702954627276917291685401859241666126772719211464128038868170340455562266182423418486921356356130003039091441496707763583341237143093803751884541498285448806180249705997408704859489101580912160044313468922544959780550517500214016970588228675644264187519479732264760263272691355949543442083169116902652130058984214958635253602947299101956737740585943027043872779279566634520315473648747378560803026796959527923249379653786851500326804516167974930549566973020115838342739159438392419304092714171630246734791319785635387959703237269700551481726399587307813693478300543990946569478300751047586912885622442432659770152061346397521009523817531189203021514652890389692339931675930724496837985221645380247938602534876159218908957116190353528326570590119811629239847227621803626186035613176598762548890799721681898634223587073759571839872891010524602820811686477054239862651220536258833651359859529760954307429328201641374361088289743223990764000049473794254202001706068131343683882611040812075914264359253447304210876595831997561589869157102508335175054081750488612734591617639796495455168856401983527508130236617678510419417018408555346903197880031904367496929251092905947858237322702810936451108384450070784770784669368454246930394768164819875137366570712590162691314964481812638466864364482357425367870787379516422179279049952304227623386472202173669332127810611476530139440493020426676531537191300745542320161956922675984159506331633384752565743824216535487173830670840903202447536754950564441756620182618653082720621735153103931247870670109099504002384004936054586457215370709462948671777238971274492930276583865050500526916776067272158509023972306815495527718109892062365438480969095275503802292499499343447270807716733225295372754935052149051744129781686194857260268042209423170938527435455024356751923239509563878096748477637778487580406395466826053953591095584044610507762104046281545322612584882008371500431467770653989323742472881136751636886795215112660102248558367866728214384265932519839033199545032874401298842583545869120986879655349234681076737151992291999532259742552309110818183072957351442959682388677275675889098657642229603868271482721109319577092015974707298983029031983818345160681991704888421461358954466098261103472521880813004750376660124391541254235989779117987224387225872174375891245446167540775781798468866039018966415501272846576026427217373794456062539409205871226170670065095481033605081590755705205391600170819636212531344452385178383151064849197524861332142624917959328013797274752749848206346067025958814193894291831147690246358601500376909857098019302619094006515051606069145843982812813702232082894819109051546349432664139668825109609985672008623495069710776095526215058736377555270702213741894508156677095491616382967779454378856884209420052840887637398952928098448670898705732822114409082478121415250245450688018432819994838647490988553066180400613859864282969517385106433915971385812544101727351922726305936404965677215957126250589615214744861355811710796074366022274795902052294755625058271301118134528049840101917094323526254092606693625302157340085589955548990184170860231683656625213876913283905437614326805128781325919064286996094393563323257372879451786625313210628765592612480225388160528411279056015954961883499180994360353154840270177426708110931708637708960421593300184257253011583497143103792312535744418837231110884704515935765705987586474547547217597661823143214378068580291010258368927267270849378569474188552314362705393504614467884052212083474103414899614475748723490446372430687880186869425609346159603628141294001256789398667885607375978860621584262959344349910588332550538951872498768229259408867536839549682748394788091068257239044995808545205026553234333128056320173329173711504673843587616682637233069749084149440571176421539877667627442138503117633151919731384393411702208643479935499526217787869232787719625991298654880839215036815638364249422112427802257611549187215483527298425610569168572696042244284117570544208118268936175965205201685164214780642904847784598162214141638002940992984102677464552808211004259679102268955358196445801338042463384532106242673367287921595423884709080675258486608133712854132220759119184941072366262021552081615119367499713877317175577239183624597069779895668696865050547388129086356206679089483837206201049812485317729592219325554294363838605355729533995810874177091023434387384457046648845496696651312689969465661388453913437643757900705072714688104106005810232064523723451844779998987233642913847914555211336409489464184227057210958023564379465988885161363095773485927901820013075720841723514627978063150931886833199636301307576344016076724767517229755324563393124630434368856307081578519193689067279633066415091475758888572993847764325597194821246013045608493867632110385225783315058450800899680663625996646003002300373867793517324451998044446743350849591477804594852139079726347792513248981991354186487161841424019466944249663227452289853809570334878385949807897983234655165030143418298689809966491640693762008528955507188590822738754873747807239508109801372223499694172809458139631787800414843010207048184101012834011834785472497634237973126382643366715766501808047165002456783403670451477045104248478006718276014178121454813248341993106163591216930022949175656499663641355146226878772712361925713468069365708382492536828843423631180913386151593477015547285784951218688648260862805136798129649775412472213265313261055409599766303022862687169182362792826626591355068488177570840177419816357932851597757438664863965824883362855129315240731145461461353071434477551549286998390743671227942476899214406687538618135924305840220370866749576957097943942451146647878008249994274953146101290993337467292250091270290756353349046240209634055343084759587254706933835311698763521122311580529999113557515774735289316037174317054521060937965411158371018810864448426793128072174677717609519256273987594604462234310095001095727466613894493345792597157723650609624368020547825601817466375200893700999329590799247686539154038479951452290271681168746425367239756648975850905002231387731158067232621149591537141092652744101873846391222129608073170251493576353405207953965105749410213170904078157527374840754144468919894079029224937400211814496440414776172631341045290022589940583924110762570499711558706643392725851072120376047002465588234332423848937331331168471740988809509469000731226458951074678323083329632503405503232512108965110079031430787596619503946131966763236354837452190770210836210726694400288121258715168671531564590540667892673322624317226684110825374260934868707618827617591587355877785377761961936882516584289472074302099365264345981212973647753835361455237646965045433040847994471797438942034375566160684580793812651917954689021347617132172198476560479030755467392801924925250493111098467882087265259309546509959108807562464359558334808848344894484594837639916584573413936098559335313449930858601389839257888144306566519846958419203594303359404193081289276641536200861491694754700476130944024967488938170477960262874214032560748770115424539576139283364630314754133196315390644895663323324973523882787862873844774719572882349653169662430096856610869690842611535991322442361930784556713002270627749378836760615717976524457665075490887303525862433029373426575368081983820377894112986117195527626046433097627347079925647199865782711907132866170788040890976079339684435210917875061981938082841528542373253624261017537637720156945333873975558503651116526602299466964938698118591810189651607476938054191323439052044541012859102846337936729196380540716532199474763773710763738226717671471564972227350421537614076197355262725588780387587435568326559529065382629415480527203465723475521338611078781205462044002837291749654932062515415140629670063478032229160339546455347503459964872849610123702221153610370648587309452678866138442508792632446700646327982512901303261704141289801791936998374620233835607905705857131933796717726573532168630225181732713820677122210938676099456187865439376167150402320591954629357903640209597912905898095835028248470214176289489060401065658380775953775285099546361949535403075164017890628487265168578789619304185451895672101917429547953536389128127417088025391794619827072240357024579643700454061760239984432988059882291003730927116886974546941136719867465755131777786089756144131061585195792782056868516998435340760133365828791849191751163573013575311606810760250446103870005271940233798855885455103783318572392759827290047840266034537366585380530887859738304052876847486983535206593660799670473037504916607753330413502129781499653787194047587981250779972517920845919664444533965526799013139429616501272804824246103356036023865065154682395076779828296047023768596508999144947637756349381880548474406835284503546018087943820159003437234156625992370581186725680913699389481641672744087096821623593073385052756467510803629165778895550250391949295333176798592669314927366481830300177667908921449274182726922678203959299072789966909857538520230567764504834651651347526285410320224220222510778360184959683592059898925887215888250938677438906806378088651595112963701340217062057061900040430447265371210480756686853184036344816652913343538578142108534007144075667759107075497687545594052439776248466990557766318991699432917508176251938689928639343475928090247982838363427231925945207873440562944035717679963536607090443628756212541510436115252510651600436580268038214722707304678164480712758165749511029557760000383700669781249696975232382663544738456835176416680888556357207641145099981682226068963937995772543991456889533139768100240636877611383322738583234702407892722302580153674840320570424582068115146684285443016419861388954784262654236550211711313697481322107463052795722580586033821860631159066181608207136832339241161422247248087139491036446274763835089696374385998983387291302216773755318850004155895075734191515113703784280754339511567860726446074484846662041142058203860507525168501322515093758814007350200611463139889277451366935477013414283921717328948929479410681716422943300281917556420162854143656984143637398380830334364357724607585897390061951077631753507344150298007520333092091590572066287914533010842696322050908118022940747551991094986113682413193030228804264478417221601530099560583701405107297149942590501288256433389982684962459384362896973943252216105164960786002867752495301916213568920830445481071749383393217459153264294141863391523922856480013365717446795277846582311457661914027171528241146131639888435551852468936781791969583173079341396059117030307937537854489859749482077107806360863966982595597315213160249625113481651222876841731284678508420989513334666544917177289616662852435988621561839559414407475728439209063688453799851815833498926794264176884328899579755235428163493129770068382040606921856551174358039601203377670725494251001253719463451667531540061354699971847684734153363558799350248628294211674893243189628229908532372800330974427454181823075722285089915660645654079409612620834261261322851986310375159343438926013347932225998596268928718205958839240018443058686027628624200077764716141486821725413715609131164823989811613306561032049828361918480952839071389609823161454047032703355368096471225121091591962470770758479999803727484200875753884160977484185379831350090941093231579695857618928436077829239280447225572971168455938701227360954668239387783647166272705892662941051241324597459566663728276209464263077960112367799787245311340157363159343550762729904284530448000400101209095229933618755818668315284133327428906867910777350104522781654102169527956010947800348577474047166269348780985655352650882387548189990914770308560341207955827874310828877584635373502675406858348911595961436350115597706809314032436352782228550337710369086695273915038837548056816538705989499028813325218091314439476383686081625259201450191526909316740077042420513537480522386210542239505885271074488971499768871842362617920884106521694103633841411423133240442011264047298560958788329728000568429614408206383288385895831978519970291243004515308119667844333199876441247603884641566369062367788598530274976033595501446945189968066771583436256893451343600454965378950069469022531505926863519308503679638950969689085505871129102126452249087597622265121654108784790050869223958828733807523598595714652390710768380623179330425792772605157212799618881076015916071290729564314237963063941317432833324758411804054719342984957504961878323024214514746498638976652175035309366419200038603608565827427402963729790449280694881505143378510362346885345243228985567315961955734920373773421241510283358502072007547837029770102943571254764877770054780534350177097861192670618079239387578916894446091566148914698414918617163769243985276246002522567416034079446159279842802698321751468888602258929915162566248070031184047913465038463711914910745909665678446400649690340216426387656862702708834505964783455002679601362333574625214145484695652599026847556093625378022419843249987954264427996998566593878164462027362606486622813537117502510176169765701883226622019832328648522482193454240877128435474376994770147244301518180728414076687441706824120051602649501768766571037779674362483017322325018491404367024565354743577093633098750753005730133811872569760169091855419995649636334638423225309845284471703289485232909646550998955574690367213118646142554415924314580541085505026018745300303035606008931746441667589370546701847618121018786970456956328632414564016052542938910003721519747130415992890457396172021659880691492164691632939663181457706396261175273071053364782295395802709939595537576878152962094377236070944504700873235309430501201020083493328832785379815048362008295087390993954521646976940617040259805854277809955568107767566534019510742342774396262195643500226781527359147896330313960962789603235454796424414856399497174607307439916611138255386388905558691624029509943053917815825429178560007994942615414139865554412991177284313290110637000264458418359915817089726741395651174246818512899800038866847124470294662866542204890016326416267650921126097068591391047424632112446960945517617641176032855460938808827977082600085272171781982836464413728297727018136691795004902667502360277095322378835375115506865082837722599071061929238157167561995403841465796716633855629767079012712701304022087034956331954141522699852201060716051045675777664716955810424525085864575735614436192926022044371207699566805436871035921985807603935672113662787843096538815858934440719499206328283822729178705227843661418922482824228881808738396092345411408824584870926518369040705472792205636195175156058857258447355269833038499303092335236230352564520367372356601341513167138854260478027793537462318155287495357677878093092011702379909682448799920290758966280145754745793181750939167275008178251409058313790947343651887782718276639593440241587458424375666820010428422225818564154970646081446269912960843113439765306574832352100675790565484786510269170781128912258354827023870527120360460482223924648935204331476661434855265091507895564991105134117813175380008197509532377633422910782324489216572753266999647386197828328126205018637686017368671030251442225490454332778691926971105358576557045405808936272142877033996548151848190110662704341501752686779596216629052047310610154380515441304419681136794442192204388408581435369871035464125859077267836672283976459011235001957148842053068460773143192316116865130875463168832264413760868196585430830829054813882802481893768219745085968692247888384231574994899570051538845245670497175290273867470040509041269647500446890247900234411091713094492519546660014664755778993172986705149876680244409412121555873610180831167752624689740130918234269677038661496231025035325025070531887058226984187314590095037722867351329088129805238580004119904750229507822846026019758000528933129641442296345835983381843373941336329282957238280859956421818935001676775695719183891454943410206012161044620042799685566976293688531111577248409959653375454059017254552372248681778729328953783205828627346756711751081107923535462189894150773633749933926875817782353386840452819643275450927604417768442459349139215866710028496952141309660159629558382063251996983291552239856379775638918501213367287530421382231187072593125779977108182847302315108976633474738116906076238194919168661624509446026583441003735348702511421171035862988593119629511099318619911011817938557720065845081360286078223526550104188543048698573380860392427257435644495134758630328676853013953365708027846213093968159475092736433423617407092252136886009076141316675035109648188325729778463435143781320112782283470381658869279530788500800503974266471130623411013386766939634521224000817682831924387954828219672194711010448989953085877334448925874969348212840706772212187544507649849629368183927607752265451730486923270412853515704737078014035713961106546472191758559341237284095519324263495173586628028558721454989169245846399208891096468977446132212462993541747146604283389928787319044158131579050506823443596602314821558196432312187761230476449640668136014508463532742482457819002772503202950522113243467261491791358046337591273127996455084803740683974235812504749103488935734017907620074471005950416557968319071571618511556625410419893636547999912457697127475337120515737846106308448506865849952909655530157052864172159919878255960078603399187071766524456337367146716977593653676888791353460433734401862866614524333955018081084934253908947990740453172554575700881132682256384023558745034513383908612147839497045688518595085771803411519623936364202119601642479351184589761441978042301989692373589282215032575264883940689901070258193565093635690568003107347712372632261255971912686104159507084560717043810845600330863129483455024173896182658556347902352606649470812608922523299981883936717285570213860572553327036055419594603245542710168707985855532548564267824885734861780384601459499160405294805229716662531051878436853238908629744015560228032460143879311439115701672786216680291711401360074802614642905714801252163199039969749048936876196457140716627143689401822095380306519979178785773166300671055877434699823534323069875439758911100559043777297789001476737702171376407023140514146721997024320804708735947852340073098835326821760044603587584322658078956565868422612633098889467862563902990237377119683548146301014188608076304848282351303699421290379830889322182996984793638694098072106401477426839509706459609286492102863252044770166508455931304147705251358575664467792799855013075330392981180273541819750910986182115278104541357527882680914103247990247687267038377025027450874544090244401215161874288790897402427003499958346020176226366271046167253475238834058540796117246146964413144430959824691653217570704471232788706250364391187894830215386977714240071865771739270769488245523224736077341240310965601732736692892435544577449938482793133187155252529077555086903706014554776010998970724460505556792829123592520238442142626753324643947932111240195144770422018880328277358085392655053491042891582146399673265636409635689382921958062309839832815198708395083901254090378032384254929737450432751680518842115487966154217270771653799834663751439800793634159608886973298878466612020152566094383135629718898192825733198459740801491027875556770328164633420403160647763109992321046160166020815402324686445463979596528338820715035389278077194830129309432912754472938152957354381221314857215646285757275075906001069715233518960818866001039450313497247841715938386628926737885901759731559439059797473544328334376497856274259610514423243757323207939243984479163940077276151743219062380521811343805969943914340289294697278899798869203455134354255496266362656573117214946142350155801224116207176810558797597837594889958236509309632081609450029716077308956664577118305607332426593666581446531943384340571528302986981352088908111209838467340832263874683201583942064917776344535274338288285870100312354188158781728518670067307754361538602041640363999616544111236071561651219759925411551514852686673649703659346564831387067573132767814141912106522020974846072993962255824746099940924475873773622305736257089082466123780844086802916975923000419140474022537199240447321634701191611993743209641732585655121107082275788818684600803451268389204594844536017725050661089309277966051348235714264861590756671761369178831028239565201751712679287516619674131141118096897972363676490563722512047107154813339720896157790724154643786188219057114164383822300270535828925626058306137234955014962668555420998862295304252260221183184394921317520635477523387348778073202077920084328480368497403018858105733884340105861989965899378906458217190902321046343348228394139995611367660407168386161447310677618188062387745071154653086126313270004389924597417898402408306754142246934092974812032858675684211306708822884444581445370976873559215516171090349049488484769017596878228382781554181405097638303519422151300895192556603514649160902162079053707433573465607154897102251807151515994100049941429292640076035049933756550276561253464409616599481782522763331105290976828263983099774127071502257565896512209602079780689145379597493829587085812896001086171088522697119243454744712854598234729770297015300392777250215024280724897730549834177577803496796964077628804699971490987062600861600977113687690331785080984719239696588865506139314540909264164615337149385103853228231683394445748968202699573101469035900113946236140523338214308701765870540237486379995595989675482567316882090269687067986369160944338582130187312468866724660181258531035794056441631770308589574147740875247935906845392680606161025972465314332743813586732320833030861856572611357970115927342682415285285796253872533275407947009610038928513637887733593850726876413076965141222477124517024785926904860970842616422468754617464315439414263034363803548829212299380236767652230139615883200545540236370088572861792523822434976961666421628640371388150618517256213524725424433847517378854310717950125712200116839812367334360235385219138264138693717688144024917369514226887467843962452309272310733095729963535544702589521703362267871659168082183496044520149394933706013837603773074688923848864100001071928462834106625464778084377512964844732990009477365174713440963142527609422942582613975019239218458983580885881165323311024258128930483838333199706072149302405143445366682659917322218418660947922765259353973256544576018047014093518393240830327629637186992208551754786460142700808087362554543619091172868227823395940153133140946368967275474754539320736866946151926921344663696479002300697814458187972679545192953721310845479271558392589131784433871338288879306008820891427723525867740885860346725473765809267850934813981286109479722668183970514736919794682372028756212550115326745498283339854055366627899575437377423246523694948195758106922715863660477672774214209160734898893534199151819776142700598574155519929009247694446827280968829239231182576443979615996867828998978924003410914313846149429232055041132473060019532664161202638866846810088439005020686217570344488371184093540771587475500527649290983142729218716759598130444988773802074677801760612713003048176161719764378941979764422376649976823590704423455094934213253222030222537665470540094023154023676531721679927540314952646580500053965208080403869905676457309454885628769932351085135480568572951755410969225640099618104350333555361632960649727804120028656757335732095136536640646359861744500042697286858554040748499331382474605598817083126173660611135123012118216499283919025756137994398668177311526340806964682275041407780330600778026585144743869742273318624368444190453536536145611490993689499153643303474025744020539549653351275783208408985343085013260670168012031301612452263270555132910668065574319713050494555988523085649115467785664588222512719863086311783768312983226554238583314009650022071731507378863638786515367492329653975381418408064015644335401273262549793495082849863007110471774959009325159080446001383923811529429114932950940469476565345574398171566196230796855947068049073132720330621354809916153020500138228942575428180646132703296811297990589753077369516978164024793658705066542107006979484059447862889295831895547448573693986584941176932606329150335240499443406501829956710150246427689785948266919762426748336461956370906119600143476231665653663027040752894659257440693701657761285088724977473205663844565512188940621083726780822722435611643129848746838447323649434780291070315961677830614394511863988451863740549855779509072316893836147653249518628700684472834378847548140136524080795245863038386991203592709744850828664012118770816834105973418198692041962003175916927906966489157290341600789811937614223508890317900116654392401036654309169514956775015301815492779253414576050949050857521780619039618398369981122661602096695402487207417127937764150159018796957968290313358756255240206749256588891018777934789914535604602912282987945236820769358163518220496486366609224963814498239268130048208734964101222636176049549521607687203355776845275994927391441770235331799469635479707568219661113620021131875760753330912371679158328992244380152350310893141265049022937759419364462313018898523772814342352527510930355769197123502041068557633389113639762104362718382447034460554307451540050034518833612440138320814539457301242548277361757834550237673982729016930076963243692391340877905835523113956837522933091460348105896386629873980476650604425716173112081318969038374685619956920133717306268115822148186051595844500120421725552965946843350543490085184903559795192612400124996442928069991612939154159031006798611088790632752675339719075304490464717417810545774766651909489537837250969500930484836102003006436186995580904113683324680743931290310568971291555995148711664624628021037713255053398261503678936755593533378153539613720064872327271341142485009854324728280587919135455770732422819602138885798914074395233453053632570680727186247077363250067846002356756834446828669622916606606923222405885185012994937892063605967206176777725596310253861593934134124373744520809653917304535585798763926460421328071624871348155796812520366632337167184935190793465355609040261648367338853882779682342049219937085093055275951480154262052127707125335116434454435268356414485843522950426811903687004682247365420127180684597883884917318855866762773449216177248444377404855698933794206182631816391395750827369518081161864726310239993295187876133349584870732354215923915088380728610279125011110819747286229711834127177744636347789136471316781293451791502133421305364130767453496018221173413835354053981524018507468571598484397398685326231408728230021715747878246519380365239418248471123458556735758796303908184293202527044957096227373341839609734792825506265951610596117748470384413657836708303381483186231927147658918303975506837351786193665136290013222473842514879490379794293350403096179859336926941464318352738653055517272965532153705875778868083484006559017290038685002497306059516640309889723907773996040434081939650397277004054999982629684096409412387710726859776815121587116652961935021297736564824949350820800202153205727738241578932084687332047616608188732708187386642840328143836968946353984261795057045660225907571833518195343512679163919641940464868871683037196146186866467594983042875591224971960969932612888188750152621639636218196207173862627818272138843875087734194414538849369926970244941433874558644843238477703521246832092447474025183791051642078028132733297815546099337526108860562765820968445525297590124726628083055329230479231393330705522797939737613703168022213849091357447925975045098630984233803763878063747185808394375320809953705094384506886076107650018259714410853826216377736897278310772814535682873381513064567761448286897881020003944387539912525479954238958499090427492210543478367000473863556843616223005536087882657175253373099654675944146620959030692145327772155874734105339954233994927187765107689211312957663519628436752049307493176200935969658001285771185039107790723100671542022840931517235506748827076242415660431315811878269572232657144609888247641410109446756299756047646318880472479972231969363494934318333373255013771384824035617568443853881254851057210129879521232487260856799200461545856504706214653844400260882639535632352501383298306899208779377312228856518285152614726668447930036793573548563174746371901145597571443810601112883706246137163769953053945424537264456364939779138804885517925913510133136089790469225777569550579708313115146108526419139213931170716896724392802042960024596971197877172141422308050609610901699471146160664329215695557933582506310225090871606967225690542171335938137718274089347989595929667825655383449749919193736965251548646008438643841205683238528010563748216831797527558689464487842495735216915007815737280410170008214947282843075243130822926970118471322806447870445323800209574859242170905378210443880853559862737316444874800359639312790088861450787627875851262075283142195024068162756993515191751374301717295938680730386247408587560517673803768634736955592203595440144525280870984143856466172364338399092987776712786957554538344696782949440319699320759826478128581097538034248078777316225239056982956661620031069717111421548236089632998181195360856401658354557303174282626698754733597826222504549922707460073825526795471227289645973200983901730714564501866241878420710845067089056971043046220594322048831538977120084806714992856075290508626323565796387763706292540094328787896900445771028205032637561498073948685799025681145632156907111287925548138445645851883181329092114540246856425819056645520823137236066661307746911030834270565143630833202765816730374240719177247912487441535924242828730473902970099614387972777607191373110639408215196104967547959582601415885490648152399374706216030711500832341687472773769083799142574875404599479347871186221980122696885185419210180345839754526350277267470483274701822711199668600428686797943266858805054973126650523074982414952297085816536439751009810239158142273341015853325072509668261142440722257009932017389570987477038275922823528976219047915003081479592421435307795317543295553174326108329631227945118857046369856495012149260341565442832204252057913149031700081255657282674053934499138616765901696600861866450736768537135302717887873910826598379194749026253536383729831326543010018838711811926798921816445241794407943440647057505633440873594114806498667193244929759430076411017575522288854949104500410506640082363615340762592982969466582196021568171184884727794057470249678145753567696733880188537333176721895087537412658007514276063683112610650674587530791788991969991374418792351475505439430818055858792935661883652537237250498757890085466993311838046622637162678551145463540780299657262664342132874898511735962165393810298311148519192924022423985555474053049663784772052149267596116102621594138890272640536931134664511236259188902290210069004177186253126915388643865009643811802292820316063056797766667734681719467900498678469630177465172441277887183874205992980441321328069212612856328452221880954156287695284492792984452491381668892660682180818309360418445687151347325695869611514916122900832278196624573452128132421135714344050501409145610944577751527256436181152811838798680226134515311754010484688909995597108411810987472488331987811813913225828339685447896308146006949684108883241820622163806539837709214605354058805629550080798616176852921705323398778681432896840998979197983523554101478204126311136151075819527296423628379498317358662525566827501555994433218416921752281714644595543883121043412568345446473059775948926295171252054333350651787783454072848333952124301041047594842934958215879137554361012435075778635845113199671384467462102398668095263256419932271139228434531379067056590642707873549678058568621999201221220308254525709829255916447835373317039407334739176088290050470215789184518693707053385001752465874155489236929611445868793068992099353357413205546461876469655028848064567500167503347827474117848461560641511666704711947653821440773590048512225907545702209730715988567218197301929819157544639525066833842136414769276161996057652241475564695319057218184793092316183053343418091164537359632233084326258471060369723428686807636384757011254131088366371018468009965370403934441146390835656248262087861690415022164256720570815286206687709905439308205539312003512912388165204874394858739365858027812688791870238169084967665034127252476485322871266122740813990481624040374342727915473427219906613863433314794064345426804370307686069005973788272841040021291766469398065433494298769188012424375610326152430851243368871253012734551476330652315184591115078272626350167486732997531929394045332637798866602188088207237972202416894783919086220960626692660741606547896551610972518065114688607350164731535605133531831361563011374193247447138436922397450124700119303662414799421492782412435598762606554692120050564511031772525937483289201143597905219129830166875487279112703333061148067841086642545222060124338917418372698157568139539677846125727480793380259019658637229289070579494077940061538275254852140678858419088915843015303571205205310988435064607125097765437911326359866206502796706644510172503424540930185886332291703892768079937036584285787398098398341832652298020688042246560444942769435930585927073652676894826780654400190957680785290541099367259886085479085832054017419448489944929692190629467651299748716167107661432971572721102331533385728311494236690037655725315749727139256275841028575124628916061302407933128293522987856616111503501845361270231944916053914085624958158541843025517729093092954840911355043433292649677276429116491715895218938845760801930631112929323378470679671203861334978678365025560999511738697566000356225408391674993401633242756316185646762440826294442123186477458790700330029424718448300854219527335537280378394099828495464768835201205390795322055866627509431912867074800886073123446912773157009095595847476784340003100306296491908330201204666021276235331633941463309177918121792749620397849803842413905375841316793103510973311103319769515811830628419879965933965144221420732459153418799555637251895382803206246442071649203974603073709741293662507498033373380907959757063454115739795674512613566026944979475095473233988104248149525650379394021398675786267323150827116730989858317697941052116613179331598505966426388192929334187194761080063097034651326869642267792169638692453460643869127754353624277155930276924166803384616948300601668065252014262881282326565780223848204497810165863207579578880249124602734762482777230424682947565028108226059008034139290356935622459063778761007146937640289548444801047115481675547098202455535128196051675785383247977211328783535455921522122093250327150399070369969491077856886390216357902160538904716583852389494518889478089070130719925408052696616538272231837137904904730042966644702337275154230179048653697366399759989582501458478367354223127777588961282087853504065811762625181673927716656966519487420061368880213345417296986479007748253192272768078790606322396830655200788236942780908317379729664276182311556758740628910688343885692721858788690863974243015281126142181123075929981851448220444090821891758238387796492069850407953132502118758981304833444398748409378954427951293617871190760105301381213976505805049227164304294517890519901560734870004217234322747679305163415018797120269008736962511879221251156278583362230062969129286537433774180128738679803764821197632823424914314041734169185647177452307550565496557979169616837928164518437389784409099508805537222622837673727319589414632225106811526481160687545975544034992354563432819739481075743106920445313596131213827305478917761993801211536054191302448591078670077164813618654562916340368923948204787010004588844099913470746969269415496617743790804591544250563330061818661704010321707753048236137481194554607407111334269848727829969628638001608682124319565765248404970327556299099921022867876836963532762862125767271562345033310781115598850801868087168029287776481599098446863585819148836670983759989206559914647619222301148571341358462019496137366677797436009905299416358810852044860762615184070485526499525574092333061612004797776377313159011458786533481040987664436665557075852008615045062068375560084892382663395188889890227554328029091044951498106088124080931306343378655963685885315468128522394711996233333171747245718012592302136913377421822453608891714177974319724064662193539251831048915332288820483090307388192230607316358945827084389151971679609367107213165420989246273624800506346057772336401046163540007641958929639065017112082378671323723744773747761217620468235426315442432486764882670390516085201533409220119807087633610650544037605495544219029976936100932085534277127860736505427069461427725648263840531347326180884160456792916260129318192898457720965664689463580834071053608344983159692307982155688466480622736547825877999759152028362511488632922057980869077841500887298957594999430780209968603445511441089086025181828787982520140766094727374604266039742706871721959633174124834719019839192090469019550239730832900696734029150268375655169361248232412739471944239969187110480655448741662197573216665509278549859874449696869224414060473131940598541722554307636780173534993968551861289352257097704260198583481662987422882343649059741292120461689729711241702778318243425907136243924898223576743243641428602179752257048419214748591017032036810176139657601127183707519515001171857278310083589639490918946085044004033926481284448525109949553662049625005852026867434781550513886902336680872222491648361039289852570580079629848523899049499665113163656354247380003446128341346026247401075190170009807566790207980948551312173565423532025582479994048990141568079729703521175936270707749809627142493280808893105237697421193668903034732212547785344332128163342108989296184266285644657763329466609549203904936038372495605354628643205747485566949809047827165563120801925262486410477916932751681406874343074379250866597550637118045617622583974871571073446238219219942056548151203779348775096068055102738278247910187320356728915621257322005005505111588454262981294218816363878985461704300666293240674719668266633896601233610716660987632050006946806262378325244498741893535583661866634758361160780029842437630414506110184995113508474034336925271314966747683022590866632984634472663031163662408979136977126072188004082270625761317541697339870893284182591704217504175507519132853381038007977192450438599886019484572484773475125563194230831400902799589050325660691754219944181740284312660091742060506915939363424294564391868859015762148703734584752280785351803659624340681641553998232509947401660172081508576874648386228980345321613052215127459240418621597119137784510988552798880594762710550122353604440710256960633512869975464017557448261750908816662702813185744784698970576370527444655006142954100059741478988776918114903184820230238139143056650905869434173533401167207980981819571403832790210016507543885486654325262090513888298843121304192865506705973844882148473353553049214414388034158384943841554817946574059413167582116778768327360268002623454855388083874226129996485822079879439266085293378355355871657496550055863189454885484880128822993186608245464553377259846955601664803674223215207025923504908509285500601038669897349032433719299768289988375464550074125651859983739473064987683674540157813506590650231197137619628037524712483600802912747226352250448538387298169521319500712721937989440506900717016133697061355057746134564908803240006266860740462036271062385334642723670762516197924945237330498332559636630373248591847118721515370626079482252330370472379418063546053167987410581329090474889782262210346970250093230020730754291181740363683950462193074441641380651078234671714486342016833541111107379014787293614723796101559590724692869241890250623973013790870799796408014988689241643228737993734011350088458564784755592197341761787643877812880275218555670258921210672586125467202048560611526004241593591341456699057035890151533292216586908325763627765098342218624615929896046098776589120517384467312603110357210747227597933556111663943447865350546997204587606372303435293376365550021425678242236509669082636566547298177187138740514506545874644055434537929265686208863450223935442741785645673908200039587802390746091760129193661245484263885302259372385564786024893909006573955401074992645943226504033369361089260144205705792215774371896619029112612171796222268568372313160583338119148618470521850729113019155177508389434174258145737402158697232141712438046505922664510545433880796883597377542217217543228148953696578728679437632444085710044980754042547848240405799411625515251728691808265475764151248515715878369698346777527354869627488920575827844669399776950299327691583739380310426397218134524190217322999097545575987992958893782027947762980642848373496659187035880456522852275583961896177630767062056060280364233793882297262462037806348250092003975893842910123229957473143802003022876303045156842169472355805005789094786036014134619450086954089923609710047125147008858131672126815620850301503467958046362611841480032610868470648816520304468576484916974294944444590483750232502848769121551135572637572634559430732315021321168480596144325966411743969276249258459550457272533058910822104464686266760592498085733680875303679113326509390834500999140604642825108998783878210390266851340904468320612260817334345459693309435800360514651002423564109047839204152010981103516322313931510266717837839294965488669192225606855696760250905910040904005673352706540691818894832761610775691387865236627745019042489061804330275861841598758705314553421224513065389555455565778910794869463910139297084786833168917668020317046516809248163640628212137231227202885949309113326238650801580983567791622409301587231755116812371355957252825931974018016257548380127916405531827554427988422551851978762849558102136610626269635510519178254015154667796878097911001002408655902578735056239386041408692440821857403424080853234876138585273487415880823843773603772268535749592499645903707473427221218643713410450743835586081660541503971877817460862117419846202936820937342427833544172202796757625202796937292758953327152875377172383886327746137817891828135344575537790983297343919966537412915922496572816870591022797809699967884596381783359859452223698419475890696005384338034803588857399642622616363046619774261170339288470121935733950768438891529948255636554629365206354156041785558300353455481605188962570460342503312262778245215158151414573900039460376997438267489873400015346667429380821836496852275898697023169121159480719620398973684785606982046663276562759438963374375738534852048722535701746463351990625077016820054760745822798466364932736733364753535553010988831352032993391011997060988902402766940959772648391738584254490442526272865448403516314391657932131356479914223896830515887560096988559738021540719872036394755350000117429475736060912094383925305215395401047721265729224154799552783807274608884204845178558068573262957389565206826338414266109339748403290684630921807696112326878832412754425248861527602944834782563689580969077719119298768888263229116542982153431642373859212679034995390646268188207921860511557524482287674382677399388005685033563464459314365202989105764905919578630788565746689623519089661142123522880792625998225996053232998227961394112648869047505716648652218290307231703760541297606884903766216143729338213485602401778971995542537529326551338409429856688225193907710510218399759466682025752075414712065112377427563395137469923243494797001904013462081443103332596828043759082876121308644078968266700336964482323781164097924558144036885503198734610920408314043372748608533897376574881573700856970060377473382647744261890722678904134804143715583767094093571869267318430669643997107746444409440604258848763859267646028632246207693447506870679512656543190418656534711889440451141962186276091544962947651901706145330287991814852235409885112804634165074713870176750978730640379958452228499536859090685885025566722452718087662736431156642136408987446147888709814995842482481274339049413747722823569886609640781147134348799056726132666622942448722187583466203965846415843193242086771020318567000853550421997471219958670983044494326189263735387899265300382545931691086994046012015074518777596829087627348207688433347524484213970365568047024364619732543377188576559646423151559299024996355979250935404964709942705005188164008354671892711619564963349735228007586739432571804067153218293822583549503805162093264558769486475119178229714283247519080140235492556380342666552925334097653084193754624176180764125829667526975189955388067076711164655962749923458240978906273896129633763174008586809929758450092244463202661543762304973313081540630273571744650170844420707146952774527015882903994385913045631872747778597148469248827451740270946624150378640090502689331681768498276194080708954893437916816517703151727196595120635583037480159677999189103541429830616376729788999147592690681076362120588703934894115279204548724121298765790917619132739896639025166152503154807116956808089159195883701116433411911890608433128192672526535390931928563557892625302385495016738559296584161928366989729509121092986814344544575106927059505731743702950795630664668560142415032414056842952226128316760504030197622598787145234239771576494970135916636938255044685239358057597430936313241898069725127143621675351587094854502218579679063987221418315760554691580552265138050767871843513454555542231100550606264596715842917222598988080115494097768953048091251673541493911614749071731630615771781749346344622724503348112699165980484166668449512859893337645147526021237772742888895160764866290788335660516865701745388078500969213431945647837819187879653911304329314471411228055244005040395686217522177277294001024228728974882868615796627136389828243091402307464632522619928193260297808262543866579841534739122893966915572745326031429410072563000529997795407558230750361627362001354815638650096697441406744952066251231360604058439283678961708621733808934758457705172592588371410400556501312386622046372081104432896198367199671518074852465739107164658872397599933425376395440092113833069935897491273035473465793343302243028551662369233374850418361959647761883454273416308841118428275087448089253417786466650614999592361681980073722434460546243115461284678105677519825949764336225106594322967822114654748663177013871061478594998218354587615375735360551587026199351212806801012857165637780103265641310784966206912664636668101062248935539134769933025521536565209607485522788719894094310570270113562043909021494220662733626419653735324658818881751824341670721531930487879554899315731361040129112179652406461626859057425433410742648920770511041931193871869922175705444304003969221581125912949138623917658324468269788091763643820253209489799953929483763131575361076386250920034347917989613969609934648669807395170950653379732313546402675554364947440027109906119273167960992608521462037141130821820237850940109961816700861456019396199046400050591529568795612868432027764935690422775868385681935722635871451679563221798203184896130146181734121797588846411505107605972255316005293234720181265514025924321256449401452099791044958024429333571661211353672074386381437855870216467870862525865692620014448904349983325410707569743227466472520147095864783466147970103090915696878299752543133300419715427565019194863322699598272636859586536033289298195733168611923102411384239255955807215929311278053822214928367035424568274605473645325932212565373156592529568786460527435012432348090965968776771496543085315098486386217374119587917016393658323480517967116866757712911339760837452090613943475352930135039054862881892187304733310817333048405374637979845364082212288117235607893589207418176684072293870985981854864827621290524920131421992007516495140378675890465701566284946270994672730402570922567111463127246295447487889967197062619312921036464205617698904046190839772421391952905548995964650489921325435198092828247659973986297899557899431711259483084419849273278532401965166049476875575587042796172950445722337351512795323421019175991454689111553765247085932643704820767836212291600906957461620788088485209288045694546290132699371051427363460534660235314314733009618127282099766145507608817095847192441855749179746578897639987234204196700484585589519055824007625544646843444844602603838792977416904785620985009347979869833805643169983117070892865232128426958228853420409706015186487494725593934036145169483398301294319106446946913319923031448769982707751704168211737629688631911028558112878308206674356077807432016136221874699895720175504044071028152189367372572412609923447525688243294400827978322607146061089401811613747156815215251439941009272308884967430447654670116617602429479557112455773619939064741058983775091706057062112499246869133685595371820950843278991995982227579613934204504368092374936649499557541459616244504300513147690796228770149809449873505859103907846806205765867846445729794824711804276467372220527544788088898924810645548653301566205362136433697929140081359458670725812279525623025047064946467494366859738438121488631096387516215474977206866259635696158085719692708598174381239887827103440228171277710848838728983644683504861873716335322750895530343932719408473289345634911715309269723274486605591851207780670536415916396210899208287718134937200327191047913511516908342413632018207073944076972394483201383656015497071720144467869898354531344957369585845255490757032499482826793211431204216873033290862414457913176276222447096485350011929262423003752244964529885247679406027932839503431294566031207004182300294912837638549280407104591264825497257698006865477800705312604944958359988994687002732075890056827340547695509054475252475991931793450030813923796989955471940166225987394315737614248989940888626895511117784615972328811596127490989594921177033910206583746364686120322929397724166397380528926034773866534615344053851995849548935584249707066119267978556392060818343080024638318976897097714965797446954965045622303606934433486153915847332995588321696931188614521330860341445390647330426473475135663271639414810294820061262431449701866468806956637783892821883658259793931940949565847695200567921258175072661597201625611288691530267847238982685632071058192294926820402698976255382535775328769498421677797441399460192333656299867453468623544101130272873840037024222823534704575150525508569549034722551763953634072887419726268393661492168007501999792393285380419720940889192917733653825926805278499645348896908474298345171149573971070419097032806995857943827293139433849192531985011433254226332363956748222781955310677913316938830257659737258925322481532101020770922159801854844627977099107050051752539074665277651795194996712906616692883882040070088062958646309302315197814280060740838506415189587194863439657674187936721926234042954941921388158693164795948404469336776780555537634721300152868005520296906603675942300701903272167071945297614427827650488987814913436786203065597569266005377355592868383013346315051916330879649778555180210418849055448958458682050590058179076226258143123853639010206680986428535749096478381299748374209173603318524494449839142783604170797570689894552318844969109521987280791822263955115975094129925535640598529307755401841862461269648104495825280318761648655424374259213425442157984245805249490143442404974411081041824590367558156384087592374530021462281714541633301954119543026406379791350261846405148086929525583529456037444881385980686109679142849143164252691855436830022686038742089331300081467538470025828647908322464667008142782310258025455423280785325441528012288406082720574175527467267542380698694022450966260028956256961578272141584588130253686950270156284636710977591114969861894130924109092064468746259151291458366513883209494404432851258875038279588850159986862679076640299074424754794794685290792242938364983933170794951918525460866070101612144992086995136019128172367872054381387247454509337267043296976705855669375678453875104247490317403033969372513827900362540366713747757034502009109986937572221109311374080855643884178545802362953330160105184850557982601280685867655120055738312943225111161240965626797479035269156628302013679760759488732199752859359994832688100535299794014122217388716247905816932983116226155062951770342897050839430027304890566140375376739835330945636542549215577123743038952133822665035920540781420736144576090364902266737161964225108930822628209941128734030258299378048605832277414066754386263101260417263894065804048372896655492696244137417821697694169487981968152436535666248499309520379097184473776755865438576737225864370807857233278096202440233213680511811356210437165140888648530283780569077773872836671524323508529057772065729537575063883059526850207582844365843687998579642162052449957472425948236044477668667958331693778000251153664672283502330171417119516176583309510871900946325721569879594643855477223794298277771031057146309029205499854403373136563830100172073097789378198698871325285006536513708949969284187088076130275560948282332756990406125935608372260525028314297354530695927200478883041782641821334023598216822785459206644745687685860190607556630916537979398936728070956198024952806818349569533080315668819280120854667604581904047523959098083998465734808241097709233813998715546161984513556890076624513488137865444045890266578878364128239726739036650102872717300571678252581472415781420156876166517166776811530521516530721111094813070019500716398513571547637392736066908782650921483157694051040308762033005232140125422338741768263270570066699894658341132791605177908091965691106770986126788519192153211531040231291915234268456982777299945942000295331154760610459664139557245944730961363636820782505120491083467183045790610074115830399320334780099680561768751858294666608307565086103712838336126415711013818242728777146012288774403487415453634606018907448432132402841895858925352726204072341935583256820821815705685455069622086302413147031352414613967717634744267224914738663086810022333754431113924150009644612455083893541688249600987754973237017172044219848479719097719108977585481776484952277388531502381960992351559776988692200353712367536193405607301889755317169994122360043990647656943355425587535010484499210628430649307375695711489372316334985778939094522848703319862397634989855810310574074389199364844367654055061799598622941192101907717463984829727286926870678926611589268675970242375360513293004210356237390495159261308945565077342888936534027327471091411544426655799995099837105559069547922280819257298688252580384194595880699608137832131508748424740566685614920872562502337991268588672293190582276243000534747282215254256501965927131680195936974273369608030897322334973308587171684966614757298810347175778599718565015890344353850938051262307881332630232619384267960800740220031225040097088374697130615628535023681160336371473399236835635056398767749812518336458287902441345118636021940272365873456586304265059768592771624820594423361453179282531089407761577219341475568288975086162870056403398617018331035620605171135295224570109742251375949686530620395747939536722263162750131584013722145198429237049407983400075027943188839686704339684056025908950223818548995809978784490078795417755256984648071683520062213094208879879231633508223571300739460173921540346011268442274869208706002327326679835684675279931939591987920564721249828771855260532381915431649402787274251063786303241154262936853712271518943999622243682139448263398360019758964986106884724107090900341699230584644399510105224910083643036758762084340207125629847034275287907834093325996879106734528712005536633883058657730811626452287253890695699185594178189046752803214063341608070685607173738274454269591131343519039860596342224641805875122018249445151464342217197747592432443618633930509025895870898594709740538205181144801688628456350800856117745306815713183387983268340593348332788794160921811506083552378737858074501531483041235881802592543941645857374113242530920600334353162612429882214667714137081224168179118496360162164057724789855616418728938482934915471601492742478301028599974141068041389951236936259427411902790091164964459652641470383543327310004486217158432346008291948742678383268823609447304354819785058389055471946302559960993812405683449439422729127350832215108111393776903790999061030667832021207082623039068687610393439428614820996773679725144671601222504112537197399989316933650889909849674539670134641948885050528842283039288936158012091976999922882843236290133922033315064158815940024827794178307531459988172399428626207282275073060559601990545998125005439098049946855240723761359338621410756596122103224954596707543368158525907331377220877630851340324159135443709594292401561958440725758245356590359156673310526095470166688002639852047973043151371617144004496720631854560228603685462533694274399721795092022222647379128242132962193387686318406069420386939000035481536591913441786310757279370187353549574940299927846544213268912216283656770462587547859881336740637793481120091130727263537048822179552537823946764644970926866763876604788889554574110593375828741300961322806648951498888161414555172596620682650927097988910634388692267978272303017131796942206882186157664955634572722624446260318077648553682489915077667089642906202541594270724110830008424445067117087775865209024245008757310643192415930129376549996023965956527341293828909865393287668487403737075239099981304801394904065331884415520919650257539192845899154995440757793987468551306018990728380085293388399195970830889414286977172270052797095013498204208643224806167811445136003050892219175552192647696156510816771593137680420229972145944400369831826794006404067905594882389291021076716321520582305619918622230688195410708844383678201103383974187195008522589756052828080895119682756157412948275775402262210326708139390032967355035964109069192058590544721188946694381808127912136924394355480853731364814334248339842060845691226311366300236407350564104296938455379645081015786075231001635109395221046311134013963180020643601608500253572338059092650665037011685079214089753431147895733963918167790165817762693926531661948351154861115820498062579765363089498979464187639376417194401979707165765003338581065068762252926057971268113208209390798113726360223625112745166282283167130485645458048711381916304597060448343683906466741911768370185613871642159591489816665085768046124024013869851496184280224252428729304161585774990794330101468905214898924476054929123443621582860509353181922225223957313470919182061045342085725319913583818212626972389945515481159375349737779287228166174307530390413804519507386633296387007384594271498806136768666820223623145503651950581263649410838627110685301760582484916453287082366521094309636536884575940981275262354722051160612811693671521178635918524118446428957887941396945925167356581387097801379040239604689259893680417971253334393799678984532346671609756108829059771642130071881817880547871655205334884361067947082280544544570015101522210599724619720573985836534371195113755913745559808009194846815485177202878480764466097383751405749228852151422313372978693117097450829542938487182311620632016630899027478587372128411290575359252883844826044818786965539551801592797344008093925016547630942586025458254179466279779688323716300443430145535642641476756396583558473710950237496338406762780649833758230401899461694130914104948479840197650769724436320486197467325669147833926073171319528941997852705563282024653759423888374356042320629201534041433009426312993012249353824476963033678948063528078266993094538855087439107093906586246621454151406262748572285069005792589542379512135834723651780041232248636863393277226288906776271826852604672573407649031581115999905138238368947766912746275289590719254732394241071209630883484900053924104662001564793239823415235722914544022568736461083047494608803951560499855841970640861775884140670644398535625772842494013298307811649076111471933905022806418686324982756637434590197664344701753431080279050813984440180620502816026552784392771881798392290072236776532897184334136370593736816285553104949273803303382741370217577604426662239828231368731290155983953313080742014096941380331508596703492074245345972546175244353327693809413058022720887547584754109170306766661150022266675489145212026344401328621043785595215940597779824798546297591809536690742015309655548929796632138675763970912650030011259954222229971941886520019296583007326209707136541903250040442706405943141265306887906884867870092668197296491990789877630711391586419826549008018116663157359432086770712095901381344620263701899002174077242060655909696722183294825437672122634753169760567866525386740068831341013177080586854216248705655251722569395575370835267077296554383376436518269659962691419846450704053145717672718304040761035035133229437458306920132150702450852032868361004993266852278042473130241894318309358422404490442312677590684049000347952506967001621449735854980107172272264376157233816078880388061239951089057504024779951391570096420891087927650784870800631249377137380326065126450221662312231943235178144351250375288333146858855314062299275619479120326300345932178425625957364121064059298147773309821941803607942403515743342184201990507109652095808490403373550745528283008348654983219745413710422303441570960548381389559651848293785023815850396600292086292237083795243107927744417562088800191427248420097363547918345001229049887701453851736228858569865557719419618798542601179060397940099952295795993766958595179410906127807491475305192249003561518266502791555586503243686384887770843194155854234309851155866095073862132172078860887059152237302050775500317995701235083444517243641304087315193689864602000396139750632498368900836170819127945199021233615020638665592857039881819466477268079639767419493619660387876392300374937976968587760266239517942516324768677022632565783814065547604570906929244160143072653690317970969611861501944497643259916002419119755405255935882598767159344065064137169117518578780484792014255163302959345400568231586045088445934614373932026846651939348941609048217319034233555224383433505884458705131436769549689820717319971019896609531574493319729766968891493985039528210053927561300399627359733363164464680805202264162174710028878497033434867247903506569493019573115932856402127236508070924525626029557327957154344926289610452105802221258548531481436323015692026529775723899579172658656155670267808437128890679946925800126187015277692410288412592891140871933539931543242564828747191870281018147649404164525274832292802532221203866971579692318333684716055871027748868471136948240068169100759104411137156881034342444210696292903696684061039119249611201703949947732371173835384044738449034571642855844827212293836862134971258069804978247474402830360636457734929757175503940551629543839850544139041048483842938888792562449805300184065667033822341339735201323256272986083153171943231532680409662171104315206113561494621323777683123442184418858882158485618821472773409195943126213882558972211505308346920808644005964114711321136682464031878870223294055395513370431260354611944807629205625197585657938570260461329230191997858425124710128390951020891990327358129298634724709190306600983209797595960678922184118056595826899847885409082416881271353883476597194640641521568010273262642789542087142761729810964317288725555214758445026590961087487477779899525238390147271091123912294533480731004667992557748516853543835051006118765741999071680543825313641812910369863557638668554463761858772218136341674565117976422624748035234782645916521850613102967197247311916942530773263968178643407412792218645978997788617476362713790288900068799089417369137313981214578938726654437176213052506968623854366988335155166586633626936815081385553279294055241857638997693453052775062492760983819198682204267644473225994044356635098769784975251580968966329409297040817605008168935309299341967676077886980220000126213262390079536610250507805320597817615529519166899601198802053750354621752154134313227556064532232774423937744413136615915688931353476002099519858033070897987937927637970157186642145984400597595704250964906894196190336586062989481309450490364052527437879815793507869645742130905884984475012204775910850666265572070432872824916145702795322641053478949712889409198046578495498051974200858627290769705028861133968379195068045931931428420864684710701695528707735093607458999960540238633561204767705050378208640449607492870598507607269314856739860887294396707547003632132077139345663305935910651012558315760224947132604606535082013048773795043124169894945458184921539277683986310217559115035950358880612428490672389449875743501206160087718816149593460124524659425312605430247238238515549731310492101398882076408166624295230759004863951763974881178470837504576865210719148508243737545215328960144346417189339777947080793559037803661036770413138310589271900392753088129711580697580053421749648202790910291237510876557361444326057053716105949289464547989942237268459413831018886401232630504120926388904627757993440788392874708871024555936193329464643890974399952730836152127389572617317125005330010083950500724366735075333317334524439089063699390073256093227683949478282601287550332296675382867101517980213528070212733345050540418650828209101037888788099859741064336236686363746735055364893705854388103210056618009075026372233475318668501911415915501603258891505323280991313462365928959178106770168637892720942863930490098375116025007722786127667488172946136443905792768890321609706164782771478148272795503453664396194543741193379970113533681109193124125125000356519173326969541393677970867660357427810174795938856720884602352581369297838794404796722755793863299317091502005856133657171836509304987095197404722818199993317375764176809760278953780627163582382455773509764944501529195408621410450952901419009206418342772594640692474412477725168981052445063330307261398355618218919894118660379377263587456945919981568455445946724839485796711092811258657171160502773457989599024133948705302306054036171477278856776273681865275902640064288521385580646415693510093339052020128454135399712554546023655309667014793360927647310248236243009259002930864091006416623503503375073591940320182252281685121138930869021344082197765404248414300121060138829059807674470372428573810129980849068591334537588453209040312697725102720557588851521354839947284165138040413920251320154818153048362472497395882222808187874443855911250723046963099017167922768449867389352536704900282180946649714768232846710709233990513740396390516137720358778967407295229188495119428199562251786908667985204647265948596874076469903631804726112705849203902290196174429332554065443174943716886938509553341507670740290198026463057375055914993580694847267316483918698320619645241910228259053202630125233533759911502942968848524076488341131694558646464876329281196425192954686629221418167342794685242652173794201149874801755124270913678357847365971325330266807096759154263339193220196668003379027304785875238995784490073291473837619590722610044464051363270486458072705359334307779823481282326340406585213855659514780386200033113099659080738151594024199301494394635768100565271799105237740285395447740138468380857434011178546250399509170983802507424259983391331537390177543145967610474566962792550186703717381244429162824205532230177679046616983384439496818930730222172544096836510849788977475905467530960132222560236247911300766608086875914761112582592788771527289673159170485770409261048412616308508740077391376995746555962946510453842355230727895087344090727397998215061976515455644426091375783069028232540897563607683193240284818406178415644175890182156563664367559487834260620326598976240154893307085673943749422239424859919973380467119063287291206895595569315293835286828578695827751752114960848688253138464479045756330108577408952589437819517358929440225298920338427348673019211154981343587399308008081775494105690392931835260595935789229717216834381289759162950886107368264421287963249693061800222958182099111667767873927315128410520646474734931963280139450602177368768140944425912018607213742390472969917714066937571257657680409056001642267638938929870065640897905378459169456767054702557765657972670771699010723491512203242126983052612330105488714978476382249945050464301162371358751465420770889324803181119937940122016184128670559387012939052613803626052539222060400242385549361823126819580441175227695704291993548821964219076123990442986121484155720650616253243493257419667600530863654386679815067568655470773549658257149519806143022755736156494091196498184510763598778576002701328526027392908015059216078836758245682034744681406475430498479496132914421483605891773966860548803422596255447104951007082632365491095157974216123125573913733139509258763600068291646583852575928169028504941073580814046172227694640555040085496368139381409093786461207592668826236192557310868919812354431883990992012214869454764710766955904357603018582852007917574838801043975839030530632173282110342661133907192193223142414673220493875461064734734800182196524120251229700343493027307308811126509431155508611276940367929852618650024616195650739562620363428424672937557711457905960434476346023437829492045427383251993236406792932808729686172701321089750754262748342167333570962197513981667740293662310487596286661356850493590910569115231924462348341102670868512372627772489513840251540682744414229268082775969241630257661948582473137512965666927392001364225692757896525353940773223565688725059839607079105247060714188007487317622552208060997574277710543204953707241413295967224422392682239240060079419276255601385438245690882335017405682637743580839352220319493819870853311533898207845571477669649732658398460730295680561959095651178971126567301313812293664933934826018252721862228335668119767720121653847895313610291380726926350569388052050651378671169114345858072936876331180665586943016017419285585413275795370392299450282118543218762267173198133873449294890236392859208803362927598100354339813892524917088667668903971133851044737390317448990225257221440805631981021301943557651429634783707462168820554394899990722704239574193066358184984785505287383254797064116241616315194123124536975639669736191618164119112102949809099406515799338154594480245214269515495494044077037593271081269039471461775458325675155666629532419409395343390376868152196894727865688057738547892499410519706514959089071196948091010591134431801416430976912684378243443024010302027252028685228506922273354583488206667228986919922022419978417247846609773812825605132783560664949253918660636595853773525530971575622237243632838984929136304282950874150874112031243224472748830759757103746971494938020565457645003509176102242997290841146843614216917225833903772541724512085572619658418836606812363204809447251659518494936408901538318644927161621429954381780657906740583362442739815671548109615492682545152563044416137720637954451445092043315348334849870033697890128463472803655077951426029536568769491595344268682038049750212268273210020508478803141876343755587952386765825131435703939328255014857616620814045477702545865810354461340429409895317073401285540337836256621064612080230692207194492167484089448515300395744884284241393465132109162796520679799412646813259005264179447511397393526574353871922792319235045885002955543102334458137453210114770700870582478933508423430897465515717205215879220246130363190605186749278909144572611412346157525226378428392820151372226677539120983207360294680504054081858424197751556182456176320150269825278445105615646017012977161768504559504449537639803059045075109473098346457440853229713097795672056706993134667516934373226871922724163260087295737335655927829017015914272538172760522013161900784583019098429075436161559224114105107365765420252446781292362648134033694696277628100242267284463469235782257769808766373158770860404278161037467488580990472048515737109309215078133324770761688839234502442377893093423474183122563358188147218587759347053632232847029712409602218518549264222945500893159369235033982513984355121252589584242240258730454143537262196854098068259622203728213943767038939506744237574222966019411528376595627375935822643798036589267791207887541010681127544060062558251872070932413138550029503420621026634480633161160733659679396473990533928228000254930501279473957386288714945792700402894729010818611166015170060017547152641534409395916531460286099465733242940313317402020854432902847654279235364749538528350768142955414215480947154580235295248205849806754150101793261307764939104675686999273103608484056968986725932026101354943074397542564310261900043449194837272841458184033032767725257207222529351049381783630442762449579714754700968361856867164474165759626386599426427313930375386282156976519669853997805499564469157029791787519851383433804682202904176684877101274900140339655097343664421787074229622456750769680049774306824818840227860159921583183950454760978567982594247155397595471577904859368191218889980873241656712925103325656349907757121481476906584610720481131230894874602153585693169142078613550126528824336904052904174907141023198398139367250012815511024379414658419572632493868314621696744659211987496205355342273724142803016078421282756442476997630950204823836798727102543169918137492003643821763295517968488728291675988902796810339628454536467577639205063142633005655324484299514636138678159195223851196182655922257789708727427693481903937117545631939195466914598333861505322106991266232705273935460409098840291637961171602678899930254676915391606210713216971219393035384526077937792036383737559939741897882311391747763200837520582807051411101636355777350814922768695617794754282583249656275052856486575393637055376012388606173565079218724033102907229477572793521567902784241795376542896421555435713348544393986314664429057983542820452435033435275068033350183496701788046159094780980371921479164994702580184466051988968020134538628640849107274988716569001053297268102043498471392085462155956855728377496972217998841335668123834908662738516621930459247511103432080232290245597935132160426083128148986041211785834597359194926198510550927695619325405571357961596494638280232596969921927374543897423387352182172169127398652726905795085700838211522949651030029753868183202401870421210510912539952996086777780157457027854622743473077085352087103383035474565665467933409939405274835508031810713447598567127530628641636074805883737307339668762322188353400364786325739589648569070539729323697343919110737882791649814385178204181735689975973828144295826739003614360388874288563209832434617589577942544412591695755040590050063032081452764232854948138266824912668283837056087793491107492476900054677122826288482729617906908407066235878250756736555111081465992258474765686701224406447961864465981214733506433577875385735103653480116278212822871588268326424146203277117883284221384043017097971901949318954959058637211749627744244306652271500849780777910608687626047892749991930342791247454636111148053737146431617375751725676757665266569295147414229461897091082882132505598233091639402722630615297279213475567105880208724978696116378315520559008458957658621462409514998853991478000865687296503152078712781593288489521854618448188051902834361077587578912431344129601673592540417867416774129466468699573516600567528385751041536418940722346079056112973520570648172860719715484276322016421424479425431273084231887762106127379916135201663671367632489666174414048704125237101557868554547611396693794692479764800168112875592552357465270706696203760760027770094281654996186871179535523317785683090802639333908988885932369363276514858257345112958600000627726244511533111507753984790277051029053339599791680004902458439173699391798900723322943854119332752266195521988742619236689572375366691468249500791161157413866169592475177545156984339455285682659898687146305215575225432699262656409507622955957776319832546815334050299841915353227728382805064557928473509467872447119584266673968349077263527215386674490518295910184820615090411243171798415045138537513139330372767059561189511463392680157680106292575458399400349566333347016694788548790193512938685679236274274953979797475174283692324784352468341423352304047886834651017084496626690921994236629690870816972607536554005484101211052706893448696004778124851323126516842513377013386848726417680164718035897578967231052977414841084283248544225840413319007527480698356398903500490567950605239028598256951750405937370556388892096020497693777231737887125837082796190885844039218996986319072428827474818531947065872614750482467754761055566664608928008371139916356995198822561987723624606455658841882981548442677396959227566004518630582638903464005827648582031444213927101803580156081474080973602242289310042711066167407855569707200560664761160848004243467430174175377444793131291411935722138799438392661955449748698517615739019597237456214978428714267106698971645906364845118344351131151105257777734595874578700620775259434237349849662032926912551349530607825200991920921196768776222850237815264262202398213689767513395540651159089433607298751024226867168102816612102478406396832725655011896825222288055391102030914405105410352327398824553157565022156536165823699051858565324714993951808576530251336767978709649772685435897697713218148334016236132784128316605671393963742980117038107410695150609811869542150396945316942104324406000334820699926460354509875101647849268257621308350258189044067769910415951490436688184059074884648369697268500337213793534613419053335250974494180430441895574885785438286324635797026468274975874199239007578257038590802015721340527978076015119530077995580341507676356459449487754342809518685606216246666667846291897032320566895731460237710475688105954493510530134516485519494646086520453337106631732109725219448001804176091797483206441726048268206210696935826338320256961726216624544752448333125287229898409767852514313475144226475476921687725199648740045261697959295774039729286764384491127714714407767307475497324509919030876647886450418255640573722140949147168244888388083812335341221754232366033366759545918960196065553142673934273608303016699812679784289905171340722536297054999164694480923135541913409361124370239934671955894687276487185599117928126437420625543851647025524111536343623699428453019162041883270173887319738100958876244481875917236480265376064197435562949378698848212339523165263338226998721992963437920441169664384670405394753872540977767886948739129871413429448244553932488623126063713141604659351010006107419423135222977336873823374029121660872646640878085606909417755438332961740689934518203572767066338219578077597711670190580008858728143918388602442965496759446404393030693191845059190137121351172226468210314260239459141629381672452681968278340439786863406691003408256289354033564238918521755889353154050401164101751726942210788016461969992768057245019296179607276457593209063312313432921844542522557820069049261996376560258426057097898393786811081150547773686604717953121472993907950419641196122338021695643138080348847585971097381223368750981881426048503756904489164356731916139552972472380470872613284543879263835205924787485305721269825695404220196026073935176044383262640767750208015090731439080739520127800987047605577340408328640958219163985816088013305533158063768036099359444745828507898580053844556829834345215048603537999115250447588675990666879473251041854388488302239386738562779997318573366333966715973329861876881473356514757970285206575944254871714814111591066936956720775536066626442222232739204137744097513464221081398875695012591874776764302450976272449365932328059647481663376749897163089202050736849588728090809542233076513812510670429910884581616417715007046767571668430429479500091962938251153236934648742023952103835402006917904754576870836930252727465526444322011265636099665203245787811593697958814491933954448236323921260841055034812641871958541979130129680145638764899613388434405080205523466249118557088504105129538261247321130681246265510586998244991855606033250916360081620137592262356808251730133506135021422321895912985297610017301972024086483290811002700405491053319526439589101503209344703995592766011497211538780460759910131432034298557967543921724743379124988138750098728335334467141655624457758774938222597635502384920866646798309342941432152392379952690720390571616331002972118471060599935540946824737235046067303504369022436611595774707554696896454565543763287763339163489002638109447819513011836655566885176420930325988175194032301507672019293533596658328538361645665422701045207226243469423033119990509018978572169177987346858489844145272988041939316419859029633839905672351024045762314875414316073428609121027237180628025581188238739866895129528493827812966777558480635747860869354201163460260553052717739569920492900265979663527729632290408390920046037821553306024763606610010920419893234715250410165718555962536916070904866084161449704972178617903808872125877071642171317314591221740011057067140503496559020301689032592793267860422520582149667021378582208316036649322749123056372486006143088905102860994605255007695345035288951649392015599800548636930622757329653497636097771924004230991632884611908320075311412157762678319370772324906129034176117833548123239629328990986818488516231540502235628600462072141678144193658923518153136424600286743230693029471981732576815095197838998963531547045353561385460105431592858547987015056755103222389418017444686438825604384651815566789454255119731790155247486816398868261134187887266236931824358963995934626518090999661366370690379397657388566023505012586273923867911955604202890469609819527062998139936171708868942300398492025471311888242361050894460489385768708192837013528302385174463294064318420721350225896828896880785774440973407826150386028200172684529490703058051308283752097525337742040308660351821382281545893276881089330377450084623866545425963743174551709383023825198587357228223953418002531571724517683673096123770809774988843534438383687234030624374214893771559773441558140162828927025533797841117672968129341610162081157541258097451025806209360435114501634350464801998880766656290331634688696180552916149747756628745168970530818433515493369554931688937671727997620306873499017011957344514260260903411472437374141192997608900864129119757893469554102632544016788199128488647439029191896296242089545838020424876810867899876262544936315270752916314463273849675588670700086052380195767318426743602523029467324101799260229564987303732099172565089952966795466255652654808758680858291508531731910733741714938934868025903512732066463735577222139668243799484187010925983158091416670215038299531264755543574446744285567188306565984444884693352383999058267115380753153972352493398727721506917287199566935684892178310469579179901199199740028735049276374219373093556007145930683687403517571754838158908744650212532847367259792812197115812648415171518600591145524689180741057694374373949367839091952036642481921003468311152168014252013625732654295525894644943254808571107409466685189296389660393681449146363331519107113771911001697220804816465462729862257916679361730256307036669387030501621639951348682428399547675044141621936273348985661763985979246788590934096731772811648534804388845841326168015695956428859294291474918081376540875552869584027815147487173516134849766490745914256120567904251808510337665235669394965137588996719422756343046988566688946071432179325539935096955311013023649224392063348099408010474580586386014027028662842299646234195386104587476659338455522638642856483689699127979860955303629728738923421677510544485123666867787877794963080386746297931562106142396024132013360014563820892598166464502771062031351241148558228487243350463842469152998248713315692840066599918859491882910594262420360873732880224848666382040181159340954478098861277037523840956620454923412425010180812259819320804466702195774394408379454622958090718541397805717258538640345765767401452558662555931632614813432076760529347474821950848644522547626110614975698523656243269927883802672716159325793372911201428741599449593321416793568388236658956443722200902737881350240211321825548088818130153124229073719106649973513736826321951252056126469686607532407832929932121268401259581231786661692322306783262879184881859953299331603097159514315295788552868790581854714056727329531375846421927271893328827881058088796346991239061326486326080174225754568211251197997552586059627647175361099817930854827667879486360962175910562025811892962577154284495039733152334740360554991376791175437662385055062392669769947206112762351159977555988761690461836089880831726331022441321210595937230318094063786177517882947471440779319059844522136777886308244878970639007819969871197882719880420469053811667714466313988972636177281362471021701780801560946361618470170815613246067801013291659518258193933236753582531585332773474834439757688402660178652178502095111885890249162979885185669370438255409489341017251748550255967738687442454345775059230070556239356430739978715454360966636486500500794920092574148147771576624075992774763426443951651318697225374870245977190169401133180571712946314522757235519889445039873975420967556410227108954819440276157262308262109291818483452446185660600746044877604779879228080043011883282771687033459733744044002591184116849038795876766175415441189632074925483305790412143455836029141708090962200040825434192141046229067285805753824787754403059734399057296366542455146078759365948085567816318037789984121524452655999824510170482131140904929736902822588195858260150415200072578482319814888510727439237818267125256769922412663013975375954208002761976532676067420541621885549866220243798262505545742450437354445518727781673349115295911236336559156429228749314736372226366720599788685315328644988154002840985426619273863069509026734231242214796399501330148109444243745331787797348748739489144346076971407406167196273680030298548406247806399328098504608341097157315553474388329429858489352282651654590566177001009271416898412333091360545472565920437222298445815610737122275129148201457802368956952161819509377377801052812431426078801321552225015139270984412800499145313398476673420428109725526721149991730538120688978224796462236522605909019397658155239935586709262020344508473419176676324999537069254807854900665703245175268862007250655692062932740724918820426244318521151809833014736015650832160247442473383779888554062712699072470544718539546231670388548306919496289736145928046039072709353824041211537853907981207107122158551479341893942830621005911854769500567983717000194730233470724468718896711035977212532409132371180654075915412166486966778696881221979080575259881035785583001244272976464965882684099855160241510520650730060076460273488799003220505611357157310552123072867905189386305706794272562229240065510530855690913613103683105395129976632077203588386017439545242585041561321391572501670668465758714245944293972922580491206775757167493648895361971143994447653790877337499379778768127144795671576442765424410577743644321804878059890477234942170722166083083688958787601737840255801450585607835428303382096661157233625980788117185045589558840412374719332226468583909102864462114844638521127428668663049098224016510374874756815452453304597155705923364447548529292845966855248054863028816531617443458585540357494876060736278914847164535144084763953327674277902221220845265534365639260590173530199136411347088250881009476373831634643723961184405144662974420516149659858577860630496903283356073450994676275507284254218921938991651496313958517936037392271440701378447468703055327746318502394526251124282784460587472382030043294144732006327934957281722999576583807907261770973464870728970634420778157931905215081599972816978598667649313462444197451387341452913481752279200746457586602978515741836699864368179291591997428579134877281159899011603681595891040056246253549061564870290983701361955135201098182244894427953114615457972356740200615516748114463097540912086018083075232132641811053190105229240673410418376184873485421243826336381155575794693963120410503341088127961832244062916360027676790123735860913016465373709479355208715760688636543328815390712050402844547831612434027411638591525579504178171318921531466791223590223128171935304835938828668922632308026387546318965175070816255874145241783059503745317157159700252761561964226143368911346311172362827862370155261439486375527628794472583235668473047124656705381573726157203221681110176440643285365326548410693836007970509064321690941519581204681812203471985784926830340331339046049347123935594582357065465408467929447337080036978965493145570078153180891062689611350112117854620751099409776340596520636626408186615420354043682613308521967090917754327506759130376823409442324492481815457285768484251430492079960938870221993852504483461424444537166019170654081297568242400835164954650542274005685513057142990906295533956276934587453093888552593419652588778118776691518911521110792902614945054314362650138669758986814784813954441873174780770874821764708976514569623679665652610656289771089493818756746949089207968383767533304443407778159758950299639401691143221161256202447795251634065418459245618304363030762910154079383336696848809695842558177729770909805490914978668311517861455316058332385063195211110410012930415636421042417016114814061310881496763357421030395633537633920845038883048199070665545951301212773410844921554383811679537797813321619813032801325401243419007095970882852251769805057737915571514864685985195104957713582428923828014123209503845918883344016005197431471978771082023739539227190981932349709705108694149518065228685182749081106080514325639943559610356471791983318162586693430701772477373205961694615905933349672730802283826189733927774051351162745577401295602363838726052661753247722126065247640942939174436627017464756837815941188718131005979710927835920378233188955412400597590150109782547557200844574250735403646498450870981787596039874848067981158502096622204994390755270037722096425623886725741182654744816557869558087023109459638818987853051736247932166437148770199174300293097490770084393285284824086092277440991142430320669389864635945632015975514864582900559395949323838651116366289403604284297798699300651394191009741266948444934174607786048632296843885412343470472255667400883660693544307471598915301871568543516559786345654490943140253438242649122172312036174144570709211045261620605096588906611361250103426891162130170444169778889051942213055949536048247981774532651545517952957937834016478448587637147020609339893791573234581950740617411851373581048957613812217223002247642970135031740575038699910333153688337014600734764458398400297696337720070227904129859148257928746968882362325825197394674661622849516134640511626906663158573695099186039718665527506567597403657636193460142022932772364954309519383942397530605657878945010542472914346913774484658550096696294208015549068951772100874779653790922017720325874056516034833337269805478160477939450503932572573622455683982327092581556420063337401373650075877853891188936955676092822811945460095354431834758266950274761227576692256651216632300666863734173582298273757125846867817533933400727951110298587422421056585085677682907199695743185583250631571755302667073580450638342208496388111641464600828139538526420772351099132492786901155736086745778769008218314258498795839557263899774204091337555125923526986518385705650558650326959714521572247662406690229384537045113262043713079817055283237226294174396012324504392922891969047585259601053358840786878003497959928058374040110764461017658935771193896916884071046196825468979456468717533716559895150879528679353154123579983359005331132575718707212160431988637278735531341605513519633047796864257815344452849179594177646647348762497940269321690972450198869061635256625566811765995690185596071532316513590955757169889700048480411568073204329898051153506845346649375011592242716433646131140857909561093527169779306885265133630249143568974701514042353339573796806550160181627248570571099972595149190414165495039246382091676255255255175539387736925510645711680446675943174007559681821658614043407762685299162083072837382957632097331518130537250503699496024147364337428639884930828489741933300009624762145420949040803495342516312576948327734220372657933012863794159132197821429056949178738067734619031112634596462439765259225406943137219272005190226501914290072374825823124178748909847757217072993468138282075161314379899296214628024249801673292630865377041967596319925172348036075329647812016481298458658835136459391823244958487592214320734219742534138532139906739537229802576503251094059363951256797633947583002336515800969060140896495072404963229790375508686589015119129257459528072003951896843242576986034987864131483412123222991077047015743009007054494746863213341187864912535804659171502198187321940846609752216148945560522308190926535717027128105763449382853157690834450509522305678608553766312412044632786336558885753804668540810856621445283216590510427821006559004730255532219057539471434292922614490405378599135160923962334368007593374997629148419048749150804225013206347972287517830777471243181583532419316336470004657428589390670603088408802798043931742836985867298162012954640362018704650476363783029480360621911581364105704166980950453417476796946826153091923205454429175769909226392497976876273227779923163843205760696078004324330060818028979399742927969021751693009389610825827277310511758649189269658733261086770568081405878370654765146685983668866747687474068950174476594303466545926672666281216623571378286862168797067672941221624179594945774946144649524029540709595155626613521810865180057674978384154211007624143732387878782735356657679021164718837028128393262404308948534399851296284079906128901513099022598603722791802793236939405633124550087357645061255555787061927381316931148661677642690283251249798434532244100712252939726787717242033081903504564103067510329027033767238202684045837243614943153777809124306407002018653326508834105617136952467778037670093338996793230272329789300956479752490715369042814312385003646106559834760024793605380871417772884525878376774536816047618277500989326479372062023558970662280401230650252259391007064504372730008953161384194383405182170428058338185569161274906312498736377578685639910567831082062016460269277895307172413585868882770753865502086173339689331318689263384539114327225833307750015337237213815732222953862462172499015111683017532893704742135956438670293674903094986327741638445243349968928145025453560366821226190644614480797418618457218391712561552197618034198650178258009519007722474884956015452994119598838790395089385416629429003343809128478210392495643712458667641118645449064369735364463271043957176704319851683634900788028538328290911767815141265510574948202406740673661939069753248400476040859337650204664684332614274297652751879724776645286199478280311688218217214180856761608448382835590996710111860658586046494972172017170120568221240151183712250083428953998502750764456121984092844603195552149568464006298782221185613355512668297590573957421957319716904047291816628866859295984938755842119112333068338805060907551417782326299612620454610660497694180346636111313485457099128631404396665236945814382588830761830883134237629867670112040993772028399921625198856666820656239938140039718351297418854610181238411127271853450047331851891071418627754437505517843161548591294390080813840232883902086793964622286418397197194783795089863943117252159190653770750177176867704301540105762150874355220197135683117283360941849072815768626061834150021257128493435294839851401423185504467875232674995979535915851791662554299015475417462045567102044052222751881816164935463666648795487731492311366081012192393014590611048829372147559256308593815821750725508039638105284984921465138470274124730138841716186871268239995703345075599734110506622832389781439944676108063880101036327071694005080467542215450138369131659950941905229026679734410478030179376350949825300307774484315919606219717031374065029962314192545442499783615503057587045299197112421533702773849323422658701048057255414973736495188782915653272748698084569363009879499331282461444090996417508637340573085093069770579358737232841290878714803099157090268120097272365112479705332396130133088009743269314397547820928877228250108364547095091695564665477840681714250351638625339799027152853737765918260726248293932543467728226804464106441790131050280946845009828413114179127934693434544601084468736079653525837232538802278838941501706031917692828280879948385601546717626771339032687677735518398509774934111468643938405850318987125426493413771025237359810991904339757399296050863520213162955336913051875774512356611709679283087900793412862104985181001620609709752752075087412503522561290012790580560199324907732572164299054921930849703985975206696521280050209711185779022227886249863734631843124016861841476081055165803106892612932693094457333060753039033967223712651845444907130393353730021778627138093381561890375735580229602190238594497680519100024784828479203583544583554517789741943590841805528026039155215390823698757895753679972038676540271346900087546594890639166854738169512490950106051310527513744089578038521574434764456833305790318028629991531480918601402515241218883059068307887147352755049307602757561466132464116991462635739713995309547463083416455600708866706493459229907194636495535420247507290257879597761171529817929659627405880042793025661705995553217025805654563895754283060442095888758557237161448088241995401881797538290352733573122514598276171316842389807637925150440815483367926381767084783405443731962565512175406493348685502870052767447177780466075379073192262330902285628461193172876614234307426278367595348576707211939902005091789337184628761252557064770501409715080862279689662189928243574055352482147785048565915331913698552330386446016651457790427790017764200435914966860067498355700047601367160960131902920890145549707987120986503317488175598750671740947761962028116843413182791059881744417212663160097404420014499492142003532158599179955887828496559809587893013959116570122651145565333703902682018703407765909534878808933598741737544575056739099517672098685546162894223674554114080924280727667035633069065250893915422730287394119029534197036393685401627091022913874894268276774027409215945915680096611145731844382046129532055429049834498367671364480978898048060165243809713959521783388819740400199809240771641556752138729738794921679475851784221018600846985036124897962837373400124364674902678142222150635251836507551824718312361569783418195759109187038296463550923975433101099587591537770988429162739409642301457580228797945810913196828302400634607944316661669367259211115449028824815517198899716049610667337271076027480543687588609288035712570289356087262795147763817246486538099856018777912572749476229137481699989829815864344971315316958433400130253055281690792391846620310750101150819302536841364287980840613892221658452728580636169198970907963653555652391290167528610612529360330337509340363805656569777013148151787964927452482048987930567332790103262072619295617502456737078014216746946354736417514377889989561235282800258269862626428079065462033413064860310911570008145819478414702634686071758602059429903020425363403336794033953794244719273820430942421080331403211716519832047127266115605162569180354853440755053412405807175438391593549426901057816458896207666435938608393078460747730984292017129508511569513809819751832889722751733725065681930079391545872701579462550085785761528983387189407093752589896091936438287017601189026484302833861464320634998964546855721080125567247600771504091983526754168186490031206322497226883618515133802931460894747438977527250283160611897474443921074935743908519402775896850928539092222879793146614867305825101925276773896290071120875573831117419061030889358066062405895861183817813383409109466066609837296874454092285957958792541617604599910545015187462885888077395229855480501987354546924716784719647137616588808491822489959664779504172335932571534570910964942634225899705750377087183622798984327841412028847787496805932700469819130331733199182265037253069651675828880970682326558827380538821820627019715203940323308383247462924830741849998942177106241747361528898630161368612937733250040220429970342300291946922411901492164083067727114278118786115570489890816308557855421031916653737854536333860619141276763861866250680112757699697054399697706135426467750920877684813866372225176922167214926534936308519896710013914678740809225581883745794745723175146715723521104529846239539781950123474000455350727993371714746982889939145951487635767633913854714777978939825565475431818986924843495482462170979312846055318331844545926909132768580687750895446402339429279610922570282478919409027987547422323488189030833135447254703689721036532691596479084502604057010578012047590969546438110815869317446329874838252541758211928050255387516137747225526725736118649372403604891698928825915091761446364285409163066893110977760169631327320291785452791808547104338377296730236380268847290519100433662241397309121304245828700565381212355968417563210201220606695058331679224920024067920117099302339676999438801846273309193677193565076869608058234620418153552260612267809488746895172553288648588681342922713734376546801620874788581459964727598956056241898626327444097710653824770922520249579426010002441102326674920040704100860662078317020099264441868506783841989129827008890962523054347575516112860957585196479906940662781144945303039920445668588926047820061586804874974218155624682266141230370384973963368835037545662217280902718760231541968161174357869841775723097096234915846624584896482643348952379225451232512320576917819687282091081746453060444241198433524903971849534302631839561403238562408214052806936086886150056709863838557406246388311735211375549287821038557238695661954391688969292188870469938833236974533520646528607059194976529202061625767520858878867637743684256048754001201203859848333341570090400433014450515318761965737860131910761443971136763907847506526152368603629489057444277758491395353457477801074394728066464538336134434811291823480841747022420456536610465008268966176751230372973705030226149568089291118814469863856112853593823282849761509723793054793002083298911357135541905289826030800414921033148779776719409508764087257590074198381577512330336155484959827192225700744027867785790116403685307643859765575169131837057082431694691952603061397084107715440849173011171532789230834708326670695829945278343761185313636334586226598442698569281899123378273147772314287988077234299758927542276850462705374541611327692273404314975779469084702809211817665133963498792791724446452099731094305188205852771427211952808945202349140562782527347145109192290781859057326310120067405122663477903807771594130966891088527190264511079718850808873836268877447555441506033335101124126123243821665812726474044020262259684979130359872693059205656781108597795756385383811456950892099463585979507485589841957072866304427535433296310158580769817805761588569131166110823710079545532809426388317064789444372571046018876460826024082538567763036012876063588770020134577583611168643752375804674041789756579839288835545023092859815619699515866312459522480092482845548210548338777548760941788170601496301505586635927043440813882296612246835079501449452641871941920446779511676543476357020886874753529433523682137866495833938210373640281719297149115783344184938718836944696877226013563394173392600575102190413867233606698833766032012549602604130364471079457281949026834566650424697957072031456764836790496699024819276325565126124465587361632171288492328741943888585848937496984486904050139335464537077475823295917524189496586430350336126795729744803677976415180176705129006207363339722176259552091227974201060930265561914603570713375081605862854402742457682596171558977864827140590349563094525107015833988702140461727707475017172505975863110767557391373202902482511674653444214895631898188017602339804125577888089019229980202177584577556255865126151305790528042693209732933745859162129093660403467182796603821677227971181999294116070093138298654436340593732629984247559710820718059131448723901067185904355536904699982838647420939837614337496466591453756651711513185350042549778707771231733280938536987500586849004030717781018430581273513427851521650101392208137354511188500259076587040493957872647975719412880939122524443798605871503144737881542587601223358591038541769541408235299039119517561103345117896706739577793928471384743222151829763853429291367017396085938066209259262502221462440206106578210215718147321276683411862049140997609622617590973545406808725941094696096315883899678651288730434999572047298916342237540651464910661067158550503716804458013022323930288579387574202499755327133179766551990593752761289050347685869830133360796347638911966934934641427570426889353966133301963332785079711797152903914709148194176622202535642313561797269698819748633468982409192672289488406033362028376804168389261974665210969070577900629122725932395961613176592467057551892764461768192790973339398728272761389882439638754101867568582103953698470058800324432089595339250840579757492763620009686200370664186773087088675641208134592581627540287749300048130760133290474307051545806310768020511814086357644034966520987905106444982162337517606775803377331361482161340684389776245674971195117882199685228782802480267556131891842967935013076972861767381477726305354233926471856388200530536401854512347452754465615987756316067228253082064744533183743514433842845192512427593675273756799749027247388830236560483637152752332083289344199993678228573314495685413060484107608459848792670117918194816241245876293395252083881323696536851204275529382431009845528039031443081415186227652691827120674310731092111687690877228049398473604703117992180980785776817126976510846113158273572501983334220286946243351163729053287347451173620462282146158132148297578611620237550074782382776763470822327389912368086983230926966970621811308216519135392433223210384011036837887694843071635606745759329862656429103182664729978598846111084659604303577131202241476154102889398421446899243896625946244722478824959280367173585706293804327938286127995539916581799361711803634495525075804708951452076247648383249053786054672687239335688166898850505193242775002571032105042877267904839979609551872610856664339492650457513657149841765655550578529384415872983256086694113965388001521696264311180018687823153247400040268118746508624927973141476003992218404161109784775058554547512088043562164824732218772226312137233098741949531783505407042771198109769500517837000849300184650568918473664614776079417765952240239460858209453435236334765744087048744576162758963520214546788742974751592427558449105536240678043815393449526195122548036887748331473798208478507896058668156699785064735411216387635832481054250546178701103943117432554610103967564156600250683760606887662633630398039697612727265569917462085351446788380157802485000682057651344982207055543103526582924815325256759629470914968150360924907559690544442062665656782233432842537211374415931140652979040385029123177935777652949826263636439241820163442407959993423281133395189138384504382516230343004185526421633583226860272363623350516677085915240313115595422231334991873135247802756031021233962331217227194997907237671777230332966768934444429697764660058218900543481016533929333081775360176094533347325288480227010177665129787554037984579812131347350570132455440889346106184020420678131093890952419074839990384421379959649378705342904749680553609028652860238752603793294552808847994986227471450330432953457687898838169811530531632842936870291421171509243536420632790133138444368892464030367256167673180133182239149039507172321011468330078236938710132966284233126304518506058655724466718003922449045474306708139078673797860844190968849395284598962840744057728763915931918331138387266250672549727532350846267871883862498053401622941389203750888581379171784824061983383724911821884835736191632109529415729625002048651671733696105169745664481309356584757174128913100028888720016229139947798624268321508114691516017390031446639688885758570813664564544556847967635534657862826621395704954999911404166997172793650692189627056785378624957259468402424609331917808977490265171622051336281863911990992904664396463212880722841050722558215813660736334320300787505680152634545757776128186964513111337096325161486180125727552118711278532445758272460650805827330088327053695922980843459507565002439344389956605737130548167177521892448475868688585633467949475131212044150313757882536896602033655198928679696947183761840492985079295253813500638067516385057770934685201172878057344626887155193550393277526073247323000557785311018375420864335423193429827791526240742466925676453208491340820999247871673023461012770111362340253837884859780881764779266046375884408189891086504309546621402262162499089791307117862162445338722169119667649126729668779736445699427208310840615438738905388490284401825532035063883749530305759595319059018145614085393606241771476349565019361684029113053704353366390164831744560222099418766712513506103962092774215984467466433126183038960328209663532682128033443666509147986971051260291723665772306264862486735923819637423086635222074247772091207728687515674485712758634494304298897336426615243707076381063641955066201212348096567525163240554579118107655461446408415557335271625674749180526054651921442493070285866664176144224446264179088809301697894487820336062302208728102600473901885171517250532229964203897454471271685842536835137017785059026971819312530762156563571816973080196213933667458974275110332414361167389162664846520198607764729973627982754978859777885913673126698253174635202583769361592797420524677925235103664675724811341826596114314786875339751081590574003825691818505919136351872827977318932407383217238301911484937739168305940919565602142207096871199746534124485149486740841197597244480786906887247938641827526293753727561258521653842877941941721133791762227083112882054300235679681999189328975530229310237456983048229513964201227573029375028954740323057540620371556084778589505746009893835560372928565268655769963415318376536179165089616994406068513620625354412521867907588082179049809292745030521678545656162737772369457492894241538721416718511446553567655865237021109002278682037545224958933982882734502384584655371005931270320101038409899172512803689004021388363605966822371909029644383604024912701286833339049707294924378095552520163676019850903043721197903598586874564651377198745903019425983645312017503873714638919932065680870502239170951493132402894249761494585036844871407581073176090988198452373880150904616482628979843594019221637919290344267249544338868737110053234161743275589173059629490160277828625818630136661265320510000172995728425966959744985280032052298673433772376382479558931648578628287738365098576596942969902914280110922105676181623427762221147025320355538783150161941403510887305873971374132111844861976857793760946058594169664753457307295443127794343372091223974878476819910595823374835315294178160932887055267052148205011545342196353171738982342755095498211563232580143008107982202284415376746702724686261784336736977745186417389893910768739330043028669908958462949845699558301453359339964512253229687913844668727384662093627482844606051395516225511086115950046681307590032260460773790686524853224490986490763351035281013225504352007100285267510109564626536114406810829410222731731173768645234877781924611501756955250420309138067920135733500914288300361524354217695232819636585345023091300896324924266737274250071496459066229588269737250303476524301448017694522244167409418887714323499567683874782717624364775491081604190783675783818417279919911863119308686095210313029231976265270900987416257128409652759265920144974690852159427640484409829008217360172730047522871135006106142926347259687922589321174313040493415008114732115945187541741463773647443568171702322074197002934957716414028039863773757181475037075207632964485011688838218802851204878148904881739699491751818197662628677515190344552724913364220620262814901197910560797736879218369013887424275679629508210796278638627543416339999248669348378610310666995159296651164100302155530709298273729966026758948896115233921216757645589195410800362414257550688559676264803105796885358365312718647669717052876334903787735819695893458684607925529759997934177602646211872154479082634752227965824487778790459089393521705121180492986141752117205473710435537357882889765575486658266288193543647582975191522539769612769380400869831040601496490317140265599670410452274952241058891250403005844549660977209202466396689665359028789172033333169429651096345207102054480221607133181235323169951599045650450660726384158667932333239959839367676445198090166119431134870436261045948003053438614145497993743486552074058496169199710061914900800909818629541931595850041790282638922403434898067082332236930469738782391307500445020924316874044101932626265212571066483626666979652727159599641006405074977708611325275135994803726234905752471173822813486735126545354020343991177442976371864057546123080740232613603575473689409375984821339731711815627288790777681423299180774302515045768986899958643433771398004812337039773972895788179897821817936240620856425668120040884309365535419424523161246648298498350097980107863809187572526243941452169934949561175630591663217442848989088609240323737592341749681190690324001378882685389024130418934115308333110846795010217972864388901977647547469484157574354544431766946094546157804184984642920745775511161615466889572700796903152695801107291040721594711744831032026842347699335967241347565215071393499156264297726320503752491811011629416530708229563254787542775619889838190961011030569104085020133525300183613234289980495083204956818125863869126390414737713226341810894050332399327361113431824277523987416496420361488169618225189585817034754766873359998650423428741842302183966464309486627582275151871296522129168089309290915255414819589723326986854143547395353942913380379167531601767120831792229638226649154587109940174793481423577163615003088811721095593648680466510308087608909877797834845697898732278041214969515620326176412207589612088067062461529690832580168600736872780794563477657819130321680215863425055198499785299669108242018031488417607417176998813039990884374032730737784721256383731550821256171628463302722256778974895414475985754458727133855028189902483850697749361269007403756543721564861138028142050235467869092837478853472860778906489301992338386882673608559593487950839314278672859684664392296855285302911372356906415868023727898698653834505628358163284918732926454254554485238945835323627076460854837255295813078336124373452946221347278504473563221260080726315554442151755087328664598690918661063363236256239911820368532201409267013103853144742820832589398473524123988017480169440652255018629747309583466235085842879412283335387744582287393874053868993986081661198575173475560034290171236410214333489387990742624597116109942578981158799064833639253595520640680991523737311903591105431633836641110440694164053566819275446748913862941393788088054619982797179442404456806750936501175111887203419114915498385733447222864041522433463979794440204176255640761810372262415477245387614714527461930822414980529537697189117162772271292554724330265968959819003969511252145537393128283179953539184133014960099580609813186463537785126717487604205036084591018371108693787507545187473436200754072207853948560585751604713648558313650273743616215364960325284901946117265241443572578866864213057418314676026496740844255270729516741240731415995069873805330331980741657507314135028653039328615331063033025297288226408910703368572415080550031198385643972656039365191544600140215652099255037880196954211120858984099833536161814927750574752392424538170140955523297834016706368985417335657082559099563783195804466800783792351521808727239970106798076377335509549412017945113042728086590977804075303366783129670916862922349204938113090424220517554803697975389994833134032997992106185208345351179295763995757025468077002100248833658387824465689343439139554543502942516834458550588611774308283128917507337724252097005736614160639483491120120514012923216110732218287021027598110928003270578216964105544686717153471341349614707178375734544894572676981185433398709166038069931621327870031168646592458007156701118721079339996073859204513703224110763786100526210634572559521630039847353915391714078427696157175901363581514090372877992463061419246627982825430200414334680060305453434770765595427921893563137371319128264126748797466776043074944081886695265255879588857605613740565299288025236569405327947266847532922999889007191263153018729685726384708278122562333707715038731084404811323026916243202990750841867518284965286277435446256004103395440566289120215526450331198484267079546205253951581188570164785541024379617697621615617440465898270317186121690478431248664840652429997632996180217643847476705762897298721136296852375409884074897789184716763763696170930543095688534919550761032625634712824617411917012607730952553224479724608822757897360507945850585258915994277010175781387471694046471525293482070119635323441488361834823607775507395593626288863905436510863476840523106695674629506662102617369485832236459533593125410547175983039077541003464350927191980467053693848766523263015399691174755532949791154768924808169695230910725989396030538753483881951296014592038024427110689709271883789891623662803516304833933319228291472945542625188077872549206869234339548685871760272583757295073673176890131051730943400136792647948609527223319667180112516772795645658925961268553500393714560062421555858470162609257872685068145071200224911712880985968737081740553235518710889882245470804369175023715344523266027564168932749253441791429760058369844752889359937421466373111716618066003395934698738561159585887437612874764535010623958020963286059849644049241584451919021342470251869662350792483200294055493848975563549578034751815118185319557529181848430164832189413279098683587759350880862438357422079781440876738818587121996685034792909247819646281286945265667306278737646558163395893876822516152550623588170178861211463443158055903129786265091949224729023683834794132148474429697992671896767271129463274447115013145314671241059659842516048846369297661782435313871175591117212545496307802152145214233397424292886678912564210277134537119062535693719836804851837381949364685873115571409184418954140481886049463662707818248160851691122372118262000371580697354383544959394783605076971913884683598565772298701778569736069324014507437383598061811867167598282461706447134499895895611630980430265743198230730936509168247740355001048028135570869919807150139747596630648536419525203240079877068982671650869822808875488162874225645182296617292419179299916254253288313876436845872693973879284711811598285837135801798564517044695475164012244401840473383028281549701830810475338919210780162897313922289558864513320570955172279197898203861362135409332172685974573496730241499093509168999927242875676040447136843980908154310230539019495380462678322149155995481542724715324949554860292958512624546007024362305962919598174868826932738625281684857650126896179500083549894224787249452344332796515936941446496973508869789802288619853386705619444106480312422817406782599655192425166446950233312613952662925392529313766140953458779961654655603416106554347042542938491136813660697834279645347640333795902573976576116551611621979924016167312382166679128642464695318941582888363931695845660660980339305624810091540112428899545734022820283827870286190278979241257280415054954799010672998235710398397985456368991472469255026708446833292593779508519013822141074489728253814488806155502892585384649416330120719858687201842256108376949901224550048472177022893203097599115940979866590762036192817954295665854316689681420655202735012301571660377896696305475993969471922696693576295356068302034606410428750135831980220267190932448072968643583783803278458328166199344975286050478165987777911226881624763403656985281831193974704607862425699783353236781353509899294923596642524662732201722286212587798415714702363163576108637045673307621608145178562387581018572046206321013784467969198484635427887994957825841464432620763673395113415853119134773390367747045586159865972160262849794209345260264679288682938817890659867617290872963674952412241556614302600204139966298951015321934554952608037706149762384210867774990354671517380658076485381462095522611938908677717029175617100183866490110388899164124151560409439255033659362806788048252867955813210593186765122738544462563019993127071328750962705971346162910938091799609684498556673584716752872052166542635575156532583793781735477389740282868565089593540348596915802854422867605854304661262734853236295049284764402932102379929961923285816632841012456918603530889928969818814134993479791489762950437331641065457485740210507763155373894235502931616065337221128295576803989089855199528732240272722568761104595351310234263439601210070512286872627051693757086919606261953092135968149456558569499538957425862320898390396912736116186280743589926028583850545212377546475530553496472807306279418940222655275373501850810809833237502141238124218121443055986734591090261058997778330950478506165056592335479190637631128949955677454902129283601028551965071921857834768168925374039793478597028676734646994994390730804408799556090546963674912759633295715367500979738537884298307922343582252108455577124016164456057719363262700136642961396746347860881780556421034758043548238497809655323855335125401254512435156214483553422580115024258028114664549623637000662694610971501005291196527442301635246665625916406167851763869315577507135149395820780595262160538544261403733490389069824890216452152384665330463444032566971957881887471153701890645542531923259081710553397613774389472701318184187969103783902957888061354656309955107875302276668445577113067687691499455095850771192433928443761515111893911538033140048805595166282709003384103441514307103022512805818976146439298488509692365304205614317447599865775610204824637986773967718620506179358287465997257655418487231980801956529332366393447474330909463344490838196928635295301818340758693787874535975192005475991150201209858776713614668775226084855646541844959639256010448049394152725584344516665623206563608688575577298306549314999902697650651708612410627756579283027875579169352207815321536505156560367338466259187787176665778155953641517366261266724923552438165142380092712926772424085347385991143775085330527179520106040690934056790825158692361064481908981649820218005022594422833034103435408792118854952669546458015116691179084998820424179969567385400119615799609065194265618018745671158646535346893773132342059599011320138147911532928003948313878334445683996422571344022189061470575306245441987838087696690315019825307745083510435353255944029459522278618914107950311683416345797760779707144559848309906670458454644792252990357196330111334217569398118455381749904953230774953177096472008117759517190036005983925055578150724542893054838442423472483770776774159033338834731101266146077115671747650540632878721173654069594347568095159432218993611945963572783233929536539496353053611505684880029258564825352479671419930930666428273009932965273438431033308271275333785049647137282953822557626248778728840035081567668508847161422188497297646301700160363292249052580724433072319712802381056862084581514732646559047956349394219995591456860055356933972838018197350487405411677087659916652570339868680088904636224978423657669789186918983486343932099030932405910773787872840027893096376328269901482898905627374884234009925544068158988065997851978595519032508699753987296702747124290209729930116528744662849118723994030553540441206242702034385895124580985734533894317576891821729246111156542516886296027198848661502740663933498620836069711814846234399995219548073661131733833146383543932876336663150536203188827149906773290784846546873114396858317438400831671261629478572057786999040790205653516804872230432498528606178140795031561228114372215602534351472550877901787804719537301916218177502104389577103091286028499808132613956889807797766136062536551202892085730160443669891494498628711938435420016501318400187500062008753312568937027454852390566974759838748650395589627173011465073039310298976317595785990383637348050387071525493649264126718146978197729982351536140823657009807270267281939425765396674370040790223909277555970010805395130704863502240471102061644308524526353650227425027750480104582106966065459986527690627601356626455718170240936135024097893875826250980587163748301181307010020203627920158210982800424480066004179394650330266847580097025388616312921834170245047195065675201447679543290722121785562686282795104398867959197614612398554929454983651569285946491620489491857082375777351842588638780528886286422184837016562321833531964118254349220597532841580246561832000408439756278641475903253616929074600515537519257371603502717401817534688235621252309322529994491789897766791416304762513794610403945686621745214850328648706960264690256789055634890958604704303425915347496769346979780982998000781149005661780728437880769199418161790047357735593093529642187158977230543530005731515826734162884845451742302339961274604410424713492763821938629762128257835307331369021118969605844680712562881936345261557180033773649425845377922341088056251822375441832303832645240784483036960600983400604742510658658566290288319885343279315075108499871439432533014299706157418299520995978777770797273908941233134527487872192440074729390850657130862021908703073251281516631003748769239417705498078750498236504722577428090057271395677850434035994928228383100331100995430580269120605770717391516327647251862180796926034716912089511069739050566973080518653519182952077318143166375482841853874110207325301387245268811156298981801744909447421494127262900882012462807198033901221269029613475233654504030134115927631245976539536423390455670612203457307098098115920247722230922326249248447329764874114101567000189062280484414751293324498389861163530544173332008348169486288598983935826708622860908342642349828525378862389741563747091493312243742913844529207707478690398178467403892653711190295246753161252412161569323632549366313517325378994413698212264222835821147025100859406013575653045103130189300750995165775246808555293675673651162635941705471876430498614709833213789431835558777996440820948515139488181990135018299575322235954454664692187964041327398607779509946893205623234556573827730204357194840247491308469556653240567144888905282935895871238878249682936856236929326716910018587808532670129266621294204435586369825942225794218196718690539371108165668939102849570478977254384294530869080305806913408123729807766837246824564005385689235789621443349811497644474340408213181336495679075478691190778600226810902966742065364337597169421911819877934575231821472642145549820760160081079647520616507298239820874574889144435854642145105196256533243406935756152008359382273349397453910598507053721203240619246268974604188645933061655620652794080026239216327124923513528066586890516087933551659249929093543633401467464625576027365542232942177809583861414626247347398557942503962939614087771618583010529668618000551384100290261705487591689497202508142941758088337199764089240814279377657878610204307559486240836929437216896658020443851924953372528836793067279967988027669278564689244412209425616849124321126198561737509040208959971110816824970550561523057389043882464284529847893030461150778586044552830392500927459374484663121150366967998117922479524720702132362656023206755467734956771296094737585583221672025026613626391999297683385730714209462854648469288992844568083771674900075033834905060012707130772716670252515198867448376976865412276632926768451824516292139820963073551240197425932558335976980468732287993926900423045821536157898410940598160258270457376391409127403863400745415961307697799117080229186265373336816285121304959726723743381416581132622711189964309574446083855128722674455799806506189684252033774697163211506784221457858758508498379476270773878078575542497691187802776227397259947303390865468922199250456200191373205533041726010583116558456120011940457082897724611197689055936411866098253025228869716011242461501510186417578736526848766569876219772585693092867279721222228490748177323009744613381175170145554493806234580892761531499342783964463608371403270033348700130934442774429360174987016016011492623897620890485298669369111055882375718456647035739175506817367680356508788728936960115048342342527427417807810538108992918878989966039934712258958952633858029261052180572926896644034176523890126272357744102249091405711278582879052632364780538480359195685820740371054397567066239020953102929575000931347265300219659880668681753657491134712787529995659454907971760939766257364951490572897518322225112394473711605554506068916728886383439155855423409401688975158492613836782366717576618369455415826053597613034769895492824652317831839292701312434227646119392498058949237530514047204151412492795906776774488892756018358776010790427084150806060348659279008434928570699194506453590915599876477504459425120728291816951133021258001439812297890570181973460723887218572337926999292309186900458555723658544725306100172572157855533423340760999030003827468797340871414464848155012966069745147486946375486828289379229498135937682643232667761787364162646019340527033493535850609308273662347579358012349300368049520110978738797101321109615762439548774537467177055542269196730425675699056824833448183315905735665664406151158718257636497150816892024717393658114857536442287270028222399476444294066405285149955642388126818624400375581299756692665918261053457598764342615974565512107090764326939697917916286531548810963709678362981667380269603821989277396437153063987677320627169688113199611926435010730306826076441557652615537994225783697073291657656679765446704764056091048129123235731010637509948117477983256681460033616542009143084368181140124435323347198594488402477537387831236161264069635906749568238048663603465093483866568691927980867075009163483228780744346967440381039772940380845990284781526369866807185952000926895358478589806344872417061666946004010423894652616059466873759955991192494934845615228895570493806895037789878116777451640540340343566003055949878917851770601626855375505585535488373529055719827104037709751461580260833304956763498441134511201036703754667638941657259959074566029398374069667476066495482701670527469145983172204808192607894843687508475413199576188953328664565871563951718025430023986638229118414767875630023786453636828700844954585009085426412095745855221434382373957497991240652010260287828246916282824786894782988350646447494862634908749570664022534278618920980088479108280081248154713424967297506782137043624724098785342034303361999407968503606536536552106137505059265863187410277466771081805654910915700990231347672014095708249760130408641793829543936109660101301502734650943542634258639066513862706105083328259627510427376313518149097749331991401283867589595912821720008079511817728395203970880519164276841386475756952567780744284873509715539426821421898249038569627545291014456049410325647613784638644177776635609354114038535695347685110594680168551232316141225511908111629375358870767206249716076066267796718601160447588690095882559937185637626919477645932975285820126119654911215128989197802754600271477149369538852688659362931655612436063106718534366703676724380854342831910781311421302561041986209463471361733336708799565696205728156050324216193450225762501103879187021874833004577448725865017113035974822632572264242659105274199852684629904638004453437276999771374139093587224737020000525795724496924598049384812971905203880975109635505781316310379229549238274537017506442265548739305634425302417830985082810719602670467473216898592826515480617099785824625584267335111312367311322089502663299816987066923975946016789996426766464080268591027163304297056977274212379859902319965778372146211304100001638558425720530712222471905484476969553792617768885760736142978593057078390914356499754112573519857675878435162802414200925040125148886995045378520696390850506526152263139648044957152925581356712709929642408573587843932185709527416750401620733685253519975530044933081264808878385319822644339011690968339671162404089756941412561406997607480280013665710682622144118030228447716993550369536688005355990251140037897922300987076506685895726444779974610238720260975495893796543651099198670587259935513651155471144234700267800925038012570764019341848537929775771420476304138233818120624150770306295587450212559474549097422035594937948904491364625298069248587533403019296013689422317538150132515972778925719890183242309853300273376303896215130147372851709073601853399425058173134873804712499861152485910505441380650847829449631544935691158236850425762591650006811996927466658766555442619049619301637736555110739100684902029053899143315729272784480412478518817540638767930920791521925676874030614193869456539873589441402642907291831845803950465442763100908157334947574555934136032843330018389018706552020082219179622178027080241402315799905002183090218496772959923813263974076818373389235273797237774014067677999289160842776734868398845193197198767800562999839107197076425797355096246391948687542898194081185807615480836881518911753368807177472410257080304952499857343642073163076861995502063564435332414277191652419466694963152947198275733969907335274383313485873618954237986961636785063491664190905737516855811256869573470093752230089613309015319923295902622154496701045768197808237869517097336867123989073749817557691925942748436628848687707275597244436215009934140527598791139557558896712025057426352864654256777877311345923190724141937298769410799556705106515714658621100416068893720225510632565220272819606587789103272849923863346571437195588508826460961348398393052838631586102771849888487258528477980150235982310349090082223534654387102196944727625479355314395936989864256848070224531838573929694305554163642023584667723482365415461853859526673540006890575528734271219375677008429245400601686728510882553661203758717562677141199904772334902852905612185157229148827724382513728235130082829945832175671291773634391560141652146206009674319643518911827987806695846419779959827655889025784480593883339603906517725277178032313650003746973576333133687191918445444120224319330882277403287363233306846507092319603736045139644804525128352961636636948650748962157873014689541966726978282220873505703047287392760669796629776495677061779753011419073714648791888933687968672233578642330376354379010744197315189589155669655780070716711905770300840977033094488590555309663087457057497308539198730666982338564362811139130820223744145191863815114038357027589930642970817724098062927419110235952822233572467566126871894397649208228244453312029985499569349129910089130988996171836706246532847319342548003034916310647661564412986174198392156741091111309582221580617561123918381448595165385289194178191614559594732903045008774266411386708177995330386236016054604906471896424954046441143410716383637973386313187239976433100929805946182359477922757990281513643205489237665485853901762351059819546872183754630672969028122228653796959954752848799666401705051658031804743998215924921280103481816877019048453247100044275675393516087452897189062422889195836683073502876070521914362952067184236685935997977103849658543066183178019550269892708899043067346306645525093590088349637025020844244804258734434057745838392157139206704905505420824524649641077789837087438382683346094311396626984615305568914520036237555178564463503096103744042710336441043998914522742667398790974793445824939325826973460691419149942791010218850899055065068978406760388759325151702391363247359390930339576620630755327447036618308257443955555278188642239560355390931168893467457114262007496903848160485152467084099086420537970844136772069050348518857829467478903371255130648746241807656246771676202527776254246012102011880708931581679866163242184247187557208116856116086280763248146820426014835117830842144997707918185688853160860250596985171772962980039548169928847661540775872890801445833244367629503077700737397012407948874706769834797044128491310834650521737997137068931584430506490943752678312066640482990826934008285174928322058191795229596650250088888741215473921523289177253159326554300656773330417949969346088724222885019143479758949601098970097636266165143025594222186332254040331809590682399165883385447068288465930487872146826551296256643955478769096710026473316627206814762026630117018336186134743004476698740034921279705603787094929514156623011127487613413104038400863825984395675610637321878611071539021949537277254408892033112692105270346601895047326845365595366344311974084835273908726848016387523932829222848302177941036266399638996268904836107151318923653917913744735004398634953656616348535394465731408753676699274091916758138222021770205697535577785270672630599033433879748529210025072999076376994231179868751112417415281616089580182099727113235340461812023696746639745597570427416314030383275518446793004099200272862732173436875747367551071281090303686617903023344206807909177470585429402506984682494357673218741446125625411468685484044695440263297562827725479089974660771297154212896885019532228620607618533173761415691880774149807111501487496853463397329275254550898410128614166766878725988389555254652861626157041723447206137152490294067309036626221318462663404923681211483154069163059943325390489713069425957204819672671437265171008618759830952120930328243802863672780085687952381553952139245917405119600696122465855101487951354885975008432655512121223588471334164049364973293224280364099017474416259126074768305515838584194693386885049499748619002855900627853032856037859306341044670861481047937092815481479992947904362574542575520077690415451125639654917803574743201453973196070313923102137942777481770334294617038388803606826294380729124893664604975291280123915360416375498669237250991117655661728740588201093288465908659470186711809221619168208752881892025494183261919727781364409445473163265085258868626327699495344617540923973106961843011821202973803536438129458139944832271647874696541161524909126771096699132922105027376331491443494947645153410462626535660845051650442014689582534129911279834595180725481852447781884711497567886102985070281636504583785638343520663282820473064000061219674779709683018118543175531126594868197494501661357775653591485055755100863804365888064561088019268807676141782936223924683995224152592753389455481334057380691682249790750303598381913397476570614323371444427923906210695645288061547162065991584546085920188682092686148729264735167175075146952967648218593731993085314394423701989960539432468510692751220569324046677754945993648189714250828317167874682185835160096936760288896820462714464378197596644336453817286279498642228470803571391120533876087092226246601152280371568497461632369249554980566114563862334194353241177433620081419821339832902975732973272755747490477290951502815547104558602539478034659455883640111959773998599702605497795062972208619972212109293553790818548885750545857573584847677555210467338515009024822678456847860149069035170485821330710040468167215912054928120569608487218544608113675477177513223769418929834190825362392742862276082792134531020981271868453839400256017486400227220735709427688231013633813659519148629155503407517707508085647087062536539245089163395726394166214100321477092049640326776156460468187461534490212037515868231230779417170804159351967679778168826259814753410087849924228906909214828847708769902593834067279719243497848974485500214152092788805203035218116394316118032235342310449238933422352334783720655398523991909204587229496088498045066860712093282017696888390515790314940997781987053861826572583959267874771038343691549924037872890532983649528371058513272120773554268592803649885706309960023103195852288570661964319677907833798021342019109939904025572640013689259809809726298510588888833288599768965576083987986296419339831540959206960984468917151099734409301114999281412327323077934573964596520457295696097587964856486800258220627499281963119598320849767795244188511105468423812481464458971680774764548397445483827468698841056395040601300380546760357474164982639226223473614750776126939567480481022522928211019106473397829697218571642484078193922984544884406599420769232655771467377041670502239913302837329640964025959668317326903739554148905534666906964622842163560474198630358957036783621238745157202369620772375603068439673380671452152047535222633289596915652541170897934469411989902561599123275611821033650448245727317279138733155592067049072882538578303246167360069210719228960669444070244659218468741835011717565210056667233730853349947468492321378228022151594584077678079401500302382280879094506717311418658094888587230624354323068305240228081185437396090680441957044692034600288276739328275754633960922918079138421252592188110982200563147674254261959241911012624299029625365016366111591511125847954360625297379211194966047887658248855875180106221183506908342323347073188109261278815866850207135265214496616705736639632544320207540165508460817426126544567526466658273783583850903207821365826545504138280142666046565364518011102166986584134416192013655646960841303297724712523715581330261280947322897564323420413947701732571961553061179802544523694079944514385641790686505286457143945150028386498131953297307446332980690503073511325384649764045037589280844723155871233830353519738390958130804407584880407107445464937755299082182033043099948982937544165654765967714156181483328655282453373031992431126504973044330508544366751164630408649903686324285419712132122770365327909398299092672349848319153842305355294792580137385039096550842288925895034297147428661405362074714493989324365986014217575366423598472826646805769205096357002871386978580711495842235801870475757091564973046744600561277134655547913379380046250695040677721793607822883419265426644598757335604858450668173303159909839530175913353216527905333043954478066034111408286660498614128634078509708839353099501133825574178204669515039518651882312820360961534257683049858206445185786037310256010945996469480357156567219844463893398783517918444367163281335062239914388799823018951801337238729765576473430841940337113219139623678232210417777377732441012440969120093302399510368517607535610562157494958832356810976374548969841132840002349085181295816787499361079320311050518065605643241657668588938098048412625670413329882587651209376202625519761786502866848891617393522511583623960620316044461660994521161709863423262635574870664630592890796493036620499543392690358355983322464910761295378502419477364029459765157621091859410766531512769287262636222143426421386667005180355028340363479687385941027992081223009236784454954877869445111064867804102749894756598095977075166080684884414684384421331826201330557068600330084740009701471601819297172990089138345851288128120161963982559174156275292730571762892589823260762107578859126292908285431458270767653383892537988322312174760115496953438877667171618536117350530957082996712477707633775566920779102517458141929744380096186567865061386860483304752419901592966511195106602171315188767563197536887398879062793047248955685338670075501123957724417464282940969333052131575466873328577265984943557359785091686842101074501514651719200067874203262912243872281356227658000543303947187375268279305058849056282876367636094096980725578778552040935214259254881047929063365719623339206273193819934874968608976111223849506346112213080487703834329538432711162564969398024283275729712601023042348074638785751698278398690287899633538974103368436930180320658382458096793901193502640997960619475933812799497504711562169516865413511668295438397198767377705084511807002087460236374664549640058594755972007885791748605477700361513683777002752788962612246700786854379569594297680072262621734257109185899450649920364634953116227750599091303905857815576865574538729556626281915254216732175471361420931200036487386416968687618943994247681709927332126065578910726003209033797516968054195848553841859623039600490158707579492687101960088590704301617166749124377593064035737498016955414342241173134189110603934038701106401290039547551009289777699728606565730666428628857208592641935453319819301334332366527047221976395590877063980191233868409620543280985850082563590318733380299751019434441763972987071964800986702237653186513999044844243848338627118813037091203922968014174269922560845311090743688515571662535943273370036457116244639385454625746440370645986076444643953329535424640476500347147986454408169816022732109134022773017389922924288176715097248198051258135985445222518964118684063059069928441238214287882167350621945887203040030739396959603048645696212868779584453805899569116255757726167999761091655647918143698012527550130104999340096058307055341729874724743774600930983724214076411604278053677434325300469124944349994819612573403118015397163610107998171157362197557305233741501481131952133448240562226578763633957088115237109337865948671136074474335228896159003224850596957849016401002272558746134660530417452404304017331723714013226319483276705408983692192316842215103068486016545556530798099047917750865189382537075847245746330825270140419945970492173664375639264035050996621693616887896038134765994015972494974450777386338824870484232975714312508192991016541433471771668335113595620162622959124311593758558412114855273956858730329766642608630126274048803688993830354984625533811310128914667935008887409497120776885235775059232372595518643793016340833758987358350273524057469110286208639879679027097469858255133429454871431338276339480327954595242317532600457196344256212005370294462518049560977063898947975270555081920560379042381597317867972254903575458441178236227832404971206353242605283951053576638629777328917111989644181135813093543414641526396458313179191584252246932342977836823435155982347976998007649840635206126540030069718151512550322239210598119530631574413856197100937126702075914754734221757809483938200692348449298330253312011530506170359582824862048391318028294061116607471707595203198711759761783679790359133016245820228220438889518144817406476307344941818021820683975769002504513874206674909938262248925688589355755275998568554051675648058567898606460591730729916412354306261624747824206974580100954447277774025246335755237930832107619668608709020068658114168013010079957556939316426667563485934819458718980657800668582054747155428991192655753495201212851598143668144381664339907263585079096840969360701936291497879879467652240335261553806365924296554437260075471723194500119969067461028463112046969153976096159413700520724852609803935175633514592416088023009280475293887744131785551253898331381488499650429507070156896376262017903499954261192114339832447397595505160176196853520008088415982584512325191475147276624750755586983410257516242274221171455773568001229353495408468981065534021090445272825290159311113143567400272369704021371242580434079354255513321503648033585080325675799920819015149925454731575531642298968667411538334244267542932824130099631153297794003246569373235977633432360377968277806926979020101244945201165341520669853994056542729070268658933152826026620950523985221478454417606194966286735478214156929695160585984763497456599946487727127762124858077442724196671386179427347860036733317575521353264344464867480930247407234445913869186538915350183046599911283713960728866562780389236255350355124214053841491527965874733491397906956451374299083229305853240973137101761939814793586185699757427490479973302620386205215029721491300907247728466815391166555164684717849750664047148828658700088532097902708398793296574338766613904305513460406627751373861206816783025196459760522991220537321341687813173052430289237376272584616027438313568992983910537966108219072904472176935898861946149097366708290532827200520520341526539941295162572052130055247822798740342348223902497856465322394916962215011222540383723376508324987297555381318440324124165030551237708993469946214878394302715136844042433157187121905355037615189445502455272932733876268460574279195778820460542906673187895342359597147936761364106721740601891684686107423429190838575040734238041825219083720822756956826099292395721048859319962860784757730871607748306094386284256108224896701208404490487421510799623937207354540266515627817901050866618695403335738612918170013346135747327645498040576105730873348481022753790785534660083424324128749800240852033202895630955554465488532851112503837062197536729164472283168209239830222068457960754810358037907559758319762045959127728050239856991779739381331506645280395279193424787753821354726880685456959656416873082956150963075521102638850387408676351499844607211403099340915000843628118333508140811708648119561450700355536357969758121648583670914163302079270725378655768585428554448371125542641829959885828270696661356440944036622842726203521527444784239057420042730167819299194930909805797576275557628501908250288429277881543147457464789443778509351476913790307914309517083671575412991657009527853026619279070919063069327448282187414500051129871576620316549762230932689240386533091540062107926145327158963668012983195853649761443384907650526110890831290313613350220671825055602154303377952117499948071692937584940385397439409741327557356598111432778481389621978707329260370198572144004843229942049221388743243862655525527756885328518273637282930899668231622816261736022110587792467006790176276123549019629283997441486626571468162641718288421381161366271604591914622346585921693402128868848496978094994695021355312599330550385446637354152405106469505450909083400479071982404134432997481465906191423377943668998891750976434970819927461237036486059400246103466052265745896981457455857234286439412937476775472080226507853176920120846683121260102581938393216151637101164704359580278846912909549596197475230966216041047776505012356755246434905810372017329729439167642000611471945656952191983411121655408424197521867679189174341636012376498974087306281246979920421151810615725618776770685828761453502081834481890488715739021965538304678925688228443559012584608469108190314122724927516555519310006016424461909450057921365832408610668332792680007076359675180515127196040044743447014988682315913081105244353088014561577900580053978336584012014874286144114786636984640375369067159458703510256059156163574600958158033870384766636715735314443446864412602641569866704591290292340046646897905556668449314466183696569562174333399019487527381422169768647630887724112826095012581258327803432012995962787080532142899892375684460994408866908900568255463712668910261979412931736675100415498772675100577987740719710625701317554213664248063940782375854542023529786197252874296775101247680305734693402058652054126687622806731346926539055306361306399378944905449063724747077453787172710291984808712185521014357077553399727420634161149649089718672621391965296120864567292082521760610712767154030756315141332925178335447855837120109703586408385862081333809867289949222758017446663833539933416091885367014321455996976559024765854198474016625709698438551311158429566463677754406385629346767998554982194704487775530818506626356250428439587447114839300523723504647173143934770676052299881613749812284262934671602346807624008891173543349492866864664586546126745572315170324384830734239448665996108991464096790097652534376419149393834802050801740798913228739327193405335365676765797575618999981018207216366007601753733818070955093457453121626722183436689502438028122012249992739700686369955739460607183074228817524177651795350264366210481257459877824408445444946164854255363421919601356084075275728163433179089526212207418800256585115034585137334723766386279571931194088271416031625679907585946096859405103078836054515192942855189124394294893975667911143714006424537167298736523093191779006419236514446507814574312695593890244663604014015222087198717713939627207928753869938518732452173198689825137256270640641556309964494708228206801066757072428625755230640401268704225298155636839470121208846914129058892695560239239492402494130491656132534882415756864478112791395237235499169524645799333491048471354175474775031648191165960337073328626427057040668081427550766030877364728521070639546016079479449300810370325599270938989439838464056114619231968313954829310406624386061959811602904201763367627953164140755395010236026417951092330929033539074573067079361051696471084148044955405541553118584778742202644815116170730243231431694908899124039287761193850243402053410211268444975461273546472656312945763172453053902160660230525117886477532312863948054491717683398890953894165033745872036045344127588873182680641427542931974171335307114855603672135353235158113304537231088683438419834132234516937150220015990862992154136949928596080010268317646777453492599065797629201547111544304937902246067386975205965373413493214044616021360216163603987515409916082035838817164704553490513940261842729071633865426798744102589831695273717646430958806529440153212659631765939682813802671367032398066386598403904287235025309498720489590470742420101914449883232608522130675117546990195038903360658311943192511602962589883910985500043886530605790655092841031859244590362501465776434460015609766177738142249098211533784470048426015700264528366586000779621985520561575703991902308045128537658817579656143762136262774810528347686879219816518626519027820088097198802081460860110089554557909751147302822166011293804285599780164293056558452330753449331772883892694580743097632528892796074413458238308437862546065162835134747899872082003115465376656540747147844167319596130544294401926659317943179681485691968463254968748891470096280684741124846705050593377193959543565863439436786640118034910028491399786008051623386008642882585703725867506213811163951627848343347095080210429819898929049895150497234025175412069123266996550215059482118244811655041024522514894850254909093365040385687316985592343282725384037261778312393552766028588465209874160875574720967584156450369544014250884316675904728304390442485052459412975660540188501179243898722044013203600509892288100814830877238951358850400874056185903091899891336535374350076847659458683934435875372606231406930781761826738698702761555281426996016509537321595717025414519338450218762895430592387258695692147353685321596379187572081427882064480292182415750876342531654990891489140203295523166974706370931197804597683571935271920779917957068066128061575935412785633242287147180265859286699860533849835928995813517016137127865032785102022516994102308025898984064091689732414867414771409267396859730447392783720270997798934628133579337927949798754812120164695999755458970797070932866548693966948737147258136979828073403348637915044924299126726304376430338032470969033435120359297195030294266467399099586365764161853142844011117284580298056903460737535005099230198085024756257344027134014835404441258436166372612367816952085221919870163217860464688669388842567636741390971176343098421352375266732995535852918474067359876977353484976334832310440124825554447515886131844620383410723820020161860624347333954328908699764168515253987660721057723246253615252819867583128940086656860071469653270539365115672835904802578697534272208125486202349059208431950272275144237398777492329257763126625327065716885875928779552117840437864707390713844607787248793238102631130468030729452057587576205136456919147234212179964419310904430682363789329662644280384444884816243241146945925902700952072211865590608045406421727558202642913515075096700458026536779891291959725657841828149889765945318837032216407721982472057513068151539607422635859156665272109396429461227312009283470796842965608738108598530420047297589313575281069527836865651356955960656318410798656789614648188442984332517410336553342103445438641333160504763900935793796318115333174534948344970687832427844384072643764259296565555927479792496371120116028898104645565346416783417705686301326062716785295452036975735660261890360523639579813265860322723954683665450012573325511943584435132845485282020112944513348888062046496844736690199663232632210485174727239004412769344101232665406393157601875967161946556513753022710078308951391675789424082446223243093797463898186045698025331094697795324378583161496478733086173556571495816452253925446520882056105373193288366163143121536910028853512186809928484104694609515671619049672294505253380989355453903939820470655392415731243938633757629467488855758991955702988661092535195918503057776996624504573228796671253205610234187377945285851639652930796649889723990795383342844837743633809053197220861488292463648466488276587214060404322206380182905220261224634681267660248157112738225828866295264962135419748477982321372016439456719908814596512222063480574305656054000035690992751879358869497827825861170849679019878567689299194767495344687022961631426212324261163742129239718486543426103661661558574653449323244821241468097104458239849611759941779128829154479133375291929725032129625135037739348189404982314467066939808922175962957774937147120226834734865397623082860479625614494630333697953171513146703945282467420486003281933212006170347582141651406625347460029583970013496264977762255765570328532213511557620152813004993856338335732939170399197271838285745320422638324383047297957799805705005832482676993248812387871395884864386022685304020748445713120645261335570656363212773131507885565322313059866283836191024747059263871040773478283132569362989697157029714937394812389235183026220495372362625942136171882277157861951451274557015953075581273215395836316634453209350535122529350230382922005168016631801194953479190551450744994322623898709996319324325086329773366220821926045947865358881262741505062928561064946270894884510991787048882519749545276790921299890605291537517030382652792004453334473482827738012530312834431952709925255016199773858405644706292551110612996573647389408121477853392159055980497298881185449560303445264502812920348017631677004270574372283769724086705813439365902498345991932369138595896559121910395554140590712193382273313673550833757599388510910149704383673146828792122102603061422765815213543998732503340311242115371080385823488131289500298188969738093863001404267658862797727911235360098634588089579102874169908272887050881157778472185895078044307021541391486128583281785400457403932248210708749184297569165996814855513457157712653121094590346976661265136249629200232784202072729621432415422399048011017039371363049902930583588348990715964527332285754785393605172374640395310921833561373364544173931528137609552037081352298407461479716475466270406781688684420423617553603695674780394567855605351895452672251508607945340857059294498538532001264992520317267699464411843501065841616409244316884272302606563103152471570243423230267266685295617572512549877965842444737062832943462332821841099434149760846192674443828285327923186435138317814496619898856594397520380594646711263993028955453685763478528043911200192299365319069971102469612948821168753022851747164936252968215077852249030486354284215812401253807751376901728453340323258861728206100492701453922791926545455282581143683017070086967175990373834178407768789094773349820521095487174008932371208438716662703080896415802678225972954256820683897695339889653205055182534464634996172306674978652608049003462092811210901013358876574186965034625793934109954149858266905304069521032920090514865220329008641248875630506549993291590204442917655387801968043368821846054395416756623096383356801414461988514694566186103344502013979513433332389046891955400078471849363693704018273054120534228892829780720908709953407267886682092901270829792061420792791695297804163184171691317793577284572971474712541113942215635033912706245514978092887087819840741929780379944614950047791600673214008303833888922495943478244958675069515064409730807674024251831300010279530712435011359725087150220259804613432307323716945133904134880092949820950581915711003167754210285737095866502172045719602345918337115146003710073124470387608488321010000354437423872454366783876964734252844277789959700409964039463114619365702305770074233314108064757888127898670439011954321964783072200748236420510185388926360672550295707163705205836364420265617781199017640305556329579892479638602571267769571752650994156954104425487957432598907618302562366135573607212068531067023731441751665026961542437589710506264772818758007300400930803549533972131751741344895250997583110436595544358621021744782555452547016689292875217307491063374655160052955874089066714780118206220704252466335036454943811159679896301348810997402311784394181682288520603448317602408297163331034232869495109298496151817210677768405804975207606863444415878951060736729017140695276879531969275654785391582803759299623598336214017934560323711243839177475857083477861962962097364170780047127127762034656481073381850233728840395486584515599568522649714839701037255054763334095522629743996591354329869040706535954330647340628364326161759080454957975754875045908241097782426172381579176245898055709414292609328504814417746985661191591841827666799384390018555645328564937335986431767320281596039076384331231668178133905225642713636045924421140715742304717478472148500273999254186724612158195993837244122505588386039311354410937087955878383148050677253982080200000561481898858779170980751123752249972180168342892727206946594645983926635126631989968220647448485812675115495381653893919511593710883513413737424865211097379516918649632352316111058376530833861008664604997023604561787468643391918165851506369860206758031855901996337881397910278412952216084023615671399151188569542971019757261532655539999677237611657422105157794851028374880280044250246411656929727102248985091836413105817207229193584711898891446135402977296300604933166335939591710453375806622909458777269185428133718446533761321214350590196520604660169932003580158632479653184845619707807911151771445247940490039119574486806620545750051768572086401963638998122632713224982956818106662425740638789580542393293103071101066371321651699363437941635432559822278790472715645012596267187001224908265823739445088229156227666024749433299864136217862730480293253073245989780381289259049944803212407422199311786396151256225166166549963264364196430331638204144791555859887890952388458406442650301354297261921542266306242825064404046852806424659050280676408025676081072509258009976820374926362407562211949365737186326119715802017584269002539263090785027737485892688967113559445771031788038009179881056974144513571060360398098839599985176299909748915953803223067567727914590908824165605929220906528539681771351024776180558692611265429221538411064861494722114694561038047034791883514718654667381241853999094602464259500543267547124818677359966811115306371631054326901633361897187052530172571385968966870917808960858269820640868226455909886393947848935750135827702942492847140070623787647499243976731785624623196597241408730174870061263725749459049563958393166582353768155129082444107700709992962880387962409729123893745615485098356331561273566738977651234227000365113569690714956373017626478036589532813999391157655867095416684010354327845585441421354438244546164958687175854639529898140068263311113171934270554477292500608251894877778607441776304704949181045044937767409675609979342171144536919596588812266366604521671418754912628135943497587848534390399006661250826420249695439841833622277182764331513722136236736135139204267880789301193049567104136732015328505353821393815867667709537356796146736086011866152520867333482923426742648621320855714977614332231799751418307996445078058771267426801379918352002464423589524485191118968194132582508586388949093250220729630456661033052222955537186104175961260463607644409720350441654505171593217256726019502963109827218858604166491542548467154830807787872968304115229806735549097044875289794393154598452887912232457257519723334736909155090377479882601774943478897735617378832075505315352352459566853851844970569224673384678613679896001000387147182507658068031427796442275299062744320696536823492253304941769559314149102877278312651926168190442342634873062655073273014937214154780551686870599747136966674579973698262032522534526719325838013777009589408087870975832836840297098765437412879644874396010575001621281004139439229514464078622731075652560870312518185277541202523549995959625894755020145558584097613494199345397522775729020072821837256036272862534827851691291883767898787729211209064920726322427681961752487042538838929535008207121157309240593442778386106206148339377082639398631128829766035056482551019765614801507168005768984832634430677471518927783905885134600851420133916670419589829519532579988570243137392416747014984989058302502887543044296200726670923347178301217475855456618151160033870840850953985616721448523593471911851687846209702115033001288692385079113568789821793394962834101796203539809086711424994844564642364363101653299360291873814251893702473138881754423963287483181416992302667489928022061473006396581758399174240463815432512658610527087998193621310837756633416407341463454090599433882944908908247178534465686418553868349701970400149648120232924323036399555634986939917948792478142977796387545193412108021166989999673831972119824316581910852331983944634110139508235764028877476111606509361664518640547832183527184509848653627964578059821871361587403543927392338974428707599327737195416061072355857834198697849518546187894078766760635861686682326038211937414154515385413562088642521916568721137819281001151330705119310601498659945418254299689628074335491206121432785012873761283026734758659656346644886967629593699786169058041413196510520894346506460821189545315368714949314855432694436297489405553418494996728333797848038337294490034725793554270786325448726749268835535368423526013217223744392092259206595102520320570257940586105900099005549971886871784057387809638632563712371299566600713738370506890703934540068150136252826160714192047880331795676610709720828250880315125299158766832139680658122452582600954587092977867807860296246250907523073858631728773980440208961150975984922705116455983906171054955777392844804896434248879290952567517999017734287329924217008479904762470529795566951378935281880900888168958410403182083315234496173802953577428119787307352211803193859996557261343827880326332690879040493093370662441297065027965725085009913855534134507532016935611484222152213830129072535528868434958416357938204959208627332854378390122706050897798199083553625321703574258302481443394265287933655846233806024893596901700357612939236801413904064528482749254407423284247521042490249182269021120326289100199682654152794168171354481843407980701330413770981340996614137824969134757245702539844414324349760726499858646551497173965359250278298745407052079425659072355675391434254376094356519558000737548427887983077840953584476141519416496756396832361595745313225749769723398102752779893088341039963528002059834050193523255854723742167766919298830934283776834273064489535561009606516778372137129042238649981838719112784194113520251424866562287197588689660149525871396299865967638414475041550398565038773667614657655942835476208945577284036642907787715449372065164456440271308866004242455909965048299909193672972917160510285984543812937795181231941487931922191132404440340919076183980383067790195378156637589063907990933436971010254065649763533754320620148190531003623930800223961994089401534994023430364139324461700954378034746150916457547442992064303098124681841042940581992440984141270139923726131977713934423838922691845121080958273148198967735914468368452241157585398427601475955251313095794533283558107062023224114498207072352374367299267941974320921361564327554202043654550054685937256605147357659815635670489001395632485034350251414256124695139772007563057529210032977354590645058557128796699415379266938886696000591083791465211984448607897889746615022907255779898012233237512807967963432571819266611478326491024106630219264470131879200898767221218390102833009305549331672489285108208277982555692130363790544046165690551895188947619128458812228187996025526320434526082684474079043980110968657303698703434308552006468183344350185278122927627084754800496073917572358032595005763593069626756548372893276174462148032367882579309930256701199511954262918870854299486309205774533392647419542203939434004375742767569578332165216129978796429244977254695210424391383745916239299867258795598350748615688330085039604303630643178201483256532103707671354572732124291831195684332092469699878054402868235923180512816780658222602732749780945870288002734471398890910703088953645255659814256287805979769836965369929637290713432407191292770950421158857895339092688564618042336800366700932282906610698610504910950350024252636917235633138147703576242356701323306557149841539677884006299372786875373758360695121990251838457662514314394599045481970851611340251318008260735702329487478667270263291971857576479899669512461194144222059974016157995803475788772849942155032838595615959341075075113530536753959721565788670455050870211511597559035125855269605710446909163634602151787313741361386869083764406271758111050322662108328074746421303260034003135583876646216449855582672498426468899557283694428157681505906349690284744224704960472517293640250792661555800575032924883786550068799077783540399698152447485733052029443986357685482912466515597018335103297742737831059071856929400978354035517447720660414415129889649808372952144586819549717948517823788843701714980032766911043651604795756271688262284423359355050804663382368346881543211017152737496706659754226900117470002351536739185356010382461359130388607488067063606162005404162245704639993150019454322163099939509162963682780407650596687706856167488166013504652399336877236154101447698552870402004517376782978317198261180382097807193105289199193232222847684978426491501892423570051566373055281965904957526098675582066677100560475266775919715939273265779879418727801205350068027720307995251400775819253491816593920127391140060945576591550118151236381009020495462789204300896176933447811875015433533755417956370812204972433449862412994754160065642512531726845379781305510635319256961365302837941708962653015683523450414627045685436842197314532593854615717079365328985639827752301410894017033763535112240633941559425824039833213310481659818585171001481907306843498336007536578990568433710849567154718047920610907701169852972774495903585594126742369540898492420952758712236675779854102597768823860485838409449848821902693348804097698639273223526382200645538015989841848584477728368485469679665241571261628159204860861744692778625714685367372901015244786994072388266577633617539235984968832764092865268445929042022060946912004918889856035029747165216122009838403980531106571570895315830295885081906400143365995075246184236251651155589433736881835661799740375025480039071654053564700610035421273974200199549711772808914555578604330872876701339550836033800906979475413363352717308627993367444809748489166598546109961548861743947488752847029576792446723612997096646601607742658743273398154000858522107568702561089566924529322469722385676624441042150710986454925733872803100545266345498489914702221646891915659442523155270642701397717019751575969994213035566074128942956212427361729818066320196717830866326179403418607751410820225540117652743689809025688103437753918501137283799299127786300877096350656257045591091253239387883576948996351201088890858143243395729806422747390610729229408710066349234557531367377129517821356946540095050489704787226940129637233109313290813162145637917581694160836605576298218166988746981576989404943376890381546510068503443394806050136007493232763242481788400574897491527771000566420712077772095018489690092377535253258405261573602699598972586540018084317312287417811765205309008554094321352191447365832966204797529024179817347826351602312663331323665814505478858106434090040336513182894139611332523379419822235964978468357954392970607533072604028228607922305907427042096111633755744257837064818251844594137904559002638939264987085650063645050413232536866393698683743312058818868857022155602529460566076342741323639252448759862714450785504861941292059873824587927879439478093118361066681836280464090517124668487637702715218740767201382994971576475737436098180972804140727755382644757747216501665531079008463166690161676636147128785382723207879752975257086485046698383181170950358821507408651590021118605083766929533095699208320338056485921806116826799297790183783363916746922050936655496323383892905103358347523798702625442489871598617212578368421201767704371086445129587300154332490330532443200988135872551712030678777674537252176939334758574332712429683679600935413382720810087324029520790898480836652085324354231327978824117237848058438665540144884873934605871596567727611695817525186410712079060651141798080320738974060766074679223208421297179866269978488437391815271100934415404276406732893217672668742390290240134646046147953211849761846288711475549826735854044326849075387440723297142667835980730609826100083840969722770055575532336671835413099763699670831828053690969648203131895136942260413847561944153840883846577158809245573516646202694296407177461777093185341686799793821940632451341373089483153999145310938885666074978900534370636451400680061670352514136174620416141495288082708890970682158301833267356102554397302184795181697011212584727909340273966313616546909818698083010378106139714153634859933845297784113346935996097433184968332000018204445374402550301683806095496752775443285013681867573439261830598447674914419632446855717254741302164447741265757698388288085793424540537851157284220617297900055181818527377593589456287487424009887702497282663349741434663754081225712367627674062379494255823514983015500506590429401918367685264967890957358354847050911189393386949675898541563412832156217362897508210112484322326184478233280285202387115442535382968976403290881252006502508436053194192764939141103771802826031878381796923379471621514403686941186024116023862172880780132526990558483008013974551172739418576037800089473724599712486022745134543010235636522967426273071897706363392066482879357844774447988311006963751616998916525934657909159470105697944554459950229088621520899634989981110372580235001396409211855831971591997504320429370604604290222674822644063760694573054926871608652123107907456013912493818074787639715884089924335725821936514556977713187309016313314488016271168086983803356384962172312968339190463805368072354783565961429338027336889508668891769051939606400454294279269013024897648301076447538347157793581420681400104604195240898525398101297274378562633179311091582758488035318992683584069512099424257556138404869537125894997897087672787614490404115371280249614101394128753889533886964841181572942457574046452848821915055744264513664581506954602486732349916850443414026336446034960152001684689571893058953342116416888441925523758228116882808704894055979134562531462147637138766300074405541298128672047825933343890358172624673834666596367110422190371610930948560825801490587631173154851339200290118512420793307411336091312838857993187992941398132273012727020574284435760233555015539931187194146781202536713427327927530082306142612870515350992111465499538512811373869780509085158770159897370243368907042933742181795762657618535235550636848189243860421331792942383367623630821215135379026183547566077594006119779653886987228678827564763955977185481928740877120315712628103263664389711105507314958850117495346096701107813010252539047543762066632259712734642964697518039428692515439678747307971459790697219345259181899661053205625452407425605391388252691107158764843539980748780929964890735746957660583084080950288186804639375101144233772228763334519892852993856475015166491233052874449046274024441659755322530722605804889389907707001966590067595422344256431838742314307279113381078723195595919210927716011412142836641379132695957214075506241968977379348455036516634373364243349051934020107489984415229467070407187240288489622866606807239521767955665906705672059095015424831756726243529866955424089256753040041441658992014748190579936167246098567848990942252174238683509157604648145695360990462678628156709654307438429566664183492727816112354117302658920698116652545281029478103572983632316149089295946128850015569698262689890940147918872612490415604009392772839091285111095165730153976831401270524584516699495357418189446299758335618181295070178511855544219251401716130470586423128354793855083385200945860606467280869506350283108933976793727486191064233482823444851926276832532507848007151254863312098954557784390033821660907926688225752169928778502160160524209019756944789856174947118890766861340191527339885730667434862088901467489867498922900655016879505738698266254198690692571997159132870006204857277304633227176804516952231380224298830172417931524638136181213402873609410163775052280750058976667547627145896716665879500340812980245439356807957845654020245632685329762705056219697936897363563086069970966567890308520604310985764520935427349439322296869002808022762950228715484611379799084526909668918377526719004624003395003266775739526211513253262157646513572003051927997026084721784835812802844481476799557649782213648618643862330785162595383229571820530435625380721391221215272252294996566159715287480844796305235005601355245254796246906294288573359238423943233811529207184113200996301844647580552078487566306517139928879857445022080097134396375052737164463241016790413774208360895371966141291815831584357171367703292841608264564530633022571641605390442005194288564370945539970992462836677859363607503287112802151804197449930760816317315283292234132329946914144154113306928780410137723253914511624929990280641270486690114238754529980466813115783371411698220823144348748378389682962384446173662092245589867107245982293705878924260919590226225462255077733908372342832310932668456692342543309935765158438694317685934228875967455386251132925417518239305940111269961634666201487912868064135898387948823900435540573464446471430452649034467020805983248885368217219662615569721590133233544933107441913172844014612045159796797188091532601151774803695860938371083631913885538649006716522511186132475591778851639881918981395801816010873426942980396880936541741296047042054934034741117850136372714425665636983128499118781863793727669332222998516898911874197761171395697349852096923552676204605450179203599573491335786163827459986383258645126876888498219149629072374036928319338090797779725531174551213736939530407374594048650575360244974873941135084172528880180753005266619046400940882085267084015419638689592266219022953494329658131011628656795334128640008199518375266327017658783224839334949721064606240077331703672283858244895007562625858648395405546391321588093459413044748324928099173873195462304800291850752550962325135058921532126324410428646099645597229095084713442106395479779987949827293993576699481443441165337641343986531610220694027121927900075776357195909879846299450438408790526315277868416136513689549606723079372621429276293499022949068039613648448817896793505277846234821198034981611231990366326663446610970451723193115520019021191506688855727323074638177713956039475274705233886022918177602568347605429028847511126829484627384952865681717665921019929741609304345622321644904741396204381416073126730168979338345635130207053115866199776201608242787094902353118408540689243468479920655414635472612201969711528734166530018760744183311700042572610171020512604885334239626579293126418708849672335707350867818720430224853517719937578280113616384076508830030299946190073130987582738493314053784230222600274459075831720623373182984189270713814453841090322486659181827945420070527833775374489062765645104234475071998636231866145075969759673968350972778415631573294069445949624785442486053079260796181556646677311858510399938266987629836440603789329571130060246119347317099033662721987372560368985820397366257386023005294358408867290069234621797887243445554743848828880445185969729751317995827827896851995647602792629786369891660838029436591997295896344232043619607729883678391660996288330100439573785415529462062762809266376789294197157163603478625620377504343669502377880336778761209921422820254142815264329943597436771874232492871683867323149183288869924672711383292204986427000441056199548928609840012397961666131030086716247616593131070002590466834632025056933974288141671902347643099737784446426161646837346618630761682519555345461098316224223976233135675639242956421453624365126695491574387587148357059145939724844343024390366381297671315608585663835384366768525929089106377040590243208271386573422169989696455317504189722760821453403668142361137610423209416345448579499057593123062846169664131867347156252856900966435521952035511958392651110501552426298194429287103573891345331212838775729138530799600049191463730655079635438982017475791823126658435342969026329286477374967804068358532185939494412005528873523781468647223852305402091651118246187913017240885582266441560718920098768793951728767729956426468697070054117537046760411292041376104700009841428326072834750601365902536707974658822583094870235917660639499516449422839577896783531220379273494066385866293179120774192019264996593125063267750694727453469740206866209824831912902185454993100397910612726581233773447926248385248483714776976895374583123906967699666003273466315404458103812093123577104065928229577481537991454456079894380455395692356186584914997113923608646246336170937389870507221047256637395354528472513878936426913019958431371624363025331221017697036621115580357960073813729956387590682187953123854447871231014516407193668123325743078433545481017361504055493335085886144311189674487753285167363360899921009483718155492308434254241935124412376145222557054568222724386747021351486271027926621313836987410899241474605506781289345803000252372115408560688494175433766227419435962463733659211866876796624646542472707788419043078774268610501529526105390950059919862115724793153142217349356582847488870564625724648810021105127975538010202308763119719401036034060824356687886838436377318169355897515347366128896559222238934583730003934156759103240600733856930451455806163119915477838263346424957035327474318547368866828005853899163122699347626698864015641899505253534013135043257451598986015653646777882374675307740591640693813876313433273832604465445962773198277440536317921848582243188691040293477716200873644318925359755114576772735647444766991118898671347030361156497601449220318114940595603194460282828193913733044877180660806091826063495491215804077871742494742711605191324922067580937769888378656227459668346888247725240225301080355779039235895583263247330277833251911955874677033986744008573019271310932823713925948425186201616429203051450757694920292016046310404986088365809294306321922462730248907271102992790878264701804124630188069128466599708936858749330438181358888151431310125755940541440483921665560344054329124520802686964676430572859871100541618447549086657623842486128963579418024410199964651809609366945143870589164744647513365706058619095105683908914261189955910839213682442338808560956765691688715075144306389513804881722095535336916060968392594410947055213979209071347179890034115347719202437632425468057508534480394234442113058725952131547557276959627658488151679985262092020044586091826076392706483616183033299623221280040674693134222112931845741182402478417175140909060522967740691386331627909132459742673715951390448967328479021830441591448054055054032689186009332795217395821481218173408823793437625639890659540391679538176861994557066935551524308789220956982319146310751899549315699996357145736429190813087748442893856693648893110605035886896020952742435282506001854667226233092716634464372735378856422710224504982858800559720548413155335809526314006199804499585302821498562993281611743820585287674096304532821037880668483188437748785782467262182727345340344387232345825650074915403896024434128618878306926546827532080163598721766250460775621945596779150872746471452879447775135785060793128692189116191747955475305855328717551926283498488938550743836249053188227582809408269939355131688409049528018820951831099421464723133947572174129870037179726819439319538686922228136129599760971232654799896898156926538418342665896087938840970210294746850571958514995647865126802266777616502153524633832522438380024645865357778271366034556246377522561790464769544723899207033909528601223970978141486421314815338904474014282556866889596335546524572855505448170818834609426667516854475699265924476273774744263651129114773476950265554338519179462322210453926781956905297382036973815733272710638290299475574224589777151261350820254140851484295301575855911591384825915281828136358448417453643954183493933964748979272273292345621882659852760706733329088275250140086495987486072256929844483058143286813206653600000890911849488757027319392790350047395061187850181300610310085286965029618697358573252936125791651252631119968944301635536446487750385996900354235950919978747289177832327511851905164321052571098994146855792092470645001036833758932829000628895779487755387486782645633080415682720268860210962051049693474645896259747373470790481459779866672687565462466499129017211843845661224183695486752436957776238302321280648391345369119635721363680178738811185371516388766526934190279411421544371362680525893474074342767487761181584738662313778576827526454876610072792056684251906905350583643284725578400360640346410343010789138643498229862510943946638141404486909137737458683698240213313846476842343447501999658713739155104939742339588250192311219106770740288436481420726153343941292290682381637153446246691569143269821621409480317755831837467327847657040664828826488497533201898046895762972946641815623620612552460999264441578917940992892349586528495474116603291479412243521164143684699592192967342653076089765394158435322873114262976225826667860629408963900332211659544323136840256324429560275993143805353640002721232431490623924383062611642952456026438831801856359622414664066553896161118497334132066532339229195555983443708089498592148168719345129522750268544813048298718285462812638740331476153749745031072748613250589139281488827418387094224738528563898573907998641433972303343382839016522784671476339286917586191925548691245916552739751018743750564938467195582641352119763694714982306550977263740578457153257911214348740946588009397739062006565852830159270410005716084289410856223648322500061805325002510590184487697036410032505786111497322421247928037636475693913019631985709717396619897896887679313027526193518935687251658805224087512254580756117694316920872164823311575989830532969442398461309467363219789239573306677801800209676019693411023927168832067096370350209473809433071809194667755460659398173250240943437505953173283791329579254418301641435659261473546426964921525946768767118527954374071432990335637712534874920737644066902341327360077669729058725177900074409823614850886804825457331166931500596359963560371329610559793483701067306042047562678759125631302784539527940011682377316963560093510718816899773746854978083507440055660296962181828061507743037808149220563018877566419293889907212185342815598810577419408221743944981770163345634131705958255371374224271536895054508506920153774055547129855496727439640271937571714385870308561638006875841968893856576211614564735751688566844911947954114385172354113843509693358373509073849209390186892932066759271936653529070335454605330143898141201774403003153255261544929854479084102835484516332911859318382208529624243363061298382691206213700350362274161193797329104346762645616236586993019072683093602766786643851076767802604932530495252101337373288238110071145145603114577102612157068168625651049320461660491049996078838638127258998436829512982941623540611226944219347973154804836326198053114897849774640091331589483974712724931385999405965794603911505430439294060862285049062451318107837928309268750236264001365389517620280289675428082979986510445915845074056471028721885912177406796775865980426390994593348549390454322201038737938665116339338729073035423051981295581569104560684477161313657643249666094052121453305412411017681620014794026898051027448721689905781161482329130926270439044012662950218569935463696435839643722896851867301261975283510432925782050243292470369773236110594458521398342872317128844562763206188671412914063009751426798884502458024513262630336125962776863471891657463067915826083456124443417552141272905791694340755008902151586748923975780054992201484731114811777490276404572221896841929749341832190117406773378153817640852688319414458668228280741630599222699993709182340028010635770491129292525057725226414905656233190994530247312120518039034949186040392927498404248503794073323903068979446467649567878172593243960100402206392396766672221679036277963866399168237004863876418560338046609663393295487627849835298009617009539098336953630118538192516551958081327066872581467902744738510194524160071805524044553880068286134177543460272962732799978435343653316902549539558686992875347374993158417219599354997340201773416297528871790578800615562074061494182627894599531668313857405323387081414328429377208724385582929055550501802764445243315570260472737078440684282849569861722634944245271534754645976155732344843105683267714116687500766922689684996321008318903538159612883981834673157145140906245854027165435401204447645444813695980460187711594017181718490376831709941320599809905758983803715278481785875105978829331624572109214452186521960323781814849560322305868909173101867181778893591035402686786441556609406754783719997743953153994060293290471253041550716305870003586353209828886890325018592721162682488054349425252021220447458303381881518968436473515956444067274363963324984027984907924593604906881357776243818376626480178536769672132323487643075203263233500405568385284935933433169358148855158804094765876085987833161646380971270870385780198815732827949378216948182055700234362731163965703465140090137067405903771726120397147140440301459936436672949169711377290243001625550011283952534332598835681861369673463949106166546943728744317761815307352459876979676627054243077975286727519776259006713228341246365604694105861696920858725002277758763962991408774228466895090001422094042607923160028452285702952782142423159300661443691996173280387813007778717791108961963194214327984195086845238582557612368592658733776327003304463037441885431830592247351390431017577148679571903735519712829489370794342977830218267376695783747219538405606550250370560029275070718720291672137976054472310676032570345890754667226783688425104161421625770584885045828083233150000623149777821342948918567036910905022159055316859665935712238540166766773103420607852446422689545825257148941205053849536668623997792999419171957168694687874709277570232183452411449878643268368448804809041972894389143491539204028010042814877669163352725337278553529051463658603718636259916127783109359757371142433281545214437509795618592366503822966496255362778732564551089878032443753810952282385252264600900816220354357849839386653016888558706459437074564626314994248866981789938122031889131372948700349191936259552533739281399474378853003526371928208143458561119887655109638223517063924717540275233133886153086670036332987699198142072248647270489199771267387398305362835426422065887438504889415666631810975698581770915945557656564860683298456050786754010277692894333403137213533058049185254282313005888738354133560772443817773534413806519226700700545550721096106068879728590802442324364209436822029854925517162432974278363229875657971016633917125123235240658693698046160566692543338089729073945836432913127090786989220675226295761887955290006357397098308943028732015470943499725953867436932700669313129411157736726349520152910296846576770110924440697408637426607046859107147179244929475424392144480107663694985368404406980734035277725107782866256331770575541570778821463800438693895536027825812994834214985763904728608491489433903543092101064103654860982228351243983496677122526204272267273480820305902698123919815531945676307494973615054405389606104023757041080944831546391167759172462534157345844499325531248463636485948423795642080231372954682612867404546027590415149292616314398584631777901584539030842298227826033841860768820989603827240024379952825557887659891239774649193350609870593105844776511199680589523159159959008887145258096081306784229281432337612009370909132964277831805626123294245014952704162966826358645897320591467149658563818148327719371662738470781969253160656563986797627484458789006695863857212818642155969937563595698281334759532869283072749510707699330402506130548791004209481811071241094883488823241777448630296418383678416744039965651697032028839053313081771151309471893377614303148755236702708145786762941869990332059987639631654629540858419150917181671748132628223759571855652849875832415067503626354386845161223925958849293724387461744662421808542249678744380792866411477731941595426550977167584521422230067231102149759554550223253055304046318696555791599197596203210761898034152251295751497750175123895363771602959311910539887401075673038298223936222643375020687487011570589387833057785570667795594003829702436598224372327155039443142359402350594909510829862300809081877054177101070386309083104262628558221440702541391960353857399485683916799363688464879798429834266365199318614240019513302674756420806593258937419995177527881652234334635066078767345306037059911035506063290505736430600092004936740941768096318908076544830268668453969054269362541301557780776833565581777984277029690053255866591313652356895546957553057580481014366320940078881482998630581426198222941236548345809641320806952932362875557732810809457122443793979497154736629881213786751337236889893133396411455606286574495755642600335215193455505650461448493278070795477152383189335251646897956967250708039947224448880979598338224464918461909913998989289154063509097919952360420121974872838690659284776554033131317663603027550402174558889685359777615785672484030584652512437904984178602838299970405172759794597700050199890744477615177949347407257210398383366820668919613470901203149935871904396641007998587622998000838590733054407877653768379174988105382239195000909899719979745795535547015525270572594839674004616691793947116119759881842589208311307538982122272055942891113665337216819872129051865018727516072251000666221095949464083094179329110372776281546841949290223100387577017604915582263865442567493564026922492321508012366138769016569159808704135973252178176620673612277032709863129961389822637075518518493204864455560299123352343922464952608895394074033119078210183695385669623174659971788333545812568292400244844609352719532515089254456534949718695567927624857707964607569661714466812679854056528955558586448896969974876659182274570241359866629594879251509581884203817998088307565832783796855913212730600800312965071938844808888217420802919016846576120304428581777689887560438319913388587080969180228280377440535850418769319872772111384069650488820128270531294609949037630342413000299196817669359681420647581015274140586414374604813772140793351149694207263772247498432554337572076304944263761540618853053613868784605532543584615750226777420532267289608914144441469735131701964931893485194336559399341329236382662295641871138873318391231466738981690053569792992920407320529208039881181723203408685780975743559503535734454937136408325456181467602219701570188673674756259581695725171567785954107273149169009656862658273367384832114241507961429667849462456978590788204782249729781998719523661246231342544245292435951752131777409749365351917801831996459585485630566559799293249773628628674970237696970359763113621191768061538378697866155393204678096695759293451161601944996154735899213081091267898799842179550729106917415109706732707113235805754969025596363613083994087289151683066119153537771678552957117001874632600139194846506487549596227400227940421965222938395779664582673140613007620245822728688335494893165295115641057308918653984170352097096856196578533347638819280071675936402516705116354738566599091935954627679837002898308474367518580725276478713982706526717137399533168225863085098180853750931522429299638190189183432112870898096321844366370006694048388584238582266539282124928398982476798016482961382340556688119837584247063167837274154183466287077159113378785026557645484704848997097139827564955590606042837836556972079649424082317999150682481403387073508221944652727897424555695750937810075081091872226405961791392100234240399219635202601070047979840544226936687016203891113292019091191019297174759188088017331438867989641283436150926945784554333710266722317972935686363256409200117818296474668415111674187167876862958877973473009454225404350990193307998227062696816407073986176438124509364148773540567292786025336737453182612116707637719490576145106372341392390611277749601037383184235788111971026214992993425041181401635554565209782104345095775596492601371284453342286436763644481053344140927644823273752026982883234105489442762429461333366318545853689761357736638148999797855773672385746463613824451961559111950145992088182257136847374171239817415894841750960744885151098835847613966851770146957354930439205543906902251006423627463577463999549008930759881152971608490262306671401441680797424314161758503855816096743257302532623560624162513175915204899109903017221166499599580565864354120351832017304603593257080913635819416881515583572361052829131402860623343851947122742628390538380436917232358746285073247246517348099617360150594815860077939416247619231584783840416244987180337266149778040268216306776681626549159178335569810140207169184463534286996581984985235837613963721423363874659633638721170139094783831332295520430468445830459949897484782581866780971814604096140690104401507708364783769749095886674158087611144201890693549583897624988959035692843763347259949448135294530048018448343884532409745211149354706323489195031596544234174125187497279836842162800309541660325929694513358502141203379769788881008166587708136517628779205898230146908625722854544349767244738236067807483927320836127570819758834142110894085201135585817329619436563329288058174501759197567050628040977478327549152794432744492271053215910513350334209420719081157740384754345059822703697281435473734367497684441935505287365228550159212522648609711401667403402158125289695798086528825307753878929167382889221154733214934721232912071307623943523995888200235341999442313541197756851113169368331818239649130093682878293336374588381283935749490597482714830901603074012367894740742764175238553583995435462278757737239317005497855726905273059951484233058462215529489553453748600922960871938683229733570455219686294138963008891498953909805962741631460528835599328522050555646359815703093625085900371353929194701632320718853782175416774525106769237590607557599891395892880018917558293495677470215850465978663984586153729544122351272823062114792310406334383987879262645820340846860900616658224383691627328915247169955506479380909923930574032912378455895149719838583906516781713007223085832943612487110689279366516814176530835627920127481683693160946035865458867653043445345030253687149731247000443084237914487674921623675287664318419784409262036263751884915652587958736150664188155207491258348396179004192368431551849060615755410643222379162608277887406279732274172587471687008414949208300419573905952679030444064569124568740422693988964364148674116360170617709801978617262361585917578225342444952924584832421744359313459565020705247501853735744294196414132138784106046400716203875789677492735532046315440944093360439049400712448497599814607520631643247410271841544155091376829855389080564986628359844506915862888069824488594969670892054329584493201702605165850356001616298504385125917051526931796323838820228318956295714241933115670673076480327966584127989754831915887578712295323762373102263740308492563928360525383200659675487560399893102362396536294260493129847190068723334731633076749792323909187837024990002578083967443459175109412210853480885308974231100977068309033905687265283870593735268126554186389491330737189006440703825845783913862902637613821994164200762269221566845769361749870790726924448046455349668855887684166716834101590313454077743163384497827336544094514957749050452723683041161446057175039960101063477806036728316912346985647267027964455249631388384649606895613522906807376851546151225351507482063833889207379962012123802543426923103265288437924110955737126480142909876941991620629377510406605562556571404679301988274816051671622971858587315852947661547374438051937512587055662697407245181422236860003196548600540976377127581470441929995549344102815071092140505441812257801362354458645217678107264737219363389630270442156250934116423685501347567427414601514117396374301049835093235907840517933336310426149490853697777473391183226515450110617278948800819638423945990880212347946669703991968309898762051758422369836541273845060396453491695581741908913509682758199506518439654729121498154358175876585799601135906974709922602565592285976200582953030922690271775624486290288207991146407568194714856369418029644711728847343143106141059238118085505277087000199501281551942797578071698380089404157878834433145228143715993922856270517424212916147885968800731512061038527131962830912192402582935225411472500635628801661859382819258258794843325460158569436220349368653012711346453420128695861337337046435198931617643407355440535155340251639026104327980880787352609653232289959845295149400569297312588348108734137732966288804863911621008348113031050091138226347510847687026184502002829259475766241017214821313410446121183498871956530126615655723776110968075920909094660465914686407655274579530719086790081222549241841185268409357081597621259843111591867094039588293685726923759571813455299770221281298289935732499252535450981773878259567637139182561877354497030478133619231615386154864781558855745177947196869545041679660416850068561470095296075008762850194413950785564150865404108388190659793859606684410997278174006205134778939473733007791909621425549003039457812682831803742509409299399845563621448822159685646827933970084234817561886728663002147975080624298976435918999110005214178720031087754138071576507113589835850615989416757827203635076394418443044014463477655614870202355668704171746882348423136582030838460832941036537372741951767293630918084999575999098408931758376293951784707443510791263097481505174702292301513729724561792135182562926039080591009863400690709133522947242452194783798815695498024905836835193984983930154539378042732237434339029562609152123800255786081508834283640213433402143412569202291148369277165847486443049461561780854101433949212413073285557844883019405167354066069112171495926936403494748043852167472723646809382617158608294485333893530694849994422892788332726021545280367790373406688417593896330921379417482387370203688855768444203922868164031362841159253258460378498113883524407695883369237071874132256673627219948647002245015517947678794158811141940540870174233808603773807284348693912248064089945269515242972909289393136871766228018575960602331048285891598728974185377274710349004922465097191498690354749358781815773792021954605499546770182311851958176792005609523508385218550499288108374627100382742483325240497952029141868239412638278171251840657975315940437480039680677699431207543803254661324767870460866643077005660049052042742550653393097698152386276063755083143714913107618769781001145012808537050627247381265229373401465154989907796254902270160117167689339267985874870853304962511856142279902355834581194696849144074350880334341962104382065014444275976523409566876908709800678216679826112553902456732073724337774835758832955588977449651276408676681723402508800816348713482941059014805942729779571206001455893300345671771426176568775468465419203212097403099723535494010329162713553050306018070953997672537744707908313910786863119625815113979390620101091885586783890158121755592072723683236581630529326921568660859784093847324463226038093985435273427377984893598261707724143995487523940989638966145776477223259727558638282083896100068191831959009683909397826522684417444085408467240956865803375682087047090269209483492716697625961553579158148290487656549961494881269184513120461033773717284288657274327018309256285177801876291277834024002598325306278590358587517905877186261972854258607504982218934958967116032128042323230172265341751392720268492364053141327402747451960587439839931850642065518475887360411184908868303776740801991472548023943342872276846627253113811684131101164496541225286182704701432143253507010904604105517759470478566520025473709994846020167544817205983889101990382983451177943334748496538432130330196134519752356474423498548322143026010998483871907907162836821189551773024958228045844493228633188257264123322007407020952322822648535363311678426486170919294422316614491564256368034858771455476136636077903427675719684849225853377029403187276615099624950783099071569906107562660699622647338621130923171720870564420464593727696357041719348482927254097906420549847631222440945708042543112707909717631165549143732180309215161428151538117698576824004195213646018172412953866278071458830101452663898317272342307435467208584205683627331420506878147847826966446137422396194715462329010031238076098118409299528336862761179748808698376286233795819078383830332814831013880361769260375724251526569205323014417116978524843196845035175554687717310514950700348150353379284824840057935467036814696607165380497252363681018659643796006504344777734262749198398544485047139340661341474335441946416193196089759768790217946408694236354952128445611523324912138961426825146367544475045972988394649482547079154507461461597650405956410211826918970091751985936470891570351698572074806570278777307700829795098988699404660041406227805227470283419826454365167983657436397548568149255649603326306181583603509322631567353071208318041427067757740599078216581698767617555991559687895821565812016835175798096134375631079181124203512587209411795904447844775071471835307795849305240722676748366648405740878459089896697985723721672168486389774028839791050821386528910360609122242012453005626989528273104829577472180252650544162293546095237596197830363387532606702503491070116870826745100028667295734787829199924336742305426971033192470513349641936009892469629242049442532204939388785835884450582576227892150908945499118629749707460258805535923790520814560143441550056011643649775967993502842391849406558103395702108936693112777507136353933451369204907843834186363909870872413578971857556884980106103834088471286429031072692984486778941799310931263530553200131914584868484811514460781177856534928434013099209885207902880600933267779750822711128844708782579946696267397984470809551185125486940193098298665870797801923398893988682475722005459230139419365341913081050798590553095783374530965544429408196603728230569018847485923698300825100947020955770054121395239428622401173597000902257201235772948293997667225592294918348122616894613731755095296401391314486788167731456633996412151093036353716483688101999508968145259183669062853809962776178330055807751936370560008952278015887140754631522621178577734652583075400046286852864722936019994349402168157761348112881047705036667492273515026910252677407362101064132893066516302024873015871760983454130698489166006811667871303118617765071474940512003191516153120547669092625651120507913135358370804860755760971421802381012823668278698435086649837826852779774353743401870202077990551569051197033560190353060171931409355610873669632818422483858505159747220615824301782254691281156965549066030193778129300843696645523566593491531269442360529307129388351345777831108646850017650013457273656198530201144286974837266842188056324091211591684502960404953325790585640521397810261773905338018570457784943408315811702282784793487094532251311460557071426002380861418199645204792901460818575726979746067498555392509455358378881393071658018759661825033731460417494593437249662716288286802008490653275410388511432447034280865042789943221881252236000878854615818518266318583155655967475997073651360815714071035936528515205488343419452316192462785547803608933560736754382729132166987473764230738686609226221868526973527920339157442709169767701520622831616744309273205919335003556849000816396887615200473693430089350757891753694447604579659189754281978840713077049107274283507234603743104986381700520984788206258077577860326299679223943454628634090474372088499823839274549881093559635411180916957143956545165346864362953848616674567872612844258830502420703584273483878776238208858887851119619991822441312881768210335634748405412600081999266174736164120990311946741922607252171041597987203531177172510264258900616704875541020817197648346831954401005605914492940860805721026308229172089402114593365789999551817501247672583858726319454916623776215027391766626894022771906323332402538755041137670200703520056668385883087319882329510073766980923470959901389874599844422706834827232873744259167431186022408617161919744368153615316608708373353227983745506809440529181841850927495245058572956412117337214915097195387019165224070181091566787104200855216886302423723478990952135808534913451087039653514914972483706294766681056572304850879616146535017854228661677324700468795139895985700804497436045807434183783545259745865117199891573416925139776121993179591939826063402790854299986830508559082023328625719324398446532169867702168023288324240578098542549295705524969000360538918841067744874945418386670667939433006637181124033855426666954238133810984437523541469165039953220310182928064076645225103476022787936138532013039453398492640500565884801956752865819228037120956301059946008628997258674005660229139262640107264424635955299304188341821405981611661638124149252466715948945797093111444099379188347501029838915153566968122186714493863513909863897921193779308034600747267000860927376622717566753038255993512879172735304076172447625511933438379795286409757012490879580462247743922033593735841202821132481331737052398075614767683772003749944259754350235793697376585292691721309933737633434226341206352966312187388601263406763025458553538817167002260083388230094287877539061242836159235061131092503796618350348733340621974474223173362579404498107110088573164662184755009847418397745053383677090018735550026090055668995845210874998687844655160810612452824144777821617477005899389076394892813829943944598620158607854947547758462426839961249643369992009530357784422155261323283261076995575822296325151956620336748087752119150958483617070932638765548966973992701723972329583408863173823473613876824434583536009827551786977226514134163448812032111474265663938468090211826956556977391858254913690537049255860952202726892343658632190408492245873536091528324824523380448616393139753261559273917326132902137326000737685232781942135246460138752399804388310507952223026245646907799125317443962295451102346560616165845019919656620887951992855968405866746208303404858682473696969780670133895208589232081601920718281572290978060438526642705610112785850213330056665038600853011638817388217602079403360974045063760358264374907687901665959724763606570400028423246606932741097870412437685527942972426933790170217939784626865854435793733337329110105452943518573658393310166794726129477493891200220690688456861429255915358387943494234218291771381283957165890276293226987083895884823234743814611280396274674337364092006351670083689240874673734817940535371773817691799103909688419437716941900736130001746654273922997373234808312266276117730210928087048324899306864969120702690732426678881691525282439362971852462058309906304697279434570337204107870986225212008583178670984419435566815395554633405291075730719390873371259813814376284871161635809721886876038591657073009235829128941332578786269031720150889917843440804958580754795646267766163186314438189188926926873776693637613818884335557242968890795981752707600813563546932021268028804308207914586796817654378484534322276505701370729382848946870101095988819248541818653363018973198385269792469248414586341794193700874855301120111399216979473844141036290865595053749022000403469362975244247642457294944583431484345689487978683995310188384372550363641488561161970405443593664734838639609263915813635497290592456777753071360782608320482616847089156311107847324563224851523965515081645044691800495310112322525334596428969152095041419552976524089360157360686766746859091897426846709738989869444823403317056539162646746067097129936180569161461618848854898298042347122202707223115781025890617808156454171949182869755520779932225697815140640007924972944519368544115775266870441758343300054968864745763761593971173343314493846865238225872738455366088626585226646383319491274685517055018787997573964852560921247930491927272608688147745300167480042209825661619934503033888885005066530454964828316004928628018083210434887107397080032350892168824417263612905182588773415514079248108190454676286945406641046774446574956224477445111209849884747396571773290124880588716517096668151083193989618404935204128253516189472596304835411497447841133450567947052931185382779337341134193388161607338731853572760034177129446602768686408007668993876511165433770657491097595007417662027257289581971595127097910047841218958059989320337382006575637343418024865889109585257509290723870963171449224664716283150182875200231840939310938861307200216800555356832569234335388141397204143869315551717552016695285573717555857049826478517459646308899523646226161648515627253333383845022529308829100059372937206565973696752731248663972215258611248261940530904971909361441213410533595564103063383933899492085560463422156469570623243733003711140822293950184347590319701480512963952666898068556945391926300050570519222926395651333759810238028144921828810935849161583877858502136652853499802514015616265016740359837644043349658568279311801330910534237094931574493454363907982975300068244574350741741017296871179537588602745959967388270967289304155619111688579421310338186386463958435379438488547374190805519769715951856934740430983645293683196321247806601614891601965311251048814984014509851163878181725492890177240838915394394787874266295272184341746727674586290835760415809857289789151249075081130447345336046704770856469038109538477075987869654654290429923858202397165415249619720438779179619052221162556715986690436843097595124932381415644001949288149435905589127275943771319837815649813665246974441579433390787316622581574188630141082432986251602021008267539386569529863621476311327702136518970609006339493284370701551719742038092406305740749639990162372707502229871241693780427272681487043409342139129124579598699755740673461990847679743691211453255011758447467738326125434192478181445829220785615958252861279037875326317924569062886657844905213540929188155948429921524780743682458026774819466612465268109171968115393799914125371223825144796266380964132926688199241482278809444526794059771223598265259059595170689369681652399491290100334651766513075171401614644569996490625033045385985520591870551673141829974990251772184867952686802405935149701086694904893089753593129746556250580568573760600345215684684967494166010948939813275011005187261722674284879626255839145983408316217945980754899528879828626585465500687944406337172407091100099969547505121444327207699439617950171660154704724751232884068726122538171067919302396652301554373845395096395250404050132953531542332442255966338442014808927456636479122267288281194581454717562443209382243970670618694279276661846496413176877715987895382567159696153570569108141528881897104168230419723020143210658655733391789352848998068511736988526319659320447530117803885952593501658933337301105996085122578565681733592682762611135211024245444279706918472550579942462482912526706580281815968419016281483972204000398373204065788887781446121231365675210621309038125253050536803147318892810077202352370645027690917247615270960837653364037229806845625897991681275211525248431559420790768641238188424009242201067207223645056200438851544296271592510307295887760395928780850969116578601737984238724338647717865431877515564355592776116726472130669028451310598705740015434931812754405284987840110993259148881170206941660154348774819506685070401404686435285410968828050420688604571677047565833511943810490568179266288997327523382510290517028971884371829446409477573743332658298225694307109313080642453563153507004162794258074096783505967458068550934220645619480887396025173856340190136767298433675471657018904899541853699605575201074620205271884833117108518692449746647170436329502794039967571953312536401168298381866286677714503996726931073930173634402377066699469478565058095357983305575250676081069571287705688359110141808729710563191088461197193868293370692405763883041176891093086510094534597800024915127346916472064212291230965838364377294121096595947071210294022040745935123542699502727503490276143795902389050004776180508245760212361641048412029000657832356556292339942493438274484722684429028711076592812272596982756444271216274202596186635349246217038410969199396970924032368965484842359073721844556909796389520750061429454972118201392133541906929484614874064757059949156063042492081007897463351383986636376979852536472806057949620537463817819042763313287974299612845979375827858398125887341808887916993338545932653878286866380265429593108399815181559824777957417887139789468291827657789848967857451238240958106499322061610500427025904553467497532834783680892344344908616797378724759202277352053486838425245075306687364821420560419672578598173516913776775270066325414563820129575455478681746612612201335530115773871023614651083031034615876335817870100979840882279293731539745498555675544093742231112583195798631169452365691610255325771029265937166405217568250410117374316170207867863359181723006613701924954568622294901319427455711304501578265559551197973217612341660177436181844629111583741553795038707584872214216646908092260660230785593407161181731360006052111707685413588218086884791589955916771450555640178954401681332879865673098042023200578790497588592022075085266188773970161088003972550640683749331146309705665129219660795025284518147029151604719413474127790138820462645276119705323678712468664363324609474748898304998638043499674191520377273364481785468821607243838561820349438096114469206619832567780545512041783633992591450840957150581427235069749169783636093720686136669500081249004982238543100147839763387473849674107042056093434252635203706459727058909487510252872177716852824010798110371910510615043859062338264147748681461850727462996609980431345312244876223114157416372711774186922502636414209064434822970734859377733673047142470519624533890507781152712804005362727288076341127900652078750771285202750390467391189389842333646516149292055235948533727039590748506470537336420991298523267712725498778566413299955284014315285597237755242504502597261896164175725221473516380479321124545447362890172580709996910195457723811297440317782109436145249736741267643762099073612766635243626535626774202272194040565601639877763080556193791590761722555731326579898409894692616653343467257244647858033907044018606868186875281669626867636097290910529135620087189144426268638988932499632834964184021608743911474672922614047961240216565405383053874061592083494250759146211897625748087024762849122291872179527466307819976239124078088876014128329494156147151885632464493595876785279694923297946309708737958500617004631442142046554960433950457113828150002438414931440736560801022518926881957607986990430647493179953257375008809384986073059390460886661015247544248086467824413546180331780327464626562534899661814974131149090361852831055411751588028899736353840290795499370736365610247729697279710541288392909969653406727551052636892847125800729474383051322276907306001046983209935910375058782261057200525126238897650506807014087397012357102243511208665601956618242137918023812123891235923326789093547859927019670382746276477378162547523766647426747959949848197683675760621813503027078300535079225920809113743223053602648934757126223049998440640252757298013996997647743622121191324857609521236152637013267107490876353451527728634706201409354982450391674124218138251727285634800707183115155191864203869915971850674543403579628523053055846721157984418986816109775560842498539703893925911331108518663287605864520004127649270075495078937427423602626258357350333846748852636526825558255821638119685352859134443704168849388677108633504976980997426659373741442166580471051374508568032815325328821336699718083918794778417292437895487192780083060275102691719979308343569592244442774253675761023974173158832824024179916717412831437725510843979546457752083750934395308626498335785950719519306040761343165179940405739717907438155413348757569106343395704306973487351125676549807893416886763614325069429892795790712955738254485908395607575926708545706612210815665666654473836950291075559884478486515924299185127414411040607977194773270044179695204379186068443428068252890731091366607214736878503253346745082570851752833434729916078129408457387828161437484115575902995295792010241185355666823275094857973549605564561417752539507807732727083607260107961820513765605107730407598600581268953450699940308910890916642156862234957738077185726007292080797986912876796265023086389276847863694548363115549556307150738069338856021567696425646040438686155701157494579066008763167716139063103545435949421024145677534969695691417103236502679012096826227648441003037585834263727587267360960254634478908067282869204758245071553799185870749409310818353768883526183341301663004576554737393032979518449583227679932093269577958034912900365481626664498320002734243338297078105378085051467074906276080150117800778146551778087543661989949828007956474456359237701674138347089883115731543432376708700588712363318723549025284125847530901516697713799809748641624401293028751104435714101757474692167461901371493509003460882398523351191627235729515202763350588266956954630011164986183279353431775044095486890423599212506528840826767313850315127732729610675050144904379466263604440733465793242862627421563148678077230548203794571815765340170061626257515408069209716765325866443856710116948204371424383391542596248794768175464318728617351888031448493194859185963758769637169066962178066683281253012705365622958640571997206926751128725683180649101147549961604924985505654551415979229709095073514806391252621160860463649153224731671156290242673623622313071281720968379424288578219418050195290646675937184769463983988170128886787408654891383334486916995603664552891210921113132982436343497699497604550919995944273699110310978284594824731859099703325746417159456456459213014737675414134828591659372258218100506744597625406731327425085273020169513634190508224939222149538693765718584946562142254515856115369151253754206407610930158428752752704674777953269198297435157538486743695910005779529242261518347048520040464447005529612233957675646794622201954283736851425482044009670373749963662945646929026773789469570846699032618543425955566434567312847050255017066695513718407662973765090662834135911733702452166054724954782480046441231567153310312253130099991114915930069715882456632092922061983710311957259911538350911589505250506764607065419136901251213156939568323340186556502188245907824620634425703352110888381314484937486798920024507860512497057906312465905142071578699195619702084857878393659527012975367938327649623849628700707128070257918424304616334389282564615650046982001663055655386003106899267721286399905928179244644622934210145486548378712043479827167757924005256675619258583181775778272444214530247439484387224307186265059360698749523172913351389852861008673060598625481776400823707669372600179393515344939591790662769508434274450960673669862912715735337854488426546250627172075798895786764288337952794829636631047924206596285032045753834054948210330898326715659626354168808906500766714444435316714633847677416305279907497452259763162018178083301116653937104856425015159782484849019184399476632248403607256713917583747175054144799371448201999734237061475691049393150361302536222716722810084068032944268337187497121462137066618441336470880281789044086241055920114197189170381804419303453099141595765544428818883069374773037445875767188790423214601146685461353455640742946064147374029219218638303219119963331965169449494175545923783260709733949102423763078388815043133790354295104943157062320645729251958707796478580229315631803427608367381342009100909587789319479306864648884722133579729541422017358349052112672094599772000612140961900739008202745647055461181837925551810646920691316826526425240145297212193753453080844246341615698744738767068658851977370919994307965452223997436139470848381441221014468655681508791189946715972298207006665504244788043363032596449737228844354146116307659494999301102213196168792694888149158786133908616004908939947826282947322621051783915451426057160056184606060406567928261678491171816600986438590769690057583248087049529057029453889553773706096520157340267068981215022592510027807836332221381104176858851794113304142244179940622746109624386566398577067661551433001467043017457345669818669814657744560056417622705174748905031834358306838434896596667738760054063901588933863422916142291977253495291280671535997215975974310303910360330720175761525713361296517183361640275185210110585951749524079200986046141959649669644438578357027017426291521630800655025918755485333065649918412679329717786154606716547980114352039119424276132467963970394457440262396232424535620859465399880710710404124428111613507233889269524244430647525533907654617816775513467051700507841017164683231319515393761670380807844440979961823851982332437156481985862533559778676621363321084651416705634631547345313813086147993840029415185708693250295238768053097838793396538295321804082738761646592454888816047859539304505687577970243766294300003210328848929676538160957390572108301748643301356036842427723167206758712731807102058139615810872656900121180501197809291193751691550228027811339421469957895704662383151752866350250204840442728748923026683002898524495703993443581415201590434925368274761952208393788461858613164783568178820199867331611132249567717106915029484682676260855605398609828952334374862052723620965514086930673297982206795550414840906856958588695860077535623009413813274039870772950300768201451372830912936296747409361719911865893939067061131634747323515856602691707133928085477574757713577758178774596742566117245636159980530274376742299071702546166061346871074334525905020224007244532575316861413782008148531367934893557836948495255594998144785179545105786843861739902781288253691997047427723678627169889007332051957385061233703292242940526464932249502423213884651357481938503639960225001245674530925626403668480601277851930993682622386581958256501805238661456799598687222509810360507795762574131407276424674618945174569297829529556159261027106447670887565326666181964926098394931644915636980769065296979863471067051948178226717248933752461227370190933480610237841693919003673751357628130152362756498929958862526053949952487836923740217637558451101409795401395173723525386399069154861652249877541120950376255477463688376902285618582647195828271531789385605754540260294978811206040258231646335205621528056170621952172325255914984517878632328207507844117247461848411823686211289017516593710811048470179987270759276475476923597576994890875900773626398711476120254447664506368968752805459286242851952339506801783301173218099741348628364927917619596913306701793795764429094572332632099232412953901067674418615662858255305290753632211630175684657766859912870894277003355633938391383778300618921446063786173169069221125689551247209576866174826349862387404785962653333837384327372401006670490193443484830608072381998896641679221983742172941041134917586551980593585750055498691553270199561034945131567758407452280487522931711757926238843317254194872617350145392782800904026210902311290662090066093332375228232052163822448003780114415567803824863352278743071913131088888695675988243373152698143896438301624319604161377820878500498501314309194786981422350142759497671796872977084835777059613192196542260623764902151955401151950243818171570350972428260980501972892669344765547436168566936041819478555829873073384066714801983072816943917140888231483514187268430727946906878757295176702431899456517525523329734224478433084489995699486549924912828014044619360933344535459304261717394399117146519554096773912698342555951865216458533470421919066260725365722044741834507638227520179301939002660763721007504064205760493577043402162384533453214927024954323904923794870981508203377877508573249407302058564052933650969047149589339266888461343312991768285905195739484728584516328355802473028118441301599330541823629921353034031163067117791036259850449862861008124006221415426951237961013349743022122882286450524387563705656613714954484907258979427682356685698485523972929157748951295402328596785579547441524082779600689977820139153280255795771014040120926406999504941447442986258960289578955536144261163216848292773651744238629148169167100779185207164703172258386882546383733110161557785060641399881478592090074189048792939719114767195613031958279885173068000808589714847100775414471028786714269425881028277643100069623234672445086006710971596528619409675512340446140188242256355015975074713006504758321555854838268321601967232607478962233836449815274527822970141281564724517119113372864837574160710778375015801721582587480518140572207178640177696759337954653664231871539197969736169951078971897205802527869068722999168744721707042540283476570824076149526376984772235173387976991456466044982305973770019838286824511912870462581904508892106237499501461831789893009691827733000465591160111759811927042591086274071020596459086611581844452446919954220317624843532408406147708007713918644819425189614292206670055825131623185922746007997573778498752837930418747236314002580380815329095142782233578747094441617442269067033915882363362625834675199671471745334962138791858821431762511910902097194620552982748490258065152775903445359009972013388500155454672132362475398715708894327666408222555994239064942185668590794686831690830058006074837304814082704024182898721226211874984738666611668221973593073770021774778427497782307649660127814557395906673662431734579965484286559269695627470643411441562331067700603738756721278549562050075547424711705518392261803898454582866296790353023356766263105849088880984223328856338488000512555107867179120477664450825423649198881701025340459077658951272559892940504346570762491996772709521488399149765021930888134160392268826156427901460720609905696865336289613730276619411698991652890298342899916908506388901883277709889028346132142426118117439488896860904426985821209175916379612305332649232029052587934011811150581695380804043438251617325020142499445843730627871035034539278305660156249095020863311969705754022329303438769011254693709767120098040122785457652906519989108089141356678935812230972086922061648574043903146830462468093205384197753879668837704296468482394211688625856348161295076494204181307394034809161504938397979764734580513199056800570357905064087349766783847251634581196374301502738946356300970822804237250744478016190028074732969587444332496818064988848978297755251428887396700868869931661796035574536709175181050457363780149240899695174966750242449593521818517576118764912909291014878227249081890855070882715620239888798671989147540851931437723806473138151878064752240613763900594304988357483819039282130941722797054096857589355253918728071550565319187998973586371700691223774527671508564404827447812599523912112974594134865629192031890992227243922513899127990623239093965103222525033126623955917856070516892574411135389902276395696430455356680193907404345051178340173378613111118498580778321381518282468384848748671585394934299846202903008166934461776795353062113083004629581823844373488201701518832209734463260415255097486305755625120061166318579996321914290324005187865244709943340470707894794344512885832103167438639248835427772340422350470019057139683152120073455315650725614656069600842904308656802660424611355312780997099811528720197085187781295663957026623405249083344614074324827365730373515320770197623409357040551619832998166082633550258632149014890298079392297854366461993350964163546301572779639243724519504777151265414008916965056656879017144331274402157994444581973815664273585932470499341493380952301539347162404533965731265340670179378228544554851472333284646061923507842825369157134649631663197826394594285991315928226283171876034257498586331501591072076900280153945978420132147764744751456030801133270806789050269977133788881897020006784551139556796428578596673195237564983574868718488711570950671524003541311477412243872292594167648526642255781845716441910789497087629696587599928487427598376154563659754288556296384746960227403100838512678935947722948865018822302443044720509275075665631952773029268024357568055458623681780069151363623641396481500092721867501517569784131465012102217774767730401152198520496107366007625740541974080559816910100590513910120780174981994833483931607675884901916808858338202087628490006173974605743272205257103366792439734019153190267316513518977433518836808944935781520211099531445847263920911423094202057596283825170515465326141023082719010953316922086552228776885545738593034214719599919542056600640314080906292967587504717822364944520380023208290858362989974017984629363684339172860402583813904086396671119247028543564268461168832285412549037104832180890265549736720140961832006660366992853895046121210356177162509652217041783113656976465379931263527322207140518225620312459461843435399771613047434719231146475619160830806315349669909885425499629840072779507588312254367303778882078239818407544573106226261955917484282429599273246170183709426016493133279486513806933157700415771012960198297439433826933675432466736132546737587826819223248779063837520556063468610921027774501584506484652247715806075618979287498507942087205221215655248959453082534449498794017028021892168499060854548410231982652078548145924761006197536532744919882093241884340057306342293459045242015514263413302497355557284923405020677986528049329362567662905546170088853808521114961633668522582651515461835189991289741204985529898006201969874248722029331778129720867255124364310433371359363441214145975145810408693418358360975711145337137863140827486768955325944945313048270852493767167689381612836170002229185076200188964368359387646712769314160842282458448800329943010646420547966229767781908281674232125904969270075740470286564091960996575185541644636258975806731324090865227554424132913561205506995734200452113308945242124074078254599292181258939058085171160081321847964367754576082485397993800589860494793605351042715995214543685591560495383638602292988551067670794828528157499333435236018408028729255138275469890684569239521149967927455373856999102771699259240271040300554641621205728386481742210126807789879743064176451369313692532066170224796012225959801799405206260335127855794106928061842984449159060872967748815108014442691936241323853804710402018357314195822208199865508935823097284378652190145214751353099468974323114813305843086503480583151081694100335177504962295483173247608142339673324858192193997725592229344585052693469111163692042251645794804016822787383796751575223661873330602765193308290513050711544686206583656966513294071527530110169048911299881234460671106517414068526403050804192995781306954057508091830471773855063672477758450391280825620207679456451074136683710934378763504470592601659598467603151239519229131557058082999991128413701041758633963297740662474331530676021968602893481616081221959254872668736284269326808258699531954428957157227225392568309915662368725215177257936091481593667729300210711586692092396725196188804462069452589542588481086181214004643701728616393013557360843873041353974507926795639227725806489565515332649399747274857567153903393725446701236331154743400979208284304494280901766975005804825601066247364878414388168714307516804603418885864374246162753095650207659181224997400395511948630910630877919618269283554545517695053177531141923188237313063510779203094138262807677986763142580569575434913316617408907188972111241910717376865976478747010598928833187871630995059124633727521087466193790316869355820419372022711621657228303335412715988769377122883599478388801422311497547285679930169263934193354419157774780516223531596036918315219031339819015734449576029422696724779743705332782944222280947253078031986785446091446754088811131318190390849862822775572829472527342147276608068142163879722812223107041971580634339794781222639824766087332158044981856420910245539989212446362799802261995837179067606070555210773608773848276046748549669394676120005711954254880200748340538718383297667198355805876410804687296081158565804928772847726681744868199344669008074274315693057138167883526674855613252293663797588988719570116567226136874688237983944183525674636572409270040663829811533320249923311418520615030451971509287225224858740088162237904063259974831157190707930424229058263067148541685835459687015148613933620602330066288605050862503610858413559867314168047418232346905162078057764901466240798927882095983199337552131764010023040149812139687217058803272184782301140211994173556018895712966301073638130023772896025600570806721468475139673607057420470084469263649460376657562035374584673415367528991216110834271905988036809341947454256011886621606527525927295382585050789957478753074493006717659964693834126770228805602239242412924036970875390729406660225237974173209774523140685395169430468165887854789225089619144957981881603373908382729792452242370519122082150040083841472058353280494305646031336109686984191739319264195690734096367469163749228532463545157636602431850566465639965500797984607795182489270145928366445815322266311075716760259460243053676372912860247101664805742738583388948209778903236700475580633199202249371938569894447098281484587068536589850090697764165084334986498938026804292970821468537523604631443454660599760841438994067934874115908260666194990962922614852873797359489699154680964490911465485023287000134361099029234504492831004974031483234845732315362719563244015677727734095784208832272081912503932459801053723804801858549327442735680410306717370003533251617261990954732511739181492660926493412135742461632419339931674315930449190156265832236062124041688876644548371975590680185853392411530346553113853820841433668832819557235138097868753570406348207859041544614609833952917340213276658071349800089438768199403290679864962988555657778078295579865266379240704183016119134435290746710743005652688791119650612997077159570376680188511804382806503645286884031812490943204505099521109012543298446604815168585267970334345718162383093478371455486574745456728098923078766047556453222578164639977958408315145012645553430159941089698741262519912803778872897277790202879610709563920542218356544105527323695091597199172851948324560600869104867244421074402366684851740556450111697344223780632186693204595542309127324589443807327250036164173290105065529501234644344226028925275560112686516615107689861751642671771062237660271383519450529779070016128180116328498851596728384141379933474983972445519569088259504232407741625415099628496445570342428334331484347767574951546720155012551769287757688590678169544418534730924700181921314394957933067928718585814323687488322518198311630761082518839601668614385524089344392657191926321249570146422368074456993050023948386918038291361612598970548624299484329281858073767187919243017914791898139318531918754308197401229828895434169161911901794325021339761871379138663428943999186363335705718904000954803322106394154552680992433880890291344365660605221028380384231151409379415919888522481540816807363500824096936876794043636006334604143658736764436364366158163085292749730266732139775747897460361711915062146331425993880604634977933624835278183759555429163323915288590016007503649811635466989698960343082362563457947789533499070594354457922949058947212803216320241959535174234292946416658106283002731483389185177904881849037408982938466438614569033408336207211257238417869215722265131472091111629027424363008239259633150885014412650749716617062149534937471035961844278889753115541955819561372076428078718110008256319031578675026019093060224098289224014810062719531516539759054479115274857342249735709368162984459050308364175481948906558118271779606623296448101992475926080180987066019613386244672809313676248439673973112234403227707023398001556147601240829903757691943287630982912795714009544418663942676107981962048188488120434117033908048639687708036625138384286371858071885285266385850541586597145348989930033598830856266726411871331178123450921985068406075303824864324541986168808891938764496349387568780712213321028773889167124516932926106889441156086824685597405393863485455558498844777565439286518641831095667290366917667034526376635713411565432073120620265898913348256442164760018353799185164720260638627188981467445490530813720762797405770018740271796693439223231681742289916671961574478567736616518946922103083762479766781382784739243672759393570217360283103247642417529918474998333190186518096868173779120092200350601313198600283934171799687924072012646383775959307828433771889294540806295313390084441674732700803660217448088530311714835970587301393244633589417951547988533109721673648040912476720402241200309533319346168473593284158244713167989885994382788978672994521260227921978383374895029862154451831014199547652574323647705087330850644358209390078777207152597302024875570673450701399651265081143136563825655270815500843571773175964549686800915073607717391688647750550530896494240513379761268941187720531743760598195911513983215044663910452506092370536797133142064790684299558448639126001734561684438406173701487262744863523652252128481367276211611162190580118481335529640164735092186040703669701249821302039110363059704044909052896349615472208291789012476881734832855887523620335880215824338396981106927201917310290411319773256984838832692991491603104968499751867961912000890597074654493668738897646285097940781133743349783178810458227303303983865518528628333775137939589052214516103023360299381409047365247601383443751868270662361455052084051822715502593362167281598485830224737751169511602994197451766952969930196724310695698222027114224901399115084086141744256274007890032452823646803225107383234707600221793244725980021811358205675454881192660063546296605058988894482732143008385573422186795357072902438279575835477348644469590874647040499345734181214253827202618543972642682896935609655983289787170779783084914839005750247806951505537724431683151817470257164108174858153130222533717557812603743676031970786614798407511650932991086020596563781243236104728569218278405790021259772554426621280330851093350009273021958586754751956913259104401635677083994439026729739789567597424112878498120530050545290497619119923309802065326314369672518676997662336750188913165680693586610579563446528796258232164083773634510478771977950120083613232276392244783049985457111979856556844006620614473819848753453341044987669072334994968762020343654245815513027251926708809629151862611458277704400173216777391775278525598174783742811958841754363619132814828770141321555046228022634802740308581742125546241838811619982482228325948812003404178467178680127020691146049566621046259469032791601758341425607134508090943031643315205926102372673058608055695915317762660037388926576692757102214072559189328032469937728471480385876907587061748525575592397577590103506723824904726447399089211060439698803854787928486262547876235496582900121371432000202700201087982027230691261938728625350521852008724377522084205706226434755853386498199750877615407845622000536155535945605072283995816641766546984220442821732619506924278682877188547509217303708904003072115225444681661127008731175800907542336890558876055249509795900581355052363079516979227089571055677766387390057370533349271797621821745339317965214956135423968399230661623664719116267880389477558817374448575361605871196228746002742046388866222912507397917567420913555065390302255312487765740579177688969989425831949366520920897494833630244472348731002970303604869778925927529847017105321627391316577302837147509336203575665345854722083318031451140348228889845429599990582331295214149815658263802667700897342688003321268121879262861539463408484848301300067187836703140138240563829812393621406311453988354055647315114281718036457663134371072878486191793371779873016358888354969379997440309519264446451170584150664524511082883809529695614197992337866628026919421202771177006610517485551015250264633142805172292585335870139170815188390223848074557532109000410171157863314668454553531012846980221073434615746914620113018204177722733927015879224599967521404076314012415444087014106558553814570509977488027418009893820037173219165274770889076406248941058242521058476381705432853854421472017885266660114180966950000790053904183369435491281514761110733473582444648638037190475639359866126683929333621972206752499605997926744705212955360930863303034439091812286738525121825833135963951127260080494781907443598795048911602358377359434938434118956124995850941687195591967934519180973331221580570423198326619847532450276209976435610419804626800957177820098902011020129935687030431772575597217113730830389431464364195150662342533830121960284732267212842752780724723853200357009275738557343943875781195323241131195810889030153272569540428958625824734962893783023381733848578210134004490925577269579456436836603303826678858618079955598752383024308403403435840711168505597811435493924812357425164282275286887353936051906957392413756390743742957487740848930759301369698187121135638466353100020145234089508715551518190762545549975470892246740505482105366650974638184294537747104617780576616338956657398417631442774369989935335458894494256978719803280791990830532114188187358894843008674107047457647391982704711933039881542935793134664610532033541637098416119187489929416603934120394827827383785902174840176383530621443791302863383413288015951764505597463709709357633315809211194864774555660875604202992050393805576887579961350931607563108500266382448299715544390772395366036019469963060971561002595763346507911715161247369403689152160745314399856193893834880380706252730195590129228870758795628968966469887637544334390294004026267506877333233341255712466139360809067362634990671399368083084894319189502029556720250591742086667631774220985009026941464560661321031583264426468086483688696774002201618435707483373164109308154062356050179106851207351259673693101821288838049828301071955092203768708148943691003000381463856851150172239761401859917085140390703436216082622722142187031972723433656823221686304792873998697972235203288540753435343085177761579552101370811768510933229889497051228257365517130641259365273711722830764987582273025973005397754794220087994203110122586571379485792117433884395338658427743066114001087138900579908339577493475322345416535415003583750942087858168760551265038085840267500205738622323342336765282903052780931650928618346312530880103824448860016420311837333239521293802821272600761309556244086684917036490152878038982384585910075860574902633472203215801349859951352733085932115801567900815631325884772417312328692739357819934034400786532398379744966888456534989287675885906995433939952931664193398213808659025917599868678875554291281540554802403080353596310435602101100316024118510594675143079496994136827063941348285251604140120037052636463943898598680076545056352219023373239733741010346009576377474663697516778404251028159193496291913697615627222534632934603430178252587437190896602542523584135150415552957543633318513868963859676527090500319110694440787456874676882021835787339287328638462927765193963409620107288540195706790601559724767162888016494084699921116857963793167150931770683026848894745973993867994073317021464555913127946606840704542390805237518271144415386602210187127833440410245445693681732226355728702251607965722241578427236423221349535224214602016475176608677710774882110894179328273271896307073025284306698977929905497518104453576971024061129995947391023117821985178077600498099012173383365377750056675196660945781186527916231330178596902836760149820030727471929951612385143163312264387591986014391720312975984002246442980576960642020095561919206812090885153017361075172729100482981903609957539815828667785649024756319349654304262875588028174707850765792405074582240937896805174453858837017614305672094750271742321005125795881493620956788400467871951212203489574147479675394084082085394434606423735597935895491005413864139827083066513852740586565574183978776334139053597090246392095065658250795152971854806103520584306078387466307245215084686692186223142702854939996830389618238602438311804888833801036449943773449387690274308881079232299177480328740957641204251314481975070256580017127441545792650435072248155442127472722569748359860325049403497371171032326557393654541461137476753769730107885455674503225851821815598761400351190397659279907955446935872010953862201390498686048091663936533820848475057904811888683174103918859973354813748377878224683684613039351486788517171381896689716697770617342309559646967042982386600072264738956567708408819627507113833787294832863663553758407919650190108698918862037327600471778449790732523536630663446299924109337775099661380909769516276172118368831033799054968305208322673169573033122028484781243639419879670066387766704460708232129585241554741453581972691993554909428799271691939269716058409491545117690385143953984975988448645005139316450210463056585927070084725923835637195223385261762677950089199173304188045199017937541648577027521435802632168607827730214335649260652202084164565047287166056919446168915284229557036806286485164112589563361561245705963420627128770236487035398603385381668121617619514080521285603596415631500918073404478406043965999596043933042928000121835322013942745485021068331312387891892183244764414679955039570719013286129579813705891729875675868907713827660869723406478243507000916134747044769544253484459357548353669353562826602166676248973133386703587416617643483460311102572942304271941610986805391670537105293045880896086727901235341568954631658387953371668386827261243841092078484769804018762272329185705959007505202429363040770109840469968673810534804493794337638208160769949134504168702874079491547602693868704112404403625633370713219246981356083306480818346977472392214948735730072860243857720855939133255330350892241809459724748603997057049337934481987594925594398162307208480811769258210716145702594036095603357752543780639714055879961700005770616772657189166150363681531602341848514563987184825799909028835759280987329101982747612590464006296705445263447780549222842706958935776258292335606639652096108785736796785051892283193480057659658678766418695475586530412404689604572993754922629033514889742758359565351937624243191674982559908250613936911030313931433449725351481062593107839244916282961469769836815243710216922981852428249482177466772344914136408850022182035533419699005912206468214566374835952522739920306506167083038316129061218616457696714183500536655427003860839186547026357354498285129505415084413834843846106479641307698929623331359919376214843971702702447708256484959661764360146828286011996714240904950305835088732561745933285759700814583335921221631709497270912679136605855161781997892253135589494822080003408112510803160417700345410181682074392298649884864359193530006532313436483004108834542103029570469253205604163032015984322125941957595828445393756135783061813064476472108931481597991374710902349197990278283596386549409567164640526037493828380726100073905563282116504034781922359328923280435179046937900598078213674156959419768965732596920043759890987445970083136079515350531028463392492424354146542810141931399992688075931485328710406531358794018713598085537273057447834397557221467345212239025595231933997008943998467955902697033451492564464390899017424382653765366192148095720910873820925577776707680952290357673719001353074507758096245046864110249811217067794319278379074788887043209748218516495045281294562029363096705020118338810024110296698402295469809721812288846566495456815178279677726126379335119370558764803109528474145276382858034275016690871265498336503320465038624841593059259948513337184823055995097815090045351543069966652167415037030757441114151896623099140693715713701366720200491100365947539528594972791553965447013516093859214074884550896586240455730246108593575033237751997724544705197472894176927567124229309795901949016489749193432910353268115880186632593437159913374286246792193446750003004678679388665252793878683535665270058480458445754928917447030766440215744414789539707015809332442761011170981561309162773284579549526196727767052463193067239742500583923127623213250001282095167278422873355192813495710143012949659218445239588629000008115997681982087518502936735712449468459994808538875882392261723659635933960037790276211859955981295384534320205074299568302455434672933032659491921088222010520725557370389647395763709338074207803077934323794513257175448889831769162423794313339709694750337658745832006729830457633633313489636509567394963467410005394748277784949829197319542111812861323258351629518502900474060603303605371298865930305160495079614692574064086253112163846576249907522488292690234134574318007242040505822890695309254800530770146287260008625196909039552757216836380388109435834266017496694191474805997649182251750685745231860273583004447319747814267413891008546325765420847424432151370539844196632949381513991887822705116795401677984217794435663454068137059010935221628192125191833250583582693456343271057939733893355612156359196661574001077563753387189124490592422598871417450183019376989451113430464573803775688641890923107551763256272851276222303726217403921897864423608475618173597742192324618763060187757251826881961796920184254184786072219571176000440137697498845138986859919025064751885893502722336848221112243894741212038853167782925708657104321604701099287376305966436882336928308316744206699899591342180660970954733212573716481181384255135845325447067376548314550409275522087666371842616237805848867080582572093294116814428403308886712159028644282829237417258994200415026447965879732580108044135873688365814184020074102661949533181964693312994049391681266032167141243017573876881495812867674252041162041600254587373395698488436278286698516501300830222055902190307614913534044539579826758687657850195984122945324212741884194762777451799029064785557237077036354465404309826447975348289210049640073027979062880370071613475227701208591929110708756524053306757788199803024451308482820740228634977605677875441868288843773141391448999366705750541300609926897515333190543977367932992417891703135497193589608776176831726524230082847115243982544027566018612891789462359400169944933673047280130888187141546690710902270971133948709516959006589273940023919408383280676228798296708934572126421414825501640369275810471261901722935451784323878820838133774048660129525143266257427359258152892734182904135353329169280738892517683999456863159270537486839498736460927059568545117297784054385807713893579760293410920647470770085183211754156704057588314078893164876803847586630935712141432164264007976102861327541734082665298475903310622743647514939123520290941210957490108936185204360635522657782081179824811458415749872870338524270800361853923553367016295728287554098921537073685141204787837158026972439326004938643789567630050713273045775906444957769966922247569668762288072489608922710702904132442570513665201633958689079647128269025939042526490659967688977505048070708755203272858383311455626167629242121062109265699960256722265512051211587833462853662211040757626198226055154291000321544755201814471730615902449355051651865361054686386798269185118684666497541708603548294476744544264787654494548038622363744951423280880385886587233840385599633444849111926755051181807221891123923012365131100952438801595055731849740532398992825038045651253282422988525238281018548001523938537762209853933379044806915485290461494966791098746331935926941617986698472002364384283023182080452814181127458422643548318740559969066183252063826373920386915423976495740882406995742452387209997549543228296013197128552694813683796307195611514083469360438216463373458759048126208901059732960428940390875688872660608350418263115783012567896598060920439636173406329237325810262246128013313774014888930368455184251487896463892489177062985912352700676896932445392280515488076346082361088242540290113660851653058959358433562100165356324359392986704595130107629042862994494539485547496485084904062614569698848176131309556183857312696867664298866292950049177868731451329868566854651480295311600799467242933440685482590249339689586651516390991229419174432861390670740598716374971853200564964916433901683375860775321525786669760882721228778802412434063010204358255760413811929910973812769700245801230162703295412546229600038106787002198693992879454314640188895146499961804417874719794168896654029366824609806479547323229022027176739964203866783428969879187162668159665476258161734876279061524922248988607555825396751389780057450401347900254153036970790276556647545913701346122778833361216753800066119846004361775962269762915494253995099228624137857512701581387958257421889735660389185189273056434947844926809749659865393635461598325361862775691883182616344592915441116850810961803131399544359082473029164484993029313730296743578214783774243899601738670573974949454453585419176434366250740078700901129385252476989127139093769746382184891843126817679627163519685287740032237037126208968812201448826719123725098371293493058008007367026482740227346605114272294710855813084645101312746476712833457209569557503617117087612939832533661464386597542437800650642212318036257696225674328772269212347854097776612743082943224880242065403793108337689588748576277162027407883005565277342919762796965968873382786180360068193435723900077137663100601138298757236567637806889776602238570070742776219335631070120793111076525993174208779173976351628568089065224479836886597801310091994795233478736162951195172005403530467055579144826110775481129298024760328442501344336863550821024635579930201026327632890715746120272318362829719366451296405339788782959127204510980527040051337673011219618939532040121203871171851410211372429992840237921995393913617106293651871365639630071535780267228063193100621651874709309702846600532109371597345068479750309020477993822273542281621367645990767248292067275037505641736184985037005364871120762929834362638943690643461239836293586609403683013984538519501605062643703909431789147090211486356985167804617275556009659595351483317010925859734805231030432468677948740733005776956013442254562025153681299204108202908968074716011246648675070268152606797580965387613088398654123494087442641840118727654188480996900371574033569947631053581560134000449822786983926098275099236124925003497252216311647089462828550197003427248254395349646888969430442345286498656520369681712463501389764961667147132923740158701324081537983145798904030020322981258668967041621568667269734374852986712976418798336520588067901419288606443335035534750320842009982209358404519489273335744783818381894711545906842628210518288910891913496135764277237668375243312328610454820518778671118398620367771493287177980860333655246996657264132456164888748974390283224160786746929999781829292973872499409771208772204216767908878261470091230526496255113761394407648166872995737991541294665896694807048033357074475619079814439264111503705630564564337241461254943291982857826151552069121476681928961380040543583944152626674451711891837983009289679977778172437934016636773915509121389021861413363992637831047223653632954897112748025709951326644435566238497589217937474567127662466549083666121176043582942051217672142686786247743559112853360352727506250670670295443870705133429145840408828782069760728858369491882208596953137123029233390118653614198282826968151842967281240366978068029389676712481328964447498586699282986920216718931579454380314723192353085841595949498314407823622986068908864261527000791925367171582134096351205401271566008125051806471359804014901786375989318935570051148115799069196226758535297759093262055008358705049598726128750557768612751692587511556833328131832923520564808098515671768312873641129359432923091110431267561152062297784664157117483818834045292637830851405724783675345539239401955649658916024880499767637644139261578310779947860800935053797394913121924027013411729086842025857962193307089935301112861272134613901954056109974803706591390106034811677718018635925764561515468162683288798228121030315904689012040069470053823225928808045809910017219985028840662950483228291827291149116713620995854394315313382377512287772319555942620094473448561123332762911211484491343801791533218612723819195650983693827863338760237344680660550696621168217875877573611794819470421106065339663296991808354579343326665827389304712306171643514071804323553996842714184499952879975424162889448452090739326099759336060804399416656658539583556067506293573152538758451534306956374293867005097503662384871077578407640352919833151735913434926225425310825696622211918006727571982451990129558533086331240248568749532421721657714575120423818454129034083860119288372761211416746900775081753205225165758306836670571644129709980928672579157797553520833168412481654310179756960133896780442987225818277370566530726327820718671667707521294980975758796122565966250637159271830611438812910295662845513371928103751800430239184976412240974795558971334933036636412028635645391091662613236367638253526670108306942493961262408672472990279013744538852258982133973352307106953006789196246791474679500049917758256577684135902847458018753502159528397083844049589351372444836121728604509949834687170802144550452711707772321748029440732397691777881033726858408057722648313583588000588809177425479696935964442860568553139288818203542380027100101401751430908925155903315902075395486693850507247163031499982148944612116458336585166260613433662947303538127949581089836044995859448573403122624836982152303269087726500619237590527572197756551878354900633853916145525039436214771720421823894805081079717649843386602574440551992448746305281336599003309478679490329136406121237299217978886892633879628739470787869250728382850710245881187034593220468878568961667931839862996707736515827213160557264773411425559757160998481713617910462009701846163413814126254062667011622925122226078629543827571287544923451609979357161406744930767892210233796048593911489538606408964635501271390678784957108541744975387758866142046196255953959295843695199361341233894995687963409161101842168256645212602103053952876237961319834239923939508521546237108749089338645303825927642304842426458387414840347487088232879781073086976115853769212323489579470582666439653183249085131793918993372199720677708289064461865414964927749331792909365700604019219733261149593972441866870490489474704312683923775217727251804884737682954856415681635454893807759061134174312905199994460466135038582026069068010859688368654133206300289436850200633379565221542184056821951980331669652869131789540294689848901099317310861589946461005892700537598245641282917531883889114633982863935864955153995100426072027219899454869568023545749713838207079414397525911326165721662418548809586924184884389018721037515590385913489889546844311025308399282569551534700862996907862238606046615336799816436948958045622966845687408308828553766983223040036865188792429247197923332615011382905393932639080958279356460977267963636778300573695428560455065852989567083966412391326709196717209195582430637799419142170051313412850733853031464040660836317028201850685027027222494708505246240230931668991251618701192053715788795422236504884862927320607183512849872304298771441818311282805653155003257954076551241150995622903745182919807661215660407067050302834297594585864255284788529640296064991045918466372937339961784887057416310424234153992755070196557530986166013300114680226054830646511585656759835056689943309207767559750385881706859576399662484976488070919472708217802712788738358438769343847166201966486914191193708974621320745385098995911658672324603736375774742980666843967875619272745789368962634616558378858532308354734534993492294415561626203006909526815885109535291585529991728775032719449809651474102871188945442234507796099947556751092816619562093471563518350091811132564989637362765052350029172006051267470098161177840830548914236614254705779970497500205213424042207025854327795102145291166879068217377086371961836716532016717991355891979283421257858670878644852383669267197919523805725167682310732403390138791098708222973918254452827091220046848047232932679919325517180620881917331111921635285554815510533855865531677752850235208465971323362829053136915753920470284692252072089344367230424415491477422326351182516240550492875174501996795557835301749315619356396450917175882469785899060956928950709251510929108344116053702761253632254055359719325663871047784353972150148249151952459687186554399528378876391912950173852574470769141964726793140204867055538355398154794350051897183163515066262749087666103947623903434043327387604740628826117331145111188511028621616468488172340253793383001464482076260604213758080441773224158883619970157454829230483666187964056185377830626408101968957029106971614914953306196087536052038385009621282496275872161514560476847173319938809250046944690680980981076671424228250476040495441425717775942613831894204991318365259500043520338519135187526968832471067297715136368977420683438406811821256709138296189109992478353047071898305107090853821423165909739889647644628846597482422309436104291478773243703764076307674750013457154036689248534985411807333198048499390249165267917097726936270995971081684199155235462992637356689629053889450437123616211637526479320171853425165163028051386491575633076480192778370812684633060811913318488555871494361661562464844621159039341313500667241029939419964125908947102088211938656839267657671783969468645086253908140579726847448265008097478935115949250180571731060967267103641603114433588762595248455361956508971370395956604666519860253947721298020240251466693491101276952107730097583966987153112206374701500408087357620328859843485650189410905282128215658189107479607536565451357421421487780874582781825471462289508634319566358851023938974316873075193834020788106080924428592957243077432817124503220142053418146898927458498346145683212589728781761474363676269981605174303822469964692629473877458211002720833769668188665469852171165176931966450768027793900479959974774632000491847424820454120017266817939533766815272505314125695359515919667006416767026441901224508563149030026617045790542202711529578036187196249388052805854951849872799510873749054701498106751859701585206301669313613956079338115798115744770655913156623198138264217008930590727773456497060864747562859520146987329158339524610953661791829016106398778102681272403872291837077176545466916516655051887062544623665127541612710620645630966478707945705168443556365133711368306985743420218112175335705455585964318505550212274693502000847230774698861055604558884643388839102559681889719140790027284161284217687705600685000357977896070121600971807747828660591409055264636243380410539995684489959410614748564746765715692988173636030823620276586280485366639944678845784380447396764705660426928901784602848240072891828888888259211416718750362464355734095177501457377643321643686035655056057479464020465574998984661901996601771913770249113542177435918391496995166063925889945090333732278817473633200979237360436837875801564100860656852113579495715428153232781597269146689163094310958169664090329910324992449783434772149102431183291394270267236907411087679278502858742643766664133158517288310570927629827944388069331479275381197809752240457083218314725686515715551792468712104078063765869811707291004678917378073183948538515263616863601146958606781673229534257923123464875771424076489995555183908676035010726983754164820271901113104356833939240830932542734886837725625036973266982261205784875035061262477812294743342305712332685640577467664041688848318395566875854457741578258076784922764332074958854760060851717735514392666384581019563376351898107986683693263897433396855482615765547997435579148178504466391051523154916382770660735398373964117497748622032305296014146840946389749204748743868258646440882853149848497280271872020768475868604611386551052699342065569436897591344909264291033712577972353022596768458580021261375373467914262719192518090500241139670428897752626938204547044081235711477978843945895152095423038676311158368817585800458932218578560359868206491847588518825465795742369789110090563046645025098144696024498437548577675481351027951944321691981338216460382350945099142361101112951395165614844962353211366852140795644278041485678711869730439199028829574615173758212703223018562035779746774195467574181066561231911951758587275518492820703011803894089446654892780126300752546069859738288192567787410810312224961034469625918857835160100192052721829967473164089549251150321487651133441278632983362060069278992948728737600149254045892334516947694320397541899975367135905196025562964764069420307813909621105568203011606728137559386388049956670388524909556939671649750619471857386713500846597732726002513446937360658786648898006506632338731920203329167377093428309314412909002750209578761036701591916063918706901120473507185755832752688233924728288606241263057456395896525188761700792624692643584093313703902480007567367190872952965140737412524857058608790608469295829379577855270296161274171828679414985457780901298749915054855602196390710790436520098991464638839506386549939278132189191429433018812693497724545597785149273052988429253357369490610639039318929558320940353389193271112103684292881303990364192176409801347638992694007320228804835620846987617332456540436319290466565792119273164808463601166813692664723652150285843438357070089877803855073737471246382601461934663775387408756109135557310349647361858464897878015530766957099424723746921730323437553683073226542299839630957757520383607984745791480835034084668251824510655094750760833832297905815220043319320691553275715799106033252368792350290537241718877326900246481665635420659860894459203564645761393795431438081660567621336270242926798435153528460291793793352657445168356512505071059465828162449714666449005768363838506778092686105688142367442204043933577498329279890365171534067466612008382036527529121057881536936123762264117194404220056555062578603177931210582247702571569715078540774773071098589054705195485674540500273349196036310023423230825254100258195484321091999431258131390981817544331343956279740723338774323190722782635184813327482091494709015487444154168986286558497122531059622662952512939789686070339509201403602202212101817700392810974849932877836871416268135582214260064006477177354607059419826622921434611913958890018763622796005575237207224119751985263722573398304404265019133128504043312013841707455986244361886731878833798954625206016961563264753162977211234715809547973844383403727690853432238284994920266726435224143732296553409381539803865668323892085282704040046778605830635874112276418986841329703795063211575802387469091945986182989406319073269377076485167791159537070962440999577576884316044231634813083970852881825788550122622876758198225831479754984748866602613633249813025728091604235178426296818275981099127657852419747330217450210971244191661809725909548108916945783557891314955127484049644693259137366282169414773644190263677767884024530768784877954042249937764956300469518915649347920050772466996843792142089705541676007867949904832928028730864303621717614415254122732548165729935447877975774351836070109221401770081900838445181122891441978536231230038064993192129622098498619260943717946710983444207256695174781691223902106696517522846398427995482319673681746174804278082235303331093092415501361439206708638809794088104656300085147260021997604882525082660419925853021893470652369447245068974876226888183820899022253443594765334411246860424870389623244737729647483222140910569336897784213420122205039394182272983435359266268920883098891665382790752737017333566672865491129573355001208220985442472935765826194633137617911086502313388729086903327431039311966211176659436722369293909525435964783304825939494034056819309527132724395227255947214369489849178108498280113706697104196613162456528681468636251538422442875220145798040311021933622734077100878740816838222750169929143322730420976721399585081114196648656621914574965780348168896854118684944656482577601580856427947476658785158400223773518427825040141773837981814362458681286156548199534812198519043702764056344441702503717133444974331348629748571766327706643040994700761547409105355889647339396175823328281369177527398080063131785942384116828155948645845103693680132121177893724341318963664670825983988781501966857840750239030341574999574495996868954553220992678591276231171646342589874367192110013987341786804721286714697016104686674415492452848514850901521973570461221227206202028018922635191111972806629089654787309086531690834162594520851748768521341089921015287222273571153742766687660512161395314839805532377093703802926300439704645313235900877953497233371089116491931061676090001615937705620710327693890646169137884498783066364452853407775233511791938361791557226995021320761145401114098442773393511632188603242294075428845970423245095243030041199113319433765195665574164382970844263416469956373878950743127084177107809985938720604489137060024552934723774355609715913258229046245664407693823137835189744154987997203800171497334054545829823774812858814557024085166160236994702999026373311490936735749695605721225400824280049166746460251975592898043940420294168864927287251130311474308666841142173946587880409603465127646365041038801992404195749324544890269888653891310937800575167626278013128000361880687300861475978374631264794237273311314643896272208733652200448704691192445427696330776725324905374652097918073576690435331426794779706573430190788346464579153686522259147308639936197721091500265281536306730298909422173389515527204611232763639515265623223805352077796061484226861603229157855082861234278637353754656769259742221258625506277737759330217148519443147639460589347532785094611312915126671534622042245348390751722082820283262452040709897332037661356268713717393588436965384323203589366654933072384563095685061815748833645571846761846913416321130394997170186146834335117801927626118583105709468595189130657009817480863484883018885260464261298297284745394723758579255466724962655499196077346538059816232447766186447851125640269042648655189688596525569508869691098644477336982395026262516637673513155344423910406939251632828817613242207815588788405206055186076688819397895995150526999568187635653027123157349429386164558832751836963330721764023771912086631868625390630335301727103205553754118208019533922669542032351734713444182124494261161801796724814334227992234746171534993906398742060061883460660941475049839892622050230751018728701187382501110781163575879130047441196647636459382060052687023814758805761148841212187877800456955434245221317260183500016362829151366232660532798817011484860761508518194239410145856359249845477648944936555464564182840624896211982334697757338879299667680284619195691587400572999600199800090965217536112242458618330316610644041841365896698400619743948217520622342235667952622980496786064804500368893322376860651030418523022980125138850186402365640013453818772264395417882873263157044648734144004410091903667237578388346359833557155153904880606353490070505074338749339791246279043835453572713798103601706826275599103884413434601685218970882532085530151459229796567304602114315123851660403280445207546864831056841746356392080308698128849280569624577435434412801613344531035237639015522418517361172884309284415135382374569128737620963624630926219473591183404781345561711404073581103972696223914523579521861013032590555716096682755838129647490134282490214282972372960552685621368395285914838881983807022042048590593042387401245155935668168509293884796797457411261933116399098248631604198487001394149733883278490422622985796940107786815211649938137188287287510820038721112145052917018969734910369924105197745241050603694555816251236968677034530066193756349365451496516147162061855132128921808273831426418197310168940089776311757996468303722919087188146462868425667934443872949506706120981330433061069247852003600033314306409700487813567555966651223362159166344927999225349108926957807369058522023312228401620960315362796632663332439793759861439111642826870072578940272900419459728878279573171272419973818482801213084983946120283434213927369961683882713571137395082550607735752813435030893880449439998959183599254771721280375975827731607713449331175243869982501209523842952835495215473204004502500500391095426896694896385011307268552709031643813432306746704493102638139015763893170087101762377931203619384645268093860938312756329744919620183903439632689898417316194874879855072524229767703685448933441064426749699662309731825703078147792035778082454478127703022020569670466517005637036261724019600478698109207183058102746720211469486660684885157918967347404831088255817235051622179602662464520445973561797062612215455739733724098410998943794719537975988982922340961518148372551128993203987554472203604600279386300661588738237435110340674048769109435797913914746531154257992585151011383144324712564721916102230918316903360415091014469336516541198585664903269333234424688336226378862846292283137973240778928775510233304186985661169625992574813694966933077884141707564520372934243777671843855132461948100187585008499369538085021488786647406121846093791862671760515924841413361386615986732594053321674806813221683897891725584538986218268896514583017556943073369529447073920984829916034524753240409449540865125589211688689098786309542484536116394683959272122244824695059283286348166427287043403731787385304131180410920390395701906302651623319477078066441608697554704213561035297294476024690919029073381278014057739514702700006675633351400358820663279618580526178054413949433538993606024533116489386926957596859873352770223827309365072182882174978023447951403723114896284789906164733691362387512943441369125502079268585932184921741630251997619513990958727099048517007984768962468345744946489414076115827476658767169042419482667951831610284101449603679883003963994934346958976757735507170536328342214653698900556671191710439736046283166616704490967843255234778694584782788954045835419540071589544262621092299420506898274560071686226577090583349205245476248294567160406635108372170591814630354102217829876316945682473129781169268197081873371480980240684367052977361476080165869195622572733781339886185509813599129494108181504836964914046169142134825688360088460928018610111698178923610484264639182063502438153972501287781179998790858173616804699085647489228513854068282547977882545528328059647166964397488881591330431289242316799338175848033191513392668391698553548969612595662793061105491297204607063192522210789541987541694162881573670358086073114596820227912575378828911682303827665301418064043444949931323390695894681499523127980945581371624909912653465152754306121059855432390073899256546120714603290745438405277683079363809993460956978152442502438688397320853964774002766769517794085268108300413422552408756410320283908395341695018822131951263758404853424816323436947006996600270537439657963199402522029907972847763738268664696981016819132068260018006402839606876844726259696295419742125202910582852041237506787507527464812747537289079028723649690231038639126258801249376148385982535210650392420735744578677614107948283443788970540402540298367575843191376864406114558884644686612480585075098913063464760387481580626872594773087282728198385928199688178645304922404583102631631478003085053237874692134966237765369159017827009070642644970241636593449772513808599917771248595171564501781661488535558484994583393216962717247924999501012911813846055840289513092369070430774447066749509738431038685544512591737168003341891802310111742528640516266510955655445406491498560212165675478874964819436433121654304348078476462821669440874070606767139919140677180514387468650864603332864780671335256712048894317113036895305779792641220696310559571778835340877827551362324133625903131867212235010137622803637289940828901211782473823706753502571094064851035644594820607717569880216107326588966938501778080554193570313906688422714832967586068855444679217650739291503414080069131153947185033905202147396621760795591794303786794125865964743919694746398121141692476068628740289132101145584960823081155052344846909671841756110996648919403109517766849514632624283689613362461585359257402009980481327747852447670421650932929280780574408663474974207461925179449463280335395697796058162589893712340163047287584964641269569295913968998562057654232585870986474936209096287374903911657206439577502749872424963402101810367991957687519547077096468068664929392014219432092536034650547450844084688537260829665798116960218759269070120128048597985220542729837304898651411481206484215507848850775631470726783981068889756758810385483873431518307272542184752155493557614095845735903369707253487075112796943357650900994440622264392697702796833997244047636807536029181290209817963014595517298116416765406416366503482666028466817595997052070503980633916901005724071583720174452349829244094918245910215509839494124859469704360233912732279042860785825930627579586566169590220064422810245790378526415255394058954285211636264346017838382381807751916458064933976753796970251113476953160117525795310320961698327625326055652961539866425178106705986037384099475786470860522542977120572521160991023445006970872864257891409019715981825138626550669819261645073771183150432042649866539243662370626241433394228351208177451318640409737969765870729074720344892841590332249864123210848768594546795735541830739520500026071145661660326388029078033565077393997381815713760428513787352946575022947396422536421357872865306523249967520350073505711535119466624878158142546025250224151724484881305456554549289445758738652064155386442199312677904701691293788077926011844178874614089738783407033173164743094837387196230953012941371890001899293879585799075716351088292998504337616814865763291176080484888699741397671961534106679648193154536361088636590168388101160095513644477943379430135362227028526922644170011377534104681128347039411453789671771553832287148114583675766498662927188972502593303051715767348708652959390191634743307858592547990107682786270132989113332873716421053706067912598046071043773767215331602390929442397110285867822319041174603475452540908487267218792311416559340249774661581310212808267845599383427400171945956127853931745915849699335093091949186338590617325077739094667373051038060161628938663320153386544800119115371563339746885386348682639646221134158930814480608241844803791487569651378916017977647920019800220181824952559575627718594746936057180546328860570579816643383450314826810526410518547402037475569059558442257712141023254384118447556490932987641975279359445099110166895081069909261137537550346066579405380577441801402219763382053714698441671676559065807968302527837632342399730884010887403993889010334521897976827466669617411069094391856747943145048994558433756203553349614945806017432165608280000404592927873701980111904858056077809283501035113847954593485877437026602659291802440104580031276497205841236034053027315615493491477521981420827215345980407614296401249591790527244292561038719212791219736884951782766480993283751250860411211204337697952187108759603373146341260292536901043694588553474482076748202598727367691534721100116162547673962739326844506504514397892583777116206124596751851627639616572134584020458268722173217251831029937186362217722914304094399249257125237227286175023629837544233886440153115167390180169095730555019737449807399686890880136930597232664712085523066559019928108717072634082948947031718973753498092431007933997570422495980569465537481620886906346830427161265426189082706361545329189228085142551361092821693440949241172621180681683613676595324283489550603103983909826615827861080424172480661285815857526337065245054044286086958043082010571931634550745274384126683344758166660166377700846815393618867672279473656362869578567859329902504050856041036453856699575154472430749519890963091858596253093676239939158711349684333855384943478989354107308598229949357603120588471689939692559929578662970292350061776999901714473212445286244966708996532531739864796993315882620625562973889064630192928525649453113400218953333240086669054711362740848928786496462675513344095888607161838060544579239411037484213647238724658271822868382008521366534959776594151149240377548684766719610831923028151054792787132922738816360438577614165360119870889543861098033671883601312841670763034858688251917362102404099513105722532787643515507734933316513752832691428014920814090333163434960748851388258997937298189585475212040706197550384280445212883370724565677319712291332896896506573769679034926969043125556668448058261538702289319669747901636733359476455406797494229715532562228292486381610507260518274213202515963694593404688069273695515712962241004150260958439236138368678885793277946654204424547983594629326828285939730694271392508952915256796047461285658856364818326974887764599117282240594378294099553912940776882365043826144731310109680132083611434429958538854533270387626440889683320862757190909612697162417773867454339778094221823066271130132720848259596256576743052186487382468566776860260669655521904569904822058274845208263397262914395630684072609786686234940184093694337122576609003955055355495446611340998449541903602682967762299436267447351328262239283866592637384564950037914893401431044548635186059606839338206091635933692941196207388678684687554561824105002712855031510834766539339956069427557938521733131500211856646487240896040190588212120315104286296672985770658424588348065914721493109904639821797860466126229007204280445023629747867112269794114180483626816210055489559212076960538550335745394513763192768427272011896088555956027950638926809833360556815578136024524522869872931922711987610829330350982470349936412148393382959984382739146259788543754406308901787331842627941336144083543375556428683498141816464202384848039171632400070823088307557374528031101087187328075127502852972325248863835844997930122029415269076685214991370101677412219853804784789126015651618606046162985180545813491219282964141531571274815713647500249640771767293521249556156236953948416742933538884006332365216469332134046010006125065889171650495317326008557989332859642844938350744138389872118176325289100975079767024257891472889116667753367553973939502741578193549536929919978710799799868060887375453744499838481928674744778342138275536546353264488303914097510783014567950839158083675304646384951647500283038881992591715838603811689896089050480191979507338569484255379190457469673322188264001317828244382595226536832157239880787032437445533343597904297956871726852656906564479002123263354513590932597814634740507306721359616235280277763875339305909012997752812424850260299604660360026664335090240865072664299452659146493472136249130514350154783146166680469802259998490950179465564518229266808167966577832999514048785977587542917620276837779415022051109795866756627507263312077840090853361366695925444217348037824385709740375794120662648881503690466112452425685308237290852110279761850907885891310869064209084791198467561522042975023017088491562833873487616815617788656631942246475448584244130772813818572624118152356112783719057492030650000850571153437233244374346097451814969790806122247063861209839219999408321174373264461317323282324237251243053430283820526585118048206851172500990790044530349670038643613556850990342591354186659600306681336425422311314664891250344916694547874646506074239225812037887876617166339908279933133558692155458268969109490397722872565237281649179871816951415380873896387804468055280738422820576937707936590100991210861691297425934840510309072920362390886463372176675084299025376025376996447216586917414276208550585275196635880274947813638266097130354850946445490176133051311049798298528516407329019537283548009361553184323500154031524865317537620646277582711901843105192114213751433210485738084943438940394875202904286502583292021289508705201295936794988905963631026953845814475016129503215573781635002660175955183107370124383303652273557541407539696867802076700565205944228645054001940038966658081838748342087533895127376321779362554820793938797695335242368837857743482103220017182845052658515658582560426962543355509274634530615457778930773381452644745730956183206980043605253066844572844867758631439139237284040764931905484407217111124871274662110333902224042515135812725961114457392382530847801939453381077253098330139085917794181190650998573675225471776101509226316724456280359783121212595416115764577112008875780238028505889970620334661284721947122174757277551270294590383355278741837035746555320233211155946737247322476696510933579217092405574514663508014748900497275095562901577549069995118937036382391965741348641290531772814176160388140989711787771934753843811277935053807620610170474688220889190256086914357437427078927993220583302669165344452909237316907226307732791967523650456384535609143099121891327803243241812759193442540569741353166258952927419181978143614677981951933764388886235453810799527081060493595254590257609358820463954519909190711991848203651307594154828551318803344787407464197181634484368682421753620382178807873669769228795466441287601050769819398266984901501184837486732577178711832955860988637175609029651135384413400777890739822033325645311314242104830526295921407566781646261148939258157191553394500935868308919318104818432679493408749378748874931103162138049829659110928698259459310859409500778409214398802196418322493704379094401671489140757526189242590853648358625395330493148866200922917898643005608736879395183234813321555206920761537321902544802454974993612149132472505441048592240180112307858534656615415798315161504738734776341564807391750878071799120571659736704043440645863851647585228437356882499674075461500594916853222809528349830835603662811423113944248001157582685671555109430957076287053104704822213806769586292374411323589237910552980427048275662042958100965192425079804704351078059726265801426822870598289346244346448159582064383856135815327846038329931781938990033394813653480860488629573721931787167036107264124038717388139999804794277269418125997599585469359043245785389059807573220254604143868200774725940860554141463809596654422644017608127402344915198921267088477014991044048048948782645614564096717922874971062061160543234138329843564514513685509477269433041716796177769739110092987936145964056803607568358831786834949558220716186708094442661775875098031576725690579426094033462812664414256055243135321533772562983606896671497566013099735442893539653509299529970887097267245053162760001906320525051656756445085367255178645556982571688610513488628077030453284361226846422879193535034257286017811668127940862451384197563974973433836107392583990614626699593258352946419197503318122323865880738188943500685032254344215064380203712135959882897228231417207775555856800033120239527259085506042155027857032576819395540484756292125286497697189578504750276969158567695055782758716453431120743073745792247079601318615420972494762698529395396904101377086380999660014042421086866194995431256367763617594855372820840797791441793243267442678371525732389516723059440966226278242924799741937184426051162610296340376160376803047340681269474760529917017542099820482577269681100778525674951628007637763091056386403185958743974862578012285261625947040587939965802052802773053959571785796708948767184068820617725808546832395291368353982249998444148065202222383579100191593114197245449472008919146231133954696766988879581870474531261565048653536211307150886831115472567275480233820617843625512769714925112327450148130570419324842032442195439643419775572411007152777048505059797476125233908258192367334015166660120672864612821952455261167554048301231017896972323907032043114875677912022908170593987080362526421516689087879400657273124469881507896634281782931951143364667019330867539427337955545258708385297714309817042028693614323241723510991343785687151432259142422236172887032599986417150547991149054788948650684450570173344223187100082099982620483861310029876499126055215952499688966517997939599473920965381350439473291683854986640993652545592190737901035948406044437021344322065282663583237967728200170728235578272287823195475338016007730726547056940634504192824274829459546586122307346790226885095929178648018579366507192946734516677051200583330773737851835594725295666762267274996978020870454282926250678358566790504176726235221209331380755631139016450308383730896746414399418154250198122548578270440193875097269308001090400141634827187917514600985397902594952061890228859526043493776735898269870496256002975493519583235708218374964492033002558767533591001031087142019838951790363935085548098994144724450225263634817086894981298918483258338749110328466482833263286695067504918876858350650594650156229346258537684413908717199996825256618141904466081312403784076259113615644177513718725738619375619162398806549149087683870144580733844373431877732865884946081277081058679620230587528791568119137515513877874494520717490998581192364037514348764138836567690765377878388181471461805542048876352917805409961921799610975945474853456454155564299608617389736399168579455728176985512466962307169070637748129413497219737940150812088608604010254179294423423987108007343633460148347689940309619508261820641760105574294122132052943542056305536071977846752627675422742723946675551295639891701379297371635710075108695902645018073200686647720430045829993544941156119908338367236955398684617099832410618295287314687740607358972020000451076201611716303303740424709426334999097605553355297553038082183665490889659967795624402558624705148599595033062449668828488781620169486857414063807674298297453131104055779916203232846598807197642989984842525065455060168010151893101816199845237448184351332084946487201715614737139154774369852937691709679004230094524389748495540392699737389881357865106282529428165497187184415705852023976270308021589018816065884761199868431743263382801291225283311924770184433049627067366661039715433014462124158241187837410446710258434306363134962225526620806758023445156696149544416593826524386968429102799256856510079032002709660115137966978032480047035357727946808780157970885564471938003001265293459201758739474083207104873268335464152529386722195777630644656718493594659522475647925574431920622634219096827250413827129094857094805836341083734880392570159069517430724882307755413530143406816368226272583705312268264758753182190947998721892248238994238814116668322615064341822202771406356869858847228564828922150876239369291449732008064229725181692417992100568030159244462862154366865765218834102555240655759511033080319216776185303606463862979132081135520171606472343636078218217005168215765581219342287733749234950604363009462948262723000765998982710723098266577385172180548675322460863638489599294129528325318457085801645131046131250878321348686533933759081929008594688802068121276846252604463919721021213916806070884053328980819317476552548944918298646231551033924529598041253487262497799810378275966207414417207223190690235416243285775686499654606805499615149502280320138775307298692840824738986155610673366529037363730570792884292942820059197960239459432593439686784174579294721776098846623352198208927289013960937152882656078752189579178883188432070705664976653773210873465715103963185407084434499823811436674981013904145647188797708125622969675843030509029548363143845031702807727022222611512471868579849827759821686823970454878245962123177040553609993193438294827220410355910157617862759918236548519702776599474920419980651382015264787592709538717091638270584393040486675295509505812153916434010040275873452038460655148542412000683407081541828376230340280088135071638893119929902112705367587782847975128940540704832849803705717149466087363786319584056212891638308040032451250534381775866947495565590867474766746698590412074242785818252719260409577214976835003130507259809375450948015643116682003267315704488787800361821078695677281770463581426566400767447076110461790324237679041912558765190056437211795560994065869176551452414104401714272618328235368087048443879386457270395265145615790690747588816987396444497385861315577121843911690924454622684765055121800562023664472685059712816313959822008447723047363820119008602335755092098915831787760701719950164581583393615320271967816311497320927848215883054510253630283543582821904873237552324436948242384014417851299527200407219489427054640473878052181517393921298977201238483223314585943669035964249942573592761970919047164847559643910632490991083271143554156031298749846411370501365406474006485590516656525021246037715665842120573636019623090769191867977815219101869746175282706966232399547746965620194886029122837561385736541931503264134956714939942884577808433503858512839030851387108820328466993473168494788652346532691293405278351551113952590095077354595133591605540991205492349444954852627165148017953902049111572838416626092257070426540009666744821040431954268171964660057337845996614870366473084262851876460599073904658552268798352119151343431095683073659456068564925808120277041493000279189618165666096039090799388540910826460943006765020644156042019745318658341199071429251639718272742315496313284808491544537691474363112841208965700612802337198631513117189033058066214878249501394623259238822373012413395063039323779673725922567913470070304580743151234160799263516705411133888737791295156054219932650158875029950439591951562499031814632552127005913988397951323748997323489552867414234559084572558548232128994452735869401151233407592542339648342619986642350407882639244398981484075318819197069683891286353780099534281500498926951398290991763371863143426926657667163087789963277353761556577105494610180000185463413844187833954941984419399889267700800150068690927904714364633775789460552051973674010416971386554140568996518777541798584335615948698941132168836471463613043831589136127620328349552874529060713508231400384144166497474013774749864210089805918113433566914748278943253734370240983495288294863069462052166133824833387268996856034586058065871422575228594142416407283830914188088443761627793917781574665849182480422222022327860722573009587969131816463159696187802901413091088028536295342423127477693553675077234151981984015082844009238006496582571173935830521116455045311315313514479094740159910860562823011333298105946466259964816234668927337828755101582906944088476194614315659422128298138652494416305629132928340515358555304361007558095079742509437867997356582092324782316476987379293015380325169744607421968666635668217885633394382763694617460927995079212541510661936832371674435636746002235570159305972754977393413615124078548390955601160797259603676112431828202811107272000310283846746271786903319541067297861599665073471091653214949616098330570836926248859732799018006374414469340339551656963297408856111149969705641342743891642475062220841644323985272953273632666913713144841838721363590609595820480894803249499326218837007997450037925584302752936946013661562494370043085957998714950739390893021033506009267560704862429147993521412409426464989308209738035171389539278089168946855417835807198203567706546279352249293239714215247749731948278909709980037120962689996435993699327824159326500678061838725438142969912607302589122742982287572390949025718580719146701976784785317260027722984467174974004984253837958396321719797525722409445891890909633468615455580639647856167296403402487019565625130936365170162860616980723633116759981688808436086265385932666888163527978522986050110630601146647687148376998122397715384530925208530680716144363611478093960294235535198254645732869130404761846129173726229042386220197185612552006181358041018667853528160263331465557051869106256687118575900463925498088401707373703852544597273043798872313001714928887816924578617554410934234182827126935793944621059715644980179995175726027119527527046332127038033629918317662551308308896047772609209907338283795808388897948050192976806700547554637875576448541876297511438301432939142006260463102721479735774274646275388019734078960135501125136433607132840343891060685564937655966976455145078636488510001043445818816090366473758930430110777785869043124626913907399267687075642881268961315558814426567361940383547371781562468151048760538725945706913313700200373059797343464468461073459417820696512479831461752640103982909837628032438999434251048154731514844941031709685379701664600115721194577525625401208731590883028786360833267327745832968727687665113103793157122659738476936844263141167678686344795771355406609683634464816899034695525700093119444712483517857047834388911728211897956486902125707587137329721410066072651966301084789829127877846325827375255103773929566918286359837306043399882588013353131479923240717746589174757446566164659782542377977305075742845799966866194060038914031477170837560943395076994960123371183483291805677036777448573277212148393735545773376422019956268226819915111633211596097838528037213353151133257218207736390633216156735518203130170782074974226458851967256644381058359129432347481533940197212806541146430555284371586657771172822358843472472346570415328347264230184193324255350701147400408744622035028923115636939898052915992382642313574419572035872986423517550248184726499242259063255981969776395559574685361418362560936313445798989391214638563768853882559158112827818270221728969892936730613907964756408105963823523864904300420041970358680433209426865997630626258441683428156014689520918939808941672722162430065667550762517322144646984636845493206122447629396461739202557170930721869844465167322671749966106932132968911657020674044766434199069898717104498304290784705702627243139089714517294184941119997300843704021203831856085761010259588297545757120994828409034453337713569629386712828635662392060734533559477257850852723633107713426279645952337459873411607237651533298797609530683562331792291398461371403406715761665391564439494536352091099010394393959953767586652429593505606711310838735482199398520488739110845294220744255559228626336529302614656212969485457897893019036808865076688198147890315971042598469927819864118062175971818221867365246652693329418552227079945679497425843678752874012710290635875760318260039272780502036935932941032095953634305559774064046075013182951551333250328315426135338900491688049999723278527048257291550966253424675683743097172722740731675015137688167451645490952050905174038362582442169136801127469527854539190404508824111720115588844355660582164774019086944838086793207705894867814112917339219935303496435784412901365789496584497672574407958596492299262962919711138212144275030870752920251398902744825860150933783310861647411128713587980409578712979572770671928883933947817671185097591338584107114927037465113293505898482733306814614079088298696390813407285353391877088853641766838645967141809389230785453636050213979626096609795830638005410178143246657444443267838781206939515756666589967881721281002238136608174107393931516421994590848876103919107688831159308865001443921145896330416937839304444229178161594028533828020942792947965192547575936554503418268611978823108955459157143844944372246519129710640175259746126892552572764570543160419037477009236598978906051184361024219598832777341380715114948344840718682956166833295398524336942402958578060153246970094314069466371144928746556167888289303600148559015644594275967889548617990985985096940661385363281108264712382930370060872447291027025593652195980917111353973898349464856379419415246214350108964712599683832368470193491494747848332838265521256193230011753441997965477707454067350437409622439549120882760925707533841983497007473449246459216958150916578548093466529206353147816287471518823455897166063288606439559149565470049203614958722008765632848316022197242742677375750731392325415998113798033596370263887968963287023795443001304434813814570857108515642061947748908652472786254154323267969303649387644540551591646121084312927141665821075396196417999035935313950634235748709944521930001305680916208984324322564595823892850518502533717977350253587059560513823968660260057166968573242962776467231313495486749411432516951194135535764848272855411568174734957765782488884355043542298039975478245415734005128724640699488896305787056305710123523720996220134119950620272185282010673164235649738208524794886081706787986435095846874731080083251461649876621249422228070578427672070764417525346071059073395205399115203425660050356193677489730796131519976055864012328435679344747190724855219814639579633376250045756908241475114556664062645614132970605535021032893240386926150306935629526059395164651031727793927575747297633998757513227854206221601280917558029872325081431128057027737384072702228824768508199991788333214744518855105367145226453467140508936039499626794584054984346227072572436611544383008246163194578525735572159904846274923329068492872151561053697905948602817494080112121550183088830334289589632669493445988825992617056599416491409035294590585987913034367224134577839810388444026460477650418168065853361164285942123689050697032828254999554814025367440472742127625377960023068243410050034595441383001618849458019116496620464716187822622521193011050470236723518271581371681899583455889298409372868271391490844471578522738909234971608519504026223573156820544607697398558216457110455294859940791132156193010268838796882069452459992521204759907440716856678897751290624039230489290078630898634654840082675814539281783569769342300967492222624354972367872791989671748213963780478130563716032599029783382821512886947487271484692858895626247735716807435564307323976405421639584669505795947203250397707365858644224587452693739815317897755698247656216721868077883380262818147678175299206815547529900097521989625507236101154967444951711549685708730460585125984309920298423746815868709044023463531948553537107218095188159489153853364754255212830855667747230674754426514588874816415041973315500556727021381605078284198146637311723100175225036482529697276196528207182366942313901058876081501048138297727519057586445173447636580950816833331273973274196236434948088133030501777742682564330952658751612142891752472859707083264646093644895957444033016880918673154929700426327335763494456435204870717953759600250185384869310156397708049330624366064178961382247921051046819695784956362655051630742283643272026713734672947156175658511172620641068113183542522412524751089227013155645589793003459386025302302398583231150461506675451523229564619634784348572793988871466314682618760496281970692763762543304731752800040953011966799470945153812832986213407287104817877383550614740068964011998757640161203180537008634275664803257436968707083425998726218767927243852101548386519554652404057199510326517645315188295209758689588294801833272900838785178970303233719994415718791502816633046833883487147134663534782670843893516103867954259226413020645686311423287322650243798110714098761105756502878169015501389014268455517597645000295375719658490678066452137470817657636763665923988936131400127858349987197025149386641606609346019410261746075884270112791390681453536756490454881890924820734952514594225478018181212747699271316743692369522467057275771059054595686791734338389308907943807132126210855452926221253859428162518218527404891713223586600974239638261197338494171027319948275808204199238886315972619987169240968264718645230819870360236830885414418939707104396520739257107968723139326495782776232222455665333988173022653500912896172618916246937854026223980490557457067694150742325749594682370574086406961447053171281603467447319349347792672814224412530735411901030069699096035387685483688997245846862812446294201165830984454588122955801142386789742454455215883929668360062972795566078042306446447306061143544318759915892486262045593769931276877324274730321708007651085373604689505782379508953209468336272469203430657330300739259974043587595649716748817083856669925110089951467054664468606378758001749698699505354812315875795935084317346849582602367864053306690360357606864911821468598523090238494107977118250044354929919868727877546355460453765639872046124008047527860259482603795049702716123271263896126209411341035521662162832805068462658558681677833542646451507383860896209307901139051521202435828063341753168357426250509931409538181847489739680182222020374797942867190538309242634208731045958826366416441064309364983554854581116518813429198631025759146108698415177580682133085369343297903445181981179922685750209475081737743757669026051844417686186699883313023836041757377694186807873854397616008243888948118897633986111743658651605607193649259702757158585082830847675103274332618178504475403569304996349077975668125664025891189437113641985304541873182101109756601663090220444354792586317046496896147392856138557887357627916116814844028402039195133690688700198126731648113589761824596930799984990205666894908565835140035257828142963118966414526473363073110325418858602324244964339540180579371118124558234672327388672853984934777570335403289777830235222181263789053263445594592499158196736660882706768734321704154917482237472739849981370117461045407797980544102103686726217591968418536421631115400401141372043020641435741848838319727923036835984329380771856347460892345177323500610965347689133214309291503614986947035023112909293096276059235414650762711032367657560147223169984617293457605009391741829640288405261362972632593979781037315769974929897138881530728909945222020036801978816117221848164387028166142833425596286241071428936370039202431591034743863975842388699895527054459220754362443752001451284241494766701127333540624509756663379158825184882945822632182769488635783023577240093349152156642755794615396963819469449384051129557373945012959969415809655142395203015672711507338344707167382195278054149566886087075196529188598284055052095669350426185417175997598151005819832104841122569606327773433412900861198652393810944503346188902998710182669295684254687358049605124924737946955237550226926684095205719226379468363279183369813594780186261843973300694440386250959890981458286407400982670037395698306960926954556215045399583220634952391889480296844162010916103004158858545561632680443416729974527982367554291140705618850609887425020473497265633164766021309037438113407692454938775130233572257688829918380820259532627505739153777695796117945514483421226664132533526022293640359431459072596623526441639765261160709415477233147962536274307741966554051408271196963671150536956234655374698021555592110050544038449489955888355943850847641597131953560202375662774784751277043107415507832529105364553525704244718199198970099341206239590229260383649634845607834472379844261033886516720751792204631066032164817993688016664115859324176129835081882236021102895249430558649801649891099565643477412897088293607141531511693014226443687734358833209749781116085700117750033690674270610593514575024953023301489812640376020846394292317548741746634130537099760539308723977500961475853937750330759324264598363740445659580123893845718339505943459981873115046262098514055296929053984019360164808335505231303054512630795443879358777277872628217141937105397959127017539716585512290662654595240606735210770988031548106645120013964190518578431897256237296160549253589875358420384156803841742594602729905076822040803735616617642534944225342952327815791006749909207570164282428505503907766363860602901253894706465811743593540712689652120116275302914246644829374897734993300505810417705655741062447060275201977712227499831996363776504931029684943817401923968879402872714221153729517569093546788463552470267641050385364297722442326707810628710603382803163970783853990008886008999663416163825924017260772198288242352786568644988712227016737349303097379169304731436095648510451714502550139378303661964152319006282622980024008252159153506217864673438985445622084400382185392503494437414134341165245127018761684000526840674013862725064410206824155034978991396636031224579318101202191238663352107267168294877089228140407024905888671475418515171457766547800126154731903284815977148481529156589630615939219118569665786190316397155744441670739573191982732609382518212713368633214493935414462434301892255938242467501883179895717910494733695619834401396999130811864102361254614847839800233113933177181844781103578344494894225628462452817478274396518884828765749205084047339289371388320804584413528302183028744271660739466135358867236336905910419331753555070582155963464152504856634305482104091996288521420822460784901387494633392452940356211747034554012155682675649095886831384072240664619314616958023294113124481015759373228340843021620086035810857145351126683643973667378112604116535966715345916075473371856375460130901154509484625370720001434779008252296109886330381304498072321205410391202296515724089963440146754993105722242516734181336298024934615604510466129476767703377982978679826095021617687503682239366574631388962076194942145773552971600764285555033439419824826860126949032241453531927157081772789975350429589058964920756247395508288582118661983733099552807038907585199627017803507533963742745158388632324474246425225372158916312484061297850274639516848503679271540040936605095573572274252087191172603261642626008247664517237298469186266976399844857944319899376506399401428435478421023577493356875852294121158269937330847932551203111446106949112634430083613607655639249821606786005898820486157291963138804003145712737935602755597768187375712814335058635166618564301299833795146274008488780731808279780240625387759229523891210491362264583142535862731530960322670526757976672340555362427627579969506873482068965874222556380787968764920438996900329578855394936078402595702023133962557868072706092083147549131276747633023450661895153620461788229071931760259098005435131592838171079082176790251230513777456737672846723681752855882353403264017026245916961489490634446039551827849327788667002008418884678185788318854712796238000673511189899119917989301916652350227216190634558762841569386300133614643020490513883048831776906610353079348928059973471399312156799735118796365712035160645295597016944247605332098920325818573127648500050556242300820781380345559291660158324208433897406847838029556176734307377892088540678308381312835359418834089243296672486055088173351177917213743352632907676559746793129567893512264530673228560152225618594359485567034733605915565748926620052229083723097656301310805539933829339326491031606730045323541817570635568706313562260005462085421380476689775668580271349884149600583965480845710942399262294494216292639007712273618440259530042797852085111638692918093773775460994610112290150530074843773612352601011027853587420082771546977139491078858374366543202878631008612079013632368536468381890894847187537585965011022043367160653168831605455347811813112444114519146332622888812529701822599329123751511278870019380021839229455346011998978101159957500422154753363840627251591817197965036306692347848929769268539878828453117707426098584966060147366798526488875507531466633894280300865959500654067742046737108478023265959158973506987551707796754601494275858830662943641118552693813716127541522594400757731957464901681784480779613891829071387770686511227500615223968642874774176642366952705351420153222323577369906449327739479919026927098353521135455113198362495245404589859377274159483844633780258481945747316234530128393848123236137582866691857716684096869089239771726261838487494512135170924281794360711953667757231486293980850415044503829257377284554904765114849463960182399528490567383280772035131537303459094003515342827887784481264408545486257651277228900344950711272041248324303476582369124711122348691636398892003657899074740965138839239173174535934635049037478159269342356649791582141445865892326740854519319374039847986560713129899887053918828551027672191246058125439951144283902548071201187628421097049054937741443162511689288923644209659367472628274811828316408676826986758220208930334931735068909760056475475379823756877699316828657517062357024967752209553540933408297259169568481259241404417261107448374748820406136925791098678109866306995957602093685126455134164638431674684606662896160733807078526532550665884573539702138861978092178949345638304482779936386180462019889016081449038227920524680395180593170352089486265359362622773072544939472306681180192631710153017707783422329209849006912429611471611525058721906964832271083500425516506868398105831777017455569852809577301526317202235784279799255206310408769608108467528067995842112223895386509615884938078984083681355629742006166317970301507275146403877953503066900674594031058069638378158554758123757750728539445620821557337816279691902918124985669221035871753749300096105893363499342387212455511273535387043560571895189862007497164741868000112319711648791536038426675122188180847710369164543765726052808644448155756877006366328539323756948854010317728696661554426278530555958703422005804090748752143553738224284493952369825957135548827935856427211981229765449775101277267406990113857416825311761019235447143867408857767037873871687118866432948252682850342731970594291125079036430515333509506820420584527691245036791358513678244004703412081092066794557696514371108680373812902839939019746918874628415140256096403443347404876490105905879573951349429660487807157456770172808042742264672608265672358116384222702354754781876571269509733716711362447319564680235003331707467314382363584207008490309212175897938078845816114859914175429238898348237009274368665990661005312500860247711212908911028829919534286432815980097331766630875123176035410615683683358626603544572526400096160136175710819151073707043074163115743309392550716897511110681967981765333763684914427366098109913844615127298049236332138261447916982812587272326041322931665893185604968629657760819411847219861173066966058252958689264946862446425238587857962470125030834471434540959213439810717213169411539086024697749854146432404359533871005828707040085851764274268398684759804802254430068325740874143263173143254043056215381525657494446250087742431186913987658086272138428963678200975126536611882502756222827724312218365518483679046962930659288422718521429673186438667769689067989453139025382246763163396683030189210031891799040546219659790715067963521877257243407889592644387521745706501486457145722972763974045804996795413392021594300575532997209481546600400995609357588556872310255086512991700926617497474540647823154522834240868617224108719919992372902583918869836786155560035850465518745050595321685446188970103734872166813380350395412440467142037277927551251489340643494784028091833218621422234934136733968872586194518340622293955998750290337364374519484817848551482884642699379226914443048922849183516608536247865143614835521571206585991334359073223101438524059982646011586001573305850990717087317695641869645127530003388781460212885089757319095535066211712743812918074404085159696069279350463540886055179132635556039473582337661314755933072634501603100237509663195060212801947589117277143572639282465887216847101482874778809146621369848372675949827195060984161741182971600814003969720063038491436048423923110565269252341260123646221459796999272688348738724052457957660293446963938525121951791929093397904452196759001310976774377805390428158521012427945603989987397354069270565434891433583740547749923625565401017420676359391059696121471347950483078827543602511987705857845435517352863042646046896068467475110075039227938763101512937161203948314794714970732524725832961486096073734892124632068547462797384802081924136923800748044696082547801751989951912233464156130431151969505885796343752322022643904250075194210133617039589575918239200983445438689187015103478231222995400381939963370281727634332726168527592989313079581709559630683800532059678432005070100831063761436426400722586318067165774108347958120614514428643212595644775290527525813652923041573168698948891140098747740431232733723430880061597653891717397537904726659333051430790184318146116133057819432429927612294601489823021971999877575000610010699832538612789788943026720806650675971228858304680263552577745031641469358317099099165525876598007799084292534032899551956125906960761951699313597552115474295957874265567650880376635383063976123085820421127151309384566042698776172701405647266529071821059160815044451567879172384035713153195875527311911516549894799371964522554678737630189041050245799639801186140385906875326357483363554300058593697698630017139914765596278438905455719202258110176208048638340697495416734348878342130219164339866528088728071379904308164871546253524703749404745228669785507454003935430965317418108620403599568120035059711146624205145179584549645357266542566310478110276956156278978176061262834811486940563375015304315870790665964687552723772662803171407410254630500365209177398271550077775520262554241355762214064957983681631412779356909953295840931709271546521973808261554321422500074147670683468028818692853949104805097463254267771298071095372588476178284995009073829949106252123674046749360700050837192514192142995341596542437823246802008042658666048704450490397381030703414636268489736899400372833025844799152781318852380138034798283726803432911311363983838333671991300215233540278147289216424483493426100048335114884896056907391143437239624734345641460721166299472842790375901635307698296508680145551277172956567651996162493852464683142615201401908537646008007744333456675176560593425700073414668464584571013401677531796877128837172120403629854195345629231860977298869104137713295679166037442701107449413987124985075977308666722212677393860813258097794499728478678230290274498233424554860782111662827376935003472539056881019414130852326731336321481145844300732423764399920540661999163724510385727620279628088136208424866147774148025702040134929918596942699379760852269568706748604581102371084835508792163519748803412399553325731286942171536384277418177383009275455158842229942155296013842108519877801301180577138800353106048160430455488268969191706233380672056429532432599443446607904896851392027226888279060408106098843593230636446801222156079833204139084931184019091014481592581465765658713226662931226568996972262844244277666887311183900566233229246789945877175583220810214583762303583868781144605549441756604670280041952994699340015734794547487114498123451549442056625521797633505305985111272821746377040152794704176330573396936933853428733685843866147250249988379005816062211733866692583603101459555681281980118729414759667417984356573859440408397051108252540512433746627662599329081550434694203325503040321204699404217353047983799142575905188504086682844839570552022468191651074563313147805106262458265211882642046096978989532804825917309925967006747926486877242851761966280067645044948685810320193813505308674196222183348643255976287259473025618054512480844327880561287248697144816373510178849187686971571360872264563563997873985293253487949127448836314485943515445748434978026156065978140168136088249151738622357904362906231522881831635869734487135993112128067642507803447491807622750537005023446139534736638408845715355830707708214628404634891944582696016502840136812721606410945467186255264268806464300238677137298215051853063910374317947361056849428209744137417170162628586267806711265091459741519203714910956991459219328674330359763409597818794866044354349726833424052157021076065000805828494914971141566862118830796862347462916848480794784474772334068507224615609302123127148857011877395094612405227556177162290813318827301260654300373838904068922656613399658565321228592385743282226903999133683013206798926411772338319285901833197003564691487194913391132379980331011215061254038975062649034465686189357185211324080905689355069065487140309690063190405758127690012045099578371518037809713913237121155328273371838433283943313031623999470404698478426002966011659377724563986593392655873807118117003426091646717309067416297446876413209234867461985465786137110822839133311538071428194371308848298775843976183002506686725573072003991781944453890319669081436697164669045547328708968802547414048097364540913585246321141772857707914668187012016784573349925276855750106847590302948276379840693233501004920147330743572224298610994572885289929223452746659759046340853648850655222869097267900198559385298695962919778202699227806984187938896110755306516453148087565319639072107565494580996026214719688352729533393838226331475034761148336611769812664290330780668203309922576879741873366671884362943110177836934624109613356318050269525243261315117461460866999091652846232784441666068686335250776316502526588798385235592968776143204829898704759076134984304337764313897747604854563358593494192126970678311452700662251424062986752106172196108615744990492023835013651830532551484403425331216985845949162392547764638447224059189990630448686820109752579555455583513126632926963493583696305554455676770483189856473801480407395755173802341431079382521738826650000251280786457117541090448585017048264236103620612646739616537349626122087597239861855132109416750105999363629115749488679353219155949833575500876117827662550898079814351286346046001840159471331443998574567467672646004479177143977167019243920443384313519483726557339843992754408437240640189983972790889871566048605654111897608614118900465450586971795496123487934549002661663143426237622320408218102666205301912744134593214883054690411150010974525297074045385974227415027407914771048163081777993995951246958998279838333418445798866056849641090155346013217810733803236598078371337304207379438053935246390391651290981190890981961512248366003053159298550565532738396535139237180219996676874233195028527904807207439044036504891226756556744505571333735401355779812284803575203910931466713193948311188604456427208612409282879704912039171417902050175023770045954925751453181727106708826606611019971845413484314827301251337100979385821417164798274681912940777192170467465050671731879823672657313100365372817977963095571620513756997272279618039839890256027248049728702460702472968432565662095909769451045296246655638545636981224750706526721110343840234436883657423253713222784168998910021130813393805640617593524715088766719275748893359418833520705218481742277793820659799562883115517296062342395007956170233480932347626086115729060706223163475062988360797427201365928754669220348385723391647679251438790292922725589120931630868694836815643358511618880768247798180935169064900231389347230833335151589826098077710317929637794365056333996135497492343060799042166964303330924332127523399822742777170467394144580680999784363356862620218540590747403576099543243088397004006009080111450730234743581018411705526448633381984014971396512118046892309015706465105132919683523112681620102013352930154619290443663022529629308562699625024768451982830390368084647661128014285806333882284131166161326232471877738180717408068903877818567093663637526994602269460142133522479165642041131021994351435378987845690733427139044877388691389410396490925299029781195593519249864979919517291153430235112345882995600970277126873894110107236480606796349598086715601427815067714611491457519698545112939053087231610130005584074935399577546989032496743005291568288072921302772098460372436720200401441339230917863147884535926283969352675944035387937739019755450830014902592037192577844691002490524752002469227643735627666100566041994324537794274929414305437516213950958504047895573753714617359932229527463422231332724534060788876453106426496954393650600322585734914943254408051085681093161093520406047195654950135307892246140394549914227613141878959705406214569683874704211596375285332908738770059741954762803787547483999176787953194564331355131495843596982207896861381694840674879952283069102568979976250525899994759122704911073177245655806967886304131077846715795220335244444082780150871552708151584313317086648930119611960341119174674967383871920923791135471972530802495472305196210031663651024834644408154170203932089175083801174003724547011690744533756540363296192558040888939552209170746353566462482867343311106662136235487024795717484312879420684632166009262677298833420109660419496088590205834916707324492320310641465329659362562183892987550778229872622302404133431391786059679334049094792983241497130162950108121038933642728820315397232459869421456431548438185720986687250006770640109214116644214706860496531634717844651585114613163397005842558372873343722799602450444424452044369008302764317383667342730460063175294812932128243839298475171618977780343001503125162779740184576948616291325404681602598736527029779319654850354834240520732615655758793609697292969262827058959381068355282489644250429409455381212853631426842412180087812821701779640291812242390887198726156148858676841677472036570714990481583578107834857432510205340712775806424247593120838372919312935240363351193086945771581354231393886710492721219024971098180932533261920360257556741966148281074685636931485775216749581051764434560539083071660791702889675215369518749699395458345963078459964780685568070284342323369997917952333575276334867940255751859696648034817584219236291024687389104924341433132423751211688975949113822749838170807471153038162403512181316025672344484189803902940907205488077147086609342951305782609080061679408741120911217725028844940236801709525847248713016995115861995511570672745232720694644288249287201391565237355269528527512765383591732369451966738435299641322725488561475255272749516894902769359489994863407131076245480501592830274729662817846963363105739435307657926997993550321363193168366730023953187115914959379782609530564017174628220930606160714119723071129840176327152412883781790587321300173311894435241296599498583697756305605341016858700719631370722820482884603879454375840870205952337390580379609329548925210557545495643500162771938938397710426438482800512807266342936896385513423633257006442518089871528504205782294098873863310110097753124392965756883138939291401769593118739626339852316670544234187619988652453983479755338990986283953792983936699592066535372606384409147360652647320723929718026903911710444293126723686447494343090349923511496091241919525620811536774408383829063096164521366422502938293562713663136230109448528367475951700635899988111951459931318466261293056777468733327446198107511974214892129824396177664967316793602228457631717538744239101984805651206543211927230973799145991140688070507805283893159270642667696249141097815737894603542551386631391693257592319531358577834239759068311857949208800656275357513934663522943372262684544287141328712375442766228219831391519638906857184376609591434041514704041734785679333774391740011972035211320512192411852529267558406997890834045640599093368785506949854868709452050084104394195596204275170764569604264027378258622403330534498331693111161359057197922211912405827113939834433915709101947830642642756139608581654743580656781330374048153526165266720096234004689586099818689308842186791611748442772900158927270828348105867340757847033943071057682648168241478533625501346233152532526716847544995241368303069895854902075636026926128612433159195511312998925387489434577475441675404882737723527839177323021121164590244650973334043675059699748353352115034952827396045444621649858171943336542725604184843575670590361433284457674802536188941246244032515979478465964706606482699709756088055105487327263593599496878509504171161149832463048239195842784590203178430907305639932032050527334395249835131245594032240840141332271605497555860495978808700445137626382521381709361921920102470493651914836955738300753801072290597177529702138950854954536471396387281561461202239185282159053618569963393311265701524541140350030487638570107284798530059644599165960773197200868451243121331151463919473335125656560753290525801912252163643880976370616650763830033668532427436065686081088376791448365142197749966630444282429067040063396328395561693111935162289511291784586878802671974681941797088453965453368615289277148222489166215971253979756366887267983537014460394005162387527766897501415534624472112224557236295033710150943259764107049023244530764272022012423373476971076203767500800463895445416343965906074125309562638845655156007459531787423646654685417106311642454232614772487617885196546172476225601565455981993011730666065824878319105832546424648099774732218194761045531992936687279672751847562212429431348282619524877514112741162434009244297142656417542423351470239214000686269711867731668475770146708736608479440729997747650809135725742380177525591370345277643761837336086198700347770709027154885006464143760973471001522951169698107812693476367984484359646840347412736390633657098497314561872055091315257468862237094494892516720798342296676049788468556012367246419251414980391485783965748578719713447385723808230633967348999572988360679881914296855584600235977101335956802181716785491963271211301108644050511540278651470079788310393722177385101935815992951790952087980471449074945951690968920239058235955670170107531252570221952775966029356318702114958651185534053953347692565882992311764078012875213891712132490605630976778100830049792545747048563787865573976785505797329700418983570456294607342083341968941996177924164786624507945034655296464874659271088682678933816829626554498449867323109088363461975716952848947544067217785946385641388577169994694563120170768467757676778524737764873353816776180679943988270414250868953615854333821500305639759592881795630481612682534623840016801012596440742682675282799211617463197418340409354848189346586527682706243933600900117593400263988815956089616677315112138345470749257514310970826385427087599139849170438715780429195531045688586585795485228614286267964367657415456688461696201376916427088174432797454032101596395116031416837525900648117936656466317843672352382967801926656016706488076533261844259939564893582366529389296067743853855645515360378911764966515285328395946704336693770102167853061952326413905944905955269064055015947304667536445045131875835211813449806515332957085634111409101628198711418045710077018247238985778074261062860865354210657241842692474319961075212796487876409953460519008397819388912564018139284121611333108350417526420393659105113396633667880591320867417522048661299324126279855311405515276472176314931270489947767736657660275491636978387630590634994075915392460402256439273238564939669944221300950391741139264025194890157999701670564784140013496130438145829648051431105786914243906618287647348281787172517182302883698129511695896657665527126616608705124215471562055631163106211146233132303692761005896709584148544679826313382017181951429821872891160402294561722380527887856229267718029974821006969339778194217885500814052081824102315198371768847309258291630147851746412200098210264706256275031326798286466329805066647752848984047024683865823755968830782761020543726479497766729488583577755925737419782453343097617795252752358517733781438950286291540450560672618756460808867972806635550535761896606939921278169784568443572957496425382395758790580890064061091260152970698291722534857986300760781358536008171177892514847231319250051212448706390042880593870816153533677311829020426423343119992267453142122603469652993030218298177201348815640095304470982678368681808195914805871011421127008489007688933255701243652642172508747654566469929135732103871725855618129544625599580829415256589315611173343593948956985706232228930295386990169688173561095969008430859793753856469286600596883430677934309455478280896595089735250567337674520903961909191058786258879873211026926407298995794267027830713370515971095445238534948090890642341746077024463106991279687093327381807368763876926240709246856290105608652253115923941251203405181522991204412841093877355628383784441382863994380247601231704403754736123908188075951308697296927709813013638332217330298064061391221948568112509436201575478214398308440748945796885899575966862805557599049868516949104268138302214191514116061794302352916924128486795610574435962135913843326770383867435933081723127046148616268636564473802002283811624455671229382774079814788493584924075467497595645774176839758496158944556859825483812085625871157139172337307290354565111036488342693296958011624754361182765207992330428610106530804743029707607302688698135372088174642051094518470527768676144235102830380042995585428069750642421438086714787127880428565487353806699814940373353930514725803483210994805008215679750460120947407763861969853484835995840508785060158225076512109675197241906979980642902424009660556420183112229475595285571692985842960690052002856070385810750344191715738885182998215186654725868924394051389579597905119454015502543355194266734907512248492428052685074923123558300085019753093672736808062775573675602383703872898840242546237955872662494567528605760172448170308596673928267006091732154480230087103800150042448768067460167156575403436673312280794640102903158829079804265923953750369841426930066942683561982187576708182750338644684916897045432090370828597984312801398590766505204187383809711261808351001139813836251499027406263655051141578669918785163520405797876589155287630370154794061900918101579709931064121571353108839224983455574053209585051671971410690288324159626853785851109579139471126546719607333332657378972769706971963096033511377520109850727579240601942977819175819952136953251292928348145475767364594147948379298864670001353165496967998772158380129369589460354233879049596870472361588286128905220668426009519290402309840970989841102332103814275058844789272894921248391122074541267285058875793464830238245224301156562303513663899027426309224725524654216861662880878949533393675667048239690304970419451270277830244789896838111210865743908947130179675348055456016129660469816574869388701169705952319086365735514080023176432490834487422025964637542369016549998933472605174993679785578147735789167257516685461099639950116282848520922695323791825654341767556228631107506546274359172262249364181989420582328075936153607086854214179957465182273441109834531080247669567995707597938162338857098476930156498411290937174082065733826267222227919321059732629661062538623342621960801131160983836369390447846241296868023514670561420196688498659699036043081620850862968293311443962684063678248875263343654376894618833302102394415913311226515713599911291073752504148155143858701569336695054474270597233092096108418639195627176671980222866276917436355935836469190734070565992550832906396228436391482570586022788088316369037402296608119374090162809283624260662801120909658176632463946006689575722586092365244979047454393197975001793335369031576908033772234657416557261330109032113719449178103193585078888837535665283778472572995193145770941620918492542009896058840180819883069460191411746251237892788865922102793003633398777636084880516079819607352709130262366958291449234537004639509670842063795642100161435430746297140313986958372789958122717250877091161781151648907523846131237227486704843656255051041254453129499034881129489295888457414648842375246186507939468544849192136225495735045608215823015778799112695537340836569152063429008569256343207074776597230217112272011750103540453049636793020689332942056914760700627425727031274606712793430978520126429626845419362237885248033338518146772046765727297993175574645134969006859690431727064833195049359018703796829658230591183231522093073925232926736216883654596390798067556415576128835532678534269085783007910114992718152388834254485582859436973591291266543573747039987758068589917474396696757835344121507310942983282669143147191286638239474471697799114070034532309112346413807355481012450013704121903912495526091965269854715095788833368366249209835761037156777645109419858889879318507378721923081315588966233230327573056930799504639292588768641246115133794277996598792914027752082250987502384604565891892638292117993072307135664714036220243876768355882021011434779122223662546084397872902798249626568829949389295253874824976918918053561535654764510176805180088577087408898345676591985867253184700097786922783041838469369412450615197397909673799546969085305359882002749140917524650472588513520579661573676737878961618185947740111113722395355928614134461603142412343213268343515970355393113809627231268944019786694612180129062249075844403014309881644588732945120808006931973172626037773832820483375800356565787760415112431414968786104889406150671434142937822998012723149893569815663658989834876039185072091796678458453904507864051804475495166302655797744637957810355182109368997206119134547615483696711662470191346685188166903152969760283709000975679331833457395142633447605248568468212014907118177484524303110799477376640542270028711322074692007745699490620723261816089474624146026905948737102041319682691919352068384584435481384136632651231369574518263380523287659102423549594666752567141449343784713416639739464002933299925731541152064659416238366889335390742866511080397679495839921237033765727816963840134572291613830127819627123619058260803108399540180189046669456552585377439838555318983884049951441394795066055881689906021836059562158183241594388028969906782501940020533087378744866171133405252350940177468060415048259882362029376111766109118238929605621088902388579441936020933644097166166954345184166492541961816005846445296101887579975112574824507042924852384353681349231047159523705748337940912071993823915766339806877458704812079716669461681272429083482952576017654638426874244424807528949139640260042090061766452233489256047496120557113131257095438439024136976748423779738869836248930809180723370353139509934709726123080658731671141034835213585675855635568711130269647694987708291319544047031743770353232014225734487446052417986644443214608981889585400685623606276957672709904840150936089147657076286993619863957525726503275059023735438720092606345925236361973773865782526121104978865707029695863263814884042462667742567881486941227164918524979815536352145395235149132512773439641181024940594168363372584953390840672682825602873364190538620078336278550399193873935619882997138251353906701506099368677991340002382628822308640853645707843279411252035819168392192365167954122289260424969697227232286457051402482220567388768343586550361458219292853505672990064343517656118941881105444208193042326651212147654090489421276720358382263652058492289379555229846487042276909424550903581441557728756509528338558490922393627397629622622458862677409719853266983479772881947089211080552349700873526824002439665540327053118205244485212987901448883417068473300539760999280086503776165037898377121364337833766859598952707911498958241159117010673109685647179397072214414945969964147843924541124780754095363802320607861973407772733889208066229504384042033013026708183218585868113490176168128807890479420663331699089581768100482516007422676497606565061658689328410231082070870942643795975177769439911580275011197966011532370410964919890109654095437928647816350664224218473089619753238875842267573449368123334317853552422783840122433378602127382325627067967175404139720695889688234962721510310715112965317686084797753818072238301463510093260740961189962221115297908116906533110437144594547153087524134308484403718080732132703399597799048412115795435893372881090457413810478819008812331289241787059551313835450740261262456565022955755940972230919391503078921983564792669766561132493888649640788967236155373482540273527830195083019797855798328258099495980662742315610200843891959651284195818946668081885340788409417522075412359178262237244252336880643470296717274628133131476930465672982589867420557235332343935190722210386238403881237050039845647176228875922460035219677337361882818516636690276616171781067998985068562293742149697448860491087872276479633878088489306554310393668161405536327967862543574103487596280772191856009857826124766473664210249635651066297513318393726305741808412847335831431426377106036998092038646411415409976836907159715160836876264681219388368906836085237411355007966304233606727560075332593501627739741838287209565642998904262944328902002663661087530650045639771464833645431896112890136736524309983997962934473337783303325931673686269009987102614461217642036234108566149661976582351995238517979041029130514746904961285295325936748382029616674720733205429344732120638212583225314429650482889965587175850854471079753895451244593082418954832893947779902536550551127493722681871696588956887491145846697301450137957533027056961056196638421231088602772742243488278438290157026181830073850867042727570939902321557538991733307584441483259633979237819084853038047694414070780489263435927081892910616437018305000306776968200809908417341443239919831008753623663398680519069489633407288047632082178193312907223458204550120347548482564572721716223875620567941548102529094620061201360091824919244452488938435301530901130333629201107465079304959940169560584390606312306995720702106985590088499618547489171347257818132296420294708461494822409073958351090696587268585161177067299917267334477352760220581301652696150965106449547137101825334665647842361448741664545464609835541998036931355519350487920474629260749672656919664692830842774646301104898704589562426451305476682226402957281963369677099259676173954506656233948990366208063823741482759928974085709985999192273833328999684040624796346748245206852298485762390404882370448562531136233146649642901724722278344043120562709591332932008829171799757333340744989358046003296372076501074299960011359459527802987325559210815168117006312285422404054742894455316732900417511099063621222718949315705011086172496769877487441962835958876047652849859990659695495547584044331230346333529563226889795811460958720881325607956624146023586232090009498672848176866241474688335717758554790000829548093225164026465700341539396043332652928679234404481178133867631214085783558001503983490468878081089649283906305485378008463787764041022174244207839500438049302459419876505204021582727007694074151596684021042765640871822799458417155994431094332033543553903322302690007196747859134881527787091423579384125106017709491555204101064027210118147645912794867941984727101803216718687962525397525623009322419964113900488223034758659830808482695221327958557867016032124289821547034404718514533298311954490667203214441043449703388146989616435836748374149858275418419852752697705726676603112355065167919616371552348598749783697113291969244967434920854479595604245442860265532649922122248021712589981859503954108869130891922619032961559884336902060908576680192381246264047690294500767490488611957149162137025320028121709161146491124565449524212273048547138334771771800022195382054295717346803276296769163976693561462790167500881574652670164269153142985972450026731431657323822903913178201778907049536215441516497695942285833530908097631097305970424385826309647501041021420076235579156671000809989581892540610378349342117548567502887406178749902832808632475748209733962567215934842526558578913357818756730028986886334681169373202342998234651753687902315532172957138835812220575255048872002252780160879548051113400841628357062986853994358147247008300302714274667278656622226882132034474846867677523431273152697699137257182642494846087488808933202202557839667929682568324279420371366135734883872353581866203497086146958956629169220296617566804485360346562786722021759433900907215344823122590213085312933136363265505914507687075552231070424769705746307243530551057863536511003570606855964269179018286435152152055973335245995650677555121417076892032279517391703423123307800524527184146768953843547743986296693763243202820209905714000836657527709889236759737232244694160803382417384086129049827186333100136033771619892447789116207189976130907216382633057202707126293969392057192284670470664334678356674477065277182618202025128800511066414103436379580103978280799718303863752790974850365262802896549689118478340307171025726569054486115467270287614134547363945102954687234813461495335074040971515785500358179988008338399750578961219205599556618314015427672438743747027572702143342744970198091005504868732196874241620674687726602204825986139362265124926092708263357703436739692418070988826861172841665711372840016548906515266511596069597002472172595285745738261770078875492942439887486326536730838404287181432173893798335446211640740510194094351734213137645698589190897925848960151810544251799842929581939372918036384588389993569994116262976888327466012802567348467111175964201764058680574181221162652220365358750377891828922697745152479710486536521612707574924858745836184903370823756242704817453498296914814377242545002128015563791412993814246091797401332664627277387917940031437527170642675300808632050919404898706591929008767839572035911688141527036189426168941045918885236153370523881059804407964580431004813955840664223941852762805790649660924823045038097597229717954279615408144918452549102980514066687553153771033013931061565062193450710346594873447031078829124378911698923724845708415783459639033931256351466421325301137595432132439997323288242523719969621233390947161567169628673718029382014499984171017392278354126390791551128689894635341619370094780737097232294473040064721302802706510904210178784259160058127257967999462324912769639636067768637693003069156810884322917463271911804754677632318590047420395681134371867635182071914981508104913693037479965911541323132681695131618281362978784638579706791027403139448178440172056099281908320852663863850625533577929469408190341704304963765882484276620014871951271820936389983575412212219544593613215964310392551504025507422325354868481787976075581438126972185565949153762723091036402199497047616314608280018120199047062215309251899687183949819257426282590548055073285998291273482928168672174070105557888752140192936818184833494827143542621096228535000603688455203515974287369417170591792109942314677488172646232381844703239971501612933730172919365422677130997717614741517703857788989185664795384352347172714671265917293759699188848094131573771070375331505640813349384348920899056979751407734530291618240038157073627644278485319312906387834967295425953488286933608933224123563088082224372292532428304234983432487042126859296590808517649382848037225919858532876841500609366277494023207753394317817315732596628404614967667060586667089295749176908930638883897254315310644121302533178758205122447558728984551779015867174772090844319211888632415212864636103709827291541195198048976556668136641015711049992605299409877929438302693584438692486405756909767247571189893742458012268930375807271815035427891003585219331294823120501452584894566893277339794526919553537174247979205900961541725339113662642522847665666038807464644636402387331163490307688788580217238081044049596684534721004410006018581310188583153512319400777649132506593548761257733039919105303502895900039203306973017409872346910200629391741179864200224508589224249444565803839169364781728116108237744042015519747104762044070332926660260521128681047767480529629026446465089178506164904458182701086170935403551902431979994767675519313486844329559365910043124262507305411515241390181781267043867493766445645686393639808293128661064711346222620193629366208861490109981091181771571220864094719899564310337324388080359382908509347754509862734377108506300489509694444194770586225768467716596423748275355765019696651141895818124171165785109628461217911759950396020026425351729929283947770177565781161021769573478387520494183599841458158247325795204163905046796036160714453439720479371491466955938499954863110519971773863387451703918582858322308856946549059757739929481052199621072459623345534929600701774943836532713066437545770292598293881415748421441963151445901247681169538106169096456832006560959602369017881301976806768233814916090116637546047115029945764146258104652410189555606425076397959476112135852831703839182766846778679775344972664408487590620225130730471766129160617092018614910918606013342041126185566499537985199300029757232044756345753936192181313984607634840763706123694905272200742770210659811428728491101660079834134192119570816853523411162413891802732840380686972115892627645996463881900231428856531987877258689241547454417261270010375401722906313396228990516335929584223879214806825725187486897576063783553976018342119742802740051508861595833995600058465667963937038542602907237275529896717183720984249584781088551176865073409356193270412578124810686863768094073788939732613499181299654343999524639391481131366316893183803635108246961378838803941040105590400160137449271002367032264685809252969707441669715427491297998601137489203273328501299712674156220910062525204458879313055532087296141147392836469993529798470254860316485284355363194857015419923752557113634534830631446210553141671240274773732441629775321622800480584422773557163329593039187341196596760511844006710681108210618317546132175022265999828325465404924498192407867168835411763821613397845862192209670657564850192123173168404466152088277535055366101888459525825522798444152212563376474179366930913262099168590027117336326876443870708824330143312496921765387300266873598709936457994515406371602490689046888501749785431155333425492636550310513606852984040435240751019427993683346315951869417309442377959843546931149908512716065637264062721183082033992378570345271032010199464673037149648695336762588009816041158350395522781056763593300249065623570059563496467315133073185351538094029556808842412494511770191603702326556961083089703969758282492169000004749147413434219852694351670021624208940800918615203273907404104495325432232271308075296760183142045101425400791484979542186220796674362140294420962100225838330282604990952292548596888410970758069486942890600270127589266016511845139447901787313247403173476035445863436011561264748950952592641452121425433080334440565891789591709172055375893815232684751600922080643696460388506830060240100495349185008431708589566596113911748129550219245502748964382968463902914446646013643659726013837679434198874718912325314230699467632921721221275222004282552623365866802144619208919870684231941828357885841648509065634924638812811459804796751959625491599457357709248736161534860308269525975053973056317884252098878151108888255438055959017709949872283814941349375206834834125997445015879366891555223265005289042715841717319056883633630198595535638410679916041637828861331741378963293016154479826481019507306232162493089115738462498521993306309896117990337889859920327688550410950304120464273360666442597773061172219115755591131911479797312654335173480443183716283482354015226638593344553747100552584148827014798940879476384435662453893162947182478860935413422365314418383526458186764820103017538091776863157351037343417762388732400304113726820586074588001917336221958812752959214181318277062158523946046674021191679818975615731041796004444256710057708702506140218996784925557528931343466418382462457806340590745901040392996877311505303378324713707449909100401251667392233231592968485067729200100322109856927056631419319891703985096677448534250322675284446506774901497343438188411091323233165513575954936726309070632107288011475315995744601977422941646957595405769611642846975869144409411549231152911020820397770991268996625885242597188291262851089443427774862777275827119008630439338841662738143184080172035641573159338661128580847788728470345859968449213030036770700498944941426989530498522838315751524721259618691247049948897896801961159651847591422106660526090744466594918697637217658376736845693796105338995278573452281434921489520306287287612293268700151125857592177648884885940619397218046777474278844715810772971421791423524803547066028384764759531502259798094318209638710358812962404971369319458105053660985197629039394837111533626600262051045419775237004539523835600979084692010366423828287760818756923622963861141190954243190522802551560224488292599208834949590041121960510943988371239875962729200751356113643464795106556396717526752486793447635167806495439880548600470516957383482434445730228988978660299735717887927522161634735855443813888712835710791754452409029092344699311847612315295487444427680955168309087232469798222312881799802824745052372802037426451112458845226453688350723482510782776817138659495157622240253945448115130289115942781401754510577876840425000320433339961247506587684203004885286068716483252187961748240397202487890511019489097666608418485671790193124210489105887355537388215137214784104451829642642224667599053071425626682509018922159544642493467312021294034521523800772001881181115250652661836285673697711917312456709420308023284634655029323113191566319469013204916535540404744038360173721099639619527115328450785046825785269838705910789765285691861263703666367404523220631934088316298260412970270454728608159464407316188309610245253968795589892404900077747979947901166699275749839189454112482359020896724919962154223182980340049727127722119219348541263560813582451499547359238629934839826932748208275641198089910297744943567978899204603407013228266457698673114917268777447323978339839125465250857244772348773227198045778132044576924271902772331934978217534507657742247208965168767601984103937550181019191913260431044282078262219904943075019420488780459850481392218649377650066714612585264635236336756069761242111387920905263411017697241816159023253365199746073089504419675716678575927646201390584093478358202110738857187888120842889041474539357501677039479453492421678683076614747974437180752286087457455284356139573820379123873823915157043939827468413382642795814570432119667474653762479000971951298424890229974945983105350817686702322070175294401440833003861649021357593207705829930352307762146893046819894415279171899506840355504023693440748025127935223153101997488293009863422879986132353562412533009380787718233467453631887625561398295102813711586893701278437387721937802167403894003502580311238754359719780984092675816405398971077945016218217799171586924999252297182427859911024885247612800175465353275560161744563321706733642290454521542178857864399086346620891390111977480101677386122616294720645780844567083900113267494715956502246450005454822534840496533428632969420215022195245983276968898960675903929694606266173173462956287022395139230956377290216087445988659015620409308711000816468794607102091674354900633151917138908242146369398289841515511407173594638160922462792345836440557067959244179533386393998022174593057556948168477510267726192193285491003250880186079903165553989534262929832523360794537415037159652912779042488225349317771640718932401757443273925267128325852984239199640590683917558239289665447014942327933173509086839300062747498000121671943415530492175064590496242154346408329613445042754561331103052317559331480156319639015690302864341746504070461082314389059077810695998943542986439776645258526870224324115665918312923948939693266313302546752838339680841662502010849052282922083592251614531991433611809835379841988040705646614272885634082861201218106189810435876131534835375027094791658628080479039548955483815690960771972942485061114213951291183166482316377188461559843614941735478563617965524521886231721566232023718271003941318698687895599263505208261872793983871437397726680715753989415485549376271559018488225399279198392386617214002489715598435891894381654979584360968084850180727605579829662800794467779253186639677395763668439785386248858435435782321149050278152673873516798193605267443491900308696624320601527979332173112324015613026852710950945532844231255464974747445759650199030354975287517653414769322980085008509106565080705489989450939260153882905235675306255444683198508699612197573548455133283437852686529680692848595297257372442411523111376786457307716232413150641964178793917165752109286283520788171844834130696413002375641549007501755771617658544365855886106354968228821507608725452496152087004433317730003404239109199678463727795265029634388482178501690199140391545537835588473270303977048910246944482332388312337696474772441599058721987798985300441429061136821275140095322956183687384140057960910901228046640830987259101880142405677185736289200564939553970274432663089506217619524107469090305825913866318048352981409201560188397161572277167149159092194540758150507269725155592717191285278425530834329405279846736140159301528474064285520594124653465404814776670694624557617387220455816065892343682743203754612829268045526476759861772968192712203948993414866802353259382655504066890711083442846053571955679505800980019020429435899598372328717505461609056908432601803694439446345078870347590051372546266037355358902236915901222715202676226854312970196231571081853998224606636357403365215605845498004597445708284444620796611158080537702125288757717819487385173841380050116140625948733392621668567764133551397990782646841742978033288154229354120528155373966034301805613758468712439716429911450388343668780862784976986745640789940100567913887740395758949823943999447522325186596612661155759123567830711181773122335325077323842954369323664012802202653387970802872165907984984990943680878354941518062710575169853769215952416064016054895287932037769336115708829603850063789903998511244726902833125114469905739088267872908481734570007921113153832052159473639393142143190441455183154489126001075711712169753559075052922569702152919954278283165288382191222204625447474411081362924587064912910778594946055236769917706837058478453274836606002032759218475282075917258160883186372990498805424164209474967735608102323387459032878858834208480993702526264028473758698873808461569947703370258474528237399116670649244491805511595438440258769160702479255369804086807605251751248513651688350735822514897523539773248588217453113876890380616414428836814509729312651678285598383660181817971474001956264240993449065209526901186701670530015549636267117517283819738343149550540791701142597385869763831589667103939537540976027187686555866586426615125772354395517143730912264442354103372988379322616245505384360136246626830590976595127245493089296623030643926345071700838101191951590924363996340948083294604456547440100077034003245213110381377992970586627556653579234051554727556426450225740629504632660143203484356713769500744106373709277218360046356146620967274730282014809917841242489708302566924362201488953890968988714609266689091619092959079535527719690016813843735406000699937142530597804195591369871638330645775442583804306874163881064718676773200408562252407503053502909205107726921717839645056398830162632184046718753108066296875235361682667302084970147263794157300612060148725612519821058064685236371553675489964143933244118874947448583702139836673268373486513546451835433649510362439460534671758596587834628160734544756544620969157625125448110126014356027786365932563962128581018052529173079804745377481474981012344723192439735565597064300785249376815501112981482727413861952960167771060094044591556962087426047243590174283600030366002928392287712022943200096191918776016251797489212330673696474371516728042628916806304906081689248761294638162059460156068382263921949865636580401150992313601976261882425313516940110196390016045747366581105902921228803895431116587839659615650615764983605264165514561803525924085810109069302114266616513389463148074718791956249343171945403182660352894038711385522103051400852400920568847373406411959288683193315338761017035384096440211898555554534595688035081241169917298306864814186190030809527949541502173182487401970261703025191223961914101272203073310389804216442518510454186472607408296162393741445621841270074725319654880733004505526342273209811867633117548248221065759367061376161670885539123153358207662359159653119322776008898612687153079467368332708090392236364984548578879739579452163258066497267324371946659900217672083118297983251398412359728584127329128258066736456762442246674378296306602854795173923688292483444976560201831215274581199965338527032931849713780763906079152874847703907874915304619398192206975068979620893246799075087111257676341629420022014216506610698111364586909678877766191969597015861641888463583217597786541773597656663979260013559850319969060726184765233576259798244889252590410745975373152576284894766715281402334660806019307588548978459225620594613767268097436606389210278750510580374748733322982952025259729250270645231243243723552659771564758343104954645252491301533883108498526101374784966989674883557545475629159522394708541030979556394171312795806065938969626278234804709500198663123931967541101848833747774212566692994236999971520763968579978276952634061497644723618522899249117792731623200671530417449000343921238823230587683374467453242328461801478871545049020081481686523862525447511929979119730296466915759255139982526131299117689522482205117851498416047490020369616693495835389787517518693906218175418763629312279217407094857198589784659060843111252642404410629224227621156792322295808398989950771335825821114771240099058306682269779773355072676524196638164512401262898817660830089346623207258864204936908755415964420624183707526172706038283361589836837577364443370686634948039532190219448251492754117088043525742012324876990298357953659017377057002613758022568123691825957800432594181500213583746813095628291669032281877155547465703168686806911183216444493295627846058504294962542302799016414652622184226798236300889257531529322817987492988884200606766549023703087166766775982438704657592567433883387171262889282022914827594376341809364810153968116753189167152506031647562608240020061977418952743696753223350441305668503760773299202667415993592288305645749259844441182170264614311165066055732191064147262233208443777673016356590884906212537659163581519293433428379470832920134909629834261995996703994841081961356637046899409486388234550128876633459900119177278383169236755626825519799672175669137697669797696792520941123174623332616728899722542717367940699698094812381035848464766430265305336378084471464628811470383160973758427459681981400218096734117819946822621724816649696864097693644592086055850969701608200006685547879660950759434615800068868398985372226140656765490093074650367191497367225367439810773531171752396366356057028372077704941584098301391357814655666351550559811925417774389168629983656453684456388960114101370821723286603043664451424269869960087491010981706909602774507434355490685127765547959957028886017258575632236085169003507336260204587071765458677844839374710085338025115246493496295457098505679550171242843235093320849991919233312985267207463100301618913888835944915927585452729634155230075939757015948947900588445059798515124698331517136498472339336149126657211604981122383794172530544852424291912561062860034724380435342763038011616765140163806423250435768929998027501027403966900223476389573118525120433349179856383196547482866511575117977462800657269485178942091178994376581307816866877869862389057726040563151500404934073704505297769597106752506946056448591715297261554736327151488381172214960277840106992646850144209599517720431769707246260332471720037549025877896028471310715310971779268854049209466078376252595597207531845082100391263274051916200339343682964225321691118370011099957751587504457155860461458738341677908789207597380459134150817872690739073796036850255042959899714774854792325351416165339321345852020744106125241065030907492919058923393208108664223231225995656741616102137916698596827946121340273366445196421131683848864186544893092187149607386259903393269469010369180608296449415847539006390004696012977913970561435557555065753133967696823419993802927420591410070247347858603016328510525081855810491946798341170923483009565636913413158252728087331479941066223827789790764205463851798144626141002219330608268890508888940455483844335432009472510118838455504223290268395739353741954923009579648946789565202551791207476212293494380948375636712508895714165879716348484047094793213229797079990348400074166916733789524582315375230346400464167513897784519070841428587958903012220854961938833231663696274949161523887288126253730886571431784718812121837132554884636381920896073375381263277628861171932738110009311395737166245798474584212226895614816575375641006426824889726997807762596875130376562442335665797389164946344359698203584937253951523319933127006248415195713441051999252880069450444353728718885037916622315629315780144574886943908023379685972600544476013720671190714548068027225503083494994570715786711554092857982869291141867755473668146579188501773346090552061007752435302463847449085694930744301699192053870538365815959186795252481793463028820900878651075947587834903087532436486576631795546925609402661149400540865418274532614474479575927191304093580533816951930604544986684410091227350686100695823988485903936842046289786079596802834236923691741434615590055232490560346645540385495286500781684602169650724443610893034152317499583335956290007208700600615332369763545495626873944411027570025808723148690981037866299906411113158780107411037292526618002692226072932623391138090417550595188323596353850275779680646270357866232042568381457212128169453230209975060241711647389641498714581272499484112080879697639119489533260213568816565786308576818892777460277586156758740315705074589784123066293476797716143805051317318495284743636328592470611118231834238455894496045754618987212791218059556782543671454570773859873475612686313408463667944000363402251938165371210264873603326549823568890697393365164934688841673738436576290793735317906702039314057263779881721190996947537901728355182230814874196325297131181950041585618151642316684719340663845489947790976849428474910172658799405468719858186223432585092593099166748489634862428328635619353977884540981337318064148631152470288789175903042515402410113198201421118793580342722786447836519681127946208012748652445653356825920588338576498062004923115451301438147026423368174563099368776990731108222816958518140144437015943403331589555226482448076328615993277839108194696762841966295679446034429493396852042592321835808051457245242743642786542806787941266670632345154352952699162265470811397553432579961639750629797476371422426803079437719714362763403527172134740115267802391305826355336468368708531923725682944168780261259197258876798336014022791086559584958442599376946327842716960483340663274456408835350750226239255956574610752311364364319239483966707300306569474794718101032563307891577260767770742494992864780933527833938119667038986292346768794668999797746463275774760935881726442474218486851270856454536914484965111054735725611000403265430419883517230036271635599212251112632022699043073717115114820161149340732379210648706313329419760878567596631183768306020442093544438176451637861154028719518745594516519272786994543050891717977140387090035322044344079258686584777634693105374271530710582875229125477491839274294327343432122470522138976541527250184176114317074540559686138329221661152042415438923948527117635129284394999905471664142916844492098970559353011435946370059581105803452976677027882449487133115485446611378382671332947939835432201380480848771001986979950771572441075563109668068415885061040404403746102141146056359149596287666950936393720654800011408624243803349692431184093733947336458784841492924757562630457950463184431958573945344204558858237837699637247377693454214010454134534150773567428506652578627254007072924965783588275174553740002042530365208823640608285879091920782359530195507817190568999516143294631600741524452572880649709569535636356421139543101711898983871999429222108750685599730322052098838204181370290515158371192186555470978448290004825761046725307014790554137930528595118758005862508324629197517947423622654817672499328637025293948218163425164780979858524160384557068972029069311155206481161902430843191921924955529063829387983873213881763361105610775775185318907941449273563691908271954220595019562257050355658774499300666593691535437110139617100241840229782085729461481604900879869595447227629873446324225152250913656865661820970264877229240448127177410941033105355206104707137712649282196340010378800543188361272896153059253933497060678288323288697224284123975148403770236551169009649453415601433362577570391213439241971819563137311152832931966846995046736629864034550712341774963701284571531765657827299613804948805910631770031699454697377792687591740351693610288262165923605799071219470290490966586278009097928983711265688640924893397236170444656012673528153816654493750313900441701654213820328387142760950600134052131552253098919145700160104986200138455069475562708917315058572640229328190235370236066252880497124449487638255942975250246136295503890088822277904459801509621741547058051132404825797052066514394708755782569649760326405025466274029824295889558787900767770923775490968495517447324664136884781075989331526789673042610315732592195805761467361140332918441379678125564155114960464904683555467546845753502018387586142914711504295658141602692134661643312879282945703399481444677529750512422205025106550713331010080587237372161326169975887974826408411144592795874031591812121961309552444515285541791976546536699122962521306417061528924604608754512553546784450910952602876854233185439387756312934536046145884786131531957255626095073448376751470077509448407842699544182500846672650284143607988371892514561884729008264917441562387080314704651358917667118705523338747596816934901928734336145262901866285680060866273442453496499192362409028449790616734995835022284705953166388826921644822753819908764743370311851626046194511822162016792025065517036974770979943139578056937089709604974517698807036059821849959629721335794339350690993253537501946846990638345026942347345605503830887140008630598491363140113572938427816666859076010820022315200313816671139369618486521153859328188976578974364793154125252830432957888765968256969663773701008441258747697513555066224442614148336571079588786006130327658842928146721449461532158220810441962683477970862331802285177964389762060545077836926694673982180704966613215098977554532165982921068871942917643860428349994967969145559421112308473299019510205972614182464850052980506266166074007135555660884787662756242453076514135695146738358530851375650125276180249660071509469713224340792718095745268413027039663425612659904314036570962965575426327411401938457330253953976369521656574181065618870068813818951907301683266537947113769290182066421043512649897330364909187723843010235047872729440452651485444117557825355451326624260721102832811881205929351351556675067548280298176376595910118251749977335932824666092434591888433836165202395744074031808688416807483060451305998801826533735748462835226272387444482757193910156656687754331663476309670017146339959432352753213006205708306943817005123225926034326484603406869242626726939444926412298323760589721369947358778032564771158610595761540865309699824906300260709021295955909624778579503394356218938676367421811645291958226420969452227136101522387380415741367253927487325527448606762164260573013241340781289175160834458575489837332230082721030977501620701028148407259665891986785655385000668907730505615448658967712343722529602740175554952562983576860224597735321253610909259995601510314137709202531510522530780427523002365472335529547235372034409788976154913554611489611437930781209967302603936293368889127829068253230788543307468439543685143080494540917348575836652130313866228383223366039687018095780007866985002241958244798490225101835025497337717811967312642714261112050074609547221710277219666921839245091799733406555231701126654070947617782373319539060486207007052518726323528123945874833830784655921934127637602697315566946970910520923004251813788765654819407197054439845328565801132551426538105183470012039391320132362076349761381078907871604532688146226180185893436201657893882772279451182015980123437831080050724239010225672328334370776409471603613131106532230289030285253233227625473203135573942121826442500608676457852485070191227904059646229684043637062943860543331392380786353029849937391534728317957343594823745268572372004155846802344468379260314635867696222247484356055114514127987209450897983047765615331112532051496845578575524502788368524007065881103413612105701152986938144556918393597241572158725903501445761109396691578463792393460842698126394165276078164541361693421030631138113209150362334067183398383543827434321818700776871850556418393862724828263843137302775883752825736566700687194705853936513002193193904542530377768904984287178978775080575707090420303449257317197797962871369794457225583257958426613358684249514102976849454691104062187964023860530485149881332197909041589795848145694687719764086889957946577609029393171970706615832032035301557582512429726590983185343399721517057557322712464437447036148332435696140563833593319591634386555409968641057239522510559082899936963657302005920900646445101347144376017828290782485876500878414045397055090536534224212191112452834267519496067971713908832181759406849207250846900090611726133634466239826227150777048214706914889067623428170107738030677438993166354914677480797945640544696332171459555750794886225595417631069516955200134733764184223407952044200425755100567821777639180106482017663908612299171314591253062548644046058462359496631580867974852689396724214489711518514307803865440843011511258609605492149637821947615740149312666357540158798455485769459265444016368100664460274714796557167008888628691311952849403042919791396436657857473029080145357342524518438006463552210964343243230163979874786642639779780995463594246946444868441131157790918448258170501585928514822267368217381710160967632463893095809298102060306027380959858465662536204995825890280967751610387031513306405500879172560751650201130889985731585650633831326949419175814539512722413194903611908493992337191683611553964968137939430243971629670696718386145317918304307495514472864355302127622972821593793230856516129482410375325747636520994339663638521179314282285684548815038376959275887915648014819142198268602343144089653514560108369917124354435340200600256469338384134561617955412622644823957208642522651221212285578911884336012292740884537220733568850961804241884408273547868385231597920855945150024192254652069797843382383167812607866895545352479606418464795926284585695149147742992827337990150132751014295217673059039736068982658557491799728553444671145578983188311529001414087534230677242034102987306694060921467957597863615412915371252141186601377462918967787928515605975988406462095371343540689841983683867377050670154179794522699392319765716367136949908695580297423002742415942736260819956383978764572361159809977432200443611077118497193193584540277147055167362016630169332944934789736486380994963897817310412598947364478500515481172540408446958023313513750452479001106819537294715238494731262800711635453515927405011594384519582618094104553204218807391949542547884122694556734605703704340172948234763050467066863950704691126507007929290172295722838295203244075580223562538419879670522815555090565262690673149570757712676067165245669644481795961563188200963391296964886799661065663516469100635958635658171768836157350196797305467624781961949696923102184013127116097318840270997355983916455482500364992618252764940185739568333491176562025731489219969112589995087103147670001022232501401216356985161286651077119871929885320496041528465370785900991995505620507711444027518164371133519227677255572990384742140882231661448529104749827079323710298747007451833059064545485137480798356321394044931251267069037166259653996028543348436906826069125908723928709510447446227755711032313547631050967466797696488000561612421171375318221504301332394399658704141772564844763043844915130165623898817782367306584145584500492062100704019202989193058072461928003506728547649173538639712551944058269685587502848708634179277515588637671205126181842886940665458233735683813162642738135974795975031041157060486982690410248848213795334380352694533830028019885650854977956634806029383073377235965087004720873225722681850772868846966329093143391392767308805836684840335444459369535978823913332620829669628682178214559525273010555224294578632095017835427148568864214576900388371744146892713020285960347936845649385714752818822065396809556009182645050927207791828236163232959055658839418192963649789695295313139107658266931216864816303138784911981598167962225182436798544597808866342003351504824304423705424040239059449057796723251964663355025253179287586867341497569833786226414887254944182306555919122072333949311614653788231595961651727646343838426283061298161571842753949394678680080417558079152096390853183371964638055199856917513864614743165412335618315711246760344515544743282499710306348748262947030993961645930247222194163887851228024654064307147370636918963491372715648299226446311572213925217405960746375670349725999045825224040112428982546386394036812882023488469984455877813649947465095561266005949478346860520038076839193923722071010421599788539152847837763903811885693193409026216882683095461427548700393390861414872828036768281255860973139046503184439535415232212225066000074923884874401744707024985791230308872940020346551589425535765764063116852334645418971227047651739450989491805753723668888434410581624647690557667126454548596327752301515655938402497623429528453082096432030721832897931140653095312307216786638039171936838693081864441655656168927130225247028039148803089651104333149212493582676300815181503003619868493832062071231834310533370763100442161873845136805000291894341287641433207316211822362065444280932122034183155776353620810876829699845907326618269490893579595262320509123361157933736214893674355281956413880506491264204540486803933841173003777309729044052182963189397276540522558552124853607561096523843963377542573357183599550344485372674694837152273432804340677066441145576726525096195772604922821614631462136521391226272698302075685889928038216349297875589861814902771622871595915215044989299821692471168162106577765262577573663743207756495368207217994113187496167710628670293864864538706220948148429546869058433425310722584306171286126355345623308194395661858572905769185125614409164650291468824025614098978384869546739579504731859799627449941791736757897088159354806107443130779601850233825256185324628705070107542084907300707962204702089968789736548625128529064963978963616205296266567231597724218069093782722077998880045920441621344197245949317626700378052715201991777184828268061569586050306221729505415256435749207733686568438354614471191516137896985358332403841310981310413850009216158092573716676983609182045582490593261275219290943175908697752345386979990569114797936584427152987583103939462520647977395208178423953026895595124128584757658228054730844699006052731882759856729709850127215284906808348066159130193429851088047363220296930317426454909231155211303991308750410065722308280925399580637477958930715312129853945832963577930785175644157346975112276203965797904190196953942791913404057289826555646585486734481074117862912604946777224508905714925458709902718835210375508349389150745282933613741441477063180791299811981174595571298770206690740331168088281955000391658750987768829090506691143275174031054441461572990072848151274210071025371831958866188075327673727740081107921386848244734216156646403979907953481704246443643978155386238086563949029938697773620324720410391095416492099328876115778748254452005958849029417416441570476825885250418342764074113084279714435354009460809317867725459258219495903619556056996119546458605842727430942966921849122105145778205601240983885134584542963041188524569701032977351613917661990216562065217002714288124296503937926150047833883720000240673046787033543542940308523646228047075623368940954829467982190801882816420436632932787613518748938389198720568722213656090003736119685337193616121536741521762086909752436856812118685183300422169658780539503492494197484112311909204486868363426333069373294589065485462806240117251251297721063268811015980969596618133524322242544774677229344123740240282843825240852067854515522682997970371012992329439858357410679177218868416826961258526669158861277831370227214939471946522455112604636950471721779396700481654178018068974568512582841851185869384208879508106544130440400381672728338014302296122724469789215431170434582146982927525130918566908844613917278968032906315302428346783572149297936305781480320319085861897926401948254805448332827850466895522216340906110555049467345923587758904423767680545936643521153748289423712924510414671075387365420878043831970214596837464911889714824397616350190317254919941679721583947765999164934561644775793630066941505289068154640717803674186286660399284548351589748551939583387277592899496736194550846587093217827218700194940812539592110524039325707645244698880303960956879930659109888908944569450982057614102173793706565865783043197314718120378443094721510298395064324986246664663318627319534630698184511003305836301270724054428528824677228813539383225819331354616780100033898081004379662795070478483247695701657552114264063066997410178041238469881997788855053342570815527298192571299517385501569632382434925267394750004776120058304493833802910071479947736320964716153826329050038437032619147601405485145742607573625670933043312682327476884100634435851279050697515579224938538446326597743602616808989497605600934539519218720563414333376148324545743696871874972686893647399477778323510893645002353623840904746277956098176302320301246589613859843005082837123147702727822583162755410296437037960672234883197303392329860318030528438450329463023517802660283028658475518864176373274108681879048446615426217532730280919636768046835814905418655172277490259744961467479728009234163475333006576830456473602612776816656560222331073513783074689528980436708211121345041267596788333148377733292278492392707152079785054507397418167829672430472856145117887364800031334818447973582630909580424313726162836602949196017458227473462917751542494741479585709097529680744876601755925663060690052858400247813053958840480046305610037383192282668763365433746797006050357471384906969577871571575084476647093934259479925057133770027956544124003767741301166125585924950385590367470460210824954045798567356761821023685548161633154697205551305447976892189015883125741375942007328863424105453440516224598137164328433395916255676224102982533012293593447827842558179772126277794787746598087129287170554228821702904790444057551868518920810698502881683515667550852809873061048319416836086336339361055495379098678795742496792340129921255080765930500668988992314542806910461661845231603379115623006766095966044380984816197310076595748921541872315946730454312218226442049127559117245015907421576465427094668439390107429798936124296020475305293984151711214225382470397045219792146390639265447451591531665767108672855437734406749888327932279872143495596920738486238821464482069360845386721144802996885740530513364515426727687703542294654085783742607918209927413535368112494161771797669076246330797356811327848824890033944393778089510280067319434190320581609809499877619082516060384852067328479680043139715283179792485727382429808545742747819067968594165340894842336298046442706751766913857601362053340192458419935920572297940017142829311813003062620882089820001577414852281607093845599760020322058489525969700987808986930614321520312839466479137399200801188172499663988005477244047354930186609046140449005049869707318699139800515250366507865130408622377641705995382348810882372509779048363855815099567728050911185808474242746207594860016195183259911540966053379417208148586866762155692760501920069236578859155627003831885212176643228212570125944528350781864717197362280073202890217072932294756145876239711376458562653071583554814887758080146304249393405142105618898294236910162031756752417612211463241085128711047540830735289857016233090217153406110782255927467619959533610954547131864352040174066568979756766429373297125500023685376676850044654324027111227253427578000198784491245794773739193938175915821242962164098506948379977952670560904073038001410537054207419565549044027123359718536507350050804042284276850752187839941535302773516188321491545470199821072133988791229933709101199432903994178974865690056343554878013188851482881342704624150002818447058276300199969323685045653001270516894840799564326225845222786354501357333182461617597074060664795731144561293880134734296058752672900889984875936997483187034699414819520816889251824757485609548291058705845152649304809024966545944309668692281263977421729407210875145267286753682222870227829893195261099684353646219465530694665749819506790268837037667059722207825306579712838714439158575199214944027343916315621430217035311673636651808887744989854095236418845492484698420180191486555726566826580710897300725347840327802281123043079383319764303065004688962399550187736832521268782507803856446956314355272917199749517419779829963942110382379493018929211389554037545433474419603082974366436079396105636028566174979954040038738477858047197505930497508694875425543166496117863342271592443188307496662669859899281012184675997125148745582956975936661291563314032492496695126506393570937010089247480067735112772351119505039166680369479459876555364041481825100936740240829164979824470700154701469925538363571546084088678202939068321609895027177484075502638008905141307949097674090141657646995245886625761922135664196957292774862416038219839063883320885364159092283760850665373947522337898791157011686291099550917721516452764321419556104623030854166625120709686282828569382634115865904631127015493416581736628627245489730414959481701519601150116616235831382595133226369157959342837804108775784299840841753215926971046020971300246025638886043952457481313778746227591384276445691614271023709438264509094727383533712750135074051385600572323020611448004343735752767869048398906002504811512718929710018350612899597557370331485310828889725383644650965776560867575990913511176178382778104865136079752371230479509707225189689207520087694099227162339401212271383330417432870658100456767160108150433315757199192570575639718116387672343127479910901841934784632329933783000166976578402698514490702800515850971618426635399270935999681157190723923609889162908552143319420060718666571188346586650406912167473330592990096981016770937918909502751679016791928719640856911050865736027342342222843943282485449338817142203362654888177902019293773107863314989279773942089396657884119838372150294688203958435453013488087996985936468076708732175096139616636877859378736897543957044688004104420514529017507745602736890687461448597567164000904663735474340036751015177791720790903771321481206377103613745806394408312253222761570433384204974302015187069003737823452335506954257415275558678314011790206015125091324821508152011526177954036677652070643715109899935445985903707635443548708774782533361886530930167124997955545807285415442444777441982644908337217868841363999097171863161533494779263780530707173152686683652933465935012957432664459086432219288729467661948211216465010076176818672879262769048759805463002084370916526571397949321766233301906943625306014901592109092864303826066450273279686747414678741764732603417930684892797984731308191257834738950085368894773809899301518103921152616708362292688455936536270415974075486515058905328893966350232648884016303682229598720215709350225251039534414653123263847210230799276064030932654186102309678994511073549048768245521319552316579799764116005652810445868974477120469711996061694934109898368567143352714748068410862937380611303829422333486939273689796024471404181840824807515874226187418677909302302104226673519044110324625053196077826533220873415718427017386053642244058196540612838729880601514228769820151535824519367143460636558859834457119949850318219670130801854720782544213172756168408910863796933233145698397210792177956928866310868165853255834712306132347542975449410214832084521995451306918111100433587081994483971536718257995855427739304722950098820690094606331485833482921614888432883881077744508526319182536205261565218648594045401909825303439846866500701657070903604454120487035695341558751524277433577095055169461343517474503728565320546859063818698889186689113527846958761742551877849755980298929228308219785642827893111282318077433239415482316163988147201670497565423196227762421636042192096024771961672417240608124232400383625452094896768609315722447441070012919543435082418147232672517078085185320051550211686127928278733576227937848630770961880305767996368657790504279719235622899253825689627918014274112118275475444325976652461594327340170066771832093034227602191274613213888287064596670761995072333784970855516065307433729154094535570688603802630535617507177961090235912326237197895507835695413770172811675391508184364443232441136651481332666830634235928701171847496331617080897150636376095802472613638922453218792444079275066842278000634733509394480174559782678532430427016645388450744861719658623380909819635013065696875555454178245157128363277369426605092912291643805247800309005126574788589660497074224428523200892534155847556311850486538465159506256984005052356976912360156986587367502412920605226573980708106547820590695657922255180174741512039481492877967324468043367652897768741996663860872705942808692265055142013307783158817206391032455840037181274470247987332467672286351452628506013476406358923135007003845361522062702275388788215258735469377426698907074299842387846536682979332348501554787416384215593843618463941144240968660195503575446922797880933134418164917719626017785176460467935965574152090263106749739328305054236881815510192200543048862060422724499078542942287085062383631045501981172551150616560919308763380416117482990667348077511403125166369925657364166049821975713307316805040972665370796211027036535918894758391408398094392703899205616944735958178218653611946238144979252317925769036296456476676575583053545799080930368610281948653728391433749799351761824812228254308452663154116461160884916911308037133961043925688136972082535598054366006640507127607343734492278034015060797439200816065962439937474976248218686862124597865829619885048419299853922159632252740072943822322873765023756414209283824633736535662897532450711584594229153144253665875845411264185233210397198965253909735413215644012720863098608837706330133532392494195186898383393119307318097008974176667327941023209687375072261901287460561109305750208840009084534919236886861622494401734981560267031633847553940378597890366987367695767993634853914264722357182509374272907525132186182671166731879466660027169599542577590907915098275824899671455434571160943028497501241426158303238138460768724136914933631093027114616816824204869598452612331325415916915638073774334250669938574629554798013155299299927167355969299095986933208044730891038639389597258855165797392970648370934647258030146974686266071090660938175985047901783280726422129844559909698779727653478007814037495801117857342881664140099836968168109454492733763185524321367348571403259983222342955232892714797463721118810892615533948874589653115444423967880052304923812149081074141074986581184186969048013684640557089884527377778846109582646675410463184766998708295425816310735071923162140639516578402314833066161692846972418314784942704047001092171398718274773895502103791583390393106915340271060494887189468536951846967866955444985350782798747361758629169643683253051826755613002349985657479606869740355901416891750686108902162745968405894046527744802641371663243905462677064603183235324108721552512812123651712856440423172883515100932367943162330537311590116040490228607821457432013148375051444013447641068592741379326772306328712665194546112484304302038665380080872865558521401448252227304915141940802021362644182614280704624039446447886431463151359049556496034414692076704350359552452663035620376001255004563123578987594036709374357954609409276316690007768299533352673403932319993200342021940644099770215255719541185624580436191570844586860236261543173848136442101011756054405067554208264931969428056528496239376134092800047180076714149668475375973444563877746810837289104639505329823239409896339212432377923123321449608428040289401931315295531217011488843544892466853502881757880251506779475576786042560810369866773074507639638240905426969472850016464336557378115798920693961195319418430691314361426428487005266212159808535791862296212003774925193937641038371202759908767658422826494441894192676929902769585741359864342083280225667157343667295996734442616977988626324819716203846316665875971475557274978886308598660362516074729427302174952905016948544105906881851156871050319821500946371193967753376993742447871005431397697389413596668259195966003461366230222390588255505704730063932808023255618142556498746936046154978200796910901282746465267265053644276817427000942487561026073405166031777762505491514127597331077841945217200716561083343919184611837720114523212356773253611521930256022927302705235566592329113066969059011564058991687656565464321826722208715875813186064329147245968039307061777616670871001392513833468455730028271689021719335695643264625144174122878375758053366086747871120815643662332884677880380536235468223132389683309445473592203237542769296507717811505617540147640777938637531471323200416130730182262937803029987072800564439713910311168693045001579216286606675028768088010780612024464292131759679893224683663734920909844775116843810966037972622736098402477768395264956166107582771039518326396015908168646146779200510957695168651385009230472685948649934544728963847600893963288274533653771799799967955659070622095660741862098462432672354439161079270079948161629291996795419046934816774563363838378443538543578583048635300928756990571676780479103262166099823475059580229438086281706516907090157238507399952241730268087353003665535581114072961836822466092829880126340718490805309693778580035106756908562094895207001374080759536899061675106278139110028284307125201935079286619142488720573415339721207698731062342528166057558036381962684872697824588963009663135732754989878187061306814594992275097777832431311343254616002722842133395201533885495471509300468106790995434541959717969948145362401318968277779456024437893333750903539266835521108925647129751888638026578644853763164236092609097155679053019653036177146034984416256973533775266346581414971315618348806276087163936595634233288832666162509000855534848772598787445959602949610807711084372742798519108810424708029748735568960937145978561890422196532964521846603160149113613813313856995318204559839645749260982833029936309753089958410353166294829282389158498929436185145955350363244015384604201790969517855617760474587107192000428003431333958306398413009416423813807911664783467048285268900649887820771970033388632822967440122061310072468896265591335711662680579431694907770904118587263251094221556948967054537511416787719112010906763865993965893638518723569207123878577800286486850147080211785456668235992515002833907035243779969449741124735975373803610932373486109284118305976592086574225290633032507556614147354498349507648283886804833379176382528961774373859808785480524918160994703811467195800979529009665669179676907572182575405450647854989670889884823253225638055512662236237542701161979837521405060379709307439579493064381811696164367626014476228382784152112712442005685310688753961071032369983600394487399185745187325668402916233976758730511244378308132322799320736190410143737905829699361061896013603034644459126392568987261981911937811363394444680099760953056018446835121954622568979933319323266561283260555728281358942731634132068749116709365000127672628698011491343617038262864912511257964907376878346885493049692193869161439102397603917208735407130293678015141233385608106320058886322722503565513465995217773500198340958212141723425036064340925988518434301003751242035618352663013238033884116400608481423340550508190883246302445251711652135994041143618860964803973154541608551085721623760086291400010965642968247928024210774215133719558030808200344598296699620901541475666472147518711716394345387912856367153643831458830237877992468595094091604519805697692589220613089631229265099929371353626243522291241239485555821649174191093299190471103892826270598486622460730265034621538560341449291944803473621604924941827621902802385032495430961629636971358068340035758867415231154739041801217718251248040137063436602448864205674595191339361718971925225368951747859653932589209187251579465308687412230816716278077296211616078502646449279928176123984515304053488100929384263977977752673440911247187768798436923041070853435233882457188991844155458968353383966939951482887065060499456991271653050847769467128838098921451434949283859140505624768267673980280776733849389117437956877985136364809769531775803574731271706625485873792553351726380526023070575206936580363161103793522631468284581483181847312055162010433536497538631744327019645109074241047152349597829803500477927555065274631456577500484107801739821515864262533719185914361277666852445444785451858112817287558532520675878287816183185729206414485958474540875927655998743630691195916877326089975330640059019178876954533276684781156356675605373688858581476286799595999556510246388949044078253826398387171594360559268836513493191265461464072927413057700340901718953647568337302309769649272183737836884609774996846598327260538098399416787854090608837636114801130671617533153772682681167893670498685440498797540396523122680525375595045297911383405312296124027419217745743332174200343005693565829484902367476454394973739592728221951542589398198555383973719464574404829434149519665348668484864837820907644292760242223933771477885222745328834361834092463896420348135063676109852097420159827851326632888651236683636895129760774512735988783272380848152503325942760715560100816655993188872292155237329505708464005403148028635525103924427862365239450054883005080639091565806067365689490721796956100503073391996958882959350361649137461737412056463382393379363972723606883601194404040668095838705593825401083515105736018595085465276967768307775076907686478318878673764239948720119613331588349691429987318609757969852795271041280433730483003504916906792193658749391961356198788022211978729913897628441714105062138490166895112105467796501414684592764193318762481417073610665987873130354919496863847272538597332322130929339447582816521353551499937325203813296619565833315528399524712735726369440144642294432689415643812424657938458200106398329636898648511517153261636975046260668146891868325092605664596783655064059365503890668926571346617189635201993680514966358988622965413964051006420793955603476193790849230647335266708695983229708844179957270202888823472675802096061266221063644475715765362382753963658099296580599793605282958480597398862905852937480516532240246147818218335217041222649632248331957233007542545884567900274585714488707851764259591640469490777519843640044308816914743514573205402987016639914951254135864586554931309200171962488734138600084398793542277070197252024507103248857235905253747440345267993528328595828193091677219598054878656959264025034547257649942283434798523763611555724381808242892375816605751175403944855758529921778264581140727753132896221494651524037633463259561531091708589982903132000620763290796721119538823778269778931460258316725471543931969855281108283350593453322470729761721834777194186483053126239490074995909169569335944073843827920594170687841260055250384873311456126572847732878631289707070654548223645907133330451054094939697318372874821883430939959823590340483685585148981434202940782993739337571480997555895608310035157232779370378937448259543944284076140878918506492863523416601506681680176387757053330432073098000166807406199095909888421377785049706370601472232691869082402731404258457707601026485015230420864654586402383256240823034082947391791011274386259711611807806724282343458114542536922105375841050143942969914533427984908109002988665053189483699922754184550435698778257268902741467695505680711897232657825914644618505147226626806405567292795043547447843344447992775103064114069846656955272979304635580544290405386422044463181140658946481543059176450804201899944570558617821963344267135475284179248581557470092533785310734484618925853392164366019753563082890967090623965036569874185545963042443456677971524483436147230943887155469054673316361065280360815079515398897893365284955495102877475896757250460763041065347115279311074086640755740414577750110949584418192489065378017772065489225111323175972962849171408886882477188315700501251198797284276624595581023157868691470039035322015660997997202587452118393558925104789412074044664932988012218150382063191642057017644905614823348199331344460453380372562523195747543173364870843689644318513043005495203069706248214940319146667766275898262434972184081668058551391694265796409226153378040573681013389346098330982083138390233199835216312387310361871896683485154723499965505883306623449231104510045905808469536378233762684172716332271070111647116972595092960576213836415310462766736306150012948710031268879915410400898390011481101731726014544244269011535782258922313875382655876681783886568265258235718164737585637389227261588234343482761349480979111764217938647895591001134113138476536462315101739692955338506885928583395365547081155130606631351998332400593711190439325841545309978163844099946815233816761997721674844435909220331999542940666155068191511258953349649082394091420654086540955372016666430790235410836631129869987193067470702393226922864050409396351574197882223278871960530755319397325246429828906870013054646347608180500313854701981659597562780512168289311080051893221847864867255348180539835054563114171385626022671012600237095030826877959071382522350295590678886617036792950198295986395153725167986262707203474870713588415746521320469170849707571961293734284919718838768845220585822854748445862000674375373107334730606131017579663582489755263515455155400418499322718981471811545090177262827839120512370624187591555049543780977287963787447100176396108953793757261919762760553139138491220259650790071953853106228718884731830907994032885685367869189508801780111715792410679823097651736264125613401174109570166408559492921731621914328077327275772350756278387150844039418626959664442431987833049283305321946269795679642177827947779518142274805160987521574685286660419136623855064277376200837778104617752748731181108898307227245560120421928239125098300765563609286568556427677281143402445221711497923281426559857716064930383940865388272271656698037807747535204638924146113836075068499607456104865561145734059472290491593505687703580286647493128538238391667218466989849896052406086783453575404756072130014765231010743129719365203755661735301100544667930354596884355997440838010541388011450294889181588343743648783057389674060965763442333836857065184363620373338905713121354273018211403401180124188887336256070244543690375956747765171993877973230086754569549185293994524961172096989783889350873586553546443328487791543236626175442584441084519150153882031419381165673029943794806277128154777655022788272170338773612962190114229876843962911230699486579252382140184168714855645924994050357425145154626322497323373075246381241310103150675208602297396950776996112940411553745511630932516789669175097379773311280394820403184938655701608636468001146942378159477270287713013964433070816419867715407792533213585727437171033088275848388749620675378185347977321129478923806711117489529884089654592675758220914917606004255466372197291172048915451442396298043747769030825499375962941915276863576222582962610857879103129123848030322646885798015131030433953841431158928940002589266860890547391391621981917000578757011769106218624966747752462134325178416943257084382612818043844548092528539182033842046148039763031349247540652502611943730081628853471018735305275537362137271136775604239534980980730376045964685346665628244125491186419105605211555106134906759457637423809934232307922524984215867445909710436540880074355304283638489796923646674054726005758263676535593260167384834244782070746629183388049473885074521722698937217538095430751594689465785461552673426142459403116660635423718716193683085111470332851670944686820253477678368437565599198687992718274628723542354246231253955567984391412123422445180928610081881497440827770924512090793173554991373508349008528028349400381194307594264070575954944775625597964693982734882187405801741195470330048814802024597341815601174341055903240655854796401165329395511198842760984123902404267835106922705924127118696802656900629906412710366405985068249379977965029402060975600752150026313862654671556223531014395526911462611059555263258358941152417781657080531747315986887725020096833838476333184130652830633434207178850995446220766063498759133944852866887192804546973243336794069121095215028462358201207980688259849305169176948743929010961131975078200204627336885259710642832144956822078430319509230663528822193822539942102073019883668566610733958534967495909747298217976564968287477931331777855021005428140359852711461167954365334760091582290532598237012818296449504715186773798482926449280318858962417887781604802432623821468343672075146158527821992137284043230388912997987405255890071061696009762901590385279908682812583910353458597689592097899904228933651311657289075146643704659809827191955177946549619826938853823726433904768214235771944105502293923584623898060816751617759623650564684009865292109107993333812755334827940844233748190767915123056835137805452930924050468975382353869498536933952474151085218257660793027895130174677878711587977516998826852155701484956174445525453437034085221066788998453716198619498534173692654722928358296193486421402035154798293042607840730631704574132285607836734791004429267339007081671965909767147592798255038599697355035630078793142380953481719742578843544349358026319712521139926040631004285372886826652599423137087197446691486568250284871023385759422016028302840367304241396024540655515891411507109641903721278530091268580769678219371036641930333567681051152248759154945304983693101119581301029602940128352800735879056530290249423229330614472792030640020047405501743579659399593454216847654033429686767263188663642903741995988306137411989845975845694144491622014023962304680430019734142006077146471623400381518877759205348988862733089986553996364438702810024315757309307797189487554265529011367722464453161206029319524253399848929557964137008417748424800875255959785947321737568666618562954372169336788213334032660802862943160804498419564340828616186836210575023230932880116071650665303086042435630076974918330104861766725880242191336530923931658957267731037455875164481145157676627997099705444265249134243105634317690995321447504966490975761889112700670006643424947451079133965510171393626688912967393490514166406516705354770944668919496514112453880513299126571756552970011127363728979639784574392999245567541263376121292625233366780278868902200014661871953701587350059976425413607209371143739245111731571302511159541292113168812108768418644503970252517424097678516852316208101177440568183128267299749856195215074893350153727735738566993355422948497317037959357210540946094317229164247259807464216215462942978194592361798054239399458542629734443416414959357402602106311989931994713942281572616668164683038807007504544794260983546867392615159250844513850198867588767059309005787164557556066599599139277363296147450620437773571719941233115746812733429695276147969562691941756418053640898261415560321950205771190774077513507319213757218077004391880533648653209190112480752881806750946795257905524236364951746964761943340701236127089448451462502569576101128035065534511947361477549370565820108636741231636922484788652156707045545497886988409809094634173325036878993527302970777026685534217142870329994014207989706677838208294359614135380919010075336760120736497034953375103443406605851074382100968998813084812572655521436039840131105255397861898454447374699750353095284380835125148402833049948206951516679267914730322449377732617535687051464266612296986924736868698608086486986559865340322428421623012595634757838303251367942873593073489348147049869570915983590569402527852376835338798948132400617715047883031583195360865591694912511743136737039855086954047945218875098616905904217232450665610221209419992867652720568176585000070744500000909994493530383008405766707509843510725657625412206099875207030772466301375610092493556879049597717337931984972331558499861785237657538717007474188462447660389104785895848799206579599101748664816663410122170143744206833496900815078195864433938471591393597198301534986544609856573494005494598873154900836261693116258942531018243886982615185980112233036488559714711563075064793125522775200955298558592584062458650359651152026807959731082593914666253416760315553737077522542282889134849425242759764157300774795418090831140466570590169253590613223914920362977538173394278463275026195396515187567547195926513418769914583864656514205587386763818795299784720697487385619481188163206053797498558861660202894575510153627614637756059968788789380689165797680305771351205817886326946098799199652262094513108111254793968304221444778493478171484604018144534614240427622003899318438228969891618476605687610115882718880808823608819454602000304918957508033126785801399964090091354151548678320594166313555154976073406760678173643183439058672420556526761154731250491018105011133291987455962754834984249562137497787829722717659093322454368404697190807125723267880436757240084447905577268028659933592927839339174049717181192957940509101819673690209480532137283726509787115566744726864274312931706957185365192817514534109753514382828137807233683654967359890120530070450086674638633268076104137639462244888058352206264632213021472017067462124771689216045430325578888773505371437415971167137233194854232691527958391725872639667966125582693037892282885416947253974503109094154906044214531462000091304513847173781647489607810979394097080946695631614311963560523344044581303104426867779130946514396537077204325034965194490689722510079065411415697603259131925198391812332000882764372673320249034513359436769961138185948117622135610015423978327206666173244904177983713004191632797631607676967375147732011595362408874931619591201244641259239137120321761261535625014969824447978089188509655950433085272207282734871355070396740248570203824594155348899306132639081662383334322178015657269877628288531871054858275291423386998110029763182944886268879158880563568562271487758055883681348290909593615567549465131726872910695352784574286271437596830084953162164430731119084836916260311665625973663502942369637671667072460290129498978494450200014428535623859750113312024603787246407650485577549742231685622252016529806286150956929619974548164022342066948091745113710050151521328465429422680863020696885470202727662590775344844086349986428951005129844183600891207987217836158223637756609885177754843713495017669782294554156495048753045105157093999838667309117109617901718276913451038844972417336506552299140208584138379671797190112170356502295469549241869006340958424646515993312623283713102690553047092156847110831203239851084922619559096581528497523233732088780392722198939477741191888257445531983826579041941754498248569238609299018697832644162378437267040391220054059509965270004516986602404046096333136444505769562725982238579591149090396893553923702591335089002825069683840811684465522696591586949605203667369193042187566815482454398352099377067757836683279782198867058368615983522331913778526034058582506785499552057018592894167352314279039686957074112556345825536459388127158924204182517858223247295075733818989798368686114357348687646981091436612661626185228278692701922147434700879472493814995017092139864474571605148285992138684948271682066852123817311848100454623012927730617910152359044099964749030121458852827478099120010600725657507854023287942256106360793106707573294341528266299958291421708944147881189120463398455732829768305314724406442776490260479133360786450898580415450335112000774606313654206670913836605591351414708491474631774363995662347789401019048234197167281472827574211218181388059544350942884700645850313298672368478964364002440394056179323126759081163530855285902577627401074970951505768345562018745024974810714948799522379114632414161299238153360121581009409580977241472531196695528076470490472098702374799144720137496843686506564827055508910088093161445816967572074223021137630878933587150653455110314183544892842935480391744982799151009996825849392088975386174494218510740390148048068926957695306029458562076558701689294058434094752351081106605219308426613975273156655548904197231342381580256974806697780458539875147812469339938728427285418007754951212882739405152408070653665335400762647986978316011515286013635874427003585887638404176739286044145100570116034492838719157093788909267834398670373309830882405363968510235506016437859638859431863730803528063126221774855088763398028778571876216648542121639717399441736476608686987242709407004242890815635297119342492923046365967644200403591081290951739486913296354326290319299992150227826143100706302531833293068636463362861947523175913955607051688620819828065244311754878537856825901389857739141973566169674015309552818925468279501142421331316976231389182169088552413438650060463573965225880685399182174478642678950018484267610308727378111232693597765427207893320489012251919822096275087235646645393789680700535649266395373647410682761948220133356707118567065675671579338434881858992498875656493562842416234057025235367691358247670000747891830931565970542195196651988607537923109753637530090648169415971129543435499484233348182356254400043511148859338033643488877208773973084902520591405607441037830227439771040919541041333894262353716876488254600440969349231702772511364806007398888636730526265916290475483492574760271528975512923082486600466747171434503927542354332250291207036926336669040902394542217590108410965305294613168789628572114120819311203852418625562776016464510298130248812272474818792223434180482727102580755653040070963327372547247384962955455612049416529166384243253292307259060400273081047848332155545525903420397035010531766781638581141944562239049940804042495666275282062361102355370201790790377866435736739816983527151371582465405005465695364267492790936158520393145639903140354527426047430989334670184837526241786157709775658185754569773811061212830178598391740081966488119470983968480155225439878171771854889774576766969796500783394583024125458439660198223897686183063215093641052128625516730578239765812650564736774049205487185902679802836774859677849101312126875247966616774894665105000154613086673883577509963108312219442806362994726720785188121966733954202439019981929588598510318641315870514539849856672971483053862546130144881589668433156727733251716569694543201564740154879408339245356782748506143955282445952667109132538488904468149281131533225091364531381242456964326163123394181444397981868711631639962057510876316320296477083234585806284869138043097190348860322033202729854044926894590443410014588910685368025561830743797840094820058938278508840917278405392519164305894351875990453209319533756356411046221614469422409340616659623381942692277207205131775026458374376258389039069725627325356163039326018832173378066824615276230979194848905408807453555774635897880187554992919007158095449654055681914647349059399125216706902203417120206259365954904878872853954062110427985932654703954906041903781993531123061330270501439851717237767453010450663235763419189477424400564569445099062007307004462922034184386927697289337370948644670977490106677895396150169246841999178437001214668912113109948298590081139671573641509303647732902967405298613759463655179203552167760272418539598212502414353627982058667336563684413738041270278204860580431579767882392104760838838669705325120878914638887903124311106068481318182731339566462282901536853148091484741650834827745994939353686610411065706322700018113706271017631974651345158990931935166840088733807597219455026897353564648347739269844541474520312006754576362172685260074994432093518893048895725956607127950029407746598382068779815336504131765564229086781494235785908320129835276660086245824080539745998159300724874459939212640111749688170243804542878518467316440114481414101256212732234777098312226502189009532293420260357075086607441695982094006552185303836824545344364950128926047459100243318869850543002088722019471097635030685084261620713038418500092930329188380547266973203701881474183161028427694617699364380072413400492895395580241544337888062779958837897513393284597365810506870077390576127763492015465016691974854641994122274395655821230244695107641839851583340486438663489479636815840205850049248668010921114355416267550274758304006026430083946926840104127853588591285135254411831853512751473460388073622089079528020665513654356392273704981727518165287246803287178415547147082662075849681256757376114907042826543654678298125060044715046749114179970594149400300742826361239062449825623476191999387503577021283610921052206165015662389513972038089060637166566742223770632344693717767317280055495635563546873093558755163401817947108085816150582998496623943161616867092476364557755821567425324393175378065029497250618113164048811297238320111259035682317810854042340047853228403998838867202215928332360664835672582067799438563442113163960963804729796129395988028893471777558100648822227818100308575179311813933735881126663526877526999432208474159643017461711437769769065003047141968989589360068105950876786549590478994556277250182008298411424510392653533996924330703312710766307460280287919846311378667640981031096172270730556778215846362882074220442805903135148969090132311693579950768862187246439661305356779981722658886485042261043940766950580633755020638688585172610845065939837457711982475680258120609304985074590777413376696997938905114055670024604492916492507865603643036720845119308109639127480000361462778446517643289049261814419895993614021799129092846286989638420356021365542312816327890922232524045779479206156685109463051265659615110871423549125499365919229580045317756549012816501569004342571542246337294117521919575127426617466605924470116142188469265760302250803702097992620103792769026463873503825268962905719378337516182355036241891341051525905371421167989792602600615805419581991341178495554628167191678070640802976222775387921639818671333641379103835291382664570527408190240964960179959701004778304994609124319239952654401959551275615901330441168225274801714761152364707950735567857354646607595615383888170380516723380509686085582922678969144570311188855929790257200671345357922797366569901824746713219532393755654868233318783780528755129258457174517717858122743421520164191643673158366953196813565598438449827002720810041940883122457803009330489606540641455066976434085754884969072058111098484145143238091465008857354867540376688073611519458103807898725043952049046893982625307419572838526895365786260322855664916318523466189711234177856569783325388240978875115284505115806279848767712264158935794772132159277175030652874831073744439107079032701464845116188083349012624419136487862543205237615209242258607341612100872436964191743267722233845316881138659775046907044430762852650539542142351673989841369402432874200872280637861889187262830752458868943719846313730446437317779916419124298358237908424569960127434360728772835217881191925528696831022748732905599849682632456297677899473292314089011107594885274693510677713232581866842111023253654968176079151704669541845496017692132679373779526185847390592418773526541080636203189295917964608588231408012597425143419039500968303041243283504555681632416945600591974049919495342634103234219105690654041479183025595858817817759093774326866510983990675046952491683197633991705703955982784972749451797186183118435033822621120840408166684443977435267244787893221624342752682024953849791989305555642047403632491680926950358917211479576321815819587016850130914170656951916868686317355799083056368441134708446892824298857039146585514034722579890717631759600321710860948375253064213407768571045597682584828583554634550862370718079833782501869395607287527291674051068916725783320572540358150264500965680411835381832477879594291672247246894497921648480352557711165430980413655865810194539367156197113442596297852213462824026717306364132400831462196403026383279475546696265239533299247825441949966083123798637113203357985807129727375358186433854801108511696748629871385522734678840147857424223185971533728884234809366258616154929311861017259404894501956264944943048367188155960882679235213460496807039114586691574283504123195729609477065794288827059727605804779470156437051006587223857399955629814788364480138430733755524246939889271824745827758462799808379684964305238522515951548365643801851746105466618659853047189843536058239685282309537537541416401715261128327121780119525414361060511606864082009122982635403229324487827267722287290541443012142155889299749786710936040850223453305415777288258788311705988580174766399136182351968433857069534891008797956276093093650761071153377259033977185464497924389801686918923550091062686475561411356989486184707107148560801616089012594900523314318844716854847012513614405435726134844126482814938639736606054033407746161563455089013879133746892213406854736573157931756838290963339723503786692787344279031070035718814953494078888405416020862098198457298036463173454275399158680810666899868473861887303783921433530733731400982514496135048205844387111627924164138058589073659927791311436894600804802868057669586498474625190150683255704739779319787474605428160333174210081186698287761866309347811971701643601523994607837919395295125938017009999981925818779439001639725772119277451943624472451453032311967842927114126252128137464805594856192060908192167258079077390371299826052588516911388678741332836639548611869214174915306599188533389286380809657236006220987806803277214763260938793757006399651286513361629043722288791420360586722903963877189513630660922673377495215100642613793303482305667576820993800927298499388690557201848646188049609571739280087114516207353053269020511882478634366679367398306836961404387314196822522151746260470779986912436964008157805967574605304208315194218962186882147466178487211210715744362282554178528782702310399720329940431375625976560278515669582665883230597414087417459159411646147239917317819375317512508753146714986636469393971211719801498048193163217764088460796703339931831825745783660857462868463420078806705843628246676844893335460690803155550986648854993460689441593162721352434534260081564043102009232206631321895164426925516660274384198534600083687829659922123879386218540999202901609806179476947647885253397789644027075559225835041621582505300446700615030264297675887976319259388961672068106178179729110343650885211294077116041485972330739382030350746107808255819574152040539417608580682708860302782456830861195949926333349705488024841940517463766512709968078949303951850045193484166175883343645098637407644202563229768812317604298613400252502214814151356969291724987796031393362738085531634626671910000294705519962363031769757403526856160352233927915606889899629891086422928413240554614053958445705801769712656773043275589230808035307797296955802126500248761298905316788191703930142105975402505415398873709897912561287530337978327985062806912216711307770219811439673231103005733982170709331678318312374526949658990954571718908647395897906655175988743414516688200093100642778340169336409863361682295184885106306289555710095002798045468558381209137339012303550124928690500714455446148292279276529778760507128018377284472064823476634831214917011938558325932908322832585784757119824886876093833268861969049723655247095764945586411306355882960926882367515042421731792617394119620231847912153003879916795688184342540990471065052095419193333921887205194444971609575565969033951995121188819936822447273106538574924924299656784810790756757480853324758364070093057609071148770637440144874842840904523106047531407292781632111304624858908234906446168266323237938107879488557342505257458593781695399493231418797273484266165927872869761427604987682501993223530854252904484228135033763961888429784016588048250333375391869072761834068434315184960483297243221761581871626746517818034160641645948463617029956324775298560790976019972968646817315926284596149465601480584940353556678286242054241835019492234244447460992198506699968709791097413944960207258599001566349034823005993504997022299749502641928538122496837633591182915583692120878196841152199829893664746522567188320235929470786056899624541505386049089613257325268390169072812260396749317716791628930228946002945577697517871258913975234537063934420172515961381592248000612021173547099841395628710791731664110878740835452994409529918007291529067102910047733493411847958987148482966018150493391713966359037252690163666382882994781610955676612359079607513014614602141248322373683538265201941181500231563268843593479175721855856460956910029546872120564752533824883609308545759660933617169243831238311184982852564010873010795859008565469820064149098733999237731080654943779556176806179779502581943836860846762147389695618065175901353721366368943919871601455597326474277400331151700864056879702110458158401434850225312788059456133942710040074126500760850221878786023778199636411465226178965729745572855632683771274420581940901966502832314442537782126888595880178913639989451925617891069633786589996278482361897271157863495426680322245297563468386311362250038206843836895320501844911909392927978556149994924554254852875005243160446609733261228773140950952512215474375195141816959842272867149820696449843674355460440806595100011240495670185280599468017206349811929809105324097758332909362269524090639513679986164751416615350522642210345539456637545865970017513438946111924324299868984844899320652191148108159499853006300946873248173190180473553109244082579524033675153545808061507908266415300398082431964200924614053917626108601524621063511701881779303293841330803285260472314729499669895341001614601532888272034890593840542388912794984964098305703003721976588299440620568656416978738051609014664380111336777611083737891508462552550375442737358279025784643514913526020526374451077161989998633219378778136563228674713217835550491360083994254934024717439020743925834408791353706215618426621314554360790150140830471575539614403631702212715532216196309551166095166573683789312162206615102695139984497134500576001112020288500091856468530614046784708730575144380578215263639137466031356859462658094775305921357477657951253188763402054497626300375796359846338732324479524807573334708964924407698914933730913019331885377997902021731123757710480528445652190617045563279896672917183399971261330498709558392211020822741887267582016022768008034967699420100197432512195828767554090709748911812348213756551006419011234086697630221868968398953034320808401782674006690872961737984309306707837891665850316101042132671753746883836700464606003519632594390590542928816839465470970608897374517705859193221055509718081270960855032892317605482062262565998831336510183668296973839329830203799697213012517850742960384275628443453894491971500589611556450676257798755464672574478024714551181310615389693503299309103257661212152299946662896383146782962131167230692842109828401377152567288353095899513426463621183271254786142308119724131742963125263032259904707594644383583893424371633468587916673702346146692667852896994456777021739068697777640664085317393787037340658507520074753731217355899371997732615692001735655704712449074429412919421893339946251573202030936039574695802847299843916927231645012613202506450600892462825062912305718954874859046488159645399264884322410730070997966836316838483257906396737009671991269209487345947729951866855209001700682875790652123743731208854483556038491889669584166087350822639348950197417450666070833705547198104372594592158550205819017349552874502633108537274779397068419708714119798208776016783172741927522928204051018111908843508707088703483085630773672431274967835559943502436691990197054241151514538501458091166524282462578013056027231009146856825665057638685270037056078365479199111864250394436715366651536792839752549682985892297176217965449197451682518218451810791790844249070407995675387393620098166307570842589997537601169590525770173077192434112950555528093732935594499186419809932012561460426407349638269591225457622006695385931777608934954089859388025840892705070867868274697489204378981344433546244790161057656636692976662009439290299675522026276491993938688865249407755135293708970295231269937725328282467017002291947496197236742549781212155710603571345548737957137703175901610331445426097821490880535999607959584461431619243738921143458944178478583631743672741135303753256220746593327937353588044190956262787412379313155033384123921231897519695406653235680283625168510280983953955692299355974790254340532098602331370932399531593139974616824850315837208656247656588653597841179485569393869573438136717649857245159071570838212437127881636757578457337061702122273976666150048411383075217560601454649633940212725309636029622194711528890770750958795579802251983057347056241456167991143867702321320656362781304969405009495014889429812714868419706703171788610990846066234043816960805244690063844374618430731165167230321218765119846990299581910000841859587395764057026398447141753156671662246639725375867154662821983187276767427599424525557729566665056894414214580685240014189910473227453389635002061613559240373335327810277767843634188857736813717630597240084664121071558369208535787054349760142474153938788120341448919262193432197720497455629066832348271478317164742416474244754340748680646742853259561283808819155409884483528125194645204513185123885398115690604344598890605288275905259225053884400650012125115286335137782740408514230840989752756654318409253301818061351799711201881328211285735217476339775411324447133905139085612393762747463795251998638784544304652553905656799249127221809299058043906980829194280619829777695288339588205189683854919942490604441660941664765412559726135146893964178035168934414642409488217833488973307202440192746370151183983164449812185318794478632296946045549778730214874961530381190520954112526986875136220612603626518672040928862093852778804986531081928564858499121028367012579075114174689523182566992774470654253686749950645217678997935403160601347899275916003154629654041185949733356429955755150752212830937383423112980303130338657740604208727756394608690314933903475785119683407165820855890565138877451112923470974872529723079536577812373138908207115599273074895987187498798935147863215757379758318663965517075809595609357799168492489079083274597834433470600638454253585097874681088566695784163926555714294642036751806585020876324065840657006877412711515719309415261769555121701193638499048229450042594347948279699806383804501899028149672012035014269447432272744105124859202952544062776232746590890850626964595619126129895744504280348367824078219258171116630395473837545204297428437299456809473858345587760141745917959827623823424594266513766398480560396914273534224634760877622242960122762852775572958034953529366136826401206678121638958294906359889476880150282681585917847375076266893302923780718582412473813233137045987608963692937532255731305969669034609839903188931926017296127971789389441726092376987084533377240170283747175432235940293633387488080172089238882644060803800481473015017816245869255086537260649271486997797770598191281115003391716250571760690965961382238278182134334487221458807271931365928423448182320875419872749582517707656978414003715998852631440439685970193060051740102252573914445666106070120827637519480582705118459838787646532900228043529664148069364549467241009812050979490423611356901543384575177969330586352427853029760189405258371323762575880543656613329497523395025895016561142536583816576231320078078632239275091201202423950018421774420229247376605865218742090754823726293804496782125032325492662196193478312259892692194446894551377599222177823476122180036142119015935280074490626162665221914337248756115423286614779535755545659021866399678090937672144964341975066085823405972169472371987022724463003753734168959463121342323658642447346000586767000045342775303337279562430584249841852937650782908068995118160052502726136422601452095965436053432317286681445548558314213412746153991053363869935779592132092643263929235412393130117400877653726749622201898583885600950738824720477887216574513778848176696617546005374006893410924540304336284183097421959782997502727835309394294383429420180828443017643369683029622249106980831409287192368487149481931504960310068423904973674832061629179009535997268627173981326469049552913474819264451841695408026892471380976375460120943410041261910215878559768043962300990571044457700043578463239720816734264624249472054250758995058504377542711639174114704711699045959660783336536909222552316617362490232708091046562913157693376484927643590907258446057229157011518569967833902330327903908106290798714693587193354548151805844979987281209195566509439083123422563876953096684538893852917564585937798232541987825976552186537289670148838601188674556121183036079762023569081436495907983111337790904621242874904438085644765378678611661413560205630259922939728812601506833260354733853360465859174262695040297092844028197786493831703397216220559483498691778561452656708604917346262588851943257048727196892065781184570167194985708589851643888487700848088856980193125441559758402035806089677328545625793660755123367225723439412358690635825465932858905916505898440067383845924680905727851370152082658041597009315453815063543262673118022507032126194423490777456366073972929597589872210687363363673581805140117106717620517128827964455617893204281562549282385237592080920312095766884434909263305828445861961565864281531541893374068584559185027063052131267522322721916992936881295726600418664063075893704244920357058588762144555857780187349037210017036945609033288751985553581662097705470115078921798388875896072184465284728224795335697050768039659560043729243874422652029889222805996439587565790412328871991938183696709196088881219894330146140198534188088528624467367899389900832596796299687973060917023696583278324028382079237565050196032779582094402850039842720508081396171800990507690453330336533078710605526955364198083751846965963993411327000801460408719304093273372495817108820483437680463926423286787188079756833268644567437469200272113884603320096321995601141868156325735178229769472676718186147074904386275779506123291059998442693277038410537845938760193255508304718887449479753959856271389118447973461466013372205542051409564988541966884144187630981974004748852807592958736973800613910605031756234290596633322251484064788466782740066028471625954513454207899569826757923516142806439214262601275980724083646053947303517753858096297573327162180270076786251021609199642447266805565399775460825847775741607164824746574160929004264467481929348345255348467269377827098258544035908419317433143153673291254250376870204546893831089689580612943907648555146434871638934694811357068160420354817145433617052305435904102041565646014077022356440805480828843962319829144860995617548586823627381915720143431018407362404291696497495755121846050651299178576005952953175226543343149409696319168007998076337298948983151849239671588313451972202233945221392039120243631509226307907031931243618486829192915661093994106847496277073155305199255313838666294192027567456458643984465082498521476487396107151070562518550171829975310692604202151985668029687260262014723602417016696530928070271084221593860078563118525221751356442605893853273294772338508758579679371725414458859754726633898399561223697517610925328989966004719633304735808067258539806653556548591064977918300259210927613057070199758998492052252172361624356723257529505607762754173777879935524060287574540150718496150009073127682833410418257084680936586852536529836724965907858997604525536489469033100166095002546633027579985181317794393847223374998002541452353420980262752994808307516726488241332044010114677668792502805717487320292712947457205678576683394477138513192770859659891092453936058150688217781667194527645449129643342636128689135698798841815263440839126154074923519232412865343145979934568081300287702893453760796321901734942956144033359282606165130678519636546729801564742538593265179728835526268311064292717891665453140349780336385331137639681833436678457868904729467561911732051473762471512923669917435151631676974580893919524048085054625825812404862356782410171975613585227994062594487893967417156797346741201705327802851406004359535716804338213971242071107819729162667908726782444969122807709611833985461770585963721956308762688689027558074997789234624461138673480953203157726377722641845026278519559884590601617512895296214139402421828911353033941168428000387213456161655223036844761773562780137026968125342796939098812037094724605861547085007920808021166587623017929236109650556380408360372256226767816599376753333027381387689233335295420568292259014873274561542839672163278849342479776940235252987963933073620984123618990787679593668724037641404939279384046610548945975164928138926848700638720466581241504570575103831957187218620651518934612999855699396785404706335295751416724064521823830903771372026677901504570489513111589315162643519096867922320438056511810735941561881057025543954445917918583724489288741034363054654244966187795671435129358912784159043132334982014857715284019138670374875727182448897609386467723045419490455474401697447740746015698540701632529246945749635692944008378152475742751236146666083620256688355359425420185397707604678001368041393510547373426184380058825095935349723786476833016706627648810138017613625925909798214620495247776113075559632208673906841489902796041009278482930292174302034289781290006514644241133211872915941779324474712178716034647972058872754949377388849570646280170473328845041319460703163394791282994583815701438607621095311841662426205244433583339266261366551040196237053774203242354292848758200154634088285988136075101893543554854366536508195152114138380122849763681020393243237584640874899497099003696059007457108886502335117471316045761495111852119736703055166325407859847468640463250478541795322069040295817700985695866686531813586365427599453402387213971906949227105326616479311352355443351243331137974320001627092819291374838622308030173485812950833149420577816400576738036070434689298542704726216600163765132694252467685195809162900043685817646511733010543505574926079194378771771493281350278391229576902116745820506918025171321702279814856405551598522016871228460027627215535305822188770623086713077359095247540949625714855932606712983245765647981510466626527062983910153087796941303815702732674896963142623306822900875642138862181533663787584540384883473924202996891272960670209514070366318683677860599987704323856194090407357116758822816044710689776119765673455990220104322686572293327621821336131877198433938867382762733432811634917985469359065788477193047051348461516112734772988968856448210150215590661465005787729445310859825417619670510588520492043098578477641926895013674815859478267255541730144586969846208315369090977982810763274090911600095210920200663976698290837873998306126856818963153109720636168184234424616293334965133060151166293400423831999177051806176292280285959012624828621985882334828843659795038957011607785224346669507935413129654947190497890549690480985662780264756007107226490454008484053371079869532317601008471001058753591915415620541795866891235954642693710101991090321792854092952200467342811679343581093612695455315586305685699015504702112419780457093300715887253662495271228408166504405506295995239451424157292792094994514655289358544333373326102369768008801273873986743977817014319309065335125780860889505144585810557990833355333718107945908617001487832977894292727570339053119980457189577791517128942526057770718934117938780958140589573003295308680796415840216573319752111590907900080066748853106798329707620286865727487362956170581379166068495148368000635279160138664262665667377131396385637364566853004717896145357043785641501761584563866385158603946800058744111908014143332838415507185547098913832853582433354420384528855952624066176409806641120627414086429406645223953776136538302779649040263922342740019546040890519162313186535602266369095953861223134140644659774328924678375563187998565124673924175910139661882901921334282917868193111333285015054145622066196943991803421174523139325593624502320768124126830690171937084462351514449242912203115385413018569726143320696205974818562506097363090117913244976978716933002992336177636750521989776818876982802169927699720856733522943016243195278738356267563063928295630822648393626771137595360460924980979428815329371203809533047840752447201542614479845621401747635833043704575586253178781107757757603640090884299977492560257382211977591095743864937127464005721262422187107555168305831475110497122245483012823447302147798591590828700935350305500760878921382813554990480193499931083311946221616447579941450655780369891589600461971151786534245215926362186998613891025176403888420172520622151622022835659249136816140270469036894108496680713575169753608684488702011629155964234254745650128939226276192300663233186197032982798078750323890145562421425368628796184728456199112232125042162536140206563073854840598964508123418469741033430740009941895461597172759474546360179331079276211314384464994367470679558655386825030788882514093227400035420998933969098542033830533762714098543092307931136690247012344248228762622339783076083206876909530319262050770744172015456571637446685889099301437884284433601458174000227487690716833312190384862893259409140706010317799304644306860421743329396487761573467181508865131178536362394527829313628374684793137560564471425827759619047548933740380148406438709016867167844283309206786186222270892061209311912652388330102595558581457729142507174024841173540531437803698755467113336542916019105006823663710616073190479406596516525644962495106680152974155329944179688944472033104206998881385501689910057324519234763714410920707560694128051301704854107913979913336937705520016401058854211302239978385401428192946083486719202824401838494582946928361751448606499574856022638655438875308015673257672574328473142676730946354820234750258214374291348974995615407762028119386105676775711083714054907762235792720064804681900072245966607468619866110448451462530311695225994521301311409537377561527967353064086351806597893719064819116250067563146756406775850253823681422873579525056104513507766712911726647940447230458768586693733357225583248120080824907402599263587828559354235866727666266619193151944143618702024966314677631539070752760674099597179514536862879062182306213674887248325023118097524726166214829440804306431177180986233446271591565360770206961912505765822808264442111938127773473423900998825181130857045982727087059804894657725440366885175009165266576153666437068887390841464787728490291812951495406512063805194319226368982082833038949882861022067904603816588688557637475097072344468216635913716409709058103799180928482709988701652942074215723948151360844117983447968961011432089340013844905829782094247783081056532507998262305581576519200790125200396399997843417224880910993627435488357994584860806996661597207732127778082874612771189831378659703488351313805584595563394346140898728897099996783700243825282165684397095898678611068463701811411642070821672274323282619391896717123938269948645893729943177697923625696750936546507034906328330627055254947558639835499601124383884570022333412405132540903806685286385016424193633699727274003259131345970563442195877033904602340806605634521618737555923955864400782352010575986999740583553265205133582096419433086957043736228743951467207753717622947268389494011499020903105729214504220552264535814051289232624247566415091166547738272407213643747772744981619310224808178769668032619894966921288152196284961821041633132162341216613081929706960526585969245440443389902975380813195812764962857749758443846869839252158182732912277244420238347339803602588963300702199737166200043309345998262687038682580542728019773917397966231396073118882736816006523685962157761000000235589776844901106305714668778094886610229825175317702446535608407223058131193274477180756920978669270449209341094691852540266774217746897115689435169498620156463815787942186738648116645743846490160501384258814569863383204265739986799403501950285809672902883230899432760047027894382995942226032257594461977623664817371545770737786904614435282102830484126496852771611223017235329040510638302822303129486215610542268254817229224715034805470409786326942651058106655527173019990101149744758523503415917985782978329256935657376690195500368483929822171002139099855730315837317489737591083904161972328066470576256734475147273633059885916582326776989974620533193352361313253642192898153898412713483655557002093786364925158343243663410594064843446922256604423665717994017236125386621275509143842877823113117651336649483369171031163585180483139318033377489882409456240418402375003552341532137635937113682140155507381004847835726288431648479823449779923788554910598309716637186782979525881471154055770916117008327092758768954197914522927517037556398858369763983219601125023548203253540518137881661245260665045397674629544143099259009779516114232346429618185229128823956856154985273941741742833953638944598891673839227805508620925065170117791305270208266184003165471494649211895370336028338542686280079143299046428032576393312267178541723860785955530819543424732321702127851267917345521220632095130438796787532651159484471934030724656092907443316044797959842394919474576552386391704838202791364279752241479115337230764847829697725188662436692096622601622711933871970974942766163473515104049653681553927846232677861650100948330470824558001511708318173298875343766961517242416068628484423974666747062267647068086182576866367336546795912337385912728812932932898573589474428555992772034324538264092565659289704043190516943044234180193045034016125379042837969675632374530481348913793752023091110168757994476151866660897952299590193252832719763242084821818193614275641401351137725177030268930333318283061190913891183705934293756730418737741198055184148495704540104626427231940152309163305598971166556524759423656864196087708029358846298544764866435736498210412864677530593863153571556801247047435931619621487305982029624576595701506467233629035376761888819297687617932567604777406853774608304548510431027794463520710813428204476115697478071514695638269695911959848799757018375760569431442867881642789236006334084660885827749703667565283728134230654116611250684619285101384488304240884855023786809546041974452322041980841099883195861515830089215420393261326983463385321535555930320131268022448451715107155868959457540375316847257995646609978921174474082423586203099848741730691911983835914837398173539792771975630957352827411025701500460521631048889202765070398082551030646419592836237812389874271478978115872786592077533039243550490690492454156210509424928472253009072862574651220375358842442072253807244097807796938055537196898043576594561174320528696915209275672277356294170857345603126993614256929650098305321263982878686504759485736075637370146312153576059264393366112900813992583325478350683155086109797905436508466158221121534673761172937463452132238947860155438201651001864888331976678389826649277683563914005846225904689957909220911508973085379318547298114276167067661545788659435807901753021343230224767529068174370044101028669793761960216811520605496870740190440343998594557602273432681723864899363531914150482615608951822425381939643321589175606596336122667581576994819587423544617320504116030122769532967133731453552559644462465381061896851522170556479169502097704416739888258619243730533428862271557438249021372398191993610977320298186207598736685283444792439729255956466834199205527542316447749238419174173308152756375241985970083394441407246085007825088514972207475660639350098252429768288434885544463305903226666712392926149782953606022223530399953365709154834255811697919076792974652824424520507668616051967117199107987573610884322615747756966024294241888300233317495445316750430512686169359039440425388835331195594745482163150668107109694289447521475770034556254151419918220051863316901369840988771370467951822464965344112737879100241852577336990181806175874877913180113198023103235979521367628582874477930214615630412089032243076830266626021042705988761712013918247544631117090966669879641036778215858529987961560331047078155342595525319718635487052047764769264614577458523309940863905013356919539360074772502965644211935725496366943040606781131289518634828403671758088793879747065949859806692680280414115639072584937040529306893676213891516558773978974478129484274636026064104456098326686209909382862169845135900794652269247239178921742631654992128007322677059259686333938747228106155652533929910921517922460189092168822011019923951320131764272411211473744360743864213794003688889861031243694116880894062719300788925708251267086942018026363463231674814355965826693332326815440212016949264210761264471140217197488985947020816495577328699690657374039938859927413016366433353995205842342835434638161108007591460615716376133808054918020554257999004764385700318926225949199256527154280291574747663053335587534910666523106844452268351241640639483987724545263834720260644327113012835454465831709115254353255063739473886731689998399693940587331393035411797121695975247687865204788452169229598153287059402036812636850014459767833098032255538827145109122264136165317909880387983993071030988548208839735067998264167277625425904739678748399485931690743985226079851846877995758125723972192629811032350950471393194072033494524320021897057114443205725757025104400966244816550439423331531829157204797628429730694789627003543965508924583753060880270094138744215711970506210158251918275442088126144212708514445592522562661321755076701975132322525165617478461275075971931699715420539792041750258398690835196763576176344233888110212516635823333354613890941384441669381041768589599072665535296779554396324857174208491082293406117262131076075205115585661654397606985567256982501553154581873010050682702506769088953224080342792197447854574764306154716379120566297629689467125369203349794586290869147491257716462690321441573230751211757423474043358224615856688366189464461521967669476394708681692981590105972009472755766151018993521065161773500973716079085554804921583764047411161844628960732606224906529737274628378336947523678142211671505057917005247495757344851126473044429413991258271257188878778368061038720295656433450644926331372249126106592545330398002328976906164234905694856513988701049670521524525084100165534233728145565301676932718799262709282066100491468421469906274066342489687642489628217629818810304366254520755518950183832109870525628760709345110398541366367519091900949824766432682976289119496144914398009335903924796961491823198847179994228743269171500822938865300639458565172361783035259888872535699118131155929996492836404644992469004780298743519735317940229490354757884137392573347625293667670561992776900335500947150322279824671933855103955956313200214728095574606341709886903902936015450069492176000521155781995394452618397542170109704563056977741320231704726320361978897187833837635614984115159817323645867124044733046447836562968695816274593386145499480366426284330926798764826673180875021035066684284658960580153105776210958691890757239885804514243959213944411838325614733266102409428367524859265525475973642442165604089806120422693481595142954835643735111408429832557115054024712423340366708669002877437607873943121795641074329305947121097590160707356068253093446377295775263064276967661572136745777484483658416345948942852845365506962711885330336042635349729573308900652091155533237728792009612958454287205303477711575759883635548539951465333531942604760136919285247982630604452488277879096567437997291928717702331879856365861870485400540214684743995863834850177053792665570589278664243918535091676049157803884387547358617092547260506307435228474143928331596487578912046220892175562478078610469069883579983239236030456930690789352552384825279270310340086041974239231538284555909395442103345941119055105143128745722114482677897588059526955657978450546484982908974627883220634739004639224689961321173015901589933070032047604946514740977161196618629908302610643830847190957543192997169787535064162058171083674703273769259421994188142910516327139649557748930252426947180840111427733455322641256886875509836507662452967299057800368382881732173796285010901216408577865768384105107650233289952403091111090627114420458008826958765573402142119841877323839509613308094222761216909235012404337758066029380365916718601995393800999343271820163131333273749371520064985310295227838706278462395401440073614712968906866670592027774541324640457119035207354548304681785222830296549102910232425399677674815951822742727764462362351031568142551546691649958946191772314867426743322852337268251587107792963461884886330943048490961906531590658661949531169962522466111994174291941667596474805689322870734821617905533304583181405508013426972617104611867405853415870549887448127191500293377622223417027418635855962720644869348349338228430367350578094029649871382211994424664614113543667110925095977329699484538187823907657786437731547495790526926054133796776276743517565432979117992853082501108496172742794864194548603442666031473346945236756222162370758553654045382981125174413100902085794114419435891937345170560337096293987698712887058368063121333492025653751410500786199620133835383041167772263651655770960206784261945266939965097751180061549368517960091732914765353239463245250898061886415772678043521940682617109451968500312460049619842599452842473054574001671056254480719390209433969766402073584921507382596185088257472698220034211398041912075793849933900271267594786513017515797759202199742725117981967995355772998392573375553641532291652400326197998526476411738273257390336472794071086229193723314484583014953428865692121472846564822485000512314956486434349665712915603246316127606792986378843331297277534542260610770952337957654594976906555756983667752262310371163214506437182992483882844114808218877909301521519385285979825488474641369260468236906403881401275208632690868831647247329524352765179968409437758874536810773963184606225681366769210921885002714122909250147114045068494217455333796230127879228179149330587237815998775874357266186215962916199881603416559563502847401882715344498861780944869439420029573012486476877385824350516900175871317536822266652630839421271135466066828591462940625433265943896608184646302665852191798465734347054322060205826714760326162281972564542970236524535373462831321274624136975560648196731451567520712438724886294015990145147671770183262831100047257473142618024173879296527175913854291727441237656217487808752501696764336125665014316486082088324531686465441524770735177322908211586393801888086087063815869397435298344141480869676021283444518316766750173992575762519722257351765237585122788877610758411959742099761397597259466946044033258240252902385178865450840067509028229127720299755150843185174363896947950921278181802280752179301973767781490464499788571914652579994196563082583809175183821575393523440289683417400173985533353479385873068052832433671723273116970717313928439591775988763423251330695396176524665638740850987723309516543536782305127666194086412384505209061323525800585074930008097486195913053291108361536335958970952046201310757866288177604467555298866332478311051026495312785922999740597863514269929616032064051499127861921837641149181234680526126277566425570418502614088790938699186005833611883567870992147776197081445548508825435031111236076295362506133932217617799979645255577523464060924775300523692089779926053241626087724529049556230423998325486766933182819558370231494783396811569773871159792214655830618540984550182346203983072246447485705685456310446196649253970826795674799803945339550933190164110886623578787916111754138736383709573458527119719034629610420464516592667287133861753390171368605798731902123919457606879446113401191692210753783371563180725640433481664517432214784977578913997838631004177481503541215096874744788644265925526572089848872915722985761468962560778696754995175918236058658942224698950443311929302483182066205210096385432241233951251799847523261401987997472081816034727778113311598612729252991567509076287540490056937566063912717619941953881985755016322598750858986161139024876686986294029362536892338588152961406843996024354478869938164560563762265850140881315539569010188098244804835033507147361522753356042031619966007580298147984871172903922389179709662310207058890954473062847571846362854884810220639840519595862088803503212778919377270900436896433824423401711820713003676056598679272339014088122612607968406455489162589835155028146976698619433719182847630189797475495940958196297615044302308601845378978687291375993456674269482397100744683070909615085387143937820867387002613907760265011909025632631400233479819042022869298134717479087970428668844536639240955441386968910649618679120322037492733902510961854721296260706709900737708644085003614696639662708158059262006907187228743020648356168563088883642245071096543230720635340938526957643439329462454650551974047227199618631896876644511619844435014396032935418006785115707005305860768011720070202956195054210099578049417304616299413985810846662093732967973479222510757259343165726088499122610445191322944808018655216682905097043878665117962634841753410667434220675851478527073480055285658178145425426035696090893599392425127385203781235759173543883649639517771981383337750862300788607389200486550718950533664481221585607347958557293811180765936081735671994671536565928086357508546553839823010384616802542952660265046964930237958453091071189860089509694544278663180571197644115391915226739840218209170927494879298709433485030123128681401364522888866087951493255724772022846404591000490851052297805271964607293754754698946951263155244884891721845010809873046149941106768137097760938685188107980293473093858974787256820584003616645948188984845726510109928111255510634040963360154688455659333337082826705672169003040858710546054212660952050708839549602934841451841004679884363114078034614492685568756219546577000110767764773151644918866533229429842578537547381025820109034387270440901223644385832639908414788207994498495027596674005326734981549341607957745488844282045201531814567039990582759586712630424396550633413395681658576853783469990930169935886741648026523745434149683526718199029656301600463763377010142884532343795922482695672415652434741544382229497418371449426928179251442079019395733057140545751238955777793720825566918966158694732952093121162372334982149593230637795459351440459269900723009513651491878737030222514166452575817478480065471081424776172071377027729020161829329920611510366575401735743172142132797582555825021443147514600106284952904877259900481087339097458796411117683075873495515766698472020434291251100032249347876649502565351515594952023981316623436754486362741033559445403960817700211561905853345018355381224396753346716970549603543019728667920593886795001784183003285358049999993098717702557494333263626800180072156210628110854025384079296840153251343851784031845766969851177444219118937462738592318153492986313041102373800205395865450727733433198890957210831831507767840706579863944302999332806706760757707341661227513368601326739927763615424577886631841392117067207895395062383362616794153343141253492312668621412921298536513678042224010605678570439355800522567436377840911228433916011954265462337798760591595806763535231303185821943736739010087244825224006146942149929032265439163611010119080039383232161671932169338534635672510835331965037720496763765681994886491720704303513157364792175068975925703747676816041903885241848403188722917423394406143129426473294999223445815575165649722258358667903755351058410329857466608200207076365762068776359621819314382290951488501289968886619990475444320523337854021398803251481380820631052593551747215247968281700431633750995773820327804149785584936991805218519321038162508911627746710123221532975370978030819697864230221088572859687590090484296623386448656211035273067303876698851258040138688252771229221775204861759174383067287563417220849493459429219666624942046820917204458647381592096916841346127077670932929996771338642296525784528086814712129851208280658893461040192446895108262401227605591543096773644942086135612785263463827106343081860316705723767488193200025476057153756919385306530685510270019013937688172073863799368914362486262731980318049090733674362625004269685646047637660893457492260351274089019912477469061488458649739726011719145733091614372397137058900549661377264303170915591899946827369114532138630699574894881555724266305039238971663288109103951372459350322127056171162413097452014796170196512907294629590905685936168922185169855891858953144858974334165560352076217448382875949217700239544374546603664996421586022437069457317386753322376893834088356104905833935149728752515541507583497580348373019304836550984876043393989344429581948821975841867557073101248262015734221252083135404860181354954250884701245763404979994511801052286686407320880788487961815863465479822279712055080774038619823037175694713333240121398111233427102467415309388616239648108676900103604225199559226297316755029255806153884722500944432574065814318888407393131192505574797872893984289228339967297852162193021063038429747276809997965198535741729909445996833559604534388257114367833281840332686150186885044356785884465907854043003754870152662017430700801196813340966498404188671549699070155098929150142461568560273996166226922662642102678182449170128293907941437325956044775201200389421584246495738750169914218446894954775778303916315985152636410883610220882959758741891228752678763000957959997272654938615885510745708254686574765432213286162043821798023090575918139174737059228003100080510582690384820524440423939678042813335916250179210125763546506521052039742221113377474677130080148999859167767216998865957113869359027129311090200678516581550042039148463887583052213578023679619892852386131817129589378440262794556888923367793692790563106447365851705157103817626757514470917841636224674553703607514579837371547191138242156540353788017274589076090936630746601067158901905455219078309699821039478575723943637991115385811671945578502539038822410794887287965964680359502119090564519980101669459901178348268892546616167509992477227858607482802449808748148095298173246737957696945372123720742281978409789431743846621808046488132153101843165553889229758559802389218960360045951201102962818904830075831218554798788158866661380110059295718740203344984870305698571193031972917317086221104999167140171823644304438450603019421030239069120582347331846078788859278414199866119091154625978352019563100922377677546054160591278329780850787699412940607346143953686477019564320608086907474285981196240415080212232361115652676783568673991851146540239644697073139451949481915184021490763554194776989462764992887145920579302215929303308776761320761454317394081769648560023364078007325868210156281070249271888110883878922506980463644624386148672727983211048655749983222265665743124971852089619158156291155342957560357446445756758088481112243810286714831579055022339342893856219645512622132525821714509041418260244628879187474348924624624673884703519365712635478248461597626312365489943154961305499252825252494618377725088416162000343091209570949947643636792425719210778107245826579739173554790626161822630210823304507319049304578786204363418808807830848183036600601533003293104750043686678713492854853063278739501456219524978160742989336903824102544547560526925017307219925055642569151719817862253293651647524930876717413270615948925318899968028551787774240095384202547283123911156187058966842315654210599936040541915364051275462479091573719258678465926114769894584260557005805884289026254418211341187633096755270939183897081199905616981287453510114128086913956770826325565515220599360280789014696045144347479722912343415625009078584751131799211600410643641746011598087791713124563145089936509869273424894826008063434761483755431026238421200909342742636814583089413633440209132495369682827543437120991181906237616123430836924798130479956708765277229342796865786498275800797720210042258940728528764915962098580993985029302726776786134929383272527134668167141638302500981287495148679821016428885319578854343960555668774317917475809994871274950596439767501809759615453303053062699392996108020786055243665878167595196253961714672515045060226297758997136623614209307552137867416683725019228154457455434891830619003648748324894616476709658851511563578566103646261475329347210843026971057003365153618128280083670351076947744051149650294848395698206388020996539976190233719403166238143105143559273923217722839616681489702542730051005815105598659070066547924924267367689693014507791171997851104497579788151744506300890113309095771160477498488474329964228389561358612212124117190013398719433877382146196585061180378054596781838478961286373887552985119812039443862471512033920130360270211928205830493161183738852833879808719398625801807990554844194619311541555152126646996763530970869960746248493782899110074578841555662910688169942597773668924758997804492116943544413636299730061593998110746265833024165110544994557341877570354111113429370536184572608198829995058402547755659790898118900230731952513054987658722227680091378598274381072311464898009063261053992567269470460114033603011921021954760966344315863045576312118061239653459680492665276200292952236277793415700008323406816878506824401720744358412364531299814010921013734420193812581792695632615654067742289358189433712624429652290009315967708545431712479791033529563152848345857280025777804827051431937812156893471273045728057072135395255376066286864770288159186700410346775395591387058578833789655737972295393156952324945566072611883466788601788019010891484718125635861648829610077090755005080077178848246054574823869502327796894953041057536643854602051842259820036925276966196589346390989447219618287930900253969543163814855860530664757874013194928133564744557417274047339944408863859497183918506617078993314204050982350783512507534844968572776640752776854620691969057261889730033988126270125009245760822079430599735515493928131216159647625256660667216647481075637256186180888465765228206930994205468687596387658409411043961314816713457576187460496499904330358497923196309145742181297512987210861912746644749772891120071619661031138372695763415954301922325375136126402989244255959975298101589378779893757756684541830025431773307921460626436530766233798647083799332570804930303660104683552620574908618640354323282053241214243390411874372353235016927328284748968839445792196208686810980521136361077055477011161422663548106467223509610807614660714402367010974581878772745474252298031442262783968696950815339206182982924984494943237961494346909911176064824873911291138721439295195950384494217276856074095054078817758226398393923043052361431755626266270258203965572337807969849221431255674462536916267147012044877646525106777975692822034149491575502259320936233436916054587460619509900722560707163243235495182680896004864711887915583236883188129918288007327712341711360933931679001317342375895992002194677319953571363657945045630244463371725384715914162594385136507631226877569501676557568214755135752003779530794885140603029506441876274835140895009409923524339990580255745823753950482542298412731611423199585663791639868298510190859863166028196347998977331819366443297675570499844382052690253371171941424612138094886905821103072508357560023307977078905757484216552662926479147354975146049095389257385388560228218975120792773421721237510383328717662241977205053196206448157900233951269663438300757627614985021505785977170492366215983552172481426148378258548784860316527710190387540686124630302026155452893726090791158754572875878301537929013811806911962335402698906610434611624651278384895930403779773890942440923872361546377236848258989921805931710600628099898920671938667179931705343355632069711139169239333929668296006518765019048196745831150293952283344445993547109610348401037262704696185450347442481764139945203479034034642325988033155809092962946948156250064819695379372849958903916167280006702268443876388420716124553231482378666641823547886172058718025486855709196418145819123393669657593075871214916065516919966009912757815541660586312183573628034922618105177189969706851043609690076046183474599668080402195507347639047285419221619398740246508379193560313683527863038958028762623439238243091795466592379632694424224636501398910394736340128175059621733189530670562296689216059618781587114418880897617243819641035914895654738931461951944937537820770960335025391298709339992446239835689475464849691930817041913250569869672899234644319518563813668171764432984282801814285031195751638906832295017944256534257656835023199496844024886357006042266520189507180703306580452639351263184882683282211992763681798592708647157087139655869732456801638194513348177239955234589276970917893599044951546683910335213794715129290366387091407121556502340422027503304544048650597995662719705183717614782530211757681113286762271857598181402570628901630577348447612356352510178628884533467686125063339466794454262663705763444961127374655908147490071562527845310124806932237995531523471872440272513457965187513170763459158102959951344822481508159353909620198145694628632644284450183308462990172245285783126341433637691934267131316671655583805648894499653143282194721336768230858848626871088078209046254383533459188220901765579315396284479768843559283997404768591224557747962045125224673015505667693776583279501809480211292502608817204791592971984317038839798278380277237889217953236228320205662870944846624147009802839856075268138116255437564787001410250099562670981023891320708220530852077177929892738882795451810191633086739716124232691847931016056134673184935150173193002829520156801155962357045731098071117057880926884871049707881060288228562601540447027642609099890202913910939537124694839044751420701899056517785193613860652801213045506207925438016985547254799634681067030782156756316235535976945479592118063936078859802781709580214523169233992323863531143269390930019730584482199014551016116092486098599945462783231119838991286347837732717067398765963950153982361568372022134875113311398324380858714895266344218485271384321874482855981031306116432657040684168213796854927218059026352786066685581209629847678057456736765789178548798691199948649172476742283439414000103912358443194313696040076718130190378062976482963881071829490600880396557090435143104474681202257164769781150623718083193939197105931377534417086302933627609283593467103125245507366285346971339150957120077640351484378667794317007397292135024216738043998876614940933428686265505742495576324850604270969759603745722157347007443343473180800733556715915450483013725672434542688615399030743213733873688474003783171134893010559961355693651728066356281175998017657783623588777255552941664245121454171734922576072467323589300657212603161878004389536664234151972741042813447709405212494083283527309335928483916530554334309913916350088770713541743878894620549969890760177287620224130152168662533338866470491782928298233953969300098107319772163403790831474385768650043603804154159458878363601601692903577699570933574437484287734328337140765358284146910004438846996535198223157404194652433050694227661571884366852039316371539130330810873749696478163868146489372121453048779845632093361577189357632595081538304422382271656493857936127712173516378321580184351150310293259858336147724185447965599338055798935480160633590908884707762411315009089540014548426915333560276366822922968584245883734926460264659099807074288645201662687162088890479090734973563383348815596721502708944389064868012919960056932436341745399092616412973402886914091565734241764687324479236576883310825280784315352436853814240182454336591084378937703232361406167236286296620459889622714606461085899536622144117776125196879700246086118730937266672396210219714193859072495351995095812271337944866868122934508633540746515538519159893994426228976158228093999965314662307301434101169842403859454099988832103303810524096971063228308110537935747404734944864938997889366383532599544302096352904208025816036281939255848667181890580419596829649208941419285700141473670160191481368381365902752317580314845988116518166790804799984634471848958489319652737750853412959227972087405135912540893238445833745550318271757975577155084527426285567124326957772474991277354770491976496994760462468026419545398710214449950235252836106035787802149660830176294101135456387357066163434526122566515926339689384781870764842589381044288959595145274934536179492239133875082269836227051242242877848330579309810368388239790074241447818838812630389452754827179190998473819580055157501780541194231979073179569152669218094015677157618928971716951842875567445630037472929232423268775573652086519720633590731698977533214811089250644850684923919981107782635697463393842600692161253334729371325016443649967116891073902882392204944957116907615632286153051080705945648667764977635498580175134076942709325471889311251983486077507179091141768461325302481104920952934155479193783806332667894498006044348194046883952543173865351689713359641309006820144271096721366052961618717228461208529183331215266516745527780716005908513555539412358373839038728301393796519395136834880393124197947438624546252414829154633499533239699929646033641735647586425675966743076827443820930068124937026962054449279549786571477130367846235725920323462035122052811581184815299178163783073795004977218016350846393222781383259232059676490102033592965532939224101229920365849877328345229018807290436832967947836620447191818281955984474046222270295704569467972231843399407437414493261813699572420382312325397217297098304135894854271528083788637522513167374869595612164942956376152604606347732707026411649498612052724659370640845709708691347898690955116667379202911748533502751802671614711366831149176153860580737036472599879067323470779623109518975038732928508190682639580469552435478312170870709079315976984119222050240711448829334747321119627853766037890770112877938551910641025035223579727687852682697069638628691446845119049178156547529315016870069653192628407202244993791968251047902015502005990049075711907297310216572948035292921794714830608871056600213201479815739022625552940056785107140543435417971647413080977739033699037198902007410700818152981076698024142988214625265781526991981314088632163069677962949345737861289710251892368693205570835980637977901019340237591889910244222104179578379803400380785999063198179979370500177671174680720052749143527173619345101860478115991972980614592158909368516637896356473094794982798124757325465504622483869781150882354968716866038818665084126382602973782169532612446142843335587624922789980606456713675938817556479915178718185944809556864589862837883981359584497422644690339148715147782545621541528472566907287862270144753189845169514731872248766576876907848186399139135914740113737884928935806731514817447048475470006063174067153977465734711355387120579054774759860885748238684772028610437301560346585267065865804009188045609309138145739508392735350921893747311869274306636973749852858596455799214304470558615292884348841384966634184700348196176181044325824475382170759237749230895788035646182545745640234356872006019321773169675244239721600018798465951757166871027198271089939305562665053375087897383553792408532931134389262842268404931672578591223472851110312051530808305331655151269124807838545355461804189526693153047095430892686380738995369873650533616678032002361845457964975008886728877256633216101819428081978838355820409107707987214755156101761232197013749434912673187169080226240513535655759339924171016790543159633989066550831656936091552186107090426446584529124350878699147303506153489395870031796963817447783269657615025791459760713853852375676051796045249537612176026908130231407374368086005990741474482546856229668139261001029287948752982764235986817390753360684381276964852619922989671059883908646410766483406601807160270061094610657640485039427359580878373249976829585316152138883774120334292854741177008100049493980758676810316054912880150314773272560551722432406353036073257292634469758984961246884024747305173030416410422767491246953859632799447149344093371614835687584103167811494845079086222843741160311689034396420376747898027633061255042888522207089561494010388577347132401567070131969477170347327737936448919210330640035338501727834352588520833096135436807455264409953147124193038807182259567272198924796416741891947020137148393171540786641778330593086398898466116618470923899381252556607855641175666410610679107437749004536042666827936438555881064889292915823389636118752946942489136493511872486164522342946732331163666411452998586180666038823811493485510534962946066978053513896267232783412039569712763948691806314252532845463445343288475004048570116744403922905924341019797033165700545148346447363707697215733184322340153992751472536173171345918603040805360453998151851677643955894994949751327336229619482622964654060085860169752526087891365368850406836938174099061564021746636542475103243790038445680819323615776747467866453243199060865461787232233190666394517566115259532941746856021361882162998139579028691100825191343149598455386678244186616588304521536619434014619990643576817626191646063343566338685269283627659934931558245890133356343787053051860129273878713896655574071944666862361084424045649784036582866393193871277623657934593641981382708525809593189020965696724298140201513541785928226818804752127257433656080465429622344184576655170479930096944618896582507811165129482393716717368409946165705449405010131460304811104078134505055191165191434556321435917950346324704898786846294234870079566280165499636314864151232636155087514568181301476053297545855435206590011163129332897970272696078082945396040589951246146782948556897865371884355228676892118974678333175528432679646793606778033406329089070819946643695593143349460777384857379115655400300184257518145011718989484048933323257202690663597647993227536688161901512200120857578195934577167579382788178415941153464723812354634531164194356189524370680064845294054470877412891597506460184506452166940975897043564765354670194910793782799652110554705907530508796171957709988502585976638135423205172398103146985535968092161605983633832780294585831987965208600041535774967459842801538426120010161270093612004734634409498412596712493604660304607020311378412085209097871450434103494767543741890606607985585096005527829831677066842440945681332924148550007392849913844222557509802120808436719138003008789441779894279140219260172976135833546083462175596802266010204416172767827081131347948764201222092105439361911273491310153554393640358762181282048234380013441500733370052550602236003987807367881989671946025646735325981561965432031868679769329759672239175448674786319431569839093299920861887921378359560735249699330884085479716924204227003827721804617016258912760322228772894686519774884350886363262624951619120353881414399129770758434238363799252977430585658493058030563555578596039485040368833671073331309699344607012620270195656443849678820509175859832583644658721759618864014286978180263641479977623893022120929719059197957267185577672919005716514970692266852273850511331969734631360711045683444753031267152641574943212293472695061402893077282484982993356973591588160240190453703465450110616666321083268023515174255844550855393489228530587757006611590634686658136923826721257355408485671338600246922899968520721935966306910611940965623254104275245313290678153952043474039923380560267427096992932494863481861789465079673680865035542737510573500403248465822870611222215658345559991456497959486305752923364147961818991265474274568247942545613575187172379408060328020560794169333543598426768781086029627859773828833742376903527060041633338373713220482146510019522377149716778420071763022389743665501117011551370981939974803676771805141775985110528652078041721867936219631896898682495093559912771912361504125740215384891611060251820873704128329597697427666765216000622912959047909534578868777549085254396989536110233709431910364577228077075213128123999636732723480085625416707964872844801539555798729295690132682280341446043266035313084247029274564431241956127707888524257180867501507143068727932575084086825381849453933560052234154511197436881295328863475433699435309322272781563831463117881931736245121486793993772872982282600836631977247543397676452871841727033948090008596685679352228667511780243642465894809008109457449164340997577107473198280690308766218604729887504521914222710366886469118803326444196965332466202932472013754061904535953626741003204718191082085779553080190043573732251405800124015066227793218746132296388652743203711597981723759599142324943199640300716935854087363026947205747659722478495403934508781196662984818225501558010578774455752856952940458972019886563016324570532416147683575623542851547196336368869050301051308732462409035235330203858357049031964813028302513326972715820400061619005464395225229170249600003449773638637375382755278788155322195458875769317587644946154996251865641351592536027168067264779787659191647994663964987913826947876958490225838892655552977460829564489838620514163959705856600996276874083737826253837853508414403558979484217672196840890982720501482714688767945307522823759283050823342883516865409583531298078554396115597915607446259150033788174045049842532639687115573475154409872082480936808868100110235167154956926767911558940617720091454328949277254494877255710502252041589151067744804769211887976263738717248807009051983911356372485310476856262557900311664639584807324772088712398031938125142832378069630158055396984846038884848858147438818004552849873193467698081624789510857273882947915679700090449144663672687064877437955818274201404760479183067006648662677313356160056384988051000208284149454401542861810224053969893101627366972634693848263540970802770806605678618202841835658063770320925721976787780166936667345835005542649449014648757701931416403615649196795648502314081682295535327395214195712806349022885919144023800346480446176799000668322529323708686870475908493929218304247621554278879012913443456551482072145278976718285273434426172022383351777210805223492544420809677642403896966342070931832105264392174535494443189789167526619588603330926549156456462405495431012784099589465103378808086791713307655613000536483693701660766980512111388219590300774155890043808195651799940460507091157272799221525743924880375606099087663423094077099349281286144441811903575875560994245181102641368622233674893768708846643696303816131800130227628428711429275225518262911953903058825220979820394581230461121056963415023874680081876400049739348715600235300783365533262807188490273731314783571425060632260017006648417543810173754324604482743995764030111253720717752208253850872988651051752877348493429693499987982508804654520817000450504190688059819143899696425901106182369660510519087236377544908210064023331372130456987988692459732559763715601725021487196330030581342492729177706538469030493888733687364713342785038767070681019504240086845317259679116426068860989071325500319088868516586068578805869900230026620136325156968259443960980418645722895045116357222729186354936977058574842921012799216783265728502788579510135005214633957210768644185465734473014406451851417545654775957442364091472622224373957225723357987676348537827307814709240150501269000313108648443155235758397851888821524174473196702494123007842044313490250450337176077702783891364676979546749862430829864379758004217953455213032745716859729110444419197052411729117022788838081536217310266752989874618467235673373488993661867839101818560410579833230261380598937162576846631678368754214926088341169693985963492864223303335828585424260215294070586455417556397150812056487289213003921354910477810388866276218749675875151467280512636027547889441311488187768679739707463834162369206678873769628545579094998520032627473622868614123799374060916422751104509912629074491300449278130947234412604200068410831402938260454309761007292312663278689283554908565988739982153497513756259688756719855215094162628737662076161417212933429191636320412925616909390319267047502377273711585688068000691590665138774890475798167992499626990241604902201195606647916783851123482475647870052668251509699811442026944811524010754477123472894438355344229920804351243272501852013421375363752994342450801145316359340196070147798842509708346459120067920060964611252968510179044501818848296816775683298073511059829983580758324715409031765688844692373216064639324766062707853149010794946949489706623354187204071219871015582813383025782276681517661790408461684117611066333981153422775705457789950674141437944048990025562893552409472105151285228411386243357382077071766326130444239642750501876134250759315642256018332907911353410080130676971074018278980623374039798313574411374681780084637243701879860278427762826691779595356021005620685423410099062851943605481536654686086492222008277072271440903758047457241609823501984854948009798622460848730325734190889699414803531141907931485444641565916470882704626372533642667156827340392461591890995635827050661989598027708506841242551374913985465487426321656510190012956595153193801914865096196056071011747381984286458766379904984074983160814468214566132455103664633214553523378006926046276562345268279035885750908347102619607273670320763090384022061263640005281331799723611266838803009558753973143091313696661434247070989723531015389644103291677282661352786354417590789923529946557938562154969257367556245789908978248530979343805999522978225804239877977936544413096083995618368182628473096589585649581486547710458499468225405813203685596225901997427913576881989828859985781422753756612278305281967018383830516693911038468409139520630526051651941535156223026131500409124134617976008481286708196123276953203303172670700444581787106985287142243920402605734101264805596924245606622776660212657289052307339505170200495032510005425360083397545607879796926872870545466974685443432546272829349115567526360847626633548328823757951942543711309970508749086452533764071348786056607599513163183914787077039541283873181534696601076987800811001933512686327075058126181662371085436303797211162398435248470729275581412254461432666136840013068294313296718320119113439472631378746483162821566384381387574770510879984734824017338388339425012261791762751715519741939045475523573426643819897807537031505122080636957361782272490244819029808109895393160938367641794165830354503759092908578975666519176461422536415956645656662034261474285446240415045553806800240284709941726306251240578316519511936422131571038892578981636682585483888093519508373398486134495889532806326418714798874837463653572369888630511758061064954644960247625857389375473441647927314494977983719499443793540248241951120404433163777834484696268910309139472534425890848626291296014224447430361566714490317794223474041030970820648537422520760874461763872344241102004324663463370203077359748216667904015062823020229285172319824652463628989188940495167355412537953540878491049615779231350942103322741869661261073831274939369602698362060717180963762948248137344654650595736159655403379668841116950089943875582557912880500871172001202930997286185558927937886636124361212599869947059997908814527125681627459465500881754483582391218780936614954845144385761876996888455693241832109129399796431491079753487905671887364059058996386980399724802863067168040609202257299392242290931585791292651445180955847259765632544499563795232641631655762653884085865110184629284341036384366039728041002207046346769840619427882120554870120700489675630830781545042772020158240967546124344980598351011328554229867456736134819304480653293427981394150020122015465026144947771997729114854806720028698047620840173158553597941224948940887938768822378538270355560014022136001882068569046740924812968061594615562784636776146858599626677119715365386750494975322993351400100087591063088199526866315639330485612011758355297081575154335501432193757587516351459107022200150849943323053276323509939044790580103914070712823009911416486959234682596871715351127459275281551641183783756879951339522367279909992567760912346222279862020578316156763735821180646964437887805042984648598588404454516332658706765764852583437347866093237798497869435185783193721311471323873602045225351132905169022466090604151088552119808499044811871734731618941613493489405143231127532722605964507249815488205008606127694061374260464785956152342409774300098695495913880787393734984520372519326381453009877590639949578105789358597548527129798996317918634226504446876403721613967261353258893415795098647786243199670586805825592070393528531463500865360790628833690810234458117046158579987603479943524993560024678842383296614371800788739910704242578894469856895934575585159897317594651839048490026378718037195213027550711447250939637442618521402423179243601977234196073768065843037245668443364769612627615256797103816582734933974173767392667388210992164138064278934804834302122225919666458625411061813924291736454522873342275238336970862376474029104947649416860410122659691924214233223233829945064606946457675289060730886802114950270183565237502127127859813419481907997299256391179115928795629988851502866171614804798641530218374967601758308227700104901504366879500049589593486415841012727271266324504771405767929993559224502024750723670466680602956867443927389494427458254275927388355493131726137797871486807030246976759291828441210234210625511584187910049708099159256523206674920497054771350800231615849927873658454512416963614986540824938516435620907692305742853876003863862302855999155497087517597232643101292069287308509340422603234009047800511326975130369054319162872267885453060055146994705229935134693672045267471071782125818987400058933007845341901620339128784618435247918994452969124153979010355607228298597879859283263023564090833525388043374173051109624670396413431339922171621730521311674018848203705791795287023176792877447463200374939810348839159036527430662553555263297999252053858558164673855522162116857786580883016055391887710683525063613596975332702448916168497140030312333846985802997289609115742234928586474151404912674476448526623112086583075748899098614234527660859715734326198711394180930928251651495842507563741069431326034459074726703183785504317825073782441013631535661577263771944293237101080727880498069264713373871599136564504361988163493028661027898443680439955399916219554484856983614446300298899671700163310934614060581324480525743392671437287487651016887922380911194187406379585513612866402434896146583484893786547537792120918446728865793699325559490099976146807933715171499072187914257752905467746717747334415275438025012870126102188316749329761880942165031312986102865964134566183524182054009971047509167083295675969764538287009248476183316971448463078353331371503741182328182838314347249389479931977889587836816783058928473085678210362493434022908160735371942116844142251856636582944281156280630789241661140523213654001001776409621462497253943190081802449434645063556017563921031061098953363207347470290874122138025628833511342876159328106792786807981174510539430286090598690307261691347927488775712600203424369611097701888827979247251033997035712128360155950995000240357525045891078320686601048305457744552065232632823127057647603950942096496199858421035966354251131404695175044535558701230129192821725102352138778515703812347067132008453906569463260582068322475824841298417737228246268722301812821402555029769371926908982321705924124010865826022029938962113325935035284496580706159869962828666554818927017509686865613404562944106268512320316498189079986364969235109955547122897017381630152683458640999985330437571395431836025392619153422628859474847303448505390423012091550911168832999499643300202626406594699943364574581617578758437257891152796703536626350481587161108094268030355217482796658997721831111126184275791122694180098144792632959686116164675973769814361196871828462591736816606528622334683827055425076775119407540156000908585608125255228856492629945888138013381874420883348473121996858062498872246938297630734955353858012019815494897131214021979215270357487478315553495726295879952391857126947218546731878600177550812947707111596373277002557230596945462119124364107279821311113022493635978330962244320515720454178362394555246977101172424881110904349797439434034113127151266027889507278468558331249991578750325680662285686568930439991676094751010903651730883220023228888669499339488614382420127020881739815847190396117206930616772532660303901021029172709867079096188814844072569290345523309378238116932549901148937230324038874275323013629946185899616650333998239142630763859430412103610316654482604412906694617903459252874080549161761757200459432610610842010390915400390823877100889360879110023157410359049315480936665345802969873915392170051173218622073833762220521991731326868333734647716268450848216351853184186192004315069352904902804979032965581193265227854768616840550782592662931282497886451334881733824857350778470654924680587796101603849522420933814159016367509369252770876007285251811203476875801128760044047680709259208795403547667671928127356541332084562563799708225952660036399472835786770050910031465633163561872531330466768752852456177930387835490183205908184575614589453323735397100753433830917741983120833792584129563903240075365125876400198064254581017067679932600496805464646468961712598786953048656582916752182832561777143775459158380578285231774780089676926299395349422640146690881999482450649939768170184276573007860236561228161267725775463048097811149617451305598516329495267703328121263047493639531214529330772300905545850104376985544608488186393179351642204720365298277596552892984353989941868500036631869407305274885214797601229219112406082229053153579704988528606704051800424294478117039506996468708457769923873811451424034364100079459203797578400974906851496764161167338962980737875128982257855541880206138217836757362582390409474367496940244333331225712162726807956089943911364964189940745030907145614159392373715323085241930151559209267904835650446135101197422233574941962903462939602495163822272478508577665382596072045010478068866696385514024088536982719214463816109347677978030209929037248881933644620397340844702185529192392082849008817752214435904382530689061645479180251068219099676111586244894328921911215809531086447689052545284988480659283645773290478716002692728899052488690015330736312578413133467050230337566725250589966774405126963016792747534682841144063122947941304822819925098954361931179863376522866233538979517225508370937168897123492789380518541128840308099486381626799603873072539112029547532457995997977822292934441663385009436456676278840381446322521187052770031204094040063679982105356389482216508545821677905452683208266628350977572932792724506477008336174280232478729352680990794000074179525803734714481134513089384260929097793167257382320995967975167118090783012804560702461125835723540409103177427076793299242242655139067796880675768024758163869424362623755879629984233668127289217209356646222793322497702463042812653821921539440765598572588558154222812689126402599431468588127211106296242983625929021285496999831262999029663962674496947452352747012697586058714564806287264104357853797297802708815916104609981814829360595479357353395585373744422939622092139627103959845255321201237081003127739742921989509547230552905895011697172833017372270534067347321023959163535404815500153305530365548082205962791575203339682459891253693350392399200169701677239083188835721657030498299638958128423568811828210744249598722249876702801754069527240144660270142289329724239558079271374483603118192576116107814916855100009697019028067685075487006155042972474791425572675861721296014870158031414675116082241616530918806643930751876444117171250478568391600896403214193433464635495446429167094920733889232259736994213139329644926880249447561019450420885517222923732532239297067937149215855932021304081693443779814232671838773060567233655168939926533078297342338533741292822740590603447781212046275321674889906231316187462606021996568834715046070718823840364504653024332921944565565022974593493541881930968393945900571797072584948752007141555006018679091541282838771126175722263151328341897745320362740468849986057108708206479340317663379397859524391986000032912910738242969509372389553708050033995298592601223435395261115477153791578274084177050119456732838389898948870373053481204248274641697381907123654330675364007970623437148363283268693416455191324167134516992643077998797565226111723821041946068603274560322491199854040160241333539836713526801616280506699863932942585086854189442219257427440452526019002292872396690448536555314246670011198897781692027710367303363329128125039882058587258811923582286702439447748753554054758251921979416504416369531161203572221395941689695312444398315309189168772251171924988988591257718785802345566791000687034178453859372280633597888105348166098875730284682668052382646261233226669079277573034543728125172412786433268614291695515933173343972614683360753388481775106917497960413890275186975775779947687544803005696473158432211833962441582279142476137042979669474629008565404044561948029401805606986699143730846305403265219700020090357921751162138996489062089357361153525397880408853903214382178826349298313039752335597853134218694970613795053546539057972843954973161742624399728159068446657688192891645572029446514918057893062222224320369845853042354139283703432806410023525471153695930879442968509706549798546387391205308020744121087084188615960248543632069695665438923748401902153841218829429745276195490519108166773212200685672023478973692693966314449549163000699416100113932596754620056475176613964429393975416421709771050159668824259233390002312246076487410447262955633560032184165745311364026153212913339013962449088900073944162104872825571510984981697377414951653610836497010364390979389187168881783098062807652509024026375312670089664810006663760881259612738342321706016232375576413333012165967971739530973925388598424648993842466060287247551776223569310382272069079382486182306029269231387196281649638842548106229768811902116760236984273087308129441153513012940689433467605121412629101273111928618310039143704445204139702678628543092163235181692874565031432127110720579110057396303301626707862166692924297116730141003946371131682186418541497701051986882994773601360927840009621473314023046474654091569978486165366577979372624294379291820398703486357246236344437212070695676813546105026641484461311119515896929393807538132632660475214757640078640501224924511287183164289009102598395688883913190778461481168321263638016395927738202160410064374650675195075768658608819630873126341159617055108975181536163264954292641152489601006514758853965796216006664619277882242481275610879603484782034814740861882883400587315349402592267980904008431258935725710341566648761507156003419503017324110286466257096290008740784456408889577806972307834611674414181974432800063580685491032581620276181112674880275019026002293640902075887536161289616456002700848270398646143923775917506448553663184486718105981221361221816416408663699673479256557587095748805762759865370806489448467465483260039061283978107318839143902299813790223284347900183922417489923933187976168818226453717794661617964021405131842257537843808956946576005870271501021070199179568700178238589410086119699255202819676952706325086428956986591991750032664717219388807973589625555530555804366871505558772489658811235871522893240115467164223350172520282371738030012988709620535369963501745603391472117523578538384235555715948963856626471447291133859992636038411463155960882674318769007441745124508766369979094323120470984034302814969070892499736481976334735942072637211161252529613119249147060625074333297483865151811791459499089298801891604883490987891373102287197562075343866129102472401009456777671534669139383931101540851054474059916781902502402194950853424159289053114624811795305459852788906141976959230705627267198191544842904176404928100844882668992968524138229278353806124739284551197336651776632450148141034098634971291506980610798985279467397279863869232352290161433340023977085976061731822813613555287013496501402297741930220861747518976809297561178285478195193388007127468624598745067888238765047764094665617406251597482957326595954005499587873683791659287320494205476764070567051551767671568940804973545457323482782113253077476223616649741251688324177595859781624843567424429046220313426501795918105699254576443585269882551452107003297338708750012242426154302967013832224377911036611387241179755232965320096289598220320914429369960021738671887044743476283858354807395121293048640008218592861953826521142802710615323913992537817610648076838983156441733201939163538551932642608870639056557055508986269506279784826848309819564591434086295424542229054861639740025230851049516295574358131169242898789859442205208366773999803872822259025173588736710295671516964606059908590508311409770586204144319343366722349671728122133953405854873239366861023771678367307378725012357441677856832407497675870023495552124082650158963978317966017115233609893130861464996979840591960217782471708363315138115999641102664136872099285679436414008086131170439516391388235203549624803006418085953083198035112409324048050465319425579327118937127487137202251050437026989379823661838471326223304250467925469500447661877628007302628503753192786231576160766583101814832267825149356345321126937334027296923418548719603806256407109028167125721106092102670116166349645812349539202813656068474225839038475649686869821656701544030396261239414539090957019076437961711536394494270393513842764368062304724251566610702127702951513929260529206828884754270846118904856759049545470826405805074023908939821121906290380800543784433058868961644475107350512275508651920615476636298468010144007176501341182586395037105875828012976330360104856190579306688089562369490768784498518962008710949692216865012422773137291923792886551885074526308816954904043532472816094688024043782309204366474624810514345352839467634984916707014113551922074073665540370293446244587624421402441256758235727854263948297590063651129742731807800929873787072333421129261255210700135053636561809133852131429782778655294091675903235863953459835526847005121174021903006680282844632670297378645814498338092869397205044435809058857963720695425014520968746992614868601193019509402254728944700614664466653112841585966642158301987164435897552828390915605191894392535180922319413203013699642223048398827421144437546278691182651880903058439723085660716248749862748536105535657149946944564567492535456966608153546892210811813477330917323304928235372729530586564352565846163588753557646253496817118031193201552657342887566251496347854065819755228987863870572257669806800161929939571927769847074941380954796025355183841087003987995881466293223166175367698569990023582482120123488673325167010403338579027698817547463975020675788557548798020250567390710875620714226315243143837072687796200420869873630376279536642572052149911909914792771540018530184431619009351410081413618708818147087269326825670263160905782601585377613305521350610666898551560920548091325126503004890337637065136348475857995048395483831281922265886189836402485221528898461135853316246453975145731538463458986769895469275020691822438970300214548761111726115247608942158080090267212738595555650210677143062332749630424399532960100999859343744947546331884394584697690258319406917813061179805139705744343682490700693845719410656480530876881884380040675099460707030090394138729119580695511392860705560881537685751344297982475284962500623397568386246776776698299916878014378099464735002017913809528569302678458696939944256589864394376888572700861933058129754845421423707293891750160041519691800403950399643865215930241047877407367694409780401445124410750281377045681668366296983018937098516143540328506499475700114641696413661316953281034484109845045747559102147988042222210914854261553919246854960212852449459492835533566832001046417078347945116736666591523375755571715820334406754183536438590335868028669248401809910980262468154010477220877277895535501348879381489068123206982128056134140629988303906563454475203746042149015289756901940297958946034432538930075910131215220334501971115760493833546159782294826749101083917422849447747829349566761143818035345670089230599535517169910408528689117640057276823671934762281948137840365892459759204587954479441750611439814943349654491875887464661041983994196053301331724444857856534896411452145037657057552210640844582784885986115574498855744968128474021425881761936373505911690727903548114338085784580544956681856654447848618806037999705987531889702247535484648692480256876508834876447272185605674513825923123482201713473401012114967070328212731210353963656340637342130590163857608163262756415649288171677339036337404731335164284480061462588158493062626724155724840669701155607711567348077082363224687053725768220823359474808210042213499280965148816273245307319005800087461464713210114967723137946043264666556586911422104143385759930156103955829515157804964477354550361576187031299847064779752759645903478392533380836384802106560077335455269336144357879909715461490941491974509404721584275640198824111695286943526820028877875173441445317988922368967411897905775574543874033479376195207695991486347665057599130312011571453801761547269097850367808987924458245622813507906502676963084242339713762726617916835591674800786441767692176494582606538474660178696337652976196416106853288382436470504513927535600156813683630297142155379701438346301799699565759955829145353076461589874338788241529335791611025507983046470458660165707081564439214712660244452153346857064274422905642312136687194459001271865196902067297109226715047215675034765349893040264813117592126650972922218229938435768774212218570359854374115463880678537000444405120799024415364893235329631190714986856437955160653147745401387700306289448212032985262135632940093025481118670151148778727131615542352086401801328999081304139605946341430307322595249897207850931290789991349674747921461301756535743206023703478598793220700122706249733776404679836403453036519108986877595686313787819450134757096730503891143639214005171018576687559451240627145288497630853841463425958000666848563279794380547997856479044214243313258951395066118294243098614666176946782328493319226728466785285433473934773202616196121706619114203654382556714230200064439102929175923729517367784895266767005438805880751909147243516647187965929084948193791430950242119255946163362282638502733353091474886550746854279062183432880778963921479013627148176034698600914515178636217514798606845563536875365377983651337609560704262947814257507229469211486621695941576001212994735911016792443709360728110673484551314722152380959743661130557681341611131101088360502283992675441784078490097605428672299203495656048685600359297415654560017313997274283880268320441578115226941801985391837537851212205602428282782110697925708592235147188717893741296537113785644977908313486792706840901354508072194512292538909086204358006185892671100859520855857157161767083502878000183450131374510617947693049357418612879674224465331422650679502749710997945147763918781231817700605595193862060295263123304072757148416582296765796016433382553980960615402947794426867477505289470671762264995707404399756297289805838675413800533200992560084896326998337511384588631948925396425860886119587434499442405411590952352245838566650842028238460186281104140773448694575788121688282209694923748445943811169837637627890440368992980909638561061985788539599476385013883231946210311159274240774397388299960556230812797998818294163630723027443683644986166706681841127924833767651471850375058351037180115517010015127277280871331346726094132625478710870095878244569617387197921940255615839629337481173965543933463314866758993415648415540490648535705189808488582535103016072065969456640568652981571521290648861502594220855708941846756594671652010531777335027850639236376305272257083230698316070629369402221877566612755107407596164882876799144329041358072554366752396817514169898199945947673459891232537487655771741733713699310979148531285459148777720699893827645000883460929368955976108589855719281136690897080536154751004839777301907273590906606748320342794772134744645514338677952584960631529029582679501884473085916406238246528630279741463332057367887205134452777358778704792878401244913818039292198124494466811784461411553237058301180311911537249454014080767330575575695884880545451040576004211131930472249064994970867253803442854550614595392770259112326952500314034627732582426710581155607095899710883496987873856154569518080513124785551093165053019703502008740253460340662169709453829841574932273112776731016876185087513043633545224685099632442198543169883560606988326728336468532198188619506844041081760607518188558473620926975703190171011212712004528718084279703653800361896764504029563521568442911425174564221904839676295547588256099099510396553099497142857104653676338801980718819374811355469642387333562665402859642300492590252884218073631649442451413009536565994277696634088672343504905376200970589388314106630401368611385936603323234067133320313780552843286797601190042553827912432894701806430996539946828438133326948610781938318688978108638594253852430905948455602685166813936389182974922114730355939369944670784796149707858011635198154095679638351321969633608367759862581107586306029576896733723554990105790894842358606003711942811743358505315202008242822234747554828384548729449728011117651184706571093880117546136722278906480703931087668636321628815092211697849267643052511433794776931001220998132807876899703286528216290696583162990842393658395561999190489443389522252248467706334939789421421314389866601930325109541826981717572363743771411139887317436830297222417388069398359695383083886363176511966763583035154619532923354202809533366649744363589272791958511665892916101846768566533001414425047191202630371391429978665100222816406600036074113552992200097311328401243749231900134445528743290809557508059874024227237151307326148996342209275362419710340841270079608200253854110214794481770094835012705972666281248436539662065889882748438381442355286765479074306640880846589307409884034287329131143075622266291808575511331293314740926430269492812275043447480300929347608992576957242733626640909846326534848690241358181635177625081818726695819292338098745668194258864956104097102564186792355992873996417103308886418362993879554471941249668653428179038013213101004597359908691495441851483657667230052057533803394346966249176100523381568439610332585124511706391230842057692352020916237348211721079800915608207906966801808620623402575861051337183956509855597502430738479084394114933745970835157790733679080955968862072766936643283154138765993297188815012463665599069494211658953900453163617998214112851425324064588762894437745170155805402056442290227912171217630001037256190928147780357344268360632262600650006091530197960339972374018343594191868009558776367657965351380723975099778993971535792346674174650856585845233291975657446131860571546476454645014642302674437591414245977468130928850444274803961978064734879053551849797085252878473881865601527414789168739542549563569454387747498729509391083726395558878595804457062549490393814585506102227316472839460649066402627275166145174911693364073510690453128264294123842243397164060551997705458104141872073845824045402836942167913113764413816991436343741574322169567584023614940389881978775740120410493493319836043969901124340860824014008152279968636346346725255705977209081764209373758196495886980080096368158093894918813640284812750913108689107554985928501575350719557900794455962086898763994006996245112178020538114277756412291678977172807660584035271487074862657468840678780189388901230472331561869792903619980849517871598588280152403550938404782466424344755197333592702645018692182740997024890659473915909188093447196571032083008261209752499429310917020457440954012346329733695047196274150010852803295251419986292852408817611902180481163832961658206155514687125616483950067919899073544394344877332017169566855396690860660995308182438510017492243793189648307745766561737640082465563249750664434137032175634086482433320580272199716820644759311378767349031614079333109031998737009748492101456350935583911799838431842437302958296697990185310644497155125919751300660060812033611253035542876898670931867423687640022237816583378104293179447521199877827171829580736983168390339721898869192707833454522440354477046723327816360977465049613668203189537324581950959283811586682331932736475466364061262078158073866050271480612664182352695479118552670681581588972487956740582943218980389880212609752163009586678682468794035515373169507665415172854344967600792390659011730926438035990109403496192680849270926758301873853948280424837368574104642718502844725002417536420486198355723130576429210444230577928562492659791151535717626845915124815621560314308805721777863379781032185512913424379764596142086457020846930714671808429816948558843843866007129402568000914871917181521905012009298293233876867367499692756811607777370051155986083840387476182852045341570913001912643865355169884191784792302680584043952803344161293408950677706345588892414372693779810433670617656605514558917407253395272104113710561541769601708805401847863053536285435700163922287822710819698328736855771264697205852343071063847061500267163152041909078126754146489326231988153956570558153953954852284825369336843296246027346312934469640972072273434276431729034723042682065320600945541029823809936412716711533223061907265078775245949268230361954830092416750750866310224219379118200983714428308871925729295942979000680437899946596844622192239957876902007037962238091925772274738861854762883277013192949366837209509232091919789433055034713072782024962168021954820648896337379226698081684592785309220844038830207016010284075601584767159853328231784652701479412083296473813004978495739957824961590817411692366721958575178516173645973581903214991129130283195178631873470666250074656322754553081009757549306285389283325668540569782085117272344613155514815446889617711652297829528810292121169431946708799870846693683046050568713767547712048715615603138698745310350670877866545488760486579293791164829675843615380749963054384658965075437891742749894062315827817258612925790444580320700522212814562143131269822507930124600532370276008372737719958474640816697753061353059810156445162275150570764816455925017224242571350449578719249684071065018752115363382869283612602311544011422870687698175137571761361857748834202120924921524329802930506899314641345985091432584208087937923933895374842704964579754917286705035515132936289173159707134037710056830715654287759459768343140992271954900649959146333046641113011962201701182151628776239718739843675262427420396335479289399772750807587523674977868772354112212980426733956453213056407509700663398995492119696301067237932612250351660570328792751033475177462956279784057390072771791372397490735321258761754874793990794083720004778353967526244997391963993095369651506866997238787131262975577629554165551218929621776208383316599722440436376722176711269858504271972015499711911995584140351897112566360877812869992904304560344054612916525883707816870180959823126236749219869101228716615431244345832308579082103495127906644280291609793489971183083101575206621716202560679281612160165438549907955012623974915425125176281817854126153088654365839791269463752051109583671756400664951554804986731739380849090818725656689733059178405741958069535805019194793368201950295233964680832469785078661959124135442655576305355409917959436107785942954871771967249151157321173936720188083379562204398590114912284816120021700619925659574242783303788617256681612261569270882545329219808664561059784112690994746034711474392423325401075300333039873529482288314195845046190169862805475681487268283834573166794969594975331482603426244852913728667829087728201473887421293316243606929565340473296843176732391108983389300145969933344031530266983288261102907442032286377097103408470841889653062131770981179019115865829950800502404886888182824499497107734851423658353817622804041465371455902322198928130351494056572525487032082257450777913481710311446882871205443634186045292345613272751004368571732643985953384025927378428919191373089415670049013512634806581424014265430417549312512679164409395592611177362749798671541081099973784508805525632838238866790320090044977934332408607595549614187465764451215519541878924249363697762742527324062470624390622067105310123325806536122704468141990516087619299858478837541262453752921244247510919911206671069726901909968692542074231314728389443094967387559157596439758973418889804802701912893353847883953296144297666139203621762118847857078481297736454364699173922391829407611368237880178656409162773510370954870357410319882858707903435532248312714800278865091457553016424711050887561958890871979012663648898618672824370274818958834653355157134945671247212162121321656255320295438937304403131077845403446397332307322065965318502786017346535344780070684545821422101934117161878934240603524237379856621859165513501429415216712540121999225685869070191916778529022900618261622432223549169560244607527497508308209364309376070264422656343543689157367302328282502648144506768511267527150072085188278099849039711215016363790125291689787424121367653087043286448668811824060544909393429668576339557621439481222085399973804433915099747122408154197138136805645493277334551501934161617805437191885714285633056603931129946045265110283052532234504547669716102877093898753645084966855853695909562387611404686822813153183133424475951484887230983697115008758534579222276052944118642506417633692772567372062861539357916687745705942490625163622137607352819397210240326123376094697207632656981287458947090060852349916621906489165482165671587991107467255902786020025094956179125583605123913149838427177349794045607367091272733096182505964620236002345695391277971838806205682676371498325456210573440784093549298372081787335261483261401201214495845721642950710887092328856236670387085837636915724543192948705469911409779024464905137337798157565845406738507240213201451799273217819741806158426434217489714627468034714121534571057453024510696465737810957235976806414276624788669475340229241397465951983985114502995249275735218999210152901768648840118959491100847153680770867517610144312890038140175332578098242909308935038901088622435723461334428340964438713070278306500594408899182505515654497204229445896690819364127093503537178485005204848950531304030142493898505471844446401077885737809374256323425089547671376063997846550095479554681583290575148219342681535200259678003565550393671271920327219550799162499217246271820382452244846030188686412934320117355118189353859696272623467850470663828624261214631798556889603894599103594750952489909326743288265661466679497949025213070567763277822600841192627900267686934288536772753740809563393706822874064377202362513413871976540942154063094815352647333641723130557418360133419190499379874065367583492994670025133630482741913587036230968979709827351320192953160817085196874239157011047370542660492799706066984081174780949067108502355469389591393715304058852191371974447118991008230732749773356529451944071899706335515223496643821699390941321803459988791017624621279494379334740426525834056712073715428873175758265341835285977418585228576852195010006428264627873766014531115323668054581482301447599612357254372105664882708879051528258213768515444203519510452541717964908414477780865281392230147270980099024457064206694840182175865987217889154797951890395226368637416424290391385364762870715310734969565580258369207729516996672237732439050722465755432379925060340124870990540946292298088222960300616217047854362903417017839928171806613522310969915676783042334658407771024947398168105664793784330522792692574499112815498127810406661272452335322464423659781971446978829080977800510181856172351071296510369214255210376235146064651617152706328932981196798392022243267560597394159738999180927125529616336099009775168779488134462084245981753973361692708826843446598565690557597726610836579058569911762043093346786208259799394044218071275877732492564288635166575779363180362725845320016490650971449388958742261124004731006250899429253447376827668008246926178154399199607216688652052474365754819645354347327001178238043646741050265722550296620633589054498934535870403989118803591264441172088319291030788448211632795647376899313753942050006951121169674664305301768610169784037852346720320628796339135199103256666118038262255787114378020533922293537412237510102234506528074844151401366912392281571375600749214579451777930765279050109089327561203727627582440906723993363882315875692159198344119572574852905153337239614334257695524409301814166551223226151320655337381241575034773290660876107101756464149412451752069937983689126760953767738454313963500680497873201115334944528240384236571647216497791403268153040159317442769538807284158571090152632860797070262467439914708258628545310497858272448715749345665529516652081064820316584278656471583774898650872609539206487872298212854479410772541757727376173018820748648051099039288807533951673171620218904983629845716925066791916942221892962096708729520707150557460631387353909471684453995012684596924324763916960521626587219464613208671713679764935102179262262874159566215371773409947869816193728438441150005916896416854688431912464035805036526738560843768959524559344671627337750268343410687009056292746941441116201240883034691300835602702473922558119321308228150811600303793730728232984990006345078310921102402329637955340199536752213539557375813888039679071698230280255552000544807110608516166290119727449175378762917121747863180012481172505830584260561552583826793430642796845749029374910083570351241218627477739292651097272995482333195468649527503093230155989369117548976267413041922933823022960744362569695510476438395423077136637328270608467981947596957687222106464262526305927669020385241648404047048384156206611322052634996970729288912352765194938901571774893233472138796677169863919092242490595355862457893573236735971880805250007859577400840610930224904440574089726885686180665205259784194238897164054402760838883273467894220806066706003031528626982786122707293860426490664517801578101176848002966329609915955199993300195912688051946476256460880825860100989858808489292429012005456820912100888551062372606200230697398964879564323535656122988162548085399658022537239043649680006930854999269609189042776201387974570582555730932478679781879400736311101326748015899886639621702825126514645584499605327327753658213350640065240212342135563569351677539748874183234035489789746965053396651299448392131296357284606988856432638303123202880960487313590919626575074711867372846600281568243424444147707099012570099885780557227263414459787370815769390696179148902805394213852663808532524243557809171128943852616451111862670511909715894339123057086217967745549021798932533701965580301088332381153069502109597077713089195026449042194401742795097617677010778734863470096711457255711092925826727996973774963536150510220469212125648824029170241687065688795786112027716570276220126925361074686392600228565053133513220075823217169106611453513010143901115555448250937452074392188512397763798441122525317641782342587893826429040441133002195976348662969533361322362043644403929096665602147346599762562767486848780624729716091707001535795346590213571933559120636813958158393784733045114558472727733186983064819084381238775622750044709626783747563082713015941621614294177257715637456574575938106927144304906739684905811564692751460450337780179584868071651128336118797518918842987245274687553200005384600310443355704881526148613032808345431993097472728191888577416587176664665679687386933410563303948870360308034000876110611206134347192961358758601768419071373803588127429406428707443962967286676298418246475584404056952865723339353905183170894464233798237995796842467077421932367767302068613204527098167856841426164806979278873149965482811495548799421103103336914389296277045468749993257224134836049366539153608310716800912820150582885464859773023203111276457710730810424359250526576336884463271259219817919831291033314341447997441314343155787990862086161481881209838119975626089775755515919561595541722980954576270133752173313910891098814338393116852329581482477314088481860324956019484938552305470338747209957558732322328571221973213366654832390524491859142744442106932489931730715909343064338843989522425878896553106918708970097058005719667941555323228359990110740717419580032169357040696847362198585090981487492065257901420053312299695072320696668963812748823301963263643311407114767436883361794163441407187305805958284479008506347017604207859740824324667066802750204825316086499819373899328148961141110257917675192578865340280598092527839296913853106707880844359194397719808758652110196303525998682733987874181630084823993833620897732580623674221367854163208494500589255051640191590132870453084484352598922007849123118371279341878990783107945731164528835870489324206239193649443668820128187770490516716155586077816276597143233305808979890084372976430157096624848974529041183863805633948440852739971522031111322349532102339442711983619867700268237922493252644234547412735924376445992838093082366099852811593596282510036415108621505874980286216236371210609775097429338956862152688442196722447396817692396813066330570749735725953115361098850626452531723301995149524414400621849581853324364627554624969255907574975288546310424696911327003853257595101002447964220464711125043449437002915302791574643968702052395105137610574389216545326525656534768593541645824401695622086471058505102350104186393629800304593253344212795367107015436488235574383158688339481570001719771441858023989428496537521188461371732907069248906187874846072087354181478388615022008595848873470625041958260282525257809044592077057276199961407329239288997400387551614240029822354390831368026047083641885684240907525752373685267970228274731371436374278549976396069211845687067817883247794750460475536521474644005091371692265469832865733276164195512456144367812997600778055186269483512874619791309344507141051999170972018592691869960542310500078346995080557247547665117428754115909958107868420032858433208889879812900886287102695454703162519152985787688943527093803035156106273709534123899198095053350464757034953235072610252776029580984263524048266320326784386497356998216503772607739426454917375908494793403417832856336061197712912175792064792730671442992135880264808120401025532430066102427578044857846244892624456491490560910902497124419726128411274697992497986594339356734761845353340931184504442972354605647560781046093294520223134256416053103114513203928703734626452232697243765942082042868346364654547722122584087844718815469149073213148922157124263277819307473174308094986735591704348692533145447156513711194514168378595264099513827781001969254263150616692716790737552700032924896086455773489489901979618595061010481092347927285847114682032425518401109674879156010755495697749517311074220986944039187264875180203861671285945743675821155198592129704722339470443099468761432353746765231584027125747366144693232866104728920290388752374396305173153739746001638982553406774713622121954445421548143562774911136182750217228592867296199595247896991289528902601429847528150666789205748354634280757289983407665650529438969794260124420825496691902341258926764504756382430182988680699991482983177818696516486040814181804959966397173843457725043685373143500167509555521272190669997445037521242255380693773735152531095790938538923167764035243479214756453150943507609159256198947930573844311536701835691227636384360649154672202989717975545473077115354911699357962593071675720426963655207513139430759750162434155762143183018201315987407113443775379250996697192200831837091811448649273334916702439039330943852190238625003830493260192900185215516604263069185483180332673055427560823583671808896364374266783459362786141957557912222216568926171097643246833060068201632165281062862848428831053820853015013821439318073157232240309543638317222800083149352135764832319326539785215438210501974610129628400032409099490709193820841017286093500188799621738015672718757445879826513404054833895013443230569368279120279047763051719332185378091251860597414720677284145275388706475741567816741026687742519090555895881822460186648332303487556891866872520175538068714370748350599184800041935946777130730369365085490890836828115439303890993878467150565593161977245038887707890380281741762596223492327654137908849322408276759038680975983099966181778472051772276745797178773520698964572310652644309383077547615742277117930707391480170279579698170023860793268798431029150496258117908470835355962664795188828307603223974173002533428465607922948739081180040956068992342029371704837851886382577269816120748133959353932884151864549954398348982151527607906976494122688100402431143924042983848184846996558330657156431586457805950537926686108227822097729738884007598455970434347909911069919168430001601407831742043332275152473965080832197295408622335504231667655099441125235339476694337440086651092219396172931699326081977400414803509818589762542698090658467934416954814369174787032724799897087680194108746285003239760913621401629819511956485726187578348717803633719822935777796135495988260937429691321610844067296537011206558910055497061386403235513278678361819763725514686899898038565011888540127331335998338688614598234683577666221499831836965410203432507925126399620080260575282841940960011736744921548842751793700558364177464921493494422018857470918720166054586343613565277925474468166034908265218356640200311285399022812959515637100402568936087281372507282436718004759649371382700864095581584302174853816750038619279379568592511646658934140104975659079192255682383882745046869113909412192345815219646624830750267750010783709935390294420808849160815551049645087736580038053090873332510501046684066556658371137918249751759354153549274055513716276646172610308575843371780591179219500567428825991803183429005624201595510576370247385708546896098229702078832674083269391705879957648935413909499904796688477632320165332974398761570917269546623689316213479008250302921080741937003087467290141957999720708953860537638802896802344671744496595849916727741526453854245058516836585595781004476826266289895857815003612286352776106760095929411637796256810283582978505825125671991270763228636297741924524593393817744868462870364437750096675146630539213571207009858778362799127960417023934308748068106935923879252016925984279069778354846161053016950644710189439731379360022001499756171683974044741928211938798204182340975324938774034790308169047611555107156559077852990580795790686292385286040926038172217326784216914094277962591009278912252918419435886576947842020836411334003442973454390962252527834639248788396563901050887940684478067441059292776582987478344050051393245885331215236683136468203590438858238312791652721529196842363997103717659562859289715964488637731984897161659871089150773261524952964769319919489814568930934329462998855252342668906564939692808527575442031609259649375650012864109221891838620593441148542010286316020318866001867610650784218318522248506834709561909597455723785560727863080830588143510457421342888456165229213735113662407596024598218837412441658643316956683832366575555337002212685158065360522063764237200315994100683683971515470455894926302830637434940966847585245191589329776541850298826707682187971770484260621720736771550945837878762839389977093776820797802195896772363652125470005254119587034325363551221867465338235927336974667866540559597887563508781511052619717415796914983783263687828037549869195466249766662348897989442731951555838879503375067738910809434873120481432376896544489007760657572964260991815031286094929775522268816158943599177199610143806971953236994500773431787176315094473031169477658607640262141506889480349592582340929116612154666188292445062038498838037460845224707118751676882664134794862352431609857371542352546251069346327525327022958821804416401751204734215970711959747001706884819116126509863228663656833924304982512821521764848410573285465393284361475910196941550862776967855710103992164415072730324904114270389748311353513340042249785906619943188192897343730758376991812804689626962284958792323152794891143880986088042199867026868256989505896775019961489288922911026775888024000253101004162838110835874217883156679248058964444676607825270923680210196715847703505909381810530601936142741650116746980682504567484187876154149366991327890375170365987628486268140188398198800228002008553176757068447700709730509085873432660297940183838728700447122298335512384807421483633233669068943258503828368844694857472174319120859570059677959882807413590047626426783538353232419604207798899009528043672721636192860924176243818015147319094761393580742064739132592530730873000126434045942885281718708093891461958977975640037895572896283300738502348514030272605972496121571564734244897275080052405707477213060109007535462279953410192779636346606659824052156775741281354984674027004883766611371989466405418114669568370505579914615195936625184260068072292442731314379648617818427936623877860039011856560866783975827396870674376489532203060804129242528238455013847381841844002705600362024706018930499412908889828561351493586687740009770769807148533050049192393311544807574852057878087679111476731974058233688868055814561411323331005222208569303445042247771891654647270011417457289991513645380956719126941206776204289698537634983593279443825870469245077055191769776608630822310209211752037450490482826722505384128743420322879927496769226745598512793772415056319816906964386980687869703162598646942183818010973723310616574473379409994211479262292814104230055823678736644858014966229675294882735142445722499702560656947489555807381978004881921120593783394087176676034890765068713736698902106575425370552955497720061004081315385404464700376065322834847929312593528959477417027651667117594497231476613617213523185633310338304976294264937205962740127333747451628962661514042059608420468870676283037999770934256428201978162229152875039628928495133413366214709250918220166590409144666122486925658296169109214713038306197269996329097707724618539198782769702838428466755583684094634247439762613886971155237174511427324628906964912329017934624195294558648267376663716265965866619108662482996434807921144594515129076071425437545074582848636284249558275567963066412641263972017529137751264243059540282232662965195909981680699908480290056834345052102652329869341242746456723113143540883621180591421094094638941893522961832500950637869155679951425119125351793795065076052479032524441952296766879811021958610843482025238964293659292295112950810523144054932566675411266893042356203334365532295946925581049047143714906088101794798293290109780061844410448987106540219414724740806946761162613515051387112464946685167521088050269819108291357839127917315203913448776471855725521817678694387507184934986957045803695168980504863582847518551910563897007955667987217049326057767690964699262736580181660744534475318281384291029677084017734400168383194328327283438128430138608551982214991582272443987368561120018356020369948276730624410029136228508161018487227925572331748498268923847319900223273752459887824105504683122543258403736598053225906939812668200751748873359988791758642580492176000902667330484867820322001858501376487477097639484567176670350088513636334084156830709831033295416141834854556240807731552814440549029214637243936807471168000391316155432158876826414849396934308012635046288230220206757450807255260852316965643474232287631490997707291345337643531485668132008054145567839459060668503619279580158177395839267694468469257825910800943981506083361240587776398883441424550122329308631960588168449060652348364796579213235266343109770702179371207406105520995103767835303773994701267266658472490102760627798281638244012374141096519032615703731448730508874011399220341881920680256383682404139933842821905809946470923372786974952786448432849035665216463070302000934643385822626616105258240591638097172680225642181321733829882830697796794042793024037067712662445194858093711816282920707087888733554590203884063043114785790116837066254229327214724983965725670576981371764835968490453244514187000435395698808612294160836872415101902311208710026314948239318240035109727450159602705209020707351538687851420549763922841279191182687332322205763890254441907527728726471641024518708455868850899603393011505298031837443343263552216492130648796143407041197350428022637078232198274693626339790998247273530388506228759324700469616697897254219565750616485620080654346035918385991357130660374749683875977230325287255647277513743182296858957757353618479850817953782339843343001969694251919756220823515330613511917298517455662811677854153184857273781337707493444953379244716295469094230133108022644868287810749225078550477143064790643148883882504533039032147558769953753805280356935950769400703237870294161557487805008171527004193220611926961693496732364957577559171522238798729228380770896077886745393614226346760667731160307996240169896403335073817062843472124117334830081782312145791256311745068351363827016022946774808184742798797263632212186522204835312970875856274999503302409909410385481822760997254632692117985340851270411041121828233459969000388221060571449214808938331482518772627949387445355827712152477195685076995159578711817919307072982592129253715275252105568169562394980777959043631144978381297949409690084748407575147579025118741556959279412278256686203638463358749149718719680128558291247059832902308146108100922031030293619000755249306008557311236861427756575320240936039485641972416936574457769728556914182697913101419277554129388428691627081725091765004716167061716949450257064696652992558320154571424195612635865301698800080174777253990733018760663464381208359378668985548541482045172344166007731585450453806628883751847080155481712737452414067259819115480644796628298652570689916309036990155485375891071693975385135758189719104913417187785035321282441571178318149446395094498246345366234074436303100091408284014762986542219583526666265120806210634775741977745126825343539017414019326984830977664384350862621283811741535276835066283224038648551214787279761660300971199912596474121373728692413159166879870186227347267924071992472107984038137524318945429360010897834524581173512818126658666825190171404764314601668485543043463445336776107343714565760319293774011290393720135608527343985007703116962940776947578843825935805106993956914624862525784095479930297677838727295024828280916373605579257489294866371120989593479284285308209867367619535882397720475558646011937101464288652040048567453051999102839182928433515469531507165576799261427621398626995488897744542339707869758074932809886767683635080930259331373652821343483332728200576422491753025822426471673026949530181570933712405771240569194145282647622998025894968955565690297806713032818667771241654606609114753648669757424923146846100447378570050782725922259368376148464684460085941267743419871017364400374706009198644791299852430962231130502570901268388007019313293630457021945741676218248349813921358616051105262373742513333150830104489921921338715959906578594696987667856440850499606361623910269767165454706157567578702188566454719757685603913191346614730856639793533934696172298967480751238947762785796367338502306833075540364074891871010151311479230933581195755226287897882265734275275535636171128461429937309525719695414226076660447701814214840755595686149673219196900675899844862228951350506183792883040864108434703710463941960888789248235475315135670823791281658307729683374167432811205019441763423618488090934303356525337427024235030826255015026206621677285449198287101044874247638522918858635601018551597737881991756227167287201402474441794293138505677779569683295853461100840942491065869267319325826100617009676533230112443418837726480885171336276118609749799662394530379905800490273258044898454283713511494707745145834955963797990560410892996089376493323491980876801872087551484736124070284786571530422824803161121854001105431718671159900301025735478022886555872515209383744647270967327175583078207444846401490294500612294857796951190685497172098565020333529483344829180636770425687240716429469770912992312334378637928752058808199636496915108049499292812659237224786590308929037675968860219189386416213281664415032320717115411978937116777093281689922268965718607899646414209280642772093707691239296218807646265681912424777821133359153678368152949174492107965653198485454430591154464454207797100483664477728550308688872708154327199955177484929653454253507720990406209598266727640894183023301741368766064538144656757844503125154930671635363280638537693552941332950716493543115311750985305355306887532332725111319253136938204382169732713745312671872920629094102605753936343489024448019593363107293607880924059642079731787455504971106857302226201732551007002642208474752728294553575040452398275121716349048414516889774750608702808869836658643674034883216808157511700681456804864522396385948358334677210748920138183221389781256171855412882534319759110971139340694703106839759795650403289243687040643665759943846629721031527817227419083066088089103579833539251014771402163263100786294542329510220174487032538621656739767984124174675724137373262979146953307047520565365522223189263652613688823621175393949242621189230197554908252466622344183625454023212360843609097804328989010844086472654224550584817825375366999458759576862751754747436476134382250020614294321182294617628821572211112317186591157004871537365778897370077340206812668211478203562569562604313159618041059021280789470866833528038821654722669465440403828426628484148517687767437146623302457670094209069715074442395806693379815140565727003278462035966792634815396879536299905316915038722401984216355834681740593207223779507744408837177730414981195333171891394603629158433929995027388664356325860055067091067599442530466937652013879511632593421884104056455333443461898173385495944897186158704753002819511214161199151556690501908879234954711583179099372285980989767991510061092165426083912716870332921510583935705416393952664871591187650806375721180928348541869490197066184167298086990799908649781347480465632713175801527602699676166661710677856713144620940978883164051034056547763840093461996176323537943792847696900800002577856468972562195244956535757678296720426986399767645079849162925858894998306900809813137571746233513031129326087199993699040023875547433435517061392963065984546389370367050165739394856367145000433452827238194184468532768876670596905850656762636802689907933932235219332588027638935121812867303239429118288022063193010935306342846074044333779997118838430279856742623256008632159860733220129231099323359909933595231849926698014600308247302366960861713302835183937179962253711879532564572089416882837700386688266436471269560280051731898184937955105555953918791848171377077222629031765766336332149208795765595176595460794237714964435979091206531091298933878576362871760282070057731781462183128981459946167415343188631129183011134538689995015359558512378683793534041943210675036756713851107626826596943347488981916024247549541753360746203031743956968800231876838027230623255082090603407213722630346907158728175653202281420130802761160975004503728321829902642249087966535413448351915867505523945399117620910675103323913505504513549016915565903492439357931982444456866331072031941844015717522498268639760653268695859122620283326199037479028633865096659833240053221882658105351293719325865114870144528208794915525355277236028060353258088728581268672621677104215057597621291696226023963520979099530421737444874886135910889337970461837188767839046515652056225637676341630983145326517571082203085645408090405421666713758682629810460064420550931173218130032853054295324536248693279815629198284171923699608193032553107086971051934441385186904990047375017343219023071969517570751893768387716712275598245306952074201067131813981762847526821295256793884381925904721908876807324717562335341787257227608627916998818519927113654937087624040972019414806460079104626451763163634960873473998047222705214088964897208662752653954896017136901530698736733230717074765249471711716789924333090910228050434433838068448261235129144130599724305295411129944946685177387481586377885690119246795952014445256221432480686303609178787999674869782338678940386905048644223227685866266213400998445386820876815772033332472617007501485700059785829163482665341721491833964362291420666903753772598002261457866948064257414425307169729488649892762247067038740099135244191230722427031226573291415297022462071615742519717241535133805982713436699535613356587572508374668186795756306288970194553963514631093460727947388377294063401122063812664894006447348541198305960760508939056785014756310907389812040182601196673830640911212377361029117485518652924682187937441296901672106861802188092182025167022349808191119217334005715235324040159323096828559727501163976506237603255018865482041032387290753844256767097043234466907435293962958358333299703161664152918084472494531764149878681590271556414915634705287136793694001252625808510291566926301015786185720888340364284260087173951896573079737079615979111772006598973268479329206714584849833418323295365639229684240941084336698348933014323075713627724245541358038643394200625047413109978370082507812774910304878027157379008669138490436841240096498420100900697426300490187151201776193042522090400316194938784154731877360749201858359453108964266361809665652617961237022750721349465491392640278423849732373175865975725433865124022822967136215670017660495160877209469455703896094918638490167914159456318945795153157152365813666290640141796413907775531269091726477137977503297085131737481701550544159860525855247745810837146394629915566466000304482768338921140336220621193026545876066158299868906643254166780190629388804738323525100245151264263131984914984562872117826009196032348659211995530077016515739043802952578470060585159125183661751149705697386319291604893735490042158516803539961008404617918856482576535879928327892659070731171827074035635855096677361834905604883293489731899563516891588232702898598501445211352166809005384883330371091833981286326871702413714150882693310729463269367540560472398093547581165880847772802541585409994206414545484858993725141344301764586803637361896778945418367307541832135589026515187838688466041740059313649023986889178072302804119024568684273834833907460109125780383907827650045752052083539507458013297624418992742445846727207509480480866598082118849294226301400424393394715805784542872787106508491104982186707033822536401015958397518978802817237713625231989492514341082562840840260440160553470764922862827725100562972957036707113795209040331485121324264776482205083749192200425601968999315284101228933737461877564651385261945583745024250920014361077551840838734929594009322920529072385480313689471087233485700296094898899386816156697859755242003048413040958512457168538050022447393262443778672316182261742669512166670925490005785781420596394494810764287341509161101962854913151312239553822322886426699608963026458546934444113105268881210796437036988024865967481135016344969999465188508450836093487245231384573697157452628229380878600326893149756106118253651742072534706420440715312780949044738221432729246162392769139341872545690305139676618049056124795280796143419949466107518584831298336256801752835823188965878139033245470775728073793278712489067807605394045035048512659452775211727963342624485211224483216547246829127728636214229125737776617882401067457844131194269060688256459399207241574277228779860788322160945248090347729653166128285479078572851527171093535816938219687580442099140453239592024214745414528983885077362890547045294753350010446250966653620614026774792806142447848533302517544250994903534489156107851991786663865809719399611036853841766074001327591588077757246848515279100499135673164552445177850454460037873626260916601021574119174623625059050754226953409218206884380519372804117633552780245168444956723114735216043196755349303611353803851394101889266198176387406751679096753529820390029563844852678710541713030508742460902410835156696493453281934512517835805275316574063069168126547508918889176860500505205777324499103709253034039969037150860217862470373211451572233978884720482338510806318372806722432602296139591274038747342356495618732409243573889634897680565759599650786738787881778104860782709797359382158335109558252830363270434280477115980105319567500349974285471192700384169408757617122111290480267407734578345412444727638481181146920768788706304183776256310702768406533195480444307768092546087551834884222880445796378036456821839137962742211472108715170258194687805871131738647170282166014714414866023240122797416829833937154056575691045701223809290100514847566311278516377551169233857184285229078451221155953486439799351538429341698023104310689336694064561866034998638992865475513894970349872297811854634546434072468537947808172383856758985180481895750660291552804216394183788680823108504206952526004740316627691177559249385108000463876426923688399270431751286593838789826449899433354396972321248331125845587889261705731717708114499138771141517427350405459205378559628054349207732542623870403647632829800881899071520735921841487191368195375379101179406888870912121034208437242664966605564158674421288671579073309090894898245681573754872081694231171827396951379716948233111863001008046626294566546012626546320614785573154848207508391821535942364869856709155031270252184385239813281535364923659550885956664229670794825088407562256143745780724155611332764169876063290001088926591304457613707907627825024694198943464945688082516031720180885541730446896053391131334894415328896123652986895717555907089873127129600804722620420078874861364622668659088355690707110414867234145619490194407758863796983473730754033390797418514958964381673987030848281975507577941661808455297614641408341592237499294272216037739704263231189191632811638947754653887568625932178791366553502563814261492213621100196167110635535827425420468805871534415037482016596813679584972307853785600467961760726120895346466790671923062157051097897480141084556592557011666844232767576592426108338445777727524957507590514913540660669905800430796066111710129519209657433757424602250365368640073718970734730155079008210322496128097934209779285578150278642560882808916555101159473297727615597372200306128535665198392760528747799845987267289483711500366739886436850593018323449708280776085374926026967071915201951953481440779339981195254136785773151136051709221046598046272962795307694283158360328754432270998047912387271437344987334644746264195038172331679116213488161685344503990623524970505573192228566350813093295713436722685891248541865823418178247177313017440498341757836320579030417171587650164758754140823678388933394959570114605846434231022705009361060632975584394966933877552434424986237551969224755341445424356253435334458070534251040605399894179471671255453047365813428989040601972292958723272442371313990406476153263746754550001120367958717744414162965041477562236308003015023920746542683464701449443428221081271075039564402021715481507261919179072654949963403281194054990609455874076987590259837046969156064943759442633731960670402946866937541383191652626405682062910282384135032064960239270311364623479461427744032914667291926967690315480430839769784286349101925230796858083217304740841188162064318818080568423373735023150232977940508775615478474026269871719002177869552923409823888205123277997371943508410846843696353084048630672860621355964719373097412464809751686265235376732175376937279140954961943892247101039167787138801777822061022746491306088280957115395410581793449854072107471940149406881345194563010879286248600884032246301512842242864514566654710062648930256664822214099559803145661774854378365729591208093304648082906976784147646550138222932491421697469697763749345173935679367229531201739801137042208303536083683509168916958734105913036962942458370319474686507770542348023678830595208901887044644445021170088324419243457297376211672865116443174358145914809890895373926427587136062337300236831707261515097400783337654742980913003935816134738257188489438413162070891930887706796554265166071884276458789077499508429372173496214238844318984026267706894049313265809689341228362795978839009840251946478968059478053294135346861735876864845338810308153480542191716331760777713207631600039437758872205458341925344794480527270606543444770733416235219126735710368641583607220006096533929709275975645500062801947335349387968951033068292171273965209207226465893572007337122585579625095194526005123314404470012708121735516199273555993156872399766655515276450596717564382541283275538015244009615084993214012468494001485439641952146197503395771680542465371987278683729081855273244677794304991539416120196825218826365014064233175392818268445518396110968825200658703523056385727371595250446006320242289072474589184787268049103670822852007512566287745612927566698549617934666811215502336935366558730448907879167662799101285852212793163236504206662447639899839774131411482934165569560095893976587073246623798275648423517015267347751551962005347607773957368763120399280488473075103040599534234313366189844178476260614025374697730120442467466990507933051735690960444504979928052207713392756340825818347248891441545400815270855572332785902407293536012822058416288704099637964980223899136289025293274030852715951008055813662586359928948997507099554942227973643661992135473272783814989404188443050880044104619255081100745179788387890892478113523207384831735447240156514393553776332754563333825061867238350266775041805392542995296517410560231397541306301132466324904792747480249334520430573699652372199257088420990717123607021459861123610781788720726227733695383179504204480930225004418797338470648580812838827988562808435281572492981290466096089970682485399421892572613746616755992770439282686834522594254460928662467573679320280468992481127966374199001893370960610882686721901176191107276279346420020286114914114428285464296983935744859990031875968910003144350476643602714337583673172137096716579238549076194656615367405101402266426821923840822168288465764631824051777193175467362824135351216323591625385625994474708206431197251601882516021031336546355388453564157482829529927849431249845294517403322516879401155322560374887836138421817529386446091273302002606516108419475047563060294816110681872948394310117492319937882064434576842072051625535806723538112959583132674607911934595512868430697490475059647868095970157955782962842207904616873796313339042606293466233673885032258170947767234673612887809637624283565637595618394544860206457254459597268036851822998903912541383476803353992802295766757384557765306177445750866360436336330272220083806951582407936569331272834548886048531680008287585944193412841376370205811708003453097916188751031800196900255012256180437341024131814539703451928659723595384347666608404901711388494995791085972349299613808852923442802181384493655056132965784994072241698018872834733687584880933353516160799499939508075669647551540148224414162093751973801862036377080258720240281567067778900481743008168615682840181872063125157583723524969654199504087683660335045129444991177370301450800767069262391742567721302312170488844851731186059995425995632864663750697823651863284427842453478941120049469290875411321323380042233582633451364133936225379947113233454015114541532741606189322234746609359022653164131644216901147700217628768626670193505720195095280454650182803900751563613423466580485228771525766030924924505443307108926089597137700361996709255883780704391850774773529573644367466276550050527306000407586680530536887929138718581560392747039028639357038660495036631358286606011619167547574234921034429732032388095607990543725010530437638851846543394064508520481534840746625048107238821967206106322057353462617875518441012111865105167028441085525119748953173119648369309170199658263301583893720422821911688930130667825476073429928527607543833428130072137523564142050968017846245640574338905464282286863620406604219734644667049849260502857953332386669371293054313369865484562300949258843525939362356715959976826021895182153106859168582176426910064597642924207234552778598126621920995075570456719398598119122715995659592607412085483079275455955586317264236902722812397574228452001063729114628851640614538389630334043087446774999459128374729084182341906186815704326150889177926669404877237914819808561167650863989981575601024443691502514668640858376711584720110471794086052717513905143006769099718498285021398238276845057967981775985077870011746584780929254397827725837831921798998554278442702599679421702259186946646262292035689951574451170404334988526773529164508053113906379266633677404095011709620125526848698290229560069034869912028844833660780617279435709946259721182321325468025831537780023263709252702458279856069136729808629519318615279733557666513826563090971641779034373954539241355812597031612979612369411147586107998557929781009226396775361580132446554625519124602037307824852759395895152635475452593756051323569955151872166633635550523139134190120294829074927631064736096471509952916421391757798217363802252574336837398071384399821326686742293577631192004101701990937615315861646758905537725824921583686789261678124796266536753649938682810662368390494343504201167610207310624406377371448054903243402347494412670069296847293555262543822494509142455381605141403430090327869989869024838954808836727697305513735731295065976895154881882337149969088509652535802567584777378046534840944538709724723114630781974023326114077948751786948183677027597106545071446281206859617464484775404775823634661805076060548718813294752335527087187810729664169542389627794525557776498429559256260656237466653778342541456282370321421334953125502827052960368026613629249514217745026078627291716327474146915640668268234896168257954058793274515894867457983812626996807627466628634279893110150809332753156794721080204248542005842676118613840817973845324349429352538426224757702602479841937831329222120972282267617561056653276871243832306082039541621697974945881202557236356461180476993652337064616893526343453828163319067563489277675739722600616438693265979612002143707477389540159495749124733150741394260559060045806134271888728858327020809859937244747222880344395135560550188182722728543258104692067561881018812001275738767760780077766967628883195480154988546998703992714440782202904802929907286031663450993143762702276478826910016481527834591478994462569183739073121554083276941945566125977375707655123196164021871557009695581024657052940169289358092643674095733106520852647371663472520678538556444588512463047742537795570164049453824194175676045648489762144736501043791605246877308205819045965092795685925579639877392296599020890470444193822756008886048183042218303844290838871465338959874636481549691677191360812672218222597018521754246949614618210813419030167622446317805830574285368112645583004787318767445508686572083239965161772539475680384837588948265902049621972690666898860871553932367358596901823809894946796208566359914993273774939410944330717698089658627163857979935772466783360519236415690264161168481347203028490017227687907757839841498929025513424754523584606587241482149735647837975617712657004383143356836846253394645156039624345981221334106482837211748335743403235797275621875385237126471682815801407492938816991203052460392157328717041196613524304447708330898235397443926211926372032934433708414740862270538921137812312964818526561567372531889301067560887749758052475495854700041765904177557216194346509518977390454609568102909153357337473967826490539495229075069163174693207188533793978146965826679620966969812401134037602692350560006902330768517364057614364716288701171147498414968101262064320475510039643838185112270681383221921838940563180592639355979553356782625622767783994198623406007933209519101720069950525613741128541372775225134620826056746102551661998986582832596745112941011999948469193751350312608432270578292231094658948458567131135083521004873198105518550266854137480839010401696087975727710616812446468180049210728716042532255870356231037508361281037488093493142075111694780814966085342375896860611829532841208488961847157415049599552579694805634947798670395411871112612731754622054612470193247810357862904973318384435495023839478182021470819821341045056024236941786980287373156125729454410692991829317987572276337630827287397342886053795223654611003070556117573824157041039241327727282145169310289316465695105881219095064774733584011620897951958106730280401884972817663719148805509451821852172678310506688239562341493252350915548976231089980854328392076700211931767114355295474894019833139814523993741702935392922742542145953161176212474323370445514296187469073944283769409764982299917414860957576464167874776739453046280968682974952890346577276838470495178228945225998306977823008593934201155427758237976364569467970038827085540197847254046113029812513095017642984592367379877817974940415288986446034864698340345195525118245066403624116071074257594573312871152335722782496808986971097813883491475561063612135275735125195924600714638147499836301357990174765913403906132175454101377880693054303795866688489392448806642041308637516923762460088144770135148052663671399654380953177014294361479092395678915777686561398273435343974930734530824660258799535677869898133189166115003794311396439723617071067683984891614993854542555697798495758090988418009813431467351559057591119742989551987842233935861089362036577663768013956207673279311805943213030619101820988263100493814086317345258304698896595597469833217390663896986849778101957437197535634966960029186959738180016499403640865724434738307522247017229121233616534436401716782900352218988068894469972523345034244040028942489584716691372745087235029553092511734380989276235915874046737795232315126023819221531541787541627364831536544555212528642928135323872353424345782073130902167048022765725540510692575532138628547970179129194286574695218011321085987591824538513781481161656339850152049716796405560218333615756217573424835071690137684054080876395330091677515751102948772678158713654401626389961623600511014860945225676398004803408712278043759211128514317512673018015008827791567220126454430367336722626084472861859483558083641550418157426138770125122396404808203921216121730889610960155017415813187296314326421179578455631982604596330631374797223515585807174612260560924383720544662077752998133010647115581366221576592024642498788313892685359338528171036346273047158719135988934606930289973778087098109179826491058568218708230988826875603811994707788773153198173967051192911798786570881346367684019161525600841489865749811329227539345865795371289380089594934930885322494387556003112134779370944244346494697554918943184788001996009042240777651243893131360638298940275219103622392476644287965629214796503519304893564108428411455766124176997079992564454071649162723071026415781946555685396423503973536158407839627575965294498599050954583124417030452044157665731780364472716679616461174900120303909732239915786270178585592372928223539454598373570952260471943157772207997135593826525928042640844729483573665530094547687864996109203738127758441355191859413430452754645147507413350715126439504283281778241873828473140703040981971495117565711928221969144762322192598463644753946130758167250515828847691307909713687078853724092223274378363358005271007321625180231430345483134379779479327886472287870326761359255452364917638126765016313556626016565091689408916876497263377808655745648136070263918128633631524538807985240395333242833385022640971915676065007876480255992447853834068567079916868989486389007647952463466223749157796944538622096150021423847879755807055007371227712988005631904708109836522171149267674331863273519291697181090283894409635554516976180683574447020084602708359898919125628016101979104954436769576625095409490441426110576213138384131905423060832337065521612725182189124184330390945346975392114873771782137529334921789611225921503330345803689510049351657331041258856598069860263452518331453147829079132190925970436872921730607499867947424998791658927184480882896627018435891853562330296140504442922462852446084262935688612532589897152616952896686458263048754104233055640664077920891008923621387314596071771903545314013492235649000919865511014491811354106198987329301586702441297775224980234866218368008767399419608799480132208846514982523116511328050952123994401392244952414363877991263163905497587795141423262130629697349078918429233534705587809923816608913908802675573910834079310510685487608020471993411274030065971304998688503688613673178585948742207396443887827649451254489687576456479979257735645442559044868797487266791445831836687404740283327069495689509401840632427194027307463761209417630575435436935151267300467389437626741679811859820948663052891090695323171337568390121604088694866734208240723268604659090285595122641562734515588447126227883679717367150110787095799240778247488649971622175295146245917365072223394966775862642106562495125405070656169682885143794810689349578731890542185289270576650960002829724641796298270853985887642473399743706089027939788877231682003267148272009699816945246827425917139000290539483299272373626102414666800720258654180060351968624514461600760445777886705251099082165640633051528062507197675590227095686365446828088906463205615654638935291108424866763615272171176504739997398889117123520659183541086567944940097002144723538335292255413082351927419155126393153871847011654315260941403539878064298976949229660374089349643688247053377762300988740125399041257917686601770772612074812881449675954692800983287623625739601983818355590813478060868495557382378960407334813931299912735388103033616961700694049242078242056560076885747007233713961642185606991823526537494384304121349000307413526491156378912437135384325101386486228527298847281705217121196642154995402413237987838290311095166032006436706451867199463767750477067613746888511041596822055625471240660615879729101641250044394096859898748352723998737454744898829949088662785912935832142500323832066938073061851244703206601098327598873930018331339145226483393360274563323949570713180092138671892692488767415903338587525061684022989228000338113328864014749739876683627738801507350589748796874504059126419574273503565431573039702064209536799831070219166445840808896378890023403258343002341110962108254407726842526510344293749007869591583111318802726984538295213833380085850351116192607579840672407842111964110459104909191029168945989883845778539534757437776847765435563183087473882467444491381550330966850261544909353809823409364764974611306133460065979941090268946649616326310855819578893973388664839494885132664041864835267357414080850914139560283010566139420981591582554241278982520969894916029043936123379715990847620205497522602482466603889463693342539183425152875018586343047745470535308972643521703596748391917270120329411329974231619295127595992297933560269502852653502793284506208576286152134642367904818182927856703387394608326875821458050065587975130218226627289614077740406029793703439640479774463384320524013532857935100362740151116421783121775684934119227568294983371338040212674462749197103130116729042225355360370478616877500997736808603741021189362716858492433599555104211783157885156880619166585305689165057191211185886999710277696737861744906390123894619863431929178603180091307075897994510176265061619122564163625822561144869845983627703118600926930618044999495408933722296974084964480329798314100565431882207929211906149900423130737443546048776387785229726592539235243923480896709201747247905633068251186198064191529844482894590623144500064230176938565963073737071987765899824016871078576966783566487143772958448647082488239008709295298341637725983582048668207682386369189796033170159134574457557536939981492691942821436789468747953388060859656063265831140701932607073197534696024591940864028103703718476884541005175278416083836048473978246185681726605370199662286240455579284272694155447808220206766177822387112515578270373613046054752630281283242301274200748904342824737841101856430034892861721648358823739235269423393274986940207116315929639010724477435422695425638898193610073823697656325774382469205527089036263554435881416308320350466607872017768768220374588961349477026216333934874719588101873531223530567541224443561788834614455352399059889251437511406341465379474638870474655761261488113884843496232968293052481202768931574517456392209400190168223990826839934710360010155459594451671006988897656589961674581100525824525585484668134166021807069140277383442968704909009567684144788482027352093739602815140659796544490345435485892793020993006969103856805452506252573325923985120684422650052877875120126244980158609569672848416947391065960509519882626273860758545117432104003655309198413041844497390506831893664366444635569482885551621624434918635727849044224845490997752430108073013233420579012723084736991570936319394912668352966453945579644554368556100237675108739377706136254778214558816522588188189896831477729484273200496802451667531338685899375655813210148356766829605106590976496617222471739155399196097019801510408784211840646511426846582860978021490994896021567951530165795986674542410718191330263925795885717544371838408868899534763387053607844514716095726163614373557423511718102398891964049214533725555855951370263034572558879039039970007555276648784113426264526583561762337883597633082365637123747263829042248617790010509049257006530270152529545816158162621032879700055547184442052520680287674892047490742516130528632994694294625140551128750084588569915161305595991622604650811835574779522292916018930407150254365163820357801508391324709594086337193944279821744244877272940538760002677999473682923783348982022882579858655304691011990508234312812683811567388117565886390488938996040129701545761991246831880781626180858634477886726322296148332362415667943815012729833255220621073139182882448276655213826075415526420978638171662676123302751800694477118674774507720987764934638479127609426491798414053851848637577188596699280525168025849131624325804076859290710294539819589104363716968568513318849840948753126441734210969021169563764217013153502838179225128736789196962752990371269428705469965526426299702053609802413628952571897219816997541442719949587470829761042272786382705555443868212324388462761637693647837686227283803917528512086419229623493247797616495898990097920826087963549138466018933742655196266133105313362036337107321409953767202029614742731933628119669710747645930879956982869151218778449690326496691596891524846562217767268826653938582207727050235493025587125334792191227872313832585386892728209904633889286342058231558265178342592257130768612823673785801537556982280664219897354989397780591020715640108242306553525724232536202590117261082719422999482354247656075618204006503097119281249324088159479567195786944823364767164165354736061133392532517891631850921035871764994036492169721044125341491425642398492481380202248938752537514080635606978745271432319431098958336299091178243103154249676398196288394353584572748079435619814665281888619117005678409716621033883701823580389012039185970898467634178002071961441563113375735550730348441007496142484758041434030161608232920610551292708703370084301808203944816485763629373221286590767168846691715957257817984714641639274710876029386031992311708660166882255966418022973914460049595150039038888426737837548558572829024881048837665144251081293859684474701450306060293306777874501624757217158984287147063669977508220688959899617357627670661842515317690855211543403682255818966446569344501854581995611048012082084356205405296435990511073437989827234277946633827902448885149287200782464421205137579324796003658008372061089767035660679323821531674407726958537018560916437168148624807539940935140684210146821096684306756524091448859069654027026353980735563662932552150568296799838100418352125362769506359881282640665706371352374149001434538566995500438885180302569018636015343153890751990578923627142391978771121882445966953799157894543042194140815456444346062231766928646663609070069658320026379440326843792572170747440722998907486660512110953980926802359285395318618810231404223109003629674939751614123743050906502274863011856980435056916754728994904014511101301186057701856100193230908858426307241441402511275992710732030848878744109722873086778885861011093110373547806688774965531351863173503585479131903697475769892864689926306762702694441485081936061550769346526301365131760786393941648689716165560719083142456766548824274693367688145353219768060805444797915623276180805337016527771286509090405511737093600738114791043675474165048407732518289629542953163822526100770486731323003219501577989583452376340858461862491361363753290621348723409106674639931344901797116986063653073791324166652419624949868344152163060470186487247687456795927634862019368454108894710504224677964710600441921573707896972647640987362211621544244439206948004752358252970248914443969043119892099919363661380962273742222034186055193838874529873374615334998987352598288271843862895496191677100288707467896028758354006105583525358305192584121555739325058529985999748307108983252367593620555513609938717173465763656358352098198548260185802484976948019099603130636882369875801990853628305907049820633424451077412823395792765725367478823376367451083637592134848432249667214854175278512324028063021781077710797022941462431604999938896362548792489768962697448627484233056698511027376886503872761616176149564617875969710777380753291303128014468806303751178669064518703505666557794720956112599752638524478303169978358644318947897525012363754303193630161967477262386703937157624864678967489270405556785058892359539455454069214102292766054592999532589613689106310313932021633789778892439792046308447747775760012552330783659120607050906826730263702534519388269692580369859133030599979974822635532280652790322770226995009150316932796891077697134644072814621573712803345723189442085236317057637564643151339669598401335592440853865811104367464628492115385392604606055606361980258194767119944219152029950346408195543323533385915036254075384232036816605496529561249948462365101598295265020797080724497215254468407329358768908228822380003078009316226087742067002775896651372156275823990999740186464038772075499900267770486794341411965849155163640487838996308956954193242446498932762942979353487457630275054485661845386268068047480605945604039489772094978984617419373049488096604765592429529742160847074763628668655071522550592902578954753992937277746271774651815352463181239450416112475770625108879036946214467172715828389896370805445524436812396069282239802251207989519208119856118814440810352214488484389680423409124148024009074558594360856617184345147706198405611098111589710429162962121078870705038668174899137891029161112009608026973313450549251941711030922901081601390362780187707707107798592740165686889021177501920664536283697125089075909807992575964011266247098244697256987437124465233737710614397796314014799830509096536495946505413494698135063682132900559368308509540705493434720195633282332785365478391598176043537170086822369172194317744347057950753187273093392447144521817455244797225893000936336456902072855600255245320227837732797614346814876328253965634374863405041331696331959208186244796375418528460327269325633678191490203853727860190199515683186427706168339743472480731331318819876690206334951437632146737171338657659265832380059653422609853650924178228443288274555485722082589581475766821876193201675963215882081009294268247189728856700279297069358554321520960393663757885752218598039890605066988133384229602431242730815547755613386657694282410826858466292983312991920305627051667082197060023409248108515402137167483196454076689154735302107920415678461756887191434548892301993379073401738506932165205786907999806779781301771284551840192224243106101242500728301344846942008507146772441140841174087752444517657483946235432402963089499430790986958211597884057257221428075238376908771527665622215916497594777109043659836524440856697827046528881125002072742447755832163532240181516681065100705521703114185544293791295539220094931218129936490743094495343205801010440326187741943156203961664154788904186590502871186197025920833817898362847252334897898977330772682008692826335664626204318430892931998083841748803381836895226937703783837796351872560309695674926141487098823108537812461863407261731626317159251682114220297041774683300884951986683160430598996563698446188129307713130954823644757318889583065297434340762256021822692632805564447350413120657381063804569759114292273628754864250756407060787758046462793333302100212892359237793947122716769472209144290742805154444584296063691659371942345839786844594118560672739931849453425153599819191067509365160991117659477910326682928562215177556697326544954569651576226451305803486588089918564985696746228855759641918537580038832264139160595583954603887893959658771042467170604124527287179865093333282620567372838192508752049857800287880402577821563829763270589199432402044135410969252087009325424427272064359076379569154834496113272275343217280139031904048850056513203988661837037547082609414316932292840082737757630795085367785491630662812082808912862065189011105129007361059897604401755743595204138121170121811027601228646087208328484531902762356970543345970308038428988960653123479814519118613768459216191203189074383470104955868712822364550389474211744156396620008187879572783117311179995817150189951124587739450369645083011345380035606460628050329697922530216069669350097346423292889599228285308240857700879867726160722249781733217168142446559380606763348688885305631438926759159225853987570743394050668936119431015067358961704127496135425783058024186731183042185675280116617983138736538663767738244515055015051938029275525570687634503879474834010308920595899812448313657756038941887588987545921203741292313130704060060352984410941801265217354950532206866104833531603785525140423098320854266209193429810818381124223819334278527393227756031630960286853634026425047271508716599215869277683181333205512283951785463931529835579788235676541008382078956449105390611309275027788261578795977021400166381795672799050742683428499608528124975445619501237231962688651717438453376360617352612020401715509385001550466924519523543371496376675850602282098704179802637940835637077460261204283382817378949255582646520713538049914441649483271676296176929252899384002781816122559391719037355546374777488587818004780981476713670358398973535630522101500008477807604300172283017613639946066749829523222893373187019109904678474995160484194468491608876077708589001023662953583089253731133453122614433785662889411492362271264524311036977890346959523414235297594982511224080623344581186071869727556111368404710352818010299803936987985154197894528348233697957219161602789131740689818236657542562227990172365687892636223994644696444129003937756663969251717241619864833211378890365270919444207473581074137511735981955601901825838873579136082603346847371258715220718782486233406398540201533538843948080023028423293482446887815842499103856204297809603232142958550840191401253596781276992520881927546635293665891213341456676152348152270813347829457247909889609562872544076842784415135298812087593399782754290313764064527488331981762001009484522536456426866796494724391491604217597356601667122432586895288860765319141233496168860084691223120968749386500557418072737814831180974573372265281470763544382559137220532090606178319144875208028436215316767943029092883409956801157700119206468634141238385635466905279945583354506838491890693249508797711981169166315242658871101328751366054686409888899693675739618975723559086152035462384391391669141037928876638087059467436336922749924285289718147378031068932140806760001189858686553470295523974459233491459602616899502476325214052348454569300873198769830098200611501290610847607843407076429679206934281649776139415307855711287471817952694357471647291916857992850035367187582245213477807758245210290536060089167563695398677102372310542136607617707835044774163431503014717253096769740470978365746378963252005104128223125231141772634604041714743604772545089430759018864820101145686888915562174958489946968857374157380492284300768033834957627277764605793005637861157256947840159082581583377530238096146108910228938387130391845489933089242906945042148559627845286860277837550890042209559464226349413168997590905030573283020304931629701872562018799239999900089423595764416658037878638488728750934258171119715088960495114831595552220511333076486035333284729835594455530348342427480362265278385081581464628540356705626405688018099914523676892427407014095361062063586071682891946572854921784546135259174580807743072533494666508787330948340251507649166225235412739954614630150938914624096857083989748434433540024493818913331291523220238991043270618688790819873764470460538386225275540084580385485943342160335216053055301826293112644730670738300962226237515596147040005947678329799657953021125711311848325313112052283367752599123072743627114009122500572770737527995281389714592205366423759607119474383816210830941372650597809516298719416893771616672501383438604014587067411489448130104201976109765095878348278864924366556831547916006343593209985719582148422115662180718990666488271725726354913775041135649084031552851324417478950107215110090024665750795923401689247775070908381771530248994771366193781333090188215707070767849740304033172016126321557016203574781782657089875401441853261161513619846237971073576677965219141822809246784307540078487597209123211788348191846241934877267374925482132488321977667903229729321268511159461708881837893849550251266414807893820346697186301155661394365753236495436971452890266379350361067776790479542458374306267490898029827950094235057134538962968677125901767601650494277899308173798116295496079876811837435727064756167334848068754784793795446296705842704404316369299870176058776225100424922196656195230966858264529105748463879747159564990172359911559626967060295267131510623339965377972974854467771003049511110260717920431677228482577969823789586236595631826792135666698849309461903389717086421739007132992382978316908314013493343697193507756328263350007341168267887004628703029853826346175792283596671119804820282594837467815339599060922556348154111024574407131019418556880032913367667918541884887437354050238034837680175720475435120414783778437539614554154461238360995510438352356860351763833912242382296775895766658939446120369956453356589895092788136711615663714672640951089157780114387805508853829815645392441068863862921150914183991573908977762325960642173259291546013428699647026801882337110266515482283030574534073639628323223097176780509778430669056745257720752499185958375077607260907539317432011903233847821398329136796492471876526900590643034121747810730704587645954848315691108744307863704458787200280425845482299102907899376670066216258876416774546352920419086727644218629391703018202122363413563060496676934279244935865100137000910726658378553327149232464950451784589035775676876709913692529385028769833639486020249298869211206634218191254884361822858506877562567619909794241750646088312758172678440964730474374808502214803562058672734732236114210904118276535991917250300587286907926343498475928073966408937486649064084892088344727548637157044766405226754926437221899837360078930180496514581126170530829497142953095132303613806730445652081511478619400491647801490631265085834458312223003942957083901218878700134296645400185225258101569157822510357382846549151796601252459792954051628432506342498855789880030618961426599880545074944399755774938449711694436164568049008996526060184095142992104472983006207164527731538004654383117046902105253614501680372073620049188044317156025861765646086776528789798988907197223913219872514163385378497618189075949212145015459606057426472860223406806813056188737029254921243114999362108184434856913671804765789872273620617411072083964762107230142276764992619371877930187652977887997145875470811599332969935897913152432679841494612630042721654279323797079078457656944965555470776005382971626338521184532628710356827072097547844365350343048105754126041314613860018146292673813914200895388935231820817753242378946308910240055782219630266880135319843370746071521919539650416425115663723621892696004429329183478776409212858686666012248675169388175036000206634244600883891329165866119205569478180780629545650108628239361751908334324542148573028866152049150604219065861312133771907462905483718000407150150293193716076647356352788247826909144552815980743109317082057505511605716684353188054353074950472943275761989435223680943264875625383447033695595144167163328646803415799526601062543113935571047100264806821858042755605262568281127445582102103011147781797979920854994680403895349419278859271305076071846927559885654973565861316080376733065432588595702667776523857927267854502384332027037263890253335748776137212164003654934802335291225699224450370296947763802326325087264642817472244745430105273482775860250761927494601047917973438523936709478215831127892331325065010654426809575085693899439893514471096136291295723906201880619019158393378069295877736913448362525332138521180289652333028310917878496861443525661842368686726024561635712948966010781795535511220090172197756343711834223419354618939711859336235588490501320588154709886846197707557183593293325474616692355856723374070151860185544099474900738102020767891897567831566104381784712757163493037598980996974029642011731535410720043919224840023794038801327879931980964240835558777470127276955881604931887588305716211832111622762013287645573474857071899696892167815818737357057120632883717004657619361517371911932091276548680444135139881931369401015233497488369716891240440879820772750915458817640420110911989440604221263088808766449350899908395729230281306521343508296403621871031962574285124242677182831406032470658373355874928332667352689550294707251290782382180820262533293846343872839923257012408670824607629262556045401245415657217283646412721031664358900922539470439272682530428201947308810671077359470539319203027583789113023530987266371757343903406132856166189360517063461330019642038832943488122782638202198253518347384173990624528195602978396701367907415394609458823266468245559677442011611113869642642143993921583645316024621401795339392141288615882561669262994659935733650134207469751156645510308120559966231541835423493832124324240844511379015679573975938584620451089039759398525512504452944518785633424985078100736281157138705562873097932803878077874436470619238899194350734632196561501148626952320107032188808417863032402152362902028028823243719893967101854159705298191590373235413451223342341091924011796495834367177331732251725694645267287601392883132439036821349360426398057373655881030606495671959982995118474276615970113325637929821176345311371638714494649179406511782285479581856498536466695670966798703515859937938917321247984671288725163115423728851751432379717988783228957276521099152198525429597215429683388636434760873473882403936459260171440269685903763482554563705045560741161738010297265826691249620261870111100937636608296049893306759006351926876639195228112587652808154960728947842084451417732240686089359747306560810211357468207580307470324761447863558527872179795400539794126171620198810047055850921623468473727551110236317436709579561967780795563743131741594310389333547110825839949695462127647087585315670723490712278664131081806005700684526879415141353354980753078872636633328845969738225799936264774539463256596010515226507765128838128697305127531408641726464543363456336266825422657962024275146493222696601171031957258986006696338533345976018321679812879610576488703881489821897619886186151867377354503591937915483252970585852451629700338158072223151678548756279436042646053418197955029859146776238686901138605959350838791519800897598760746627328563537465444951247188825209175140937974441687292567647160806677042398820870335684094724273059373392994618966965554601213551211762415678701873458147274616466888466233794886705013467366849208536769053982311488409879110583686369182208253211924163526962140833941745726570861935973775003967286775398947739153855502665536809297557269843353160206434789707944340397375555038388933464732622590812468427156972120783018936655058291811496358812981840314470188596732513238152317853389126880486409676565814401963796779221288057690313911568121878540045395916279145675869422796643386295917358079085337146229669720574621211101566399503001353198911513349863062349252935863503220830533940006527491398474770374235168618844913035849082443397944808458680096753188414363407172469017444131401006614147734507304425043821356136193946429459389801376341058019397642606029386323049800599700943844236416419016046581595959964351830606763281053609883351042960026440655809508194630918694853245027311832463221568557859989891275477552181405662361883587679524715862500282174088984084030501510805829519155573923633231071100726969276937509248821643216072717999712777851384988778643463560249099282190006990704985302140002166325350102438814630858092427071251067032588275238870181049997480902374067328740585866072789256148792818949466461464190614984978538456696550356143750024846476787140596411103526528974869627366776070370712787471771185573279246623451176173711634341704380767680006497995703611018728595524250185163787516491927699739288175211438529756334684348673569996925731533687217047320001017608996720368055749939826780505790567110894421243591253445601147183639948692105997692150633857437638201345418814210850409726061380448764055376412151168450701268952686163774994362138760615678656794521290420962659058311585824421663145572630280077406328440060267280351423862202520326572797634719285113464436363344941402230417777923382261662141235897287718400277183096788100535116280245558947463417495182776470438747576485774540533392306645514663551533854196197071528098163227478125543080480744433344201904660037057356921178939043431935347495278176363596773505287011191584438731844995365164241354481547435933647781828897766856479214164363028415257759274973444907933349786338183481137387770615122216426638911282786996858228384885898196046019420754960294000208888953948225358969702883401282904881028274602483661901948444400739016876817993519171259086764419165484424103444420402253450083832423851792339297336913641178102900357413160388618863259056107332748457532692839495322651290845733412703340053016947863922125201950358598633036744404356286054870073737187732513554191774098329066168838380197814931055501042917420104905881718727218889876297643408147541829357030550514362522233965950485028828950830033853591817342751732122307415665259911277664881470827439549944673179356964135418388592255111359218773940528095374815465283840856227090025501461923520951572699835887901430645914601126345704900094594277094608400937387809391990776744165649913787633727359625741375324118616221975702624144570855375757953582534664932763129198324054415822151171289826128676938345933922431542874573176267414266259582085854589258477585387335844953790087713471775465239408987143819322593664564113569800243636261973963501597728692324057109578811056395919909422124571533490788387900710705884560568409819783828963360079394017444433630997546137312391668100952502254206591396060382594289169441057506456650262861564466669059493512410108632365263958743305548366527143381648440061901789864586257459253442372920136849821631243558788119927355417439711074667990980118915811984408612173932435397178827056781294480419719484126762092001865285738507817948519754860705404484523526209551021192726494919014370138153606903390328300170356569806833632724339225728242160252871255051464259605098305528662971647242744627617279461562651233500144110445329744961651134531077765982173616340247534907817126098504130943568471357594600656103850323768889591795150781301058343844613745550454851995664285725986547998789498936905540402083775636694153090596855547129178528171077464918707919574661314742068743996392457206324493619914608214225482602440700007731679024899733616681797481537212259753450218993526243394716281178557773339136863287741111121731738519646656108299323174791127137946549970218264513828556922688898769776052153049842226727927828105322968873876339649309957144637201106569648176170485380532856713676513206041037744507493436110436778681357628198652018005812327731112559357386976589450577693947877483229136906754392002599388208489000871451306685354027532412756031373524401991800733481007636812437540704124557535328159672255036275813006409718933226056164897095630435882457042760448895833405178220690772127322271588397447511558949555066319259383522706950037309674343069184874399081575142173295665579082617238884441048784675323293665804155149681246756944831496911883335778535168925328412729305038113689612968574368091889251078250925181993260804707920315259702858874176288624684813391951996492757973328352844380858436137562223710006763485713617736335251993037639193899271850509662635601122523501709558418840709369765716921974135493589292098558239696912402518836517850618499638290523824492452351309773548662660969455714835124403699711692986032398195974472449027848135386670096264458705318756686050509233546371236833461869453375426249385135710559184447458312039148322912014198719472588986134861736843672470516329638119048377378107564307064838016237122583456813449093299409651411164358414045752637593338101356925213508324487649443745277750233207521398260639270875371291454874439979450797750192468865135612874140900973834977646825965407692139146845065020428564863143483663181865437104892859824106844430442732308432900959745434120158393537521703051159529457533538679007707875394731530781499198825457813357956877677652487921062309501869976835767592078747287021153964662749429478669651325502041814032987350233521450077950334631727022087574679674742022420944416262059314388565504777930875140193505605580253708627466751752980138319887684206718903411817176534692874843452759249195184426607607283293968891535538459574128928775766955588140144406407035764626166812029382854164860195671611168171230548763127174845093653052246130839501889038383022541651539938373749958211266698038814277388224035760184165984690761636277491330370114848738978301856915837850629921155211338940711153960988324026165989401117221170156437440272424509415688290083050914111881750603312113310535537504841726963727634047626395858468302824628882385017360166354245401958368755657956558221368080699874203175835451483527388488420410708089068282206760375545508106775097365506662674379444207386446340521045849224579815226911303688018013748729769303314105626733200836649787140674193527460485987838047757376685217315108530695787136969032475365672160146428103720687253433180158085626144741856844592633389685541762022184950653394566755195135794146229880017375504742962991878969529166244971433942821955194386037239775852977714702356499655270986732652663291412994073877240578455033050202003305535668268325096031754897796348380679927852256072769180778712457884208667235478743002263366480320682180988385895953484195185042729705279141528937768268288997205254953683841371867558738969654717340421954559581487451732092885097248712897960884209616200126975209655163903656632160213805110889245752216617008092668781641381128587075274173556606886022104971326785397104837909946804806008300566994161158750756487072466584643834084233760720735420171532754929305809270117619480493747894172159439329826028163012075912177637262713776232010976900874065741066296781925811684206397764579776854306287566942951789079685642735095729124626384982577819967439536307060252782900831001974741864860963599029457694858310951815822070441282088878242425511547422187348246056128582999859786735819266932886869842502966771968207792988096883896067954301748204505931344708261472645729358873217602377831055194443198396416606897940147400038988316443701128876246815623004763110414521248000215415541324526137687528201797496534834047567733516938812618705756569146906494824596610990252937797684663559533418528014005978891753336438730763882813349276953325990697902991302884258326918163607484023315246441562294665443011856896816770258743666522522320703367680306933462272231840797203297486940631088287663377925028073449322398196759079446569559375252507391404571839319535840427539216183372232464680967827784150150047830657398719043755295892995592571913720236198275451985121681376268007867516759644370930329943436883556610295246945639365176141753736376522226939354389399802708376451608351234967287813875519567337850592011413455701081842175188421742703754279684272585711229180108019102276870095926149136767962379211383586014013147538728330971037568437101050870935759596450657536111256409559566289425055982195763727616791481087795333742159674992026219976293817132534098055074611759482679543718802668422936455984605011939165751310478839648162890252943615152727408648196798701149408624085388071305098749082132309684332389955410852953888642751155937459155760489585572474383633213171170367173174579640706614263131247309570868407601972098433615383544404679907797062318057357939186278985629254801624620168474868700076867466850354551409298121427063353559384327293546476248392821700162462683288140676832950840290931957952852792788701899100550309102168347250026972317887249869548673314265470634501555885027630870568000866234807417873991547382763319667049098330244721108366944373314799692811258426739254332199393230090515821004760078269426595421969421702424489446443483412519282564531350594196749191466184594829884634438259133692285852328834752579421559522468810623300110082565923980801966189245298358941305536002049576599704303976423492561336042714428598230592231692243264500087438953083525932932738881829758486476882425381151967517267383217147841366160183972446938180956558630754534336593674913097644427720317789644286087485199236363973565167467973735597201088621642648003202198600522346310458744437432195079573999968427587279114278941692493637488615533050947631546128987143708361509663370617324991650549926269576699767353861760536460091579866465383312632153180734496168823427069900602484875752929661881093916339683995966701800735086788299012909432592442830216406484767700565502702687380824812086009622363710817139561594873893277627664709513775741845493708535668554768358067456459487468158412043159097405270156734609254817841081060212118200056684287611826105129060336245198201727779813485535317264151956531877211558592940333564813292781378660345244020939647890149395364077761278205515316794023724309846880205423728297881188057124919382558366222233245533583199262857595589737358184968935588924340845718412859884559733483131521670553191989419920453001029012622941692126886395302042024505310961707355192843139798166696936952685094695868015273001072470854490650376730490005499459730510028939261618956016750397321933612810992973856400325490187143749072737525097693252435792233334395623905985390422107942873158702641762528726739649861437179164536150858410356625365247265823089506605089255896133750433678679577263038865555645879789448849169455239398585593684929127974184744208093546302425796655684921521197643249075236034183899533966747051818553597120400036023308548793497858472665740352721946871719332567308956695461558836001472608942260783519578373162235164732525241760512707475304923084362207523146330247669035880581342550466051659726996534115207622495165327247151407988349342806175440685608275241132432710411984058012008479106618580416936719573706329318108995467527606650585702561671851255871498671843245323794825665133755608562689121116673778412494642548431419491164554728066836990426152701284192181237165533892829168783712556612011355329549559466718377141391158217697169708191317759154298278499595091885854754976263154817944384950559603098633411412424846591256481665909144603154083334720780774020412331622001886770511814332954168063947051625339898016226664822389081432502034709887789354991856314181868610324303768594683846289329497402241285003204421755246087179207009915965291156451695036330617050996717356803365441120450163451621253360088657291387950346408503184616496223113894756765741899588284407316410161909271366195692254256567777984331786574849235718993925995077711508002849426103126728983724727570214489989967769863539219402284970184601047365381473533234855188484473067890449613130216901004854396161583479254510825173154941471499436455940301648071060619967755804974697643756638243976966675805329479612767138708677311356354584077681861438131884145480374016234887437023129839159233048506551691596686073984833282418217095740278540977379999106322390389492389203955903670681440165175731592379274281524321039650134620020396361771294228706011278076047380054390126750252769123979307901677013262458885292049642339180280550119928881797564267164384899108138100633428409135010681890336942166318589803753941021835910991584454139098862739363504124905966330934837430983265478739709610802739097042061075440187109244508518493918907829438314752536784796612981499652967433758458074597395637660906869597242451822740792551242768182979594091327412433255559981352553057440760132998133033955402382405127463645876785976566437671558194027889517205810963283516500553026330220518630434126207914616960975293151925629063793346779531470483492556086157892849524646062956680098181532378884370110327975560808540322127025408374605934225580553889646585628162797367861464216973723450917270017570641897966108002132965298015484781005687008773819094794439332900482229920728044922607873823956476803399942202395087164978954673071228675992870183987462292357803208714130106769070979700139170497560839131207043916428892841154357194155441274902818965851459465050869054541263387388971395898891474079611051266306180200578358634651399262674606508906305836764781719558418168439438272708955253974034926874735287344140752631222877924346602620514137548582683571087080029895970679372155007836788477634774277344590196562655631997285057124648521437193478475811664260594602982606353254826197649274333707687944264676763535997015944701120462271467103042023013330685555648678019532728396945561404194908474928630764437649330133762064768916001944792985003302362600699125267597538068943433445489080222148418120159343823700986269779514036988312309598280289186656918175867470200132897268055226840941927308758718492769686028503429815464468855432879531710163312537832369734046748362017212827248036611641193672660631566997924929256072030441502564272184626121422000890351613941973861716487436459711232943905904109538772534747578995761755268198092995784904851618641165790143781973290740133263574879844507644526531691564512606885249306524733131409350614952963403846742693329149909266145062829731772561201645469909900870570692082477981580625195511381232476072510418563388635739780936073252709936804050019073187718467701025372110199781753403985696867223983244277725010860836459082093771795293892344252924964222434279516781424438924039599469956058019531728107128114327235624021832983122255162120260699709142644703495436917937077644776791390086004299083076345825401441408379471562260913902704458224756371165612587636504397176431106783921282332832020967023071803440652119464736088025032234722723105221309314990154350339337748112089111445768407902121294323273615574094755228845085921454905431345189012362440986556768834856023011403937259129621561105887000214038387061743060781239592658201852280894458775531139346861768677819815731726570746006385830150134735119648892317086961491634476542292079997598473842362051417696373874133242946048454102718580485558386518893063947640047205250984416980313835240707694472201863989151486821473664718603049526458108036511535369996003944953251791765545346500609466288746709592265456367017951302286247758334945375503104954172030667638107435017139809454832537972583356969158693683465398830410761801176525315317360862422653555806334137910263026718613610781428253698242925477189850740535220239967137569504771932185609418806943348201353442305002241651922606822897466913030389468237568856603790361000492087880039003392406247335017695523325779556216346000153313121628244064509105271881420994838586089307837850232718454785863935191952510751976506930235446032221353164302865281922340369153249691153371953298685764126946496122632893144101754561444183551876276615936788871136823949218793659458846696367501138173479537062817321989824835521884930937354634411225992006165797288546288444614130290850321204808226683941603330090460011932464247382811118922595195883277151132145572661082107273294318119000559421491280478087875401994757103300195519452740802203702390263344758966842917431649082437821733426520134379310097870721303495951014682164090063353329360794082517629244490412848797555909439756274444763960975926702487238991276032518005501494139853028602226344760734572395060671576792719462678806003663998638401996255411347460634479689466804697895673002563098178048459379863861961037209100372732815712066948374707478843007231261014479656587517268803442952004631247640549933076055064116600412071669405413510391963032260301130803080473038224347502850873394188892728119736074189851630660690501593383319272091301476339774123693851628661946759839202924378058642491481200435297812429977911467088736859856737885819658916988932181723896974181639366139732713307176925069688350164245596000323972979891501094338100871797137830202936631234019299434830546496513925091399701813137626420210719506896209517953590533935120747815867197547598923224048773797981797898021765647922304648373231700631479559603151513223643848700377924804087310898506288864850439726820013547903489995484807955107364705833528885866721194321944613456344478514228831911611690365743553481823702869436941844299629908240380075823743163846328284741888325301098603450504055387199209708865375289237721125604983829225755259345996720309566168456587772689064410041207610497281843086625239758237472209088150753199981493151336009937935059572221991374556951012887769655778986412160688023490660107349275113532602853434953888233047099970194211595989023214928879736469378829942605020602709819670204830251083555644236844263417451710877776287740331168407052762955018850168279691046548982487658512168008650713251259975387996966310407805298992595006449745845116473179883639498198978531865121098738234557172739012622601849673671342407753479722061694743664352224452756460607780394582210019395582585591013458619026585301792835007773142003933695667860985172420575201925631017951765863060304659396118580827984436648582049206906568549786208620374051525244149404022677271816444701263942990180618629667479516442480151524331172963228959405705981515455502643324756298242587547866427508910691168987697882321799720458521477651973962514815036677751921933328179559193094466063916949327813397513811175952046136418768519546142929466727921414769185175612960344177714534538915425973649591783639132368885886178613720134825461090165946635777417929943147484034900158939242783772787688717033121176340544218587553402445758765339597008263468376104649206518147198967435955425132032063715047833099158705008283006465626612362297295585474436580772911069277874588631494315468682585910087875241945087920985680166399997131905715999913705020282464352840974890542361059667745414493539995700652547571897116399214829457242573369546565399216403747505003771456975612148963465558212900321209895397125346136777078514738541635559826499853095414307857992059638375670050245853519438527873270143523438689205039325907066275570647014352594796253273449335042234785644996800621342169856234468531454024317319029338922159818941985073662558167846079318681805595540444254603908276037390502777139500199113546590494805780694456729538091776731605798641992124520652880701288023869896704514525574739693220166530173951174990965476291472535771564484565075906533339105691131603483470572496370773140478716192010244296882998616247089297210633262872664361664157892694233453849781564165766669024947350828367095610804889696718675509991251252505363705235472546582250977197212979278687670708864729100591161513030516043484809899763175096353934706847397637997746826413126550278105528525459905699142462778051514018658150004271456036057857235988466903274834168553459866859533910297804678691962042828803129100500685722378871506059650360068989386091354317740224339209924486704016676491940184007329338508458670506497998123886439879031507695397054477918425666573766520295850333916534589406313618306556213432178078318562222953363833011658894967962738185055357242745316361124028378280635908076152698903547414814730890916107581843641670614688247690371411243936968829065610313558988077152865948455428086397831665525135679368842310853193797497302943375293275787274288321875390345196611106291601670313604965894837482115618961431289549559532987495365835374501799715281609108318541211160399202300789646838899486562286742455636680099790266369908203879287501243341278179879806320798169283562475901893703171718992316470392114608500272701452938889617809059618802918125608166394300050265126188237766723028712433061386148139981197003355765772248774329856817588820025525379368308364866443060779963603477053250440475912014930418790036163480004288507359810322427788234217066485162725461362731656020832235116204705761435538269330842636990986612239632898720043200171846778973277678137055488335033482554507952501038482998487192479867481885726284070186125711921526298256644060093048496468960323556869532015692165558941854203606461179676136519540017220239758225203896941877871179879642809000957821549780818506260013361686504396400682672240527748307445186440919113113226276025514255046098391248663578711617248330307191691446421581642306013438670316185104378135569593106473814619719813506583182616758271481092821762844977487978408322069279367684990587949013850274112449135078963152442063811207512558529688886030171841860769124853726100711914318376227014063597194222553671312139659446432552958355607174945225833751167773281161119831397397241079591209941260071511744699888903224720292027501631456625192116806589148269590726291457456690089419922991311578798187155270833464471845688147441639039594831726073956496653376184544120380271996309968971632303072318482717129055641696302283069036771514630725661084222260209090551950338019723410655308063548848257566364860087013928601349340509290833241557569500310005484007925857289595202188120375556847601949863195180926343848892743128731019579334730497187013057395141162020131036919849666315365384412050615444114700135877426176997106529467797217351206211764472110165555985794438593030495553179527360103124353758693383644981188919318999991006902301856104685950690955798401071231036980876676235951359290345994203947477877085999332346680269782900594366237184206846541334510313627089866081089450333643263817556943430156484262876337093762642512513143260025432904741941806242927615336576382127011104492953200458438962680170767964004493520626204186843928540346695408673831652396085414985733090844914613214384776309183093429706006913951584054493048642461760843272775667885144648040122964040243380378318727813173308507878485625503480460840548201047041392820345957394262664756828419955081203195741005408844796867044036130720441196937112752006387293981544700707945912882797769836267642028128781636328548954129821961880910591546842480019482018362247908897633400039871627175992266912076848692575365863770533381077041775871741339927683059165817971184321952077690041902430388041553877041802326878661474056376377031979759651622714207183313972968199259220715508247616207463620157658400508294426114612243190061189809139249970845147549459759841646419718164735578332109765842852559922675725014931765397799027295672440395787158666188367060501641930621927865757607990874841763202265534459219270792606427124050450288205175851239781341716380902421540023874872690461381719755511449359574323732166463304860610279122460505199558575263143760004814424037558201971177103738230754302323355622121169339010185244289828862189284791260433052464311879691806566675465158233702982854339659046983612326579135727423981449699515929216754233752798880738983656056246576366401791246429606956288695827215771969674991571616577148445082358990174468509738496105120478855173631028200139217950156921920517164264677367824993153386618086993435335061626653890129275391328318962756412992144456775321661499421380688151487214389225762459682778015483006868529395631702781810405496513856781697695241377813209375653387848700098970512647329948758632537028754044139537381765850302730890310875039730213206318072257729172430633698073261836903549123459573406359733052586491617781311274700271793567458454601152372556415787622907436467627445315301839375911155484236082746838783680044300953482253442566678617313842204479163496474854966177617702286076649461163579523103138964686953138178273367434495827475616102364033880584112321519714089665027376969936700992021295758049616284530810084395680416860783314251893513452134213986842220180957237485655449158855705520940430435138437616381581092983174056713485229973033049197965984578157452414556501600464284360704260184852788922851291341131905177131622907379609049154376822934551597583875513227269296488014128214390343585640691326199940437779963064537806783685769969675032477071443623401152738372541717336441217774388961768779744242579558100263949989980985067878383377851549421748612002373816958606150411682506745266906548392063100021467091838688211030203784533792803236331263531355076157198404900027555211386760327140552609496991957267202395111804375012381995364223294030362534945090065324464010280897794815585211763617824484151091123706638535165182169541088167356465186421635494619271895056457391433295857037531278276080448811257051280906417716546872430848648124550633872621237458041150274558208512740576979825009142055908871875029888490987737633352303973265233247774284558628650476815745029541017063014622764592052131615929010773264246320301842359277060185217241217131660487071657378568729501271299521999205094723526312810181283598498529918568628555756371496971915124231116761085945407906185833552654385358472795570257368377317726015027143854981796277220441365577975225039909415477518864547343812694319136836901696661543830526004222930703021662017702229957327534341078925522401581966028080650125056385460897964934634206364401110164814025261541730055252320644878376549810693908965291450583791889622203417306126218051858573029203465903326760094216135854509941242356364491485168224634147793345439336110127314599575901939899205521208991881065119358984921723170754370442661952089576077896504661886402655620402950785625782255258641011464259869180634773906728594863250250785358958754983076368490193838892148754154772837356394396342210914956736284705213856892399892101830308410780210290712633447721204751836161753814696172076317981269648923640694237141073785983677144234844484189508987049261056606903942365552194860093332219295927255828152707475353244735542012120255749487789043573053704873451836046603497197512635079506457663560553943951179398763667103301768974908806813341275931795352520755277900577303007534710693682916585308834046049110349668600347270476653596141767440305336916233870501714156853220809250183295334539956273375175490012327018085708066859395953850697743032471483501852516072882359067348548122950446083179744933808199391052841334018039998793159964203815750262125057674690645245804787463767284548274277793703173927347531692339876498553359996045548532117357230615704145810164720317419480118563619250340056646996409207547824594231743357063765811115812669499735180352051582642615668879185936412872702655475553329382676442057051483178649776736084823887505734306908741711421784971177276196385427963288901994979951354528525977714328096497315346018073816167850217278682432578750862612736780395108978302283562061238283410802001509737820650197080993242661271967992722653921908660152277031971063951076450939232642651712037837516540435695353644594507984339417178461754111277788716082876100153173769512265450516074614728234426727059452581649117039513929940960761154316314056339849893549384226829650058919645510121581728565542555006960871566144889095724309103985219258100571533124503826347442418526097190790506087670603594451080174349793937548579693302531430243647184446095330741489332174905027757902603168045791984100177553193112738528422487496228984001124715351421908984408445863319519232225649002477415476382120305953279623870105876990625117771174801899538640214011199196249816261647152604413949972505226374751331880496634839449015691528906547660070559623290555530517079184637406826978097003441110671925389819687839130144376147405617015179181092806533109500546991641584437876470235774520837376603088341635585760370091294328093166123106831075850600524249061287056756242855868045178643915269087246196662038558020228573578205687125488902510508393199387771244001629599136402817184435443001262591523308346346363601551515487139083257838947362017875518571588886386326339258445478159819597478668129417171993429815734051950199234463731526168814237546645078409735107671140940256612622041105487706258032208630691646408130292250852501528955396549826230945360020950054221771227946593414154617552674674929876485394364968198537670840280443176354044035801222964021371394634369002597379893356233817252038289865153198534366811598641768719022154712716409815259128077064884533366558425932273774945986358500665967137784796553118905566488296688197701044039027146127612025671498918419098141118531836314565267857578586914906217781313645047344029198759893897792478951998025757748887253831207054006213925260938148445615283811768670838251703442255979872779902878104101766931518733417271882182953151087686501100544519149633233033603029309391245966811211300520482160536477693884942008359126849416641924948089424754164160367035636378671221643543423768865084376459848477334236227539531119301405302339052577558649945037634243473726076530662123225801004651204392435781590932578131618092434848227641610022218754366339475259965834200172995658786544071404096736405498806039053621762079125760866538147831769156225091307935163732573249185973333033659231485381627002107103291005461652916524632617224740915371597566947900396371466709331494581953593573075578354812153908518280478380186296674235191600152092941392273540663785817107456850896434171118948356533734183605687708817582248651212766769134378298126378719256673501988301532546835507239412360018976338738328359528462322575208597460431534703744810274749827041969566657856640485811951404927858749060035993839205382282442310168640901942892878182468335210945336968668269425894654880175137377251356570716297825743297401895862701579289641382323318637875139083090018743744262002291255369704427328004620896800506011677971848545481664708259494541629953575679180965638060213952086724981758758249727651725762749770971879959890600247873480660826446191651126316320389648140865816706765475675904665162308930912232208215896803852084497532505946602991601553018453623637149565671013090649615624190234947240186798949340285344488373631375368038084389575278835950227880880906109786394247428273993127399984449544064900755612548267671348236453797484457338296846953854261506978411165060024478747359733464478637055384801428735984381548477081295692688725823882301804511165936234375815670431569099886993021207701432464304204859223608656509797144233283688469385578870181284316917391988515257707681369029229944766293173773238560282624192858214478017029444946838298940856184818862638611049995614798833860896214535062167201559397344615201442052462097078162385268466257066612876643213617424893043459681966994726743660398137993595879182403570837398016217630346623990022486245980393217660484455095748391868592600090994611798693787967548356333497471733014529091968673389894946235168502667116775626593087299681885766737646850033935800071264256365583207849080406243277129241916069026464847866789424434184372838903634092064611685828976272686016632319310473159135981158373959363758898554919310708351156939812292935897803022674316487517426248931290018388756408311225957427405344155415898831363841419595542176279213457126233483841210016924697235066415357595838843431435637393716276347719783741273897149831990946996080157141039033953013099981821124258271393912961972538253739165562203705503636709797408116494904468814568699519975652463792994282326991972900960114863051901262128737200364542301168516676133054606717172233477882440837572406806500261197444032806806470762022244775117301488975231989183764449860691158580139723399477630486865414616149029662362213998295563562360867676790893756645820406783189874333338068076981188087902857576835852327457518957438897253886416545303076801454218475937508390820382823940171446106701289627232641835967055185028581845653382766538701917623236300250959069630254979725274210531429661394051871758153536342677676242984259335681956504881327882165676886884805595756948615029846097837501483878040211816928644837294208110263719558652583259774261566392148694551267310182744904261287133443356362312326789385544232334467576640030430268161968669426612116850707132065573392091794715022889921490099097380889631608382642077064586608081208630609753489522704125095058163887695825428088963179940293942971530765701968979207983112714610599818252206935265687592739967094200750001891793565320888872561050886398092902106466142667300347705161815232449221352387953298251142068487988580322163128906851192894709641971578657871462704601492078384872572621323682974869234885054828610825020041838382975029405959799364776570151771076259038847296237672210170617250325729195920332224659823506074186173177362792465342414558124448298145542717388759939532362662930386394731949595189328670325552730824075816998063196181128787529714428364008667948830689220243454330634870357158909595572826227018547675019366607082401232393670763186173283235577965987290941992545657121355509911542964865684306940135594042992371884004392650640586691708976731635241521332686660479774109265655773248192109843319788608975747385053850617181046781256400450435353220109415124463885491405174606147251731065107134920412878964106326174074464056801916193091505748824080254467612867114490561877605251674874683811460386961664532498014240605748987037186450458613512734223017067776511803916206200255043316982359808765502710626756677408009401458923386432653872151507236429176988841182048042881356909982968896273891829477674743272653052529593547816201309542478400283787869806219951686139035134365168435574629989956220400373215226311798614468736759836859392817105277691297439032672357481804929839401792917320700423979843790903132297150197223190322025276368612786206707597102682936985138629588734176935634625056238216754411638770081771884070793186591760693505741656353359389952349454316075659246540726333384700645211438732125732067311610062495953510728782220968077909680129234099980862349527955651936496282017161897785591737434989492906998265357040366180867157393760561510690748329844634934963474684003382012801372062113312394546868190254318410423382564311747017570890805499331826298117799181062784177422174918883642451176677109958315957625047738375267772959744581785062826938019075634063464982081799690340787681593984757751941828287766441146498364956750168250003956339298971827578887315630444617277862032411721903942880799509310627657875812364483524841906633204042319828022319072635119378911596260766060986091640308909766417231391945235780054756004496611900669361371234351250743628889172177719157141156170325026952189667728031458743877139414649174556096210006285363352864857261379226507642701424630088860293083931317251983091469209759152646491692700111142822004650188972464994585794566444398876182757504722479028652638569054533120067397786516611274788518615762299235183390320087105871667985965410136556071268836433318514605056489860204362185948289118255900508837333121474116310975517946192801423624122664833420563879792722065983394067462471830793513272718068589346842572381480419457645608646182523615808523161876619432655183575234061490166531523854222740506317308736058792132177193407944222611691149996159507842124611186301876470547194005568777591392972485103620337554078863590544850457735464864301415645821482145440056359449898013151768222976102683069626146609418431616491137226745390572864477103302674663987213956638146414819130879119183555768850014432368944365232332486193956422331819199063349325163954648342615599718073135507340817483377856143824238756888763168825662877607130163252836909943409962737240298898567778052268903477364326208299627996908064078559177998690298316783280879548255230152635102177320994552085714778102658763605637869027521209874515219926359338632195979487211772072435508587402054592422536660803363178370902631729946218167486488153902255261410718370864511314948922341537965366457964768397041401881588164285478740324432304391208948680532669479551901514462475772547310538165828273363059151766279910579971914618312958375710463964619910027095693399345462812654067096098128110582828595185477921736472557796736412750679019686757895535322815591094672306197903772927073000775644966223372573049364532073307234083580576312308664443523639248775420194716989096442696420290398520584882311972146265823750539224351240780646746727455414217351719609464364507002047801405514667824369000330238261969084244713202901021106905781682067559652330335792003061079449191983406942686753930102017764021206279614248246359340048849927024269050809997516524624896182574661915010872461471279677630104620194381062673317398097931565065922710444723533897879643180787558759363705005711865547825088183940137291788052537426892892560366433108218942703294983642531417971312813315937356165760824749746839925034132466648197945065904252443883496163788546401726703530919858758501376102065249985942493276265930647138084757798832697029689983047995663373479681688595063815197841225945358828446541804708628837306263649459259826296681318612107897787491492366275856594522259911196746781148820955778490840672480562948113250634898857812879729087136019316515722523404423762857710880403317903479055526080137575843258941666503908047008109051668881262250907788043848971197795030882304071353893036457331780536776362952263113280370231549316992631579628126993795459352555116606696571489053171911094922107958700645106277191980731936063836194873506461360672968439249132173093171738589895931304551803090610152046410355873121712100136610154825794293688691532188951504711955376249962658305980014955875650458730920803342861283930117401126737874120876554472938841000908133964332013956222651291235918077595731657534143259985490384846835459148319732776198891027035571288542524563246641187317256110063570107953957614148079149494103778094188258528504672696066450383925769416373966176816251646662712522365165685275682774499724391632517300741513248171047038747681650863666498779483024573654322388234955588356246615572954783193529340666499142489841636663966529412877978424369838172450610710809997068367874256320746749113463423787170528897718502631733928874313237194086210936635743754812860809490456227926001615601293561376858685103836579078016881803652838275483386260306973198466743421483084609355651549870404108371427616935867983335106263243590214805378284984812679516050169045995561869484131556162450063018980379826573744474712427786163437028599135901792553505551977904284741409926773369438908062081360124712492490754409331499498845082556726450124680730923832210733988696665123035356298357670772594097466082868729303308929183298272114274115548853240575898119469160962708304505033545553637399992873583029824793453693768931714621391858438608273180334278264648647205114467537180724945323041020377310103531477104937478729996132956906078861480282438090306551871457328112903414848972684952526738617773162958960631213202711771160099251296703737263532965314378948727655299794982103111477410567058209108853541964122033132555012951109181433707425766581457427848668293002962190983667169530008357104375935997004200170091337232636357233858723788178144190252232737353271774678748658068758123968061744318722675313866238874457199497624659600628919809317601670681427848810276294662844205332337994968132105176117185632605522875837502829659855980031245777254817321748298692689265596291486688001908068152820676503298700986816162818172433086673859111296171073197604547082009560217137967812491627233662187532644326379545817091642811639473764170799451612497633780320898834256936395671573365539721904411311312224821503349896544996711603581892292699142533465602963279191091670344919177701353353151759239816285079023044496884332301751203236918564867018820723813063625026462238930503210342177603155294595991691461567283888655724099651943994484966613117441023040180788615092146381408259196022181118012966771266242266375200901744582056185219835725919061663690106921508693591905938853895648260695226399223122601870541124865487713947663865932909027653051478763494233894671485572585768823662755078579920101488115552152569117071688561301712787124146916812961720155134133865187344199591957294656172462531352253175789330904122888058471379453374859523136900205342571284713760261989651359025138228990233804733066768240354448541383922061294812270523241473932616764303783503164149615772757985353075614085640471534457527414024198973374508427058346582478787573117637798141789203581091161763398619904237991827161113387901142160802526801821918041386134314232828082117764336905798561594851421542616361314646234583418077075426763410948270264860777269532084192105649944201439110641544165991087296617777804978339847494860065072601677620398563490934672004691872094506629709953294230002694967319405896675453219404915946796060497365110825640860422132668185858591090317721183648847707534953677243677356648310125653128304245906166122438273821863043242719958654630950035545674776894131720681110007567822449135884049864775688937238317463365164499121249275622696137977736183582427686463696599438467048553381174047692263703651482986596390946015250389089314990772561642538068259252507401174421127636956787997550760463494106080406454965214477136950606774432420376722316433389987992032018810774871994160412172087681563423690297003037744521698007527081788200476772025483069367808642160973049141872483403637907078855536922127553867793694137846097491253360603253004315097500527488808347544578618204049781231343836963374104796591205420464493542696359495295120676610993839731432801510763801320800967668178956598872490459170928728885100365332346943416898279784888399980686108916886744698836074521249860587764519875275010050700577460573833266802159721581430691326897758442716583119914091425647282409401466726641139882528481193532037533985002803100021125556891828573464957781728658631889968826705695077189727522486290371611992445361276080085343621934718297644128250186941852764335082154365265880094517082779130357583175965534492831973063556893693453453979807200302369189684218028008758085647970515356311651408822406192583491465291874180712667328874735083009260751325785414859306636267340156923236252562306220294957875648031638476847602008184513517806305796190353336227592736759748157668916157363198550211019343836465581694967656144462673012785387040774325053500649760517450792277061243964695585956911854678011636038068881880216634932816191797536840040237176785563480450358067111196189436483113930281670072085326585138597061622800646492189573394022358048261828244756124109992578967761221134990225202959072811792414997529360186708851349575983967939870117163517602879511236954017025874681117274127058791924220631535857808004559353981824498339434362145496099951618637575883911709093639136505021938644749662256835674672240330400577874921114668458341084478526077074649259344480128116561944728643600770384331523840233412566857505224599544662229061208222717690722205810721073848377244229491329778915185729197244960202683383449053303666444359202306512025275696354024132438850385926108195198967782147950152099631205066572047973676367158496354005646718385484605714243184281035196390049627732838923763488268210227052667912338326818588330773684290266127658573626016280821040084550403272715106733966391498000786230580156105506989218136087781357400469958184706507807288939852381028178310228996974314855535981499404871490848588906721872980799095353236560902531551468677370719618678758925534152663628488914778066801134871309657699913333839646480800365630286712040473577151999132908236091226264594107053019386218337263591931110880084138863474105113969323490229773049162047354174107004604923805403372008910028612597570655173984370147486600704051578846103185988564056040352889819581286666967573305059588857361810361934857661334304990759626770506773256010621175348450120552623612322138776961521259742993882183320412870577712406102181025468868146583946102712515465385105452106383985659113845336025901885933513809325516566472682601581935051360133328261242986668569943717332847635485074426495386835323969898435439574675303518951218145856350421425887398277169660326494409705843840370900785243269347448487092527429034203625420129998735844028038125168237765202909672273713910189997646758968267747419542726893257518226004507111244391090658852670126988942664452734815556465280899505732679317373622210807200233386658229045861895358686370493740690997978026337054058713843519721357854560186391646173281333181682704151964196927112770368053961442503424682419134278555649614560709341692902218404730023195290184838213502648079798299389443430141652601172092984904003941579178027598930848333455647012434855798833397833247981986503123106046625779372611330125270233806190991409471406398982019373003499841076879950821395760725661949635297194874539264540675467494549564247926982169643374223210023810590080102627363805325606273419228390819891523076324081767471806518399660041009786080004240538234576128803950550097456988473987443197688129430773406963061470057382929171269551043772398529045442461069979083203035170802311199199635964638049248213337930088945193844007945440807125736443039479200664376573447125598606280318338347457883645854350063235971482426368796997884783458528780795052167444569944267703165325543788273434799022618788501674946421089016376521245689693088279194633528379143738488708906883697125847804129007707196576307145686357086236883835665589046749605530613626715414233551037042249647650004114092859398085366971630949972856405973047229920493362519196235009567423218635161739317608349698568922333658000569698176195046279475879318403620372341401857398511283701999317583323008336286483102656750427679718542324533360120256379875572332500556074662466828702188292822792767034323561128942013498139004786467572330560019612678710253722204238752673123039239891998605561098816704350884588149298795907026124234715099086202571845457993171314381011387213449416570166644623901431395627874978256737243205138957928809745645916832809740911027289451143916620039718573285297438582846454462549608625199258249112943816937769101456415847193785699626079406997784731167484275730811745475222304473289141603478483425269790946522100938382022818407117061886913854348569100843055771383765605836183098471364781746242818851846301461672680773314302674641674689574259907029941061862461119806968037877186377285450946049404482933455439082024352358150574086486901816827005377715481024033558046961197201665323803067503923961617509952713042503765359535030182397600848428975761928309212672968974078069220802499383951218177933680987890017344901700878345108859856781196100795744758078888835804616640240563432453451048464392532723954165804792493798390631998015473091513053050974132783009893406742492438494690034362760939484383247025471487368877330551383485611365422630755954903599297425038274479169908400328336753825811173006862846297503242412016411922775099726072495107352889627130260313561814332099826412571279095696077270047797397760924196768026015421066717909905024729185001518405127386225590336321790165984587224160402047518868532610613574128887588320376501432532756960795421399274460458697175175419523560927362062994011258030046239137094846640269779532744574612370011934792486348828729183610269228288727469863799373213604430347092684864067934125576351108162163453553687695373369265084051833581628901000538473242322494059008750183437961115929004039511611284636743097997127850696852751327335441828705302593981170645045632956952529415320760215392660106567014542596685776450632565007629887792839742137777361357241725813953573125104234176884072523963261675622526829935954230018396778462570044538485767089944187944891748819700903400188366183289325917908259303117057442587664569062138219328417225523235824626201644191338730135211865652159922082655557727990579683425800078455923139173924005502852459743637490619559683313213776931235301632912256587119319939711538424333038017603343120395782288117397153768232534282324862156866817965381797069733181278110133171342396721344721948106147776645002209524738142175259048493119919042441500240410587412600849889101552207713308145056626479912284931239110745319608612807213696620367195265205650920504451552730889916461180589859800758104918160531999265663090069024569797908208199474070256213683392008729590363012172412840702370110836194399715632990194808778107232619401551237626476874487749906923552880135594488735950233982875230854761024176283917174254633360328205595551365577630135560463486327767039533335578941488156545133095841603770925749571696692258040713969005641377287177814611666453627763822688497461023215629330752649694546950114088340224428577562489853816231334350949493982809109406376592903570288247833079132815310903196702283934137902786782355021770144991725569554301847637397597989318680775620867444793981626217998372468743939545971806130252704673833062370911459673781156381093588756353733906953392108660811012438585459976114753712029502785406506024055037533452127489002649462133245531773668230707197983307579230358634056279040324116983665271976655475326857161551181038745663587444572872514739494539672844757038192721131729691116577446103386019476657193903461690268642098972950025247397235049049210184725610214574848009538358076860079937151794078166113597985472760657894981155856565163667795912265567255201042765883534127058723358976086756645998574207191884995026498441997829194219026114440172164881927471050642458226045918512460001953634513465816577891123784885020008407917839149108057898296818264326396056553637207606285374586782134104368110274784256184022397808801936582719873044607518980531351061861842796323287422237489040313521762541218236680780180169582637904617750096376652730975828616651304836171076159060436991677989631333410973130702854534734379420068230467945864438109109644361151322564848781043060940232140099641659605140599031351460897497607406216511100641848157977489119252318579124655169320554446334056332443059777104367627648157546872384305067118660163498104945971897027907710231610832753255157848627916482797900148682071167140561109172741895739108918123961306445633475894939222793303598597342745001093475528051933545378373453722980506638079801134326947848594232147490079767976281758485096132774412727021698516590608231323328509954007503521440907976415997452885079647120580288727829797792646051763080481665847715735658462656621854335801945190310786504629391085406606200747099901280587058993764479724991562646646800274715075116089446981044263023420163262805709893484717183595790637420387316495577801666875396462087520096664670725114373431073189844314700287957142737986834031869932117789838991462541752196449939612021975982795303360380003393739172819077056417276026299634588122715240540807418246514630587309147976939737449383389231855376514623521308441018046892698919377532075915746237919685802142088813976427492694812930184979872390265557956369328567456172591925769760108371154492193573819374998413038423591756829763329396437757441430823123406847507133360331177646017083171621630352302209343772157357353398474050543969587530690892619876724795376375368251119254156628323558470060355874740131236993779236615075208897225744609119058578789409322559636193832850194718729792858493812827423661027312215335443736805096634374960417386756618803716896640898698233907696479579038908049077883968052705572674711696423341932941070970104604599989171314011277205808410140013866369063504072119250611532286792731490536701854302180857903447680513160796103494326730154316549177488587891125995099417816401336564875391913277945924262590771626465989491153645648386414647474925295694184469651698838497362343389944914712522255307758277424784795170907879472074302360968029559511470696275916945357613270816913801385787234390506792411087796159777744582539217303005530085397080209340821789045929737269446170292601588105718024762221653042394053567204014337063320899238415694046034966409878114201147045956050672606281649995656782830108370549953730017809265124829421511560821716739208204957336751499196122588227652280621638357096995314933245178297880243853125923156873514560068005240362264459062025312733294779989349676526751119219520433796377213758518949061028124322433960219986343314826395616429102685322582783552774418298694874243895615490357272240629352178088649669975780090233328740283045310750149265483893722889544506497273051359688820697130260768401494762842425436227005951515754222431312533038044897079799829774315415066272330854712916931108141420605228944260612056710383984055393175489768942424113784661404268868882946309429510402921857336793082289420823054056276063946051308083365782187647862828161916145787263605353653137200699342562734544418063087287381186425810972838852860791535738504473725394233689873397975811759334628773151782095525426410407728501734935302514120225359808108404326827372318122597950487188581872682363034021199852387368391289308732692780696426019236498358813279705552178715953837575827028198981130283337729453650889068498088077894846006863839405457764771102405942783753299832633834083250064003494024925284161639449317248632077161939734729717256569702483326510508750989979972553855204105146644337264014238966160455778128251277951155316518165439382822841959283258417440506428626257041314771770820982322600703420972007036644164043225139787966329544245759162429378603396988883959444494887901063966496145150098570022984730651859825712023828085317262860184461184957626948898347404439903780499551222385952755754334729301944468729246305132049184243373462640592346587934926727370015899632619248350343036113899414394692944508414391164440608659850771606736807905083422454413515337623019000364530803482352462191928724389140931355516978051626520580143668682677596675230135581815740822112982923724389824211138088319110253993034382224712631085722884779553619028905826636635450974935782662829872772827547258277108511976159415597224779058146618197657604522320860829420411194658165532418023877606274872887646843093697918792239051060938773739620994922092113494996705126748938767633350684855873486080995339779388521276437696292180200990994205050303140809927680712387195833075796369375853899436104012749735465304411984651355973341153631907187344255646896614934944012471648045063120050965815090673069516676497879746789495038340951830726232607650301416156076008910804714748890058677107883618237293432740794514566693047931989366246618287224452137640908530488380035302049314809217422905602280354074769398546276579633220490363262998344946755182380355418070154119160017879109902038850520690540174139069252076210385925781529084749434667498983022258496223092472929783872337015138003249725808785499533062314113038748270323623175187672769308302104901884740558337735558108984157682208527161275352721649483257097012704213946132911387042978759418941577521681899024513643743598320979869039808616620519320726895259175391842356102890098891511599614202569045717137284957454206303294518508574585626421926604313853201058415737043420644902195293795412389076523984742480546794061233841641585158476108523948159870187691973369704026451078257483391216453814575082138419689875012843239548217491280776004854903597555031659412313552223455528898813579426703284105388235208569811671237722090888818716224704170158546513754412938769714376699512620163896258613579093186988211728874643477848091661213351330313971374476288997158992191745140051809565125498546385714429319792116386065055726046669586310604081428960375569908435407377367490778265823708657712235158095813273925972867398886417976796432786137387842803984234786886951443466396759335756177442245638117674960166469023758659973810642935669764739705215777094990654153262205273973972502183283788144468837975680780295757840654699841150930323848751106436871180607637987600771700999149868007458066893172628838511197526361628755894604205215088181675897025722130896060089485081064993984813783857156938879027026748999525097330223786509712249569955391336471175832039607211369401734246014011672738178397458197734596515343627844294203398082488847927561379088731084190645690188624117426883193236842295127994583689926413145970957458492947039728115108016409397103981385790408984032092335630234949248851546505269590473561185773819549660811463303322788113383083284812235464322217323516845330452956357377284307301022282051537092097791327853280857265920095018384236834883861241060450396617921497549699879035316586334905292835467494775405156490375933346412393756496210638126065461165211104823895381765012228994726401084456191006643668639109832887513548344855566408563609970104447708750799390357025844754849313711887302563069341709883390257949431848124635132633366010923733105705594557483063694526618729407403626345909867942145471333725033874221812261013380531381707825496220333176063710662720286789651374300208118458800707378626468349567609473957387558088984324870378357074565185661419929296975877834440302026973322858220396798973904063466086746649714830117458270381443061999508725068713318971546193625074251369691777610726828529633694278701740293518923202600685554062611442607972401026084317620380399399312172510425092183621496398932708583873612940394290535120594151024091022028533388860148076351428727944483874024808594380518096169336986498592982060355133125273669808692172574287102157108935552944814520616370306745453741847506648810923852352293004471903814206196460381645190425426702729524675384654557170853849123147787832223500371493308807442948213087018491192708044895962548502444112799341495333849907666277629026933204181893960096334906004483650140146953275276130205538503561392374592243987331058022422957602238028761517948217568910129972201505165135453146738285383786499601214295269364556183471705477482015923909035280485582889217136448405200069203736223848394560705804411630278985992988552142533683564056103957794717772947952311482712273363475081647693612151516102381673461989878392122332166897962877209174560066110974030747018930940590192429027936228705842310701867728323890594866073957895251782253767928468703932940926486098214611345760800450563593241791795458706903170553034956850859093178416505824005258580499134999385701884775588727020193108674223473581746453701296075175227848418349827964519088627450688686304728630168650855106186049988095186517191527728835972292185840784339121324628146320541409050595498621524848503007259439306371900397032943912785786452386357060853483656996630879195147143758958933508325410215230115020755171200106633279157866232440715157625869089944416155217038273909833273738411457137141244894382948100239660478560193850895550379082857141868934330165340698912760169037456075561263589409859359538324061289920618823670071510789622766098418789554083541753363895625853160042221894206777615235313542923132176775590910849227780666198093483508309816989733447053868532681285925254489545765357052477066061467118549226919966796925950648946097481269036620228402242415305212705046453417601315220926565190703228618577265681029214895684892341370770862615540179720975051618562749619894049008751473099426237518922829975910446115016410765295185095630469757069017182434418990025113240540423667090145873499449500449335863441061593972232094723157852064259898136326545079231285373927811579575745100849151721679480142678431972765290149465262742037481673875628226504096749049140619835322559605308034324640879960098703811990113542370971589469705600007135089797662876171128753978974295209368573938752602893350899023867253762003856654829391755923266750653191561773616439248963687528840705352489417747985110564403090722128427038284361307202995938886768613610563623480079288853430800647879679633829288959168007437301604870970951302659346158686722003471872099366575168172052272372333906701932078925019158688925941988073387306409434731123884607876795618357829448650778272633218687891328428752888787675822571110884897057363353165175529170043480568592075054063531641794245207556932360746688078261071695823435574829484818321369687679063965811147445262808990136291603227660830263152084789443940910033621850694625327770947557614815676296836497056674560732657750146374662036592926695857867577762811524885968362536767399953685561682471006480822537991386464537115609566346622275932315119915642286951330841660657189118406828825673641091789182224259133514068629193651775358915219648608970950632697540259833421226876901110069336347226591585589125248634460396508731887272644394985822848048474280489903722350191381394291802808054538214593701152269646678723791911217021742895136749017154569681915169394686198973161618840187903973897585975468468261325932270605180049849030527187847874807821325760295260405606354254912741887432324861970912336177203286194474002208825720117915894546976194661611376862123978503493960444712373753361733822641759342998684816726408030013955826705507996177743188038056079252581805118019694528074678185943271157906791003693286805427915246286004932066476302586429637426300150852418834364532104688494469614902716854023451138108550181079100174560925147097795285242909745838187099866114118786565542596216986611618701355491329635339845062094632296613271474639611876178410185882807834460825873847682216685054224953243212641755684179051361387984091997470627934556539943414809343410673801389882163197097612025458734184644281128644072699721239711028359616583470725881710885240574027520104666265568706746862836494977421081175576599696122278004737345092319563549523845530426877223668090987060337412906202938993882405855609506757234489307256699129290981666658755465881102870851954289657373002152238439751193557421130435829470355226374427602482125029252190635167949988382019987441078485737704768351472669796737179630917911358138836380456681666874048105605681009813637667087311138527178592810771108207430393300335439131626073675076266311005636393433599403074131046449937318561269232277137106253644149843167426936913746652503844667064111816596172405945609684278970001358031532554785755369375592528384907368168679635276577008154267882822657250460669993641688217653792899067507606267721760107796534764011336079530689818659283976779213266162319816717857216039887771776498103561643301358036307292118376289011873960991945311399572728870824806778352774796019821973856922880077852618920501884003818355745723138975078137070680360302283455559182370963887962911593313063459031096536527717326639594845203178931757502932259388935135156185549635350944521491752477086622529059227761344070569008768944357234386680068028322546952700544317743935736248883945021521823517345689783471340766281738435072750850908351787971179027664536050046042615656768714138793495804351151973313847260598165462713175832568298280447193503082232902067709155659750755505712075516801287565608433062319651182134872092481166017623334555353110489175094557133937250653640647486556425398685986850548994207993999400354378699838918516403854143369571152168641002665709352326149300545364535426595418809483170045835922519872168912311202997617533398259664017674175156515708704934512946016583326140244328315919763477522630326154953801098833223195888188477467752810668405039880196154042532559125110347461886622352297153183085985637559818218326248461875560492975929809040295590150315117434794864208383124343316519861551411163363788684635167167874764056941973632285271128240970136766484708900995154724450959364908757173770988642874395122438048644146462026523483875889371807914093325744029987972740486885827602081486110709041026563867725489574206354455800885777132089528200815489897912551947553531771467564958493672294056437238954381181681186004077095952493921892227514119469679214361357899209857429294262327521424506958388771000850201058344405550862249016250325359658443967325551122976277281399635011449599432793362923216649586145886545746368184078997818155020873056603284242760343637687385385043528329830540631892314770985387303788234000506328176867107200817088202324570161189768786121985964809862007245137826279184333230784905565835194259884855681105366827172074572517636138431227670563155233656022420696613107627915766397263176525154677311956900042142459239221632909784603088957744389195308488990942831152025785258069741171681032727667274812095705089841092480257483518008385547449801593164238952874483188476418103152071638773457313922587109553816464381351032254565063541953534215399465913952452963920207256473513179589184829191935744402533150418921095302816568314818129082834552931311335688205880281044561368707559691038872926618322452322893287520515528553697483463083918210593721715188905049399685085186192907396911269576137128391068085734990510595932806925786232949495489492300328524836401606341015328933835156535391153456240297039910568185913932744543973030544044335647724179686742611747834625130737222361596130240075603228759518037984252924032179098372775210088230435584681727330441806151167981197204471397898595612115492883694583409754286692571385428911011173138495169986654853799778966671305531280953601374995268587896820850464001426241568610705065878144488150081383446232302281972006169743699061433143391335310625123534254530693707403602144622393773094219037227882206429726028841899762881412111407025431356406586098837075384708297462851110613316582185668210776486550356600225669151274642043547963223361542051545690257796411789974246248188083637955666005334038299753909921125566609202651137911682679117325266189821883154196804336172362081120678320419721334166595614983166003636222531822794909974805725527295029240042621901710955928941437099531883447992221713425786444063128489066962138103385420092946885685089421913450052597736249205922994433416808143093166492593595733078501569689622155218435261938398112735300981119866818526843740126984283552823437727882830573966801391043865258716604957978443405024351414814679482305406343797344847982799110464833360292326750518730320834284192154956375185296071097732571251173887459608519222500330261348205491394393835520483755446374900239933445290486142488148875653835695505296239002569071649715445848549250864934002974785033423171785250220182057619487831746697831915253596258649557216667797557535625845856378889144782115862951261366139408592817363661887008198924698934777138620614634813064269623271070896213494012566825545314529754553460064115069242053834847709931551500321160268721814885333714663846683604949009776742667034678577407007509899030328589271440808891977894110530459311907879539297106882728056911922371995375852068907636618836013670361855232772678345867914916687903465224888143827693102388303594677250819779198545793052758665973067045107088988342209328897627319730396651405883390280469732779909630069925437835385422969555341615285195274425929644344063026505603887669396675402081895847470950270711970345274700583842855740154809299161736674377199495842077447880315748755792231048056072669930537820881973205817449208424615591052084190584130714604239322857036378868056739134946246000877609307537580225406092507997807799752332049201523861168927771192507971266610864067937878462474455999411486053226610100693899466699828877994615121265692074424568281081201391116735914276807473400941705904535982163460685643491612718073613725696224504198030539788497956718747206397101976203044001945272295902633678605518376539604465658736887824197548954741476262419679596174290341468157601182825663284753301003681856909575070436650078543231392551966526703448834304394177675012423049366944540301765551824293254772116093008255690882299548063389419707307012345772419272886063345027590134640554108727611532962957031354349182399876234410989235297211036221679033068907433618761559857676994561819458061415289751438047682858146631135755971225425993130730893205642260046943462345224575738259198251122806551935182781499335229421168158131848253488921829015917553243153849937976871855895115527718424676972263374516688660889079286841552478430589096689137979764279700950885484250070845953708147896296516027321946718688266007508823031284485077587004230136817707280885063099806330175789085364677627829418466789059587391904963311024067419645849565444812797537986911759139844873369084795331109453175580215996293657442120573980045188404663736629662069968174937622340776738165100262778014044948486506466370572069461969480852052506946346643973874732985648921218897695867805792109233547041871419088908133760624969150762367988262369875661401182954402098953971708640120994364506245497741008646105502655008845623477682474233162496241201392940741553996596786865006018616313737663241195002601057303566588783938137253854566219956756845744828223770234561173158796394712963810613347259584894329212911464418350652119208347473279242980880021163700159352282500344791637895674974609271556524958456623559219570260296404444388926058826750771635719840323864259443031651195432818541555541390075084197941872805376046230163243737942629528482914411775504599405613574814661886632073521527554777317921816812410822048241686406570597242529940192773619115991803721806008031716690278648104051647010896206212276105093218800473681394682166865476382504356960325930342656747023476894702118773277322324542746269077797658413159905899538180403099497115040049060061907390878653239904479033760196240683291395612431371623482178287388401891633874899232986318199372124603457539441936439696201900207079387509077552929359917836128633787503796265951869719805473809588342475971256438919334502566562926185737447802681251633669175860032490246249675523791309534278937137496784667911219328754132439775949640382102107863613469984287979703527566642616752198128996415114596285430675625201564719630055461323150745563361972631496292932435629524877366771401346683549332190788877482949034567386397868783270459182591709000217995450706895954878450342563707431964907585992354602586080800909005182143905952683021623711718413795050834525243728659173484047606939040320510966228681926323815568580017839495600146008039981383991916852217780737166973858542124943906222970528342855581780170056529807298248227876377145031598407969372813654288317177817473897971176856865619851193161621980918776659333036597069947512722643958156711291122341511764822403931016824863099808174580834330128297392373576735377365346392456682592175712434138453628607564342622851335625263834935651513477784336032809504944153652812751749296536604584568802318309559270912459370146625902470531416570997957936592411768330662376552767401193448346986330851229742885078442920070530092840413673740624614135561092373653804060767554450498015181520018854323572870999897402277197782919490324110755123542350148582622056758787548257789651150794545343593748929388442124218405847799738322514666076856434515926045478046074928701612455990430609572592185157266707291750837510474025716457455715972116908470099131649363775835446270419821989654511244409547236117122746006699636992022346044790784370615600311808690016277466757975736436102996188314664553424441554979103613674397516394245534336089616358922803461968829996524204201208308477725462527986706436067254287834686437847303049312040149590362274887239687379357181403629920543964240402662615235361849190071864170811111116638916568261828974126752830630859045975041716096378998046935129091525817986590203217805185800983537641441127705541102317168069095084281081443217816326521171680200620057944932352222449195789618268694041164611375370525302067275765817406537224363586306801787614998330997451982549076908704436515593263301582267426496547497124310640855180479847801006157265290880304464412995845834500283192507257177060887951781659185778040652771763706589689469886948525190067844618595762137045718582194137635773091225416154408339628152658604764687620474009526668576067419351484552795141205284914016627266662704486252721940297171986166914933979158052920119334968109292042162936067407713264311984199116373628070442079312836231747176818255384684229776133849165905958975268392569677837838015928740037304943650892125304728302904560937707185852211463586240065450416487994765323341758241899627834474256163001400426748304486114003055946984745914172878309816435154839677184366787708421083396812115726931803276114539858334091489193015951666661817858198745830877010881761153436370678885009247138208561565670280752382045579870256848393240280256275605153486862817091549559527320503513985436184628088197136545465024145168140770988286688907470310399610094678398354853252044317411369231776226230950121804109638728243625615454202055502222643551606017424229286334702036083635691177454144113677245552645642895872369389930110167626596241915669076540198819382520000612457630011824301392210855371353512248743036486881086763321733149994324038755647818993754275000654489841612219793669839311819103011737661093341566253218659551947180354007981771093532177435059936836810235883545324337059287338596107558108952709446236421493384609232596511930020116649518885707514617494238198945530212151700057502643467059537113922910623184432554216205410865385448620961962302718501897246661689938733069772810113628621934051623857253469774882634445652748053192389215143370159620818519320972898111695091321908696372293657180604338607840126388799805010451779209639986588530277889916045648482485656510882229993580763493162542034395883575305674242667141197199399703887496895758825212551386674823008623183761999539132455283474856615757129925087451599999945020232651220668930148106178588557247795052158232440997415732635160830441905631504693299576975176078818949121156433014186521671169257251544823947760526999877973240195884664982469632681461073102774487094846125670067885698782225663921640149420194173361444819630162593201800912051298224333353711582994467842502673215206993947804665810735334589761088038302222874157521180428620317348053854599386545908368927418349342874050636650983336993998654543940398908895358543366332891492430201771406145977914281402445017360678110265831435536170334109762968254369750329826848644711805100025414995039891503431014378462888651986361698228342800153153164572372121055319965217205048938504423357022767352512441095442767934666751212494801815659358961991753892053543005961150897938341109700088403654359323686378670857415222340846938338186916209514502182890419522398153952259163126124520441848517805083458916540132545240388930376678197114589181400936037083565570498110659017349575529068403136188157616327960172259482282287347771836377429130397556821346263208645190451761682011985199141973975381725982369106151135154214503341689241827204564594776219719621821022548378965488283684140192656198770792240084570373865482652849214701670309137984703864329249520066148469068171749906561172073329029599044836985979563358363063079086894229359021347647281557129926727817800386486431435870071172299830676683003781843403376038410650822069681429492861946518191426259771547461307868830770052064526845754241055572972142766218858404440223357326720940677915403383201294723604589394772782526459890269143296822503149888467389509263897833503583545047073235429615517371931042636660206550269670547959989501838235389259321945588041362838383584231882460406435934871502901821720198213010193605577043288591532674928691300568982787149563536414901475653720587361105087821680592306133061909377185778458595483062138645921873878344998654910765746754718264642729313690256026436454163071308994221979542966452162953057842978321548443533173328432857518361465279824469769028543968445842315129605749929928040453537024555411823091715924638040097189874715783287525467463907814084573393544507803261585022279853245497983501148898942793888866044607153021415932409718702368198561949487569328869866484365959645322388067649081341767268876409090524707676983809331321717685795314017787302329548936379277308155354729207417316113556972824533408122150359667622960085598030326221043946822766651974813343683898011221728843567005981018301716068333312628741874504287647428199153871483478636508401940866609467075405863108682177578505950482862147199519774837719299664684461720366711447880243390937604555018451924735395735856942335849953530635300514605075342470696998906156210877935878753678473262960786924074005568562897380046158174191295987210389962963814770886386589659146123216555179230268266106417004970641979763280793769995706219309831512910368178849312117755693459673434022224483762972786360552663438454644172338771994884792782948940519493269765465021085529423574617076772413125958557210291523651533680880277394908622011312001809345308405587731461722001756147910138807393803856330401649691119372549189347939364529087818369357219263458561822729752481740630716244404429435700109326300931691701330667454207298729968152617059433748631392199811012999496778162168019319896849896675376056555287458534744036351607724662222905819869814171279434236399097259525751703462441332739516150040323573700972116665578513467630081904471518292153158565610070241668754020890438497179649880171867451389822458649721787968088613172957620321396981883037738600629613280741399619405388894636400821814840456734954846776470403032112798358225477802698809532420741995823870515573478723863297714369907896768966229281403129321535302184844848277825908852288289066356231095082217452449918385562338166572692090063400765930631375559579911212897353178432550555286815575125119769976091200605592969069516377043472515320246330371080973720278662658591921046961676550746270023970539512986523809756161519281531540537876432096635850328462669409361903625596064886281369597266368863160587780683658500737191006086578288027846836953451069869064275902034437243669244372982468211612144674304075637618713415449271957261060450416066011480476601345867865744466316827496485371348709226003541569556110736109627235225143069309177122177900269758328002085875326737670042097591482029008628146154281725235143163537835723017514839647321963191683793488089152095213265440435034684543830694154000120264296095126359401915654015152595685858191168917307397086538009213140331663479759463816349992082332000564493931966116909768726377838840044057997733494403213148111957718649169792664117872751196224204174683733287125347312039553792917733242740144490173043436981590857625834458821055779604102623096039228884988321969718561453265160404794310995809342801822181773684488242445963892138725918208828661801655159250091663552019212953821311897721883301424966490338254605356344325351709157321595848974038270377287823901269168477663888831055488186856860719562022245398815920715461913638219623926663167189746755978932847028011008845733971336874836812670101558223136778175562207386810191279008926223632377063037370471927471329766267401463494067494415384877546697774517186693906189404651392192542133793794333600438225143649039832101629878682965543942206610401258791642845491327058434141687792032755335885692725045654047911295773777193148897663663109887883323789168338249867718015511188003993017698714960326676332938820246325090323616265010923008900216328921609856052323074779117494968896522034641589944170976453854016428845432915579641118025010815852874249132771826691154649792308310956972952843639803528112658989586425326071494775960694286560768815906704852817653943245043538224638395935808261733021471894514202347481824217982400333285418515012265146501503662254763447835308068482514688539780583418216954936148043806507560759465257032971106212300044898059924375656184190598430294072324486454299803755140327948367671780255058837182288225686527325802238589680618389394631771513826905534613010856467211431588936249181127515511977058688266790359966065086198221253701021819361433723421857886887148019832664957440104495079922731492360925572487587870526193606860060578875776672346025039738689248058497627535529608608323258752484669306724294876318840677899267100877507439241588237603188846690297730199389565116096351060545252244358583228813239498556538427865966105832418555033919342677700409932738559164827830687909416115367269984882124243772343370480285925730329657393781724979477013954111028983863084388367828260806226130205848911720399694798305729738506145865492226150196481076473594411109218450292025900955561379869024375119769580564988955053649641521318288632437771391499138724058047316791397082922432252588930938561562685806248404886467889197589148221836248651261922799536511587057619677005378125339752921689873131595610024070446045877119828480586445337669076621374669417840210387485930236071821450344577648833444014418120076117557954120169536012806813200794424935874177516278517887604460975159275378871424837680542101236332645459519838015163115679611975341681632624755368511456607060473307322904807065023289335186829106874615483710342184302527964890447105099204692539902435423213074211365486953536812401794646959583296834415287857251681166384105643824607008955934975647196715219149826677811613396986148684775664868216484943954442151933571996083519056490562971426472796112982615469389711445039970488727115703580768752471968166922477094188999038178237845611585620494107728245705187606232889955982731512465701371967052019914009107038087691643199758741925704090337387819768814752128663133629272696633941231477532420720650639086067770381492875908178813908242194255455840858226512591308133475472470890344827398829269557450732163140445557581371977165178439079243475085098220399608339114610652531313343524573243837735665581118908164979703263808326738002906106831016845505964445418812573490650910104434504665845784706270175310878122771444746968156419493120189235887374298588467561506651896911006724974664493122557092536324743382728093431416946339334134044336225166491498519049488850431257547850014033086321380259595936064645751876607641639012362627107859233479380306914278623286278064665805010261132821550115959757329584373371747884321940491792406100244898406213773454825392564596479853216212116439160412980432506701682320348484842073878415504798750258748703081032141651812301502236427773077555179855736463650644622471413583894507473964140340007936477938294221545025887220100983509227892509968261056042540955802956733233927787503689743019844186744495563110087993258421878657282357207528278036204414544157080164143788810170149364241660688017341193498052840987981556334928959813163436456592119782245376774442185649766830156637967430193873076408928346131741702446674841694988365173690751651953190831112089054657973292891155661621878464582814607624045809240992952201506169952256308741565359657096875832114379353634290914763483688316656249950389015723411991218907893139963863949563943808372246181988799273611136055013465942306291250712183301692941218980901558277802296980730116998828305761674593729241727454412879973801591102394393957880863487155178344408631543148101193726085992112791938024019068694129354731342967054939165950755033517479931908800134301562036527934159992486876256985505273792656722505154235666437370122756611357883789895784463955928114978217228530460305064643621503244291380057265810688561372601034830077622858967844492893968308472239891989971188173524264785662143813880445280204080042738379432182837200979630333450510413569717416040385324114829835177029370716772037119933380124907044926426270628885575737615292855189538442549367316160139644257280094217046918247590054793426439881882865360975758150607343680473647437522729465362172414586941561343325593255981074077583549216752897145182718300890446185321583390035172093435372990517794951494663415723232421930228505801725798726676553739725884671676845502143520447831956546445107305774705489941474496447029120328766586207765850288090955026244135448742145915010281819577593374134179198141326899540363897997288168596925802505792199762802398433448424154017980820762354336665838736230074135737036289872425338499476570633021470682686018254063815720381518536080212267606879896968141134099230216366722961442429154158168149301210856960448724020997542304594090660286437188103527321248247569686818650494686036932540328218443818169781486782562142308875698161020928745809405753004250246339907575919084222749812404783214710036988775624701114690503225899493767861390429790994479342944783772349506011416141167349130741875815302318362542401877269963455687694168866158621981116134677958553074095141863829578948345114429617196525094886368241906508327355196994969729103000588253094704188878587245267487446548483488543775092845107574306427543395358121643814820630589882900479996332049031512945601557168333941593063480319572646928045912508328772618080700510273972372478025598232677552551178652373951008989846180159802081305082409844333480386862808306858001346124622402550424250107294367461961793334032183053457095565567968804347898141748589104327647655853304897430291175440283971563233162721546622885104391126987508372824283246362665726441457159431943179490500238623266125250412880940691971861561413809252052930872847807188888783417232925969825878547716507195617019047189098713675895833223865511705766688077831505228697915258962974525854495466545706544249497840874345107964631787311722753408351430366331092573980259484119274870404426280067627345965967368661036846971079135202912817964882777674499551595797997421438747566002340433422070623160938484635088176321714993347591934464171372450791763519561717704124016591552180429223977703359817039309130558967924895644434071817117931673616404112572803022795610294275766070468430031361145251732600852650481956280548498555879034943899560518873183213310242990716690206588079531795186288670487462042816774889791308585710658024626293216693631900485718916590030167318904639371775948202183433133377526450635330412006953153077731290187422400794349000831650567425804753771370573246809759040601688153983691664066240159212606976127364899534981983986038455744267509936577867682747870798830073893962920116857035077158285301726079607210506445409755487263566498093685839700848709406431747007448670092241510824973443057664529741304434845021580676932897786994832895467167089339080525338636920842802987991101134448683926422366795865724057704974752020765947936963934889480668893217371722258179399327560391678268729393637125053715733119082953075761793458316717468041545544903095540604232894412362317290807958022966211688424337396883587700816852637589711782216543703020069136255544128729117830014125973180420451824195205752529607462713628557377367866485770652811649985332665168098645097309591802048753221766580523693950110774051969074272466094855286943832705781975105524150469793809847599413791566617892273670010941634710639678861907173510113136849261544330691649999196138162544238409582123185564826472768618577728804181276660364401300383369147295836195296793561327069211413981365746169899687141370446064150908874794527876198298760604160639767840732313418666197268580001520673699094217700052028302241069125376884519736728808686420478142028938235063520168737677520245409085651096287068227295889504332273208211700324710879822754227764132883086071440358866815436542668438112501237669760583483056623337659125701823751052006623912189200621320095205543325760424959081154205090114399671243029736418791228528147227745377008314400161225333581041962747988158527572540498517285049453026671473722995428839165574459694418323306678502871402006927539295330772158106471348810814288883850201286648654809944986313039150658329172028998910328444428180364601299738685412979473973453126231232413299144032993350370050043474438269573581423150924851106764237507324657768880231544637573053312048205586350370460933763373462401441268726192447824697201209062480543861360373378692452540822484503097302204378903100423613132428687334217325423484140843101552070109778644459119807358031392773815216724430116137925607017344683772545553618665805460968027822500896572796316785710803817301562228849467365235429961209768310023554806065559797245907729180672018099804052617382681745216463843449109249867851343885832903504609532393888275258286548284500367325180296248506016380871015741615095398232716874909656113615742554151350651038142626529482230633576066012336728995663672632870458009510130421933789551976758937664836597110541496358746116005114752420659823944524482935651439935009213242233241077011228091938927966050679177853462430967311903520671302435258342991327912113674752720215675072440136940969046980517146498331620131208510398147034258126044810888772282374102590170940451773837898955717299951103080143694843394000133753477981606760224124446067678172558594018170955558247162911021148632455851653939456537623186538674322803277313907427617985120218163202118971839197868067846139090477597794379431214967137134979941897364373358518170578521759489978196572278681942119617706150603306267655451961482232947201685597903342855465894748619559235203187455998305221838131869015382672259906924481254253044390928418485314362958440610662902070738107980582678171500019382803922984110160051437962210318668309597311244961559261583215203183047426054805686715250569611637513681988107007528990668236907242091858281008096613794412156436461165774124702772041843219252516837793638706253150721943516368687789071210897887274134008796919557586484349825781030216308853599912827612417786924287524504455459173288323146064967409534207348441064215744124043436275340423568596301461669055872053930535199380849425127507096181830298044514748400134012780073558132803492873774971442983264242507574016692397134013916469095672973014640431520999686825516075570766282377350906014201300296975377983205743367529202164056155961913111488164968297322594925992482808279910060775371289137208010623492064471276605716984401617553366123342959422864011802290832572995039735277247491951609842297853834928453015122671067611153024588861702353809151916213667707167424869446449442815313841547978103821765934368162193992078276127165989056589361051877254849264369487053500508007586247713620128683583301942152752236996820958094233637804469663537535034522227492415348994305781634385919064504034146405016264699288272565780981815522106719743923158123541605405245959564524497657258404294269424460632401221957563720263445117686343203004765118423813229426023653389234251930206705317914037792999899092626342130846397004041754280093881477097989761141194908631341049620650601354439940592752457557504069147528844948907363327639742255518230554060293677654689487439034815017047989726454427766980285938130993850380161283446340295456250259219409424022893989144706916960283929818904433859411405145772783639722590872850492078039815676389970650843447514872687306176247174853864879336795346791296220507503561204800167264345968726304893668607549403338219516117570300871330027150289836763249231336364991577752257587128420834909604121114709284137243323776048194225026907966576309531174451336859552221992029251679379556968363614507386379222779426524438467312279698838216618002289981432872830910917478568541796430633798082537988686389797274844170642749549296879183992192251299947713277955304878685210602513114465692286193731518359661750587467592500088031446836282433020754860382648075970050660353920617216104474258904356856009093904765609845181058282102539627118819401403834514374888243619584700333994016126976030201965546410054629988405645235906953117845280673906658932474085565814365512474629263511500656698766246833637988880196412896056143475906558273112324973752926918258705866194451310900805746843885715118743606131177362013530102428339353296640396618930102449554674861769799296650654686366662983617216604231158992358775637949024075195285838780413761845920574727303056361452076167143168890934311889344324638786413939337299988274423885264744175980177877072977535153718950170449678896132477639076878414481046914244325077130068657711307233647363978479286709924731382677579346979030466216721341831192516364359284381280623778306447837516613853324668339353280378078730019185717174482631620070992328140181629204309259658372079107069083663902164164533835464221931393914889815366183596394027170662814668513758189263390689166609901614480088501010135290403856459981540293619225144571739304962478345947179693381018791071152022410036419000233202670583533571804212818086710914522612841026180444782053950266182491266548324105044117744529984752050761638526587430590121223617900981938832234007179181213868336019674898431241209951182561970486853437288669890284532423527236570563770213794364670358687834014767107139229681604258446628164949706697714452231037969549922650810389992664912980410185528207540139522362685380862777512244073199830327438296980044754535219980914475887735872849951328567254356595382663600695734479927458270310054024249248522827917764344743022825875206287647623021603167729383775946511558948646849303144414220972586677751163898504007245732131189400134287118461582289509143761306356573349888462064965379799840968148711796509601151161220131088907453006218138299167229627307861516093764433287960461525456059833180023965576387779989568259123730471672647017262538223579511190208748499035480726439759378421905915347800572629399593818366292594468347767944939293348452649098289438154874609965117576814244082748523697305015852092272161285750673137156524159441574078092149448412833066280267757751441121439422370787367960870294277187340891022843153346744538542131042714433102198320091952593832814753991972686382819603370015884218645786184954893714621397952086603494758091268196542604997241997717937688283489727934199870223351617811285236419220131276206737573092354354462420775420376274520298491113806180181332531836517744040989777359508398697876196467001947289575810777820592197658262944855029448240290142789757928748798031483956926771962518243822017001542518261219623140929516615338730009553975288733843057230304509489517439776635569646015864588372713387962642245510487680415269576925301329714075551685240619254922074695807892145787557338374913104178494607325842968077628550241438434854675015209390661704937336681979058996540786907647648879412509103696735218938156018610755833402355986964484436025086222702128439292582014373894639412262565834077167124001640013858124104992186923508031983477661838720205605614704473075189863264678466057918099774077734531993536082103913109257084178378027960708548959852957197107384650751297005190841994672078400704215600992588415226533275192140812643549235933926526141553244794312288049682740883791101359835655679715169859413134908940981988583368011350531733399184142792697878497253945178471939389934618437147010168666493917857837305863885757221688965976312660266107247535408438915153694004152534660126152724939887675501839905937815851483872475249822064023878628135600254303794434372628482830653001738100572695803420043755113133450348210347237819062021428071855903524008244693970948197480900553027538666844192450524957064952396346042487380932284896650362889457011597831345157491645481282013254896889363445228174512491927068092944077789334625856283044794057381000570562374268934157817281898964309479060799974555298441554645610812079902168009891371406436434589850205498096048260784453047713116264763612482416818421464870237402757111394510289620203962494106514762601751498093022534719766252707082002657636346051739024002936117676386653836854383594879077827595086360492014655069080853685454990077128856338611107086855661911819462722871182574554807559982265636721996235156830204783290704660657466745791015253319438608754540053529676609176770416443086394278348090893377293794255318334299606429593109689952519869626388651114075122708332155876756383036508699988321981846769587833169038542245108757013099132134074409578136063597988523579998894029279944622721762435210820885575421976734624905183004686760605524725865808615749146624527826082930145993957997321233284505603024450920229554004391828349265984963776666514204666772631567192799086307186121394376650361840615727613283061499428038184980743792337279021730079031293390525904525163164481263014332398398143891951515686307202324882651706848995022624469262551282239437050046876805578798575587511880881335775445767924503862578190584319722086415077557486829474662232747693737087336782526978588750755755603548353315579884109194065685461523203252351984412796932721429691641926828999806063258648158153070688467670081029956482942987128881352418709143945098387413602111019025742671241226883114282250159811356129671035778889245528664901129446053065480474120406162619135329994127845652219522551888443030639738736755097192366224084783692374370849329614278003116099882201268473303278856880746258110494832278610578723771620087023701080719953635090429445304765202718342839414068861446983924646679267037653796767336645384008252668991987167357037363769259598772537796820505032762869453260103015848180062843073653928855297808682858689840744975129962982167720784827076705104222790041695033159526107191974319727584096157771370979562463962301380690146651589424622055762773600133520136415323566963620874626782055985304872787246425853627236228724622038175428790489950909482536419775188841454962259104677302242000720100098172240986720625828584423022639117813369286745858038616480711482891864197214133681491175476634832315580371898059978142609428527173307047625728985518381887128299879098825846452665233595278871540068440563216857071851103980075549749534366511501584733051768866017780148182558172397742496268745889452070799098631135900600242016592230799146485821190960088491222304308575897848104993768637686810026033868294038131178010766776259203086401307438102737358959512804923665474173071477094127225040831687163659319031694302692071971210681243638510733815005331223909592549910282151950714322028722975861864746340431399449165319024454613826136388182621352465336050349982507464914248148219597250580863042499142984363227067039611859464863802129287142932212048618591943170268414083151705183647170071685287356648643302529048615075185072610291655419476369261999069226247420097439189043489262219076994593524097876797301632408643691847277796890306644485581711219501143579031971907915062489700083697434853615938642113588989716288146649845126949928534327922472666885487213053486721929646963901269764177867386552465607773535251639047996289603721526887209591526940445646711467800358417916244373040686664335313253621814508043187688555491520777565684114682780031716415482525844812547572051478745849663790835307384044066791597296632202332187273300341900890972331756955313395905738792908527354336492934349381658744308190833456138213693926704951086668185783753750244806000526342182832350452945862863119725962313074828956607263182315644594654363730573492113051643197020068962972938442222884541031660441086580193600371482292823748124957542866885227647563111439821413240754053523212928620610812871296894359886974041905273550101923747922909054112958715970205222510401439946275275801002646421378396841596295390681455817982125885904474112352336533689690741450948793507049822177765292607852064932302544564863065066464286576633662110244825349552463015352410179451233202276679269155983615075304114630086138483217093659060587944308123082837856294584821101097976913290518271266469118071499040313965403377030315710631391644857506361098041935644753334382231955563352091047085540168148075801888711692004891976213204785146214077795207251025384377225359603652457552724293242193865835165379105146710018309767650970996674056036960785117418469207203061920415549388625799137124671851635285488455966402750969803564452272810041458280278471945153722923396681671004695539807409758332692403853119927369066017628682785943836000121040086339428477397802291564678985184746974919323869865000057822450646076952667537351176577827125620570862656641080858159037926410344717239388025845572462807177254263624304207887584621495872827274844510560208044327212165603637068022436399768697154882785605957422859159191575845603846091646909797146837362579705123783428788770002160346150538729634674729025472832506108322803078890929790803915711555570199366685880376076423108627393845580319765062036647335794025225090922634533939117829513553105210324181777052786596311144600191831679527728138593157174218950031122234848068973871670156446119604193871899039342017538087347687670758960447882656804900349689391541446220684639652103606321072254990068888723347387422675847616412832007248534217629992904182831962300395551325854239251428907477632617740501633490728767484168167861414458629965952127899580781121744165349216791950846291580573756338916943058216107511704897655114156306130390786399234950936376545674159133119065964422656832399058532699481650861944907983994554342066536429175705868737253797486499329297233586051240805583198678041400466029044997678941661382649579469351811662453959298105519504629936296783187658529856404375228905599469333334641002502879133373736330420615862709871149708940070125438297341146492382141122524542519828274553047154585032791142412997944353165950852895993687383908967438569238937831501127842427108061419374707110725664791725271746948472566173374509156818295758076061963153658393458046795133759026181907265750806574566413461046923288046256234496716555972714835496574798192183819454127840765902107315954874791260835564668751075485878250916812910533183161550551394755211377280385989451697018693070983917693418578276839390162629766657624446073621646824342948512792305955606051876073729152374304268456180255615956999823531907635674986947688854934295730723437538739887772995297689441352467842992797660167247207279812531902572734484823781582590086231419874044630099738031937707839061900955590601467636132566686143046978527507538683664632947498087578438669471903316202217775586100969157486978384313610141871351073354423106678396007488149928249489749641879232916966639664654063859432784696047658443427010587904955482139748181313419148141709866290567754226714774864775811139866296876004779009495403585064533491843833267307248242287927466778962939730798848731143746386101733719280201386634242109695183137449091900708905342631292470926004235168350879724937849420939301523006387720838736223852583870926617910341644521023331877693026780878077243022085139688826086244187025095128619081857702729035079098697338578556250406661185458285849192956373787402003558789015524371752359617840533486479252206245055048828582585412574950320000309138728151524291033843737429875525045961551421726809769799457227251478989489560056463723719252798061340877736149004619710548074184344321294598450441115934596532198952690556020842034938648790968970910260019688807102484871964492803484187339508889043810771917598338748681652584589827015684003921911538407307753886600811333896297721431929995660383386973115165582782242971701564611702122801013612561200308348046793735155929217404884148616325569966147440311398446446388050590021959848660353660666418308625704570556094370398089565175974588185106663061177021958770592010893578270198367570995971325239256761918163279740580831602232548947347862959908209253425280487549724079880415194384819292608213422647864881000041530899017075903201519891299297101917018390468054607094612340689316217202340854627334055149174892333394559943357276240192553572508575650335029843630589319643046526469958729813770068777738026524109319868662430818302247231698398656415676821137786590292919766410133631402078553926028336283948025164183004437668570629696152509660421114336921446623351898591165456846304798896962889525847066828462711793546482191938637836641347303896993512833879794928180712697366006147114333342320709955550202183047938752975643517911894609284553621805998414882031328264597341344923218833105579752796001419827158013041837231488447934179619273859427438404383393557878182992269808378102571434934637279185058410246569062910516264850680063472780873271284138309601371209163464249115955558658932068458869306396520351827781143917124067150685354695485733760092349987140100370207988854765219140935488857821381221159645890733192719882558176996167685515020648254990511320842494201723944020320017973608797537761932602652584848736176613185320572354217647615174049139585323194777588426622263528943889540616694428904955998718643290288943304963577272788423496233063295729087605489240299436991064362862145772755433109784573248545386180776137004459637187311538556449764482796397578727637802826682052905313152734756886756097411680191154602124711212369144241345007582847108643723178582075708320991409330082433955745755160522591478923445855244469838218649055410004932759469866191802562858208341288302952075921577186222863360478956496331211606224995941513583781812643557098483138120693653315914051860346061285574586342127981405024184554639404708907987110512433635048238393514547042383780682075397440073431272126672318012655666588101225919567639877219877713499219379406749924344564534898757537637091077828033164584227070213316551728690942525484794334908899077576783223587016175127751554387325417051244017786580860232315465522975836192351650564601799766217117927866901382627240980559572953687862547810607985124332600903913463552781010232614626961586340012622729279419374031604626463553586085368873346713782742582716958806069747876131049535056710454107021407259127604288770080833373066854935453089632148200427867057115043149219837434072012518358881597587768617732556152789276773891350176656818192431127332121204362803063700410671813510507527903840981018998721932785650529999224470109490167965167500437558146350568853372988306285732400748164656793799626393463221757764370621880891662875555680414074740084359273431381747113413400942401579662099403124691248619096661956347860724689719771437093382697651166995231583830215929024988457755840871889042811792858217727912027829055310113646527343255461315067145467942222957710856249904265964872734951256672269227831756607799536472464993301210860054139990238630838474997050678663691199545026733878576666336334627942089910642109849196174667311349349040368609531536846359011396395217205836815129849400620979062832909728482637866031388753678787577483056017394553656214962864730940443469694496371311627133886872775105659530335577719880075791871212356129583088461909502688106662307753412597057879365724443305389685588967994105455989444346378697213095412002903800246978062256327531282992124229181142705146278873428827684570014509826919766831216249743994460263051292973078763071011208396628517089529525629850974073306664938863302709070788371105144408694559061963291608249308214310047062412401332833004251053259163707632281089381625432900350410114146766314552622215844457564515546126731435786925080440290619363333412277938853181421160758697391707851221534927385755926357076824039498349829908110111462147037126244428950129363403249775797792419587306536572828357995509597446270915178975123326155256784544971070699825786240772914770170505780639393613493861496227516591237068488710576128272488640765949209875708709909245049380501569704761198694394328847302511085747281357846257412835025998734959806994931540926565395827178351038370083524061795964427504904503861040677855211048935457429049683688630904491617638846304101878618769756215789755831560886292787421352799648924026926304535663037891619455374971621151125143893255212560620795129474188018119789098541228125404790709903605769927092184922475544470524076751363307866228159011219464224324892410515014598230019589645428917640905263518815165787033017165770676742075990045882707621870228793282029431700614012141897151464006535996693456631239745681785481220496319080640838366501262468053861537745242580231167536606115339431666219483263945948368449533901765093487884938500773077545250642097823084461353700978817210549719135831979871063289069871023808025966994223907937739328975597801279098249952923072155554826361527309569313035232502631074893262483403731641525487200263488364319750727331416099847111401948124761819637360736877848848092032423699643910054794177610643339540754142351932208049900984330056275771461488719274960397288562899460975149006183784882031433738593157488584748060376639116760034481715676950202563513224322872061300165455367400845415871079310378695529960737568118084306096061779794807058829681949180489491343152884279169848799689118380874179549411472952260792911735644594149078722578747485652855286639881726155082269228092601893158073341544239251226755733838362705402358727542936217100073648799624205161956097499690989700088908301437205590050865056810891661212822229230838474204842661333217349158958511052450062127844651728162945364358487360541838759717796640084357017973458290716617777345898931440242392237967863886557628485265336067945583108728979433792592544146461068544671092969473565788778251980897062886262906266500172086858631337497533991430274088888960930432979095663535403503122542076029554695690727011347534317970597939604401083757251572018254855940161541324028980285817545445754835389620884434416187764632247519464336113410367648187091753904699829075244251961879913741391319365462143658725274614200790994509158440627648241696431812644082176657175693337513454248516827459143115874179933676425825994866649778024308765661102871424208252036575532153938043988290555499247169128311455537892390980728368429923309246251167545034270669430069079902325588345199542408232288663826532873746252414781887305107214992581521995165840130705837373055889720967206805030853604393112726858835276068480346004109291250602051684625552112007712362528017859836081614848753486792174137590696074596837452262530118227837814503569340542809001294587616681646215624994450507533959673901886885362029827397798050648558081361331228916639117106168309617359071166828888369099281152259270333872905291348614356217469408767104571295216174074171535924504304375489381212456956017395784949726653283330314249935657648910991669595492983606631205803725669214687292493529343493139603786765160608767737979071444970205321489873547055331679645924061490826076071283555519958566819303754020331262549191125065875774361915654727491518403576688562904538081046079746268620979403645208128371622817681834823514205350112707330645083386595967888378505157237864041706370867789136607920237305710380078147412419903675690225738044387556237811742394705927912711954214604062259182703111153437620639154506235972782971800122858998483843085457132027268068296119992297075176333548200454948355690067129164468046997643036470974347501149804476413251396920627586575696343816757668832224282091147139380042026175436025498902659189267856677367913175774576628961829879887477064460869834431521665360207408757666557172361849778167021502059807457004399908800543214339112137750447347360433599789967953948505432601596705346400436331784796370042185766267287024635206128515632140951748850111690070976891025684733748008203486653100583228159976476175605237163615645943862147293298383398432053905251228695680984066776441464759737310863184476165919006566573882255252979115943996582012932248314790780419551135332058669905879198371874801157694849265212126153992251062125675354278041094129099900467110224843454049582736076134622016282998252261600111348952968852346729939674932091863548010575494438154146368817777368691242699422155065465252257252815562701522072362171632616853090109065472588662573320344561477000358841962729966246718124645105240272073043572311635650874795531256711617458012629312120567457144775577743801755590377587411105820323912990252681832019688086141669895599110861959817604083093197382456217139442245536763206192354153534573361061141369783476484077443308257790415060021119181897276841846000872361629235626326137861862951784624735110005072961543123862889792814238942193758958785355127793812314319182459037236051741717768083166927257151729778579410160530761740742237012561350402859640269750316592361496923636348509781238680202857797950845478228157308336795260018604541162406818689357481950912660834455526940799981504721133096429683764981457111942667309112118140094140602871811469768693355327612506847330646654168537864301192799357420297269749156925457360070577863688104842011272907104589000800448697051202394173344588069445729402297865251066634548530215177920077773124922223168773522291799258521649657205521184474514288910299191178582816282020587528993522658924616826307788512617958714190751191419282669948342025595370665744245664475555076727260197461864830302053493405645156695861736084292812539092046871065737516244442428780875692629286132962762583370281044034158762334690125349860065351508174730589609812115134986165369710773670596310213309656686166622799364348809372591515981481690672794143568078268006495994020976542580974566124443270176440212735307980993616461661794286718385272034415833162983218994134851243282563665535513010224690595344329063446144842078523259812035249808875364554762844749671070486545248351863370796928416548090909973012997597891749903947096518343053713739655518639760535770120868074476014669438908829612536090434849663044722876786674459681146207102825421195911918083673541331757715505417834975451758524088829896390332272550256533516022942039910467977463391300667754882182372765563485852309631935135375621173318956414811441693876692348726826830043386519559816825723949519444323429811624090372716790615965784752012588048972269311792163177495577038640380536002815286596167484346002072405490243290558454082363818890174762158440121801452752323688256795885677192445847683549844335929480077624773850043113246873412704333190633313531463359869529055160800312902773736077912530292880331365175386257591006596312495899184469928329202848959105967068895739606884690735039154416951418261862543996570335511904015170487214402646749114447236118528808275417836355822987548124575872837447866505620638907319531119706630360984616314405259228208968021708642999882104989060851676010209324053352648368360855082015853662046668248926356676775572286376637282802128548719643553868894351905447211894548149425161606432839863128768934785732284871441072750743354979586973157734233468784523316812617957370262275669084285104949114948040737987221529267997971450487740844460313509180784477495132283214083329089161168246670974466103039340349419658164172641747464962702725004991604400929055760768727120186174304057179886249722369039437017409246758831699381871118942952057883571615741878264391442565606681332735043176743687681370798538871059008555640919581955409766457744002263670658451365557474972808668805218885687413401963665287316847042734866530574571435239219806624672379462680293686181697490276641923015092492981641022871585309151425887854073429282524715477026455233148790180536183554829918041602959521840754719399413052818915860426989645915187196670493369101176195767931261789048469513114150188350426448121972815852440440613470595151641288596884343111610147654612253773472591621294508849414898092987976509836180833528263075599293189744999457535826613516265107591596965090150149602909130125577748031148115488693920422624683788275575028319501248603224540893943660221771537593156331516298593396861326162148146431672226970068035359602683737598563748892327035241036880293932746636226407013212063734068160734161076692347715617767031988491119246674423147978332083563284347519116192005166249551803888793730747805784657631871618087697489706603393990462178472467251761374157979318978033502546187993939393784177382631709019631026308890659981990046954460145685190352739061863314037341982193878755276028900139516867541742150352000818428259714277063195207447736223405614258923458813431276880633668518077815178564071925732516789872763514816377088840597874198060376540863073128324976433142275864297993390864410549317885186336767335344928308015021639989899776219844466105056447322896238853512414382539555854310874281152452510563722319517488965735257202630528783780257805161271493729236310232031176691573641970364343674761958676782571022029601422437629248328382420493010940268476899267484611449278909209441553946591482623775817011841218591679861206497790705007797617272850139218832382419883336127212204602352032235860888146142224637504566634325706768809271373194555837779275398733881155301199342256379059401126384564176517673566965284361510241266360746290142868821891109545189613624095576521286587699696560926452087727045284012831945206461658407942974422551860757314115561434294250298690892289390807887913519687827483034153970101596613665847492864270886580249824298435438220417788370081584130702497704034826987693194326204616049123465217705116528250955724249840060434774064959664632134665566353250382007186510691350652142433914617267929347988177985131219931006439404454974065905271943736400369949593021888270000263117943819762612934326450646983963086048606398304277776208427665222826863769510098543978663703232941276539895284370601598792056032070994223213087919454861462692893823940149617815976532952206821219532398700197171505844918042799113904952772070405227071895197528308078582284019602404069864372368108194766191981783221332785606882037203171640229328079185373731180761690650599353974852572760888905255923527176093314791583637114871597974277333907127557751969388716748617017439862378319869603026061955314525918823026450618231936618656548644919384420180779339166752981702929170204271425789088508792275752547213624891228671865259865363086268152505681174468232901702102698525380236076409241678692203672694733128047310886504039590103309890618575742078804726234830959488555053870958612098095578742747612819614167903715469651521384119331444472464597355628138861442037090922136659168486677050979918844988685551433530026576703376494497298575641233516819381945686738114126599960431856874204093315064052289736211161916240322825141804710581891647339772533244453953739631113285411025355820290890786824410111624804035295332722197247443012470557136239005367096472607624418210573568920740471230500496075477589749177841797994607313017573780806642500541493372405227157238438270330346608420205628593145756373846509417188076715906991227521174119496846128739965512807707351694225032880498384236987938197587539488241777471354802764216807761276969170851099277421915963313910718100703161613397618514652267970213082455176828887510646697022406093166248326430754342391118868542176834793657946399701069456439266847476634507339115377273374165734577477003251812026541828832516674565214825561587286658142582830008817572062276804075146384741603508392763421870196281476059965667019279427890438672897499973758999809830644799711233279503058881746922735259559332244737257421893863113120303584373545607143090279643790166504908243145763580754254873144341493410684859674680237431605409005826453172173811883558855339964949743054448692271240618616938374771007317852011458554707111680877349233956916590611251315486817476848735049498645140999591333267767664201641460084832900413990044658805261922116936141041637957092167173257789743771847746916029501372342635062103176217934886403699195076959234507911236513459678357410642706195302613525286560725185646672033077482784515425140342623198176200899742213302297420227870507867610983209740675747769122173714227413235350871419823107184102631095524610246763193947376984105081414246677398621049608389098600830400609767434298314731471709672607974131694054738082031258967274812044843968496745751786037481480184344748174340152613486560430132445889374792082932347168289991651226159209661865009781885174753898636472760392339832119285002040198095902197593286832520919043412045609022287245730744735397494176369752474556484713422334990710176123519529473668926750598010465264385131774117648263851992344879700843469972618725744339832865828315800669148054469369392355999116313544074415870453450008362460935208248714228448682397809569323138458850468756728251164277977318100604391954484041758345180485402525390638602179435067775339973538729114404341164823817252488485037930418220019036195114656650819682517001845589958206742255698924659816321606398134170352885615497231591304459997240369026726472018245044220190192009433883708407673163920476885264379121998750704410535157071536682027403389951054412562315894821312172482156651470806765715784332212658980844981034223872555013391811262878501956682391880687287330961222613297193033237711245773189553830248220910127511647449015613159314665515144625552071077867794797880027463709825290350007226007083223737244192450737305033627646544949727645521048812271726351534223674377301759027468652706349802843394441580624975271510562836232575824318012862730183372962415581673260016066238521930490792441777465217296479726814649730277383254381950021984587144092806739660384011521360397443023259311992161816652829555352294272589694803731562551366197562899954202676252252733366681076392584610406469578597284858958358327705234256779335178577094458746006933067837098790001365021818023505745683231303734891159113090944989416938529059824428863041702254420591958005150362723634389957899529318112219912562394969667774205459260605090638685372486488662672624929571904815119910009124067595808649767971804953616411915349301267187563447104578137268876649832749093074593103195479717058355256650159345690213612662582032226063200865502531704341895397692684497301619622120413842485384527367829340472300011307998477346568882796295476253761931659236104096368900178590462933530828095226928551331760785601045351521694046413659932098344806880520395745096469455249433264386301742425373391108570046696534185844085525800757365065050838976786106763179572966514374523242470468800976760665428459610099858280156968407168738348281505007089869516680551297834186893577535667546530321200694246836747664156272116685997319247463085515510827728873942001835271056857510501829080894575258917086403266450774474522303880388938019724175967264378988061500110806194875835628601956577774486119708177449386540542570311508964127022912414678511565523843163411919527782958275785520983153246195193369568703976201769092588527360532201021545074561725728040138598244745937037626925729624460949990153126552508966141037555327414086140866577590627120952041402560871801702157499171102369348330530841866979415655834946790487729780694004409232080727245123179267661808344570052335541072313735747774799142084956758774938124858876462016307900719306960978981654592839633412113652693025384763449332868291463637137944921400824561895592723010814661018589675332123032473803290073673099911281745900967652272130099646250895808215663798644048869310024123226782626208588585743226969041279428135436714357816201998486794116842175202013885551870109137957741996386057022181164204105648735022855970440360695115211509661836324414168326734907825328124572514676462708513341053960341365235423675048622625037656949623718159610725807861637830001518467957099313105968878174634669375384623711908174990780265317098749386516570439084636375602515045564928060596251315762524789799739146661285869028987266809863621314259372878047291685254803122027445074891741846555235226977128448031827209729321237219269464876847401736626513205637566377192717823667925657280378234754044189214661359315134717667403880193025370732564845269430614915893360212715318161106905698541213575707152890845779365688560858466940626098922691752042465708650527409164535368769658675381367191328174041388286560441756358014429328594258533728913520578411038981174990073688541868810395204176913319899438459062359706296915311695320171433523058187573841872713783480042270869106567944005692162440843039317693771868014454826355341778687558756437708319953200490693641107560675288577198121641258957557846555811645744229424244534705388835869080335673901095383141554819116974972917512773103294883856489350495192549615716387036433271773514149182270954054005737729560427272882003308886657795524535172261779465009860132607097750425273438294981040307743400683651855501552141790447375419169962700097262187778338381132469931288613090992326447253992198776812080982489954609161041990804742446902126640509553590610175359109410217958244678648075753831068041987887280060725662085897196860657398674679340902833871951394335742720758724022474882952653237999655658653190444990823862951417793859336117869213964273177115776099205381445870690434327567613785748191066387346561351612874752935257614533714718452272765016274737312901741277521101738678428961752444890722655068216109218178687783306766695047891457085175524494502033475268640087005640825833492060843712908621875801632579256677937891200316365728030049187566245731386532419657654113197922419191277120186514803797537627848953322335156767657670794865556583700290091843422032277753652656467671513360089869591091180250391820531291772745753542398924612167573365911944489117988636358863833091884567022985820500695530992695763177851187614986958000568680382647255770441414115563755956222864768938111301874348940430553433732420324567457162416715158065366095632871010005196915607984788698280613255961204611281839186649113832642576927383172605540093806396912212907846539386389327765071177464919474305572764240630975174412295369523353816246276751549432250044337918144300646250837494485197733452060482656046146900820385747932287386122048322619475664284349885277435744596092552154088540052764557997862189637931838252293626608506592131237479900561185613365962117801786145171278913153017535974820701234538331987472621787930741678292654317783389509191496775163445103456208149222595344860871186431884934532826994878153888856786268538692993092869210251986261486168715493171372813156435679285487768575065236805465533774704204155902383317604198847880531692606859499584500614088025261142421136488417427260761665359326439463449849926090458161822336124743973564414424454552856281518349852977520535234723363082275108093620022062853862162265049355249440750203957595438930238361447735236270071133933447497183262262408202594410883134777603410905165682586168518840428321255767537630201975956219232662866315766727464031263364934599212672221143103704765261112400768419100582479846427482498684705271582908916894220075621050950956762671155648672356786123463065546735876592320256936075056771196435071630733383025759415843653941765673749488593472153909073668274979507871030448323131812263925956428807575231468372798137388931382949698184679320368555256833325466947294447077726422759147030249940790520913998520411301926177607942749108421675019033312823876256891392957460118334140383522741300466538327793459591512803079979189906532601029677014810610454103383975463525863586555934668137611155541074173505858184333822222677299128182061315212114673636090227122234926131459883866925452416187031655371593163064974042753019715418524197068610388994939731599157309231073299338087542370554919564597695227957389589786969614175348177145059337147762557278342250076815079034813422778174267364784585586907474417107307435446532686839620560471828596460094989799895506112704685360042153663983749009365125342534251930602960049762132723266220022739853686199795027342118388564969188687858381144376720369955002885436800287080403706443320770895674738052685244683565577820528818246737713357218858202534226302495981473620671893374141803266748212449928254700327803350816691413104149603786666609743675245813169967704646139647513025570290124471969615675106595056610627819506061423382661693769460245440420993770557436370402221532642219873143459019027303626103239410298705937872383262140148429580815880949012865109873228938196121867821746747034584972135198791292686805795419542471303211498997284629264152918481918029588620430284492245136493612818733258933332173780183783110221486002413863179508078155450076207915755394932882456210972146479239369425039525310042293593923616634546317064532561799935340332746420726769511899733285618411294012866988304158850806653689441932091793171982658429366503316639261004106440542599362472384561289152077304054454727313985138414367266048441867032778403664249638901008320695810177416059772265202228499132583991400796545908318263745860991543224756335946995420528965087482655910623546274242154891029988249639487720254670061347609105568199549913775531650002057651775691909958836931664496634400226493321044257784185631859052355911124851005412160107002669106532552166806817664461138089549639668630783566796264015857859352710544104191370682114885219827772509582338828078849024341594025276732061028239928043607276650273566339637638785113322561413044218096612823494465561849099096334126593194187903363076498851200113056404012608499189396296831852002368477840437101493215564846118048174166164811916470474875703458819935141639388540285083319157488180832851774738130537691861840535174508682309231624172432625202408960483017051841750401822587470838993291567862715768982719410803969661049748357384713117492303092322222333840576610622355917550873201849488314717246291800084392068714369806042856318900999261521736783109178492679894524563039936191704542886197579273887141015205942021175688919634589100880024746418480130043972469931454841059022552949733253811604314282941403691033840567811757124202063724090953100801718356609731749967313324555776471270298791676961562689195716855190632805832564732486377341105279749188365373850962901162799369971828285937308418460594518579440674388637333493739753960654840620523038073236722262273480080484320629957355033770291434592481545262586398923797840870069498887628359441826515124386959353670662257450656013113907935361627639452258083585911649285410253645725098983472970987620932718649795021420896879341100980918684772754979747752259145146355693719984326919057634014857710306893671059523680185402657415298396037590385990359619749082793823575474100981904526266110925778683098992140638993851346983677661053386935363322145275951573077041592621399316715312384278020876754117419895259417402298553741482199832620065124883089850657384488626111035194974202920000718410084010419308849516249208196531473971727227687120608860585529519711219647203315225405630796622050998990773104000339771910079487836349985367916136326596854124435846468897274510332279148645916065385415242068632980596541257796044784197874235853715143169411024228644519673224409647085909775556032687672484428941616365747991074879096989379458644666636948539581604996377957017959005874120678151820570787464695272216949783191998305218543192278376054116122253425589832342718332379254180672849724890686711206624355209932409916256839622246283316960896023040875621962264258925547144046796557262671582584712157749975070566149440595618634063644339344634939029485655486172406703930632971794197303803200015621723837667076310876487268231438471959272244541217841688431148840980754327219223475026200624540615199136506987039419967315433055396892789165335757231779879635378757821325657929320876110481044490577079818114603547702756434919417928721106850109954442137363430013570754746384263251779592501451958136062862670423535502653973396572548049961687171517379655048915829683239183756952261586216031237601013623999523705786790737693607145660254824777286443713996845141540960368961505348882024398425906935613757301534661899004186301575611410732631717322984985533078839079086745446882932748474138590373491927333240537779432220745549691460204442139049052144719570269690213689852674571596832888288591100278914919086911371542494820118700338320604738348535963958459345786182090429219236855277233586504477835396285366640130353167063170810466044847516435383130845398871549255337818008875830662059657378327720730244112797141520168693279079946526251894019783194353367176058171327608346631614158520021458545079720836607501215937102401764445348970044429100212147629603792259295603352691985987564896642909029992538569093026408176070915023719896233486381020132193087867546274433428305476519921547246588208897676089783523443655764346798079789395151987395467647095810603767901704521492270481712612484151844613411509850014291161579950140149803337105393669565618727157508348476640130058297603422545824090035351343895786196495834882275862614788338664378688498205552350856459192472053112540591881611652534968372791842824390475421280769081912214771984577514779686762331239952945554358930596941259807669763095758971691636372176132118038439822779544776828073286875536533966731225825399412677637162762139026023699569576554542697184291749549790341447362548238495592568731130513238892009578027731876898171403915658078822328514640296084083174102458941652599842316009829502691929766465445945232134411200310619785992029653554563730818911273916093791600914620577249038415689560560738487971676200097694057300671273036416290661681601346709464384824691545870459274059520439047594259542760733488861811276412119062267386353444082556556014239903804677277600801071140272133862312207992877656814148581861462159451906691978314729620580056713819549285618910151906951242967590926932971351704327604288791105405320525403337773005803929321219822514517761090623142379321451064543608303702324878038186260612902128841578526558416471158404476047647084946543465624508426664147122916844986193650263556053179435719447234310678929470177149964727114907684618654168585796854044099197816738756758294883864961861408441205848044742566350709346160336316020272582015151022184884608235093528924359858697076385761557047902664328925514238610994360518161586324292649546214893307488405695331409478385309862840802578695274067963425396014090308240583567563710897225720800341717917965018555901070021226315428110481527948007313716022439397234614653214768502827807353763707662239707167302838464592921506517494015971270933132186153404123572881960750530603269096860704751851592231654702674247624463256868926558104061537001783813272699701524869286688703068646716344553352079438852619011656185746084009187656726338337544924128752277618173010584573365920885264519680187864494833066170376591222640268877687329253084945274183733809984387463906724696006762316896932412480289306179201865320257217602358981902347358113926348069622067104874634517971818946470413744530479494645625501309675663003445689600946659712396659626566365416162429166868464893634251594421662748702624629446545384197131223455214873782305314277039001507826347650327784153098317416288743920325235319109860855569810887703075961053104956842995603302323371681959808019983454944611912654419185773493568203008309301324730411712334214562070145447232798919648738573249503980333065938203098060819608219221504550747812654634607916581415589034658201450286900836640176303667654306074146748400442016534413900454250397889753946077996368222188337288500614956668220162539110294839876889705535339428895464071016371632374385295345231105855304102018644999399751151764272639004420492221010564850255043563939039753378561812500045096350157842000566092276993456810375436393581774124738615865374997209045319235447290692482460649159073629659762649953365297677602637714158864350939689720104851654367503792679686293808441408149144422990021619666902845916732729873575317967943044934801668645538626696068459122275780889960785142053390317569023852901025526847050558793255662455686600454562099267499164119385173468475443663449614727517010451951724539485504235230066029123742323001961226311317356454730665516264073117051917476573680601430532030551480946949996643322062163872369707121718978303575500264598036147940021010445204160668826824962841949990805266002522253336244469445852889339133207712129747411445157702484712958744795366142487706715143059956349175250304675107745859167520473865295803014057885874664405948086388952964478192131341931242982259552433167768803652317123721497371725680210914306620337577681824085298128176403198267768989035751276197965329799678190293157537805101215284840911342950084227906195173869924596042464275861957131230394082934672842801942465884912603188327674359227213281528869499125600130878757081794945882430920185444176370410650438435649949664249544700535826056516700600208474879651175958031751268531091287227477961840397554068536313916863768242843313652130336288381445156168743939479128025411203823598909217494639372099829619162243348505204275425991541245456211999908298021950514713924314587152015303324406627123542069983160484862067813713241541033495825271788392543668786379316723089377857130901838293923171357382071474056903419401926556212624776498925937179422127919336925684539517272560390955941431377891956322945726382570431678902672649673746075376339872727978676534016996456383569029640019402231543396090059341533761041379184819594873771987645009904430461880903345273915461094324938224509494499190698572880932767452185209799630218173554134114937052871281740118961306764524104388490839580393548188110371512564431894414580985729504745425379597764826023847407198656891502264004238488243641399135167475872539120874961631022011461378432848254488083332973983850981267270194819943420795156460609486385616469480631939405821068462407526889747663422316183337829259138519635882309163221394626022537853648153072085361911245036446725451671175644490064511889604367719826635162632589339924331292983448892721956442823573498680557243992635481224922775963965768411603278284876607942864460975299441731656441579289298327361720975541133929883224302942185529726242697118153426299154310140155894592943693611274401867785879916500755247599767737547703826531377104703509895663766353615560219680726414990765002000987892420749954757438887870907970530524908394146251080724095911350397738691321741905552623897379454656805733076927965296848844943252826777228125973084378489040151719486300928488488828364808491783649420664141529845326820256938134227933797252807894664966381132771332127301100792536828968359004079565372130363324602123163701517220366006264863376756489835722512817830680839310158751902646186362476233878253658239461909968939183590805406526820865640871170610360058827593338403505505219124814458645777463325427786172234651665436894751325785449196075619920846975080234750306479027406397558975777180056836334727258507944832132034547794897539872242447678740954859222965430350690846250627429884501656960421899911146153276462200157980613522592390117957614238186247004529909155934014967971607018424672285493277693509636021847953996592642175267304566072019936139309897428932517027667449173553690361687334727684307472701564787721066930609229110795960238558418360847692840701138553802952763836064702149182821702559933055392146394080762726254353555076392251283696572541290776713270394749402442889068770574715468315839597681790172957490818433812622191022071219936984421577151587555428602969395669970671249489697142043915368084896905027395768994976913184528373751409759304124752349166843428060838683073306667037891918905418348349341085825986526170172674955019492423756213790777987455636306391159076728776626706867839178732982555213590648185179941503748606211459208039994478399686342760759709452979514585548722867263878364713710511362596450330454203364050925214133491590296446741590390326909741340488469218690951169843356530957374782660232419607632452888310838383241905399331682208351844266401098325842471922439785909430297292103204958121810928088265995422565779770503669207140958158901437440220289749583671553889468226463591217972882521908272965761758906739230888026290250750209053193153065622206902016677618224122545161114591885601530878656269572153281426494099828751323609128589625025913399480619884051121895970599025830499357294930424944828379348921868547596484409398060642805138979477330888565102893707027491504898564053971054830717140440532617132419642270590296846180930442122159641240772296227642451815972913795974949097541394135931347481676166991605484555447015948751642667286376313977094025286426477306663665021215736603918948121830558434322676613008975837395527747399125262995899622370466173565468799947290946955004927014811566171022319388725071852715835938771227132031369006834887041423802091511348780105426013276337030600664191952463558939870883766205736399262285566257638288122382449990352488777991186760226398128974375161484549329440350839682943100266035364605562705038303662442897620965152445989551431813871886525283831073469323025190934755621501379112714905571574398783851649567897772524798564941726044296245035084218241599930707112087266382201651923611974810232191364870813901152559212018555113742758330362323087653490983468574650263722832910111187043561923276849682456584968944726752751546318584702088964626092514491523284727064913919439876131258446715629693662220709040607004881367801069317387270805026642675532177729801162506406975070408085088413947770698985689914418782274739427198077162129051735470622989854466335173245497460062569151432903806298837060323758705759607672984405373120016798764200674153124159810880273403194073590848809288502901453765976193370191713022872539051429203815409750088277660588416267188427234089807271760147601609203773696546463960653464120878631260898588971840299136600939859274647263455713276530513298188427029343357575546912608648024155939622276212995929891770006793609424588295495078695215735267229602502665108248385476770531589107522691729500735504787783209654051976320342274407874004821889857624689875791073880086583506392537767712775718245533072930023678028893588108565174881547123773508693040851645341683000200371212694358730109741706129076121743168066626585910814162684257554632767721435642283262591970712163292530310464180363620666628758922425520418450541423881175883736185748985459192947823328699828155947766154969915843705398548504759727155343173917033519084980944181884972594564419509547537202818546546252689665996818878197654514702761307162515300925263220578620016259587792883305570156709978781863411307713454290664846583810014309925764480750344613985069790681252263937033842151515330867079005343189700159662563857270993309530762402917942028857859410522193693960865063975872059143766111335618660918546449385423682681826447262558057463911275110037169701700561645149833683821990226423913173701334889371607056078971340235725405030162680744209235414641319911707334526980767279183933576102298057850922133345734158072046902522342321544597641432324336476530466183341777914563807828712347476767052627522848826726722053346182996805182306996158748036239250796438387018324859788015871150357974593777158556734233813636837820229778281461574883107823196295285693133256932431629977060157202491343177437125003747449718314857737066883321553466370630351786280048520484272305677512981361435820152884918788539387272168802155020838254040110540521568355137890508097428668978693358077798791851556759729113925819116278795085529497325027880487452955537401485618911277359272284551441128848038792693277303778718588083629013472651149509507040472318195424220766985637768303180231742898073129734887673992323911595485752820406421070079455997763197838632925041118182912654454133341403849795705999460121640834114035207152808247693788233810900131434227750053733836500261224487518402674607812070484366195749865222412444493564518612693327347778219288883814194668611499577589588499191759721987591728816618197290251464586744514497163940154015120017621015447180546951922965529251447969734062063840581614538960706478063668701892565648988175214693300332478451665146611880319580566509648010165894834443012845652667814145745905657332793755613167815667927806899418374402442256143157002400946946902136718558837935987298054716086008676057421501682772551937201224871002443726501317364226261825635043262132854056567717693076034076212776492482286322290713193124035866364718782917737820225230947612101855111695461409534832270902241187748423219753546743136098064443328108003390369146400175213522430560401996874035584812642463708254724483610884202061311120537086570716751412677795596477567814784013110589669389186356118645120573443709752372043285098664357079080444225322152434562656661100805515132487048941495006646735827574703159240356995600567497395282671570401391468677313845128480661263145868691072887537409906897051854378086308527091701733199797926796823970235610578555618697326402599933186864105185802393438550832584912061372961310130621224908324062708215086646718017927336428084097286064117874197827763482911444321678368496462870947597365531219723313697648990279401753333963830945297488775106498614500920359526732007937681957546107603036331549833154540527314696450144375791941942151705873012283524825094065651069199955806817728334503856228575138821722338403117781398957390227412112532523865842356260445143623651219529720506864990800419874232544590653465653086849849123600650997128051042216765925089557381137514747044900441443081594742467348595114532460775330148444373880187256231672843914608222605265156888632432089818051607520236226465145181208881870945892337576077593038665218090286212925476833229716654404595796048197886774865089679231900090965335393146771651704890644290178075096999729413438302199386520900128958674984415120043304724248332570467941214162411634131178097271417680585510700781485288606768267979893676050368145646396636989073252757271619211982124087645358418934224042554335069447650226361648490983314761853328530000843681509873719029654901048047860467288483451023660528285614401025187887499566968910204613311079836416861168513153379385310587231643683087460973416950559452579490962050272532174518798982101425346454258969700365485775392012412351022786956511907651109134515724564089504849889830566309195207227513948024951259708956854744117732088542470404947101522045253708629343300496318663884095692541338233207014859477568690314703172153739408086730044505775302168050753726286133172289405847490511970295571778734006505315827202207160130291213686723085506780273334086457026071828385324668443157314259669063231649481365735407219137814976257118789282932596096492527251956766433687627067247925896147923393994733537964157456065727239652258994498307354903102239793201413072265593009523696377654910916813292835514711502443909950189688688091569599822857845487197862765598054377327712963430316782836344577809645209277612646505045981612543204285809942012602542424667192893781699832310330341185170296387063165700744739332152304115767833739495785105596201490753231543223186440307975278197474395923252267522379559813001716869338403381355178308417438483220196870489789036087337450003450705458412502116519915790890086012774777349209241141696844716019583591954383472092298133513757437860952720724246967049196922886404006772119867469682936519714611933691829581369887224635105591361941651906587678298821280520840647044428228793472739470601690325403174026794330127040699054047228384719283485727623315176569616287228953136255631595981293534713360089980736125511454135320832083232581287308397463250062831671373852078392712555283715959768942399017814913673326107942215187964192535627845552182034574827538391229157203394808468495714374922640932317469895140824103169660011031988627428323947811135288464323999401247873277251465068680962089748184891817071507695143945129761155004695281384356288921927974301092901853637063771544100705438733214318936934232914045571432866602937062529255476505819734444714107678925173823570249065340179347701890018003414940239107320418267163611880818006350884987519737483896932829685723422108975873623447766145387293343973904456540321537584485465142064220322876615826767196927114534991953806627788502491913566274529371316913877359597534431663631210249656214262312566167766455595392791076354221409337526917418766724739868598852659273268534026983165231372973207132948299519029508047353844705697562646217639623409028512031187194365692503241165940652362653457303086060595417840151636332127273918457905219441345206392063570939407085709586353951193061301269413569294594072742267492718419639566766573099627492451389008922460478129216505778696985809196545665243271552436066238857609911955512259025121161539594989633841670828287221873186816796806471614627705214607727157685212939014639936792265286487247174635962492147317611314141747553811298149441184165955316373131682985176174821490462505973761430690859235334773453911408309833752228726907552380641429755444082252589152693462642662632772457242400900859402811737036692508290561086933148072419688727306131656575847574406622501522093667058564563588914980545368723874271559924959839835164029339283787597200696812066614054352284604040950627158433752375086436335193754048605277371357968004062949193121147968079908798787674456659592124689143015071172819052904073692093616082064199764082763461689670417269916722504724236793301145590174118389635700465554557666516584361499080802481492869525916384210489558970817441255238585014862332320327274534723431515284978392107957991129382097387197153161195180084099893077415142936781534379705894917719865190516827970576601904364558838701692799534562546595924754894110381942217761671175808683832816363990076511462409623721942507221508601715936792071462410224588587209131230324854088525516513865168484940111022405678005200148302943603826136573353622000733180721449547006082268698970534811633958706756834785709807812705823669512574838750036782739178658439220699952005150766444594027769747198558603012229660250293713534578089036620596731392639760572089499020531613766525495922858986206293910866457529253776327024354470880813973362023508238745566144920630714208490973763815097066918261917619881955029088361114243793803129543885353248318974410330186779915267785868155120310689511739370050434182051596485063420882024238503505204895638453853181384553155446121344074057283835129722241978071230496369832337180702870219727513798230784957629622649636415311427974506143503241668132114071727877962166293760827145108147631614789750397827019434218602294463213377182562145715860460457981943774240539818771009296159839142047729926407347843386498660950728446443978950844095199169905848931991655191264604943642676830007807649043308159887199404981292497648942975155366696792413380885756231394151463251128183850147077548112824241651452964802267711986122259337004582182187438886662398813402590475272906085349338116200555231941689680204585887971303677252319053731766722226390184124715140486450069778522582521035902201773433274230842006062325505148000205520173791968044946115927349289023112467423648418659724747184720113985797761968686973772532514169236147608875648539622993607674813140888381597801204418450123234502521053165032192838760492260340372341538235129831646731716228628890425685807188358819670150518273642116608860670035625058706964301013762327221173370551712838665626862141970341276052050854979595514873101360358421045929973099671015568287598958690822336849579883901121355203625965485414769624208913254367555808064459933199089247883920875428078602670188985611471620101687129779083805177430511449030283997508881340313539523950956899504006077147441382312566678290271635547519856320859628851184572875713510254591910073083887023952195867555814800697599252774982110142676854146417102308662033781425527467032600562699490151639372833490175153526481138366290596913651539212932191779101425464997475010573473510744347899828871539393489970769647032085318460825738842553818657548526474667910287125468892193007308401903439944727903870491867147867225000460420842134278547040981146321391024799737618802830426967297382340342845810652623354254132488165903098472988897211261004625257143967887751433806126736370404136685764094897278226302474975164726081034041236444980950590944643168440103901844544637939111850774863102566043059928071757525169659445306052372764386025361188382077891128280559065093205517333300064669255879057215393192586746311508499701867860989217264674621110424491143026697122041869140475386267022245127123925293550129365047533214307440618212413711978362909022362255402855723252523586194956821671464343315056804386793742822605455254067274828034036166615457487488478642410680119472656751778498323921426365526968570247050383266787096315989926065235806633566965137336620393556017732716011598360966462576077416828094903051972130957667910723722242741122281931566321382173528114559594777506487529001489929869342686783081863250768773763023349884822296642072312326787558425046610601509935871599539551746181262154145598967443454983868969397260282650969556738842366776759828046803089328848205633165491267273372132997199025085161969241647333178922644651699420730344877356961724630450024804339797366062467800902415368163877940931357659491757786449282674078375255527290403394034809174769568046476036017463456095997903125305966778427261353428601867028245093620332649966888115701829527459335068894757349286679874040785624208497647832232328129079737760983668782516899101921585348087802350539293241013648113163057716895157171304103628615431870555889413420858031804432410743722781731537371091522962074320554407078940976880479766287437194035212131663567375381264225349529382983592466441932873982813533557850506811389218730847892489560873054472061012505932622290575300652050746178409565030814440882272965096906735966176452495359138045224329892637097752913751686155005571576629693956530050284655500345163097647694855608942747140641525623558100511463232068505445690733868305760206900739998308200264498007775732749744480942179600405259535054517965591719183625651404333427215164808055329198777751469821002641999480639287001494819915492316347482646574405949137341934948484238635817536497160905079623792344680677159543349705751328168902085815372319141946876305189685310052613307951657677816060747489838369656477137504796575411841114799079626256323248401029975289767800276071634695895069236407938360511842630957890217793783002258153569276043048607377369797806168383726952701726223457268198440894944055298976152444670066641556649223768860118917346349137476996660503506684006303843930696513759897979360671224389486894555509493525723571318002491633437989036194000900122944901704247230290838904891804331114939956584963610807396275283719997851747351827176610624326936891078694155533823870046101905087038862356723380985498860331943487391022116414283756437103394449799164420116485665660567312747878528455525755845919014509955690148483923737776695995190591457271486996060103687712359337505543464770959773139540970337492086458413679116158203897963893050739995512262460618357996962716907814343462645849762134959501408659911818701186054905506246775528776456781196365357289389177042036967073791022139740580138526915921571538806134209521028508081043956044638310853731276683833013569216842444881920271570661180512673661143204952611924785419820622922515117997170872879314238048747351840805072655214674749188561125140916299020107256720006574201076514934704700024905151294747697353123432161580271166169937538694243927941133241437348518737301349510405259235253547147773391120919391787347891799603384758290885995276425439469688196538346431206044236488612148366482302159651457728842940121315498523100877235784651188350245880290318170202988261631447068153379463006724084893723425610002419610945599395930106254841149226126887816476872217913548971830987243866864458904296485038531865887332768072991705367050317682848615923943153400499183128403077320189637381078378738862423791464329165913059404926962137026675769893978256804133473341453741613734520422448228435183892983442987707550288354425847298440185226475636417383376386542131360257602059305349525649109224719872133606549815061262389323206439344509643024706579603953324720190233318067974974434010203815123811736077763000330721839726642905444512844240899493028807282576623917722335881123487616005444295872962859854090558453852203815635624173771477884155921187217020601762921488186855315606855444877594491697142649267678468260725511344645146733392530958927087949192592708650216001406128031759997581955756633761373251662046832125070215126659372891231524220556828419832911839578950126313654830833338720450742984783185731894574535144255907213471134532360848733890989116492555721871647262411551529172071644043330683540940342466818466966453690226591130811579289624734496063788599841451103889418748398884033938284604829512778949755211104053915836072830076341726179494239149357095890378949744387562031231169941436994199212780011073684279388704959672699247828968077707918102311365088830640548645376466996874072979936661403235785550066870823401606140877021580522110943659564084337775947922395816730692515865656838214096435966882268818750979236491669365451223025821701830652871973587928369417923164267074347544734339151394148142495750754679260760353428322434307161635308145083137210142639922673420335471053388632825100755793560063864544710949478675126751078897241393356660046531184067967607789644569559741782448755134152072964946352712992545839688186250970953268455296336505607182509607779204307910574190390854140873444075246202275933449746245094986277076287717179430294198405401416755470566511295372367489997356747842596853098318389727928899296355055108165129273790783105176764559928054501571169201249204765808916351227152686968937471809202264106703949923303675620789375500434735968555202897041690236553696163337311148721515541165439609039958716619161917326776255728639615441442152003892258623858682942360614170464385540802516102057441994796551948692113375230869712361539808296734538610844128909620396918976557714781762225585548800859148726500423977142047757372340272710702838324568332275826868223008924179794823002398764212767596712122834148183738239038893792827002799269089685700856998891004380663630185528824493016962883079787878097495146811138931442961620629353557596458575095612135252903113618322760824680241832403187787283351464383829851378223980564503457823925842067196275222423260295682989337480741949629588101636036349785853907311358246603454608636533477410073401000000700764684276951708408718951396983009906800646801313001983905138555680845126995242492447757572154962285371521243567872201290889732286229804344932387794585101471295993360020241438470563806737284718332497877703177073359949540823473618797029176272613604844944523142164361771546701041877585830026729251929348739740294068663746383080493122303806123208583050096415707891112719478796625597685461900582291101142547715084431012940348218418222392505759057775335605931400039978250331186934814580069955559740567800185808188897715675968479933934845678382610337701779833560970907281456528526310565516855144843830428210073531250725273486250395220005560654587839349565239320761671648019244150585131370134617078602295615141368065633519608451649927222925940616182465527704013264383236592719366169767846096592006306794660111407397818535622437072967215439245682884530158294575112411845663853662555673983602963783303428682572826043532016121570296445929247895094963117522364588962976529513451941405104316246602282972413824861464744701070283491990792288671939154629772071820180684289926657062341543553368899245384958178025003864277047576675293165381285659705290748964970518520659153770767980050014822212979809062415476271240028443305878446452851347443263830694333354358358370747291539008374264620482081646377279522691355750064204788712557955233238503514474828319730508409043126062847960598472957846823445389639718882011340467395529707331480152363208698534690157745781298614141690033586068156855168073249331414207892435214359527131302722799799037677834019761500320655370920477254908382796569339610204266977007035262344661884736408209206582659002253419378385326649288821724377457513771946515808875112175165056094676283608880341727834283126703926616299035519038616996021466109145356826366916535055444713701293451216671544572893785298457296545666828782986718629702910263831102117456934801748252546808129844282894528302413140951838951521469571148820728110173937642093137816197134089011946944324657631913400332551721926797101453480313948950136146992594580424806791399856981111024127981763076001996419742220668176285763519596514860108796288361932054446987865928433064683122836945921640613919666608216123443924444396058815495315256698758289312463691820677091790734883800046343575834220454197998718127716652171502542797088057026506164487762326385524109426256694431251444379009081169522705475608235688412980035679049767443871736791206219203198778717523961650884949858647669929381025053271361797622357742257756620401503636735073379511639800070674029423194964233341066721280383054981406410069905013554521430994856044741010539148412276481691798651157242995111052554928967859665560224163247562348105622103293151590068260372810424890224771079337710495990130133895797474842392980800459012935846268982599230278783967685832501676363994277711261745287580998910965611572735015051390121303884252723729357975078294036674079099486759037112679006110469665670811201439571955684654927117657183668050711404676484693953670056147481473566707369440431125745783553765234057146464837053157939466853641547538137997852308523595257223455547279542627622176264334120885929484874772816511332446505146294184657414936158666808181000647255028289483377411880921897009760457228693951705221776754309443201168596750142031156804948930113868659365251065925148649473211414968611344441478454449291242790769211627526818129008233055138652570787226368359052305498795295089413644053436300120604558996932664052495803502677942756502181534955889421090223789870070076601728783036525116291119062050643343977211535427835377179425952058834164989859140768290555840282620111984156067906867232942370879486125095652951562795179398371166103383498482250314699248120504654742388310643095326984668201726657889358857548615781004923496587434031196515193286338655478868794984047063961434167139676139166018941022267061864954739400246906524049582059893637614199644423470323596286494966632222017825380115240751253219337211334021666830754239560184647396089043755818549542696807968727267502122217678955071277679696323608289467267124025973236639168110214354289964348394474872585401053853481610517943737190295393787129664369604889878134304628396720366454038413705286021617780350952163198290180826465455642895966309912656032458342200356822374150187271145891082990506892659036818309761842507457915738698507562135591077634190787210889325507374555163020856640845647651724525482774942155120388173976233979551867280452026882647625171103447339115036729397449781909367542523954657235973399952271028445965730504681427258914124547084867409455090191193238045059362140044636951509433051170087632438571652385161575418960042033741677291631741414290712103228325030659808565564534351512452511813738430787130013130930954679756687484489901396417148962832646358349416614577255553710235047589659171430734285526614533129142301404655711836301992235674047380815074220422427393459569950168980148432185516699390125198727861476864343969438019146730117633016129652842705666982035578415884220783288515422763063272966016122161307059011981442343512227554201830437985592717834025691262139642012620644699511291295181980289412004827221989708859109297724988554662053289605152811953016206212373438167339010289620692857525996820522571640328932016884377036555619755506004841439015834904363527286026032478238349179067312704485301913176147894482656132295739299474781966096016106373685790371886232524014890750991453460855251863442028731568101690515770264962796231004113096737853738007919956876585785029341321545404868900388829810236588809225681605519649183214441954293094191417354428489851795318934309170637471605639269537238883006694910827671003647674918210945978966293974914019797734842928961625456828814322546381786238234246965183489775404460399098034808034635239034266874130390948121634316273210625952691652345733492179801192339103626540557019735199437768722211701155355942359426604407919858466571718227221911566086659684280983472177402725415983857549650493475359578493376271796156506976515592708881694002634028187675956855963288727804453484987237435135210505051655587947866724537690241664913011992467973711429826735934454664687874068557575692115925414408421532448833859055585459421049593116000667240841777955054132812926136637687559922491404046167523873112305344421026717960995237777452079094859961108249753931565990063571134296462076694380983201911918330222898802092079420285019378469278394893902704554640378910874425342538223756570268510372579426099584420258281900574679501438363951053317407244769017492109157705416715148336800829614854123249685287350604315657444252823050733258057503639535188743059729364593743234268259780684054251973176395604323564852312003972795006305713393141241095771164250771213190957538762678964970244789504098837139135584748335335217340402395581889487859441662098337057627428189790410380491684022315901555577291908308813468579271852464720102662786586695295980139955260061127842970920730639373407814907628919979796661844991745649793830502143505143991637406607863395010515814086404225506430406490007500690828706192642054057105626036964871050111608624367726117300376155744742852473360047023842083426978032522034271411632811377942174963245217461449277495480774442521266633044961480188402286785739293855075405507336697165595365459732786106986533867212991606789429306628419033029327305323453019932923630603399938632251346555704599745299852546537759323627732173072560194367017530949222087290119264389275241862060440707079036209648905609165632176597175242489156156975355402320505190873113388697888651659973590972047191378210947427418487905114432350286245977483257925424586462732582922055396378405056305412366808725126079897384108131317623425165773248798717077192607310947480356979545668808114651440526588446936194962963086884953775746297925818919586613192534936704525420664279522699591201595954974473968646922033235979560667319256745323423891486594881039424124476365112469526892814403014619289886732100281170316985143309528264147579006718996700258609848466742972663465664493807621828775559843422419555689468469043583084842568227497194346139211213382599583517998383432067313403464446902988917599004647658653496336822028380521194846724677855573398209033840413961805823603757177670143811430830939727577705773181370558636899650797576358063702237048817005506256105135953715583043928442378654439017169323485331398997610580929351237177173457384660066995824970385270925691637636539383272132064202171969131937445798196374588600440494459234112898556460629499924130522864250631496671747139036693523792906385830161982896115599023279165612229191749160537315791790683385318290269818041192898149407250783411754933259885773753158032457208652558879631216567879943494068245385287866628631053620528311724141936671164394039054410971857403740230725331041228438840283309980847703164533008034889583142280128774705616357235525982530032044809989341558604370785519658830891061062359161377421604747714359619962537305773844866286136106465676636866954658811589935281456841504372500333266824787521526638214667135680257181006659155708872686636164271451614624924162391638599021339760939238635115320954911661191126116156759889149872572387432119233986532751443576510463999024915284363260090914226500978928369803998220795582340899603309572691756016309174508992409681815600620635169171100935998922045209998521500561028544279842417325690020291215593890544807575964564907686366519185378328492724788916627276949793482209313195226692485870972172761150153203826866442154299062707286207627106359734279015933701671611774914105828184284308999747452720719915777804855841739882898045019305504440164289466419076673317017305858562771601815892695216998124092736568414401900847440842504204459708118864055227608035636551676016497314210233530384238084011717456093555233701274800300530809181006980987731292292491864962492145657142066559130718739665478372227804172533066972997823701259850089753824428014174033111709513665204583214866885716007708989069610223263409382198968142831588379076211818543705680573340591993127497741069506057024589524692538826363782769978181504290333916671197051199205105153029831535534577559878374780503494912857312457860014223449788002741187348695743562958587952595996240093180470712186828965517324189343616976116250495567372566089212238493749957404213772039101364011808164628834194547472781845085948162976423260026964308850905147938205848337884695242210725990452550018147486619171938646563475311978556209090242127393388891713052818667822298979774063110040844852779599722416828598434187044037062140380436466991467942581314349308389388517832016985326483293550673831123573743442128160726413384816604363624918038406294830991490508720181225751158456928467072435043908910100163034986449522106706993695262117146528796853459757463582166946225035993419898441589356234788175262327921459714160891205682203809641004573396697154233508949715305371912215914436258462428195494929274178755415449380282189945249834383512121437963033235899319992484582354281025506693921222643729333046916835160928200344643327499514379505405574524906092360511722013708364175514873769396834735845206972832512344590931430715097778082990028770270261073870520559336801578667961510790398295182699959760781493166824103911184833019738434397464165610071504200297988729388597932695531209406456531656958148907995865782396070385009301577310617798150465980392551600289481767208206366681320364057068232744291594075017278120059836477184670186344426506375438032284407791217668965422009848228832035587353810018994932656830121763310245290196725785670555581112297860721988606978254837581231082516706355571786386179166288024202951733661223627143970263888185903256087282402213160719643108552939064849678444902277588102011250596946341555752754800498384788226455303380220014835921981296748880980151310762975982398404214286937099060106693341886096290809737329116002231313558344187770445443386889438497348927407621231047363119507759744898321089080859494753309560838586018545125253057258663495875314561507738784362882611924552878749555218929229085709123324794630366785689012774812528100811543002433885380805314880165419770741464781678649640540676058533302397466731793859276978199169610880407316536092048023064371719785626489256771264261228554181848239108142742526361467428339952753340172651534407187338623716488185164438400354969526905964580265811652610639929571281623218939418748926496746790302029376485688871304791305494506568493926275545554542801247882782737006688201948379821688055144056955664399725914134018799610507119807972052949004881083956848251861794543712462441450560189899370424067485808240869690948384003580388111335916494324462123572473156756197525095540816556200669066824423590177594743581211550933370818564296026615151225463698913378604081843955822228404741987330278852703099856388921750773415800641234097489233293533930533996955969498890854605275652934813704245725573775104877583939722688109373717050720831994427850306634015009106273807244897944193932704103067892895355358599091533750776988291740830444016102397525216718323362700395468006274696524811551315161732074267691566554380738916646712762645394647659069428544613237588153199401700014062025227820968340749579110251632246231465203466933426995810622750483970969905655163498600941169767388400032420184663749090968421281100759702927145793816241632910921554868269259521715586234644914241152249805280059208763091864731440045559463148980393050806108341930752865440751560646029209259725402701812929967537911618105770140125876691849593128699244567133277513323816016757115924982062591461314928818177052805867579931532134328213892076846518053060625152935719831123385844026098205283711883371343389813085711227725515745251855067717500765775682892162117982540124903575476448601822115237044042294598473530355439502022358688292674440975193884841305517685234562022389064370339376454367393968419265353923927243821996328688338435450194605558793431514781306784625431454989520789750883265200208920801424645581253900571418321701925107933037165726591072267944032213539801140356396799511208782540225002690099882619459046501848939981888194780534941268153486206156643984338610238011496940438284840760913019472579558382054669419291474505186549466922593339159876194025432063142327442044775269673643767364547270432687103382684792374770070567307552147729709184595240420649590333877723695115366213558973802523071810767573819665645712232225514688037771917002188825417458817841780548145160023396105568492032623992613330907730629245031416164381233125941357882912454753894402249202540352435024720997421104787272261067374873539190506405567768616764892768666138634785820040685754642947541081227180848635519961524560816688854949225081830386455872302014425137689614810603486913182647914712641753531289127965497841139123075447757681972030259498192590133240495782661589594314854044360909176382212959269411140731496928424482809160007940802602086474596369683543951399560008944810975789805884475689115062535524893797169035272300649007051437547212057050863883897237249792401162662247440819022114773163766379003006176575276792187352486248149832722818221842000711648466580416966403760542330662032291489034507403617599446192165405763545964877113186694568977563766904862144011157099540347569933848255790876262824989657022384558081825421576921411350223121885775549949892976621729900931904966389624179063493568397441802310965599381812890036355361359610019633268976884098284579869440110297127402801646689190129077192866017595210061664049485025605423544045575553108993879000575940345000138737362756846946769956863269716396299013409755603190113912744657378969794497897731189313452956396879576972172335889524283040333311251691072998176773581616982473260751217371266460565909172137034043396184734646043066073829677870031576489663846262634174518162038934630720697970427489163547665554628072457833266911436167386594197996854289573589528404804483555047638498609345903435647388425180479223392997013370192498056613786072483925778559884086316922779221336253195270363181107303232767916839626174441176861972058591166552278019068004027942186270838235327135466585106216208886692225471412595875495634522909605761465504011785802233327299012893168297575164782930806744313017429697109152087817082211442406518659733358392110870720226506541352663675169703124031267291731536624105492194203952890973123783370483371699303853895204316617244991895833513800297942862808036463517935180783886129636399481762978691874542063781426094471535822333434716053008001565179281260799788057745501463138846853252278709781817978784571907037400667798288512738321172688892388054315938146534727687089950821506277883081490736258904412217289576290614300558472272299284328601487078462796707276160691570880964241833985421678555054265865414064710878696950853064490300520544560017263467046375120610289211327869372001571791574250272130294902740271771824705091414216700157724317155203882319787222422335183427657462910375570136206884728406515572421598221542778815516128027629690670136926162633093053465327449624457214954523404030360345668411912849055632698211070213150482884988297697619852180939713334150795290282184178719733943798513576821914172620026787686300273352509915131561999192849250672515216885888321115209810198306072519881172122500067961161035651948656783533230883475839253795760548502158284657039794208087704603096992405650923523926951652326280666375038707407843995916633127268260400399301539044491901651597655875568777455803515735964129453353764690652503866140985867680776832728695466486320393386615632678234300848692009590978052142687004901965628463811651887843221073360459416624428203772633872544832306068058390498299770497704641664206217369074905611416575650795791163064303539106033231511907004762435365173454925597768762995420394024677880142929976949118607904000689306320178204871675107661678646925917953635540208746098379542474477019939313405851158008454550021309875845349254164217651163303007949624230282163662572751107890287381157584799636879482122524234359259121985719223068749134142573946840744318767657205461924634521096127606310098441234617140370860622811730781946985875759826219702853773084414493517429793939609679860756127182396856348922349342842162144167554710863935552289497144046958889275829047742902262830530779174665614224804220445261192853886953739195208161020256197589864968064918358422163535748126937369695755059831232581041474475774323437558644184011445837521181642739447276698000210220306201232741336650054181271238873517385474355669066934428620112439795935828883729226959564526176228066972538135876216219732352807364552945048484888995111169128162066524732225445649211168904431565572427753017242828516425836505039766917164947238039748607931821216153723033489164524188056896262856696660389122771835051660056614495494427090372168923842618374940639340515780795110410771592827074807134987783946735294765339171955748436102895260370823239869959026614877994266950119331499670102540322263804600358298804910808203875815335638340157970538156666393146149661982038588937741573257894845258247465374934733566998566519209150142414417747021336931157386480569053591623101965154737862689870035174472907786345520113068823144588534850242417830061821905589828568110450101278127675691115630884836115001527707390903793520303356273224601295062432825709936010255282275926035152214824472415685535334480927314061157539186184451067663957773100337945174685117620966459572582873141736908680442427601286736839865269944628812454254981126024705504337714134407435367148080445249839751554994250235612012801977019465179164895588569392604574166862281771965117976327024994979173428074167503094944192975245345925078740415918703658430475296043431312682608133990943799665592423794883939073515228194628888149936717228413945696712941917430341955880640164552682491852594682455290935154333307838664960546001788322361559974272051326439790289407792074301539826156830982958087503433645586375180549875787309597159656257880213837782655190297461466105893463634321535587868847167822745690896083402176315441165753642648757161521040644335551583197721505321827965912250000704776639410682988526348411790433456437128053729382980010777647457479877111118991081780600760124633702628787943235475766611687909732205634758544955848920019776760264010974289045498272024773046218559496350377661170031179078901370120642611149408850863056204296426163873304551960341671588111436401017355532673590979814927079919970791029139555069409137239770281967747340461643229338028497142937531625743742406981247705834234045707596282198104181835772075715241069922188305789864437163197334015754629518827014236459214858582558826868526544851184721442800920356933543272533898233726268139300259372682721766581126869489632080359134987457780163415902438845027821844193033142722950028693890709766278229344940851107444162610243406145739824886909981883361783238369155764849178551414570779362058210831259686187585325012125682629469908339952554009151032150098978501922866001966585176905831596842775770676726255921350932153814854172617734758344639076207448800675790474222959193911586511784229940737517406206595096152569288510818556700006404068734547273836413112632694604424967613183108441522772958341773571459911066185154644438638641671622009975663746381667240917341361702727810749132792615390886227876232072629680164357984822833495902416952998418097161270789020134934680831453944652296562274966067540518051215743664924636422857209030348815573237859605188874700071819925022738637983128029657221573600517844608586053552861030458957567954354897962007883197403591970806403981198459543893447861078187847293804684797327453155020750368469077291163527934756600532891858820688035002929657202537371946608902304999652141127998881270754213412306548816150555190201470073079156327157516898398965779215459663267982482064218619017299591821813848841409344892755551764389482098578986042429328411491104260298536793294825746086375333042214069037675080735199246544799131390046142655704581018214991878619572809392702261329896991209608930840817379132999145731781779112270696764620831647276627408263264131694115357563535127259820845324104879189384045213144404419504471838160206290042058039643799827023592484866699374583603297532194464352554293349133022228279949774811504820991449608795183897625305502945775860974964370946204039079685294568365487291159460004596278074112198707097397215153453346361965440848644188765480197167015001229354534117393976168337062369508502787678183026011925222147239941873647999644715024625503838326578369779149766486715018157200131970498911669312388169007652634103175005988375555764677371794366099821346377070948565521933344940228973602075239728260441452276147954346666359531164530996286737341420925663507591262196962196814219243780964871561060407140453079881475795224857662344721638628502877625127226695717817277810649957189668837867036666427199406785267334018173403641974842557447918058009628860819887436406537549229421378032466983244267642680486029414562886898198683303619623978022642855057828405955186223279477333456955122494145853762568014543981972804661718397216603841822202403136499497162015253159299195848870603815962996916975674014236995266758485174053960273385905603007975328890457444220357234369316459129962059632332249058583300519496685350305953924976849547767975277621240484967050820420817093038488664478353863805641434746493698675441586756439601973260985108589879002884111194922524376485072063618009975384822533186724925071985707428276343572404923747818751691666899584167394135415434836094095534733904986089394152110242242436958275733082785742841999265628371427923398842637235974756422525388942769247063248681467871611756130586548918152282387960576511706153211040942573643279013876658717728843489278513464615385567130310921884879444317658627889076879249945196162343373080312712586537671175690333174489148682993642253435885398539779001119513507770141587596679241838446954313200518335272798307607959573969843670427273557408218315996207778501794260917189428013366933611365668497151151694489314235109098649522701910130417000208244986873910997829564299373838764795162420142845440232187105478978403836586097356835879961784345257389699945344556372205305763836477842094073703152936381181625027477398879158799383765117852435902133102934091687069712577160510779466289173215199460234582506763646294915293003509099236003171538356667501944913092306760762434101480420863885339651417854039252262305709162898342435633526367986143946185638290952802951353164519399242784412215025352723999153104329708968967867152404059339044487486506886164443490344196269909797350090604649780340453104160126401460048755236848761418568503339061572885203700499561161052857220187734304375289866747803330937991725192623943808026576815260688229774157927316216917776420745616422731961679860027241071102833214206582490099988915688601798158758419365513371896705282156388365661146531290303253159224757252670937758680537576862463625512655033309514022585923751417129870783718056007509836749129247915961775187105716567432456789832885998198745891712303687265415311239373077161415684650956573139784517351084231153748147178694132193387104715601162790270089306474383145121486410608152670795342365225164025153384199407717764034982670318706157607966562214156042768756833507319677003869558453128465456864805707767530903693772461519154717853246543887747948211359284780147702329872355258232355315150326304177151662489699548118942484453143301751529967879900630096752199270091254599519652350029172195572340162245639913231020464366524710000300001713131891431698057617703319469292040306890677666925931043582334747413314027507932457774337103594925308713136356111286992115951859845015039286059750602347832321736686233525017100609301788384658506172622592855268141028025905338316753354855769117396801005411686815641942224642857998080791009668957077098429124564421086857493282838139442124786082180777399151124802715036494081925830468572563203651234954318854155154320319267633116684315618510421380421686773249419691035408427688780266449817988790403669427639299244619258567590878492619443589466320612481910225340865086001083781755590418460563442640763618241042362294476190757049838918774399177165793194198439345217448814811557291142755668595719363456894164629467795812673575981189550022683105621280784512350097100034664561558322498009243072728074358769975474903836398448085020459551522691011224232684330985216883011659262363138911665213820484020817695045821706181078599471787593581473724776534613906207849563531435830161807592334162179356202998551888895182805772273635816026973396650572075868471092322630076917141748558717108338728430704660530133944024619704123269056891636781465287943777607082281155791538136328797693450624172620293353659028658406951862314794886412337075820436896724089901101164704873881591960799767948350034533424231969966810964628551663525706860275968128816532515963555598090709737687686542637084603660494175660673296527067630773132368067650630843215408004833235330576627069119360073891730200216461751678790981561175047225953937032437140662250869866585337388050525927167849719365240024466640024364950756367400012462414799407727977281897922968731576679289936006375788260998364769827348308739117236294509185999022677878710200153783032234092555406528257606863183735965991289148626313637761010713203277876498273980747398844209769137372635316613724423167447736186398800900145203768451265061993211452885072758347746805833242035242088665579309999311955021316382864649702071047446535278483156061970550988348180930778187974116381728445468534558269740167066906911114901958151796768323375821525900386756179059234520600588848130817533285260063963965630549752646886292949691805604410647336162788956377556539796099147949303826176964321602587287001700330034666338358799846664966484890296209274704208878102462756306046750992236100714888980523098075124569890961760427936018019345020242193328196674884090342376861679883991765402407643219780983480373367098480507523943468832797785018129402988485765416833854411960255706261803416313708171577851045781027211036699913892368210397390550397435134608480913952081966387461303972887755054420637997626356280372386977136082281295865663533933937428130006083574299116762689325053445297624238001992121761144456272886451532486835913771313475345080051916401467814140795203718230311766746164095507626908590940451387469676081808596738654639181526085537283686797458597091867462816497239966915740207633935412052560653918833876065399044737973061327642165988729611540135277337008510555125125211806891222535953342114717167502307358550657045543126293094327346019503668238665574651546523086180752976909377114168521900068091401160609834781097145733113414550494618550201514074270192240003808945218816511841142984166934348040609144934070457016596037640479012327076374508040613104513472979794312264545489589862420363109254994410902621743388562801107817579221886519006271934194689933479327422550806892486519307430374628692527437532994608024912886550698091936881064658267213839928993323900181399610131235307939120278623674071631421255320903480698093199945183601916781312125879573462298109321508937240464343890045109141784329070439780890544150070000783563806630860823418840246702198325315787435065677514040626718285009313067519173254197160302066154960002825708322999033775711085494079150880542085848625847714916867874978976920837583592913459707521559512209839900046736261121980902327625375499140930790739661043828155067877428932977209199225036833487335974929599042940669465579221277837641439857770241135906748252356391119685619326874612843782432033014363791703304247447145211554409533654381089972935499247351298008091942055269829737765626331105043072490925916162613912048249298597091902115737831141647453788565057286532682640319072722368405842510842035298976786269270924192526524530691477638779102146191174828814076301958512039595306221685344670224458507787830508081909856699198708202645205289975579323902293474280828377510792746621592031512612648283780889959720005392843311585256029147726364326805816765355055374979012345329108968640581121024072333654640783813181354453954368402333775184351332277538821151853708896340653137762048742840741436380278570000307540032612463178631305829210673975955099672946040495919898657856681535889066386870273195007615797136324147740237320627819206975130503082231919940751679788370724555981126650358085392938503982665438222953067332422841913003116584382780214823601148187036885549979763298788844224299110113677099715329360727557414255609229456345189781107603779631567760217722829297994776606118768694943092997765553434778246745724520553306796687498580426398986389472936765662331761105394284174280693210052828215537514982199713788608781736354796319542003447757438403726296539687343517251115816766426412788551979395307474944836256674777407759418326672601256007311774897489779222666382290338094994161639987952403841088815756875471252670123269178782453505945095217623315087683566707105770961545578433625468178501908124848235294331228843666572034875191690055454040642214595292653136013270363355806702560384159814967179979334395042329195628085370210030515908237566574259311639135945927473936012816833813462455645860853046950788643501745013886780605897149327908440255335693101085156990862290524579861963328292452883667210728377238525053702397063042208442890600112548252402877903565058662014722894517835274632790594202146894468435564225912963122571691304593323354633830196621782330686318373564790839785911087858039826330337590379424461149609942338820697175370890587460520618065142679234647470794662443779298311931931974718905545124593823001133145133155014778936715001895981189714349928450976694125629772923665440388071882696975342939052741735030679051090609600067349296010449152918161994580127357035117841876370209005834461207809900357662694653124978534720894013209107766352300034083275615383911526987792359591153890434854516692539411324709361799898807507379202991446451006040485148069167899957771851808711410934650302885836702030599114095433833493372161110874979735171219606018507422787256152930521041286018152856681627656943207921491855154988914394510367073404535565425161927325491155904888336662326618222372869433914715091949514741009612957609617842156291998613748964514253177075955457694303695848067259021911343940610740140650860348927785024707337295815558907099096580809168236806938174376924503963414490619437342219318913467799691529701149770854941389714632780160070202070184762666275540817906623714051917423599974582437714014923967266544022591797359059839005380792498917473471168470895019954882306501127060481223560006586018873928325857151210624226265112601228455271533082350004577371921839475962853069841518891380383629306155370769635156491372991370259866792500551419951774101335735509147932154496058058618575592660241226251553994514956759977092743294567409038003881744379021215615848461264028895018055604801875277430663039510341525547108630104704695081519551893815512296424087270950789449403816960634676130762062799352744479544349283315278328188035059666608712571734167812238242310857920233175093046724429677126978228164632011013939255215143756218499353460736470801504599166266266169027795545391455169032315177801555905168909506565858382874514882796991220795403092253014869101377066511676306457316702313893820141987958577898595619188647132579688562249122326526230037349191888061575598426685301665057785442056022118931413909471011743000666249650759890374368986216857276022522440596689836415770985171975826018292302219542643205685020292855459926864628401554255210600595847793735304712961404497329731490623400657715507318956391402324745284779550619663842330636180663124307873912251518846752873222742704341797383697035917414093162441654652706630684248841382686909840025374994515031202330876811658734698368684845951671502161672959174671728566030637260111236889481676291358485604855357838606982489957431979675426930782828893228200695043735199441419522159137612494372434480633570035546744160197648904527092719452155477935981963409542641106037017826306303944309284389940214974760041244316810056736764941003872590858990474148157805545195189325438283588821222833656807416560425275191982595973639481461189218403170959241997015671733210944342291273208921762089623595960538438899592476059721176120183206401301956463114918301806185535902536158285260656039533015878630009654288888298763979705609118370848788032543845375442779858693047379676709527663850892700289618615717107991963902046339200147478517618739539560533215359276050958918387636365526352533609520403043126814989257881152006408262487507712167314421264631080641116617441616721204834880274969859839362840225839807730248735654278293891160558169935766918308119393955026601795193828896897078303375374983513233978584267315750347009361783977146969913686753093248200542375003560682563704373801576305103813300056064491095013503553237189461324699102095559863867160566260221383835666869304930961529044203726672316857434398192341965843199311586770268627233237703014575086409024896773998412050378484780587632170270027295465673698287877088052772062709163796364223594335574756880224306693083384727997056916324331956864458073010624116189319839512413262734079902768382786310353156093870400440518763719189312298943903384779358777719999205017211530904031854698370079242230325405968410105775533907171755304402287711646170897841593866446859256265676729723063465568868074674901568376235687312764344407772311857419000293682068721120482913248652857977981853822262437096227876563695415633873635046132131880982331159526277356549068474761950588397291064513826851469629815028348840239964109697701447937844365900007169772962947738769364506207524882517033663636525278066531230379222871253152708379612385812117604238422457323640659100891784352758547755295701000132536314498853706755861318179951346928525232921559567662088913640873895818889401925930697869135537000626434365651264075861869232569603583434753290622173536850626815817958467884226304247418428489363596836325070971515514087560207392124758810249968639898556149834560354114924684537756515538483149320483362926584064604539354662451983540081449396565014557150148432873566939931110733553551767291484870021879945686158131828175924118293339892109302494640778668685882450956830693265528975000941275945329907211875574530349932354196900711594999868297169387444724756351229544855273973402596822966143975802276764013703492084331270995160563159521092085082341673642263476372933305936183813625723000305152923829504284296516790714556106910071070031176971628248907775778331015837750505526127627953535856208278721034105075467597068753883433752405863892250412956571982892719287413987434315992673243891862329359000542683590852106354926285209164954868597865954174619096774963903365676606261672267196636500249087030349001316487509594739795464252551662266700759456625464737219860974954876122017957602425210880746570401947588832813441216151769232167739351167479301286398197719188419608396910935989620316833026546804689728018102914247599205490797285064681827620470470878026758306828409044460826755901561160299287553229156189644970820902267175988794548450871417093370225399025295860102263650007943944384762346085955286945741266389916122006657684818215524535472833006080711344641491614210910842752603658854151876865983252256620117807854450731153222230937624570764605519350688244876612077234693564711067889838046757786043657109727416623671914305362895478860968714975315148361092632094274984262484142869017824944609182342044989672766663397963285927331802503848287354678469724266335055725991485903957900055747876279133207490181816072815516540559908903421123237076210425520736351397522779188187591993548029994216237711021027847177044541709282131664900157598429891944806926100220860589043175320445903446257850035577234659026652372224910029815167223548146250937770900765398334665830826284792871352487018337092504741899578921398993204743976135535731386329351020566008055013341034209295212859321011744320588510326879401137110238694305907019513479420028405711529996020782460925801867351433651635290603137596504902192201642604458041992281994135619240527607123351557182577766377500885153358638949325935707970410726422808030276154146511572706364627843738105506830040837215281304777820561957400883735883596798409862912779803723609794004504469268383924671383992729180542734491425187772796039825340006491150504831611274006225215601218797049286656500207714936682215078055578354629505285012553758015468727211015351530436543092317498820271445176433034760141599512403431868258686346013449673616195383444975929114795814290539541260921489788298753810717065689558356680222556326710307756309930446552013230839466065084422129592062498784258928264058742525879392513437098314964223346918557422424254164329899289284171267099324710426564879564700884706292359245415123831109831221779542215225022577586101069537854978055074832419314643773969721028336428848648566668781962981097979661905386790044291301875408288123816248505619446883391509466181113165043226512894320221352282358535296524356827393630940723178115774101891484023450980810057137437561626632725384010434100078261005018092166610815842666739239643553150349882194134075095184437409929538220489582649774704731228691166736576512288622900164967072025991604263696997092434917470850788302954215107576348078762877484593161454161806057843300529424607414217984038162148186559657322677642855874248673492962637960016596284691138040680690116621239650330729293005496135722832767371537650598499239870350429724309093949142203437057462747863940711294906559733678169031141713284830593534284361902401977723731604658452402099868606517214559748512195970963163716146657995769038923694695203364308248981315288130094628228704062703210588107915278567173547598497627501845336387241251440362673777729495611949874010781858368222377288391762649338945581057576891352575768395738022082658843828414772713920546152639473601518467647540024066411127323676734170731386501900162729616967579184896678325008807725028868171662305239531168998928225206323029627337709383210466457411013950575252216134736183072209542781178528318235548981846829478204049800434854852775818632074586756963358681000622575602387462071622244381317667446386868049552524150963955172709230001351931743731617098031383590880417713665420206152182685511425747040725909675175466019017794700097566115325172795065882868061583688645645111225090303493006229636550268565399014410270930858391994779136154147505043410200425477740374709933738094904336388856586560021195695080733160538245723575145564278756772919338006783214935130885079628303397412978777956119873555017718246946353011695100385293316560440499227504721843042161880329902328787828106739131580687884655551912554116383569266534057482127836079358722210884226786484486919525719623684300116839551621914399454943757705750031007354789201022829715659129124512328281475469971637945563237279855488864961407333097564715270052550259266954186195709092426957348039236930571423523122076651505684103668185937435965295427759597531235311751898391257605391495811851361732623983633219931120876044486401963483758856544259405711626992453293831414903437785135917144820021218439653378057112215260156832100892607124283899736926111479906565553846436099392913972222857041893703707064515553379174700668073392660338989883604450029451133405015409161532892035306040709956755761489067220099664268936564139513636807902249802746839682200706808670871374998374595831999326406496059149172095638399284523575950291514912494931625644559960616089448191762559453907302086897087321353802026473109512217682702416353983104986263511901642954315478733228321191762266991008929153150030127132374571052041737332994029809003192289504059861777960728806198277288800215804648195533725254314236985703061687132117138802762211241183869682525836081011116121324575981482341554604447984137758015712599430199912138833311229546985812518990055320104150292553081063816978540167063023260985780353276672688632138104755501241308936827584537220555637489768200665247440053071188240744813317098698257267667569562797782780318794468895290255821068763381997683695479635957118645926747127256268243021208452803935359876723847739302544025071058403650710765991901714009767263619590908929008182808938141815863878096025749313041041074671582806655916256579746373432194288656210447632391278033336110434556387837901584389459698336005052549511702606272325784981893439752959317085475508542403664842549034304738986301900944898064682781202102644207339775625747725024832793126218037990485206260613642123277998294486230575445152515261759264343542972503746314046810193440343152681220279166088691290890297676798530713172600458757878718863629697386281444777464452622224123774908127248314188350379816585014996306335344724084422736995659506877866737172656927901003799832652200951124348003208833222377048817154631514135257649837479333704758919816356241059278196270852311138728932968366132891295110426054569134700421018421968636542993208378712232898675981083613409633921501271307439578355102248098811174268548682720751343503744573307313302649662412963544008678177289708042402718200968730085868398583098916759413086456087542219667310880198927203684464738517172394829795085570939369732892156603879045416247299707408978536093850315079906927635379688088843466502801974543697688135918755474237764188666397113096258381323867374051418182501786063441057431528341017101982701873596699697696976036256082687260397459646870050586512330180314648831840628311202277833476006835933646167414743656759376527280128636294155143715002921894862821082402951591972412851839634287367042816030251887362178579052990791598308060337488121279667575797529759097242724584493737244965247720077152657725191245648697400103710139076238099068450922662353143144498858759244977402164653510957006309522818680297365279228332355095488096182490779107749904504380213108618560178408596685713155773850674788027496778136899360731120535704457783381717136352069420301109073100802766469972104772262105048167686890848632927284985910749071178300313813191555488048321121500102989631443432240988960819742137895732251379181523230880545887124751782244441899814029358370871438242060302412676746343094248852462569434206782099394749609161113645780047586037490901590048105683405422122173769513053329148592903041592197824418075946511120064535047893652109307686563786147238913845267007177517392287277366836580612350048231645132961930251240422373006666683844013591477878577470936744399684669528134415034437528301190411527786993929206569728313131068764094350975795055923846472429447937327630378594180893853588665596151254935103513146203018761796940477205998192187959024979765906762693402442033200691689632469360210365474239153791124154206792749896693964318621319163711928204618940212759530006141085637319799280459726374010091354307803700915789726446119879822467152372770128603222393866175501091264697377401591487046634782022194813125073539029313057401473868809333889371302505172609137794933207304061304160913153180527091169006668007355535909207292698559435443525369445291375565725243039682192397503038069787373200920083969039394565249742482431946455580483287739682673527635379801914661376021873785256577722537103598575194037306040906241136759788452386010610425443796548966935432067975399553712081069159110732392932945164364151989228243591946479066278766843295755261447134260493962228213104316986272120554773436076021261609788597353578483231673298230825646189535229151832330020922169059197777495575541634490523486088520234419193379029368877956100925202919088089880080262295485369766002975361778756988378026498266676208729674001214421888684117585908837154942848011676211976249146456534584447709954905547543043260585594863500061375680344877082752796377522549483314251976523881866142499231487545326542851189999431051924921350730243044338422684251479221644659901589671728699673885228023389153132607211621698748821736125129472582698095516732592083428572962339228661519687837176196794666867848648893907700802936870765728728857581873908974337415512287066279851086071183915858663757969092159892643669189634094796438794423564555706528458962348762064827398262711921841416038435258250305255299671021681966161357570133753559908334350192367262020805007048239818789884757961192007590797198421174358333272242476759826024654034807039300542394663544447802834362935000423557475211873364416504002802594144955932499837445780206593908124863285491571406279080222989603640869606975613533996042921984423493851063024047948944329426485342014190749789104975175874570524867636510942788646111898086179021989051764030262430341342581895153680530385019498788629022333462750781538169818243744480647708617698388542463417825607639531163398027074392194763500709036790229975476563152716181810000168186850898509461531732577333101207209106203968653271992556916260744092178790594222897816663084802688197308761085989825899717310093983109845254017411438493989469036848080915525397514826643847015098788412581727799945394639635200244910774041731150816212739631681949349797510509070824437787344923506655050935348856876846467245730763130795375211720316183541659577521528453877384725586223363621001669791559125165400189131547338112255574536627188881774276736527410873485700845092079434421108265442039280811550248169884863360167349715493949799278780125210409956782857358685592126482345988563226909309378395079864918506610498990928066818006868364323680799739901483523137790062244292067418300386229836979651533287126722622287012256875708889858338122894176022199901477809675565472244357677213720828198111385397960232776254582385063609899868940039166463723867241360607474061813306451428185208223940555007495630209709894681538612075969333317103354313424105036391109810000472672899200777086374926904995922187554697004147769253803962701019741952106129281025123154898560752411037853025027154693000532937922038773888116354146450633423210744618435959826344049762779244322325814179996232216018439178154087063762255999862761653467289903395006102641946976804722500789241143611572741499690987344570201567388338027421156688811197039617563336610166574168888378039884026061851483214764724677658735077706160002080533985227217358428548578088215053307245893572011745996153560738037102024311839763261972702837054448828365966580476331475104430105623133366181789936894806527187454348148799341313184949939198952717618248413845571777907853313613620177132152840668944010610094242740155322927083531972617794410681126507669864009150742188767289428357982368065203105137973507574863121404513966003102863434396086264203591179591759805300673928306009870512914378209134470808806761953611493877882931427712671362357354277584771818484862211463871738093612765462665142714137819315190379190256241185600055750054698629162745269219580950819707545435098476936318808492679991754841629560633431376505070624428177802847192899507172542602877801570924732883360346104892653632636824448732570316438773031957891586844444844122319712622901303781650608820211341583889483751408198697165924602864157177078188912614222209431043285833137776398795104357005256094118593848324532194352921526621790875694320599500166990443174517143547227664615910592874816423416601195678082759564056444837545123043942353465090571939631357425578113865696490689966024368699641126120566998256434050156718127317607615840555467866138652539269730733130003799633012118162873709942910388786649348376268794798991120279431415706344133914503666817749504662792952129413863841523650832415200528660110368659304486488956771414853560255861873932215605896214654675609029399963573007751599513866051962059209610854103096056208615945551203917722804915521819601631391957605194549845257849333503117726568658798731272371894984387432452624069336595684189772578784680872235484947585196150531389312915321650420078387715791065882424409773060128851605472516623483119875025156345600022563187531911505302189877829155760385552859000874026663795237800830422169795299012649010551894525387137045000029305095260362770869229418355594183837774946541844736868176677758092190137530252686633932752255565921812681153678354372470943844683546471250393324783789807885737995167261708879760122362048814141693911579367627689381531845347215534104835907382320233409140974692205792075402604055600792652913414713014965617823608103349258541693823182185247387673625187632360929900527120111034487538427301834906008001250703797436851995205757647580899323510208420414114609840300797508251263329075476280071341987411662844552926141174929748986888502908481741244439364453080583310955980029813955771334062554242889995488927122093316682731569481581700395796796031861962722936042665412919279815117537653696174187730493493926251546338236719434104937372998240718683262805033040413633995425861292440704135611133509643386983366874666903201515267645322408118889593195164957266261903386310779963093198057750147284158995497125941741087949327831932027632596984378563045295502873091337234726375333229732129916428885773365825030481673477167154963331925141396864714607429046994436977482995446542971003205263474306623869197264553976212994778744557185658196049397329913062714740237676717554430246082362813286745287100733785746020911561033870932916986463118045471273396922085582142414595711424944980409055087042746838352929625325465205688890820222514130553920693795715581496017880840640815519458181526300208441120769561128977774179126983394204226517541135906682374131165442870043244965824927137012649317787123201263953709515414967442273128747907269250269217538472608776265371943793362921647794530268761432953828226507902450578406873702330414772987006627021461136676361218442840847213614541829110475883796237933080083822243111688656405218657133618283890874125047888764391023363914814338725602112710783366057379777417680125772653136297444533226377474034240043522701919406472615526301621739951400114376226244581123854734104698316744616883796448512591827204579004299747914019376347181161780651116716402187674790196169496126709966094912750005229994087280713258691825690527063726746720236559492245902361004661897511509093093509108075497013645900535121594645155442224259198124459023231011513804782652465320193589819452487350150738260169284606736600931866985931801145682457406056049949101666976401380567365259680567695816392932219104425244133708801652337936312921829280995024685840797039942639215691517170896685676267717597745685616848876171194810336557468920748527585318758764605953486628039547025216212384064577148393908540841656966411379914993564585985017661979849647656339014519884775598752272490856557384978681827502425579906258323808748150363421957133754805903089588858868919468097719404306969101504092878250756107824216730176223226703462811767258030289629388311114186728325063343918573373321175683134969453994531748636751019269340826192325310372740553118800107362217978074752217812226409423382403578527633764714530222061580061574623196251677354341451893379539121435034761674959112544652103189784522656148880010586174143134986030535309706848231800594700164449030718818384829486600359451847826897876639672525305488934340294667178212352439493410029587181464570847636272480744556004770494772821653923784968335285934365448775472726261632996892534568177574337330070477993344559825282406738638448938454959840667556786825288949907599783966091357108382856808434596969776002192697876816595315007494291322033889498310730003374768370624347137459203810414510197099945600535654483719105635473128011578420339039449215425089844324791953723315524586588180964354263447990928816465388695623147164287340693165357097844069225377763283244605703289561736703419999464443029635678244767032994618406815458458155201384880354391326131070620529302187802230955771700660770048233482576709436833650017734448062657635919764069016758890431963535200084686416816440835873012390004313893135429033112317353462731281788345699882488989580096778182961190268770211443834374118074254110509315681351126918031114306308410993151634115356373522738816957861245849427115362929452581843020598046537071729003050860338517430289517359197492698168974914456094952474003762782310925188302816846024532873548174903948890605436532697773286295703367694550007402776413591263288541809216450580132539392528413113047892917994766883283691769038833953877148197936155391590481278145354656547882290699357821299989296924545587190658882757096068330650617806525032944940840296717044786756448290986242187093215039580740140556035041270049865361742331473971059520806700448443142549353111804767679956576290871139668104730529054697859814060844178238414602796696887504252912038972836738637837203594802927501086101218165425500186266815979754044348367273137166177857804168924786053291053674136649592107461601739604911843858003696696335680145672475530631929309647212489975034729545514862092212919428088612688550511919978800135955972855982639303022896430440935311700446663029629056274098525458191105404630619845182206654609600936109231754992140366953950821171040636921847398483596618983240695288386946046564000659318581809276404423542155957853252276288522159756409759144113941128999813453323922605348209735306157452567703560687920319675793237283664190119412165799775622962763274430290139098769500349977778889822119477686153972472970757994506876351553389810433035042474031834753713643605475862158190355004798121324421273820119835192345106934752774682193314054228112453714872875330957658266373033033723915319104616633682322940937463700169816408668540478603193569011345703822838633293828802349122306386099415555517397587594778478172828014462878682731314277344619554928950391452680353577549544712266579000494124087191544663340702197952598354615551339091301806082602593234073610829124996155920153348181595838392397240028910018254469768745380552397063951420030477680875802425179295163619456704420064421906905185879883838283619261887902981459846081964063329276838206825639619673390975419657332990830203822224098171275989853567606311531396630133918503530291742322304585875805287480595186976573991410921569557636165822909858205730664958300898223665479588947819587968443702729224226298661934300149405682855729292579696428162828444728095372620447344184828662064404500971105852437247401301277564716308329719239449679403150641906430620270840648325270553498536171643673358957645277244823243329085455807668241887591471492131960567110118120205731625753418348914715558820233627598089751547895828524758995179989778343446164889078693711330198043801055512265141165281804063158521635472743227825678326530163597826978434775546800621152913293210217384911992730095830748934633248119975874736014364580410260740520799768261952317793109809263460646664709633125643146671775804939806314305658074790579652343129556640938960917237781588434311940185490728914405242618473808213359154212086409941539723387533491364141279951040018426161213917185394205123147131182342403245378366627926706733962404079342257711017837661214583934488020341636034921308498479273295037498395062423764271662942915511583555351845713258468175290463883577127645960501420523038770877679432259525448070929301611865592756485241702998840561681897010724152846822393776404282465678327622256499274963355027950140605856322614506237527276257097637064313320619964866209114910035007340930140913542381038369462568829497266785964775813407547884830946315638797884297784611695945501030614610837344322767027123902861335914925473354489819499972349484571788340444788880610318139023499191197192950045787659576286404205548517556960320578747141269938664327183727516954480654694251744057121414512094232291728990829979945483064198903231019388916287409586993414108751189487043241377742061744040021583563094135696149232978206740225051138274530246654707019703729630161860308762796741141132671708916293711939050479963590035967733162512241975649510423552383308488732513129580835102238366602863289868890690893895529185935917698877687740196575037362046751379780518635581088845647011283223463888771719985977809118259422262991383968008343400990402242201070411905813884976455707885859088703617980177258871662068306807181306219746224584391214776965183199796955298699575803983605922775166406702715344190294926172788989706856092526215736408122882495714563832777709486523995583095280935888424113374732330386105423370232169810669494525954155815171493954310851088838424429918773468830568414490158546306096020274919300450799248598718184324296520959542854257906114251230080557276282283299542497776178783139533191543699146908859804000259961345915931551495260819586138571057678036878551556826325263336204427518737213066723272241277928988098166449124581324600936233950080882877291602952744049979283526650521181229695715300821707443368904644861295254175245556593073505187395434048364276338836112914331732664446251587786103184517408827310617242683280510326207126511434927610499060224626211533423555123797364956601612346375508501021565597142944373016969761216738322653341977757141959913211033518665448191370944742812402866423200690035168433448732604958760384284024412324144274493513357293640670969887016615285216825564477500436168700556662095648401901833698871834873821791938749008991759584900600110449064347041629444450607656263288837581768334747249589318839753617072049989900468171733887145394144515080505571559774024683379452717924880487931143638864970363449979064866801806976590382622067481279358043213188889064971576559141518959152667091217249077139692137218327232092760770984505785034518221340284260980129831524960464257025061048312554781820661716038454605044593459867858795666931581714076070291305467790887882691458681386903584322576008850309078107774151109855262658979050547541771024856570615937786733227065279841643021072479778831991555391290999220388372693644175969807349604809975849651806460521590667744543707338936592871819192041544401845206419403660053795587249148070101874139134993630172817111422078053222807060690533655334152565431753821147687577009828088212017522132342146186494014136652524282199262056716473493017056152593118935217349161505752592507058846298395669121857769957669823098413855620449327996100474797742978206379163521464509079005219453869278950504998145250066532232415365353766618083151670227430871664224387509495609248307767833605166306044364202655485542042278748957642529755109980971900646757546329964392586325460169080961125268447859378444010217561233434655447607555925130496986539905278776053450398190731350860133168948689421909288453139276342239363697794654979515396198025042025772936958322689621590222264863865323635637623796939129622302094402772796371764497999343126848720523339665024418077729846847976007780321741551262667083690620692855760209568884431463673810094132627836663800461717788047063649251398298836569094898302866089247864985179113962810223173347531228569890866532784601947723574917832815675832938947341505241051717464149232623718146118476992756961471502009320859081516613797473002245887769384738169313757304982450228491101165133771171877238820004355902099624616369296973351896665512357672431355034452696357113445559913121241853327613167346806838894129690862971873508503913114587129376195042114738073195883303918948884708836687162567569056920129413405984835882960703602589239495980756015687433600016951876997025826488176983711946089129094244466364910166049498977204446717321070555571010100438159171520739216888459023980195936208170835991231821230629741857845166290178740264377858098401534827728479623262513473546966971319611044998109064903454011836521989011783834404939366301928236942179862006064038686759578441255182997367360532782728989000378801583546477206098993266412024328766166900895286087123585206572293440887647397879566097757617996200588914647317725081217842001754673949565777468413674351621764496588967489406126166493673950660655986379595681782055312716186433914920783223252425873224323487478908192342779022795831820023680756329346292524276345673222480949624119679308068679859237203956867760408624458371231353148245849299038149663390321240868863999660592033353181631161562983745173044219622285420695728725130815085251401708931788301083505762578523959642315083675445589440661080537953743441203292504954766431302228995353189214262269260243518030299161100133572801186583390899748865814899790402138859957047738353456340970086487292821628376700054296984796094165458387471141007722351213817769582352586041554883650842194763429533966696419678875551037526576960059302629240025814976178652823167322726088403282484407692087532387299652890381582035739563179870620595122804949062557329344307815981784716269251304778744606466889911378445913534558324852027765152275226256974983186933646179905163303937778115996974125396052048435072810355073864220859326494500451451646857353340549702319803081219886488372254178551851953140608046500483265603502338303114793016506438229186973053512967464685233175273793175489500338212521471932084643955862605178868910278496249155501146390289062430984522512219061848819718963368111226328713485018017003168568328108085597366498590681673566727543145226808948514867115371835130005919556865643432144715456363235697800322329026885009734823327958471574682657414840058833149796654635692340749929155169499269049136236664524716981105494026148359542796600497824900630854357435656181870197062867572084152395033880109100473046616006990950931818410894231915487051541939206749598970534098915235093594487748138778702213709640043832159820880023810556997957090220320675987577429141579212999145339416032779138614888319957615778472438954827087296174201661288942670403853922440882280717123127170366845994178769898794934081610350726917276562814935493156375981225826023940265521686269518133228047429756328947780621147378154968768609480563420509734633675413743065223574494628387258702317257858315400501458030750127719154265965208912374004823706025244444609362313549785657490026192574399417807977862044561997996134533725926365442933584820064020892780826617835871857938220603588775792516645418702496091201817810031698173797481769418303622462135486785929197678665297774232697079502957381003046476744457891758018245738890711050098544079976820696934852186564713105136179189252871336536048678274699420418166646405446333159060649585009766383285872864295914521253767673011371725506910259552632677218584604130380833870137738896989888745683493848555061829930427227718581858790914646004997048725233183266807640776620852247979580703256969070010478021698672881075104224472626451955870780362624341074188424547441527878256884353963054271364912530719670147455766149150686018437834595607235249307787462317311510953101556211511145291003596713063330522904975211294021415356120120727579319099643323440031988137015476720481404271483368446646307855542809754781225290096019518233084401824663229661772537190147716050770875539852317803065324767414759086491468140175778769182927404093406458760149782128222554166517314165279218440382886781093042201735271109758612150828310389295372624971659432489507013574505094897502259789394214687944840135308078721442471154768317218565302193468895685543960981413185417791768013412039747106707750939315451779749450689636847049486850013505177617048178787199152637077482814584869816358354202555323995062130494161278063737190002749076909811531231669167383337878536042986150955372893311869710316223588369776920345356852716042235174397254651226948232898790442835213124612439290200297415193957836803857556408531560525150397786327873495533499936459414460865337182674544157060497791926660894105408054532669029882412787570467786753951655240890636932968786797682666487315616981888330184236695150516493827299241065313891722536778901114082055266802641441563024702197023097618874226565667092697565514050227221186278034801479259409914743557382704175836170100565892117220465172686069748539224999053590529300378652404467216491346712164849984443820930433932263366453899752828940994492496358346482452371251338635174224417938907055176586100102102028670138790408334130572851598817593241065259131858024795359528284992520194510632230115308279185791337070943077373728510290425043735984751527573431488332172212324515385394892607101564092007138314244003982770037974126027256408438626258648360601692075376340299301252592262509911524510093458450402170667718740398151586776095020560622257412080597884899287628419362446826665444126447126569882164109025065125577268969667248336101974535393300844427726731092753910539968833674938318392369465627250611520783206405544988353290134004435053457691350086906662123288014968095822028354777573533050533417116899186431352165417648473094292064010686209180518240222692383984857650974086296929643897978531879501976861906508756895468448297142794011849905905669684044520551954964846758644951811783086289924209174502482624645893182242615379068731514393674817389781739151117346323955450752581298438564659737659908794273602986973295627435839564416912976566642636778273240804073112733838198424458638184657469880622369078632662202266326057041954215002593537462943067182827034645725168864010629287539888661955374077111640664656895889380982467704220854345102007899925324071057171637509175513879826957610302868212232769337478657511415746504904654199054082647883261125011784646315415058923507510611221954045195961063293918535374768392966855309333064425480154924876416575372647355601351587132859900314281598262233965398698992216340519731210545247563138680222476979961073369755003599000645530246447130157438296366636496695484301458074900702424778096697315537870617325214209461609675386757628441847341452962751040868241254086041830154206195802233635902925406808220181366096627115425077824108487287660717159197305862584827704441521826702280858725334643757907422196475002441965540397149193288388893650542159580760313273824781770442888200849589673123486351213853477355693983872286779484561195450336413556023460573187471636947925175017878793241123910550875917408971452541790667861119087263296135823575967092389785946283904368622171589808420618787107901916737507676950557393034121927907509384270721204206354020703787149584888393304031240619114264601049886143733558035679909669258678552135413618539378281819073609267799405632848585448493880675148791422576387940314340516154492566016603186649857356568532819797052299496090614798359835881515084171015700621430248086360347867069674692810062965949612114192172074589274957831385042649847409667620698329053926371937463796910529311667970387163501443452507846322493967335848451450067999710161107563627128890667101334548315047931034001176558588129488576147391198977118165464809474849310067349133463476882452289922333177197571367463627323270946372350115750207157303050439856795932277254462120272567897313251273757040771139878233125073907011476314043691845792226459483227651405456722309941828940560503143388123589651502537640893636609984025042222819436091044790139267223575104361749957663218656214738144399173711211755207551318747498874127075921418192288004870012902879855934615930580329360424801016678200546432915428932337695077485860591703220837056319171081885328923394123647879561464024631219465646071950856985577051138655643061471611211368127428749398940730220499438901302399901793184632851251857521999463860491599224993839444783630254813078203850329433338266063239108852083339897503135123654429805406859055387757856785098317604186176908165542248845921121337373229029042383860739075632831160548427735517078519948383507421227794045386894762703110216047628990069391759888282420801584260466755418007804364755224843028648514899609642593530852705914622835347624398424028725145091155560704915049232739148353999617246639932306073610521461492697981484653544874330826594775779240472648266336323066920912436030612003882488563410755477746469554970728594588686230237852744584832834059230980514452844750435341091400240111435245200735422593915893950800183968654782921887684633939243557077585861561038829094881603648298440262354199859600672591248585532716441409062460066443149894899457037217839822362053762197737018107662117327651522165502830173968385425844111380294090431863553835492701573900878194706796400722791829103058657199676121957243547697415935250507556211278308502460221213265851608257867100161571279259755985677383537678364962973179419127403934170105877572915385486625792562596662332919883103785829068203489108719007367594624223144252488148487865381788814482037916962026608243427928800285065380453421451896482021224117301978638916573948555208388937101895542548537462183520527804228601178735947802715973768250236549567214088087922102435141441540640923782617522667843741866780095997162557574909188290005164072619059707227901510982163885122636899909007856846811515573286303846209753010616797308897454025694248556395258293968265035111196831670858409146053215461165318054721312387784723524743311759424683377286918406196520009898699354214270792520533110554313280180378166184523291121966461691199444976003443264654987824452391569683092556150265106362011637357705021499605274561357665131579956590987098074374252593277337953089734277149336791918905620634830427607039152597111521684969717708467776371840802247860044784950066060995709876247169409553560945057702863289133249394020815574098327004453251518394069768195106269334352509336874158422001104075884500371740647988202750819128350473766186699744447317557121093364831073332882259456808552152902265348517558287549008123776051499271739742329468199847407312366684518018375415456227846978021437322504923611367655855093738176491662661562885901016182146047956179050185394209272890992210443914688331248126313668669177709014074356024382689003025753325573713250427961105818483232751299930263542483061372204318209217514598034720537984578734153201577759804564668867686577276914512712850959916917928794216512995251732554754807688867193104733216876235107637596505159194533634374689502812256005329216139039515854715213750739711011564571707095561632730744072921549038821281082172112099204460135972257381128325619909851782260441553890505657999081407266936488695190357108015639306941548998326182483952505597707672703627719590745776329313737462617303459563564472951023761632687912796700658744878232321924415780424743018069909550721668061182444091984356211875988467017503732606617631880286999057467501038526514587952431123171854097994656833610110489866770721288276184301942262791897039007072699076892602717322407834521629542819637807883198342442101147312232259855462456732367033032366731332779607335240917807376121416459744920567063708032418753377967294656225576820490570595927101956186645531359660724732285365847043423830308167445400606357512363127456149153112176291047025634311838234561326720569671183091970752205689916747163480165071867451450518366969665801334346756746160566201472193102271610208832167146210615876436672430875776972104287556236158635030047722913470395219114954635663578815628677297090871406693771771166197673035658405271303045418223922677801030276939246987420383221679758076520616936778621660757647722880794400923570290027149755373536021566998133255859151448004538667551924578417518734035047543723408218761395379763812078729464813546169315311561645981713732507259828391035494669011898552335449841090736097794003596402297158930657293491631222803921365222920712728455288815453153705939888648785312459858915393842646905628414554827511398279596819074474785252028653959767925463980587136180771065608419509931845693935993027417457223449673156694524946031400632678288508637754451091803034190944826397327763243481470250008508054768514735474882060795749011837372861457641054672921340873646875156046816319349795397285885893316509873552903211585657632780310077189469590709774868336297980413293105269647046859161981273503573086652392414781830221552553702939161530215216367165818095815441794138613236033508393348601951984602204446472056313461965387803772833471073588484109931581367290022624796089571549259084546652408929319237591906453321649184715057256262707287292989283148532754019301684525792404762233401189710042826820787101653047278753688616664147060354971220694115518701384668002674613819650045576926951088492665984524824840228853569219547739017375916455243794701693247484513473422388385383196157741438856026031414076410324694217491933038043675946431277344373619773250127766471006450527159717110453713271831370543971482768036466836661682420951017863518633393961277087601949296786996022675770861217108989972034253372441488143466289540300982471552023481240556549318509777368345774726635708371951888912845578021452534897818894141069312851978901863246760002085027714685710558111127731749483400274902681150407642209636537443058840821524273246878283712496594441095714597065207204293729596276164447313289068798447637191504264786949556995036316809898340362934465660475571889517750309617457758242633642457897126477660666126851463553255137352736498936084305907421092417094887589290817982219421881601848553353133629937382418745711249859736727987935201757463605296330186649841008249254338382733767353472775138446272634215941299705087333794128059727597766995425206679781945103168519195098740526415100705852443483331283613386090103173614560784509126218134405006949827035841729084764663240801785982830031025852904747404269769095625638108820944326644843134314295988269997808605223402346217496061653751517515577014607148506411432102048295475241057900750690623621154677599867137493741428366499270331738746312204885531267785012191921336449526303493702990141296897908136703899433091911356243502730965614608552257334115173238417346989171398447931928248213456534802664586831262271886641904877991825560115921364604717662933728569138333515149460591621173538249356714783854435054288957346807687857414585063216207722642066151663581922487343567124869012312931486985935763589825354997854577673912846487049966798821111890764980287106309435900325464012943116572855099477206022294500835420782438554716154719566968630816636293963175980451611278505150911190597302099440313838693869922278070612459969783989589077234466787318055056951107273985663118636964208792859636888078688116554950655496585919867366823339763016966280582179694376088367839885840470970305415588320727964714398539148091376780988310594613106978636208099831058761844126690027251116202290756885459298705623882241443214426968529173401636166243437652401635162732499796672856272370034739884189756035454874571710996551784917138793007729990419976741120124535715348324206860063947159299242178284308867872215235100023019915112773583515500217980007105791857316182855597712947286288129392857844817090907352247963844737730314982261389769110413964043538856349254776567486796846411347825123622341050823439405169837371143397508759666317695474165532561097528748475185561910751518695563020855163688412257080949902862011647986866121441498440672127754066043100388835482374388259580898873571595773504566023585445216079576217554636983506718223361797272319147386261813832198840050417036767122928714762696386320709158975947533177720458605769360483103948218335058652919667950473006808230224316294711276139366563691037249846986562662100229588306123198770475210820148347841695395761593306404881328937081871645520602455158337432764507013006504811482355738694699491625360226347231851325114426132984223899925211981754855735838932360097765009238670492408094542234023483119968042580157866820312173958215618166141092737712102790467387640717134602758493044005810728731172147417351621322643813546321667561509394532671024880801668131254461097028246448513121959473891322484418663612982291282920063015826755754665925375139269707014084037843973303737498391410044935331821538967805365460794329346465531559594452509594407619307630955306603597987364906607213091992490540384368235877547471637725357085103064367644565959624139789602177041325541478324411043509466547065359205589293708739407744325270154199294257878588584314754940325083652508171733183008230177938209669896890646534054917245527890162286679780844718062194622932698442379107687102351758004437530020074383490495964476654555279261001693868180447198401649454565166132360813024021283726958100110767601894671740379462987657470919350469089446481567925871016873933338530326484847739349196904006535069569418464787115978235329560775435992665419371042204423542613275369763673256181523388726771611846511785626577797279630808511411044239774080675247122348939497731384775160401529453513498385990757394058150154636780868931142746155241209100582711777220065130861721071753675595604388477428566862992251360498367318962505729978120861882741233022591513807937534777274324800506588408393689208851116380876308887648381195317568232113338483700766825310748146526264592285665243686114326185702259596584363967177879326765163349042292232094012503326931106262350933085967186189388618790303263868426753491200211967817977181505424131293022939753624553520773258903960384521537561119569059487381470809706310962881111902826286036158601410712990215867371594512458785855468747554602874471441294253975050322173039770906884897155524651217627261328332312052371636430698400044696380633775058617624999781263423439086231054291883097384761841895142783516673634585220736895908346471962795543691193834783130707735919407738353235010843873041134095524038152201355072557126767190147371979587211291895266305829487736580561716978193455722994607724408685285189545660249119731458400971606848509308963438637589885707209770169296677724228591766828879704747123821642801198382842523709364365079374558094051869806790449465888005651516759855057664995450833252021262653728065683535664383283244384138017900671343524274644941453378321057105954613671336781998020582239464782683960028985397578484832727791115525058883246671409598519470420674102993353671162075481376621850488709925273381885652344994563645699279781995239840318574907746979219738470527709801802256194488001288623738586871230547380958568665104580676878488668372120058911689105029704594989355437701394859171893204445152590968800779269040567125928064008265864708201656569079856091574020373332226072653069000882829287070740566456192967131303896156787181385278055323425418022015627584295814751027971707134106904944180039225915824391216719839459318416448806145522108537163466318993997258342953694442701711266953518653564594214062044770265237123849159703058816067336791986450562765306820007372739789935909566204398294683832320950083522049396624224240209411005477670350513857194342345787754512742925006987631929521213383117517443370902148919464282452146038257658750200057051426971216818259191565179696445619716908408174312935845266521329038784904545046761509516594384956238020850771649123769316467328497204594132251943143310433002608869838722604260746256736991212117724490752257297373602472556975590949210043767961882444808325695141020922153796864998250892862576753802247352210509027247694179411580270827316335528633615879404493558246413611731703222489312872788587304101564282953487036372320307373860294657741168893342556617431537020747618122680765229884218311708263833775856465248719548018686463595724477737120658754891797107990201286838516684625583526925337431177779710926110109021731841242409961145451772982966831729036853871827796306642607419457148084630866123169836389536305185220878783091616024820208866671820557441342186602509893889811703085678938784382796598590263527114370966172099181211151735479192983650579131838367777853465035464264549842595592287064697858448504979638927725295049443352559926535159445495807730916486900471755238854350559857248032838579311327184647685455919188126332021215625813214948237531006642079915647849463579977013603499062168733451072830272503858001235216351369948349279932635523538804729142563595552144036765176689776622466986289682608659736035400546721872530183202357441325913393981491617764232940162116914714710088074910424096688829445871291764945182668717174379980647723814669027020732660546712628840666552454159286172051844137692378278648892709061025069699127235636008963549867641672007492404725512935623491601637071588875431965194402207581030749216133950199503501915047662012393640374973005696955385813330460789238267600548328752123949539681178746038892961616731271697810411174103508163330719590294932160342844103368943979602455640040149956180247414318763572633833053798366963063729117529345618893425461596936458507086021512313527570689637850438474955690018139799107326896567109120041357878161057754085666850050915350517773669597207374789941007988285766197396798419121184370180056692909856676335256008218449441624335770969578789083292841321707780788140476120516852121965579288549408496314601991827551694304936020216572947922532799090167037330617803234353203503495975583260647110723112075737676274370575476862808056861702067065782924574428350694911754034714944765065303699763701599567940664651437434541929700783512810445368541986417469222009373090805743763319131160914454640729164362676421831360081959898781714863956291344640811838591608004842243855889595816124225152570682766859163204093311379222085222824315545633343015504939971593458111968406706572127027827260687400125494522433591642519419390558330861061314390056121095694928169953303600132749377033771055534190800225892882025601209496120342086891536882542260540274538379335661039342730852496815737597518798994299034102725629189366212736658687137193075685455965990704736978964069163412086158089769382588760164201212958911917611298113228707490528805425300481204388695742823850063644141423455476400113693341763001147488014767158063922687873786016270633029606746405764574019072018517811908964679834293650213413343675029539623374077775225860455842787654436469863222771580531259811837665204941752318557003112122961954288855656972624167526168690056174063873632983349389013994055828806416930384687202008928826852355465839087267876781994422597925523516463289641973600510714545373555862752377139491063723019940705470976263199895282981966436608381590787260504551971259836598178388883045261007777185093931863718598923540337415353282579418857756375068093438674687957840160676664179695590296141455164133135731241949471366744926059615475884237711704914860097001321845964498083934168197316901557020592081808806115247172441678657350148296953068915821618902287966528924763275963965329850526753600813350590285350089403510765445843071082489325197497964237749047935844111457442726863972556164283803322780450820331549296642872187566343319400030174555369133337146815008748982463646620418181104430256076801470468541766316348090014407996203331213517989624357061182456139651926329427616963343832188997128181037622232882249383578638023154567554161173472303911057052848848309745227895394741874733726355674054710018701835166555017703342695613840975003968667254196457925924793055696604388217680156890323567989700250594631963826228816065328807174921427389727683895554305239743206062637687200002249763821810233802251996520338659748383937070239577131208095064634998068663425972694731430007052867376215080158336518489765094732447668477543613729581996994419953569169986158272728543644541941936256151743438275085152245979903997115295690935074406953653770860075119689984895986940074602580426101179752055609370022230870619489142307284769818391384457324971004321946890147141750602153089050553718552783531025770112611720563955166385735543496107732494970349493962939833344206385118940967812328566878718804338329419108984608477306045050495971041769245823036697899180840482661522914187808849740485830244398198832204056470351357279234450769715394986139038164457670300595274566952120962558874384263691632450695648311305772311497086193697378273320135563739529147335190933998415530933034591784337138311682843847307459368389067243656357707787857337619817737163542650582217542083166764314189675840490668694822787442652737892596965189228750730976396710344877681500223098498238721940880859012715800095947502679454119037185763181195008373549264487273352352969394242015350404181872474486984848066669795077007224446344167665381476537519036170188884797955198044033700358828957822665498904310159085211762540210732351763805096897177070355840361293558861302162570027541614117315789025083020237757994759886004830915131957452402058242987783064526853946488681031721039595662088831923469911019082404972573407366782952146861163355799027610577327449464081575922245670248855311457169678915624974999672160352126258706930345139119291950007721956193928006794185698896751865085582794640920765656553857636818227958670101075760845948136759188470534418865579287828054591754409231647174418942229215377292013323001805456186684894314122156241423178215384523841584351048812061102147722805488964119241964771555708964161737690337375081161776792767917752751378897524704724890350739208575784999401474894119907577605625711455846159628336544087015720592527236136349388031076868904398815797680731855682080050753523281158209547215702317583204468801789772785964028719489069169149004687138628349059142382167510477383436862812562103483419894163757874771940362185352251645186777676827866687038337552661095226479483400155449580136515601975229885946917206603212576826009972590423423056385473072366759163181478487812247548506205751599637373757936205435670519147833772116271705005819469351090722614522694095274185820526915908693130215519851872666294056358105093680109337839091741412826903565568853354380164098683068896395701620403543035577633548321307640416160832304686682393024785485666316309333251246217475834700460133932753235259445680931618503290110693416342580490745222405681115833201937146015117192461846149246272199490635267276130595710802743558844357409038634004673590045329071809490342891606504499604480814612194139902185595078371159579135673442440578140505841577806178369264397041536005882270388099985370911920951742491706781337424124015732247675143808769427202765708324921567484456215769188785173375459441299043755028855755381937906963624168777831860068433535222925471648748701005156101305108611212033328963481632161701810340459756806125628904618051412945560213907002456185016229359899330854292586596055104004910285872939101739287308372549472609978254564802604518428640849025732892008682521561345188944854127803761460705524206224094946364082593713044777955664891577814571839945259745525001250581249941376372368583154208422797966022636599820055959214353534906371703680659467493039998951488701336125215391286024306278954806010873640487168879844859498582215105402950626152486041763087318725795104569318117831707191790359794708730494955884640140362041814235619120399172282009271900221173054176270245623236936896925026436695409589647342560911874180434622053231860092794142110860666162899829372496340832849927595120888293360057101240771029535944419736317319049888726953077896115097435474485578194997753383085981483011808759152303679702915437226035691385469978913591048854597198849682365479384885560162282637350604785221428939490448725793028883421524670338158619929197432225695825818527137283736741273906941752648366948972849501360420192248474337748260230610784014492161352341576725207833316747731670751249711974798097087638100194679303985321626604537464178194989690106063526677504412599633331280454574238973445024496465207085515057710112976919404279091542096310736373012918022219292400838155777568961798536294324043631427625288911505831390437731537488276081378816817971653258912802229709900901540798057993568461105035673659051111593684104330740276164400040501716813666245418095853472475962928169387928528805858041109171835720118036835576871660456887140542699712834340402898146607691603243433204759945288023835509808571105947796930489651254071723800820324545166020760577699582902981856570571529494934586556485553363627067993354488847961819664632345919944967471187367938075008293959180312043053112676555320453883652029579843735776029950574151923284768750187294600641089977457983618741295054580868689727834675165675783350703015304235691234840965780496738059994609162558209290159194862865315324250536192413040872970863956725545661619385253823290402307050318153529917443227977723158850511418419239573920141554506962712368899966277373250787767084236622601178391976597704306290737759031973012720519341614013543897106281281343069236745085154609832966149488823106940359217134473541526299782006389767485061298523272240224313775638868853666175633502597714736955020223589910719278048481695165545865293829003435375899704997490063995347235384291212973911437428490187124756522531404749743489741497183803038902072353578811017998267249307103956137502538437721867005499756924237985115720804024973011423654040299468052738361673723252296740107336052685258352481168439202993861286373171102503858214168031803974946331767012586097196276411522405793562215474789639253242706509230778819578606515970469405006918517924866068739285045335522777298845828466571368966751037536957127739990501765933874118388588223368807800885628816656554988326903936253508114516649614089925581581399578809819847162442288855351355107625984819244482613297592703650391363347688464464841926569894008957897624099788042275355706688882388380323251273614881446532544967476918425532777514378023704207136446602835108715870985874222774311129371013186371749557975752916511276320669634340243363819098745904501376635645950961095613391507344716885372227326814431768710138764561816111408883289280293051421610009246264180430389029323642247391025642487008665514779236007857926998858869710461958661687930650140350509779844056666133411074363502435625054880146363564506459296246580801908394868399599331300523470346971310199149789971834383425677105042018859786280151926687788406379268928851269340364472591435686317436140729507914017029393435446822893630846097346275994413141096789651528955752731977785755494566349410607906929873019681848077136884727832738460777436641956342340092774339497836131628683200017609215669390138856137707462047925137411805240225100081203363815239594168468760253853371623189875610742600641086312361772354026544914733325173030518422792205981260874649682027627954653859789855374355310283626158082837460309135808865333924233437401447549451983673902501687593091513250789015117724282704220359089719752414477950942647389607054174753020805604362293507533882584672555352036138870183987799494103935588259894239695628646685273116195631497381332107059919104425924193642047814518437028456533771065415144498073584153617252257500500746515575298779560015530243638688590987394323318320626078543604667827105941351406409573233550678856052102467186501800630003503729907274223074618080155096367298768691946505292125845702245102663104490089500828953545727701183145676608744136917388108686531465511811631977509778195259205091167419484511685104657650916618156342403205863771789735053260517904276122057260738897933801029365789684607979666203234272320386421458887042823470713181232555398658800222552658617430588224228248235270841871898784156743068057596899269253649849625280717423410871597143536867967177074710766371745490185047613325972857670162511512632339510933471580677964203731679269041458189739378045194794818131384453292014413409960524621877143509553784660825077308042828441911122379643966197669796746030706555065417899519959177280486862665314044339946846868591286417308871328705998746348407621863467074161145846174388866322799773408999175296630647625339474578469074681314893141944079592976191041171069706944436887136972373667736187937233803511044029277648915236676282840348526872861043485114267051406880679827334375175274316271437153138311454665683694855035733594849824572995037060568950574723735907351926263504458996268161792354705513604324020287345530535596109380356399337354156108333108671170466234939578544685283680387329829982302757849201695620382383597415946765436190424351919882458912114148183161746761042544235341455813271018594962534411443531390730677862143746389671531188304889659606276104992766936103666627653790688308418741641219249052980954105535835059942560481660394776134196788599037375349739567007637482963897349122799455892925360461651367488188469686592434910475540539040805255645447259304878647330414981247796134420122026543958694033581266622175133806408597696842897183346842371851659397092738148112003297253715760757466427875751200496499398015652649777499214394198647536576656910795975782911516009827951352698477317191193195624271805216195518601303117455207986534675683169477485860396204388240965913759367861836745237735985444395267829706239801948917751315787657933105174710335677044597153845072175101093597978614967885107484445238359982191187324658294612799006295234980616033377926456446860819285020284970952648732134943654288827994975431359749964955542946629850542222028828417980189387219263804814942994954636546013065774652717770441495462812685453494571456860541491221133399102464155013023568387111596076428278346710925863173108049886904953234151527753166685923152348011803013795808554782252789441285794382679836832357981966682131301514732440169690243055095256235648598881834040294451315433499080371892843273741559543855677835914549291647272854096982960369088222485606963753938219251688794977726274996905103732901177569326672217737385181114409348669168382339644683859445515132421644410581884087430235050159553523193657105386236871091044027878947983276406471016929884365773678421084807357575177346129620748447709206159800825720701144083722365807324499623164179057525256615317836844803453310946519395291313735972875062757715537765248230699736069372326534745691668628956792090062372864082910899217645604954185175214342575943797955308970343192794323715264785255582156037533217385734591270761749308624464975557329623964576536323377016658341637652184115632794073377448711747564433563179091373833546404564643710994442105318184697482844013190757293849288476148018126304066006579896485580573285637771860369312371980827129117200463388665200839031428748675630703163810035808280628784445927604169014930385541413913241923928451931577240192164631545085575772327421186822697137638259348522123748940251415703020350789402954162377502488433684016248211158256479126723496498342504578614580408730158317391486019940902615655286974533435241987294340054801344472840185768435155950718812026824949681715480514861324266195585173048883098752435966765744201559267113005712795326120342451176340505541621506870313448148689300922876956493402421733421951768582107625299648816605916798317893354184567957757380707722774591224716100628182609779369645856233081433135067035547003529050594457589131476482264202721651216549839921254748219696080005705663283194925366812431940419655709921185084982365135800366305563204032299064484728821535382422305060043544763298971241992904021748981613653640112457134316211774230374102383238175618776182056039774099902456671658234745755890375524131298878610802530685776317650975752553740368158019856004518230820166120664890927169451907434645963524957544016844114047084074107464445105408235282317099895448857252921748566146478821519091785431105977267975130261309340947763393330917935685823268668294766329664052140497719247050292053592230767942703579928556357724625370937280042614517094218218136792912542048425165837246299176050147395991178450773571620659171491754696952018256958797189783095590956928618457385342715006710894435752984029131542755022946235689303557750667868219751100649752760590372181334152291385150010512234774648166299873162212597138054047357733789813031316254704065407687506350988922808621751652370918400905520506291295703883654275611447101815314373835869623587944397380402296238665308547850780952303027953747386166750367633403478344915659334199259691406394729521118382541546342549865103545827947172017879095467871477295915700425643273851109172396320031942194804664771984786181600123401396755862875446315629134159734640236350649755907966295907366590110866696264059961617412176624968618843441536761455257965610076661399823094442973601760170837509031352933152574618342983698312765385958763102841640288702192224048954538021068533406687633334528163849608023308134246876498548786362818947378005803851346331704967567475919233224107851851871985740201938099888567687456658263558214623182945861414656416444415098663735735951664728858599257941497123379069468384553834098607743441759456795136807240912394226167178119218989293656757412103861123454060080435259964203008415582435808564427984293725169249948220299876983378350237384814684974403768338207915402243779338575686703226900480759008612804268314015301488709820760388469882295674288048895628083382703791350769498653065368347596057801261380455428842473818093712683171698420030481939012477478326691419956323003875999932529332508424417190333377818572622558152946221237380471068036833996055248238213635601368915222511685225315503784516502323098182148689741642654375863681741480921738603682574072946268878933891392229409506586086888401128771542020600866667468006977443900467656307480755407728688071748833161671589214758685268397004918433882576275929611961469291385675178269064556213713756912394742381869243042256283858297569953174625614071822583022473550744695261052797537648621079359822514066813875723986080022503443406785088155545217860793049379040633565800660105798031129578408393341450738627790344170300099609013159917674732615806905398182922651680094644380632055440303133097373208833850017353997340300312464869048829540760617326300496033649977515788593036361278618247378064480525212145037242119064091933816067429214674672298196891521006619600519219377903254815163827889351477824566713093595008674402258693136927300601982828136631428548861508333704481078605240897641119619351788195351510945002002424376508211616156124543146909205054634033203977766035562486757248896606536326452070698033515710280702916334943710997827503078786842933078356121745968726327666468843347833519099341119023268812343493386836579478706154578788287696341169793778049606374146068642668800945648381155833562964810515406981347910006933758676309590820351043569085678407199518347264280747040475128110229289577839145112141465018606016049183553345064502659494497940088054367458837152767644029291273862694751018751553725478803495176833562745575168457636925683456104558007393944989481227554712724484676081750712213671453808745359029110828190647218081444106899461818180989692732396977297617977492736573556144168548435482845526617353170276350815040558790494877089622019805955431200889052299745911309547716617117943686614909833837666120683001939526368191211422539857142044782706593609265039904643332115195142099612111456899460306849924027595833023891446781320387062591222476564073568383439747929182603593470409069987293970403178605175887211091525943088138724176724049192817136537531409101366433512679220247956680275281795330169350240961641529546740232414450438798168952013837285397821167842014944963773631136803165343013575225244708594496901938732996875965976037285279010505418895140329514128024188525709797497296638681466450584461809693351978269428053248285162047048827313711089893785082903777232757607910403583566731162214499024819972855440635942753982986913321233900084713582884610315227290968182806839046142123781607526228025306812453836777586691886890020994626729079059120332689310580183706406849200806702314042566204274697432907044783624361943491982834580894184033589579267112319319070211312476405458015823842885712698207207635298167533232232223006955382357297842514481390117821175369714778380258095783484238163879418449351921076779221821471990299894468293122088562566914355094156303417795610365713031514214635372704975046096735660118895570160090152513191247078190632719009639868610466837999656901714322250143216801214148081543951805808758160535062867089595237305412672169205926611570698732110636707344349666718559909159873671624623483837612885213589669170817689647565336749944246265658469871302521078799474375774145575329126625954280091100220276451776562161018111193760133249702994440839370313851508215899381338998734595804690861789937005784497300208810978709866831532090933168852633561735507075633734818714214125477701420917069225332544399591397925191804648934529144707320430105544898504501299518104851593552444378518205430304460792295019787787303372941665922126124970704309644694395506907863365487183210799568098896564789841746568266015380650086186767201494681967971411731045449137044078518032878283846283211247902540110825482525708389563145166686147447608384681964964585077513668060120980168515750968953851289419774034543499416631694139050626898313760573759874211344038767009457569977766185945300144586705628397270114330079357543014582755590474183212151134712128264404546677579074954856162279748042787265079138292420017621280675262280451535561629820776431338090649445889073799144412575891874185691549248663977661599477211739702137971894963797534040807831649402943319711862889525190530371594043549025560008411961601176623691848262772340029533469087493809363032228409959747828116760630136764621212828362439502097057626764265781851555358573635914031787369940028490060585573032418956997266736596236360153530654110229486779003055971125711734602060281481300409694299457980062030233275355674572442655328383584011178265004538996736145260710490994426039171286603485457731143493001386556385504543177402634997107910924432836473557841115502082992374765756723401590809979754166347451828343444054345061349061764785737078635000240653741362801922289332635894289861824848377433574591956517872536817192691043113767615209200901731038312255986342435687241006794875910707747619684937439269765044319227723272538208258629826401685593393263653360997950971710281788031222883037259050544029835157103372935190289685900136163664604508114578469676570110204100969217263577304522287306641097234809173868830625770324425033120556686305979197923767395828678992118940567884303269170689449119019590604013491076042353922257398919352909949115342956989411175161354395285055021362838233760985697176882704944088496123432805668409813595714480433074559406298348773932863343952965317570027567102344864228253483316447727096039720486223610255033282879810896435816675761099267382418031906553639827648739631664578282264900523501436936781627075610552728941958618945702760162367453108771647005456072730622236332137033214765647847344443616784276603629030638691208959421736318171590105288891684501805802471363940261689626074302289340230333537215425528067348525287341021439971378054131229308913181291651787693417364054597964502065206795482986605682112732561263951491154865528196190870109166267079891138915282924406171339188500834313474227934559874390477032491253721901189402441882481156276482849213260428574408630989465130303047381647148503275568016414919979403825217911825947811175572134540751586489292008955615372537928593765846673933061733109345338029893648971497005022202347263993829762080323574478307195654152701345884678533113344088138980795612828389044994164555620548680818255171873629212103040285488896576798924108631812109686192193656006810649223677712352037007883597584395128928363517917260543411650818120162259796204968106977410397135233327960661096991639946003567072900117796976930716352064942347532542568993973489964885185329230574632111625738738335275664231869757412378812358425742559016996837020866608497859983474604730846181460020650491175573428650634578370877252141364993507031992206938681868004409392570671778303751631257744054789529445348254414547051974127386248938292005326051094558207596366450253234923634996804960068138273309163879844474433710397834908526282405908424510491002208155500420372135182231835438636380983221551771004363963270320147566864096706061995040252966110279827273661004619500039764313649349107628536017392092675284238364382192327983946164201344535252109240811996112656990291590551976366976928962546102246066580944973824599505116623370423612055119144677563208443040479417370742555985121118760201099151941769119637020531508477819695366071437952754220925920169694219381966188672260103129733839568637416926613169316003401331387245216821550504962841874144061226270690013421457827874054503900754390551713662934332296519197910229052049018330615415717692513655940975335081249406588557007530803317456663450559654377402374390778795284802705708097528043059791650951799867357943840390884966901661704938040799589671946028580663355970574663477981459335865812530192031840615439951553732596857016125924132198372384299196006947137425825678312507840792903700476075260970698256425225971528490059329613397236780199705949316334855785113037936355658672609399693310222428996030624737549355380799915778241575139012622989857623091684264264193689182951031587779486462240679095423349629038665228377839665007200590244904694707962677215119446845030326738965499868318893158643068793472052541148291660353215414710976172192502179207398985714770924113808472033647929753333630971232892412505899605137859485251140780546325780781882742784856815057495216198168659835945247414909770790027810583439447980682779051241114387426285847255466963870852203413990477757907852910467435390380324605340010078928213458917684232732245380541332644420113111205669584313083005728733858110324290236653469763487703888637217697599749986651707925241911489771574984864532978209643860691806242707591340856715799028289049277993749055584295922251034079420605050468382773891895794998023712415917644315263096804358583318777656188348918435527850461110972104548910895286694569744861643037317166435675133930103596680090209980239764988576359015454545413560307273587955669963452589511348925091314020331976681872461174716023561864747392440056591763684594344963024215095483297108881747004815968482574296602805390088188859460074636325039206969355573888453127109186174079951889948552527366950491120809742411102854579672395693428168848375665745354470550260319986464468243366757439580918801724279856940163335128243893049783036852853161433799954393328740214845113139682859422987782574162155061090408463199241395716307461311148321436475641865699272048612667496226330796564189760323605475264408936053205666569123631238515897373736308200412918534852703947338586938944569066042183064432601340498955182656417024180423979619217686125013443793958589014112853027394796643143919449288969995898408743903860600553788350088368381823911229484270917866619672044609680213052197412637205470114803372298005991975626370141654585205743384381667857702008571408800544564217017880186258768148877851219657960765271110507418323471402120443824773464150282124253832570559132456450655449498154069548706534234950904372866094410551937016526426756454767185654556699647662115669167418690760877333898741065791876163945091743580266252160385951715064718364599906323287482100152525739309772717389981871214562236217009731004884360130361807298108015328407097326625068284095284441252510925805297254759644083992987778860511629395414240714333054994862718650142037718501152004887120291174405629743961423602032990863278958079517238314859610221390669645989995592907175584775105829359543614406249009311567845567002671709933312408603154377700961941365209679223593074914386161296383531818772010368264491075430353673527639891405299388484384090161112683233523770966215914948385164429262167102219071634309073172455431397021978743743124563976095300038345716061864833575084621446060065845862434864920181573617826349971321971292320112234478695216362551317018543686786765389739372847833445989968921726264443488413926871040317338227931008603348366409177080905080476807525804930964796792406850689969088745874632284964001272107574271642588418745570321247454376575189205178652465520149576838923285247497885490773380722696483866192617128080274879159499089378660062832586063690560895727062197529583923663580816147566004254489977219197399115550820587812732161002146980286829148253020060809573909569868980466227152108799522503127481803712026659691130615669993052126088259931511907923789403812388583583626501023166510553922756424181309421037240324561579025389527587445492908978879789186888766369661641405377289775125238739187678991604513744226966082111772228671759129521152272918008096171712593041293171320514411467781690934613407072251927410699945698317698359624399582580051521321016608320688948253194355591437770607220504671575659749078759614406805932755231258522629281857515491695487592209932399000037863655945173314946096417103026508669532815155163099079945373786733391960350216620042462924758273105469489807837298586713328538803074329063595176754685306827609881240950134792000991341210557484991856241575705923628424643912593593423535159721413280713331552436257327538248834292548171828389229683962572238431724033551226857734740291496061079986634832156239977009438567203439187398536657853073817810196718640885123104061711934432079156648872851454495173924099134618785592521224966596726641536729383026549629330913257470025776939288878758230740200243237264539843355321666664514229927050382534289323313181831468005023348654363861534210771952931697188836394696775810426635229887791209226278568502538246461041476644934635823511363060851639203342578790343687483848889284619515833071568560705291824367977013563594935989388824766255998317778045548396722245459503185043992115469029903031098391959958206078590235321655970315716891153051514084068854266843194364557892903458027719646425396520843594504231414398211409208725925747939490768724083093161588672495621024398203582665134578285902862256024558594110705282918178304220276342079550462273563911959073412436275306195598865748568812775324163656773118966304063202732395054898334294744623549254483905980938318313727564497368139900261271488580059023076702250770315811629706447522490610681583115457790401348122117528656296981989559967677342146873054540030943133620282725564182245566078497629141365865712671581678902617919011150040586738615431321649477377995684042871676064041052699832595457307779495898000646593177881777757560265963361977474298428132795959303402805154194644804815824671501481088377526661215939738945504198003125192300003053303605926493127370327238902170891179350216753787274713819098379314437728257639135687735307930739629608067803786558653388283697762213458432861846412080107626044112094272595043197075356693382173277997112651135834850578789946392500981912402699271221580184174858329924922145887568550538333394267147662951818371211813811803434136257051599408297798294715924037155747143881309227817854728882303438525610024822407818709463532747474224048147949637155869768137866154961986019744255124694163613099873089434393954860543299780350752457981874344418076627850987547618206548895168596150881681146162436291341600690414892538581641031717079024762927341334747216406024174458827395309126011348394084140769217112615598582992528185881027628851974939970255377413495240298842072152917812944466022981404881571018316561560403300989104774508151103226598676113411346966750121230666756344953771189128869603563481712927691654380880867806825406070378544586804846981487314782568385349677748413008521763371738048477064346384166704295984650498540301364348987364592888772186877145399699553404803238992247726466870473046129573143484984887924966338813810188556566081102921946430718988361643433812872491129527996034219873853571744932434066748890053581321814740296675302991485871277607976484081395094954960560334930279389103641931206964794697268456354218242682406752105312110272247888539113095190821697075301550304298195542799732739583353788745145057418219966640864958547829110964497142302318415494567373183430953155626969462213221393373042993967751890319423753269158509449880850486101214735454231943907919002220709825918094890259403734273591155150688436743553993315131226267198442817846370270101964416648759342772231580499632929872597949548458993825773518771117137489833930934040392234594871950708917671038297614389783080355241076199942866656790959456986379038285222880281789933358929100379426552618901164643041005412045691506576396739030286279551400228858770737769605876014188991827594440497582530618780739224141537883992085798361881880399825247784340672023671512303615030379863662564938157209885441655051916340356531268650365359971814986057442005432970023421391236395087744793921206479997784722493126607325794659092561504052380697120926837538546848507724245042120155949840793295122972485931131650126545856745405451116333506589262295774710734178139552378221292029704115444822890229573711660290073315844761501615885472972759491113797610986676001824228632068053077792513714339079992222324665677596695358301534984633769933818932409052849758791684253448784576253418462909506282032871276655444596479589203049801555193320303152583606785074907400709849888995517420287969056018407479929676253476344956599908298949437692924050177483556685065074143724167492942912908930533238648834926996770504228045974877453621451439849732042061657258869402568078066655073787678762582922635345836298921798639682548330964238689723280984063286450548229122912303500611743905088792174698670979689757100915536207327406968051381118306720732228788659792518355351523627540527318340875388316828274592106008824249386812365800107021233266954667957152058301261264878447621103661915100148052087462941138570771216699894907386061688816126327098177705377549709624956412941797088744802511269777107567205860797194477402396329978468922272383039289090547821055283239559415484778654131974804119439094438396259486475357107917438752195806112576425245277124280754044570243813026611951315750188897428607112783816358254478605864847952206923654735579449526871008715031480143957181439972219171740747714263616339828062679124324310298538857438571883493449925081472769840883462095697790192997968744731659705107903221465628368632045668919682875656887669495737407119998317603499951538003376243930599791980033074590695953587204721078850501546381930034405661866343918424907051095140627285096792432032289578469515479381788578333870386290466576639681246666850099973514006541701093029471181671700336559296552117008631533514671700321132456676200935498271026257642767709915750034864443514298796809820643663197608618834489696008854611503320671474859956607761859361934269265614415367618314715523499649375552947967016573129091381854040793052716053836270038404990056187771063003467361632516996703458962751827722082458571116842598400089964803920072457758019591400359660087260752473140408871944929240438753879606536139571878414148672061664019417613596368668113137220683446651436617271680934102010397794393072853300555590803693024683187415329900177505643315414209523263042959460224823549434750348232035391126406034492980790867147528475404653818012668857255935642036765332634167788271528505378771655733091702084394402661704821114473160905723154616904836552448024319260362998935301791329810205813142425319961649759188923325565582140527933751355832864506803743018018578864069927241189651537058946776468246586729854468195057190451713029183283603490826065115888957747217833270408598080648489025840549913250078320051846752476164028547434946312290428847296121329389811385712897369686045421539119438795142005920193221750963003180768065770094316424340754972956039352605823385819329535212514480883607331618518526753499959927772448269648115078440405776312575125430655869711066890071091871593124890890571246780259363634326629254754483476475773632099685569469821666304414693635321249058660943888613802486646518404643728405596422522786629659192621194113753869673869706580778606422278252393619082549335891215795722135105795839160418874624471968890438703527504368775552618205058020305625668960841001985838366584728833553821889411653848850305950147921065366491276528932254302717989263594089717591681061489548334459165318178710032060349295288015509833123075486493244848395052852861874771451482415158953326895796241648167004068177010562670707889157438376528105726241668486105875759981417021738231881092712969984688263937684633964120202878669431242691224251509977080328828785505713167066227241578337620059209381205764007963322795269985372800938776795101067860583071767069646835845482645641726995096685304877232789212020548584787722156643958925677748054433903232983197180064890959187823014063582056820382808162235713139425058589816098785510298312501153311057804833222370350683935673973518363996589539882464875169318679267249697505939813645724812337562081066553841429761045146566140745085383630519589545384040723447359400432596882381037763888699260696157032951385775109277645311400478606137013958009054762205347000846386830105729127913569428373611277310964791212192182847531497146617639138829515482396875885776153814430098603391249166798387798978930191463755584263781679404232819202066336080672750287563925172930219716652813900278365642675767024355999011821609556107605807469633325342028969426290791169052900091296300898717662232578770620120642952830088448093651022236762447508562977213724546897539050718994425285948029432753276639693909281